ZGlmZiAtLWdpdCBhL0NIQU5HRUxPRyBiL0NIQU5HRUxPRwppbmRleCBlN2RhZDljLi44MjA5NzQxIDEwMDY0NAotLS0gYS9DSEFOR0VMT0cKKysrIGIvQ0hBTkdFTE9HCkBAIC0xLDMgKzEsMTE5IEBACitjb21taXQgZjdhMzVhNjBjZjQ1NDkxODcxYTVjMjhlOWFkMjRkYjAwNTQ4Nzg1NworQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KK0RhdGU6CUZyaSBPY3QgMTcgMTg6MjQ6MDYgMjAwOCArMDIwMAorCisgICAgbWdjb2dlOiBhZGQgcmVkdW5kYW50IGVudmlyb25tZW50IHNlY3RvcgorCisgICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CisgICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KKworY29tbWl0IGMyNTM3ZWU4NTk1NGFmOWQwMzZiMThiNjQ0ZjNlMThkODM3YmY0YTUKK0F1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CitEYXRlOglGcmkgT2N0IDE3IDE4OjIzOjI3IDIwMDggKzAyMDAKKworICAgIG1nc3V2ZDogdXBkYXRlIHNpemUgb2YgZW52aXJvbm1lbnQKKworICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgorCitjb21taXQgZmE3YjFjMDdlOTM3MWFlYThmODdlZTZkM2MyZWE1NTY0YmQ4Y2M4ZAorQXV0aG9yOiBMZXBjaGEgU3VjaGl0IDxTdWNoaXQuTGVwY2hhQGZyZWVzY2FsZS5jb20+CitEYXRlOglUaHUgT2N0IDE2IDEzOjM4OjAwIDIwMDggLTA1MDAKKworICAgIDgzeHggTkFORCBib290OiB3YWl0IGZvciBMVEVTUltDQ10KKworICAgIEF0IGxlYXN0IHNvbWUgcmV2aXNpb25zIG9mIHRoZSA4MzEzLCBhbmQgcG9zc2libHkgb3RoZXIgY2hpcHMsIGRvIG5vdAorICAgIHdhaXQgZm9yIGFsbCBwYWdlcyBvZiB0aGUgaW5pdGlhbCA0SyBOQU5EIHJlZ2lvbiB0byBiZSBsb2FkZWQgYmVmb3JlCisgICAgYmVnaW5uaW5nIGV4ZWN1dGlvbjsgdGh1cywgd2Ugd2FpdCBmb3IgaXQgYmVmb3JlIGJyYW5jaGluZyBvdXQgb2YgdGhlCisgICAgZmlyc3QgTkFORCBwYWdlLgorCisgICAgVGhpcyBmaXhlcyB3YXJtIHJlc2V0IHByb2JsZW1zIHdoZW4gYm9vdGluZyBmcm9tIE5BTkQgb24gODMxM2VyZGIuCisKKyAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KKyAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KKworY29tbWl0IGJmMjllMGVhMGFmMDNkNTkzYzY0NjE0MTM2YWNjNzIzYTdhMDIyYTIKK0F1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgorRGF0ZToJRnJpIE9jdCAxNyAxMjo1NDoxOCAyMDA4ICswMjAwCisKKyAgICBwcGM0eHg6IFBQQzQ0eCBNUSBpbml0aWFsaXphdGlvbgorCisgICAgU2V0IHRoZSBNUSBSZWFkIFBhc3NpbmcgJiBNQ0lGIEN5Y2xlIGxpbWl0cyB0byB0aGUgcmVjb21tZW5kZWQgYnkgQU1DQworICAgIHZhbHVlcy4gVGhpcyBmaXhlcyB0aGUgb2NjYXNpb25hbCA0NDBTUGUgaGFyZCBsb2NraW5nIGlzc3VlcyB3aGVuIHRoZSA0NDBTUGUncworICAgIGRlZGljYXRlZCBETUEgZW5naW5lcyBhcmUgdXNlZCAoZS5nLiBieSB0aGUgaC93IGFjY2VsZXJhdGVkIFJBSUQgZHJpdmVyKS4KKworICAgIFByZXZpb3VzbHkgdGhlIGFwcHJvcHJpYXRlIGluaXRpYWxpemF0aW9uIGhhZCBiZWVuIG1hZGUgaW4gTGludXgsIGJ5IHRoZQorICAgIHBwYzQ0MHNwZSBBRE1BIGRyaXZlciwgd2hpY2ggaXMgd3JvbmcgYmVjYXVzZSBtb2RpZnlpbmcgdGhlIE1RIGNvbmZpZ3VyYXRpb24KKyAgICByZWdpc3RlcnMgYWZ0ZXIgbm9ybWFsIG9wZXJhdGlvbiBoYXMgYmVndW4gaXMgbm90IHN1cHBvcnRlZCBhbmQgY291bGQKKyAgICBoYXZlIHVucHJlZGljdGFibGUgcmVzdWx0cy4KKworICAgIENvbW1lbnQgZnJvbSBTdGVmYW46IFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgdGhlIHJlc3VsdGluZyB2YWx1ZSBvZiB0aGUKKyAgICBNUSByZWdpc3RlcnMuIEl0IGV4cGxpY2l0bHkgc2V0cy9jbGVhcnMgYWxsIGJpdHMgdG8gdGhlIGRlc2lyZWQgc3RhdGUgd2hpY2gKKyAgICBiZXR0ZXIgZG9jdW1lbnRzIHRoZSByZXN1bHRpbmcgcmVnaXN0ZXIgdmFsdWUgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHByZS1zZXQKKyAgICBkZWZhdWx0IHZhbHVlcy4KKworICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KKyAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CisKK2NvbW1pdCBmN2QxOTBiMWMwYjNhYjdmYzUzMDc0YWQyODYyZjdkZTk5ZGUzN2ZmCitBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CitEYXRlOglUaHUgT2N0IDE2IDIxOjU4OjUwIDIwMDggLTA1MDAKKworICAgIDg1eHg6IFVzaW5nIHByb3BlciBJMkMgc291cmNlIGNsb2NrIGRpdmlkZXIgZm9yIE1QQzg1NDQKKworICAgIFRoZSBNUEM4NTQ0IFJNIGluY29ycmVjdCBzaG93cyB0aGUgU0VDX0NGRyBiaXQgaW4gUE9SREVWU1IyIGFzIGJlaW5nCisgICAgYml0IDI2LCBpbnN0ZWFkIGl0IHNob3VsZCBiZSBiaXQgMjguICBUaGlzIGNhdXNlZCBpbiBpbmNvcnJlY3QKKyAgICBpbnRlcnByZXRhdGlvbiBvZiB0aGUgaTJjX2NsayB3aGljaCBpcyB0aGUgc2FtZSBhcyB0aGUgU0VDIGNsayBvbgorICAgIE1QQzg1NDQuICBUaGUgU0VDIGNsayBpcyBjb250cm9sbGVkIGJ5IGNmZ19zZWNfZnJlcSB0aGF0IGlzIHJlcG9ydGVkCisgICAgaW4gUE9SREVWU1IyLgorCisgICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KKworY29tbWl0IDQyNjUzYjgyNmFkYjMxOWExZGYwNmUyNGVmMjYwOTZiMmE1ZDlkMmEKK0F1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KK0RhdGU6CVRodSBPY3QgMTYgMjE6NTg6NDkgMjAwOCAtMDUwMAorCisgICAgUmV2ZXJ0ICI4NXh4OiBVc2luZyBwcm9wZXIgSTJDIHNvdXJjZSBjbG9jayBkaXZpZGVyIGZvciBNUEM4NTQ0IgorCisgICAgVGhpcyByZXZlcnRzIGNvbW1pdCBkZmZkMjQ0NmZiMDQxZjM4ZWYwMzRiMGZjZjQxZTUxZTVlNDg5MTU5LgorCisgICAgVGhlIGZpeCBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggaXMgbm90IGNvcnJlY3QuICBUaGUgcHJvYmxlbSBpcworICAgIHRoYXQgdGhlIGRvY3VtZW50YXRpb24gaXMgbm90IGNvcnJlY3QgZm9yIHRoZSBNUEM4NTQ0IHdpdGggcmVnYXJkcworICAgIHRvIHdoaWNoIGJpdCBpbiBQT1JERVZTUjIgaXMgZm9yIHRoZSBTRUNfQ0ZHLgorCisgICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KKworY29tbWl0IDIxNzljNDc2NmJmZmVlY2U5OGU1ZTkyMDQwNjI5YTk2Yzk3ZTIzMGMKK0F1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KK0RhdGU6CVdlZCBPY3QgMTUgMTA6MTk6NDEgMjAwOCAtMDUwMAorCisgICAgODV4eDogRml4IGNvbXBpbGUgd2FybmluZworCisgICAgbXBjODUzNmRzLmM6IEluIGZ1bmN0aW9uICdpc19zYXRhX3N1cHBvcnRlZCc6CisgICAgbXBjODUzNmRzLmM6NjE0OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2RldmRpc3InCisKKyAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgorCitjb21taXQgOTAyOWI2OGYzZjgxYjMwMTMwNDRmMTY3ZWEwMjVlODM2ZTZjOGMwZQorQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgorRGF0ZToJV2VkIE9jdCAxNSAxMDo0MDoyNCAyMDA4ICswODAwCisKKyAgICBGaXggdGhlIGZ1bmN0aW9uIGNvbmZsaWN0IGluIHg4NmVtdSB3aGVuIERFQlVHIGlzIG9uCisKKyAgICBUaGUgZnVuY3Rpb24gcGFyc2VfbGluZSgpIGluIGNvbW1vbi9tYWluLmMgd2FzIGV4cG9zZWQgZ2xvYmFsbHkgYnkgY29tbWl0CisgICAgNjYzNmI2MmE2ZWZjN2YxNGU2ZTc4ODc4ODYzMWFlN2E3ZmNhNDUzNywgUmVzdWx0IGluIGNvbmZsaWN0IHdpdGggdGhlIHNhbWUKKyAgICBuYW1lIGZ1bmNpdG9uIGluIGRyaXZlcnMvYmlvc19lbXVsYXRvci94ODZlbXUvZGVidWcuYyB3aGVuIGRlZmluZSB0aGUgREVCVUcuCisgICAgVGhpcyBwYXRjaCBmaXggdGhpcyBieSByZW5hbWluZyB0aGUgZnVuY3Rpb24gaW4gdGhlIGRlYnVnLmMgZmlsZS4KKworICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CisKK2NvbW1pdCBiNGRiYWNmNjlhNjY5YTE3NDg3MDU0NTUyZmMyNzYxMTQ5ZGQ2NzY3CitBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CitEYXRlOglXZWQgT2N0IDE1IDE1OjUwOjQ1IDIwMDggKzAyMDAKKworICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HLCBwcmVwYXJlIDIwMDguMTAtcmMzCisKKyAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgorCiBjb21taXQgMzc0YjkwMzgyOTNkMDFkODc0NGE0NmFmOWI3ODU0YTZmZDk5YjIyOAogQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KIERhdGU6CVdlZCBPY3QgMTUgMDk6NTE6MTkgMjAwOCArMDIwMApkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCA5MDU1NzQ3Li45YTEzMmY3IDEwMDY0NAotLS0gYS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtMjQsNyArMjQsNyBAQAogVkVSU0lPTiA9IDIwMDgKIFBBVENITEVWRUwgPSAxMAogU1VCTEVWRUwgPQotRVhUUkFWRVJTSU9OID0gLXJjMworRVhUUkFWRVJTSU9OID0KIGlmbmVxICIkKFNVQkxFVkVMKSIgIiIKIFVfQk9PVF9WRVJTSU9OID0gJChWRVJTSU9OKS4kKFBBVENITEVWRUwpLiQoU1VCTEVWRUwpJChFWFRSQVZFUlNJT04pCiBlbHNlCkBAIC0yNDMsOSArMjQzLDExIEBACiBpZmVxICgkKENQVSksbXBjODV4eCkKIExJQlMgKz0gZHJpdmVycy9xZS9xZS5hCiBMSUJTICs9IGNwdS9tcGM4eHh4L2Rkci9saWJkZHIuYQorVEFHX1NVQkRJUlMgKz0gY3B1L21wYzh4eHgKIGVuZGlmCiBpZmVxICgkKENQVSksbXBjODZ4eCkKIExJQlMgKz0gY3B1L21wYzh4eHgvZGRyL2xpYmRkci5hCitUQUdfU1VCRElSUyArPSBjcHUvbXBjOHh4eAogZW5kaWYKIExJQlMgKz0gZHJpdmVycy9ydGMvbGlicnRjLmEKIExJQlMgKz0gZHJpdmVycy9zZXJpYWwvbGlic2VyaWFsLmEKQEAgLTkyMiw3ICs5MjQsNyBAQAogCUAkKE1LQ09ORklHKSAkKEA6X2NvbmZpZz0pIHBwYyBtcGM4eHggbWJ4OHh4CiAKIG1nc3V2ZF9jb25maWc6CQl1bmNvbmZpZwotCUAkKE1LQ09ORklHKSAkKEA6X2NvbmZpZz0pIHBwYyBtcGM4eHggbWdzdXZkCisJQCQoTUtDT05GSUcpICQoQDpfY29uZmlnPSkgcHBjIG1wYzh4eCBtZ3N1dmQga2V5bWlsZQogCiBNSFBDX2NvbmZpZzoJCXVuY29uZmlnCiAJQCQoTUtDT05GSUcpICQoQDpfY29uZmlnPSkgcHBjIG1wYzh4eCBtaHBjIGVsdGVjCkBAIC0xNzAxLDEyICsxNzAzLDEyIEBACiBJU1BBTl9SRVZCX2NvbmZpZzoJdW5jb25maWcKIAlAbWtkaXIgLXAgJChvYmopaW5jbHVkZQogCUBpZiBbICIkKGZpbmRzdHJpbmcgX1JFVkJfLCRAKSIgXSA7IHRoZW4gXAotCQllY2hvICIjZGVmaW5lIENGR19SRVZfQiIgPiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfUkVWX0IiID4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaQogCUAkKE1LQ09ORklHKSAtYSBJU1BBTiBwcGMgbXBjODI2MCBpc3BhbgogCiBtZ2NvZ2VfY29uZmlnCToJdW5jb25maWcKLQlAJChNS0NPTkZJRykgbWdjb2dlIHBwYyBtcGM4MjYwIG1nY29nZQorCUAkKE1LQ09ORklHKSBtZ2NvZ2UgcHBjIG1wYzgyNjAgbWdjb2dlIGtleW1pbGUKIAogTVBDODI2MEFEU19jb25maWcJXAogTVBDODI2MEFEU19sb3dib290X2NvbmZpZwlcCkBAIC0xNzI4LDggKzE3MzAsOCBAQAogCUBta2RpciAtcCAkKG9iailpbmNsdWRlCiAJQG1rZGlyIC1wICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tcGM4MjYwYWRzCiAJJChpZiAkKGZpbmRzdHJpbmcgUFEyRkFEUywkQCksIFwKLQlAZWNobyAiI2RlZmluZSBDT05GSUdfQURTVFlQRSBDRkdfUFEyRkFEUyIgPiAkKG9iailpbmNsdWRlL2NvbmZpZy5oLCBcCi0JQGVjaG8gIiNkZWZpbmUgQ09ORklHX0FEU1RZUEUgQ0ZHXyIkKHN1YnN0IE1QQywsJCh3b3JkIDEsJChzdWJzdCBfLCAsJEApKSkgPiAkKG9iailpbmNsdWRlL2NvbmZpZy5oKQorCUBlY2hvICIjZGVmaW5lIENPTkZJR19BRFNUWVBFIENPTkZJR19TWVNfUFEyRkFEUyIgPiAkKG9iailpbmNsdWRlL2NvbmZpZy5oLCBcCisJQGVjaG8gIiNkZWZpbmUgQ09ORklHX0FEU1RZUEUgQ09ORklHX1NZU18iJChzdWJzdCBNUEMsLCQod29yZCAxLCQoc3Vic3QgXywgLCRAKSkpID4gJChvYmopaW5jbHVkZS9jb25maWcuaCkKIAkkKGlmICQoZmluZHN0cmluZyBNSHosJEApLCBcCiAJQGVjaG8gIiNkZWZpbmUgQ09ORklHXzgyNjBfQ0xLSU4iICQoc3Vic3QgTUh6LCwkKHdvcmQgMiwkKHN1YnN0IF8sICwkQCkpKSIwMDAwMDAiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmgsIFwKIAkkKGlmICQoZmluZHN0cmluZyBWUiwkQCksIFwKQEAgLTE5ODEsMTkgKzE5ODMsMTkgQEAKIAlNNTQ0NTFFVkJfc3RtaWNyb19jb25maWcpCUZMQVNIPVNUTUlDUk87OyBcCiAJZXNhYzsgXAogCWlmIFsgIiQke0ZMQVNIfSIgPSAiU1BBTlNJT04iIF0gOyB0aGVuIFwKLQkJZWNobyAiI2RlZmluZSBDRkdfU1BBTlNJT05fQk9PVCIJPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX1NQQU5TSU9OX0JPT1QiCT4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJCWVjaG8gIlRFWFRfQkFTRSA9IDB4MDAwMDAwMDAiID4gJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9jb25maWcudG1wIDsgXAogCQljcCAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL3UtYm9vdC5zcGEgJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi91LWJvb3QubGRzIDsgXAogCQkkKFhFQ0hPKSAiLi4uIHdpdGggU1BBTlNJT04gYm9vdC4uLiIgOyBcCiAJZmk7IFwKIAlpZiBbICIkJHtGTEFTSH0iID0gIlNUTUlDUk8iIF0gOyB0aGVuIFwKIAkJZWNobyAiI2RlZmluZSBDT05GSUdfQ0ZfU0JGIgk+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAotCQllY2hvICIjZGVmaW5lIENGR19TVE1JQ1JPX0JPT1QiCT4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19TVE1JQ1JPX0JPT1QiCT4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJCWVjaG8gIlRFWFRfQkFTRSA9IDB4NDdFMDAwMDAiID4gJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9jb25maWcudG1wIDsgXAogCQljcCAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL3UtYm9vdC5zdG0gJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi91LWJvb3QubGRzIDsgXAogCQkkKFhFQ0hPKSAiLi4uIHdpdGggU1QgTWljcm8gYm9vdC4uLiIgOyBcCiAJZmk7IFwKLQllY2hvICIjZGVmaW5lIENGR19JTlBVVF9DTEtTUkMgMjQwMDAwMDAiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOworCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19JTlBVVF9DTEtTUkMgMjQwMDAwMDAiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOwogCUAkKE1LQ09ORklHKSAtYSBNNTQ0NTFFVkIgbTY4ayBtY2Y1NDQ1eCBtNTQ0NTFldmIgZnJlZXNjYWxlCiAKIE01NDQ1NUVWQl9jb25maWcgXApAQCAtMjAxNSwyNSArMjAxNywyNSBAQAogCU01NDQ1NUVWQl9zdG0zM19jb25maWcpCQlGTEFTSD1TVE1JQ1JPOyBGUkVRPTMzMzMzMzMzOzsgXAogCWVzYWM7IFwKIAlpZiBbICIkJHtGTEFTSH0iID0gIklOVEVMIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX0lOVEVMX0JPT1QiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19JTlRFTF9CT09UIiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCQllY2hvICJURVhUX0JBU0UgPSAweDAwMDAwMDAwIiA+ICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvY29uZmlnLnRtcCA7IFwKIAkJY3AgJChvYmopYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi91LWJvb3QuaW50ICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvdS1ib290LmxkcyA7IFwKIAkJJChYRUNITykgIi4uLiB3aXRoIElOVEVMIGJvb3QuLi4iIDsgXAogCWZpOyBcCiAJaWYgWyAiJCR7RkxBU0h9IiA9ICJBVE1FTCIgXSA7IHRoZW4gXAotCQllY2hvICIjZGVmaW5lIENGR19BVE1FTF9CT09UIgk+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfQVRNRUxfQk9PVCIJPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAkJZWNobyAiVEVYVF9CQVNFID0gMHgwNDAwMDAwMCIgPiAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL2NvbmZpZy50bXAgOyBcCiAJCWNwICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvdS1ib290LmF0bSAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL3UtYm9vdC5sZHMgOyBcCiAJCSQoWEVDSE8pICIuLi4gd2l0aCBBVE1FTCBib290Li4uIiA7IFwKIAlmaTsgXAogCWlmIFsgIiQke0ZMQVNIfSIgPSAiU1RNSUNSTyIgXSA7IHRoZW4gXAogCQllY2hvICIjZGVmaW5lIENPTkZJR19DRl9TQkYiCT4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX1NUTUlDUk9fQk9PVCIJPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX1NUTUlDUk9fQk9PVCIJPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAkJZWNobyAiVEVYVF9CQVNFID0gMHg0RkUwMDAwMCIgPiAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL2NvbmZpZy50bXAgOyBcCiAJCWNwICQob2JqKWJvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvdS1ib290LnN0bSAkKG9iailib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL3UtYm9vdC5sZHMgOyBcCiAJCSQoWEVDSE8pICIuLi4gd2l0aCBTVCBNaWNybyBib290Li4uIiA7IFwKIAlmaTsgXAotCWVjaG8gIiNkZWZpbmUgQ0ZHX0lOUFVUX0NMS1NSQyAkJHtGUkVRfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDICQke0ZSRVF9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCSQoWEVDSE8pICIuLi4gd2l0aCAkJHtGUkVRfUh6IGlucHV0IGNsb2NrIgogCUAkKE1LQ09ORklHKSAtYSBNNTQ0NTVFVkIgbTY4ayBtY2Y1NDQ1eCBtNTQ0NTVldmIgZnJlZXNjYWxlCiAKQEAgLTIwNTMsMjAgKzIwNTUsMjAgQEAKIAlNNTQ3NUZGRV9jb25maWcpCUJPT1Q9MjtDT0RFPTMyO1ZJRD0xO1VTQj0xO1JBTT02NDtSQU0xPTY0OzsgXAogCU01NDc1R0ZFX2NvbmZpZykJQk9PVD00O0NPREU9MDtWSUQ9MDtVU0I9MDtSQU09NjQ7UkFNMT0wOzsgXAogCWVzYWM7IFwKLQllY2hvICIjZGVmaW5lIENGR19CVVNDTEsJMTMzMzMzMzMzIiA+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCi0JZWNobyAiI2RlZmluZSBDRkdfQk9PVFNaCSQke0JPT1R9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAotCWVjaG8gIiNkZWZpbmUgQ0ZHX0RSQU1TWgkkJHtSQU19IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19CVVNDTEsJMTMzMzMzMzMzIiA+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX0JPT1RTWgkkJHtCT09UfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfRFJBTVNaCSQke1JBTX0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJaWYgWyAiJCR7UkFNMX0iICE9ICIwIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX0RSQU1TWjEJJCR7UkFNMX0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19EUkFNU1oxCSQke1JBTTF9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCWZpOyBcCiAJaWYgWyAiJCR7Q09ERX0iICE9ICIwIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX05PUjFTWgkkJHtDT0RFfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX05PUjFTWgkkJHtDT0RFfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaTsgXAogCWlmIFsgIiQke1ZJRH0iID09ICIxIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX1ZJREVPIiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfVklERU8iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJZmk7IFwKIAlpZiBbICIkJHtVU0J9IiA9PSAiMSIgXSA7IHRoZW4gXAotCQllY2hvICIjZGVmaW5lIENGR19VU0JDVFJMIiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfVVNCQ1RSTCIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaQogCUAkKE1LQ09ORklHKSAtYSBNNTQ3NUVWQiBtNjhrIG1jZjU0N3hfOHggbTU0N3hldmIgZnJlZXNjYWxlCiAKQEAgLTIwODgsMjAgKzIwOTAsMjAgQEAKIAlNNTQ4NUdGRV9jb25maWcpCUJPT1Q9NDtDT0RFPTA7VklEPTA7VVNCPTA7UkFNPTY0O1JBTTE9MDs7IFwKIAlNNTQ4NUhGRV9jb25maWcpCUJPT1Q9MjtDT0RFPTE2O1ZJRD0xO1VTQj0wO1JBTT02NDtSQU0xPTA7OyBcCiAJZXNhYzsgXAotCWVjaG8gIiNkZWZpbmUgQ0ZHX0JVU0NMSwkxMDAwMDAwMDAiID4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKLQllY2hvICIjZGVmaW5lIENGR19CT09UU1oJJCR7Qk9PVH0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCi0JZWNobyAiI2RlZmluZSBDRkdfRFJBTVNaCSQke1JBTX0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX0JVU0NMSwkxMDAwMDAwMDAiID4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfQk9PVFNaCSQke0JPT1R9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19EUkFNU1oJJCR7UkFNfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlpZiBbICIkJHtSQU0xfSIgIT0gIjAiIF0gOyB0aGVuIFwKLQkJZWNobyAiI2RlZmluZSBDRkdfRFJBTVNaMQkkJHtSQU0xfSIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTX0RSQU1TWjEJJCR7UkFNMX0iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJZmk7IFwKIAlpZiBbICIkJHtDT0RFfSIgIT0gIjAiIF0gOyB0aGVuIFwKLQkJZWNobyAiI2RlZmluZSBDRkdfTk9SMVNaCSQke0NPREV9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfTk9SMVNaCSQke0NPREV9IiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCWZpOyBcCiAJaWYgWyAiJCR7VklEfSIgPT0gIjEiIF0gOyB0aGVuIFwKLQkJZWNobyAiI2RlZmluZSBDRkdfVklERU8iID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19WSURFTyIgPj4gJChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaTsgXAogCWlmIFsgIiQke1VTQn0iID09ICIxIiBdIDsgdGhlbiBcCi0JCWVjaG8gIiNkZWZpbmUgQ0ZHX1VTQkNUUkwiID4+ICQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCisJCWVjaG8gIiNkZWZpbmUgQ09ORklHX1NZU19VU0JDVFJMIiA+PiAkKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAogCWZpCiAJQCQoTUtDT05GSUcpIC1hIE01NDg1RVZCIG02OGsgbWNmNTQ3eF84eCBtNTQ4eGV2YiBmcmVlc2NhbGUKIApAQCAtMjEyMCwxMSArMjEyMiwxMSBAQAogCUBta2RpciAtcCAkKG9iailib2FyZC9mcmVlc2NhbGUvbXBjODMxM2VyZGIKIAlAaWYgWyAiJChmaW5kc3RyaW5nIF8zM18sJEApIiBdIDsgdGhlbiBcCiAJCSQoWEVDSE8pIC1uICIuLi4zM00gLi4uIiA7IFwKLQkJZWNobyAiI2RlZmluZSBDRkdfMzNNSFoiID4+JChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKKwkJZWNobyAiI2RlZmluZSBDT05GSUdfU1lTXzMzTUhaIiA+PiQob2JqKWluY2x1ZGUvY29uZmlnLmggOyBcCiAJZmkgOyBcCiAJaWYgWyAiJChmaW5kc3RyaW5nIF82Nl8sJEApIiBdIDsgdGhlbiBcCiAJCSQoWEVDSE8pIC1uICIuLi42Nk0uLi4iIDsgXAotCQllY2hvICIjZGVmaW5lIENGR182Nk1IWiIgPj4kKG9iailpbmNsdWRlL2NvbmZpZy5oIDsgXAorCQllY2hvICIjZGVmaW5lIENPTkZJR19TWVNfNjZNSFoiID4+JChvYmopaW5jbHVkZS9jb25maWcuaCA7IFwKIAlmaSA7IFwKIAlpZiBbICIkKGZpbmRzdHJpbmcgX05BTkRfLCRAKSIgXSA7IHRoZW4gXAogCQkkKFhFQ0hPKSAtbiAiLi4uTkFORC4uLiIgOyBcCmRpZmYgLS1naXQgYS9SRUFETUUgYi9SRUFETUUKaW5kZXggY2NkODM5Yy4uZWJlZTIwZiAxMDA2NDQKLS0tIGEvUkVBRE1FCisrKyBiL1JFQURNRQpAQCAtMjEwLDcgKzIxMCw3IEBACiAqIENvbmZpZ3VyYXRpb24gX1NFVFRJTkdTXzoKICAgVGhlc2UgZGVwZW5kIG9uIHRoZSBoYXJkd2FyZSBldGMuIGFuZCBzaG91bGQgbm90IGJlIG1lZGRsZWQgd2l0aCBpZgogICB5b3UgZG9uJ3Qga25vdyB3aGF0IHlvdSdyZSBkb2luZzsgdGhleSBoYXZlIG5hbWVzIGJlZ2lubmluZyB3aXRoCi0gICJDRkdfIi4KKyAgIkNPTkZJR19TWVNfIi4KIAogTGF0ZXIgd2Ugd2lsbCBhZGQgYSBjb25maWd1cmF0aW9uIHRvb2wgLSBwcm9iYWJseSBzaW1pbGFyIHRvIG9yIGV2ZW4KIGlkZW50aWNhbCB0byB3aGF0J3MgdXNlZCBmb3IgdGhlIExpbnV4IGtlcm5lbC4gUmlnaHQgbm93LCB3ZSBoYXZlIHRvCkBAIC0yODQsMTAgKzI4NCwxMCBAQAogLSBCb2FyZCBmbGF2b3VyOiAoaWYgQ09ORklHX01QQzgyNjBBRFMgaXMgZGVmaW5lZCkKIAkJQ09ORklHX0FEU1RZUEUKIAkJUG9zc2libGUgdmFsdWVzIGFyZToKLQkJCUNGR184MjYwQURTCS0gb3JpZ2luYWwgTVBDODI2MEFEUwotCQkJQ0ZHXzgyNjZBRFMJLSBNUEM4MjY2QURTCi0JCQlDRkdfUFEyRkFEUwktIFBRMkZBRFMtWlUgb3IgUFEyRkFEUy1WUgotCQkJQ0ZHXzgyNzJBRFMJLSBNUEM4MjcyQURTCisJCQlDT05GSUdfU1lTXzgyNjBBRFMJLSBvcmlnaW5hbCBNUEM4MjYwQURTCisJCQlDT05GSUdfU1lTXzgyNjZBRFMJLSBNUEM4MjY2QURTCisJCQlDT05GSUdfU1lTX1BRMkZBRFMJLSBQUTJGQURTLVpVIG9yIFBRMkZBRFMtVlIKKwkJCUNPTkZJR19TWVNfODI3MkFEUwktIE1QQzgyNzJBRFMKIAogLSBNUEM4MjRYIEZhbWlseSBNZW1iZXIgKGlmIENPTkZJR19NUEM4MjRYIGlzIGRlZmluZWQpCiAJCURlZmluZSBleGFjdGx5IG9uZSBvZgpAQCAtMzAyLDI4ICszMDIsMjggQEAKIAkJCQkJICBvciBYVEFML0VYVEFMKQogCiAtIDg1OS84NjYvODg1IENQVSBvcHRpb25zOiAoaWYgdXNpbmcgYSBNUEM4NTkgb3IgTVBDODY2IG9yIE1QQzg4NSBDUFUpOgotCQlDRkdfOHh4X0NQVUNMS19NSU4KLQkJQ0ZHXzh4eF9DUFVDTEtfTUFYCisJCUNPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4KKwkJQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAogCQlDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUCiAJCQlTZWUgZG9jL1JFQURNRS5NUEM4NjYKIAotCQlDRkdfTUVBU1VSRV9DUFVDTEsKKwkJQ09ORklHX1NZU19NRUFTVVJFX0NQVUNMSwogCiAJCURlZmluZSB0aGlzIHRvIG1lYXN1cmUgdGhlIGFjdHVhbCBDUFUgY2xvY2sgaW5zdGVhZAogCQlvZiByZWx5aW5nIG9uIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgY29uZmlndXJlZAogCQl2YWx1ZXMuIE1vc3RseSB1c2VmdWwgZm9yIGJvYXJkIGJyaW5ndXAgdG8gbWFrZSBzdXJlCiAJCXRoZSBQTEwgaXMgbG9ja2VkIGF0IHRoZSBpbnRlbmRlZCBmcmVxdWVuY3kuIE5vdGUKIAkJdGhhdCB0aGlzIHJlcXVpcmVzIGEgKHN0YWJsZSkgcmVmZXJlbmNlIGNsb2NrICgzMiBrSHoKLQkJUlRDIGNsb2NrIG9yIENGR184WFhfWElOKQorCQlSVEMgY2xvY2sgb3IgQ09ORklHX1NZU184WFhfWElOKQogCiAtIEludGVsIE1vbmFoYW5zIG9wdGlvbnM6Ci0JCUNGR19NT05BSEFOU19SVU5fTU9ERV9PU0NfUkFUSU8KKwkJQ09ORklHX1NZU19NT05BSEFOU19SVU5fTU9ERV9PU0NfUkFUSU8KIAogCQlEZWZpbmVzIHRoZSBNb25haGFucyBydW4gbW9kZSB0byBvc2NpbGxhdG9yCiAJCXJhdGlvLiBWYWxpZCB2YWx1ZXMgYXJlIDgsIDE2LCAyNCwgMzEuIFRoZSBjb3JlCiAJCWZyZXF1ZW5jeSBpcyB0aGlzIHZhbHVlIG11bHRpcGxpZWQgYnkgMTMgTUh6LgogCi0JCUNGR19NT05BSEFOU19UVVJCT19SVU5fTU9ERV9SQVRJTworCQlDT05GSUdfU1lTX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPCiAKIAkJRGVmaW5lcyB0aGUgTW9uYWhhbnMgdHVyYm8gbW9kZSB0byBvc2NpbGxhdG9yCiAJCXJhdGlvLiBWYWxpZCB2YWx1ZXMgYXJlIDEgKGRlZmF1bHQgaWYgdW5kZWZpbmVkKSBhbmQKQEAgLTQzNiw3ICs0MzYsNyBAQAogCQkJQ09ORklHX0NPTlNPTEVfQ1VSU09SCWN1cnNvciBkcmF3aW5nIG9uL29mZgogCQkJCQkJKHJlcXVpcmVzIGJsaW5rIHRpbWVyCiAJCQkJCQljZi4gaTgwNDIuYykKLQkJCUNGR19DT05TT0xFX0JMSU5LX0NPVU5UIGJsaW5rIGludGVydmFsIChjZi4gaTgwNDIuYykKKwkJCUNPTkZJR19TWVNfQ09OU09MRV9CTElOS19DT1VOVCBibGluayBpbnRlcnZhbCAoY2YuIGk4MDQyLmMpCiAJCQlDT05GSUdfQ09OU09MRV9USU1FCWRpc3BsYXkgdGltZS9kYXRlIGluZm8gaW4KIAkJCQkJCXVwcGVyIHJpZ2h0IGNvcm5lcgogCQkJCQkJKHJlcXVpcmVzIENPTkZJR19DTURfREFURSkKQEAgLTQ2MSw4ICs0NjEsOCBAQAogLSBDb25zb2xlIEJhdWRyYXRlOgogCQlDT05GSUdfQkFVRFJBVEUgLSBpbiBicHMKIAkJU2VsZWN0IG9uZSBvZiB0aGUgYmF1ZHJhdGVzIGxpc3RlZCBpbgotCQlDRkdfQkFVRFJBVEVfVEFCTEUsIHNlZSBiZWxvdy4KLQkJQ0ZHX0JSR0NMS19QUkVTQ0FMRSwgYmF1ZHJhdGUgcHJlc2NhbGUKKwkJQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSwgc2VlIGJlbG93LgorCQlDT05GSUdfU1lTX0JSR0NMS19QUkVTQ0FMRSwgYmF1ZHJhdGUgcHJlc2NhbGUKIAogLSBJbnRlcnJ1cHQgZHJpdmVuIHNlcmlhbCBwb3J0IGlucHV0OgogCQlDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KQEAgLTU0Niw3ICs1NDYsNyBAQAogLSBLZ2RiIFNlcmlhbCBCYXVkcmF0ZTogKGlmIENPTkZJR19DTURfS0dEQiBpcyBkZWZpbmVkKQogCQlDT05GSUdfS0dEQl9CQVVEUkFURQogCQlTZWxlY3Qgb25lIG9mIHRoZSBiYXVkcmF0ZXMgbGlzdGVkIGluCi0JCUNGR19CQVVEUkFURV9UQUJMRSwgc2VlIGJlbG93LgorCQlDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFLCBzZWUgYmVsb3cuCiAKIC0gTW9uaXRvciBGdW5jdGlvbnM6CiAJCU1vbml0b3IgY29tbWFuZHMgY2FuIGJlIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkCkBAIC02NzMsNyArNjczLDcgQEAKIAkJQ09ORklHX1JUQ19EUzE2NHgJLSB1c2UgRGFsbGFzIERTMTY0eCBSVEMKIAkJQ09ORklHX1JUQ19JU0wxMjA4CS0gdXNlIEludGVyc2lsIElTTDEyMDggUlRDCiAJCUNPTkZJR19SVENfTUFYNjkwMAktIHVzZSBNYXhpbSwgSW5jLiBNQVg2OTAwIFJUQwotCQlDRkdfUlRDX0RTMTMzN19OT09TQwktIFR1cm4gb2ZmIHRoZSBPU0Mgb3V0cHV0IGZvciBEUzEzMzcKKwkJQ09ORklHX1NZU19SVENfRFMxMzM3X05PT1NDCS0gVHVybiBvZmYgdGhlIE9TQyBvdXRwdXQgZm9yIERTMTMzNwogCiAJCU5vdGUgdGhhdCBpZiB0aGUgUlRDIHVzZXMgSTJDLCB0aGVuIHRoZSBJMkMgaW50ZXJmYWNlCiAJCW11c3QgYWxzbyBiZSBjb25maWd1cmVkLiBTZWUgSTJDIFN1cHBvcnQsIGJlbG93LgpAQCAtNjg3LDcgKzY4Nyw3IEBACiAKIC0gUGFydGl0aW9uIFN1cHBvcnQ6CiAJCUNPTkZJR19NQUNfUEFSVElUSU9OIGFuZC9vciBDT05GSUdfRE9TX1BBUlRJVElPTgotCQlhbmQvb3IgQ09ORklHX0lTT19QQVJUSVRJT04KKwkJYW5kL29yIENPTkZJR19JU09fUEFSVElUSU9OIGFuZC9vciBDT05GSUdfRUZJX1BBUlRJVElPTgogCiAJCUlmIElERSBvciBTQ1NJIHN1cHBvcnQgaXMgZW5hYmxlZCAoQ09ORklHX0NNRF9JREUgb3IKIAkJQ09ORklHX0NNRF9TQ1NJKSB5b3UgbXVzdCBjb25maWd1cmUgc3VwcG9ydCBmb3IgYXQKQEAgLTcxMSwxMSArNzExLDExIEBACiAJCUNPTkZJR19MQkE0OAogCiAJCVNldCB0aGlzIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBkaXNrcyBsYXJnZXIgdGhhbiAxMzdHQgotCQlBbHNvIGxvb2sgYXQgQ0ZHXzY0QklUX0xCQSAsQ0ZHXzY0QklUX1ZTUFJJTlRGIGFuZCBDRkdfNjRCSVRfU1RSVE9VTAorCQlBbHNvIGxvb2sgYXQgQ09ORklHX1NZU182NEJJVF9MQkEgLENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYgYW5kIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAogCQlXaGl0aG91dCB0aGVzZSAsIExCQTQ4IHN1cHBvcnQgdXNlcyAzMmJpdCB2YXJpYWJsZXMgYW5kIHdpbGwgJ29ubHknCiAJCXN1cHBvcnQgZGlza3MgdXAgdG8gMi4xVEIuCiAKLQkJQ0ZHXzY0QklUX0xCQToKKwkJQ09ORklHX1NZU182NEJJVF9MQkE6CiAJCQlXaGVuIGVuYWJsZWQsIG1ha2VzIHRoZSBJREUgc3Vic3lzdGVtIHVzZSA2NGJpdCBzZWN0b3IgYWRkcmVzc2VzLgogCQkJRGVmYXVsdCBpcyAzMmJpdC4KIApAQCAtNzI0LDEyICs3MjQsMTIgQEAKIAkJU1lNNTNDOFhYIFNDU0kgY29udHJvbGxlcjsgZGVmaW5lCiAJCUNPTkZJR19TQ1NJX1NZTTUzQzhYWCB0byBlbmFibGUgaXQuCiAKLQkJQ0ZHX1NDU0lfTUFYX0xVTiBbOF0sIENGR19TQ1NJX01BWF9TQ1NJX0lEIFs3XSBhbmQKLQkJQ0ZHX1NDU0lfTUFYX0RFVklDRSBbQ0ZHX1NDU0lfTUFYX1NDU0lfSUQgKgotCQlDRkdfU0NTSV9NQVhfTFVOXSBjYW4gYmUgYWRqdXN0ZWQgdG8gZGVmaW5lIHRoZQorCQlDT05GSUdfU1lTX1NDU0lfTUFYX0xVTiBbOF0sIENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCBbN10gYW5kCisJCUNPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFIFtDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQgKgorCQlDT05GSUdfU1lTX1NDU0lfTUFYX0xVTl0gY2FuIGJlIGFkanVzdGVkIHRvIGRlZmluZSB0aGUKIAkJbWF4aW11bSBudW1iZXJzIG9mIExVTnMsIFNDU0kgSUQncyBhbmQgdGFyZ2V0CiAJCWRldmljZXMuCi0JCUNGR19TQ1NJX1NZTTUzQzhYWF9DQ0YgdG8gZml4IGNsb2NrIHRpbWluZyAoODBNaHopCisJCUNPTkZJR19TWVNfU0NTSV9TWU01M0M4WFhfQ0NGIHRvIGZpeCBjbG9jayB0aW1pbmcgKDgwTWh6KQogCiAtIE5FVFdPUksgU3VwcG9ydCAoUENJKToKIAkJQ09ORklHX0UxMDAwCkBAIC04MTEsNyArODExLDcgQEAKIAkJCUNPTkZJR19VU0JfQ09ORklHCiAJCQkJZm9yIGRpZmZlcmVudGlhbCBkcml2ZXJzOiAweDAwMDAxMDAwCiAJCQkJZm9yIHNpbmdsZSBlbmRlZCBkcml2ZXJzOiAweDAwMDA1MDAwCi0JCQlDRkdfVVNCX0VWRU5UX1BPTEwKKwkJCUNPTkZJR19TWVNfVVNCX0VWRU5UX1BPTEwKIAkJCQlNYXkgYmUgZGVmaW5lZCB0byBhbGxvdyBpbnRlcnJ1cHQgcG9sbGluZwogCQkJCWluc3RlYWQgb2YgdXNpbmcgYXN5bmNocm9ub3VzIGludGVycnVwdHMKIApAQCAtODM4LDE4ICs4MzgsMTggQEAKIAkJCURlZmluZSB0aGlzIHRvIGhhdmUgYSB0dHkgdHlwZSBvZiBkZXZpY2UgYXZhaWxhYmxlIHRvCiAJCQl0YWxrIHRvIHRoZSBVREMgZGV2aWNlCiAKLQkJCUNGR19DT05TT0xFX0lTX0lOX0VOVgorCQkJQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogCQkJRGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgc3RkaW4sIHN0ZG91dCAmL29yIHN0ZGVyciB0bwogCQkJYmUgc2V0IHRvIHVzYnR0eS4KIAogCQkJbXBjOHh4OgotCQkJCUNGR19VU0JfRVhUQ19DTEsgMHhCTEFICisJCQkJQ09ORklHX1NZU19VU0JfRVhUQ19DTEsgMHhCTEFICiAJCQkJRGVyaXZlIFVTQiBjbG9jayBmcm9tIGV4dGVybmFsIGNsb2NrICJibGFoIgotCQkJCS0gQ0ZHX1VTQl9FWFRDX0NMSyAweDAyCisJCQkJLSBDT05GSUdfU1lTX1VTQl9FWFRDX0NMSyAweDAyCiAKLQkJCQlDRkdfVVNCX0JSR19DTEsgMHhCTEFICisJCQkJQ09ORklHX1NZU19VU0JfQlJHX0NMSyAweEJMQUgKIAkJCQlEZXJpdmUgVVNCIGNsb2NrIGZyb20gYnJnY2xrCi0JCQkJLSBDRkdfVVNCX0JSR19DTEsgMHgwNAorCQkJCS0gQ09ORklHX1NZU19VU0JfQlJHX0NMSyAweDA0CiAKIAkJSWYgeW91IGhhdmUgYSBVU0ItSUYgYXNzaWduZWQgVmVuZG9ySUQgdGhlbiB5b3UgbWF5IHdpc2ggdG8KIAkJZGVmaW5lIHlvdXIgb3duIHZlbmRvciBzcGVjaWZpYyB2YWx1ZXMgZWl0aGVyIGluIEJvYXJkTmFtZS5oCkBAIC04OTEsMTYgKzg5MSwxNiBAQAogCQlDT05GSUdfSkZGUzJfTkFORF9ERVYKIAkJRGVmaW5lIHRoZXNlIGZvciBhIGRlZmF1bHQgcGFydGl0aW9uIG9uIGEgTkFORCBkZXZpY2UKIAotCQlDRkdfSkZGUzJfRklSU1RfU0VDVE9SLAotCQlDRkdfSkZGUzJfRklSU1RfQkFOSywgQ0ZHX0pGRlMyX05VTV9CQU5LUworCQlDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUiwKKwkJQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LLCBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwogCQlEZWZpbmUgdGhlc2UgZm9yIGEgZGVmYXVsdCBwYXJ0aXRpb24gb24gYSBOT1IgZGV2aWNlCiAKLQkJQ0ZHX0pGRlNfQ1VTVE9NX1BBUlQKKwkJQ09ORklHX1NZU19KRkZTX0NVU1RPTV9QQVJUCiAJCURlZmluZSB0aGlzIHRvIGNyZWF0ZSBhbiBvd24gcGFydGl0aW9uLiBZb3UgaGF2ZSB0byBwcm92aWRlIGEKIAkJZnVuY3Rpb24gc3RydWN0IHBhcnRfaW5mbyogamZmczJfcGFydF9pbmZvKGludCBwYXJ0X251bSkKIAogCQlJZiB5b3UgZGVmaW5lIG9ubHkgb25lIEpGRlMyIHBhcnRpdGlvbiB5b3UgbWF5IGFsc28gd2FudCB0bwotCQkjZGVmaW5lIENGR19KRkZTX1NJTkdMRV9QQVJUCTEKKwkJI2RlZmluZSBDT05GSUdfU1lTX0pGRlNfU0lOR0xFX1BBUlQJMQogCQl0byBkaXNhYmxlIHRoZSBjb21tYW5kIGNocGFydC4gVGhpcyBpcyB0aGUgZGVmYXVsdCB3aGVuIHlvdQogCQloYXZlIG5vdCBkZWZpbmVkIGEgY3VzdG9tIHBhcnRpdGlvbgogCkBAIC0xMDE0LDcgKzEwMTQsNyBAQAogCQkJMzIweDI0MC4gQmxhY2sgJiB3aGl0ZS4KIAogCQlOb3JtYWxseSBkaXNwbGF5IGlzIGJsYWNrIG9uIHdoaXRlIGJhY2tncm91bmQ7IGRlZmluZQotCQlDRkdfV0hJVEVfT05fQkxBQ0sgdG8gZ2V0IGl0IGludmVydGVkLgorCQlDT05GSUdfU1lTX1dISVRFX09OX0JMQUNLIHRvIGdldCBpdCBpbnZlcnRlZC4KIAogLSBTcGxhc2ggU2NyZWVuIFN1cHBvcnQ6IENPTkZJR19TUExBU0hfU0NSRUVOCiAKQEAgLTEwNDEsNyArMTA0MSw3IEBACiAJCWNvbXByZXNzZWQgaW1hZ2VzIGFyZSBzdXBwb3J0ZWQuCiAKIAkJTk9URTogdGhlIGJ6aXAyIGFsZ29yaXRobSByZXF1aXJlcyBhIGxvdCBvZiBSQU0sIHNvCi0JCXRoZSBtYWxsb2MgYXJlYSAoYXMgZGVmaW5lZCBieSBDRkdfTUFMTE9DX0xFTikgc2hvdWxkCisJCXRoZSBtYWxsb2MgYXJlYSAoYXMgZGVmaW5lZCBieSBDT05GSUdfU1lTX01BTExPQ19MRU4pIHNob3VsZAogCQliZSBhdCBsZWFzdCA0TUIuCiAKIAkJQ09ORklHX0xaTUEKQEAgLTEwNjUsNyArMTA2NSw3IEBACiAKIAkJVXNlIHRoZSBsem1haW5mbyB0b29sIHRvIGRldGVybWluYXRlIHRoZSBsYyBhbmQgbHAgdmFsdWVzIGFuZAogCQl0aGVuIGNhbGN1bGF0ZSB0aGUgYW1vdW50IG9mIG5lZWRlZCBkeW5hbWljIG1lbW9yeSAoZW5zdXJpbmcKLQkJdGhlIGFwcHJvcHJpYXRlIENGR19NQUxMT0NfTEVOIHZhbHVlKS4KKwkJdGhlIGFwcHJvcHJpYXRlIENPTkZJR19TWVNfTUFMTE9DX0xFTiB2YWx1ZSkuCiAKIC0gTUlJL1BIWSBzdXBwb3J0OgogCQlDT05GSUdfUEhZX0FERFIKQEAgLTEwOTUsOCArMTA5NSwxMSBAQAogCiAtIEV0aGVybmV0IGFkZHJlc3M6CiAJCUNPTkZJR19FVEhBRERSCisJCUNPTkZJR19FVEgxQUREUgogCQlDT05GSUdfRVRIMkFERFIKIAkJQ09ORklHX0VUSDNBRERSCisJCUNPTkZJR19FVEg0QUREUgorCQlDT05GSUdfRVRINUFERFIKIAogCQlEZWZpbmUgYSBkZWZhdWx0IHZhbHVlIGZvciBFdGhlcm5ldCBhZGRyZXNzIHRvIHVzZQogCQlmb3IgdGhlIHJlc3BlY3RpdmUgRXRoZXJuZXQgaW50ZXJmYWNlLCBpbiBjYXNlIHRoaXMKQEAgLTEyNzksMTUgKzEyODIsMTUgQEAKIAkJVGhlcmUgYXJlIHNldmVyYWwgb3RoZXIgcXVhbnRpdGllcyB0aGF0IG11c3QgYWxzbyBiZQogCQlkZWZpbmVkIHdoZW4geW91IGRlZmluZSBDT05GSUdfSEFSRF9JMkMgb3IgQ09ORklHX1NPRlRfSTJDLgogCi0JCUluIGJvdGggY2FzZXMgeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAorCQlJbiBib3RoIGNhc2VzIHlvdSB3aWxsIG5lZWQgdG8gZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECiAJCXRvIGJlIHRoZSBmcmVxdWVuY3kgKGluIEh6KSBhdCB3aGljaCB5b3Ugd2lzaCB5b3VyIGkyYyBidXMKLQkJdG8gcnVuIGFuZCBDRkdfSTJDX1NMQVZFIHRvIGJlIHRoZSBhZGRyZXNzIG9mIHRoaXMgbm9kZSAoaWUKKwkJdG8gcnVuIGFuZCBDT05GSUdfU1lTX0kyQ19TTEFWRSB0byBiZSB0aGUgYWRkcmVzcyBvZiB0aGlzIG5vZGUgKGllCiAJCXRoZSBDUFUncyBpMmMgbm9kZSBhZGRyZXNzKS4KIAogCQlOb3csIHRoZSB1LWJvb3QgaTJjIGNvZGUgZm9yIHRoZSBtcGM4eHggKGNwdS9tcGM4eHgvaTJjLmMpCiAJCXNldHMgdGhlIENQVSB1cCBhcyBhIG1hc3RlciBub2RlIGFuZCBzbyBpdHMgYWRkcmVzcyBzaG91bGQKIAkJdGhlcmVmb3JlIGJlIGNsZWFyZWQgdG8gMCAoU2VlLCBlZywgTVBDODIzZSBVc2VyJ3MgTWFudWFsCi0JCXAuMTYtNDczKS4gU28sIHNldCBDRkdfSTJDX1NMQVZFIHRvIDAuCisJCXAuMTYtNDczKS4gU28sIHNldCBDT05GSUdfU1lTX0kyQ19TTEFWRSB0byAwLgogCiAJCVRoYXQncyBhbGwgdGhhdCdzIHJlcXVpcmVkIGZvciBDT05GSUdfSEFSRF9JMkMuCiAKQEAgLTEzNTgsNyArMTM2MSw3IEBACiAKIAkJI2RlZmluZSBJMkNfREVMQVkgIHVkZWxheSgyKQogCi0JCUNGR19JMkNfSU5JVF9CT0FSRAorCQlDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECiAKIAkJV2hlbiBhIGJvYXJkIGlzIHJlc2V0IGR1cmluZyBhbiBpMmMgYnVzIHRyYW5zZmVyCiAJCWNoaXBzIG1pZ2h0IHRoaW5rIHRoYXQgdGhlIGN1cnJlbnQgdHJhbnNmZXIgaXMgc3RpbGwKQEAgLTEzODIsNyArMTM4NSw3IEBACiAJCWFjdGl2ZS4gIFRvIHN3aXRjaCB0byBhIGRpZmZlcmVudCBidXMsIHVzZSB0aGUgJ2kyYyBkZXYnIGNvbW1hbmQuCiAJCU5vdGUgdGhhdCBidXMgbnVtYmVyaW5nIGlzIHplcm8tYmFzZWQuCiAKLQkJQ0ZHX0kyQ19OT1BST0JFUworCQlDT05GSUdfU1lTX0kyQ19OT1BST0JFUwogCiAJCVRoaXMgb3B0aW9uIHNwZWNpZmllcyBhIGxpc3Qgb2YgSTJDIGRldmljZXMgdGhhdCB3aWxsIGJlIHNraXBwZWQKIAkJd2hlbiB0aGUgJ2kyYyBwcm9iZScgY29tbWFuZCBpcyBpc3N1ZWQgKG9yICdpcHJvYmUnIHVzaW5nIHRoZSBsZWdhY3kKQEAgLTEzOTEsMzEgKzEzOTQsMzEgQEAKIAogCQllLmcuCiAJCQkjdW5kZWYJQ09ORklHX0kyQ19NVUxUSV9CVVMKLQkJCSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg1MCwweDY4fQorCQkJI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg1MCwweDY4fQogCiAJCXdpbGwgc2tpcCBhZGRyZXNzZXMgMHg1MCBhbmQgMHg2OCBvbiBhIGJvYXJkIHdpdGggb25lIEkyQyBidXMKIAogCQkJI2RlZmluZQlDT05GSUdfSTJDX01VTFRJX0JVUwotCQkJI2RlZmluZSBDRkdfSTJDX01VTFRJX05PUFJPQkVTCXt7MCwweDUwfSx7MCwweDY4fSx7MSwweDU0fX0KKwkJCSNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfTk9QUk9CRVMJe3swLDB4NTB9LHswLDB4Njh9LHsxLDB4NTR9fQogCiAJCXdpbGwgc2tpcCBhZGRyZXNzZXMgMHg1MCBhbmQgMHg2OCBvbiBidXMgMCBhbmQgYWRkcmVzcyAweDU0IG9uIGJ1cyAxCiAKLQkJQ0ZHX1NQRF9CVVNfTlVNCisJCUNPTkZJR19TWVNfU1BEX0JVU19OVU0KIAogCQlJZiBkZWZpbmVkLCB0aGVuIHRoaXMgaW5kaWNhdGVzIHRoZSBJMkMgYnVzIG51bWJlciBmb3IgRERSIFNQRC4KIAkJSWYgbm90IGRlZmluZWQsIHRoZW4gVS1Cb290IGFzc3VtZXMgdGhhdCBTUEQgaXMgb24gSTJDIGJ1cyAwLgogCi0JCUNGR19SVENfQlVTX05VTQorCQlDT05GSUdfU1lTX1JUQ19CVVNfTlVNCiAKIAkJSWYgZGVmaW5lZCwgdGhlbiB0aGlzIGluZGljYXRlcyB0aGUgSTJDIGJ1cyBudW1iZXIgZm9yIHRoZSBSVEMuCiAJCUlmIG5vdCBkZWZpbmVkLCB0aGVuIFUtQm9vdCBhc3N1bWVzIHRoYXQgUlRDIGlzIG9uIEkyQyBidXMgMC4KIAotCQlDRkdfRFRUX0JVU19OVU0KKwkJQ09ORklHX1NZU19EVFRfQlVTX05VTQogCiAJCUlmIGRlZmluZWQsIHRoZW4gdGhpcyBpbmRpY2F0ZXMgdGhlIEkyQyBidXMgbnVtYmVyIGZvciB0aGUgRFRULgogCQlJZiBub3QgZGVmaW5lZCwgdGhlbiBVLUJvb3QgYXNzdW1lcyB0aGF0IERUVCBpcyBvbiBJMkMgYnVzIDAuCiAKLQkJQ0ZHX0kyQ19EVFRfQUREUjoKKwkJQ09ORklHX1NZU19JMkNfRFRUX0FERFI6CiAKIAkJSWYgZGVmaW5lZCwgc3BlY2lmaWVzIHRoZSBJMkMgYWRkcmVzcyBvZiB0aGUgRFRUIGRldmljZS4KIAkJSWYgbm90IGRlZmluZWQsIHRoZW4gVS1Cb290IHVzZXMgcHJlZGVmaW5lZCB2YWx1ZSBmb3IKQEAgLTE0MjYsNiArMTQyOSw1MyBAQAogCQlEZWZpbmUgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gdXNlIEZyZWVzY2FsZSdzIEkyQyBkcml2ZXIgaW4KIAkJZHJpdmVycy9pMmMvZnNsX2kyYy5jLgogCisJCUNPTkZJR19JMkNfTVVYCisKKwkJRGVmaW5lIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIEkyQyBkZXZpY2VzIHJlYWNoZWQgb3ZlciAxIC4uIG4KKwkJSTJDIE11eGVzIGxpa2UgdGhlIHBjYTk1NDRhLiBUaGlzIG9wdGlvbiBhZGRlcyBhIG5ldyBJMkMKKwkJQ29tbWFuZCAiaTJjIGJ1cyBbbXV4dHlwZTptdXhhZGRyOm11eGNoYW5uZWxdIiB3aGljaCBhZGRzIGEKKwkJbmV3IEkyQyBCdXMgdG8gdGhlIGV4aXN0aW5nIEkyQyBCdXNzZXMuIElmIHlvdSBzZWxlY3QgdGhlCisJCW5ldyBCdXMgd2l0aCAiaTJjIGRldiIsIHUtYmJvdCBzZW5kcyBmaXJzdCB0aGUgY29tbWFuZG9zIGZvcgorCQl0aGUgbXV4ZXMgdG8gYWN0aXZhdGUgdGhpcyBuZXcgImJ1cyIuCisKKwkJQ09ORklHX0kyQ19NVUxUSV9CVVMgbXVzdCBiZSBhbHNvIGRlZmluZWQsIHRvIHVzZSB0aGlzCisJCWZlYXR1cmUhCisKKwkJRXhhbXBsZToKKwkJQWRkaW5nIGEgbmV3IEkyQyBCdXMgcmVhY2hlZCBvdmVyIDIgcGNhOTU0NGEgbXV4ZXMKKwkJCVRoZSBGaXJzdCBtdXggd2l0aCBhZGRyZXNzIDcwIGFuZCBjaGFubmVsIDYKKwkJCVRoZSBTZWNvbmQgbXV4IHdpdGggYWRkcmVzcyA3MSBhbmQgY2hhbm5lbCA0CisKKwkJPT4gaTJjIGJ1cyBwY2E5NTQ0YTo3MDo2OnBjYTk1NDRhOjcxOjQKKworCQlVc2UgdGhlICJpMmMgYnVzIiBjb21tYW5kIHdpdGhvdXQgcGFyYW1ldGVyLCB0byBnZXQgYSBsaXN0CisJCW9mIEkyQyBCdXNzZXMgd2l0aCBtdXhlczoKKworCQk9PiBpMmMgYnVzCisJCUJ1c3NlcyByZWFjaGVkIG92ZXIgbXV4ZXM6CisJCUJ1cyBJRDogMgorCQkgIHJlYWNoZWQgb3ZlciBNdXgoZXMpOgorCQkgICAgcGNhOTU0NGFANzAgY2g6IDQKKwkJQnVzIElEOiAzCisJCSAgcmVhY2hlZCBvdmVyIE11eChlcyk6CisJCSAgICBwY2E5NTQ0YUA3MCBjaDogNgorCQkgICAgcGNhOTU0NGFANzEgY2g6IDQKKwkJPT4KKworCQlJZiB5b3Ugbm93IHN3aXRjaCB0byB0aGUgbmV3IEkyQyBCdXMgMyB3aXRoICJpMmMgZGV2IDMiCisJCXUtYm9vdCBzZW5kcyBGaXJzdCB0aGUgQ29tbWFuZG8gdG8gdGhlIG11eEA3MCB0byBlbmFibGUKKwkJY2hhbm5lbCA2LCBhbmQgdGhlbiB0aGUgQ29tbWFuZG8gdG8gdGhlIG11eEA3MSB0byBlbmFibGUKKwkJdGhlIGNoYW5uZWwgNC4KKworCQlBZnRlciB0aGF0LCB5b3UgY2FuIHVzZSB0aGUgIm5vcm1hbCIgaTJjIGNvbW1hbmRzIGFzCisJCXVzdWFsLCB0byBjb21tdW5pY2F0ZSB3aXRoIHlvdXIgSTJDIGRldmljZXMgYmVoaW5kCisJCXRoZSAyIG11eGVzLgorCisJCVRoaXMgb3B0aW9uIGlzIGFjdHVhbGx5IGltcGxlbWVudGVkIGZvciB0aGUgYml0YmFuZ2luZworCQlhbGdvcml0aG0gaW4gY29tbW9uL3NvZnRfaTJjLmMgYW5kIGZvciB0aGUgSGFyZHdhcmUgSTJDCisJCUJ1cyBvbiB0aGUgTVBDODI2MC4gQnV0IGl0IHNob3VsZCBiZSBub3Qgc28gZGlmZmljdWx0CisJCXRvIGFkZCB0aGlzIG9wdGlvbiB0byBvdGhlciBhcmNoaXRlY3R1cmVzLgorCiAKIC0gU1BJIFN1cHBvcnQ6CUNPTkZJR19TUEkKIApAQCAtMTQ3OSwxMSArMTUyOSwxMSBAQAogCiAJCVNwZWNpZnkgdGhlIG51bWJlciBvZiBGUEdBIGRldmljZXMgdG8gc3VwcG9ydC4KIAotCQlDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisJCUNPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAKIAkJRW5hYmxlIHByaW50aW5nIG9mIGhhc2ggbWFya3MgZHVyaW5nIEZQR0EgY29uZmlndXJhdGlvbi4KIAotCQlDRkdfRlBHQV9DSEVDS19CVVNZCisJCUNPTkZJR19TWVNfRlBHQV9DSEVDS19CVVNZCiAKIAkJRW5hYmxlIGNoZWNrcyBvbiBGUEdBIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGJ1c3kKIAkJc3RhdHVzIGJ5IHRoZSBjb25maWd1cmF0aW9uIGZ1bmN0aW9uLiBUaGlzIG9wdGlvbgpAQCAtMTQ5NSwyOSArMTU0NSwyOSBAQAogCQlJZiBkZWZpbmVkLCBhIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgZGVsYXlzIGluIHRoZSBGUEdBCiAJCWNvbmZpZ3VyYXRpb24gZHJpdmVyLgogCi0JCUNGR19GUEdBX0NIRUNLX0NUUkxDCisJCUNPTkZJR19TWVNfRlBHQV9DSEVDS19DVFJMQwogCQlBbGxvdyBDb250cm9sLUMgdG8gaW50ZXJydXB0IEZQR0EgY29uZmlndXJhdGlvbgogCi0JCUNGR19GUEdBX0NIRUNLX0VSUk9SCisJCUNPTkZJR19TWVNfRlBHQV9DSEVDS19FUlJPUgogCiAJCUNoZWNrIGZvciBjb25maWd1cmF0aW9uIGVycm9ycyBkdXJpbmcgRlBHQSBiaXRmaWxlCiAJCWxvYWRpbmcuIEZvciBleGFtcGxlLCBhYm9ydCBkdXJpbmcgVmlydGV4IElJCiAJCWNvbmZpZ3VyYXRpb24gaWYgdGhlIElOSVRfQiBsaW5lIGdvZXMgbG93ICh3aGljaAogCQlpbmRpY2F0ZWQgYSBDUkMgZXJyb3IpLgogCi0JCUNGR19GUEdBX1dBSVRfSU5JVAorCQlDT05GSUdfU1lTX0ZQR0FfV0FJVF9JTklUCiAKIAkJTWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIHRoZSBJTklUX0IgbGluZSB0byBkZWFzc2VydAogCQlhZnRlciBQUk9CX0IgaGFzIGJlZW4gZGVhc3NlcnRlZCBkdXJpbmcgYSBWaXJ0ZXggSUkKIAkJRlBHQSBjb25maWd1cmF0aW9uIHNlcXVlbmNlLiBUaGUgZGVmYXVsdCB0aW1lIGlzIDUwMAogCQltcy4KIAotCQlDRkdfRlBHQV9XQUlUX0JVU1kKKwkJQ09ORklHX1NZU19GUEdBX1dBSVRfQlVTWQogCiAJCU1heGltdW0gdGltZSB0byB3YWl0IGZvciBCVVNZIHRvIGRlYXNzZXJ0IGR1cmluZwogCQlWaXJ0ZXggSUkgRlBHQSBjb25maWd1cmF0aW9uLiBUaGUgZGVmYXVsdCBpcyA1IG1zLgogCi0JCUNGR19GUEdBX1dBSVRfQ09ORklHCisJCUNPTkZJR19TWVNfRlBHQV9XQUlUX0NPTkZJRwogCiAJCVRpbWUgdG8gd2FpdCBhZnRlciBGUEdBIGNvbmZpZ3VyYXRpb24uIFRoZSBkZWZhdWx0IGlzCiAJCTIwMCBtcy4KQEAgLTE2MTUsNyArMTY2NSw3IEBACiAJCWZvciB0aGUgImh1c2giIHNoZWxsLgogCiAKLQkJQ0ZHX0hVU0hfUEFSU0VSCisJCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAogCQlEZWZpbmUgdGhpcyB2YXJpYWJsZSB0byBlbmFibGUgdGhlICJodXNoIiBzaGVsbCAoZnJvbQogCQlCdXN5Ym94KSBhcyBjb21tYW5kIGxpbmUgaW50ZXJwcmV0ZXIsIHRodXMgZW5hYmxpbmcKQEAgLTE2MjcsNyArMTY3Nyw3IEBACiAJCXdpdGggYSBzb21ld2hhdCBzbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCiAKIAotCQlDRkdfUFJPTVBUX0hVU0hfUFMyCisJCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCiAKIAkJVGhpcyBkZWZpbmVzIHRoZSBzZWNvbmRhcnkgcHJvbXB0IHN0cmluZywgd2hpY2ggaXMKIAkJcHJpbnRlZCB3aGVuIHRoZSBjb21tYW5kIGludGVycHJldGVyIG5lZWRzIG1vcmUgaW5wdXQKQEAgLTE2OTksMTAgKzE3NDksMTAgQEAKIAkJQWRkaW5nIHRoaXMgb3B0aW9uIGFkZHMgc3VwcG9ydCBmb3IgWGlsaW54IFN5c3RlbUFDRQogCQljaGlwcyBhdHRhY2hlZCB2aWEgc29tZSBzb3J0IG9mIGxvY2FsIGJ1cy4gVGhlIGFkZHJlc3MKIAkJb2YgdGhlIGNoaXAgbXVzdCBhbHNvIGJlIGRlZmluZWQgaW4gdGhlCi0JCUNGR19TWVNURU1BQ0VfQkFTRSBtYWNyby4gRm9yIGV4YW1wbGU6CisJCUNPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgbWFjcm8uIEZvciBleGFtcGxlOgogCiAJCSNkZWZpbmUgQ09ORklHX1NZU1RFTUFDRQotCQkjZGVmaW5lIENGR19TWVNURU1BQ0VfQkFTRSAweGYwMDAwMDAwCisJCSNkZWZpbmUgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSAweGYwMDAwMDAwCiAKIAkJV2hlbiBTeXN0ZW1BQ0Ugc3VwcG9ydCBpcyBhZGRlZCwgdGhlICJhY2UiIGRldmljZSB0eXBlCiAJCWJlY29tZXMgYXZhaWxhYmxlIHRvIHRoZSBmYXQgY29tbWFuZHMsIGkuZS4gZmF0bHMuCkBAIC0xNzM3LDYgKzE3ODcsMTQgQEAKIAkJZXhhbXBsZSwgc29tZSBMRUQncykgb24geW91ciBib2FyZC4gQXQgdGhlIG1vbWVudCwKIAkJdGhlIGZvbGxvd2luZyBjaGVja3BvaW50cyBhcmUgaW1wbGVtZW50ZWQ6CiAKKy0gQXV0b21hdGljIHNvZnR3YXJlIHVwZGF0ZXMgdmlhIFRGVFAgc2VydmVyCisJCUNPTkZJR19VUERBVEVfVEZUUAorCQlDT05GSUdfVVBEQVRFX1RGVFBfQ05UX01BWAorCQlDT05GSUdfVVBEQVRFX1RGVFBfTVNFQ19NQVgKKworCQlUaGVzZSBvcHRpb25zIGVuYWJsZSBhbmQgY29udHJvbCB0aGUgYXV0by11cGRhdGUgZmVhdHVyZTsKKwkJZm9yIGEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiByZWZlciB0byBkb2MvUkVBRE1FLnVwZGF0ZS4KKwogTGVnYWN5IHVJbWFnZSBmb3JtYXQ6CiAKICAgQXJnCVdoZXJlCQkJV2hlbgpAQCAtMTk0Miw1MyArMjAwMCw1MyBAQAogQ29uZmlndXJhdGlvbiBTZXR0aW5nczoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS0gQ0ZHX0xPTkdIRUxQOiBEZWZpbmVkIHdoZW4geW91IHdhbnQgbG9uZyBoZWxwIG1lc3NhZ2VzIGluY2x1ZGVkOworLSBDT05GSUdfU1lTX0xPTkdIRUxQOiBEZWZpbmVkIHdoZW4geW91IHdhbnQgbG9uZyBoZWxwIG1lc3NhZ2VzIGluY2x1ZGVkOwogCQl1bmRlZmluZSB0aGlzIHdoZW4geW91J3JlIHNob3J0IG9mIG1lbW9yeS4KIAotLSBDRkdfUFJPTVBUOglUaGlzIGlzIHdoYXQgVS1Cb290IHByaW50cyBvbiB0aGUgY29uc29sZSB0bworLSBDT05GSUdfU1lTX1BST01QVDoJVGhpcyBpcyB3aGF0IFUtQm9vdCBwcmludHMgb24gdGhlIGNvbnNvbGUgdG8KIAkJcHJvbXB0IGZvciB1c2VyIGlucHV0LgogCi0tIENGR19DQlNJWkU6CUJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlCistIENPTkZJR19TWVNfQ0JTSVpFOglCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZQogCi0tIENGR19QQlNJWkU6CUJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dAorLSBDT05GSUdfU1lTX1BCU0laRToJQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0CiAKLS0gQ0ZHX01BWEFSR1M6CW1heC4gTnVtYmVyIG9mIGFyZ3VtZW50cyBhY2NlcHRlZCBmb3IgbW9uaXRvciBjb21tYW5kcworLSBDT05GSUdfU1lTX01BWEFSR1M6CW1heC4gTnVtYmVyIG9mIGFyZ3VtZW50cyBhY2NlcHRlZCBmb3IgbW9uaXRvciBjb21tYW5kcwogCi0tIENGR19CQVJHU0laRTogQnVmZmVyIHNpemUgZm9yIEJvb3QgQXJndW1lbnRzIHdoaWNoIGFyZSBwYXNzZWQgdG8KKy0gQ09ORklHX1NZU19CQVJHU0laRTogQnVmZmVyIHNpemUgZm9yIEJvb3QgQXJndW1lbnRzIHdoaWNoIGFyZSBwYXNzZWQgdG8KIAkJdGhlIGFwcGxpY2F0aW9uICh1c3VhbGx5IGEgTGludXgga2VybmVsKSB3aGVuIGl0IGlzCiAJCWJvb3RlZAogCi0tIENGR19CQVVEUkFURV9UQUJMRToKKy0gQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRToKIAkJTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZC4KIAotLSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCistIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCiAJCVN1cHByZXNzIGRpc3BsYXkgb2YgY29uc29sZSBpbmZvcm1hdGlvbiBhdCBib290LgogCi0tIENGR19DT05TT0xFX0lTX0lOX0VOVgorLSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCiAJCUlmIHRoZSBib2FyZCBzcGVjaWZpYyBmdW5jdGlvbgogCQkJZXh0ZXJuIGludCBvdmVyd3JpdGVfY29uc29sZSAodm9pZCk7CiAJCXJldHVybnMgMSwgdGhlIHN0ZGluLCBzdGRlcnIgYW5kIHN0ZG91dCBhcmUgc3dpdGNoZWQgdG8gdGhlCiAJCXNlcmlhbCBwb3J0LCBlbHNlIHRoZSBzZXR0aW5ncyBpbiB0aGUgZW52aXJvbm1lbnQgYXJlIHVzZWQuCiAKLS0gQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKKy0gQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCiAJCUVuYWJsZSB0aGUgY2FsbCB0byBvdmVyd3JpdGVfY29uc29sZSgpLgogCi0tIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUKKy0gQ09ORklHX1NZU19DT05TT0xFX0VOVl9PVkVSV1JJVEUKIAkJRW5hYmxlIG92ZXJ3cml0ZSBvZiBwcmV2aW91cyBjb25zb2xlIGVudmlyb25tZW50IHNldHRpbmdzLgogCi0tIENGR19NRU1URVNUX1NUQVJULCBDRkdfTUVNVEVTVF9FTkQ6CistIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCwgQ09ORklHX1NZU19NRU1URVNUX0VORDoKIAkJQmVnaW4gYW5kIEVuZCBhZGRyZXNzZXMgb2YgdGhlIGFyZWEgdXNlZCBieSB0aGUKIAkJc2ltcGxlIG1lbW9yeSB0ZXN0LgogCi0tIENGR19BTFRfTUVNVEVTVDoKKy0gQ09ORklHX1NZU19BTFRfTUVNVEVTVDoKIAkJRW5hYmxlIGFuIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3QuCiAKLS0gQ0ZHX01FTVRFU1RfU0NSQVRDSDoKKy0gQ09ORklHX1NZU19NRU1URVNUX1NDUkFUQ0g6CiAJCVNjcmF0Y2ggYWRkcmVzcyB1c2VkIGJ5IHRoZSBhbHRlcm5hdGUgbWVtb3J5IHRlc3QKIAkJWW91IG9ubHkgbmVlZCB0byBzZXQgdGhpcyBpZiBhZGRyZXNzIHplcm8gaXNuJ3Qgd3JpdGVhYmxlCiAKLS0gQ0ZHX01FTV9UT1BfSElERSAoUFBDIG9ubHkpOgotCQlJZiBDRkdfTUVNX1RPUF9ISURFIGlzIGRlZmluZWQgaW4gdGhlIGJvYXJkIGNvbmZpZyBoZWFkZXIsCistIENPTkZJR19TWVNfTUVNX1RPUF9ISURFIChQUEMgb25seSk6CisJCUlmIENPTkZJR19TWVNfTUVNX1RPUF9ISURFIGlzIGRlZmluZWQgaW4gdGhlIGJvYXJkIGNvbmZpZyBoZWFkZXIsCiAJCXRoaXMgc3BlY2lmaWVkIG1lbW9yeSBhcmVhIHdpbGwgZ2V0IHN1YnRyYWN0ZWQgZnJvbSB0aGUgdG9wCiAJCShlbmQpIG9mIFJBTSBhbmQgd29uJ3QgZ2V0ICJ0b3VjaGVkIiBhdCBhbGwgYnkgVS1Cb290LiBCeQogCQlmaXhpbmcgdXAgZ2QtPnJhbV9zaXplIHRoZSBMaW51eCBrZXJuZWwgc2hvdWxkIGdldHMgcGFzc2VkCkBAIC0yMDA4LDc1ICsyMDY2LDc1IEBACiAJCW5vbiBwYWdlIHNpemUgYWxpZ25lZCBhZGRyZXNzIGFuZCB0aGlzIGNvdWxkIGNhdXNlIG1ham9yCiAJCXByb2JsZW1zLgogCi0tIENGR19URlRQX0xPQURBRERSOgorLSBDT05GSUdfU1lTX1RGVFBfTE9BREFERFI6CiAJCURlZmF1bHQgbG9hZCBhZGRyZXNzIGZvciBuZXR3b3JrIGZpbGUgZG93bmxvYWRzCiAKLS0gQ0ZHX0xPQURTX0JBVURfQ0hBTkdFOgorLSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFOgogCQlFbmFibGUgdGVtcG9yYXJ5IGJhdWRyYXRlIGNoYW5nZSB3aGlsZSBzZXJpYWwgZG93bmxvYWQKIAotLSBDRkdfU0RSQU1fQkFTRToKKy0gQ09ORklHX1NZU19TRFJBTV9CQVNFOgogCQlQaHlzaWNhbCBzdGFydCBhZGRyZXNzIG9mIFNEUkFNLiBfTXVzdF8gYmUgMCBoZXJlLgogCi0tIENGR19NQklPX0JBU0U6CistIENPTkZJR19TWVNfTUJJT19CQVNFOgogCQlQaHlzaWNhbCBzdGFydCBhZGRyZXNzIG9mIE1vdGhlcmJvYXJkIEkvTyAoaWYgdXNpbmcgYQogCQlDb2dlbnQgbW90aGVyYm9hcmQpCiAKLS0gQ0ZHX0ZMQVNIX0JBU0U6CistIENPTkZJR19TWVNfRkxBU0hfQkFTRToKIAkJUGh5c2ljYWwgc3RhcnQgYWRkcmVzcyBvZiBGbGFzaCBtZW1vcnkuCiAKLS0gQ0ZHX01PTklUT1JfQkFTRToKKy0gQ09ORklHX1NZU19NT05JVE9SX0JBU0U6CiAJCVBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgYm9vdCBtb25pdG9yIGNvZGUgKHNldCBieQogCQltYWtlIGNvbmZpZyBmaWxlcyB0byBiZSBzYW1lIGFzIHRoZSB0ZXh0IGJhc2UgYWRkcmVzcwogCQkoVEVYVF9CQVNFKSB1c2VkIHdoZW4gbGlua2luZykgLSBzYW1lIGFzCi0JCUNGR19GTEFTSF9CQVNFIHdoZW4gYm9vdGluZyBmcm9tIGZsYXNoLgorCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0Ugd2hlbiBib290aW5nIGZyb20gZmxhc2guCiAKLS0gQ0ZHX01PTklUT1JfTEVOOgorLSBDT05GSUdfU1lTX01PTklUT1JfTEVOOgogCQlTaXplIG9mIG1lbW9yeSByZXNlcnZlZCBmb3IgbW9uaXRvciBjb2RlLCB1c2VkIHRvCiAJCWRldGVybWluZSBfYXRfY29tcGlsZV90aW1lXyAoISkgaWYgdGhlIGVudmlyb25tZW50IGlzCiAJCWVtYmVkZGVkIHdpdGhpbiB0aGUgVS1Cb290IGltYWdlLCBvciBpbiBhIHNlcGFyYXRlCiAJCWZsYXNoIHNlY3Rvci4KIAotLSBDRkdfTUFMTE9DX0xFTjoKKy0gQ09ORklHX1NZU19NQUxMT0NfTEVOOgogCQlTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZS4KIAotLSBDRkdfQk9PVE1fTEVOOgorLSBDT05GSUdfU1lTX0JPT1RNX0xFTjoKIAkJTm9ybWFsbHkgY29tcHJlc3NlZCB1SW1hZ2VzIGFyZSBsaW1pdGVkIHRvIGFuCiAJCXVuY29tcHJlc3NlZCBzaXplIG9mIDggTUJ5dGVzLiBJZiB0aGlzIGlzIG5vdCBlbm91Z2gsCi0JCXlvdSBjYW4gZGVmaW5lIENGR19CT09UTV9MRU4gaW4geW91ciBib2FyZCBjb25maWcgZmlsZQorCQl5b3UgY2FuIGRlZmluZSBDT05GSUdfU1lTX0JPT1RNX0xFTiBpbiB5b3VyIGJvYXJkIGNvbmZpZyBmaWxlCiAJCXRvIGFkanVzdCB0aGlzIHNldHRpbmcgdG8geW91ciBuZWVkcy4KIAotLSBDRkdfQk9PVE1BUFNaOgorLSBDT05GSUdfU1lTX0JPT1RNQVBTWjoKIAkJTWF4aW11bSBzaXplIG9mIG1lbW9yeSBtYXBwZWQgYnkgdGhlIHN0YXJ0dXAgY29kZSBvZgogCQl0aGUgTGludXgga2VybmVsOyBhbGwgZGF0YSB0aGF0IG11c3QgYmUgcHJvY2Vzc2VkIGJ5CiAJCXRoZSBMaW51eCBrZXJuZWwgKGJkX2luZm8sIGJvb3QgYXJndW1lbnRzLCBGRFQgYmxvYiBpZgogCQl1c2VkKSBtdXN0IGJlIHB1dCBiZWxvdyB0aGlzIGxpbWl0LCB1bmxlc3MgImJvb3RtX2xvdyIKIAkJZW52aXJvbWVudCB2YXJpYWJsZSBpcyBkZWZpbmVkIGFuZCBub24temVyby4gSW4gc3VjaCBjYXNlCiAJCWFsbCBkYXRhIGZvciB0aGUgTGludXgga2VybmVsIG11c3QgYmUgYmV0d2VlbiAiYm9vdG1fbG93IgotCQlhbmQgImJvb3RtX2xvdyIgKyBDRkdfQk9PVE1BUFNaLgorCQlhbmQgImJvb3RtX2xvdyIgKyBDT05GSUdfU1lTX0JPT1RNQVBTWi4KIAotLSBDRkdfTUFYX0ZMQVNIX0JBTktTOgorLSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzoKIAkJTWF4IG51bWJlciBvZiBGbGFzaCBtZW1vcnkgYmFua3MKIAotLSBDRkdfTUFYX0ZMQVNIX1NFQ1Q6CistIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q6CiAJCU1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBhIEZsYXNoIGNoaXAKIAotLSBDRkdfRkxBU0hfRVJBU0VfVE9VVDoKKy0gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUOgogCQlUaW1lb3V0IGZvciBGbGFzaCBlcmFzZSBvcGVyYXRpb25zIChpbiBtcykKIAotLSBDRkdfRkxBU0hfV1JJVEVfVE9VVDoKKy0gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUOgogCQlUaW1lb3V0IGZvciBGbGFzaCB3cml0ZSBvcGVyYXRpb25zIChpbiBtcykKIAotLSBDRkdfRkxBU0hfTE9DS19UT1VUCistIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCiAJCVRpbWVvdXQgZm9yIEZsYXNoIHNldCBzZWN0b3IgbG9jayBiaXQgb3BlcmF0aW9uIChpbiBtcykKIAotLSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQKKy0gQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAogCQlUaW1lb3V0IGZvciBGbGFzaCBjbGVhciBsb2NrIGJpdHMgb3BlcmF0aW9uIChpbiBtcykKIAotLSBDRkdfRkxBU0hfUFJPVEVDVElPTgorLSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAkJSWYgZGVmaW5lZCwgaGFyZHdhcmUgZmxhc2ggc2VjdG9ycyBwcm90ZWN0aW9uIGlzIHVzZWQKIAkJaW5zdGVhZCBvZiBVLUJvb3Qgc29mdHdhcmUgcHJvdGVjdGlvbi4KIAotLSBDRkdfRElSRUNUX0ZMQVNIX1RGVFA6CistIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFA6CiAKIAkJRW5hYmxlIFRGVFAgdHJhbnNmZXJzIGRpcmVjdGx5IHRvIGZsYXNoIG1lbW9yeTsKIAkJd2l0aG91dCB0aGlzIG9wdGlvbiBzdWNoIGEgZG93bmxvYWQgaGFzIHRvIGJlCkBAIC0yMDg5LDcgKzIxNDcsNyBAQAogCQl0b28gbGltaXRlZCB0byBhbGxvdyBmb3IgYSB0ZW1wb3JhcnkgY29weSBvZiB0aGUKIAkJZG93bmxvYWRlZCBpbWFnZSkgdGhpcyBvcHRpb24gbWF5IGJlIHZlcnkgdXNlZnVsLgogCi0tIENGR19GTEFTSF9DRkk6CistIENPTkZJR19TWVNfRkxBU0hfQ0ZJOgogCQlEZWZpbmUgaWYgdGhlIGZsYXNoIGRyaXZlciB1c2VzIGV4dHJhIGVsZW1lbnRzIGluIHRoZQogCQljb21tb24gZmxhc2ggc3RydWN0dXJlIGZvciBzdG9yaW5nIGZsYXNoIGdlb21ldHJ5LgogCkBAIC0yMDk3LDE0ICsyMTU1LDE0IEBACiAJCVRoaXMgb3B0aW9uIGFsc28gZW5hYmxlcyB0aGUgYnVpbGRpbmcgb2YgdGhlIGNmaV9mbGFzaCBkcml2ZXIKIAkJaW4gdGhlIGRyaXZlcnMgZGlyZWN0b3J5CiAKLS0gQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKy0gQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAJCVVzZSBidWZmZXJlZCB3cml0ZXMgdG8gZmxhc2guCiAKIC0gQ09ORklHX0ZMQVNIX1NQQU5TSU9OX1MyOVdTX04KIAkJczI5d3MtbiBNaXJyb3JCaXQgZmxhc2ggaGFzIG5vbi1zdGFuZGFyZCBhZGRyZXNzZXMgZm9yIGJ1ZmZlcmVkCiAJCXdyaXRlIGNvbW1hbmRzLgogCi0tIENGR19GTEFTSF9RVUlFVF9URVNUCistIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAogCQlJZiB0aGlzIG9wdGlvbiBpcyBkZWZpbmVkLCB0aGUgY29tbW9uIENGSSBmbGFzaCBkb2Vzbid0CiAJCXByaW50IGl0J3Mgd2FybmluZyB1cG9uIG5vdCByZWNvZ25pemVkIEZMQVNIIGJhbmtzLiBUaGlzCiAJCWlzIHVzZWZ1bCwgaWYgc29tZSBvZiB0aGUgY29uZmlndXJlZCBiYW5rcyBhcmUgb25seQpAQCAtMjExNSw3ICsyMTczLDcgQEAKIAkJZGlnaXRzIGFuZCBkb3RzLiAgUmVjb21tZW5kZWQgdmFsdWU6IDQ1ICg5Li4xKSBmb3IgODAKIAkJY29sdW1uIGRpc3BsYXlzLCAxNSAoMy4uMSkgZm9yIDQwIGNvbHVtbiBkaXNwbGF5cy4KIAotLSBDRkdfUlhfRVRIX0JVRkZFUjoKKy0gQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSOgogCQlEZWZpbmVzIHRoZSBudW1iZXIgb2YgRXRoZXJuZXQgcmVjZWl2ZSBidWZmZXJzLiBPbiBzb21lCiAJCUV0aGVybmV0IGNvbnRyb2xsZXJzIGl0IGlzIHJlY29tbWVuZGVkIHRvIHNldCB0aGlzIHZhbHVlCiAJCXRvIDggb3IgZXZlbiBoaWdoZXIgKEVFUFJPMTAwIG9yIDQwNSBFTUFDKSwgc2luY2UgYWxsCkBAIC0yMTUwLDcgKzIyMDgsNyBAQAogCSAgIHR5cGUgZmxhc2ggY2hpcHMgdGhlIHNlY29uZCBzZWN0b3IgY2FuIGJlIHVzZWQ6IHRoZSBvZmZzZXQKIAkgICBmb3IgdGhpcyBzZWN0b3IgaXMgZ2l2ZW4gaGVyZS4KIAotCSAgIENPTkZJR19FTlZfT0ZGU0VUIGlzIHVzZWQgcmVsYXRpdmUgdG8gQ0ZHX0ZMQVNIX0JBU0UuCisJICAgQ09ORklHX0VOVl9PRkZTRVQgaXMgdXNlZCByZWxhdGl2ZSB0byBDT05GSUdfU1lTX0ZMQVNIX0JBU0UuCiAKIAktIENPTkZJR19FTlZfQUREUjoKIApAQCAtMjIzMywyNCArMjI5MSwyNCBAQAogCSAgVGhlc2UgdHdvICNkZWZpbmVzIHNwZWNpZnkgdGhlIG9mZnNldCBhbmQgc2l6ZSBvZiB0aGUKIAkgIGVudmlyb25tZW50IGFyZWEgd2l0aGluIHRoZSB0b3RhbCBtZW1vcnkgb2YgeW91ciBFRVBST00uCiAKLQktIENGR19JMkNfRUVQUk9NX0FERFI6CisJLSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUjoKIAkgIElmIGRlZmluZWQsIHNwZWNpZmllZCB0aGUgY2hpcCBhZGRyZXNzIG9mIHRoZSBFRVBST00gZGV2aWNlLgogCSAgVGhlIGRlZmF1bHQgYWRkcmVzcyBpcyB6ZXJvLgogCi0JLSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUzoKKwktIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUzoKIAkgIElmIGRlZmluZWQsIHRoZSBudW1iZXIgb2YgYml0cyB1c2VkIHRvIGFkZHJlc3MgYnl0ZXMgaW4gYQogCSAgc2luZ2xlIHBhZ2UgaW4gdGhlIEVFUFJPTSBkZXZpY2UuICBBIDY0IGJ5dGUgcGFnZSwgZm9yIGV4YW1wbGUKIAkgIHdvdWxkIHJlcXVpcmUgc2l4IGJpdHMuCiAKLQktIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUzoKKwktIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVM6CiAJICBJZiBkZWZpbmVkLCB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBiZXR3ZWVuCiAJICBwYWdlIHdyaXRlcy4JVGhlIGRlZmF1bHQgaXMgemVybyBtaWxsaXNlY29uZHMuCiAKLQktIENGR19JMkNfRUVQUk9NX0FERFJfTEVOOgorCS0gQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOOgogCSAgVGhlIGxlbmd0aCBpbiBieXRlcyBvZiB0aGUgRUVQUk9NIG1lbW9yeSBhcnJheSBhZGRyZXNzLiAgTm90ZQogCSAgdGhhdCB0aGlzIGlzIE5PVCB0aGUgY2hpcCBhZGRyZXNzIGxlbmd0aCEKIAotCS0gQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVzoKKwktIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XOgogCSAgRUVQUk9NIGNoaXBzIHRoYXQgaW1wbGVtZW50ICJhZGRyZXNzIG92ZXJmbG93IiBhcmUgb25lcwogCSAgbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZgogCSAgYWRkcmVzcyBhbmQgdGhlIGV4dHJhIGJpdHMgZW5kIHVwIGluIHRoZSAiY2hpcCBhZGRyZXNzIiBiaXQKQEAgLTIyNjEsNyArMjMxOSw3IEBACiAJICBzdGlsbCBiZSBvbmUgYnl0ZSBiZWNhdXNlIHRoZSBleHRyYSBhZGRyZXNzIGJpdHMgYXJlIGhpZGRlbgogCSAgaW4gdGhlIGNoaXAgYWRkcmVzcy4KIAotCS0gQ0ZHX0VFUFJPTV9TSVpFOgorCS0gQ09ORklHX1NZU19FRVBST01fU0laRToKIAkgIFRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBFRVBST00gZGV2aWNlLgogCiAKQEAgLTIzMDAsNyArMjM1OCw3IEBACiAJdG8gYSBibG9jayBib3VuZGFyeSwgYW5kIENPTkZJR19FTlZfU0laRSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YKIAl0aGUgTkFORCBkZXZpY2VzIGJsb2NrIHNpemUuCiAKLS0gQ0ZHX1NQSV9JTklUX09GRlNFVAorLSBDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAogCiAJRGVmaW5lcyBvZmZzZXQgdG8gdGhlIGluaXRpYWwgU1BJIGJ1ZmZlciBhcmVhIGluIERQUkFNLiBUaGUKIAlhcmVhIGlzIHVzZWQgYXQgYW4gZWFybHkgc3RhZ2UgKFJPTSBwYXJ0KSBpZiB0aGUgZW52aXJvbm1lbnQKQEAgLTIzMjYsMjkgKzIzODQsMjkgQEAKIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IGlzIHVzZWQ7IGEgbmV3IENSQyBpcyBjb21wdXRlZCBhcyBzb29uIGFzIHlvdQogdXNlIHRoZSAic2F2ZWVudiIgY29tbWFuZCB0byBzdG9yZSBhIHZhbGlkIGVudmlyb25tZW50LgogCi0tIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTjoKKy0gQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTjoKIAkJRWNobyB0aGUgaW52ZXJ0ZWQgRXRoZXJuZXQgbGluayBzdGF0ZSB0byB0aGUgZmF1bHQgTEVELgogCi0JCU5vdGU6IElmIHRoaXMgb3B0aW9uIGlzIGFjdGl2ZSwgdGhlbiBDRkdfRkFVTFRfTUlJX0FERFIKKwkJTm90ZTogSWYgdGhpcyBvcHRpb24gaXMgYWN0aXZlLCB0aGVuIENPTkZJR19TWVNfRkFVTFRfTUlJX0FERFIKIAkJICAgICAgYWxzbyBuZWVkcyB0byBiZSBkZWZpbmVkLgogCi0tIENGR19GQVVMVF9NSUlfQUREUjoKKy0gQ09ORklHX1NZU19GQVVMVF9NSUlfQUREUjoKIAkJTUlJIGFkZHJlc3Mgb2YgdGhlIFBIWSB0byBjaGVjayBmb3IgdGhlIEV0aGVybmV0IGxpbmsgc3RhdGUuCiAKLS0gQ0ZHXzY0QklUX1ZTUFJJTlRGOgorLSBDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGOgogCQlNYWtlcyB2c3ByaW50ZiAoYW5kIGFsbCAqcHJpbnRmIGZ1bmN0aW9ucykgc3VwcG9ydCBwcmludGluZwogCQlvZiA2NGJpdCB2YWx1ZXMgYnkgdXNpbmcgdGhlIEwgcXVhbnRpZmllcgogCi0tIENGR182NEJJVF9TVFJUT1VMOgorLSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUw6CiAJCUFkZHMgc2ltcGxlX3N0cnRvdWxsIHRoYXQgcmV0dXJucyBhIDY0Yml0IHZhbHVlCiAKIExvdyBMZXZlbCAoaGFyZHdhcmUgcmVsYXRlZCkgY29uZmlndXJhdGlvbiBvcHRpb25zOgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS0gQ0ZHX0NBQ0hFTElORV9TSVpFOgorLSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFOgogCQlDYWNoZSBMaW5lIFNpemUgb2YgdGhlIENQVS4KIAotLSBDRkdfREVGQVVMVF9JTU1SOgorLSBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUjoKIAkJRGVmYXVsdCBhZGRyZXNzIG9mIHRoZSBJTU1SIGFmdGVyIHN5c3RlbSByZXNldC4KIAogCQlOZWVkZWQgb24gc29tZSA4MjYwIHN5c3RlbXMgKE1QQzgyNjBBRFMsIFBRMkZBRFMtWlUsCkBAIC0yMzU2LDM2ICsyNDE0LDM2IEBACiAJCXRoZSBJTU1SIHJlZ2lzdGVyIGFmdGVyIGEgcmVzZXQuCiAKIC0gRmxvcHB5IERpc2sgU3VwcG9ydDoKLQkJQ0ZHX0ZEQ19EUklWRV9OVU1CRVIKKwkJQ09ORklHX1NZU19GRENfRFJJVkVfTlVNQkVSCiAKIAkJdGhlIGRlZmF1bHQgZHJpdmUgbnVtYmVyIChkZWZhdWx0IHZhbHVlIDApCiAKLQkJQ0ZHX0lTQV9JT19TVFJJREUKKwkJQ09ORklHX1NZU19JU0FfSU9fU1RSSURFCiAKIAkJZGVmaW5lcyB0aGUgc3BhY2luZyBiZXR3ZWVuIEZEQyBjaGlwc2V0IHJlZ2lzdGVycwogCQkoZGVmYXVsdCB2YWx1ZSAxKQogCi0JCUNGR19JU0FfSU9fT0ZGU0VUCisJCUNPTkZJR19TWVNfSVNBX0lPX09GRlNFVAogCiAJCWRlZmluZXMgdGhlIG9mZnNldCBvZiByZWdpc3RlciBmcm9tIGFkZHJlc3MuIEl0CiAJCWRlcGVuZHMgb24gd2hpY2ggcGFydCBvZiB0aGUgZGF0YSBidXMgaXMgY29ubmVjdGVkIHRvCiAJCXRoZSBGREMgY2hpcHNldC4gKGRlZmF1bHQgdmFsdWUgMCkKIAotCQlJZiBDRkdfSVNBX0lPX1NUUklERSBDRkdfSVNBX0lPX09GRlNFVCBhbmQKLQkJQ0ZHX0ZEQ19EUklWRV9OVU1CRVIgYXJlIHVuZGVmaW5lZCwgdGhleSB0YWtlIHRoZWlyCisJCUlmIENPTkZJR19TWVNfSVNBX0lPX1NUUklERSBDT05GSUdfU1lTX0lTQV9JT19PRkZTRVQgYW5kCisJCUNPTkZJR19TWVNfRkRDX0RSSVZFX05VTUJFUiBhcmUgdW5kZWZpbmVkLCB0aGV5IHRha2UgdGhlaXIKIAkJZGVmYXVsdCB2YWx1ZS4KIAotCQlpZiBDRkdfRkRDX0hXX0lOSVQgaXMgZGVmaW5lZCwgdGhlbiB0aGUgZnVuY3Rpb24KKwkJaWYgQ09ORklHX1NZU19GRENfSFdfSU5JVCBpcyBkZWZpbmVkLCB0aGVuIHRoZSBmdW5jdGlvbgogCQlmZGNfaHdfaW5pdCgpIGlzIGNhbGxlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBGREMKIAkJc2V0dXAuIGZkY19od19pbml0KCkgbXVzdCBiZSBwcm92aWRlZCBieSB0aGUgYm9hcmQKIAkJc291cmNlIGNvZGUuIEl0IGlzIHVzZWQgdG8gbWFrZSBoYXJkd2FyZSBkZXBlbmRhbnQKIAkJaW5pdGlhbGl6YXRpb25zLgogCi0tIENGR19JTU1SOglQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBJbnRlcm5hbCBNZW1vcnkuCistIENPTkZJR19TWVNfSU1NUjoJUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgSW50ZXJuYWwgTWVtb3J5LgogCQlETyBOT1QgQ0hBTkdFIHVubGVzcyB5b3Uga25vdyBleGFjdGx5IHdoYXQgeW91J3JlCiAJCWRvaW5nISAoMTEtNCkgW01QQzh4eC84Mnh4IHN5c3RlbXMgb25seV0KIAotLSBDRkdfSU5JVF9SQU1fQUREUjoKKy0gQ09ORklHX1NZU19JTklUX1JBTV9BRERSOgogCiAJCVN0YXJ0IGFkZHJlc3Mgb2YgbWVtb3J5IGFyZWEgdGhhdCBjYW4gYmUgdXNlZCBmb3IKIAkJaW5pdGlhbCBkYXRhIGFuZCBzdGFjazsgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIG11c3QgYmUKQEAgLTI0MDAsOTEgKzI0NTgsOTEgQEAKIAkJLSBNUEM4MjRYOiBkYXRhIGNhY2hlCiAJCS0gUFBDNHh4OiAgZGF0YSBjYWNoZQogCi0tIENGR19HQkxfREFUQV9PRkZTRVQ6CistIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUOgogCiAJCU9mZnNldCBvZiB0aGUgaW5pdGlhbCBkYXRhIHN0cnVjdHVyZSBpbiB0aGUgbWVtb3J5Ci0JCWFyZWEgZGVmaW5lZCBieSBDRkdfSU5JVF9SQU1fQUREUi4gVXN1YWxseQotCQlDRkdfR0JMX0RBVEFfT0ZGU0VUIGlzIGNob3NlbiBzdWNoIHRoYXQgdGhlIGluaXRpYWwKKwkJYXJlYSBkZWZpbmVkIGJ5IENPTkZJR19TWVNfSU5JVF9SQU1fQUREUi4gVXN1YWxseQorCQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCBpcyBjaG9zZW4gc3VjaCB0aGF0IHRoZSBpbml0aWFsCiAJCWRhdGEgaXMgbG9jYXRlZCBhdCB0aGUgZW5kIG9mIHRoZSBhdmFpbGFibGUgc3BhY2UKLQkJKHNvbWV0aW1lcyB3cml0dGVuIGFzIChDRkdfSU5JVF9SQU1fRU5EIC0KLQkJQ0ZHX0lOSVRfREFUQV9TSVpFKSwgYW5kIHRoZSBpbml0aWFsIHN0YWNrIGlzIGp1c3QKLQkJYmVsb3cgdGhhdCBhcmVhIChncm93aW5nIGZyb20gKENGR19JTklUX1JBTV9BRERSICsKLQkJQ0ZHX0dCTF9EQVRBX09GRlNFVCkgZG93bndhcmQuCisJCShzb21ldGltZXMgd3JpdHRlbiBhcyAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLQorCQlDT05GSUdfU1lTX0lOSVRfREFUQV9TSVpFKSwgYW5kIHRoZSBpbml0aWFsIHN0YWNrIGlzIGp1c3QKKwkJYmVsb3cgdGhhdCBhcmVhIChncm93aW5nIGZyb20gKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArCisJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKSBkb3dud2FyZC4KIAogCU5vdGU6CiAJCU9uIHRoZSBNUEM4MjRYIChvciBvdGhlciBzeXN0ZW1zIHRoYXQgdXNlIHRoZSBkYXRhCiAJCWNhY2hlIGZvciBpbml0aWFsIG1lbW9yeSkgdGhlIGFkZHJlc3MgY2hvc2VuIGZvcgotCQlDRkdfSU5JVF9SQU1fQUREUiBpcyBiYXNpY2FsbHkgYXJiaXRyYXJ5IC0gaXQgbXVzdAorCQlDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgaXMgYmFzaWNhbGx5IGFyYml0cmFyeSAtIGl0IG11c3QKIAkJcG9pbnQgdG8gYW4gb3RoZXJ3aXNlIFVOVVNFRCBhZGRyZXNzIHNwYWNlIGJldHdlZW4KIAkJdGhlIHRvcCBvZiBSQU0gYW5kIHRoZSBzdGFydCBvZiB0aGUgUENJIHNwYWNlLgogCi0tIENGR19TSVVNQ1I6CVNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAoMTEtNikKKy0gQ09ORklHX1NZU19TSVVNQ1I6CVNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAoMTEtNikKIAotLSBDRkdfU1lQQ1I6CVN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wgKDExLTkpCistIENPTkZJR19TWVNfU1lQQ1I6CVN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wgKDExLTkpCiAKLS0gQ0ZHX1RCU0NSOglUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sICgxMS0yNikKKy0gQ09ORklHX1NZU19UQlNDUjoJVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbCAoMTEtMjYpCiAKLS0gQ0ZHX1BJU0NSOglQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sICgxMS0zMSkKKy0gQ09ORklHX1NZU19QSVNDUjoJUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAoMTEtMzEpCiAKLS0gQ0ZHX1BMUFJDUjoJUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyICgxNS0zMCkKKy0gQ09ORklHX1NZU19QTFBSQ1I6CVBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlciAoMTUtMzApCiAKLS0gQ0ZHX1NDQ1I6CVN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlciAoMTUtMjcpCistIENPTkZJR19TWVNfU0NDUjoJU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyICgxNS0yNykKIAotLSBDRkdfT1JfVElNSU5HX1NEUkFNOgorLSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTToKIAkJU0RSQU0gdGltaW5nCiAKLS0gQ0ZHX01BTVJfUFRBOgorLSBDT05GSUdfU1lTX01BTVJfUFRBOgogCQlwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaAogCi0tIENGR19ERVI6CURlYnVnIEV2ZW50IFJlZ2lzdGVyICgzNy00NykKKy0gQ09ORklHX1NZU19ERVI6CURlYnVnIEV2ZW50IFJlZ2lzdGVyICgzNy00NykKIAotLSBGTEFTSF9CQVNFMF9QUkVMSU0sIEZMQVNIX0JBU0UxX1BSRUxJTSwgQ0ZHX1JFTUFQX09SX0FNLAotICBDRkdfUFJFTElNX09SX0FNLCBDRkdfT1JfVElNSU5HX0ZMQVNILCBDRkdfT1IwX1JFTUFQLAotICBDRkdfT1IwX1BSRUxJTSwgQ0ZHX0JSMF9QUkVMSU0sIENGR19PUjFfUkVNQVAsIENGR19PUjFfUFJFTElNLAotICBDRkdfQlIxX1BSRUxJTToKKy0gRkxBU0hfQkFTRTBfUFJFTElNLCBGTEFTSF9CQVNFMV9QUkVMSU0sIENPTkZJR19TWVNfUkVNQVBfT1JfQU0sCisgIENPTkZJR19TWVNfUFJFTElNX09SX0FNLCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCwgQ09ORklHX1NZU19PUjBfUkVNQVAsCisgIENPTkZJR19TWVNfT1IwX1BSRUxJTSwgQ09ORklHX1NZU19CUjBfUFJFTElNLCBDT05GSUdfU1lTX09SMV9SRU1BUCwgQ09ORklHX1NZU19PUjFfUFJFTElNLAorICBDT05GSUdfU1lTX0JSMV9QUkVMSU06CiAJCU1lbW9yeSBDb250cm9sbGVyIERlZmluaXRpb25zOiBCUjAvMSBhbmQgT1IwLzEgKEZMQVNIKQogCiAtIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSwKLSAgQ0ZHX09SX1RJTUlOR19TRFJBTSwgQ0ZHX09SMl9QUkVMSU0sIENGR19CUjJfUFJFTElNLAotICBDRkdfT1IzX1BSRUxJTSwgQ0ZHX0JSM19QUkVMSU06CisgIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNLCBDT05GSUdfU1lTX09SMl9QUkVMSU0sIENPTkZJR19TWVNfQlIyX1BSRUxJTSwKKyAgQ09ORklHX1NZU19PUjNfUFJFTElNLCBDT05GSUdfU1lTX0JSM19QUkVMSU06CiAJCU1lbW9yeSBDb250cm9sbGVyIERlZmluaXRpb25zOiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQogCi0tIENGR19NQU1SX1BUQSwgQ0ZHX01QVFBSXzJCS180SywgQ0ZHX01QVFBSXzFCS180SywgQ0ZHX01QVFBSXzJCS184SywKLSAgQ0ZHX01QVFBSXzFCS184SywgQ0ZHX01BTVJfOENPTCwgQ0ZHX01BTVJfOUNPTDoKKy0gQ09ORklHX1NZU19NQU1SX1BUQSwgQ09ORklHX1NZU19NUFRQUl8yQktfNEssIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLLCBDT05GSUdfU1lTX01QVFBSXzJCS184SywKKyAgQ09ORklHX1NZU19NUFRQUl8xQktfOEssIENPTkZJR19TWVNfTUFNUl84Q09MLCBDT05GSUdfU1lTX01BTVJfOUNPTDoKIAkJTWFjaGluZSBNb2RlIFJlZ2lzdGVyIGFuZCBNZW1vcnkgUGVyaW9kaWMgVGltZXIKIAkJUHJlc2NhbGVyIGRlZmluaXRpb25zIChTRFJBTSB0aW1pbmcpCiAKLS0gQ0ZHX0kyQ19VQ09ERV9QQVRDSCwgQ0ZHX0kyQ19EUE1FTV9PRkZTRVQgWzB4MUZDMF06CistIENPTkZJR19TWVNfSTJDX1VDT0RFX1BBVENILCBDT05GSUdfU1lTX0kyQ19EUE1FTV9PRkZTRVQgWzB4MUZDMF06CiAJCWVuYWJsZSBJMkMgbWljcm9jb2RlIHJlbG9jYXRpb24gcGF0Y2ggKE1QQzh4eCk7CiAJCWRlZmluZSByZWxvY2F0aW9uIG9mZnNldCBpbiBEUFJBTSBbRFNQMl0KIAotLSBDRkdfU01DX1VDT0RFX1BBVENILCBDRkdfU01DX0RQTUVNX09GRlNFVCBbMHgxRkMwXToKKy0gQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gsIENPTkZJR19TWVNfU01DX0RQTUVNX09GRlNFVCBbMHgxRkMwXToKIAkJZW5hYmxlIFNNQyBtaWNyb2NvZGUgcmVsb2NhdGlvbiBwYXRjaCAoTVBDOHh4KTsKIAkJZGVmaW5lIHJlbG9jYXRpb24gb2Zmc2V0IGluIERQUkFNIFtTTUMxXQogCi0tIENGR19TUElfVUNPREVfUEFUQ0gsIENGR19TUElfRFBNRU1fT0ZGU0VUIFsweDFGQzBdOgorLSBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSCwgQ09ORklHX1NZU19TUElfRFBNRU1fT0ZGU0VUIFsweDFGQzBdOgogCQllbmFibGUgU1BJIG1pY3JvY29kZSByZWxvY2F0aW9uIHBhdGNoIChNUEM4eHgpOwogCQlkZWZpbmUgcmVsb2NhdGlvbiBvZmZzZXQgaW4gRFBSQU0gW1NDQzRdCiAKLS0gQ0ZHX1VTRV9PU0NDTEs6CistIENPTkZJR19TWVNfVVNFX09TQ0NMSzoKIAkJVXNlIE9TQ00gY2xvY2sgbW9kZSBvbiBNQlg4eHggYm9hcmQuIEJlIGNhcmVmdWwsCiAJCXdyb25nIHNldHRpbmcgbWlnaHQgZGFtYWdlIHlvdXIgYm9hcmQuIFJlYWQKIAkJZG9jL1JFQURNRS5NQlggYmVmb3JlIHNldHRpbmcgdGhpcyB2YXJpYWJsZSEKIAotLSBDRkdfQ1BNX1BPU1RfV09SRF9BRERSOiAoTVBDOHh4LCBNUEM4MjYwIG9ubHkpCistIENPTkZJR19TWVNfQ1BNX1BPU1RfV09SRF9BRERSOiAoTVBDOHh4LCBNUEM4MjYwIG9ubHkpCiAJCU9mZnNldCBvZiB0aGUgYm9vdG1vZGUgd29yZCBpbiBEUFJBTSB1c2VkIGJ5IHBvc3QKIAkJKFBvd2VyIE9uIFNlbGYgVGVzdHMpLiBUaGlzIGRlZmluaXRpb24gb3ZlcnJpZGVzCiAJCSNkZWZpbmUnZCBkZWZhdWx0IHZhbHVlIGluIGNvbW1wcm9jLmggcmVzcC4KIAkJY3BtXzgyNjAuaC4KIAotLSBDRkdfUENJX1NMVl9NRU1fTE9DQUwsIENGR19QQ0lfU0xWX01FTV9CVVMsIENGR19QSUNNUjBfTUFTS19BVFRSSUIsCi0gIENGR19QQ0lfTVNUUjBfTE9DQUwsIENGR19QQ0lNU0swX01BU0ssIENGR19QQ0lfTVNUUjFfTE9DQUwsCi0gIENGR19QQ0lNU0sxX01BU0ssIENGR19QQ0lfTVNUUl9NRU1fTE9DQUwsIENGR19QQ0lfTVNUUl9NRU1fQlVTLAotICBDRkdfQ1BVX1BDSV9NRU1fU1RBUlQsIENGR19QQ0lfTVNUUl9NRU1fU0laRSwgQ0ZHX1BPQ01SMF9NQVNLX0FUVFJJQiwKLSAgQ0ZHX1BDSV9NU1RSX01FTUlPX0xPQ0FMLCBDRkdfUENJX01TVFJfTUVNSU9fQlVTLCBDUFVfUENJX01FTUlPX1NUQVJULAotICBDRkdfUENJX01TVFJfTUVNSU9fU0laRSwgQ0ZHX1BPQ01SMV9NQVNLX0FUVFJJQiwgQ0ZHX1BDSV9NU1RSX0lPX0xPQ0FMLAotICBDRkdfUENJX01TVFJfSU9fQlVTLCBDRkdfQ1BVX1BDSV9JT19TVEFSVCwgQ0ZHX1BDSV9NU1RSX0lPX1NJWkUsCi0gIENGR19QT0NNUjJfTUFTS19BVFRSSUI6IChNUEM4MjZ4IG9ubHkpCistIENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwsIENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTLCBDT05GSUdfU1lTX1BJQ01SMF9NQVNLX0FUVFJJQiwKKyAgQ09ORklHX1NZU19QQ0lfTVNUUjBfTE9DQUwsIENPTkZJR19TWVNfUENJTVNLMF9NQVNLLCBDT05GSUdfU1lTX1BDSV9NU1RSMV9MT0NBTCwKKyAgQ09ORklHX1NZU19QQ0lNU0sxX01BU0ssIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0xPQ0FMLCBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9CVVMsCisgIENPTkZJR19TWVNfQ1BVX1BDSV9NRU1fU1RBUlQsIENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUsIENPTkZJR19TWVNfUE9DTVIwX01BU0tfQVRUUklCLAorICBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0xPQ0FMLCBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0JVUywgQ1BVX1BDSV9NRU1JT19TVEFSVCwKKyAgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19TSVpFLCBDT05GSUdfU1lTX1BPQ01SMV9NQVNLX0FUVFJJQiwgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19MT0NBTCwKKyAgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19CVVMsIENPTkZJR19TWVNfQ1BVX1BDSV9JT19TVEFSVCwgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19TSVpFLAorICBDT05GSUdfU1lTX1BPQ01SMl9NQVNLX0FUVFJJQjogKE1QQzgyNnggb25seSkKIAkJT3ZlcnJpZGVzIHRoZSBkZWZhdWx0IFBDSSBtZW1vcnkgbWFwIGluIGNwdS9tcGM4MjYwL3BjaS5jIGlmIHNldC4KIAogLSBDT05GSUdfU1BEX0VFUFJPTQpAQCAtMjQ5NCwxNiArMjU1MiwxNiBAQAogICBTUERfRUVQUk9NX0FERFJFU1MKIAkJSTJDIGFkZHJlc3Mgb2YgdGhlIFNQRCBFRVBST00KIAotLSBDRkdfU1BEX0JVU19OVU0KKy0gQ09ORklHX1NZU19TUERfQlVTX05VTQogCQlJZiBTUEQgRUVQUk9NIGlzIG9uIGFuIEkyQyBidXMgb3RoZXIgdGhhbiB0aGUgZmlyc3QKIAkJb25lLCBzcGVjaWZ5IGhlcmUuIE5vdGUgdGhhdCB0aGUgdmFsdWUgbXVzdCByZXNvbHZlCiAJCXRvIHNvbWV0aGluZyB5b3VyIGRyaXZlciBjYW4gZGVhbCB3aXRoLgogCi0tIENGR184M1hYX0REUl9VU0VTX0NTMAorLSBDT05GSUdfU1lTXzgzWFhfRERSX1VTRVNfQ1MwCiAJCU9ubHkgZm9yIDgzeHggc3lzdGVtcy4gSWYgc3BlY2lmaWVkLCB0aGVuIEREUiBzaG91bGQKIAkJYmUgY29uZmlndXJlZCB1c2luZyBDUzAgYW5kIENTMSBpbnN0ZWFkIG9mIENTMiBhbmQgQ1MzLgogCi0tIENGR184M1hYX0REUl9VU0VTX0NTMAorLSBDT05GSUdfU1lTXzgzWFhfRERSX1VTRVNfQ1MwCiAJCU9ubHkgZm9yIDgzeHggc3lzdGVtcy4gSWYgc3BlY2lmaWVkLCB0aGVuIEREUiBzaG91bGQKIAkJYmUgY29uZmlndXJlZCB1c2luZyBDUzAgYW5kIENTMSBpbnN0ZWFkIG9mIENTMiBhbmQgQ1MzLgogCkBAIC0yODAzLDcgKzI4NjEsNyBAQAogCQkgIGZvciB1c2UgYnkgdGhlIGJvb3RtIGNvbW1hbmQuIFNlZSBhbHNvICJib290bV9zaXplIgogCQkgIGVudmlyb25tZW50IHZhcmlhYmxlLiBBZGRyZXNzIGRlZmluZWQgYnkgImJvb3RtX2xvdyIgaXMKIAkJICBhbHNvIHRoZSBiYXNlIG9mIHRoZSBpbml0aWFsIG1lbW9yeSBtYXBwaW5nIGZvciB0aGUgTGludXgKLQkJICBrZXJuZWwgLS0gc2VlIHRoZSBkZXNjcmlwdGlvbiBvZiBDRkdfQk9PVE1BUFNaLgorCQkgIGtlcm5lbCAtLSBzZWUgdGhlIGRlc2NyaXB0aW9uIG9mIENPTkZJR19TWVNfQk9PVE1BUFNaLgogCiAgIGJvb3RtX3NpemUJLSBNZW1vcnkgcmFuZ2UgYXZhaWxhYmxlIGZvciBpbWFnZSBwcm9jZXNzaW5nIGluIHRoZSBib290bQogCQkgIGNvbW1hbmQgY2FuIGJlIHJlc3RyaWN0ZWQuIFRoaXMgdmFyaWFibGUgaXMgZ2l2ZW4gYXMKQEAgLTI4MTEsNiArMjg2OSwxMCBAQAogCQkgIGFsbG93ZWQgZm9yIHVzZSBieSB0aGUgYm9vdG0gY29tbWFuZC4gU2VlIGFsc28gImJvb3RtX2xvdyIKIAkJICBlbnZpcm9ubWVudCB2YXJpYWJsZS4KIAorICB1cGRhdGVmaWxlCS0gTG9jYXRpb24gb2YgdGhlIHNvZnR3YXJlIHVwZGF0ZSBmaWxlIG9uIGEgVEZUUCBzZXJ2ZXIsIHVzZWQKKwkJICBieSB0aGUgYXV0b21hdGljIHNvZnR3YXJlIHVwZGF0ZSBmZWF0dXJlLiBQbGVhc2UgcmVmZXIgdG8KKwkJICBkb2N1bWVudGF0aW9uIGluIGRvYy9SRUFETUUudXBkYXRlIGZvciBtb3JlIGRldGFpbHMuCisKICAgYXV0b2xvYWQJLSBpZiBzZXQgdG8gIm5vIiAoYW55IHN0cmluZyBiZWdpbm5pbmcgd2l0aCAnbicpLAogCQkgICJib290cCIgd2lsbCBqdXN0IGxvYWQgcGVyZm9ybSBhIGxvb2t1cCBvZiB0aGUKIAkJICBjb25maWd1cmF0aW9uIGZyb20gdGhlIEJPT1RQIHNlcnZlciwgYnV0IG5vdCB0cnkgdG8KQEAgLTI4NDcsNyArMjkwOSw3IEBACiAJCSAgaXMgdXN1YWxseSB3aGF0IHlvdSB3YW50IHNpbmNlIGl0IGFsbG93cyBmb3IKIAkJICBtYXhpbXVtIGluaXRyZCBzaXplLiBJZiBmb3Igc29tZSByZWFzb24geW91IHdhbnQgdG8KIAkJICBtYWtlIHN1cmUgdGhhdCB0aGUgaW5pdHJkIGltYWdlIGlzIGxvYWRlZCBiZWxvdyB0aGUKLQkJICBDRkdfQk9PVE1BUFNaIGxpbWl0LCB5b3UgY2FuIHNldCB0aGlzIGVudmlyb25tZW50CisJCSAgQ09ORklHX1NZU19CT09UTUFQU1ogbGltaXQsIHlvdSBjYW4gc2V0IHRoaXMgZW52aXJvbm1lbnQKIAkJICB2YXJpYWJsZSB0byBhIHZhbHVlIG9mICJubyIgb3IgIm9mZiIgb3IgIjAiLgogCQkgIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gc2V0IGl0IHRvIGEgbWF4aW11bSB1cHBlcgogCQkgIGFkZHJlc3MgdG8gdXNlIChVLUJvb3Qgd2lsbCBzdGlsbCBjaGVjayB0aGF0IGl0CkBAIC0zMTIxLDcgKzMxODMsNyBAQAogaW5jbHVkZS9hc20tcHBjL3RxbTh4eC5oKSBpbmNsdWRlcyB0aGUgc2FtZSBkZWZpbml0aW9uIG9mIHRoZSBCb2FyZAogSW5mb3JtYXRpb24gc3RydWN0dXJlIGFzIHdlIGRlZmluZSBpbiBpbmNsdWRlL2FzbS08YXJjaD4vdS1ib290LmgsCiBhbmQgbWFrZSBzdXJlIHRoYXQgeW91ciBkZWZpbml0aW9uIG9mIElNQVBfQUREUiB1c2VzIHRoZSBzYW1lIHZhbHVlCi1hcyB5b3VyIFUtQm9vdCBjb25maWd1cmF0aW9uIGluIENGR19JTU1SLgorYXMgeW91ciBVLUJvb3QgY29uZmlndXJhdGlvbiBpbiBDT05GSUdfU1lTX0lNTVIuCiAKIAogQ29uZmlndXJpbmcgdGhlIExpbnV4IGtlcm5lbDoKQEAgLTM2NjgsNyArMzczMCw3IEBACiAJY2F1c2UgeW91IGdyaWVmIGR1cmluZyB0aGUgaW5pdGlhbCBib290ISBJdCBpcyBmcmVxdWVudGx5IG5vdAogCXVzZWQuCiAKLQlDRkdfSU5JVF9SQU1fQUREUiBzaG91bGQgYmUgc29tZXdoZXJlIHRoYXQgd29uJ3QgaW50ZXJmZXJlCisJQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHNob3VsZCBiZSBzb21ld2hlcmUgdGhhdCB3b24ndCBpbnRlcmZlcmUKIAl3aXRoIHlvdXIgcHJvY2Vzc29yL2JvYXJkL3N5c3RlbSBkZXNpZ24uIFRoZSBkZWZhdWx0IHZhbHVlCiAJeW91IHdpbGwgZmluZCBpbiBhbnkgcmVjZW50IHUtYm9vdCBkaXN0cmlidXRpb24gaW4KIAl3YWxudXQuaCBzaG91bGQgd29yayBmb3IgeW91LiBJJ2Qgc2V0IGl0IHRvIGEgdmFsdWUgbGFyZ2VyCkBAIC0zNzY1LDcgKzM4MjcsNyBAQAogVFFNOHh4TCBtb2R1bGVzIHRoaXMgaXMgdGhlIHJhbmdlIDB4NDAwMDAwMDAgLi4uIDB4NDAwMUZGRkYpLiBBZnRlcgogYm9vdGluZyBhbmQgc2l6aW5nIGFuZCBpbml0aWFsaXppbmcgRFJBTSwgdGhlIGNvZGUgcmVsb2NhdGVzIGl0c2VsZgogdG8gdGhlIHVwcGVyIGVuZCBvZiBEUkFNLiBJbW1lZGlhdGVseSBiZWxvdyB0aGUgVS1Cb290IGNvZGUgc29tZQotbWVtb3J5IGlzIHJlc2VydmVkIGZvciB1c2UgYnkgbWFsbG9jKCkgW3NlZSBDRkdfTUFMTE9DX0xFTgorbWVtb3J5IGlzIHJlc2VydmVkIGZvciB1c2UgYnkgbWFsbG9jKCkgW3NlZSBDT05GSUdfU1lTX01BTExPQ19MRU4KIGNvbmZpZ3VyYXRpb24gc2V0dGluZ10uIEJlbG93IHRoYXQsIGEgc3RydWN0dXJlIHdpdGggZ2xvYmFsIEJvYXJkCiBJbmZvIGRhdGEgaXMgcGxhY2VkLCBmb2xsb3dlZCBieSB0aGUgc3RhY2sgKGdyb3dpbmcgZG93bndhcmQpLgogCmRpZmYgLS1naXQgYS9SRUFETUUubmlvc19DT05GSUdfU1lTX05JT1NfQ1BVIGIvUkVBRE1FLm5pb3NfQ09ORklHX1NZU19OSU9TX0NQVQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTQ3YzM0Ci0tLSAvZGV2L251bGwKKysrIGIvUkVBRE1FLm5pb3NfQ09ORklHX1NZU19OSU9TX0NQVQpAQCAtMCwwICsxLDE0MCBAQAorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisJQyBGIEcgXyBOIEkgTyBTIF8gQyBQIFUgXyAqICAgdiBzIC4gICBOIEkgTyBTCVMgRCBLCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1doZW4gZXZlciB5b3UgaGF2ZSB0byBtYWtlIGEgbmV3IE5JT1MgQ1BVIGNvbmZpZ3VyYXRpb24geW91IGNhbiB1c2UgdGhpcyB0YWJsZQorYXMgYSByZWZlcmVuY2UgbGlzdCB0byB0aGUgb3JpZ2luYWwgTklPUyBTREsgc3ltYm9scyBtYWRlIGJ5IEFsdGVyYXMgU09QQworQnVpbGRlci4gTG9vayBpbnRvIGV4Y2FsaWJ1ci5oIGFuZCBleGNhbGlidXIucyBpbiB5b3VyIFNESyBwYXRoIGNwdV9zZGsvaW5jLgorU3ltYm9scyBiZWdpbm5pbmcgd2l0aCBhICdbcHRmXTonIGFyZSBjb21pbmcgZnJvbSB5b3VyIFNPUEMgc3l0ZW0gZGVzY3JpcHRpb24KKyhQVEYgZmlsZSkgaW4gc2VjdGlvbnMgV0laQVJEX1NDUklQVF9BUkdVTUVOVFMgb3IgU1lTVEVNX0JVSUxERVJfSU5GTy4KKworQyBPIFIgRQkJCQkJTiBJIE8gUwkgIFMgRCBLCQkJWzFdLFs3XQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ09ORklHX1NZU19OSU9TX0NQVV9DTEsJCQkJCW5hc3lzX2Nsb2NrX2ZyZXEKK0NPTkZJR19TWVNfTklPU19DUFVfSUNBQ0hFCQkJCQluYXN5c19pY2FjaGVfc2l6ZQorQ09ORklHX1NZU19OSU9TX0NQVV9EQ0FDSEUJCQkJCW5hc3lzX2RjYWNoZV9zaXplCitDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCQkJCQluYXN5c19uaW9zX251bV9yZWdzCitDT05GSUdfU1lTX05JT1NfQ1BVX01VTAkJCQkJX19uaW9zX3VzZV9tdWx0aXBseV9fCitDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCQkJCQlfX25pb3NfdXNlX21zdGVwX18KK0NPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sJCQkJCW5hc3lzX3N0YWNrX3RvcAorQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQkJCQkJbmFzeXNfdmVjdG9yX3RhYmxlCitDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCQkJCQluYXN5c192ZWN0b3JfdGFibGVfc2l6ZQorQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfTlVNUworQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVAkJCQkJbmFzeXNfcmVzZXRfYWRkcmVzcworQ09ORklHX1NZU19OSU9TX0NQVV9EQkdfQ09SRQkJCQkJbmFzeXNfZGVidWdfY29yZQorQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fQkFTRQkJbmFfb25jaGlwX3JhbV82NF9rYnl0ZXMKK0NPTkZJR19TWVNfTklPU19DUFVfUkFNX1NJWkUJCW5hX29uY2hpcF9yYW1fNjRfa2J5dGVzX3NpemUKK0NPTkZJR19TWVNfTklPU19DUFVfUk9NX0JBU0UJCW5hX2Jvb3RfbW9uaXRvcl9yb20KK0NPTkZJR19TWVNfTklPU19DUFVfUk9NX1NJWkUJCW5hX2Jvb3RfbW9uaXRvcl9yb21fc2l6ZQorQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfQkFTRQkJCQkJbmFzeXNfb2NpX2NvcmUKK0NPTkZJR19TWVNfTklPU19DUFVfT0NJX1NJWkUKK0NPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCQluYV9leHRfcmFtCQluYXN5c19wcm9ncmFtX21lbQorCQkJCQkJCW5hc3lzX2RhdGFfbWVtCitDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRQkJbmFfZXh0X3JhbV9zaXplCQluYXN5c19wcm9ncmFtX21lbV9zaXplCisJCQkJCQkJbmFzeXNfZGF0YV9tZW1fc2l6ZQorQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCQkgbmFfc2RyYW0KK0NPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRQkJIG5hX3NkcmFtX3NpemUKK0NPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQkJIG5hX2V4dF9mbGFzaAkJbmFzeXNfbWFpbl9mbGFzaAorCQkJCQkJCW5hc3lzX2FtMjlsdjA2NWRfZmxhc2hfMAorCQkJCQkJCW5hc3lzX2ZsYXNoXzAKK0NPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfU0laRQkgICAgbmFfZXh0X2ZsYXNoX3NpemUJCW5hc3lzX21haW5fZmxhc2hfc2l6ZQorCitUIEkgTSBFIFIJCQkJTiBJIE8gUwkgIFMgRCBLCQkJICAgIFszXQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUl9OVU1TCQkJCQluYXN5c190aW1lcl9jb3VudAorQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUlswLTldCQkJCQluYXN5c190aW1lcl9bMC05XQorQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUlswLTldX0lSUQkJCQluYXN5c190aW1lcl9bMC05XV9pcnEKK0NPTkZJR19TWVNfTklPU19DUFVfVElNRVJbMC05XV9QRVIJCQkJW3B0Zl06cGVyaW9kCisJCQkJCQkJW3B0Zl06cGVyaW9kX3VuaXRzCisJCQkJCQkJW3B0Zl06bXVsdAorQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUlswLTldX0FSCQkJCVtwdGZdOmFsd2F5c19ydW4KK0NPTkZJR19TWVNfTklPU19DUFVfVElNRVJbMC05XV9GUAkJCQlbcHRmXTpmaXhlZF9wZXJpb2QKK0NPTkZJR19TWVNfTklPU19DUFVfVElNRVJbMC05XV9TUwkJCQlbcHRmXTpzbmFwc2hvdAorCitVIEEgUiBUCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzJdCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUwkJCQkJbmFzeXNfdWFydF9jb3VudAorQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUWzAtOV0JCQkJCW5hc3lzX3VhcnRfWzAtOV0KK0NPTkZJR19TWVNfTklPU19DUFVfVUFSVFswLTldX0lSUQkJCQluYXN5c191YXJ0X1swLTldX2lycQorQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUWzAtOV1fQlIJCQkJW3B0Zl06YmF1ZAorQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUWzAtOV1fREIJCQkJW3B0Zl06ZGF0YV9iaXRzCitDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRbMC05XV9TQgkJCQlbcHRmXTpzdG9wX2JpdHMKK0NPTkZJR19TWVNfTklPU19DUFVfVUFSVFswLTldX1BBCQkJCVtwdGZdOnBhcml0eQorQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUWzAtOV1fSFMJCQkJW3B0Zl06dXNlX2N0c19ydHMKK0NPTkZJR19TWVNfTklPU19DUFVfVUFSVFswLTldX0VPUAkJCQlbcHRmXTp1c2VfZW9wX3JlZ2lzdGVyCisKK1AgSSBPCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzRdCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX1BJT19OVU1TCQkJCQluYXN5c19waW9fY291bnQKK0NPTkZJR19TWVNfTklPU19DUFVfUElPWzAtOV0JCQkJCW5hc3lzX3Bpb19bMC05XQorQ09ORklHX1NZU19OSU9TX0NQVV9QSU9bMC05XV9JUlEJCQkJbmFzeXNfcGlvX1swLTldX2lycQorQ09ORklHX1NZU19OSU9TX0NQVV9QSU9bMC05XV9CSVRTCQkJCVtwdGZdOkRhdGFfV2lkdGgKK0NPTkZJR19TWVNfTklPU19DUFVfUElPWzAtOV1fVFlQRQkJCQlbcHRmXTpoYXNfdHJpCisJCQkJCQkJW3B0Zl06aGFzX291dAorCQkJCQkJCVtwdGZdOmhhc19pbgorQ09ORklHX1NZU19OSU9TX0NQVV9QSU9bMC05XV9DQVAJCQkJW3B0Zl06Y2FwdHVyZQorQ09ORklHX1NZU19OSU9TX0NQVV9QSU9bMC05XV9FREdFCQkJCVtwdGZdOmVkZ2VfdHlwZQorQ09ORklHX1NZU19OSU9TX0NQVV9QSU9bMC05XV9JVFlQRQkJCQlbcHRmXTppcnFfdHlwZQorCitTIFAgSQkJCQkJTiBJIE8gUwkgIFMgRCBLCQkJICAgIFs2XQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ09ORklHX1NZU19OSU9TX0NQVV9TUElfTlVNUwkJCQkJbmFzeXNfc3BpX2NvdW50CitDT05GSUdfU1lTX05JT1NfQ1BVX1NQSVswLTldCQkJCQluYXN5c19zcGlfWzAtOV0KK0NPTkZJR19TWVNfTklPU19DUFVfU1BJWzAtOV1fSVJRCQkJCW5hc3lzX3NwaV9bMC05XV9pcnEKK0NPTkZJR19TWVNfTklPU19DUFVfU1BJWzAtOV1fQklUUwkJCQlbcHRmXTpkYXRhYml0cworQ09ORklHX1NZU19OSU9TX0NQVV9TUElbMC05XV9NQQkJCQlbcHRmXTppc21hc3RlcgorQ09ORklHX1NZU19OSU9TX0NQVV9TUElbMC05XV9TTE4JCQkJW3B0Zl06bnVtc2xhdmVzCitDT05GSUdfU1lTX05JT1NfQ1BVX1NQSVswLTldX1RDTEsJCQkJW3B0Zl06dGFyZ2V0Y2xvY2sKK0NPTkZJR19TWVNfTklPU19DUFVfU1BJWzAtOV1fVERFTEFZCQkJCVtwdGZdOnRhcmdldGRlbGF5CitDT05GSUdfU1lTX05JT1NfQ1BVX1NQSVswLTldXyoJCQkJCVtwdGZdOioKKworSSBEIEUJCQkJCU4gSSBPIFMJICBTIEQgSworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ09ORklHX1NZU19OSU9TX0NQVV9JREVfTlVNUwkJCQkJbmFzeXNfdXNlcnNvY2tldF9jb3VudAorQ09ORklHX1NZU19OSU9TX0NQVV9JREVbMC05XQkJCQkJbmFzeXNfdXNlcnNvY2tldF9bMC05XQorCitBIFMgTSBJCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzVdCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUlfTlVNUwkJCQkJbmFzeXNfYXNtaV9jb3VudAorQ09ORklHX1NZU19OSU9TX0NQVV9BU01JWzAtOV0JCQkJCW5hc3lzX2FzbWlfWzAtOV0KK0NPTkZJR19TWVNfTklPU19DUFVfQVNNSVswLTldX0lSUQkJCQluYXN5c19hc21pX1swLTldX2lycQorCitFIHQgaCBlIHIgbiBlIHQJICAoIEwgQSBOICkJCU4gSSBPIFMJICBTIEQgSworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUworQ09ORklHX1NZU19OSU9TX0NQVV9MQU5bMC05XV9CQVNFCW5hX2xhbjkxYzExMQorQ09ORklHX1NZU19OSU9TX0NQVV9MQU5bMC05XV9PRkZTCQkJCUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VUCitDT05GSUdfU1lTX05JT1NfQ1BVX0xBTlswLTldX0lSUQluYV9sYW45MWMxMTFfaXJxCitDT05GSUdfU1lTX05JT1NfQ1BVX0xBTlswLTldX0JVU1cJCQkJTEFOOTFDMTExX0RBVEFfQlVTX1dJRFRICitDT05GSUdfU1lTX05JT1NfQ1BVX0xBTlswLTldX1RZUEUKKworcyB5IHMgdCBlIG0gICBjIG8gbSBwIG8gcyBpIG4gZwkJTiBJIE8gUwkgIFMgRCBLCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIJCShuYV9sb3dfcHJpb3JpdHlfdGltZXIyKQorQ09ORklHX1NZU19OSU9TX0NQVV9VU0VSX1RJTUVSCQkobmFfdGltZXIxKQorQ09ORklHX1NZU19OSU9TX0NQVV9CVVRUT05fUElPCQkobmFfYnV0dG9uX3BpbykKK0NPTkZJR19TWVNfTklPU19DUFVfTENEX1BJTwkJKG5hX2xjZF9waW8pCitDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JCShuYV9sZWRfcGlvKQorQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8JKG5hX3NldmVuX3NlZ19waW8pCitDT05GSUdfU1lTX05JT1NfQ1BVX1JFQ09ORl9QSU8JCShuYV9yZWNvbmZpZ19yZXF1ZXN0X3BpbykKK0NPTkZJR19TWVNfTklPU19DUFVfQ0ZQUkVTRU5UX1BJTwkobmFfY2ZfcHJlc2VudF9waW8pCitDT05GSUdfU1lTX05JT1NfQ1BVX0NGUE9XRVJfUElPCShuYV9jZl9wb3dlcl9waW8pCitDT05GSUdfU1lTX05JT1NfQ1BVX0NGQVRBU0VMX1BJTwkobmFfY2ZfYXRhX3NlbGVjdF9waW8pCitDT05GSUdfU1lTX05JT1NfQ1BVX1VTRVJfU1BJCQkobmFfc3BpKQorCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwlSIEUgRiBFIFIgRSBOIEMgRSBTCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitbMV0JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc2NwdS5wZGYKK1syXQlodHRwOi8vd3d3LmFsdGVyYS5jb20vbGl0ZXJhdHVyZS9kcy9kc19uaW9zX3VhcnQucGRmCitbM10JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc190aW1lci5wZGYKK1s0XQlodHRwOi8vd3d3LmFsdGVyYS5jb20vbGl0ZXJhdHVyZS9kcy9kc19uaW9zX3Bpby5wZGYKK1s1XQlodHRwOi8vd3d3LmFsdGVyYS5jb20vbGl0ZXJhdHVyZS9kcy9kc19uaW9zX2FzbWkucGRmCitbNl0JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc19zcGkucGRmCitbN10JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbGVnYWN5X3NkcmFtX2N0cmwucGRmCisKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorU3RlcGhhbiBMaW56IDxsaW56QGxpLXByby5uZXQ+CmRpZmYgLS1naXQgYS9hcGkvYXBpX3N0b3JhZ2UuYyBiL2FwaS9hcGlfc3RvcmFnZS5jCmluZGV4IDU2NDJkZDMuLjZmYWM5OGIgMTAwNjQ0Ci0tLSBhL2FwaS9hcGlfc3RvcmFnZS5jCisrKyBiL2FwaS9hcGlfc3RvcmFnZS5jCkBAIC02NywyOCArNjcsMjggQEAKIHZvaWQgZGV2X3N0b3JfaW5pdCh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9JREUpCi0Jc3BlY3NbRU5VTV9JREVdLm1heF9kZXYgPSBDRkdfSURFX01BWERFVklDRTsKKwlzcGVjc1tFTlVNX0lERV0ubWF4X2RldiA9IENPTkZJR19TWVNfSURFX01BWERFVklDRTsKIAlzcGVjc1tFTlVNX0lERV0uZW51bV9zdGFydGVkID0gMDsKIAlzcGVjc1tFTlVNX0lERV0uZW51bV9lbmRlZCA9IDA7CiAJc3BlY3NbRU5VTV9JREVdLnR5cGUgPSBERVZfVFlQX1NUT1IgfCBEVF9TVE9SX0lERTsKIAlzcGVjc1tFTlVNX0lERV0ubmFtZSA9ICJpZGUiOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX01NQykKLQlzcGVjc1tFTlVNX01NQ10ubWF4X2RldiA9IENGR19NTUNfTUFYX0RFVklDRTsKKwlzcGVjc1tFTlVNX01NQ10ubWF4X2RldiA9IENPTkZJR19TWVNfTU1DX01BWF9ERVZJQ0U7CiAJc3BlY3NbRU5VTV9NTUNdLmVudW1fc3RhcnRlZCA9IDA7CiAJc3BlY3NbRU5VTV9NTUNdLmVudW1fZW5kZWQgPSAwOwogCXNwZWNzW0VOVU1fTU1DXS50eXBlID0gREVWX1RZUF9TVE9SIHwgRFRfU1RPUl9NTUM7CiAJc3BlY3NbRU5VTV9NTUNdLm5hbWUgPSAibW1jIjsKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9TQVRBKQotCXNwZWNzW0VOVU1fU0FUQV0ubWF4X2RldiA9IENGR19TQVRBX01BWF9ERVZJQ0U7CisJc3BlY3NbRU5VTV9TQVRBXS5tYXhfZGV2ID0gQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0U7CiAJc3BlY3NbRU5VTV9TQVRBXS5lbnVtX3N0YXJ0ZWQgPSAwOwogCXNwZWNzW0VOVU1fU0FUQV0uZW51bV9lbmRlZCA9IDA7CiAJc3BlY3NbRU5VTV9TQVRBXS50eXBlID0gREVWX1RZUF9TVE9SIHwgRFRfU1RPUl9TQVRBOwogCXNwZWNzW0VOVU1fU0FUQV0ubmFtZSA9ICJzYXRhIjsKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9TQ1NJKQotCXNwZWNzW0VOVU1fU0NTSV0ubWF4X2RldiA9IENGR19TQ1NJX01BWF9ERVZJQ0U7CisJc3BlY3NbRU5VTV9TQ1NJXS5tYXhfZGV2ID0gQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0U7CiAJc3BlY3NbRU5VTV9TQ1NJXS5lbnVtX3N0YXJ0ZWQgPSAwOwogCXNwZWNzW0VOVU1fU0NTSV0uZW51bV9lbmRlZCA9IDA7CiAJc3BlY3NbRU5VTV9TQ1NJXS50eXBlID0gREVWX1RZUF9TVE9SIHwgRFRfU1RPUl9TQ1NJOwpkaWZmIC0tZ2l0IGEvYm9hcmQvQXRtYXJrVGVjaG5vL3N1emFrdS9mbGFzaC5jIGIvYm9hcmQvQXRtYXJrVGVjaG5vL3N1emFrdS9mbGFzaC5jCmluZGV4IDQ5YTA2NzMuLmNlNmZhZTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL0F0bWFya1RlY2huby9zdXpha3UvZmxhc2guYworKysgYi9ib2FyZC9BdG1hcmtUZWNobm8vc3V6YWt1L2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL0VCK01DRi1FVjEyMy5jIGIvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9FQitNQ0YtRVYxMjMuYwppbmRleCAzOWM5N2IxLi5kNTA5YThmIDEwMDY0NAotLS0gYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL0VCK01DRi1FVjEyMy5jCisrKyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvRUIrTUNGLUVWMTIzLmMKQEAgLTMyLDcgKzMyLDcgQEAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewogCXB1dHMgKCJCb2FyZDogTUNGLUVWMSArIE1DRi1FVjIzIChCdVMgRWxla3Ryb25payBHbWJIICYgQ28uIEtHKVxuIik7Ci0jaWYgKFRFWFRfQkFTRSA9PSAgQ0ZHX0lOVF9GTEFTSF9CQVNFKQorI2lmIChURVhUX0JBU0UgPT0gIENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpCiAJcHV0cyAoIiAgICAgICBCb290IGZyb20gSW50ZXJuYWwgRkxBU0hcbiIpOwogI2VuZGlmCiAKQEAgLTQ1LDEwICs0NSwxMCBAQAogCiAJc2l6ZSA9IDA7CiAJTUNGU0RSQU1DX0RDUiA9IE1DRlNEUkFNQ19EQ1JfUlRJTV82Ci0JCQl8IE1DRlNEUkFNQ19EQ1JfUkMgKCgxNSAqIENGR19DTEspID4+IDQpOwotI2lmZGVmIENGR19TRFJBTV9CQVNFMAorCQkJfCBNQ0ZTRFJBTUNfRENSX1JDICgoMTUgKiBDT05GSUdfU1lTX0NMSykgPj4gNCk7CisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9CQVNFMAogCi0JTUNGU0RSQU1DX0RBQ1IwID0gTUNGU0RSQU1DX0RBQ1JfQkFTRSAoQ0ZHX1NEUkFNX0JBU0UwKQorCU1DRlNEUkFNQ19EQUNSMCA9IE1DRlNEUkFNQ19EQUNSX0JBU0UgKENPTkZJR19TWVNfU0RSQU1fQkFTRTApCiAJCQl8IE1DRlNEUkFNQ19EQUNSX0NBU0wgKDEpCiAJCQl8IE1DRlNEUkFNQ19EQUNSX0NCTSAoMykKIAkJCXwgTUNGU0RSQU1DX0RBQ1JfUFNfMTY7CkBAIC01NywxNyArNTcsMTcgQEAKIAogCU1DRlNEUkFNQ19EQUNSMCB8PSBNQ0ZTRFJBTUNfREFDUl9JUDsKIAotCSoodW5zaWduZWQgc2hvcnQgKikgKENGR19TRFJBTV9CQVNFMCkgPSAweEE1QTU7CisJKih1bnNpZ25lZCBzaG9ydCAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFMCkgPSAweEE1QTU7CiAJTUNGU0RSQU1DX0RBQ1IwIHw9IE1DRlNEUkFNQ19EQUNSX1JFOwogCWZvciAoaSA9IDA7IGkgPCAyMDAwOyBpKyspCiAJCWFzbSAoIiBub3AiKTsKIAltYmFyX3dyaXRlTG9uZyAoTUNGU0RSQU1DX0RBQ1IwLAogCQkJbWJhcl9yZWFkTG9uZyAoTUNGU0RSQU1DX0RBQ1IwKSB8IE1DRlNEUkFNQ19EQUNSX0lNUlMpOwotCSoodW5zaWduZWQgaW50ICopIChDRkdfU0RSQU1fQkFTRTAgKyAweDIyMCkgPSAweEE1QTU7Ci0Jc2l6ZSArPSBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCSoodW5zaWduZWQgaW50ICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UwICsgMHgyMjApID0gMHhBNUE1OworCXNpemUgKz0gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiAjZW5kaWYKLSNpZmRlZiBDRkdfU0RSQU1fQkFTRTEKLQlNQ0ZTRFJBTUNfREFDUjEgPSBNQ0ZTRFJBTUNfREFDUl9CQVNFIChDRkdfU0RSQU1fQkFTRTEpCisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9CQVNFMQorCU1DRlNEUkFNQ19EQUNSMSA9IE1DRlNEUkFNQ19EQUNSX0JBU0UgKENPTkZJR19TWVNfU0RSQU1fQkFTRTEpCiAJCQl8IE1DRlNEUkFNQ19EQUNSX0NBU0wgKDEpCiAJCQl8IE1DRlNEUkFNQ19EQUNSX0NCTSAoMykKIAkJCXwgTUNGU0RSQU1DX0RBQ1JfUFNfMTY7CkBAIC03NiwyNSArNzYsMjUgQEAKIAogCU1DRlNEUkFNQ19EQUNSMSB8PSBNQ0ZTRFJBTUNfREFDUl9JUDsKIAotCSoodW5zaWduZWQgc2hvcnQgKikgKENGR19TRFJBTV9CQVNFMSkgPSAweEE1QTU7CisJKih1bnNpZ25lZCBzaG9ydCAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFMSkgPSAweEE1QTU7CiAJTUNGU0RSQU1DX0RBQ1IxIHw9IE1DRlNEUkFNQ19EQUNSX1JFOwogCiAJZm9yIChpID0gMDsgaSA8IDIwMDA7IGkrKykKIAkJYXNtICgiIG5vcCIpOwogCiAJTUNGU0RSQU1DX0RBQ1IxIHw9IE1DRlNEUkFNQ19EQUNSX0lNUlM7Ci0JKih1bnNpZ25lZCBpbnQgKikgKENGR19TRFJBTV9CQVNFMSArIDB4MjIwKSA9IDB4QTVBNTsKLQlzaXplICs9IENGR19TRFJBTV9TSVpFMSAqIDEwMjQgKiAxMDI0OworCSoodW5zaWduZWQgaW50ICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UxICsgMHgyMjApID0gMHhBNUE1OworCXNpemUgKz0gQ09ORklHX1NZU19TRFJBTV9TSVpFMSAqIDEwMjQgKiAxMDI0OwogI2VuZGlmCiAJcmV0dXJuIHNpemU7CiB9CiAKIAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogaW50IHRlc3RkcmFtICh2b2lkKQogewotCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENGR19NRU1URVNUX1NUQVJUOwotCXVpbnQgKnBlbmQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9FTkQ7CisJdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCXVpbnQgKnBlbmQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfRU5EOwogCXVpbnQgKnA7CiAKIAlwcmludGYoIlNEUkFNIHRlc3QgcGhhc2UgMTpcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9WQ3hLLmMgYi9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL1ZDeEsuYwppbmRleCA0YjQ2YjdjLi5mMmZlMzUzIDEwMDY0NAotLS0gYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL1ZDeEsuYworKysgYi9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL1ZDeEsuYwpAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGFzbS9tNTI4Mi5oPgogI2luY2x1ZGUgIlZDeEsuaCIKIAotdnVfY2hhciAqdmN4a19id3MgPSAodnVfY2hhciAqKShDRkdfQ1MzX0JBU0UpOwordnVfY2hhciAqdmN4a19id3MgPSAodnVfY2hhciAqKShDT05GSUdfU1lTX0NTM19CQVNFKTsKICNkZWZpbmUgVkNYS19CV1MgdmN4a19id3MKIAogc3RhdGljIHVsb25nIHZjeGtfZHJpdmVyOwpkaWZmIC0tZ2l0IGEvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9jZm1fZmxhc2guYyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvY2ZtX2ZsYXNoLmMKaW5kZXggOThlNTYzZi4uZmUwM2IxNyAxMDA2NDQKLS0tIGEvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9jZm1fZmxhc2guYworKysgYi9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2NmbV9mbGFzaC5jCkBAIC0yOCwxNCArMjgsMTQgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX001MjgxKSB8fCBkZWZpbmVkKENPTkZJR19NNTI4MikKIAotI2lmIChDRkdfQ0xLPjIwMDAwMDAwKQotCSNkZWZpbmUgQ0ZNX0NMSyAgKCgobG9uZykgQ0ZHX0NMSyAvICg0MDAwMDAgKiA4KSArIDEpIHwgMHg0MCkKKyNpZiAoQ09ORklHX1NZU19DTEs+MjAwMDAwMDApCisJI2RlZmluZSBDRk1fQ0xLICAoKChsb25nKSBDT05GSUdfU1lTX0NMSyAvICg0MDAwMDAgKiA4KSArIDEpIHwgMHg0MCkKICNlbHNlCi0JI2RlZmluZSBDRk1fQ0xLICAoKGxvbmcpIENGR19DTEsgLyA0MDAwMDAgKyAxKQorCSNkZWZpbmUgQ0ZNX0NMSyAgKChsb25nKSBDT05GSUdfU1lTX0NMSyAvIDQwMDAwMCArIDEpCiAjZW5kaWYKIAogI2RlZmluZSBjbWZfYmFja2Rvb3JfYWRkcmVzcyhhZGRyKQkoKChhZGRyKSAmIDB4MDAwN0ZGRkYpIHwgMHgwNDAwMDAwMCB8IFwKLQkJCQkJIChDRkdfTUJBUiAmIDB4QzAwMDAwMDApKQorCQkJCQkgKENPTkZJR19TWVNfTUJBUiAmIDB4QzAwMDAwMDApKQogCiB2b2lkIGNmbV9mbGFzaF9wcmludF9pbmZvIChmbGFzaF9pbmZvX3QgKiBpbmZvKQogewpAQCAtNjAsOCArNjAsOCBAQAogCU1DRkNGTV9NQ1IgPSAwOwogCU1DRkNGTV9DTEtEID0gQ0ZNX0NMSzsKIAlkZWJ1ZyAoIkNGTSBDbG9jayBkaXZpZGVyOiAlbGQgKCVkIEh6IEAgJWxkIEh6KVxuIixDRk1fQ0xLLFwKLQkJQ0ZHX0NMSyAvICgyKiAoKENGTV9DTEsgJiAweDNGKSsxKSAqICgxKygoQ0ZNX0NMSyAmIDB4NDApPj42KSo3KSksXAotCQlDRkdfQ0xLKTsKKwkJQ09ORklHX1NZU19DTEsgLyAoMiogKChDRk1fQ0xLICYgMHgzRikrMSkgKiAoMSsoKENGTV9DTEsgJiAweDQwKT4+NikqNykpLFwKKwkJQ09ORklHX1NZU19DTEspOwogCU1DRkNGTV9TQUNDID0gMDsKIAlNQ0ZDRk1fREFDQyA9IDA7CiAKQEAgLTg2LDcgKzg2LDcgQEAKIAl7CiAJCWlmIChzZWN0b3IgPT0gMCkKIAkJewotCQkJaW5mby0+c3RhcnRbc2VjdG9yXSA9IENGR19JTlRfRkxBU0hfQkFTRTsKKwkJCWluZm8tPnN0YXJ0W3NlY3Rvcl0gPSBDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFOwogCQl9CiAJCWVsc2UKIAkJewpAQCAtMTg3LDcgKzE4Nyw3IEBACiAJcmV0dXJuIHJjOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAogaW50IGNmbV9mbGFzaF9wcm90ZWN0KGZsYXNoX2luZm9fdCAqIGluZm8sbG9uZyBzZWN0b3IsaW50IHByb3QpCiB7CmRpZmYgLS1naXQgYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2NmbV9mbGFzaC5oIGIvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9jZm1fZmxhc2guaAppbmRleCBjYzhjZGJkLi5lZDRlNzk0IDEwMDY0NAotLS0gYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2NmbV9mbGFzaC5oCisrKyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvY2ZtX2ZsYXNoLmgKQEAgLTMzLDcgKzMzLDcgQEAKIGV4dGVybiBpbnQgY2ZtX2ZsYXNoX2VyYXNlX3NlY3RvciAoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNlY3Rvcik7CiBleHRlcm4gdm9pZCBjZm1fZmxhc2hfaW5pdCAoZmxhc2hfaW5mb190ICogaW5mbyk7CiBleHRlcm4gaW50IGNmbV9mbGFzaF93cml0ZV9idWZmIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1Y2hhciAqIHNyYywgdWxvbmcgYWRkciwgdWxvbmcgY250KTsKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogZXh0ZXJuIGludCBjZm1fZmxhc2hfcHJvdGVjdChmbGFzaF9pbmZvX3QgKiBpbmZvLGxvbmcgc2VjdG9yLGludCBwcm90KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2ZsYXNoLmMgYi9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL2ZsYXNoLmMKaW5kZXggYzJhMWI2Zi4uM2MzNjM2NyAxMDA2NDQKLS0tIGEvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9mbGFzaC5jCisrKyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvZmxhc2guYwpAQCAtMjcsMTAgKzI3LDEwIEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSAgImNmbV9mbGFzaC5oIgogCi0jZGVmaW5lIFBIWVNfRkxBU0hfMSBDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBQSFlTX0ZMQVNIXzEgQ09ORklHX1NZU19GTEFTSF9CQVNFCiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDIwMDAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogdm9pZCBmbGFzaF9wcmludF9pbmZvIChmbGFzaF9pbmZvX3QgKiBpbmZvKQogewpAQCAtODMsNyArODMsNyBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJc3dpdGNoIChpKQpAQCAtOTMsOCArOTMsOCBAQAogCQkJCShBTURfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCQkJCShBTURfSURfTFYxNjBCICYgRkxBU0hfVFlQRU1BU0spOwogCQkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJCWZsYXNoYmFzZSA9IFBIWVNfRkxBU0hfMTsKIAkJCWZvciAoaiA9IDA7IGogPCBmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudDsgaisrKSB7CiAJCQkJaWYgKGogPT0gMCkgewpAQCAtMTI4LDggKzEyOCw4IEBACiAJfQogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyAweGZmZmYsICZmbGFzaF9pbmZvWzBdKTsKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4ZmZmZiwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0xNzcsNyArMTc3LDcgQEAKIAkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJLyogY2hlY2sgdGltZW91dCAqLwotCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlNRU1fRkxBU0hfQUREUjEgPSBDTURfUkVBRF9BUlJBWTsKIAkJCXN0YXRlID0gRVJSX1RJTU9VVDsKIAkJfQpAQCAtMzAzLDcgKzMwMyw3IEBACiAJCXJlc3VsdCA9ICphZGRyOwogCiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lciAoMCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCXN0YXRlID0gRVJSX1RJTU9VVDsKIAkJfQogCQlpZiAoIXN0YXRlICYmICgocmVzdWx0ICYgQklUX1JEWV9NQVNLKSA9PSAoZGF0YSAmIEJJVF9SRFlfTUFTSykpKQpAQCAtMzkwLDcgKzM5MCw3IEBACiAJcmV0dXJuIHJjOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAogaW50IGZsYXNoX3JlYWxfcHJvdGVjdChmbGFzaF9pbmZvX3QgKiBpbmZvLGxvbmcgc2VjdG9yLGludCBwcm90KQogewpkaWZmIC0tZ2l0IGEvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9taWkuYyBiL2JvYXJkL0J1Uy9FQitNQ0YtRVYxMjMvbWlpLmMKaW5kZXggOGFlMmVjNi4uN2Y5MjUxNCAxMDA2NDQKLS0tIGEvYm9hcmQvQnVTL0VCK01DRi1FVjEyMy9taWkuYworKysgYi9ib2FyZC9CdVMvRUIrTUNGLUVWMTIzL21paS5jCkBAIC0zOCwxNSArMzgsMTUgQEAKIHsKIAlpZiAoc2V0Y2xlYXIpIHsKIAkJTUNGR1BJT19QQVNQQVIgfD0gMHgwRjAwOwotCQlNQ0ZHUElPX1BFSExQQVIgPSBDRkdfUEVITFBBUjsKKwkJTUNGR1BJT19QRUhMUEFSID0gQ09ORklHX1NZU19QRUhMUEFSOwogCX0gZWxzZSB7CiAJCU1DRkdQSU9fUEFTUEFSICY9IDB4RjBGRjsKLQkJTUNGR1BJT19QRUhMUEFSICY9IH5DRkdfUEVITFBBUjsKKwkJTUNGR1BJT19QRUhMUEFSICY9IH5DT05GSUdfU1lTX1BFSExQQVI7CiAJfQogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xMzIsOSArMTMyLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0xOTksNyArMTk5LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9MRU9YL2VscHQ4NjAvZWxwdDg2MC5jIGIvYm9hcmQvTEVPWC9lbHB0ODYwL2VscHQ4NjAuYwppbmRleCA1ZjUwNjMxLi45MDVkZjkyIDEwMDY0NAotLS0gYS9ib2FyZC9MRU9YL2VscHQ4NjAvZWxwdDg2MC5jCisrKyBiL2JvYXJkL0xFT1gvZWxwdDg2MC9lbHB0ODYwLmMKQEAgLTEzOCwyMyArMTM4LDIzIEBACiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2RlZmluZSBDRkdfUEM0ICAgIDB4MDgwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDNCAgICAweDA4MDAKIAotI2RlZmluZSBDRkdfRFMxICAgIENGR19QQzQKKyNkZWZpbmUgQ09ORklHX1NZU19EUzEgICAgQ09ORklHX1NZU19QQzQKIAogLyoKICAqIFZlcnkgZWFybHkgYm9hcmQgaW5pdCBjb2RlIChmcGdhIGJvb3QsIGV0Yy4pCiAgKi8KIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKgogCSAqIExpZ2h0IHVwIHRoZSByZWQgbGVkIG9uIEVMUFQ4NjAgcGNiIChEUzEpIChQQ0RBVCkKIAkgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH5DRkdfRFMxOwkvKiBQQ0RBVCAoRFMxID0gMCkgICAgICAgICAgICAgICAgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH5DRkdfRFMxOwkvKiBQQ1BBUiAoMD1nZW5lcmFsIHB1cnBvc2UgSS9PKSAgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENGR19EUzE7CS8qIFBDRElSIChJL086IDA9aW5wdXQsIDE9b3V0cHV0KSAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfkNPTkZJR19TWVNfRFMxOwkvKiBQQ0RBVCAoRFMxID0gMCkgICAgICAgICAgICAgICAgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH5DT05GSUdfU1lTX0RTMTsJLyogUENQQVIgKDA9Z2VuZXJhbCBwdXJwb3NlIEkvTykgICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSBDT05GSUdfU1lTX0RTMTsJLyogUENESVIgKEkvTzogMD1pbnB1dCwgMT1vdXRwdXQpICovCiAKIAlyZXR1cm4gKDApOwkJLyogc3VjY2VzcyAqLwogfQpAQCAtMTgxLDcgKzE4MSw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOCwgc2l6ZTk7CiAJbG9uZyBpbnQgc2l6ZV9iMCA9IDA7CkBAIC0yMDcsNyArMjA3LDcgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfOEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfOEs7CiAKIAkvKgogCSAqIFRoZSBmb2xsb3dpbmcgdmFsdWUgaXMgdXNlZCBhcyBhbiBhZGRyZXNzIChpLmUuIG9wY29kZSkgZm9yCkBAIC0yMjksMTAgKzIyOSwxMCBAQAogCSAqIHByZWxpbWluYXJ5IGFkZHJlc3NlcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0yNTIsNyArMjUyLDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsCisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl84Q09MLAogCQkJICAgU0RSQU1fQkFTRTFfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKIAl1ZGVsYXkgKDEwMDApOwpAQCAtMjYwLDcgKzI2MCw3IEBACiAJLyoKIAkgKiB0cnkgOSBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwKIAkJCSAgIFNEUkFNX0JBU0UxX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgICAgICAgKi8KQEAgLTI2OSw3ICsyNjksNyBAQAogCX0gZWxzZSB7CQkvKiBiYWNrIHRvIDggY29sdW1ucyAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJCXNpemVfYjAgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwogCQl1ZGVsYXkgKDUwMCk7CiAJCS8qIGRlYnVnICgiU0RSQU0gQmFuayAwIGluIDggY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7ICovCiAJfQpAQCAtMjgyLDIyICsyODIsMjIgQEAKIAkgKi8KIAlpZiAoc2l6ZV9iMCA8IDB4MDIwMDAwMDApIHsKIAkJLyogcmVkdWNlIHRvIDE1LjYgdXMgKDYyLjQgdXMgLyBxdWFkKSAqLwotCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzRLOworCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS180SzsKIAkJdWRlbGF5ICgxMDAwKTsKIAl9CiAKIAkvKgogCSAqIEZpbmFsIG1hcHBpbmc6IG1hcCBiaWdnZXIgYmFuayBmaXJzdAogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAKIAl7CiAJCXVuc2lnbmVkIGxvbmcgcmVnOwogCiAJCS8qIGFkanVzdCByZWZyZXNoIHJhdGUgZGVwZW5kaW5nIG9uIFNEUkFNIHR5cGUsIG9uZSBiYW5rICovCiAJCXJlZyA9IG1lbWN0bC0+bWVtY19tcHRwcjsKLQkJcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ0ZHX01QVFBSXzFCS184SyAvIF80SyAqLworCQlyZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDT05GSUdfU1lTX01QVFBSXzFCS184SyAvIF80SyAqLwogCQltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAJfQogCkBAIC0zMTksNyArMzE5LDcgQEAKIHN0YXRpYyBsb25nIGludAogZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTMyOSwyMCArMzI5LDIwIEBACiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2RlZmluZSBDRkdfUEExICAgICAweDQwMDAKLSNkZWZpbmUgQ0ZHX1BBMiAgICAgMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEExICAgICAweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQTIgICAgIDB4MjAwMAogCi0jZGVmaW5lIENGR19MQktzICAgIChDRkdfUEEyIHwgQ0ZHX1BBMSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQktzICAgIChDT05GSUdfU1lTX1BBMiB8IENPTkZJR19TWVNfUEExKQogCiB2b2lkIHJlc2V0X3BoeSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qCiAJICogRW5zdXJlIExCSyBMWFQ5MDEgZXRoZXJuZXQgMSAmIDIgPSAwIC4uLiBmb3Igbm9ybWFsIGxvb3BiYWNrIGluIGVmZmVjdAogCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG5vIEFVSSBsb29wYmFjawogCSAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgJj0gfkNGR19MQktzOwkvKiBQQURBVCAoTEJLIGV0aCAxJjIgPSAwKSAgICAgICAgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhcGFyICY9IH5DRkdfTEJLczsJLyogUEFQQVIgKDA9Z2VuZXJhbCBwdXJwb3NlIEkvTykgICovCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYWRpciB8PSBDRkdfTEJLczsJLyogUEFESVIgKEkvTzogMD1pbnB1dCwgMT1vdXRwdXQpICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+Q09ORklHX1NZU19MQktzOwkvKiBQQURBVCAoTEJLIGV0aCAxJjIgPSAwKSAgICAgICAgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhcGFyICY9IH5DT05GSUdfU1lTX0xCS3M7CS8qIFBBUEFSICgwPWdlbmVyYWwgcHVycG9zZSBJL08pICAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFkaXIgfD0gQ09ORklHX1NZU19MQktzOwkvKiBQQURJUiAoSS9POiAwPWlucHV0LCAxPW91dHB1dCkgKi8KIH0KZGlmZiAtLWdpdCBhL2JvYXJkL0xFT1gvZWxwdDg2MC9mbGFzaC5jIGIvYm9hcmQvTEVPWC9lbHB0ODYwL2ZsYXNoLmMKaW5kZXggNjY4YWVlMi4uOWE3NWFhZCAxMDA2NDQKLS0tIGEvYm9hcmQvTEVPWC9lbHB0ODYwL2ZsYXNoLmMKKysrIGIvYm9hcmQvTEVPWC9lbHB0ODYwL2ZsYXNoLmMKQEAgLTMzLDcgKzMzLDcgQEAKIC8qCiAqKiBOb3RlIDE6IEluIHRoaXMgZmlsZSwgeW91IGhhdmUgdG8gcHJvdmlkZSB0aGUgZm9sbG93aW5nIHZhcmlhYmxlOgogKiogLS0tLS0tCi0qKiAgICAgICAgICAgICAgZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU10KKyoqICAgICAgICAgICAgICBmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU10KICoqICdmbGFzaF9pbmZvX3QnIHN0cnVjdHVyZSBpcyBkZWZpbmVkIGludG8gJ2luY2x1ZGUvZmxhc2guaCcKICoqIGFuZCBkZWZpbmVkIGFzIGV4dGVybiBpbnRvICdjb21tb24vY21kX2ZsYXNoLmMnCiAqKgpAQCAtNjIsMTAgKzYyLDEwIEBACiAKIAogI2lmbmRlZglDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICNlbmRpZgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgRnVuY3Rpb25zCkBAIC04MiwxMyArODIsMTMgQEAKIHVuc2lnbmVkIGxvbmcKIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgIHZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKICAgdW5zaWduZWQgbG9uZyAgICAgICAgIHNpemVfYjA7CiAgIGludCBpOwogCiAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKQorICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKQogICAgIHsKICAgICAgIGZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogICAgIH0KQEAgLTEwNSwyMCArMTA1LDIwIEBACiAgICAgfQogCiAgIC8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLSAgbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiBPUl9BTV9NU0spOwotICBtZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9QU184IHwgQlJfVjsKKyAgbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKKyAgbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1BTXzggfCBCUl9WOwogCiAgIC8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLSAgc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKUNGR19GTEFTSF9CQVNFLAorICBzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIAotICBmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKyAgZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogICAvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogICBmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgQ0ZHX01PTklUT1JfQkFTRSwKLQkJIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzgzLDcgKzM4Myw3IEBACiAgIGFkZHIgPSAodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKICAgd2hpbGUgKCAoYWRkclswXSAmIDB4ODApICE9IDB4ODAgKQogICAgIHsKLSAgICAgIGlmICggKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgKQorICAgICAgaWYgKCAobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgKQogCXsKIAkgIHByaW50ZiAoIlRpbWVvdXRcbiIpOwogCSAgcmV0dXJuICggMSApOwpAQCAtNTU2LDcgKzU1Niw3IEBACiAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKICAgd2hpbGUgKCAoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSApCiAgICAgewotICAgICAgaWYgKCBnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgKQorICAgICAgaWYgKCBnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICkKIAl7CiAJICByZXR1cm4gKDEpOwogCX0KQEAgLTYwMiw3ICs2MDIsNyBAQAogICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAgIHdoaWxlICggKCooKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKilkZXN0KSAmIDB4ODApICE9IChkYXRhICYgMHg4MCkgKQogICAgIHsKLSAgICAgIGlmICggZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUICkKKyAgICAgIGlmICggZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCApCiAJewogCSAgcmV0dXJuICgxKTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2NtZF9ib290YS5jIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9jbWRfYm9vdGEuYwppbmRleCA0MGM5NTFkLi45NDlhZjE4IDEwMDY0NAotLS0gYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2NtZF9ib290YS5jCisrKyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvY21kX2Jvb3RhLmMKQEAgLTI3LDcgKzI3LDcgQEAKIAogaW50IGRvX2Jvb3RhIChjbWRfdGJsX3QgKiBjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0JdW5zaWduZWQgY2hhciAqbG9hZF9hZGRyZXNzID0gKHVuc2lnbmVkIGNoYXIgKikgQ0ZHX0xPQURfQUREUjsKKwl1bnNpZ25lZCBjaGFyICpsb2FkX2FkZHJlc3MgPSAodW5zaWduZWQgY2hhciAqKSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAl1bnNpZ25lZCBjaGFyICpiYXNlX2FkZHJlc3M7CiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvZmxhc2guYyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvZmxhc2guYwppbmRleCA0MDliOTU1Li5hOTZkNWJhIDEwMDY0NAotLS0gYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ZsYXNoLmMKKysrIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9mbGFzaC5jCkBAIC0xLDE0ICsxLDE0IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8Zmxhc2guaD4KIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CiAgICAgaW50IGk7CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKQorICAgIGZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKQogICAgIHsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IDA7CmRpZmYgLS1naXQgYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ZsYXNoX25ldy5jIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9mbGFzaF9uZXcuYwppbmRleCAzZWZlZTdlLi43YjdlYTE2IDEwMDY0NAotLS0gYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ZsYXNoX25ldy5jCisrKyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvZmxhc2hfbmV3LmMKQEAgLTM5LDcgKzM5LDcgQEAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplICh1bG9uZyBhZGRyLCBmbGFzaF9pbmZvX3QgKmluZm8pOwogc3RhdGljIGludCBmbGFzaF9nZXRfb2Zmc2V0cyAodWxvbmcgYmFzZSwgZmxhc2hfaW5mb190ICppbmZvKTsKQEAgLTgwLDcgKzgwLDcgQEAKIHsKICAgICBpbnQgaTsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspCisgICAgZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspCiAgICAgewogCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gMDsKQEAgLTEwMSwyNSArMTAxLDI1IEBACiAJZmxhc2hfdG9feGQoKTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IDA7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CiAJfQogCi0JREVCVUdGKCJcbiMjIEdldCBmbGFzaCBzaXplIEAgMHglMDh4XG4iLCBDRkdfRkxBU0hfQkFTRSk7CisJREVCVUdGKCJcbiMjIEdldCBmbGFzaCBzaXplIEAgMHglMDh4XG4iLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCi0JZmxhc2hfc2l6ZSA9IGZsYXNoX2dldF9zaXplIChDRkdfRkxBU0hfQkFTRSwgZmxhc2hfaW5mbyk7CisJZmxhc2hfc2l6ZSA9IGZsYXNoX2dldF9zaXplIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIGZsYXNoX2luZm8pOwogCiAJREVCVUdGKCIjIyBGbGFzaCBiYW5rIHNpemU6ICUwOGx4XG4iLCBmbGFzaF9zaXplKTsKIAogCWlmIChmbGFzaF9zaXplKSB7Ci0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRSAmJiBcCi0gICAgQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX01BWF9TSVpFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFICYmIFwKKyAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfTUFYX1NJWkUKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTI4NiwxMCArMjg2LDEwIEBACiAKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWlmICghIGZsYXNoX2dldF9vZmZzZXRzIChhZGRyLCBpbmZvKSkgewpAQCAtNDE4LDEwICs0MTgsMTAgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSBpbmZvLT5zdGFydFtsX3NlY3RdOwogCi0JREVCVUdGICgiU3RhcnQgZXJhc2UgdGltZW91dDogJWRcbiIsIENGR19GTEFTSF9FUkFTRV9UT1VUKTsKKwlERUJVR0YgKCJTdGFydCBlcmFzZSB0aW1lb3V0OiAlZFxuIiwgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKTsKIAogCXdoaWxlICgoaW44KGFkZHIpICYgMHg4MCkgIT0gMHg4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlmbGFzaF9yZXNldCAoaW5mby0+c3RhcnRbMF0pOwogCQkJZmxhc2hfdG9fbWVtKCk7CkBAIC01NjIsNyArNTYyLDcgQEAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgoaW44KGRlc3QraSkgJiAweDgwKSAhPSAoZGF0YV9jaFtpXSAmIDB4ODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCWZsYXNoX3Jlc2V0IChhZGRyKTsKIAkJCQlmbGFzaF90b19tZW0oKTsKIAkJCQlyZXR1cm4gKDEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9pODI1OS5oIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9pODI1OS5oCmluZGV4IDA1YzQwNTIuLmViMDhlMTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvaTgyNTkuaAorKysgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2k4MjU5LmgKQEAgLTIxLDIwICsyMSwyMCBAQAogICogTUEgMDIxMTEtMTMwNyBVU0EKICAqLwogCi0jZGVmaW5lIElDVzFfMSAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9JQ1cxCi0jZGVmaW5lIElDVzFfMiAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9JQ1cxCi0jZGVmaW5lIElDVzJfMSAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9JQ1cyCi0jZGVmaW5lIElDVzJfMiAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9JQ1cyCi0jZGVmaW5lIElDVzNfMSAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9JQ1czCi0jZGVmaW5lIElDVzNfMiAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9JQ1czCi0jZGVmaW5lIElDVzRfMSAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9JQ1c0Ci0jZGVmaW5lIElDVzRfMiAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9JQ1c0Ci0jZGVmaW5lIE9DVzFfMSAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9PQ1cxCi0jZGVmaW5lIE9DVzFfMiAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9PQ1cxCi0jZGVmaW5lIE9DVzJfMSAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9PQ1cyCi0jZGVmaW5lIE9DVzJfMiAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9PQ1cyCi0jZGVmaW5lIE9DVzNfMSAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9PQ1czCi0jZGVmaW5lIE9DVzNfMiAgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9PQ1czCisjZGVmaW5lIElDVzFfMSAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDFfSUNXMQorI2RlZmluZSBJQ1cxXzIgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX0lDVzEKKyNkZWZpbmUgSUNXMl8xICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9JQ1cyCisjZGVmaW5lIElDVzJfMiAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDJfSUNXMgorI2RlZmluZSBJQ1czXzEgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX0lDVzMKKyNkZWZpbmUgSUNXM18yICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9JQ1czCisjZGVmaW5lIElDVzRfMSAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDFfSUNXNAorI2RlZmluZSBJQ1c0XzIgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX0lDVzQKKyNkZWZpbmUgT0NXMV8xICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMV9PQ1cxCisjZGVmaW5lIE9DVzFfMiAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDJfT0NXMQorI2RlZmluZSBPQ1cyXzEgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQxX09DVzIKKyNkZWZpbmUgT0NXMl8yICBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKyBJU0FfSU5UMl9PQ1cyCisjZGVmaW5lIE9DVzNfMSAgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgSVNBX0lOVDFfT0NXMworI2RlZmluZSBPQ1czXzIgIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIElTQV9JTlQyX09DVzMKIAogI2RlZmluZSBJTVJfMSAgIE9DVzFfMQogI2RlZmluZSBJTVJfMiAgIE9DVzFfMgpkaWZmIC0tZ2l0IGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9pbnRlcnJ1cHRzLmMgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ludGVycnVwdHMuYwppbmRleCA4NmI0NDE1Li5kZTQ2ZDZlIDEwMDY0NAotLS0gYS9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ludGVycnVwdHMuYworKysgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL2ludGVycnVwdHMuYwpAQCAtMTE5LDEyICsxMTksMTIgQEAKICNpZmRlZiBERUJVRwogCXB1dHMoImludGVycnVwdF9pbml0OiBzZXR0aW5nIGRlY3JlbWVudGVyX2NvdW50XG4iKTsKICNlbmRpZgotCWRlY3JlbWVudGVyX2NvdW50ID0gZ2V0X3RiY2xrKCkgLyBDRkdfSFo7CisJZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENPTkZJR19TWVNfSFo7CiAKICNpZmRlZiBERUJVRwogCXB1dHMoImludGVycnVwdF9pbml0OiBzZXR0aW5nIGFjdHVhbCBkZWNyZW10ZXJcbiIpOwogI2VuZGlmCi0Jc2V0X2RlYyAoZ2V0X3RiY2xrKCkgLyBDRkdfSFopOworCXNldF9kZWMgKGdldF90YmNsaygpIC8gQ09ORklHX1NZU19IWik7CiAKICNpZmRlZiBERUJVRwogCXB1dHMoImludGVycnVwdF9pbml0OiBjbGVhcmluZyBleHRlcm5hbCBpbnRlcnJ1cHQgdGFibGVcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9wczJrYmQuYyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvcHMya2JkLmMKaW5kZXggNzI0YTQ0ZC4uYTI5NzAwNSAxMDA2NDQKLS0tIGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9wczJrYmQuYworKysgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3BzMmtiZC5jCkBAIC0yMTQsNyArMjE0LDcgQEAKIAl9CiB9CiAKLSNpZmRlZiBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI2lmZGVmIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQogZXh0ZXJuIGludCBvdmVyd3JpdGVfY29uc29sZSAodm9pZCk7CiAjZWxzZQogaW50IG92ZXJ3cml0ZV9jb25zb2xlICh2b2lkKQpAQCAtNDkyLDIyICs0OTIsMjIgQEAKICAqLwogdW5zaWduZWQgY2hhciBrYmRfcmVhZF9zdGF0dXModm9pZCkKIHsKLQlyZXR1cm4oaW44KENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCkpOworCXJldHVybihpbjgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCkpOwogfQogCiB1bnNpZ25lZCBjaGFyIGtiZF9yZWFkX2lucHV0KHZvaWQpCiB7Ci0JcmV0dXJuKGluOChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQpKTsKKwlyZXR1cm4oaW44KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQpKTsKIH0KIAogdm9pZCBrYmRfd3JpdGVfY29tbWFuZCh1bnNpZ25lZCBjaGFyIGNtZCkKIHsKLQlvdXQ4KENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCxjbWQpOworCW91dDgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCxjbWQpOwogfQogCiB2b2lkIGtiZF93cml0ZV9vdXRwdXQodW5zaWduZWQgY2hhciBkYXRhKQogewotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBLREJfREFUQV9QT1JULCBkYXRhKTsKKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQsIGRhdGEpOwogfQogCiBpbnQga2JkX3JlYWRfZGF0YSh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9zZXJpYWwuYyBiL2JvYXJkL01BSS9BbWlnYU9uZUczU0Uvc2VyaWFsLmMKaW5kZXggYjZmNTdjNy4uODgwMzlmMyAxMDA2NDQKLS0tIGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS9zZXJpYWwuYworKysgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3NlcmlhbC5jCkBAIC02LDcgKzYsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmbmRlZiBDRkdfTlMxNjU1MAorI2lmbmRlZiBDT05GSUdfU1lTX05TMTY1NTAKIHN0YXRpYyB1aW50MzIgQ29tUG9ydDE7CiAKIHVpbnQxNiBTZXJpYWxFY2hvID0gMTsKQEAgLTE0Nyw4ICsxNDcsOCBAQAogCiAjZWxzZQogCi1jb25zdCBOUzE2NTUwX3QgQ29tMCA9IChOUzE2NTUwX3QpIENGR19OUzE2NTUwX0NPTTE7Ci1jb25zdCBOUzE2NTUwX3QgQ29tMSA9IChOUzE2NTUwX3QpIENGR19OUzE2NTUwX0NPTTI7Citjb25zdCBOUzE2NTUwX3QgQ29tMCA9IChOUzE2NTUwX3QpIENPTkZJR19TWVNfTlMxNjU1MF9DT00xOworY29uc3QgTlMxNjU1MF90IENvbTEgPSAoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMjsKIAogaW50IHNlcmlhbF9pbml0ICh2b2lkKQogewpkaWZmIC0tZ2l0IGEvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS91c2JfdWhjaS5jIGIvYm9hcmQvTUFJL0FtaWdhT25lRzNTRS91c2JfdWhjaS5jCmluZGV4IDI2Y2RjZGYuLjZkMTEzM2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL01BSS9BbWlnYU9uZUczU0UvdXNiX3VoY2kuYworKysgYi9ib2FyZC9NQUkvQW1pZ2FPbmVHM1NFL3VzYl91aGNpLmMKQEAgLTYyNyw3ICs2MjcsNyBAQAogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChidXNkZXZmdW5jLFBDSV9CQVNFX0FERFJFU1NfNCwmdXNiX2Jhc2VfYWRkcik7CiAJVVNCX1VIQ0lfUFJJTlRGKCJJTyBCYXNlIEFkZHJlc3MgPSAweCVseFxuIix1c2JfYmFzZV9hZGRyKTsKIAl1c2JfYmFzZV9hZGRyJj0weEZGRkZGRkYwOwotCXVzYl9iYXNlX2FkZHIrPUNGR19JU0FfSU9fQkFTRV9BRERSRVNTOworCXVzYl9iYXNlX2FkZHIrPUNPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUzsKIAlyaC5kZXZudW0gPSAwOwogCXVzYl9pbml0X3NrZWwoKTsKIAlyZXNldF9oYygpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9jb21tb24vZmxhc2guYyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL2ZsYXNoLmMKaW5kZXggMzYwMzM3Mi4uMjFlYWUwZSAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9jb21tb24vZmxhc2guYworKysgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiBpbnQgZmxhc2hfZXJhc2VfaW50ZWwgKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KTsKIGludCB3cml0ZV93b3JkX2ludGVsIChiYW5rX2FkZHJfdCBhZGRyLCBiYW5rX3dvcmRfdCB2YWx1ZSk7CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTY4LDE0ICs2OCwxNCBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZSwgZmxhc2hfc2l6ZTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogdGhlIGJvb3QgZmxhc2ggKi8KLQliYXNlID0gQ0ZHX0ZMQVNIX0JBU0U7CisJYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlzaXplX2IwID0KLQkJZmxhc2hfZ2V0X3NpemUgKENGR19CT09UX0ZMQVNIX1dJRFRILCAodnVfbG9uZyAqKSBiYXNlLAorCQlmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19CT09UX0ZMQVNIX1dJRFRILCAodnVfbG9uZyAqKSBiYXNlLAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKIAogCXByaW50ZiAoIlslbGRrQkAlbHhdICIsIHNpemVfYjAgLyAxMDI0LCBiYXNlKTsKQEAgLTg0LDExICs4NCwxMSBAQAogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIGF0ICUwOGx4OiBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwgYmFzZSwgc2l6ZV9iMCwgc2l6ZV9iMCA8PCAyMCk7CiAJfQogCi0JYmFzZSA9IG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChDRkdfRVhUUkFfRkxBU0hfREVWSUNFKTsKKwliYXNlID0gbWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MgKENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFKTsKIC8qCWJhc2UgPSBtZW1vcnlHZXREZXZpY2VCYXNlQWRkcmVzcyhERVZfQ1MzX0JBU0VfQUREUik7Ki8KLQlmb3IgKGkgPSAxOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMTsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJdW5zaWduZWQgbG9uZyBzaXplID0KLQkJCWZsYXNoX2dldF9zaXplIChDRkdfRVhUUkFfRkxBU0hfV0lEVEgsCisJCQlmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19FWFRSQV9GTEFTSF9XSURUSCwKIAkJCQkJKHZ1X2xvbmcgKikgYmFzZSwgJmZsYXNoX2luZm9baV0pOwogCiAJCXByaW50ZiAoIlslbGRNQkAlbHhdICIsIHNpemUgPj4gMjAsIGJhc2UpOwpAQCAtNjE3LDcgKzYxNyw3IEBACiAJCQkJCQkJLyogaGFzIHRoZSB0aW1lb3V0IGxpbWl0IGJlZW4gcmVhY2hlZD8gKi8KIAkJCQkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkKIAkJCQkJCQkgICAgPgotCQkJCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkKKwkJCQkJCQkgICAgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKQogCQkJCQkJCXsKIAkJCQkJCQkJLyogdGltZW91dCBsaW1pdCByZWFjaGVkICovCiAJCQkJCQkJCXByaW50ZiAoIlRpbWUgb3V0IGxpbWl0IHJlYWNoZWQgZXJhc2luZyBzZWN0b3IgYXQgYWRkcmVzcyAlMDhseFxuIiwgaW5mby0+c3RhcnRbc2VjdF0pOwpAQCAtNzc2LDcgKzc3Niw3IEBACiAJYWRkciA9ICh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopIChpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAkvKiBicm9rZW4gZm9yIDJ4MTY6IFRPRE8gKi8KIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTk1Niw3ICs5NTYsNyBAQAogCQkJCXsKIAkJCQkJLyogaGFzIHRoZSB0aW1lb3V0IGxpbWl0IGJlZW4gcmVhY2hlZD8gKi8KIAkJCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4KLQkJCQkJICAgIENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQkJCS8qIHRpbWVvdXQgbGltaXQgcmVhY2hlZCAqLwogCQkJCQkJcHJpbnRmICgiVGltZSBvdXQgbGltaXQgcmVhY2hlZCBwcm9ncmFtbWluZyBhZGRyZXNzICUwOGx4IHdpdGggZGF0YSAlMDhseFxuIiwgZGVzdCwgZGF0YSk7CiAJCQkJCQkvKiByZXNldCB0aGUgZmxhc2ggKi8KQEAgLTEwNjQsNyArMTA2NCw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKikgZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvY29tbW9uL2kyYy5jIGIvYm9hcmQvTWFydmVsbC9jb21tb24vaTJjLmMKaW5kZXggMzJiMmIzMC4uZDQyNjA0NCAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9jb21tb24vaTJjLmMKKysrIGIvYm9hcmQvTWFydmVsbC9jb21tb24vaTJjLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAl1bnNpZ25lZCBpbnQgYWN0dWFsTiA9IDAsIGFjdHVhbE0gPSAwOwogCXVuc2lnbmVkIGludCBjb250cm9sLCBzdGF0dXM7CiAJdW5zaWduZWQgaW50IG1pbk1hcmdpbiA9IDB4ZmZmZmZmZmY7Ci0JdW5zaWduZWQgaW50IHRjbGsgPSBDRkdfVENMSzsKKwl1bnNpZ25lZCBpbnQgdGNsayA9IENPTkZJR19TWVNfVENMSzsKIAl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IHNwZWVkOwkvKiAxMDAwMDAgbWF4LiBGYXN0IG1vZGUgbm90IHN1cHBvcnRlZCAqLwogCiAJRFAgKHB1dHMgKCJpMmNfaW5pdFxuIikpOwpAQCAtMzcyLDcgKzM3Miw3IEBACiAJICBpbnQgbGVuKQogewogCXVjaGFyIHN0YXR1cyA9IDA7Ci0JdW5zaWduZWQgaW50IGkyY0ZyZXEgPSBDRkdfSTJDX1NQRUVEOworCXVuc2lnbmVkIGludCBpMmNGcmVxID0gQ09ORklHX1NZU19JMkNfU1BFRUQ7CiAKIAlEUCAocHV0cyAoImkyY19yZWFkXG4iKSk7CiAKQEAgLTQ0Nyw3ICs0NDcsNyBAQAogCSAgIGludCBsZW4pCiB7CiAJdWNoYXIgc3RhdHVzID0gMDsKLQl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENGR19JMkNfU1BFRUQ7CisJdW5zaWduZWQgaW50IGkyY0ZyZXEgPSBDT05GSUdfU1lTX0kyQ19TUEVFRDsKIAogCURQIChwdXRzICgiaTJjX3dyaXRlXG4iKSk7CiAKQEAgLTUwMCw3ICs1MDAsNyBAQAogCXVuc2lnbmVkIGludCBpMmNfc3RhdHVzOwogI2VuZGlmCiAJdWNoYXIgc3RhdHVzID0gMDsKLQl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENGR19JMkNfU1BFRUQ7CisJdW5zaWduZWQgaW50IGkyY0ZyZXEgPSBDT05GSUdfU1lTX0kyQ19TUEVFRDsKIAogCURQIChwdXRzICgiaTJjX3Byb2JlXG4iKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvY29tbW9uL2ludGVsX2ZsYXNoLmMgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9pbnRlbF9mbGFzaC5jCmluZGV4IGQyNmY4ODMuLjQyYjNlZTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvY29tbW9uL2ludGVsX2ZsYXNoLmMKKysrIGIvYm9hcmQvTWFydmVsbC9jb21tb24vaW50ZWxfZmxhc2guYwpAQCAtMTUyLDcgKzE1Miw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlkbyB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dmFsID0gMTsKIAkJCWdvdG8gZG9uZTsKIAkJfQpAQCAtMjI3LDcgKzIyNyw3IEBACiAJCQlkbyB7CiAJCQkJbm93ID0gZ2V0X3RpbWVyIChzdGFydCk7CiAKLQkJCQlpZiAobm93IC0gZXN0YXJ0ID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAobm93IC0gZXN0YXJ0ID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXQgKHNlY3QgJWQpXG4iLCBzZWN0KTsKIAkJCQkJaGFkZXJyID0gMTsKIAkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9pbnRlbF9mbGFzaC5oIGIvYm9hcmQvTWFydmVsbC9jb21tb24vaW50ZWxfZmxhc2guaAppbmRleCA2NjZhNGNkLi5iZDg5NDFlIDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9pbnRlbF9mbGFzaC5oCisrKyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL2ludGVsX2ZsYXNoLmgKQEAgLTY4LDcgKzY4LDcgQEAKIC8qIElEIGFuZCBMb2NrIENvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ0hJUF9SRF9JRF9MT0NLCQkweDAxCQkvKiBCaXQgMCBvZiBlYWNoIGJ5dGUgKi8KICNkZWZpbmUgQ0hJUF9SRF9JRF9NQU4JCTB4ODkJCS8qIE1hbnVmYWN0dXJlciBjb2RlID0gMHg4OSAqLwotI2RlZmluZSBDSElQX1JEX0lEX0RFVgkJQ0ZHX0ZMQVNIX0lECisjZGVmaW5lIENISVBfUkRfSURfREVWCQlDT05GSUdfU1lTX0ZMQVNIX0lECiAKIC8qIGRpbWVuc2lvbnMgKi8KICNkZWZpbmUgQ0hJUF9XSURUSAkJMgkJLyogY2hpcHMgYXJlIGluIDE2IGJpdCBtb2RlICovCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9taXNjLlMgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9taXNjLlMKaW5kZXggNDFjM2E5NS4uYjNhMDg5OCAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9jb21tb24vbWlzYy5TCisrKyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL21pc2MuUwpAQCAtMTYsNyArMTYsNyBAQAogYm9hcmRfcmVsb2NhdGVfcm9tOgogCW1mbHIJcjcKIAkvKiB1cGRhdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBHVCByZWdpc3RlcnMgKi8KLQlsaXMJcjExLCBDRkdfR1RfUkVHU0BoCisJbGlzCXIxMSwgQ09ORklHX1NZU19HVF9SRUdTQGgKIAkvKiBpZiB3ZSdyZSB1c2luZyBFQ0MsIHdlIG11c3QgdXNlIHRoZSBETUEgZW5naW5lIHRvIGNvcHkgb3Vyc2VsdmVzICovCiAJYmwJc3RhcnRfaWRtYV90cmFuc2Zlcl8wCiAJYmwJd2FpdF9mb3JfaWRtYV8wCkBAIC0yOSwxMiArMjksMTIgQEAKIGJvYXJkX2luaXRfZWNjOgogCW1mbHIJcjcKIAkvKiBOT1RFOiByMTAgc3RpbGwgY29udGFpbnMgdGhlIGxvY2F0aW9uIHdlJ3ZlIGJlZW4gcmVsb2NhdGVkIHRvCi0JICogd2hpY2ggaGFwcGVucyB0byBiZSBUT1BfT0ZfUkFNIC0gQ0ZHX01PTklUT1JfTEVOICovCisJICogd2hpY2ggaGFwcGVucyB0byBiZSBUT1BfT0ZfUkFNIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTiAqLwogCiAJLyogbm93IHRoYXQgd2UncmUgcnVubmluZyBmcm9tIHJhbSwgaW5pdCB0aGUgcmVzdCBvZiBtYWluIG1lbW9yeQogCSAqIGZvciBFQ0MgdXNlICovCi0JbGlzCXI4LCBDRkdfTU9OSVRPUl9MRU5AaAotCW9yaQlyOCwgcjgsIENGR19NT05JVE9SX0xFTkBsCisJbGlzCXI4LCBDT05GSUdfU1lTX01PTklUT1JfTEVOQGgKKwlvcmkJcjgsIHI4LCBDT05GSUdfU1lTX01PTklUT1JfTEVOQGwKIAogCWRpdncJcjMsIHIxMCwgcjgKIApAQCAtMTIwLDE1ICsxMjAsMTUgQEAKIAlibHIKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0JPQVJEX0FTTV9JTklUCisjaWZkZWYgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogCS8qIE5PVEU6IHRyYXNoZXMgcjMtcjcgKi8KIAkuZ2xvYmwgYm9hcmRfYXNtX2luaXQKIGJvYXJkX2FzbV9pbml0OgogCS8qIGp1c3QgbW92ZSB0aGUgR1QgcmVnaXN0ZXJzIHRvIHdoZXJlIHRoZXkgYmVsb25nICovCi0JbGlzCXIzLCBDRkdfREZMX0dUX1JFR1NAaAotCW9yaQlyMywgcjMsIENGR19ERkxfR1RfUkVHU0BsCi0JbGlzCXI0LCBDRkdfR1RfUkVHU0BoCi0Jb3JpCXI0LCByNCwgQ0ZHX0dUX1JFR1NAbAorCWxpcwlyMywgQ09ORklHX1NZU19ERkxfR1RfUkVHU0BoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19ERkxfR1RfUkVHU0BsCisJbGlzCXI0LCBDT05GSUdfU1lTX0dUX1JFR1NAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfR1RfUkVHU0BsCiAJbGkJcjUsIElOVEVSTkFMX1NQQUNFX0RFQ09ERQogCiAJLyogdGVzdCB0byBzZWUgaWYgd2UndmUgYWxyZWFkeSBtb3ZlZCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9jb21tb24vbnMxNjU1MC5jIGIvYm9hcmQvTWFydmVsbC9jb21tb24vbnMxNjU1MC5jCmluZGV4IDQ3NTQ0NWIuLjdmYmYyOGEgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvY29tbW9uL25zMTY1NTAuYworKysgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9uczE2NTUwLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ09NMSBOUzE2NTUwIHN1cHBvcnQKICAqIG9yaWdpbmFsbHkgZnJvbSBsaW51eCBzb3VyY2UgKGFyY2gvcHBjL2Jvb3QvbnMxNjU1MC5jKQotICogbW9kaWZpZWQgdG8gdXNlIENGR19JU0FfTUVNIGFuZCBuZXcgZGVmaW5lcworICogbW9kaWZpZWQgdG8gdXNlIENPTkZJR19TWVNfSVNBX01FTSBhbmQgbmV3IGRlZmluZXMKICAqCiAgKiBmdXJ0aGVyIG1vZGlmaWVkIGJ5IEpvc2ggSHViZXIgPGh1YmVyQG1jbHguY29tPiB0byBzdXBwb3J0CiAgKiB0aGUgRFVBUlQgb24gdGhlIEdhbGlsZW8gRXZhbCBib2FyZC4gKGRiNjQzNjApCkBAIC0xMyw4ICsxMyw4IEBACiAjaWZkZWYgWlVNQV9OVEwKIC8qIG5vIDE2NTUwIGRldmljZSAqLwogI2Vsc2UKLWNvbnN0IE5TMTY1NTBfdCBDT01fUE9SVFNbXSA9IHsgKE5TMTY1NTBfdCkgKENGR19EVUFSVF9JTyArIDApLAotCShOUzE2NTUwX3QpIChDRkdfRFVBUlRfSU8gKyAweDIwKQorY29uc3QgTlMxNjU1MF90IENPTV9QT1JUU1tdID0geyAoTlMxNjU1MF90KSAoQ09ORklHX1NZU19EVUFSVF9JTyArIDApLAorCShOUzE2NTUwX3QpIChDT05GSUdfU1lTX0RVQVJUX0lPICsgMHgyMCkKIH07CiAKIHZvbGF0aWxlIHN0cnVjdCBOUzE2NTUwICpOUzE2NTUwX2luaXQgKGludCBjaGFuLCBpbnQgYmF1ZF9kaXZpc29yKQpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9jb21tb24vbnMxNjU1MC5oIGIvYm9hcmQvTWFydmVsbC9jb21tb24vbnMxNjU1MC5oCmluZGV4IGYyZWQyYWIuLmI5NjkxYWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvY29tbW9uL25zMTY1NTAuaAorKysgYi9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9uczE2NTUwLmgKQEAgLTIsNyArMiw3IEBACiAgKiBOUzE2NTUwIFNlcmlhbCBQb3J0CiAgKiBvcmlnaW5hbGx5IGZyb20gbGludXggc291cmNlIChhcmNoL3BwYy9ib290L25zMTY1NTAuaCkKICAqIG1vZGlmaWVkIHNsaWdodGx5IHRvCi0gKiBoYXZlIGFkZHJlc3NlcyBhcyBvZmZzZXRzIGZyb20gQ0ZHX0lTQV9CQVNFCisgKiBoYXZlIGFkZHJlc3NlcyBhcyBvZmZzZXRzIGZyb20gQ09ORklHX1NZU19JU0FfQkFTRQogICogYWRkZWQgYSBmZXcgbW9yZSBkZWZpbml0aW9ucwogICogYWRkZWQgcHJvdG90eXBlcyBmb3IgbnMxNjU1MC5jCiAgKiByZWR1Y2VkIG5vIG9mIGNvbSBwb3J0cyB0byAyCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2NvbW1vbi9zZXJpYWwuYyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL3NlcmlhbC5jCmluZGV4IDAxZWZiZWEuLjNlN2Y0MDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvY29tbW9uL3NlcmlhbC5jCisrKyBiL2JvYXJkL01hcnZlbGwvY29tbW9uL3NlcmlhbC5jCkBAIC01MiwxNyArNTIsMTcgQEAKIAogaW50IHNlcmlhbF9pbml0ICh2b2lkKQogewotI2lmIChkZWZpbmVkIENGR19JTklUX0NIQU4xKSB8fCAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMikKKyNpZiAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjEpIHx8IChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMikKIAlpbnQgY2xvY2tfZGl2aXNvciA9IDIzMDQwMCAvIGdkLT5iYXVkcmF0ZTsKICNlbmRpZgogCiAJbXBzY19pbml0IChnZC0+YmF1ZHJhdGUpOwogCiAJLyogaW5pdCB0aGUgRFVBUlQgY2hhbnMgc28gdGhhdCBLR0RCIGluIHRoZSBrZXJuZWwgY2FuIHVzZSB0aGVtICovCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjEKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjEKIAlOUzE2NTUwX3JlaW5pdCAoQ09NX1BPUlRTWzBdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgotI2lmZGVmIENGR19JTklUX0NIQU4yCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4yCiAJTlMxNjU1MF9yZWluaXQgKENPTV9QT1JUU1sxXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKIAlyZXR1cm4gKDApOwpAQCAtOTcsMTAgKzk3LDEwIEBACiB7CiAJaW50IGNsb2NrX2Rpdmlzb3IgPSAyMzA0MDAgLyBnZC0+YmF1ZHJhdGU7CiAKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMQogCSh2b2lkKSBOUzE2NTUwX2luaXQgKDAsIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjIKIAkodm9pZCkgTlMxNjU1MF9pbml0ICgxLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgogCXJldHVybiAoMCk7CkBAIC0xMDksMjkgKzEwOSwyOSBAQAogdm9pZCBzZXJpYWxfcHV0YyAoY29uc3QgY2hhciBjKQogewogCWlmIChjID09ICdcbicpCi0JCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSwgJ1xyJyk7CisJCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sICdccicpOwogCi0JTlMxNjU1MF9wdXRjIChDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dLCBjKTsKKwlOUzE2NTUwX3B1dGMgKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dLCBjKTsKIH0KIAogaW50IHNlcmlhbF9nZXRjICh2b2lkKQogewotCXJldHVybiBOUzE2NTUwX2dldGMgKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0pOworCXJldHVybiBOUzE2NTUwX2dldGMgKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dKTsKIH0KIAogaW50IHNlcmlhbF90c3RjICh2b2lkKQogewotCXJldHVybiBOUzE2NTUwX3RzdGMgKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0pOworCXJldHVybiBOUzE2NTUwX3RzdGMgKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dKTsKIH0KIAogdm9pZCBzZXJpYWxfc2V0YnJnICh2b2lkKQogewogCWludCBjbG9ja19kaXZpc29yID0gMjMwNDAwIC8gZ2QtPmJhdWRyYXRlOwogCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjEKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjEKIAlOUzE2NTUwX3JlaW5pdCAoQ09NX1BPUlRTWzBdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgotI2lmZGVmIENGR19JTklUX0NIQU4yCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4yCiAJTlMxNjU1MF9yZWluaXQgKENPTV9QT1JUU1sxXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9kYjY0MzYwLmMgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvZGI2NDM2MC5jCmluZGV4IGMwM2QwM2QuLjM1YjY5NWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9kYjY0MzYwLmMKKysrIGIvYm9hcmQvTWFydmVsbC9kYjY0MzYwL2RiNjQzNjAuYwpAQCAtNTUsNyArNTUsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKiB0aGlzIGlzIHRoZSBjdXJyZW50IEdUIHJlZ2lzdGVyIHNwYWNlIGxvY2F0aW9uICovCi0vKiBpdCBzdGFydHMgYXQgQ0ZHX0RGTF9HVF9SRUdTIGJ1dCBtb3ZlcyBsYXRlciB0byBDRkdfR1RfUkVHUyAqLworLyogaXQgc3RhcnRzIGF0IENPTkZJR19TWVNfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENPTkZJR19TWVNfR1RfUkVHUyAqLwogCiAvKiBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW50IGNoYW5nZSBpdCB3aGlsZSB3ZSBhcmUgaW4gZmxhc2gsIHNvIHdlIGluaXRpYWxpemUgaXQKICAqIHRvIHRoZSAiZmluYWwiIHZhbHVlLiBUaGlzIG1lYW5zIHRoYXQgYW55IGRlYnVnX2xlZCBjYWxscyBiZWZvcmUKQEAgLTY0LDcgKzY0LDcgQEAKICAqLwogCiB2b2lkIGJvYXJkX3ByZWJvb3RtX2luaXQgKHZvaWQpOwotdW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDRkdfR1RfUkVHUzsKK3Vuc2lnbmVkIGludCBJTlRFUk5BTF9SRUdfQkFTRV9BRERSID0gQ09ORklHX1NZU19HVF9SRUdTOwogaW50IGRpc3BsYXlfbWVtX21hcCAodm9pZCk7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTEyNyw3ICsxMjcsNyBAQAogCiAJCUdUX1JFR19XUklURSAoUENJXzBfQ09ORklHX0FERFIsIEJJVDMxIHwgdmFsKTsKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMF9DT05GSUdfREFUQV9WSVJUVUFMX1JFRywKLQkJCSAgICAgIChzdGF0ICYgMHhmZmZmMDAwMCkgfCBDRkdfUENJX0lEU0VMKTsKKwkJCSAgICAgIChzdGF0ICYgMHhmZmZmMDAwMCkgfCBDT05GSUdfU1lTX1BDSV9JRFNFTCk7CiAKIAl9CiAJaWYgKChHVFJFR1JFQUQgKFBDSV8xX01PREUpICYgKEJJVDQgfCBCSVQ1KSkgIT0gMCkgewkvKmlmICBQQ0ktWCAqLwpAQCAtMTM2LDcgKzEzNiw3IEBACiAKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMV9DT05GSUdfQUREUiwgQklUMzEgfCB2YWwpOwogCQlHVF9SRUdfV1JJVEUgKFBDSV8xX0NPTkZJR19EQVRBX1ZJUlRVQUxfUkVHLAotCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENGR19QQ0lfSURTRUwpOworCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENPTkZJR19TWVNfUENJX0lEU0VMKTsKIAl9CiAKIAkvKiBFbmFibGUgbWFzdGVyICovCkBAIC0xNTQsMjEgKzE1NCwyMSBAQAogCS8qIHJvbmVuLSBhZGQgd3JpdGUgdG8gcGNpIHJlbWFwIHJlZ2lzdGVycyBmb3IgNjQ0NjAuCiAJICAgaW4gNjQzNjAgd2hlbiB3cml0aW5nIHRvIHBjaSBiYXNlIGdvIGFuZCBvdmVyaWRlIHJlbWFwIGF1dG9tYXRpY2FseSwKIAkgICBpbiA2NDQ2MCBpdCBkb2Vzbid0ICovCi0JR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19CQVNFX0FERFIsIENGR19QQ0kwX0lPX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBJX09fQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTBfSU9fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19TSVpFLCAoQ0ZHX1BDSTBfSU9fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBJX09fQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfSU9fU0laRSwgKENPTkZJR19TWVNfUENJMF9JT19TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX0JBU0VfQUREUiwgQ0ZHX1BDSTBfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENGR19QQ0kwX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfU0laRSwgKENGR19QQ0kwX01FTV9TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfME1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfU0laRSwgKENPTkZJR19TWVNfUENJMF9NRU1fU0laRSAtIDEpID4+IDE2KTsKIAotCUdUX1JFR19XUklURSAoUENJXzFfSU9fQkFTRV9BRERSLCBDRkdfUENJMV9JT19CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xSV9PX0FERFJFU1NfUkVNQVAsIENGR19QQ0kxX0lPX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFfSU9fU0laRSwgKENGR19QQ0kxX0lPX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMV9JT19CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xSV9PX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMV9JT19CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX1NJWkUsIChDT05GSUdfU1lTX1BDSTFfSU9fU0laRSAtIDEpID4+IDE2KTsKIAotCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9CQVNFX0FERFIsIENGR19QQ0kxX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDRkdfUENJMV9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX1NJWkUsIChDRkdfUENJMV9NRU1fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX1NJWkUsIChDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUgLSAxKSA+PiAxNik7CiAKIAkvKiBQQ0kgaW50ZXJmYWNlIHNldHRpbmdzICovCiAJLyogVGltZW91dCBzZXQgdG8gcmV0cnkgZm9yZXZlciAqLwpAQCAtMTg0LDcgKzE4NCw3IEBACiAJZm9yIChzdGF0ID0gMDsgc3RhdCA8PSBQQ0lfSE9TVDE7IHN0YXQrKykKIAkJcGNpV3JpdGVDb25maWdSZWcgKHN0YXQsCiAJCQkJICAgUENJX0lOVEVSTkFMX1JFR0lTVEVSU19NRU1PUllfTUFQUEVEX0JBU0VfQUREUkVTUywKLQkJCQkgICBTRUxGLCBDRkdfR1RfUkVHUyk7CisJCQkJICAgU0VMRiwgQ09ORklHX1NZU19HVF9SRUdTKTsKICNlbmRpZgogCiB9CkBAIC0yMDAsNyArMjAwLDcgQEAKIAl0bXAgPSBHVFJFR1JFQUQgKENQVV9DT05GSUdVUkFUSU9OKTsKIAogCS8qIHNldCB0aGUgU0lOR0xFX0NQVSBiaXQgIHNlZSBNVjY0MzYwIFAuMzk5ICovCi0jaWZuZGVmIENGR19HVF9EVUFMX0NQVQkJLyogU0lOR0xFX0NQVSBzZWVtcyB0byBjYXVzZSBKVEFHIHByb2JsZW1zICovCisjaWZuZGVmIENPTkZJR19TWVNfR1RfRFVBTF9DUFUJCS8qIFNJTkdMRV9DUFUgc2VlbXMgdG8gY2F1c2UgSlRBRyBwcm9ibGVtcyAqLwogCXRtcCB8PSBDUFVfQ09ORl9TSU5HTEVfQ1BVOwogI2VuZGlmCiAKQEAgLTI1MSw3ICsyNTEsNyBAQAogCSAqIGl0IGxhc3QgdGltZS4gKGh1YmVyKQogCSAqLwogCi0JbXlfcmVtYXBfZ3RfcmVncyAoQ0ZHX0RGTF9HVF9SRUdTLCBDRkdfR1RfUkVHUyk7CisJbXlfcmVtYXBfZ3RfcmVncyAoQ09ORklHX1NZU19ERkxfR1RfUkVHUywgQ09ORklHX1NZU19HVF9SRUdTKTsKIAogCS8qIE5vIFBDSSBpbiBmaXJzdCByZWxlYXNlIG9mIFBvcnQgVG9fZG86IGVuYWJsZSBpdC4gKi8KICNpZmRlZiBDT05GSUdfUENJCkBAIC0yOTcsNTYgKzI5Nyw1NiBAQAogCSAqIG9uLWJvYXJkIHNyYW0gb24gdGhlIGV2YWwgYm9hcmQsIGFuZCB1cGRhdGVzIHRoZSBjb3JyZWN0CiAJICogcmVnaXN0ZXJzIHRvIGJvb3QgZnJvbSB0aGUgc3JhbS4gKGRldmljZTApCiAJICovCi0JaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChERVZJQ0UwKSA9PSBDRkdfREZMX0JPT1RDU19CQVNFKQorCWlmIChtZW1vcnlHZXREZXZpY2VCYXNlQWRkcmVzcyAoREVWSUNFMCkgPT0gQ09ORklHX1NZU19ERkxfQk9PVENTX0JBU0UpCiAJCXNyYW1fYm9vdCA9IDE7CiAJaWYgKCFzcmFtX2Jvb3QpCi0JCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDRkdfREVWMF9TUEFDRSwgQ0ZHX0RFVjBfU0laRSk7CisJCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDT05GSUdfU1lTX0RFVjBfU1BBQ0UsIENPTkZJR19TWVNfREVWMF9TSVpFKTsKIAotCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UxLCBDRkdfREVWMV9TUEFDRSwgQ0ZHX0RFVjFfU0laRSk7Ci0JbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTIsIENGR19ERVYyX1NQQUNFLCBDRkdfREVWMl9TSVpFKTsKLQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMywgQ0ZHX0RFVjNfU1BBQ0UsIENGR19ERVYzX1NJWkUpOworCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UxLCBDT05GSUdfU1lTX0RFVjFfU1BBQ0UsIENPTkZJR19TWVNfREVWMV9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMiwgQ09ORklHX1NZU19ERVYyX1NQQUNFLCBDT05GSUdfU1lTX0RFVjJfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTMsIENPTkZJR19TWVNfREVWM19TUEFDRSwgQ09ORklHX1NZU19ERVYzX1NJWkUpOwogCiAKIAkvKiBjb25maWd1cmUgZGV2aWNlIHRpbWluZyAqLwotI2lmZGVmIENGR19ERVYwX1BBUgkJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgU1JBTSBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworI2lmZGVmIENPTkZJR19TWVNfREVWMF9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIFNSQU0gZGV2aWNlIG1vZHVsZSBhY2Nlc3MgKi8KIAlpZiAoIXNyYW1fYm9vdCkKLQkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzBQQVJBTUVURVJTLCBDRkdfREVWMF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMFBBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWMF9QQVIpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfREVWMV9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIFJUQyBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwotCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksxUEFSQU1FVEVSUywgQ0ZHX0RFVjFfUEFSKTsKKyNpZmRlZiBDT05GSUdfU1lTX0RFVjFfUEFSCQkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBSVEMgZGV2aWNlIG1vZHVsZSBhY2Nlc3MgKi8KKwlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMVBBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWMV9QQVIpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RFVjJfUEFSCQkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBEVUFSVCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwotCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksyUEFSQU1FVEVSUywgQ0ZHX0RFVjJfUEFSKTsKKyNpZmRlZiBDT05GSUdfU1lTX0RFVjJfUEFSCQkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBEVUFSVCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksyUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYyX1BBUik7CiAjZW5kaWYKIAotI2lmZGVmIENGR18zMkJJVF9CT09UX1BBUgkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBGbGFzaCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworI2lmZGVmIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgRmxhc2ggZGV2aWNlIG1vZHVsZSBhY2Nlc3MgKi8KIAkvKiBkZXRlY3QgaWYgd2UgYXJlIGJvb3RpbmcgZnJvbSB0aGUgMzIgYml0IGZsYXNoICovCiAJaWYgKEdUUkVHUkVBRCAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTKSAmICgweDMgPDwgMjApKSB7CiAJCS8qIDMyIGJpdCBib290IGZsYXNoICovCi0JCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7CiAJCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLAotCQkJICAgICAgQ0ZHXzMyQklUX0JPT1RfUEFSKTsKKwkJCSAgICAgIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIpOwogCX0gZWxzZSB7CiAJCS8qIDggYml0IGJvb3QgZmxhc2ggKi8KLQkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzNQQVJBTUVURVJTLCBDRkdfMzJCSVRfQk9PVF9QQVIpOwotCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ09ORklHX1NZU184QklUX0JPT1RfUEFSKTsKIAl9CiAjZWxzZQogCS8qIDggYml0IGJvb3QgZmxhc2ggb25seSAqLwotLyoJR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOyovCisvKglHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIpOyovCiAjZW5kaWYKIAogCiAJZ3RfY3B1X2NvbmZpZyAoKTsKIAogCS8qIE1QUCBzZXR1cCAqLwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wwLCBDRkdfTVBQX0NPTlRST0xfMCk7Ci0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDEsIENGR19NUFBfQ09OVFJPTF8xKTsKLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMiwgQ0ZHX01QUF9DT05UUk9MXzIpOwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wzLCBDRkdfTVBQX0NPTlRST0xfMyk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDAsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMCk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDEsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMSk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDIsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMik7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDMsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMyk7CiAKLQlHVF9SRUdfV1JJVEUgKEdQUF9MRVZFTF9DT05UUk9MLCBDRkdfR1BQX0xFVkVMX0NPTlRST0wpOworCUdUX1JFR19XUklURSAoR1BQX0xFVkVMX0NPTlRST0wsIENPTkZJR19TWVNfR1BQX0xFVkVMX0NPTlRST0wpOwogCURFQlVHX0xFRDBfT04gKCk7CiAJREVCVUdfTEVEMV9PTiAoKTsKIAlERUJVR19MRUQyX09OICgpOwpAQCAtMzU5LDcgKzM1OSw3IEBACiBpbnQgbWlzY19pbml0X3IgKCkKIHsKIAlpY2FjaGVfZW5hYmxlICgpOwotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAlsMmNhY2hlX2VuYWJsZSAoKTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19NUFNDCkBAIC0zODAsOSArMzgwLDkgQEAKIAkvKiBjaGVjayB0byBzZWUgaWYgd2UgYm9vdGVkIGZyb20gdGhlIHNyYW0uICBJZiBzbywgbW92ZSB0aGluZ3MKIAkgKiBiYWNrIHRvIHRoZSB3YXkgdGhleSBzaG91bGQgYmUuICh3ZSdyZSBydW5uaW5nIGZyb20gbWFpbgogCSAqIG1lbW9yeSBhdCB0aGlzIHBvaW50IG5vdyAqLwotCWlmIChtZW1vcnlHZXREZXZpY2VCYXNlQWRkcmVzcyAoREVWSUNFMCkgPT0gQ0ZHX0RGTF9CT09UQ1NfQkFTRSkgewotCQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMCwgQ0ZHX0RFVjBfU1BBQ0UsIENGR19ERVYwX1NJWkUpOwotCQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoQk9PVF9ERVZJQ0UsIENGR19ERkxfQk9PVENTX0JBU0UsIF84TSk7CisJaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChERVZJQ0UwKSA9PSBDT05GSUdfU1lTX0RGTF9CT09UQ1NfQkFTRSkgeworCQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMCwgQ09ORklHX1NZU19ERVYwX1NQQUNFLCBDT05GSUdfU1lTX0RFVjBfU0laRSk7CisJCW1lbW9yeU1hcERldmljZVNwYWNlIChCT09UX0RFVklDRSwgQ09ORklHX1NZU19ERkxfQk9PVENTX0JBU0UsIF84TSk7CiAJfQogCWRpc3BsYXlfbWVtX21hcCAoKTsKIAkvKiBub3csIGp1bXAgdG8gdGhlIG1haW4gcHBjYm9vdCBib2FyZCBpbml0IGNvZGUgKi8KQEAgLTQwMiw3ICs0MDIsNyBAQAogewogCWludCBsX3R5cGUgPSAwOwogCi0JcHJpbnRmICgiQk9BUkQ6ICVzXG4iLCBDRkdfQk9BUkRfTkFNRSk7CisJcHJpbnRmICgiQk9BUkQ6ICVzXG4iLCBDT05GSUdfU1lTX0JPQVJEX05BTUUpOwogCXJldHVybiAobF90eXBlKTsKIH0KIApAQCAtNDE1LDM0ICs0MTUsMzQgQEAKIAlpZiAobW9kZSA9PSAxKSB7CiAJCXN3aXRjaCAobGVkKSB7CiAJCWNhc2UgMDoKLQkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDRkdfREVWMV9TUEFDRSB8CisJCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ09ORklHX1NZU19ERVYxX1NQQUNFIHwKIAkJCQkJMHgwODAwMCk7CiAJCQlicmVhazsKIAogCQljYXNlIDE6Ci0JCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ0ZHX0RFVjFfU1BBQ0UgfAorCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENPTkZJR19TWVNfREVWMV9TUEFDRSB8CiAJCQkJCTB4MGMwMDApOwogCQkJYnJlYWs7CiAKIAkJY2FzZSAyOgotCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENGR19ERVYxX1NQQUNFIHwKKwkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfAogCQkJCQkweDEwMDAwKTsKIAkJCWJyZWFrOwogCQl9CiAJfSBlbHNlIGlmIChtb2RlID09IDApIHsKIAkJc3dpdGNoIChsZWQpIHsKIAkJY2FzZSAwOgotCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENGR19ERVYxX1NQQUNFIHwKKwkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfAogCQkJCQkweDE0MDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMToKLQkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDRkdfREVWMV9TUEFDRSB8CisJCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ09ORklHX1NZU19ERVYxX1NQQUNFIHwKIAkJCQkJMHgxODAwMCk7CiAJCQlicmVhazsKIAogCQljYXNlIDI6Ci0JCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ0ZHX0RFVjFfU1BBQ0UgfAorCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENPTkZJR19TWVNfREVWMV9TUEFDRSB8CiAJCQkJCTB4MWMwMDApOwogCQkJYnJlYWs7CiAJCX0KQEAgLTUxMyw3ICs1MTMsNyBAQAogCiAvKiBEUkFNIGNoZWNrIHJvdXRpbmVzIGNvcGllZCBmcm9tIGd3ODI2MCAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICBtb3ZlNjQoKSAtICBtb3ZlcyBhIGRvdWJsZSB3b3JkICg2NC1iaXQpCQkgICAgICovCkBAIC01NDQsNyArNTQ0LDcgQEAKIH0KIAogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9EQVRBKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEpCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBwYXR0ZXJuW10gPSB7CiAJMHhhYWFhYWFhYWFhYWFhYWFhVUxMLApAQCAtNjA3LDcgKzYwNyw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IG1lbV90ZXN0X2RhdGEgKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nICpwbWVtID0gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKIAl1bnNpZ25lZCBsb25nIGxvbmcgdGVtcDY0ID0gMDsKIAlpbnQgbnVtX3BhdHRlcm5zID0gc2l6ZW9mIChwYXR0ZXJuKSAvIHNpemVvZiAocGF0dGVyblswXSk7CiAJaW50IGk7CkBAIC02MzQsOSArNjM0LDkgQEAKIAogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfREFUQSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgKi8KIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1RfQUREUkVTUykKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICBtZW1fdGVzdF9hZGRyZXNzKCkgLQl0ZXN0IGFkZHJlc3MgbGluZXMJCSAgICAgKi8KIC8qCQkJCQkJCQkgICAgICovCkBAIC02NjEsOCArNjYxLDggQEAKIGludCBtZW1fdGVzdF9hZGRyZXNzICh2b2lkKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIGludCAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JY29uc3QgdW5zaWduZWQgaW50IHNpemUgPSAoQ0ZHX01FTVRFU1RfRU5EIC0gQ0ZHX01FTVRFU1RfU1RBUlQpIC8gNDsKKwkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJY29uc3QgdW5zaWduZWQgaW50IHNpemUgPSAoQ09ORklHX1NZU19NRU1URVNUX0VORCAtIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCkgLyA0OwogCXVuc2lnbmVkIGludCBpOwogCiAJLyogd3JpdGUgYWRkcmVzcyB0byBlYWNoIGxvY2F0aW9uICovCkBAIC02NzksOSArNjc5LDkgQEAKIAl9CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9BRERSRVNTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUyAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9XQUxLKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEspCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogICBtZW1fbWFyY2goKSAtICBtZW1vcnkgbWFyY2gJCQkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTczOSw3ICs3MzksNyBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX1dBTEsgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV90ZXN0X3dhbGsoKSAtICBhIHNpbXBsZSB3YWxraW5nIG9uZXMgdGVzdAkgICAgICovCkBAIC03NzEsOCArNzcxLDggQEAKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgbWFzazsKIAl2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPQotCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICopIENGR19NRU1URVNUX1NUQVJUOwotCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDRkdfTUVNVEVTVF9FTkQgLSBDRkdfTUVNVEVTVF9TVEFSVCkgLyA4OworCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwljb25zdCB1bnNpZ25lZCBsb25nIHNpemUgPSAoQ09ORklHX1NZU19NRU1URVNUX0VORCAtIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCkgLyA4OwogCiAJdW5zaWduZWQgaW50IGk7CiAKQEAgLTg0OCw5ICs4NDgsOSBAQAogLyogICAgcnVud2FsayA9IDA7ICovCiAKIAlpZiAoKHJ1bmRhdGEgPT0gMSkgfHwgKHJ1bmFkZHJlc3MgPT0gMSkgfHwgKHJ1bndhbGsgPT0gMSkpIHsKLQkJcHJpbnRmICgiVGVzdGluZyBSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4IC4uLiAgKGRvbid0IHBhbmljLi4uIHRoYXQgd2lsbCB0YWtlIGEgbW9tZW50ICEhISEpXG4iLCBDRkdfTUVNVEVTVF9TVEFSVCwgQ0ZHX01FTVRFU1RfRU5EKTsKKwkJcHJpbnRmICgiVGVzdGluZyBSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4IC4uLiAgKGRvbid0IHBhbmljLi4uIHRoYXQgd2lsbCB0YWtlIGEgbW9tZW50ICEhISEpXG4iLCBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQsIENPTkZJR19TWVNfTUVNVEVTVF9FTkQpOwogCX0KLSNpZmRlZiBDRkdfRFJBTV9URVNUX0RBVEEKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBCiAJaWYgKHJ1bmRhdGEgPT0gMSkgewogCQlwcmludGYgKCJUZXN0IERBVEEgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X2RhdGEgKCkgPT0gMSkgewpAQCAtODYwLDcgKzg2MCw3IEBACiAJCQlwcmludGYgKCJvayBcbiIpOwogCX0KICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfQUREUkVTUworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MKIAlpZiAocnVuYWRkcmVzcyA9PSAxKSB7CiAJCXByaW50ZiAoIlRlc3QgQUREUkVTUyAuLi4gICIpOwogCQlpZiAobWVtX3Rlc3RfYWRkcmVzcyAoKSA9PSAxKSB7CkBAIC04NzAsNyArODcwLDcgQEAKIAkJCXByaW50ZiAoIm9rIFxuIik7CiAJfQogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9XQUxLCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSwogCWlmIChydW53YWxrID09IDEpIHsKIAkJcHJpbnRmICgiVGVzdCBXQUxLSU5HIE9ORXMgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X3dhbGsgKCkgPT0gMSkgewpAQCAtODg2LDcgKzg4Niw3IEBACiAJcmV0dXJuIDA7CiAKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogLyogcm9uZW4gLSB0aGUgYmVsb3cgZnVuY3Rpb25zIGFyZSB1c2VkIGJ5IHRoZSBib290bSBmdW5jdGlvbiAgICAgICAgICAgKi8KIC8qICAtIHdlIG1hcCB0aGUgYmFzZSByZWdpc3RlciB0byBmYmUwMDAwMCAoc2FtZSBtYXBwaW5nIGFzIGluIHRoZSBMU1ApICovCkBAIC05MjUsNyArOTI1LDcgQEAKIC8qIE1WX1JFR19XUklURSAoTVY2NDM2MF9FVEhfUkVDRUlWRV9RVUVVRV9DT01NQU5EX1JFRygyKSwgMHgwMDAwZmYwMCk7ICovCiAKIC8qIFJlbG9jYXRlIE1WNjQzNjAgaW50ZXJuYWwgcmVncyAqLwotCW15X3JlbWFwX2d0X3JlZ3NfYm9vdG0gKENGR19HVF9SRUdTLCBCUklER0VfUkVHX0JBU0VfQk9PVE0pOworCW15X3JlbWFwX2d0X3JlZ3NfYm9vdG0gKENPTkZJR19TWVNfR1RfUkVHUywgQlJJREdFX1JFR19CQVNFX0JPT1RNKTsKIAogCWljYWNoZV9kaXNhYmxlICgpOwogCWRjYWNoZV9kaXNhYmxlICgpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9kYjY0MzYwL21wc2MuYyBiL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9tcHNjLmMKaW5kZXggOTIzZDk1NS4uN2FkNmFlOCAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9kYjY0MzYwL21wc2MuYworKysgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvbXBzYy5jCkBAIC00MjYsNyArNDI2LDcgQEAKIAkJCSAgKE1WNjQzNjBfQ1VOSVRfQkFTRV9BRERSX1dJTl8wX0JJVCAqIDIpKSk7CiAKIC8qIFNldHVwIE1QU0MgaW50ZXJuYWwgYWRkcmVzcyBzcGFjZSBiYXNlIGFkZHJlc3MJKi8KLQlHVF9SRUdfV1JJVEUgKENVTklUX0lOVEVSTkFMX1NQQUNFX0JBU0VfQUREUl9SRUcsIENGR19HVF9SRUdTKTsKKwlHVF9SRUdfV1JJVEUgKENVTklUX0lOVEVSTkFMX1NQQUNFX0JBU0VfQUREUl9SRUcsIENPTkZJR19TWVNfR1RfUkVHUyk7CiAKIC8qIG5vIGhpZ2ggYWRkcmVzcyByZW1hcCovCiAJR1RfUkVHX1dSSVRFIChDVU5JVF9ISUdIX0FERFJfUkVNQVBfUkVHMCwgMHgwMCk7CkBAIC01MTYsOSArNTE2LDkgQEAKIAogI2lmZGVmIFpVTUFfTlRMCiAJLyogZnJvbSB0Y2xrICovCi0JY2xvY2sgPSAoQ0ZHX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOworCWNsb2NrID0gKENPTkZJR19TWVNfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CiAjZWxzZQotCWNsb2NrID0gKENGR19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKKwljbG9jayA9IChDT05GSUdfU1lTX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOwogI2VuZGlmCiAKIAlnYWxicmdfc2V0X0NEViAoY2hhbm5lbCwgY2xvY2spOwkvKiBzZXQgdGltZXIgUmVnLiBmb3IgQlJHICovCmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvcGNpLmMgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvcGNpLmMKaW5kZXggNTYzNzI4NC4uYTdlM2M5NSAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9kYjY0MzYwL3BjaS5jCisrKyBiL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9wY2kuYwpAQCAtODU5LDE0ICs4NTksMTQgQEAKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMF9ob3NlLnJlZ2lvbnMgKyAwLAotCQkJQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMF8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kwX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCQlDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJL08gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMF9ob3NlLnJlZ2lvbnMgKyAxLAotCQkJQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJLAotCQkJQ0ZHX1BDSTBfSU9fU1BBQ0UsIENGR19QQ0kwX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkJQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFX1BDSSwKKwkJCUNPTkZJR19TWVNfUENJMF9JT19TUEFDRSwgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOwogCiAJcGNpX3NldF9vcHMgKCZwY2kwX2hvc2UsCiAJCSAgICAgcGNpX2hvc2VfcmVhZF9jb25maWdfYnl0ZV92aWFfZHdvcmQsCkBAIC05MDEsMTQgKzkwMSwxNCBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kxX2hvc2UucmVnaW9ucyArIDAsCi0JCQlDRkdfUENJMV8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kxXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTFfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJCUNPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIEkvTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kxX2hvc2UucmVnaW9ucyArIDEsCi0JCQlDRkdfUENJMV9JT19TUEFDRV9QQ0ksCi0JCQlDRkdfUENJMV9JT19TUEFDRSwgQ0ZHX1BDSTFfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCQlDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJLAorCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFLCBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAlwY2lfc2V0X29wcyAoJnBjaTFfaG9zZSwKIAkJICAgICBwY2lfaG9zZV9yZWFkX2NvbmZpZ19ieXRlX3ZpYV9kd29yZCwKZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9zZHJhbV9pbml0LmMgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQzNjAvc2RyYW1faW5pdC5jCmluZGV4IGVjYWRhZjIuLmQwODE3ZDcgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvZGI2NDM2MC9zZHJhbV9pbml0LmMKKysrIGIvYm9hcmQvTWFydmVsbC9kYjY0MzYwL3NkcmFtX2luaXQuYwpAQCAtMzEyLDcgKzMxMiw3IEBACiAJfSBlbHNlCiAJCWRpbW1JbmZvLT5zbG90ID0gc2xvdDsJLyogc3RhcnQgdG8gZmlsbCB1cCBkaW1taW5mbyBmb3IgdGhpcyAic2xvdCIgKi8KIAotI2lmZGVmIENGR19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQKKyNpZmRlZiBDT05GSUdfU1lTX0RJU1BMQVlfRElNTV9TUERfQ09OVEVOVAogCiAJZm9yIChpID0gMDsgaSA8PSAxMjc7IGkrKykgewogCQlwcmludGYgKCJTUEQtRUVQUk9NIEJ5dGUgJTNkID0gJTN4ICglM2QpXG4iLCBpLCBkYXRhW2ldLApAQCAtNjkwLDE2ICs2OTAsMTYgQEAKIAkJCQkJCWlmICgoZGltbUluZm8tPgogCQkJCQkJICAgICBtaW5pbXVtQ3ljbGVUaW1lQXRNYXhDYXNMYXRhbmN5X0xvUAogCQkJCQkJICAgICA8Ci0JCQkJCQkgICAgIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQorCQkJCQkJICAgICBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCiAJCQkJCQkgICAgfHwKIAkJCQkJCSAgICAoKGRpbW1JbmZvLT4KIAkJCQkJCSAgICAgIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfTG9QCiAJCQkJCQkgICAgICA9PQotCQkJCQkJICAgICAgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCisJCQkJCQkgICAgICBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCiAJCQkJCQkgICAgICYmIChkaW1tSW5mby0+CiAJCQkJCQkJIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfUm9QCiAJCQkJCQkJIDwKLQkJCQkJCQkgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9ST1ApKSkKKwkJCQkJCQkgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QKSkpCiAJCQkJCQl7CiAJCQkJCQkJZGltbUluZm8tPgogCQkJCQkJCQltYXhDbFN1cHBvcnRlZF9ERFIKQEAgLTcxNCwxNiArNzE0LDE2IEBACiAJCQkJCQlpZiAoKGRpbW1JbmZvLT4KIAkJCQkJCSAgICAgbWluaW11bUN5Y2xlVGltZUF0TWF4Q2FzTGF0YW5jeV9Mb1AKIAkJCQkJCSAgICAgPgotCQkJCQkJICAgICBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKKwkJCQkJCSAgICAgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQogCQkJCQkJICAgIHx8CiAJCQkJCQkgICAgKChkaW1tSW5mby0+CiAJCQkJCQkgICAgICBtaW5pbXVtQ3ljbGVUaW1lQXRNYXhDYXNMYXRhbmN5X0xvUAogCQkJCQkJICAgICAgPT0KLQkJCQkJCSAgICAgIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQorCQkJCQkJICAgICAgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQogCQkJCQkJICAgICAmJiAoZGltbUluZm8tPgogCQkJCQkJCSBtaW5pbXVtQ3ljbGVUaW1lQXRNYXhDYXNMYXRhbmN5X1JvUAogCQkJCQkJCSA+Ci0JCQkJCQkJIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QKSkpCisJCQkJCQkJIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCkpKQogCQkJCQkJewogCQkJCQkJCXByaW50ZiAoIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIik7CiAJCQkJCQkJcHJpbnRmICgiKioqIHN5c0Nsb2NrIGlzIGhpZ2hlciB0aGFuIFNEUkFNJ3MgYWxsb3dlZCBmcmVxdWVuY3kgKioqXG4iKTsKQEAgLTEyOTAsMzcgKzEyOTAsMzcgQEAKIAljYXNlIDB4MDoKIAljYXNlIDB4ODA6CQkvKiByZWZyZXNoIHBlcmlvZCBpcyAxNS42MjUgdXNlYyAqLwogCQlzZHJhbV9jb25maWdfcmVnID0KLQkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAxNS42MjUgKiAoZmxvYXQpIENGR19CVVNfSFopCisJCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMTUuNjI1ICogKGZsb2F0KSBDT05GSUdfU1lTX0JVU19IWikKIAkJCQkJLyAoZmxvYXQpIDEwMDAwMDAuMCk7CiAJCWJyZWFrOwogCWNhc2UgMHgxOgogCWNhc2UgMHg4MToJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDMuOSB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDMuOSAqIChmbG9hdCkgQ0ZHX0JVU19IWikgLworCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDMuOSAqIChmbG9hdCkgQ09ORklHX1NZU19CVVNfSFopIC8KIAkJCQkJKGZsb2F0KSAxMDAwMDAwLjApOwogCQlicmVhazsKIAljYXNlIDB4MjoKIAljYXNlIDB4ODI6CQkvKiByZWZyZXNoIHBlcmlvZCBpcyA3LjggdXNlYyAqLwogCQlzZHJhbV9jb25maWdfcmVnID0KLQkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSA3LjggKiAoZmxvYXQpIENGR19CVVNfSFopIC8KKwkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSA3LjggKiAoZmxvYXQpIENPTkZJR19TWVNfQlVTX0haKSAvCiAJCQkJCShmbG9hdCkgMTAwMDAwMC4wKTsKIAkJYnJlYWs7CiAJY2FzZSAweDM6CiAJY2FzZSAweDgzOgkJLyogcmVmcmVzaCBwZXJpb2QgaXMgMzEuMyB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDMxLjMgKiAoZmxvYXQpIENGR19CVVNfSFopIC8KKwkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAzMS4zICogKGZsb2F0KSBDT05GSUdfU1lTX0JVU19IWikgLwogCQkJCQkoZmxvYXQpIDEwMDAwMDAuMCk7CiAJCWJyZWFrOwogCWNhc2UgMHg0OgogCWNhc2UgMHg4NDoJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDYyLjUgdXNlYyAqLwogCQlzZHJhbV9jb25maWdfcmVnID0KLQkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSA2Mi41ICogKGZsb2F0KSBDRkdfQlVTX0haKSAvCisJCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgNjIuNSAqIChmbG9hdCkgQ09ORklHX1NZU19CVVNfSFopIC8KIAkJCQkJKGZsb2F0KSAxMDAwMDAwLjApOwogCQlicmVhazsKIAljYXNlIDB4NToKIAljYXNlIDB4ODU6CQkvKiByZWZyZXNoIHBlcmlvZCBpcyAxMjUgdXNlYyAqLwogCQlzZHJhbV9jb25maWdfcmVnID0KLQkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAxMjUgKiAoZmxvYXQpIENGR19CVVNfSFopIC8KKwkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAxMjUgKiAoZmxvYXQpIENPTkZJR19TWVNfQlVTX0haKSAvCiAJCQkJCShmbG9hdCkgMTAwMDAwMC4wKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoJCS8qIHJlZnJlc2ggcGVyaW9kIHVuZGVmaW5lZCAqLwpAQCAtMTgwNyw3ICsxODA3LDcgQEAKIAogCXByaW50ZiAoIi0tIERJTU0yIGhhcyAlZCBiYW5rc1xuIiwgZGltbUluZm8yLm51bU9mTW9kdWxlQmFua3MpOwogCi0JZm9yIChiYW5rX25vID0gMDsgYmFua19ubyA8IENGR19EUkFNX0JBTktTOyBiYW5rX25vKyspIHsKKwlmb3IgKGJhbmtfbm8gPSAwOyBiYW5rX25vIDwgQ09ORklHX1NZU19EUkFNX0JBTktTOyBiYW5rX25vKyspIHsKIAkJLyogc2tpcCBvdmVyIGJhbmtzIHRoYXQgYXJlIG5vdCBwb3B1bGF0ZWQgKi8KIAkJaWYgKCFjaGVja2JhbmtbYmFua19ub10pCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9kYjY0NDYwLmMgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvZGI2NDQ2MC5jCmluZGV4IDhhMDVjZDIuLjE0ZTYzNTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9kYjY0NDYwLmMKKysrIGIvYm9hcmQvTWFydmVsbC9kYjY0NDYwL2RiNjQ0NjAuYwpAQCAtNTUsNyArNTUsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKiB0aGlzIGlzIHRoZSBjdXJyZW50IEdUIHJlZ2lzdGVyIHNwYWNlIGxvY2F0aW9uICovCi0vKiBpdCBzdGFydHMgYXQgQ0ZHX0RGTF9HVF9SRUdTIGJ1dCBtb3ZlcyBsYXRlciB0byBDRkdfR1RfUkVHUyAqLworLyogaXQgc3RhcnRzIGF0IENPTkZJR19TWVNfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENPTkZJR19TWVNfR1RfUkVHUyAqLwogCiAvKiBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW50IGNoYW5nZSBpdCB3aGlsZSB3ZSBhcmUgaW4gZmxhc2gsIHNvIHdlIGluaXRpYWxpemUgaXQKICAqIHRvIHRoZSAiZmluYWwiIHZhbHVlLiBUaGlzIG1lYW5zIHRoYXQgYW55IGRlYnVnX2xlZCBjYWxscyBiZWZvcmUKQEAgLTY0LDcgKzY0LDcgQEAKICAqLwogCiB2b2lkIGJvYXJkX3ByZWJvb3RtX2luaXQgKHZvaWQpOwotdW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDRkdfR1RfUkVHUzsKK3Vuc2lnbmVkIGludCBJTlRFUk5BTF9SRUdfQkFTRV9BRERSID0gQ09ORklHX1NZU19HVF9SRUdTOwogaW50IGRpc3BsYXlfbWVtX21hcCAodm9pZCk7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTEyNyw3ICsxMjcsNyBAQAogCiAJCUdUX1JFR19XUklURSAoUENJXzBfQ09ORklHX0FERFIsIEJJVDMxIHwgdmFsKTsKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMF9DT05GSUdfREFUQV9WSVJUVUFMX1JFRywKLQkJCSAgICAgIChzdGF0ICYgMHhmZmZmMDAwMCkgfCBDRkdfUENJX0lEU0VMKTsKKwkJCSAgICAgIChzdGF0ICYgMHhmZmZmMDAwMCkgfCBDT05GSUdfU1lTX1BDSV9JRFNFTCk7CiAKIAl9CiAJaWYgKChHVFJFR1JFQUQgKFBDSV8xX01PREUpICYgKEJJVDQgfCBCSVQ1KSkgIT0gMCkgewkvKmlmICBQQ0ktWCAqLwpAQCAtMTM2LDcgKzEzNiw3IEBACiAKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMV9DT05GSUdfQUREUiwgQklUMzEgfCB2YWwpOwogCQlHVF9SRUdfV1JJVEUgKFBDSV8xX0NPTkZJR19EQVRBX1ZJUlRVQUxfUkVHLAotCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENGR19QQ0lfSURTRUwpOworCQkJICAgICAgKHN0YXQgJiAweGZmZmYwMDAwKSB8IENPTkZJR19TWVNfUENJX0lEU0VMKTsKIAl9CiAKIAkvKiBFbmFibGUgbWFzdGVyICovCkBAIC0xNTQsMjEgKzE1NCwyMSBAQAogCS8qIHJvbmVuLSBhZGQgd3JpdGUgdG8gcGNpIHJlbWFwIHJlZ2lzdGVycyBmb3IgNjQ0NjAuCiAJICAgaW4gNjQzNjAgd2hlbiB3cml0aW5nIHRvIHBjaSBiYXNlIGdvIGFuZCBvdmVyaWRlIHJlbWFwIGF1dG9tYXRpY2FseSwKIAkgICBpbiA2NDQ2MCBpdCBkb2Vzbid0ICovCi0JR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19CQVNFX0FERFIsIENGR19QQ0kwX0lPX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBJX09fQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTBfSU9fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19TSVpFLCAoQ0ZHX1BDSTBfSU9fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBJX09fQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfSU9fU0laRSwgKENPTkZJR19TWVNfUENJMF9JT19TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX0JBU0VfQUREUiwgQ0ZHX1BDSTBfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENGR19QQ0kwX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfU0laRSwgKENGR19QQ0kwX01FTV9TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfME1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfU0laRSwgKENPTkZJR19TWVNfUENJMF9NRU1fU0laRSAtIDEpID4+IDE2KTsKIAotCUdUX1JFR19XUklURSAoUENJXzFfSU9fQkFTRV9BRERSLCBDRkdfUENJMV9JT19CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xSV9PX0FERFJFU1NfUkVNQVAsIENGR19QQ0kxX0lPX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFfSU9fU0laRSwgKENGR19QQ0kxX0lPX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMV9JT19CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xSV9PX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMV9JT19CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX1NJWkUsIChDT05GSUdfU1lTX1BDSTFfSU9fU0laRSAtIDEpID4+IDE2KTsKIAotCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9CQVNFX0FERFIsIENGR19QQ0kxX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDRkdfUENJMV9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX1NJWkUsIChDRkdfUENJMV9NRU1fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX1NJWkUsIChDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUgLSAxKSA+PiAxNik7CiAKIAkvKiBQQ0kgaW50ZXJmYWNlIHNldHRpbmdzICovCiAJLyogVGltZW91dCBzZXQgdG8gcmV0cnkgZm9yZXZlciAqLwpAQCAtMTg0LDcgKzE4NCw3IEBACiAJZm9yIChzdGF0ID0gMDsgc3RhdCA8PSBQQ0lfSE9TVDE7IHN0YXQrKykKIAkJcGNpV3JpdGVDb25maWdSZWcgKHN0YXQsCiAJCQkJICAgUENJX0lOVEVSTkFMX1JFR0lTVEVSU19NRU1PUllfTUFQUEVEX0JBU0VfQUREUkVTUywKLQkJCQkgICBTRUxGLCBDRkdfR1RfUkVHUyk7CisJCQkJICAgU0VMRiwgQ09ORklHX1NZU19HVF9SRUdTKTsKICNlbmRpZgogCiB9CkBAIC0yMDAsNyArMjAwLDcgQEAKIAl0bXAgPSBHVFJFR1JFQUQgKENQVV9DT05GSUdVUkFUSU9OKTsKIAogCS8qIHNldCB0aGUgU0lOR0xFX0NQVSBiaXQgIHNlZSBNVjY0NDYwIFAuMzk5ICovCi0jaWZuZGVmIENGR19HVF9EVUFMX0NQVQkJLyogU0lOR0xFX0NQVSBzZWVtcyB0byBjYXVzZSBKVEFHIHByb2JsZW1zICovCisjaWZuZGVmIENPTkZJR19TWVNfR1RfRFVBTF9DUFUJCS8qIFNJTkdMRV9DUFUgc2VlbXMgdG8gY2F1c2UgSlRBRyBwcm9ibGVtcyAqLwogCXRtcCB8PSBDUFVfQ09ORl9TSU5HTEVfQ1BVOwogI2VuZGlmCiAKQEAgLTI1MSw3ICsyNTEsNyBAQAogCSAqIGl0IGxhc3QgdGltZS4gKGh1YmVyKQogCSAqLwogCi0JbXlfcmVtYXBfZ3RfcmVncyAoQ0ZHX0RGTF9HVF9SRUdTLCBDRkdfR1RfUkVHUyk7CisJbXlfcmVtYXBfZ3RfcmVncyAoQ09ORklHX1NZU19ERkxfR1RfUkVHUywgQ09ORklHX1NZU19HVF9SRUdTKTsKIAogCS8qIE5vIFBDSSBpbiBmaXJzdCByZWxlYXNlIG9mIFBvcnQgVG9fZG86IGVuYWJsZSBpdC4gKi8KICNpZmRlZiBDT05GSUdfUENJCkBAIC0yOTcsNTYgKzI5Nyw1NiBAQAogCSAqIG9uLWJvYXJkIHNyYW0gb24gdGhlIGV2YWwgYm9hcmQsIGFuZCB1cGRhdGVzIHRoZSBjb3JyZWN0CiAJICogcmVnaXN0ZXJzIHRvIGJvb3QgZnJvbSB0aGUgc3JhbS4gKGRldmljZTApCiAJICovCi0JaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChERVZJQ0UwKSA9PSBDRkdfREZMX0JPT1RDU19CQVNFKQorCWlmIChtZW1vcnlHZXREZXZpY2VCYXNlQWRkcmVzcyAoREVWSUNFMCkgPT0gQ09ORklHX1NZU19ERkxfQk9PVENTX0JBU0UpCiAJCXNyYW1fYm9vdCA9IDE7CiAJaWYgKCFzcmFtX2Jvb3QpCi0JCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDRkdfREVWMF9TUEFDRSwgQ0ZHX0RFVjBfU0laRSk7CisJCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDT05GSUdfU1lTX0RFVjBfU1BBQ0UsIENPTkZJR19TWVNfREVWMF9TSVpFKTsKIAotCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UxLCBDRkdfREVWMV9TUEFDRSwgQ0ZHX0RFVjFfU0laRSk7Ci0JbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTIsIENGR19ERVYyX1NQQUNFLCBDRkdfREVWMl9TSVpFKTsKLQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMywgQ0ZHX0RFVjNfU1BBQ0UsIENGR19ERVYzX1NJWkUpOworCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UxLCBDT05GSUdfU1lTX0RFVjFfU1BBQ0UsIENPTkZJR19TWVNfREVWMV9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMiwgQ09ORklHX1NZU19ERVYyX1NQQUNFLCBDT05GSUdfU1lTX0RFVjJfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTMsIENPTkZJR19TWVNfREVWM19TUEFDRSwgQ09ORklHX1NZU19ERVYzX1NJWkUpOwogCiAKIAkvKiBjb25maWd1cmUgZGV2aWNlIHRpbWluZyAqLwotI2lmZGVmIENGR19ERVYwX1BBUgkJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgU1JBTSBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworI2lmZGVmIENPTkZJR19TWVNfREVWMF9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIFNSQU0gZGV2aWNlIG1vZHVsZSBhY2Nlc3MgKi8KIAlpZiAoIXNyYW1fYm9vdCkKLQkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzBQQVJBTUVURVJTLCBDRkdfREVWMF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMFBBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWMF9QQVIpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfREVWMV9QQVIJCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIFJUQyBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwotCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksxUEFSQU1FVEVSUywgQ0ZHX0RFVjFfUEFSKTsKKyNpZmRlZiBDT05GSUdfU1lTX0RFVjFfUEFSCQkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBSVEMgZGV2aWNlIG1vZHVsZSBhY2Nlc3MgKi8KKwlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMVBBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWMV9QQVIpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RFVjJfUEFSCQkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBEVUFSVCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwotCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksyUEFSQU1FVEVSUywgQ0ZHX0RFVjJfUEFSKTsKKyNpZmRlZiBDT05GSUdfU1lTX0RFVjJfUEFSCQkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBEVUFSVCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksyUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYyX1BBUik7CiAjZW5kaWYKIAotI2lmZGVmIENGR18zMkJJVF9CT09UX1BBUgkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBGbGFzaCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLworI2lmZGVmIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIJLyogc2V0IHBvcnQgcGFyYW1ldGVycyBmb3IgRmxhc2ggZGV2aWNlIG1vZHVsZSBhY2Nlc3MgKi8KIAkvKiBkZXRlY3QgaWYgd2UgYXJlIGJvb3RpbmcgZnJvbSB0aGUgMzIgYml0IGZsYXNoICovCiAJaWYgKEdUUkVHUkVBRCAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTKSAmICgweDMgPDwgMjApKSB7CiAJCS8qIDMyIGJpdCBib290IGZsYXNoICovCi0JCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7CiAJCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLAotCQkJICAgICAgQ0ZHXzMyQklUX0JPT1RfUEFSKTsKKwkJCSAgICAgIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIpOwogCX0gZWxzZSB7CiAJCS8qIDggYml0IGJvb3QgZmxhc2ggKi8KLQkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzNQQVJBTUVURVJTLCBDRkdfMzJCSVRfQk9PVF9QQVIpOwotCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ09ORklHX1NZU184QklUX0JPT1RfUEFSKTsKIAl9CiAjZWxzZQogCS8qIDggYml0IGJvb3QgZmxhc2ggb25seSAqLwotLyoJR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOyovCisvKglHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIpOyovCiAjZW5kaWYKIAogCiAJZ3RfY3B1X2NvbmZpZyAoKTsKIAogCS8qIE1QUCBzZXR1cCAqLwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wwLCBDRkdfTVBQX0NPTlRST0xfMCk7Ci0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDEsIENGR19NUFBfQ09OVFJPTF8xKTsKLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMiwgQ0ZHX01QUF9DT05UUk9MXzIpOwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wzLCBDRkdfTVBQX0NPTlRST0xfMyk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDAsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMCk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDEsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMSk7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDIsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMik7CisJR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDMsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMyk7CiAKLQlHVF9SRUdfV1JJVEUgKEdQUF9MRVZFTF9DT05UUk9MLCBDRkdfR1BQX0xFVkVMX0NPTlRST0wpOworCUdUX1JFR19XUklURSAoR1BQX0xFVkVMX0NPTlRST0wsIENPTkZJR19TWVNfR1BQX0xFVkVMX0NPTlRST0wpOwogCURFQlVHX0xFRDBfT04gKCk7CiAJREVCVUdfTEVEMV9PTiAoKTsKIAlERUJVR19MRUQyX09OICgpOwpAQCAtMzU5LDcgKzM1OSw3IEBACiBpbnQgbWlzY19pbml0X3IgKCkKIHsKIAlpY2FjaGVfZW5hYmxlICgpOwotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAlsMmNhY2hlX2VuYWJsZSAoKTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19NUFNDCkBAIC0zODAsOSArMzgwLDkgQEAKIAkvKiBjaGVjayB0byBzZWUgaWYgd2UgYm9vdGVkIGZyb20gdGhlIHNyYW0uICBJZiBzbywgbW92ZSB0aGluZ3MKIAkgKiBiYWNrIHRvIHRoZSB3YXkgdGhleSBzaG91bGQgYmUuICh3ZSdyZSBydW5uaW5nIGZyb20gbWFpbgogCSAqIG1lbW9yeSBhdCB0aGlzIHBvaW50IG5vdyAqLwotCWlmIChtZW1vcnlHZXREZXZpY2VCYXNlQWRkcmVzcyAoREVWSUNFMCkgPT0gQ0ZHX0RGTF9CT09UQ1NfQkFTRSkgewotCQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMCwgQ0ZHX0RFVjBfU1BBQ0UsIENGR19ERVYwX1NJWkUpOwotCQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoQk9PVF9ERVZJQ0UsIENGR19ERkxfQk9PVENTX0JBU0UsIF84TSk7CisJaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzIChERVZJQ0UwKSA9PSBDT05GSUdfU1lTX0RGTF9CT09UQ1NfQkFTRSkgeworCQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMCwgQ09ORklHX1NZU19ERVYwX1NQQUNFLCBDT05GSUdfU1lTX0RFVjBfU0laRSk7CisJCW1lbW9yeU1hcERldmljZVNwYWNlIChCT09UX0RFVklDRSwgQ09ORklHX1NZU19ERkxfQk9PVENTX0JBU0UsIF84TSk7CiAJfQogCWRpc3BsYXlfbWVtX21hcCAoKTsKIAkvKiBub3csIGp1bXAgdG8gdGhlIG1haW4gcHBjYm9vdCBib2FyZCBpbml0IGNvZGUgKi8KQEAgLTQwMiw3ICs0MDIsNyBAQAogewogCWludCBsX3R5cGUgPSAwOwogCi0JcHJpbnRmICgiQk9BUkQ6ICVzXG4iLCBDRkdfQk9BUkRfTkFNRSk7CisJcHJpbnRmICgiQk9BUkQ6ICVzXG4iLCBDT05GSUdfU1lTX0JPQVJEX05BTUUpOwogCXJldHVybiAobF90eXBlKTsKIH0KIApAQCAtNDE1LDM0ICs0MTUsMzQgQEAKIAlpZiAobW9kZSA9PSAxKSB7CiAJCXN3aXRjaCAobGVkKSB7CiAJCWNhc2UgMDoKLQkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDRkdfREVWMV9TUEFDRSB8CisJCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ09ORklHX1NZU19ERVYxX1NQQUNFIHwKIAkJCQkJMHgwODAwMCk7CiAJCQlicmVhazsKIAogCQljYXNlIDE6Ci0JCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ0ZHX0RFVjFfU1BBQ0UgfAorCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENPTkZJR19TWVNfREVWMV9TUEFDRSB8CiAJCQkJCTB4MGMwMDApOwogCQkJYnJlYWs7CiAKIAkJY2FzZSAyOgotCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENGR19ERVYxX1NQQUNFIHwKKwkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfAogCQkJCQkweDEwMDAwKTsKIAkJCWJyZWFrOwogCQl9CiAJfSBlbHNlIGlmIChtb2RlID09IDApIHsKIAkJc3dpdGNoIChsZWQpIHsKIAkJY2FzZSAwOgotCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENGR19ERVYxX1NQQUNFIHwKKwkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfAogCQkJCQkweDE0MDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMToKLQkJCWFkZHIgPSAoaW50ICopICgodW5zaWduZWQgaW50KSBDRkdfREVWMV9TUEFDRSB8CisJCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ09ORklHX1NZU19ERVYxX1NQQUNFIHwKIAkJCQkJMHgxODAwMCk7CiAJCQlicmVhazsKIAogCQljYXNlIDI6Ci0JCQlhZGRyID0gKGludCAqKSAoKHVuc2lnbmVkIGludCkgQ0ZHX0RFVjFfU1BBQ0UgfAorCQkJYWRkciA9IChpbnQgKikgKCh1bnNpZ25lZCBpbnQpIENPTkZJR19TWVNfREVWMV9TUEFDRSB8CiAJCQkJCTB4MWMwMDApOwogCQkJYnJlYWs7CiAJCX0KQEAgLTUxMyw3ICs1MTMsNyBAQAogCiAvKiBEUkFNIGNoZWNrIHJvdXRpbmVzIGNvcGllZCBmcm9tIGd3ODI2MCAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICBtb3ZlNjQoKSAtICBtb3ZlcyBhIGRvdWJsZSB3b3JkICg2NC1iaXQpCQkgICAgICovCkBAIC01NDQsNyArNTQ0LDcgQEAKIH0KIAogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9EQVRBKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEpCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBwYXR0ZXJuW10gPSB7CiAJMHhhYWFhYWFhYWFhYWFhYWFhVUxMLApAQCAtNjA3LDcgKzYwNyw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IG1lbV90ZXN0X2RhdGEgKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nICpwbWVtID0gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKKwl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKIAl1bnNpZ25lZCBsb25nIGxvbmcgdGVtcDY0ID0gMDsKIAlpbnQgbnVtX3BhdHRlcm5zID0gc2l6ZW9mIChwYXR0ZXJuKSAvIHNpemVvZiAocGF0dGVyblswXSk7CiAJaW50IGk7CkBAIC02MzQsOSArNjM0LDkgQEAKIAogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfREFUQSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgKi8KIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1RfQUREUkVTUykKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICBtZW1fdGVzdF9hZGRyZXNzKCkgLQl0ZXN0IGFkZHJlc3MgbGluZXMJCSAgICAgKi8KIC8qCQkJCQkJCQkgICAgICovCkBAIC02NjEsOCArNjYxLDggQEAKIGludCBtZW1fdGVzdF9hZGRyZXNzICh2b2lkKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIGludCAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JY29uc3QgdW5zaWduZWQgaW50IHNpemUgPSAoQ0ZHX01FTVRFU1RfRU5EIC0gQ0ZHX01FTVRFU1RfU1RBUlQpIC8gNDsKKwkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJY29uc3QgdW5zaWduZWQgaW50IHNpemUgPSAoQ09ORklHX1NZU19NRU1URVNUX0VORCAtIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCkgLyA0OwogCXVuc2lnbmVkIGludCBpOwogCiAJLyogd3JpdGUgYWRkcmVzcyB0byBlYWNoIGxvY2F0aW9uICovCkBAIC02NzksOSArNjc5LDkgQEAKIAl9CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9BRERSRVNTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUyAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9XQUxLKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEspCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogICBtZW1fbWFyY2goKSAtICBtZW1vcnkgbWFyY2gJCQkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTczOSw3ICs3MzksNyBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX1dBTEsgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV90ZXN0X3dhbGsoKSAtICBhIHNpbXBsZSB3YWxraW5nIG9uZXMgdGVzdAkgICAgICovCkBAIC03NzEsOCArNzcxLDggQEAKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgbWFzazsKIAl2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPQotCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICopIENGR19NRU1URVNUX1NUQVJUOwotCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDRkdfTUVNVEVTVF9FTkQgLSBDRkdfTUVNVEVTVF9TVEFSVCkgLyA4OworCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwljb25zdCB1bnNpZ25lZCBsb25nIHNpemUgPSAoQ09ORklHX1NZU19NRU1URVNUX0VORCAtIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCkgLyA4OwogCiAJdW5zaWduZWQgaW50IGk7CiAKQEAgLTg0OCw5ICs4NDgsOSBAQAogLyogICAgcnVud2FsayA9IDA7ICovCiAKIAlpZiAoKHJ1bmRhdGEgPT0gMSkgfHwgKHJ1bmFkZHJlc3MgPT0gMSkgfHwgKHJ1bndhbGsgPT0gMSkpIHsKLQkJcHJpbnRmICgiVGVzdGluZyBSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4IC4uLiAgKGRvbid0IHBhbmljLi4uIHRoYXQgd2lsbCB0YWtlIGEgbW9tZW50ICEhISEpXG4iLCBDRkdfTUVNVEVTVF9TVEFSVCwgQ0ZHX01FTVRFU1RfRU5EKTsKKwkJcHJpbnRmICgiVGVzdGluZyBSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4IC4uLiAgKGRvbid0IHBhbmljLi4uIHRoYXQgd2lsbCB0YWtlIGEgbW9tZW50ICEhISEpXG4iLCBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQsIENPTkZJR19TWVNfTUVNVEVTVF9FTkQpOwogCX0KLSNpZmRlZiBDRkdfRFJBTV9URVNUX0RBVEEKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBCiAJaWYgKHJ1bmRhdGEgPT0gMSkgewogCQlwcmludGYgKCJUZXN0IERBVEEgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X2RhdGEgKCkgPT0gMSkgewpAQCAtODYwLDcgKzg2MCw3IEBACiAJCQlwcmludGYgKCJvayBcbiIpOwogCX0KICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfQUREUkVTUworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MKIAlpZiAocnVuYWRkcmVzcyA9PSAxKSB7CiAJCXByaW50ZiAoIlRlc3QgQUREUkVTUyAuLi4gICIpOwogCQlpZiAobWVtX3Rlc3RfYWRkcmVzcyAoKSA9PSAxKSB7CkBAIC04NzAsNyArODcwLDcgQEAKIAkJCXByaW50ZiAoIm9rIFxuIik7CiAJfQogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9XQUxLCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSwogCWlmIChydW53YWxrID09IDEpIHsKIAkJcHJpbnRmICgiVGVzdCBXQUxLSU5HIE9ORXMgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X3dhbGsgKCkgPT0gMSkgewpAQCAtODg2LDcgKzg4Niw3IEBACiAJcmV0dXJuIDA7CiAKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogLyogcm9uZW4gLSB0aGUgYmVsb3cgZnVuY3Rpb25zIGFyZSB1c2VkIGJ5IHRoZSBib290bSBmdW5jdGlvbiAgICAgICAgICAgKi8KIC8qICAtIHdlIG1hcCB0aGUgYmFzZSByZWdpc3RlciB0byBmYmUwMDAwMCAoc2FtZSBtYXBwaW5nIGFzIGluIHRoZSBMU1ApICovCkBAIC05MjUsNyArOTI1LDcgQEAKIAlHVF9SRUdfV1JJVEUgKE1WNjQ0NjBfRVRIX1JFQ0VJVkVfUVVFVUVfQ09NTUFORF9SRUcgKDIpLCAweDAwMDBmZjAwKTsKIAogLyogUmVsb2NhdGUgTVY2NDQ2MCBpbnRlcm5hbCByZWdzICovCi0JbXlfcmVtYXBfZ3RfcmVnc19ib290bSAoQ0ZHX0dUX1JFR1MsIEJSSURHRV9SRUdfQkFTRV9CT09UTSk7CisJbXlfcmVtYXBfZ3RfcmVnc19ib290bSAoQ09ORklHX1NZU19HVF9SRUdTLCBCUklER0VfUkVHX0JBU0VfQk9PVE0pOwogCiAJaWNhY2hlX2Rpc2FibGUgKCk7CiAJZGNhY2hlX2Rpc2FibGUgKCk7CmRpZmYgLS1naXQgYS9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvbXBzYy5jIGIvYm9hcmQvTWFydmVsbC9kYjY0NDYwL21wc2MuYwppbmRleCAzNTliODMxLi4zMDNhNjM2IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvbXBzYy5jCisrKyBiL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9tcHNjLmMKQEAgLTQyNiw3ICs0MjYsNyBAQAogCQkJICAoTVY2NDQ2MF9DVU5JVF9CQVNFX0FERFJfV0lOXzBfQklUICogMikpKTsKIAogLyogU2V0dXAgTVBTQyBpbnRlcm5hbCBhZGRyZXNzIHNwYWNlIGJhc2UgYWRkcmVzcwkqLwotCUdUX1JFR19XUklURSAoQ1VOSVRfSU5URVJOQUxfU1BBQ0VfQkFTRV9BRERSX1JFRywgQ0ZHX0dUX1JFR1MpOworCUdUX1JFR19XUklURSAoQ1VOSVRfSU5URVJOQUxfU1BBQ0VfQkFTRV9BRERSX1JFRywgQ09ORklHX1NZU19HVF9SRUdTKTsKIAogLyogbm8gaGlnaCBhZGRyZXNzIHJlbWFwKi8KIAlHVF9SRUdfV1JJVEUgKENVTklUX0hJR0hfQUREUl9SRU1BUF9SRUcwLCAweDAwKTsKQEAgLTUxNiw5ICs1MTYsOSBAQAogCiAjaWZkZWYgWlVNQV9OVEwKIAkvKiBmcm9tIHRjbGsgKi8KLQljbG9jayA9IChDRkdfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CisJY2xvY2sgPSAoQ09ORklHX1NZU19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKICNlbHNlCi0JY2xvY2sgPSAoQ0ZHX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOworCWNsb2NrID0gKENPTkZJR19TWVNfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CiAjZW5kaWYKIAogCWdhbGJyZ19zZXRfQ0RWIChjaGFubmVsLCBjbG9jayk7CS8qIHNldCB0aW1lciBSZWcuIGZvciBCUkcgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9wY2kuYyBiL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9wY2kuYwppbmRleCA1NjM3Mjg0Li5hN2UzYzk1IDEwMDY0NAotLS0gYS9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvcGNpLmMKKysrIGIvYm9hcmQvTWFydmVsbC9kYjY0NDYwL3BjaS5jCkBAIC04NTksMTQgKzg1OSwxNCBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kwX2hvc2UucmVnaW9ucyArIDAsCi0JCQlDRkdfUENJMF8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kwXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTBfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJCUNPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMF9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIEkvTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kwX2hvc2UucmVnaW9ucyArIDEsCi0JCQlDRkdfUENJMF9JT19TUEFDRV9QQ0ksCi0JCQlDRkdfUENJMF9JT19TUEFDRSwgQ0ZHX1BDSTBfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCQlDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJLAorCQkJQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFLCBDT05GSUdfU1lTX1BDSTBfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAlwY2lfc2V0X29wcyAoJnBjaTBfaG9zZSwKIAkJICAgICBwY2lfaG9zZV9yZWFkX2NvbmZpZ19ieXRlX3ZpYV9kd29yZCwKQEAgLTkwMSwxNCArOTAxLDE0IEBACiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTFfaG9zZS5yZWdpb25zICsgMCwKLQkJCUNGR19QQ0kxXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSS9PIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTFfaG9zZS5yZWdpb25zICsgMSwKLQkJCUNGR19QQ0kxX0lPX1NQQUNFX1BDSSwKLQkJCUNGR19QQ0kxX0lPX1NQQUNFLCBDRkdfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJCUNPTkZJR19TWVNfUENJMV9JT19TUEFDRV9QQ0ksCisJCQlDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UsIENPTkZJR19TWVNfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCXBjaV9zZXRfb3BzICgmcGNpMV9ob3NlLAogCQkgICAgIHBjaV9ob3NlX3JlYWRfY29uZmlnX2J5dGVfdmlhX2R3b3JkLApkaWZmIC0tZ2l0IGEvYm9hcmQvTWFydmVsbC9kYjY0NDYwL3NkcmFtX2luaXQuYyBiL2JvYXJkL01hcnZlbGwvZGI2NDQ2MC9zZHJhbV9pbml0LmMKaW5kZXggZjM2ZjM0OC4uNmQ2YjEyNiAxMDA2NDQKLS0tIGEvYm9hcmQvTWFydmVsbC9kYjY0NDYwL3NkcmFtX2luaXQuYworKysgYi9ib2FyZC9NYXJ2ZWxsL2RiNjQ0NjAvc2RyYW1faW5pdC5jCkBAIC0zMTIsNyArMzEyLDcgQEAKIAl9IGVsc2UKIAkJZGltbUluZm8tPnNsb3QgPSBzbG90OwkvKiBzdGFydCB0byBmaWxsIHVwIGRpbW1pbmZvIGZvciB0aGlzICJzbG90IiAqLwogCi0jaWZkZWYgQ0ZHX0RJU1BMQVlfRElNTV9TUERfQ09OVEVOVAorI2lmZGVmIENPTkZJR19TWVNfRElTUExBWV9ESU1NX1NQRF9DT05URU5UCiAKIAlmb3IgKGkgPSAwOyBpIDw9IDEyNzsgaSsrKSB7CiAJCXByaW50ZiAoIlNQRC1FRVBST00gQnl0ZSAlM2QgPSAlM3ggKCUzZClcbiIsIGksIGRhdGFbaV0sCkBAIC02OTAsMTYgKzY5MCwxNiBAQAogCQkJCQkJaWYgKChkaW1tSW5mby0+CiAJCQkJCQkgICAgIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfTG9QCiAJCQkJCQkgICAgIDwKLQkJCQkJCSAgICAgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCisJCQkJCQkgICAgIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKIAkJCQkJCSAgICB8fAogCQkJCQkJICAgICgoZGltbUluZm8tPgogCQkJCQkJICAgICAgbWluaW11bUN5Y2xlVGltZUF0TWF4Q2FzTGF0YW5jeV9Mb1AKIAkJCQkJCSAgICAgID09Ci0JCQkJCQkgICAgICBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKKwkJCQkJCSAgICAgIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCkKIAkJCQkJCSAgICAgJiYgKGRpbW1JbmZvLT4KIAkJCQkJCQkgbWluaW11bUN5Y2xlVGltZUF0TWF4Q2FzTGF0YW5jeV9Sb1AKIAkJCQkJCQkgPAotCQkJCQkJCSBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCkpKQorCQkJCQkJCSBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9ST1ApKSkKIAkJCQkJCXsKIAkJCQkJCQlkaW1tSW5mby0+CiAJCQkJCQkJCW1heENsU3VwcG9ydGVkX0REUgpAQCAtNzE0LDE2ICs3MTQsMTYgQEAKIAkJCQkJCWlmICgoZGltbUluZm8tPgogCQkJCQkJICAgICBtaW5pbXVtQ3ljbGVUaW1lQXRNYXhDYXNMYXRhbmN5X0xvUAogCQkJCQkJICAgICA+Ci0JCQkJCQkgICAgIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QKQorCQkJCQkJICAgICBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCiAJCQkJCQkgICAgfHwKIAkJCQkJCSAgICAoKGRpbW1JbmZvLT4KIAkJCQkJCSAgICAgIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfTG9QCiAJCQkJCQkgICAgICA9PQotCQkJCQkJICAgICAgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCisJCQkJCQkgICAgICBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1ApCiAJCQkJCQkgICAgICYmIChkaW1tSW5mby0+CiAJCQkJCQkJIG1pbmltdW1DeWNsZVRpbWVBdE1heENhc0xhdGFuY3lfUm9QCiAJCQkJCQkJID4KLQkJCQkJCQkgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9ST1ApKSkKKwkJCQkJCQkgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QKSkpCiAJCQkJCQl7CiAJCQkJCQkJcHJpbnRmICgiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iKTsKIAkJCQkJCQlwcmludGYgKCIqKiogc3lzQ2xvY2sgaXMgaGlnaGVyIHRoYW4gU0RSQU0ncyBhbGxvd2VkIGZyZXF1ZW5jeSAqKipcbiIpOwpAQCAtMTI4OSwzNyArMTI4OSwzNyBAQAogCWNhc2UgMHgwOgogCWNhc2UgMHg4MDoJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDE1LjYyNSB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDE1LjYyNSAqIChmbG9hdCkgQ0ZHX0JVU19IWikKKwkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSAxNS42MjUgKiAoZmxvYXQpIENPTkZJR19TWVNfQlVTX0haKQogCQkJCQkvIChmbG9hdCkgMTAwMDAwMC4wKTsKIAkJYnJlYWs7CiAJY2FzZSAweDE6CiAJY2FzZSAweDgxOgkJLyogcmVmcmVzaCBwZXJpb2QgaXMgMy45IHVzZWMgKi8KIAkJc2RyYW1fY29uZmlnX3JlZyA9Ci0JCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMy45ICogKGZsb2F0KSBDRkdfQlVTX0haKSAvCisJCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMy45ICogKGZsb2F0KSBDT05GSUdfU1lTX0JVU19IWikgLwogCQkJCQkoZmxvYXQpIDEwMDAwMDAuMCk7CiAJCWJyZWFrOwogCWNhc2UgMHgyOgogCWNhc2UgMHg4MjoJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDcuOCB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDcuOCAqIChmbG9hdCkgQ0ZHX0JVU19IWikgLworCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDcuOCAqIChmbG9hdCkgQ09ORklHX1NZU19CVVNfSFopIC8KIAkJCQkJKGZsb2F0KSAxMDAwMDAwLjApOwogCQlicmVhazsKIAljYXNlIDB4MzoKIAljYXNlIDB4ODM6CQkvKiByZWZyZXNoIHBlcmlvZCBpcyAzMS4zIHVzZWMgKi8KIAkJc2RyYW1fY29uZmlnX3JlZyA9Ci0JCQkodW5zaWduZWQgaW50KSAoKChmbG9hdCkgMzEuMyAqIChmbG9hdCkgQ0ZHX0JVU19IWikgLworCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDMxLjMgKiAoZmxvYXQpIENPTkZJR19TWVNfQlVTX0haKSAvCiAJCQkJCShmbG9hdCkgMTAwMDAwMC4wKTsKIAkJYnJlYWs7CiAJY2FzZSAweDQ6CiAJY2FzZSAweDg0OgkJLyogcmVmcmVzaCBwZXJpb2QgaXMgNjIuNSB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDYyLjUgKiAoZmxvYXQpIENGR19CVVNfSFopIC8KKwkJCSh1bnNpZ25lZCBpbnQpICgoKGZsb2F0KSA2Mi41ICogKGZsb2F0KSBDT05GSUdfU1lTX0JVU19IWikgLwogCQkJCQkoZmxvYXQpIDEwMDAwMDAuMCk7CiAJCWJyZWFrOwogCWNhc2UgMHg1OgogCWNhc2UgMHg4NToJCS8qIHJlZnJlc2ggcGVyaW9kIGlzIDEyNSB1c2VjICovCiAJCXNkcmFtX2NvbmZpZ19yZWcgPQotCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDEyNSAqIChmbG9hdCkgQ0ZHX0JVU19IWikgLworCQkJKHVuc2lnbmVkIGludCkgKCgoZmxvYXQpIDEyNSAqIChmbG9hdCkgQ09ORklHX1NZU19CVVNfSFopIC8KIAkJCQkJKGZsb2F0KSAxMDAwMDAwLjApOwogCQlicmVhazsKIAlkZWZhdWx0OgkJLyogcmVmcmVzaCBwZXJpb2QgdW5kZWZpbmVkICovCkBAIC0xODE2LDcgKzE4MTYsNyBAQAogCiAJcHJpbnRmICgiLS0gRElNTTIgaGFzICVkIGJhbmtzXG4iLCBkaW1tSW5mbzIubnVtT2ZNb2R1bGVCYW5rcyk7CiAKLQlmb3IgKGJhbmtfbm8gPSAwOyBiYW5rX25vIDwgQ0ZHX0RSQU1fQkFOS1M7IGJhbmtfbm8rKykgeworCWZvciAoYmFua19ubyA9IDA7IGJhbmtfbm8gPCBDT05GSUdfU1lTX0RSQU1fQkFOS1M7IGJhbmtfbm8rKykgewogCQkvKiBza2lwIG92ZXIgYmFua3MgdGhhdCBhcmUgbm90IHBvcHVsYXRlZCAqLwogCQlpZiAoIWNoZWNrYmFua1tiYW5rX25vXSkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvTWlnb1IvbWlnb19yLmMgYi9ib2FyZC9NaWdvUi9taWdvX3IuYwppbmRleCBiMzFmMzdkLi4yMDRjYTc4IDEwMDY0NAotLS0gYS9ib2FyZC9NaWdvUi9taWdvX3IuYworKysgYi9ib2FyZC9NaWdvUi9taWdvX3IuYwpAQCAtNDIsOSArNDIsOSBAQAogewogCURFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0JZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENGR19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CisJZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwlnZC0+YmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL1JQWENsYXNzaWMvUlBYQ2xhc3NpYy5jIGIvYm9hcmQvUlBYQ2xhc3NpYy9SUFhDbGFzc2ljLmMKaW5kZXggODA0NjM1YS4uOWZkZjcwMCAxMDA2NDQKLS0tIGEvYm9hcmQvUlBYQ2xhc3NpYy9SUFhDbGFzc2ljLmMKKysrIGIvYm9hcmQvUlBYQ2xhc3NpYy9SUFhDbGFzc2ljLmMKQEAgLTExMSw3ICsxMTEsNyBAQAogCWNoYXIgYnVmZlsyNTZdLCAqY3A7CiAKIAkvKiBJbml0aWFsaXplIEkyQwkJCQkJKi8KLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAkvKiBSZWFkIDI1NiBieXRlcyBpbiBFRVBST00JCQkJKi8KIAlpMmNfcmVhZCAoMHg1NCwgMCwgMSwgKHVjaGFyICopYnVmZiwgMTI4KTsKQEAgLTE2Nyw3ICsxNjcsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTEwOwogCkBAIC0xNzUsMTUgKzE3NSwxNSBAQAogCQkJICAgc2l6ZW9mIChzZHJhbV90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAogCS8qIFJlZnJlc2ggY2xvY2sgcHJlc2NhbGFyICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDAwMDsKIAogCS8qIE1hcCBjb250cm9sbGVyIGJhbmtzIDEgdG8gdGhlIFNEUkFNIGJhbmsgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfMTBDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl8xMENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0yMDAsNyArMjAwLDcgQEAKIAkgKiB0cnkgMTAgY29sdW1uIG1vZGUKIAkgKi8KIAotCXNpemUxMCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfMTBDT0wsIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemUxMCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzEwQ09MLCBTRFJBTV9CQVNFX1BSRUxJTSwKIAkJCQkJCVNEUkFNX01BWF9TSVpFKTsKIAogCXJldHVybiAoc2l6ZTEwKTsKQEAgLTIxOCw3ICsyMTgsNyBAQAogCiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKZGlmZiAtLWdpdCBhL2JvYXJkL1JQWENsYXNzaWMvZWNjeC5jIGIvYm9hcmQvUlBYQ2xhc3NpYy9lY2N4LmMKaW5kZXggY2M3NmJiZC4uZTFmM2Y5ZCAxMDA2NDQKLS0tIGEvYm9hcmQvUlBYQ2xhc3NpYy9lY2N4LmMKKysrIGIvYm9hcmQvUlBYQ2xhc3NpYy9lY2N4LmMKQEAgLTI5OSw3ICsyOTksNyBAQAogICovCiB1bnNpZ25lZCBpbnQgYm9hcmRfdmlkZW9faW5pdCAodm9pZCkKIHsKLSAgICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAgICAgLyogUHJvZ3JhbSBFQ0NYIHJlZ2lzdGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCmRpZmYgLS1naXQgYS9ib2FyZC9SUFhDbGFzc2ljL2ZsYXNoLmMgYi9ib2FyZC9SUFhDbGFzc2ljL2ZsYXNoLmMKaW5kZXggMmUwYjhmOS4uZjA3ZDk2MCAxMDA2NDQKLS0tIGEvYm9hcmQvUlBYQ2xhc3NpYy9mbGFzaC5jCisrKyBiL2JvYXJkL1JQWENsYXNzaWMvZmxhc2guYwpAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC01MSwyMCArNTEsMjAgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTMxMyw3ICszMTMsNyBAQAogCWxhc3QgID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9sb25nICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4ODA4MDgwODApICE9IDB4ODA4MDgwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQzNiw3ICs0MzYsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDgwODA4MDgwKSAhPSAoZGF0YSAmIDB4ODA4MDgwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9SUFhsaXRlL1JQWGxpdGUuYyBiL2JvYXJkL1JQWGxpdGUvUlBYbGl0ZS5jCmluZGV4IGJjYTMxZTQuLmRjYTUzYTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL1JQWGxpdGUvUlBYbGl0ZS5jCisrKyBiL2JvYXJkL1JQWGxpdGUvUlBYbGl0ZS5jCkBAIC0xMDQsNyArMTA0LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemUxMDsKIApAQCAtMTEyLDE1ICsxMTIsMTUgQEAKIAkJICAgc2l6ZW9mIChzZHJhbV90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAogCS8qIFJlZnJlc2ggY2xvY2sgcHJlc2NhbGFyICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDAwMDsKIAogCS8qIE1hcCBjb250cm9sbGVyIGJhbmtzIDEgdG8gdGhlIFNEUkFNIGJhbmsgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfMTBDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl8xMENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xMzcsNyArMTM3LDcgQEAKIAkgKiB0cnkgMTAgY29sdW1uIG1vZGUKIAkgKi8KIAotCXNpemUxMCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfMTBDT0wsIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemUxMCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzEwQ09MLCBTRFJBTV9CQVNFX1BSRUxJTSwKIAkJCSAgICBTRFJBTV9NQVhfU0laRSk7CiAKIAlyZXR1cm4gKHNpemUxMCk7CkBAIC0xNTYsNyArMTU2LDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKZGlmZiAtLWdpdCBhL2JvYXJkL1JQWGxpdGUvZmxhc2guYyBiL2JvYXJkL1JQWGxpdGUvZmxhc2guYwppbmRleCA2NTlkNjBhLi43ODhmY2RmIDEwMDY0NAotLS0gYS9ib2FyZC9SUFhsaXRlL2ZsYXNoLmMKKysrIGIvYm9hcmQvUlBYbGl0ZS9mbGFzaC5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTUyLDEzICs1MiwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0vKgl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsgKi8KKy8qCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsgKi8KIC8qCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsgKi8KIAl1bnNpZ25lZCBsb25nIHNpemVfYjAgOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC03MywxOSArNzMsMTkgQEAKICovCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwogLyolJSUKLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAlJSUqLwogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7Ci0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzkwLDcgKzM5MCw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X2xvbmcgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHg4MDgwODA4MCkgIT0gMHg4MDgwODA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNTEzLDcgKzUxMyw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL1JQWGxpdGVfZHcvUlBYbGl0ZV9kdy5jIGIvYm9hcmQvUlBYbGl0ZV9kdy9SUFhsaXRlX2R3LmMKaW5kZXggZDZmYWJmMC4uMzY0YTMxNiAxMDA2NDQKLS0tIGEvYm9hcmQvUlBYbGl0ZV9kdy9SUFhsaXRlX2R3LmMKKysrIGIvYm9hcmQvUlBYbGl0ZV9kdy9SUFhsaXRlX2R3LmMKQEAgLTEwNiwyMiArMTA2LDIyIEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU5OwogCiAJdXBtY29uZmlnKFVQTUEsICh1aW50ICopc2RyYW1fdGFibGUsIHNpemVvZihzZHJhbV90YWJsZSkvc2l6ZW9mKHVpbnQpKTsKIAogCS8qIFJlZnJlc2ggY2xvY2sgcHJlc2NhbGFyICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSIDsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSIDsKIAogCW1lbWN0bC0+bWVtY19tYXIgID0gMHgwMDAwMDA4ODsKIAogCS8qIE1hcCBjb250cm9sbGVyIGJhbmtzIDEgdG8gdGhlIFNEUkFNIGJhbmsgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOUNPTCAmICh+KE1BTVJfUFRBRSkpOyAvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzlDT0wgJiAofihNQU1SX1BUQUUpKTsgLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAkvKkRpc2FibGUgUGVyaW9kaWMgdGltZXIgQS4gKi8KIAogCXVkZWxheSgyMDApOwpAQCAtMTQyLDEzICsxNDIsMTMgQEAKIAkgICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgICovCiAKLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgU0RSQU1fQkFTRV9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKwlzaXplOSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzlDT0wsIFNEUkFNX0JBU0VfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKIAkvKgogCSAqIEZpbmFsIG1hcHBpbmc6CiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZTkpICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplOSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCiAJdWRlbGF5ICgxMDAwKTsKIApAQCAtMTcxLDcgKzE3MSw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfbWFtciA9IG1hbXJfdmFsdWU7CmRpZmYgLS1naXQgYS9ib2FyZC9SUFhsaXRlX2R3L2ZsYXNoLmMgYi9ib2FyZC9SUFhsaXRlX2R3L2ZsYXNoLmMKaW5kZXggNDFjYjAzNi4uOTE3ODhhZiAxMDA2NDQKLS0tIGEvYm9hcmQvUlBYbGl0ZV9kdy9mbGFzaC5jCisrKyBiL2JvYXJkL1JQWGxpdGVfZHcvZmxhc2guYwpAQCAtNDksNyArNDksNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zICAgdnVfbG9uZyA6IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgSU4gaW5jbHVkZS9jb21tb24uaApAQCAtNjQsMjIgKzY0LDIyIEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBJZiBNb25pdG9yIGlzIGluIHRoZSBjb3BlIG9mIEZMQVNILHRoZW4KIAkgKiBwcm90ZWN0IHRoaXMgYXJlYSBieSBkZWZhdWx0IGluIGNhc2UgZm9yCiAJICogb3RoZXIgb2NjdXBhdGlvbi4gW1NBTV0gKi8KIAogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK0NGR19NT05JVE9SX0xFTi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwpAQCAtMzYwLDcgKzM2MCw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X2xvbmcgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHg4MDgwODA4MCkgIT0gMHg4MDgwODA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNDgyLDcgKzQ4Miw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL1JSdmlzaW9uL1JSdmlzaW9uLmMgYi9ib2FyZC9SUnZpc2lvbi9SUnZpc2lvbi5jCmluZGV4IGMwYjc3MmQuLjlkMDE2YzUgMTAwNjQ0Ci0tLSBhL2JvYXJkL1JSdmlzaW9uL1JSdmlzaW9uLmMKKysrIGIvYm9hcmQvUlJ2aXNpb24vUlJ2aXNpb24uYwpAQCAtMTEyLDcgKzExMiw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHJlZzsKIAlsb25nIGludCBzaXplOCwgc2l6ZTk7CkBAIC0xMjYsMTcgKzEyNiwxNyBAQAogCSAqIHdpdGggdHdvIFNEUkFNIGJhbmtzIG9yIGZvdXIgY3ljbGVzIGV2ZXJ5IDMxLjIgdXMgd2l0aCBvbmUKIAkgKiBiYW5rLiBJdCB3aWxsIGJlIGFkanVzdGVkIGFmdGVyIG1lbW9yeSBzaXppbmcuCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS184SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS184SzsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDEgdGhlIFNEUkFNIGJhbmsgMiBhdCBwaHlzaWNhbCBhZGRyZXNzIDAuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQAogCSAqCiAJICogdHJ5IDggY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzhDT0wsCiAJCQkgICBTRFJBTV9CQVNFMl9QUkVMSU0sCiAJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKQEAgLTE2NSw3ICsxNjUsNyBAQAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwKKwlzaXplOSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzlDT0wsCiAJCQkgICBTRFJBTV9CQVNFMl9QUkVMSU0sCiAJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKQEAgLTE3NCw3ICsxNzQsNyBAQAogLyoJCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDkgY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAJfSBlbHNlIHsJCQkvKiBiYWNrIHRvIDggY29sdW1ucyAgICAgICAgICAgICovCiAJCXNpemUgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwogCQl1ZGVsYXkgKDUwMCk7CiAvKgkJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9CkBAIC0xODcsMTUgKzE4NywxNSBAQAogCSAqLwogCWlmIChzaXplIDwgMHgwMjAwMDAwMCkgewogCQkvKiByZWR1Y2UgdG8gMTUuNiB1cyAoNjIuNCB1cyAvIHF1YWQpICovCi0JCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzRLOwogCQl1ZGVsYXkgKDEwMDApOwogCX0KIAogCS8qCiAJICogRmluYWwgbWFwcGluZwogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAKIAkvKgogCSAqIE5vIGJhbmsgMQpAQCAtMjA2LDcgKzIwNiw3IEBACiAKIAkvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwogCXJlZyA9IG1lbWN0bC0+bWVtY19tcHRwcjsKLQlyZWcgPj49IDE7CQkJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwlyZWcgPj49IDE7CQkJLyogcmVkdWNlIHRvIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLIC8gXzRLICovCiAJbWVtY3RsLT5tZW1jX21wdHByID0gcmVnOwogCiAJdWRlbGF5ICgxMDAwMCk7CkBAIC0yMjcsNyArMjI3LDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKZGlmZiAtLWdpdCBhL2JvYXJkL1JSdmlzaW9uL2ZsYXNoLmMgYi9ib2FyZC9SUnZpc2lvbi9mbGFzaC5jCmluZGV4IDY2MDhiY2EuLmZkYmU5MjggMTAwNjQ0Ci0tLSBhL2JvYXJkL1JSdmlzaW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvUlJ2aXNpb24vZmxhc2guYwpAQCAtMjcsMTAgKzI3LDEwIEBACiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKICNpZm5kZWYJQ09ORklHX0VOVl9BRERSCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICNlbmRpZgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC00MywxMyArNDMsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC02MywxNyArNjMsMTcgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiBPUl9BTV9NU0spOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgT1JfQU1fTVNLKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzg4LDcgKzM4OCw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X2xvbmcqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwdXRzICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNTExLDcgKzUxMSw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4MDA4MDAwODApICE9IChkYXRhICYgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2EzMDAwL2EzMDAwLmMgYi9ib2FyZC9hMzAwMC9hMzAwMC5jCmluZGV4IDFiYTIxZWQuLmNlMmNmMjggMTAwNjQ0Ci0tLSBhL2JvYXJkL2EzMDAwL2EzMDAwLmMKKysrIGIvYm9hcmQvYTMwMDAvYTMwMDAuYwpAQCAtNDYsNyArNDYsNyBAQAogCWxvbmcgbWVhcjE7CiAJbG9uZyBlbWVhcjE7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpOwogCiAJbmV3X2JhbmswX2VuZCA9IHNpemUgLSAxOwogCW1lYXIxID0gbXBjODI0eF9tcGMxMDdfZ2V0cmVnKE1FQVIxKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2EzMDAwL2ZsYXNoLmMgYi9ib2FyZC9hMzAwMC9mbGFzaC5jCmluZGV4IGFkZDJhMjguLmI2NzFjZTcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2EzMDAwL2ZsYXNoLmMKKysrIGIvYm9hcmQvYTMwMDAvZmxhc2guYwpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFICBDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNDgsNyArNDgsNyBAQAogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTY1LDEzICs2NSwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBmbGFzaF9iYW5rc1tDRkdfTUFYX0ZMQVNIX0JBTktTXSA9IENGR19GTEFTSF9CQU5LUzsKLQl1bnNpZ25lZCBsb25nIHNpemUsIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwl1bnNpZ25lZCBsb25nIGZsYXNoX2JhbmtzW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IENPTkZJR19TWVNfRkxBU0hfQkFOS1M7CisJdW5zaWduZWQgbG9uZyBzaXplLCBzaXplX2JbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKQorCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIApAQCAtOTksMTIgKzk5LDEyIEBACiAJfQogCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0JREVCVUdGKCJwcm90ZWN0IG1vbml0b3IgJXggQCAleFxuIiwgQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfTEVOKTsKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKwlERUJVR0YoInByb3RlY3QgbW9uaXRvciAleCBAICV4XG4iLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0xFTik7CiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0xMTksNyArMTE5LDcgQEAKIAogCXNpemUgPSAwOwogCURFQlVHRigiIyMgRmluYWwgRmxhc2ggYmFuayBzaXplczogIik7Ci0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKQorCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJewogCQlERUJVR0YoIiUwOGx4ICIsIHNpemVfYltpXSk7CiAJCXNpemUgKz0gc2l6ZV9iW2ldOwpAQCAtMjg1LDEwICsyODUsMTAgQEAKIAogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IEJTKDB4RkYpOwkJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTM1Niw3ICszNTYsNyBAQAogCQkJdWRlbGF5ICgxMDAwKTsKIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gQlMoKmFkZHIpKSAmIEJZVEVNRSgweDAwODAwMDgwKSkgIT0gQllURU1FKDB4MDA4MDAwODApKSB7Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IEJTKDB4QjApOyAvKiBzdXNwZW5kIGVyYXNlCSAgKi8KIAkJCQkJKmFkZHIgPSBCUygweEZGKTsgLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00MzksNyArNDM5LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKChzdGF0dXMgPSBCUygqYWRkcikpICYgQllURU1FKDB4MDA4MDAwODApKSAhPSBCWVRFTUUoMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSBCUygweEZGKTsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAxOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9hY3R1eDEvYWN0dXgxLmMgYi9ib2FyZC9hY3R1eDEvYWN0dXgxLmMKaW5kZXggZDFkN2Y2Yy4uMzk5YmUyMyAxMDA2NDQKLS0tIGEvYm9hcmQvYWN0dXgxL2FjdHV4MS5jCisrKyBiL2JvYXJkL2FjdHV4MS9hY3R1eDEuYwpAQCAtNDksMTYgKzQ5LDE2IEBACiAJLyogYWRyZXNzIG9mIGJvb3QgcGFyYW1ldGVycyAqLwogCWdkLT5iZC0+YmlfYm9vdF9wYXJhbXMgPSAweDAwMDAwMTAwOwogCi0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0lPUlNUKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19JT1JTVCk7CiAKIAkvKiBTZXR1cCBHUElPJ3MgZm9yIFBDSSBJTlRBICovCi0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fUENJMV9JTlRBKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ0ZHX0dQSU9fUENJMV9JTlRBKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFIChDT05GSUdfU1lTX0dQSU9fUENJMV9JTlRBKTsKKwlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ09ORklHX1NZU19HUElPX1BDSTFfSU5UQSk7CiAKIAkvKiBTZXR1cCBHUElPJ3MgZm9yIDMzTUh6IGNsb2NrIG91dHB1dCAqLwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fUENJX0NMSyk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19FWFRCVVNfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLKTsKIAkqSVhQNDI1X0dQSU9fR1BDTEtSID0gMHgwMTEwMDFGRjsKIAogCS8qIENTNTogRGVidWcgcG9ydCAqLwpAQCAtNjksNyArNjksNyBAQAogCSpJWFA0MjVfRVhQX0NTNyA9IDB4ODA5MDAwMDM7CiAKIAl1ZGVsYXkgKDUzMyk7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19JT1JTVCk7CisJR1BJT19PVVRQVVRfU0VUIChDT05GSUdfU1lTX0dQSU9fSU9SU1QpOwogCiAJQUNUVVgxX0xFRDEgKDIpOwogCUFDVFVYMV9MRUQyICgyKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FjdHV4MS9hY3R1eDFfaHcuaCBiL2JvYXJkL2FjdHV4MS9hY3R1eDFfaHcuaAppbmRleCBiYjNiN2Y5Li5mZTQ1NGM1IDEwMDY0NAotLS0gYS9ib2FyZC9hY3R1eDEvYWN0dXgxX2h3LmgKKysrIGIvYm9hcmQvYWN0dXgxL2FjdHV4MV9ody5oCkBAIC00MiwxNiArNDIsMTYgQEAKICNkZWZpbmUgQUNUVVgxX0JPQVJEUkVMCShyZWFkYihJWFA0MjVfRVhQX0JVU19DUzZfQkFTRV9QSFlTKSAmIDB4MEYpCiAKIC8qIEdQSU8gc2V0dGluZ3MgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fUENJMV9JTlRBCQkyCi0jZGVmaW5lIENGR19HUElPX1BDSTJfSU5UQQkJMwotI2RlZmluZSBDRkdfR1BJT19JMkNfU0RBCQk0Ci0jZGVmaW5lIENGR19HUElPX0kyQ19TQ0wJCTUKLSNkZWZpbmUgQ0ZHX0dQSU9fREJHSlVNUEVSCQk5Ci0jZGVmaW5lIENGR19HUElPX0JVVFRPTjEJCTEwCi0jZGVmaW5lIENGR19HUElPX0RCR1NFTlNFCQkxMQotI2RlZmluZSBDRkdfR1BJT19EVFIJCQkxMgotI2RlZmluZSBDRkdfR1BJT19JT1JTVAkJCTEzCS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19QQ0lfQ0xLCQkxNAkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fRVhUQlVTX0NMSwkJMTUJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0kxX0lOVEEJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSTJfSU5UQQkJMworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSTJDX1NEQQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSTJDX1NDTAkJNQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fREJHSlVNUEVSCQk5CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19CVVRUT04xCQkxMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fREJHU0VOU0UJCTExCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EVFIJCQkxMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSU9SU1QJCQkxMwkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSV9DTEsJCTE0CS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRVhUQlVTX0NMSwkJMTUJLyogT3V0ICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYWN0dXgyL2FjdHV4Mi5jIGIvYm9hcmQvYWN0dXgyL2FjdHV4Mi5jCmluZGV4IDk5ZGFlZjYuLmQ2YWFhZDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FjdHV4Mi9hY3R1eDIuYworKysgYi9ib2FyZC9hY3R1eDIvYWN0dXgyLmMKQEAgLTUwLDI0ICs1MCwyNCBAQAogCS8qIGFkcmVzcyBvZiBib290IHBhcmFtZXRlcnMgKi8KIAlnZC0+YmQtPmJpX2Jvb3RfcGFyYW1zID0gMHgwMDAwMDEwMDsKIAotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fSU9SU1QpOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fRVRIUlNUKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0RTUik7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19EQ0QpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19FVEhSU1QpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0RTUik7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fRENEKTsKIAotCUdQSU9fT1VUUFVUX0NMRUFSIChDRkdfR1BJT19JT1JTVCk7Ci0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0VUSFJTVCk7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19JT1JTVCk7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19FVEhSU1QpOwogCi0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0RTUik7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19EQ0QpOworCUdQSU9fT1VUUFVUX0NMRUFSIChDT05GSUdfU1lTX0dQSU9fRFNSKTsKKwlHUElPX09VVFBVVF9TRVQgKENPTkZJR19TWVNfR1BJT19EQ0QpOwogCiAJLyogU2V0dXAgR1BJTydzIGZvciBJbnRlcnJ1cHQgaW5wdXRzICovCi0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fREJHSU5UKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19FVEhJTlQpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19EQkdJTlQpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19FVEhJTlQpOwogCiAJLyogU2V0dXAgR1BJTydzIGZvciAzM01IeiBjbG9jayBvdXRwdXQgKi8KLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX1BDSV9DTEspOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fRVhUQlVTX0NMSyk7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fUENJX0NMSyk7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fRVhUQlVTX0NMSyk7CiAJKklYUDQyNV9HUElPX0dQQ0xLUiA9IDB4MDExMDAxRkY7CiAKIAkvKiBDUzE6IElQQUMtWCAqLwpAQCAtODAsOCArODAsOCBAQAogCSpJWFA0MjVfRVhQX0NTNyA9IDB4ODA5MDAwMDM7CiAKIAl1ZGVsYXkgKDUzMyk7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19JT1JTVCk7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19FVEhSU1QpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9TRVQgKENPTkZJR19TWVNfR1BJT19FVEhSU1QpOwogCiAJQUNUVVgyX0xFRDEgKDEpOwogCUFDVFVYMl9MRUQyICgwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FjdHV4Mi9hY3R1eDJfaHcuaCBiL2JvYXJkL2FjdHV4Mi9hY3R1eDJfaHcuaAppbmRleCA4ZmZiODJhLi4wZjVlYmNiIDEwMDY0NAotLS0gYS9ib2FyZC9hY3R1eDIvYWN0dXgyX2h3LmgKKysrIGIvYm9hcmQvYWN0dXgyL2FjdHV4Ml9ody5oCkBAIC0zOSwyMSArMzksMjEgQEAKIC8qCiAgKiBHUElPIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fREJHSU5UCQkJMAotI2RlZmluZSBDRkdfR1BJT19FVEhJTlQJCQkxCi0jZGVmaW5lIENGR19HUElPX0VUSFJTVAkJCTIJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX0xFRDVfR04JCTMJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX1VOVVNFRDQJCTQKLSNkZWZpbmUgQ0ZHX0dQSU9fVU5VU0VENQkJNQotI2RlZmluZSBDRkdfR1BJT19EU1IJCQk2CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19EQ0QJCQk3CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19JUEFDX0lOVAkJOAotI2RlZmluZSBDRkdfR1BJT19EQkdKVU1QRVIJCTkKLSNkZWZpbmUgQ0ZHX0dQSU9fQlVUVE9OMQkJMTAKLSNkZWZpbmUgQ0ZHX0dQSU9fREJHU0VOU0UJCTExCi0jZGVmaW5lIENGR19HUElPX0RUUgkJCTEyCi0jZGVmaW5lIENGR19HUElPX0lPUlNUCQkJMTMJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX1BDSV9DTEsJCTE0CS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19FWFRCVVNfQ0xLCQkxNQkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RCR0lOVAkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VUSElOVAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VUSFJTVAkJCTIJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MRUQ1X0dOCQkzCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fVU5VU0VENAkJNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fVU5VU0VENQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRFNSCQkJNgkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RDRAkJCTcJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JUEFDX0lOVAkJOAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fREJHSlVNUEVSCQk5CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19CVVRUT04xCQkxMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fREJHU0VOU0UJCTExCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EVFIJCQkxMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSU9SU1QJCQkxMwkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSV9DTEsJCTE0CS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRVhUQlVTX0NMSwkJMTUJLyogT3V0ICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYWN0dXgzL2FjdHV4My5jIGIvYm9hcmQvYWN0dXgzL2FjdHV4My5jCmluZGV4IDgxMmJjMmIuLjYzYmYzNjUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FjdHV4My9hY3R1eDMuYworKysgYi9ib2FyZC9hY3R1eDMvYWN0dXgzLmMKQEAgLTUwLDM1ICs1MCwzNSBAQAogCS8qIGFkcmVzcyBvZiBib290IHBhcmFtZXRlcnMgKi8KIAlnZC0+YmQtPmJpX2Jvb3RfcGFyYW1zID0gMHgwMDAwMDEwMDsKIAotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fSU9SU1QpOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fRVRIUlNUKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0RTUik7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19EQ0QpOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fTEVENV9HTik7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19MRUQ2X1JUKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0xFRDZfR04pOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19FVEhSU1QpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0RTUik7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fRENEKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19MRUQ1X0dOKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19MRUQ2X1JUKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19MRUQ2X0dOKTsKIAotCUdQSU9fT1VUUFVUX0NMRUFSIChDRkdfR1BJT19JT1JTVCk7Ci0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0VUSFJTVCk7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19JT1JTVCk7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19FVEhSU1QpOwogCi0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0RTUik7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19EQ0QpOworCUdQSU9fT1VUUFVUX0NMRUFSIChDT05GSUdfU1lTX0dQSU9fRFNSKTsKKwlHUElPX09VVFBVVF9TRVQgKENPTkZJR19TWVNfR1BJT19EQ0QpOwogCi0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0xFRDVfR04pOwotCUdQSU9fT1VUUFVUX0NMRUFSIChDRkdfR1BJT19MRUQ2X1JUKTsKLQlHUElPX09VVFBVVF9DTEVBUiAoQ0ZHX0dQSU9fTEVENl9HTik7CisJR1BJT19PVVRQVVRfQ0xFQVIgKENPTkZJR19TWVNfR1BJT19MRUQ1X0dOKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0xFRDZfUlQpOworCUdQSU9fT1VUUFVUX0NMRUFSIChDT05GSUdfU1lTX0dQSU9fTEVENl9HTik7CiAKIAkvKgogCSAqIFNldHVwIEdQSU8ncyBmb3IgSW50ZXJydXB0IGlucHV0cwogCSAqLwotCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENGR19HUElPX0RCR0lOVCk7Ci0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fRVRISU5UKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFIChDT05GSUdfU1lTX0dQSU9fREJHSU5UKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFIChDT05GSUdfU1lTX0dQSU9fRVRISU5UKTsKIAogCS8qCiAJICogU2V0dXAgR1BJTydzIGZvciAzM01IeiBjbG9jayBvdXRwdXQKIAkgKi8KLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX1BDSV9DTEspOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fRVhUQlVTX0NMSyk7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fUENJX0NMSyk7CisJR1BJT19PVVRQVVRfRU5BQkxFIChDT05GSUdfU1lTX0dQSU9fRVhUQlVTX0NMSyk7CiAJKklYUDQyNV9HUElPX0dQQ0xLUiA9IDB4MDExMDAxRkY7CiAKIAkvKiBDUzE6IElQQUMtWCAqLwpAQCAtOTEsOCArOTEsOCBAQAogCSpJWFA0MjVfRVhQX0NTNyA9IDB4ODA5MDAwMDM7CiAKIAl1ZGVsYXkgKDUzMyk7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19JT1JTVCk7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19FVEhSU1QpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9TRVQgKENPTkZJR19TWVNfR1BJT19FVEhSU1QpOwogCiAJQUNUVVgzX0xFRDFfUlQgKDEpOwogCUFDVFVYM19MRUQxX0dOICgwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FjdHV4My9hY3R1eDNfaHcuaCBiL2JvYXJkL2FjdHV4My9hY3R1eDNfaHcuaAppbmRleCA5YjdjYmNlLi5jM2MwY2ZjIDEwMDY0NAotLS0gYS9ib2FyZC9hY3R1eDMvYWN0dXgzX2h3LmgKKysrIGIvYm9hcmQvYWN0dXgzL2FjdHV4M19ody5oCkBAIC00MSwyMCArNDEsMjAgQEAKICNkZWZpbmUgQUNUVVgzX09QVElPTgkJKHJlYWRiKElYUDQyNV9FWFBfQlVTX0NTNl9CQVNFX1BIWVMpICYgMHhGMCkKIAogLyogR1BJTyBzZXR0aW5ncyAqLwotI2RlZmluZSBDRkdfR1BJT19EQkdJTlQJCQkwCi0jZGVmaW5lIENGR19HUElPX0VUSElOVAkJCTEKLSNkZWZpbmUgQ0ZHX0dQSU9fRVRIUlNUCQkJMgkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fTEVENV9HTgkJMwkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fTEVENl9SVAkJNAkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fTEVENl9HTgkJNQkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fRFNSCQkJNgkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fRENECQkJNwkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fREJHSlVNUEVSCQk5Ci0jZGVmaW5lIENGR19HUElPX0JVVFRPTjEJCTEwCi0jZGVmaW5lIENGR19HUElPX0RCR1NFTlNFCQkxMQotI2RlZmluZSBDRkdfR1BJT19EVFIJCQkxMgotI2RlZmluZSBDRkdfR1BJT19JT1JTVAkJCTEzCS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19QQ0lfQ0xLCQkxNAkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fRVhUQlVTX0NMSwkJMTUJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQkdJTlQJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FVEhJTlQJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FVEhSU1QJCQkyCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTEVENV9HTgkJMwkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0xFRDZfUlQJCTQJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MRUQ2X0dOCQk1CS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRFNSCQkJNgkvKiBPdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RDRAkJCTcJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQkdKVU1QRVIJCTkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JVVFRPTjEJCTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQkdTRU5TRQkJMTEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RUUgkJCTEyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JT1JTVAkJCTEzCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0NMSwkJMTQJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLCQkxNQkvKiBPdXQgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hY3R1eDQvYWN0dXg0LmMgYi9ib2FyZC9hY3R1eDQvYWN0dXg0LmMKaW5kZXggODQwMzdmYS4uZjM3M2I1OCAxMDA2NDQKLS0tIGEvYm9hcmQvYWN0dXg0L2FjdHV4NC5jCisrKyBiL2JvYXJkL2FjdHV4NC9hY3R1eDQuYwpAQCAtNDksNTMgKzQ5LDUzIEBACiAJLyogYWRyZXNzIG9mIGJvb3QgcGFyYW1ldGVycyAqLwogCWdkLT5iZC0+YmlfYm9vdF9wYXJhbXMgPSAweDAwMDAwMTAwOwogCi0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX25QV1JPTik7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19uUFdST04pOworCUdQSU9fT1VUUFVUX0NMRUFSIChDT05GSUdfU1lTX0dQSU9fblBXUk9OKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19uUFdST04pOwogCi0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0lPUlNUKTsKLQlHUElPX09VVFBVVF9FTkFCTEUgKENGR19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19JT1JTVCk7CiAKIAkvKiBsZWQgbm90IHBvcHVsYXRlZCBvbiBib2FyZCovCi0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19MRUQzKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0xFRDMpOworCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ09ORklHX1NZU19HUElPX0xFRDMpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0xFRDMpOwogCiAJLyogbWlkZGxlIExFRCAqLwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fTEVEMik7Ci0JR1BJT19PVVRQVVRfU0VUIChDRkdfR1BJT19MRUQyKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19MRUQyKTsKKwlHUElPX09VVFBVVF9TRVQgKENPTkZJR19TWVNfR1BJT19MRUQyKTsKIAogCS8qIHJpZ2h0IExFRCAqLwogCS8qIHdlYWsgcHVsbGRvd24gPSBMRUQgd2VhayBvbiAqLwotCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENGR19HUElPX0xFRDEpOwotCUdQSU9fT1VUUFVUX1NFVCAoQ0ZHX0dQSU9fTEVEMSk7CisJR1BJT19PVVRQVVRfRElTQUJMRSAoQ09ORklHX1NZU19HUElPX0xFRDEpOworCUdQSU9fT1VUUFVUX1NFVCAoQ09ORklHX1NZU19HUElPX0xFRDEpOwogCiAJLyogU2V0dXAgR1BJTydzIGZvciBJbnRlcnJ1cHQgaW5wdXRzICovCi0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fVVNCSU5UQSk7Ci0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fVVNCSU5UQik7Ci0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fVVNCSU5UQyk7Ci0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fUlRDSU5UKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFIChDRkdfR1BJT19QQ0lfSU5UQSk7Ci0JR1BJT19PVVRQVVRfRElTQUJMRSAoQ0ZHX0dQSU9fUENJX0lOVEIpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19VU0JJTlRBKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFIChDT05GSUdfU1lTX0dQSU9fVVNCSU5UQik7CisJR1BJT19PVVRQVVRfRElTQUJMRSAoQ09ORklHX1NZU19HUElPX1VTQklOVEMpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19SVENJTlQpOworCUdQSU9fT1VUUFVUX0RJU0FCTEUgKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQSk7CisJR1BJT19PVVRQVVRfRElTQUJMRSAoQ09ORklHX1NZU19HUElPX1BDSV9JTlRCKTsKIAotCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDRkdfR1BJT19VU0JJTlRBKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ0ZHX0dQSU9fVVNCSU5UQik7Ci0JR1BJT19JTlRfQUNUX0xPV19TRVQgKENGR19HUElPX1VTQklOVEMpOwotCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDRkdfR1BJT19SVENJTlQpOwotCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDRkdfR1BJT19QQ0lfSU5UQSk7Ci0JR1BJT19JTlRfQUNUX0xPV19TRVQgKENGR19HUElPX1BDSV9JTlRCKTsKKwlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ09ORklHX1NZU19HUElPX1VTQklOVEEpOworCUdQSU9fSU5UX0FDVF9MT1dfU0VUIChDT05GSUdfU1lTX0dQSU9fVVNCSU5UQik7CisJR1BJT19JTlRfQUNUX0xPV19TRVQgKENPTkZJR19TWVNfR1BJT19VU0JJTlRDKTsKKwlHUElPX0lOVF9BQ1RfTE9XX1NFVCAoQ09ORklHX1NZU19HUElPX1JUQ0lOVCk7CisJR1BJT19JTlRfQUNUX0xPV19TRVQgKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQSk7CisJR1BJT19JTlRfQUNUX0xPV19TRVQgKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQik7CiAKIAkvKiBTZXR1cCBHUElPJ3MgZm9yIDMzTUh6IGNsb2NrIG91dHB1dCAqLwogCSpJWFA0MjVfR1BJT19HUENMS1IgPSAweDAxMTAwMUZGOwotCUdQSU9fT1VUUFVUX0VOQUJMRSAoQ0ZHX0dQSU9fRVhUQlVTX0NMSyk7Ci0JR1BJT19PVVRQVVRfRU5BQkxFIChDRkdfR1BJT19QQ0lfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUgKENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLKTsKIAogCSpJWFA0MjVfRVhQX0NTMSA9IDB4YmQxMTNjNDI7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9TRVQgKENPTkZJR19TWVNfR1BJT19JT1JTVCk7CiAJdWRlbGF5ICgxMDAwMCk7Ci0JR1BJT19PVVRQVVRfQ0xFQVIgKENGR19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9DTEVBUiAoQ09ORklHX1NZU19HUElPX0lPUlNUKTsKIAl1ZGVsYXkgKDEwMDAwKTsKLQlHUElPX09VVFBVVF9TRVQgKENGR19HUElPX0lPUlNUKTsKKwlHUElPX09VVFBVVF9TRVQgKENPTkZJR19TWVNfR1BJT19JT1JTVCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2FjdHV4NC9hY3R1eDRfaHcuaCBiL2JvYXJkL2FjdHV4NC9hY3R1eDRfaHcuaAppbmRleCA4YjNlY2YzLi5hZmQxYzA2IDEwMDY0NAotLS0gYS9ib2FyZC9hY3R1eDQvYWN0dXg0X2h3LmgKKysrIGIvYm9hcmQvYWN0dXg0L2FjdHV4NF9ody5oCkBAIC0yOSwyMSArMjksMjEgQEAKIC8qCiAgKiBHUElPIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fVVNCSU5UQQkJMAotI2RlZmluZSBDRkdfR1BJT19VU0JJTlRCCQkxCi0jZGVmaW5lIENGR19HUElPX1VTQklOVEMJCTIKLSNkZWZpbmUgQ0ZHX0dQSU9fblBXUk9OCQkJMwkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fSTJDX1NDTAkJNAotI2RlZmluZSBDRkdfR1BJT19JMkNfU0RBCQk1Ci0jZGVmaW5lIENGR19HUElPX1BDSV9JTlRCCQk2Ci0jZGVmaW5lIENGR19HUElPX0JVVFRPTjEJCTcKLSNkZWZpbmUgQ0ZHX0dQSU9fTEVEMQkJCTgJLyogT3V0ICovCi0jZGVmaW5lIENGR19HUElPX1JUQ0lOVAkJCTkKLSNkZWZpbmUgQ0ZHX0dQSU9fTEVEMgkJCTEwCS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19QQ0lfSU5UQQkJMTEKLSNkZWZpbmUgQ0ZHX0dQSU9fSU9SU1QJCQkxMgkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fTEVEMwkJCTEzCS8qIE91dCAqLwotI2RlZmluZSBDRkdfR1BJT19QQ0lfQ0xLCQkxNAkvKiBPdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fRVhUQlVTX0NMSwkJMTUJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19VU0JJTlRBCQkwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19VU0JJTlRCCQkxCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19VU0JJTlRDCQkyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19uUFdST04JCQkzCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSTJDX1NDTAkJNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSTJDX1NEQQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0lOVEIJCTYKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JVVFRPTjEJCTcKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0xFRDEJCQk4CS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUlRDSU5UCQkJOQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTEVEMgkJCTEwCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0lOVEEJCTExCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JT1JTVAkJCTEyCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fTEVEMwkJCTEzCS8qIE91dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0NMSwkJMTQJLyogT3V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FWFRCVVNfQ0xLCQkxNQkvKiBPdXQgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hZGRlci9hZGRlci5jIGIvYm9hcmQvYWRkZXIvYWRkZXIuYwppbmRleCBlOGE1NzM3Li44Nzc5MWRlIDEwMDY0NAotLS0gYS9ib2FyZC9hZGRlci9hZGRlci5jCisrKyBiL2JvYXJkL2FkZGVyL2FkZGVyLmMKQEAgLTY4LDcgKzY4LDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAlsb25nIGludCBtc2l6ZTsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJdXBtY29uZmlnKFVQTUEsIHNkcmFtX3RhYmxlLCBzaXplb2Yoc2RyYW1fdGFibGUpIC8gc2l6ZW9mKHVpbnQpKTsKQEAgLTc2LDcgKzc2LDcgQEAKIAkvKiBDb25maWd1cmUgU0RSQU0gcmVmcmVzaCAqLwogCW1lbWN0bC0+bWVtY19tcHRwciA9IE1QVFBSX1BUUF9ESVYzMjsgLyogQlJHQ0xLLzMyICovCiAKLQltZW1jdGwtPm1lbWNfbWFtciA9ICg5NCA8PCAyNCkgfCBDRkdfTUFNUjsgLyogTm8gcmVmcmVzaCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gKDk0IDw8IDI0KSB8IENPTkZJR19TWVNfTUFNUjsgLyogTm8gcmVmcmVzaCAqLwogCXVkZWxheSgyMDApOwogCiAJLyogUnVuIHByZWNoYXJnZSBmcm9tIGxvY2F0aW9uIDB4MTUgKi8KQEAgLTk0LDEwICs5NCwxMCBAQAogCXVkZWxheSgyMDApOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgfD0gIE1BTVJfUFRBRTsgLyogRW5hYmxlIHJlZnJlc2ggKi8KLQltZW1jdGwtPm1lbWNfb3IxICAgPSB+KENGR19TRFJBTV9NQVhfU0laRSAtIDEpIHwgT1JfQ1NOVF9TQU07Ci0JbWVtY3RsLT5tZW1jX2JyMSAgID0gIENGR19TRFJBTV9CQVNFIHwgQlJfUFNfMzIgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IxICAgPSB+KENPTkZJR19TWVNfU0RSQU1fTUFYX1NJWkUgLSAxKSB8IE9SX0NTTlRfU0FNOworCW1lbWN0bC0+bWVtY19icjEgICA9ICBDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WOwogCi0JbXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19TRFJBTV9NQVhfU0laRSk7CisJbXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX1NEUkFNX01BWF9TSVpFKTsKIAltZW1jdGwtPm1lbWNfb3IxICB8PSB+KG1zaXplIC0gMSk7CiAKIAlyZXR1cm4gbXNpemU7CmRpZmYgLS1naXQgYS9ib2FyZC9hZHM1MTIxL2FkczUxMjEuYyBiL2JvYXJkL2FkczUxMjEvYWRzNTEyMS5jCmluZGV4IGRlYWEyOTIuLjA2MTA5MjggMTAwNjQ0Ci0tLSBhL2JvYXJkL2FkczUxMjEvYWRzNTEyMS5jCisrKyBiL2JvYXJkL2FkczUxMjEvYWRzNTEyMS5jCkBAIC01MywxNiArNTMsMTYgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBscGNhdzsKIAogCS8qCiAJICogSW5pdGlhbGl6ZSBMb2NhbCBXaW5kb3cgZm9yIHRoZSBDUExEIHJlZ2lzdGVycyBhY2Nlc3MgKENTMiBzZWxlY3RzCiAJICogdGhlIENQTEQgY2hpcCkKIAkgKi8KLQlpbS0+c3lzY29uZi5scGNzMmF3ID0gQ1NBV19TVEFSVChDRkdfQ1BMRF9CQVNFKSB8Ci0JCQkgICAgICBDU0FXX1NUT1AoQ0ZHX0NQTERfQkFTRSwgQ0ZHX0NQTERfU0laRSk7Ci0JaW0tPmxwYy5jc19jZmdbMl0gPSBDRkdfQ1MyX0NGRzsKKwlpbS0+c3lzY29uZi5scGNzMmF3ID0gQ1NBV19TVEFSVChDT05GSUdfU1lTX0NQTERfQkFTRSkgfAorCQkJICAgICAgQ1NBV19TVE9QKENPTkZJR19TWVNfQ1BMRF9CQVNFLCBDT05GSUdfU1lTX0NQTERfU0laRSk7CisJaW0tPmxwYy5jc19jZmdbMl0gPSBDT05GSUdfU1lTX0NTMl9DRkc7CiAKIAkvKgogCSAqIEFjY29yZGluZyB0byBNUEM1MTIxZSBSTSwgY29uZmlndXJpbmcgbG9jYWwgYWNjZXNzIHdpbmRvd3Mgc2hvdWxkCkBAIC04MCwyMSArODAsMjEgQEAKIAkgKi8KIAogI2lmZGVmIENPTkZJR19BRFM1MTIxX1JFVjIKLQkqKCh2b2xhdGlsZSB1OCAqKShDRkdfQ1BMRF9CQVNFICsgMHgwOCkpID0gMHhDMTsKKwkqKCh2b2xhdGlsZSB1OCAqKShDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDgpKSA9IDB4QzE7CiAjZWxzZQotCWlmICgqKCh1OCAqKShDRkdfQ1BMRF9CQVNFICsgMHgwOCkpICYgMHgwNCkgewotCQkqKCh2b2xhdGlsZSB1OCAqKShDRkdfQ1BMRF9CQVNFICsgMHgwOCkpID0gMHhDMTsKKwlpZiAoKigodTggKikoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDA4KSkgJiAweDA0KSB7CisJCSooKHZvbGF0aWxlIHU4ICopKENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwOCkpID0gMHhDMTsKIAl9IGVsc2UgewogCQkvKiBydW5uaW5nIGZyb20gQmFja3VwIGZsYXNoICovCi0JCSooKHZvbGF0aWxlIHU4ICopKENGR19DUExEX0JBU0UgKyAweDA4KSkgPSAweDMyOworCQkqKCh2b2xhdGlsZSB1OCAqKShDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDgpKSA9IDB4MzI7CiAJfQogI2VuZGlmCiAJLyoKIAkgKiBDb25maWd1cmUgRmxhc2ggU3BlZWQKIAkgKi8KLQkqKCh2b2xhdGlsZSB1MzIgKikoQ0ZHX0lNTVIgKyBMUENfT0ZGU0VUICsgQ1MwX0NPTkZJRykpID0gQ0ZHX0NTMF9DRkc7CisJKigodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfSU1NUiArIExQQ19PRkZTRVQgKyBDUzBfQ09ORklHKSkgPSBDT05GSUdfU1lTX0NTMF9DRkc7CiAJaWYgKFNWUl9NSlJFViAoaW0tPnN5c2NvbmYuc3ByaWRyKSA+PSAyKSB7Ci0JCSooKHZvbGF0aWxlIHUzMiAqKShDRkdfSU1NUiArIExQQ19PRkZTRVQgKyBDU19BTEVfVElNSU5HX0NPTkZJRykpID0gQ0ZHX0NTX0FMRVRJTUlORzsKKwkJKigodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfSU1NUiArIExQQ19PRkZTRVQgKyBDU19BTEVfVElNSU5HX0NPTkZJRykpID0gQ09ORklHX1NZU19DU19BTEVUSU1JTkc7CiAJfQogCS8qCiAJICogRW5hYmxlIGNsb2NrcwpAQCAtMTIwLDggKzEyMCw4IEBACiAgKi8KIGxvbmcgaW50IGZpeGVkX3NkcmFtICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7Ci0JdTMyIG1zaXplID0gQ0ZHX0REUl9TSVpFICogMTAyNCAqIDEwMjQ7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CisJdTMyIG1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRSAqIDEwMjQgKiAxMDI0OwogCXUzMiBtc2l6ZV9sb2cyID0gX19pbG9nMiAobXNpemUpOwogCXUzMiBpOwogCkBAIC0xMjksNyArMTI5LDcgQEAKIAlpbS0+aW9fY3RybC5yZWdzW0lPQ1RMX01FTS80XSA9IElPQ1RSTF9NVVhfRERSOwogCiAJLyogSW5pdGlhbGl6ZSBERFIgTG9jYWwgV2luZG93ICovCi0JaW0tPnN5c2NvbmYuZGRybGF3LmJhciA9IENGR19ERFJfQkFTRSAmIDB4RkZGRkYwMDA7CisJaW0tPnN5c2NvbmYuZGRybGF3LmJhciA9IENPTkZJR19TWVNfRERSX0JBU0UgJiAweEZGRkZGMDAwOwogCWltLT5zeXNjb25mLmRkcmxhdy5hciA9IG1zaXplX2xvZzIgLSAxOwogCiAJLyoKQEAgLTE0MSw2OCArMTQxLDY4IEBACiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJpc3luYyIpOwogCiAJLyogRW5hYmxlIEREUiAqLwotCWltLT5tZGRyYy5kZHJfc3lzX2NvbmZpZyA9IENGR19NRERSQ19TWVNfQ0ZHX0VOOworCWltLT5tZGRyYy5kZHJfc3lzX2NvbmZpZyA9IENPTkZJR19TWVNfTUREUkNfU1lTX0NGR19FTjsKIAogCS8qIEluaXRpYWxpemUgRERSIFByaW9yaXR5IE1hbmFnZXIgKi8KLQlpbS0+bWRkcmMucHJpb21hbl9jb25maWcxID0gQ0ZHX01ERFJDR1JQX1BNX0NGRzE7Ci0JaW0tPm1kZHJjLnByaW9tYW5fY29uZmlnMiA9IENGR19NRERSQ0dSUF9QTV9DRkcyOwotCWltLT5tZGRyYy5oaXByaW9fY29uZmlnID0gQ0ZHX01ERFJDR1JQX0hJUFJJT19DRkc7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTBfbWFpbl91cHBlciA9IENGR19NRERSQ0dSUF9MVVQwX01VOwotCWltLT5tZGRyYy5sdXRfdGFibGUwX21haW5fbG93ZXIgPSBDRkdfTUREUkNHUlBfTFVUMF9NTDsKLQlpbS0+bWRkcmMubHV0X3RhYmxlMV9tYWluX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDFfTVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTFfbWFpbl9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQxX01MOwotCWltLT5tZGRyYy5sdXRfdGFibGUyX21haW5fdXBwZXIgPSBDRkdfTUREUkNHUlBfTFVUMl9NVTsKLQlpbS0+bWRkcmMubHV0X3RhYmxlMl9tYWluX2xvd2VyID0gQ0ZHX01ERFJDR1JQX0xVVDJfTUw7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTNfbWFpbl91cHBlciA9IENGR19NRERSQ0dSUF9MVVQzX01VOwotCWltLT5tZGRyYy5sdXRfdGFibGUzX21haW5fbG93ZXIgPSBDRkdfTUREUkNHUlBfTFVUM19NTDsKLQlpbS0+bWRkcmMubHV0X3RhYmxlNF9tYWluX3VwcGVyID0gQ0ZHX01ERFJDR1JQX0xVVDRfTVU7Ci0JaW0tPm1kZHJjLmx1dF90YWJsZTRfbWFpbl9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQ0X01MOwotCWltLT5tZGRyYy5sdXRfdGFibGUwX2FsdGVybmF0ZV91cHBlciA9IENGR19NRERSQ0dSUF9MVVQwX0FVOwotCWltLT5tZGRyYy5sdXRfdGFibGUwX2FsdGVybmF0ZV9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQwX0FMOwotCWltLT5tZGRyYy5sdXRfdGFibGUxX2FsdGVybmF0ZV91cHBlciA9IENGR19NRERSQ0dSUF9MVVQxX0FVOwotCWltLT5tZGRyYy5sdXRfdGFibGUxX2FsdGVybmF0ZV9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQxX0FMOwotCWltLT5tZGRyYy5sdXRfdGFibGUyX2FsdGVybmF0ZV91cHBlciA9IENGR19NRERSQ0dSUF9MVVQyX0FVOwotCWltLT5tZGRyYy5sdXRfdGFibGUyX2FsdGVybmF0ZV9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQyX0FMOwotCWltLT5tZGRyYy5sdXRfdGFibGUzX2FsdGVybmF0ZV91cHBlciA9IENGR19NRERSQ0dSUF9MVVQzX0FVOwotCWltLT5tZGRyYy5sdXRfdGFibGUzX2FsdGVybmF0ZV9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQzX0FMOwotCWltLT5tZGRyYy5sdXRfdGFibGU0X2FsdGVybmF0ZV91cHBlciA9IENGR19NRERSQ0dSUF9MVVQ0X0FVOwotCWltLT5tZGRyYy5sdXRfdGFibGU0X2FsdGVybmF0ZV9sb3dlciA9IENGR19NRERSQ0dSUF9MVVQ0X0FMOworCWltLT5tZGRyYy5wcmlvbWFuX2NvbmZpZzEgPSBDT05GSUdfU1lTX01ERFJDR1JQX1BNX0NGRzE7CisJaW0tPm1kZHJjLnByaW9tYW5fY29uZmlnMiA9IENPTkZJR19TWVNfTUREUkNHUlBfUE1fQ0ZHMjsKKwlpbS0+bWRkcmMuaGlwcmlvX2NvbmZpZyA9IENPTkZJR19TWVNfTUREUkNHUlBfSElQUklPX0NGRzsKKwlpbS0+bWRkcmMubHV0X3RhYmxlMF9tYWluX3VwcGVyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQwX01VOworCWltLT5tZGRyYy5sdXRfdGFibGUwX21haW5fbG93ZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDBfTUw7CisJaW0tPm1kZHJjLmx1dF90YWJsZTFfbWFpbl91cHBlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUMV9NVTsKKwlpbS0+bWRkcmMubHV0X3RhYmxlMV9tYWluX2xvd2VyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQxX01MOworCWltLT5tZGRyYy5sdXRfdGFibGUyX21haW5fdXBwZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDJfTVU7CisJaW0tPm1kZHJjLmx1dF90YWJsZTJfbWFpbl9sb3dlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUMl9NTDsKKwlpbS0+bWRkcmMubHV0X3RhYmxlM19tYWluX3VwcGVyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQzX01VOworCWltLT5tZGRyYy5sdXRfdGFibGUzX21haW5fbG93ZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDNfTUw7CisJaW0tPm1kZHJjLmx1dF90YWJsZTRfbWFpbl91cHBlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUNF9NVTsKKwlpbS0+bWRkcmMubHV0X3RhYmxlNF9tYWluX2xvd2VyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQ0X01MOworCWltLT5tZGRyYy5sdXRfdGFibGUwX2FsdGVybmF0ZV91cHBlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUMF9BVTsKKwlpbS0+bWRkcmMubHV0X3RhYmxlMF9hbHRlcm5hdGVfbG93ZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDBfQUw7CisJaW0tPm1kZHJjLmx1dF90YWJsZTFfYWx0ZXJuYXRlX3VwcGVyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQxX0FVOworCWltLT5tZGRyYy5sdXRfdGFibGUxX2FsdGVybmF0ZV9sb3dlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUMV9BTDsKKwlpbS0+bWRkcmMubHV0X3RhYmxlMl9hbHRlcm5hdGVfdXBwZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDJfQVU7CisJaW0tPm1kZHJjLmx1dF90YWJsZTJfYWx0ZXJuYXRlX2xvd2VyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQyX0FMOworCWltLT5tZGRyYy5sdXRfdGFibGUzX2FsdGVybmF0ZV91cHBlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUM19BVTsKKwlpbS0+bWRkcmMubHV0X3RhYmxlM19hbHRlcm5hdGVfbG93ZXIgPSBDT05GSUdfU1lTX01ERFJDR1JQX0xVVDNfQUw7CisJaW0tPm1kZHJjLmx1dF90YWJsZTRfYWx0ZXJuYXRlX3VwcGVyID0gQ09ORklHX1NZU19NRERSQ0dSUF9MVVQ0X0FVOworCWltLT5tZGRyYy5sdXRfdGFibGU0X2FsdGVybmF0ZV9sb3dlciA9IENPTkZJR19TWVNfTUREUkNHUlBfTFVUNF9BTDsKIAogCS8qIEluaXRpYWxpemUgTUREUkMgKi8KLQlpbS0+bWRkcmMuZGRyX3N5c19jb25maWcgPSBDRkdfTUREUkNfU1lTX0NGRzsKLQlpbS0+bWRkcmMuZGRyX3RpbWVfY29uZmlnMCA9IENGR19NRERSQ19USU1FX0NGRzA7Ci0JaW0tPm1kZHJjLmRkcl90aW1lX2NvbmZpZzEgPSBDRkdfTUREUkNfVElNRV9DRkcxOwotCWltLT5tZGRyYy5kZHJfdGltZV9jb25maWcyID0gQ0ZHX01ERFJDX1RJTUVfQ0ZHMjsKKwlpbS0+bWRkcmMuZGRyX3N5c19jb25maWcgPSBDT05GSUdfU1lTX01ERFJDX1NZU19DRkc7CisJaW0tPm1kZHJjLmRkcl90aW1lX2NvbmZpZzAgPSBDT05GSUdfU1lTX01ERFJDX1RJTUVfQ0ZHMDsKKwlpbS0+bWRkcmMuZGRyX3RpbWVfY29uZmlnMSA9IENPTkZJR19TWVNfTUREUkNfVElNRV9DRkcxOworCWltLT5tZGRyYy5kZHJfdGltZV9jb25maWcyID0gQ09ORklHX1NZU19NRERSQ19USU1FX0NGRzI7CiAKIAkvKiBJbml0aWFsaXplIEREUiAqLwogCWZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQotCQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX05PUDsKKwkJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fTk9QOwogCi0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9QQ0hHX0FMTDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX05PUDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX1JGU0g7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9OT1A7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9SRlNIOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fTk9QOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fSU5JVF9ERVZfT1A7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9OT1A7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9FTTI7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9OT1A7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9QQ0hHX0FMTDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX0VNMjsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX0VNMzsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX0VOX0RMTDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX0lOSVRfREVWX09QOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fUENIR19BTEw7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9SRlNIOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fSU5JVF9ERVZfT1A7Ci0JaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ0ZHX01JQ1JPTl9PQ0RfREVGQVVMVDsKLQlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDRkdfTUlDUk9OX1BDSEdfQUxMOwotCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENGR19NSUNST05fTk9QOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX1BDSEdfQUxMOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX05PUDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9SRlNIOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX05PUDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9SRlNIOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX05PUDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9JTklUX0RFVl9PUDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9OT1A7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fRU0yOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX05PUDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9QQ0hHX0FMTDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9FTTI7CisJaW0tPm1kZHJjLmRkcl9jb21tYW5kID0gQ09ORklHX1NZU19NSUNST05fRU0zOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX0VOX0RMTDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9JTklUX0RFVl9PUDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9QQ0hHX0FMTDsKKwlpbS0+bWRkcmMuZGRyX2NvbW1hbmQgPSBDT05GSUdfU1lTX01JQ1JPTl9SRlNIOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX0lOSVRfREVWX09QOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX09DRF9ERUZBVUxUOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX1BDSEdfQUxMOworCWltLT5tZGRyYy5kZHJfY29tbWFuZCA9IENPTkZJR19TWVNfTUlDUk9OX05PUDsKIAogCS8qIFN0YXJ0IE1ERFJDICovCi0JaW0tPm1kZHJjLmRkcl90aW1lX2NvbmZpZzAgPSBDRkdfTUREUkNfVElNRV9DRkcwX1JVTjsKLQlpbS0+bWRkcmMuZGRyX3N5c19jb25maWcgPSBDRkdfTUREUkNfU1lTX0NGR19SVU47CisJaW0tPm1kZHJjLmRkcl90aW1lX2NvbmZpZzAgPSBDT05GSUdfU1lTX01ERFJDX1RJTUVfQ0ZHMF9SVU47CisJaW0tPm1kZHJjLmRkcl9zeXNfY29uZmlnID0gQ09ORklHX1NZU19NRERSQ19TWVNfQ0ZHX1JVTjsKIAogCXJldHVybiBtc2l6ZTsKIH0KQEAgLTI5Miw4ICsyOTIsOCBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLQl1c2hvcnQgYnJkX3JldiA9ICoodnVfc2hvcnQgKikgKENGR19DUExEX0JBU0UgKyAweDAwKTsKLQl1Y2hhciBjcGxkX3JldiA9ICoodnVfY2hhciAqKSAoQ0ZHX0NQTERfQkFTRSArIDB4MDIpOworCXVzaG9ydCBicmRfcmV2ID0gKih2dV9zaG9ydCAqKSAoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDAwKTsKKwl1Y2hhciBjcGxkX3JldiA9ICoodnVfY2hhciAqKSAoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDAyKTsKIAogCXByaW50ZiAoIkJvYXJkOiBBRFM1MTIxIHJldi4gMHglMDR4IChDUExEIHJldi4gMHglMDJ4KVxuIiwKIAkJYnJkX3JldiwgY3BsZF9yZXYpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWRzNTEyMS9hZHM1MTIxX2RpdS5jIGIvYm9hcmQvYWRzNTEyMS9hZHM1MTIxX2RpdS5jCmluZGV4IDI2NjI4ZDMuLjExNDUwYWEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FkczUxMjEvYWRzNTEyMV9kaXUuYworKysgYi9ib2FyZC9hZHM1MTIxL2FkczUxMjFfZGl1LmMKQEAgLTQzLDcgKzQzLDcgQEAKIAogdm9pZCBkaXVfc2V0X3BpeGVsX2Nsb2NrKHVuc2lnbmVkIGludCBwaXhjbG9jaykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjbGs1MTJ4X3QgKmNsayA9ICZpbW1hcC0+Y2xrOwogCXZvbGF0aWxlIHVuc2lnbmVkIGludCAqY2xrZHZkciA9ICZjbGstPnNjZnJbMF07CiAJdW5zaWduZWQgbG9uZyBzcGVlZF9jY2IsIHRlbXAsIHBpeHZhbDsKQEAgLTEwMCw3ICsxMDAsNyBAQAogfQogCiBVX0JPT1RfQ01EKAotCWRpdWZiLCBDRkdfTUFYQVJHUywgMSwgYWRzNTEyMWRpdV9pbml0X3Nob3dfYm1wLAorCWRpdWZiLCBDT05GSUdfU1lTX01BWEFSR1MsIDEsIGFkczUxMjFkaXVfaW5pdF9zaG93X2JtcCwKIAkiZGl1ZmIgaW5pdCB8IGFkZHIgLSBJbml0IG9yIERpc3BsYXkgQk1QIGZpbGVcbiIsCiAJImluaXRcbiAgICAtIGluaXRpYWxpemUgRElVXG4iCiAJImFkZHJcbiAgICAtIGRpc3BsYXkgYm1wIGF0IGFkZHJlc3MgJ2FkZHInXG4iCmRpZmYgLS1naXQgYS9ib2FyZC9hZHM1MTIxL3BjaS5jIGIvYm9hcmQvYWRzNTEyMS9wY2kuYwppbmRleCBhMzM4NjA0Li5iNzQ3ZTgxIDEwMDY0NAotLS0gYS9ib2FyZC9hZHM1MTIxL3BjaS5jCisrKyBiL2JvYXJkL2FkczUxMjEvcGNpLmMKQEAgLTMzLDggKzMzLDggQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiAvKiBTeXN0ZW0gUkFNIG1hcHBlZCB0byBQQ0kgc3BhY2UgKi8KLSNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fUEhZUwlDRkdfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fUEhZUwlDT05GSUdfU1lTX1NEUkFNX0JBU0UKIAogc3RhdGljIHN0cnVjdCBwY2lfY29udHJvbGxlciBwY2lfaG9zZTsKIApAQCAtNDYsNyArNDYsNyBAQAogdm9pZAogcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsYXc1MTJ4X3QgKnBjaV9sYXc7CiAJdm9sYXRpbGUgcG90NTEyeF90ICpwY2lfcG90OwogCXZvbGF0aWxlIHBjaWN0cmw1MTJ4X3QgKnBjaV9jdHJsOwpAQCAtODcsMTAgKzg3LDEwIEBACiAJLyoKIAkgKiBDb25maWd1cmUgUENJIExvY2FsIEFjY2VzcyBXaW5kb3dzCiAJICovCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzBdLmJhciA9IENPTkZJR19TWVNfUENJX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzBdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzUxMk07CiAKLQlwY2lfbGF3WzFdLmJhciA9IENGR19QQ0lfSU9fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1sxXS5iYXIgPSBDT05GSUdfU1lTX1BDSV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzE2TTsKIAogCS8qCkBAIC05OCwxOCArOTgsMTggQEAKIAkgKi8KIAogCS8qIFBDSSBtZW0gc3BhY2UgLSBwcmVmZXRjaCAqLwotCXBjaV9wb3RbMF0ucG90YXIgPSAoQ0ZHX1BDSV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ0ZHX1BDSV9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMF0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzBdLnBvYmFyID0gKENPTkZJR19TWVNfUENJX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFswXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfUFJFIHwgUE9DTVJfQ01fMjU2TTsKIAogCS8qIFBDSSBJTyBzcGFjZSAqLwotCXBjaV9wb3RbMV0ucG90YXIgPSAoQ0ZHX1BDSV9JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFsxXS5wb2JhciA9IChDRkdfUENJX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzFdLnBvdGFyID0gKENPTkZJR19TWVNfUENJX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzFdLnBvYmFyID0gKENPTkZJR19TWVNfUENJX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzFdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9JTyB8IFBPQ01SX0NNXzE2TTsKIAogCS8qIFBDSSBtbWlvIC0gbm9uLXByZWZldGNoIG1lbSBzcGFjZSAqLwotCXBjaV9wb3RbMl0ucG90YXIgPSAoQ0ZHX1BDSV9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzJdLnBvYmFyID0gKENGR19QQ0lfTU1JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFsyXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzJdLnBvYmFyID0gKENPTkZJR19TWVNfUENJX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbMl0ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX0NNXzI1Nk07CiAKIAkvKgpAQCAtMTI5LDIzICsxMjksMjMgQEAKIAogCS8qIFBDSSBtZW1vcnkgcHJlZmV0Y2ggc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJICAgICAgIENGR19QQ0lfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJX01FTV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNfFBDSV9SRUdJT05fUFJFRkVUQ0gpOwogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSV9NTUlPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJX01NSU9fUEhZUywKLQkJICAgICAgIENGR19QQ0lfTU1JT19TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIElPIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCSAgICAgICBDRkdfUENJX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJX0lPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX0lPX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX0lPX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCS8qIFN5c3RlbSBtZW1vcnkgc3BhY2UgKi8KQEAgLTE1OCw4ICsxNTgsOCBAQAogCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDQ7CiAKIAlwY2lfc2V0dXBfaW5kaXJlY3QoaG9zZSwKLQkJCSAgIChDRkdfSU1NUiArIDB4ODMwMCksCi0JCQkgICAoQ0ZHX0lNTVIgKyAweDgzMDQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIgKyAweDgzMDApLAorCQkJICAgKENPTkZJR19TWVNfSU1NUiArIDB4ODMwNCkpOwogCiAJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2FsYXNrYS9hbGFza2EuYyBiL2JvYXJkL2FsYXNrYS9hbGFza2EuYwppbmRleCA0OWE4ZjcxLi4zM2I0YTZlIDEwMDY0NAotLS0gYS9ib2FyZC9hbGFza2EvYWxhc2thLmMKKysrIGIvYm9hcmQvYWxhc2thL2FsYXNrYS5jCkBAIC0zMiw0OCArMzIsNDggQEAKIAlpbnQgYmxvY2tzaXplID0gMDsKIAogCS8qIEZsYXNoIDAgKi8KLSNpZiBkZWZpbmVkIChDRkdfQU1EX0JPT1QpCi0JYmF0dSA9IENGR19GTEFTSDBfQkFTRSB8IChCTF81MTJLIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOworI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCisJYmF0dSA9IENPTkZJR19TWVNfRkxBU0gwX0JBU0UgfCAoQkxfNTEySyA8PCAyKSB8IEJQUF9SVyB8IEJQUF9SWDsKICNlbHNlCi0JYmF0dSA9IENGR19GTEFTSDBfQkFTRSB8IChCTF8xNk0gPDwgMikgfCBCUFBfUlcgfCBCUFBfUlg7CisJYmF0dSA9IENPTkZJR19TWVNfRkxBU0gwX0JBU0UgfCAoQkxfMTZNIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOwogI2VuZGlmCi0JYmF0bCA9IENGR19GTEFTSDBfQkFTRSB8IDB4MjI7CisJYmF0bCA9IENPTkZJR19TWVNfRkxBU0gwX0JBU0UgfCAweDIyOwogCXdyaXRlX2JhdCAoSUJBVDAsIGJhdHUsIGJhdGwpOwogCXdyaXRlX2JhdCAoREJBVDAsIGJhdHUsIGJhdGwpOwogCiAJLyogRmxhc2ggMSAqLwotI2lmIGRlZmluZWQgKENGR19BTURfQk9PVCkKLQliYXR1ID0gQ0ZHX0ZMQVNIMV9CQVNFIHwgKEJMXzE2TSA8PCAyKSB8IEJQUF9SVyB8IEJQUF9SWDsKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0FNRF9CT09UKQorCWJhdHUgPSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFIHwgKEJMXzE2TSA8PCAyKSB8IEJQUF9SVyB8IEJQUF9SWDsKICNlbHNlCi0JYmF0dSA9IENGR19GTEFTSDFfQkFTRSB8IChCTF81MTJLIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOworCWJhdHUgPSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFIHwgKEJMXzUxMksgPDwgMikgfCBCUFBfUlcgfCBCUFBfUlg7CiAjZW5kaWYKLQliYXRsID0gQ0ZHX0ZMQVNIMV9CQVNFIHwgMHgyMjsKKwliYXRsID0gQ09ORklHX1NZU19GTEFTSDFfQkFTRSB8IDB4MjI7CiAJd3JpdGVfYmF0IChJQkFUMSwgYmF0dSwgYmF0bCk7CiAJd3JpdGVfYmF0IChEQkFUMSwgYmF0dSwgYmF0bCk7CiAKIAkvKiBDUExEICovCi0JYmF0dSA9IENGR19DUExEX0JBU0UgfCAoQkxfNTEySyA8PCAyKSB8IEJQUF9SVyB8IEJQUF9SWDsKLQliYXRsID0gQ0ZHX0NQTERfQkFTRSB8IDB4MjI7CisJYmF0dSA9IENPTkZJR19TWVNfQ1BMRF9CQVNFIHwgKEJMXzUxMksgPDwgMikgfCBCUFBfUlcgfCBCUFBfUlg7CisJYmF0bCA9IENPTkZJR19TWVNfQ1BMRF9CQVNFIHwgMHgyMjsKIAl3cml0ZV9iYXQgKElCQVQyLCAwLCAwKTsKIAl3cml0ZV9iYXQgKERCQVQyLCBiYXR1LCBiYXRsKTsKIAogCS8qIEZQR0EgKi8KLQliYXR1ID0gQ0ZHX0ZQR0FfQkFTRSB8IChCTF81MTJLIDw8IDIpIHwgQlBQX1JXIHwgQlBQX1JYOwotCWJhdGwgPSBDRkdfRlBHQV9CQVNFIHwgMHgyMjsKKwliYXR1ID0gQ09ORklHX1NZU19GUEdBX0JBU0UgfCAoQkxfNTEySyA8PCAyKSB8IEJQUF9SVyB8IEJQUF9SWDsKKwliYXRsID0gQ09ORklHX1NZU19GUEdBX0JBU0UgfCAweDIyOwogCXdyaXRlX2JhdCAoSUJBVDMsIDAsIDApOwogCXdyaXRlX2JhdCAoREJBVDMsIGJhdHUsIGJhdGwpOwogCiAJLyogTUJBUiAtIERhdGEgb25seSAqLwotCWJhdHUgPSBDRkdfTUJBUiB8IEJQUF9SVyB8IEJQUF9SWDsKLQliYXRsID0gQ0ZHX01CQVIgfCAweDIyOworCWJhdHUgPSBDT05GSUdfU1lTX01CQVIgfCBCUFBfUlcgfCBCUFBfUlg7CisJYmF0bCA9IENPTkZJR19TWVNfTUJBUiB8IDB4MjI7CiAJbXRzcHIgKElCQVQ0TCwgMCk7CiAJbXRzcHIgKElCQVQ0VSwgMCk7CiAJbXRzcHIgKERCQVQ0TCwgYmF0bCk7CiAJbXRzcHIgKERCQVQ0VSwgYmF0dSk7CiAKIAkvKiBNQkFSIC0gU1JBTSAqLwotCWJhdHUgPSBDRkdfU1JBTV9CQVNFIHwgQlBQX1JXIHwgQlBQX1JYOwotCWJhdGwgPSBDRkdfU1JBTV9CQVNFIHwgMHg0MjsKKwliYXR1ID0gQ09ORklHX1NZU19TUkFNX0JBU0UgfCBCUFBfUlcgfCBCUFBfUlg7CisJYmF0bCA9IENPTkZJR19TWVNfU1JBTV9CQVNFIHwgMHg0MjsKIAltdHNwciAoSUJBVDVMLCBiYXRsKTsKIAltdHNwciAoSUJBVDVVLCBiYXR1KTsKIAltdHNwciAoREJBVDVMLCBiYXRsKTsKQEAgLTkzLDggKzkzLDggQEAKIAkJYmxvY2tzaXplID0gQkxfMjU2TSA8PCAyOwogCiAJLyogTWVtb3J5ICovCi0JYmF0dSA9IENGR19TRFJBTV9CQVNFIHwgYmxvY2tzaXplIHwgQlBQX1JXIHwgQlBQX1JYOwotCWJhdGwgPSBDRkdfU0RSQU1fQkFTRSB8IDB4NDI7CisJYmF0dSA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IGJsb2Nrc2l6ZSB8IEJQUF9SVyB8IEJQUF9SWDsKKwliYXRsID0gQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgMHg0MjsKIAltdHNwciAoSUJBVDZMLCBiYXRsKTsKIAltdHNwciAoSUJBVDZVLCBiYXR1KTsKIAltdHNwciAoREJBVDZMLCBiYXRsKTsKQEAgLTEyMCw5ICsxMjAsOSBAQAogCQllbHNlIGlmIChzaXplIDw9IDB4MTAwMDAwMDApCS8qIDI1Nk1CICovCiAJCQlibG9ja3NpemUgPSBCTF8yNTZNIDw8IDI7CiAKLQkJYmF0dSA9IChDRkdfU0RSQU1fQkFTRSArCisJCWJhdHUgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsKIAkJCTB4MTAwMDAwMDApIHwgYmxvY2tzaXplIHwgQlBQX1JXIHwgQlBQX1JYOwotCQliYXRsID0gKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkgfCAweDQyOworCQliYXRsID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDApIHwgMHg0MjsKIAl9CiAKIAltdHNwciAoSUJBVDdMLCBiYXRsKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FsYXNrYS9mbGFzaC5jIGIvYm9hcmQvYWxhc2thL2ZsYXNoLmMKaW5kZXggNTU2YzE2OC4uYWVkM2I2ZiAxMDA2NDQKLS0tIGEvYm9hcmQvYWxhc2thL2ZsYXNoLmMKKysrIGIvYm9hcmQvYWxhc2thL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI2RlZmluZSBGTEFTSF9QT1JUX1dJRFRIOApAQCAtODYsMzAgKzg2LDMwIEBACiAJdWxvbmcgc2l6ZSA9IDA7CiAJdWxvbmcgZnNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCW1lbXNldCAoJmZsYXNoX2luZm9baV0sIDAsIHNpemVvZiAoZmxhc2hfaW5mb190KSk7CiAKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKLQkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIENGR19GTEFTSDFfQkFTRSwKKwkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIENPTkZJR19TWVNfRkxBU0gxX0JBU0UsCiAJCQkJCSZmbGFzaF9pbmZvW2ldKTsKLQkJCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0gxX0JBU0UsICZmbGFzaF9pbmZvW2ldKTsKKwkJCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIMV9CQVNFLCAmZmxhc2hfaW5mb1tpXSk7CiAJCQlicmVhazsKIAkJY2FzZSAxOgotCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIMV9CQVNFLAorCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ09ORklHX1NZU19GTEFTSDFfQkFTRSwKIAkJCQkJJmZsYXNoX2luZm9baV0pOwotCQkJZnNpemUgPSBDRkdfRkxBU0gxX0JBU0UgKyBmbGFzaF9pbmZvW2kgLSAxXS5zaXplOworCQkJZnNpemUgPSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgZmxhc2hfaW5mb1tpIC0gMV0uc2l6ZTsKIAkJCWZsYXNoX2dldF9vZmZzZXRzIChmc2l6ZSwgJmZsYXNoX2luZm9baV0pOwogCQkJYnJlYWs7CiAJCWNhc2UgMjoKLQkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIENGR19GTEFTSDBfQkFTRSwKKwkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIENPTkZJR19TWVNfRkxBU0gwX0JBU0UsCiAJCQkJCSZmbGFzaF9pbmZvW2ldKTsKLQkJCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvW2ldKTsKKwkJCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1tpXSk7CiAJCQlicmVhazsKIAkJY2FzZSAzOgotCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIMF9CQVNFLAorCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ09ORklHX1NZU19GTEFTSDBfQkFTRSwKIAkJCQkJJmZsYXNoX2luZm9baV0pOwotCQkJZnNpemUgPSBDRkdfRkxBU0gwX0JBU0UgKyBmbGFzaF9pbmZvW2kgLSAxXS5zaXplOworCQkJZnNpemUgPSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICsgZmxhc2hfaW5mb1tpIC0gMV0uc2l6ZTsKIAkJCWZsYXNoX2dldF9vZmZzZXRzIChmc2l6ZSwgJmZsYXNoX2luZm9baV0pOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC0xMjQsMjMgKzEyNCwyMyBAQAogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCi0jaWYgZGVmaW5lZCAoQ0ZHX0FNRF9CT09UKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJICAgICAgICZmbGFzaF9pbmZvWzJdKTsKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX0lOVEVMX0JBU0UsCi0JCSAgICAgICBDRkdfSU5URUxfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICAgICAgIENPTkZJR19TWVNfSU5URUxfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfSU5URUxfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJICAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbHNlCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJICAgICAgICZmbGFzaF9pbmZvWzNdKTsKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX0FNRF9CQVNFLAotCQkgICAgICAgQ0ZHX0FNRF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCSAgICAgICBDT05GSUdfU1lTX0FNRF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19BTURfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjk0LDEwICsyOTQsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlpZiAodmFsdWUgPT0gKEZQVykgSU5URUxfSURfMjhGMTI4SjNBKQpAQCAtMzQ4LDcgKzM0OCw3IEBACiAJLyoKIAkgKiBmaXJzdCwgd2FpdCBmb3IgdGhlIFdTTSB0byBiZSBmaW5pc2hlZC4gVGhlIHJhdGlvbmFsZSBmb3IKIAkgKiB3YWl0aW5nIGZvciB0aGUgV1NNIHRvIGJlY29tZSBpZGxlIGZvciBhdCBtb3N0Ci0JICogQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgaXMgYXMgZm9sbG93cy4gVGhlIFdTTSBjYW4gYmUgYnVzeQorCSAqIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCBpcyBhcyBmb2xsb3dzLiBUaGUgV1NNIGNhbiBiZSBidXN5CiAJICogYmVjYXVzZSBvZjogKDEpIGVyYXNlLCAoMikgcHJvZ3JhbSBvciAoMykgbG9jayBiaXQKIAkgKiBjb25maWd1cmF0aW9uLiBTbyB3ZSBqdXN0IHdhaXQgZm9yIHRoZSBsb25nZXN0IHRpbWVvdXQgb2YKIAkgKiB0aGUgKDEpLSgzKSwgaS5lLiB0aGUgZXJhc2UgdGltZW91dC4KQEAgLTM2MSw3ICszNjEsNyBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKmFkZHIgJiAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgIT0gKEZQVykgSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIElOVEVMX1JFU0VUOyAvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcHJpbnRmKCJXU00gYnVzeSB0b28gbG9uZywgY2FuJ3QgZ2V0IHByb3Qgc3RhdHVzXG4iKTsKIAkJCXJldHVybiAxOwpAQCAtMzkxLDcgKzM5MSw3IEBACiAgKi8KIHN0YXRpYyB1bnNpZ25lZCBjaGFyIHNhbWVfY2hpcF9iYW5rcyAoaW50IGJhbmsxLCBpbnQgYmFuazIpCiB7Ci0JdW5zaWduZWQgY2hhciBzYW1lX2NoaXBbQ0ZHX01BWF9GTEFTSF9CQU5LU11bQ0ZHX01BWF9GTEFTSF9CQU5LU10gPSB7CisJdW5zaWduZWQgY2hhciBzYW1lX2NoaXBbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IHsKIAkJezEsIDEsIDAsIDB9LAogCQl7MSwgMSwgMCwgMH0sCiAJCXswLCAwLCAxLCAxfSwKQEAgLTQ2Nyw3ICs0NjcsNyBAQAogCQkJfSBlbHNlIHsKIAkJCQlGUFdWICpiYXNlOwkvKiBmaXJzdCBhZGRyZXNzIGluIGJhbmsgKi8KIAotCQkJCWJhc2UgPSAoRlBXViAqKSAoQ0ZHX0FNRF9CQVNFKTsKKwkJCQliYXNlID0gKEZQV1YgKikgKENPTkZJR19TWVNfQU1EX0JBU0UpOwogCQkJCWJhc2VbRkxBU0hfQ1lDTEUxXSA9IChGUFcpIDB4MDBBQTAwQUE7CS8qIHVubG9jayAqLwogCQkJCWJhc2VbRkxBU0hfQ1lDTEUyXSA9IChGUFcpIDB4MDA1NTAwNTU7CS8qIHVubG9jayAqLwogCQkJCWJhc2VbRkxBU0hfQ1lDTEUxXSA9IChGUFcpIDB4MDA4MDAwODA7CS8qIGVyYXNlIG1vZGUgKi8KQEAgLTQ3OSw3ICs0NzksNyBAQAogCQkJd2hpbGUgKCgoc3RhdHVzID0KIAkJCQkgKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCSAgICAgICAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCWlmIChpbnRlbCkgewogCQkJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwpAQCAtNjg0LDcgKzY4NCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKmFkZHIgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpAQCAtNzI4LDcgKzcyOCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKmRzdGFkZHIgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRzdGFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpAQCAtNzQ2LDcgKzc0Niw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKmRzdGFkZHIgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRzdGFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpAQCAtNzc5LDcgKzc3OSw3IEBACiAJCXJldHVybiAoMik7CiAJfQogCi0JYmFzZSA9IChGUFdWICopIChDRkdfQU1EX0JBU0UpOworCWJhc2UgPSAoRlBXViAqKSAoQ09ORklHX1NZU19BTURfQkFTRSk7CiAKIAkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzICgpOwpAQCAtNzk5LDcgKzc5OSw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXdoaWxlIChyZXMgPT0gMAogCSAgICAgICAmJiAoKmRlc3QgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoZGF0YSAmIChGUFcpIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlyZXMgPSAxOwogCQl9CkBAIC04NTYsNyArODU2LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9IElOVEVMX0ZJTklTSEVEKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9VTkxPQ0tfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQlwcmludGYgKCJGbGFzaCBsb2NrIGJpdCBvcGVyYXRpb24gdGltZWQgb3V0XG4iKTsKIAkJCXJjID0gMTsKIAkJCWJyZWFrOwpAQCAtODg2LDE3ICs4ODYsMTcgQEAKIAkJICovCiAKIAkJLyogZmluZCB0aGUgY3VycmVudCBiYW5rIG51bWJlciAqLwotCQljdXJyX2JhbmsgPSBDRkdfTUFYX0ZMQVNIX0JBTktTICsgMTsKLQkJZm9yIChqID0gMDsgaiA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraikgeworCQljdXJyX2JhbmsgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyArIDE7CisJCWZvciAoaiA9IDA7IGogPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytqKSB7CiAJCQlpZiAoJmZsYXNoX2luZm9bal0gPT0gaW5mbykgewogCQkJCWN1cnJfYmFuayA9IGo7CiAJCQl9CiAJCX0KLQkJaWYgKGN1cnJfYmFuayA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTICsgMSkgeworCQlpZiAoY3Vycl9iYW5rID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICsgMSkgewogCQkJcHJpbnRmKCJFcnJvcjogY2FuJ3QgZGV0ZXJtaW5lIGJhbmsgbnVtYmVyIVxuIik7CiAJCX0KIAotCQlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rKSB7CisJCWZvciAoYmFuayA9IDA7IGJhbmsgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rKSB7CiAJCQlpZiAoIXNhbWVfY2hpcF9iYW5rcyhjdXJyX2JhbmssIGJhbmspKSB7CiAJCQkJY29udGludWU7CiAJCQl9CkBAIC05MTAsNyArOTEwLDcgQEAKIAkJCQkJd2hpbGUgKCgqYWRkciAmIElOVEVMX0ZJTklTSEVEKSAhPQogCQkJCQkgICAgICAgSU5URUxfRklOSVNIRUQpIHsKIAkJCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+Ci0JCQkJCQkgICAgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUKSB7CisJCQkJCQkgICAgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVCkgewogCQkJCQkJCXByaW50ZiAoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJCQkJCXJjID0gMTsKIAkJCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2JvYXJkL2FsdGVyYS9jb21tb24vQU1ETFYwNjVELmMgYi9ib2FyZC9hbHRlcmEvY29tbW9uL0FNRExWMDY1RC5jCmluZGV4IDhhN2IxNGUuLjBmY2YzNTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FsdGVyYS9jb21tb24vQU1ETFYwNjVELmMKKysrIGIvYm9hcmQvYWx0ZXJhL2NvbW1vbi9BTURMVjA2NUQuYwpAQCAtMzAsNyArMzAsNyBAQAogI2VuZGlmCiAKICNkZWZpbmUgU0VDVFNaCQkoNjQgKiAxMDI0KQotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCkBAIC0zOSwxOCArMzksMTggQEAKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJZmxhc2hfaW5mb190ICpmbGkgPSAmZmxhc2hfaW5mb1swXTsKIAotCWZsaS0+c2l6ZSA9IENGR19GTEFTSF9TSVpFOwotCWZsaS0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWZsaS0+c2l6ZSA9IENPTkZJR19TWVNfRkxBU0hfU0laRTsKKwlmbGktPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJZmxpLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQgKyBGTEFTSF9BTURMVjA2NUQ7CiAKLQlhZGRyID0gQ0ZHX0ZMQVNIX0JBU0U7CisJYWRkciA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlmb3IgKGkgPSAwOyBpIDwgZmxpLT5zZWN0b3JfY291bnQ7ICsraSkgewogCQlmbGktPnN0YXJ0W2ldID0gYWRkcjsKIAkJYWRkciArPSBTRUNUU1o7CiAJCWZsaS0+cHJvdGVjdFtpXSA9IDE7CiAJfQogCi0JcmV0dXJuIChDRkdfRkxBU0hfU0laRSk7CisJcmV0dXJuIChDT05GSUdfU1lTX0ZMQVNIX1NJWkUpOwogfQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiB2b2lkIGZsYXNoX3ByaW50X2luZm8gKGZsYXNoX2luZm9fdCAqIGluZm8pCkBAIC0xMzUsNyArMTM1LDcgQEAKIAkJCXdoaWxlICggcmVhZGIgKGFkZHIyKSAhPSAweGZmKSB7CiAJCQkJdWRlbGF5ICgxMDAwICogMTAwMCk7CiAJCQkJcHV0YyAoJy4nKTsKLQkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJ0aW1lb3V0XG4iKTsKIAkJCQkJcmV0dXJuIDE7CiAJCQkJfQpAQCAtMTc3LDcgKzE3Nyw3IEBACiAJCS8qIFZlcmlmeSB3cml0ZSAqLwogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlIChyZWFkYiAoZHN0KSAhPSBiKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2FsdGVyYS9jb21tb24vZXBsZWQuYyBiL2JvYXJkL2FsdGVyYS9jb21tb24vZXBsZWQuYwppbmRleCBjNzVmZThjLi5lNWU3NzA1IDEwMDY0NAotLS0gYS9ib2FyZC9hbHRlcmEvY29tbW9uL2VwbGVkLmMKKysrIGIvYm9hcmQvYWx0ZXJhL2NvbW1vbi9lcGxlZC5jCkBAIC0zMyw3ICszMyw3IEBACiAKIHZvaWQgX19sZWRfaW5pdCAobGVkX2lkX3QgbWFzaywgaW50IHN0YXRlKQogewotCW5pb3NfcGlvX3QgKnBpbyA9IChuaW9zX3Bpb190ICopQ0ZHX0xFRFBJT19BRERSOworCW5pb3NfcGlvX3QgKnBpbyA9IChuaW9zX3Bpb190ICopQ09ORklHX1NZU19MRURQSU9fQUREUjsKIAogCWlmIChzdGF0ZSA9PSBTVEFUVVNfTEVEX09OKQogCQl2YWwgJj0gfm1hc2s7CkBAIC00NCw3ICs0NCw3IEBACiAKIHZvaWQgX19sZWRfc2V0IChsZWRfaWRfdCBtYXNrLCBpbnQgc3RhdGUpCiB7Ci0Jbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDRkdfTEVEUElPX0FERFI7CisJbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDT05GSUdfU1lTX0xFRFBJT19BRERSOwogCiAJaWYgKHN0YXRlID09IFNUQVRVU19MRURfT04pCiAJCXZhbCAmPSB+bWFzazsKQEAgLTU1LDcgKzU1LDcgQEAKIAogdm9pZCBfX2xlZF90b2dnbGUgKGxlZF9pZF90IG1hc2spCiB7Ci0Jbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDRkdfTEVEUElPX0FERFI7CisJbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDT05GSUdfU1lTX0xFRFBJT19BRERSOwogCiAJdmFsIF49IG1hc2s7CiAJd3JpdGVsICgmcGlvLT5kYXRhLCB2YWwpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWx0ZXJhL2NvbW1vbi9mbGFzaC5jIGIvYm9hcmQvYWx0ZXJhL2NvbW1vbi9mbGFzaC5jCmluZGV4IDI2MzhlYTguLjgzYmI3YzIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FsdGVyYS9jb21tb24vZmxhc2guYworKysgYi9ib2FyZC9hbHRlcmEvY29tbW9uL2ZsYXNoLmMKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxuaW9zLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyAoZmxhc2hfaW5mb190ICogaW5mbykKQEAgLTY4LDggKzY4LDggQEAKIAogaW50IGZsYXNoX2VyYXNlIChmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKIAlpbnQgcHJvdCwgc2VjdDsKIAl1bnNpZ25lZCBvbGRwcmk7CiAJdWxvbmcgc3RhcnQ7CkBAIC0xMTIsNyArMTEyLDcgQEAKIAkgKi8KIAlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0IDw9IHNfbGFzdDsgc2VjdCsrKSB7CiAJCWlmIChpbmZvLT5wcm90ZWN0W3NlY3RdID09IDApIHsJLyogbm90IHByb3RlY3RlZCAqLwotCQkJYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCQkJYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJCSphZGRyID0gMHhhYTsKIAkJCSphZGRyID0gMHg1NTsKIAkJCSphZGRyID0gMHg4MDsKQEAgLTEyOCw3ICsxMjgsNyBAQAogCQkJd2hpbGUgKCphZGRyMiAhPSAweGZmKSB7CiAJCQkJdWRlbGF5ICgxMDAwICogMTAwMCk7CiAJCQkJcHV0YyAoJy4nKTsKLQkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJ0aW1lb3V0XG4iKTsKIAkJCQkJcmV0dXJuIDE7CiAJCQkJfQpAQCAtMTgxLDcgKzE4MSw3IEBACiAJCS8qIFZlcmlmeSB3cml0ZSAqLwogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgqZHN0ICE9IGIpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlpcHJpIChvbGRwcmkpOwogCQkJCXJldHVybiAxOwogCQkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYWx0ZXJhL2RrMWMyMC9kazFjMjAuYyBiL2JvYXJkL2FsdGVyYS9kazFjMjAvZGsxYzIwLmMKaW5kZXggNDY2OTViZS4uMTFjMTliNyAxMDA2NDQKLS0tIGEvYm9hcmQvYWx0ZXJhL2RrMWMyMC9kazFjMjAuYworKysgYi9ib2FyZC9hbHRlcmEvZGsxYzIwL2RrMWMyMC5jCkBAIC01OCw5ICs1OCw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0lERSkKIGludCBpZGVfcHJlaW5pdCAodm9pZCkKIHsKLQluaW9zX3Bpb190ICpwcmVzZW50ID0gKG5pb3NfcGlvX3QgKikgQ0ZHX0NGX1BSRVNFTlQ7Ci0Jbmlvc19waW9fdCAqcG93ZXIgPSAobmlvc19waW9fdCAqKSBDRkdfQ0ZfUE9XRVI7Ci0Jbmlvc19waW9fdCAqYXRhc2VsID0gKG5pb3NfcGlvX3QgKikgQ0ZHX0NGX0FUQVNFTDsKKwluaW9zX3Bpb190ICpwcmVzZW50ID0gKG5pb3NfcGlvX3QgKikgQ09ORklHX1NZU19DRl9QUkVTRU5UOworCW5pb3NfcGlvX3QgKnBvd2VyID0gKG5pb3NfcGlvX3QgKikgQ09ORklHX1NZU19DRl9QT1dFUjsKKwluaW9zX3Bpb190ICphdGFzZWwgPSAobmlvc19waW9fdCAqKSBDT05GSUdfU1lTX0NGX0FUQVNFTDsKIAogCS8qIHNldHVwIGRhdGEgZGlyZWN0aW9uIHJlZ2lzdGVycyAqLwogCXByZXNlbnQtPmRpcmVjdGlvbiA9IE5JT1NfUElPX0lOOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYWx0ZXJhL2RrMWMyMC9mbGFzaC5jIGIvYm9hcmQvYWx0ZXJhL2RrMWMyMC9mbGFzaC5jCmluZGV4IDFmMzQ0ZGQuLjhiZGRkMzggMTAwNjQ0Ci0tLSBhL2JvYXJkL2FsdGVyYS9kazFjMjAvZmxhc2guYworKysgYi9ib2FyZC9hbHRlcmEvZGsxYzIwL2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICIuLi9jb21tb24vZmxhc2guYyIKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQkFOS1NaCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBCQU5LU1oJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogI2RlZmluZSBTRUNUU1oJCSg2NCAqIDEwMjQpCiAjZGVmaW5lIFVTRVJGTEFTSAkoMiAqIDEwMjQgKiAxMDI0KQkvKiBib3R0b20gMiBNQiBmb3IgdXNlcgkqLwogCkBAIC00MywxNiArNDMsMTYgQEAKIAlmbGFzaF9pbmZvX3QgKmZsaSA9ICZmbGFzaF9pbmZvWzBdOwogCiAJZmxpLT5zaXplID0gQkFOS1NaOwotCWZsaS0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWZsaS0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAlmbGktPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRCArIEZMQVNIX0FNRExWMDY1RDsKIAotCWFkZHIgPSBDRkdfRkxBU0hfQkFTRTsKKwlhZGRyID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWZvciAoaSA9IDA7IGkgPCBmbGktPnNlY3Rvcl9jb3VudDsgKytpKSB7CiAJCWZsaS0+c3RhcnRbaV0gPSBhZGRyOwogCQlhZGRyICs9IFNFQ1RTWjsKIAogCQkvKiBQcm90ZWN0IGFsbCBidXQgMiBNQnl0ZSB1c2VyIGFyZWEgKi8KLQkJaWYgKGFkZHIgPCAoQ0ZHX0ZMQVNIX0JBU0UgKyBVU0VSRkxBU0gpKQorCQlpZiAoYWRkciA8IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBVU0VSRkxBU0gpKQogCQkJZmxpLT5wcm90ZWN0W2ldID0gMDsKIAkJZWxzZQogCQkJZmxpLT5wcm90ZWN0W2ldID0gMTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FsdGVyYS9kazFzMTAvZmxhc2guYyBiL2JvYXJkL2FsdGVyYS9kazFzMTAvZmxhc2guYwppbmRleCA1YzcwOTMzLi5kMWYyZGIxIDEwMDY0NAotLS0gYS9ib2FyZC9hbHRlcmEvZGsxczEwL2ZsYXNoLmMKKysrIGIvYm9hcmQvYWx0ZXJhL2RrMXMxMC9mbGFzaC5jCkBAIC00MywxNiArNDMsMTYgQEAKIAlmbGFzaF9pbmZvX3QgKmZsaSA9ICZmbGFzaF9pbmZvWzBdOwogCiAJZmxpLT5zaXplID0gQkFOS1NaOwotCWZsaS0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWZsaS0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAlmbGktPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRCArIEZMQVNIX0FNRExWMDY1RDsKIAotCWFkZHIgPSBDRkdfRkxBU0hfQkFTRTsKKwlhZGRyID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWZvciAoaSA9IDA7IGkgPCBmbGktPnNlY3Rvcl9jb3VudDsgKytpKSB7CiAJCWZsaS0+c3RhcnRbaV0gPSBhZGRyOwogCQlhZGRyICs9IFNFQ1RTWjsKIAogCQkvKiBQcm90ZWN0IGFsbCBidXQgMiBNQnl0ZSB1c2VyIGFyZWEgKi8KLQkJaWYgKGFkZHIgPCAoQ0ZHX0ZMQVNIX0JBU0UgKyBVU0VSRkxBU0gpKQorCQlpZiAoYWRkciA8IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBVU0VSRkxBU0gpKQogCQkJZmxpLT5wcm90ZWN0W2ldID0gMDsKIAkJZWxzZQogCQkJZmxpLT5wcm90ZWN0W2ldID0gMTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FsdGVyYS9kazFzMTAvdmVjdG9ycy5TIGIvYm9hcmQvYWx0ZXJhL2RrMXMxMC92ZWN0b3JzLlMKaW5kZXggMmY0NDg3NS4uMjI2ZjY1YiAxMDA2NDQKLS0tIGEvYm9hcmQvYWx0ZXJhL2RrMXMxMC92ZWN0b3JzLlMKKysrIGIvYm9hcmQvYWx0ZXJhL2RrMXMxMC92ZWN0b3JzLlMKQEAgLTU4LDEyICs1OCwxMiBAQAogCS5hbGlnbgk0CiBfdmVjdG9yczoKIAotI2lmCWRlZmluZWQoQ0ZHX05JT1NfQ1BVX09DSV9CQVNFKQorI2lmCWRlZmluZWQoQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfQkFTRSkKIAkvKiBPQ0kgZG9lcyB0aGUgcmVzZXQgam9iICovCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgMCAgLSBOTUkgLyBSZXNldCAqLwogI2Vsc2UKIAkvKiB0aGVyZSBpcyBubyBPQ0ksIHNvIHdlIGhhdmUgdG8gZG8gYSBkaXJlY3QgcmVzZXQganVtcCBoZXJlICovCi0JLmxvbmcJQ0ZHX05JT1NfQ1BVX1JTVF9WRUNUCS8qIFZlY3RvciAwICAtIFJlc2V0IHRvIEdFUk1TICovCisJLmxvbmcJQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVAkvKiBWZWN0b3IgMCAgLSBSZXNldCB0byBHRVJNUyAqLwogI2VuZGlmCiAJLmxvbmcJX2N3cF9sb2xpbWl0QGgJCS8qIFZlY3RvciAxICAtIHVuZGVyZmxvdyAqLwogCS5sb25nCV9jd3BfaGlsaW1pdEBoCQkvKiBWZWN0b3IgMiAgLSBvdmVyZmxvdwkqLwpAQCAtODEsNyArODEsNyBAQAogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDEzIC0gZnV0dXJlIHJlc2VydmVkICovCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgMTQgLSBmdXR1cmUgcmVzZXJ2ZWQgKi8KIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciAxNSAtIGZ1dHVyZSByZXNlcnZlZCAqLwotI2lmCShDRkdfTklPU19UTVJJUlEgPT0gMTYpCisjaWYJKENPTkZJR19TWVNfTklPU19UTVJJUlEgPT0gMTYpCiAJLmxvbmcJX3RpbWViYXNlX2ludEBoCQkvKiBWZWN0b3IgMTYgLSBsb3ByaSB0aW1lciovCiAjZWxzZQogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDE2ICovCkBAIC0xMTksNyArMTE5LDcgQEAKIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciA0NyAqLwogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDQ4ICovCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgNDkgKi8KLSNpZgkoQ0ZHX05JT1NfVE1SSVJRID09IDUwKQorI2lmCShDT05GSUdfU1lTX05JT1NfVE1SSVJRID09IDUwKQogCS5sb25nCV90aW1lYmFzZV9pbnRAaAkJLyogVmVjdG9yIDUwIC0gbG9wcmkgdGltZXIqLwogI2Vsc2UKIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciA1MCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9hY2FkaWEvYWNhZGlhLmMgYi9ib2FyZC9hbWNjL2FjYWRpYS9hY2FkaWEuYwppbmRleCA4YjgyZWE0Li44ZDc5YmUyIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2FjYWRpYS9hY2FkaWEuYworKysgYi9ib2FyZC9hbWNjL2FjYWRpYS9hY2FkaWEuYwpAQCAtMzEsMjQgKzMxLDI0IEBACiAJLyoKIAkgKiBHUElPMCBzZXR1cCAoc2VsZWN0IEdQSU8gb3IgYWx0ZXJuYXRlIGZ1bmN0aW9uKQogCSAqLwotCW91dDMyKEdQSU8wX09TUkwsIENGR19HUElPMF9PU1JMKTsKLQlvdXQzMihHUElPMF9PU1JILCBDRkdfR1BJTzBfT1NSSCk7CS8qIG91dHB1dCBzZWxlY3QgKi8KLQlvdXQzMihHUElPMF9JU1IxTCwgQ0ZHX0dQSU8wX0lTUjFMKTsKLQlvdXQzMihHUElPMF9JU1IxSCwgQ0ZHX0dQSU8wX0lTUjFIKTsJLyogaW5wdXQgc2VsZWN0ICovCi0Jb3V0MzIoR1BJTzBfVFNSTCwgQ0ZHX0dQSU8wX1RTUkwpOwotCW91dDMyKEdQSU8wX1RTUkgsIENGR19HUElPMF9UU1JIKTsJLyogdGhyZWUtc3RhdGUgc2VsZWN0ICovCi0Jb3V0MzIoR1BJTzBfVENSLCBDRkdfR1BJTzBfVENSKTsgIC8qIGVuYWJsZSBvdXRwdXQgZHJpdmVyIGZvciBvdXRwdXRzICovCisJb3V0MzIoR1BJTzBfT1NSTCwgQ09ORklHX1NZU19HUElPMF9PU1JMKTsKKwlvdXQzMihHUElPMF9PU1JILCBDT05GSUdfU1lTX0dQSU8wX09TUkgpOwkvKiBvdXRwdXQgc2VsZWN0ICovCisJb3V0MzIoR1BJTzBfSVNSMUwsIENPTkZJR19TWVNfR1BJTzBfSVNSMUwpOworCW91dDMyKEdQSU8wX0lTUjFILCBDT05GSUdfU1lTX0dQSU8wX0lTUjFIKTsJLyogaW5wdXQgc2VsZWN0ICovCisJb3V0MzIoR1BJTzBfVFNSTCwgQ09ORklHX1NZU19HUElPMF9UU1JMKTsKKwlvdXQzMihHUElPMF9UU1JILCBDT05GSUdfU1lTX0dQSU8wX1RTUkgpOwkvKiB0aHJlZS1zdGF0ZSBzZWxlY3QgKi8KKwlvdXQzMihHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJTzBfVENSKTsgIC8qIGVuYWJsZSBvdXRwdXQgZHJpdmVyIGZvciBvdXRwdXRzICovCiAKIAkvKgogCSAqIFVsdHJhICg0MDVFWikgd2FzIG5pY2UgZW5vdWdoIHRvIGFkZCBhbm90aGVyIEdQSU8gY29udHJvbGxlcgogCSAqLwotCW91dDMyKEdQSU8xX09TUkgsIENGR19HUElPMV9PU1JIKTsJLyogb3V0cHV0IHNlbGVjdCAqLwotCW91dDMyKEdQSU8xX09TUkwsIENGR19HUElPMV9PU1JMKTsKLQlvdXQzMihHUElPMV9JU1IxSCwgQ0ZHX0dQSU8xX0lTUjFIKTsJLyogaW5wdXQgc2VsZWN0ICovCi0Jb3V0MzIoR1BJTzFfSVNSMUwsIENGR19HUElPMV9JU1IxTCk7Ci0Jb3V0MzIoR1BJTzFfVFNSSCwgQ0ZHX0dQSU8xX1RTUkgpOwkvKiB0aHJlZS1zdGF0ZSBzZWxlY3QgKi8KLQlvdXQzMihHUElPMV9UU1JMLCBDRkdfR1BJTzFfVFNSTCk7Ci0Jb3V0MzIoR1BJTzFfVENSLCBDRkdfR1BJTzFfVENSKTsgIC8qIGVuYWJsZSBvdXRwdXQgZHJpdmVyIGZvciBvdXRwdXRzICovCisJb3V0MzIoR1BJTzFfT1NSSCwgQ09ORklHX1NZU19HUElPMV9PU1JIKTsJLyogb3V0cHV0IHNlbGVjdCAqLworCW91dDMyKEdQSU8xX09TUkwsIENPTkZJR19TWVNfR1BJTzFfT1NSTCk7CisJb3V0MzIoR1BJTzFfSVNSMUgsIENPTkZJR19TWVNfR1BJTzFfSVNSMUgpOwkvKiBpbnB1dCBzZWxlY3QgKi8KKwlvdXQzMihHUElPMV9JU1IxTCwgQ09ORklHX1NZU19HUElPMV9JU1IxTCk7CisJb3V0MzIoR1BJTzFfVFNSSCwgQ09ORklHX1NZU19HUElPMV9UU1JIKTsJLyogdGhyZWUtc3RhdGUgc2VsZWN0ICovCisJb3V0MzIoR1BJTzFfVFNSTCwgQ09ORklHX1NZU19HUElPMV9UU1JMKTsKKwlvdXQzMihHUElPMV9UQ1IsIENPTkZJR19TWVNfR1BJTzFfVENSKTsgIC8qIGVuYWJsZSBvdXRwdXQgZHJpdmVyIGZvciBvdXRwdXRzICovCiB9CiAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKQEAgLTY4LDcgKzY4LDcgQEAKIAltdHNkcihzZHJuYW5kMCwgU0RSX05BTkQwX05ERU4gfCBTRFJfTkFORDBfTkRBUkVOIHwgU0RSX05BTkQwX05EUkJFTik7CiAJbWZzZHIoc2RydWx0cmEwLCByZWcpOwogCXJlZyAmPSB+U0RSX1VMVFJBMF9DU05fTUFTSzsKLQlyZWcgfD0gKFNEUl9VTFRSQTBfQ1NOU0VMMCA+PiBDRkdfTkFORF9DUykgfAorCXJlZyB8PSAoU0RSX1VMVFJBMF9DU05TRUwwID4+IENPTkZJR19TWVNfTkFORF9DUykgfAogCQlTRFJfVUxUUkEwX05ER1BJT0JQIHwKIAkJU0RSX1VMVFJBMF9FQkNSRFlFTiB8CiAJCVNEUl9VTFRSQTBfTkZTUlNURU47CkBAIC05MSw3ICs5MSw3IEBACiBpbnQgbWlzY19pbml0X2Yodm9pZCkKIHsKIAkvKiBTZXQgRVBMRCB0byB0YWtlIFBIWSBvdXQgb2YgcmVzZXQgKi8KLQlvdXQ4KENGR19DUExEX0JBU0UgKyAweDA1LCAweDAwKTsKKwlvdXQ4KENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwNSwgMHgwMCk7CiAJdWRlbGF5KDEwMDAwMCk7CiAKIAlyZXR1cm4gMDsKQEAgLTEwNSw3ICsxMDUsNyBAQAogCWNoYXIgKnMgPSBnZXRlbnYoInNlcmlhbCMiKTsKIAl1OCByZXY7CiAKLQlyZXYgPSBpbjgoQ0ZHX0NQTERfQkFTRSArIDApOworCXJldiA9IGluOChDT05GSUdfU1lTX0NQTERfQkFTRSArIDApOwogCXByaW50ZigiQm9hcmQ6IEFjYWRpYSAtIEFNQ0MgUFBDNDA1RVogRXZhbHVhdGlvbiBCb2FyZCwgUmV2LiAlWCIsIHJldik7CiAKIAlpZiAocyAhPSBOVUxMKSB7CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2FjYWRpYS9jbWRfYWNhZGlhLmMgYi9ib2FyZC9hbWNjL2FjYWRpYS9jbWRfYWNhZGlhLmMKaW5kZXggZmI3ZWEzNS4uMDUyY2Y2MSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9hY2FkaWEvY21kX2FjYWRpYS5jCisrKyBiL2JvYXJkL2FtY2MvYWNhZGlhL2NtZF9hY2FkaWEuYwpAQCAtODQsNyArODQsNyBAQAogCiAJaWYgKGkyY193cml0ZShjaGlwLCAwLCAxLCBidWYsIDE2KSAhPSAwKQogCQlwcmludGYoIkVycm9yIHdyaXRpbmcgdG8gRUVQUk9NIGF0IGFkZHJlc3MgMHgleFxuIiwgY2hpcCk7Ci0JdWRlbGF5KENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOworCXVkZWxheShDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CiAJaWYgKGkyY193cml0ZShjaGlwLCAweDEwLCAxLCBidWYrMTYsIDQpICE9IDApCiAJCXByaW50ZigiRXJyb3IyIHdyaXRpbmcgdG8gRUVQUk9NIGF0IGFkZHJlc3MgMHgleFxuIiwgY2hpcCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvYWNhZGlhL21lbW9yeS5jIGIvYm9hcmQvYW1jYy9hY2FkaWEvbWVtb3J5LmMKaW5kZXggNDhhNjcyNS4uM2U1YzgwZSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9hY2FkaWEvbWVtb3J5LmMKKysrIGIvYm9hcmQvYW1jYy9hY2FkaWEvbWVtb3J5LmMKQEAgLTM5LDcgKzM5LDcgQEAKIAl3cl92YWwgPDw9IDI7CiAKIAkvKiBzZXQgQ1JBTV9DUkUgdG8gMSAqLwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0NSQU1fQ1JFLCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fQ1JBTV9DUkUsIDEpOwogCiAJLyogV3JpdGUgQkNSIHRvIENSQU0gb24gQ1MxICovCiAJb3V0MzIod3JfdmFsICsgMHgwMDIwMDAwMCwgMCk7CkBAIC01Myw3ICs1Myw3IEBACiAJZWllaW8oKTsKIAogCS8qIHNldCBDUkFNX0NSRSBiYWNrIHRvIDAgKG5vcm1hbCBvcGVyYXRpb24pICovCi0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fQ1JBTV9DUkUsIDApOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19DUkFNX0NSRSwgMCk7CiAKIAlyZXR1cm47CiB9CkBAIC03NSwxMCArNzUsMTAgQEAKIAl1MzIgdmFsOwogCiAJLyogMS4gRUJDIG5lZWQgdG8gcHJvZ3JhbSBSRUFEWSwgQ0xLLCBBRFYgZm9yIEFTeW5jIG1vZGUgKi8KLQlncGlvX2NvbmZpZyhDRkdfR1BJT19DUkFNX0NMSywgR1BJT19PVVQsIEdQSU9fU0VMLCBHUElPX09VVF8wKTsKLQlncGlvX2NvbmZpZyhDRkdfR1BJT19DUkFNX0FEViwgR1BJT19PVVQsIEdQSU9fU0VMLCBHUElPX09VVF8wKTsKLQlncGlvX2NvbmZpZyhDRkdfR1BJT19DUkFNX0NSRSwgR1BJT19PVVQsIEdQSU9fU0VMLCBHUElPX09VVF8wKTsKLQlncGlvX2NvbmZpZyhDRkdfR1BJT19DUkFNX1dBSVQsIEdQSU9fSU4sIEdQSU9fU0VMLCBHUElPX09VVF9OT19DSEcpOworCWdwaW9fY29uZmlnKENPTkZJR19TWVNfR1BJT19DUkFNX0NMSywgR1BJT19PVVQsIEdQSU9fU0VMLCBHUElPX09VVF8wKTsKKwlncGlvX2NvbmZpZyhDT05GSUdfU1lTX0dQSU9fQ1JBTV9BRFYsIEdQSU9fT1VULCBHUElPX1NFTCwgR1BJT19PVVRfMCk7CisJZ3Bpb19jb25maWcoQ09ORklHX1NZU19HUElPX0NSQU1fQ1JFLCBHUElPX09VVCwgR1BJT19TRUwsIEdQSU9fT1VUXzApOworCWdwaW9fY29uZmlnKENPTkZJR19TWVNfR1BJT19DUkFNX1dBSVQsIEdQSU9fSU4sIEdQSU9fU0VMLCBHUElPX09VVF9OT19DSEcpOwogCiAJLyogMi4gRUJDIGluIEFzeW5jIG1vZGUgKi8KIAltdGViYyhwYjFhcCwgMHgwNzhGMUVDMCk7CkBAIC05NCw4ICs5NCw4IEBACiAJbXRlYmMocGIyYXAsIDB4OUMwMjAxQzApOwogCiAJLyogU2V0IEdQSU8gcGlucyBiYWNrIHRvIGFsdGVybmF0ZSBmdW5jdGlvbiAqLwotCWdwaW9fY29uZmlnKENGR19HUElPX0NSQU1fQ0xLLCBHUElPX09VVCwgR1BJT19BTFQxLCBHUElPX09VVF9OT19DSEcpOwotCWdwaW9fY29uZmlnKENGR19HUElPX0NSQU1fQURWLCBHUElPX09VVCwgR1BJT19BTFQxLCBHUElPX09VVF9OT19DSEcpOworCWdwaW9fY29uZmlnKENPTkZJR19TWVNfR1BJT19DUkFNX0NMSywgR1BJT19PVVQsIEdQSU9fQUxUMSwgR1BJT19PVVRfTk9fQ0hHKTsKKwlncGlvX2NvbmZpZyhDT05GSUdfU1lTX0dQSU9fQ1JBTV9BRFYsIEdQSU9fT1VULCBHUElPX0FMVDEsIEdQSU9fT1VUX05PX0NIRyk7CiAKIAkvKiBDb25maWcgRUJDIHRvIHVzZSBSRFkgKi8KIAltZnNkcihzZHJ1bHRyYTAsIHZhbCk7CkBAIC0xMDYsNSArMTA2LDUgQEAKIAkJOwogI2VuZGlmCiAKLQlyZXR1cm4gKENGR19NQllURVNfUkFNIDw8IDIwKTsKKwlyZXR1cm4gKENPTkZJR19TWVNfTUJZVEVTX1JBTSA8PCAyMCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2JhbWJvby9iYW1ib28uYyBiL2JvYXJkL2FtY2MvYmFtYm9vL2JhbWJvby5jCmluZGV4IGY0MTU3MDEuLmZlYmM2MWEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvYmFtYm9vL2JhbWJvby5jCisrKyBiL2JvYXJkL2FtY2MvYmFtYm9vL2JhbWJvby5jCkBAIC00NjIsNyArNDYyLDcgQEAKIAogCXJldHVybiBkcmFtX3NpemU7CiAjZWxzZQotCXJldHVybiBDRkdfTUJZVEVTX1NEUkFNIDw8IDIwOworCXJldHVybiBDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMDsKICNlbmRpZgogfQogCkBAIC01MjksNyArNTI5LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtNTQzLDE0ICs1NDMsMTQgQEAKIAkgIHwgTWFrZSB0aGlzIHJlZ2lvbiBub24tcHJlZmV0Y2hhYmxlLgogCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMExBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMFBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIAogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0xTEEsIENGR19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDRkdfUENJX01FTUJBU0UyKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7IC8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xUENJTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMVBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIApAQCAtNTY1LDggKzU2NSw4IEBACiAKIAkvKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC92ZW5kb3IgaWQgKi8KIAlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9WRU5ET1JfSUQsCi0JCQkgICAgICBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCk7Ci0JcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fSUQsIENGR19QQ0lfU1VCU1lTX0lEKTsKKwkJCSAgICAgIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCk7CisJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19JRCk7CiAKIAkvKiBDb25maWd1cmUgY29tbWFuZCByZWdpc3RlciBhcyBidXMgbWFzdGVyICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9DT01NQU5ELCBQQ0lfQ09NTUFORF9NQVNURVIpOwpAQCAtNTgwLDEzICs1ODAsMTMgQEAKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKDAsIFBDSV9CUkRHT1BUMiwgMHgwMDAwMDEwMSk7CiAKIH0KLSNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgcGNpX21hc3Rlcl9pbml0CiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpCiB2b2lkIHBjaV9tYXN0ZXJfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJdW5zaWduZWQgc2hvcnQgdGVtcF9zaG9ydDsKQEAgLTYwMSw3ICs2MDEsNyBAQAogCQkJICAgICAgdGVtcF9zaG9ydCB8IFBDSV9DT01NQU5EX01BU1RFUiB8CiAJCQkgICAgICBQQ0lfQ09NTUFORF9NRU1PUlkpOwogfQotI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKSAqLworI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBpc19wY2lfaG9zdApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9iYW1ib28vY29uZmlnLm1rIGIvYm9hcmQvYW1jYy9iYW1ib28vY29uZmlnLm1rCmluZGV4IGI0NjUyN2QuLmEzNzYzNmEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvYmFtYm9vL2NvbmZpZy5taworKysgYi9ib2FyZC9hbWNjL2JhbWJvby9jb25maWcubWsKQEAgLTM0LDUgKzM0LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2JhbWJvby9mbGFzaC5jIGIvYm9hcmQvYW1jYy9iYW1ib28vZmxhc2guYwppbmRleCBkMDA0ZWQ3Li4wMDEzNDhhIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2JhbWJvby9mbGFzaC5jCisrKyBiL2JvYXJkL2FtY2MvYmFtYm9vL2ZsYXNoLmMKQEAgLTQ1LDEyICs0NSwxMiBAQAogI2RlZmluZSBERUJVR0YoeC4uLikKICNlbmRpZgkJCQkvKiBERUJVRyAqLwogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLwogCiAvKgogICogTWFyayBiaWcgZmxhc2ggYmFuayAoMTYgYml0IGluc3RlYWQgb2YgOCBiaXQgYWNjZXNzKSBpbiBhZGRyZXNzIHdpdGggYml0IDAKICAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVtdW0NGR19NQVhfRkxBU0hfQkFOS1NdID0geworc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVtdW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IHsKIAl7MHg4NzgwMDAwMSwgMHhGRkYwMDAwMCwgMHhGRkY4MDAwMH0sIC8qIDA6Ym9vdCBmcm9tIHNtYWxsIGZsYXNoICovCiAJezB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDB9LCAvKiAxOmJvb3QgZnJvbSBwY2kgNjYgICAgICAqLwogCXsweDg3ODAwMDAxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwfSwgLyogMDpib290IGZyb20gbmFuZCBmbGFzaCAgKi8KQEAgLTc5LDcgKzc5LDcgQEAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgdG90YWxfYiA9IDA7Ci0JdW5zaWduZWQgbG9uZyBzaXplX2JbQ0ZHX01BWF9GTEFTSF9CQU5LU107CisJdW5zaWduZWQgbG9uZyBzaXplX2JbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCXVuc2lnbmVkIHNob3J0IGluZGV4ID0gMDsKIAlpbnQgaTsKIAl1bnNpZ25lZCBsb25nIHZhbDsKQEAgLTEyOCw3ICsxMjgsNyBAQAogCURFQlVHRigiRkxBU0g6IEluZGV4OiAlZFxuIiwgaW5kZXgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAtMTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKQEAgLTE1MCw4ICsxNTAsOCBAQAogCQl9CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9baV0pOwogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2JhbWJvby9pbml0LlMgYi9ib2FyZC9hbWNjL2JhbWJvby9pbml0LlMKaW5kZXggZjRkMmFlMy4uYTVjOWQ2ZCAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9iYW1ib28vaW5pdC5TCisrKyBiL2JvYXJkL2FtY2MvYmFtYm9vL2luaXQuUwpAQCAtNDgsMjkgKzQ4LDI5IEBACiAJICogc3BlZWQgdXAgYm9vdCBwcm9jZXNzLiBJdCBpcyBwYXRjaGVkIGFmdGVyIHJlbG9jYXRpb24gdG8gZW5hYmxlIFNBX0kKIAkgKi8KICNpZm5kZWYgQ09ORklHX05BTkRfU1BMCi0JdGxiZW50cnkoQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDRkdfQk9PVF9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgU1pfMjU2TSwgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKICNlbHNlCi0JdGxiZW50cnkoQ0ZHX05BTkRfQk9PVF9TUExfU1JDLCBTWl80SywgQ0ZHX05BTkRfQk9PVF9TUExfU1JDLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQotCXRsYmVudHJ5KENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDRkdfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMsIFNaXzRLLCBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQorCXRsYmVudHJ5KENPTkZJR19TWVNfU0RSQU1fQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19TRFJBTV9CQVNFLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAjZW5kaWYKIAogCS8qIFRMQi1lbnRyeSBmb3IgaW5pdC1yYW0gaW4gZGNhY2hlIChTQV9JIG11c3QgYmUgdHVybmVkIG9mZiEpICovCi0JdGxiZW50cnkoQ0ZHX0lOSVRfUkFNX0FERFIsIFNaXzRLLCBDRkdfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIFNaXzRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCiAKIAkvKiBQQ0kgYmFzZSAmIHBlcmlwaGVyYWxzICovCi0JdGxiZW50cnkoQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCBDRkdfUENJX0JBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19OVlJBTV9CQVNFX0FERFIsIFNaXzI1Nk0sIENGR19OVlJBTV9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX1d8U0FfSSkKLQl0bGJlbnRyeShDRkdfTkFORF9BRERSLCBTWl80SywgQ0ZHX05BTkRfQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfV3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSLCBTWl8yNTZNLCBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfV3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfTkFORF9BRERSLCBTWl80SywgQ09ORklHX1NZU19OQU5EX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX1d8U0FfSSkKIAogCS8qIFBDSSAqLwotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTEsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMiwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UzLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKIAkvKiBVU0IgMi4wIERldmljZSAqLwotCXRsYmVudHJ5KENGR19VU0JfREVWSUNFLCBTWl8xSywgQ0ZHX1VTQl9ERVZJQ0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19VU0JfREVWSUNFLCBTWl8xSywgQ09ORklHX1NZU19VU0JfREVWSUNFLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCiAJdGxidGFiX2VuZAogCkBAIC03OSw4ICs3OSw4IEBACiAJICogRm9yIE5BTkQgYm9vdGluZyB0aGUgZmlyc3QgVExCIGhhcyB0byBiZSByZWNvbmZpZ3VyZWQgdG8gZnVsbCBzaXplCiAJICogYW5kIHdpdGggY2FjaGluZyBkaXNhYmxlZCBhZnRlciBydW5uaW5nIGZyb20gUkFNIQogCSAqLwotI2RlZmluZSBUTEIwMAlUTEIwKENGR19CT09UX0JBU0VfQUREUiwgU1pfMjU2TSkKLSNkZWZpbmUgVExCMDEJVExCMShDRkdfQk9PVF9CQVNFX0FERFIsIDApCisjZGVmaW5lIFRMQjAwCVRMQjAoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgU1pfMjU2TSkKKyNkZWZpbmUgVExCMDEJVExCMShDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCAwKQogI2RlZmluZSBUTEIwMglUTEIyKEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKIAogCS5nbG9ibAlyZWNvbmZpZ190bGIwCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2J1YmluZ2EvZmxhc2guYyBiL2JvYXJkL2FtY2MvYnViaW5nYS9mbGFzaC5jCmluZGV4IGQ3MWNjMjkuLmExMGJhYmIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvYnViaW5nYS9mbGFzaC5jCisrKyBiL2JvYXJkL2FtY2MvYnViaW5nYS9mbGFzaC5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8cHBjNHh4Lmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLwogCiAjdW5kZWYgREVCVUcKICNpZmRlZiBERUJVRwpAQCAtNjAsNyArNjAsNyBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZV9iMCwgYmFzZV9iMTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC03NSwxNCArNzUsMTQgQEAKIAl9CiAKIAkvKiBPbmx5IG9uZSBiYW5rICovCi0JaWYgKENGR19NQVhfRkxBU0hfQkFOS1MgPT0gMSkgeworCWlmIChDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CiAJCS8qIFNldHVwIG9mZnNldHMgKi8KIAkJZmxhc2hfZ2V0X29mZnNldHMoRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIDEsCiAJCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX0VOVl9BRERSLApAQCAtMTMzLDcgKzEzMyw3IEBACiAKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJCSAgICBiYXNlX2IwICsgc2l6ZV9iMCAtIENGR19NT05JVE9SX0xFTiwKKwkJCQkgICAgYmFzZV9iMCArIHNpemVfYjAgLSBDT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJCSAgICBiYXNlX2IwICsgc2l6ZV9iMCAtIDEsICZmbGFzaF9pbmZvWzBdKTsKIAkJLyogQWxzbyBwcm90ZWN0IHNlY3RvciBjb250YWluaW5nIGluaXRpYWwgcG93ZXItdXAgaW5zdHJ1Y3Rpb24gKi8KIAkJLyogKGZsYXNoX3Byb3RlY3QoKSBjaGVja3MgYWRkcmVzcyByYW5nZSAtIG90aGVyIGNhbGwgaWdub3JlZCkgKi8KQEAgLTE1MSwxMiArMTUxLDEyIEBACiAKIAkJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJCSAgICBiYXNlX2IxICsgc2l6ZV9iMSAtIENGR19NT05JVE9SX0xFTiwKKwkJCQkJICAgIGJhc2VfYjEgKyBzaXplX2IxIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCQkJICAgIGJhc2VfYjEgKyBzaXplX2IxIC0gMSwKIAkJCQkJICAgICZmbGFzaF9pbmZvWzFdKTsKIAkJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPRkYgYnkgZGVmYXVsdCAob25lIGlzIGVub3VnaCkgKi8KIAkJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX0NMRUFSLAotCQkJCQkgICAgYmFzZV9iMCArIHNpemVfYjAgLSBDRkdfTU9OSVRPUl9MRU4sCisJCQkJCSAgICBiYXNlX2IwICsgc2l6ZV9iMCAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkJCSAgICBiYXNlX2IwICsgc2l6ZV9iMCAtIDEsCiAJCQkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAJCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2Jvb3RzdHJhcC5jIGIvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9ib290c3RyYXAuYwppbmRleCAxZDEyNWI2Li42Yjc0NzQzIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2Jvb3RzdHJhcC5jCisrKyBiL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvYm9vdHN0cmFwLmMKQEAgLTE2OCw3ICsxNjgsNyBAQAogCiAJaWYgKGkyY193cml0ZShJMkNfRUVQUk9NX0FERFIsIDAsIDEsIGJ1ZiwgMTYpICE9IDApCiAJCXByaW50ZigiRXJyb3Igd3JpdGluZyB0byBFRVBST00gYXQgYWRkcmVzcyAweCV4XG4iLCBJMkNfRUVQUk9NX0FERFIpOwotCXVkZWxheShDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKKwl1ZGVsYXkoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOwogCiAJcHJpbnRmKCJEb25lXG4iKTsKIAlwcmludGYoIlBsZWFzZSBwb3dlci1jeWNsZSB0aGUgYm9hcmQgZm9yIHRoZSBjaGFuZ2VzIHRvIHRha2UgZWZmZWN0XG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvY2FueW9ubGFuZHMuYyBiL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvY2FueW9ubGFuZHMuYwppbmRleCA0NzY2N2VlLi5lOTE4NmY4IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NhbnlvbmxhbmRzLmMKKysrIGIvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9jYW55b25sYW5kcy5jCkBAIC0yOSwxMSArMjksMTEgQEAKICNpbmNsdWRlIDxhc20vNHh4X3BjaWUuaD4KICNpbmNsdWRlIDxhc20vZ3Bpby5oPgogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2RlZmluZSBDRkdfQkNTUjNfUENJRQkJMHgxMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IzX1BDSUUJCTB4MTAKIAogI2RlZmluZSBCT0FSRF9DQU5ZT05MQU5EU19QQ0lFCTEKICNkZWZpbmUgQk9BUkRfQ0FOWU9OTEFORFNfU0FUQQkyCkBAIC04Niw3ICs4Niw3IEBACiAJCVNEUjBfQ1VTVDBfTkRGQ19CV184X0JJVAl8CiAJCVNEUjBfQ1VTVDBfTkRGQ19BUkVfTUFTSwl8CiAJCVNEUjBfQ1VTVDBfTkRGQ19CQUNfRU5DT0RFKDMpCXwKLQkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ0ZHX05BTkRfQ1MpKTsKKwkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ09ORklHX1NZU19OQU5EX0NTKSk7CiAJbXRzZHIoU0RSMF9DVVNUMCwgc2RyMF9jdXN0MCk7CiAKIAkvKgpAQCAtOTksMTMgKzk5LDEzIEBACiAJbXRzZHIoU0RSMF9QQ0kwLCAweGUwMDAwMDAwKTsKIAogCS8qIEVuYWJsZSBldGhlcm5ldCBhbmQgdGFrZSBvdXQgb2YgcmVzZXQgKi8KLQlvdXRfOCgodm9pZCAqKUNGR19CQ1NSX0JBU0UgKyA2LCAwKTsKKwlvdXRfOCgodm9pZCAqKUNPTkZJR19TWVNfQkNTUl9CQVNFICsgNiwgMCk7CiAKIAkvKiBSZW1vdmUgTk9SLUZMQVNILCBOQU5ELUZMQVNIICYgRUVQUk9NIGhhcmR3YXJlIHdyaXRlIHByb3RlY3Rpb24gKi8KLQlvdXRfOCgodm9pZCAqKUNGR19CQ1NSX0JBU0UgKyA1LCAwKTsKKwlvdXRfOCgodm9pZCAqKUNPTkZJR19TWVNfQkNTUl9CQVNFICsgNSwgMCk7CiAKIAkvKiBFbmFibGUgVVNCIGhvc3QgJiBVU0ItT1RHICovCi0Jb3V0XzgoKHZvaWQgKilDRkdfQkNTUl9CQVNFICsgNywgMCk7CisJb3V0XzgoKHZvaWQgKilDT05GSUdfU1lTX0JDU1JfQkFTRSArIDcsIDApOwogCiAJbXRzZHIoU0RSMF9TUlNUMSwgMCk7CS8qIFB1bGwgQUhCIG91dCBvZiByZXNldCBkZWZhdWx0PTEgKi8KIApAQCAtMTU4LDcgKzE1OCw3IEBACiAJCWdkLT5ib2FyZF90eXBlID0gQk9BUkRfR0xBQ0lFUjsKIAl9IGVsc2UgewogCQlwcmludGYoIkJvYXJkOiBDYW55b25sYW5kcyAtIEFNQ0MgUFBDNDYwRVggRXZhbHVhdGlvbiBCb2FyZCIpOwotCQlpZiAoaW5fOCgodm9pZCAqKShDRkdfQkNTUl9CQVNFICsgMykpICYgQ0ZHX0JDU1IzX1BDSUUpCisJCWlmIChpbl84KCh2b2lkICopKENPTkZJR19TWVNfQkNTUl9CQVNFICsgMykpICYgQ09ORklHX1NZU19CQ1NSM19QQ0lFKQogCQkJZ2QtPmJvYXJkX3R5cGUgPSBCT0FSRF9DQU5ZT05MQU5EU19QQ0lFOwogCQllbHNlCiAJCQlnZC0+Ym9hcmRfdHlwZSA9IEJPQVJEX0NBTllPTkxBTkRTX1NBVEE7CkBAIC0xNzUsNyArMTc1LDcgQEAKIAkJYnJlYWs7CiAJfQogCi0JcHJpbnRmKCIsIFJldi4gJVgiLCBpbl84KCh2b2lkICopKENGR19CQ1NSX0JBU0UgKyAwKSkpOworCXByaW50ZigiLCBSZXYuICVYIiwgaW5fOCgodm9pZCAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDApKSk7CiAKIAlpZiAocyAhPSBOVUxMKSB7CiAJCXB1dHMoIiwgc2VyaWFsIyAiKTsKQEAgLTIwOCw3ICsyMDgsNyBAQAogICovCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQlyZXR1cm4gQ0ZHX01CWVRFU19TRFJBTSA8PCAyMDsKKwlyZXR1cm4gQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjA7CiB9CiAjZW5kaWYKIApAQCAtMjE5LDcgKzIxOSw3IEBACiAgKglpbmJvdW5kIG1hcCAoUElNKS4gQnV0IHRoZSBib290c3RyYXAgY29uZmlnIGNob2ljZXMgYXJlIGxpbWl0ZWQgYW5kCiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKiBob3NlICkKIHsKIAkvKgpAQCAtMjM0LDcgKzIzNCw3IEBACiAJICogTWFwIGFsbCBvZiBTRFJBTSB0byBQQ0kgYWRkcmVzcyAweDAwMDBfMDAwMC4gTm90ZSB0aGF0IHRoZSA0NDAKIAkgKiBzdHJhcHBpbmcgb3B0aW9ucyB0byBub3Qgc3VwcG9ydCBzaXplcyBzdWNoIGFzIDEyOC8yNTYgTUIuCiAJICovCi0Jb3V0X2xlMzIoKHZvaWQgKilQQ0lYMF9QSU0wTEFMLCBDRkdfU0RSQU1fQkFTRSk7CisJb3V0X2xlMzIoKHZvaWQgKilQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCW91dF9sZTMyKCh2b2lkICopUENJWDBfUElNMExBSCwgMCk7CiAJb3V0X2xlMzIoKHZvaWQgKilQQ0lYMF9QSU0wU0EsIH4oZ2QtPnJhbV9zaXplIC0gMSkgfCAxKTsKIAlvdXRfbGUzMigodm9pZCAqKVBDSVgwX0JBUjAsIDApOwpAQCAtMjQyLDEyICsyNDIsMTIgQEAKIAkvKgogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLwotCW91dF9sZTE2KCh2b2lkICopUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKLQlvdXRfbGUxNigodm9pZCAqKVBDSVgwX1NCU1lTSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEKTsKKwlvdXRfbGUxNigodm9pZCAqKVBDSVgwX1NCU1lTVklELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCW91dF9sZTE2KCh2b2lkICopUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEKTsKIAogCW91dF9sZTE2KCh2b2lkICopUENJWDBfQ01ELCBpbjE2cihQQ0lYMF9DTUQpIHwgUENJX0NPTU1BTkRfTUVNT1JZKTsKIH0KLSNlbmRpZgkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZgkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAvKgpAQCAtMzE0LDkgKzMxNCw5IEBACiAKIAkJLyogc2V0dXAgbWVtIHJlc291cmNlICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lFX01FTUJBU0UgKyBpICogQ0ZHX1BDSUVfTUVNU0laRSwKLQkJCSAgICAgICBDRkdfUENJRV9NRU1CQVNFICsgaSAqIENGR19QQ0lFX01FTVNJWkUsCi0JCQkgICAgICAgQ0ZHX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDE7CiAJCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwpAQCAtMzYyLDE2ICszNjIsMTYgQEAKIAogCS8qIFJlbWFwIHRoZSBOT1IgRkxBU0ggdG8gMHhjYzAwLjAwMDAgLi4uIDB4Y2ZmZi5mZmZmICovCiAjaWYgZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpIHx8IGRlZmluZWQoQ09ORklHX05BTkRfU1BMKQotCW10ZWJjKHBiM2NyLCBDRkdfRkxBU0hfQkFTRV9QSFlTX0wgfCAweGRhMDAwKTsKKwltdGViYyhwYjNjciwgQ09ORklHX1NZU19GTEFTSF9CQVNFX1BIWVNfTCB8IDB4ZGEwMDApOwogI2Vsc2UKLQltdGViYyhwYjBjciwgQ0ZHX0ZMQVNIX0JBU0VfUEhZU19MIHwgMHhkYTAwMCk7CisJbXRlYmMocGIwY3IsIENPTkZJR19TWVNfRkxBU0hfQkFTRV9QSFlTX0wgfCAweGRhMDAwKTsKICNlbmRpZgogCiAJLyogUmVtb3ZlIFRMQiBlbnRyeSBvZiBib290IEVCQyBtYXBwaW5nICovCi0JcmVtb3ZlX3RsYihDRkdfQk9PVF9CQVNFX0FERFIsIDE2IDw8IDIwKTsKKwlyZW1vdmVfdGxiKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDE2IDw8IDIwKTsKIAogCS8qIEFkZCBUTEIgZW50cnkgZm9yIDB4ZmMwMC4wMDAwIC0+IDB4NC5jYzAwLjAwMDAgKi8KLQlwcm9ncmFtX3RsYihDRkdfRkxBU0hfQkFTRV9QSFlTLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX1NJWkUsCisJcHJvZ3JhbV90bGIoQ09ORklHX1NZU19GTEFTSF9CQVNFX1BIWVMsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9TSVpFLAogCQkgICAgVExCX1dPUkQyX0lfRU5BQkxFKTsKIAogCS8qCkBAIC00MjcsOSArNDI3LDkgQEAKIAkgKiBEaXNhYmxlIHNxdWFyZSB3YXZlIG91dHB1dDogQmF0dGVyaWUgd2lsbCBiZSBkcmFpbmVkCiAJICogcXVpY2tseSwgd2hlbiB0aGlzIG91dHB1dCBpcyBub3QgZGlzYWJsZWQKIAkgKi8KLQl2YWwgPSBpMmNfcmVnX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgMHhhKTsKKwl2YWwgPSBpMmNfcmVnX3JlYWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDB4YSk7CiAJdmFsICY9IH4weDQwOwotCWkyY19yZWdfd3JpdGUoQ0ZHX0kyQ19SVENfQUREUiwgMHhhLCB2YWwpOworCWkyY19yZWdfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDB4YSwgdmFsKTsKIAogCXJldHVybiAwOwogfQpAQCAtNDQ1LDcgKzQ0NSw3IEBACiAJLyogRml4dXAgTk9SIG1hcHBpbmcgKi8KIAl2YWxbMF0gPSAwOwkJCQkvKiBjaGlwIHNlbGVjdCBudW1iZXIgKi8KIAl2YWxbMV0gPSAwOwkJCQkvKiBhbHdheXMgMCAqLwotCXZhbFsyXSA9IENGR19GTEFTSF9CQVNFX1BIWVNfTDsJCS8qIHdlIGZpeGVkIHVwIHRoaXMgYWRkcmVzcyAqLworCXZhbFsyXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRV9QSFlTX0w7CQkvKiB3ZSBmaXhlZCB1cCB0aGlzIGFkZHJlc3MgKi8KIAl2YWxbM10gPSBnZC0+YmQtPmJpX2ZsYXNoc2l6ZTsKIAlyYyA9IGZkdF9maW5kX2FuZF9zZXRwcm9wKGJsb2IsICIvcGxiL29wYi9lYmMiLCAicmFuZ2VzIiwKIAkJCQkgIHZhbCwgc2l6ZW9mKHZhbCksIDEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9jb25maWcubWsgYi9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NvbmZpZy5tawppbmRleCAyMzMwY2FlLi41NTFhODE3IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NvbmZpZy5taworKysgYi9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NvbmZpZy5tawpAQCAtMzcsNSArMzcsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvaW5pdC5TIGIvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9pbml0LlMKaW5kZXggMjU4ZmI1ZC4uMTc5ZGQzMiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9pbml0LlMKKysrIGIvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9pbml0LlMKQEAgLTQ3LDEwICs0NywxMCBAQAogCSAqIGVuYWJsZSBTQV9JCiAJICovCiAjaWZuZGVmIENPTkZJR19OQU5EX1NQTAotCXRsYmVudHJ5KENGR19CT09UX0JBU0VfQUREUiwgU1pfMTZNLCBDRkdfQk9PVF9CQVNFX0FERFIsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0cpIC8qIFRMQiAwICovCisJdGxiZW50cnkoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgU1pfMTZNLCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9HKSAvKiBUTEIgMCAqLwogI2Vsc2UKLQl0bGJlbnRyeShDRkdfTkFORF9CT09UX1NQTF9TUkMsIFNaXzRLLCBDRkdfTkFORF9CT09UX1NQTF9TUkMsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCi0JdGxiZW50cnkoQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENGR19TRFJBTV9CQVNFLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQywgU1pfNEssIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKIAl0bGJlbnRyeSgyNTYgPDwgMjAsIFNaXzI1Nk0sIDI1NiA8PCAyMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogI2VuZGlmCiAKQEAgLTYwLDM3ICs2MCwzNyBAQAogCSAqIHJvdXRpbmUuCiAJICovCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fRENBQ0hFCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUKIAkvKiBUTEItZW50cnkgZm9yIGluaXQtcmFtIGluIGRjYWNoZSAoU0FfSSBtdXN0IGJlIHR1cm5lZCBvZmYhKSAqLwotCXRsYmVudHJ5KENGR19JTklUX1JBTV9BRERSLCBTWl80SywgQ0ZHX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBTWl80SywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQogI2VuZGlmCiAKLQl0bGJlbnRyeShDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MjAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRV9NRU1CQVNFLCBTWl8yNTZNLCAweEIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MjAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSwgU1pfMjU2TSwgMHhCMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX1BDSUUwX0NGR0JBU0UsIFNaXzE2TSwgMHgwMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9DRkdCQVNFLCBTWl8xNk0sIDB4MjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTBfWENGR0JBU0UsIFNaXzFLLCAweDEwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX1hDRkdCQVNFLCBTWl8xSywgMHgzMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRSwgU1pfMTZNLCAweDAwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFLCBTWl8xNk0sIDB4MjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUwX1hDRkdCQVNFLCBTWl8xSywgMHgxMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTFfWENGR0JBU0UsIFNaXzFLLCAweDMwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKIAkvKiBQQ0llIFVUTCByZWdpc3RlciAqLwotCXRsYmVudHJ5KENGR19QQ0lFX0JBU0UsIFNaXzE2SywgMHgwODAxMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRV9CQVNFLCBTWl8xNkssIDB4MDgwMTAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAogCS8qIFRMQi1lbnRyeSBmb3IgTkFORCAqLwotCXRsYmVudHJ5KENGR19OQU5EX0FERFIsIFNaXzE2TSwgQ0ZHX05BTkRfQUREUiwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfTkFORF9BRERSLCBTWl8xNk0sIENPTkZJR19TWVNfTkFORF9BRERSLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAKIAkvKiBUTEItZW50cnkgZm9yIENQTEQgKi8KLQl0bGJlbnRyeShDRkdfQkNTUl9CQVNFLCBTWl8xSywgQ0ZHX0JDU1JfQkFTRSwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0JDU1JfQkFTRSwgU1pfMUssIENPTkZJR19TWVNfQkNTUl9CQVNFLCA0LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCiAJLyogVExCLWVudHJ5IGZvciBPQ00gKi8KLQl0bGJlbnRyeShDRkdfT0NNX0JBU0UsIFNaXzE2SywgMHgwMDA0MDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX09DTV9CQVNFLCBTWl8xNkssIDB4MDAwNDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCiAKIAkvKiBUTEItZW50cnkgZm9yIExvY2FsIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzID0+IHBlcmlwaGVyYWxzICovCi0JdGxiZW50cnkoQ0ZHX0xPQ0FMX0NPTkZfUkVHUywgU1pfMTZNLCBDRkdfTE9DQUxfQ09ORl9SRUdTLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19MT0NBTF9DT05GX1JFR1MsIFNaXzE2TSwgQ09ORklHX1NZU19MT0NBTF9DT05GX1JFR1MsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKIAogCS8qIEFIQjogSW50ZXJuYWwgVVNCIFBlcmlwaGVyYWxzIChVU0IsIFNBVEEpICovCi0JdGxiZW50cnkoQ0ZHX0FIQl9CQVNFLCBTWl8xTSwgMHhiZmYwMDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfQUhCX0JBU0UsIFNaXzFNLCAweGJmZjAwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAKIAl0bGJ0YWJfZW5kCiAKQEAgLTk5LDggKzk5LDggQEAKIAkgKiBGb3IgTkFORCBib290aW5nIHRoZSBmaXJzdCBUTEIgaGFzIHRvIGJlIHJlY29uZmlndXJlZCB0byBmdWxsIHNpemUKIAkgKiBhbmQgd2l0aCBjYWNoaW5nIGRpc2FibGVkIGFmdGVyIHJ1bm5pbmcgZnJvbSBSQU0hCiAJICovCi0jZGVmaW5lIFRMQjAwCVRMQjAoQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNKQotI2RlZmluZSBUTEIwMQlUTEIxKENGR19CT09UX0JBU0VfQUREUiwgMSkKKyNkZWZpbmUgVExCMDAJVExCMChDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNKQorI2RlZmluZSBUTEIwMQlUTEIxKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDEpCiAjZGVmaW5lIFRMQjAyCVRMQjIoQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogCiAJLmdsb2JsCXJlY29uZmlnX3RsYjAKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9hbWNjL2NvbW1vbi9mbGFzaC5jCmluZGV4IGViYTA1MTEuLjk5NDNjNzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvY29tbW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvYW1jYy9jb21tb24vZmxhc2guYwpAQCAtMzUsMTMgKzM1LDEzIEBACiAjaW5jbHVkZSA8cHBjNHh4Lmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCiAgKi8KIHN0YXRpYyBpbnQgd3JpdGVfd29yZChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogc3RhdGljIGludCB3cml0ZV93b3JkXzEoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKIHN0YXRpYyBpbnQgZmxhc2hfZXJhc2VfMShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCk7CkBAIC0xNzEsNyArMTcxLDcgQEAKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGNvZGUgY2Fubm90IGJlIHJ1biBmcm9tIEZMQVNIIQogICovCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIHN0YXRpYyB1bG9uZyBmbGFzaF9nZXRfc2l6ZSh2dV9sb25nICogYWRkciwgZmxhc2hfaW5mb190ICogaW5mbykKIHsKIAkvKiBiaXQgMCB1c2VkIGZvciBiaWcgZmxhc2ggbWFya2luZyAqLwpAQCAtMTg4LDMyICsxODgsMzIgQEAKICNlbmRpZgogewogCXNob3J0IGk7Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKSBhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKIAogCURFQlVHRigiRkxBU0ggQUREUjogJTA4eFxuIiwgKHVuc2lnbmVkKWFkZHIpOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDkwMDA5MDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDkwMDA5MDsKIAl1ZGVsYXkoMTAwMCk7CiAKIAl2YWx1ZSA9IGFkZHIyWzBdOwogCURFQlVHRigiRkxBU0ggTUFOVUZBQ1Q6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgRlVKX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBGVUpfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1NUX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBTU1RfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NTVDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1RNX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBTVE1fTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NUTTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTIyNyw2NyArMjI3LDY3IEBACiAJREVCVUdGKCJcbkZMQVNIIERFVklDRUlEOiAleFxuIiwgdmFsdWUpOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjA0MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjA0MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMDQwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA4OwogCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwOwkJLyogPT4gNTEyIEtpQiAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9GMDQwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0YwNDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsJCS8qID0+IDUxMiBLaUIgKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTVE1fSURfTTI5VzA0MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNUTV9JRF9NMjlXMDQwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CQkvKiA9PiA1MTIgS2lCICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0YwMTZEOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjAxNkQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNRDAxNjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzI7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwkvKiA9PiAyIE1pQiAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjAzM0M6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjAzM0M6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNRExWMDMzQzsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjQ7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwkvKiA9PiA0IE1pQiAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjQwMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjQwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwkvKiA9PiA1MTIgS2lCICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU00MDBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAwODAwMDA7CS8qID0+IDUxMiBLaUIgKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsJLyogPT4gMSBNaUIgKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsJLyogPT4gMSBNaUIgKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsJLyogPT4gMiBNaUIgKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsJLyogPT4gMiBNaUIgKi8KQEAgLTMzMSwxNCArMzMxLDE0IEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAogCQkvKiBGb3IgQU1EMjkwMzNDIGZsYXNoIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBjb21tYW5kIG9mICoKIAkJICogcmVhZGluZyBmbGFzaCBwcm90ZWN0aW9uIGZvciB1cHBlciA4IE1iIG9mIGZsYXNoICAgICAqLwogCQlpZiAoaSA9PSAzMikgewotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OwotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOwogCQl9CiAKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKQpAQCAtMzQ4LDcgKzM0OCw3IEBACiAJfQogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CkBAIC0zNTYsMTQgKzM1NiwxNCBAQAogc3RhdGljIGludCB3YWl0X2Zvcl9EUTdfMShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdCkKIHsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQotCSAgICAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0KKwkgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAlsYXN0ID0gc3RhcnQ7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JICAgICAgIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkgICAgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTM3Niw3ICszNzYsNyBAQAogCXJldHVybiAwOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIGludCBmbGFzaF9lcmFzZShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKIAlpZiAoKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1RZUEVNQVNLKSA9PSBGTEFTSF9BTTMyMEIpIHx8CkBAIC0zOTQsOCArMzk0LDggQEAKIGludCBmbGFzaF9lcmFzZShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKICNlbmRpZgogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAJaW50IGk7CiAKQEAgLTQzNSwyNCArNDM1LDI0IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCiAJCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTAwMDUwOwkvKiBibG9jayBlcmFzZSAqLworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDUwMDA1MDsJLyogYmxvY2sgZXJhc2UgKi8KIAkJCQlmb3IgKGkgPSAwOyBpIDwgNTA7IGkrKykKIAkJCQkJdWRlbGF5KDEwMDApOwkvKiB3YWl0IDEgbXMgKi8KIAkJCX0gZWxzZSB7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDMwMDAzMDsJLyogc2VjdG9yIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KIAkJCX0KIAkJCWxfc2VjdCA9IHNlY3Q7CiAJCQkvKgpAQCAtNDc0LDggKzQ3NCw4IEBACiAJdWRlbGF5KDEwMDApOwogCiAJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCi0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOwotCWFkZHJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07CisJYWRkclswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCiAJcHJpbnRmKCIgZG9uZVxuIik7CiAJcmV0dXJuIDA7CkBAIC01NTcsNyArNTU3LDcgQEAKICAqIDEgLSB3cml0ZSB0aW1lb3V0CiAgKiAyIC0gRmxhc2ggbm90IGVyYXNlZAogICovCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIHN0YXRpYyBpbnQgd3JpdGVfd29yZChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewogCWlmICgoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVFlQRU1BU0spID09IEZMQVNIX0FNMzIwQikgfHwKQEAgLTU3NSw5ICs1NzUsOSBAQAogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiAjZW5kaWYKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgJiBkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGk7CiAKQEAgLTU4NiwxNSArNTg2LDE1IEBACiAJCXJldHVybiAoMik7CiAJfQogCi0JZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CiAJCWludCBmbGFnOwogCiAJCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCQlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKIAogCQlkZXN0MltpXSA9IGRhdGEyW2ldOwogCkBAIC02MDQsMTAgKzYwNCwxMCBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIoMCk7Ci0JCXdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkJICAgICAgIChkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgeworCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkgICAgICAgKGRhdGEyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgewogCi0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KQEAgLTYxNiwxMCArNjE2LDEwIEBACiAJcmV0dXJuICgwKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWCiAKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1dPUkRfU0laRQotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFIHVuc2lnbmVkIHNob3J0CisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHVuc2lnbmVkIHNob3J0CiAKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGNvZGUgY2Fubm90IGJlIHJ1biBmcm9tIEZMQVNIIQpAQCAtNjI4LDM1ICs2MjgsMzUgQEAKIHsKIAlzaG9ydCBpOwogCWludCBuOwotCUNGR19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CisJQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CiAJdWxvbmcgYmFzZSA9ICh1bG9uZykgYWRkcjsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGFkZHI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGFkZHI7CiAKIAlERUJVR0YoIkZMQVNIIEFERFI6ICUwOHhcbiIsICh1bnNpZ25lZClhZGRyKTsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CiAJdWRlbGF5KDEwMDApOwogCiAJdmFsdWUgPSBhZGRyMlswXTsKIAlERUJVR0YoIkZMQVNIIE1BTlVGQUNUOiAleFxuIiwgdmFsdWUpOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQ7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgRlVKX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9GVUo7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIFNTVF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1NUX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TU1Q7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIFNUTV9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1RNX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TVE07CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIE1YX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBNWF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fTVg7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC02NzIsMjIgKzY3MiwyMiBAQAogCiAJc3dpdGNoICh2YWx1ZSkgewogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTWlCCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0zMjBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNaUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1RNX0lEXzI5VzMyMERUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNUTV9JRF8yOVczMjBEVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1RNVzMyMERUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA2NzsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNaUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpTVhfSURfTFYzMjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKU1YX0lEX0xWMzIwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfTVhMVjMyMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsKQEAgLTc3NiwxNCArNzc2LDE0IEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAogCQkvKiBGb3IgQU1EMjkwMzNDIGZsYXNoIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBjb21tYW5kIG9mICoKIAkJICogcmVhZGluZyBmbGFzaCBwcm90ZWN0aW9uIGZvciB1cHBlciA4IE1iIG9mIGZsYXNoICAgICAqLwogCQlpZiAoaSA9PSAzMikgewotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OwotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDkwOTA5MDkwOwogCQl9CiAKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKQpAQCAtNzkzLDcgKzc5Myw3IEBACiAJfQogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CkBAIC04MDEsMTQgKzgwMSwxNCBAQAogc3RhdGljIGludCB3YWl0X2Zvcl9EUTdfMihmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdCkKIHsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQotCSAgICAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0KKwkgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAlsYXN0ID0gc3RhcnQ7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JICAgICAgIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkgICAgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTgyMyw4ICs4MjMsOCBAQAogCiBzdGF0aWMgaW50IGZsYXNoX2VyYXNlXzIoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAlpbnQgaTsKIApAQCAtODY0LDI0ICs4NjQsMjQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1MDAwNTA7CS8qIGJsb2NrIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTAwMDUwOwkvKiBibG9jayBlcmFzZSAqLwogCQkJCWZvciAoaSA9IDA7IGkgPCA1MDsgaSsrKQogCQkJCQl1ZGVsYXkoMTAwMCk7CS8qIHdhaXQgMSBtcyAqLwogCQkJfSBlbHNlIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDAzMDAwMzA7CS8qIHNlY3RvciBlcmFzZSAqLwogCQkJfQogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC05MDMsOCArOTAzLDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTkxMiw5ICs5MTIsOSBAQAogCiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgaTsKIApAQCAtOTIzLDE1ICs5MjMsMTUgQEAKIAkJcmV0dXJuICgyKTsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKIAkJaW50IGZsYWc7CiAKIAkJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTk0MSwxMCArOTQxLDEwIEBACiAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lcigwKTsKLQkJd2hpbGUgKChkZXN0MltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkgICAgICAgKGRhdGEyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CisJCXdoaWxlICgoZGVzdDJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CisJCSAgICAgICAoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJfQpAQCAtOTUyLDQgKzk1Miw0IEBACiAKIAlyZXR1cm4gKDApOwogfQotI2VuZGlmIC8qIENGR19GTEFTSF8yTkRfMTZCSVRfREVWICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWICovCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2Vib255L2NvbmZpZy5tayBiL2JvYXJkL2FtY2MvZWJvbnkvY29uZmlnLm1rCmluZGV4IGU1NzIyZGQuLjYwZDNiZjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvZWJvbnkvY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2MvZWJvbnkvY29uZmlnLm1rCkBAIC00MCw1ICs0MCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9lYm9ueS9lYm9ueS5jIGIvYm9hcmQvYW1jYy9lYm9ueS9lYm9ueS5jCmluZGV4IDliY2RmNTkuLmFkMDllNjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvZWJvbnkvZWJvbnkuYworKysgYi9ib2FyZC9hbWNjL2Vib255L2Vib255LmMKQEAgLTM1LDcgKzM1LDcgQEAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKIAl1aW50IHJlZzsKLQl1bnNpZ25lZCBjaGFyICpmcGdhX2Jhc2UgPSAodW5zaWduZWQgY2hhciAqKUNGR19GUEdBX0JBU0U7CisJdW5zaWduZWQgY2hhciAqZnBnYV9iYXNlID0gKHVuc2lnbmVkIGNoYXIgKilDT05GSUdfU1lTX0ZQR0FfQkFTRTsKIAl1bnNpZ25lZCBjaGFyIHN0YXR1czsKIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwNCw3ICsyMDQsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0yMTksNyArMjE5LDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MCBzdHJhcHBpbmcKICAgICAgKiBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoUENJWDBfUElNMExBTCwgQ0ZHX1NEUkFNX0JBU0UpOworCW91dDMycihQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCW91dDMycihQQ0lYMF9QSU0wTEFILCAwKTsKIAlvdXQzMnIoUENJWDBfUElNMFNBLCB+KGdkLT5yYW1fc2l6ZSAtIDEpIHwgMSk7CiAKQEAgLTIyOCwxMiArMjI4LDEyIEBACiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC92ZW5kb3IgaWQKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQxNnIoUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKLQlvdXQxNnIoUENJWDBfU0JTWVNJRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQpOworCW91dDE2cihQQ0lYMF9TQlNZU1ZJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKKwlvdXQxNnIoUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEKTsKIAogCW91dDE2cihQQ0lYMF9DTUQsIGluMTZyKFBDSVgwX0NNRCkgfCBQQ0lfQ09NTUFORF9NRU1PUlkpOwogfQotI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBpc19wY2lfaG9zdApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9lYm9ueS9mbGFzaC5jIGIvYm9hcmQvYW1jYy9lYm9ueS9mbGFzaC5jCmluZGV4IGQ5YzY5NzQuLjhmZTNiYTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvZWJvbnkvZmxhc2guYworKysgYi9ib2FyZC9hbWNjL2Vib255L2ZsYXNoLmMKQEAgLTUwLDcgKzUwLDcgQEAKICNkZWZpbmUgICAgIEZMQVNIX09OQkRfTl9WQUwgICAgICAgIDIKICNkZWZpbmUgICAgIEZMQVNIX1NSQU1fU0VMX1ZBTCAgICAgIDEKIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVs4XVtDRkdfTUFYX0ZMQVNIX0JBTktTXSA9IHsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbOF1bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdID0gewogCXsweGZmYzAwMDAwLCAweGZmZTAwMDAwLCAweGZmODgwMDAwfSwJLyogMDowMDA6IGNvbmZpZ3VyYXRvbiAzICovCiAJezB4ZmZjMDAwMDAsIDB4ZmZlMDAwMDAsIDB4ZmY4MDAwMDB9LAkvKiAxOjAwMTogY29uZmlndXJhdG9uIDQgKi8KIAl7MHhmZmMwMDAwMCwgMHhmZmUwMDAwMCwgMHgwMDAwMDAwMH0sCS8qIDI6MDEwOiBjb25maWd1cmF0b24gNyAqLwpAQCAtNzQsOCArNzQsOCBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9iID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKLQl1bnNpZ25lZCBjaGFyICpmcGdhX2Jhc2UgPSAodW5zaWduZWQgY2hhciAqKUNGR19GUEdBX0JBU0U7CisJdW5zaWduZWQgbG9uZyBzaXplX2JbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOworCXVuc2lnbmVkIGNoYXIgKmZwZ2FfYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopQ09ORklHX1NZU19GUEdBX0JBU0U7CiAJdW5zaWduZWQgY2hhciBzd2l0Y2hfc3RhdHVzOwogCXVuc2lnbmVkIHNob3J0IGluZGV4ID0gMDsKIAlpbnQgaTsKQEAgLTk4LDcgKzk4LDcgQEAKIAlERUJVR0YoIkZMQVNIOiBJbmRleDogJWRcbiIsIGluZGV4KTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gLTE7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CkBAIC0xMjEsOCArMTIxLDggQEAKIAkJfQogCiAJCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCi0JCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIDEsCisJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIDEsCiAJCQkJICAgICZmbGFzaF9pbmZvWzJdKTsKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX0VOVl9BRERSLApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9lYm9ueS9pbml0LlMgYi9ib2FyZC9hbWNjL2Vib255L2luaXQuUwppbmRleCBjODYwNzZlLi44MTFhOTZhIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2Vib255L2luaXQuUworKysgYi9ib2FyZC9hbWNjL2Vib255L2luaXQuUwpAQCAtNDksOSArNDksOSBAQAogCSAqIHJvdXRpbmUuCiAJICovCiAKLQl0bGJlbnRyeShDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19JU1JBTV9CQVNFLCBTWl80SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1gpCi0JdGxiZW50cnkoQ0ZHX0lTUkFNX0JBU0UgKyAweDEwMDAsIFNaXzRLLCAweDgwMDAxMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCkKLQl0bGJlbnRyeShDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSVNSQU1fQkFTRSwgU1pfNEssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSVNSQU1fQkFTRSArIDB4MTAwMCwgU1pfNEssIDB4ODAwMDEwMDAsIDAsIEFDX1J8QUNfV3xBQ19YKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL2thdG1haS9jb25maWcubWsgYi9ib2FyZC9hbWNjL2thdG1haS9jb25maWcubWsKaW5kZXggYzUxMmI1My4uZWYwY2Y5NiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9rYXRtYWkvY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2Mva2F0bWFpL2NvbmZpZy5tawpAQCAtMzQsNSArMzQsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mva2F0bWFpL2luaXQuUyBiL2JvYXJkL2FtY2Mva2F0bWFpL2luaXQuUwppbmRleCBlM2YzZGE2Li4xYzc0YTgyIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2thdG1haS9pbml0LlMKKysrIGIvYm9hcmQvYW1jYy9rYXRtYWkvaW5pdC5TCkBAIC01OSwyMCArNTksMjAgQEAKIAkgKiByb3V0aW5lLgogCSAqLwogCi0JdGxiZW50cnkoQ0ZHX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4MDAwMDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfNEssIDB4RjAwMDAwMDAsIDQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDAwMDAwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgMHhGMDAwMDAwMCwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFX01FTUJBU0UsIFNaXzI1Nk0sIDB4QjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRV9CQVNFLCBTWl8xNkssIDB4MjAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRV9NRU1CQVNFLCBTWl8yNTZNLCAweEIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFX0JBU0UsIFNaXzE2SywgMHgyMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX1BDSUUwX0NGR0JBU0UsIFNaXzE2TSwgMHg0MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9DRkdCQVNFLCBTWl8xNk0sIDB4ODAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTJfQ0ZHQkFTRSwgU1pfMTZNLCAweEMwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUwX1hDRkdCQVNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9YQ0ZHQkFTRSwgU1pfMUssIDB4OTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTJfWENGR0JBU0UsIFNaXzFLLCAweEQwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFLCBTWl8xNk0sIDB4NDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UsIFNaXzE2TSwgMHg4MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRSwgU1pfMTZNLCAweEMwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRSwgU1pfMUssIDB4NTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFLCBTWl8xSywgMHg5MDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTJfWENGR0JBU0UsIFNaXzFLLCAweEQwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAJdGxidGFiX2VuZAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTk5LDIwICs5OSwyMCBAQAogCSAqIHJvdXRpbmUuCiAJICovCiAKLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHgwMDAwMDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4MDAwMDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgMHhGMDAwMDAwMCwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSwgU1pfNEssIDB4RjAwMDAwMDAsIDQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfQUNFX0JBU0UsIFNaXzFLLCBDRkdfQUNFX0JBU0UsIDQsQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0FDRV9CQVNFLCBTWl8xSywgQ09ORklHX1NZU19BQ0VfQkFTRSwgNCxBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUVfTUVNQkFTRSwgU1pfMjU2TSwgMHhCMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFX01FTUJBU0UsIFNaXzI1Nk0sIDB4QjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QQ0lFMF9DRkdCQVNFLCBTWl8xNk0sIDB4MDAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTFfQ0ZHQkFTRSwgU1pfMTZNLCAweDIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUyX0NGR0JBU0UsIFNaXzE2TSwgMHg0MDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMF9YQ0ZHQkFTRSwgU1pfMUssIDB4MTAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTFfWENGR0JBU0UsIFNaXzFLLCAweDMwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUyX1hDRkdCQVNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRSwgU1pfMTZNLCAweDAwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFLCBTWl8xNk0sIDB4MjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0UsIFNaXzE2TSwgMHg0MDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfWENGR0JBU0UsIFNaXzFLLCAweDEwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRSwgU1pfMUssIDB4MzAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUyX1hDRkdCQVNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mva2F0bWFpL2thdG1haS5jIGIvYm9hcmQvYW1jYy9rYXRtYWkva2F0bWFpLmMKaW5kZXggMTcyYjU4MS4uYjZjMGMxMSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9rYXRtYWkva2F0bWFpLmMKKysrIGIvYm9hcmQvYW1jYy9rYXRtYWkva2F0bWFpLmMKQEAgLTIyNCwxMSArMjI0LDExIEBACiAJbWZyIHw9IFNEUjBfTUZSX0ZJWEQ7CQkvKiBXb3JrYXJvdW5kIGZvciBQQ0kvRE1BICovCiAJbXRzZHIoc2RyX21mciwgbWZyKTsKIAotCW10c2RyKFNEUjBfUEZDMCwgQ0ZHX1BGQzApOworCW10c2RyKFNEUjBfUEZDMCwgQ09ORklHX1NZU19QRkMwKTsKIAotCW91dDMyKEdQSU8wX09SLCBDRkdfR1BJT19PUik7Ci0Jb3V0MzIoR1BJTzBfT0RSLCBDRkdfR1BJT19PRFIpOwotCW91dDMyKEdQSU8wX1RDUiwgQ0ZHX0dQSU9fVENSKTsKKwlvdXQzMihHUElPMF9PUiwgQ09ORklHX1NZU19HUElPX09SKTsKKwlvdXQzMihHUElPMF9PRFIsIENPTkZJR19TWVNfR1BJT19PRFIpOworCW91dDMyKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX1RDUik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTI5OCw3ICsyOTgsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICogaG9zZSApCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtMzEzLDcgKzMxMyw3IEBACiAJICogTWFwIGFsbCBvZiBTRFJBTSB0byBQQ0kgYWRkcmVzcyAweDAwMDBfMDAwMC4gTm90ZSB0aGF0IHRoZSA0NDAKIAkgKiBzdHJhcHBpbmcgb3B0aW9ucyB0byBub3Qgc3VwcG9ydCBzaXplcyBzdWNoIGFzIDEyOC8yNTYgTUIuCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENGR19TRFJBTV9CQVNFICk7CisJb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBMQUgsIDAgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBTQSwgfihnZC0+cmFtX3NpemUgLSAxKSB8IDEgKTsKIAlvdXQzMnIoIFBDSVgwX0JBUjAsIDAgKTsKQEAgLTMyMSwxMiArMzIxLDEyIEBACiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0Jb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKLQlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKIAogCW91dDE2ciggUENJWDBfQ01ELCBpbjE2cihQQ0lYMF9DTUQpIHwgUENJX0NPTU1BTkRfTUVNT1JZICk7CiB9Ci0jZW5kaWYJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTM1NywxMSArMzU3LDExIEBACiAJdmFsID0gaW4zMihHUElPMF9JUik7CiAJc3dpdGNoIChwb3J0KSB7CiAJY2FzZSAwOgotCQlyZXR1cm4gISh2YWwgJiBHUElPX1ZBTChDRkdfR1BJT19QQ0lFX1BSRVNFTlQwKSk7CisJCXJldHVybiAhKHZhbCAmIEdQSU9fVkFMKENPTkZJR19TWVNfR1BJT19QQ0lFX1BSRVNFTlQwKSk7CiAJY2FzZSAxOgotCQlyZXR1cm4gISh2YWwgJiBHUElPX1ZBTChDRkdfR1BJT19QQ0lFX1BSRVNFTlQxKSk7CisJCXJldHVybiAhKHZhbCAmIEdQSU9fVkFMKENPTkZJR19TWVNfR1BJT19QQ0lFX1BSRVNFTlQxKSk7CiAJY2FzZSAyOgotCQlyZXR1cm4gISh2YWwgJiBHUElPX1ZBTChDRkdfR1BJT19QQ0lFX1BSRVNFTlQyKSk7CisJCXJldHVybiAhKHZhbCAmIEdQSU9fVkFMKENPTkZJR19TWVNfR1BJT19QQ0lFX1BSRVNFTlQyKSk7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIDA7CiAJfQpAQCAtNDA0LDkgKzQwNCw5IEBACiAKIAkJLyogc2V0dXAgbWVtIHJlc291cmNlICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lFX01FTUJBU0UgKyBpICogQ0ZHX1BDSUVfTUVNU0laRSwKLQkJCSAgICAgICBDRkdfUENJRV9NRU1CQVNFICsgaSAqIENGR19QQ0lFX01FTVNJWkUsCi0JCQkgICAgICAgQ0ZHX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDE7CiAJCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9raWxhdWVhL2NtZF9wbGwuYyBiL2JvYXJkL2FtY2Mva2lsYXVlYS9jbWRfcGxsLmMKaW5kZXggMGQyZjI3Zi4uMGY1NzFmZSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9raWxhdWVhL2NtZF9wbGwuYworKysgYi9ib2FyZC9hbWNjL2tpbGF1ZWEvY21kX3BsbC5jCkBAIC00OCw3ICs0OCw3IEBACiAJZG8gewkJCQkJCQkJXAogCQlpbnQgX19pOwkJCQkJCVwKIAkJZm9yIChfX2kgPSAwOyBfX2kgPCAyOyBfX2krKykJCQkJXAotCQkJZWVwcm9tX3dyaXRlIChDRkdfSTJDX0VFUFJPTV9BRERSLAkJXAorCQkJZWVwcm9tX3dyaXRlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwJCVwKIAkJCQkgICAgICBFRVBST01fQ09ORl9PRkZTRVQgKyBfX2kqQlVGX1NURVAsIFwKIAkJCQkgICAgICBwbGxfc2VsZWN0W2ZyZXFdLAkJCVwKIAkJCQkgICAgICBCVUZfU1RFUCArIF9faSpCVUZfU1RFUCk7CQlcCkBAIC0xNTEsNyArMTUxLDcgQEAKIAl1Y2hhciBidWZmZXJbRUVQUk9NX1NEU1RQX1BBUkFNXTsKIAogCW1lbXNldChidWZmZXIsIDAsIHNpemVvZihidWZmZXIpKTsKLQllZXByb21fcmVhZChDRkdfSTJDX0VFUFJPTV9BRERSLCBvZmYsCisJZWVwcm9tX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIG9mZiwKIAkJICAgIGJ1ZmZlciwgRUVQUk9NX1NEU1RQX1BBUkFNKTsKIAogCXByaW50ZigiRGVidWc6IFNEU1RQWzAtM10gYXQgb2Zmc2V0IFwiMHglMDJ4XCIgbGlzdHMgYXMgZm9sbG93czogXG4iLCBvZmYpOwpAQCAtMTY4LDkgKzE2OCw5IEBACiAJLyoKIAkgKiBXcml0ZSB0d2ljZSwgOCBieXRlcyBwZXIgd3JpdGUKIAkgKi8KLQllZXByb21fd3JpdGUgKENGR19JMkNfRUVQUk9NX0FERFIsIEVFUFJPTV9URVNUX09GRlNFVCwKKwllZXByb21fd3JpdGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBFRVBST01fVEVTVF9PRkZTRVQsCiAJCSAgICAgIHRlc3RidWYsIDgpOwotCWVlcHJvbV93cml0ZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgRUVQUk9NX1RFU1RfT0ZGU0VUKzgsCisJZWVwcm9tX3dyaXRlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgRUVQUk9NX1RFU1RfT0ZGU0VUKzgsCiAJCSAgICAgIHRlc3RidWYsIDE2KTsKIAlwcmludGYoImRvbmVcbiIpOwogCkBAIC0yMzYsNyArMjM2LDcgQEAKIH0KIAogVV9CT09UX0NNRCgKLQlwbGxhbHRlciwgQ0ZHX01BWEFSR1MsIDEsICAgICAgICBkb19wbGxfYWx0ZXIsCisJcGxsYWx0ZXIsIENPTkZJR19TWVNfTUFYQVJHUywgMSwgICAgICAgIGRvX3BsbF9hbHRlciwKIAkicGxsYWx0ZXItIGNoYW5nZSBwbGwgZnJlcXVlbmNlIFxuIiwKIAkicGxsYWx0ZXIgPHNlbGVjdGlvbj4gICAgICAtIGNoYW5nZSBwbGwgZnJlcXVlbmNlIFxuXG5cCiAJKiogTmV3IGZyZXEgdGFrZSBlZmZlY3QgYWZ0ZXIgcmVzZXQuICoqIFxuXApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9raWxhdWVhL2tpbGF1ZWEuYyBiL2JvYXJkL2FtY2Mva2lsYXVlYS9raWxhdWVhLmMKaW5kZXggZjQwN2UxOS4uN2U4NGE2MSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9raWxhdWVhL2tpbGF1ZWEuYworKysgYi9ib2FyZC9hbWNjL2tpbGF1ZWEva2lsYXVlYS5jCkBAIC0zNiw3ICszNiw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKgogICogQm9hcmQgZWFybHkgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KQEAgLTE5Nyw3ICsxOTcsNyBAQAogCQlTRFIwX0NVU1QwX05ERkNfRU5BQkxFIHwKIAkJU0RSMF9DVVNUMF9OREZDX0JXXzhfQklUIHwKIAkJU0RSMF9DVVNUMF9OUkJfQlVTWSB8Ci0JCSgweDgwMDAwMDAwID4+ICgyOCArIENGR19OQU5EX0NTKSk7CisJCSgweDgwMDAwMDAwID4+ICgyOCArIENPTkZJR19TWVNfTkFORF9DUykpOwogCW10c2RyKFNEUjBfQ1VTVDAsIHZhbCk7CiAKIAkvKgpAQCAtMjEwLDkgKzIxMCw5IEBACiAJLyoKIAkgKiBDb25maWd1cmUgRlBHQSByZWdpc3RlciB3aXRoIFBDSWUgcmVzZXQKIAkgKi8KLQlvdXRfYmUzMigodm9pZCAqKUNGR19GUEdBX0JBU0UsIDB4ZmY1NzBjYzQpOwkvKiBhc3NlcnQgUENJZSByZXNldCAqLworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19GUEdBX0JBU0UsIDB4ZmY1NzBjYzQpOwkvKiBhc3NlcnQgUENJZSByZXNldCAqLwogCW1kZWxheSg1MCk7Ci0Jb3V0X2JlMzIoKHZvaWQgKilDRkdfRlBHQV9CQVNFLCAweGZmNTcwY2M3KTsJLyogZGVhc3NlcnQgUENJZSByZXNldCAqLworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19GUEdBX0JBU0UsIDB4ZmY1NzBjYzcpOwkvKiBkZWFzc2VydCBQQ0llIHJlc2V0ICovCiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIyMiw3ICsyMjIsNyBAQAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJICAgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCSAgICAgIDB4ZmZmZmZmZmYsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgpAQCAtMzMwLDkgKzMzMCw5IEBACiAKIAkJLyogc2V0dXAgbWVtIHJlc291cmNlICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lFX01FTUJBU0UgKyBpICogQ0ZHX1BDSUVfTUVNU0laRSwKLQkJCSAgICAgICBDRkdfUENJRV9NRU1CQVNFICsgaSAqIENGR19QQ0lFX01FTVNJWkUsCi0JCQkgICAgICAgQ0ZHX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArIGkgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDE7CiAJCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9sdWFuL2NvbmZpZy5tayBiL2JvYXJkL2FtY2MvbHVhbi9jb25maWcubWsKaW5kZXggZjUyYzIwNi4uY2QwMmFhYiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9sdWFuL2NvbmZpZy5taworKysgYi9ib2FyZC9hbWNjL2x1YW4vY29uZmlnLm1rCkBAIC00MCw1ICs0MCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9sdWFuL2ZsYXNoLmMgYi9ib2FyZC9hbWNjL2x1YW4vZmxhc2guYwppbmRleCBkMjhiZjlkLi4yZDNiMTU0IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL2x1YW4vZmxhc2guYworKysgYi9ib2FyZC9hbWNjL2x1YW4vZmxhc2guYwpAQCAtNDIsNyArNDIsNyBAQAogI2RlZmluZSBERUJVR0YoeC4uLikKICNlbmRpZgkJCQkvKiBERUJVRyAqLwogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlWzFdW0NGR19NQVhfRkxBU0hfQkFOS1NdID0geworc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVsxXVtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU10gPSB7CiAJezB4ZmY5MDAwMDAsIDB4ZmY5ODAwMDAsIDB4ZmZjMDAwMDB9LAkvKiAwOjAwMDogY29uZmlndXJhdG9uIDMgKi8KIH07CiAKQEAgLTU5LDcgKzU5LDcgQEAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgdG90YWxfYiA9IDA7Ci0JdW5zaWduZWQgbG9uZyBzaXplX2JbQ0ZHX01BWF9GTEFTSF9CQU5LU107CisJdW5zaWduZWQgbG9uZyBzaXplX2JbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCXVuc2lnbmVkIHNob3J0IGluZGV4ID0gMDsKIAlpbnQgaTsKIApAQCAtNjksNyArNjksNyBAQAogCURFQlVHRigiRkxBU0g6IEluZGV4OiAlZFxuIiwgaW5kZXgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAtMTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKQEAgLTkyLDggKzkyLDggQEAKIAkJfQogCiAJCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCi0JCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIDEsCisJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIDEsCiAJCQkJICAgICZmbGFzaF9pbmZvWzJdKTsKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX0VOVl9BRERSLApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9sdWFuL2luaXQuUyBiL2JvYXJkL2FtY2MvbHVhbi9pbml0LlMKaW5kZXggZDVlZTExNy4uZmI1NGRlYSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9sdWFuL2luaXQuUworKysgYi9ib2FyZC9hbWNjL2x1YW4vaW5pdC5TCkBAIC01NCw3ICs1NCw3IEBACiAJdGxiZW50cnkoMHhmZmQwMDAwMCwgU1pfMU0sIDB4ZmZkMDAwMDAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKIAl0bGJlbnRyeSgweGZmZTAwMDAwLCBTWl8xTSwgMHhmZmUwMDAwMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogCXRsYmVudHJ5KDB4ZmY5MDAwMDAsIFNaXzFNLCAweGZmOTAwMDAwLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX0VQTERfQkFTRSwgU1pfMjU2SywgMHhmZjAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0VQTERfQkFTRSwgU1pfMjU2SywgMHhmZjAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAogCS8qCiAJICogVExCIGVudHJpZXMgZm9yIFNEUkFNIGFyZSBub3QgbmVlZGVkIG9uIHRoaXMgcGxhdGZvcm0uCkBAIC02MywxMiArNjMsMTIgQEAKIAkgKi8KIAogCS8qIGludGVybmFsIHJhbSAobDIgY2FjaGUpICovCi0JdGxiZW50cnkoQ0ZHX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9JKQogCiAJLyogcGVyaXBoZXJhbHMgYXQgZjAwMDAwMDAgKi8KLQl0bGJlbnRyeShDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgQ0ZHX1BFUklQSEVSQUxfQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSwgU1pfNEssIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCiAJLyogUENJICovCi0JdGxiZW50cnkoQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCA5LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgOSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCA5LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDksIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAJdGxidGFiX2VuZApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9sdWFuL2x1YW4uYyBiL2JvYXJkL2FtY2MvbHVhbi9sdWFuLmMKaW5kZXggYjE0YjZlMS4uYjI4ZWJmOSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9sdWFuL2x1YW4uYworKysgYi9ib2FyZC9hbWNjL2x1YW4vbHVhbi5jCkBAIC0zMCw3ICszMCw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC04MCw3ICs4MCw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IG1pc2NfaW5pdF9yKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgZXBsZF90ICp4ID0gKGVwbGRfdCAqKSBDRkdfRVBMRF9CQVNFOworCXZvbGF0aWxlIGVwbGRfdCAqeCA9IChlcGxkX3QgKikgQ09ORklHX1NZU19FUExEX0JBU0U7CiAKIAkvKiBzZXQgbW9kZXMgb2Ygb3BlcmF0aW9uICovCiAJeC0+ZXRodWFydCB8PSBFUExEMl9FVEhfTU9ERV8xMCB8IEVQTEQyX0VUSF9NT0RFXzEwMCB8CkBAIC0xNjYsNyArMTY2LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtMTgxLDcgKzE4MSw3IEBACiAJICogTWFwIGFsbCBvZiBTRFJBTSB0byBQQ0kgYWRkcmVzcyAweDAwMDBfMDAwMC4gTm90ZSB0aGF0IHRoZSA0NDAgc3RyYXBwaW5nCiAJICogb3B0aW9ucyB0byBub3Qgc3VwcG9ydCBzaXplcyBzdWNoIGFzIDEyOC8yNTYgTUIuCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0Jb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDRkdfU0RSQU1fQkFTRSApOworCW91dDMyciggUENJWDBfUElNMExBTCwgQ09ORklHX1NZU19TRFJBTV9CQVNFICk7CiAJb3V0MzJyKCBQQ0lYMF9QSU0wTEFILCAwICk7CiAJb3V0MzJyKCBQQ0lYMF9QSU0wU0EsIH4oZ2QtPnJhbV9zaXplIC0gMSkgfCAxICk7CiAKQEAgLTE5MCwxMiArMTkwLDEyIEBACiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC92ZW5kb3IgaWQKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCApOwotCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCApOwogCiAJb3V0MTZyKCBQQ0lYMF9DTUQsIGluMTZyKFBDSVgwX0NNRCkgfCBQQ0lfQ09NTUFORF9NRU1PUlkgKTsKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvbWFrYWx1L2NtZF9wbGwuYyBiL2JvYXJkL2FtY2MvbWFrYWx1L2NtZF9wbGwuYwppbmRleCAwZDJmMjdmLi4wZjU3MWZlIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL21ha2FsdS9jbWRfcGxsLmMKKysrIGIvYm9hcmQvYW1jYy9tYWthbHUvY21kX3BsbC5jCkBAIC00OCw3ICs0OCw3IEBACiAJZG8gewkJCQkJCQkJXAogCQlpbnQgX19pOwkJCQkJCVwKIAkJZm9yIChfX2kgPSAwOyBfX2kgPCAyOyBfX2krKykJCQkJXAotCQkJZWVwcm9tX3dyaXRlIChDRkdfSTJDX0VFUFJPTV9BRERSLAkJXAorCQkJZWVwcm9tX3dyaXRlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwJCVwKIAkJCQkgICAgICBFRVBST01fQ09ORl9PRkZTRVQgKyBfX2kqQlVGX1NURVAsIFwKIAkJCQkgICAgICBwbGxfc2VsZWN0W2ZyZXFdLAkJCVwKIAkJCQkgICAgICBCVUZfU1RFUCArIF9faSpCVUZfU1RFUCk7CQlcCkBAIC0xNTEsNyArMTUxLDcgQEAKIAl1Y2hhciBidWZmZXJbRUVQUk9NX1NEU1RQX1BBUkFNXTsKIAogCW1lbXNldChidWZmZXIsIDAsIHNpemVvZihidWZmZXIpKTsKLQllZXByb21fcmVhZChDRkdfSTJDX0VFUFJPTV9BRERSLCBvZmYsCisJZWVwcm9tX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIG9mZiwKIAkJICAgIGJ1ZmZlciwgRUVQUk9NX1NEU1RQX1BBUkFNKTsKIAogCXByaW50ZigiRGVidWc6IFNEU1RQWzAtM10gYXQgb2Zmc2V0IFwiMHglMDJ4XCIgbGlzdHMgYXMgZm9sbG93czogXG4iLCBvZmYpOwpAQCAtMTY4LDkgKzE2OCw5IEBACiAJLyoKIAkgKiBXcml0ZSB0d2ljZSwgOCBieXRlcyBwZXIgd3JpdGUKIAkgKi8KLQllZXByb21fd3JpdGUgKENGR19JMkNfRUVQUk9NX0FERFIsIEVFUFJPTV9URVNUX09GRlNFVCwKKwllZXByb21fd3JpdGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBFRVBST01fVEVTVF9PRkZTRVQsCiAJCSAgICAgIHRlc3RidWYsIDgpOwotCWVlcHJvbV93cml0ZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgRUVQUk9NX1RFU1RfT0ZGU0VUKzgsCisJZWVwcm9tX3dyaXRlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgRUVQUk9NX1RFU1RfT0ZGU0VUKzgsCiAJCSAgICAgIHRlc3RidWYsIDE2KTsKIAlwcmludGYoImRvbmVcbiIpOwogCkBAIC0yMzYsNyArMjM2LDcgQEAKIH0KIAogVV9CT09UX0NNRCgKLQlwbGxhbHRlciwgQ0ZHX01BWEFSR1MsIDEsICAgICAgICBkb19wbGxfYWx0ZXIsCisJcGxsYWx0ZXIsIENPTkZJR19TWVNfTUFYQVJHUywgMSwgICAgICAgIGRvX3BsbF9hbHRlciwKIAkicGxsYWx0ZXItIGNoYW5nZSBwbGwgZnJlcXVlbmNlIFxuIiwKIAkicGxsYWx0ZXIgPHNlbGVjdGlvbj4gICAgICAtIGNoYW5nZSBwbGwgZnJlcXVlbmNlIFxuXG5cCiAJKiogTmV3IGZyZXEgdGFrZSBlZmZlY3QgYWZ0ZXIgcmVzZXQuICoqIFxuXApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9tYWthbHUvbWFrYWx1LmMgYi9ib2FyZC9hbWNjL21ha2FsdS9tYWthbHUuYwppbmRleCBmYzc5OTA3Li45ZmMwZWM2IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL21ha2FsdS9tYWthbHUuYworKysgYi9ib2FyZC9hbWNjL21ha2FsdS9tYWthbHUuYwpAQCAtMzcsNyArMzcsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyoKICAqIEJvYXJkIGVhcmx5IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uCkBAIC0xOTQsOSArMTk0LDkgQEAKIAltdHNkcihTRFIwX1NSU1QsIDApOwogCiAJLyogUmVzZXQgUENJZSBzbG90cyAqLwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX1BDSUVfUlNULCAwKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fUENJRV9SU1QsIDApOwogCXVkZWxheSgxMDApOwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX1BDSUVfUlNULCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fUENJRV9SU1QsIDEpOwogCiAJLyoKIAkgKiBDb25maWd1cmUgUEZDIChQaW4gRnVuY3Rpb24gQ29udHJvbCkgcmVnaXN0ZXJzCkBAIC0yMTMsNyArMjEzLDcgQEAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCSAgICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkgICAgICAweGZmZmZmZmZmLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKQEAgLTI4Niw5ICsyODYsOSBAQAogCiAJCS8qIHNldHVwIG1lbSByZXNvdXJjZSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJRV9NRU1CQVNFICsgaSAqIENGR19QQ0lFX01FTVNJWkUsCi0JCQkgICAgICAgQ0ZHX1BDSUVfTUVNQkFTRSArIGkgKiBDRkdfUENJRV9NRU1TSVpFLAotCQkJICAgICAgIENGR19QQ0lFX01FTVNJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKyBpICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKyBpICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFX01FTVNJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCQlob3NlLT5yZWdpb25fY291bnQgPSAxOwogCQlwY2lfcmVnaXN0ZXJfaG9zZShob3NlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mvb2NvdGVhL2NvbmZpZy5tayBiL2JvYXJkL2FtY2Mvb2NvdGVhL2NvbmZpZy5tawppbmRleCA5ZTE4MzM1Li5iNjJlNzc2IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL29jb3RlYS9jb25maWcubWsKKysrIGIvYm9hcmQvYW1jYy9vY290ZWEvY29uZmlnLm1rCkBAIC00MCw1ICs0MCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9vY290ZWEvZmxhc2guYyBiL2JvYXJkL2FtY2Mvb2NvdGVhL2ZsYXNoLmMKaW5kZXggNDZjNjk0Ni4uYTgzZjkzYSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9vY290ZWEvZmxhc2guYworKysgYi9ib2FyZC9hbWNjL29jb3RlYS9mbGFzaC5jCkBAIC01Myw5ICs1Myw5IEBACiAjZGVmaW5lICAgICBGTEFTSF9PTkJEX05fVkFMICAgICAgICAyCiAjZGVmaW5lICAgICBGTEFTSF9TUkFNX1NFTF9WQUwgICAgICAxCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbOF1bQ0ZHX01BWF9GTEFTSF9CQU5LU10gPSB7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlWzhdW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IHsKIAl7MHhGRjgwMDAwMCwgMHhGRjg4MDAwMCwgMHhGRkMwMDAwMH0sCS8qIDA6MDAwOiBjb25maWd1cmF0b24gNCAqLwogCXsweEZGOTAwMDAwLCAweEZGOTgwMDAwLCAweEZGQzAwMDAwfSwJLyogMTowMDE6IGNvbmZpZ3VyYXRvbiAzICovCiAJezB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDB9LAkvKiAyOjAxMDogY29uZmlndXJhdG9uIDggKi8KQEAgLTgzLDggKzgzLDggQEAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgdG90YWxfYiA9IDA7Ci0JdW5zaWduZWQgbG9uZyBzaXplX2JbQ0ZHX01BWF9GTEFTSF9CQU5LU107Ci0JdW5zaWduZWQgY2hhciAqZnBnYV9iYXNlID0gKHVuc2lnbmVkIGNoYXIgKilDRkdfRlBHQV9CQVNFOworCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKKwl1bnNpZ25lZCBjaGFyICpmcGdhX2Jhc2UgPSAodW5zaWduZWQgY2hhciAqKUNPTkZJR19TWVNfRlBHQV9CQVNFOwogCXVuc2lnbmVkIGNoYXIgc3dpdGNoX3N0YXR1czsKIAl1bnNpZ25lZCBzaG9ydCBpbmRleCA9IDA7CiAJaW50IGk7CkBAIC0xMDcsNyArMTA3LDcgQEAKIAlERUJVR0YoIkZMQVNIOiBJbmRleDogJWRcbiIsIGluZGV4KTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gLTE7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CkBAIC0xMzEsOCArMTMxLDggQEAKIAkJfQogCiAJCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCi0JCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIDEsCisJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIDEsCiAJCQkJICAgICZmbGFzaF9pbmZvW2ldKTsKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX0VOVl9BRERSLApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9vY290ZWEvaW5pdC5TIGIvYm9hcmQvYW1jYy9vY290ZWEvaW5pdC5TCmluZGV4IGQyMTFjNzEuLjhiY2ZiYjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvb2NvdGVhL2luaXQuUworKysgYi9ib2FyZC9hbWNjL29jb3RlYS9pbml0LlMKQEAgLTQ5LDkgKzQ5LDkgQEAKIAkgKiByb3V0aW5lLgogCSAqLwogCi0JdGxiZW50cnkoQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSwgU1pfNEssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YKQotCXRsYmVudHJ5KENGR19JU1JBTV9CQVNFICsgMHgxMDAwLCBTWl80SywgMHg4MDAwMTAwMCwgMCwgQUNfUnxBQ19XfEFDX1gpCi0JdGxiZW50cnkoQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzRLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lTUkFNX0JBU0UgKyAweDEwMDAsIFNaXzRLLCAweDgwMDAxMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAJdGxidGFiX2VuZApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9vY290ZWEvb2NvdGVhLmMgYi9ib2FyZC9hbWNjL29jb3RlYS9vY290ZWEuYwppbmRleCA0ZDFkMDkzLi5mZTQ1NDA4IDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL29jb3RlYS9vY290ZWEuYworKysgYi9ib2FyZC9hbWNjL29jb3RlYS9vY290ZWEuYwpAQCAtNDIsNyArNDIsNyBAQAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIG1mcjsKLQl1bnNpZ25lZCBjaGFyICpmcGdhX2Jhc2UgPSAodW5zaWduZWQgY2hhciAqKSBDRkdfRlBHQV9CQVNFOworCXVuc2lnbmVkIGNoYXIgKmZwZ2FfYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopIENPTkZJR19TWVNfRlBHQV9CQVNFOwogCXVuc2lnbmVkIGNoYXIgc3dpdGNoX3N0YXR1czsKIAl1bnNpZ25lZCBsb25nIGNzMF9iYXNlOwogCXVuc2lnbmVkIGxvbmcgY3MwX3NpemU7CkBAIC0zMTUsNyArMzE1LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqIGhvc2UgKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0zMzAsNyArMzMwLDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MCBzdHJhcHBpbmcKIAkgKiBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENGR19TRFJBTV9CQVNFICk7CisJb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBMQUgsIDAgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBTQSwgfihnZC0+cmFtX3NpemUgLSAxKSB8IDEgKTsKIApAQCAtMzM5LDEyICszMzksMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7Ci0Jb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CiAKIAlvdXQxNnIoIFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSApOwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy9vY290ZWEvb2NvdGVhLmggYi9ib2FyZC9hbWNjL29jb3RlYS9vY290ZWEuaAppbmRleCA5NWNlMWZkLi40MDA4NTJhIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL29jb3RlYS9vY290ZWEuaAorKysgYi9ib2FyZC9hbWNjL29jb3RlYS9vY290ZWEuaApAQCAtMjIsNyArMjIsNyBAQAogICovCiAKIC8qIEJvYXJkIHNwZWNpZmljIEZQR0Egc3R1ZmYgLi4uICovCi0jZGVmaW5lIEZQR0FfUkVHMCAgICAgICAgICAgICAgICAgICAgICAgKENGR19GUEdBX0JBU0UgKyAweDAwKQorI2RlZmluZSBGUEdBX1JFRzAgICAgICAgICAgICAgICAgICAgICAgIChDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4MDApCiAjZGVmaW5lICAgRlBHQV9SRUcwX1NTQ0dfTUFTSyAgICAgICAgICAgICAweDgwCiAjZGVmaW5lICAgRlBHQV9SRUcwX1NTQ0dfRElTQUJMRSAgICAgICAgICAweDAwCiAjZGVmaW5lICAgRlBHQV9SRUcwX1NTQ0dfRU5BQkxFICAgICAgICAgICAweDgwCkBAIC00OCw3ICs0OCw3IEBACiAjZGVmaW5lICAgRlBHQV9SRUcwX09OQk9BUkRfRkxBU0hfRU5BQkxFICAweDAwCiAjZGVmaW5lICAgRlBHQV9SRUcwX09OQk9BUkRfRkxBU0hfRElTQUJMRSAweDAyCiAjZGVmaW5lICAgRlBHQV9SRUcwX0ZMQVNIICAgICAgICAgICAgICAgICAweDAxCi0jZGVmaW5lIEZQR0FfUkVHMSAgICAgICAgICAgICAgICAgICAgICAgKENGR19GUEdBX0JBU0UgKyAweDAxKQorI2RlZmluZSBGUEdBX1JFRzEgICAgICAgICAgICAgICAgICAgICAgIChDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4MDEpCiAjZGVmaW5lICAgRlBHQV9SRUcxXzk3NzJfRlNFTEZCWF9NQVNLICAgICAweDgwCiAjZGVmaW5lICAgRlBHQV9SRUcxXzk3NzJfRlNFTEZCWF82ICAgICAgICAweDAwCiAjZGVmaW5lICAgRlBHQV9SRUcxXzk3NzJfRlNFTEZCWF8xMCAgICAgICAweDgwCkBAIC03MSw3ICs3MSw3IEBACiAjZGVmaW5lICAgRlBHQV9SRUcxX1NPVVJDRV9TU0RJVjEgICAgICAgICAweDA1CiAjZGVmaW5lICAgRlBHQV9SRUcxX1NPVVJDRV9TU0RJVjIgICAgICAgICAweDA2CiAjZGVmaW5lICAgRlBHQV9SRUcxX1NPVVJDRV9TU0RJVjQgICAgICAgICAweDA3Ci0jZGVmaW5lIEZQR0FfUkVHMiAgICAgICAgICAgICAgICAgICAgICAgKENGR19GUEdBX0JBU0UgKyAweDAyKQorI2RlZmluZSBGUEdBX1JFRzIgICAgICAgICAgICAgICAgICAgICAgIChDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4MDIpCiAjZGVmaW5lICAgRlBHQV9SRUcyX1RDMCAgICAgICAgICAgICAgICAgICAweDgwCiAjZGVmaW5lICAgRlBHQV9SRUcyX1RDMSAgICAgICAgICAgICAgICAgICAweDQwCiAjZGVmaW5lICAgRlBHQV9SRUcyX1RDMiAgICAgICAgICAgICAgICAgICAweDIwCkBAIC04Miw3ICs4Miw3IEBACiAjZGVmaW5lICAgRlBHQV9SRUcyX0VYVF9JTlRGQUNFX0RJU0FCTEUgICAweDA0CiAjZGVmaW5lICAgRlBHQV9SRUcyX1NNSUlfUkVTRVRfRElTQUJMRSAgICAweDAyICAgLypVc2Ugb24gT2NvdGVhIHBhc3MgMyBib2FyZHMqLwogI2RlZmluZSAgIEZQR0FfUkVHMl9ERUZBVUxUX1VBUlQxX04gICAgICAgMHgwMQotI2RlZmluZSBGUEdBX1JFRzMgICAgICAgICAgICAgICAgICAgICAgIChDRkdfRlBHQV9CQVNFICsgMHgwMykKKyNkZWZpbmUgRlBHQV9SRUczICAgICAgICAgICAgICAgICAgICAgICAoQ09ORklHX1NZU19GUEdBX0JBU0UgKyAweDAzKQogI2RlZmluZSAgIEZQR0FfUkVHM19HSUdBQklUX1JFU0VUX0RJU0FCTEUgMHg4MCAgIC8qVXNlIG9uIE9jb3RlYSBwYXNzIDEgYm9hcmRzKi8KICNkZWZpbmUgICBGUEdBX1JFRzNfRU5FVF9NQVNLMSAgICAgICAgICAgIDB4NzAgICAvKlVzZSBvbiBPY290ZWEgcGFzcyAxIGJvYXJkcyovCiAjZGVmaW5lICAgRlBHQV9SRUczX0VORVRfTUFTSzIgICAgICAgICAgICAweEYwICAgLypVc2Ugb24gT2NvdGVhIHBhc3MgMiBib2FyZHMqLwpAQCAtMTA4LDcgKzEwOCw3IEBACiAjZGVmaW5lICAgRlBHQV9SRUczX1NUQVRfTEVENF9ESVNBQiAgICAgICAweDAwCiAjZGVmaW5lICAgRlBHQV9SRUczX1NUQVRfTEVEMl9ESVNBQiAgICAgICAweDAwCiAjZGVmaW5lICAgRlBHQV9SRUczX1NUQVRfTEVEMV9ESVNBQiAgICAgICAweDAwCi0jZGVmaW5lIEZQR0FfUkVHNCAgICAgICAgICAgICAgICAgICAgICAgKENGR19GUEdBX0JBU0UgKyAweDA0KQorI2RlZmluZSBGUEdBX1JFRzQgICAgICAgICAgICAgICAgICAgICAgIChDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4MDQpCiAjZGVmaW5lICAgRlBHQV9SRUc0X0dQSFlfTU9ERTEwICAgICAgICAgICAweDgwCiAjZGVmaW5lICAgRlBHQV9SRUc0X0dQSFlfTU9ERTEwMCAgICAgICAgICAweDQwCiAjZGVmaW5lICAgRlBHQV9SRUc0X0dQSFlfTU9ERTEwMDAgICAgICAgICAweDIwCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3JlZHdvb2QvY29uZmlnLm1rIGIvYm9hcmQvYW1jYy9yZWR3b29kL2NvbmZpZy5tawppbmRleCBmMzMzMzZkLi4zODFmMmIyIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3JlZHdvb2QvY29uZmlnLm1rCisrKyBiL2JvYXJkL2FtY2MvcmVkd29vZC9jb25maWcubWsKQEAgLTM4LDUgKzM4LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3JlZHdvb2QvaW5pdC5TIGIvYm9hcmQvYW1jYy9yZWR3b29kL2luaXQuUwppbmRleCBmY2ZmYWRhLi4zNjNkNzkzIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3JlZHdvb2QvaW5pdC5TCisrKyBiL2JvYXJkL2FtY2MvcmVkd29vZC9pbml0LlMKQEAgLTU0LDI0ICs1NCwyNCBAQAogCSAqLwogCiAJLyogQWx0aG91Z2ggNTEyIEtCLCBtYXAgMjU2ayBhdCBhIHRpbWUgKi8KLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHgwMDAwMDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSArIDB4NDAwMDAsIFNaXzI1NkssIDB4MDAwNDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDAwMDAwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSVNSQU1fQkFTRSArIDB4NDAwMDAsIFNaXzI1NkssIDB4MDAwNDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfT1BFUl9GTEFTSCwgU1pfMTZNLCAweEU3MDAwMDAwLCA0LEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX09QRVJfRkxBU0gsIFNaXzE2TSwgMHhFNzAwMDAwMCwgNCxBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAKIAkvKgogCSAqIFBlcmlwaGVyYWwgYmFzZQogCSAqLwotCXRsYmVudHJ5KENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzE2SywgMHhFRjYwMDAwMCwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSwgU1pfMTZLLCAweEVGNjAwMDAwLCA0LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX1BDSUUwX1hDRkdCQVNFLFNaXzE2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9YQ0ZHQkFTRSxTWl8xNk0sIDB4MTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTJfWENGR0JBU0UsU1pfMTZNLCAweDIwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRSxTWl8xNk0sIDB4MDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFLFNaXzE2TSwgMHgxMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTJfWENGR0JBU0UsU1pfMTZNLCAweDIwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUENJRTBfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEUsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMF9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEUsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUENJRTBfUkVHQkFTRSwgU1pfNjRLLCAweDMwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX1JFR0JBU0UsIFNaXzY0SywgMHgzMDAxMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMl9SRUdCQVNFLCBTWl82NEssIDB4MzAwMjAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUwX1JFR0JBU0UsIFNaXzY0SywgMHgzMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTFfUkVHQkFTRSwgU1pfNjRLLCAweDMwMDEwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMl9SRUdCQVNFLCBTWl82NEssIDB4MzAwMjAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3NlcXVvaWEvY21kX3NlcXVvaWEuYyBiL2JvYXJkL2FtY2Mvc2VxdW9pYS9jbWRfc2VxdW9pYS5jCmluZGV4IDZiOTA0M2EuLjM0MDJmODQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9jbWRfc2VxdW9pYS5jCisrKyBiL2JvYXJkL2FtY2Mvc2VxdW9pYS9jbWRfc2VxdW9pYS5jCkBAIC00Niw3ICs0Niw3IEBACiAjZGVmaW5lIE5BTkRfQ09NUEFUSUJMRQkweDAxCiAjZGVmaW5lIE5PUl9DT01QQVRJQkxFICAweDAyCiAKLS8qIGNoZWNrIHdpdGggU3RlZmFuIG9uIENGR19JMkNfRUVQUk9NX0FERFIgKi8KKy8qIGNoZWNrIHdpdGggU3RlZmFuIG9uIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICovCiAjZGVmaW5lIEkyQ19FRVBST01fQUREUiAweDUyCiAKIHN0YXRpYyBjaGFyICpjb25maWdfbGFiZWxzW10gPSB7CkBAIC0yMDcsNyArMjA3LDcgQEAKIAl9CiAKIAkvKiBjaGVjayBDUExEIHJlZ2lzdGVyICs1IGZvciBQQ0kgNjZNSHogZmxhZyAqLwotCWlmICgoaW5fOCgodm9pZCAqKShDRkdfQkNTUl9CQVNFICsgNSkpICYgQ0ZHX0JDU1I1X1BDSTY2RU4pID09IDApCisJaWYgKChpbl84KCh2b2lkICopKENPTkZJR19TWVNfQkNTUl9CQVNFICsgNSkpICYgQ09ORklHX1NZU19CQ1NSNV9QQ0k2NkVOKSA9PSAwKQogCQkvKgogCQkgKiBQTEItdG8tUENJIGRpdmlzb3IgPSAzIGZvciAzM01IeiBzeW5jIFBDSQogCQkgKiBpbnN0ZWFkIG9mIDIgZm9yIDY2TUh6IHN5c3RlbXMKQEAgLTIxNiw3ICsyMTYsNyBAQAogCiAJaWYgKGkyY193cml0ZShJMkNfRUVQUk9NX0FERFIsIDAsIDEsIGJ1ZiwgMTYpICE9IDApCiAJCXByaW50ZigiRXJyb3Igd3JpdGluZyB0byBFRVBST00gYXQgYWRkcmVzcyAweCV4XG4iLCBJMkNfRUVQUk9NX0FERFIpOwotCXVkZWxheShDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKKwl1ZGVsYXkoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOwogCiAJcHJpbnRmKCJEb25lXG4iKTsKIAlwcmludGYoIlBsZWFzZSBwb3dlci1jeWNsZSB0aGUgYm9hcmQgZm9yIHRoZSBjaGFuZ2VzIHRvIHRha2UgZWZmZWN0XG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9jb25maWcubWsgYi9ib2FyZC9hbWNjL3NlcXVvaWEvY29uZmlnLm1rCmluZGV4IDVlMDRlZTQuLjZjNzQ4YzkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9jb25maWcubWsKKysrIGIvYm9hcmQvYW1jYy9zZXF1b2lhL2NvbmZpZy5tawpAQCAtNDEsNSArNDEsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9pbml0LlMgYi9ib2FyZC9hbWNjL3NlcXVvaWEvaW5pdC5TCmluZGV4IDQ2YTM3YzYuLmJkMzQ2YmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9pbml0LlMKKysrIGIvYm9hcmQvYW1jYy9zZXF1b2lhL2luaXQuUwpAQCAtNDUsMzYgKzQ1LDM2IEBACiAKIAkvKiBUTEItZW50cnkgZm9yIEREUiBTRFJBTSAoVXAgdG8gMkdCKSAqLwogI2lmZGVmIENPTkZJR180eHhfRENBQ0hFCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDRkdfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCiAjZWxzZQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSwgU1pfMjU2TSwgQ0ZHX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19TRFJBTV9CQVNFLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogI2VuZGlmCiAKIAkvKiBUTEItZW50cnkgZm9yIEVCQyAqLwotCXRsYmVudHJ5KCBDRkdfQkNTUl9CQVNFLCBTWl8yNTZNLCBDRkdfQkNTUl9CQVNFLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0JDU1JfQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19CQ1NSX0JBU0UsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAKIAkvKiBCT09UX0NTIChGTEFTSCkgbXVzdCBiZSBmb3J0aC4gQmVmb3JlIHJlbG9jYXRpb24gU0FfSSBjYW4gYmUgb2ZmIHRvIHVzZSB0aGUKIAkgKiBzcGVlZCB1cCBib290IHByb2Nlc3MuIEl0IGlzIHBhdGNoZWQgYWZ0ZXIgcmVsb2NhdGlvbiB0byBlbmFibGUgU0FfSQogCSAqLwogI2lmbmRlZiBDT05GSUdfTkFORF9TUEwKLQl0bGJlbnRyeSggQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDRkdfQk9PVF9CQVNFX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKICNlbHNlCi0JdGxiZW50cnkoIENGR19OQU5EX0JPT1RfU1BMX1NSQywgU1pfNEssIENGR19OQU5EX0JPT1RfU1BMX1NSQywgMSwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisJdGxiZW50cnkoIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMsIFNaXzRLLCBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0RDQUNIRQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCiAJLyogVExCLWVudHJ5IGZvciBpbml0LXJhbSBpbiBkY2FjaGUgKFNBX0kgbXVzdCBiZSB0dXJuZWQgb2ZmISkgKi8KLQl0bGJlbnRyeSggQ0ZHX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ0ZHX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKICNlbmRpZgogCiAJLyogVExCLWVudHJ5IGZvciBQQ0kgTWVtb3J5ICovCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTIsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UzLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cnkgZm9yIE5BTkQgKi8KLQl0bGJlbnRyeSggQ0ZHX05BTkRfQUREUiwgU1pfMUssIENGR19OQU5EX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfTkFORF9BRERSLCBTWl8xSywgQ09ORklHX1NZU19OQU5EX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cnkgZm9yIEludGVybmFsIFJlZ2lzdGVycyAmIE9DTSAqLwogCXRsYmVudHJ5KCAweGUwMDAwMDAwLCBTWl8xNk0sIDB4ZTAwMDAwMDAsIDAsICBBQ19SfEFDX1d8QUNfWHxTQV9JICkKQEAgLTk1LDggKzk1LDggQEAKIAkgKiBGb3IgTkFORCBib290aW5nIHRoZSBmaXJzdCBUTEIgaGFzIHRvIGJlIHJlY29uZmlndXJlZCB0byBmdWxsIHNpemUKIAkgKiBhbmQgd2l0aCBjYWNoaW5nIGRpc2FibGVkIGFmdGVyIHJ1bm5pbmcgZnJvbSBSQU0hCiAJICovCi0jZGVmaW5lIFRMQjAwCVRMQjAoQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNKQotI2RlZmluZSBUTEIwMQlUTEIxKENGR19CT09UX0JBU0VfQUREUiwgMSkKKyNkZWZpbmUgVExCMDAJVExCMChDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNKQorI2RlZmluZSBUTEIwMQlUTEIxKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDEpCiAjZGVmaW5lIFRMQjAyCVRMQjIoQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQogCiAJLmdsb2JsCXJlY29uZmlnX3RsYjAKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9zZHJhbS5jIGIvYm9hcmQvYW1jYy9zZXF1b2lhL3NkcmFtLmMKaW5kZXggNzdlNmM3Yi4uNjRlYjA2MyAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy9zZXF1b2lhL3NkcmFtLmMKKysrIGIvYm9hcmQvYW1jYy9zZXF1b2lhL3NkcmFtLmMKQEAgLTExMyw1ICsxMTMsNSBAQAogCSAqLwogCXNldF9tY3NyKGdldF9tY3NyKCkpOwogCi0JcmV0dXJuIChDRkdfTUJZVEVTX1NEUkFNIDw8IDIwKTsKKwlyZXR1cm4gKENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9zZXF1b2lhLmMgYi9ib2FyZC9hbWNjL3NlcXVvaWEvc2VxdW9pYS5jCmluZGV4IGU0MzlmYjkuLmQ2NjY4ZTIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvc2VxdW9pYS9zZXF1b2lhLmMKKysrIGIvYm9hcmQvYW1jYy9zZXF1b2lhL3NlcXVvaWEuYwpAQCAtMzMsNyArMzMsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHVsb25nIGJhc2UsIGludCBiYW5rbnVtKTsKIApAQCAtNzQsMTYgKzc0LDE2IEBACiAJbXRkY3IodWljMnNyLCAweGZmZmZmZmZmKTsJLyogY2xlYXIgYWxsICovCiAKIAkvKiA1ME1IeiB0bXJjbGsgKi8KLQlvdXRfOCgodTggKikgQ0ZHX0JDU1JfQkFTRSArIDB4MDQsIDB4MDApOworCW91dF84KCh1OCAqKSBDT05GSUdfU1lTX0JDU1JfQkFTRSArIDB4MDQsIDB4MDApOwogCiAJLyogY2xlYXIgd3JpdGUgcHJvdGVjdHMgKi8KLQlvdXRfOCgodTggKikgQ0ZHX0JDU1JfQkFTRSArIDB4MDcsIDB4MDApOworCW91dF84KCh1OCAqKSBDT05GSUdfU1lTX0JDU1JfQkFTRSArIDB4MDcsIDB4MDApOwogCiAJLyogZW5hYmxlIEV0aGVybmV0ICovCi0Jb3V0XzgoKHU4ICopIENGR19CQ1NSX0JBU0UgKyAweDA4LCAweDAwKTsKKwlvdXRfOCgodTggKikgQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAweDA4LCAweDAwKTsKIAogCS8qIGVuYWJsZSBVU0IgZGV2aWNlICovCi0Jb3V0XzgoKHU4ICopIENGR19CQ1NSX0JBU0UgKyAweDA5LCAweDIwKTsKKwlvdXRfOCgodTggKikgQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAweDA5LCAweDIwKTsKIAogCS8qIHNlbGVjdCBFdGhlcm5ldCAoYW5kIG9wdGlvbmFsbHkgSUlDMSkgcGlucyAqLwogCW1mc2RyKFNEUjBfUEZDMSwgc2RyMF9wZmMxKTsKQEAgLTExMyw3ICsxMTMsNyBAQAogCQlTRFIwX0NVU1QwX05ERkNfRU5BQkxFCQl8CiAJCVNEUjBfQ1VTVDBfTkRGQ19CV184X0JJVAl8CiAJCVNEUjBfQ1VTVDBfTkRGQ19BUkVfTUFTSwl8Ci0JCSgweDgwMDAwMDAwID4+ICgyOCArIENGR19OQU5EX0NTKSk7CisJCSgweDgwMDAwMDAwID4+ICgyOCArIENPTkZJR19TWVNfTkFORF9DUykpOwogCW10c2RyKFNEUjBfQ1VTVDAsIHNkcjBfY3VzdDApOwogCiAJcmV0dXJuIDA7CkBAIC0xNjAsNyArMTYwLDcgQEAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApAQCAtMzIwLDggKzMyMCw4IEBACiAJcHJpbnRmKCJCb2FyZDogUmFpbmllciAtIEFNQ0MgUFBDNDQwR1J4IEV2YWx1YXRpb24gQm9hcmQiKTsKICNlbmRpZgogCi0JcmV2ID0gaW5fOCgodm9pZCAqKShDRkdfQkNTUl9CQVNFICsgMCkpOwotCXZhbCA9IGluXzgoKHZvaWQgKikoQ0ZHX0JDU1JfQkFTRSArIDUpKSAmIENGR19CQ1NSNV9QQ0k2NkVOOworCXJldiA9IGluXzgoKHZvaWQgKikoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAwKSk7CisJdmFsID0gaW5fOCgodm9pZCAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDUpKSAmIENPTkZJR19TWVNfQkNTUjVfUENJNjZFTjsKIAlwcmludGYoIiwgUmV2LiAlWCwgUENJPSVkIE1IeiIsIHJldiwgdmFsID8gNjYgOiAzMyk7CiAKIAlpZiAocyAhPSBOVUxMKSB7CkBAIC00MDcsNyArNDA3LDcgQEAKICAqIGluYm91bmQgbWFwIChQSU0pLiBCdXQgdGhlIGJvb3RzdHJhcCBjb25maWcgY2hvaWNlcyBhcmUgbGltaXRlZCBhbmQKICAqIG1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAkvKgpAQCAtNDIzLDE2ICs0MjMsMTYgQEAKIAkgKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAqLwogCQkJCQkJLyogLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsgLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMExBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7IC8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsICovCiAJCQkJCQkvKiBhbmQgZW5hYmxlIHJlZ2lvbiAqLwogCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgKi8KIAkJCQkJCS8qIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0xTEEsIENGR19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDRkdfUENJX01FTUJBU0UyKTsgLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7IC8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xUENJTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsgLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMVBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgKi8KIAkJCQkJCS8qIGFuZCBlbmFibGUgcmVnaW9uICovCkBAIC00NDgsOCArNDQ4LDggQEAKIAogCS8qIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZCAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX1ZFTkRPUl9JRCwKLQkJCSAgICAgIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKLQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwgQ0ZHX1BDSV9TVUJTWVNfSUQpOworCQkJICAgICAgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEKTsKIAogCS8qIENvbmZpZ3VyZSBjb21tYW5kIHJlZ2lzdGVyIGFzIGJ1cyBtYXN0ZXIgKi8KIAlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX0NPTU1BTkQsIFBDSV9DT01NQU5EX01BU1RFUik7CkBAIC00NjMsOSArNDYzLDkgQEAKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKDAsIFBDSV9CUkRHT1BUMiwgMHgwMDAwMDEwMSk7CiAKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpCiB2b2lkIHBjaV9tYXN0ZXJfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJdW5zaWduZWQgc2hvcnQgdGVtcF9zaG9ydDsKQEAgLTQ4MCw3ICs0ODAsNyBAQAogCQkJICAgICAgdGVtcF9zaG9ydCB8IFBDSV9DT01NQU5EX01BU1RFUiB8CiAJCQkgICAgICBQQ0lfQ09NTUFORF9NRU1PUlkpOwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkgKi8KIAogLyoKICAqIGlzX3BjaV9ob3N0CmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3NlcXVvaWEvdS1ib290LmxkcyBiL2JvYXJkL2FtY2Mvc2VxdW9pYS91LWJvb3QubGRzCmluZGV4IGIyMGZiMWMuLjNjZmVjODMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvc2VxdW9pYS91LWJvb3QubGRzCisrKyBiL2JvYXJkL2FtY2Mvc2VxdW9pYS91LWJvb3QubGRzCkBAIC0xMzcsNyArMTM3LDcgQEAKICAgICooQ09NTU9OKQogICB9CiAKLSAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGODAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENGR19NT05JVE9SX0JBU0UsIENGR19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOworICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKIAogICBfZW5kID0gLiA7CiAgIFBST1ZJREUgKGVuZCA9IC4pOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy90YWlodS9mbGFzaC5jIGIvYm9hcmQvYW1jYy90YWlodS9mbGFzaC5jCmluZGV4IGFlOTJiYjIuLjExMGNiZTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvdGFpaHUvZmxhc2guYworKysgYi9ib2FyZC9hbWNjL3RhaWh1L2ZsYXNoLmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxwcGM0eHguaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCiAKICN1bmRlZiBERUJVRwogI2lmZGVmIERFQlVHCkBAIC00MSw5ICs0MSw5IEBACiAjZGVmaW5lIERFQlVHRih4Li4uKQogI2VuZGlmCQkJCS8qIERFQlVHICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NIQVJfU0laRSB1bnNpZ25lZCBjaGFyCi0jZGVmaW5lIENGR19GTEFTSF9DSEFSX0FERFIwICgweDBhYWEpCi0jZGVmaW5lIENGR19GTEFTSF9DSEFSX0FERFIxICgweDA1NTUpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFIHVuc2lnbmVkIGNoYXIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIwICgweDBhYWEpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMSAoMHgwNTU1KQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCiAgKi8KQEAgLTY1LDcgKzY1LDcgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC04NCw4ICs4NCw4IEBACiAJCWZsYXNoX2dldF9vZmZzZXRzKEZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOwogCQkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSAxLAorCQkJCSAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCkBAIC0yOTksMzIgKzI5OSwzMiBAQAogI2VuZGlmCiB7CiAJc2hvcnQgaTsKLQlDRkdfRkxBU0hfV09SRF9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpIGFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOwogCiAJREVCVUdGKCJGTEFTSCBBRERSOiAlMDh4XG4iLCAodW5zaWduZWQpYWRkcik7CiAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOwogCXVkZWxheSgxMDAwKTsKIAogCXZhbHVlID0gYWRkcjJbMF07CiAJREVCVUdGKCJGTEFTSCBNQU5VRkFDVDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBGVUpfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRlVKOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTU1RfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNTVF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1NUOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTVE1fTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNUTV9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1RNOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMzM4LDY3ICszMzgsNjcgQEAKIAlERUJVR0YoIlxuRkxBU0ggREVWSUNFSUQ6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDQwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDQwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CS8qID0+IDUxMiBrbyAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9GMDQwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0YwNDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsJLyogPT4gNTEyIGtvICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1RNX0lEX00yOVcwNDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBTVE1fSURfTTI5VzA0MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMDQwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA4OwogCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwOwkvKiA9PiA1MTIga28gKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjAxNkQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9GMDE2RDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1EMDE2OwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzMjsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CiAJCWJyZWFrOwkJLyogPT4gMiBNQiAgICAgICAgICAgICAgKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjAzM0M6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjAzM0M6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNRExWMDMzQzsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjQ7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCS8qID0+IDQgTUIgICAgICAgICAgICAgICovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY0MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY0MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkvKiA9PiAwLjUgTUIgICAgICAgICAgICAqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU00MDBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAwODAwMDA7CiAJCWJyZWFrOwkJLyogPT4gMC41IE1CICAgICAgICAgICAgKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCS8qID0+IDEgTUIgICAgICAgICAgICAgICovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkvKiA9PiAxIE1CICAgICAgICAgICAgICAqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMTYwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMTYwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0xNjBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzNTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CiAJCWJyZWFrOwkJLyogPT4gMiBNQiAgICAgICAgICAgICAgKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwpAQCAtNDQ1LDE0ICs0NDUsMTQgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCiAJCS8qIEZvciBBTUQyOTAzM0MgZmxhc2ggd2UgbmVlZCB0byByZXNlbmQgdGhlIGNvbW1hbmQgb2YgKgogCQkgKiByZWFkaW5nIGZsYXNoIHByb3RlY3Rpb24gZm9yIHVwcGVyIDggTWIgb2YgZmxhc2ggICAgICovCiAJCWlmIChpID09IDMyKSB7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4OTA5MDkwOTA7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4OTA5MDkwOTA7CiAJCX0KIAogCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpCkBAIC00NjIsNyArNDYyLDcgQEAKIAl9CiAKIAkvKiBpc3N1ZSBiYW5rIHJlc2V0IHRvIHJldHVybiB0byByZWFkIG1vZGUgKi8KLQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOworCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwogCiAJcmV0dXJuIGluZm8tPnNpemU7CiB9CkBAIC00NzAsMTQgKzQ3MCwxNCBAQAogc3RhdGljIGludCB3YWl0X2Zvcl9EUTdfMShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdCkKIHsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQotCSAgICAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0KKwkgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAlsYXN0ID0gc3RhcnQ7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JICAgICAgIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkgICAgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTUwOSw4ICs1MDksOCBAQAogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogI2VuZGlmCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAlpbnQgaTsKIApAQCAtNTUwLDI0ICs1NTAsMjQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1MDAwNTA7CS8qIGJsb2NrIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTAwMDUwOwkvKiBibG9jayBlcmFzZSAqLwogCQkJCWZvciAoaSA9IDA7IGkgPCA1MDsgaSsrKQogCQkJCQl1ZGVsYXkoMTAwMCk7CS8qIHdhaXQgMSBtcyAqLwogCQkJfSBlbHNlIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDAzMDAwMzA7CS8qIHNlY3RvciBlcmFzZSAqLwogCQkJfQogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC01ODksOCArNTg5LDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTY5MSw5ICs2OTEsOSBAQAogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiAjZW5kaWYKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgJiBkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGk7CiAKQEAgLTcwMiwxNSArNzAyLDE1IEBACiAJCXJldHVybiAyOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgewogCQlpbnQgZmxhZzsKIAogCQkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAkJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cygpOwogCi0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBMDAwQTA7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBMDAwQTA7CiAKIAkJZGVzdDJbaV0gPSBkYXRhMltpXTsKIApAQCAtNzIwLDEwICs3MjAsMTAgQEAKIAogCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwotCQl3aGlsZSAoKGRlc3QyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JCSAgICAgICAoZGF0YTJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKKwkJd2hpbGUgKChkZXN0MltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkJICAgICAgIChkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KIAkJfQpAQCAtNzQwLDMyICs3NDAsMzIgQEAKIHN0YXRpYyB1bG9uZyBmbGFzaF9nZXRfc2l6ZV8yKHZ1X2xvbmcgKiBhZGRyLCBmbGFzaF9pbmZvX3QgKiBpbmZvKQogewogCXNob3J0IGk7Ci0JQ0ZHX0ZMQVNIX0NIQVJfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKSBhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKIAogCURFQlVHRigiRkxBU0ggQUREUjogJTA4eFxuIiwgKHVuc2lnbmVkKWFkZHIpOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KLQlhZGRyMltDRkdfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKLQlhZGRyMltDRkdfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQlhZGRyMltDRkdfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKIAl1ZGVsYXkoMTAwMCk7CiAKLQl2YWx1ZSA9IChDRkdfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzBdOworCXZhbHVlID0gKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzBdOwogCURFQlVHRigiRkxBU0ggTUFOVUZBQ1Q6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgQU1EX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBBTURfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgRlVKX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBGVUpfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgU1NUX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBTU1RfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NTVDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgU1RNX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBTVE1fTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NUTTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKQEAgLTc3NSw4MyArNzc1LDgzIEBACiAJCXJldHVybiAwOwkJLyogbm8gb3IgdW5rbm93biBmbGFzaCAqLwogCX0KIAotCXZhbHVlID0gKENGR19GTEFTSF9DSEFSX1NJWkUpYWRkcjJbMl07CS8qIGRldmljZSBJRCAqLworCXZhbHVlID0gKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzJdOwkvKiBkZXZpY2UgSUQgKi8KIAlERUJVR0YoIlxuRkxBU0ggREVWSUNFSUQ6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0xWMDQwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0xWMDQwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CS8qID0+IDUxMiBrbyAqLwogCQlicmVhazsKIAotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9GMDQwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0YwNDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsJLyogPT4gNTEyIGtvICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgU1RNX0lEX00yOVcwNDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBTVE1fSURfTTI5VzA0MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMDQwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA4OwogCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwOwkvKiA9PiA1MTIga28gKi8KIAkJYnJlYWs7CiAKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfRjAxNkQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9GMDE2RDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1EMDE2OwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzMjsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CiAJCWJyZWFrOwkJCS8qID0+IDIgTUIgKi8KIAotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjAzM0M6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjAzM0M6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNRExWMDMzQzsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjQ7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCQkvKiA9PiA0IE1CICovCiAKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFY0MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFY0MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJLyogPT4gMC41IE1CICovCiAKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFY0MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFY0MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJLyogPT4gMC41IE1CICovCiAKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFY4MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFY4MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkJLyogPT4gMSBNQiAqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0xWODAwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSkgQU1EX0lEX0xWODAwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU04MDBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxOTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCWJyZWFrOwkJCS8qID0+IDEgTUIgKi8KIAotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjE2MFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9MVjE2MFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkvKiA9PiAyIE1CICovCiAKLQljYXNlIChDRkdfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFYxNjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKSBBTURfSURfTFYxNjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJYnJlYWs7CQkJLyogPT4gMiBNQiAqLwotCWNhc2UgKENGR19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9NSVJST1I6Ci0JCWlmICgoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlhZGRyMlsweDFjXSA9PSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlBTURfSURfTFYxMjhVXzIKLQkJCQkmJiAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlhZGRyMlsweDFlXSA9PSAgKENGR19GTEFTSF9DSEFSX1NJWkUpQU1EX0lEX0xWMTI4VV8zKSB7CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpIEFNRF9JRF9NSVJST1I6CisJCWlmICgoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpYWRkcjJbMHgxY10gPT0gKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKUFNRF9JRF9MVjEyOFVfMgorCQkJCSYmIChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSlhZGRyMlsweDFlXSA9PSAgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKUFNRF9JRF9MVjEyOFVfMykgewogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1MVjEyOFU7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSAyNTY7CiAJCQlpbmZvLT5zaXplID0gMHgwMTAwMDAwMDsKLQkJfSBlbHNlIGlmICgoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlhZGRyMlsweDFjXSA9PSAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlBTURfSURfR0wxMjhOXzIKLQkJCQkmJiAoQ0ZHX0ZMQVNIX0NIQVJfU0laRSlhZGRyMlsweDFlXSA9PSAgKENGR19GTEFTSF9DSEFSX1NJWkUpQU1EX0lEX0dMMTI4Tl8zICkgeworCQl9IGVsc2UgaWYgKChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSlhZGRyMlsweDFjXSA9PSAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpQU1EX0lEX0dMMTI4Tl8yCisJCQkJJiYgKENPTkZJR19TWVNfRkxBU0hfQ0hBUl9TSVpFKWFkZHIyWzB4MWVdID09ICAoQ09ORklHX1NZU19GTEFTSF9DSEFSX1NJWkUpQU1EX0lEX0dMMTI4Tl8zICkgewogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfUzI5R0wxMjhOOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTI4OwogCQkJaW5mby0+c2l6ZSA9IDB4MDEwMDAwMDA7CkBAIC05MDQsMzggKzkwNCwzOCBAQAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykgewogCQkvKiByZWFkIHNlY3RvciBwcm90ZWN0aW9uIGF0IHNlY3RvciBhZGRyZXNzLCAoQTcgLi4gQTApID0gMHgwMiAqLwogCQkvKiBEMCA9IDEgaWYgcHJvdGVjdGVkICovCi0JCWFkZHIyID0gKHZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOworCQlhZGRyMiA9ICh2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CiAKIAkJLyogRm9yIEFNRDI5MDMzQyBmbGFzaCB3ZSBuZWVkIHRvIHJlc2VuZCB0aGUgY29tbWFuZCBvZiAqCiAJCSAqIHJlYWRpbmcgZmxhc2ggcHJvdGVjdGlvbiBmb3IgdXBwZXIgOCBNYiBvZiBmbGFzaCAgICAgKi8KIAkJaWYgKGkgPT0gMzIpIHsKLQkJCWFkZHIyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQkJYWRkcjJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKIAkJfQogCiAJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkKIAkJCWluZm8tPnByb3RlY3RbaV0gPSAwOwogCQllbHNlCi0JCQlpbmZvLT5wcm90ZWN0W2ldID0gKENGR19GTEFTSF9DSEFSX1NJWkUpYWRkcjJbNF0gJiAxOworCQkJaW5mby0+cHJvdGVjdFtpXSA9IChDT05GSUdfU1lTX0ZMQVNIX0NIQVJfU0laRSlhZGRyMls0XSAmIDE7CiAJfQogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhGMEYwRjBGMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhGMEYwRjBGMDsKIAlyZXR1cm4gaW5mby0+c2l6ZTsKIH0KIAogc3RhdGljIGludCB3YWl0X2Zvcl9EUTdfMihmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdCkKIHsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQotCSAgICAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0KKwkgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAlsYXN0ID0gc3RhcnQ7Ci0Jd2hpbGUgKCgoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4ODA4MDgwODApICE9Ci0JICAgICAgIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwODA4MDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCXdoaWxlICgoKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKWFkZHJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4ODA4MDgwODApICE9CisJICAgICAgIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIC0xOwogCQl9CkBAIC05NTAsOCArOTUwLDggQEAKIAogc3RhdGljIGludCBmbGFzaF9lcmFzZV8yKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAJaW50IGk7CiAKQEAgLTk5MSwyNCArOTkxLDI0IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCiAJCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1MDUwNTA1MDsJLyogYmxvY2sgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDUwNTA1MDUwOwkvKiBibG9jayBlcmFzZSAqLwogCQkJCWZvciAoaSA9IDA7IGkgPCA1MDsgaSsrKQogCQkJCQl1ZGVsYXkoMTAwMCk7CS8qIHdhaXQgMSBtcyAqLwogCQkJfSBlbHNlIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgzMDMwMzAzMDsJLyogc2VjdG9yIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4ODA4MDgwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9DSEFSX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKKwkJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgzMDMwMzAzMDsJLyogc2VjdG9yIGVyYXNlICovCiAJCQl9CiAJCQlsX3NlY3QgPSBzZWN0OwogCQkJLyoKQEAgLTEwMzAsOCArMTAzMCw4IEBACiAJdWRlbGF5KDEwMDApOwogCiAJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCi0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOwotCWFkZHJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhGMEYwRjBGMDsgLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07CisJYWRkclswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhGMEYwRjBGMDsgLyogcmVzZXQgYmFuayAqLwogCiAJcHJpbnRmKCIgZG9uZVxuIik7CiAJcmV0dXJuIDA7CkBAIC0xMDM5LDkgKzEwMzksOSBAQAogCiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgaTsKIApAQCAtMTA1MCwxNSArMTA1MCwxNSBAQAogCQlyZXR1cm4gMjsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKIAkJaW50IGZsYWc7CiAKIAkJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCQlhZGRyMltDRkdfRkxBU0hfQ0hBUl9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0NIQVJfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCWFkZHIyW0NGR19GTEFTSF9DSEFSX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEEwQTBBMEEwOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0NIQVJfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEEwQTBBMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTEwNjgsMTAgKzEwNjgsMTAgQEAKIAogCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwotCQl3aGlsZSAoKGRlc3QyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4ODA4MDgwODApICE9Ci0JCSAgICAgICAoZGF0YTJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MCkpIHsKKwkJd2hpbGUgKChkZXN0MltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MCkgIT0KKwkJICAgICAgIChkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg4MDgwODA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy90YWlodS90YWlodS5jIGIvYm9hcmQvYW1jYy90YWlodS90YWlodS5jCmluZGV4IGVlMDkzOWEuLjZlOTMzMGYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvdGFpaHUvdGFpaHUuYworKysgYi9ib2FyZC9hbWNjL3RhaWh1L3RhaWh1LmMKQEAgLTQ4LDggKzQ4LDggQEAKIAltdGRjcih1aWNzciwgMHhGRkZGRkZGRik7CS8qIGNsZWFyIGFsbCBpbnRzICovCiAJbXRkY3IodWljdmNyLCAweDAwMDAwMDAxKTsJLyogc2V0IHZlY3QgYmFzZT0wLElOVDAgaGlnaGVzdCBwcmlvcml0eSAqLwogCi0JbXRlYmMocGIzYXAsIENGR19FQkNfUEIzQVApOwkvKiBtZW1vcnkgYmFuayAzIChDUExEX0xDTSkgaW5pdGlhbGl6YXRpb24gKi8KLQltdGViYyhwYjNjciwgQ0ZHX0VCQ19QQjNDUik7CisJbXRlYmMocGIzYXAsIENPTkZJR19TWVNfRUJDX1BCM0FQKTsJLyogbWVtb3J5IGJhbmsgMyAoQ1BMRF9MQ00pIGluaXRpYWxpemF0aW9uICovCisJbXRlYmMocGIzY3IsIENPTkZJR19TWVNfRUJDX1BCM0NSKTsKIAogCS8qCiAJICogQ29uZmlndXJlIENQQzBfUENJIHRvIGVuYWJsZSBQZXJXRSBhcyBvdXRwdXQKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvdGFpaHUvdXBkYXRlLmMgYi9ib2FyZC9hbWNjL3RhaWh1L3VwZGF0ZS5jCmluZGV4IDU1YWQ1MzUuLjUyYmFkNTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvdGFpaHUvdXBkYXRlLmMKKysrIGIvYm9hcmQvYW1jYy90YWlodS91cGRhdGUuYwpAQCAtMTAxLDcgKzEwMSw3IEBACiBzdGF0aWMgaW50IHVwZGF0ZV9ib290X2VlcHJvbShjbWRfdGJsX3QqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAl1bG9uZyBsZW4gPSAweDIwOwotCXVjaGFyIGNoaXAgPSBDRkdfSTJDX0VFUFJPTV9BRERSOworCXVjaGFyIGNoaXAgPSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUjsKIAl1Y2hhciAqcGJ1ZjsKIAl1Y2hhciBiYXNlOwogCWludCBpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy90YWlzaGFuL2NvbmZpZy5tayBiL2JvYXJkL2FtY2MvdGFpc2hhbi9jb25maWcubWsKaW5kZXggNGVlZmZmMi4uZWU1ZWIxYiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy90YWlzaGFuL2NvbmZpZy5taworKysgYi9ib2FyZC9hbWNjL3RhaXNoYW4vY29uZmlnLm1rCkBAIC00MCw1ICs0MCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy90YWlzaGFuL2luaXQuUyBiL2JvYXJkL2FtY2MvdGFpc2hhbi9pbml0LlMKaW5kZXggOGRiMDQzYi4uNzQ4ZWMwYSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy90YWlzaGFuL2luaXQuUworKysgYi9ib2FyZC9hbWNjL3RhaXNoYW4vaW5pdC5TCkBAIC04OSw5ICs4OSw5IEBACiB0bGJ0YWI6CiAJdGxidGFiX3N0YXJ0CiAJdGxiZW50cnkoIDB4ZjAwMDAwMDAsIFNaXzI1Nk0sIDB4ZjAwMDAwMDAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKLQl0bGJlbnRyeSggQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeSggQ0ZHX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YICkKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAJdGxidGFiX2VuZApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy90YWlzaGFuL2xjZC5jIGIvYm9hcmQvYW1jYy90YWlzaGFuL2xjZC5jCmluZGV4IDhkMmRjZTMuLjYyNGFlNDAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvdGFpc2hhbi9sY2QuYworKysgYi9ib2FyZC9hbWNjL3RhaXNoYW4vbGNkLmMKQEAgLTMxLDkgKzMxLDkgQEAKIAogI2RlZmluZSBMQ0RfREVMQVlfTk9STUFMX1VTCTEwMAogI2RlZmluZSBMQ0RfREVMQVlfTk9STUFMX01TCTIKLSNkZWZpbmUgTENEX0NNRF9BRERSCQkoKHZvbGF0aWxlIGNoYXIgKikoQ0ZHX0VCQzJfTENNX0JBU0UpKQotI2RlZmluZSBMQ0RfREFUQV9BRERSCQkoKHZvbGF0aWxlIGNoYXIgKikoQ0ZHX0VCQzJfTENNX0JBU0UrMSkpCi0jZGVmaW5lIExDRF9CTEtfQ1RSTAkJKCh2b2xhdGlsZSBjaGFyICopKENGR19FQkMxX0ZQR0FfQkFTRSsweDIpKQorI2RlZmluZSBMQ0RfQ01EX0FERFIJCSgodm9sYXRpbGUgY2hhciAqKShDT05GSUdfU1lTX0VCQzJfTENNX0JBU0UpKQorI2RlZmluZSBMQ0RfREFUQV9BRERSCQkoKHZvbGF0aWxlIGNoYXIgKikoQ09ORklHX1NZU19FQkMyX0xDTV9CQVNFKzEpKQorI2RlZmluZSBMQ0RfQkxLX0NUUkwJCSgodm9sYXRpbGUgY2hhciAqKShDT05GSUdfU1lTX0VCQzFfRlBHQV9CQVNFKzB4MikpCiAKICNkZWZpbmUgbWRlbGF5KHQpCSh7dW5zaWduZWQgbG9uZyBtc2VjPSh0KTsgd2hpbGUgKG1zZWMtLSkgeyB1ZGVsYXkoMTAwMCk7fX0pCiAKQEAgLTM1OSw3ICszNTksNyBAQAogc3RhdGljIGludCBkb19sZWRfdGVzdF9vZmYoY21kX3RibF90ICogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIGludCAqR3Bpb09yID0KLQkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHg3MDApOworCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHg3MDApOwogCSpHcGlvT3IgfD0gMHgwMDMwMDAwMDsKIAlyZXR1cm4gMDsKIH0KQEAgLTM2Nyw3ICszNjcsNyBAQAogc3RhdGljIGludCBkb19sZWRfdGVzdF9vbihjbWRfdGJsX3QgKiBjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICpHcGlvT3IgPQotCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDcwMCk7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDcwMCk7CiAJKkdwaW9PciAmPSB+MHgwMDMwMDAwMDsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MvdGFpc2hhbi90YWlzaGFuLmMgYi9ib2FyZC9hbWNjL3RhaXNoYW4vdGFpc2hhbi5jCmluZGV4IGNkNDMyY2IuLjI4YmRhYjUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvdGFpc2hhbi90YWlzaGFuLmMKKysrIGIvYm9hcmQvYW1jYy90YWlzaGFuL3RhaXNoYW4uYwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHBwYzR4eF9lbmV0Lmg+CiAjaW5jbHVkZSA8bmV0ZGV2Lmg+CiAKLSNpZmRlZiBDRkdfSU5JVF9TSE9XX1JFU0VUX1JFRworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9TSE9XX1JFU0VUX1JFRwogdm9pZCBzaG93X3Jlc2V0X3JlZyh2b2lkKTsKICNlbmRpZgogCkBAIC02Myw3ICs2Myw3IEBACiAJICAgICAgRUJDX0JYQVBfVEhfRU5DT0RFKDMpIHwgRUJDX0JYQVBfUkVfRElTQUJMRUQgfAogCSAgICAgIEVCQ19CWEFQX0JFTV9XUklURU9OTFkgfAogCSAgICAgIEVCQ19CWEFQX1BFTl9ESVNBQkxFRCk7Ci0JbXRlYmMocGIwY3IsIEVCQ19CWENSX0JBU19FTkNPREUoQ0ZHX0ZMQVNIX0JBU0UpIHwKKwltdGViYyhwYjBjciwgRUJDX0JYQ1JfQkFTX0VOQ09ERShDT05GSUdfU1lTX0ZMQVNIX0JBU0UpIHwKIAkgICAgICBFQkNfQlhDUl9CU182NE1CIHwgRUJDX0JYQ1JfQlVfUld8RUJDX0JYQ1JfQldfMzJCSVQpOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtMTczLDkgKzE3Myw5IEBACiAJbXRzZHIoc2RyX3BmYzEscmVnKTsKIAogCS8qIFNldCBHUElPIDEwIGFuZCAxMSBhcyBvdXRwdXQgKi8KLQlHcGlvT2RyCT0gKHZvbGF0aWxlIHVuc2lnbmVkIGludCopKENGR19QRVJJUEhFUkFMX0JBU0UrMHg3MTgpOwotCUdwaW9UY3IgPSAodm9sYXRpbGUgdW5zaWduZWQgaW50KikoQ0ZHX1BFUklQSEVSQUxfQkFTRSsweDcwNCk7Ci0JR3Bpb09yICA9ICh2b2xhdGlsZSB1bnNpZ25lZCBpbnQqKShDRkdfUEVSSVBIRVJBTF9CQVNFKzB4NzAwKTsKKwlHcGlvT2RyCT0gKHZvbGF0aWxlIHVuc2lnbmVkIGludCopKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFKzB4NzE4KTsKKwlHcGlvVGNyID0gKHZvbGF0aWxlIHVuc2lnbmVkIGludCopKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFKzB4NzA0KTsKKwlHcGlvT3IgID0gKHZvbGF0aWxlIHVuc2lnbmVkIGludCopKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFKzB4NzAwKTsKIAogCSpHcGlvT2RyICY9IH4oMHgwMDMwMDAwMCk7CiAJKkdwaW9UY3IgfD0gMHgwMDMwMDAwMDsKQEAgLTIwMiw3ICsyMDIsNyBAQAogCX0KIAlwdXRjICgnXG4nKTsKIAotI2lmZGVmIENGR19JTklUX1NIT1dfUkVTRVRfUkVHCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1NIT1dfUkVTRVRfUkVHCiAJc2hvd19yZXNldF9yZWcoKTsKICNlbmRpZgogCkBAIC0yNDgsNyArMjQ4LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqIGhvc2UgKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0yNjMsNyArMjYzLDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MCBzdHJhcHBpbmcKIAkgKiBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENGR19TRFJBTV9CQVNFICk7CisJb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBMQUgsIDAgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBTQSwgfihnZC0+cmFtX3NpemUgLSAxKSB8IDEgKTsKIApAQCAtMjcyLDEyICsyNzIsMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7Ci0Jb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CiAKIAlvdXQxNnIoIFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSApOwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBpc19wY2lfaG9zdApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy90YWlzaGFuL3VwZGF0ZS5jIGIvYm9hcmQvYW1jYy90YWlzaGFuL3VwZGF0ZS5jCmluZGV4IGVkMmMxOTYuLjk2YjkxOGIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MvdGFpc2hhbi91cGRhdGUuYworKysgYi9ib2FyZC9hbWNjL3RhaXNoYW4vdXBkYXRlLmMKQEAgLTUxLDcgKzUxLDcgQEAKIHN0YXRpYyBpbnQgdXBkYXRlX2Jvb3RfZWVwcm9tKHZvaWQpCiB7CiAJdWxvbmcgbGVuID0gMHgxMDsKLQl1Y2hhciBjaGlwID0gQ0ZHX0JPT1RTVFJBUF9JSUNfQUREUjsKKwl1Y2hhciBjaGlwID0gQ09ORklHX1NZU19CT09UU1RSQVBfSUlDX0FERFI7CiAJdWNoYXIgKnBidWYgPSAodWNoYXIgKilib290c3RyYXBfYnVmOwogCWludCBpaSwgamo7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2Mvd2FsbnV0L2ZsYXNoLmMgYi9ib2FyZC9hbWNjL3dhbG51dC9mbGFzaC5jCmluZGV4IGZlNmNhNmMuLmQzNjM1NjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2Mvd2FsbnV0L2ZsYXNoLmMKKysrIGIvYm9hcmQvYW1jYy93YWxudXQvZmxhc2guYwpAQCAtNTgsNyArNTgsNyBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZV9iMCwgYmFzZV9iMTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC03MywxNCArNzMsMTQgQEAKIAl9CiAKIAkvKiBPbmx5IG9uZSBiYW5rICovCi0JaWYgKENGR19NQVhfRkxBU0hfQkFOS1MgPT0gMSkgeworCWlmIChDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CiAJCS8qIFNldHVwIG9mZnNldHMgKi8KIAkJZmxhc2hfZ2V0X29mZnNldHMoRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIDEsCiAJCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX0VOVl9BRERSLApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy95b3NlbWl0ZS9jb25maWcubWsgYi9ib2FyZC9hbWNjL3lvc2VtaXRlL2NvbmZpZy5tawppbmRleCA0YWIwZWEwLi5kZjU0NjZlIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3lvc2VtaXRlL2NvbmZpZy5taworKysgYi9ib2FyZC9hbWNjL3lvc2VtaXRlL2NvbmZpZy5tawpAQCAtNDAsNSArNDAsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MveW9zZW1pdGUvaW5pdC5TIGIvYm9hcmQvYW1jYy95b3NlbWl0ZS9pbml0LlMKaW5kZXggNDI1YWQwOC4uZjkzODIzNiAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy95b3NlbWl0ZS9pbml0LlMKKysrIGIvYm9hcmQvYW1jYy95b3NlbWl0ZS9pbml0LlMKQEAgLTkxLDIyICs5MSwyMiBAQAogICAgICAqIEJPT1RfQ1MgKEZMQVNIKSBtdXN0IGJlIGZpcnN0LiBCZWZvcmUgcmVsb2NhdGlvbiBTQV9JIGNhbiBiZSBvZmYgdG8gdXNlIHRoZQogICAgICAqIHNwZWVkIHVwIGJvb3QgcHJvY2Vzcy4gSXQgaXMgcGF0Y2hlZCBhZnRlciByZWxvY2F0aW9uIHRvIGVuYWJsZSBTQV9JCiAgICAgICovCi0gICAgdGxiZW50cnkoIENGR19CT09UX0JBU0VfQUREUiwgU1pfMjU2TSwgQ0ZHX0JPT1RfQkFTRV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HLyp8U0FfSSovKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HLyp8U0FfSSovKQogCiAgICAgLyogVExCLWVudHJ5IGZvciBpbml0LXJhbSBpbiBkY2FjaGUgKFNBX0kgbXVzdCBiZSB0dXJuZWQgb2ZmISkgKi8KLSAgICB0bGJlbnRyeSggQ0ZHX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ0ZHX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKIAotICAgIHRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSwgU1pfMjU2TSwgQ0ZHX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0gICAgdGxiZW50cnkoIENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgQ0ZHX1BDSV9CQVNFLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLSAgICB0bGJlbnRyeSggQ0ZHX05WUkFNX0JBU0VfQUREUiwgU1pfMjU2TSwgQ0ZHX05WUkFNX0JBU0VfQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfV3xTQV9JICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX0JBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiwgU1pfMjU2TSwgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX1d8U0FfSSApCiAKICAgICAvKiBQQ0kgKi8KLSAgICB0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotICAgIHRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UxLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLSAgICB0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMiwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0gICAgdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTMsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UzLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAogICAgIC8qIFVTQiAyLjAgRGV2aWNlICovCi0gICAgdGxiZW50cnkoIENGR19VU0JfREVWSUNFLCBTWl8xSywgMHg1MDAwMDAwMCwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfVVNCX0RFVklDRSwgU1pfMUssIDB4NTAwMDAwMDAsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAgICAgdGxidGFiX2VuZApkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy95b3NlbWl0ZS95b3NlbWl0ZS5jIGIvYm9hcmQvYW1jYy95b3NlbWl0ZS95b3NlbWl0ZS5jCmluZGV4IDA1YmU0MGEuLjM5ODI4OTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MveW9zZW1pdGUveW9zZW1pdGUuYworKysgYi9ib2FyZC9hbWNjL3lvc2VtaXRlL3lvc2VtaXRlLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLWV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2V4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKQEAgLTEwNywxOCArMTA3LDE4IEBACiAJbXRzZHIoc2RyX3BmYzEsIDB4MDAwNDgwMDApOwkvKiBQaW4gZnVuY3Rpb246IFVBUlQwIGhhcyA0IHBpbnMgKi8KIAogCS8qY2xlYXIgdG1yY2xrIGRpdmlzb3IgKi8KLQkqKHVuc2lnbmVkIGNoYXIgKikoQ0ZHX0JDU1JfQkFTRSB8IDB4MDQpID0gMHgwMDsKKwkqKHVuc2lnbmVkIGNoYXIgKikoQ09ORklHX1NZU19CQ1NSX0JBU0UgfCAweDA0KSA9IDB4MDA7CiAKIAkvKmVuYWJsZSBldGhlcm5ldCAqLwotCSoodW5zaWduZWQgY2hhciAqKShDRkdfQkNTUl9CQVNFIHwgMHgwOCkgPSAweGYwOworCSoodW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSB8IDB4MDgpID0gMHhmMDsKIAogI2lmZGVmIENPTkZJR180NDBFUAogCS8qZW5hYmxlIHVzYiAxLjEgZnMgZGV2aWNlIGFuZCByZW1vdmUgdXNiIDIuMCByZXNldCAqLwotCSoodW5zaWduZWQgY2hhciAqKShDRkdfQkNTUl9CQVNFIHwgMHgwOSkgPSAweDAwOworCSoodW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSB8IDB4MDkpID0gMHgwMDsKICNlbmRpZgogCiAJLypnZXQgcmlkIG9mIGZsYXNoIHdyaXRlIHByb3RlY3QgKi8KLQkqKHVuc2lnbmVkIGNoYXIgKikoQ0ZHX0JDU1JfQkFTRSB8IDB4MDcpID0gMHgwMDsKKwkqKHVuc2lnbmVkIGNoYXIgKikoQ09ORklHX1NZU19CQ1NSX0JBU0UgfCAweDA3KSA9IDB4MDA7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE2Nyw3ICsxNjcsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApAQCAtMTg2LDggKzE4Niw4IEBACiAJcHJpbnRmKCJCb2FyZDogWWVsbG93c3RvbmUgLSBBTUNDIFBQQzQ0MEdSIEV2YWx1YXRpb24gQm9hcmQiKTsKICNlbmRpZgogCi0JcmV2ID0gaW5fOCgodm9pZCAqKShDRkdfQkNTUl9CQVNFICsgMCkpOwotCXZhbCA9IGluXzgoKHZvaWQgKikoQ0ZHX0JDU1JfQkFTRSArIDUpKSAmIENGR19CQ1NSNV9QQ0k2NkVOOworCXJldiA9IGluXzgoKHZvaWQgKikoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAwKSk7CisJdmFsID0gaW5fOCgodm9pZCAqKShDT05GSUdfU1lTX0JDU1JfQkFTRSArIDUpKSAmIENPTkZJR19TWVNfQkNTUjVfUENJNjZFTjsKIAlwcmludGYoIiwgUmV2LiAlWCwgUENJPSVkIE1IeiIsIHJldiwgdmFsID8gNjYgOiAzMyk7CiAKIAlpZiAocyAhPSBOVUxMKSB7CkBAIC0zMjksNyArMzI5LDcgQEAKIAlzZHJhbV90cjFfc2V0KDB4MDgwMDAwMDAsICZ0cjFfYmFuazIpOwogCW10c2RyYW0obWVtX3RyMSwgKCgodHIxX2JhbmsxK3RyMV9iYW5rMikvMikgfCAweDgwODAwODAwKSk7CiAKLQlyZXR1cm4gQ0ZHX1NEUkFNX0JBTktTICogKENGR19LQllURVNfU0RSQU0gKiAxMDI0KTsJLyogcmV0dXJuIGJ5dGVzICovCisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fQkFOS1MgKiAoQ09ORklHX1NZU19LQllURVNfU0RSQU0gKiAxMDI0KTsJLyogcmV0dXJuIGJ5dGVzICovCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0zOTUsNyArMzk1LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtNDA5LDE0ICs0MDksMTQgQEAKIAkgIHwgTWFrZSB0aGlzIHJlZ2lvbiBub24tcHJlZmV0Y2hhYmxlLgogCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMExBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMFBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIAogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0xTEEsIENGR19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDRkdfUENJX01FTUJBU0UyKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xUENJTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMVBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIApAQCAtNDMxLDggKzQzMSw4IEBACiAKIAkvKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC92ZW5kb3IgaWQgKi8KIAlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9WRU5ET1JfSUQsCi0JCQkgICAgICBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCk7Ci0JcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fSUQsIENGR19QQ0lfU1VCU1lTX0lEKTsKKwkJCSAgICAgIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCk7CisJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19JRCk7CiAKIAkvKiBDb25maWd1cmUgY29tbWFuZCByZWdpc3RlciBhcyBidXMgbWFzdGVyICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9DT01NQU5ELCBQQ0lfQ09NTUFORF9NQVNURVIpOwpAQCAtNDQ2LDEzICs0NDYsMTMgQEAKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKDAsIFBDSV9CUkRHT1BUMiwgMHgwMDAwMDEwMSk7CiAKIH0KLSNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgcGNpX21hc3Rlcl9pbml0CiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpCiB2b2lkIHBjaV9tYXN0ZXJfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJdW5zaWduZWQgc2hvcnQgdGVtcF9zaG9ydDsKQEAgLTQ2Nyw3ICs0NjcsNyBAQAogCQkJICAgICAgdGVtcF9zaG9ydCB8IFBDSV9DT01NQU5EX01BU1RFUiB8CiAJCQkgICAgICBQQ0lfQ09NTUFORF9NRU1PUlkpOwogfQotI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKSAqLworI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBpc19wY2lfaG9zdApAQCAtNTA4LDUgKzUwOCw1IEBACiB2b2lkIGJvYXJkX3Jlc2V0KHZvaWQpCiB7CiAJLyogZ2l2ZSByZXNldCB0byBCQ1NSICovCi0JKih1bnNpZ25lZCBjaGFyICopKENGR19CQ1NSX0JBU0UgfCAweDA2KSA9IDB4MDk7CisJKih1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfQkNTUl9CQVNFIHwgMHgwNikgPSAweDA5OwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1jYy95dWNjYS9jb25maWcubWsgYi9ib2FyZC9hbWNjL3l1Y2NhL2NvbmZpZy5tawppbmRleCBmZjQ1NGViLi4zY2UzY2MxIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3l1Y2NhL2NvbmZpZy5taworKysgYi9ib2FyZC9hbWNjL3l1Y2NhL2NvbmZpZy5tawpAQCAtMzgsNSArMzgsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2FtY2MveXVjY2EvZmxhc2guYyBiL2JvYXJkL2FtY2MveXVjY2EvZmxhc2guYwppbmRleCBjNDA1MzQ2Li5lZGE0OWViIDEwMDY0NAotLS0gYS9ib2FyZC9hbWNjL3l1Y2NhL2ZsYXNoLmMKKysrIGIvYm9hcmQvYW1jYy95dWNjYS9mbGFzaC5jCkBAIC00MywxMiArNDMsMTIgQEAKICNkZWZpbmUgREVCVUdGKHguLi4pCiAjZW5kaWYJCQkJLyogREVCVUcgKi8KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIC8qCiAgKiBNYXJrIGJpZyBmbGFzaCBiYW5rICgxNiBiaXQgaW5zdGVhZCBvZiA4IGJpdCBhY2Nlc3MpIGluIGFkZHJlc3Mgd2l0aCBiaXQgMAogICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlW11bQ0ZHX01BWF9GTEFTSF9CQU5LU10gPSB7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlW11bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdID0gewogCXsweGZmZjAwMDAwLCAweGZmZjgwMDAwLCAweGU3YzAwMDAxfSwgLyogMDpib290IGZyb20gc21hbGwgZmxhc2ggKi8KIAl7MHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMH0sIC8qIDE6Ym9vdCBmcm9tIHBjaSA2NiAgICAgICovCiAJezB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDB9LCAvKiAyOmJvb3QgZnJvbSBuYW5kIGZsYXNoICAqLwpAQCAtNjcsNyArNjcsNyBAQAogICogRnVuY3Rpb25zCiAgKi8KIHN0YXRpYyBpbnQgd3JpdGVfd29yZChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogc3RhdGljIGludCB3cml0ZV93b3JkXzEoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfMihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKIHN0YXRpYyBpbnQgZmxhc2hfZXJhc2VfMShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCk7CkBAIC0xOTgsNyArMTk4LDcgQEAKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGNvZGUgY2Fubm90IGJlIHJ1biBmcm9tIEZMQVNIIQogICovCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIHN0YXRpYyB1bG9uZyBmbGFzaF9nZXRfc2l6ZSh2dV9sb25nICogYWRkciwgZmxhc2hfaW5mb190ICogaW5mbykKIHsKIAkvKiBiaXQgMCB1c2VkIGZvciBiaWcgZmxhc2ggbWFya2luZyAqLwpAQCAtMjE0LDMyICsyMTQsMzIgQEAKICNlbmRpZgogewogCXNob3J0IGk7Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKSBhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKIAogCURFQlVHRigiRkxBU0ggQUREUjogJTA4eFxuIiwgKHVuc2lnbmVkKWFkZHIpOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDkwMDA5MDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDkwMDA5MDsKIAl1ZGVsYXkoMTAwMCk7CiAKIAl2YWx1ZSA9IGFkZHIyWzBdOwogCURFQlVHRigiRkxBU0ggTUFOVUZBQ1Q6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9NQU5VRkFDVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9NQU5VRkFDVDoKIAkJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRDsKIAkJCWJyZWFrOwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBGVUpfTUFOVUZBQ1Q6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBGVUpfTUFOVUZBQ1Q6CiAJCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9GVUo7CiAJCQlicmVhazsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1NUX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1NUX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1NUOwogCQkJYnJlYWs7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIFNUTV9NQU5VRkFDVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNUTV9NQU5VRkFDVDoKIAkJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NUTTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpAQCAtMjUzLDY3ICsyNTMsNjcgQEAKIAlERUJVR0YoIlxuRkxBU0ggREVWSUNFSUQ6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjA0MEI6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYwNDBCOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSA4OwogCQkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsJLyogPT4gNTEyIGtvICovCiAJCQlicmVhazsKIAotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjA0MEI6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfRjA0MEI6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCQlpbmZvLT5zaXplID0gMHgwMDgwMDAwOwkvKiA9PiA1MTIga28gKi8KIAkJCWJyZWFrOwogCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIFNUTV9JRF9NMjlXMDQwQjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIFNUTV9JRF9NMjlXMDQwQjoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMDQwOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CS8qID0+IDUxMiBrbyAqLwogCQkJYnJlYWs7CiAKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0YwMTZEOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0YwMTZEOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1EMDE2OwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzI7CiAJCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJCWJyZWFrOwkJLyogPT4gMiBNQiAgICAgICAgICAgICAgKi8KIAotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYwMzNDOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMDMzQzoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNRExWMDMzQzsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDY0OwogCQkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCQlicmVhazsJCS8qID0+IDQgTUIgICAgICAgICAgICAgICovCiAKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWNDAwVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjQwMFQ6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMFQ7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMTsKIAkJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQkJYnJlYWs7CQkvKiA9PiAwLjUgTUIgICAgICAgICAgICAqLwogCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjQwMEI6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY0MDBCOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU00MDBCOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJCWJyZWFrOwkJLyogPT4gMC41IE1CICAgICAgICAgICAgKi8KIAotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFY4MDBUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWODAwVDoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwVDsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCQlicmVhazsJCS8qID0+IDEgTUIgICAgICAgICAgICAgICovCiAKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWODAwQjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjgwMEI6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMEI7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxOTsKIAkJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQkJYnJlYWs7CQkvKiA9PiAxIE1CICAgICAgICAgICAgICAqLwogCi0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEFNRF9JRF9MVjE2MFQ6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBUOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0xNjBUOwogCQkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJCWJyZWFrOwkJLyogPT4gMiBNQiAgICAgICAgICAgICAgKi8KIAotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfSURfTFYxNjBCOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX0lEX0xWMTYwQjoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwQjsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CkBAIC0zNTcsMTQgKzM1NywxNCBAQAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykgewogCQkvKiByZWFkIHNlY3RvciBwcm90ZWN0aW9uIGF0IHNlY3RvciBhZGRyZXNzLCAoQTcgLi4gQTApID0gMHgwMiAqLwogCQkvKiBEMCA9IDEgaWYgcHJvdGVjdGVkICovCi0JCWFkZHIyID0gKHZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOworCQlhZGRyMiA9ICh2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CiAKIAkJLyogRm9yIEFNRDI5MDMzQyBmbGFzaCB3ZSBuZWVkIHRvIHJlc2VuZCB0aGUgY29tbWFuZCBvZiAqCiAJCSAqIHJlYWRpbmcgZmxhc2ggcHJvdGVjdGlvbiBmb3IgdXBwZXIgOCBNYiBvZiBmbGFzaCAgICAgKi8KIAkJaWYgKGkgPT0gMzIpIHsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTU1NTU1NTsKLQkJCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBQUFBQUFBOworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDkwOTA5MDsKIAkJfQogCiAJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkKQEAgLTM3NCw3ICszNzQsNyBAQAogCX0KIAogCS8qIGlzc3VlIGJhbmsgcmVzZXQgdG8gcmV0dXJuIHRvIHJlYWQgbW9kZSAqLwotCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CisJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CiAKIAlyZXR1cm4gKGluZm8tPnNpemUpOwogfQpAQCAtMzgyLDE0ICszODIsMTQgQEAKIHN0YXRpYyBpbnQgd2FpdF9mb3JfRFE3XzEoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNlY3QpCiB7CiAJdWxvbmcgc3RhcnQsIG5vdywgbGFzdDsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0KLQkJKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9CisJCShDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCiAJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAJbGFzdCA9IHN0YXJ0OwotCXdoaWxlICgoYWRkclswXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkJKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJd2hpbGUgKChhZGRyWzBdICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkJKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTQwMiw3ICs0MDIsNyBAQAogCXJldHVybiAwOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIGludCBmbGFzaF9lcmFzZShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKIAlpZiAoKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1RZUEVNQVNLKSA9PSBGTEFTSF9BTTMyMEIpIHx8CkBAIC00MjAsOCArNDIwLDggQEAKIGludCBmbGFzaF9lcmFzZShmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKICNlbmRpZgogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAJaW50IGk7CiAKQEAgLTQ1NywyNCArNDU3LDI0IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCiAJCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTAwMDUwOwkvKiBibG9jayBlcmFzZSAqLworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDUwMDA1MDsJLyogYmxvY2sgZXJhc2UgKi8KIAkJCQlmb3IgKGkgPSAwOyBpIDwgNTA7IGkrKykKIAkJCQkJdWRlbGF5KDEwMDApOwkvKiB3YWl0IDEgbXMgKi8KIAkJCX0gZWxzZSB7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDMwMDAzMDsJLyogc2VjdG9yIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KIAkJCX0KIAkJCWxfc2VjdCA9IHNlY3Q7CiAJCQkvKgpAQCAtNDk2LDggKzQ5Niw4IEBACiAJdWRlbGF5KDEwMDApOwogCiAJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCi0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOwotCWFkZHJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07CisJYWRkclswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCiAJcHJpbnRmKCIgZG9uZVxuIik7CiAJcmV0dXJuIDA7CkBAIC01NzcsNyArNTc3LDcgQEAKICAqIDEgLSB3cml0ZSB0aW1lb3V0CiAgKiAyIC0gRmxhc2ggbm90IGVyYXNlZAogICovCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIHN0YXRpYyBpbnQgd3JpdGVfd29yZChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewogCWlmICgoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVFlQRU1BU0spID09IEZMQVNIX0FNMzIwQikgfHwKQEAgLTU5NSw5ICs1OTUsOSBAQAogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiAjZW5kaWYKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgJiBkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGksIGZsYWc7CiAKQEAgLTYwNSwxMyArNjA1LDEzIEBACiAJaWYgKCgqKCh2dV9sb25nICopZGVzdCkgJiBkYXRhKSAhPSBkYXRhKQogCQlyZXR1cm4gKDIpOwogCi0JZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CiAJCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCQlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKIAogCQlkZXN0MltpXSA9IGRhdGEyW2ldOwogCkBAIC02MjEsMTAgKzYyMSwxMCBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIoMCk7Ci0JCXdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkJCQkoZGF0YTJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKKwkJd2hpbGUgKChkZXN0MltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkJCQkoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpAQCAtNjMyLDEwICs2MzIsMTAgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIAotI3VuZGVmICBDRkdfRkxBU0hfV09SRF9TSVpFCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUgdW5zaWduZWQgc2hvcnQKKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdW5zaWduZWQgc2hvcnQKIAogLyoKICAqIFRoZSBmb2xsb3dpbmcgY29kZSBjYW5ub3QgYmUgcnVuIGZyb20gRkxBU0ghCkBAIC02NDQsMzcgKzY0NCwzNyBAQAogewogCXNob3J0IGk7CiAJaW50IG47Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKSBhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKIAogCURFQlVHRigiRkxBU0ggQUREUjogJTA4eFxuIiwgKHVuc2lnbmVkKWFkZHIpOwogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwOTAwMDkwOwogCXVkZWxheSgxMDAwKTsKIAogCXZhbHVlID0gYWRkcjJbMF07CiAJREVCVUdGKCJGTEFTSCBNQU5VRkFDVDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQkJYnJlYWs7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKIAkJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJCWJyZWFrOwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBTU1RfTUFOVUZBQ1Q6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBTU1RfTUFOVUZBQ1Q6CiAJCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TU1Q7CiAJCQlicmVhazsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgU1RNX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgU1RNX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1RNOwogCQkJYnJlYWs7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIE1YX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgTVhfTUFOVUZBQ1Q6CiAJCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9NWDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpAQCAtNjg4LDIyICs2ODgsMjIgQEAKIAlERUJVR0YoIlxuRkxBU0ggREVWSUNFSUQ6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwVDoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwVDsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCQlicmVhazsJLyogPT4gNCBNQgkqLwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTMyMEI7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQkJYnJlYWs7CS8qID0+IDQgTUIJKi8KLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTVE1fSURfMjlXMzIwRFQ6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNUTV9JRF8yOVczMjBEVDoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NUTVczMjBEVDsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDY3OwogCQkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCQlicmVhazsJLyogPT4gNCBNQgkqLwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKU1YX0lEX0xWMzIwVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpTVhfSURfTFYzMjBUOgogCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfTVhMVjMyMFQ7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwpAQCAtNzgyLDE0ICs3ODIsMTQgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCiAJCS8qIEZvciBBTUQyOTAzM0MgZmxhc2ggd2UgbmVlZCB0byByZXNlbmQgdGhlIGNvbW1hbmQgb2YgKgogCQkgKiByZWFkaW5nIGZsYXNoIHByb3RlY3Rpb24gZm9yIHVwcGVyIDggTWIgb2YgZmxhc2ggICAgICovCiAJCWlmIChpID09IDMyKSB7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUFBQUFBQUE7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTU1NTU1NTU7Ci0JCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4OTA5MDkwOTA7CisJCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQUFBQUFBQTsKKwkJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1NTU1NTU1OworCQkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4OTA5MDkwOTA7CiAJCX0KIAogCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpCkBAIC03OTksNyArNzk5LDcgQEAKIAl9CiAKIAkvKiBpc3N1ZSBiYW5rIHJlc2V0IHRvIHJldHVybiB0byByZWFkIG1vZGUgKi8KLQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOworCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwogCiAJcmV0dXJuIChpbmZvLT5zaXplKTsKIH0KQEAgLTgwNywxNCArODA3LDE0IEBACiBzdGF0aWMgaW50IHdhaXRfZm9yX0RRN18yKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzZWN0KQogewogCXVsb25nIHN0YXJ0LCBub3csIGxhc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9Ci0JCShDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQorCQkoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCWxhc3QgPSBzdGFydDsKLQl3aGlsZSAoKGFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkJCShDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkJCShDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIC0xOwogCQl9CkBAIC04MjksOCArODI5LDggQEAKIAogc3RhdGljIGludCBmbGFzaF9lcmFzZV8yKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAJaW50IGk7CiAKQEAgLTg2NiwyNCArODY2LDI0IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCiAJCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spID09IEZMQVNIX01BTl9TU1QpIHsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTAwMDUwOwkvKiBibG9jayBlcmFzZSAqLworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDUwMDA1MDsJLyogYmxvY2sgZXJhc2UgKi8KIAkJCQlmb3IgKGkgPSAwOyBpIDwgNTA7IGkrKykKIAkJCQkJdWRlbGF5KDEwMDApOwkvKiB3YWl0IDEgbXMgKi8KIAkJCX0gZWxzZSB7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDMwMDAzMDsJLyogc2VjdG9yIGVyYXNlICovCisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KIAkJCX0KIAkJCWxfc2VjdCA9IHNlY3Q7CiAJCQkvKgpAQCAtOTA1LDggKzkwNSw4IEBACiAJdWRlbGF5KDEwMDApOwogCiAJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCi0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOwotCWFkZHJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07CisJYWRkclswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCiAJcHJpbnRmKCIgZG9uZVxuIik7CiAJcmV0dXJuIDA7CkBAIC05MTQsOSArOTE0LDkgQEAKIAogc3RhdGljIGludCB3cml0ZV93b3JkXzIoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgJiBkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBkZXN0OworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGk7CiAKQEAgLTkyNCwxNSArOTI0LDE1IEBACiAJaWYgKCgqKCh2dV9sb25nICopZGVzdCkgJiBkYXRhKSAhPSBkYXRhKQogCQlyZXR1cm4gKDIpOwogCi0JZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CiAJCWludCBmbGFnOwogCiAJCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCQlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEEwMDBBMDsKIAogCQlkZXN0MltpXSA9IGRhdGEyW2ldOwogCkBAIC05NDIsMTcgKzk0MiwxNyBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIoMCk7Ci0JCXdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkJCQkoZGF0YTJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKKwkJd2hpbGUgKChkZXN0MltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkJCQkoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQogCiAJcmV0dXJuICgwKTsKIH0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFViAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFViAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTk2Niw3ICs5NjYsNyBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9iID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwl1bnNpZ25lZCBsb25nIHNpemVfYltDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAJdW5zaWduZWQgc2hvcnQgaW5kZXggPSAwOwogCWludCBpOwogCXVuc2lnbmVkIGxvbmcgdmFsOwpAQCAtMTAxMSw3ICsxMDExLDcgQEAKIAlERUJVR0YoIkZMQVNIOiBJbmRleDogJWRcbiIsIGluZGV4KTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gLTE7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CkBAIC0xMDM0LDggKzEwMzQsOCBAQAogCQl9CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9baV0pOwogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3l1Y2NhL2luaXQuUyBiL2JvYXJkL2FtY2MveXVjY2EvaW5pdC5TCmluZGV4IDY3ZThmOGYuLjkzMDhmZGEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FtY2MveXVjY2EvaW5pdC5TCisrKyBiL2JvYXJkL2FtY2MveXVjY2EvaW5pdC5TCkBAIC01OSwyMyArNTksMjMgQEAKIAkgKiByb3V0aW5lLgogCSAqLwogCi0JdGxiZW50cnkoQ0ZHX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4MDAwMDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX0ZQR0FfQkFTRSwgU1pfMUssIDB4RTIwMDAwMDAsIDQsQUNfUnxBQ19XfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDAwMDAwMDAwLCA0LCBBQ19SfEFDX1d8QUNfWHxTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfRlBHQV9CQVNFLCBTWl8xSywgMHhFMjAwMDAwMCwgNCxBQ19SfEFDX1d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19PUEVSX0ZMQVNILCBTWl8xNk0sIDB4RTcwMDAwMDAsIDQsQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzRLLCAweEYwMDAwMDAwLCA0LCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfT1BFUl9GTEFTSCwgU1pfMTZNLCAweEU3MDAwMDAwLCA0LEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSwgU1pfNEssIDB4RjAwMDAwMDAsIDQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRV9NRU1CQVNFLCBTWl8yNTZNLCAweEIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUVfQkFTRSwgU1pfMTZLLCAweDIwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSwgU1pfMjU2TSwgMHhCMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRV9CQVNFLCBTWl8xNkssIDB4MjAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QQ0lFMF9DRkdCQVNFLCBTWl8xNk0sIDB4NDAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTFfQ0ZHQkFTRSwgU1pfMTZNLCAweDgwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUyX0NGR0JBU0UsIFNaXzE2TSwgMHhDMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMF9YQ0ZHQkFTRSwgU1pfMUssIDB4NTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTFfWENGR0JBU0UsIFNaXzFLLCAweDkwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUyX1hDRkdCQVNFLCBTWl8xSywgMHhEMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRSwgU1pfMTZNLCAweDQwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFLCBTWl8xNk0sIDB4ODAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0UsIFNaXzE2TSwgMHhDMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTBfWENGR0JBU0UsIFNaXzFLLCAweDUwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRSwgU1pfMUssIDB4OTAwMDAwMDAsIDB4QywgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUyX1hDRkdCQVNFLCBTWl8xSywgMHhEMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQogCXRsYnRhYl9lbmQKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDIsMjAgKzEwMiwyMCBAQAogCSAqIHJvdXRpbmUuCiAJICovCiAKLQl0bGJlbnRyeShDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHgwMDAwMDAwMCwgNCwgQUNfUnxBQ19XfEFDX1h8U0FfSSkKLQl0bGJlbnRyeShDRkdfRlBHQV9CQVNFLCBTWl8xSywgMHhFMjAwMDAwMCwgNCxBQ19SfEFDX1d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4MDAwMDAwMDAsIDQsIEFDX1J8QUNfV3xBQ19YfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19GUEdBX0JBU0UsIFNaXzFLLCAweEUyMDAwMDAwLCA0LEFDX1J8QUNfV3xTQV9JKQogCi0JdGxiZW50cnkoQ0ZHX09QRVJfRkxBU0gsIFNaXzE2TSwgMHhFNzAwMDAwMCwgNCxBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfNEssIDB4RjAwMDAwMDAsIDQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19PUEVSX0ZMQVNILCBTWl8xNk0sIDB4RTcwMDAwMDAsIDQsQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl80SywgMHhGMDAwMDAwMCwgNCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAotCXRsYmVudHJ5KENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFX01FTUJBU0UsIFNaXzI1Nk0sIDB4QjAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAweEMsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMHhDLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRV9NRU1CQVNFLCBTWl8yNTZNLCAweEIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCiAKLQl0bGJlbnRyeShDRkdfUENJRTBfQ0ZHQkFTRSwgU1pfMTZNLCAweDAwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX0NGR0JBU0UsIFNaXzE2TSwgMHgyMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMl9DRkdCQVNFLCBTWl8xNk0sIDB4NDAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJRTBfWENGR0JBU0UsIFNaXzFLLCAweDEwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSUUxX1hDRkdCQVNFLCBTWl8xSywgMHgzMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lFMl9YQ0ZHQkFTRSwgU1pfMUssIDB4NTAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0UsIFNaXzE2TSwgMHgwMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRSwgU1pfMTZNLCAweDIwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMl9DRkdCQVNFLCBTWl8xNk0sIDB4NDAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSUUwX1hDRkdCQVNFLCBTWl8xSywgMHgxMDAwMDAwMCwgMHhELCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJRTFfWENGR0JBU0UsIFNaXzFLLCAweDMwMDAwMDAwLCAweEQsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRSwgU1pfMUssIDB4NTAwMDAwMDAsIDB4RCwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9hbWNjL3l1Y2NhL3l1Y2NhLmMgYi9ib2FyZC9hbWNjL3l1Y2NhL3l1Y2NhLmMKaW5kZXggZTBjMTI2OC4uYzgwNTU2OCAxMDA2NDQKLS0tIGEvYm9hcmQvYW1jYy95dWNjYS95dWNjYS5jCisrKyBiL2JvYXJkL2FtY2MveXVjY2EveXVjY2EuYwpAQCAtNjI2LDcgKzYyNiw3IEBACiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKiBob3NlICkKIHsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC02NDEsNyArNjQxLDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MAogCSAqIHN0cmFwcGluZyBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDMyciggUENJWDBfUElNMExBTCwgQ0ZHX1NEUkFNX0JBU0UgKTsKKwlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSApOwogCW91dDMyciggUENJWDBfUElNMExBSCwgMCApOwogCW91dDMyciggUENJWDBfUElNMFNBLCB+KGdkLT5yYW1fc2l6ZSAtIDEpIHwgMSApOwogCW91dDMyciggUENJWDBfQkFSMCwgMCApOwpAQCAtNjQ5LDEyICs2NDksMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCApOwotCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCApOwogCiAJb3V0MTZyKCBQQ0lYMF9DTUQsIGluMTZyKFBDSVgwX0NNRCkgfCBQQ0lfQ09NTUFORF9NRU1PUlkgKTsKIH0KLSNlbmRpZgkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZgkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtODQzLDkgKzg0Myw5IEBACiAKIAkJLyogc2V0dXAgbWVtIHJlc291cmNlICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJQ0ZHX1BDSUVfTUVNQkFTRSArIGkgKiBDRkdfUENJRV9NRU1TSVpFLAotCQkJQ0ZHX1BDSUVfTUVNQkFTRSArIGkgKiBDRkdfUENJRV9NRU1TSVpFLAotCQkJQ0ZHX1BDSUVfTUVNU0laRSwKKwkJCUNPTkZJR19TWVNfUENJRV9NRU1CQVNFICsgaSAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFLAorCQkJQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKyBpICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUsCisJCQlDT05GSUdfU1lTX1BDSUVfTUVNU0laRSwKIAkJCVBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMTsKIAkJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hbWlyaXgvYXAxMDAwL2ZsYXNoLmMgYi9ib2FyZC9hbWlyaXgvYXAxMDAwL2ZsYXNoLmMKaW5kZXggMWEzYjI1Mi4uMWU3NDJlNSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1pcml4L2FwMTAwMC9mbGFzaC5jCisrKyBiL2JvYXJkL2FtaXJpeC9hcDEwMDAvZmxhc2guYwpAQCAtMTEwLDcgKzExMCw3IEBACiAKICNkZWZpbmUgTlVNX0VSQVNFX1JFR0lPTlMgNAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0xMzAsNyArMTMwLDcgQEAKIAkJCQljZml3b3JkX3QgY3dvcmQpOwogc3RhdGljIGludCBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayAoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgc2VjdG9yLAogCQkJCSAgICB1bG9uZyB0b3V0LCBjaGFyICpwcm9tcHQpOwotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiBzdGF0aWMgaW50IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlciAoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWNoYXIgKiBjcCwKIAkJCQkgIGludCBsZW4pOwogI2VuZGlmCkBAIC0yNzAsNyArMjcwLDcgQEAKIAlmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAlmbGFzaF9pbmZvWzBdLnBvcnR3aWR0aCA9IEZMQVNIX0NGSV8xNkJJVDsKIAlmbGFzaF9pbmZvWzBdLmNoaXB3aWR0aCA9IEZMQVNIX0NGSV8xNkJJVDsKLQlzaXplICs9IGZsYXNoX2luZm9bMF0uc2l6ZSA9IGZsYXNoX2dldF9zaXplIChDRkdfUFJPR0ZMQVNIX0JBU0UsIDApOworCXNpemUgKz0gZmxhc2hfaW5mb1swXS5zaXplID0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfUFJPR0ZMQVNIX0JBU0UsIDApOwogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rICVkIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsIDEsIGZsYXNoX2luZm9bMF0uc2l6ZSwgZmxhc2hfaW5mb1swXS5zaXplIDw8IDIwKTsKIAl9OwpAQCAtMjc4LDcgKzI3OCw3IEBACiAJZmxhc2hfaW5mb1sxXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJZmxhc2hfaW5mb1sxXS5wb3J0d2lkdGggPSBGTEFTSF9DRklfOEJJVDsKIAlmbGFzaF9pbmZvWzFdLmNoaXB3aWR0aCA9IEZMQVNIX0NGSV8xNkJJVDsKLQlzaXplICs9IGZsYXNoX2luZm9bMV0uc2l6ZSA9IGZsYXNoX2dldF9zaXplIChDRkdfQ09ORkZMQVNIX0JBU0UsIDEpOworCXNpemUgKz0gZmxhc2hfaW5mb1sxXS5zaXplID0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfQ09ORkZMQVNIX0JBU0UsIDEpOwogCWlmIChmbGFzaF9pbmZvWzFdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rICVkIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsIDIsIGZsYXNoX2luZm9bMV0uc2l6ZSwgZmxhc2hfaW5mb1sxXS5zaXplIDw8IDIwKTsKIAl9OwpAQCAtMzk4LDcgKzM5OCw3IEBACiAJCQlyZXR1cm4gcmM7CiAJCXdwID0gY3A7CiAJfQotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAJd2hpbGUgKGNudCA+PSBpbmZvLT5wb3J0d2lkdGgpIHsKIAkJaSA9IGluZm8tPmJ1ZmZlcl9zaXplID4gY250ID8gY250IDogaW5mby0+YnVmZmVyX3NpemU7CiAJCWlmICgocmMgPSBmbGFzaF93cml0ZV9jZmlidWZmZXIgKGluZm8sIHdwLCBzcmMsIGkpKSAhPSBFUlJfT0spCkBAIC00MTksNyArNDE5LDcgQEAKIAkJd3AgKz0gaW5mby0+cG9ydHdpZHRoOwogCQljbnQgLT0gaW5mby0+cG9ydHdpZHRoOwogCX0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLwogCWlmIChjbnQgPT0gMCkgewogCQlyZXR1cm4gKDApOwogCX0KQEAgLTgyNCw3ICs4MjQsNyBAQAogCXJldHVybiBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayAoaW5mbywgMCwgaW5mby0+d3JpdGVfdG91dCwgIndyaXRlIik7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCiAvKiBsb29wIHRocm91Z2ggdGhlIHNlY3RvcnMgZnJvbSB0aGUgaGlnaGVzdCBhZGRyZXNzCiAgKiB3aGVuIHRoZSBwYXNzZWQgYWRkcmVzcyBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoZSBzZWN0b3IgYWRkcmVzcwpAQCAtOTAwLDQgKzkwMCw0IEBACiAJZmxhc2hfd3JpdGVfY21kIChpbmZvLCBzZWN0b3IsIDAsIEZMQVNIX0NNRF9DTEVBUl9TVEFUVVMpOwogCXJldHVybiByZXRjb2RlOwogfQotI2VuZGlmIC8qIENGR19VU0VfRkxBU0hfQlVGRkVSX1dSSVRFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19VU0VfRkxBU0hfQlVGRkVSX1dSSVRFICovCmRpZmYgLS1naXQgYS9ib2FyZC9hbWlyaXgvYXAxMDAwL3BjaS5jIGIvYm9hcmQvYW1pcml4L2FwMTAwMC9wY2kuYwppbmRleCBhNjQzNmFjLi5hOWIzZmQ4IDEwMDY0NAotLS0gYS9ib2FyZC9hbWlyaXgvYXAxMDAwL3BjaS5jCisrKyBiL2JvYXJkL2FtaXJpeC9hcDEwMDAvcGNpLmMKQEAgLTI2NywxMCArMjY3LDEwIEBACiBzdGF0aWMgc3RydWN0IHBjaV9jb25maWdfdGFibGUgYXAxMDAwX2NvbmZpZ190YWJsZVtdID0gewogI2lmZGVmIENPTkZJR19BUDEwMDAKIAl7UENJX0FOWV9JRCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwKLQkgUENJX0JVUyAoQ0ZHX0VUSF9ERVZfRk4pLCBQQ0lfREVWIChDRkdfRVRIX0RFVl9GTiksCi0JIFBDSV9GVU5DIChDRkdfRVRIX0RFVl9GTiksCisJIFBDSV9CVVMgKENPTkZJR19TWVNfRVRIX0RFVl9GTiksIFBDSV9ERVYgKENPTkZJR19TWVNfRVRIX0RFVl9GTiksCisJIFBDSV9GVU5DIChDT05GSUdfU1lTX0VUSF9ERVZfRk4pLAogCSBwY2lfY2ZnZnVuY19jb25maWdfZGV2aWNlLAotCSB7Q0ZHX0VUSF9JT0JBU0UsIENGR19FVEhfTUVNQkFTRSwKKwkge0NPTkZJR19TWVNfRVRIX0lPQkFTRSwgQ09ORklHX1NZU19FVEhfTUVNQkFTRSwKIAkgIFBDSV9DT01NQU5EX0lPIHwgUENJX0NPTU1BTkRfTUVNT1JZIHwgUENJX0NPTU1BTkRfTUFTVEVSfX0sCiAjZW5kaWYKIAl7fQpkaWZmIC0tZ2l0IGEvYm9hcmQvYW1pcml4L2FwMTAwMC9zZXJpYWwuYyBiL2JvYXJkL2FtaXJpeC9hcDEwMDAvc2VyaWFsLmMKaW5kZXggNTA4ZTg4MC4uODcwMDNiZSAxMDA2NDQKLS0tIGEvYm9hcmQvYW1pcml4L2FwMTAwMC9zZXJpYWwuYworKysgYi9ib2FyZC9hbWlyaXgvYXAxMDAwL3NlcmlhbC5jCkBAIC0zMCwxNSArMzAsMTUgQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiBjb25zdCBOUzE2NTUwX3QgQ09NX1BPUlRTW10gPQotCXsgKE5TMTY1NTBfdCkgQ0ZHX05TMTY1NTBfQ09NMSwgKE5TMTY1NTBfdCkgQ0ZHX05TMTY1NTBfQ09NMiB9OworCXsgKE5TMTY1NTBfdCkgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEsIChOUzE2NTUwX3QpIENPTkZJR19TWVNfTlMxNjU1MF9DT00yIH07CiAKLSN1bmRlZiBDRkdfRFVBUlRfQ0hBTgotI2RlZmluZSBDRkdfRFVBUlRfQ0hBTiBnQ29tUG9ydAorI3VuZGVmIENPTkZJR19TWVNfRFVBUlRfQ0hBTgorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0NIQU4gZ0NvbVBvcnQKIHN0YXRpYyBpbnQgZ0NvbVBvcnQgPSAwOwogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0JaW50IGNsb2NrX2Rpdmlzb3IgPSBDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKIAogCSh2b2lkKSBOUzE2NTUwX2luaXQgKENPTV9QT1JUU1swXSwgY2xvY2tfZGl2aXNvcik7CiAJZ0NvbVBvcnQgPSAwOwpAQCAtNDksMzAgKzQ5LDMwIEBACiB2b2lkIHNlcmlhbF9wdXRjIChjb25zdCBjaGFyIGMpCiB7CiAJaWYgKGMgPT0gJ1xuJykgewotCQlOUzE2NTUwX3B1dGMgKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0sICdccicpOworCQlOUzE2NTUwX3B1dGMgKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dLCAnXHInKTsKIAl9CiAKLQlOUzE2NTUwX3B1dGMgKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0sIGMpOworCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sIGMpOwogfQogCiBpbnQgc2VyaWFsX2dldGMgKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfZ2V0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSk7CisJcmV0dXJuIE5TMTY1NTBfZ2V0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiBpbnQgc2VyaWFsX3RzdGMgKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfdHN0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSk7CisJcmV0dXJuIE5TMTY1NTBfdHN0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiB2b2lkIHNlcmlhbF9zZXRicmcgKHZvaWQpCiB7Ci0JaW50IGNsb2NrX2Rpdmlzb3IgPSBDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKIAotI2lmZGVmIENGR19JTklUX0NIQU4xCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4xCiAJTlMxNjU1MF9yZWluaXQgKENPTV9QT1JUU1swXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMgorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCU5TMTY1NTBfcmVpbml0IChDT01fUE9SVFNbMV0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9ib2FyZC9hcDMyNXJ4YS9hcDMyNXJ4YS5jIGIvYm9hcmQvYXAzMjVyeGEvYXAzMjVyeGEuYwppbmRleCBjZmEwMjYxLi45ZjExMTJhIDEwMDY0NAotLS0gYS9ib2FyZC9hcDMyNXJ4YS9hcDMyNXJ4YS5jCisrKyBiL2JvYXJkL2FwMzI1cnhhL2FwMzI1cnhhLmMKQEAgLTE0NCw5ICsxNDQsOSBAQAogewogCURFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0JZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENGR19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CisJZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwlnZC0+YmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2Fwb2xsb24vYXBvbGxvbi5jIGIvYm9hcmQvYXBvbGxvbi9hcG9sbG9uLmMKaW5kZXggOGVmYTcwMy4uODk2NGViYSAxMDA2NDQKLS0tIGEvYm9hcmQvYXBvbGxvbi9hcG9sbG9uLmMKKysrIGIvYm9hcmQvYXBvbGxvbi9hcG9sbG9uLmMKQEAgLTI0NSw3ICsyNDUsNyBAQAogCV9fcmF3X3dyaXRlbCh2LCBDTV9DTEtTRUwyX0NPUkUpOwogCV9fcmF3X3dyaXRlbCgweDEsIENNX0NMS1NFTF9XS1VQKTsKIAotI2lmZGVmIENGR19OUzE2NTUwCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwCiAJLyogRW5hYmxlIFVBUlQxIGNsb2NrICovCiAJZnVuY19jbGtzIHw9IEJJVDIxOwogCWlmX2Nsa3MgfD0gQklUMjE7CmRpZmYgLS1naXQgYS9ib2FyZC9hcG9sbG9uL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL2Fwb2xsb24vbG93bGV2ZWxfaW5pdC5TCmluZGV4IDgzODFmZWEuLjY0NTUwZjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Fwb2xsb24vbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL2Fwb2xsb24vbG93bGV2ZWxfaW5pdC5TCkBAIC01MSw3ICs1MSw3IEBACiAuZ2xvYmwgbG93bGV2ZWxfaW5pdAogbG93bGV2ZWxfaW5pdDoKIAotI2lmZGVmIENGR19OT1JfQk9PVAorI2lmZGVmIENPTkZJR19TWVNfTk9SX0JPT1QKIAkvKiBDaGVjayBydW5uaW5nIGluIFNEUkFNICovCiAJbW92CXIwLCBwYywgbHNyICMyOAogCWNtcAlyMCwgIzgKZGlmZiAtLWdpdCBhL2JvYXJkL2Fwb2xsb24vbWVtLmMgYi9ib2FyZC9hcG9sbG9uL21lbS5jCmluZGV4IDAyMTFjNmEuLjM2YmY2ZTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Fwb2xsb24vbWVtLmMKKysrIGIvYm9hcmQvYXBvbGxvbi9tZW0uYwpAQCAtMTQ2LDcgKzE0Niw3IEBACiAJX19yYXdfd3JpdGVsKDB4MTAsIEdQTUNfU1lTQ09ORklHKTsJLyogc21hcnQgaWRsZSAqLwogCV9fcmF3X3dyaXRlbCgweDAsIEdQTUNfSVJRRU5BQkxFKTsJLyogaXNyJ3Mgc291cmNlcyBtYXNrZWQgKi8KIAlfX3Jhd193cml0ZWwodHZhbCwgR1BNQ19USU1FT1VUX0NPTlRST0wpOwkvKiB0aW1lb3V0IGRpc2FibGUgKi8KLSNpZmRlZiBDRkdfTkFORF9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0JPT1QKIAkvKiBzZXQgbldQLCBkaXNhYmxlIGxpbWl0ZWQgYWRkciAqLwogCV9fcmF3X3dyaXRlbCgweDAwMSwgR1BNQ19DT05GSUcpOwogI2Vsc2UKQEAgLTE2NCw3ICsxNjQsNyBAQAogCV9fcmF3X3dyaXRlbCgweDAsIEdQTUNfQ09ORklHN18wKTsJLyogZGlzYWJsZSBjdXJyZW50IG1hcCAqLwogCXNkZWxheSgxMDAwKTsKIAotI2lmZGVmIENGR19OT1JfQk9PVAorI2lmZGVmIENPTkZJR19TWVNfTk9SX0JPT1QKIAlfX3Jhd193cml0ZWwoQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHMV8zLCBHUE1DX0NPTkZJRzFfMCk7CiAJX19yYXdfd3JpdGVsKEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzJfMywgR1BNQ19DT05GSUcyXzApOwogCV9fcmF3X3dyaXRlbChBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUczXzMsIEdQTUNfQ09ORklHM18wKTsKQEAgLTIwOCwxMyArMjA4LDEzIEBACiAJX19yYXdfd3JpdGVsKEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzRfMCwgR1BNQ19DT05GSUc0XzIpOwogCV9fcmF3X3dyaXRlbChBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUc1XzAsIEdQTUNfQ09ORklHNV8yKTsKIAlfX3Jhd193cml0ZWwoQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHNl8wLCBHUE1DX0NPTkZJRzZfMik7Ci0jaWZkZWYgQ0ZHX05PUl9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OT1JfQk9PVAogCV9fcmF3X3dyaXRlbChBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUc3XzAsIEdQTUNfQ09ORklHN18yKTsKICNlbHNlCiAJX19yYXdfd3JpdGVsKEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzdfMiwgR1BNQ19DT05GSUc3XzIpOwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX05PUl9CT09UCisjaWZuZGVmIENPTkZJR19TWVNfTk9SX0JPT1QKIAkvKiBzZXR1cCBjczMgKi8KIAlfX3Jhd193cml0ZWwoMCwgR1BNQ19DT05GSUc3XzMpOwkvKiBkaXNhYmxlIGFueSBtYXBwaW5nICovCiAJc2RlbGF5KDEwMDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXBvbGxvbi9tZW0uaCBiL2JvYXJkL2Fwb2xsb24vbWVtLmgKaW5kZXggZDQ2MzZmNC4uMDljNGVhNCAxMDA2NDQKLS0tIGEvYm9hcmQvYXBvbGxvbi9tZW0uaAorKysgYi9ib2FyZC9hcG9sbG9uL21lbS5oCkBAIC0xNDIsNyArMTQyLDcgQEAKICNlbmRpZiAvKiBlbmRpZiBQUkNNX0NPTkZJR19JSSAqLwogCiAjaWZkZWYgUFJDTV9DT05GSUdfSUlJCQkvKiBMMyBhdCAxMzNNSHogKi8KLSMgaWZkZWYgQ0ZHX05BTkRfQk9PVAorIyBpZmRlZiBDT05GSUdfU1lTX05BTkRfQk9PVAogIyAgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzFfMCAgIDB4MAogIyAgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzJfMCAgIDB4MDAxNDE0MDAKICMgIGRlZmluZSBBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUczXzAgICAweDAwMTQxNDAwCkBAIC0xNTYsNyArMTU2LDcgQEAKICMgIGRlZmluZSBBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUc0XzAgICAweDEwMDgxMDA4CiAjICBkZWZpbmUgQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHNV8wICAgMHgwMTEzMUYxRgogIyAgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzZfMCAgIDB4MDAwMDA0YzQKLSMgZW5kaWYJLyogZW5kaWYgQ0ZHX05BTkRfQk9PVCAqLworIyBlbmRpZgkvKiBlbmRpZiBDT05GSUdfU1lTX05BTkRfQk9PVCAqLwogIyBkZWZpbmUgQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHN18wCSgweDAwMDAwQzQwfChBUE9MTE9OX0NTMF9CQVNFID4+IDI0KSkKICMgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzFfMQkweDAwMDExMDAwCiAjIGRlZmluZSBBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUcyXzEJMHgwMDFmMWYwMQpAQCAtMTY1LDYgKzE2NSw2IEBACiAjIGRlZmluZSBBUE9MTE9OXzI0WFhfR1BNQ19DT05GSUc1XzEJMHgwNDFmMUYxRgogIyBkZWZpbmUgQVBPTExPTl8yNFhYX0dQTUNfQ09ORklHNl8xCTB4MDAwMDA0QzQKICMgZGVmaW5lIEFQT0xMT05fMjRYWF9HUE1DX0NPTkZJRzdfMQkoMHgwMDAwMEY0MHwoQVBPTExPTl9DUzFfQkFTRSA+PiAyNCkpCi0jZW5kaWYgLyogZW5kaWYgQ0ZHX1BSQ01fSUlJICovCisjZW5kaWYgLyogZW5kaWYgQ09ORklHX1NZU19QUkNNX0lJSSAqLwogCiAjZW5kaWYgLyogZW5kaWYgX0FQT0xMT05fT01BUDI0WFhfTUVNX0hfICovCmRpZmYgLS1naXQgYS9ib2FyZC9hcm1hZGlsbG8vZmxhc2guYyBiL2JvYXJkL2FybWFkaWxsby9mbGFzaC5jCmluZGV4IDZlZDg4ZjQuLmNkYmJmZDAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2FybWFkaWxsby9mbGFzaC5jCisrKyBiL2JvYXJkL2FybWFkaWxsby9mbGFzaC5jCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIEZMX1dPUkQoYWRkcikgKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQqKShhZGRyKSkKICNkZWZpbmUgRkxBU0hfVElNRU9VVCAyMDAwMDAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCkBAIC00NywxNCArNDcsMTQgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSAoRlVKX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spOwogCQkvKihJTlRFTF9JRF8yOEYxMjhKMyAmIEZMQVNIX1RZUEVNQVNLKTsgKi8KIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlpZiAoaSA9PSAwKQogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQllbHNlCkBAIC02OSw4ICs2OSw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApkaWZmIC0tZ2l0IGEvYm9hcmQvYXRjL2F0Yy5jIGIvYm9hcmQvYXRjL2F0Yy5jCmluZGV4IGI2MjdjMWMuLjkzNmMwMzEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0Yy9hdGMuYworKysgYi9ib2FyZC9hdGMvYXRjLmMKQEAgLTI4MSw3ICsyODEsNyBAQAogCSAqLwogCW1heHNpemUgPSAoMSArICh+b3J4IHwgMHg3ZmZmKSkgLyAyOwogCi0JLyogU2luY2UgQ0ZHX1NEUkFNX0JBU0UgaXMgYWx3YXlzIDAgKD8/KSwgd2UgYXNzdW1lIHRoYXQKKwkvKiBTaW5jZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgaXMgYWx3YXlzIDAgKD8/KSwgd2UgYXNzdW1lIHRoYXQKIAkgKiB3ZSBhcmUgY29uZmlndXJpbmcgQ1MxIGlmIGJhc2UgIT0gMAogCSAqLwogCXNkbXJfcHRyID0gJm1lbWN0bC0+bWVtY19wc2RtcjsKQEAgLTMwNiw3ICszMDYsNyBAQAogCSAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAJICoKIAkgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLQkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKwkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAJICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfUFJFQTsKQEAgLTMxNyw3ICszMTcsNyBAQAogCQkqYmFzZSA9IGM7CiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTVJXOwotCSooYmFzZSArIENGR19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KKwkqKGJhc2UgKyBDT05GSUdfU1lTX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpiYXNlID0gYzsKQEAgLTMzMSw3ICszMzEsNyBAQAogCiBpbnQgbWlzY19pbml0X3Iodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAl1cG1jb25maWcoVVBNQSwgKHVpbnQgKilydGNfdGFibGUsIHNpemVvZihydGNfdGFibGUpIC8gc2l6ZW9mKHVpbnQpKTsKQEAgLTM0MiwzNyArMzQyLDM3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgc2l6ZTgsIHNpemU5OwogI2VuZGlmCiAJbG9uZyBwc2l6ZTsKIAogCXBzaXplID0gOCAqIDEwMjQgKiAxMDI0OwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOwotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiA2MHggU0RSQU0gc2V0dXA6CiAJICovCi0Jc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMl84Q09MLAotCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzlDT0wsIENGR19PUjJfOUNPTCwKLQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IyXzlDT0wsCisJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsKIAkJcHNpemUgPSBzaXplOTsKIAkJcHJpbnRmICgiKDYweDo5Q09MKSAiKTsKIAl9IGVsc2UgewotCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCi0JCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCQlwcmludGYgKCIoNjB4OjhDT0wpICIpOwogCX0KIAotI2VuZGlmCS8qIENGR19SQU1CT09UICovCisjZW5kaWYJLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlpY2FjaGVfZW5hYmxlICgpOwogCkBAIC0zODIsNyArMzgyLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRE9DKQogdm9pZCBkb2NfaW5pdCAodm9pZCkKIHsKLQlkb2NfcHJvYmUgKENGR19ET0NfQkFTRSk7CisJZG9jX3Byb2JlIChDT05GSUdfU1lTX0RPQ19CQVNFKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9ib2FyZC9hdGMvY29uZmlnLm1rIGIvYm9hcmQvYXRjL2NvbmZpZy5tawppbmRleCBlZWU3YTYwLi5kZDg1NGU3IDEwMDY0NAotLS0gYS9ib2FyZC9hdGMvY29uZmlnLm1rCisrKyBiL2JvYXJkL2F0Yy9jb25maWcubWsKQEAgLTI1LDcgKzI1LDcgQEAKICMgQVRDIGJvYXJkcwogIwogCi0jIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDRkdfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX2F0Yy5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19hdGMuaAogIyBmb3IgdGhlICJmaW5hbCIgY29uZmlndXJhdGlvbiwgd2l0aCBVLUJvb3QgaW4gZmxhc2gsIG9yIHRoZSBhZGRyZXNzCiAjIGluIFJBTSB3aGVyZSBVLUJvb3QgaXMgbG9hZGVkIGF0IGZvciBkZWJ1Z2dpbmcuCiAjCmRpZmYgLS1naXQgYS9ib2FyZC9hdGMvZmxhc2guYyBiL2JvYXJkL2F0Yy9mbGFzaC5jCmluZGV4IDc4MzVlOGYuLmZkNzY3MjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0Yy9mbGFzaC5jCisrKyBiL2JvYXJkL2F0Yy9mbGFzaC5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qIE5PVEUgLSBDT05GSUdfRkxBU0hfMTZCSVQgbWVhbnMgdGhlIENQVSBpbnRlcmZhY2UgaXMgMTYtYml0LCBpdAogICogICAgICAgIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGZsYXNoIGNoaXAgYmVpbmcgOC1iaXQgb3IgMTYtYml0LgpAQCAtNjcsMTEgKzY3LDExIEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKICNpZiAwCiAJCXVsb25nIGZsYXNoYmFzZSA9IChpID09IDApID8gUEhZU19GTEFTSF8xIDogUEhZU19GTEFTSF8yOwogI2Vsc2UKLQkJdWxvbmcgZmxhc2hiYXNlID0gQ0ZHX0ZMQVNIX0JBU0U7CisJCXVsb25nIGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKICNlbmRpZgogCiAJCW1lbXNldCgmZmxhc2hfaW5mb1tpXSwgMCwgc2l6ZW9mKGZsYXNoX2luZm9fdCkpOwpAQCAtODcsMTIgKzg3LDEyIEBACiAJCXNpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplOwogCX0KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAotCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDRkdfTU9OSVRPUl9CQVNFKSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xNjQsMTMgKzE2NCwxMyBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJiBiYXNlIDwgaW5mby0+c3RhcnRbMF0gKyBpbmZvLT5zaXplKQogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIGkgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvOworCXJldHVybiBpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ3Niw3ICs0NzYsNyBAQAogCQl1ZGVsYXkgKDEwMDApOwogCiAJCXdoaWxlICgoKmFkZHIgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAKIAkJCQlpZiAoaW50ZWwpIHsKQEAgLTQ5MCwxNCArNDkwLDE0IEBACiAJCQl9CiAKIAkJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KKwkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CiAJCQl9CiAJCX0KIAogCQkvKiBzaG93IHRoYXQgd2UncmUgd2FpdGluZyAqLwotCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsJLyogZXZlcnkgc2Vjb25kICovCisJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsJLyogZXZlcnkgc2Vjb25kICovCiAJCQlwdXRjICgnLicpOwogCQkJbGFzdCA9IGdldF90aW1lcigwKTsKIAkJfQpAQCAtNjAxLDcgKzYwMSw3IEBACiAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKTB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSpkZXN0ID0gKEZQVykweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlyZXMgPSAxOwogCQl9CkBAIC02NDcsNyArNjQ3LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAocmVzID09IDAgJiYgKCpkZXN0ICYgKEZQVykweDAwODAwMDgwKSAhPSAoRlBXKTB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKTB4MDBCMDAwQjA7CS8qIFN1c3BlbmQgcHJvZ3JhbQkqLwogCQkJcmVzID0gMTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRjL3RpMTEzeC5jIGIvYm9hcmQvYXRjL3RpMTEzeC5jCmluZGV4IGUxMTJlY2EuLjQ3M2JiMTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0Yy90aTExM3guYworKysgYi9ib2FyZC9hdGMvdGkxMTN4LmMKQEAgLTUyNiw4ICs1MjYsOCBAQAogCW1lbS5tYXAgPSAwOwogCW1lbS5mbGFncyA9IE1BUF9BVFRSSUIgfCBNQVBfQUNUSVZFOwogCW1lbS5zcGVlZCA9IDMwMDsKLQltZW0uc3lzX3N0YXJ0ID0gQ0ZHX1BDTUNJQV9NRU1fQUREUjsKLQltZW0uc3lzX3N0b3AgPSBDRkdfUENNQ0lBX01FTV9BRERSICsgQ0ZHX1BDTUNJQV9NRU1fU0laRSAtIDE7CisJbWVtLnN5c19zdGFydCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOworCW1lbS5zeXNfc3RvcCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSICsgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgLSAxOwogCW1lbS5jYXJkX3N0YXJ0ID0gMDsKIAlpMzY1X3NldF9tZW1fbWFwICgmc29ja2V0LCAmbWVtKTsKIApAQCAtNjEzLDggKzYxMyw4IEBACiB7CiAJdV9pbnQgdG1wWzJdOwogCXVfaW50ICptZW0gPSAodm9pZCAqKSBzb2NrZXQuY2JfcGh5czsKLQl1X2NoYXIgKmNpcyA9ICh2b2lkICopIENGR19QQ01DSUFfTUVNX0FERFI7Ci0JdV9jaGFyICppZGUgPSAodm9pZCAqKSAoQ0ZHX0FUQV9CQVNFX0FERFIgKyBDRkdfQVRBX1JFR19PRkZTRVQpOworCXVfY2hhciAqY2lzID0gKHZvaWQgKikgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFI7CisJdV9jaGFyICppZGUgPSAodm9pZCAqKSAoQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICsgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVCk7CiAKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGRldiwgMHgwMCwgdG1wICsgMCk7CiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXYsIDB4ODAsIHRtcCArIDEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MWNhcDlhZGsvYXQ5MWNhcDlhZGsuYyBiL2JvYXJkL2F0bWVsL2F0OTFjYXA5YWRrL2F0OTFjYXA5YWRrLmMKaW5kZXggNzg3ZDY0ZC4uNTQ0YzkzMiAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MWNhcDlhZGsvYXQ5MWNhcDlhZGsuYworKysgYi9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9hdDkxY2FwOWFkay5jCkBAIC0xNDcsOSArMTQ3LDkgQEAKIAlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLAogCQkgICAgICAgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfAogCQkgICAgICAgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8Ci0jaWZkZWYgQ0ZHX05BTkRfREJXXzE2CisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0RCV18xNgogCQkgICAgICAgQVQ5MV9TTUNfREJXXzE2IHwKLSNlbHNlIC8qIENGR19OQU5EX0RCV184ICovCisjZWxzZSAvKiBDT05GSUdfU1lTX05BTkRfREJXXzggKi8KIAkJICAgICAgIEFUOTFfU01DX0RCV184IHwKICNlbmRpZgogCQkgICAgICAgQVQ5MV9TTUNfVERGXygxKSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9uYW5kLmMgYi9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9uYW5kLmMKaW5kZXggMWRlYzU1OC4uY2MyMjYzYiAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MWNhcDlhZGsvbmFuZC5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFjYXA5YWRrL25hbmQuYwpAQCAtNjIsNyArNjIsNyBAQAogaW50IGJvYXJkX25hbmRfaW5pdChzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kKQogewogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKLSNpZmRlZiBDRkdfTkFORF9EQldfMTYKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfREJXXzE2CiAJbmFuZC0+b3B0aW9ucyA9IE5BTkRfQlVTV0lEVEhfMTY7CiAjZW5kaWYKIAluYW5kLT5jbWRfY3RybCA9IGF0OTFjYXA5YWRrX25hbmRfaHdjb250cm9sOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MWNhcDlhZGsvcGFydGl0aW9uLmMgYi9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9wYXJ0aXRpb24uYwppbmRleCBlYjFhNzI0Li43ZTFkNDZmIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9wYXJ0aXRpb24uYworKysgYi9ib2FyZC9hdG1lbC9hdDkxY2FwOWFkay9wYXJ0aXRpb24uYwpAQCAtMjMsMTAgKzIzLDEwIEBACiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8ZGF0YWZsYXNoLmg+CiAKLUFUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXTsKK0FUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU107CiAKLXN0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7Ci0Je0NGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAsIDB9LAkvKiBMb2dpY2FsIGFkcmVzcywgQ1MgKi8KK3N0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdID0geworCXtDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLwogfTsKIAogLypkZWZpbmUgdGhlIGFyZWEgb2Zmc2V0cyovCmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxcm05MjAwZGsvZmxhc2guYyBiL2JvYXJkL2F0bWVsL2F0OTFybTkyMDBkay9mbGFzaC5jCmluZGV4IGVmOGQ5YTguLjkwMmMzYzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFybTkyMDBkay9mbGFzaC5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFybTkyMDBkay9mbGFzaC5jCkBAIC01OSw3ICs1OSw3IEBACiAJeyAxMjcsIDY0KjEwMjQgfSwJLyogMTI3ICogNjQga0J5dGVzIHNlY3RvcnMgKi8KIH07CiAKLWZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKiBBVDQ5QlYxNjE0QSBDb2RlcyAqLwogI2RlZmluZSBGTEFTSF9DT0RFMQkJMHhBQQpAQCAtNzcsOCArNzcsOCBAQAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMjAKICNkZWZpbmUgQ01EX1NFQ1RPUl9VTkxPQ0sJMHgwMDcwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwNTU1NTw8MSkpKQotI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAyQUFBPDwxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMQkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDA1NTU1PDwxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAyQUFBPDwxKSkpCiAKICNkZWZpbmUgQklUX0VSQVNFX0RPTkUJCTB4MDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDA4MApAQCAtOTksOSArOTksOSBAQAogCU1FTV9GTEFTSF9BRERSMiA9IEZMQVNIX0NPREUyOwogCU1FTV9GTEFTSF9BRERSMSA9IElEX0lOX0NPREU7CiAKLQltYW51Zl9jb2RlID0gKih2b2xhdGlsZSB1MTYgKikgQ0ZHX0ZMQVNIX0JBU0U7Ci0JZGV2aWNlX2NvZGUgPSAqKHZvbGF0aWxlIHUxNiAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyAyKTsKLQlhZGRfZGV2aWNlX2NvZGUgPSAqKHZvbGF0aWxlIHUxNiAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyAoMyA8PCAxKSk7CisJbWFudWZfY29kZSA9ICoodm9sYXRpbGUgdTE2ICopIENPTkZJR19TWVNfRkxBU0hfQkFTRTsKKwlkZXZpY2VfY29kZSA9ICoodm9sYXRpbGUgdTE2ICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAyKTsKKwlhZGRfZGV2aWNlX2NvZGUgPSAqKHZvbGF0aWxlIHUxNiAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDMgPDwgMSkpOwogCiAJTUVNX0ZMQVNIX0FERFIxID0gRkxBU0hfQ09ERTE7CiAJTUVNX0ZMQVNIX0FERFIyID0gRkxBU0hfQ09ERTI7CkBAIC0xNTcsNyArMTU3LDcgQEAKIAogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaWRlbnRpZmljYXRpb24gKCZmbGFzaF9pbmZvW2ldKTsKQEAgLTIxNiw4ICsyMTYsOCBAQAogCiAJLyogUHJvdGVjdCBiaW5hcnkgYm9vdCBpbWFnZSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgQ0ZHX0JPT1RfU0laRSAtIDEsICZmbGFzaF9pbmZvWzBdKTsKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfQk9PVF9TSVpFIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogUHJvdGVjdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjI2LDggKzIyNiw4IEBACiAKIAkvKiBQcm90ZWN0IFUtQm9vdCBnemlwcGVkIGltYWdlICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19VX0JPT1RfQkFTRSwKLQkJICAgICAgIENGR19VX0JPT1RfQkFTRSArIENGR19VX0JPT1RfU0laRSAtIDEsICZmbGFzaF9pbmZvWzBdKTsKKwkJICAgICAgIENPTkZJR19TWVNfVV9CT09UX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1VfQk9PVF9CQVNFICsgQ09ORklHX1NZU19VX0JPT1RfU0laRSAtIDEsICZmbGFzaF9pbmZvWzBdKTsKIAogCXJldHVybiBzaXplOwogfQpAQCAtMzQ1LDcgKzM0NSw3IEBACiAJCQkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCU1FTV9GTEFTSF9BRERSMSA9IENNRF9SRUFEX0FSUkFZOwogCQkJCQljaGlwMSA9IFRNTzsKIAkJCQkJYnJlYWs7CkBAIC00MzMsNyArNDMzLDcgQEAKIAkJcmVzdWx0ID0gKmFkZHI7CiAKIAkJLyogY2hlY2sgdGltZW91dCAqLwotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQljaGlwMSA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxcm05MjAwZGsvcGFydGl0aW9uLmMgYi9ib2FyZC9hdG1lbC9hdDkxcm05MjAwZGsvcGFydGl0aW9uLmMKaW5kZXggOTc1YmUxNy4uYzczOWIxMSAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXJtOTIwMGRrL3BhcnRpdGlvbi5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFybTkyMDBkay9wYXJ0aXRpb24uYwpAQCAtMjMsMTEgKzIzLDExIEBACiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8ZGF0YWZsYXNoLmg+CiAKLUFUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXTsKK0FUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU107CiAKLXN0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7Ci0Je0NGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAsIDB9LAkvKiBMb2dpY2FsIGFkcmVzcywgQ1MgKi8KLQl7Q0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMywgM30KK3N0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdID0geworCXtDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLworCXtDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMywgM30KIH07CiAKIC8qZGVmaW5lIHRoZSBhcmVhIG9mZnNldHMqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjBlay9hdDkxc2FtOTI2MGVrLmMgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL2F0OTFzYW05MjYwZWsuYwppbmRleCA5MTNlM2ZiLi4zNzJjZmIyIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL2F0OTFzYW05MjYwZWsuYworKysgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL2F0OTFzYW05MjYwZWsuYwpAQCAtOTIsOSArOTIsOSBAQAogCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksCiAJCSAgICAgICBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8CiAJCSAgICAgICBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwKLSNpZmRlZiBDRkdfTkFORF9EQldfMTYKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfREJXXzE2CiAJCSAgICAgICBBVDkxX1NNQ19EQldfMTYgfAotI2Vsc2UgLyogQ0ZHX05BTkRfREJXXzggKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfTkFORF9EQldfOCAqLwogCQkgICAgICAgQVQ5MV9TTUNfREJXXzggfAogI2VuZGlmCiAJCSAgICAgICBBVDkxX1NNQ19UREZfKDIpKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYwZWsvbmFuZC5jIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjBlay9uYW5kLmMKaW5kZXggNjY1ZTM1Yy4uYzVhYzYzNCAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjBlay9uYW5kLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjBlay9uYW5kLmMKQEAgLTY3LDcgKzY3LDcgQEAKIGludCBib2FyZF9uYW5kX2luaXQoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKIHsKIAluYW5kLT5lY2MubW9kZSA9IE5BTkRfRUNDX1NPRlQ7Ci0jaWZkZWYgQ0ZHX05BTkRfREJXXzE2CisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0RCV18xNgogCW5hbmQtPm9wdGlvbnMgPSBOQU5EX0JVU1dJRFRIXzE2OwogI2VuZGlmCiAJbmFuZC0+Y21kX2N0cmwgPSBhdDkxc2FtOTI2MGVrX25hbmRfaHdjb250cm9sOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjBlay9wYXJ0aXRpb24uYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYwZWsvcGFydGl0aW9uLmMKaW5kZXggNTU3ZDY5NS4uMjYyOWM2NyAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjBlay9wYXJ0aXRpb24uYworKysgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MGVrL3BhcnRpdGlvbi5jCkBAIC0yMywxMSArMjMsMTEgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxkYXRhZmxhc2guaD4KIAotQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdOworQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTXTsKIAotc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXSA9IHsKLQl7Q0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLwotCXtDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MxLCAxfQorc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7CisJe0NPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwLCAwfSwJLyogTG9naWNhbCBhZHJlc3MsIENTICovCisJe0NPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MxLCAxfQogfTsKIAogLypkZWZpbmUgdGhlIGFyZWEgb2Zmc2V0cyovCmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MWVrL2F0OTFzYW05MjYxZWsuYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvYXQ5MXNhbTkyNjFlay5jCmluZGV4IDY0N2FhYjUuLjc2ZjU2ZDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvYXQ5MXNhbTkyNjFlay5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvYXQ5MXNhbTkyNjFlay5jCkBAIC05Miw5ICs5Miw5IEBACiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwKIAkJICAgICAgIEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwKIAkJICAgICAgIEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfAotI2lmZGVmIENGR19OQU5EX0RCV18xNgorI2lmZGVmIENPTkZJR19TWVNfTkFORF9EQldfMTYKIAkJICAgICAgIEFUOTFfU01DX0RCV18xNiB8Ci0jZWxzZSAvKiBDRkdfTkFORF9EQldfOCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19OQU5EX0RCV184ICovCiAJCSAgICAgICBBVDkxX1NNQ19EQldfOCB8CiAjZW5kaWYKIAkJICAgICAgIEFUOTFfU01DX1RERl8oMikpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjFlay9uYW5kLmMgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MWVrL25hbmQuYwppbmRleCBmY2NiOWQ3Li4wNjM5NWVlIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MWVrL25hbmQuYworKysgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MWVrL25hbmQuYwpAQCAtNjcsNyArNjcsNyBAQAogaW50IGJvYXJkX25hbmRfaW5pdChzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kKQogewogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKLSNpZmRlZiBDRkdfTkFORF9EQldfMTYKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfREJXXzE2CiAJbmFuZC0+b3B0aW9ucyA9IE5BTkRfQlVTV0lEVEhfMTY7CiAjZW5kaWYKIAluYW5kLT5jbWRfY3RybCA9IGF0OTFzYW05MjYxZWtfbmFuZF9od2NvbnRyb2w7CmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MWVrL3BhcnRpdGlvbi5jIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjFlay9wYXJ0aXRpb24uYwppbmRleCA5NzViZTE3Li5jNzM5YjExIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2MWVrL3BhcnRpdGlvbi5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYxZWsvcGFydGl0aW9uLmMKQEAgLTIzLDExICsyMywxMSBAQAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGRhdGFmbGFzaC5oPgogCi1BVDkxU19EQVRBRkxBU0hfSU5GTyBkYXRhZmxhc2hfaW5mb1tDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU107CitBVDkxU19EQVRBRkxBU0hfSU5GTyBkYXRhZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdOwogCi1zdHJ1Y3QgZGF0YWZsYXNoX2FkZHIgY3NbQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdID0gewotCXtDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwLCAwfSwJLyogTG9naWNhbCBhZHJlc3MsIENTICovCi0Je0NGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzMsIDN9CitzdHJ1Y3QgZGF0YWZsYXNoX2FkZHIgY3NbQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTXSA9IHsKKwl7Q09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAsIDB9LAkvKiBMb2dpY2FsIGFkcmVzcywgQ1MgKi8KKwl7Q09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzMsIDN9CiB9OwogCiAvKmRlZmluZSB0aGUgYXJlYSBvZmZzZXRzKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYzZWsvYXQ5MXNhbTkyNjNlay5jIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9hdDkxc2FtOTI2M2VrLmMKaW5kZXggYzcwNTA3NC4uZGQ1MTNiOSAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9hdDkxc2FtOTI2M2VrLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9hdDkxc2FtOTI2M2VrLmMKQEAgLTk1LDkgKzk1LDkgQEAKIAlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLAogCQkgICAgICAgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfAogCQkgICAgICAgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8Ci0jaWZkZWYgQ0ZHX05BTkRfREJXXzE2CisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0RCV18xNgogCQkgICAgICAgQVQ5MV9TTUNfREJXXzE2IHwKLSNlbHNlIC8qIENGR19OQU5EX0RCV184ICovCisjZWxzZSAvKiBDT05GSUdfU1lTX05BTkRfREJXXzggKi8KIAkJICAgICAgIEFUOTFfU01DX0RCV184IHwKICNlbmRpZgogCQkgICAgICAgQVQ5MV9TTUNfVERGXygyKSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2M2VrL25hbmQuYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYzZWsvbmFuZC5jCmluZGV4IDI1MGVjN2YuLjNjMjQ3ZjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYzZWsvbmFuZC5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYzZWsvbmFuZC5jCkBAIC02Nyw3ICs2Nyw3IEBACiBpbnQgYm9hcmRfbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCiB7CiAJbmFuZC0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwotI2lmZGVmIENGR19OQU5EX0RCV18xNgorI2lmZGVmIENPTkZJR19TWVNfTkFORF9EQldfMTYKIAluYW5kLT5vcHRpb25zID0gTkFORF9CVVNXSURUSF8xNjsKICNlbmRpZgogCW5hbmQtPmNtZF9jdHJsID0gYXQ5MXNhbTkyNjNla19uYW5kX2h3Y29udHJvbDsKZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYzZWsvcGFydGl0aW9uLmMgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOTI2M2VrL3BhcnRpdGlvbi5jCmluZGV4IGViMWE3MjQuLjdlMWQ0NmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFzYW05MjYzZWsvcGFydGl0aW9uLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTkyNjNlay9wYXJ0aXRpb24uYwpAQCAtMjMsMTAgKzIzLDEwIEBACiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8ZGF0YWZsYXNoLmg+CiAKLUFUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXTsKK0FUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU107CiAKLXN0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7Ci0Je0NGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAsIDB9LAkvKiBMb2dpY2FsIGFkcmVzcywgQ1MgKi8KK3N0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdID0geworCXtDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLwogfTsKIAogLypkZWZpbmUgdGhlIGFyZWEgb2Zmc2V0cyovCmRpZmYgLS1naXQgYS9ib2FyZC9hdG1lbC9hdDkxc2FtOXJsZWsvYXQ5MXNhbTlybGVrLmMgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOXJsZWsvYXQ5MXNhbTlybGVrLmMKaW5kZXggNTA5ZTdjMy4uN2JmMWY0MyAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXQ5MXNhbTlybGVrL2F0OTFzYW05cmxlay5jCisrKyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9hdDkxc2FtOXJsZWsuYwpAQCAtOTIsOSArOTIsOSBAQAogCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksCiAJCSAgICAgICBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8CiAJCSAgICAgICBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwKLSNpZmRlZiBDRkdfTkFORF9EQldfMTYKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfREJXXzE2CiAJCSAgICAgICBBVDkxX1NNQ19EQldfMTYgfAotI2Vsc2UgLyogQ0ZHX05BTkRfREJXXzggKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfTkFORF9EQldfOCAqLwogCQkgICAgICAgQVQ5MV9TTUNfREJXXzggfAogI2VuZGlmCiAJCSAgICAgICBBVDkxX1NNQ19UREZfKDIpKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9uYW5kLmMgYi9ib2FyZC9hdG1lbC9hdDkxc2FtOXJsZWsvbmFuZC5jCmluZGV4IGViMzQyYjguLjYyNWY2ZWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9uYW5kLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTlybGVrL25hbmQuYwpAQCAtNjcsNyArNjcsNyBAQAogaW50IGJvYXJkX25hbmRfaW5pdChzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kKQogewogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKLSNpZmRlZiBDRkdfTkFORF9EQldfMTYKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfREJXXzE2CiAJbmFuZC0+b3B0aW9ucyA9IE5BTkRfQlVTV0lEVEhfMTY7CiAjZW5kaWYKIAluYW5kLT5jbWRfY3RybCA9IGF0OTFzYW05cmxla19uYW5kX2h3Y29udHJvbDsKZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9wYXJ0aXRpb24uYyBiL2JvYXJkL2F0bWVsL2F0OTFzYW05cmxlay9wYXJ0aXRpb24uYwppbmRleCBlYjFhNzI0Li43ZTFkNDZmIDEwMDY0NAotLS0gYS9ib2FyZC9hdG1lbC9hdDkxc2FtOXJsZWsvcGFydGl0aW9uLmMKKysrIGIvYm9hcmQvYXRtZWwvYXQ5MXNhbTlybGVrL3BhcnRpdGlvbi5jCkBAIC0yMywxMCArMjMsMTAgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxkYXRhZmxhc2guaD4KIAotQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdOworQVQ5MVNfREFUQUZMQVNIX0lORk8gZGF0YWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTXTsKIAotc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NGR19NQVhfREFUQUZMQVNIX0JBTktTXSA9IHsKLQl7Q0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCwgMH0sCS8qIExvZ2ljYWwgYWRyZXNzLCBDUyAqLworc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU10gPSB7CisJe0NPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwLCAwfSwJLyogTG9naWNhbCBhZHJlc3MsIENTICovCiB9OwogCiAvKmRlZmluZSB0aGUgYXJlYSBvZmZzZXRzKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2F0bWVsL2F0c3RrMTAwMC9mbGFzaC5jIGIvYm9hcmQvYXRtZWwvYXRzdGsxMDAwL2ZsYXNoLmMKaW5kZXggZTJiZmQ0YS4uNGQzODBmMyAxMDA2NDQKLS0tIGEvYm9hcmQvYXRtZWwvYXRzdGsxMDAwL2ZsYXNoLmMKKysrIGIvYm9hcmQvYXRtZWwvYXRzdGsxMDAwL2ZsYXNoLmMKQEAgLTU1LDE3ICs1NSwxNyBAQAogCXVuc2lnbmVkIGxvbmcgYWRkcjsKIAl1bnNpZ25lZCBpbnQgaTsKIAotCWZsYXNoX2luZm9bMF0uc2l6ZSA9IENGR19GTEFTSF9TSVpFOworCWZsYXNoX2luZm9bMF0uc2l6ZSA9IENPTkZJR19TWVNfRkxBU0hfU0laRTsKIAlmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudCA9IDEzNTsKIAotCWZsYXNoX2lkZW50aWZ5KHVuY2FjaGVkKCh2b2lkICopQ0ZHX0ZMQVNIX0JBU0UpLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfaWRlbnRpZnkodW5jYWNoZWQoKHZvaWQgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UpLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmb3IgKGkgPSAwLCBhZGRyID0gMDsgaSA8IDg7IGkrKywgYWRkciArPSAweDIwMDApCiAJCWZsYXNoX2luZm9bMF0uc3RhcnRbaV0gPSBhZGRyOwogCWZvciAoOyBpIDwgZmxhc2hfaW5mb1swXS5zZWN0b3JfY291bnQ7IGkrKywgYWRkciArPSAweDEwMDAwKQogCQlmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldID0gYWRkcjsKIAotCXJldHVybiBDRkdfRkxBU0hfU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19GTEFTSF9TSVpFOwogfQogCiB2b2lkIGZsYXNoX3ByaW50X2luZm8oZmxhc2hfaW5mb190ICppbmZvKQpkaWZmIC0tZ2l0IGEvYm9hcmQvYXR1bTg1NDgvYXR1bTg1NDguYyBiL2JvYXJkL2F0dW04NTQ4L2F0dW04NTQ4LmMKaW5kZXggMzM3Y2YzMS4uMmVmMTljZSAxMDA2NDQKLS0tIGEvYm9hcmQvYXR1bTg1NDgvYXR1bTg1NDguYworKysgYi9ib2FyZC9hdHVtODU0OC9hdHVtODU0OC5jCkBAIC01MCw5ICs1MCw5IEBACiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbG9jYWxfZWNtX3QgKmVjbSA9ICh2b2lkICopKENGR19NUEM4NXh4X0VDTV9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbG9jYWxfZWNtX3QgKmVjbSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9FQ01fQUREUik7CiAKIAlpZiAoKHVpbnQpJmd1ci0+cG9ycGxsc3IgIT0gMHhlMDBlMDAwMCkgewogCQlwcmludGYoImltbWFwIHNpemUgZXJyb3IgJWx4XG4iLCh1bG9uZykmZ3VyLT5wb3JwbGxzcik7CkBAIC03MywxNSArNzMsMTUgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBsb25nIGludCBmaXhlZF9zZHJhbSAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENGR19NUEM4NXh4X0REUl9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JZGRyLT50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWRkci0+dGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JZGRyLT5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogICAgICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAlkZHItPmVycl9kaXNhYmxlID0gMHgwMDAwMDAwRDsKIAlkZHItPmVycl9zYmUgPSAweDAwZmYwMDAwOwpAQCAtOTAsMTMgKzkwLDEzIEBACiAJdWRlbGF5KDUwMCk7CiAgICAgI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQogCS8qIEVuYWJsZSBFQ0MgY2hlY2tpbmcgKi8KLQlkZHItPnNkcmFtX2NmZyA9IChDRkdfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKKwlkZHItPnNkcmFtX2NmZyA9IChDT05GSUdfU1lTX0REUl9DT05UUk9MIHwgMHgyMDAwMDAwMCk7CiAgICAgI2Vsc2UKLQlkZHItPnNkcmFtX2NmZyA9IENGR19ERFJfQ09OVFJPTDsKKwlkZHItPnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX0NPTlRST0w7CiAgICAgI2VuZGlmCiAJYXNtKCJzeW5jOyBpc3luYzsgbXN5bmMiKTsKIAl1ZGVsYXkoNTAwKTsKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9CiAjZW5kaWYJLyogIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pICovCiAKQEAgLTEyNywxNyArMTI3LDE3IEBACiAJcmV0dXJuIGRyYW1fc2l6ZTsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogaW50CiB0ZXN0ZHJhbSh2b2lkKQogewotCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENGR19NRU1URVNUX1NUQVJUOwotCXVpbnQgKnBlbmQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9FTkQ7CisJdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCXVpbnQgKnBlbmQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfRU5EOwogCXVpbnQgKnA7CiAKIAlwcmludGYoIlRlc3RpbmcgRFJBTSBmcm9tIDB4JTA4eCB0byAweCUwOHhcbiIsCi0JICAgICAgIENGR19NRU1URVNUX1NUQVJULAotCSAgICAgICBDRkdfTUVNVEVTVF9FTkQpOworCSAgICAgICBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQsCisJICAgICAgIENPTkZJR19TWVNfTUVNVEVTVF9FTkQpOwogCiAJcHJpbnRmKCJEUkFNIHRlc3QgcGhhc2UgMTpcbiIpOwogCWZvciAocCA9IHBzdGFydDsgcCA8IHBlbmQ7IHArKykgewpAQCAtMTg1LDcgKzE4NSw3IEBACiB2b2lkCiBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAKIAl1aW50IGRldmRpc3IgPSBndXItPmRldmRpc3I7CiAJdWludCBpb19zZWwgPSAoZ3VyLT5wb3JkZXZzciAmIE1QQzg1eHhfUE9SREVWU1JfSU9fU0VMKSA+PiAxOTsKQEAgLTIxMCw3ICsyMTAsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUxCiAgewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSUUxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUxX2hvc2U7CiAJaW50IHBjaWVfZXAgPSAoaG9zdF9hZ2VudCA9PSA1KTsKQEAgLTIyOCwzMiArMjI4LDMyIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwotI2lmZGVmIENGR19QQ0lFMV9NRU1fQkFTRTIKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFMgogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9CQVNFMiwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1BIWVMyLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fU0laRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUzIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRTIsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCQlob3NlLT5yZWdpb25fY291bnQrKzsKICNlbmRpZgpAQCAtMjc4LDcgKzI3OCw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJMQogewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2kxX2hvc2U7CiAKQEAgLTMwMSwyMyArMzAxLDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKIAkJaG9zZS0+Zmlyc3RfYnVzbm89Zmlyc3RfZnJlZV9idXNubzsKQEAgLTMzNywyNyArMzM3LDI3IEBACiAKICNpZmRlZiBDT05GSUdfUENJMgogewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSTJfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJMl9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2kyX2hvc2U7CiAKIAlpZiAoIShkZXZkaXNyICYgTVBDODV4eF9ERVZESVNSX1BDSTIpKSB7CiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJMl9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJMl9NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMl9NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSTJfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJMl9JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0kyX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CiAJCWhvc2UtPmZpcnN0X2J1c25vPWZpcnN0X2ZyZWVfYnVzbm87CmRpZmYgLS1naXQgYS9ib2FyZC9hdHVtODU0OC9kZHIuYyBiL2JvYXJkL2F0dW04NTQ4L2Rkci5jCmluZGV4IGYwN2Q3NDYuLmFiNjRmYTggMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0dW04NTQ4L2Rkci5jCisrKyBiL2JvYXJkL2F0dW04NTQ4L2Rkci5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8aTJjLmg+CiAKICNpbmNsdWRlIDxhc20vZnNsX2Rkcl9zZHJhbS5oPgorI2luY2x1ZGUgPGFzbS9mc2xfZGRyX2RpbW1fcGFyYW1zLmg+CiAKIHN0YXRpYyB2b2lkCiBnZXRfc3BkKGRkcjJfc3BkX2VlcHJvbV90ICpzcGQsIHVuc2lnbmVkIGNoYXIgaTJjX2FkZHJlc3MpCkBAIC0zNyw3ICszOCw5IEBACiAJfQogfQogCi12b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywgdW5zaWduZWQgaW50IGN0cmxfbnVtKQordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgY2xvY2sgYWRqdXN0OgpkaWZmIC0tZ2l0IGEvYm9hcmQvYXR1bTg1NDgvbGF3LmMgYi9ib2FyZC9hdHVtODU0OC9sYXcuYwppbmRleCBiNjZmZDdiLi5iNzBiMDkxIDEwMDY0NAotLS0gYS9ib2FyZC9hdHVtODU0OC9sYXcuYworKysgYi9ib2FyZC9hdHVtODU0OC9sYXcuYwpAQCAtNDgsMTQgKzQ4LDE0IEBACiAgKi8KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdBUl9TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCi0JU0VUX0xBVyhDRkdfUENJMl9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSV8yKSwKLQlTRVRfTEFXKENGR19QQ0lFMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKLQlTRVRfTEFXKENGR19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV0FSX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKIAkvKiBMQkMgd2luZG93IC0gbWFwcyAyNTZNIDB4ZjAwMDAwMDAgLT4gMHhmZmZmZmZmZiAqLwotCVNFVF9MQVcoQ0ZHX0xCQ19DQUNIRV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfQ0FDSEVfQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9hdHVtODU0OC90bGIuYyBiL2JvYXJkL2F0dW04NTQ4L3RsYi5jCmluZGV4IDFlZjRkZTQuLmVmNzk0MmMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2F0dW04NTQ4L3RsYi5jCisrKyBiL2JvYXJkL2F0dW04NTQ4L3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC00NywxMSArNDcsMTEgQEAKIAkgKiAweGY4MDAwMDAwCTEyOE0JRkxBU0gKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAwMDAsIENGR19GTEFTSF9CQVNFICsgMHg0MDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMDAwLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtNTksNyArNTksNyBAQAogCSAqIFRMQiAyOgkxRwlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkxRwlQQ0kxL1BDSUUgIDgsOSxhLGIKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lfUEhZUywgQ0ZHX1BDSV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lfUEhZUywgQ09ORklHX1NZU19QQ0lfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8xRywgMSksCiAKQEAgLTY3LDExICs2NywxMSBAQAogCSAqIFRMQiAzLCA0Ogk1MTJNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGMwMDAwMDAwCTFHCVBDSTIKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kyX01FTV9QSFlTLCBDRkdfUENJMl9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTgyLDcgKzgyLDcgQEAKIAkgKiAweGUyMTBfMDAwMAkxTQlQQ0kyIElPCiAJICogMHhlMzAwXzAwMDAJMU0JUENJZSBJTwogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiB9OwpkaWZmIC0tZ2l0IGEvYm9hcmQvYmFyY28vYmFyY28uYyBiL2JvYXJkL2JhcmNvL2JhcmNvLmMKaW5kZXggZjhiMjA4NC4uZWQzNTU3MiAxMDA2NDQKLS0tIGEvYm9hcmQvYmFyY28vYmFyY28uYworKysgYi9ib2FyZC9iYXJjby9iYXJjby5jCkBAIC05MCw3ICs5MCw3IEBACiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUgKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplIChDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFKTsKIAogCW5ld19iYW5rMF9lbmQgPSBzaXplIC0gMTsKIAltZWFyMSA9IG1wYzgyNHhfbXBjMTA3X2dldHJlZyAoTUVBUjEpOwpAQCAtMTg4LDE0ICsxODgsMTQgQEAKIHVuc2lnbmVkIHNjYW5fZmxhc2ggKHZvaWQpCiB7CiAJY2hhciBzZWN0aW9uW10gPSAgImtlcm5lbCI7Ci0JaW50IGNmZ0ZpbGVMZW4gID0gIChDRkdfRkxBU0hfRVJBU0VfU0VDVE9SX0xFTkdUSCA+PiAxKTsKKwlpbnQgY2ZnRmlsZUxlbiAgPSAgKENPTkZJR19TWVNfRkxBU0hfRVJBU0VfU0VDVE9SX0xFTkdUSCA+PiAxKTsKIAlpbnQgc2VjdGlvblB0ciAgPSAwOwogCWludCBmb3VuZEl0ZW0gICA9IDA7IC8qIDA6IE5vbmUsIDE6IHNlY3Rpb24gZm91bmQsIDI6ICI9IiBmb3VuZCAqLwogCWludCBidWZQdHI7CiAJdW5zaWduZWQgY2hhciAqYnVmOwogCi0JYnVmID0gKHVuc2lnbmVkIGNoYXIqKShDRkdfRkxBU0hfUkFOR0VfQkFTRSArIENGR19GTEFTSF9SQU5HRV9TSVpFIFwKLQkJCS0gQ0ZHX0ZMQVNIX0VSQVNFX1NFQ1RPUl9MRU5HVEgpOworCWJ1ZiA9ICh1bnNpZ25lZCBjaGFyKikoQ09ORklHX1NZU19GTEFTSF9SQU5HRV9CQVNFICsgQ09ORklHX1NZU19GTEFTSF9SQU5HRV9TSVpFIFwKKwkJCS0gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9TRUNUT1JfTEVOR1RIKTsKIAlmb3IgKGJ1ZlB0ciA9IDA7IGJ1ZlB0ciA8IGNmZ0ZpbGVMZW47ICsrYnVmUHRyKSB7CiAJCWlmICgoYnVmW2J1ZlB0cl09PTB4RkYpICYmICgqKGludCopKGJ1ZitidWZQdHIpPT0weEZGRkZGRkZGKSkgewogCQkJcmV0dXJuIEJPT1RfREVGQVVMVDsKQEAgLTIzNiwxNCArMjM2LDE0IEBACiAKIAlzd2l0Y2ggKGJvb3RpbWFnZSkgewogCWNhc2UgVFJZX1dPUktJTkc6Ci0JCWluZm8tPmFkZHJlc3MgPSBDRkdfV09SS0lOR19LRVJORUxfQUREUkVTUzsKKwkJaW5mby0+YWRkcmVzcyA9IENPTkZJR19TWVNfV09SS0lOR19LRVJORUxfQUREUkVTUzsKIAkJYnJlYWs7CiAJY2FzZSBCT09UX1dPUktJTkcgOgotCQlpbmZvLT5hZGRyZXNzID0gQ0ZHX1dPUktJTkdfS0VSTkVMX0FERFJFU1M7CisJCWluZm8tPmFkZHJlc3MgPSBDT05GSUdfU1lTX1dPUktJTkdfS0VSTkVMX0FERFJFU1M7CiAJCWJyZWFrOwogCWNhc2UgQk9PVF9ERUZBVUxUOgogCWRlZmF1bHQ6Ci0JCWluZm8tPmFkZHJlc3M9IENGR19ERUZBVUxUX0tFUk5FTF9BRERSRVNTOworCQlpbmZvLT5hZGRyZXNzPSBDT05GSUdfU1lTX0RFRkFVTFRfS0VSTkVMX0FERFJFU1M7CiAKIAl9CiAJaW5mby0+c2l6ZSA9ICooKHVuc2lnbmVkIGludCAqKShpbmZvLT5hZGRyZXNzICkpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYmFyY28vYmFyY29fc3ZjLmggYi9ib2FyZC9iYXJjby9iYXJjb19zdmMuaAppbmRleCBiZDkyNGYyLi5lMTAzMjYwIDEwMDY0NAotLS0gYS9ib2FyZC9iYXJjby9iYXJjb19zdmMuaAorKysgYi9ib2FyZC9iYXJjby9iYXJjb19zdmMuaApAQCAtMzgsMTYgKzM4LDE2IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKIC8qIERlZmluZXMgZm9yIHRoZSBiYXJjb2h5ZHJhIGJvYXJkICovCi0jaWZuZGVmIENGR19GTEFTSF9FUkFTRV9TRUNUT1JfTEVOR1RICi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9TRUNUT1JfTEVOR1RIICgweDEwMDAwKQorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1NFQ1RPUl9MRU5HVEgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9TRUNUT1JfTEVOR1RIICgweDEwMDAwKQogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0RFRkFVTFRfS0VSTkVMX0FERFJFU1MKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfS0VSTkVMX0FERFJFU1MgKENGR19GTEFTSF9CQVNFICsgMHgzMDAwMCkKKyNpZm5kZWYgQ09ORklHX1NZU19ERUZBVUxUX0tFUk5FTF9BRERSRVNTCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9LRVJORUxfQUREUkVTUyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgzMDAwMCkKICNlbmRpZgogCi0jaWZuZGVmIENGR19XT1JLSU5HX0tFUk5FTF9BRERSRVNTCi0jZGVmaW5lIENGR19XT1JLSU5HX0tFUk5FTF9BRERSRVNTICgweEZGRTAwMDAwKQorI2lmbmRlZiBDT05GSUdfU1lTX1dPUktJTkdfS0VSTkVMX0FERFJFU1MKKyNkZWZpbmUgQ09ORklHX1NZU19XT1JLSU5HX0tFUk5FTF9BRERSRVNTICgweEZGRTAwMDAwKQogI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvYmFyY28vZWFybHlfaW5pdC5TIGIvYm9hcmQvYmFyY28vZWFybHlfaW5pdC5TCmluZGV4IDA3ZGFmYjcuLjUzMWRjZGYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JhcmNvL2Vhcmx5X2luaXQuUworKysgYi9ib2FyZC9iYXJjby9lYXJseV9pbml0LlMKQEAgLTMyLDY4ICszMiw2OCBAQAogCiAjaWYgZGVmaW5lZChVU0VfRElOSzMyKQogICAvKiBXZSBhcmUgcnVubmluZyBmcm9tIFJBTSwgc28gZG8gbm90IGNsZWFyIHRoZSBNQ0NSMV9NRU1HTyBiaXQhICovCi0gICNkZWZpbmUgTUNDUjFWQUwgKChDRkdfUk9NTkFMIDw8IE1DQ1IxX1JPTU5BTF9TSElGVCkgfCAoQ0ZHX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpIHwgTUNDUjFfTUVNR08pCisgICNkZWZpbmUgTUNDUjFWQUwgKChDT05GSUdfU1lTX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwgKENPTkZJR19TWVNfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkgfCBNQ0NSMV9NRU1HTykKICNlbHNlCi0gICNkZWZpbmUgTUNDUjFWQUwgKENGR19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDRkdfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkKKyAgI2RlZmluZSBNQ0NSMVZBTCAoQ09ORklHX1NZU19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDT05GSUdfU1lTX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpCiAjZW5kaWYKIAogCS50ZXh0CiAKIAkvKiBWYWx1ZXMgdG8gcHJvZ3JhbSBpbnRvIG1lbW9yeSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwogdGJsOgkubG9uZwlNQ0NSMSwgTUNDUjFWQUwKLQkubG9uZwlNQ0NSMiwgQ0ZHX1JFRklOVCA8PCBNQ0NSMl9SRUZJTlRfU0hJRlQKKwkubG9uZwlNQ0NSMiwgQ09ORklHX1NZU19SRUZJTlQgPDwgTUNDUjJfUkVGSU5UX1NISUZUCiAJLmxvbmcJTUNDUjMKLQkubG9uZwkoKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAwZjApID4+IDQpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8IFwKLQkJKENGR19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8IFwKLQkJKENGR19SRExBVCAgPDwgTUNDUjNfUkRMQVRfU0hJRlQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDBmMCkgPj4gNCkgPDwgTUNDUjNfQlNUT1BSRTJUTzVfU0hJRlQpIHwgXAorCQkoQ09ORklHX1NZU19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8IFwKKwkJKENPTkZJR19TWVNfUkRMQVQgIDw8IE1DQ1IzX1JETEFUX1NISUZUKQogCS5sb25nCU1DQ1I0Ci0JLmxvbmcJKENGR19QUkVUT0FDVCA8PCBNQ0NSNF9QUkVUT0FDVF9TSElGVCkgfCAoQ0ZHX0FDVFRPUFJFIDw8IE1DQ1I0X0FDVFRPUFJFX1NISUZUKSB8IFwKLQkJKENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPDwgMjApIHwgXAotCQkoKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAzMDApID4+IDgpIDw8IE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfCBcCi0JCSgoQ0ZHX1NETU9ERV9DQVNfTEFUIDw8IDQpIHwgKENGR19TRE1PREVfV1JBUCA8PCAzKSB8IFwKLQkJKENGR19TRE1PREVfQlVSU1RMRU4pIDw8IE1DQ1I0X1NETU9ERV9TSElGVCkgfCBcCi0JCShDRkdfQUNUVE9SVyA8PCBNQ0NSNF9BQ1RUT1JXX1NISUZUKSB8IFwKLQkJKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAwMGYpIDw8IE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUICkKKwkubG9uZwkoQ09ORklHX1NZU19QUkVUT0FDVCA8PCBNQ0NSNF9QUkVUT0FDVF9TSElGVCkgfCAoQ09ORklHX1NZU19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA8PCAyMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMDAzMDApID4+IDgpIDw8IE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfCBcCisJCSgoQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCA8PCA0KSB8IChDT05GSUdfU1lTX1NETU9ERV9XUkFQIDw8IDMpIHwgXAorCQkoQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4pIDw8IE1DQ1I0X1NETU9ERV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX0FDVFRPUlcgPDwgTUNDUjRfQUNUVE9SV19TSElGVCkgfCBcCisJCSgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDAwZikgPDwgTUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKQogCS5sb25nCU1TQVIxCi0JLmxvbmcJKCgoQ0ZHX0JBTkswX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTkszX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNU0FSMQotCS5sb25nCSgoKENGR19CQU5LMF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTksyX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksxX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJTVNBUjIKLQkubG9uZwkoKChDRkdfQkFOSzRfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTks2X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzdfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks1X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks2X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJRU1TQVIyCi0JLmxvbmcJKCgoQ0ZHX0JBTks0X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNRUFSMQotCS5sb25nCSgoKENGR19CQU5LMF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LMV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTkswX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNRUFSMQotCS5sb25nCSgoKENGR19CQU5LMF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTksxX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzJfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzBfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzFfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzNfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNRUFSMgotCS5sb25nCSgoKENGR19CQU5LNF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LNl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNRUFSMgotCS5sb25nCSgoKENGR19CQU5LNF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTks1X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzRfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzdfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwkwCiAKIApAQCAtMTIzLDcgKzEyMyw3IEBACiAJLyogc2V0IGJhbmsgZW5hYmxlIGJpdHMgKi8KIAlsaXMJcjAsIE1CRVJAaAogCW9yaQlyMCwgMCwgTUJFUkBsCi0JbGkJcjEsIENGR19CQU5LX0VOQUJMRQorCWxpCXIxLCBDT05GSUdfU1lTX0JBTktfRU5BQkxFCiAJc3R3YnJ4CXIwLCAwLCByMwogCWVpZWlvCiAJc3RiCXIxLCAwKHI0KQpAQCAtMTQ1LDggKzE0NSw4IEBACiAJZWllaW8KIAogCS8qIHNldCB1cCBzdGFjayBwb2ludGVyICovCi0JbGlzCXIxLCBDRkdfSU5JVF9TUF9PRkZTRVRAaAotCW9yaQlyMSwgcjEsIENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUQGgKKwlvcmkJcjEsIHIxLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUQGwKIAogCW10bHIJcjEwCiAJYmxyCmRpZmYgLS1naXQgYS9ib2FyZC9iYXJjby9mbGFzaC5jIGIvYm9hcmQvYmFyY28vZmxhc2guYwppbmRleCA1M2ZjNThjLi5jOWVmYjE1IDEwMDY0NAotLS0gYS9ib2FyZC9iYXJjby9mbGFzaC5jCisrKyBiL2JvYXJkL2JhcmNvL2ZsYXNoLmMKQEAgLTU2LDExICs1NiwxMSBAQAogI2RlZmluZSBST01fQ1MwX1NUQVJUCTB4RkY4MDAwMDAKICNkZWZpbmUgUk9NX0NTMV9TVEFSVAkweEZGMDAwMDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFICBDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtMTQwLDEwICsxNDAsMTAgQEAKIHsKIAl1bnNpZ25lZCBsb25nIGk7CiAJdW5zaWduZWQgY2hhciBqOwotCXN0YXRpYyBjb25zdCB1bG9uZyBmbGFzaF9iYW5rc1tdID0gQ0ZHX0ZMQVNIX0JBTktTOworCXN0YXRpYyBjb25zdCB1bG9uZyBmbGFzaF9iYW5rc1tdID0gQ09ORklHX1NZU19GTEFTSF9CQU5LUzsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKXsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKyl7CiAJCWZsYXNoX2luZm9fdCAqIGNvbnN0IHBmbGluZm8gPSAmZmxhc2hfaW5mb1tpXTsKIAkJcGZsaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQlwZmxpbmZvLT5zaXplID0gMDsKQEAgLTIxNywxMCArMjE3LDEwIEBACiAJCQkJYnJlYWs7CiAJCX0KIAkJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC00NTgsNyArNDU4LDcgQEAKIAlhZGRyID0gKEZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSArICgKIAkJCQkoaW5mby0+c3RhcnRbbF9zZWN0XSAtIGluZm8tPnN0YXJ0WzBdKSA8PCBzaDhiKSk7CiAJd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTU5OSw3ICs1OTksNyBAQAogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgoZGVzdDJbaSA8PCBzaDhiXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KIAkJCQkoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2JjMzQ1MC9iYzM0NTAuYyBiL2JvYXJkL2JjMzQ1MC9iYzM0NTAuYwppbmRleCA3ZGRmNzRjLi42ZmIwMDk2IDEwMDY0NAotLS0gYS9ib2FyZC9iYzM0NTAvYmMzNDUwLmMKKysrIGIvYm9hcmQvYmMzNDUwL2JjMzQ1MC5jCkBAIC01Myw3ICs1Myw3IEBACiB2b2lkIHBzMm11bHRfZWFybHlfaW5pdCh2b2lkKTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC0xMDAsNyArMTAwLDcgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICoJICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKgkgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICoJICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKQEAgLTEwOSw3ICsxMDksNyBAQAogewogCXVsb25nIGRyYW1zaXplID0gMDsKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTEzMCw5ICsxMzAsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xNTgsOSArMTU4LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MxIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHgyMDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDIwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHgyMDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDIwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUyID0gdGVzdDE7CkBAIC0xODEsNyArMTgxLDcgQEAKIAkJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KIAl9CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTE5OSw3ICsxOTksNyBAQAogCQlkcmFtc2l6ZTIgPSAwOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlyZXR1cm4gZHJhbXNpemU7CiB9CkBAIC0yMDksNyArMjA5LDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIGFuZCBlbmFibGUgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0yMjgsOSArMjI4LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTI0MSwxMiArMjQxLDEyIEBACiAJLyogc2V0IFNEUkFNIGVuZCBhZGRyZXNzIGFjY29yZGluZyB0byBzaXplICovCiAJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9TVE9QID0gKChkcmFtc2l6ZSAtIDEpID4+IDE1KTsKIAotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogUmV0cmlldmUgYW1vdW50IG9mIFNEUkFNIGF2YWlsYWJsZSAqLwogCWRyYW1zaXplID0gKCgqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX1NUT1AgKyAxKSA8PCAxNSk7CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplOwogfQpAQCAtNDA1LDM0ICs0MDUsMzQgQEAKIAkgKi8KIAogCS8qIHNhdmUgb3JpZ2luYWwgU1JBTSBjb250ZW50ICAqLwotCXNhdmUgPSAqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQ7CisJc2F2ZSA9ICoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzJfU1RBUlQ7CiAJcmVzdG9yZSA9IDE7CiAKIAkvKiB3cml0ZSB0ZXN0IHBhdHRlcm4gdG8gU1JBTSAqLwotCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMl9TVEFSVCA9IDB4QTVBNTsKKwkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUID0gMHhBNUE1OwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAJLyoKIAkgKiBQdXQgYSBkaWZmZXJlbnQgcGF0dGVybiBvbiB0aGUgZGF0YSBsaW5lczogb3RoZXJ3aXNlIHRoZXkgbWF5IGZsb2F0CiAJICogbG9uZyBlbm91Z2ggdG8gcmVhZCBiYWNrIHdoYXQgd2Ugd3JvdGUuCiAJICovCi0JdG1wID0gKih2b2xhdGlsZSB1MTYgKilDRkdfRkxBU0hfQkFTRTsKKwl0bXAgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlpZiAodG1wID09IDB4QTVBNSkKIAkJcHV0cyAoIiEhIHBvc3NpYmxlIGVycm9yIGluIFNSQU0gZGV0ZWN0aW9uXG4iKTsKIAotCWlmICgqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQgIT0gMHhBNUE1KSB7CisJaWYgKCoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzJfU1RBUlQgIT0gMHhBNUE1KSB7CiAJCS8qIG5vIFNSQU0gYXQgYWxsLCBkaXNhYmxlIGNzICovCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQURERUNSICY9IH4oMSA8PCAxOCk7CiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX1NUQVJUID0gMHgwMDAwRkZGRjsKIAkJKih2dV9sb25nICopTVBDNVhYWF9DUzJfU1RPUCA9IDB4MDAwMEZGRkY7CiAJCXJlc3RvcmUgPSAwOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwotCX0gZWxzZSBpZiAoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0NTMl9TVEFSVCArICgxPDwxOSkpID09IDB4QTVBNSkgeworCX0gZWxzZSBpZiAoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19DUzJfU1RBUlQgKyAoMTw8MTkpKSA9PSAweEE1QTUpIHsKIAkJLyogbWFrZSBzdXJlIHRoYXQgd2UgYWNjZXNzIGEgbWlycm9yZWQgYWRkcmVzcyAqLwotCQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQgPSAweDExMTE7CisJCSoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzJfU1RBUlQgPSAweDExMTE7CiAJCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7Ci0JCWlmICgqKHZvbGF0aWxlIHUxNiAqKShDRkdfQ1MyX1NUQVJUICsgKDE8PDE5KSkgPT0gMHgxMTExKSB7CisJCWlmICgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0NTMl9TVEFSVCArICgxPDwxOSkpID09IDB4MTExMSkgewogCQkJLyogU1JBTSBzaXplID0gNTEyIGtCeXRlICovCi0JCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMl9TVE9QID0gU1RPUF9SRUcoQ0ZHX0NTMl9TVEFSVCwKKwkJCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX1NUT1AgPSBTVE9QX1JFRyhDT05GSUdfU1lTX0NTMl9TVEFSVCwKIAkJCQkJCQkJMHg4MDAwMCk7CiAJCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCQkJcHV0cyAoIlNSQU06ICA1MTIga0JcbiIpOwpAQCAtNDQ0LDcgKzQ0NCw3IEBACiAJfQogCS8qIHJlc3RvcmUgb3JpZ2lhbmwgU1JBTSBjb250ZW50ICAqLwogCWlmIChyZXN0b3JlKSB7Ci0JCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMl9TVEFSVCA9IHNhdmU7CisJCSoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzJfU1RBUlQgPSBzYXZlOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCX0KIApAQCAtNDUzLDIxICs0NTMsMjEgQEAKIAkgKi8KIAogCS8qIHNhdmUgb3JpZ2lhbmwgRkIgY29udGVudCAgKi8KLQlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUOworCXNhdmUgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUOwogCXJlc3RvcmUgPSAxOwogCiAJLyogd3JpdGUgdGVzdCBwYXR0ZXJuIHRvIEZCIG1lbW9yeSAqLwotCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCA9IDB4QTVBNTsKKwkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUID0gMHhBNUE1OwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAJLyoKIAkgKiBQdXQgYSBkaWZmZXJlbnQgcGF0dGVybiBvbiB0aGUgZGF0YSBsaW5lczogb3RoZXJ3aXNlIHRoZXkgbWF5IGZsb2F0CiAJICogbG9uZyBlbm91Z2ggdG8gcmVhZCBiYWNrIHdoYXQgd2Ugd3JvdGUuCiAJICovCi0JdG1wID0gKih2b2xhdGlsZSB1MTYgKilDRkdfRkxBU0hfQkFTRTsKKwl0bXAgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlpZiAodG1wID09IDB4QTVBNSkKIAkJcHV0cyAoIiEhIHBvc3NpYmxlIGVycm9yIGluIGdyYWZpYyBjb250cm9sbGVyIGRldGVjdGlvblxuIik7CiAKLQlpZiAoKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUICE9IDB4QTVBNSkgeworCWlmICgqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUICE9IDB4QTVBNSkgewogCQkvKiBubyBncmFmaWMgY29udHJvbGxlciBhdCBhbGwsIGRpc2FibGUgY3MgKi8KIAkJKih2dV9sb25nICopTVBDNVhYWF9BRERFQ1IgJj0gfigxIDw8IDE3KTsKIAkJKih2dV9sb25nICopTVBDNVhYWF9DUzFfU1RBUlQgPSAweDAwMDBGRkZGOwpAQCAtNDc5LDcgKzQ3OSw3IEBACiAJfQogCS8qIHJlc3RvcmUgb3JpZ2lhbmwgRkIgY29udGVudAkqLwogCWlmIChyZXN0b3JlKSB7Ci0JCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCA9IHNhdmU7CisJCSoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzFfU1RBUlQgPSBzYXZlOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCX0KIApAQCAtNjA3LDIxICs2MDcsMjEgQEAKIAkgKi8KIAogCS8qIHNhdmUgb3JpZ2lhbmwgRkIgY29udGVudCAgKi8KLQlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUOworCXNhdmUgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUOwogCXJlc3RvcmUgPSAxOwogCiAJLyogd3JpdGUgdGVzdCBwYXR0ZXJuIHRvIEZCIG1lbW9yeSAqLwotCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCA9IDB4QTVBNTsKKwkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUID0gMHhBNUE1OwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAJLyoKIAkgKiBQdXQgYSBkaWZmZXJlbnQgcGF0dGVybiBvbiB0aGUgZGF0YSBsaW5lczogb3RoZXJ3aXNlIHRoZXkgbWF5IGZsb2F0CiAJICogbG9uZyBlbm91Z2ggdG8gcmVhZCBiYWNrIHdoYXQgd2Ugd3JvdGUuCiAJICovCi0JdG1wID0gKih2b2xhdGlsZSB1MTYgKilDRkdfRkxBU0hfQkFTRTsKKwl0bXAgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlpZiAodG1wID09IDB4QTVBNSkKIAkJcHV0cyAoIiEhIHBvc3NpYmxlIGVycm9yIGluIGdyYWZpYyBjb250cm9sbGVyIGRldGVjdGlvblxuIik7CiAKLQlpZiAoKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUICE9IDB4QTVBNSkgeworCWlmICgqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUICE9IDB4QTVBNSkgewogCQkvKiBubyBncmFmaWMgY29udHJvbGxlciBmb3VuZCAqLwogCQlyZXN0b3JlID0gMDsKIAkJcmV0ID0gMDsKQEAgLTYzMCw3ICs2MzAsNyBAQAogCX0KIAogCWlmIChyZXN0b3JlKSB7Ci0JCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCA9IHNhdmU7CisJCSoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzFfU1RBUlQgPSBzYXZlOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCX0KIAlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvYm9hcmQvYmMzNDUwL2NtZF9iYzM0NTAuYyBiL2JvYXJkL2JjMzQ1MC9jbWRfYmMzNDUwLmMKaW5kZXggNDhiYzY1ZC4uYWU1MDYxZiAxMDA2NDQKLS0tIGEvYm9hcmQvYmMzNDUwL2NtZF9iYzM0NTAuYworKysgYi9ib2FyZC9iYzM0NTAvY21kX2JjMzQ1MC5jCkBAIC01Miw5ICs1Miw5IEBACiAjZGVmaW5lIFRIRVJNX1dSSVRFX1RMCQkweDAyCiAjZGVmaW5lIFRIRVJNX1dSSVRFX1RICQkweDAxCiAKLSNkZWZpbmUgQ0ZHX0NQVQkJCTIKLSNkZWZpbmUgQ0ZHXzFTSE9UCQkxCi0jZGVmaW5lIENGR19TVEFOREFMT05FCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVCQkJMgorI2RlZmluZSBDT05GSUdfU1lTXzFTSE9UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfU1RBTkRBTE9ORQkJMAogCiBzdHJ1Y3QgdGhlcm0gewogCWludCBoaTsKQEAgLTUxMyw3ICs1MTMsNyBAQAogCQkJdGhlcm0uaGkgPDw9IDE7CiAJCQl0aGVybS5sbyA8PD0gMTsKIAkJCWRzMTYyMF93cml0ZV9zdGF0ZSAoJnRoZXJtKTsKLQkJCWRzMTYyMF9vdXQgKFRIRVJNX1dSSVRFX0NPTkZJRywgOCwgQ0ZHX1NUQU5EQUxPTkUpOworCQkJZHMxNjIwX291dCAoVEhFUk1fV1JJVEVfQ09ORklHLCA4LCBDT05GSUdfU1lTX1NUQU5EQUxPTkUpOwogCQkJcmV0dXJuIDA7CiAJCX0KIAl9CkBAIC01MzgsOSArNTM4LDkgQEAKIAlzdGF0aWMgaW50IGluaXRfZG9uZSA9IDA7CiAJaW50IGk7CiAJc3RydWN0IG1wYzV4eHhfbXNjYW4gKmNhbjEgPQotCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikgKENGR19NQkFSICsgMHgwOTAwKTsKKwkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopIChDT05GSUdfU1lTX01CQVIgKyAweDA5MDApOwogCXN0cnVjdCBtcGM1eHh4X21zY2FuICpjYW4yID0KLQkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopIChDRkdfTUJBUiArIDB4MDk4MCk7CisJCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKSAoQ09ORklHX1NZU19NQkFSICsgMHgwOTgwKTsKIAogCS8qIEdQSU8gY29uZmlndXJhdGlvbiBvZiB0aGUgQ0FOIHBpbnMgaXMgZG9uZSBpbiBCQzM0NTAuaCAqLwogCkBAIC02ODYsOSArNjg2LDkgQEAKIHsKIAlpbnQgaTsKIAlzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqY2FuMSA9Ci0JCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKSAoQ0ZHX01CQVIgKyAweDA5MDApOworCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikgKENPTkZJR19TWVNfTUJBUiArIDB4MDkwMCk7CiAJc3RydWN0IG1wYzV4eHhfbXNjYW4gKmNhbjIgPQotCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikgKENGR19NQkFSICsgMHgwOTgwKTsKKwkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopIChDT05GSUdfU1lTX01CQVIgKyAweDA5ODApOwogCiAJLyogc2VuZCBhIG1lc3NhZ2Ugb24gQ0FOMSAqLwogCWNhbjEtPmNhbnRic2VsID0gMHgwMTsKZGlmZiAtLWdpdCBhL2JvYXJkL2JmNTMzLWV6a2l0L2JmNTMzLWV6a2l0LmMgYi9ib2FyZC9iZjUzMy1lemtpdC9iZjUzMy1lemtpdC5jCmluZGV4IDU4MzU2MGEuLjQyYzRiNTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTMzLWV6a2l0L2JmNTMzLWV6a2l0LmMKKysrIGIvYm9hcmQvYmY1MzMtZXpraXQvYmY1MzMtZXpraXQuYwpAQCAtNTAsMTIgKzUwLDEyIEBACiAJcHJpbnRmKCJ0UkNEICVkIFNDTEsgQ3ljbGVzLHRSUCAlZCBTQ0xLIEN5Y2xlcyx0UkFTICVkIFNDTEsgQ3ljbGVzIgogCSAgICAgICAidFdSICVkIFNDTEsgQ3ljbGVzLENBUyBMYXRlbmN5ICVkIFNDTEsgY3ljbGVzIFxuIiwKIAkgICAgICAgMywgMywgNiwgMiwgMyk7Ci0JcHJpbnRmKCJTRFJBTSBCZWdpbjogMHgleFxuIiwgQ0ZHX1NEUkFNX0JBU0UpOwotCXByaW50ZigiQmFuayBzaXplID0gJWQgTUJcbiIsIENGR19NQVhfUkFNX1NJWkUgPj4gMjApOworCXByaW50ZigiU0RSQU0gQmVnaW46IDB4JXhcbiIsIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJcHJpbnRmKCJCYW5rIHNpemUgPSAlZCBNQlxuIiwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgPj4gMjApOwogI2VuZGlmCi0JZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENGR19NQVhfUkFNX1NJWkU7Ci0JcmV0dXJuIENGR19NQVhfUkFNX1NJWkU7CisJZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwlnZC0+YmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX01BWF9SQU1fU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19NQVhfUkFNX1NJWkU7CiB9CiAKICNpZiBkZWZpbmVkKENPTkZJR19NSVNDX0lOSVRfUikKQEAgLTYzLDEwICs2MywxMCBAQAogaW50IG1pc2NfaW5pdF9yKHZvaWQpCiB7CiAJLyogU2V0IGRpcmVjdGlvbiBiaXRzIGZvciBWaWRlbyBlbi9kZWNvZGVyIHJlc2V0IGFzIG91dHB1dCAgICAgICovCi0JKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENGR19GTEFTSDFfQkFTRSArIFBTRF9QT1JUQV9ESVIpID0KKwkqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoQ09ORklHX1NZU19GTEFTSDFfQkFTRSArIFBTRF9QT1JUQV9ESVIpID0KIAkgICAgUFNEQV9WREVDX1JTVCB8IFBTREFfVkVOQ19SU1Q7CiAJLyogRGVhY3RpdmF0ZSBWaWRlbyBlbi9kZWNvZGVyIHJlc2V0IGxpbmVzICAgICAgICAgICAgICAgICAgICAgICovCi0JKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENGR19GTEFTSDFfQkFTRSArIFBTRF9QT1JUQV9ET1VUKSA9CisJKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfRkxBU0gxX0JBU0UgKyBQU0RfUE9SVEFfRE9VVCkgPQogCSAgICBQU0RBX1ZERUNfUlNUIHwgUFNEQV9WRU5DX1JTVDsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1MzMtZXpraXQvZmxhc2gtZGVmaW5lcy5oIGIvYm9hcmQvYmY1MzMtZXpraXQvZmxhc2gtZGVmaW5lcy5oCmluZGV4IDRlMDQzZTAuLjFhNGFhNWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTMzLWV6a2l0L2ZsYXNoLWRlZmluZXMuaAorKysgYi9ib2FyZC9iZjUzMy1lemtpdC9mbGFzaC1kZWZpbmVzLmgKQEAgLTQ5LDEwICs0OSwxMCBAQAogI2RlZmluZSBGTEFTSF9UT1RfU0VDVAkJNDAKICNkZWZpbmUgRkxBU0hfU0laRQkJMHgyMjAwMDAKICNkZWZpbmUgRkxBU0hfTUFOX1NUCQkyCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCQkweDIwMDAwMDAwCiAjZGVmaW5lIFJFU0VUX1ZBTAkJMHhGMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogaW50IGdldF9jb2Rlcyh2b2lkKTsKIGludCBwb2xsX3RvZ2dsZV9iaXQobG9uZyBsT2Zmc2V0KTsKZGlmZiAtLWdpdCBhL2JvYXJkL2JmNTMzLWV6a2l0L2ZsYXNoLmMgYi9ib2FyZC9iZjUzMy1lemtpdC9mbGFzaC5jCmluZGV4IGNkZjRkYzYuLmE4NjFlMTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTMzLWV6a2l0L2ZsYXNoLmMKKysrIGIvYm9hcmQvYmY1MzMtZXpraXQvZmxhc2guYwpAQCAtODIsNyArODIsNyBAQAogCiAJc2l6ZV9iMCA9IHNpemVfYjEgPSBzaXplX2IyID0gMDsKICNpZmRlZiBERUJVRwotCXByaW50ZigiRmxhc2ggTWVtb3J5IFN0YXJ0IDB4JXhcbiIsIENGR19GTEFTSF9CQVNFKTsKKwlwcmludGYoIkZsYXNoIE1lbW9yeSBTdGFydCAweCV4XG4iLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCXByaW50ZigiTWVtb3J5IE1hcCBmb3IgdGhlIEZsYXNoXG4iKTsKIAlwcmludGYoIjB4MjAwMDAwMDAgLSAweDIwMEZGRkZGIEZsYXNoIEEgUHJpbWFyeSAoMU1CKVxuIik7CiAJcHJpbnRmKCIweDIwMTAwMDAwIC0gMHgyMDFGRkZGRiBGbGFzaCBCIFByaW1hcnkgKDFNQilcbiIpOwpAQCAtOTAsMjAgKzkwLDIwIEBACiAJcHJpbnRmKCIweDIwMjgwMDAwIC0gMHgyMDI4RkZGRiBGbGFzaCBCIFNlY29uZGFyeSAoNjRLQilcbiIpOwogCXByaW50ZigiUGxlYXNlIHR5cGUgY29tbWFuZCBmbGluZm8gZm9yIGluZm9ybWF0aW9uIG9uIFNlY3RvcnMgXG4iKTsKICNlbmRpZgotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoQ0ZHX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSwgMCk7Ci0Jc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMV0sIDEpOwotCXNpemVfYjIgPSBmbGFzaF9nZXRfc2l6ZShDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzJdLCAyKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoQ09ORklHX1NZU19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0sIDApOworCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZShDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1sxXSwgMSk7CisJc2l6ZV9iMiA9IGZsYXNoX2dldF9zaXplKENPTkZJR19TWVNfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzJdLCAyKTsKIAogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04gfHwgc2l6ZV9iMCA9PSAwKSB7CiAJCXByaW50ZigiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJICAgICAgIHNpemVfYjAsIHNpemVfYjAgPj4gMjApOwogCX0KIAotCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ0ZHX0ZMQVNIMF9CQVNFLAorCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19GTEFTSDBfQkFTRSwKIAkJCSAgICAoZmxhc2hfaW5mb1swXS5zdGFydFsyXSAtIDEpLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlyZXR1cm4gKHNpemVfYjAgKyBzaXplX2IxICsgc2l6ZV9iMik7CkBAIC0xODAsNyArMTgwLDcgQEAKIAlpbnQgcmV0OwogCWludCBkOwogCWlmIChhZGRyICUgMikgewotCQlyZWFkX2ZsYXNoKGFkZHIgLSAxIC0gQ0ZHX0ZMQVNIX0JBU0UsICZkKTsKKwkJcmVhZF9mbGFzaChhZGRyIC0gMSAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmQpOwogCQlkID0gKGludCkoKGQgJiAweDAwRkYpIHwgKCpzcmMrKyA8PCA4KSk7CiAJCXJldCA9IHdyaXRlX2RhdGEoYWRkciAtIDEsIDIsICh1Y2hhciAqKSAmIGQpOwogCQlpZiAocmV0ID09IEZMQVNIX0ZBSUwpCkBAIC0xOTYsNyArMTk2LDcgQEAKIGludCB3cml0ZV9kYXRhKGxvbmcgbFN0YXJ0LCBsb25nIGxDb3VudCwgdWNoYXIgKiBwbkRhdGEpCiB7CiAJbG9uZyBpID0gMDsKLQl1bnNpZ25lZCBsb25nIHVsT2Zmc2V0ID0gbFN0YXJ0IC0gQ0ZHX0ZMQVNIX0JBU0U7CisJdW5zaWduZWQgbG9uZyB1bE9mZnNldCA9IGxTdGFydCAtIENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlpbnQgZDsKIAlpbnQgblNlY3RvciA9IDA7CiAJaW50IGZsYWcgPSAwOwpAQCAtMjg1LDcgKzI4NSw3IEBACiB7CiAJbG9uZyBhZGRyOwogCi0JYWRkciA9IChDRkdfRkxBU0hfQkFTRSArIG5PZmZzZXQpOworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbk9mZnNldCk7CiAJU1NZTkMoKTsKIAkqKHVuc2lnbmVkIHZvbGF0aWxlIHNob3J0ICopYWRkciA9IG5WYWx1ZTsKIAlTU1lOQygpOwpAQCAtMjk3LDcgKzI5Nyw3IEBACiBpbnQgcmVhZF9mbGFzaChsb25nIG5PZmZzZXQsIGludCAqcG5WYWx1ZSkKIHsKIAlpbnQgblZhbHVlID0gMHgwOwotCWxvbmcgYWRkciA9IChDRkdfRkxBU0hfQkFTRSArIG5PZmZzZXQpOworCWxvbmcgYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBuT2Zmc2V0KTsKIAogCWlmIChuT2Zmc2V0ICE9IDB4MikKIAkJcmVzZXRfZmxhc2goKTsKQEAgLTM5Niw3ICszOTYsNyBAQAogCWlmICgobkJsb2NrIDwgMCkgfHwgKG5CbG9jayA+IEFGUF9OdW1TZWN0b3JzKSkKIAkJcmV0dXJuIEZBTFNFOwogCi0JdWxTZWN0b3JPZmYgPSAoYWRkcmVzcyAtIENGR19GTEFTSF9CQVNFKTsKKwl1bFNlY3Rvck9mZiA9IChhZGRyZXNzIC0gQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAogCXdyaXRlX2ZsYXNoKChXUklURVNFUTEgfCB1bFNlY3Rvck9mZiksIFdSSVRFREFUQTEpOwogCXdyaXRlX2ZsYXNoKChXUklURVNFUTIgfCB1bFNlY3Rvck9mZiksIFdSSVRFREFUQTIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1MzMtZXpraXQvcHNkNDI1Ni5oIGIvYm9hcmQvYmY1MzMtZXpraXQvcHNkNDI1Ni5oCmluZGV4IGNjNjU0YjguLjliMzgxZDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTMzLWV6a2l0L3BzZDQyNTYuaAorKysgYi9ib2FyZC9iZjUzMy1lemtpdC9wc2Q0MjU2LmgKQEAgLTI3LDggKzI3LDggQEAKIAogLyoKICAqIEZsYXNoIEEvQiBQb3J0IEEgY29uZmlndXJhdGlvbiByZWdpc3RlcnMuCi0gKiBBZGRyZXNzZXMgYXJlIG9mZnNldCB2YWx1ZXMgdG8gQ0ZHX0ZMQVNIMV9CQVNFCi0gKiBmb3IgRmxhc2ggQSBhbmQgQ0ZHX0ZMQVNIMl9CQVNFIGZvciBGbGFzaCBCLgorICogQWRkcmVzc2VzIGFyZSBvZmZzZXQgdmFsdWVzIHRvIENPTkZJR19TWVNfRkxBU0gxX0JBU0UKKyAqIGZvciBGbGFzaCBBIGFuZCBDT05GSUdfU1lTX0ZMQVNIMl9CQVNFIGZvciBGbGFzaCBCLgogICovCiAKICNkZWZpbmUJUFNEX1BPUlRBX0RJTgkweDA3MDAwMApAQCAtMzcsOCArMzcsOCBAQAogCiAvKgogICogRmxhc2ggQS9CIFBvcnQgQiBjb25maWd1cmF0aW9uIHJlZ2lzdGVycwotICogQWRkcmVzc2VzIGFyZSBvZmZzZXQgdmFsdWVzIHRvIENGR19GTEFTSDFfQkFTRQotICogZm9yIEZsYXNoIEEgYW5kIENGR19GTEFTSDJfQkFTRSBmb3IgRmxhc2ggQi4KKyAqIEFkZHJlc3NlcyBhcmUgb2Zmc2V0IHZhbHVlcyB0byBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCisgKiBmb3IgRmxhc2ggQSBhbmQgQ09ORklHX1NZU19GTEFTSDJfQkFTRSBmb3IgRmxhc2ggQi4KICAqLwogCiAjZGVmaW5lCVBTRF9QT1JUQl9ESU4JMHgwNzAwMDEKZGlmZiAtLWdpdCBhL2JvYXJkL2JmNTMzLWV6a2l0L3UtYm9vdC5sZHMuUyBiL2JvYXJkL2JmNTMzLWV6a2l0L3UtYm9vdC5sZHMuUwppbmRleCAxZmVkYmM1Li41MzhhMTlmIDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzMy1lemtpdC91LWJvb3QubGRzLlMKKysrIGIvYm9hcmQvYmY1MzMtZXpraXQvdS1ib290Lmxkcy5TCkBAIC0zNiw3ICszNiw3IEBACiAgKiBmb3IgZGlmZmVyZW50IENQVSdzIHdoaWNoIG1heSBsYWNrIG5vbi1jYWNoZSBMMSBkYXRhLgogICovCiAjaWZuZGVmIEwxX0RBVEFfQl9TUkFNCi0jIGRlZmluZSBMMV9EQVRBX0JfU1JBTSAgICAgIENGR19NT05JVE9SX0JBU0UKKyMgZGVmaW5lIEwxX0RBVEFfQl9TUkFNICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UKICMgZGVmaW5lIEwxX0RBVEFfQl9TUkFNX1NJWkUgMAogI2VuZGlmCiAKQEAgLTQ1LDcgKzQ1LDcgQEAKIC8qIFRoZSAweEMgb2Zmc2V0IGlzIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhlIHRpbnkgTERSIGp1bXAgYmxvY2suICovCiBNRU1PUlkKIHsKLQlyYW0gICAgIDogT1JJR0lOID0gQ0ZHX01PTklUT1JfQkFTRSwgTEVOR1RIID0gQ0ZHX01PTklUT1JfTEVOCisJcmFtICAgICA6IE9SSUdJTiA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBMRU5HVEggPSBDT05GSUdfU1lTX01PTklUT1JfTEVOCiAJbDFfY29kZSA6IE9SSUdJTiA9IEwxX0lOU1RfU1JBTSsweEMsIExFTkdUSCA9IEwxX0lOU1RfU1JBTV9TSVpFCiAJbDFfZGF0YSA6IE9SSUdJTiA9IEwxX0RBVEFfQl9TUkFNLCAgIExFTkdUSCA9IEwxX0RBVEFfQl9TUkFNX1NJWkUKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2JmNTMzLXN0YW1wL2JmNTMzLXN0YW1wLmMgYi9ib2FyZC9iZjUzMy1zdGFtcC9iZjUzMy1zdGFtcC5jCmluZGV4IDdhMTdkZmEuLmExMTNjNDAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2JmNTMzLXN0YW1wL2JmNTMzLXN0YW1wLmMKKysrIGIvYm9hcmQvYmY1MzMtc3RhbXAvYmY1MzMtc3RhbXAuYwpAQCAtNTYsMTEgKzU2LDExIEBACiAJICAgICgiICB0UkNEOiVkIEN5Y2xlczsgdFJQOiVkIEN5Y2xlczsgdFJBUzolZCBDeWNsZXM7IHRXUjolZCBDeWNsZXM7ICIKIAkgICAgICJDQVMgTGF0ZW5jeTolZCBjeWNsZXNcbiIsIChTRFJBTV90UkNEID4+IDE1KSwgKFNEUkFNX3RSUCA+PiAxMSksCiAJICAgICAoU0RSQU1fdFJBUyA+PiA2KSwgKFNEUkFNX3RXUiA+PiAxOSksIChTRFJBTV9DTCA+PiAyKSk7Ci0JcHJpbnRmKCJTRFJBTSBCZWdpbjogMHgleFxuIiwgQ0ZHX1NEUkFNX0JBU0UpOworCXByaW50ZigiU0RSQU0gQmVnaW46IDB4JXhcbiIsIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJcHJpbnRmKCJCYW5rIHNpemUgPSAlZCBNQlxuIiwgMTI4KTsKICNlbmRpZgotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfTUFYX1JBTV9TSVpFOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19NQVhfUkFNX1NJWkU7CiAJcmV0dXJuIChnZC0+YmQtPmJpX21lbXNpemUpOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzMy1zdGFtcC91LWJvb3QubGRzLlMgYi9ib2FyZC9iZjUzMy1zdGFtcC91LWJvb3QubGRzLlMKaW5kZXggNGU3ZmQ3Yy4uOTdlYmQ3OSAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1MzMtc3RhbXAvdS1ib290Lmxkcy5TCisrKyBiL2JvYXJkL2JmNTMzLXN0YW1wL3UtYm9vdC5sZHMuUwpAQCAtMzYsNyArMzYsNyBAQAogICogZm9yIGRpZmZlcmVudCBDUFUncyB3aGljaCBtYXkgbGFjayBub24tY2FjaGUgTDEgZGF0YS4KICAqLwogI2lmbmRlZiBMMV9EQVRBX0JfU1JBTQotIyBkZWZpbmUgTDFfREFUQV9CX1NSQU0gICAgICBDRkdfTU9OSVRPUl9CQVNFCisjIGRlZmluZSBMMV9EQVRBX0JfU1JBTSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAjIGRlZmluZSBMMV9EQVRBX0JfU1JBTV9TSVpFIDAKICNlbmRpZgogCkBAIC00NSw3ICs0NSw3IEBACiAvKiBUaGUgMHhDIG9mZnNldCBpcyBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSB0aW55IExEUiBqdW1wIGJsb2NrLiAqLwogTUVNT1JZCiB7Ci0JcmFtICAgICA6IE9SSUdJTiA9IENGR19NT05JVE9SX0JBU0UsIExFTkdUSCA9IENGR19NT05JVE9SX0xFTgorCXJhbSAgICAgOiBPUklHSU4gPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgTEVOR1RIID0gQ09ORklHX1NZU19NT05JVE9SX0xFTgogCWwxX2NvZGUgOiBPUklHSU4gPSBMMV9JTlNUX1NSQU0rMHhDLCBMRU5HVEggPSBMMV9JTlNUX1NSQU1fU0laRQogCWwxX2RhdGEgOiBPUklHSU4gPSBMMV9EQVRBX0JfU1JBTSwgICBMRU5HVEggPSBMMV9EQVRBX0JfU1JBTV9TSVpFCiB9CmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzNy1zdGFtcC9iZjUzNy1zdGFtcC5jIGIvYm9hcmQvYmY1Mzctc3RhbXAvYmY1Mzctc3RhbXAuYwppbmRleCA0NTY3MjEzLi43MzAzZjFiIDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzNy1zdGFtcC9iZjUzNy1zdGFtcC5jCisrKyBiL2JvYXJkL2JmNTM3LXN0YW1wL2JmNTM3LXN0YW1wLmMKQEAgLTEwOSwxMiArMTA5LDEyIEBACiAJcHJpbnRmKCJ0UkNEICVkIFNDTEsgQ3ljbGVzLHRSUCAlZCBTQ0xLIEN5Y2xlcyx0UkFTICVkIFNDTEsgQ3ljbGVzIgogCSAgICAgICAidFdSICVkIFNDTEsgQ3ljbGVzLENBUyBMYXRlbmN5ICVkIFNDTEsgY3ljbGVzIFxuIiwKIAkgICAgICAgMywgMywgNiwgMiwgMyk7Ci0JcHJpbnRmKCJTRFJBTSBCZWdpbjogMHgleFxuIiwgQ0ZHX1NEUkFNX0JBU0UpOwotCXByaW50ZigiQmFuayBzaXplID0gJWQgTUJcbiIsIENGR19NQVhfUkFNX1NJWkUgPj4gMjApOworCXByaW50ZigiU0RSQU0gQmVnaW46IDB4JXhcbiIsIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJcHJpbnRmKCJCYW5rIHNpemUgPSAlZCBNQlxuIiwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgPj4gMjApOwogI2VuZGlmCi0JZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENGR19NQVhfUkFNX1NJWkU7Ci0JcmV0dXJuIENGR19NQVhfUkFNX1NJWkU7CisJZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwlnZC0+YmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX01BWF9SQU1fU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19NQVhfUkFNX1NJWkU7CiB9CiAKICNpZiBkZWZpbmVkKENPTkZJR19NSVNDX0lOSVRfUikKQEAgLTIzNiwxMSArMjM2LDExIEBACiAJCWVyYXNlX2Jsb2NrX2ZsYXNoKG4pOwogCQlwcmludGYoIk9LXHIiKTsKIAkJcHJpbnRmKCItLS0tLS0tLVByb2dyYW0gYmxvY2s6JTJkLi4uIiwgbik7Ci0JCXdyaXRlX2RhdGEoQ0ZHX0ZMQVNIX0JBU0UgKyBvZmZzZXQsIEJMT0NLX1NJWkUsIHBidWYpOworCQl3cml0ZV9kYXRhKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG9mZnNldCwgQkxPQ0tfU0laRSwgcGJ1Zik7CiAJCXByaW50ZigiT0tcciIpOwogCQlwcmludGYoIi0tLS0tLS0tVmVyaWZ5ICBibG9jazolMmQuLi4iLCBuKTsKIAkJZm9yIChpID0gMDsgaSA8IEJMT0NLX1NJWkU7IGkgKz0gMikgewotCQkJaWYgKCoodW5zaWduZWQgc2hvcnQgKikoQ0ZHX0ZMQVNIX0JBU0UgKyBvZmZzZXQgKyBpKSAhPQorCQkJaWYgKCoodW5zaWduZWQgc2hvcnQgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgb2Zmc2V0ICsgaSkgIT0KIAkJCSAgICAqdGVtcCsrKSB7CiAJCQkJdmFsdWUgPSAxOwogCQkJCXJlc3VsdCA9IDE7CmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzNy1zdGFtcC9uYW5kLmMgYi9ib2FyZC9iZjUzNy1zdGFtcC9uYW5kLmMKaW5kZXggOTgwMDA4My4uYzU5N2YyZCAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1Mzctc3RhbXAvbmFuZC5jCisrKyBiL2JvYXJkL2JmNTM3LXN0YW1wL25hbmQuYwpAQCAtNDQsMTMgKzQ0LDEzIEBACiAKIAlpZiAoY3RybCAmIE5BTkRfQ1RSTF9DSEFOR0UpIHsKIAkJaWYoIGN0cmwgJiBOQU5EX0NMRSApCi0JCQlJT19BRERSX1cgPSBDRkdfTkFORF9CQVNFICsgQkZJTl9OQU5EX0NMRTsKKwkJCUlPX0FERFJfVyA9IENPTkZJR19TWVNfTkFORF9CQVNFICsgQkZJTl9OQU5EX0NMRTsKIAkJZWxzZQotCQkJSU9fQUREUl9XID0gQ0ZHX05BTkRfQkFTRTsKKwkJCUlPX0FERFJfVyA9IENPTkZJR19TWVNfTkFORF9CQVNFOwogCQlpZiggY3RybCAmIE5BTkRfQUxFICkKLQkJCUlPX0FERFJfVyA9IENGR19OQU5EX0JBU0UgKyBCRklOX05BTkRfQUxFOworCQkJSU9fQUREUl9XID0gQ09ORklHX1NZU19OQU5EX0JBU0UgKyBCRklOX05BTkRfQUxFOwogCQllbHNlCi0JCQlJT19BRERSX1cgPSBDRkdfTkFORF9CQVNFOworCQkJSU9fQUREUl9XID0gQ09ORklHX1NZU19OQU5EX0JBU0U7CiAJCXRoaXMtPklPX0FERFJfVyA9ICh2b2lkIF9faW9tZW0gKikgSU9fQUREUl9XOwogCX0KIAl0aGlzLT5JT19BRERSX1IgPSB0aGlzLT5JT19BRERSX1c7CmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzNy1zdGFtcC9wb3N0LW1lbW9yeS5jIGIvYm9hcmQvYmY1Mzctc3RhbXAvcG9zdC1tZW1vcnkuYwppbmRleCBmYTExOTkxLi43YzM2YzgxIDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzNy1zdGFtcC9wb3N0LW1lbW9yeS5jCisrKyBiL2JvYXJkL2JmNTM3LXN0YW1wL3Bvc3QtbWVtb3J5LmMKQEAgLTYsNyArNiw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX01FTU9SWQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX01FTU9SWQogI2RlZmluZSBDTEtJTiAyNTAwMDAwMAogI2RlZmluZSBQQVRURVJOMSAweDVBNUE1QTVBCiAjZGVmaW5lIFBBVFRFUk4yIDB4QUFBQUFBQUEKQEAgLTcxLDEwICs3MSwxMCBAQAogCQkJcG9zdF9pbml0X3VhcnQoc2Nsayk7CiAJCQlwb3N0X291dF9idWZmKCJcblxyXDAiKTsKIAkJCXBvc3Rfb3V0X2J1ZmYobG9nW21dW25dKTsKLQkJCWZvciAoYWRkciA9IDB4MDsgYWRkciA8IENGR19NQVhfUkFNX1NJWkU7IGFkZHIgKz0gNCkKKwkJCWZvciAoYWRkciA9IDB4MDsgYWRkciA8IENPTkZJR19TWVNfTUFYX1JBTV9TSVpFOyBhZGRyICs9IDQpCiAJCQkJKih1bnNpZ25lZCBsb25nICopYWRkciA9IFBBVFRFUk4xOwogCQkJcG9zdF9vdXRfYnVmZigiUmVhZGluZy4uLlwwIik7Ci0JCQlmb3IgKGFkZHIgPSAweDA7IGFkZHIgPCBDRkdfTUFYX1JBTV9TSVpFOyBhZGRyICs9IDQpIHsKKwkJCWZvciAoYWRkciA9IDB4MDsgYWRkciA8IENPTkZJR19TWVNfTUFYX1JBTV9TSVpFOyBhZGRyICs9IDQpIHsKIAkJCQlpZiAoKCoodW5zaWduZWQgbG9uZyAqKWFkZHIpICE9IFBBVFRFUk4xKSB7CiAJCQkJCXBvc3Rfb3V0X2J1ZmYoIkVycm9yXG5cclwwIik7CiAJCQkJCXJldCA9IDA7CkBAIC0zMTgsNSArMzE4LDUgQEAKIAlyZXR1cm4gbWVtX1NEUlJDOwogfQogCi0jZW5kaWYJCQkJLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9NRU1PUlkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9NRU1PUlkgKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfUE9TVCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvYmY1Mzctc3RhbXAvc3BpX2ZsYXNoLmMgYi9ib2FyZC9iZjUzNy1zdGFtcC9zcGlfZmxhc2guYwppbmRleCA3YzczZGRkLi4xMWEyODAzIDEwMDY0NAotLS0gYS9ib2FyZC9iZjUzNy1zdGFtcC9zcGlfZmxhc2guYworKysgYi9ib2FyZC9iZjUzNy1zdGFtcC9zcGlfZmxhc2guYwpAQCAtNDEyLDcgKzQxMiw3IEBACiAgKi8KIHZvaWQgc3BpX2luaXRfcih2b2lkKQogewotI2lmIGRlZmluZWQoQ09ORklHX1BPU1QpICYmIChDT05GSUdfUE9TVCAmIENGR19QT1NUX1NQSSkKKyNpZiBkZWZpbmVkKENPTkZJR19QT1NUKSAmJiAoQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BJKQogCS8qIE91ciB0ZXN0aW5nIHN0cmF0ZWd5IGhlcmUgaXMgcHJldHR5IGJhc2ljOgogCSAqICAtIGZpbGwgc3JjIG1lbW9yeSB3aXRoIGFuIDgtYml0IHBhdHRlcm4KIAkgKiAgLSB3cml0ZSB0aGUgc3JjIG1lbW9yeSB0byB0aGUgU1BJIGZsYXNoCmRpZmYgLS1naXQgYS9ib2FyZC9iZjUzNy1zdGFtcC91LWJvb3QubGRzLlMgYi9ib2FyZC9iZjUzNy1zdGFtcC91LWJvb3QubGRzLlMKaW5kZXggNGU3ZmQ3Yy4uOTdlYmQ3OSAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1Mzctc3RhbXAvdS1ib290Lmxkcy5TCisrKyBiL2JvYXJkL2JmNTM3LXN0YW1wL3UtYm9vdC5sZHMuUwpAQCAtMzYsNyArMzYsNyBAQAogICogZm9yIGRpZmZlcmVudCBDUFUncyB3aGljaCBtYXkgbGFjayBub24tY2FjaGUgTDEgZGF0YS4KICAqLwogI2lmbmRlZiBMMV9EQVRBX0JfU1JBTQotIyBkZWZpbmUgTDFfREFUQV9CX1NSQU0gICAgICBDRkdfTU9OSVRPUl9CQVNFCisjIGRlZmluZSBMMV9EQVRBX0JfU1JBTSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAjIGRlZmluZSBMMV9EQVRBX0JfU1JBTV9TSVpFIDAKICNlbmRpZgogCkBAIC00NSw3ICs0NSw3IEBACiAvKiBUaGUgMHhDIG9mZnNldCBpcyBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSB0aW55IExEUiBqdW1wIGJsb2NrLiAqLwogTUVNT1JZCiB7Ci0JcmFtICAgICA6IE9SSUdJTiA9IENGR19NT05JVE9SX0JBU0UsIExFTkdUSCA9IENGR19NT05JVE9SX0xFTgorCXJhbSAgICAgOiBPUklHSU4gPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgTEVOR1RIID0gQ09ORklHX1NZU19NT05JVE9SX0xFTgogCWwxX2NvZGUgOiBPUklHSU4gPSBMMV9JTlNUX1NSQU0rMHhDLCBMRU5HVEggPSBMMV9JTlNUX1NSQU1fU0laRQogCWwxX2RhdGEgOiBPUklHSU4gPSBMMV9EQVRBX0JfU1JBTSwgICBMRU5HVEggPSBMMV9EQVRBX0JfU1JBTV9TSVpFCiB9CmRpZmYgLS1naXQgYS9ib2FyZC9iZjU2MS1lemtpdC9iZjU2MS1lemtpdC5jIGIvYm9hcmQvYmY1NjEtZXpraXQvYmY1NjEtZXpraXQuYwppbmRleCA3MzQ1YjQyLi5hNzRmZjBkIDEwMDY0NAotLS0gYS9ib2FyZC9iZjU2MS1lemtpdC9iZjU2MS1lemtpdC5jCisrKyBiL2JvYXJkL2JmNTYxLWV6a2l0L2JmNTYxLWV6a2l0LmMKQEAgLTUwLDEyICs1MCwxMiBAQAogCXByaW50ZigidFJDRCAlZCBTQ0xLIEN5Y2xlcyx0UlAgJWQgU0NMSyBDeWNsZXMsdFJBUyAlZCBTQ0xLIEN5Y2xlcyIKIAkgICAgICAgInRXUiAlZCBTQ0xLIEN5Y2xlcyxDQVMgTGF0ZW5jeSAlZCBTQ0xLIGN5Y2xlcyBcbiIsCiAJICAgICAgIDMsIDMsIDYsIDIsIDMpOwotCXByaW50ZigiU0RSQU0gQmVnaW46IDB4JXhcbiIsIENGR19TRFJBTV9CQVNFKTsKLQlwcmludGYoIkJhbmsgc2l6ZSA9ICVkIE1CXG4iLCBDRkdfTUFYX1JBTV9TSVpFID4+IDIwKTsKKwlwcmludGYoIlNEUkFNIEJlZ2luOiAweCV4XG4iLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOworCXByaW50ZigiQmFuayBzaXplID0gJWQgTUJcbiIsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFID4+IDIwKTsKICNlbmRpZgotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfTUFYX1JBTV9TSVpFOwotCXJldHVybiBDRkdfTUFYX1JBTV9TSVpFOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19NQVhfUkFNX1NJWkU7CisJcmV0dXJuIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFOwogfQogCiAjaWYgZGVmaW5lZChDT05GSUdfTUlTQ19JTklUX1IpCmRpZmYgLS1naXQgYS9ib2FyZC9iZjU2MS1lemtpdC91LWJvb3QubGRzLlMgYi9ib2FyZC9iZjU2MS1lemtpdC91LWJvb3QubGRzLlMKaW5kZXggYWI1ZWYwOC4uM2RlZmVmNCAxMDA2NDQKLS0tIGEvYm9hcmQvYmY1NjEtZXpraXQvdS1ib290Lmxkcy5TCisrKyBiL2JvYXJkL2JmNTYxLWV6a2l0L3UtYm9vdC5sZHMuUwpAQCAtMzYsNyArMzYsNyBAQAogICogZm9yIGRpZmZlcmVudCBDUFUncyB3aGljaCBtYXkgbGFjayBub24tY2FjaGUgTDEgZGF0YS4KICAqLwogI2lmbmRlZiBMMV9EQVRBX0JfU1JBTQotIyBkZWZpbmUgTDFfREFUQV9CX1NSQU0gICAgICBDRkdfTU9OSVRPUl9CQVNFCisjIGRlZmluZSBMMV9EQVRBX0JfU1JBTSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAjIGRlZmluZSBMMV9EQVRBX0JfU1JBTV9TSVpFIDAKICNlbmRpZgogCkBAIC00NSw3ICs0NSw3IEBACiAvKiBUaGUgMHhDIG9mZnNldCBpcyBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSB0aW55IExEUiBqdW1wIGJsb2NrLiAqLwogTUVNT1JZCiB7Ci0JcmFtICAgICA6IE9SSUdJTiA9IENGR19NT05JVE9SX0JBU0UsIExFTkdUSCA9IENGR19NT05JVE9SX0xFTgorCXJhbSAgICAgOiBPUklHSU4gPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgTEVOR1RIID0gQ09ORklHX1NZU19NT05JVE9SX0xFTgogCWwxX2NvZGUgOiBPUklHSU4gPSBMMV9JTlNUX1NSQU0rMHhDLCBMRU5HVEggPSBMMV9JTlNUX1NSQU1fU0laRQogCWwxX2RhdGEgOiBPUklHSU4gPSBMMV9EQVRBX0JfU1JBTSwgICBMRU5HVEggPSBMMV9EQVRBX0JfU1JBTV9TSVpFCiB9CmRpZmYgLS1naXQgYS9ib2FyZC9ibXcvUkVBRE1FIGIvYm9hcmQvYm13L1JFQURNRQppbmRleCAxZjA0YjFiLi4xZmJlZjc5IDEwMDY0NAotLS0gYS9ib2FyZC9ibXcvUkVBRE1FCisrKyBiL2JvYXJkL2Jtdy9SRUFETUUKQEAgLTYyLDI2ICs2MiwyNiBAQAogVGhlIGZvbGxvd2luZyBCbG9jay1BZGRyZXNzLVRyYW5zbGF0aW9uIChCQVQpIGNvbmZpZ3VyYXRpb24KIGlzIHJlY29tbWVuZGVkIHRvIGFjY2VzcyBhbGwgSS9PIGRldmljZXMuCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKDB4MDAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgICgweDAwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMICAoMHgwMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgICgweDAwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKDB4NzAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMVUgICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoMHg3MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogCiBJbnRlcnJ1cHQgTWFwcGluZ3MKZGlmZiAtLWdpdCBhL2JvYXJkL2Jtdy9lYXJseV9pbml0LlMgYi9ib2FyZC9ibXcvZWFybHlfaW5pdC5TCmluZGV4IDU3YTA2YTkuLjYzYzI5ZDUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Jtdy9lYXJseV9pbml0LlMKKysrIGIvYm9hcmQvYm13L2Vhcmx5X2luaXQuUwpAQCAtODYsMTAgKzg2LDEwIEBACiAvKgogICogIFNldCB1cCBJL0QgQkFUMAogICovCi0JbGlzICAgICByNCwgQ0ZHX0RCQVQwTEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUMExAbAotCWxpcyAgICAgcjMsIENGR19EQkFUMFVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfREJBVDBVQGwKKwlsaXMgICAgIHI0LCBDT05GSUdfU1lTX0RCQVQwTEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfREJBVDBMQGwKKwlsaXMgICAgIHIzLCBDT05GSUdfU1lTX0RCQVQwVUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDBVQGwKIAogCW10ZGJhdDBsKHI0KQogCWlzeW5jCkBAIC05NywxMCArOTcsMTAgQEAKIAlpc3luYwogCXN5bmMKIAotCWxpcyAgICAgcjQsIENGR19JQkFUMExAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDBMQGwKLQlsaXMgICAgIHIzLCBDRkdfSUJBVDBVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0lCQVQwVUBsCisJbGlzICAgICByNCwgQ09ORklHX1NZU19JQkFUMExAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQwTEBsCisJbGlzICAgICByMywgQ09ORklHX1NZU19JQkFUMFVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQwVUBsCiAKIAlpc3luYwogCW10aWJhdDBsKHI0KQpAQCAtMTExLDEwICsxMTEsMTAgQEAKIC8qCiAgKiAgU2V0IHVwIEkvRCBCQVQxCiAgKi8KLQlsaXMgICAgIHI0LCBDRkdfSUJBVDFMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0lCQVQxTEBsCi0JbGlzICAgICByMywgQ0ZHX0lCQVQxVUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUMVVAbAorCWxpcyAgICAgcjQsIENPTkZJR19TWVNfSUJBVDFMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19JQkFUMUxAbAorCWxpcyAgICAgcjMsIENPTkZJR19TWVNfSUJBVDFVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JQkFUMVVAbAogCiAJaXN5bmMKIAltdGliYXQxbChyNCkKQEAgLTEzMCwxMCArMTMwLDEwIEBACiAvKgogICogIFNldCB1cCBJL0QgQkFUMgogICovCi0JbGlzICAgICByNCwgQ0ZHX0lCQVQyTEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUMkxAbAotCWxpcyAgICAgcjMsIENGR19JQkFUMlVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDJVQGwKKwlsaXMgICAgIHI0LCBDT05GSUdfU1lTX0lCQVQyTEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDJMQGwKKwlsaXMgICAgIHIzLCBDT05GSUdfU1lTX0lCQVQyVUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDJVQGwKIAogCWlzeW5jCiAJbXRpYmF0MmwocjQpCkBAIC0xNDksMTAgKzE0OSwxMCBAQAogLyoKICAqICBTZXR1cCBJL0QgQkFUMwogICovCi0JbGlzICAgICByNCwgQ0ZHX0lCQVQzTEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUM0xAbAotCWxpcyAgICAgcjMsIENGR19JQkFUM1VAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDNVQGwKKwlsaXMgICAgIHI0LCBDT05GSUdfU1lTX0lCQVQzTEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDNMQGwKKwlsaXMgICAgIHIzLCBDT05GSUdfU1lTX0lCQVQzVUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDNVQGwKIAogCWlzeW5jCiAJbXRpYmF0M2wocjQpCkBAIC00NjYsNyArNDY2LDcgQEAKIAogCUxPQURQVFIgKHIzLCBFVU1CQkFSKQogCXN0d2JyeAlyMywwLHI1Ci0JTE9BRFBUUiAocjQsIENGR19FVU1CX0FERFIpCisJTE9BRFBUUiAocjQsIENPTkZJR19TWVNfRVVNQl9BRERSKQogCXN0d2JyeAlyNCwwLHI2CiAKIEwxbm90ODI0NToKZGlmZiAtLWdpdCBhL2JvYXJkL2Jtdy9mbGFzaC5jIGIvYm9hcmQvYm13L2ZsYXNoLmMKaW5kZXggMGQwYmMyZi4uNTdmZmUwOCAxMDA2NDQKLS0tIGEvYm9hcmQvYm13L2ZsYXNoLmMKKysrIGIvYm9hcmQvYm13L2ZsYXNoLmMKQEAgLTI5LDExICsyOSwxMSBAQAogI2RlZmluZSBST01fQ1MwX1NUQVJUCTB4RkY4MDAwMDAKICNkZWZpbmUgUk9NX0NTMV9TVEFSVAkweEZGMDAwMDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFICBDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtMTQxLDEwICsxNDEsMTAgQEAKIHsKIAl1bnNpZ25lZCBsb25nIGk7CiAJdW5zaWduZWQgY2hhciBqOwotCXN0YXRpYyBjb25zdCB1bG9uZyBmbGFzaF9iYW5rc1tdID0gQ0ZHX0ZMQVNIX0JBTktTOworCXN0YXRpYyBjb25zdCB1bG9uZyBmbGFzaF9iYW5rc1tdID0gQ09ORklHX1NZU19GTEFTSF9CQU5LUzsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJZmxhc2hfaW5mb190ICpjb25zdCBwZmxpbmZvID0gJmZsYXNoX2luZm9baV07CiAKIAkJcGZsaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwpAQCAtMjE3LDEwICsyMTcsMTAgQEAKIAkJfQogCQkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkJICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNjI3LDcgKzYyNyw3IEBACiAJCQkJCQkgICAgICAgc3RhcnRbMF0pIDw8IHNoOGIpKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCSAgICAgICAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTc2Niw3ICs3NjYsNyBAQAogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgoZGVzdDJbaSA8PCBzaDhiXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CiAJCSAgICAgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2Jtdy9uczE2NTUwLmMgYi9ib2FyZC9ibXcvbnMxNjU1MC5jCmluZGV4IDcwNjQ1NjcuLjcyNTA1OTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Jtdy9uczE2NTUwLmMKKysrIGIvYm9hcmQvYm13L25zMTY1NTAuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDT00xIE5TMTY1NTAgc3VwcG9ydAogICogb3JpZ2luYWxseSBmcm9tIGxpbnV4IHNvdXJjZSAoYXJjaC9wcGMvYm9vdC9uczE2NTUwLmMpCi0gKiBtb2RpZmllZCB0byB1c2UgQ0ZHX0lTQV9NRU0gYW5kIG5ldyBkZWZpbmVzCisgKiBtb2RpZmllZCB0byB1c2UgQ09ORklHX1NZU19JU0FfTUVNIGFuZCBuZXcgZGVmaW5lcwogICovCiAKICNpbmNsdWRlIDxjb25maWcuaD4KQEAgLTEwLDggKzEwLDggQEAKIHR5cGVkZWYgc3RydWN0IE5TMTY1NTAgKk5TMTY1NTBfdDsKIAogY29uc3QgTlMxNjU1MF90IENPTV9QT1JUU1tdID0KLQl7IChOUzE2NTUwX3QpICgoQ0ZHX0VVTUJfQUREUikgKyAweDQ1MDApLAotKE5TMTY1NTBfdCkgKChDRkdfRVVNQl9BRERSKSArIDB4NDYwMCkgfTsKKwl7IChOUzE2NTUwX3QpICgoQ09ORklHX1NZU19FVU1CX0FERFIpICsgMHg0NTAwKSwKKyhOUzE2NTUwX3QpICgoQ09ORklHX1NZU19FVU1CX0FERFIpICsgMHg0NjAwKSB9OwogCiB2b2xhdGlsZSBzdHJ1Y3QgTlMxNjU1MCAqTlMxNjU1MF9pbml0IChpbnQgY2hhbiwgaW50IGJhdWRfZGl2aXNvcikKIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2Jtdy9uczE2NTUwLmggYi9ib2FyZC9ibXcvbnMxNjU1MC5oCmluZGV4IDEwNGY0NWIuLjIxMGFlYTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Jtdy9uczE2NTUwLmgKKysrIGIvYm9hcmQvYm13L25zMTY1NTAuaApAQCAtMiw3ICsyLDcgQEAKICAqIE5TMTY1NTAgU2VyaWFsIFBvcnQKICAqIG9yaWdpbmFsbHkgZnJvbSBsaW51eCBzb3VyY2UgKGFyY2gvcHBjL2Jvb3QvbnMxNjU1MC5oKQogICogbW9kaWZpZWQgc2xpZ2h0bHkgdG8KLSAqIGhhdmUgYWRkcmVzc2VzIGFzIG9mZnNldHMgZnJvbSBDRkdfSVNBX0JBU0UKKyAqIGhhdmUgYWRkcmVzc2VzIGFzIG9mZnNldHMgZnJvbSBDT05GSUdfU1lTX0lTQV9CQVNFCiAgKiBhZGRlZCBhIGZldyBtb3JlIGRlZmluaXRpb25zCiAgKiBhZGRlZCBwcm90b3R5cGVzIGZvciBuczE2NTUwLmMKICAqIHJlZHVjZWQgbm8gb2YgY29tIHBvcnRzIHRvIDIKZGlmZiAtLWdpdCBhL2JvYXJkL2Jtdy9zZXJpYWwuYyBiL2JvYXJkL2Jtdy9zZXJpYWwuYwppbmRleCA3MTJhOTViLi4wYzk3ZjEyIDEwMDY0NAotLS0gYS9ib2FyZC9ibXcvc2VyaWFsLmMKKysrIGIvYm9hcmQvYm13L3NlcmlhbC5jCkBAIC0yOCwxMCArMjgsMTAgQEAKIAogI2lmIENPTkZJR19DT05TX0lOREVYID09IDEKIHN0YXRpYyBzdHJ1Y3QgTlMxNjU1MCAqY29uc29sZSA9Ci0JCShzdHJ1Y3QgTlMxNjU1MCAqKSAoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCk7CisJCShzdHJ1Y3QgTlMxNjU1MCAqKSAoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ1MDApOwogI2VsaWYgQ09ORklHX0NPTlNfSU5ERVggPT0gMgogc3RhdGljIHN0cnVjdCBOUzE2NTUwICpjb25zb2xlID0KLQkJKHN0cnVjdCBOUzE2NTUwICopIChDRkdfRVVNQl9BRERSICsgMHg0NTAwKTsKKwkJKHN0cnVjdCBOUzE2NTUwICopIChDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCk7CiAjZWxzZQogI2Vycm9yIG5vIHZhbGlkIGNvbnNvbGUgZGVmaW5lZAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9jMm1vbi9jMm1vbi5jIGIvYm9hcmQvYzJtb24vYzJtb24uYwppbmRleCA3ZDJmNzQ2Li43MTdhNjRiIDEwMDY0NAotLS0gYS9ib2FyZC9jMm1vbi9jMm1vbi5jCisrKyBiL2JvYXJkL2MybW9uL2MybW9uLmMKQEAgLTExMCw3ICsxMTAsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyByZWc7CiAJbG9uZyBpbnQgc2l6ZTgsIHNpemU5OwpAQCAtMTI0LDE3ICsxMjQsMTcgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfOEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfOEs7CiAKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDA4ODsKIAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgYmFuayAyIHRoZSBTRFJBTSBiYW5rIDIgYXQgcGh5c2ljYWwgYWRkcmVzcyAwLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xNTQsNyArMTU0LDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsCisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl84Q09MLAogCQkJICAgU0RSQU1fQkFTRTJfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCkBAIC0xNjMsNyArMTYzLDcgQEAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsCisJc2l6ZTkgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl85Q09MLAogCQkJICAgU0RSQU1fQkFTRTJfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCkBAIC0xNzIsNyArMTcyLDcgQEAKIC8qCQlkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA5IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0gZWxzZSB7CQkJLyogYmFjayB0byA4IGNvbHVtbnMgICAgICAgICAgICAqLwogCQlzaXplID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogLyoJCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDggY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAJfQpAQCAtMTg1LDE1ICsxODUsMTUgQEAKIAkgKi8KIAlpZiAoc2l6ZSA8IDB4MDIwMDAwMDApIHsKIAkJLyogcmVkdWNlIHRvIDE1LjYgdXMgKDYyLjQgdXMgLyBxdWFkKSAqLwotCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzRLOworCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS180SzsKIAkJdWRlbGF5ICgxMDAwKTsKIAl9CiAKIAkvKgogCSAqIEZpbmFsIG1hcHBpbmcKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjIgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJLyoKIAkgKiBObyBiYW5rIDEKQEAgLTIwNCw3ICsyMDQsNyBAQAogCiAJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JcmVnID4+PSAxOwkJCS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisJcmVnID4+PSAxOwkJCS8qIHJlZHVjZSB0byBDT05GSUdfU1lTX01QVFBSXzFCS184SyAvIF80SyAqLwogCW1lbWN0bC0+bWVtY19tcHRwciA9IHJlZzsKIAogCXVkZWxheSAoMTAwMDApOwpAQCAtMjI1LDcgKzIyNSw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCQkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfbWFtciA9IG1hbXJfdmFsdWU7CmRpZmYgLS1naXQgYS9ib2FyZC9jMm1vbi9mbGFzaC5jIGIvYm9hcmQvYzJtb24vZmxhc2guYwppbmRleCA3Y2M1ZWYwLi5kMzNjYjZjIDEwMDY0NAotLS0gYS9ib2FyZC9jMm1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL2MybW9uL2ZsYXNoLmMKQEAgLTI1LDEwICsyNSwxMCBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogCiAjaWZuZGVmCUNPTkZJR19FTlZfQUREUgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZW5kaWYKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNDIsMTMgKzQyLDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCwgc2l6ZV9iMTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtNzksMTkgKzc5LDE5IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTEwNCwyMSArMTA0LDIxIEBACiAjZW5kaWYKIAogCWlmIChzaXplX2IxKSB7Ci0JCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7Ci0JCW1lbWN0bC0+bWVtY19icjEgPSAoKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCkgJiBCUl9CQV9NU0spIHwKKwkJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7CisJCW1lbWN0bC0+bWVtY19icjEgPSAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CiAJCQkJICAgIEJSX01TX0dQQ00gfCBCUl9WOwogCiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCisJCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKIAkJCQkJICAmZmxhc2hfaW5mb1sxXSk7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkJICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAKQEAgLTQzNiw3ICs0MzYsNyBAQAogCWxhc3QgID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9sb25nKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNTU5LDcgKzU1OSw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4MDA4MDAwODApICE9IChkYXRhICYgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2MybW9uL3BjbWNpYS5jIGIvYm9hcmQvYzJtb24vcGNtY2lhLmMKaW5kZXggNTc4NDZiMS4uYzgzM2IyMCAxMDA2NDQKLS0tIGEvYm9hcmQvYzJtb24vcGNtY2lhLmMKKysrIGIvYm9hcmQvYzJtb24vcGNtY2lhLmMKQEAgLTIyLDggKzIyLDggQEAKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3A7CiAJdXNob3J0IHNyZWc7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qCiAJKiBDb25maWd1cmUgUG9ydCBDIGZvciBUUFMyMjExIFBDLUNhcmQgUG93ZXItSW50ZXJmYWNlIFN3aXRjaApAQCAtNjksMTAgKzY5LDEwIEBACiAKIAl1ZGVsYXkoMTAwMDApOwogCi0JaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotCXN5c3AgID0gKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKLQlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOwotCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXN5c3AgID0gKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3NpdV9jb25mKSk7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qIENvbmZpZ3VyZSBQb3J0cyBmb3IgVFBTMjIxMUEgUEMtQ2FyZCBQb3dlci1JbnRlcmZhY2UgU3dpdGNoICovCiAJY2ZnX3BvcnRzICgpOwpAQCAtMTc1LDggKzE3NSw4IEBACiAKIAlkZWJ1ZyAoImhhcmR3YXJlX2Rpc2FibGU6ICIgUENNQ0lBX0JPQVJEX01TRyAiIFNsb3QgJWNcbiIsICdBJytzbG90KTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAKIAkvKiBDb25maWd1cmUgUENNQ0lBIEdlbmVyYWwgQ29udHJvbCBSZWdpc3RlciAqLwogCWRlYnVnICgiRGlzYWJsZSBQQ01DSUEgYnVmZmVycyBhbmQgYXNzZXJ0IFJFU0VUXG4iKTsKQEAgLTIwOSw5ICsyMDksOSBAQAogCQkJIiBTbG90ICVjLCBWY2M9JWQuJWQsIFZwcD0lZC4lZFxuIiwKIAknQScrc2xvdCwgdmNjLzEwLCB2Y2MlMTAsIHZwcC8xMCwgdmNjJTEwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAJLyoKIAkqIERpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgKGlzb2xhdGUgdGhlIGludGVyZmFjZSkKIAkqIGFuZCBhc3NlcnQgUkVTRVQgc2lnbmFsCmRpZmYgLS1naXQgYS9ib2FyZC9jYW5tYi9jYW5tYi5jIGIvYm9hcmQvY2FubWIvY2FubWIuYwppbmRleCBkMzcxMWQwLi5kY2UwN2JmIDEwMDY0NAotLS0gYS9ib2FyZC9jYW5tYi9jYW5tYi5jCisrKyBiL2JvYXJkL2Nhbm1iL2Nhbm1iLmMKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJtdDQ4bGMxNm0zMnMyLTc1LmgiCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIHN0YXRpYyB2b2lkIHNkcmFtX3N0YXJ0IChpbnQgaGlfYWRkcikKIHsKIAlsb25nIGhpX2FkZHJfYml0ID0gaGlfYWRkciA/IDB4MDEwMDAwMDAgOiAwOwpAQCAtNzcsNyArNzcsNyBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKiAgICAgICAgICAgIHVzZSBvZiBDRkdfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDRkdfU0RSQU1fQkFTRQorICogICAgICAgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICogICAgICAgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIApAQCAtODYsNyArODYsNyBAQAogewogCXVsb25nIGRyYW1zaXplID0gMDsKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTEwNyw5ICsxMDcsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTM1LDEwICsxMzUsMTAgQEAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJaWYgKCFkcmFtc2l6ZSkKIAkJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgodWxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKHVsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJaWYgKCFkcmFtc2l6ZSkgewogCQlzZHJhbV9zdGFydCgxKTsKLQkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKHVsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKHVsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJfQogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTYwLDcgKzE2MCw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xNzgsNyArMTc4LDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplICsgZHJhbXNpemUyOwogfQpAQCAtMTg4LDcgKzE4OCw3IEBACiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBhbmQgZW5hYmxlIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMjA3LDkgKzIwNyw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0yMjAsMTIgKzIyMCwxMiBAQAogCS8qIHNldCBTRFJBTSBlbmQgYWRkcmVzcyBhY2NvcmRpbmcgdG8gc2l6ZSAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCA9ICgoZHJhbXNpemUgLSAxKSA+PiAxNSk7CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHJpZXZlIGFtb3VudCBvZiBTRFJBTSBhdmFpbGFibGUgKi8KIAlkcmFtc2l6ZSA9ICgoKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9TVE9QICsgMSkgPDwgMTUpOwogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCXJldHVybiBkcmFtc2l6ZTsKIH0KQEAgLTI0NCw4ICsyNDQsOCBAQAogewogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX0NGRyAmPSB+MHgxOyAvKiBjbGVhciBSTyAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUQVJUID0KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVEFSVCA9IFNUQVJUX1JFRyhDRkdfRkxBU0hfQkFTRSk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPSBTVEFSVF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVE9QID0KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9TSVpFKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX1NJWkUpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvY2VyZjI1MC9mbGFzaC5jIGIvYm9hcmQvY2VyZjI1MC9mbGFzaC5jCmluZGV4IDNmZjE5YmMuLmE0YjIwMWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NlcmYyNTAvZmxhc2guYworKysgYi9ib2FyZC9jZXJmMjUwL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI2RlZmluZSBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTY1LDcgKzY1LDcgQEAKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC04NSw4ICs4NSw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0gKTsKIAogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULApAQCAtMjAzLDEwICsyMDMsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNzYsNyArMjc2LDcgQEAKIAkJCSphZGRyID0gKEZQVykgMHgwMEQwMDBEMDsJLyogZXJhc2UgY29uZmlybSAqLwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00MTAsNyArNDEwLDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9jZXJmMjUwL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL2NlcmYyNTAvbG93bGV2ZWxfaW5pdC5TCmluZGV4IGFkM2M1OWYuLjViZmU1M2MgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NlcmYyNTAvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL2NlcmYyNTAvbG93bGV2ZWxfaW5pdC5TCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLURSQU1fU0laRTogIC5sb25nICAgQ0ZHX0RSQU1fU0laRQorRFJBTV9TSVpFOiAgLmxvbmcgICBDT05GSUdfU1lTX0RSQU1fU0laRQogCiAvKiB3YWl0IGZvciBjb3Byb2Nlc3NvciB3cml0ZSBjb21wbGV0ZSAqLwogICAgLm1hY3JvIENQV0FJVCByZWcKQEAgLTQ5LDY3ICs0OSw2NyBAQAogCS8qIFNldCB1cCBHUElPIHBpbnMgZmlyc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCWxkcglyMCwgPUdQU1IwCi0JbGRyCXIxLCA9Q0ZHX0dQU1IwX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR1BTUjBfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HUFNSMQotCWxkcglyMSwgPUNGR19HUFNSMV9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dQU1IxX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R1BTUjIKLQlsZHIJcjEsID1DRkdfR1BTUjJfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HUFNSMl9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdQQ1IwCi0JbGRyCXIxLCA9Q0ZHX0dQQ1IwX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR1BDUjBfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HUENSMQotCWxkcglyMSwgPUNGR19HUENSMV9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dQQ1IxX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R1BDUjIKLQlsZHIJcjEsID1DRkdfR1BDUjJfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HUENSMl9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdQRFIwCi0JbGRyCXIxLCA9Q0ZHX0dQRFIwX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR1BEUjBfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HUERSMQotCWxkcglyMSwgPUNGR19HUERSMV9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dQRFIxX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R1BEUjIKLQlsZHIJcjEsID1DRkdfR1BEUjJfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HUERSMl9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdBRlIwX0wKLQlsZHIJcjEsID1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dBRlIwX0xfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HQUZSMF9VCi0JbGRyCXIxLCA9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HQUZSMF9VX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R0FGUjFfTAotCWxkcglyMSwgPUNGR19HQUZSMV9MX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR0FGUjFfTF9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPUdBRlIxX1UKLQlsZHIJcjEsID1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJcjEsID1DT05GSUdfU1lTX0dBRlIxX1VfVkFMCiAJc3RyCXIxLCBbcjBdCiAKIAlsZHIJcjAsID1HQUZSMl9MCi0JbGRyCXIxLCA9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19HQUZSMl9MX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJbGRyCXIwLCA9R0FGUjJfVQotCWxkcglyMSwgPUNGR19HQUZSMl9VX1ZBTAorCWxkcglyMSwgPUNPTkZJR19TWVNfR0FGUjJfVV9WQUwKIAlzdHIJcjEsIFtyMF0KIAogCWxkcglyMCwgPVBTU1IJCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCXIxLCA9Q0ZHX1BTU1JfVkFMCisJbGRyCXIxLCA9Q09ORklHX1NZU19QU1NSX1ZBTAogCXN0cglyMSwgW3IwXQogCiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtMTQ3LDE3ICsxNDcsMTcgQEAKIAkvKiBNU0MgcmVnaXN0ZXJzOiB0aW1pbmcsIGJ1cyB3aWR0aCwgbWVtIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICovCiAKIAkvKiBNU0MwOiBuQ1MoMCwxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyCXIyLCA9Q0ZHX01TQzBfVkFMCisJbGRyCXIyLCA9Q09ORklHX1NZU19NU0MwX1ZBTAogCXN0cglyMiwgW3IxLCAjTVNDMF9PRkZTRVRdCiAJbGRyCXIyLCBbcjEsICNNU0MwX09GRlNFVF0JCS8qIHJlYWQgYmFjayB0byBlbnN1cmUgICAgICAqLwogCQkJCQkJLyogdGhhdCBkYXRhIGxhdGNoZXMgICAgICAgICovCiAJLyogTVNDMTogbkNTKDIsMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkcglyMiwgPUNGR19NU0MxX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTVNDMV9WQUwKIAlzdHIJcjIsIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkcglyMiwgW3IxLCAjTVNDMV9PRkZTRVRdCiAKIAkvKiBNU0MyOiBuQ1MoNCw1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyCXIyLCA9Q0ZHX01TQzJfVkFMCisJbGRyCXIyLCA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0cglyMiwgW3IxLCAjTVNDMl9PRkZTRVRdCiAJbGRyCXIyLCBbcjEsICNNU0MyX09GRlNFVF0KIApAQCAtMTY2LDM3ICsxNjYsMzcgQEAKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAkvKiBNRUNSOiBNZW1vcnkgRXhwYW5zaW9uIENhcmQgUmVnaXN0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyCXIyLCA9Q0ZHX01FQ1JfVkFMCisJbGRyCXIyLCA9Q09ORklHX1NZU19NRUNSX1ZBTAogCXN0cglyMiwgW3IxLCAjTUVDUl9PRkZTRVRdCiAJbGRyCXIyLCBbcjEsICNNRUNSX09GRlNFVF0KIAogCS8qIE1DTUVNMDogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAwIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIJcjIsID1DRkdfTUNNRU0wX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogCXN0cglyMiwgW3IxLCAjTUNNRU0wX09GRlNFVF0KIAlsZHIJcjIsIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAKIAkvKiBNQ01FTTE6IENhcmQgSW50ZXJmYWNlIHNsb3QgMSB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyCXIyLCA9Q0ZHX01DTUVNMV9WQUwKKwlsZHIJcjIsID1DT05GSUdfU1lTX01DTUVNMV9WQUwKIAlzdHIJcjIsIFtyMSwgI01DTUVNMV9PRkZTRVRdCiAJbGRyCXIyLCBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCiAJLyogTUNBVFQwOiBDYXJkIEludGVyZmFjZSBBdHRyaWJ1dGUgU3BhY2UgVGltaW5nLCBzbG90IDAgICAgICAgICAgICAqLwotCWxkcglyMiwgPUNGR19NQ0FUVDBfVkFMCisJbGRyCXIyLCA9Q09ORklHX1NZU19NQ0FUVDBfVkFMCiAJc3RyCXIyLCBbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCWxkcglyMiwgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAogCS8qIE1DQVRUMTogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAxICAgICAgICAgICAgKi8KLQlsZHIJcjIsID1DRkdfTUNBVFQxX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogCXN0cglyMiwgW3IxLCAjTUNBVFQxX09GRlNFVF0KIAlsZHIJcjIsIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAKIAkvKiBNQ0lPMDogQ2FyZCBJbnRlcmZhY2UgSS9PIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgICAgICAgICovCi0JbGRyCXIyLCA9Q0ZHX01DSU8wX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAJc3RyCXIyLCBbcjEsICNNQ0lPMF9PRkZTRVRdCiAJbGRyCXIyLCBbcjEsICNNQ0lPMF9PRkZTRVRdCiAKIAkvKiBNQ0lPMTogQ2FyZCBJbnRlcmZhY2UgSS9PIFNwYWNlIFRpbWluZywgc2xvdCAxICAgICAgICAgICAgICAgICAgICovCi0JbGRyCXIyLCA9Q0ZHX01DSU8xX1ZBTAorCWxkcglyMiwgPUNPTkZJR19TWVNfTUNJTzFfVkFMCiAJc3RyCXIyLCBbcjEsICNNQ0lPMV9PRkZTRVRdCiAJbGRyCXIyLCBbcjEsICNNQ0lPMV9PRkZTRVRdCiAKQEAgLTIxMiw3ICsyMTIsNyBAQAogCS8qIEJlZm9yZSBhY2Nlc3NpbmcgTURSRUZSIHdlIG5lZWQgYSB2YWxpZCBEUkkgZmllbGQsIHNvIHdlIHNldCAgICAgKi8KIAkvKiB0aGlzIHRvIHBvd2VyIG9uIGRlZmF1bHRzICsgRFJJIGZpZWxkLCBzZXQgU0RSQU0gY2xvY2tzIGZyZWUgcnVubmluZyAqLwogCi0JbGRyCXIzLCA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjMsID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlsZHIJcjIsID0weEZGRgogCWFuZAlyMywgcjMsICByMgogCkBAIC0yNDMsNyArMjQzLDcgQEAKIAogCS8qIHNldCBNRFJFRlIgYWNjb3JkaW5nIHRvIHVzZXIgZGVmaW5lIHdpdGggZXhjZXB0aW9uIG9mIGEgZmV3IGJpdHMgKi8KIAotCWxkciAgICAgcjQsID1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjQsID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlsZHIJcjIsID0oTURSRUZSX0swUlVOfE1EUkVGUl9LMERCMnxNRFJFRlJfSzFSVU58TURSRUZSX0sxREIyfFwKIAkJCQkJTURSRUZSX0syUlVOIHxNRFJFRlJfSzJEQjIpCiAJYW5kCXI0LCByNCwgcjIKQEAgLTI2Miw3ICsyNjIsNyBAQAogCiAJLyogU3RlcCA0YzogYXNzZXJ0IE1EUkVGUjpFMVBJTiBhbmQgRTBQSU8gYXMgZGVzaXJlZCwgc2V0IEtYRlJFRSAgKi8KIAotCWxkciAgICAgcjQsID1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjQsID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlsZHIJcjIsID0oTURSRUZSX0UwUElOfE1EUkVGUl9FMVBJTnxNRFJFRlJfSzBGUkVFfCBcCiAJCQlNRFJFRlJfSzFGUkVFIHwgTURSRUZSX0syRlJFRSkKIAlhbmQJcjQsIHI0LCByMgpAQCAtMjc0LDcgKzI3NCw3IEBACiAJLyogU3RlcCA0ZDogd3JpdGUgTURDTkZHIHdpdGggTURDTkZHOkRFeCBkZWFzc2VydGVkIChzZXQgdG8gMCksIHRvICAqLwogCS8qICAgICAgICAgIGNvbmZpZ3VyZSBidXQgbm90IGVuYWJsZSBlYWNoIFNEUkFNIHBhcnRpdGlvbiBwYWlyLiAgICAgKi8KIAotCWxkcglyNCwgPUNGR19NRENORkdfVkFMCisJbGRyCXI0LCA9Q09ORklHX1NZU19NRENORkdfVkFMCiAJYmljCXI0LCByNCwgIyhNRENORkdfREUwfE1EQ05GR19ERTEpCiAJYmljCXI0LCByNCwgIyhNRENORkdfREUyfE1EQ05GR19ERTMpCiAJc3RyICAgICByNCwgW3IxLCAjTURDTkZHX09GRlNFVF0JLyogd3JpdGUgYmFjayBNRENORkcgICAgICAgICovCkBAIC0zMDEsNyArMzAxLDcgQEAKIAkvKiAgICAgICAgICBkb2N1bWVudGVkIGluIFNEUkFNIGRhdGEgc2hlZXRzLiBUaGUgYWRkcmVzcyhlcykgdXNlZCAgICovCiAJLyogICAgICAgICAgZm9yIHRoaXMgcHVycG9zZSBtdXN0IG5vdCBiZSBjYWNoZWFibGUuICAgICAgICAgICAgICAgICAqLwogCi0JbGRyCXIzLCA9Q0ZHX0RSQU1fQkFTRQorCWxkcglyMywgPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAucmVwdCA4CiAJc3RyCXIyLCBbcjNdCiAuZW5kcgpAQCAtMzE1LDcgKzMxNSw3IEBACiAKIAkvKiBTdGVwIDRoOiBXcml0ZSBNRE1SUy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAKLQlsZHIgICAgIHIyLCA9Q0ZHX01ETVJTX1ZBTAorCWxkciAgICAgcjIsID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0ciAgICAgcjIsIFtyMSwgI01ETVJTX09GRlNFVF0KIAogCmRpZmYgLS1naXQgYS9ib2FyZC9jbTQwMDgvZmxhc2guYyBiL2JvYXJkL2NtNDAwOC9mbGFzaC5jCmluZGV4IDg2YzhlMmEuLjJlNjY4NzIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NtNDAwOC9mbGFzaC5jCisrKyBiL2JvYXJkL2NtNDAwOC9mbGFzaC5jCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogI2RlZmluZSBtYigpIF9fYXNtX18gX192b2xhdGlsZV9fICgiIiA6IDogOiAibWVtb3J5IikKIApAQCAtNTEsNyArNTEsNyBAQAogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaF9nZXRfc2l6ZSAoKHVuc2lnbmVkIGNoYXIgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC03MSw4ICs3MSw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBfYnNzX3N0YXJ0IC0gX2FybWJvb3Rfc3RhcnQsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBfYnNzX3N0YXJ0IC0gX2FybWJvb3Rfc3RhcnQsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlyZXR1cm4gc2l6ZTsKQEAgLTE4OSwxMCArMTg5LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IDB4RkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNTksNyArMjU5LDcgQEAKIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgMHg4MCkgIT0gMHg4MCkgewogCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkgICAgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkgICAgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4QjA7CS8qIHN1c3BlbmQgZXJhc2UgKi8KIAkJCQkJKmFkZHIgPSAweEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTM4OCw3ICszODgsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gMHhGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2NtNDF4eC9mbGFzaC5jIGIvYm9hcmQvY200MXh4L2ZsYXNoLmMKaW5kZXggODZjOGUyYS4uMmU2Njg3MiAxMDA2NDQKLS0tIGEvYm9hcmQvY200MXh4L2ZsYXNoLmMKKysrIGIvYm9hcmQvY200MXh4L2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAjZGVmaW5lIG1iKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIDogOiA6ICJtZW1vcnkiKQogCkBAIC01MSw3ICs1MSw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgodW5zaWduZWQgY2hhciAqKSBQSFlTX0ZMQVNIXzEsICZmbGFzaF9pbmZvW2ldKTsKQEAgLTcxLDggKzcxLDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSArIF9ic3Nfc3RhcnQgLSBfYXJtYm9vdF9zdGFydCwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIF9ic3Nfc3RhcnQgLSBfYXJtYm9vdF9zdGFydCwKIAkJICAgICAgICZmbGFzaF9pbmZvWzBdKTsKIAogCXJldHVybiBzaXplOwpAQCAtMTg5LDEwICsxODksMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gMHhGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTI1OSw3ICsyNTksNyBAQAogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAweDgwKSAhPSAweDgwKSB7CiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gMHhCMDsJLyogc3VzcGVuZCBlcmFzZSAqLwogCQkJCQkqYWRkciA9IDB4RkY7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtMzg4LDcgKzM4OCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAweEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvY201MjAwL2NtNTIwMC5jIGIvYm9hcmQvY201MjAwL2NtNTIwMC5jCmluZGV4IDI0ZThkYjAuLjllMmYxYTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NtNTIwMC9jbTUyMDAuYworKysgYi9ib2FyZC9jbTUyMDAvY201MjAwLmMKQEAgLTU3LDcgKzU3LDcgQEAKIHN0YXRpYyBod19pZF90IGh3X2lkOwogCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAvKgogICogSGVscGVyIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgU0RSQU0gY29udHJvbGxlci4KICAqLwpAQCAtODcsNyArODcsNyBAQAogCS8qIG5vcm1hbCBvcGVyYXRpb24gKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NUUkwgPSBtZW1fY29uZi0+Y29udHJvbCB8IGhpX2FkZHJfYml0OwogfQotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAogLyoKQEAgLTExNyw3ICsxMTcsNyBAQAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAJbWVtX2NvbmZfdCAqbWVtX2NvbmY7CiAKQEAgLTEzMSw5ICsxMzEsOSBAQAogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ09ORklHMiA9IG1lbV9jb25mLT5jb25maWcyOwogCiAJc2RyYW1fc3RhcnQoMCwgbWVtX2NvbmYpOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxLCBtZW1fY29uZik7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDAsIG1lbV9jb25mKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTE1MCwxNCArMTUwLDE0IEBACiAJCQlfX2J1aWx0aW5fZmZzKGRyYW1zaXplID4+IDIwKSAtIDE7CiAJfSBlbHNlCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHID0gMDsgLyogZGlzYWJsZWQgKi8KLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CiAJaWYgKGRyYW1zaXplID49IDB4MTMpCiAJCWRyYW1zaXplID0gKDEgPDwgKGRyYW1zaXplIC0gMHgxMykpIDw8IDIwOwogCWVsc2UKIAkJZHJhbXNpemUgPSAwOwotI2VuZGlmIC8qICFDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qCiAJICogT24gTVBDNTIwMEIgd2UgbmVlZCB0byBzZXQgdGhlIHNwZWNpYWwgY29uZmlndXJhdGlvbiBkZWxheSBpbiB0aGUKQEAgLTE3OCw3ICsxNzgsNyBAQAogewogCWludCBpOwogCWZvciAoaSA9IDA7IGkgPCBIV19JRF9FTEVNX0NPVU5UOyArK2kpCi0JCWlmIChpMmNfcmVhZChDRkdfSTJDX0VFUFJPTSwKKwkJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTSwKIAkJCQlod19pZF9mb3JtYXRbaV0ub2Zmc2V0LAogCQkJCTIsCiAJCQkJKHVjaGFyICopJmh3X2lkW2ldWzBdLApAQCAtMjk4LDcgKzI5OCw3IEBACiAJICogYWxzbyB1c2UgYSBsaXR0bGUgdHJpY2sgdG8gc2lsZW5jZSBJMkMtcmVsYXRlZCBvdXRwdXQuCiAJICovCiAJZ2QtPmZsYWdzIHw9IEdEX0ZMR19TSUxFTlQ7Ci0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCWdkLT5mbGFncyAmPSB+R0RfRkxHX1NJTEVOVDsKIAogCXJlYWRfaHdfaWQoaHdfaWRfdG1wKTsKQEAgLTM2Myw3ICszNjMsNyBAQAogCWNoYXIgaG9zdG5hbWVbTU9EVUxFX05BTUVfTUFYTEVOXTsKIAogCS8qIFJlYWQgZXRoYWRkciBmcm9tIEVFUFJPTSAqLwotCWlmIChpMmNfcmVhZChDRkdfSTJDX0VFUFJPTSwgQ09ORklHX01BQ19PRkZTRVQsIDIsIGJ1ZiwgNikgPT0gMCkgeworCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST00sIENPTkZJR19NQUNfT0ZGU0VULCAyLCBidWYsIDYpID09IDApIHsKIAkJc3ByaW50ZihzdHIsICIlMDJYOiUwMlg6JTAyWDolMDJYOiUwMlg6JTAyWCIsCiAJCQlidWZbMF0sIGJ1ZlsxXSwgYnVmWzJdLCBidWZbM10sIGJ1Zls0XSwgYnVmWzVdKTsKIAkJLyogQ2hlY2sgaWYgTUFDIGFkZHIgaXMgb3duZWQgYnkgU2NoaW5kbGVyICovCkBAIC0zNzcsNyArMzc3LDcgQEAKIAkJfQogCX0gZWxzZSB7CiAJCXByaW50ZihMT0dfUFJFRklYICJXYXJuaW5nIC0gVW5hYmxlIHRvIHJlYWQgTUFDIGZyb20gSTJDIgotCQkJIiBkZXZpY2UgYXQgYWRkcmVzcyAlMDJYOiUwNFhcbiIsIENGR19JMkNfRUVQUk9NLAorCQkJIiBkZXZpY2UgYXQgYWRkcmVzcyAlMDJYOiUwNFhcbiIsIENPTkZJR19TWVNfSTJDX0VFUFJPTSwKIAkJCUNPTkZJR19NQUNfT0ZGU0VUKTsKIAl9CiAjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfSEFSRF9JMkMpIHx8IGRlZmluZWQoQ09ORklHX1NPRlRfSTJDKSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvY201MjAwL2NtZF9jbTUyMDAuYyBiL2JvYXJkL2NtNTIwMC9jbWRfY201MjAwLmMKaW5kZXggMjIwMWJkZC4uMDBmMDY3MSAxMDA2NDQKLS0tIGEvYm9hcmQvY201MjAwL2NtZF9jbTUyMDAuYworKysgYi9ib2FyZC9jbTUyMDAvY21kX2NtNTIwMC5jCkBAIC0zOSwxOCArMzksMTggQEAKIAlnZXRjKCk7CiAKIAl0ZW1wID0gMHhmMDsgLyogc2V0IGlvIDAtNCBhcyBvdXRwdXQgKi8KLQlpMmNfd3JpdGUoQ0ZHX0kyQ19JTywgMywgMSwgKHVjaGFyICopJnRlbXAsIDEpOworCWkyY193cml0ZShDT05GSUdfU1lTX0kyQ19JTywgMywgMSwgKHVjaGFyICopJnRlbXAsIDEpOwogCiAJcHJpbnRmKCJQcmVzcyBJMkM0LTcuIExFRCBJMkMwLTMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgc3RhdGVcblxuIgogCQkiUHJlc3MgYW55IGtleSB0byBzdG9wXG5cbiIpOwogCiAJd2hpbGUgKCF0c3RjKCkpIHsKLQkJaTJjX3JlYWQoQ0ZHX0kyQ19JTywgMCwgMSwgKHVjaGFyICopJnRlbXAsIDEpOworCQlpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19JTywgMCwgMSwgKHVjaGFyICopJnRlbXAsIDEpOwogCQl0ZW1wMSA9ICh0ZW1wID4+IDQpICYgMHgwMzsKIAkJdGVtcDEgfD0gKHRlbXAgPj4gMykgJiAweDA4OyAvKiBTMzAyIC0+IExFRDMwMyAqLwogCQl0ZW1wMSB8PSAodGVtcCA+PiA1KSAmIDB4MDQ7IC8qIFMzMDMgLT4gTEVEMzAyICovCiAJCXRlbXAgPSB0ZW1wMTsKLQkJaTJjX3dyaXRlKENGR19JMkNfSU8sIDEsIDEsICh1Y2hhciAqKSZ0ZW1wLCAxKTsKKwkJaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX0lPLCAxLCAxLCAodWNoYXIgKikmdGVtcCwgMSk7CiAJfQogCWdldGMoKTsKIApAQCAtMzkyLDcgKzM5Miw3IEBACiAJCWVycm9yX3N0YXR1cyA9IDE7CiAJCWJyZWFrOwogCX0KLQlncGlvLT5wb3J0X2NvbmZpZyB8PSAoQ0ZHX0dQU19QT1JUX0NPTkZJRyAmIDB4RkYwRkY4MEYpOworCWdwaW8tPnBvcnRfY29uZmlnIHw9IChDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRyAmIDB4RkYwRkY4MEYpOwogCiAJcmV0dXJuIGVycm9yX3N0YXR1czsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2NtY19wdTIvZmxhc2guYyBiL2JvYXJkL2NtY19wdTIvZmxhc2guYwppbmRleCA4OTY2Mzk5Li5kODMyZTYyIDEwMDY0NAotLS0gYS9ib2FyZC9jbWNfcHUyL2ZsYXNoLmMKKysrIGIvYm9hcmQvY21jX3B1Mi9mbGFzaC5jCkBAIC0zMCwxMCArMzAsMTAgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KIAogI2lmbmRlZglDT05GSUdfRU5WX0FERFIKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogI2VuZGlmCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAjZGVmaW5lIEZMQVNIX0NZQ0xFMQkweDA1NTUKICNkZWZpbmUgRkxBU0hfQ1lDTEUyCTB4MDJBQQpAQCAtNTQsNyArNTQsNyBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7Ci0JdWxvbmcgZmxhc2hiYXNlID0gQ0ZHX0ZMQVNIX0JBU0U7CisJdWxvbmcgZmxhc2hiYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwogCW1lbXNldCgmZmxhc2hfaW5mb1swXSwgMCwgc2l6ZW9mKGZsYXNoX2luZm9fdCkpOwpAQCAtNjMsMTIgKzYzLDEyIEBACiAKIAlzaXplID0gZmxhc2hfaW5mb1swXS5zaXplOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCi0JCSAgICAgIGZsYXNoX2dldF9pbmZvKENGR19NT05JVE9SX0JBU0UpKTsKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIGZsYXNoX2dldF9pbmZvKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSk7CiAjZW5kaWYKIAogI2lmZGVmCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTEwNCwxNCArMTA0LDE0IEBACiAJZmxhc2hfaW5mb190ICogaW5mbzsKIAogCWluZm8gPSBOVUxMOwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpICsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpICsrKSB7CiAJCWluZm8gPSAmIGZsYXNoX2luZm9baV07CiAJCWlmIChpbmZvLT5zaXplICYmIGluZm8tPnN0YXJ0WzBdIDw9IGJhc2UgJiYKIAkJICAgIGJhc2UgPD0gaW5mby0+c3RhcnRbMF0gKyBpbmZvLT5zaXplIC0gMSkKIAkJCWJyZWFrOwogCX0KIAotCXJldHVybiBpID09IENGR19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKKwlyZXR1cm4gaSA9PSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvOwogfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMzksNyArMzM5LDcgQEAKIAkJbGFzdCAgPSAwOwogCQlhZGRyID0gKHZ1X3Nob3J0ICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCQl3aGlsZSAoKGFkZHJbMF0gJiAweDAwODApICE9IDB4MDA4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXJfbWFza2VkICgpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcl9tYXNrZWQgKCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC00NTksNyArNDU5LDcgQEAKIAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAoKCpkZXN0ICYgMHgwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAweDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2NtaS9jbWkuYyBiL2JvYXJkL2NtaS9jbWkuYwppbmRleCBlZTI0M2RiLi5iNzgxODNlIDEwMDY0NAotLS0gYS9ib2FyZC9jbWkvY21pLmMKKysrIGIvYm9hcmQvY21pL2NtaS5jCkBAIC03MCw0ICs3MCw0IEBACiAvKgogICogQWJzb2x1dGUgZW52aXJvbm1lbnQgYWRkcmVzcyBmb3IgbGlua2VyIGZpbGUuCiAgKi8KLUdFTl9BQlMoZW52X3N0YXJ0LCBDT05GSUdfRU5WX09GRlNFVCArIENGR19GTEFTSF9CQVNFKTsKK0dFTl9BQlMoZW52X3N0YXJ0LCBDT05GSUdfRU5WX09GRlNFVCArIENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CmRpZmYgLS1naXQgYS9ib2FyZC9jbWkvZmxhc2guYyBiL2JvYXJkL2NtaS9mbGFzaC5jCmluZGV4IDBkNDU4MmIuLjYzMGMzMzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NtaS9mbGFzaC5jCisrKyBiL2JvYXJkL2NtaS9mbGFzaC5jCkBAIC0zOCw3ICszOCw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC02Miw3ICs2Miw3IEBACiAjZGVmaW5lIEZMQVNIX0NNRF9QUk9URUNUX0NMRUFSCQkweDAwRDAKICNkZWZpbmUgRkxBU0hfU1RBVFVTX0RPTkUJCTB4MDA4MAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyoKICAqIExvY2FsIGZ1bmN0aW9uIHByb3RvdHlwZXMKQEAgLTgxLDcgKzgxLDcgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTAyLDExICsxMDIsMTEgQEAKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yNjgsMTAgKzI2OCwxMCBAQAogCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gRkxBU0hfQ01EX1JFU0VUOwkJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTM0NSw3ICszNDUsNyBAQAogCQkJdWRlbGF5ICgxMDAwKTsKIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgRkxBU0hfU1RBVFVTX0RPTkUpICE9IEZMQVNIX1NUQVRVU19ET05FKSB7Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZigiRmxhc2ggZXJhc2UgdGltZW91dCBhdCBhZGRyZXNzICVseFxuIiwgaW5mby0+c3RhcnRbc2VjdF0pOwogCQkJCQkqYWRkciA9IEZMQVNIX0NNRF9TVVNQRU5EX0VSQVNFOwogCQkJCQkqYWRkciA9IEZMQVNIX0NNRF9SRVNFVDsKQEAgLTQ3Myw3ICs0NzMsNyBAQAogCiAJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCiAJd2hpbGUoIShhZGRyWzBdICYgRkxBU0hfU1RBVFVTX0RPTkUpKXsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJYWRkclswXSA9IEZMQVNIX0NNRF9SRVNFVDsKIAkJCXJldHVybiAoMSk7CiAJCX0KQEAgLTUwNCw3ICs1MDQsNyBAQAogCS8qIHdhaXQgZm9yIGVycm9yIG9yIGZpbmlzaCAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSghKGFkZHJbMF0gJiBGTEFTSF9TVEFUVVNfRE9ORSkpewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIkZsYXNoIHByb3RlY3QgdGltZW91dCBhdCBhZGRyZXNzICVseFxuIiwgIGluZm8tPnN0YXJ0W3NlY3Rvcl0pOwogCQkJYWRkclswXSA9IEZMQVNIX0NNRF9SRVNFVDsKIAkJCXJldHVybiAoMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9jb2JyYTUyNzIvY29icmE1MjcyLmMgYi9ib2FyZC9jb2JyYTUyNzIvY29icmE1MjcyLmMKaW5kZXggYjkyODU1MC4uYTYyMjE0YyAxMDA2NDQKLS0tIGEvYm9hcmQvY29icmE1MjcyL2NvYnJhNTI3Mi5jCisrKyBiL2JvYXJkL2NvYnJhNTI3Mi9jb2JyYTUyNzIuYwpAQCAtNDIsNyArNDIsNyBAQAogCS8qIER1bW15IHdyaXRlIHRvIHN0YXJ0IFNEUkFNICovCiAJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAwKSA9IDA7CiAKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9OwogCiBpbnQgdGVzdGRyYW0gKHZvaWQpCmRpZmYgLS1naXQgYS9ib2FyZC9jb2JyYTUyNzIvZmxhc2guYyBiL2JvYXJkL2NvYnJhNTI3Mi9mbGFzaC5jCmluZGV4IDgyNDUyZTIuLjMzYzkzNjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NvYnJhNTI3Mi9mbGFzaC5jCisrKyBiL2JvYXJkL2NvYnJhNTI3Mi9mbGFzaC5jCkBAIC0yMywxMCArMjMsMTAgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jZGVmaW5lIFBIWVNfRkxBU0hfMSBDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBQSFlTX0ZMQVNIXzEgQ09ORklHX1NZU19GTEFTSF9CQVNFCiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDIwMDAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogdm9pZCBmbGFzaF9wcmludF9pbmZvIChmbGFzaF9pbmZvX3QgKiBpbmZvKQogewpAQCAtNzQsMTUgKzc0LDE1IEBACiAJaW50IGksIGo7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkJCShBTURfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCQkJKEFNRF9JRF9QTDE2MENCICYgRkxBU0hfVFlQRU1BU0spOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCWlmIChpID09IDApCiAJCQlmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CiAJCWVsc2UKQEAgLTExMyw4ICsxMTMsOCBAQAogCX0KIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgMHgzZmZmZiwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgzZmZmZiwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0xMjgsOCArMTI4LDggQEAKICNkZWZpbmUgQ01EX1BST0dSQU0JCTB4MDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMjAKIAotI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwNTU1PDwxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUE8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTU8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIyCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUE8PDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDgwCiAjZGVmaW5lIEJJVF9SRFlfTUFTSwkJMHgwMDgwCkBAIC0yMTEsNyArMjExLDcgQEAKIAkJCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lciAoMCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAxID0gVE1POwogCQkJCQlicmVhazsKQEAgLTI5OSw3ICsyOTksNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXIgKDApID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoMCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCWNoaXAxID0gRVJSIHwgVE1POwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2NvYnJhNTI3Mi9taWkuYyBiL2JvYXJkL2NvYnJhNTI3Mi9taWkuYwppbmRleCBiMzBiYTgwLi4xNjFjNjk0IDEwMDY0NAotLS0gYS9ib2FyZC9jb2JyYTUyNzIvbWlpLmMKKysrIGIvYm9hcmQvY29icmE1MjcyL21paS5jCkBAIC00NSw3ICs0NSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTEzMSw5ICsxMzEsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTE5OCw3ICsxOTgsNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhayxhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2NvZ2VudC9SRUFETUUgYi9ib2FyZC9jb2dlbnQvUkVBRE1FCmluZGV4IGU2ZWVmNjYuLjMxY2ExODcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NvZ2VudC9SRUFETUUKKysrIGIvYm9hcmQvY29nZW50L1JFQURNRQpAQCAtODAsMTYgKzgwLDE2IEBACiAiaW5jbHVkZS9jb25maWdfY29nZW50X21wYzh4eC5oIiBhbmQgcmV2aWV3aW5nIGFsbCB0aGUgb3B0aW9ucyBhbmQKIHNldHRpbmdzIGluIHRoZXJlLiBJbiBwYXJ0aWN1bGFyLCBjaGVjayB0aGUgY2hpcCBzZWxlY3QgdmFsdWVzCiBpbnN0YWxsZWQgaW50byB0aGUgbWVtb3J5IGNvbnRyb2xsZXIncyB2YXJpb3VzIG9wdGlvbiBhbmQgYmFzZQotcmVnaXN0ZXJzIC0gdGhlc2UgYXJlIHNldCBieSB0aGUgZGVmaW5lcyBDRkdfQ01BX0NTbl97QkFTRSxTSVpFfSBhbmQKLUNGR197QixPfVJuX1BSRUxJTS4gQWxzbyBiZSBjYXJlZnVsIG9mIHRoZSBjbG9jayBzZXR0aW5ncyBpbnN0YWxsZWQKLWludG8gdGhlIFNDQ1IgLSB2aWEgdGhlIGRlZmluZSBDRkdfU0NDUi4gRmluYWxseSwgZGVjaWRlIHdoZXRoZXIgeW91CityZWdpc3RlcnMgLSB0aGVzZSBhcmUgc2V0IGJ5IHRoZSBkZWZpbmVzIENPTkZJR19TWVNfQ01BX0NTbl97QkFTRSxTSVpFfSBhbmQKK0NPTkZJR19TWVNfe0IsT31Sbl9QUkVMSU0uIEFsc28gYmUgY2FyZWZ1bCBvZiB0aGUgY2xvY2sgc2V0dGluZ3MgaW5zdGFsbGVkCitpbnRvIHRoZSBTQ0NSIC0gdmlhIHRoZSBkZWZpbmUgQ09ORklHX1NZU19TQ0NSLiBGaW5hbGx5LCBkZWNpZGUgd2hldGhlciB5b3UKIHdhbnQgdGhlIHNlcmlhbCBjb25zb2xlIG9uIG1vdGhlcmJvYXJkIHNlcmlhbCBwb3J0IEEgb3Igb24gb25lIG9mIHRoZQogOHh4IFNNQyBwb3J0cywgYW5kIHNldCBDT05GSUdfOHh4X0NPTlNfe1NNQzEsU01DMixOT05FfSBhY2NvcmRpbmdseQogKE5PTkUgbWVhbnMgdXNlIENvZ2VudCBtb3RoZXJib2FyZCBzZXJpYWwgcG9ydCBBKS4KIAogVGhlbiBlZGl0IHRoZSBmaWxlICJjb2dlbnQvY29uZmlnLm1rIi4gRmlyc3RseSwgc2V0IFRFWFRfQkFTRSB0byBiZQogdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgRVBST00gZm9yIHRoZSBDUFUgbW9kdWxlLiBUaGlzIHNob3VsZCBiZSB0aGUKLXNhbWUgYXMgdGhlIHZhbHVlIHNlbGVjdGVkIGZvciBDRkdfTU9OSVRPUl9CQVNFIGluCitzYW1lIGFzIHRoZSB2YWx1ZSBzZWxlY3RlZCBmb3IgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgaW4KICJpbmNsdWRlL2NvbmZpZ19jb2dlbnRfKi5oIiAoaW4gZmFjdCwgSSBoYXZlIG1hZGUgdGhpcyBhdXRvbWF0aWMgdmlhCiB0aGUgLURURVhUX0JBU0U9Li4uIG9wdGlvbiBpbiBDUFBGTEFHUykuCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2NvZ2VudC9mbGFzaC5jIGIvYm9hcmQvY29nZW50L2ZsYXNoLmMKaW5kZXggOTQyZjMzYS4uZTZjODViNiAxMDA2NDQKLS0tIGEvYm9hcmQvY29nZW50L2ZsYXNoLmMKKysrIGIvYm9hcmQvY29nZW50L2ZsYXNoLmMKQEAgLTI0LDExICsyNCwxMSBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGJvYXJkL2NvZ2VudC9mbGFzaC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTEyMSw3ICsxMjEsNyBAQAogCQlmaXAtPnNpemUgKz0gQzMwMkZfQk5LX1NJWkU7CiAJCW9zYyA9IGZpcC0+c2VjdG9yX2NvdW50OwogCQlmaXAtPnNlY3Rvcl9jb3VudCArPSBDMzAyRl9CTktfTkJMT0NLUzsKLQkJaWYgKChuc2MgPSBmaXAtPnNlY3Rvcl9jb3VudCkgPj0gQ0ZHX01BWF9GTEFTSF9TRUNUKQorCQlpZiAoKG5zYyA9IGZpcC0+c2VjdG9yX2NvdW50KSA+PSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKQogCQkJcGFuaWMoIlRvbyBtYW55IHNlY3RvcnMgaW4gZmxhc2ggYXQgYWRkcmVzcyAweCUwOGx4XG4iLAogCQkJCSh1bnNpZ25lZCBsb25nKWJhc2UpOwogCkBAIC0yNjQsNyArMjY0LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWRvIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dmFsID0gMTsKIAkJCWdvdG8gZG9uZTsKIAkJfQpAQCAtMjk1LDcgKzI5NSw3IEBACiAJZmxhc2hfaW5mb190ICpmaXA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTMwMyw3ICszMDMsNyBAQAogCXRvdGFsID0gMEw7CiAKICNpZiBkZWZpbmVkKENPTkZJR19DTUEzMDIpCi0JYzMwMmZfcHJvYmUoZmlwLCAoYzMwMmZfYWRkcl90KUNGR19GTEFTSF9CQVNFKTsKKwljMzAyZl9wcm9iZShmaXAsIChjMzAyZl9hZGRyX3QpQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAl0b3RhbCArPSBmaXAtPnNpemU7CiAJZmlwKys7CiAjZW5kaWYKQEAgLTMyMCwxMCArMzIwLDEwIEBACiAJICogcHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID09IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPT0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNDcyLDcgKzQ3Miw3IEBACiAJCQlkbyB7CiAJCQkJbm93ID0gZ2V0X3RpbWVyKHN0YXJ0KTsKIAotCQkJCWlmIChub3cgLSBlc3RhcnQgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChub3cgLSBlc3RhcnQgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dCAoc2VjdCAlZClcbiIsIHNlY3QpOwogCQkJCQloYWRlcnIgPSAxOwogCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2JvYXJkL2NvZ2VudC9sY2QuYyBiL2JvYXJkL2NvZ2VudC9sY2QuYwppbmRleCA4MTRiNGM4Li43NmY1YWQxIDEwMDY0NAotLS0gYS9ib2FyZC9jb2dlbnQvbGNkLmMKKysrIGIvYm9hcmQvY29nZW50L2xjZC5jCkBAIC0xOTcsNyArMTk3LDcgQEAKIGxjZF9wcmludGYoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAgICAgdmFfbGlzdCBhcmdzOwotICAgIGNoYXIgYnVmW0NGR19QQlNJWkVdOworICAgIGNoYXIgYnVmW0NPTkZJR19TWVNfUEJTSVpFXTsKIAogICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7CiAgICAgKHZvaWQpdnNwcmludGYoYnVmLCBmbXQsIGFyZ3MpOwpAQCAtMjM0LDcgKzIzNCw3IEBACiB2b2lkIGJvYXJkX3Nob3dfYWN0aXZpdHkgKHVsb25nIHRpbWVzdGFtcCkKIHsKICNpZmRlZiBDT05GSUdfU1RBVFVTX0xFRAotCWlmICgodGltZXN0YW1wICUgKENGR19IWiAvIDIpID09IDApCisJaWYgKCh0aW1lc3RhbXAgJSAoQ09ORklHX1NZU19IWiAvIDIpID09IDApCiAJCWxjZF9oZWFydGJlYXQgKCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2NvZ2VudC9tYi5oIGIvYm9hcmQvY29nZW50L21iLmgKaW5kZXggZjZlYWYwYS4uYjNhYmE0OCAxMDA2NDQKLS0tIGEvYm9hcmQvY29nZW50L21iLmgKKysrIGIvYm9hcmQvY29nZW50L21iLmgKQEAgLTY5LDUxICs2OSw1MSBAQAogICogMHhBMDAwMDAwLTB4REZGRkZGRi4KICAqLwogCi0jZGVmaW5lIENNQV9NQl9SQU1fQkFTRQkJKENGR19DTUFfTUJfQkFTRSsweDAwMDAwMDApCisjZGVmaW5lIENNQV9NQl9SQU1fQkFTRQkJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHgwMDAwMDAwKQogI2RlZmluZSBDTUFfTUJfUkFNX1NJWkUJCTB4MjAwMDAwMAkvKiBkaXAgc3dzIHNldCBhY3R1YWwgc2l6ZSAqLwogCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9TTE9UMSkKLSNkZWZpbmUgQ01BX01CX1NMT1QxX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweDIwMDAwMDApCisjZGVmaW5lIENNQV9NQl9TTE9UMV9CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4MjAwMDAwMCkKICNkZWZpbmUgQ01BX01CX1NMT1QxX1NJWkUJMHgyMDAwMDAwCiAjZW5kaWYKIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfU0xPVDIpCi0jZGVmaW5lIENNQV9NQl9TTE9UMl9CQVNFCShDRkdfQ01BX01CX0JBU0UrMHg0MDAwMDAwKQorI2RlZmluZSBDTUFfTUJfU0xPVDJfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweDQwMDAwMDApCiAjZGVmaW5lIENNQV9NQl9TTE9UMl9TSVpFCTB4MjAwMDAwMAogI2VuZGlmCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9QQ0kpCi0jZGVmaW5lIENNQV9NQl9TVERQQ0lfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4NDAwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1NURFBDSV9CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4NDAwMDAwMCkKICNkZWZpbmUgQ01BX01CX1NURFBDSV9TSVpFCTB4MWZmMDAwMAotI2RlZmluZSBDTUFfTUJfVjM2MEVQQ19CQVNFCShDRkdfQ01BX01CX0JBU0UrMHg1ZmYwMDAwKQorI2RlZmluZSBDTUFfTUJfVjM2MEVQQ19CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4NWZmMDAwMCkKICNkZWZpbmUgQ01BX01CX1YzNjBFUENfU0laRQkweDEwMDAwCiAjZW5kaWYKIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfU0xPVDMpCi0jZGVmaW5lIENNQV9NQl9TTE9UM19CQVNFCShDRkdfQ01BX01CX0JBU0UrMHg2MDAwMDAwKQorI2RlZmluZSBDTUFfTUJfU0xPVDNfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweDYwMDAwMDApCiAjZGVmaW5lIENNQV9NQl9TTE9UM19TSVpFCTB4MjAwMDAwMAogI2VuZGlmCiAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX1BDSV9FWFQpCi0jZGVmaW5lIENNQV9NQl9FWFRQQ0lfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4YTAwMDAwMCkKKyNkZWZpbmUgQ01BX01CX0VYVFBDSV9CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4YTAwMDAwMCkKICNkZWZpbmUgQ01BX01CX0VYVFBDSV9TSVpFCTB4NDAwMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ01BX01CX1JPTUxPV19CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhlMDAwMDAwKQorI2RlZmluZSBDTUFfTUJfUk9NTE9XX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhlMDAwMDAwKQogI2RlZmluZSBDTUFfTUJfUk9NTE9XX1NJWkUJMHg4MDAwMDAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX0ZMQVNIKQotI2RlZmluZSBDTUFfTUJfRkxMT1dfRVhFQ19CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhlMDAwMDAwKQorI2RlZmluZSBDTUFfTUJfRkxMT1dfRVhFQ19CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZTAwMDAwMCkKICNkZWZpbmUgQ01BX01CX0ZMTE9XX0VYRUNfU0laRQkweDEwMDAwMAotI2RlZmluZSBDTUFfTUJfRkxMT1dfUkRXUl9CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhlNDAwMDAwKQorI2RlZmluZSBDTUFfTUJfRkxMT1dfUkRXUl9CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZTQwMDAwMCkKICNkZWZpbmUgQ01BX01CX0ZMTE9XX1JEV1JfU0laRQkweDQwMDAwMAogI2VuZGlmCiAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX1JUQykKLSNkZWZpbmUgQ01BX01CX1JUQ19CQVNFCQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZTgwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1JUQ19CQVNFCQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGU4MDAwMDApCiAjZGVmaW5lIENNQV9NQl9SVENfU0laRQkJMHg0MDAwCiAjZW5kaWYKIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfU0VSUEFSKQotI2RlZmluZSBDTUFfTUJfU0VSUEFSX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweGU5MDAwMDApCisjZGVmaW5lIENNQV9NQl9TRVJQQVJfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGU5MDAwMDApCiAjZGVmaW5lICAgQ01BX01CX1NFUklBTEJfQkFTRQkgIChDTUFfTUJfU0VSUEFSX0JBU0UrMHgwMCkKICNkZWZpbmUgICBDTUFfTUJfU0VSSUFMQV9CQVNFCSAgKENNQV9NQl9TRVJQQVJfQkFTRSsweDQwKQogI2RlZmluZSAgIENNQV9NQl9QQVJBTExFTF9CQVNFCSAgKENNQV9NQl9TRVJQQVJfQkFTRSsweDgwKQpAQCAtMTIxLDIwICsxMjEsMjAgQEAKICNlbmRpZgogCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9LQk0pCi0jZGVmaW5lIENNQV9NQl9QS0JNX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweGU5MDAxMDApCisjZGVmaW5lIENNQV9NQl9QS0JNX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhlOTAwMTAwKQogI2RlZmluZSBDTUFfTUJfUEtCTV9TSVpFCTB4MTAKICNlbmRpZgogCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9MQ0QpCi0jZGVmaW5lIENNQV9NQl9MQ0RfQkFTRQkJKENGR19DTUFfTUJfQkFTRSsweGViMDAwMDApCisjZGVmaW5lIENNQV9NQl9MQ0RfQkFTRQkJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhlYjAwMDAwKQogI2RlZmluZSBDTUFfTUJfTENEX1NJWkUJCTB4MTAKICNlbmRpZgogCi0jZGVmaW5lIENNQV9NQl9ESVBTV19CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhlYzAwMDAwKQorI2RlZmluZSBDTUFfTUJfRElQU1dfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGVjMDAwMDApCiAjZGVmaW5lIENNQV9NQl9ESVBTV19TSVpFCTB4MTAKIAogI2lmIChDTUFfTUJfQ0FQUyAmIChDTUFfTUJfQ0FQX1NMT1QxfENNQV9NQl9DQVBfU0VSMnxDTUFfTUJfQ0FQX0tCTSkpCi0jZGVmaW5lIENNQV9NQl9TTE9UMUNGR19CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhmMTAwMDAwKQorI2RlZmluZSBDTUFfTUJfU0xPVDFDRkdfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGYxMDAwMDApCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9TRVIyKQogI2RlZmluZSAgIENNQV9NQl9TRVIyX0JBU0UJICAoQ01BX01CX1NMT1QxQ0ZHX0JBU0UrMHg4MCkKICNkZWZpbmUgICAgIENNQV9NQl9TRVIyQl9CQVNFCSAgICAoQ01BX01CX1NFUjJfQkFTRSsweDAwKQpAQCAtMTUyLDcgKzE1Miw3IEBACiAjZW5kaWYKIAogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfU0xPVDIpCi0jZGVmaW5lIENNQV9NQl9TTE9UMkNGR19CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhmMjAwMDAwKQorI2RlZmluZSBDTUFfTUJfU0xPVDJDRkdfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGYyMDAwMDApCiAjaWYgZGVmaW5lZChDT05GSUdfQ01BMzAyKSAmJiBkZWZpbmVkKENPTkZJR19DTUEzMDJfU0xPVDIpCiAjZGVmaW5lICAgQ01BX01CX1MyS0JNX0JBU0UJICAoQ01BX01CX1NMT1QyQ0ZHX0JBU0UrMHgyMDApCiAjZW5kaWYKQEAgLTE2MCw3ICsxNjAsNyBAQAogI2VuZGlmCiAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX1BDSSkKLSNkZWZpbmUgQ01BX01CX1BDSUNUTF9CQVNFCShDRkdfQ01BX01CX0JBU0UrMHhmMjAwMDAwKQorI2RlZmluZSBDTUFfTUJfUENJQ1RMX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhmMjAwMDAwKQogI2RlZmluZSAgIENNQV9NQl9QQ0lfVjNDVExfQkFTRQkgIChDTUFfTUJfUENJQ1RMX0JBU0UrMHgxMDApCiAjZGVmaW5lICAgQ01BX01CX1BDSV9JRFNFTF9CQVNFCSAgKENNQV9NQl9QQ0lDVExfQkFTRSsweDIwMCkKICNkZWZpbmUgICBDTUFfTUJfUENJX0lNQVNLX0JBU0UJICAoQ01BX01CX1BDSUNUTF9CQVNFKzB4MzAwKQpAQCAtMTcxLDE5ICsxNzEsMTkgQEAKICNlbmRpZgogCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9TTE9UMykKLSNkZWZpbmUgQ01BX01CX1NMT1QzQ0ZHX0JBU0UJKENGR19DTUFfTUJfQkFTRSsweGYzMDAwMDApCisjZGVmaW5lIENNQV9NQl9TTE9UM0NGR19CQVNFCShDT05GSUdfU1lTX0NNQV9NQl9CQVNFKzB4ZjMwMDAwMCkKICNpZiBkZWZpbmVkKENPTkZJR19DTUEzMDIpICYmIGRlZmluZWQoQ09ORklHX0NNQTMwMl9TTE9UMykKICNkZWZpbmUgICBDTUFfTUJfUzNLQk1fQkFTRQkgIChDTUFfTUJfU0xPVDNDRkdfQkFTRSsweDIwMCkKICNlbmRpZgogI2RlZmluZSBDTUFfTUJfU0xPVDNDRkdfU0laRQkweDQwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ01BX01CX1JPTUhJR0hfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZjgwMDAwMCkKKyNkZWZpbmUgQ01BX01CX1JPTUhJR0hfQkFTRQkoQ09ORklHX1NZU19DTUFfTUJfQkFTRSsweGY4MDAwMDApCiAjZGVmaW5lIENNQV9NQl9ST01ISUdIX1NJWkUJMHg4MDAwMDAKICNpZiAoQ01BX01CX0NBUFMgJiBDTUFfTUJfQ0FQX0ZMQVNIKQotI2RlZmluZSBDTUFfTUJfRkxISUdIX0VYRUNfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZjgwMDAwMCkKKyNkZWZpbmUgQ01BX01CX0ZMSElHSF9FWEVDX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhmODAwMDAwKQogI2RlZmluZSBDTUFfTUJfRkxISUdIX0VYRUNfU0laRQkweDEwMDAwMAotI2RlZmluZSBDTUFfTUJfRkxISUdIX1JEV1JfQkFTRQkoQ0ZHX0NNQV9NQl9CQVNFKzB4ZmMwMDAwMCkKKyNkZWZpbmUgQ01BX01CX0ZMSElHSF9SRFdSX0JBU0UJKENPTkZJR19TWVNfQ01BX01CX0JBU0UrMHhmYzAwMDAwKQogI2RlZmluZSBDTUFfTUJfRkxISUdIX1JEV1JfU0laRQkweDQwMDAwMAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2NwYzQ1L2NwYzQ1LmMgYi9ib2FyZC9jcGM0NS9jcGM0NS5jCmluZGV4IDE2ZWFkNzUuLjExNzg4MjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NwYzQ1L2NwYzQ1LmMKKysrIGIvYm9hcmQvY3BjNDUvY3BjNDUuYwpAQCAtNzIsNyArNzIsNyBAQAogCXVpbnQ4X3QgbWJlciA9IDA7CiAJdW5zaWduZWQgaW50IHRtcDsKIAotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAlpZiAoaTJjX3JlZ19yZWFkICgweDUwLCAyKSAhPSAweDA0KQogCQlyZXR1cm4gMDsJLyogTWVtb3J5IHR5cGUgKi8KQEAgLTg5LDcgKzg5LDcgQEAKIAlDT05GSUdfUkVBRF9XT1JEKE1DQ1IyLCBtY2NyMik7CiAJbWNjcjIgJj0gMHhmZmZmMDAwMDsKIAotCXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7CisJc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJZW5kID0gc3RhcnQgKyAoMSA8PCAoY29sICsgcm93ICsgMykgKSAqIGJhbmsgLSAxOwogCiAJZm9yIChpID0gMDsgaSA8IG07IGkrKykgewpAQCAtMjQzLDggKzI0Myw4IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfUENNQ0lBKQogCi0jaWZkZWYgQ0ZHX1BDTUNJQV9NRU1fQUREUgotdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqcGNtY2lhX21lbSA9ICh1bnNpZ25lZCBjaGFyKilDRkdfUENNQ0lBX01FTV9BRERSOworI2lmZGVmIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCit2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwY21jaWFfbWVtID0gKHVuc2lnbmVkIGNoYXIqKUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOwogI2VuZGlmCiAKIGludCBwY21jaWFfaW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvY3BjNDUvZmxhc2guYyBiL2JvYXJkL2NwYzQ1L2ZsYXNoLmMKaW5kZXggMzgyNmE1NC4uOGZlNzU4NCAxMDA2NDQKLS0tIGEvYm9hcmQvY3BjNDUvZmxhc2guYworKysgYi9ib2FyZC9jcGM0NS9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC00MSw3ICs0MSw3IEBACiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDQwMDAwCiAjZGVmaW5lIFBBUkFNX1NFQ1RfU0laRSAweDgwMDAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHN0YXRpYyBpbnQgd3JpdGVfZGF0YSAoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgKiBkYXRhKTsKIHN0YXRpYyB2b2lkIHdyaXRlX3ZpYV9mcHUgKHZ1X2xvbmcgKiBhZGRyLCB1bG9uZyAqIGRhdGEpOwpAQCAtODEsOCArODEsOCBAQAogCiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmNcbiBlaWVpbyIpOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewotCQl2dV9sb25nICphZGRyID0gKHZ1X2xvbmcgKikgKENGR19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSk7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwkJdnVfbG9uZyAqYWRkciA9ICh2dV9sb25nICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFKTsKIAogCQlhZGRyWzBdID0gMHgwMDkwMDA5MDsKIApAQCAtMTI0LDE3ICsxMjQsMTcgQEAKIAkJYWRkclswXSA9IDB4RkZGRkZGRkY7CiAKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlmb3IgKGogPSAwOyBqIDwgZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQ7IGorKykgewogCQkJaWYgKGogPiAzMCkgewotCQkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDRkdfRkxBU0hfQkFTRSArCisJCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArCiAJCQkJCWkgKiBGTEFTSF9CQU5LX1NJWkUgKwogCQkJCQkoTUFJTl9TRUNUX1NJWkUgKiAzMSkgKyAoaiAtCiAJCQkJCQkJCSAzMSkgKgogCQkJCQlQQVJBTV9TRUNUX1NJWkU7CiAJCQl9IGVsc2UgewotCQkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDRkdfRkxBU0hfQkFTRSArCisJCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArCiAJCQkJCWkgKiBGTEFTSF9CQU5LX1NJWkUgKwogCQkJCQlqICogTUFJTl9TRUNUX1NJWkU7CiAJCQl9CkBAIC0xNjIsMjAgKzE2MiwyMCBAQAogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1sxXSk7CiAjZWxzZQogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkgJiYgZGVmaW5lZChDT05GSUdfRU5WX0FERFIpCi0jaWYgQ09ORklHX0VOVl9BRERSID49IENGR19GTEFTSF9CQVNFICsgRkxBU0hfQkFOS19TSVpFCisjaWYgQ09ORklHX0VOVl9BRERSID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCSAgICAgICBDT05GSUdfRU5WX0FERFIsCiAJCSAgICAgICBDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NJWkUgLSAxLCAmZmxhc2hfaW5mb1sxXSk7CkBAIC0zMDksNyArMzA5LDcgQEAKIAkJCXdoaWxlICgoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB8fAogCQkJICAgICAgICgoYWRkclsxXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApKSB7CiAJCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCWFkZHJbMF0gPSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICovCiAJCQkJCWFkZHJbMF0gPSAweDAwRkYwMEZGOwkvKiB0byByZWFkIG1vZGUgICovCkBAIC00ODYsNyArNDg2LDcgQEAKIAogCXdoaWxlICgoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB8fAogCSAgICAgICAoKGFkZHJbMV0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCWFkZHJbMF0gPSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvY3BjNDUvcGQ2NzI5MC5jIGIvYm9hcmQvY3BjNDUvcGQ2NzI5MC5jCmluZGV4IGQ4ZjRiZTUuLjEyYzljNzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NwYzQ1L3BkNjcyOTAuYworKysgYi9ib2FyZC9jcGM0NS9wZDY3MjkwLmMKQEAgLTY5OSwxNiArNjk5LDE2IEBACiAJbWVtLm1hcCA9IDA7CiAJbWVtLmZsYWdzID0gTUFQX0FUVFJJQiB8IE1BUF9BQ1RJVkU7CiAJbWVtLnNwZWVkID0gMzAwOwotCW1lbS5zeXNfc3RhcnQgPSBDRkdfUENNQ0lBX01FTV9BRERSOwotCW1lbS5zeXNfc3RvcCA9IENGR19QQ01DSUFfTUVNX0FERFIgKyBDRkdfUENNQ0lBX01FTV9TSVpFIC0gMTsKKwltZW0uc3lzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFI7CisJbWVtLnN5c19zdG9wID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgKyBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSAtIDE7CiAJbWVtLmNhcmRfc3RhcnQgPSAwOwogCWkzNjVfc2V0X21lbV9tYXAgKCZzb2NrZXQsICZtZW0pOwogCiAJbWVtLm1hcCA9IDE7CiAJbWVtLmZsYWdzID0gTUFQX0FDVElWRTsKIAltZW0uc3BlZWQgPSAzMDA7Ci0JbWVtLnN5c19zdGFydCA9IENGR19QQ01DSUFfTUVNX0FERFIgKyBDRkdfUENNQ0lBX01FTV9TSVpFOwotCW1lbS5zeXNfc3RvcCA9IENGR19QQ01DSUFfTUVNX0FERFIgKyAoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUpIC0gMTsKKwltZW0uc3lzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgKyBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRTsKKwltZW0uc3lzX3N0b3AgPSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUiArICgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUpIC0gMTsKIAltZW0uY2FyZF9zdGFydCA9IDA7CiAJaTM2NV9zZXRfbWVtX21hcCAoJnNvY2tldCwgJm1lbSk7CiAKQEAgLTc5NCw4ICs3OTQsOCBAQAogewogCXVfaW50IHRtcFsyXTsKIAl1X2ludCAqbWVtID0gKHZvaWQgKikgc29ja2V0LmNiX3BoeXM7Ci0JdV9jaGFyICpjaXMgPSAodm9pZCAqKSBDRkdfUENNQ0lBX01FTV9BRERSOwotCXVfY2hhciAqaWRlID0gKHZvaWQgKikgKENGR19BVEFfQkFTRV9BRERSICsgQ0ZHX0FUQV9SRUdfT0ZGU0VUKTsKKwl1X2NoYXIgKmNpcyA9ICh2b2lkICopIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOworCXVfY2hhciAqaWRlID0gKHZvaWQgKikgKENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiArIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQpOwogCiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXYsIDB4MDAsIHRtcCArIDApOwogCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoZGV2LCAweDgwLCB0bXAgKyAxKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2NwdTg2L2NvbmZpZy5tayBiL2JvYXJkL2NwdTg2L2NvbmZpZy5tawppbmRleCAwMDM1NGM0Li41ZmUwY2EwIDEwMDY0NAotLS0gYS9ib2FyZC9jcHU4Ni9jb25maWcubWsKKysrIGIvYm9hcmQvY3B1ODYvY29uZmlnLm1rCkBAIC0yNSw3ICsyNSw3IEBACiAjIENQVTg2IGJvYXJkcwogIwogCi0jIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDRkdfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX0NQVTg2LmgKKyMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENPTkZJR19TWVNfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX0NQVTg2LmgKICMgZm9yIHRoZSAiZmluYWwiIGNvbmZpZ3VyYXRpb24sIHdpdGggVS1Cb290IGluIGZsYXNoLCBvciB0aGUgYWRkcmVzcwogIyBpbiBSQU0gd2hlcmUgVS1Cb290IGlzIGxvYWRlZCBhdCBmb3IgZGVidWdnaW5nLgogIwpkaWZmIC0tZ2l0IGEvYm9hcmQvY3B1ODYvY3B1ODYuYyBiL2JvYXJkL2NwdTg2L2NwdTg2LmMKaW5kZXggMjNlYzI4My4uYmM3ZWJmZSAxMDA2NDQKLS0tIGEvYm9hcmQvY3B1ODYvY3B1ODYuYworKysgYi9ib2FyZC9jcHU4Ni9jcHU4Ni5jCkBAIC0yMjUsNyArMjI1LDcgQEAKIAkgKi8KIAltYXhzaXplID0gKDEgKyAofm9yeCB8IDB4N2ZmZikpIC8gMjsKIAotCS8qIFNpbmNlIENGR19TRFJBTV9CQVNFIGlzIGFsd2F5cyAwICg/PyksIHdlIGFzc3VtZSB0aGF0CisJLyogU2luY2UgQ09ORklHX1NZU19TRFJBTV9CQVNFIGlzIGFsd2F5cyAwICg/PyksIHdlIGFzc3VtZSB0aGF0CiAJICogd2UgYXJlIGNvbmZpZ3VyaW5nIENTMSBpZiBiYXNlICE9IDAKIAkgKi8KIAlzZG1yX3B0ciA9ICZtZW1jdGwtPm1lbWNfcHNkbXI7CkBAIC0yNTAsNyArMjUwLDcgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC0yNjEsNyArMjYxLDcgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CkBAIC0yNzUsMzcgKzI3NSwzNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHNpemU4LCBzaXplOTsKICNlbmRpZgogCWxvbmcgcHNpemU7CiAKIAlwc2l6ZSA9IDMyICogMTAyNCAqIDEwMjQ7CiAKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7Ci0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCS8qIDYweCBTRFJBTSBzZXR1cDoKIAkgKi8KLQlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCi0JCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7Ci0Jc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOUNPTCwgQ0ZHX09SMl85Q09MLAotCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMl84Q09MLAorCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKKwlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOUNPTCwgQ09ORklHX1NZU19PUjJfOUNPTCwKKwkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlwc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCIoNjB4OjlDT0wpICIpOwogCX0gZWxzZSB7Ci0JCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKLQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMl84Q09MLAorCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJCXByaW50ZiAoIig2MHg6OENPTCkgIik7CiAJfQogCi0jZW5kaWYJLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCWljYWNoZV9lbmFibGUgKCk7CiAKQEAgLTMxNSw2ICszMTUsNiBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ET0MpCiB2b2lkIGRvY19pbml0ICh2b2lkKQogewotCWRvY19wcm9iZSAoQ0ZHX0RPQ19CQVNFKTsKKwlkb2NfcHJvYmUgKENPTkZJR19TWVNfRE9DX0JBU0UpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9jcHU4Ni9jcHU4Ni5oIGIvYm9hcmQvY3B1ODYvY3B1ODYuaAppbmRleCBjZjc4NTJjLi5jYTBjMzlmIDEwMDY0NAotLS0gYS9ib2FyZC9jcHU4Ni9jcHU4Ni5oCisrKyBiL2JvYXJkL2NwdTg2L2NwdTg2LmgKQEAgLTYsMTkgKzYsMTkgQEAKICNkZWZpbmUgUkVHOCh4KQkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoeCkpCiAKIC8qIENQVTg2IHJlZ2lzdGVyIGRlZmluaXRpb25zICovCi0jZGVmaW5lIENQVTg2X1ZNRV9FQUMJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDApCi0jZGVmaW5lIENQVTg2X1ZNRV9TQUMJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDEpCi0jZGVmaW5lIENQVTg2X1ZNRV9NQUMJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDIpCi0jZGVmaW5lIENQVTg2X0JDUgkJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwMykKLSNkZWZpbmUgQ1BVODZfQlNSCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDA0KQotI2RlZmluZSBDUFU4Nl9XRE9HX1JQT1JUCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDUpCi0jZGVmaW5lIENQVTg2X01CT1hfSVJRCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDA0KQotI2RlZmluZSBDUFU4Nl9SRVYJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDcpCi0jZGVmaW5lIENQVTg2X1ZNRV9JUlFNQVNLCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4ODApCi0jZGVmaW5lIENQVTg2X1ZNRV9JUlFTVEFUVVMJUkVHOChDRkdfQkNSU19CQVNFICsgMHg4MSkKLSNkZWZpbmUgQ1BVODZfTE9DQUxfSVJRTUFTSwlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDgyKQotI2RlZmluZSBDUFU4Nl9MT0NBTF9JUlFTVEFUVVMJUkVHOChDRkdfQkNSU19CQVNFICsgMHg4MykKLSNkZWZpbmUgQ1BVODZfUE1DTF9JUlFTVEFUVVMJUkVHOChDRkdfQkNSU19CQVNFICsgMHg4NCkKKyNkZWZpbmUgQ1BVODZfVk1FX0VBQwkJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDApCisjZGVmaW5lIENQVTg2X1ZNRV9TQUMJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDAxKQorI2RlZmluZSBDUFU4Nl9WTUVfTUFDCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwMikKKyNkZWZpbmUgQ1BVODZfQkNSCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwMykKKyNkZWZpbmUgQ1BVODZfQlNSCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwNCkKKyNkZWZpbmUgQ1BVODZfV0RPR19SUE9SVAlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwNSkKKyNkZWZpbmUgQ1BVODZfTUJPWF9JUlEJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDA0KQorI2RlZmluZSBDUFU4Nl9SRVYJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDA3KQorI2RlZmluZSBDUFU4Nl9WTUVfSVJRTUFTSwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4MCkKKyNkZWZpbmUgQ1BVODZfVk1FX0lSUVNUQVRVUwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4MSkKKyNkZWZpbmUgQ1BVODZfTE9DQUxfSVJRTUFTSwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4MikKKyNkZWZpbmUgQ1BVODZfTE9DQUxfSVJRU1RBVFVTCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDgzKQorI2RlZmluZSBDUFU4Nl9QTUNMX0lSUVNUQVRVUwlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHg4NCkKIAogLyogQm9hcmQgQ29udHJvbCBSZWdpc3RlciBiaXRzICovCiAjZGVmaW5lIENQVTg2X0JDUl9GV1BUCQkweDAxCmRpZmYgLS1naXQgYS9ib2FyZC9jcHU4Ni9mbGFzaC5jIGIvYm9hcmQvY3B1ODYvZmxhc2guYwppbmRleCA4NDVhM2IyLi44MTM1NzgwIDEwMDY0NAotLS0gYS9ib2FyZC9jcHU4Ni9mbGFzaC5jCisrKyBiL2JvYXJkL2NwdTg2L2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KICNpbmNsdWRlICJjcHU4Ni5oIgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCkBAIC0xNzcsNyArMTc3LDcgQEAKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24KIAkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC0xODYsOCArMTg2LDggQEAKIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAob25seSBvbmUgYmFuaykgKi8KIAotCXNpemVfYjAgPSBmbGFzaF9pbnRfZ2V0X3NpemUgKCh1bG9uZyAqKSBDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwotCXNpemVfYjEgPSBmbGFzaF9hbWRfZ2V0X3NpemUgKCh1Y2hhciAqKSBDRkdfQk9PVFJPTV9CQVNFLCAmZmxhc2hfaW5mb1sxXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2ludF9nZXRfc2l6ZSAoKHVsb25nICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjEgPSBmbGFzaF9hbWRfZ2V0X3NpemUgKCh1Y2hhciAqKSBDT05GSUdfU1lTX0JPT1RST01fQkFTRSwgJmZsYXNoX2luZm9bMV0pOwogCiAJaWYgKHNpemVfYjAgPiAwIHx8IHNpemVfYjEgPiAwKSB7CiAKQEAgLTIxMCwyMiArMjEwLDIyIEBACiAJLyogcHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19CT09UUk9NX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0JPT1RST01fQkFTRQogCWlmIChzaXplX2IxKSB7Ci0JCS8qIElmIFUtQm9vdCBpcyBib290ZWQgZnJvbSBST00gdGhlIENGR19NT05JVE9SX0JBU0UgPiBDRkdfRkxBU0hfQkFTRQorCQkvKiBJZiBVLUJvb3QgaXMgYm9vdGVkIGZyb20gUk9NIHRoZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkgKiBidXQgd2Ugc2hvdWxkbid0IHByb3RlY3QgaXQuCiAJCSAqLwogCiAJCWZsYXNoX3Byb3RlY3QgIChGTEFHX1BST1RFQ1RfU0VULAotCQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMV0KKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMV0KIAkJKTsKIAl9CiAjZWxzZQotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXQogCSk7CiAjZW5kaWYKICNlbmRpZgpAQCAtMjM0LDcgKzIzNCw3IEBACiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCiAjIGVuZGlmCi0jIGlmIENPTkZJR19FTlZfQUREUiA+PSBDRkdfQk9PVFJPTV9CQVNFCisjIGlmIENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX0JPT1RST01fQkFTRQogCWlmIChzaXplX2IxKSB7CiAJCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCQkJQ09ORklHX0VOVl9BRERSLApAQCAtMzgyLDcgKzM4Miw3IEBACiAJCWxhc3QgID0gc3RhcnQ7CiAJCWFkZHIgPSAodnVfY2hhciAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAkJd2hpbGUgKChhZGRyWzBdICYgMHg4MCkgIT0gMHg4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC00MzQsNyArNDM0LDcgQEAKIAkJCQlsYXN0ID0gc3RhcnQ7CiAJCQkJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCB8fAogCQkJCSAgIChhZGRyWzFdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCQlwcmludGYgKCJUaW1lb3V0IChlcmFzZSBzdXNwZW5kZWQhKVxuIik7CiAJCQkJCQkvKiBTdXNwZW5kIGVyYXNlCiAJCQkJCQkgKi8KQEAgLTU0OSw3ICs1NDksNyBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKmFkZHIgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJLyogU3VzcGVuZCBwcm9ncmFtCiAJCQkgKi8KIAkJCSphZGRyID0gMHgwMEIwMDBCMDsKQEAgLTYwNCw3ICs2MDQsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9jaGFyICopZGVzdCkgJiAweDgwKSAhPSAoZGF0YSAmIDB4ODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9jcHU4Ny9jb25maWcubWsgYi9ib2FyZC9jcHU4Ny9jb25maWcubWsKaW5kZXggNjM4NGM3OC4uNmE2OTRhNCAxMDA2NDQKLS0tIGEvYm9hcmQvY3B1ODcvY29uZmlnLm1rCisrKyBiL2JvYXJkL2NwdTg3L2NvbmZpZy5tawpAQCAtMjUsNyArMjUsNyBAQAogIyBDUFU4NyBib2FyZAogIwogCi0jIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDRkdfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlncy9jcHU4Ny5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ3MvY3B1ODcuaAogIyBmb3IgdGhlICJmaW5hbCIgY29uZmlndXJhdGlvbiwgd2l0aCBVLUJvb3QgaW4gZmxhc2gsIG9yIHRoZSBhZGRyZXNzCiAjIGluIFJBTSB3aGVyZSBVLUJvb3QgaXMgbG9hZGVkIGF0IGZvciBkZWJ1Z2dpbmcuCiAjCmRpZmYgLS1naXQgYS9ib2FyZC9jcHU4Ny9jcHU4Ny5jIGIvYm9hcmQvY3B1ODcvY3B1ODcuYwppbmRleCBjN2E5NmY5Li4wNTdhMzRjIDEwMDY0NAotLS0gYS9ib2FyZC9jcHU4Ny9jcHU4Ny5jCisrKyBiL2JvYXJkL2NwdTg3L2NwdTg3LmMKQEAgLTIyNyw3ICsyMjcsNyBAQAogCSAqLwogCW1heHNpemUgPSAoMSArICh+b3J4IHwgMHg3ZmZmKSkgLyAyOwogCi0JLyogU2luY2UgQ0ZHX1NEUkFNX0JBU0UgaXMgYWx3YXlzIDAgKD8/KSwgd2UgYXNzdW1lIHRoYXQKKwkvKiBTaW5jZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgaXMgYWx3YXlzIDAgKD8/KSwgd2UgYXNzdW1lIHRoYXQKIAkgKiB3ZSBhcmUgY29uZmlndXJpbmcgQ1MxIGlmIGJhc2UgIT0gMAogCSAqLwogCXNkbXJfcHRyID0gJm1lbWN0bC0+bWVtY19wc2RtcjsKQEAgLTI1Miw3ICsyNTIsNyBAQAogCSAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAJICoKIAkgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLQkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKwkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAJICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfUFJFQTsKQEAgLTI2Myw3ICsyNjMsNyBAQAogCQkqYmFzZSA9IGM7CiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTVJXOwotCSooYmFzZSArIENGR19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KKwkqKGJhc2UgKyBDT05GSUdfU1lTX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpiYXNlID0gYzsKQEAgLTI3Nyw0NSArMjc3LDQ1IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgc2l6ZTgsIHNpemU5LCBzaXplMTA7CiAjZW5kaWYKIAlsb25nIHBzaXplOwogCiAJcHNpemUgPSAzMiAqIDEwMjQgKiAxMDI0OwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOwotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiA2MHggU0RSQU0gc2V0dXA6CiAJICovCi0Jc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMl84Q09MLAotCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMl84Q09MLAorCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAotCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzlDT0wsIENGR19PUjJfOUNPTCwKLQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOUNPTCwgQ09ORklHX1NZU19PUjJfOUNPTCwKKwkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAKLQlzaXplMTAgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfMTBDT0wsIENGR19PUjJfMTBDT0wsCi0JCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJc2l6ZTEwID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl8xMENPTCwgQ09ORklHX1NZU19PUjJfMTBDT0wsCisJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCiAJcHNpemUgPSBtYXgoc2l6ZTgsbWF4KHNpemU5LHNpemUxMCkpOwogCiAJaWYgKHBzaXplID09IHNpemU4KSB7Ci0JCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKLQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMl84Q09MLAorCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJCXByaW50ZiAoIig2MHg6OENPTCkgIik7CiAJfSBlbHNlIGlmIChwc2l6ZSA9PSBzaXplOSl7Ci0JCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzlDT0wsIENGR19PUjJfOUNPTCwKLQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl85Q09MLCBDT05GSUdfU1lTX09SMl85Q09MLAorCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJCXByaW50ZiAoIig2MHg6OUNPTCkgIik7CiAJfSBlbHNlCiAJCXByaW50ZiAoIig2MHg6MTBDT0wpICIpOwogCi0jZW5kaWYJLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCWljYWNoZV9lbmFibGUgKCk7CiAKQEAgLTMyNSw3ICszMjUsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ET0MpCiB2b2lkIGRvY19pbml0ICh2b2lkKQogewotCWRvY19wcm9iZSAoQ0ZHX0RPQ19CQVNFKTsKKwlkb2NfcHJvYmUgKENPTkZJR19TWVNfRE9DX0JBU0UpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2NwdTg3L2NwdTg3LmggYi9ib2FyZC9jcHU4Ny9jcHU4Ny5oCmluZGV4IDVkYmQ0YWUuLjQ1Y2I4NTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NwdTg3L2NwdTg3LmgKKysrIGIvYm9hcmQvY3B1ODcvY3B1ODcuaApAQCAtNiwxOSArNiwxOSBAQAogI2RlZmluZSBSRUc4KHgpCQkJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKSh4KSkKIAogLyogQ1BVODYgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgQ1BVODZfVk1FX0VBQwkJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwMCkKLSNkZWZpbmUgQ1BVODZfVk1FX1NBQwkJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwMSkKLSNkZWZpbmUgQ1BVODZfVk1FX01BQwkJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwMikKLSNkZWZpbmUgQ1BVODZfQkNSCQlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDAzKQotI2RlZmluZSBDUFU4Nl9CU1IJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDQpCi0jZGVmaW5lIENQVTg2X1dET0dfUlBPUlQJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwNSkKLSNkZWZpbmUgQ1BVODZfTUJPWF9JUlEJCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4MDQpCi0jZGVmaW5lIENQVTg2X1JFVgkJUkVHOChDRkdfQkNSU19CQVNFICsgMHgwNykKLSNkZWZpbmUgQ1BVODZfVk1FX0lSUU1BU0sJUkVHOChDRkdfQkNSU19CQVNFICsgMHg4MCkKLSNkZWZpbmUgQ1BVODZfVk1FX0lSUVNUQVRVUwlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDgxKQotI2RlZmluZSBDUFU4Nl9MT0NBTF9JUlFNQVNLCVJFRzgoQ0ZHX0JDUlNfQkFTRSArIDB4ODIpCi0jZGVmaW5lIENQVTg2X0xPQ0FMX0lSUVNUQVRVUwlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDgzKQotI2RlZmluZSBDUFU4Nl9QTUNMX0lSUVNUQVRVUwlSRUc4KENGR19CQ1JTX0JBU0UgKyAweDg0KQorI2RlZmluZSBDUFU4Nl9WTUVfRUFDCQlSRUc4KENPTkZJR19TWVNfQkNSU19CQVNFICsgMHgwMCkKKyNkZWZpbmUgQ1BVODZfVk1FX1NBQwkJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDEpCisjZGVmaW5lIENQVTg2X1ZNRV9NQUMJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDAyKQorI2RlZmluZSBDUFU4Nl9CQ1IJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDAzKQorI2RlZmluZSBDUFU4Nl9CU1IJCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDA0KQorI2RlZmluZSBDUFU4Nl9XRE9HX1JQT1JUCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDA1KQorI2RlZmluZSBDUFU4Nl9NQk9YX0lSUQkJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDQpCisjZGVmaW5lIENQVTg2X1JFVgkJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4MDcpCisjZGVmaW5lIENQVTg2X1ZNRV9JUlFNQVNLCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDgwKQorI2RlZmluZSBDUFU4Nl9WTUVfSVJRU1RBVFVTCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDgxKQorI2RlZmluZSBDUFU4Nl9MT0NBTF9JUlFNQVNLCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDgyKQorI2RlZmluZSBDUFU4Nl9MT0NBTF9JUlFTVEFUVVMJUkVHOChDT05GSUdfU1lTX0JDUlNfQkFTRSArIDB4ODMpCisjZGVmaW5lIENQVTg2X1BNQ0xfSVJRU1RBVFVTCVJFRzgoQ09ORklHX1NZU19CQ1JTX0JBU0UgKyAweDg0KQogCiAvKiBCb2FyZCBDb250cm9sIFJlZ2lzdGVyIGJpdHMgKi8KICNkZWZpbmUgQ1BVODZfQkNSX0ZXUFQJCTB4MDEKZGlmZiAtLWdpdCBhL2JvYXJkL2NwdTg3L2ZsYXNoLmMgYi9ib2FyZC9jcHU4Ny9mbGFzaC5jCmluZGV4IGY3ZTEyMWYuLmMzNTc1N2IgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NwdTg3L2ZsYXNoLmMKKysrIGIvYm9hcmQvY3B1ODcvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogI2luY2x1ZGUgImNwdTg3LmgiCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTE4Myw3ICsxODMsNyBAQAogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93bgogCSAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTE5Miw4ICsxOTIsOCBAQAogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIChvbmx5IG9uZSBiYW5rKSAqLwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2ludF9nZXRfc2l6ZSAoKHVsb25nICopIENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7Ci0Jc2l6ZV9iMSA9IGZsYXNoX2FtZF9nZXRfc2l6ZSAoKHVjaGFyICopIENGR19CT09UUk9NX0JBU0UsICZmbGFzaF9pbmZvWzFdKTsKKwlzaXplX2IwID0gZmxhc2hfaW50X2dldF9zaXplICgodWxvbmcgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMSA9IGZsYXNoX2FtZF9nZXRfc2l6ZSAoKHVjaGFyICopIENPTkZJR19TWVNfQk9PVFJPTV9CQVNFLCAmZmxhc2hfaW5mb1sxXSk7CiAKIAlpZiAoc2l6ZV9iMCA+IDAgfHwgc2l6ZV9iMSA+IDApIHsKIApAQCAtMjE2LDIyICsyMTYsMjIgQEAKIAkvKiBwcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0JPT1RST01fQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfQk9PVFJPTV9CQVNFCiAJaWYgKHNpemVfYjEpIHsKLQkJLyogSWYgVS1Cb290IGlzIGJvb3RlZCBmcm9tIFJPTSB0aGUgQ0ZHX01PTklUT1JfQkFTRSA+IENGR19GTEFTSF9CQVNFCisJCS8qIElmIFUtQm9vdCBpcyBib290ZWQgZnJvbSBST00gdGhlIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID4gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJCSAqIGJ1dCB3ZSBzaG91bGRuJ3QgcHJvdGVjdCBpdC4KIAkJICovCiAKIAkJZmxhc2hfcHJvdGVjdCAgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1sxXQorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1sxXQogCQkpOwogCX0KICNlbHNlCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0KKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdCiAJKTsKICNlbmRpZgogI2VuZGlmCkBAIC0yNDAsNyArMjQwLDcgQEAKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKICMgZW5kaWYKLSMgaWYgQ09ORklHX0VOVl9BRERSID49IENGR19CT09UUk9NX0JBU0UKKyMgaWYgQ09ORklHX0VOVl9BRERSID49IENPTkZJR19TWVNfQk9PVFJPTV9CQVNFCiAJaWYgKHNpemVfYjEpIHsKIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKIAkJCQlDT05GSUdfRU5WX0FERFIsCkBAIC0zOTEsNyArMzkxLDcgQEAKIAkJbGFzdCAgPSBzdGFydDsKIAkJYWRkciA9ICh2dV9jaGFyICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCQl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KQEAgLTQ0Myw3ICs0NDMsNyBAQAogCQkJCWxhc3QgPSBzdGFydDsKIAkJCQl3aGlsZSAoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwIHx8CiAJCQkJICAgKGFkZHJbMV0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJCXByaW50ZiAoIlRpbWVvdXQgKGVyYXNlIHN1c3BlbmRlZCEpXG4iKTsKIAkJCQkJCS8qIFN1c3BlbmQgZXJhc2UKIAkJCQkJCSAqLwpAQCAtNTU4LDcgKzU1OCw3IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqYWRkciAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkvKiBTdXNwZW5kIHByb2dyYW0KIAkJCSAqLwogCQkJKmFkZHIgPSAweDAwQjAwMEIwOwpAQCAtNjEzLDcgKzYxMyw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2NoYXIgKilkZXN0KSAmIDB4ODApICE9IChkYXRhICYgMHg4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2NyYWRsZS9mbGFzaC5jIGIvYm9hcmQvY3JhZGxlL2ZsYXNoLmMKaW5kZXggNDc4M2Q5Mi4uYjU2MzVmYiAxMDA2NDQKLS0tIGEvYm9hcmQvY3JhZGxlL2ZsYXNoLmMKKysrIGIvYm9hcmQvY3JhZGxlL2ZsYXNoLmMKQEAgLTMwLDcgKzMwLDcgQEAKICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFIDB4NDAwMDAwCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDIwMDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQxLDE1ICs0MSwxNSBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoSU5URUxfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCQkJKElOVEVMX0lEXzI4RjEyOEozICYgRkxBU0hfVFlQRU1BU0spOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CkBAIC03MSw4ICs3MSw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtODgsNyArODgsNyBAQAogewogCWludCBpLCBqOwogCi0JZm9yIChqID0gMDsgaiA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGorKykgeworCWZvciAoaiA9IDA7IGogPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaisrKSB7CiAJCXN3aXRjaCAoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgewogCQljYXNlIChJTlRFTF9NQU5VRkFDVCAmIEZMQVNIX1ZFTkRNQVNLKToKIAkJCXByaW50ZiAoIkludGVsOiAiKTsKQEAgLTE4Myw3ICsxODMsNyBAQAogCiAJCQl3aGlsZSAoKCphZGRyICYgMHg4MCkgIT0gMHg4MCkgewogCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkgICAgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkgICAgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCSphZGRyID0gMHhCMDsJLyogc3VzcGVuZCBlcmFzZSAqLwogCQkJCQkqYWRkciA9IDB4RkY7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwogCQkJCQlyYyA9IEVSUl9USU1PVVQ7CkBAIC0yNTAsNyArMjUwLDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgodmFsID0gKmFkZHIpICYgMHg4MCkgIT0gMHg4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyYyA9IEVSUl9USU1PVVQ7CiAJCQkvKiBzdXNwZW5kIHByb2dyYW0gY29tbWFuZCAqLwogCQkJKmFkZHIgPSAweEIwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvY3JhZGxlL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL2NyYWRsZS9sb3dsZXZlbF9pbml0LlMKaW5kZXggMmZkMzA3Zi4uNmI1Y2ZiOSAxMDA2NDQKLS0tIGEvYm9hcmQvY3JhZGxlL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9jcmFkbGUvbG93bGV2ZWxfaW5pdC5TCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLURSQU1fU0laRTogIC5sb25nICAgQ0ZHX0RSQU1fU0laRQorRFJBTV9TSVpFOiAgLmxvbmcgICBDT05GSUdfU1lTX0RSQU1fU0laRQogCiAvKiB3YWl0IGZvciBjb3Byb2Nlc3NvciB3cml0ZSBjb21wbGV0ZSAqLwogICAgLm1hY3JvIENQV0FJVCByZWcKQEAgLTUxLDk4ICs1MSw5OCBAQAogICAgIC8qIFNldCB1cCBHUElPIHBpbnMgZmlyc3QgKi8KIAogICAgbGRyICAgICAgcjAsICAgPUdQU1IwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQU1IwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BTUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HUFNSMQotICAgbGRyICAgICAgcjEsICAgPUNGR19HUFNSMV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQU1IxX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R1BTUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BTUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUFNSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdQQ1IwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQQ1IwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BDUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HUENSMQotICAgbGRyICAgICAgcjEsICAgPUNGR19HUENSMV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQQ1IxX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R1BDUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BDUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUENSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdSRVIwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dSRVIwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1JFUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HUkVSMQotICAgbGRyICAgICAgcjEsICAgPUNGR19HUkVSMV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dSRVIxX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R1JFUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1JFUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUkVSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdGRVIwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dGRVIwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0ZFUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HRkVSMQotICAgbGRyICAgICAgcjEsICAgPUNGR19HRkVSMV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dGRVIxX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R0ZFUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0ZFUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HRkVSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdQRFIwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQRFIwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BEUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HUERSMQotICAgbGRyICAgICAgcjEsICAgPUNGR19HUERSMV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQRFIxX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R1BEUjIKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BEUjJfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUERSMl9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdBRlIwX0wKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0FGUjBfTF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dBRlIwX0xfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HQUZSMF9VCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dBRlIwX1VfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HQUZSMF9VX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R0FGUjFfTAotICAgbGRyICAgICAgcjEsICAgPUNGR19HQUZSMV9MX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0FGUjFfTF9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgbGRyICAgICAgcjAsICAgPUdBRlIxX1UKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0FGUjFfVV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dBRlIxX1VfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIGxkciAgICAgIHIwLCAgID1HQUZSMl9MCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dBRlIyX0xfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HQUZSMl9MX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICBsZHIgICAgICByMCwgICA9R0FGUjJfVQotICAgbGRyICAgICAgcjEsICAgPUNGR19HQUZSMl9VX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0FGUjJfVV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KIAogICAgLyogZW5hYmxlIEdQSU8gcGlucyAqLwogICAgbGRyICAgICAgcjAsICAgPVBTU1IKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfUFNTUl9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX1BTU1JfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIFNFVF9MRUQgMQogCiAgICBsZHIgICAgcjMsID1NU0MxICAgICAgICAgICAgIC8qIGxvdyAtIGJhbmsgMiBMdWJib2NrIFJlZ2lzdGVycyAvIFNSQU0gKi8KLSAgIGxkciAgICByMiwgPUNGR19NU0MxX1ZBTCAgICAgLyogaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCisgICBsZHIgICAgcjIsID1DT05GSUdfU1lTX01TQzFfVkFMICAgICAvKiBoaWdoIC0gYmFuayAzIEV0aGVybmV0IENvbnRyb2xsZXIgKi8KICAgIHN0ciAgICByMiwgW3IzXSAgICAgICAgICAgICAgLyogbmVlZCB0byBzZXQgTVNDMSBiZWZvcmUgdHJ5aW5nIHRvIHdyaXRlIHRvIHRoZSBIRVggTEVEcyAqLwogICAgbGRyICAgIHIyLCBbcjNdICAgICAgICAgICAgICAvKiBuZWVkIHRvIHJlYWQgaXQgYmFjayB0byBtYWtlIHN1cmUgdGhlIHZhbHVlIGxhdGNoZXMgKHNlZSBNU0Mgc2VjdGlvbiBvZiBtYW51YWwpICovCiAKQEAgLTE4MSw0NyArMTgxLDQ3IEBACiAgICBAIFN0ZXAgMmEKICAgIEAgd3JpdGUgbXNjMCwgcmVhZCBiYWNrIHRvIGVuc3VyZSBkYXRhIGxhdGNoZXMKICAgIEAKLSAgIGxkciAgICAgcjIsICAgPUNGR19NU0MwX1ZBTAorICAgbGRyICAgICByMiwgICA9Q09ORklHX1NZU19NU0MwX1ZBTAogICAgc3RyICAgICByMiwgICBbcjEsICNNU0MwX09GRlNFVF0KICAgIGxkciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCiAKICAgIEAgd3JpdGUgbXNjMQotICAgbGRyICAgICByMiwgID1DRkdfTVNDMV9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MxX1ZBTAogICAgc3RyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogICAgbGRyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCiAgICBAIHdyaXRlIG1zYzIKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01TQzJfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTVNDMl9WQUwKICAgIHN0ciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KICAgIGxkciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIAogICAgQCBTdGVwIDJiCiAgICBAIHdyaXRlIG1lY3IKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01FQ1JfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUVDUl9WQUwKICAgIHN0ciAgICAgcjIsICBbcjEsICNNRUNSX09GRlNFVF0KIAogICAgQCB3cml0ZSBtY21lbTAKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01DTUVNMF9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTUNNRU0wX09GRlNFVF0KIAogICAgQCB3cml0ZSBtY21lbTEKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01DTUVNMV9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ01FTTFfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogICAgQCB3cml0ZSBtY2F0dDAKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01DQVRUMF9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDBfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAogICAgQCB3cml0ZSBtY2F0dDEKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01DQVRUMV9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogICAgQCB3cml0ZSBtY2lvMAotICAgbGRyICAgICByMiwgID1DRkdfTUNJTzBfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzBfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAgICBAIHdyaXRlIG1jaW8xCi0gICBsZHIgICAgIHIyLCAgPUNGR19NQ0lPMV9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKICAgIHN0ciAgICAgcjIsICBbcjEsICNNQ0lPMV9PRkZTRVRdCiAKICAgIC8qU0VUX0xFRCAzICovCkBAIC0yMjksMTQgKzIyOSwxNCBAQAogICAgQCBTdGVwIDJjCiAgICBAIGZseS1ieS1kbWEgaXMgZGVmZWF0dXJlZCBvbiB0aGlzIHBhcnQKICAgIEAgd3JpdGUgZmx5Y25mZwotICAgQGxkciAgICAgcjIsICA9Q0ZHX0ZMWUNORkdfVkFMCisgICBAbGRyICAgICByMiwgID1DT05GSUdfU1lTX0ZMWUNORkdfVkFMCiAgICBAc3RyICAgICByMiwgIFtyMSwgI0ZMWUNORkdfT0ZGU0VUXQogCiAvKiBGSVhNRSBEb2VzIHRoaXMgc2VxdWVuY2UgcmVhbGx5IG1ha2Ugc2Vuc2UgKi8KICNpZmRlZiBSRURCT09UX1dBWQogICAgQCBTdGVwIDJkCiAgICBAIGdldCB0aGUgbWRyZWZyIHNldHRpbmdzCi0gICBsZHIgICAgIHIzLCAgPUNGR19NRFJFRlJfVkFMCisgICBsZHIgICAgIHIzLCAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCiAgICBAIGV4dHJhY3QgRFJJIGZpZWxkICh3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkKQogICAgQApAQCAtMzE5LDcgKzMxOSw3IEBACiAjZWxzZQogICAgQCBTdGVwIDJkCiAgICBAIGdldCB0aGUgbWRyZWZyIHNldHRpbmdzCi0gICBsZHIgICAgIHIzLCAgPUNGR19NRFJFRlJfVkFMCisgICBsZHIgICAgIHIzLCAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCiAgICBAIHdyaXRlIGJhY2sgbWRyZWZyCiAgICBACkBAIC0zNjMsNyArMzYzLDcgQEAKICAgIEAgU3RlcCA0ZAogICAgQCBmZXRjaCBwbGF0Zm9ybSB2YWx1ZSBvZiBtZGNuZmcKICAgIEAKLSAgIGxkciAgICAgcjIsICA9Q0ZHX01EQ05GR19WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRENORkdfVkFMCiAKICAgIEAgZGlzYWJsZSBhbGwgc2RyYW0gYmFua3MKICAgIEAKQEAgLTQwMCw3ICs0MDAsNyBAQAogICAgQCBBY2Nlc3MgbWVtb3J5ICpub3QgeWV0IGVuYWJsZWQqIGZvciBDQlIgcmVmcmVzaCBjeWNsZXMgKDgpCiAgICBAIC0gQ0JSIGlzIGdlbmVyYXRlZCBmb3IgYWxsIGJhbmtzCiAKLSAgIGxkciAgICAgcjIsID1DRkdfRFJBTV9CQVNFCisgICBsZHIgICAgIHIyLCA9Q09ORklHX1NZU19EUkFNX0JBU0UKICAgIHN0ciAgICAgcjIsIFtyMl0KICAgIHN0ciAgICAgcjIsIFtyMl0KICAgIHN0ciAgICAgcjIsIFtyMl0KQEAgLTQzMCw3ICs0MzAsNyBAQAogICAgQCBTdGVwIDRoCiAgICBAIHdyaXRlIG1kbXJzCiAgICBACi0gICBsZHIgICAgIHIyLCAgPUNGR19NRE1SU19WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRE1SU19WQUwKICAgIHN0ciAgICAgcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKICAgIEAgRG9uZSBNZW1vcnkgSW5pdApAQCAtNDQ5LDcgKzQ0OSw3IEBACiAKICAgIEAgU2V0IGludGVycnVwdCBtYXNrIHJlZ2lzdGVyCiAgICBACi0gICBsZHIgICAgIHIxLCAgPUNGR19JQ01SX1ZBTAorICAgbGRyICAgICByMSwgID1DT05GSUdfU1lTX0lDTVJfVkFMCiAgICBsZHIgICAgIHIyLCAgPUlDTVIKICAgIHN0ciAgICAgcjEsICBbcjJdCiAKQEAgLTQ2NSw3ICs0NjUsNyBAQAogCiAgICBAIHNldCBjb3JlIGNsb2NrcwogICAgQAotICAgbGRyICAgICByMiwgID1DRkdfQ0NDUl9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19DQ0NSX1ZBTAogICAgbGRyICAgICByMSwgID1DQ0NSCiAgICBzdHIgICAgIHIyLCAgW3IxXQogCkBAIC00ODgsNyArNDg4LDcgQEAKIAlAIFR1cm4gb24gbmVlZGVkIGNsb2NrcwogCUAKICAgIGxkciAgICAgcjEsICA9Q0tFTgotICAgbGRyICAgICByMiwgID1DRkdfQ0tFTl9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19DS0VOX1ZBTAogICAgc3RyICAgICByMiwgIFtyMV0KIAogICAgLypTRVRfTEVEIDcgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2NyYXkvTDEvTDEuYyBiL2JvYXJkL2NyYXkvTDEvTDEuYwppbmRleCA0OWE5ZTVlLi4yYmFiZDJkIDEwMDY0NAotLS0gYS9ib2FyZC9jcmF5L0wxL0wxLmMKKysrIGIvYm9hcmQvY3JheS9MMS9MMS5jCkBAIC0xMzksNyArMTM5LDcgQEAKIAlzdHJ1Y3QgcnRjX3RpbWUgdG07CiAJY2hhciBib290Y21kWzMyXTsKIAotCWhkciA9IChpbWFnZV9oZWFkZXJfdCAqKSAoQ0ZHX01PTklUT1JfQkFTRSAtIGltYWdlX2dldF9oZWFkZXJfc2l6ZSAoKSk7CisJaGRyID0gKGltYWdlX2hlYWRlcl90ICopIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIGltYWdlX2dldF9oZWFkZXJfc2l6ZSAoKSk7CiAjaWYgZGVmaW5lZChDT05GSUdfRklUKQogCWlmIChnZW5pbWdfZ2V0X2Zvcm1hdCAoKHZvaWQgKiloZHIpICE9IElNQUdFX0ZPUk1BVF9MRUdBQ1kpIHsKIAkJcHV0cyAoIk5vbiBsZWdhY3kgaW1hZ2UgZm9ybWF0IG5vdCBzdXBwb3J0ZWRcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvY3JheS9MMS9mbGFzaC5jIGIvYm9hcmQvY3JheS9MMS9mbGFzaC5jCmluZGV4IGYzMTMyNzQuLjM2ZDE4NmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NyYXkvTDEvZmxhc2guYworKysgYi9ib2FyZC9jcmF5L0wxL2ZsYXNoLmMKQEAgLTQzLDcgKzQzLDcgQEAKICNkZWZpbmUgRkxBU0hfQU0zMjBCICAgIDB4MDAwOQogCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTY1LDcgKzY1LDcgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtNzksNyArNzksNyBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKQorCWlmIChDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA9PSAxKQogCSAgewogCSAgICAvKiBTZXR1cCBvZmZzZXRzICovCiAJICAgIGZsYXNoX2dldF9vZmZzZXRzIChGTEFTSF9CQVNFMF9QUkVMSU0sICZmbGFzaF9pbmZvWzBdKTsKQEAgLTI1Myw3ICsyNTMsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKICAgICBsYXN0ICA9IHN0YXJ0OwogICAgIHdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCSAgICBwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkgICAgcmV0dXJuIC0xOwogCX0KQEAgLTQ1Nyw3ICs0NTcsNyBAQAogCSAgICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAJICAgIHdoaWxlICgoZGVzdDJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CiAJCSAgIChkYXRhMltpXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKLQkgICAgICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJcmV0dXJuICgxKTsKIAkgICAgICB9CiAJICAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2NzYjIyNi9mbGFzaC5jIGIvYm9hcmQvY3NiMjI2L2ZsYXNoLmMKaW5kZXggMmE2MDkwOS4uMDJkZWQxYyAxMDA2NDQKLS0tIGEvYm9hcmQvY3NiMjI2L2ZsYXNoLmMKKysrIGIvYm9hcmQvY3NiMjI2L2ZsYXNoLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFIDB4MDIwMDAwMDAKICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUJMHg0MDAwMAkJLyogMngxNiA9IDI1NmsgcGVyIHNlY3RvciAqLwogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiAvKioKQEAgLTUxLDE0ICs1MSwxNCBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQogCQkJKElOVEVMX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShJTlRFTF9JRF8yOEYxMjhKMyAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgpAQCAtNzYsOCArNzYsOCBAQAogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKQEAgLTk3LDcgKzk3LDcgQEAKIHsKIAlpbnQgaSwgajsKIAotCWZvciAoaj0wOyBqPENGR19NQVhfRkxBU0hfQkFOS1M7IGorKykgeworCWZvciAoaj0wOyBqPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBqKyspIHsKIAogCQlzd2l0Y2ggKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spIHsKIAkJY2FzZSAoSU5URUxfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSyk6CkBAIC0xODksNyArMTg5LDcgQEAKIAkJCSphZGRyID0gMHgwMEQwMDBEMDsJLyogZXJhc2UgY29uZmlybSAqLwogCiAJCQl3aGlsZSAoKCphZGRyICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQkJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSAweDAwQjAwMEIwOyAvKiBzdXNwZW5kIGVyYXNlKi8KIAkJCQkJKmFkZHIgPSAweDAwRkYwMEZGOyAvKiByZWFkIG1vZGUgICAgKi8KIAkJCQkJcmMgPSBFUlJfVElNT1VUOwpAQCAtMjUxLDcgKzI1MSw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlKCgodmFsID0gKmFkZHIpICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmMgPSBFUlJfVElNT1VUOwogCQkJLyogc3VzcGVuZCBwcm9ncmFtIGNvbW1hbmQgKi8KIAkJCSphZGRyID0gMHgwMEIwMDBCMDsKZGlmZiAtLWdpdCBhL2JvYXJkL2NzYjIyNi9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9jc2IyMjYvbG93bGV2ZWxfaW5pdC5TCmluZGV4IDRjOWYxMGYuLjk4OTI0MzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NzYjIyNi9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQvY3NiMjI2L2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KICAgIC5tYWNybyBDUFdBSVQgcmVnCkBAIC01NCw3MSArNTQsNzEgQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAlsZHIJCXIwLAk9R1BTUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IxCi0JbGRyCQlyMSwJPUNGR19HUFNSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMgotCWxkcgkJcjEsCT1DRkdfR1BTUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IxCi0JbGRyCQlyMSwJPUNGR19HUENSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMgotCWxkcgkJcjEsCT1DRkdfR1BDUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIxCi0JbGRyCQlyMSwJPUNGR19HUERSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMgotCWxkcgkJcjEsCT1DRkdfR1BEUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjBfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMV9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMV9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIyX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJcjAsCT1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCQlyMSwJPUNGR19QU1NSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BTU1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qCWxkcglyMywJPU1TQzEJCS8gIGxvdyAtIGJhbmsgMiBMdWJib2NrIFJlZ2lzdGVycyAvIFNSQU0gKi8KLS8qCWxkcglyMiwJPUNGR19NU0MxX1ZBTAkvICBoaWdoIC0gYmFuayAzIEV0aGVybmV0IENvbnRyb2xsZXIgKi8KKy8qCWxkcglyMiwJPUNPTkZJR19TWVNfTVNDMV9WQUwJLyAgaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCiAvKglzdHIJcjIsCVtyM10JCS8gIG5lZWQgdG8gc2V0IE1TQzEgYmVmb3JlIHRyeWluZyB0byB3cml0ZSB0byB0aGUgSEVYIExFRHMgKi8KIC8qCWxkcglyMiwJW3IzXQkJLyAgbmVlZCB0byByZWFkIGl0IGJhY2sgdG8gbWFrZSBzdXJlIHRoZSB2YWx1ZSBsYXRjaGVzIChzZWUgTVNDIHNlY3Rpb24gb2YgbWFudWFsKSAqLwogLyogKi8KQEAgLTE2OCwxNyArMTY4LDE3IEBACiAJLyogTVNDIHJlZ2lzdGVyczogdGltaW5nLCBidXMgd2lkdGgsIG1lbSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkciAgICAgcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCS8qIHJlYWQgYmFjayB0byBlbnN1cmUgICAgICAqLwogCQkJCQkJLyogdGhhdCBkYXRhIGxhdGNoZXMgICAgICAgICovCiAJLyogTVNDMTogbkNTKDIsMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01TQzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCS8qIE1TQzI6IG5DUyg0LDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MyX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTE4NywzNyArMTg3LDM3IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01FQ1JfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNNRU0wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJLyogTUNNRU0xOiBDYXJkIEludGVyZmFjZSBzbG90IDEgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0FUVDBfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAkvKiBNQ0FUVDE6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJLyogTUNJTzA6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzFfT0ZGU0VUXQogCkBAIC0yMzksNyArMjM5LDcgQEAKIAkvKiBCZWZvcmUgYWNjZXNzaW5nIE1EUkVGUiB3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkLCBzbyB3ZSBzZXQgICAgICovCiAJLyogdGhpcyB0byBwb3dlciBvbiBkZWZhdWx0cyArIERSSSBmaWVsZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyCXIzLAk9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjMsCT1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlsZHIJcjIsCT0weEZGRgogCWFuZAlyMywJcjMsIHIyCiAJbGRyCXI0LAk9MHgwM2NhNDAwMApAQCAtMjY5LDcgKzI2OSw3IEBACiAJLyogU3RlcCA0YTogYXNzZXJ0IE1EUkVGUjpLP1JVTiBhbmQgY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAqLwogCS8qICAgICAgICAgIE1EUkVGUjpLMURCMiBhbmQgTURSRUZSOksyREIyIGFzIGRlc2lyZWQuICAgICAgICAgICAgICAgKi8KIAotCWxkcglyNCwJPUNGR19NRFJFRlJfVkFMCisJbGRyCXI0LAk9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJc3RyCXI0LAlbcjEsICNNRFJFRlJfT0ZGU0VUXQkvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KIAlsZHIJcjQsCVtyMSwgI01EUkVGUl9PRkZTRVRdCiAKQEAgLTI5Miw3ICsyOTIsNyBAQAogCS8qIFN0ZXAgNGQ6IHdyaXRlIE1EQ05GRyB3aXRoIE1EQ05GRzpERXggZGVhc3NlcnRlZCAoc2V0IHRvIDApLCB0byAgKi8KIAkvKiAgICAgICAgICBjb25maWd1cmUgYnV0IG5vdCBlbmFibGUgZWFjaCBTRFJBTSBwYXJ0aXRpb24gcGFpci4gICAgICovCiAKLQlsZHIJcjQsCT1DRkdfTURDTkZHX1ZBTAorCWxkcglyNCwJPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCWJpYwlyNCwJcjQsCSMoTURDTkZHX0RFMHxNRENORkdfREUxKQogCiAJc3RyICAgICByNCwgICAgIFtyMSwgI01EQ05GR19PRkZTRVRdCS8qIHdyaXRlIGJhY2sgTURDTkZHICAgICAgICAqLwpAQCAtMzI1LDcgKzMyNSw3IEBACiAJLyogICAgICAgICAgSmFuIDIwMDMsIEVycmF0YSAjMTE2LCBwYWdlIDMwLiAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAKLQlsZHIJcjMsCT1DRkdfRFJBTV9CQVNFCisJbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKIAlzdHIJcjIsIFtyM10KIAlzdHIJcjIsIFtyM10KIAlzdHIJcjIsIFtyM10KQEAgLTM0NSw3ICszNDUsNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMiwgID1DRkdfTURNUlNfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvY3NiMjcyL2NzYjI3Mi5jIGIvYm9hcmQvY3NiMjcyL2NzYjI3Mi5jCmluZGV4IDVhNTg1YWUuLjExNTk2ZDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2NzYjI3Mi9jc2IyNzIuYworKysgYi9ib2FyZC9jc2IyNzIvY3NiMjcyLmMKQEAgLTUxLDkgKzUxLDkgQEAKICAqLwogaW50IHBsbF9pbml0KHZvaWQpCiB7Ci0JaTJjX2luaXQoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAotCXJldHVybiAgaTJjX3dyaXRlKENGR19JMkNfUExMX0FERFIsIDAsIDEsCisJcmV0dXJuICBpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUExMX0FERFIsIDAsIDEsCiAJCSh1Y2hhciAqKSBwbGxfZnM2Mzc3X3JlZ3MsIHNpemVvZihwbGxfZnM2Mzc3X3JlZ3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvY3NiMjcyL2luaXQuUyBiL2JvYXJkL2NzYjI3Mi9pbml0LlMKaW5kZXggZTAwZWJmOC4uYWIzNzFmMiAxMDA2NDQKLS0tIGEvYm9hcmQvY3NiMjcyL2luaXQuUworKysgYi9ib2FyZC9jc2IyNzIvaW5pdC5TCkBAIC04MiwxMSArODIsMTEgQEAKIAltZmxyCXIzCQkJLyogZ2V0IGFkZHJlc3Mgb2YgLi5nZXRBZGRyICovCiAKIAkvKiBDYWxjdWxhdGUgbnVtYmVyIG9mIGNhY2hlIGxpbmVzIGZvciB0aGlzIGZ1bmN0aW9uICovCi0JYWRkaQlyNCwgMCwgKCgoLkxmZTAgLSAuLmdldEFkZHIpIC8gQ0ZHX0NBQ0hFTElORV9TSVpFKSArIDIpCisJYWRkaQlyNCwgMCwgKCgoLkxmZTAgLSAuLmdldEFkZHIpIC8gQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSkgKyAyKQogCW10Y3RyCXI0CiAuLmViY2xvb3A6CiAJaWNidAlyMCwgcjMJCQkvKiBwcmVmZXRjaCBjYWNoZSBsaW5lIGZvciBhZGRyIGluIHIzKi8KLQlhZGRpCXIzLCByMywgQ0ZHX0NBQ0hFTElORV9TSVpFIC8qIG1vdmUgdG8gbmV4dCBjYWNoZSBsaW5lICovCisJYWRkaQlyMywgcjMsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgLyogbW92ZSB0byBuZXh0IGNhY2hlIGxpbmUgKi8KIAliZG56CS4uZWJjbG9vcAkJLyogY29udGludWUgZm9yICRDVFIgY2FjaGUgbGluZXMgKi8KIAogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvYm9hcmQvY3NiNDcyL2luaXQuUyBiL2JvYXJkL2NzYjQ3Mi9pbml0LlMKaW5kZXggYWVjNDJhMS4uNGI2OTU4YSAxMDA2NDQKLS0tIGEvYm9hcmQvY3NiNDcyL2luaXQuUworKysgYi9ib2FyZC9jc2I0NzIvaW5pdC5TCkBAIC04MiwxMSArODIsMTEgQEAKIAltZmxyCXIzCQkJLyogZ2V0IGFkZHJlc3Mgb2YgLi5nZXRBZGRyICovCiAKIAkvKiBDYWxjdWxhdGUgbnVtYmVyIG9mIGNhY2hlIGxpbmVzIGZvciB0aGlzIGZ1bmN0aW9uICovCi0JYWRkaQlyNCwgMCwgKCgoLkxmZTAgLSAuLmdldEFkZHIpIC8gQ0ZHX0NBQ0hFTElORV9TSVpFKSArIDIpCisJYWRkaQlyNCwgMCwgKCgoLkxmZTAgLSAuLmdldEFkZHIpIC8gQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSkgKyAyKQogCW10Y3RyCXI0CiAuLmViY2xvb3A6CiAJaWNidAlyMCwgcjMJCQkvKiBwcmVmZXRjaCBjYWNoZSBsaW5lIGZvciBhZGRyIGluIHIzKi8KLQlhZGRpCXIzLCByMywgQ0ZHX0NBQ0hFTElORV9TSVpFIC8qIG1vdmUgdG8gbmV4dCBjYWNoZSBsaW5lICovCisJYWRkaQlyMywgcjMsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgLyogbW92ZSB0byBuZXh0IGNhY2hlIGxpbmUgKi8KIAliZG56CS4uZWJjbG9vcAkJLyogY29udGludWUgZm9yICRDVFIgY2FjaGUgbGluZXMgKi8KIAogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvYm9hcmQvY3U4MjQvY3U4MjQuYyBiL2JvYXJkL2N1ODI0L2N1ODI0LmMKaW5kZXggMGZkNDIyMy4uNzIwYzU2ZiAxMDA2NDQKLS0tIGEvYm9hcmQvY3U4MjQvY3U4MjQuYworKysgYi9ib2FyZC9jdTgyNC9jdTgyNC5jCkBAIC01Myw3ICs1Myw3IEBACiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcoTUVBUjEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvY3U4MjQvZmxhc2guYyBiL2JvYXJkL2N1ODI0L2ZsYXNoLmMKaW5kZXggNmZlMjk3OC4uYmQwZjhkMyAxMDA2NDQKLS0tIGEvYm9hcmQvY3U4MjQvZmxhc2guYworKysgYi9ib2FyZC9jdTgyNC9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC00Myw3ICs0Myw3IEBACiAKICNkZWZpbmUgQk9BUkRfQ1RSTF9SRUcgMHhGRTgwMDAxMwogCi1mbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogc3RhdGljIGludCB3cml0ZV9kYXRhIChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVsb25nICpkYXRhKTsKIHN0YXRpYyB2b2lkIHdyaXRlX3ZpYV9mcHUodnVfbG9uZyAqYWRkciwgdWxvbmcgKmRhdGEpOwpAQCAtNzUsOCArNzUsOCBAQAogICAgICpiY3IgfD0gMHg2OwkvKiBGV1AwID0gRldQMSA9IDEgKi8KICAgICBERUJVR0YoIldyaXRlIHByb3RlY3QgaXM6ICAweCUwMlhcbiIsICpiY3IpOwogCi0gICAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewotCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUpOworICAgIGZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJdnVfbG9uZyAqYWRkciA9ICh2dV9sb25nICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUpOwogCiAJYWRkclswXSA9IDB4MDA5MDAwOTA7CiAKQEAgLTEwMywxNSArMTAzLDE1IEBACiAJYWRkclswXSA9IDB4RkZGRkZGRkY7CiAKIAlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJZm9yIChqID0gMDsgaiA8IGZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50OyBqKyspIHsKIAkJaWYgKGogPD0gNykgewotCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENGR19GTEFTSF9CQVNFICsKKwkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKwogCQkJCQkJIGkgKiBGTEFTSF9CQU5LX1NJWkUgKwogCQkJCQkJIGogKiBQQVJBTV9TRUNUX1NJWkU7CiAJCX0gZWxzZSB7Ci0JCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0gQ0ZHX0ZMQVNIX0JBU0UgKworCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArCiAJCQkJCQkgaSAqIEZMQVNIX0JBTktfU0laRSArCiAJCQkJCQkgKGogLSA3KSpNQUlOX1NFQ1RfU0laRTsKIAkJfQpAQCAtMTIxLDIyICsxMjEsMjIgQEAKIAogICAgIC8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogICAgICAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFICsgRkxBU0hfQkFOS19TSVpFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFICsgRkxBU0hfQkFOS19TSVpFCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkgICAgICAmZmxhc2hfaW5mb1sxXSk7CiAjZWxzZQogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCSAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkgJiYgZGVmaW5lZChDT05GSUdfRU5WX0FERFIpCi0jaWYgQ09ORklHX0VOVl9BRERSID49IENGR19GTEFTSF9CQVNFICsgRkxBU0hfQkFOS19TSVpFCisjaWYgQ09ORklHX0VOVl9BRERSID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKIAkgICAgICBDT05GSUdfRU5WX0FERFIsCiAJICAgICAgQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TSVpFIC0gMSwKQEAgLTI2OCw3ICsyNjgsNyBAQAogCQkJd2hpbGUgKCgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHx8CiAJCQkgICAgICAgKChhZGRyWzFdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgKSB7CiAJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPgotCQkJCQkgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQkgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCWFkZHJbMF0gPSAweDAwQjAwMEIwOyAvKiBzdXNwZW5kIGVyYXNlICovCiAJCQkJCWFkZHJbMF0gPSAweDAwRkYwMEZGOyAvKiB0byByZWFkIG1vZGUgICovCkBAIC00NTIsNyArNDUyLDcgQEAKIAogCXdoaWxlICgoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB8fAogCSAgICAgICAoKGFkZHJbMV0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSApIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJYWRkclswXSA9IDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9kYXZlL0IyL2ZsYXNoLmMgYi9ib2FyZC9kYXZlL0IyL2ZsYXNoLmMKaW5kZXggYWQ2N2U4Ni4uYmI4OTJlNiAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2ZS9CMi9mbGFzaC5jCisrKyBiL2JvYXJkL2RhdmUvQjIvZmxhc2guYwpAQCAtNDEsMTkgKzQxLDE5IEBACiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7CiAjaWZkZWYgX19ERUJVR19TVEFSVF9GUk9NX1NSQU1fXwotCXJldHVybiBDRkdfRFVNTVlfRkxBU0hfU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19EVU1NWV9GTEFTSF9TSVpFOwogI2Vsc2UKIAl1bnNpZ25lZCBsb25nIHNpemVfYjA7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgLSBGSVhNRSBYWFggKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCkBAIC02NSw3ICs2NSw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCmRpZmYgLS1naXQgYS9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL1BQQ2hhbWVsZW9uRVZCLmMgYi9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL1BQQ2hhbWVsZW9uRVZCLmMKaW5kZXggYzcxNWFkNC4uYTZhYTY1NSAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9QUENoYW1lbGVvbkVWQi5jCisrKyBiL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvUFBDaGFtZWxlb25FVkIuYwpAQCAtMzgsOCArMzgsOCBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewotCW91dDMyKEdQSU8wX09SLCBDRkdfTkFORDBfQ0UpOyAgICAgICAgICAgICAgICAgLyogc2V0IGluaXRpYWwgb3V0cHV0cyAgICAgKi8KLQlvdXQzMihHUElPMF9PUiwgQ0ZHX05BTkQxX0NFKTsgICAgICAgICAgICAgICAgIC8qIHNldCBpbml0aWFsIG91dHB1dHMgICAgICovCisJb3V0MzIoR1BJTzBfT1IsIENPTkZJR19TWVNfTkFORDBfQ0UpOyAgICAgICAgICAgICAgICAgLyogc2V0IGluaXRpYWwgb3V0cHV0cyAgICAgKi8KKwlvdXQzMihHUElPMF9PUiwgQ09ORklHX1NZU19OQU5EMV9DRSk7ICAgICAgICAgICAgICAgICAvKiBzZXQgaW5pdGlhbCBvdXRwdXRzICAgICAqLwogCiAJLyoKIAkgKiBJUlEgMC0xNSAgNDA1R1AgaW50ZXJuYWxseSBnZW5lcmF0ZWQ7IGFjdGl2ZSBoaWdoOyBsZXZlbCBzZW5zaXRpdmUKQEAgLTg1LDEwICs4NSwxMCBAQAogewogCS8qIGFkanVzdCBmbGFzaCBzdGFydCBhbmQgc2l6ZSBhcyB3ZWxsIGFzIHRoZSBvZmZzZXQgKi8KIAlnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgPSAwIC0gZmxhc2hfaW5mb1swXS5zaXplOwotCWdkLT5iZC0+YmlfZmxhc2hvZmZzZXQ9IGZsYXNoX2luZm9bMF0uc2l6ZSAtIENGR19NT05JVE9SX0xFTjsKKwlnZC0+YmQtPmJpX2ZsYXNob2Zmc2V0PSBmbGFzaF9pbmZvWzBdLnNpemUgLSBDT05GSUdfU1lTX01PTklUT1JfTEVOOwogI2lmIDAKIAl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9tb2RlID0KLQkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMKTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwpOwogCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmR1YXJ0MF9tY3IgPQogCQkodW5zaWduZWQgY2hhciAqKSgodWxvbmcpRFVBUlQwX0JBICsgNCk7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqZHVhcnQxX21jciA9CkBAIC0xMDMsOCArMTAzLDggQEAKIAlpbnQgaTsKIAl1bnNpZ25lZCBsb25nIGNudHJsMFJlZzsKIAotCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JaWYgKGd1bnppcCAoZHN0LCBDRkdfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKKwlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwlpZiAoZ3VuemlwIChkc3QsIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKIAkJcHJpbnRmICgiR1VOWklQIEVSUk9SIC0gbXVzdCBSRVNFVCBib2FyZCB0byByZWNvdmVyXG4iKTsKIAkJZG9fcmVzZXQgKE5VTEwsIDAsIDAsIE5VTEwpOwogCX0KQEAgLTE2OCw3ICsxNjgsNyBAQAogCS8qCiAJICogRW5hYmxlIHBvd2VyIG9uIFBTLzIgaW50ZXJmYWNlCiAJICovCi0JKmZwZ2FfbW9kZSB8PSBDRkdfRlBHQV9DVFJMX1BTMl9SRVNFVDsKKwkqZnBnYV9tb2RlIHw9IENPTkZJR19TWVNfRlBHQV9DVFJMX1BTMl9SRVNFVDsKIAogCS8qCiAJICogRW5hYmxlIGludGVycnVwdHMgaW4gZXhhciBkdWFydCBtY3JbM10KZGlmZiAtLWdpdCBhL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvZmxhc2guYyBiL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvZmxhc2guYwppbmRleCA2OTJkMjc1Li5lNWEwZDNkIDEwMDY0NAotLS0gYS9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL2ZsYXNoLmMKKysrIGIvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9mbGFzaC5jCkBAIC00Miw3ICs0Miw3IEBACiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7CiAjaWZkZWYgX19ERUJVR19TVEFSVF9GUk9NX1NSQU1fXwotCXJldHVybiBDRkdfRFVNTVlfRkxBU0hfU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19EVU1NWV9GTEFTSF9TSVpFOwogI2Vsc2UKIAl1bnNpZ25lZCBsb25nIHNpemU7CiAJaW50IGk7CkBAIC01NCw3ICs1NCw3IEBACiAJZGVidWcoIlslcywgJWRdIGZsYXNoX2luZm8gPSAweCUwOFggLi4uXG4iLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fLCBmbGFzaF9pbmZvKTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTAyLDcgKzEwMiw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCmRpZmYgLS1naXQgYS9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL25hbmQuYyBiL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvbmFuZC5jCmluZGV4IDNjY2JmNjUwLi4xNGI2MWE0IDEwMDY0NAotLS0gYS9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL25hbmQuYworKysgYi9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL25hbmQuYwpAQCAtNjcsMTEgKzY3LDExIEBACiAKIAkvKiB1c2UgdGhlIGJhc2UgYWRkciB0byBmaW5kIG91dCB3aGljaCBjaGlwIGFyZSB3ZSBkZWFsaW5nIHdpdGggKi8KIAlzd2l0Y2goKHVsb25nKSB0aGlzLT5JT19BRERSX1cpIHsKLQljYXNlIENGR19OQU5EMF9CQVNFOgotCQlyYl9ncGlvX3BpbiA9IENGR19OQU5EMF9SRFk7CisJY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6CisJCXJiX2dwaW9fcGluID0gQ09ORklHX1NZU19OQU5EMF9SRFk7CiAJCWJyZWFrOwotCWNhc2UgQ0ZHX05BTkQxX0JBU0U6Ci0JCXJiX2dwaW9fcGluID0gQ0ZHX05BTkQxX1JEWTsKKwljYXNlIENPTkZJR19TWVNfTkFORDFfQkFTRToKKwkJcmJfZ3Bpb19waW4gPSBDT05GSUdfU1lTX05BTkQxX1JEWTsKIAkJYnJlYWs7CiAJZGVmYXVsdDogLyogdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuICovCiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi91LWJvb3QubGRzIGIvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi91LWJvb3QubGRzCmluZGV4IGU0MmM3NmYuLmVkMDJjZWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvdS1ib290LmxkcworKysgYi9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL3UtYm9vdC5sZHMKQEAgLTE0Myw3ICsxNDMsNyBAQAogICAgKihDT01NT04pCiAgIH0KIAotICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CisgIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRjgwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOwogICAuID0gMHhGRkZGODAwMDsKICAgLnBwY2VudiA6CiAgIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2RhdmUvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9kYXZlL2NvbW1vbi9mbGFzaC5jCmluZGV4IGJmMGYyYmYuLmI2YWY2M2IgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmUvY29tbW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvZGF2ZS9jb21tb24vZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMTYyLDcgKzE2Miw3IEBACiAKIAlwcmludGYgKCIgIFNlY3RvciBTdGFydCBBZGRyZXNzZXM6Iik7CiAJZm9yIChpPTA7IGk8aW5mby0+c2VjdG9yX2NvdW50OyArK2kpIHsKLSNpZmRlZiBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCQkvKgogCQkgKiBDaGVjayBpZiB3aG9sZSBzZWN0b3IgaXMgZXJhc2VkCiAJCSAqLwpAQCAtMjE2LDMwICsyMTYsMzAgQEAKIHsKIAlzaG9ydCBpOwogCXNob3J0IG47Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKWFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWFkZHI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopYWRkcjsKIAogCWRlYnVnKCJbJXMsICVkXSBFbnRlcmluZyAuLi5cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDkwMDA5MDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDkwMDA5MDsKIAotCXZhbHVlID0gYWRkcjJbQ0ZHX0ZMQVNIX1JFQUQwXTsKKwl2YWx1ZSA9IGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfUkVBRDBdOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUZVSl9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlGVUpfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TU1Q7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1RNX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNUTV9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1RNOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMjQ5LDkyICsyNDksOTIgQEAKIAkJcmV0dXJuICgwKTsJCQkvKiBubyBvciB1bmtub3duIGZsYXNoCSovCiAJfQogCi0JdmFsdWUgPSBhZGRyMltDRkdfRkxBU0hfUkVBRDFdOwkJLyogZGV2aWNlIElECQkqLworCXZhbHVlID0gYWRkcjJbQ09ORklHX1NZU19GTEFTSF9SRUFEMV07CQkvKiBkZXZpY2UgSUQJCSovCiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjQwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMC41IE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjQwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMC41IE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDEgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMTYwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0xNjBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzNTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAyIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1RNX0lEXzI5VzMyMERUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNUTV9JRF8yOVczMjBEVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1RNVzMyMERUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA2NzsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTMyMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMlQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyMlQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMkI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyMkI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyM1Q7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM0I6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyM0I7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjY0MFU6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNjQwVToKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU02NDBVOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMjg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDAwOyAgYnJlYWs7CS8qID0+IDggTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGODAwQToKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEY4MDBBOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9TU1Q4MDBBOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxNjsKIAkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAxIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYxNjBBOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjE2MEE6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NTVDE2MEE7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDMyOwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKQEAgLTQzMiwxOSArNDMyLDE5IEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKQogCQkgIGluZm8tPnByb3RlY3RbaV0gPSAwOwogCQllbHNlCi0JCSAgaW5mby0+cHJvdGVjdFtpXSA9IGFkZHIyW0NGR19GTEFTSF9SRUFEMl0gJiAxOworCQkgIGluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQyXSAmIDE7CiAJfQogCiAJLyoKIAkgKiBQcmV2ZW50IHdyaXRlcyB0byB1bmluaXRpYWxpemVkIEZMQVNILgogCSAqLwogCWlmIChpbmZvLT5mbGFzaF9pZCAhPSBGTEFTSF9VTktOT1dOKSB7Ci0JCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKLQkJKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOworCQkqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCX0KIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CkBAIC00NTYsOCArNDU2LDggQEAKIAogaW50CWZsYXNoX2VyYXNlIChmbGFzaF9pbmZvX3QgKmluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKIAlpbnQgZmxhZywgcHJvdCwgc2VjdCwgbF9zZWN0OwogCXVsb25nIHN0YXJ0LCBub3csIGxhc3Q7CiAJaW50IGk7CkBAIC00OTgsMjUgKzQ5OCwyNSBAQAogCS8qIFN0YXJ0IGVyYXNlIG9uIHVucHJvdGVjdGVkIHNlY3RvcnMgKi8KIAlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0PD1zX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJICAgIGFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbc2VjdF0pOworCQkgICAgYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbc2VjdF0pOwogCQkgICAgaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKSB7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODA7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDUwMDA1MDsgIC8qIGJsb2NrIGVyYXNlICovCisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODA7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTAwMDUwOyAgLyogYmxvY2sgZXJhc2UgKi8KIAkJCWZvciAoaT0wOyBpPDUwOyBpKyspCiAJCQkgIHVkZWxheSgxMDAwKTsgIC8qIHdhaXQgMSBtcyAqLwogCQkgICAgfSBlbHNlIHsKIAkJCWlmIChzZWN0ID09IHNfZmlyc3QpIHsKLQkJCSAgICBhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJICAgIGFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JCQkgICAgYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MDsKLQkJCSAgICBhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJICAgIGFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCQkgICAgYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQkJICAgIGFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkJCSAgICBhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODA7CisJCQkgICAgYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQkJICAgIGFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKIAkJCX0KLQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDMwMDAzMDsgIC8qIHNlY3RvciBlcmFzZSAqLworCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDMwMDAzMDsgIC8qIHNlY3RvciBlcmFzZSAqLwogCQkgICAgfQogCQkgICAgbF9zZWN0ID0gc2VjdDsKIAkJfQpAQCAtNTM3LDkgKzUzNyw5IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJbGFzdCAgPSBzdGFydDsKLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01NTIsOCArNTUyLDggQEAKIAogRE9ORToKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKLQlhZGRyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAogCXByaW50ZiAoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTY2Myw5ICs2NjMsOSBAQAogICovCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQgKGZsYXNoX2luZm9fdCAqaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopZGVzdDsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopJmRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilkZXN0OworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkYXRhMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSZkYXRhOwogCXVsb25nIHN0YXJ0OwogCWludCBmbGFnOwogCWludCBpOwpAQCAtNjc3LDExICs2NzcsMTEgQEAKIAkvKiBEaXNhYmxlIGludGVycnVwdHMgd2hpY2ggbWlnaHQgY2F1c2UgYSB0aW1lb3V0IGhlcmUgKi8KIAlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQlmb3IgKGk9MDsgaTw0L3NpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsgaSsrKQorCWZvciAoaT0wOyBpPDQvc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsgaSsrKQogCSAgewotCSAgICBhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkgICAgYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JICAgIGFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQTAwMEEwOworCSAgICBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCSAgICBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCSAgICBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQTAwMEEwOwogCiAJICAgIGRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTY5MSw5ICs2OTEsOSBAQAogCiAJICAgIC8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwotCSAgICB3aGlsZSAoKGRlc3QyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KLQkJICAgKGRhdGEyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKLQkgICAgICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJICAgIHdoaWxlICgoZGVzdDJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KKwkJICAgKGRhdGEyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7CisJICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJcmV0dXJuICgxKTsKIAkgICAgICB9CiAJICAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2RhdmUvY29tbW9uL2ZwZ2EuYyBiL2JvYXJkL2RhdmUvY29tbW9uL2ZwZ2EuYwppbmRleCA1YjViNWU5Li4zMGJjMTk2IDEwMDY0NAotLS0gYS9ib2FyZC9kYXZlL2NvbW1vbi9mcGdhLmMKKysrIGIvYm9hcmQvZGF2ZS9jb21tb24vZnBnYS5jCkBAIC0zNiwxMiArMzYsMTIgQEAKIAogI2RlZmluZSBNQVhfT05FUyAgICAgICAgICAgICAgIDIyNgogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJHCi0jIGRlZmluZSBGUEdBX1BSRyAgICAgICAgICAgICAgQ0ZHX0ZQR0FfUFJHIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpKi8KLSMgZGVmaW5lIEZQR0FfQ0xLICAgICAgICAgICAgICBDRkdfRlBHQV9DTEsgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAqLwotIyBkZWZpbmUgRlBHQV9EQVRBICAgICAgICAgICAgIENGR19GUEdBX0RBVEEgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICovCi0jIGRlZmluZSBGUEdBX0RPTkUgICAgICAgICAgICAgQ0ZHX0ZQR0FfRE9ORSAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgKi8KLSMgZGVmaW5lIEZQR0FfSU5JVCAgICAgICAgICAgICBDRkdfRlBHQV9JTklUIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAqLworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUkcKKyMgZGVmaW5lIEZQR0FfUFJHICAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfUFJHIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpKi8KKyMgZGVmaW5lIEZQR0FfQ0xLICAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfQ0xLIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyMgZGVmaW5lIEZQR0FfREFUQSAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfREFUQSAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgKi8KKyMgZGVmaW5lIEZQR0FfRE9ORSAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfRE9ORSAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgKi8KKyMgZGVmaW5lIEZQR0FfSU5JVCAgICAgICAgICAgICBDT05GSUdfU1lTX0ZQR0FfSU5JVCAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgKi8KICNlbHNlCiAjIGRlZmluZSBGUEdBX1BSRyAgICAgICAgICAgICAgMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KICMgZGVmaW5lIEZQR0FfQ0xLICAgICAgICAgICAgICAweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwpAQCAtNzQsNyArNzQsNyBAQAogCWludCBpLCBpbmRleCwgbGVuOwogCWludCBjb3VudDsKIAotI2lmZGVmIENGR19GUEdBX1NQQVJUQU4yCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCiAJaW50IGo7CiAjZWxzZQogCXVuc2lnbmVkIGNoYXIgYjsKQEAgLTg5LDcgKzg5LDcgQEAKIAkJaW5kZXggKz0gbGVuICsgMzsKIAl9CiAKLSNpZmRlZiBDRkdfRlBHQV9TUEFSVEFOMgorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgogCS8qIHNlYXJjaCBmb3IgcHJlYW1ibGUgMHhGRkZGRkZGRiAqLwogCXdoaWxlICgxKSB7CiAJCWlmICgoZnBnYWRhdGFbaW5kZXhdID09IDB4ZmYpICYmIChmcGdhZGF0YVtpbmRleCArIDFdID09IDB4ZmYpCkBAIC0xNjcsNyArMTY3LDcgQEAKIAlEQkcgKCJ3cml0ZSBjb25maWd1cmF0aW9uIGRhdGEgaW50byBmcGdhXG4iKTsKIAkvKiB3cml0ZSBjb25maWd1cmF0aW9uLWRhdGEgaW50byBmcGdhLi4uICovCiAKLSNpZmRlZiBDRkdfRlBHQV9TUEFSVEFOMgorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgogCS8qCiAJICogTG9hZCB1bmNvbXByZXNzZWQgaW1hZ2UgaW50byBmcGdhCiAJICovCkBAIC0xODEsNyArMTgxLDcgQEAKIAkJCWZwZ2FkYXRhW2ldIDw8PSAxOwogCQl9CiAJfQotI2Vsc2UJLyogISBDRkdfRlBHQV9TUEFSVEFOMiAqLworI2Vsc2UJLyogISBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIgKi8KIAkvKiBzZW5kIDB4ZmYgMHgyMCAqLwogCUZQR0FfV1JJVEVfMTsKIAlGUEdBX1dSSVRFXzE7CkBAIC0yMjgsNyArMjI4LDcgQEAKIAkJCUZQR0FfV1JJVEVfMTsKIAkJfQogCX0KLSNlbmRpZgkvKiBDRkdfRlBHQV9TUEFSVEFOMiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMiAqLwogCiAJREJHICgiJXMsICIsCiAJICAgICAoKGluMzIgKEdQSU8wX0lSKSAmIEZQR0FfRE9ORSkgPT0gMCkgPyAiTk9UIERPTkUiIDogIkRPTkUiKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2RhdmUvY29tbW9uL3BjaS5jIGIvYm9hcmQvZGF2ZS9jb21tb24vcGNpLmMKaW5kZXggZjhmMTgwYy4uZWMwZDc2MSAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2ZS9jb21tb24vcGNpLmMKKysrIGIvYm9hcmQvZGF2ZS9jb21tb24vcGNpLmMKQEAgLTExOSwyNCArMTE5LDI0IEBACiAgIC8qCiAgICAqIENvbmZpZ3VyZSBQTFggUENJOTA1NAogICAgKi8KLSAgcGNpX3JlYWRfY29uZmlnX3dvcmQoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQ09NTUFORCwgJnN0YXR1cyk7CisgIHBjaV9yZWFkX2NvbmZpZ193b3JkKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9DT01NQU5ELCAmc3RhdHVzKTsKICAgc3RhdHVzIHw9IFBDSV9DT01NQU5EX01BU1RFUiB8IFBDSV9DT01NQU5EX0lPIHwgUENJX0NPTU1BTkRfTUVNT1JZOwotICBwY2lfd3JpdGVfY29uZmlnX3dvcmQoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQ09NTUFORCwgc3RhdHVzKTsKKyAgcGNpX3dyaXRlX2NvbmZpZ193b3JkKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9DT01NQU5ELCBzdGF0dXMpOwogCiAgIC8qIENoZWNrIHRoZSBsYXRlbmN5IHRpbWVyIGZvciB2YWx1ZXMgPj0gMHg2MC4KICAgICovCi0gIHBjaV9yZWFkX2NvbmZpZ19ieXRlKENGR19QQ0k5MDU0X0RFVl9GTiwgUENJX0xBVEVOQ1lfVElNRVIsICZ0aW1lcik7CisgIHBjaV9yZWFkX2NvbmZpZ19ieXRlKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9MQVRFTkNZX1RJTUVSLCAmdGltZXIpOwogICBpZiAodGltZXIgPCAweDYwKQogICAgIHsKLSAgICAgIHBjaV93cml0ZV9jb25maWdfYnl0ZShDRkdfUENJOTA1NF9ERVZfRk4sIFBDSV9MQVRFTkNZX1RJTUVSLCAweDYwKTsKKyAgICAgIHBjaV93cml0ZV9jb25maWdfYnl0ZShDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfTEFURU5DWV9USU1FUiwgMHg2MCk7CiAgICAgfQogCiAgIC8qIFNldCBJL08gYmFzZSByZWdpc3Rlci4KICAgICovCi0gIHBjaV93cml0ZV9jb25maWdfZHdvcmQoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQkFTRV9BRERSRVNTXzAsIENGR19QQ0k5MDU0X0lPQkFTRSk7Ci0gIHBjaV9yZWFkX2NvbmZpZ19kd29yZChDRkdfUENJOTA1NF9ERVZfRk4sIFBDSV9CQVNFX0FERFJFU1NfMCwgJmlvYmFzZSk7CisgIHBjaV93cml0ZV9jb25maWdfZHdvcmQoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgUENJX0JBU0VfQUREUkVTU18wLCBDT05GSUdfU1lTX1BDSTkwNTRfSU9CQVNFKTsKKyAgcGNpX3JlYWRfY29uZmlnX2R3b3JkKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9CQVNFX0FERFJFU1NfMCwgJmlvYmFzZSk7CiAKLSAgcGNpOTA1NF9pb2Jhc2UgPSBwY2lfbWVtX3RvX3BoeXMoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBpb2Jhc2UgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLKTsKKyAgcGNpOTA1NF9pb2Jhc2UgPSBwY2lfbWVtX3RvX3BoeXMoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgaW9iYXNlICYgUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSyk7CiAKICAgaWYgKHBjaTkwNTRfaW9iYXNlID09IDB4ZmZmZmZmZmYpCiAgICAgewpAQCAtMTQ5LDEzICsxNDksMTMgQEAKIHN0YXRpYyBzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSBwY2k5MDU0X2NvbmZpZ190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfUENJX1BOUAogICB7IFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsCi0gICAgUENJX0JVUyhDRkdfRVRIX0RFVl9GTiksIFBDSV9ERVYoQ0ZHX0VUSF9ERVZfRk4pLCBQQ0lfRlVOQyhDRkdfRVRIX0RFVl9GTiksCi0gICAgcGNpX2NmZ2Z1bmNfY29uZmlnX2RldmljZSwgeyBDRkdfRVRIX0lPQkFTRSwKLQkJCQkgQ0ZHX0VUSF9JT0JBU0UsCisgICAgUENJX0JVUyhDT05GSUdfU1lTX0VUSF9ERVZfRk4pLCBQQ0lfREVWKENPTkZJR19TWVNfRVRIX0RFVl9GTiksIFBDSV9GVU5DKENPTkZJR19TWVNfRVRIX0RFVl9GTiksCisgICAgcGNpX2NmZ2Z1bmNfY29uZmlnX2RldmljZSwgeyBDT05GSUdfU1lTX0VUSF9JT0JBU0UsCisJCQkJIENPTkZJR19TWVNfRVRIX0lPQkFTRSwKIAkJCQkgUENJX0NPTU1BTkRfSU8gfCBQQ0lfQ09NTUFORF9NQVNURVIgfX0sCiAjaWZkZWYgQ09ORklHX0RBU0FfU0lNCiAgIHsgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwKLSAgICBQQ0lfQlVTKENGR19QQ0k5MDU0X0RFVl9GTiksIFBDSV9ERVYoQ0ZHX1BDSTkwNTRfREVWX0ZOKSwgUENJX0ZVTkMoQ0ZHX1BDSTkwNTRfREVWX0ZOKSwKKyAgICBQQ0lfQlVTKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4pLCBQQ0lfREVWKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4pLCBQQ0lfRlVOQyhDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOKSwKICAgICBwY2lfZGFzYV9zaW1fY29uZmlnX3BjaTkwNTQgfSwKICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9kYXZpbmNpL2NvbW1vbi9taXNjLmMgYi9ib2FyZC9kYXZpbmNpL2NvbW1vbi9taXNjLmMKaW5kZXggNzFhM2I4Ny4uYmU3MDliZiAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2aW5jaS9jb21tb24vbWlzYy5jCisrKyBiL2JvYXJkL2RhdmluY2kvY29tbW9uL21pc2MuYwpAQCAtMzksNyArMzksNyBAQAogCiBzdGF0aWMgaW50IGR2X2dldF9wbGxtX291dHB1dCh1aW50MzJfdCBwbGxtKQogewotCXJldHVybiAocGxsbSArIDEpICogKENGR19IWl9DTE9DSyAvIDEwMDAwMDApOworCXJldHVybiAocGxsbSArIDEpICogKENPTkZJR19TWVNfSFpfQ0xPQ0sgLyAxMDAwMDAwKTsKIH0KIAogdm9pZCBkdl9kaXNwbGF5X2Nsa19pbmZvcyh2b2lkKQpAQCAtNTQsOSArNTQsOSBAQAogICovCiBpbnQgZHZldm1fcmVhZF9tYWNfYWRkcmVzcyh1aW50OF90ICpidWYpCiB7Ci0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUgorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCiAJLyogUmVhZCBNQUMgYWRkcmVzcy4gKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19FRVBST01fQUREUiwgMHg3RjAwLCBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDB4N0YwMCwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOLAogCQkgICAgICh1aW50OF90ICopICZidWZbMF0sIDYpKQogCQlnb3RvIGkyY2VycjsKIApAQCAtNjcsOSArNjcsOSBAQAogCXJldHVybiAxOyAvKiBGb3VuZCAqLwogCiBpMmNlcnI6Ci0JcHJpbnRmKCJSZWFkIGZyb20gRUVQUk9NIEAgMHglMDJ4IGZhaWxlZFxuIiwgQ0ZHX0kyQ19FRVBST01fQUREUik7CisJcHJpbnRmKCJSZWFkIGZyb20gRUVQUk9NIEAgMHglMDJ4IGZhaWxlZFxuIiwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIpOwogZXJyOgotI2VuZGlmIC8qIENGR19JMkNfRUVQUk9NX0FERFIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAqLwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9kYXZpbmNpL2NvbW1vbi9wc2MuYyBiL2JvYXJkL2RhdmluY2kvY29tbW9uL3BzYy5jCmluZGV4IDAwZGMwN2MuLmQ1MzhkNTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmluY2kvY29tbW9uL3BzYy5jCisrKyBiL2JvYXJkL2RhdmluY2kvY29tbW9uL3BzYy5jCkBAIC04MSw3ICs4MSw3IEBACiB9CiAKIC8qIElmIERTUExJTksgaXMgdXNlZCwgd2UgZG9uJ3Qgd2FudCBVLUJvb3QgdG8gcG93ZXIgb24gdGhlIERTUC4gKi8KLSNpZiAhZGVmaW5lZChDRkdfVVNFX0RTUExJTkspCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19VU0VfRFNQTElOSykKIHZvaWQgZHNwX29uKHZvaWQpCiB7CiAJaW50IGk7CkBAIC0xMTQsNCArMTE0LDQgQEAKIAogCVJFRyhQU0NfR0JMQ1RMKSAmPSB+MHgxZjsKIH0KLSNlbmRpZiAvKiBDRkdfVVNFX0RTUExJTksgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1VTRV9EU1BMSU5LICovCmRpZmYgLS1naXQgYS9ib2FyZC9kYXZpbmNpL2R2ZXZtL2R2ZXZtLmMgYi9ib2FyZC9kYXZpbmNpL2R2ZXZtL2R2ZXZtLmMKaW5kZXggMTUxZjhhOS4uYWJmNjBiMyAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2aW5jaS9kdmV2bS9kdmV2bS5jCisrKyBiL2JvYXJkL2RhdmluY2kvZHZldm0vZHZldm0uYwpAQCAtNTMsMTAgKzUzLDEwIEBACiAJbHBzY19vbihEQVZJTkNJX0xQU0NfVElNRVIxKTsKIAlscHNjX29uKERBVklOQ0lfTFBTQ19HUElPKTsKIAotI2lmICFkZWZpbmVkKENGR19VU0VfRFNQTElOSykKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1VTRV9EU1BMSU5LKQogCS8qIFBvd2VydXAgdGhlIERTUCAqLwogCWRzcF9vbigpOwotI2VuZGlmIC8qIENGR19VU0VfRFNQTElOSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVVNFX0RTUExJTksgKi8KIAogCS8qIEJyaW5ndXAgVUFSVDAgb3V0IG9mIHJlc2V0ICovCiAJUkVHKFVBUlQwX1BXUkVNVV9NR01UKSA9IDB4MDAwMGUwMDM7CmRpZmYgLS1naXQgYS9ib2FyZC9kYXZpbmNpL3NjaG1vb2dpZS9zY2htb29naWUuYyBiL2JvYXJkL2RhdmluY2kvc2NobW9vZ2llL3NjaG1vb2dpZS5jCmluZGV4IDk5ZmQzMjYuLjM1MDRhMmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmluY2kvc2NobW9vZ2llL3NjaG1vb2dpZS5jCisrKyBiL2JvYXJkL2RhdmluY2kvc2NobW9vZ2llL3NjaG1vb2dpZS5jCkBAIC01MywxMCArNTMsMTAgQEAKIAlscHNjX29uKERBVklOQ0lfTFBTQ19USU1FUjEpOwogCWxwc2Nfb24oREFWSU5DSV9MUFNDX0dQSU8pOwogCi0jaWYgIWRlZmluZWQoQ0ZHX1VTRV9EU1BMSU5LKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfVVNFX0RTUExJTkspCiAJLyogUG93ZXJ1cCB0aGUgRFNQICovCiAJZHNwX29uKCk7Ci0jZW5kaWYgLyogQ0ZHX1VTRV9EU1BMSU5LICovCisjZW5kaWYgLyogQ09ORklHX1NZU19VU0VfRFNQTElOSyAqLwogCiAJLyogQnJpbmd1cCBVQVJUMCBvdXQgb2YgcmVzZXQgKi8KIAlSRUcoVUFSVDBfUFdSRU1VX01HTVQpID0gMHgwMDAwZTAwMzsKQEAgLTEyNSwxMyArMTI1LDEzIEBACiAJZHZfZGlzcGxheV9jbGtfaW5mb3MoKTsKIAogCS8qIFNldCBzZXJpYWwgbnVtYmVyIGZyb20gVUlEIGNoaXAgKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX1VJRF9BRERSLCAwLCAxLCBidWYsIDgpKSB7Ci0JCXByaW50ZigiXG5VSUQgQCAweCUwMnggcmVhZCBGQUlMRUQhISFcbiIsIENGR19VSURfQUREUik7CisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfVUlEX0FERFIsIDAsIDEsIGJ1ZiwgOCkpIHsKKwkJcHJpbnRmKCJcblVJRCBAIDB4JTAyeCByZWFkIEZBSUxFRCEhIVxuIiwgQ09ORklHX1NZU19VSURfQUREUik7CiAJCWZvcmNlZW52KCJzZXJpYWwjIiwgIkZBSUxFRCIpOwogCX0gZWxzZSB7CiAJCWlmIChidWZbMF0gIT0gMHg3MCkgewogCQkJLyogRGV2aWNlIEZhbWlseSBDb2RlICovCi0JCQlwcmludGYoIlxuVUlEIEAgMHglMDJ4IHJlYWQgRkFJTEVEISEhXG4iLCBDRkdfVUlEX0FERFIpOworCQkJcHJpbnRmKCJcblVJRCBAIDB4JTAyeCByZWFkIEZBSUxFRCEhIVxuIiwgQ09ORklHX1NZU19VSURfQUREUik7CiAJCQlmb3JjZWVudigic2VyaWFsIyIsICJGQUlMRUQiKTsKIAkJfQogCX0KQEAgLTE0MSw3ICsxNDEsNyBAQAogCQl0bXBbMF0gPSBjcmNfdGJsW3RtcFswXSBeIGJ1ZltpXV07CiAKIAlpZiAodG1wWzBdICE9IDApIHsKLQkJcHJpbnRmKCJcblVJRCBAIDB4JTAyeCAtIEJBRCBDUkMhISFcbiIsIENGR19VSURfQUREUik7CisJCXByaW50ZigiXG5VSUQgQCAweCUwMnggLSBCQUQgQ1JDISEhXG4iLCBDT05GSUdfU1lTX1VJRF9BRERSKTsKIAkJZm9yY2VlbnYoInNlcmlhbCMiLCAiRkFJTEVEIik7CiAJfSBlbHNlIHsKIAkJLyogQ1JDIE9LLCBzZXQgInNlcmlhbCIgZW52IHZhcmlhYmxlICovCmRpZmYgLS1naXQgYS9ib2FyZC9kYXZpbmNpL3NmZnNkci9zZmZzZHIuYyBiL2JvYXJkL2RhdmluY2kvc2Zmc2RyL3NmZnNkci5jCmluZGV4IDZlODc4ZWIuLjkyOTZkN2IgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmluY2kvc2Zmc2RyL3NmZnNkci5jCisrKyBiL2JvYXJkL2RhdmluY2kvc2Zmc2RyL3NmZnNkci5jCkBAIC02MywxMCArNjMsMTAgQEAKIAlscHNjX29uKERBVklOQ0lfTFBTQ19USU1FUjEpOwogCWxwc2Nfb24oREFWSU5DSV9MUFNDX0dQSU8pOwogCi0jaWYgIWRlZmluZWQoQ0ZHX1VTRV9EU1BMSU5LKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfVVNFX0RTUExJTkspCiAJLyogUG93ZXJ1cCB0aGUgRFNQICovCiAJZHNwX29uKCk7Ci0jZW5kaWYgLyogQ0ZHX1VTRV9EU1BMSU5LICovCisjZW5kaWYgLyogQ09ORklHX1NZU19VU0VfRFNQTElOSyAqLwogCiAJLyogQnJpbmd1cCBVQVJUMCBvdXQgb2YgcmVzZXQgKi8KIAlSRUcoVUFSVDBfUFdSRU1VX01HTVQpID0gMHgwMDAwZTAwMzsKQEAgLTk5LDM1ICs5OSwzNSBAQAogCXVfaW50MzJfdCB2YWx1ZSwgbWFjWzJdLCBhZGRyZXNzOwogCiAJLyogUmVhZCBJbnRlZ3JpdHkgZGF0YSBzdHJ1Y3R1cmUgY2hlY2t3b3JkLiAqLwotCWlmIChpMmNfcmVhZChDRkdfSTJDX0VFUFJPTV9BRERSLCBJTlRFR1JJVFlfQ0hFQ0tXT1JEX09GRlNFVCwKLQkJICAgICBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwgKHVpbnQ4X3QgKikgJnZhbHVlLCA0KSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIElOVEVHUklUWV9DSEVDS1dPUkRfT0ZGU0VULAorCQkgICAgIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiwgKHVpbnQ4X3QgKikgJnZhbHVlLCA0KSkKIAkJZ290byBlcnI7CiAJaWYgKHZhbHVlICE9IElOVEVHUklUWV9DSEVDS1dPUkRfVkFMVUUpCiAJCXJldHVybiAwOwogCiAJLyogUmVhZCBTWVNDRkcgc3RydWN0dXJlIG9mZnNldC4gKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19FRVBST01fQUREUiwgSU5URUdSSVRZX1NZU0NGR19PRkZTRVQsCi0JCSAgICAgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4sICh1aW50OF90ICopICZ2YWx1ZSwgNCkpCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBJTlRFR1JJVFlfU1lTQ0ZHX09GRlNFVCwKKwkJICAgICBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sICh1aW50OF90ICopICZ2YWx1ZSwgNCkpCiAJCWdvdG8gZXJyOwogCWFkZHJlc3MgPSAweDgwMCArIChpbnQpIHZhbHVlOyAvKiBBZGRyZXNzIG9mIFNZU0NGRyBzdHJ1Y3R1cmUuICovCiAKIAkvKiBSZWFkIE5FVCBDT05GSUcgc3RydWN0dXJlIG9mZnNldC4gKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19FRVBST01fQUREUiwgYWRkcmVzcywKLQkJICAgICBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwgKHVpbnQ4X3QgKikgJnZhbHVlLCA0KSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIGFkZHJlc3MsCisJCSAgICAgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOLCAodWludDhfdCAqKSAmdmFsdWUsIDQpKQogCQlnb3RvIGVycjsKIAlhZGRyZXNzID0gMHg4MDAgKyAoaW50KSB2YWx1ZTsgLyogQWRkcmVzcyBvZiBORVQgQ09ORklHIHN0cnVjdHVyZS4gKi8KIAlhZGRyZXNzICs9IDEyOyAvKiBBZGRyZXNzIG9mIE5FVCBJTlRFUkZBQ0UgQ09ORklHIHN0cnVjdHVyZS4gKi8KIAogCS8qIFJlYWQgTkVUIElOVEVSRkFDRSBDT05GSUcgMiBzdHJ1Y3R1cmUgb2Zmc2V0LiAqLwotCWlmIChpMmNfcmVhZChDRkdfSTJDX0VFUFJPTV9BRERSLCBhZGRyZXNzLAotCQkgICAgIENGR19JMkNfRUVQUk9NX0FERFJfTEVOLCAodWludDhfdCAqKSAmdmFsdWUsIDQpKQorCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgYWRkcmVzcywKKwkJICAgICBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sICh1aW50OF90ICopICZ2YWx1ZSwgNCkpCiAJCWdvdG8gZXJyOwogCWFkZHJlc3MgPSAweDgwMCArIDE2ICsgKGludCkgdmFsdWU7CS8qIEFkZHJlc3Mgb2YgTkVUIElOVEVSRkFDRQogCQkJCQkJICogQ09ORklHIDIgc3RydWN0dXJlLiAqLwogCiAJLyogUmVhZCBNQUMgYWRkcmVzcy4gKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19FRVBST01fQUREUiwgYWRkcmVzcywKLQkJICAgICBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwgKHVpbnQ4X3QgKikgJm1hY1swXSwgOCkpCisJaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBhZGRyZXNzLAorCQkgICAgIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiwgKHVpbnQ4X3QgKikgJm1hY1swXSwgOCkpCiAJCWdvdG8gZXJyOwogCiAJYnVmWzBdID0gbWFjWzBdID4+IDI0OwpAQCAtMTQwLDcgKzE0MCw3IEBACiAJcmV0dXJuIDE7IC8qIEZvdW5kICovCiAKIGVycjoKLQlwcmludGYoIlJlYWQgZnJvbSBFRVBST00gQCAweCUwMnggZmFpbGVkXG4iLCBDRkdfSTJDX0VFUFJPTV9BRERSKTsKKwlwcmludGYoIlJlYWQgZnJvbSBFRVBST00gQCAweCUwMnggZmFpbGVkXG4iLCBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE1NiwxMCArMTU2LDEwIEBACiAJZHZfZGlzcGxheV9jbGtfaW5mb3MoKTsKIAogCS8qIENvbmZpZ3VyZSBJMkMgc3dpdGNoIChQQ0E5NTQzKSB0byBlbmFibGUgY2hhbm5lbCAwLiAqLwotCWkyY2J1ZiA9IENGR19JMkNfUENBOTU0M19FTkFCTEVfQ0gwOwotCWlmIChpMmNfd3JpdGUoQ0ZHX0kyQ19QQ0E5NTQzX0FERFIsIDAsCi0JCSAgICAgIENGR19JMkNfUENBOTU0M19BRERSX0xFTiwgJmkyY2J1ZiwgMSkpIHsKLQkJcHJpbnRmKCJXcml0ZSB0byBNVVggQCAweCUwMnggZmFpbGVkXG4iLCBDRkdfSTJDX1BDQTk1NDNfQUREUik7CisJaTJjYnVmID0gQ09ORklHX1NZU19JMkNfUENBOTU0M19FTkFCTEVfQ0gwOworCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUENBOTU0M19BRERSLCAwLAorCQkgICAgICBDT05GSUdfU1lTX0kyQ19QQ0E5NTQzX0FERFJfTEVOLCAmaTJjYnVmLCAxKSkgeworCQlwcmludGYoIldyaXRlIHRvIE1VWCBAIDB4JTAyeCBmYWlsZWRcbiIsIENPTkZJR19TWVNfSTJDX1BDQTk1NDNfQUREUik7CiAJCXJldHVybiAxOwogCX0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2aW5jaS9zb25hdGEvc29uYXRhLmMgYi9ib2FyZC9kYXZpbmNpL3NvbmF0YS9zb25hdGEuYwppbmRleCBhNmZlODI1Li42ZGU5MzU2IDEwMDY0NAotLS0gYS9ib2FyZC9kYXZpbmNpL3NvbmF0YS9zb25hdGEuYworKysgYi9ib2FyZC9kYXZpbmNpL3NvbmF0YS9zb25hdGEuYwpAQCAtNTIsMTAgKzUyLDEwIEBACiAJbHBzY19vbihEQVZJTkNJX0xQU0NfVElNRVIxKTsKIAlscHNjX29uKERBVklOQ0lfTFBTQ19HUElPKTsKIAotI2lmICFkZWZpbmVkKENGR19VU0VfRFNQTElOSykKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1VTRV9EU1BMSU5LKQogCS8qIFBvd2VydXAgdGhlIERTUCAqLwogCWRzcF9vbigpOwotI2VuZGlmIC8qIENGR19VU0VfRFNQTElOSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVVNFX0RTUExJTksgKi8KIAogCS8qIEJyaW5ndXAgVUFSVDAgb3V0IG9mIHJlc2V0ICovCiAJUkVHKFVBUlQwX1BXUkVNVV9NR01UKSA9IDB4MDAwMGUwMDM7CmRpZmYgLS1naXQgYS9ib2FyZC9kYmF1MXgwMC9kYmF1MXgwMC5jIGIvYm9hcmQvZGJhdTF4MDAvZGJhdTF4MDAuYwppbmRleCA2MjlkYzMxLi40Mjc1NmY1IDEwMDY0NAotLS0gYS9ib2FyZC9kYmF1MXgwMC9kYmF1MXgwMC5jCisrKyBiL2JvYXJkL2RiYXUxeDAwL2RiYXUxeDAwLmMKQEAgLTEwNiwxOSArMTA2LDE5IEBACiAJLyogV2UgZG9udCBuZWVkIHRoZWVzZSB1bmxlc3Mgd2UgcnVuIHdob2xlIHBjbWNpYSBwYWNrYWdlICovCiAJd3JpdGVfb25lX3RsYigyMCwgICAgICAgICAgICAgICAgIC8qIGluZGV4ICovCiAJCSAgICAgIDB4MDFmZmUwMDAsICAgICAgICAgLyogUGFnZW1hc2ssIDE2IE1CIHBhZ2VzICovCi0JCSAgICAgIENGR19QQ01DSUFfSU9fQkFTRSwgLyogSGkgKi8KKwkJICAgICAgQ09ORklHX1NZU19QQ01DSUFfSU9fQkFTRSwgLyogSGkgKi8KIAkJICAgICAgMHgzQzAwMDAxNywgICAgICAgICAvKiBMbzAgKi8KIAkJICAgICAgMHgzQzIwMDAxNyk7ICAgICAgICAvKiBMbzEgKi8KIAogCXdyaXRlX29uZV90bGIoMjEsICAgICAgICAgICAgICAgICAgIC8qIGluZGV4ICovCiAJCSAgICAgIDB4MDFmZmUwMDAsICAgICAgICAgICAvKiBQYWdlbWFzaywgMTYgTUIgcGFnZXMgKi8KLQkJICAgICAgQ0ZHX1BDTUNJQV9BVFRSX0JBU0UsIC8qIEhpICovCisJCSAgICAgIENPTkZJR19TWVNfUENNQ0lBX0FUVFJfQkFTRSwgLyogSGkgKi8KIAkJICAgICAgMHgzRDAwMDAxNywgICAgICAgICAgIC8qIExvMCAqLwogCQkgICAgICAweDNEMjAwMDE3KTsgICAgICAgICAgLyogTG8xICovCiAjZW5kaWYJLyogMCAqLwogCXdyaXRlX29uZV90bGIoMjIsICAgICAgICAgICAgICAgICAgIC8qIGluZGV4ICovCiAJCSAgICAgIDB4MDFmZmUwMDAsICAgICAgICAgICAvKiBQYWdlbWFzaywgMTYgTUIgcGFnZXMgKi8KLQkJICAgICAgQ0ZHX1BDTUNJQV9NRU1fQUREUiwgIC8qIEhpICovCisJCSAgICAgIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSLCAgLyogSGkgKi8KIAkJICAgICAgMHgzRTAwMDAxNywgICAgICAgICAgIC8qIExvMCAqLwogCQkgICAgICAweDNFMjAwMDE3KTsgICAgICAgICAgLyogTG8xICovCiAjZW5kaWYJLyogQ09ORklHX0lERV9QQ01DSUEgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2RiYXUxeDAwL2ZsYXNoLmMgYi9ib2FyZC9kYmF1MXgwMC9mbGFzaC5jCmluZGV4IDNjZjI5ZTguLmEyZmVkMWQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RiYXUxeDAwL2ZsYXNoLmMKKysrIGIvYm9hcmQvZGJhdTF4MDAvZmxhc2guYwpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBmbGFzaF9pbml0KCkKZGlmZiAtLWdpdCBhL2JvYXJkL2RiYXUxeDAwL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL2RiYXUxeDAwL2xvd2xldmVsX2luaXQuUwppbmRleCAxM2U2YmZjLi44NDJmYjc2IDEwMDY0NAotLS0gYS9ib2FyZC9kYmF1MXgwMC9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQvZGJhdTF4MDAvbG93bGV2ZWxfaW5pdC5TCkBAIC04LDggKzgsOCBAQAogI2RlZmluZSBBVTE1MDBfU1lTX0FERFIJCTB4QjE5MDAwMDAKICNkZWZpbmUgc3lzX2VuZGlhbgkJMHgwMDM4CiAjZGVmaW5lIENQMF9Db25maWcwCQkkMTYKLSNkZWZpbmUgQ1BVX1NDQUxFCQkoKENGR19NSFopIC8gMTIpIC8qIENQVSBjbG9jayBpcyBhIG11bHRpcGxlIG9mIDEyIE1IeiAqLwotI2RlZmluZSBNRU1fMU1TCQkJKChDRkdfTUhaKSAqIDEwMDApCisjZGVmaW5lIENQVV9TQ0FMRQkJKChDT05GSUdfU1lTX01IWikgLyAxMikgLyogQ1BVIGNsb2NrIGlzIGEgbXVsdGlwbGUgb2YgMTIgTUh6ICovCisjZGVmaW5lIE1FTV8xTVMJCQkoKENPTkZJR19TWVNfTUhaKSAqIDEwMDApCiAKIAkudGV4dAogCS5zZXQgbm9yZW9yZGVyCmRpZmYgLS1naXQgYS9ib2FyZC9kZWx0YS9kZWx0YS5jIGIvYm9hcmQvZGVsdGEvZGVsdGEuYwppbmRleCA2ZTIyNzc0Li44Nzg0MTZmIDEwMDY0NAotLS0gYS9ib2FyZC9kZWx0YS9kZWx0YS5jCisrKyBiL2JvYXJkL2RlbHRhL2RlbHRhLmMKQEAgLTMwNCw4ICszMDQsOCBAQAogCUdQQ1IwID0gKDE8PDE3KTsJLyogZHJpdmUgR1BJTzE3IGxvdyAqLwogCUdQU1IwID0gKDE8PDE3KTsJLyogZHJpdmUgR1BJTzE3IGhpZ2ggKi8KIAotI2lmIENGR19EQTkwMzBfRVhUT05fREVMQVkKLQl1ZGVsYXkoKHVuc2lnbmVkIGxvbmcpIENGR19EQTkwMzBfRVhUT05fREVMQVkpOwkvKiB3YWl0IGZvciBEQTkwMzAgKi8KKyNpZiBDT05GSUdfU1lTX0RBOTAzMF9FWFRPTl9ERUxBWQorCXVkZWxheSgodW5zaWduZWQgbG9uZykgQ09ORklHX1NZU19EQTkwMzBfRVhUT05fREVMQVkpOwkvKiB3YWl0IGZvciBEQTkwMzAgKi8KICNlbmRpZgogCUdQQ1IwID0gKDE8PDE3KTsJLyogZHJpdmUgR1BJTzE3IGxvdyAqLwogCmRpZmYgLS1naXQgYS9ib2FyZC9kZWx0YS9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9kZWx0YS9sb3dsZXZlbF9pbml0LlMKaW5kZXggZjA1OWRiNS4uZWVmNjMxOCAxMDA2NDQKLS0tIGEvYm9hcmQvZGVsdGEvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL2RlbHRhL2xvd2xldmVsX2luaXQuUwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLm1hY3JvIHdhaXQgdGltZQogCWxkcgkJcjIsID1PU0NSCkBAIC0xMDgsMTAgKzEwOCwxMCBAQAogCW9ycgkJcjEsIHIxLCAjTURDTkZHX0RNQ0VOCiAJc3RyCQlyMSwgW3IwXQogCi0jaWZuZGVmIENGR19TS0lQX0RSQU1fU0NSVUIKKyNpZm5kZWYgQ09ORklHX1NZU19TS0lQX0RSQU1fU0NSVUIKIAkvKiBzY3J1Yi9pbml0IFNEUkFNIGlmIGVuYWJsZWQvcHJlc2VudCAqLwotCWxkcglyOCwgPUNGR19EUkFNX0JBU0UJLyogYmFzZSBhZGRyZXNzIG9mIFNEUkFNIChDRkdfRFJBTV9CQVNFKSAqLwotCWxkcglyOSwgPUNGR19EUkFNX1NJWkUJLyogc2l6ZSBvZiBtZW1vcnkgdG8gc2NydWIgKENGR19EUkFNX1NJWkUpICovCisJbGRyCXI4LCA9Q09ORklHX1NZU19EUkFNX0JBU0UJLyogYmFzZSBhZGRyZXNzIG9mIFNEUkFNIChDT05GSUdfU1lTX0RSQU1fQkFTRSkgKi8KKwlsZHIJcjksID1DT05GSUdfU1lTX0RSQU1fU0laRQkvKiBzaXplIG9mIG1lbW9yeSB0byBzY3J1YiAoQ09ORklHX1NZU19EUkFNX1NJWkUpICovCiAJbW92CXIwLCAjMAkJCS8qIHNjcnViIHdpdGggMHgwMDAwOjAwMDAgKi8KIAltb3YJcjEsICMwCiAJbW92CXIyLCAjMApAQCAtMTI1LDcgKzEyNSw3IEBACiAJc3RtaWEJcjghLCB7cjAtcjd9CiAJYmVxCTE1ZgogCWIJMTBiCi0jZW5kaWYgLyogQ0ZHX1NLSVBfRFJBTV9TQ1JVQiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfU0tJUF9EUkFNX1NDUlVCICovCiAKIDE1OgogCS8qIE1hc2sgYWxsIGludGVycnVwdHMgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2RlbHRhL25hbmQuYyBiL2JvYXJkL2RlbHRhL25hbmQuYwppbmRleCBjZWI3OThiLi4xNDM4MmY1IDEwMDY0NAotLS0gYS9ib2FyZC9kZWx0YS9uYW5kLmMKKysrIGIvYm9hcmQvZGVsdGEvbmFuZC5jCkBAIC0yOCwxOSArMjgsMTkgQEAKICNpbmNsdWRlIDxuYW5kLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KIAotI2lmZGVmIENGR19ERkNfREVCVUcxCisjaWZkZWYgQ09ORklHX1NZU19ERkNfREVCVUcxCiAjIGRlZmluZSBERkNfREVCVUcxKGZtdCwgYXJncy4uLikgcHJpbnRmKGZtdCwgIyNhcmdzKQogI2Vsc2UKICMgZGVmaW5lIERGQ19ERUJVRzEoZm10LCBhcmdzLi4uKQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfREZDX0RFQlVHMgorI2lmZGVmIENPTkZJR19TWVNfREZDX0RFQlVHMgogIyBkZWZpbmUgREZDX0RFQlVHMihmbXQsIGFyZ3MuLi4pIHByaW50ZihmbXQsICMjYXJncykKICNlbHNlCiAjIGRlZmluZSBERkNfREVCVUcyKGZtdCwgYXJncy4uLikKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RGQ19ERUJVRzMKKyNpZmRlZiBDT05GSUdfU1lTX0RGQ19ERUJVRzMKICMgZGVmaW5lIERGQ19ERUJVRzMoZm10LCBhcmdzLi4uKSBwcmludGYoZm10LCAjI2FyZ3MpCiAjZWxzZQogIyBkZWZpbmUgREZDX0RFQlVHMyhmbXQsIGFyZ3MuLi4pCkBAIC0yMDYsNyArMjA2LDcgQEAKIHN0YXRpYyB2b2lkIGRmY19jbGVhcl9uZGRiKHZvaWQpCiB7CiAJTkRDUiAmPSB+TkRDUl9ORF9SVU47Ci0Jd2FpdF91cyhDRkdfTkFORF9PVEhFUl9UTyk7CisJd2FpdF91cyhDT05GSUdfU1lTX05BTkRfT1RIRVJfVE8pOwogfQogCiAvKiB3YWl0X2V2ZW50IHdpdGggdGltZW91dCAqLwpAQCAtMjE3LDkgKzIxNyw5IEBACiAJaWYoIWV2ZW50KQogCQlyZXR1cm4gMHhmZjAwMDAwMDsKIAllbHNlIGlmKGV2ZW50ICYgKE5EU1JfQ1MwX0NNREQgfCBORFNSX0NTMF9CQkQpKQotCQl0aW1lb3V0ID0gQ0ZHX05BTkRfUFJPR19FUkFTRV9UTyAqIE9TQ1JfQ0xLX0ZSRVE7CisJCXRpbWVvdXQgPSBDT05GSUdfU1lTX05BTkRfUFJPR19FUkFTRV9UTyAqIE9TQ1JfQ0xLX0ZSRVE7CiAJZWxzZQotCQl0aW1lb3V0ID0gQ0ZHX05BTkRfT1RIRVJfVE8gKiBPU0NSX0NMS19GUkVROworCQl0aW1lb3V0ID0gQ09ORklHX1NZU19OQU5EX09USEVSX1RPICogT1NDUl9DTEtfRlJFUTsKIAogCXdoaWxlKDEpIHsKIAkJbmRzciA9IE5EU1I7CkBAIC0yNDIsNyArMjQyLDcgQEAKIAlpbnQgcmV0cnkgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3RhdHVzOwogCi0Jd2hpbGUocmV0cnkrKyA8PSBDRkdfTkFORF9TRU5EQ01EX1JFVFJZKSB7CisJd2hpbGUocmV0cnkrKyA8PSBDT05GSUdfU1lTX05BTkRfU0VORENNRF9SRVRSWSkgewogCQkvKiBDbGVhciBORFNSICovCiAJCU5EU1IgPSAweEZGRjsKIApAQCAtNDMzLDggKzQzMyw4IEBACiAJLyogdHVybiBvbiB0aGUgTkFORCBDb250cm9sbGVyIENsb2NrICgxMDQgTUh6IEAgRDApICovCiAJQ0tFTkEgfD0gKENLRU5BXzRfTkFORCB8IENLRU5BXzlfU01DKTsKIAotI3VuZGVmIENGR19USU1JTkdfVElHSFQKLSNpZm5kZWYgQ0ZHX1RJTUlOR19USUdIVAorI3VuZGVmIENPTkZJR19TWVNfVElNSU5HX1RJR0hUCisjaWZuZGVmIENPTkZJR19TWVNfVElNSU5HX1RJR0hUCiAJdENIID0gTUlOKCgodW5zaWduZWQgbG9uZykgKE5BTkRfVElNSU5HX3RDSCAqIERGQ19DTEtfUEVSX1VTKSArIDEpLAogCQkgIERGQ19NQVhfdENIKTsKIAl0Q1MgPSBNSU4oKCh1bnNpZ25lZCBsb25nKSAoTkFORF9USU1JTkdfdENTICogREZDX0NMS19QRVJfVVMpICsgMSksCkBAIC00NzMsNyArNDczLDcgQEAKIAkJICAgREZDX01BWF90V0hSKTsKIAl0QVIgPSBNSU4oKCh1bnNpZ25lZCBsb25nKSAoTkFORF9USU1JTkdfdEFSICogREZDX0NMS19QRVJfVVMpIC0gMiksCiAJCSAgREZDX01BWF90QVIpOwotI2VuZGlmIC8qIENGR19USU1JTkdfVElHSFQgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1RJTUlOR19USUdIVCAqLwogCiAKIAlERkNfREVCVUcyKCJ0Q0g9JXUsIHRDUz0ldSwgdFdIPSV1LCB0V1A9JXUsIHRSSD0ldSwgdFJQPSV1LCB0Uj0ldSwgdFdIUj0ldSwgdEFSPSV1LlxuIiwgdENILCB0Q1MsIHRXSCwgdFdQLCB0UkgsIHRSUCwgdFIsIHRXSFIsIHRBUik7CmRpZmYgLS1naXQgYS9ib2FyZC9kbnAxMTEwL2ZsYXNoLmMgYi9ib2FyZC9kbnAxMTEwL2ZsYXNoLmMKaW5kZXggODRiODIwYS4uYzgxYWJjNSAxMDA2NDQKLS0tIGEvYm9hcmQvZG5wMTExMC9mbGFzaC5jCisrKyBiL2JvYXJkL2RucDExMTAvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjdW5kZWYgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC02NSw3ICs2NSw3IEBACiAgICBpbnQgaTsKICAgICB1bG9uZyBzaXplID0gMDsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspCisgICAgZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspCiAgICAgewogCXN3aXRjaCAoaSkKIAl7CkBAIC04Myw4ICs4Myw4IEBACiAgICAgLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAgICAgICovCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19GTEFTSF9CQVNFLAotCQkgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gIC0gMSwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gIC0gMSwKIAkJICAmZmxhc2hfaW5mb1swXSk7CiAKICAgICBmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0xOTQsMTAgKzE5NCwxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogICAgIH0KIAogCWFkZHJbMF0gPSAoRlBXKTB4MDBGRjAwRkY7ICAgICAgLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTI2Nyw3ICsyNjcsNyBAQAogCQkJKmFkZHIgPSAoRlBXKTB4MDBEMDAwRDA7CS8qIGVyYXNlIGNvbmZpcm0gKi8KIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykweDAwODAwMDgwKSAhPSAoRlBXKTB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gKEZQVykweDAwQjAwMEIwOyAvKiBzdXNwZW5kIGVyYXNlCSAgKi8KIAkJCQkJKmFkZHIgPSAoRlBXKTB4MDBGRjAwRkY7IC8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDAyLDcgKzQwMiw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2VYYWxpb24vZVhhbGlvbi5jIGIvYm9hcmQvZVhhbGlvbi9lWGFsaW9uLmMKaW5kZXggYzVkZmYyNC4uMzQ1MzhjNCAxMDA2NDQKLS0tIGEvYm9hcmQvZVhhbGlvbi9lWGFsaW9uLmMKKysrIGIvYm9hcmQvZVhhbGlvbi9lWGFsaW9uLmMKQEAgLTU2LDEyICs1NiwxMiBAQAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewogCWludCBpLCBjbnQ7Ci0Jdm9sYXRpbGUgdWNoYXIgKmJhc2UgPSBDRkdfU0RSQU1fQkFTRTsKKwl2b2xhdGlsZSB1Y2hhciAqYmFzZSA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAl2b2xhdGlsZSB1bG9uZyAqYWRkcjsKIAl1bG9uZyBzYXZlWzMyXTsKIAl1bG9uZyB2YWwsIHJldCA9IDA7CiAKLQlmb3IgKGkgPSAwLCBjbnQgPSAoQ0ZHX01BWF9SQU1fU0laRSAvIHNpemVvZiAobG9uZykpID4+IDE7IGNudCA+IDA7CisJZm9yIChpID0gMCwgY250ID0gKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC8gc2l6ZW9mIChsb25nKSkgPj4gMTsgY250ID4gMDsKIAkgICAgIGNudCA+Pj0gMSkgewogCQlhZGRyID0gKHZvbGF0aWxlIHVsb25nICopIGJhc2UgKyBjbnQ7CiAJCXNhdmVbaSsrXSA9ICphZGRyOwpAQCAtNzcsNyArNzcsNyBAQAogCQlnb3RvIERvbmU7CiAJfQogCi0JZm9yIChjbnQgPSAxOyBjbnQgPD0gQ0ZHX01BWF9SQU1fU0laRSAvIHNpemVvZiAobG9uZyk7IGNudCA8PD0gMSkgeworCWZvciAoY250ID0gMTsgY250IDw9IENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC8gc2l6ZW9mIChsb25nKTsgY250IDw8PSAxKSB7CiAJCWFkZHIgPSAodm9sYXRpbGUgdWxvbmcgKikgYmFzZSArIGNudDsKIAkJdmFsID0gKmFkZHI7CiAJCSphZGRyID0gc2F2ZVstLWldOwpAQCAtMTAwLDcgKzEwMCw3IEBACiAJCX0KIAl9CiAKLQlyZXQgPSBDRkdfTUFYX1JBTV9TSVpFOworCXJldCA9IENPTkZJR19TWVNfTUFYX1JBTV9TSVpFOwogICAgICAgRG9uZToKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZWFydGhsY2QvZmF2ci0zMi1lemtpdC9mbGFzaC5jIGIvYm9hcmQvZWFydGhsY2QvZmF2ci0zMi1lemtpdC9mbGFzaC5jCmluZGV4IDJhYTk0MTUuLjVmNzNmZjAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VhcnRobGNkL2ZhdnItMzItZXpraXQvZmxhc2guYworKysgYi9ib2FyZC9lYXJ0aGxjZC9mYXZyLTMyLWV6a2l0L2ZsYXNoLmMKQEAgLTUzLDE3ICs1MywxNyBAQAogCXVuc2lnbmVkIGxvbmcgYWRkcjsKIAl1bnNpZ25lZCBpbnQgaTsKIAotCWZsYXNoX2luZm9bMF0uc2l6ZSA9IENGR19GTEFTSF9TSVpFOworCWZsYXNoX2luZm9bMF0uc2l6ZSA9IENPTkZJR19TWVNfRkxBU0hfU0laRTsKIAlmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudCA9IDEzNTsKIAotCWZsYXNoX2lkZW50aWZ5KHVuY2FjaGVkKCh2b2lkICopQ0ZHX0ZMQVNIX0JBU0UpLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfaWRlbnRpZnkodW5jYWNoZWQoKHZvaWQgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UpLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmb3IgKGkgPSAwLCBhZGRyID0gMDsgaSA8IDg7IGkrKywgYWRkciArPSAweDIwMDApCiAJCWZsYXNoX2luZm9bMF0uc3RhcnRbaV0gPSBhZGRyOwogCWZvciAoOyBpIDwgZmxhc2hfaW5mb1swXS5zZWN0b3JfY291bnQ7IGkrKywgYWRkciArPSAweDEwMDAwKQogCQlmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldID0gYWRkcjsKIAotCXJldHVybiBDRkdfRkxBU0hfU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19GTEFTSF9TSVpFOwogfQogCiB2b2lkIGZsYXNoX3ByaW50X2luZm8oZmxhc2hfaW5mb190ICppbmZvKQpkaWZmIC0tZ2l0IGEvYm9hcmQvZWx0ZWMvYmFiN3h4L2FzbV9pbml0LlMgYi9ib2FyZC9lbHRlYy9iYWI3eHgvYXNtX2luaXQuUwppbmRleCAyYTliMzNlLi5hODVmYjhiIDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9iYWI3eHgvYXNtX2luaXQuUworKysgYi9ib2FyZC9lbHRlYy9iYWI3eHgvYXNtX2luaXQuUwpAQCAtMTI1LDcgKzEyNSw3IEBACiAgICAgbGlzICAgICByMiwgMHhmZWUwCiAgICAgb3JpICAgICByMiwgcjIsIDB4Y2ZjCiAKLSNpZmRlZiBDRkdfQUREUkVTU19NQVBfQQorI2lmZGVmIENPTkZJR19TWVNfQUREUkVTU19NQVBfQQogLyoKICAqIFN3aXRjaCB0byBhZGRyZXNzIG1hcCBBIGlmIG5lY2Vzc2FyeS4KICAqLwpAQCAtODM1LDE3ICs4MzUsMTcgQEAKIC8qCiAgKiBHZXQgYmFzZSBhZGRyIG9mIElTQSBJL08gc3BhY2UKICAqLwotICAgIGxpcyAgICAgcjYsIENGR19JU0FfSU9AaAotICAgIG9yaSAgICAgcjYsIHI2LCBDRkdfSVNBX0lPQGwKKyAgICBsaXMgICAgIHI2LCBDT05GSUdfU1lTX0lTQV9JT0BoCisgICAgb3JpICAgICByNiwgcjYsIENPTkZJR19TWVNfSVNBX0lPQGwKIAogLyoKICAqIFNldCBvZmZzZXQgdG8gYmFzZSBhZGRyZXNzIGZvciBjb25maWcgcmVnaXN0ZXJzLgogICovCi0jaWYgZGVmaW5lZChDRkdfTlM4NzMwOF9CQUREUl8weCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlM4NzMwOF9CQUREUl8weCkKICAgICBhZGRpICAgIHI0LCByMCwgMHgwMjc5Ci0jZWxpZiBkZWZpbmVkKENGR19OUzg3MzA4X0JBRERSXzEwKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX05TODczMDhfQkFERFJfMTApCiAgICAgYWRkaSAgICByNCwgcjAsIDB4MDE1QwotI2VsaWYgZGVmaW5lZChDRkdfTlM4NzMwOF9CQUREUl8xMSkKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19OUzg3MzA4X0JBRERSXzExKQogICAgIGFkZGkgICAgcjQsIHIwLCAweDAwMkUKICNlbmRpZgogICAgIGFkZCAgICAgcjYsIHI2LCByNCAgICAgICAgICAvKiBhZGQgb2Zmc2V0IHRvIGJhc2UgKi8KQEAgLTg2Nyw3ICs4NjcsNyBAQAogICAgIGFkZGkgICAgcjUsIHIwLCBTSU9fTFVORU5BQkxFCiAgICAgYmwgICAgICAuc2lvX2J3CiAKLSAgICBsaXMgICAgIHI4LCBDRkdfSVNBX0lPQGgKKyAgICBsaXMgICAgIHI4LCBDT05GSUdfU1lTX0lTQV9JT0BoCiAgICAgb3JpICAgICByOCwgcjgsIDB4MDQ2MAogICAgIGxpICAgICAgcjksIDB4MDMKICAgICBzdGIgICAgIHI5LCAwKHI4KSAgICAgICAgICAgICAgIC8qIHNlbGVjdCBQTUMyIHJlZ2lzdGVyICovCkBAIC04OTgsNyArODk4LDcgQEAKIC8qCiAgKiBJbml0IENPTTEgZm9yIHBvbGxlZCBvdXRwdXQKICAqLwotICAgIGxpcyAgICAgcjgsIENGR19JU0FfSU9AaAorICAgIGxpcyAgICAgcjgsIENPTkZJR19TWVNfSVNBX0lPQGgKICAgICBvcmkgICAgIHI4LCByOCwgMHgwM2Y4CiAgICAgbGkgICAgICByOSwgMHgwMAogICAgIHN0YiAgICAgcjksIDEocjgpICAgICAgICAgICAvKiBpbnQgZGlzYWJsZWQgKi8KQEAgLTk3Miw4ICs5NzIsOCBAQAogLyoKICAqIEdldCBiYXNlIGFkZHIgb2YgSVNBIEkvTyBzcGFjZQogICovCi0gICAgbGlzICAgICByMywgQ0ZHX0lTQV9JT0BoCi0gICAgb3JpICAgICByMywgcjMsIENGR19JU0FfSU9AbAorICAgIGxpcyAgICAgcjMsIENPTkZJR19TWVNfSVNBX0lPQGgKKyAgICBvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JU0FfSU9AbAogCiAgICAgYWRkaSAgICByMywgcjMsIDB4MDE1QyAgICAgIC8qIGFkanVzdCB0byBzdXBlckkvTyA4NzMwOCBiYXNlICovCiAgICAgb3IgICAgICByNiwgcjMsIHIzICAgICAgICAgIC8qIG1ha2UgYSBjb3B5ICovCkBAIC0xMDc2LDcgKzEwNzYsNyBAQAogICovCiAuZ2xvYmwgUHJpbnRmCiBQcmludGY6Ci0gICAgbGlzICAgICByMTAsIENGR19JU0FfSU9AaCAgIC8qIENPTTEgcG9ydCAqLworICAgIGxpcyAgICAgcjEwLCBDT05GSUdfU1lTX0lTQV9JT0BoICAgLyogQ09NMSBwb3J0ICovCiAgICAgb3JpICAgICByMTAsIHIxMCwgMHgwM2Y4CiAKIFdhaXRDaHI6CkBAIC0xMTA3LDcgKzExMDcsNyBAQAogT3V0SGV4OgogICAgIGxpICAgICAgcjksIDI4ICAgICAgICAgICAgICAvKiBzaGlmdCByZWcgZm9yIDggZGlnaXRzICovCiBPSHN0YXJ0OgotICAgIGxpcyAgICAgcjEwLCBDRkdfSVNBX0lPQGggICAvKiBDT00xIHBvcnQgKi8KKyAgICBsaXMgICAgIHIxMCwgQ09ORklHX1NZU19JU0FfSU9AaCAgIC8qIENPTTEgcG9ydCAqLwogICAgIG9yaSAgICAgcjEwLCByMTAsIDB4MDNmOAogT3V0RGlnOgogICAgIGxieiAgICAgcjAsIDUocjEwKSAgICAgICAgICAvKiByZWFkIGxpbmsgc3RhdHVzICovCkBAIC0xMTQ5LDcgKzExNDksNyBAQAogICAgIG11bGx3ICAgcjEwLCByMCwgcjYKICAgICBzdWJmICAgIHI3LCByMTAsIHIzCiAKLSAgICBsaXMgICAgIHIxMCwgQ0ZHX0lTQV9JT0BoICAgLyogQ09NMSBwb3J0ICovCisgICAgbGlzICAgICByMTAsIENPTkZJR19TWVNfSVNBX0lPQGggICAvKiBDT00xIHBvcnQgKi8KICAgICBvcmkgICAgIHIxMCwgcjEwLCAweDAzZjgKIAogICAgIG9yLiAgICAgcjcsIHI3LCByNwpAQCAtMTE5OCw3ICsxMTk4LDcgQEAKICAqLwogLmdsb2JsICAgIE91dENocgogT3V0Q2hyOgotICAgIGxpcyAgICAgcjEwLCBDRkdfSVNBX0lPQGggICAvKiBDT00xIHBvcnQgKi8KKyAgICBsaXMgICAgIHIxMCwgQ09ORklHX1NZU19JU0FfSU9AaCAgIC8qIENPTTEgcG9ydCAqLwogICAgIG9yaSAgICAgcjEwLCByMTAsIDB4MDNmOAogCiBPdXRDaHIxOgpAQCAtMTIxNiw3ICsxMjE2LDcgQEAKIHNwZFJlYWQ6CiAgICAgbWZzcHIgICByMjYsIDggICAgICAgICAgICAgIC8qIHNhdmUgbGluayByZWdpc3RlciAqLwogCi0gICAgbGlzICAgICByMzAsIENGR19JU0FfSU9AaAorICAgIGxpcyAgICAgcjMwLCBDT05GSUdfU1lTX0lTQV9JT0BoCiAgICAgb3JpICAgICByMzAsIHIzMCwgMHgyMjAgICAgIC8qIEdQSU8gUG9ydCAxICovCiAgICAgbGkgICAgICByNywgMHgwMAogICAgIGxpICAgICAgcjgsIDB4MTAwCmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9iYWI3eHgvYmFiN3h4LmMgYi9ib2FyZC9lbHRlYy9iYWI3eHgvYmFiN3h4LmMKaW5kZXggOGM1NjExNi4uMWY3OGY4ZCAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvYmFiN3h4L2JhYjd4eC5jCisrKyBiL2JvYXJkL2VsdGVjL2JhYjd4eC9iYWI3eHguYwpAQCAtNDQsNyArNDQsNyBAQAogCSAqIFRoZSBHUElPIFBvcnQgMSBvbiBCQUI3eHggcmVmbGVjdHMgdGhlIGJ1cyBzcGVlZC4KIAkgKi8KIAl2b2xhdGlsZSBzdHJ1Y3QgR1BJTyAqZ3BpbyA9Ci0JCShzdHJ1Y3QgR1BJTyAqKSAoQ0ZHX0lTQV9JTyArIENGR19OUzg3MzA4X0dQSU9fQkFTRSk7CisJCShzdHJ1Y3QgR1BJTyAqKSAoQ09ORklHX1NZU19JU0FfSU8gKyBDT05GSUdfU1lTX05TODczMDhfR1BJT19CQVNFKTsKIAogCXVuc2lnbmVkIGNoYXIgZGF0YSA9IGdwaW8tPmR0YTE7CiAKQEAgLTg3LDcgKzg3LDcgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX0FERFJFU1NfTUFQX0EKKyNpZmRlZiBDT05GSUdfU1lTX0FERFJFU1NfTUFQX0EKIAlwdXRzICgiQm9hcmQ6IEVMVEVDIEJBQjd4eCBQUmVQXG4iKTsKICNlbHNlCiAJcHV0cyAoIkJvYXJkOiBFTFRFQyBCQUI3eHggQ0hSUFxuIik7CkBAIC0xMjYsMTYgKzEyNiwxNiBAQAogCiAJcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBpLCBtc2FyMSwgbWVhcjEsIG1lbVNpemU7CiAKLSNpZiBkZWZpbmVkKENGR19NRU1URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19NRU1URVNUKQogCXJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgcmVnOwogCiAJcHJpbnRmICgiVGVzdGluZyBEUkFNXG4iKTsKIAogCS8qIHdyaXRlIGVhY2ggbWVtIGFkZHIgd2l0aCBpdCdzIGFkZHJlc3MgKi8KLQlmb3IgKHJlZyA9IENGR19NRU1URVNUX1NUQVJUOyByZWcgPCBDRkdfTUVNVEVTVF9FTkQ7IHJlZyArPSA0KQorCWZvciAocmVnID0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOyByZWcgPCBDT05GSUdfU1lTX01FTVRFU1RfRU5EOyByZWcgKz0gNCkKIAkJKnJlZyA9IHJlZzsKIAotCWZvciAocmVnID0gQ0ZHX01FTVRFU1RfU1RBUlQ7IHJlZyA8IENGR19NRU1URVNUX0VORDsgcmVnICs9IDQpIHsKKwlmb3IgKHJlZyA9IENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsgcmVnIDwgQ09ORklHX1NZU19NRU1URVNUX0VORDsgcmVnICs9IDQpIHsKIAkJaWYgKCpyZWcgIT0gcmVnKQogCQkJcmV0dXJuIC0xOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL2JhYjd4eC9mbGFzaC5jIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L2ZsYXNoLmMKaW5kZXggNDQyZGQwMC4uMjFhZTA5OCAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvYmFiN3h4L2ZsYXNoLmMKKysrIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L2ZsYXNoLmMKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8YXNtL3BjaV9pby5oPgogCi1mbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZ1X2xvbmcgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmQgKGZsYXNoX2luZm9fdCAqaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7CkBAIC01NSw3ICs1NSw3IEBACiAgICAgaW50IGk7CiAKICAgICAvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0gICAgZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKQorICAgIGZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAgICAgewogCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogICAgIH0KQEAgLTk2LDggKzk2LDggQEAKICAgICBpZiAoc2l6ZTIgPT0gNCoxMDI0KjEwMjQpCiAgICAgewogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCUNGR19GTEFTSF9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJQ09ORklHX1NZU19GTEFTSF9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSZmbGFzaF9pbmZvWzFdKTsKICAgICB9CiAKQEAgLTM3MCw3ICszNzAsNyBAQAogICAgIGxhc3QgID0gc3RhcnQ7CiAgICAgYWRkciA9IChGTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAgICAgd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJICAgIHByaW50ZiAoIlRpbWVvdXRcbiIpOwogCSAgICByZXR1cm4gMTsKIAl9CkBAIC01MDAsNyArNTAwLDcgQEAKIAkgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCSAgICB3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQogCQkgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCSAgICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCXJldHVybiAoMSk7CiAJICAgICAgfQogCSAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9iYWI3eHgvbDJjYWNoZS5jIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L2wyY2FjaGUuYwppbmRleCAxZTc1Mzc3Li43ODc3MDRmIDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9iYWI3eHgvbDJjYWNoZS5jCisrKyBiL2JvYXJkL2VsdGVjL2JhYjd4eC9sMmNhY2hlLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDRkdfTDJfQkFCN3h4KQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19MMl9CQUI3eHgpCiAKICNpbmNsdWRlIDxwY2kuaD4KICNpbmNsdWRlIDxtcGMxMDYuaD4KQEAgLTc3LDcgKzc3LDcgQEAKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChkZXZidXNmbiwgUENJX1BJQ1IyLCByZWczMik7CiAKIAkvKiBjYWNoZSBzaXplICovCi0JaWYgKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKSAoQ0ZHX0lTQV9JTyArIDB4MjIwKSAmIDB4MDQpCisJaWYgKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKSAoQ09ORklHX1NZU19JU0FfSU8gKyAweDIyMCkgJiAweDA0KQogCXsKIAkgICAgLyogY2FjaGUgc2l6ZSBpcyA1MTIgS0IgKi8KIAkgICAgcGljcjJDYWNoZVNpemUgPSBQSUNSMl9MMl9TSVpFXzUxMks7CkBAIC0xNTYsNCArMTU2LDQgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2VuZGlmIC8qIChDRkdfTDJfQkFCN3h4KSAqLworI2VuZGlmIC8qIChDT05GSUdfU1lTX0wyX0JBQjd4eCkgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL2JhYjd4eC9taXNjLmMgYi9ib2FyZC9lbHRlYy9iYWI3eHgvbWlzYy5jCmluZGV4IDZhMjQ4MDcuLjFjOTRhNzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL2JhYjd4eC9taXNjLmMKKysrIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L21pc2MuYwpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgInNyb20uaCIKIAogLyogaW1wb3J0cyAgKi8KLWV4dGVybiBjaGFyIGNvbnNvbGVfYnVmZmVyW0NGR19DQlNJWkVdOworZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwogZXh0ZXJuIGludCBsMl9jYWNoZV9lbmFibGUgKGludCBsMmNvbnRyb2wpOwogZXh0ZXJuIHZvaWQgKm52cmFtX3JlYWQgKHZvaWQgKmRlc3QsIGNvbnN0IHNob3J0IHNyYywgc2l6ZV90IGNvdW50KTsKIGV4dGVybiB2b2lkIG52cmFtX3dyaXRlIChzaG9ydCBkZXN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCk7CkBAIC0xMzQsNyArMTM0LDcgQEAKIAkJU0VDT05EX0RFVklDRSwgRklSU1RfQkxPQ0spOwogCiAgICAgLyogcmVhZCBvdXQgY3VycmVudCBudnJhbSBzaGFkb3cgaW1hZ2UgKi8KLSAgICBudnJhbV9yZWFkIChidWYsIENGR19OVl9TUk9NX0NPUFlfQUREUiwgQ0ZHX1NST01fU0laRSk7CisgICAgbnZyYW1fcmVhZCAoYnVmLCBDT05GSUdfU1lTX05WX1NST01fQ09QWV9BRERSLCBDT05GSUdfU1lTX1NST01fU0laRSk7CiAKICAgICBpZiAoc3RyY21wIChlZXJldi5tYWdpYywgIkVMVEVDIikgIT0gMCkKICAgICB7CkBAIC0xNjIsOCArMTYyLDggQEAKIAljb3B5TnYgICA9IDE7ICAvKiBjb3B5IHRvIG52cmFtICovCiAgICAgfQogCi0gICAgaWYgKChjb3B5TnYgPT0gMCkgJiYgICAoZWxfc3JvbV9jaGVja3N1bSgodV9jaGFyKikmZWVyZXYsIENGR19TUk9NX1NJWkUpICE9Ci0JCWVsX3Nyb21fY2hlY2tzdW0oKHVfY2hhciopYnVmLCBDRkdfU1JPTV9TSVpFKSkpCisgICAgaWYgKChjb3B5TnYgPT0gMCkgJiYgICAoZWxfc3JvbV9jaGVja3N1bSgodV9jaGFyKikmZWVyZXYsIENPTkZJR19TWVNfU1JPTV9TSVpFKSAhPQorCQllbF9zcm9tX2NoZWNrc3VtKCh1X2NoYXIqKWJ1ZiwgQ09ORklHX1NZU19TUk9NX1NJWkUpKSkKICAgICB7CiAJcHJpbnRmICgiSW52YWxpZCByZXZpc2lvbiBpbmZvIGNvcHkgaW4gbnZyYW0gIVxuIik7CiAJcHJpbnRmICgiUHJlc3Mga2V5OlxuICA8Yz4gdG8gY29weSBjdXJyZW50IHJldmlzaW9uIGluZm8gdG8gbnZyYW0uXG4iKTsKQEAgLTMwNCwxMyArMzA0LDEzIEBACiAJICAgIHByaW50ZigiT0tcblxuIik7CiAKIAkvKiB3cml0ZSBuZXcgdmFsdWVzIGFzIHNoYWRvdyBpbWFnZSB0byBudnJhbSAqLwotCW52cmFtX3dyaXRlIChDRkdfTlZfU1JPTV9DT1BZX0FERFIsICh2b2lkICopJmVlcmV2LCBDRkdfU1JPTV9TSVpFKTsKKwludnJhbV93cml0ZSAoQ09ORklHX1NZU19OVl9TUk9NX0NPUFlfQUREUiwgKHZvaWQgKikmZWVyZXYsIENPTkZJR19TWVNfU1JPTV9TSVpFKTsKIAogICAgIH0gLyppZiAoaW5pdFNyb20pICovCiAKICAgICAvKiBjb3B5IGN1cnJlbnQgdmFsdWVzIGFzIHNoYWRvdyBpbWFnZSB0byBudnJhbSAqLwogICAgIGlmIChpbml0U3JvbSA9PSAwICYmIGNvcHlOdiA9PSAxKQotCW52cmFtX3dyaXRlIChDRkdfTlZfU1JPTV9DT1BZX0FERFIsICh2b2lkICopJmVlcmV2LCBDRkdfU1JPTV9TSVpFKTsKKwludnJhbV93cml0ZSAoQ09ORklHX1NZU19OVl9TUk9NX0NPUFlfQUREUiwgKHZvaWQgKikmZWVyZXYsIENPTkZJR19TWVNfU1JPTV9TSVpFKTsKIAogICAgIC8qIHVwZGF0ZSBlbnZpcm9ubWVudCAqLwogICAgIHNwcmludGYgKGJ1ZiwgIiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4IiwKQEAgLTMzMyw3ICszMzMsNyBAQAogICAgLyoKICAgICAqIEwyIGNhY2hlIGNvbmZpZ3VyYXRpb24KICAgICAqLwotI2lmIGRlZmluZWQoQ0ZHX0wyX0JBQjd4eCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTDJfQkFCN3h4KQogICAgIHB0ciA9IGdldGVudigibDJjYWNoZSIpOwogICAgIGlmICgqcHRyID09ICcwJykKICAgICB7CmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9iYWI3eHgvcGNpLmMgYi9ib2FyZC9lbHRlYy9iYWI3eHgvcGNpLmMKaW5kZXggZWRiZDNkZC4uNDZlNWE4YiAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvYmFiN3h4L3BjaS5jCisrKyBiL2JvYXJkL2VsdGVjL2JhYjd4eC9wY2kuYwpAQCAtNDMsNDEgKzQzLDQxIEBACiAgICAgaG9zZS0+bGFzdF9idXNubyA9IDB4ZmY7CiAKICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQlDRkdfUENJX01FTU9SWV9CVVMsCi0JQ0ZHX1BDSV9NRU1PUllfUEhZUywKKwlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAogICAgIC8qCiAgICAgKiBBdHRlbnRpb246IHBjaV9ob3NlX3BoeXNfdG9fYnVzKCkgZmFpbGVzIGluIGFkZHJlc3MgY29tcGFyZSwKLSAgICAqIHNvIHdlIG5lZWQgKENGR19QQ0lfTUVNT1JZX1NJWkUtMSkKKyAgICAqIHNvIHdlIG5lZWQgKENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLTEpCiAgICAgKi8KLQlDRkdfUENJX01FTU9SWV9TSVpFLTEsCisJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUtMSwKIAlQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogICAgIC8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQlDRkdfUENJX01FTV9CVVMsCi0JQ0ZHX1BDSV9NRU1fUEhZUywKLQlDRkdfUENJX01FTV9TSVpFLAorCUNPTkZJR19TWVNfUENJX01FTV9CVVMsCisJQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCisJQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUsCiAJUENJX1JFR0lPTl9NRU0pOwogCiAgICAgLyogSVNBL1BDSSBtZW1vcnkgc3BhY2UgKi8KICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQlDRkdfSVNBX01FTV9CVVMsCi0JQ0ZHX0lTQV9NRU1fUEhZUywKLQlDRkdfSVNBX01FTV9TSVpFLAorCUNPTkZJR19TWVNfSVNBX01FTV9CVVMsCisJQ09ORklHX1NZU19JU0FfTUVNX1BIWVMsCisJQ09ORklHX1NZU19JU0FfTUVNX1NJWkUsCiAJUENJX1JFR0lPTl9NRU0pOwogCiAgICAgLyogUENJIEkvTyBzcGFjZSAqLwogICAgIHBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLAotCUNGR19QQ0lfSU9fQlVTLAotCUNGR19QQ0lfSU9fUEhZUywKLQlDRkdfUENJX0lPX1NJWkUsCisJQ09ORklHX1NZU19QQ0lfSU9fQlVTLAorCUNPTkZJR19TWVNfUENJX0lPX1BIWVMsCisJQ09ORklHX1NZU19QQ0lfSU9fU0laRSwKIAlQQ0lfUkVHSU9OX0lPKTsKIAogICAgIC8qIElTQS9QQ0kgSS9PIHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDQsCi0JQ0ZHX0lTQV9JT19CVVMsCi0JQ0ZHX0lTQV9JT19QSFlTLAotCUNGR19JU0FfSU9fU0laRSwKKwlDT05GSUdfU1lTX0lTQV9JT19CVVMsCisJQ09ORklHX1NZU19JU0FfSU9fUEhZUywKKwlDT05GSUdfU1lTX0lTQV9JT19TSVpFLAogCVBDSV9SRUdJT05fSU8pOwogCiAgICAgaG9zZS0+cmVnaW9uX2NvdW50ID0gNTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL2JhYjd4eC9zcm9tLmggYi9ib2FyZC9lbHRlYy9iYWI3eHgvc3JvbS5oCmluZGV4IGMxOGFiOTEuLjUwNGI3NDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL2JhYjd4eC9zcm9tLmgKKysrIGIvYm9hcmQvZWx0ZWMvYmFiN3h4L3Nyb20uaApAQCAtNDAsOCArNDAsOCBAQAogI2RlZmluZSBTUk9NX1NIT1JUKHBYKSAgICAgICAgICAoKih1OCAqKShwWCkgfCAqKCh1OCAqKShwWCkrMSkgPDwgOCkKIAogLyogYmFiN3h4IEVMVEVDIHNyb20gKi8KLSNkZWZpbmUgSTJDX0JVU19EQVQgICAgICAgICAgICAgKENGR19JU0FfSU8gKyAweDIyMCkKLSNkZWZpbmUgSTJDX0JVU19ESVIgICAgICAgICAgICAgKENGR19JU0FfSU8gKyAweDIyMSkKKyNkZWZpbmUgSTJDX0JVU19EQVQgICAgICAgICAgICAgKENPTkZJR19TWVNfSVNBX0lPICsgMHgyMjApCisjZGVmaW5lIEkyQ19CVVNfRElSICAgICAgICAgICAgIChDT05GSUdfU1lTX0lTQV9JTyArIDB4MjIxKQogCiAvKiBzcm9tIGF0IG1wYzEwNyAqLwogI2RlZmluZSBNUEMxMDdfSTJDQUREUiAgICAgICAgICAobXBjMTA3X2V1bWJfYWRkciArIDB4MzAwMCkgICAgIC8qIGFkZHJlc3MgICAgICAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZWx0ZWMvZWxwcGMvYXNtX2luaXQuUyBiL2JvYXJkL2VsdGVjL2VscHBjL2FzbV9pbml0LlMKaW5kZXggMWI4ZDM5OS4uOGNiZTlkOCAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvZWxwcGMvYXNtX2luaXQuUworKysgYi9ib2FyZC9lbHRlYy9lbHBwYy9hc21faW5pdC5TCkBAIC0yNzIsMTUgKzI3MiwxNSBAQAogICogc2V0IExFRHMgZmlyc3QgdGltZQogICovCiAgICAgbGkgICAgICByMywgMHgxCi0gICAgbGlzICAgICByMzAsIENGR19VU1JfTEVEX0JBU0VAaAorICAgIGxpcyAgICAgcjMwLCBDT05GSUdfU1lTX1VTUl9MRURfQkFTRUBoCiAgICAgc3RiICAgICByMywgMihyMzApCiAgICAgc3luYwogCiAvKgogICogaW5pdCBDT00xIGZvciBwb2xsZWQgb3V0cHV0CiAgKi8KLSAgICBsaXMgICAgIHI4LCBDRkdfTlMxNjU1MF9DT00xQGggIC8qIENPTTEgYmFzZSBhZGRyZXNzKi8KLSAgICBvcmkgICAgIHI4LCByOCwgQ0ZHX05TMTY1NTBfQ09NMUBsCisgICAgbGlzICAgICByOCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAaCAgLyogQ09NMSBiYXNlIGFkZHJlc3MqLworICAgIG9yaSAgICAgcjgsIHI4LCBDT05GSUdfU1lTX05TMTY1NTBfQ09NMUBsCiAgICAgbGkgICAgICByOSwgMHgwMAogICAgIHN0YiAgICAgcjksIDEocjgpICAgICAgICAgICAvKiBpbnQgZGlzYWJsZWQgKi8KICAgICBlaWVpbwpAQCAtMjkwLDEwICsyOTAsMTAgQEAKICAgICBsaSAgICAgIHI5LCAweDgwCiAgICAgc3RiICAgICByOSwgMyhyOCkgICAgICAgICAgIC8qIGxpbmsgY3RybCAqLwogICAgIGVpZWlvCi0gICAgbGkgICAgICByOSwgKENGR19OUzE2NTUwX0NMSyAvIDE2IC8gQ09ORklHX0JBVURSQVRFKQorICAgIGxpICAgICAgcjksIChDT05GSUdfU1lTX05TMTY1NTBfQ0xLIC8gMTYgLyBDT05GSUdfQkFVRFJBVEUpCiAgICAgc3RiICAgICByOSwgMChyOCkgICAgICAgICAgIC8qIGJhdWQgcmF0ZSAoTFNCKSovCiAgICAgZWllaW8KLSAgICBsaSAgICAgIHI5LCAoKENGR19OUzE2NTUwX0NMSyAvIDE2IC8gQ09ORklHX0JBVURSQVRFKSA+PiA4KQorICAgIGxpICAgICAgcjksICgoQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gQ09ORklHX0JBVURSQVRFKSA+PiA4KQogICAgIHN0YiAgICAgcjksIDEocjgpICAgICAgICAgICAvKiBiYXVkIHJhdGUgKE1TQikgKi8KICAgICBlaWVpbwogICAgIGxpICAgICAgcjksIDB4MDcKQEAgLTU4OSw3ICs1ODksNyBAQAogICogc2V0IExFRHMgZW5kCiAgKi8KICAgICBsaSAgICAgIHIzLCAweGYKLSAgICBsaXMgICAgIHIzMCwgQ0ZHX1VTUl9MRURfQkFTRUBoCisgICAgbGlzICAgICByMzAsIENPTkZJR19TWVNfVVNSX0xFRF9CQVNFQGgKICAgICBzdGIgICAgIHIzLCAyKHIzMCkKICAgICBzeW5jCiAKQEAgLTYwMiw4ICs2MDIsOCBAQAogICovCiAKIFByaW50ZjoKLSAgICBsaXMgICAgIHIxMCwgQ0ZHX05TMTY1NTBfQ09NMUBoIC8qIENPTTEgYmFzZSBhZGRyZXNzKi8KLSAgICBvcmkgICAgIHIxMCwgcjEwLCBDRkdfTlMxNjU1MF9DT00xQGwKKyAgICBsaXMgICAgIHIxMCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAaCAvKiBDT00xIGJhc2UgYWRkcmVzcyovCisgICAgb3JpICAgICByMTAsIHIxMCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAbAogV2FpdENocjoKICAgICBsYnogICAgIHIwLCA1KHIxMCkgICAgICAgICAgLyogcmVhZCBsaW5rIHN0YXR1cyAqLwogICAgIGVpZWlvCkBAIC02MjIsOCArNjIyLDggQEAKICAqIHByaW50IGEgY2hhciB0byBDT00xIGluIHBvbGxpbmcgbW9kZSAocjEwPUNPTTEgcG9ydCwgcjM9Y2hhcikKICAqLwogT3V0Q2hyOgotICAgIGxpcyAgICAgcjEwLCBDRkdfTlMxNjU1MF9DT00xQGggLyogQ09NMSBiYXNlIGFkZHJlc3MqLwotICAgIG9yaSAgICAgcjEwLCByMTAsIENGR19OUzE2NTUwX0NPTTFAbAorICAgIGxpcyAgICAgcjEwLCBDT05GSUdfU1lTX05TMTY1NTBfQ09NMUBoIC8qIENPTTEgYmFzZSBhZGRyZXNzKi8KKyAgICBvcmkgICAgIHIxMCwgcjEwLCBDT05GSUdfU1lTX05TMTY1NTBfQ09NMUBsCiBPdXRDaHIxOgogICAgIGxieiAgICAgcjAsIDUocjEwKSAgICAgICAgICAvKiByZWFkIGxpbmsgc3RhdHVzICovCiAgICAgZWllaW8KQEAgLTY0NSw4ICs2NDUsOCBAQAogT3V0SGV4OgogICAgIGxpICAgICAgcjksIDI4ICAgICAgICAgICAgICAvKiBzaGlmdCByZWcgZm9yIDggZGlnaXRzICovCiBPSHN0YXJ0OgotICAgIGxpcyAgICAgcjEwLCBDRkdfTlMxNjU1MF9DT00xQGggLyogQ09NMSBiYXNlIGFkZHJlc3MqLwotICAgIG9yaSAgICAgcjEwLCByMTAsIENGR19OUzE2NTUwX0NPTTFAbAorICAgIGxpcyAgICAgcjEwLCBDT05GSUdfU1lTX05TMTY1NTBfQ09NMUBoIC8qIENPTTEgYmFzZSBhZGRyZXNzKi8KKyAgICBvcmkgICAgIHIxMCwgcjEwLCBDT05GSUdfU1lTX05TMTY1NTBfQ09NMUBsCiBPdXREaWc6CiAgICAgbGJ6ICAgICByMCwgMChyMjkpICAgICAgICAgIC8qIHNsb3cgZG93biBkdW1teSByZWFkICovCiAgICAgbGJ6ICAgICByMCwgNShyMTApICAgICAgICAgIC8qIHJlYWQgbGluayBzdGF0dXMgKi8KQEAgLTY4NSw4ICs2ODUsOCBAQAogICAgIGRpdnd1ICAgcjAsIHIzLCByNiAgICAgICAgICAvKiByMCA9IHIzIC8gMTAsIHI3ID0gcjMgbW9kIDEwICovCiAgICAgbXVsbHcgICByMTAsIHIwLCByNgogICAgIHN1YmYgICAgcjcsIHIxMCwgcjMKLSAgICBsaXMgICAgIHIxMCwgQ0ZHX05TMTY1NTBfQ09NMUBoIC8qIENPTTEgYmFzZSBhZGRyZXNzKi8KLSAgICBvcmkgICAgIHIxMCwgcjEwLCBDRkdfTlMxNjU1MF9DT00xQGwKKyAgICBsaXMgICAgIHIxMCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAaCAvKiBDT00xIGJhc2UgYWRkcmVzcyovCisgICAgb3JpICAgICByMTAsIHIxMCwgQ09ORklHX1NZU19OUzE2NTUwX0NPTTFAbAogICAgIG9yLiAgICAgcjcsIHI3LCByNwogICAgIGJuZSAgICAgbm9ibGFuazEKICAgICBsaSAgICAgIHIzLCAweDIwCmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9lbHBwYy9lbHBwYy5jIGIvYm9hcmQvZWx0ZWMvZWxwcGMvZWxwcGMuYwppbmRleCBkM2FjMjc4Li5lNzNjNzEyIDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9lbHBwYy9lbHBwYy5jCisrKyBiL2JvYXJkL2VsdGVjL2VscHBjL2VscHBjLmMKQEAgLTY4LDE2ICs2OCwxNiBAQAogCiAJcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBpLCBtc2FyMSwgbWVhcjEsIG1lbVNpemU7CiAKLSNpZiBkZWZpbmVkKENGR19NRU1URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19NRU1URVNUKQogCXJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgcmVnOwogCiAJcHJpbnRmICgiVGVzdGluZyBEUkFNXG4iKTsKIAogCS8qIHdyaXRlIGVhY2ggbWVtIGFkZHIgd2l0aCBpdCdzIGFkZHJlc3MgKi8KLQlmb3IgKHJlZyA9IENGR19NRU1URVNUX1NUQVJUOyByZWcgPCBDRkdfTUVNVEVTVF9FTkQ7IHJlZyArPSA0KQorCWZvciAocmVnID0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOyByZWcgPCBDT05GSUdfU1lTX01FTVRFU1RfRU5EOyByZWcgKz0gNCkKIAkJKnJlZyA9IHJlZzsKIAotCWZvciAocmVnID0gQ0ZHX01FTVRFU1RfU1RBUlQ7IHJlZyA8IENGR19NRU1URVNUX0VORDsgcmVnICs9IDQpIHsKKwlmb3IgKHJlZyA9IENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsgcmVnIDwgQ09ORklHX1NZU19NRU1URVNUX0VORDsgcmVnICs9IDQpIHsKIAkJaWYgKCpyZWcgIT0gcmVnKQogCQkJcmV0dXJuIC0xOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL2VscHBjL2ZsYXNoLmMgYi9ib2FyZC9lbHRlYy9lbHBwYy9mbGFzaC5jCmluZGV4IDQ0MmRkMDAuLjIxYWUwOTggMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL2VscHBjL2ZsYXNoLmMKKysrIGIvYm9hcmQvZWx0ZWMvZWxwcGMvZmxhc2guYwpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vcGNpX2lvLmg+CiAKLWZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiB1bG9uZyBmbGFzaF9nZXRfc2l6ZSAodnVfbG9uZyAqYWRkciwgZmxhc2hfaW5mb190ICppbmZvKTsKIHN0YXRpYyBpbnQgd3JpdGVfd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKQEAgLTU1LDcgKzU1LDcgQEAKICAgICBpbnQgaTsKIAogICAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisgICAgZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkKICAgICB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQpAQCAtOTYsOCArOTYsOCBAQAogICAgIGlmIChzaXplMiA9PSA0KjEwMjQqMTAyNCkKICAgICB7CiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQlDRkdfRkxBU0hfQkFTRSwKLQkJQ0ZHX0ZMQVNIX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJJmZsYXNoX2luZm9bMV0pOwogICAgIH0KIApAQCAtMzcwLDcgKzM3MCw3IEBACiAgICAgbGFzdCAgPSBzdGFydDsKICAgICBhZGRyID0gKEZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKICAgICB3aGlsZSAoKGFkZHJbMF0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9IChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkgICAgcHJpbnRmICgiVGltZW91dFxuIik7CiAJICAgIHJldHVybiAxOwogCX0KQEAgLTUwMCw3ICs1MDAsNyBAQAogCSAgICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAJICAgIHdoaWxlICgoZGVzdDJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CiAJCSAgIChkYXRhMltpXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKLQkgICAgICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJcmV0dXJuICgxKTsKIAkgICAgICB9CiAJICAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL2VscHBjL21pc2MuYyBiL2JvYXJkL2VsdGVjL2VscHBjL21pc2MuYwppbmRleCA1ZTNhODFjLi5jYmFmMTBiIDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9lbHBwYy9taXNjLmMKKysrIGIvYm9hcmQvZWx0ZWMvZWxwcGMvbWlzYy5jCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAic3JvbS5oIgogCiAvKiBpbXBvcnRzICAqLwotZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ0ZHX0NCU0laRV07CitleHRlcm4gY2hhciBjb25zb2xlX2J1ZmZlcltDT05GSUdfU1lTX0NCU0laRV07CiBleHRlcm4gaW50IGwyX2NhY2hlX2VuYWJsZSAoaW50IGwyY29udHJvbCk7CiBleHRlcm4gaW50IGVlcHJvMTAwX3dyaXRlX2VlcHJvbSAoc3RydWN0IGV0aF9kZXZpY2UgKmRldiwgaW50IGxvY2F0aW9uLAogCQkJCSAgaW50IGFkZHJfbGVuLCB1bnNpZ25lZCBzaG9ydCBkYXRhKTsKQEAgLTk1LDcgKzk1LDcgQEAKIAkJCSAgU0VDT05EX0RFVklDRSwgRklSU1RfQkxPQ0spOwogCiAJLyogcmVhZCBvdXQgY3VycmVudCBudnJhbSBzaGFkb3cgaW1hZ2UgKi8KLQludnJhbV9yZWFkIChidWYsIENGR19OVl9TUk9NX0NPUFlfQUREUiwgQ0ZHX1NST01fU0laRSk7CisJbnZyYW1fcmVhZCAoYnVmLCBDT05GSUdfU1lTX05WX1NST01fQ09QWV9BRERSLCBDT05GSUdfU1lTX1NST01fU0laRSk7CiAKIAlpZiAoc3RyY21wIChlZXJldi5tYWdpYywgIkVMVEVDIikgIT0gMCkgewogCQkvKiBzcm9tIGlzIG5vdCBpbml0aWFsaXplZCAtPiBjcmVhdGUgYSBkZWZhdWx0IHJldmlzaW9uIGluZm8gKi8KQEAgLTEyNCw4ICsxMjQsOCBAQAogCX0KIAogCWlmICgoY29weU52ID09IDApCi0JICAgICYmIChlbF9zcm9tX2NoZWNrc3VtICgodV9jaGFyICopICYgZWVyZXYsIENGR19TUk9NX1NJWkUpICE9Ci0JCWVsX3Nyb21fY2hlY2tzdW0gKCh1X2NoYXIgKikgYnVmLCBDRkdfU1JPTV9TSVpFKSkpIHsKKwkgICAgJiYgKGVsX3Nyb21fY2hlY2tzdW0gKCh1X2NoYXIgKikgJiBlZXJldiwgQ09ORklHX1NZU19TUk9NX1NJWkUpICE9CisJCWVsX3Nyb21fY2hlY2tzdW0gKCh1X2NoYXIgKikgYnVmLCBDT05GSUdfU1lTX1NST01fU0laRSkpKSB7CiAJCXByaW50ZiAoIkludmFsaWQgcmV2aXNpb24gaW5mbyBjb3B5IGluIG52cmFtICFcbiIpOwogCQlwcmludGYgKCJQcmVzcyBrZXk6XG4gIDxjPiB0byBjb3B5IGN1cnJlbnQgcmV2aXNpb24gaW5mbyB0byBudnJhbS5cbiIpOwogCQlwcmludGYgKCIgIDxyPiB0byByZWVudGVyIHJldmlzaW9uIGluZm8uXG4iKTsKQEAgLTIzMiwxNiArMjMyLDE2IEBACiAJCQlwcmludGYgKCJPS1xuXG4iKTsKIAogCQkvKiB3cml0ZSBuZXcgdmFsdWVzIGFzIHNoYWRvdyBpbWFnZSB0byBudnJhbSAqLwotCQludnJhbV93cml0ZSAoQ0ZHX05WX1NST01fQ09QWV9BRERSLCAodm9pZCAqKSAmZWVyZXYsCi0JCQkgICAgIENGR19TUk9NX1NJWkUpOworCQludnJhbV93cml0ZSAoQ09ORklHX1NZU19OVl9TUk9NX0NPUFlfQUREUiwgKHZvaWQgKikgJmVlcmV2LAorCQkJICAgICBDT05GSUdfU1lTX1NST01fU0laRSk7CiAKIAl9CiAKIAkvKmlmIChpbml0U3JvbSkgKi8KIAkvKiBjb3B5IGN1cnJlbnQgdmFsdWVzIGFzIHNoYWRvdyBpbWFnZSB0byBudnJhbSAqLwogCWlmIChpbml0U3JvbSA9PSAwICYmIGNvcHlOdiA9PSAxKQotCQludnJhbV93cml0ZSAoQ0ZHX05WX1NST01fQ09QWV9BRERSLCAodm9pZCAqKSAmZWVyZXYsCi0JCQkgICAgIENGR19TUk9NX1NJWkUpOworCQludnJhbV93cml0ZSAoQ09ORklHX1NZU19OVl9TUk9NX0NPUFlfQUREUiwgKHZvaWQgKikgJmVlcmV2LAorCQkJICAgICBDT05GSUdfU1lTX1NST01fU0laRSk7CiAKIAkvKiB1cGRhdGUgZW52aXJvbm1lbnQgKi8KIAlzcHJpbnRmIChidWYsICIlMDJ4OiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeCIsCmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9lbHBwYy9wY2kuYyBiL2JvYXJkL2VsdGVjL2VscHBjL3BjaS5jCmluZGV4IDViMTE1ZWEuLmJmMTMzYjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VsdGVjL2VscHBjL3BjaS5jCisrKyBiL2JvYXJkL2VsdGVjL2VscHBjL3BjaS5jCkBAIC00MiwzNyArNDIsMzcgQEAKICAgICBob3NlLT5sYXN0X2J1c25vID0gMHhmZjsKIAogICAgIHBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCUNGR19QQ0lfTUVNT1JZX0JVUywKLQlDRkdfUENJX01FTU9SWV9QSFlTLAotCUNGR19QQ0lfTUVNT1JZX1NJWkUsCisJQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwlDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwlDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAlQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogICAgIC8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQlDRkdfUENJX01FTV9CVVMsCi0JQ0ZHX1BDSV9NRU1fUEhZUywKLQlDRkdfUENJX01FTV9TSVpFLAorCUNPTkZJR19TWVNfUENJX01FTV9CVVMsCisJQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCisJQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUsCiAJUENJX1JFR0lPTl9NRU0pOwogCiAgICAgLyogSVNBL1BDSSBtZW1vcnkgc3BhY2UgKi8KICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQlDRkdfSVNBX01FTV9CVVMsCi0JQ0ZHX0lTQV9NRU1fUEhZUywKLQlDRkdfSVNBX01FTV9TSVpFLAorCUNPTkZJR19TWVNfSVNBX01FTV9CVVMsCisJQ09ORklHX1NZU19JU0FfTUVNX1BIWVMsCisJQ09ORklHX1NZU19JU0FfTUVNX1NJWkUsCiAJUENJX1JFR0lPTl9NRU0pOwogCiAgICAgLyogUENJIEkvTyBzcGFjZSAqLwogICAgIHBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLAotCUNGR19QQ0lfSU9fQlVTLAotCUNGR19QQ0lfSU9fUEhZUywKLQlDRkdfUENJX0lPX1NJWkUsCisJQ09ORklHX1NZU19QQ0lfSU9fQlVTLAorCUNPTkZJR19TWVNfUENJX0lPX1BIWVMsCisJQ09ORklHX1NZU19QQ0lfSU9fU0laRSwKIAlQQ0lfUkVHSU9OX0lPKTsKIAogICAgIC8qIElTQS9QQ0kgSS9PIHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDQsCi0JQ0ZHX0lTQV9JT19CVVMsCi0JQ0ZHX0lTQV9JT19QSFlTLAotCUNGR19JU0FfSU9fU0laRSwKKwlDT05GSUdfU1lTX0lTQV9JT19CVVMsCisJQ09ORklHX1NZU19JU0FfSU9fUEhZUywKKwlDT05GSUdfU1lTX0lTQV9JT19TSVpFLAogCVBDSV9SRUdJT05fSU8pOwogCiAgICAgaG9zZS0+cmVnaW9uX2NvdW50ID0gNTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL2VscHBjL3Nyb20uaCBiL2JvYXJkL2VsdGVjL2VscHBjL3Nyb20uaAppbmRleCBjMThhYjkxLi41MDRiNzQyIDEwMDY0NAotLS0gYS9ib2FyZC9lbHRlYy9lbHBwYy9zcm9tLmgKKysrIGIvYm9hcmQvZWx0ZWMvZWxwcGMvc3JvbS5oCkBAIC00MCw4ICs0MCw4IEBACiAjZGVmaW5lIFNST01fU0hPUlQocFgpICAgICAgICAgICgqKHU4ICopKHBYKSB8ICooKHU4ICopKHBYKSsxKSA8PCA4KQogCiAvKiBiYWI3eHggRUxURUMgc3JvbSAqLwotI2RlZmluZSBJMkNfQlVTX0RBVCAgICAgICAgICAgICAoQ0ZHX0lTQV9JTyArIDB4MjIwKQotI2RlZmluZSBJMkNfQlVTX0RJUiAgICAgICAgICAgICAoQ0ZHX0lTQV9JTyArIDB4MjIxKQorI2RlZmluZSBJMkNfQlVTX0RBVCAgICAgICAgICAgICAoQ09ORklHX1NZU19JU0FfSU8gKyAweDIyMCkKKyNkZWZpbmUgSTJDX0JVU19ESVIgICAgICAgICAgICAgKENPTkZJR19TWVNfSVNBX0lPICsgMHgyMjEpCiAKIC8qIHNyb20gYXQgbXBjMTA3ICovCiAjZGVmaW5lIE1QQzEwN19JMkNBRERSICAgICAgICAgIChtcGMxMDdfZXVtYl9hZGRyICsgMHgzMDAwKSAgICAgLyogYWRkcmVzcyAgICAgICovCmRpZmYgLS1naXQgYS9ib2FyZC9lbHRlYy9taHBjL2ZsYXNoLmMgYi9ib2FyZC9lbHRlYy9taHBjL2ZsYXNoLmMKaW5kZXggNGNjNjZhOS4uMmZiZGIyNyAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvbWhwYy9mbGFzaC5jCisrKyBiL2JvYXJkL2VsdGVjL21ocGMvZmxhc2guYwpAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQcm90ZWN0aW9uIEZsYWdzOgpAQCAtNjIsMTMgKzYyLDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtODEsMTggKzgxLDE4IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKChGUFcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgoRlBXICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICBDRkdfRkxBU0hfQkFTRSwKLQkJCSAgICBDRkdfRkxBU0hfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwpAQCAtMjAzLDEwICsyMDMsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykweEZGMDBGRjAwOyAgICAgIC8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNzcsNyArMjc3LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9IFNXQVAoKmFkZHIpKSAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpMHhCMDAwQjAwMDsgLyogc3VzcGVuZCBlcmFzZSAqLwogCQkJCQkqYWRkciA9IChGUFcpMHhGRjAwRkYwMDsgLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00MTksNyArNDE5LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKChzdGF0dXMgPSBTV0FQKCphZGRyKSkgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpMHhGRjAwRkYwMDsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2VsdGVjL21ocGMvbWhwYy5jIGIvYm9hcmQvZWx0ZWMvbWhwYy9taHBjLmMKaW5kZXggMzY2Njc5MS4uN2NjYTZiMiAxMDA2NDQKLS0tIGEvYm9hcmQvZWx0ZWMvbWhwYy9taHBjLmMKKysrIGIvYm9hcmQvZWx0ZWMvbWhwYy9taHBjLmMKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDx2aWRlb19mYi5oPgogCiAvKiBpbXBvcnRzIGZyb20gY29tbW9uL21haW4uYyAqLwotZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ0ZHX0NCU0laRV07CitleHRlcm4gY2hhciBjb25zb2xlX2J1ZmZlcltDT05GSUdfU1lTX0NCU0laRV07CiAKIGV4dGVybiB2b2lkIGVlcHJvbV9pbml0ICh2b2lkKTsKIGV4dGVybiBpbnQgZWVwcm9tX3JlYWQgKHVuc2lnbmVkIGRldl9hZGRyLCB1bnNpZ25lZCBvZmZzZXQsCkBAIC0xMDUsNyArMTA1LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW0tPmltX2NwbSk7CiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlwID0gKGlvcDh4eF90ICopICYgKGltLT5pbV9pb3BvcnQpOwogCkBAIC0xNjAsNyArMTYwLDcgQEAKIAlpbnQgaTsKIAogCS8qIGNoZWNrIHJldmlzaW9uIGRhdGEgKi8KLQllZXByb21fcmVhZCAoQ0ZHX0kyQ19FRVBST01fQUREUiwgNDgwLCAodWNoYXIgKikgJm1ocGNSZXZJbmZvLCAzMik7CisJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCA0ODAsICh1Y2hhciAqKSAmbWhwY1JldkluZm8sIDMyKTsKIAogCWlmIChzdHJuY21wICgoY2hhciAqKSAmbWhwY1JldkluZm8uYm9hcmRbMl0sICJNSFBDIiwgNCkgIT0gMCkgewogCQlwcmludGYgKCJFbnRlciByZXZpc2lvbiBudW1iZXIgKDAtOSk6ICVjICAiLApAQCAtMjI4LDcgKzIyOCw3IEBACiAJCX0KIAogCQkvKiBzZXR1cCBuZXcgcmV2aXNpb24gZGF0YSAqLwotCQllZXByb21fd3JpdGUgKENGR19JMkNfRUVQUk9NX0FERFIsIDQ4MCwgKHVjaGFyICopICZtaHBjUmV2SW5mbywKKwkJZWVwcm9tX3dyaXRlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgNDgwLCAodWNoYXIgKikgJm1ocGNSZXZJbmZvLAogCQkJICAgICAgMzIpOwogCX0KIApAQCAtMjUzLDEzICsyNTMsMTMgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJdXBtY29uZmlnIChVUE1BLCAodWludCAqKSBzZHJhbV90YWJsZSwKIAkJICAgc2l6ZW9mIChzZHJhbV90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVIgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUiAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCW1lbWN0bC0+bWVtY19tYm1yID0gTUJNUl9HUExfQjRESVM7CS8qIHNob3VsZCB0aGlzIGJlIG1hbXI/IC0gTlRMICovCiAJbWVtY3RsLT5tZW1jX21wdHByID0gTVBUUFJfUFRQX0RJVjY0OwogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDA4ODAwOwpAQCAtMjY3LDE1ICsyNjcsMTUgQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIFNEUkFNIGJhbmsgMAogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCXVkZWxheSAoMjAwKTsKIAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgU0RSQU0gYmFuayAxCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjI7Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjI7CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMjsKIAogCS8qCiAJICogUGVyZm9ybSBTRFJBTSBpbml0aWFsaXpzYXRpb24gc2VxdWVuY2UKQEAgLTQxOSw3ICs0MTksNyBAQAogewogCXVuc2lnbmVkIGludCBjbHV0ID0gMDsKIAl1bnNpZ25lZCBjaGFyICpwZW52OwotCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyogZW5hYmxlIHZpZGVvIG9ubHkgb24gQ0xVVCB2YWx1ZSAqLwogCWlmICgocGVudiA9ICh1Y2hhciAqKWdldGVudiAoImNsdXQiKSkgIT0gTlVMTCkKQEAgLTQ3MCw3ICs0NzAsNyBAQAogCQkgICAgdW5zaWduZWQgY2hhciByLCB1bnNpZ25lZCBjaGFyIGcsIHVuc2lnbmVkIGNoYXIgYikKIHsKIAl1bnNpZ25lZCBpbnQgbHVtOwotCXVuc2lnbmVkIHNob3J0ICpwTHV0ID0gKHVuc2lnbmVkIHNob3J0ICopIChDRkdfSU1NUiArIDB4MGUwMCk7CisJdW5zaWduZWQgc2hvcnQgKnBMdXQgPSAodW5zaWduZWQgc2hvcnQgKikgKENPTkZJR19TWVNfSU1NUiArIDB4MGUwMCk7CiAKIAkvKiAxNiBiaXQgbHV0IHZhbHVlcywgMTIgYml0IHVzZWQsIHh4eHggQkJHRyBSUmlpIGlpaWkgKi8KIAkvKiB5ID0gMC4yOTkqUiArIDAuNTg3KkcgKyAwLjExNCpCICovCmRpZmYgLS1naXQgYS9ib2FyZC9lbWsvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9lbWsvY29tbW9uL2ZsYXNoLmMKaW5kZXggMDRjMzViYy4uMzMwOTc4YiAxMDA2NDQKLS0tIGEvYm9hcmQvZW1rL2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL2Vtay9jb21tb24vZmxhc2guYwpAQCAtMjYsNyArMjYsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAjaWYgZGVmaW5lZCAoQ09ORklHX1RPUDg2MCkKICAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBGTEFTSF9QT1JUX1dJRFRIOwpAQCAtOTUsNyArOTUsNyBAQAogCWludCBpID0gMDsKIAlleHRlcm4gdm9pZCBmbGFzaF9wcmVpbml0KHZvaWQpOwogCWV4dGVybiB2b2lkIGZsYXNoX2FmdGVyaW5pdCh1aW50LCB1bG9uZywgdWxvbmcpOwotCXVsb25nIGZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCXVsb25nIGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCWZsYXNoX3ByZWluaXQoKTsKIApAQCAtMTA1LDEyICsxMDUsMTIgQEAKIAkJCWZsYXNoX2dldF9zaXplKChGUFcgKilmbGFzaGJhc2UsICZmbGFzaF9pbmZvW2ldKTsKIAlzaXplICs9IGZsYXNoX2luZm9baV0uc2l6ZTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAotCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDRkdfTU9OSVRPUl9CQVNFKSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xNDcsMTQgKzE0NywxNCBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c2l6ZSAmJgogCQkJaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJiBiYXNlIDw9IGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSAtIDEpCiAJCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CisJcmV0dXJuIGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDU5LDcgKzQ1OSw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNDczLDE0ICs0NzMsMTQgQEAKIAkJCX0KIAogCQkJLyogc2hvdyB0aGF0IHdlJ3JlIHdhaXRpbmcgKi8KLQkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgey8qIGV2ZXJ5IHNlY29uZCAqLworCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgey8qIGV2ZXJ5IHNlY29uZCAqLwogCQkJCXB1dGMgKCcuJyk7CiAJCQkJbGFzdCA9IGdldF90aW1lcigwKTsKIAkJCX0KIAkJfQogCiAJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KKwkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KIAkJCXB1dGMgKCcuJyk7CiAJCQlsYXN0ID0gZ2V0X3RpbWVyKDApOwogCQl9CkBAIC01ODEsNyArNTgxLDcgQEAKIAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAocmVzID09IDAgJiYgKCpkZXN0ICYgKEZQVykweDAwODAwMDgwKSAhPSAoZGF0YSAmIChGUFcpMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2Vtay9jb21tb24vdnBkLmMgYi9ib2FyZC9lbWsvY29tbW9uL3ZwZC5jCmluZGV4IDhhM2ExMmIuLmMyYWYyMTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Vtay9jb21tb24vdnBkLmMKKysrIGIvYm9hcmQvZW1rL2NvbW1vbi92cGQuYwpAQCAtMzYsOCArMzYsOCBAQAogCXVpbnQgbGVuOwogCiAJLyogZ2V0IGxlbmd0aCBmaXJzdCAqLwotCWFkZHIgPSBDRkdfRkFDVF9PRkZTRVQ7Ci0JaWYgKGVlcHJvbV9yZWFkIChDRkdfSTJDX0ZBQ1RfQUREUiwgYWRkciwgYnVmLCAyKSkgeworCWFkZHIgPSBDT05GSUdfU1lTX0ZBQ1RfT0ZGU0VUOworCWlmIChlZXByb21fcmVhZCAoQ09ORklHX1NZU19JMkNfRkFDVF9BRERSLCBhZGRyLCBidWYsIDIpKSB7CiAJICBiYWlsb3V0OgogCQlwcmludGYgKCJjYW5ub3QgcmVhZCBmYWN0b3J5IGNvbmZpZ3VyYXRpb25cbiIpOwogCQlwcmludGYgKCJiZSBzdXJlIHRvIHNldCBldGhhZGRyCXlvdXJzZWxmIVxuIik7CkBAIC00NywxNCArNDcsMTQgQEAKIAlhZGRyICs9IDI7CiAKIAkvKiBzYW5pdHkgY2hlY2sgKi8KLQlpZiAobGVuZ3RoIDwgMjAgfHwgbGVuZ3RoID4gQ0ZHX0ZBQ1RfU0laRSAtIDIpCisJaWYgKGxlbmd0aCA8IDIwIHx8IGxlbmd0aCA+IENPTkZJR19TWVNfRkFDVF9TSVpFIC0gMikKIAkJZ290byBiYWlsb3V0OwogCiAJLyogcmVhZCBsaW5lcyAqLwogCXdoaWxlIChsZW5ndGggPiAwKSB7CiAJCS8qIHJlYWQgb25lIGxpbmUgKi8KIAkJbGVuID0gbGVuZ3RoID4gODAgPyA4MCA6IGxlbmd0aDsKLQkJaWYgKGVlcHJvbV9yZWFkIChDRkdfSTJDX0ZBQ1RfQUREUiwgYWRkciwgYnVmLCBsZW4pKQorCQlpZiAoZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfSTJDX0ZBQ1RfQUREUiwgYWRkciwgYnVmLCBsZW4pKQogCQkJZ290byBiYWlsb3V0OwogCQkvKiBtYXJrIGVuZCBvZiBidWZmZXIgKi8KIAkJYnVmW2xlbl0gPSAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZW1rL3RvcDUyMDAvdG9wNTIwMC5jIGIvYm9hcmQvZW1rL3RvcDUyMDAvdG9wNTIwMC5jCmluZGV4IDI3ODg2MjYuLjdlZmJjYjAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2Vtay90b3A1MjAwL3RvcDUyMDAuYworKysgYi9ib2FyZC9lbWsvdG9wNTIwMC90b3A1MjAwLmMKQEAgLTM1LDcgKzM1LDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2lmIDAKIAl1bG9uZwl0OwogCXVsb25nCXRhcF9kZWw7CkBAIC00NiwzMyArNDYsMzMgQEAKIAkjZGVmaW5lCVNPRlRfUkVGCTQKIAogCS8qIGNvbmZpZ3VyZSBTRFJBTSBzdGFydC9lbmQgKi8KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyA9IChDRkdfU0RSQU1fQkFTRSAmIDB4RkZGMDAwMDApIHwgQ0ZHX0RSQU1fUkFNX1NJWkU7CisJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgMHhGRkYwMDAwMCkgfCBDT05GSUdfU1lTX0RSQU1fUkFNX1NJWkU7CiAJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSAweDgwMDAwMDAwOwkvKiBkaXNhYmxlZCAqLwogCiAJLyogc2V0dXAgY29uZmlnIHJlZ2lzdGVycyAqLwotCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ09ORklHMSA9IENGR19EUkFNX0NPTkZJRzE7Ci0JKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DT05GSUcyID0gQ0ZHX0RSQU1fQ09ORklHMjsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NPTkZJRzEgPSBDT05GSUdfU1lTX0RSQU1fQ09ORklHMTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NPTkZJRzIgPSBDT05GSUdfU1lTX0RSQU1fQ09ORklHMjsKIAogCS8qIHVubG9jayBtb2RlIHJlZ2lzdGVyICovCi0JKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gQ0ZHX0RSQU1fQ09OVFJPTCB8IE1PREVfRU47CisJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gQ09ORklHX1NZU19EUkFNX0NPTlRST0wgfCBNT0RFX0VOOwogCS8qIHByZWNoYXJnZSBhbGwgYmFua3MgKi8KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NUUkwgPSBDRkdfRFJBTV9DT05UUk9MIHwgTU9ERV9FTiB8IFNPRlRfUFJFOwotI2lmZGVmIENGR19EUkFNX0REUgorCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1RSTCA9IENPTkZJR19TWVNfRFJBTV9DT05UUk9MIHwgTU9ERV9FTiB8IFNPRlRfUFJFOworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9ERFIKIAkvKiBzZXQgZXh0ZW5kZWQgbW9kZSByZWdpc3RlciAqLwotCSoodnVfc2hvcnQgKilNUEM1WFhYX1NEUkFNX01PREUgPSBDRkdfRFJBTV9FTU9ERTsKKwkqKHZ1X3Nob3J0ICopTVBDNVhYWF9TRFJBTV9NT0RFID0gQ09ORklHX1NZU19EUkFNX0VNT0RFOwogI2VuZGlmCiAJLyogc2V0IG1vZGUgcmVnaXN0ZXIgKi8KLQkqKHZ1X3Nob3J0ICopTVBDNVhYWF9TRFJBTV9NT0RFID0gQ0ZHX0RSQU1fTU9ERSB8IDB4MDQwMDsKKwkqKHZ1X3Nob3J0ICopTVBDNVhYWF9TRFJBTV9NT0RFID0gQ09ORklHX1NZU19EUkFNX01PREUgfCAweDA0MDA7CiAJLyogcHJlY2hhcmdlIGFsbCBiYW5rcyAqLwotCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1RSTCA9IENGR19EUkFNX0NPTlRST0wgfCBNT0RFX0VOIHwgU09GVF9QUkU7CisJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gQ09ORklHX1NZU19EUkFNX0NPTlRST0wgfCBNT0RFX0VOIHwgU09GVF9QUkU7CiAJLyogYXV0byByZWZyZXNoICovCi0JKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gQ0ZHX0RSQU1fQ09OVFJPTCB8IE1PREVfRU4gfCBTT0ZUX1JFRjsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NUUkwgPSBDT05GSUdfU1lTX0RSQU1fQ09OVFJPTCB8IE1PREVfRU4gfCBTT0ZUX1JFRjsKIAkvKiBzZXQgbW9kZSByZWdpc3RlciAqLwotCSoodnVfc2hvcnQgKilNUEM1WFhYX1NEUkFNX01PREUgPSBDRkdfRFJBTV9NT0RFOworCSoodnVfc2hvcnQgKilNUEM1WFhYX1NEUkFNX01PREUgPSBDT05GSUdfU1lTX0RSQU1fTU9ERTsKIAkvKiBub3JtYWwgb3BlcmF0aW9uICovCi0JKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DVFJMID0gQ0ZHX0RSQU1fQ09OVFJPTDsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NUUkwgPSBDT05GSUdfU1lTX0RSQU1fQ09OVFJPTDsKIAkvKiB3cml0ZSBkZWZhdWx0IFRBUCBkZWxheSAqLwotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ0RNX1BPUkNGRyA9IENGR19EUkFNX1RBUF9ERUwgPDwgMjQ7CisJKih2dV9sb25nICopTVBDNVhYWF9DRE1fUE9SQ0ZHID0gQ09ORklHX1NZU19EUkFNX1RBUF9ERUwgPDwgMjQ7CiAKICNpZiAwCiAJZm9yICh0YXBfZGVsID0gMDsgdGFwX2RlbCA8IDMyOyB0YXBfZGVsKyspCkBAIC05Nyw3ICs5Nyw3IEBACiAJCX0KIAl9CiAjZW5kaWYKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJZHJhbXNpemUgPSAoKDEgPDwgKCoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHIC0gMHgxMykpIDw8IDIwKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZW1rL3RvcDg2MC90b3A4NjAuYyBiL2JvYXJkL2Vtay90b3A4NjAvdG9wODYwLmMKaW5kZXggYWNhNDk5MS4uNzZmN2EwYyAxMDA2NDQKLS0tIGEvYm9hcmQvZW1rL3RvcDg2MC90b3A4NjAuYworKysgYi9ib2FyZC9lbWsvdG9wODYwL3RvcDg2MC5jCkBAIC03OCw3ICs3OCw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAkvKgpAQCAtOTMsOCArOTMsOCBAQAogCQkJICAgc2l6ZW9mIChlZG9fNjBuc18yNU1Iel90YmwpIC8gc2l6ZW9mICh1aW50KSk7CiAJCW1lbWN0bC0+bWVtY19tcHRwciA9IDB4MDIwMDsKIAkJbWVtY3RsLT5tZW1jX21hbXIgPSAweDBjYTIwMzMwOwotCQltZW1jdGwtPm1lbWNfb3IyID0gLUNGR19EUkFNX01BWCB8IE9SX0NTTlRfU0FNOwotCQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0RSQU1fQkFTRSB8IEJSX01TX1VQTUEgfCBCUl9WOworCQltZW1jdGwtPm1lbWNfb3IyID0gLUNPTkZJR19TWVNfRFJBTV9NQVggfCBPUl9DU05UX1NBTTsKKwkJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfRFJBTV9CQVNFIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAJCS8qCiAJCSAqIERvIDggcmVhZCBhY2Nlc3NlcyB0byBEUkFNCiAJCSAqLwpAQCAtMTEyLDcgKzExMiw3IEBACiAJCWFkZHIyWzFdID0gMHg0NzExMDgxNTsKIAkJaWYgKGFkZHIxWzBdID09IDB4ZmVlZGMwZGUgJiYgYWRkcjFbMV0gPT0gMHg0NzExMDgxNSkgewogCQkJLyogb25seSA0TUIgcG9wdWxhdGVkICovCi0JCQltZW1jdGwtPm1lbWNfb3IyID0gLShDRkdfRFJBTV9NQVggLyA0KSB8IE9SX0NTTlRfU0FNOworCQkJbWVtY3RsLT5tZW1jX29yMiA9IC0oQ09ORklHX1NZU19EUkFNX01BWCAvIDQpIHwgT1JfQ1NOVF9TQU07CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VwNzMxMi9mbGFzaC5jIGIvYm9hcmQvZXA3MzEyL2ZsYXNoLmMKaW5kZXggMWVmMDZmOC4uMGMyYjNhZSAxMDA2NDQKLS0tIGEvYm9hcmQvZXA3MzEyL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXA3MzEyL2ZsYXNoLmMKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFIDB4MTAwMDAwMAogI2RlZmluZSBNQUlOX1NFQ1RfU0laRSAgMHgyMDAwMAogCi1mbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zOCwxNSArMzgsMTUgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQogCQkJCShJTlRFTF9NQU5VRkFDVCAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJCQkJKElOVEVMX0lEXzI4RjEyOEozICYgRkxBU0hfVFlQRU1BU0spOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCWlmIChpID09IDApCiAJCQlmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CiAJCWVsc2UKQEAgLTYwLDggKzYwLDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTE2NSw3ICsxNjUsNyBAQAogCQkJKmFkZHIgPSAweEQwOwkJLyogZXJhc2UgY29uZmlybSAqLwogCiAJCQl3aGlsZSAoKCphZGRyICYgMHg4MCkgIT0gMHg4MCkgewotCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQkqYWRkciA9IDB4QjA7CS8qIHN1c3BlbmQgZXJhc2UgKi8KIAkJCQkJKmFkZHIgPSAweEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KIAkJCQkJcmMgPSBFUlJfVElNT1VUOwpAQCAtMjMyLDcgKzIzMiw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHZhbCA9ICphZGRyKSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmMgPSBFUlJfVElNT1VUOwogCQkJLyogc3VzcGVuZCBwcm9ncmFtIGNvbW1hbmQgKi8KIAkJCSphZGRyID0gMHhCMDsKZGlmZiAtLWdpdCBhL2JvYXJkL2VwODI0OC9lcDgyNDguYyBiL2JvYXJkL2VwODI0OC9lcDgyNDguYwppbmRleCA0Y2ZiMmFjLi5iYzIwYmE3IDEwMDY0NAotLS0gYS9ib2FyZC9lcDgyNDgvZXA4MjQ4LmMKKysrIGIvYm9hcmQvZXA4MjQ4L2VwODI0OC5jCkBAIC0zNSwzMSArMzUsMzEgQEAKICAqIGFjY29yZGluZyB0byB0aGUgZml2ZSB2YWx1ZXMgcG9kci9wZGlyL3BwYXIvcHNvci9wZGF0IGZvciB0aGF0IGVudHJ5CiAgKi8KIAotI2RlZmluZSBDRkdfRkNDMSAoQ09ORklHX0VUSEVSX0lOREVYID09IDEpCi0jZGVmaW5lIENGR19GQ0MyIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MxIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MyIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKIAogY29uc3QgaW9wX2NvbmZfdCBpb3BfY29uZl90YWJbNF1bMzJdID0gewogCiAgICAgLyogUG9ydCBBICovCiAgICAgewkvKgkgICAgICBjb25mICAgICAgcHBhciBwc29yIHBkaXIgcG9kciBwZGF0ICovCi0JLyogUEEzMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDT0wgICAgKi8KLQkvKiBQQTMwICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIENSUyAgICAqLwotCS8qIFBBMjkgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRVIgICovCi0JLyogUEEyOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUWF9FTiAgKi8KLQkvKiBQQTI3ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0RWICAqLwotCS8qIFBBMjYgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRVIgICovCisJLyogUEEzMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ09MICAgICovCisJLyogUEEzMCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ1JTICAgICovCisJLyogUEEyOSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRVIgICovCisJLyogUEEyOCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRU4gICovCisJLyogUEEyNyAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRFYgICovCisJLyogUEEyNiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRVIgICovCiAJLyogUEEyNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI1ICAgICAgICAgICAgKi8KIAkvKiBQQTI0ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMjQgICAgICAgICAgICAqLwogCS8qIFBBMjMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEEyMyAgICAgICAgICAgICovCiAJLyogUEEyMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTIyICAgICAgICAgICAgKi8KLQkvKiBQQTIxICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFszXSAqLwotCS8qIFBBMjAgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzJdICovCi0JLyogUEExOSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbMV0gKi8KLQkvKiBQQTE4ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFswXSAqLwotCS8qIFBBMTcgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzBdICovCi0JLyogUEExNiAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeERbMV0gKi8KLQkvKiBQQTE1ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsyXSAqLwotCS8qIFBBMTQgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzNdICovCisJLyogUEEyMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzNdICovCisJLyogUEEyMCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzJdICovCisJLyogUEExOSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzFdICovCisJLyogUEExOCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzBdICovCisJLyogUEExNyAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzBdICovCisJLyogUEExNiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzFdICovCisJLyogUEExNSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzJdICovCisJLyogUEExNCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzNdICovCiAJLyogUEExMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTEzICAgICAgICAgICAgKi8KIAkvKiBQQTEyICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMTIgICAgICAgICAgICAqLwogCS8qIFBBMTEgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMSAgICAgICAgICAgICovCkBAIC03OCwyMCArNzgsMjAgQEAKIAogICAgIC8qIFBvcnQgQiAqLwogICAgIHsgICAvKgkgICAgICBjb25mICAgICAgcHBhciBwc29yIHBkaXIgcG9kciBwZGF0ICovCi0JLyogUEIzMSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FUiAgKi8KLQkvKiBQQjMwICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0RWICAqLwotCS8qIFBCMjkgKi8geyBDRkdfRkNDMiwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRU4gICovCi0JLyogUEIyOCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9FUiAgKi8KLQkvKiBQQjI3ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENPTCAgICAqLwotCS8qIFBCMjYgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ1JTICAgICovCi0JLyogUEIyNSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbM10gKi8KLQkvKiBQQjI0ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsyXSAqLwotCS8qIFBCMjMgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzFdICovCi0JLyogUEIyMiAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMF0gKi8KLQkvKiBQQjIxICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFswXSAqLwotCS8qIFBCMjAgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzFdICovCi0JLyogUEIxOSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMl0gKi8KLQkvKiBQQjE4ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFszXSAqLworCS8qIFBCMzEgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VSICAqLworCS8qIFBCMzAgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0RWICAqLworCS8qIFBCMjkgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VOICAqLworCS8qIFBCMjggKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0VSICAqLworCS8qIFBCMjcgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENPTCAgICAqLworCS8qIFBCMjYgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAgICAqLworCS8qIFBCMjUgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFszXSAqLworCS8qIFBCMjQgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsyXSAqLworCS8qIFBCMjMgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLworCS8qIFBCMjIgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFswXSAqLworCS8qIFBCMjEgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFswXSAqLworCS8qIFBCMjAgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLworCS8qIFBCMTkgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsyXSAqLworCS8qIFBCMTggKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFszXSAqLwogCS8qIFBCMTcgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogbm9uLWV4aXN0ZW50ICAgICovCiAJLyogUEIxNiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBub24tZXhpc3RlbnQgICAgKi8KIAkvKiBQQjE1ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIG5vbi1leGlzdGVudCAgICAqLwpAQCAtMTIzLDExICsxMjMsMTEgQEAKIAkvKiBQQzI1ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjUgICAgICAgICAgICAqLwogCS8qIFBDMjQgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMyNCAgICAgICAgICAgICovCiAJLyogUEMyMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzIzICAgICAgICAgICAgKi8KLQkvKiBQQzIyICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgUnhDbGsgKENMSzEwKSAqLwotCS8qIFBDMjEgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBUeENsayAoQ0xLMTEpICovCisJLyogUEMyMiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBSeENsayAoQ0xLMTApICovCisJLyogUEMyMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBUeENsayAoQ0xLMTEpICovCiAJLyogUEMyMCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzIwICAgICAgICAgICAgKi8KLQkvKiBQQzE5ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgUnhDbGsgKENMSzEzKSAqLwotCS8qIFBDMTggKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBUeENsayAoQ0xLMTQpICovCisJLyogUEMxOSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBSeENsayAoQ0xLMTMpICovCisJLyogUEMxOCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBUeENsayAoQ0xLMTQpICovCiAJLyogUEMxNyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE3ICAgICAgICAgICAgKi8KIAkvKiBQQzE2ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTYgICAgICAgICAgICAqLwogCS8qIFBDMTUgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNSAgICAgICAgICAgICovCkBAIC0xODcsNyArMTg3LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDRkdfQkNTUjsKKwl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX0JDU1I7CiAKIAliY3NyWzRdIHw9IDB4MzA7IC8qIFR1cm4gdGhlIExFRHMgb2ZmICovCiAKQEAgLTE5OCwzOSArMTk4LDM5IEBACiAJYmNzcls3XSB8PSAweDEwOwogI2VuZGlmCiAKLSNpZiBDRkdfRkNDMQorI2lmIENPTkZJR19TWVNfRkNDMQogCWJjc3JbOF0gfD0gMHhDMDsKLSNlbmRpZiAvKiBDRkdfRkNDMSAqLwotI2lmIENGR19GQ0MyCisjZW5kaWYgLyogQ09ORklHX1NZU19GQ0MxICovCisjaWYgQ09ORklHX1NZU19GQ0MyCiAJYmNzcls4XSB8PSAweDMwOwotI2VuZGlmIC8qIENGR19GQ0MyICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GQ0MyICovCiAKIAlyZXR1cm4gMDsKIH0KIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0JdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ0ZHX0JDU1I7CisJdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19CQ1NSOwogCWxvbmcgaW50IG1zaXplID0gMTZMIDw8IChiY3NyWzJdICYgMyk7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKLQl2dV9jaGFyICpyYW1hZGRyID0gKHZ1X2NoYXIgKilDRkdfU0RSQU1fQkFTRTsKKwl2dV9jaGFyICpyYW1hZGRyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJdWNoYXIgYyA9IDB4RkY7Ci0JdWludCBwc2RtciA9IENGR19QU0RNUjsKKwl1aW50IHBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKIAlpbnQgaTsKIAogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWNyICA9IDB4MDI7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3BwY19hbHJoID0gMHgzMDEyNjc0NTsKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfdGVzY3IxICAgPSAweDAwMDA0MDAwOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAkvKiBJbml0aWFsaXNlIDYweCBidXMgU0RSQU0gKi8KLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19vcjEgID0gQ0ZHX1NEUkFNX09SOwotCW1lbWN0bC0+bWVtY19icjEgID0gQ0ZHX1NEUkFNX0JSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19vcjEgID0gQ09ORklHX1NZU19TRFJBTV9PUjsKKwltZW1jdGwtPm1lbWNfYnIxICA9IENPTkZJR19TWVNfU0RSQU1fQlI7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9PUF9QUkVBOyAvKiBQcmVjaGFyZ2UgYWxsIGJhbmtzICovCiAJKnJhbWFkZHIgPSBjOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfQ0JSUjsgLyogQ0JSIHJlZnJlc2ggKi8KQEAgLTI0MCw3ICsyNDAsNyBAQAogCSpyYW1hZGRyID0gYzsKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX1JGRU47ICAgIC8qIFJlZnJlc2ggZW5hYmxlICovCiAJKnJhbWFkZHIgPSBjOwotI2VuZGlmIC8qICFDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHVybiB0b3RhbCA2MHggYnVzIFNEUkFNIHNpemUgKi8KIAlyZXR1cm4gbXNpemUgKiAxMDI0ICogMTAyNDsKQEAgLTI0OCw3ICsyNDgsNyBAQAogCiBpbnQgY2hlY2tib2FyZCh2b2lkKQogewotCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNGR19CQ1NSOworCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNPTkZJR19TWVNfQkNTUjsKIAogCXB1dHMoIkJvYXJkOiAiKTsKIAlzd2l0Y2ggKGJjc3JbMF0pIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2VwODI2MC9jb25maWcubWsgYi9ib2FyZC9lcDgyNjAvY29uZmlnLm1rCmluZGV4IGVhZjE1NjAuLjEyMjU4MzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VwODI2MC9jb25maWcubWsKKysrIGIvYm9hcmQvZXA4MjYwL2NvbmZpZy5tawpAQCAtMjUsNyArMjUsNyBAQAogIyBFUDgyNjAgYm9hcmRzCiAjCiAKLSMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENGR19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdfZXA4MjYwLmgKKyMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENPTkZJR19TWVNfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX2VwODI2MC5oCiAjIGZvciB0aGUgImZpbmFsIiBjb25maWd1cmF0aW9uLCB3aXRoIFUtQm9vdCBpbiBmbGFzaCwgb3IgdGhlIGFkZHJlc3MKICMgaW4gUkFNIHdoZXJlIFUtQm9vdCBpcyBsb2FkZWQgYXQgZm9yIGRlYnVnZ2luZy4KICMKZGlmZiAtLWdpdCBhL2JvYXJkL2VwODI2MC9lcDgyNjAuYyBiL2JvYXJkL2VwODI2MC9lcDgyNjAuYwppbmRleCAwZTQzYzZkLi45MGFiMDQ3IDEwMDY0NAotLS0gYS9ib2FyZC9lcDgyNjAvZXA4MjYwLmMKKysrIGIvYm9hcmQvZXA4MjYwL2VwODI2MC5jCkBAIC0xOTAsMTIgKzE5MCwxMiBAQAogKi8KIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdF9lcF9yZWdzICpyZWdzID0gKHRfZXBfcmVncyAqKSBDRkdfUkVHU19CQVNFOwotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgdF9lcF9yZWdzICpyZWdzID0gKHRfZXBfcmVncyAqKSBDT05GSUdfU1lTX1JFR1NfQkFTRTsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCi0JbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjRfUFJFTElNOwotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI0ID0gQ09ORklHX1NZU19CUjRfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CiAJcmVncy0+YmNzcjEgPSAweDYyOwkvKiB0byBlbmFibGUgdGVybWluYWwgb24gU01DMSAqLwogCXJlZ3MtPmJjc3IyID0gMHgzMDsJLyogZW5hYmxlIE5WUkFNIGFuZCB3cml0aW5nIEZMQVNIICovCiAJcmV0dXJuIDA7CkBAIC0yMDMsNyArMjAzLDcgQEAKIAogdm9pZCByZXNldF9waHkgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdF9lcF9yZWdzICpyZWdzID0gKHRfZXBfcmVncyAqKSBDRkdfUkVHU19CQVNFOworCXZvbGF0aWxlIHRfZXBfcmVncyAqcmVncyA9ICh0X2VwX3JlZ3MgKikgQ09ORklHX1NZU19SRUdTX0JBU0U7CiAKIAlyZWdzLT5iY3NyNCA9IDB4QzA7CiB9CkBAIC0yMTYsNyArMjE2LDcgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdF9lcF9yZWdzICpyZWdzID0gKHRfZXBfcmVncyAqKSBDRkdfUkVHU19CQVNFOworCXZvbGF0aWxlIHRfZXBfcmVncyAqcmVncyA9ICh0X2VwX3JlZ3MgKikgQ09ORklHX1NZU19SRUdTX0JBU0U7CiAJdWludCBtYWpvciA9IDAsIG1pbm9yID0gMDsKIAogCXN3aXRjaCAocmVncy0+YmNzcjApIHsKQEAgLTI0NSwxOCArMjQ1LDE4IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdm9sYXRpbGUgdWNoYXIgYyA9IDA7Ci0Jdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHIgPSAodWNoYXIgKikgKENGR19TRFJBTV9CQVNFKSArIDB4MTEwOworCXZvbGF0aWxlIHVjaGFyICpyYW1hZGRyID0gKHVjaGFyICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UpICsgMHgxMTA7CiAKIC8qCi0JdWxvbmcgcHNkbXIgPSBDRkdfUFNETVI7Ci0jaWZkZWYgQ0ZHX0xTRFJBTQotCXVsb25nIGxzZG1yID0gQ0ZHX0xTRE1SOworCXVsb25nIHBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKKyNpZmRlZiBDT05GSUdfU1lTX0xTRFJBTQorCXVsb25nIGxzZG1yID0gQ09ORklHX1NZU19MU0RNUjsKICNlbmRpZgogKi8KLQlsb25nIHNpemUgPSBDRkdfU0RSQU0wX1NJWkU7CisJbG9uZyBzaXplID0gQ09ORklHX1NZU19TRFJBTTBfU0laRTsKIAlpbnQgaTsKIAogCkBAIC0yNzcsNDQgKzI3Nyw0NCBAQAogKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogKgogKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLSogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KICovCiAKLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCi0JbWVtY3RsLT5tZW1jX3BzZG1yID0gKHVsb25nKSBDRkdfUFNETVIgfCBQU0RNUl9PUF9QUkVBOworCW1lbWN0bC0+bWVtY19wc2RtciA9ICh1bG9uZykgQ09ORklHX1NZU19QU0RNUiB8IFBTRE1SX09QX1BSRUE7CiAJKnJhbWFkZHIgPSBjOwogCi0JbWVtY3RsLT5tZW1jX3BzZG1yID0gKHVsb25nKSBDRkdfUFNETVIgfCBQU0RNUl9PUF9DQlJSOworCW1lbWN0bC0+bWVtY19wc2RtciA9ICh1bG9uZykgQ09ORklHX1NZU19QU0RNUiB8IFBTRE1SX09QX0NCUlI7CiAJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKIAkJKnJhbWFkZHIgPSBjOwogCi0JbWVtY3RsLT5tZW1jX3BzZG1yID0gKHVsb25nKSBDRkdfUFNETVIgfCBQU0RNUl9PUF9NUlc7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gKHVsb25nKSBDT05GSUdfU1lTX1BTRE1SIHwgUFNETVJfT1BfTVJXOwogCSpyYW1hZGRyID0gYzsKIAotCW1lbWN0bC0+bWVtY19wc2RtciA9ICh1bG9uZykgQ0ZHX1BTRE1SIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gKHVsb25nKSBDT05GSUdfU1lTX1BTRE1SIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CiAJKnJhbWFkZHIgPSBjOwogCi0jaWZuZGVmIENGR19SQU1CT09UCi0jaWZkZWYgQ0ZHX0xTRFJBTQotCXNpemUgKz0gQ0ZHX1NEUkFNMV9TSVpFOwotCXJhbWFkZHIgPSAodWNoYXIgKikgKENGR19TRFJBTTFfQkFTRSkgKyAweDhjOwotCW1lbWN0bC0+bWVtY19sc3J0ID0gQ0ZHX0xTUlQ7CisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorI2lmZGVmIENPTkZJR19TWVNfTFNEUkFNCisJc2l6ZSArPSBDT05GSUdfU1lTX1NEUkFNMV9TSVpFOworCXJhbWFkZHIgPSAodWNoYXIgKikgKENPTkZJR19TWVNfU0RSQU0xX0JBU0UpICsgMHg4YzsKKwltZW1jdGwtPm1lbWNfbHNydCA9IENPTkZJR19TWVNfTFNSVDsKIAotCW1lbWN0bC0+bWVtY19sc2RtciA9ICh1bG9uZykgQ0ZHX0xTRE1SIHwgUFNETVJfT1BfUFJFQTsKKwltZW1jdGwtPm1lbWNfbHNkbXIgPSAodWxvbmcpIENPTkZJR19TWVNfTFNETVIgfCBQU0RNUl9PUF9QUkVBOwogCSpyYW1hZGRyID0gYzsKIAotCW1lbWN0bC0+bWVtY19sc2RtciA9ICh1bG9uZykgQ0ZHX0xTRE1SIHwgUFNETVJfT1BfQ0JSUjsKKwltZW1jdGwtPm1lbWNfbHNkbXIgPSAodWxvbmcpIENPTkZJR19TWVNfTFNETVIgfCBQU0RNUl9PUF9DQlJSOwogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCiAJCSpyYW1hZGRyID0gYzsKIAotCW1lbWN0bC0+bWVtY19sc2RtciA9ICh1bG9uZykgQ0ZHX0xTRE1SIHwgUFNETVJfT1BfTVJXOworCW1lbWN0bC0+bWVtY19sc2RtciA9ICh1bG9uZykgQ09ORklHX1NZU19MU0RNUiB8IFBTRE1SX09QX01SVzsKIAkqcmFtYWRkciA9IGM7CiAKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSAodWxvbmcpIENGR19MU0RNUiB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOworCW1lbWN0bC0+bWVtY19sc2RtciA9ICh1bG9uZykgQ09ORklHX1NZU19MU0RNUiB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpyYW1hZGRyID0gYzsKLSNlbmRpZiAvKiBDRkdfTFNEUkFNICovCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0xTRFJBTSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCXJldHVybiAoc2l6ZSAqIDEwMjQgKiAxMDI0KTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2VwODI2MC9mbGFzaC5jIGIvYm9hcmQvZXA4MjYwL2ZsYXNoLmMKaW5kZXggZDMyNDg2ZC4uMmE4MWRlNSAxMDA2NDQKLS0tIGEvYm9hcmQvZXA4MjYwL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXA4MjYwL2ZsYXNoLmMKQEAgLTM1LDcgKzM1LDcgQEAKICNkZWZpbmUgVl9CWVRFKGEpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoIGEgKSkKIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMzQsMTMgKzEzNCwxMyBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIChvbmx5IG9uZSBiYW5rKSAqLwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZShDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTiB8fCBzaXplX2IwID09IDApIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJCXNpemVfYjAsIHNpemVfYjA+PjIwKTsKQEAgLTE1MCwxMCArMTUwLDEwIEBACiAJICogcHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSDBfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yODQsNyArMjg0LDcgQEAKIAl3aGlsZSAoKFZfVUxPTkcoIGluZm8tPnN0YXJ0W2xfc2VjdF0gKSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODAgfHwKIAkgICAgICAgKFZfVUxPTkcoIGluZm8tPnN0YXJ0W2xfc2VjdF0gKyA0ICkgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKQogCXsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQwMyw3ICs0MDMsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKChWX1VMT05HKCBkZXN0ICkgJiAweDAwODAwMDgwKSAhPSAoY2ggJiAweDAwODAwMDgwKSkgfHwKIAkgICAgICAgKChWX1VMT05HKCBkZXN0ICsgNCApICYgMHgwMDgwMDA4MCkgIT0gKGNsICYgMHgwMDgwMDA4MCkpKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9lcDgyNjAvbWlpX3BoeS5jIGIvYm9hcmQvZXA4MjYwL21paV9waHkuYwppbmRleCA4MTNmMDIwLi5jN2FhMjc1IDEwMDY0NAotLS0gYS9ib2FyZC9lcDgyNjAvbWlpX3BoeS5jCisrKyBiL2JvYXJkL2VwODI2MC9taWlfcGh5LmMKQEAgLTU0LDcgKzU0LDcgQEAKIHsKICAgICBpbnQgaTsKICAgICB1bnNpZ25lZCBzaG9ydCB0bXAsIHZhbCA9IDAsIGFkciA9IDA7Ci0gICAgdF9lcF9yZWdzICpyZWdzID0gKHRfZXBfcmVncyopQ0ZHX1JFR1NfQkFTRTsKKyAgICB0X2VwX3JlZ3MgKnJlZ3MgPSAodF9lcF9yZWdzKilDT05GSUdfU1lTX1JFR1NfQkFTRTsKIAogICAgIHRtcCA9IDB4NjAwMiB8IChhZHIgPDwgNykgfCAocmVnIDw8IDIpOwogICAgIHJlZ3MtPmJjc3I0ID0gMHhDMzsKQEAgLTgzLDcgKzgzLDcgQEAKIHsKICAgICBpbnQgaTsKICAgICB1bnNpZ25lZCBzaG9ydCB0bXAsIGFkciA9IDA7Ci0gICAgdF9lcF9yZWdzICpyZWdzID0gKHRfZXBfcmVncyopQ0ZHX1JFR1NfQkFTRTsKKyAgICB0X2VwX3JlZ3MgKnJlZ3MgPSAodF9lcF9yZWdzKilDT05GSUdfU1lTX1JFR1NfQkFTRTsKIAogICAgIHRtcCA9IDB4NTAwMiB8IChhZHIgPDwgNykgfCAocmVnIDw8IDIpOwogICAgIHJlZ3MtPmJjc3I0ID0gMHhDMzsKZGlmZiAtLWdpdCBhL2JvYXJkL2VwODJ4eG0vZXA4Mnh4bS5jIGIvYm9hcmQvZXA4Mnh4bS9lcDgyeHhtLmMKaW5kZXggMDNiYWYwYi4uYzFkNmU5MSAxMDA2NDQKLS0tIGEvYm9hcmQvZXA4Mnh4bS9lcDgyeHhtLmMKKysrIGIvYm9hcmQvZXA4Mnh4bS9lcDgyeHhtLmMKQEAgLTM5LDggKzM5LDggQEAKICAqIGFjY29yZGluZyB0byB0aGUgZml2ZSB2YWx1ZXMgcG9kci9wZGlyL3BwYXIvcHNvci9wZGF0IGZvciB0aGF0IGVudHJ5CiAgKi8KIAotI2RlZmluZSBDRkdfRkNDMiAxCi0jZGVmaW5lIENGR19GQ0MzIDEKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MyIDEKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MzIDEKIAogY29uc3QgaW9wX2NvbmZfdCBpb3BfY29uZl90YWJbNF1bMzJdID0gewogCkBAIC04MiwzNCArODIsMzQgQEAKIAogICAgIC8qIFBvcnQgQiAqLwogICAgIHsJLyoJICAgICBjb25mCXBwYXIgcHNvciBwZGlyIHBvZHIgcGRhdCAqLwotCS8qIFBCMzEgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgICovCi0JLyogUEIzMCAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAgKi8KLQkvKiBQQjI5ICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDEsICAgMSwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VOICAqLwotCS8qIFBCMjggKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgICovCi0JLyogUEIyNyAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgICAgKi8KLQkvKiBQQjI2ICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAgICAqLwotCS8qIFBCMjUgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCi0JLyogUEIyNCAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KLQkvKiBQQjIzICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLwotCS8qIFBCMjIgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCi0JLyogUEIyMSAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KLQkvKiBQQjIwICovIHsgQ0ZHX0ZDQzIsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLwotCS8qIFBCMTkgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCi0JLyogUEIxOCAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KLQkvKiBQQjE3ICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6UlhfRElWICAgICAqLwotCS8qIFBCMTYgKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWF9FUlIgICAgICovCi0JLyogUEIxNSAqLyB7IENGR19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYX0VSUiAgICAgKi8KLQkvKiBQQjE0ICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzM6VFhfRU4gICAgICAqLwotCS8qIFBCMTMgKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpDT0wJICAgICAqLwotCS8qIFBCMTIgKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpDUlMJICAgICAqLwotCS8qIFBCMTEgKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWEQJICAgICAqLwotCS8qIFBCMTAgKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpSWEQJICAgICAqLwotCS8qIFBCOQkqLyB7IENGR19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYRAkgICAgICovCi0JLyogUEI4CSovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6UlhECSAgICAgKi8KKwkvKiBQQjMxICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FUiAgKi8KKwkvKiBQQjMwICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAgKi8KKwkvKiBQQjI5ICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAxLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FTiAgKi8KKwkvKiBQQjI4ICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9FUiAgKi8KKwkvKiBQQjI3ICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgICAgKi8KKwkvKiBQQjI2ICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDUlMgICAgKi8KKwkvKiBQQjI1ICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbM10gKi8KKwkvKiBQQjI0ICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KKwkvKiBQQjIzICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMV0gKi8KKwkvKiBQQjIyICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMF0gKi8KKwkvKiBQQjIxICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KKwkvKiBQQjIwICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMV0gKi8KKwkvKiBQQjE5ICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMl0gKi8KKwkvKiBQQjE4ICovIHsgQ09ORklHX1NZU19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KKwkvKiBQQjE3ICovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYX0RJViAgICAgKi8KKwkvKiBQQjE2ICovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYX0VSUiAgICAgKi8KKwkvKiBQQjE1ICovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYX0VSUiAgICAgKi8KKwkvKiBQQjE0ICovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYX0VOICAgICAgKi8KKwkvKiBQQjEzICovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOkNPTAkgICAgICovCisJLyogUEIxMiAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogRkNDMzpDUlMJICAgICAqLworCS8qIFBCMTEgKi8geyBDT05GSUdfU1lTX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIEZDQzM6UlhECSAgICAgKi8KKwkvKiBQQjEwICovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYRAkgICAgICovCisJLyogUEI5CSovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYRAkgICAgICovCisJLyogUEI4CSovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBGQ0MzOlJYRAkgICAgICovCiAJLyogUEI3CSovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFBCNwkgICAgICovCi0JLyogUEI2CSovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMSwJMCwgICAwIH0sIC8qIEZDQzM6VFhECSAgICAgKi8KLQkvKiBQQjUJKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzpUWEQJICAgICAqLwotCS8qIFBCNAkqLyB7IENGR19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYRAkgICAgICovCisJLyogUEI2CSovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYRAkgICAgICovCisJLyogUEI1CSovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYRAkgICAgICovCisJLyogUEI0CSovIHsgQ09ORklHX1NZU19GQ0MzLAkgMSwgICAwLCAgIDEsCTAsICAgMCB9LCAvKiBGQ0MzOlRYRAkgICAgICovCiAJLyogUEIzCSovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIG5vbi1leGlzdGVudCAgICAqLwogCS8qIFBCMgkqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBub24tZXhpc3RlbnQgICAgKi8KIAkvKiBQQjEJKi8geyAwLAkJIDAsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogbm9uLWV4aXN0ZW50ICAgICovCkBAIC0xMjIsNyArMTIyLDcgQEAKIAkvKiBQQzMwICovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFBDMzAJICAgICAqLwogCS8qIFBDMjkgKi8geyAxLAkJIDEsICAgMSwgICAwLAkwLCAgIDAgfSwgLyogU0NDMSBDVFMjCSAgICAgKi8KIAkvKiBQQzI4ICovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFBDMjgJICAgICAqLwotCS8qIFBDMjcgKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzogVFhEWzBdICAgICovCisJLyogUEMyNyAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAxLAkwLCAgIDAgfSwgLyogRkNDMzogVFhEWzBdICAgICovCiAJLyogUEMyNiAqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBQQzI2CSAgICAgKi8KIAkvKiBQQzI1ICovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFBDMjUJICAgICAqLwogCS8qIFBDMjQgKi8geyAwLAkJIDAsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogUEMyNAkgICAgICovCkBAIC0xMzAsMTAgKzEzMCwxMCBAQAogCS8qIFBDMjIgKi8geyAwLAkJIDAsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogUEMyMgkgICAgICovCiAJLyogUEMyMSAqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBQQzIxCSAgICAgKi8KIAkvKiBQQzIwICovIHsgMCwJCSAwLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFBDMjAJICAgICAqLwotCS8qIFBDMTkgKi8geyBDRkdfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogUnhDbGsgKENMSzEzKSAgICovCi0JLyogUEMxOCAqLyB7IENGR19GQ0MyLAkgMSwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBUeENsayAoQ0xLMTQpICAgKi8KLQkvKiBQQzE3ICovIHsgQ0ZHX0ZDQzMsCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFJ4Q2xrIChDTEsxNSkgICAqLwotCS8qIFBDMTYgKi8geyBDRkdfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogVHhDbGsgKENMSzE2KSAgICovCisJLyogUEMxOSAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogUnhDbGsgKENMSzEzKSAgICovCisJLyogUEMxOCAqLyB7IENPTkZJR19TWVNfRkNDMiwJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogVHhDbGsgKENMSzE0KSAgICovCisJLyogUEMxNyAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogUnhDbGsgKENMSzE1KSAgICovCisJLyogUEMxNiAqLyB7IENPTkZJR19TWVNfRkNDMywJIDEsICAgMCwgICAwLAkwLCAgIDAgfSwgLyogVHhDbGsgKENMSzE2KSAgICovCiAJLyogUEMxNSAqLyB7IDAsCQkgMCwgICAwLCAgIDAsCTAsICAgMCB9LCAvKiBQQzE1CSAgICAgKi8KIAkvKiBQQzE0ICovIHsgMSwJCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFNDQzEgQ0QjCSAgICAgKi8KIAkvKiBQQzEzICovIHsgMSwJCSAxLCAgIDAsICAgMCwJMCwgICAwIH0sIC8qIFNDQzIgQ1RTIwkgICAgICovCkBAIC0xOTgsNyArMTk4LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDRkdfQkNTUjsKKwl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX0JDU1I7CiAKIAliY3NyWzRdIHw9IDB4MzA7IC8qIFR1cm4gdGhlIExFRHMgb2ZmICovCiAKQEAgLTIwOSwxMiArMjA5LDEyIEBACiAJYmNzcls3XSB8PSAweDEwOwogI2VuZGlmCiAKLSNpZiBDRkdfRkNDMworI2lmIENPTkZJR19TWVNfRkNDMwogCWJjc3JbOF0gfD0gMHhDMDsKLSNlbmRpZiAvKiBDRkdfRkNDMyAqLwotI2lmIENGR19GQ0MyCisjZW5kaWYgLyogQ09ORklHX1NZU19GQ0MzICovCisjaWYgQ09ORklHX1NZU19GQ0MyCiAJYmNzcls4XSB8PSAweDMwOwotI2VuZGlmIC8qIENGR19GQ0MyICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GQ0MyICovCiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIyNCwyMyArMjI0LDIzIEBACiAJLyogU2l6ZSBpbiBNQiBvZiBTRFJBTSBwb3B1bGF0ZWQgb24gYm9hcmQqLwogCWxvbmcgaW50IG1zaXplID0gMjU2OwogCi0jaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7Ci0JdWludCBwc2RtciA9IENGR19QU0RNUjsKKwl1aW50IHBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKIAlpbnQgaTsKIAogCXVuc2lnbmVkIGNoYXIJcmFtdG1wOwogCXVuc2lnbmVkIGNoYXIJKnJhbXB0cjEgPSAodW5zaWduZWQgY2hhciAqKTB4MDAwMDAxMTA7CiAKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogdWRlbGF5KDQwMCk7CiAKIAkvKiBJbml0aWFsaXNlIDYweCBidXMgU0RSQU0gKi8KLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19vcjEgID0gQ0ZHX1NEUkFNX09SOwotCW1lbWN0bC0+bWVtY19icjEgID0gQ0ZHX1NEUkFNX0JSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19vcjEgID0gQ09ORklHX1NZU19TRFJBTV9PUjsKKwltZW1jdGwtPm1lbWNfYnIxICA9IENPTkZJR19TWVNfU0RSQU1fQlI7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXI7CiAKIHVkZWxheSg0MDApOwpAQCAtMjU1LDcgKzI1NSw3IEBACiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9PUF9NUlc7ICAvKiBNb2RlIFJlZ2lzdGVyIHdyaXRlICovCiAJKnJhbXB0cjEgID0gMHhGRjsKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX1JGRU47ICAgIC8qIFJlZnJlc2ggZW5hYmxlICovCi0jZW5kaWYgLyogIUNGR19SQU1CT09UICovCisjZW5kaWYgLyogIUNPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogUmV0dXJuIHRvdGFsIDYweCBidXMgU0RSQU0gc2l6ZSAqLwogCXJldHVybiBtc2l6ZSAqIDEwMjQgKiAxMDI0OwpAQCAtMjYzLDcgKzI2Myw3IEBACiAKIGludCBjaGVja2JvYXJkKHZvaWQpCiB7Ci0JdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ0ZHX0JDU1I7CisJdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19CQ1NSOwogCiAJcHV0cygiQm9hcmQ6ICIpOwogCXN3aXRjaCAoYmNzclswXSkgewpkaWZmIC0tZ2l0IGEvYm9hcmQvZXA4OHgvZXA4OHguYyBiL2JvYXJkL2VwODh4L2VwODh4LmMKaW5kZXggOTJlNWYwYy4uN2U5NTAwNyAxMDA2NDQKLS0tIGEvYm9hcmQvZXA4OHgvZXA4OHguYworKysgYi9ib2FyZC9lcDg4eC9lcDg4eC5jCkBAIC02Myw3ICs2Myw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0JdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ0ZHX0JDU1I7CisJdnVfY2hhciAqYmNzciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19CQ1NSOwogCiAJYmNzclswXSB8PSAweDBDOyAvKiBUdXJuIHRoZSBMRURzIG9mZiAqLwogCWJjc3JbMl0gfD0gMHgwODsgLyogRW5hYmxlIGZsYXNoIFdFIyBsaW5lIC0gbmVjZXNzYXJ5IGZvcgpAQCAtODksNyArODksNyBAQAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewogCWxvbmcgaW50IG1zaXplOwotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAl1cG1jb25maWcoVVBNQSwgc2RyYW1fdGFibGUsIHNpemVvZihzZHJhbV90YWJsZSkgLyBzaXplb2YodWludCkpOwpAQCAtOTcsNyArOTcsNyBAQAogCS8qIENvbmZpZ3VyZSBTRFJBTSByZWZyZXNoICovCiAJbWVtY3RsLT5tZW1jX21wdHByID0gTVBUUFJfUFRQX0RJVjI7IC8qIEJSR0NMSy8yICovCiAKLQltZW1jdGwtPm1lbWNfbWFtciA9ICg2NSA8PCAyNCkgfCBDRkdfTUFNUjsgLyogTm8gcmVmcmVzaCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gKDY1IDw8IDI0KSB8IENPTkZJR19TWVNfTUFNUjsgLyogTm8gcmVmcmVzaCAqLwogCXVkZWxheSgxMDApOwogCiAJLyogUnVuIE1SUyBwYXR0ZXJuIGZyb20gbG9jYXRpb24gMHgzNiAqLwpAQCAtMTA2LDEwICsxMDYsMTAgQEAKIAl1ZGVsYXkoMTAwKTsKIAogCW1lbWN0bC0+bWVtY19tYW1yIHw9ICBNQU1SX1BUQUU7IC8qIEVuYWJsZSByZWZyZXNoICovCi0JbWVtY3RsLT5tZW1jX29yMSAgID0gfihDRkdfU0RSQU1fTUFYX1NJWkUgLSAxKSB8IE9SX0NTTlRfU0FNOwotCW1lbWN0bC0+bWVtY19icjEgICA9ICBDRkdfU0RSQU1fQkFTRSB8IEJSX1BTXzMyIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMSAgID0gfihDT05GSUdfU1lTX1NEUkFNX01BWF9TSVpFIC0gMSkgfCBPUl9DU05UX1NBTTsKKwltZW1jdGwtPm1lbWNfYnIxICAgPSAgQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQlJfUFNfMzIgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAotCW1zaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfU0RSQU1fTUFYX1NJWkUpOworCW1zaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19TRFJBTV9NQVhfU0laRSk7CiAJbWVtY3RsLT5tZW1jX29yMSAgfD0gfihtc2l6ZSAtIDEpOwogCiAJcmV0dXJuIG1zaXplOwpAQCAtMTE3LDcgKzExNyw3IEBACiAKIGludCBjaGVja2JvYXJkKCB2b2lkICkKIHsKLQl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDRkdfQkNTUjsKKwl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX0JDU1I7CiAKIAlwdXRzKCJCb2FyZDogIik7CiAJc3dpdGNoIChiY3NyWzE1XSkgewpkaWZmIC0tZ2l0IGEvYm9hcmQvZXJpYy9lcmljLmMgYi9ib2FyZC9lcmljL2VyaWMuYwppbmRleCA5NzJkNDg1Li42MDBiOWQ3IDEwMDY0NAotLS0gYS9ib2FyZC9lcmljL2VyaWMuYworKysgYi9ib2FyZC9lcmljL2VyaWMuYwpAQCAtMTQyLDcgKzE0Miw3IEBACiAJICogc28gbGV0IGluaXQuUyBkbyB0aGUgaW5pdCBqb2IgZm9yIFNEUkFNCiAJICogYW5kIHNpbXBseSByZXR1cm4gMzJNQnl0ZSBoZXJlCiAJICovCi0JcmV0dXJuIChDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0KTsKKwlyZXR1cm4gKENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0KTsKICNlbHNlCiAKIAkvKiBSZWFkIFNlcmlhbCBQcmVzZW5jZSBEZXRlY3QgSW5mb3JtYXRpb24gKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VyaWMvZmxhc2guYyBiL2JvYXJkL2VyaWMvZmxhc2guYwppbmRleCAyYzdkMmEwLi43ZTU3NTEzIDEwMDY0NAotLS0gYS9ib2FyZC9lcmljL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXJpYy9mbGFzaC5jCkBAIC0yNSwxMCArMjUsMTAgQEAKICNpbmNsdWRlIDxwcGM0eHguaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAKLSNpZmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAjZGVmaW5lIEZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAogI2RlZmluZQlGTEFTSF9JRF9NQVNLCTB4RkZGRgogI2Vsc2UKQEAgLTQyLDcgKzQyLDcgQEAKIC8qIHN0b2xlbiBmcm9tIGVzdGVlbTE5MmUvZmxhc2guYyAqLwogdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZvbGF0aWxlIEZMQVNIX1dPUkRfU0laRSAqYWRkciwgZmxhc2hfaW5mb190ICppbmZvKTsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogc3RhdGljIGludCB3cml0ZV93b3JkIChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwogI2Vsc2UKIHN0YXRpYyBpbnQgd3JpdGVfc2hvcnQgKGZsYXNoX2luZm9fdCAqaW5mbywgdWxvbmcgZGVzdCwgdXNob3J0IGRhdGEpOwpAQCAtNjEsNyArNjEsNyBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZV9iMCwgYmFzZV9iMTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtNzUsNyArNzUsNyBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKQorCWlmIChDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA9PSAxKQogCSAgewogCSAgICAvKiBTZXR1cCBvZmZzZXRzICovCiAJICAgIGZsYXNoX2dldF9vZmZzZXRzIChGTEFTSF9CQVNFMF9QUkVMSU0sICZmbGFzaF9pbmZvWzBdKTsKQEAgLTg4LDggKzg4LDggQEAKIAkJCQkmZmxhc2hfaW5mb1swXSk7CiAjZWxzZQogCSAgICAodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQlDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCQkmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAkgICAgc2l6ZV9iMSA9IDAgOwpAQCAtMTM3LDggKzEzNyw4IEBACiAJCQkJJmZsYXNoX2luZm9bMF0pOwogI2Vsc2UKIAkgICAgKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkJJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTE4Nyw3ICsxODcsNyBAQAogCX0gZWxzZSBpZiAoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9CVFlQRSkgewogCSAgICAgaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fSU5URUwpIHsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkvKiBzZXQgc2VjdG9yIG9mZnNldHMgZm9yIGJvdHRvbSBib290IGJsb2NrIHR5cGUJKi8KIAkJaW5mby0+c3RhcnRbMF0gPSBiYXNlICsgMHgwMDAwMDAwMDsKIAkJaW5mby0+c3RhcnRbMV0gPSBiYXNlICsgMHgwMDAwNDAwMDsKQEAgLTI0MSw3ICsyNDEsNyBAQAogCQlpID0gaW5mby0+c2VjdG9yX2NvdW50IC0gMTsKIAkgICAgIGlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX0lOVEVMKSB7CiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAkJaW5mby0+c3RhcnRbaS0tXSA9IGJhc2UgKyBpbmZvLT5zaXplIC0gMHgwMDAwNDAwMDsKIAkJaW5mby0+c3RhcnRbaS0tXSA9IGJhc2UgKyBpbmZvLT5zaXplIC0gMHgwMDAwODAwMDsKIAkJaW5mby0+c3RhcnRbaS0tXSA9IGJhc2UgKyBpbmZvLT5zaXplIC0gMHgwMDAwQzAwMDsKQEAgLTQwMyw3ICs0MDMsNyBAQAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCiAKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCiAJLyoKIAkgKiBOb3RlOiBpZiBpdCBpcyBhbiBBTUQgZmxhc2ggYW5kIHRoZSB3b3JkIGF0IGFkZHJbMDAwMF0KQEAgLTY1NCw3ICs2NTQsNyBAQAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKICAgICBpZihpbmZvLT5mbGFzaF9pZCA8IEZMQVNIX0FNRF9DT01QKSB7Ci0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAJYWRkclsweDA1NTVdID0gMHgwMEFBMDBBQTsKIAlhZGRyWzB4MDJBQV0gPSAweDAwNTUwMDU1OwogCWFkZHJbMHgwNTU1XSA9IDB4MDA4MDAwODA7CkBAIC02OTUsNyArNjk1LDcgQEAKIAl3aGlsZSAoKGFkZHJbMF0gJiAoMHgwMDgwMDA4MCZGTEFTSF9JRF9NQVNLKSkgIT0KIAkJCSAgKDB4MDA4MDAwODAmRkxBU0hfSURfTUFTSykgICkKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC03MTYsNyArNzE2LDcgQEAKIAlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0PD1zX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KIAkJCWJhcmYgPSAwOwotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkJYWRkciA9ICh2dV9sb25nKikoaW5mby0+c3RhcnRbc2VjdF0pOwogCQkJYWRkclswXSA9IDB4MDAyMDAwMjA7CiAJCQlhZGRyWzBdID0gMHgwMEQwMDBEMDsKQEAgLTc2Nyw3ICs3NjcsNyBAQAogCWZsYXNoX2luZm9fdCAqaW5mbzsKIAlpbnQgaTsKIAotCWZvciAoaT0wLCBpbmZvPSZmbGFzaF9pbmZvWzBdOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSwgKytpbmZvKSB7CisJZm9yIChpPTAsIGluZm89JmZsYXNoX2luZm9bMF07IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSwgKytpbmZvKSB7CiAJCWlmICgoYWRkciA+PSBpbmZvLT5zdGFydFswXSkgJiYKIAkJICAgIChhZGRyIDwgKGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSkpICkgewogCQkJcmV0dXJuIChpbmZvKTsKQEAgLTg0NCw3ICs4NDQsNyBAQAogCiBpbnQgd3JpdGVfYnVmZiAoZmxhc2hfaW5mb190ICppbmZvLCB1Y2hhciAqc3JjLCB1bG9uZyBhZGRyLCB1bG9uZyBjbnQpCiB7Ci0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAJdWxvbmcgY3AsIHdwLCBkYXRhOwogCWludCBsOwogI2Vsc2UKQEAgLTg1Myw3ICs4NTMsNyBAQAogI2VuZGlmCiAJaW50IGksIHJjOwogCi0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAKIAogCXdwID0gKGFkZHIgJiB+Myk7CS8qIGdldCBsb3dlciB3b3JkIGFsaWduZWQgYWRkcmVzcyAqLwpAQCAtOTgwLDcgKzk4MCw3IEBACiAgKiAxIC0gd3JpdGUgdGltZW91dAogICogMiAtIEZsYXNoIG5vdCBlcmFzZWQKICAqLwotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogc3RhdGljIGludCB3cml0ZV93b3JkIChmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewogCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyAqKSAoaW5mby0+c3RhcnRbMF0pOwpAQCAtMTAxOCw3ICsxMDE4LDcgQEAKIAogCQl3aGlsZSAoKCooKHZ1X2xvbmcgKikgZGVzdCkgJiAweDAwODAwMDgwKSAhPQogCQkgICAgICAgKGRhdGEgJiAweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KQEAgLTEwMjYsNyArMTAyNiw3IEBACiAJfSBlbHNlIHsKIAogCQl3aGlsZSAoIShhZGRyWzBdICYgMHgwMDgwMDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIApAQCAtMTA5Myw3ICsxMDkzLDcgQEAKIAlpZiAoaW5mby0+Zmxhc2hfaWQgPCBGTEFTSF9BTURfQ09NUCkgewogCQkvKiBBTUQgc3R1ZmYgKi8KIAkJd2hpbGUgKCgqKCh2dV9zaG9ydCAqKSBkZXN0KSAmIDB4MDA4MCkgIT0gKGRhdGEgJiAweDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJfQpAQCAtMTEwMSw3ICsxMTAxLDcgQEAKIAl9IGVsc2UgewogCQkvKiBpbnRlbCBzdHVmZiAqLwogCQl3aGlsZSAoIShhZGRyWzBdICYgMHgwMDgwKSkgewkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIApAQCAtMTEyMCw3ICsxMTIwLDcgQEAKIAkJKmFkZHIgPSAweDAwQjA7CiAJCSphZGRyID0gMHgwMDcwOwogCQl3aGlsZSAoIShhZGRyWzBdICYgMHgwMDgwKSkgewkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIAkJKmFkZHIgPSAweDAwRkY7CmRpZmYgLS1naXQgYS9ib2FyZC9lcmljL2luaXQuUyBiL2JvYXJkL2VyaWMvaW5pdC5TCmluZGV4IDlkNGU3ZmYuLjIzMDRjYzcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VyaWMvaW5pdC5TCisrKyBiL2JvYXJkL2VyaWMvaW5pdC5TCkBAIC0yMTksNyArMjE5LDcgQEAKIAogCW1mbHIJcjMxCiAKLSNpZmRlZiBDRkdfU0RSQU1fTUFOVUFMTFkKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX01BTlVBTExZCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAJLyogU2V0IE1CMENGIGZvciBiYW5rIDAuICgwLTMyTUIpIEFkZHJlc3MgTW9kZSA0IHNpbmNlIDEyeDgoMikgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9hZGNpb3AvZmxhc2guYyBiL2JvYXJkL2VzZC9hZGNpb3AvZmxhc2guYwppbmRleCBkOWVjY2JhLi5kZDU3OGM4IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvYWRjaW9wL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2FkY2lvcC9mbGFzaC5jCkBAIC00NSw3ICs0NSw3IEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9hcGM0MDUvYXBjNDA1LmMgYi9ib2FyZC9lc2QvYXBjNDA1L2FwYzQwNS5jCmluZGV4IGU2MjlmZDkuLmFjOWJiYjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9hcGM0MDUvYXBjNDA1LmMKKysrIGIvYm9hcmQvZXNkL2FwYzQwNS9hcGM0MDUuYwpAQCAtNDEsNyArNDEsNyBAQAogZXh0ZXJuIHZvaWQgbHh0OTcxX25vX3NsZWVwKHZvaWQpOwogZXh0ZXJuIHVsb25nIGZsYXNoX2dldF9zaXplICh1bG9uZyBiYXNlLCBpbnQgYmFua251bSk7CiAKLWludCBmbGFzaF9iYW5rcyA9IENGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUOworaW50IGZsYXNoX2JhbmtzID0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NfREVURUNUOwogCiAvKiBmcGdhIGNvbmZpZ3VyYXRpb24gZGF0YSAtIGd6aXAgY29tcHJlc3NlZCBhbmQgZ2VuZXJhdGVkIGJ5IGJpbjJjICovCiBjb25zdCB1bnNpZ25lZCBjaGFyIGZwZ2FkYXRhW10gPQpAQCAtMTQwLDcgKzE0MCw3IEBACiAJICogRmlyc3QgcHVsbCBmcGdhLXByZyBwaW4gbG93LCB0byBkaXNhYmxlIGZwZ2EgbG9naWMKIAkgKi8KIAlvdXRfYmUzMigodm9pZCopR1BJTzBfT0RSLCAweDAwMDAwMDAwKTsgICAgICAgIC8qIG5vIG9wZW4gZHJhaW4gcGlucyAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9UQ1IsIENGR19GUEdBX1BSRyk7ICAgICAgLyogc2V0dXAgZm9yIG91dHB1dCAgICovCisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX1RDUiwgQ09ORklHX1NZU19GUEdBX1BSRyk7ICAgICAgLyogc2V0dXAgZm9yIG91dHB1dCAgICovCiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCAwKTsgICAgICAgICAgICAgICAgICAvKiBwdWxsIHByZyBsb3cgICAgICAgKi8KIAogCS8qCkBAIC0xNzgsOCArMTc4LDggQEAKIAkJbXRlYmMocGIxY3IsIDApOwogCiAJCS8qIHJlc2l6ZSBDUzAgdG8gMzJNQiAqLwotCQltdGViYyhwYjBhcCwgQ0ZHX0VCQ19QQjBBUF9IV1JFVjgpOwotCQltdGViYyhwYjBjciwgQ0ZHX0VCQ19QQjBDUl9IV1JFVjgpOworCQltdGViYyhwYjBhcCwgQ09ORklHX1NZU19FQkNfUEIwQVBfSFdSRVY4KTsKKwkJbXRlYmMocGIwY3IsIENPTkZJR19TWVNfRUJDX1BCMENSX0hXUkVWOCk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0yMDAsOCArMjAwLDggQEAKIAogaW50IG1pc2NfaW5pdF9yKHZvaWQpCiB7Ci0JdTE2ICpmcGdhX21vZGUgPSAodTE2ICopKENGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwpOwotCXUxNiAqZnBnYV9jdHJsMiA9KHUxNiAqKShDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMMik7CisJdTE2ICpmcGdhX21vZGUgPSAodTE2ICopKENPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCk7CisJdTE2ICpmcGdhX2N0cmwyID0odTE2ICopKENPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTDIpOwogCXU4ICpkdWFydDBfbWNyID0gKHU4ICopKERVQVJUMF9CQSArIDQpOwogCXU4ICpkdWFydDFfbWNyID0gKHU4ICopKERVQVJUMV9CQSArIDQpOwogCXVuc2lnbmVkIGNoYXIgKmRzdDsKQEAgLTIyMiw4ICsyMjIsOCBAQAogCWNudHJsMFJlZyA9IG1mZGNyKGNudHJsMCk7CiAJbXRkY3IoY250cmwwLCBjbnRybDBSZWcgfCAweDAwMzAwMDAwKTsKIAotCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JaWYgKGd1bnppcChkc3QsIENGR19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgeworCWRzdCA9IG1hbGxvYyhDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUpOworCWlmIChndW56aXAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZigiR1VOWklQIEVSUk9SIC0gbXVzdCBSRVNFVCBib2FyZCB0byByZWNvdmVyXG4iKTsKIAkJZG9fcmVzZXQoTlVMTCwgMCwgMCwgTlVMTCk7CiAJfQpAQCAtMjk3LDExICsyOTcsMTEgQEAKIAkvKgogCSAqIEVuYWJsZSBwb3dlciBvbiBQUy8yIGludGVyZmFjZSAod2l0aCByZXNldCkKIAkgKi8KLQlvdXRfYmUxNihmcGdhX21vZGUsIGluX2JlMTYoZnBnYV9tb2RlKSB8IENGR19GUEdBX0NUUkxfUFMyX1JFU0VUKTsKKwlvdXRfYmUxNihmcGdhX21vZGUsIGluX2JlMTYoZnBnYV9tb2RlKSB8IENPTkZJR19TWVNfRlBHQV9DVFJMX1BTMl9SRVNFVCk7CiAJZm9yIChpPTA7aTwxMDA7aSsrKQogCQl1ZGVsYXkoMTAwMCk7CiAJdWRlbGF5KDEwMDApOwotCW91dF9iZTE2KGZwZ2FfbW9kZSwgaW5fYmUxNihmcGdhX21vZGUpICYgfkNGR19GUEdBX0NUUkxfUFMyX1JFU0VUKTsKKwlvdXRfYmUxNihmcGdhX21vZGUsIGluX2JlMTYoZnBnYV9tb2RlKSAmIH5DT05GSUdfU1lTX0ZQR0FfQ1RSTF9QUzJfUkVTRVQpOwogCiAJLyoKIAkgKiBFbmFibGUgaW50ZXJydXB0cyBpbiBleGFyIGR1YXJ0IG1jclszXQpAQCAtMzE1LDE1ICszMTUsMTUgQEAKIAlzdHIgPSBnZXRlbnYoInNwbGFzaGltYWdlIik7CiAJaWYgKHN0cikgewogCQlsb2dvX2FkZHIgPSAodWNoYXIgKilzaW1wbGVfc3RydG91bChzdHIsIE5VTEwsIDE2KTsKLQkJbG9nb19zaXplID0gQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkU7CisJCWxvZ29fc2l6ZSA9IENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRTsKIAl9IGVsc2UgewogCQlsb2dvX2FkZHIgPSBsb2dvX2JtcDsKIAkJbG9nb19zaXplID0gc2l6ZW9mKGxvZ29fYm1wKTsKIAl9CiAKIAlpZiAoZ2QtPmJvYXJkX3R5cGUgPj0gNikgewotCQlyZXN1bHQgPSBsY2RfaW5pdCgodWNoYXIgKilDRkdfTENEX0JJR19SRUcsCi0JCQkJICAodWNoYXIgKilDRkdfTENEX0JJR19NRU0sCisJCXJlc3VsdCA9IGxjZF9pbml0KCh1Y2hhciAqKUNPTkZJR19TWVNfTENEX0JJR19SRUcsCisJCQkJICAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfTUVNLAogCQkJCSAgcmVnc18xMzUwNV82NDBfNDgwXzE2YnBwLAogCQkJCSAgc2l6ZW9mKHJlZ3NfMTM1MDVfNjQwXzQ4MF8xNmJwcCkgLwogCQkJCSAgc2l6ZW9mKHJlZ3NfMTM1MDVfNjQwXzQ4MF8xNmJwcFswXSksCkBAIC0zMzIsMTYgKzMzMiwxNiBAQAogCQkJLyogcmV0cnkgd2l0aCBpbnRlcm5hbCBpbWFnZSAqLwogCQkJbG9nb19hZGRyID0gbG9nb19ibXA7CiAJCQlsb2dvX3NpemUgPSBzaXplb2YobG9nb19ibXApOwotCQkJbGNkX2luaXQoKHVjaGFyICopQ0ZHX0xDRF9CSUdfUkVHLAotCQkJCSAodWNoYXIgKilDRkdfTENEX0JJR19NRU0sCisJCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfUkVHLAorCQkJCSAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfTUVNLAogCQkJCSByZWdzXzEzNTA1XzY0MF80ODBfMTZicHAsCiAJCQkJIHNpemVvZihyZWdzXzEzNTA1XzY0MF80ODBfMTZicHApIC8KIAkJCQkgc2l6ZW9mKHJlZ3NfMTM1MDVfNjQwXzQ4MF8xNmJwcFswXSksCiAJCQkJIGxvZ29fYWRkciwgbG9nb19zaXplKTsKIAkJfQogCX0gZWxzZSB7Ci0JCXJlc3VsdCA9IGxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfQklHX1JFRywKLQkJCQkgICh1Y2hhciAqKUNGR19MQ0RfQklHX01FTSwKKwkJcmVzdWx0ID0gbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfQklHX1JFRywKKwkJCQkgICh1Y2hhciAqKUNPTkZJR19TWVNfTENEX0JJR19NRU0sCiAJCQkJICByZWdzXzEzODA2XzY0MF80ODBfMTZicHAsCiAJCQkJICBzaXplb2YocmVnc18xMzgwNl82NDBfNDgwXzE2YnBwKSAvCiAJCQkJICBzaXplb2YocmVnc18xMzgwNl82NDBfNDgwXzE2YnBwWzBdKSwKQEAgLTM1MCw4ICszNTAsOCBAQAogCQkJLyogcmV0cnkgd2l0aCBpbnRlcm5hbCBpbWFnZSAqLwogCQkJbG9nb19hZGRyID0gbG9nb19ibXA7CiAJCQlsb2dvX3NpemUgPSBzaXplb2YobG9nb19ibXApOwotCQkJbGNkX2luaXQoKHVjaGFyICopQ0ZHX0xDRF9CSUdfUkVHLAotCQkJCSAodWNoYXIgKilDRkdfTENEX0JJR19NRU0sCisJCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfUkVHLAorCQkJCSAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfTUVNLAogCQkJCSByZWdzXzEzODA2XzY0MF80ODBfMTZicHAsCiAJCQkJIHNpemVvZihyZWdzXzEzODA2XzY0MF80ODBfMTZicHApIC8KIAkJCQkgc2l6ZW9mKHJlZ3NfMTM4MDZfNjQwXzQ4MF8xNmJwcFswXSksCkBAIC0zODksMTIgKzM4OSwxMiBAQAogCSAqIGZpeCBlbnZpcm9ubWVudCBmb3IgZmllbGQgdXBkYXRlZCB1bml0cwogCSAqLwogCWlmIChnZXRlbnYoImFsdGJvb3RjbWQiKSA9PSBOVUxMKSB7Ci0JCXNldGVudigidXNiX2xvYWQiLCBDRkdfVVNCX0xPQURfQ09NTUFORCk7Ci0JCXNldGVudigidXNiYXJncyIsIENGR19VU0JfQVJHUyk7CisJCXNldGVudigidXNiX2xvYWQiLCBDT05GSUdfU1lTX1VTQl9MT0FEX0NPTU1BTkQpOworCQlzZXRlbnYoInVzYmFyZ3MiLCBDT05GSUdfU1lTX1VTQl9BUkdTKTsKIAkJc2V0ZW52KCJib290Y21kIiwgQ09ORklHX0JPT1RDT01NQU5EKTsKLQkJc2V0ZW52KCJ1c2Jfc2VsZiIsIENGR19VU0JfU0VMRl9DT01NQU5EKTsKLQkJc2V0ZW52KCJib290bGltaXQiLCBDRkdfQk9PVExJTUlUKTsKLQkJc2V0ZW52KCJhbHRib290Y21kIiwgQ0ZHX0FMVF9CT09UQ09NTUFORCk7CisJCXNldGVudigidXNiX3NlbGYiLCBDT05GSUdfU1lTX1VTQl9TRUxGX0NPTU1BTkQpOworCQlzZXRlbnYoImJvb3RsaW1pdCIsIENPTkZJR19TWVNfQk9PVExJTUlUKTsKKwkJc2V0ZW52KCJhbHRib290Y21kIiwgQ09ORklHX1NZU19BTFRfQk9PVENPTU1BTkQpOwogCQlzYXZlZW52KCk7CiAJfQogCkBAIC00MjYsMTcgKzQyNiwxNyBAQAogI2lmZGVmIENPTkZJR19JREVfUkVTRVQKIHZvaWQgaWRlX3NldF9yZXNldChpbnQgb24pCiB7Ci0JdTE2ICpmcGdhX21vZGUgPSAodTE2ICopKENGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwpOworCXUxNiAqZnBnYV9tb2RlID0gKHUxNiAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwpOwogCiAJLyoKIAkgKiBBc3NlcnQgb3IgZGVhc3NlcnQgQ29tcGFjdEZsYXNoIFJlc2V0IFBpbgogCSAqLwogCWlmIChvbikgewogCQlvdXRfYmUxNihmcGdhX21vZGUsCi0JCQkgaW5fYmUxNihmcGdhX21vZGUpICYgfkNGR19GUEdBX0NUUkxfQ0ZfUkVTRVQpOworCQkJIGluX2JlMTYoZnBnYV9tb2RlKSAmIH5DT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9SRVNFVCk7CiAJfSBlbHNlIHsKIAkJb3V0X2JlMTYoZnBnYV9tb2RlLAotCQkJIGluX2JlMTYoZnBnYV9tb2RlKSB8IENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQpOworCQkJIGluX2JlMTYoZnBnYV9tb2RlKSB8IENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUKTsKIAl9CiB9CiAjZW5kaWYgLyogQ09ORklHX0lERV9SRVNFVCAqLwpAQCAtNDQ5LDcgKzQ0OSw3IEBACiAJbHh0OTcxX25vX3NsZWVwKCk7CiB9CiAKLSNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVCkKIGludCB1c2JfYm9hcmRfaW5pdCh2b2lkKQogewogCXJldHVybiAwOwpAQCAtNDgwLDQgKzQ4MCw0IEBACiAJdXNiX2JvYXJkX3N0b3AoKTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSSkgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQpICovCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvYXI0MDUvZmxhc2guYyBiL2JvYXJkL2VzZC9hcjQwNS9mbGFzaC5jCmluZGV4IDg5YWYxMTkuLjI3NGFkYTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9hcjQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9hcjQwNS9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiAJaW50IHNpemVfdmFsID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTEsNyArOTEsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2FzaDQwNS9hc2g0MDUuYyBiL2JvYXJkL2VzZC9hc2g0MDUvYXNoNDA1LmMKaW5kZXggYzM3MTBhYi4uZGQxZTJlYyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2FzaDQwNS9hc2g0MDUuYworKysgYi9ib2FyZC9lc2QvYXNoNDA1L2FzaDQwNS5jCkBAIC05NCw4ICs5NCw4IEBACiAJaW50IGluZGV4OwogCWludCBpOwogCi0JZHN0ID0gbWFsbG9jKENGR19GUEdBX01BWF9TSVpFKTsKLQlpZiAoZ3VuemlwIChkc3QsIENGR19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgeworCWRzdCA9IG1hbGxvYyhDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUpOworCWlmIChndW56aXAgKGRzdCwgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgewogCQlwcmludGYgKCJHVU5aSVAgRVJST1IgLSBtdXN0IFJFU0VUIGJvYXJkIHRvIHJlY292ZXJcbiIpOwogCQlkb19yZXNldCAoTlVMTCwgMCwgMCwgTlVMTCk7CiAJfQpAQCAtMTU3LDkgKzE1Nyw5IEBACiAJLyoKIAkgKiBSZXNldCBleHRlcm5hbCBEVUFSVHMKIAkgKi8KLQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ0ZHX0RVQVJUX1JTVCk7CisJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfRFVBUlRfUlNUKTsKIAl1ZGVsYXkoMTApOyAvKiB3YWl0IDEwdXMgKi8KLQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgfkNGR19EVUFSVF9SU1QpOworCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19EVUFSVF9SU1QpOwogCXVkZWxheSgxMDAwKTsgLyogd2FpdCAxbXMgKi8KIAogCS8qCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvYXNoNDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2QvYXNoNDA1L2ZsYXNoLmMKaW5kZXggODlhZjExOS4uMjc0YWRhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2FzaDQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9hc2g0MDUvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTkxLDcgKzkxLDcgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jYW5idC9mbGFzaC5jIGIvYm9hcmQvZXNkL2NhbmJ0L2ZsYXNoLmMKaW5kZXggZGU4NDdmOS4uNTZjODIyZSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NhbmJ0L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2NhbmJ0L2ZsYXNoLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jbXM3MDAvY21zNzAwLmMgYi9ib2FyZC9lc2QvY21zNzAwL2NtczcwMC5jCmluZGV4IDgwNmM3NTUuLjU3MDlkNDUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jbXM3MDAvY21zNzAwLmMKKysrIGIvYm9hcmQvZXNkL2NtczcwMC9jbXM3MDAuYwpAQCAtNjksOSArNjksOSBAQAogCS8qCiAJICogUmVzZXQgQ1BMRCB2aWEgR1BJTzEyIChDUzMpIHBpbgogCSAqLwotCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q0ZHX1BMRF9SRVNFVCk7CisJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH5DT05GSUdfU1lTX1BMRF9SRVNFVCk7CiAJdWRlbGF5KDEwMDApOyAvKiB3YWl0IDFtcyAqLwotCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDRkdfUExEX1JFU0VUKTsKKwlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19QTERfUkVTRVQpOwogCXVkZWxheSgxMDAwKTsgLyogd2FpdCAxbXMgKi8KIAogCXJldHVybiAwOwpAQCAtODYsNyArODYsNyBAQAogCS8qCiAJICogU2V0dXAgYW5kIGVuYWJsZSBFRVBST00gd3JpdGUgcHJvdGVjdGlvbgogCSAqLwotCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDRkdfRUVQUk9NX1dQKTsKKwlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19FRVBST01fV1ApOwogCiAJcmV0dXJuICgwKTsKIH0KQEAgLTEwMSw4ICsxMDEsOCBAQAogCWNoYXIgc3RyWzY0XTsKIAlpbnQgZmxhc2hjbnQ7CiAJaW50IGRlbGF5OwotCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmxlZF9yZWcgPSAodW5zaWduZWQgY2hhciAqKSgodWxvbmcpQ0ZHX1BMRF9CQVNFICsgMHgxMDAwKTsKLQl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICp2ZXJfcmVnID0gKHVuc2lnbmVkIGNoYXIgKikoKHVsb25nKUNGR19QTERfQkFTRSArIDB4MTAwMSk7CisJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqbGVkX3JlZyA9ICh1bnNpZ25lZCBjaGFyICopKCh1bG9uZylDT05GSUdfU1lTX1BMRF9CQVNFICsgMHgxMDAwKTsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICp2ZXJfcmVnID0gKHVuc2lnbmVkIGNoYXIgKikoKHVsb25nKUNPTkZJR19TWVNfUExEX0JBU0UgKyAweDEwMDEpOwogCiAJcHV0cyAoIkJvYXJkOiAiKTsKIApAQCAtMTMyLDcgKzEzMiw3IEBACiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIC8qIElucHV0OiA8ZGV2X2FkZHI+ICBJMkMgYWRkcmVzcyBvZiBFRVBST00gZGV2aWNlIHRvIGVuYWJsZS4KICAqICAgICAgICAgPHN0YXRlPiAgICAgLTE6IGRlbGl2ZXIgY3VycmVudCBzdGF0ZQogICoJICAgICAgICAgICAgICAgMDogZGlzYWJsZSB3cml0ZQpAQCAtMTQzLDIzICsxNDMsMjMgQEAKICAqLwogaW50IGVlcHJvbV93cml0ZV9lbmFibGUgKHVuc2lnbmVkIGRldl9hZGRyLCBpbnQgc3RhdGUpCiB7Ci0JaWYgKENGR19JMkNfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpIHsKKwlpZiAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpIHsKIAkJcmV0dXJuIC0xOwogCX0gZWxzZSB7CiAJCXN3aXRjaCAoc3RhdGUpIHsKIAkJY2FzZSAxOgogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2VzcywgY2xlYXIgYml0IEdQSU9fU0lOVDIuICovCi0JCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgfkNGR19FRVBST01fV1ApOworCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAJCQlzdGF0ZSA9IDA7CiAJCQlicmVhazsKIAkJY2FzZSAwOgogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MsIHNldCBiaXQgR1BJT19TSU5UMi4gKi8KLQkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDRkdfRUVQUk9NX1dQKTsKKwkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAJCQlzdGF0ZSA9IDA7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIFJlYWQgY3VycmVudCBzdGF0dXMgYmFjay4gKi8KLQkJCXN0YXRlID0gKDAgPT0gKGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiBDRkdfRUVQUk9NX1dQKSk7CisJCQlzdGF0ZSA9ICgwID09IChpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgQ09ORklHX1NZU19FRVBST01fV1ApKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtMTczLDIxICsxNzMsMjEgQEAKIAogCWlmIChxdWVyeSkgewogCQkvKiBRdWVyeSB3cml0ZSBhY2Nlc3Mgc3RhdGUuICovCi0JCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgLTEpOworCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAtMSk7CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJRdWVyeSBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CiAJCX0gZWxzZSB7CiAJCQlwcmludGYgKCJXcml0ZSBhY2Nlc3MgZm9yIGRldmljZSAweCUweCBpcyAlc2FibGVkLlxuIiwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKIAkJCXN0YXRlID0gMDsKIAkJfQogCX0gZWxzZSB7CiAJCWlmICgnMCcgPT0gYXJndlsxXVswXSkgewogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIDApOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCk7CiAJCX0gZWxzZSB7CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAxKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDEpOwogCQl9CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJTZXR1cCBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CkBAIC0yMDAsNyArMjAwLDcgQEAKIFVfQk9PVF9DTUQoZWVwd3JlbiwJMiwJMCwJZG9fZWVwX3dyZW4sCiAJICAgImVlcHdyZW4gLSBFbmFibGUgLyBkaXNhYmxlIC8gcXVlcnkgRUVQUk9NIHdyaXRlIGFjY2Vzc1xuIiwKIAkgICBOVUxMKTsKLSNlbmRpZiAvKiAjaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pICovCisjZW5kaWYgLyogI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikgKi8KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY21zNzAwL2ZsYXNoLmMgYi9ib2FyZC9lc2QvY21zNzAwL2ZsYXNoLmMKaW5kZXggODlhZjExOS4uMjc0YWRhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NtczcwMC9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9jbXM3MDAvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTkxLDcgKzkxLDcgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jb21tb24vYXV0b191cGRhdGUuYyBiL2JvYXJkL2VzZC9jb21tb24vYXV0b191cGRhdGUuYwppbmRleCBhMWUwY2U1Li42MzNmNjQxIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY29tbW9uL2F1dG9fdXBkYXRlLmMKKysrIGIvYm9hcmQvZXNkL2NvbW1vbi9hdXRvX3VwZGF0ZS5jCkBAIC03Miw3ICs3Miw3IEBACiAJCQkgICAgIHNpemVfdCBsZW4sIGludCBjbGVhbik7CiAjZW5kaWYKIAotZXh0ZXJuIGJsb2NrX2Rldl9kZXNjX3QgaWRlX2Rldl9kZXNjW0NGR19JREVfTUFYREVWSUNFXTsKK2V4dGVybiBibG9ja19kZXZfZGVzY190IGlkZV9kZXZfZGVzY1tDT05GSUdfU1lTX0lERV9NQVhERVZJQ0VdOwogCiBpbnQgYXVfY2hlY2tfY2tzdW1fdmFsaWQoaW50IGksIGxvbmcgbmJ5dGVzKQogewpAQCAtMzM1LDcgKzMzNSw3IEBACiAJY2hhciBjLCBwcmV2OwogCWNvbnN0IGNoYXIgKnZhcm5hbWVfc3RhcnQgPSBOVUxMOwogCWludCBpbnB1dGNudCAgPSBzdHJsZW4gKGlucHV0KTsKLQlpbnQgb3V0cHV0Y250ID0gQ0ZHX0NCU0laRTsKKwlpbnQgb3V0cHV0Y250ID0gQ09ORklHX1NZU19DQlNJWkU7CiAJaW50IHN0YXRlID0gMDsJLyogMCA9IHdhaXRpbmcgZm9yICckJwkqLwogCQkJLyogMSA9IHdhaXRpbmcgZm9yICcoJyBvciAneycgKi8KIAkJCS8qIDIgPSB3YWl0aW5nIGZvciAnKScgb3IgJ30nICovCkBAIC0zOTQsNyArMzk0LDcgQEAKIAkgICAgY2FzZSAyOgkJCS8qIFdhaXRpbmcgZm9yICkJKi8KIAkJaWYgKGMgPT0gJyknIHx8IGMgPT0gJ30nKSB7CiAJCQlpbnQgaTsKLQkJCWNoYXIgZW52bmFtZVtDRkdfQ0JTSVpFXSwgKmVudnZhbDsKKwkJCWNoYXIgZW52bmFtZVtDT05GSUdfU1lTX0NCU0laRV0sICplbnZ2YWw7CiAJCQkvKiBWYXJuYW1lICMgb2YgY2hhcnMgKi8KIAkJCWludCBlbnZjbnQgPSBpbnB1dCAtIHZhcm5hbWVfc3RhcnQgLSAxOwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY29tbW9uL2VzZDQwNWVwX25hbmQuYyBiL2JvYXJkL2VzZC9jb21tb24vZXNkNDA1ZXBfbmFuZC5jCmluZGV4IDQwZDFlZmIuLjczNjE3NmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jb21tb24vZXNkNDA1ZXBfbmFuZC5jCisrKyBiL2JvYXJkL2VzZC9jb21tb24vZXNkNDA1ZXBfbmFuZC5jCkBAIC0zNSwxNyArMzUsMTcgQEAKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkLT5wcml2OwogCWlmIChjdHJsICYgTkFORF9DVFJMX0NIQU5HRSkgewogCQlpZiAoIGN0cmwgJiBOQU5EX0NMRSApCi0JCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ0ZHX05BTkRfQ0xFKTsKKwkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0xFKTsKIAkJZWxzZQotCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH5DRkdfTkFORF9DTEUpOworCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkRfQ0xFKTsKIAkJaWYgKCBjdHJsICYgTkFORF9BTEUgKQotCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENGR19OQU5EX0FMRSk7CisJCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EX0FMRSk7CiAJCWVsc2UKLQkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q0ZHX05BTkRfQUxFKTsKKwkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EX0FMRSk7CiAJCWlmICggY3RybCAmIE5BTkRfTkNFICkKLQkJCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgJiB+Q0ZHX05BTkRfQ0UpOworCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkRfQ0UpOwogCQllbHNlCi0JCQlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpIHwgQ0ZHX05BTkRfQ0UpOworCQkJb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORF9DRSk7CiAJfQogCiAJaWYgKGNtZCAhPSBOQU5EX0NNRF9OT05FKQpAQCAtNTgsNyArNTgsNyBAQAogICovCiBzdGF0aWMgaW50IGVzZDQwNWVwX25hbmRfZGV2aWNlX3JlYWR5KHN0cnVjdCBtdGRfaW5mbyAqbXRkaW5mbykKIHsKLQlpZiAoaW5fYmUzMigodm9pZCAqKUdQSU8wX0lSKSAmIENGR19OQU5EX1JEWSkKKwlpZiAoaW5fYmUzMigodm9pZCAqKUdQSU8wX0lSKSAmIENPTkZJR19TWVNfTkFORF9SRFkpCiAJCXJldHVybiAxOwogCXJldHVybiAwOwogfQpAQCAtNjksOCArNjksOCBAQAogCS8qCiAJICogU2V0IE5BTkQtRkxBU0ggR1BJTyBzaWduYWxzIHRvIGRlZmF1bHRzCiAJICovCi0Jb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSAmIH4oQ0ZHX05BTkRfQ0xFIHwgQ0ZHX05BTkRfQUxFKSk7Ci0Jb3V0X2JlMzIoKHZvaWQgKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCAqKUdQSU8wX09SKSB8IENGR19OQU5EX0NFKTsKKwlvdXRfYmUzMigodm9pZCAqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkICopR1BJTzBfT1IpICYgfihDT05GSUdfU1lTX05BTkRfQ0xFIHwgQ09ORklHX1NZU19OQU5EX0FMRSkpOworCW91dF9iZTMyKCh2b2lkICopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQgKilHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0UpOwogCiAJLyoKIAkgKiBJbml0aWFsaXplIG5hbmRfY2hpcCBzdHJ1Y3R1cmUKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jb21tb24vZmxhc2guYyBiL2JvYXJkL2VzZC9jb21tb24vZmxhc2guYwppbmRleCBiZGEzNjFlLi4zZWEwNTNiIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY29tbW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2NvbW1vbi9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAjZW5kaWYKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTE2Nyw3ICsxNjcsNyBAQAogCiAJcHJpbnRmICgiICBTZWN0b3IgU3RhcnQgQWRkcmVzc2VzOiIpOwogCWZvciAoaT0wOyBpPGluZm8tPnNlY3Rvcl9jb3VudDsgKytpKSB7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAkJLyoKIAkJICogQ2hlY2sgaWYgd2hvbGUgc2VjdG9yIGlzIGVyYXNlZAogCQkgKi8KQEAgLTIyMSwyOCArMjIxLDI4IEBACiB7CiAJc2hvcnQgaTsKIAlzaG9ydCBuOwotCUNGR19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CisJQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CiAJdWxvbmcgYmFzZSA9ICh1bG9uZylhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWFkZHI7CiAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwOTAwMDkwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwOTAwMDkwOwogCi0JdmFsdWUgPSBhZGRyMltDRkdfRkxBU0hfUkVBRDBdOworCXZhbHVlID0gYWRkcjJbQ09ORklHX1NZU19GTEFTSF9SRUFEMF07CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQ7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpRlVKX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUZVSl9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRlVKOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NTVDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlFWENFTF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlFWENFTF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRVhDRUw7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC0yNTIsMTA0ICsyNTIsMTA0IEBACiAJCXJldHVybiAoMCk7CQkJLyogbm8gb3IgdW5rbm93biBmbGFzaAkqLwogCX0KIAotCXZhbHVlID0gYWRkcjJbQ0ZHX0ZMQVNIX1JFQUQxXTsJCS8qIGRldmljZSBJRAkJKi8KKwl2YWx1ZSA9IGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfUkVBRDFdOwkJLyogZGV2aWNlIElECQkqLwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDAuNSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDAuNSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDEgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU04MDBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxOTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAxMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAxIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMTYwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTE2MEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDM1OwogCQlpbmZvLT5zaXplID0gMHgwMDIwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDIgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0zMjBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIyVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIyQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIzVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIzQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOyAgYnJlYWs7CS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNjQwVToKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY2NDBVOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTY0MFU7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDEyODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDA7ICBicmVhazsJLyogPT4gOCBNQgkqLwogCiAjaWYgIShkZWZpbmVkKENPTkZJR19BRENJT1ApIHx8IGRlZmluZWQoQ09ORklHX0RBU0FfU0lNKSkKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjgwMEE6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGODAwQToKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1NUODAwQTsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTY7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMTYwQToKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjE2MDE6Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYxNjAyOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjE2MEE6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMTYwMToKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYxNjAyOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9TU1QxNjBBOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzMjsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAyIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYzMjAxOgotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMzIwMjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYzMjAxOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjMyMDI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NTVDMyMDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjQ7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gNCBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGNjQwMToKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjY0MDI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGNjQwMToKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEY2NDAyOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9TU1Q2NDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDEyODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDA7CkBAIC00MjQsMTkgKzQyNCwxOSBAQAogCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykgewogCQkvKiByZWFkIHNlY3RvciBwcm90ZWN0aW9uIGF0IHNlY3RvciBhZGRyZXNzLCAoQTcgLi4gQTApID0gMHgwMiAqLwogCQkvKiBEMCA9IDEgaWYgcHJvdGVjdGVkICovCi0JCWFkZHIyID0gKHZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOworCQlhZGRyMiA9ICh2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CiAJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgIT0gRkxBU0hfTUFOX0FNRCkKIAkJICBpbmZvLT5wcm90ZWN0W2ldID0gMDsKIAkJZWxzZQotCQkgIGluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDRkdfRkxBU0hfUkVBRDJdICYgMTsKKwkJICBpbmZvLT5wcm90ZWN0W2ldID0gYWRkcjJbQ09ORklHX1NZU19GTEFTSF9SRUFEMl0gJiAxOwogCX0KIAogCS8qCiAJICogUHJldmVudCB3cml0ZXMgdG8gdW5pbml0aWFsaXplZCBGTEFTSC4KIAkgKi8KIAlpZiAoaW5mby0+Zmxhc2hfaWQgIT0gRkxBU0hfVU5LTk9XTikgewotCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopaW5mby0+c3RhcnRbMF07Ci0JCSphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KKwkJYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKKwkJKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAl9CiAKIAlyZXR1cm4gKGluZm8tPnNpemUpOwpAQCAtNDQ4LDggKzQ0OCw4IEBACiAKIGludAlmbGFzaF9lcmFzZSAoZmxhc2hfaW5mb190ICppbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwogCWludCBpOwpAQCAtNDkwLDI1ICs0OTAsMjUgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdDw9c19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCSAgICBhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJICAgIGFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJICAgIGlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1MDAwNTA7ICAvKiBibG9jayBlcmFzZSAqLworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDUwMDA1MDsgIC8qIGJsb2NrIGVyYXNlICovCiAJCQlmb3IgKGk9MDsgaTw1MDsgaSsrKQogCQkJICB1ZGVsYXkoMTAwMCk7ICAvKiB3YWl0IDEgbXMgKi8KIAkJICAgIH0gZWxzZSB7CiAJCQlpZiAoc2VjdCA9PSBzX2ZpcnN0KSB7Ci0JCQkgICAgYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCSAgICBhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJICAgIGFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODA7Ci0JCQkgICAgYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCSAgICBhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJICAgIGFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCSAgICBhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCQkgICAgYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOworCQkJICAgIGFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCSAgICBhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CiAJCQl9Ci0JCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KIAkJICAgIH0KIAkJICAgIGxfc2VjdCA9IHNlY3Q7CiAJCX0KQEAgLTUyOSw5ICs1MjksOSBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWxhc3QgID0gc3RhcnQ7Ci0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwotCXdoaWxlICgoYWRkclswXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKKwl3aGlsZSAoKGFkZHJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNTQ0LDggKzU0NCw4IEBACiAKIERPTkU6CiAJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCi0JYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopaW5mby0+c3RhcnRbMF07CisJYWRkclswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYgKCIgZG9uZVxuIik7CiAJcmV0dXJuIDA7CkBAIC02MzAsOSArNjMwLDkgQEAKICAqLwogc3RhdGljIGludCB3cml0ZV93b3JkIChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSZkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopZGVzdDsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikmZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgZmxhZzsKIAlpbnQgaTsKQEAgLTY0NSwxMSArNjQ1LDExIEBACiAJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cygpOwogCi0JZm9yIChpPTA7IGk8NC9zaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykKKwlmb3IgKGk9MDsgaTw0L3NpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykKIAkgIHsKLQkgICAgYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JICAgIGFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCSAgICBhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEEwMDBBMDsKKwkgICAgYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkgICAgYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkgICAgYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEEwMDBBMDsKIAogCSAgICBkZXN0MltpXSA9IGRhdGEyW2ldOwogCkBAIC02NTksOSArNjU5LDkgQEAKIAogCSAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKLQkgICAgd2hpbGUgKChkZXN0MltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9Ci0JCSAgIChkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCSAgICB3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CisJCSAgIChkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSkgeworCSAgICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCXJldHVybiAoMSk7CiAJICAgICAgfQogCSAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY29tbW9uL2ZwZ2EuYyBiL2JvYXJkL2VzZC9jb21tb24vZnBnYS5jCmluZGV4IDllMmJlN2UuLjUyMzJkZGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jb21tb24vZnBnYS5jCisrKyBiL2JvYXJkL2VzZC9jb21tb24vZnBnYS5jCkBAIC0zNiwxMiArMzYsMTIgQEAKIAogI2RlZmluZSBNQVhfT05FUyAgICAgICAgICAgICAgIDIyNgogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJHCi0jIGRlZmluZSBGUEdBX1BSRyAgICAgICAgICAgICAgQ0ZHX0ZQR0FfUFJHCS8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jIGRlZmluZSBGUEdBX0NMSyAgICAgICAgICAgICAgQ0ZHX0ZQR0FfQ0xLCS8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSMgZGVmaW5lIEZQR0FfREFUQSAgICAgICAgICAgICBDRkdfRlBHQV9EQVRBCS8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAqLwotIyBkZWZpbmUgRlBHQV9ET05FICAgICAgICAgICAgIENGR19GUEdBX0RPTkUJLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICovCi0jIGRlZmluZSBGUEdBX0lOSVQgICAgICAgICAgICAgQ0ZHX0ZQR0FfSU5JVAkvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJHCisjIGRlZmluZSBGUEdBX1BSRyAgICAgICAgICAgICAgQ09ORklHX1NZU19GUEdBX1BSRwkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworIyBkZWZpbmUgRlBHQV9DTEsgICAgICAgICAgICAgIENPTkZJR19TWVNfRlBHQV9DTEsJLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAqLworIyBkZWZpbmUgRlBHQV9EQVRBICAgICAgICAgICAgIENPTkZJR19TWVNfRlBHQV9EQVRBCS8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAqLworIyBkZWZpbmUgRlBHQV9ET05FICAgICAgICAgICAgIENPTkZJR19TWVNfRlBHQV9ET05FCS8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAqLworIyBkZWZpbmUgRlBHQV9JTklUICAgICAgICAgICAgIENPTkZJR19TWVNfRlBHQV9JTklUCS8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAqLwogI2Vsc2UKICMgZGVmaW5lIEZQR0FfUFJHICAgICAgICAgICAgICAweDA0MDAwMDAwCS8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCiAjIGRlZmluZSBGUEdBX0NMSyAgICAgICAgICAgICAgMHgwMjAwMDAwMAkvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwpAQCAtOTgsNyArOTgsNyBAQAogCWludCBjb3VudDsKIAl1bnNpZ25lZCBjaGFyIGI7CiAKLSNpZmRlZiBDRkdfRlBHQV9TUEFSVEFOMgorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgogCWludCBqOwogI2Vsc2UKIAlpbnQgYml0OwpAQCAtMTEyLDcgKzExMiw3IEBACiAJCWluZGV4ICs9IGxlbiArIDM7CiAJfQogCi0jaWZkZWYgQ0ZHX0ZQR0FfU1BBUlRBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIKIAkvKiBzZWFyY2ggZm9yIHByZWFtYmxlIDB4RkZGRkZGRkYgKi8KIAl3aGlsZSAoMSkgewogCQlpZiAoKGZwZ2FkYXRhW2luZGV4XSA9PSAweGZmKSAmJiAoZnBnYWRhdGFbaW5kZXggKyAxXSA9PSAweGZmKQpAQCAtMTg2LDcgKzE4Niw3IEBACiAJREJHICgid3JpdGUgY29uZmlndXJhdGlvbiBkYXRhIGludG8gZnBnYVxuIik7CiAJLyogd3JpdGUgY29uZmlndXJhdGlvbi1kYXRhIGludG8gZnBnYS4uLiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfU1BBUlRBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIKIAkvKgogCSAqIExvYWQgdW5jb21wcmVzc2VkIGltYWdlIGludG8gZnBnYQogCSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NvbW1vbi9sY2QuYyBiL2JvYXJkL2VzZC9jb21tb24vbGNkLmMKaW5kZXggYzIzZGM4MS4uMWVlYTU5ZSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NvbW1vbi9sY2QuYworKysgYi9ib2FyZC9lc2QvY29tbW9uL2xjZC5jCkBAIC0zNyw3ICszNyw3IEBACiB1bnNpZ25lZCBjaGFyICpnbG9iX2xjZF9yZWc7CiB1bnNpZ25lZCBjaGFyICpnbG9iX2xjZF9tZW07CiAKLSNpZiBkZWZpbmVkKENGR19MQ0RfRU5ESUFOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQ0RfRU5ESUFOKQogdm9pZCBsY2Rfc2V0dXAoaW50IGxjZCwgaW50IGNvbmZpZykKIHsKIAlpZiAobGNkID09IDApIHsKQEAgLTQ3LDIxICs0NywyMSBAQAogCiAJCS8qIHNldCByZXNldCB0byBsb3cgKi8KIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DRkdfTENEMF9SU1QpOworCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0xDRDBfUlNUKTsKIAkJdWRlbGF5KDEwKTsgLyogd2FpdCAxMHVzICovCiAJCWlmIChjb25maWcgPT0gMSkgewogCQkJLyogYmlnLWVuZGlhbiAqLwogCQkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfTENEX0VORElBTik7CisJCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfTENEX0VORElBTik7CiAJCX0gZWxzZSB7CiAJCQkvKiBsaXR0bGUtZW5kaWFuICovCiAJCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsCi0JCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DRkdfTENEX0VORElBTik7CisJCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0xDRF9FTkRJQU4pOwogCQl9CiAJCXVkZWxheSgxMCk7IC8qIHdhaXQgMTB1cyAqLwogCQkvKiBzZXQgcmVzZXQgdG8gaGlnaCAqLwogCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsCi0JCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ0ZHX0xDRDBfUlNUKTsKKwkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0xDRDBfUlNUKTsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBTZXQgZW5kaWFuZXNzIGFuZCByZXNldCBsY2QgY29udHJvbGxlciAxIChiaWcpCkBAIC02OSwyOSArNjksMjkgQEAKIAogCQkvKiBzZXQgcmVzZXQgdG8gbG93ICovCiAJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q0ZHX0xDRDFfUlNUKTsKKwkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19MQ0QxX1JTVCk7CiAJCXVkZWxheSgxMCk7IC8qIHdhaXQgMTB1cyAqLwogCQlpZiAoY29uZmlnID09IDEpIHsKIAkJCS8qIGJpZy1lbmRpYW4gKi8KIAkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ0ZHX0xDRF9FTkRJQU4pOworCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0xDRF9FTkRJQU4pOwogCQl9IGVsc2UgewogCQkJLyogbGl0dGxlLWVuZGlhbiAqLwogCQkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q0ZHX0xDRF9FTkRJQU4pOworCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19MQ0RfRU5ESUFOKTsKIAkJfQogCQl1ZGVsYXkoMTApOyAvKiB3YWl0IDEwdXMgKi8KIAkJLyogc2V0IHJlc2V0IHRvIGhpZ2ggKi8KIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENGR19MQ0QxX1JTVCk7CisJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19MQ0QxX1JTVCk7CiAJfQogCiAJLyoKLQkgKiBDRkdfTENEX0VORElBTiBtYXkgYWxzbyBiZSBGUEdBX1JFU0VULCBzbyBzZXQgaW5hY3RpdmUKKwkgKiBDT05GSUdfU1lTX0xDRF9FTkRJQU4gbWF5IGFsc28gYmUgRlBHQV9SRVNFVCwgc28gc2V0IGluYWN0aXZlCiAJICovCi0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfTENEX0VORElBTik7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0xDRF9FTkRJQU4pOwogfQotI2VuZGlmIC8qIENGR19MQ0RfRU5ESUFOICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MQ0RfRU5ESUFOICovCiAKIAogaW50IGxjZF9ibXAodWNoYXIgKmxvZ29fYm1wKQpAQCAtMTE2LDIwICsxMTYsMjAgQEAKIAkJLyoKIAkJICogRGVjb21wcmVzcyBibXAgaW1hZ2UKIAkJICovCi0JCWxlbiA9IENGR19WSURFT19MT0dPX01BWF9TSVpFOwotCQlkc3QgPSBtYWxsb2MoQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkUpOworCQlsZW4gPSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkU7CisJCWRzdCA9IG1hbGxvYyhDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUpOwogCQlpZiAoZHN0ID09IE5VTEwpIHsKIAkJCXByaW50ZigiRXJyb3I6IG1hbGxvYyBmb3IgZ3VuemlwIGZhaWxlZCFcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KLQkJaWYgKGd1bnppcChkc3QsIENGR19WSURFT19MT0dPX01BWF9TSVpFLAorCQlpZiAoZ3VuemlwKGRzdCwgQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFLAogCQkJICAgKHVjaGFyICopbG9nb19ibXAsICZsZW4pICE9IDApIHsKIAkJCWZyZWUoZHN0KTsKIAkJCXJldHVybiAxOwogCQl9Ci0JCWlmIChsZW4gPT0gQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkUpIHsKKwkJaWYgKGxlbiA9PSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUpIHsKIAkJCXByaW50ZigiSW1hZ2UgY291bGQgYmUgdHJ1bmNhdGVkIgotCQkJICAgICAgICIgKGluY3JlYXNlIENGR19WSURFT19MT0dPX01BWF9TSVpFKSFcbiIpOworCQkJICAgICAgICIgKGluY3JlYXNlIENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSkhXG4iKTsKIAkJfQogCiAJCS8qCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY29tbW9uL3BjaS5jIGIvYm9hcmQvZXNkL2NvbW1vbi9wY2kuYwppbmRleCBmNzExMjA1Li5kY2I3NjRjIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY29tbW9uL3BjaS5jCisrKyBiL2JvYXJkL2VzZC9jb21tb24vcGNpLmMKQEAgLTExOSwyNCArMTE5LDI0IEBACiAgIC8qCiAgICAqIENvbmZpZ3VyZSBQTFggUENJOTA1NAogICAgKi8KLSAgcGNpX3JlYWRfY29uZmlnX3dvcmQoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQ09NTUFORCwgJnN0YXR1cyk7CisgIHBjaV9yZWFkX2NvbmZpZ193b3JkKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9DT01NQU5ELCAmc3RhdHVzKTsKICAgc3RhdHVzIHw9IFBDSV9DT01NQU5EX01BU1RFUiB8IFBDSV9DT01NQU5EX0lPIHwgUENJX0NPTU1BTkRfTUVNT1JZOwotICBwY2lfd3JpdGVfY29uZmlnX3dvcmQoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQ09NTUFORCwgc3RhdHVzKTsKKyAgcGNpX3dyaXRlX2NvbmZpZ193b3JkKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9DT01NQU5ELCBzdGF0dXMpOwogCiAgIC8qIENoZWNrIHRoZSBsYXRlbmN5IHRpbWVyIGZvciB2YWx1ZXMgPj0gMHg2MC4KICAgICovCi0gIHBjaV9yZWFkX2NvbmZpZ19ieXRlKENGR19QQ0k5MDU0X0RFVl9GTiwgUENJX0xBVEVOQ1lfVElNRVIsICZ0aW1lcik7CisgIHBjaV9yZWFkX2NvbmZpZ19ieXRlKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9MQVRFTkNZX1RJTUVSLCAmdGltZXIpOwogICBpZiAodGltZXIgPCAweDYwKQogICAgIHsKLSAgICAgIHBjaV93cml0ZV9jb25maWdfYnl0ZShDRkdfUENJOTA1NF9ERVZfRk4sIFBDSV9MQVRFTkNZX1RJTUVSLCAweDYwKTsKKyAgICAgIHBjaV93cml0ZV9jb25maWdfYnl0ZShDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCBQQ0lfTEFURU5DWV9USU1FUiwgMHg2MCk7CiAgICAgfQogCiAgIC8qIFNldCBJL08gYmFzZSByZWdpc3Rlci4KICAgICovCi0gIHBjaV93cml0ZV9jb25maWdfZHdvcmQoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBQQ0lfQkFTRV9BRERSRVNTXzAsIENGR19QQ0k5MDU0X0lPQkFTRSk7Ci0gIHBjaV9yZWFkX2NvbmZpZ19kd29yZChDRkdfUENJOTA1NF9ERVZfRk4sIFBDSV9CQVNFX0FERFJFU1NfMCwgJmlvYmFzZSk7CisgIHBjaV93cml0ZV9jb25maWdfZHdvcmQoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgUENJX0JBU0VfQUREUkVTU18wLCBDT05GSUdfU1lTX1BDSTkwNTRfSU9CQVNFKTsKKyAgcGNpX3JlYWRfY29uZmlnX2R3b3JkKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIFBDSV9CQVNFX0FERFJFU1NfMCwgJmlvYmFzZSk7CiAKLSAgcGNpOTA1NF9pb2Jhc2UgPSBwY2lfbWVtX3RvX3BoeXMoQ0ZHX1BDSTkwNTRfREVWX0ZOLCBpb2Jhc2UgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLKTsKKyAgcGNpOTA1NF9pb2Jhc2UgPSBwY2lfbWVtX3RvX3BoeXMoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgaW9iYXNlICYgUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSyk7CiAKICAgaWYgKHBjaTkwNTRfaW9iYXNlID09IDB4ZmZmZmZmZmYpCiAgICAgewpAQCAtMTQ5LDEzICsxNDksMTMgQEAKIHN0YXRpYyBzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSBwY2k5MDU0X2NvbmZpZ190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfUENJX1BOUAogICB7IFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsCi0gICAgUENJX0JVUyhDRkdfRVRIX0RFVl9GTiksIFBDSV9ERVYoQ0ZHX0VUSF9ERVZfRk4pLCBQQ0lfRlVOQyhDRkdfRVRIX0RFVl9GTiksCi0gICAgcGNpX2NmZ2Z1bmNfY29uZmlnX2RldmljZSwgeyBDRkdfRVRIX0lPQkFTRSwKLQkJCQkgQ0ZHX0VUSF9JT0JBU0UsCisgICAgUENJX0JVUyhDT05GSUdfU1lTX0VUSF9ERVZfRk4pLCBQQ0lfREVWKENPTkZJR19TWVNfRVRIX0RFVl9GTiksIFBDSV9GVU5DKENPTkZJR19TWVNfRVRIX0RFVl9GTiksCisgICAgcGNpX2NmZ2Z1bmNfY29uZmlnX2RldmljZSwgeyBDT05GSUdfU1lTX0VUSF9JT0JBU0UsCisJCQkJIENPTkZJR19TWVNfRVRIX0lPQkFTRSwKIAkJCQkgUENJX0NPTU1BTkRfSU8gfCBQQ0lfQ09NTUFORF9NQVNURVIgfX0sCiAjaWZkZWYgQ09ORklHX0RBU0FfU0lNCiAgIHsgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwKLSAgICBQQ0lfQlVTKENGR19QQ0k5MDU0X0RFVl9GTiksIFBDSV9ERVYoQ0ZHX1BDSTkwNTRfREVWX0ZOKSwgUENJX0ZVTkMoQ0ZHX1BDSTkwNTRfREVWX0ZOKSwKKyAgICBQQ0lfQlVTKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4pLCBQQ0lfREVWKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4pLCBQQ0lfRlVOQyhDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOKSwKICAgICBwY2lfZGFzYV9zaW1fY29uZmlnX3BjaTkwNTQgfSwKICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY29tbW9uL3hpbGlueF9qdGFnL3BvcnRzLmggYi9ib2FyZC9lc2QvY29tbW9uL3hpbGlueF9qdGFnL3BvcnRzLmgKaW5kZXggMGUzODk5MC4uYjcwMmZkZCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NvbW1vbi94aWxpbnhfanRhZy9wb3J0cy5oCisrKyBiL2JvYXJkL2VzZC9jb21tb24veGlsaW54X2p0YWcvcG9ydHMuaApAQCAtMzgsMTIgKzM4LDEyIEBACiAjZGVmaW5lIFRESSAoc2hvcnQpIDIKIAogLyoKLSAqIFVzZSBDRkdfRlBHQV94eHggZGVmaW5lcyBmcm9tIGJvYXJkIGluY2x1ZGUgZmlsZS4KKyAqIFVzZSBDT05GSUdfU1lTX0ZQR0FfeHh4IGRlZmluZXMgZnJvbSBib2FyZCBpbmNsdWRlIGZpbGUuCiAgKi8KLSNkZWZpbmUgSlRBR19UTVMgICBDRkdfRlBHQV9QUkcgICAgIC8qIG91dHB1dCAqLwotI2RlZmluZSBKVEFHX1RDSyAgIENGR19GUEdBX0NMSyAgICAgLyogb3V0cHV0ICovCi0jZGVmaW5lIEpUQUdfVERJICAgQ0ZHX0ZQR0FfREFUQSAgICAvKiBvdXRwdXQgKi8KLSNkZWZpbmUgSlRBR19URE8gICBDRkdfRlBHQV9ET05FICAgIC8qIGlucHV0ICovCisjZGVmaW5lIEpUQUdfVE1TICAgQ09ORklHX1NZU19GUEdBX1BSRyAgICAgLyogb3V0cHV0ICovCisjZGVmaW5lIEpUQUdfVENLICAgQ09ORklHX1NZU19GUEdBX0NMSyAgICAgLyogb3V0cHV0ICovCisjZGVmaW5lIEpUQUdfVERJICAgQ09ORklHX1NZU19GUEdBX0RBVEEgICAgLyogb3V0cHV0ICovCisjZGVmaW5lIEpUQUdfVERPICAgQ09ORklHX1NZU19GUEdBX0RPTkUgICAgLyogaW5wdXQgKi8KIAogLyogc2V0IHRoZSBwb3J0ICJwIiAoVENLLCBUTVMsIG9yIFRESSkgdG8gdmFsICgwIG9yIDEpICovCiB2b2lkIHNldFBvcnQoc2hvcnQgcCwgc2hvcnQgdmFsKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpMmRwL2NwY2kyZHAuYyBiL2JvYXJkL2VzZC9jcGNpMmRwL2NwY2kyZHAuYwppbmRleCA4YmM0MGQ1Li5kY2FiOTA2IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTJkcC9jcGNpMmRwLmMKKysrIGIvYm9hcmQvZXNkL2NwY2kyZHAvY3BjaTJkcC5jCkBAIC0zNiwxMiArMzYsMTIgQEAKIAkgKiBTZXR1cCBHUElPIHBpbnMKIAkgKi8KIAljbnRybDBSZWcgPSBtZmRjcihjbnRybDApOwotCW10ZGNyKGNudHJsMCwgY250cmwwUmVnIHwgKChDRkdfRUVQUk9NX1dQIHwgQ0ZHX1BCX0xFRCB8IENGR19TRUxGX1JTVCB8IENGR19JTlRBX0ZBS0UpIDw8IDUpKTsKKwltdGRjcihjbnRybDAsIGNudHJsMFJlZyB8ICgoQ09ORklHX1NZU19FRVBST01fV1AgfCBDT05GSUdfU1lTX1BCX0xFRCB8IENPTkZJR19TWVNfU0VMRl9SU1QgfCBDT05GSUdfU1lTX0lOVEFfRkFLRSkgPDwgNSkpOwogCiAJLyogc2V0IG91dHB1dCBwaW5zIHRvIGhpZ2ggKi8KLQlvdXQzMihHUElPMF9PUiwgIENGR19FRVBST01fV1ApOworCW91dDMyKEdQSU8wX09SLCAgQ09ORklHX1NZU19FRVBST01fV1ApOwogCS8qIHNldHVwIGZvciBvdXRwdXQgKExFRD1vZmYpICovCi0Jb3V0MzIoR1BJTzBfVENSLCBDRkdfRUVQUk9NX1dQIHwgQ0ZHX1BCX0xFRCk7CisJb3V0MzIoR1BJTzBfVENSLCBDT05GSUdfU1lTX0VFUFJPTV9XUCB8IENPTkZJR19TWVNfUEJfTEVEKTsKIAogCS8qCiAJICogSVJRIDAtMTUgIDQwNUdQIGludGVybmFsbHkgZ2VuZXJhdGVkOyBhY3RpdmUgaGlnaDsgbGV2ZWwgc2Vuc2l0aXZlCkBAIC0xMDgsNyArMTA4LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIC8qIElucHV0OiA8ZGV2X2FkZHI+ICBJMkMgYWRkcmVzcyBvZiBFRVBST00gZGV2aWNlIHRvIGVuYWJsZS4KICAqCSAgIDxzdGF0ZT4gICAgIC0xOiBkZWxpdmVyIGN1cnJlbnQgc3RhdGUKICAqCQkgICAgICAgMDogZGlzYWJsZSB3cml0ZQpAQCAtMTE4LDIzICsxMTgsMjMgQEAKICAqCQkgICAgIDAvMTogY3VycmVudCBzdGF0ZSBpZiA8c3RhdGU+IHdhcyAtMS4KICAqLwogaW50IGVlcHJvbV93cml0ZV9lbmFibGUgKHVuc2lnbmVkIGRldl9hZGRyLCBpbnQgc3RhdGUpIHsKLQlpZiAoQ0ZHX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgeworCWlmIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgewogCQlyZXR1cm4gLTE7CiAJfSBlbHNlIHsKIAkJc3dpdGNoIChzdGF0ZSkgewogCQljYXNlIDE6CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLCBjbGVhciBiaXQgR1BJT19TSU5UMi4gKi8KLQkJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfRUVQUk9NX1dQKTsKKwkJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAJCQlzdGF0ZSA9IDA7CiAJCQlicmVhazsKIAkJY2FzZSAwOgogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MsIHNldCBiaXQgR1BJT19TSU5UMi4gKi8KLQkJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19FRVBST01fV1ApOworCQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBSZWFkIGN1cnJlbnQgc3RhdHVzIGJhY2suICovCi0JCQlzdGF0ZSA9ICgwID09IChpbjMyKEdQSU8wX09SKSAmIENGR19FRVBST01fV1ApKTsKKwkJCXN0YXRlID0gKDAgPT0gKGluMzIoR1BJTzBfT1IpICYgQ09ORklHX1NZU19FRVBST01fV1ApKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtMTQyLDcgKzE0Miw3IEBACiB9CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIGludCBkb19lZXBfd3JlbiAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJaW50IHF1ZXJ5ID0gYXJnYyA9PSAxOwpAQCAtMTUwLDIxICsxNTAsMjEgQEAKIAogCWlmIChxdWVyeSkgewogCQkvKiBRdWVyeSB3cml0ZSBhY2Nlc3Mgc3RhdGUuICovCi0JCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgLTEpOworCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAtMSk7CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJRdWVyeSBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CiAJCX0gZWxzZSB7CiAJCQlwcmludGYgKCJXcml0ZSBhY2Nlc3MgZm9yIGRldmljZSAweCUweCBpcyAlc2FibGVkLlxuIiwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKIAkJCXN0YXRlID0gMDsKIAkJfQogCX0gZWxzZSB7CiAJCWlmICgnMCcgPT0gYXJndlsxXVswXSkgewogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIDApOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCk7CiAJCX0gZWxzZSB7CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAxKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDEpOwogCQl9CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJTZXR1cCBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CkBAIC0xNzksNCArMTc5LDQgQEAKIAkiZWVwd3JlbiAtIEVuYWJsZSAvIGRpc2FibGUgLyBxdWVyeSBFRVBST00gd3JpdGUgYWNjZXNzXG4iLAogCU5VTEwKIAkpOwotI2VuZGlmIC8qICNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikgKi8KKyNlbmRpZiAvKiAjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2kyZHAvZmxhc2guYyBiL2JvYXJkL2VzZC9jcGNpMmRwL2ZsYXNoLmMKaW5kZXggZGU4NDdmOS4uNTZjODIyZSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2kyZHAvZmxhc2guYworKysgYi9ib2FyZC9lc2QvY3BjaTJkcC9mbGFzaC5jCkBAIC00Nyw3ICs0Nyw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlX2IwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTQwNS9jcGNpNDA1LmMgYi9ib2FyZC9lc2QvY3BjaTQwNS9jcGNpNDA1LmMKaW5kZXggZmIzNDk1Ny4uYzVjY2IzNCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2k0MDUvY3BjaTQwNS5jCisrKyBiL2JvYXJkL2VzZC9jcGNpNDA1L2NwY2k0MDUuYwpAQCAtMTEwLDggKzExMCw4IEBACiAJICogRmlyc3QgcHVsbCBmcGdhLXByZyBwaW4gbG93LCB0byBkaXNhYmxlIGZwZ2EgbG9naWMgKG9uIHZlcnNpb24gMiBib2FyZCkKIAkgKi8KIAlvdXQzMihHUElPMF9PRFIsIDB4MDAwMDAwMDApOwkgICAgIC8qIG5vIG9wZW4gZHJhaW4gcGlucwkqLwotCW91dDMyKEdQSU8wX1RDUiwgQ0ZHX0ZQR0FfUFJHKTsgICAgICAvKiBzZXR1cCBmb3Igb3V0cHV0CSovCi0Jb3V0MzIoR1BJTzBfT1IsICBDRkdfRlBHQV9QUkcpOyAgICAgIC8qIHNldCBvdXRwdXQgcGlucyB0byBoaWdoICovCisJb3V0MzIoR1BJTzBfVENSLCBDT05GSUdfU1lTX0ZQR0FfUFJHKTsgICAgICAvKiBzZXR1cCBmb3Igb3V0cHV0CSovCisJb3V0MzIoR1BJTzBfT1IsICBDT05GSUdfU1lTX0ZQR0FfUFJHKTsgICAgICAvKiBzZXQgb3V0cHV0IHBpbnMgdG8gaGlnaCAqLwogCW91dDMyKEdQSU8wX09SLCAwKTsJCSAgICAgLyogcHVsbCBwcmcgbG93CQkqLwogCiAJLyoKQEAgLTI4Miw4ICsyODIsOCBAQAogCQljbnRybDBSZWcgPSBtZmRjcihjbnRybDApOwogCQltdGRjcihjbnRybDAsIGNudHJsMFJlZyB8IDB4MDAzMDAwMDApOwogCi0JCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JCWlmIChndW56aXAgKGRzdCwgQ0ZHX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CisJCWRzdCA9IG1hbGxvYyhDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUpOworCQlpZiAoZ3VuemlwIChkc3QsIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKIAkJCXByaW50ZiAoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCQlkb19yZXNldCAoTlVMTCwgMCwgMCwgTlVMTCk7CiAJCX0KQEAgLTM0NywxMyArMzQ3LDEzIEBACiAKICNpZmRlZiBDT05GSUdfQ1BDSTQwNV82VQogCQlpZiAoY3BjaTQwNV92ZXJzaW9uKCkgPT0gMykgewotCQkJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmZwZ2FfbW9kZSA9ICh1bnNpZ25lZCBzaG9ydCAqKUNGR19GUEdBX0JBU0VfQUREUjsKLQkJCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmxlZHMgPSAodW5zaWduZWQgY2hhciAqKUNGR19MRURfQUREUjsKKwkJCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpmcGdhX21vZGUgPSAodW5zaWduZWQgc2hvcnQgKilDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSOworCQkJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqbGVkcyA9ICh1bnNpZ25lZCBjaGFyICopQ09ORklHX1NZU19MRURfQUREUjsKIAogCQkJLyoKIAkJCSAqIEVuYWJsZSBvdXRwdXRzIGluIGZwZ2Egb24gdmVyc2lvbiAzIGJvYXJkCiAJCQkgKi8KLQkJCSpmcGdhX21vZGUgfD0gQ0ZHX0ZQR0FfTU9ERV9FTkFCTEVfT1VUUFVUOworCQkJKmZwZ2FfbW9kZSB8PSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9FTkFCTEVfT1VUUFVUOwogCiAJCQkvKgogCQkJICogU2V0IG91dHB1dHMgdG8gMApAQCAtMzYzLDkgKzM2Myw5IEBACiAJCQkvKgogCQkJICogUmVzZXQgZXh0ZXJuYWwgRFVBUlQKIAkJCSAqLwotCQkJKmZwZ2FfbW9kZSB8PSBDRkdfRlBHQV9NT0RFX0RVQVJUX1JFU0VUOworCQkJKmZwZ2FfbW9kZSB8PSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVDsKIAkJCXVkZWxheSgxMDApOwotCQkJKmZwZ2FfbW9kZSAmPSB+KENGR19GUEdBX01PREVfRFVBUlRfUkVTRVQpOworCQkJKmZwZ2FfbW9kZSAmPSB+KENPTkZJR19TWVNfRlBHQV9NT0RFX0RVQVJUX1JFU0VUKTsKIAkJfQogI2VuZGlmCiAJfQpAQCAtNDQ1LDkgKzQ0NSw5IEBACiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwogCWlmICh2ZXIgPj0gMikgewotCQl2b2xhdGlsZSB1MTYgKmZwZ2Ffc3RhdHVzID0gKHUxNiAqKUNGR19GUEdBX0JBU0VfQUREUiArIDE7CisJCXZvbGF0aWxlIHUxNiAqZnBnYV9zdGF0dXMgPSAodTE2ICopQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIDE7CiAKLQkJaWYgKCpmcGdhX3N0YXR1cyAmIENGR19GUEdBX1NUQVRVU19GTEFTSCkgeworCQlpZiAoKmZwZ2Ffc3RhdHVzICYgQ09ORklHX1NZU19GUEdBX1NUQVRVU19GTEFTSCkgewogCQkJcHV0cyAoIkZMQVNIIEJhbmsgQiwgIik7CiAJCX0gZWxzZSB7CiAJCQlwdXRzICgiRkxBU0ggQmFuayBBLCAiKTsKQEAgLTUwNCwxNSArNTA0LDE1IEBACiAKIHZvaWQgaWRlX3NldF9yZXNldChpbnQgb24pCiB7Ci0Jdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmZwZ2FfbW9kZSA9ICh1bnNpZ25lZCBzaG9ydCAqKUNGR19GUEdBX0JBU0VfQUREUjsKKwl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9tb2RlID0gKHVuc2lnbmVkIHNob3J0ICopQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUjsKIAogCS8qCiAJICogQXNzZXJ0IG9yIGRlYXNzZXJ0IENvbXBhY3RGbGFzaCBSZXNldCBQaW4KIAkgKi8KIAlpZiAob24pIHsJCS8qIGFzc2VydCBSRVNFVCAqLwotCQkqZnBnYV9tb2RlICY9IH4oQ0ZHX0ZQR0FfTU9ERV9DRl9SRVNFVCk7CisJCSpmcGdhX21vZGUgJj0gfihDT05GSUdfU1lTX0ZQR0FfTU9ERV9DRl9SRVNFVCk7CiAJfSBlbHNlIHsJCS8qIHJlbGVhc2UgUkVTRVQgKi8KLQkJKmZwZ2FfbW9kZSB8PSBDRkdfRlBHQV9NT0RFX0NGX1JFU0VUOworCQkqZnBnYV9tb2RlIHw9IENPTkZJR19TWVNfRlBHQV9NT0RFX0NGX1JFU0VUOwogCX0KIH0KIApAQCAtNTU1LDEyICs1NTUsMTIgQEAKIAogI2lmZGVmIENPTkZJR19DUENJNDA1QUIKIAotI2RlZmluZSBPTkVfV0lSRV9DTEVBUgkgKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfTU9ERSkgXAotCQkJICB8PSBDRkdfRlBHQV9NT0RFXzFXSVJFX0RJUikKLSNkZWZpbmUgT05FX1dJUkVfU0VUCSAoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKShDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9NT0RFKSBcCi0JCQkgICY9IH5DRkdfRlBHQV9NT0RFXzFXSVJFX0RJUikKLSNkZWZpbmUgT05FX1dJUkVfR0VUCSAoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKShDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9TVEFUVVMpIFwKLQkJCSAgJiBDRkdfRlBHQV9NT0RFXzFXSVJFKQorI2RlZmluZSBPTkVfV0lSRV9DTEVBUgkgKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9NT0RFKSBcCisJCQkgIHw9IENPTkZJR19TWVNfRlBHQV9NT0RFXzFXSVJFX0RJUikKKyNkZWZpbmUgT05FX1dJUkVfU0VUCSAoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX01PREUpIFwKKwkJCSAgJj0gfkNPTkZJR19TWVNfRlBHQV9NT0RFXzFXSVJFX0RJUikKKyNkZWZpbmUgT05FX1dJUkVfR0VUCSAoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX1NUQVRVUykgXAorCQkJICAmIENPTkZJR19TWVNfRlBHQV9NT0RFXzFXSVJFKQogCiAvKgogICogR2VuZXJhdGUgYSAxLXdpcmUgcmVzZXQsIHJldHVybiAxIGlmIG5vIHByZXNlbmNlIGRldGVjdCB3YXMgZm91bmQsCkBAIC02OTAsNyArNjkwLDcgQEAKIAlOVUxMCiAJKTsKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSXzIJMHg1MQkvKiBFRVBST00gQ0FUMjhXQzMyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl8yCTB4NTEJLyogRUVQUk9NIENBVDI4V0MzMgkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFXzIJMHg4MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogCiAvKgpAQCAtNzA2LDcgKzcwNiw3IEBACiAJSVBhZGRyX3QgaXBhZGRyOwogCiAJYnVmID0gbWFsbG9jKENPTkZJR19FTlZfU0laRV8yKTsKLQlpZiAoZWVwcm9tX3JlYWQoQ0ZHX0kyQ19FRVBST01fQUREUl8yLCAwLCAodWNoYXIgKilidWYsIENPTkZJR19FTlZfU0laRV8yKSkgeworCWlmIChlZXByb21fcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl8yLCAwLCAodWNoYXIgKilidWYsIENPTkZJR19FTlZfU0laRV8yKSkgewogCQlwdXRzKCJcbkVycm9yIHJlYWRpbmcgYmFja3BsYW5lIEVFUFJPTSFcbiIpOwogCX0gZWxzZSB7CiAJCWNyYyA9IGNyYzMyKDAsICh1Y2hhciAqKShidWYrNCksIENPTkZJR19FTlZfU0laRV8yLTQpOwpAQCAtNzcxLDcgKzc3MSw3IEBACiAJY3JjID0gY3JjMzIoMCwgKHVjaGFyICopKGJ1Zis0KSwgQ09ORklHX0VOVl9TSVpFXzItNCk7CiAJKih1bG9uZyAqKWJ1ZiA9IGNyYzsKIAotCWlmIChlZXByb21fd3JpdGUoQ0ZHX0kyQ19FRVBST01fQUREUl8yLCAwLCAodWNoYXIgKilidWYsIENPTkZJR19FTlZfU0laRV8yKSkgeworCWlmIChlZXByb21fd3JpdGUoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfMiwgMCwgKHVjaGFyICopYnVmLCBDT05GSUdfRU5WX1NJWkVfMikpIHsKIAkJcHV0cygiXG5FcnJvciB3cml0aW5nIGJhY2twbGFuZSBFRVBST00hXG4iKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpNDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2QvY3BjaTQwNS9mbGFzaC5jCmluZGV4IGU3NjY4OTUuLmQ1MzU5MjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpNDA1L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2NwY2k0MDUvZmxhc2guYwpAQCAtNjYsNyArNjYsNyBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZV9iMCwgYmFzZV9iMTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTUyMDAvY3BjaTUyMDAuYyBiL2JvYXJkL2VzZC9jcGNpNTIwMC9jcGNpNTIwMC5jCmluZGV4IDJhNDJlNjUuLjZlZWRiODMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpNTIwMC9jcGNpNTIwMC5jCisrKyBiL2JvYXJkL2VzZC9jcGNpNTIwMC9jcGNpNTIwMC5jCkBAIC04MSw3ICs4MSw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC0xMDYsOSArMTA2LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKSBDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKSBDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTQ0LDkgKzE0NCw5IEBACiAjaWYgMAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MxIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQlnZXRfcmFtX3NpemUoKHVsb25nICopIChDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQlnZXRfcmFtX3NpemUoKHVsb25nICopIChDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgwKTsKICNlbmRpZgogCS8qIHNldCBTRFJBTSBDUzEgc2l6ZSBhY2NvcmRpbmcgdG8gdGhlIGFtb3VudCBvZiBSQU0gZm91bmQgKi8KQEAgLTE4MCwxMCArMTgwLDEwIEBACiAJCS8qIGFkanVzdCBtYXBwaW5nICovCiAJCSoodnVfbG9uZyAqKSBNUEM1WFhYX0JPT1RDU19TVEFSVCA9CiAJCSAgICAqKHZ1X2xvbmcgKikgTVBDNVhYWF9DUzBfU1RBUlQgPQotCQkgICAgU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplKTsKKwkJICAgIFNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUpOwogCQkqKHZ1X2xvbmcgKikgTVBDNVhYWF9CT09UQ1NfU1RPUCA9CiAJCSAgICAqKHZ1X2xvbmcgKikgTVBDNVhYWF9DUzBfU1RPUCA9Ci0JCSAgICBTVE9QX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSwgc2l6ZSk7CisJCSAgICBTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUsIHNpemUpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2k1MjAwL3N0cmF0YWZsYXNoLmMgYi9ib2FyZC9lc2QvY3BjaTUyMDAvc3RyYXRhZmxhc2guYwppbmRleCBkNzZhZjAyLi45YjU3OGI1IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTUyMDAvc3RyYXRhZmxhc2guYworKysgYi9ib2FyZC9lc2QvY3BjaTUyMDAvc3RyYXRhZmxhc2guYwpAQCAtMTAyLDcgKzEwMiw3IEBACiAKICNkZWZpbmUgTlVNX0VSQVNFX1JFR0lPTlMgNAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTEyMSw3ICsxMjEsNyBAQAogCQkJICAgICAgIGNmaXdvcmRfdCBjd29yZCk7CiBzdGF0aWMgaW50IGZsYXNoX2Z1bGxfc3RhdHVzX2NoZWNrKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIHNlY3RvciwKIAkJCQkgICB1bG9uZyB0b3V0LCBjaGFyICpwcm9tcHQpOwotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiBzdGF0aWMgaW50IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1Y2hhciAqIGNwLAogCQkJCSBpbnQgbGVuKTsKICNlbmRpZgpAQCAtMTg1LDE0ICsxODUsMTQgQEAKIAkgKgogCSAqLwogCi0JYWRkcmVzcyA9IENGR19GTEFTSF9CQVNFOworCWFkZHJlc3MgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJc2l6ZSA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQlzaXplICs9IGZsYXNoX2luZm9baV0uc2l6ZSA9IGZsYXNoX2dldF9zaXplKGFkZHJlc3MsIGkpOwotCQlhZGRyZXNzICs9IENGR19GTEFTSF9JTkNSRU1FTlQ7CisJCWFkZHJlc3MgKz0gQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQ7CiAJCWlmIChmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJCXByaW50ZgogCQkJICAgICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rICVkIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCkBAIC0yMDIsOSArMjAyLDkgQEAKIAogI2lmIDAJCQkJLyogdGVzdC1vbmx5ICovCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRSkKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFKQogCWZvciAoaSA9IDA7Ci0JICAgICBmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldIDwgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMTsKKwkgICAgIGZsYXNoX2luZm9bMF0uc3RhcnRbaV0gPCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMTsKIAkgICAgIGkrKykKIAkJKHZvaWQpZmxhc2hfcmVhbF9wcm90ZWN0KCZmbGFzaF9pbmZvWzBdLCBpLCAxKTsKICNlbmRpZgpAQCAtMzI2LDcgKzMyNiw3IEBACiAJCQlyZXR1cm4gcmM7CiAJCXdwID0gY3A7CiAJfQotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAJd2hpbGUgKGNudCA+PSBpbmZvLT5wb3J0d2lkdGgpIHsKIAkJaSA9IGluZm8tPmJ1ZmZlcl9zaXplID4gY250ID8gY250IDogaW5mby0+YnVmZmVyX3NpemU7CiAJCWlmICgocmMgPSBmbGFzaF93cml0ZV9jZmlidWZmZXIoaW5mbywgd3AsIHNyYywgaSkpICE9IEVSUl9PSykKQEAgLTM0Nyw3ICszNDcsNyBAQAogCQl3cCArPSBpbmZvLT5wb3J0d2lkdGg7CiAJCWNudCAtPSBpbmZvLT5wb3J0d2lkdGg7CiAJfQotI2VuZGlmCQkJCS8qIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCiAJaWYgKGNudCA9PSAwKSB7CiAJCXJldHVybiAoMCk7CiAJfQpAQCAtNzI3LDcgKzcyNyw3IEBACiAJcmV0dXJuIGZsYXNoX2Z1bGxfc3RhdHVzX2NoZWNrKGluZm8sIDAsIGluZm8tPndyaXRlX3RvdXQsICJ3cml0ZSIpOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAogLyogbG9vcCB0aHJvdWdoIHRoZSBzZWN0b3JzIGZyb20gdGhlIGhpZ2hlc3QgYWRkcmVzcwogICogd2hlbiB0aGUgcGFzc2VkIGFkZHJlc3MgaXMgZ3JlYXRlciBvciBlcXVhbCB0byB0aGUgc2VjdG9yIGFkZHJlc3MKQEAgLTgwMSw0ICs4MDEsNCBAQAogCWZsYXNoX3dyaXRlX2NtZChpbmZvLCBzZWN0b3IsIDAsIEZMQVNIX0NNRF9DTEVBUl9TVEFUVVMpOwogCXJldHVybiByZXRjb2RlOwogfQotI2VuZGlmCQkJCS8qIENGR19VU0VfRkxBU0hfQlVGRkVSX1dSSVRFICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19VU0VfRkxBU0hfQlVGRkVSX1dSSVRFICovCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTc1MC9jcGNpNzUwLmMgYi9ib2FyZC9lc2QvY3BjaTc1MC9jcGNpNzUwLmMKaW5kZXggNWFiNzZjNi4uNzBiYWU2MCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2k3NTAvY3BjaTc1MC5jCisrKyBiL2JvYXJkL2VzZC9jcGNpNzUwL2NwY2k3NTAuYwpAQCAtMTI1LDcgKzEyNSw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIHRoaXMgaXMgdGhlIGN1cnJlbnQgR1QgcmVnaXN0ZXIgc3BhY2UgbG9jYXRpb24gKi8KLS8qIGl0IHN0YXJ0cyBhdCBDRkdfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENGR19HVF9SRUdTICovCisvKiBpdCBzdGFydHMgYXQgQ09ORklHX1NZU19ERkxfR1RfUkVHUyBidXQgbW92ZXMgbGF0ZXIgdG8gQ09ORklHX1NZU19HVF9SRUdTICovCiAKIC8qIFVuZm9ydHVuYXRlbHksIHdlIGNhbnQgY2hhbmdlIGl0IHdoaWxlIHdlIGFyZSBpbiBmbGFzaCwgc28gd2UgaW5pdGlhbGl6ZSBpdAogICogdG8gdGhlICJmaW5hbCIgdmFsdWUuIFRoaXMgbWVhbnMgdGhhdCBhbnkgZGVidWdfbGVkIGNhbGxzIGJlZm9yZQpAQCAtMTM0LDcgKzEzNCw3IEBACiAgKi8KIAogdm9pZCBib2FyZF9wcmVib290bV9pbml0ICh2b2lkKTsKLXVuc2lnbmVkIGludCBJTlRFUk5BTF9SRUdfQkFTRV9BRERSID0gQ0ZHX0dUX1JFR1M7Cit1bnNpZ25lZCBpbnQgSU5URVJOQUxfUkVHX0JBU0VfQUREUiA9IENPTkZJR19TWVNfR1RfUkVHUzsKIGludCBkaXNwbGF5X21lbV9tYXAgKHZvaWQpOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC0xOTcsNyArMTk3LDcgQEAKIAogCQlHVF9SRUdfV1JJVEUgKFBDSV8wX0NPTkZJR19BRERSLCBCSVQzMSB8IHZhbCk7CiAJCUdUX1JFR19XUklURSAoUENJXzBfQ09ORklHX0RBVEFfVklSVFVBTF9SRUcsCi0JCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ0ZHX1BDSV9JRFNFTCk7CisJCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ09ORklHX1NZU19QQ0lfSURTRUwpOwogCiAJfQogCWlmICgoR1RSRUdSRUFEIChQQ0lfMV9NT0RFKSAmIChCSVQ0IHwgQklUNSkpICE9IDApIHsJLyppZiAgUENJLVggKi8KQEAgLTIwNiw3ICsyMDYsNyBAQAogCiAJCUdUX1JFR19XUklURSAoUENJXzFfQ09ORklHX0FERFIsIEJJVDMxIHwgdmFsKTsKIAkJR1RfUkVHX1dSSVRFIChQQ0lfMV9DT05GSUdfREFUQV9WSVJUVUFMX1JFRywKLQkJCSAgICAgIChzdGF0ICYgMHhmZmZmMDAwMCkgfCBDRkdfUENJX0lEU0VMKTsKKwkJCSAgICAgIChzdGF0ICYgMHhmZmZmMDAwMCkgfCBDT05GSUdfU1lTX1BDSV9JRFNFTCk7CiAJfQogCiAJLyogRW5hYmxlIG1hc3RlciAqLwpAQCAtMjI0LDIxICsyMjQsMjEgQEAKIAkvKiByb25lbi0gYWRkIHdyaXRlIHRvIHBjaSByZW1hcCByZWdpc3RlcnMgZm9yIDY0NDYwLgogCSAgIGluIDY0MzYwIHdoZW4gd3JpdGluZyB0byBwY2kgYmFzZSBnbyBhbmQgb3ZlcmlkZSByZW1hcCBhdXRvbWF0aWNhbHksCiAJICAgaW4gNjQ0NjAgaXQgZG9lc24ndCAqLwotCUdUX1JFR19XUklURSAoUENJXzBfSU9fQkFTRV9BRERSLCBDRkdfUENJMF9JT19TUEFDRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMElfT19BRERSRVNTX1JFTUFQLCBDRkdfUENJMF9JT19TUEFDRV9QQ0kgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBfSU9fU0laRSwgKENGR19QQ0kwX0lPX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMF9JT19TUEFDRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMElfT19BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX1NJWkUsIChDT05GSUdfU1lTX1BDSTBfSU9fU0laRSAtIDEpID4+IDE2KTsKIAotCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9CQVNFX0FERFIsIENGR19QQ0kwX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDRkdfUENJMF9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX1NJWkUsIChDRkdfUENJMF9NRU1fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX1NJWkUsIChDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUgLSAxKSA+PiAxNik7CiAKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX0JBU0VfQUREUiwgQ0ZHX1BDSTFfSU9fU1BBQ0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFJX09fQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX1NJWkUsIChDRkdfUENJMV9JT19TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfSU9fQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFJX09fQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19TSVpFLCAoQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUgLSAxKSA+PiAxNik7CiAKLQlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfQkFTRV9BRERSLCBDRkdfUENJMV9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMU1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ0ZHX1BDSTFfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9TSVpFLCAoQ0ZHX1BDSTFfTUVNX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9TSVpFLCAoQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFIC0gMSkgPj4gMTYpOwogCiAJLyogUENJIGludGVyZmFjZSBzZXR0aW5ncyAqLwogCS8qIFRpbWVvdXQgc2V0IHRvIHJldHJ5IGZvcmV2ZXIgKi8KQEAgLTI1NCw3ICsyNTQsNyBAQAogCWZvciAoc3RhdCA9IDA7IHN0YXQgPD0gUENJX0hPU1QxOyBzdGF0KyspCiAJCXBjaVdyaXRlQ29uZmlnUmVnIChzdGF0LAogCQkJCSAgIFBDSV9JTlRFUk5BTF9SRUdJU1RFUlNfTUVNT1JZX01BUFBFRF9CQVNFX0FERFJFU1MsCi0JCQkJICAgU0VMRiwgQ0ZHX0dUX1JFR1MpOworCQkJCSAgIFNFTEYsIENPTkZJR19TWVNfR1RfUkVHUyk7CiAjZW5kaWYKIAogfQpAQCAtMjcwLDcgKzI3MCw3IEBACiAJdG1wID0gR1RSRUdSRUFEIChDUFVfQ09ORklHVVJBVElPTik7CiAKIAkvKiBzZXQgdGhlIFNJTkdMRV9DUFUgYml0ICBzZWUgTVY2NDM2MCBQLjM5OSAqLwotI2lmbmRlZiBDRkdfR1RfRFVBTF9DUFUJCS8qIFNJTkdMRV9DUFUgc2VlbXMgdG8gY2F1c2UgSlRBRyBwcm9ibGVtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX0dUX0RVQUxfQ1BVCQkvKiBTSU5HTEVfQ1BVIHNlZW1zIHRvIGNhdXNlIEpUQUcgcHJvYmxlbXMgKi8KIAl0bXAgfD0gQ1BVX0NPTkZfU0lOR0xFX0NQVTsKICNlbmRpZgogCkBAIC0zMjAsNyArMzIwLDcgQEAKIAkgKiBpdCBsYXN0IHRpbWUuIChodWJlcikKIAkgKi8KIAotCW15X3JlbWFwX2d0X3JlZ3MgKENGR19ERkxfR1RfUkVHUywgQ0ZHX0dUX1JFR1MpOworCW15X3JlbWFwX2d0X3JlZ3MgKENPTkZJR19TWVNfREZMX0dUX1JFR1MsIENPTkZJR19TWVNfR1RfUkVHUyk7CiAKIAkvKiBObyBQQ0kgaW4gZmlyc3QgcmVsZWFzZSBvZiBQb3J0IFRvX2RvOiBlbmFibGUgaXQuICovCiAjaWZkZWYgQ09ORklHX1BDSQpAQCAtMzY0LDQ1ICszNjQsNDUgQEAKIAkgKiByZWdpc3RlcnMgdG8gYm9vdCBmcm9tIHRoZSBzcmFtLiAoZGV2aWNlMCkKIAkgKi8KIAotCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UwLCBDRkdfREVWMF9TUEFDRSwgQ0ZHX0RFVjBfU0laRSk7Ci0JbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTEsIENGR19ERVYxX1NQQUNFLCBDRkdfREVWMV9TSVpFKTsKLQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMiwgQ0ZHX0RFVjJfU1BBQ0UsIENGR19ERVYyX1NJWkUpOwotCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UzLCBDRkdfREVWM19TUEFDRSwgQ0ZHX0RFVjNfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTAsIENPTkZJR19TWVNfREVWMF9TUEFDRSwgQ09ORklHX1NZU19ERVYwX1NJWkUpOworCW1lbW9yeU1hcERldmljZVNwYWNlIChERVZJQ0UxLCBDT05GSUdfU1lTX0RFVjFfU1BBQ0UsIENPTkZJR19TWVNfREVWMV9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZSAoREVWSUNFMiwgQ09ORklHX1NZU19ERVYyX1NQQUNFLCBDT05GSUdfU1lTX0RFVjJfU0laRSk7CisJbWVtb3J5TWFwRGV2aWNlU3BhY2UgKERFVklDRTMsIENPTkZJR19TWVNfREVWM19TUEFDRSwgQ09ORklHX1NZU19ERVYzX1NJWkUpOwogCiAKIAkvKiBjb25maWd1cmUgZGV2aWNlIHRpbWluZyAqLwotCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkswUEFSQU1FVEVSUywgQ0ZHX0RFVjBfUEFSKTsKLQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMVBBUkFNRVRFUlMsIENGR19ERVYxX1BBUik7Ci0JR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzJQQVJBTUVURVJTLCBDRkdfREVWMl9QQVIpOwotCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ0ZHX0RFVjNfUEFSKTsKKwlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LMFBBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWMF9QQVIpOworCUdUX1JFR19XUklURSAoREVWSUNFX0JBTksxUEFSQU1FVEVSUywgQ09ORklHX1NZU19ERVYxX1BBUik7CisJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzJQQVJBTUVURVJTLCBDT05GSUdfU1lTX0RFVjJfUEFSKTsKKwlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWM19QQVIpOwogCi0jaWZkZWYgQ0ZHXzMyQklUX0JPT1RfUEFSCS8qIHNldCBwb3J0IHBhcmFtZXRlcnMgZm9yIEZsYXNoIGRldmljZSBtb2R1bGUgYWNjZXNzICovCisjaWZkZWYgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUgkvKiBzZXQgcG9ydCBwYXJhbWV0ZXJzIGZvciBGbGFzaCBkZXZpY2UgbW9kdWxlIGFjY2VzcyAqLwogCS8qIGRldGVjdCBpZiB3ZSBhcmUgYm9vdGluZyBmcm9tIHRoZSAzMiBiaXQgZmxhc2ggKi8KIAlpZiAoR1RSRUdSRUFEIChERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMpICYgKDB4MyA8PCAyMCkpIHsKIAkJLyogMzIgYml0IGJvb3QgZmxhc2ggKi8KLQkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQkFOSzNQQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ09ORklHX1NZU184QklUX0JPT1RfUEFSKTsKIAkJR1RfUkVHX1dSSVRFIChERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsCi0JCQkgICAgICBDRkdfMzJCSVRfQk9PVF9QQVIpOworCQkJICAgICAgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUik7CiAJfSBlbHNlIHsKIAkJLyogOCBiaXQgYm9vdCBmbGFzaCAqLwotCQlHVF9SRUdfV1JJVEUgKERFVklDRV9CQU5LM1BBUkFNRVRFUlMsIENGR18zMkJJVF9CT09UX1BBUik7Ci0JCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURSAoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIpOwogCX0KICNlbHNlCiAJLyogOCBiaXQgYm9vdCBmbGFzaCBvbmx5ICovCi0vKglHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7Ki8KKy8qCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7Ki8KICNlbmRpZgogCiAKIAlndF9jcHVfY29uZmlnICgpOwogCiAJLyogTVBQIHNldHVwICovCi0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDAsIENGR19NUFBfQ09OVFJPTF8wKTsKLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMSwgQ0ZHX01QUF9DT05UUk9MXzEpOwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wyLCBDRkdfTVBQX0NPTlRST0xfMik7Ci0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDMsIENGR19NUFBfQ09OVFJPTF8zKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMCwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMSwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8xKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMiwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yKTsKKwlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMywgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zKTsKIAotCUdUX1JFR19XUklURSAoR1BQX0xFVkVMX0NPTlRST0wsIENGR19HUFBfTEVWRUxfQ09OVFJPTCk7CisJR1RfUkVHX1dSSVRFIChHUFBfTEVWRUxfQ09OVFJPTCwgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTCk7CiAJREVCVUdfTEVEMF9PTiAoKTsKIAlERUJVR19MRUQxX09OICgpOwogCURFQlVHX0xFRDJfT04gKCk7CkBAIC00MTUsNyArNDE1LDcgQEAKIGludCBtaXNjX2luaXRfciAoKQogewogCWljYWNoZV9lbmFibGUgKCk7Ci0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCWwyY2FjaGVfZW5hYmxlICgpOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX01QU0MKQEAgLTQyOCwxOSArNDI4LDE5IEBACiAJLyogZGlzYWJsZSB0aGUgZGNhY2hlIGFuZCBNTVUgKi8KIAlkY2FjaGVfbG9jayAoKTsKICNlbmRpZgotCWlmIChmbGFzaF9pbmZvWzNdLnNpemUgPCBDRkdfRkxBU0hfSU5DUkVNRU5UKSB7CisJaWYgKGZsYXNoX2luZm9bM10uc2l6ZSA8IENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UKSB7CiAJCXVuc2lnbmVkIGludCBmbGFzaF9vZmZzZXQ7CiAJCXVuc2lnbmVkIGludCBsOwogCi0JCWZsYXNoX29mZnNldCA9ICBDRkdfRkxBU0hfSU5DUkVNRU5UIC0gZmxhc2hfaW5mb1szXS5zaXplOwotCQlmb3IgKGwgPSAwOyBsIDwgQ0ZHX01BWF9GTEFTSF9TRUNUOyBsKyspIHsKKwkJZmxhc2hfb2Zmc2V0ID0gIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UIC0gZmxhc2hfaW5mb1szXS5zaXplOworCQlmb3IgKGwgPSAwOyBsIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsgbCsrKSB7CiAJCQlpZiAoZmxhc2hfaW5mb1szXS5zdGFydFtsXSAhPSAwKSB7CiAJCQkgICAgICBmbGFzaF9pbmZvWzNdLnN0YXJ0W2xdICs9IGZsYXNoX29mZnNldDsKIAkJCX0KIAkJfQogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuICAtIDEsCisJCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAgLSAxLAogCQkJICAgICAgICZmbGFzaF9pbmZvWzNdKTsKIAl9CiAJcmV0dXJuIDA7CkBAIC00NDksNyArNDQ5LDcgQEAKIHZvaWQgYWZ0ZXJfcmVsb2MgKHVsb25nIGRlc3RfYWRkciwgZ2RfdCAqIGdkKQogewogCi0gIG1lbW9yeU1hcERldmljZVNwYWNlIChCT09UX0RFVklDRSwgQ0ZHX0JPT1RfU1BBQ0UsIENGR19CT09UX1NJWkUpOworICBtZW1vcnlNYXBEZXZpY2VTcGFjZSAoQk9PVF9ERVZJQ0UsIENPTkZJR19TWVNfQk9PVF9TUEFDRSwgQ09ORklHX1NZU19CT09UX1NJWkUpOwogCiAgIGRpc3BsYXlfbWVtX21hcCAoKTsKICAgLyogbm93LCBqdW1wIHRvIHRoZSBtYWluIHBwY2Jvb3QgYm9hcmQgaW5pdCBjb2RlICovCkBAIC00NjksNyArNDY5LDcgQEAKIHsKIAlpbnQgbF90eXBlID0gMDsKIAotCXByaW50ZiAoIkJPQVJEOiAlc1xuIiwgQ0ZHX0JPQVJEX05BTUUpOworCXByaW50ZiAoIkJPQVJEOiAlc1xuIiwgQ09ORklHX1NZU19CT0FSRF9OQU1FKTsKIAlyZXR1cm4gKGxfdHlwZSk7CiB9CiAKQEAgLTU0MCw3ICs1NDAsNyBAQAogCiAvKiBEUkFNIGNoZWNrIHJvdXRpbmVzIGNvcGllZCBmcm9tIGd3ODI2MCAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICBtb3ZlNjQoKSAtICBtb3ZlcyBhIGRvdWJsZSB3b3JkICg2NC1iaXQpCQkgICAgICovCkBAIC01NzEsNyArNTcxLDcgQEAKIH0KIAogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9EQVRBKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEpCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBwYXR0ZXJuW10gPSB7CiAJMHhhYWFhYWFhYWFhYWFhYWFhTEwsCkBAIC02MzQsNyArNjM0LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgbWVtX3Rlc3RfZGF0YSAodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENGR19NRU1URVNUX1NUQVJUOworCXVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9ICh1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOwogCXVuc2lnbmVkIGxvbmcgbG9uZyB0ZW1wNjQgPSAwOwogCWludCBudW1fcGF0dGVybnMgPSBzaXplb2YgKHBhdHRlcm4pIC8gc2l6ZW9mIChwYXR0ZXJuWzBdKTsKIAlpbnQgaTsKQEAgLTY2MSw5ICs2NjEsOSBAQAogCiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9EQVRBICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9BRERSRVNTKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1lbV90ZXN0X2FkZHJlc3MoKSAtCXRlc3QgYWRkcmVzcyBsaW5lcwkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTY4OCw4ICs2ODgsOCBAQAogaW50IG1lbV90ZXN0X2FkZHJlc3MgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICpwbWVtID0KLQkJKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDRkdfTUVNVEVTVF9FTkQgLSBDRkdfTUVNVEVTVF9TVEFSVCkgLyA0OworCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDT05GSUdfU1lTX01FTVRFU1RfRU5EIC0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUKSAvIDQ7CiAJdW5zaWduZWQgaW50IGk7CiAKIAkvKiB3cml0ZSBhZGRyZXNzIHRvIGVhY2ggbG9jYXRpb24gKi8KQEAgLTcwNiw5ICs3MDYsOSBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX0FERFJFU1MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTICovCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUX1dBTEspCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSykKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV9tYXJjaCgpIC0gIG1lbW9yeSBtYXJjaAkJCQkgICAgICovCiAvKgkJCQkJCQkJICAgICAqLwpAQCAtNzY2LDcgKzc2Niw3IEBACiAJfQogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfV0FMSyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICAgbWVtX3Rlc3Rfd2FsaygpIC0gIGEgc2ltcGxlIHdhbGtpbmcgb25lcyB0ZXN0CSAgICAgKi8KQEAgLTc5OCw4ICs3OTgsOCBAQAogewogCXVuc2lnbmVkIGxvbmcgbG9uZyBtYXNrOwogCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JY29uc3QgdW5zaWduZWQgbG9uZyBzaXplID0gKENGR19NRU1URVNUX0VORCAtIENGR19NRU1URVNUX1NUQVJUKSAvIDg7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDT05GSUdfU1lTX01FTVRFU1RfRU5EIC0gQ09ORklHX1NZU19NRU1URVNUX1NUQVJUKSAvIDg7CiAKIAl1bnNpZ25lZCBpbnQgaTsKIApAQCAtODY1LDIzICs4NjUsMjMgQEAKIAlpbnQgcnVuYWRkcmVzcyA9IDA7CiAJaW50IHJ1bndhbGsgICAgPSAwOwogCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9EQVRBCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQogCXMgPSBnZXRlbnYgKCJ0ZXN0ZHJhbWRhdGEiKTsKIAlydW5kYXRhID0gKHMgJiYgKCpzID09ICd5JykpID8gMSA6IDA7CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCiAJcyA9IGdldGVudiAoInRlc3RkcmFtYWRkcmVzcyIpOwogCXJ1bmFkZHJlc3MgPSAocyAmJiAoKnMgPT0gJ3knKSkgPyAxIDogMDsKICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfV0FMSworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKIAlzID0gZ2V0ZW52ICgidGVzdGRyYW13YWxrIik7CiAJcnVud2FsayA9IChzICYmICgqcyA9PSAneScpKSA/IDEgOiAwOwogI2VuZGlmCiAKIAlpZiAoKHJ1bmRhdGEgPT0gMSkgfHwgKHJ1bmFkZHJlc3MgPT0gMSkgfHwgKHJ1bndhbGsgPT0gMSkpIHsKLQkJcHJpbnRmICgiVGVzdGluZyBSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4IC4uLiAgKGRvbid0IHBhbmljLi4uIHRoYXQgd2lsbCB0YWtlIGEgbW9tZW50ICEhISEpXG4iLCBDRkdfTUVNVEVTVF9TVEFSVCwgQ0ZHX01FTVRFU1RfRU5EKTsKKwkJcHJpbnRmICgiVGVzdGluZyBSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4IC4uLiAgKGRvbid0IHBhbmljLi4uIHRoYXQgd2lsbCB0YWtlIGEgbW9tZW50ICEhISEpXG4iLCBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQsIENPTkZJR19TWVNfTUVNVEVTVF9FTkQpOwogCX0KLSNpZmRlZiBDRkdfRFJBTV9URVNUX0RBVEEKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBCiAJaWYgKHJ1bmRhdGEgPT0gMSkgewogCQlwcmludGYgKCJUZXN0IERBVEEgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X2RhdGEgKCkgPT0gMSkgewpAQCAtODkxLDcgKzg5MSw3IEBACiAJCQlwcmludGYgKCJvayBcbiIpOwogCX0KICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfQUREUkVTUworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MKIAlpZiAocnVuYWRkcmVzcyA9PSAxKSB7CiAJCXByaW50ZiAoIlRlc3QgQUREUkVTUyAuLi4gICIpOwogCQlpZiAobWVtX3Rlc3RfYWRkcmVzcyAoKSA9PSAxKSB7CkBAIC05MDEsNyArOTAxLDcgQEAKIAkJCXByaW50ZiAoIm9rIFxuIik7CiAJfQogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9XQUxLCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSwogCWlmIChydW53YWxrID09IDEpIHsKIAkJcHJpbnRmICgiVGVzdCBXQUxLSU5HIE9ORXMgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X3dhbGsgKCkgPT0gMSkgewpAQCAtOTE3LDcgKzkxNyw3IEBACiAJcmV0dXJuIDA7CiAKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogLyogcm9uZW4gLSB0aGUgYmVsb3cgZnVuY3Rpb25zIGFyZSB1c2VkIGJ5IHRoZSBib290bSBmdW5jdGlvbgkJKi8KIC8qICAtIHdlIG1hcCB0aGUgYmFzZSByZWdpc3RlciB0byBmYmUwMDAwMCAoc2FtZSBtYXBwaW5nIGFzIGluIHRoZSBMU1ApICovCkBAIC05NTYsNyArOTU2LDcgQEAKIC8qICAgICAgR1ZfUkVHX1dSSVRFIChNVjY0MzYwX0VUSF9SRUNFSVZFX1FVRVVFX0NPTU1BTkRfUkVHICgyKSwgMHgwMDAwZmYwMCk7ICovCiAKIC8qIFJlbG9jYXRlIE1WNjQzNjAgaW50ZXJuYWwgcmVncyAqLwotCW15X3JlbWFwX2d0X3JlZ3NfYm9vdG0gKENGR19HVF9SRUdTLCBDRkdfREZMX0dUX1JFR1MpOworCW15X3JlbWFwX2d0X3JlZ3NfYm9vdG0gKENPTkZJR19TWVNfR1RfUkVHUywgQ09ORklHX1NZU19ERkxfR1RfUkVHUyk7CiAKIAlpY2FjaGVfZGlzYWJsZSAoKTsKIAlkY2FjaGVfZGlzYWJsZSAoKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpNzUwL2kyYy5jIGIvYm9hcmQvZXNkL2NwY2k3NTAvaTJjLmMKaW5kZXggNWIxYmMwMS4uZDk1NTY3ZiAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2NwY2k3NTAvaTJjLmMKKysrIGIvYm9hcmQvZXNkL2NwY2k3NTAvaTJjLmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIAl1bnNpZ25lZCBpbnQgbiwgbSwgZnJlcSwgbWFyZ2luLCBwb3dlcjsKIAl1bnNpZ25lZCBpbnQgYWN0dWFsTiA9IDAsIGFjdHVhbE0gPSAwOwogCXVuc2lnbmVkIGludCBtaW5NYXJnaW4gPSAweGZmZmZmZmZmOwotCXVuc2lnbmVkIGludCB0Y2xrID0gQ0ZHX1RDTEs7CisJdW5zaWduZWQgaW50IHRjbGsgPSBDT05GSUdfU1lTX1RDTEs7CiAJdW5zaWduZWQgaW50IGkyY0ZyZXEgPSBzcGVlZDsJLyogMTAwMDAwIG1heC4gRmFzdCBtb2RlIG5vdCBzdXBwb3J0ZWQgKi8KIAogCURQIChwdXRzICgiaTJjX2luaXRcbiIpKTsKQEAgLTM4MCw3ICszODAsNyBAQAogCSAgaW50IGxlbikKIHsKIAl1Y2hhciBzdGF0dXMgPSAwOwotCXVuc2lnbmVkIGludCBpMmNGcmVxID0gQ0ZHX0kyQ19TUEVFRDsKKwl1bnNpZ25lZCBpbnQgaTJjRnJlcSA9IENPTkZJR19TWVNfSTJDX1NQRUVEOwogCiAJRFAgKHB1dHMgKCJpMmNfcmVhZFxuIikpOwogCkBAIC00MjgsNyArNDI4LDcgQEAKIAkgICBpbnQgbGVuKQogewogCXVjaGFyIHN0YXR1cyA9IDA7Ci0JdW5zaWduZWQgaW50IGkyY0ZyZXEgPSBDRkdfSTJDX1NQRUVEOworCXVuc2lnbmVkIGludCBpMmNGcmVxID0gQ09ORklHX1NZU19JMkNfU1BFRUQ7CiAKIAlEUCAocHV0cyAoImkyY193cml0ZVxuIikpOwogCkBAIC00NjQsNyArNDY0LDcgQEAKIAl1bnNpZ25lZCBpbnQgaTJjX3N0YXR1czsKICNlbmRpZgogCXVjaGFyIHN0YXR1cyA9IDA7Ci0JdW5zaWduZWQgaW50IGkyY0ZyZXEgPSBDRkdfSTJDX1NQRUVEOworCXVuc2lnbmVkIGludCBpMmNGcmVxID0gQ09ORklHX1NZU19JMkNfU1BFRUQ7CiAKIAlEUCAocHV0cyAoImkyY19wcm9iZVxuIikpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTc1MC9pZGUuYyBiL2JvYXJkL2VzZC9jcGNpNzUwL2lkZS5jCmluZGV4IDBhZGFmZTIuLjliZGM1MjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpNzUwL2lkZS5jCisrKyBiL2JvYXJkL2VzZC9jcGNpNzUwL2lkZS5jCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSA8aWRlLmg+CiAjaW5jbHVkZSA8cGNpLmg+CiAKLWV4dGVybiB1bG9uZyBpZGVfYnVzX29mZnNldFtDRkdfSURFX01BWEJVU107CitleHRlcm4gdWxvbmcgaWRlX2J1c19vZmZzZXRbQ09ORklHX1NZU19JREVfTUFYQlVTXTsKIAogaW50IGlkZV9wcmVpbml0ICh2b2lkKQogewpAQCAtMzksNyArMzksNyBAQAogCWludCBsOwogCiAJc3RhdHVzID0gMTsKLQlmb3IgKGwgPSAwOyBsIDwgQ0ZHX0lERV9NQVhCVVM7IGwrKykgeworCWZvciAobCA9IDA7IGwgPCBDT05GSUdfU1lTX0lERV9NQVhCVVM7IGwrKykgewogCQlpZGVfYnVzX29mZnNldFtsXSA9IC1BVEFfU1RBVFVTOwogCX0KIAlkZXZidXNmbiA9IHBjaV9maW5kX2RldmljZSAoMHgxMTAzLCAweDAwMDQsIDApOwpAQCAtNTEsMTEgKzUxLDExIEBACiAJCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoZGV2YnVzZm4sIFBDSV9CQVNFX0FERFJFU1NfMCwKIAkJCQkgICAgICAgKHUzMiAqKSAmIGlkZV9idXNfb2Zmc2V0WzBdKTsKIAkJaWRlX2J1c19vZmZzZXRbMF0gJj0gMHhmZmZmZmZmZTsKLQkJaWRlX2J1c19vZmZzZXRbMF0gKz0gQ0ZHX1BDSTBfSU9fU1BBQ0U7CisJCWlkZV9idXNfb2Zmc2V0WzBdICs9IENPTkZJR19TWVNfUENJMF9JT19TUEFDRTsKIAkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXZidXNmbiwgUENJX0JBU0VfQUREUkVTU18yLAogCQkJCSAgICAgICAodTMyICopICYgaWRlX2J1c19vZmZzZXRbMV0pOwogCQlpZGVfYnVzX29mZnNldFsxXSAmPSAweGZmZmZmZmZlOwotCQlpZGVfYnVzX29mZnNldFsxXSArPSBDRkdfUENJMF9JT19TUEFDRTsKKwkJaWRlX2J1c19vZmZzZXRbMV0gKz0gQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFOwogCX0KIAlyZXR1cm4gKHN0YXR1cyk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTc1MC9sb2NhbC5oIGIvYm9hcmQvZXNkL2NwY2k3NTAvbG9jYWwuaAppbmRleCBiY2EwZTFmLi5kZTM3NThhIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTc1MC9sb2NhbC5oCisrKyBiL2JvYXJkL2VzZC9jcGNpNzUwL2xvY2FsLmgKQEAgLTQ4LDcgKzQ4LDcgQEAKIC8qICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5EICovCiAvKiAjZGVmaW5lIENPTkZJR19SQU1CT09UQ09NTUFORCAqLwogLyogI2RlZmluZSBDT05GSUdfTkZTQk9PVENPTU1BTkQgKi8KLS8qICNkZWZpbmUgQ0ZHX0FVVE9MT0FEICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfQVVUT0xPQUQgKi8KIC8qICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgKi8KIAogLyogVGhlc2UgZG9uJ3QgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpNzUwL21pc2MuUyBiL2JvYXJkL2VzZC9jcGNpNzUwL21pc2MuUwppbmRleCAxNjBiMWQzLi4yMzNmZDgzIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTc1MC9taXNjLlMKKysrIGIvYm9hcmQvZXNkL2NwY2k3NTAvbWlzYy5TCkBAIC0xNiw3ICsxNiw3IEBACiBib2FyZF9yZWxvY2F0ZV9yb206CiAJbWZscglyNwogCS8qIHVwZGF0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIEdUIHJlZ2lzdGVycyAqLwotCWxpcwlyMTEsIENGR19HVF9SRUdTQGgKKwlsaXMJcjExLCBDT05GSUdfU1lTX0dUX1JFR1NAaAogCS8qIGlmIHdlJ3JlIHVzaW5nIEVDQywgd2UgbXVzdCB1c2UgdGhlIERNQSBlbmdpbmUgdG8gY29weSBvdXJzZWx2ZXMgKi8KIAlibAlzdGFydF9pZG1hX3RyYW5zZmVyXzAKIAlibAl3YWl0X2Zvcl9pZG1hXzAKQEAgLTI5LDEyICsyOSwxMiBAQAogYm9hcmRfaW5pdF9lY2M6CiAJbWZscglyNwogCS8qIE5PVEU6IHIxMCBzdGlsbCBjb250YWlucyB0aGUgbG9jYXRpb24gd2UndmUgYmVlbiByZWxvY2F0ZWQgdG8KLQkgKiB3aGljaCBoYXBwZW5zIHRvIGJlIFRPUF9PRl9SQU0gLSBDRkdfTU9OSVRPUl9MRU4gKi8KKwkgKiB3aGljaCBoYXBwZW5zIHRvIGJlIFRPUF9PRl9SQU0gLSBDT05GSUdfU1lTX01PTklUT1JfTEVOICovCiAKIAkvKiBub3cgdGhhdCB3ZSdyZSBydW5uaW5nIGZyb20gcmFtLCBpbml0IHRoZSByZXN0IG9mIG1haW4gbWVtb3J5CiAJICogZm9yIEVDQyB1c2UgKi8KLQlsaXMJcjgsIENGR19NT05JVE9SX0xFTkBoCi0Jb3JpCXI4LCByOCwgQ0ZHX01PTklUT1JfTEVOQGwKKwlsaXMJcjgsIENPTkZJR19TWVNfTU9OSVRPUl9MRU5AaAorCW9yaQlyOCwgcjgsIENPTkZJR19TWVNfTU9OSVRPUl9MRU5AbAogCiAJZGl2dwlyMywgcjEwLCByOAogCkBAIC0xMjAsMTUgKzEyMCwxNSBAQAogCWJscgogI2VuZGlmCiAKLSNpZmRlZiBDRkdfQk9BUkRfQVNNX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCiAJLyogTk9URTogdHJhc2hlcyByMy1yNyAqLwogCS5nbG9ibCBib2FyZF9hc21faW5pdAogYm9hcmRfYXNtX2luaXQ6CiAJLyoganVzdCBtb3ZlIHRoZSBHVCByZWdpc3RlcnMgdG8gd2hlcmUgdGhleSBiZWxvbmcgKi8KLQlsaXMJcjMsIENGR19ERkxfR1RfUkVHU0BoCi0Jb3JpCXIzLCByMywgQ0ZHX0RGTF9HVF9SRUdTQGwKLQlsaXMJcjQsIENGR19HVF9SRUdTQGgKLQlvcmkJcjQsIHI0LCBDRkdfR1RfUkVHU0BsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RGTF9HVF9SRUdTQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RGTF9HVF9SRUdTQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfR1RfUkVHU0BoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19HVF9SRUdTQGwKIAlsaQlyNSwgSU5URVJOQUxfU1BBQ0VfREVDT0RFCiAKIAkvKiB0ZXN0IHRvIHNlZSBpZiB3ZSd2ZSBhbHJlYWR5IG1vdmVkICovCkBAIC0xNTMsMTEgKzE1MywxMSBAQAogCWNtcAljcjAsIHI3LCByNgogCWJuZQkxYgogCi0JbGlzCXIzLCBDRkdfSU5UX1NSQU1fQkFTRUBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lOVF9TUkFNX0JBU0VAbAorCWxpcwlyMywgQ09ORklHX1NZU19JTlRfU1JBTV9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lOVF9TUkFNX0JBU0VAbAogCXJsd2lubSAgcjMsIHIzLCAxNiwgMTYsIDMxCi0JbGlzCXI0LCBDRkdfR1RfUkVHU0BoCi0Jb3JpCXI0LCByNCwgQ0ZHX0dUX1JFR1NAbAorCWxpcwlyNCwgQ09ORklHX1NZU19HVF9SRUdTQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0dUX1JFR1NAbAogCWxpCXI1LCBJTlRFR1JBVEVEX1NSQU1fQkFTRV9BRERSCiAJc3R3YnJ4ICByMywgcjUsIHI0CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9jcGNpNzUwL21wc2MuYyBiL2JvYXJkL2VzZC9jcGNpNzUwL21wc2MuYwppbmRleCBmYThkM2JkLi5jODk0MjZkIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvY3BjaTc1MC9tcHNjLmMKKysrIGIvYm9hcmQvZXNkL2NwY2k3NTAvbXBzYy5jCkBAIC00MjcsNyArNDI3LDcgQEAKIAkJCSAgKE1WNjQzNjBfQ1VOSVRfQkFTRV9BRERSX1dJTl8wX0JJVCAqIDIpKSk7CiAKIC8qIFNldHVwIE1QU0MgaW50ZXJuYWwgYWRkcmVzcyBzcGFjZSBiYXNlIGFkZHJlc3MJKi8KLQlHVF9SRUdfV1JJVEUgKENVTklUX0lOVEVSTkFMX1NQQUNFX0JBU0VfQUREUl9SRUcsIENGR19HVF9SRUdTKTsKKwlHVF9SRUdfV1JJVEUgKENVTklUX0lOVEVSTkFMX1NQQUNFX0JBU0VfQUREUl9SRUcsIENPTkZJR19TWVNfR1RfUkVHUyk7CiAKIC8qIG5vIGhpZ2ggYWRkcmVzcyByZW1hcCovCiAJR1RfUkVHX1dSSVRFIChDVU5JVF9ISUdIX0FERFJfUkVNQVBfUkVHMCwgMHgwMCk7CkBAIC01MTcsOSArNTE3LDkgQEAKIAogI2lmZGVmIFpVTUFfTlRMCiAJLyogZnJvbSB0Y2xrICovCi0JY2xvY2sgPSAoQ0ZHX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOworCWNsb2NrID0gKENPTkZJR19TWVNfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CiAjZWxzZQotCWNsb2NrID0gKENGR19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKKwljbG9jayA9IChDT05GSUdfU1lTX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOwogI2VuZGlmCiAKIAlnYWxicmdfc2V0X0NEViAoY2hhbm5lbCwgY2xvY2spOwkvKiBzZXQgdGltZXIgUmVnLiBmb3IgQlJHICovCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvY3BjaTc1MC9wY2kuYyBiL2JvYXJkL2VzZC9jcGNpNzUwL3BjaS5jCmluZGV4IGMzMzVlYmYuLmNiZTc2NmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpNzUwL3BjaS5jCisrKyBiL2JvYXJkL2VzZC9jcGNpNzUwL3BjaS5jCkBAIC05MzIsMTQgKzkzMiwxNCBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kwX2hvc2UucmVnaW9ucyArIDAsCi0JCQlDRkdfUENJMF8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kwXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTBfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJCUNPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMF9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIEkvTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kwX2hvc2UucmVnaW9ucyArIDEsCi0JCQlDRkdfUENJMF9JT19TUEFDRV9QQ0ksCi0JCQlDRkdfUENJMF9JT19TUEFDRSwgQ0ZHX1BDSTBfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCQlDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJLAorCQkJQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFLCBDT05GSUdfU1lTX1BDSTBfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAlwY2lfc2V0X29wcyAoJnBjaTBfaG9zZSwKIAkJICAgICBwY2lfaG9zZV9yZWFkX2NvbmZpZ19ieXRlX3ZpYV9kd29yZCwKQEAgLTk4MSwxNCArOTgxLDE0IEBACiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTFfaG9zZS5yZWdpb25zICsgMCwKLQkJCUNGR19QQ0kxXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSS9PIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTFfaG9zZS5yZWdpb25zICsgMSwKLQkJCUNGR19QQ0kxX0lPX1NQQUNFX1BDSSwKLQkJCUNGR19QQ0kxX0lPX1NQQUNFLCBDRkdfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJCUNPTkZJR19TWVNfUENJMV9JT19TUEFDRV9QQ0ksCisJCQlDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UsIENPTkZJR19TWVNfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCXBjaV9zZXRfb3BzICgmcGNpMV9ob3NlLAogCQkgICAgIHBjaV9ob3NlX3JlYWRfY29uZmlnX2J5dGVfdmlhX2R3b3JkLApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2k3NTAvc2RyYW1faW5pdC5jIGIvYm9hcmQvZXNkL2NwY2k3NTAvc2RyYW1faW5pdC5jCmluZGV4IDAyOTE5MzcuLjRjMDM2MzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpNzUwL3NkcmFtX2luaXQuYworKysgYi9ib2FyZC9lc2QvY3BjaTc1MC9zZHJhbV9pbml0LmMKQEAgLTM1MCw3ICszNTAsNyBAQAogCX0gZWxzZQogCQlkaW1tSW5mby0+c2xvdCA9IHNsb3Q7CS8qIHN0YXJ0IHRvIGZpbGwgdXAgZGltbWluZm8gZm9yIHRoaXMgInNsb3QiICovCiAKLSNpZmRlZiBDRkdfRElTUExBWV9ESU1NX1NQRF9DT05URU5UCisjaWZkZWYgQ09ORklHX1NZU19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQKIAogCWZvciAoaSA9IDA7IGkgPD0gMTI3OyBpKyspIHsKIAkJcHJpbnRmICgiU1BELUVFUFJPTSBCeXRlICUzZCA9ICUzeCAoJTNkKVxuIiwgaSwgZGF0YVtpXSwKQEAgLTE2NTYsMTMgKzE2NTYsMTMgQEAKIAlpZiAoZGltbUluZm8yLm51bU9mTW9kdWxlQmFua3MgPiAyKQogCQlwcmludGYoIkVycm9yLCBTUEQgY2xhaW1zIERJTU0yIGhhcyA+MiBiYW5rc1xuIik7CiAKLQlmb3IgKGJhbmtfbm8gPSAwOyBiYW5rX25vIDwgQ0ZHX0RSQU1fQkFOS1M7IGJhbmtfbm8rKykgeworCWZvciAoYmFua19ubyA9IDA7IGJhbmtfbm8gPCBDT05GSUdfU1lTX0RSQU1fQkFOS1M7IGJhbmtfbm8rKykgewogCQkvKiBza2lwIG92ZXIgYmFua3MgdGhhdCBhcmUgbm90IHBvcHVsYXRlZCAqLwogCQlpZiAoISBjaGVja2JhbmtbYmFua19ub10pCiAJCQljb250aW51ZTsKIAotCQlpZiAoKHRvdGFsICsgY2hlY2spID4gQ0ZHX0dUX1JFR1MpCi0JCQljaGVjayA9IENGR19HVF9SRUdTIC0gdG90YWw7CisJCWlmICgodG90YWwgKyBjaGVjaykgPiBDT05GSUdfU1lTX0dUX1JFR1MpCisJCQljaGVjayA9IENPTkZJR19TWVNfR1RfUkVHUyAtIHRvdGFsOwogCiAJCW1lbW9yeV9tYXBfYmFuayhiYW5rX25vLCB0b3RhbCwgY2hlY2spOwogCQlyZWFsc2l6ZSA9IGRyYW1fc2l6ZSgobG9uZyBpbnQgKil0b3RhbCwgY2hlY2spOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2NwY2lpc2VyNC9mbGFzaC5jIGIvYm9hcmQvZXNkL2NwY2lpc2VyNC9mbGFzaC5jCmluZGV4IGRlODQ3ZjkuLjU2YzgyMmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9jcGNpaXNlcjQvZmxhc2guYworKysgYi9ib2FyZC9lc2QvY3BjaWlzZXI0L2ZsYXNoLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9kYXNhX3NpbS9jbWRfZGFzYV9zaW0uYyBiL2JvYXJkL2VzZC9kYXNhX3NpbS9jbWRfZGFzYV9zaW0uYwppbmRleCA4OWE0YWFmLi4zNmRkNThjIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvZGFzYV9zaW0vY21kX2Rhc2Ffc2ltLmMKKysrIGIvYm9hcmQvZXNkL2Rhc2Ffc2ltL2NtZF9kYXNhX3NpbS5jCkBAIC00OCwxMyArNDgsMTMgQEAKIAl1bnNpZ25lZCBpbnQgcmV0OwogCWludCBjb3VudDsKIAotCXBjaV93cml0ZV9jb25maWdfZHdvcmQgKENGR19QQ0k5MDU0X0RFVl9GTiwgMHg0YywKKwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCAweDRjLAogCQkJCShvZmZzIDw8IDE2KSB8IDB4MDAwMyk7CiAJY291bnQgPSAwOwogCiAJZm9yICg7OykgewogCQl1ZGVsYXkgKDEwICogMTAwMCk7Ci0JCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoQ0ZHX1BDSTkwNTRfREVWX0ZOLCAweDRjLCAmcmV0KTsKKwkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCAweDRjLCAmcmV0KTsKIAkJaWYgKChyZXQgJiAweDgwMDAwMDAwKSAhPSAwKSB7CiAJCQlicmVhazsKIAkJfSBlbHNlIHsKQEAgLTY2LDcgKzY2LDcgQEAKIAkJfQogCX0KIAotCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoQ0ZHX1BDSTkwNTRfREVWX0ZOLCAweDUwLCAmdmFsdWUpOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgMHg1MCwgJnZhbHVlKTsKIAogCXJldHVybiB2YWx1ZTsKIH0KQEAgLTc3LDE0ICs3NywxNCBAQAogCXVuc2lnbmVkIGludCByZXQ7CiAJaW50IGNvdW50OwogCi0JcGNpX3dyaXRlX2NvbmZpZ19kd29yZCAoQ0ZHX1BDSTkwNTRfREVWX0ZOLCAweDUwLCB2YWx1ZSk7Ci0JcGNpX3dyaXRlX2NvbmZpZ19kd29yZCAoQ0ZHX1BDSTkwNTRfREVWX0ZOLCAweDRjLAorCXBjaV93cml0ZV9jb25maWdfZHdvcmQgKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sIDB4NTAsIHZhbHVlKTsKKwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOLCAweDRjLAogCQkJCShvZmZzIDw8IDE2KSB8IDB4ODAwMDAwMDMpOwogCWNvdW50ID0gMDsKIAogCWZvciAoOzspIHsKIAkJdWRlbGF5ICgxMCAqIDEwMDApOwotCQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKENGR19QQ0k5MDU0X0RFVl9GTiwgMHg0YywgJnJldCk7CisJCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoQ09ORklHX1NZU19QQ0k5MDU0X0RFVl9GTiwgMHg0YywgJnJldCk7CiAJCWlmICgocmV0ICYgMHg4MDAwMDAwMCkgPT0gMCkgewogCQkJYnJlYWs7CiAJCX0gZWxzZSB7CkBAIC0xMDksNyArMTA5LDcgQEAKIAlmb3IgKGwgPSAwOyBsIDwgNjsgbCsrKSB7CiAJCXByaW50ZiAoIiUwMng6ICIsIGwgKiAweDEwKTsKIAkJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewotCQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChDRkdfUENJOTA1NF9ERVZfRk4sCisJCQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKENPTkZJR19TWVNfUENJOTA1NF9ERVZfRk4sCiAJCQkJCQlsICogMTYgKyBpICogNCwKIAkJCQkJCSh1bnNpZ25lZCBpbnQgKikmdmFsKTsKIAkJCXByaW50ZiAoIiUwOHggIiwgdmFsKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9kYXNhX3NpbS9mbGFzaC5jIGIvYm9hcmQvZXNkL2Rhc2Ffc2ltL2ZsYXNoLmMKaW5kZXggZDJhYzEzZi4uOWM3MWIwNCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2Rhc2Ffc2ltL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2Rhc2Ffc2ltL2ZsYXNoLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9kcDQwNS9mbGFzaC5jIGIvYm9hcmQvZXNkL2RwNDA1L2ZsYXNoLmMKaW5kZXggODlhZjExOS4uMjc0YWRhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2RwNDA1L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2RwNDA1L2ZsYXNoLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlpbnQgc2l6ZV92YWwgPSAwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MSw3ICs5MSw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvZHU0MDUvZmxhc2guYyBiL2JvYXJkL2VzZC9kdTQwNS9mbGFzaC5jCmluZGV4IDE0NTQ5YzAuLjI0MGFhMDkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9kdTQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9kdTQwNS9mbGFzaC5jCkBAIC00Nyw3ICs0Nyw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlX2IwLCBiYXNlX2IxOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9kdTQ0MC9jb25maWcubWsgYi9ib2FyZC9lc2QvZHU0NDAvY29uZmlnLm1rCmluZGV4IDUxNjQzMzQuLjkxZTY1ZWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9kdTQ0MC9jb25maWcubWsKKysrIGIvYm9hcmQvZXNkL2R1NDQwL2NvbmZpZy5tawpAQCAtMzMsNSArMzMsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9kdTQ0MC9kdTQ0MC5jIGIvYm9hcmQvZXNkL2R1NDQwL2R1NDQwLmMKaW5kZXggNmRjYTM1ZC4uMmY5N2ExMiAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2R1NDQwL2R1NDQwLmMKKysrIGIvYm9hcmQvZXNkL2R1NDQwL2R1NDQwLmMKQEAgLTI5LDcgKzI5LDcgQEAKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLWV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2V4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiBleHRlcm4gdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHVsb25nIGJhc2UsIGludCBiYW5rbnVtKTsKIAogaW50IHVzYmh1Yl9pbml0KHZvaWQpOwpAQCAtNTEsOCArNTEsOCBAQAogCS8qCiAJICogU2V0dXAgdGhlIEdQSU8gcGlucwogCSAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgMHgwMDAwMDAwMCB8IENGR19HUElPMF9FUF9FRVApOwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9UQ1IsIDB4MDAwMDAwMWYgfCBDRkdfR1BJTzBfRVBfRUVQKTsKKwlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIDB4MDAwMDAwMDAgfCBDT05GSUdfU1lTX0dQSU8wX0VQX0VFUCk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX1RDUiwgMHgwMDAwMDAxZiB8IENPTkZJR19TWVNfR1BJTzBfRVBfRUVQKTsKIAlvdXRfYmUzMigodm9pZCopR1BJTzBfT1NSTCwgMHg1MDA1NTQwMCk7CiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09TUkgsIDB4NTUwMDUwMDApOwogCW91dF9iZTMyKCh2b2lkKilHUElPMF9UU1JMLCAweDUwMDU1NDAwKTsKQEAgLTY2LDEzICs2NiwxMyBAQAogCiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09SLCAweDAwMDAwMDAwKTsKIAlvdXRfYmUzMigodm9pZCopR1BJTzFfVENSLCAweGMyMDAwMDAwIHwKLQkJIENGR19HUElPMV9JT1JTVE4gfAotCQkgQ0ZHX0dQSU8xX0lPUlNUMk4gfAotCQkgQ0ZHX0dQSU8xX0xFRFVTUjEgfAotCQkgQ0ZHX0dQSU8xX0xFRFVTUjIgfAotCQkgQ0ZHX0dQSU8xX0xFRFBPU1QgfAotCQkgQ0ZHX0dQSU8xX0xFRERVKTsKLQlvdXRfYmUzMigodm9pZCopR1BJTzFfT0RSLCBDRkdfR1BJTzFfTEVERFUpOworCQkgQ09ORklHX1NZU19HUElPMV9JT1JTVE4gfAorCQkgQ09ORklHX1NZU19HUElPMV9JT1JTVDJOIHwKKwkJIENPTkZJR19TWVNfR1BJTzFfTEVEVVNSMSB8CisJCSBDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjIgfAorCQkgQ09ORklHX1NZU19HUElPMV9MRURQT1NUIHwKKwkJIENPTkZJR19TWVNfR1BJTzFfTEVERFUpOworCW91dF9iZTMyKCh2b2lkKilHUElPMV9PRFIsIENPTkZJR19TWVNfR1BJTzFfTEVERFUpOwogCW91dF9iZTMyKCh2b2lkKilHUElPMV9PU1JMLCAweDBjMjgwMDAwKTsKIAlvdXRfYmUzMigodm9pZCopR1BJTzFfT1NSSCwgMHgwMDAwMDAwMCk7CiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX1RTUkwsIDB4Y2MwMDAwMDApOwpAQCAtMTU0LDggKzE1NCw4IEBACiAJCVNEUjBfQ1VTVDBfTkRGQ19FTkFCTEUJCXwKIAkJU0RSMF9DVVNUMF9OREZDX0JXXzhfQklUCXwKIAkJU0RSMF9DVVNUMF9OREZDX0FSRV9NQVNLCXwKLQkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ0ZHX05BTkQwX0NTKSkgfAotCQkoMHg4MDAwMDAwMCA+PiAoMjggKyBDRkdfTkFORDFfQ1MpKTsKKwkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ09ORklHX1NZU19OQU5EMF9DUykpIHwKKwkJKDB4ODAwMDAwMDAgPj4gKDI4ICsgQ09ORklHX1NZU19OQU5EMV9DUykpOwogCW10c2RyKFNEUjBfQ1VTVDAsIHNkcjBfY3VzdDApOwogCiAJcmV0dXJuIDA7CkBAIC0yNzMsNyArMjczLDcgQEAKIAkgKiBXZSBoYXZlIHRvIHdhaXQgYXQgbGVhc3QgNTYwbXMgdW50aWwgd2UgbWF5IGNhbGwgdXNiaHViX2luaXQKIAkgKi8KIAlvdXRfYmUzMigodm9pZCopR1BJTzFfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSB8Ci0JCSBDRkdfR1BJTzFfSU9SU1ROIHwgQ0ZHX0dQSU8xX0lPUlNUMk4pOworCQkgQ09ORklHX1NZU19HUElPMV9JT1JTVE4gfCBDT05GSUdfU1lTX0dQSU8xX0lPUlNUMk4pOwogCiAJLyoKIAkgKiBmbGFzaCBVU1IxLzIgTEVEcyAoNjAwbXMpCkBAIC0yODIsMjIgKzI4MiwyMiBAQAogCSAqLwogCWZvciAoaiA9IDA7IGogPCAzOyBqKyspIHsKIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09SLAotCQkJIChpbl9iZTMyKCh2b2lkKilHUElPMV9PUikgJiB+Q0ZHX0dQSU8xX0xFRFVTUjIpIHwKLQkJCSBDRkdfR1BJTzFfTEVEVVNSMSk7CisJCQkgKGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSAmIH5DT05GSUdfU1lTX0dQSU8xX0xFRFVTUjIpIHwKKwkJCSBDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjEpOwogCiAJCWZvciAoaSA9IDA7IGkgPCAxMDA7IGkrKykKIAkJCXVkZWxheSgxMDAwKTsKIAogCQlvdXRfYmUzMigodm9pZCopR1BJTzFfT1IsCi0JCQkgKGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSAmIH5DRkdfR1BJTzFfTEVEVVNSMSkgfAotCQkJIENGR19HUElPMV9MRURVU1IyKTsKKwkJCSAoaW5fYmUzMigodm9pZCopR1BJTzFfT1IpICYgfkNPTkZJR19TWVNfR1BJTzFfTEVEVVNSMSkgfAorCQkJIENPTkZJR19TWVNfR1BJTzFfTEVEVVNSMik7CiAKIAkJZm9yIChpID0gMDsgaSA8IDEwMDsgaSsrKQogCQkJdWRlbGF5KDEwMDApOwogCX0KIAogCW91dF9iZTMyKCh2b2lkKilHUElPMV9PUiwgaW5fYmUzMigodm9pZCopR1BJTzFfT1IpICYKLQkJIH4oQ0ZHX0dQSU8xX0xFRFVTUjEgfCBDRkdfR1BJTzFfTEVEVVNSMikpOworCQkgfihDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjEgfCBDT05GSUdfU1lTX0dQSU8xX0xFRFVTUjIpKTsKIAogCWlmICh1c2JodWJfaW5pdCgpKQogCQlkdTQ0MF9wb3N0X2Vycm9ycysrOwpAQCAtMzEwLDE0ICszMTAsMTQgQEAKIAogaW50IHBsZF9yZXZpc2lvbih2b2lkKQogewotCW91dDgoQ0ZHX0NQTERfQkFTRSwgMHgwMCk7Ci0JcmV0dXJuIChpbnQpKGluOChDRkdfQ1BMRF9CQVNFKSAmIENQTERfVkVSU0lPTl9NQVNLKTsKKwlvdXQ4KENPTkZJR19TWVNfQ1BMRF9CQVNFLCAweDAwKTsKKwlyZXR1cm4gKGludCkoaW44KENPTkZJR19TWVNfQ1BMRF9CQVNFKSAmIENQTERfVkVSU0lPTl9NQVNLKTsKIH0KIAogaW50IGJvYXJkX3JldmlzaW9uKHZvaWQpCiB7Ci0JaW50IHJwaW5zID0gKGludCkoKGluX2JlMzIoKHZvaWQqKUdQSU8xX0lSKSAmIENGR19HUElPMV9IV1ZFUl9NQVNLKQotCQkJICA+PiBDRkdfR1BJTzFfSFdWRVJfU0hJRlQpOworCWludCBycGlucyA9IChpbnQpKChpbl9iZTMyKCh2b2lkKilHUElPMV9JUikgJiBDT05GSUdfU1lTX0dQSU8xX0hXVkVSX01BU0spCisJCQkgID4+IENPTkZJR19TWVNfR1BJTzFfSFdWRVJfU0hJRlQpOwogCiAJcmV0dXJuICgocnBpbnMgJiAxKSA8PCAzKSB8ICgocnBpbnMgJiAyKSA8PCAxKSB8CiAJCSgocnBpbnMgJiA0KSA+PiAxKSB8ICgocnBpbnMgJiA4KSA+PiAzKTsKQEAgLTMyOCw3ICszMjgsNyBAQAogewogCWlmICgodGltZXN0YW1wICUgMTAwKSA9PSAwKQogCQlvdXRfYmUzMigodm9pZCopR1BJTzFfT1IsCi0JCQkgaW5fYmUzMigodm9pZCopR1BJTzFfT1IpIF4gQ0ZHX0dQSU8xX0xFRFVTUjEpOworCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSBeIENPTkZJR19TWVNfR1BJTzFfTEVEVVNSMSk7CiB9CiAKIHZvaWQgc2hvd19hY3Rpdml0eShpbnQgYXJnKQpAQCAtNDIxLDcgKzQyMSw3IEBACiAgKiBpbmJvdW5kIG1hcCAoUElNKS4gQnV0IHRoZSBib290c3RyYXAgY29uZmlnIGNob2ljZXMgYXJlIGxpbWl0ZWQgYW5kCiAgKiBtYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJLyoKQEAgLTQzNywxNiArNDM3LDE2IEBACiAJICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgKi8KIAkJCQkJCS8qIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0wTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENGR19QQ0lfTUVNQkFTRSk7IC8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCAqLwogCQkJCQkJLyogYW5kIGVuYWJsZSByZWdpb24gKi8KIAogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlICovCiAJCQkJCQkvKiAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMUxBLCBDRkdfUENJX01FTUJBU0UyKTsgLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCi0Jb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7IC8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7IC8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsICovCiAJCQkJCQkvKiBhbmQgZW5hYmxlIHJlZ2lvbiAqLwpAQCAtNDc5LDkgKzQ3OSw5IEBACiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZCgwLCBQQ0lfQlJER09QVDIsIDB4MDAwMDAxMDEpOwogCiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogdm9pZCBwY2lfbWFzdGVyX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCXVuc2lnbmVkIHNob3J0IHRlbXBfc2hvcnQ7CkBAIC00OTYsNyArNDk2LDcgQEAKIAkJCSAgICAgIHRlbXBfc2hvcnQgfCBQQ0lfQ09NTUFORF9NQVNURVIgfAogCQkJICAgICAgUENJX0NPTU1BTkRfTUVNT1JZKTsKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpICovCiAKIC8qCiAgKiBpc19wY2lfaG9zdApAQCAtNTI0LDE4ICs1MjQsMTggQEAKIAlpbnQgZSwgaTsKIAogCS8qIGV2ZXJ5dGluZyBpcyBvazogdHVybiBvbiBQT1NULUxFRCAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMV9PUiwgaW5fYmUzMigodm9pZCopR1BJTzFfT1IpIHwgQ0ZHX0dQSU8xX0xFRFBPU1QpOworCW91dF9iZTMyKCh2b2lkKilHUElPMV9PUiwgaW5fYmUzMigodm9pZCopR1BJTzFfT1IpIHwgQ09ORklHX1NZU19HUElPMV9MRURQT1NUKTsKIAogCS8qIHNsb3dseSBibGluayBvbiBlcnJvcnMgYW5kIGZpbmFsbHkga2VlcCBMRUQgb2ZmICovCiAJZm9yIChlID0gMDsgZSA8IGR1NDQwX3Bvc3RfZXJyb3JzOyBlKyspIHsKIAkJb3V0X2JlMzIoKHZvaWQqKUdQSU8xX09SLAotCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8xX09SKSB8IENGR19HUElPMV9MRURQT1NUKTsKKwkJCSBpbl9iZTMyKCh2b2lkKilHUElPMV9PUikgfCBDT05GSUdfU1lTX0dQSU8xX0xFRFBPU1QpOwogCiAJCWZvciAoaSA9IDA7IGkgPCA1MDA7IGkrKykKIAkJCXVkZWxheSgxMDAwKTsKIAogCQlvdXRfYmUzMigodm9pZCopR1BJTzFfT1IsCi0JCQkgaW5fYmUzMigodm9pZCopR1BJTzFfT1IpICYgfkNGR19HUElPMV9MRURQT1NUKTsKKwkJCSBpbl9iZTMyKCh2b2lkKilHUElPMV9PUikgJiB+Q09ORklHX1NZU19HUElPMV9MRURQT1NUKTsKIAogCQlmb3IgKGkgPSAwOyBpIDwgNTAwOyBpKyspCiAJCQl1ZGVsYXkoMTAwMCk7CkBAIC01ODMsOSArNTgzLDkgQEAKIAkJcHJpbnRmKCJFUlJPUiAtIG5vIHNpZ25hbFxuIik7CiAKIAl0MSA9IHQyID0gMDsKLQlwaW5vbGQgPSBpbl9iZTMyKCh2b2lkKilHUElPMV9JUikgJiBDRkdfR1BJTzFfRENGNzc7CisJcGlub2xkID0gaW5fYmUzMigodm9pZCopR1BJTzFfSVIpICYgQ09ORklHX1NZU19HUElPMV9EQ0Y3NzsKIAl3aGlsZSAoIWN0cmxjKCkpIHsKLQkJcGluID0gaW5fYmUzMigodm9pZCopR1BJTzFfSVIpICYgQ0ZHX0dQSU8xX0RDRjc3OworCQlwaW4gPSBpbl9iZTMyKCh2b2lkKilHUElPMV9JUikgJiBDT05GSUdfU1lTX0dQSU8xX0RDRjc3OwogCQlpZiAocGluICYmICFwaW5vbGQpIHsgLyogYml0IHN0YXJ0ICovCiAJCQl0MSA9IGdldF90aWNrcygpOwogCQkJaWYgKHQyICYmICgodW5zaWduZWQgaW50KSh0MSAtIHQyKSAvCkBAIC02NjEsNyArNjYxLDcgQEAKIAkpOwogI2VuZGlmIC8qIENPTkZJR19JMkNfTVVMVElfQlVTICovCiAKLSNkZWZpbmUgQ0ZHX0JPT1RfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9FRVBST01fUEFHRV9XUklURV9CSVRTIDMKIGludCBib290X2VlcHJvbV93cml0ZSAodW5zaWduZWQgZGV2X2FkZHIsCiAJCSAgICAgICB1bnNpZ25lZCBvZmZzZXQsCiAJCSAgICAgICB1Y2hhciAqYnVmZmVyLApAQCAtNjcxLDcgKzY3MSw3IEBACiAJdW5zaWduZWQgYmxrX29mZjsKIAlpbnQgcmNvZGUgPSAwOwogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogCWVlcHJvbV93cml0ZV9lbmFibGUoZGV2X2FkZHIsIDEpOwogI2VuZGlmCiAJLyoKQEAgLTcwMCw5ICs3MDAsOSBAQAogCQkgKiBieXRlcyB0aGF0IGNhbiBiZSBjY2Vzc2VkIHdpdGggdGhlIHNpbmdsZSByZWFkIG9yIHdyaXRlCiAJCSAqIG9wZXJhdGlvbi4KIAkJICovCi0jaWYgZGVmaW5lZChDRkdfQk9PVF9FRVBST01fUEFHRV9XUklURV9CSVRTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19CT09UX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpCiAKLSNkZWZpbmUJQk9PVF9FRVBST01fUEFHRV9TSVpFICgxIDw8IENGR19CT09UX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpCisjZGVmaW5lCUJPT1RfRUVQUk9NX1BBR0VfU0laRSAoMSA8PCBDT05GSUdfU1lTX0JPT1RfRUVQUk9NX1BBR0VfV1JJVEVfQklUUykKICNkZWZpbmUgQk9PVF9FRVBST01fUEFHRV9PRkZTRVQoeCkgKCh4KSAmIChCT09UX0VFUFJPTV9QQUdFX1NJWkUgLSAxKSkKIAogCQltYXhsZW4gPSBCT09UX0VFUFJPTV9QQUdFX1NJWkUgLQpAQCAtNzIyLDExICs3MjIsMTEgQEAKIAkJYnVmZmVyICs9IGxlbjsKIAkJb2Zmc2V0ICs9IGxlbjsKIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TKQotCQl1ZGVsYXkoQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TKQorCQl1ZGVsYXkoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOwogI2VuZGlmCiAJfQotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIAllZXByb21fd3JpdGVfZW5hYmxlKGRldl9hZGRyLCAwKTsKICNlbmRpZgogCXJldHVybiByY29kZTsKQEAgLTc3OSw3ICs3NzksNyBAQAogCX0KIAogCXByaW50ZigiV3JpdGluZyBib290IEVFUFJPTSAuLi5cbiIpOwotCWlmIChib290X2VlcHJvbV93cml0ZShDRkdfSTJDX0JPT1RfRUVQUk9NX0FERFIsCisJaWYgKGJvb3RfZWVwcm9tX3dyaXRlKENPTkZJR19TWVNfSTJDX0JPT1RfRUVQUk9NX0FERFIsCiAJCQkgICAgICAwLCAodWNoYXIqKXNkc2RwLCAxNikgIT0gMCkKIAkJcHJpbnRmKCJib290X2VlcHJvbV93cml0ZSBmYWlsZWRcbiIpOwogCWVsc2UKQEAgLTc5Myw3ICs3OTMsNyBAQAogCU5VTEwKIAkpOwogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogLyoKICAqIElucHV0OiA8ZGV2X2FkZHI+ICBJMkMgYWRkcmVzcyBvZiBFRVBST00gZGV2aWNlIHRvIGVuYWJsZS4KICAqICAgICAgICAgPHN0YXRlPiAgICAgLTE6IGRlbGl2ZXIgY3VycmVudCBzdGF0ZQpAQCAtODA1LDI3ICs4MDUsMjcgQEAKICAqLwogaW50IGVlcHJvbV93cml0ZV9lbmFibGUgKHVuc2lnbmVkIGRldl9hZGRyLCBpbnQgc3RhdGUpCiB7Ci0JaWYgKChDRkdfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSAmJgotCSAgICAoQ0ZHX0kyQ19CT09UX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSkKKwlpZiAoKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSAmJgorCSAgICAoQ09ORklHX1NZU19JMkNfQk9PVF9FRVBST01fQUREUiAhPSBkZXZfYWRkcikpCiAJCXJldHVybiAtMTsKIAllbHNlIHsKIAkJc3dpdGNoIChzdGF0ZSkgewogCQljYXNlIDE6CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLCBjbGVhciBiaXQgR1BJT19TSU5UMi4gKi8KIAkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwKLQkJCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNGR19HUElPMF9FUF9FRVApOworCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19HUElPMF9FUF9FRVApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgMDoKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLCBzZXQgYml0IEdQSU9fU0lOVDIuICovCiAJCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsCi0JCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENGR19HUElPMF9FUF9FRVApOworCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0dQSU8wX0VQX0VFUCk7CiAJCQlzdGF0ZSA9IDA7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIFJlYWQgY3VycmVudCBzdGF0dXMgYmFjay4gKi8KIAkJCXN0YXRlID0gKDAgPT0gKGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmCi0JCQkJICAgICAgIENGR19HUElPMF9FUF9FRVApKTsKKwkJCQkgICAgICAgQ09ORklHX1NZU19HUElPMF9FUF9FRVApKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtODM5LDIxICs4MzksMjEgQEAKIAogCWlmIChxdWVyeSkgewogCQkvKiBRdWVyeSB3cml0ZSBhY2Nlc3Mgc3RhdGUuICovCi0JCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDRkdfSTJDX0VFUFJPTV9BRERSLCAtMSk7CisJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgLTEpOwogCQlpZiAoc3RhdGUgPCAwKQogCQkJcHV0cyAoIlF1ZXJ5IG9mIHdyaXRlIGFjY2VzcyBzdGF0ZSBmYWlsZWQuXG4iKTsKIAkJZWxzZSB7CiAJCQlwcmludGYgKCJXcml0ZSBhY2Nlc3MgZm9yIGRldmljZSAweCUweCBpcyAlc2FibGVkLlxuIiwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKIAkJCXN0YXRlID0gMDsKIAkJfQogCX0gZWxzZSB7CiAJCWlmICgnMCcgPT0gYXJndlsxXVswXSkgewogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ0ZHX0kyQ19FRVBST01fQUREUiwgMCk7CisJCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDApOwogCQl9IGVsc2UgewogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2Vzcy4gKi8KLQkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDRkdfSTJDX0VFUFJPTV9BRERSLCAxKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMSk7CiAJCX0KIAkJaWYgKHN0YXRlIDwgMCkKIAkJCXB1dHMgKCJTZXR1cCBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CkBAIC04NjUsMTkgKzg2NSwxOSBAQAogVV9CT09UX0NNRChlZXB3cmVuLCAyLCAwLCBkb19lZXBfd3JlbiwKIAkgICAiZWVwd3JlbiAtIEVuYWJsZSAvIGRpc2FibGUgLyBxdWVyeSBFRVBST00gd3JpdGUgYWNjZXNzXG4iLAogCSAgIE5VTEwpOwotI2VuZGlmIC8qICNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikgKi8KKyNlbmRpZiAvKiAjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKSAqLwogCiBzdGF0aWMgaW50IGdvdF9wbGRpcnE7CiAKIHN0YXRpYyBpbnQgcGxkX2ludGVycnVwdCh1MzIgYXJnKQogewogCWludCByYyA9IC0xOyAvKiBub3QgZm9yIHVzICovCi0JdTggc3RhdHVzID0gaW44KENGR19DUExEX0JBU0UpOworCXU4IHN0YXR1cyA9IGluOChDT05GSUdfU1lTX0NQTERfQkFTRSk7CiAKIAkvKiBjaGVjayBmb3IgUExEIGludGVycnVwdCAqLwogCWlmIChzdGF0dXMgJiBQV1JfSU5UX0ZMQUcpIHsKIAkJLyogcmVzZXQgdGhpcyBpbnQgKi8KLQkJb3V0OChDRkdfQ1BMRF9CQVNFLCAwKTsKKwkJb3V0OChDT05GSUdfU1lTX0NQTERfQkFTRSwgMCk7CiAJCXJjID0gMDsKIAkJZ290X3BsZGlycSA9IDE7IC8qIHRyaWdnZXIgYmFja2VuZCAqLwogCX0KQEAgLTg5MCw3ICs4OTAsNyBAQAogCWdvdF9wbGRpcnEgPSAwOwogCiAJLyogY2xlYXIgYW55IHBlbmRpbmcgaW50ZXJydXB0ICovCi0Jb3V0OChDRkdfQ1BMRF9CQVNFLCAwKTsKKwlvdXQ4KENPTkZJR19TWVNfQ1BMRF9CQVNFLCAwKTsKIAogCWlycV9pbnN0YWxsX2hhbmRsZXIoQ1BMRF9JUlEsCiAJCQkgICAgKGludGVycnVwdF9oYW5kbGVyX3QgKilwbGRfaW50ZXJydXB0LCAwKTsKQEAgLTkwNiw3ICs5MDYsNyBAQAogCWlmIChnb3RfcGxkaXJxKSB7CiAJCXByaW50ZigiR290IGludGVycnVwdCFcbiIpOwogCQlwcmludGYoIlBvd2VyICVzcmVhZHkhXG4iLAotCQkgICAgICAgaW44KENGR19DUExEX0JBU0UpICYgUFdSX1JEWSA/ICIiOiJOT1QgIik7CisJCSAgICAgICBpbjgoQ09ORklHX1NZU19DUExEX0JBU0UpICYgUFdSX1JEWSA/ICIiOiJOT1QgIik7CiAJfQogCiAJaXJxX2ZyZWVfaGFuZGxlcihDUExEX0lSUSk7CkBAIC05NzAsNyArOTcwLDcgQEAKIGludCBkb190aW1lKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCwgZW5kOwotCWNoYXIgYywgY21kW0NGR19DQlNJWkVdOworCWNoYXIgYywgY21kW0NPTkZJR19TWVNfQ0JTSVpFXTsKIAljaGFyICpwLCAqZCA9IGNtZDsKIAlpbnQgcmV0LCBpOwogCXVsb25nIHVzOwpAQCAtOTk4LDcgKzk5OCw3IEBACiAJcmV0dXJuIHJldDsKIH0KIFVfQk9PVF9DTUQoCi0JdGltZSwJQ0ZHX01BWEFSR1MsCTEsCWRvX3RpbWUsCisJdGltZSwJQ09ORklHX1NZU19NQVhBUkdTLAkxLAlkb190aW1lLAogCSJ0aW1lICAgIC0gcnVuIGNvbW1hbmQgYW5kIG91dHB1dCBleGVjdXRpb24gdGltZVxuIiwKIAlOVUxMCiAJKTsKQEAgLTEwNDgsNyArMTA0OCw3IEBACiAJcmV0dXJuIDA7CiB9CiBVX0JPT1RfQ01EKAotCWdmeGRlbW8sCUNGR19NQVhBUkdTLAkxLAlkb19nZnhkZW1vLAorCWdmeGRlbW8sCUNPTkZJR19TWVNfTUFYQVJHUywJMSwJZG9fZ2Z4ZGVtbywKIAkiZ2Z4ZGVtbyAtIGRlbW9cbiIsCiAJTlVMTAogCSk7CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvZHU0NDAvZHU0NDAuaCBiL2JvYXJkL2VzZC9kdTQ0MC9kdTQ0MC5oCmluZGV4IDgzZmRhYzcuLmExMjRhN2UgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9kdTQ0MC9kdTQ0MC5oCisrKyBiL2JvYXJkL2VzZC9kdTQ0MC9kdTQ0MC5oCkBAIC0yMCwxOCArMjAsMTggQEAKIAogI2RlZmluZSBTRFIwX1VTQjAJCTB4MDMyMCAgICAgLyogVVNCIENvbnRyb2wgUmVnaXN0ZXIgKi8KIAotI2RlZmluZSBDRkdfR1BJTzBfRVBfRUVQCSgweDgwMDAwMDAwID4+IDIzKSAgICAgICAvKiBHUElPMF8yMyAqLwotI2RlZmluZSBDRkdfR1BJTzFfRENGNzcJCSgweDgwMDAwMDAwID4+ICg0Mi0zMikpICAvKiBHUElPMV80MiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0VQX0VFUAkoMHg4MDAwMDAwMCA+PiAyMykgICAgICAgLyogR1BJTzBfMjMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9EQ0Y3NwkJKDB4ODAwMDAwMDAgPj4gKDQyLTMyKSkgIC8qIEdQSU8xXzQyICovCiAKLSNkZWZpbmUgQ0ZHX0dQSU8xX0lPUlNUTgkoMHg4MDAwMDAwMCA+PiAoNTUtMzIpKSAgLyogR1BJTzFfNTUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8xX0lPUlNUMk4JKDB4ODAwMDAwMDAgPj4gKDQ3LTMyKSkgIC8qIEdQSU8xXzQ3ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfSU9SU1ROCSgweDgwMDAwMDAwID4+ICg1NS0zMikpICAvKiBHUElPMV81NSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0lPUlNUMk4JKDB4ODAwMDAwMDAgPj4gKDQ3LTMyKSkgIC8qIEdQSU8xXzQ3ICovCiAKLSNkZWZpbmUgQ0ZHX0dQSU8xX0hXVkVSX01BU0sJMHgwMDAwMDBmMCAvKiBHUElPMV81Ni01OSAqLwotI2RlZmluZSBDRkdfR1BJTzFfSFdWRVJfU0hJRlQJNAotI2RlZmluZSBDRkdfR1BJTzFfTEVEVVNSMQkweDAwMDAwMDA4IC8qIEdQSU8xXzYwICovCi0jZGVmaW5lIENGR19HUElPMV9MRURVU1IyCTB4MDAwMDAwMDQgLyogR1BJTzFfNjEgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8xX0xFRFBPU1QJMHgwMDAwMDAwMiAvKiBHUElPMV82MiAqLwotI2RlZmluZSBDRkdfR1BJTzFfTEVERFUJCTB4MDAwMDAwMDEgLyogR1BJTzFfNjMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9IV1ZFUl9NQVNLCTB4MDAwMDAwZjAgLyogR1BJTzFfNTYtNTkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9IV1ZFUl9TSElGVAk0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfTEVEVVNSMQkweDAwMDAwMDA4IC8qIEdQSU8xXzYwICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfTEVEVVNSMgkweDAwMDAwMDA0IC8qIEdQSU8xXzYxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfTEVEUE9TVAkweDAwMDAwMDAyIC8qIEdQSU8xXzYyICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfTEVERFUJCTB4MDAwMDAwMDEgLyogR1BJTzFfNjMgKi8KIAogI2RlZmluZSBDUExEX1ZFUlNJT05fTUFTSwkweDBmCiAjZGVmaW5lIFBXUl9JTlRfRkxBRwkJMHg4MApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2R1NDQwL2luaXQuUyBiL2JvYXJkL2VzZC9kdTQ0MC9pbml0LlMKaW5kZXggNDM5MGI1MC4uM2NhYzZiMSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2R1NDQwL2luaXQuUworKysgYi9ib2FyZC9lc2QvZHU0NDAvaW5pdC5TCkBAIC00NCwzMCArNDQsMzAgQEAKIAkgKiBCT09UX0NTIChGTEFTSCkgbXVzdCBiZSBmaXJzdC4gQmVmb3JlIHJlbG9jYXRpb24gU0FfSSBjYW4gYmUgb2ZmIHRvIHVzZSB0aGUKIAkgKiBzcGVlZCB1cCBib290IHByb2Nlc3MuIEl0IGlzIHBhdGNoZWQgYWZ0ZXIgcmVsb2NhdGlvbiB0byBlbmFibGUgU0FfSQogCSAqLwotCXRsYmVudHJ5KCBDRkdfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENGR19CT09UX0JBU0VfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisJdGxiZW50cnkoIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0RDQUNIRQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCiAJLyogVExCLWVudHJ5IGZvciBpbml0LXJhbSBpbiBkY2FjaGUgKFNBX0kgbXVzdCBiZSB0dXJuZWQgb2ZmISkgKi8KLQl0bGJlbnRyeSggQ0ZHX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ0ZHX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKICNlbmRpZgogCiAJLyogVExCLWVudHJ5IGZvciBQQ0kgTWVtb3J5ICovCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgIENGR19QQ0lfTUVNQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTEsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UyLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMywgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UzLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyeSBmb3IgUENJIElPICovCi0JdGxiZW50cnkoIENGR19QQ0lfSU9CQVNFLCBTWl82NEssIENGR19QQ0lfSU9CQVNFLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfSU9CQVNFLCBTWl82NEssIENPTkZJR19TWVNfUENJX0lPQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cmllcyBmb3IgRUJDOgkgQ1BMRCwgRFVNRU0sIERVSU8gKi8KLQl0bGJlbnRyeSggQ0ZHX0NQTERfQkFTRSwgU1pfMUssIENGR19DUExEX0JBU0UsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19EVU1FTV9CQVNFLCBTWl8xTSwgQ0ZHX0RVTUVNX0JBU0UsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19EVUlPX0JBU0UsIFNaXzY0SywgQ0ZHX0RVSU9fQkFTRSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19DUExEX0JBU0UsIFNaXzFLLCBDT05GSUdfU1lTX0NQTERfQkFTRSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19EVU1FTV9CQVNFLCBTWl8xTSwgQ09ORklHX1NZU19EVU1FTV9CQVNFLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0RVSU9fQkFTRSwgU1pfNjRLLCBDT05GSUdfU1lTX0RVSU9fQkFTRSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyeSBmb3IgTkFORCAqLwotCXRsYmVudHJ5KCBDRkdfTkFORDBfQUREUiwgU1pfMUssIENGR19OQU5EMF9BRERSLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfTkFORDFfQUREUiwgU1pfMUssIENGR19OQU5EMV9BRERSLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX05BTkQwX0FERFIsIFNaXzFLLCBDT05GSUdfU1lTX05BTkQwX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfTkFORDFfQUREUiwgU1pfMUssIENPTkZJR19TWVNfTkFORDFfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyeSBmb3IgSW50ZXJuYWwgUmVnaXN0ZXJzICYgT0NNICovCiAJdGxiZW50cnkoIDB4ZTAwMDAwMDAsIFNaXzE2TSwgMHhlMDAwMDAwMCwgMCwgIEFDX1J8QUNfV3xBQ19YfFNBX0kgKQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2R1NDQwL3UtYm9vdC5sZHMgYi9ib2FyZC9lc2QvZHU0NDAvdS1ib290LmxkcwppbmRleCBiMjBmYjFjLi4zY2ZlYzgzIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvZHU0NDAvdS1ib290LmxkcworKysgYi9ib2FyZC9lc2QvZHU0NDAvdS1ib290LmxkcwpAQCAtMTM3LDcgKzEzNyw3IEBACiAgICAqKENPTU1PTikKICAgfQogCi0gIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRjgwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKKyAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGODAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CiAKICAgX2VuZCA9IC4gOwogICBQUk9WSURFIChlbmQgPSAuKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9oaDQwNS9mbGFzaC5jIGIvYm9hcmQvZXNkL2hoNDA1L2ZsYXNoLmMKaW5kZXggODlhZjExOS4uMjc0YWRhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2hoNDA1L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2hoNDA1L2ZsYXNoLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlpbnQgc2l6ZV92YWwgPSAwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MSw3ICs5MSw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvaGg0MDUvaGg0MDUuYyBiL2JvYXJkL2VzZC9oaDQwNS9oaDQwNS5jCmluZGV4IDlmYzQxYzguLmVmYWRmMTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9oaDQwNS9oaDQwNS5jCisrKyBiL2JvYXJkL2VzZC9oaDQwNS9oaDQwNS5jCkBAIC0zNDUsNyArMzQ1LDcgQEAKIAltdGRjcih1aWNzciwgMHhGRkZGRkZGRik7ICAgICAgIC8qIGNsZWFyIGFsbCBpbnRzICovCiAJbXRkY3IodWljZXIsIDB4MDAwMDAwMDApOyAgICAgICAvKiBkaXNhYmxlIGFsbCBpbnRzICovCiAJbXRkY3IodWljY3IsIDB4MDAwMDAwMDApOyAgICAgICAvKiBzZXQgYWxsIHRvIGJlIG5vbi1jcml0aWNhbCovCi0JbXRkY3IodWljcHIsIENGR19VSUMwX1BPTEFSSVRZKTsvKiBzZXQgaW50IHBvbGFyaXRpZXMgKi8KKwltdGRjcih1aWNwciwgQ09ORklHX1NZU19VSUMwX1BPTEFSSVRZKTsvKiBzZXQgaW50IHBvbGFyaXRpZXMgKi8KIAltdGRjcih1aWN0ciwgMHgxMDAwMDAwMCk7ICAgICAgIC8qIHNldCBpbnQgdHJpZ2dlciBsZXZlbHMgKi8KIAltdGRjcih1aWN2Y3IsIDB4MDAwMDAwMDEpOyAgICAgIC8qIHNldCB2ZWN0IGJhc2U9MCxJTlQwIGhpZ2hlc3QgcHJpb3JpdHkqLwogCW10ZGNyKHVpY3NyLCAweEZGRkZGRkZGKTsgICAgICAgLyogY2xlYXIgYWxsIGludHMgKi8KQEAgLTM2MywyNiArMzYzLDI2IEBACiAJaW50IGk7CiAKIAl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9jdHJsID0KLQkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMKTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwpOwogCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpmcGdhX3N0YXR1cyA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCArIDIpOworCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCArIDIpOwogCiAJaWYgKGdkLT5ib2FyZF90eXBlID49IDIpIHsKLQkJaWYgKCpmcGdhX3N0YXR1cyAmIENGR19GUEdBX1NUQVRVU19DRl9ERVRFQ1QpIHsKLQkJCWlmICghKCpmcGdhX2N0cmwgJiBDRkdfRlBHQV9DVFJMX0NGX0JVU19FTikpIHsKLQkJCQkqZnBnYV9jdHJsICY9IH5DRkdfRlBHQV9DVFJMX0NGX1BXUk47CisJCWlmICgqZnBnYV9zdGF0dXMgJiBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0NGX0RFVEVDVCkgeworCQkJaWYgKCEoKmZwZ2FfY3RybCAmIENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX0JVU19FTikpIHsKKwkJCQkqZnBnYV9jdHJsICY9IH5DT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9QV1JOOwogCiAJCQkJZm9yIChpPTA7IGk8MzAwOyBpKyspCiAJCQkJCXVkZWxheSgxMDAwKTsKIAotCQkJCSpmcGdhX2N0cmwgfD0gQ0ZHX0ZQR0FfQ1RSTF9DRl9CVVNfRU47CisJCQkJKmZwZ2FfY3RybCB8PSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9CVVNfRU47CiAKIAkJCQlmb3IgKGk9MDsgaTwyMDsgaSsrKQogCQkJCQl1ZGVsYXkoMTAwMCk7CiAJCQl9CiAJCX0gZWxzZSB7Ci0JCQkqZnBnYV9jdHJsICY9IH5DRkdfRlBHQV9DVFJMX0NGX0JVU19FTjsKLQkJCSpmcGdhX2N0cmwgfD0gQ0ZHX0ZQR0FfQ1RSTF9DRl9QV1JOOworCQkJKmZwZ2FfY3RybCAmPSB+Q09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfQlVTX0VOOworCQkJKmZwZ2FfY3RybCB8PSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9QV1JOOwogCQl9CiAJfQogCkBAIC0zOTIsMTEgKzM5MiwxMSBAQAogaW50IG1pc2NfaW5pdF9yICh2b2lkKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpmcGdhX2N0cmwgPQotCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwpOworCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCk7CiAJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmxjZF9jb250cmFzdCA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCArIDQpOworCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCArIDQpOwogCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpsY2RfYmFja2xpZ2h0ID0KLQkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMICsgNik7CisJCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9DVFJMICsgNik7CiAJdW5zaWduZWQgY2hhciAqZHN0OwogCXVsb25nIGxlbiA9IHNpemVvZihmcGdhZGF0YSk7CiAJaW50IHN0YXR1czsKQEAgLTQwNSw4ICs0MDUsOCBAQAogCWNoYXIgKnN0cjsKIAl1bnNpZ25lZCBsb25nIGNvbnRyYXN0MCA9IDB4ZmZmZmZmZmY7CiAKLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAgKGRzdCwgQ0ZHX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CisJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSk7CisJaWYgKGd1bnppcCAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZiAoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCWRvX3Jlc2V0IChOVUxMLCAwLCAwLCBOVUxMKTsKIAl9CkBAIC00NzQsMjIgKzQ3NCwyMiBAQAogCS8qCiAJICogU2V0dXAgYW5kIGVuYWJsZSBFRVBST00gd3JpdGUgcHJvdGVjdGlvbgogCSAqLwotCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19FRVBST01fV1ApOworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAogCS8qCiAJICogUmVzZXQgdG91Y2gtc2NyZWVuIGNvbnRyb2xsZXIKIAkgKi8KLQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX1RPVUNIX1JTVCk7CisJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfVE9VQ0hfUlNUKTsKIAl1ZGVsYXkoMTAwMCk7Ci0Jb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX1RPVUNIX1JTVCk7CisJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19UT1VDSF9SU1QpOwogCiAJLyoKIAkgKiBFbmFibGUgcG93ZXIgb24gUFMvMiBpbnRlcmZhY2UgKHdpdGggcmVzZXQpCiAJICovCi0JKmZwZ2FfY3RybCAmPSB+KENGR19GUEdBX0NUUkxfUFMyX1BXUik7CisJKmZwZ2FfY3RybCAmPSB+KENPTkZJR19TWVNfRlBHQV9DVFJMX1BTMl9QV1IpOwogCWZvciAoaT0wO2k8NTAwO2krKykKIAkJdWRlbGF5KDEwMDApOwotCSpmcGdhX2N0cmwgfD0gKENGR19GUEdBX0NUUkxfUFMyX1BXUik7CisJKmZwZ2FfY3RybCB8PSAoQ09ORklHX1NZU19GUEdBX0NUUkxfUFMyX1BXUik7CiAKIAkvKgogCSAqIEdldCBjb250cmFzdCB2YWx1ZSBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlCkBAIC01MTIsMTEgKzUxMiwxMSBAQAogCQkvKgogCQkgKiBTd2l0Y2ggYmFja2xpZ2h0IG9uCiAJCSAqLwotCQkqZnBnYV9jdHJsIHw9IENGR19GUEdBX0NUUkxfVkdBMF9CTDsKKwkJKmZwZ2FfY3RybCB8PSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9WR0EwX0JMOwogCQkqbGNkX2JhY2tsaWdodCA9IDB4MDAwMDsKIAogCQlsY2Rfc2V0dXAoMSwgMCk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfQklHX1JFRywgKHVjaGFyICopQ0ZHX0xDRF9CSUdfTUVNLAorCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfTUVNLAogCQkJIHJlZ3NfMTM4MDZfMTAyNF83NjhfOGJwcCwKIAkJCSBzaXplb2YocmVnc18xMzgwNl8xMDI0Xzc2OF84YnBwKS9zaXplb2YocmVnc18xMzgwNl8xMDI0Xzc2OF84YnBwWzBdKSwKIAkJCSBsb2dvX2JtcF8xMDI0LCBzaXplb2YobG9nb19ibXBfMTAyNCkpOwpAQCAtNTI0LDExICs1MjQsMTEgQEAKIAkJLyoKIAkJICogU3dpdGNoIGJhY2tsaWdodCBvbgogCQkgKi8KLQkJKmZwZ2FfY3RybCAmPSB+Q0ZHX0ZQR0FfQ1RSTF9WR0EwX0JMOworCQkqZnBnYV9jdHJsICY9IH5DT05GSUdfU1lTX0ZQR0FfQ1RSTF9WR0EwX0JMOwogCQkqbGNkX2JhY2tsaWdodCA9IDB4MDAwMDsKIAogCQlsY2Rfc2V0dXAoMSwgMCk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfQklHX1JFRywgKHVjaGFyICopQ0ZHX0xDRF9CSUdfTUVNLAorCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9CSUdfTUVNLAogCQkJIHJlZ3NfMTM4MDZfNjQwXzQ4MF8xNmJwcCwKIAkJCSBzaXplb2YocmVnc18xMzgwNl82NDBfNDgwXzE2YnBwKS9zaXplb2YocmVnc18xMzgwNl82NDBfNDgwXzE2YnBwWzBdKSwKIAkJCSBsb2dvX2JtcF82NDAsIHNpemVvZihsb2dvX2JtcF82NDApKTsKQEAgLTU0NSw3ICs1NDUsNyBAQAogCQkvKgogCQkgKiBTd2l0Y2ggYmFja2xpZ2h0IG9uCiAJCSAqLwotCQkqZnBnYV9jdHJsIHw9IENGR19GUEdBX0NUUkxfVkdBMF9CTCB8IENGR19GUEdBX0NUUkxfVkdBMF9CTF9NT0RFOworCQkqZnBnYV9jdHJsIHw9IENPTkZJR19TWVNfRlBHQV9DVFJMX1ZHQTBfQkwgfCBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9WR0EwX0JMX01PREU7CiAJCS8qCiAJCSAqIFNldCBsY2QgY2xvY2sgKHNtYWxsIGVwc29uKQogCQkgKi8KQEAgLTU1Myw3ICs1NTMsNyBAQAogCQl1ZGVsYXkoMTAwKTsgICAgICAgICAgICAgICAvKiB3YWl0IGZvciAxMDAgdXMgKi8KIAogCQlsY2Rfc2V0dXAoMCwgMSk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDRkdfTENEX1NNQUxMX01FTSwKKwkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9TTUFMTF9NRU0sCiAJCQkgcmVnc18xMzcwNV8zMjBfMjQwXzhicHAsCiAJCQkgc2l6ZW9mKHJlZ3NfMTM3MDVfMzIwXzI0MF84YnBwKS9zaXplb2YocmVnc18xMzcwNV8zMjBfMjQwXzhicHBbMF0pLAogCQkJIGxvZ29fYm1wXzMyMF84YnBwLCBzaXplb2YobG9nb19ibXBfMzIwXzhicHApKTsKQEAgLTU3MCwxNCArNTcwLDE0IEBACiAJCS8qCiAJCSAqIFN3aXRjaCBiYWNrbGlnaHQgb24KIAkJICovCi0JCSpmcGdhX2N0cmwgfD0gQ0ZHX0ZQR0FfQ1RSTF9WR0EwX0JMIHwgQ0ZHX0ZQR0FfQ1RSTF9WR0EwX0JMX01PREU7CisJCSpmcGdhX2N0cmwgfD0gQ09ORklHX1NZU19GUEdBX0NUUkxfVkdBMF9CTCB8IENPTkZJR19TWVNfRlBHQV9DVFJMX1ZHQTBfQkxfTU9ERTsKIAkJLyoKIAkJICogU2V0IGxjZCBjbG9jayAoc21hbGwgZXBzb24pLCBlbmFibGUgMS13aXJlIGludGVyZmFjZQogCQkgKi8KLQkJKmZwZ2FfY3RybCB8PSBMQ0RfQ0xLXzA4MzMwIHwgQ0ZHX0ZQR0FfQ1RSTF9PV19FTkFCTEU7CisJCSpmcGdhX2N0cmwgfD0gTENEX0NMS18wODMzMCB8IENPTkZJR19TWVNfRlBHQV9DVFJMX09XX0VOQUJMRTsKIAogCQlsY2Rfc2V0dXAoMCwgMSk7Ci0JCWxjZF9pbml0KCh1Y2hhciAqKUNGR19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDRkdfTENEX1NNQUxMX01FTSwKKwkJbGNkX2luaXQoKHVjaGFyICopQ09ORklHX1NZU19MQ0RfU01BTExfUkVHLCAodWNoYXIgKilDT05GSUdfU1lTX0xDRF9TTUFMTF9NRU0sCiAJCQkgcmVnc18xMzcwNF8zMjBfMjQwXzRicHAsCiAJCQkgc2l6ZW9mKHJlZ3NfMTM3MDRfMzIwXzI0MF80YnBwKS9zaXplb2YocmVnc18xMzcwNF8zMjBfMjQwXzRicHBbMF0pLAogCQkJIGxvZ29fYm1wXzMyMCwgc2l6ZW9mKGxvZ29fYm1wXzMyMCkpOwpAQCAtNjQ3LDI3ICs2NDcsMjcgQEAKIHZvaWQgaWRlX3NldF9yZXNldChpbnQgb24pCiB7CiAJdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmZwZ2FfbW9kZSA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCk7CisJCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9DVFJMKTsKIAl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9zdGF0dXMgPQotCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwgKyAyKTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwgKyAyKTsKIAotCWlmICgoKGdkLT5ib2FyZF90eXBlID49IDIpICYmICgqZnBnYV9zdGF0dXMgJiBDRkdfRlBHQV9TVEFUVVNfQ0ZfREVURUNUKSkgfHwKKwlpZiAoKChnZC0+Ym9hcmRfdHlwZSA+PSAyKSAmJiAoKmZwZ2Ffc3RhdHVzICYgQ09ORklHX1NZU19GUEdBX1NUQVRVU19DRl9ERVRFQ1QpKSB8fAogCSAgICAoZ2QtPmJvYXJkX3R5cGUgPCAyKSkgewogCQkvKgogCQkgKiBBc3NlcnQgb3IgZGVhc3NlcnQgQ29tcGFjdEZsYXNoIFJlc2V0IFBpbgogCQkgKi8KIAkJaWYgKG9uKSB7CQkvKiBhc3NlcnQgUkVTRVQgKi8KIAkJCWNmX2VuYWJsZSgpOwotCQkJKmZwZ2FfbW9kZSAmPSB+KENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQpOworCQkJKmZwZ2FfbW9kZSAmPSB+KENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUKTsKIAkJfSBlbHNlIHsJCS8qIHJlbGVhc2UgUkVTRVQgKi8KLQkJCSpmcGdhX21vZGUgfD0gQ0ZHX0ZQR0FfQ1RSTF9DRl9SRVNFVDsKKwkJCSpmcGdhX21vZGUgfD0gQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUkVTRVQ7CiAJCX0KIAl9CiB9CiAjZW5kaWYgLyogQ09ORklHX0lERV9SRVNFVCAqLwogCiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAvKiBJbnB1dDogPGRldl9hZGRyPiAgSTJDIGFkZHJlc3Mgb2YgRUVQUk9NIGRldmljZSB0byBlbmFibGUuCiAgKiAgICAgICAgIDxzdGF0ZT4gICAgIC0xOiBkZWxpdmVyIGN1cnJlbnQgc3RhdGUKICAqCSAgICAgICAgICAgICAgIDA6IGRpc2FibGUgd3JpdGUKQEAgLTY3OCwyMyArNjc4LDIzIEBACiAgKi8KIGludCBlZXByb21fd3JpdGVfZW5hYmxlICh1bnNpZ25lZCBkZXZfYWRkciwgaW50IHN0YXRlKQogewotCWlmIChDRkdfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSB7CisJaWYgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSB7CiAJCXJldHVybiAtMTsKIAl9IGVsc2UgewogCQlzd2l0Y2ggKHN0YXRlKSB7CiAJCWNhc2UgMToKIAkJCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MsIGNsZWFyIGJpdCBHUElPX1NJTlQyLiAqLwotCQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19FRVBST01fV1ApOworCQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAkJCXN0YXRlID0gMDsKIAkJCWJyZWFrOwogCQljYXNlIDA6CiAJCQkvKiBEaXNhYmxlIHdyaXRlIGFjY2Vzcywgc2V0IGJpdCBHUElPX1NJTlQyLiAqLwotCQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX0VFUFJPTV9XUCk7CisJCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAJCQlzdGF0ZSA9IDA7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIFJlYWQgY3VycmVudCBzdGF0dXMgYmFjay4gKi8KLQkJCXN0YXRlID0gKDAgPT0gKGluMzIoR1BJTzBfT1IpICYgQ0ZHX0VFUFJPTV9XUCkpOworCQkJc3RhdGUgPSAoMCA9PSAoaW4zMihHUElPMF9PUikgJiBDT05GSUdfU1lTX0VFUFJPTV9XUCkpOwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC03MDgsMjEgKzcwOCwyMSBAQAogCiAJaWYgKHF1ZXJ5KSB7CiAJCS8qIFF1ZXJ5IHdyaXRlIGFjY2VzcyBzdGF0ZS4gKi8KLQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAtMSk7CisJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIC0xKTsKIAkJaWYgKHN0YXRlIDwgMCkgewogCQkJcHV0cyAoIlF1ZXJ5IG9mIHdyaXRlIGFjY2VzcyBzdGF0ZSBmYWlsZWQuXG4iKTsKIAkJfSBlbHNlIHsKIAkJCXByaW50ZiAoIldyaXRlIGFjY2VzcyBmb3IgZGV2aWNlIDB4JTB4IGlzICVzYWJsZWQuXG4iLAotCQkJCUNGR19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKKwkJCQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgc3RhdGUgPyAiZW4iIDogImRpcyIpOwogCQkJc3RhdGUgPSAwOwogCQl9CiAJfSBlbHNlIHsKIAkJaWYgKCcwJyA9PSBhcmd2WzFdWzBdKSB7CiAJCQkvKiBEaXNhYmxlIHdyaXRlIGFjY2Vzcy4gKi8KLQkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgMCk7CisJCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAwKTsKIAkJfSBlbHNlIHsKIAkJCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIDEpOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMSk7CiAJCX0KIAkJaWYgKHN0YXRlIDwgMCkgewogCQkJcHV0cyAoIlNldHVwIG9mIHdyaXRlIGFjY2VzcyBzdGF0ZSBmYWlsZWQuXG4iKTsKQEAgLTczNSw3ICs3MzUsNyBAQAogVV9CT09UX0NNRChlZXB3cmVuLAkyLAkwLAlkb19lZXBfd3JlbiwKIAkgICAiZWVwd3JlbiAtIEVuYWJsZSAvIGRpc2FibGUgLyBxdWVyeSBFRVBST00gd3JpdGUgYWNjZXNzXG4iLAogCSAgIE5VTEwpOwotI2VuZGlmIC8qICNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikgKi8KKyNlbmRpZiAvKiAjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKSAqLwogCiAKICNpZmRlZiBDT05GSUdfVklERU9fU001MDEKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9odWI0MDUvZmxhc2guYyBiL2JvYXJkL2VzZC9odWI0MDUvZmxhc2guYwppbmRleCA4OWFmMTE5Li4yNzRhZGE5IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvaHViNDA1L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL2h1YjQwNS9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiAJaW50IHNpemVfdmFsID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTEsNyArOTEsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL2h1YjQwNS9odWI0MDUuYyBiL2JvYXJkL2VzZC9odWI0MDUvaHViNDA1LmMKaW5kZXggMzhhNmY3YS4uODc4NWU2YyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL2h1YjQwNS9odWI0MDUuYworKysgYi9ib2FyZC9lc2QvaHViNDA1L2h1YjQwNS5jCkBAIC0xMjUsMjMgKzEyNSwyMyBAQAogCSAqIFNldCBSUzIzMi9SUzQyMiBjb250cm9sIChSUzIzMiA9IGhpZ2ggb24gR1BJTykKIAkgKi8KIAl2YWwgPSBpbjMyKEdQSU8wX09SKTsKLQl2YWwgJj0gfihDRkdfVUFSVDJfUlMyMzIgfCBDRkdfVUFSVDNfUlMyMzIgfCBDRkdfVUFSVDRfUlMyMzIgfCBDRkdfVUFSVDVfUlMyMzIpOworCXZhbCAmPSB+KENPTkZJR19TWVNfVUFSVDJfUlMyMzIgfCBDT05GSUdfU1lTX1VBUlQzX1JTMjMyIHwgQ09ORklHX1NZU19VQVJUNF9SUzIzMiB8IENPTkZJR19TWVNfVUFSVDVfUlMyMzIpOwogCiAJc3RyID0gZ2V0ZW52KCJwaHlzMCIpOwogCWlmICghc3RyIHx8IChzdHIgJiYgKHN0clswXSA9PSAnMCcpKSkKLQkJdmFsIHw9IENGR19VQVJUMl9SUzIzMjsKKwkJdmFsIHw9IENPTkZJR19TWVNfVUFSVDJfUlMyMzI7CiAKIAlzdHIgPSBnZXRlbnYoInBoeXMxIik7CiAJaWYgKCFzdHIgfHwgKHN0ciAmJiAoc3RyWzBdID09ICcwJykpKQotCQl2YWwgfD0gQ0ZHX1VBUlQzX1JTMjMyOworCQl2YWwgfD0gQ09ORklHX1NZU19VQVJUM19SUzIzMjsKIAogCXN0ciA9IGdldGVudigicGh5czIiKTsKIAlpZiAoIXN0ciB8fCAoc3RyICYmIChzdHJbMF0gPT0gJzAnKSkpCi0JCXZhbCB8PSBDRkdfVUFSVDRfUlMyMzI7CisJCXZhbCB8PSBDT05GSUdfU1lTX1VBUlQ0X1JTMjMyOwogCiAJc3RyID0gZ2V0ZW52KCJwaHlzMyIpOwogCWlmICghc3RyIHx8IChzdHIgJiYgKHN0clswXSA9PSAnMCcpKSkKLQkJdmFsIHw9IENGR19VQVJUNV9SUzIzMjsKKwkJdmFsIHw9IENPTkZJR19TWVNfVUFSVDVfUlMyMzI7CiAKIAlvdXQzMihHUElPMF9PUiwgdmFsKTsKIApAQCAtMTc0LDkgKzE3NCw5IEBACiAJLyoKIAkgKiBSZXNldCBleHRlcm5hbCBEVUFSVHMKIAkgKi8KLQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGhpZ2ggKi8KKwlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX0RVQVJUX1JTVCk7IC8qIHNldCByZXNldCB0byBoaWdoICovCiAJdWRlbGF5KDEwKTsgLyogd2FpdCAxMHVzICovCi0Jb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gbG93ICovCisJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGxvdyAqLwogCXVkZWxheSgxMDAwKTsgLyogd2FpdCAxbXMgKi8KIAogCS8qCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvbWVjcDUyMDAvbWVjcDUyMDAuYyBiL2JvYXJkL2VzZC9tZWNwNTIwMC9tZWNwNTIwMC5jCmluZGV4IGZmNDRhYmQuLjMxOTI0NTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9tZWNwNTIwMC9tZWNwNTIwMC5jCisrKyBiL2JvYXJkL2VzZC9tZWNwNTIwMC9tZWNwNTIwMC5jCkBAIC04MSw3ICs4MSw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC0xMDYsOSArMTA2LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTQzLDkgKzE0Myw5IEBACiAjaWYgMAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MxIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQlnZXRfcmFtX3NpemUoKHVsb25nICopIChDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQlnZXRfcmFtX3NpemUoKHVsb25nICopIChDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgwKTsKICNlbmRpZgogCS8qIHNldCBTRFJBTSBDUzEgc2l6ZSBhY2NvcmRpbmcgdG8gdGhlIGFtb3VudCBvZiBSQU0gZm91bmQgKi8KQEAgLTE3NSwxNCArMTc1LDE0IEBACiAKIHZvaWQgZmxhc2hfYWZ0ZXJpbml0KHVsb25nIHNpemUpCiB7Ci0JaWYgKHNpemUgPT0gQ0ZHX0ZMQVNIX1NJWkUpIHsKKwlpZiAoc2l6ZSA9PSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUpIHsKIAkJLyogYWRqdXN0IG1hcHBpbmcgKi8KIAkJKih2dV9sb25nICopIE1QQzVYWFhfQk9PVENTX1NUQVJUID0KIAkJICAgICoodnVfbG9uZyAqKSBNUEM1WFhYX0NTMF9TVEFSVCA9Ci0JCSAgICBTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8IHNpemUpOworCQkgICAgU1RBUlRfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUIHwgc2l6ZSk7CiAJCSoodnVfbG9uZyAqKSBNUEM1WFhYX0JPT1RDU19TVE9QID0KIAkJICAgICoodnVfbG9uZyAqKSBNUEM1WFhYX0NTMF9TVE9QID0KLQkJICAgIFNUT1BfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplLCBzaXplKTsKKwkJICAgIFNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUIHwgc2l6ZSwgc2l6ZSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2Qvb2NydGMvZmxhc2guYyBiL2JvYXJkL2VzZC9vY3J0Yy9mbGFzaC5jCmluZGV4IGMzZDhiZWMuLmU3NjNhODkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9vY3J0Yy9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9vY3J0Yy9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiAJaW50IHNpemVfdmFsID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcGNpNDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2QvcGNpNDA1L2ZsYXNoLmMKaW5kZXggM2IyMTc4MS4uOTA1ODQ4MyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BjaTQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC9wY2k0MDUvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wY2k0MDUvcGNpNDA1LmMgYi9ib2FyZC9lc2QvcGNpNDA1L3BjaTQwNS5jCmluZGV4IGY4ZDdjMjguLjRkYjcwNTIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wY2k0MDUvcGNpNDA1LmMKKysrIGIvYm9hcmQvZXNkL3BjaTQwNS9wY2k0MDUuYwpAQCAtNTcsMTEgKzU3LDExIEBACiAgKi8KICNpbmNsdWRlICIuLi9jb21tb24vZnBnYS5jIgogCi0jZGVmaW5lIEZQR0FfRE9ORV9TVEFURV9WMTEgKGluMzIoR1BJTzBfSVIpICYgQ0ZHX0ZQR0FfRE9ORSkKLSNkZWZpbmUgRlBHQV9ET05FX1NUQVRFX1YxMiAoaW4zMihHUElPMF9JUikgJiBDRkdfRlBHQV9ET05FX1YxMikKKyNkZWZpbmUgRlBHQV9ET05FX1NUQVRFX1YxMSAoaW4zMihHUElPMF9JUikgJiBDT05GSUdfU1lTX0ZQR0FfRE9ORSkKKyNkZWZpbmUgRlBHQV9ET05FX1NUQVRFX1YxMiAoaW4zMihHUElPMF9JUikgJiBDT05GSUdfU1lTX0ZQR0FfRE9ORV9WMTIpCiAKLSNkZWZpbmUgRlBHQV9JTklUX1NUQVRFX1YxMSAoaW4zMihHUElPMF9JUikgJiBDRkdfRlBHQV9JTklUKQotI2RlZmluZSBGUEdBX0lOSVRfU1RBVEVfVjEyIChpbjMyKEdQSU8wX0lSKSAmIENGR19GUEdBX0lOSVRfVjEyKQorI2RlZmluZSBGUEdBX0lOSVRfU1RBVEVfVjExIChpbjMyKEdQSU8wX0lSKSAmIENPTkZJR19TWVNfRlBHQV9JTklUKQorI2RlZmluZSBGUEdBX0lOSVRfU1RBVEVfVjEyIChpbjMyKEdQSU8wX0lSKSAmIENPTkZJR19TWVNfRlBHQV9JTklUX1YxMikKIAogCiBpbnQgYm9hcmRfcmV2aXNpb24odm9pZCkKQEAgLTEzOCw4ICsxMzgsOCBAQAogCSAqIEZpcnN0IHB1bGwgZnBnYS1wcmcgcGluIGxvdywgdG8gZGlzYWJsZSBmcGdhIGxvZ2ljIChvbiB2ZXJzaW9uIDEuMiBib2FyZCkKIAkgKi8KIAlvdXQzMihHUElPMF9PRFIsIDB4MDAwMDAwMDApOyAgICAgICAgLyogbm8gb3BlbiBkcmFpbiBwaW5zICAgICAgKi8KLQlvdXQzMihHUElPMF9UQ1IsIENGR19GUEdBX1BSRyk7ICAgICAgLyogc2V0dXAgZm9yIG91dHB1dCAgICAgICAgKi8KLQlvdXQzMihHUElPMF9PUiwgIENGR19GUEdBX1BSRyk7ICAgICAgLyogc2V0IG91dHB1dCBwaW5zIHRvIGhpZ2ggKi8KKwlvdXQzMihHUElPMF9UQ1IsIENPTkZJR19TWVNfRlBHQV9QUkcpOyAgICAgIC8qIHNldHVwIGZvciBvdXRwdXQgICAgICAgICovCisJb3V0MzIoR1BJTzBfT1IsICBDT05GSUdfU1lTX0ZQR0FfUFJHKTsgICAgICAvKiBzZXQgb3V0cHV0IHBpbnMgdG8gaGlnaCAqLwogCW91dDMyKEdQSU8wX09SLCAwKTsgICAgICAgICAgICAgICAgICAvKiBwdWxsIHByZyBsb3cgICAgICAgICAgICAqLwogCiAJLyoKQEAgLTIwNSw4ICsyMDUsOCBAQAogCSAqIEZQR0EgY2FuIGJlIGd6aXAgY29tcHJlc3NlZCAobWFsbG9jKSBhbmQgYm9vdGVkIHRoaXMgbGF0ZS4KIAkgKi8KIAotCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JaWYgKGd1bnppcCAoZHN0LCBDRkdfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKKwlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwlpZiAoZ3VuemlwIChkc3QsIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKIAkJcHJpbnRmICgiR1VOWklQIEVSUk9SIC0gbXVzdCBSRVNFVCBib2FyZCB0byByZWNvdmVyXG4iKTsKIAkJZG9fcmVzZXQgKE5VTEwsIDAsIDAsIE5VTEwpOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wZjUyMDAvZmxhc2guYyBiL2JvYXJkL2VzZC9wZjUyMDAvZmxhc2guYwppbmRleCA4MTc4YjU2Li45ODUwNDQ1IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcGY1MjAwL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL3BmNTIwMC9mbGFzaC5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgRkxBU0hfUE9SVF9XSURUSDsKIHR5cGVkZWYgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgRkxBU0hfUE9SVF9XSURUSFY7CkBAIC02MCw3ICs2MCw3IEBACiAJZXh0ZXJuIHZvaWQgZmxhc2hfcHJlaW5pdCh2b2lkKTsKIAlleHRlcm4gdm9pZCBmbGFzaF9hZnRlcmluaXQodWludCwgdWxvbmcsIHVsb25nKTsKIAotCXVsb25nIGZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCXVsb25nIGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCWZsYXNoX3ByZWluaXQoKTsKIApAQCAtNjksMTEgKzY5LDExIEBACiAJZmxhc2hfaW5mb1tpXS5zaXplID0gZmxhc2hfZ2V0X3NpemUoKEZQVyAqKSBmbGFzaGJhc2UsICZmbGFzaF9pbmZvW2ldKTsKIAlzaXplICs9IGZsYXNoX2luZm9baV0uc2l6ZTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKLQkJICAgICAgZmxhc2hfZ2V0X2luZm8oQ0ZHX01PTklUT1JfQkFTRSkpOworCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZiAgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTA3LDE0ICsxMDcsMTQgQEAKIAlpbnQgaTsKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJaW5mbyA9ICZmbGFzaF9pbmZvW2ldOwogCQlpZiAoKGluZm8tPnNpemUpICYmIChpbmZvLT5zdGFydFswXSA8PSBiYXNlKQogCQkgICAgJiYgKGJhc2UgPD0gaW5mby0+c3RhcnRbMF0gKyBpbmZvLT5zaXplIC0gMSkpIHsKIAkJCWJyZWFrOwogCQl9CiAJfQotCXJldHVybiAoaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm8pOworCXJldHVybiAoaSA9PSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvKTsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzM2LDcgKzMzNiw3IEBACiAJCXVkZWxheSgxMDAwKTsKIAogCQl3aGlsZSAoKCphZGRyICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCQlpZiAoaW50ZWwpIHsKIAkJCQkJLyogc3VzcGVuZCBlcmFzZSAgICAgICAgKi8KQEAgLTM0NywxNCArMzQ3LDE0IEBACiAJCQkJYnJlYWs7CiAJCQl9CiAJCQkvKiBzaG93IHRoYXQgd2UncmUgd2FpdGluZyAqLwotCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ0ZHX0haKSB7CisJCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDT05GSUdfU1lTX0haKSB7CiAJCQkJLyogZXZlcnkgc2Vjb25kICovCiAJCQkJcHV0YygnLicpOwogCQkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CiAJCQl9CiAJCX0KIAkJLyogc2hvdyB0aGF0IHdlJ3JlIHdhaXRpbmcgKi8KLQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ0ZHX0haKSB7CisJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsKIAkJCS8qIGV2ZXJ5IHNlY29uZCAqLwogCQkJcHV0YygnLicpOwogCQkJbGFzdCA9IGdldF90aW1lcigwKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAocmVzID09IDAKIAkgICAgICAgJiYgKCpkZXN0ICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKSAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqZGVzdCA9IChGUFcpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wZjUyMDAvcGY1MjAwLmMgYi9ib2FyZC9lc2QvcGY1MjAwL3BmNTIwMC5jCmluZGV4IGM0YzAyMjEuLmY3OTYyYWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wZjUyMDAvcGY1MjAwLmMKKysrIGIvYm9hcmQvZXNkL3BmNTIwMC9wZjUyMDAuYwpAQCAtODEsNyArODEsNyBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKiAgICAgICAgICAgIHVzZSBvZiBDRkdfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDRkdfU0RSQU1fQkFTRQorICogICAgICAgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICogICAgICAgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIApAQCAtMTA2LDkgKzEwNiw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKQEAgLTE0NCw5ICsxNDQsOSBAQAogI2lmIDAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCWdldF9yYW1fc2l6ZSgodWxvbmcgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JZ2V0X3JhbV9zaXplKCh1bG9uZyAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCWdldF9yYW1fc2l6ZSgodWxvbmcgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMCk7CiAjZW5kaWYKIAkvKiBzZXQgU0RSQU0gQ1MxIHNpemUgYWNjb3JkaW5nIHRvIHRoZSBhbW91bnQgb2YgUkFNIGZvdW5kICovCkBAIC0xODAsMTAgKzE4MCwxMCBAQAogCQkvKiBhZGp1c3QgbWFwcGluZyAqLwogCQkqKHZ1X2xvbmcgKikgTVBDNVhYWF9CT09UQ1NfU1RBUlQgPQogCQkgICAgKih2dV9sb25nICopIE1QQzVYWFhfQ1MwX1NUQVJUID0KLQkJICAgIFNUQVJUX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSk7CisJCSAgICBTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplKTsKIAkJKih2dV9sb25nICopIE1QQzVYWFhfQk9PVENTX1NUT1AgPQogCQkgICAgKih2dV9sb25nICopIE1QQzVYWFhfQ1MwX1NUT1AgPQotCQkgICAgU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8IHNpemUsIHNpemUpOworCQkgICAgU1RPUF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplLCBzaXplKTsKIAl9CiB9CiAKQEAgLTI1OCwxMCArMjU4LDEwIEBACiAJCSoodnVfbG9uZyAqKSBNUEM1WFhYX1NJTVBMRUlPX0dQSU9fREFUQV9PVVRQVVQgfD0gR1BJT19VU0IwOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCX0KLQkqKHZ1X2NoYXIgKikgQ0ZHX0NTMV9TVEFSVCA9IDB4MDI7CS8qIFJlZCBQb3dlciBMRUQgb24gKi8KKwkqKHZ1X2NoYXIgKikgQ09ORklHX1NZU19DUzFfU1RBUlQgPSAweDAyOwkvKiBSZWQgUG93ZXIgTEVEIG9uICovCiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAotCSoodnVfY2hhciAqKSAoQ0ZHX0NTMV9TVEFSVCArIDEpID0gMHgwMjsJLyogRGlzYWJsZSBkcml2ZXIgZm9yIEtCMTEgKi8KKwkqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfQ1MxX1NUQVJUICsgMSkgPSAweDAyOwkvKiBEaXNhYmxlIGRyaXZlciBmb3IgS0IxMSAqLwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wbHU0MDUvZmxhc2guYyBiL2JvYXJkL2VzZC9wbHU0MDUvZmxhc2guYwppbmRleCA4OWFmMTE5Li4yNzRhZGE5IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcGx1NDA1L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL3BsdTQwNS9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiAJaW50IHNpemVfdmFsID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTEsNyArOTEsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3BsdTQwNS9wbHU0MDUuYyBiL2JvYXJkL2VzZC9wbHU0MDUvcGx1NDA1LmMKaW5kZXggM2RiOWMwYS4uNjExODZhOCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BsdTQwNS9wbHU0MDUuYworKysgYi9ib2FyZC9lc2QvcGx1NDA1L3BsdTQwNS5jCkBAIC0xMTMsOCArMTEzLDggQEAKIAlnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgPSAwIC0gZ2QtPmJkLT5iaV9mbGFzaHNpemU7CiAJZ2QtPmJkLT5iaV9mbGFzaG9mZnNldCA9IDA7CiAKLQlkc3QgPSBtYWxsb2MoQ0ZHX0ZQR0FfTUFYX1NJWkUpOwotCWlmIChndW56aXAgKGRzdCwgQ0ZHX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CisJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSk7CisJaWYgKGd1bnppcCAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZiAoIkdVTlpJUCBFUlJPUiAtIG11c3QgUkVTRVQgYm9hcmQgdG8gcmVjb3ZlclxuIik7CiAJCWRvX3Jlc2V0IChOVUxMLCAwLCAwLCBOVUxMKTsKIAl9CkBAIC0xNzksMjMgKzE3OSwyMyBAQAogCS8qCiAJICogUmVzZXQgZXh0ZXJuYWwgRFVBUlRzCiAJICovCi0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfRFVBUlRfUlNUKTsKKwlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfRFVBUlRfUlNUKTsKIAl1ZGVsYXkoMTApOwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNGR19EVUFSVF9SU1QpOworCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfRFVBUlRfUlNUKTsKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKgogCSAqIFNldCBOQU5ELUZMQVNIIEdQSU8gc2lnbmFscyB0byBkZWZhdWx0CiAJICovCiAJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfihDRkdfTkFORF9DTEUgfCBDRkdfTkFORF9BTEUpKTsKLQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENGR19OQU5EX0NFKTsKKwkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH4oQ09ORklHX1NZU19OQU5EX0NMRSB8IENPTkZJR19TWVNfTkFORF9BTEUpKTsKKwlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORF9DRSk7CiAKIAkvKgogCSAqIFNldHVwIEVFUFJPTSB3cml0ZSBwcm90ZWN0aW9uCiAJICovCi0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfRUVQUk9NX1dQKTsKLQlvdXRfYmUzMigodm9pZCopR1BJTzBfVENSLCBpbl9iZTMyKCh2b2lkKilHUElPMF9UQ1IpIHwgQ0ZHX0VFUFJPTV9XUCk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0VFUFJPTV9XUCk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX1RDUiwgaW5fYmUzMigodm9pZCopR1BJTzBfVENSKSB8IENPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAogCS8qCiAJICogRW5hYmxlIGludGVycnVwdHMgaW4gZXhhciBkdWFydCBtY3JbM10KQEAgLTIzMCwxNSArMjMwLDE1IEBACiB2b2lkIGlkZV9zZXRfcmVzZXQoaW50IG9uKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICpmcGdhX21vZGUgPQotCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNGR19GUEdBX0JBU0VfQUREUiArIENGR19GUEdBX0NUUkwpOworCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCk7CiAKIAkvKgogCSAqIEFzc2VydCBvciBkZWFzc2VydCBDb21wYWN0Rmxhc2ggUmVzZXQgUGluCiAJICovCiAJaWYgKG9uKSB7CQkvKiBhc3NlcnQgUkVTRVQgKi8KLQkJKmZwZ2FfbW9kZSAmPSB+KENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQpOworCQkqZnBnYV9tb2RlICY9IH4oQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUkVTRVQpOwogCX0gZWxzZSB7CQkvKiByZWxlYXNlIFJFU0VUICovCi0JCSpmcGdhX21vZGUgfD0gQ0ZHX0ZQR0FfQ1RSTF9DRl9SRVNFVDsKKwkJKmZwZ2FfbW9kZSB8PSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9SRVNFVDsKIAl9CiB9CiAjZW5kaWYgLyogQ09ORklHX0lERV9SRVNFVCAqLwpAQCAtMjU0LDcgKzI1NCw3IEBACiAjZW5kaWYKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIC8qIElucHV0OiA8ZGV2X2FkZHI+ICBJMkMgYWRkcmVzcyBvZiBFRVBST00gZGV2aWNlIHRvIGVuYWJsZS4KICAqICAgICAgICAgPHN0YXRlPiAgICAgLTE6IGRlbGl2ZXIgY3VycmVudCBzdGF0ZQogICoJICAgICAgICAgICAgICAgMDogZGlzYWJsZSB3cml0ZQpAQCAtMjY1LDI2ICsyNjUsMjYgQEAKICAqLwogaW50IGVlcHJvbV93cml0ZV9lbmFibGUgKHVuc2lnbmVkIGRldl9hZGRyLCBpbnQgc3RhdGUpCiB7Ci0JaWYgKENGR19JMkNfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpIHsKKwlpZiAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgIT0gZGV2X2FkZHIpIHsKIAkJcmV0dXJuIC0xOwogCX0gZWxzZSB7CiAJCXN3aXRjaCAoc3RhdGUpIHsKIAkJY2FzZSAxOgogCQkJLyogRW5hYmxlIHdyaXRlIGFjY2VzcywgY2xlYXIgYml0IEdQSU8wLiAqLwogCQkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLAotCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q0ZHX0VFUFJPTV9XUCk7CisJCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAJCQlzdGF0ZSA9IDA7CiAJCQlicmVhazsKIAkJY2FzZSAwOgogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MsIHNldCBiaXQgR1BJTzAuICovCiAJCQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsCi0JCQkJIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENGR19FRVBST01fV1ApOworCQkJCSBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0VFUFJPTV9XUCk7CiAJCQlzdGF0ZSA9IDA7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIFJlYWQgY3VycmVudCBzdGF0dXMgYmFjay4gKi8KIAkJCXN0YXRlID0gKDAgPT0gKGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmCi0JCQkJICAgICAgIENGR19FRVBST01fV1ApKTsKKwkJCQkgICAgICAgQ09ORklHX1NZU19FRVBST01fV1ApKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtMjk4LDIxICsyOTgsMjEgQEAKIAogCWlmIChxdWVyeSkgewogCQkvKiBRdWVyeSB3cml0ZSBhY2Nlc3Mgc3RhdGUuICovCi0JCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgLTEpOworCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAtMSk7CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJRdWVyeSBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CiAJCX0gZWxzZSB7CiAJCQlwcmludGYgKCJXcml0ZSBhY2Nlc3MgZm9yIGRldmljZSAweCUweCBpcyAlc2FibGVkLlxuIiwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSLCBzdGF0ZSA/ICJlbiIgOiAiZGlzIik7CisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKIAkJCXN0YXRlID0gMDsKIAkJfQogCX0gZWxzZSB7CiAJCWlmICgnMCcgPT0gYXJndlsxXVswXSkgewogCQkJLyogRGlzYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIDApOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCk7CiAJCX0gZWxzZSB7CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAxKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDEpOwogCQl9CiAJCWlmIChzdGF0ZSA8IDApIHsKIAkJCXB1dHMgKCJTZXR1cCBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CkBAIC0zMjUsNCArMzI1LDQgQEAKIFVfQk9PVF9DTUQoZWVwd3JlbiwJMiwJMCwJZG9fZWVwX3dyZW4sCiAJICAgImVlcHdyZW4gLSBFbmFibGUgLyBkaXNhYmxlIC8gcXVlcnkgRUVQUk9NIHdyaXRlIGFjY2Vzc1xuIiwKIAkgICBOVUxMKTsKLSNlbmRpZiAvKiAjaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pICovCisjZW5kaWYgLyogI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wbWM0MDUvcG1jNDA1LmMgYi9ib2FyZC9lc2QvcG1jNDA1L3BtYzQwNS5jCmluZGV4IDkwYTIxMmIuLmMwNzgxZGMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wbWM0MDUvcG1jNDA1LmMKKysrIGIvYm9hcmQvZXNkL3BtYzQwNS9wbWM0MDUuYwpAQCAtNzIsMjMgKzcyLDIzIEBACiAJICogU2V0dXAgR1BJTyBwaW5zCiAJICovCiAKLQltdGRjcihjbnRybDAsIG1mZGNyKGNudHJsMCkgfCAoKENGR19GUEdBX0lOSVQgfCBcCi0JCQkJCUNGR19GUEdBX0RPTkUgfCBcCi0JCQkJCUNGR19YRVJFQURZIHwgXAotCQkJCQlDRkdfTk9OTU9OQVJDSCB8IFwKLQkJCQkJQ0ZHX1JFVjFfMikgPDwgNSkpOworCW10ZGNyKGNudHJsMCwgbWZkY3IoY250cmwwKSB8ICgoQ09ORklHX1NZU19GUEdBX0lOSVQgfCBcCisJCQkJCUNPTkZJR19TWVNfRlBHQV9ET05FIHwgXAorCQkJCQlDT05GSUdfU1lTX1hFUkVBRFkgfCBcCisJCQkJCUNPTkZJR19TWVNfTk9OTU9OQVJDSCB8IFwKKwkJCQkJQ09ORklHX1NZU19SRVYxXzIpIDw8IDUpKTsKIAotCWlmICghKGluMzIoR1BJTzBfSVIpICYgQ0ZHX1JFVjFfMikpIHsKKwlpZiAoIShpbjMyKEdQSU8wX0lSKSAmIENPTkZJR19TWVNfUkVWMV8yKSkgewogCQkvKiByZXYgMS4yIGJvYXJkcyAqLwotCQltdGRjcihjbnRybDAsIG1mZGNyKGNudHJsMCkgfCAoKENGR19JTlRBX0ZBS0UgfCBcCi0JCQkJCQlDRkdfU0VMRl9SU1QpIDw8IDUpKTsKKwkJbXRkY3IoY250cmwwLCBtZmRjcihjbnRybDApIHwgKChDT05GSUdfU1lTX0lOVEFfRkFLRSB8IFwKKwkJCQkJCUNPTkZJR19TWVNfU0VMRl9SU1QpIDw8IDUpKTsKIAl9CiAKIAlvdXQzMihHUElPMF9PUiwgMCk7Ci0Jb3V0MzIoR1BJTzBfVENSLCBDRkdfRlBHQV9QUkcgfCBDRkdfRlBHQV9DTEsgfCBDRkdfRlBHQV9EQVRBIHwgQ0ZHX1hFUkVBRFkpOyAvKiBzZXR1cCBmb3Igb3V0cHV0ICovCisJb3V0MzIoR1BJTzBfVENSLCBDT05GSUdfU1lTX0ZQR0FfUFJHIHwgQ09ORklHX1NZU19GUEdBX0NMSyB8IENPTkZJR19TWVNfRlBHQV9EQVRBIHwgQ09ORklHX1NZU19YRVJFQURZKTsgLyogc2V0dXAgZm9yIG91dHB1dCAqLwogCiAJLyogLSBjaGVjayBpZiByZXYxXzIgaXMgbG93LCB0aGVuOgotCSAqIC0gc2V0L3Jlc2V0IENGR19JTlRBX0ZBS0UvQ0ZHX1NFTEZfUlNUIGluIFRDUiB0byBhc3NlcnQgSU5UQSMgb3IgU0VMRlJTVCMKKwkgKiAtIHNldC9yZXNldCBDT05GSUdfU1lTX0lOVEFfRkFLRS9DT05GSUdfU1lTX1NFTEZfUlNUIGluIFRDUiB0byBhc3NlcnQgSU5UQSMgb3IgU0VMRlJTVCMKIAkgKi8KIAogCXJldHVybiAwOwpAQCAtMTA0LDcgKzEwNCw3IEBACiAJZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0ID0gMCAtIGdkLT5iZC0+YmlfZmxhc2hzaXplOwogCWdkLT5iZC0+YmlfZmxhc2hvZmZzZXQgPSAwOwogCi0Jb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX1hFUkVBRFkpOyAvKiBkZWFzc2VydCBFUkVBRFkjICovCisJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19YRVJFQURZKTsgLyogZGVhc3NlcnQgRVJFQURZIyAqLwogCXJldHVybiAoMCk7CiB9CiAKQEAgLTExMiwxMyArMTEyLDEzIEBACiB7CiAJdWxvbmcgdmFsOwogCXZhbCA9IGluMzIoR1BJTzBfSVIpOwotCWlmICghKHZhbCAmIENGR19SRVYxXzIpKSB7IC8qIGxvdz1yZXYxLjIgKi8KLQkJaWYgKHZhbCAmIENGR19OT05NT05BUkNIKSB7IC8qIG1vbmFyY2gjIHNpZ25hbCAqLwotCQkJcmV0dXJuIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEX05PTk1PTkFSQ0g7CisJaWYgKCEodmFsICYgQ09ORklHX1NZU19SRVYxXzIpKSB7IC8qIGxvdz1yZXYxLjIgKi8KKwkJaWYgKHZhbCAmIENPTkZJR19TWVNfTk9OTU9OQVJDSCkgeyAvKiBtb25hcmNoIyBzaWduYWwgKi8KKwkJCXJldHVybiBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSURfTk9OTU9OQVJDSDsKIAkJfQotCQlyZXR1cm4gQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSURfTU9OQVJDSDsKKwkJcmV0dXJuIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRF9NT05BUkNIOwogCX0KLQlyZXR1cm4gQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSURfTk9OTU9OQVJDSDsKKwlyZXR1cm4gQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEX05PTk1PTkFSQ0g7CiB9CiAKIC8qCkBAIC0xNDAsOSArMTQwLDkgQEAKIAl9CiAKIAl2YWwgPSBpbjMyKEdQSU8wX0lSKTsKLQlpZiAoISh2YWwgJiBDRkdfUkVWMV8yKSkgeyAvKiBsb3c9cmV2MS4yICovCisJaWYgKCEodmFsICYgQ09ORklHX1NZU19SRVYxXzIpKSB7IC8qIGxvdz1yZXYxLjIgKi8KIAkJcHV0cygiIHJldjEuMiAoIik7Ci0JCWlmICh2YWwgJiBDRkdfTk9OTU9OQVJDSCkgeyAvKiBtb25hcmNoIyBzaWduYWwgKi8KKwkJaWYgKHZhbCAmIENPTkZJR19TWVNfTk9OTU9OQVJDSCkgeyAvKiBtb25hcmNoIyBzaWduYWwgKi8KIAkJCXB1dHMoIm5vbi0iKTsKIAkJfQogCQlwdXRzKCJtb25hcmNoKSIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3BtYzQ0MC9jbWRfcG1jNDQwLmMgYi9ib2FyZC9lc2QvcG1jNDQwL2NtZF9wbWM0NDAuYwppbmRleCA3NGNmNGMzLi4zOGVlNzRlIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcG1jNDQwL2NtZF9wbWM0NDAuYworKysgYi9ib2FyZC9lc2QvcG1jNDQwL2NtZF9wbWM0NDAuYwpAQCAtMzIzLDcgKzMyMyw3IEBACiAJfQogCiAJcHJpbnRmKCJXcml0aW5nIGJvb3QgRUVQUk9NIC4uLlxuIik7Ci0JaWYgKGJvb3RzdHJhcF9lZXByb21fd3JpdGUoQ0ZHX0kyQ19CT09UX0VFUFJPTV9BRERSLAorCWlmIChib290c3RyYXBfZWVwcm9tX3dyaXRlKENPTkZJR19TWVNfSTJDX0JPT1RfRUVQUk9NX0FERFIsCiAJCQkJICAgMCwgKHVjaGFyKilzZHNkcCwgY291bnQpICE9IDApCiAJCXByaW50ZigiYm9vdHN0cmFwX2VlcHJvbV93cml0ZSBmYWlsZWRcbiIpOwogCWVsc2UKQEAgLTUxMyw3ICs1MTMsNyBAQAogCSI8cGNpYWRkcj4gKHBjaWFkZHIgd2lsbCBiZSBhbGlnbmVkIHRvIDI1Nk1CKVxuIgogCSk7CiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiBpbnQgZG9fZWVwX3dyZW4oY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJaW50IHF1ZXJ5ID0gYXJnYyA9PSAxOwpAQCAtNTIxLDIxICs1MjEsMjEgQEAKIAogCWlmIChxdWVyeSkgewogCQkvKiBRdWVyeSB3cml0ZSBhY2Nlc3Mgc3RhdGUuICovCi0JCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDRkdfSTJDX0VFUFJPTV9BRERSLCAtMSk7CisJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgLTEpOwogCQlpZiAoc3RhdGUgPCAwKSB7CiAJCQlwdXRzKCJRdWVyeSBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CiAJCX0gZWxzZSB7CiAJCQlwcmludGYoIldyaXRlIGFjY2VzcyBmb3IgZGV2aWNlIDB4JTB4IGlzICVzYWJsZWQuXG4iLAotCQkJICAgICAgIENGR19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKKwkJCSAgICAgICBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgc3RhdGUgPyAiZW4iIDogImRpcyIpOwogCQkJc3RhdGUgPSAwOwogCQl9CiAJfSBlbHNlIHsKIAkJaWYgKCcwJyA9PSBhcmd2WzFdWzBdKSB7CiAJCQkvKiBEaXNhYmxlIHdyaXRlIGFjY2Vzcy4gKi8KLQkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDRkdfSTJDX0VFUFJPTV9BRERSLCAwKTsKKwkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZShDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCk7CiAJCX0gZWxzZSB7CiAJCQkvKiBFbmFibGUgd3JpdGUgYWNjZXNzLiAqLwotCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlKENGR19JMkNfRUVQUk9NX0FERFIsIDEpOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAxKTsKIAkJfQogCQlpZiAoc3RhdGUgPCAwKSB7CiAJCQlwdXRzKCJTZXR1cCBvZiB3cml0ZSBhY2Nlc3Mgc3RhdGUgZmFpbGVkLlxuIik7CkBAIC01NDcsNiArNTQ3LDYgQEAKIFVfQk9PVF9DTUQoZWVwd3JlbiwgMiwgMCwgZG9fZWVwX3dyZW4sCiAJICAgImVlcHdyZW4gLSBFbmFibGUgLyBkaXNhYmxlIC8gcXVlcnkgRUVQUk9NIHdyaXRlIGFjY2Vzc1xuIiwKIAkgICBOVUxMKTsKLSNlbmRpZiAvKiAjaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pICovCisjZW5kaWYgLyogI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikgKi8KIAogI2VuZGlmIC8qIENPTkZJR19DTURfQlNQICovCmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcG1jNDQwL2NvbmZpZy5tayBiL2JvYXJkL2VzZC9wbWM0NDAvY29uZmlnLm1rCmluZGV4IGU2MmI4ZDMuLjBjNGQ1ODIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wbWM0NDAvY29uZmlnLm1rCisrKyBiL2JvYXJkL2VzZC9wbWM0NDAvY29uZmlnLm1rCkBAIC0zNyw1ICszNyw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3BtYzQ0MC9pbml0LlMgYi9ib2FyZC9lc2QvcG1jNDQwL2luaXQuUwppbmRleCAxNDhhZjcxLi4yNmE4MjgyIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcG1jNDQwL2luaXQuUworKysgYi9ib2FyZC9lc2QvcG1jNDQwL2luaXQuUwpAQCAtNDQsMjggKzQ0LDI4IEBACiAJICogc3BlZWQgdXAgYm9vdCBwcm9jZXNzLiBJdCBpcyBwYXRjaGVkIGFmdGVyIHJlbG9jYXRpb24gdG8gZW5hYmxlIFNBX0kKIAkgKi8KICNpZm5kZWYgQ09ORklHX05BTkRfU1BMCi0JdGxiZW50cnkoIENGR19CT09UX0JBU0VfQUREUiwgU1pfMjU2TSwgQ0ZHX0JPT1RfQkFTRV9BRERSLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgU1pfMjU2TSwgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCiAjZWxzZQotCXRsYmVudHJ5KCBDRkdfTkFORF9CT09UX1NQTF9TUkMsIFNaXzRLLCBDRkdfTkFORF9CT09UX1NQTF9TUkMsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDLCBTWl80SywgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQywgMSwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCiAjZW5kaWYKIAogCS8qIFRMQi1lbnRyeSBmb3IgRERSIFNEUkFNIChVcCB0byAyR0IpICovCiAjaWZkZWYgQ09ORklHXzR4eF9EQ0FDSEUKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENGR19TRFJBTV9CQVNFLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKICNlbHNlCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDRkdfU0RSQU1fQkFTRSwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAjZW5kaWYKIAotI2lmZGVmIENGR19JTklUX1JBTV9EQ0FDSEUKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQogCS8qIFRMQi1lbnRyeSBmb3IgaW5pdC1yYW0gaW4gZGNhY2hlIChTQV9JIG11c3QgYmUgdHVybmVkIG9mZiEpICovCi0JdGxiZW50cnkoIENGR19JTklUX1JBTV9BRERSLCBTWl82NEssIENGR19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBTWl82NEssIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCiAjZW5kaWYKIAogCS8qIFRMQi1lbnRyeSBmb3IgUENJIE1lbW9yeSAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTEsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UyLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMywgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogVExCLWVudHJpZXMgZm9yIEVCQyAqLwogCS8qIFBNQzQ0MCBtYXBzIEVCQyB0byAweGVmMDAwMDAwIHdoaWNoIGlzIGhhbmRsZWQgYnkgdGhlIHBlcmlwaGVyYWwKQEAgLTc2LDcgKzc2LDcgQEAKIAl0bGJlbnRyeSggMHhjMDAwMDAwMCwgU1pfMjU2TSwgMHhjMDAwMDAwMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyeSBmb3IgTkFORCAqLwotCXRsYmVudHJ5KCBDRkdfTkFORF9BRERSLCBTWl8xSywgQ0ZHX05BTkRfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19OQU5EX0FERFIsIFNaXzFLLCBDT05GSUdfU1lTX05BTkRfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCS8qIFRMQi1lbnRyeSBmb3IgSW50ZXJuYWwgUmVnaXN0ZXJzICYgT0NNICovCiAJdGxiZW50cnkoIDB4ZTAwMDAwMDAsIFNaXzE2TSwgMHhlMDAwMDAwMCwgMCwgIEFDX1J8QUNfV3xBQ19YfFNBX0kgKQpAQCAtOTgsOCArOTgsOCBAQAogCSAqIEZvciBOQU5EIGJvb3RpbmcgdGhlIGZpcnN0IFRMQiBoYXMgdG8gYmUgcmVjb25maWd1cmVkIHRvIGZ1bGwgc2l6ZQogCSAqIGFuZCB3aXRoIGNhY2hpbmcgZGlzYWJsZWQgYWZ0ZXIgcnVubmluZyBmcm9tIFJBTSEKIAkgKi8KLSNkZWZpbmUgVExCMDAJVExCMChDRkdfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0pCi0jZGVmaW5lIFRMQjAxCVRMQjEoQ0ZHX0JPT1RfQkFTRV9BRERSLCAxKQorI2RlZmluZSBUTEIwMAlUTEIwKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0pCisjZGVmaW5lIFRMQjAxCVRMQjEoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMSkKICNkZWZpbmUgVExCMDIJVExCMihBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCiAKIAkuZ2xvYmwJcmVjb25maWdfdGxiMApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3BtYzQ0MC9wbWM0NDAuYyBiL2JvYXJkL2VzZC9wbWM0NDAvcG1jNDQwLmMKaW5kZXggODVlZjI2Zi4uMDEzODE1ZSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BtYzQ0MC9wbWM0NDAuYworKysgYi9ib2FyZC9lc2QvcG1jNDQwL3BtYzQ0MC5jCkBAIC00NCw3ICs0NCw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiB1bG9uZyBmbGFzaF9nZXRfc2l6ZSh1bG9uZyBiYXNlLCBpbnQgYmFua251bSk7CiBpbnQgcGNpX2lzXzY2bWh6KHZvaWQpOwpAQCAtNzEsNyArNzEsNyBAQAogCQkvKiBtYXJrIHNjcmF0Y2hyZWcgdmFsaWQgKi8KIAkJc2NyYXRjaHJlZyA9IChzY3JhdGNocmVnICYgMHhmZmZmZmYwMCkgfCAweDgwOwogCi0JCWkgPSBib290c3RyYXBfZWVwcm9tX3JlYWQoQ0ZHX0kyQ19CT09UX0VFUFJPTV9BRERSLAorCQlpID0gYm9vdHN0cmFwX2VlcHJvbV9yZWFkKENPTkZJR19TWVNfSTJDX0JPT1RfRUVQUk9NX0FERFIsCiAJCQkJCSAgMHgxMCwgYnVmLCA0KTsKIAkJaWYgKChpICE9IC0xKSAmJiAoYnVmWzBdID09IDB4MTkpICYmIChidWZbMV0gPT0gMHg3NSkpIHsKIAkJCXNjcmF0Y2hyZWcgfD0gYnVmWzJdOwpAQCAtMTAzLDcgKzEwMyw3IEBACiAKIAkvKgogCSAqIFNldHVwIHRoZSBHUElPIHBpbnMKLQkgKiBUT0RPOiBzZXR1cCBHUElPcyB2aWEgQ0ZHXzR4eF9HUElPX1RBQkxFIGluIGJvYXJkJ3MgY29uZmlnIGZpbGUKKwkgKiBUT0RPOiBzZXR1cCBHUElPcyB2aWEgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSBpbiBib2FyZCdzIGNvbmZpZyBmaWxlCiAJICovCiAJb3V0MzIoR1BJTzBfT1IsICAgIDB4NDAwMDAwMDIpOwogCW91dDMyKEdQSU8wX1RDUiwgICAweDRjOTAwMTFmKTsKQEAgLTE5MCw3ICsxOTAsNyBAQAogCQlTRFIwX0NVU1QwX05ERkNfRU5BQkxFCQl8CiAJCVNEUjBfQ1VTVDBfTkRGQ19CV184X0JJVAl8CiAJCVNEUjBfQ1VTVDBfTkRGQ19BUkVfTUFTSwl8Ci0JCSgweDgwMDAwMDAwID4+ICgyOCArIENGR19OQU5EX0NTKSk7CisJCSgweDgwMDAwMDAwID4+ICgyOCArIENPTkZJR19TWVNfTkFORF9DUykpOwogCW10c2RyKFNEUjBfQ1VTVDAsIHNkcjBfY3VzdDApOwogCiAJcmV0dXJuIDA7CkBAIC0yNDIsNyArMjQyLDcgQEAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApAQCAtNDk4LDcgKzQ5OCw3IEBACiAgKiBpbmJvdW5kIG1hcCAoUElNKS4gQnV0IHRoZSBib290c3RyYXAgY29uZmlnIGNob2ljZXMgYXJlIGxpbWl0ZWQgYW5kCiAgKiBtYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJY2hhciAqcHRtbGFfc3RyLCAqcHRtbXNfc3RyOwpAQCAtNTE2LDggKzUxNiw4IEBACiAJICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgKi8KIAkJCQkJCS8qIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0wTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENGR19QQ0lfTUVNQkFTRSk7IC8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOyAvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweGMwMDAwMDAxKTsJLyogMUcgKyBObyBwcmVmZXRjaGluZywgKi8KIAkJCQkJCS8qIGFuZCBlbmFibGUgcmVnaW9uICovCkBAIC01NjMsNyArNTYzLDcgQEAKIAogCS8qIFByb2dyYW0gdGhlIGJvYXJkJ3MgdmVuZG9yIGlkICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELAotCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCQkJICAgICAgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKIAogCS8qIGRpc2FibGVkIGZvciBQTUM0MDUgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqLwogCS8qIENvbmZpZ3VyZSBjb21tYW5kIHJlZ2lzdGVyIGFzIGJ1cyBtYXN0ZXIgKi8KQEAgLTU4MSw5ICs1ODEsOSBAQAogCWlmICghaXNfbW9uYXJjaCgpKSB7CiAJCS8qIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL2NsYXNzY29kZSAqLwogCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwKLQkJCQkgICAgICBDRkdfUENJX1NVQlNZU19JRF9OT05NT05BUkNIKTsKKwkJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSURfTk9OTU9OQVJDSCk7CiAJCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ0xBU1NfU1VCX0NPREUsCi0JCQkJICAgICAgQ0ZHX1BDSV9DTEFTU0NPREVfTk9OTU9OQVJDSCk7CisJCQkJICAgICAgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFX05PTk1PTkFSQ0gpOwogCiAJCS8qIFBDSSBjb25maWd1cmF0aW9uIGRvbmU6IHJlbGVhc2UgRVJSRUFEWSAqLwogCQlvdXRfYmUzMigodm9pZCopR1BJTzFfT1IsCkBAIC01OTMsMTcgKzU5MywxNyBAQAogCX0gZWxzZSB7CiAJCS8qIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL2NsYXNzY29kZSAqLwogCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9JRCwKLQkJCQkgICAgICBDRkdfUENJX1NVQlNZU19JRF9NT05BUkNIKTsKKwkJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSURfTU9OQVJDSCk7CiAJCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ0xBU1NfU1VCX0NPREUsCi0JCQkJICAgICAgQ0ZHX1BDSV9DTEFTU0NPREVfTU9OQVJDSCk7CisJCQkJICAgICAgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFX01PTkFSQ0gpOwogCX0KIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKIC8qCiAgKiBwY2lfbWFzdGVyX2luaXQKICAqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkKIHZvaWQgcGNpX21hc3Rlcl9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAl1bnNpZ25lZCBzaG9ydCB0ZW1wX3Nob3J0OwpAQCAtNjIwLDcgKzYyMCw3IEBACiAJCQkJICAgICAgUENJX0NPTU1BTkRfTUVNT1JZKTsKIAl9CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKSAqLwogCiBzdGF0aWMgdm9pZCB3YWl0X2Zvcl9wY2lfcmVhZHkodm9pZCkKIHsKQEAgLTcwOCw3ICs3MDgsNyBAQAogfQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAvKgogICogIElucHV0OiA8ZGV2X2FkZHI+IEkyQyBhZGRyZXNzIG9mIEVFUFJPTSBkZXZpY2UgdG8gZW5hYmxlLgogICogICAgICAgICA8c3RhdGU+ICAgIC0xOiBkZWxpdmVyIGN1cnJlbnQgc3RhdGUKQEAgLTcyMCw4ICs3MjAsOCBAQAogICovCiBpbnQgZWVwcm9tX3dyaXRlX2VuYWJsZSh1bnNpZ25lZCBkZXZfYWRkciwgaW50IHN0YXRlKQogewotCWlmICgoQ0ZHX0kyQ19FRVBST01fQUREUiAhPSBkZXZfYWRkcikgJiYKLQkgICAgKENGR19JMkNfQk9PVF9FRVBST01fQUREUiAhPSBkZXZfYWRkcikpIHsKKwlpZiAoKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSAmJgorCSAgICAoQ09ORklHX1NZU19JMkNfQk9PVF9FRVBST01fQUREUiAhPSBkZXZfYWRkcikpIHsKIAkJcmV0dXJuIC0xOwogCX0gZWxzZSB7CiAJCXN3aXRjaCAoc3RhdGUpIHsKQEAgLTc0Myw5ICs3NDMsOSBAQAogCX0KIAlyZXR1cm4gc3RhdGU7CiB9Ci0jZW5kaWYgLyogI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKSAqLworI2VuZGlmIC8qICNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pICovCiAKLSNkZWZpbmUgQ0ZHX0JPT1RfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9FRVBST01fUEFHRV9XUklURV9CSVRTIDMKIGludCBib290c3RyYXBfZWVwcm9tX3dyaXRlKHVuc2lnbmVkIGRldl9hZGRyLCB1bnNpZ25lZCBvZmZzZXQsCiAJCQkgICB1Y2hhciAqYnVmZmVyLCB1bnNpZ25lZCBjbnQpCiB7CkBAIC03NTMsNyArNzUzLDcgQEAKIAl1bnNpZ25lZCBibGtfb2ZmOwogCWludCByY29kZSA9IDA7CiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAJZWVwcm9tX3dyaXRlX2VuYWJsZShkZXZfYWRkciwgMSk7CiAjZW5kaWYKIAkvKgpAQCAtNzc2LDcgKzc3Niw3IEBACiAKIAkJbGVuID0gZW5kIC0gb2Zmc2V0OwogCi0jZGVmaW5lCUJPT1RfRUVQUk9NX1BBR0VfU0laRQkgICAoMSA8PCBDRkdfQk9PVF9FRVBST01fUEFHRV9XUklURV9CSVRTKQorI2RlZmluZQlCT09UX0VFUFJPTV9QQUdFX1NJWkUJICAgKDEgPDwgQ09ORklHX1NZU19CT09UX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpCiAjZGVmaW5lCUJPT1RfRUVQUk9NX1BBR0VfT0ZGU0VUKHgpICgoeCkgJiAoQk9PVF9FRVBST01fUEFHRV9TSVpFIC0gMSkpCiAKIAkJbWF4bGVuID0gQk9PVF9FRVBST01fUEFHRV9TSVpFIC0KQEAgLTc5MywxMSArNzkzLDExIEBACiAJCWJ1ZmZlciArPSBsZW47CiAJCW9mZnNldCArPSBsZW47CiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUykKLQkJdWRlbGF5KENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUykKKwkJdWRlbGF5KENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKICNlbmRpZgogCX0KLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAJZWVwcm9tX3dyaXRlX2VuYWJsZShkZXZfYWRkciwgMCk7CiAjZW5kaWYKIAlyZXR1cm4gcmNvZGU7CkBAIC04NDUsNyArODQ1LDcgQEAKIAlyZXR1cm4gcmNvZGU7CiB9CiAKLSNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVCkKIGludCB1c2JfYm9hcmRfaW5pdCh2b2lkKQogewogCWNoYXIgKmFjdCA9IGdldGVudigidXNiYWN0Iik7CkBAIC04NzUsNCArODc1LDQgQEAKIAl1c2JfYm9hcmRfc3RvcCgpOwogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1VTQl9PSENJKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9CT0FSRF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1VTQl9PSENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVCkgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wbWM0NDAvcG1jNDQwLmggYi9ib2FyZC9lc2QvcG1jNDQwL3BtYzQ0MC5oCmluZGV4IDdlNzBmZDEuLmQ4MzRmMjUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC9wbWM0NDAvcG1jNDQwLmgKKysrIGIvYm9hcmQvZXNkL3BtYzQ0MC9wbWM0NDAuaApAQCAtNTQsNyArNTQsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBpbnRlcmZhY2UKICAqLwotI2RlZmluZSBGUEdBX0JBIENGR19GUEdBX0JBU0UwCisjZGVmaW5lIEZQR0FfQkEgQ09ORklHX1NZU19GUEdBX0JBU0UwCiAjZGVmaW5lIEZQR0FfT1VUMzIocCx2KSBvdXRfYmUzMigoKHZvaWQqKShwKSksICh2KSkKICNkZWZpbmUgRlBHQV9JTjMyKHApIGluX2JlMzIoKHZvaWQqKShwKSkKICNkZWZpbmUgRlBHQV9TRVRCSVRTKHAsdikgb3V0X2JlMzIoKCh2b2lkKikocCkpLCBpbl9iZTMyKCh2b2lkKikocCkpIHwgKHYpKQpAQCAtMTM0LDcgKzEzNCw3IEBACiAjZGVmaW5lIEhPU1RDVFJMX0hDSU5UX0dBVEUgICgxIDw8ICAxKQogI2RlZmluZSBIT1NUQ1RSTF9IQ0lOVF9GTEFHICAoMSA8PCAgMCkKIAotI2RlZmluZSBOR0NDX0NUUkxfQkFTRSAgICAgICAgIChDRkdfRlBHQV9CQVNFMCArIDB4ODAwMDApCisjZGVmaW5lIE5HQ0NfQ1RSTF9CQVNFICAgICAgICAgKENPTkZJR19TWVNfRlBHQV9CQVNFMCArIDB4ODAwMDApCiAjZGVmaW5lIE5HQ0NfQ1RSTF9GUEdBUlNUX04gICAgKDEgPDwgIDIpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC9wbWM0NDAvc2RyYW0uYyBiL2JvYXJkL2VzZC9wbWM0NDAvc2RyYW0uYwppbmRleCBjNzI5NGM5Li4xOTc4NTdhIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvcG1jNDQwL3NkcmFtLmMKKysrIGIvYm9hcmQvZXNkL3BtYzQ0MC9zZHJhbS5jCkBAIC0xMTEsNSArMTExLDUgQEAKIAkgKi8KIAlzZXRfbWNzcihnZXRfbWNzcigpKTsKIAotCXJldHVybiAoQ0ZHX01CWVRFU19TRFJBTSA8PCAyMCk7CisJcmV0dXJuIChDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvcG1jNDQwL3UtYm9vdC5sZHMgYi9ib2FyZC9lc2QvcG1jNDQwL3UtYm9vdC5sZHMKaW5kZXggYjIwZmIxYy4uM2NmZWM4MyAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3BtYzQ0MC91LWJvb3QubGRzCisrKyBiL2JvYXJkL2VzZC9wbWM0NDAvdS1ib290LmxkcwpAQCAtMTM3LDcgKzEzNyw3IEBACiAgICAqKENPTU1PTikKICAgfQogCi0gIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRjgwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKKyAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGODAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CiAKICAgX2VuZCA9IC4gOwogICBQUk9WSURFIChlbmQgPSAuKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC90YXNyZWcvZmxhc2guYyBiL2JvYXJkL2VzZC90YXNyZWcvZmxhc2guYwppbmRleCAxM2MwN2QyLi5jZTkwNWU5IDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvdGFzcmVnL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL3Rhc3JlZy9mbGFzaC5jCkBAIC00NSwxMyArNDUsMTMgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAtIEZJWE1FIFhYWCAqLwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKQEAgLTY1LDggKzY1LDggQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIENGR19GTEFTSF9CQVNFLAotCQkJICAgIENGR19GTEFTSF9CQVNFK0NGR19NT05JVE9SX0xFTi0xLAorCQkJICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi0xLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CmRpZmYgLS1naXQgYS9ib2FyZC9lc2QvdGFzcmVnL3Rhc3JlZy5jIGIvYm9hcmQvZXNkL3Rhc3JlZy90YXNyZWcuYwppbmRleCBmYWJiNzQ2Li42NGU2ZDYzIDEwMDY0NAotLS0gYS9ib2FyZC9lc2QvdGFzcmVnL3Rhc3JlZy5jCisrKyBiL2JvYXJkL2VzZC90YXNyZWcvdGFzcmVnLmMKQEAgLTQwLDggKzQwLDggQEAKIAogLyogcHJlZGVmaW5lIHRoZXNlIGhlcmUgZm9yIEZQR0EgcHJvZ3JhbW1pbmcgKGJlZm9yZSBpbmNsdWRpbmcgZnBnYS5jKSAqLwogI2RlZmluZSBTRVRfRlBHQShkYXRhKSAgbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9PVVQsIGRhdGEpCi0jZGVmaW5lIEZQR0FfRE9ORV9TVEFURSAobWJhcjJfcmVhZExvbmcoTUNGU0lNX0dQSU8xX1JFQUQpICYgQ0ZHX0ZQR0FfRE9ORSkKLSNkZWZpbmUgRlBHQV9JTklUX1NUQVRFIChtYmFyMl9yZWFkTG9uZyhNQ0ZTSU1fR1BJTzFfUkVBRCkgJiBDRkdfRlBHQV9JTklUKQorI2RlZmluZSBGUEdBX0RPTkVfU1RBVEUgKG1iYXIyX3JlYWRMb25nKE1DRlNJTV9HUElPMV9SRUFEKSAmIENPTkZJR19TWVNfRlBHQV9ET05FKQorI2RlZmluZSBGUEdBX0lOSVRfU1RBVEUgKG1iYXIyX3JlYWRMb25nKE1DRlNJTV9HUElPMV9SRUFEKSAmIENPTkZJR19TWVNfRlBHQV9JTklUKQogI2RlZmluZSBGUEdBX1BST0dfQUNUSVZFX0hJR0ggICAgICAgICAgLyogb24gdGhpcyBwbGF0Zm9ybSBpcyBQUk9HIGFjdGl2ZSBoaWdoISAgICovCiAjZGVmaW5lIG91dDMyKGEsYikgICAgICAgICAgICAgICAgICAgICAvKiBub3RoaW5nIHRvIGRvIChncGlvIGFscmVhZHkgY29uZmlndXJlZCkgKi8KIApAQCAtNzAsNyArNzAsNyBAQAogCS8qCiAJICogU2V0IExFRCBvbgogCSAqLwotCXZhbCA9IG1iYXIyX3JlYWRMb25nKE1DRlNJTV9HUElPMV9PVVQpICYgfkNGR19HUElPMV9MRUQ7CisJdmFsID0gbWJhcjJfcmVhZExvbmcoTUNGU0lNX0dQSU8xX09VVCkgJiB+Q09ORklHX1NZU19HUElPMV9MRUQ7CiAJbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9PVVQsIHZhbCk7ICAgLyogU2V0IExFRCBvbiAqLwogCiAJcmV0dXJuIDA7CkBAIC04NSwxMyArODUsMTMgQEAKIAkgKglSQyA9IChbKFJlZnJlc2hUaW1lLyNyb3dzKSAvICgxL0J1c0NsayldIC8gMTYpIC0gMQogCSAqLwogCi0jaWZkZWYgQ0ZHX0ZBU1RfQ0xLCisjaWZkZWYgQ09ORklHX1NZU19GQVNUX0NMSwogCS8qCiAJICogQnVzY2xrPTcwTUh6LCBSZWZyZXNoVGltZT02NG1zLCAjcm93cz00MDk2ICg0SykKIAkgKiBTTz0xLCBOQU09MCwgQ09DPTAsIFJUSU09MDEgKDZjbGsgcmVmcmVzaCksIFJDPTM5CiAJICovCiAJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9EQ1IsIDB4ODIzOSk7Ci0jZWxpZiBDRkdfUExMX0JZUEFTUworI2VsaWYgQ09ORklHX1NZU19QTExfQllQQVNTCiAJLyoKIAkgKiBCdXNjbGs9NS42NDQ4TUh6LCBSZWZyZXNoVGltZT02NG1zLCAjcm93cz04MTkyICg4SykKIAkgKiBTTz0xLCBOQU09MCwgQ09DPTAsIFJUSU09MDEgKDZjbGsgcmVmcmVzaCksIFJDPTAyCkBAIC0xMjksNyArMTI5LDcgQEAKIAltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fREFDUjAsIDB4MDAwMGIzNjQpOyAgLyogRW5hYmxlIERBQ1IwW0lNUlNdIChiaXQgNik7IFJFIHJlbWFpbnMgZW5hYmxlZCAqLwogCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgMHg4MDApID0ganVuazsgLyogQWNjZXNzIFJBTSB0byBpbml0aWFsaXplIHRoZSBtb2RlIHJlZ2lzdGVyICovCiAKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9OwogCiAKQEAgLTE1MCw4ICsxNTAsOCBAQAogCWludCBpOwogCXVjaGFyIGJ1Zls4XTsKIAotCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JaWYgKGd1bnppcCAoZHN0LCBDRkdfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKKwlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwlpZiAoZ3VuemlwIChkc3QsIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKIAkJcHJpbnRmICgiR1VOWklQIEVSUk9SIC0gbXVzdCBSRVNFVCBib2FyZCB0byByZWNvdmVyXG4iKTsKIAkJZG9fcmVzZXQgKE5VTEwsIDAsIDAsIE5VTEwpOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC92b2g0MDUvZmxhc2guYyBiL2JvYXJkL2VzZC92b2g0MDUvZmxhc2guYwppbmRleCA4OWFmMTE5Li4yNzRhZGE5IDEwMDY0NAotLS0gYS9ib2FyZC9lc2Qvdm9oNDA1L2ZsYXNoLmMKKysrIGIvYm9hcmQvZXNkL3ZvaDQwNS9mbGFzaC5jCkBAIC00OCw3ICs0OCw3IEBACiAJaW50IHNpemVfdmFsID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtOTEsNyArOTEsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3ZvaDQwNS92b2g0MDUuYyBiL2JvYXJkL2VzZC92b2g0MDUvdm9oNDA1LmMKaW5kZXggMTE1ZjhiNC4uZWM2NWZmZCAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3ZvaDQwNS92b2g0MDUuYworKysgYi9ib2FyZC9lc2Qvdm9oNDA1L3ZvaDQwNS5jCkBAIC0xMDksOSArMTA5LDkgQEAKIAl1bnNpZ25lZCBjaGFyICpkdWFydDBfbWNyID0gKHVuc2lnbmVkIGNoYXIgKikoKHVsb25nKURVQVJUMF9CQSArIDQpOwogCXVuc2lnbmVkIGNoYXIgKmR1YXJ0MV9tY3IgPSAodW5zaWduZWQgY2hhciAqKSgodWxvbmcpRFVBUlQxX0JBICsgNCk7CiAJdW5zaWduZWQgc2hvcnQgKmxjZF9jb250cmFzdCA9Ci0JCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ0ZHX0ZQR0FfQkFTRV9BRERSICsgQ0ZHX0ZQR0FfQ1RSTCArIDQpOworCQkodW5zaWduZWQgc2hvcnQgKikoKHVsb25nKUNPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0ZQR0FfQ1RSTCArIDQpOwogCXVuc2lnbmVkIHNob3J0ICpsY2RfYmFja2xpZ2h0ID0KLQkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMICsgNik7CisJCSh1bnNpZ25lZCBzaG9ydCAqKSgodWxvbmcpQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiArIENPTkZJR19TWVNfRlBHQV9DVFJMICsgNik7CiAJdW5zaWduZWQgY2hhciAqZHN0OwogCXVsb25nIGxlbiA9IHNpemVvZihmcGdhZGF0YSk7CiAJaW50IHN0YXR1czsKQEAgLTExOSw4ICsxMTksOCBAQAogCWludCBpOwogCWNoYXIgKnN0cjsKIAotCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JaWYgKGd1bnppcCAoZHN0LCBDRkdfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKKwlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwlpZiAoZ3VuemlwIChkc3QsIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKIAkJcHJpbnRmICgiR1VOWklQIEVSUk9SIC0gbXVzdCBSRVNFVCBib2FyZCB0byByZWNvdmVyXG4iKTsKIAkJZG9fcmVzZXQgKE5VTEwsIDAsIDAsIE5VTEwpOwogCX0KQEAgLTE4MywyMiArMTgzLDIyIEBACiAJLyoKIAkgKiBSZXNldCBleHRlcm5hbCBEVUFSVHMKIAkgKi8KLQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENGR19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gaGlnaCAqLworCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gaGlnaCAqLwogCXVkZWxheSgxMCk7IC8qIHdhaXQgMTB1cyAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNGR19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gbG93ICovCisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gbG93ICovCiAJdWRlbGF5KDEwMDApOyAvKiB3YWl0IDFtcyAqLwogCiAJLyoKIAkgKiBTZXQgTkFORC1GTEFTSCBHUElPIHNpZ25hbHMgdG8gZGVmYXVsdAogCSAqLwotCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfihDRkdfTkFORF9DTEUgfCBDRkdfTkFORF9BTEUpKTsKLQlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENGR19OQU5EX0NFKTsKKwlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSAmIH4oQ09ORklHX1NZU19OQU5EX0NMRSB8IENPTkZJR19TWVNfTkFORF9BTEUpKTsKKwlvdXRfYmUzMigodm9pZCopR1BJTzBfT1IsIGluX2JlMzIoKHZvaWQqKUdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORF9DRSk7CiAKIAkvKgogCSAqIFNldHVwIEVFUFJPTSB3cml0ZSBwcm90ZWN0aW9uCiAJICovCi0Jb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfRUVQUk9NX1dQKTsKLQlvdXRfYmUzMigodm9pZCopR1BJTzBfVENSLCBpbl9iZTMyKCh2b2lkKilHUElPMF9UQ1IpIHwgQ0ZHX0VFUFJPTV9XUCk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDT05GSUdfU1lTX0VFUFJPTV9XUCk7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX1RDUiwgaW5fYmUzMigodm9pZCopR1BJTzBfVENSKSB8IENPTkZJR19TWVNfRUVQUk9NX1dQKTsKIAogCS8qCiAJICogRW5hYmxlIGludGVycnVwdHMgaW4gZXhhciBkdWFydCBtY3JbM10KQEAgLTIxMiwyOSArMjEyLDI5IEBACiAJc3RyID0gZ2V0ZW52KCJiZF90eXBlIik7CiAJaWYgKHN0cmNtcChzdHIsICJ2b2g0MDVfYnciKSA9PSAwKSB7CiAJCWxjZF9zZXR1cCgwLCAxKTsKLQkJbGNkX2luaXQoKHVjaGFyICopQ0ZHX0xDRF9TTUFMTF9SRUcsICh1Y2hhciAqKUNGR19MQ0RfU01BTExfTUVNLAorCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9TTUFMTF9SRUcsICh1Y2hhciAqKUNPTkZJR19TWVNfTENEX1NNQUxMX01FTSwKIAkJCSByZWdzXzEzNzA0XzMyMF8yNDBfNGJwcCwKIAkJCSBzaXplb2YocmVnc18xMzcwNF8zMjBfMjQwXzRicHApL3NpemVvZihyZWdzXzEzNzA0XzMyMF8yNDBfNGJwcFswXSksCiAJCQkgbG9nb19ibXBfMzIwLCBzaXplb2YobG9nb19ibXBfMzIwKSk7CiAJfSBlbHNlIGlmIChzdHJjbXAoc3RyLCAidm9oNDA1X2J3YnciKSA9PSAwKSB7CiAJCWxjZF9zZXR1cCgwLCAxKTsKLQkJbGNkX2luaXQoKHVjaGFyICopQ0ZHX0xDRF9TTUFMTF9SRUcsICh1Y2hhciAqKUNGR19MQ0RfU01BTExfTUVNLAorCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9TTUFMTF9SRUcsICh1Y2hhciAqKUNPTkZJR19TWVNfTENEX1NNQUxMX01FTSwKIAkJCSByZWdzXzEzNzA0XzMyMF8yNDBfNGJwcCwKIAkJCSBzaXplb2YocmVnc18xMzcwNF8zMjBfMjQwXzRicHApL3NpemVvZihyZWdzXzEzNzA0XzMyMF8yNDBfNGJwcFswXSksCiAJCQkgbG9nb19ibXBfMzIwLCBzaXplb2YobG9nb19ibXBfMzIwKSk7CiAJCWxjZF9zZXR1cCgxLCAxKTsKLQkJbGNkX2luaXQoKHVjaGFyICopQ0ZHX0xDRF9CSUdfUkVHLCAodWNoYXIgKilDRkdfTENEX0JJR19NRU0sCisJCWxjZF9pbml0KCh1Y2hhciAqKUNPTkZJR19TWVNfTENEX0JJR19SRUcsICh1Y2hhciAqKUNPTkZJR19TWVNfTENEX0JJR19NRU0sCiAJCQkgcmVnc18xMzgwNl8zMjBfMjQwXzRicHAsCiAJCQkgc2l6ZW9mKHJlZ3NfMTM4MDZfMzIwXzI0MF80YnBwKS9zaXplb2YocmVnc18xMzgwNl8zMjBfMjQwXzRicHBbMF0pLAogCQkJIGxvZ29fYm1wXzMyMCwgc2l6ZW9mKGxvZ29fYm1wXzMyMCkpOwogCX0gZWxzZSBpZiAoc3RyY21wKHN0ciwgInZvaDQwNV9id2MiKSA9PSAwKSB7CiAJCWxjZF9zZXR1cCgwLCAxKTsKLQkJbGNkX2luaXQoKHVjaGFyICopQ0ZHX0xDRF9TTUFMTF9SRUcsICh1Y2hhciAqKUNGR19MQ0RfU01BTExfTUVNLAorCQlsY2RfaW5pdCgodWNoYXIgKilDT05GSUdfU1lTX0xDRF9TTUFMTF9SRUcsICh1Y2hhciAqKUNPTkZJR19TWVNfTENEX1NNQUxMX01FTSwKIAkJCSByZWdzXzEzNzA0XzMyMF8yNDBfNGJwcCwKIAkJCSBzaXplb2YocmVnc18xMzcwNF8zMjBfMjQwXzRicHApL3NpemVvZihyZWdzXzEzNzA0XzMyMF8yNDBfNGJwcFswXSksCiAJCQkgbG9nb19ibXBfMzIwLCBzaXplb2YobG9nb19ibXBfMzIwKSk7CiAJCWxjZF9zZXR1cCgxLCAwKTsKLQkJbGNkX2luaXQoKHVjaGFyICopQ0ZHX0xDRF9CSUdfUkVHLCAodWNoYXIgKilDRkdfTENEX0JJR19NRU0sCisJCWxjZF9pbml0KCh1Y2hhciAqKUNPTkZJR19TWVNfTENEX0JJR19SRUcsICh1Y2hhciAqKUNPTkZJR19TWVNfTENEX0JJR19NRU0sCiAJCQkgcmVnc18xMzgwNl82NDBfNDgwXzE2YnBwLAogCQkJIHNpemVvZihyZWdzXzEzODA2XzY0MF80ODBfMTZicHApL3NpemVvZihyZWdzXzEzODA2XzY0MF80ODBfMTZicHBbMF0pLAogCQkJIGxvZ29fYm1wXzY0MCwgc2l6ZW9mKGxvZ29fYm1wXzY0MCkpOwpAQCAtMjQ2LDggKzI0Niw4IEBACiAJLyoKIAkgKiBTZXQgaW52ZXJ0IGJpdCBpbiBzbWFsbCBsY2QgY29udHJvbGxlcgogCSAqLwotCW91dF84KCh1bnNpZ25lZCBjaGFyICopKENGR19MQ0RfU01BTExfUkVHICsgMiksCi0JICAgICAgaW5fOCgodW5zaWduZWQgY2hhciAqKShDRkdfTENEX1NNQUxMX1JFRyArIDIpKSB8IDB4MDEpOworCW91dF84KCh1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfTENEX1NNQUxMX1JFRyArIDIpLAorCSAgICAgIGluXzgoKHVuc2lnbmVkIGNoYXIgKikoQ09ORklHX1NZU19MQ0RfU01BTExfUkVHICsgMikpIHwgMHgwMSk7CiAKIAkvKgogCSAqIFNldCBkZWZhdWx0IGNvbnRyYXN0IHZvbHRhZ2Ugb24gZXBzb24gdmdhIGNvbnRyb2xsZXIKQEAgLTI2Miw3ICsyNjIsNyBAQAogCS8qCiAJICogRW5hYmxlIGV4dGVybmFsIEkyQyBidXMKIAkgKi8KLQlvdXRfYmUzMigodm9pZCopR1BJTzBfVENSLCBpbl9iZTMyKCh2b2lkKilHUElPMF9UQ1IpIHwgQ0ZHX0lJQ19PTik7CisJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX1RDUiwgaW5fYmUzMigodm9pZCopR1BJTzBfVENSKSB8IENPTkZJR19TWVNfSUlDX09OKTsKIAogCXJldHVybiAoMCk7CiB9CkBAIC0zMDAsMTUgKzMwMCwxNSBAQAogdm9pZCBpZGVfc2V0X3Jlc2V0KGludCBvbikKIHsKIAl2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqZnBnYV9tb2RlID0KLQkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDRkdfRlBHQV9CQVNFX0FERFIgKyBDRkdfRlBHQV9DVFJMKTsKKwkJKHVuc2lnbmVkIHNob3J0ICopKCh1bG9uZylDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSICsgQ09ORklHX1NZU19GUEdBX0NUUkwpOwogCiAJLyoKIAkgKiBBc3NlcnQgb3IgZGVhc3NlcnQgQ29tcGFjdEZsYXNoIFJlc2V0IFBpbgogCSAqLwogCWlmIChvbikgewkJLyogYXNzZXJ0IFJFU0VUICovCi0JCSpmcGdhX21vZGUgJj0gfihDRkdfRlBHQV9DVFJMX0NGX1JFU0VUKTsKKwkJKmZwZ2FfbW9kZSAmPSB+KENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUKTsKIAl9IGVsc2UgewkJLyogcmVsZWFzZSBSRVNFVCAqLwotCQkqZnBnYV9tb2RlIHw9IENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQ7CisJCSpmcGdhX21vZGUgfD0gQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUkVTRVQ7CiAJfQogfQogI2VuZGlmIC8qIENPTkZJR19JREVfUkVTRVQgKi8KQEAgLTMyNiw3ICszMjYsNyBAQAogfQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAvKiBJbnB1dDogPGRldl9hZGRyPiAgSTJDIGFkZHJlc3Mgb2YgRUVQUk9NIGRldmljZSB0byBlbmFibGUuCiAgKiAgICAgICAgIDxzdGF0ZT4gICAgIC0xOiBkZWxpdmVyIGN1cnJlbnQgc3RhdGUKICAqCSAgICAgICAgICAgICAgIDA6IGRpc2FibGUgd3JpdGUKQEAgLTMzNywyMyArMzM3LDIzIEBACiAgKi8KIGludCBlZXByb21fd3JpdGVfZW5hYmxlICh1bnNpZ25lZCBkZXZfYWRkciwgaW50IHN0YXRlKQogewotCWlmIChDRkdfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSB7CisJaWYgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICE9IGRldl9hZGRyKSB7CiAJCXJldHVybiAtMTsKIAl9IGVsc2UgewogCQlzd2l0Y2ggKHN0YXRlKSB7CiAJCWNhc2UgMToKIAkJCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MsIGNsZWFyIGJpdCBHUElPMC4gKi8KLQkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpICYgfkNGR19FRVBST01fV1ApOworCQkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiB+Q09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgMDoKIAkJCS8qIERpc2FibGUgd3JpdGUgYWNjZXNzLCBzZXQgYml0IEdQSU8wLiAqLwotCQkJb3V0X2JlMzIoKHZvaWQqKUdQSU8wX09SLCBpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgfCBDRkdfRUVQUk9NX1dQKTsKKwkJCW91dF9iZTMyKCh2b2lkKilHUElPMF9PUiwgaW5fYmUzMigodm9pZCopR1BJTzBfT1IpIHwgQ09ORklHX1NZU19FRVBST01fV1ApOwogCQkJc3RhdGUgPSAwOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBSZWFkIGN1cnJlbnQgc3RhdHVzIGJhY2suICovCi0JCQlzdGF0ZSA9ICgwID09IChpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiBDRkdfRUVQUk9NX1dQKSk7CisJCQlzdGF0ZSA9ICgwID09IChpbl9iZTMyKCh2b2lkKilHUElPMF9PUikgJiBDT05GSUdfU1lTX0VFUFJPTV9XUCkpOwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0zNjcsMjEgKzM2NywyMSBAQAogCiAJaWYgKHF1ZXJ5KSB7CiAJCS8qIFF1ZXJ5IHdyaXRlIGFjY2VzcyBzdGF0ZS4gKi8KLQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDRkdfSTJDX0VFUFJPTV9BRERSLCAtMSk7CisJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIC0xKTsKIAkJaWYgKHN0YXRlIDwgMCkgewogCQkJcHV0cyAoIlF1ZXJ5IG9mIHdyaXRlIGFjY2VzcyBzdGF0ZSBmYWlsZWQuXG4iKTsKIAkJfSBlbHNlIHsKIAkJCXByaW50ZiAoIldyaXRlIGFjY2VzcyBmb3IgZGV2aWNlIDB4JTB4IGlzICVzYWJsZWQuXG4iLAotCQkJCUNGR19JMkNfRUVQUk9NX0FERFIsIHN0YXRlID8gImVuIiA6ICJkaXMiKTsKKwkJCQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgc3RhdGUgPyAiZW4iIDogImRpcyIpOwogCQkJc3RhdGUgPSAwOwogCQl9CiAJfSBlbHNlIHsKIAkJaWYgKCcwJyA9PSBhcmd2WzFdWzBdKSB7CiAJCQkvKiBEaXNhYmxlIHdyaXRlIGFjY2Vzcy4gKi8KLQkJCXN0YXRlID0gZWVwcm9tX3dyaXRlX2VuYWJsZSAoQ0ZHX0kyQ19FRVBST01fQUREUiwgMCk7CisJCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAwKTsKIAkJfSBlbHNlIHsKIAkJCS8qIEVuYWJsZSB3cml0ZSBhY2Nlc3MuICovCi0JCQlzdGF0ZSA9IGVlcHJvbV93cml0ZV9lbmFibGUgKENGR19JMkNfRUVQUk9NX0FERFIsIDEpOworCQkJc3RhdGUgPSBlZXByb21fd3JpdGVfZW5hYmxlIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMSk7CiAJCX0KIAkJaWYgKHN0YXRlIDwgMCkgewogCQkJcHV0cyAoIlNldHVwIG9mIHdyaXRlIGFjY2VzcyBzdGF0ZSBmYWlsZWQuXG4iKTsKQEAgLTM5NCw0ICszOTQsNCBAQAogVV9CT09UX0NNRChlZXB3cmVuLAkyLAkwLAlkb19lZXBfd3JlbiwKIAkgICAiZWVwd3JlbiAtIEVuYWJsZSAvIGRpc2FibGUgLyBxdWVyeSBFRVBST00gd3JpdGUgYWNjZXNzXG4iLAogCSAgIE5VTEwpOwotI2VuZGlmIC8qICNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikgKi8KKyNlbmRpZiAvKiAjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXNkL3ZvbTQwNS9mbGFzaC5jIGIvYm9hcmQvZXNkL3ZvbTQwNS9mbGFzaC5jCmluZGV4IDg5YWYxMTkuLjI3NGFkYTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC92b200MDUvZmxhc2guYworKysgYi9ib2FyZC9lc2Qvdm9tNDA1L2ZsYXNoLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAlpbnQgc2l6ZV92YWwgPSAwOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MSw3ICs5MSw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCmRpZmYgLS1naXQgYS9ib2FyZC9lc2Qvd3VoNDA1L2ZsYXNoLmMgYi9ib2FyZC9lc2Qvd3VoNDA1L2ZsYXNoLmMKaW5kZXggODlhZjExOS4uMjc0YWRhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXNkL3d1aDQwNS9mbGFzaC5jCisrKyBiL2JvYXJkL2VzZC93dWg0MDUvZmxhc2guYwpAQCAtNDgsNyArNDgsNyBAQAogCWludCBzaXplX3ZhbCA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTkxLDcgKzkxLDcgQEAKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIC1DRkdfTU9OSVRPUl9MRU4sCisJCQkgICAgLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzZC93dWg0MDUvd3VoNDA1LmMgYi9ib2FyZC9lc2Qvd3VoNDA1L3d1aDQwNS5jCmluZGV4IDNhOTRmZDguLjVlY2EzYmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VzZC93dWg0MDUvd3VoNDA1LmMKKysrIGIvYm9hcmQvZXNkL3d1aDQwNS93dWg0MDUuYwpAQCAtOTIsOCArOTIsOCBAQAogCWludCBpbmRleDsKIAlpbnQgaTsKIAotCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JaWYgKGd1bnppcCAoZHN0LCBDRkdfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKKwlkc3QgPSBtYWxsb2MoQ09ORklHX1NZU19GUEdBX01BWF9TSVpFKTsKKwlpZiAoZ3VuemlwIChkc3QsIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSwgKHVjaGFyICopZnBnYWRhdGEsICZsZW4pICE9IDApIHsKIAkJcHJpbnRmICgiR1VOWklQIEVSUk9SIC0gbXVzdCBSRVNFVCBib2FyZCB0byByZWNvdmVyXG4iKTsKIAkJZG9fcmVzZXQgKE5VTEwsIDAsIDAsIE5VTEwpOwogCX0KQEAgLTE1NSw5ICsxNTUsOSBAQAogCS8qCiAJICogUmVzZXQgZXh0ZXJuYWwgRFVBUlRzCiAJICovCi0Jb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX0RVQVJUX1JTVCk7IC8qIHNldCByZXNldCB0byBoaWdoICovCisJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19EVUFSVF9SU1QpOyAvKiBzZXQgcmVzZXQgdG8gaGlnaCAqLwogCXVkZWxheSgxMCk7IC8qIHdhaXQgMTB1cyAqLwotCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfRFVBUlRfUlNUKTsgLyogc2V0IHJlc2V0IHRvIGxvdyAqLworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX0RVQVJUX1JTVCk7IC8qIHNldCByZXNldCB0byBsb3cgKi8KIAl1ZGVsYXkoMTAwMCk7IC8qIHdhaXQgMW1zICovCiAKIAkvKgpkaWZmIC0tZ2l0IGEvYm9hcmQvZXN0ZWVtMTkyZS9lc3RlZW0xOTJlLmMgYi9ib2FyZC9lc3RlZW0xOTJlL2VzdGVlbTE5MmUuYwppbmRleCBmM2M4NjYyLi5iNzg0Y2JiIDEwMDY0NAotLS0gYS9ib2FyZC9lc3RlZW0xOTJlL2VzdGVlbTE5MmUuYworKysgYi9ib2FyZC9lc3RlZW0xOTJlL2VzdGVlbTE5MmUuYwpAQCAtMTAzLDcgKzEwMyw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwLCBzaXplX2IxOwogCkBAIC0xMTMsNyArMTEzLDcgQEAKIAogCW1lbWN0bC0+bWVtY19tcHRwciA9IDB4MDIwMDsJLyogZGl2aWRlIGJ5IDMyICovCiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IDB4MTgwMDMxMTI7CS8qQ0ZHX01BTVJfOENPTDsgKi8gLyogMHgxODAwNTExMiBUT0RPOiBleHBsYWluIGhlcmUgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IDB4MTgwMDMxMTI7CS8qQ09ORklHX1NZU19NQU1SXzhDT0w7ICovIC8qIDB4MTgwMDUxMTIgVE9ETzogZXhwbGFpbiBoZXJlICovCiAKIAl1cG1jb25maWcgKFVQTUEsICh1aW50ICopIHNkcmFtX3RhYmxlLAogCQkgICBzaXplb2YgKHNkcmFtX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwpAQCAtMTI0LDExICsxMjQsMTEgQEAKIAkgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07CS8qIG5vdCBkZWZpbmVkIHlldCAqLwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOwkvKiBub3QgZGVmaW5lZCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAKIAogCS8qIHBlcmZvcm0gU0RSQU0gaW5pdGlhbGl6c2F0aW9uIHNlcXVlbmNlICovCkBAIC0xMzksNyArMTM5LDcgQEAKIAltZW1jdGwtPm1lbWNfbWNyID0gMHg4MDAwNjgzMDsJLyogU0RSQU0gYmFuayAxIGV4ZWN1dGUgOCByZWZyZXNoICovCiAJbWVtY3RsLT5tZW1jX21jciA9IDB4ODAwMDYxMDU7CS8qIFNEUkFNIGJhbmsgMSAqLwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOwkvKiAweDE4ODAzMTEyICBzdGFydCByZWZyZXNoIHRpbWVyIFRPRE86IGV4cGxhaW4gaGVyZSAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CS8qIDB4MTg4MDMxMTIgIHN0YXJ0IHJlZnJlc2ggdGltZXIgVE9ETzogZXhwbGFpbiBoZXJlICovCiAKIC8qIHByaW50ZiAoImJhbmtzIDAgYW5kIDEgYXJlIHByb2dyYW1lZFxuIik7ICovCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2VzdGVlbTE5MmUvZmxhc2guYyBiL2JvYXJkL2VzdGVlbTE5MmUvZmxhc2guYwppbmRleCBkNWViMjAxLi5jY2U3M2ZhIDEwMDY0NAotLS0gYS9ib2FyZC9lc3RlZW0xOTJlL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXN0ZWVtMTkyZS9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCiAKICNpZmRlZiBDT05GSUdfRkxBU0hfMTZCSVQKICNkZWZpbmUgRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CkBAIC01NCwxMyArNTQsMTMgQEAKICAqLwogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCwgc2l6ZV9iMTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MSw0NCArOTEsNDQgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gQ0ZHX0ZMQVNIX0JBU0UgfCAweDAwMDAwODAxOwkvKiAgKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOyAqLworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjAgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweDAwMDAwODAxOwkvKiAgKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsgKi8KIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoKHZvbGF0aWxlIEZMQVNIX1dPUkRfU0laRSAqKSBDRkdfRkxBU0hfQkFTRSwKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkJCSAgJmZsYXNoX2luZm9bMF0pOwotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKSBmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewogCQltZW1jdGwtPm1lbWNfb3IxID0KLQkJCUNGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjEgJiAweEZGRkY4MDAwKTsKKwkJCUNPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7CiAJCW1lbWN0bC0+bWVtY19icjEgPQotCQkJKENGR19GTEFTSF9CQVNFIHwgMHgwMDAwMDgwMSkgKyAoc2l6ZV9iMCAmIEJSX0JBX01TSyk7Ci0JCS8qKChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CisJCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwMDAwMDgwMSkgKyAoc2l6ZV9iMCAmIEJSX0JBX01TSyk7CisJCS8qKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkgICBCUl9NU19HUENNIHwgQlJfVjsgKi8KIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCiAJCXNpemVfYjEgPQogCQkJZmxhc2hfZ2V0X3NpemUgKCh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUKLQkJCQkJICopIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApLAorCQkJCQkgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApLAogCQkJCQkmZmxhc2hfaW5mb1sxXSk7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQkodm9pZCkgZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtCisJCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtCiAJCQkJICAgICAgMSwgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAJfSBlbHNlIHsKQEAgLTc2OSw3ICs3NjksNyBAQAogCQlhZGRyID0gKHZvbGF0aWxlIEZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJCXdoaWxlICgoYWRkclswXSAmICgweDAwODAwMDgwICYgRkxBU0hfSURfTUFTSykpICE9CiAJCSAgICAgICAoMHgwMDgwMDA4MCAmIEZMQVNIX0lEX01BU0spKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtMTAyMiw3ICsxMDIyLDcgQEAKIAogCQl3aGlsZSAoKCooKHZ1X2xvbmcgKikgZGVzdCkgJiAweDAwODAwMDgwKSAhPQogCQkgICAgICAgKGRhdGEgJiAweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KQEAgLTEwMzAsNyArMTAzMCw3IEBACiAJfSBlbHNlIHsKIAogCQl3aGlsZSAoIShhZGRyWzBdICYgMHgwMDgwMDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIApAQCAtMTA5Niw3ICsxMDk2LDcgQEAKIAlpZiAoaW5mby0+Zmxhc2hfaWQgPCBGTEFTSF9BTURfQ09NUCkgewogCQkvKiBBTUQgc3R1ZmYgKi8KIAkJd2hpbGUgKCgqKCh2dV9zaG9ydCAqKSBkZXN0KSAmIDB4MDA4MCkgIT0gKGRhdGEgJiAweDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJfQpAQCAtMTEwNCw3ICsxMTA0LDcgQEAKIAl9IGVsc2UgewogCQkvKiBpbnRlbCBzdHVmZiAqLwogCQl3aGlsZSAoIShhZGRyWzBdICYgMHgwMDgwKSkgewkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIApAQCAtMTEyMyw3ICsxMTIzLDcgQEAKIAkJKmFkZHIgPSAweDAwQjA7CiAJCSphZGRyID0gMHgwMDcwOwogCQl3aGlsZSAoIShhZGRyWzBdICYgMHgwMDgwKSkgewkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIAkJKmFkZHIgPSAweDAwRkY7CmRpZmYgLS1naXQgYS9ib2FyZC9ldGluL2RlYnJpcy9kZWJyaXMuYyBiL2JvYXJkL2V0aW4vZGVicmlzL2RlYnJpcy5jCmluZGV4IGE1ZDM5NGMuLjIyN2M0OWEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V0aW4vZGVicmlzL2RlYnJpcy5jCisrKyBiL2JvYXJkL2V0aW4vZGVicmlzL2RlYnJpcy5jCkBAIC02Myw3ICs2Myw3IEBACiAJdWludDMyX3QgbWVhcjIgPSAwLCBlbWVhcjIgPSAwLCBtc2FyMiA9IDAsIGVtc2FyMiA9IDA7CiAJdWludDhfdCBtYmVyID0gMDsKIAotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAlpZiAoaTJjX3JlZ19yZWFkICgweDUwLCAyKSAhPSAweDA0KSByZXR1cm4gMDsJLyogTWVtb3J5IHR5cGUgKi8KIAltID0gaTJjX3JlZ19yZWFkICgweDUwLCA1KTsJLyogIyBvZiBwaHlzaWNhbCBiYW5rcyAqLwpAQCAtNzQsNyArNzQsNyBAQAogCUNPTkZJR19SRUFEX1dPUkQoTUNDUjEsIG1jY3IxKTsKIAltY2NyMSAmPSAweGZmZmYwMDAwOwogCi0Jc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKKwlzdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAllbmQgPSBzdGFydCArICgxIDw8IChjb2wgKyByb3cgKyAzKSApICogYmFuayAtIDE7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbTsgaSsrKSB7CkBAIC0xNzQsNyArMTc0LDcgQEAKIGludCBtaXNjX2luaXRfcih2b2lkKQogewogCS8qIFdyaXRlIGV0aGVybmV0IGFkZHIgaW4gTlZSQU0gZm9yIFZ4V29ya3MgKi8KLQludnJhbV93cml0ZShDT05GSUdfRU5WX0FERFIgKyBDRkdfTlZSQU1fVlhXT1JLU19PRkZTLAorCW52cmFtX3dyaXRlKENPTkZJR19FTlZfQUREUiArIENPTkZJR19TWVNfTlZSQU1fVlhXT1JLU19PRkZTLAogCQkJKGNoYXIqKSZnZC0+YmQtPmJpX2VuZXRhZGRyWzBdLCA2KTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2V0aW4vZGVicmlzL2ZsYXNoLmMgYi9ib2FyZC9ldGluL2RlYnJpcy9mbGFzaC5jCmluZGV4IGE0MTAwZTUuLmEzYzgxMzggMTAwNjQ0Ci0tLSBhL2JvYXJkL2V0aW4vZGVicmlzL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXRpbi9kZWJyaXMvZmxhc2guYwpAQCAtNzEsNyArNzEsNyBAQAogCXJldHVybiAodWludDE2X3QpcmVhZDMyKGJhc2UgKyBhZGRyKTsKIH0KIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIHN0YXRpYyB2b2lkIG1vdmU2NCh1aW50NjRfdCAqc3JjLCB1aW50NjRfdCAqZGVzdCkKIHsKQEAgLTk5LDcgKzk5LDcgQEAKIAkJc3RhdHVzICY9IENNRCgweDgwKTsKIAkJaWYoc3RhdHVzID09IENNRCgweDgwKSkKIAkJCWJyZWFrOwotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQljZmlfY21kKGZsYXNoLCAweGZmLCAwKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC0xMjgsNyArMTI4LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJc3RhdHVzID0gfmRhdGE7CiAJd2hpbGUoc3RhdHVzICE9IGRhdGEpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpCiAJCQlyZXR1cm4gMTsKIAkJc3RhdHVzID0gY2ZpX3JlYWQoZmxhc2gsIGRlc3QpOwogCQl1ZGVsYXkoMSk7CkBAIC0yMzAsNyArMjMwLDcgQEAKIAkJc3RhdHVzICY9IENNRCgweDgwKTsKIAkJaWYgKHN0YXR1cyA9PSBDTUQoMHg4MCkpCiAJCQlicmVhazsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCWNmaV9jbWQoZmxhc2gsIDB4ZmYsIDApOwogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gRVJSX1RJTU9VVDsKQEAgLTI5Niw3ICsyOTYsNyBAQAogCQlpZiAoc3RhdHVzID09IENNRCgweGZmZmYpKQogCQkJYnJlYWs7CiAKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIEVSUl9USU1PVVQ7CiAJCX0KQEAgLTU4MSw3ICs1ODEsNyBAQAogCW10ZGJhdDF1KDB4NzAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCk7CiAJc2V0X21zcihtc3IpOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJc2l6ZSA9IGNmaV9pbml0KEZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOwogCWlmICghc2l6ZSkKZGlmZiAtLWdpdCBhL2JvYXJkL2V0aW4vZGVicmlzL3BoYW50b20uYyBiL2JvYXJkL2V0aW4vZGVicmlzL3BoYW50b20uYwppbmRleCA0OGI4MWY3Li5mY2I0YzQwIDEwMDY0NAotLS0gYS9ib2FyZC9ldGluL2RlYnJpcy9waGFudG9tLmMKKysrIGIvYm9hcmQvZXRpbi9kZWJyaXMvcGhhbnRvbS5jCkBAIC0yMCw3ICsyMCw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfREFURSkKIAotI2RlZmluZSBSVENfQkFTRSAoQ0ZHX05WUkFNX0JBU0VfQUREUiArIDB4N2ZmZjgpCisjZGVmaW5lIFJUQ19CQVNFIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiArIDB4N2ZmZjgpCiAKICNkZWZpbmUgUlRDX1lFQVIgICAgICAgICAgICAgICAgKCBSVENfQkFTRSArIDcgKQogI2RlZmluZSBSVENfTU9OVEggICAgICAgICAgICAgICAoIFJUQ19CQVNFICsgNiApCmRpZmYgLS1naXQgYS9ib2FyZC9ldGluL2t2bWUwODAva3ZtZTA4MC5jIGIvYm9hcmQvZXRpbi9rdm1lMDgwL2t2bWUwODAuYwppbmRleCBiZTY5MjRkLi44YzZhZmM5IDEwMDY0NAotLS0gYS9ib2FyZC9ldGluL2t2bWUwODAva3ZtZTA4MC5jCisrKyBiL2JvYXJkL2V0aW4va3ZtZTA4MC9rdm1lMDgwLmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIAlDT05GSUdfUkVBRF9XT1JEKE1DQ1IxLCBtY2NyMSk7CiAJbWNjcjEgJj0gMHhmZmZmMDAwMDsKIAotCXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7CisJc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJZW5kID0gc3RhcnQgKyAoMSA8PCAoY29sICsgcm93ICsgMykgKSAqIGJhbmsgLSAxOwogCiAJZm9yIChpID0gMDsgaSA8IG07IGkrKykgewpAQCAtMTAxLDMxICsxMDEsMzEgQEAKIAogCW1zciA9IG1mbXNyKCk7CiAJbXRtc3IobXNyICYgfihNU1JfSVIgfCBNU1JfRFIpKTsKLQltdHNwcihJQkFUMkwsIENGR19JQkFUMEwgKyAweDEwMDAwMDAwKTsKLQltdHNwcihJQkFUMlUsIENGR19JQkFUMFUgKyAweDEwMDAwMDAwKTsKLQltdHNwcihEQkFUMkwsIENGR19EQkFUMEwgKyAweDEwMDAwMDAwKTsKLQltdHNwcihEQkFUMlUsIENGR19EQkFUMFUgKyAweDEwMDAwMDAwKTsKKwltdHNwcihJQkFUMkwsIENPTkZJR19TWVNfSUJBVDBMICsgMHgxMDAwMDAwMCk7CisJbXRzcHIoSUJBVDJVLCBDT05GSUdfU1lTX0lCQVQwVSArIDB4MTAwMDAwMDApOworCW10c3ByKERCQVQyTCwgQ09ORklHX1NZU19EQkFUMEwgKyAweDEwMDAwMDAwKTsKKwltdHNwcihEQkFUMlUsIENPTkZJR19TWVNfREJBVDBVICsgMHgxMDAwMDAwMCk7CiAJbXRtc3IobXNyKTsKIAotCWlmIChzZXRkcmFtKDIsMTMsMTAsNCkgPT0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKSkKKwlpZiAoc2V0ZHJhbSgyLDEzLDEwLDQpID09IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApKQogCQlzaXplID0gMHgyMDAwMDAwMDsJLyogNTEyTUIgKi8KLQllbHNlIGlmIChzZXRkcmFtKDEsMTMsMTAsNCkgPT0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCAweDEwMDAwMDAwKSkKKwllbHNlIGlmIChzZXRkcmFtKDEsMTMsMTAsNCkgPT0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgxMDAwMDAwMCkpCiAJCXNpemUgPSAweDEwMDAwMDAwOwkvKiAyNTZNQiAqLwotCWVsc2UgaWYgKHNldGRyYW0oMiwxMyw5LDQpID09IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgMHgxMDAwMDAwMCkpCisJZWxzZSBpZiAoc2V0ZHJhbSgyLDEzLDksNCkgPT0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgxMDAwMDAwMCkpCiAJCXNpemUgPSAweDEwMDAwMDAwOwkvKiAyNTZNQiAqLwotCWVsc2UgaWYgKHNldGRyYW0oMSwxMyw5LDQpID09IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgMHgwODAwMDAwMCkpCisJZWxzZSBpZiAoc2V0ZHJhbSgxLDEzLDksNCkgPT0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgwODAwMDAwMCkpCiAJCXNpemUgPSAweDA4MDAwMDAwOwkvKiAxMjhNQiAqLwotCWVsc2UgaWYgKHNldGRyYW0oMiwxMiw5LDQpID09IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgMHgwODAwMDAwMCkpCisJZWxzZSBpZiAoc2V0ZHJhbSgyLDEyLDksNCkgPT0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgwODAwMDAwMCkpCiAJCXNpemUgPSAweDA4MDAwMDAwOwkvKiAxMjhNQiAqLwotCWVsc2UgaWYgKHNldGRyYW0oMSwxMiw5LDQpID09IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgMHgwNDAwMDAwMCkpCisJZWxzZSBpZiAoc2V0ZHJhbSgxLDEyLDksNCkgPT0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgwNDAwMDAwMCkpCiAJCXNpemUgPSAweDA0MDAwMDAwOwkvKiA2NE1CICovCiAKIAltc3IgPSBtZm1zcigpOwogCW10bXNyKG1zciAmIH4oTVNSX0lSIHwgTVNSX0RSKSk7Ci0JbXRzcHIoSUJBVDJMLCBDRkdfSUJBVDJMKTsKLQltdHNwcihJQkFUMlUsIENGR19JQkFUMlUpOwotCW10c3ByKERCQVQyTCwgQ0ZHX0RCQVQyTCk7Ci0JbXRzcHIoREJBVDJVLCBDRkdfREJBVDJVKTsKKwltdHNwcihJQkFUMkwsIENPTkZJR19TWVNfSUJBVDJMKTsKKwltdHNwcihJQkFUMlUsIENPTkZJR19TWVNfSUJBVDJVKTsKKwltdHNwcihEQkFUMkwsIENPTkZJR19TWVNfREJBVDJMKTsKKwltdHNwcihEQkFUMlUsIENPTkZJR19TWVNfREJBVDJVKTsKIAltdG1zcihtc3IpOwogCiAJcmV0dXJuIHNpemU7CmRpZmYgLS1naXQgYS9ib2FyZC9ldHgwOTQvZXR4MDk0LmMgYi9ib2FyZC9ldHgwOTQvZXR4MDk0LmMKaW5kZXggNzgwNjUxOS4uZDZmNjM4YSAxMDA2NDQKLS0tIGEvYm9hcmQvZXR4MDk0L2V0eDA5NC5jCisrKyBiL2JvYXJkL2V0eDA5NC9ldHgwOTQuYwpAQCAtMTI3LDcgKzEyNyw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwLCBzaXplX2IxLCBzaXplOCwgc2l6ZTk7CiAKQEAgLTE0MCw3ICsxNDAsNyBAQAogCSAqIHdpdGggdHdvIFNEUkFNIGJhbmtzIG9yIGZvdXIgY3ljbGVzIGV2ZXJ5IDMxLjIgdXMgd2l0aCBvbmUKIAkgKiBiYW5rLiBJdCB3aWxsIGJlIGFkanVzdGVkIGFmdGVyIG1lbW9yeSBzaXppbmcuCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS180SzsJLyogTVBUUFJfUFRQX0RJVjMyIDB4MDIwMCAqLworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMUJLXzRLOwkvKiBNUFRQUl9QVFBfRElWMzIgMHgwMjAwICovCiAKIAkvKiBBMyhTRFJBTSk9MCAgICAgID0+IEJ1cnN0dHlwZSA9IFNlcXVlbnRpYWwKIAkgKiBBMi1BMChTRFJBTSk9MDEwID0+IEJ1cnN0IGxlbmd0aCA9IDQKQEAgLTE1MywxNSArMTUzLDE1IEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKIAkgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAKIAlpZiAoYm9hcmRfdHlwZSA9PSAwKSB7CS8qICJMIiB0eXBlIGJvYXJkcyBoYXZlIG9ubHkgb25lIGJhbmsgU0RSQU0gKi8KLQkJbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAJfQogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xODYsNyArMTg2LDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0UyX1BSRUxJTSwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0UyX1BSRUxJTSwKIAkJCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJdWRlbGF5ICgxMDAwKTsKQEAgLTE5NCw3ICsxOTQsNyBAQAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTJfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTJfUFJFTElNLAogCQkJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewkJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgKi8KQEAgLTIwMiw3ICsyMDIsNyBAQAogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOSBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9IGVsc2UgewkJCQkJLyogYmFjayB0byA4IGNvbHVtbnMgICAgICAgICAgICAqLwogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9CkBAIC0yMzAsNyArMjMwLDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSAmJiAoc2l6ZV9iMSA8IDB4MDIwMDAwMDApKSB7CiAJCS8qIHJlZHVjZSB0byAxNS42IHVzICg2Mi40IHVzIC8gcXVhZCkgKi8KLQkJbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS180SzsJLypESVYxNiAqLworCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS180SzsJLypESVYxNiAqLwogCQl1ZGVsYXkgKDEwMDApOwogCX0KIApAQCAtMjM5LDE4ICsyMzksMTggQEAKIAkgKi8KIAlpZiAoc2l6ZV9iMSA+IHNpemVfYjApIHsJLyogU0RSQU0gQmFuayAxIGlzIGJpZ2dlciAtIG1hcCBmaXJzdCAgICovCiAKLQkJbWVtY3RsLT5tZW1jX29yMyA9ICgoLXNpemVfYjEpICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOworCQltZW1jdGwtPm1lbWNfb3IzID0gKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCQltZW1jdGwtPm1lbWNfYnIzID0KLQkJCShDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwkJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAKIAkJaWYgKHNpemVfYjAgPiAwKSB7CiAJCQkvKgogCQkJICogUG9zaXRpb24gQmFuayAwIGltbWVkaWF0ZWx5IGFib3ZlIEJhbmsgMQogCQkJICovCiAJCQltZW1jdGwtPm1lbWNfb3IyID0KLQkJCQkoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJCQkoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CiAJCQltZW1jdGwtPm1lbWNfYnIyID0KLQkJCQkoKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQorCQkJCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCQkJCSsgc2l6ZV9iMTsKIAkJfSBlbHNlIHsKIAkJCXVuc2lnbmVkIGxvbmcgcmVnOwpAQCAtMjY0LDI0ICsyNjQsMjQgQEAKIAogCQkJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAkJCXJlZyA9IG1lbWN0bC0+bWVtY19tcHRwcjsKLQkJCXJlZyA+Pj0gMTsJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwkJCXJlZyA+Pj0gMTsJLyogcmVkdWNlIHRvIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLIC8gXzRLICovCiAJCQltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAJCX0KIAogCX0gZWxzZSB7CQkJLyogU0RSQU0gQmFuayAwIGlzIGJpZ2dlciAtIG1hcCBmaXJzdCAgICovCiAKLQkJbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOworCQltZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCQltZW1jdGwtPm1lbWNfYnIyID0KLQkJCQkoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJCQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCQlpZiAoc2l6ZV9iMSA+IDApIHsKIAkJCS8qCiAJCQkgKiBQb3NpdGlvbiBCYW5rIDEgaW1tZWRpYXRlbHkgYWJvdmUgQmFuayAwCiAJCQkgKi8KIAkJCW1lbWN0bC0+bWVtY19vcjMgPQotCQkJCQkoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJCQkJKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCQkJbWVtY3RsLT5tZW1jX2JyMyA9Ci0JCQkJCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpCisJCQkJCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCQkJCQkrIHNpemVfYjA7CiAJCX0gZWxzZSB7CiAJCQl1bnNpZ25lZCBsb25nIHJlZzsKQEAgLTI5NSw3ICsyOTUsNyBAQAogCiAJCQkvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwogCQkJcmVnID0gbWVtY3RsLT5tZW1jX21wdHByOwotCQkJcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ0ZHX01QVFBSXzFCS184SyAvIF80SyAqLworCQkJcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAkJCW1lbWN0bC0+bWVtY19tcHRwciA9IHJlZzsKIAkJfQogCX0KQEAgLTMxOCw3ICszMTgsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMzQzLDcgKzM0Myw3IEBACiAJdW5zaWduZWQgc2hvcnQgcmRfbXNrID0gMHgwMkEwOwogCiAJLyogSFctSUQgcGluLWRlZmluaXRpb24gKi8KLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWltbXItPmltX2lvcG9ydC5pb3BfcGRkaXIgJj0gfihyZF9tc2spOwogCWltbXItPmltX2lvcG9ydC5pb3BfcGRwYXIgJj0gfihyZF9tc2spOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXR4MDk0L2ZsYXNoLmMgYi9ib2FyZC9ldHgwOTQvZmxhc2guYwppbmRleCA5OGE3YzBjLi5mYTUxYzkwIDEwMDY0NAotLS0gYS9ib2FyZC9ldHgwOTQvZmxhc2guYworKysgYi9ib2FyZC9ldHgwOTQvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwLCBzaXplX2IxOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC03NSw0NyArNzUsNDcgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKICNpZmRlZiBDT05GSUdfRkxBU0hfMTZCSVQKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WIHwgQlJfUFNfMTY7IC8qIDE2IEJpdCBkYXRhIHBvcnQgKi8KKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfViB8IEJSX1BTXzE2OyAvKiAxNiBCaXQgZGF0YSBwb3J0ICovCiAjZWxzZQotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAjZW5kaWYKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAogCWlmIChzaXplX2IxKSB7Ci0JCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7CisJCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOwogI2lmZGVmIENPTkZJR19GTEFTSF8xNkJJVAotCQltZW1jdGwtPm1lbWNfYnIxID0gKChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CisJCW1lbWN0bC0+bWVtY19icjEgPSAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CiAJCQkJICAgIEJSX01TX0dQQ00gfCBCUl9WIHwgQlJfUFNfMTY7CiAjZWxzZQotCQltZW1jdGwtPm1lbWNfYnIxID0gKChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CisJCW1lbWN0bC0+bWVtY19icjEgPSAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CiAJCQkJICAgIEJSX01TX0dQQ00gfCBCUl9WOwogI2VuZGlmCiAKIAkJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKKwkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApLAogCQkJCQkgICZmbGFzaF9pbmZvWzFdKTsKIAotCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwLCAmZmxhc2hfaW5mb1sxXSk7CisJCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwLCAmZmxhc2hfaW5mb1sxXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgICAmZmxhc2hfaW5mb1sxXSk7CiAjZW5kaWYKIAl9IGVsc2UgewpAQCAtMzg4LDEwICszODgsMTAgQEAKIAogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKSB7CkBAIC01NDgsNyArNTQ4LDcgQEAKICNlbHNlCiAJCQl3aGlsZSAoKHNlY3RfYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKICNlbmRpZgotCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCXJldHVybiAxOwogCQkJCX0KQEAgLTY5Myw3ICs2OTMsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9zaG9ydCAqKWRlc3QpICYgMHgwMDgwKSAhPSAoaGlnaF9kYXRhICYgMHgwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpAQCAtNzMzLDcgKzczMyw3IEBACiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7CiAjZW5kaWYKIAotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNDUxMC9mbGFzaC5jIGIvYm9hcmQvZXZiNDUxMC9mbGFzaC5jCmluZGV4IGJjZWZhZmMuLmM5YzZlMDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjQ1MTAvZmxhc2guYworKysgYi9ib2FyZC9ldmI0NTEwL2ZsYXNoLmMKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxmbGFzaC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogdHlwZWRlZiBlbnVtIHsKIAlGTEFTSF9ERVZfVTlfNTEyS0IgPSAwLApAQCAtMzI3LDcgKzMyNyw3IEBACiAJczE2IGFtZDE2MCA9IC0xOwogCXUzMiBhbWQxNjBiYXNlID0gMDsKIAotI2lmIENGR19NQVhfRkxBU0hfQkFOS1MgPT0gMgorI2lmIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDIKIAlzMTYgYW1kMDQwID0gLTE7CiAJdTMyIGFtZDA0MGJhc2UgPSAwOwogI2VuZGlmCkBAIC0zMzYsNyArMzM2LDcgQEAKIAlpZiAoX2RldGVjdEZsYXNoIChGTEFTSF9ERVZfVTdfMk1CLCBQSFlTX0ZMQVNIXzEsIDB4MSwgMHg0OSkpIHsKIAkJYW1kMTYwID0gMDsKIAkJYW1kMTYwYmFzZSA9IFBIWVNfRkxBU0hfMTsKLSNpZiBDRkdfTUFYX0ZMQVNIX0JBTktTID09IDEKKyNpZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA9PSAxCiAJfQogI2Vsc2UKIAkJaWYgKF9kZXRlY3RGbGFzaApAQCAtNDAxLDcgKzQwMSw3IEBACiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKIAkJICAgICAgIENPTkZJR19FTlZfQUREUiwgQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TSVpFIC0gMSwgaW5mbyk7CiAKLSNpZiBDRkdfTUFYX0ZMQVNIX0JBTktTID09IDIKKyNpZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyA9PSAyCiAJLyogQ29uZmlndXJlIEFNRCBBbTI5TFYwNDBCICg1MTJLQikgKi8KIAlpbmZvID0gJmZsYXNoX2luZm9bYW1kMDQwXTsKIAlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX0RFVl9VOV81MTJLQjsKQEAgLTQyMSw3ICs0MjEsNyBAQAogI2VuZGlmCiAKIAlyZXR1cm4gZmxhc2hfaW5mb1swXS5zaXplCi0jaWYgQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAyCisjaWYgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPT0gMgogCQkrIGZsYXNoX2luZm9bMV0uc2l6ZQogI2VuZGlmCiAJCTsKQEAgLTQ3OCw3ICs0NzgsNyBAQAogCQkJZXJyb3IgPSBfZmxhc2hfcG9sbCAoaW5mby0+Zmxhc2hfaWQsCiAJCQkJCSAgICAgaW5mby0+CiAJCQkJCSAgICAgc3RhcnRbaV0gfCBDQUNIRV9ESVNBQkxFX01BU0ssCi0JCQkJCSAgICAgMHhGRiwgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpOworCQkJCQkgICAgIDB4RkYsIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCk7CiAJCQlGTEFTSF9DTURfUkVTRVQgKGluZm8tPmZsYXNoX2lkLAogCQkJCQkgKGluZm8tPgogCQkJCQkgIHN0YXJ0WzBdIHwgQ0FDSEVfRElTQUJMRV9NQVNLKSk7CkBAIC01MjQsNyArNTI0LDcgQEAKIAkJLyogIENoZWNrIGlmIHRoZSB3cml0ZSBpcyBkb25lICovCiAJCWZvciAoaSA9IDA7IGkgPCAweGZmOyBpKyspOwogCQllcnJvciA9IF9mbGFzaF9wb2xsIChpbmZvLT5mbGFzaF9pZCwgKHUzMikgYnAsICpicHMsCi0JCQkJICAgICBDRkdfRkxBU0hfV1JJVEVfVE9VVCk7CisJCQkJICAgICBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpOwogCQlpZiAoZXJyb3IpIHsKIAkJCXJldHVybiBlcnJvcjsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvZXZiNjQyNjAuYyBiL2JvYXJkL2V2YjY0MjYwL2V2YjY0MjYwLmMKaW5kZXggYmMxMDhkMC4uODA3NTZhNSAxMDA2NDQKLS0tIGEvYm9hcmQvZXZiNjQyNjAvZXZiNjQyNjAuYworKysgYi9ib2FyZC9ldmI2NDI2MC9ldmI2NDI2MC5jCkBAIC01Nyw3ICs1Nyw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIHRoaXMgaXMgdGhlIGN1cnJlbnQgR1QgcmVnaXN0ZXIgc3BhY2UgbG9jYXRpb24gKi8KLS8qIGl0IHN0YXJ0cyBhdCBDRkdfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENGR19HVF9SRUdTICovCisvKiBpdCBzdGFydHMgYXQgQ09ORklHX1NZU19ERkxfR1RfUkVHUyBidXQgbW92ZXMgbGF0ZXIgdG8gQ09ORklHX1NZU19HVF9SRUdTICovCiAKIC8qIFVuZm9ydHVuYXRlbHksIHdlIGNhbnQgY2hhbmdlIGl0IHdoaWxlIHdlIGFyZSBpbiBmbGFzaCwgc28gd2UgaW5pdGlhbGl6ZSBpdAogICogdG8gdGhlICJmaW5hbCIgdmFsdWUuIFRoaXMgbWVhbnMgdGhhdCBhbnkgZGVidWdfbGVkIGNhbGxzIGJlZm9yZQpAQCAtNjUsNyArNjUsNyBAQAogICogU2VlIGFsc28gbXlfcmVtYXBfZ3RfcmVncyBiZWxvdy4gKE5UTCkKICAqLwogCi11bnNpZ25lZCBpbnQgSU5URVJOQUxfUkVHX0JBU0VfQUREUiA9IENGR19HVF9SRUdTOwordW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDT05GSUdfU1lTX0dUX1JFR1M7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtMTAwLDI2ICsxMDAsMjYgQEAKIHsKIAkvKiBtb3ZlIFBDSSBzdHVmZiBvdXQgb2YgdGhlIHdheSAtIE5UTCAqLwogCS8qIG1hcCBQQ0kgSG9zdCAwICovCi0JcGNpTWFwU3BhY2UoUENJX0hPU1QwLCBQQ0lfUkVHSU9OMCwgQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UsCi0JCUNGR19QQ0kwXzBfTUVNX1NQQUNFLCBDRkdfUENJMF9NRU1fU0laRSk7CisJcGNpTWFwU3BhY2UoUENJX0hPU1QwLCBQQ0lfUkVHSU9OMCwgQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFLAorCQlDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UsIENPTkZJR19TWVNfUENJMF9NRU1fU0laRSk7CiAKIAlwY2lNYXBTcGFjZShQQ0lfSE9TVDAsIFBDSV9SRUdJT04xLCAwLCAwLCAwKTsKIAlwY2lNYXBTcGFjZShQQ0lfSE9TVDAsIFBDSV9SRUdJT04yLCAwLCAwLCAwKTsKIAlwY2lNYXBTcGFjZShQQ0lfSE9TVDAsIFBDSV9SRUdJT04zLCAwLCAwLCAwKTsKIAotCXBjaU1hcFNwYWNlKFBDSV9IT1NUMCwgUENJX0lPLCBDRkdfUENJMF9JT19TUEFDRV9QQ0ksCi0JCUNGR19QQ0kwX0lPX1NQQUNFLCBDRkdfUENJMF9JT19TSVpFKTsKKwlwY2lNYXBTcGFjZShQQ0lfSE9TVDAsIFBDSV9JTywgQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFX1BDSSwKKwkJQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFLCBDT05GSUdfU1lTX1BDSTBfSU9fU0laRSk7CiAKIAkvKiBtYXAgUENJIEhvc3QgMSAqLwotCXBjaU1hcFNwYWNlKFBDSV9IT1NUMSwgUENJX1JFR0lPTjAsIENGR19QQ0kxXzBfTUVNX1NQQUNFLAotCQlDRkdfUENJMV8wX01FTV9TUEFDRSwgQ0ZHX1BDSTFfTUVNX1NJWkUpOworCXBjaU1hcFNwYWNlKFBDSV9IT1NUMSwgUENJX1JFR0lPTjAsIENPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRSwKKwkJQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFLCBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUpOwogCiAJcGNpTWFwU3BhY2UoUENJX0hPU1QxLCBQQ0lfUkVHSU9OMSwgMCwgMCwgMCk7CiAJcGNpTWFwU3BhY2UoUENJX0hPU1QxLCBQQ0lfUkVHSU9OMiwgMCwgMCwgMCk7CiAJcGNpTWFwU3BhY2UoUENJX0hPU1QxLCBQQ0lfUkVHSU9OMywgMCwgMCwgMCk7CiAKLQlwY2lNYXBTcGFjZShQQ0lfSE9TVDEsIFBDSV9JTywgQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJLAotCQlDRkdfUENJMV9JT19TUEFDRSwgQ0ZHX1BDSTFfSU9fU0laRSk7CisJcGNpTWFwU3BhY2UoUENJX0hPU1QxLCBQQ0lfSU8sIENPTkZJR19TWVNfUENJMV9JT19TUEFDRV9QQ0ksCisJCUNPTkZJR19TWVNfUENJMV9JT19TUEFDRSwgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUpOwogCiAJLyogUENJIGludGVyZmFjZSBzZXR0aW5ncyAqLwogCUdUX1JFR19XUklURShQQ0lfMFRJTUVPVVRfUkVUUlksIDB4ZmZmZik7CkBAIC0yMDEsNyArMjAxLDcgQEAKIAkgKiB0aGF0IGlmIGl0J3Mgbm90IGF0IHRoZSBwb3dlci1vbiBsb2NhdGlvbiwgaXQncyB3aGVyZSB3ZSBwdXQKIAkgKiBpdCBsYXN0IHRpbWUuIChodWJlcikKIAkgKi8KLQlteV9yZW1hcF9ndF9yZWdzKENGR19ERkxfR1RfUkVHUywgQ0ZHX0dUX1JFR1MpOworCW15X3JlbWFwX2d0X3JlZ3MoQ09ORklHX1NZU19ERkxfR1RfUkVHUywgQ09ORklHX1NZU19HVF9SRUdTKTsKIAogCWd0X3BjaV9jb25maWcoKTsKIApAQCAtMjE4LDcgKzIxOCw3IEBACiAJR1RfUkVHX1dSSVRFKENQVV9JTlRfM19NQVNLLCAwKTsKIAogCS8qIG5vdywgb250byB0aGUgY29uZmlndXJhdGlvbiAqLwotCUdUX1JFR19XUklURShTRFJBTV9DT05GSUdVUkFUSU9OLCBDRkdfU0RSQU1fQ09ORklHKTsKKwlHVF9SRUdfV1JJVEUoU0RSQU1fQ09ORklHVVJBVElPTiwgQ09ORklHX1NZU19TRFJBTV9DT05GSUcpOwogCiAJLyogLS0tLS0gREVWSUNFIEJVUyBTRVRUSU5HUyAtLS0tLS0gKi8KIApAQCAtMjQ1LDYxICsyNDUsNjEgQEAKIAkvKiBadW1hIGhhcyBubyBTUkFNICovCiAJc3JhbV9ib290ID0gMDsKICNlbHNlCi0JaWYgKG1lbW9yeUdldERldmljZUJhc2VBZGRyZXNzKERFVklDRTApICYmIDB4ZmZmMDAwMDAgPT0gQ0ZHX01PTklUT1JfQkFTRSkKKwlpZiAobWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MoREVWSUNFMCkgJiYgMHhmZmYwMDAwMCA9PSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkKIAkJc3JhbV9ib290ID0gMTsKICNlbmRpZgogCi0JCW1lbW9yeU1hcERldmljZVNwYWNlKERFVklDRTAsIENGR19ERVYwX1NQQUNFLCBDRkdfREVWMF9TSVpFKTsKKwkJbWVtb3J5TWFwRGV2aWNlU3BhY2UoREVWSUNFMCwgQ09ORklHX1NZU19ERVYwX1NQQUNFLCBDT05GSUdfU1lTX0RFVjBfU0laRSk7CiAKLQltZW1vcnlNYXBEZXZpY2VTcGFjZShERVZJQ0UxLCBDRkdfREVWMV9TUEFDRSwgQ0ZHX0RFVjFfU0laRSk7Ci0JbWVtb3J5TWFwRGV2aWNlU3BhY2UoREVWSUNFMiwgQ0ZHX0RFVjJfU1BBQ0UsIENGR19ERVYyX1NJWkUpOwotCW1lbW9yeU1hcERldmljZVNwYWNlKERFVklDRTMsIENGR19ERVYzX1NQQUNFLCBDRkdfREVWM19TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZShERVZJQ0UxLCBDT05GSUdfU1lTX0RFVjFfU1BBQ0UsIENPTkZJR19TWVNfREVWMV9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZShERVZJQ0UyLCBDT05GSUdfU1lTX0RFVjJfU1BBQ0UsIENPTkZJR19TWVNfREVWMl9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZShERVZJQ0UzLCBDT05GSUdfU1lTX0RFVjNfU1BBQ0UsIENPTkZJR19TWVNfREVWM19TSVpFKTsKIAogCS8qIGNvbmZpZ3VyZSBkZXZpY2UgdGltaW5nICovCi0jaWZkZWYgQ0ZHX0RFVjBfUEFSCisjaWZkZWYgQ09ORklHX1NZU19ERVYwX1BBUgogCWlmICghc3JhbV9ib290KQotCQlHVF9SRUdfV1JJVEUoREVWSUNFX0JBTkswUEFSQU1FVEVSUywgQ0ZHX0RFVjBfUEFSKTsKKwkJR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LMFBBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWMF9QQVIpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfREVWMV9QQVIKLQlHVF9SRUdfV1JJVEUoREVWSUNFX0JBTksxUEFSQU1FVEVSUywgQ0ZHX0RFVjFfUEFSKTsKKyNpZmRlZiBDT05GSUdfU1lTX0RFVjFfUEFSCisJR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LMVBBUkFNRVRFUlMsIENPTkZJR19TWVNfREVWMV9QQVIpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RFVjJfUEFSCi0JR1RfUkVHX1dSSVRFKERFVklDRV9CQU5LMlBBUkFNRVRFUlMsIENGR19ERVYyX1BBUik7CisjaWZkZWYgQ09ORklHX1NZU19ERVYyX1BBUgorCUdUX1JFR19XUklURShERVZJQ0VfQkFOSzJQQVJBTUVURVJTLCBDT05GSUdfU1lTX0RFVjJfUEFSKTsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0VWQjY0MjYwCi0jaWZkZWYgQ0ZHXzMyQklUX0JPT1RfUEFSCisjaWZkZWYgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUgogCS8qIGRldGVjdCBpZiB3ZSBhcmUgYm9vdGluZyBmcm9tIHRoZSAzMiBiaXQgZmxhc2ggKi8KIAlpZiAoR1RSRUdSRUFEKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUykgJiAoMHgzIDw8IDIwKSkgewogCQkvKiAzMiBiaXQgYm9vdCBmbGFzaCAqLwotCQlHVF9SRUdfV1JJVEUoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOwotCQlHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfMzJCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ09ORklHX1NZU184QklUX0JPT1RfUEFSKTsKKwkJR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUik7CiAJfSBlbHNlIHsKIAkJLyogOCBiaXQgYm9vdCBmbGFzaCAqLwotCQlHVF9SRUdfV1JJVEUoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ0ZHXzMyQklUX0JPT1RfUEFSKTsKLQkJR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ0ZHXzhCSVRfQk9PVF9QQVIpOworCQlHVF9SRUdfV1JJVEUoREVWSUNFX0JBTkszUEFSQU1FVEVSUywgQ09ORklHX1NZU18zMkJJVF9CT09UX1BBUik7CisJCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENPTkZJR19TWVNfOEJJVF9CT09UX1BBUik7CiAJfQogI2Vsc2UKIAkvKiA4IGJpdCBib290IGZsYXNoIG9ubHkgKi8KLQlHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfOEJJVF9CT09UX1BBUik7CisJR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ09ORklHX1NZU184QklUX0JPT1RfUEFSKTsKICNlbmRpZgogI2Vsc2UgLyogQ09ORklHX0VWQjY0MjYwIG5vdCBkZWZpbmVkICovCiAJCS8qIFdlIGFyZSBib290aW5nIGZyb20gMTYtYml0IGZsYXNoLgogCQkgKi8KLQlHVF9SRUdfV1JJVEUoREVWSUNFX0JPT1RfQkFOS19QQVJBTUVURVJTLCBDRkdfMTZCSVRfQk9PVF9QQVIpOworCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENPTkZJR19TWVNfMTZCSVRfQk9PVF9QQVIpOwogI2VuZGlmCiAKIAlndF9jcHVfY29uZmlnKCk7CiAKIAkvKiBNUFAgc2V0dXAgKi8KLQlHVF9SRUdfV1JJVEUoTVBQX0NPTlRST0wwLCBDRkdfTVBQX0NPTlRST0xfMCk7Ci0JR1RfUkVHX1dSSVRFKE1QUF9DT05UUk9MMSwgQ0ZHX01QUF9DT05UUk9MXzEpOwotCUdUX1JFR19XUklURShNUFBfQ09OVFJPTDIsIENGR19NUFBfQ09OVFJPTF8yKTsKLQlHVF9SRUdfV1JJVEUoTVBQX0NPTlRST0wzLCBDRkdfTVBQX0NPTlRST0xfMyk7CisJR1RfUkVHX1dSSVRFKE1QUF9DT05UUk9MMCwgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wKTsKKwlHVF9SRUdfV1JJVEUoTVBQX0NPTlRST0wxLCBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEpOworCUdUX1JFR19XUklURShNUFBfQ09OVFJPTDIsIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMik7CisJR1RfUkVHX1dSSVRFKE1QUF9DT05UUk9MMywgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zKTsKIAotCUdUX1JFR19XUklURShHUFBfTEVWRUxfQ09OVFJPTCwgQ0ZHX0dQUF9MRVZFTF9DT05UUk9MKTsKLQlHVF9SRUdfV1JJVEUoU0VSSUFMX1BPUlRfTVVMVElQTEVYLCBDRkdfU0VSSUFMX1BPUlRfTVVYKTsKKwlHVF9SRUdfV1JJVEUoR1BQX0xFVkVMX0NPTlRST0wsIENPTkZJR19TWVNfR1BQX0xFVkVMX0NPTlRST0wpOworCUdUX1JFR19XUklURShTRVJJQUxfUE9SVF9NVUxUSVBMRVgsIENPTkZJR19TWVNfU0VSSUFMX1BPUlRfTVVYKTsKIAogCXJldHVybiAwOwogfQpAQCAtMzA5LDcgKzMwOSw3IEBACiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7CiAJaWNhY2hlX2VuYWJsZSgpOwotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAlsMmNhY2hlX2VuYWJsZSgpOwogI2VuZGlmCiAKQEAgLTMzMCw5ICszMzAsOSBAQAogCSAqIGJhY2sgdG8gdGhlIHdheSB0aGV5IHNob3VsZCBiZS4gKHdlJ3JlIHJ1bm5pbmcgZnJvbSBtYWluCiAJICogbWVtb3J5IGF0IHRoaXMgcG9pbnQgbm93ICovCiAKLQlpZiAobWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MoREVWSUNFMCkgPT0gQ0ZHX01PTklUT1JfQkFTRSkgewotCQltZW1vcnlNYXBEZXZpY2VTcGFjZShERVZJQ0UwLCBDRkdfREVWMF9TUEFDRSwgQ0ZHX0RFVjBfU0laRSk7Ci0JCW1lbW9yeU1hcERldmljZVNwYWNlKEJPT1RfREVWSUNFLCBDRkdfRkxBU0hfQkFTRSwgXzFNKTsKKwlpZiAobWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MoREVWSUNFMCkgPT0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpIHsKKwkJbWVtb3J5TWFwRGV2aWNlU3BhY2UoREVWSUNFMCwgQ09ORklHX1NZU19ERVYwX1NQQUNFLCBDT05GSUdfU1lTX0RFVjBfU0laRSk7CisJCW1lbW9yeU1hcERldmljZVNwYWNlKEJPT1RfREVWSUNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIF8xTSk7CiAJfQogCiAJLyogbm93LCBqdW1wIHRvIHRoZSBtYWluIFUtQm9vdCBib2FyZCBpbml0IGNvZGUgKi8KQEAgLTM1MCw3ICszNTAsNyBAQAogaW50CiBjaGVja2JvYXJkICh2b2lkKQogewotCXB1dHMgKCJCb2FyZDogIiBDRkdfQk9BUkRfTkFNRSAiXG4iKTsKKwlwdXRzICgiQm9hcmQ6ICIgQ09ORklHX1NZU19CT0FSRF9OQU1FICJcbiIpOwogCXJldHVybiAoMCk7CiB9CiAKQEAgLTM2NSwyOSArMzY1LDI5IEBACiAJaWYgKG1vZGUgPT0gMSkgewogCQlzd2l0Y2ggKGxlZCkgewogCQljYXNlIDA6Ci0JCQlhZGRyID0gKGludCAqKSgodW5zaWduZWQgaW50KUNGR19ERVYxX1NQQUNFIHwgMHgwODAwMCk7CisJCQlhZGRyID0gKGludCAqKSgodW5zaWduZWQgaW50KUNPTkZJR19TWVNfREVWMV9TUEFDRSB8IDB4MDgwMDApOwogCQkJYnJlYWs7CiAKIAkJY2FzZSAxOgotCQkJYWRkciA9IChpbnQgKikoKHVuc2lnbmVkIGludClDRkdfREVWMV9TUEFDRSB8IDB4MGMwMDApOworCQkJYWRkciA9IChpbnQgKikoKHVuc2lnbmVkIGludClDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfCAweDBjMDAwKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMjoKLQkJCWFkZHIgPSAoaW50ICopKCh1bnNpZ25lZCBpbnQpQ0ZHX0RFVjFfU1BBQ0UgfCAweDEwMDAwKTsKKwkJCWFkZHIgPSAoaW50ICopKCh1bnNpZ25lZCBpbnQpQ09ORklHX1NZU19ERVYxX1NQQUNFIHwgMHgxMDAwMCk7CiAJCQlicmVhazsKIAkJfQogCX0gZWxzZSBpZiAobW9kZSA9PSAwKSB7CiAJCXN3aXRjaCAobGVkKSB7CiAJCWNhc2UgMDoKLQkJCWFkZHIgPSAoaW50ICopKCh1bnNpZ25lZCBpbnQpQ0ZHX0RFVjFfU1BBQ0UgfCAweDE0MDAwKTsKKwkJCWFkZHIgPSAoaW50ICopKCh1bnNpZ25lZCBpbnQpQ09ORklHX1NZU19ERVYxX1NQQUNFIHwgMHgxNDAwMCk7CiAJCQlicmVhazsKIAogCQljYXNlIDE6Ci0JCQlhZGRyID0gKGludCAqKSgodW5zaWduZWQgaW50KUNGR19ERVYxX1NQQUNFIHwgMHgxODAwMCk7CisJCQlhZGRyID0gKGludCAqKSgodW5zaWduZWQgaW50KUNPTkZJR19TWVNfREVWMV9TUEFDRSB8IDB4MTgwMDApOwogCQkJYnJlYWs7CiAKIAkJY2FzZSAyOgotCQkJYWRkciA9IChpbnQgKikoKHVuc2lnbmVkIGludClDRkdfREVWMV9TUEFDRSB8IDB4MWMwMDApOworCQkJYWRkciA9IChpbnQgKikoKHVuc2lnbmVkIGludClDT05GSUdfU1lTX0RFVjFfU1BBQ0UgfCAweDFjMDAwKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvZmxhc2guYyBiL2JvYXJkL2V2YjY0MjYwL2ZsYXNoLmMKaW5kZXggZjJkNTM5MC4uMTE1ZThjZCAxMDA2NDQKLS0tIGEvYm9hcmQvZXZiNjQyNjAvZmxhc2guYworKysgYi9ib2FyZC9ldmI2NDI2MC9mbGFzaC5jCkBAIC00Niw3ICs0Niw3IEBACiBpbnQgZmxhc2hfZXJhc2VfaW50ZWwoZmxhc2hfaW5mb190ICppbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCk7CiBpbnQgd3JpdGVfd29yZF9pbnRlbChiYW5rX2FkZHJfdCBhZGRyLCBiYW5rX3dvcmRfdCB2YWx1ZSk7CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTY3LDE2ICs2NywxNiBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZSwgZmxhc2hfc2l6ZTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIHRoZSBib290IGZsYXNoICovCi0JYmFzZSA9IENGR19GTEFTSF9CQVNFOwotI2lmbmRlZiBDRkdfQk9PVF9GTEFTSF9XSURUSAotI2RlZmluZSBDRkdfQk9PVF9GTEFTSF9XSURUSAkxCisJYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKKyNpZm5kZWYgQ09ORklHX1NZU19CT09UX0ZMQVNIX1dJRFRICisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9GTEFTSF9XSURUSAkxCiAjZW5kaWYKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoQ0ZHX0JPT1RfRkxBU0hfV0lEVEgsICh2dV9sb25nICopYmFzZSwKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoQ09ORklHX1NZU19CT09UX0ZMQVNIX1dJRFRILCAodnVfbG9uZyAqKWJhc2UsCiAJICAgICAgICAgICAgICAgICAgICAgICAgICZmbGFzaF9pbmZvWzBdKTsKIAogI2lmbmRlZiBDT05GSUdfUDNHNApAQCAtOTAsOSArOTAsOSBAQAogCQkJYmFzZSwgc2l6ZV9iMCwgc2l6ZV9iMDw8MjApOwogCX0KIAotCWJhc2UgPSBtZW1vcnlHZXREZXZpY2VCYXNlQWRkcmVzcyhDRkdfRVhUUkFfRkxBU0hfREVWSUNFKTsKLQlmb3IoaT0xO2k8Q0ZHX01BWF9GTEFTSF9CQU5LUztpKyspIHsKLQkgICAgdW5zaWduZWQgbG9uZyBzaXplID0gZmxhc2hfZ2V0X3NpemUoQ0ZHX0VYVFJBX0ZMQVNIX1dJRFRILCAodnVfbG9uZyAqKWJhc2UsICZmbGFzaF9pbmZvW2ldKTsKKwliYXNlID0gbWVtb3J5R2V0RGV2aWNlQmFzZUFkZHJlc3MoQ09ORklHX1NZU19FWFRSQV9GTEFTSF9ERVZJQ0UpOworCWZvcihpPTE7aTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUztpKyspIHsKKwkgICAgdW5zaWduZWQgbG9uZyBzaXplID0gZmxhc2hfZ2V0X3NpemUoQ09ORklHX1NZU19FWFRSQV9GTEFTSF9XSURUSCwgKHZ1X2xvbmcgKiliYXNlLCAmZmxhc2hfaW5mb1tpXSk7CiAKICNpZm5kZWYgQ09ORklHX1AzRzQKIAkgICAgcHJpbnRmKCJbIik7CkBAIC0xMTEsMTIgKzExMSwxMiBAQAogCSAgICBiYXNlKz1zaXplOwogCX0KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkgICAgICAgICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JICAgICAgICAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAotCSAgICAgICAgICAgICAgZmxhc2hfZ2V0X2luZm8oQ0ZHX01PTklUT1JfQkFTRSkpOworCSAgICAgICAgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJICAgICAgICAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkgICAgICAgICAgICAgIGZsYXNoX2dldF9pbmZvKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSk7CiAjZW5kaWYKIAogI2lmZGVmICBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xODMsMTMgKzE4MywxMyBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJiBiYXNlIDw9IGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSAtIDEpCiAJCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CisJcmV0dXJuIGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjgyLDcgKzY4Miw3IEBACiAJYWRkciA9ICh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCS8qIGJyb2tlbiBmb3IgMngxNjogVE9ETyAqLwogCXdoaWxlICgoYWRkclswXSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTg0Niw3ICs4NDYsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9ldmI2NDI2MC9pbnRlbF9mbGFzaC5jIGIvYm9hcmQvZXZiNjQyNjAvaW50ZWxfZmxhc2guYwppbmRleCBlZDZhMmEwLi45OTQyNjRhIDEwMDY0NAotLS0gYS9ib2FyZC9ldmI2NDI2MC9pbnRlbF9mbGFzaC5jCisrKyBiL2JvYXJkL2V2YjY0MjYwL2ludGVsX2ZsYXNoLmMKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJZG8gewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR2YWwgPSAxOwogCQkJZ290byBkb25lOwogCQl9CkBAIC0yMzQsNyArMjM0LDcgQEAKIAkJCWRvIHsKIAkJCQlub3cgPSBnZXRfdGltZXIoc3RhcnQpOwogCi0JCQkJaWYgKG5vdyAtIGVzdGFydCA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKG5vdyAtIGVzdGFydCA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0IChzZWN0ICVkKVxuIiwgc2VjdCk7CiAJCQkJCWhhZGVyciA9IDE7CiAJCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvaW50ZWxfZmxhc2guaCBiL2JvYXJkL2V2YjY0MjYwL2ludGVsX2ZsYXNoLmgKaW5kZXggZGMyYWEwMC4uY2MzYTMzOSAxMDA2NDQKLS0tIGEvYm9hcmQvZXZiNjQyNjAvaW50ZWxfZmxhc2guaAorKysgYi9ib2FyZC9ldmI2NDI2MC9pbnRlbF9mbGFzaC5oCkBAIC00Miw3ICs0Miw3IEBACiAvKiBJRCBhbmQgTG9jayBDb25maWd1cmF0aW9uICovCiAjZGVmaW5lIENISVBfUkRfSURfTE9DSwkJMHgwMQkJLyogQml0IDAgb2YgZWFjaCBieXRlICovCiAjZGVmaW5lIENISVBfUkRfSURfTUFOCQkweDg5CQkvKiBNYW51ZmFjdHVyZXIgY29kZSA9IDB4ODkgKi8KLSNkZWZpbmUgQ0hJUF9SRF9JRF9ERVYJCUNGR19GTEFTSF9JRAorI2RlZmluZSBDSElQX1JEX0lEX0RFVgkJQ09ORklHX1NZU19GTEFTSF9JRAogCiAvKiBkaW1lbnNpb25zICovCiAjZGVmaW5lIENISVBfV0lEVEgJCTIJCS8qIGNoaXBzIGFyZSBpbiAxNiBiaXQgbW9kZSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvbG9jYWwuaCBiL2JvYXJkL2V2YjY0MjYwL2xvY2FsLmgKaW5kZXggM2Q5YjQ0My4uOGEzZjRiMiAxMDA2NDQKLS0tIGEvYm9hcmQvZXZiNjQyNjAvbG9jYWwuaAorKysgYi9ib2FyZC9ldmI2NDI2MC9sb2NhbC5oCkBAIC0yNiw3ICsyNiw3IEBACiAvKiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORCAqLwogLyogI2RlZmluZSBDT05GSUdfUkFNQk9PVENPTU1BTkQgKi8KIC8qICNkZWZpbmUgQ09ORklHX05GU0JPT1RDT01NQU5EICovCi0vKiAjZGVmaW5lIENGR19BVVRPTE9BRCAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FEICovCiAvKiAjZGVmaW5lIENPTkZJR19QUkVCT09UICovCiAKIC8qIFRoZXNlIGRvbid0ICovCmRpZmYgLS1naXQgYS9ib2FyZC9ldmI2NDI2MC9taXNjLlMgYi9ib2FyZC9ldmI2NDI2MC9taXNjLlMKaW5kZXggNDM4ZGVhNi4uZjA5NTI4ZCAxMDA2NDQKLS0tIGEvYm9hcmQvZXZiNjQyNjAvbWlzYy5TCisrKyBiL2JvYXJkL2V2YjY0MjYwL21pc2MuUwpAQCAtMTYsNyArMTYsNyBAQAogYm9hcmRfcmVsb2NhdGVfcm9tOgogCW1mbHIJcjcKIAkvKiB1cGRhdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBHVCByZWdpc3RlcnMgKi8KLQlsaXMJcjExLCBDRkdfR1RfUkVHU0BoCisJbGlzCXIxMSwgQ09ORklHX1NZU19HVF9SRUdTQGgKIAkvKiBpZiB3ZSdyZSB1c2luZyBFQ0MsIHdlIG11c3QgdXNlIHRoZSBETUEgZW5naW5lIHRvIGNvcHkgb3Vyc2VsdmVzICovCiAJYmwJc3RhcnRfaWRtYV90cmFuc2Zlcl8wCiAJYmwJd2FpdF9mb3JfaWRtYV8wCkBAIC0yOSwxMiArMjksMTIgQEAKIGJvYXJkX2luaXRfZWNjOgogCW1mbHIJcjcKIAkvKiBOT1RFOiByMTAgc3RpbGwgY29udGFpbnMgdGhlIGxvY2F0aW9uIHdlJ3ZlIGJlZW4gcmVsb2NhdGVkIHRvCi0JICogd2hpY2ggaGFwcGVucyB0byBiZSBUT1BfT0ZfUkFNIC0gQ0ZHX01PTklUT1JfTEVOICovCisJICogd2hpY2ggaGFwcGVucyB0byBiZSBUT1BfT0ZfUkFNIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTiAqLwogCiAJLyogbm93IHRoYXQgd2UncmUgcnVubmluZyBmcm9tIHJhbSwgaW5pdCB0aGUgcmVzdCBvZiBtYWluIG1lbW9yeQogCSAqIGZvciBFQ0MgdXNlICovCi0JbGlzCXI4LCBDRkdfTU9OSVRPUl9MRU5AaAotCW9yaQlyOCwgcjgsIENGR19NT05JVE9SX0xFTkBsCisJbGlzCXI4LCBDT05GSUdfU1lTX01PTklUT1JfTEVOQGgKKwlvcmkJcjgsIHI4LCBDT05GSUdfU1lTX01PTklUT1JfTEVOQGwKIAogCWRpdncJcjMsIHIxMCwgcjgKIApAQCAtMTIwLDE1ICsxMjAsMTUgQEAKIAlibHIKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0JPQVJEX0FTTV9JTklUCisjaWZkZWYgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogCS8qIE5PVEU6IHRyYXNoZXMgcjMtcjcgKi8KIAkuZ2xvYmwgYm9hcmRfYXNtX2luaXQKIGJvYXJkX2FzbV9pbml0OgogCS8qIGp1c3QgbW92ZSB0aGUgR1QgcmVnaXN0ZXJzIHRvIHdoZXJlIHRoZXkgYmVsb25nICovCi0JbGlzCXIzLCBDRkdfREZMX0dUX1JFR1NAaAotCW9yaQlyMywgcjMsIENGR19ERkxfR1RfUkVHU0BsCi0JbGlzCXI0LCBDRkdfR1RfUkVHU0BoCi0Jb3JpCXI0LCByNCwgQ0ZHX0dUX1JFR1NAbAorCWxpcwlyMywgQ09ORklHX1NZU19ERkxfR1RfUkVHU0BoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19ERkxfR1RfUkVHU0BsCisJbGlzCXI0LCBDT05GSUdfU1lTX0dUX1JFR1NAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfR1RfUkVHU0BsCiAJbGkJcjUsIElOVEVSTkFMX1NQQUNFX0RFQ09ERQogCiAJLyogdGVzdCB0byBzZWUgaWYgd2UndmUgYWxyZWFkeSBtb3ZlZCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXZiNjQyNjAvbXBzYy5jIGIvYm9hcmQvZXZiNjQyNjAvbXBzYy5jCmluZGV4IDNiMzM4YzcuLjhjNGE0YzggMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjY0MjYwL21wc2MuYworKysgYi9ib2FyZC9ldmI2NDI2MC9tcHNjLmMKQEAgLTM5MCw3ICszOTAsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfWlVNQV9WMikgfHwgZGVmaW5lZChDT05GSUdfUDNHNCkKIAkvKiBmcm9tIHRjbGsgKi8KLQljbG9jayA9IChDRkdfQlVTX0haLygxNipyYXRlKSkgLSAxOworCWNsb2NrID0gKENPTkZJR19TWVNfQlVTX0haLygxNipyYXRlKSkgLSAxOwogI2Vsc2UKIAljbG9jayA9ICgzNjg2NDAwLygxNipyYXRlKSkgLSAxOwogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9ldmI2NDI2MC9wY2kuYyBiL2JvYXJkL2V2YjY0MjYwL3BjaS5jCmluZGV4IDU5YjlhY2IuLjU4MmYyNGMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjY0MjYwL3BjaS5jCisrKyBiL2JvYXJkL2V2YjY0MjYwL3BjaS5jCkBAIC02NzUsMTQgKzY3NSwxNCBAQAogCWxvY2FsX2J1c2VzWzBdID0gcGNpMF9ob3NlLmZpcnN0X2J1c25vOwogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMF9ob3NlLnJlZ2lvbnMgKyAwLAotCQkJQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMF8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kwX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCQlDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJL08gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMF9ob3NlLnJlZ2lvbnMgKyAxLAotCQkJQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJLAotCQkJQ0ZHX1BDSTBfSU9fU1BBQ0UsIENGR19QQ0kwX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkJQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFX1BDSSwKKwkJCUNPTkZJR19TWVNfUENJMF9JT19TUEFDRSwgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOwogCiAJcGNpX3NldF9vcHMgKCZwY2kwX2hvc2UsCiAJCSAgICAgcGNpX2hvc2VfcmVhZF9jb25maWdfYnl0ZV92aWFfZHdvcmQsCkBAIC03MjAsMTQgKzcyMCwxNCBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kxX2hvc2UucmVnaW9ucyArIDAsCi0JCQlDRkdfUENJMV8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kxXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTFfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJCUNPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRSwKKwkJCUNPTkZJR19TWVNfUENJMV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIEkvTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChwY2kxX2hvc2UucmVnaW9ucyArIDEsCi0JCQlDRkdfUENJMV9JT19TUEFDRV9QQ0ksCi0JCQlDRkdfUENJMV9JT19TUEFDRSwgQ0ZHX1BDSTFfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCQlDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJLAorCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFLCBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAlwY2lfc2V0X29wcyAoJnBjaTFfaG9zZSwKIAkJICAgICBwY2lfaG9zZV9yZWFkX2NvbmZpZ19ieXRlX3ZpYV9kd29yZCwKZGlmZiAtLWdpdCBhL2JvYXJkL2V2YjY0MjYwL3NkcmFtX2luaXQuYyBiL2JvYXJkL2V2YjY0MjYwL3NkcmFtX2luaXQuYwppbmRleCA5YWU0NDY1Li5lMmYwNzY5IDEwMDY0NAotLS0gYS9ib2FyZC9ldmI2NDI2MC9zZHJhbV9pbml0LmMKKysrIGIvYm9hcmQvZXZiNjQyNjAvc2RyYW1faW5pdC5jCkBAIC0zMDAsNyArMzAwLDcgQEAKIAogCURQIChwcmludGYgKCJ0cGFyIHNldCB0bzogJWRcbiIsIGluZm8tPnRwYXIpKTsKIAotI2lmZGVmIENGR19CUk9LRU5fQ0wyCisjaWZkZWYgQ09ORklHX1NZU19CUk9LRU5fQ0wyCiAJaWYgKGluZm8tPnRwYXIgPT0gMikgewogCQlpbmZvLT50cGFyID0gMzsKIAkJRFAgKHByaW50ZiAoInRwYXIgZml4ZWQtdXAgdG86ICVkXG4iLCBpbmZvLT50cGFyKSk7CkBAIC01OTgsNyArNTk4LDcgQEAKIAkgKiAgICAgICAgIGxpbWl0YXRpb246IHdlIG9ubHkgc3VwcG9ydCAyNTZNIHBlciBiYW5rIGR1ZSB0bwogCSAqICAgICAgICAgdXMgb25seSBoYXZpbmcgMSBCQVQgZm9yIGFsbCBEUkFNCiAJICovCi0JZm9yIChiYW5rX25vID0gMDsgYmFua19ubyA8IENGR19EUkFNX0JBTktTOyBiYW5rX25vKyspIHsKKwlmb3IgKGJhbmtfbm8gPSAwOyBiYW5rX25vIDwgQ09ORklHX1NZU19EUkFNX0JBTktTOyBiYW5rX25vKyspIHsKIAkJLyogc2tpcCBvdmVyIGJhbmtzIHRoYXQgYXJlIG5vdCBwb3B1bGF0ZWQgKi8KIAkJaWYgKCFjaGVja2JhbmtbYmFua19ub10pCiAJCQljb250aW51ZTsKQEAgLTYxNyw3ICs2MTcsNyBAQAogCSAqICAgICAgICAgc3BhY2UuCiAJICovCiAJZGltbV9pbmZvWzBdLmJhbmtzID0gZGltbV9pbmZvWzFdLmJhbmtzID0gMDsKLQlmb3IgKGJhbmtfbm8gPSAwOyBiYW5rX25vIDwgQ0ZHX0RSQU1fQkFOS1M7IGJhbmtfbm8rKykgeworCWZvciAoYmFua19ubyA9IDA7IGJhbmtfbm8gPCBDT05GSUdfU1lTX0RSQU1fQkFOS1M7IGJhbmtfbm8rKykgewogCQlpZiAoIWNoZWNrYmFua1tiYW5rX25vXSkKIAkJCWNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9ib2FyZC9ldmI2NDI2MC9zZXJpYWwuYyBiL2JvYXJkL2V2YjY0MjYwL3NlcmlhbC5jCmluZGV4IGYxYmNhYjMuLjlkNzExMTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V2YjY0MjYwL3NlcmlhbC5jCisrKyBiL2JvYXJkL2V2YjY0MjYwL3NlcmlhbC5jCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8Y29tbWFuZC5oPgogI2luY2x1ZGUgPGdhbGlsZW8vbWVtb3J5Lmg+CiAKLSNpZiAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjIpCisjaWYgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4xKSB8fCAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjIpCiAjaW5jbHVkZSA8bnMxNjU1MC5oPgogI2VuZGlmCiAKQEAgLTQxLDI2ICs0MSwyNiBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmIChkZWZpbmVkIENGR19JTklUX0NIQU4xKSB8fCAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMikKLWNvbnN0IE5TMTY1NTBfdCBDT01fUE9SVFNbXSA9IHsgKE5TMTY1NTBfdCkgQ0ZHX05TMTY1NTBfQ09NMSwKLQkJCQkoTlMxNjU1MF90KSBDRkdfTlMxNjU1MF9DT00yIH07CisjaWYgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4xKSB8fCAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjIpCitjb25zdCBOUzE2NTUwX3QgQ09NX1BPUlRTW10gPSB7IChOUzE2NTUwX3QpIENPTkZJR19TWVNfTlMxNjU1MF9DT00xLAorCQkJCShOUzE2NTUwX3QpIENPTkZJR19TWVNfTlMxNjU1MF9DT00yIH07CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19NUFNDCiAKIGludCBzZXJpYWxfaW5pdCAodm9pZCkKIHsKLSNpZiAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjIpCi0JaW50IGNsb2NrX2Rpdmlzb3IgPSBDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKKyNpZiAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjEpIHx8IChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMikKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKICNlbmRpZgogCiAJbXBzY19pbml0KGdkLT5iYXVkcmF0ZSk7CiAKIAkvKiBpbml0IHRoZSBEVUFSVCBjaGFucyBzbyB0aGF0IEtHREIgaW4gdGhlIGtlcm5lbCBjYW4gdXNlIHRoZW0gKi8KLSNpZmRlZiBDRkdfSU5JVF9DSEFOMQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMQogCU5TMTY1NTBfcmVpbml0KENPTV9QT1JUU1swXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMgorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCU5TMTY1NTBfcmVpbml0KENPTV9QT1JUU1sxXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKIAlyZXR1cm4gKDApOwpAQCAtOTcsMTIgKzk3LDEyIEBACiAKIGludCBzZXJpYWxfaW5pdCAodm9pZCkKIHsKLQlpbnQgY2xvY2tfZGl2aXNvciA9IENGR19OUzE2NTUwX0NMSyAvIDE2IC8gZ2QtPmJhdWRyYXRlOworCWludCBjbG9ja19kaXZpc29yID0gQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gZ2QtPmJhdWRyYXRlOwogCi0jaWZkZWYgQ0ZHX0lOSVRfQ0hBTjEKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfQ0hBTjEKIAkodm9pZClOUzE2NTUwX2luaXQoQ09NX1BPUlRTWzBdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgotI2lmZGVmIENGR19JTklUX0NIQU4yCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4yCiAJKHZvaWQpTlMxNjU1MF9pbml0KENPTV9QT1JUU1sxXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKIApAQCAtMTEzLDMyICsxMTMsMzIgQEAKIHNlcmlhbF9wdXRjKGNvbnN0IGNoYXIgYykKIHsKIAlpZiAoYyA9PSAnXG4nKQotCQlOUzE2NTUwX3B1dGMoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSwgJ1xyJyk7CisJCU5TMTY1NTBfcHV0YyhDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSwgJ1xyJyk7CiAKLQlOUzE2NTUwX3B1dGMoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSwgYyk7CisJTlMxNjU1MF9wdXRjKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dLCBjKTsKIH0KIAogaW50CiBzZXJpYWxfZ2V0Yyh2b2lkKQogewotCXJldHVybiBOUzE2NTUwX2dldGMoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSk7CisJcmV0dXJuIE5TMTY1NTBfZ2V0YyhDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSk7CiB9CiAKIGludAogc2VyaWFsX3RzdGModm9pZCkKIHsKLQlyZXR1cm4gTlMxNjU1MF90c3RjKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0pOworCXJldHVybiBOUzE2NTUwX3RzdGMoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiB2b2lkCiBzZXJpYWxfc2V0YnJnICh2b2lkKQogewotCWludCBjbG9ja19kaXZpc29yID0gQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBnZC0+YmF1ZHJhdGU7CisJaW50IGNsb2NrX2Rpdmlzb3IgPSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIC8gMTYgLyBnZC0+YmF1ZHJhdGU7CiAKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMQogCU5TMTY1NTBfcmVpbml0KENPTV9QT1JUU1swXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMgorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCU5TMTY1NTBfcmVpbml0KENPTV9QT1JUU1sxXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2V4Yml0Z2VuL2ZsYXNoLmMgYi9ib2FyZC9leGJpdGdlbi9mbGFzaC5jCmluZGV4IDc0NWZiYTIuLmNkNDVjYjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V4Yml0Z2VuL2ZsYXNoLmMKKysrIGIvYm9hcmQvZXhiaXRnZW4vZmxhc2guYwpAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxwcGM0eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNjgsNyArNjgsNyBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKIAl9CkBAIC03Niw3ICs3Niw3IEBACiAJdG90X3NpemUgPSAwOwogCiAJLyogRGV0ZWN0IEJvb3QgRmxhc2ggKi8KLQliYW5rX2FkZHIgPSBDRkdfRkxBU0gwX0JBU0U7CisJYmFua19hZGRyID0gQ09ORklHX1NZU19GTEFTSDBfQkFTRTsKIAliYW5rX3NpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKWJhbmtfYWRkciwgJmZsYXNoX2luZm9bMF0pOwogCWlmIChiYW5rX3NpemUgPiAwKSB7CiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX0NMRUFSLApAQCAtOTEsOCArOTEsOCBAQAogCXRvdF9zaXplICs9IGJhbmtfc2l6ZTsKIAogCS8qIERldGVjdCBBcHBsaWNhdGlvbiBGbGFzaCAqLwotCWJhbmtfYWRkciA9IENGR19GTEFTSDFfQkFTRTsKLQlmb3IgKGkgPSAxOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJYmFua19hZGRyID0gQ09ORklHX1NZU19GTEFTSDFfQkFTRTsKKwlmb3IgKGkgPSAxOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQliYW5rX3NpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKWJhbmtfYWRkciwgJmZsYXNoX2luZm9baV0pOwogCQlpZiAoZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQlicmVhazsKQEAgLTExMiwxMyArMTEyLDEzIEBACiAJfQogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQlDRkdfTU9OSVRPUl9CQVNFLAotCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSZmbGFzaF9pbmZvWzBdKTsKLSNpZiAweGZmZmZmZmZjID49IENGR19GTEFTSDBfQkFTRQotI2lmIDB4ZmZmZmZmZmMgPD0gQ0ZHX0ZMQVNIMF9CQVNFICsgQ0ZHX0ZMQVNIMF9TSVpFIC0gMQorI2lmIDB4ZmZmZmZmZmMgPj0gQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2lmIDB4ZmZmZmZmZmMgPD0gQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgLSAxCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAogCQkweGZmZmZmZmZjLCAweGZmZmZmZmZmLAogCQkmZmxhc2hfaW5mb1swXSk7CkBAIC00NTAsNyArNDUwLDcgQEAKIAkJCXdoaWxlICgoYWRkcjJbMF0gJiAweDAwODAwMDgwKSAhPQogCQkJCShGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKIAkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+Ci0JCQkJCSAgIENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJCSAgIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJYWRkclswXSA9IChGTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsKIAkJCQkJcmV0dXJuIDE7CkBAIC01ODEsNyArNTgxLDcgQEAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgoZGVzdDJbaV0gJiAweDAwODAwMDgwKSAhPSAoZGF0YTJbaV0gJiAweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlhZGRyMlswXSA9IChGTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZXhiaXRnZW4vaW5pdC5TIGIvYm9hcmQvZXhiaXRnZW4vaW5pdC5TCmluZGV4IDcxYWVmYjkuLjc2MDgzNWEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2V4Yml0Z2VuL2luaXQuUworKysgYi9ib2FyZC9leGJpdGdlbi9pbml0LlMKQEAgLTI2NSw3ICsyNjUsNyBAQAogCS5nbG9ibCAgc2RyYW1faW5pdAogCiBzZHJhbV9pbml0OgotI2lmIENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJYmxyCiAjZWxzZQogCW1mbHIJcjMxCkBAIC00MDIsNyArNDAyLDcgQEAKIAlhZGRpCXI5LCAwLCAxMwkvKiBiaXQgb2Zmc2V0IG9mIGFkZHJlc3NpbmcgbW9kZSBpbiBjb25maWd1cmF0aW9uIHJlZ2lzdGVyICAqLwogCXNsdwlyMjksIHIyOSwgcjkJLyogICovCiAJb3IJcjMsIHIyOSwgcjMJLyogbWVyZ2Ugc2l6ZSBjb2RlIGFuZCBhZGRyZXNzaW5nIG1vZGUgKi8KLQlvcmkJcjYsIHIzLCBDRkdfU0RSQU1fQkFTRSArIDEgLyogaW5zZXJ0IGJhc2UgYWRkcmVzcyBhbmQgZW5hYmxlIGJhbmsgKi8KKwlvcmkJcjYsIHIzLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAxIC8qIGluc2VydCBiYXNlIGFkZHJlc3MgYW5kIGVuYWJsZSBiYW5rICovCiAKIAkvKiBDYWxjdWxhdGUgYmFua3NpemUgcjE1ID0gKGRlbnNpdHkgPDwgMjIpIC8gMiAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9ib2FyZC9mYWRzL2ZhZHMuYyBiL2JvYXJkL2ZhZHMvZmFkcy5jCmluZGV4IDllNjAxZGYuLjI3OGZhMmEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZhZHMvZmFkcy5jCisrKyBiL2JvYXJkL2ZhZHMvZmFkcy5jCkBAIC0xOTAsNyArMTkwLDcgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIHN0YXRpYyBpbnQgX2RyYW1pbml0ICh1aW50IGJhc2UsIHVpbnQgbm9NYnl0ZXMsIHVpbnQgZWRvLCB1aW50IGRlbGF5KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJLyogaW5pdCB1cG0gKi8KQEAgLTI4Myw3ICsyODMsNyBAQAogCiBzdGF0aWMgdm9pZCBfZHJhbWRpc2FibGUodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19icjIgPSAweDAwMDAwMDAwOwpAQCAtNDIzLDcgKzQyMyw3IEBACiAKIHN0YXRpYyBpbnQgX2luaXRzZHJhbSh1aW50IGJhc2UsIHVpbnQgbm9NYnl0ZXMpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAl1cG1jb25maWcoVVBNQiwgKHVpbnQgKilzZHJhbV90YWJsZSxzaXplb2Yoc2RyYW1fdGFibGUpL3NpemVvZih1aW50KSk7CkBAIC01MDEsNyArNTAxLDcgQEAKIAogc3RhdGljIGludCBfaW5pdHNkcmFtKHVpbnQgYmFzZSwgdWludCBub01ieXRlcykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCXVwbWNvbmZpZyhVUE1CLCAodWludCAqKXNkcmFtX3RhYmxlLHNpemVvZihzZHJhbV90YWJsZSkvc2l6ZW9mKHVpbnQpKTsKQEAgLTU2NCw3ICs1NjQsNyBAQAogCiBzdGF0aWMgdm9pZCBfc2RyYW1kaXNhYmxlKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfYnI0ID0gMHgwMDAwMDAwMDsKQEAgLTU3Niw3ICs1NzYsNyBAQAogCiBzdGF0aWMgaW50IGluaXRzZHJhbSh1aW50IGJhc2UsIHVpbnQgKm5vTWJ5dGVzKQogewotCXVpbnQgbSA9IENGR19TRFJBTV9TSVpFPj4yMDsKKwl1aW50IG0gPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU+PjIwOwogCiAJLyogX2luaXRzZHJhbSBuZWVkcyBhY2Nlc3MgdG8gc2RyYW0gKi8KIAkqKCh1aW50ICopQkNTUjEpIHw9IEJDU1IxX1NEUkFNX0VOOyAvKiBlbmFibGUgc2RyYW0gKi8KQEAgLTY4OCw3ICs2ODgsNyBAQAogICogQ2hlY2sgQm9hcmQgSWRlbnRpdHk6CiAgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX0ZBRFMpICYmIGRlZmluZWQoQ0ZHX0RBVUdIVEVSQk9BUkQpCisjaWYgZGVmaW5lZChDT05GSUdfRkFEUykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0RBVUdIVEVSQk9BUkQpCiBzdGF0aWMgdm9pZCBjaGVja2Rib2FyZCh2b2lkKQogewogCS8qIGdldCBkYiB0eXBlIGZyb20gQkNTUiAzICovCkBAIC03MjIsNyArNzIyLDcgQEAKIAlkZWZhdWx0IDogcHJpbnRmKCIweCV4Iiwgayk7CiAJfQogfQotI2VuZGlmCS8qIGRlZmluZWQoQ09ORklHX0ZBRFMpICYmIGRlZmluZWQoQ0ZHX0RBVUdIVEVSQk9BUkQpICovCisjZW5kaWYJLyogZGVmaW5lZChDT05GSUdfRkFEUykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0RBVUdIVEVSQk9BUkQpICovCiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewpAQCAtNzgwLDggKzc4MCw4IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfUENNQ0lBKQogCi0jaWZkZWYgQ0ZHX1BDTUNJQV9NRU1fQUREUgotdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqcGNtY2lhX21lbSA9ICh1bnNpZ25lZCBjaGFyKilDRkdfUENNQ0lBX01FTV9BRERSOworI2lmZGVmIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCit2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwY21jaWFfbWVtID0gKHVuc2lnbmVkIGNoYXIqKUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOwogI2VuZGlmCiAKIGludCBwY21jaWFfaW5pdCh2b2lkKQpAQCAtNzkyLDEwICs3OTIsMTAgQEAKIAkvKgogCSoqIEVuYWJsZSB0aGUgUENNQ0lBIGZvciBhIEZsYXNoIGNhcmQuCiAJKi8KLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKIAogI2lmIDAKLQlwY21wLT5wY21jX3BicjAgPSBDRkdfUENNQ0lBX01FTV9BRERSOworCXBjbXAtPnBjbWNfcGJyMCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOwogCXBjbXAtPnBjbWNfcG9yMCA9IDB4YzAwZmYwNWQ7CiAjZW5kaWYKIApAQCAtOTI1LDI1ICs5MjUsMjUgQEAKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCi0jaWZkZWYgQ0ZHX1BDX0lERV9SRVNFVAorI2lmZGVmIENPTkZJR19TWVNfUENfSURFX1JFU0VUCiAKIHZvaWQgaWRlX3NldF9yZXNldChpbnQgb24pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJLyoKIAkgKiBDb25maWd1cmUgUEMgZm9yIElERSBSZXNldCBQaW4KIAkgKi8KIAlpZiAob24pIHsJCS8qIGFzc2VydCBSRVNFVCAqLwotCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH4oQ0ZHX1BDX0lERV9SRVNFVCk7CisJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfihDT05GSUdfU1lTX1BDX0lERV9SRVNFVCk7CiAJfSBlbHNlIHsJCS8qIHJlbGVhc2UgUkVTRVQgKi8KLQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSAgIENGR19QQ19JREVfUkVTRVQ7CisJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gICBDT05GSUdfU1lTX1BDX0lERV9SRVNFVDsKIAl9CiAKIAkvKiBwcm9ncmFtIHBvcnQgcGluIGFzIEdQSU8gb3V0cHV0ICovCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENGR19QQ19JREVfUkVTRVQpOwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNzbyAgJj0gfihDRkdfUENfSURFX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9ICAgQ0ZHX1BDX0lERV9SRVNFVDsKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH4oQ09ORklHX1NZU19QQ19JREVfUkVTRVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNzbyAgJj0gfihDT05GSUdfU1lTX1BDX0lERV9SRVNFVCk7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSAgIENPTkZJR19TWVNfUENfSURFX1JFU0VUOwogfQogCi0jZW5kaWYJLyogQ0ZHX1BDX0lERV9SRVNFVCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfUENfSURFX1JFU0VUICovCmRpZmYgLS1naXQgYS9ib2FyZC9mYWRzL2ZhZHMuaCBiL2JvYXJkL2ZhZHMvZmFkcy5oCmluZGV4IDIzMzEwYTQuLjI0ZTQzZWEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZhZHMvZmFkcy5oCisrKyBiL2JvYXJkL2ZhZHMvZmFkcy5oCkBAIC05NSw3ICs5NSw3IEBACiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19GRUNfRU5FVAotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQogI2VuZGlmCiAKQEAgLTEzMCwyNCArMTMwLDI0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogI3VuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4iCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAogCi0jZGVmaW5lCUNGR19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNTgsMjUgKzE1OCwyNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogI2lmIGRlZmluZWQoQ09ORklHX01QQzg2eEFEUykgfHwgZGVmaW5lZChDT05GSUdfTVBDODg1QURTKSAvKiBOZXcgQURTIG9yIER1ZXQgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX1NJWkUJCTB4MDA4MDAwMDAJLyogOCBNYnl0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTB4MDA4MDAwMDAJLyogOCBNYnl0ZSAqLwogLyoKICAqIDIwNDgJU0RSQU0gcm93cwogICogMTAwMAlmYWN0b3IgcyAtPiBtcwpAQCAtMTg0LDU1ICsxODQsNTUgQEAKICAqIDQJTnVtYmVyIG9mIHJlZnJlc2ggY3ljbGVzIHBlciBwZXJpb2QKICAqIDY0CVJlZnJlc2ggY3ljbGUgaW4gbXMgcGVyIG51bWJlciBvZiByb3dzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCQkoKDIwNDggKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJCSgoMjA0OCAqIDY0ICogMTAwMCkgLyAoNCAqIDY0KSkKICNlbGlmIGRlZmluZWQoQ09ORklHX0ZBRFMpCQkJCS8qIE9sZC9uZXcgRkFEUyAqLwotI2RlZmluZQlDRkdfU0RSQU1fU0laRQkJMHgwMDQwMDAwMAkJLyogNCBNYnl0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTB4MDA0MDAwMDAJCS8qIDQgTWJ5dGUgKi8KICNlbHNlCQkJCQkJCS8qIE9sZCBBRFMgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX1NJWkUJCTB4MDAwMDAwMDAJCS8qIE5vIFNEUkFNICovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMDAwMDAwMAkJLyogTm8gU0RSQU0gKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jaWYgKENGR19TRFJBTV9TSVpFKQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCUNGR19TRFJBTV9TSVpFCS8qIDEgLi4uIFNEUkFNX1NJWkUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjaWYgKENPTkZJR19TWVNfU0RSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJQ09ORklHX1NZU19TRFJBTV9TSVpFCS8qIDEgLi4uIFNEUkFNX1NJWkUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLwotI2VuZGlmIC8qIENGR19TRFJBTV9TSVpFICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBLQiBmb3IgbW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIG1vbml0b3IJKi8KIAogI2lmZGVmIENPTkZJR19CWklQMgotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDI1MDAgPDwgMTApCS8qIFJlc2VydmUgfjIuNSBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjUwMCA8PCAxMCkJLyogUmVzZXJ2ZSB+Mi41IE1CIGZvciBtYWxsb2MoKQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMzg0IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMzg0IGtCIGZvciBtYWxsb2MoKQkqLwogI2VuZGlmIC8qIENPTkZJR19CWklQMiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGbGFzaCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX01PTklUT1JfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUJKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTQJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIHNlZSBSRUFETUUgLSBlbnYgc2VjdG9yIHRvdGFsIHNpemUJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCUNPTkZJR19FTlZfU0VDVF9TSVpFCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQJCSovCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCi0jZGVmaW5lCUNGR19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZQlDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSkZGUzIpCiAKQEAgLTI1NCwyMiArMjU0LDIyIEBACiAjZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJIm10ZHBhcnRzPWZhZHMtMDotQDFtKHVzZXIxKSxmYWRzLTE6LSh1c2VyMiksZmFkcy0yOi0odXNlcjMpLGZhZHMtMzotKHVzZXI0KSIKICovCiAKLSNkZWZpbmUgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0kyQykKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyBkZWZhdWx0cyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzIGRlZmF1bHRzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjc5LDEwICsyNzksMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5MCwyMSArMjkwLDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMTMsMTQgKzMxMywxNCBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJU0NDUl9UQlMKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCVNDQ1JfVEJTCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERFUiAtIERlYnVnIEVuYWJsZSBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IHRvIHplcm8gdG8gcHJldmVudCB0aGUgcHJvY2Vzc29yIGZyb20gZW50ZXJpbmcgZGVidWcgbW9kZQogICovCi0jZGVmaW5lIENGR19ERVIJCSAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkgMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZSBlbnRpcmUKICAqIGFkZHJlc3Mgc3BhY2UsIHdlIGhhdmUgdG8gc2V0IHRoZSBtZW1vcnkgY29udHJvbGxlciBkaWZmZXJlbnRseS4KQEAgLTMzOSwxNyArMzM5LDE3IEBACiAKICNkZWZpbmUgQkNTUl9BRERSCQkoKHVpbnQpIDB4RkYwODAwMDApCiAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDEwLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAwICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKSAgIC8qIDggTWJ5dGUgdW50aWwgZGV0ZWN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKSAgIC8qIDggTWJ5dGUgdW50aWwgZGV0ZWN0ZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKiBCQ1NSeCAtIEJvYXJkIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JMHhGRkZGODExMAkJLyogNjRLYnl0ZSBhZGRyZXNzIHNwYWNlICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQkNTUl9BRERSKSB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkweEZGRkY4MTEwCQkvKiA2NEtieXRlIGFkZHJlc3Mgc3BhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoQkNTUl9BRERSKSB8IEJSX1YpCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtNDQyLDkgKzQ0Miw5IEBACiAKIC8qIEJTQ1I1IGV4aXN0cyBvbiBNUEM4NnhBRFMgYW5kIE1QQzg4NUFEUyBvbmx5ICovCiAKLSNkZWZpbmUgQ0ZHX1BIWURFVl9BRERSCQkoQkNTUl9BRERSICsgMHgyMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QSFlERVZfQUREUgkJKEJDU1JfQUREUiArIDB4MjAwMDApCiAKLSNkZWZpbmUgQkNTUjUJCQkoQ0ZHX1BIWURFVl9BRERSICsgMHgzMDApCisjZGVmaW5lIEJDU1I1CQkJKENPTkZJR19TWVNfUEhZREVWX0FERFIgKyAweDMwMCkKIAogI2RlZmluZSBCQ1NSNV9NSUkyX0VOCQkweDQwCiAjZGVmaW5lIEJDU1I1X01JSTJfUlNUCQkweDIwCkBAIC00NjIsMTQgKzQ2MiwxNCBAQAogICogUENNQ0lBIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtNDg3LDE4ICs0ODcsMTggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRAkgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAyIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMDAKIAogI2RlZmluZSBDT05GSUdfRElTS19TUElOVVBfVElNRSAxMDAwMDAwCiAvKiAjdW5kZWYgQ09ORklHX0RJU0tfU1BJTlVQX1RJTUUgKi8JLyogdXNpbiAgQ29tcGFjdCBGbGFzaCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZmFkcy9mbGFzaC5jIGIvYm9hcmQvZmFkcy9mbGFzaC5jCmluZGV4IGNkMGU0ZDUuLmI5YWZiNzUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZhZHMvZmxhc2guYworKysgYi9ib2FyZC9mYWRzL2ZsYXNoLmMKQEAgLTI0LDExICsyNCwxMSBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTU0LDE0ICs1NCwxNCBAQAogICovCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdnVfbG9uZyAqYmNzciA9ICh2dV9sb25nICopQkNTUl9BRERSOwogCXVuc2lnbmVkIGxvbmcgcGRfc2l6ZSwgdG90YWxfc2l6ZSwgYnNpemUsIG9yX2FtOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAwOwpAQCAtOTQsOCArOTQsOCBAQAogCX0KIAogCXRvdGFsX3NpemUgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTICYmIHRvdGFsX3NpemUgPCBwZF9zaXplOyArK2kpIHsKLQkJYnNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIHRvdGFsX3NpemUpLAorCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAmJiB0b3RhbF9zaXplIDwgcGRfc2l6ZTsgKytpKSB7CisJCWJzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgdG90YWxfc2l6ZSksCiAJCQkJICAgICAgICZmbGFzaF9pbmZvW2ldKTsKIAogCQlpZiAoZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CkBAIC0xMTIsMTUgKzExMiwxNSBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gb3JfYW0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIOworCW1lbWN0bC0+bWVtY19vcjAgPSBvcl9hbSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1MgJiYgZmxhc2hfaW5mb1tpXS5zaXplICE9IDA7ICsraSkgewotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgJiYgZmxhc2hfaW5mb1tpXS5zaXplICE9IDA7ICsraSkgeworI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotCQlpZiAoQ0ZHX01PTklUT1JfQkFTRSA+PSBmbGFzaF9pbmZvW2ldLnN0YXJ0WzBdKQorCQlpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gZmxhc2hfaW5mb1tpXS5zdGFydFswXSkKIAkJCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCQkgICAgICAgJmZsYXNoX2luZm9baV0pOwogI2VuZGlmCiAKQEAgLTQyOCw3ICs0MjgsNyBAQAogCWFkZHIgPSAodnVfbG9uZyAqKSAoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHhGRkZGRkZGRikgIT0gMHhGRkZGRkZGRikKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIEVSUl9USU1PVVQ7CiAJCX0KQEAgLTU1Miw3ICs1NTIsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKikgZGVzdCkgJiAweDgwODA4MDgwKSAhPSAoZGF0YSAmIDB4ODA4MDgwODApKQogCXsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gRVJSX1RJTU9VVDsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2ZsYWdhZG0vZmxhZ2FkbS5jIGIvYm9hcmQvZmxhZ2FkbS9mbGFnYWRtLmMKaW5kZXggN2NhZWRjOS4uZGM5ZTJkYyAxMDA2NDQKLS0tIGEvYm9hcmQvZmxhZ2FkbS9mbGFnYWRtLmMKKysrIGIvYm9hcmQvZmxhZ2FkbS9mbGFnYWRtLmMKQEAgLTk4LDE4ICs5OCwxOCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwOwogCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjI7Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjI7CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMjsKIAogCXVkZWxheSgxMDApOwogCXVwbWNvbmZpZyhVUE1BLCAodWludCAqKXNkcmFtX3RhYmxlLCBzaXplb2Yoc2RyYW1fdGFibGUpL3NpemVvZih1aW50KSk7CiAKIAltZW1jdGwtPm1lbWNfbXB0cHIgPSBNUFRQUl9QVFBfRElWMTY7Ci0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl80OF9TRFIgfCBNQU1SX1RMRkFfMVg7CisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfNDhfU0RSIHwgTUFNUl9UTEZBXzFYOwogCiAJLypEbyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIFNEUkFNKi8KIAkvKlN0YXJ0IHdpdGggdGhlIHByZWNoYXJnZSBjeWNsZSovCkBAIC0xMTcsNyArMTE3LDcgQEAKIAkJCQlNQ1JfTUxDRigxKSB8IE1DUl9NQUQoMHg1KSk7CiAKIAkvKlRoZW4gd2UgbmVlZCB0d28gcmVmcmVzaCBjeWNsZXMqLwotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfNDhfU0RSIHwgTUFNUl9UTEZBXzJYOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzQ4X1NEUiB8IE1BTVJfVExGQV8yWDsKIAltZW1jdGwtPm1lbWNfbWNyID0gKE1DUl9PUF9SVU4gfCBNQ1JfVVBNX0EgfCBNQ1JfTUJfQ1MyIHwgXAogCQkJCU1DUl9NTENGKDIpIHwgTUNSX01BRCgweDMwKSk7CiAKQEAgLTEyNyw3ICsxMjcsNyBAQAogCQkJCU1DUl9NTENGKDEpIHwgTUNSX01BRCgweDFDKSk7CiAKIAkvKiBUaGF0IHNob3VsZCBkbyBpdCwganVzdCBlbmFibGUgdGhlIHBlcmlvZGljIHJlZnJlc2ggaW4gYnVyc3Qgb2YgNCovCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl80OF9TRFIgfCBNQU1SX1RMRkFfNFg7CisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfNDhfU0RSIHwgTUFNUl9UTEZBXzRYOwogCW1lbWN0bC0+bWVtY19tYW1yIHw9IChNQU1SX1BUQUUgfCBNQU1SX0dQTF9BNERJUyk7CiAKIAlzaXplX2IwID0gMTYqMTAyNCoxMDI0OwpAQCAtMTQzLDggKzE0Myw4IEBACiAKIAltZW1jdGwtPm1lbWNfbWJtciA9IE1CTVJfR1BMX0I0RElTOwogCi0JbWVtY3RsLT5tZW1jX29yNCA9IENGR19PUjQ7Ci0JbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjQ7CisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0OworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNDsKIAogCXJldHVybiAoc2l6ZV9iMCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9mbGFnYWRtL2ZsYXNoLmMgYi9ib2FyZC9mbGFnYWRtL2ZsYXNoLmMKaW5kZXggYWE4YjBmOS4uYmJlZmJhYyAxMDA2NDQKLS0tIGEvYm9hcmQvZmxhZ2FkbS9mbGFzaC5jCisrKyBiL2JvYXJkL2ZsYWdhZG0vZmxhc2guYwpAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogI2luY2x1ZGUgPGZsYXNoLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTM5LDQ1ICszOSw0NSBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdAkqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJaW50IGk7CiAJaW50IHJlYzsKIAotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0JKigodnVfc2hvcnQqKUNGR19GTEFTSF9CQVNFKSA9IDB4ZmZmZjsKKwkqKCh2dV9zaG9ydCopQ09ORklHX1NZU19GTEFTSF9CQVNFKSA9IDB4ZmZmZjsKIAotCWZsYXNoX2dldF9nZW9tZXRyeSAoKHZ1X2xvbmcqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X2dlb21ldHJ5ICgodnVfbG9uZyopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLWZsYXNoX2luZm9bMF0uc2l6ZSAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLWZsYXNoX2luZm9bMF0uc2l6ZSAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8CiAJCShtZW1jdGwtPm1lbWNfYnIwICYgfihCUl9CQV9NU0spKTsKIAotCXJlYyA9IGZsYXNoX3JlY29nbml6ZSgodnVfbG9uZyopQ0ZHX0ZMQVNIX0JBU0UpOworCXJlYyA9IGZsYXNoX3JlY29nbml6ZSgodnVfbG9uZyopQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAogCWlmIChyZWMgPT0gRkxBU0hfVU5LTk9XTikgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLAogCQkJCWZsYXNoX2luZm9bMF0uc2l6ZSwgZmxhc2hfaW5mb1swXS5zaXplPDwyMCk7CiAJfQogCi0jaWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAkvKlVucHJvdGVjdCBhbGwgdGhlIGZsYXNoIG1lbW9yeSovCiAJZmxhc2hfdW5wcm90ZWN0KCZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCi0JKigodnVfc2hvcnQqKUNGR19GTEFTSF9CQVNFKSA9IDB4ZmZmZjsKKwkqKCh2dV9zaG9ydCopQ09ORklHX1NZU19GTEFTSF9CQVNFKSA9IDB4ZmZmZjsKIAogCXJldHVybiAoZmxhc2hfaW5mb1swXS5zaXplKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTQwMCw3ICs0MDAsNyBAQAogCQkJKmFkZHIgPSAweDcwOyAvKlJlYWQgc3RhdHVzIHJlZ2lzdGVyIGNvbW1hbmQqLwogCQkJdG1wID0gKHNob3J0KSphZGRyICYgMHgwMEZGOyAvKiBSZWFkIHRoZSBzdGF0dXMgKi8KIAkJCXdoaWxlICghKHRtcCAmIElOVEVMX0ZMQVNIX1NUQVRVU19XU01TKSkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQkqYWRkciA9IDB4MDA1MDsgLyogUmVzZXQgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCQkJCQkqYWRkciA9IDB4ZmZmZjsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CkBAIC00NDAsNyArNDQwLDcgQEAKIAlmb3IoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykKIAkJaW5mby0+cHJvdGVjdFtpXSA9IDA7CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCQlfZmxhc2hfcmVhbF9wcm90ZWN0KGluZm8sIDAsIDApOwogI2VuZGlmCiB9CkBAIC01NTUsNyArNTU1LDcgQEAKIAkJZmxhZyAgPSAwOwogCQkqYWRkciA9IDB4MDA3MDsgLypSZWFkIHN0YXR1c3JlZ2lzdGVyIGNvbW1hbmQgKi8KIAkJd2hpbGUgKCgoY3NyID0gKmFkZHIpICYgSU5URUxfRkxBU0hfU1RBVFVTX1dTTVMpIT1JTlRFTF9GTEFTSF9TVEFUVVNfV1NNUykgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlmbGFnID0gMTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTY0Miw3ICs2NDIsNyBAQAogCXdoaWxlKCEodG1wICYgSU5URUxfRkxBU0hfU1RBVFVTX1dTTVMpKSB7CiAJCS8qV3JpdGUgU3RhdGUgTWFjaGluZSBCdXN5Ki8KIAkJLypXYWl0IHVudGlsbCBkb25lIG9yIHRpbWVvdXQuKi8KLQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAweDAwNTA7IC8qIFJlc2V0IHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAkJCSphZGRyID0gMHhmZmZmOyAvKiBSZXNldCB0aGUgY2hpcCAqLwogCQkJcHJpbnRmICgiVFRpbWVvdXRcbiIpOwpAQCAtNjcwLDcgKzY3MCw3IEBACiAJdG1wID0gKCh1c2hvcnQpKCphZGRyKSkgJiAweDAwRkY7IC8qIFJlYWQgdGhlIHN0YXR1cyAqLwogCXdoaWxlICghKHRtcCAmIElOVEVMX0ZMQVNIX1NUQVRVU19XU01TKSkgewogCQkvKiBXcml0ZSBTdGF0ZSBNYWNoaW5lIEJ1c3kgKi8KLQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAweDAwNTA7IC8qIFJlc2V0IHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAkJCSphZGRyID0gMHhmZmZmOwogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL2NhZG11cy5jIGIvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9jYWRtdXMuYwppbmRleCA1Zjg2ZGU1Li5kYjU0YmM0IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL2NhZG11cy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vY2FkbXVzLmMKQEAgLTI3LDggKzI3LDggQEAKIC8qCiAgKiBDQURNVVMgQm9hcmQgU3lzdGVtIFJlZ2lzdGVycwogICovCi0jaWZuZGVmIENGR19DQURNVVNfQkFTRV9SRUcKLSNkZWZpbmUgQ0ZHX0NBRE1VU19CQVNFX1JFRwkoQ0FETVVTX0JBU0VfQUREUiArIDB4NDAwMCkKKyNpZm5kZWYgQ09ORklHX1NZU19DQURNVVNfQkFTRV9SRUcKKyNkZWZpbmUgQ09ORklHX1NZU19DQURNVVNfQkFTRV9SRUcJKENBRE1VU19CQVNFX0FERFIgKyAweDQwMDApCiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgY2FkbXVzX3JlZyB7CkBAIC00Nyw3ICs0Nyw3IEBACiB1bnNpZ25lZCBpbnQKIGdldF9ib2FyZF92ZXJzaW9uKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2FkbXVzX3JlZ190ICpjYWRtdXMgPSAoY2FkbXVzX3JlZ190ICopQ0ZHX0NBRE1VU19CQVNFX1JFRzsKKwl2b2xhdGlsZSBjYWRtdXNfcmVnX3QgKmNhZG11cyA9IChjYWRtdXNfcmVnX3QgKilDT05GSUdfU1lTX0NBRE1VU19CQVNFX1JFRzsKIAogCXJldHVybiBjYWRtdXMtPmNtX3ZlcjsKIH0KQEAgLTU2LDcgKzU2LDcgQEAKIHVuc2lnbmVkIGxvbmcKIGdldF9jbG9ja19mcmVxKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2FkbXVzX3JlZ190ICpjYWRtdXMgPSAoY2FkbXVzX3JlZ190ICopQ0ZHX0NBRE1VU19CQVNFX1JFRzsKKwl2b2xhdGlsZSBjYWRtdXNfcmVnX3QgKmNhZG11cyA9IChjYWRtdXNfcmVnX3QgKilDT05GSUdfU1lTX0NBRE1VU19CQVNFX1JFRzsKIAogCXVpbnQgcGNpMV9zcGVlZCA9IChjYWRtdXMtPmNtX3BjaSA+PiAyKSAmIDB4MzsgLyogUFNQRUVEIGluIFs0OjVdICovCiAKQEAgLTc0LDcgKzc0LDcgQEAKIHVuc2lnbmVkIGludAogZ2V0X3BjaV9zbG90KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2FkbXVzX3JlZ190ICpjYWRtdXMgPSAoY2FkbXVzX3JlZ190ICopQ0ZHX0NBRE1VU19CQVNFX1JFRzsKKwl2b2xhdGlsZSBjYWRtdXNfcmVnX3QgKmNhZG11cyA9IChjYWRtdXNfcmVnX3QgKilDT05GSUdfU1lTX0NBRE1VU19CQVNFX1JFRzsKIAogCS8qCiAJICogUENJIHNsb3QgaW4gVVNFUiBiaXRzIENTUls2OjddIGJ5IGNvbnZlbnRpb24uCkBAIC04Niw3ICs4Niw3IEBACiB1bnNpZ25lZCBpbnQKIGdldF9wY2lfZHVhbCh2b2lkKQogewotCXZvbGF0aWxlIGNhZG11c19yZWdfdCAqY2FkbXVzID0gKGNhZG11c19yZWdfdCAqKUNGR19DQURNVVNfQkFTRV9SRUc7CisJdm9sYXRpbGUgY2FkbXVzX3JlZ190ICpjYWRtdXMgPSAoY2FkbXVzX3JlZ190ICopQ09ORklHX1NZU19DQURNVVNfQkFTRV9SRUc7CiAKIAkvKgogCSAqIFBDSSBEVUFMIGluIENNX1BDSVszXQpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9mc2xfZGl1X2ZiLmMgYi9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL2ZzbF9kaXVfZmIuYwppbmRleCA0ZDRiMGExLi4yZmM4NzhiIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL2ZzbF9kaXVfZmIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL2ZzbF9kaXVfZmIuYwpAQCAtMjA1LDcgKzIwNSw3IEBACiAJdW5zaWduZWQgaW50IGksIGo7CiAKIAlkZWJ1ZygiRW50ZXIgZnNsX2RpdV9pbml0XG4iKTsKLQlkci5kaXVfcmVnID0gKHN0cnVjdCBkaXUgKikgKENGR19ESVVfQUREUik7CisJZHIuZGl1X3JlZyA9IChzdHJ1Y3QgZGl1ICopIChDT05GSUdfU1lTX0RJVV9BRERSKTsKIAlodyA9IChzdHJ1Y3QgZGl1ICopIGRyLmRpdV9yZWc7CiAKIAlkaXNhYmxlX2xjZGMoKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vcGl4aXMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vcGl4aXMuYwppbmRleCBiNWEwZTg0Li45NjgyMGFjIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL3BpeGlzLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9waXhpcy5jCkBAIC0yMDcsOCArMjA3LDggQEAKIAlvdXQ4KFBJWElTX0JBU0UgKyBQSVhJU19WQ0ZHRU4xLCB0bXApOwogfQogCi0jaWZuZGVmIENGR19QSVhJU19WQk9PVF9NQVNLCi0jZGVmaW5lIENGR19QSVhJU19WQk9PVF9NQVNLCSgweDQwKQorI2lmbmRlZiBDT05GSUdfU1lTX1BJWElTX1ZCT09UX01BU0sKKyNkZWZpbmUgQ09ORklHX1NZU19QSVhJU19WQk9PVF9NQVNLCSgweDQwKQogI2VuZGlmCiAKIHZvaWQgY2xlYXJfYWx0YmFuayh2b2lkKQpAQCAtMjE2LDcgKzIxNiw3IEBACiAJdTggdG1wOwogCiAJdG1wID0gaW44KFBJWElTX0JBU0UgKyBQSVhJU19WQk9PVCk7Ci0JdG1wICY9IH5DRkdfUElYSVNfVkJPT1RfTUFTSzsKKwl0bXAgJj0gfkNPTkZJR19TWVNfUElYSVNfVkJPT1RfTUFTSzsKIAogCW91dDgoUElYSVNfQkFTRSArIFBJWElTX1ZCT09ULCB0bXApOwogfQpAQCAtMjI3LDcgKzIyNyw3IEBACiAJdTggdG1wOwogCiAJdG1wID0gaW44KFBJWElTX0JBU0UgKyBQSVhJU19WQk9PVCk7Ci0JdG1wIHw9IENGR19QSVhJU19WQk9PVF9NQVNLOworCXRtcCB8PSBDT05GSUdfU1lTX1BJWElTX1ZCT09UX01BU0s7CiAKIAlvdXQ4KFBJWElTX0JBU0UgKyBQSVhJU19WQk9PVCwgdG1wKTsKIH0KQEAgLTI4Myw3ICsyODMsNyBAQAogCSAgICJkaXN3ZAktIERpc2FibGUgd2F0Y2hkb2cgdGltZXIgXG4iLAogCSAgIE5VTEwpOwogCi0jaWZkZWYgQ09ORklHX0ZTTF9TR01JSV9SSVNFUgorI2lmZGVmIENPTkZJR19QSVhJU19TR01JSV9DTUQKIGludCBwaXhpc19zZXRfc2dtaWkoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJaW50IHdoaWNoX3RzZWMgPSAtMTsKQEAgLTI5NSwxNyArMjk1LDMzIEBACiAJCQl3aGljaF90c2VjID0gc2ltcGxlX3N0cnRvdWwoYXJndlsxXSwgTlVMTCwgMCk7CiAKIAlzd2l0Y2ggKHdoaWNoX3RzZWMpIHsKKyNpZmRlZiBDT05GSUdfVFNFQzEKIAljYXNlIDE6CiAJCW1hc2sgPSBQSVhJU19WU1BFRUQyX1RTRUMxU0VSOwogCQlzd2l0Y2hfbWFzayA9IFBJWElTX1ZDRkdFTjFfVFNFQzFTRVI7CiAJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1RTRUMyCisJY2FzZSAyOgorCQltYXNrID0gUElYSVNfVlNQRUVEMl9UU0VDMlNFUjsKKwkJc3dpdGNoX21hc2sgPSBQSVhJU19WQ0ZHRU4xX1RTRUMyU0VSOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19UU0VDMwogCWNhc2UgMzoKIAkJbWFzayA9IFBJWElTX1ZTUEVFRDJfVFNFQzNTRVI7CiAJCXN3aXRjaF9tYXNrID0gUElYSVNfVkNGR0VOMV9UU0VDM1NFUjsKIAkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfVFNFQzQKKwljYXNlIDQ6CisJCW1hc2sgPSBQSVhJU19WU1BFRUQyX1RTRUM0U0VSOworCQlzd2l0Y2hfbWFzayA9IFBJWElTX1ZDRkdFTjFfVFNFQzRTRVI7CisJCWJyZWFrOworI2VuZGlmCiAJZGVmYXVsdDoKLQkJbWFzayA9IFBJWElTX1ZTUEVFRDJfVFNFQzFTRVIgfCBQSVhJU19WU1BFRUQyX1RTRUMzU0VSOwotCQlzd2l0Y2hfbWFzayA9IFBJWElTX1ZDRkdFTjFfVFNFQzFTRVIgfCBQSVhJU19WQ0ZHRU4xX1RTRUMzU0VSOworCQltYXNrID0gUElYSVNfVlNQRUVEMl9NQVNLOworCQlzd2l0Y2hfbWFzayA9IFBJWElTX1ZDRkdFTjFfTUFTSzsKIAkJYnJlYWs7CiAJfQogCkBAIC0zMjcsNyArMzQzLDcgQEAKIH0KIAogVV9CT09UX0NNRCgKLQkJcGl4aXNfc2V0X3NnbWlpLCBDRkdfTUFYQVJHUywgMSwgcGl4aXNfc2V0X3NnbWlpLAorCQlwaXhpc19zZXRfc2dtaWksIENPTkZJR19TWVNfTUFYQVJHUywgMSwgcGl4aXNfc2V0X3NnbWlpLAogCQkicGl4aXNfc2V0X3NnbWlpIgogCQkiIC0gRW5hYmxlIG9yIGRpc2FibGUgU0dNSUkgbW9kZSBmb3IgYSBnaXZlbiBUU0VDIFxuIiwKIAkJIlxucGl4aXNfc2V0X3NnbWlpIFtUU0VDIG51bV0gPG9ufG9mZnxzd2l0Y2g+XG4iCkBAIC00NTMsNyArNDY5LDkgQEAKIAkgKi8KIAlpZiAoKHBfY2YgJiYgIShwX2NmX3N5c2NsayAmJiBwX2NmX2NvcmVwbGwgJiYgcF9jZl9tcHhwbGwpKQogCSAgICB8fAl1bmtub3duX3BhcmFtKSB7CisjaWZkZWYgQ09ORklHX1NZU19MT05HSEVMUAogCQlwdXRzKGNtZHRwLT5oZWxwKTsKKyNlbmRpZgogCQlyZXR1cm4gMTsKIAl9CiAKQEAgLTQ4Myw3ICs1MDEsOSBAQAogCQlpZiAoIShzZXRfcHhfc3lzY2xrKHN5c2NsaykKIAkJICAgICAgJiYgc2V0X3B4X2NvcmVwbGwoY29yZXBsbCkKIAkJICAgICAgJiYgc2V0X3B4X21weHBsbChtcHhwbGwpKSkgeworI2lmZGVmIENPTkZJR19TWVNfTE9OR0hFTFAKIAkJCXB1dHMoY21kdHAtPmhlbHApOworI2VuZGlmCiAJCQlyZXR1cm4gMTsKIAkJfQogCQlyZWFkX2Zyb21fcHhfcmVncygxKTsKQEAgLTUxOCw3ICs1MzgsNyBAQAogCiAKIFVfQk9PVF9DTUQoCi0JcGl4aXNfcmVzZXQsIENGR19NQVhBUkdTLCAxLCBwaXhpc19yZXNldF9jbWQsCisJcGl4aXNfcmVzZXQsIENPTkZJR19TWVNfTUFYQVJHUywgMSwgcGl4aXNfcmVzZXRfY21kLAogCSJwaXhpc19yZXNldCAtIFJlc2V0IHRoZSBib2FyZCB1c2luZyB0aGUgRlBHQSBzZXF1ZW5jZXJcbiIsCiAJIiAgICBwaXhpc19yZXNldFxuIgogCSIgICAgcGl4aXNfcmVzZXQgW2FsdGJhbmtdXG4iCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvY29tbW9uL3N5c19lZXByb20uYyBiL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vc3lzX2VlcHJvbS5jCmluZGV4IDliZWY5MmUuLmViNThjN2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vc3lzX2VlcHJvbS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9jb21tb24vc3lzX2VlcHJvbS5jCkBAIC0zMCw4ICszMCw4IEBACiAKICNpbmNsdWRlICIuLi9jb21tb24vZWVwcm9tLmgiCiAKLSNpZiAhZGVmaW5lZChDRkdfSTJDX0VFUFJPTV9DQ0lEKSAmJiAhZGVmaW5lZChDRkdfSTJDX0VFUFJPTV9OWElEKQotI2Vycm9yICJQbGVhc2UgZGVmaW5lIGVpdGhlciBDRkdfSTJDX0VFUFJPTV9DQ0lEIG9yIENGR19JMkNfRUVQUk9NX05YSUQiCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0NDSUQpICYmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9OWElEKQorI2Vycm9yICJQbGVhc2UgZGVmaW5lIGVpdGhlciBDT05GSUdfU1lTX0kyQ19FRVBST01fQ0NJRCBvciBDT05GSUdfU1lTX0kyQ19FRVBST01fTlhJRCIKICNlbmRpZgogCiAvKioKQEAgLTQwLDcgKzQwLDcgQEAKICAqIFNlZSBhcHBsaWNhdGlvbiBub3RlIEFOMzYzOCBmb3IgZGV0YWlscy4KICAqLwogc3RhdGljIHN0cnVjdCBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRfXykpIGVlcHJvbSB7Ci0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQ0NJRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9DQ0lECiAJdTggaWRbNF07ICAgICAgICAgLyogMHgwMCAtIDB4MDMgRUVQUk9NIFRhZyAnQ0NJRCcgKi8KIAl1OCBtYWpvcjsgICAgICAgICAvKiAweDA0ICAgICAgICBCb2FyZCByZXZpc2lvbiwgbWFqb3IgKi8KIAl1OCBtaW5vcjsgICAgICAgICAvKiAweDA1ICAgICAgICBCb2FyZCByZXZpc2lvbiwgbWlub3IgKi8KQEAgLTUzLDcgKzUzLDcgQEAKIAl1OCBtYWNbOF1bNl07ICAgICAvKiAweDQyIC0gMHg3MSBNQUMgYWRkcmVzc2VzICovCiAJdTMyIGNyYzsgICAgICAgICAgLyogMHg3MiAgICAgICAgQ1JDMzIgY2hlY2tzdW0gKi8KICNlbmRpZgotI2lmZGVmIENGR19JMkNfRUVQUk9NX05YSUQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fTlhJRAogCXU4IGlkWzRdOyAgICAgICAgIC8qIDB4MDAgLSAweDAzIEVFUFJPTSBUYWcgJ05YSUQnICovCiAJdTggc25bMTJdOyAgICAgICAgLyogMHgwNCAtIDB4MEYgU2VyaWFsIE51bWJlciAqLwogCXU4IGVycmF0YVs1XTsgICAgIC8qIDB4MTAgLSAweDE0IEVycmF0YSBMZXZlbCAqLwpAQCAtNzQsMTIgKzc0LDEyIEBACiAvKiBTZXQgdG8gMSBpZiB3ZSd2ZSByZWFkIEVFUFJPTSBpbnRvIG1lbW9yeSAqLwogc3RhdGljIGludCBoYXNfYmVlbl9yZWFkID0gMDsKIAotI2lmZGVmIENGR19JMkNfRUVQUk9NX05YSUQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fTlhJRAogLyogSXMgdGhpcyBhIHZhbGlkIE5YSUQgRUVQUk9NPyAqLwogI2RlZmluZSBpc192YWxpZCAoKigodTMyICopZS5pZCkgPT0gKCgnTicgPDwgMjQpIHwgKCdYJyA8PCAxNikgfCAoJ0knIDw8IDgpIHwgJ0QnKSkKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQ0NJRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9DQ0lECiAvKiBJcyB0aGlzIGEgdmFsaWQgQ0NJRCBFRVBST00/ICovCiAjZGVmaW5lIGlzX3ZhbGlkICgqKCh1MzIgKillLmlkKSA9PSAoKCdDJyA8PCAyNCkgfCAoJ0MnIDw8IDE2KSB8ICgnSScgPDwgOCkgfCAnRCcpKQogI2VuZGlmCkBAIC05Myw3ICs5Myw3IEBACiAJdW5zaWduZWQgaW50IGNyYzsKIAogCS8qIEVFUFJPTSB0YWcgSUQsIGVpdGhlciBDQ0lEIG9yIE5YSUQgKi8KLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9OWElECisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX05YSUQKIAlwcmludGYoIklEOiAlYyVjJWMlYyB2JXVcbiIsIGUuaWRbMF0sIGUuaWRbMV0sIGUuaWRbMl0sIGUuaWRbM10sCiAJCWJlMzJfdG9fY3B1KGUudmVyc2lvbikpOwogI2Vsc2UKQEAgLTEwNCw3ICsxMDQsNyBAQAogCXByaW50ZigiU046ICVzXG4iLCBlLnNuKTsKIAogCS8qIEVycmF0YSBsZXZlbC4gKi8KLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9OWElECisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX05YSUQKIAlwcmludGYoIkVycmF0YTogJXNcbiIsIGUuZXJyYXRhKTsKICNlbHNlCiAJcHJpbnRmKCJFcnJhdGE6ICVjJWNcbiIsCkBAIC0xNTIsMjIgKzE1MiwyMiBAQAogc3RhdGljIGludCByZWFkX2VlcHJvbSh2b2lkKQogewogCWludCByZXQ7Ci0jaWZkZWYgQ0ZHX0VFUFJPTV9CVVNfTlVNCisjaWZkZWYgQ09ORklHX1NZU19FRVBST01fQlVTX05VTQogCXVuc2lnbmVkIGludCBidXM7CiAjZW5kaWYKIAogCWlmIChoYXNfYmVlbl9yZWFkKQogCQlyZXR1cm4gMDsKIAotI2lmZGVmIENGR19FRVBST01fQlVTX05VTQorI2lmZGVmIENPTkZJR19TWVNfRUVQUk9NX0JVU19OVU0KIAlidXMgPSBpMmNfZ2V0X2J1c19udW0oKTsKLQlpMmNfc2V0X2J1c19udW0oQ0ZHX0VFUFJPTV9CVVNfTlVNKTsKKwlpMmNfc2V0X2J1c19udW0oQ09ORklHX1NZU19FRVBST01fQlVTX05VTSk7CiAjZW5kaWYKIAotCXJldCA9IGkyY19yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIDAsIENGR19JMkNfRUVQUk9NX0FERFJfTEVOLAorCXJldCA9IGkyY19yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAwLCBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sCiAJCSh2b2lkICopJmUsIHNpemVvZihlKSk7CiAKLSNpZmRlZiBDRkdfRUVQUk9NX0JVU19OVU0KKyNpZmRlZiBDT05GSUdfU1lTX0VFUFJPTV9CVVNfTlVNCiAJaTJjX3NldF9idXNfbnVtKGJ1cyk7CiAjZW5kaWYKIApAQCAtMTg4LDEyICsxODgsMTIgQEAKIAlpbnQgcmV0LCBpLCBsZW5ndGg7CiAJdW5zaWduZWQgaW50IGNyYzsKIAl2b2lkICpwOwotI2lmZGVmIENGR19FRVBST01fQlVTX05VTQorI2lmZGVmIENPTkZJR19TWVNfRUVQUk9NX0JVU19OVU0KIAl1bnNpZ25lZCBpbnQgYnVzOwogI2VuZGlmCiAKIAkvKiBTZXQgdGhlIHJlc2VydmVkIHZhbHVlcyB0byAweEZGICAgKi8KLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9OWElECisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX05YSUQKIAllLnJlc18wID0gMHhGRjsKIAltZW1zZXQoZS5yZXNfMSwgMHhGRiwgc2l6ZW9mKGUucmVzXzEpKTsKICNlbHNlCkBAIC0yMDQsMjAgKzIwNCwyMCBAQAogCWNyYyA9IGNyYzMyKDAsICh2b2lkICopJmUsIGxlbmd0aCAtIDQpOwogCWUuY3JjID0gY3B1X3RvX2JlMzIoY3JjKTsKIAotI2lmZGVmIENGR19FRVBST01fQlVTX05VTQorI2lmZGVmIENPTkZJR19TWVNfRUVQUk9NX0JVU19OVU0KIAlidXMgPSBpMmNfZ2V0X2J1c19udW0oKTsKLQlpMmNfc2V0X2J1c19udW0oQ0ZHX0VFUFJPTV9CVVNfTlVNKTsKKwlpMmNfc2V0X2J1c19udW0oQ09ORklHX1NZU19FRVBST01fQlVTX05VTSk7CiAjZW5kaWYKIAogCWZvciAoaSA9IDAsIHAgPSAmZTsgaSA8IGxlbmd0aDsgaSArPSA4LCBwICs9IDgpIHsKLQkJcmV0ID0gaTJjX3dyaXRlKENGR19JMkNfRUVQUk9NX0FERFIsIGksIENGR19JMkNfRUVQUk9NX0FERFJfTEVOLAorCQlyZXQgPSBpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIGksIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiwKIAkJCXAsIG1pbigobGVuZ3RoIC0gaSksIDgpKTsKIAkJaWYgKHJldCkKIAkJCWJyZWFrOwogCQl1ZGVsYXkoNTAwMCk7CS8qIDVtcyB3cml0ZSBjeWNsZSB0aW1pbmcgKi8KIAl9CiAKLSNpZmRlZiBDRkdfRUVQUk9NX0JVU19OVU0KKyNpZmRlZiBDT05GSUdfU1lTX0VFUFJPTV9CVVNfTlVNCiAJaTJjX3NldF9idXNfbnVtKGJ1cyk7CiAjZW5kaWYKIApAQCAtMzQzLDcgKzM0Myw3IEBACiAJCXN0cm5jcHkoKGNoYXIgKillLnNuLCBhcmd2WzJdLCBzaXplb2YoZS5zbikgLSAxKTsKIAkJYnJlYWs7CiAJY2FzZSAnZSc6CS8qIGVycmF0YSAqLwotI2lmZGVmIENGR19JMkNfRUVQUk9NX05YSUQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fTlhJRAogCQltZW1zZXQoZS5lcnJhdGEsIDAsIDUpOwogCQlzdHJuY3B5KChjaGFyICopZS5lcnJhdGEsIGFyZ3ZbMl0sIDQpOwogI2Vsc2UKQEAgLTQyOSw3ICs0MjksNyBAQAogCXJldHVybiAwOwogfQogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQ0NJRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9DQ0lECiAKIC8qKgogICogZ2V0X2NwdV9ib2FyZF9yZXZpc2lvbiAtIGdldCB0aGUgQ1BVIGJvYXJkIHJldmlzaW9uIG9uIDg1eHggYm9hcmRzCkBAIC00MzksMTEgKzQzOSwxMSBAQAogICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIHJlbG9jYXRpb24sIHNvIHdlIG5lZWQgdG8gcmVhZCBhIHByaXZhdGUKICAqIGNvcHkgb2YgdGhlIEVFUFJPTSBpbnRvIGEgbG9jYWwgdmFyaWFibGUgb24gdGhlIHN0YWNrLgogICoKLSAqIEFsc28sIHdlIGFzc3VtZSB0aGF0IENGR19FRVBST01fQlVTX05VTSA9PSBDRkdfU1BEX0JVU19OVU0uICBUaGUgZ2xvYmFsCi0gKiB2YXJpYWJsZSBpMmNfYnVzX251bSBtdXN0IGJlIGNvbXBpbGUtdGltZSBpbml0aWFsaXplZCB0byBDRkdfU1BEX0JVU19OVU0sCisgKiBBbHNvLCB3ZSBhc3N1bWUgdGhhdCBDT05GSUdfU1lTX0VFUFJPTV9CVVNfTlVNID09IENPTkZJR19TWVNfU1BEX0JVU19OVU0uICBUaGUgZ2xvYmFsCisgKiB2YXJpYWJsZSBpMmNfYnVzX251bSBtdXN0IGJlIGNvbXBpbGUtdGltZSBpbml0aWFsaXplZCB0byBDT05GSUdfU1lTX1NQRF9CVVNfTlVNLAogICogc28gdGhhdCB0aGUgU1BEIGNvZGUgd2lsbCB3b3JrLiAgVGhpcyBtZWFucyB0aGF0IGFsbCBwcmUtcmVsb2NhdGlvbiBJMkMKLSAqIG9wZXJhdGlvbnMgY2FuIG9ubHkgb2NjdXIgb24gdGhlIENGR19TUERfQlVTX05VTSBidXMuICBTbyBpZgotICogQ0ZHX0VFUFJPTV9CVVNfTlVNICE9IENGR19TUERfQlVTX05VTSwgdGhlbiB3ZSBjYW4ndCByZWFkIHRoZSBFRVBST00gd2hlbgorICogb3BlcmF0aW9ucyBjYW4gb25seSBvY2N1ciBvbiB0aGUgQ09ORklHX1NZU19TUERfQlVTX05VTSBidXMuICBTbyBpZgorICogQ09ORklHX1NZU19FRVBST01fQlVTX05VTSAhPSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNLCB0aGVuIHdlIGNhbid0IHJlYWQgdGhlIEVFUFJPTSB3aGVuCiAgKiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4gIE9oIHdlbGwuCiAgKi8KIHVuc2lnbmVkIGludCBnZXRfY3B1X2JvYXJkX3JldmlzaW9uKHZvaWQpCkBAIC00NTQsNyArNDU0LDcgQEAKIAkJdTggbWlub3I7ICAgICAgICAgLyogMHgwNSAgICAgICAgQm9hcmQgcmV2aXNpb24sIG1pbm9yICovCiAJfSBiZTsKIAotCWkyY19yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIDAsIENGR19JMkNfRUVQUk9NX0FERFJfTEVOLAorCWkyY19yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCAwLCBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sCiAJCSh2b2lkICopJmJlLCBzaXplb2YoYmUpKTsKIAogCWlmIChiZS5pZCAhPSAoKCdDJyA8PCAyNCkgfCAoJ0MnIDw8IDE2KSB8ICgnSScgPDwgOCkgfCAnRCcpKQpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjI3N2V2Yi9tNTIyNzdldmIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTIyNzdldmIvbTUyMjc3ZXZiLmMKaW5kZXggZTVmNDdkMi4uODM4YTZkZSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjI3N2V2Yi9tNTIyNzdldmIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyMjc3ZXZiL201MjI3N2V2Yi5jCkBAIC00MSw3ICs0MSw3IEBACiAJdm9sYXRpbGUgc2RyYW1jX3QgKnNkcmFtID0gKHZvbGF0aWxlIHNkcmFtY190ICopKE1NQVBfU0RSQU0pOwogCXUzMiBkcmFtc2l6ZSwgaTsKIAotCWRyYW1zaXplID0gQ0ZHX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKKwlkcmFtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDB4MTAwMDAwOwogCiAJZm9yIChpID0gMHgxMzsgaSA8IDB4MjA7IGkrKykgewogCQlpZiAoZHJhbXNpemUgPT0gKDEgPDwgaSkpCkBAIC00OSwyOCArNDksMjggQEAKIAl9CiAJaS0tOwogCi0Jc2RyYW0tPnNkY3MwID0gKENGR19TRFJBTV9CQVNFIHwgaSk7CisJc2RyYW0tPnNkY3MwID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IGkpOwogCi0Jc2RyYW0tPnNkY2ZnMSA9IENGR19TRFJBTV9DRkcxOwotCXNkcmFtLT5zZGNmZzIgPSBDRkdfU0RSQU1fQ0ZHMjsKKwlzZHJhbS0+c2RjZmcxID0gQ09ORklHX1NZU19TRFJBTV9DRkcxOworCXNkcmFtLT5zZGNmZzIgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzI7CiAKIAkvKiBJc3N1ZSBQQUxMICovCi0Jc2RyYW0tPnNkY3IgPSBDRkdfU0RSQU1fQ1RSTCB8IDI7CisJc2RyYW0tPnNkY3IgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCAyOwogCiAJLyogSXNzdWUgTEVNUiAqLwotCS8qc2RyYW0tPnNkbXIgPSBDRkdfU0RSQU1fRU1PRDsgKi8KLQlzZHJhbS0+c2RtciA9IENGR19TRFJBTV9NT0RFOworCS8qc2RyYW0tPnNkbXIgPSBDT05GSUdfU1lTX1NEUkFNX0VNT0Q7ICovCisJc2RyYW0tPnNkbXIgPSBDT05GSUdfU1lTX1NEUkFNX01PREU7CiAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiBJc3N1ZSBQQUxMICovCi0Jc2RyYW0tPnNkY3IgPSBDRkdfU0RSQU1fQ1RSTCB8IDI7CisJc2RyYW0tPnNkY3IgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCAyOwogCiAJLyogUGVyZm9ybSB0d28gcmVmcmVzaCBjeWNsZXMgKi8KLQlzZHJhbS0+c2RjciA9IENGR19TRFJBTV9DVFJMIHwgNDsKLQlzZHJhbS0+c2RjciA9IENGR19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+c2RjciA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPnNkY3IgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OwogCi0Jc2RyYW0tPnNkY3IgPSAoQ0ZHX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwYzAwOworCXNkcmFtLT5zZGNyID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCAmIH4weDgwMDAwMDAwKSB8IDB4MTAwMDBjMDA7CiAKIAl1ZGVsYXkoMTAwKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjM1ZXZiL201MjM1ZXZiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyMzVldmIvbTUyMzVldmIuYwppbmRleCBiZDhhNGU1Li5iOWU2MTI2IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyMzVldmIvbTUyMzVldmIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyMzVldmIvbTUyMzVldmIuYwpAQCAtNTcsNyArNTcsNyBAQAogCSAgICBHUElPX1BBUl9TRFJBTV9TRFdFIHwgR1BJT19QQVJfU0RSQU1fU0NBUyB8IEdQSU9fUEFSX1NEUkFNX1NSQVMgfAogCSAgICBHUElPX1BBUl9TRFJBTV9TQ0tFIHwgR1BJT19QQVJfU0RSQU1fU0RDUygzKTsKIAotCWRyYW1zaXplID0gQ0ZHX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKKwlkcmFtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDB4MTAwMDAwOwogCWZvciAoaSA9IDB4MTM7IGkgPCAweDIwOyBpKyspIHsKIAkJaWYgKGRyYW1zaXplID09ICgxIDw8IGkpKQogCQkJYnJlYWs7CkBAIC02NSw3ICs2NSw3IEBACiAJaS0tOwogCiAJaWYgKCEoc2RyYW0tPmRhY3IwICYgU0RSQU1DX0RBUkNuX1JFKSkgewotCQlkcmFtY2xrID0gZ2QtPmJ1c19jbGsgLyAoQ0ZHX0haICogQ0ZHX0haKTsKKwkJZHJhbWNsayA9IGdkLT5idXNfY2xrIC8gKENPTkZJR19TWVNfSFogKiBDT05GSUdfU1lTX0haKTsKIAogCQkvKiBJbml0aWFsaXplIERSQU0gQ29udHJvbCBSZWdpc3RlcjogRENSICovCiAJCXNkcmFtLT5kY3IgPSBTRFJBTUNfRENSX1JUSU1fOUNMS1MgfApAQCAtNzMsNyArNzMsNyBAQAogCiAJCS8qIEluaXRpYWxpemUgREFDUjAgKi8KIAkJc2RyYW0tPmRhY3IwID0KLQkJICAgIFNEUkFNQ19EQVJDbl9CQShDRkdfU0RSQU1fQkFTRSkgfCBTRFJBTUNfREFSQ25fQ0FTTF9DMSB8CisJCSAgICBTRFJBTUNfREFSQ25fQkEoQ09ORklHX1NZU19TRFJBTV9CQVNFKSB8IFNEUkFNQ19EQVJDbl9DQVNMX0MxIHwKIAkJICAgIFNEUkFNQ19EQVJDbl9DQk1fQ01EMjAgfCBTRFJBTUNfREFSQ25fUFNfMzI7CiAJCWFzbSgibm9wIik7CiAKQEAgLTkwLDcgKzkwLDcgQEAKIAkJfQogCiAJCS8qIFdyaXRlIHRvIHRoaXMgYmxvY2sgdG8gaW5pdGlhdGUgcHJlY2hhcmdlICovCi0JCSoodTMyICopIChDRkdfU0RSQU1fQkFTRSkgPSAweEE1QTU5Njk2OworCQkqKHUzMiAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4QTVBNTk2OTY7CiAKIAkJLyogIFNldCBSRSAoYml0IDE1KSBpbiBEQUNSICovCiAJCXNkcmFtLT5kYWNyMCB8PSBTRFJBTUNfREFSQ25fUkU7CkBAIC0xMDUsNyArMTA1LDcgQEAKIAkJYXNtKCJub3AiKTsKIAogCQkvKiBXcml0ZSB0byB0aGUgU0RSQU0gTW9kZSBSZWdpc3RlciAqLwotCQkqKHUzMiAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMCkgPSAweEE1QTU5Njk2OworCQkqKHUzMiAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg0MDApID0gMHhBNUE1OTY5NjsKIAl9CiAKIAlyZXR1cm4gZHJhbXNpemU7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyMzVldmIvbWlpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyMzVldmIvbWlpLmMKaW5kZXggMWZkNGQ5OS4uNWZiYmQ2NiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjM1ZXZiL21paS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTIzNWV2Yi9taWkuYwpAQCAtNDksNyArNDksNyBAQAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfTUlJKQogI2luY2x1ZGUgPG1paXBoeS5oPgogCiAvKiBNYWtlIE1JSSByZWFkL3dyaXRlIGNvbW1hbmRzIGZvciB0aGUgRkVDLiAqLwpAQCAtMTM1LDkgKzEzNSw5IEBACiAKIAlyZXR1cm4gKG1paV9yZXBseSAmIDB4ZmZmZik7CS8qIGRhdGEgcmVhZCBmcm9tIHBoeSAqLwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgfHwgKENPTkZJR19NSUkpICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgfHwgKENPTkZJR19NSUkpICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0yMDIsNyArMjAyLDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyNDlldmIvbTUyNDlldmIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI0OWV2Yi9tNTI0OWV2Yi5jCmluZGV4IGM5ZWQzNDEuLmIxY2NiZWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI0OWV2Yi9tNTI0OWV2Yi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI0OWV2Yi9tNTI0OWV2Yi5jCkBAIC00Miw3ICs0Miw3IEBACiAJLyoKIAkgKiBTZXQgTEVEIG9uCiAJICovCi0JdmFsID0gbWJhcjJfcmVhZExvbmcoTUNGU0lNX0dQSU8xX09VVCkgJiB+Q0ZHX0dQSU8xX0xFRDsKKwl2YWwgPSBtYmFyMl9yZWFkTG9uZyhNQ0ZTSU1fR1BJTzFfT1VUKSAmIH5DT05GSUdfU1lTX0dQSU8xX0xFRDsKIAltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU8xX09VVCwgdmFsKTsgICAvKiBTZXQgTEVEIG9uICovCiAKIAlyZXR1cm4gMDsKQEAgLTU3LDEzICs1NywxMyBAQAogCSAqCVJDID0gKFsoUmVmcmVzaFRpbWUvI3Jvd3MpIC8gKDEvQnVzQ2xrKV0gLyAxNikgLSAxCiAJICovCiAKLSNpZmRlZiBDRkdfRkFTVF9DTEsKKyNpZmRlZiBDT05GSUdfU1lTX0ZBU1RfQ0xLCiAJLyoKIAkgKiBCdXNjbGs9NzBNSHosIFJlZnJlc2hUaW1lPTY0bXMsICNyb3dzPTQwOTYgKDRLKQogCSAqIFNPPTEsIE5BTT0wLCBDT0M9MCwgUlRJTT0wMSAoNmNsayByZWZyZXNoKSwgUkM9MzkKIAkgKi8KIAltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0RDUiwgMHg4MjM5KTsKLSNlbGlmIENGR19QTExfQllQQVNTCisjZWxpZiBDT05GSUdfU1lTX1BMTF9CWVBBU1MKIAkvKgogCSAqIEJ1c2Nsaz01LjY0NDhNSHosIFJlZnJlc2hUaW1lPTY0bXMsICNyb3dzPTgxOTIgKDhLKQogCSAqIFNPPTEsIE5BTT0wLCBDT0M9MCwgUlRJTT0wMSAoNmNsayByZWZyZXNoKSwgUkM9MDIKQEAgLTEwMSw3ICsxMDEsNyBAQAogCW1iYXJfd3JpdGVMb25nKE1DRlNJTV9EQUNSMCwgMHgwMDAwYjM2NCk7ICAvKiBFbmFibGUgREFDUjBbSU1SU10gKGJpdCA2KTsgUkUgcmVtYWlucyBlbmFibGVkICovCiAJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAweDgwMCkgPSBqdW5rOyAvKiBBY2Nlc3MgUkFNIHRvIGluaXRpYWxpemUgdGhlIG1vZGUgcmVnaXN0ZXIgKi8KIAotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjUzZGVtby9mbGFzaC5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjUzZGVtby9mbGFzaC5jCmluZGV4IDFiZjFlOTcuLjA4Zjc2N2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI1M2RlbW8vZmxhc2guYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNTNkZW1vL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPGFzbS9pbW1hcC5oPgogCi0jaWZuZGVmIENGR19GTEFTSF9DRkkKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgRkxBU0hfUE9SVF9XSURUSDsKIHR5cGVkZWYgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgRkxBU0hfUE9SVF9XSURUSFY7CiAKQEAgLTQ5LDE0ICs0OSwxNCBAQAogaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICogaW5mbywgRlBXViAqIGRlc3QsIHUxNiBkYXRhKTsKIHZvaWQgaW5saW5lIHNwaW5fd2hlZWwodm9pZCk7CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiB1bG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7CiAJdWxvbmcgc2l6ZSA9IDA7CiAJdWxvbmcgZmJhc2UgPSAwOwogCi0JZmJhc2UgPSAodWxvbmcpIENGR19GTEFTSF9CQVNFOworCWZiYXNlID0gKHVsb25nKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJZmxhc2hfZ2V0X3NpemUoKEZQV1YgKikgZmJhc2UsICZmbGFzaF9pbmZvWzBdKTsKIAlmbGFzaF9nZXRfb2Zmc2V0cygodWxvbmcpIGZiYXNlLCAmZmxhc2hfaW5mb1swXSk7CiAJZmJhc2UgKz0gZmxhc2hfaW5mb1swXS5zaXplOwpAQCAtNjQsOCArNjQsOCBAQAogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC03Nyw4ICs3Nyw4IEBACiAJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKSB7CiAKIAkJaW5mby0+c3RhcnRbMF0gPSBiYXNlOwotCQlmb3IgKGsgPSAwLCBqID0gMDsgaiA8IENGR19TU1RfU0VDVDsgaisrLCBrKyspIHsKLQkJCWluZm8tPnN0YXJ0W2sgKyAxXSA9IGluZm8tPnN0YXJ0W2tdICsgQ0ZHX1NTVF9TRUNUU1o7CisJCWZvciAoayA9IDAsIGogPSAwOyBqIDwgQ09ORklHX1NZU19TU1RfU0VDVDsgaisrLCBrKyspIHsKKwkJCWluZm8tPnN0YXJ0W2sgKyAxXSA9IGluZm8tPnN0YXJ0W2tdICsgQ09ORklHX1NZU19TU1RfU0VDVFNaOwogCQkJaW5mby0+cHJvdGVjdFtrXSA9IDA7CiAJCX0KIAl9CkBAIC0xNzQsMTYgKzE3NCwxNiBAQAogCiAJaW5mby0+c2VjdG9yX2NvdW50ID0gMDsKIAlpbmZvLT5zaXplID0gMDsKLQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfU1NUX1NFQ1Q7Ci0JaW5mby0+c2l6ZSA9IENGR19TU1RfU0VDVCAqIENGR19TU1RfU0VDVFNaOworCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfU1NUX1NFQ1Q7CisJaW5mby0+c2l6ZSA9IENPTkZJR19TWVNfU1NUX1NFQ1QgKiBDT05GSUdfU1lTX1NTVF9TRUNUU1o7CiAKIAkvKiByZXNldCBJRCBtb2RlICovCiAJKmFkZHIgPSAoRlBXVikgMHgwMEYwMDBGMDsKIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJICAgICAgIGluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkgICAgICAgaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlyZXR1cm4gKGluZm8tPnNpemUpOwpAQCAtMjM1LDcgKzIzNSw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAJbGFzdCA9IHN0YXJ0OwogCi0JaWYgKChzX2xhc3QgLSBzX2ZpcnN0KSA9PSAoQ0ZHX1NTVF9TRUNUIC0gMSkpIHsKKwlpZiAoKHNfbGFzdCAtIHNfZmlyc3QpID09IChDT05GSUdfU1lTX1NTVF9TRUNUIC0gMSkpIHsKIAkJaWYgKHByb3QgPT0gMCkgewogCQkJYWRkciA9IChGUFdWICopIGluZm8tPnN0YXJ0WzBdOwogCkBAIC0yNTUsNyArMjU1LDcgQEAKIAkJCQkJY291bnQgPSAwOwogCQkJCX0KIAotCQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4MDBGMDsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCiAKQEAgLTI3MSw3ICsyNzEsNyBAQAogCQkJCWVuYWJsZV9pbnRlcnJ1cHRzKCk7CiAKIAkJCXJldHVybiAwOwotCQl9IGVsc2UgaWYgKHByb3QgPT0gQ0ZHX1NTVF9TRUNUKSB7CisJCX0gZWxzZSBpZiAocHJvdCA9PSBDT05GSUdfU1lTX1NTVF9TRUNUKSB7CiAJCQlyZXR1cm4gMTsKIAkJfQogCX0KQEAgLTI5NCw3ICsyOTQsNyBAQAogCiAJCQkJCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCQkJCQliYXNlID0gKEZQV1YgKikgKENGR19GTEFTSF9CQVNFKTsJLyogRmlyc3Qgc2VjdG9yICovCisJCQkJCWJhc2UgPSAoRlBXViAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsJLyogRmlyc3Qgc2VjdG9yICovCiAKIAkJCQkJYmFzZVtGTEFTSF9DWUNMRTFdID0gMHgwMEFBOwkvKiB1bmxvY2sgKi8KIAkJCQkJYmFzZVtGTEFTSF9DWUNMRTJdID0gMHgwMDU1OwkvKiB1bmxvY2sgKi8KQEAgLTMwOCw3ICszMDgsNyBAQAogCiAJCQkJCXdoaWxlICgoKmFkZHIgJiAweDAwODApICE9IDB4MDA4MCkgewogCQkJCQkJaWYgKGdldF90aW1lcihzdGFydCkgPgotCQkJCQkJICAgIENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJCQkgICAgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCQkJCQkqYWRkciA9IDB4MDBGMDsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCiAKQEAgLTQyNCw3ICs0MjQsNyBAQAogCQlyZXR1cm4gKDIpOwogCX0KIAotCWJhc2UgPSAoRlBXViAqKSAoQ0ZHX0ZMQVNIX0JBU0UpOworCWJhc2UgPSAoRlBXViAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKQEAgLTQ0NCw3ICs0NDQsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAocmVzID09IDAKIAkgICAgICAgJiYgKCpkZXN0ICYgKHU4KSAweDAwODAwMDgwKSAhPSAoZGF0YSAmICh1OCkgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAodTgpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI1M2RlbW8vbTUyNTNkZW1vLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNTNkZW1vL201MjUzZGVtby5jCmluZGV4IDJlYjZhMDQuLmIzOWNkNGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI1M2RlbW8vbTUyNTNkZW1vLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjUzZGVtby9tNTI1M2RlbW8uYwpAQCAtNDUsNyArNDUsNyBAQAogCWlmICghKG1iYXJfcmVhZExvbmcoTUNGU0lNX0RDUikgJiAweDgwMDApKSB7CiAJCXUzMiBSQywgdGVtcDsKIAotCQlSQyA9IChDRkdfQ0xLIC8gMTAwMDAwMCkgPj4gMTsKKwkJUkMgPSAoQ09ORklHX1NZU19DTEsgLyAxMDAwMDAwKSA+PiAxOwogCQlSQyA9IChSQyAqIDE1KSA+PiA0OwogCiAJCS8qIEluaXRpYWxpemUgRFJBTSBDb250cm9sIFJlZ2lzdGVyOiBEQ1IgKi8KQEAgLTU2LDcgKzU2LDcgQEAKIAkJX19hc21fXygibm9wIik7CiAKIAkJLyogSW5pdGlhbGl6ZSBETVIwICovCi0JCWRyYW1zaXplID0gKENGR19TRFJBTV9TSVpFIDw8IDIwKTsKKwkJZHJhbXNpemUgPSAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKTsKIAkJdGVtcCA9IChkcmFtc2l6ZSAtIDEpICYgMHhGRkZDMDAwMDsKIAkJbWJhcl93cml0ZUxvbmcoTUNGU0lNX0RNUjAsIHRlbXAgfCAxKTsKIAkJX19hc21fXygibm9wIik7CkBAIC02NSw3ICs2NSw3IEBACiAJCV9fYXNtX18oIm5vcCIpOwogCiAJCS8qIFdyaXRlIHRvIHRoaXMgYmxvY2sgdG8gaW5pdGlhdGUgcHJlY2hhcmdlICovCi0JCSoodTMyICopIChDRkdfU0RSQU1fQkFTRSkgPSAweGE1YTVhNWE1OworCQkqKHUzMiAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNWE1YTU7CiAJCV9fYXNtX18oIm5vcCIpOwogCiAJCS8qIFNldCBSRSBiaXQgaW4gREFDUiAqLwpAQCAtODEsNyArODEsNyBAQAogCQkJICAgICAgIG1iYXJfcmVhZExvbmcoTUNGU0lNX0RBQ1IwKSB8IDB4MDA0MCk7CiAJCV9fYXNtX18oIm5vcCIpOwogCi0JCSoodTMyICopIChDRkdfU0RSQU1fQkFTRSArIDB4ODAwKSA9IDB4YTVhNWE1YTU7CisJCSoodTMyICopIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDgwMCkgPSAweGE1YTVhNWE1OwogCX0KIAogCXJldHVybiBkcmFtc2l6ZTsKQEAgLTEwNCw3ICsxMDQsNyBAQAogCiB2b2lkIGlkZV9zZXRfcmVzZXQoaW50IGlkZXJlc2V0KQogewotCXZvbGF0aWxlIGF0YWNfdCAqYXRhID0gKGF0YWNfdCAqKSBDRkdfQVRBX0JBU0VfQUREUjsKKwl2b2xhdGlsZSBhdGFjX3QgKmF0YSA9IChhdGFjX3QgKikgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSOwogCWxvbmcgcGVyaW9kOwogCS8qICB0MSwgIHQyLCAgdDMsICB0NCwgIHQ1LCAgdDYsICB0OSwgdFJELCAgdEEgKi8KIAlpbnQgcGlvdG1zWzVdWzldID0geyB7NzAsIDE2NSwgNjAsIDMwLCA1MCwgNSwgMjAsIDAsIDM1fSwJLyogUElPIDAgKi8KQEAgLTEyMSw3ICsxMjEsNyBAQAogCQltYmFyMl93cml0ZUxvbmcoQ0lNX01JU0NDUiwgQ0lNX01JU0NDUl9DUFVFTkQpOwogCiAjZGVmaW5lIENBTENfVElNSU5HKHQpICh0ICsgcGVyaW9kIC0gMSkgLyBwZXJpb2QKLQkJcGVyaW9kID0gMTAwMDAwMDAwMCAvIChDRkdfQ0xLIC8gMik7CS8qIHBlcmlvZCBpbiBucyAqLworCQlwZXJpb2QgPSAxMDAwMDAwMDAwIC8gKENPTkZJR19TWVNfQ0xLIC8gMik7CS8qIHBlcmlvZCBpbiBucyAqLwogCiAJCS8qYXRhLT50b24gPSBDQUxDX1RJTUlORyAoMTgwKTsgKi8KIAkJYXRhLT50MSA9IENBTENfVElNSU5HKHBpb3Rtc1syXVswXSk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyNTNldmJlL201MjUzZXZiZS5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjUzZXZiZS9tNTI1M2V2YmUuYwppbmRleCBmM2IxZWZkLi5hZTY5ZjY3IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyNTNldmJlL201MjUzZXZiZS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI1M2V2YmUvbTUyNTNldmJlLmMKQEAgLTQzLDcgKzQzLDcgQEAKIAlpZiAoIShtYmFyX3JlYWRMb25nKE1DRlNJTV9EQ1IpICYgMHg4MDAwKSkgewogCQl1MzIgUkMsIGRyYW1zaXplOwogCi0JCVJDID0gKENGR19DTEsgLyAxMDAwMDAwKSA+PiAxOworCQlSQyA9IChDT05GSUdfU1lTX0NMSyAvIDEwMDAwMDApID4+IDE7CiAJCVJDID0gKFJDICogMTUpID4+IDQ7CiAKIAkJLyogSW5pdGlhbGl6ZSBEUkFNIENvbnRyb2wgUmVnaXN0ZXI6IERDUiAqLwpAQCAtNTQsNyArNTQsNyBAQAogCQlhc20oIm5vcCIpOwogCiAJCS8qIEluaXRpYWxpemUgRE1SMCAqLwotCQlkcmFtc2l6ZSA9ICgoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApIC0gMSkgJiAweEZGRkMwMDAwOworCQlkcmFtc2l6ZSA9ICgoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSAtIDEpICYgMHhGRkZDMDAwMDsKIAkJbWJhcl93cml0ZUxvbmcoTUNGU0lNX0RNUjAsIGRyYW1zaXplIHwgMSk7CiAJCWFzbSgibm9wIik7CiAKQEAgLTYyLDcgKzYyLDcgQEAKIAkJYXNtKCJub3AiKTsKIAogCQkvKiBXcml0ZSB0byB0aGlzIGJsb2NrIHRvIGluaXRpYXRlIHByZWNoYXJnZSAqLwotCQkqKHUzMiAqKSAoQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1YTVhNTsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweGE1YTVhNWE1OwogCQlhc20oIm5vcCIpOwogCiAJCS8qIFNldCBSRSBiaXQgaW4gREFDUiAqLwpAQCAtNzgsMTAgKzc4LDEwIEBACiAJCQkgICAgICAgbWJhcl9yZWFkTG9uZyhNQ0ZTSU1fREFDUjApIHwgMHgwMDQwKTsKIAkJYXNtKCJub3AiKTsKIAotCQkqKHUzMiAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyAweDgwMCkgPSAweGE1YTVhNWE1OworCQkqKHUzMiAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg4MDApID0gMHhhNWE1YTVhNTsKIAl9CiAKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9CiAKIGludCB0ZXN0ZHJhbSh2b2lkKQpAQCAtMTAxLDcgKzEwMSw3IEBACiAKIHZvaWQgaWRlX3NldF9yZXNldChpbnQgaWRlcmVzZXQpCiB7Ci0Jdm9sYXRpbGUgYXRhY190ICphdGEgPSAoYXRhY190ICopIENGR19BVEFfQkFTRV9BRERSOworCXZvbGF0aWxlIGF0YWNfdCAqYXRhID0gKGF0YWNfdCAqKSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFI7CiAJbG9uZyBwZXJpb2Q7CiAJLyogIHQxLCAgdDIsICB0MywgIHQ0LCAgdDUsICB0NiwgIHQ5LCB0UkQsICB0QSAqLwogCWludCBwaW90bXNbNV1bOV0gPSB7IHs3MCwgMTY1LCA2MCwgMzAsIDUwLCA1LCAyMCwgMCwgMzV9LAkvKiBQSU8gMCAqLwpAQCAtMTE4LDcgKzExOCw3IEBACiAJCW1iYXIyX3dyaXRlTG9uZyhDSU1fTUlTQ0NSLCBDSU1fTUlTQ0NSX0NQVUVORCk7CiAKICNkZWZpbmUgQ0FMQ19USU1JTkcodCkgKHQgKyBwZXJpb2QgLSAxKSAvIHBlcmlvZAotCQlwZXJpb2QgPSAxMDAwMDAwMDAwIC8gKENGR19DTEsgLyAyKTsJLyogcGVyaW9kIGluIG5zICovCisJCXBlcmlvZCA9IDEwMDAwMDAwMDAgLyAoQ09ORklHX1NZU19DTEsgLyAyKTsJLyogcGVyaW9kIGluIG5zICovCiAKIAkJLyphdGEtPnRvbiA9IENBTENfVElNSU5HICgxODApOyAqLwogCQlhdGEtPnQxID0gQ0FMQ19USU1JTkcocGlvdG1zWzJdWzBdKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MWV2Yi9tNTI3MWV2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjcxZXZiL201MjcxZXZiLmMKaW5kZXggZTA4OWQ1Zi4uNTUwNWNjNCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjcxZXZiL201MjcxZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjcxZXZiL201MjcxZXZiLmMKQEAgLTY2LDcgKzY2LDcgQEAKIAkJICogUFM6IDMyYml0IHBvcnQgc2l6ZQogCQkgKi8KIAkJbWJhcl93cml0ZUxvbmcoTUNGX1NEUkFNQ19EQUNSMCwKLQkJCQlNQ0ZfU0RSQU1DX0RBQ1JuX0JBKENGR19TRFJBTV9CQVNFPj4xOCkKKwkJCQlNQ0ZfU0RSQU1DX0RBQ1JuX0JBKENPTkZJR19TWVNfU0RSQU1fQkFTRT4+MTgpCiAJCQkJfCBNQ0ZfU0RSQU1DX0RBQ1JuX0NBU0woMSkKIAkJCQl8IE1DRl9TRFJBTUNfREFDUm5fQ0JNKDMpCiAJCQkJfCBNQ0ZfU0RSQU1DX0RBQ1JuX1BTKDApKTsKQEAgLTg1LDcgKzg1LDcgQEAKIAkJCWFzbSgiIG5vcCIpOwogCiAJCS8qIFdyaXRlIHRvIHRoaXMgYmxvY2sgdG8gaW5pdGlhdGUgcHJlY2hhcmdlICovCi0JCSoodTMyICopKENGR19TRFJBTV9CQVNFKSA9IDB4YTVhNWE1YTU7CisJCSoodTMyICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweGE1YTVhNWE1OwogCiAJCS8qIFNldCBSRSBiaXQgaW4gREFDUiAqLwogCQltYmFyX3dyaXRlTG9uZyhNQ0ZfU0RSQU1DX0RBQ1IwLCBtYmFyX3JlYWRMb25nKE1DRl9TRFJBTUNfREFDUjApCkBAIC0xMDgsMTAgKzEwOCwxMCBAQAogCQkgKiBCdXJzdCBUeXBlID0gU2VxdWVudGlhbAogCQkgKiBCdXJzdCBMZW5ndGggPSAxCiAJCSAqLwotCQkqKHUzMiAqKShDRkdfU0RSQU1fQkFTRSArIDB4NDAwKSA9IDB4YTVhNWE1YTU7CisJCSoodTMyICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwKSA9IDB4YTVhNWE1YTU7CiAJfQogCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfTsKIAogaW50IHRlc3RkcmFtICh2b2lkKSB7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzFldmIvbWlpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzFldmIvbWlpLmMKaW5kZXggNzhhNzAyOC4uZTc5ZmExOSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjcxZXZiL21paS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MWV2Yi9taWkuYwpAQCAtMzgsMTQgKzM4LDE0IEBACiB7CiAJaWYgKHNldGNsZWFyKSB7CiAJCS8qIEVuYWJsZSBFdGhlcm5ldCBwaW5zICovCi0JCW1iYXJfd3JpdGVCeXRlKE1DRl9HUElPX1BBUl9GRUNJMkMsIENGR19GRUNJMkMpOworCQltYmFyX3dyaXRlQnl0ZShNQ0ZfR1BJT19QQVJfRkVDSTJDLCBDT05GSUdfU1lTX0ZFQ0kyQyk7CiAJfSBlbHNlIHsKIAl9CiAKIAlyZXR1cm4gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQogI2luY2x1ZGUgPG1paXBoeS5oPgogCiAvKiBNYWtlIE1JSSByZWFkL3dyaXRlIGNvbW1hbmRzIGZvciB0aGUgRkVDLiAqLwpAQCAtMTMxLDkgKzEzMSw5IEBACiAKIAlyZXR1cm4gKG1paV9yZXBseSAmIDB4ZmZmZik7CS8qIGRhdGEgcmVhZCBmcm9tIHBoeSAqLwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLwogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBpbnQgbWlpX2Rpc2NvdmVyX3BoeShzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogI2RlZmluZSBNQVhfUEhZX1BBU1NFUyAxMQpAQCAtMTk4LDcgKzE5OCw3IEBACiAKIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogdm9pZCBtaWlfaW5pdCh2b2lkKSBfX2F0dHJpYnV0ZV9fKCh3ZWFrLGFsaWFzKCJfX21paV9pbml0IikpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvZmxhc2guYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MmMzL2ZsYXNoLmMKaW5kZXggZWEwYjFmZC4uNTg2YTJjZiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvZmxhc2guYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzJjMy9mbGFzaC5jCkBAIC0yMywxMCArMjMsMTAgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jZGVmaW5lIFBIWVNfRkxBU0hfMSBDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBQSFlTX0ZMQVNIXzEgQ09ORklHX1NZU19GTEFTSF9CQVNFCiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDIwMDAwMAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogdm9pZCBmbGFzaF9wcmludF9pbmZvIChmbGFzaF9pbmZvX3QgKiBpbmZvKQogewpAQCAtNzQsMTUgKzc0LDE1IEBACiAJaW50IGksIGo7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkJCShBTURfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCQkJKEFNRF9JRF9QTDE2MENCICYgRkxBU0hfVFlQRU1BU0spOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCWlmIChpID09IDApCiAJCQlmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CiAJCWVsc2UKQEAgLTExMyw4ICsxMTMsOCBAQAogCX0KIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgMHgzZmZmZiwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgzZmZmZiwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0xMjgsOCArMTI4LDggQEAKICNkZWZpbmUgQ01EX1BST0dSQU0JCTB4MDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMjAKIAotI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwNTU1PDwxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUE8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTU8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIyCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUE8PDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDgwCiAjZGVmaW5lIEJJVF9SRFlfTUFTSwkJMHgwMDgwCkBAIC0yMTEsNyArMjExLDcgQEAKIAkJCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lciAoMCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAxID0gVE1POwogCQkJCQlicmVhazsKQEAgLTI5OSw3ICsyOTksNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXIgKDApID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoMCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCWNoaXAxID0gRVJSIHwgVE1POwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MmMzL201MjcyYzMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3MmMzL201MjcyYzMuYwppbmRleCBkMTdjYjJlLi45MDJjYTNhIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzJjMy9tNTI3MmMzLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvbTUyNzJjMy5jCkBAIC00MCw3ICs0MCw3IEBACiAJLyogRHVtbXkgd3JpdGUgdG8gc3RhcnQgU0RSQU0gKi8KIAkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopMCkgPSAwOwogCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogCX07CiAKIGludCB0ZXN0ZHJhbSAodm9pZCkgewpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjcyYzMvbWlpLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzJjMy9taWkuYwppbmRleCBiMzBiYTgwLi4xNjFjNjk0IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzJjMy9taWkuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyNzJjMy9taWkuYwpAQCAtNDUsNyArNDUsNyBAQAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xMzEsOSArMTMxLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0xOTgsNyArMTk4LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzVldmIvbTUyNzVldmIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3NWV2Yi9tNTI3NWV2Yi5jCmluZGV4IGJlMTllMDIuLjM1YzliMjAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3NWV2Yi9tNTI3NWV2Yi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3NWV2Yi9tNTI3NWV2Yi5jCkBAIC00NCw3ICs0NCw3IEBACiAJZ3Bpb19yZWctPnBhcl9zZHJhbSA9IDB4M0ZGOyAvKiBFbmFibGUgU0RSQU0gKi8KIAogCS8qIFNldCB1cCBjaGlwIHNlbGVjdCAqLwotCXNkcC0+c2RiYXIwID0gQ0ZHX1NEUkFNX0JBU0U7CisJc2RwLT5zZGJhcjAgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJc2RwLT5zZGJtcjAgPSBNQ0ZfU0RSQU1DX1NETVJuX0JBTV8zMk0gfCBNQ0ZfU0RSQU1DX1NETVJuX1Y7CiAKIAkvKiBTZXQgdXAgdGltaW5nICovCkBAIC01OCwzNCArNTgsMzQgQEAKIAlzZHAtPnNkY3IgfD0gTUNGX1NEUkFNQ19TRENSX0lQQUxMOwogCiAJLyogRHVtbXkgd3JpdGUgdG8gc3RhcnQgU0RSQU0gKi8KLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKKwkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CiAKIAkvKiBTZW5kIExFTVIgKi8KIAlzZHAtPnNkbXIgPSBNQ0ZfU0RSQU1DX1NETVJfQk5LQURfTEVNUgogCQkJfCBNQ0ZfU0RSQU1DX1NETVJfQUQoMHgwKQogCQkJfCBNQ0ZfU0RSQU1DX1NETVJfQ01EOwotCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKilDRkdfU0RSQU1fQkFTRSkgPSAweGE1YTU5Njk2OworCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKIAogCS8qIFNlbmQgTE1SICovCiAJc2RwLT5zZG1yID0gMHgwNThkMDAwMDsKLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKKwkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CiAKIAkvKiBTdG9wIHNlbmRpbmcgY29tbWFuZHMgKi8KIAlzZHAtPnNkbXIgJj0gfihNQ0ZfU0RSQU1DX1NETVJfQ01EKTsKIAogCS8qIFNldCBwcmVjaGFyZ2UgKi8KIAlzZHAtPnNkY3IgfD0gTUNGX1NEUkFNQ19TRENSX0lQQUxMOwotCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKilDRkdfU0RSQU1fQkFTRSkgPSAweGE1YTU5Njk2OworCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKIAogCS8qIFN0b3AgbWFudWFsIHByZWNoYXJnZSwgc2VuZCAyIElSRUYgKi8KIAlzZHAtPnNkY3IgJj0gfihNQ0ZfU0RSQU1DX1NEQ1JfSVBBTEwpOwogCXNkcC0+c2RjciB8PSBNQ0ZfU0RSQU1DX1NEQ1JfSVJFRjsKLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKKwkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CisJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSkgPSAweGE1YTU5Njk2OwogCiAJLyogV3JpdGUgbW9kZSByZWdpc3RlciwgY2xlYXIgcmVzZXQgRExMICovCiAJc2RwLT5zZG1yID0gMHgwMThkMDAwMDsKLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ0ZHX1NEUkFNX0JBU0UpID0gMHhhNWE1OTY5NjsKKwkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNTk2OTY7CiAKIAkvKiBTdG9wIHNlbmRpbmcgY29tbWFuZHMgKi8KIAlzZHAtPnNkbXIgJj0gfihNQ0ZfU0RSQU1DX1NETVJfQ01EKTsKQEAgLTEwMCw3ICsxMDAsNyBAQAogCQl8IE1DRl9TRFJBTUNfU0RDUl9SQ05UKChTRFJBTV9UUkVGSS8oUEVSSU9EKjY0KSkgLSAxICsgMSkKIAkJfCBNQ0ZfU0RSQU1DX1NEQ1JfRFFTX09FKDB4Myk7CiAKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9OwogCiBpbnQgdGVzdGRyYW0odm9pZCkKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI3NWV2Yi9taWkuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTI3NWV2Yi9taWkuYwppbmRleCA2YzdhY2U5Li43MDZkOGQ2IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUyNzVldmIvbWlpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201Mjc1ZXZiL21paS5jCkBAIC00MSw3ICs0MSw3IEBACiAKIAlpZiAoc2V0Y2xlYXIpIHsKIAkJLyogRW5hYmxlIEV0aGVybmV0IHBpbnMgKi8KLQkJaWYgKGluZm8tPmlvYmFzZSA9PSBDRkdfRkVDMF9JT0JBU0UpIHsKKwkJaWYgKGluZm8tPmlvYmFzZSA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKSB7CiAJCQlncGlvLT5wYXJfZmVjaTJjIHw9IDB4MEYwMDsKIAkJCWdwaW8tPnBhcl9mZWMwaGwgfD0gMHhDMDsKIAkJfSBlbHNlIHsKQEAgLTQ5LDcgKzQ5LDcgQEAKIAkJCWdwaW8tPnBhcl9mZWMxaGwgfD0gMHhDMDsKIAkJfQogCX0gZWxzZSB7Ci0JCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ0ZHX0ZFQzBfSU9CQVNFKSB7CisJCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ09ORklHX1NZU19GRUMwX0lPQkFTRSkgewogCQkJZ3Bpby0+cGFyX2ZlY2kyYyAmPSB+MHgwRjAwOwogCQkJZ3Bpby0+cGFyX2ZlYzBobCAmPSB+MHhDMDsKIAkJfSBlbHNlIHsKQEAgLTYxLDcgKzYxLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQogI2luY2x1ZGUgPG1paXBoeS5oPgogCiAvKiBNYWtlIE1JSSByZWFkL3dyaXRlIGNvbW1hbmRzIGZvciB0aGUgRkVDLiAqLwpAQCAtMTQ3LDkgKzE0Nyw5IEBACiAKIAlyZXR1cm4gKG1paV9yZXBseSAmIDB4ZmZmZik7CS8qIGRhdGEgcmVhZCBmcm9tIHBoeSAqLwogfQotI2VuZGlmCS8qIENGR19ESVNDT1ZFUl9QSFkgfHwgKENPTkZJR19DT01NQU5EUyAmIENPTkZJR19DTURfTUlJKSAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IChDT05GSUdfQ09NTUFORFMgJiBDT05GSUdfQ01EX01JSSkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTIxNCw3ICsyMTQsNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhayxhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI4MmV2Yi9tNTI4MmV2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjgyZXZiL201MjgyZXZiLmMKaW5kZXggMzFkNjkyMy4uYjBjOWZjOCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MjgyZXZiL201MjgyZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MjgyZXZiL201MjgyZXZiLmMKQEAgLTM2LDcgKzM2LDcgQEAKIHsKIAl1MzIgZHJhbXNpemUsIGksIGRyYW1jbGs7CiAKLQlkcmFtc2l6ZSA9IENGR19TRFJBTV9TSVpFICogMHgxMDAwMDA7CisJZHJhbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKIAlmb3IgKGkgPSAweDEzOyBpIDwgMHgyMDsgaSsrKSB7CiAJCWlmIChkcmFtc2l6ZSA9PSAoMSA8PCBpKSkKIAkJCWJyZWFrOwpAQCAtNDUsNyArNDUsNyBAQAogCiAJaWYgKCEoTUNGU0RSQU1DX0RBQ1IwICYgTUNGU0RSQU1DX0RBQ1JfUkUpKQogCXsKLQkJZHJhbWNsayA9IGdkLT5idXNfY2xrIC8gKENGR19IWiAqIENGR19IWik7CisJCWRyYW1jbGsgPSBnZC0+YnVzX2NsayAvIChDT05GSUdfU1lTX0haICogQ09ORklHX1NZU19IWik7CiAKIAkJLyogSW5pdGlhbGl6ZSBEUkFNIENvbnRyb2wgUmVnaXN0ZXI6IERDUiAqLwogCQlNQ0ZTRFJBTUNfRENSID0gKDAKQEAgLTU1LDcgKzU1LDcgQEAKIAogCQkvKiBJbml0aWFsaXplIERBQ1IwICovCiAJCU1DRlNEUkFNQ19EQUNSMCA9ICgwCi0JCQl8IE1DRlNEUkFNQ19EQUNSX0JBU0UoQ0ZHX1NEUkFNX0JBU0UpCisJCQl8IE1DRlNEUkFNQ19EQUNSX0JBU0UoQ09ORklHX1NZU19TRFJBTV9CQVNFKQogCQkJfCBNQ0ZTRFJBTUNfREFDUl9DQVNMKDEpCiAJCQl8IE1DRlNEUkFNQ19EQUNSX0NCTSgzKQogCQkJfCBNQ0ZTRFJBTUNfREFDUl9QU18zMik7CkBAIC03Nyw3ICs3Nyw3IEBACiAJCX0KIAogCQkvKiBXcml0ZSB0byB0aGlzIGJsb2NrIHRvIGluaXRpYXRlIHByZWNoYXJnZSAqLwotCQkqKHUzMiAqKShDRkdfU0RSQU1fQkFTRSkgPSAweEE1QTU5Njk2OworCQkqKHUzMiAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UpID0gMHhBNUE1OTY5NjsKIAkJYXNtKCJub3AiKTsKIAogCQkvKiBTZXQgUkUgKGJpdCAxNSkgaW4gREFDUiAqLwpAQCAtOTQsNyArOTQsNyBAQAogCQlhc20oIm5vcCIpOwogCiAJCS8qIFdyaXRlIHRvIHRoZSBTRFJBTSBNb2RlIFJlZ2lzdGVyICovCi0JCSoodTMyICopKENGR19TRFJBTV9CQVNFICsgMHg0MDApID0gMHhBNUE1OTY5NjsKKwkJKih1MzIgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg0MDApID0gMHhBNUE1OTY5NjsKIAl9CiAJcmV0dXJuIGRyYW1zaXplOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MjgyZXZiL21paS5jIGIvYm9hcmQvZnJlZXNjYWxlL201MjgyZXZiL21paS5jCmluZGV4IDhhZTJlYzYuLjdmOTI1MTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTI4MmV2Yi9taWkuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUyODJldmIvbWlpLmMKQEAgLTM4LDE1ICszOCwxNSBAQAogewogCWlmIChzZXRjbGVhcikgewogCQlNQ0ZHUElPX1BBU1BBUiB8PSAweDBGMDA7Ci0JCU1DRkdQSU9fUEVITFBBUiA9IENGR19QRUhMUEFSOworCQlNQ0ZHUElPX1BFSExQQVIgPSBDT05GSUdfU1lTX1BFSExQQVI7CiAJfSBlbHNlIHsKIAkJTUNGR1BJT19QQVNQQVIgJj0gMHhGMEZGOwotCQlNQ0ZHUElPX1BFSExQQVIgJj0gfkNGR19QRUhMUEFSOworCQlNQ0ZHUElPX1BFSExQQVIgJj0gfkNPTkZJR19TWVNfUEVITFBBUjsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTEzMiw5ICsxMzIsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTE5OSw3ICsxOTksNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhayxhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9tNTMyOWV2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiL201MzI5ZXZiLmMKaW5kZXggZjlmYTlmYi4uYjRkZjIyZiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiL201MzI5ZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiL201MzI5ZXZiLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAl2b2xhdGlsZSBzZHJhbV90ICpzZHJhbSA9ICh2b2xhdGlsZSBzZHJhbV90ICopKE1NQVBfU0RSQU0pOwogCXUzMiBkcmFtc2l6ZSwgaTsKIAotCWRyYW1zaXplID0gQ0ZHX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKKwlkcmFtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDB4MTAwMDAwOwogCiAJZm9yIChpID0gMHgxMzsgaSA8IDB4MjA7IGkrKykgewogCQlpZiAoZHJhbXNpemUgPT0gKDEgPDwgaSkpCkBAIC01MCwyOSArNTAsMjkgQEAKIAl9CiAJaS0tOwogCi0Jc2RyYW0tPmNzMCA9IChDRkdfU0RSQU1fQkFTRSB8IGkpOwotCXNkcmFtLT5jZmcxID0gQ0ZHX1NEUkFNX0NGRzE7Ci0Jc2RyYW0tPmNmZzIgPSBDRkdfU0RSQU1fQ0ZHMjsKKwlzZHJhbS0+Y3MwID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IGkpOworCXNkcmFtLT5jZmcxID0gQ09ORklHX1NZU19TRFJBTV9DRkcxOworCXNkcmFtLT5jZmcyID0gQ09ORklHX1NZU19TRFJBTV9DRkcyOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5jdHJsID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5jdHJsID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAogCS8qIElzc3VlIExFTVIgKi8KLQlzZHJhbS0+bW9kZSA9IENGR19TRFJBTV9FTU9EOwotCXNkcmFtLT5tb2RlID0gKENGR19TRFJBTV9NT0RFIHwgMHgwNDAwMDAwMCk7CisJc2RyYW0tPm1vZGUgPSBDT05GSUdfU1lTX1NEUkFNX0VNT0Q7CisJc2RyYW0tPm1vZGUgPSAoQ09ORklHX1NZU19TRFJBTV9NT0RFIHwgMHgwNDAwMDAwMCk7CiAKIAl1ZGVsYXkoNTAwKTsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+Y3RybCA9IChDRkdfU0RSQU1fQ1RSTCB8IDIpOworCXNkcmFtLT5jdHJsID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDIpOwogCiAJLyogUGVyZm9ybSB0d28gcmVmcmVzaCBjeWNsZXMgKi8KLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgNDsKLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+Y3RybCA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPmN0cmwgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OwogCi0Jc2RyYW0tPm1vZGUgPSBDRkdfU0RSQU1fTU9ERTsKKwlzZHJhbS0+bW9kZSA9IENPTkZJR19TWVNfU0RSQU1fTU9ERTsKIAotCXNkcmFtLT5jdHJsID0gKENGR19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMGMwMDsKKwlzZHJhbS0+Y3RybCA9IChDT05GSUdfU1lTX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwYzAwOwogCiAJdWRlbGF5KDEwMCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9taWkuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9taWkuYwppbmRleCA4ZjZhYmYzLi5jMGY1ODE3IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIvbWlpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiL21paS5jCkBAIC01MCw3ICs1MCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTEzNCw5ICsxMzQsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTIwMSw3ICsyMDEsNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhayxhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9uYW5kLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUzMjlldmIvbmFuZC5jCmluZGV4IGY4NDkxMmUuLjgyNDkyZjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTMyOWV2Yi9uYW5kLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiL25hbmQuYwpAQCAtODMsNyArODMsNyBAQAogewogCXZvbGF0aWxlIGdwaW9fdCAqZ3BpbyA9IChncGlvX3QgKikgTU1BUF9HUElPOwogCi0JKigodm9sYXRpbGUgdTE2ICopQ0ZHX0xBVENIX0FERFIpIHw9IDB4MDAwNDsKKwkqKCh2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0xBVENIX0FERFIpIHw9IDB4MDAwNDsKIAogCS8qIHNldCB1cCBwaW4gY29uZmlndXJhdGlvbiAqLwogCWdwaW8tPnBhcl90aW1lciAmPSB+R1BJT19QQVJfVElOM19USU4zOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL201MzczZXZiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTUzNzNldmIvbTUzNzNldmIuYwppbmRleCBhMjY5ZWU2Li4zNzZkZTRiIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTUzNzNldmIvbTUzNzNldmIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUzNzNldmIvbTUzNzNldmIuYwpAQCAtNDIsNyArNDIsNyBAQAogCXZvbGF0aWxlIHNkcmFtX3QgKnNkcmFtID0gKHZvbGF0aWxlIHNkcmFtX3QgKikoTU1BUF9TRFJBTSk7CiAJdTMyIGRyYW1zaXplLCBpOwogCi0JZHJhbXNpemUgPSBDRkdfU0RSQU1fU0laRSAqIDB4MTAwMDAwOworCWRyYW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMHgxMDAwMDA7CiAKIAlmb3IgKGkgPSAweDEzOyBpIDwgMHgyMDsgaSsrKSB7CiAJCWlmIChkcmFtc2l6ZSA9PSAoMSA8PCBpKSkKQEAgLTUwLDI5ICs1MCwyOSBAQAogCX0KIAlpLS07CiAKLQlzZHJhbS0+Y3MwID0gKENGR19TRFJBTV9CQVNFIHwgaSk7Ci0Jc2RyYW0tPmNmZzEgPSBDRkdfU0RSQU1fQ0ZHMTsKLQlzZHJhbS0+Y2ZnMiA9IENGR19TRFJBTV9DRkcyOworCXNkcmFtLT5jczAgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgaSk7CisJc2RyYW0tPmNmZzEgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzE7CisJc2RyYW0tPmNmZzIgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzI7CiAKIAkvKiBJc3N1ZSBQQUxMICovCi0Jc2RyYW0tPmN0cmwgPSBDRkdfU0RSQU1fQ1RSTCB8IDI7CisJc2RyYW0tPmN0cmwgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCAyOwogCiAJLyogSXNzdWUgTEVNUiAqLwotCXNkcmFtLT5tb2RlID0gQ0ZHX1NEUkFNX0VNT0Q7Ci0Jc2RyYW0tPm1vZGUgPSAoQ0ZHX1NEUkFNX01PREUgfCAweDA0MDAwMDAwKTsKKwlzZHJhbS0+bW9kZSA9IENPTkZJR19TWVNfU0RSQU1fRU1PRDsKKwlzZHJhbS0+bW9kZSA9IChDT05GSUdfU1lTX1NEUkFNX01PREUgfCAweDA0MDAwMDAwKTsKIAogCXVkZWxheSg1MDApOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5jdHJsID0gKENGR19TRFJBTV9DVFJMIHwgMik7CisJc2RyYW0tPmN0cmwgPSAoQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMik7CiAKIAkvKiBQZXJmb3JtIHR3byByZWZyZXNoIGN5Y2xlcyAqLwotCXNkcmFtLT5jdHJsID0gQ0ZHX1NEUkFNX0NUUkwgfCA0OwotCXNkcmFtLT5jdHJsID0gQ0ZHX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5jdHJsID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+Y3RybCA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CiAKLQlzZHJhbS0+bW9kZSA9IENGR19TRFJBTV9NT0RFOworCXNkcmFtLT5tb2RlID0gQ09ORklHX1NZU19TRFJBTV9NT0RFOwogCi0Jc2RyYW0tPmN0cmwgPSAoQ0ZHX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwYzAwOworCXNkcmFtLT5jdHJsID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCAmIH4weDgwMDAwMDAwKSB8IDB4MTAwMDBjMDA7CiAKIAl1ZGVsYXkoMTAwKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL21paS5jIGIvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL21paS5jCmluZGV4IDhmNmFiZjMuLmMwZjU4MTcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTM3M2V2Yi9taWkuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUzNzNldmIvbWlpLmMKQEAgLTUwLDcgKzUwLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQogI2luY2x1ZGUgPG1paXBoeS5oPgogCiAvKiBNYWtlIE1JSSByZWFkL3dyaXRlIGNvbW1hbmRzIGZvciB0aGUgRkVDLiAqLwpAQCAtMTM0LDkgKzEzNCw5IEBACiAKIAlyZXR1cm4gKG1paV9yZXBseSAmIDB4ZmZmZik7CS8qIGRhdGEgcmVhZCBmcm9tIHBoeSAqLwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLwogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBpbnQgbWlpX2Rpc2NvdmVyX3BoeShzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogI2RlZmluZSBNQVhfUEhZX1BBU1NFUyAxMQpAQCAtMjAxLDcgKzIwMSw3IEBACiAKIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogdm9pZCBtaWlfaW5pdCh2b2lkKSBfX2F0dHJpYnV0ZV9fKCh3ZWFrLGFsaWFzKCJfX21paV9pbml0IikpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL25hbmQuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTM3M2V2Yi9uYW5kLmMKaW5kZXggNDA0YTljMy4uZDAxYjgxOSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201MzczZXZiL25hbmQuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTUzNzNldmIvbmFuZC5jCkBAIC02Nyw3ICs2Nyw3IEBACiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKSBNTUFQX0dQSU87CiAJdm9sYXRpbGUgZmJjc190ICpmYmNzID0gKGZiY3NfdCAqKSBNTUFQX0ZCQ1M7CiAKLQkqKCh2b2xhdGlsZSB1MTYgKilDRkdfTEFUQ0hfQUREUikgfD0gMHgwMDA0OworCSooKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfTEFUQ0hfQUREUikgfD0gMHgwMDA0OwogCWZiY3MtPmNzbXIyICY9IH5GQkNTX0NTTVJfV1A7CiAKIAkvKiBzZXQgdXAgcGluIGNvbmZpZ3VyYXRpb24gKi8KZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTFldmIvbTU0NDUxZXZiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL201NDQ1MWV2Yi5jCmluZGV4IDc2OGY0MGIuLjA4OGM4YzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTFldmIvbTU0NDUxZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9tNTQ0NTFldmIuYwpAQCAtNDksMTYgKzQ5LDE2IEBACiAJICogU2VyaWFsIEJvb3Q6IFRoZSBkcmFtIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgaW4gc3RhcnQuUwogCSAqIG9ubHkgcmVxdWlyZSB0byByZXR1cm4gRFJBTSBzaXplCiAJICovCi0JZHJhbXNpemUgPSBDRkdfU0RSQU1fU0laRSAqIDB4MTAwMDAwOworCWRyYW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMHgxMDAwMDA7CiAjZWxzZQogCXZvbGF0aWxlIHNkcmFtY190ICpzZHJhbSA9ICh2b2xhdGlsZSBzZHJhbWNfdCAqKShNTUFQX1NEUkFNKTsKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAodm9sYXRpbGUgZ3Bpb190ICopKE1NQVBfR1BJTyk7CiAJdTMyIGk7CiAKLQlkcmFtc2l6ZSA9IENGR19TRFJBTV9TSVpFICogMHgxMDAwMDA7CisJZHJhbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAweDEwMDAwMDsKIAotCWlmICgoc2RyYW0tPnNkY2ZnMSA9PSBDRkdfU0RSQU1fQ0ZHMSkgJiYKLQkgICAgKHNkcmFtLT5zZGNmZzIgPT0gQ0ZHX1NEUkFNX0NGRzIpKQorCWlmICgoc2RyYW0tPnNkY2ZnMSA9PSBDT05GSUdfU1lTX1NEUkFNX0NGRzEpICYmCisJICAgIChzZHJhbS0+c2RjZmcyID09IENPTkZJR19TWVNfU0RSQU1fQ0ZHMikpCiAJCXJldHVybiBkcmFtc2l6ZTsKIAogCWZvciAoaSA9IDB4MTM7IGkgPCAweDIwOyBpKyspIHsKQEAgLTY3LDMyICs2NywzMiBAQAogCX0KIAlpLS07CiAKLQlncGlvLT5tc2NyX3NkcmFtID0gQ0ZHX1NEUkFNX0RSVl9TVFJFTkdUSDsKKwlncGlvLT5tc2NyX3NkcmFtID0gQ09ORklHX1NZU19TRFJBTV9EUlZfU1RSRU5HVEg7CiAKLQlzZHJhbS0+c2RjczAgPSAoQ0ZHX1NEUkFNX0JBU0UgfCBpKTsKKwlzZHJhbS0+c2RjczAgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgaSk7CiAKLQlzZHJhbS0+c2RjZmcxID0gQ0ZHX1NEUkFNX0NGRzE7Ci0Jc2RyYW0tPnNkY2ZnMiA9IENGR19TRFJBTV9DRkcyOworCXNkcmFtLT5zZGNmZzEgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzE7CisJc2RyYW0tPnNkY2ZnMiA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMjsKIAogCXVkZWxheSgyMDApOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAlfX2FzbV9fKCJub3AiKTsKIAogCS8qIFBlcmZvcm0gdHdvIHJlZnJlc2ggY3ljbGVzICovCi0Jc2RyYW0tPnNkY3IgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPnNkY3IgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OwogCV9fYXNtX18oIm5vcCIpOwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKIAlfX2FzbV9fKCJub3AiKTsKIAogCS8qIElzc3VlIExFTVIgKi8KLQlzZHJhbS0+c2RtciA9IENGR19TRFJBTV9NT0RFOworCXNkcmFtLT5zZG1yID0gQ09ORklHX1NZU19TRFJBTV9NT0RFOwogCV9fYXNtX18oIm5vcCIpOwotCXNkcmFtLT5zZG1yID0gQ0ZHX1NEUkFNX0VNT0Q7CisJc2RyYW0tPnNkbXIgPSBDT05GSUdfU1lTX1NEUkFNX0VNT0Q7CiAJX19hc21fXygibm9wIik7CiAKLQlzZHJhbS0+c2RjciA9IChDRkdfU0RSQU1fQ1RSTCAmIH4weDgwMDAwMDAwKSB8IDB4MTAwMDAwMDA7CisJc2RyYW0tPnNkY3IgPSAoQ09ORklHX1NZU19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMDAwMDsKIAogCXVkZWxheSgxMDApOwogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL21paS5jIGIvYm9hcmQvZnJlZXNjYWxlL201NDQ1MWV2Yi9taWkuYwppbmRleCA1YTQzMzBjLi42ZTI0NzM2IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTU0NDUxZXZiL21paS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTFldmIvbWlpLmMKQEAgLTQzLDcgKzQzLDcgQEAKIAkJZ3Bpby0+cGFyX2ZlY2kyYyB8PQogCQkgICAgKEdQSU9fUEFSX0ZFQ0kyQ19NREMwX01EQzAgfCBHUElPX1BBUl9GRUNJMkNfTURJTzBfTURJTzApOwogCi0JCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ0ZHX0ZFQzBfSU9CQVNFKQorCQlpZiAoaW5mby0+aW9iYXNlID09IENPTkZJR19TWVNfRkVDMF9JT0JBU0UpCiAJCQlncGlvLT5wYXJfZmVjIHw9IEdQSU9fUEFSX0ZFQ19GRUMwX1JNSUlfR1BJTzsKIAkJZWxzZQogCQkJZ3Bpby0+cGFyX2ZlYyB8PSBHUElPX1BBUl9GRUNfRkVDMV9STUlJX0FUQTsKQEAgLTUxLDcgKzUxLDcgQEAKIAkJZ3Bpby0+cGFyX2ZlY2kyYyAmPQogCQkgICAgfihHUElPX1BBUl9GRUNJMkNfTURDMF9NREMwIHwgR1BJT19QQVJfRkVDSTJDX01ESU8wX01ESU8wKTsKIAotCQlpZiAoaW5mby0+aW9iYXNlID09IENGR19GRUMwX0lPQkFTRSkKKwkJaWYgKGluZm8tPmlvYmFzZSA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKQogCQkJZ3Bpby0+cGFyX2ZlYyAmPSBHUElPX1BBUl9GRUNfRkVDMF9NQVNLOwogCQllbHNlCiAJCQlncGlvLT5wYXJfZmVjICY9IEdQSU9fUEFSX0ZFQ19GRUMxX01BU0s7CkBAIC01OSw3ICs1OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTEzNSw5ICsxMzUsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IChDT05GSUdfTUlJKSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IChDT05GSUdfTUlJKSAqLwogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBpbnQgbWlpX2Rpc2NvdmVyX3BoeShzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogI2RlZmluZSBNQVhfUEhZX1BBU1NFUyAxMQpAQCAtMjAyLDcgKzIwMiw3IEBACiAKIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogdm9pZCBtaWlfaW5pdCh2b2lkKSBfX2F0dHJpYnV0ZV9fICgod2VhaywgYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL201NDQ1NWV2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi9tNTQ0NTVldmIuYwppbmRleCAxMDA2ODJhLi4yOTNiNWIwIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL201NDQ1NWV2Yi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvbTU0NDU1ZXZiLmMKQEAgLTQ1LDEzICs0NSwxMyBAQAogCSAqIFNlcmlhbCBCb290OiBUaGUgZHJhbSBpcyBhbHJlYWR5IGluaXRpYWxpemVkIGluIHN0YXJ0LlMKIAkgKiBvbmx5IHJlcXVpcmUgdG8gcmV0dXJuIERSQU0gc2l6ZQogCSAqLwotCWRyYW1zaXplID0gQ0ZHX1NEUkFNX1NJWkUgKiAweDEwMDAwMCA+PiAxOworCWRyYW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMHgxMDAwMDAgPj4gMTsKICNlbHNlCiAJdm9sYXRpbGUgc2RyYW1jX3QgKnNkcmFtID0gKHZvbGF0aWxlIHNkcmFtY190ICopKE1NQVBfU0RSQU0pOwogCXZvbGF0aWxlIGdwaW9fdCAqZ3BpbyA9ICh2b2xhdGlsZSBncGlvX3QgKikoTU1BUF9HUElPKTsKIAl1MzIgaTsKIAotCWRyYW1zaXplID0gQ0ZHX1NEUkFNX1NJWkUgKiAweDEwMDAwMCA+PiAxOworCWRyYW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMHgxMDAwMDAgPj4gMTsKIAogCWZvciAoaSA9IDB4MTM7IGkgPCAweDIwOyBpKyspIHsKIAkJaWYgKGRyYW1zaXplID09ICgxIDw8IGkpKQpAQCAtNTksMzMgKzU5LDMzIEBACiAJfQogCWktLTsKIAotCWdwaW8tPm1zY3Jfc2RyYW0gPSBDRkdfU0RSQU1fRFJWX1NUUkVOR1RIOworCWdwaW8tPm1zY3Jfc2RyYW0gPSBDT05GSUdfU1lTX1NEUkFNX0RSVl9TVFJFTkdUSDsKIAotCXNkcmFtLT5zZGNzMCA9IChDRkdfU0RSQU1fQkFTRSB8IGkpOwotCXNkcmFtLT5zZGNzMSA9IChDRkdfU0RSQU1fQkFTRTEgfCBpKTsKKwlzZHJhbS0+c2RjczAgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgaSk7CisJc2RyYW0tPnNkY3MxID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRTEgfCBpKTsKIAotCXNkcmFtLT5zZGNmZzEgPSBDRkdfU0RSQU1fQ0ZHMTsKLQlzZHJhbS0+c2RjZmcyID0gQ0ZHX1NEUkFNX0NGRzI7CisJc2RyYW0tPnNkY2ZnMSA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMTsKKwlzZHJhbS0+c2RjZmcyID0gQ09ORklHX1NZU19TRFJBTV9DRkcyOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAogCS8qIElzc3VlIExFTVIgKi8KLQlzZHJhbS0+c2RtciA9IENGR19TRFJBTV9FTU9EIHwgMHg0MDg7Ci0Jc2RyYW0tPnNkbXIgPSBDRkdfU0RSQU1fTU9ERSB8IDB4MzAwOworCXNkcmFtLT5zZG1yID0gQ09ORklHX1NZU19TRFJBTV9FTU9EIHwgMHg0MDg7CisJc2RyYW0tPnNkbXIgPSBDT05GSUdfU1lTX1NEUkFNX01PREUgfCAweDMwMDsKIAogCXVkZWxheSg1MDApOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5zZGNyID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAogCS8qIFBlcmZvcm0gdHdvIHJlZnJlc2ggY3ljbGVzICovCi0Jc2RyYW0tPnNkY3IgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7Ci0Jc2RyYW0tPnNkY3IgPSBDRkdfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPnNkY3IgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5zZGNyID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKIAotCXNkcmFtLT5zZG1yID0gQ0ZHX1NEUkFNX01PREUgfCAweDIwMDsKKwlzZHJhbS0+c2RtciA9IENPTkZJR19TWVNfU0RSQU1fTU9ERSB8IDB4MjAwOwogCi0Jc2RyYW0tPnNkY3IgPSAoQ0ZHX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwYzAwOworCXNkcmFtLT5zZGNyID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCAmIH4weDgwMDAwMDAwKSB8IDB4MTAwMDBjMDA7CiAKIAl1ZGVsYXkoMTAwKTsKICNlbmRpZgpAQCAtMTc1LDExICsxNzUsMTEgQEAKICNpbmNsdWRlIDxmbGFzaC5oPgogdWxvbmcgYm9hcmRfZmxhc2hfZ2V0X2xlZ2FjeSAodWxvbmcgYmFzZSwgaW50IGJhbmtudW0sIGZsYXNoX2luZm9fdCAqIGluZm8pCiB7Ci0JaW50IHNlY3RbXSA9IENGR19BVE1FTF9TRUNUOwotCWludCBzZWN0c3pbXSA9IENGR19BVE1FTF9TRUNUU1o7CisJaW50IHNlY3RbXSA9IENPTkZJR19TWVNfQVRNRUxfU0VDVDsKKwlpbnQgc2VjdHN6W10gPSBDT05GSUdfU1lTX0FUTUVMX1NFQ1RTWjsKIAlpbnQgaSwgaiwgazsKIAotCWlmIChiYXNlICE9IENGR19BVE1FTF9CQVNFKQorCWlmIChiYXNlICE9IENPTkZJR19TWVNfQVRNRUxfQkFTRSkKIAkJcmV0dXJuIDA7CiAKIAlpbmZvLT5mbGFzaF9pZCAgICAgICAgICA9IDB4MDEwMDAwMDA7CkBAIC0yMDUsOSArMjA1LDkgQEAKIAlpbmZvLT5uYW1lICAgICAgICAgICAgICA9ICJDRkkgY29uZm9ybWFudCI7CiAKIAlpbmZvLT5zaXplICAgICAgICAgICAgICA9IDA7Ci0JaW5mby0+c2VjdG9yX2NvdW50ICAgICAgPSBDRkdfQVRNRUxfVE9UQUxTRUNUOworCWluZm8tPnNlY3Rvcl9jb3VudCAgICAgID0gQ09ORklHX1NZU19BVE1FTF9UT1RBTFNFQ1Q7CiAJaW5mby0+c3RhcnRbMF0gPSBiYXNlOwotCWZvciAoayA9IDAsIGkgPSAwOyBpIDwgQ0ZHX0FUTUVMX1JFR0lPTjsgaSsrKSB7CisJZm9yIChrID0gMCwgaSA9IDA7IGkgPCBDT05GSUdfU1lTX0FUTUVMX1JFR0lPTjsgaSsrKSB7CiAJCWluZm8tPnNpemUgKz0gc2VjdFtpXSAqIHNlY3RzeltpXTsKIAogCQlmb3IgKGogPSAwOyBqIDwgc2VjdFtpXTsgaisrLCBrKyspIHsKQEAgLTIxOCw0ICsyMTgsNCBAQAogCiAJcmV0dXJuIDE7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0ZMQVNIX0NGSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRkxBU0hfQ0ZJICovCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL21paS5jIGIvYm9hcmQvZnJlZXNjYWxlL201NDQ1NWV2Yi9taWkuYwppbmRleCAwYmU1NDM5Li5jMTk1MTkxIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL21paS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ0NTVldmIvbWlpLmMKQEAgLTQzLDcgKzQzLDcgQEAKIAkJZ3Bpby0+cGFyX2ZlY2kyYyB8PQogCQkgICAgKEdQSU9fUEFSX0ZFQ0kyQ19NREMwX01EQzAgfCBHUElPX1BBUl9GRUNJMkNfTURJTzBfTURJTzApOwogCi0JCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ0ZHX0ZFQzBfSU9CQVNFKQorCQlpZiAoaW5mby0+aW9iYXNlID09IENPTkZJR19TWVNfRkVDMF9JT0JBU0UpCiAJCQlncGlvLT5wYXJfZmVjIHw9IEdQSU9fUEFSX0ZFQ19GRUMwX1JNSUlfR1BJTzsKIAkJZWxzZQogCQkJZ3Bpby0+cGFyX2ZlYyB8PSBHUElPX1BBUl9GRUNfRkVDMV9STUlJX0FUQTsKQEAgLTUxLDcgKzUxLDcgQEAKIAkJZ3Bpby0+cGFyX2ZlY2kyYyAmPQogCQkgICAgfihHUElPX1BBUl9GRUNJMkNfTURDMF9NREMwIHwgR1BJT19QQVJfRkVDSTJDX01ESU8wX01ESU8wKTsKIAotCQlpZiAoaW5mby0+aW9iYXNlID09IENGR19GRUMwX0lPQkFTRSkKKwkJaWYgKGluZm8tPmlvYmFzZSA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKQogCQkJZ3Bpby0+cGFyX2ZlYyAmPSBHUElPX1BBUl9GRUNfRkVDMF9NQVNLOwogCQllbHNlCiAJCQlncGlvLT5wYXJfZmVjICY9IEdQSU9fUEFSX0ZFQ19GRUMxX01BU0s7CkBAIC01OSw3ICs1OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTE1Miw5ICsxNTIsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IChDT05GSUdfTUlJKSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IChDT05GSUdfTUlJKSAqLwogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBpbnQgbWlpX2Rpc2NvdmVyX3BoeShzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogI2RlZmluZSBNQVhfUEhZX1BBU1NFUyAxMQpAQCAtMjE5LDcgKzIxOSw3IEBACiAKIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogdm9pZCBtaWlfaW5pdCh2b2lkKSBfX2F0dHJpYnV0ZV9fKCh3ZWFrLGFsaWFzKCJfX21paV9pbml0IikpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201NDd4ZXZiL201NDd4ZXZiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbTU0N3hldmIvbTU0N3hldmIuYwppbmRleCA2ZDdkMjcwLi45ZjFlYzM4IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTU0N3hldmIvbTU0N3hldmIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTU0N3hldmIvbTU0N3hldmIuYwpAQCAtNDMsNTMgKzQzLDUzIEBACiAJdm9sYXRpbGUgc2l1X3QgKnNpdSA9IChzaXVfdCAqKSAoTU1BUF9TSVUpOwogCXZvbGF0aWxlIHNkcmFtX3QgKnNkcmFtID0gKHZvbGF0aWxlIHNkcmFtX3QgKikoTU1BUF9TRFJBTSk7CiAJdTMyIGRyYW1zaXplLCBpOwotI2lmZGVmIENGR19EUkFNU1oxCisjaWZkZWYgQ09ORklHX1NZU19EUkFNU1oxCiAJdTMyIHRlbXA7CiAjZW5kaWYKIAotCXNpdS0+ZHJ2ID0gQ0ZHX1NEUkFNX0RSVlNUUkVOR1RIOworCXNpdS0+ZHJ2ID0gQ09ORklHX1NZU19TRFJBTV9EUlZTVFJFTkdUSDsKIAotCWRyYW1zaXplID0gQ0ZHX0RSQU1TWiAqIDB4MTAwMDAwOworCWRyYW1zaXplID0gQ09ORklHX1NZU19EUkFNU1ogKiAweDEwMDAwMDsKIAlmb3IgKGkgPSAweDEzOyBpIDwgMHgyMDsgaSsrKSB7CiAJCWlmIChkcmFtc2l6ZSA9PSAoMSA8PCBpKSkKIAkJCWJyZWFrOwogCX0KIAlpLS07Ci0Jc2l1LT5jczBjZmcgPSAoQ0ZHX1NEUkFNX0JBU0UgfCBpKTsKKwlzaXUtPmNzMGNmZyA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBpKTsKIAotI2lmZGVmIENGR19EUkFNU1oxCi0JdGVtcCA9IENGR19EUkFNU1oxICogMHgxMDAwMDA7CisjaWZkZWYgQ09ORklHX1NZU19EUkFNU1oxCisJdGVtcCA9IENPTkZJR19TWVNfRFJBTVNaMSAqIDB4MTAwMDAwOwogCWZvciAoaSA9IDB4MTM7IGkgPCAweDIwOyBpKyspIHsKIAkJaWYgKHRlbXAgPT0gKDEgPDwgaSkpCiAJCQlicmVhazsKIAl9CiAJaS0tOwogCWRyYW1zaXplICs9IHRlbXA7Ci0Jc2l1LT5jczFjZmcgPSAoKENGR19TRFJBTV9CQVNFICsgdGVtcCkgfCBpKTsKKwlzaXUtPmNzMWNmZyA9ICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgdGVtcCkgfCBpKTsKICNlbmRpZgogCi0Jc2RyYW0tPmNmZzEgPSBDRkdfU0RSQU1fQ0ZHMTsKLQlzZHJhbS0+Y2ZnMiA9IENGR19TRFJBTV9DRkcyOworCXNkcmFtLT5jZmcxID0gQ09ORklHX1NZU19TRFJBTV9DRkcxOworCXNkcmFtLT5jZmcyID0gQ09ORklHX1NZU19TRFJBTV9DRkcyOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5jdHJsID0gQ0ZHX1NEUkFNX0NUUkwgfCAyOworCXNkcmFtLT5jdHJsID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMjsKIAogCS8qIElzc3VlIExFTVIgKi8KLQlzZHJhbS0+bW9kZSA9IENGR19TRFJBTV9FTU9EOwotCXNkcmFtLT5tb2RlID0gKENGR19TRFJBTV9NT0RFIHwgMHgwNDAwMDAwMCk7CisJc2RyYW0tPm1vZGUgPSBDT05GSUdfU1lTX1NEUkFNX0VNT0Q7CisJc2RyYW0tPm1vZGUgPSAoQ09ORklHX1NZU19TRFJBTV9NT0RFIHwgMHgwNDAwMDAwMCk7CiAKIAl1ZGVsYXkoNTAwKTsKIAogCS8qIElzc3VlIFBBTEwgKi8KLQlzZHJhbS0+Y3RybCA9IChDRkdfU0RSQU1fQ1RSTCB8IDIpOworCXNkcmFtLT5jdHJsID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDIpOwogCiAJLyogUGVyZm9ybSB0d28gcmVmcmVzaCBjeWNsZXMgKi8KLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgNDsKLQlzZHJhbS0+Y3RybCA9IENGR19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+Y3RybCA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CisJc2RyYW0tPmN0cmwgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCA0OwogCi0Jc2RyYW0tPm1vZGUgPSBDRkdfU0RSQU1fTU9ERTsKKwlzZHJhbS0+bW9kZSA9IENPTkZJR19TWVNfU0RSQU1fTU9ERTsKIAotCXNkcmFtLT5jdHJsID0gKENGR19TRFJBTV9DVFJMICYgfjB4ODAwMDAwMDApIHwgMHgxMDAwMEYwMDsKKwlzZHJhbS0+Y3RybCA9IChDT05GSUdfU1lTX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwRjAwOwogCiAJdWRlbGF5KDEwMCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTQ3eGV2Yi9taWkuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tNTQ3eGV2Yi9taWkuYwppbmRleCA1YjI2ODNiLi40ZDExNTA2IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbTU0N3hldmIvbWlpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201NDd4ZXZiL21paS5jCkBAIC00MSwxMiArNDEsMTIgQEAKIAlzdHJ1Y3QgZmVjX2luZm9fZG1hICppbmZvID0gKHN0cnVjdCBmZWNfaW5mb19kbWEgKilkZXYtPnByaXY7CiAKIAlpZiAoc2V0Y2xlYXIpIHsKLQkJaWYgKGluZm8tPmlvYmFzZSA9PSBDRkdfRkVDMF9JT0JBU0UpCisJCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ09ORklHX1NZU19GRUMwX0lPQkFTRSkKIAkJCWdwaW8tPnBhcl9mZWNpMmNpcnEgfD0gMHhGMDAwOwogCQllbHNlCiAJCQlncGlvLT5wYXJfZmVjaTJjaXJxIHw9IDB4MEZDMDsKIAl9IGVsc2UgewotCQlpZiAoaW5mby0+aW9iYXNlID09IENGR19GRUMwX0lPQkFTRSkKKwkJaWYgKGluZm8tPmlvYmFzZSA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKQogCQkJZ3Bpby0+cGFyX2ZlY2kyY2lycSAmPSAweDBGRkY7CiAJCWVsc2UKIAkJCWdwaW8tPnBhcl9mZWNpMmNpcnEgJj0gMHhGMDNGOwpAQCAtNTQsNyArNTQsNyBAQAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xNDAsOSArMTQwLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0yMTcsNyArMjE3LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18gKCh3ZWFrLCBhbGlhcygiX19taWlfaW5pdCIpKSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tNTQ4eGV2Yi9tNTQ4eGV2Yi5jIGIvYm9hcmQvZnJlZXNjYWxlL201NDh4ZXZiL201NDh4ZXZiLmMKaW5kZXggZTY1MTBjOS4uNGEyYTVjNyAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL201NDh4ZXZiL201NDh4ZXZiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL201NDh4ZXZiL201NDh4ZXZiLmMKQEAgLTQ0LDQ5ICs0NCw0OSBAQAogCXZvbGF0aWxlIHNkcmFtX3QgKnNkcmFtID0gKHZvbGF0aWxlIHNkcmFtX3QgKikoTU1BUF9TRFJBTSk7CiAJdTMyIGRyYW1zaXplLCBpOwogCi0Jc2l1LT5kcnYgPSBDRkdfU0RSQU1fRFJWU1RSRU5HVEg7CisJc2l1LT5kcnYgPSBDT05GSUdfU1lTX1NEUkFNX0RSVlNUUkVOR1RIOwogCi0JZHJhbXNpemUgPSBDRkdfRFJBTVNaICogMHgxMDAwMDA7CisJZHJhbXNpemUgPSBDT05GSUdfU1lTX0RSQU1TWiAqIDB4MTAwMDAwOwogCWZvciAoaSA9IDB4MTM7IGkgPCAweDIwOyBpKyspIHsKIAkJaWYgKGRyYW1zaXplID09ICgxIDw8IGkpKQogCQkJYnJlYWs7CiAJfQogCWktLTsKLQlzaXUtPmNzMGNmZyA9IChDRkdfU0RSQU1fQkFTRSB8IGkpOworCXNpdS0+Y3MwY2ZnID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IGkpOwogCi0jaWZkZWYgQ0ZHX0RSQU1TWjEKLQl0ZW1wID0gQ0ZHX0RSQU1TWjEgKiAweDEwMDAwMDsKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1TWjEKKwl0ZW1wID0gQ09ORklHX1NZU19EUkFNU1oxICogMHgxMDAwMDA7CiAJZm9yIChpID0gMHgxMzsgaSA8IDB4MjA7IGkrKykgewogCQlpZiAodGVtcCA9PSAoMSA8PCBpKSkKIAkJCWJyZWFrOwogCX0KIAlpLS07CiAJZHJhbXNpemUgKz0gdGVtcDsKLQlzaXUtPmNzMWNmZyA9ICgoQ0ZHX1NEUkFNX0JBU0UgKyB0ZW1wKSB8IGkpOworCXNpdS0+Y3MxY2ZnID0gKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyB0ZW1wKSB8IGkpOwogI2VuZGlmCiAKLQlzZHJhbS0+Y2ZnMSA9IENGR19TRFJBTV9DRkcxOwotCXNkcmFtLT5jZmcyID0gQ0ZHX1NEUkFNX0NGRzI7CisJc2RyYW0tPmNmZzEgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzE7CisJc2RyYW0tPmNmZzIgPSBDT05GSUdfU1lTX1NEUkFNX0NGRzI7CiAKIAkvKiBJc3N1ZSBQQUxMICovCi0Jc2RyYW0tPmN0cmwgPSBDRkdfU0RSQU1fQ1RSTCB8IDI7CisJc2RyYW0tPmN0cmwgPSBDT05GSUdfU1lTX1NEUkFNX0NUUkwgfCAyOwogCiAJLyogSXNzdWUgTEVNUiAqLwotCXNkcmFtLT5tb2RlID0gQ0ZHX1NEUkFNX0VNT0Q7Ci0Jc2RyYW0tPm1vZGUgPSAoQ0ZHX1NEUkFNX01PREUgfCAweDA0MDAwMDAwKTsKKwlzZHJhbS0+bW9kZSA9IENPTkZJR19TWVNfU0RSQU1fRU1PRDsKKwlzZHJhbS0+bW9kZSA9IChDT05GSUdfU1lTX1NEUkFNX01PREUgfCAweDA0MDAwMDAwKTsKIAogCXVkZWxheSg1MDApOwogCiAJLyogSXNzdWUgUEFMTCAqLwotCXNkcmFtLT5jdHJsID0gKENGR19TRFJBTV9DVFJMIHwgMik7CisJc2RyYW0tPmN0cmwgPSAoQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgMik7CiAKIAkvKiBQZXJmb3JtIHR3byByZWZyZXNoIGN5Y2xlcyAqLwotCXNkcmFtLT5jdHJsID0gQ0ZHX1NEUkFNX0NUUkwgfCA0OwotCXNkcmFtLT5jdHJsID0gQ0ZHX1NEUkFNX0NUUkwgfCA0OworCXNkcmFtLT5jdHJsID0gQ09ORklHX1NZU19TRFJBTV9DVFJMIHwgNDsKKwlzZHJhbS0+Y3RybCA9IENPTkZJR19TWVNfU0RSQU1fQ1RSTCB8IDQ7CiAKLQlzZHJhbS0+bW9kZSA9IENGR19TRFJBTV9NT0RFOworCXNkcmFtLT5tb2RlID0gQ09ORklHX1NZU19TRFJBTV9NT0RFOwogCi0Jc2RyYW0tPmN0cmwgPSAoQ0ZHX1NEUkFNX0NUUkwgJiB+MHg4MDAwMDAwMCkgfCAweDEwMDAwRjAwOworCXNkcmFtLT5jdHJsID0gKENPTkZJR19TWVNfU0RSQU1fQ1RSTCAmIH4weDgwMDAwMDAwKSB8IDB4MTAwMDBGMDA7CiAKIAl1ZGVsYXkoMTAwKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL201NDh4ZXZiL21paS5jIGIvYm9hcmQvZnJlZXNjYWxlL201NDh4ZXZiL21paS5jCmluZGV4IDViMjY4M2IuLjRkMTE1MDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tNTQ4eGV2Yi9taWkuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbTU0OHhldmIvbWlpLmMKQEAgLTQxLDEyICs0MSwxMiBAQAogCXN0cnVjdCBmZWNfaW5mb19kbWEgKmluZm8gPSAoc3RydWN0IGZlY19pbmZvX2RtYSAqKWRldi0+cHJpdjsKIAogCWlmIChzZXRjbGVhcikgewotCQlpZiAoaW5mby0+aW9iYXNlID09IENGR19GRUMwX0lPQkFTRSkKKwkJaWYgKGluZm8tPmlvYmFzZSA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKQogCQkJZ3Bpby0+cGFyX2ZlY2kyY2lycSB8PSAweEYwMDA7CiAJCWVsc2UKIAkJCWdwaW8tPnBhcl9mZWNpMmNpcnEgfD0gMHgwRkMwOwogCX0gZWxzZSB7Ci0JCWlmIChpbmZvLT5pb2Jhc2UgPT0gQ0ZHX0ZFQzBfSU9CQVNFKQorCQlpZiAoaW5mby0+aW9iYXNlID09IENPTkZJR19TWVNfRkVDMF9JT0JBU0UpCiAJCQlncGlvLT5wYXJfZmVjaTJjaXJxICY9IDB4MEZGRjsKIAkJZWxzZQogCQkJZ3Bpby0+cGFyX2ZlY2kyY2lycSAmPSAweEYwM0Y7CkBAIC01NCw3ICs1NCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKICNpbmNsdWRlIDxtaWlwaHkuaD4KIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4gKi8KQEAgLTE0MCw5ICsxNDAsOSBAQAogCiAJcmV0dXJuIChtaWlfcmVwbHkgJiAweGZmZmYpOwkvKiBkYXRhIHJlYWQgZnJvbSBwaHkgKi8KIH0KLSNlbmRpZgkJCQkvKiBDRkdfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCisjZW5kaWYJCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgfHwgQ09ORklHX0NNRF9NSUkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTIxNyw3ICsyMTcsNyBAQAogCiAJcmV0dXJuIHBoeWFkZHI7CiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAKIHZvaWQgbWlpX2luaXQodm9pZCkgX19hdHRyaWJ1dGVfXyAoKHdlYWssIGFsaWFzKCJfX21paV9pbml0IikpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL2FzbV9pbml0LlMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjNzQ0OGhwYzIvYXNtX2luaXQuUwppbmRleCA1MjEzMDFmLi5iOTQ5NWZkIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjNzQ0OGhwYzIvYXNtX2luaXQuUworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjNzQ0OGhwYzIvYXNtX2luaXQuUwpAQCAtMTIzLDcgKzEyMyw3IEBACiAKIC8qIEluaXRpYWxpemUgcG9pbnRlciB0byBUc2kxMDggcmVnaXN0ZXIgc3BhY2UgKi8KIAotCUxPQURfUFRSKHIyOSxDRkdfVFNJMTA4X0NTUl9SU1RfQkFTRSkvKiByMjkgLSBwb2ludGVyIHRvIHRzaTEwOCBDU1Igc3BhY2UgKi8KKwlMT0FEX1BUUihyMjksQ09ORklHX1NZU19UU0kxMDhfQ1NSX1JTVF9CQVNFKS8qIHIyOSAtIHBvaW50ZXIgdG8gdHNpMTA4IENTUiBzcGFjZSAqLwogCW9yaSByNCxyMjksVFNJMTA4X1BCX1JFR19PRkZTRVQKIAogLyogQ2hlY2sgUHJvY2Vzc29yIFZlcnNpb24gTnVtYmVyICovCkBAIC0yMTQsMTIgKzIxNCwxMiBAQAogCiAJb3JpIHI0LHIyOSxUU0kxMDhfUEJfUkVHX09GRlNFVAogCi0jaWYgKENGR19UU0kxMDhfQ1NSX0JBU0UgIT0gQ0ZHX1RTSTEwOF9DU1JfUlNUX0JBU0UpCisjaWYgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICE9IENPTkZJR19TWVNfVFNJMTA4X0NTUl9SU1RfQkFTRSkKIAkvKiBSZWxvY2F0ZSAoaWYgcmVxdWlyZWQpIFRzaTEwOCByZWdpc3RlcnMuIFNldCBuZXcgdmFsdWUgZm9yCiAJICogUEJfUkVHX0JBUjoKIAkgKiBOb3RlIHdlIGFyZSBpbiB0aGUgMzItYml0IGFkZHJlc3MgbW9kZS4KIAkgKi8KLQlMT0FEX1UzMihyNSwoQ0ZHX1RTSTEwOF9DU1JfQkFTRSB8IDB4MDEpKSAvKiBQQl9SRUdfQkFSOiBCQSArIEVOICovCisJTE9BRF9VMzIocjUsKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFIHwgMHgwMSkpIC8qIFBCX1JFR19CQVI6IEJBICsgRU4gKi8KIAlzdHcJcjUsUEJfUkVHX0JBUihyNCkKIAlhbmRpcy4JcjI5LHI1LDB4RkZGRgogCXN5bmMKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi9tcGM3NDQ4aHBjMi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL21wYzc0NDhocGMyLmMKaW5kZXggY2ZkYmVkNS4uMTE3Yjk1MSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL21wYzc0NDhocGMyLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL21wYzc0NDhocGMyLmMKQEAgLTYwLDcgKzYwLDcgQEAKIHsKIAlpbnQgbF90eXBlID0gMDsKIAotCXByaW50ZiAoIkJPQVJEOiAlc1xuIiwgQ0ZHX0JPQVJEX05BTUUpOworCXByaW50ZiAoIkJPQVJEOiAlc1xuIiwgQ09ORklHX1NZU19CT0FSRF9OQU1FKTsKIAlyZXR1cm4gKGxfdHlwZSk7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM3NDQ4aHBjMi90c2kxMDhfaW5pdC5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL3RzaTEwOF9pbml0LmMKaW5kZXggOWM0MGI3Mi4uNzRiYjU2NCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL3RzaTEwOF9pbml0LmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzc0NDhocGMyL3RzaTEwOF9pbml0LmMKQEAgLTg4LDcgKzg4LDcgQEAKIAl7MHgwMDAwMDAwMCwgMHgwMDAwMDI0MH0gIC8qIFBCQT0weEZGMDBfMDAwMCAtPiBITFAgOiAoVHJhbnNsYXRpb24gRW5hYmxlZCArIEJ5dGUtU3dhcCkqLwogfTsKIAotI2lmZGVmIENGR19DTEtfU1BSRUFECisjaWZkZWYgQ09ORklHX1NZU19DTEtfU1BSRUFECiB0eXBlZGVmIHN0cnVjdCB7CiAJdWxvbmcgY3RybDA7CiAJdWxvbmcgY3RybDE7CkBAIC0xMTEsNyArMTExLDcgQEAKIAl7MHgwMDVjMDA0NCwgMHgwMDAwMDAzOX0sCS8qIDY6IENHX1BCX0NMS08gPSAyMDAgTUh6ICovCiAJezB4MDA0ZjAwNDQsIDB4MDAwMDAwM2V9CS8qIDc6IENHX1BCX0NMS08gPSAyMzMgTUh6ICovCiB9OwotI2VuZGlmCS8qIENGR19DTEtfU1BSRUFEICovCisjZW5kaWYJLyogQ09ORklHX1NZU19DTEtfU1BSRUFEICovCiAKIC8qCiAgKiBQcm9zZXNzb3IgQnVzIENsb2NrIChpbiBNSHopIGRlZmluZWQgYnkgQ0dfUEJfU0VMRUNUCkBAIC0xMjksNyArMTI5LDcgQEAKIAl1bG9uZyBpOwogCiAJLyogRGV0ZWN0IFBCIGNsb2NrIGZyZXEuICovCi0JaSA9IGluMzIoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BXUlVQX1NUQVRVUyk7CisJaSA9IGluMzIoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QV1JVUF9TVEFUVVMpOwogCWkgPSAoaSA+PiAxNikgJiAweDA3OwkvKiBHZXQgUEIgUExMIG11bHRpcGxpZXIgKi8KIAogCXJldHVybiBwYl9jbGtfc2VsW2ldICogMTAwMDAwMDsKQEAgLTE0Niw3ICsxNDYsNyBAQAogCXVsb25nIGk7CiAKIAlnZC0+bWVtX2NsayA9IDA7Ci0JaSA9IGluMzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKworCWkgPSBpbjMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArCiAJCQlDR19QV1JVUF9TVEFUVVMpOwogCWkgPSAoaSA+PiAyMCkgJiAweDA3OwkvKiBHZXQgR0QgUExMIG11bHRpcGxpZXIgKi8KIAlzd2l0Y2ggKGkpIHsKQEAgLTE4Miw3ICsxODIsNyBAQAogCXZvbGF0aWxlIHVsb25nICpyZWdfcHRyOwogCiAJcmVnX3B0ciA9Ci0JCSh1bG9uZyAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgMHg5MDApOworCQkodWxvbmcgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyAweDkwMCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgewogCQkqcmVnX3B0cisrID0gMHgwMDAwMDIwMTsJLyogU1dBUCBFTkFCTEVEICovCkBAIC0xOTQsNyArMTk0LDcgQEAKIAogCS8qIFNldHVwIFBCX09DTl9CQVIyOiBzaXplIDI1NkIgKyBFTmFibGUgQCAweDBfODAwMDAwMDAgKi8KIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9PQ05fQkFSMiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUEJfUkVHX09GRlNFVCArIFBCX09DTl9CQVIyLAogCQkweDgwMDAwMDAxKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIApAQCAtMjAyLDcgKzIwMiw3IEBACiAJICogcmVhZCBmcm9tIFNEUkFNKQogCSAqLwogCi0JdGVtcCA9IGluMzIoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfT0NOX0JBUjIpOworCXRlbXAgPSBpbjMyKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9PQ05fQkFSMik7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKIAkvKgpAQCAtMjIxLDcgKzIyMSw3IEBACiAJICogaW5pdGlhbGl6ZSBwb2ludGVyIHRvIExVVCBhc3NvY2lhdGVkIHdpdGggUEJfT0NOX0JBUjEKIAkgKi8KIAlyZWdfcHRyID0KLQkJKHVsb25nICopIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyAweDgwMCk7CisJCSh1bG9uZyAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUEJfUkVHX09GRlNFVCArIDB4ODAwKTsKIAogCWZvciAoaSA9IDA7IGkgPCAzMjsgaSsrKSB7CiAJCSpyZWdfcHRyKysgPSBwYjJvY25fbHV0MVtpXS5sb3dlcjsKQEAgLTIzMiw3MyArMjMyLDczIEBACiAKIAkvKiBCYXNlIGFkZHJlc3NlcyBmb3IgQ1MwLCBDUzEsIENTMiwgQ1MzICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMF9BRERSLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMF9BRERSLAogCQkweDAwMDAwMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IxX0FERFIsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IxX0FERFIsCiAJCTB4MDAxMDAwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjJfQUREUiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjJfQUREUiwKIAkJMHgwMDIwMDAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CM19BRERSLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CM19BRERSLAogCQkweDAwMzAwMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAogCS8qIE1hc2tzIGZvciBITFAgYmFua3MgKi8KIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IwX01BU0ssCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IwX01BU0ssCiAJCTB4RkZGMDAwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjFfTUFTSywKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjFfTUFTSywKIAkJMHhGRkYwMDAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMl9NQVNLLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMl9NQVNLLAogCQkweEZGRjAwMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IzX01BU0ssCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IzX01BU0ssCiAJCTB4RkZGMDAwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCiAJLyogU2V0IENUUkwwIHZhbHVlcyBmb3IgYmFua3MgKi8KIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IwX0NUUkwwLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMF9DVFJMMCwKIAkJMHg3RkZDNDRDMik7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMV9DVFJMMCwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjFfQ1RSTDAsCiAJCTB4N0ZGQzQ0QzApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjJfQ1RSTDAsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IyX0NUUkwwLAogCQkweDdGRkM0NEMwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IzX0NUUkwwLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CM19DVFJMMCwKIAkJMHg3RkZDNDRDMik7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKIAkvKiBTZXQgYmFua3MgdG8gbGF0Y2hlZCBtb2RlLCBlbmFibGVkLCBhbmQgb3RoZXIgZGVmYXVsdCBzZXR0aW5ncyAqLwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjBfQ1RSTDEsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IwX0NUUkwxLAogCQkweDdDMEYyMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IxX0NUUkwxLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMV9DVFJMMSwKIAkJMHg3QzBGMjAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9ITFBfUkVHX09GRlNFVCArIEhMUF9CMl9DVFJMMSwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjJfQ1RSTDEsCiAJCTB4N0MwRjIwMDApOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSExQX1JFR19PRkZTRVQgKyBITFBfQjNfQ1RSTDEsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0hMUF9SRUdfT0ZGU0VUICsgSExQX0IzX0NUUkwxLAogCQkweDdDMEYyMDAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIApAQCAtMzA2LDcgKzMwNiw3IEBACiAJICogU2V0IG5ldyB2YWx1ZSBmb3IgUEJfT0NOX0JBUjE6IHN3aXRjaCBmcm9tIEJPT1QgdG8gTFVUIG1vZGUuCiAJICogdmFsdWUgZm9yIFBCX09DTl9CQVIxOiAoQkEtMHhFMDAwXzAwMDAgKyBzaXplIDUxMk1CICsgRU5hYmxlKQogCSAqLwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9PQ05fQkFSMSwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUEJfUkVHX09GRlNFVCArIFBCX09DTl9CQVIxLAogCQkweEUwMDAwMDExKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIApAQCAtMzE0LDcgKzMxNCw3IEBACiAJICogaW1tZWRpYXRlIHJlYWQgZnJvbSBTRFJBTSkKIAkgKi8KIAotCXRlbXAgPSBpbjMyKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUEJfUkVHX09GRlNFVCArIFBCX09DTl9CQVIxKTsKKwl0ZW1wID0gaW4zMihDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfT0NOX0JBUjEpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCiAJLyoKQEAgLTM0MSw3ICszNDEsNyBAQAogCXRlbXAgPSBnZXRfY3B1X3R5cGUgKCk7CiAKIAlpZiAoKENQVV83NTBGWCA9PSB0ZW1wKSB8fCAoQ1BVXzc1MEdYID09IHRlbXApKQotCQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfTUNNRCwKKwkJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9NQ01ELAogCQkJMHgwMDAwOTk1NSk7CiAjZW5kaWYJLyogRElTQUJMRV9QQk0gKi8KIApAQCAtMzUxLDI3ICszNTEsMjcgQEAKIAkgKi8KIAogCS8qIE1hcCBQQ0kvWCBDb25maWd1cmF0aW9uIFNwYWNlICgxNk1CIEAgMHgwX0ZFMDAwMDAwKSAqLwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKwogCQlQQ0lfUEZBQl9CQVIwX1VQUEVSLCAwKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1BGQUJfQkFSMCwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUEZBQl9CQVIwLAogCQkweEZCMDAwMDAxKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAogCS8qIFNldCBCdXMgTnVtYmVyIGZvciB0aGUgYXR0YWNoZWQgUENJL1ggYnVzICh3ZSB3aWxsIHVzZSAwIGZvciBOQikgKi8KIAotCXRlbXAgPQlpbjMyKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCXRlbXAgPQlpbjMyKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1BDSVhfU1RBVCk7CiAKIAl0ZW1wICY9IH4weEZGMDA7CS8qIENsZWFyIHRoZSBCVVNfTlVNIGZpZWxkICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QQ0lYX1NUQVQsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1BDSVhfU1RBVCwKIAkJdGVtcCk7CiAKIAkvKiBNYXAgUENJL1ggSU8gU3BhY2UgKDY0S0IgQCAweDBfRkQwMDAwMDApIHRha2VzIG9uZSAxNk1CIExVVCBlbnRyeSAqLwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUEZBQl9JT19VUFBFUiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUEZBQl9JT19VUFBFUiwKIAkJMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKQEAgLTM3OSw3ICszNzksNyBAQAogCSAqIGFuZCBtYXBzIGl0IGFzIGEgSU8gYWRkcmVzcy4KIAkgKi8KIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1BGQUJfSU8sCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1BGQUJfSU8sCiAJCTB4MDAwMDAwMDEpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCkBAIC00MDUsNyArNDA1LDcgQEAKIAkgKi8KIAogCXJlZ19wdHIgPQotCQkodWxvbmcgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyAweDUwMCk7CisJCSh1bG9uZyAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyAweDUwMCk7CiAKICNpZmRlZiBESVNBQkxFX1BCTQogCkBAIC00NDIsNyArNDQyLDcgQEAKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImVpZWlvIik7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fUEFHRV9TSVpFUywKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX1BBR0VfU0laRVMsCiAJCXJlZ192YWwpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCkBAIC00NTAsOSArNDUwLDkgQEAKIAkgKiAoIDAgaXMgdGhlIGJlc3QgY2hvaWNlIGZvciBlYXN5IG1hcHBpbmcpCiAJICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSMiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjIsCiAJCTB4MDAwMDAwMDApOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1AyT19CQVIyX1VQUEVSLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSMl9VUFBFUiwKIAkJMHgwMDAwMDAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKQEAgLTQ3MCw3ICs0NzAsNyBAQAogCSAqICBzZXQgcG9pbnRlciB0byBMVVQgYXNzb2NpYXRlZCB3aXRoIFBDSSBQMk9fQkFSMwogCSAqLwogCXJlZ19wdHIgPQotCQkodWxvbmcgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyAweDYwMCk7CisJCSh1bG9uZyAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyAweDYwMCk7CiAKIAlyZWdfdmFsID0gMHgwMDAwMDAwNDsJLyogRGVzdGluYXRpb24gcG9ydCA9IFNEQyAqLwogCkBAIC00OTAsMTkgKzQ5MCwxOSBAQAogCS8qIENvbmZpZ3VyZSBQQ0kgUDJPX0JBUjMgKHNpemUgPSA1MTJNQiwgRW5hYmxlZCkgKi8KIAogCXJlZ192YWwgPQotCQlpbjMyKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKworCQlpbjMyKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsKIAkJIFBDSV9QMk9fUEFHRV9TSVpFUyk7CiAJcmVnX3ZhbCAmPSB+MHgwMEZGOwogCXJlZ192YWwgfD0gMHgwMDcxOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1AyT19QQUdFX1NJWkVTLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fUEFHRV9TSVpFUywKIAkJcmVnX3ZhbCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKIAkvKiBTZXQgNjQtYml0IGJhc2UgUENJIGJ1cyBhZGRyZXNzIGZvciB3aW5kb3cgKDB4MjAwMDAwMDApICovCiAKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSM19VUFBFUiwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjNfVVBQRVIsCiAJCTB4MDAwMDAwMDApOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1AyT19CQVIzLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSMywKIAkJMHgyMDAwMDAwMCk7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKQEAgLTUxMSwxNyArNTExLDE3IEBACiAjaWZkZWYgRU5BQkxFX1BDSV9DU1JfQkFSCiAJLyogb3BlbiBpZiByZXF1aXJlZCBhY2Nlc3MgdG8gVHNpMTA4IENTUnMgZnJvbSB0aGUgUENJL1ggYnVzICovCiAJLyogZW5hYmxlIEJBUjAgb24gdGhlIFBDSS9YIGJ1cyAqLwotCXJlZ192YWwgPSBpbjMyKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCXJlZ192YWwgPSBpbjMyKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX01JU0NfQ1NSKTsKIAlyZWdfdmFsIHw9IDB4MDI7Ci0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfTUlTQ19DU1IsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX01JU0NfQ1NSLAogCQlyZWdfdmFsKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX1AyT19CQVIwX1VQUEVSLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSMF9VUFBFUiwKIAkJMHgwMDAwMDAwMCk7Ci0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfUDJPX0JBUjAsCi0JCUNGR19UU0kxMDhfQ1NSX0JBU0UpOworCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9QMk9fQkFSMCwKKwkJQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCiAjZW5kaWYKQEAgLTUzMCw5ICs1MzAsOSBAQAogCSAqIEZpbmFsbHkgZW5hYmxlIFBDSS9YIEJ1cyBNYXN0ZXIgYW5kIE1lbW9yeSBTcGFjZSBhY2Nlc3MKIAkgKi8KIAotCXJlZ192YWwgPSBpbjMyKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfUENJX1JFR19PRkZTRVQgKyBQQ0lfQ1NSKTsKKwlyZWdfdmFsID0gaW4zMihDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9DU1IpOwogCXJlZ192YWwgfD0gMHgwNjsKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9DU1IsIHJlZ192YWwpOworCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArIFBDSV9DU1IsIHJlZ192YWwpOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwpAQCAtNTQ2LDEwICs1NDYsMTAgQEAKIAkgKiBQQl9JTlRbM10gLT4gTUNQIChDUFUxKQogCSAqIFNldCBpbnRlcnJ1cHQgY29udHJvbGxlciBvdXRwdXRzIGFzIExldmVsX1NlbnNpdGl2ZS9BY3RpdmVfTG93CiAJICovCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfTVBJQ19SRUdfT0ZGU0VUICsgTVBJQ19DU1IoMCksIDB4MDIpOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X01QSUNfUkVHX09GRlNFVCArIE1QSUNfQ1NSKDEpLCAweDAyKTsKLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9NUElDX1JFR19PRkZTRVQgKyBNUElDX0NTUigyKSwgMHgwMik7Ci0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfTVBJQ19SRUdfT0ZGU0VUICsgTVBJQ19DU1IoMyksIDB4MDIpOworCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9NUElDX1JFR19PRkZTRVQgKyBNUElDX0NTUigwKSwgMHgwMik7CisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X01QSUNfUkVHX09GRlNFVCArIE1QSUNfQ1NSKDEpLCAweDAyKTsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfTVBJQ19SRUdfT0ZGU0VUICsgTVBJQ19DU1IoMiksIDB4MDIpOworCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9NUElDX1JFR19PRkZTRVQgKyBNUElDX0NTUigzKSwgMHgwMik7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKIAkvKgpAQCAtNTg0LDQyICs1ODQsNDIgQEAKIAogaW50IG1pc2NfaW5pdF9yICh2b2lkKQogewotI2lmZGVmIENGR19DTEtfU1BSRUFECS8qIEluaXRpYWxpemUgU3ByZWFkLVNwZWN0cnVtIENsb2NrIGdlbmVyYXRpb24gKi8KKyNpZmRlZiBDT05GSUdfU1lTX0NMS19TUFJFQUQJLyogSW5pdGlhbGl6ZSBTcHJlYWQtU3BlY3RydW0gQ2xvY2sgZ2VuZXJhdGlvbiAqLwogCXVsb25nIGk7CiAKIAkvKiBFbnN1cmUgdGhhdCBTcHJlYWQtU3BlY3RydW0gaXMgZGlzYWJsZWQgKi8KLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDBfQ1RSTDAsIDApOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMV9DVFJMMCwgMCk7CisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMF9DVFJMMCwgMCk7CisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMV9DVFJMMCwgMCk7CiAKIAkvKiBJbml0aWFsaXplIFBMTDE6IENHX1BDSV9DTEsgLCBpbnRlcm5hbCBPQ05fQ0xLCiAJICogVXNlcyBwcmUtY2FsY3VsYXRlZCB2YWx1ZSBmb3IgRm91dCA9IDgwMCBNSHosIEZzID0gMzAga0h6LCBEID0gMC41JQogCSAqLwogCi0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QTEwxX0NUUkwwLAorCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDFfQ1RSTDAsCiAJCTB4MDAyZTAwNDQpOwkvKiBEID0gMC4yNSUgKi8KLQlvdXQzMiAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDFfQ1RSTDEsCisJb3V0MzIgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMV9DVFJMMSwKIAkJMHgwMDAwMDAzOSk7CS8qIEJXQURKICovCiAKIAkvKiBJbml0aWFsaXplIFBMTDA6IENHX1BCX0NMS08gICovCiAJLyogRGV0ZWN0IFBCIGNsb2NrIGZyZXEuICovCi0JaSA9IGluMzIoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BXUlVQX1NUQVRVUyk7CisJaSA9IGluMzIoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QV1JVUF9TVEFUVVMpOwogCWkgPSAoaSA+PiAxNikgJiAweDA3OwkvKiBHZXQgUEIgUExMIG11bHRpcGxpZXIgKi8KIAotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQlUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QTEwwX0NUUkwwLCBwbGwwX2NvbmZpZ1tpXS5jdHJsMCk7Ci0Jb3V0MzIgKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCW91dDMyIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArCiAJCVRTSTEwOF9DTEtfUkVHX09GRlNFVCArIENHX1BMTDBfQ1RSTDEsIHBsbDBfY29uZmlnW2ldLmN0cmwxKTsKIAogCS8qIFdhaXQgYW5kIHNldCBTU0VOIGZvciBib3RoIFBMTDAgYW5kIDEgKi8KIAl1ZGVsYXkgKDEwMDApOwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0NMS19SRUdfT0ZGU0VUICsgQ0dfUExMMV9DVFJMMCwKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QTEwxX0NUUkwwLAogCQkweDgwMmUwMDQ0KTsJLyogRD0wLjI1JSAqLwotCW91dDMyIChDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwlvdXQzMiAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQlUU0kxMDhfQ0xLX1JFR19PRkZTRVQgKyBDR19QTEwwX0NUUkwwLAogCQkweDgwMDAwMDAwIHwgcGxsMF9jb25maWdbaV0uY3RybDApOwotI2VuZGlmCS8qIENGR19DTEtfU1BSRUFEICovCisjZW5kaWYJLyogQ09ORklHX1NZU19DTEtfU1BSRUFEICovCiAKLSNpZmRlZiBDRkdfTDIKKyNpZmRlZiBDT05GSUdfU1lTX0wyCiAJbDJjYWNoZV9lbmFibGUgKCk7CiAjZW5kaWYKIAlwcmludGYgKCJCVVM6ICAgJWx1IE1IelxuIiwgZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjYwYWRzL2ZsYXNoLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODI2MGFkcy9mbGFzaC5jCmluZGV4IDdmY2M4NzQuLmUwMzg1MmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjYwYWRzL2ZsYXNoLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjBhZHMvZmxhc2guYwpAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBJTlRFTF9GSU5JU0hFRCAweDgwODA4MDgwCiAjZGVmaW5lIElOVEVMX09LICAgICAgIDB4ODA4MDgwODAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRoaXMgYm9hcmQgc3VwcG9ydHMgMzItYml0IHdpZGUgZmxhc2ggU0lNTXMgKDR4OC1iaXQgY29uZmlndXJhdGlvbi4pCkBAIC02Niw4ICs2Niw4IEBACiAJdWxvbmcgc2l6ZSA9IDAsIHNlY3Rfc3RhcnQsIHNlY3Rfc2l6ZSA9IDAsIGJhbmtfc2l6ZTsKIAl1c2hvcnQgc2VjdF9jb3VudCA9IDA7CiAJaW50IGksIGosIG5iYW5rczsKLQl2dV9sb25nICphZGRyID0gKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRTsKLQl2dV9sb25nICpiY3NyID0gKHZ1X2xvbmcgKilDRkdfQkNTUjsKKwl2dV9sb25nICphZGRyID0gKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CisJdnVfbG9uZyAqYmNzciA9ICh2dV9sb25nICopQ09ORklHX1NZU19CQ1NSOwogCiAJc3dpdGNoIChiY3NyWzJdICYgMHhGKSB7CiAJY2FzZSAwOgpAQCAtODAsMTEgKzgwLDExIEBACiAJCW5iYW5rcyA9IDE7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CQkvKiBVbnN1cHBvcnRlZCBjb25maWd1cmF0aW9ucyAqLwotCQluYmFua3MgPSBDRkdfTUFYX0ZMQVNIX0JBTktTOworCQluYmFua3MgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsKIAl9CiAKLQlpZiAobmJhbmtzID4gQ0ZHX01BWF9GTEFTSF9CQU5LUykKLQkJbmJhbmtzID0gQ0ZHX01BWF9GTEFTSF9CQU5LUzsKKwlpZiAobmJhbmtzID4gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpCisJCW5iYW5rcyA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOwogCiAJZm9yIChpID0gMDsgaSA8IG5iYW5rczsgaSsrKSB7CiAJCSphZGRyID0gSU5URUxfUkVBRElEOwkvKiBSZWFkIEludGVsbGlnZW50IElkZW50aWZpZXIgKi8KQEAgLTk4LDkgKzk4LDkgQEAKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047Ci0JCQkJc2VjdF9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlzZWN0X2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAkJCQlzZWN0X3NpemUgPQotCQkJCSAgIENGR19GTEFTSF9TSVpFIC8gQ0ZHX01BWF9GTEFTSF9CQU5LUyAvIENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQkgICBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLyBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAvIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJCQl9CiAJCX0KIAkJZWxzZQpAQCAtMTI3LDEwICsxMjcsMTAgQEAKIAl9CiAKIAlpZiAoc2l6ZSA9PSAwKSB7CS8qIFVua25vd24gZmxhc2gsIGZpbGwgd2l0aCBoYXJkLWNvZGVkIHZhbHVlcyAqLwotCQlzZWN0X3N0YXJ0ID0gQ0ZHX0ZMQVNIX0JBU0U7Ci0JCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwkJc2VjdF9zdGFydCA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKKwkJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwotCQkJZmxhc2hfaW5mb1tpXS5zaXplID0gQ0ZHX0ZMQVNIX1NJWkUgLyBDRkdfTUFYX0ZMQVNIX0JBTktTOworCQkJZmxhc2hfaW5mb1tpXS5zaXplID0gQ09ORklHX1NZU19GTEFTSF9TSVpFIC8gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7CiAJCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IHNlY3RfY291bnQ7CiAJCQlmb3IgKGogPSAwOyBqIDwgc2VjdF9jb3VudDsgaisrKSB7CiAJCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSAgID0gc2VjdF9zdGFydDsKQEAgLTEzOCwyMCArMTM4LDIwIEBACiAJCQkJc2VjdF9zdGFydCArPSBzZWN0X3NpemU7CiAJCQl9CiAJCX0KLQkJc2l6ZSA9IENGR19GTEFTSF9TSVpFOworCQlzaXplID0gQ09ORklHX1NZU19GTEFTSF9TSVpFOwogCX0KIAllbHNlCi0JCWZvciAoaSA9IG5iYW5rczsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCQlmb3IgKGkgPSBuYmFua3M7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CiAJCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IDA7CiAJCX0KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTI3NCw3ICsyNzQsNyBAQAogCQkJCWVuYWJsZV9pbnRlcnJ1cHRzKCk7CiAKIAkJCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpIHsKLQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gSU5URUxfUkVTRVQ7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJcmV0dXJuIDE7CkBAIC0zMzgsNyArMzM4LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcHJpbnRmKCJXcml0ZSB0aW1lZCBvdXRcbiIpOwogCQkJcmMgPSAxOwogCQkJYnJlYWs7CkBAIC00NTQsNyArNDU0LDcgQEAKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfVU5MT0NLX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJcmMgPSAxOwogCQkJYnJlYWs7CkBAIC00ODAsNyArNDgwLDcgQEAKIAkJCQlhZGRyID0gKHZ1X2xvbmcgKikoaW5mby0+c3RhcnRbaV0pOwogCQkJCSphZGRyID0gSU5URUxfTE9DS0JJVDsJLyogU2VjdG9yIGxvY2sgYml0ICovCiAJCQkJKmFkZHIgPSBJTlRFTF9QUk9URUNUOwkvKiBzZXQgKi8KLQkJCQl1ZGVsYXkoQ0ZHX0ZMQVNIX0xPQ0tfVE9VVCAqIDEwMDApOworCQkJCXVkZWxheShDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVCAqIDEwMDApOwogCQkJfQogCiAJaWYgKGZsYWcpCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODI2MGFkcy9tcGM4MjYwYWRzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODI2MGFkcy9tcGM4MjYwYWRzLmMKaW5kZXggOGFiN2QzNS4uNDlhODhiYiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjBhZHMvbXBjODI2MGFkcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjYwYWRzL21wYzgyNjBhZHMuYwpAQCAtNTgsMzIgKzU4LDMyIEBACiAgKiBhY2NvcmRpbmcgdG8gdGhlIGZpdmUgdmFsdWVzIHBvZHIvcGRpci9wcGFyL3Bzb3IvcGRhdCBmb3IgdGhhdCBlbnRyeQogICovCiAKLSNkZWZpbmUgQ0ZHX0ZDQzEgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAxKQotI2RlZmluZSBDRkdfRkNDMiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCi0jZGVmaW5lIENGR19GQ0MzIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMykKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MxIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MyIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MzIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMykKIAogY29uc3QgaW9wX2NvbmZfdCBpb3BfY29uZl90YWJbNF1bMzJdID0gewogCiAgICAgLyogUG9ydCBBIGNvbmZpZ3VyYXRpb24gKi8KICAgICB7CS8qCSAgICAgIGNvbmYgICAgICBwcGFyIHBzb3IgcGRpciBwb2RyIHBkYXQgKi8KLQkvKiBQQTMxICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIENPTCAgICovCi0JLyogUEEzMCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDUlMgICAqLwotCS8qIFBBMjkgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRVIgKi8KLQkvKiBQQTI4ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VOICovCi0JLyogUEEyNyAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSWF9EViAqLwotCS8qIFBBMjYgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRVIgKi8KKwkvKiBQQTMxICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDT0wgICAqLworCS8qIFBBMzAgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIENSUyAgICovCisJLyogUEEyOSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRVIgKi8KKwkvKiBQQTI4ICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUWF9FTiAqLworCS8qIFBBMjcgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0RWICovCisJLyogUEEyNiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRVIgKi8KIAkvKiBQQTI1ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMjUgKi8KIAkvKiBQQTI0ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMjQgKi8KIAkvKiBQQTIzICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMjMgKi8KIAkvKiBQQTIyICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMjIgKi8KLQkvKiBQQTIxICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFszXSAqLwotCS8qIFBBMjAgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzJdICovCi0JLyogUEExOSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbMV0gKi8KLQkvKiBQQTE4ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFswXSAqLwotCS8qIFBBMTcgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzBdICovCi0JLyogUEExNiAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeERbMV0gKi8KLQkvKiBQQTE1ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsyXSAqLwotCS8qIFBBMTQgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzNdICovCisJLyogUEEyMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzNdICovCisJLyogUEEyMCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzJdICovCisJLyogUEExOSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzFdICovCisJLyogUEExOCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzBdICovCisJLyogUEExNyAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzBdICovCisJLyogUEExNiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzFdICovCisJLyogUEExNSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzJdICovCisJLyogUEExNCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzNdICovCiAJLyogUEExMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTEzICovCiAJLyogUEExMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTEyICovCiAJLyogUEExMSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTExICovCkBAIC0xMDIsMzQgKzEwMiwzNCBAQAogCiAgICAgLyogUG9ydCBCIGNvbmZpZ3VyYXRpb24gKi8KICAgICB7ICAgLyoJICAgICAgY29uZiAgICAgIHBwYXIgcHNvciBwZGlyIHBvZHIgcGRhdCAqLwotCS8qIFBCMzEgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgKi8KLQkvKiBQQjMwICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0RWICovCi0JLyogUEIyOSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FTiAqLwotCS8qIFBCMjggKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgKi8KLQkvKiBQQjI3ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENPTCAqLwotCS8qIFBCMjYgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ1JTICovCi0JLyogUEIyNSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbM10gKi8KLQkvKiBQQjI0ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsyXSAqLwotCS8qIFBCMjMgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzFdICovCi0JLyogUEIyMiAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMF0gKi8KLQkvKiBQQjIxICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFswXSAqLwotCS8qIFBCMjAgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzFdICovCi0JLyogUEIxOSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMl0gKi8KLQkvKiBQQjE4ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFszXSAqLwotCS8qIFBCMTcgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpSWF9ESVYgKi8KLQkvKiBQQjE2ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhfRVJSICovCi0JLyogUEIxNSAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlRYX0VSUiAqLwotCS8qIFBCMTQgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWF9FTiAqLwotCS8qIFBCMTMgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpDT0wgKi8KLQkvKiBQQjEyICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6Q1JTICovCi0JLyogUEIxMSAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlJYRCAqLwotCS8qIFBCMTAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpSWEQgKi8KLQkvKiBQQjkgICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhEICovCi0JLyogUEI4ICAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlJYRCAqLwotCS8qIFBCNyAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWEQgKi8KLQkvKiBQQjYgICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzM6VFhEICovCi0JLyogUEI1ICAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlRYRCAqLwotCS8qIFBCNCAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWEQgKi8KKwkvKiBQQjMxICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FUiAqLworCS8qIFBCMzAgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0RWICovCisJLyogUEIyOSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRU4gKi8KKwkvKiBQQjI4ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9FUiAqLworCS8qIFBCMjcgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENPTCAqLworCS8qIFBCMjYgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAqLworCS8qIFBCMjUgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFszXSAqLworCS8qIFBCMjQgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsyXSAqLworCS8qIFBCMjMgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLworCS8qIFBCMjIgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFswXSAqLworCS8qIFBCMjEgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFswXSAqLworCS8qIFBCMjAgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLworCS8qIFBCMTkgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsyXSAqLworCS8qIFBCMTggKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFszXSAqLworCS8qIFBCMTcgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhfRElWICovCisJLyogUEIxNiAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpSWF9FUlIgKi8KKwkvKiBQQjE1ICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlRYX0VSUiAqLworCS8qIFBCMTQgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzM6VFhfRU4gKi8KKwkvKiBQQjEzICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOkNPTCAqLworCS8qIFBCMTIgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6Q1JTICovCisJLyogUEIxMSAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpSWEQgKi8KKwkvKiBQQjEwICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlJYRCAqLworCS8qIFBCOSAgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzM6UlhEICovCisJLyogUEI4ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMzpSWEQgKi8KKwkvKiBQQjcgICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlRYRCAqLworCS8qIFBCNiAgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzM6VFhEICovCisJLyogUEI1ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMzpUWEQgKi8KKwkvKiBQQjQgICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzOlRYRCAqLwogCS8qIFBCMyAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogcGluIGRvZXNuJ3QgZXhpc3QgKi8KIAkvKiBQQjIgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIHBpbiBkb2Vzbid0IGV4aXN0ICovCiAJLyogUEIxICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBwaW4gZG9lc24ndCBleGlzdCAqLwpAQCAtMTQ3LDMyICsxNDcsMzIgQEAKIAkvKiBQQzI1ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjUgKi8KIAkvKiBQQzI0ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjQgKi8KIAkvKiBQQzIzICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjMgKi8KLQkvKiBQQzIyICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4IENsb2NrIChDTEsxMCkgKi8KLQkvKiBQQzIxICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4IENsb2NrIChDTEsxMSkgKi8KKwkvKiBQQzIyICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeCBDbG9jayAoQ0xLMTApICovCisJLyogUEMyMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnggQ2xvY2sgKENMSzExKSAqLwogCS8qIFBDMjAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMyMCAqLwotI2lmIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTCisjaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTCiAJLyogUEMxOSAqLyB7IDEsICAgICAgICAgIDAsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGRVRITURDICAqLwogCS8qIFBDMTggKi8geyAxLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkVUSE1ESU8gKi8KLQkvKiBQQzE3ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4IENsb2NrIChDTEsxNSkgKi8KLQkvKiBQQzE2ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4IENsb2NrIChDTEsxNikgKi8KKwkvKiBQQzE3ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeCBDbG9jayAoQ0xLMTUpICovCisJLyogUEMxNiAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHggQ2xvY2sgKENMSzE2KSAqLwogI2Vsc2UKLQkvKiBQQzE5ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4IENsb2NrIChDTEsxMykgKi8KLQkvKiBQQzE4ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4IENsb2NrIChDTEsxNCkgKi8KKwkvKiBQQzE5ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeCBDbG9jayAoQ0xLMTMpICovCisJLyogUEMxOCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHggQ2xvY2sgKENMSzE0KSAqLwogCS8qIFBDMTcgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNyAqLwogCS8qIFBDMTYgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNiAqLwotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTICovCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTICovCiAJLyogUEMxNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE1ICovCiAJLyogUEMxNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE0ICovCiAJLyogUEMxMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzEzICovCiAJLyogUEMxMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzEyICovCiAJLyogUEMxMSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzExICovCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKIAkvKiBQQzEwICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTAgKi8KIAkvKiBQQzkgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDOSAgKi8KICNlbHNlCiAJLyogUEMxMCAqLyB7IDEsICAgICAgICAgIDAsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGRVRITURDICAqLwogCS8qIFBDOSAgKi8geyAxLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkVUSE1ESU8gKi8KLSNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUyAqLworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUyAqLwogCS8qIFBDOCAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEM4ICovCiAJLyogUEM3ICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzcgKi8KIAkvKiBQQzYgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDNiAqLwpAQCAtMjIzLDEwICsyMjMsMTAgQEAKIAogdm9pZCByZXNldF9waHkgKHZvaWQpCiB7Ci0JdnVfbG9uZyAqYmNzciA9ICh2dV9sb25nICopQ0ZHX0JDU1I7CisJdnVfbG9uZyAqYmNzciA9ICh2dV9sb25nICopQ09ORklHX1NZU19CQ1NSOwogCiAJLyogUmVzZXQgdGhlIFBIWSAqLwotI2lmIENGR19QSFlfQUREUiA9PSAwCisjaWYgQ09ORklHX1NZU19QSFlfQUREUiA9PSAwCiAJYmNzclsxXSAmPSB+KEZFVEhJRU4xIHwgRkVUSDFfUlNUKTsKIAl1ZGVsYXkoMik7CiAJYmNzclsxXSB8PSAgRkVUSDFfUlNUOwpAQCAtMjM0LDE2ICsyMzQsMTYgQEAKIAliY3NyWzNdICY9IH4oRkVUSElFTjIgfCBGRVRIMl9SU1QpOwogCXVkZWxheSgyKTsKIAliY3NyWzNdIHw9ICBGRVRIMl9SU1Q7Ci0jZW5kaWYgLyogQ0ZHX1BIWV9BRERSID09IDAgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1BIWV9BRERSID09IDAgKi8KIAl1ZGVsYXkoMTAwMCk7CiAjaWZkZWYgQ09ORklHX01JSQotI2lmIENPTkZJR19BRFNUWVBFID49IENGR19QUTJGQURTCisjaWYgQ09ORklHX0FEU1RZUEUgPj0gQ09ORklHX1NZU19QUTJGQURTCiAJLyoKIAkgKiBEbyBub3QgYnlwYXNzIFJ4L1R4IChkZSlzY3JhbWJsZXIgKGZpeCBjb25maWd1cmF0aW9uIGVycm9yKQogCSAqIEVuYWJsZSBhdXRvbmVnb3RpYXRpb24uCiAJICovCi0JYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENGR19QSFlfQUREUiwgMTYsIDB4NjEwKTsKLQliYl9taWlwaHlfd3JpdGUoTlVMTCwgQ0ZHX1BIWV9BRERSLCBQSFlfQk1DUiwKKwliYl9taWlwaHlfd3JpdGUoTlVMTCwgQ09ORklHX1NZU19QSFlfQUREUiwgMTYsIDB4NjEwKTsKKwliYl9taWlwaHlfd3JpdGUoTlVMTCwgQ09ORklHX1NZU19QSFlfQUREUiwgUEhZX0JNQ1IsCiAJCQlQSFlfQk1DUl9BVVRPTiB8IFBIWV9CTUNSX1JTVF9ORUcpOwogI2Vsc2UKIAkvKgpAQCAtMjU0LDE0ICsyNTQsMTQgQEAKIAkgKi8KIAogCS8qIEFkdmVydGlzZSBhbGwgY2FwYWJpbGl0aWVzICovCi0JYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENGR19QSFlfQUREUiwgUEhZX0FOQVIsIDB4MDFFMSk7CisJYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENPTkZJR19TWVNfUEhZX0FERFIsIFBIWV9BTkFSLCAweDAxRTEpOwogCiAJLyogRG8gbm90IGJ5cGFzcyBSeC9UeCAoZGUpc2NyYW1ibGVyICovCi0JYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENGR19QSFlfQUREUiwgUEhZX0RDUiwgIDB4MDAwMCk7CisJYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENPTkZJR19TWVNfUEhZX0FERFIsIFBIWV9EQ1IsICAweDAwMDApOwogCi0JYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENGR19QSFlfQUREUiwgUEhZX0JNQ1IsCisJYmJfbWlpcGh5X3dyaXRlKE5VTEwsIENPTkZJR19TWVNfUEhZX0FERFIsIFBIWV9CTUNSLAogCQkJUEhZX0JNQ1JfQVVUT04gfCBQSFlfQk1DUl9SU1RfTkVHKTsKLSNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUyAqLworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfUFEyRkFEUyAqLwogI2VuZGlmIC8qIENPTkZJR19NSUkgKi8KIH0KIApAQCAtMjc0LDEwICsyNzQsMTAgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2dV9sb25nICpiY3NyID0gKHZ1X2xvbmcgKilDRkdfQkNTUjsKKwl2dV9sb25nICpiY3NyID0gKHZ1X2xvbmcgKilDT05GSUdfU1lTX0JDU1I7CiAKICNpZmRlZiBDT05GSUdfUENJCi0Jdm9sYXRpbGUgcGNpX2ljX3QqIHBjaV9pYyA9IChwY2lfaWNfdCAqKSBDRkdfUENJX0lOVDsKKwl2b2xhdGlsZSBwY2lfaWNfdCogcGNpX2ljID0gKHBjaV9pY190ICopIENPTkZJR19TWVNfUENJX0lOVDsKIAogCS8qIG1hc2sgYWxsbCB0aGUgUENJIGludGVycnVwdHMgKi8KIAlwY2lfaWMtPnBjaV9pbnRfbWFzayB8PSAweGZmZjAwMDAwOwpAQCAtMjg5LDE5ICsyODksMTkgQEAKIAliY3NyWzFdICY9IH5SUzIzMkVOXzI7CiAjZW5kaWYKIAotI2lmIENPTkZJR19BRFNUWVBFICE9IENGR184MjYwQURTIC8qIFBDSSBtb2RlIGNhbiBiZSBzZWxlY3RlZCAqLwotI2lmIENPTkZJR19BRFNUWVBFID09IENGR19QUTJGQURTCisjaWYgQ09ORklHX0FEU1RZUEUgIT0gQ09ORklHX1NZU184MjYwQURTIC8qIFBDSSBtb2RlIGNhbiBiZSBzZWxlY3RlZCAqLworI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfUFEyRkFEUwogCWlmICgoYmNzclszXSAmIEJDU1JfUENJX01PREUpID09IDApIC8qIFBDSSBtb2RlIHNlbGVjdGVkIGJ5IEpQOSAqLwotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR19QUTJGQURTICovCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU19QUTJGQURTICovCiAJewotCQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCQlpbW1hcC0+aW1fY2xrcnN0LmNhcl9zY2NyIHw9IE04MjZYX1NDQ1JfUENJX01PREVfRU47CiAJCWltbWFwLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgPQogCQkJKGltbWFwLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgJiB+U0lVTUNSX0xCUEMxMSkKIAkJCXwgU0lVTUNSX0xCUEMwMTsKIAl9Ci0jZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgIT0gQ0ZHXzgyNjBBRFMgKi8KKyNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSAhPSBDT05GSUdfU1lTXzgyNjBBRFMgKi8KIAogCXJldHVybiAwOwogfQpAQCAtMzEwLDE2ICszMTAsMTYgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotI2lmICAgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHX1BRMkZBRFMKKyNpZiAgIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfUFEyRkFEUwogCWxvbmcgaW50IG1zaXplID0gMzI7Ci0jZWxpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUworI2VsaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTCiAJbG9uZyBpbnQgbXNpemUgPSA2NDsKICNlbHNlCiAJbG9uZyBpbnQgbXNpemUgPSAxNjsKICNlbmRpZgogCi0jaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSB1Y2hhciAqcmFtYWRkciwgYyA9IDB4ZmY7CiAJdWludCBvcjsKQEAgLTMzMiwzMyArMzMyLDMzIEBACiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3BwY19hbHJoID0gMHgwMTI2Nzg5MzsKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfdGVzY3IxICAgPSAweDAwMDA0MDAwOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOwotI2lmZGVmIENGR19MU0RSQU1fQkFTRQorCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CisjaWZkZWYgQ09ORklHX1NZU19MU0RSQU1fQkFTRQogCS8qCiAJICBJbml0aWFsaXNlIGxvY2FsIGJ1cyBTRFJBTSBvbmx5IGlmIHRoZSBwaW5zCiAJICBhcmUgY29uZmlndXJlZCBhcyBsb2NhbCBidXMgcGlucyBhbmQgbm90IGFzIFBDSS4KIAkgIFRoZSBjb25maWd1cmF0aW9uIGlzIGRldGVybWluZWQgYnkgdGhlIEhSQ1cuCiAJKi8KIAlpZiAoKGltbWFwLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgJiBTSVVNQ1JfTEJQQzExKSA9PSBTSVVNQ1JfTEJQQzAwKSB7Ci0JCW1lbWN0bC0+bWVtY19sc3J0ICA9IENGR19MU1JUOwotI2lmIENPTkZJR19BRFNUWVBFID09IENGR19QUTJGQURTIC8qIENTMyAqLworCQltZW1jdGwtPm1lbWNfbHNydCAgPSBDT05GSUdfU1lTX0xTUlQ7CisjaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU19QUTJGQURTIC8qIENTMyAqLwogCQltZW1jdGwtPm1lbWNfb3IzICAgPSAweEZGODAzMjgwOwotCQltZW1jdGwtPm1lbWNfYnIzICAgPSBDRkdfTFNEUkFNX0JBU0UgfCAweDAwMDAxODYxOworCQltZW1jdGwtPm1lbWNfYnIzICAgPSBDT05GSUdfU1lTX0xTRFJBTV9CQVNFIHwgMHgwMDAwMTg2MTsKICNlbHNlCQkJCSAgLyogQ1M0ICovCiAJCW1lbWN0bC0+bWVtY19vcjQgICA9IDB4RkZDMDE0ODA7Ci0JCW1lbWN0bC0+bWVtY19icjQgICA9IENGR19MU0RSQU1fQkFTRSB8IDB4MDAwMDE4NjE7Ci0jZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ0ZHX1BRMkZBRFMgKi8KLQkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ0ZHX0xTRE1SIHwgMHgyODAwMDAwMDsKLQkJcmFtYWRkciA9ICh1Y2hhciAqKSBDRkdfTFNEUkFNX0JBU0U7CisJCW1lbWN0bC0+bWVtY19icjQgICA9IENPTkZJR19TWVNfTFNEUkFNX0JBU0UgfCAweDAwMDAxODYxOworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfUFEyRkFEUyAqLworCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDT05GSUdfU1lTX0xTRE1SIHwgMHgyODAwMDAwMDsKKwkJcmFtYWRkciA9ICh1Y2hhciAqKSBDT05GSUdfU1lTX0xTRFJBTV9CQVNFOwogCQkqcmFtYWRkciA9IGM7Ci0JCW1lbWN0bC0+bWVtY19sc2RtciA9IENGR19MU0RNUiB8IDB4MDgwMDAwMDA7CisJCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDA4MDAwMDAwOwogCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogCQkJKnJhbWFkZHIgPSBjOwotCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDE4MDAwMDAwOworCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDT05GSUdfU1lTX0xTRE1SIHwgMHgxODAwMDAwMDsKIAkJKnJhbWFkZHIgPSBjOwotCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDQwMDAwMDAwOworCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDT05GSUdfU1lTX0xTRE1SIHwgMHg0MDAwMDAwMDsKIAl9Ci0jZW5kaWYgLyogQ0ZHX0xTRFJBTV9CQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MU0RSQU1fQkFTRSAqLwogCiAJLyogSW5pdCA2MHggYnVzIFNEUkFNICovCiAjaWZkZWYgQ09ORklHX1NQRF9FRVBST00KQEAgLTQ5OCwxNCArNDk4LDE0IEBACiAjZW5kaWYgLyogU1BEX0RFQlVHICovCiAJfQogI2Vsc2UgIC8qICFDT05GSUdfU1BEX0VFUFJPTSAqLwotCW9yICAgID0gQ0ZHX09SMjsKLQlwc2RtciA9IENGR19QU0RNUjsKLQlwc3J0ICA9IENGR19QU1JUOworCW9yICAgID0gQ09ORklHX1NZU19PUjI7CisJcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SOworCXBzcnQgID0gQ09ORklHX1NZU19QU1JUOwogI2VuZGlmIC8qIENPTkZJR19TUERfRUVQUk9NICovCiAJbWVtY3RsLT5tZW1jX3BzcnQgPSBwc3J0OwogCW1lbWN0bC0+bWVtY19vcjIgPSBvcjsKLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX1NEUkFNX0JBU0UgfCAweDAwMDAwMDQxOwotCXJhbWFkZHIgPSAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0U7CisJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IDB4MDAwMDAwNDE7CisJcmFtYWRkciA9ICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCAweDI4MDAwMDAwOwkvKiBQcmVjaGFyZ2UgYWxsIGJhbmtzICovCiAJKnJhbWFkZHIgPSBjOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgMHgwODAwMDAwMDsJLyogQ0JSIHJlZnJlc2ggKi8KQEAgLTUxNiw3ICs1MTYsNyBAQAogCSpyYW1hZGRyID0gYzsKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IDB4NDAwMDAwMDA7CS8qIFJlZnJlc2ggZW5hYmxlICovCiAJKnJhbWFkZHIgPSBjOwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXR1cm4gdG90YWwgNjB4IGJ1cyBTRFJBTSBzaXplICovCiAJcmV0dXJuIChtc2l6ZSAqIDEwMjQgKiAxMDI0KTsKQEAgLTUyNCwxMyArNTI0LDEzIEBACiAKIGludCBjaGVja2JvYXJkICh2b2lkKQogewotI2lmICAgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNjBBRFMKKyNpZiAgIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI2MEFEUwogCXB1dHMgKCJCb2FyZDogTW90b3JvbGEgTVBDODI2MEFEU1xuIik7Ci0jZWxpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI2NkFEUworI2VsaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjY2QURTCiAJcHV0cyAoIkJvYXJkOiBNb3Rvcm9sYSBNUEM4MjY2QURTXG4iKTsKLSNlbGlmIENPTkZJR19BRFNUWVBFID09IENGR19QUTJGQURTCisjZWxpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTX1BRMkZBRFMKIAlwdXRzICgiQm9hcmQ6IE1vdG9yb2xhIFBRMkZBRFMtWlVcbiIpOwotI2VsaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKKyNlbGlmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUwogCXB1dHMgKCJCb2FyZDogTW90b3JvbGEgTVBDODI3MkFEU1xuIik7CiAjZWxzZQogCXB1dHMgKCJCb2FyZDogdW5rbm93blxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODI2NmFkcy9mbGFzaC5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjZhZHMvZmxhc2guYwppbmRleCBiNGNkY2Q5Li4wNmRkZTM2IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODI2NmFkcy9mbGFzaC5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjY2YWRzL2ZsYXNoLmMKQEAgLTI5LDExICsyOSwxMSBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNTYsNyArNTYsNyBAQAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewogI2lmbmRlZiBDT05GSUdfTVBDODI2NkFEUwotCXZvbGF0aWxlIGltbWFwX3QJKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QJKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIGlwODYwX2Jjc3JfdAkqYmNzciAgID0gKGlwODYwX2Jjc3JfdCAqKUJDU1JfQkFTRTsKICNlbmRpZgpAQCAtNzEsNyArNzEsNyBAQAogI2VuZGlmCiAKIAotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAkJLyogc2V0IHRoZSBkZWZhdWx0IHNlY3RvciBvZmZzZXQgKi8KQEAgLTg4LDIwICs4OCwyMCBAQAogCiAjaWZuZGVmIENPTkZJR19NUEM4MjY2QURTCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfAorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8CiAJCQkJKG1lbWN0bC0+bWVtY19icjEgJiB+KEJSX0JBX01TSykpOwogI2VuZGlmCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzM2LDcgKzMzNiw3IEBACiAJCQkJCSphZGRyID0gMHhGRkZGRkZGRjsJLyogcmVzZXQgYmFuayAqLwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4RkZGRkZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJcmV0dXJuIDE7CkBAIC00NjEsNyArNDYxLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJZmxhZyAgPSAwOwogCXdoaWxlICgoKGNzciA9ICphZGRyKSAmIDB4ODA4MDgwODApICE9IDB4ODA4MDgwODApIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJZmxhZyA9IDE7CiAJCQlicmVhazsKIAkJfQpAQCAtNDk5LDcgKzQ5OSw3IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUoKmFkZHIgIT0gMHg4MDgwODA4MCl7Ci0JCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXQgb24gY2xlYXJpbmcgQmxvY2sgTG9jayBCaXRcbiIpOwogCQkJKmFkZHIgPSAweEZGRkZGRkZGOwkvKiByZXNldCBiYW5rICovCiAJCQlyZXR1cm4gMTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjY2YWRzL21wYzgyNjZhZHMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MjY2YWRzL21wYzgyNjZhZHMuYwppbmRleCAwOTBhNTM0Li42NmFjYzQxIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODI2NmFkcy9tcGM4MjY2YWRzLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgyNjZhZHMvbXBjODI2NmFkcy5jCkBAIC0yMjQsNyArMjI0LDcgQEAKIAogdm9pZCByZXNldF9waHkodm9pZCkKIHsKLSAgICB2b2xhdGlsZSBiY3NyX3QgICpiY3NyICAgICAgICAgICA9IChiY3NyX3QgKilDRkdfQkNTUjsKKyAgICB2b2xhdGlsZSBiY3NyX3QgICpiY3NyICAgICAgICAgICA9IChiY3NyX3QgKilDT05GSUdfU1lTX0JDU1I7CiAKICAgICAvKiByZXNldCB0aGUgRkVDIHBvcnQgKi8KICAgICBiY3NyLT5iY3NyMSAgICAgICAgICAgICAgICAgICAgJj0gfkZFVEhfUlNUOwpAQCAtMjM0LDggKzIzNCw4IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0gICAgdm9sYXRpbGUgYmNzcl90ICAqYmNzciAgICAgICAgID0gKGJjc3JfdCAqKUNGR19CQ1NSOwotICAgIHZvbGF0aWxlIHBjaV9pY190ICpwY2lfaWMgICAgICA9IChwY2lfaWNfdCAqKSBDRkdfUENJX0lOVDsKKyAgICB2b2xhdGlsZSBiY3NyX3QgICpiY3NyICAgICAgICAgPSAoYmNzcl90ICopQ09ORklHX1NZU19CQ1NSOworICAgIHZvbGF0aWxlIHBjaV9pY190ICpwY2lfaWMgICAgICA9IChwY2lfaWNfdCAqKSBDT05GSUdfU1lTX1BDSV9JTlQ7CiAKICAgICBiY3NyLT5iY3NyMSAgICAgICAgICAgICAgICAgICAgPSB+RkVUSElFTiAmIH5SUzIzMkVOXzEgJiB+UlMyMzJFTl8yOwogCkBAIC0yNTQsMTcgKzI1NCwxNyBAQAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7CiAJLyogQXV0b2luaXQgcGFydCBzdG9sZW4gZnJvbSBib2FyZC9zYWNzbmcvc2Fjc25nLmMgKi8KLSAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgICAgICAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgICAgICAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgICA9ICZpbW1hcC0+aW1fbWVtY3RsOwogICAgIHZvbGF0aWxlIHVjaGFyIGMgPSAweGZmOwotICAgIHZvbGF0aWxlIHVjaGFyICpyYW1hZGRyID0gKHVjaGFyICopKENGR19TRFJBTV9CQVNFICsgMHg4KTsKLSAgICB1aW50ICBwc2RtciA9IENGR19QU0RNUjsKKyAgICB2b2xhdGlsZSB1Y2hhciAqcmFtYWRkciA9ICh1Y2hhciAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDgpOworICAgIHVpbnQgIHBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKICAgICBpbnQgaTsKIAogICAgIHVpbnQgICBwc3J0ID0gMHgyMTsJCQkJCS8qIGZvciBubyBTUEQgKi8KICAgICB1aW50ICAgY2hpcHNlbGVjdHMgPSAxOwkJCQkvKiBmb3Igbm8gU1BEICovCi0gICAgdWludCAgIHNkcmFtX3NpemUgPSBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwkvKiBmb3Igbm8gU1BEICovCi0gICAgdWludCAgIG9yID0gQ0ZHX09SMl9QUkVMSU07CQkJCS8qIGZvciBubyBTUEQgKi8KKyAgICB1aW50ICAgc2RyYW1fc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwkvKiBmb3Igbm8gU1BEICovCisgICAgdWludCAgIG9yID0gQ09ORklHX1NZU19PUjJfUFJFTElNOwkJCQkvKiBmb3Igbm8gU1BEICovCiAgICAgdWludCAgIGRhdGFfd2lkdGg7CiAgICAgdWludCAgIHJvd3M7CiAgICAgdWludCAgIGJhbmtzOwpAQCAtMjg2LDcgKzI4Niw3IEBACiAgICAgLyoKICAgICAgKiBSZWFkIHRoZSBTRFJBTSBTUEQgRUVQUk9NIHZpYSBJMkMuCiAgICAgICovCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAgICAgaTJjX3JlYWQoU0RSQU1fU1BEX0FERFIsIDAsIDEsICZkYXRhLCAxKTsKICAgICBzcGRfc2l6ZSA9IGRhdGE7CkBAIC01MDYsMTMgKzUwNiwxMyBAQAogICAgICAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAgICAgICoKICAgICAgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLSAgICAgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKyAgICAgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAgICAgICovCiAKLSAgICBtZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisgICAgbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKICAgICBtZW1jdGwtPm1lbWNfcHNydCAgPSBwc3J0OwogCi0gICAgbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworICAgIG1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAgICAgbWVtY3RsLT5tZW1jX29yMiA9IG9yOwogCiAgICAgbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtNTM2LDcgKzUzNiw3IEBACiAJewogCXJhbWFkZHIgKz0gc2RyYW1fc2l6ZTsKIAotCQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU0gKyBzZHJhbV9zaXplOworCQltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNICsgc2RyYW1fc2l6ZTsKIAkJbWVtY3RsLT5tZW1jX29yMyA9IG9yOwogCiAJCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzEzZXJkYi9tcGM4MzEzZXJkYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTNlcmRiL21wYzgzMTNlcmRiLmMKaW5kZXggZWJiNzAzZC4uOWZmZDRiZiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTNlcmRiL21wYzgzMTNlcmRiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTNlcmRiL21wYzgzMTNlcmRiLmMKQEAgLTM2LDggKzM2LDggQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotI2lmbmRlZiBDRkdfODMxM0VSREJfQlJPS0VOX1BNQwotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyNpZm5kZWYgQ09ORklHX1NZU184MzEzRVJEQl9CUk9LRU5fUE1DCisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCWlmIChpbS0+cG1jLnBtY2NyMSAmIFBNQ0NSMV9QT1dFUl9PRkYpCiAJCWdkLT5mbGFncyB8PSBHRF9GTEdfU0lMRU5UOwpAQCAtNTUsMjggKzU1LDI4IEBACiAjaWZuZGVmIENPTkZJR19OQU5EX1NQTAogc3RhdGljIHN0cnVjdCBwY2lfcmVnaW9uIHBjaV9yZWdpb25zW10gPSB7CiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX01FTV9CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9NRU1fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSAogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX01NSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTFfTU1JT19QSFlTLAotCQlzaXplOiBDRkdfUENJMV9NTUlPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNCiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTFfSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9JTwogCX0KIH07CiAKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2xrODN4eF90ICpjbGsgPSAodm9sYXRpbGUgY2xrODN4eF90ICopJmltbXItPmNsazsKIAl2b2xhdGlsZSBsYXc4M3h4X3QgKnBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAlzdHJ1Y3QgcGNpX3JlZ2lvbiAqcmVnW10gPSB7IHBjaV9yZWdpb25zIH07CkBAIC04OCwxNCArODgsMTQgQEAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MKIAkgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzBdLmJhciA9IENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzUxMk1COwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEJMQVdBUl9FTiB8IExCTEFXQVJfMU1COwogCiAJd2FybWJvb3QgPSBnZC0+YmQtPmJpX2Jvb3RmbGFncyAmIEJPT1RGTEFHX1dBUk07Ci0jaWZuZGVmIENGR184MzEzRVJEQl9CUk9LRU5fUE1DCisjaWZuZGVmIENPTkZJR19TWVNfODMxM0VSREJfQlJPS0VOX1BNQwogCXdhcm1ib290IHw9IGltbXItPnBtYy5wbWNjcjEgJiBQTUNDUjFfUE9XRVJfT0ZGOwogI2VuZGlmCiAKQEAgLTEzNSwxMyArMTM1LDEzIEBACiB2b2lkIGJvYXJkX2luaXRfZih1bG9uZyBib290ZmxhZykKIHsKIAlib2FyZF9lYXJseV9pbml0X2YoKTsKLQlOUzE2NTUwX2luaXQoKE5TMTY1NTBfdCkoQ0ZHX0lNTVIgKyAweDQ1MDApLAotCSAgICAgICAgICAgICBDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIENPTkZJR19CQVVEUkFURSk7CisJTlMxNjU1MF9pbml0KChOUzE2NTUwX3QpKENPTkZJR19TWVNfSU1NUiArIDB4NDUwMCksCisJICAgICAgICAgICAgIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIENPTkZJR19CQVVEUkFURSk7CiAJcHV0cygiTkFORCBib290Li4uICIpOwogCWluaXRfdGltZWJhc2UoKTsKIAlpbml0ZHJhbSgwKTsKLQlyZWxvY2F0ZV9jb2RlKENGR19OQU5EX1VfQk9PVF9SRUxPQyArIDB4MTAwMDAsIChnZF90ICopZ2QsCi0JICAgICAgICAgICAgICBDRkdfTkFORF9VX0JPT1RfUkVMT0MpOworCXJlbG9jYXRlX2NvZGUoQ09ORklHX1NZU19OQU5EX1VfQk9PVF9SRUxPQyArIDB4MTAwMDAsIChnZF90ICopZ2QsCisJICAgICAgICAgICAgICBDT05GSUdfU1lTX05BTkRfVV9CT09UX1JFTE9DKTsKIH0KIAogdm9pZCBib2FyZF9pbml0X3IoZ2RfdCAqZ2QsIHVsb25nIGRlc3RfYWRkcikKQEAgLTE1NSw4ICsxNTUsOCBAQAogCQlyZXR1cm47CiAKIAlpZiAoYyA9PSAnXG4nKQotCQlOUzE2NTUwX3B1dGMoKE5TMTY1NTBfdCkoQ0ZHX0lNTVIgKyAweDQ1MDApLCAnXHInKTsKKwkJTlMxNjU1MF9wdXRjKChOUzE2NTUwX3QpKENPTkZJR19TWVNfSU1NUiArIDB4NDUwMCksICdccicpOwogCi0JTlMxNjU1MF9wdXRjKChOUzE2NTUwX3QpKENGR19JTU1SICsgMHg0NTAwKSwgYyk7CisJTlMxNjU1MF9wdXRjKChOUzE2NTUwX3QpKENPTkZJR19TWVNfSU1NUiArIDB4NDUwMCksIGMpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMxM2VyZGIvc2RyYW0uYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzEzZXJkYi9zZHJhbS5jCmluZGV4IDEyOGNkNDAuLjk5ZThhNDMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzEzZXJkYi9zZHJhbS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzEzZXJkYi9zZHJhbS5jCkBAIC0zNSw3ICszNSw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0jaWZuZGVmIENGR184MzEzRVJEQl9CUk9LRU5fUE1DCisjaWZuZGVmIENPTkZJR19TWVNfODMxM0VSREJfQlJPS0VOX1BNQwogc3RhdGljIHZvaWQgcmVzdW1lX2Zyb21fc2xlZXAodm9pZCkKIHsKIAl1MzIgbWFnaWMgPSAqKHUzMiAqKTA7CkBAIC01OCwxNSArNTgsMTUgQEAKICAqLwogc3RhdGljIGxvbmcgZml4ZWRfc2RyYW0odm9pZCkKIHsKLQl1MzIgbXNpemUgPSBDRkdfRERSX1NJWkUgKiAxMDI0ICogMTAyNDsKKwl1MzIgbXNpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFICogMTAyNCAqIDEwMjQ7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplX2xvZzIgPSBfX2lsb2cyKG1zaXplKTsKIAotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX1NEUkFNX0JBU0UgJiAweGZmZmZmMDAwOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgKG1zaXplX2xvZzIgLSAxKTsKLQlpbS0+c3lzY29uZi5kZHJjZHIgPSBDRkdfRERSQ0RSX1ZBTFVFOworCWltLT5zeXNjb25mLmRkcmNkciA9IENPTkZJR19TWVNfRERSQ0RSX1ZBTFVFOwogCiAJLyoKIAkgKiBFcnJhdHVtIEREUjMgcmVxdWlyZXMgYSA1MG1zIGRlbGF5IGFmdGVyIGNsZWFyaW5nIEREUkNEUltERFJfY2ZnXSwKQEAgLTc1LDI5ICs3NSwyOSBAQAogCXVkZWxheSg1MDAwMCk7CiAKIAlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSAobXNpemUgLSAxKSA+PiAyNDsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENGR19ERFJfQ09ORklHOworCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ09ORklHX1NZU19ERFJfQ09ORklHOwogCiAJLyogQ3VycmVudGx5IHdlIHVzZSBvbmx5IG9uZSBDUywgc28gZGlzYWJsZSB0aGUgb3RoZXIgYmFuay4gKi8KIAlpbS0+ZGRyLmNzX2NvbmZpZ1sxXSA9IDA7CiAKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ05UTDsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENGR19ERFJfVElNSU5HXzM7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DTlRMOworCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CiAKLSNpZm5kZWYgQ0ZHXzgzMTNFUkRCX0JST0tFTl9QTUMKKyNpZm5kZWYgQ09ORklHX1NZU184MzEzRVJEQl9CUk9LRU5fUE1DCiAJaWYgKGltLT5wbWMucG1jY3IxICYgUE1DQ1IxX1BPV0VSX09GRikKLQkJaW0tPmRkci5zZHJhbV9jZmcgPSBDRkdfU0RSQU1fQ0ZHIHwgU0RSQU1fQ0ZHX0JJOworCQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHIHwgU0RSQU1fQ0ZHX0JJOwogCWVsc2UKICNlbmRpZgotCQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19TRFJBTV9DRkc7CisJCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19TRFJBTV9DRkc7CiAKLQlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDRkdfU0RSQU1fQ0ZHMjsKLQlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JaW0tPmRkci5zZHJhbV9tb2RlMiA9IENGR19ERFJfTU9ERV8yOworCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENPTkZJR19TWVNfU0RSQU1fQ0ZHMjsKKwlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDT05GSUdfU1lTX0REUl9NT0RFXzI7CiAKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAJc3luYygpOwogCiAJLyogZW5hYmxlIEREUiBjb250cm9sbGVyICovCkBAIC0xMDksNyArMTA5LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbGJ1czgzeHhfdCAqbGJjID0gJmltLT5sYnVzOwogCXUzMiBtc2l6ZTsKIApAQCAtMTIwLDExICsxMjAsMTEgQEAKIAltc2l6ZSA9IGZpeGVkX3NkcmFtKCk7CiAKIAkvKiBMb2NhbCBCdXMgc2V0dXAgbGJjciBhbmQgbXJ0cHIgKi8KLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJc3luYygpOwogCi0jaWZuZGVmIENGR184MzEzRVJEQl9CUk9LRU5fUE1DCisjaWZuZGVmIENPTkZJR19TWVNfODMxM0VSREJfQlJPS0VOX1BNQwogCWlmIChpbS0+cG1jLnBtY2NyMSAmIFBNQ0NSMV9QT1dFUl9PRkYpCiAJCXJlc3VtZV9mcm9tX3NsZWVwKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzE1ZXJkYi9tcGM4MzE1ZXJkYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTVlcmRiL21wYzgzMTVlcmRiLmMKaW5kZXggMDMzMDIxOC4uZWE0YjA0ZiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTVlcmRiL21wYzgzMTVlcmRiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTVlcmRiL21wYzgzMTVlcmRiLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJaWYgKGltLT5wbWMucG1jY3IxICYgUE1DQ1IxX1BPV0VSX09GRikKIAkJZ2QtPmZsYWdzIHw9IEdEX0ZMR19TSUxFTlQ7CkBAIC00OCw3ICs0OCw3IEBACiAJdTggdmFsODsKIAlpMmNfc2V0X2J1c19udW0oMCk7CiAKLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19QQ0Y4NTc0QV9BRERSLCAwLCAwLCAmdmFsOCwgMSkgPT0gMCkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfUENGODU3NEFfQUREUiwgMCwgMCwgJnZhbDgsIDEpID09IDApCiAJCXJldHVybiB2YWw4OwogCWVsc2UKIAkJcmV0dXJuIDA7CkBAIC03NiwyOCArNzYsMjggQEAKIAogc3RhdGljIHN0cnVjdCBwY2lfcmVnaW9uIHBjaV9yZWdpb25zW10gPSB7CiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0lfTUVNX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0lfTUVNX1BIWVMsCi0JCXNpemU6IENGR19QQ0lfTUVNX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01FTV9QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSAogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0lfTU1JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJX01NSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSV9NTUlPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJX01NSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNCiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSV9JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJX0lPX1BIWVMsCi0JCXNpemU6IENGR19QQ0lfSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSV9JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9JTwogCX0KIH07CiAKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2xrODN4eF90ICpjbGsgPSAodm9sYXRpbGUgY2xrODN4eF90ICopJmltbXItPmNsazsKIAl2b2xhdGlsZSBsYXc4M3h4X3QgKnBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAlzdHJ1Y3QgcGNpX3JlZ2lvbiAqcmVnW10gPSB7IHBjaV9yZWdpb25zIH07CkBAIC0xMDksMTAgKzEwOSwxMCBAQAogCS8qCiAJICogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cwogCSAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzUxMk1COwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzFNQjsKIAogCXdhcm1ib290ID0gZ2QtPmJkLT5iaV9ib290ZmxhZ3MgJiBCT09URkxBR19XQVJNOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzMTVlcmRiL3NkcmFtLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMxNWVyZGIvc2RyYW0uYwppbmRleCAzNzE0YzJjLi5lYWQ3YjFlIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMxNWVyZGIvc2RyYW0uYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODMxNWVyZGIvc2RyYW0uYwpAQCAtNTYsMTMgKzU2LDEzIEBACiAgKi8KIHN0YXRpYyBsb25nIGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOwotCXUzMiBtc2l6ZSA9IENGR19ERFJfU0laRSAqIDEwMjQgKiAxMDI0OworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJdTMyIG1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRSAqIDEwMjQgKiAxMDI0OwogCXUzMiBtc2l6ZV9sb2cyID0gX19pbG9nMihtc2l6ZSk7CiAKLQlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYmFyID0gQ0ZHX0REUl9TRFJBTV9CQVNFICAmIDB4ZmZmZmYwMDA7CisJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgICYgMHhmZmZmZjAwMDsKIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgKG1zaXplX2xvZzIgLSAxKTsKLQlpbS0+c3lzY29uZi5kZHJjZHIgPSBDRkdfRERSQ0RSX1ZBTFVFOworCWltLT5zeXNjb25mLmRkcmNkciA9IENPTkZJR19TWVNfRERSQ0RSX1ZBTFVFOwogCiAJLyoKIAkgKiBFcnJhdHVtIEREUjMgcmVxdWlyZXMgYSA1MG1zIGRlbGF5IGFmdGVyIGNsZWFyaW5nIEREUkNEUltERFJfY2ZnXSwKQEAgLTcxLDI3ICs3MSwyNyBAQAogCXVkZWxheSg1MDAwMCk7CiAKIAlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSAobXNpemUgLSAxKSA+PiAyNDsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENGR19ERFJfQ1MwX0NPTkZJRzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CiAKIAkvKiBDdXJyZW50bHkgd2UgdXNlIG9ubHkgb25lIENTLCBzbyBkaXNhYmxlIHRoZSBvdGhlciBiYW5rLiAqLwogCWltLT5kZHIuY3NfY29uZmlnWzFdID0gMDsKIAotCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX1NEUkFNX0NMS19DTlRMOwotCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKKwlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEw7CisJaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMzsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKIAogCWlmIChpbS0+cG1jLnBtY2NyMSAmIFBNQ0NSMV9QT1dFUl9PRkYpCi0JCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX0REUl9TRFJBTV9DRkcgfCBTRFJBTV9DRkdfQkk7CisJCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHIHwgU0RSQU1fQ0ZHX0JJOwogCWVsc2UKLQkJaW0tPmRkci5zZHJhbV9jZmcgPSBDRkdfRERSX1NEUkFNX0NGRzsKKwkJaW0tPmRkci5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkc7CiAKLQlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDRkdfRERSX1NEUkFNX0NGRzI7Ci0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDRkdfRERSX01PREUyOworCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzI7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ09ORklHX1NZU19ERFJfTU9ERTI7CiAKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAJc3luYygpOwogCiAJLyogZW5hYmxlIEREUiBjb250cm9sbGVyICovCkBAIC0xMDMsNyArMTAzLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplOwogCiAJaWYgKChpbS0+c3lzY29uZi5pbW1yYmFyICYgSU1NUkJBUl9CQVNFX0FERFIpICE9ICh1MzIpaW0pCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMyM2VyZGIvbXBjODMyM2VyZGIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzIzZXJkYi9tcGM4MzIzZXJkYi5jCmluZGV4IGY1MjIwYWIuLjg2ODBhMTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzIzZXJkYi9tcGM4MzIzZXJkYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzIzZXJkYi9tcGM4MzIzZXJkYi5jCkBAIC03NSwxNCArNzUsMTQgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCiAJaWYgKChpbS0+c3lzY29uZi5pbW1yYmFyICYgSU1NUkJBUl9CQVNFX0FERFIpICE9ICh1MzIpIGltKQogCQlyZXR1cm4gLTE7CiAKIAkvKiBERFIgU0RSQU0gLSBNYWluIFNPRElNTSAqLwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0UgJiBMQVdCQVJfQkFSOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKIAogCW1zaXplID0gZml4ZWRfc2RyYW0oKTsKIApAQCAtOTUsMTIgKzk1LDEyIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCXUzMiBkZHJfc2l6ZTsKIAl1MzIgZGRyX3NpemVfbG9nMjsKIAotCW1zaXplID0gQ0ZHX0REUl9TSVpFOworCW1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRTsKIAlmb3IgKGRkcl9zaXplID0gbXNpemUgPDwgMjAsIGRkcl9zaXplX2xvZzIgPSAwOwogCSAgICAgKGRkcl9zaXplID4gMSk7IGRkcl9zaXplID0gZGRyX3NpemUgPj4gMSwgZGRyX3NpemVfbG9nMisrKSB7CiAJCWlmIChkZHJfc2l6ZSAmIDEpIHsKQEAgLTEwOSwxOCArMTA5LDE4IEBACiAJfQogCWltLT5zeXNjb25mLmRkcmxhd1swXS5hciA9CiAJICAgIExBV0FSX0VOIHwgKChkZHJfc2l6ZV9sb2cyIC0gMSkgJiBMQVdBUl9TSVpFKTsKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ05UTDsKLQlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19ERFJfU0RSQU1fQ0ZHOwotCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENGR19ERFJfU0RSQU1fQ0ZHMjsKLQlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JaW0tPmRkci5zZHJhbV9tb2RlMiA9IENGR19ERFJfTU9ERTI7Ci0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DTlRMOworCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENPTkZJR19TWVNfRERSX1RJTUlOR18wOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHOworCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzI7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ09ORklHX1NZU19ERFJfTU9ERTI7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogCV9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIpOwogCXVkZWxheSgyMDApOwogCkBAIC0xMzcsMjggKzEzNywyOCBAQAogCiBzdGF0aWMgc3RydWN0IHBjaV9yZWdpb24gcGNpX3JlZ2lvbnNbXSA9IHsKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0kxX01FTV9QSFlTLAotCQlzaXplOiBDRkdfUENJMV9NRU1fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENICiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTFfTU1JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9NTUlPX1BIWVMsCi0JCXNpemU6IENGR19QQ0kxX01NSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0KIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMV9JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9JT19QSFlTLAotCQlzaXplOiBDRkdfUENJMV9JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX0lPCiAJfQogfTsKIAogdm9pZCBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjbGs4M3h4X3QgKmNsayA9ICh2b2xhdGlsZSBjbGs4M3h4X3QgKikmaW1tci0+Y2xrOwogCXZvbGF0aWxlIGxhdzgzeHhfdCAqcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXN0cnVjdCBwY2lfcmVnaW9uICpyZWdbXSA9IHsgcGNpX3JlZ2lvbnMgfTsKQEAgLTE2NywxMCArMTY3LDEwIEBACiAJY2xrLT5vY2NyIHw9IDB4ZTAwMDAwMDA7CiAKIAkvKiBDb25maWd1cmUgUENJIExvY2FsIEFjY2VzcyBXaW5kb3dzICovCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl81MTJNQjsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1sxXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzFNQjsKIAogCW1wYzgzeHhfcGNpX2luaXQoMSwgcmVnLCAwKTsKQEAgLTE4Niw3ICsxODYsNyBAQAogfQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19JMkNfTUFDX09GRlNFVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX01BQ19PRkZTRVQpCiBpbnQgbWFjX3JlYWRfZnJvbV9lZXByb20odm9pZCkKIHsKIAl1Y2hhciBidWZbMjhdOwpAQCAtMTk2LDkgKzE5Niw5IEBACiAJdW5zaWduZWQgY2hhciBlbmV0dmFyWzMyXTsKIAogCS8qIFJlYWQgTUFDIGFkZHJlc3NlcyBmcm9tIEVFUFJPTSAqLwotCWlmIChlZXByb21fcmVhZChDRkdfSTJDX0VFUFJPTV9BRERSLCBDRkdfSTJDX01BQ19PRkZTRVQsIGJ1ZiwgMjgpKSB7CisJaWYgKGVlcHJvbV9yZWFkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLCBDT05GSUdfU1lTX0kyQ19NQUNfT0ZGU0VULCBidWYsIDI4KSkgewogCQlwcmludGYoIlxuRUVQUk9NIEAgMHglMDJ4IHJlYWQgRkFJTEVEISEhXG4iLAotCQkgICAgICAgQ0ZHX0kyQ19FRVBST01fQUREUik7CisJCSAgICAgICBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUik7CiAJfSBlbHNlIHsKIAkJaWYgKGNyYzMyKGNyYywgYnVmLCAyNCkgPT0gKih1bnNpZ25lZCBpbnQgKikmYnVmWzI0XSkgewogCQkJcHJpbnRmKCJSZWFkaW5nIE1BQyBmcm9tIEVFUFJPTVxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMyeGVtZHMvbXBjODMyeGVtZHMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzJ4ZW1kcy9tcGM4MzJ4ZW1kcy5jCmluZGV4IDRhZDZlOWQuLmQ0ZDQ0NzkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzJ4ZW1kcy9tcGM4MzJ4ZW1kcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzJ4ZW1kcy9tcGM4MzJ4ZW1kcy5jCkBAIC03Niw3ICs3Niw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKLQl2b2xhdGlsZSB1OCAqYmNzciA9ICh2b2xhdGlsZSB1OCAqKUNGR19CQ1NSOworCXZvbGF0aWxlIHU4ICpiY3NyID0gKHZvbGF0aWxlIHU4ICopQ09ORklHX1NZU19CQ1NSOwogCiAJLyogRW5hYmxlIGZsYXNoIHdyaXRlICovCiAJYmNzcls5XSAmPSB+MHgwODsKQEAgLTk2LDE0ICs5NiwxNCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAKIAlpZiAoKGltLT5zeXNjb25mLmltbXJiYXIgJiBJTU1SQkFSX0JBU0VfQUREUikgIT0gKHUzMikgaW0pCiAJCXJldHVybiAtMTsKIAogCS8qIEREUiBTRFJBTSAtIE1haW4gU09ESU1NICovCi0JaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENGR19ERFJfQkFTRSAmIExBV0JBUl9CQVI7CisJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENPTkZJR19TWVNfRERSX0JBU0UgJiBMQVdCQVJfQkFSOwogCiAJbXNpemUgPSBmaXhlZF9zZHJhbSgpOwogCkBAIC0xMTYsMTIgKzExNiwxMiBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBmaXhlZF9zZHJhbSh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAl1MzIgZGRyX3NpemU7CiAJdTMyIGRkcl9zaXplX2xvZzI7CiAKLQltc2l6ZSA9IENGR19ERFJfU0laRTsKKwltc2l6ZSA9IENPTkZJR19TWVNfRERSX1NJWkU7CiAJZm9yIChkZHJfc2l6ZSA9IG1zaXplIDw8IDIwLCBkZHJfc2l6ZV9sb2cyID0gMDsKIAkgICAgIChkZHJfc2l6ZSA+IDEpOyBkZHJfc2l6ZSA9IGRkcl9zaXplID4+IDEsIGRkcl9zaXplX2xvZzIrKykgewogCQlpZiAoZGRyX3NpemUgJiAxKSB7CkBAIC0xMzAsMjEgKzEzMCwyMSBAQAogCX0KIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPQogCSAgICBMQVdBUl9FTiB8ICgoZGRyX3NpemVfbG9nMiAtIDEpICYgTEFXQVJfU0laRSk7Ci0jaWYgKENGR19ERFJfU0laRSAhPSAxMjgpCisjaWYgKENPTkZJR19TWVNfRERSX1NJWkUgIT0gMTI4KQogI3dhcm5pbmcgQ3VycmVubHkgYW55IGRkciBzaXplIG90aGVyIHRoYW4gMTI4IGlzIG5vdCBzdXBwb3J0ZWQKICNlbmRpZgotCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DTlRMOwotCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JaW0tPmRkci5jc19jb25maWdbMF0gPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX0REUl9TRFJBTV9DRkc7Ci0JaW0tPmRkci5zZHJhbV9jZmcyID0gQ0ZHX0REUl9TRFJBTV9DRkcyOwotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ0ZHX0REUl9NT0RFMjsKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NOVEw7CisJaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJaW0tPmRkci5jc19jb25maWdbMF0gPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJaW0tPmRkci5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkc7CisJaW0tPmRkci5zZHJhbV9jZmcyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMjsKKwlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDT05GSUdfU1lTX0REUl9NT0RFMjsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAJdWRlbGF5KDIwMCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzJ4ZW1kcy9wY2kuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzJ4ZW1kcy9wY2kuYwppbmRleCBiMDMwNDIyLi4yYTQ4ZGQyIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODMyeGVtZHMvcGNpLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzMnhlbWRzL3BjaS5jCkBAIC02Nyw3ICs2Nyw3IEBACiAJdm9sYXRpbGUgcGNpY3RybDgzeHhfdCAqcGNpX2N0cmw7CiAJdm9sYXRpbGUgcGNpY29uZjgzeHhfdCAqcGNpX2NvbmY7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJcGNpX3BvdCA9IGltbXItPmlvcy5wb3Q7CiAJcGNpX2N0cmwgPSBpbW1yLT5wY2lfY3RybDsKQEAgLTkzLDcgKzkzLDcgQEAKIAlob3NlWzBdLmZpcnN0X2J1c25vID0gMDsKIAlob3NlWzBdLmxhc3RfYnVzbm8gPSAweGZmOwogCXBjaV9zZXR1cF9pbmRpcmVjdCgmaG9zZVswXSwKLQkJCSAgIChDRkdfSU1NUiArIDB4ODMwMCksIChDRkdfSU1NUiArIDB4ODMwNCkpOworCQkJICAgKENPTkZJR19TWVNfSU1NUiArIDB4ODMwMCksIChDT05GSUdfU1lTX0lNTVIgKyAweDgzMDQpKTsKIAlyZWcxNiA9IDB4ZmY7CiAKIAlwY2lfaG9zZV9yZWFkX2NvbmZpZ193b3JkKCZob3NlWzBdLCBQQ0lfQkRGKDAsIDAsIDApLApAQCAtMTM0LDcgKzEzNCw3IEBACiAJdTMyIHZhbDMyOwogCXUzMiBkZXY7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAljbGsgPSAoY2xrODN4eF90ICopICYgaW1tci0+Y2xrOwogCXBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAlwY2lfcG90ID0gaW1tci0+aW9zLnBvdDsKQEAgLTE2MSwxMCArMTYxLDEwIEBACiAJLyoKIAkgKiBDb25maWd1cmUgUENJIExvY2FsIEFjY2VzcyBXaW5kb3dzCiAJICovCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzBdLmJhciA9IENPTkZJR19TWVNfUENJX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzBdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzUxMk07CiAKLQlwY2lfbGF3WzFdLmJhciA9IENGR19QQ0lfSU9fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1sxXS5iYXIgPSBDT05GSUdfU1lTX1BDSV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzFNOwogCiAJLyoKQEAgLTE3MiwyNiArMTcyLDI2IEBACiAJICovCiAKIAkvKiBQQ0kgbWVtIHNwYWNlIC0gcHJlZmV0Y2ggKi8KLQlwY2lfcG90WzBdLnBvdGFyID0gKENGR19QQ0lfTUVNX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzBdLnBvYmFyID0gKENGR19QQ0lfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzBdLnBvdGFyID0gKENPTkZJR19TWVNfUENJX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFswXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbMF0ucG9jbXIgPQogCSAgICBQT0NNUl9FTiB8IFBPQ01SX1NFIHwgKFBPQ01SX0NNXzI1Nk0gJiBQT0NNUl9DTV9NQVNLKTsKIAogCS8qIFBDSSBtbWlvIC0gbm9uLXByZWZldGNoIG1lbSBzcGFjZSAqLwotCXBjaV9wb3RbMV0ucG90YXIgPSAoQ0ZHX1BDSV9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzFdLnBvYmFyID0gKENGR19QQ0lfTU1JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFsxXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzFdLnBvYmFyID0gKENPTkZJR19TWVNfUENJX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbMV0ucG9jbXIgPSBQT0NNUl9FTiB8IChQT0NNUl9DTV8yNTZNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKiBQQ0kgSU8gc3BhY2UgKi8KLQlwY2lfcG90WzJdLnBvdGFyID0gKENGR19QQ0lfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMl0ucG9iYXIgPSAoQ0ZHX1BDSV9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFsyXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSV9JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFsyXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSV9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFsyXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfSU8gfCAoUE9DTVJfQ01fMU0gJiBQT0NNUl9DTV9NQVNLKTsKIAogCS8qCiAJICogQ29uZmlndXJlIFBDSSBJbmJvdW5kIFRyYW5zbGF0aW9uIFdpbmRvd3MKIAkgKi8KLQlwY2lfY3RybFswXS5waXRhcjEgPSAoQ0ZHX1BDSV9TTFZfTUVNX0xPQ0FMID4+IDEyKSAmIFBJVEFSX1RBX01BU0s7Ci0JcGNpX2N0cmxbMF0ucGliYXIxID0gKENGR19QQ0lfU0xWX01FTV9CVVMgPj4gMTIpICYgUElCQVJfTUFTSzsKKwlwY2lfY3RybFswXS5waXRhcjEgPSAoQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTCA+PiAxMikgJiBQSVRBUl9UQV9NQVNLOworCXBjaV9jdHJsWzBdLnBpYmFyMSA9IChDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUyA+PiAxMikgJiBQSUJBUl9NQVNLOwogCXBjaV9jdHJsWzBdLnBpZWJhcjEgPSAweDA7CiAJcGNpX2N0cmxbMF0ucGl3YXIxID0KIAkgICAgUElXQVJfRU4gfCBQSVdBUl9QRiB8IFBJV0FSX1JUVF9TTk9PUCB8IFBJV0FSX1dUVF9TTk9PUCB8CkBAIC0yMDksMzEgKzIwOSwzMSBAQAogCiAJLyogUENJIG1lbW9yeSBwcmVmZXRjaCBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2VbMF0ucmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJX01FTV9CQVNFLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0lfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSCk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSCk7CiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZVswXS5yZWdpb25zICsgMSwKLQkJICAgICAgIENGR19QQ0lfTU1JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSV9NTUlPX1BIWVMsIENGR19QQ0lfTU1JT19TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMsIENPTkZJR19TWVNfUENJX01NSU9fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIElPIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZVswXS5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0lfSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0lfSU9fUEhZUywgQ0ZHX1BDSV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJX0lPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19QSFlTLCBDT05GSUdfU1lTX1BDSV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCS8qIFN5c3RlbSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlWzBdLnJlZ2lvbnMgKyAzLAotCQkgICAgICAgQ0ZHX1BDSV9TTFZfTUVNX0xPQ0FMLAotCQkgICAgICAgQ0ZHX1BDSV9TTFZfTUVNX0JVUywKLQkJICAgICAgIENGR19QQ0lfU0xWX01FTV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTCwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAlob3NlWzBdLnJlZ2lvbl9jb3VudCA9IDQ7CiAKIAlwY2lfc2V0dXBfaW5kaXJlY3QoJmhvc2VbMF0sCi0JCQkgICAoQ0ZHX0lNTVIgKyAweDgzMDApLCAoQ0ZHX0lNTVIgKyAweDgzMDQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIgKyAweDgzMDApLCAoQ09ORklHX1NZU19JTU1SICsgMHg4MzA0KSk7CiAKIAlwY2lfcmVnaXN0ZXJfaG9zZShob3NlKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDllbWRzL21wYzgzNDllbWRzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWVtZHMvbXBjODM0OWVtZHMuYwppbmRleCBlZjk0N2ZlLi5mYTQ0MzYwIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWVtZHMvbXBjODM0OWVtZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWVtZHMvbXBjODM0OWVtZHMuYwpAQCAtNDQsMTIgKzQ0LDEyIEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdTgqIGJjc3IgPSAodm9sYXRpbGUgdTgqKUNGR19CQ1NSOworCXZvbGF0aWxlIHU4KiBiY3NyID0gKHZvbGF0aWxlIHU4KilDT05GSUdfU1lTX0JDU1I7CiAKIAkvKiBFbmFibGUgZmxhc2ggd3JpdGUgKi8KIAliY3NyWzFdICY9IH4weDAxOwogCi0jaWZkZWYgQ0ZHX1VTRV9NUEM4MzRYU1lTX1VTQl9QSFkKKyNpZmRlZiBDT05GSUdfU1lTX1VTRV9NUEM4MzRYU1lTX1VTQl9QSFkKIAkvKiBVc2UgVVNCIFBIWSBvbiBTWVMgYm9hcmQgKi8KIAliY3NyWzVdIHw9IDB4MDI7CiAjZW5kaWYKQEAgLTYxLDE0ICs2MSwxNCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAogCWlmICgoaW0tPnN5c2NvbmYuaW1tcmJhciAmIElNTVJCQVJfQkFTRV9BRERSKSAhPSAodTMyKWltKQogCQlyZXR1cm4gLTE7CiAKIAkvKiBERFIgU0RSQU0gLSBNYWluIFNPRElNTSAqLwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0UgJiBMQVdCQVJfQkFSOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKICNpZiBkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQogCW1zaXplID0gc3BkX3NkcmFtKCk7CiAjZWxzZQpAQCAtOTYsMTIgKzk2LDEyIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAl1MzIgZGRyX3NpemU7CiAJdTMyIGRkcl9zaXplX2xvZzI7CiAKLQltc2l6ZSA9IENGR19ERFJfU0laRTsKKwltc2l6ZSA9IENPTkZJR19TWVNfRERSX1NJWkU7CiAJZm9yIChkZHJfc2l6ZSA9IG1zaXplIDw8IDIwLCBkZHJfc2l6ZV9sb2cyID0gMDsKIAkgICAgIChkZHJfc2l6ZSA+IDEpOwogCSAgICAgZGRyX3NpemUgPSBkZHJfc2l6ZT4+MSwgZGRyX3NpemVfbG9nMisrKSB7CkBAIC0xMDksMzYgKzEwOSwzNiBAQAogCQkJcmV0dXJuIC0xOwogCQl9CiAJfQotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX1NEUkFNX0JBU0UgJiAweGZmZmZmMDAwOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPSBMQVdBUl9FTiB8ICgoZGRyX3NpemVfbG9nMiAtIDEpICYgTEFXQVJfU0laRSk7CiAKLSNpZiAoQ0ZHX0REUl9TSVpFICE9IDI1NikKKyNpZiAoQ09ORklHX1NZU19ERFJfU0laRSAhPSAyNTYpCiAjd2FybmluZyBDdXJyZW5seSBhbnkgZGRyIHNpemUgb3RoZXIgdGhhbiAyNTYgaXMgbm90IHN1cHBvcnRlZAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0REUl9JSQotCWltLT5kZHIuY3NibmRzWzJdLmNzYm5kcyA9IENGR19ERFJfQ1MyX0JORFM7Ci0JaW0tPmRkci5jc19jb25maWdbMl0gPSBDRkdfRERSX0NTMl9DT05GSUc7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX0REUl9TRFJBTV9DRkc7Ci0JaW0tPmRkci5zZHJhbV9jZmcyID0gQ0ZHX0REUl9TRFJBTV9DRkcyOwotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ0ZHX0REUl9NT0RFMjsKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ05UTDsKKwlpbS0+ZGRyLmNzYm5kc1syXS5jc2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzJfQk5EUzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1syXSA9IENPTkZJR19TWVNfRERSX0NTMl9DT05GSUc7CisJaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMzsKKwlpbS0+ZGRyLnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzsKKwlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJaW0tPmRkci5zZHJhbV9tb2RlMiA9IENPTkZJR19TWVNfRERSX01PREUyOworCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NOVEw7CiAjZWxzZQogCWltLT5kZHIuY3NibmRzWzJdLmNzYm5kcyA9IDB4MDAwMDAwMGY7Ci0JaW0tPmRkci5jc19jb25maWdbMl0gPSBDRkdfRERSX0NPTkZJRzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1syXSA9IENPTkZJR19TWVNfRERSX0NPTkZJRzsKIAogCS8qIGN1cnJlbnRseSB3ZSB1c2Ugb25seSBvbmUgQ1MsIHNvIGRpc2FibGUgdGhlIG90aGVyIGJhbmtzICovCiAJaW0tPmRkci5jc19jb25maWdbMF0gPSAwOwogCWltLT5kZHIuY3NfY29uZmlnWzFdID0gMDsKIAlpbS0+ZGRyLmNzX2NvbmZpZ1szXSA9IDA7CiAKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKIAogCWltLT5kZHIuc2RyYW1fY2ZnID0KIAkJU0RSQU1fQ0ZHX1NSRU4KQEAgLTE1MCw5ICsxNTAsOSBAQAogCS8qIGZvciAzMi1iaXQgbW9kZSBidXJzdCBsZW5ndGggaXMgOCAqLwogCWltLT5kZHIuc2RyYW1fY2ZnIHw9IChTRFJBTV9DRkdfMzJfQkUgfCBTRFJBTV9DRkdfOF9CRSk7CiAjZW5kaWYKLQlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKIAotCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOworCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKICNlbmRpZgogCXVkZWxheSgyMDApOwogCkBAIC0xNjAsNyArMTYwLDcgQEAKIAlpbS0+ZGRyLnNkcmFtX2NmZyB8PSBTRFJBTV9DRkdfTUVNX0VOOwogCXJldHVybiBtc2l6ZTsKIH0KLSNlbmRpZi8qIUNGR19TUERfRUVQUk9NKi8KKyNlbmRpZi8qIUNPTkZJR19TWVNfU1BEX0VFUFJPTSovCiAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCkBAIC0xODEsNDEgKzE4MSw0MSBAQAogLyoKICAqIGlmIE1QQzgzNDlFTURTIGlzIHNvbGRlcmVkIHdpdGggU0RSQU0KICAqLwotI2lmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pICBcCi0JJiYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkgXAotCSYmIGRlZmluZWQoQ0ZHX0xCTEFXQkFSMl9QUkVMSU0pIFwKLQkmJiBkZWZpbmVkKENGR19MQkxBV0FSMl9QUkVMSU0pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMl9QUkVMSU0pICBcCisJJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMl9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTSkgXAorCSYmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0FSMl9QUkVMSU0pCiAvKgogICogSW5pdGlhbGl6ZSBTRFJBTSBtZW1vcnkgb24gdGhlIExvY2FsIEJ1cy4KICAqLwogCiB2b2lkIHNkcmFtX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsYnVzODN4eF90ICpsYmM9ICZpbW1hcC0+bGJ1czsKLQl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKilDRkdfTEJDX1NEUkFNX0JBU0U7CisJdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRTsKIAogCS8qCiAJICogU2V0dXAgU0RSQU0gQmFzZSBhbmQgT3B0aW9uIFJlZ2lzdGVycywgYWxyZWFkeSBkb25lIGluIGNwdV9pbml0LmMKIAkgKi8KIAogCS8qIHNldHVwIG10cnB0LCBsc3J0IGFuZCBsYmNyIGZvciBMQiBidXMgKi8KLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7Ci0JbGJjLT5sc3J0ID0gQ0ZHX0xCQ19MU1JUOworCWxiYy0+bGJjciA9IENPTkZJR19TWVNfTEJDX0xCQ1I7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOworCWxiYy0+bHNydCA9IENPTkZJR19TWVNfTEJDX0xTUlQ7CiAJYXNtKCJzeW5jIik7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSB0aGUgU0RSQU0gY29udHJvbGxlciBNYWNoaW5lIE1vZGUgUmVnaXN0ZXIuCiAJICovCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNTsgLyogMHg0MDYzNjczMzsgbm9ybWFsIG9wZXJhdGlvbiAqLworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl81OyAvKiAweDQwNjM2NzMzOyBub3JtYWwgb3BlcmF0aW9uICovCiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8xOyAvKiAweDY4NjM2NzMzOyBwcmVjaGFyZ2UgYWxsIHRoZSBiYW5rcyAqLworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xOyAvKiAweDY4NjM2NzMzOyBwcmVjaGFyZ2UgYWxsIHRoZSBiYW5rcyAqLwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzI7IC8qIDB4NDg2MzY3MzM7IGF1dG8gcmVmcmVzaCAqLworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yOyAvKiAweDQ4NjM2NzMzOyBhdXRvIHJlZnJlc2ggKi8KIAlhc20oInN5bmMiKTsKIAkvKjEgdGltZXMqLwogCSpzZHJhbV9hZGRyID0gMHhmZjsKQEAgLTI0MywxMiArMjQzLDEyIEBACiAJdWRlbGF5KDEwMCk7CiAKIAkvKiAweDU4NjM2NzMzOyBtb2RlIHJlZ2lzdGVyIHdyaXRlIG9wZXJhdGlvbiAqLwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzQ7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzQ7CiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXVkZWxheSgxMDApOwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNTsgLyogMHg0MDYzNjczMzsgbm9ybWFsIG9wZXJhdGlvbiAqLworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl81OyAvKiAweDQwNjM2NzMzOyBub3JtYWwgb3BlcmF0aW9uICovCiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXVkZWxheSgxMDApOwpAQCAtMjczLDE0ICsyNzMsMTQgQEAKIAogdm9pZCBzcGlfY3NfYWN0aXZhdGUoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUpCiB7Ci0Jdm9sYXRpbGUgZ3BpbzgzeHhfdCAqaW9wZCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmdwaW9bMF07CisJdm9sYXRpbGUgZ3BpbzgzeHhfdCAqaW9wZCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5ncGlvWzBdOwogCiAJaW9wZC0+ZGF0ICY9IH5TUElfQ1NfTUFTSzsKIH0KIAogdm9pZCBzcGlfY3NfZGVhY3RpdmF0ZShzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSkKIHsKLQl2b2xhdGlsZSBncGlvODN4eF90ICppb3BkID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+Z3Bpb1swXTsKKwl2b2xhdGlsZSBncGlvODN4eF90ICppb3BkID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmdwaW9bMF07CiAKIAlpb3BkLT5kYXQgfD0gIFNQSV9DU19NQVNLOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDllbWRzL3BjaS5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDllbWRzL3BjaS5jCmluZGV4IDljMTllMzAuLmFkN2JmNWQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5ZW1kcy9wY2kuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWVtZHMvcGNpLmMKQEAgLTMzLDIxICszMywyMSBAQAogCiBzdGF0aWMgc3RydWN0IHBjaV9yZWdpb24gcGNpMV9yZWdpb25zW10gPSB7CiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX01FTV9CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9NRU1fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSAogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0kxX0lPX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0kxX0lPX1BIWVMsCi0JCXNpemU6IENGR19QQ0kxX0lPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fSU8KIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMV9NTUlPX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0kxX01NSU9fUEhZUywKLQkJc2l6ZTogQ0ZHX1BDSTFfTU1JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMsCisJCXNpemU6IENPTkZJR19TWVNfUENJMV9NTUlPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTQogCX0sCiB9OwpAQCAtNTUsMjEgKzU1LDIxIEBACiAjaWZkZWYgQ09ORklHX01QQzgzWFhfUENJMgogc3RhdGljIHN0cnVjdCBwY2lfcmVnaW9uIHBjaTJfcmVnaW9uc1tdID0gewogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMl9NRU1fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSTJfTUVNX1BIWVMsCi0JCXNpemU6IENGR19QQ0kyX01FTV9TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gKIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMl9JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMl9JT19QSFlTLAotCQlzaXplOiBDRkdfUENJMl9JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMl9JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX0lPCiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTJfTU1JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMl9NTUlPX1BIWVMsCi0JCXNpemU6IENGR19QQ0kyX01NSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTJfTU1JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTJfTU1JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0KIAl9LAogfTsKQEAgLTEzNSw3ICsxMzUsNyBAQAogCiB2b2lkIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNsazgzeHhfdCAqY2xrID0gKHZvbGF0aWxlIGNsazgzeHhfdCAqKSZpbW1yLT5jbGs7CiAJdm9sYXRpbGUgbGF3ODN4eF90ICpwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAjaWZuZGVmIENPTkZJR19NUEM4M1hYX1BDSTIKQEAgLTE1MiwxMCArMTUyLDEwIEBACiAJdWRlbGF5KDIwMDApOwogCiAJLyogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cyAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzBdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzFHOwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzRNOwogCiAJdWRlbGF5KDIwMDApOwpAQCAtMTcwLDcgKzE3MCw3IEBACiAjZWxzZQogdm9pZCBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjbGs4M3h4X3QgKmNsayA9ICh2b2xhdGlsZSBjbGs4M3h4X3QgKikmaW1tci0+Y2xrOwogCXZvbGF0aWxlIGxhdzgzeHhfdCAqcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXZvbGF0aWxlIHBjaWN0cmw4M3h4X3QgKnBjaV9jdHJsID0gJmltbXItPnBjaV9jdHJsWzBdOwpAQCAtMTgxLDEwICsxODEsMTAgQEAKIAl1ZGVsYXkoMjAwMCk7CiAKIAkvKiBDb25maWd1cmUgUENJIExvY2FsIEFjY2VzcyBXaW5kb3dzICovCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfMUc7CiAKLQlwY2lfbGF3WzFdLmJhciA9IENGR19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfNE07CiAKIAl1ZGVsYXkoMjAwMCk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWl0eC9tcGM4MzQ5aXR4LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWl0eC9tcGM4MzQ5aXR4LmMKaW5kZXggMGEyMGUyYi4uMzE2OTUzNiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNDlpdHgvbXBjODM0OWl0eC5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5aXR4L21wYzgzNDlpdHguYwpAQCAtNDIsMTEgKzQyLDExIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgZGRyX3NpemU7CQkvKiBUaGUgc2l6ZSBvZiBSQU0sIGluIGJ5dGVzICovCiAJdTMyIGRkcl9zaXplX2xvZzIgPSAwOwogCi0JZm9yIChkZHJfc2l6ZSA9IENGR19ERFJfU0laRSAqIDB4MTAwMDAwOyBkZHJfc2l6ZSA+IDE7IGRkcl9zaXplID4+PSAxKSB7CisJZm9yIChkZHJfc2l6ZSA9IENPTkZJR19TWVNfRERSX1NJWkUgKiAweDEwMDAwMDsgZGRyX3NpemUgPiAxOyBkZHJfc2l6ZSA+Pj0gMSkgewogCQlpZiAoZGRyX3NpemUgJiAxKSB7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTU1LDExICs1NSwxMSBAQAogCiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0KIAkgICAgTEFXQVJfRU4gfCAoKGRkcl9zaXplX2xvZzIgLSAxKSAmIExBV0FSX1NJWkUpOwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX1NEUkFNX0JBU0UgJiAweGZmZmZmMDAwOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAogCS8qIE9ubHkgb25lIENTMCBmb3IgRERSICovCiAJaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gMHgwMDAwMDAwZjsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENGR19ERFJfQ09ORklHOworCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ09ORklHX1NZU19ERFJfQ09ORklHOwogCiAJZGVidWcoImNzMF9ibmRzID0gMHglMDh4XG4iLCBpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMpOwogCWRlYnVnKCJjczBfY29uZmlnID0gMHglMDh4XG4iLCBpbS0+ZGRyLmNzX2NvbmZpZ1swXSk7CkBAIC02NywxNSArNjcsMTUgQEAKIAlkZWJ1ZygiRERSOmJhcj0weCUwOHhcbiIsIGltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIpOwogCWRlYnVnKCJERFI6YXI9MHglMDh4XG4iLCBpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIpOwogCi0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsvKiBXYXMgIjIgPDwgVElNSU5HX0NGRzJfV1JfREFUQV9ERUxBWV9TSElGVCIgKi8KKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7LyogV2FzICIyIDw8IFRJTUlOR19DRkcyX1dSX0RBVEFfREVMQVlfU0hJRlQiICovCiAJaW0tPmRkci5zZHJhbV9jZmcgPSBTRFJBTV9DRkdfU1JFTiB8IFNEUkFNX0NGR19TRFJBTV9UWVBFX0REUjE7CiAJaW0tPmRkci5zZHJhbV9tb2RlID0KIAkgICAgKDB4MDAwMCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCkgfCAoMHgwMDMyIDw8IFNEUkFNX01PREVfU0RfU0hJRlQpOwogCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPQogCSAgICAoMHgwNDEwIDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCkgfCAoMHgwMTAwIDw8CiAJCQkJCQkgICAgICAgU0RSQU1fSU5URVJWQUxfQlNUT1BSRV9TSElGVCk7Ci0JaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfU0RSQU1fQ0xLX0NOVEw7CisJaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMOwogCiAJdWRlbGF5KDIwMCk7CiAKQEAgLTg3LDcgKzg3LDcgQEAKIAlkZWJ1ZygiRERSOnNkcmFtX2ludGVydmFsPTB4JTA4eFxuIiwgaW0tPmRkci5zZHJhbV9pbnRlcnZhbCk7CiAJZGVidWcoIkREUjpzZHJhbV9jZmc9MHglMDh4XG4iLCBpbS0+ZGRyLnNkcmFtX2NmZyk7CiAKLQlyZXR1cm4gQ0ZHX0REUl9TSVpFOworCXJldHVybiBDT05GSUdfU1lTX0REUl9TSVpFOwogfQogI2VuZGlmCiAKQEAgLTEzMCw3ICsxMzAsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAjaWZkZWYgQ09ORklHX0REUl9FQ0MKIAl2b2xhdGlsZSBkZHI4M3h4X3QgKmRkciA9ICZpbS0+ZGRyOwpAQCAtMTQwLDcgKzE0MCw3IEBACiAJCXJldHVybiAtMTsKIAogCS8qIEREUiBTRFJBTSAtIE1haW4gU09ESU1NICovCi0JaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENGR19ERFJfQkFTRSAmIExBV0JBUl9CQVI7CisJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENPTkZJR19TWVNfRERSX0JBU0UgJiBMQVdCQVJfQkFSOwogI2lmZGVmIENPTkZJR19TUERfRUVQUk9NCiAJbXNpemUgPSBzcGRfc2RyYW0oKTsKICNlbHNlCkBAIC0xOTYsNyArMTk2LDcgQEAKIAkgICBkb24ndCBlbmFibGUgY29tcGFjdCBmbGFzaCBmb3IgVS1Cb290LgogCSAqLwogCi0JdnNjNzM4NV9jcHVjdHJsID0gKHZvbGF0aWxlIHUzMiAqKShDRkdfVlNDNzM4NV9CQVNFICsgMHgxYzBjMCk7CisJdnNjNzM4NV9jcHVjdHJsID0gKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX1ZTQzczODVfQkFTRSArIDB4MWMwYzApOwogCSp2c2M3Mzg1X2NwdWN0cmwgfD0gMHgwYzsKICNlbmRpZgogCkBAIC0yMjAsMTEgKzIyMCwxMSBAQAogCQkweGZmZmZmYzAwLCAweGZmZmZmYzAwLCAweGZmZmZmYzAwLCAweGZmZmZmYzAxLAogCQkweGZmZmZmYzAwLCAweGZmZmZmYzAwLCAweGZmZmZmYzAwLCAweGZmZmZmYzAxCiAJfTsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGxidXM4M3h4X3QgKmxidXMgPSAmaW1tYXAtPmxidXM7CiAKLQlsYnVzLT5iYW5rWzNdLmJyID0gQ0ZHX0JSM19QUkVMSU07Ci0JbGJ1cy0+YmFua1szXS5vciA9IENGR19PUjNfUFJFTElNOworCWxidXMtPmJhbmtbM10uYnIgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CisJbGJ1cy0+YmFua1szXS5vciA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKIAogCS8qIFByb2dyYW0gdGhlIE1BTVIuIFJGRU49MCwgT1A9MDAsIFVXUEw9MSwgQU09MDAwLCBEUz0wMSwgRzBDTD0wMDAsCiAJICAgR1BMND0wLCBSTEY9MDAwMSwgV0xGPTAwMDEsIFRMRj0wMDAxLCBNQUQ9MDAwMDAwCkBAIC0yNjUsMjYgKzI2NSwyNiBAQAogCXVuc2lnbmVkIGludCBvcmlnX2J1cyA9IGkyY19nZXRfYnVzX251bSgpOwogCXU4IGkyY19kYXRhOwogCi0jaWZkZWYgQ0ZHX0kyQ19SVENfQUREUgorI2lmZGVmIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCiAJdTggZHMxMzM5X2RhdGFbMTddOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSCisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIKIAlzdGF0aWMgdTggZWVwcm9tX2RhdGFbXSA9CS8qIEhSQ1cgZGF0YSAqLwogCXsKIAkJMHhBQSwgMHg1NSwgMHhBQSwgICAgICAgLyogUHJlYW1ibGUgKi8KIAkJMHg3QywJCSAgICAgICAgLyogQUNTPTAsIEJZVEVfRU49MTExMSwgQ09OVD0xICovCiAJCTB4MDIsIDB4NDAsCSAgICAgICAgLyogUkNXTCBBRERSPTB4MF8wOTAwICovCi0JCShDRkdfSFJDV19MT1cgPj4gMjQpICYgMHhGRiwKLQkJKENGR19IUkNXX0xPVyA+PiAxNikgJiAweEZGLAotCQkoQ0ZHX0hSQ1dfTE9XID4+IDgpICYgMHhGRiwKLQkJQ0ZHX0hSQ1dfTE9XICYgMHhGRiwKKwkJKENPTkZJR19TWVNfSFJDV19MT1cgPj4gMjQpICYgMHhGRiwKKwkJKENPTkZJR19TWVNfSFJDV19MT1cgPj4gMTYpICYgMHhGRiwKKwkJKENPTkZJR19TWVNfSFJDV19MT1cgPj4gOCkgJiAweEZGLAorCQlDT05GSUdfU1lTX0hSQ1dfTE9XICYgMHhGRiwKIAkJMHg3QywJCSAgICAgICAgLyogQUNTPTAsIEJZVEVfRU49MTExMSwgQ09OVD0xICovCiAJCTB4MDIsIDB4NDEsCSAgICAgICAgLyogUkNXSCBBRERSPTB4MF8wOTA0ICovCi0JCShDRkdfSFJDV19ISUdIID4+IDI0KSAmIDB4RkYsCi0JCShDRkdfSFJDV19ISUdIID4+IDE2KSAmIDB4RkYsCi0JCShDRkdfSFJDV19ISUdIID4+IDgpICYgMHhGRiwKLQkJQ0ZHX0hSQ1dfSElHSCAmIDB4RkYKKwkJKENPTkZJR19TWVNfSFJDV19ISUdIID4+IDI0KSAmIDB4RkYsCisJCShDT05GSUdfU1lTX0hSQ1dfSElHSCA+PiAxNikgJiAweEZGLAorCQkoQ09ORklHX1NZU19IUkNXX0hJR0ggPj4gOCkgJiAweEZGLAorCQlDT05GSUdfU1lTX0hSQ1dfSElHSCAmIDB4RkYKIAl9OwogCiAJdTggZGF0YVtzaXplb2YoZWVwcm9tX2RhdGEpXTsKQEAgLTI5MiwyMiArMjkyLDIyIEBACiAKIAlwcmludGYoIkJvYXJkIHJldmlzaW9uOiAiKTsKIAlpMmNfc2V0X2J1c19udW0oMSk7Ci0JaWYgKGkyY19yZWFkKENGR19JMkNfODU3NEFfQUREUjIsIDAsIDAsICZpMmNfZGF0YSwgc2l6ZW9mKGkyY19kYXRhKSkgPT0gMCkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfODU3NEFfQUREUjIsIDAsIDAsICZpMmNfZGF0YSwgc2l6ZW9mKGkyY19kYXRhKSkgPT0gMCkKIAkJcHJpbnRmKCIldS4ldSAoUENGODQ3NUEpXG4iLCAoaTJjX2RhdGEgJiAweDAyKSA+PiAxLCBpMmNfZGF0YSAmIDB4MDEpOwotCWVsc2UgaWYgKGkyY19yZWFkKENGR19JMkNfODU3NF9BRERSMiwgMCwgMCwgJmkyY19kYXRhLCBzaXplb2YoaTJjX2RhdGEpKSA9PSAwKQorCWVsc2UgaWYgKGkyY19yZWFkKENPTkZJR19TWVNfSTJDXzg1NzRfQUREUjIsIDAsIDAsICZpMmNfZGF0YSwgc2l6ZW9mKGkyY19kYXRhKSkgPT0gMCkKIAkJcHJpbnRmKCIldS4ldSAoUENGODQ3NSlcbiIsICAoaTJjX2RhdGEgJiAweDAyKSA+PiAxLCBpMmNfZGF0YSAmIDB4MDEpOwogCWVsc2UgewogCQlwcmludGYoIlVua25vd25cbiIpOwogCQlyYyA9IDE7CiAJfQogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUgorI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCiAJaTJjX3NldF9idXNfbnVtKDApOwogCi0JaWYgKGkyY19yZWFkKENGR19JMkNfRUVQUk9NX0FERFIsIDAsIDIsIGRhdGEsIHNpemVvZihkYXRhKSkgPT0gMCkgeworCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCwgMiwgZGF0YSwgc2l6ZW9mKGRhdGEpKSA9PSAwKSB7CiAJCWlmIChtZW1jbXAoZGF0YSwgZWVwcm9tX2RhdGEsIHNpemVvZihkYXRhKSkgIT0gMCkgewogCQkJaWYgKGkyY193cml0ZQotCQkJICAgIChDRkdfSTJDX0VFUFJPTV9BRERSLCAwLCAyLCBlZXByb21fZGF0YSwKKwkJCSAgICAoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsIDAsIDIsIGVlcHJvbV9kYXRhLAogCQkJICAgICBzaXplb2YoZWVwcm9tX2RhdGEpKSAhPSAwKSB7CiAJCQkJcHV0cygiRmFpbHVyZSB3cml0aW5nIHRoZSBIUkNXIHRvIEVFUFJPTSB2aWEgSTJDLlxuIik7CiAJCQkJcmMgPSAxOwpAQCAtMzE5LDEwICszMTksMTAgQEAKIAl9CiAjZW5kaWYKIAotI2lmZGVmIENGR19JMkNfUlRDX0FERFIKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19SVENfQUREUgogCWkyY19zZXRfYnVzX251bSgxKTsKIAotCWlmIChpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCAwLCAxLCBkczEzMzlfZGF0YSwgc2l6ZW9mKGRzMTMzOV9kYXRhKSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDEsIGRzMTMzOV9kYXRhLCBzaXplb2YoZHMxMzM5X2RhdGEpKQogCSAgICA9PSAwKSB7CiAKIAkJLyogV29yay1hcm91bmQgZm9yIE1QQzgzNDlFLW1JVFggYnVnICMxMzYwMS4KQEAgLTM2Niw3ICszNjYsNyBAQAogCQkgKi8KIAogCQlpZiAoaTJjX3dyaXRlCi0JCSAgICAoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMSwgZHMxMzM5X2RhdGEsCisJCSAgICAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDEsIGRzMTMzOV9kYXRhLAogCQkgICAgIHNpemVvZihkczEzMzlfZGF0YSkpKSB7CiAJCQlwdXRzKCJGYWlsdXJlIHdyaXRpbmcgdG8gdGhlIFJUQyB2aWEgSTJDLlxuIik7CiAJCQlyYyA9IDE7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM0OWl0eC9wY2kuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5aXR4L3BjaS5jCmluZGV4IGQzM2VkZjMuLmZkMmMxNzIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5aXR4L3BjaS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzQ5aXR4L3BjaS5jCkBAIC0zNyw4ICszNyw4IEBACiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAogLyogU3lzdGVtIFJBTSBtYXBwZWQgdG8gUENJIHNwYWNlICovCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKIHN0YXRpYyBzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSBwY2lfbXBjODM0OWl0eF9jb25maWdfdGFibGVbXSA9IHsKQEAgLTkyLDcgKzkyLDcgQEAKIAl1MzIgZGV2OwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWNsayA9IChjbGs4M3h4X3QgKikgJiBpbW1yLT5jbGs7CiAJcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXBjaV9wb3QgPSBpbW1yLT5pb3MucG90OwpAQCAtMTExLDggKzExMSw4IEBACiAjaWZkZWYgQ09ORklHX0hBUkRfSTJDCiAJaTJjX3NldF9idXNfbnVtKDEpOwogCS8qIFJlYWQgdGhlIFBDSV9NNjZFTiBqdW1wZXIgc2V0dGluZyAqLwotCWlmICgoaTJjX3JlYWQoQ0ZHX0kyQ184NTc0X0FERFIyLCAwLCAwLCAmcmVnOCwgc2l6ZW9mKHJlZzgpKSA9PSAwKSB8fAotCSAgICAoaTJjX3JlYWQoQ0ZHX0kyQ184NTc0QV9BRERSMiwgMCwgMCwgJnJlZzgsIHNpemVvZihyZWc4KSkgPT0gMCkpIHsKKwlpZiAoKGkyY19yZWFkKENPTkZJR19TWVNfSTJDXzg1NzRfQUREUjIsIDAsIDAsICZyZWc4LCBzaXplb2YocmVnOCkpID09IDApIHx8CisJICAgIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ184NTc0QV9BRERSMiwgMCwgMCwgJnJlZzgsIHNpemVvZihyZWc4KSkgPT0gMCkpIHsKIAkJaWYgKHJlZzggJiBJMkNfODU3NF9QQ0k2NikKIAkJCWNsay0+b2NjciA9IDB4ZmYwMDAwMDA7CS8qIDY2IE1IeiBQQ0kgKi8KIAkJZWxzZQpAQCAtMTUwLDEwICsxNTAsMTAgQEAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MKIAkgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzBdLmJhciA9IENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV8xRzsKIAotCXBjaV9sYXdbMV0uYmFyID0gQ0ZHX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1sxXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV8zMk07CiAKIAkvKgpAQCAtMTYxLDE4ICsxNjEsMTggQEAKIAkgKi8KIAogCS8qIFBDSTEgbWVtIHNwYWNlIC0gcHJlZmV0Y2ggKi8KLQlwY2lfcG90WzBdLnBvdGFyID0gKENGR19QQ0kxX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFswXS5wb2JhciA9IChDRkdfUENJMV9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMF0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFswXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzBdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9QUkVGRVRDSF9FTiB8IFBPQ01SX0NNXzI1Nk07CiAKIAkvKiBQQ0kxIElPIHNwYWNlICovCi0JcGNpX3BvdFsxXS5wb3RhciA9IChDRkdfUENJMV9JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFsxXS5wb2JhciA9IChDRkdfUENJMV9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFsxXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzFdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9JTyB8IFBPQ01SX0NNXzE2TTsKIAogCS8qIFBDSTEgbW1pbyAtIG5vbi1wcmVmZXRjaCBtZW0gc3BhY2UgKi8KLQlwY2lfcG90WzJdLnBvdGFyID0gKENGR19QQ0kxX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbMl0ucG9iYXIgPSAoQ0ZHX1BDSTFfTU1JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFsyXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFsyXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFsyXS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfQ01fMjU2TTsKIAogCS8qCkBAIC0xOTIsMTkgKzE5MiwxOSBAQAogCiAJLyogUENJIG1lbW9yeSBwcmVmZXRjaCBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMV9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gpOworCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gpOwogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSTFfTU1JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTFfTU1JT19QSFlTLCBDRkdfUENJMV9NTUlPX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTLCBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSU8gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0kxX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMV9JT19QSFlTLCBDRkdfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIENPTkZJR19TWVNfUENJMV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCS8qIFN5c3RlbSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKQEAgLTIxNSw3ICsyMTUsNyBAQAogCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDQ7CiAKIAlwY2lfc2V0dXBfaW5kaXJlY3QoaG9zZSwKLQkJCSAgIChDRkdfSU1NUiArIDB4ODMwMCksIChDRkdfSU1NUiArIDB4ODMwNCkpOworCQkJICAgKENPTkZJR19TWVNfSU1NUiArIDB4ODMwMCksIChDT05GSUdfU1lTX0lNTVIgKyAweDgzMDQpKTsKIAogCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwogCkBAIC0yNTEsMTggKzI1MSwxOCBAQAogCSAqLwogCiAJLyogUENJMiBtZW0gc3BhY2UgLSBwcmVmZXRjaCAqLwotCXBjaV9wb3RbM10ucG90YXIgPSAoQ0ZHX1BDSTJfTUVNX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzNdLnBvYmFyID0gKENGR19QQ0kyX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFszXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzNdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMl9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbM10ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX1BDSTIgfCBQT0NNUl9QUkVGRVRDSF9FTiB8IFBPQ01SX0NNXzI1Nk07CiAKIAkvKiBQQ0kyIElPIHNwYWNlICovCi0JcGNpX3BvdFs0XS5wb3RhciA9IChDRkdfUENJMl9JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFs0XS5wb2JhciA9IChDRkdfUENJMl9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFs0XS5wb3RhciA9IChDT05GSUdfU1lTX1BDSTJfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbNF0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzRdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9QQ0kyIHwgUE9DTVJfSU8gfCBQT0NNUl9DTV8xNk07CiAKIAkvKiBQQ0kyIG1taW8gLSBub24tcHJlZmV0Y2ggbWVtIHNwYWNlICovCi0JcGNpX3BvdFs1XS5wb3RhciA9IChDRkdfUENJMl9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzVdLnBvYmFyID0gKENGR19QQ0kyX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbNV0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbNV0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kyX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbNV0ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX1BDSTIgfCBQT0NNUl9DTV8yNTZNOwogCiAJLyoKQEAgLTI4MywxOSArMjgzLDE5IEBACiAKIAkvKiBQQ0kgbWVtb3J5IHByZWZldGNoIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fQkFTRSwKLQkJICAgICAgIENGR19QQ0kyX01FTV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSCk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSCk7CiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJMl9NTUlPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9NTUlPX1BIWVMsIENGR19QQ0kyX01NSU9fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NTUlPX1BIWVMsIENPTkZJR19TWVNfUENJMl9NTUlPX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0kyX0lPX1BIWVMsIENGR19QQ0kyX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUywgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOwogCiAJLyogU3lzdGVtIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLApAQCAtMzA2LDcgKzMwNiw3IEBACiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gNDsKIAogCXBjaV9zZXR1cF9pbmRpcmVjdChob3NlLAotCQkJICAgKENGR19JTU1SICsgMHg4MzgwKSwgKENGR19JTU1SICsgMHg4Mzg0KSk7CisJCQkgICAoQ09ORklHX1NZU19JTU1SICsgMHg4MzgwKSwgKENPTkZJR19TWVNfSU1NUiArIDB4ODM4NCkpOwogCiAJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy9tcGM4MzYwZW1kcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlbWRzL21wYzgzNjBlbWRzLmMKaW5kZXggNWMzYjVkYi4uZmMwYTBlNSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlbWRzL21wYzgzNjBlbWRzLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlbWRzL21wYzgzNjBlbWRzLmMKQEAgLTkyLDggKzkyLDggQEAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKIAotCXU4ICpiY3NyID0gKHU4ICopQ0ZHX0JDU1I7Ci0JY29uc3QgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdTggKmJjc3IgPSAodTggKilDT05GSUdfU1lTX0JDU1I7CisJY29uc3QgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJLyogRW5hYmxlIGZsYXNoIHdyaXRlICovCiAJYmNzclsweGFdICY9IH4weDA0OwpAQCAtMTI0LDE0ICsxMjQsMTQgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCiAJaWYgKChpbS0+c3lzY29uZi5pbW1yYmFyICYgSU1NUkJBUl9CQVNFX0FERFIpICE9ICh1MzIpIGltKQogCQlyZXR1cm4gLTE7CiAKIAkvKiBERFIgU0RSQU0gLSBNYWluIFNPRElNTSAqLwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0UgJiBMQVdCQVJfQkFSOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKICNpZiBkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQogCW1zaXplID0gc3BkX3NkcmFtKCk7CiAjZWxzZQpAQCAtMTU5LDEyICsxNTksMTIgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgZml4ZWRfc2RyYW0odm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAJdTMyIGRkcl9zaXplOwogCXUzMiBkZHJfc2l6ZV9sb2cyOwogCi0JbXNpemUgPSBDRkdfRERSX1NJWkU7CisJbXNpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFOwogCWZvciAoZGRyX3NpemUgPSBtc2l6ZSA8PCAyMCwgZGRyX3NpemVfbG9nMiA9IDA7CiAJICAgICAoZGRyX3NpemUgPiAxKTsgZGRyX3NpemUgPSBkZHJfc2l6ZSA+PiAxLCBkZHJfc2l6ZV9sb2cyKyspIHsKIAkJaWYgKGRkcl9zaXplICYgMSkgewpAQCAtMTczLDQyICsxNzMsNDIgQEAKIAl9CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0KIAkgICAgTEFXQVJfRU4gfCAoKGRkcl9zaXplX2xvZzIgLSAxKSAmIExBV0FSX1NJWkUpOwotI2lmIChDRkdfRERSX1NJWkUgIT0gMjU2KQorI2lmIChDT05GSUdfU1lTX0REUl9TSVpFICE9IDI1NikKICN3YXJuaW5nIEN1cnJlbmx5IGFueSBkZHIgc2l6ZSBvdGhlciB0aGFuIDI1NiBpcyBub3Qgc3VwcG9ydGVkCiAjZW5kaWYKICNpZmRlZiBDT05GSUdfRERSX0lJCi0JaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENGR19ERFJfQ1MwX0NPTkZJRzsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENGR19ERFJfVElNSU5HXzM7Ci0JaW0tPmRkci5zZHJhbV9jZmcgPSBDRkdfRERSX1NEUkFNX0NGRzsKLQlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDRkdfRERSX1NEUkFNX0NGRzI7Ci0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDRkdfRERSX01PREUyOwotCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOwotCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DTlRMOworCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENPTkZJR19TWVNfRERSX1RJTUlOR18wOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHOworCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzI7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ09ORklHX1NZU19ERFJfTU9ERTI7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOworCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDT05GSUdfU1lTX0REUl9DTEtfQ05UTDsKICNlbHNlCiAJaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gMHgwMDAwMDAwNzsKIAlpbS0+ZGRyLmNzYm5kc1sxXS5jc2JuZHMgPSAweDAwMDgwMDBmOwogCi0JaW0tPmRkci5jc19jb25maWdbMF0gPSBDRkdfRERSX0NPTkZJRzsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1sxXSA9IENGR19ERFJfQ09ORklHOworCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ09ORklHX1NZU19ERFJfQ09ORklHOworCWltLT5kZHIuY3NfY29uZmlnWzFdID0gQ09ORklHX1NZU19ERFJfQ09ORklHOwogCi0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19ERFJfQ09OVFJPTDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJaW0tPmRkci5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MOwogCi0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogI2VuZGlmCiAJdWRlbGF5KDIwMCk7CiAJaW0tPmRkci5zZHJhbV9jZmcgfD0gU0RSQU1fQ0ZHX01FTV9FTjsKIAogCXJldHVybiBtc2l6ZTsKIH0KLSNlbmRpZgkJCQkvKiFDRkdfU1BEX0VFUFJPTSAqLworI2VuZGlmCQkJCS8qIUNPTkZJR19TWVNfU1BEX0VFUFJPTSAqLwogCiBpbnQgY2hlY2tib2FyZCh2b2lkKQogewpAQCAtMjE5LDM0ICsyMTksMzQgQEAKIC8qCiAgKiBpZiBNUEM4MzYwRU1EUyBpcyBzb2xkZXJlZCB3aXRoIFNEUkFNCiAgKi8KLSNpZiBkZWZpbmVkKENGR19CUjJfUFJFTElNKSAgXAotCSYmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pIFwKLQkmJiBkZWZpbmVkKENGR19MQkxBV0JBUjJfUFJFTElNKSBcCi0JJiYgZGVmaW5lZChDRkdfTEJMQVdBUjJfUFJFTElNKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKSAgXAorCSYmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKSBcCisJJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNKQogLyoKICAqIEluaXRpYWxpemUgU0RSQU0gbWVtb3J5IG9uIHRoZSBMb2NhbCBCdXMuCiAgKi8KIAogdm9pZCBzZHJhbV9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsYnVzODN4eF90ICpsYmMgPSAmaW1tYXAtPmxidXM7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopIENGR19MQkNfU0RSQU1fQkFTRTsKKwl1aW50ICpzZHJhbV9hZGRyID0gKHVpbnQgKikgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRTsKIAogCS8qCiAJICogU2V0dXAgU0RSQU0gQmFzZSBhbmQgT3B0aW9uIFJlZ2lzdGVycywgYWxyZWFkeSBkb25lIGluIGNwdV9pbml0LmMKIAkgKi8KIAkvKnNldHVwIG10cnB0LCBsc3J0IGFuZCBsYmNyIGZvciBMQiBidXMgKi8KLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7Ci0JbGJjLT5sc3J0ID0gQ0ZHX0xCQ19MU1JUOworCWxiYy0+bGJjciA9IENPTkZJR19TWVNfTEJDX0xCQ1I7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOworCWxiYy0+bHNydCA9IENPTkZJR19TWVNfTEJDX0xTUlQ7CiAJYXNtKCJzeW5jIik7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSB0aGUgU0RSQU0gY29udHJvbGxlciBNYWNoaW5lIE1vZGUgUmVnaXN0ZXIuCiAJICovCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNTsJLyogTm9ybWFsIE9wZXJhdGlvbiAqLwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzE7CS8qIFByZWNoYXJnZSBBbGwgQmFua3MgKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsJLyogTm9ybWFsIE9wZXJhdGlvbiAqLworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xOwkvKiBQcmVjaGFyZ2UgQWxsIEJhbmtzICovCiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXVkZWxheSgxMDApOwpAQCAtMjU0LDcgKzI1NCw3IEBACiAJLyoKIAkgKiBXZSBuZWVkIGRvIDggdGltZXMgYXV0byByZWZyZXNoIG9wZXJhdGlvbi4KIAkgKi8KLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8yOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yOwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsJLyogMSB0aW1lcyAqLwogCXVkZWxheSgxMDApOwpAQCAtMjc0LDEzICsyNzQsMTMgQEAKIAl1ZGVsYXkoMTAwKTsKIAogCS8qIE1vZGUgcmVnaXN0ZXIgd3JpdGUgb3BlcmF0aW9uICovCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNDsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNDsKIAlhc20oInN5bmMiKTsKIAkqKHNkcmFtX2FkZHIgKyAweGNjKSA9IDB4ZmY7CiAJdWRlbGF5KDEwMCk7CiAKIAkvKiBOb3JtYWwgb3BlcmF0aW9uICovCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNSB8IDB4NDAwMDAwMDA7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzUgfCAweDQwMDAwMDAwOwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAl1ZGVsYXkoMTAwKTsKQEAgLTI5NCw3ICsyOTQsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX09GX0JPQVJEX1NFVFVQKQogdm9pZCBmdF9ib2FyZF9zZXR1cCh2b2lkICpibG9iLCBiZF90ICpiZCkKIHsKLQljb25zdCBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwljb25zdCBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAlmdF9jcHVfc2V0dXAoYmxvYiwgYmQpOwogI2lmZGVmIENPTkZJR19QQ0kKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy9wY2kuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy9wY2kuYwppbmRleCA0YTBkNDYwLi45MzVhY2EyNiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlbWRzL3BjaS5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZW1kcy9wY2kuYwpAQCAtNjcsNyArNjcsNyBAQAogCXZvbGF0aWxlIHBjaWN0cmw4M3h4X3QgKnBjaV9jdHJsOwogCXZvbGF0aWxlIHBjaWNvbmY4M3h4X3QgKnBjaV9jb25mOwogCi0JaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXBjaV9wb3QgPSBpbW1yLT5pb3MucG90OwogCXBjaV9jdHJsID0gaW1tci0+cGNpX2N0cmw7CkBAIC05Myw3ICs5Myw3IEBACiAJaG9zZVswXS5maXJzdF9idXNubyA9IDA7CiAJaG9zZVswXS5sYXN0X2J1c25vID0gMHhmZjsKIAlwY2lfc2V0dXBfaW5kaXJlY3QoJmhvc2VbMF0sCi0JCQkgICAoQ0ZHX0lNTVIgKyAweDgzMDApLCAoQ0ZHX0lNTVIgKyAweDgzMDQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIgKyAweDgzMDApLCAoQ09ORklHX1NZU19JTU1SICsgMHg4MzA0KSk7CiAJcmVnMTYgPSAweGZmOwogCiAJcGNpX2hvc2VfcmVhZF9jb25maWdfd29yZCgmaG9zZVswXSwgUENJX0JERigwLCAwLCAwKSwKQEAgLTEzNCw3ICsxMzQsNyBAQAogCXUzMiB2YWwzMjsKIAl1MzIgZGV2OwogCi0JaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJY2xrID0gKGNsazgzeHhfdCAqKSAmIGltbXItPmNsazsKIAlwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJcGNpX3BvdCA9IGltbXItPmlvcy5wb3Q7CkBAIC0xNjEsMTAgKzE2MSwxMCBAQAogCS8qCiAJICogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cwogCSAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV81MTJNOwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExBV0FSX0VOIHwgTEFXQVJfU0laRV8xTTsKIAogCS8qCkBAIC0xNzIsMjYgKzE3MiwyNiBAQAogCSAqLwogCiAJLyogUENJIG1lbSBzcGFjZSAtIHByZWZldGNoICovCi0JcGNpX3BvdFswXS5wb3RhciA9IChDRkdfUENJX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFswXS5wb2JhciA9IChDRkdfUENJX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFswXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSV9NRU1fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMF0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzBdLnBvY21yID0KIAkgICAgUE9DTVJfRU4gfCBQT0NNUl9TRSB8IChQT0NNUl9DTV8yNTZNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKiBQQ0kgbW1pbyAtIG5vbi1wcmVmZXRjaCBtZW0gc3BhY2UgKi8KLQlwY2lfcG90WzFdLnBvdGFyID0gKENGR19QQ0lfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFsxXS5wb2JhciA9IChDRkdfUENJX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMV0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFsxXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzFdLnBvY21yID0gUE9DTVJfRU4gfCAoUE9DTVJfQ01fMjU2TSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyogUENJIElPIHNwYWNlICovCi0JcGNpX3BvdFsyXS5wb3RhciA9IChDRkdfUENJX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzJdLnBvYmFyID0gKENGR19QQ0lfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMl0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0lfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMl0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0lfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbMl0ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX0lPIHwgKFBPQ01SX0NNXzFNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQ0kgSW5ib3VuZCBUcmFuc2xhdGlvbiBXaW5kb3dzCiAJICovCi0JcGNpX2N0cmxbMF0ucGl0YXIxID0gKENGR19QQ0lfU0xWX01FTV9MT0NBTCA+PiAxMikgJiBQSVRBUl9UQV9NQVNLOwotCXBjaV9jdHJsWzBdLnBpYmFyMSA9IChDRkdfUENJX1NMVl9NRU1fQlVTID4+IDEyKSAmIFBJQkFSX01BU0s7CisJcGNpX2N0cmxbMF0ucGl0YXIxID0gKENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwgPj4gMTIpICYgUElUQVJfVEFfTUFTSzsKKwlwY2lfY3RybFswXS5waWJhcjEgPSAoQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMgPj4gMTIpICYgUElCQVJfTUFTSzsKIAlwY2lfY3RybFswXS5waWViYXIxID0gMHgwOwogCXBjaV9jdHJsWzBdLnBpd2FyMSA9CiAJICAgIFBJV0FSX0VOIHwgUElXQVJfUEYgfCBQSVdBUl9SVFRfU05PT1AgfCBQSVdBUl9XVFRfU05PT1AgfApAQCAtMjA5LDMxICsyMDksMzEgQEAKIAogCS8qIFBDSSBtZW1vcnkgcHJlZmV0Y2ggc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlWzBdLnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1fQkFTRSwKLQkJICAgICAgIENGR19QQ0lfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gpOworCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gpOwogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2VbMF0ucmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJX01NSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0lfTU1JT19QSFlTLCBDRkdfUENJX01NSU9fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTLCBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2VbMF0ucmVnaW9ucyArIDIsCi0JCSAgICAgICBDRkdfUENJX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJX0lPX1BIWVMsIENGR19QQ0lfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fUEhZUywgQ09ORklHX1NZU19QQ0lfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAkvKiBTeXN0ZW0gbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZVswXS5yZWdpb25zICsgMywKLQkJICAgICAgIENGR19QQ0lfU0xWX01FTV9MT0NBTCwKLQkJICAgICAgIENGR19QQ0lfU0xWX01FTV9CVVMsCi0JCSAgICAgICBDRkdfUENJX1NMVl9NRU1fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX1NMVl9NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJaG9zZVswXS5yZWdpb25fY291bnQgPSA0OwogCiAJcGNpX3NldHVwX2luZGlyZWN0KCZob3NlWzBdLAotCQkJICAgKENGR19JTU1SICsgMHg4MzAwKSwgKENGR19JTU1SICsgMHg4MzA0KSk7CisJCQkgICAoQ09ORklHX1NZU19JTU1SICsgMHg4MzAwKSwgKENPTkZJR19TWVNfSU1NUiArIDB4ODMwNCkpOwogCiAJcGNpX3JlZ2lzdGVyX2hvc2UoaG9zZSk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZXJkay9tcGM4MzYwZXJkay5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlcmRrL21wYzgzNjBlcmRrLmMKaW5kZXggNjFkNzAwMC4uYWYzYjhjZSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlcmRrL21wYzgzNjBlcmRrLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlcmRrL21wYzgzNjBlcmRrLmMKQEAgLTIxNCw3ICsyMTQsNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yKHZvaWQpCiB7Ci0Jdm9pZCAqcmVnID0gKHZvaWQgKikoQ0ZHX0lNTVIgKyAweDE0YTgpOworCXZvaWQgKnJlZyA9ICh2b2lkICopKENPTkZJR19TWVNfSU1NUiArIDB4MTRhOCk7CiAJdTMyIHZhbDsKIAogCS8qCkBAIC0yMzMsMTIgKzIzMywxMiBAQAogCiBpbnQgZml4ZWRfc2RyYW0odm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCXUzMiBkZHJfc2l6ZTsKIAl1MzIgZGRyX3NpemVfbG9nMjsKIAotCW1zaXplID0gQ0ZHX0REUl9TSVpFOworCW1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRTsKIAlmb3IgKGRkcl9zaXplID0gbXNpemUgPDwgMjAsIGRkcl9zaXplX2xvZzIgPSAwOwogCSAgICAgKGRkcl9zaXplID4gMSk7IGRkcl9zaXplID0gZGRyX3NpemUgPj4gMSwgZGRyX3NpemVfbG9nMisrKSB7CiAJCWlmIChkZHJfc2l6ZSAmIDEpCkBAIC0yNDgsMTggKzI0OCwxOCBAQAogCWltLT5zeXNjb25mLmRkcmxhd1swXS5hciA9CiAJICAgIExBV0FSX0VOIHwgKChkZHJfc2l6ZV9sb2cyIC0gMSkgJiBMQVdBUl9TSVpFKTsKIAotCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JaW0tPmRkci5jc19jb25maWdbMF0gPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX0REUl9TRFJBTV9DRkc7Ci0JaW0tPmRkci5zZHJhbV9jZmcyID0gQ0ZHX0REUl9TRFJBTV9DRkcyOwotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ0ZHX0REUl9NT0RFMjsKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ05UTDsKKwlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CisJaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMzsKKwlpbS0+ZGRyLnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzsKKwlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJaW0tPmRkci5zZHJhbV9tb2RlMiA9IENPTkZJR19TWVNfRERSX01PREUyOworCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NOVEw7CiAJdWRlbGF5KDIwMCk7CiAJaW0tPmRkci5zZHJhbV9jZmcgfD0gU0RSQU1fQ0ZHX01FTV9FTjsKIApAQCAtMjcxLDE0ICsyNzEsMTQgQEAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRUNDKSAmJiAhZGVmaW5lZChDT05GSUdfRUNDX0lOSVRfVklBX0REUkMpCiAJZXh0ZXJuIHZvaWQgZGRyX2VuYWJsZV9lY2ModW5zaWduZWQgaW50IGRyYW1fc2l6ZSk7CiAjZW5kaWYKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCiAJaWYgKChpbS0+c3lzY29uZi5pbW1yYmFyICYgSU1NUkJBUl9CQVNFX0FERFIpICE9ICh1MzIpaW0pCiAJCXJldHVybiAtMTsKIAogCS8qIEREUiBTRFJBTSAtIE1haW4gU09ESU1NICovCi0JaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENGR19ERFJfQkFTRSAmIExBV0JBUl9CQVI7CisJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENPTkZJR19TWVNfRERSX0JBU0UgJiBMQVdCQVJfQkFSOwogCW1zaXplID0gZml4ZWRfc2RyYW0oKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9FQ0MpICYmICFkZWZpbmVkKENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQykKQEAgLTMwMCwyOCArMzAwLDI4IEBACiAKIHN0YXRpYyBzdHJ1Y3QgcGNpX3JlZ2lvbiBwY2lfcmVnaW9uc1tdID0gewogCXsKLQkJLmJ1c19zdGFydCA9IENGR19QQ0kxX01FTV9CQVNFLAotCQkucGh5c19zdGFydCA9IENGR19QQ0kxX01FTV9QSFlTLAotCQkuc2l6ZSA9IENGR19QQ0kxX01FTV9TSVpFLAorCQkuYnVzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkucGh5c19zdGFydCA9IENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJLnNpemUgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCS5mbGFncyA9IFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9QUkVGRVRDSCwKIAl9LAogCXsKLQkJLmJ1c19zdGFydCA9IENGR19QQ0kxX01NSU9fQkFTRSwKLQkJLnBoeXNfc3RhcnQgPSBDRkdfUENJMV9NTUlPX1BIWVMsCi0JCS5zaXplID0gQ0ZHX1BDSTFfTU1JT19TSVpFLAorCQkuYnVzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSwKKwkJLnBoeXNfc3RhcnQgPSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTLAorCQkuc2l6ZSA9IENPTkZJR19TWVNfUENJMV9NTUlPX1NJWkUsCiAJCS5mbGFncyA9IFBDSV9SRUdJT05fTUVNLAogCX0sCiAJewotCQkuYnVzX3N0YXJ0ID0gQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJLnBoeXNfc3RhcnQgPSBDRkdfUENJMV9JT19QSFlTLAotCQkuc2l6ZSA9IENGR19QQ0kxX0lPX1NJWkUsCisJCS5idXNfc3RhcnQgPSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJLnBoeXNfc3RhcnQgPSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJLnNpemUgPSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJLmZsYWdzID0gUENJX1JFR0lPTl9JTywKIAl9LAogfTsKIAogdm9pZCBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjbGs4M3h4X3QgKmNsayA9ICh2b2xhdGlsZSBjbGs4M3h4X3QgKikmaW1tci0+Y2xrOwogCXZvbGF0aWxlIGxhdzgzeHhfdCAqcGNpX2xhdyA9IGltbXItPnN5c2NvbmYucGNpbGF3OwogCXN0cnVjdCBwY2lfcmVnaW9uICpyZWdbXSA9IHsgcGNpX3JlZ2lvbnMsIH07CkBAIC0zMzgsMTAgKzMzOCwxMCBAQAogCXVkZWxheSgyMDAwKTsKIAogCS8qIENvbmZpZ3VyZSBQQ0kgTG9jYWwgQWNjZXNzIFdpbmRvd3MgKi8KLQlwY2lfbGF3WzBdLmJhciA9IENGR19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzBdLmJhciA9IENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzUxMk1COwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKKwlwY2lfbGF3WzFdLmJhciA9IENPTkZJR19TWVNfUENJMV9JT19QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzFdLmFyID0gTEJMQVdBUl9FTiB8IExCTEFXQVJfMU1COwogCiAJbXBjODN4eF9wY2lfaW5pdCgxLCByZWcsIDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlcmRrL25hbmQuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4MzYwZXJkay9uYW5kLmMKaW5kZXggOGI0NGEwZi4uOGUyMmUxMyAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlcmRrL25hbmQuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM2MGVyZGsvbmFuZC5jCkBAIC0xOCw3ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvbXRkL2ZzbF91cG0uaD4KICNpbmNsdWRlIDxuYW5kLmg+CiAKLXN0YXRpYyBzdHJ1Y3QgaW1tYXAgKmltID0gKHN0cnVjdCBpbW1hcCAqKUNGR19JTU1SOworc3RhdGljIHN0cnVjdCBpbW1hcCAqaW0gPSAoc3RydWN0IGltbWFwICopQ09ORklHX1NZU19JTU1SOwogCiBzdGF0aWMgY29uc3QgdTMyIHVwbV9hcnJheVtdID0gewogCTB4MGZmMDNjMzAsIDB4MGZmMDNjMzAsIDB4MGZmMDNjMzQsIDB4MGZmMzNjMzAsIC8qIFdvcmRzICAwIHRvICAzICovCkBAIC03MCw3ICs3MCw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgZnNsX3VwbV9uYW5kIGZ1biA9IHsKIAkudXBtID0gewotCQkuaW9fYWRkciA9ICh2b2lkICopQ0ZHX05BTkRfQkFTRSwKKwkJLmlvX2FkZHIgPSAodm9pZCAqKUNPTkZJR19TWVNfTkFORF9CQVNFLAogCX0sCiAJLndpZHRoID0gOCwKIAkudXBtX2NtZF9vZmZzZXQgPSA4LApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlbWRzL21wYzgzN3hlbWRzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM3eGVtZHMvbXBjODM3eGVtZHMuYwppbmRleCA4MDAzZWMxLi42YzUzN2UyIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODM3eGVtZHMvbXBjODM3eGVtZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM3eGVtZHMvbXBjODM3eGVtZHMuYwpAQCAtMjQsNyArMjQsNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7Ci0JdTggKmJjc3IgPSAodTggKilDRkdfQkNTUjsKKwl1OCAqYmNzciA9ICh1OCAqKUNPTkZJR19TWVNfQkNTUjsKIAogCS8qIEVuYWJsZSBmbGFzaCB3cml0ZSAqLwogCWJjc3JbMHg5XSAmPSB+MHgwNDsKQEAgLTMyLDcgKzMyLDcgQEAKIAliY3NyWzB4ZV0gPSAweGZmOwogCiAjaWZkZWYgQ09ORklHX0ZTTF9TRVJERVMKLQlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdTMyIHNwcmlkciA9IGluX2JlMzIoJmltbXItPnN5c2NvbmYuc3ByaWRyKTsKIAogCS8qIHdlIGNoZWNrIG9ubHkgcGFydCBudW0sIGFuZCBkb24ndCBsb29rIGZvciBDUFUgcmV2aXNpb25zICovCkBAIC03Nyw3ICs3Nyw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTMyIG1zaXplID0gMDsKIAogCWlmICgoaW0tPnN5c2NvbmYuaW1tcmJhciAmIElNTVJCQVJfQkFTRV9BRERSKSAhPSAodTMyKSBpbSkKQEAgLTEwNCw0MyArMTA0LDQzIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKLQl1MzIgbXNpemUgPSBDRkdfRERSX1NJWkUgKiAxMDI0ICogMTAyNDsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKKwl1MzIgbXNpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFICogMTAyNCAqIDEwMjQ7CiAJdTMyIG1zaXplX2xvZzIgPSBfX2lsb2cyKG1zaXplKTsKIAotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX1NEUkFNX0JBU0UgJiAweGZmZmZmMDAwOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgKG1zaXplX2xvZzIgLSAxKTsKIAotI2lmIChDRkdfRERSX1NJWkUgIT0gNTEyKQorI2lmIChDT05GSUdfU1lTX0REUl9TSVpFICE9IDUxMikKICN3YXJuaW5nIEN1cnJlbmx5IGFueSBkZHIgc2l6ZSBvdGhlciB0aGFuIDUxMiBpcyBub3Qgc3VwcG9ydGVkCiAjZW5kaWYKLQlpbS0+c3lzY29uZi5kZHJjZHIgPSBDRkdfRERSQ0RSX1ZBTFVFOworCWltLT5zeXNjb25mLmRkcmNkciA9IENPTkZJR19TWVNfRERSQ0RSX1ZBTFVFOwogCXVkZWxheSg1MDAwMCk7CiAKLQlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTDsKKwlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEw7CiAJdWRlbGF5KDEwMDApOwogCi0JaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENGR19ERFJfQ1MwX0NPTkZJRzsKKwlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CiAJdWRlbGF5KDEwMDApOwogCi0JaW0tPmRkci50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWltLT5kZHIuc2RyYW1fY2ZnID0gQ0ZHX0REUl9TRFJBTV9DRkc7Ci0JaW0tPmRkci5zZHJhbV9jZmcyID0gQ0ZHX0REUl9TRFJBTV9DRkcyOwotCWltLT5kZHIuc2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ0ZHX0REUl9NT0RFMjsKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENPTkZJR19TWVNfRERSX1RJTUlOR18wOworCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWltLT5kZHIuc2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHOworCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzI7CisJaW0tPmRkci5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlpbS0+ZGRyLnNkcmFtX21vZGUyID0gQ09ORklHX1NZU19ERFJfTU9ERTI7CisJaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogCV9fYXNtX18gX192b2xhdGlsZV9fKCJzeW5jIik7CiAJdWRlbGF5KDEwMDApOwogCiAJaW0tPmRkci5zZHJhbV9jZmcgfD0gU0RSQU1fQ0ZHX01FTV9FTjsKIAl1ZGVsYXkoMjAwMCk7Ci0JcmV0dXJuIENGR19ERFJfU0laRTsKKwlyZXR1cm4gQ09ORklHX1NZU19ERFJfU0laRTsKIH0KLSNlbmRpZiAvKiFDRkdfU1BEX0VFUFJPTSAqLworI2VuZGlmIC8qIUNPTkZJR19TWVNfU1BEX0VFUFJPTSAqLwogCiBpbnQgY2hlY2tib2FyZCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlbWRzL3BjaS5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlbWRzL3BjaS5jCmluZGV4IGFiOTA5NzkuLjI0Y2MxMzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZW1kcy9wY2kuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM3eGVtZHMvcGNpLmMKQEAgLTIxLDI4ICsyMSwyOCBAQAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIHN0YXRpYyBzdHJ1Y3QgcGNpX3JlZ2lvbiBwY2lfcmVnaW9uc1tdID0gewogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJX01FTV9CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJX01FTV9QSFlTLAotCQlzaXplOiBDRkdfUENJX01FTV9TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01FTV9CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gKIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJX01NSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSV9NTUlPX1BIWVMsCi0JCXNpemU6IENGR19QQ0lfTU1JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01NSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTQogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0lfSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSV9JT19QSFlTLAotCQlzaXplOiBDRkdfUENJX0lPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0lfSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0lfSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0lfSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fSU8KIAl9CiB9OwogCiB2b2lkIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNsazgzeHhfdCAqY2xrID0gKHZvbGF0aWxlIGNsazgzeHhfdCAqKSZpbW1yLT5jbGs7CiAJdm9sYXRpbGUgbGF3ODN4eF90ICpwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJc3RydWN0IHBjaV9yZWdpb24gKnJlZ1tdID0geyBwY2lfcmVnaW9ucyB9OwpAQCAtNTIsMTAgKzUyLDEwIEBACiAJdWRlbGF5KDIwMDApOwogCiAJLyogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cyAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzUxMk1COwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzFNQjsKIAogCXVkZWxheSgyMDAwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZXJkYi9tcGM4Mzd4ZXJkYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlcmRiL21wYzgzN3hlcmRiLmMKaW5kZXggZTU0N2I1MS4uMThhMjFhMSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlcmRiL21wYzgzN3hlcmRiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlcmRiL21wYzgzN3hlcmRiLmMKQEAgLTIwLDE3ICsyMCwxNyBAQAogI2luY2x1ZGUgPHNwZF9zZHJhbS5oPgogI2luY2x1ZGUgPHZzYzczODUuaD4KIAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogaW50CiB0ZXN0ZHJhbSh2b2lkKQogewotCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENGR19NRU1URVNUX1NUQVJUOwotCXVpbnQgKnBlbmQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9FTkQ7CisJdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCXVpbnQgKnBlbmQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfRU5EOwogCXVpbnQgKnA7CiAKIAlwcmludGYoIlRlc3RpbmcgRFJBTSBmcm9tIDB4JTA4eCB0byAweCUwOHhcbiIsCi0JICAgICAgIENGR19NRU1URVNUX1NUQVJULAotCSAgICAgICBDRkdfTUVNVEVTVF9FTkQpOworCSAgICAgICBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQsCisJICAgICAgIENPTkZJR19TWVNfTUVNVEVTVF9FTkQpOwogCiAJcHJpbnRmKCJEUkFNIHRlc3QgcGhhc2UgMTpcbiIpOwogCWZvciAocCA9IHBzdGFydDsgcCA8IHBlbmQ7IHArKykKQEAgLTY2LDcgKzY2LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0JaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCiAJaWYgKChpbS0+c3lzY29uZi5pbW1yYmFyICYgSU1NUkJBUl9CQVNFX0FERFIpICE9ICh1MzIpIGltKQpAQCAtOTIsNDAgKzkyLDQwIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0JaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKLQl1MzIgbXNpemUgPSBDRkdfRERSX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKKwl1MzIgbXNpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFICogMTAyNCAqIDEwMjQ7CiAJdTMyIG1zaXplX2xvZzIgPSBfX2lsb2cyKG1zaXplKTsKIAotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX1NEUkFNX0JBU0UgJiAweGZmZmZmMDAwOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgKG1zaXplX2xvZzIgLSAxKTsKIAotCWltLT5zeXNjb25mLmRkcmNkciA9IENGR19ERFJDRFJfVkFMVUU7CisJaW0tPnN5c2NvbmYuZGRyY2RyID0gQ09ORklHX1NZU19ERFJDRFJfVkFMVUU7CiAJdWRlbGF5KDUwMDAwKTsKIAotCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX1NEUkFNX0NMS19DTlRMOworCWltLT5kZHIuc2RyYW1fY2xrX2NudGwgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DTEtfQ05UTDsKIAl1ZGVsYXkoMTAwMCk7CiAKLQlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ0ZHX0REUl9DUzBfQ09ORklHOworCWltLT5kZHIuY3NibmRzWzBdLmNzYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKIAl1ZGVsYXkoMTAwMCk7CiAKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWltLT5kZHIudGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMyA9IENGR19ERFJfVElNSU5HXzM7Ci0JaW0tPmRkci5zZHJhbV9jZmcgPSBDRkdfRERSX1NEUkFNX0NGRzsKLQlpbS0+ZGRyLnNkcmFtX2NmZzIgPSBDRkdfRERSX1NEUkFNX0NGRzI7Ci0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDRkdfRERSX01PREUyOwotCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOworCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJaW0tPmRkci5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkc7CisJaW0tPmRkci5zZHJhbV9jZmcyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMjsKKwlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1fbW9kZTIgPSBDT05GSUdfU1lTX0REUl9NT0RFMjsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAJc3luYygpOwogCXVkZWxheSgxMDAwKTsKIAogCWltLT5kZHIuc2RyYW1fY2ZnIHw9IFNEUkFNX0NGR19NRU1fRU47CiAJdWRlbGF5KDIwMDApOwotCXJldHVybiBDRkdfRERSX1NJWkU7CisJcmV0dXJuIENPTkZJR19TWVNfRERSX1NJWkU7CiB9Ci0jZW5kaWYJLyohQ0ZHX1NQRF9FRVBST00gKi8KKyNlbmRpZgkvKiFDT05GSUdfU1lTX1NQRF9FRVBST00gKi8KIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKQEAgLTEzNiw3ICsxMzYsNyBAQAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewogI2lmZGVmIENPTkZJR19GU0xfU0VSREVTCi0JaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXUzMiBzcHJpZHIgPSBpbl9iZTMyKCZpbW1yLT5zeXNjb25mLnNwcmlkcik7CiAKIAkvKiB3ZSBjaGVjayBvbmx5IHBhcnQgbnVtLCBhbmQgZG9uJ3QgbG9vayBmb3IgQ1BVIHJldmlzaW9ucyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlcmRiL3BjaS5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzgzN3hlcmRiL3BjaS5jCmluZGV4IDI2ZTczMjAuLjhiYjMxZmMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4Mzd4ZXJkYi9wY2kuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODM3eGVyZGIvcGNpLmMKQEAgLTE3LDI4ICsxNywyOCBAQAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIHN0YXRpYyBzdHJ1Y3QgcGNpX3JlZ2lvbiBwY2lfcmVnaW9uc1tdID0gewogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJX01FTV9CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJX01FTV9QSFlTLAotCQlzaXplOiBDRkdfUENJX01FTV9TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01FTV9CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fUFJFRkVUQ0gKIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJX01NSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSV9NTUlPX1BIWVMsCi0JCXNpemU6IENGR19QQ0lfTU1JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJX01NSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX01FTQogCX0sCiAJewotCQlidXNfc3RhcnQ6IENGR19QQ0lfSU9fQkFTRSwKLQkJcGh5c19zdGFydDogQ0ZHX1BDSV9JT19QSFlTLAotCQlzaXplOiBDRkdfUENJX0lPX1NJWkUsCisJCWJ1c19zdGFydDogQ09ORklHX1NZU19QQ0lfSU9fQkFTRSwKKwkJcGh5c19zdGFydDogQ09ORklHX1NZU19QQ0lfSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0lfSU9fU0laRSwKIAkJZmxhZ3M6IFBDSV9SRUdJT05fSU8KIAl9CiB9OwogCiB2b2lkIHBjaV9pbml0X2JvYXJkKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNsazgzeHhfdCAqY2xrID0gKHZvbGF0aWxlIGNsazgzeHhfdCAqKSZpbW1yLT5jbGs7CiAJdm9sYXRpbGUgbGF3ODN4eF90ICpwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJc3RydWN0IHBjaV9yZWdpb24gKnJlZ1tdID0geyBwY2lfcmVnaW9ucyB9OwpAQCAtNDgsMTAgKzQ4LDEwIEBACiAJdWRlbGF5KDIwMDApOwogCiAJLyogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cyAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1swXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzUxMk1COwogCi0JcGNpX2xhd1sxXS5iYXIgPSBDRkdfUENJX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAmIExBV0JBUl9CQVI7CiAJcGNpX2xhd1sxXS5hciA9IExCTEFXQVJfRU4gfCBMQkxBV0FSXzFNQjsKIAogCW1wYzgzeHhfcGNpX2luaXQoMSwgcmVnLCAwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvZGRyLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL2Rkci5jCmluZGV4IDJlODhjNzkuLjMxMzVkNmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvZGRyLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy9kZHIuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogCiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9kaW1tX3BhcmFtcy5oPgogCiBzdGF0aWMgdm9pZCBnZXRfc3BkKGRkcjJfc3BkX2VlcHJvbV90ICpzcGQsIHVuc2lnbmVkIGNoYXIgaTJjX2FkZHJlc3MpCiB7CkBAIC0zNiw3ICszNyw5IEBACiAJfQogfQogCi12b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywgdW5zaWduZWQgaW50IGN0cmxfbnVtKQordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgY2xvY2sgYWRqdXN0OgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy9sYXcuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvbGF3LmMKaW5kZXggY2RmNTIxNS4uODAxM2Q0MSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy9sYXcuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL2xhdy5jCkBAIC0yOCwxNSArMjgsMTUgQEAKICNpbmNsdWRlIDxhc20vbW11Lmg+CiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7Ci0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19GTEFTSF9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAotCVNFVF9MQVcoQ0ZHX1BDSUUxX01FTV9QSFlTLCBMQVdBUl9TSVpFXzEyOE0sIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSUUyX01FTV9QSFlTLCBMQVdBUl9TSVpFXzEyOE0sIExBV19UUkdUX0lGX1BDSUVfMiksCi0JU0VUX0xBVyhDRkdfUENJRTJfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAotCVNFVF9MQVcoQ0ZHX1BDSUUzX01FTV9QSFlTLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMyksCi0JU0VUX0xBVyhDRkdfUENJRTNfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsIExBV0FSX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUywgTEFXQVJfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8zKSwKIAlTRVRfTEFXKFBJWElTX0JBU0UsIExBV19TSVpFXzRLLCBMQVdfVFJHVF9JRl9MQkMpLAogfTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy9tcGM4NTM2ZHMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvbXBjODUzNmRzLmMKaW5kZXggMzA2NmIyNC4uY2U3N2JiOSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy9tcGM4NTM2ZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL21wYzg1MzZkcy5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8cGNpLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9tbXUuaD4KKyNpbmNsdWRlIDxhc20vY2FjaGUuaD4KICNpbmNsdWRlIDxhc20vaW1tYXBfODV4eC5oPgogI2luY2x1ZGUgPGFzbS9pbW1hcF9mc2xfcGNpLmg+CiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KQEAgLTM0LDggKzM1LDExIEBACiAjaW5jbHVkZSA8bGliZmR0Lmg+CiAjaW5jbHVkZSA8c3BkX3NkcmFtLmg+CiAjaW5jbHVkZSA8ZmR0X3N1cHBvcnQuaD4KKyNpbmNsdWRlIDx0c2VjLmg+CisjaW5jbHVkZSA8bmV0ZGV2Lmg+CiAKICNpbmNsdWRlICIuLi9jb21tb24vcGl4aXMuaCIKKyNpbmNsdWRlICIuLi9jb21tb24vc2dtaWlfcmlzZXIuaCIKIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9FQ0MpICYmICFkZWZpbmVkKENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQ09OVFJPTExFUikKIGV4dGVybiB2b2lkIGRkcl9lbmFibGVfZWNjKHVuc2lnbmVkIGludCBkcmFtX3NpemUpOwpAQCAtODYsMzQgKzkwLDM0IEBACiAKIHBoeXNfc2l6ZV90IGZpeGVkX3NkcmFtICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gJmltbWFwLT5pbV9kZHI7CiAJdWludCBkX2luaXQ7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7CisJZGRyLT5jczBfYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWRkci0+Y3MwX2NvbmZpZyA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CiAKLQlkZHItPnRpbWluZ19jZmdfMyA9IENGR19ERFJfVElNSU5HXzM7Ci0JZGRyLT50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWRkci0+dGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JZGRyLT5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFXzE7Ci0JZGRyLT5zZHJhbV9tb2RlXzIgPSBDRkdfRERSX01PREVfMjsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENGR19ERFJfREFUQV9JTklUOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DVFJMOwotCWRkci0+c2RyYW1fY2ZnXzIgPSBDRkdfRERSX0NPTlRST0wyOworCWRkci0+dGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJZGRyLT50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERV8xOworCWRkci0+c2RyYW1fbW9kZV8yID0gQ09ORklHX1NZU19ERFJfTU9ERV8yOworCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENPTkZJR19TWVNfRERSX0RBVEFfSU5JVDsKKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NUUkw7CisJZGRyLT5zZHJhbV9jZmdfMiA9IENPTkZJR19TWVNfRERSX0NPTlRST0wyOwogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCi0JZGRyLT5lcnJfaW50X2VuID0gQ0ZHX0REUl9FUlJfSU5UX0VOOwotCWRkci0+ZXJyX2Rpc2FibGUgPSBDRkdfRERSX0VSUl9ESVM7Ci0JZGRyLT5lcnJfc2JlID0gQ0ZHX0REUl9TQkU7CisJZGRyLT5lcnJfaW50X2VuID0gQ09ORklHX1NZU19ERFJfRVJSX0lOVF9FTjsKKwlkZHItPmVycl9kaXNhYmxlID0gQ09ORklHX1NZU19ERFJfRVJSX0RJUzsKKwlkZHItPmVycl9zYmUgPSBDT05GSUdfU1lTX0REUl9TQkU7CiAjZW5kaWYKIAlhc20oInN5bmM7aXN5bmMiKTsKIAogCXVkZWxheSg1MDApOwogCi0JZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJZGRyLT5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MOwogCiAjaWYgZGVmaW5lZChDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIpCiAJZF9pbml0ID0gMTsKQEAgLTE1Niw3ICsxNjAsNyBAQAogdm9pZAogcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IHNkcnMyX2lvX3NlbCA9CiAJCShndXItPnBvcmRldnNyICYgTVBDODV4eF9QT1JERVZTUl9TUkRTMl9JT19TRUwpID4+IDI3OwpAQCAtMTc2LDcgKzE4MCw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTMKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFM19BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFM19BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llM19ob3NlOwogCWludCBwY2llX2VwID0gKGhvc3RfYWdlbnQgPT0gMSk7CkBAIC0xOTQsMjMgKzE5OCwyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJRTNfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lFM19NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFM19NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFM19JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTIzNCw3ICsyMzgsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUxCiAgewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSUUxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUxX2hvc2U7CiAJaW50IHBjaWVfZXAgPSAoaG9zdF9hZ2VudCA9PSA1KTsKQEAgLTI1MywzMiArMjU3LDMyIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwotI2lmZGVmIENGR19QQ0lFMV9NRU1fQkFTRTIKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFMgogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9CQVNFMiwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1BIWVMyLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fU0laRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUzIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRTIsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCQlob3NlLT5yZWdpb25fY291bnQrKzsKICNlbmRpZgpAQCAtMzAzLDcgKzMwNyw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTIKICB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJRTJfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTJfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTJfaG9zZTsKIAlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50ID09IDMpOwpAQCAtMzIxLDMyICszMjUsMzIgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0lFMl9NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTJfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0lFMl9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0lFMl9JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0lFMl9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7Ci0jaWZkZWYgQ0ZHX1BDSUUyX01FTV9CQVNFMgorI2lmZGVmIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UyCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQkJCSAgICAgICBDRkdfUENJRTJfTUVNX0JBU0UyLAotCQkJICAgICAgIENGR19QQ0lFMl9NRU1fUEhZUzIsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX01FTV9TSVpFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX01FTV9CQVNFMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX01FTV9QSFlTMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX01FTV9TSVpFMiwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAJCWhvc2UtPnJlZ2lvbl9jb3VudCsrOwogI2VuZGlmCkBAIC0zNzAsNyArMzc0LDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0kxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0kxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTFfaG9zZTsKIApAQCAtMzk0LDMxICszOTgsMzEgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0kxX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMV9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwotI2lmZGVmIENGR19QQ0kxX01FTV9CQVNFMgorI2lmZGVmIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRTIKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFMiwKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fUEhZUzIsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1NJWkUyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTMiwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUyLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50Kys7CiAjZW5kaWYKQEAgLTQ0MSw4ICs0NDUsNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yKHZvaWQpCiB7Ci0JdW5zaWduZWQgaW50IGk7Ci0JY29uc3QgdW5zaWduZWQgaW50IGZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCWNvbnN0IHVuc2lnbmVkIGludCBmbGFzaGJhc2UgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJY29uc3QgdTggZmxhc2hfZXNlbCA9IDE7CiAKIAkvKgpAQCAtNDUwLDExICs0NTMsOSBAQAogCSAqIHNvIHRoYXQgZmxhc2ggY2FuIGJlIGVyYXNlZCBwcm9wZXJseS4KIAkgKi8KIAotCS8qIEludmFsaWRhdGUgYW55IHJlbWFpbmluZyBsaW5lcyBvZiB0aGUgZmxhc2ggZnJvbSBjYWNoZXMuICovCi0JZm9yIChpID0gMDsgaSA8IDI1NioxMDI0KjEwMjQ7IGkrPTMyKSB7Ci0JCWFzbSB2b2xhdGlsZSAoImRjYmkgJTAsJTEiOiA6ICJiIiAoZmxhc2hiYXNlKSwgInIiIChpKSk7Ci0JCWFzbSB2b2xhdGlsZSAoImljYmkgJTAsJTEiOiA6ICJiIiAoZmxhc2hiYXNlKSwgInIiIChpKSk7Ci0JfQorCS8qIEZsdXNoIGQtY2FjaGUgYW5kIGludmFsaWRhdGUgaS1jYWNoZSBvZiBhbnkgRkxBU0ggZGF0YSAqLworICAgICAgICBmbHVzaF9kY2FjaGUoKTsKKyAgICAgICAgaW52YWxpZGF0ZV9pY2FjaGUoKTsKIAogCS8qIGludmFsaWRhdGUgZXhpc3RpbmcgVExCIGVudHJ5IGZvciBmbGFzaCArIHByb21qZXQgKi8KIAlkaXNhYmxlX3RsYihmbGFzaF9lc2VsKTsKQEAgLTYxMCw3ICs2MTEsNyBAQAogCiBpbnQgaXNfc2F0YV9zdXBwb3J0ZWQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IHNkcnMyX2lvX3NlbCA9CiAJCShndXItPnBvcmRldnNyICYgTVBDODV4eF9QT1JERVZTUl9TUkRTMl9JT19TRUwpID4+IDI3OwpAQCAtNjIwLDYgKzYyMSw0NSBAQAogCXJldHVybiAxOwogfQogCitpbnQgYm9hcmRfZXRoX2luaXQoYmRfdCAqYmlzKQoreworI2lmZGVmIENPTkZJR19UU0VDX0VORVQKKwlzdHJ1Y3QgdHNlY19pbmZvX3N0cnVjdCB0c2VjX2luZm9bMl07CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CisJaW50IG51bSA9IDA7CisJdWludCBzZHJzMl9pb19zZWwgPQorCQkoZ3VyLT5wb3JkZXZzciAmIE1QQzg1eHhfUE9SREVWU1JfU1JEUzJfSU9fU0VMKSA+PiAyNzsKKworI2lmZGVmIENPTkZJR19UU0VDMQorCVNFVF9TVERfVFNFQ19JTkZPKHRzZWNfaW5mb1tudW1dLCAxKTsKKwlpZiAoKHNkcnMyX2lvX3NlbCA9PSA0KSB8fCAoc2RyczJfaW9fc2VsID09IDYpKSB7CisJCXRzZWNfaW5mb1tudW1dLnBoeWFkZHIgPSAwOworCQl0c2VjX2luZm9bbnVtXS5mbGFncyB8PSBUU0VDX1NHTUlJOworCX0KKwludW0rKzsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19UU0VDMworCVNFVF9TVERfVFNFQ19JTkZPKHRzZWNfaW5mb1tudW1dLCAzKTsKKwlpZiAoc2RyczJfaW9fc2VsID09IDQpIHsKKwkJdHNlY19pbmZvW251bV0ucGh5YWRkciA9IDE7CisJCXRzZWNfaW5mb1tudW1dLmZsYWdzIHw9IFRTRUNfU0dNSUk7CisJfQorCW51bSsrOworI2VuZGlmCisKKwlpZiAoIW51bSkgeworCQlwcmludGYoIk5vIFRTRUNzIGluaXRpYWxpemVkXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKChzZHJzMl9pb19zZWwgPT0gNCkgfHwgKHNkcnMyX2lvX3NlbCA9PSA2KSkKKwkJZnNsX3NnbWlpX3Jpc2VyX2luaXQodHNlY19pbmZvLCBudW0pOworCisJdHNlY19ldGhfaW5pdChiaXMsIHRzZWNfaW5mbywgbnVtKTsKKyNlbmRpZgorCXJldHVybiBwY2lfZXRoX2luaXQoYmlzKTsKK30KKwogI2lmIGRlZmluZWQoQ09ORklHX09GX0JPQVJEX1NFVFVQKQogdm9pZAogZnRfYm9hcmRfc2V0dXAodm9pZCAqYmxvYiwgYmRfdCAqYmQpCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1MzZkcy90bGIuYwppbmRleCAyOGE5ZmE4Li5lYmY0MWNlIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODUzNmRzL3RsYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTM2ZHMvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTQ3LDIzICs0NywyMyBAQAogCiAJLyogVExCIDEgKi8KIAkvKiAqSSpHKiAtIENDU1JCQVIgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl8xTSwgMSksCiAKIAkvKiBXKipHKiAtIEZsYXNoL3Byb21qZXQsIGxvY2FsYnVzICovCiAJLyogVGhpcyB3aWxsIGJlIGNoYW5nZWQgdG8gKkkqRyogYWZ0ZXIgcmVsb2NhdGlvbiB0byBSQU0uICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX1d8TUFTMl9HLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgIE1BUzNfU1h8TUFTM19TUiwgTUFTMl9XfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCiAJLyogKkkqRyogLSBQQ0kgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzFHLCAxKSwKIAogCS8qICpJKkcqIC0gUENJIEkvTyAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfSU9fUEhZUywgQ0ZHX1BDSTFfSU9fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZLLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy9kZHIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL2Rkci5jCmluZGV4IDQ1MzcyZjQuLjc4NTA3OTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL2Rkci5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL2Rkci5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8aTJjLmg+CiAKICNpbmNsdWRlIDxhc20vZnNsX2Rkcl9zZHJhbS5oPgorI2luY2x1ZGUgPGFzbS9mc2xfZGRyX2RpbW1fcGFyYW1zLmg+CiAKIHN0YXRpYyB2b2lkCiBnZXRfc3BkKGRkcjFfc3BkX2VlcHJvbV90ICpzcGQsIHVuc2lnbmVkIGNoYXIgaTJjX2FkZHJlc3MpCkBAIC00MCw3ICs0MSw5IEBACiAJfQogfQogCi12b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywgdW5zaWduZWQgaW50IGN0cmxfbnVtKQordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgQ1BPOgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDBhZHMvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy9sYXcuYwppbmRleCAzYjhiZDA1Li43ZGQ4ZjI5IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy9sYXcuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy9sYXcuYwpAQCAtNDYsMTMgKzQ2LDEzIEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzEyOE0sIExBV19UUkdUX0lGX0REUiksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9ERFIpLAogI2VuZGlmCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKIAkvKiBUaGlzIGlzIG5vdCBzbyBtdWNoIHRoZSBTRFJBTSBtYXAgYXMgaXQgaXMgdGhlIHdob2xlIGxvY2FsYnVzIG1hcC4gKi8KLQlTRVRfTEFXKENGR19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1JJT19NRU1fQkFTRSwgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDBhZHMvbXBjODU0MGFkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDBhZHMvbXBjODU0MGFkcy5jCmluZGV4IDAwNWU0ZDkuLjdkY2NkMzcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL21wYzg1NDBhZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MGFkcy9tcGM4NTQwYWRzLmMKQEAgLTcxLDcgKzcxLDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9ETEwpCiAJewotCSAgICB2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCSAgICB2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAkgICAgdWludCB0ZW1wX2RkcmRsbCA9IDA7CiAKIAkgICAgLyoKQEAgLTExNiw4ICsxMTYsOCBAQAogdm9pZAogbG9jYWxfYnVzX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfaHo7CkBAIC0xMzcsMTAgKzEzNywxMCBAQAogCWxiY19oeiA9IHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDEwMDAwMDAgLyBjbGtkaXY7CiAKIAlpZiAobGJjX2h6IDwgNjYpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSIHwgMHg4MDAwMDAwMDsJLyogRExMIEJ5cGFzcyAqLworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSIHwgMHg4MDAwMDAwMDsJLyogRExMIEJ5cGFzcyAqLwogCiAJfSBlbHNlIGlmIChsYmNfaHogPj0gMTMzKSB7Ci0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOyAvKiBETEwgRW5hYmxlZCAqLwogCiAJfSBlbHNlIHsKIAkJLyoKQEAgLTE1NSw3ICsxNTUsNyBAQAogCQkJbGJjLT5sY3JyID0gMHgxMDAwMDAwNDsKIAkJfQogCi0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOyAvKiBETEwgRW5hYmxlZCAqLwogCQl1ZGVsYXkoMjAwKTsKIAogCQkvKgpAQCAtMTc2LDUyICsxNzYsNTIgQEAKIHZvaWQKIHNkcmFtX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ0ZHX0xCQ19TRFJBTV9CQVNFOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRTsKIAogCXB1dHMoIiAgICBTRFJBTTogIik7Ci0JcHJpbnRfc2l6ZSAoQ0ZHX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOworCXByaW50X3NpemUgKENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CiAKIAkvKgogCSAqIFNldHVwIFNEUkFNIEJhc2UgYW5kIE9wdGlvbiBSZWdpc3RlcnMKIAkgKi8KLQlsYmMtPm9yMiA9IENGR19PUjJfUFJFTElNOwotCWxiYy0+YnIyID0gQ0ZHX0JSMl9QUkVMSU07Ci0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOworCWxiYy0+b3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCWxiYy0+YnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOworCWxiYy0+bGJjciA9IENPTkZJR19TWVNfTEJDX0xCQ1I7CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5sc3J0ID0gQ0ZHX0xCQ19MU1JUOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOworCWxiYy0+bHNydCA9IENPTkZJR19TWVNfTEJDX0xTUlQ7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOwogCWFzbSgic3luYyIpOwogCiAJLyoKIAkgKiBDb25maWd1cmUgdGhlIFNEUkFNIGNvbnRyb2xsZXIuCiAJICovCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMTsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMTsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CiAJdWRlbGF5KDEwMCk7CiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8yOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yOwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzM7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzM7CiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwogCXVkZWxheSgxMDApOwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNDsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNDsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CiAJdWRlbGF5KDEwMCk7CiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl81OworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl81OwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTIzNCwxNSArMjM0LDE1IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7Ci0gICNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENGR19NUEM4NXh4X0REUl9BRERSKTsKKyAgI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JZGRyLT50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWRkci0+dGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlkZHItPnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJZGRyLT5jczBfYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWRkci0+Y3MwX2NvbmZpZyA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogICAgICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAlkZHItPmVycl9kaXNhYmxlID0gMHgwMDAwMDAwRDsKIAlkZHItPmVycl9zYmUgPSAweDAwZmYwMDAwOwpAQCAtMjUxLDE0ICsyNTEsMTQgQEAKIAl1ZGVsYXkoNTAwKTsKICAgICAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJLyogRW5hYmxlIEVDQyBjaGVja2luZyAqLwotCWRkci0+c2RyYW1fY2ZnID0gKENGR19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOworCWRkci0+c2RyYW1fY2ZnID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKICAgICAjZWxzZQotCWRkci0+c2RyYW1fY2ZnID0gQ0ZHX0REUl9DT05UUk9MOworCWRkci0+c2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKICAgICAjZW5kaWYKIAlhc20oInN5bmM7IGlzeW5jOyBtc3luYyIpOwogCXVkZWxheSg1MDApOwogICAjZW5kaWYKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9CiAjZW5kaWYJLyogIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pICovCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQwYWRzL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDBhZHMvdGxiLmMKaW5kZXggNGZlMjg2Mi4uMmVjM2NjYyAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDBhZHMvdGxiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDBhZHMvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTQ2LDcgKzQ2LDcgQEAKIAkgKiAweGZmMDAwMDAwCTE2TQlGTEFTSAogCSAqIE91dCBvZiByZXNldCB0aGlzIGVudHJ5IGlzIG9ubHkgNEsuCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl8xNk0sIDEpLAogCkBAIC01NCw3ICs1NCw3IEBACiAJICogVExCIDE6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUywgQ0ZHX1BDSTFfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNjIsNyArNjIsNyBAQAogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDkwMDAwMDAwCTI1Nk0JUENJMSBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzAsNyArNzAsNyBAQAogCSAqIFRMQiAzOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGMwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UsIENGR19SSU9fTUVNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTc4LDcgKzc4LDcgQEAKIAkgKiBUTEIgNDoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhkMDAwMDAwMAkyNTZNCVJhcGlkIElPIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTg3LDcgKzg3LDcgQEAKIAkgKiAweGUwMDBfMDAwMAkxTQlDQ1NSQkFSCiAJICogMHhlMjAwXzAwMDAJMTZNCVBDSTEgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC05NSw3ICs5NSw3IEBACiAJICogVExCIDY6CTY0TQlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAJICogMHhmMDAwXzAwMDAJNjRNCUxCQyBTRFJBTQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBDRkdfTEJDX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTEwMyw3ICsxMDMsNyBAQAogCSAqIFRMQiA3OgkxNksJTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ZjgwMDAwMDAJMTZLCUJDU1IgcmVnaXN0ZXJzCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQkNTUiwgQ0ZHX0JDU1IsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0JDU1IsIENPTkZJR19TWVNfQkNTUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDcsIEJPT0tFX1BBR0VTWl8xNkssIDEpLAogCkBAIC0xMTcsMTEgKzExNywxMSBAQAogCSAqIExpa2VseSBpdCBuZWVkcyB0byBiZSBpbmNyZWFzZWQgYnkgdHdvIGZvciB0aGVzZSBlbnRyaWVzLgogCSAqLwogI2Vycm9yKCJVcGRhdGUgdGhlIG51bWJlciBvZiB0YWJsZSBlbnRyaWVzIGluIHRsYjFfZW50cnkiKQotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgOCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDksIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy9kZHIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQxY2RzL2Rkci5jCmluZGV4IDExY2U1N2QuLmM4NGE2Y2IgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQxY2RzL2Rkci5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQxY2RzL2Rkci5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8aTJjLmg+CiAKICNpbmNsdWRlIDxhc20vZnNsX2Rkcl9zZHJhbS5oPgorI2luY2x1ZGUgPGFzbS9mc2xfZGRyX2RpbW1fcGFyYW1zLmg+CiAKIHN0YXRpYyB2b2lkCiBnZXRfc3BkKGRkcjFfc3BkX2VlcHJvbV90ICpzcGQsIHVuc2lnbmVkIGNoYXIgaTJjX2FkZHJlc3MpCkBAIC0zNiw3ICszNyw5IEBACiAJfQogfQogCi12b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywgdW5zaWduZWQgaW50IGN0cmxfbnVtKQordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgY2xvY2sgYWRqdXN0OgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy9sYXcuYwppbmRleCBmYmYyYmRjLi44ZTNkZTIyIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy9sYXcuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy9sYXcuYwpAQCAtNDcsMTIgKzQ3LDEyIEBACiAgKi8KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCiAJLyogTEJDIHdpbmRvdyAtIG1hcHMgMjU2TSAweGYwMDAwMDAwIC0+IDB4ZmZmZmZmZmYgKi8KLQlTRVRfTEFXKENGR19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvbXBjODU0MWNkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvbXBjODU0MWNkcy5jCmluZGV4IGRlM2E3OTEuLjdjMzVjMzUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQxY2RzL21wYzg1NDFjZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy9tcGM4NTQxY2RzLmMKQEAgLTIwMCw3ICsyMDAsNyBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAJLyogUENJIHNsb3QgaW4gVVNFUiBiaXRzIENTUls2OjddIGJ5IGNvbnZlbnRpb24uICovCiAJdWludCBwY2lfc2xvdCA9IGdldF9wY2lfc2xvdCAoKTsKQEAgLTI1OCw3ICsyNTgsNyBAQAogCQkgKiAgICBPdmVycmlkZSBETEwgPSAxLCBDb3Vyc2UgQWRqID0gMSwgVGFwIFNlbGVjdCA9IDAKIAkJICovCiAKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAKIAkJZ3VyLT5kZHJkbGxjciA9IDB4ODEwMDAwMDA7CiAJCWFzbSgic3luYztpc3luYzttc3luYyIpOwpAQCAtMjkwLDggKzI5MCw4IEBACiB2b2lkCiBsb2NhbF9idXNfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19oejsKQEAgLTMzNyw1NiArMzM3LDU2IEBACiB2b2lkCiBzZHJhbV9pbml0KHZvaWQpCiB7Ci0jaWYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSMl9QUkVMSU0pCiAKIAl1aW50IGlkeDsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ0ZHX0xCQ19TRFJBTV9CQVNFOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRTsKIAl1aW50IGNwdV9ib2FyZF9yZXY7CiAJdWludCBsc2Rtcl9jb21tb247CiAKIAlwdXRzKCIgICAgU0RSQU06ICIpOwogCi0JcHJpbnRfc2l6ZSAoQ0ZHX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOworCXByaW50X3NpemUgKENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CiAKIAkvKgogCSAqIFNldHVwIFNEUkFNIEJhc2UgYW5kIE9wdGlvbiBSZWdpc3RlcnMKIAkgKi8KLQlsYmMtPm9yMiA9IENGR19PUjJfUFJFTElNOworCWxiYy0+b3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOwogCWFzbSgibXN5bmMiKTsKIAotCWxiYy0+YnIyID0gQ0ZHX0JSMl9QUkVMSU07CisJbGJjLT5icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOworCWxiYy0+bGJjciA9IENPTkZJR19TWVNfTEJDX0xCQ1I7CiAJYXNtKCJtc3luYyIpOwogCiAKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7Ci0JbGJjLT5tcnRwciA9IENGR19MQkNfTVJUUFI7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJYXNtKCJtc3luYyIpOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgd2hpY2ggYWRkcmVzcyBsaW5lcyB0byB1c2UgYmFlZCBvbiBDUFUgYm9hcmQgcmV2LgogCSAqLwogCWNwdV9ib2FyZF9yZXYgPSBnZXRfY3B1X2JvYXJkX3JldmlzaW9uKCk7Ci0JbHNkbXJfY29tbW9uID0gQ0ZHX0xCQ19MU0RNUl9DT01NT047CisJbHNkbXJfY29tbW9uID0gQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OOwogCWlmIChjcHVfYm9hcmRfcmV2ID09IE1QQzg1WFhfQ1BVX0JPQVJEX1JFVl8xXzApIHsKLQkJbHNkbXJfY29tbW9uIHw9IENGR19MQkNfTFNETVJfQlNNQTE2MTc7CisJCWxzZG1yX2NvbW1vbiB8PSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNzsKIAl9IGVsc2UgaWYgKGNwdV9ib2FyZF9yZXYgPT0gTVBDODVYWF9DUFVfQk9BUkRfUkVWXzFfMSkgewotCQlsc2Rtcl9jb21tb24gfD0gQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNjsKKwkJbHNkbXJfY29tbW9uIHw9IENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2OwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIEFzc3VtZSBzb21ldGhpbmcgdW5hYmxlIHRvIGlkZW50aWZ5IGl0c2VsZiBpcwogCQkgKiByZWFsbHkgb2xkLCBhbmQgbGlrZWx5IGhhcyBsaW5lcyAxNi8xNyBtYXBwZWQuCiAJCSAqLwotCQlsc2Rtcl9jb21tb24gfD0gQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNzsKKwkJbHNkbXJfY29tbW9uIHw9IENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNjE3OwogCX0KIAogCS8qCiAJICogSXNzdWUgUFJFQ0hBUkdFIEFMTCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTDsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTM5Niw3ICszOTYsNyBAQAogCSAqIElzc3VlIDggQVVUTyBSRUZSRVNIIGNvbW1hbmRzLgogCSAqLwogCWZvciAoaWR4ID0gMDsgaWR4IDwgODsgaWR4KyspIHsKLQkJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIOworCQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIOwogCQlhc20oInN5bmM7bXN5bmMiKTsKIAkJKnNkcmFtX2FkZHIgPSAweGZmOwogCQlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTQwNiw3ICs0MDYsNyBAQAogCS8qCiAJICogSXNzdWUgOCBNT0RFLXNldCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX01SVzsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTQxNSw3ICs0MTUsNyBAQAogCS8qCiAJICogSXNzdWUgTk9STUFMIE9QIGNvbW1hbmQuCiAJICovCi0JbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfTk9STUFMOworCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUw7CiAJYXNtKCJzeW5jO21zeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDFjZHMvdGxiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy90bGIuYwppbmRleCBjNTQzNGEwLi5iZjk1N2MwIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy90bGIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0MWNkcy90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDYsNyArNDYsNyBAQAogCSAqIDB4ZmYwMDAwMDAJMTZNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAKQEAgLTU0LDcgKzU0LDcgQEAKIAkgKiBUTEIgMToJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC02Miw3ICs2Miw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03MCw3ICs3MCw3IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YTAwMDAwMDAJMjU2TQlQQ0kyIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMl9NRU1fUEhZUywgQ0ZHX1BDSTJfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzgsNyArNzgsNyBAQAogCSAqIFRMQiA0OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGIwMDAwMDAwCTI1Nk0JUENJMiBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtODgsNyArODgsNyBAQAogCSAqIDB4ZTIwMF8wMDAwCTE2TQlQQ0kxIElPCiAJICogMHhlMzAwXzAwMDAJMTZNCVBDSTIgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC05Niw3ICs5Niw3IEBACiAJICogVExCIDY6CTY0TQlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAJICogMHhmMDAwXzAwMDAJNjRNCUxCQyBTRFJBTQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBDRkdfTEJDX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvZGRyLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL2Rkci5jCmluZGV4IGJiYjVlZTIuLjM0Zjg0YTIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvZGRyLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy9kZHIuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogCiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9kaW1tX3BhcmFtcy5oPgogCiBzdGF0aWMgdm9pZAogZ2V0X3NwZChkZHIyX3NwZF9lZXByb21fdCAqc3BkLCB1bnNpZ25lZCBjaGFyIGkyY19hZGRyZXNzKQpAQCAtMzcsNyArMzgsOSBAQAogCX0KIH0KIAotdm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsIHVuc2lnbmVkIGludCBjdHJsX251bSkKK3ZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLAorCQkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAorCQkJCXVuc2lnbmVkIGludCBjdHJsX251bSkKIHsKIAkvKgogCSAqIEZhY3RvcnMgdG8gY29uc2lkZXIgZm9yIGNsb2NrIGFkanVzdDoKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL2xhdy5jCmluZGV4IDU0Y2YzNmIuLjMxN2JhMjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvbGF3LmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy9sYXcuYwpAQCAtMjgsMTUgKzI4LDE1IEBACiAjaW5jbHVkZSA8YXNtL21tdS5oPgogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfTEJDX05PTkNBQ0hFX0JBU0UsIExBV0FSX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0lFMV9NRU1fUEhZUywgTEFXQVJfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSUUxX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8xKSwKLQlTRVRfTEFXKENGR19QQ0lFMl9NRU1fUEhZUywgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAotCVNFVF9MQVcoQ0ZHX1BDSUUyX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19OT05DQUNIRV9CQVNFLCBMQVdBUl9TSVpFXzEyOE0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTLCBMQVdBUl9TSVpFXzI1Nk0sIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTJfTUVNX1BIWVMsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTJfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAogCS8qIGNvbnRhaW5zIGJvdGggUENJRTMgTUVNICYgSU8gc3BhY2UgKi8KLQlTRVRfTEFXKENGR19QQ0lFM19NRU1fUEhZUywgTEFXX1NJWkVfNE0sIExBV19UUkdUX0lGX1BDSUVfMyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTLCBMQVdfU0laRV80TSwgTEFXX1RSR1RfSUZfUENJRV8zKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL21wYzg1NDRkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy9tcGM4NTQ0ZHMuYwppbmRleCBlYWY2ZmEzLi44MjYxODBjIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL21wYzg1NDRkcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvbXBjODU0NGRzLmMKQEAgLTQ0LDkgKzQ0LDkgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRUNNX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0VDTV9BRERSKTsKIAogCWlmICgodWludCkmZ3VyLT5wb3JwbGxzciAhPSAweGUwMGUwMDAwKSB7CiAJCXByaW50ZigiaW1tYXAgc2l6ZSBlcnJvciAlbHhcbiIsKHVsb25nKSZndXItPnBvcnBsbHNyKTsKQEAgLTEwOCw3ICsxMDgsNyBAQAogdm9pZAogcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODV4eF9QT1JERVZTUl9JT19TRUwpID4+IDE5OwogCXVpbnQgaG9zdF9hZ2VudCA9IChndXItPnBvcmJtc3IgJiBNUEM4NXh4X1BPUkJNU1JfSEEpID4+IDE2OwpAQCAtMTI1LDcgKzEyNSw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTMKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFM19BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFM19BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llM19ob3NlOwogCWludCBwY2llX2VwID0gKGhvc3RfYWdlbnQgPT0gMSk7CkBAIC0xNDMsMzIgKzE0MywzMiBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJRTNfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lFM19NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFM19NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFM19JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUzX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKLSNpZmRlZiBDRkdfUENJRTNfTUVNX0JBU0UyCisjaWZkZWYgQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRTIKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLAotCQkJICAgICAgIENGR19QQ0lFM19NRU1fQkFTRTIsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX01FTV9QSFlTMiwKLQkJCSAgICAgICBDRkdfUENJRTNfTUVNX1NJWkUyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX1NJWkUyLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50Kys7CiAjZW5kaWYKQEAgLTE4NSw3ICsxODUsNyBAQAogCQkgKiBBY3RpdmF0ZSBVTEkxNTc1IGxlZ2FjeSBjaGlwIGJ5IHBlcmZvcm1pbmcgYSBmYWtlCiAJCSAqIG1lbW9yeSBhY2Nlc3MuICBOZWVkZWQgdG8gbWFrZSBVTEkgUlRDIHdvcmsuCiAJCSAqLwotCQlpbl9iZTMyKCh1MzIgKilDRkdfUENJRTNfTUVNX0JBU0UpOworCQlpbl9iZTMyKCh1MzIgKilDT05GSUdfU1lTX1BDSUUzX01FTV9CQVNFKTsKIAl9IGVsc2UgewogCQlwcmludGYgKCIgICAgUENJRTM6IGRpc2FibGVkXG4iKTsKIAl9CkBAIC0xOTcsNyArMTk3LDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0lFMQogIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCWludCBwY2llX2VwID0gKGhvc3RfYWdlbnQgPT0gNSk7CkBAIC0yMTUsMzIgKzIxNSwzMiBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKLSNpZmRlZiBDRkdfUENJRTFfTUVNX0JBU0UyCisjaWZkZWYgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRTIKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fQkFTRTIsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9QSFlTMiwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1NJWkUyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUyLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50Kys7CiAjZW5kaWYKQEAgLTI2NSw3ICsyNjUsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUyCiAgewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUyX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSUUyX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUyX2hvc2U7CiAJaW50IHBjaWVfZXAgPSAoaG9zdF9hZ2VudCA9PSAzKTsKQEAgLTI4MywzMiArMjgzLDMyIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0lFMl9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTJfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJRTJfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTJfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTJfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUyX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTJfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwotI2lmZGVmIENGR19QQ0lFMl9NRU1fQkFTRTIKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUUyX01FTV9CQVNFMgogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDMsCi0JCQkgICAgICAgQ0ZHX1BDSUUyX01FTV9CQVNFMiwKLQkJCSAgICAgICBDRkdfUENJRTJfTUVNX1BIWVMyLAotCQkJICAgICAgIENGR19QQ0lFMl9NRU1fU0laRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRTIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUzIsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMl9NRU1fU0laRTIsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCQlob3NlLT5yZWdpb25fY291bnQrKzsKICNlbmRpZgpAQCAtMzMyLDcgKzMzMiw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJMQogewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2kxX2hvc2U7CiAKQEAgLTM1NiwzMSArMzU2LDMxIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKLSNpZmRlZiBDRkdfUENJRTNfTUVNX0JBU0UyCisjaWZkZWYgQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRTIKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAzLAotCQkJICAgICAgIENGR19QQ0lFM19NRU1fQkFTRTIsCi0JCQkgICAgICAgQ0ZHX1BDSUUzX01FTV9QSFlTMiwKLQkJCSAgICAgICBDRkdfUENJRTNfTUVNX1NJWkUyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMyLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTNfTUVNX1NJWkUyLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50Kys7CiAjZW5kaWYKQEAgLTQ3MCw3ICs0NzAsNyBAQAogewogI2lmZGVmIENPTkZJR19UU0VDX0VORVQKIAlzdHJ1Y3QgdHNlY19pbmZvX3N0cnVjdCB0c2VjX2luZm9bMl07Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODV4eF9QT1JERVZTUl9JT19TRUwpID4+IDE5OwogCWludCBudW0gPSAwOwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDRkcy90bGIuYwppbmRleCA0MGUwNDk5Li5jNzQ0MmIyIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0NGRzL3RsYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ0ZHMvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAJLyoKQEAgLTQ1LDI4ICs0NSwyOCBAQAogCSAqIDB4ZmMwMDAwMDAJNjRNCUNvdmVycyBGTEFTSCBhdCAweEZFODAwMDAwIGFuZCAweEZGODAwMDAwCiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19CT09UX0JMT0NLLCBDRkdfQk9PVF9CTE9DSywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQk9PVF9CTE9DSywgQ09ORklHX1NZU19CT09UX0JMT0NLLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAJLyoKIAkgKiBUTEIgMToJMUcJTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMUcJUENJRSAgOCw5LGEsYgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSUVfUEhZUywgQ0ZHX1BDSUVfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJRV9QSFlTLCBDT05GSUdfU1lTX1BDSUVfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8xRywgMSksCiAKIAkvKgogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lfUEhZUywgQ0ZHX1BDSV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lfUEhZUywgQ09ORklHX1NZU19QQ0lfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIAogCS8qCiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzUsNyArNzUsNyBAQAogCSAqIDB4ZTAwMF8wMDAwCTFNCUNDU1JCQVIKIAkgKiAweGUxMDBfMDAwMAkyNTVNCVBDSSBJTyByYW5nZQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTgzLDcgKzgzLDcgQEAKIAkgKiBUTEIgNToJNjRNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGY4MDAwMDAwCTY0TQlQSVhJUyAweEY4MDAwMDAwIC0gMHhGQkZGRkZGRgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19OT05DQUNIRV9CQVNFLCBDRkdfTEJDX05PTkNBQ0hFX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19OT05DQUNIRV9CQVNFLCBDT05GSUdfU1lTX0xCQ19OT05DQUNIRV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiB9OwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvZGRyLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy9kZHIuYwppbmRleCBmMDdkNzQ2Li5hYjY0ZmE4IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy9kZHIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy9kZHIuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogCiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9kaW1tX3BhcmFtcy5oPgogCiBzdGF0aWMgdm9pZAogZ2V0X3NwZChkZHIyX3NwZF9lZXByb21fdCAqc3BkLCB1bnNpZ25lZCBjaGFyIGkyY19hZGRyZXNzKQpAQCAtMzcsNyArMzgsOSBAQAogCX0KIH0KIAotdm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsIHVuc2lnbmVkIGludCBjdHJsX251bSkKK3ZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLAorCQkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAorCQkJCXVuc2lnbmVkIGludCBjdHJsX251bSkKIHsKIAkvKgogCSAqIEZhY3RvcnMgdG8gY29uc2lkZXIgZm9yIGNsb2NrIGFkanVzdDoKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ4Y2RzL2xhdy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbGF3LmMKaW5kZXggMzRiOWQxYy4uOTg3NDhhYSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbGF3LmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbGF3LmMKQEAgLTUxLDIyICs1MSwyMiBAQAogICovCiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7Ci0jaWZkZWYgQ0ZHX1BDSTFfTUVNX1BIWVMKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSSksCisjaWZkZWYgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSSksCiAjZW5kaWYKLSNpZmRlZiBDRkdfUENJMl9NRU1fUEhZUwotCVNFVF9MQVcoQ0ZHX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKLQlTRVRfTEFXKENGR19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisjaWZkZWYgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJXzIpLAogI2VuZGlmCi0jaWZkZWYgQ0ZHX1BDSUUxX01FTV9QSFlTCi0JU0VUX0xBVyhDRkdfUENJRTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSUVfMSksCisjaWZkZWYgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUworCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSUVfMSksCiAjZW5kaWYKIAkvKiBMQkMgd2luZG93IC0gbWFwcyAyNTZNIDB4ZjAwMDAwMDAgLT4gMHhmZmZmZmZmZiAqLwotCVNFVF9MQVcoQ0ZHX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAotI2lmZGVmIENGR19SSU9fTUVNX1BIWVMKLQlTRVRfTEFXKENGR19SSU9fTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorI2lmZGVmIENPTkZJR19TWVNfUklPX01FTV9QSFlTCisJU0VUX0xBVyhDT05GSUdfU1lTX1JJT19NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbXBjODU0OGNkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvbXBjODU0OGNkcy5jCmluZGV4IDg0ZDM4NTAuLjg3NTYyOGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTQ4Y2RzL21wYzg1NDhjZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy9tcGM4NTQ4Y2RzLmMKQEAgLTQ5LDggKzQ5LDggQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKLQl2b2xhdGlsZSBjY3NyX2xvY2FsX2VjbV90ICplY20gPSAodm9pZCAqKShDRkdfTVBDODV4eF9FQ01fQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0VDTV9BRERSKTsKIAogCS8qIFBDSSBzbG90IGluIFVTRVIgYml0cyBDU1JbNjo3XSBieSBjb252ZW50aW9uLiAqLwogCXVpbnQgcGNpX3Nsb3QgPSBnZXRfcGNpX3Nsb3QgKCk7CkBAIC0xMDYsNyArMTA2LDcgQEAKIAkJICogICAgT3ZlcnJpZGUgRExMID0gMSwgQ291cnNlIEFkaiA9IDEsIFRhcCBTZWxlY3QgPSAwCiAJCSAqLwogCi0JCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAJCWd1ci0+ZGRyZGxsY3IgPSAweDgxMDAwMDAwOwogCQlhc20oInN5bmM7aXN5bmM7bXN5bmMiKTsKQEAgLTE0MCw4ICsxNDAsOCBAQAogdm9pZAogbG9jYWxfYnVzX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfaHo7CkBAIC0xNzQsNDYgKzE3NCw0NiBAQAogdm9pZAogc2RyYW1faW5pdCh2b2lkKQogewotI2lmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKQogCiAJdWludCBpZHg7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOwotCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNGR19MQkNfU0RSQU1fQkFTRTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOworCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0U7CiAJdWludCBjcHVfYm9hcmRfcmV2OwogCXVpbnQgbHNkbXJfY29tbW9uOwogCiAJcHV0cygiICAgIFNEUkFNOiAiKTsKIAotCXByaW50X3NpemUgKENGR19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKKwlwcmludF9zaXplIChDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOwogCiAJLyoKIAkgKiBTZXR1cCBTRFJBTSBCYXNlIGFuZCBPcHRpb24gUmVnaXN0ZXJzCiAJICovCi0JbGJjLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsKKwlsYmMtPm9yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmJyMiA9IENGR19CUjJfUFJFTElNOworCWxiYy0+YnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCWFzbSgibXN5bmMiKTsKIAotCWxiYy0+bGJjciA9IENGR19MQkNfTEJDUjsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOwogCWFzbSgibXN5bmMiKTsKIAogCi0JbGJjLT5sc3J0ID0gQ0ZHX0xCQ19MU1JUOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOworCWxiYy0+bHNydCA9IENPTkZJR19TWVNfTEJDX0xTUlQ7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOwogCWFzbSgibXN5bmMiKTsKIAogCS8qCiAJICogTVBDODU0OCB1c2VzICJuZXciIDE1LTE2IHN0eWxlIGFkZHJlc3NpbmcuCiAJICovCiAJY3B1X2JvYXJkX3JldiA9IGdldF9jcHVfYm9hcmRfcmV2aXNpb24oKTsKLQlsc2Rtcl9jb21tb24gPSBDRkdfTEJDX0xTRE1SX0NPTU1PTjsKLQlsc2Rtcl9jb21tb24gfD0gQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNjsKKwlsc2Rtcl9jb21tb24gPSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT047CisJbHNkbXJfY29tbW9uIHw9IENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2OwogCiAJLyoKIAkgKiBJc3N1ZSBQUkVDSEFSR0UgQUxMIGNvbW1hbmQuCiAJICovCi0JbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfUENIQUxMOworCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEw7CiAJYXNtKCJzeW5jO21zeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjIzLDcgKzIyMyw3IEBACiAJICogSXNzdWUgOCBBVVRPIFJFRlJFU0ggY29tbWFuZHMuCiAJICovCiAJZm9yIChpZHggPSAwOyBpZHggPCA4OyBpZHgrKykgewotCQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0g7CisJCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0g7CiAJCWFzbSgic3luYzttc3luYyIpOwogCQkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjMzLDcgKzIzMyw3IEBACiAJLyoKIAkgKiBJc3N1ZSA4IE1PREUtc2V0IGNvbW1hbmQuCiAJICovCi0JbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENGR19MQkNfTFNETVJfT1BfTVJXOworCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlc7CiAJYXNtKCJzeW5jO21zeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwpAQCAtMjQyLDcgKzI0Miw3IEBACiAJLyoKIAkgKiBJc3N1ZSBOT1JNQUwgT1AgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUw7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTDsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yOTAsMTQgKzI5MCwxNCBAQAogdm9pZAogcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgaW9fc2VsID0gKGd1ci0+cG9yZGV2c3IgJiBNUEM4NXh4X1BPUkRFVlNSX0lPX1NFTCkgPj4gMTk7CiAJdWludCBob3N0X2FnZW50ID0gKGd1ci0+cG9yYm1zciAmIE1QQzg1eHhfUE9SQk1TUl9IQSkgPj4gMTY7CiAKIAogI2lmZGVmIENPTkZJR19QQ0kxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0kxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTFfaG9zZTsKIAlzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSAqdGFibGU7CkBAIC0zMjMsMjQgKzMyMywyNCBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKIApAQCAtMzkyLDcgKzM5Miw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTEKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCWludCBwY2llX2VwID0gIChob3N0X2FnZW50ID09IDApIHx8IChob3N0X2FnZW50ID09IDIgKSB8fCAoaG9zdF9hZ2VudCA9PSAzKTsKQEAgLTQxMiwyMyArNDEyLDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTFfSU9fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NDhjZHMvdGxiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy90bGIuYwppbmRleCBhYjk5YWY3Li5lYWIyMTJhIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy90bGIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU0OGNkcy90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNDYsNyArNDYsNyBAQAogCSAqIDB4ZmYwMDAwMDAJMTZNCUZMQVNICiAJICogT3V0IG9mIHJlc2V0IHRoaXMgZW50cnkgaXMgb25seSA0Sy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19CT09UX0JMT0NLLCBDRkdfQk9PVF9CTE9DSywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQk9PVF9CTE9DSywgQ09ORklHX1NZU19CT09UX0JMT0NLLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAKQEAgLTU0LDIyICs1NCwyMiBAQAogCSAqIFRMQiAxOgkxRwlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkxRwlQQ0kxL1BDSUUgIDgsOSxhLGIKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lfUEhZUywgQ0ZHX1BDSV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lfUEhZUywgQ09ORklHX1NZU19QQ0lfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8xRywgMSksCiAKLSNpZmRlZiBDRkdfUklPX01FTV9QSFlTCisjaWZkZWYgQ09ORklHX1NZU19SSU9fTUVNX1BIWVMKIAkvKgogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UsIENGR19SSU9fTUVNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKIAkvKgogCSAqIFRMQiAzOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogI2VuZGlmCkBAIC04MCw3ICs4MCw3IEBACiAJICogMHhlMjEwXzAwMDAJMU0JUENJMiBJTwogCSAqIDB4ZTMwMF8wMDAwCTFNCVBDSWUgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC04OCw3ICs4OCw3IEBACiAJICogVExCIDY6CTY0TQlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAJICogMHhmMDAwXzAwMDAJNjRNCUxCQyBTRFJBTQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19DQUNIRV9CQVNFLCBDRkdfTEJDX0NBQ0hFX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19DQUNIRV9CQVNFLCBDT05GSUdfU1lTX0xCQ19DQUNIRV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTk2LDcgKzk2LDcgQEAKIAkgKiBUTEIgNzoJNjRNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGY4MDAwMDAwCTY0TQlDQURNVVMgcmVnaXN0ZXJzLCByZWxvY2F0ZWQgTDJTUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX05PTkNBQ0hFX0JBU0UsIENGR19MQkNfTk9OQ0FDSEVfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX05PTkNBQ0hFX0JBU0UsIENPTkZJR19TWVNfTEJDX05PTkNBQ0hFX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA3LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy9kZHIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL2Rkci5jCmluZGV4IDExY2U1N2QuLmM4NGE2Y2IgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL2Rkci5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL2Rkci5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8aTJjLmg+CiAKICNpbmNsdWRlIDxhc20vZnNsX2Rkcl9zZHJhbS5oPgorI2luY2x1ZGUgPGFzbS9mc2xfZGRyX2RpbW1fcGFyYW1zLmg+CiAKIHN0YXRpYyB2b2lkCiBnZXRfc3BkKGRkcjFfc3BkX2VlcHJvbV90ICpzcGQsIHVuc2lnbmVkIGNoYXIgaTJjX2FkZHJlc3MpCkBAIC0zNiw3ICszNyw5IEBACiAJfQogfQogCi12b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywgdW5zaWduZWQgaW50IGN0cmxfbnVtKQordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgY2xvY2sgYWRqdXN0OgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NTVjZHMvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy9sYXcuYwppbmRleCBmYmYyYmRjLi44ZTNkZTIyIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy9sYXcuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy9sYXcuYwpAQCAtNDcsMTIgKzQ3LDEyIEBACiAgKi8KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCiAJLyogTEJDIHdpbmRvdyAtIG1hcHMgMjU2TSAweGYwMDAwMDAwIC0+IDB4ZmZmZmZmZmYgKi8KLQlTRVRfTEFXKENGR19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NTVjZHMvbXBjODU1NWNkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NTVjZHMvbXBjODU1NWNkcy5jCmluZGV4IDgyNjA1NmEuLjRjZDI1YjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL21wYzg1NTVjZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU1NWNkcy9tcGM4NTU1Y2RzLmMKQEAgLTE5OCw3ICsxOTgsNyBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAJLyogUENJIHNsb3QgaW4gVVNFUiBiaXRzIENTUls2OjddIGJ5IGNvbnZlbnRpb24uICovCiAJdWludCBwY2lfc2xvdCA9IGdldF9wY2lfc2xvdCAoKTsKQEAgLTI1Niw3ICsyNTYsNyBAQAogCQkgKiAgICBPdmVycmlkZSBETEwgPSAxLCBDb3Vyc2UgQWRqID0gMSwgVGFwIFNlbGVjdCA9IDAKIAkJICovCiAKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAKIAkJZ3VyLT5kZHJkbGxjciA9IDB4ODEwMDAwMDA7CiAJCWFzbSgic3luYztpc3luYzttc3luYyIpOwpAQCAtMjkwLDggKzI5MCw4IEBACiB2b2lkCiBsb2NhbF9idXNfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19oejsKQEAgLTMzNyw1NSArMzM3LDU1IEBACiB2b2lkCiBzZHJhbV9pbml0KHZvaWQpCiB7Ci0jaWYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSMl9QUkVMSU0pCiAKIAl1aW50IGlkeDsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ0ZHX0xCQ19TRFJBTV9CQVNFOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRTsKIAl1aW50IGNwdV9ib2FyZF9yZXY7CiAJdWludCBsc2Rtcl9jb21tb247CiAKIAlwdXRzKCIgICAgU0RSQU06ICIpOwogCi0JcHJpbnRfc2l6ZSAoQ0ZHX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOworCXByaW50X3NpemUgKENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CiAKIAkvKgogCSAqIFNldHVwIFNEUkFNIEJhc2UgYW5kIE9wdGlvbiBSZWdpc3RlcnMKIAkgKi8KLQlsYmMtPm9yMiA9IENGR19PUjJfUFJFTElNOworCWxiYy0+b3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOwogCWFzbSgibXN5bmMiKTsKIAotCWxiYy0+YnIyID0gQ0ZHX0JSMl9QUkVMSU07CisJbGJjLT5icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOworCWxiYy0+bGJjciA9IENPTkZJR19TWVNfTEJDX0xCQ1I7CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5sc3J0ID0gQ0ZHX0xCQ19MU1JUOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOworCWxiYy0+bHNydCA9IENPTkZJR19TWVNfTEJDX0xTUlQ7CisJbGJjLT5tcnRwciA9IENPTkZJR19TWVNfTEJDX01SVFBSOwogCWFzbSgibXN5bmMiKTsKIAogCS8qCiAJICogRGV0ZXJtaW5lIHdoaWNoIGFkZHJlc3MgbGluZXMgdG8gdXNlIGJhZWQgb24gQ1BVIGJvYXJkIHJldi4KIAkgKi8KIAljcHVfYm9hcmRfcmV2ID0gZ2V0X2NwdV9ib2FyZF9yZXZpc2lvbigpOwotCWxzZG1yX2NvbW1vbiA9IENGR19MQkNfTFNETVJfQ09NTU9OOworCWxzZG1yX2NvbW1vbiA9IENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTjsKIAlpZiAoY3B1X2JvYXJkX3JldiA9PSBNUEM4NVhYX0NQVV9CT0FSRF9SRVZfMV8wKSB7Ci0JCWxzZG1yX2NvbW1vbiB8PSBDRkdfTEJDX0xTRE1SX0JTTUExNjE3OworCQlsc2Rtcl9jb21tb24gfD0gQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE2MTc7CiAJfSBlbHNlIGlmIChjcHVfYm9hcmRfcmV2ID09IE1QQzg1WFhfQ1BVX0JPQVJEX1JFVl8xXzEpIHsKLQkJbHNkbXJfY29tbW9uIHw9IENGR19MQkNfTFNETVJfQlNNQTE1MTY7CisJCWxzZG1yX2NvbW1vbiB8PSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNjsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBBc3N1bWUgc29tZXRoaW5nIHVuYWJsZSB0byBpZGVudGlmeSBpdHNlbGYgaXMKIAkJICogcmVhbGx5IG9sZCwgYW5kIGxpa2VseSBoYXMgbGluZXMgMTYvMTcgbWFwcGVkLgogCQkgKi8KLQkJbHNkbXJfY29tbW9uIHw9IENGR19MQkNfTFNETVJfQlNNQTE2MTc7CisJCWxzZG1yX2NvbW1vbiB8PSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNzsKIAl9CiAKIAkvKgogCSAqIElzc3VlIFBSRUNIQVJHRSBBTEwgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEw7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTDsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0zOTUsNyArMzk1LDcgQEAKIAkgKiBJc3N1ZSA4IEFVVE8gUkVGUkVTSCBjb21tYW5kcy4KIAkgKi8KIAlmb3IgKGlkeCA9IDA7IGlkeCA8IDg7IGlkeCsrKSB7Ci0JCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSDsKKwkJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSDsKIAkJYXNtKCJzeW5jO21zeW5jIik7CiAJCSpzZHJhbV9hZGRyID0gMHhmZjsKIAkJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC00MDUsNyArNDA1LDcgQEAKIAkvKgogCSAqIElzc3VlIDggTU9ERS1zZXQgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlc7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVzsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC00MTQsNyArNDE0LDcgQEAKIAkvKgogCSAqIElzc3VlIE5PUk1BTCBPUCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTDsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTU1Y2RzL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NTVjZHMvdGxiLmMKaW5kZXggYzU0MzRhMC4uYmY5NTdjMCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NTVjZHMvdGxiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NTVjZHMvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTQ2LDcgKzQ2LDcgQEAKIAkgKiAweGZmMDAwMDAwCTE2TQlGTEFTSAogCSAqIE91dCBvZiByZXNldCB0aGlzIGVudHJ5IGlzIG9ubHkgNEsuCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl8xNk0sIDEpLAogCkBAIC01NCw3ICs1NCw3IEBACiAJICogVExCIDE6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUywgQ0ZHX1BDSTFfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNjIsNyArNjIsNyBAQAogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDkwMDAwMDAwCTI1Nk0JUENJMSBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzAsNyArNzAsNyBAQAogCSAqIFRMQiAzOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGEwMDAwMDAwCTI1Nk0JUENJMiBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTJfTUVNX1BIWVMsIENGR19QQ0kyX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTc4LDcgKzc4LDcgQEAKIAkgKiBUTEIgNDoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhiMDAwMDAwMAkyNTZNCVBDSTIgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kyX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTg4LDcgKzg4LDcgQEAKIAkgKiAweGUyMDBfMDAwMAkxNk0JUENJMSBJTwogCSAqIDB4ZTMwMF8wMDAwCTE2TQlQQ0kyIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtOTYsNyArOTYsNyBAQAogCSAqIFRMQiA2Ogk2NE0JQ2FjaGVhYmxlLCBub24tZ3VhcmRlZAogCSAqIDB4ZjAwMF8wMDAwCTY0TQlMQkMgU0RSQU0KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19MQkNfU0RSQU1fQkFTRSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy9kZHIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL2Rkci5jCmluZGV4IDQ1MzcyZjQuLjc4NTA3OTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL2Rkci5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL2Rkci5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8aTJjLmg+CiAKICNpbmNsdWRlIDxhc20vZnNsX2Rkcl9zZHJhbS5oPgorI2luY2x1ZGUgPGFzbS9mc2xfZGRyX2RpbW1fcGFyYW1zLmg+CiAKIHN0YXRpYyB2b2lkCiBnZXRfc3BkKGRkcjFfc3BkX2VlcHJvbV90ICpzcGQsIHVuc2lnbmVkIGNoYXIgaTJjX2FkZHJlc3MpCkBAIC00MCw3ICs0MSw5IEBACiAJfQogfQogCi12b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywgdW5zaWduZWQgaW50IGN0cmxfbnVtKQordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgQ1BPOgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjBhZHMvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy9sYXcuYwppbmRleCAzYjhiZDA1Li43ZGQ4ZjI5IDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy9sYXcuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy9sYXcuYwpAQCAtNDYsMTMgKzQ2LDEzIEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzEyOE0sIExBV19UUkdUX0lGX0REUiksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9ERFIpLAogI2VuZGlmCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKIAkvKiBUaGlzIGlzIG5vdCBzbyBtdWNoIHRoZSBTRFJBTSBtYXAgYXMgaXQgaXMgdGhlIHdob2xlIGxvY2FsYnVzIG1hcC4gKi8KLQlTRVRfTEFXKENGR19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1JJT19NRU1fQkFTRSwgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjBhZHMvbXBjODU2MGFkcy5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjBhZHMvbXBjODU2MGFkcy5jCmluZGV4IDg1MWZjNTcuLjRmZTFkODUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL21wYzg1NjBhZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy9tcGM4NTYwYWRzLmMKQEAgLTIxNyw3ICsyMTcsNyBAQAogdm9pZCByZXNldF9waHkgKHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAvKiBhdm9pZCBjb21waWxlIHdhcm5pbmdzIGZvciBub3cgKi8KLQl2b2xhdGlsZSBiY3NyX3QgKmJjc3IgPSAoYmNzcl90ICopIENGR19CQ1NSOworCXZvbGF0aWxlIGJjc3JfdCAqYmNzciA9IChiY3NyX3QgKikgQ09ORklHX1NZU19CQ1NSOwogI2VuZGlmCiAJLyogcmVzZXQgR2lnYSBiaXQgRXRoZXJuZXQgcG9ydCBpZiBuZWVkZWQgaGVyZSAqLwogCkBAIC0yNzUsNyArMjc1LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9ETEwpCiAJewotCSAgICB2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCSAgICB2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAkgICAgdWludCB0ZW1wX2RkcmRsbCA9IDA7CiAKIAkgICAgLyoKQEAgLTMyMCw4ICszMjAsOCBAQAogdm9pZAogbG9jYWxfYnVzX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfaHo7CkBAIC0zNDEsMTAgKzM0MSwxMCBAQAogCWxiY19oeiA9IHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDEwMDAwMDAgLyBjbGtkaXY7CiAKIAlpZiAobGJjX2h6IDwgNjYpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSIHwgMHg4MDAwMDAwMDsJLyogRExMIEJ5cGFzcyAqLworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSIHwgMHg4MDAwMDAwMDsJLyogRExMIEJ5cGFzcyAqLwogCiAJfSBlbHNlIGlmIChsYmNfaHogPj0gMTMzKSB7Ci0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOyAvKiBETEwgRW5hYmxlZCAqLwogCiAJfSBlbHNlIHsKIAkJLyoKQEAgLTM1OSw3ICszNTksNyBAQAogCQkJbGJjLT5sY3JyID0gMHgxMDAwMDAwNDsKIAkJfQogCi0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7LyogRExMIEVuYWJsZWQgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7LyogRExMIEVuYWJsZWQgKi8KIAkJdWRlbGF5KDIwMCk7CiAKIAkJLyoKQEAgLTM4MCw1MiArMzgwLDUyIEBACiB2b2lkCiBzZHJhbV9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOwotCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNGR19MQkNfU0RSQU1fQkFTRTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOworCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0U7CiAKIAlwdXRzKCIgICAgU0RSQU06ICIpOwotCXByaW50X3NpemUgKENGR19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKKwlwcmludF9zaXplIChDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOwogCiAJLyoKIAkgKiBTZXR1cCBTRFJBTSBCYXNlIGFuZCBPcHRpb24gUmVnaXN0ZXJzCiAJICovCi0JbGJjLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsKLQlsYmMtPmJyMiA9IENGR19CUjJfUFJFTElNOwotCWxiYy0+bGJjciA9IENGR19MQkNfTEJDUjsKKwlsYmMtPm9yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwlsYmMtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOwogCWFzbSgibXN5bmMiKTsKIAotCWxiYy0+bHNydCA9IENGR19MQkNfTFNSVDsKLQlsYmMtPm1ydHByID0gQ0ZHX0xCQ19NUlRQUjsKKwlsYmMtPmxzcnQgPSBDT05GSUdfU1lTX0xCQ19MU1JUOworCWxiYy0+bXJ0cHIgPSBDT05GSUdfU1lTX0xCQ19NUlRQUjsKIAlhc20oInN5bmMiKTsKIAogCS8qCiAJICogQ29uZmlndXJlIHRoZSBTRFJBTSBjb250cm9sbGVyLgogCSAqLwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzE7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzE7CiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwogCXVkZWxheSgxMDApOwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMjsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMjsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CiAJdWRlbGF5KDEwMCk7CiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8zOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zOwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzQ7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzQ7CiAJYXNtKCJzeW5jIik7CiAJKnNkcmFtX2FkZHIgPSAweGZmOwogCXBwY0RjYmYoKHVuc2lnbmVkIGxvbmcpIHNkcmFtX2FkZHIpOwogCXVkZWxheSgxMDApOwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNTsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsKIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC00MzgsMTUgKzQzOCwxNSBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGxvbmcgaW50IGZpeGVkX3NkcmFtICh2b2lkKQogewotICAjaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisgICNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIpOwogCi0JZGRyLT5jczBfYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWRkci0+dGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JZGRyLT5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJZGRyLT50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlkZHItPnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKICAgICAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJZGRyLT5lcnJfZGlzYWJsZSA9IDB4MDAwMDAwMEQ7CiAJZGRyLT5lcnJfc2JlID0gMHgwMGZmMDAwMDsKQEAgLTQ1NSwxNCArNDU1LDE0IEBACiAJdWRlbGF5KDUwMCk7CiAgICAgI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQogCS8qIEVuYWJsZSBFQ0MgY2hlY2tpbmcgKi8KLQlkZHItPnNkcmFtX2NmZyA9IChDRkdfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKKwlkZHItPnNkcmFtX2NmZyA9IChDT05GSUdfU1lTX0REUl9DT05UUk9MIHwgMHgyMDAwMDAwMCk7CiAgICAgI2Vsc2UKLQlkZHItPnNkcmFtX2NmZyA9IENGR19ERFJfQ09OVFJPTDsKKwlkZHItPnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX0NPTlRST0w7CiAgICAgI2VuZGlmCiAJYXNtKCJzeW5jOyBpc3luYzsgbXN5bmMiKTsKIAl1ZGVsYXkoNTAwKTsKICAgI2VuZGlmCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfQogI2VuZGlmCS8qICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKSAqLwogCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2MGFkcy90bGIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL3RsYi5jCmluZGV4IDRmZTI4NjIuLjJlYzNjY2MgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL3RsYi5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTYwYWRzL3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC00Niw3ICs0Niw3IEBACiAJICogMHhmZjAwMDAwMAkxNk0JRkxBU0gKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKIApAQCAtNTQsNyArNTQsNyBAQAogCSAqIFRMQiAxOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDgwMDAwMDAwCTI1Nk0JUENJMSBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMsIENGR19QQ0kxX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTYyLDcgKzYyLDcgQEAKIAkgKiBUTEIgMjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg5MDAwMDAwMAkyNTZNCVBDSTEgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTcwLDcgKzcwLDcgQEAKIAkgKiBUTEIgMzoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhjMDAwMDAwMAkyNTZNCVJhcGlkIElPIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUklPX01FTV9CQVNFLCBDRkdfUklPX01FTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03OCw3ICs3OCw3IEBACiAJICogVExCIDQ6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ZDAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC04Nyw3ICs4Nyw3IEBACiAJICogMHhlMDAwXzAwMDAJMU0JQ0NTUkJBUgogCSAqIDB4ZTIwMF8wMDAwCTE2TQlQQ0kxIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtOTUsNyArOTUsNyBAQAogCSAqIFRMQiA2Ogk2NE0JQ2FjaGVhYmxlLCBub24tZ3VhcmRlZAogCSAqIDB4ZjAwMF8wMDAwCTY0TQlMQkMgU0RSQU0KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19MQkNfU0RSQU1fQkFTRSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC0xMDMsNyArMTAzLDcgQEAKIAkgKiBUTEIgNzoJMTZLCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGY4MDAwMDAwCTE2SwlCQ1NSIHJlZ2lzdGVycwogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0JDU1IsIENGR19CQ1NSLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19CQ1NSLCBDT05GSUdfU1lTX0JDU1IsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA3LCBCT09LRV9QQUdFU1pfMTZLLCAxKSwKIApAQCAtMTE3LDExICsxMTcsMTEgQEAKIAkgKiBMaWtlbHkgaXQgbmVlZHMgdG8gYmUgaW5jcmVhc2VkIGJ5IHR3byBmb3IgdGhlc2UgZW50cmllcy4KIAkgKi8KICNlcnJvcigiVXBkYXRlIHRoZSBudW1iZXIgb2YgdGFibGUgZW50cmllcyBpbiB0bGIxX2VudHJ5IikKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSwgQ0ZHX0REUl9TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDgsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRERSX1NEUkFNX0JBU0UgKyAweDQwMDAwMDAsIENGR19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgKyAweDQwMDAwMDAsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgKyAweDQwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA5LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvYmNzci5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvYmNzci5jCmluZGV4IDc5MWE1MGYuLjMwNjc2ZTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL2Jjc3IuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9iY3NyLmMKQEAgLTI3LDkgKzI3LDkgQEAKIAogdm9pZCBlbmFibGVfODU2OG1kc19kdWFydCgpCiB7Ci0Jdm9sYXRpbGUgdWludCogZHVhcnRfbXV4CT0gKHVpbnQgKikoQ0ZHX0NDU1JCQVIgKyAweGUwMDYwKTsKLQl2b2xhdGlsZSB1aW50KiBkZXZpY2VzCQk9ICh1aW50ICopKENGR19DQ1NSQkFSICsgMHhlMDA3MCk7Ci0Jdm9sYXRpbGUgdTggKmJjc3IJCT0gKHU4ICopKENGR19CQ1NSKTsKKwl2b2xhdGlsZSB1aW50KiBkdWFydF9tdXgJPSAodWludCAqKShDT05GSUdfU1lTX0NDU1JCQVIgKyAweGUwMDYwKTsKKwl2b2xhdGlsZSB1aW50KiBkZXZpY2VzCQk9ICh1aW50ICopKENPTkZJR19TWVNfQ0NTUkJBUiArIDB4ZTAwNzApOworCXZvbGF0aWxlIHU4ICpiY3NyCQk9ICh1OCAqKShDT05GSUdfU1lTX0JDU1IpOwogCiAJKmR1YXJ0X211eCA9IDB4ODAwMDAwMDA7CS8qIFNldCB0aGUgbXV4IHRvIER1YXJ0IG9uIFBNVVhDUiAqLwogCSpkZXZpY2VzICA9IDA7CQkJLyogRW5hYmxlIGFsbCBwZXJpcGhlcmFsIGRldmljZXMgKi8KQEAgLTM4LDIxICszOCwyMSBAQAogCiB2b2lkIGVuYWJsZV84NTY4bWRzX2ZsYXNoX3dyaXRlKCkKIHsKLQl2b2xhdGlsZSB1OCAqYmNzciA9ICh1OCAqKShDRkdfQkNTUik7CisJdm9sYXRpbGUgdTggKmJjc3IgPSAodTggKikoQ09ORklHX1NZU19CQ1NSKTsKIAogCWJjc3JbOV0gfD0gMHgwMTsKIH0KIAogdm9pZCBkaXNhYmxlXzg1NjhtZHNfZmxhc2hfd3JpdGUoKQogewotCXZvbGF0aWxlIHU4ICpiY3NyID0gKHU4ICopKENGR19CQ1NSKTsKKwl2b2xhdGlsZSB1OCAqYmNzciA9ICh1OCAqKShDT05GSUdfU1lTX0JDU1IpOwogCiAJYmNzcls5XSAmPSB+KDB4MDEpOwogfQogCiB2b2lkIGVuYWJsZV84NTY4bWRzX3FlX21kaW8oKQogewotCXU4ICpiY3NyID0gKHU4ICopKENGR19CQ1NSKTsKKwl1OCAqYmNzciA9ICh1OCAqKShDT05GSUdfU1lTX0JDU1IpOwogCiAJYmNzcls3XSB8PSAweDAxOwogfQpAQCAtNjAsNyArNjAsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX1VFQ19FVEgxKSB8fCBkZWZpbmVkKENPTkZJR19VRUNfRVRIMikKIHZvaWQgcmVzZXRfODU2OG1kc191Y2NzKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdTggKmJjc3IgPSAodTggKikoQ0ZHX0JDU1IpOworCXZvbGF0aWxlIHU4ICpiY3NyID0gKHU4ICopKENPTkZJR19TWVNfQkNTUik7CiAKIAkvKiBUdXJuIG9mZiBVQ0MxICYgVUNDMiAqLwogCW91dF84KCZiY3NyWzhdLCBpbl84KCZiY3NyWzhdKSAmIH5CQ1NSX1VDQzFfR0VUSF9FTik7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9kZHIuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL2Rkci5jCmluZGV4IDFiOGVjZWMuLjQ4MmZkOTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL2Rkci5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL2Rkci5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8aTJjLmg+CiAKICNpbmNsdWRlIDxhc20vZnNsX2Rkcl9zZHJhbS5oPgorI2luY2x1ZGUgPGFzbS9mc2xfZGRyX2RpbW1fcGFyYW1zLmg+CiAKIHN0YXRpYyB2b2lkCiBnZXRfc3BkKGRkcjJfc3BkX2VlcHJvbV90ICpzcGQsIHVuc2lnbmVkIGNoYXIgaTJjX2FkZHJlc3MpCkBAIC0zOCw3ICszOSw5IEBACiAJfQogfQogCi12b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywgdW5zaWduZWQgaW50IGN0cmxfbnVtKQordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgY2xvY2sgYWRqdXN0OgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9sYXcuYwppbmRleCAzYmMyNGM1Li5kYTdiNmRjIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9sYXcuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9sYXcuYwpAQCAtNTAsMTMgKzUwLDEzIEBACiAgKi8KIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1BDSUUxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfOE0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfOE0sIExBV19UUkdUX0lGX1BDSUVfMSksCi0JU0VUX0xBVyhDRkdfU1JJT19NRU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUklPKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfOE0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsIExBV19TSVpFXzhNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19TUklPX01FTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pLAogCS8qIExCQyB3aW5kb3cgLSBtYXBzIDI1Nk0uICBUaGF0J3MgU0RSQU0sIEJDU1IsIFBJQnMsIGFuZCBGbGFzaCAqLwotCVNFVF9MQVcoQ0ZHX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9tcGM4NTY4bWRzLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU2OG1kcy9tcGM4NTY4bWRzLmMKaW5kZXggZjllMzVjYy4uZWFiMTkwMCAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvbXBjODU2OG1kcy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL21wYzg1NjhtZHMuYwpAQCAtMTIzLDEwICsxMjMsMTAgQEAKIAllbmFibGVfODU2OG1kc19xZV9tZGlvKCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19JMkMyX09GRlNFVAorI2lmZGVmIENPTkZJR19TWVNfSTJDMl9PRkZTRVQKIAkvKiBFbmFibGUgSTJDMl9TQ0wgYW5kIEkyQzJfU0RBICovCiAJdm9sYXRpbGUgc3RydWN0IHBhcl9pbyAqcG9ydF9jOwotCXBvcnRfYyA9IChzdHJ1Y3QgcGFyX2lvKikoQ0ZHX0lNTVIgKyAweGUwMTQwKTsKKwlwb3J0X2MgPSAoc3RydWN0IHBhcl9pbyopKENPTkZJR19TWVNfSU1NUiArIDB4ZTAxNDApOwogCXBvcnRfYy0+Y3BkaXIyIHw9IDB4MGYwMDAwMDA7CiAJcG9ydF9jLT5jcHBhcjIgJj0gfjB4MGYwMDAwMDA7CiAJcG9ydF9jLT5jcHBhcjIgfD0gMHgwYTAwMDAwMDsKQEAgLTE1OCw3ICsxNTgsNyBAQAogCQkgKiAgICBPdmVycmlkZSBETEwgPSAxLCBDb3Vyc2UgQWRqID0gMSwgVGFwIFNlbGVjdCA9IDAKIAkJICovCiAKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAKIAkJZ3VyLT5kZHJkbGxjciA9IDB4ODEwMDAwMDA7CiAJCWFzbSgic3luYztpc3luYzttc3luYyIpOwpAQCAtMTkyLDggKzE5Miw4IEBACiB2b2lkCiBsb2NhbF9idXNfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19oejsKQEAgLTIyMyw0NCArMjIzLDQ0IEBACiB2b2lkCiBzZHJhbV9pbml0KHZvaWQpCiB7Ci0jaWYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSMl9QUkVMSU0pCiAKIAl1aW50IGlkeDsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ0ZHX0xCQ19TRFJBTV9CQVNFOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRTsKIAl1aW50IGxzZG1yX2NvbW1vbjsKIAogCXB1dHMoIiAgICBTRFJBTTogIik7CiAKLQlwcmludF9zaXplIChDRkdfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CisJcHJpbnRfc2l6ZSAoQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKIAogCS8qCiAJICogU2V0dXAgU0RSQU0gQmFzZSBhbmQgT3B0aW9uIFJlZ2lzdGVycwogCSAqLwotCWxiYy0+b3IyID0gQ0ZHX09SMl9QUkVMSU07CisJbGJjLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwlsYmMtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKIAlhc20oIm1zeW5jIik7CiAKIAotCWxiYy0+bHNydCA9IENGR19MQkNfTFNSVDsKLQlsYmMtPm1ydHByID0gQ0ZHX0xCQ19NUlRQUjsKKwlsYmMtPmxzcnQgPSBDT05GSUdfU1lTX0xCQ19MU1JUOworCWxiYy0+bXJ0cHIgPSBDT05GSUdfU1lTX0xCQ19NUlRQUjsKIAlhc20oIm1zeW5jIik7CiAKIAkvKgogCSAqIE1QQzg1NjggdXNlcyAibmV3IiAxNS0xNiBzdHlsZSBhZGRyZXNzaW5nLgogCSAqLwotCWxzZG1yX2NvbW1vbiA9IENGR19MQkNfTFNETVJfQ09NTU9OOwotCWxzZG1yX2NvbW1vbiB8PSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2OworCWxzZG1yX2NvbW1vbiA9IENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTjsKKwlsc2Rtcl9jb21tb24gfD0gQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTY7CiAKIAkvKgogCSAqIElzc3VlIFBSRUNIQVJHRSBBTEwgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEw7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTDsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yNzAsNyArMjcwLDcgQEAKIAkgKiBJc3N1ZSA4IEFVVE8gUkVGUkVTSCBjb21tYW5kcy4KIAkgKi8KIAlmb3IgKGlkeCA9IDA7IGlkeCA8IDg7IGlkeCsrKSB7Ci0JCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSDsKKwkJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSDsKIAkJYXNtKCJzeW5jO21zeW5jIik7CiAJCSpzZHJhbV9hZGRyID0gMHhmZjsKIAkJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yODAsNyArMjgwLDcgQEAKIAkvKgogCSAqIElzc3VlIDggTU9ERS1zZXQgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlc7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVzsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yODksNyArMjg5LDcgQEAKIAkvKgogCSAqIElzc3VlIE5PUk1BTCBPUCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTDsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTM3MSw3ICszNzEsNyBAQAogdm9pZAogcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgaW9fc2VsID0gKGd1ci0+cG9yZGV2c3IgJiBNUEM4NXh4X1BPUkRFVlNSX0lPX1NFTCkgPj4gMTk7CiAJdWludCBob3N0X2FnZW50ID0gKGd1ci0+cG9yYm1zciAmIE1QQzg1eHhfUE9SQk1TUl9IQSkgPj4gMTY7CiAKQEAgLTM3OSw3ICszNzksNyBAQAogewogCXBpYl9pbml0KCk7CiAKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMV9ob3NlOwogCkBAIC00MDMsMjMgKzQwMywyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCQlDRkdfUENJMV9NRU1fQkFTRSwKLQkJCQlDRkdfUENJMV9NRU1fUEhZUywKLQkJCQlDRkdfUENJMV9NRU1fU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCQkJQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkJQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJCQlDRkdfUENJMV9JT19QSFlTLAotCQkJCUNGR19QQ0kxX0lPX1NJWkUsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCQkJUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTQ0MCw3ICs0NDAsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJRTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTFfaG9zZTsKIAlpbnQgcGNpZV9lcCA9ICAoaG9zdF9hZ2VudCA9PSAwKSB8fCAoaG9zdF9hZ2VudCA9PSAyICkgfHwgKGhvc3RfYWdlbnQgPT0gMyk7CkBAIC00NjAsMjMgKzQ2MCwyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCQlDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkJQ0ZHX1BDSUUxX01FTV9QSFlTLAotCQkJCUNGR19QQ0lFMV9NRU1fU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJCUNPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRSwKIAkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkJQ0ZHX1BDSUUxX0lPX0JBU0UsCi0JCQkJQ0ZHX1BDSUUxX0lPX1BIWVMsCi0JCQkJQ0ZHX1BDSUUxX0lPX1NJWkUsCisJCQkJQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAorCQkJCUNPTkZJR19TWVNfUENJRTFfSU9fUEhZUywKKwkJCQlDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUsCiAJCQkJUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTY4bWRzL3RsYi5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvdGxiLmMKaW5kZXggNzU2NTE3Ni4uMTA3NzU1MiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvdGxiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NjhtZHMvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTQ3LDcgKzQ3LDcgQEAKIAkgKiAweGZmMDAwMDAwCTE2TQlGTEFTSCAodXBwZXIgaGFsZikKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UgKyAweDEwMDAwMDAsIENGR19GTEFTSF9CQVNFICsgMHgxMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgxMDAwMDAwLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDEwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKIApAQCAtNTUsNyArNTUsNyBAQAogCSAqIFRMQmUgMToJMTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGZlMDAwMDAwCTE2TQlGTEFTSCAobG93ZXIgaGFsZikKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAKQEAgLTY0LDcgKzY0LDcgQEAKIAkgKiAweDgwMDAwMDAwCTUxMk0JUENJMSBNRU0KIAkgKiAweGEwMDAwMDAwCTUxMk0JUENJZSBNRU0KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzFHLCAxKSwKIApAQCAtNzQsNyArNzQsNyBAQAogCSAqIDB4ZTIwMF8wMDAwCThNCVBDSTEgSU8KIAkgKiAweGUyODBfMDAwMAk4TQlQQ0llIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtODIsNyArODIsNyBAQAogCSAqIFRMQmUgNDoJNjRNCUNhY2hlYWJsZSwgbm9uLWd1YXJkZWQKIAkgKiAweGYwMDBfMDAwMAk2NE0JTEJDIFNEUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX1NEUkFNX0JBU0UsIENGR19MQkNfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtOTIsNyArOTIsNyBAQAogCSAqIDB4ZjgwMDgwMDAJMzJLIFBJQiAoQ1M0KQogCSAqIDB4ZjgwMTAwMDAJMzJLIFBJQiAoQ1M1KQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0JDU1JfQkFTRSwgQ0ZHX0JDU1JfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQkNTUl9CQVNFLCBDT05GSUdfU1lTX0JDU1JfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl8yNTZLLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL2Rkci5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy9kZHIuYwppbmRleCA1ZjhjNTU1Li5kNjZlZGUyIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL2Rkci5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTcyZHMvZGRyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxpMmMuaD4KIAogI2luY2x1ZGUgPGFzbS9mc2xfZGRyX3NkcmFtLmg+CisjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfZGltbV9wYXJhbXMuaD4KIAogc3RhdGljIHZvaWQgZ2V0X3NwZChkZHIyX3NwZF9lZXByb21fdCAqc3BkLCB1bnNpZ25lZCBjaGFyIGkyY19hZGRyZXNzKQogewpAQCAtMzgsNDAgKzM5LDEwOCBAQAogCX0KIH0KIAotdm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsIHVuc2lnbmVkIGludCBjdHJsX251bSkKK3R5cGVkZWYgc3RydWN0IHsKKwl1MzIgZGF0YXJhdGVfbWh6X2xvdzsKKwl1MzIgZGF0YXJhdGVfbWh6X2hpZ2g7CisJdTMyIG5fcmFua3M7CisJdTMyIGNsa19hZGp1c3Q7CisJdTMyIGNwbzsKKwl1MzIgd3JpdGVfZGF0YV9kZWxheTsKKwl1MzIgZm9yY2VfMlQ7Cit9IGJvYXJkX3NwZWNpZmljX3BhcmFtZXRlcnNfdDsKKworLyogcmFuZ2VzIGZvciBwYXJhbWV0ZXJzOgorICogIHdyX2RhdGFfZGVsYXkgPSAwLTYKKyAqICBjbGsgYWRqdXN0ID0gMC04CisgKiAgY3BvIDItMHgxRSAoMzApCisgKi8KKworCisvKiBYWFg6IHRoZXNlIHZhbHVlcyBuZWVkIHRvIGJlIGNoZWNrZWQgZm9yIGFsbCBpbnRlcmxlYXZpbmcgbW9kZXMuICAqLworLyogWFhYOiBObyByZWxpYWJsZSBkdWFsLXJhbmsgODAwIE1IeiBzZXR0aW5nIGhhcyBiZWVuIGZvdW5kLiAgSXQgbWF5CisgKiAgICAgIHNlZW0gcmVsaWFibGUsIGJ1dCBlcnJvcnMgd2lsbCBhcHBlYXIgd2hlbiBtZW1vcnkgaW50ZW5zaXZlCisgKiAgICAgIHByb2dyYW0gaXMgcnVuLiAqLworLyogWFhYOiBTaW5nbGUgcmFuayBhdCA4MDAgTUh6IGlzIE9LLiAgKi8KK2NvbnN0IGJvYXJkX3NwZWNpZmljX3BhcmFtZXRlcnNfdCBib2FyZF9zcGVjaWZpY19wYXJhbWV0ZXJzW11bMjBdID0geworCXsKKwkvKiAJbWVtb3J5IGNvbnRyb2xsZXIgMCAJCQkqLworCS8qCSAgbG98ICBoaXwgIG51bXwgIGNsa3wgY3BvfHdyZGF0YXwyVAkqLworCS8qCSBtaHp8IG1oenxyYW5rc3xhZGpzdHwgICAgfCBkZWxheXwJKi8KKwkJeyAgMCwgMzMzLCAgICAyLCAgICA2LCAgIDcsICAgIDMsICAwfSwKKwkJezMzNCwgNDAwLCAgICAyLCAgICA2LCAgIDksICAgIDMsICAwfSwKKwkJezQwMSwgNTQ5LCAgICAyLCAgICA2LCAgMTEsICAgIDMsICAwfSwKKwkJezU1MCwgNjgwLCAgICAyLCAgICAxLCAgMTAsICAgIDUsICAwfSwKKwkJezY4MSwgODUwLCAgICAyLCAgICAxLCAgMTIsICAgIDUsICAxfSwKKwkJeyAgMCwgMzMzLCAgICAxLCAgICA2LCAgIDcsICAgIDMsICAwfSwKKwkJezMzNCwgNDAwLCAgICAxLCAgICA2LCAgIDksICAgIDMsICAwfSwKKwkJezQwMSwgNTQ5LCAgICAxLCAgICA2LCAgMTEsICAgIDMsICAwfSwKKwkJezU1MCwgNjgwLCAgICAxLCAgICAxLCAgMTAsICAgIDUsICAwfSwKKwkJezY4MSwgODUwLCAgICAxLCAgICAxLCAgMTIsICAgIDUsICAwfQorCX0sCisKKwl7CisJLyoJbWVtb3J5IGNvbnRyb2xsZXIgMQkJCSovCisJLyoJICBsb3wgIGhpfCAgbnVtfCAgY2xrfCBjcG98d3JkYXRhfDJUCSovCisJLyoJIG1oenwgbWh6fHJhbmtzfGFkanN0fCAgICB8IGRlbGF5fAkqLworCQl7ICAwLCAzMzMsICAgIDIsICAgICA2LCAgNywgICAgMywgIDB9LAorCQl7MzM0LCA0MDAsICAgIDIsICAgICA2LCAgOSwgICAgMywgIDB9LAorCQl7NDAxLCA1NDksICAgIDIsICAgICA2LCAxMSwgICAgMywgIDB9LAorCQl7NTUwLCA2ODAsICAgIDIsICAgICAxLCAxMSwgICAgNiwgIDB9LAorCQl7NjgxLCA4NTAsICAgIDIsICAgICAxLCAxMywgICAgNiwgIDF9LAorCQl7ICAwLCAzMzMsICAgIDEsICAgICA2LCAgNywgICAgMywgIDB9LAorCQl7MzM0LCA0MDAsICAgIDEsICAgICA2LCAgOSwgICAgMywgIDB9LAorCQl7NDAxLCA1NDksICAgIDEsICAgICA2LCAxMSwgICAgMywgIDB9LAorCQl7NTUwLCA2ODAsICAgIDEsICAgICAxLCAxMSwgICAgNiwgIDB9LAorCQl7NjgxLCA4NTAsICAgIDEsICAgICAxLCAxMywgICAgNiwgIDB9CisJfQorfTsKKwordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewotCS8qCi0JICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgY2xvY2sgYWRqdXN0OgotCSAqCS0gbnVtYmVyIG9mIGNoaXBzIG9uIGJ1cwotCSAqCS0gcG9zaXRpb24gb2Ygc2xvdAotCSAqCS0gRERSMSB2cy4gRERSMj8KLQkgKgktID8/PwotCSAqCi0JICogVGhpcyBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIG9uIGEgYm9hcmQtYnktYm9hcmQgYmFzaXMuCi0JICoJMDExMAkzLzQgY3ljbGUgbGF0ZQotCSAqCTAxMTEJNy84IGN5Y2xlIGxhdGUKLQkgKi8KLQlwb3B0cy0+Y2xrX2FkanVzdCA9IDc7CisJY29uc3QgYm9hcmRfc3BlY2lmaWNfcGFyYW1ldGVyc190ICpwYnNwID0KKwkJCQkmKGJvYXJkX3NwZWNpZmljX3BhcmFtZXRlcnNbY3RybF9udW1dWzBdKTsKKwl1MzIgbnVtX3BhcmFtcyA9IHNpemVvZihib2FyZF9zcGVjaWZpY19wYXJhbWV0ZXJzW2N0cmxfbnVtXSkgLworCQkJCXNpemVvZihib2FyZF9zcGVjaWZpY19wYXJhbWV0ZXJzWzBdWzBdKTsKKwl1MzIgaTsKKwl1bG9uZyBkZHJfZnJlcTsKIAotCS8qCi0JICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgQ1BPOgotCSAqCS0gZnJlcXVlbmN5Ci0JICoJLSBkZHIxIHZzLiBkZHIyCisJLyogc2V0IG9kdF9yZF9jZmcgYW5kIG9kdF93cl9jZmcuIElmIHRoZSB0aGVyZSBpcyBvbmx5IG9uZSBkaW1tIGluCisJICogdGhhdCBjb250cm9sbGVyLCBzZXQgb2R0X3dyX2NmZyB0byA0IGZvciBDUzAsIGFuZCAwIHRvIENTMS4gSWYKKwkgKiB0aGVyZSBhcmUgdHdvIGRpbW1zIGluIHRoZSBjb250cm9sbGVyLCBzZXQgb2R0X3JkX2NmZyB0byAzIGFuZAorCSAqIG9kdF93cl9jZmcgdG8gMyBmb3IgdGhlIGV2ZW4gQ1MsIDAgZm9yIHRoZSBvZGQgQ1MuCiAJICovCi0JcG9wdHMtPmNwb19vdmVycmlkZSA9IDEwOworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfQ0hJUF9TRUxFQ1RTX1BFUl9DVFJMOyBpKyspIHsKKwkJaWYgKGkmMSkgewkvKiBvZGQgQ1MgKi8KKwkJCXBvcHRzLT5jc19sb2NhbF9vcHRzW2ldLm9kdF9yZF9jZmcgPSAwOworCQkJcG9wdHMtPmNzX2xvY2FsX29wdHNbaV0ub2R0X3dyX2NmZyA9IDA7CisJCX0gZWxzZSB7CS8qIGV2ZW4gQ1MgKi8KKwkJCWlmIChDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUiA9PSAxKSB7CisJCQkJcG9wdHMtPmNzX2xvY2FsX29wdHNbaV0ub2R0X3JkX2NmZyA9IDA7CisJCQkJcG9wdHMtPmNzX2xvY2FsX29wdHNbaV0ub2R0X3dyX2NmZyA9IDQ7CisJCQl9IGVsc2UgaWYgKENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSID09IDIpIHsKKwkJCXBvcHRzLT5jc19sb2NhbF9vcHRzW2ldLm9kdF9yZF9jZmcgPSAzOworCQkJcG9wdHMtPmNzX2xvY2FsX29wdHNbaV0ub2R0X3dyX2NmZyA9IDM7CisJCQl9CisJCX0KKwl9CiAKLQkvKgotCSAqIEZhY3RvcnMgdG8gY29uc2lkZXIgZm9yIHdyaXRlIGRhdGEgZGVsYXk6Ci0JICoJLSBudW1iZXIgb2YgRElNTXMKLQkgKgotCSAqIDEgPSAxLzQgY2xvY2sgZGVsYXkKLQkgKiAyID0gMS8yIGNsb2NrIGRlbGF5Ci0JICogMyA9IDMvNCBjbG9jayBkZWxheQotCSAqIDQgPSAxICAgY2xvY2sgZGVsYXkKLQkgKiA1ID0gNS80IGNsb2NrIGRlbGF5Ci0JICogNiA9IDMvMiBjbG9jayBkZWxheQorCS8qIEdldCBjbGtfYWRqdXN0LCBjcG8sIHdyaXRlX2RhdGFfZGVsYXksMlQsIGFjY29yZGluZyB0byB0aGUgYm9hcmQgZGRyCisJICogZnJlcWVuY3kgYW5kIG5fYmFua3Mgc3BlY2lmaWVkIGluIGJvYXJkX3NwZWNpZmljX3BhcmFtZXRlcnMgdGFibGUuCiAJICovCi0JcG9wdHMtPndyaXRlX2RhdGFfZGVsYXkgPSA1OworCWRkcl9mcmVxID0gZ2V0X2Rkcl9mcmVxKDApIC8gMTAwMDAwMDsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhcmFtczsgaSsrKSB7CisJCWlmIChkZHJfZnJlcSA+PSBwYnNwLT5kYXRhcmF0ZV9taHpfbG93ICYmCisJCSAgICBkZHJfZnJlcSA8PSBwYnNwLT5kYXRhcmF0ZV9taHpfaGlnaCAmJgorCQkgICAgcGRpbW0tPm5fcmFua3MgPT0gcGJzcC0+bl9yYW5rcykgeworCQkJcG9wdHMtPmNsa19hZGp1c3QgPSBwYnNwLT5jbGtfYWRqdXN0OworCQkJcG9wdHMtPmNwb19vdmVycmlkZSA9IHBic3AtPmNwbzsKKwkJCXBvcHRzLT53cml0ZV9kYXRhX2RlbGF5ID0gcGJzcC0+d3JpdGVfZGF0YV9kZWxheTsKKwkJCXBvcHRzLT50d29UX2VuID0gcGJzcC0+Zm9yY2VfMlQ7CisJCX0KKwkJcGJzcCsrOworCX0KIAogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgaGFsZi1zdHJlbmd0aCBkcml2ZXIgZW5hYmxlOgpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy9sYXcuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTcyZHMvbGF3LmMKaW5kZXggZDY5YjU5My4uOWYxMTkwMiAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy9sYXcuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL2xhdy5jCkBAIC0yOCwxMyArMjgsMTMgQEAKICNpbmNsdWRlIDxhc20vbW11Lmg+CiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7Ci0JU0VUX0xBVyhDRkdfRkxBU0hfQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0lFMV9NRU1fUEhZUywgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSUUxX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8xKSwKLQlTRVRfTEFXKENGR19QQ0lFMl9NRU1fUEhZUywgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAotCVNFVF9MQVcoQ0ZHX1BDSUUyX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8yKSwKLQlTRVRfTEFXKENGR19QQ0lFM19NRU1fUEhZUywgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzMpLAotCVNFVF9MQVcoQ0ZHX1BDSUUzX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8zKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsIExBV0FSX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfNjRLLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUywgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTLCBMQVdfU0laRV82NEssIExBV19UUkdUX0lGX1BDSUVfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSUVfMyksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMsIExBV19TSVpFXzY0SywgTEFXX1RSR1RfSUZfUENJRV8zKSwKIAlTRVRfTEFXKFBJWElTX0JBU0UsIExBV19TSVpFXzRLLCBMQVdfVFJHVF9JRl9MQkMpLAogfTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy9tcGM4NTcyZHMuYyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTcyZHMvbXBjODU3MmRzLmMKaW5kZXggNzBiNTQ4Yi4uYjI0MDJkYyAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy9tcGM4NTcyZHMuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL21wYzg1NzJkcy5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8cGNpLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9tbXUuaD4KKyNpbmNsdWRlIDxhc20vY2FjaGUuaD4KICNpbmNsdWRlIDxhc20vaW1tYXBfODV4eC5oPgogI2luY2x1ZGUgPGFzbS9pbW1hcF9mc2xfcGNpLmg+CiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KQEAgLTMyLDggKzMzLDEwIEBACiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAjaW5jbHVkZSA8bGliZmR0Lmg+CiAjaW5jbHVkZSA8ZmR0X3N1cHBvcnQuaD4KKyNpbmNsdWRlIDx0c2VjLmg+CiAKICNpbmNsdWRlICIuLi9jb21tb24vcGl4aXMuaCIKKyNpbmNsdWRlICIuLi9jb21tb24vc2dtaWlfcmlzZXIuaCIKIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9FQ0MpICYmICFkZWZpbmVkKENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQ09OVFJPTExFUikKIGV4dGVybiB2b2lkIGRkcl9lbmFibGVfZWNjKHVuc2lnbmVkIGludCBkcmFtX3NpemUpOwpAQCAtODMsMzQgKzg2LDM0IEBACiAKIHBoeXNfc2l6ZV90IGZpeGVkX3NkcmFtICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gJmltbWFwLT5pbV9kZHI7CiAJdWludCBkX2luaXQ7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7CisJZGRyLT5jczBfYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWRkci0+Y3MwX2NvbmZpZyA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CiAKLQlkZHItPnRpbWluZ19jZmdfMyA9IENGR19ERFJfVElNSU5HXzM7Ci0JZGRyLT50aW1pbmdfY2ZnXzAgPSBDRkdfRERSX1RJTUlOR18wOwotCWRkci0+dGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JZGRyLT5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFXzE7Ci0JZGRyLT5zZHJhbV9tb2RlXzIgPSBDRkdfRERSX01PREVfMjsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENGR19ERFJfREFUQV9JTklUOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DVFJMOwotCWRkci0+c2RyYW1fY2ZnXzIgPSBDRkdfRERSX0NPTlRST0wyOworCWRkci0+dGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJZGRyLT50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERV8xOworCWRkci0+c2RyYW1fbW9kZV8yID0gQ09ORklHX1NZU19ERFJfTU9ERV8yOworCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENPTkZJR19TWVNfRERSX0RBVEFfSU5JVDsKKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NUUkw7CisJZGRyLT5zZHJhbV9jZmdfMiA9IENPTkZJR19TWVNfRERSX0NPTlRST0wyOwogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCi0JZGRyLT5lcnJfaW50X2VuID0gQ0ZHX0REUl9FUlJfSU5UX0VOOwotCWRkci0+ZXJyX2Rpc2FibGUgPSBDRkdfRERSX0VSUl9ESVM7Ci0JZGRyLT5lcnJfc2JlID0gQ0ZHX0REUl9TQkU7CisJZGRyLT5lcnJfaW50X2VuID0gQ09ORklHX1NZU19ERFJfRVJSX0lOVF9FTjsKKwlkZHItPmVycl9kaXNhYmxlID0gQ09ORklHX1NZU19ERFJfRVJSX0RJUzsKKwlkZHItPmVycl9zYmUgPSBDT05GSUdfU1lTX0REUl9TQkU7CiAjZW5kaWYKIAlhc20oInN5bmM7aXN5bmMiKTsKIAogCXVkZWxheSg1MDApOwogCi0JZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJZGRyLT5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MOwogCiAjaWYgZGVmaW5lZChDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIpCiAJZF9pbml0ID0gMTsKQEAgLTE0OCw3ICsxNTEsNyBAQAogI2lmZGVmIENPTkZJR19QQ0kKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODV4eF9QT1JERVZTUl9JT19TRUwpID4+IDE5OwogCXVpbnQgaG9zdF9hZ2VudCA9IChndXItPnBvcmJtc3IgJiBNUEM4NXh4X1BPUkJNU1JfSEEpID4+IDE2OwpAQCAtMTY4LDcgKzE3MSw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJRTMKIAl7Ci0JCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUzX0FERFI7CisJCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFM19BRERSOwogCQlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAkJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUzX2hvc2U7CiAJCWludCBwY2llX2VwID0gKGhvc3RfYWdlbnQgPT0gMCkgfHwgKGhvc3RfYWdlbnQgPT0gMykgfHwKQEAgLTE4OCwyMyArMTkxLDIzIEBACiAKIAkJCS8qIGluYm91bmQgKi8KIAkJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJCQlDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkJCUNGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkJCUNGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCQkJUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkJCUNGR19QQ0lFM19NRU1fQkFTRSwKLQkJCQkJQ0ZHX1BDSUUzX01FTV9QSFlTLAotCQkJCQlDRkdfUENJRTNfTUVNX1NJWkUsCisJCQkJCUNPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UsCisJCQkJCUNPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMsCisJCQkJCUNPTkZJR19TWVNfUENJRTNfTUVNX1NJWkUsCiAJCQkJCVBDSV9SRUdJT05fTUVNKTsKIAogCQkJLyogb3V0Ym91bmQgaW8gKi8KIAkJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJCQlDRkdfUENJRTNfSU9fQkFTRSwKLQkJCQkJQ0ZHX1BDSUUzX0lPX1BIWVMsCi0JCQkJCUNGR19QQ0lFM19JT19TSVpFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUzX0lPX0JBU0UsCisJCQkJCUNPTkZJR19TWVNfUENJRTNfSU9fUEhZUywKKwkJCQkJQ09ORklHX1NZU19QQ0lFM19JT19TSVpFLAogCQkJCQlQQ0lfUkVHSU9OX0lPKTsKIAogCQkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTIyNSw3ICsyMjgsNyBAQAogCiAJCQlwY2lfaG9zZV9yZWFkX2NvbmZpZ19kd29yZChob3NlLCBQQ0lfQkRGKDIsIDB4MWQsIDAgKSwKIAkJCQkJUENJX0JBU0VfQUREUkVTU18xLCAmdGVtcDMyKTsKLQkJCWlmICh0ZW1wMzIgPj0gQ0ZHX1BDSUUzX01FTV9QSFlTKSB7CisJCQlpZiAodGVtcDMyID49IENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMpIHsKIAkJCQlkZWJ1ZygiIHVsaTE1NzIgcmVhZCB0byAleFxuIiwgdGVtcDMyKTsKIAkJCQlpbl9iZTMyKCh1bnNpZ25lZCAqKXRlbXAzMik7CiAJCQl9CkBAIC0yNDAsMTEgKzI0MywxMSBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUyCiAJewotCQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMl9BRERSOworCQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJRTJfQUREUjsKIAkJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMl9ob3NlOwogCQlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50ID09IDIpIHx8IChob3N0X2FnZW50ID09IDQpIHx8Ci0JCQkoaG9zdF9hZ2VudCA9PSA2KTsKKwkJCShob3N0X2FnZW50ID09IDYpIHx8IChob3N0X2FnZW50ID09IDApOwogCQlpbnQgcGNpZV9jb25maWd1cmVkICA9IGlvX3NlbCAmIDQ7CiAKIAkJaWYgKHBjaWVfY29uZmlndXJlZCAmJiAhKGRldmRpc3IgJiBNUEM4NXh4X0RFVkRJU1JfUENJRSkpewpAQCAtMjU5LDIzICsyNjIsMjMgQEAKIAogCQkJLyogaW5ib3VuZCAqLwogCQkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkJCUNGR19QQ0lfTUVNT1JZX0JVUywKLQkJCQkJQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCQkJQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJCQlQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCQkJQ0ZHX1BDSUUyX01FTV9CQVNFLAotCQkJCQlDRkdfUENJRTJfTUVNX1BIWVMsCi0JCQkJCUNGR19QQ0lFMl9NRU1fU0laRSwKKwkJCQkJQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRSwKKwkJCQkJQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUywKKwkJCQkJQ09ORklHX1NZU19QQ0lFMl9NRU1fU0laRSwKIAkJCQkJUENJX1JFR0lPTl9NRU0pOwogCiAJCQkvKiBvdXRib3VuZCBpbyAqLwogCQkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkJCUNGR19QQ0lFMl9JT19CQVNFLAotCQkJCQlDRkdfUENJRTJfSU9fUEhZUywKLQkJCQkJQ0ZHX1BDSUUyX0lPX1NJWkUsCisJCQkJCUNPTkZJR19TWVNfUENJRTJfSU9fQkFTRSwKKwkJCQkJQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTLAorCQkJCQlDT05GSUdfU1lTX1BDSUUyX0lPX1NJWkUsCiAJCQkJCVBDSV9SRUdJT05fSU8pOwogCiAJCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpAQCAtMjk3LDEwICszMDAsMTAgQEAKICNlbmRpZgogI2lmZGVmIENPTkZJR19QQ0lFMQogCXsKLQkJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJRTFfQUREUjsKKwkJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSUUxX0FERFI7CiAJCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCQlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpZTFfaG9zZTsKLQkJaW50IHBjaWVfZXAgPSAoaG9zdF9hZ2VudCA9PSAxKSB8fCAoaG9zdF9hZ2VudCA9PSA0KSB8fAorCQlpbnQgcGNpZV9lcCA9IChob3N0X2FnZW50IDw9IDEpIHx8IChob3N0X2FnZW50ID09IDQpIHx8CiAJCQkoaG9zdF9hZ2VudCA9PSA1KTsKIAkJaW50IHBjaWVfY29uZmlndXJlZCAgPSBpb19zZWwgJiA2OwogCkBAIC0zMTYsMjMgKzMxOSwyMyBAQAogCiAJCQkvKiBpbmJvdW5kICovCiAJCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCQkJQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJCQlDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJCQlDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJCQlDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkJCVBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJCQlDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkJCUNGR19QQ0lFMV9NRU1fUEhZUywKLQkJCQkJQ0ZHX1BDSUUxX01FTV9TSVpFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTLAorCQkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFLAogCQkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJCS8qIG91dGJvdW5kIGlvICovCiAJCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCQkJQ0ZHX1BDSUUxX0lPX0JBU0UsCi0JCQkJCUNGR19QQ0lFMV9JT19QSFlTLAotCQkJCQlDRkdfUENJRTFfSU9fU0laRSwKKwkJCQkJQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAorCQkJCQlDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsCisJCQkJCUNPTkZJR19TWVNfUENJRTFfSU9fU0laRSwKIAkJCQkJUENJX1JFR0lPTl9JTyk7CiAKIAkJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CkBAIC0zNTksOCArMzYyLDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfcih2b2lkKQogewotCXVuc2lnbmVkIGludCBpOwotCWNvbnN0IHVuc2lnbmVkIGludCBmbGFzaGJhc2UgPSBDRkdfRkxBU0hfQkFTRTsKKwljb25zdCB1bnNpZ25lZCBpbnQgZmxhc2hiYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWNvbnN0IHU4IGZsYXNoX2VzZWwgPSAyOwogCiAJLyoKQEAgLTM2OCwxMSArMzcwLDkgQEAKIAkgKiBzbyB0aGF0IGZsYXNoIGNhbiBiZSBlcmFzZWQgcHJvcGVybHkuCiAJICovCiAKLQkvKiBJbnZhbGlkYXRlIGFueSByZW1haW5pbmcgbGluZXMgb2YgdGhlIGZsYXNoIGZyb20gY2FjaGVzLiAqLwotCWZvciAoaSA9IDA7IGkgPCAyNTYqMTAyNCoxMDI0OyBpKz0zMikgewotCQlhc20gdm9sYXRpbGUgKCJkY2JpICUwLCUxIjogOiAiYiIgKGZsYXNoYmFzZSksICJyIiAoaSkpOwotCQlhc20gdm9sYXRpbGUgKCJpY2JpICUwLCUxIjogOiAiYiIgKGZsYXNoYmFzZSksICJyIiAoaSkpOwotCX0KKwkvKiBGbHVzaCBkLWNhY2hlIGFuZCBpbnZhbGlkYXRlIGktY2FjaGUgb2YgYW55IEZMQVNIIGRhdGEgKi8KKyAgICAgICAgZmx1c2hfZGNhY2hlKCk7CisgICAgICAgIGludmFsaWRhdGVfaWNhY2hlKCk7CiAKIAkvKiBpbnZhbGlkYXRlIGV4aXN0aW5nIFRMQiBlbnRyeSBmb3IgZmxhc2ggKyBwcm9tamV0ICovCiAJZGlzYWJsZV90bGIoZmxhc2hfZXNlbCk7CkBAIC01MjEsNiArNTIxLDUyIEBACiB9CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19UU0VDX0VORVQKK2ludCBib2FyZF9ldGhfaW5pdChiZF90ICpiaXMpCit7CisJc3RydWN0IHRzZWNfaW5mb19zdHJ1Y3QgdHNlY19pbmZvWzRdOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCWludCBudW0gPSAwOworCisjaWZkZWYgQ09ORklHX1RTRUMxCisJU0VUX1NURF9UU0VDX0lORk8odHNlY19pbmZvW251bV0sIDEpOworCWlmICghKGd1ci0+cG9yZGV2c3IgJiBNUEM4NXh4X1BPUkRFVlNSX1NHTUlJMV9ESVMpKQorCQl0c2VjX2luZm9bbnVtXS5mbGFncyB8PSBUU0VDX1NHTUlJOworCW51bSsrOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1RTRUMyCisJU0VUX1NURF9UU0VDX0lORk8odHNlY19pbmZvW251bV0sIDIpOworCWlmICghKGd1ci0+cG9yZGV2c3IgJiBNUEM4NXh4X1BPUkRFVlNSX1NHTUlJMl9ESVMpKQorCQl0c2VjX2luZm9bbnVtXS5mbGFncyB8PSBUU0VDX1NHTUlJOworCW51bSsrOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1RTRUMzCisJU0VUX1NURF9UU0VDX0lORk8odHNlY19pbmZvW251bV0sIDMpOworCWlmICghKGd1ci0+cG9yZGV2c3IgJiBNUEM4NXh4X1BPUkRFVlNSX1NHTUlJM19ESVMpKQorCQl0c2VjX2luZm9bbnVtXS5mbGFncyB8PSBUU0VDX1NHTUlJOworCW51bSsrOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1RTRUM0CisJU0VUX1NURF9UU0VDX0lORk8odHNlY19pbmZvW251bV0sIDQpOworCWlmICghKGd1ci0+cG9yZGV2c3IgJiBNUEM4NXh4X1BPUkRFVlNSX1NHTUlJNF9ESVMpKQorCQl0c2VjX2luZm9bbnVtXS5mbGFncyB8PSBUU0VDX1NHTUlJOworCW51bSsrOworI2VuZGlmCisKKwlpZiAoIW51bSkgeworCQlwcmludGYoIk5vIFRTRUNzIGluaXRpYWxpemVkXG4iKTsKKworCQlyZXR1cm4gMDsKKwl9CisKKwlmc2xfc2dtaWlfcmlzZXJfaW5pdCh0c2VjX2luZm8sIG51bSk7CisKKwl0c2VjX2V0aF9pbml0KGJpcywgdHNlY19pbmZvLCBudW0pOworCisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKwogI2lmIGRlZmluZWQoQ09ORklHX09GX0JPQVJEX1NFVFVQKQogdm9pZCBmdF9ib2FyZF9zZXR1cCh2b2lkICpibG9iLCBiZF90ICpiZCkKIHsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTcyZHMvdGxiLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODU3MmRzL3RsYi5jCmluZGV4IDk2NTM1NmEuLjFjNWVkM2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NTcyZHMvdGxiLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg1NzJkcy90bGIuYwpAQCAtMjgsMTYgKzI4LDE2IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIsIENGR19JTklUX1JBTV9BRERSLAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKIApAQCAtNTIsMzIgKzUyLDMyIEBACiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMSksCiAKIAkvKiAqSSpHKiAtIENDU1JCQVIgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8xTSwgMSksCiAKIAkvKiBXKipHKiAtIEZsYXNoL3Byb21qZXQsIGxvY2FsYnVzICovCiAJLyogVGhpcyB3aWxsIGJlIGNoYW5nZWQgdG8gKkkqRyogYWZ0ZXIgcmVsb2NhdGlvbiB0byBSQU0uICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX1d8TUFTMl9HLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgIE1BUzNfU1h8TUFTM19TUiwgTUFTMl9XfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCiAJLyogKkkqRyogLSBQQ0kgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lFM19NRU1fUEhZUywgQ0ZHX1BDSUUzX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lFM19NRU1fUEhZUywgQ09ORklHX1NZU19QQ0lFM19NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8xRywgMSksCiAKIAkvKiAqSSpHKiAtIFBDSSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSUUzX01FTV9QSFlTICsgMHg0MDAwMDAwMCwgQ0ZHX1BDSUUzX01FTV9QSFlTICsgMHg0MDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMgKyAweDQwMDAwMDAwLCBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTICsgMHg0MDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSUUzX01FTV9QSFlTICsgMHg1MDAwMDAwMCwgQ0ZHX1BDSUUzX01FTV9QSFlTICsgMHg1MDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMgKyAweDUwMDAwMDAwLCBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTICsgMHg1MDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIAogCS8qICpJKkcqIC0gUENJIEkvTyAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSUUzX0lPX1BIWVMsIENGR19QQ0lFM19JT19QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lFM19JT19QSFlTLCBDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfMjU2SywgMSksCiB9OwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL2Rkci5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL2Rkci5jCmluZGV4IDJkMjJkYTEuLjQxNGFjMjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjEwaHBjZC9kZHIuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODYxMGhwY2QvZGRyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxpMmMuaD4KIAogI2luY2x1ZGUgPGFzbS9mc2xfZGRyX3NkcmFtLmg+CisjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfZGltbV9wYXJhbXMuaD4KIAogc3RhdGljIHZvaWQKIGdldF9zcGQoZGRyMl9zcGRfZWVwcm9tX3QgKnNwZCwgdW5zaWduZWQgY2hhciBpMmNfYWRkcmVzcykKQEAgLTM2LDcgKzM3LDkgQEAKIAl9CiB9CiAKLXZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLCB1bnNpZ25lZCBpbnQgY3RybF9udW0pCit2b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywKKwkJCQlkaW1tX3BhcmFtc190ICpwZGltbSwKKwkJCQl1bnNpZ25lZCBpbnQgY3RybF9udW0pCiB7CiAJLyoKIAkgKiBGYWN0b3JzIHRvIGNvbnNpZGVyIGZvciBjbG9jayBhZGp1c3Q6CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODYxMGhwY2QvbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODYxMGhwY2QvbGF3LmMKaW5kZXggOTFiOTIyYi4uMmFhZDI4YSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjEwaHBjZC9sYXcuYwpAQCAtMjksMTYgKzI5LDE2IEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWYgIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUl8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUl8xKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSUUxX01FTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSUUyX01FTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX1BDSUVfMiksCiAJU0VUX0xBVyhQSVhJU19CQVNFLCBMQVdfU0laRV8yTSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0lFMV9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKLQlTRVRfTEFXKENGR19QQ0lFMl9JT19QSFlTLCBMQVdfU0laRV8xTSwgTEFXX1RSR1RfSUZfUENJRV8yKSwKLQlTRVRfTEFXKENGR19GTEFTSF9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX1BDSV8xKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lfMSkKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSUVfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMsIExBV19TSVpFXzFNLCBMQVdfVFJHVF9JRl9QQ0lFXzIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMU0sIExBV19UUkdUX0lGX1BDSV8xKQogfTsKIAogaW50IG51bV9sYXdfZW50cmllcyA9IEFSUkFZX1NJWkUobGF3X3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjEwaHBjZC9tcGM4NjEwaHBjZC5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkLmMKaW5kZXggMTMwZjdhYS4uNWZhZWNhMSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkLmMKKysrIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIC8qIGNhbGxlZCBiZWZvcmUgYW55IGNvbnNvbGUgb3V0cHV0ICovCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gJmltbWFwLT5pbV9ndXI7CiAKIAlndXItPmdwaW9jciB8PSAweDg4YWE1NTAwOyAvKiBESVUxNiwgSVIxLCBVQVJUMCwgVUFSVDIgKi8KQEAgLTk4LDcgKzk4LDcgQEAKIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2xvY2FsX21jbV90ICptY20gPSAmaW1tYXAtPmltX2xvY2FsX21jbTsKIAogCXByaW50ZiAoIkJvYXJkOiBNUEM4NjEwSFBDRCwgU3lzdGVtIElEOiAweCUwMngsICIKQEAgLTEyOSw3ICsxMjksNyBAQAogCWRyYW1fc2l6ZSA9IGZpeGVkX3NkcmFtKCk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAJcHV0cygiIEREUjogIik7CiAJcmV0dXJuIGRyYW1fc2l6ZTsKICNlbmRpZgpAQCAtMTUzLDggKzE1Myw4IEBACiAKIGxvbmcgaW50IGZpeGVkX3NkcmFtKHZvaWQpCiB7Ci0jaWYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICZpbW1hcC0+aW1fZGRyMTsKIAl1aW50IGRfaW5pdDsKIApAQCAtMjAxLDcgKzIwMSw3IEBACiAKIAlyZXR1cm4gNTEyICogMTAyNCAqIDEwMjQ7CiAjZW5kaWYKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9CiAKICNlbmRpZgpAQCAtMjQyLDcgKzI0Miw3IEBACiAKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19DQ1NSQkFSOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19DQ1NSQkFSOwogCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICZpbW1hcC0+aW1fZ3VyOwogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODYxMF9QT1JERVZTUl9JT19TRUwpCkBAIC0yNTUsNyArMjU1LDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0lFMQogIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0lFMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0lFMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCWludCBwY2llX2NvbmZpZ3VyZWQgPSAoaW9fc2VsID09IDEpIHx8IChpb19zZWwgPT0gNCk7CkBAIC0yNzEsMjMgKzI3MSwyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSBDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkgQ0ZHX1BDSUUxX01FTV9QSFlTLAotCQkJIENGR19QQ0lFMV9NRU1fU0laRSwKKwkJCSBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsCisJCQkgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRSwKIAkJCSBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgQ0ZHX1BDSUUxX0lPX0JBU0UsCi0JCQkgQ0ZHX1BDSUUxX0lPX1BIWVMsCi0JCQkgQ0ZHX1BDSUUxX0lPX1NJWkUsCisJCQkgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAorCQkJIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUywKKwkJCSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUsCiAJCQkgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTMxMiw3ICszMTIsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSUUyCiAgewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUyX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSUUyX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUyX2hvc2U7CiAKQEAgLTMzMCwyMyArMzMwLDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJIENGR19QQ0lFMl9NRU1fQkFTRSwKLQkJCSBDRkdfUENJRTJfTUVNX1BIWVMsCi0JCQkgQ0ZHX1BDSUUyX01FTV9TSVpFLAorCQkJIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UsCisJCQkgQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUywKKwkJCSBDT05GSUdfU1lTX1BDSUUyX01FTV9TSVpFLAogCQkJIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSBDRkdfUENJRTJfSU9fQkFTRSwKLQkJCSBDRkdfUENJRTJfSU9fUEhZUywKLQkJCSBDRkdfUENJRTJfSU9fU0laRSwKKwkJCSBDT05GSUdfU1lTX1BDSUUyX0lPX0JBU0UsCisJCQkgQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTLAorCQkJIENPTkZJR19TWVNfUENJRTJfSU9fU0laRSwKIAkJCSBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpAQCAtMzcwLDcgKzM3MCw3IEBACiAKICNpZmRlZiBDT05GSUdfUENJMQogIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMV9ob3NlOwogCWludCBwY2lfYWdlbnQgPSAoaG9zdF9hZ2VudCA+PSA0KSAmJiAoaG9zdF9hZ2VudCA8PSA2KTsKQEAgLTM4MywyMyArMzgzLDIzIEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJIENGR19QQ0kxX01FTV9CQVNFLAotCQkJIENGR19QQ0kxX01FTV9QSFlTLAotCQkJIENGR19QQ0kxX01FTV9TSVpFLAorCQkJIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJIFBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJCSBDRkdfUENJMV9JT19CQVNFLAotCQkJIENGR19QQ0kxX0lPX1BIWVMsCi0JCQkgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJCSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJCSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJCSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJCSBQQ0lfUkVHSU9OX0lPKTsKIAogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkX2RpdS5jIGIvYm9hcmQvZnJlZXNjYWxlL21wYzg2MTBocGNkL21wYzg2MTBocGNkX2RpdS5jCmluZGV4IDRkYjk0MWMuLmNkMjVkNGEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjEwaHBjZC9tcGM4NjEwaHBjZF9kaXUuYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODYxMGhwY2QvbXBjODYxMGhwY2RfZGl1LmMKQEAgLTQzLDcgKzQzLDcgQEAKIAogdm9pZCBkaXVfc2V0X3BpeGVsX2Nsb2NrKHVuc2lnbmVkIGludCBwaXhjbG9jaykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAmaW1tYXAtPmltX2d1cjsKIAl2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKmd1dHNfY2xrZHZkciA9ICZndXItPmNsa2R2ZHI7CiAJdW5zaWduZWQgbG9uZyBzcGVlZF9jY2IsIHRlbXAsIHBpeHZhbDsKQEAgLTEzNyw3ICsxMzcsNyBAQAogfQogCiBVX0JPT1RfQ01EKAotCWRpdWZiLCBDRkdfTUFYQVJHUywgMSwgbXBjODYxMGRpdV9pbml0X3Nob3dfYm1wLAorCWRpdWZiLCBDT05GSUdfU1lTX01BWEFSR1MsIDEsIG1wYzg2MTBkaXVfaW5pdF9zaG93X2JtcCwKIAkiZGl1ZmIgaW5pdCB8IGFkZHIgLSBJbml0IG9yIERpc3BsYXkgQk1QIGZpbGVcbiIsCiAJImluaXRcbiAgICAtIGluaXRpYWxpemUgRElVXG4iCiAJImFkZHJcbiAgICAtIGRpc3BsYXkgYm1wIGF0IGFkZHJlc3MgJ2FkZHInXG4iCmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vZGRyLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vZGRyLmMKaW5kZXggNTE2M2FiZi4uNTE3YzZlZSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2NDFocGNuL2Rkci5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjQxaHBjbi9kZHIuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogCiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9kaW1tX3BhcmFtcy5oPgogCiBzdGF0aWMgdm9pZAogZ2V0X3NwZChkZHIyX3NwZF9lZXByb21fdCAqc3BkLCB1bnNpZ25lZCBjaGFyIGkyY19hZGRyZXNzKQpAQCAtNDUsNDQgKzQ2LDEyMCBAQAogCX0KIH0KIAotdm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsIHVuc2lnbmVkIGludCBjdHJsX251bSkKK3R5cGVkZWYgc3RydWN0IHsKKyAgICAgICAgdTMyIGRhdGFyYXRlX21oel9sb3c7CisgICAgICAgIHUzMiBkYXRhcmF0ZV9taHpfaGlnaDsKKyAgICAgICAgdTMyIG5fcmFua3M7CisgICAgICAgIHUzMiBjbGtfYWRqdXN0OworICAgICAgICB1MzIgY3BvOworICAgICAgICB1MzIgd3JpdGVfZGF0YV9kZWxheTsKK30gYm9hcmRfc3BlY2lmaWNfcGFyYW1ldGVyc190OworCisvKiBYWFg6IHRoZXNlIHZhbHVlcyBuZWVkIHRvIGJlIGNoZWNrZWQgZm9yIGFsbCBpbnRlcmxlYXZpbmcgbW9kZXMuICAqLworY29uc3QgYm9hcmRfc3BlY2lmaWNfcGFyYW1ldGVyc190IGJvYXJkX3NwZWNpZmljX3BhcmFtZXRlcnNbMl1bMTZdID0geworCXsKKwkvKiAJbWVtb3J5IGNvbnRyb2xsZXIgMAkJIAkqLworCS8qCSAgbG98ICBoaXwgIG51bXwgIGNsa3wgY3BvfHdyZGF0YQkqLworCS8qCSBtaHp8IG1oenxyYW5rc3xhZGpzdHwgICAgfCBkZWxheQkqLworCQl7ICAwLCAzMzMsICAgIDQsICAgIDcsICAgNywgICAgIDN9LAorCQl7MzM0LCA0MDAsICAgIDQsICAgIDcsICAgOSwgICAgIDN9LAorCQl7NDAxLCA1NDksICAgIDQsICAgIDcsICAgOSwgICAgIDN9LAorCQl7NTUwLCA2NTAsICAgIDQsICAgIDcsICAxMCwgICAgIDR9LAorCisJCXsgIDAsIDMzMywgICAgMywgICAgNywgICA3LCAgICAgM30sCisJCXszMzQsIDQwMCwgICAgMywgICAgNywgICA5LCAgICAgM30sCisJCXs0MDEsIDU0OSwgICAgMywgICAgNywgICA5LCAgICAgM30sCisJCXs1NTAsIDY1MCwgICAgMywgICAgNywgIDEwLCAgICAgNH0sCisKKwkJeyAgMCwgMzMzLCAgICAyLCAgICA3LCAgIDcsICAgICAzfSwKKwkJezMzNCwgNDAwLCAgICAyLCAgICA3LCAgIDksICAgICAzfSwKKwkJezQwMSwgNTQ5LCAgICAyLCAgICA3LCAgIDksICAgICAzfSwKKwkJezU1MCwgNjUwLCAgICAyLCAgICA3LCAgMTAsICAgICA0fSwKKworCQl7ICAwLCAzMzMsICAgIDEsICAgIDcsICAgNywgICAgIDN9LAorCQl7MzM0LCA0MDAsICAgIDEsICAgIDcsICAgOSwgICAgIDN9LAorCQl7NDAxLCA1NDksICAgIDEsICAgIDcsICAgOSwgICAgIDN9LAorCQl7NTUwLCA2NTAsICAgIDEsICAgIDcsICAxMCwgICAgIDR9CisJfSwKKworCXsKKwkvKiAJbWVtb3J5IGNvbnRyb2xsZXIgMQkJCSovCisJLyogICAgICAgIGxvfCAgaGl8ICBudW18ICBjbGt8IGNwb3x3cmRhdGEJKi8KKwkvKiAgICAgICBtaHp8IG1oenxyYW5rc3xhZGpzdHwgICAgfCBkZWxheQkqLworCQl7ICAwLCAzMzMsICAgIDQsICAgIDcsICAgNywgICAgM30sCisJCXszMzQsIDQwMCwgICAgNCwgICAgNywgICA5LCAgICAzfSwKKwkJezQwMSwgNTQ5LCAgICA0LCAgICA3LCAgIDksICAgIDN9LAorCQl7NTUwLCA2NTAsICAgIDQsICAgIDcsICAxMCwgICAgNH0sCisKKwkJeyAgMCwgMzMzLCAgICAzLCAgICA3LCAgIDcsICAgIDN9LAorCQl7MzM0LCA0MDAsICAgIDMsICAgIDcsICAgOSwgICAgM30sCisJCXs0MDEsIDU0OSwgICAgMywgICAgNywgICA5LCAgICAzfSwKKwkJezU1MCwgNjUwLCAgICAzLCAgICA3LCAgMTAsICAgIDR9LAorCisJCXsgIDAsIDMzMywgICAgMiwgICAgNywgICA3LCAgICAzfSwKKwkJezMzNCwgNDAwLCAgICAyLCAgICA3LCAgIDksICAgIDN9LAorCQl7NDAxLCA1NDksICAgIDIsICAgIDcsICAgOSwgICAgM30sCisJCXs1NTAsIDY1MCwgICAgMiwgICAgNywgIDEwLCAgICA0fSwKKworCQl7ICAwLCAzMzMsICAgIDEsICAgIDcsICAgNywgICAgM30sCisJCXszMzQsIDQwMCwgICAgMSwgICAgNywgICA5LCAgICAzfSwKKwkJezQwMSwgNTQ5LCAgICAxLCAgICA3LCAgIDksICAgIDN9LAorCQl7NTUwLCA2NTAsICAgIDEsICAgIDcsICAxMCwgICAgNH0KKwl9Cit9OworCit2b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywKKwkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAorCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewotCS8qCi0JICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgY2xvY2sgYWRqdXN0OgotCSAqCS0gbnVtYmVyIG9mIGNoaXBzIG9uIGJ1cwotCSAqCS0gcG9zaXRpb24gb2Ygc2xvdAotCSAqCS0gRERSMSB2cy4gRERSMj8KLQkgKgktID8/PwotCSAqCi0JICogVGhpcyBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIG9uIGEgYm9hcmQtYnktYm9hcmQgYmFzaXMuCi0JICoJMDExMAkzLzQgY3ljbGUgbGF0ZQotCSAqCTAxMTEJNy84IGN5Y2xlIGxhdGUKLQkgKi8KLQlwb3B0cy0+Y2xrX2FkanVzdCA9IDc7CisJY29uc3QgYm9hcmRfc3BlY2lmaWNfcGFyYW1ldGVyc190ICpwYnNwID0KKwkJCSYoYm9hcmRfc3BlY2lmaWNfcGFyYW1ldGVyc1tjdHJsX251bV1bMF0pOworCXUzMiBudW1fcGFyYW1zID0gc2l6ZW9mKGJvYXJkX3NwZWNpZmljX3BhcmFtZXRlcnNbY3RybF9udW1dKSAvCisJCQlzaXplb2YoYm9hcmRfc3BlY2lmaWNfcGFyYW1ldGVyc1swXVswXSk7CisJdTMyIGk7CisJdTMyIGo7CisJdWxvbmcgZGRyX2ZyZXE7CiAKLQkvKgotCSAqIEZhY3RvcnMgdG8gY29uc2lkZXIgZm9yIENQTzoKLQkgKgktIGZyZXF1ZW5jeQotCSAqCS0gZGRyMSB2cy4gZGRyMgorCS8qIHNldCBvZHRfcmRfY2ZnIGFuZCBvZHRfd3JfY2ZnLiBJZiB0aGUgdGhlcmUgaXMgb25seSBvbmUgZGltbSBpbgorCSAqIHRoYXQgY29udHJvbGxlciwgc2V0IG9kdF93cl9jZmcgdG8gNCBmb3IgQ1MwLCBhbmQgMCB0byBDUzEuIElmCisJICogdGhlcmUgYXJlIHR3byBkaW1tcyBpbiB0aGUgY29udHJvbGxlciwgc2V0IG9kdF9yZF9jZmcgdG8gMyBhbmQKKwkgKiBvZHRfd3JfY2ZnIHRvIDMgZm9yIHRoZSBldmVuIENTLCAwIGZvciB0aGUgb2RkIENTLgogCSAqLwotCXBvcHRzLT5jcG9fb3ZlcnJpZGUgPSAxMDsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX0NISVBfU0VMRUNUU19QRVJfQ1RSTDsgaSsrKSB7CisJCWlmIChpJjEpIHsgICAgICAvKiBvZGQgQ1MgKi8KKwkJCXBvcHRzLT5jc19sb2NhbF9vcHRzW2ldLm9kdF9yZF9jZmcgPSAwOworCQkJcG9wdHMtPmNzX2xvY2FsX29wdHNbaV0ub2R0X3dyX2NmZyA9IDA7CisJCX0gZWxzZSB7ICAgICAgICAvKiBldmVuIENTICovCisJCQlpZiAoKENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSID09IDIpICYmCisJCQkJKHBkaW1tW2kvMl0ubl9yYW5rcyAhPSAwKSkgeworCQkJCXBvcHRzLT5jc19sb2NhbF9vcHRzW2ldLm9kdF9yZF9jZmcgPSAzOworCQkJCXBvcHRzLT5jc19sb2NhbF9vcHRzW2ldLm9kdF93cl9jZmcgPSAzOworCQkJfSBlbHNlIHsKKwkJCQlwb3B0cy0+Y3NfbG9jYWxfb3B0c1tpXS5vZHRfcmRfY2ZnID0gMDsKKwkJCQlwb3B0cy0+Y3NfbG9jYWxfb3B0c1tpXS5vZHRfd3JfY2ZnID0gNDsKKwkJCX0KKwkJfQorCX0KIAotCS8qCi0JICogRmFjdG9ycyB0byBjb25zaWRlciBmb3Igd3JpdGUgZGF0YSBkZWxheToKLQkgKgktIG51bWJlciBvZiBESU1NcwotCSAqCi0JICogMSA9IDEvNCBjbG9jayBkZWxheQotCSAqIDIgPSAxLzIgY2xvY2sgZGVsYXkKLQkgKiAzID0gMy80IGNsb2NrIGRlbGF5Ci0JICogNCA9IDEgICBjbG9jayBkZWxheQotCSAqIDUgPSA1LzQgY2xvY2sgZGVsYXkKLQkgKiA2ID0gMy8yIGNsb2NrIGRlbGF5CisJLyogR2V0IGNsa19hZGp1c3QsIGNwbywgd3JpdGVfZGF0YV9kZWxheSwgYWNjb3JkaW5nIHRvIHRoZSBib2FyZCBkZHIKKwkgKiBmcmVxZW5jeSBhbmQgbl9iYW5rcyBzcGVjaWZpZWQgaW4gYm9hcmRfc3BlY2lmaWNfcGFyYW1ldGVycyB0YWJsZS4KIAkgKi8KLQlwb3B0cy0+d3JpdGVfZGF0YV9kZWxheSA9IDM7CisJZGRyX2ZyZXEgPSBmc2xfZGRyX2dldF9tZW1fZGF0YV9yYXRlKCkgLyAxMDAwMDAwOworCWZvciAoaiA9IDA7IGogPCBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUjsgaisrKSB7CisJCWlmIChwZGltbVtqXS5uX3JhbmtzID4gMCkgeworCQkJZm9yIChpID0gMDsgaSA8IG51bV9wYXJhbXM7IGkrKykgeworCQkJCWlmIChkZHJfZnJlcSA+PSBwYnNwLT5kYXRhcmF0ZV9taHpfbG93ICYmCisJCQkJZGRyX2ZyZXEgPD0gcGJzcC0+ZGF0YXJhdGVfbWh6X2hpZ2ggJiYKKwkJCQlwZGltbVtqXS5uX3JhbmtzID09IHBic3AtPm5fcmFua3MpIHsKKwkJCQkJcG9wdHMtPmNsa19hZGp1c3QgPSBwYnNwLT5jbGtfYWRqdXN0OworCQkJCQlwb3B0cy0+Y3BvX292ZXJyaWRlID0gcGJzcC0+Y3BvOworCQkJCQlwb3B0cy0+d3JpdGVfZGF0YV9kZWxheSA9CisJCQkJCQlwYnNwLT53cml0ZV9kYXRhX2RlbGF5OworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJcGJzcCsrOworCQkJfQorCQl9CisJfQogCi0JLyoKLQkgKiBGYWN0b3JzIHRvIGNvbnNpZGVyIGZvciBoYWxmLXN0cmVuZ3RoIGRyaXZlciBlbmFibGU6Ci0JICoJLSBudW1iZXIgb2YgRElNTXMgaW5zdGFsbGVkCi0JICovCi0JcG9wdHMtPmhhbGZfc3RyZW5ndGhfZHJpdmVyX2VuYWJsZSA9IDA7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbGF3LmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbGF3LmMKaW5kZXggMmQ2YzNjMS4uMTgyYjRjNSAxMDA2NDQKLS0tIGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2NDFocGNuL2xhdy5jCisrKyBiL2JvYXJkL2ZyZWVzY2FsZS9tcGM4NjQxaHBjbi9sYXcuYwpAQCAtNDcsMTggKzQ3LDE4IEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWYgIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8xKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8xKSwKLQlTRVRfTEFXKENGR19QQ0kyX01FTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAogCVNFVF9MQVcoUElYSVNfQkFTRSwgTEFXX1NJWkVfMk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8xKSwKLQlTRVRfTEFXKENGR19QQ0kyX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJXzIpLAotCVNFVF9MQVcoKENGR19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCksIExBV19TSVpFXzMyTSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSwgTEFXX1NJWkVfMzJNLCBMQVdfVFJHVF9JRl9MQkMpLAogI2lmICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFJfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFJfMiksCiAjZW5kaWYKLQlTRVRfTEFXKENGR19SSU9fTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTykKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnJlZXNjYWxlL21wYzg2NDFocGNuL21wYzg2NDFocGNuLmMgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbXBjODY0MWhwY24uYwppbmRleCA5N2Y3ZjQ5Li5mY2FhYWNiIDEwMDY0NAotLS0gYS9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbXBjODY0MWhwY24uYworKysgYi9ib2FyZC9mcmVlc2NhbGUvbXBjODY0MWhwY24vbXBjODY0MWhwY24uYwpAQCAtNjUsNyArNjUsNyBAQAogCWRyYW1fc2l6ZSA9IGZpeGVkX3NkcmFtKCk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAJcHV0cygiICAgIEREUjogIik7CiAJcmV0dXJuIGRyYW1fc2l6ZTsKICNlbmRpZgpAQCAtODksMjMgKzg5LDIzIEBACiBsb25nIGludAogZml4ZWRfc2RyYW0odm9pZCkKIHsKLSNpZiAhZGVmaW5lZChDRkdfUkFNQk9PVCkKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHIgPSAmaW1tYXAtPmltX2RkcjE7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JZGRyLT50aW1pbmdfY2ZnXzMgPSBDRkdfRERSX1RJTUlOR18zOwotCWRkci0+dGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZV8xID0gQ0ZHX0REUl9NT0RFXzE7Ci0JZGRyLT5zZHJhbV9tb2RlXzIgPSBDRkdfRERSX01PREVfMjsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENGR19ERFJfREFUQV9JTklUOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DVFJMOwotCWRkci0+c2RyYW1fb2NkX2NudGwgPSBDRkdfRERSX09DRF9DVFJMOwotCWRkci0+c2RyYW1fb2NkX3N0YXR1cyA9IENGR19ERFJfT0NEX1NUQVRVUzsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJZGRyLT5jczBfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlkZHItPnRpbWluZ19jZmdfMyA9IENPTkZJR19TWVNfRERSX1RJTUlOR18zOworCWRkci0+dGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZV8xID0gQ09ORklHX1NZU19ERFJfTU9ERV8xOworCWRkci0+c2RyYW1fbW9kZV8yID0gQ09ORklHX1NZU19ERFJfTU9ERV8yOworCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENPTkZJR19TWVNfRERSX0RBVEFfSU5JVDsKKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NUUkw7CisJZGRyLT5zZHJhbV9vY2RfY250bCA9IENPTkZJR19TWVNfRERSX09DRF9DVFJMOworCWRkci0+c2RyYW1fb2NkX3N0YXR1cyA9IENPTkZJR19TWVNfRERSX09DRF9TVEFUVVM7CiAKICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAlkZHItPmVycl9kaXNhYmxlID0gMHgwMDAwMDA4RDsKQEAgLTExNywxNiArMTE3LDE2IEBACiAKICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAkvKiBFbmFibGUgRUNDIGNoZWNraW5nICovCi0JZGRyLT5zZHJhbV9jZmdfMSA9IChDRkdfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKKwlkZHItPnNkcmFtX2NmZ18xID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKICNlbHNlCi0JZGRyLT5zZHJhbV9jZmdfMSA9IENGR19ERFJfQ09OVFJPTDsKLQlkZHItPnNkcmFtX2NmZ18yID0gQ0ZHX0REUl9DT05UUk9MMjsKKwlkZHItPnNkcmFtX2NmZ18xID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKKwlkZHItPnNkcmFtX2NmZ18yID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDI7CiAjZW5kaWYKIAlhc20oInN5bmM7IGlzeW5jIik7CiAKIAl1ZGVsYXkoNTAwKTsKICNlbmRpZgotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH0KICNlbmRpZgkvKiAhZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkgKi8KIApAQCAtMTY0LDcgKzE2NCw3IEBACiAKIHZvaWQgcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19DQ1NSQkFSOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19DQ1NSQkFSOwogCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICZpbW1hcC0+aW1fZ3VyOwogCXVpbnQgZGV2ZGlzciA9IGd1ci0+ZGV2ZGlzcjsKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODY0MV9QT1JERVZTUl9JT19TRUwpCkBAIC0xNzIsNyArMTcyLDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0kxCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDRkdfUENJMV9BRERSOworCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ09ORklHX1NZU19QQ0kxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTFfaG9zZTsKICNpZmRlZiBERUJVRwpAQCAtMTk0LDIzICsxOTQsMjMgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0kxX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMV9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CkBAIC0yMjgsOCArMjI4LDggQEAKIAkJICogQWN0aXZhdGUgVUxJMTU3NSBsZWdhY3kgY2hpcCBieSBwZXJmb3JtaW5nIGEgZmFrZQogCQkgKiBtZW1vcnkgYWNjZXNzLiAgTmVlZGVkIHRvIG1ha2UgVUxJIFJUQyB3b3JrLgogCQkgKi8KLQkJaW5fYmUzMigodW5zaWduZWQgKikgKChjaGFyICopKENGR19QQ0kxX01FTV9CQVNFCi0JCQkJICAgICAgICsgQ0ZHX1BDSTFfTUVNX1NJWkUgLSAweDEwMDAwMDApKSk7CisJCWluX2JlMzIoKHVuc2lnbmVkICopICgoY2hhciAqKShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKwkJCQkgICAgICAgKyBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUgLSAweDEwMDAwMDApKSk7CiAKIAl9IGVsc2UgewogCQlwdXRzKCJQQ0ktRVhQUkVTUyAxOiBEaXNhYmxlZFxuIik7CkBAIC0yNDEsMzAgKzI0MSwzMCBAQAogCiAjaWZkZWYgQ09ORklHX1BDSTIKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kyX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTJfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMl9ob3NlOwogCiAKIAkvKiBpbmJvdW5kICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJICAgICAgIENGR19QQ0kyX01FTV9CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIG91dGJvdW5kIGlvICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCSAgICAgICBDRkdfUENJMl9JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fUEhZUywKLQkJICAgICAgIENGR19QQ0kyX0lPX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CmRpZmYgLS1naXQgYS9ib2FyZC9mdW5rd2Vyay92b3Zwbi1ndy9mbGFzaC5jIGIvYm9hcmQvZnVua3dlcmsvdm92cG4tZ3cvZmxhc2guYwppbmRleCAwMzA4NjExLi5mZDNiMTZlIDEwMDY0NAotLS0gYS9ib2FyZC9mdW5rd2Vyay92b3Zwbi1ndy9mbGFzaC5jCisrKyBiL2JvYXJkL2Z1bmt3ZXJrL3ZvdnBuLWd3L2ZsYXNoLmMKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi1mbGFzaF9pbmZvX3QJCQkJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAkJCQlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI2RlZmluZSBGTEFTSF9DTURfUkVBRF9JRAkJMHg5MAogI2RlZmluZSBGTEFTSF9DTURfUkVBRF9TVEFUVVMJCTB4NzAKQEAgLTQ2LDcgKzQ2LDcgQEAKIAogI2RlZmluZSBGTEFTSF9XUklURV9CVUZGRVJfU0laRQkJMzIKIAotI2lmZGVmIENGR19GTEFTSF8xNkJJVAorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKICNkZWZpbmUgRkxBU0hfV09SRF9TSVpFCQkJdW5zaWduZWQgc2hvcnQKICNkZWZpbmUgRkxBU0hfSURfTUFTSwkJCTB4ZmZmZgogI2RlZmluZSBGTEFTSF9DTURfQUREUl9TSElGVAkJMApAQCAtMTMwLDEwICsxMzAsMTAgQEAKIAl1bnNpZ25lZCBsb25nCXNpemU7CiAJaW50CQlpOwogCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9Ci0Jc2l6ZSA9IGZsYXNoX2dldCgodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0KCh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggU2l6ZT0weCUwOGx4XG4iLCBzaXplKTsKIAkJcmV0dXJuICgwKTsKQEAgLTE0NSwxMCArMTQ1LDEwIEBACiAJCSAgICAgIGZsYXNoX2luZm9bMF0uc3RhcnRbMV0gLSAxLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9GTEFTSCwKLQkJICAgICAgQ0ZHX01PTklUT1JfRkxBU0grQ0ZHX01PTklUT1JfTEVOLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9GTEFTSCwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0ZMQVNIK0NPTkZJR19TWVNfTU9OSVRPUl9MRU4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAjaWZkZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMjY1LDcgKzI2NSw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgRkxBU0hfU1RBVFVTX0RPTkUpICE9IEZMQVNIX1NUQVRVU19ET05FKSB7Ci0JCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCXByaW50ZigiRmxhc2ggZXJhc2UgdGltZW91dCBhdCBhZGRyZXNzICVseFxuIiwgaW5mby0+c3RhcnRbc2VjdF0pOwogCQkJCSphZGRyID0gRkxBU0hfQ01EX1NVU1BFTkRfRVJBU0U7CiAJCQkJKmFkZHIgPSBGTEFTSF9DTURfUkVTRVQ7CkBAIC0zMDcsNyArMzA3LDcgQEAKIAkJCWVuYWJsZV9pbnRlcnJ1cHRzKCk7CiAJCX0KIAotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKC0xKTsKIAkJfQogCX0KQEAgLTMzNyw3ICszMzcsNyBAQAogCQkJCWJyZWFrOwogCQkJfQogCQl9Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gRkxBU0hfQ01EX1JFU0VUOwogCQkJcmV0dXJuICgtMSk7CiAJCX0KQEAgLTM2Nyw3ICszNjcsNyBAQAogCWFkZHIgPSAodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKIAlkc3QgPSAodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopIHVkc3Q7CiAKLSNpZmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAjZXJyb3IgTllJCiAjZWxzZQogCXdoaWxlIChjbnQgPiAwKSB7CkBAIC00MzUsNyArNDM1LDcgQEAKIAkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUoIShhZGRyWzBdICYgRkxBU0hfU1RBVFVTX0RPTkUpKXsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJGbGFzaCBwcm90ZWN0IHRpbWVvdXQgYXQgYWRkcmVzcyAlbHhcbiIsICBpbmZvLT5zdGFydFtzZWN0b3JdKTsKIAkJCWFkZHJbMF0gPSBGTEFTSF9DTURfUkVTRVQ7CiAJCQlyZXR1cm4gKDEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZnVua3dlcmsvdm92cG4tZ3cvdm92cG4tZ3cuYyBiL2JvYXJkL2Z1bmt3ZXJrL3ZvdnBuLWd3L3ZvdnBuLWd3LmMKaW5kZXggMWMzZjYyNy4uOGM0YWJkZCAxMDA2NDQKLS0tIGEvYm9hcmQvZnVua3dlcmsvdm92cG4tZ3cvdm92cG4tZ3cuYworKysgYi9ib2FyZC9mdW5rd2Vyay92b3Zwbi1ndy92b3Zwbi1ndy5jCkBAIC0xODksNyArMTg5LDcgQEAKIAl1bnNpZ25lZCBzaG9ydCB2YWw7CiAjZW5kaWYKIAotCWlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIDApOworCWlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAwKTsKIAogCS8qIFJlc2V0IHRoZSBQSFkgKi8KIAlpb3AtPnBkYXQgJj0gMHhmZmY3ZmZmZjsJLyogUEExMiA9IHxTV0lUQ0hfUkVTRVQgKi8KQEAgLTE5OCwxMiArMTk4LDEyIEBACiAJaW9wLT5wZGF0IHw9IDB4MDAwODAwMDA7CiAJZm9yIChpPTA7IGk8MTAwOyBpKyspIHsKIAkJdWRlbGF5KDIwMDAwKTsKLQkJaWYgKGJiX21paXBoeV9yZWFkKCJGQ0MxIEVUSEVSTkVUIiwgQ0ZHX1BIWV9BRERSLDIsJnZhbCApID09IDApIHsKKwkJaWYgKGJiX21paXBoeV9yZWFkKCJGQ0MxIEVUSEVSTkVUIiwgQ09ORklHX1NZU19QSFlfQUREUiwyLCZ2YWwgKSA9PSAwKSB7CiAJCQlicmVhazsKIAkJfQogCX0KIAkvKiBpbml0aWFsaXplIHN3aXRjaCAqLwotCW04OGU2MDYwX2luaXRpYWxpemUoIENGR19QSFlfQUREUiApOworCW04OGU2MDYwX2luaXRpYWxpemUoIENPTkZJR19TWVNfUEhZX0FERFIgKTsKICNlbmRpZgogfQogCkBAIC0yMzMsNyArMjMzLDcgQEAKIAl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpkdW1teTsKIAlpbnQgaTsKIAotCWltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKICNpZiAwCkBAIC0yNzIsNyArMjcyLDcgQEAKIAl1bnNpZ25lZCBjaGFyIGM7CiAJaW50IGk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCW1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAKQEAgLTI4OSw3ICsyODksNyBAQAogCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMDA0NDQ0MDsKICNlbmRpZgogCS8qIGVuYWJsZSBidWZmZXJzIChEU1AsIERQUkFNKSAqLwotCWlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIDApOworCWlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAwKTsKIAlpb3AtPnBkYXQgJj0gMHhmZmZiZmZmZjsJLyogUEExMyA9IHxFTl9NX0JDVEwxICovCiAKIAkvKiBkZXN0cm95IERQUkFNIG1hZ2ljICovCkBAIC0zMTAsNyArMzEwLDcgQEAKIHsKIAl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wOwogCi0JaW9wID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDRkdfSU1NUiwgMik7CisJaW9wID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIsIDIpOwogCWlvcC0+cGRhdCB8PSAweDAwMDAyMDAwOwkvKiBQQzE4ID0gSFdfUkVTRVQgKi8KIAlyZXR1cm4gMTsKIH0KQEAgLTMyMCwxNiArMzIwLDE2IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXA7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGw7CiAJdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHI7CiAJaW50IGk7CiAJdWNoYXIgYzsKIAotCWltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7Ci0JcmFtYWRkciA9ICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRTsKKwlyYW1hZGRyID0gKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAljID0gMHhmZjsKIAogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWNyICA9IDB4MDI7CkBAIC0zMzgsMzAgKzMzOCwzMCBAQAogCWltbWFwLT5pbV9zaXVfY29uZi5zY190ZXNjcjEgICA9IDB4MDAwMDAwMDA7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3Rlc2NyMiAgID0gMHgwMDAwMDAwMDsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX1NEUkFNX0JBU0UgfCBDRkdfQlIxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAogCS8qIFByZWNoYXJnZSBhbGwgYmFua3MgKi8KLQltZW1jdGwtPm1lbWNfcHNkbXIgPSBDRkdfUFNETVIgfCAweDI4MDAwMDAwOworCW1lbWN0bC0+bWVtY19wc2RtciA9IENPTkZJR19TWVNfUFNETVIgfCAweDI4MDAwMDAwOwogCSpyYW1hZGRyID0gYzsKIAogCS8qIENCUiByZWZyZXNoICovCi0JbWVtY3RsLT5tZW1jX3BzZG1yID0gQ0ZHX1BTRE1SIHwgMHgwODAwMDAwMDsKKwltZW1jdGwtPm1lbWNfcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SIHwgMHgwODAwMDAwMDsKIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogCQkqcmFtYWRkciA9IGM7CiAKIAkvKiBNb2RlIFJlZ2lzdGVyIHdyaXRlICovCi0JbWVtY3RsLT5tZW1jX3BzZG1yID0gQ0ZHX1BTRE1SIHwgMHgxODAwMDAwMDsKKwltZW1jdGwtPm1lbWNfcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SIHwgMHgxODAwMDAwMDsKIAkqcmFtYWRkciA9IGM7CiAKIAkvKiBSZWZyZXNoIGVuYWJsZSAqLwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4NDAwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4NDAwMDAwMDA7CiAJKnJhbWFkZHIgPSBjOwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKLQlyZXR1cm4gKENGR19TRFJBTV9TSVpFKTsKKwlyZXR1cm4gKENPTkZJR19TWVNfU0RSQU1fU0laRSk7CiB9CiAKIGludCBjaGVja2JvYXJkICh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvZzIwMDAvZzIwMDAuYyBiL2JvYXJkL2cyMDAwL2cyMDAwLmMKaW5kZXggNjQ3ZjRiNy4uNDhmYzY0MyAxMDA2NDQKLS0tIGEvYm9hcmQvZzIwMDAvZzIwMDAuYworKysgYi9ib2FyZC9nMjAwMC9nMjAwMC5jCkBAIC0zMyw3ICszMyw3IEBACiAjZGVmaW5lIE1FTV9TRFRSMV9JTklUX1ZBTCAgICAgIDB4MDA4NTQwMDUKICNkZWZpbmUgU0RSQU0wX0NGR19FTkFCTEUgICAgICAgMHg4MDAwMDAwMAogCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFICAgICAgICAgIDB4MDQwMDAwMDAgICAgICAvKiA2NCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUgICAgICAgICAgMHgwNDAwMDAwMCAgICAgIC8qIDY0IE1CICovCiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7CkBAIC03Nyw4ICs3Nyw4IEBACiAJLyoKIAkgKiBTZXQgTkFORC1GTEFTSCBHUElPIHNpZ25hbHMgdG8gZGVmYXVsdAogCSAqLwotCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH4oQ0ZHX05BTkRfQ0xFIHwgQ0ZHX05BTkRfQUxFKSk7Ci0Jb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkRfQ0UpOworCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH4oQ09ORklHX1NZU19OQU5EX0NMRSB8IENPTkZJR19TWVNfTkFORF9BTEUpKTsKKwlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0UpOwogI2VuZGlmCiAKIAlyZXR1cm4gKDApOwpAQCAtMTI3LDcgKzEyNyw3IEBACiAJdWRlbGF5KDUwMCk7CiAJbXRzZHJhbTAoIG1lbV9tY29wdDEsIE1FTV9NQ09QVDFfSU5JVF9WQUx8U0RSQU0wX0NGR19FTkFCTEUgKTsKIAotCXJldHVybiAoQ0ZHX1NEUkFNX1NJWkUpOyAvKiBDRkdfU0RSQU1fU0laRSBpcyBpbiBHMjAwMC5oICovCisJcmV0dXJuIChDT05GSUdfU1lTX1NEUkFNX1NJWkUpOyAvKiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgaXMgaW4gRzIwMDAuaCAqLwogIH0KIAogCkBAIC0xNTEsMTEgKzE1MSwxMSBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpCiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+Ci1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiAKIHZvaWQgbmFuZF9pbml0KHZvaWQpCiB7Ci0JbmFuZF9wcm9iZShDRkdfTkFORF9CQVNFKTsKKwluYW5kX3Byb2JlKENPTkZJR19TWVNfTkFORF9CQVNFKTsKIAlpZiAobmFuZF9kZXZfZGVzY1swXS5DaGlwSUQgIT0gTkFORF9DaGlwSURfVU5LTk9XTikgewogCQlwcmludF9zaXplKG5hbmRfZGV2X2Rlc2NbMF0udG90bGVuLCAiXG4iKTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9nMjAwMC9zdHJhdGFmbGFzaC5jIGIvYm9hcmQvZzIwMDAvc3RyYXRhZmxhc2guYwppbmRleCA4NDQ2ZTAyLi5lZmZlNjVhIDEwMDY0NAotLS0gYS9ib2FyZC9nMjAwMC9zdHJhdGFmbGFzaC5jCisrKyBiL2JvYXJkL2cyMDAwL3N0cmF0YWZsYXNoLmMKQEAgLTEwMSw3ICsxMDEsNyBAQAogCiAjZGVmaW5lIE5VTV9FUkFTRV9SRUdJT05TIDQKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMTE2LDcgKzExNiw3IEBACiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHVsb25nIGJhc2UsIGludCBiYW5rbnVtKTsKIHN0YXRpYyBpbnQgZmxhc2hfd3JpdGVfY2Zpd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCBjZml3b3JkX3QgY3dvcmQpOwogc3RhdGljIGludCBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBzZWN0b3IsIHVsb25nIHRvdXQsIGNoYXIgKiBwcm9tcHQpOwotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiBzdGF0aWMgaW50IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1Y2hhciAqIGNwLCBpbnQgbGVuKTsKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTc2LDE0ICsxNzYsMTQgQEAKIAkgKgogCSAqLwogCi0JYWRkcmVzcyA9IENGR19GTEFTSF9CQVNFOworCWFkZHJlc3MgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJc2l6ZSA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemUgPSBmbGFzaF9nZXRfc2l6ZShhZGRyZXNzLCBpKTsKLQkJYWRkcmVzcyArPSBDRkdfRkxBU0hfSU5DUkVNRU5UOworCQlhZGRyZXNzICs9IENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UOwogCQlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgJWQgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIixpLAogCQkJCWZsYXNoX2luZm9bMF0uc2l6ZSwgZmxhc2hfaW5mb1tpXS5zaXplPDwyMCk7CkBAIC0xOTIsMTQgKzE5MiwxNCBAQAogCiAjaWYgMCAvKiB0ZXN0LW9ubHkgKi8KIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotI2lmIChDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFKQotCWZvcihpPTA7IGZsYXNoX2luZm9bMF0uc3RhcnRbaV0gPCBDRkdfTU9OSVRPUl9CQVNFK0NGR19NT05JVE9SX0xFTi0xOyBpKyspCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKwlmb3IoaT0wOyBmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi0xOyBpKyspCiAJCSh2b2lkKWZsYXNoX3JlYWxfcHJvdGVjdCgmZmxhc2hfaW5mb1swXSwgaSwgMSk7CiAjZW5kaWYKICNlbHNlCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgLSBDRkdfTU9OSVRPUl9MRU4sCisJCSAgICAgICAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCSAgICAgICAtIDEsICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC0yNzMsNyArMjczLDcgQEAKIAogCXByaW50ZiAoIiAgU2VjdG9yIFN0YXJ0IEFkZHJlc3NlczoiKTsKIAlmb3IgKGk9MDsgaTxpbmZvLT5zZWN0b3JfY291bnQ7ICsraSkgewotI2lmZGVmIENGR19GTEFTSF9FTVBUWV9JTkZPCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAJCWludCBrOwogCQlpbnQgc2l6ZTsKIAkJaW50IGVyYXNlZDsKQEAgLTM1Myw3ICszNTMsNyBAQAogCQl3cCA9IGNwOwogCX0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAJd2hpbGUoY250ID49IGluZm8tPnBvcnR3aWR0aCkgewogCQlpID0gaW5mby0+YnVmZmVyX3NpemUgPiBjbnQ/IGNudDogaW5mby0+YnVmZmVyX3NpemU7CiAJCWlmKChyYyA9IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihpbmZvLCB3cCwgc3JjLGkpKSAhPSBFUlJfT0spCkBAIC0zNzQsNyArMzc0LDcgQEAKIAkJd3AgKz0gaW5mby0+cG9ydHdpZHRoOwogCQljbnQgLT0gaW5mby0+cG9ydHdpZHRoOwogCX0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLwogCWlmIChjbnQgPT0gMCkgewogCQlyZXR1cm4gKDApOwogCX0KQEAgLTcxNiw3ICs3MTYsNyBAQAogCXJldHVybiBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhpbmZvLCAwLCBpbmZvLT53cml0ZV90b3V0LCAid3JpdGUiKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAKIC8qIGxvb3AgdGhyb3VnaCB0aGUgc2VjdG9ycyBmcm9tIHRoZSBoaWdoZXN0IGFkZHJlc3MKICAqIHdoZW4gdGhlIHBhc3NlZCBhZGRyZXNzIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHNlY3RvciBhZGRyZXNzCkBAIC03OTAsNCArNzkwLDQgQEAKIAlmbGFzaF93cml0ZV9jbWQoaW5mbywgc2VjdG9yLCAwLCBGTEFTSF9DTURfQ0xFQVJfU1RBVFVTKTsKIAlyZXR1cm4gcmV0Y29kZTsKIH0KLSNlbmRpZiAvKiBDRkdfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZ2Fpc2xlci9ncl9jcGNpX2F4MjAwMC91LWJvb3QubGRzIGIvYm9hcmQvZ2Fpc2xlci9ncl9jcGNpX2F4MjAwMC91LWJvb3QubGRzCmluZGV4IDM5NTg2NzAuLmEwODc2MzEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2dhaXNsZXIvZ3JfY3BjaV9heDIwMDAvdS1ib290LmxkcworKysgYi9ib2FyZC9nYWlzbGVyL2dyX2NwY2lfYXgyMDAwL3UtYm9vdC5sZHMKQEAgLTYxLDcgKzYxLDcgQEAKIAogCQkqKC5zdGFydCkKIAkJY3B1L2xlb24zL3N0YXJ0Lm8gKC50ZXh0KQotLyogOGsgaXMgdGhlIHNhbWUgYXMgdGhlIFBST00gb2Zmc2V0IGZyb20gZW5kIG9mIG1haW4gbWVtb3J5LCAoQ0ZHX1BST01fU0laRSkgKi8KKy8qIDhrIGlzIHRoZSBzYW1lIGFzIHRoZSBQUk9NIG9mZnNldCBmcm9tIGVuZCBvZiBtYWluIG1lbW9yeSwgKENPTkZJR19TWVNfUFJPTV9TSVpFKSAqLwogCQkuID0gQUxJR04oODE5Mik7CiAvKiBQUk9NIENPREUsIFdpbGwgYmUgcmVsb2NhdGVkIHRvIHRoZSBlbmQgb2YgbWVtb3J5LAogICogbm8gZ2xvYmFsIGRhdGEgYWNjZXNzZXMgcGxlYXNlLgpkaWZmIC0tZ2l0IGEvYm9hcmQvZ2Fpc2xlci9ncl9lcDJzNjAvdS1ib290LmxkcyBiL2JvYXJkL2dhaXNsZXIvZ3JfZXAyczYwL3UtYm9vdC5sZHMKaW5kZXggMTAwMzUwZC4uZTQ2MWEzNiAxMDA2NDQKLS0tIGEvYm9hcmQvZ2Fpc2xlci9ncl9lcDJzNjAvdS1ib290LmxkcworKysgYi9ib2FyZC9nYWlzbGVyL2dyX2VwMnM2MC91LWJvb3QubGRzCkBAIC02MSw3ICs2MSw3IEBACiAKIAkJKiguc3RhcnQpCiAJCWNwdS9sZW9uMy9zdGFydC5vICgudGV4dCkKLS8qIDhrIGlzIHRoZSBzYW1lIGFzIHRoZSBQUk9NIG9mZnNldCBmcm9tIGVuZCBvZiBtYWluIG1lbW9yeSwgKENGR19QUk9NX1NJWkUpICovCisvKiA4ayBpcyB0aGUgc2FtZSBhcyB0aGUgUFJPTSBvZmZzZXQgZnJvbSBlbmQgb2YgbWFpbiBtZW1vcnksIChDT05GSUdfU1lTX1BST01fU0laRSkgKi8KIAkJLiA9IEFMSUdOKDgxOTIpOwogLyogUFJPTSBDT0RFLCBXaWxsIGJlIHJlbG9jYXRlZCB0byB0aGUgZW5kIG9mIG1lbW9yeSwKICAqIG5vIGdsb2JhbCBkYXRhIGFjY2Vzc2VzIHBsZWFzZS4KZGlmZiAtLWdpdCBhL2JvYXJkL2dhaXNsZXIvZ3JfeGMzc18xNTAwL3UtYm9vdC5sZHMgYi9ib2FyZC9nYWlzbGVyL2dyX3hjM3NfMTUwMC91LWJvb3QubGRzCmluZGV4IDM4NDhjNjguLmRkZDI3ZDQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2dhaXNsZXIvZ3JfeGMzc18xNTAwL3UtYm9vdC5sZHMKKysrIGIvYm9hcmQvZ2Fpc2xlci9ncl94YzNzXzE1MDAvdS1ib290LmxkcwpAQCAtNjEsNyArNjEsNyBAQAogCiAJCSooLnN0YXJ0KQogCQljcHUvbGVvbjMvc3RhcnQubyAoLnRleHQpCi0vKiA4ayBpcyB0aGUgc2FtZSBhcyB0aGUgUFJPTSBvZmZzZXQgZnJvbSBlbmQgb2YgbWFpbiBtZW1vcnksIChDRkdfUFJPTV9TSVpFKSAqLworLyogOGsgaXMgdGhlIHNhbWUgYXMgdGhlIFBST00gb2Zmc2V0IGZyb20gZW5kIG9mIG1haW4gbWVtb3J5LCAoQ09ORklHX1NZU19QUk9NX1NJWkUpICovCiAJCS4gPSBBTElHTig4MTkyKTsKIC8qIFBST00gQ09ERSwgV2lsbCBiZSByZWxvY2F0ZWQgdG8gdGhlIGVuZCBvZiBtZW1vcnksCiAgKiBubyBnbG9iYWwgZGF0YSBhY2Nlc3NlcyBwbGVhc2UuCmRpZmYgLS1naXQgYS9ib2FyZC9nYWlzbGVyL2dyc2ltL3UtYm9vdC5sZHMgYi9ib2FyZC9nYWlzbGVyL2dyc2ltL3UtYm9vdC5sZHMKaW5kZXggMWU4YmI2OS4uYTljYzdjYSAxMDA2NDQKLS0tIGEvYm9hcmQvZ2Fpc2xlci9ncnNpbS91LWJvb3QubGRzCisrKyBiL2JvYXJkL2dhaXNsZXIvZ3JzaW0vdS1ib290LmxkcwpAQCAtNjAsNyArNjAsNyBAQAogCiAJCSooLnN0YXJ0KQogCQljcHUvbGVvbjMvc3RhcnQubyAoLnRleHQpCi0vKiA4ayBpcyB0aGUgc2FtZSBhcyB0aGUgUFJPTSBvZmZzZXQgZnJvbSBlbmQgb2YgbWFpbiBtZW1vcnksIChDRkdfUFJPTV9TSVpFKSAqLworLyogOGsgaXMgdGhlIHNhbWUgYXMgdGhlIFBST00gb2Zmc2V0IGZyb20gZW5kIG9mIG1haW4gbWVtb3J5LCAoQ09ORklHX1NZU19QUk9NX1NJWkUpICovCiAJCS4gPSBBTElHTig4MTkyKTsKIC8qIFBST00gQ09ERSwgV2lsbCBiZSByZWxvY2F0ZWQgdG8gdGhlIGVuZCBvZiBtZW1vcnksCiAgKiBubyBnbG9iYWwgZGF0YSBhY2Nlc3NlcyBwbGVhc2UuCmRpZmYgLS1naXQgYS9ib2FyZC9nYWlzbGVyL2dyc2ltX2xlb24yL3UtYm9vdC5sZHMgYi9ib2FyZC9nYWlzbGVyL2dyc2ltX2xlb24yL3UtYm9vdC5sZHMKaW5kZXggMmEyMjA4Mi4uYjM0NjJkNCAxMDA2NDQKLS0tIGEvYm9hcmQvZ2Fpc2xlci9ncnNpbV9sZW9uMi91LWJvb3QubGRzCisrKyBiL2JvYXJkL2dhaXNsZXIvZ3JzaW1fbGVvbjIvdS1ib290LmxkcwpAQCAtNjAsNyArNjAsNyBAQAogCiAJCSooLnN0YXJ0KQogCQljcHUvbGVvbjIvc3RhcnQubyAoLnRleHQpCi0vKiA4ayBpcyB0aGUgc2FtZSBhcyB0aGUgUFJPTSBvZmZzZXQgZnJvbSBlbmQgb2YgbWFpbiBtZW1vcnksIChDRkdfUFJPTV9TSVpFKSAqLworLyogOGsgaXMgdGhlIHNhbWUgYXMgdGhlIFBST00gb2Zmc2V0IGZyb20gZW5kIG9mIG1haW4gbWVtb3J5LCAoQ09ORklHX1NZU19QUk9NX1NJWkUpICovCiAJCS4gPSBBTElHTig4MTkyKTsKIC8qIFBST00gQ09ERSwgV2lsbCBiZSByZWxvY2F0ZWQgdG8gdGhlIGVuZCBvZiBtZW1vcnksCiAgKiBubyBnbG9iYWwgZGF0YSBhY2Nlc3NlcyBwbGVhc2UuCmRpZmYgLS1naXQgYS9ib2FyZC9nY3BsdXMvZmxhc2guYyBiL2JvYXJkL2djcGx1cy9mbGFzaC5jCmluZGV4IDQ4ZjMzYjIuLjg1MTE1ODIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2djcGx1cy9mbGFzaC5jCisrKyBiL2JvYXJkL2djcGx1cy9mbGFzaC5jCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjZGVmaW5lIEZMQVNIX1BPUlRfV0lEVEgzMgpAQCAtNjcsNyArNjcsNyBAQAogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaF9nZXRfc2l6ZSgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtODMsOCArODMsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCSAgICAgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCSAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCiAJCSAgICAgIENPTkZJR19FTlZfQUREUiwKQEAgLTIwNywxMCArMjA3LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJICAgICAgIGluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkgICAgICAgaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTI4Miw3ICsyODIsNyBAQAogCQkJd2hpbGUgKCgoc3RhdHVzID0KIAkJCQkgKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCSAgICAgICAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDE4LDcgKzQxOCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2dlbjg2MHQvYmVlcGVyLmMgYi9ib2FyZC9nZW44NjB0L2JlZXBlci5jCmluZGV4IGI0YzJjODkuLmI0NzJiOTEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2dlbjg2MHQvYmVlcGVyLmMKKysrIGIvYm9hcmQvZ2VuODYwdC9iZWVwZXIuYwpAQCAtNDMsNyArNDMsNyBAQAogICovCiB2b2lkIGluaXRfYmVlcGVyICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1hcC0+aW1fY3BtdGltZXIuY3BtdF90Z2NyICY9IH5UR0NSX1JTVDEgfCBUR0NSX1NUUDE7CiAJaW1tYXAtPmltX2NwbXRpbWVyLmNwbXRfdG1yMSA9ICgoMzMgPDwgVE1SX1BTX1NISUZUKSAmIFRNUl9QU19NU0spCkBAIC02Miw3ICs2Miw3IEBACiB7CiAjZGVmaW5lIEZSRVFfTElNSVQJMjUwMAogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qCiAJICogQ29tcHV0ZSB0aW1lciB0aWNrcyBnaXZlbiBkZXNpcmVkIGZyZXF1ZW5jeS4gIFRoZSB0aW1lciBpcyBzZXQgdXAKQEAgLTc5LDcgKzc5LDcgQEAKICAqLwogdm9pZCBiZWVwZXJfb24gKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWltbWFwLT5pbV9jcG10aW1lci5jcG10X3RnY3IgJj0gflRHQ1JfU1RQMTsKIH0KQEAgLTg5LDcgKzg5LDcgQEAKICAqLwogdm9pZCBiZWVwZXJfb2ZmICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1hcC0+aW1fY3BtdGltZXIuY3BtdF90Z2NyIHw9IFRHQ1JfU1RQMTsKIH0KQEAgLTEwNCw3ICsxMDQsNyBAQAogICovCiB2b2lkIHNldF9iZWVwZXJfdm9sdW1lIChpbnQgc3RlcHMpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgaTsKIAogCWlmIChzdGVwcyA+PSAwKSB7CmRpZmYgLS1naXQgYS9ib2FyZC9nZW44NjB0L2ZsYXNoLmMgYi9ib2FyZC9nZW44NjB0L2ZsYXNoLmMKaW5kZXggYTQ2ZTdlNi4uODI3ZDllMCAxMDA2NDQKLS0tIGEvYm9hcmQvZ2VuODYwdC9mbGFzaC5jCisrKyBiL2JvYXJkL2dlbjg2MHQvZmxhc2guYwpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNDEsMTUgKzQxLDE1IEBACiAgKiBVc2UgYnVmZmVyZWQgd3JpdGVzIHRvIGZsYXNoIGJ5IGRlZmF1bHQgLSB0aGV5IGFyZSBhYm91dCAzMnggZmFzdGVyIHRoYW4KICAqIHNpbmdsZSBieXRlIHdyaXRlcy4KICAqLwotI2lmbmRlZiAgQ0ZHX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgotI2RlZmluZSBDRkdfR0VOODYwVF9GTEFTSF9VU0VfV1JJVEVfQlVGRkVSCisjaWZuZGVmICBDT05GSUdfU1lTX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgorI2RlZmluZSBDT05GSUdfU1lTX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgogI2VuZGlmCiAKIC8qCiAgKiBNYXggdGltZSB0byB3YWl0IChpbiBtUykgZm9yIGZsYXNoIGRldmljZSB0byBhbGxvY2F0ZSBhIHdyaXRlIGJ1ZmZlci4KICAqLwotI2lmbmRlZiBDRkdfRkxBU0hfQUxMT0NfQlVGRkVSX1RPVVQKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FMTE9DX0JVRkZFUl9UT1VUCQkxMDAKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF9BTExPQ19CVUZGRVJfVE9VVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FMTE9DX0JVRkZFUl9UT1VUCQkxMDAKICNlbmRpZgogCiAvKgpAQCAtOTQsNyArOTQsNyBAQAogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTEwOSwxMiArMTA5LDEyIEBACiB1bnNpZ25lZCBsb25nCiBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwOwogCWludCBpOwogCi0JZm9yIChpPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTEzOSw3ICsxMzksNyBAQAogCSAqIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUKIAkgKi8KIAltZW1jdGwtPm1lbWNfb3IwIHw9ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgfD0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKTsKKwltZW1jdGwtPm1lbWNfYnIwIHw9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spOwogCiAJUFJJTlRGKCIjIyBBZnRlciByZW1hcDpcbiIKIAkJICAgIiAgQlIwOiAweCUwOHggICAgT1IwOiAweCUwOHhcbiIsIG1lbWN0bC0+bWVtY19icjAsIG1lbWN0bC0+bWVtY19vcjApOwpAQCAtMTQ3LDE3ICsxNDcsMTcgQEAKIAkvKgogCSAqIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8KIAkgKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh2dV9jaGFyICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh2dV9jaGFyICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyoKIAkgKiBNb25pdG9yIHByb3RlY3Rpb24gaXMgT04gYnkgZGVmYXVsdAogCSAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzA3LDEwICszMDcsMTAgQEAKIAkJCXJldHVybiAoTk9fRkxBU0gpOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CkBAIC0zODUsNyArMzg1LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIFNDU19TUjcpICE9IFNDU19TUjcpIHsKLQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gU0NTX0JMT0NLX0VSQVNFX1NVU1BFTkRfQ01EOwogCQkJCQkqYWRkciA9IFNDU19SRUFEX0NNRDsKQEAgLTQwOCw3ICs0MDgsNyBAQAogfQogCiAKLSNpZmRlZiBDRkdfR0VOODYwVF9GTEFTSF9VU0VfV1JJVEVfQlVGRkVSCisjaWZkZWYgQ09ORklHX1NZU19HRU44NjBUX0ZMQVNIX1VTRV9XUklURV9CVUZGRVIKIC8qCiAgKiBBbGxvY2F0ZSBhIGZsYXNoIGJ1ZmZlciwgZmlsbCBpdCB3aXRoIGRhdGEgYW5kIHdyaXRlIGl0IHRvIHRoZSBmbGFzaC4KICAqIDAgLSBPSwpAQCAtNDUxLDEwICs0NTEsMTAgQEAKIAkgKi8KIAkqYmxvY2tfYWRkcl9wID0gU0NTX1dSSVRFX0JVRl9DTUQ7CiAJd2hpbGUgKCgqYmxvY2tfYWRkcl9wICYgU0NTX1hTUjcpICE9IFNDU19YU1I3KSB7Ci0JCWlmIChnZXRfdGltZXIodGltZSkgPiAgQ0ZHX0ZMQVNIX0FMTE9DX0JVRkZFUl9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIodGltZSkgPiAgQ09ORklHX1NZU19GTEFTSF9BTExPQ19CVUZGRVJfVE9VVCkgewogCQkJUFJJTlRGKCIlczolZDogQnVmZmVyIGFsbG9jYXRpb24gdGltZW91dCBAIDB4JXAgKHdhaXRlZCAlZCBtUylcbiIsCiAJCQkJICAgX19GVU5DVElPTl9fLCBfX0xJTkVfXywgYmxvY2tfYWRkcl9wLAotCQkJCSAgIENGR19GTEFTSF9BTExPQ19CVUZGRVJfVE9VVCk7CisJCQkJICAgQ09ORklHX1NZU19GTEFTSF9BTExPQ19CVUZGRVJfVE9VVCk7CiAJCQlyZXR1cm4gMTsKIAkJfQogCQkqYmxvY2tfYWRkcl9wID0gU0NTX1dSSVRFX0JVRl9DTUQ7CkBAIC00NzgsOSArNDc4LDkgQEAKICNpZiAxCiAJdGltZSA9IGdldF90aW1lcigwKTsKIAl3aGlsZSAoKCpibG9ja19hZGRyX3AgJiBTQ1NfU1I3KSAhPSBTQ1NfU1I3KSB7Ci0JCWlmIChnZXRfdGltZXIodGltZSkgPiAgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcih0aW1lKSA+ICBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCVBSSU5URigiJXM6JWQ6IFdyaXRlIHRpbWVvdXQgQCAweCVwICh3YWl0ZWQgJWQgbVMpXG4iLAotCQkJCSAgIF9fRlVOQ1RJT05fXywgX19MSU5FX18sIGJsb2NrX2FkZHJfcCwgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpOworCQkJCSAgIF9fRlVOQ1RJT05fXywgX19MSU5FX18sIGJsb2NrX2FkZHJfcCwgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKTsKIAkJCXJldHVybiAxOwogCQl9CiAJfQpAQCAtNTAyLDcgKzUwMiw3IEBACiB3cml0ZV9idWZmKGZsYXNoX2luZm9fdCAqaW5mb19wLCB1Y2hhciAqc3JjX3AsIHVsb25nIGFkZHIsIHVsb25nIGNvdW50KQogewogCWludCByYyA9IDA7Ci0jaWZkZWYgQ0ZHX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgorI2lmZGVmIENPTkZJR19TWVNfR0VOODYwVF9GTEFTSF9VU0VfV1JJVEVfQlVGRkVSCiAjZGVmaW5lIEZMQVNIX1dSSVRFX0JVRl9TSVpFCTB4MDAwMDAwMjAJLyogMzIgYnl0ZXMgKi8KIAlpbnQgaTsKIAl1aW50IGJ1ZnM7CkBAIC01MjAsNyArNTIwLDcgQEAKIAkJcmV0dXJuIDQ7CiAJfQogCi0jaWZkZWYgQ0ZHX0dFTjg2MFRfRkxBU0hfVVNFX1dSSVRFX0JVRkZFUgorI2lmZGVmIENPTkZJR19TWVNfR0VOODYwVF9GTEFTSF9VU0VfV1JJVEVfQlVGRkVSCiAJc3AgPSBzcmNfcDsKIAlkcCA9ICh1Y2hhciAqKWFkZHI7CiAKQEAgLTYzMiw3ICs2MzIsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIFNDU19TUjcpICE9IFNDU19TUjcpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSBTQ1NfUkVBRF9DTUQ7CiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9nZW44NjB0L2ZwZ2EuYyBiL2JvYXJkL2dlbjg2MHQvZnBnYS5jCmluZGV4IDFlNmJkZjEuLjI5Y2FkMmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2dlbjg2MHQvZnBnYS5jCisrKyBiL2JvYXJkL2dlbjg2MHQvZnBnYS5jCkBAIC0xNjEsNyArMTYxLDcgQEAKICAqLwogdm9pZCBmcGdhX3Jlc2V0IChpbnQgYXNzZXJ0KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlQUklOVEYgKCIlczolZDogUkVTRVQgIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CiAJaWYgKGFzc2VydCkgewpAQCAtMjEwLDcgKzIxMCw3IEBACiAgKi8KIGludCBmcGdhX3BnbV9mbiAoaW50IGFzc2VydCwgaW50IGZsdXNoLCBpbnQgY29va2llKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlQUklOVEYgKCIlczolZDogRlBHQSBQUk9HUkFNICIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogCkBAIC0yMzMsNyArMjMzLDcgQEAKICAqLwogaW50IGZwZ2FfaW5pdF9mbiAoaW50IGNvb2tpZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJUFJJTlRGICgiJXM6JWQ6IElOSVQgY2hlY2suLi4gIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CiAJaWYgKGltbWFwLT5pbV9jcG0uY3BfcGJkYXQgJiAoMHg4MDAwMDAwMCA+PiBGUEdBX0lOSVRfQklUX05VTSkpIHsKQEAgLTI1MSw3ICsyNTEsNyBAQAogICovCiBpbnQgZnBnYV9kb25lX2ZuIChpbnQgY29va2llKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlQUklOVEYgKCIlczolZDogRE9ORSBjaGVjay4uLiAiLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKIAlpZiAoaW1tYXAtPmltX2NwbS5jcF9wYmRhdCAmICgweDgwMDAwMDAwID4+IEZQR0FfRE9ORV9CSVRfTlVNKSkgewpkaWZmIC0tZ2l0IGEvYm9hcmQvZ2VuODYwdC9nZW44NjB0LmMgYi9ib2FyZC9nZW44NjB0L2dlbjg2MHQuYwppbmRleCA1YzQ5N2I2Li4wMDhmNzY1IDEwMDY0NAotLS0gYS9ib2FyZC9nZW44NjB0L2dlbjg2MHQuYworKysgYi9ib2FyZC9nZW44NjB0L2dlbjg2MHQuYwpAQCAtMTYwLDcgKzE2MCw3IEBACiAgKi8KIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCXVwbWNvbmZpZyAoVVBNQSwKQEAgLTE3MSwxNCArMTcxLDE0IEBACiAJLyoKIAkgKiBTZXR1cCBNQU1SIHJlZ2lzdGVyCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS184SzsKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS184SzsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAkvKgogCSAqIE1hcCBDUzEqIHRvIFNEUkFNIGJhbmsKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjE7CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxOwogCiAJLyoKIAkgKiBQZXJmb3JtIFNEUkFNIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlOgpAQCAtMjM1LDcgKzIzNSw3IEBACiAgKi8KIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCS8qCmRpZmYgLS1naXQgYS9ib2FyZC9nZW5pZXR2L2ZsYXNoLmMgYi9ib2FyZC9nZW5pZXR2L2ZsYXNoLmMKaW5kZXggNzI5MmM5Yy4uNTMxM2FkOCAxMDA2NDQKLS0tIGEvYm9hcmQvZ2VuaWV0di9mbGFzaC5jCisrKyBiL2JvYXJkL2dlbmlldHYvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC00MiwyMCArNDIsMjAgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJICAgIGZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJLyogRGV0ZWN0IHNpemUgKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogU2V0dXAgb2Zmc2V0cyAqLwotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTMyMiw3ICszMjIsNyBAQAogCiAJd2hpbGUgKChhZGRyWzBdICYgMHhGRikgIT0gMHhGRikKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NTQsNyArNDU0LDcgQEAKIAkgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCSAgICB3aGlsZSAoKCpjZGVzdCBeICpjZGF0YSkgJiAweDgwKQogCSAgICB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAkgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvZ2VuaWV0di9nZW5pZXR2LmMgYi9ib2FyZC9nZW5pZXR2L2dlbmlldHYuYwppbmRleCBmYzIxMTY5Li4wYTAxNWVhIDEwMDY0NAotLS0gYS9ib2FyZC9nZW5pZXR2L2dlbmlldHYuYworKysgYi9ib2FyZC9nZW5pZXR2L2dlbmlldHYuYwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi0jZGVmaW5lIENGR19QQTcJCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1BBNwkJMHgwMTAwCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtMTA0LDcgKzEwNCw3IEBACiAjaWYgMAogc3RhdGljIHZvaWQgUHJpbnRTdGF0ZSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW0tPmltX21lbWN0bDsKIAogCXByaW50ZiAoIlxuMCAtIEZMQVNIOiBCPSUwOHggTz0lMDh4IiwgbWVtY3RsLT5tZW1jX2JyMCwKQEAgLTEyMCwxOCArMTIwLDE4IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW0tPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwLCBzaXplX2IxLCBzaXplODsKIAogCS8qIEVuYWJsZSBTRFJBTSAqLwogCiAJLyogQ29uZmlndXJpbmcgUEE3IGZvciBnZW5lcmFsIHB1cnBvdXNlIG91dHB1dCBwaW4gKi8KLQlpbS0+aW1faW9wb3J0LmlvcF9wYXBhciAmPSB+Q0ZHX1BBNzsJLyogMCA9IGdlbmVyYWwgcHVycG91c2UgKi8KLQlpbS0+aW1faW9wb3J0LmlvcF9wYWRpciB8PSBDRkdfUEE3OwkvKiAxID0gb3V0cHV0ICovCisJaW0tPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfkNPTkZJR19TWVNfUEE3OwkvKiAwID0gZ2VuZXJhbCBwdXJwb3VzZSAqLworCWltLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9IENPTkZJR19TWVNfUEE3OwkvKiAxID0gb3V0cHV0ICovCiAKIAkvKiBFbmFibGUgU0RSQU0gLSBQQTcgPSAxICovCi0JaW0tPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gQ0ZHX1BBNzsJLyogdmFsdWUgb2YgUEE3ICovCisJaW0tPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gQ09ORklHX1NZU19QQTc7CS8qIHZhbHVlIG9mIFBBNyAqLwogCiAJLyoKIAkgKiBQcmVsaW1pbmFyeSBwcmVzY2FsZXIgZm9yIHJlZnJlc2ggKGRlcGVuZHMgb24gbnVtYmVyIG9mCkBAIC0xMzksOSArMTM5LDkgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAKLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQk1SXzhDT0w7CisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOENPTDsKIAogCXVwbWNvbmZpZyAoVVBNQiwgKHVpbnQgKikgc2RyYW1fdGFibGUsCiAJCSAgIHNpemVvZiAoc2RyYW1fdGFibGUpIC8gc2l6ZW9mICh1aW50KSk7CkBAIC0xNTIsMTEgKzE1MiwxMSBAQAogCSAqIFNEUkFNIHNpemUgaGFzIGJlZW4gZGV0ZXJtaW5lZC4KIAkgKi8KIAotCW1lbWN0bC0+bWVtY19vcjEgPSAweEYwMDAwMDAwIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gMHhGMDAwMDAwMCB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCW1lbWN0bC0+bWVtY19icjEgPQogCQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVik7CiAKLQltZW1jdGwtPm1lbWNfb3IyID0gMHhGMDAwMDAwMCB8IENGR19PUl9USU1JTkdfU0RSQU07CisJbWVtY3RsLT5tZW1jX29yMiA9IDB4RjAwMDAwMDAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAltZW1jdGwtPm1lbWNfYnIyID0KIAkJKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YpOwogCkBAIC0xNjgsMTQgKzE2OCwxNCBAQAogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwODA0MTA1OwkvKiBTRFJBTSBiYW5rIDEgKi8KIAogCS8qIEV4ZWN1dGUgcmVmcmVzaCA4IHRpbWVzICovCi0JbWVtY3RsLT5tZW1jX21ibXIgPSAoQ0ZHX01CTVJfOENPTCAmIH5NQk1SX1RMRkJfTVNLKSB8IE1CTVJfVExGQl84WDsKKwltZW1jdGwtPm1lbWNfbWJtciA9IChDT05GSUdfU1lTX01CTVJfOENPTCAmIH5NQk1SX1RMRkJfTVNLKSB8IE1CTVJfVExGQl84WDsKIAogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwODAyMTMwOwkvKiBTRFJBTSBiYW5rIDAgLSBleGVjdXRlIHR3aWNlICovCiAKIAltZW1jdGwtPm1lbWNfbWNyID0gMHg4MDgwNDEzMDsJLyogU0RSQU0gYmFuayAxIC0gZXhlY3V0ZSB0d2ljZSAqLwogCiAJLyogRXhlY3V0ZSByZWZyZXNoIDQgdGltZXMgKi8KLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQk1SXzhDT0w7CisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOENPTDsKIAogCS8qCiAJICogQ2hlY2sgQmFuayAwIE1lbW9yeSBTaXplIGZvciByZS1jb25maWd1cmF0aW9uCkBAIC0xODcsNyArMTg3LDcgQEAKIAlQcmludFN0YXRlICgpOwogI2VuZGlmCiAvKiAgICBwcmludGYgKCJcbkNoZWNraW5nIGJhbmsxLi4uIik7ICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQk1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0UxX1BSRUxJTSwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQk1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0UxX1BSRUxJTSwKIAkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAogCXNpemVfYjAgPSBzaXplODsKQEAgLTIwMSwxNyArMjAxLDE3IEBACiAJICogRmluYWwgbWFwcGluZzogbWFwIGJpZ2dlciBiYW5rIGZpcnN0CiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WOwogCiAJaWYgKHNpemVfYjEgPiAwKSB7CiAJCS8qCiAJCSAqIFBvc2l0aW9uIEJhbmsgMSBpbW1lZGlhdGVseSBhYm92ZSBCYW5rIDAKIAkJICovCiAJCW1lbWN0bC0+bWVtY19vcjIgPQotCQkJKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJCQkoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CiAJCW1lbWN0bC0+bWVtY19icjIgPQotCQkJKChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfVikgKworCQkJKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YpICsKIAkJCShzaXplX2IwICYgQlJfQkFfTVNLKTsKIAl9IGVsc2UgewogCQkvKgpAQCAtMjIxLDE0ICsyMjEsMTQgQEAKIAkJICovCiAJCW1lbWN0bC0+bWVtY19icjIgPSAwOwogCQkvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwotCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMUJLXzRLOworCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS180SzsKIAl9CiAKIAkvKiBJZiBubyBtZW1vcnkgZGV0ZWN0ZWQsIGRpc2FibGUgU0RSQU0gKi8KIAlpZiAoKHNpemVfYjAgKyBzaXplX2IxKSA9PSAwKSB7CiAJCXByaW50ZiAoImRpc2FibGluZyBTRFJBTSFcbiIpOwogCQkvKiBEaXNhYmxlIFNEUkFNIC0gUEE3ID0gMSAqLwotCQlpbS0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+Q0ZHX1BBNzsJLyogdmFsdWUgb2YgUEE3ICovCisJCWltLT5pbV9pb3BvcnQuaW9wX3BhZGF0ICY9IH5DT05GSUdfU1lTX1BBNzsJLyogdmFsdWUgb2YgUEE3ICovCiAJfQogLyoJZWxzZSAqLwogLyogICAgcHJpbnRmKCJkb25lISAoJTA4bHgpXG4iLCBzaXplX2IwICsgc2l6ZV9iMSk7ICovCkBAIC0yNjksOCArMjY5LDggQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9QQ01DSUEpCiAKLSNpZmRlZglDRkdfUENNQ0lBX01FTV9BRERSCi12b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwY21jaWFfbWVtID0gKHVuc2lnbmVkIGNoYXIgKikgQ0ZHX1BDTUNJQV9NRU1fQUREUjsKKyNpZmRlZglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgordm9sYXRpbGUgdW5zaWduZWQgY2hhciAqcGNtY2lhX21lbSA9ICh1bnNpZ25lZCBjaGFyICopIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOwogI2VuZGlmCiAKIGludCBwY21jaWFfaW5pdCAodm9pZCkKQEAgLTI4MSwxMCArMjgxLDEwIEBACiAJLyoKIAkgKiogRW5hYmxlIHRoZSBQQ01DSUEgZm9yIGEgRmxhc2ggY2FyZC4KIAkgKi8KLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAKICNpZiAwCi0JcGNtcC0+cGNtY19wYnIwID0gQ0ZHX1BDTUNJQV9NRU1fQUREUjsKKwlwY21wLT5wY21jX3BicjAgPSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUjsKIAlwY21wLT5wY21jX3BvcjAgPSAweGMwMGZmMDVkOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2d0aC9lZV9hY2Nlc3MuYyBiL2JvYXJkL2d0aC9lZV9hY2Nlc3MuYwppbmRleCA3MTZjOTBlLi4yYTMzYTBlIDEwMDY0NAotLS0gYS9ib2FyZC9ndGgvZWVfYWNjZXNzLmMKKysrIGIvYm9hcmQvZ3RoL2VlX2FjY2Vzcy5jCkBAIC0xNTIsNyArMTUyLDcgQEAKICAgaW50IGk7CiAgIGludCBWYWx1ZTsKICAgdTggUmVzdWx0PTA7Ci0jaWZuZGVmIENGR19JTU1SCisjaWZuZGVmIENPTkZJR19TWVNfSU1NUgogICB1MzIgRmxhZ3M7CiAjZW5kaWYKIApAQCAtMTYyLDcgKzE2Miw3IEBACiAgICAgLyogU21hbGwgZGVsYXkgYmV0d2VlbiBwdWxzZXMgKi8KICAgICB1ZGVsYXkoMSk7CiAKLSNpZm5kZWYgQ0ZHX0lNTVIKKyNpZm5kZWYgQ09ORklHX1NZU19JTU1SCiAgICAgLyogRGlzYWJsZSBpcnEgKi8KICAgICBzYXZlX2ZsYWdzKEZsYWdzKTsKICAgICBjbGkoKTsKQEAgLTE4Miw3ICsxODIsNyBAQAogICAgIGlmKFZhbHVlKQogICAgICAgVmFsdWU9MTsKIAotI2lmbmRlZiBDRkdfSU1NUgorI2lmbmRlZiBDT05GSUdfU1lTX0lNTVIKICAgICAvKiBFbmFibGUgaXJxICovCiAgICAgcmVzdG9yZV9mbGFncyhGbGFncyk7CiAjZW5kaWYKQEAgLTIwNSw3ICsyMDUsNyBAQAogICAgICBXcml0ZSBMU2IgZmlyc3QgKi8KICAgaW50IGk7CiAgIGludCBWYWx1ZTsKLSNpZm5kZWYgQ0ZHX0lNTVIKKyNpZm5kZWYgQ09ORklHX1NZU19JTU1SCiAgIHUzMiBGbGFnczsKICNlbmRpZgogCkBAIC0yMTYsNyArMjE2LDcgQEAKICAgICB1ZGVsYXkoMSk7CiAgICAgVmFsdWUgPSBCeXRlJjE7CiAKLSNpZm5kZWYgQ0ZHX0lNTVIKKyNpZm5kZWYgQ09ORklHX1NZU19JTU1SCiAgICAgLyogRGlzYWJsZSBpcnEgKi8KICAgICBzYXZlX2ZsYWdzKEZsYWdzKTsKICAgICBjbGkoKTsKQEAgLTIzNyw3ICsyMzcsNyBAQAogCiAgICAgV1JJVEVfUE9SVCgxKTsKIAotI2lmbmRlZiBDRkdfSU1NUgorI2lmbmRlZiBDT05GSUdfU1lTX0lNTVIKICAgICAvKiBFbmFibGUgaXJxICovCiAgICAgcmVzdG9yZV9mbGFncyhGbGFncyk7CiAjZW5kaWYKQEAgLTI4OSw3ICsyODksNyBAQAogICBpbnQgaTsKICAgdTggVHhbMTBdOwogICBpbnQgdG1wOwotICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKICAgd2hpbGUoMCl7CiAgICAgdG1wID0gMS10bXA7CmRpZmYgLS1naXQgYS9ib2FyZC9ndGgvZWVfZGV2LmggYi9ib2FyZC9ndGgvZWVfZGV2LmgKaW5kZXggNDE3YzdiNi4uMzAwNGI0NiAxMDA2NDQKLS0tIGEvYm9hcmQvZ3RoL2VlX2Rldi5oCisrKyBiL2JvYXJkL2d0aC9lZV9kZXYuaApAQCAtOSwxMCArOSwxMCBAQAogCiAjZGVmaW5lIEVfREVCVUcoZm10LGFyZ3MuLi4pIGlmKCBEZWJ1ZyApIHByaW50ayhLRVJOX0RFQlVHIkVFOiAiIGZtdCwgIyNhcmdzKQogCi0jZGVmaW5lIFBPUlRfQl9QQVIgKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXIKLSNkZWZpbmUgUE9SVF9CX09EUiAoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYm9kcgotI2RlZmluZSBQT1JUX0JfRElSICgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyCi0jZGVmaW5lIFBPUlRfQl9EQVQgKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQKKyNkZWZpbmUgUE9SVF9CX1BBUiAoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXIKKyNkZWZpbmUgUE9SVF9CX09EUiAoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJvZHIKKyNkZWZpbmUgUE9SVF9CX0RJUiAoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkaXIKKyNkZWZpbmUgUE9SVF9CX0RBVCAoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQKIAogI2RlZmluZSBTRVRfUE9SVF9CX0lOUFVUKE1hc2spICBQT1JUX0JfRElSICY9IH4oTWFzaykKICNkZWZpbmUgU0VUX1BPUlRfQl9PVVRQVVQoTWFzaykgUE9SVF9CX0RJUiB8PSBNYXNrCmRpZmYgLS1naXQgYS9ib2FyZC9ndGgvZmxhc2guYyBiL2JvYXJkL2d0aC9mbGFzaC5jCmluZGV4IDExZTEwNWUuLjE2OTI3MGIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2d0aC9mbGFzaC5jCisrKyBiL2JvYXJkL2d0aC9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwLCBzaXplX2IxOwogCWludCBpOwpAQCAtNTQsNyArNTQsNyBAQAogCXJldHVybigweDFmZmZmZik7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpPTA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKQogCXsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQpAQCAtOTAsNDUgKzkwLDQ1IEBACiAJICBzaXplX2IxID0gMDsKIAogCSAgLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCSAgbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUjBfUFJFTElNOwotCSAgbWVtY3RsLT5tZW1jX2JyMCA9IENGR19CUjBfUFJFTElNOworCSAgbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1IwX1BSRUxJTTsKKwkgIG1lbWN0bC0+bWVtY19icjAgPSBDT05GSUdfU1lTX0JSMF9QUkVMSU07CiAKIAkgIC8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkgIHNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJICBzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCSAgZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJICBmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJICAvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSAgKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkKIAl7Ci0JICAvKiBtZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JICAgICBtZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07ICovCisJICAvKiBtZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCSAgICAgbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsgKi8KIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0JCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApLAorCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCiAJCQkJCSAmZmxhc2hfaW5mb1sxXSk7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkJICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkJICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCX0KIAllbHNlCiAJewotLyoJICAgIG1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLSBGSVhNRQkgICAgbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOyAgKi8KKy8qCSAgICBtZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworIEZJWE1FCSAgICBtZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOyAgKi8KIAogCQlmbGFzaF9pbmZvWzFdLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1sxXS5zZWN0b3JfY291bnQgPSAtMTsKQEAgLTUwMSw3ICs1MDEsNyBAQAogCXdoaWxlICgoYWRkclswXSAmIDB4RkZGRkZGRkYpICE9IDB4RkZGRkZGRkYpCiAjZW5kaWYKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC02MzgsNyArNjM4LDcgQEAKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpCiAjZW5kaWYKIAl7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9ndGgvZ3RoLmMgYi9ib2FyZC9ndGgvZ3RoLmMKaW5kZXggNzg4YTZhMC4uNDM5OWRiMiAxMDA2NDQKLS0tIGEvYm9hcmQvZ3RoL2d0aC5jCisrKyBiL2JvYXJkL2d0aC9ndGguYwpAQCAtMzgsNyArMzgsNyBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWludCBJZCA9IDA7CiAJaW50IFJldiA9IDA7CiAJdTMyIFBiZGF0OwpAQCAtMTYyLDcgKzE2Miw3IEBACiAKIGludCBfaW5pdHNkcmFtICh1aW50IGJhc2UsIHVpbnQgKiBub01ieXRlcykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptYyA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIHUzMiAqbWVtcHRyOwogCkBAIC0yMzUsNyArMjM1LDcgQEAKIAogdm9pZCBfc2RyYW1kaXNhYmxlICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX2JyMSA9IDB4MDAwMDAwMDA7CkBAIC0zNDUsNyArMzQ1LDcgQEAKIHN0YXRpYyB2b2lkIHdyaXRlX2Jvb3RkYXRhICh2b2xhdGlsZSB1MTYgKiBhZGRyLCB1OCBTeXN0ZW0sIHU4IENvdW50KQogewogCXUxNiBkYXRhOwotCXZvbGF0aWxlIHUxNiAqZmxhc2ggPSAodTE2ICopIChDRkdfRkxBU0hfQkFTRSk7CisJdm9sYXRpbGUgdTE2ICpmbGFzaCA9ICh1MTYgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKIAlpZiAoKFN5c3RlbSAhPSBGQUlMU0FGRV9CT09UKSAmIChTeXN0ZW0gIT0gU1lTVEVNX0JPT1QpKSB7CiAJCXByaW50ZiAoIkludmFsaWQgc3lzdGVtIGRhdGEgJXUsIHNldHRpbmcgZmFpbHNhZmVcbiIsIFN5c3RlbSk7CkBAIC0zNzYsMTIgKzM3NiwxMiBAQAogc3RhdGljIHZvaWQgbWF5YmVfdXBkYXRlX3Jlc3RhcnRfcmVhc29uICh2b2xhdGlsZSB1MzIgKiBhZGRyMzIpCiB7CiAJLyogVXBkYXRlIGFkZHIgaWYgc3cgd2QgcmVzdGFydCAqLwotCXZvbGF0aWxlIHUxNiAqZmxhc2ggPSAodTE2ICopIChDRkdfRkxBU0hfQkFTRSk7CisJdm9sYXRpbGUgdTE2ICpmbGFzaCA9ICh1MTYgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAJdm9sYXRpbGUgdTE2ICphZGRyXzE2ID0gKHUxNiAqKSBhZGRyMzI7CiAJdTMyIHJzcjsKIAogCS8qIERvbnQgcmVzZXQgcmVnaXN0ZXIgbm93ICovCi0JcnNyID0gKCh2b2xhdGlsZSBpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY2xrcnN0LmNhcl9yc3I7CisJcnNyID0gKCh2b2xhdGlsZSBpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiktPmltX2Nsa3JzdC5jYXJfcnNyOwogCiAJcnNyID4+PSAyNDsKIApAQCAtNDE5LDcgKzQxOSw3IEBACiAJaW50IGk7CiAJdm9sYXRpbGUgdTMyICpyYWRkcjsKIAotCXJhZGRyID0gKHUzMiAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyBQT1dFUl9PRkZTRVQpOworCXJhZGRyID0gKHUzMiAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgUE9XRVJfT0ZGU0VUKTsKIAogCWlmICgqcmFkZHIgPT0gMHhGRkZGRkZGRikgewogCQkvKiBOb3RoaW5nIHdyaXR0ZW4gKi8KQEAgLTQ1Niw3ICs0NTYsNyBAQAogCXU4IHN5c3RlbTsKIAl1OCBjb3VudDsKIAotCWFkZHIgPSAodTE2ICopIChDRkdfRkxBU0hfQkFTRSArIEJPT1REQVRBX09GRlNFVCk7CisJYWRkciA9ICh1MTYgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIEJPT1REQVRBX09GRlNFVCk7CiAKIAlpZiAoKmFkZHIgPT0gMHhGRkZGKSB7CiAJCXByaW50ZiAoIioqKiBObyBib290ZGF0YSBleGlzdHMuICoqKlxuIik7CkBAIC01MjgsNyArNTI4LDcgQEAKIAl1OCBUeFs1XTsKIAlpbnQgcGFnZTsKIAlpbnQgcmVhZCA9IDA7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIEtpbGwgZnBnYSAqLwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BhcGFyICY9IH4oUEFfRkxfQ09ORklHIHwgUEFfRkxfQ0UpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZ3RoL3BjbWNpYS5jIGIvYm9hcmQvZ3RoL3BjbWNpYS5jCmluZGV4IGNmZmNiZGUuLmE0ZGIxNmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2d0aC9wY21jaWEuYworKysgYi9ib2FyZC9ndGgvcGNtY2lhLmMKQEAgLTMxLDEwICszMSwxMCBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9lbmFibGU6IEdUSCBTbG90ICVjXG4iLCAnQScgKyBzbG90KTsKIAotCWltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7Ci0Jc3lzcCA9IChzeXNjb25mOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCA9IChjcG04eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKKwlzeXNwID0gKHN5c2NvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgPSAoY3BtOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOwogCiAJLyogY2xlYXIgaW50ZXJydXB0IHN0YXRlLCBhbmQgZGlzYWJsZSBpbnRlcnJ1cHRzICovCiAJcGNtcC0+cGNtY19wc2NyID0gUENNQ0lBX01BU0sgKF9zbG90Xyk7CmRpZmYgLS1naXQgYS9ib2FyZC9ndGgyL2ZsYXNoLmMgYi9ib2FyZC9ndGgyL2ZsYXNoLmMKaW5kZXggZjk2ZWRmZi4uMWIzYzQzYyAxMDA2NDQKLS0tIGEvYm9hcmQvZ3RoMi9mbGFzaC5jCisrKyBiL2JvYXJkL2d0aDIvZmxhc2guYwpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBmbGFzaF9pbml0KCkKZGlmZiAtLWdpdCBhL2JvYXJkL2d0aDIvZ3RoMi5jIGIvYm9hcmQvZ3RoMi9ndGgyLmMKaW5kZXggY2VhNjVjNi4uNTk4NzNkNSAxMDA2NDQKLS0tIGEvYm9hcmQvZ3RoMi9ndGgyLmMKKysrIGIvYm9hcmQvZ3RoMi9ndGgyLmMKQEAgLTE1NCwxOSArMTU0LDE5IEBACiAJICAgV2UgbmVlZCB0byBtYXAgaXQgaW50byBhIDMyIGJpdCBhZGRyZXNzZXMgKi8KIAl3cml0ZV9vbmVfdGxiKDIwLCAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAvKiBQYWdlbWFzaywgMTYgTUIgcGFnZXMgKi8KLQkJICAgICAgQ0ZHX1BDTUNJQV9JT19CQVNFLCAvKiBIaSAqLworCQkgICAgICBDT05GSUdfU1lTX1BDTUNJQV9JT19CQVNFLCAvKiBIaSAqLwogCQkgICAgICAweDNDMDAwMDE3LCAgICAgICAgIC8qIExvMCAqLwogCQkgICAgICAweDNDMjAwMDE3KTsgICAgICAgIC8qIExvMSAqLwogCiAJd3JpdGVfb25lX3RsYigyMSwgICAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAgIC8qIFBhZ2VtYXNrLCAxNiBNQiBwYWdlcyAqLwotCQkgICAgICBDRkdfUENNQ0lBX0FUVFJfQkFTRSwgLyogSGkgKi8KKwkJICAgICAgQ09ORklHX1NZU19QQ01DSUFfQVRUUl9CQVNFLCAvKiBIaSAqLwogCQkgICAgICAweDNEMDAwMDE3LCAgICAgICAgICAgLyogTG8wICovCiAJCSAgICAgIDB4M0QyMDAwMTcpOyAgICAgICAgICAvKiBMbzEgKi8KIAogCXdyaXRlX29uZV90bGIoMjIsICAgICAgICAgICAgICAgICAgIC8qIGluZGV4ICovCiAJCSAgICAgIDB4MDFmZmUwMDAsICAgICAgICAgICAvKiBQYWdlbWFzaywgMTYgTUIgcGFnZXMgKi8KLQkJICAgICAgQ0ZHX1BDTUNJQV9NRU1fQUREUiwgIC8qIEhpICovCisJCSAgICAgIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSLCAgLyogSGkgKi8KIAkJICAgICAgMHgzRTAwMDAxNywgICAgICAgICAgIC8qIExvMCAqLwogCQkgICAgICAweDNFMjAwMDE3KTsgICAgICAgICAgLyogTG8xICovCiAKQEAgLTIwOSw3ICsyMDksNyBAQAogc3RhdGljIHZvaWQgd3JpdGVfYm9vdGRhdGEgKHZvbGF0aWxlIHUxNiAqIGFkZHIsIHU4IFN5c3RlbSwgdTggQ291bnQpCiB7CiAJdTE2IGRhdGE7Ci0Jdm9sYXRpbGUgdTE2ICpmbGFzaCA9ICh1MTYgKikgKENGR19GTEFTSF9CQVNFKTsKKwl2b2xhdGlsZSB1MTYgKmZsYXNoID0gKHUxNiAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAogCXN3aXRjaChTeXN0ZW0pewogCWNhc2UgRkFJTFNBRkVfQk9PVDoKQEAgLTMwMiw3ICszMDIsNyBAQAogCXU4IHN5c3RlbSA9IEZBSUxTQUZFX0JPT1Q7CiAJdTggY291bnQ7CiAKLQlhZGRyID0gKHUxNiAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyBCT09UREFUQV9PRkZTRVQpOworCWFkZHIgPSAodTE2ICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBCT09UREFUQV9PRkZTRVQpOwogCiAJaWYgKCphZGRyID09IDB4RkZGRikgewogCQlwcmludGYgKCIqKiogTm8gYm9vdGRhdGEgZXhpc3RzLiAqKipcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvZ3RoMi9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9ndGgyL2xvd2xldmVsX2luaXQuUwppbmRleCA0YzRmMGViLi5iYzMxYzAwIDEwMDY0NAotLS0gYS9ib2FyZC9ndGgyL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9ndGgyL2xvd2xldmVsX2luaXQuUwpAQCAtNiw3ICs2LDcgQEAKICNpbmNsdWRlIDxhc20vbWlwc3JlZ3MuaD4KIAogI2RlZmluZSBDUDBfQ29uZmlnMAkJJDE2Ci0jZGVmaW5lIE1FTV8xTVMJCQkoKENGR19NSFopICogMTAwMCkKKyNkZWZpbmUgTUVNXzFNUwkJCSgoQ09ORklHX1NZU19NSFopICogMTAwMCkKICNkZWZpbmUgR1BJT19SSjFMWSAgICAgKDE8PDIyKQogI2RlZmluZSBHUElPX0NGUkVTRVQgICAoMTw8MTApCiAKZGlmZiAtLWdpdCBhL2JvYXJkL2d3ODI2MC9mbGFzaC5jIGIvYm9hcmQvZ3c4MjYwL2ZsYXNoLmMKaW5kZXggNmNmMzExZi4uNjAzNWY2OSAxMDA2NDQKLS0tIGEvYm9hcmQvZ3c4MjYwL2ZsYXNoLmMKKysrIGIvYm9hcmQvZ3c4MjYwL2ZsYXNoLmMKQEAgLTU0LDcgKzU0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4MjYwLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZ1X2xvbmcgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmQgKGZsYXNoX2luZm9fdCAqaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7CkBAIC04MiwyMSArODIsMjEgQEAKICAgICBpbnQgaTsKIAogICAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKyAgICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQogCiAgICAgLyogZm9yIG5vdywgb25seSBzdXBwb3J0IHRoZSA0IE1CIEZsYXNoIFNJTU0gKi8KLSAgICBzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKyAgICBzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKICAgICAvKgogICAgICAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogICAgICAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTExMCw3ICsxMTAsNyBAQAogCQkgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIChDRkdfRkxBU0gwX1NJWkUgKiAxMDI0ICogMTAyNCk7ICAvKnNpemUqLworICAgIHJldHVybiAoQ09ORklHX1NZU19GTEFTSDBfU0laRSAqIDEwMjQgKiAxMDI0KTsgIC8qc2l6ZSovCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0zNTcsNyArMzU3LDcgQEAKICAgICBsYXN0ICA9IHN0YXJ0OwogICAgIGFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogICAgIHdoaWxlICgoYWRkclswXSAmIDB4ODA4MDgwODApICE9IDB4ODA4MDgwODApIHsKLQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJICAgIHByaW50ZiAoIlRpbWVvdXRcbiIpOwogCSAgICByZXR1cm4gMTsKIAl9CkBAIC01MTIsNyArNTEyLDcgQEAKICAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogICAgIHdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkgewotCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCSAgICByZXR1cm4gKDEpOwogCX0KICAgICB9CmRpZmYgLS1naXQgYS9ib2FyZC9ndzgyNjAvZ3c4MjYwLmMgYi9ib2FyZC9ndzgyNjAvZ3c4MjYwLmMKaW5kZXggNDJjOWUwZC4uMjhmNWNhOSAxMDA2NDQKLS0tIGEvYm9hcmQvZ3c4MjYwL2d3ODI2MC5jCisrKyBiL2JvYXJkL2d3ODI2MC9ndzgyNjAuYwpAQCAtMjI2LDcgKzIyNiw3IEBACiB9CiAKIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1QpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogIG1vdmU2NCgpIC0gIG1vdmVzIGEgZG91YmxlIHdvcmQgKDY0LWJpdCkJCSAgICAgKi8KIC8qCQkJCQkJCQkgICAgICovCkBAIC0yNTYsNyArMjU2LDcgQEAKIH0KIAogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9EQVRBKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEpCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBwYXR0ZXJuW10gPSB7CiAJMHhhYWFhYWFhYWFhYWFhYWFhVUxMLApAQCAtMzE5LDcgKzMxOSw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IG1lbV90ZXN0X2RhdGEgKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nICpwbWVtID0gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBDRkdfU0RSQU1fQkFTRTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPSAodW5zaWduZWQgbG9uZyBsb25nICopIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAl1bnNpZ25lZCBsb25nIGxvbmcgdGVtcDY0ID0gMDsKIAlpbnQgbnVtX3BhdHRlcm5zID0gc2l6ZW9mIChwYXR0ZXJuKSAvIHNpemVvZiAocGF0dGVyblswXSk7CiAJaW50IGk7CkBAIC0zNDYsOSArMzQ2LDkgQEAKIAogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfREFUQSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgKi8KIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1RfQUREUkVTUykKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICBtZW1fdGVzdF9hZGRyZXNzKCkgLQl0ZXN0IGFkZHJlc3MgbGluZXMJCSAgICAgKi8KIC8qCQkJCQkJCQkgICAgICovCkBAIC0zNzMsOCArMzczLDggQEAKIGludCBtZW1fdGVzdF9hZGRyZXNzICh2b2lkKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIGludCAqcG1lbSA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgQ0ZHX1NEUkFNX0JBU0U7Ci0JY29uc3QgdW5zaWduZWQgaW50IHNpemUgPSAoQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCkgLyA0OworCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwljb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IChDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCkgLyA0OwogCXVuc2lnbmVkIGludCBpOwogCiAJLyogd3JpdGUgYWRkcmVzcyB0byBlYWNoIGxvY2F0aW9uICovCkBAIC0zOTEsOSArMzkxLDkgQEAKIAl9CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9BRERSRVNTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUyAqLwogCi0jaWYgZGVmaW5lZCAoQ0ZHX0RSQU1fVEVTVF9XQUxLKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEspCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogICBtZW1fbWFyY2goKSAtICBtZW1vcnkgbWFyY2gJCQkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KQEAgLTQ1MSw3ICs0NTEsNyBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX1dBTEsgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgIG1lbV90ZXN0X3dhbGsoKSAtICBhIHNpbXBsZSB3YWxraW5nIG9uZXMgdGVzdAkgICAgICovCkBAIC00ODMsOCArNDgzLDggQEAKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgbWFzazsKIAl2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKnBtZW0gPQotCQkodm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICopIENGR19TRFJBTV9CQVNFOwotCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0KSAvIDg7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGxvbmcgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZSA9IChDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCkgLyA4OwogCiAJdW5zaWduZWQgaW50IGk7CiAKQEAgLTU1NywyMSArNTU3LDIxIEBACiAJaWYgKChydW5kYXRhID09IDEpIHx8IChydW5hZGRyZXNzID09IDEpIHx8IChydW53YWxrID09IDEpKSB7CiAJCXByaW50ZiAoIlRlc3RpbmcgUkFNIC4uLiAiKTsKIAl9Ci0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9EQVRBCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQogCWlmIChydW5kYXRhID09IDEpIHsKIAkJaWYgKG1lbV90ZXN0X2RhdGEgKCkgPT0gMSkgewogCQkJcmV0dXJuIDE7CiAJCX0KIAl9CiAjZW5kaWYKLSNpZmRlZiBDRkdfRFJBTV9URVNUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCiAJaWYgKHJ1bmFkZHJlc3MgPT0gMSkgewogCQlpZiAobWVtX3Rlc3RfYWRkcmVzcyAoKSA9PSAxKSB7CiAJCQlyZXR1cm4gMTsKIAkJfQogCX0KICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfV0FMSworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKIAlpZiAocnVud2FsayA9PSAxKSB7CiAJCWlmIChtZW1fdGVzdF93YWxrICgpID09IDEpIHsKIAkJCXJldHVybiAxOwpAQCAtNTg0LDcgKzU4NCw3IEBACiAJcmV0dXJuIDA7CiAKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6IGluaXRkcmFtKCkgLSAgaW5pdGlhbGl6ZXMgU0RSQU0gY29udHJvbGxlcgkJICAgICAqLwpAQCAtNTkzLDExICs1OTMsMTEgQEAKIC8qICAgSW5pdGlhbGl6ZXMgdGhlIE1QQzgyNjAncyBTRFJBTSBjb250cm9sbGVyLgkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KIC8qIElOUFVUUzoJCQkJCQkJICAgICAqLwotLyogICBDRkdfSU1NUgkgICAgLSAgTVBDODI2MCBJbnRlcm5hbCBtZW1vcnkgbWFwCQkgICAgICovCi0vKiAgIENGR19TRFJBTV9CQVNFIC0gIFBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgU0RSQU0JCSAgICAgKi8KLS8qICAgQ0ZHX1BTRE1SIC0gICAgICAgU0RSQU0gbW9kZSByZWdpc3RlcgkJCSAgICAgKi8KLS8qICAgQ0ZHX01QVFBSIC0gICAgICAgTWVtb3J5IHJlZnJlc2ggdGltZXIgcHJlc2NhbGVyIHJlZ2lzdGVyCSAgICAgKi8KLS8qICAgQ0ZHX1NEUkFNMF9TSVpFIC0gU0RSQU0gc2l6ZQkJCQkgICAgICovCisvKiAgIENPTkZJR19TWVNfSU1NUgkgICAgLSAgTVBDODI2MCBJbnRlcm5hbCBtZW1vcnkgbWFwCQkgICAgICovCisvKiAgIENPTkZJR19TWVNfU0RSQU1fQkFTRSAtICBQaHlzaWNhbCBzdGFydCBhZGRyZXNzIG9mIFNEUkFNCQkgICAgICovCisvKiAgIENPTkZJR19TWVNfUFNETVIgLSAgICAgICBTRFJBTSBtb2RlIHJlZ2lzdGVyCQkJICAgICAqLworLyogICBDT05GSUdfU1lTX01QVFBSIC0gICAgICAgTWVtb3J5IHJlZnJlc2ggdGltZXIgcHJlc2NhbGVyIHJlZ2lzdGVyCSAgICAgKi8KKy8qICAgQ09ORklHX1NZU19TRFJBTTBfU0laRSAtIFNEUkFNIHNpemUJCQkJICAgICAqLwogLyoJCQkJCQkJCSAgICAgKi8KIC8qIFJFVFVSTlM6CQkJCQkJCSAgICAgKi8KIC8qICAgU0RSQU0gc2l6ZSBpbiBieXRlcwkJCQkJICAgICAqLwpAQCAtNjA4LDEwICs2MDgsMTAgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwotCXZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyAweDgpOwotCXVsb25nIHBzZG1yID0gQ0ZHX1BTRE1SOworCXZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg4KTsKKwl1bG9uZyBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAJaW50IGk7CiAKIAkvKgpAQCAtNjMxLDExICs2MzEsMTEgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsKIAkqcmFtYWRkciA9IGM7CkBAIC02NTEsNyArNjUxLDcgQEAKIAkqcmFtYWRkciA9IGM7CiAKIAkvKiByZXR1cm4gdG90YWwgcmFtIHNpemUgKi8KLQlyZXR1cm4gKENGR19TRFJBTTBfU0laRSAqIDEwMjQgKiAxMDI0KTsKKwlyZXR1cm4gKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgKiAxMDI0ICogMTAyNCk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYgLS1naXQgYS9ib2FyZC9oZXJtZXMvZmxhc2guYyBiL2JvYXJkL2hlcm1lcy9mbGFzaC5jCmluZGV4IDc5OWZlODMuLjg4ODIzMWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2hlcm1lcy9mbGFzaC5jCisrKyBiL2JvYXJkL2hlcm1lcy9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTM4LDEzICszOCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemU7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTU4LDIwICs1OCwyMCBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfAogCQkJCShtZW1jdGwtPm1lbWNfYnIwICYgfihCUl9CQV9NU0spKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMzc2LDcgKzM3Niw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X2NoYXIqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NDksNyArNDQ5LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfY2hhciAqKWRlc3QpICYgMHg4MCkgIT0gKGRhdGEgJiAweDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvaGVybWVzL2hlcm1lcy5jIGIvYm9hcmQvaGVybWVzL2hlcm1lcy5jCmluZGV4IGY5YjU3MjAuLjlhM2U1ZjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2hlcm1lcy9oZXJtZXMuYworKysgYi9ib2FyZC9oZXJtZXMvaGVybWVzLmMKQEAgLTEzNiw3ICsxMzYsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZSwgc2l6ZTgsIHNpemU5OwogCkBAIC0xNTMsOCArMTUzLDggQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmtzIDEgdG8gdGhlIFNEUkFNIGJhbmtzIGF0IHByZWxpbWluYXJ5IGFkZHJlc3MKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAogCS8qIEhFUk1FUy1QUk8gYm9hcmRzIGhhdmUgb25seSBvbmUgYmFuayBTRFJBTSAqLwogCkBAIC0xNzksNyArMTc5LDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRV9QUkVMSU0sCiAJCQkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CkBAIC0xODcsNyArMTg3LDcgQEAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRV9QUkVMSU0sCiAJCQkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAogCWlmIChzaXplOCA8IHNpemU5KSB7CQkvKiBsZWF2ZSBjb25maWd1cmF0aW9uIGF0IDkgY29sdW1ucyAqLwpAQCAtMTk1LDcgKzE5NSw3IEBACiAvKglkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA5IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0gZWxzZSB7CQkJCQkvKiBiYWNrIHRvIDggY29sdW1ucyAgICAgICAgICAgICovCiAJCXNpemUgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwogCQl1ZGVsYXkgKDUwMCk7CiAvKglkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA4IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0KQEAgLTIwMyw3ICsyMDMsNyBAQAogCXVkZWxheSAoMTAwMCk7CiAKIAltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZSkgJiAweEZGRkYwMDAwKSB8IFNEUkFNX1RJTUlORzsKLQltZW1jdGwtPm1lbWNfYnIxID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJdWRlbGF5ICgxMDAwMCk7CiAKQEAgLTIyMyw3ICsyMjMsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjY0LDcgKzI2NCw3IEBACiAKIHN0YXRpYyB1bG9uZyBib2FyZF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIHJlZywgcmV2aXNpb24sIHNwZWVkID0gMTAwOwogCWludCBldGhzcGVlZDsKIAljaGFyICpzOwpAQCAtNDAzLDcgKzQwMyw3IEBACiAgKi8KIHZvaWQgaGVybWVzX3N0YXJ0X2x4dDk4MCAoaW50IHNwZWVkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9IChjcG04eHhfdCAqKSAmIChpbW1yLT5pbV9jcG0pOwogCXZvbGF0aWxlIHNjY190ICpzcCA9IChzY2NfdCAqKSAmIChjcC0+Y3Bfc2NjW1NDQ19TTV0pOwogCXZvbGF0aWxlIGNiZF90ICpiZDsKQEAgLTU5NSw3ICs1OTUsNyBAQAogCiB2b2lkIHNob3dfYm9vdF9wcm9ncmVzcyAoaW50IHN0YXR1cykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWlmIChzdGF0dXMgPCAtMzIpIHN0YXR1cyA9IC0xOwkvKiBsZXQgdGhpbmdzIGNvbXBhdGlibGUgKi8KIAlzdGF0dXMgXj0gMHgwRjsKZGlmZiAtLWdpdCBhL2JvYXJkL2hpZGRlbl9kcmFnb24vZWFybHlfaW5pdC5TIGIvYm9hcmQvaGlkZGVuX2RyYWdvbi9lYXJseV9pbml0LlMKaW5kZXggMDdkYWZiNy4uNTMxZGNkZiAxMDA2NDQKLS0tIGEvYm9hcmQvaGlkZGVuX2RyYWdvbi9lYXJseV9pbml0LlMKKysrIGIvYm9hcmQvaGlkZGVuX2RyYWdvbi9lYXJseV9pbml0LlMKQEAgLTMyLDY4ICszMiw2OCBAQAogCiAjaWYgZGVmaW5lZChVU0VfRElOSzMyKQogICAvKiBXZSBhcmUgcnVubmluZyBmcm9tIFJBTSwgc28gZG8gbm90IGNsZWFyIHRoZSBNQ0NSMV9NRU1HTyBiaXQhICovCi0gICNkZWZpbmUgTUNDUjFWQUwgKChDRkdfUk9NTkFMIDw8IE1DQ1IxX1JPTU5BTF9TSElGVCkgfCAoQ0ZHX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpIHwgTUNDUjFfTUVNR08pCisgICNkZWZpbmUgTUNDUjFWQUwgKChDT05GSUdfU1lTX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwgKENPTkZJR19TWVNfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkgfCBNQ0NSMV9NRU1HTykKICNlbHNlCi0gICNkZWZpbmUgTUNDUjFWQUwgKENGR19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDRkdfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkKKyAgI2RlZmluZSBNQ0NSMVZBTCAoQ09ORklHX1NZU19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDT05GSUdfU1lTX1JPTUZBTCA8PCBNQ0NSMV9ST01GQUxfU0hJRlQpCiAjZW5kaWYKIAogCS50ZXh0CiAKIAkvKiBWYWx1ZXMgdG8gcHJvZ3JhbSBpbnRvIG1lbW9yeSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwogdGJsOgkubG9uZwlNQ0NSMSwgTUNDUjFWQUwKLQkubG9uZwlNQ0NSMiwgQ0ZHX1JFRklOVCA8PCBNQ0NSMl9SRUZJTlRfU0hJRlQKKwkubG9uZwlNQ0NSMiwgQ09ORklHX1NZU19SRUZJTlQgPDwgTUNDUjJfUkVGSU5UX1NISUZUCiAJLmxvbmcJTUNDUjMKLQkubG9uZwkoKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAwZjApID4+IDQpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8IFwKLQkJKENGR19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8IFwKLQkJKENGR19SRExBVCAgPDwgTUNDUjNfUkRMQVRfU0hJRlQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDBmMCkgPj4gNCkgPDwgTUNDUjNfQlNUT1BSRTJUTzVfU0hJRlQpIHwgXAorCQkoQ09ORklHX1NZU19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8IFwKKwkJKENPTkZJR19TWVNfUkRMQVQgIDw8IE1DQ1IzX1JETEFUX1NISUZUKQogCS5sb25nCU1DQ1I0Ci0JLmxvbmcJKENGR19QUkVUT0FDVCA8PCBNQ0NSNF9QUkVUT0FDVF9TSElGVCkgfCAoQ0ZHX0FDVFRPUFJFIDw8IE1DQ1I0X0FDVFRPUFJFX1NISUZUKSB8IFwKLQkJKENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPDwgMjApIHwgXAotCQkoKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAzMDApID4+IDgpIDw8IE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfCBcCi0JCSgoQ0ZHX1NETU9ERV9DQVNfTEFUIDw8IDQpIHwgKENGR19TRE1PREVfV1JBUCA8PCAzKSB8IFwKLQkJKENGR19TRE1PREVfQlVSU1RMRU4pIDw8IE1DQ1I0X1NETU9ERV9TSElGVCkgfCBcCi0JCShDRkdfQUNUVE9SVyA8PCBNQ0NSNF9BQ1RUT1JXX1NISUZUKSB8IFwKLQkJKChDRkdfQlNUT1BSRSAmIDB4MDAwMDAwMGYpIDw8IE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUICkKKwkubG9uZwkoQ09ORklHX1NZU19QUkVUT0FDVCA8PCBNQ0NSNF9QUkVUT0FDVF9TSElGVCkgfCAoQ09ORklHX1NZU19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA8PCAyMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMDAzMDApID4+IDgpIDw8IE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfCBcCisJCSgoQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCA8PCA0KSB8IChDT05GSUdfU1lTX1NETU9ERV9XUkFQIDw8IDMpIHwgXAorCQkoQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4pIDw8IE1DQ1I0X1NETU9ERV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX0FDVFRPUlcgPDwgTUNDUjRfQUNUVE9SV19TSElGVCkgfCBcCisJCSgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDAwZikgPDwgTUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKQogCS5sb25nCU1TQVIxCi0JLmxvbmcJKCgoQ0ZHX0JBTkswX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTkszX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNU0FSMQotCS5sb25nCSgoKENGR19CQU5LMF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTksyX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksxX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJTVNBUjIKLQkubG9uZwkoKChDRkdfQkFOSzRfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTks2X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzdfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks1X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks2X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJRU1TQVIyCi0JLmxvbmcJKCgoQ0ZHX0JBTks0X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNRUFSMQotCS5sb25nCSgoKENGR19CQU5LMF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LMV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTkswX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNRUFSMQotCS5sb25nCSgoKENGR19CQU5LMF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTksxX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzJfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LM19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzBfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzFfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzJfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzNfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNRUFSMgotCS5sb25nCSgoKENGR19CQU5LNF9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LNV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LNl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTks0X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCUVNRUFSMgotCS5sb25nCSgoKENGR19CQU5LNF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTks1X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzRfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzdfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwkwCiAKIApAQCAtMTIzLDcgKzEyMyw3IEBACiAJLyogc2V0IGJhbmsgZW5hYmxlIGJpdHMgKi8KIAlsaXMJcjAsIE1CRVJAaAogCW9yaQlyMCwgMCwgTUJFUkBsCi0JbGkJcjEsIENGR19CQU5LX0VOQUJMRQorCWxpCXIxLCBDT05GSUdfU1lTX0JBTktfRU5BQkxFCiAJc3R3YnJ4CXIwLCAwLCByMwogCWVpZWlvCiAJc3RiCXIxLCAwKHI0KQpAQCAtMTQ1LDggKzE0NSw4IEBACiAJZWllaW8KIAogCS8qIHNldCB1cCBzdGFjayBwb2ludGVyICovCi0JbGlzCXIxLCBDRkdfSU5JVF9TUF9PRkZTRVRAaAotCW9yaQlyMSwgcjEsIENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUQGgKKwlvcmkJcjEsIHIxLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUQGwKIAogCW10bHIJcjEwCiAJYmxyCmRpZmYgLS1naXQgYS9ib2FyZC9oaWRkZW5fZHJhZ29uL2ZsYXNoLmMgYi9ib2FyZC9oaWRkZW5fZHJhZ29uL2ZsYXNoLmMKaW5kZXggMTAyOTNiNC4uMmNlMWRjNCAxMDA2NDQKLS0tIGEvYm9hcmQvaGlkZGVuX2RyYWdvbi9mbGFzaC5jCisrKyBiL2JvYXJkL2hpZGRlbl9kcmFnb24vZmxhc2guYwpAQCAtMzMsMTEgKzMzLDExIEBACiAjZGVmaW5lIFJPTV9DUzBfU1RBUlQJMHhGRjgwMDAwMAogI2RlZmluZSBST01fQ1MxX1NUQVJUCTB4RkYwMDAwMDAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUgIENPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC0xMjAsMTAgKzEyMCwxMCBAQAogewogCXVuc2lnbmVkIGxvbmcgaTsKIAl1bnNpZ25lZCBjaGFyIGo7Ci0Jc3RhdGljIGNvbnN0IHVsb25nIGZsYXNoX2JhbmtzW10gPSBDRkdfRkxBU0hfQkFOS1M7CisJc3RhdGljIGNvbnN0IHVsb25nIGZsYXNoX2JhbmtzW10gPSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlmbGFzaF9pbmZvX3QgKmNvbnN0IHBmbGluZm8gPSAmZmxhc2hfaW5mb1tpXTsKIAogCQlwZmxpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CkBAIC0xMzUsMTAgKzEzNSwxMCBAQAogCXsKIAkJcmVnaXN0ZXIgdW5zaWduZWQgY2hhciB0ZW1wOwogCi0JCUNPTkZJR19SRUFEX0JZVEUgKENGR19XSU5CT05EX0lTQV9DRkdfQUREUiArIFdJTkJPTkRfQ1NDUiwKKwkJQ09ORklHX1JFQURfQllURSAoQ09ORklHX1NZU19XSU5CT05EX0lTQV9DRkdfQUREUiArIFdJTkJPTkRfQ1NDUiwKIAkJCQkgIHRlbXApOwogCQl0ZW1wICY9IH4weDIwOwkvKiBjbGVhciBCSU9TV1AgYml0ICovCi0JCUNPTkZJR19XUklURV9CWVRFIChDRkdfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgKyBXSU5CT05EX0NTQ1IsCisJCUNPTkZJR19XUklURV9CWVRFIChDT05GSUdfU1lTX1dJTkJPTkRfSVNBX0NGR19BRERSICsgV0lOQk9ORF9DU0NSLAogCQkJCSAgIHRlbXApOwogCX0KIApAQCAtMjA1LDEwICsyMDUsMTAgQEAKIAkJfQogCQkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkJICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNDI2LDcgKzQyNiw3IEBACiAJCQkJCQkgICAgICAgc3RhcnRbMF0pIDw8IHNoOGIpKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCSAgICAgICAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTU2NSw3ICs1NjUsNyBAQAogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgoZGVzdDJbaSA8PCBzaDhiXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CiAJCSAgICAgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2hpZGRlbl9kcmFnb24vaGlkZGVuX2RyYWdvbi5jIGIvYm9hcmQvaGlkZGVuX2RyYWdvbi9oaWRkZW5fZHJhZ29uLmMKaW5kZXggMmQ3YTc4Ny4uMDI3YWE0NSAxMDA2NDQKLS0tIGEvYm9hcmQvaGlkZGVuX2RyYWdvbi9oaWRkZW5fZHJhZ29uLmMKKysrIGIvYm9hcmQvaGlkZGVuX2RyYWdvbi9oaWRkZW5fZHJhZ29uLmMKQEAgLTUyLDcgKzUyLDcgQEAKIAlsb25nIG1lYXIxOwogCWxvbmcgZW1lYXIxOwogCi0Jc2l6ZSA9IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgQ0ZHX01BWF9SQU1fU0laRSk7CisJc2l6ZSA9IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFKTsKIAogCW5ld19iYW5rMF9lbmQgPSBzaXplIC0gMTsKIAltZWFyMSA9IG1wYzgyNHhfbXBjMTA3X2dldHJlZyhNRUFSMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9obWkxMDAxL2htaTEwMDEuYyBiL2JvYXJkL2htaTEwMDEvaG1pMTAwMS5jCmluZGV4IDhjZmQ3NWIuLjljYmVkNGIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2htaTEwMDEvaG1pMTAwMS5jCisrKyBiL2JvYXJkL2htaTEwMDEvaG1pMTAwMS5jCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPG1hbGxvYy5oPgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC03NiwxNCArNzYsMTQgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICoJICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKgkgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICoJICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAl1aW50IHN2ciwgcHZyOwogCkBAIC0xMDUsOSArMTA1LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTI5LDcgKzEyOSw3IEBACiAJfQogCiAJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTE0Nyw3ICsxNDcsNyBAQAogCQlkcmFtc2l6ZTIgPSAwOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKgogCSAqIE9uIE1QQzUyMDBCIHdlIG5lZWQgdG8gc2V0IHRoZSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gZGVsYXkgaW4gdGhlCkBAIC0xOTMsOCArMTkzLDggQEAKIAogc3RydWN0IGtiZF9kYXRhX3QqIGdldF9rZXlzIChzdHJ1Y3Qga2JkX2RhdGFfdCAqa2JkX2RhdGEpCiB7Ci0Ja2JkX2RhdGEtPnMxID0gKigodm9sYXRpbGUgdWNoYXIqKShDRkdfU1RBVFVTMV9CQVNFKSk7Ci0Ja2JkX2RhdGEtPnMyID0gKigodm9sYXRpbGUgdWNoYXIqKShDRkdfU1RBVFVTMl9CQVNFKSk7CisJa2JkX2RhdGEtPnMxID0gKigodm9sYXRpbGUgdWNoYXIqKShDT05GSUdfU1lTX1NUQVRVUzFfQkFTRSkpOworCWtiZF9kYXRhLT5zMiA9ICooKHZvbGF0aWxlIHVjaGFyKikoQ09ORklHX1NZU19TVEFUVVMyX0JBU0UpKTsKIAogCXJldHVybiBrYmRfZGF0YTsKIH0KQEAgLTMwMCw5ICszMDAsOSBAQAogewogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX0NGRyAmPSB+MHgxOyAvKiBjbGVhciBSTyAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUQVJUID0KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVEFSVCA9IFNUQVJUX1JFRyhDRkdfRkxBU0hfQkFTRSk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPSBTVEFSVF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVE9QID0KLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9TSVpFKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX1NJWkUpOwogCXJldHVybiAwOwogfQogI2lmZGVmCUNPTkZJR19QQ0kKZGlmZiAtLWdpdCBhL2JvYXJkL2h5bW9kL2JzcC5jIGIvYm9hcmQvaHltb2QvYnNwLmMKaW5kZXggMTJmMTQwMi4uMTg0OGJiMyAxMDA2NDQKLS0tIGEvYm9hcmQvaHltb2QvYnNwLmMKKysrIGIvYm9hcmQvaHltb2QvYnNwLmMKQEAgLTMwNCw3ICszMDQsNyBAQAogZG9fZWVjbCAoY21kX3RibF90ICogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCXVjaGFyIGRhdGFbSFlNT0RfRUVQUk9NX1NJWkVdOwotCXVpbnQgYWRkciA9IENGR19JMkNfRUVQUk9NX0FERFI7CisJdWludCBhZGRyID0gQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFI7CiAKIAlzd2l0Y2ggKGFyZ2MpIHsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvaHltb2QvZWVwcm9tLmMgYi9ib2FyZC9oeW1vZC9lZXByb20uYwppbmRleCBjOWI5YjE4Li40ZDQ4ZDdkIDEwMDY0NAotLS0gYS9ib2FyZC9oeW1vZC9lZXByb20uYworKysgYi9ib2FyZC9oeW1vZC9lZXByb20uYwpAQCAtMzYsNyArMzYsNyBAQAogc3RhdGljIGludAogaHltb2RfZWVwcm9tX2xvYWQgKGludCB3aGljaCwgaHltb2RfZWVwcm9tX3QgKmVwKQogewotCXVuc2lnbmVkIGRldl9hZGRyID0gQ0ZHX0kyQ19FRVBST01fQUREUiB8IFwKKwl1bnNpZ25lZCBkZXZfYWRkciA9IENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSIHwgXAogCQkod2hpY2ggPyBIWU1PRF9FRU9GRl9NRVpaIDogSFlNT0RfRUVPRkZfTUFJTik7CiAJdW5zaWduZWQgb2Zmc2V0ID0gMDsKIAl1Y2hhciBkYXRhW0hZTU9EX0VFUFJPTV9NQVhMRU5dLCAqZHAsICplZHA7CkBAIC00NjYsNyArNDY2LDcgQEAKIHN0YXRpYyBpbnQKIGh5bW9kX2VlcHJvbV9mZXRjaChpbnQgd2hpY2gsIGNoYXIgKmZpbGVuYW1lLCB1bG9uZyBhZGRyKQogewotCXVuc2lnbmVkIGRldl9hZGRyID0gQ0ZHX0kyQ19FRVBST01fQUREUiB8IFwKKwl1bnNpZ25lZCBkZXZfYWRkciA9IENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSIHwgXAogCQkod2hpY2ggPyBIWU1PRF9FRU9GRl9NRVpaIDogSFlNT0RfRUVPRkZfTUFJTik7CiAJaHltb2RfZWVoZHJfdCAqaHAgPSAoaHltb2RfZWVoZHJfdCAqKSZkYXRhWzBdOwogCXVsb25nIGNyYzsKQEAgLTYzNSw3ICs2MzUsNyBAQAogaHltb2RfZWVwcm9tX3JlYWQgKGludCB3aGljaCwgaHltb2RfZWVwcm9tX3QgKmVwKQogewogCWNoYXIgKmxhYmVsID0gd2hpY2ggPyAibWV6emFuaW5lIiA6ICJtYWluIjsKLQl1bnNpZ25lZCBkZXZfYWRkciA9IENGR19JMkNfRUVQUk9NX0FERFIgfCBcCisJdW5zaWduZWQgZGV2X2FkZHIgPSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiB8IFwKIAkJKHdoaWNoID8gSFlNT0RfRUVPRkZfTUVaWiA6IEhZTU9EX0VFT0ZGX01BSU4pOwogCWNoYXIgZmlsZW5hbWVbNTBdLCBwcm9tcHRbNTBdLCAqZGlyOwogCWludCBzZXJubywgY291bnQgPSAwLCByYzsKQEAgLTY4Miw3ICs2ODIsNyBAQAogCQlwcmludGYgKCIqKiogZmV0Y2hpbmcgJXMgYm9hcmQgRUVQUk9NIGNvbnRlbnRzIGZyb20gc2VydmVyXG4iLAogCQkJbGFiZWwpOwogCi0JCXJjID0gaHltb2RfZWVwcm9tX2ZldGNoICh3aGljaCwgZmlsZW5hbWUsIENGR19MT0FEX0FERFIpOworCQlyYyA9IGh5bW9kX2VlcHJvbV9mZXRjaCAod2hpY2gsIGZpbGVuYW1lLCBDT05GSUdfU1lTX0xPQURfQUREUik7CiAKIAkJaWYgKHJjID09IDApIHsKIAkJCXB1dHMgKCIqKiogZmV0Y2ggZmFpbGVkIC0gaWdub3JpbmcgZWVwcm9tIGNvbnRlbnRzXG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2h5bW9kL2Vudi5jIGIvYm9hcmQvaHltb2QvZW52LmMKaW5kZXggMDYyNTUzYi4uYzBlMmNkNSAxMDA2NDQKLS0tIGEvYm9hcmQvaHltb2QvZW52LmMKKysrIGIvYm9hcmQvaHltb2QvZW52LmMKQEAgLTM1LDcgKzM1LDcgQEAKIGVudl9jYWxsYmFjayAodWNoYXIgKm5hbWUsIHVjaGFyICp2YWx1ZSkKIHsKIAloeW1vZF9jb25mX3QgKmNwID0gJmdkLT5iZC0+YmlfaHltb2RfY29uZjsKLQljaGFyIG92W0NGR19DQlNJWkVdLCBudltDRkdfQ0JTSVpFXSwgKnAsICpxLCAqbm4sIGMsICpjdXJ2ZXIsICpuZXd2ZXI7CisJY2hhciBvdltDT05GSUdfU1lTX0NCU0laRV0sIG52W0NPTkZJR19TWVNfQ0JTSVpFXSwgKnAsICpxLCAqbm4sIGMsICpjdXJ2ZXIsICpuZXd2ZXI7CiAJaW50IG92ZXJyaWRlID0gMSwgYXBwZW5kID0gMCwgcmVtb3ZlID0gMCwgbm5sLCBvdmwsIG52bDsKIAogCW5uID0gKGNoYXIgKiluYW1lOwpAQCAtMjA1LDcgKzIwNSw3IEBACiAJaWYgKChwYXRoID0gZ2V0ZW52ICgiZ2xvYmFsX2Vudl9wYXRoIikpID09IE5VTEwgfHwgKnBhdGggPT0gJ1wwJykKIAkJcGF0aCA9IGRlZl9nbG9iYWxfZW52X3BhdGg7CiAKLQlpZiAoZmV0Y2hfYW5kX3BhcnNlIChwYXRoLCBDRkdfTE9BRF9BRERSLCBlbnZfY2FsbGJhY2spID09IDApIHsKKwlpZiAoZmV0Y2hfYW5kX3BhcnNlIChwYXRoLCBDT05GSUdfU1lTX0xPQURfQUREUiwgZW52X2NhbGxiYWNrKSA9PSAwKSB7CiAJCXB1dHMgKCIqKiogRmV0Y2ggb2YgZ2xvYmFsIGVudmlyb25tZW50IGZhaWxlZCFcbiIpOwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvaHltb2QvZmxhc2guYyBiL2JvYXJkL2h5bW9kL2ZsYXNoLmMKaW5kZXggYWQwYTIyOS4uZTJjZjM4YyAxMDA2NDQKLS0tIGEvYm9hcmQvaHltb2QvZmxhc2guYworKysgYi9ib2FyZC9oeW1vZC9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSA8bXBjODI2MC5oPgogI2luY2x1ZGUgPGJvYXJkL2h5bW9kL2ZsYXNoLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQcm90ZWN0aW9uIEZsYWdzOgpAQCAtOTUsNyArOTUsNyBAQAogCQkJKHVuc2lnbmVkIGxvbmcpd29yZCwgKHVuc2lnbmVkIGxvbmcpYmFzZSk7CiAJfQogCi0JaWYgKGZpcC0+c2VjdG9yX2NvdW50ID49IENGR19NQVhfRkxBU0hfU0VDVCkKKwlpZiAoZmlwLT5zZWN0b3JfY291bnQgPj0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkKIAkJcGFuaWMgKCJcbnRvbyBtYW55IHNlY3RvcnMgKCVkKSBpbiBmbGFzaCBhdCBhZGRyZXNzIDB4JTA4bHgiLAogCQkJZmlwLT5zZWN0b3JfY291bnQsICh1bnNpZ25lZCBsb25nKWJhc2UpOwogCkBAIC0xOTgsNyArMTk4LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWRvIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR2YWwgPSAxOwogCQkJZ290byBkb25lOwogCQl9CkBAIC0yMjgsMzAgKzIyOCwzMCBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0JYmFua19wcm9iZSAoJmZsYXNoX2luZm9bMF0sIChiYW5rX2FkZHJfdClDRkdfRkxBU0hfQkFTRSk7CisJYmFua19wcm9iZSAoJmZsYXNoX2luZm9bMF0sIChiYW5rX2FkZHJfdClDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCiAJLyoKIAkgKiBwcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPT0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA9PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkodm9pZClmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX0VOVl9BRERSKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9FTlZfQUREUikKIAkodm9pZClmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfRkxBU0hfRU5WX0FERFIsCi0jaWYgZGVmaW5lZChDRkdfRkxBU0hfRU5WX0JVRikKLQkJICAgICAgQ0ZHX0ZMQVNIX0VOVl9BRERSICsgQ0ZHX0ZMQVNIX0VOVl9CVUYgLSAxLAorCQkgICAgICBDT05GSUdfU1lTX0ZMQVNIX0VOVl9BRERSLAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9FTlZfQlVGKQorCQkgICAgICBDT05GSUdfU1lTX0ZMQVNIX0VOVl9BRERSICsgQ09ORklHX1NZU19GTEFTSF9FTlZfQlVGIC0gMSwKICNlbHNlCi0JCSAgICAgIENGR19GTEFTSF9FTlZfQUREUiArIENGR19GTEFTSF9FTlZfU0laRSAtIDEsCisJCSAgICAgIENPTkZJR19TWVNfRkxBU0hfRU5WX0FERFIgKyBDT05GSUdfU1lTX0ZMQVNIX0VOVl9TSVpFIC0gMSwKICNlbmRpZgogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKQEAgLTM2OCw3ICszNjgsNyBAQAogCQkJZG8gewogCQkJCW5vdyA9IGdldF90aW1lciAoc3RhcnQpOwogCi0JCQkJaWYgKG5vdyAtIGVzdGFydCA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKG5vdyAtIGVzdGFydCA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0IChzZWN0ICVkKVxuIiwgc2VjdCk7CiAJCQkJCWhhZGVyciA9IDE7CiAJCQkJCXJjb2RlID0gMTsKZGlmZiAtLWdpdCBhL2JvYXJkL2h5bW9kL2h5bW9kLmMgYi9ib2FyZC9oeW1vZC9oeW1vZC5jCmluZGV4IDkxYWFhYjEuLjJhZjMwNDkgMTAwNjQ0Ci0tLSBhL2JvYXJkL2h5bW9kL2h5bW9kLmMKKysrIGIvYm9hcmQvaHltb2QvaHltb2QuYwpAQCAtMjU1LDcgKzI1NSw3IEBACiBpbnQKIGJvYXJkX3Bvc3RjbGtfaW5pdCAodm9pZCkKIHsKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAkvKgogCSAqIEluaXRpYWxpc2UgdGhlIEZTNjM3NyBjbG9jayBjaGlwCkBAIC0zNDcsMTYgKzM0NywxNiBAQAogaW50CiBtaXNjX2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAlwcmludGYgKCJVUE1zOiAgIik7CiAKIAl1cG1jb25maWcgKFVQTUIsIHVwbWJfdGFibGUsIHNpemVvZiB1cG1iX3RhYmxlIC8gc2l6ZW9mIHVwbWJfdGFibGVbMF0pOwotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVI7CisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVI7CiAKIAl1cG1jb25maWcgKFVQTUMsIHVwbWNfdGFibGUsIHNpemVvZiB1cG1jX3RhYmxlIC8gc2l6ZW9mIHVwbWNfdGFibGVbMF0pOwotCW1lbWN0bC0+bWVtY19tY21yID0gQ0ZHX01DTVI7CisJbWVtY3RsLT5tZW1jX21jbXIgPSBDT05GSUdfU1lTX01DTVI7CiAKIAlwcmludGYgKCJjb25maWd1cmVkXG4iKTsKIAlyZXR1cm4gKDApOwpAQCAtMzY3LDEwICszNjcsMTAgQEAKIHBoeXNfc2l6ZV90CiBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwotCXZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyAweDgpOwotCXVsb25nIHBzZG1yID0gQ0ZHX1BTRE1SOworCXZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkciA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg4KTsKKwl1bG9uZyBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CiAJaW50IGk7CiAKIAkvKgpAQCAtMzkwLDExICszOTAsMTEgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsKIAkqcmFtYWRkciA9IGM7CkBAIC00MDksNyArNDA5LDcgQEAKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpyYW1hZGRyID0gYzsKIAotCXJldHVybiAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApOworCXJldHVybiAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtNTE3LDE4ICs1MTcsMTggQEAKICNpZmRlZiBDT05GSUdfU0hPV19BQ1RJVklUWQogdm9pZCBib2FyZF9zaG93X2FjdGl2aXR5ICh1bG9uZyB0aW1lYmFzZSkKIHsKLSNpZmRlZiBDRkdfSFlNT0RfREJMRURTCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworI2lmZGVmIENPTkZJR19TWVNfSFlNT0RfREJMRURTCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBpb3A4MjYwX3QgKmlvcCA9ICZpbW1yLT5pbV9pb3BvcnQ7CiAJc3RhdGljIGludCBzaGlmdCA9IDA7CiAKLQlpZiAoKHRpbWVzdGFtcCAlIENGR19IWikgPT0gMCkgeworCWlmICgodGltZXN0YW1wICUgQ09ORklHX1NZU19IWikgPT0gMCkgewogCQlpZiAoKytzaGlmdCA+IDMpCiAJCQlzaGlmdCA9IDA7CiAJCWlvcC0+aW9wX3BkYXRkID0KIAkJCQkoaW9wLT5pb3BfcGRhdGQgJiB+MHgwZjAwMDAwMCkgfCAoMSA8PCAoMjQgKyBzaGlmdCkpOwogCX0KLSNlbmRpZiAvKiBDRkdfSFlNT0RfREJMRURTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19IWU1PRF9EQkxFRFMgKi8KIH0KIAogdm9pZCBzaG93X2FjdGl2aXR5KGludCBhcmcpCmRpZmYgLS1naXQgYS9ib2FyZC9oeW1vZC9pbnB1dC5jIGIvYm9hcmQvaHltb2QvaW5wdXQuYwppbmRleCA2M2FhMTNjLi45OTgxMzJkIDEwMDY0NAotLS0gYS9ib2FyZC9oeW1vZC9pbnB1dC5jCisrKyBiL2JvYXJkL2h5bW9kL2lucHV0LmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KIAogLyogaW1wb3J0cyBmcm9tIGNvbW1vbi9tYWluLmMgKi8KLWV4dGVybiBjaGFyIGNvbnNvbGVfYnVmZmVyW0NGR19DQlNJWkVdOworZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwogCiBpbnQKIGh5bW9kX2dldF9zZXJubyAoY29uc3QgY2hhciAqcHJvbXB0KQpkaWZmIC0tZ2l0IGEvYm9hcmQvaWNlY3ViZS9mbGFzaC5jIGIvYm9hcmQvaWNlY3ViZS9mbGFzaC5jCmluZGV4IDBhYTc4ZWIuLjdhNDMzYjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ljZWN1YmUvZmxhc2guYworKysgYi9ib2FyZC9pY2VjdWJlL2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KIAogI2lmbmRlZiBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qIE5PVEUgLSBDT05GSUdfRkxBU0hfMTZCSVQgbWVhbnMgdGhlIENQVSBpbnRlcmZhY2UgaXMgMTYtYml0LCBpdAogICogICAgICAgIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGZsYXNoIGNoaXAgYmVpbmcgOC1iaXQgb3IgMTYtYml0LgpAQCAtNjYsMTIgKzY2LDEyIEBACiAJaW50IGk7CiAJZXh0ZXJuIHZvaWQgZmxhc2hfcHJlaW5pdCh2b2lkKTsKIAlleHRlcm4gdm9pZCBmbGFzaF9hZnRlcmluaXQodWxvbmcpOwotCXVsb25nIGZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCXVsb25nIGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCWZsYXNoX3ByZWluaXQoKTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQltZW1zZXQoJmZsYXNoX2luZm9baV0sIDAsIHNpemVvZihmbGFzaF9pbmZvX3QpKTsKIAogCQlmbGFzaF9pbmZvW2ldLnNpemUgPQpAQCAtODAsMTIgKzgwLDEyIEBACiAJCXNpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplOwogCQlmbGFzaGJhc2UgKz0gMHg4MDAwMDA7CiAJfQotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAotCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDRkdfTU9OSVRPUl9CQVNFKSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xMjIsMTQgKzEyMiwxNCBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c2l6ZSAmJgogCQkJaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJiBiYXNlIDw9IGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSAtIDEpCiAJCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CisJcmV0dXJuIGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzYwLDcgKzM2MCw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtMzc0LDE0ICszNzQsMTQgQEAKIAkJCX0KIAogCQkJLyogc2hvdyB0aGF0IHdlJ3JlIHdhaXRpbmcgKi8KLQkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgey8qIGV2ZXJ5IHNlY29uZCAqLworCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgey8qIGV2ZXJ5IHNlY29uZCAqLwogCQkJCXB1dGMgKCcuJyk7CiAJCQkJbGFzdCA9IGdldF90aW1lcigwKTsKIAkJCX0KIAkJfQogCiAJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENGR19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KKwkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KIAkJCXB1dGMgKCcuJyk7CiAJCQlsYXN0ID0gZ2V0X3RpbWVyKDApOwogCQl9CkBAIC00ODIsNyArNDgyLDcgQEAKIAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAocmVzID09IDAgJiYgKCpkZXN0ICYgKEZQVykweDAwODAwMDgwKSAhPSAoZGF0YSAmIChGUFcpMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2ljZWN1YmUvaWNlY3ViZS5jIGIvYm9hcmQvaWNlY3ViZS9pY2VjdWJlLmMKaW5kZXggZDg0YWIzYS4uNzUyNDQ2MSAxMDA2NDQKLS0tIGEvYm9hcmQvaWNlY3ViZS9pY2VjdWJlLmMKKysrIGIvYm9hcmQvaWNlY3ViZS9pY2VjdWJlLmMKQEAgLTg3LDcgKzg3LDcgQEAKICNkZWZpbmUgbGl0ZTUyMDBiX3dha2V1cCgpCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIHN0YXRpYyB2b2lkIHNkcmFtX3N0YXJ0IChpbnQgaGlfYWRkcikKIHsKIAlsb25nIGhpX2FkZHJfYml0ID0gaGlfYWRkciA/IDB4MDEwMDAwMDAgOiAwOwpAQCAtMTMwLDcgKzEzMCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC0xNDEsNyArMTQxLDcgQEAKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwogCXVpbnQgc3ZyLCBwdnI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xNjIsOSArMTYyLDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTkwLDEwICsxOTAsMTAgQEAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJaWYgKCFkcmFtc2l6ZSkKIAkJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCWlmICghZHJhbXNpemUpIHsKIAkJc2RyYW1fc3RhcnQoMSk7Ci0JCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAl9CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CkBAIC0yMTUsNyArMjE1LDcgQEAKIAkJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KIAl9CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTIzMyw3ICsyMzMsNyBAQAogCQlkcmFtc2l6ZTIgPSAwOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKgogCSAqIE9uIE1QQzUyMDBCIHdlIG5lZWQgdG8gc2V0IHRoZSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gZGVsYXkgaW4gdGhlCkBAIC0yNjMsNyArMjYzLDcgQEAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKIAl1bG9uZyBkcmFtc2l6ZSA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIGFuZCBlbmFibGUgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0yODIsOSArMjgyLDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMjk1LDEyICsyOTUsMTIgQEAKIAkvKiBzZXQgU0RSQU0gZW5kIGFkZHJlc3MgYWNjb3JkaW5nIHRvIHNpemUgKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX1NUT1AgPSAoKGRyYW1zaXplIC0gMSkgPj4gMTUpOwogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiBSZXRyaWV2ZSBhbW91bnQgb2YgU0RSQU0gYXZhaWxhYmxlICovCiAJZHJhbXNpemUgPSAoKCoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCArIDEpIDw8IDE1KTsKIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlyZXR1cm4gZHJhbXNpemU7CiB9CkBAIC0zNDAsOSArMzQwLDkgQEAKIHsKIAlpZiAoc2l6ZSA9PSAweDgwMDAwMCkgeyAvKiBhZGp1c3QgbWFwcGluZyAqLwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVEFSVCA9ICoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUQVJUID0KLQkJCVNUQVJUX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSk7CisJCQlTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplKTsKIAkJKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RPUCA9ICoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUT1AgPQotCQkJU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8IHNpemUsIHNpemUpOworCQkJU1RPUF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfCBzaXplLCBzaXplKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2ljdTg2Mi9mbGFzaC5jIGIvYm9hcmQvaWN1ODYyL2ZsYXNoLmMKaW5kZXggZTYzODJmNS4uMmFmZWZmNCAxMDA2NDQKLS0tIGEvYm9hcmQvaWN1ODYyL2ZsYXNoLmMKKysrIGIvYm9hcmQvaWN1ODYyL2ZsYXNoLmMKQEAgLTI0LDExICsyNCwxMSBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTUwLDEzICs1MCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05MiwxOSArOTIsMTkgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiBPUl9BTV9NU0spOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNDY4LDcgKzQ2OCw3IEBACiAJd2hpbGUgKChhZGRyWzBdICYgMHhGRkZGRkZGRikgIT0gMHhGRkZGRkZGRikKICNlbmRpZgogCXsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXB1dHMgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC02MDYsNyArNjA2LDcgQEAKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpCiAjZW5kaWYKIAl7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9pY3U4NjIvaWN1ODYyLmMgYi9ib2FyZC9pY3U4NjIvaWN1ODYyLmMKaW5kZXggMThhYThiZi4uYjk5ZDI1NiAxMDA2NDQKLS0tIGEvYm9hcmQvaWN1ODYyL2ljdTg2Mi5jCisrKyBiL2JvYXJkL2ljdTg2Mi9pY3U4NjIuYwpAQCAtOTYsNyArOTYsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTgsIHNpemU5OwogCWxvbmcgaW50IHNpemVfYjAgPSAwOwpAQCAtMTExLDcgKzExMSw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTEyMCwxMCArMTIwLDEwIEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xNDMsNyArMTQzLDcgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIFNEUkFNX0JBU0UxX1BSRUxJTSwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzhDT0wsIFNEUkFNX0JBU0UxX1BSRUxJTSwKIAkJCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJdWRlbGF5ICgxMDAwKTsKQEAgLTE1MSw3ICsxNTEsNyBAQAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgU0RSQU1fQkFTRTFfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgU0RSQU1fQkFTRTFfUFJFTElNLAogCQkJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewkJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgKi8KQEAgLTE1OSw3ICsxNTksNyBAQAogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOSBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9IGVsc2UgewkJCQkJLyogYmFjayB0byA4IGNvbHVtbnMgICAgICAgICAgICAqLwogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9CkBAIC0xNzIsNyArMTcyLDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSkgewogCQkvKiByZWR1Y2UgdG8gMTUuNiB1cyAoNjIuNCB1cyAvIHF1YWQpICovCi0JCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzRLOwogCQl1ZGVsYXkgKDEwMDApOwogCX0KIApAQCAtMTgwLDEyICsxODAsMTIgQEAKIAkgKiBGaW5hbCBtYXBwaW5nCiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JcmVnID4+PSAxOwkJCQkJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwlyZWcgPj49IDE7CQkJCQkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKQEAgLTIwNiw3ICsyMDYsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaWN1ODYyL3BjbWNpYS5jIGIvYm9hcmQvaWN1ODYyL3BjbWNpYS5jCmluZGV4IDIwOTIyZDguLmE0YzBiNTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ljdTg2Mi9wY21jaWEuYworKysgYi9ib2FyZC9pY3U4NjIvcGNtY2lhLmMKQEAgLTIyLDggKzIyLDggQEAKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3A7CiAJdWludCByZWc7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qCiAJKiBDb25maWd1cmUgUG9ydCBCIGZvciBUUFMyMjA1IFBDLUNhcmQgUG93ZXItSW50ZXJmYWNlIFN3aXRjaApAQCAtNTgsMTAgKzU4LDEwIEBACiAKIAl1ZGVsYXkoMTAwMDApOwogCi0JaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotCXN5c3AgID0gKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKLQlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOwotCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXN5c3AgID0gKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3NpdV9jb25mKSk7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qIENvbmZpZ3VyZSBQb3J0IEIgZm9yIFRQUzIyMDUgUEMtQ2FyZCBQb3dlci1JbnRlcmZhY2UgU3dpdGNoICovCiAJY2ZnX3BvcnRfQiAoKTsKQEAgLTE2NSw5ICsxNjUsOSBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9kaXNhYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCiAJLyogU2h1dCBkb3duICovCiAJY3AtPmNwX3BiZGF0ICY9IH4oVFBTMjIwNV9TSEROKTsKQEAgLTE5OCw5ICsxOTgsOSBAQAogCQkJIiBTbG90ICVjLCBWY2M9JWQuJWQsIFZwcD0lZC4lZFxuIiwKIAknQScrc2xvdCwgdmNjLzEwLCB2Y2MlMTAsIHZwcC8xMCwgdmNjJTEwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAJLyoKIAkqIERpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgKGlzb2xhdGUgdGhlIGludGVyZmFjZSkKIAkqIGFuZCBhc3NlcnQgUkVTRVQgc2lnbmFsCmRpZmYgLS1naXQgYS9ib2FyZC9pZG1yL2ZsYXNoLmMgYi9ib2FyZC9pZG1yL2ZsYXNoLmMKaW5kZXggMzM1MTJiOC4uNTdjOTk0OCAxMDA2NDQKLS0tIGEvYm9hcmQvaWRtci9mbGFzaC5jCisrKyBiL2JvYXJkL2lkbXIvZmxhc2guYwpAQCAtMjMsMTEgKzIzLDExIEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2RlZmluZSBQSFlTX0ZMQVNIXzEgQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgUEhZU19GTEFTSF8xIENPTkZJR19TWVNfRkxBU0hfQkFTRQogI2RlZmluZSBGTEFTSF9CQU5LX1NJWkUgMHg4MDAwMDAKICNkZWZpbmUgRU4yOUxWNjQwIDB4MjI3ZTIyN2UKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyAoZmxhc2hfaW5mb190ICogaW5mbykKIHsKQEAgLTc1LDE1ICs3NSwxNSBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoQU1EX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShFTjI5TFY2NDAgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKIAkJCWZsYXNoYmFzZSA9IFBIWVNfRkxBU0hfMTsKIAkJZWxzZQpAQCAtOTYsOCArOTYsOCBAQAogCX0KIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgMHgyZmZmZiwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgyZmZmZiwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0xMTEsOCArMTExLDggQEAKICNkZWZpbmUgQ01EX1BST0dSQU0JCTB4MDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMjAKIAotI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwNTU1PDwxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUE8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTU8PDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIyCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUE8PDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDgwCiAjZGVmaW5lIEJJVF9SRFlfTUFTSwkJMHgwMDgwCkBAIC0xOTEsNyArMTkxLDcgQEAKIAkJCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyICgwKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUICogQ0ZHX0haIC8gMTAwMCkgeworCQkJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICogQ09ORklHX1NZU19IWiAvIDEwMDApIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAxID0gVE1POwogCQkJCQlicmVhazsKQEAgLTI4MCw3ICsyODAsNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXIgKDApID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgKiBDRkdfSFogLyAxMDAwKSB7CisJCWlmIChnZXRfdGltZXIgKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICogQ09ORklHX1NZU19IWiAvIDEwMDApIHsKIAkJCWNoaXAxID0gRVJSIHwgVE1POwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2lkbXIvaWRtci5jIGIvYm9hcmQvaWRtci9pZG1yLmMKaW5kZXggNGYwNzNmYy4uMzc3MWMxOSAxMDA2NDQKLS0tIGEvYm9hcmQvaWRtci9pZG1yLmMKKysrIGIvYm9hcmQvaWRtci9pZG1yLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAkvKgogCSAqIEFmdGVyIHJlc2V0LCBDUzAgaXMgY29uZmlndXJlZCB0byBjb3ZlciBlbnRpcmUgYWRkcmVzcyBzcGFjZS4gV2UKIAkgKiBuZWVkIHRvIGNvbmZpZ3VyZSBpdCB0byBpdHMgcHJvcGVyIHZhbHVlcywgc28gdGhhdCB3cml0ZXMgdG8KLQkgKiBDRkdfU0RSQU1fQkFTRSBhbmQgdmljaW5pdHkgZHVyaW5nIFNEUkFNIGNvbnRyb2xsZXIgc2V0dXAgYmVsb3cgZG8KKwkgKiBDT05GSUdfU1lTX1NEUkFNX0JBU0UgYW5kIHZpY2luaXR5IGR1cmluZyBTRFJBTSBjb250cm9sbGVyIHNldHVwIGJlbG93IGRvCiAJICogbm93IGZhbGwgdW5kZXIgQ1MwIChzZWUgMTYuMy4xIG9mIHRoZSBNQ0Y1MjcxIFJlZmVyZW5jZSBNYW51YWwpLgogCSAqLwogCkBAIC05OSw3ICs5OSw3IEBACiAJICogUFM6IDE2IGJpdAogCSAqLwogCW1iYXJfd3JpdGVMb25nKE1DRl9TRFJBTUNfREFDUjAsCi0JCQlNQ0ZfU0RSQU1DX0RBQ1JuX0JBKENGR19TRFJBTV9CQVNFPj4xOCkgfAorCQkJTUNGX1NEUkFNQ19EQUNSbl9CQShDT05GSUdfU1lTX1NEUkFNX0JBU0U+PjE4KSB8CiAJCQlNQ0ZfU0RSQU1DX0RBQ1JuX0JBKDB4MDApIHwKIAkJCU1DRl9TRFJBTUNfREFDUm5fQ0FTTCgweDAzKSB8CiAJCQlNQ0ZfU0RSQU1DX0RBQ1JuX0NCTSgweDAzKSB8CkBAIC0xMTcsNyArMTE3LDcgQEAKIAkJCU1DRl9TRFJBTUNfREFDUm5fSVApOwogCiAJLyogV3JpdGUgdG8gdGhpcyBibG9jayB0byBpbml0aWF0ZSBwcmVjaGFyZ2UgKi8KLQkqKHZvbGF0aWxlIHUxNiAqKShDRkdfU0RSQU1fQkFTRSkgPSAweGE1YTU7CisJKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFKSA9IDB4YTVhNTsKIAogCS8qCiAJICogV2FpdCBhdCBsZWFzdCAyMG5zIHRvIGFsbG93IGJhbmtzIHRvIHByZWNoYXJnZSAodF9SUCA9IDIwbnMpLiBXZQpAQCAtMTUzLDkgKzE1Myw5IEBACiAJICogQnVyc3QgVHlwZSA9IFNlcXVlbnRpYWwKIAkgKiBCdXJzdCBMZW5ndGggPSAxCiAJICovCi0JKih2b2xhdGlsZSB1MzIgKikoQ0ZHX1NEUkFNX0JBU0UgKyAweDE4MDApID0gMHhhNWE1YTVhNTsKKwkqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDE4MDApID0gMHhhNWE1YTVhNTsKIAotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvaWRtci9taWkuYyBiL2JvYXJkL2lkbXIvbWlpLmMKaW5kZXggNzhhNzAyOC4uZTc5ZmExOSAxMDA2NDQKLS0tIGEvYm9hcmQvaWRtci9taWkuYworKysgYi9ib2FyZC9pZG1yL21paS5jCkBAIC0zOCwxNCArMzgsMTQgQEAKIHsKIAlpZiAoc2V0Y2xlYXIpIHsKIAkJLyogRW5hYmxlIEV0aGVybmV0IHBpbnMgKi8KLQkJbWJhcl93cml0ZUJ5dGUoTUNGX0dQSU9fUEFSX0ZFQ0kyQywgQ0ZHX0ZFQ0kyQyk7CisJCW1iYXJfd3JpdGVCeXRlKE1DRl9HUElPX1BBUl9GRUNJMkMsIENPTkZJR19TWVNfRkVDSTJDKTsKIAl9IGVsc2UgewogCX0KIAogCXJldHVybiAwOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCiAjaW5jbHVkZSA8bWlpcGh5Lmg+CiAKIC8qIE1ha2UgTUlJIHJlYWQvd3JpdGUgY29tbWFuZHMgZm9yIHRoZSBGRUMuICovCkBAIC0xMzEsOSArMTMxLDkgQEAKIAogCXJldHVybiAobWlpX3JlcGx5ICYgMHhmZmZmKTsJLyogZGF0YSByZWFkIGZyb20gcGh5ICovCiB9Ci0jZW5kaWYJCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSB8fCBDT05GSUdfQ01EX01JSSAqLworI2VuZGlmCQkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIHx8IENPTkZJR19DTURfTUlJICovCiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIGludCBtaWlfZGlzY292ZXJfcGh5KHN0cnVjdCBldGhfZGV2aWNlICpkZXYpCiB7CiAjZGVmaW5lIE1BWF9QSFlfUEFTU0VTIDExCkBAIC0xOTgsNyArMTk4LDcgQEAKIAogCXJldHVybiBwaHlhZGRyOwogfQotI2VuZGlmCQkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiB2b2lkIG1paV9pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssYWxpYXMoIl9fbWlpX2luaXQiKSkpOwogCmRpZmYgLS1naXQgYS9ib2FyZC9pZHM4MjQ3L2NvbmZpZy5tayBiL2JvYXJkL2lkczgyNDcvY29uZmlnLm1rCmluZGV4IDEzNmNkYjguLjJhN2YzZGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2lkczgyNDcvY29uZmlnLm1rCisrKyBiL2JvYXJkL2lkczgyNDcvY29uZmlnLm1rCkBAIC0yNSw3ICsyNSw3IEBACiAjIElEUyA4MjQ3IEJvYXJkCiAjCiAKLSMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENGR19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdfSURTODI0Ny5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19JRFM4MjQ3LmgKICMgZm9yIHRoZSAiZmluYWwiIGNvbmZpZ3VyYXRpb24sIHdpdGggVS1Cb290IGluIGZsYXNoLCBvciB0aGUgYWRkcmVzcwogIyBpbiBSQU0gd2hlcmUgVS1Cb290IGlzIGxvYWRlZCBhdCBmb3IgZGVidWdnaW5nLgogIwpkaWZmIC0tZ2l0IGEvYm9hcmQvaWRzODI0Ny9mbGFzaC5jIGIvYm9hcmQvaWRzODI0Ny9mbGFzaC5jCmluZGV4IDU4MDBjZTIuLjUxMDc1NTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2lkczgyNDcvZmxhc2guYworKysgYi9ib2FyZC9pZHM4MjQ3L2ZsYXNoLmMKQEAgLTMxLDExICszMSwxMSBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtODQsMTYgKzg0LDE2IEBACiB7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwOwogCWludCBpOwotCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIC0gRklYTUUgWFhYICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgoRlBXICopIENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCkBAIC0xMDUsMTEgKzEwNSwxMSBAQAogCiAJZmxhc2hfZ2V0X29mZnNldHMgKDB4ZmY4MDAwMDAsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKSBmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCQkmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjU4LDEwICsyNTgsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzMyLDcgKzMzMiw3IEBACiAJCQl1ZGVsYXkgKDEwMDApOwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkgICAgaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJICAgIGlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00NzIsNyArNDcyLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvaWRzODI0Ny9pZHM4MjQ3LmMgYi9ib2FyZC9pZHM4MjQ3L2lkczgyNDcuYwppbmRleCAwNjUwMTRhLi42OGI3MDcwIDEwMDY0NAotLS0gYS9ib2FyZC9pZHM4MjQ3L2lkczgyNDcuYworKysgYi9ib2FyZC9pZHM4MjQ3L2lkczgyNDcuYwpAQCAtMjU0LDcgKzI1NCw3IEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtMjY1LDcgKzI2NSw3IEBACiAJCSpiYXNlID0gYzsKIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9NUlc7Ci0JKihiYXNlICsgQ0ZHX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLworCSooYmFzZSArIENPTkZJR19TWVNfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CiAJKmJhc2UgPSBjOwpAQCAtMjc4LDcgKzI3OCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAlsb25nIHBzaXplLCBsc2l6ZTsKQEAgLTI4NiwxNSArMjg2LDE1IEBACiAJcHNpemUgPSAxNiAqIDEwMjQgKiAxMDI0OwogCWxzaXplID0gMDsKIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogNjB4IFNEUkFNIHNldHVwOgogCSAqLwotCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SLCBDRkdfT1IyLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SLCBDT05GSUdfU1lTX09SMiwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlpY2FjaGVfZW5hYmxlICgpOwogCkBAIC0zMTUsOCArMzE1LDggQEAKIHsKIAl1bG9uZyB0b3RsZW4gPSAwOwogCi0JZGVidWcgKCJQcm9iaW5nIGF0IDB4JS44eFxuIiwgQ0ZHX05BTkQwX0JBU0UpOwotCXRvdGxlbiArPSBuYW5kX3Byb2JlIChDRkdfTkFORDBfQkFTRSk7CisJZGVidWcgKCJQcm9iaW5nIGF0IDB4JS44eFxuIiwgQ09ORklHX1NZU19OQU5EMF9CQVNFKTsKKwl0b3RsZW4gKz0gbmFuZF9wcm9iZSAoQ09ORklHX1NZU19OQU5EMF9CQVNFKTsKIAogCXByaW50ZiAoIiU0bHUgTUJcbiIsIHRvdGxlbiA+PjIwKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2ltcGE3L2ZsYXNoLmMgYi9ib2FyZC9pbXBhNy9mbGFzaC5jCmluZGV4IDFkZWEyMmIuLmQwYzU4ODAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2ltcGE3L2ZsYXNoLmMKKysrIGIvYm9hcmQvaW1wYTcvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogI2RlZmluZSBNQUlOX1NFQ1RfU0laRSAgMHgyMDAwMAogI2RlZmluZSBQQVJBTV9TRUNUX1NJWkUgMHg0MDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM5LDE1ICszOSwxNSBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoSU5URUxfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCQkJKElOVEVMX0lEXzI4RjMyMEIzVCAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlpZiAoaSA9PSAwKQogCQkJZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQllbHNlIGlmIChpID09IDEpCkBAIC02OSw4ICs2OSw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMTc1LDcgKzE3NSw3IEBACiAKIAkJCXdoaWxlICgoKmFkZHIgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7CiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICovCiAJCQkJCSphZGRyID0gMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCiAJCQkJCXJjID0gRVJSX1RJTU9VVDsKQEAgLTI0Myw3ICsyNDMsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKCphZGRyICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyYyA9IEVSUl9USU1PVVQ7CiAJCQkvKiBzdXNwZW5kIHByb2dyYW0gY29tbWFuZCAqLwogCQkJKmFkZHIgPSAweDAwQjAwMEIwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaW5jYWlwL2ZsYXNoLmMgYi9ib2FyZC9pbmNhaXAvZmxhc2guYwppbmRleCA3NGRkNmZlLi5jYzExZTI0IDEwMDY0NAotLS0gYS9ib2FyZC9pbmNhaXAvZmxhc2guYworKysgYi9ib2FyZC9pbmNhaXAvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9pbmNhLWlwLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKiBOT1RFIC0gQ09ORklHX0ZMQVNIXzE2QklUIG1lYW5zIHRoZSBDUFUgaW50ZXJmYWNlIGlzIDE2LWJpdCwgaXQKICAqICAgICAgICBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBmbGFzaCBjaGlwIGJlaW5nIDgtYml0IG9yIDE2LWJpdC4KQEAgLTczLDcgKzczLDcgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAoaSA9PSAwKSA/IFBIWVNfRkxBU0hfMSA6IFBIWVNfRkxBU0hfMjsKIAkJdWxvbmcgKiBidXNjb24gPSAodWxvbmcgKikKIAkJCSgoaSA9PSAwKSA/IElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wIDogSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjIpOwpAQCAtOTYsMTIgKzk2LDEyIEBACiAJCXNpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplOwogCX0KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAotCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDRkdfTU9OSVRPUl9CQVNFKSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBmbGFzaF9nZXRfaW5mbyhDT05GSUdfU1lTX01PTklUT1JfQkFTRSkpOwogI2VuZGlmCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xNzMsMTMgKzE3MywxMyBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJiBiYXNlIDwgaW5mby0+c3RhcnRbMF0gKyBpbmZvLT5zaXplKQogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIGkgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvOworCXJldHVybiBpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ4NCw3ICs0ODQsNyBAQAogCQl1ZGVsYXkgKDEwMDApOwogCiAJCXdoaWxlICgoKmFkZHIgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAKIAkJCQlpZiAoaW50ZWwpIHsKQEAgLTQ5OCwxNCArNDk4LDE0IEBACiAJCQl9CiAKIAkJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KKwkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CiAJCQl9CiAJCX0KIAogCQkvKiBzaG93IHRoYXQgd2UncmUgd2FpdGluZyAqLwotCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsJLyogZXZlcnkgc2Vjb25kICovCisJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsJLyogZXZlcnkgc2Vjb25kICovCiAJCQlwdXRjICgnLicpOwogCQkJbGFzdCA9IGdldF90aW1lcigwKTsKIAkJfQpAQCAtNjA5LDcgKzYwOSw3IEBACiAKICAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKTB4MDA4MDAwODApKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJICAgIHJlcyA9IDE7CiAJfQpAQCAtNjU1LDcgKzY1NSw3IEBACiAgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwQjAwMEIwOwkvKiBTdXNwZW5kIHByb2dyYW0JKi8KIAkgICAgcmVzID0gMTsKIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9pbmNhaXAvaW5jYWlwLmMgYi9ib2FyZC9pbmNhaXAvaW5jYWlwLmMKaW5kZXggNmZlODUyYy4uM2IzMDk3MCAxMDA2NDQKLS0tIGEvYm9hcmQvaW5jYWlwL2luY2FpcC5jCisrKyBiL2JvYXJkL2luY2FpcC9pbmNhaXAuYwpAQCAtNDAsMTYgKzQwLDE2IEBACiB7CiAJLyogVGhlIG9ubHkgc3VwcG9ydGVkIFNEUkFNIGRhdGEgd2lkdGggaXMgMTZiaXQuCiAJICovCi0jZGVmaW5lIENGR19EVwkyCisjZGVmaW5lIENPTkZJR19TWVNfRFcJMgogCiAJLyogVGhlIG9ubHkgc3VwcG9ydGVkIG51bWJlciBvZiBTRFJBTSBiYW5rcyBpcyA0LgogCSAqLwotI2RlZmluZSBDRkdfTkIJNAorI2RlZmluZSBDT05GSUdfU1lTX05CCTQKIAogCXVsb25nIGNmZ3BiMCA9ICpJTkNBX0lQX1NEUkFNX01DX0NGR1BCMDsKIAlpbnQgICBjb2xzICAgPSBjZmdwYjAgJiAweEY7CiAJaW50ICAgcm93cyAgID0gKGNmZ3BiMCAmIDB4RjApID4+IDQ7Ci0JdWxvbmcgc2l6ZSAgID0gKDEgPDwgKHJvd3MgKyBjb2xzKSkgKiBDRkdfRFcgKiBDRkdfTkI7CisJdWxvbmcgc2l6ZSAgID0gKDEgPDwgKHJvd3MgKyBjb2xzKSkgKiBDT05GSUdfU1lTX0RXICogQ09ORklHX1NZU19OQjsKIAogCXJldHVybiBzaXplOwogfQpAQCAtNzUsNyArNzUsNyBAQAogCQl7CiAJCQkqSU5DQV9JUF9TRFJBTV9NQ19DRkdQQjAgPSAoMHgxNCA8PCA4KSB8CiAJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAocm93cyA8PCA0KSB8IGNvbHM7Ci0JCQlzaXplID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsCisJCQlzaXplID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLAogCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heF9zZHJhbV9zaXplKCkpOwogCiAJCQlpZiAoc2l6ZSA+IG1heF9zaXplKQpkaWZmIC0tZ2l0IGEvYm9hcmQvaW5rYTR4MC9pbmthNHgwLmMgYi9ib2FyZC9pbmthNHgwL2lua2E0eDAuYwppbmRleCBhMmUzNWZmLi41MDcxOTZiIDEwMDY0NAotLS0gYS9ib2FyZC9pbmthNHgwL2lua2E0eDAuYworKysgYi9ib2FyZC9pbmthNHgwL2lua2E0eDAuYwpAQCAtNDUsNyArNDUsNyBAQAogI2Vycm9yICJJTktBNHgwIFNEUkFNOiBpbnZhbGlkIGNoaXAgdHlwZSBzcGVjaWZpZWQhIgogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiBzdGF0aWMgdm9pZCBzZHJhbV9zdGFydCAoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTg4LDE0ICs4OCwxNCBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKgkgICAgICB1c2Ugb2YgQ0ZHX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ0ZHX1NEUkFNX0JBU0UKKyAqCSAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKgkgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewogCXVsb25nIGRyYW1zaXplID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJbG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTExNiw5ICsxMTYsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xNDAsNyArMTQwLDcgQEAKIAl9CiAKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMUNGRyA9IGRyYW1zaXplOyAvKiBkaXNhYmxlZCAqLwotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogcmV0cmlldmUgc2l6ZSBvZiBtZW1vcnkgY29ubmVjdGVkIHRvIFNEUkFNIENTMCAqLwogCWRyYW1zaXplID0gKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgJiAweEZGOwpAQCAtMTQ5LDcgKzE0OSw3IEBACiAJfSBlbHNlIHsKIAkJZHJhbXNpemUgPSAwOwogCX0KLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplOwogfQpAQCAtMTc5LDcgKzE3OSw3IEBACiAJaSA9IGdldGVudl9yKCJicmlnaHRuZXNzIiwgdG1wLCBzaXplb2YodG1wKSk7CiAJYnIgPSAoaSA+IDApCiAJCT8gKGludCkgc2ltcGxlX3N0cnRvdWwgKHRtcCwgTlVMTCwgMTApCi0JCTogQ0ZHX0JSSUdIVE5FU1M7CisJCTogQ09ORklHX1NZU19CUklHSFRORVNTOwogCWlmIChiciA+IDI1NSkKIAkJYnIgPSAyNTU7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL2lubm9rb20vZmxhc2guYyBiL2JvYXJkL2lubm9rb20vZmxhc2guYwppbmRleCA3ZjE3YmE2Li44Yzk1MzQxIDEwMDY0NAotLS0gYS9ib2FyZC9pbm5va29tL2ZsYXNoLmMKKysrIGIvYm9hcmQvaW5ub2tvbS9mbGFzaC5jCkBAIC03Miw3ICs3Miw3IEBACiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDAwMDIwMDAwCS8qIDEyOGsgcGVyIHNlY3RvciAgICAgICAgICAgICAgICAgICovCiAjZW5kaWYKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIC8qKgogICogZmxhc2hfaW5pdDogLSBpbml0aWFsaXplIGRhdGEgc3RydWN0dXJlcyBmb3IgZmxhc2ggY2hpcHMKQEAgLTg1LDE0ICs4NSwxNCBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQogCQkJKElOVEVMX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShJTlRFTF9JRF8yOEYxMjhKMyAmIEZMQVNIX1RZUEVNQVNLKTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAogCQlzd2l0Y2ggKGkpIHsKIAkJCWNhc2UgMDoKQEAgLTExMCw4ICsxMTAsOCBAQAogCiAJLyogUHJvdGVjdCB1LWJvb3Qgc2VjdG9ycyAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyAoMjU2KjEwMjQpIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArICgyNTYqMTAyNCkgLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTM1LDcgKzEzNSw3IEBACiB7CiAJaW50IGksIGo7CiAKLQlmb3IgKGo9MDsgajxDRkdfTUFYX0ZMQVNIX0JBTktTOyBqKyspIHsKKwlmb3IgKGo9MDsgajxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaisrKSB7CiAKIAkJc3dpdGNoIChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSB7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQAogCiAJCQl3aGlsZSAoKCphZGRyICYgMHgwMDgwKSAhPSAweDAwODApIHsKIAkJCQlQUklOVEsoIi4iKTsKLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCSphZGRyID0gMHgwMEIwOyAvKiBzdXNwZW5kIGVyYXNlKi8KIAkJCQkJKmFkZHIgPSAweDAwRkY7IC8qIHJlYWQgbW9kZSAgICAqLwogCQkJCQlyYyA9IEVSUl9USU1PVVQ7CkBAIC0zMDYsNyArMzA2LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUoKCh2YWwgPSAqYWRkcikgJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyYyA9IEVSUl9USU1PVVQ7CiAJCQkqYWRkciA9IDB4QjA7IC8qIHN1c3BlbmQgcHJvZ3JhbSBjb21tYW5kICovCiAJCQlnb3RvIG91dGFoZXJlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaW5ub2tvbS9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9pbm5va29tL2xvd2xldmVsX2luaXQuUwppbmRleCA0YzlmMTBmLi45ODkyNDMwIDEwMDY0NAotLS0gYS9ib2FyZC9pbm5va29tL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9pbm5va29tL2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KICAgIC5tYWNybyBDUFdBSVQgcmVnCkBAIC01NCw3MSArNTQsNzEgQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAlsZHIJCXIwLAk9R1BTUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IxCi0JbGRyCQlyMSwJPUNGR19HUFNSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMgotCWxkcgkJcjEsCT1DRkdfR1BTUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IxCi0JbGRyCQlyMSwJPUNGR19HUENSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMgotCWxkcgkJcjEsCT1DRkdfR1BDUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIxCi0JbGRyCQlyMSwJPUNGR19HUERSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMgotCWxkcgkJcjEsCT1DRkdfR1BEUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjBfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMV9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMV9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIyX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJcjAsCT1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCQlyMSwJPUNGR19QU1NSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BTU1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qCWxkcglyMywJPU1TQzEJCS8gIGxvdyAtIGJhbmsgMiBMdWJib2NrIFJlZ2lzdGVycyAvIFNSQU0gKi8KLS8qCWxkcglyMiwJPUNGR19NU0MxX1ZBTAkvICBoaWdoIC0gYmFuayAzIEV0aGVybmV0IENvbnRyb2xsZXIgKi8KKy8qCWxkcglyMiwJPUNPTkZJR19TWVNfTVNDMV9WQUwJLyAgaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCiAvKglzdHIJcjIsCVtyM10JCS8gIG5lZWQgdG8gc2V0IE1TQzEgYmVmb3JlIHRyeWluZyB0byB3cml0ZSB0byB0aGUgSEVYIExFRHMgKi8KIC8qCWxkcglyMiwJW3IzXQkJLyAgbmVlZCB0byByZWFkIGl0IGJhY2sgdG8gbWFrZSBzdXJlIHRoZSB2YWx1ZSBsYXRjaGVzIChzZWUgTVNDIHNlY3Rpb24gb2YgbWFudWFsKSAqLwogLyogKi8KQEAgLTE2OCwxNyArMTY4LDE3IEBACiAJLyogTVNDIHJlZ2lzdGVyczogdGltaW5nLCBidXMgd2lkdGgsIG1lbSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkciAgICAgcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCS8qIHJlYWQgYmFjayB0byBlbnN1cmUgICAgICAqLwogCQkJCQkJLyogdGhhdCBkYXRhIGxhdGNoZXMgICAgICAgICovCiAJLyogTVNDMTogbkNTKDIsMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01TQzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCS8qIE1TQzI6IG5DUyg0LDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MyX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTE4NywzNyArMTg3LDM3IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01FQ1JfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNNRU0wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJLyogTUNNRU0xOiBDYXJkIEludGVyZmFjZSBzbG90IDEgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0FUVDBfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAkvKiBNQ0FUVDE6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJLyogTUNJTzA6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzFfT0ZGU0VUXQogCkBAIC0yMzksNyArMjM5LDcgQEAKIAkvKiBCZWZvcmUgYWNjZXNzaW5nIE1EUkVGUiB3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkLCBzbyB3ZSBzZXQgICAgICovCiAJLyogdGhpcyB0byBwb3dlciBvbiBkZWZhdWx0cyArIERSSSBmaWVsZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyCXIzLAk9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjMsCT1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlsZHIJcjIsCT0weEZGRgogCWFuZAlyMywJcjMsIHIyCiAJbGRyCXI0LAk9MHgwM2NhNDAwMApAQCAtMjY5LDcgKzI2OSw3IEBACiAJLyogU3RlcCA0YTogYXNzZXJ0IE1EUkVGUjpLP1JVTiBhbmQgY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAqLwogCS8qICAgICAgICAgIE1EUkVGUjpLMURCMiBhbmQgTURSRUZSOksyREIyIGFzIGRlc2lyZWQuICAgICAgICAgICAgICAgKi8KIAotCWxkcglyNCwJPUNGR19NRFJFRlJfVkFMCisJbGRyCXI0LAk9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJc3RyCXI0LAlbcjEsICNNRFJFRlJfT0ZGU0VUXQkvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KIAlsZHIJcjQsCVtyMSwgI01EUkVGUl9PRkZTRVRdCiAKQEAgLTI5Miw3ICsyOTIsNyBAQAogCS8qIFN0ZXAgNGQ6IHdyaXRlIE1EQ05GRyB3aXRoIE1EQ05GRzpERXggZGVhc3NlcnRlZCAoc2V0IHRvIDApLCB0byAgKi8KIAkvKiAgICAgICAgICBjb25maWd1cmUgYnV0IG5vdCBlbmFibGUgZWFjaCBTRFJBTSBwYXJ0aXRpb24gcGFpci4gICAgICovCiAKLQlsZHIJcjQsCT1DRkdfTURDTkZHX1ZBTAorCWxkcglyNCwJPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCWJpYwlyNCwJcjQsCSMoTURDTkZHX0RFMHxNRENORkdfREUxKQogCiAJc3RyICAgICByNCwgICAgIFtyMSwgI01EQ05GR19PRkZTRVRdCS8qIHdyaXRlIGJhY2sgTURDTkZHICAgICAgICAqLwpAQCAtMzI1LDcgKzMyNSw3IEBACiAJLyogICAgICAgICAgSmFuIDIwMDMsIEVycmF0YSAjMTE2LCBwYWdlIDMwLiAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAKLQlsZHIJcjMsCT1DRkdfRFJBTV9CQVNFCisJbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKIAlzdHIJcjIsIFtyM10KIAlzdHIJcjIsIFtyM10KIAlzdHIJcjIsIFtyM10KQEAgLTM0NSw3ICszNDUsNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMiwgID1DRkdfTURNUlNfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvaW50ZWdyYXRvcmFwL2ZsYXNoLmMgYi9ib2FyZC9pbnRlZ3JhdG9yYXAvZmxhc2guYwppbmRleCBiMTIwZDYzLi4wNDkyYmU3IDEwMDY0NAotLS0gYS9ib2FyZC9pbnRlZ3JhdG9yYXAvZmxhc2guYworKysgYi9ib2FyZC9pbnRlZ3JhdG9yYXAvZmxhc2guYwpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9zd2FiLmg+CiAKICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDAyMDAwMAkvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICN1bmRlZiBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTg4LDcgKzg4LDcgQEAKIHsKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtMTA0LDggKzEwNCw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0yMjMsMTAgKzIyMywxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zMTgsNyArMzE4LDcgQEAKIAkJCQkqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPQogCQkJCShGUFcpIDB4MDA4MDAwODApIHsKIAkJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCQlDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQlDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEIwMDBCMDsKQEAgLTQ1NCw3ICs0NTQsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2ludGVncmF0b3JhcC9pbnRlZ3JhdG9yYXAuYyBiL2JvYXJkL2ludGVncmF0b3JhcC9pbnRlZ3JhdG9yYXAuYwppbmRleCA2ODdjNDg2Li5kZGFjYWJiIDEwMDY0NAotLS0gYS9ib2FyZC9pbnRlZ3JhdG9yYXAvaW50ZWdyYXRvcmFwLmMKKysrIGIvYm9hcmQvaW50ZWdyYXRvcmFwL2ludGVncmF0b3JhcC5jCkBAIC01MTksNyArNTE5LDcgQEAKICAqIGNhbiBiZSBkaXZpZGVkIGJ5IDE2IG9yIDI1NgogICogYW5kIGlzIGEgMTYtYml0IGNvdW50ZXIKICAqLwotLyogVS1Cb290IGV4cGVjdHMgYSAzMiBiaXQgdGltZXIgcnVubmluZyBhdCBDRkdfSFoqLworLyogVS1Cb290IGV4cGVjdHMgYSAzMiBiaXQgdGltZXIgcnVubmluZyBhdCBDT05GSUdfU1lTX0haKi8KIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CQkvKiBVLUJvb3QgdGlja3Mgc2luY2Ugc3RhcnR1cAkgICAgICAqLwogc3RhdGljIHVsb25nIHRvdGFsX2NvdW50ID0gMDsJLyogVG90YWwgdGltZXIgY291bnQJCSAgICAgICovCiBzdGF0aWMgdWxvbmcgbGFzdGRlYzsJCS8qIFRpbWVyIHJlYWRpbmcgYXQgbGFzdCBjYWxsCSAgICAgICovCkBAIC01MjcsMTIgKzUyNywxMiBAQAogc3RhdGljIHVsb25nIGRpdl90aW1lcgkgPSAxOwkvKiBEaXZpc29yIHRvIGNvbnZlcnQgdGltZXIgcmVhZGluZwogCQkJCSAqIGNoYW5nZSB0byBVLUJvb3QgdGlja3MKIAkJCQkgKi8KLS8qIENGR19IWiA9IENGR19IWl9DTE9DSy8oZGl2X2Nsb2NrICogZGl2X3RpbWVyKSAqLworLyogQ09ORklHX1NZU19IWiA9IENPTkZJR19TWVNfSFpfQ0xPQ0svKGRpdl9jbG9jayAqIGRpdl90aW1lcikgKi8KIAogI2RlZmluZSBUSU1FUl9MT0FEX1ZBTCAweDAwMDBGRkZGTAotI2RlZmluZSBSRUFEX1RJTUVSICgoKih2b2xhdGlsZSB1bG9uZyAqKShDRkdfVElNRVJCQVNFKzQpKSAmIDB4MDAwMEZGRkZMKQorI2RlZmluZSBSRUFEX1RJTUVSICgoKih2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1RJTUVSQkFTRSs0KSkgJiAweDAwMDBGRkZGTCkKIAotLyogYWxsIGZ1bmN0aW9uIHJldHVybiB2YWx1ZXMgaW4gVS1Cb290IHRpY2tzIGkuZS4gKDEvQ0ZHX0haKSBzZWMKKy8qIGFsbCBmdW5jdGlvbiByZXR1cm4gdmFsdWVzIGluIFUtQm9vdCB0aWNrcyBpLmUuICgxL0NPTkZJR19TWVNfSFopIHNlYwogICogIC0gdW5sZXNzIG90aGVyd2lzZSBzdGF0ZWQKICAqLwogCkBAIC01NDMsNyArNTQzLDcgQEAKIGludCBpbnRlcnJ1cHRfaW5pdCAodm9pZCkKIHsKIAkvKiBMb2FkIHRpbWVyIHdpdGggaW5pdGlhbCB2YWx1ZSAqLwotCSoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSArIDApID0gVElNRVJfTE9BRF9WQUw7CisJKih2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1RJTUVSQkFTRSArIDApID0gVElNRVJfTE9BRF9WQUw7CiAJLyogU2V0IHRpbWVyIHRvIGJlCiAJICoJZW5hYmxlZAkJICAxCiAJICoJZnJlZS1ydW5uaW5nCSAgMApAQCAtNTUxLDEyICs1NTEsMTIgQEAKIAkgKglkaXZpZGVyIDI1NgkgMTAKIAkgKglYWAkJIDAwCiAJICovCi0JKih2b2xhdGlsZSB1bG9uZyAqKShDRkdfVElNRVJCQVNFICsgOCkgPSAweDAwMDAwMDg4OworCSoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyA4KSA9IDB4MDAwMDAwODg7CiAJdG90YWxfY291bnQgPSAwOwogCS8qIGluaXQgdGhlIHRpbWVzdGFtcCBhbmQgbGFzdGRlYyB2YWx1ZSAqLwogCXJlc2V0X3RpbWVyX21hc2tlZCgpOwogCi0JZGl2X3RpbWVyICA9IENGR19IWl9DTE9DSyAvIENGR19IWjsKKwlkaXZfdGltZXIgID0gQ09ORklHX1NZU19IWl9DTE9DSyAvIENPTkZJR19TWVNfSFo7CiAJZGl2X3RpbWVyIC89IGRpdl9jbG9jazsKIAogCXJldHVybiAoMCk7CkBAIC01ODgsNyArNTg4LDcgQEAKIAl1bG9uZyB0bW8sIHRtcDsKIAogCS8qIENvbnZlcnQgdG8gVS1Cb290IHRpY2tzICovCi0JdG1vICA9IHVzZWMgKiBDRkdfSFo7CisJdG1vICA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCXRtbyAvPSAoMTAwMDAwMEwpOwogCiAJdG1wICA9IGdldF90aW1lcl9tYXNrZWQoKTsJLyogZ2V0IGN1cnJlbnQgdGltZXN0YW1wICovCkBAIC02NDcsNyArNjQ3LDcgQEAKICAqLwogdWxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewotCXJldHVybiBDRkdfSFpfQ0xPQ0svZGl2X2Nsb2NrOworCXJldHVybiBDT05GSUdfU1lTX0haX0NMT0NLL2Rpdl9jbG9jazsKIH0KIAogaW50IGJvYXJkX2V0aF9pbml0KGJkX3QgKmJpcykKZGlmZiAtLWdpdCBhL2JvYXJkL2ludGVncmF0b3JjcC9mbGFzaC5jIGIvYm9hcmQvaW50ZWdyYXRvcmNwL2ZsYXNoLmMKaW5kZXggN2VmZmVhNi4uNTA1OWRhZSAxMDA2NDQKLS0tIGEvYm9hcmQvaW50ZWdyYXRvcmNwL2ZsYXNoLmMKKysrIGIvYm9hcmQvaW50ZWdyYXRvcmNwL2ZsYXNoLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNkZWZpbmUgREVCVUcKIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDQwMDAwCS8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI2RlZmluZSBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTEwNiwyMyArMTA2LDIzIEBACiAJZWxzZQogCQluYmFua3MgPSAxOwogCi0JaWYgKG5iYW5rcyA+IENGR19NQVhfRkxBU0hfQkFOS1MpCi0JCW5iYW5rcyA9IENGR19NQVhfRkxBU0hfQkFOS1M7CisJaWYgKG5iYW5rcyA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKQorCQluYmFua3MgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsKIAogCS8qIEVuYWJsZSBmbGFzaCB3cml0ZSAqLwogCWNwY3JbMV0gfD0gMzsKIAogCWZvciAoaSA9IDA7IGkgPCBuYmFua3M7IGkrKykgewotCQlmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemUpLCAmZmxhc2hfaW5mb1tpXSk7Ci0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemUsICZmbGFzaF9pbmZvW2ldKTsKKwkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZSksICZmbGFzaF9pbmZvW2ldKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemUsICZmbGFzaF9pbmZvW2ldKTsKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemU7CiAJfQogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0yMjgsOCArMjI4LDggQEAKIAllbHNlCiAJCW5zZWN0cyA9IDY0OwogCi0JaWYgKG5zZWN0cyA+IENGR19NQVhfRkxBU0hfU0VDVCkKLQkJbnNlY3RzID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWlmIChuc2VjdHMgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKQorCQluc2VjdHMgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KIAlhZGRyWzB4NTU1NV0gPSAoRlBXKSAweDAwQUEwMEFBOwpAQCAtMjgwLDEwICsyODAsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzA4LDcgKzMwOCw3IEBACiAKIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKTB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dCIpOwogCQkJYnJlYWs7CiAJCX0KQEAgLTM4NCw3ICszODQsNyBAQAogCQkJCWVuYWJsZV9pbnRlcnJ1cHRzKCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSAoRlBXKTB4MDA3MDAwNzA7CiAJCQkJCXN0YXR1cyA9ICphZGRyOwogCQkJCQlpZiAoKHN0YXR1cyAmIChGUFcpIDB4MDA0MDAwNDApID09IChGUFcpIDB4MDA0MDAwNDApIHsKQEAgLTUzOCw3ICs1MzgsNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKICNpZmRlZiBERUJVRwogCQkJKmFkZHIgPSAoRlBXKSAweDAwNzAwMDcwOwogCQkJc3RhdHVzID0gKmFkZHI7CmRpZmYgLS1naXQgYS9ib2FyZC9pbnRlZ3JhdG9yY3AvaW50ZWdyYXRvcmNwLmMgYi9ib2FyZC9pbnRlZ3JhdG9yY3AvaW50ZWdyYXRvcmNwLmMKaW5kZXggMjIwNTEzZi4uNzI2MjljZSAxMDA2NDQKLS0tIGEvYm9hcmQvaW50ZWdyYXRvcmNwL2ludGVncmF0b3JjcC5jCisrKyBiL2JvYXJkL2ludGVncmF0b3JjcC9pbnRlZ3JhdG9yY3AuYwpAQCAtMTQzLDcgKzE0Myw3IEBACiAgKiBjYW4gYmUgZGl2aWRlZCBieSAxNiBvciAyNTYKICAqIGFuZCBjYW4gYmUgc2V0IHVwIGFzIGEgMzItYml0IHRpbWVyCiAgKi8KLS8qIFUtQm9vdCBleHBlY3RzIGEgMzIgYml0IHRpbWVyLCBydW5uaW5nIGF0IENGR19IWiAqLworLyogVS1Cb290IGV4cGVjdHMgYSAzMiBiaXQgdGltZXIsIHJ1bm5pbmcgYXQgQ09ORklHX1NZU19IWiAqLwogLyogS2VlcCB0b3RhbCB0aW1lciBjb3VudCB0byBhdm9pZCBsb3NpbmcgZGVjcmVtZW50cyA8IGRpdl90aW1lciAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbF9jb3VudCA9IDA7CiBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGxhc3RkZWM7CSAvKiBUaW1lciByZWFkaW5nIGF0IGxhc3QgY2FsbAkgICAqLwpAQCAtMTUxLDEzICsxNTEsMTMgQEAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgZGl2X3RpbWVyID0gMTsgLyogRGl2aXNvciB0byBjb252ZXJ0IHRpbWVyIHJlYWRpbmcKIAkJCQkJICAqIGNoYW5nZSB0byBVLUJvb3QgdGlja3MKIAkJCQkJICAqLwotLyogQ0ZHX0haID0gQ0ZHX0haX0NMT0NLLyhkaXZfY2xvY2sgKiBkaXZfdGltZXIpICovCisvKiBDT05GSUdfU1lTX0haID0gQ09ORklHX1NZU19IWl9DTE9DSy8oZGl2X2Nsb2NrICogZGl2X3RpbWVyKSAqLwogc3RhdGljIHVsb25nIHRpbWVzdGFtcDsJCS8qIFUtQm9vdCB0aWNrcyBzaW5jZSBzdGFydHVwCSAgICAgICovCiAKICNkZWZpbmUgVElNRVJfTE9BRF9WQUwgKCh1bG9uZykweEZGRkZGRkZGKQotI2RlZmluZSBSRUFEX1RJTUVSICgqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UrNCkpCisjZGVmaW5lIFJFQURfVElNRVIgKCoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UrNCkpCiAKLS8qIGFsbCBmdW5jdGlvbiByZXR1cm4gdmFsdWVzIGluIFUtQm9vdCB0aWNrcyBpLmUuICgxL0NGR19IWikgc2VjCisvKiBhbGwgZnVuY3Rpb24gcmV0dXJuIHZhbHVlcyBpbiBVLUJvb3QgdGlja3MgaS5lLiAoMS9DT05GSUdfU1lTX0haKSBzZWMKICAqICAtIHVubGVzcyBvdGhlcndpc2Ugc3RhdGVkCiAgKi8KIApAQCAtMTY2LDcgKzE2Niw3IEBACiBpbnQgaW50ZXJydXB0X2luaXQgKHZvaWQpCiB7CiAJLyogTG9hZCB0aW1lciB3aXRoIGluaXRpYWwgdmFsdWUgKi8KLQkqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UgKyAwKSA9IFRJTUVSX0xPQURfVkFMOworCSoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyAwKSA9IFRJTUVSX0xPQURfVkFMOwogCS8qIFNldCB0aW1lciB0byBiZQogCSAqCWVuYWJsZWQJCSAgMQogCSAqCXBlcmlvZGljCSAgMQpAQCAtMTc2LDEyICsxNzYsMTIgQEAKIAkgKgkzMiBiaXQJCSAgMQogCSAqCXdyYXBwaW5nCSAgMAogCSAqLwotCSoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSArIDgpID0gMHgwMDAwMDBDMjsKKwkqKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfVElNRVJCQVNFICsgOCkgPSAweDAwMDAwMEMyOwogCS8qIGluaXQgdGhlIHRpbWVzdGFtcCAqLwogCXRvdGFsX2NvdW50ID0gMFVMTDsKIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKIAotCWRpdl90aW1lciAgPSAodW5zaWduZWQgbG9uZyBsb25nKShDRkdfSFpfQ0xPQ0sgLyBDRkdfSFopOworCWRpdl90aW1lciAgPSAodW5zaWduZWQgbG9uZyBsb25nKShDT05GSUdfU1lTX0haX0NMT0NLIC8gQ09ORklHX1NZU19IWik7CiAJZGl2X3RpbWVyIC89IGRpdl9jbG9jazsKIAogCXJldHVybiAoMCk7CkBAIC0yMTIsNyArMjEyLDcgQEAKIAl1bG9uZyB0bW8sIHRtcDsKIAogCS8qIENvbnZlcnQgdG8gVS1Cb290IHRpY2tzICovCi0JdG1vICA9IHVzZWMgKiBDRkdfSFo7CisJdG1vICA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCXRtbyAvPSAoMTAwMDAwMEwpOwogCiAJdG1wICA9IGdldF90aW1lcl9tYXNrZWQoKTsJLyogZ2V0IGN1cnJlbnQgdGltZXN0YW1wICovCkBAIC0yNzUsNSArMjc1LDUgQEAKICAqLwogdWxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewotCXJldHVybiAodWxvbmcpKCgodW5zaWduZWQgbG9uZyBsb25nKUNGR19IWl9DTE9DSykvZGl2X2Nsb2NrKTsKKwlyZXR1cm4gKHVsb25nKSgoKHVuc2lnbmVkIGxvbmcgbG9uZylDT05GSUdfU1lTX0haX0NMT0NLKS9kaXZfY2xvY2spOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvaXA4NjAvZmxhc2guYyBiL2JvYXJkL2lwODYwL2ZsYXNoLmMKaW5kZXggMTBhOTZjNS4uNjQ5MWFmMiAxMDA2NDQKLS0tIGEvYm9hcmQvaXA4NjAvZmxhc2guYworKysgYi9ib2FyZC9pcDg2MC9mbGFzaC5jCkBAIC0yNCwxMSArMjQsMTEgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC01MCw3ICs1MCw3IEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90CSppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90CSptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSBpcDg2MF9iY3NyX3QJKmJjc3IgICA9IChpcDg2MF9iY3NyX3QgKilCQ1NSX0JBU0U7CiAJdW5zaWduZWQgbG9uZyBzaXplOwpAQCAtNjEsNyArNjEsNyBAQAogCSAqLwogCWJjc3ItPmJkX2N0cmwgfD0gQkRfQ1RSTF9GTFdFOwogCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc1LDIyICs3NSwyMiBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjEgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIxID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfAogCQkJCShtZW1jdGwtPm1lbWNfYnIxICYgfihCUl9CQV9NU0spKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTMwOSw3ICszMDksNyBAQAogCQkJdWRlbGF5ICgxMDAwKTsKIAogCQkJd2hpbGUgKCgqYWRkciAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gMHhGRkZGRkZGRjsJLyogcmVzZXQgYmFuayAqLwogCQkJCQlyZXR1cm4gMTsKQEAgLTQzNCw3ICs0MzQsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlmbGFnICA9IDA7CiAJd2hpbGUgKCgoY3NyID0gKmFkZHIpICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlmbGFnID0gMTsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9pcDg2MC9pcDg2MC5jIGIvYm9hcmQvaXA4NjAvaXA4NjAuYwppbmRleCAzNzVjZDRkLi5lMmExODUxIDEwMDY0NAotLS0gYS9ib2FyZC9pcDg2MC9pcDg2MC5jCisrKyBiL2JvYXJkL2lwODYwL2lwODYwLmMKQEAgLTg3LDEyICs4NywxMiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIC8qIGluaXQgQkNTUiBjaGlwc2VsZWN0IGxpbmUgZm9yIGlwODYwX2dldF9jbGtfZnJlcSgpIGFuZCBpcDg2MF9nZXRfZHJhbV9zaXplKCkgKi8KLSAgICBtZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNDsKLSAgICBtZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNDsKKyAgICBtZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjQ7CisgICAgbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0OwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xMzksNyArMTM5LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAJdWxvbmcgcmVmcmVzaF92YWw7CkBAIC0xNjcsOCArMTY3LDggQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmtzIDIgdG8gdGhlIFNEUkFNIGFkZHJlc3MKIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMjsKLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMjsKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjI7CisJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfQlIyOwogCiAJLyogSVA4NjAgYm9hcmRzIGhhdmUgb25seSBvbmUgYmFuayBTRFJBTSAqLwogCkBAIC0xOTcsNyArMTk3LDcgQEAKIAl1ZGVsYXkgKDEwMDApOwogCiAJbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemUpICYgMHhGRkZGMDAwMCkgfCBTRFJBTV9USU1JTkc7Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfYnIyID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCXVkZWxheSAoMTAwMDApOwogCkBAIC0yMDUsMzQgKzIwNSwzNCBAQAogCSAqIEFsc28sIG1hcCBvdGhlciBtZW1vcnkgdG8gY29ycmVjdCBwb3NpdGlvbgogCSAqLwogCi0jaWYgKGRlZmluZWQoQ0ZHX09SMSkgJiYgZGVmaW5lZChDRkdfQlIxX1BSRUxJTSkpCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjE7Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjE7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19PUjEpICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjFfUFJFTElNKSkKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjE7CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjMpICYmIGRlZmluZWQoQ0ZHX0JSMykKLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SMzsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSMzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IzKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIzKQorCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SMzsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjM7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SNCkgJiYgZGVmaW5lZChDRkdfQlI0KQotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0OwotCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQlI0OworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjQpICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjQpCisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0OworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNDsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1I1KSAmJiBkZWZpbmVkKENGR19CUjUpCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjU7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SNSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSNSkKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUjU7CisJbWVtY3RsLT5tZW1jX2JyNSA9IENPTkZJR19TWVNfQlI1OwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjYpICYmIGRlZmluZWQoQ0ZHX0JSNikKLQltZW1jdGwtPm1lbWNfb3I2ID0gQ0ZHX09SNjsKLQltZW1jdGwtPm1lbWNfYnI2ID0gQ0ZHX0JSNjsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I2KSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlI2KQorCW1lbWN0bC0+bWVtY19vcjYgPSBDT05GSUdfU1lTX09SNjsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19CUjY7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SNykgJiYgZGVmaW5lZChDRkdfQlI3KQotCW1lbWN0bC0+bWVtY19vcjcgPSBDRkdfT1I3OwotCW1lbWN0bC0+bWVtY19icjcgPSBDRkdfQlI3OworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjcpICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjcpCisJbWVtY3RsLT5tZW1jX29yNyA9IENPTkZJR19TWVNfT1I3OworCW1lbWN0bC0+bWVtY19icjcgPSBDT05GSUdfU1lTX0JSNzsKICNlbmRpZgogCiAJcmV0dXJuIChzaXplKTsKQEAgLTI1MSw3ICsyNTEsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjYzLDcgKzI2Myw3IEBACiAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIG1hc2sgPSBQQl9FTkVUX1JFU0VUIHwgUEJfRU5FVF9KQUJEOwogCXVsb25nIHJlZzsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvaXBoYXNlNDUzOS9mbGFzaC5jIGIvYm9hcmQvaXBoYXNlNDUzOS9mbGFzaC5jCmluZGV4IDA5OGRjYzIuLjNkZmVlMWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2lwaGFzZTQ1MzkvZmxhc2guYworKysgYi9ib2FyZC9pcGhhc2U0NTM5L2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxmbGFzaC5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogZXh0ZXJuIGludCBod2NfZmxhc2hfc2l6ZSh2b2lkKTsKIHN0YXRpYyB1bG9uZyBmbGFzaF9nZXRfc2l6ZSAodTMyIGFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CkBAIC01MiwyNiArNTIsMjYgQEAKIAl1bnNpZ25lZCBpbnQgYmFuayA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gMDsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKIAl9CiAKIAkvKiBJbml0aWFsaXNlIHRoZSBCT09UIEZsYXNoICovCi0JaWYgKGJhbmsgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUykgeworCWlmIChiYW5rID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSB7CiAJCXB1dHMgKCJXYXJuaW5nOiBub3QgYWxsIEZsYXNoZXMgYXJlIGluaXRpYWxpc2VkICEiKTsKIAkJcmV0dXJuIGZsYXNoX3NpemU7CiAJfQogCi0JYmFua19zaXplID0gZmxhc2hfZ2V0X3NpemUgKENGR19GTEFTSF9CQVNFLCBmbGFzaF9pbmZvICsgYmFuayk7CisJYmFua19zaXplID0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgZmxhc2hfaW5mbyArIGJhbmspOwogCWlmIChiYW5rX3NpemUpIHsKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFICYmIFwKLSAgICBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTUFYX0ZMQVNIX1NJWkUKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiYgXAorICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NQVhfRkxBU0hfU0laRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkgICAgICBmbGFzaF9pbmZvICsgYmFuayk7CiAjZW5kaWYKIApAQCAtODUsOCArODUsOCBAQAogCiAJCS8qIEhXQyBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCQkgICAgICBDRkdfRkxBU0hfQkFTRSArIDB4MTAwMDAgLSAxLAorCQkJICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgxMDAwMCAtIDEsCiAJCQkgICAgICBmbGFzaF9pbmZvICsgYmFuayk7CiAKIAkJZmxhc2hfc2l6ZSArPSBiYW5rX3NpemU7CkBAIC0xNDQsMTAgKzE0NCwxMCBAQAogCWNhc2UgQU1EX0lEX0xWMDMzQzoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wMzNDOwogCQlpbmZvLT5zaXplID0gaHdjX2ZsYXNoX3NpemUoKTsKLQkJaWYgKGluZm8tPnNpemUgPiBDRkdfTUFYX0ZMQVNIX1NJWkUpIHsKKwkJaWYgKGluZm8tPnNpemUgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TSVpFKSB7CiAJCQlwcmludGYoIlUtQm9vdCBzdXBwb3J0cyBvbmx5ICVkIE1CXG4iLAotCQkJICAgICAgIENGR19NQVhfRkxBU0hfU0laRSk7Ci0JCQlpbmZvLT5zaXplID0gQ0ZHX01BWF9GTEFTSF9TSVpFOworCQkJICAgICAgIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NJWkUpOworCQkJaW5mby0+c2l6ZSA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NJWkU7CiAJCX0KIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gaW5mby0+c2l6ZSAvIDB4MTAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiA0IE1CCQkqLwpAQCAtMjgxLDcgKzI4MSw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gaW5mby0+c3RhcnRbbF9zZWN0XTsKIAl3aGlsZSAoKGluOChhZGRyKSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQyMSw3ICs0MjEsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKChpbjMyKGRlc3QpICYgMHg4MDgwODA4MCkgIT0gKGRhdGEgJiAweDgwODA4MDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJCWlvYmFycmllcl9ydygpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaXBoYXNlNDUzOS9pcGhhc2U0NTM5LmMgYi9ib2FyZC9pcGhhc2U0NTM5L2lwaGFzZTQ1MzkuYwppbmRleCBlNWQwMjU0Li43ZmVjMmNjIDEwMDY0NAotLS0gYS9ib2FyZC9pcGhhc2U0NTM5L2lwaGFzZTQ1MzkuYworKysgYi9ib2FyZC9pcGhhc2U0NTM5L2lwaGFzZTQ1MzkuYwpAQCAtMTk1LDE2ICsxOTUsMTYgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSB1Y2hhciAqYmFzZTsKIAl1bG9uZyBtYXhzaXplOwogCWludCBpOwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfcHBjX2FjciA9IDB4MDAwMDAwMjY7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3BwY19hbHJoID0gMHgwMTI3NjM0NTsKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfcHBjX2FscmwgPSAweDg5QUJDREVGOwpAQCAtMjE3LDcgKzIxNyw3IEBACiAJLyogSW5pdCBNYWluIFNEUkFNICovCiAjZGVmaW5lIE9QX1ZBTFVFICAgMHg0MDRBMjQxQQogI2RlZmluZSBPUF9WQUxVRV9NIChPUF9WQUxVRSAmIDB4ODdGRkZGRkYpOwotCWJhc2UgPSAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0U7CisJYmFzZSA9ICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gMHgyODAwMDAwMCB8IE9QX1ZBTFVFX007CiAJKmJhc2UgPSAweEZGOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IDB4MDgwMDAwMDAgfCBPUF9WQUxVRV9NOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaXNwYW4vaXNwYW4uYyBiL2JvYXJkL2lzcGFuL2lzcGFuLmMKaW5kZXggMTJmYjkxZi4uOTI1NGUwYSAxMDA2NDQKLS0tIGEvYm9hcmQvaXNwYW4vaXNwYW4uYworKysgYi9ib2FyZC9pc3Bhbi9pc3Bhbi5jCkBAIC0zOSwzMSArMzksMzEgQEAKICAqIGFjY29yZGluZyB0byB0aGUgZml2ZSB2YWx1ZXMgcG9kci9wZGlyL3BwYXIvcHNvci9wZGF0IGZvciB0aGF0IGVudHJ5CiAgKi8KIAotI2RlZmluZSBDRkdfRkNDMSAoQ09ORklHX0VUSEVSX0lOREVYID09IDEpCi0jZGVmaW5lIENGR19GQ0MyIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKLSNkZWZpbmUgQ0ZHX0ZDQzMgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQorI2RlZmluZSBDT05GSUdfU1lTX0ZDQzEgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0ZDQzIgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQorI2RlZmluZSBDT05GSUdfU1lTX0ZDQzMgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQogCiBjb25zdCBpb3BfY29uZl90IGlvcF9jb25mX3RhYls0XVszMl0gPSB7CiAgICAgLyogUG9ydCBBICovCiAgICAgewkvKgkgICAgICBjb25mICAgICAgcHBhciBwc29yIHBkaXIgcG9kciBwZGF0ICovCi0JLyogUEEzMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDT0wgICAqLwotCS8qIFBBMzAgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ1JTICAgKi8KLQkvKiBQQTI5ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICovCi0JLyogUEEyOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUWF9FTiAqLwotCS8qIFBBMjcgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRFYgKi8KLQkvKiBQQTI2ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICovCisJLyogUEEzMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ09MICAgKi8KKwkvKiBQQTMwICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDUlMgICAqLworCS8qIFBBMjkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFRYX0VSICovCisJLyogUEEyOCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRU4gKi8KKwkvKiBQQTI3ICovIHsgQ09ORklHX1NZU19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSWF9EViAqLworCS8qIFBBMjYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0VSICovCiAJLyogUEEyNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI1ICovCiAJLyogUEEyNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI0ICovCiAJLyogUEEyMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTIzICovCiAJLyogUEEyMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTIyICovCi0JLyogUEEyMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbM10gKi8KLQkvKiBQQTIwICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLwotCS8qIFBBMTkgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzFdICovCi0JLyogUEExOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbMF0gKi8KLQkvKiBQQTE3ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLwotCS8qIFBBMTYgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzFdICovCi0JLyogUEExNSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeERbMl0gKi8KLQkvKiBQQTE0ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLworCS8qIFBBMjEgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFszXSAqLworCS8qIFBBMjAgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsyXSAqLworCS8qIFBBMTkgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFsxXSAqLworCS8qIFBBMTggKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFswXSAqLworCS8qIFBBMTcgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFswXSAqLworCS8qIFBBMTYgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsxXSAqLworCS8qIFBBMTUgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsyXSAqLworCS8qIFBBMTQgKi8geyBDT05GSUdfU1lTX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFszXSAqLwogCS8qIFBBMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMyAqLwogCS8qIFBBMTIgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMiAqLwogCS8qIFBBMTEgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMSAqLwpAQCAtODIsMzQgKzgyLDM0IEBACiAKICAgICAvKiBQb3J0IEIgKi8KICAgICB7ICAgLyoJICAgICAgY29uZiAgICAgIHBwYXIgcHNvciBwZGlyIHBvZHIgcGRhdCAqLwotCS8qIFBCMzEgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgICovCi0JLyogUEIzMCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9EViAgKi8KLQkvKiBQQjI5ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VOICAqLwotCS8qIFBCMjggKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgICovCi0JLyogUEIyNyAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBDT0wgICAgKi8KLQkvKiBQQjI2ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAgICAqLwotCS8qIFBCMjUgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCi0JLyogUEIyNCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMl0gKi8KLQkvKiBQQjIzICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLwotCS8qIFBCMjIgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCi0JLyogUEIyMSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMF0gKi8KLQkvKiBQQjIwICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLwotCS8qIFBCMTkgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCi0JLyogUEIxOCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbM10gKi8KLQkvKiBQQjE3ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFJYX0RWICAqLwotCS8qIFBCMTYgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUlhfRVIgICovCi0JLyogUEIxNSAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBUWF9FUiAgKi8KLQkvKiBQQjE0ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFRYX0VOICAqLwotCS8qIFBCMTMgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgQ09MICAgICovCi0JLyogUEIxMiAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBDUlMgICAgKi8KLQkvKiBQQjExICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFJ4RFszXSAqLwotCS8qIFBCMTAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzJdICovCi0JLyogUEI5ICAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBSeERbMV0gKi8KLQkvKiBQQjggICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFJ4RFswXSAqLwotCS8qIFBCNyAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzBdICovCi0JLyogUEI2ICAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBUeERbMV0gKi8KLQkvKiBQQjUgICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFR4RFsyXSAqLwotCS8qIFBCNCAgKi8geyBDRkdfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzNdICovCisJLyogUEIzMSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRVIgICovCisJLyogUEIzMCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRFYgICovCisJLyogUEIyOSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRU4gICovCisJLyogUEIyOCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUlhfRVIgICovCisJLyogUEIyNyAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ09MICAgICovCisJLyogUEIyNiAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ1JTICAgICovCisJLyogUEIyNSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzNdICovCisJLyogUEIyNCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzJdICovCisJLyogUEIyMyAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzFdICovCisJLyogUEIyMiAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzBdICovCisJLyogUEIyMSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzBdICovCisJLyogUEIyMCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzFdICovCisJLyogUEIxOSAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzJdICovCisJLyogUEIxOCAqLyB7IENPTkZJR19TWVNfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzNdICovCisJLyogUEIxNyAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUlhfRFYgICovCisJLyogUEIxNiAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUlhfRVIgICovCisJLyogUEIxNSAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVFhfRVIgICovCisJLyogUEIxNCAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVFhfRU4gICovCisJLyogUEIxMyAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgQ09MICAgICovCisJLyogUEIxMiAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgQ1JTICAgICovCisJLyogUEIxMSAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzNdICovCisJLyogUEIxMCAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzJdICovCisJLyogUEI5ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzFdICovCisJLyogUEI4ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgUnhEWzBdICovCisJLyogUEI3ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzBdICovCisJLyogUEI2ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzFdICovCisJLyogUEI1ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzJdICovCisJLyogUEI0ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHhEWzNdICovCiAJLyogUEIzICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBwaW4gZG9lc24ndCBleGlzdCAqLwogCS8qIFBCMiAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogcGluIGRvZXNuJ3QgZXhpc3QgKi8KIAkvKiBQQjEgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIHBpbiBkb2Vzbid0IGV4aXN0ICovCkBAIC0xMzEsOSArMTMxLDkgQEAKIAkvKiBQQzIxICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjEgKi8KIAkvKiBQQzIwICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjAgKi8KIAkvKiBQQzE5ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTkgKi8KLQkvKiBQQzE4ICovIHsgQ0ZHX0ZDQzMsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzMgTUlJIFJ4IENsb2NrIChDTEsxNCkgKi8KKwkvKiBQQzE4ICovIHsgQ09ORklHX1NZU19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBSeCBDbG9jayAoQ0xLMTQpICovCiAJLyogUEMxNyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE3ICovCi0JLyogUEMxNiAqLyB7IENGR19GQ0MzLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MzIE1JSSBUeCBDbG9jayAoQ0xLMTYpICovCisJLyogUEMxNiAqLyB7IENPTkZJR19TWVNfRkNDMywgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMyBNSUkgVHggQ2xvY2sgKENMSzE2KSAqLwogCS8qIFBDMTUgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNSAqLwogCS8qIFBDMTQgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNCAqLwogCS8qIFBDMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxMyAqLwpAQCAtMTc5LDggKzE3OSw4IEBACiAJLyogUEQ5ICAqLyB7IDEsICAgICAgICAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBTTUMxIFNNVFhEICovCiAJLyogUEQ4ICAqLyB7IDEsICAgICAgICAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBTTUMxIFNNUlhEICovCiAJLyogUEQ3ICAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQRDcgKi8KLQkvKiBQRDYgICovIHsgQ0ZHX0ZDQzMsICAgMCwgICAwLCAgIDEsICAgMCwgICAxIH0sIC8qIE1JSSBQSFkgUmVzZXQgICovCi0JLyogUEQ1ICAqLyB7IENGR19GQ0MzLCAgIDAsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBNSUkgUEhZIEVuYWJsZSAqLworCS8qIFBENiAgKi8geyBDT05GSUdfU1lTX0ZDQzMsICAgMCwgICAwLCAgIDEsICAgMCwgICAxIH0sIC8qIE1JSSBQSFkgUmVzZXQgICovCisJLyogUEQ1ICAqLyB7IENPTkZJR19TWVNfRkNDMywgICAwLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogTUlJIFBIWSBFbmFibGUgKi8KIAkvKiBQRDQgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBENCAqLwogCS8qIFBEMyAgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogcGluIGRvZXNuJ3QgZXhpc3QgKi8KIAkvKiBQRDIgICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIHBpbiBkb2Vzbid0IGV4aXN0ICovCkBAIC0zNjAsOCArMzYwLDggQEAKIHsKIAlsb25nIG1heHNpemUgPSBod2NfbWFpbl9zZHJhbV9zaXplKCk7CiAKLSNpZiAhZGVmaW5lZChDRkdfUkFNQk9PVCkgJiYgIWRlZmluZWQoQ0ZHX1VTRV9GSVJNV0FSRSkKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkgJiYgIWRlZmluZWQoQ09ORklHX1NZU19VU0VfRklSTVdBUkUpCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSB1Y2hhciAqYmFzZTsKIAlpbnQgaTsKQEAgLTM3NSwzNyArMzc1LDM3IEBACiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3Rlc2NyMSAgID0gMHgwMDAwNDAwMDsKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfbHRlc2NyMSAgPSAweDAwMDA0MDAwOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAkvKiBJbml0aWFsaXNlIDYweCBidXMgU0RSQU0gKi8KLQliYXNlID0gKHVjaGFyICopKENGR19TRFJBTV9CQVNFIHwgMHgxMTApOwotCW1lbWN0bC0+bWVtY19wc3J0ICA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19vcjEgICA9IENGR182MHhfT1I7Ci0JbWVtY3RsLT5tZW1jX2JyMSAgID0gQ0ZHX1NEUkFNX0JBU0UgfCBDRkdfNjB4X0JSOworCWJhc2UgPSAodWNoYXIgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgMHgxMTApOworCW1lbWN0bC0+bWVtY19wc3J0ICA9IENPTkZJR19TWVNfUFNSVDsKKwltZW1jdGwtPm1lbWNfb3IxICAgPSBDT05GSUdfU1lTXzYweF9PUjsKKwltZW1jdGwtPm1lbWNfYnIxICAgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBDT05GSUdfU1lTXzYweF9CUjsKIAotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4MjgwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4MjgwMDAwMDA7CiAJKmJhc2UgPSAweEZGOwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4MDgwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4MDgwMDAwMDA7CiAJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKIAkJKmJhc2UgPSAweEZGOwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4MTgwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4MTgwMDAwMDA7CiAJKmJhc2UgPSAweEZGOwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IDB4NDAwMDAwMDA7CisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IDB4NDAwMDAwMDA7CiAKIAkvKiBJbml0aWFsaXNlIGxvY2FsIGJ1cyBTRFJBTSAqLwotCWJhc2UgPSAodWNoYXIgKilDRkdfTFNEUkFNX0JBU0U7Ci0JbWVtY3RsLT5tZW1jX2xzcnQgID0gQ0ZHX0xTUlQ7Ci0JbWVtY3RsLT5tZW1jX29yMiAgID0gQ0ZHX0xPQ19PUjsKLQltZW1jdGwtPm1lbWNfYnIyICAgPSBDRkdfTFNEUkFNX0JBU0UgfCBDRkdfTE9DX0JSOworCWJhc2UgPSAodWNoYXIgKilDT05GSUdfU1lTX0xTRFJBTV9CQVNFOworCW1lbWN0bC0+bWVtY19sc3J0ICA9IENPTkZJR19TWVNfTFNSVDsKKwltZW1jdGwtPm1lbWNfb3IyICAgPSBDT05GSUdfU1lTX0xPQ19PUjsKKwltZW1jdGwtPm1lbWNfYnIyICAgPSBDT05GSUdfU1lTX0xTRFJBTV9CQVNFIHwgQ09ORklHX1NZU19MT0NfQlI7CiAKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDI4MDAwMDAwOworCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDI4MDAwMDAwOwogCSpiYXNlID0gMHhGRjsKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDA4MDAwMDAwOworCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDA4MDAwMDAwOwogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCiAJCSpiYXNlID0gMHhGRjsKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDE4MDAwMDAwOworCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDE4MDAwMDAwOwogCSpiYXNlID0gMHhGRjsKLQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCAweDQwMDAwMDAwOworCW1lbWN0bC0+bWVtY19sc2RtciA9IENPTkZJR19TWVNfTFNETVIgfCAweDQwMDAwMDAwOwogCiAJLyogV2UgbXVzdCBiZSBhYmxlIHRvIHRlc3QgYSBsb2NhdGlvbiBvdXRzaXplIHRoZSBtYXhpbXVtIGxlZ2FsIHNpemUKIAkgKiB0byBmaW5kIG91dCBUSEFUIHdlIGFyZSBvdXRzaWRlOyBidXQgdGhpcyBhZGRyZXNzIHN0aWxsIGhhcyB0byBiZQpAQCAtNDIwLDcgKzQyMCw3IEBACiAKIAlpZiAobWF4c2l6ZSAhPSBod2NfbWFpbl9zZHJhbV9zaXplKCkpCiAJCXB1dHMoIk9vcHM6IG1lbW9yeSB0ZXN0IGhhcyBub3QgZm91bmQgYWxsIG1lbW9yeSFcbiIpOwotI2VuZGlmIC8qICFDRkdfUkFNQk9PVCAmJiAhQ0ZHX1VTRV9GSVJNV0FSRSAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX1JBTUJPT1QgJiYgIUNPTkZJR19TWVNfVVNFX0ZJUk1XQVJFICovCiAKIAkvKiBSZXR1cm4gdG90YWwgUkFNIHNpemUgKHNpemUgb2YgNjB4IFNEUkFNKSAqLwogCXJldHVybiBtYXhzaXplOwpkaWZmIC0tZ2l0IGEvYm9hcmQvaXZtL2ZsYXNoLmMgYi9ib2FyZC9pdm0vZmxhc2guYwppbmRleCAyOTgyMWJhLi5jZjMwOWQ3IDEwMDY0NAotLS0gYS9ib2FyZC9pdm0vZmxhc2guYworKysgYi9ib2FyZC9pdm0vZmxhc2guYwpAQCAtMjQsMTEgKzI0LDExIEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNTAsMTMgKzUwLDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtNzIsMjIgKzcyLDIyIEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBcCisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCUJSX01TX0dQQ00gfCBCUl9QU18xNiB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zODMsMTAgKzM4MywxMCBAQAogCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlzYWRkclswXSA9IDB4MDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC00NTQsNyArNDU0LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIDB4MDA4MCkgIT0gMHgwMDgwKSB7Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4MDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCiAJCQkJCXJldHVybiAxOwpAQCAtNTgzLDcgKzU4Myw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgMHgwMDgwKSAhPSAweDAwODApIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAweDAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9pdm0vaXZtLmMgYi9ib2FyZC9pdm0vaXZtLmMKaW5kZXggNDg4MmYwNC4uOWJlYzE5OCAxMDA2NDQKLS0tIGEvYm9hcmQvaXZtL2l2bS5jCisrKyBiL2JvYXJkL2l2bS9pdm0uYwpAQCAtMTYxLDI4ICsxNjEsMjggQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemVfYjA7CiAKIAkvKiBlbmFibGUgU0RSQU0gY2xvY2sgKCJzd2l0Y2ggb24iIFNEUkFNKSAqLwotCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENGR19QQl9TRFJBTV9DTEtFKTsJLyogR1BJTyAqLwotCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENGR19QQl9TRFJBTV9DTEtFKTsJLyogYWN0aXZlIG91dHB1dCAqLwotCWltbXItPmltX2NwbS5jcF9wYmRpciB8PSBDRkdfUEJfU0RSQU1fQ0xLRTsJLyogb3V0cHV0ICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGF0IHw9IENGR19QQl9TRFJBTV9DTEtFOwkvKiBhc3NlcnQgU0RSQU0gQ0xLRSAqLworCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENPTkZJR19TWVNfUEJfU0RSQU1fQ0xLRSk7CS8qIEdQSU8gKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihDT05GSUdfU1lTX1BCX1NEUkFNX0NMS0UpOwkvKiBhY3RpdmUgb3V0cHV0ICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGlyIHw9IENPTkZJR19TWVNfUEJfU0RSQU1fQ0xLRTsJLyogb3V0cHV0ICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGF0IHw9IENPTkZJR19TWVNfUEJfU0RSQU1fQ0xLRTsJLyogYXNzZXJ0IFNEUkFNIENMS0UgKi8KIAl1ZGVsYXkgKDEpOwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDEgZm9yIEVMSUMgU0FDQ08KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjE7CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxOwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDIgZm9yIEVMSUMgRVBJQwogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMjsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjI7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBVUE1BIGZvciBTSEFSQwpAQCAtMTk0LDE1ICsxOTQsMTUgQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgNCBmb3IgSERMQyBBZGRyZXNzIHNwYWNlCiAJICovCi0JbWVtY3RsLT5tZW1jX29yNCA9IENGR19PUjQ7Ci0JbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjQ7CisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0OworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNDsKICNlbmRpZgogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDUgZm9yIFNIQVJDCiAJICovCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjU7CisJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfT1I1OworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNTsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMDAwMTAwMDsKIApAQCAtMjEyLDE3ICsyMTIsMTcgQEAKIAl1cG1jb25maWcgKFVQTUIsICh1aW50ICopIHNkcmFtX3RhYmxlLAogCQkgICBzaXplb2YgKHNkcmFtX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS184SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS184SzsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDMgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SM19QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfOENPTDsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl84Q09MOwkvKiByZWZyZXNoIG5vdCBlbmFibGVkIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwODA2MTA1OwkvKiBwcmVjaGFyZ2UgKi8KQEAgLTI1MSwxMCArMjUxLDEwIEBACiAJICogQ2hlY2sgQmFuayAwIE1lbW9yeSBTaXplIGZvciByZS1jb25maWd1cmF0aW9uCiAJICovCiAJc2l6ZV9iMCA9Ci0JCWRyYW1fc2l6ZSAoQ0ZHX01CTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTNfUFJFTElNLAorCQlkcmFtX3NpemUgKENPTkZJR19TWVNfTUJNUl84Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFM19QUkVMSU0sCiAJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQk1SXzhDT0wgfCBNQk1SX1BUQkU7CisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOENPTCB8IE1CTVJfUFRCRTsKIAogCXJldHVybiAoc2l6ZV9iMCk7CiB9CkBAIC0yNzIsNyArMjcyLDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYm1yID0gbWFtcl92YWx1ZTsKQEAgLTI4NCwxMyArMjg0LDEzIEBACiAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewotCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyogRGUtYXNzZXJ0IEV0aGVybmV0IFBvd2VyZG93biAqLwotCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENGR19QQl9FVEhfUE9XRVJET1dOKTsJLyogR1BJTyAqLwotCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENGR19QQl9FVEhfUE9XRVJET1dOKTsJLyogYWN0aXZlIG91dHB1dCAqLwotCWltbXItPmltX2NwbS5jcF9wYmRpciB8PSBDRkdfUEJfRVRIX1BPV0VSRE9XTjsJLyogb3V0cHV0ICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ0ZHX1BCX0VUSF9QT1dFUkRPV04pOwkvKiBFbmFibGUgUEhZIHBvd2VyICovCisJaW1tci0+aW1fY3BtLmNwX3BicGFyICY9IH4oQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOKTsJLyogR1BJTyAqLworCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTik7CS8qIGFjdGl2ZSBvdXRwdXQgKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJkaXIgfD0gQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOOwkvKiBvdXRwdXQgKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgJj0gfihDT05GSUdfU1lTX1BCX0VUSF9QT1dFUkRPV04pOwkvKiBFbmFibGUgUEhZIHBvd2VyICovCiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCkBAIC0zMDIsMTMgKzMwMiwxMyBAQAogCSAqIE5vdGU6IFRoZSBSRVNFVCBwaW4gaXMgaGlnaCBhY3RpdmUsIGJ1dCB0aGVyZSBpcyBhbgogCSAqICAgICAgIGludmVydGVyIG9uIHRoZSBTUEQ4MjNUUyBib2FyZC4uLgogCSAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDRkdfUENfRVRIX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENGR19QQ19FVEhfUkVTRVQ7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENPTkZJR19TWVNfUENfRVRIX1JFU0VUKTsKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENPTkZJR19TWVNfUENfRVRIX1JFU0VUOwogCS8qIGFzc2VydCBSRVNFVCBzaWduYWwgb2YgUEhZICovCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KENGR19QQ19FVEhfUkVTRVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfihDT05GSUdfU1lTX1BDX0VUSF9SRVNFVCk7CiAJdWRlbGF5ICgxMCk7CiAJLyogZGUtYXNzZXJ0IFJFU0VUIHNpZ25hbCBvZiBQSFkgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IENGR19QQ19FVEhfUkVTRVQ7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSBDT05GSUdfU1lTX1BDX0VUSF9SRVNFVDsKIAl1ZGVsYXkgKDEwKTsKIH0KIApAQCAtMzMyLDIxICszMzIsMjEgQEAKIAogdm9pZCBpZGVfc2V0X3Jlc2V0IChpbnQgb24pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBQQyBmb3IgSURFIFJlc2V0IFBpbgogCSAqLwogCWlmIChvbikgewkJLyogYXNzZXJ0IFJFU0VUICovCi0JCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfihDRkdfUENfSURFX1JFU0VUKTsKKwkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KENPTkZJR19TWVNfUENfSURFX1JFU0VUKTsKIAl9IGVsc2UgewkJLyogcmVsZWFzZSBSRVNFVCAqLwotCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IENGR19QQ19JREVfUkVTRVQ7CisJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gQ09ORklHX1NZU19QQ19JREVfUkVTRVQ7CiAJfQogCiAJLyogcHJvZ3JhbSBwb3J0IHBpbiBhcyBHUElPIG91dHB1dCAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDRkdfUENfSURFX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gJj0gfihDRkdfUENfSURFX1JFU0VUKTsKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENGR19QQ19JREVfUkVTRVQ7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENPTkZJR19TWVNfUENfSURFX1JFU0VUKTsKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gJj0gfihDT05GSUdfU1lTX1BDX0lERV9SRVNFVCk7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSBDT05GSUdfU1lTX1BDX0lERV9SRVNFVDsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvaXhkcDQyNS9mbGFzaC5jIGIvYm9hcmQvaXhkcDQyNS9mbGFzaC5jCmluZGV4IDBiYWU5ZTAuLmYxZDkxOTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2l4ZHA0MjUvZmxhc2guYworKysgYi9ib2FyZC9peGRwNDI1L2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjdW5kZWYgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC02NSw3ICs2NSw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtODEsOCArODEsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKQEAgLTE5OCwxMCArMTk4LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNzAsNyArMjcwLDcgQEAKIAkJCQkgKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCSAgICAgICAoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEIwMDBCMDsJLyogc3VzcGVuZCBlcmFzZSAgICAgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00MDYsNyArNDA2LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9peGRwNDI1L2l4ZHA0MjUuYyBiL2JvYXJkL2l4ZHA0MjUvaXhkcDQyNS5jCmluZGV4IGIzNzljNzUuLjQzYWM4ZjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2l4ZHA0MjUvaXhkcDQyNS5jCisrKyBiL2JvYXJkL2l4ZHA0MjUvaXhkcDQyNS5jCkBAIC01NCwyNSArNTQsMjUgQEAKIAkvKgogCSAqIEdldCByZWFsdGVrIFJUTDgzMDUgc3dpdGNoIGFuZCBTTElDIG91dCBvZiByZXNldAogCSAqLwotCUdQSU9fT1VUUFVUX1NFVChDRkdfR1BJT19TV0lUQ0hfUkVTRVRfTik7Ci0JR1BJT19PVVRQVVRfRU5BQkxFKENGR19HUElPX1NXSVRDSF9SRVNFVF9OKTsKLQlHUElPX09VVFBVVF9TRVQoQ0ZHX0dQSU9fU0xJQ19SRVNFVF9OKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fU0xJQ19SRVNFVF9OKTsKKwlHUElPX09VVFBVVF9TRVQoQ09ORklHX1NZU19HUElPX1NXSVRDSF9SRVNFVF9OKTsKKwlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX1NXSVRDSF9SRVNFVF9OKTsKKwlHUElPX09VVFBVVF9TRVQoQ09ORklHX1NZU19HUElPX1NMSUNfUkVTRVRfTik7CisJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19TTElDX1JFU0VUX04pOwogCiAJLyoKIAkgKiBTZXR1cCBHUElPJ3MgZm9yIFBDSSBJTlRBICYgSU5UQgogCSAqLwotCUdQSU9fT1VUUFVUX0RJU0FCTEUoQ0ZHX0dQSU9fUENJX0lOVEFfTik7Ci0JR1BJT19JTlRfQUNUX0xPV19TRVQoQ0ZHX0dQSU9fUENJX0lOVEFfTik7Ci0JR1BJT19PVVRQVVRfRElTQUJMRShDRkdfR1BJT19QQ0lfSU5UQl9OKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVChDRkdfR1BJT19QQ0lfSU5UQl9OKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQV9OKTsKKwlHUElPX0lOVF9BQ1RfTE9XX1NFVChDT05GSUdfU1lTX0dQSU9fUENJX0lOVEFfTik7CisJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fUENJX0lOVEJfTik7CisJR1BJT19JTlRfQUNUX0xPV19TRVQoQ09ORklHX1NZU19HUElPX1BDSV9JTlRCX04pOwogCiAJLyoKIAkgKiBTZXR1cCBHUElPJ3MgZm9yIDMzTUh6IGNsb2NrIG91dHB1dAogCSAqLwogCSpJWFA0MjVfR1BJT19HUENMS1IgPSAweDAxRkYwMUZGOwotCUdQSU9fT1VUUFVUX0VOQUJMRShDRkdfR1BJT19QQ0lfQ0xLKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fRVhUQlVTX0NMSyk7CisJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19QQ0lfQ0xLKTsKKwlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX0VYVEJVU19DTEspOwogI2VuZGlmCiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL2pzZS9mbGFzaC5jIGIvYm9hcmQvanNlL2ZsYXNoLmMKaW5kZXggYzQ2MmZlMC4uOTJhY2RiMSAxMDA2NDQKLS0tIGEvYm9hcmQvanNlL2ZsYXNoLmMKKysrIGIvYm9hcmQvanNlL2ZsYXNoLmMKQEAgLTMyLDEwICszMiwxMCBAQAogI2luY2x1ZGUgPHBwYzR4eC5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KIAotI2lmIENGR19NQVhfRkxBU0hfQkFOS1MgIT0gMQotI2Vycm9yICJDRkdfTUFYX0ZMQVNIX0JBTktTIG11c3QgYmUgMSIKKyNpZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAhPSAxCisjZXJyb3IgIkNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIG11c3QgYmUgMSIKICNlbmRpZgotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMjgxLDcgKzI4MSw3IEBACiAJbGFzdCA9IHN0YXJ0OwogCXdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CiAJICAgICAgIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTUxMCw3ICs1MTAsNyBAQAogCQl3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KIAkJICAgICAgIChkYXRhMltpXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9qc2UvanNlLmMgYi9ib2FyZC9qc2UvanNlLmMKaW5kZXggOTI5MDgxNC4uNmE2YjlkZCAxMDA2NDQKLS0tIGEvYm9hcmQvanNlL2pzZS5jCisrKyBiL2JvYXJkL2pzZS9qc2UuYwpAQCAtNjcsNyArNjcsNyBAQAogCiAJLyogRUJDMF9CMUNSOiBCQVM9eCwgQlM9MCgxTUIpLCBCVT0zKFIvVyksIEJXPTAoOGJpdHMpICovCiAJbXRkY3IgKGViY2NmZ2EsIHBiMWNyKTsKLQltdGRjciAoZWJjY2ZnZCwgQ0ZHX1NZU1RFTUFDRV9CQVNFIHwgMHgwMDAxODAwMCk7CisJbXRkY3IgKGViY2NmZ2QsIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgfCAweDAwMDE4MDAwKTsKIAogCS8qIEVuYWJsZSB0aGUgL1BlcldFIG91dHB1dCBhcyAvUGVyV0UsIGluc3RlYWQgb2YgL1BDSUlOVC4gKi8KIAkvKiBDUEMwX0NSMSB8PSBQQ0lQVyAqLwpAQCAtOTUsMTEgKzk1LDExIEBACiAKIAkvKiBjaGVjayB0aGF0IHRoZSBTeXN0ZW1BQ0UgY2hpcCBpcyBhbGl2ZS4gKi8KIAlwcmludGYgKCJBQ0U6ICAgIik7Ci0JdmVycyA9IHJlYWR3IChDRkdfU1lTVEVNQUNFX0JBU0UgKyAweDE2KTsKKwl2ZXJzID0gcmVhZHcgKENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgKyAweDE2KTsKIAlwcmludGYgKCJTeXN0ZW1BQ0UgJXUuJXUgKGJ1aWxkICV1KSIsCiAJCSh2ZXJzID4+IDEyKSAmIDB4MGYsICh2ZXJzID4+IDgpICYgMHgwZiwgdmVycyAmIDB4ZmYpOwogCi0Jc3RhdHVzID0gcmVhZGwgKENGR19TWVNURU1BQ0VfQkFTRSArIDB4MDQpOworCXN0YXR1cyA9IHJlYWRsIChDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFICsgMHgwNCk7CiAjaWZkZWYgREVCVUcKIAlwcmludGYgKCIgU1RBVFVTPTB4JTA4eCIsIHN0YXR1cyk7CiAjZW5kaWYKQEAgLTExMCwyMyArMTEwLDIzIEBACiAKIAkJaWYgKHN0YXR1cyAmIDB4MDQpIHsKIAkJCS8qIENPTlRST0xSRUcgPSBDRkdQUk9HICovCi0JCQl3cml0ZXcgKDB4MTAwMCwgQ0ZHX1NZU1RFTUFDRV9CQVNFICsgMHgxOCk7CisJCQl3cml0ZXcgKDB4MTAwMCwgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSArIDB4MTgpOwogCQkJdWRlbGF5ICg1MDApOwogCQkJLyogQ09OVFJPTFJFRyA9IENGR1JFU0VUICovCi0JCQl3cml0ZXcgKDB4MDA4MCwgQ0ZHX1NZU1RFTUFDRV9CQVNFICsgMHgxOCk7CisJCQl3cml0ZXcgKDB4MDA4MCwgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSArIDB4MTgpOwogCQkJdWRlbGF5ICg1MDApOwotCQkJd3JpdGV3ICgweDAwMDAsIENGR19TWVNURU1BQ0VfQkFTRSArIDB4MTgpOworCQkJd3JpdGV3ICgweDAwMDAsIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgKyAweDE4KTsKIAkJCS8qIENPTlRST0xSRUcgPSBDRkdTVEFSVCAqLwotCQkJd3JpdGV3ICgweDAwMjAsIENGR19TWVNURU1BQ0VfQkFTRSArIDB4MTgpOworCQkJd3JpdGV3ICgweDAwMjAsIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgKyAweDE4KTsKIAotCQkJc3RhdHVzID0gcmVhZGwgKENGR19TWVNURU1BQ0VfQkFTRSArIDB4MDQpOworCQkJc3RhdHVzID0gcmVhZGwgKENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UgKyAweDA0KTsKIAkJfQogCX0KIAogCS8qIFdhaXQgZm9yIHRoZSBTeXN0ZW1BQ0UgdG8gcHJvZ3JhbSBpdHMgY2hhaW4gb2YgZGV2aWNlcy4gKi8KIAl3aGlsZSAoKHN0YXR1cyAmIDB4ODQpID09IDB4MDApIHsKIAkJdWRlbGF5ICg1MDApOwotCQlzdGF0dXMgPSByZWFkbCAoQ0ZHX1NZU1RFTUFDRV9CQVNFICsgMHgwNCk7CisJCXN0YXR1cyA9IHJlYWRsIChDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFICsgMHgwNCk7CiAJfQogCiAJaWYgKHN0YXR1cyAmIDB4MDQpCmRpZmYgLS1naXQgYS9ib2FyZC9qc2Uvc2RyYW0uYyBiL2JvYXJkL2pzZS9zZHJhbS5jCmluZGV4IDhiYTZjNDUuLmExZjUyNmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2pzZS9zZHJhbS5jCisrKyBiL2JvYXJkL2pzZS9zZHJhbS5jCkBAIC0xNTEsNyArMTUxLDcgQEAKIAkvKiBTdGFydCBtZW1vcnkgdGVzdC4gKi8KIAlwcmludGYgKCJ0ZXN0OiAldSBNQiAtICIsIFNEUkFNX0xFTiAvIDEwNDg1NzYpOwogCi0Jc2RyYW0gPSAodW5zaWduZWQgbG9uZyAqKSBDRkdfU0RSQU1fQkFTRTsKKwlzZHJhbSA9ICh1bnNpZ25lZCBsb25nICopIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAogCXByaW50ZiAoIndyaXRlIC0gIik7CiAJZm9yIChpZHggPSAyOyBpZHggPCBTRFJBTV9MRU4gLyA0OyBpZHggKz0gMikgewpkaWZmIC0tZ2l0IGEvYm9hcmQvanVwaXRlci9qdXBpdGVyLmMgYi9ib2FyZC9qdXBpdGVyL2p1cGl0ZXIuYwppbmRleCA3OTEzYzc1Li42ZTc1MmM2IDEwMDY0NAotLS0gYS9ib2FyZC9qdXBpdGVyL2p1cGl0ZXIuYworKysgYi9ib2FyZC9qdXBpdGVyL2p1cGl0ZXIuYwpAQCAtNDUsNyArNDUsNyBAQAogI2RlZmluZSBTRFJBTV9DT05GSUcyCTB4ODhiNzAwMDQKICNlbmRpZgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC04OCw3ICs4OCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC05OCw3ICs5OCw3IEBACiAJdWxvbmcgZHJhbXNpemUyID0gMDsKIAl1aW50IHN2ciwgcHZyOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMTE5LDkgKzExOSw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTE0NywxMCArMTQ3LDEwIEBACiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlpZiAoIWRyYW1zaXplKSB7CiAJCXNkcmFtX3N0YXJ0KDEpOwotCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJfQogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTcyLDcgKzE3Miw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xOTAsNyArMTkwLDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyoKIAkgKiBPbiBNUEM1MjAwQiB3ZSBuZWVkIHRvIHNldCB0aGUgc3BlY2lhbCBjb25maWd1cmF0aW9uIGRlbGF5IGluIHRoZQpAQCAtMjQ0LDkgKzI0NCw5IEBACiB7CiAJaWYgKHNpemUgPT0gMHgxMDAwMDAwKSB7IC8qIGFkanVzdCBtYXBwaW5nICovCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUQVJUID0gKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPQotCQkJU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplKTsKKwkJCVNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUpOwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVE9QID0gKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RPUCA9Ci0JCQlTVE9QX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSwgc2l6ZSk7CisJCQlTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUsIHNpemUpOwogCX0KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCSoodnVfbG9uZyAqKU1QQzVYWFhfQURERUNSICY9IH4oMSA8PCAyNSk7IC8qIGRpc2FibGUgQ1NfQk9PVCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQva2V5bWlsZS9jb21tb24vY29tbW9uLmMgYi9ib2FyZC9rZXltaWxlL2NvbW1vbi9jb21tb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGNmMjRjCi0tLSAvZGV2L251bGwKKysrIGIvYm9hcmQva2V5bWlsZS9jb21tb24vY29tbW9uLmMKQEAgLTAsMCArMSw1MjMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDgKKyAqIEhlaWtvIFNjaG9jaGVyLCBERU5YIFNvZnR3YXJlIEVuZ2luZWVyaW5nLCBoc0BkZW54LmRlLgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKyNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxtcGM4MjYwLmg+CisjaW5jbHVkZSA8aW9wb3J0cy5oPgorI2luY2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgPGh1c2guaD4KKworI2lmIGRlZmluZWQoQ09ORklHX09GX0JPQVJEX1NFVFVQKSAmJiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpCisjaW5jbHVkZSA8bGliZmR0Lmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoQ09ORklHX0hBUkRfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19TT0ZUX0kyQykKKyNpbmNsdWRlIDxpMmMuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGFzbS9pby5oPgorCitleHRlcm4gaW50IGkyY19zb2Z0X3JlYWRfcGluICh2b2lkKTsKKworaW50IGl2bV9jYWxjX2NyYyAodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuKQoreworCWNvbnN0IHVuc2lnbmVkIHNob3J0IGNyY190YWJbMTZdID0geworCQkweDAwMDAsIDB4Q0MwMSwgMHhEODAxLCAweDE0MDAsCisJCTB4RjAwMSwgMHgzQzAwLCAweDI4MDAsIDB4RTQwMSwKKwkJMHhBMDAxLCAweDZDMDAsIDB4NzgwMCwgMHhCNDAxLAorCQkweDUwMDAsIDB4OUMwMSwgMHg4ODAxLCAweDQ0MDB9OworCisJdW5zaWduZWQgc2hvcnQgY3JjICAgICA9IDA7ICAgLyogZmluYWwgcmVzdWx0ICovCisJdW5zaWduZWQgc2hvcnQgcjEgICAgICA9IDA7ICAgLyogdGVtcCAqLworCXVuc2lnbmVkIGNoYXIgIGJ5dGUgICAgPSAwOyAgIC8qIGlucHV0IGJ1ZmZlciAqLworCWludAlpOworCisJLyogY2FsY3VsYXRlIENSQyBmcm9tIGFycmF5IGRhdGEgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKwkJYnl0ZSA9IGJ1ZltpXTsKKworCQkvKiBsb3dlciA0IGJpdHMgKi8KKwkJcjEgPSBjcmNfdGFiW2NyYyAmIDB4Rl07CisJCWNyYyA9ICgoY3JjKSA+PiA0KSAmIDB4MEZGRjsKKwkJY3JjID0gY3JjIF4gcjEgXiBjcmNfdGFiW2J5dGUgJiAweEZdOworCisJCS8qIHVwcGVyIDQgYml0cyAqLworCQlyMSA9IGNyY190YWJbY3JjICYgMHhGXTsKKwkJY3JjID0gKGNyYyA+PiA0KSAmIDB4MEZGRjsKKwkJY3JjID0gY3JjIF4gcjEgXiBjcmNfdGFiWyhieXRlID4+IDQpICYgMHhGXTsKKwl9CisJcmV0dXJuIGNyYzsKK30KKworc3RhdGljIGludCAgaXZtX3NldF92YWx1ZSAoY2hhciAqbmFtZSwgY2hhciAqdmFsdWUpCit7CisJY2hhciB0ZW1wYnVmWzI1Nl07CisKKwlpZiAodmFsdWUgIT0gTlVMTCkgeworCQlzcHJpbnRmICh0ZW1wYnVmLCAiJXM9JXMiLCBuYW1lLCB2YWx1ZSk7CisJCXJldHVybiBzZXRfbG9jYWxfdmFyICh0ZW1wYnVmLCAwKTsKKwl9IGVsc2UgeworCQl1bnNldF9sb2NhbF92YXIgKG5hbWUpOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpdm1fZ2V0X3ZhbHVlICh1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4sIGNoYXIgKm5hbWUsIGludCBvZmYsCisJCQkJaW50IGNoZWNrKQoreworCXVuc2lnbmVkIHNob3J0CXZhbDsKKwl1bnNpZ25lZCBjaGFyCXZhbGJ1ZlszMF07CisKKwlpZiAoKGJ1ZltvZmYgKyAwXSAhPSBidWZbb2ZmICsgMl0pICYmCisJICAgIChidWZbb2ZmICsgMl0gIT0gYnVmW29mZiArIDRdKSkgeworCQlwcmludGYgKCIlcyBFcnJvciBjb3JydXB0ZWQgJXNcbiIsIF9fRlVOQ1RJT05fXywgbmFtZSk7CisJCXZhbCA9IC0xOworCX0gZWxzZSB7CisJCXZhbCA9IGJ1ZltvZmYgKyAwXSArIChidWZbb2ZmICsgMV0gPDwgOCk7CisJCWlmICgodmFsID09IDApICYmIChjaGVjayA9PSAxKSkKKwkJCXZhbCA9IC0xOworCX0KKwlzcHJpbnRmICgoY2hhciAqKXZhbGJ1ZiwgIiV4IiwgdmFsKTsKKwlpdm1fc2V0X3ZhbHVlIChuYW1lLCAoY2hhciAqKXZhbGJ1Zik7CisJcmV0dXJuIHZhbDsKK30KKworI2RlZmluZSBJTlZFTlRPUllCTE9DS1NJWkUJMHgxMDAKKyNkZWZpbmUgSU5WRU5UT1JZREFUQUFERFJFU1MJMHgyMQorI2RlZmluZSBJTlZFTlRPUllEQVRBU0laRQkoSU5WRU5UT1JZQkxPQ0tTSVpFIC0gSU5WRU5UT1JZREFUQUFERFJFU1MgLSAzKQorCisjZGVmaW5lIElWTV9QT1NfU0hPUlRfVEVYVAkJMAorI2RlZmluZSBJVk1fUE9TX01BTlVfSUQJCQkxCisjZGVmaW5lIElWTV9QT1NfTUFOVV9TRVJJQUwJCTIKKyNkZWZpbmUgSVZNX1BPU19QQVJUX05VTUJFUgkJMworI2RlZmluZSBJVk1fUE9TX0JVSUxEX1NUQVRFCQk0CisjZGVmaW5lIElWTV9QT1NfU1VQUExJRVJfUEFSVF9OVU1CRVIJNQorI2RlZmluZSBJVk1fUE9TX0RFTElWRVJZX0RBVEUJCTYKKyNkZWZpbmUgSVZNX1BPU19TVVBQTElFUl9CVUlMRF9TVEFURQk3CisjZGVmaW5lIElWTV9QT1NfQ1VTVE9NRVJfSUQJCTgKKyNkZWZpbmUgSVZNX1BPU19DVVNUT01FUl9QUk9EX0lECTkKKyNkZWZpbmUgSVZNX1BPU19ISVNUT1JZCQkJMTAKKyNkZWZpbmUgSVZNX1BPU19TWU1CT0xfT05MWQkJMTEKKworc3RhdGljIGNoYXIgY29udmVydF9jaGFyIChjaGFyIGMpCit7CisJcmV0dXJuIChjIDwgJyAnIHx8IGMgPiAnficpID8gJy4nIDogYzsKK30KKworc3RhdGljIGludCBpdm1fZmluZGludmVudG9yeXN0cmluZyAoaW50IHR5cGUsCisJCQkJCXVuc2lnbmVkIGNoYXIqIGNvbnN0IHN0cmluZywKKwkJCQkJdW5zaWduZWQgbG9uZyBtYXhsZW4sCisJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZikKK3sKKwlpbnQgeGNvZGUgPSAwOworCXVuc2lnbmVkIGxvbmcgY3IgPSAwOworCXVuc2lnbmVkIGxvbmcgYWRkciA9IElOVkVOVE9SWURBVEFBRERSRVNTOworCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7CisJdW5zaWduZWQgbG9uZyBuciA9IHR5cGU7CisJaW50IHN0b3AgPSAwOyAJLyogc3RvcCBvbiBzZW1pY29sb24gKi8KKworCW1lbXNldChzdHJpbmcsICdcMCcsIG1heGxlbik7CisJc3dpdGNoICh0eXBlKSB7CisJCWNhc2UgSVZNX1BPU19TWU1CT0xfT05MWToKKwkJCW5yID0gMDsKKwkJCXN0b3A9IDE7CisJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJbnIgPSB0eXBlOworCQkJc3RvcCA9IDA7CisJfQorCisJLyogTG9vayBmb3IgdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgQ1IuICovCisJd2hpbGUgKChjciAhPSBucikgJiYgKGFkZHIgPCBJTlZFTlRPUllEQVRBU0laRSkpIHsKKwkJaWYgKChidWZbYWRkcl0gPT0gJ1xyJykpIHsKKwkJCWNyKys7CisJCX0KKwkJYWRkcisrOworCX0KKworCS8qIHRoZSBleHBlY3RlZCBudW1iZXIgb2YgQ1Igd2FzIGZvdW5kIHVudGlsIHRoZSBlbmQgb2YgdGhlIElWTQorCSAqICBjb250ZW50IC0tPiBmaWxsIHN0cmluZyAqLworCWlmIChhZGRyIDwgSU5WRU5UT1JZREFUQVNJWkUpIHsKKwkJLyogQ29weSB0aGUgSVZNIHN0cmluZyBpbiB0aGUgY29ycmVzcG9uZGluZyBzdHJpbmcgKi8KKwkJZm9yICg7IChidWZbYWRkcl0gIT0gJ1xyJykJCQkmJgorCQkJKChidWZbYWRkcl0gIT0gJzsnKSB8fCAgKCFzdG9wKSkJJiYKKwkJCShzaXplIDwgKG1heGxlbiAtIDEpCQkJJiYKKwkJCShhZGRyIDwgSU5WRU5UT1JZREFUQVNJWkUpKTsgYWRkcisrKQorCQl7CisJCQlzaXplICs9IHNwcmludGYoKGNoYXIgKilzdHJpbmcgKyBzaXplLCAiJWMiLAorCQkJCQkJY29udmVydF9jaGFyIChidWZbYWRkcl0pKTsKKwkJfQorCisJCS8qIGNvcHkgcGhhc2UgaXMgZG9uZTogY2hlY2sgaWYgZXZlcnl0aGluZyBpcyBvay4gSWYgbm90LAorCQkgKiB0aGUgaW52ZW50b3J5IGRhdGEgaXMgbW9zdCBwcm9iYWJseSBjb3JydXB0ZWQ6IHRlbGwKKwkJICogdGhlIHdvcmxkIHRoZXJlIGlzIGEgcHJvYmxlbSEgKi8KKwkJaWYgKGFkZHIgPT0gSU5WRU5UT1JZREFUQVNJWkUpIHsKKwkJCXhjb2RlID0gLTE7CisJCQlwcmludGYgKCJFcnJvciBlbmQgb2Ygc3RyaW5nIG5vdCBmb3VuZFxuIik7CisJCX0gZWxzZSBpZiAoKHNpemUgPj0gKG1heGxlbiAtIDEpKSAmJgorCQkJICAgKGJ1ZlthZGRyXSAhPSAnXHInKSkgeworCQkJeGNvZGUgPSAtMTsKKwkJCXByaW50ZiAoInN0cmluZyB0b28gbG9uZyB0aWxsIG5leHQgQ1JcbiIpOworCQl9CisJfSBlbHNlIHsKKwkJLyogc29tZSBDUiBhcmUgbWlzc2luZy4uLgorCQkgKiB0aGUgaW52ZW50b3J5IGRhdGEgaXMgbW9zdCBwcm9iYWJseSBjb3JydXB0ZWQgKi8KKwkJeGNvZGUgPSAtMTsKKwkJcHJpbnRmICgibm90IGVub3VnaCBjciBmb3VuZFxuIik7CisJfQorCXJldHVybiB4Y29kZTsKK30KKworI2RlZmluZSBHRVRfU1RSSU5HKG5hbWUsIHdoaWNoLCBsZW4pIFwKKwlpZiAoaXZtX2ZpbmRpbnZlbnRvcnlzdHJpbmcgKHdoaWNoLCB2YWxidWYsIGxlbiwgYnVmKSA9PSAwKSB7IFwKKwkJaXZtX3NldF92YWx1ZSAobmFtZSwgKGNoYXIgKil2YWxidWYpOyBcCisJfQorCitzdGF0aWMgaW50IGl2bV9jaGVja19jcmMgKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGJsb2NrKQoreworCXVuc2lnbmVkIGxvbmcJY3JjOworCXVuc2lnbmVkIGxvbmcJY3JjZWVwcm9tOworCisJY3JjID0gaXZtX2NhbGNfY3JjIChidWYsIENPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTiAtIDIpOworCWNyY2VlcHJvbSA9IChidWZbQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOIC0gMV0gKyBcCisJCQlidWZbQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOIC0gMl0gKiAyNTYpOworCWlmIChjcmMgIT0gY3JjZWVwcm9tKSB7CisJCXByaW50ZiAoIkVycm9yIENSQyBCbG9jazogJWQgRUVwcm9tOiBjYWxjdWxhdGVkOiAlbHggRUVwcm9tOiAlbHhcbiIsCisJCQlibG9jaywgY3JjLCBjcmNlZXByb20pOworCQlyZXR1cm4gLTE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGl2bV9hbmFseXplX2Jsb2NrMiAodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuKQoreworCXVuc2lnbmVkIGNoYXIJdmFsYnVmW0NPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTl07CisJdW5zaWduZWQgbG9uZwljb3VudDsKKworCS8qIElWTV9NYWNBZGRyZXNzICovCisJc3ByaW50ZiAoKGNoYXIgKil2YWxidWYsICIlMDJYOiUwMlg6JTAyWDolMDJYOiUwMlg6JTAyWCIsCisJCQlidWZbMV0sCisJCQlidWZbMl0sCisJCQlidWZbM10sCisJCQlidWZbNF0sCisJCQlidWZbNV0sCisJCQlidWZbNl0pOworCWl2bV9zZXRfdmFsdWUgKCJJVk1fTWFjQWRkcmVzcyIsIChjaGFyICopdmFsYnVmKTsKKwlpZiAoZ2V0ZW52ICgiZXRoYWRkciIpID09IE5VTEwpCisJCXNldGVudiAoKGNoYXIgKikiZXRoYWRkciIsIChjaGFyICopdmFsYnVmKTsKKwkvKiBJVk1fTWFjQ291bnQgKi8KKwljb3VudCA9IChidWZbMTBdIDw8IDI0KSArCisJCSAgIChidWZbMTFdIDw8IDE2KSArCisJCSAgIChidWZbMTJdIDw8IDgpICArCisJCSAgICBidWZbMTNdOworCWlmIChjb3VudCA9PSAweGZmZmZmZmZmKQorCQljb3VudCA9IDE7CisJc3ByaW50ZiAoKGNoYXIgKil2YWxidWYsICIlbHgiLCBjb3VudCk7CisJaXZtX3NldF92YWx1ZSAoIklWTV9NYWNDb3VudCIsIChjaGFyICopdmFsYnVmKTsKKwlyZXR1cm4gMDsKK30KKworaW50IGl2bV9hbmFseXplX2VlcHJvbSAodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuKQoreworCXVuc2lnbmVkIHNob3J0CXZhbDsKKwl1bnNpZ25lZCBjaGFyCXZhbGJ1ZltDT05GSUdfU1lTX0lWTV9FRVBST01fUEFHRV9MRU5dOworCXVuc2lnbmVkIGNoYXIJKnRtcDsKKworCWlmIChpdm1fY2hlY2tfY3JjIChidWYsIDApICE9IDApCisJCXJldHVybiAtMTsKKworCWl2bV9nZXRfdmFsdWUgKGJ1ZiwgQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOLCAiSVZNX0JvYXJkSWQiLCAwLCAxKTsKKwl2YWwgPSBpdm1fZ2V0X3ZhbHVlIChidWYsIENPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTiwgIklWTV9IV0tleSIsIDYsIDEpOworCWlmICh2YWwgIT0gMHhmZmZmKSB7CisJCXNwcmludGYgKChjaGFyICopdmFsYnVmLCAiJXgiLCAoKHZhbCAvMTAwKSAlIDEwKSk7CisJCWl2bV9zZXRfdmFsdWUgKCJJVk1fSFdWYXJpYW50IiwgKGNoYXIgKil2YWxidWYpOworCQlzcHJpbnRmICgoY2hhciAqKXZhbGJ1ZiwgIiV4IiwgKHZhbCAlIDEwMCkpOworCQlpdm1fc2V0X3ZhbHVlICgiSVZNX0hXVmVyc2lvbiIsIChjaGFyICopdmFsYnVmKTsKKwl9CisJaXZtX2dldF92YWx1ZSAoYnVmLCBDT05GSUdfU1lTX0lWTV9FRVBST01fUEFHRV9MRU4sICJJVk1fRnVuY3Rpb25zIiwgMTIsIDApOworCisJR0VUX1NUUklORygiSVZNX1N5bWJvbCIsIElWTV9QT1NfU1lNQk9MX09OTFksIDgpCisJR0VUX1NUUklORygiSVZNX0RldmljZU5hbWUiLCBJVk1fUE9TX1NIT1JUX1RFWFQsIDY0KQorCXRtcCA9ICh1bnNpZ25lZCBjaGFyICopIGdldGVudigiSVZNX0RldmljZU5hbWUiKTsKKwlpZiAodG1wKSB7CisJCWludAlsZW4gPSBzdHJsZW4gKChjaGFyICopdG1wKTsKKwkJaW50CWkgPSAwOworCisJCXdoaWxlIChpIDwgbGVuKSB7CisJCQlpZiAodG1wW2ldID09ICc7JykgeworCQkJCWl2bV9zZXRfdmFsdWUgKCJJVk1fU2hvcnRUZXh0IiwgKGNoYXIgKikmdG1wW2kgKyAxXSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpKys7CisJCX0KKwkJaWYgKGkgPj0gbGVuKQorCQkJaXZtX3NldF92YWx1ZSAoIklWTV9TaG9ydFRleHQiLCBOVUxMKTsKKwl9IGVsc2UgeworCQlpdm1fc2V0X3ZhbHVlICgiSVZNX1Nob3J0VGV4dCIsIE5VTEwpOworCX0KKwlHRVRfU1RSSU5HKCJJVk1fTWFudWZhY3R1cmVySUQiLCBJVk1fUE9TX01BTlVfSUQsIDMyKQorCUdFVF9TVFJJTkcoIklWTV9NYW51ZmFjdHVyZXJTZXJpYWxOdW1iZXIiLCBJVk1fUE9TX01BTlVfU0VSSUFMLCAyMCkKKwlHRVRfU1RSSU5HKCJJVk1fTWFudWZhY3R1cmVyUGFydE51bWJlciIsIElWTV9QT1NfUEFSVF9OVU1CRVIsIDMyKQorCUdFVF9TVFJJTkcoIklWTV9NYW51ZmFjdHVyZXJCdWlsZFN0YXRlIiwgSVZNX1BPU19CVUlMRF9TVEFURSwgMzIpCisJR0VUX1NUUklORygiSVZNX1N1cHBsaWVyUGFydE51bWJlciIsIElWTV9QT1NfU1VQUExJRVJfUEFSVF9OVU1CRVIsIDMyKQorCUdFVF9TVFJJTkcoIklWTV9EZWxpZXZlcnlEYXRlIiwgSVZNX1BPU19ERUxJVkVSWV9EQVRFLCAzMikKKwlHRVRfU1RSSU5HKCJJVk1fU3VwcGxpZXJCdWlsZFN0YXRlIiwgSVZNX1BPU19TVVBQTElFUl9CVUlMRF9TVEFURSwgMzIpCisJR0VUX1NUUklORygiSVZNX0N1c3RvbWVySUQiLCBJVk1fUE9TX0NVU1RPTUVSX0lELCAzMikKKwlHRVRfU1RSSU5HKCJJVk1fQ3VzdG9tZXJQcm9kdWN0SUQiLCBJVk1fUE9TX0NVU1RPTUVSX1BST0RfSUQsIDMyKQorCisJaWYgKGl2bV9jaGVja19jcmMgKCZidWZbQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOICogMl0sIDIpICE9IDApCisJCXJldHVybiAtMjsKKwlpdm1fYW5hbHl6ZV9ibG9jazIgKCZidWZbQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOICogMl0sIENPTkZJR19TWVNfSVZNX0VFUFJPTV9QQUdFX0xFTik7CisKKwlyZXR1cm4gMDsKK30KKworaW50IGl2bV9yZWFkX2VlcHJvbSAodm9pZCkKK3sKKwlJMkNfTVVYX0RFVklDRSAqZGV2ID0gTlVMTDsKKwl1Y2hhciBpMmNfYnVmZmVyW0NPTkZJR19TWVNfSVZNX0VFUFJPTV9NQVhfTEVOXTsKKwl1Y2hhcgkqYnVmOworCXVuc2lnbmVkIGRldl9hZGRyID0gQ09ORklHX1NZU19JVk1fRUVQUk9NX0FEUjsKKworCS8qIEZpcnN0IGluaXQgdGhlIEJ1cywgc2VsZWN0IHRoZSBCdXMgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX0lWTV9CVVMpCisJZGV2ID0gaTJjX211eF9pZGVudF9tdXhzdHJpbmcgKCh1Y2hhciAqKUNPTkZJR19TWVNfSTJDX0lWTV9CVVMpOworI2Vsc2UKKwlidWYgPSAodW5zaWduZWQgY2hhciAqKSBnZXRlbnYgKCJFRXByb21faXZtIik7CisJaWYgKGJ1ZiAhPSBOVUxMKQorCQlkZXYgPSBpMmNfbXV4X2lkZW50X211eHN0cmluZyAoYnVmKTsKKyNlbmRpZgorCWlmIChkZXYgPT0gTlVMTCkgeworCQlwcmludGYgKCJFcnJvciBjb3VsZG50IGFkZCBCdXMgZm9yIElWTVxuIik7CisJCXJldHVybiAtMTsKKwl9CisJaTJjX3NldF9idXNfbnVtIChkZXYtPmJ1c2lkKTsKKworCWJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopIGdldGVudiAoIkVFcHJvbV9pdm1fYWRkciIpOworCWlmIChidWYgIT0gTlVMTCkKKwkJZGV2X2FkZHIgPSBzaW1wbGVfc3RydG91bCAoKGNoYXIgKilidWYsIE5VTEwsIDE2KTsKKworCWlmIChlZXByb21fcmVhZCAoZGV2X2FkZHIsIDAsIGkyY19idWZmZXIsIENPTkZJR19TWVNfSVZNX0VFUFJPTV9NQVhfTEVOKSAhPSAwKSB7CisJCXByaW50ZiAoIkVycm9yIHJlYWRpbmcgRUVwcm9tXG4iKTsKKwkJcmV0dXJuIC0yOworCX0KKworCXJldHVybiBpdm1fYW5hbHl6ZV9lZXByb20gKGkyY19idWZmZXIsIENPTkZJR19TWVNfSVZNX0VFUFJPTV9NQVhfTEVOKTsKK30KKworI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRCkKKyNkZWZpbmUgREVMQVlfQUJPUlRfU0VRCQk2MgorI2RlZmluZSBERUxBWV9IQUxGX1BFUklPRAkoNTAwIC8gKENPTkZJR19TWVNfSTJDX1NQRUVEIC8gMTAwMCkpCisKKyNpZiBkZWZpbmVkKENPTkZJR19NR0NPR0UpCisjZGVmaW5lIFNEQV9NQVNLCTB4MDAwMTAwMDAKKyNkZWZpbmUgU0NMX01BU0sJMHgwMDAyMDAwMAorc3RhdGljIHZvaWQgc2V0X3BpbiAoaW50IHN0YXRlLCB1bnNpZ25lZCBsb25nIG1hc2spCit7CisJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiwgMyk7CisKKwlpZiAoc3RhdGUpCisJCWlvcC0+cGRhdCB8PSAobWFzayk7CisJZWxzZQorCQlpb3AtPnBkYXQgJj0gfihtYXNrKTsKKworCWlvcC0+cGRpciB8PSAobWFzayk7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X3BpbiAodW5zaWduZWQgbG9uZyBtYXNrKQoreworCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIsIDMpOworCisJaW9wLT5wZGlyICY9IH4obWFzayk7CisJcmV0dXJuICgwICE9IChpb3AtPnBkYXQgJiAobWFzaykpKTsKK30KKworc3RhdGljIHZvaWQgc2V0X3NkYSAoaW50IHN0YXRlKQoreworCXNldF9waW4gKHN0YXRlLCBTREFfTUFTSyk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9zY2wgKGludCBzdGF0ZSkKK3sKKwlzZXRfcGluIChzdGF0ZSwgU0NMX01BU0spOworfQorCitzdGF0aWMgaW50IGdldF9zZGEgKHZvaWQpCit7CisJcmV0dXJuIGdldF9waW4gKFNEQV9NQVNLKTsKK30KKworc3RhdGljIGludCBnZXRfc2NsICh2b2lkKQoreworCXJldHVybiBnZXRfcGluIChTQ0xfTUFTSyk7Cit9CisKKyNpZiBkZWZpbmVkKENPTkZJR19IQVJEX0kyQykKK3N0YXRpYyB2b2lkIHNldHBvcnRzIChpbnQgZ3BpbykKK3sKKwl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIgKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAzKTsKKworCWlmIChncGlvKSB7CisJCWlvcC0+cHBhciAmPSB+KFNEQV9NQVNLIHwgU0NMX01BU0spOworCQlpb3AtPnBvZHIgJj0gfihTREFfTUFTSyB8IFNDTF9NQVNLKTsKKwl9IGVsc2UgeworCQlpb3AtPnBwYXIgfD0gKFNEQV9NQVNLIHwgU0NMX01BU0spOworCQlpb3AtPnBkaXIgJj0gfihTREFfTUFTSyB8IFNDTF9NQVNLKTsKKwkJaW9wLT5wb2RyIHw9IChTREFfTUFTSyB8IFNDTF9NQVNLKTsKKwl9Cit9CisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfTUdTVVZEKQorc3RhdGljIHZvaWQgc2V0X3NkYSAoaW50IHN0YXRlKQoreworCUkyQ19TREEoc3RhdGUpOworfQorCitzdGF0aWMgdm9pZCBzZXRfc2NsIChpbnQgc3RhdGUpCit7CisJSTJDX1NDTChzdGF0ZSk7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X3NkYSAodm9pZCkKK3sKKwlyZXR1cm4gSTJDX1JFQUQ7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X3NjbCAodm9pZCkKK3sKKwlpbnQJdmFsOworCisJKih1bnNpZ25lZCBzaG9ydCAqKShJMkNfQkFTRV9ESVIpICY9ICB+U0NMX0NPTkY7CisJdWRlbGF5ICgxKTsKKwl2YWwgPSAqKHVuc2lnbmVkIGNoYXIgKikoSTJDX0JBU0VfUE9SVCk7CisKKwlyZXR1cm4gKCh2YWwgJiBTQ0xfQklUKSA9PSBTQ0xfQklUKTsKK30KKworI2VuZGlmCisKK3N0YXRpYyB2b2lkIHdyaXRlU3RhcnRTZXEgKHZvaWQpCit7CisJc2V0X3NkYSAoMSk7CisJdWRlbGF5IChERUxBWV9IQUxGX1BFUklPRCk7CisJc2V0X3NjbCAoMSk7CisJdWRlbGF5IChERUxBWV9IQUxGX1BFUklPRCk7CisJc2V0X3NkYSAoMCk7CisJdWRlbGF5IChERUxBWV9IQUxGX1BFUklPRCk7CisJc2V0X3NjbCAoMCk7CisJdWRlbGF5IChERUxBWV9IQUxGX1BFUklPRCk7Cit9CisKKy8qIEkyQyBpcyBhIHN5bmNocm9ub3VzIHByb3RvY29sIGFuZCByZXNldHMgb2YgdGhlIHByb2Nlc3NvciBpbiB0aGUgbWlkZGxlCisgICBvZiBhbiBhY2Nlc3MgY2FuIGJsb2NrIHRoZSBJMkMgQnVzIHVudGlsIGEgcG93ZXJkb3duIG9mIHRoZSBmdWxsIHVuaXQgaXMKKyAgIGRvbmUuIFRoaXMgZnVuY3Rpb24gdG9nZ2xlcyB0aGUgU0NMIHVudGlsIHRoZSBTQ0wgYW5kIFNDQSBsaW5lIGFyZQorICAgcmVsZWFzZWQsIGJ1dCBtYXguIDE2IHRpbWVzLCBhZnRlciB0aGlzIGEgSTJDIHN0YXJ0LXNlcXVlbmNlIGlzIHNlbnQuCisgICBUaGlzIEkyQyBEZWJsb2NraW5nIG1lY2hhbmlzbSB3YXMgZGV2ZWxvcGVkIGJ5IEtleW1pbGUgaW4gYXNzb2NpYXRpb24KKyAgIHdpdGggQW5hdGVjaCBhbmQgQXRtZWwgaW4gMTk5OC4KKyAqLworc3RhdGljIGludCBpMmNfbWFrZV9hYm9ydCAodm9pZCkKK3sKKwlpbnQJc2NsX3N0YXRlID0gMDsKKwlpbnQJc2RhX3N0YXRlID0gMDsKKwlpbnQJaSA9IDA7CisJaW50CXJldCA9IDA7CisKKwlpZiAoIWdldF9zZGEgKCkpIHsKKwkJcmV0ID0gLTE7CisJCXdoaWxlIChpIDwgMTYpIHsKKwkJCWkrKzsKKwkJCXNldF9zY2wgKDApOworCQkJdWRlbGF5IChERUxBWV9BQk9SVF9TRVEpOworCQkJc2V0X3NjbCAoMSk7CisJCQl1ZGVsYXkgKERFTEFZX0FCT1JUX1NFUSk7CisJCQlzY2xfc3RhdGUgPSBnZXRfc2NsICgpOworCQkJc2RhX3N0YXRlID0gZ2V0X3NkYSAoKTsKKwkJCWlmIChzY2xfc3RhdGUgJiYgc2RhX3N0YXRlKSB7CisJCQkJcmV0ID0gMDsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKwlpZiAocmV0ID09IDApIHsKKwkJZm9yIChpID0wOyBpIDwgNTsgaSsrKSB7CisJCQl3cml0ZVN0YXJ0U2VxICgpOworCQl9CisJfQorCWdldF9zZGEgKCk7CisJcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBpMmNfaW5pdF9ib2FyZCAtIHJlc2V0IGkyYyBidXMuIFdoZW4gdGhlIGJvYXJkIGlzIHBvd2VyY3ljbGVkIGR1cmluZyBhCisgKiBidXMgdHJhbnNmZXIgaXQgbWlnaHQgaGFuZzsgZm9yIGRldGFpbHMgc2VlIGRvYy9JMkNfRWRnZV9Db25kaXRpb25zLgorICovCit2b2lkIGkyY19pbml0X2JvYXJkKHZvaWQpCit7CisjaWYgZGVmaW5lZChDT05GSUdfSEFSRF9JMkMpCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CisJdm9sYXRpbGUgaTJjODI2MF90ICppMmMJPSAoaTJjODI2MF90ICopJmltbWFwLT5pbV9pMmM7CisKKwkvKiBkaXNhYmxlIEkyQyBjb250cm9sbGVyIGZpcnN0LCBvdGhlcndoaXNlIGl0IHRoaW5rcyB3ZSB3YW50IHRvICAgICovCisJLyogdGFsayB0byB0aGUgc2xhdmUgcG9ydC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCWkyYy0+aTJjX2kybW9kICY9IH4weDAxOworCisJLyogU2V0IHRoZSBQb3J0UGlucyB0byBHUElPICovCisJc2V0cG9ydHMgKDEpOworI2VuZGlmCisKKwkvKiBOb3cgcnVuIHRoZSBBYm9ydFNlcXVlbmNlKCkgKi8KKwlpMmNfbWFrZV9hYm9ydCAoKTsKKworI2lmIGRlZmluZWQoQ09ORklHX0hBUkRfSTJDKQorCS8qIFNldCB0aGUgUG9ydFBpbnMgYmFjayB0byB1c2UgZm9yIEkyQyAqLworCXNldHBvcnRzICgwKTsKKyNlbmRpZgorfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKENPTkZJR19PRl9CT0FSRF9TRVRVUCkgJiYgZGVmaW5lZChDT05GSUdfT0ZfTElCRkRUKQoraW50IGZkdF9zZXRfbm9kZV9hbmRfdmFsdWUgKHZvaWQgKmJsb2IsCisJCQkJY2hhciAqbm9kZW5hbWUsCisJCQkJY2hhciAqcmVnbmFtZSwKKwkJCQl2b2lkICp2YXIsCisJCQkJaW50IHNpemUpCit7CisJaW50IHJldCA9IDA7CisJaW50IG5vZGVvZmZzZXQgPSAwOworCisJbm9kZW9mZnNldCA9IGZkdF9wYXRoX29mZnNldCAoYmxvYiwgbm9kZW5hbWUpOworCWlmIChub2Rlb2Zmc2V0ID49IDApIHsKKwkJcmV0ID0gZmR0X3NldHByb3AgKGJsb2IsIG5vZGVvZmZzZXQsIHJlZ25hbWUsIHZhciwKKwkJCQkJc2l6ZSk7CisJCWlmIChyZXQgPCAwKQorCQkJcHJpbnRmKCJmdF9ibG9iX3VwZGF0ZSgpOiBjYW5ub3Qgc2V0ICVzLyVzICIKKwkJCQkicHJvcGVydHkgZXJyOiVzXG4iLCBub2RlbmFtZSwgcmVnbmFtZSwKKwkJCQlmZHRfc3RyZXJyb3IgKHJldCkpOworCX0gZWxzZSB7CisJCXByaW50ZigiZnRfYmxvYl91cGRhdGUoKTogY2Fubm90IGZpbmQgJXMgbm9kZSAiCisJCQkiZXJyOiVzXG4iLCBub2RlbmFtZSwgZmR0X3N0cmVycm9yIChub2Rlb2Zmc2V0KSk7CisJfQorCXJldHVybiByZXQ7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL21nY29nZS9NYWtlZmlsZSBiL2JvYXJkL2tleW1pbGUvbWdjb2dlL01ha2VmaWxlCnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBmcm9tIGJvYXJkL21nY29nZS9NYWtlZmlsZQpyZW5hbWUgdG8gYm9hcmQva2V5bWlsZS9tZ2NvZ2UvTWFrZWZpbGUKaW5kZXggZDQwODdjYy4uMGNhZDgyMSAxMDA2NDQKLS0tIGEvYm9hcmQvbWdjb2dlL01ha2VmaWxlCisrKyBiL2JvYXJkL2tleW1pbGUvbWdjb2dlL01ha2VmaWxlCkBAIC0yMiwxMCArMjIsMTMgQEAKICMKIAogaW5jbHVkZSAkKFRPUERJUikvY29uZmlnLm1rCitpZm5lcSAoJChPQkpUUkVFKSwkKFNSQ1RSRUUpKQorJChzaGVsbCBta2RpciAtcCAkKG9iaikuLi9jb21tb24pCitlbmRpZgogCiBMSUIJPSAkKG9iailsaWIkKEJPQVJEKS5hCiAKLUNPQkpTCTo9ICQoQk9BUkQpLm8KK0NPQkpTCTo9ICQoQk9BUkQpLm8gLi4vY29tbW9uL2NvbW1vbi5vCiAKIFNSQ1MJOj0gJChTT0JKUzoubz0uUykgJChDT0JKUzoubz0uYykKIE9CSlMJOj0gJChhZGRwcmVmaXggJChvYmopLCQoQ09CSlMpKQpkaWZmIC0tZ2l0IGEvYm9hcmQvbWdjb2dlL2NvbmZpZy5tayBiL2JvYXJkL2tleW1pbGUvbWdjb2dlL2NvbmZpZy5tawpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gYm9hcmQvbWdjb2dlL2NvbmZpZy5tawpyZW5hbWUgdG8gYm9hcmQva2V5bWlsZS9tZ2NvZ2UvY29uZmlnLm1rCmRpZmYgLS1naXQgYS9ib2FyZC9tZ2NvZ2UvbWdjb2dlLmMgYi9ib2FyZC9rZXltaWxlL21nY29nZS9tZ2NvZ2UuYwpzaW1pbGFyaXR5IGluZGV4IDgzJQpyZW5hbWUgZnJvbSBib2FyZC9tZ2NvZ2UvbWdjb2dlLmMKcmVuYW1lIHRvIGJvYXJkL2tleW1pbGUvbWdjb2dlL21nY29nZS5jCmluZGV4IDUxYjZkYzYuLjZkZGE5MjAgMTAwNjQ0Ci0tLSBhL2JvYXJkL21nY29nZS9tZ2NvZ2UuYworKysgYi9ib2FyZC9rZXltaWxlL21nY29nZS9tZ2NvZ2UuYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAoQykgQ29weXJpZ2h0IDIwMDcKKyAqIChDKSBDb3B5cmlnaHQgMjAwNyAtIDIwMDgKICAqIEhlaWtvIFNjaG9jaGVyLCBERU5YIFNvZnR3YXJlIEVuZ2luZWVyaW5nLCBoc0BkZW54LmRlLgogICoKICAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCkBAIC0yNCwxMSArMjQsMTggQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4MjYwLmg+CiAjaW5jbHVkZSA8aW9wb3J0cy5oPgorI2luY2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaWYgZGVmaW5lZChDT05GSUdfT0ZfQk9BUkRfU0VUVVApICYmIGRlZmluZWQoQ09ORklHX09GX0xJQkZEVCkKICNpbmNsdWRlIDxsaWJmZHQuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChDT05GSUdfSEFSRF9JMkMpIHx8IGRlZmluZWQoQ09ORklHX1NPRlRfSTJDKQorI2luY2x1ZGUgPGkyYy5oPgorI2VuZGlmCisKK2V4dGVybiBpbnQgaXZtX3JlYWRfZWVwcm9tICh2b2lkKTsKIC8qCiAgKiBJL08gUG9ydCBjb25maWd1cmF0aW9uIHRhYmxlCiAgKgpAQCAtMTYzLDggKzE3MCwxMyBAQAogCS8qIFBEMTggKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEQxOCAgICAgICAgICAgICovCiAJLyogUEQxNyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQRDE3ICAgICAgICAgICAgKi8KIAkvKiBQRDE2ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBEMTYgICAgICAgICAgICAqLwotCS8qIFBEMTUgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEQxNSAgICAgICAgICAgICovCi0JLyogUEQxNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQRDE0ICAgICAgICAgICAgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19IQVJEX0kyQykKKwkvKiBQRDE1ICovIHsgMSwgICAgICAgICAgMSwgICAxLCAgIDAsICAgMSwgICAwIH0sIC8qIEkyQyBTREEgICAgICAgICAqLworCS8qIFBEMTQgKi8geyAxLCAgICAgICAgICAxLCAgIDEsICAgMCwgICAxLCAgIDAgfSwgLyogSTJDIFNDTCAgICAgICAgICovCisjZWxzZQorCS8qIFBEMTUgKi8geyAxLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAxLCAgIDEgfSwgLyogUEQxNSAgICAgICAgICAgICovCisJLyogUEQxNCAqLyB7IDEsICAgICAgICAgIDAsICAgMCwgICAxLCAgIDEsICAgMSB9LCAvKiBQRDE0ICAgICAgICAgICAgKi8KKyNlbmRpZgogCS8qIFBEMTMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEQxMyAgICAgICAgICAgICovCiAJLyogUEQxMiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQRDEyICAgICAgICAgICAgKi8KIAkvKiBQRDExICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBEMTEgICAgICAgICAgICAqLwpAQCAtMjI3LDcgKzIzOSw3IEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtMjM4LDMzICsyNTAsMzMgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKChsb25nICopYmFzZSwgbWF4c2l6ZSk7CisJc2l6ZSA9IGdldF9yYW1fc2l6ZSAoKGxvbmcgKiliYXNlLCBtYXhzaXplKTsKIAkqb3J4X3B0ciA9IG9yeCB8IH4oc2l6ZSAtIDEpOwogCiAJcmV0dXJuIChzaXplKTsKIH0KIAotcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCitwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbG9uZyBwc2l6ZTsKIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogNjB4IFNEUkFNIHNldHVwOgogCSAqLwotCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SLCBDRkdfT1IxLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SLCBDT05GSUdfU1lTX09SMSwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlpY2FjaGVfZW5hYmxlICgpOwogCkBAIC0yNzMsNyArMjg1LDcgQEAKIAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKLQlwdXRzKCJCb2FyZDogbWdjb2dlXG4iKTsKKwlwdXRzICgiQm9hcmQ6IG1nY29nZVxuIik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTI4MSw4MCArMjkzLDU3IEBACiAvKgogICogRWFybHkgYm9hcmQgaW5pdGFsaXphdGlvbi4KICAqLwotaW50IGJvYXJkX2Vhcmx5X2luaXRfcih2b2lkKQoraW50IGJvYXJkX2Vhcmx5X2luaXRfciAodm9pZCkKIHsKIAkvKiBzZXR1cCB0aGUgVVBJT3ggKi8KLQkqKGNoYXIgKikoQ0ZHX1BJR0dZX0JBU0UgKyAweDAyKSA9IDB4YzA7Ci0JKihjaGFyICopKENGR19QSUdHWV9CQVNFICsgMHgwMykgPSAweDE1OworCW91dF84KCh1OCAqKShDT05GSUdfU1lTX1BJR0dZX0JBU0UgKyAweDAyKSwgMHhjMCk7CisJb3V0XzgoKHU4ICopKENPTkZJR19TWVNfUElHR1lfQkFTRSArIDB4MDMpLCAweDE1KTsKIAlyZXR1cm4gMDsKIH0KIAoraW50IGh1c2hfaW5pdF92YXIgKHZvaWQpCit7CisJaXZtX3JlYWRfZWVwcm9tICgpOworCXJldHVybiAwOworfQorCiAjaWYgZGVmaW5lZChDT05GSUdfT0ZfQk9BUkRfU0VUVVApICYmIGRlZmluZWQoQ09ORklHX09GX0xJQkZEVCkKK2V4dGVybiBpbnQgZmR0X3NldF9ub2RlX2FuZF92YWx1ZSAodm9pZCAqYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbm9kZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnJlZ25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnZhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUpOworCiAvKgogICogdXBkYXRlICJtZW1vcnkiIHByb3BlcnR5IGluIHRoZSBibG9iCiAgKi8KLXZvaWQgZnRfYmxvYl91cGRhdGUodm9pZCAqYmxvYiwgYmRfdCAqYmQpCit2b2lkIGZ0X2Jsb2JfdXBkYXRlICh2b2lkICpibG9iLCBiZF90ICpiZCkKIHsKLQlpbnQgcmV0LCBub2Rlb2Zmc2V0ID0gMDsKIAl1bG9uZyBtZW1vcnlfZGF0YVsyXSA9IHswfTsKIAl1bG9uZyBmbGFzaF9kYXRhWzhdID0gezB9OwogCi0JbWVtb3J5X2RhdGFbMF0gPSBjcHVfdG9fYmUzMihiZC0+YmlfbWVtc3RhcnQpOwotCW1lbW9yeV9kYXRhWzFdID0gY3B1X3RvX2JlMzIoYmQtPmJpX21lbXNpemUpOworCW1lbW9yeV9kYXRhWzBdID0gY3B1X3RvX2JlMzIgKGJkLT5iaV9tZW1zdGFydCk7CisJbWVtb3J5X2RhdGFbMV0gPSBjcHVfdG9fYmUzMiAoYmQtPmJpX21lbXNpemUpOworCWZkdF9zZXRfbm9kZV9hbmRfdmFsdWUgKGJsb2IsICIvbWVtb3J5IiwgInJlZyIsIG1lbW9yeV9kYXRhLAorCQkJCXNpemVvZiAobWVtb3J5X2RhdGEpKTsKIAotCW5vZGVvZmZzZXQgPSBmZHRfcGF0aF9vZmZzZXQgKGJsb2IsICIvbWVtb3J5Iik7Ci0JaWYgKG5vZGVvZmZzZXQgPj0gMCkgewotCQlyZXQgPSBmZHRfc2V0cHJvcChibG9iLCBub2Rlb2Zmc2V0LCAicmVnIiwgbWVtb3J5X2RhdGEsCi0JCQkJCXNpemVvZihtZW1vcnlfZGF0YSkpOwotCWlmIChyZXQgPCAwKQotCQlwcmludGYoImZ0X2Jsb2JfdXBkYXRlKCk6IGNhbm5vdCBzZXQgL21lbW9yeS9yZWcgIgotCQkJInByb3BlcnR5IGVycjolc1xuIiwgZmR0X3N0cmVycm9yKHJldCkpOwotCX0KLQllbHNlIHsKLQkJLyogbWVtb3J5IG5vZGUgaXMgcmVxdWlyZWQgaW4gZHRzICovCi0JCXByaW50ZigiZnRfYmxvYl91cGRhdGUoKTogY2Fubm90IGZpbmQgL21lbW9yeSBub2RlICIKLQkJImVycjolc1xuIiwgZmR0X3N0cmVycm9yKG5vZGVvZmZzZXQpKTsKLQl9CiAJLyogdXBkYXRlIEZsYXNoIGFkZHIsIHNpemUgKi8KLQlmbGFzaF9kYXRhWzJdID0gY3B1X3RvX2JlMzIoQ0ZHX0ZMQVNIX0JBU0UpOwotCWZsYXNoX2RhdGFbM10gPSBjcHVfdG9fYmUzMihDRkdfRkxBU0hfU0laRSk7Ci0JZmxhc2hfZGF0YVs0XSA9IGNwdV90b19iZTMyKDEpOwotCWZsYXNoX2RhdGFbNV0gPSBjcHVfdG9fYmUzMigwKTsKLQlmbGFzaF9kYXRhWzZdID0gY3B1X3RvX2JlMzIoQ0ZHX0ZMQVNIX0JBU0VfMSk7Ci0JZmxhc2hfZGF0YVs3XSA9IGNwdV90b19iZTMyKENGR19GTEFTSF9TSVpFXzEpOwotCW5vZGVvZmZzZXQgPSBmZHRfcGF0aF9vZmZzZXQgKGJsb2IsICIvbG9jYWxidXMiKTsKLQlpZiAobm9kZW9mZnNldCA+PSAwKSB7Ci0JCXJldCA9IGZkdF9zZXRwcm9wKGJsb2IsIG5vZGVvZmZzZXQsICJyYW5nZXMiLCBmbGFzaF9kYXRhLAotCQkJCQlzaXplb2YoZmxhc2hfZGF0YSkpOwotCWlmIChyZXQgPCAwKQotCQlwcmludGYoImZ0X2Jsb2JfdXBkYXRlKCk6IGNhbm5vdCBzZXQgL2xvY2FsYnVzL3JhbmdlcyAiCi0JCQkicHJvcGVydHkgZXJyOiVzXG4iLCBmZHRfc3RyZXJyb3IocmV0KSk7Ci0JfQotCWVsc2UgewotCQkvKiBtZW1vcnkgbm9kZSBpcyByZXF1aXJlZCBpbiBkdHMgKi8KLQkJcHJpbnRmKCJmdF9ibG9iX3VwZGF0ZSgpOiBjYW5ub3QgZmluZCAvbG9jYWxidXMgbm9kZSAiCi0JCSJlcnI6JXNcbiIsIGZkdF9zdHJlcnJvcihub2Rlb2Zmc2V0KSk7Ci0JfQotCS8qIE1BQyBBZHJlc3NlICovCi0Jbm9kZW9mZnNldCA9IGZkdF9wYXRoX29mZnNldCAoYmxvYiwgIi9zb2MvY3BtL2V0aGVybmV0Iik7Ci0JaWYgKG5vZGVvZmZzZXQgPj0gMCkgewotCQlyZXQgPSBmZHRfc2V0cHJvcChibG9iLCBub2Rlb2Zmc2V0LCAibWFjLWFkZHJlc3MiLCBiZC0+YmlfZW5ldGFkZHIsCi0JCQkJCXNpemVvZih1Y2hhcikgKiA2KTsKLQlpZiAocmV0IDwgMCkKLQkJcHJpbnRmKCJmdF9ibG9iX3VwZGF0ZSgpOiBjYW5ub3Qgc2V0IC9zb2MvY3BtL2V0aGVybmV0L21hYy1hZGRyZXNzICIKLQkJCSJwcm9wZXJ0eSBlcnI6JXNcbiIsIGZkdF9zdHJlcnJvcihyZXQpKTsKLQl9Ci0JZWxzZSB7Ci0JCS8qIG1lbW9yeSBub2RlIGlzIHJlcXVpcmVkIGluIGR0cyAqLwotCQlwcmludGYoImZ0X2Jsb2JfdXBkYXRlKCk6IGNhbm5vdCBmaW5kIC9zb2MvY3BtL2V0aGVybmV0IG5vZGUgIgotCQkiZXJyOiVzXG4iLCBmZHRfc3RyZXJyb3Iobm9kZW9mZnNldCkpOwotCX0KLQorCWZsYXNoX2RhdGFbMl0gPSBjcHVfdG9fYmUzMiAoQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKKwlmbGFzaF9kYXRhWzNdID0gY3B1X3RvX2JlMzIgKENPTkZJR19TWVNfRkxBU0hfU0laRSk7CisJZmxhc2hfZGF0YVs0XSA9IGNwdV90b19iZTMyICg1KTsKKwlmbGFzaF9kYXRhWzVdID0gY3B1X3RvX2JlMzIgKDApOworCWZsYXNoX2RhdGFbNl0gPSBjcHVfdG9fYmUzMiAoQ09ORklHX1NZU19GTEFTSF9CQVNFXzEpOworCWZsYXNoX2RhdGFbN10gPSBjcHVfdG9fYmUzMiAoQ09ORklHX1NZU19GTEFTSF9TSVpFXzEpOworCWZkdF9zZXRfbm9kZV9hbmRfdmFsdWUgKGJsb2IsICIvbG9jYWxidXMiLCAicmFuZ2VzIiwgZmxhc2hfZGF0YSwKKwkJCQlzaXplb2YgKGZsYXNoX2RhdGEpKTsKKwkvKiBNQUMgYWRkciAqLworCWZkdF9zZXRfbm9kZV9hbmRfdmFsdWUgKGJsb2IsICIvc29jL2NwbS9ldGhlcm5ldCIsICJtYWMtYWRkcmVzcyIsCisJCQkJYmQtPmJpX2VuZXRhZGRyLCBzaXplb2YgKHU4KSAqIDYpOwogfQogCi12b2lkIGZ0X2JvYXJkX3NldHVwKHZvaWQgKmJsb2IsIGJkX3QgKmJkKQordm9pZCBmdF9ib2FyZF9zZXR1cCAodm9pZCAqYmxvYiwgYmRfdCAqYmQpCiB7Ci0JZnRfY3B1X3NldHVwKCBibG9iLCBiZCk7Ci0JZnRfYmxvYl91cGRhdGUoYmxvYiwgYmQpOworCWZ0X2NwdV9zZXR1cCAoYmxvYiwgYmQpOworCWZ0X2Jsb2JfdXBkYXRlIChibG9iLCBiZCk7CiB9CiAjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfT0ZfQk9BUkRfU0VUVVApICYmIGRlZmluZWQoQ09ORklHX09GX0xJQkZEVCkgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL21nc3V2ZC9NYWtlZmlsZSBiL2JvYXJkL2tleW1pbGUvbWdzdXZkL01ha2VmaWxlCnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBmcm9tIGJvYXJkL21nc3V2ZC9NYWtlZmlsZQpyZW5hbWUgdG8gYm9hcmQva2V5bWlsZS9tZ3N1dmQvTWFrZWZpbGUKaW5kZXggYWYwZDQwMC4uYjIxNDVmOSAxMDA2NDQKLS0tIGEvYm9hcmQvbWdzdXZkL01ha2VmaWxlCisrKyBiL2JvYXJkL2tleW1pbGUvbWdzdXZkL01ha2VmaWxlCkBAIC0yMiwxMCArMjIsMTMgQEAKICMKIAogaW5jbHVkZSAkKFRPUERJUikvY29uZmlnLm1rCitpZm5lcSAoJChPQkpUUkVFKSwkKFNSQ1RSRUUpKQorJChzaGVsbCBta2RpciAtcCAkKG9iaikuLi9jb21tb24pCitlbmRpZgogCiBMSUIJPSAkKG9iailsaWIkKEJPQVJEKS5hCiAKLUNPQkpTCT0gJChCT0FSRCkubworQ09CSlMJPSAkKEJPQVJEKS5vIC4uL2NvbW1vbi9jb21tb24ubwogCiBTUkNTCTo9ICQoU09CSlM6Lm89LlMpICQoQ09CSlM6Lm89LmMpCiBPQkpTCTo9ICQoYWRkcHJlZml4ICQob2JqKSwkKENPQkpTKSkKZGlmZiAtLWdpdCBhL2JvYXJkL21nc3V2ZC9jb25maWcubWsgYi9ib2FyZC9rZXltaWxlL21nc3V2ZC9jb25maWcubWsKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGJvYXJkL21nc3V2ZC9jb25maWcubWsKcmVuYW1lIHRvIGJvYXJkL2tleW1pbGUvbWdzdXZkL2NvbmZpZy5tawpkaWZmIC0tZ2l0IGEvYm9hcmQvbWdzdXZkL21nc3V2ZC5jIGIvYm9hcmQva2V5bWlsZS9tZ3N1dmQvbWdzdXZkLmMKc2ltaWxhcml0eSBpbmRleCA2MiUKcmVuYW1lIGZyb20gYm9hcmQvbWdzdXZkL21nc3V2ZC5jCnJlbmFtZSB0byBib2FyZC9rZXltaWxlL21nc3V2ZC9tZ3N1dmQuYwppbmRleCBjNTFlYTdlLi4wZmQyOGRhIDEwMDY0NAotLS0gYS9ib2FyZC9tZ3N1dmQvbWdzdXZkLmMKKysrIGIvYm9hcmQva2V5bWlsZS9tZ3N1dmQvbWdzdXZkLmMKQEAgLTIwLDE4ICsyMCwxNiBAQAogICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKICAqIE1BIDAyMTExLTEzMDcgVVNBCiAgKi8KLQotI2lmIDAKLSNkZWZpbmUgREVCVUcKLSNlbmRpZgotCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CiAKICNpZiBkZWZpbmVkKENPTkZJR19PRl9CT0FSRF9TRVRVUCkgJiYgZGVmaW5lZChDT05GSUdfT0ZfTElCRkRUKQogI2luY2x1ZGUgPGxpYmZkdC5oPgogI2VuZGlmCiAKK2V4dGVybiBpbnQgaXZtX3JlYWRfZWVwcm9tICh2b2lkKTsKKwogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKIGNvbnN0IHVpbnQgc2RyYW1fdGFibGVbXSA9CkBAIC02OCw3ICs2Niw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOwogCkBAIC04MSw3ICs3OSw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCS8qCiAJICogVGhlIGZvbGxvd2luZyB2YWx1ZSBpcyB1c2VkIGFzIGFuIGFkZHJlc3MgKGkuZS4gb3Bjb2RlKSBmb3IKQEAgLTk2LDE3ICs5NCwxNyBAQAogCSAqICAgICAgIHwgICstLS0tLS0tLS0tLSBPcGVyYXRpbmcgTW9kZSA9IFN0YW5kYXJkCiAJICogICAgICAgKy0tLS0tLS0tLS0tLS0tIFdyaXRlIEJ1cnN0IE1vZGUgPSBQcm9ncmFtbWVkIEJ1cnN0IExlbmd0aAogCSAqLwotCW1lbWN0bC0+bWVtY19tYXIgPSBDRkdfTUFSOworCW1lbWN0bC0+bWVtY19tYXIgPSBDT05GSUdfU1lTX01BUjsKIAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgYmFua3MgMSB0byB0aGUgU0RSQU0gYmFua3MgMSBhdAogCSAqIHByZWxpbWluYXJ5IGFkZHJlc3NlcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUJNUiAmICh+KE1CTVJfUFRCRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYm1yID0gQ09ORklHX1NZU19NQk1SICYgKH4oTUJNUl9QVEJFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAKQEAgLTE0MCw4OCArMTM4LDY3IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yKHZvaWQpCiB7CiAJLyogc2V0dXAgdGhlIFVQSU94ICovCi0JKihjaGFyICopKENGR19QSUdHWV9CQVNFICsgMHgwMikgPSAweGMwOwotCSooY2hhciAqKShDRkdfUElHR1lfQkFTRSArIDB4MDMpID0gMHgzNTsKKwlvdXRfOCgodTggKikoQ09ORklHX1NZU19QSUdHWV9CQVNFICsgMHgwMiksIDB4YzApOworCW91dF84KCh1OCAqKShDT05GSUdfU1lTX1BJR0dZX0JBU0UgKyAweDAzKSwgMHgzNSk7CiAJcmV0dXJuIDA7CiB9CiAKK2ludCBodXNoX2luaXRfdmFyICh2b2lkKQoreworCWl2bV9yZWFkX2VlcHJvbSAoKTsKKwlyZXR1cm4gMDsKK30KKwogI2lmIGRlZmluZWQoQ09ORklHX09GX0JPQVJEX1NFVFVQKSAmJiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpCitleHRlcm4gaW50IGZkdF9zZXRfbm9kZV9hbmRfdmFsdWUgKHZvaWQgKmJsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5vZGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpyZWduYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp2YXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplKTsKKwogLyoKICAqIHVwZGF0ZSAibWVtb3J5IiBwcm9wZXJ0eSBpbiB0aGUgYmxvYgogICovCi12b2lkIGZ0X2Jsb2JfdXBkYXRlKHZvaWQgKmJsb2IsIGJkX3QgKmJkKQordm9pZCBmdF9ibG9iX3VwZGF0ZSAodm9pZCAqYmxvYiwgYmRfdCAqYmQpCiB7Ci0JaW50IHJldCwgbm9kZW9mZnNldCA9IDA7CiAJdWxvbmcgYnJnX2RhdGFbMV0gPSB7MH07CiAJdWxvbmcgbWVtb3J5X2RhdGFbMl0gPSB7MH07CiAJdWxvbmcgZmxhc2hfZGF0YVs0XSA9IHswfTsKIAotCW1lbW9yeV9kYXRhWzBdID0gY3B1X3RvX2JlMzIoYmQtPmJpX21lbXN0YXJ0KTsKLQltZW1vcnlfZGF0YVsxXSA9IGNwdV90b19iZTMyKGJkLT5iaV9tZW1zaXplKTsKKwltZW1vcnlfZGF0YVswXSA9IGNwdV90b19iZTMyIChiZC0+YmlfbWVtc3RhcnQpOworCW1lbW9yeV9kYXRhWzFdID0gY3B1X3RvX2JlMzIgKGJkLT5iaV9tZW1zaXplKTsKKwlmZHRfc2V0X25vZGVfYW5kX3ZhbHVlIChibG9iLCAiL21lbW9yeSIsICJyZWciLCBtZW1vcnlfZGF0YSwKKwkJCQlzaXplb2YgKG1lbW9yeV9kYXRhKSk7CiAKLQkJbm9kZW9mZnNldCA9IGZkdF9wYXRoX29mZnNldCAoYmxvYiwgIi9tZW1vcnkiKTsKLQkJaWYgKG5vZGVvZmZzZXQgPj0gMCkgewotCQkJcmV0ID0gZmR0X3NldHByb3AoYmxvYiwgbm9kZW9mZnNldCwgInJlZyIsIG1lbW9yeV9kYXRhLAotCQkJCQkJc2l6ZW9mKG1lbW9yeV9kYXRhKSk7Ci0JCWlmIChyZXQgPCAwKQotCQkJcHJpbnRmKCJmdF9ibG9iX3VwZGF0ZSgpOiBjYW5ub3Qgc2V0IC9tZW1vcnkvcmVnICIKLQkJCQkicHJvcGVydHkgZXJyOiVzXG4iLCBmZHRfc3RyZXJyb3IocmV0KSk7Ci0JCX0KLQkJZWxzZSB7Ci0JCQkvKiBtZW1vcnkgbm9kZSBpcyByZXF1aXJlZCBpbiBkdHMgKi8KLQkJCXByaW50ZigiZnRfYmxvYl91cGRhdGUoKTogY2Fubm90IGZpbmQgL21lbW9yeSBub2RlICIKLQkJCSJlcnI6JXNcbiIsIGZkdF9zdHJlcnJvcihub2Rlb2Zmc2V0KSk7Ci0JfQorCWZsYXNoX2RhdGFbMl0gPSBjcHVfdG9fYmUzMiAoYmQtPmJpX2ZsYXNoc3RhcnQpOworCWZsYXNoX2RhdGFbM10gPSBjcHVfdG9fYmUzMiAoYmQtPmJpX2ZsYXNoc2l6ZSk7CisJZmR0X3NldF9ub2RlX2FuZF92YWx1ZSAoYmxvYiwgIi9sb2NhbGJ1cyIsICJyYW5nZXMiLCBmbGFzaF9kYXRhLAorCQkJCXNpemVvZiAoZmxhc2hfZGF0YSkpOwogCi0JZmxhc2hfZGF0YVsyXSA9IGNwdV90b19iZTMyKGJkLT5iaV9mbGFzaHN0YXJ0KTsKLQlmbGFzaF9kYXRhWzNdID0gY3B1X3RvX2JlMzIoYmQtPmJpX2ZsYXNoc2l6ZSk7Ci0Jbm9kZW9mZnNldCA9IGZkdF9wYXRoX29mZnNldCAoYmxvYiwgIi9sb2NhbGJ1cyIpOwotCWlmIChub2Rlb2Zmc2V0ID49IDApIHsKLQkJcmV0ID0gZmR0X3NldHByb3AoYmxvYiwgbm9kZW9mZnNldCwgInJhbmdlcyIsIGZsYXNoX2RhdGEsCi0JCQkJCXNpemVvZihmbGFzaF9kYXRhKSk7Ci0JaWYgKHJldCA8IDApCi0JCXByaW50ZigiZnRfYmxvYl91cGRhdGUoKTogY2Fubm90IHNldCAvbG9jYWxidXMvcmFuZ2VzICIKLQkJCSJwcm9wZXJ0eSBlcnI6JXNcbiIsIGZkdF9zdHJlcnJvcihyZXQpKTsKLQl9Ci0JZWxzZSB7Ci0JCS8qIG1lbW9yeSBub2RlIGlzIHJlcXVpcmVkIGluIGR0cyAqLwotCQlwcmludGYoImZ0X2Jsb2JfdXBkYXRlKCk6IGNhbm5vdCBmaW5kIC9sb2NhbGJ1cyBub2RlICIKLQkJImVycjolc1xuIiwgZmR0X3N0cmVycm9yKG5vZGVvZmZzZXQpKTsKLQl9CiAJLyogQlJHICovCi0JYnJnX2RhdGFbMF0gPSBjcHVfdG9fYmUzMihiZC0+YmlfYnVzZnJlcSk7Ci0Jbm9kZW9mZnNldCA9IGZkdF9wYXRoX29mZnNldCAoYmxvYiwgIi9zb2MvY3BtIik7Ci0JaWYgKG5vZGVvZmZzZXQgPj0gMCkgewotCQlyZXQgPSBmZHRfc2V0cHJvcChibG9iLCBub2Rlb2Zmc2V0LCAiYnJnLWZyZXF1ZW5jeSIsIGJyZ19kYXRhLAotCQkJCQlzaXplb2YoYnJnX2RhdGEpKTsKLQlpZiAocmV0IDwgMCkKLQkJcHJpbnRmKCJmdF9ibG9iX3VwZGF0ZSgpOiBjYW5ub3Qgc2V0IC9zb2MvY3BtL2JyZy1mcmVxdWVuY3kgIgotCQkJInByb3BlcnR5IGVycjolc1xuIiwgZmR0X3N0cmVycm9yKHJldCkpOwotCX0KLQllbHNlIHsKLQkJLyogbWVtb3J5IG5vZGUgaXMgcmVxdWlyZWQgaW4gZHRzICovCi0JCXByaW50ZigiZnRfYmxvYl91cGRhdGUoKTogY2Fubm90IGZpbmQgL3NvYy9jcG0gbm9kZSAiCi0JCSJlcnI6JXNcbiIsIGZkdF9zdHJlcnJvcihub2Rlb2Zmc2V0KSk7Ci0JfQotCS8qIE1BQyBBZHJlc3NlICovCi0Jbm9kZW9mZnNldCA9IGZkdF9wYXRoX29mZnNldCAoYmxvYiwgIi9zb2MvY3BtL2V0aGVybmV0Iik7Ci0JaWYgKG5vZGVvZmZzZXQgPj0gMCkgewotCQlyZXQgPSBmZHRfc2V0cHJvcChibG9iLCBub2Rlb2Zmc2V0LCAibWFjLWFkZHJlc3MiLCBiZC0+YmlfZW5ldGFkZHIsCi0JCQkJCXNpemVvZih1Y2hhcikgKiA2KTsKLQlpZiAocmV0IDwgMCkKLQkJcHJpbnRmKCJmdF9ibG9iX3VwZGF0ZSgpOiBjYW5ub3Qgc2V0IC9zb2MvY3BtL3NjYy9tYWMtYWRkcmVzcyAiCi0JCQkicHJvcGVydHkgZXJyOiVzXG4iLCBmZHRfc3RyZXJyb3IocmV0KSk7Ci0JfQotCWVsc2UgewotCQkvKiBtZW1vcnkgbm9kZSBpcyByZXF1aXJlZCBpbiBkdHMgKi8KLQkJcHJpbnRmKCJmdF9ibG9iX3VwZGF0ZSgpOiBjYW5ub3QgZmluZCAvc29jL2NwbS9ldGhlcm5ldCBub2RlICIKLQkJImVycjolc1xuIiwgZmR0X3N0cmVycm9yKG5vZGVvZmZzZXQpKTsKLQl9CisJYnJnX2RhdGFbMF0gPSBjcHVfdG9fYmUzMiAoYmQtPmJpX2J1c2ZyZXEpOworCWZkdF9zZXRfbm9kZV9hbmRfdmFsdWUgKGJsb2IsICIvc29jL2NwbSIsICJicmctZnJlcXVlbmN5IiwgYnJnX2RhdGEsCisJCQkJc2l6ZW9mIChicmdfZGF0YSkpOworCisJLyogTUFDIGFkciAqLworCWZkdF9zZXRfbm9kZV9hbmRfdmFsdWUgKGJsb2IsICIvc29jL2NwbS9ldGhlcm5ldCIsICJtYWMtYWRkcmVzcyIsCisJCQkJYmQtPmJpX2VuZXRhZGRyLCBzaXplb2YgKHU4KSAqIDYpOwogfQogCiB2b2lkIGZ0X2JvYXJkX3NldHVwKHZvaWQgKmJsb2IsIGJkX3QgKmJkKQogewotCWZ0X2NwdV9zZXR1cCggYmxvYiwgYmQpOwotCWZ0X2Jsb2JfdXBkYXRlKGJsb2IsIGJkKTsKKwlmdF9jcHVfc2V0dXAgKGJsb2IsIGJkKTsKKwlmdF9ibG9iX3VwZGF0ZSAoYmxvYiwgYmQpOwogfQogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX09GX0JPQVJEX1NFVFVQKSAmJiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpICovCisKK2ludCBpMmNfc29mdF9yZWFkX3BpbiAodm9pZCkKK3sKKwlpbnQgdmFsOworCisJKih1bnNpZ25lZCBzaG9ydCAqKShJMkNfQkFTRV9ESVIpICY9ICB+U0RBX0NPTkY7CisJdWRlbGF5KDEpOworCXZhbCA9ICoodW5zaWduZWQgY2hhciAqKShJMkNfQkFTRV9QT1JUKTsKKworCXJldHVybiAoKHZhbCAmIFNEQV9CSVQpID09IFNEQV9CSVQpOworfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbWdzdXZkL3UtYm9vdC5sZHMgYi9ib2FyZC9rZXltaWxlL21nc3V2ZC91LWJvb3QubGRzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBib2FyZC9tZ3N1dmQvdS1ib290LmxkcwpyZW5hbWUgdG8gYm9hcmQva2V5bWlsZS9tZ3N1dmQvdS1ib290LmxkcwpkaWZmIC0tZ2l0IGEvYm9hcmQva29yYXQvY29uZmlnLm1rIGIvYm9hcmQva29yYXQvY29uZmlnLm1rCmluZGV4IGZhODM3NGYuLjczMTgwZGIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2tvcmF0L2NvbmZpZy5taworKysgYi9ib2FyZC9rb3JhdC9jb25maWcubWsKQEAgLTM1LDcgKzM1LDcgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhDRkYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OENGRjAwMDAKIGVuZGlmCiAKIGlmZXEgKCQocGVybSksMSkKZGlmZiAtLWdpdCBhL2JvYXJkL2tvcmF0L2luaXQuUyBiL2JvYXJkL2tvcmF0L2luaXQuUwppbmRleCBiZjhiMmM4Li5lYTQzYTFmIDEwMDY0NAotLS0gYS9ib2FyZC9rb3JhdC9pbml0LlMKKysrIGIvYm9hcmQva29yYXQvaW5pdC5TCkBAIC01MCwyNyArNTAsMjcgQEAKIAkgKiBnZW5lcmF0ZWQgZHluYW1pY2FsbHkgaW4gdGhlIFNQRCBERFIyIGRldGVjdGlvbiByb3V0aW5lLgogCSAqLwogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0RDQUNIRQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCiAJLyogVExCLWVudHJ5IGZvciBpbml0LXJhbSBpbiBkY2FjaGUgKFNBX0kgbXVzdCBiZSB0dXJuZWQgb2ZmISkgKi8KLQl0bGJlbnRyeSggQ0ZHX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ0ZHX0lOSVRfUkFNX0FERFIsIDAsCisJdGxiZW50cnkoIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsCiAJCSAgQUNfUnxBQ19XfEFDX1h8U0FfRyApCiAjZW5kaWYKIAogCS8qIFRMQi1lbnRyeSBmb3IgUENJIE1lbW9yeSAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UgKyAweDAwMDAwMDAwLCBTWl8yNTZNLAotCQkgIENGR19QQ0lfTUVNQkFTRSArIDB4MDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICsgMHgwMDAwMDAwMCwgU1pfMjU2TSwKKwkJICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICsgMHgwMDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFICsgMHgxMDAwMDAwMCwgU1pfMjU2TSwKLQkJICBDRkdfUENJX01FTUJBU0UgKyAweDEwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSArIDB4MTAwMDAwMDAsIFNaXzI1Nk0sCisJCSAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSArIDB4MTAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSArIDB4MjAwMDAwMDAsIFNaXzI1Nk0sCi0JCSAgQ0ZHX1BDSV9NRU1CQVNFICsgMHgyMDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UgKyAweDIwMDAwMDAwLCBTWl8yNTZNLAorCQkgIENPTkZJR19TWVNfUENJX01FTUJBU0UgKyAweDIwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UgKyAweDMwMDAwMDAwLCBTWl8yNTZNLAotCQkgIENGR19QQ0lfTUVNQkFTRSArIDB4MzAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICsgMHgzMDAwMDAwMCwgU1pfMjU2TSwKKwkJICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICsgMHgzMDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKIAkvKiBUTEItZW50cnkgZm9yIEVCQyAqLwotCXRsYmVudHJ5KCBDRkdfQ1BMRF9CQVNFLCBTWl8xSywgQ0ZHX0NQTERfQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfQ1BMRF9CQVNFLCBTWl8xSywgQ09ORklHX1NZU19DUExEX0JBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogVExCLWVudHJ5IGZvciBJbnRlcm5hbCBSZWdpc3RlcnMgJiBPQ00gKi8KIAkvKiBJIHdvbmRlciB3aHkgdGhpcyBtdXN0IGJlIGV4ZWN1dGFibGUgLS0gbHJqQGFjbS5vcmcgMjAwNy0xMC0wOCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQva29yYXQva29yYXQuYyBiL2JvYXJkL2tvcmF0L2tvcmF0LmMKaW5kZXggODc4N2UyMy4uNWFkNzVmNyAxMDA2NDQKLS0tIGEvYm9hcmQva29yYXQva29yYXQuYworKysgYi9ib2FyZC9rb3JhdC9rb3JhdC5jCkBAIC0zOCw3ICszOCw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi1leHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiB1bG9uZyBmbGFzaF9nZXRfc2l6ZSh1bG9uZyBiYXNlLCBpbnQgYmFua251bSk7CiAKQEAgLTQ2LDExICs0NiwxMSBAQAogdm9pZCBrb3JhdF9idXp6ZXIoaW50IGNvbnN0IG9uKQogewogCWlmIChvbikgewotCQlvdXRfOCgodTggKikgQ0ZHX0NQTERfQkFTRSArIDB4MDUsCi0JCSAgICAgIGluXzgoKHU4ICopIENGR19DUExEX0JBU0UgKyAweDA1KSB8IDB4ODApOworCQlvdXRfOCgodTggKikgQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDA1LAorCQkgICAgICBpbl84KCh1OCAqKSBDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDUpIHwgMHg4MCk7CiAJfSBlbHNlIHsKLQkJb3V0XzgoKHU4ICopIENGR19DUExEX0JBU0UgKyAweDA1LAotCQkgICAgICBpbl84KCh1OCAqKSBDRkdfQ1BMRF9CQVNFICsgMHgwNSkgJiB+MHg4MCk7CisJCW91dF84KCh1OCAqKSBDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MDUsCisJCSAgICAgIGluXzgoKHU4ICopIENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwNSkgJiB+MHg4MCk7CiAJfQogfQogI2VuZGlmCkBAIC02NiwxNiArNjYsMTYgQEAKIAogCWV4dGVybiB2b2lkIGtvcmF0X2JyYW5jaF9hYnNvbHV0ZSh1aW50MzJfdCBhZGRyKTsKIAotCWZvciAobXNjb3VudCA9IDA7ICBtc2NvdW50IDwgQ0ZHX0tPUkFUX01BTl9SRVNFVF9NUzsgKyttc2NvdW50KSB7CisJZm9yIChtc2NvdW50ID0gMDsgIG1zY291bnQgPCBDT05GSUdfU1lTX0tPUkFUX01BTl9SRVNFVF9NUzsgKyttc2NvdW50KSB7CiAJCXVkZWxheSgxMDAwKTsKLQkJaWYgKGdwaW9fcmVhZF9pbl9iaXQoQ0ZHX0dQSU9fUkVTRVRfUFJFU1NFRF8pKSB7CisJCWlmIChncGlvX3JlYWRfaW5fYml0KENPTkZJR19TWVNfR1BJT19SRVNFVF9QUkVTU0VEXykpIHsKIAkJCS8qIFRoaXMgY2FsbCBkb2VzIG5vdCByZXR1cm4uICovCiAJCQlrb3JhdF9icmFuY2hfYWJzb2x1dGUoCi0JCQkJQ0ZHX0ZMQVNIMV9UT1AgLSAyICogQ09ORklHX0VOVl9TRUNUX1NJWkUgLSA0KTsKKwkJCQlDT05GSUdfU1lTX0ZMQVNIMV9UT1AgLSAyICogQ09ORklHX0VOVl9TRUNUX1NJWkUgLSA0KTsKIAkJfQogCX0KIAlrb3JhdF9idXp6ZXIoMSk7Ci0Jd2hpbGUgKCFncGlvX3JlYWRfaW5fYml0KENGR19HUElPX1JFU0VUX1BSRVNTRURfKSkKKwl3aGlsZSAoIWdwaW9fcmVhZF9pbl9iaXQoQ09ORklHX1NZU19HUElPX1JFU0VUX1BSRVNTRURfKSkKIAkJdWRlbGF5KDEwMDApOwogCiAJa29yYXRfYnV6emVyKDApOwpAQCAtMTE1LDMzICsxMTUsMzMgQEAKIAkgKiBUYWtlIHNpbSBjYXJkIHJlYWRlciBhbmQgQ0YgY29udHJvbGxlciBvdXQgb2YgcmVzZXQuICBBbHNvIGVuYWJsZSBQSFkKIAkgKiBhdXRvLWRldGVjdCB1bnRpbCBib2FyZC1zcGVjaWZpYyBQSFkgcmVzZXRzIGFyZSBhdmFpbGFibGUuCiAJICovCi0Jb3V0XzgoKHU4ICopIENGR19DUExEX0JBU0UgKyAweDAyLCAweEMwKTsKKwlvdXRfOCgodTggKikgQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDAyLCAweEMwKTsKIAogCS8qIENvbmZpZ3VyZSB0aGUgdHdvIEV0aGVybmV0IFBIWXMuICBGb3IgZWFjaCBQSFksIGNvbmZpZ3VyZSBmb3IgZmliZXIKIAkgKiBpZiB0aGUgU0ZQIG1vZHVsZSBpcyBwcmVzZW50LCBhbmQgZm9yIGNvcHBlciBpZiBpdCBpcyBub3QgcHJlc2VudC4KIAkgKi8KIAlmb3IgKGV0aCA9IDA7IGV0aCA8IDI7ICsrZXRoKSB7Ci0JCWlmIChncGlvX3JlYWRfaW5fYml0KENGR19HUElPX1NGUDBfUFJFU0VOVF8gKyBldGgpKSB7CisJCWlmIChncGlvX3JlYWRfaW5fYml0KENPTkZJR19TWVNfR1BJT19TRlAwX1BSRVNFTlRfICsgZXRoKSkgewogCQkJLyogU0ZQIG1vZHVsZSBub3QgcHJlc2VudDogY29uZmlndXJlIFBIWSBmb3IgY29wcGVyLiAqLwogCQkJLyogU2V0IFBIWSB0byBhdXRvbmVnb3RhdGUgMTAgTUIsIDEwME1CLCBvciAxIEdCICovCi0JCQlvdXRfOCgodTggKikgQ0ZHX0NQTERfQkFTRSArIDB4MDMsCi0JCQkgICAgICBpbl84KCh1OCAqKSBDRkdfQ1BMRF9CQVNFICsgMHgwMykgfAorCQkJb3V0XzgoKHU4ICopIENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwMywKKwkJCSAgICAgIGluXzgoKHU4ICopIENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwMykgfAogCQkJICAgICAgMHgwNiA8PCAoNCAqIGV0aCkpOwogCQl9IGVsc2UgewogCQkJLyogU0ZQIG1vZHVsZSBwcmVzZW50OiBjb25maWd1cmUgUEhZIGZvciBmaWJlciBhbmQKIAkJCSAgIGVuYWJsZSBvdXRwdXQgKi8KLQkJCWdwaW9fd3JpdGVfYml0KENGR19HUElPX1BIWTBfRklCRVJfU0VMICsgZXRoLCAxKTsKLQkJCWdwaW9fd3JpdGVfYml0KENGR19HUElPX1NGUDBfVFhfRU5fICsgZXRoLCAwKTsKKwkJCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19QSFkwX0ZJQkVSX1NFTCArIGV0aCwgMSk7CisJCQlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fU0ZQMF9UWF9FTl8gKyBldGgsIDApOwogCQl9CiAJfQogCS8qIGVuYWJsZSBFdGhlcm5ldDogc2V0IEdQSU80NSBhbmQgR1BJTzQ2IHRvIDEgKi8KLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19QSFkwX0VOLCAxKTsKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19QSFkxX0VOLCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fUEhZMF9FTiwgMSk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX1BIWTFfRU4sIDEpOwogCiAJLyogV2FpdCAxIG1zLCB0aGVuIGVuYWJsZSBGaWJlciBzaWduYWwgZGV0ZWN0IHRvIFBIWXMuICovCiAJdWRlbGF5KDEwMDApOwotCW91dF84KCh1OCAqKSBDRkdfQ1BMRF9CQVNFICsgMHgwMywKLQkgICAgICBpbl84KCh1OCAqKSBDRkdfQ1BMRF9CQVNFICsgMHgwMykgfCAweDg4KTsKKwlvdXRfOCgodTggKikgQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDAzLAorCSAgICAgIGluXzgoKHU4ICopIENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwMykgfCAweDg4KTsKIAogCS8qIHNlbGVjdCBFdGhlcm5ldCAoYW5kIG9wdGlvbmFsbHkgSUlDMSkgcGlucyAqLwogCW1mc2RyKFNEUjBfUEZDMSwgc2RyMF9wZmMxKTsKQEAgLTE3Niw4ICsxNzYsOCBAQAogCWlmICgxICE9IGJhbmtudW0pCiAJCXJldHVybiAwOwogCi0JaW5mby0+c2l6ZQkJPSBDRkdfRkxBU0gwX1NJWkU7Ci0JaW5mby0+c2VjdG9yX2NvdW50CT0gQ0ZHX0ZMQVNIMF9TSVpFIC8gMHgyMDAwMDsKKwlpbmZvLT5zaXplCQk9IENPTkZJR19TWVNfRkxBU0gwX1NJWkU7CisJaW5mby0+c2VjdG9yX2NvdW50CT0gQ09ORklHX1NZU19GTEFTSDBfU0laRSAvIDB4MjAwMDA7CiAJaW5mby0+Zmxhc2hfaWQJCT0gMHgwMTAwMDAwMDsKIAlpbmZvLT5wb3J0d2lkdGgJCT0gMjsKIAlpbmZvLT5jaGlwd2lkdGgJCT0gMjsKQEAgLTE5MiwxMiArMTkyLDEyIEBACiAJaW5mby0+bWFudWZhY3R1cmVyX2lkCT0gMTsKIAlpbmZvLT5kZXZpY2VfaWQJCT0gMHgwMDdFOwogCi0jaWYgQ0ZHX0ZMQVNIMF9TSVpFID09IDB4MDEwMDAwMDAKKyNpZiBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFID09IDB4MDEwMDAwMDAKIAlpbmZvLT5kZXZpY2VfaWQyCT0gMHgyMTAxOwotI2VsaWYgQ0ZHX0ZMQVNIMF9TSVpFID09IDB4MDQwMDAwMDAKKyNlbGlmIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgPT0gMHgwNDAwMDAwMAogCWluZm8tPmRldmljZV9pZDIJPSAweDIzMDE7CiAjZWxzZQotI2Vycm9yIFVuYWJsZSB0byBzZXQgZGV2aWNlX2lkMiBmb3IgY3VycmVudCBDRkdfRkxBU0gwX1NJWkUKKyNlcnJvciBVbmFibGUgdG8gc2V0IGRldmljZV9pZDIgZm9yIGN1cnJlbnQgQ09ORklHX1NZU19GTEFTSDBfU0laRQogI2VuZGlmCiAKIAlpbmZvLT5leHRfYWRkcgkJPSAweDAwNDA7CkBAIC0zNDksMTMgKzM0OSwxMyBAQAogCXVuc2lnbmVkIGxvbmcgdXNiMmQwY3IgPSAwOwogCXVuc2lnbmVkIGxvbmcgdXNiMnBoeTBjciwgdXNiMmgwY3IgPSAwOwogCXVuc2lnbmVkIGxvbmcgc2RyMF9wZmMxOwotCXVpbnQzMl90IGNvbnN0IGZsYXNoMV9zaXplID0gZ2QtPmJkLT5iaV9mbGFzaHNpemUgLSBDRkdfRkxBU0gwX1NJWkU7CisJdWludDMyX3QgY29uc3QgZmxhc2gxX3NpemUgPSBnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAtIENPTkZJR19TWVNfRkxBU0gwX1NJWkU7CiAJY2hhciBjb25zdCAqY29uc3QgYWN0ID0gZ2V0ZW52KCJ1c2JhY3QiKTsKIAogCS8qCiAJICogUmUtZG8gRkxBU0gxIHNpemluZyBhbmQgYWRqdXN0IGZsYXNoIHN0YXJ0IGFuZCBvZmZzZXQuCiAJICovCi0JZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0ID0gQ0ZHX0ZMQVNIMV9UT1AgLSBmbGFzaDFfc2l6ZTsKKwlnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIMV9UT1AgLSBmbGFzaDFfc2l6ZTsKIAlnZC0+YmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKIAogCW10ZGNyKGViY2NmZ2EsIHBiMWNyKTsKQEAgLTM3NSwyMyArMzc1LDIzIEBACiAJICogZW52aXJvbm1lbnQKIAkgKi8KIAlnZC0+YmQtPmJpX2ZsYXNob2Zmc2V0ID0KLQkJQ09ORklHX0VOVl9BRERSX1JFRFVORCArIENPTkZJR19FTlZfU0VDVF9TSVpFIC0gQ0ZHX0ZMQVNIMV9BRERSOworCQlDT05GSUdfRU5WX0FERFJfUkVEVU5EICsgQ09ORklHX0VOVl9TRUNUX1NJWkUgLSBDT05GSUdfU1lTX0ZMQVNIMV9BRERSOwogCiAJbXRkY3IoZWJjY2ZnYSwgcGIxY3IpOwogCXBiY3IgPSBtZmRjcihlYmNjZmdkKTsKLQlzaXplX3ZhbCA9IGZmcyhnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAtIENGR19GTEFTSDBfU0laRSkgLSAyMTsKKwlzaXplX3ZhbCA9IGZmcyhnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAtIENPTkZJR19TWVNfRkxBU0gwX1NJWkUpIC0gMjE7CiAJcGJjciA9IChwYmNyICYgMHgwMDAxZmZmZikgfCBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgfCAoc2l6ZV92YWwgPDwgMTcpOwogCW10ZGNyKGViY2NmZ2EsIHBiMWNyKTsKIAltdGRjcihlYmNjZmdkLCBwYmNyKTsKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfS09SQVRfUEVSTUFORU5UKQotCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIDEsCiAJCQkgICAgZmxhc2hfaW5mbyArIDEpOwogI2Vsc2UKLQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIDEsCisJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSAxLAogCQkJICAgIGZsYXNoX2luZm8pOwogI2VuZGlmCiAJLyogRW52IHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwpAQCAtNTM2LDcgKzUzNiw3IEBACiAKIAlzZXRfc2VyaWFsX251bWJlcigpOwogCXNldF9tYWNfYWRkcmVzc2VzKCk7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fQVRNRUdBX1JFU0VUXywgMSk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0FUTUVHQV9SRVNFVF8sIDEpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC01NDQsMjAgKzU0NCwyMCBAQAogaW50IGNoZWNrYm9hcmQodm9pZCkKIHsKIAljaGFyIGNvbnN0ICpjb25zdCBzID0gZ2V0ZW52KCJzZXJpYWwjIik7Ci0JdTggY29uc3QgcmV2ID0gaW5fOCgodTggKikgQ0ZHX0NQTERfQkFTRSArIDApOworCXU4IGNvbnN0IHJldiA9IGluXzgoKHU4ICopIENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMCk7CiAKIAlwcmludGYoIkJvYXJkOiBLb3JhdCwgUmV2LiAlWCIsIHJldik7CiAJaWYgKHMpCiAJCXByaW50ZigiLCBzZXJpYWwjICVzIiwgcyk7CiAKIAlwcmludGYoIi5cbiAgICAgICBFdGhlcm5ldCBQSFkgMDogIik7Ci0JaWYgKGdwaW9fcmVhZF9vdXRfYml0KENGR19HUElPX1BIWTBfRklCRVJfU0VMKSkKKwlpZiAoZ3Bpb19yZWFkX291dF9iaXQoQ09ORklHX1NZU19HUElPX1BIWTBfRklCRVJfU0VMKSkKIAkJcHJpbnRmKCJmaWJlciIpOwogCWVsc2UKIAkJcHJpbnRmKCJjb3BwZXIiKTsKIAogCXByaW50ZigiLCBQSFkgMTogIik7Ci0JaWYgKGdwaW9fcmVhZF9vdXRfYml0KENGR19HUElPX1BIWTFfRklCRVJfU0VMKSkKKwlpZiAoZ3Bpb19yZWFkX291dF9iaXQoQ09ORklHX1NZU19HUElPX1BIWTFfRklCRVJfU0VMKSkKIAkJcHJpbnRmKCJmaWJlciIpOwogCWVsc2UKIAkJcHJpbnRmKCJjb3BwZXIiKTsKQEAgLTY0NCw3ICs2NDQsNyBAQAogICogaW5ib3VuZCBtYXAgKFBJTSkuIEJ1dCB0aGUgYm9vdHN0cmFwIGNvbmZpZyBjaG9pY2VzIGFyZSBsaW1pdGVkIGFuZAogICogbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qCkBAIC02NjAsOSArNjYwLDkgQEAKIAkgKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAqLwogCQkJCQkJLyogLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wUENJTEEsCi0JICAgICAgIENGR19QQ0lfTUVNQkFTRSk7CQkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJCS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsICovCiAJCQkJCQkvKiBhbmQgZW5hYmxlIHJlZ2lvbiAqLwpAQCAtNjcwLDkgKzY3MCw5IEBACiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgKi8KIAkJCQkJCS8qIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwogCW91dDMycihQQ0lYMF9QTU0xTEEsCi0JICAgICAgIENGR19QQ0lfTUVNQkFTRSArIDB4MjAwMDAwMDApOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSArIDB4MjAwMDAwMDApOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLAotCSAgICAgICBDRkdfUENJX01FTUJBU0UgKyAweDIwMDAwMDAwKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSArIDB4MjAwMDAwMDApOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xUENJSEEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIFBDSSBIaWdoIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweEUwMDAwMDAxKTsJLyogNTEyTSArIE5vIHByZWZldGNoaW5nLCAqLwogCQkJCQkJLyogYW5kIGVuYWJsZSByZWdpb24gKi8KQEAgLTY4OCw4ICs2ODgsOCBAQAogCiAJLyogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELAotCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDRkdfUENJX1NVQlNZU19JRCk7CisJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQpOwogCiAJLyogQ29uZmlndXJlIGNvbW1hbmQgcmVnaXN0ZXIgYXMgYnVzIG1hc3RlciAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ09NTUFORCwgUENJX0NPTU1BTkRfTUFTVEVSKTsKQEAgLTcwOCw5ICs3MDgsOSBAQAogCSAqLwogCXBjaV93cml0ZV9jb25maWdfZHdvcmQoUENJX0JERigweDAsIDB4QywgMHgwKSwgMHhFNCwgMHgwMDAwMDAyMCk7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogdm9pZCBwY2lfbWFzdGVyX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCXVuc2lnbmVkIHNob3J0IHRlbXBfc2hvcnQ7CkBAIC03NzEsNyArNzcxLDcgQEAKIAl2YWxbMF0gPSAxOwkJCQkvKiBjaGlwIHNlbGVjdCBudW1iZXIgKi8KIAl2YWxbMV0gPSAwOwkJCQkvKiBhbHdheXMgMCAqLwogCXZhbFsyXSA9IGdkLT5iZC0+YmlfZmxhc2hzdGFydDsKLQl2YWxbM10gPSBnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAtIENGR19GTEFTSDBfU0laRTsKKwl2YWxbM10gPSBnZC0+YmQtPmJpX2ZsYXNoc2l6ZSAtIENPTkZJR19TWVNfRkxBU0gwX1NJWkU7CiAJcmMgPSBmZHRfZmluZF9hbmRfc2V0cHJvcChibG9iLCAiL3BsYi9vcGIvZWJjIiwgInJhbmdlcyIsCiAJCQkJICB2YWwsIHNpemVvZih2YWwpLCAxKTsKIAlpZiAocmMpCmRpZmYgLS1naXQgYS9ib2FyZC9rb3JhdC91LWJvb3QubGRzIGIvYm9hcmQva29yYXQvdS1ib290LmxkcwppbmRleCBiMjBmYjFjLi4zY2ZlYzgzIDEwMDY0NAotLS0gYS9ib2FyZC9rb3JhdC91LWJvb3QubGRzCisrKyBiL2JvYXJkL2tvcmF0L3UtYm9vdC5sZHMKQEAgLTEzNyw3ICsxMzcsNyBAQAogICAgKihDT01NT04pCiAgIH0KIAotICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CisgIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRjgwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOwogCiAgIF9lbmQgPSAuIDsKICAgUFJPVklERSAoZW5kID0gLik7CmRpZmYgLS1naXQgYS9ib2FyZC9rdXAvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9rdXAvY29tbW9uL2ZsYXNoLmMKaW5kZXggNzY4OGNlMi4uMTM0YTlkNSAxMDA2NDQKLS0tIGEvYm9hcmQva3VwL2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL2t1cC9jb21tb24vZmxhc2guYwpAQCAtMjUsMTIgKzI1LDEyIEBACiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKICNpZm5kZWYJQ09ORklHX0VOVl9BRERSCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19GTEFTSF8xNkJJVAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC00MywxMyArNDMsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2IwOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC02NCwxNyArNjQsMTcgQEAKIAogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WIHwgQlJfUFNfMTY7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfViB8IEJSX1BTXzE2OwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zMjUsNyArMzI1LDcgQEAKICNlbHNlCiAJCQl3aGlsZSAoKHNlY3RfYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKICNlbmRpZgotCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCXJldHVybiAxOwogCQkJCX0KQEAgLTQ2Nyw3ICs0NjcsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9zaG9ydCAqKWRlc3QpICYgMHgwMDgwKSAhPSAoaGlnaF9kYXRhICYgMHgwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpAQCAtNTA3LDcgKzUwNyw3IEBACiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7CiAjZW5kaWYKIAotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQva3VwL2NvbW1vbi9rdXAuYyBiL2JvYXJkL2t1cC9jb21tb24va3VwLmMKaW5kZXggZDAxOGUzYy4uZmVjNTQwNyAxMDA2NDQKLS0tIGEvYm9hcmQva3VwL2NvbW1vbi9rdXAuYworKysgYi9ib2FyZC9rdXAvY29tbW9uL2t1cC5jCkBAIC0yNyw3ICsyNyw3IEBACiAKIGludCBtaXNjX2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHN5c2NvbmY4eHhfdCAqc2l1ID0gJmltbWFwLT5pbV9zaXVfY29uZjsKIAogCXdoaWxlIChzaXUtPnNjX3NpcGVuZCAmIDB4MjAwMDAwMDApIHsKQEAgLTQ3LDcgKzQ3LDcgQEAKICNpZmRlZiBDT05GSUdfSURFX0xFRAogdm9pZCBpZGVfbGVkICh1Y2hhciBsZWQsIHVjaGFyIHN0YXR1cykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyogV2UgaGF2ZSBvbmUgbGVkIGZvciBib3RoIHBjbWNpYSBzbG90cyAqLwogCWlmIChzdGF0dXMpIHsJCS8qIGxlZCBvbiAqLwpAQCAtNjAsNyArNjAsNyBAQAogCiB2b2lkIHBvd2Vyb25fa2V5ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1hcC0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KFBDX1NXSVRDSDEpOwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BjZGlyICY9IH4oUENfU1dJVENIMSk7CmRpZmYgLS1naXQgYS9ib2FyZC9rdXAvY29tbW9uL2xvYWRfc2VybnVtX2V0aGFkZHIuYyBiL2JvYXJkL2t1cC9jb21tb24vbG9hZF9zZXJudW1fZXRoYWRkci5jCmluZGV4IGI3Yjc0OTkuLjc0MWU5YTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2t1cC9jb21tb24vbG9hZF9zZXJudW1fZXRoYWRkci5jCisrKyBiL2JvYXJkL2t1cC9jb21tb24vbG9hZF9zZXJudW1fZXRoYWRkci5jCkBAIC0zMyw4ICszMyw4IEBACiAgKiBUaGUgS1VQIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrIGlzIGRlZmluZWQgYXMKICAqIGZvbGxvd3M6CiAgKiAtIGxvY2F0ZWQgaW4gZmlyc3QgZmxhc2ggYmFuawotICogLSBzdGFydHMgYXQgb2Zmc2V0IENGR19IV0lORk9fT0ZGU0VUCi0gKiAtIHNpemUgQ0ZHX0hXSU5GT19TSVpFCisgKiAtIHN0YXJ0cyBhdCBvZmZzZXQgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCisgKiAtIHNpemUgQ09ORklHX1NZU19IV0lORk9fU0laRQogICoKICAqIEludGVybmFsIHN0cnVjdHVyZToKICAqIC0gc2VxdWVuY2Ugb2YgQVNDSUkgY2hhcmFjdGVyIGxpbmVzCkBAIC01NSwxNSArNTUsMTUgQEAKIHsKIAl1bnNpZ25lZCBjaGFyICpod2k7CiAJY2hhciAqdmFyOwotCXVuc2lnbmVkIGNoYXIgaHdpX3N0YWNrW0NGR19IV0lORk9fU0laRV07CisJdW5zaWduZWQgY2hhciBod2lfc3RhY2tbQ09ORklHX1NZU19IV0lORk9fU0laRV07CiAJY2hhciAqcDsKIAotCWh3aSA9ICh1bnNpZ25lZCBjaGFyICopIChDRkdfRkxBU0hfQkFTRSArIENGR19IV0lORk9fT0ZGU0VUKTsKLQlpZiAoKigodW5zaWduZWQgbG9uZyAqKSBod2kpICE9ICh1bnNpZ25lZCBsb25nKSBDRkdfSFdJTkZPX01BR0lDKSB7CisJaHdpID0gKHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVCk7CisJaWYgKCooKHVuc2lnbmVkIGxvbmcgKikgaHdpKSAhPSAodW5zaWduZWQgbG9uZykgQ09ORklHX1NZU19IV0lORk9fTUFHSUMpIHsKIAkJcHJpbnRmICgiSGFyZHdhcmVJbmZvIG5vdCBmb3VuZCFcbiIpOwogCQlyZXR1cm47CiAJfQotCW1lbWNweSAoaHdpX3N0YWNrLCBod2ksIENGR19IV0lORk9fU0laRSk7CisJbWVtY3B5IChod2lfc3RhY2ssIGh3aSwgQ09ORklHX1NZU19IV0lORk9fU0laRSk7CiAKIAkvKgogCSAqKiBldGhhZGRyCkBAIC03Miw3ICs3Miw3IEBACiAJaWYgKHZhcikgewogCQl2YXIgKz0gc2l6ZW9mIChFVEhBRERSX1RPS0VOKSAtIDE7CiAJCXAgPSBzdHJjaHIgKHZhciwgJ1xyJyk7Ci0JCWlmICgodW5zaWduZWQgY2hhciAqKXAgPCBod2kgKyBDRkdfSFdJTkZPX1NJWkUpIHsKKwkJaWYgKCh1bnNpZ25lZCBjaGFyICopcCA8IGh3aSArIENPTkZJR19TWVNfSFdJTkZPX1NJWkUpIHsKIAkJCSpwID0gJ1wwJzsKIAkJCXNldGVudiAoImV0aGFkZHIiLCB2YXIpOwogCQkJKnAgPSAnXHInOwpAQCAtODUsNyArODUsNyBAQAogCWlmICh2YXIpIHsKIAkJdmFyICs9IHNpemVvZiAoTENEX1RPS0VOKSAtIDE7CiAJCXAgPSBzdHJjaHIgKHZhciwgJ1xyJyk7Ci0JCWlmICgodW5zaWduZWQgY2hhciAqKXAgPCBod2kgKyBDRkdfSFdJTkZPX1NJWkUpIHsKKwkJaWYgKCh1bnNpZ25lZCBjaGFyICopcCA8IGh3aSArIENPTkZJR19TWVNfSFdJTkZPX1NJWkUpIHsKIAkJCSpwID0gJ1wwJzsKIAkJCXNldGVudiAoImxjZCIsIHZhcik7CiAJCQkqcCA9ICdccic7CmRpZmYgLS1naXQgYS9ib2FyZC9rdXAvY29tbW9uL3BjbWNpYS5jIGIvYm9hcmQva3VwL2NvbW1vbi9wY21jaWEuYwppbmRleCA4ZjBjZjE3Li5jZTZiMTg2IDEwMDY0NAotLS0gYS9ib2FyZC9rdXAvY29tbW9uL3BjbWNpYS5jCisrKyBiL2JvYXJkL2t1cC9jb21tb24vcGNtY2lhLmMKQEAgLTMwLDEwICszMCwxMCBAQAogCiAJdWRlbGF5KDEwMDAwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3NpdV9jb25mKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9zaXVfY29uZikpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CiAKIAkvKgogCSogQ29uZmlndXJlIFNJVU1DUiB0byBlbmFibGUgUENNQ0lBIHBvcnQgQgpAQCAtMTI1LDkgKzEyNSw5IEBACiAKIAlkZWJ1ZyAoImhhcmR3YXJlX2Rpc2FibGU6ICIgUENNQ0lBX0JPQVJEX01TRyAiIFNsb3QgJWNcbiIsICdBJytzbG90KTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOwogCiAJLyogcmVtb3ZlIGFsbCBwb3dlciAqLwogCWlmIChzbG90KQpAQCAtMTYyLDkgKzE2Miw5IEBACiAJaWYgKCFzbG90KSAvKiBTbG90IEEgaXMgbm90IGNvbmZpZ3VyYWJsZSAqLwogCQlyZXR1cm4gMDsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJcGNtcCA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOwogCiAJLyoKIAkqIERpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgKGlzb2xhdGUgdGhlIGludGVyZmFjZSkKZGlmZiAtLWdpdCBhL2JvYXJkL2t1cC9rdXA0ay9rdXA0ay5jIGIvYm9hcmQva3VwL2t1cDRrL2t1cDRrLmMKaW5kZXggNjZkNjE4MC4uZGYzZmZiNCAxMDA2NDQKLS0tIGEvYm9hcmQva3VwL2t1cDRrL2t1cDRrLmMKKysrIGIvYm9hcmQva3VwL2t1cDRrL2t1cDRrLmMKQEAgLTExOSw3ICsxMTksNyBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVjaGFyICpsYXRjaCxyZXYsbW9kOwogCiAJLyoKQEAgLTEzOSw3ICsxMzksNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMCA9IDA7CiAJbG9uZyBpbnQgc2l6ZV9iMSA9IDA7CkBAIC0xNTQsNyArMTU0LDcgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTE2MywxNCArMTYzLDE0IEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKIAkgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAJICovCi0vKgltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07CSovCi0vKgltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CSovCisvKgltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOwkqLworLyoJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsJKi8KIAotLyoJbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwkqLwotLyoJbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOwkqLworLyoJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsJKi8KKy8qCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CSovCiAKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVIgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUiAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0yMDQsNyArMjA0LDcgQEAKIAlzaXplX2IwID0gMHgwMDgwMDAwMDsKIAlzaXplX2IxID0gMHgwMDgwMDAwMDsKIAlzaXplX2IyID0gMHgwMDgwMDAwMDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAl1ZGVsYXkgKDEwMDApOwogCW1lbWN0bC0+bWVtY19vcjEgPSAweEZGODAwQTAwOwogCW1lbWN0bC0+bWVtY19icjEgPSAweDAwMDAwMDgxOwpAQCAtMjE2LDcgKzIxNiw3IEBACiAJc2l6ZV9iMCA9IDB4MDEwMDAwMDA7CiAJc2l6ZV9iMSA9IDB4MDEwMDAwMDA7CiAJc2l6ZV9iMiA9IDB4MDEwMDAwMDA7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAJdWRlbGF5ICgxMDAwKTsKIAltZW1jdGwtPm1lbWNfb3IxID0gMHhGRjAwMEEwMDsKIAltZW1jdGwtPm1lbWNfYnIxID0gMHgwMDAwMDA4MTsKQEAgLTIzNiw3ICsyMzYsNyBAQAogaW50IG1pc2NfaW5pdF9yICh2b2lkKQogewogI2lmZGVmIENPTkZJR19TVEFUVVNfTEVECi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKICNlbmRpZgogI2lmZGVmIENPTkZJR19LVVA0S19MT0dPCiAJYmRfdCAqYmQgPSBnZC0+YmQ7CkBAIC0yNjMsNyArMjYzLDcgQEAKIAlGQl9JTkZPX1MxRDEzeHh4IGZiX2luZm87CiAJUzFEX0lOREVYIHMxZFJlZzsKIAlTMURfVkFMVUUgczFkVmFsdWU7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bDsKIAl1c2hvcnQgaTsKIAl1Y2hhciAqZmI7CmRpZmYgLS1naXQgYS9ib2FyZC9rdXAva3VwNHgva3VwNHguYyBiL2JvYXJkL2t1cC9rdXA0eC9rdXA0eC5jCmluZGV4IGYwN2VmMTguLmM1Yjc0MmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2t1cC9rdXA0eC9rdXA0eC5jCisrKyBiL2JvYXJkL2t1cC9rdXA0eC9rdXA0eC5jCkBAIC0xMTQsNyArMTE0LDcgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdm9sYXRpbGUgdWNoYXIgKmxhdGNoOwogCXVjaGFyIHJldiwgbW9kOwpAQCAtMTM2LDcgKzEzNiw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwID0gMDsKIAlsb25nIGludCBzaXplX2IxID0gMDsKQEAgLTE1MSw3ICsxNTEsNyBAQAogCSAqIHdpdGggdHdvIFNEUkFNIGJhbmtzIG9yIGZvdXIgY3ljbGVzIGV2ZXJ5IDMxLjIgdXMgd2l0aCBvbmUKIAkgKiBiYW5rLiBJdCB3aWxsIGJlIGFkanVzdGVkIGFmdGVyIG1lbW9yeSBzaXppbmcuCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDA4ODsKIApAQCAtMTYwLDEzICsxNjAsMTMgQEAKIAkgKiBwcmVsaW1pbmFyeSBhZGRyZXNzZXMgLSB0aGVzZSBoYXZlIHRvIGJlIG1vZGlmaWVkIGFmdGVyIHRoZQogCSAqIFNEUkFNIHNpemUgaGFzIGJlZW4gZGV0ZXJtaW5lZC4KIAkgKi8KLS8qCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsJKi8KLS8qCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsJKi8KKy8qCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CSovCisvKgltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwkqLwogCi0vKgltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07CSovCi0vKgltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMl9QUkVMSU07CSovCisvKgltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOwkqLworLyoJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsJKi8KIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVIgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUiAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0yMDcsNyArMjA3LDcgQEAKIAlzaXplX2IxID0gMHgwMDgwMDAwMDsKIAlzaXplX2IyID0gMHgwMDgwMDAwMDsKIAlzaXplX2IzID0gMHgwMDgwMDAwMDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAl1ZGVsYXkgKDEwMDApOwogCW1lbWN0bC0+bWVtY19vcjEgPSAweEZGODAwQTAwOwogCW1lbWN0bC0+bWVtY19icjEgPSAweDAwMDAwMDgxOwpAQCAtMjIyLDcgKzIyMiw3IEBACiAJc2l6ZV9iMSA9IDB4MDEwMDAwMDA7CiAJc2l6ZV9iMiA9IDB4MDEwMDAwMDA7CiAJc2l6ZV9iMyA9IDB4MDEwMDAwMDA7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAJdWRlbGF5ICgxMDAwKTsKIAltZW1jdGwtPm1lbWNfb3IxID0gMHhGRjAwMEEwMDsKIAltZW1jdGwtPm1lbWNfYnIxID0gMHgwMDAwMDA4MTsKQEAgLTI1MSw3ICsyNTEsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIGxvbmcgaW50ICphZGRyOwogCXVsb25nIGNudCwgdmFsOwpAQCAtMjk0LDcgKzI5NCw3IEBACiAKIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAjaWZkZWYgQ09ORklHX0lERV9MRUQKIAkvKiBDb25maWd1cmUgUEE4IGFzIG91dHB1dCBwb3J0ICovCmRpZmYgLS1naXQgYS9ib2FyZC9sYW50ZWMvZmxhc2guYyBiL2JvYXJkL2xhbnRlYy9mbGFzaC5jCmluZGV4IGUwOGRhMzMuLjk3ZWQwNTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xhbnRlYy9mbGFzaC5jCisrKyBiL2JvYXJkL2xhbnRlYy9mbGFzaC5jCkBAIC0zMSw3ICszMSw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC01MSw3ICs1MSw3IEBACiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNjUsMTMgKzY1LDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCwgc2l6ZV9iMTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTE2LDI1ICsxMTYsMjUgQEAKIAkJbWVtY3RsLT5tZW1jX2JyMSwgbWVtY3RsLT5tZW1jX29yMSk7CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJQlJfTVNfR1BDTSB8IEJSX1BTXzMyIHwgQlJfVjsKIAogCURFQlVHRigiIyMgQlIwOiAweCUwOHggICAgT1IwOiAweCUwOHhcbiIsCiAJCW1lbWN0bC0+bWVtY19icjAsIG1lbWN0bC0+bWVtY19vcjApOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMTQ3LDI2ICsxNDcsMjYgQEAKICNlbmRpZgogCiAJaWYgKHNpemVfYjEpIHsKLQkJbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjEgJiAweEZGRkY4MDAwKTsKLQkJbWVtY3RsLT5tZW1jX2JyNSA9ICgoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAorCQltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjEgJiAweEZGRkY4MDAwKTsKKwkJbWVtY3RsLT5tZW1jX2JyNSA9ICgoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCkgJiBCUl9CQV9NU0spIHwKIAkJCQkgICAgQlJfTVNfR1BDTSB8IEJSX1BTXzMyIHwgQlJfVjsKIAogCQlERUJVR0YoIiMjIEJSNTogMHglMDh4ICAgIE9SNTogMHglMDh4XG4iLAogCQkJbWVtY3RsLT5tZW1jX2JyNSwgbWVtY3RsLT5tZW1jX29yNSk7CiAKIAkJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKKwkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApLAogCQkJCQkgICZmbGFzaF9pbmZvWzFdKTsKIAogCQlmbGFzaF9pbmZvWzFdLnNpemUgPSBzaXplX2IxOwogCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC00OTEsNyArNDkxLDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTYxNCw3ICs2MTQsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9sYW50ZWMvbGFudGVjLmMgYi9ib2FyZC9sYW50ZWMvbGFudGVjLmMKaW5kZXggNDZmNGRhOS4uNmQzNDg2YyAxMDA2NDQKLS0tIGEvYm9hcmQvbGFudGVjL2xhbnRlYy5jCisrKyBiL2JvYXJkL2xhbnRlYy9sYW50ZWMuYwpAQCAtMTExLDcgKzExMSw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwOwogCWludCBpOwpAQCAtMTIyLDcgKzEyMiw3IEBACiAJdXBtY29uZmlnIChVUE1BLCAodWludCAqKSBzZHJhbV90YWJsZSwKIAkJICAgc2l6ZW9mIChzZHJhbV90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8xQktfOEsgLyogWFhYIENGR19NUFRQUiBYWFggKi8gOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMUJLXzhLIC8qIFhYWCBDT05GSUdfU1lTX01QVFBSIFhYWCAqLyA7CiAKIAkvKiBidXJzdCBsZW5ndGg9NCwgYnVyc3QgdHlwZT1zZXF1ZW50aWFsLCBDQVMgbGF0ZW5jeT0yICovCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CkBAIC0xMzAsMTEgKzEzMCwxMSBAQAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgYmFuayAzIHRvIHRoZSBTRFJBTSBiYW5rIGF0IHByZWxpbWluYXJ5IGFkZHJlc3MuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAKIAkvKiBpbml0aWFsaXplIG1lbW9yeSBhZGRyZXNzIHJlZ2lzdGVyICovCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOwkvKiByZWZyZXNoIG5vdCBlbmFibGVkIHlldCAqLworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CS8qIHJlZnJlc2ggbm90IGVuYWJsZWQgeWV0ICovCiAKIAkvKiBtb2RlIGluaXRpYWxpemF0aW9uIChvZmZzZXQgNSkgKi8KIAl1ZGVsYXkgKDIwMCk7CQkvKiAweDgwMDA2MTA1ICovCkBAIC0xNzAsMTcgKzE3MCwxNyBAQAogCS8qCiAJICogQ2hlY2sgQmFuayAwIE1lbW9yeSBTaXplIGZvciByZS1jb25maWd1cmF0aW9uCiAJICovCi0Jc2l6ZV9iMCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwKKwlzaXplX2IwID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwKIAkJCSAgICAgKGxvbmcgKikgU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgfCBNQU1SX1BUQUU7CisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCB8IE1BTVJfUFRBRTsKIAogCS8qCiAJICogRmluYWwgbWFwcGluZzoKIAkgKi8KIAotCW1lbWN0bC0+bWVtY19vcjMgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjMgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAJdWRlbGF5ICgxMDAwKTsKIAogCXJldHVybiAoc2l6ZV9iMCk7CkBAIC0xOTksNyArMTk5LDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKZGlmZiAtLWdpdCBhL2JvYXJkL2xhcnQvZmxhc2guYyBiL2JvYXJkL2xhcnQvZmxhc2guYwppbmRleCA0MzI2ZDA3Li4yOWEzMzFlIDEwMDY0NAotLS0gYS9ib2FyZC9sYXJ0L2ZsYXNoLmMKKysrIGIvYm9hcmQvbGFydC9mbGFzaC5jCkBAIC00MSw3ICs0MSw3IEBACiAjZGVmaW5lIFBVWlpMRV9GUk9NX0ZMQVNIKHgpCWRhdGFfZnJvbV9mbGFzaCgoeCkpCiAjZGVmaW5lIFBVWlpMRV9UT19GTEFTSCh4KQlkYXRhX3RvX2ZsYXNoKCh4KSkKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogI2RlZmluZSBDTURfUkVBRF9BUlJBWQkJMHgwMEZGMDBGRgpAQCAtNzQsMTUgKzc0LDE1IEBACiAgICAgaW50IGksIGo7CiAgICAgdWxvbmcgc2l6ZSA9IDA7CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKQorICAgIGZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKQogICAgIHsKIAl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQogCSAgKElOVEVMX01BTlVGQUNUICYgRkxBU0hfVkVORE1BU0spIHwKIAkgIChJTlRFTF9JRF8yOEYxNjBGM0IgJiBGTEFTSF9UWVBFTUFTSyk7CiAJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCWlmIChpID09IDApCiAJICBmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CiAJZWxzZQpAQCAtMTA0LDggKzEwNCw4IEBACiAgICAgLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAgICAgICovCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19GTEFTSF9CQVNFLAotCQkgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULApAQCAtMzA1LDcgKzMwNSw3IEBACiAJICAgIGRvCiAJICAgIHsKIAkJLyogY2hlY2sgdGltZW91dCAqLwotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpCisJCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpCiAJCXsKIAkJICAgICphZGRyID0gUFVaWkxFX1RPX0ZMQVNIKENNRF9TVVNQRU5EKTsKIAkJICAgIHJlc3VsdCA9IEJJVF9USU1FT1VUOwpAQCAtMzgzLDcgKzM4Myw3IEBACiAgICAgZG8KICAgICB7CiAJLyogY2hlY2sgdGltZW91dCAqLwotCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkKKwlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKQogCXsKIAkgICAgKmFkZHIgPSBQVVpaTEVfVE9fRkxBU0goQ01EX1NVU1BFTkQpOwogCSAgICByZXN1bHQgPSBCSVRfVElNRU9VVDsKZGlmZiAtLWdpdCBhL2JvYXJkL2xpbmtzdGF0aW9uL2F2ci5jIGIvYm9hcmQvbGlua3N0YXRpb24vYXZyLmMKaW5kZXggYTY4OWM2My4uZmRhMWI5MSAxMDA2NDQKLS0tIGEvYm9hcmQvbGlua3N0YXRpb24vYXZyLmMKKysrIGIvYm9hcmQvbGlua3N0YXRpb24vYXZyLmMKQEAgLTc5LDggKzc5LDggQEAKIAogdm9pZCBpbml0X0FWUl9EVUFSVCAodm9pZCkKIHsKLQlOUzE2NTUwX3QgQVZSX3BvcnQgPSAoTlMxNjU1MF90KSBDRkdfTlMxNjU1MF9DT00yOwotCWludCBjbG9ja19kaXZpc29yID0gQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyA5NjAwOworCU5TMTY1NTBfdCBBVlJfcG9ydCA9IChOUzE2NTUwX3QpIENPTkZJR19TWVNfTlMxNjU1MF9DT00yOworCWludCBjbG9ja19kaXZpc29yID0gQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gOTYwMDsKIAogCS8qCiAJICogQVZSIHBvcnQgaW5pdCBzZXF1ZW5jZSB0YWtlbiBmcm9tCkBAIC0xMDUsMTIgKzEwNSwxMiBAQAogCiBzdGF0aWMgaW5saW5lIGludCBhdnJfdHN0Yyh2b2lkKQogewotCXJldHVybiAoTlMxNjU1MF90c3RjKChOUzE2NTUwX3QpQ0ZHX05TMTY1NTBfQ09NMikpOworCXJldHVybiAoTlMxNjU1MF90c3RjKChOUzE2NTUwX3QpQ09ORklHX1NZU19OUzE2NTUwX0NPTTIpKTsKIH0KIAogc3RhdGljIGlubGluZSBjaGFyIGF2cl9nZXRjKHZvaWQpCiB7Ci0JcmV0dXJuIChOUzE2NTUwX2dldGMoKE5TMTY1NTBfdClDRkdfTlMxNjU1MF9DT00yKSk7CisJcmV0dXJuIChOUzE2NTUwX2dldGMoKE5TMTY1NTBfdClDT05GSUdfU1lTX05TMTY1NTBfQ09NMikpOwogfQogCiBzdGF0aWMgaW50IHB1c2hfdGltZW91dChjaGFyIGJ1dHRvbl9jb2RlKQpkaWZmIC0tZ2l0IGEvYm9hcmQvbGlua3N0YXRpb24vaHdjdGwuYyBiL2JvYXJkL2xpbmtzdGF0aW9uL2h3Y3RsLmMKaW5kZXggMmU1YjVjOC4uOWZkNTZhZSAxMDA2NDQKLS0tIGEvYm9hcmQvbGlua3N0YXRpb24vaHdjdGwuYworKysgYi9ib2FyZC9saW5rc3RhdGlvbi9od2N0bC5jCkBAIC0yMSw3ICsyMSw3IEBACiAKICNkZWZpbmUgbWRlbGF5KG4pCXVkZWxheSgobikqMTAwMCkKIAotI2RlZmluZSBBVlJfUE9SVCBDRkdfTlMxNjU1MF9DT00yCisjZGVmaW5lIEFWUl9QT1JUIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCiAKIC8qIDIwMDUuNS4xMCBCVUZGQUxPIGFkZCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9ib2FyZC9saW5rc3RhdGlvbi9pZGUuYyBiL2JvYXJkL2xpbmtzdGF0aW9uL2lkZS5jCmluZGV4IDAyMDg2YTAuLjJjODlkNjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xpbmtzdGF0aW9uL2lkZS5jCisrKyBiL2JvYXJkL2xpbmtzdGF0aW9uL2lkZS5jCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIElUODIxMl9QQ0lfSWRlQnVzU2tld0NPTlRST0wJMHg0YwogI2RlZmluZSBJVDgyMTJfUENJX0lkZURyaXZpbmdDVVJSRU5UCTB4NDIKIAotZXh0ZXJuIHVsb25nIGlkZV9idXNfb2Zmc2V0W0NGR19JREVfTUFYQlVTXTsKK2V4dGVybiB1bG9uZyBpZGVfYnVzX29mZnNldFtDT05GSUdfU1lTX0lERV9NQVhCVVNdOwogZXh0ZXJuIHN0cnVjdCBwY2lfY29udHJvbGxlciBob3NlOwogCiBpbnQgaWRlX3ByZWluaXQgKHZvaWQpCkBAIC00Nyw3ICs0Nyw3IEBACiAJaW50IGw7CiAKIAlzdGF0dXMgPSAxOwotCWZvciAobCA9IDA7IGwgPCBDRkdfSURFX01BWEJVUzsgbCsrKSB7CisJZm9yIChsID0gMDsgbCA8IENPTkZJR19TWVNfSURFX01BWEJVUzsgbCsrKSB7CiAJCWlkZV9idXNfb2Zmc2V0W2xdID0gLUFUQV9TVEFUVVM7CiAJfQogCWRldmJ1c2ZuID0gcGNpX2ZpbmRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ01ELCBQQ0lfREVWSUNFX0lEX1NJSV82ODAsIDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbGlua3N0YXRpb24vbGlua3N0YXRpb24uYyBiL2JvYXJkL2xpbmtzdGF0aW9uL2xpbmtzdGF0aW9uLmMKaW5kZXggYWZiOTZhZS4uYzBkNDNlYiAxMDA2NDQKLS0tIGEvYm9hcmQvbGlua3N0YXRpb24vbGlua3N0YXRpb24uYworKysgYi9ib2FyZC9saW5rc3RhdGlvbi9saW5rc3RhdGlvbi5jCkBAIC01Myw3ICs1Myw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQlyZXR1cm4gKGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgQ0ZHX01BWF9SQU1fU0laRSkpOworCXJldHVybiAoZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2JvYXJkL2xvZ29kbC9mbGFzaC5jIGIvYm9hcmQvbG9nb2RsL2ZsYXNoLmMKaW5kZXggNGQ5YzExOC4uNTkzOTQzZiAxMDA2NDQKLS0tIGEvYm9hcmQvbG9nb2RsL2ZsYXNoLmMKKysrIGIvYm9hcmQvbG9nb2RsL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFIDB4MTAwMDAwMAogI2RlZmluZSBNQUlOX1NFQ1RfU0laRSAgMHgyMDAwMAkJLyogMng2NGsgPSAxMjhrIHBlciBzZWN0b3IgKi8KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qIE5PVEUgLSBDT05GSUdfRkxBU0hfMTZCSVQgbWVhbnMgdGhlIENQVSBpbnRlcmZhY2UgaXMgMTYtYml0LCBpdAogICogICAgICAgIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGZsYXNoIGNoaXAgYmVpbmcgOC1iaXQgb3IgMTYtYml0LgpAQCAtNTksNyArNTksNyBAQAogc3RhdGljIGludCB3cml0ZV93b3JkX2FtZChmbGFzaF9pbmZvX3QgKmluZm8sIEZQV1YgKmRlc3QsIEZQVyBkYXRhKTsKICNkZWZpbmUgd3JpdGVfd29yZChpbiwgZGUsIGRhKSAgIHdyaXRlX3dvcmRfYW1kKGluLCBkZSwgZGEpCiBzdGF0aWMgdm9pZCBmbGFzaF9nZXRfb2Zmc2V0cyh1bG9uZyBiYXNlLCBmbGFzaF9pbmZvX3QgKmluZm8pOwotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiBzdGF0aWMgdm9pZCBmbGFzaF9zeW5jX3JlYWxfcHJvdGVjdChmbGFzaF9pbmZvX3QgKmluZm8pOwogI2VuZGlmCiAKQEAgLTczLDE1ICs3MywxNSBAQAogICAgIGludCBpLCBqOwogICAgIHVsb25nIHNpemUgPSAwOwogCi0gICAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKICAgICB7CiAJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkgIChGTEFTSF9NQU5fQU1EICYgRkxBU0hfVkVORE1BU0spIHwKIAkgIChGTEFTSF9BTTY0MFUgJiBGTEFTSF9UWVBFTUFTSyk7CiAJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCXN3aXRjaCAoaSkKIAl7CiAJICAgY2FzZSAwOgpAQCAtMTA0LDggKzEwNCw4IEBACiAgICAgLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAgICAgICovCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19GTEFTSF9CQVNFLAotCQkgIENGR19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAorCQkgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBfYnNzX3N0YXJ0IC0gX2FybWJvb3Rfc3RhcnQsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULApAQCAtMzczLDcgKzM3Myw3IEBACiAJcmV0dXJuIChpbmZvLT5zaXplKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtNTEwLDcgKzUxMCw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNzAzLDcgKzcwMyw3IEBACiAKICAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKTB4MDA4MDAwODApKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJICAgIHJlcyA9IDE7CiAJfQpAQCAtNzQ5LDcgKzc0OSw3IEBACiAgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwQjAwMEIwOwkvKiBTdXNwZW5kIHByb2dyYW0JKi8KIAkgICAgcmVzID0gMTsKIAl9CkBAIC03NjQsNyArNzY0LDcgQEAKICAgICByZXR1cm4gKHJlcyk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiBpbnQgZmxhc2hfcmVhbF9wcm90ZWN0IChmbGFzaF9pbmZvX3QgKiBpbmZvLCBsb25nIHNlY3RvciwgaW50IHByb3QpCmRpZmYgLS1naXQgYS9ib2FyZC9sb2dvZGwvbG9nb2RsLmMgYi9ib2FyZC9sb2dvZGwvbG9nb2RsLmMKaW5kZXggODk3Nzg3Yi4uYzU3MjEwYSAxMDA2NDQKLS0tIGEvYm9hcmQvbG9nb2RsL2xvZ29kbC5jCisrKyBiL2JvYXJkL2xvZ29kbC9sb2dvZGwuYwpAQCAtNzcsMTcgKzc3LDE3IEBACiAKIAljYXNlIDA6CiAJCWlmIChzdGF0ZT09MSkgewotCQkJQ0ZHX0xFRF9BX0NSID0gQ0ZHX0xFRF9BX0JJVDsKKwkJCUNPTkZJR19TWVNfTEVEX0FfQ1IgPSBDT05GSUdfU1lTX0xFRF9BX0JJVDsKIAkJfSBlbHNlIGlmIChzdGF0ZT09MCkgewotCQkJQ0ZHX0xFRF9BX1NSID0gQ0ZHX0xFRF9BX0JJVDsKKwkJCUNPTkZJR19TWVNfTEVEX0FfU1IgPSBDT05GSUdfU1lTX0xFRF9BX0JJVDsKIAkJfQogCQlicmVhazsKIAogCWNhc2UgMToKIAkJaWYgKHN0YXRlPT0xKSB7Ci0JCQlDRkdfTEVEX0JfQ1IgPSBDRkdfTEVEX0JfQklUOworCQkJQ09ORklHX1NZU19MRURfQl9DUiA9IENPTkZJR19TWVNfTEVEX0JfQklUOwogCQl9IGVsc2UgaWYgKHN0YXRlPT0wKSB7Ci0JCQlDRkdfTEVEX0JfU1IgPSBDRkdfTEVEX0JfQklUOworCQkJQ09ORklHX1NZU19MRURfQl9TUiA9IENPTkZJR19TWVNfTEVEX0JfQklUOwogCQl9CiAJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL2xvZ29kbC9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9sb2dvZGwvbG93bGV2ZWxfaW5pdC5TCmluZGV4IDRjOWYxMGYuLjk4OTI0MzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xvZ29kbC9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQvbG9nb2RsL2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KICAgIC5tYWNybyBDUFdBSVQgcmVnCkBAIC01NCw3MSArNTQsNzEgQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAlsZHIJCXIwLAk9R1BTUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IxCi0JbGRyCQlyMSwJPUNGR19HUFNSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMgotCWxkcgkJcjEsCT1DRkdfR1BTUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IxCi0JbGRyCQlyMSwJPUNGR19HUENSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMgotCWxkcgkJcjEsCT1DRkdfR1BDUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIxCi0JbGRyCQlyMSwJPUNGR19HUERSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMgotCWxkcgkJcjEsCT1DRkdfR1BEUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjBfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMV9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMV9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIyX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJcjAsCT1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCQlyMSwJPUNGR19QU1NSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BTU1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qCWxkcglyMywJPU1TQzEJCS8gIGxvdyAtIGJhbmsgMiBMdWJib2NrIFJlZ2lzdGVycyAvIFNSQU0gKi8KLS8qCWxkcglyMiwJPUNGR19NU0MxX1ZBTAkvICBoaWdoIC0gYmFuayAzIEV0aGVybmV0IENvbnRyb2xsZXIgKi8KKy8qCWxkcglyMiwJPUNPTkZJR19TWVNfTVNDMV9WQUwJLyAgaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCiAvKglzdHIJcjIsCVtyM10JCS8gIG5lZWQgdG8gc2V0IE1TQzEgYmVmb3JlIHRyeWluZyB0byB3cml0ZSB0byB0aGUgSEVYIExFRHMgKi8KIC8qCWxkcglyMiwJW3IzXQkJLyAgbmVlZCB0byByZWFkIGl0IGJhY2sgdG8gbWFrZSBzdXJlIHRoZSB2YWx1ZSBsYXRjaGVzIChzZWUgTVNDIHNlY3Rpb24gb2YgbWFudWFsKSAqLwogLyogKi8KQEAgLTE2OCwxNyArMTY4LDE3IEBACiAJLyogTVNDIHJlZ2lzdGVyczogdGltaW5nLCBidXMgd2lkdGgsIG1lbSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkciAgICAgcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCS8qIHJlYWQgYmFjayB0byBlbnN1cmUgICAgICAqLwogCQkJCQkJLyogdGhhdCBkYXRhIGxhdGNoZXMgICAgICAgICovCiAJLyogTVNDMTogbkNTKDIsMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01TQzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCS8qIE1TQzI6IG5DUyg0LDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MyX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTE4NywzNyArMTg3LDM3IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01FQ1JfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNNRU0wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJLyogTUNNRU0xOiBDYXJkIEludGVyZmFjZSBzbG90IDEgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0FUVDBfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAkvKiBNQ0FUVDE6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJLyogTUNJTzA6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzFfT0ZGU0VUXQogCkBAIC0yMzksNyArMjM5LDcgQEAKIAkvKiBCZWZvcmUgYWNjZXNzaW5nIE1EUkVGUiB3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkLCBzbyB3ZSBzZXQgICAgICovCiAJLyogdGhpcyB0byBwb3dlciBvbiBkZWZhdWx0cyArIERSSSBmaWVsZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyCXIzLAk9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjMsCT1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlsZHIJcjIsCT0weEZGRgogCWFuZAlyMywJcjMsIHIyCiAJbGRyCXI0LAk9MHgwM2NhNDAwMApAQCAtMjY5LDcgKzI2OSw3IEBACiAJLyogU3RlcCA0YTogYXNzZXJ0IE1EUkVGUjpLP1JVTiBhbmQgY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAqLwogCS8qICAgICAgICAgIE1EUkVGUjpLMURCMiBhbmQgTURSRUZSOksyREIyIGFzIGRlc2lyZWQuICAgICAgICAgICAgICAgKi8KIAotCWxkcglyNCwJPUNGR19NRFJFRlJfVkFMCisJbGRyCXI0LAk9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJc3RyCXI0LAlbcjEsICNNRFJFRlJfT0ZGU0VUXQkvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KIAlsZHIJcjQsCVtyMSwgI01EUkVGUl9PRkZTRVRdCiAKQEAgLTI5Miw3ICsyOTIsNyBAQAogCS8qIFN0ZXAgNGQ6IHdyaXRlIE1EQ05GRyB3aXRoIE1EQ05GRzpERXggZGVhc3NlcnRlZCAoc2V0IHRvIDApLCB0byAgKi8KIAkvKiAgICAgICAgICBjb25maWd1cmUgYnV0IG5vdCBlbmFibGUgZWFjaCBTRFJBTSBwYXJ0aXRpb24gcGFpci4gICAgICovCiAKLQlsZHIJcjQsCT1DRkdfTURDTkZHX1ZBTAorCWxkcglyNCwJPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCWJpYwlyNCwJcjQsCSMoTURDTkZHX0RFMHxNRENORkdfREUxKQogCiAJc3RyICAgICByNCwgICAgIFtyMSwgI01EQ05GR19PRkZTRVRdCS8qIHdyaXRlIGJhY2sgTURDTkZHICAgICAgICAqLwpAQCAtMzI1LDcgKzMyNSw3IEBACiAJLyogICAgICAgICAgSmFuIDIwMDMsIEVycmF0YSAjMTE2LCBwYWdlIDMwLiAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAKLQlsZHIJcjMsCT1DRkdfRFJBTV9CQVNFCisJbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKIAlzdHIJcjIsIFtyM10KIAlzdHIJcjIsIFtyM10KIAlzdHIJcjIsIFtyM10KQEAgLTM0NSw3ICszNDUsNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMiwgID1DRkdfTURNUlNfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvbHBjMjI5MnNvZGltbS9mbGFzaC5jIGIvYm9hcmQvbHBjMjI5MnNvZGltbS9mbGFzaC5jCmluZGV4IDQ0OWE3NjguLmE3ZTE3NWQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2xwYzIyOTJzb2RpbW0vZmxhc2guYworKysgYi9ib2FyZC9scGMyMjkyc29kaW1tL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNkZWZpbmUgU1NUX0FERFIyICgodm9sYXRpbGUgdXNob3J0KikoU1NUX0JBU0VBRERSICsgKDB4MkFBQSA8PCAxKSkpCiAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIGV4dGVybiBpbnQgbHBjMjI5Ml9jb3B5X2J1ZmZlcl90b19mbGFzaChmbGFzaF9pbmZvX3QgKiwgdWxvbmcpOwogZXh0ZXJuIGludCBscGMyMjkyX2ZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqLCBpbnQsIGludCk7CmRpZmYgLS1naXQgYS9ib2FyZC9scGQ3YTQweC9mbGFzaC5jIGIvYm9hcmQvbHBkN2E0MHgvZmxhc2guYwppbmRleCBlYzQzODA3Li5lMzU1OGQyIDEwMDY0NAotLS0gYS9ib2FyZC9scGQ3YTQweC9mbGFzaC5jCisrKyBiL2JvYXJkL2xwZDdhNDB4L2ZsYXNoLmMKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFIDB4MTAwMDAwMAkvKiAxNk1CICgyIHggOCBNQikgKi8KICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUgIDB4NDAwMDAJCS8qIDI1NktCICgyIHggMTI4a0IpICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKICNkZWZpbmUgQ01EX1JFQURfQVJSQVkJCTB4MDBGRjAwRkYKQEAgLTY2LDE3ICs2NiwxNyBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoSU5URUxfTUFOVUZBQ1QgICAgICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShJTlRFTF9JRF8yOEY2NDBKM0EgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKLQkJCWZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCQkJZmxhc2hiYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCQllbHNlCiAJCQlwYW5pYyAoImNvbmZpZ3VyZWQgdG9vIG1hbnkgZmxhc2ggYmFua3MhXG4iKTsKIAkJZm9yIChqID0gMDsgaiA8IGZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50OyBqKyspIHsKQEAgLTkyLDggKzkyLDggQEAKIAkgKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCQkJLyogd2FpdCB1bnRpbCBmbGFzaCBpcyByZWFkeSAqLwogCQkJZG8gewogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSBDTURfU1RBVFVTX1JFU0VUOwogCQkJCQlyZXN1bHQgPSBCSVRfVElNRU9VVDsKIAkJCQkJYnJlYWs7CkBAIC0zOTIsNyArMzkyLDcgQEAKIAkvKiB3YWl0IHVudGlsIGZsYXNoIGlzIHJlYWR5ICovCiAJZG8gewogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCSphZGRyID0gQ01EX1NVU1BFTkQ7CiAJCQlyZXN1bHQgPSBCSVRfVElNRU9VVDsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbHViYm9jay9mbGFzaC5jIGIvYm9hcmQvbHViYm9jay9mbGFzaC5jCmluZGV4IDNmZjE5YmMuLmE0YjIwMWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x1YmJvY2svZmxhc2guYworKysgYi9ib2FyZC9sdWJib2NrL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI2RlZmluZSBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTY1LDcgKzY1LDcgQEAKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC04NSw4ICs4NSw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0gKTsKIAogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULApAQCAtMjAzLDEwICsyMDMsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNzYsNyArMjc2LDcgQEAKIAkJCSphZGRyID0gKEZQVykgMHgwMEQwMDBEMDsJLyogZXJhc2UgY29uZmlybSAqLwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00MTAsNyArNDEwLDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9sdWJib2NrL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL2x1YmJvY2svbG93bGV2ZWxfaW5pdC5TCmluZGV4IDJhOWJjYmYuLmRiNmY2OWQgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x1YmJvY2svbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL2x1YmJvY2svbG93bGV2ZWxfaW5pdC5TCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLURSQU1fU0laRTogIC5sb25nICAgQ0ZHX0RSQU1fU0laRQorRFJBTV9TSVpFOiAgLmxvbmcgICBDT05GSUdfU1lTX0RSQU1fU0laRQogCiAvKiB3YWl0IGZvciBjb3Byb2Nlc3NvciB3cml0ZSBjb21wbGV0ZSAqLwogICAgLm1hY3JvIENQV0FJVCByZWcKQEAgLTUxLDY3ICs1MSw2NyBAQAogCS8qIFNldCB1cCBHUElPIHBpbnMgZmlyc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCWxkcgkJcjAsCT1HUFNSMAotCWxkcgkJcjEsCT1DRkdfR1BTUjBfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BTUjEKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IyCi0JbGRyCQlyMSwJPUNGR19HUFNSMl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMl9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMAotCWxkcgkJcjEsCT1DRkdfR1BDUjBfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjEKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IyCi0JbGRyCQlyMSwJPUNGR19HUENSMl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMl9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMAotCWxkcgkJcjEsCT1DRkdfR1BEUjBfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjEKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIyCi0JbGRyCQlyMSwJPUNGR19HUERSMl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMl9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMF9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMF9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIwX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjBfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjBfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMF9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIxX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIxX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjFfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMV9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMV9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjJfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjJfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMl9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIyX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIyX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjJfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcglyMCwJPVBTU1IJCS8qIGVuYWJsZSBHUElPIHBpbnMgKi8KLQlsZHIJCXIxLAk9Q0ZHX1BTU1JfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfUFNTUl9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTE0OSwxNyArMTQ5LDE3IEBACiAJLyogTVNDIHJlZ2lzdGVyczogdGltaW5nLCBidXMgd2lkdGgsIG1lbSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkciAgICAgcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCS8qIHJlYWQgYmFjayB0byBlbnN1cmUgICAgICAqLwogCQkJCQkJLyogdGhhdCBkYXRhIGxhdGNoZXMgICAgICAgICovCiAJLyogTVNDMTogbkNTKDIsMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01TQzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCS8qIE1TQzI6IG5DUyg0LDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MyX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTE2OCwzNyArMTY4LDM3IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01FQ1JfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNNRU0wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJLyogTUNNRU0xOiBDYXJkIEludGVyZmFjZSBzbG90IDEgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0FUVDBfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAkvKiBNQ0FUVDE6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJLyogTUNJTzA6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzFfT0ZGU0VUXQogCkBAIC0yMTQsNyArMjE0LDcgQEAKIAkvKiBCZWZvcmUgYWNjZXNzaW5nIE1EUkVGUiB3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkLCBzbyB3ZSBzZXQgICAgICovCiAJLyogdGhpcyB0byBwb3dlciBvbiBkZWZhdWx0cyArIERSSSBmaWVsZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMywgICAgID1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjMsICAgICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJbGRyICAgICByMiwgICAgID0weEZGRgogCWFuZCAgICAgcjMsICAgICByMywgIHIyCiAJbGRyCXI0LAk9MHgwM2NhNDAwMApAQCAtMjQ0LDcgKzI0NCw3IEBACiAKIAkvKiBzZXQgTURSRUZSIGFjY29yZGluZyB0byB1c2VyIGRlZmluZSB3aXRoIGV4Y2VwdGlvbiBvZiBhIGZldyBiaXRzICovCiAKLQlsZHIgICAgIHI0LCAgICAgPUNGR19NRFJFRlJfVkFMCisJbGRyICAgICByNCwgICAgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlvcnIJcjQsCXI0LAkjKE1EUkVGUl9TTEZSU0gpCiAJYmljCXI0LAlyNCwJIyhNRFJFRlJfRTFQSU58TURSRUZSX0UwUElOKQogCXN0ciAgICAgcjQsICAgICBbcjEsICNNRFJFRlJfT0ZGU0VUXSAgICAvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KQEAgLTI1OSw3ICsyNTksNyBAQAogCiAJLyogU3RlcCA0YzogYXNzZXJ0IE1EUkVGUjpFMVBJTiBhbmQgRTBQSU8gYXMgZGVzaXJlZCAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByNCwgICAgID1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjQsICAgICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJc3RyICAgICByNCwgICAgIFtyMSwgI01EUkVGUl9PRkZTRVRdICAgIC8qIHdyaXRlIGJhY2sgTURSRUZSICAgICAgICAqLwogCWxkciAgICAgcjQsICAgICBbcjEsICNNRFJFRlJfT0ZGU0VUXQogCkBAIC0yNjcsNyArMjY3LDcgQEAKIAkvKiBTdGVwIDRkOiB3cml0ZSBNRENORkcgd2l0aCBNRENORkc6REV4IGRlYXNzZXJ0ZWQgKHNldCB0byAwKSwgdG8gICovCiAJLyogICAgICAgICAgY29uZmlndXJlIGJ1dCBub3QgZW5hYmxlIGVhY2ggU0RSQU0gcGFydGl0aW9uIHBhaXIuICAgICAqLwogCi0JbGRyCXI0LAk9Q0ZHX01EQ05GR19WQUwKKwlsZHIJcjQsCT1DT05GSUdfU1lTX01EQ05GR19WQUwKIAliaWMJcjQsCXI0LAkjKE1EQ05GR19ERTB8TURDTkZHX0RFMSkKIAogCXN0ciAgICAgcjQsICAgICBbcjEsICNNRENORkdfT0ZGU0VUXQkvKiB3cml0ZSBiYWNrIE1EQ05GRyAgICAgICAgKi8KQEAgLTI5NCw3ICsyOTQsNyBAQAogCS8qICAgICAgICAgIGRvY3VtZW50ZWQgaW4gU0RSQU0gZGF0YSBzaGVldHMuIFRoZSBhZGRyZXNzKGVzKSB1c2VkICAgKi8KIAkvKiAgICAgICAgICBmb3IgdGhpcyBwdXJwb3NlIG11c3Qgbm90IGJlIGNhY2hlYWJsZS4gICAgICAgICAgICAgICAgICovCiAKLQlsZHIJcjMsCT1DRkdfRFJBTV9CQVNFCisJbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKIAlzdHIJcjIsCVtyM10KIAlzdHIJcjIsCVtyM10KIAlzdHIJcjIsCVtyM10KQEAgLTMxNCw3ICszMTQsNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMiwgID1DRkdfTURNUlNfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvbHdtb24vZmxhc2guYyBiL2JvYXJkL2x3bW9uL2ZsYXNoLmMKaW5kZXggOGQ5ODU0NS4uZjcxY2MyNCAxMDA2NDQKLS0tIGEvYm9hcmQvbHdtb24vZmxhc2guYworKysgYi9ib2FyZC9sd21vbi9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC00MCwxNCArNDAsMTQgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCiAgKi8KIHN0YXRpYyB1bG9uZyBmbGFzaF9nZXRfc2l6ZSAodnVfbG9uZyAqYWRkciwgZmxhc2hfaW5mb190ICppbmZvKTsKIHN0YXRpYyBpbnQgd3JpdGVfZGF0YSAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogc3RhdGljIGludCB3cml0ZV9kYXRhX2J1ZiAoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWNoYXIgKiBjcCwgaW50IGxlbik7CiAjZW5kaWYKIHN0YXRpYyB2b2lkIGZsYXNoX2dldF9vZmZzZXRzICh1bG9uZyBiYXNlLCBmbGFzaF9pbmZvX3QgKmluZm8pOwpAQCAtNTcsMTMgKzU3LDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCwgc2l6ZV9iMTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTA4LDI1ICsxMDgsMjUgQEAKIAkJbWVtY3RsLT5tZW1jX2JyMSwgbWVtY3RsLT5tZW1jX29yMSk7CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCB8CisJbWVtY3RsLT5tZW1jX29yMCA9ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfAogCQkJCU9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjE7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9WOwogCiAJZGVidWcgKCIjIyBCUjA6IDB4JTA4eCAgICBPUjA6IDB4JTA4eFxuIiwKIAkJbWVtY3RsLT5tZW1jX2JyMCwgbWVtY3RsLT5tZW1jX29yMCk7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0xMzksMjcgKzEzOSwyNyBAQAogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewotCQltZW1jdGwtPm1lbWNfb3IxID0gKC1zaXplX2IxICYgMHhGRkZGODAwMCkgfCBDRkdfT1JfVElNSU5HX0ZMQVNIIHwKKwkJbWVtY3RsLT5tZW1jX29yMSA9ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfAogCQkJCQlPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxOwotCQltZW1jdGwtPm1lbWNfYnIxID0gKChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CisJCW1lbWN0bC0+bWVtY19icjEgPSAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CiAJCQkJCUJSX1BTXzMyIHwgQlJfVjsKIAogCQlkZWJ1ZyAoIiMjIEJSMTogMHglMDh4ICAgIE9SMTogMHglMDh4XG4iLAogCQkJbWVtY3RsLT5tZW1jX2JyMSwgbWVtY3RsLT5tZW1jX29yMSk7CiAKIAkJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKKwkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApLAogCQkJCQkgICZmbGFzaF9pbmZvWzFdKTsKIAogCQlmbGFzaF9pbmZvWzFdLnNpemUgPSBzaXplX2IxOwogCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCkBAIC0zNDIsMTAgKzM0MiwxMCBAQAogCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gMHgwMEZGMDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC00MDksNyArNDA5LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAJCQkvKiBUaGlzIHRha2VzIGF3ZnVsbHkgbG9uZyAtIHVwIHRvIDUwIG1zIGFuZCBtb3JlICovCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4MDBGRjAwRkY7IC8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwogCQkJCQlyZXR1cm4gMTsKQEAgLTQzNSw3ICs0MzUsNyBAQAogCQkJdWRlbGF5ICgxMDAwKTsKIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAweDAwQjAwMEIwOyAvKiBzdXNwZW5kIGVyYXNlCSAgKi8KIAkJCQkJKmFkZHIgPSAweDAwRkYwMEZGOyAvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTUwNCwxMCArNTA0LDEwIEBACiAJLyoKIAkgKiBoYW5kbGUgRkxBU0hfV0lEVEggYWxpZ25lZCBwYXJ0CiAJICovCi0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAl3aGlsZShjbnQgPj0gRkxBU0hfV0lEVEgpIHsKLQkJaSA9IENGR19GTEFTSF9CVUZGRVJfU0laRSA+IGNudCA/Ci0JCSAgICAoY250ICYgfihGTEFTSF9XSURUSCAtIDEpKSA6IENGR19GTEFTSF9CVUZGRVJfU0laRTsKKwkJaSA9IENPTkZJR19TWVNfRkxBU0hfQlVGRkVSX1NJWkUgPiBjbnQgPworCQkgICAgKGNudCAmIH4oRkxBU0hfV0lEVEggLSAxKSkgOiBDT05GSUdfU1lTX0ZMQVNIX0JVRkZFUl9TSVpFOwogCQlpZigocmMgPSB3cml0ZV9kYXRhX2J1ZihpbmZvLCB3cCwgc3JjLGkpKSAhPSAwKQogCQkJcmV0dXJuIHJjOwogCQl3cCArPSBpOwpAQCAtNTI2LDcgKzUyNiw3IEBACiAJCXdwICArPSBGTEFTSF9XSURUSDsKIAkJY250IC09IEZMQVNIX1dJRFRIOwogCX0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLwogCiAJaWYgKGNudCA9PSAwKSB7CiAJCXJldHVybiAoMCk7CkBAIC01OTQsNyArNTk0LDcgQEAKIAlpZiAoZmxhZykKIAkJZW5hYmxlX2ludGVycnVwdHMoKTsKIAotCWlmIChmbGFzaF9zdGF0dXNfY2hlY2soYWRkciwgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQsICJ3cml0ZSIpICE9IDApIHsKKwlpZiAoZmxhc2hfc3RhdHVzX2NoZWNrKGFkZHIsIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCwgIndyaXRlIikgIT0gMCkgewogCQlyZXR1cm4gKDEpOwogCX0KIApAQCAtNjAzLDcgKzYwMyw3IEBACiAJcmV0dXJuICgwKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBXcml0ZSBhIGJ1ZmZlciB0byBGbGFzaCwgcmV0dXJuczoKICAqIDAgLSBPSwpAQCAtNjI3LDcgKzYyNyw3IEBACiAJKmFkZHIgPSAweDAwNTAwMDUwOwkJLyogY2xlYXIgc3RhdHVzICovCiAJKmFkZHIgPSAweDAwZTgwMGU4OwkJLyogd3JpdGUgYnVmZmVyICovCiAKLQlpZigocmV0Y29kZSA9IGZsYXNoX3N0YXR1c19jaGVjayhhZGRyLCBDRkdfRkxBU0hfQlVGRkVSX1dSSVRFX1RPVVQsCisJaWYoKHJldGNvZGUgPSBmbGFzaF9zdGF0dXNfY2hlY2soYWRkciwgQ09ORklHX1NZU19GTEFTSF9CVUZGRVJfV1JJVEVfVE9VVCwKIAkJCQkJICJ3cml0ZSB0byBidWZmZXIiKSkgPT0gMCkgewogCQljbnQgPSBsZW4gLyBGTEFTSF9XSURUSDsKIAkJKmFkZHIgPSAoY250LTEpIHwgKChjbnQtMSkgPDwgMTYpOwpAQCAtNjM1LDE0ICs2MzUsMTQgQEAKIAkJCSpkc3QrKyA9ICpzcmMrKzsKIAkJfQogCQkqYWRkciA9IDB4MDBkMDAwZDA7CQkvKiB3cml0ZSBidWZmZXIgY29uZmlybSAqLwotCQlyZXRjb2RlID0gZmxhc2hfc3RhdHVzX2NoZWNrKGFkZHIsIENGR19GTEFTSF9CVUZGRVJfV1JJVEVfVE9VVCwKKwkJcmV0Y29kZSA9IGZsYXNoX3N0YXR1c19jaGVjayhhZGRyLCBDT05GSUdfU1lTX0ZMQVNIX0JVRkZFUl9XUklURV9UT1VULAogCQkJCQkJICJidWZmZXIgd3JpdGUiKTsKIAl9CiAJKmFkZHIgPSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCSphZGRyID0gMHgwMDUwMDA1MDsJLyogY2xlYXIgc3RhdHVzICovCiAJcmV0dXJuIHJldGNvZGU7CiB9Ci0jZW5kaWYgLyogQ0ZHX1VTRV9GTEFTSF9CVUZGRVJfV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1VTRV9GTEFTSF9CVUZGRVJfV1JJVEUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCmRpZmYgLS1naXQgYS9ib2FyZC9sd21vbi9sd21vbi5jIGIvYm9hcmQvbHdtb24vbHdtb24uYwppbmRleCA0YTJkOGU0Li5hYWRkMjU0IDEwMDY0NAotLS0gYS9ib2FyZC9sd21vbi9sd21vbi5jCisrKyBiL2JvYXJkL2x3bW9uL2x3bW9uLmMKQEAgLTY2LDcgKzY2LDcgQEAKICAqLwogY29uc3QgdWludCBzZHJhbV90YWJsZVtdID0KIHsKLSNpZiBkZWZpbmVkKENGR19NRU1PUllfNzUpIHx8IGRlZmluZWQoQ0ZHX01FTU9SWV84RSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTUVNT1JZXzc1KSB8fCBkZWZpbmVkKENPTkZJR19TWVNfTUVNT1JZXzhFKQogCS8qCiAJICogU2luZ2xlIFJlYWQuIChPZmZzZXQgMCBpbiBVUE0gUkFNKQogCSAqLwpAQCAtMTE0LDcgKzExNCw3IEBACiAJMHg3RkZGRkMwNywgLyogbGFzdCAqLwogCQkgICAgMHhGRkZGRkNGRiwgMHhGRkZGRkNGRiwgMHhGRkZGRkNGRiwKICNlbmRpZgotI2lmZGVmIENGR19NRU1PUllfN0UKKyNpZmRlZiBDT05GSUdfU1lTX01FTU9SWV83RQogCS8qCiAJICogU2luZ2xlIFJlYWQuIChPZmZzZXQgMCBpbiBVUE0gUkFNKQogCSAqLwpAQCAtMjExLDcgKzIxMSw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1yLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMDsKIAlsb25nIGludCBzaXplOCwgc2l6ZTk7CkBAIC0yMjIsMTkgKzIyMiwxOSBAQAogCSAqLwogCXVwbWNvbmZpZyAoVVBNQSwgKHVpbnQgKilzZHJhbV90YWJsZSwgc2l6ZW9mKHNkcmFtX3RhYmxlKS9zaXplb2YodWludCkpOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAkvKiBidXJzdCBsZW5ndGg9NCwgYnVyc3QgdHlwZT1zZXF1ZW50aWFsLCBDQVMgbGF0ZW5jeT0yICovCi0JbWVtY3RsLT5tZW1jX21hciA9IENGR19NQVI7CisJbWVtY3RsLT5tZW1jX21hciA9IENPTkZJR19TWVNfTUFSOwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDMgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SM19QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKIAogCS8qIGluaXRpYWxpemUgbWVtb3J5IGFkZHJlc3MgcmVnaXN0ZXIgKi8KLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0w7CS8qIHJlZnJlc2ggbm90IGVuYWJsZWQgeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KIAogCS8qIG1vZGUgaW5pdGlhbGl6YXRpb24gKG9mZnNldCA1KSAqLwogCXVkZWxheSAoMjAwKTsJCQkJLyogMHg4MDAwNjEwNSAqLwpAQCAtMjY4LDIyICsyNjgsMjIgQEAKIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIChsb25nICopU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl84Q09MLCAobG9uZyAqKVNEUkFNX0JBU0UzX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogCiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgKGxvbmcgKilTRFJBTV9CQVNFM19QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKwlzaXplOSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzlDT0wsIChsb25nICopU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewkJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgKi8KIAkJc2l6ZV9iMCA9IHNpemU5OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzlDT0wgfCBNQU1SX1BUQUU7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzlDT0wgfCBNQU1SX1BUQUU7CiAJCXVkZWxheSAoNTAwKTsKIAl9IGVsc2UgewkJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgKi8KIAkJc2l6ZV9iMCA9IHNpemU4OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgfCBNQU1SX1BUQUU7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0wgfCBNQU1SX1BUQUU7CiAJCXVkZWxheSAoNTAwKTsKIAl9CiAKQEAgLTI5Myw3ICsyOTMsNyBAQAogCiAJbWVtY3RsLT5tZW1jX29yMyA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfAogCQkJT1JfQ1NOVF9TQU0gfCBPUl9HNUxTIHwgU0RSQU1fVElNSU5HOwotCW1lbWN0bC0+bWVtY19icjMgPSAoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX2JyMyA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAJdWRlbGF5ICgxMDAwKTsKIAogCXJldHVybiAoc2l6ZV9iMCk7CkBAIC0zMjcsNyArMzI3LDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLCBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMzU5LDcgKzM1OSw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyogRGlzYWJsZSBFdGhlcm5ldCBURU5BIG9uIFBvcnQgQgogCSAqIE5lY2Vzc2FyeSBiZWNhdXNlIG9mIHB1bGwgdXAgaW4gQ09NMyBwb3J0LgpAQCAtNDM3LDcgKzQzNyw3IEBACiAKIC8qIG1heGltdW0gbnVtYmVyIG9mICJtYWdpYyIga2V5IGNvZGVzIHRoYXQgY2FuIGJlIGFzc2lnbmVkICovCiAKLXN0YXRpYyB1Y2hhciBrYmRfYWRkciA9IENGR19JMkNfS0VZQkRfQUREUjsKK3N0YXRpYyB1Y2hhciBrYmRfYWRkciA9IENPTkZJR19TWVNfSTJDX0tFWUJEX0FERFI7CiAKIHN0YXRpYyB1Y2hhciAqa2V5X21hdGNoICh1Y2hhciAqKTsKIApAQCAtNDgxLDcgKzQ4MSw3IEBACiAJdWNoYXIgdmFsLCBlcnJjZDsKIAlpbnQgaTsKIAotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCWdkLT5rYmRfc3RhdHVzID0gMDsKIApAQCAtODYyLDcgKzg2Miw3IEBACiAJaW50IGk7CiAKICNpZiAwIC8qIERvbmUgaW4ga2JkX2luaXQgKi8KLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAjZW5kaWYKIAogCS8qIFJlYWQga2V5cyAqLwpAQCAtODg3LDcgKzg4Nyw3IEBACiApOwogCiAvKiBSZWFkIGFuZCBzZXQgTFNCIHN3aXRjaCAqLwotI2RlZmluZSBDRkdfUENfVFhEMV9FTkEJCTB4MDAwOAkJLyogUEMuMTIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19UWEQxX0VOQQkJMHgwMDA4CQkvKiBQQy4xMiAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIEYqIEZ1bmN0aW9uOiAgICAgaW50IGRvX2xzYiAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsCkBAIC05MjAsNyArOTIwLDcgQEAKIGludCBkb19sc2IgKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCXVjaGFyIHZhbDsKLQlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCXN3aXRjaCAoYXJnYykgewogCWNhc2UgMToJCQkJCS8qIGxzYiAtIHByaW50IHNldHRpbmcgKi8KQEAgLTkzMiwxNCArOTMyLDE0IEBACiAKIAkJaWYgKHN0cmNtcCAoYXJndlsxXSwgIm9uIikgPT0gMCkgewogCQkJdmFsIHw9IDB4MjA7Ci0JCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH4oQ0ZHX1BDX1RYRDFfRU5BKTsKLQkJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gQ0ZHX1BDX1RYRDFfRU5BOwotCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSBDRkdfUENfVFhEMV9FTkE7CisJCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH4oQ09ORklHX1NZU19QQ19UWEQxX0VOQSk7CisJCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IENPTkZJR19TWVNfUENfVFhEMV9FTkE7CisJCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9IENPTkZJR19TWVNfUENfVFhEMV9FTkE7CiAJCX0gZWxzZSBpZiAoc3RyY21wIChhcmd2WzFdLCAib2ZmIikgPT0gMCkgewogCQkJdmFsICY9IH4weDIwOwotCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENGR19QQ19UWEQxX0VOQSk7Ci0JCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH4oQ0ZHX1BDX1RYRDFfRU5BKTsKLQkJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgfD0gQ0ZHX1BDX1RYRDFfRU5BOworCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY3BhciAmPSB+KENPTkZJR19TWVNfUENfVFhEMV9FTkEpOworCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KENPTkZJR19TWVNfUENfVFhEMV9FTkEpOworCQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSBDT05GSUdfU1lTX1BDX1RYRDFfRU5BOwogCQl9IGVsc2UgewogCQkJYnJlYWs7CiAJCX0KQEAgLTk4MCw3ICs5ODAsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogdWNoYXIgcGljX3JlYWQgKHVjaGFyIHJlZykKIHsKLQlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ0ZHX0kyQ19QSUNJT19BRERSLCByZWcpKTsKKwlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ09ORklHX1NZU19JMkNfUElDSU9fQUREUiwgcmVnKSk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTAwMSw3ICsxMDAxLDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHZvaWQgcGljX3dyaXRlICh1Y2hhciByZWcsIHVjaGFyIHZhbCkKIHsKLQlpMmNfcmVnX3dyaXRlIChDRkdfSTJDX1BJQ0lPX0FERFIsIHJlZywgdmFsKTsKKwlpMmNfcmVnX3dyaXRlIChDT05GSUdfU1lTX0kyQ19QSUNJT19BRERSLCByZWcsIHZhbCk7CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCb2FyZCBDb250cm9sIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTEwMjIsNyArMTAyMiw3IEBACiB2b2lkIGJvYXJkX3Bvd2Vyb2ZmICh2b2lkKQogewogICAgIC8qIFR1cm4gYmF0dGVyeSBvZmYgKi8KLSAgICAoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfigxIDw8ICgzMSAtIDEzKSk7CisgICAgKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KDEgPDwgKDMxIC0gMTMpKTsKIAogICAgIHdoaWxlICgxKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL2x3bW9uL3BjbWNpYS5jIGIvYm9hcmQvbHdtb24vcGNtY2lhLmMKaW5kZXggODgyNWJkOS4uYWQyZTYwZCAxMDA2NDQKLS0tIGEvYm9hcmQvbHdtb24vcGNtY2lhLmMKKysrIGIvYm9hcmQvbHdtb24vcGNtY2lhLmMKQEAgLTUxLDEwICs1MSwxMCBAQAogI2VuZGlmCiAJdWRlbGF5KDEwMDAwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3NpdV9jb25mKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9zaXVfY29uZikpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBTSVVNQ1IgdG8gZW5hYmxlIFBDTUNJQSBwb3J0IEIKQEAgLTEwOCw4ICsxMDgsOCBAQAogCiAJLyogIHN3aXRjaCBWQ0Mgb24gKi8KIAl2YWwgfD0gTUFYMTYwNF9PUF9TVVMgfCBNQVgxNjA0X1ZDQ0JPTjsKLQlpMmNfaW5pdCAgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOwotCWkyY193cml0ZSAoQ0ZHX0kyQ19QT1dFUl9BX0FERFIsIDAsIDAsICZ2YWwsIDEpOworCWkyY19pbml0ICAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKKwlpMmNfd3JpdGUgKENPTkZJR19TWVNfSTJDX1BPV0VSX0FfQUREUiwgMCwgMCwgJnZhbCwgMSk7CiAKIAl1ZGVsYXkoNTAwMDAwKTsKIApAQCAtMTM3LDEzICsxMzcsMTMgQEAKIAogCWRlYnVnICgiaGFyZHdhcmVfZGlzYWJsZTogIiBQQ01DSUFfQk9BUkRfTVNHICIgU2xvdCAlY1xuIiwgJ0EnK3Nsb3QpOwogCi0JaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotCXBjbXAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXBjbXAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAKIAkvKiByZW1vdmUgYWxsIHBvd2VyLCBwdXQgb3V0cHV0IGluIGhpZ2ggaW1wZWRhbmNlIHN0YXRlICovCiAJdmFsICA9IE1BWDE2MDRfVkNDQkhJWiB8IE1BWDE2MDRfVlBQQkhJWjsKLQlpMmNfaW5pdCAgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOwotCWkyY193cml0ZSAoQ0ZHX0kyQ19QT1dFUl9BX0FERFIsIDAsIDAsICZ2YWwsIDEpOworCWkyY19pbml0ICAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKKwlpMmNfd3JpdGUgKENPTkZJR19TWVNfSTJDX1BPV0VSX0FfQUREUiwgMCwgMCwgJnZhbCwgMSk7CiAKIAkvKiBDb25maWd1cmUgUENNQ0lBIEdlbmVyYWwgQ29udHJvbCBSZWdpc3RlciAqLwogCWRlYnVnICgiRGlzYWJsZSBQQ01DSUEgYnVmZmVycyBhbmQgYXNzZXJ0IFJFU0VUXG4iKTsKQEAgLTE4MSw4ICsxODEsOCBAQAogCQkiIFNsb3QgJWMsIFZjYz0lZC4lZCwgVnBwPSVkLiVkXG4iLAogCQknQScrc2xvdCwgdmNjLzEwLCB2Y2MlMTAsIHZwcC8xMCwgdmNjJTEwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCS8qCiAJICogRGlzYWJsZSBQQ01DSUEgYnVmZmVycyAoaXNvbGF0ZSB0aGUgaW50ZXJmYWNlKQogCSAqIGFuZCBhc3NlcnQgUkVTRVQgc2lnbmFsCkBAIC0xOTksOCArMTk5LDggQEAKIAkgKi8KIAlkZWJ1ZyAoIlBDTUNJQSBwb3dlciBPRkZcbiIpOwogCXZhbCAgPSBNQVgxNjA0X1ZDQ0JISVogfCBNQVgxNjA0X1ZQUEJISVo7Ci0JaTJjX2luaXQgIChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKLQlpMmNfd3JpdGUgKENGR19JMkNfUE9XRVJfQV9BRERSLCAwLCAwLCAmdmFsLCAxKTsKKwlpMmNfaW5pdCAgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CisJaTJjX3dyaXRlIChDT05GSUdfU1lTX0kyQ19QT1dFUl9BX0FERFIsIDAsIDAsICZ2YWwsIDEpOwogCiAJdmFsID0gMDsKIAlzd2l0Y2godmNjKSB7CkBAIC0yMTYsNyArMjE2LDcgQEAKIAkJcGNtcC0+cGNtY19waXByLAogCQkocGNtcC0+cGNtY19waXByICYgMHgwMDAwODAwMCkgPyAib25seSA1IFYiIDogImNhbiBkbyAzLjNWIik7CiAKLQlpMmNfd3JpdGUgKENGR19JMkNfUE9XRVJfQV9BRERSLCAwLCAwLCAmdmFsLCAxKTsKKwlpMmNfd3JpdGUgKENPTkZJR19TWVNfSTJDX1BPV0VSX0FfQUREUiwgMCwgMCwgJnZhbCwgMSk7CiAJaWYgKHZhbCkgewogCQlkZWJ1ZyAoIlBDTUNJQSBwb3dlcmVkIGF0ICVzVlxuIiwKIAkJCSh2YWwgJiBNQVgxNjA0X1ZDQ18zNSkgPyAiMy4zIiA6ICI1LjAiKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2x3bW9uNS9jb25maWcubWsgYi9ib2FyZC9sd21vbjUvY29uZmlnLm1rCmluZGV4IGJmMmI4NzkuLjNjNmQwNDEgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x3bW9uNS9jb25maWcubWsKKysrIGIvYm9hcmQvbHdtb241L2NvbmZpZy5tawpAQCAtMzUsNSArMzUsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL2x3bW9uNS9pbml0LlMgYi9ib2FyZC9sd21vbjUvaW5pdC5TCmluZGV4IDVhYWRlNzIuLjcxOGNlYzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x3bW9uNS9pbml0LlMKKysrIGIvYm9hcmQvbHdtb241L2luaXQuUwpAQCAtNDcsNyArNDcsNyBAQAogCSAqIEJPT1RfQ1MgKEZMQVNIKSBtdXN0IGJlIGZpcnN0LiBCZWZvcmUgcmVsb2NhdGlvbiBTQV9JIGNhbiBiZSBvZmYgdG8gdXNlIHRoZQogCSAqIHNwZWVkIHVwIGJvb3QgcHJvY2Vzcy4gSXQgaXMgcGF0Y2hlZCBhZnRlciByZWxvY2F0aW9uIHRvIGVuYWJsZSBTQV9JCiAJICovCi0JdGxiZW50cnkoQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDRkdfQk9PVF9CQVNFX0FERFIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0cpCisJdGxiZW50cnkoQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgU1pfMjU2TSwgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfRykKIAogCS8qCiAJICogVExCIGVudHJpZXMgZm9yIFNEUkFNIGFyZSBub3QgbmVlZGVkIG9uIHRoaXMgcGxhdGZvcm0uCkBAIC01NSwyOCArNTUsMjggQEAKIAkgKiByb3V0aW5lLgogCSAqLwogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0RDQUNIRQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCiAJLyogVExCLWVudHJ5IGZvciBpbml0LXJhbSBpbiBkY2FjaGUgKFNBX0kgbXVzdCBiZSB0dXJuZWQgb2ZmISkgKi8KLQl0bGJlbnRyeShDRkdfSU5JVF9SQU1fQUREUiwgU1pfNEssIENGR19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQorCXRsYmVudHJ5KENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgU1pfNEssIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKICNlbmRpZgogCiAJLyogVExCLWVudHJ5IGZvciBQQ0kgTWVtb3J5ICovCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoQ0ZHX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeShDRkdfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UyLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KENGR19QQ0lfTUVNQkFTRTMsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTMsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeShDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KENPTkZJR19TWVNfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKIAogCS8qIFRMQi1lbnRyeSBmb3IgdGhlIEZQR0EgQ2hpcCBzZWxlY3QgMiAqLwotCXRsYmVudHJ5KENGR19GUEdBX0JBU0VfMCwgU1pfMU0sIENGR19GUEdBX0JBU0VfMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfSXxTQV9HKQorCXRsYmVudHJ5KENPTkZJR19TWVNfRlBHQV9CQVNFXzAsIFNaXzFNLCBDT05GSUdfU1lTX0ZQR0FfQkFTRV8wLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCiAKIAkvKiBUTEItZW50cnkgZm9yIHRoZSBGUEdBIENoaXAgc2VsZWN0IDMgKi8KLQl0bGJlbnRyeShDRkdfRlBHQV9CQVNFXzEsIFNaXzFNLCBDRkdfRlBHQV9CQVNFXzEsIDEsQUNfUnxBQ19XfEFDX1h8U0FfSXxTQV9HKQorCXRsYmVudHJ5KENPTkZJR19TWVNfRlBHQV9CQVNFXzEsIFNaXzFNLCBDT05GSUdfU1lTX0ZQR0FfQkFTRV8xLCAxLEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKIAogCS8qIFRMQi1lbnRyeSBmb3IgdGhlIExJTUUgQ29udHJvbGxlciAqLwotCXRsYmVudHJ5KENGR19MSU1FX0JBU0VfMCwgU1pfMTZNLCBDRkdfTElNRV9CQVNFXzAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKLQl0bGJlbnRyeShDRkdfTElNRV9CQVNFXzEsIFNaXzE2TSwgQ0ZHX0xJTUVfQkFTRV8xLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9JfFNBX0cpCi0JdGxiZW50cnkoQ0ZHX0xJTUVfQkFTRV8yLCBTWl8xNk0sIENGR19MSU1FX0JBU0VfMiwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfSXxTQV9HKQotCXRsYmVudHJ5KENGR19MSU1FX0JBU0VfMywgU1pfMTZNLCBDRkdfTElNRV9CQVNFXzMsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0xJTUVfQkFTRV8wLCBTWl8xNk0sIENPTkZJR19TWVNfTElNRV9CQVNFXzAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0xJTUVfQkFTRV8xLCBTWl8xNk0sIENPTkZJR19TWVNfTElNRV9CQVNFXzEsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0xJTUVfQkFTRV8yLCBTWl8xNk0sIENPTkZJR19TWVNfTElNRV9CQVNFXzIsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKKwl0bGJlbnRyeShDT05GSUdfU1lTX0xJTUVfQkFTRV8zLCBTWl8xNk0sIENPTkZJR19TWVNfTElNRV9CQVNFXzMsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0l8U0FfRykKIAogCS8qIFRMQi1lbnRyeSBmb3IgSW50ZXJuYWwgUmVnaXN0ZXJzICYgT0NNICovCiAJdGxiZW50cnkoMHhlMDAwMDAwMCwgU1pfMTZNLCAweGUwMDAwMDAwLCAwLCAgQUNfUnxBQ19XfEFDX1h8U0FfSSkKZGlmZiAtLWdpdCBhL2JvYXJkL2x3bW9uNS9rYmQuYyBiL2JvYXJkL2x3bW9uNS9rYmQuYwppbmRleCAxZTUzNDlhLi4wYTg3ODdhIDEwMDY0NAotLS0gYS9ib2FyZC9sd21vbjUva2JkLmMKKysrIGIvYm9hcmQvbHdtb241L2tiZC5jCkBAIC03NCw3ICs3NCw3IEBACiAKIC8qIG1heGltdW0gbnVtYmVyIG9mICJtYWdpYyIga2V5IGNvZGVzIHRoYXQgY2FuIGJlIGFzc2lnbmVkICovCiAKLXN0YXRpYyB1Y2hhciBrYmRfYWRkciA9IENGR19JMkNfS0VZQkRfQUREUjsKK3N0YXRpYyB1Y2hhciBrYmRfYWRkciA9IENPTkZJR19TWVNfSTJDX0tFWUJEX0FERFI7CiAKIHN0YXRpYyB1Y2hhciAqa2V5X21hdGNoICh1Y2hhciAqKTsKIApAQCAtMTA2LDcgKzEwNiw3IEBACiAJdWNoYXIgdmFsLCBlcnJjZDsKIAlpbnQgaTsKIAotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCWdkLT5rYmRfc3RhdHVzID0gMDsKIApAQCAtNDEyLDcgKzQxMiw3IEBACiAJaW50IGk7CiAKICNpZiAwIC8qIERvbmUgaW4ga2JkX2luaXQgKi8KLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAjZW5kaWYKIAogCS8qIFJlYWQga2V5cyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbHdtb241L2x3bW9uNS5jIGIvYm9hcmQvbHdtb241L2x3bW9uNS5jCmluZGV4IDg5NzViZmQuLmFhNjJmMzcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x3bW9uNS9sd21vbjUuYworKysgYi9ib2FyZC9sd21vbjUvbHdtb241LmMKQEAgLTI3LDcgKzI3LDcgQEAKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLWV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2V4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIHVsb25nIGZsYXNoX2dldF9zaXplKHVsb25nIGJhc2UsIGludCBiYW5rbnVtKTsKIGludCBtaXNjX2luaXRfcl9rYmQodm9pZCk7CkBAIC05NCwyNCArOTQsMjQgQEAKIAlyZWcgPSAwOwogCW10c2RyKHNkcl9wY2kwLCAweDAwMDAwMDAwIHwgcmVnKTsKIAotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0ZMQVNIX1dQLCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fRkxBU0hfV1AsIDEpOwogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzEKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19ISUdIU0lERSwgMSk7CisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUMxCisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0hJR0hTSURFLCAxKTsKIAogCXJlZyA9IDA7IC8qIHJldXNlIGFzIGNvdW50ZXIgKi8KLQlvdXRfYmUzMigodm9pZCAqKUNGR19EU1BJQ19URVNUX0FERFIsCi0JCWluX2JlMzIoKHZvaWQgKilDRkdfRFNQSUNfVEVTVF9BRERSKQotCQkJJiB+Q0ZHX0RTUElDX1RFU1RfTUFTSyk7Ci0Jd2hpbGUgKCFncGlvX3JlYWRfaW5fYml0KENGR19HUElPX0RTUElDX1JFQURZKSAmJiByZWcrKyA8IDEwMDApIHsKKwlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfRFNQSUNfVEVTVF9BRERSLAorCQlpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19EU1BJQ19URVNUX0FERFIpCisJCQkmIH5DT05GSUdfU1lTX0RTUElDX1RFU1RfTUFTSyk7CisJd2hpbGUgKCFncGlvX3JlYWRfaW5fYml0KENPTkZJR19TWVNfR1BJT19EU1BJQ19SRUFEWSkgJiYgcmVnKysgPCAxMDAwKSB7CiAJCXVkZWxheSgxMDAwKTsKIAl9Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fSElHSFNJREUsIDApOwotCWlmIChncGlvX3JlYWRfaW5fYml0KENGR19HUElPX0RTUElDX1JFQURZKSkgeworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19ISUdIU0lERSwgMCk7CisJaWYgKGdwaW9fcmVhZF9pbl9iaXQoQ09ORklHX1NZU19HUElPX0RTUElDX1JFQURZKSkgewogCQkvKiBzZXQgImJvb3QgZXJyb3IiIGZsYWcgKi8KLQkJb3V0X2JlMzIoKHZvaWQgKilDRkdfRFNQSUNfVEVTVF9BRERSLAotCQkJaW5fYmUzMigodm9pZCAqKUNGR19EU1BJQ19URVNUX0FERFIpIHwKLQkJCUNGR19EU1BJQ19URVNUX01BU0spOworCQlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfRFNQSUNfVEVTVF9BRERSLAorCQkJaW5fYmUzMigodm9pZCAqKUNPTkZJR19TWVNfRFNQSUNfVEVTVF9BRERSKSB8CisJCQlDT05GSUdfU1lTX0RTUElDX1RFU1RfTUFTSyk7CiAJfQogI2VuZGlmCiAKQEAgLTEyMywxNCArMTIzLDE0IEBACiAJICogTURJTyBhZGRyZXNzLiBBIDJuZCByZXNldCBhdCB0aGlzIHRpbWUgd2lsbCBtYWtlIHN1cmUsIHRoYXQgdGhlCiAJICogY29ycmVjdCBhZGRyZXNzIGlzIGxhdGNoZWQuCiAJICovCi0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fUEhZMF9SU1QsIDEpOwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX1BIWTFfUlNULCAxKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fUEhZMF9SU1QsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19QSFkxX1JTVCwgMSk7CiAJdWRlbGF5KDEwMDApOwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX1BIWTBfUlNULCAwKTsKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19QSFkxX1JTVCwgMCk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX1BIWTBfUlNULCAwKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fUEhZMV9SU1QsIDApOwogCXVkZWxheSgxMDAwKTsKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19QSFkwX1JTVCwgMSk7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fUEhZMV9SU1QsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19QSFkwX1JTVCwgMSk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX1BIWTFfUlNULCAxKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTk0LDcgKzE5NCw3IEBACiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAtQ0ZHX01PTklUT1JfTEVOLAorCQkJICAgIC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJICAgIDB4ZmZmZmZmZmYsCiAJCQkgICAgJmZsYXNoX2luZm9bMV0pOwogCkBAIC0zMzgsNyArMzM4LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtMzUyLDE0ICszNTIsMTQgQEAKIAkgIHwgTWFrZSB0aGlzIHJlZ2lvbiBub24tcHJlZmV0Y2hhYmxlLgogCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMExBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDRkdfUENJX01FTUJBU0UpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMFBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMFBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIAogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4MDAwMDAwMDApOwkvKiBQTU0wIE1hc2svQXR0cmlidXRlIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwotCW91dDMycihQQ0lYMF9QTU0xTEEsIENGR19QQ0lfTUVNQkFTRTIpOyAvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDRkdfUENJX01FTUJBU0UyKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7IC8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xUENJTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE1NMVBDSUhBLCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHhFMDAwMDAwMSk7CS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIApAQCAtMzc0LDggKzM3NCw4IEBACiAKIAkvKiBQcm9ncmFtIHRoZSBib2FyZCdzIHN1YnN5c3RlbSBpZC92ZW5kb3IgaWQgKi8KIAlwY2lfd3JpdGVfY29uZmlnX3dvcmQoMCwgUENJX1NVQlNZU1RFTV9WRU5ET1JfSUQsCi0JCQkgICAgICBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCk7Ci0JcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fSUQsIENGR19QQ0lfU1VCU1lTX0lEKTsKKwkJCSAgICAgIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCk7CisJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19JRCk7CiAKIAkvKiBDb25maWd1cmUgY29tbWFuZCByZWdpc3RlciBhcyBidXMgbWFzdGVyICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9DT01NQU5ELCBQQ0lfQ09NTUFORF9NQVNURVIpOwpAQCAtMzg5LDEzICszODksMTMgQEAKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKDAsIFBDSV9CUkRHT1BUMiwgMHgwMDAwMDEwMSk7CiAKIH0KLSNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgcGNpX21hc3Rlcl9pbml0CiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpCiB2b2lkIHBjaV9tYXN0ZXJfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJdW5zaWduZWQgc2hvcnQgdGVtcF9zaG9ydDsKQEAgLTQxMCw3ICs0MTAsNyBAQAogCQkJICAgICAgdGVtcF9zaG9ydCB8IFBDSV9DT01NQU5EX01BU1RFUiB8CiAJCQkgICAgICBQQ0lfQ09NTUFORF9NRU1PUlkpOwogfQotI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX01BU1RFUl9JTklUKSAqLworI2VuZGlmCQkJCS8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVCkgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBpc19wY2lfaG9zdApAQCAtNDYwLDggKzQ2MCw4IEBACiAJLyoKIAkgKiBUb2dnbGUgd2F0Y2hkb2cgb3V0cHV0CiAJICovCi0JdmFsID0gZ3Bpb19yZWFkX291dF9iaXQoQ0ZHX0dQSU9fV0FUQ0hET0cpID09IDAgPyAxIDogMDsKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19XQVRDSERPRywgdmFsKTsKKwl2YWwgPSBncGlvX3JlYWRfb3V0X2JpdChDT05GSUdfU1lTX0dQSU9fV0FUQ0hET0cpID09IDAgPyAxIDogMDsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fV0FUQ0hET0csIHZhbCk7CiB9CiAKIGludCBkb19lZXByb21fd3AoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCkBAIC00NzIsOSArNDcyLDkgQEAKIAl9CiAKIAlpZiAoKHN0cmNtcChhcmd2WzFdLCAib24iKSA9PSAwKSkgewotCQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19FRVBST01fRVhUX1dQLCAxKTsKKwkJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0VFUFJPTV9FWFRfV1AsIDEpOwogCX0gZWxzZSBpZiAoKHN0cmNtcChhcmd2WzFdLCAib2ZmIikgPT0gMCkpIHsKLQkJZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fRUVQUk9NX0VYVF9XUCwgMCk7CisJCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19FRVBST01fRVhUX1dQLCAwKTsKIAl9IGVsc2UgewogCQlwcmludGYoIlVzYWdlOlxuJXNcbiIsIGNtZHRwLT51c2FnZSk7CiAJCXJldHVybiAxOwpAQCAtNTI4LDIzICs1MjgsMjMgQEAKIAkvKgogCSAqIFJlc2V0IExpbWUgY29udHJvbGxlcgogCSAqLwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0xJTUVfUywgMSk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0xJTUVfUywgMSk7CiAJdWRlbGF5KDUwMCk7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fTElNRV9SU1QsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19MSU1FX1JTVCwgMSk7CiAKIAkvKiBMaW1lIG1lbW9yeSBjbG9jayBhZGp1c3RlZCB0byAxMDBNSHogKi8KLQlvdXRfYmUzMigodm9pZCAqKUNGR19MSU1FX1NEUkFNX0NMT0NLLCBDRkdfTElNRV9DTE9DS18xMDBNSFopOworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19MSU1FX1NEUkFNX0NMT0NLLCBDT05GSUdfU1lTX0xJTUVfQ0xPQ0tfMTAwTUhaKTsKIAkvKiBXYWl0IHVudGlsbCB0aW1lIGV4cGlyZWQuIEJlY2F1c2Ugb2YgcmVxdWlyZW1lbnRzIGluIGxpbWUgbWFudWFsICovCiAJdWRlbGF5KDMwMCk7CiAJLyogV3JpdGUgbGltZSBjb250cm9sbGVyIG1lbW9yeSBwYXJhbWV0ZXJzICovCi0Jb3V0X2JlMzIoKHZvaWQgKilDRkdfTElNRV9NTVIsIENGR19MSU1FX01NUl9WQUxVRSk7CisJb3V0X2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0xJTUVfTU1SLCBDT05GSUdfU1lTX0xJTUVfTU1SX1ZBTFVFKTsKIAogCW1iODYyeHgud2luU2l6ZVggPSA2NDA7CiAJbWI4NjJ4eC53aW5TaXplWSA9IDQ4MDsKIAltYjg2Mnh4LmdkZkJ5dGVzUFAgPSAyOwogCW1iODYyeHguZ2RmSW5kZXggPSBHREZfMTVCSVRfNTU1UkdCOwogCi0JcmV0dXJuIENGR19MSU1FX0JBU0VfMDsKKwlyZXR1cm4gQ09ORklHX1NZU19MSU1FX0JBU0VfMDsKIH0KIAogI2RlZmluZSBERUZBVUxUX0JSSUdIVE5FU1MgMHg2NApAQCAtNTUzLDEyICs1NTMsMTIgQEAKIHsKIAlpZiAoYnJpZ2h0bmVzcyA+IDApIHsKIAkJLyogcHdtIGR1dHksIGxhbXAgb24gKi8KLQkJb3V0X2JlMzIoKHZvaWQgKikoQ0ZHX0ZQR0FfQkFTRV8wICsgMHgwMDAwMDAyNCksIGJyaWdodG5lc3MpOwotCQlvdXRfYmUzMigodm9pZCAqKShDRkdfRlBHQV9CQVNFXzAgKyAweDAwMDAwMDIwKSwgMHg3MDEpOworCQlvdXRfYmUzMigodm9pZCAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRV8wICsgMHgwMDAwMDAyNCksIGJyaWdodG5lc3MpOworCQlvdXRfYmUzMigodm9pZCAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRV8wICsgMHgwMDAwMDAyMCksIDB4NzAxKTsKIAl9IGVsc2UgewogCQkvKiBsYW1wIG9mZiAqLwotCQlvdXRfYmUzMigodm9pZCAqKShDRkdfRlBHQV9CQVNFXzAgKyAweDAwMDAwMDI0KSwgMHgwMCk7Ci0JCW91dF9iZTMyKCh2b2lkICopKENGR19GUEdBX0JBU0VfMCArIDB4MDAwMDAwMjApLCAweDAwKTsKKwkJb3V0X2JlMzIoKHZvaWQgKikoQ09ORklHX1NZU19GUEdBX0JBU0VfMCArIDB4MDAwMDAwMjQpLCAweDAwKTsKKwkJb3V0X2JlMzIoKHZvaWQgKikoQ09ORklHX1NZU19GUEdBX0JBU0VfMCArIDB4MDAwMDAwMjApLCAweDAwKTsKIAl9CiB9CiAKQEAgLTU5NSw1ICs1OTUsNSBAQAogCiB2b2lkIGJvYXJkX3Jlc2V0KHZvaWQpCiB7Ci0JZ3Bpb193cml0ZV9iaXQoQ0ZHX0dQSU9fQk9BUkRfUkVTRVQsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19CT0FSRF9SRVNFVCwgMSk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9sd21vbjUvc2RyYW0uYyBiL2JvYXJkL2x3bW9uNS9zZHJhbS5jCmluZGV4IDE4OWU4MjQuLjcyOTY4ZDcgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x3bW9uNS9zZHJhbS5jCisrKyBiL2JvYXJkL2x3bW9uNS9zZHJhbS5jCkBAIC00NSwxMCArNDUsMTAgQEAKICAqIG1lbW9yeS4KICAqCiAgKiBJZiBhdCBzb21lIHRpbWUgdGhpcyByZXN0cmljdGlvbiBkb2Vzbid0IGFwcGx5IGFueW1vcmUsIGp1c3QgZGVmaW5lCi0gKiBDRkdfRU5BQkxFX1NEUkFNX0NBQ0hFIGluIHRoZSBib2FyZCBjb25maWcgZmlsZSBhbmQgdGhpcyBjb2RlIHNob3VsZCBzZXR1cAorICogQ09ORklHX1NZU19FTkFCTEVfU0RSQU1fQ0FDSEUgaW4gdGhlIGJvYXJkIGNvbmZpZyBmaWxlIGFuZCB0aGlzIGNvZGUgc2hvdWxkIHNldHVwCiAgKiBldmVyeXRoaW5nIGNvcnJlY3RseS4KICAqLwotI2lmZGVmIENGR19FTkFCTEVfU0RSQU1fQ0FDSEUKKyNpZmRlZiBDT05GSUdfU1lTX0VOQUJMRV9TRFJBTV9DQUNIRQogI2RlZmluZSBNWV9UTEJfV09SRDJfSV9FTkFCTEUJMAkJCS8qIGVuYWJsZSBjYWNoaW5nIG9uIFNEUkFNICovCiAjZWxzZQogI2RlZmluZSBNWV9UTEJfV09SRDJfSV9FTkFCTEUJVExCX1dPUkQyX0lfRU5BQkxFCS8qIGRpc2FibGUgY2FjaGluZyBvbiBTRFJBTSAqLwpAQCAtMTE2LDcgKzExNiw3IEBACiAJICogQmVjYXVzZSBvZiA0NDBFUHggZXJyYXRhIENISVAgMTEsIHdlIGRvbid0IHRvdWNoIHRoZSBsYXN0IDI1NgogCSAqIGJ5dGVzIG9mIFNEUkFNLgogCSAqLwotCWJ5dGVzX3JlbWFpbmluZyA9IG51bV9ieXRlcyAtIENGR19NRU1fVE9QX0hJREU7CisJYnl0ZXNfcmVtYWluaW5nID0gbnVtX2J5dGVzIC0gQ09ORklHX1NZU19NRU1fVE9QX0hJREU7CiAKIAkvKgogCSAqIFdlIGhhdmUgdG8gd3JpdGUgdGhlIEVDQyBieXRlcyBieSB6ZXJvaW5nIGFuZCBmbHVzaGluZyBpbiBzbWFsbGVyCkBAIC0yNTIsMjkgKzI1MiwyOSBAQAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFBlcmZvcm0gZGF0YSBleWUgc2VhcmNoIGlmIHJlcXVlc3RlZC4KIAkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlwcm9ncmFtX3RsYigwLCBDRkdfU0RSQU1fQkFTRSwgQ0ZHX01CWVRFU19TRFJBTSA8PCAyMCwKKwlwcm9ncmFtX3RsYigwLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwLAogCQkgICAgVExCX1dPUkQyX0lfRU5BQkxFKTsKIAlkZW5hbGlfY29yZV9zZWFyY2hfZGF0YV9leWUoKTsKLQlyZW1vdmVfdGxiKENGR19TRFJBTV9CQVNFLCBDRkdfTUJZVEVTX1NEUkFNIDw8IDIwKTsKKwlyZW1vdmVfdGxiKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjApOwogI2VuZGlmCiAKIAkvKgogCSAqIFByb2dyYW0gdGxiIGVudHJpZXMgZm9yIHRoaXMgc2l6ZSAoZHluYW1pYykKIAkgKi8KLQlwcm9ncmFtX3RsYigwLCBDRkdfU0RSQU1fQkFTRSwgQ0ZHX01CWVRFU19TRFJBTSA8PCAyMCwKKwlwcm9ncmFtX3RsYigwLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwLAogCQkgICAgTVlfVExCX1dPUkQyX0lfRU5BQkxFKTsKIAogCS8qCiAJICogU2V0dXAgMm5kIFRMQiB3aXRoIHNhbWUgcGh5c2ljYWwgYWRkcmVzcyBidXQgZGlmZmVyZW50IHZpcnR1YWwgYWRkcmVzcwogCSAqIHdpdGggY2FjaGUgZW5hYmxlZC4gVGhpcyBpcyBkb25lIGZvciBmYXN0IEVDQyBnZW5lcmF0aW9uLgogCSAqLwotCXByb2dyYW1fdGxiKDAsIENGR19ERFJfQ0FDSEVEX0FERFIsIENGR19NQllURVNfU0RSQU0gPDwgMjAsIDApOworCXByb2dyYW1fdGxiKDAsIENPTkZJR19TWVNfRERSX0NBQ0hFRF9BRERSLCBDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMCwgMCk7CiAKICNpZmRlZiBDT05GSUdfRERSX0VDQwogCS8qCiAJICogSWYgRUNDIGlzIGVuYWJsZWQsIGluaXRpYWxpemUgdGhlIHBhcml0eSBiaXRzLgogCSAqLwotCXByb2dyYW1fZWNjKENGR19ERFJfQ0FDSEVEX0FERFIsIENGR19NQllURVNfU0RSQU0gPDwgMjAsIDApOworCXByb2dyYW1fZWNjKENPTkZJR19TWVNfRERSX0NBQ0hFRF9BRERSLCBDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMCwgMCk7CiAjZW5kaWYKIAogCS8qCkBAIC0yODQsNSArMjg0LDUgQEAKIAkgKi8KIAlzZXRfbWNzcihnZXRfbWNzcigpKTsKIAotCXJldHVybiAoQ0ZHX01CWVRFU19TRFJBTSA8PCAyMCk7CisJcmV0dXJuIChDT05GSUdfU1lTX01CWVRFU19TRFJBTSA8PCAyMCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9sd21vbjUvdS1ib290LmxkcyBiL2JvYXJkL2x3bW9uNS91LWJvb3QubGRzCmluZGV4IGIyMGZiMWMuLjNjZmVjODMgMTAwNjQ0Ci0tLSBhL2JvYXJkL2x3bW9uNS91LWJvb3QubGRzCisrKyBiL2JvYXJkL2x3bW9uNS91LWJvb3QubGRzCkBAIC0xMzcsNyArMTM3LDcgQEAKICAgICooQ09NTU9OKQogICB9CiAKLSAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGODAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENGR19NT05JVE9SX0JBU0UsIENGR19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOworICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkY4MDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKIAogICBfZW5kID0gLiA7CiAgIFBST1ZJREUgKGVuZCA9IC4pOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbTUwMXNrL2VlcHJvbS5jIGIvYm9hcmQvbTUwMXNrL2VlcHJvbS5jCmluZGV4IGQ4NjM5MmYuLmQxYTQ2ZjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL201MDFzay9lZXByb20uYworKysgYi9ib2FyZC9tNTAxc2svZWVwcm9tLmMKQEAgLTIzLDEzICsyMywxMyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8aTJjLmg+Ci0jaWZkZWYgQ0ZHX0VFUFJPTV9BVDI0QzE2CisjaWZkZWYgQ09ORklHX1NZU19FRVBST01fQVQyNEMxNgogI3VuZGVmIERFQlVHCiAKIHZvaWQgZWVwcm9tX2luaXQodm9pZCkKIHsKICNpZiBkZWZpbmVkKENPTkZJR19IQVJEX0kyQykgfHwgZGVmaW5lZChDT05GSUdfU09GVF9JMkMpCi0JaTJjX2luaXQoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKICNlbmRpZgogfQogCkBAIC01MywxMCArNTMsMTAgQEAKIH0KIAogLyoKLSAqIGZvciBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAyICgxNi1iaXQgRUVQUk9NIGFkZHJlc3MpIG9mZnNldCBpcworICogZm9yIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAyICgxNi1iaXQgRUVQUk9NIGFkZHJlc3MpIG9mZnNldCBpcwogICogICAweDAwMG54eHh4IGZvciBFRVBST00gYWRkcmVzcyBzZWxlY3RvcnMgYXQgbiwgb2Zmc2V0IHh4eHggaW4gRUVQUk9NLgogICoKLSAqIGZvciBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICg4LWJpdCBFRVBST00gcGFnZSBhZGRyZXNzKSBvZmZzZXQgaXMKKyAqIGZvciBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAoOC1iaXQgRUVQUk9NIHBhZ2UgYWRkcmVzcykgb2Zmc2V0IGlzCiAgKiAgIDB4MDAwMDBueHggZm9yIEVFUFJPTSBhZGRyZXNzIHNlbGVjdG9ycyBhbmQgcGFnZSBudW1iZXIgYXQgbi4KICAqLwogaW50IGVlcHJvbV93cml0ZSh1bnNpZ25lZCBkZXZfYWRkciwgdW5zaWduZWQgb2Zmc2V0LCB1Y2hhciAqYnVmZmVyLApAQCAtNzYsOCArNzYsOCBAQAogCQl9CiAJfQogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMpCi0JdWRlbGF5KENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUykKKwl1ZGVsYXkoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOwogI2VuZGlmCiAKIAlyZXR1cm4gMDsKQEAgLTg5LDExICs4OSwxMSBAQAogCXVuc2lnbmVkIGNoYXIgY2hpcDsKIAogCS8qIFByb2JlIHRoZSBjaGlwIGFkZHJlc3MgKi8KLSNpZiBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICYmICFkZWZpbmVkKENPTkZJR19TUElfWCkKKyNpZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAmJiAhZGVmaW5lZChDT05GSUdfU1BJX1gpCiAJY2hpcCA9IG9mZnNldCA+PiA4OyAvKiBibG9jayBudW1iZXIgKi8KICNlbHNlCiAJY2hpcCA9IG9mZnNldCA+PiAxNjsgLyogYmxvY2sgbnVtYmVyICovCi0jZW5kaWYgLyogQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4sIENPTkZJR19TUElfWCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiwgQ09ORklHX1NQSV9YICovCiAKIAljaGlwIHw9IGRldl9hZGRyOyAvKiBpbnNlcnQgZGV2aWNlIGFkZHJlc3MgKi8KIAlyZXR1cm4gKGkyY19wcm9iZShjaGlwKSk7CmRpZmYgLS1naXQgYS9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmNfcC9tdmJjX3AuYyBiL2JvYXJkL21hdHJpeF92aXNpb24vbXZiY19wL212YmNfcC5jCmluZGV4IGM4OGM0YTYuLmEzMDAzNDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL21hdHJpeF92aXNpb24vbXZiY19wL212YmNfcC5jCisrKyBiL2JvYXJkL21hdHJpeF92aXNpb24vbXZiY19wL212YmNfcC5jCkBAIC04NSw5ICs4NSw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTE5MywxMyArMTkzLDEzIEBACiAKIHZvaWQgZmxhc2hfYWZ0ZXJpbml0KHVsb25nIHNpemUpCiB7Ci0Jb3V0X2JlMzIoKHUzMiopTVBDNVhYWF9CT09UQ1NfU1RBUlQsIFNUQVJUX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwKKwlvdXRfYmUzMigodTMyKilNUEM1WFhYX0JPT1RDU19TVEFSVCwgU1RBUlRfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUIHwKIAkJc2l6ZSkpOwotCW91dF9iZTMyKCh1MzIqKU1QQzVYWFhfQ1MwX1NUQVJULCBTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCB8CisJb3V0X2JlMzIoKHUzMiopTVBDNVhYWF9DUzBfU1RBUlQsIFNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8CiAJCXNpemUpKTsKLQlvdXRfYmUzMigodTMyKilNUEM1WFhYX0JPT1RDU19TVE9QLCBTVE9QX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSwKKwlvdXRfYmUzMigodTMyKilNUEM1WFhYX0JPT1RDU19TVE9QLCBTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUsCiAJCXNpemUpKTsKLQlvdXRfYmUzMigodTMyKilNUEM1WFhYX0NTMF9TVE9QLCBTVE9QX1JFRyhDRkdfQk9PVENTX1NUQVJUIHwgc2l6ZSwKKwlvdXRfYmUzMigodTMyKilNUEM1WFhYX0NTMF9TVE9QLCBTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUsCiAJCXNpemUpKTsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvZnBnYS5jIGIvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvZnBnYS5jCmluZGV4IGE2MGFmMDEuLjc1MjdkMTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL21hdHJpeF92aXNpb24vbXZibG03L2ZwZ2EuYworKysgYi9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmxtNy9mcGdhLmMKQEAgLTc5LDcgKzc5LDcgQEAKIAogaW50IGZwZ2FfY29uZmlnX2ZuKGludCBhc3NlcnQsIGludCBmbHVzaCwgaW50IGNvb2tpZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBncGlvODN4eF90ICpncGlvID0gKHZvbGF0aWxlIGdwaW84M3h4X3QgKikmaW0tPmdwaW9bMF07CiAJdTMyIGR2byA9IGdwaW8tPmRhdDsKIApAQCAtOTcsNyArOTcsNyBAQAogCiBpbnQgZnBnYV9kb25lX2ZuKGludCBjb29raWUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZ3BpbzgzeHhfdCAqZ3BpbyA9ICh2b2xhdGlsZSBncGlvODN4eF90ICopJmltLT5ncGlvWzBdOwogCWludCByZXN1bHQgPSAwOwogCkBAIC0xMTQsNyArMTE0LDcgQEAKIAogaW50IGZwZ2Ffc3RhdHVzX2ZuKGludCBjb29raWUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZ3BpbzgzeHhfdCAqZ3BpbyA9ICh2b2xhdGlsZSBncGlvODN4eF90ICopJmltLT5ncGlvWzBdOwogCWludCByZXN1bHQgPSAwOwogCkBAIC0xMzAsNyArMTMwLDcgQEAKIAogaW50IGZwZ2FfY2xrX2ZuKGludCBhc3NlcnRfY2xrLCBpbnQgZmx1c2gsIGludCBjb29raWUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZ3BpbzgzeHhfdCAqZ3BpbyA9ICh2b2xhdGlsZSBncGlvODN4eF90ICopJmltLT5ncGlvWzBdOwogCXUzMiBkdm8gPSBncGlvLT5kYXQ7CiAKQEAgLTE0OCw3ICsxNDgsNyBAQAogCiBzdGF0aWMgaW5saW5lIGludCBfd3JpdGVfZnBnYSh1OCB2YWwsIGludCBkdW1wKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGdwaW84M3h4X3QgKmdwaW8gPSAodm9sYXRpbGUgZ3BpbzgzeHhfdCAqKSZpbS0+Z3Bpb1swXTsKIAlpbnQgaTsKIAl1MzIgZHZvID0gZ3Bpby0+ZGF0OwpkaWZmIC0tZ2l0IGEvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvbXZibG03LmMgYi9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmxtNy9tdmJsbTcuYwppbmRleCAzZGNmZjY3Li42OTg0YWY5IDEwMDY0NAotLS0gYS9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmxtNy9tdmJsbTcuYworKysgYi9ib2FyZC9tYXRyaXhfdmlzaW9uL212YmxtNy9tdmJsbTcuYwpAQCAtMzgsNTAgKzM4LDUwIEBACiAKIGludCBmaXhlZF9zZHJhbSh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAJdTMyIGRkcl9zaXplOwogCXUzMiBkZHJfc2l6ZV9sb2cyOwogCi0JbXNpemUgPSBDRkdfRERSX1NJWkU7CisJbXNpemUgPSBDT05GSUdfU1lTX0REUl9TSVpFOwogCWZvciAoZGRyX3NpemUgPSBtc2l6ZSA8PCAyMCwgZGRyX3NpemVfbG9nMiA9IDA7CiAJICAgICAoZGRyX3NpemUgPiAxKTsKIAkgICAgIGRkcl9zaXplID0gZGRyX3NpemUgPj4gMSwgZGRyX3NpemVfbG9nMisrKSB7CiAJCWlmIChkZHJfc2l6ZSAmIDEpCiAJCQlyZXR1cm4gLTE7CiAJfQotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX1NEUkFNX0JBU0UgJiAweGZmZmZmMDAwOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAlpbS0+c3lzY29uZi5kZHJsYXdbMF0uYXIgPSBMQVdBUl9FTiB8ICgoZGRyX3NpemVfbG9nMiAtIDEpICYKIAkJTEFXQVJfU0laRSk7CiAKLQlpbS0+ZGRyLmNzYm5kc1swXS5jc2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWltLT5kZHIuY3NfY29uZmlnWzBdID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JaW0tPmRkci50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlpbS0+ZGRyLnNkcmFtX2NmZyA9IENGR19ERFJfU0RSQU1fQ0ZHOwotCWltLT5kZHIuc2RyYW1fY2ZnMiA9IENGR19ERFJfU0RSQU1fQ0ZHMjsKLQlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JaW0tPmRkci5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7Ci0JaW0tPmRkci5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfQ0xLX0NOVEw7CisJaW0tPmRkci5jc2JuZHNbMF0uY3NibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJaW0tPmRkci5jc19jb25maWdbMF0gPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWltLT5kZHIudGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzA7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWltLT5kZHIudGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJaW0tPmRkci5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkc7CisJaW0tPmRkci5zZHJhbV9jZmcyID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMjsKKwlpbS0+ZGRyLnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfQ0xLX0NOVEw7CiAKIAl1ZGVsYXkoMzAwKTsKIAogCWltLT5kZHIuc2RyYW1fY2ZnIHw9IFNEUkFNX0NGR19NRU1fRU47CiAKLQlyZXR1cm4gQ0ZHX0REUl9TSVpFOworCXJldHVybiBDT05GSUdfU1lTX0REUl9TSVpFOwogfQogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBtc2l6ZSA9IDA7CiAKIAlpZiAoKGltLT5zeXNjb25mLmltbXJiYXIgJiBJTU1SQkFSX0JBU0VfQUREUikgIT0gKHUzMikgaW0pCiAJCXJldHVybiAtMTsKIAotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0UgJiBMQVdCQVJfQkFSOworCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX0REUl9CQVNFICYgTEFXQkFSX0JBUjsKIAltc2l6ZSA9IGZpeGVkX3NkcmFtKCk7CiAKIAkvKiByZXR1cm4gdG90YWwgYnVzIFJBTSBzaXplKGJ5dGVzKSAqLwpAQCAtMTMyLDE0ICsxMzIsMTQgQEAKIAogdm9pZCBzcGlfY3NfYWN0aXZhdGUoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUpCiB7Ci0Jdm9sYXRpbGUgZ3BpbzgzeHhfdCAqaW9wZCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmdwaW9bMF07CisJdm9sYXRpbGUgZ3BpbzgzeHhfdCAqaW9wZCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5ncGlvWzBdOwogCiAJaW9wZC0+ZGF0ICY9IH5NVkJMTTdfTU1DX0NTOwogfQogCiB2b2lkIHNwaV9jc19kZWFjdGl2YXRlKHN0cnVjdCBzcGlfc2xhdmUgKnNsYXZlKQogewotCXZvbGF0aWxlIGdwaW84M3h4X3QgKmlvcGQgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5ncGlvWzBdOworCXZvbGF0aWxlIGdwaW84M3h4X3QgKmlvcGQgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+Z3Bpb1swXTsKIAogCWlvcGQtPmRhdCB8PSB+TVZCTE03X01NQ19DUzsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL21hdHJpeF92aXNpb24vbXZibG03L3BjaS5jIGIvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvcGNpLmMKaW5kZXggZWYzNGE2Yi4uOWYzMTcxOSAxMDA2NDQKLS0tIGEvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvcGNpLmMKKysrIGIvYm9hcmQvbWF0cml4X3Zpc2lvbi9tdmJsbTcvcGNpLmMKQEAgLTUyLDIxICs1MiwyMSBAQAogCiBzdGF0aWMgc3RydWN0IHBjaV9yZWdpb24gcGNpX3JlZ2lvbnNbXSA9IHsKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCXBoeXNfc3RhcnQ6IENGR19QQ0kxX01FTV9QSFlTLAotCQlzaXplOiBDRkdfUENJMV9NRU1fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCXBoeXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX1BSRUZFVENICiAJfSwKIAl7Ci0JCWJ1c19zdGFydDogQ0ZHX1BDSTFfTU1JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9NTUlPX1BIWVMsCi0JCXNpemU6IENGR19QQ0kxX01NSU9fU0laRSwKKwkJYnVzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTLAorCQlzaXplOiBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFLAogCQlmbGFnczogUENJX1JFR0lPTl9NRU0KIAl9LAogCXsKLQkJYnVzX3N0YXJ0OiBDRkdfUENJMV9JT19CQVNFLAotCQlwaHlzX3N0YXJ0OiBDRkdfUENJMV9JT19QSFlTLAotCQlzaXplOiBDRkdfUENJMV9JT19TSVpFLAorCQlidXNfc3RhcnQ6IENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQlwaHlzX3N0YXJ0OiBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJc2l6ZTogQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCWZsYWdzOiBQQ0lfUkVHSU9OX0lPCiAJfQogfTsKQEAgLTg1LDcgKzg1LDcgQEAKIAlzdHJ1Y3QgcGNpX3JlZ2lvbiAqcmVnW10gPSB7IHBjaV9yZWdpb25zIH07CiAKIAlsb2FkX2ZwZ2EgPSAxOwotCWltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWNsayA9IChjbGs4M3h4X3QgKikgJmltbXItPmNsazsKIAlwY2lfY3RybCA9IGltbXItPnBjaV9jdHJsOwogCXBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKQEAgLTEyMSwxMCArMTIxLDEwIEBACiAJZm9yIChpID0gMDsgaSA8IDEwMDA7ICsraSkKIAkJdWRlbGF5KDEwMDApOwogCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl8xR0I7CiAKLQlwY2lfbGF3WzFdLmJhciA9IENGR19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQkxBV0FSX0VOIHwgTEJMQVdBUl8xTUI7CiAKIAl3YXJtYm9vdCA9IGdkLT5iZC0+YmlfYm9vdGZsYWdzICYgQk9PVEZMQUdfV0FSTTsKZGlmZiAtLWdpdCBhL2JvYXJkL21ieDh4eC9jc3IuaCBiL2JvYXJkL21ieDh4eC9jc3IuaAppbmRleCA4MzJlOTI0Li5kMWE1OGI2IDEwMDY0NAotLS0gYS9ib2FyZC9tYng4eHgvY3NyLmgKKysrIGIvYm9hcmQvbWJ4OHh4L2Nzci5oCkBAIC01NCw3ICs1NCw3IEBACiAjZGVmaW5lIFNSMl9SRFkgICAgICAgICAweDAyICAgIC8qIEZsYXNoIHByb2dyYW1taW5nIHN0YXR1cyBiaXQgICAgICAgICAgICAgKi8KICNkZWZpbmUgU1IyX0ZUICAgICAgICAgIDB4MDEgICAgLyogUmVzZXJ2ZWQgZm9yIEZhY3RvcnkgdGVzdCBwdXJwb3NlcyAgICAgICAqLwogCi0jZGVmaW5lIE1CWF9DU1IxICgqKCh1Y2hhciAqKUNGR19DU1JfQkFTRSkpCi0jZGVmaW5lIE1CWF9DU1IyICgqKCh1Y2hhciAqKUNGR19DU1JfQkFTRSArIDEpKQorI2RlZmluZSBNQlhfQ1NSMSAoKigodWNoYXIgKilDT05GSUdfU1lTX0NTUl9CQVNFKSkKKyNkZWZpbmUgTUJYX0NTUjIgKCooKHVjaGFyICopQ09ORklHX1NZU19DU1JfQkFTRSArIDEpKQogCiAjZW5kaWYgLyogX19jc3JfaCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbWJ4OHh4L2ZsYXNoLmMgYi9ib2FyZC9tYng4eHgvZmxhc2guYwppbmRleCBhNDkxZjdiLi4yZWM0MjBkIDEwMDY0NAotLS0gYS9ib2FyZC9tYng4eHgvZmxhc2guYworKysgYi9ib2FyZC9tYng4eHgvZmxhc2guYwpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogI2luY2x1ZGUgInZwZC5oIgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC01MSwxMyArNTEsMTMgQEAKICAgICB1bG9uZyBhZGRyOwogCiAgICAgLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotICAgIGZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworICAgIGZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKICAgICB9CiAKICAgICB0b3RzaXplID0gMDsKICAgICBhZGRyID0gMHhmYzAwMDAwMDsKLSAgICBmb3IoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKyAgICBmb3IoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopYWRkciwgJmZsYXNoX2luZm9baV0pOwogCWlmIChmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pCiAJICBicmVhazsKQEAgLTY2LDcgKzY2LDcgQEAKICAgICB9CiAKICAgICBhZGRyID0gMHhmZTAwMDAwMDsKLSAgICBmb3IoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKyAgICBmb3IoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAKIAlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilhZGRyLCAmZmxhc2hfaW5mb1tpXSk7CiAJaWYgKGZsYXNoX2luZm9baV0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikKQEAgLTc1LDExICs3NSwxMSBAQAogCWFkZHIgKz0gc2l6ZTsKICAgICB9CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAgICAgLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KICAgICBmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjc0LDcgKzI3NCw3IEBACiAgICAgbGFzdCAgPSBzdGFydDsKICAgICBhZGRyID0gKHZ1X2xvbmcqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKICAgICB3aGlsZSAoKGFkZHJbMF0gJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwKSB7Ci0JaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCSAgICBwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkgICAgcmV0dXJuIDE7CiAJfQpAQCAtMzk3LDcgKzM5Nyw3IEBACiAgICAgLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKICAgICB3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpIHsKLQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkgICAgcmV0dXJuICgxKTsKIAl9CiAgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbWJ4OHh4L21ieDh4eC5jIGIvYm9hcmQvbWJ4OHh4L21ieDh4eC5jCmluZGV4IDQxNGQ4NzkuLmFmNGY1N2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL21ieDh4eC9tYng4eHguYworKysgYi9ib2FyZC9tYng4eHgvbWJ4OHh4LmMKQEAgLTEyMSw3ICsxMjEsNyBAQAogCiB2b2lkIG1ieF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCXVsb25nIHNwZWVkLCByZWZjbG9jaywgcGxwcmNyLCBzY2NyOwogCXVsb25nIGJyMF8zMiA9IG1lbWN0bC0+bWVtY19icjAgJiAweDQwMDsKQEAgLTE0NywyMSArMTQ3LDIxIEBACiAJaW1tci0+aW1fY2xrcnN0ay5jYXJrX3NjY3JrID0gS0FQV1JfS0VZOwogCXNjY3IgPSBpbW1yLT5pbV9jbGtyc3QuY2FyX3NjY3I7CiAJc2NjciAmPSBTQ0NSX01BU0s7Ci0Jc2NjciB8PSBDRkdfU0NDUjsKKwlzY2NyIHw9IENPTkZJR19TWVNfU0NDUjsKIAlpbW1yLT5pbV9jbGtyc3QuY2FyX3NjY3IgPSBzY2NyOwogCiAJc3BlZWQgPSBib2FyZF9nZXRfY3B1ZnJlcSAoKTsKIAlyZWZjbG9jayA9IGdldF9yZWZmcmVxICgpOwogCi0jaWYgKChDRkdfUExQUkNSICYgUExQUkNSX01GX01TSykgIT0gMCkKLQlwbHByY3IgPSBDRkdfUExQUkNSOworI2lmICgoQ09ORklHX1NZU19QTFBSQ1IgJiBQTFBSQ1JfTUZfTVNLKSAhPSAwKQorCXBscHJjciA9IENPTkZJR19TWVNfUExQUkNSOwogI2Vsc2UKIAlwbHByY3IgPSBpbW1yLT5pbV9jbGtyc3QuY2FyX3BscHJjcjsKIAlwbHByY3IgJj0gUExQUkNSX01GX01TSzsJLyogaXNvbGF0ZSBNRiBmaWVsZCAqLwotCXBscHJjciB8PSBDRkdfUExQUkNSOwkJLyogcmVzZXQgY29udHJvbCBiaXRzICAgKi8KKwlwbHByY3IgfD0gQ09ORklHX1NZU19QTFBSQ1I7CQkvKiByZXNldCBjb250cm9sIGJpdHMgICAqLwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfVVNFX09TQ0NMSwkJCS8qIFNlZSBkb2MvUkVBRE1FLk1CWCAhICovCisjaWZkZWYgQ09ORklHX1NZU19VU0VfT1NDQ0xLCQkJLyogU2VlIGRvYy9SRUFETUUuTUJYICEgKi8KIAlwbHByY3IgfD0gKChzcGVlZCArIHJlZmNsb2NrIC8gMikgLyByZWZjbG9jayAtIDEpIDw8IDIwOwogI2VuZGlmCiAKQEAgLTE4MSwyNCArMTgxLDI0IEBACiAJY2FzZSA0MDoKIAkJbWVtY3RsLT5tZW1jX2JyMCA9IDB4RkUwMDAwMDAgfCBicjBfMzIgfCAxOwogCQltZW1jdGwtPm1lbWNfb3IwID0gMHhGRjgwMDkzMDsKLQkJbWVtY3RsLT5tZW1jX29yNCA9IENGR19OVlJBTV9PUiB8IDB4OTIwOwotCQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX05WUkFNX0JBU0UgfCAweDQwMTsKKwkJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfTlZSQU1fT1IgfCAweDkyMDsKKwkJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfTlZSQU1fQkFTRSB8IDB4NDAxOwogCQlicmVhazsKIAljYXNlIDUwOgogCQltZW1jdGwtPm1lbWNfYnIwID0gMHhGRTAwMDAwMCB8IGJyMF8zMiB8IDE7CiAJCW1lbWN0bC0+bWVtY19vcjAgPSAweEZGODAwOTQwOwotCQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX05WUkFNX09SIHwgMHg5MzA7Ci0JCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfTlZSQU1fQkFTRSB8IDB4NDAxOworCQltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19OVlJBTV9PUiB8IDB4OTMwOworCQltZW1jdGwtPm1lbWNfYnI0ID0gQ09ORklHX1NZU19OVlJBTV9CQVNFIHwgMHg0MDE7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWhhbmcgKCk7CiAJCWJyZWFrOwogCX0KICNpZmRlZiBDT05GSUdfVVNFX1BDSQotCW1lbWN0bC0+bWVtY19vcjUgPSBDRkdfUENJTUVNX09SOwotCW1lbWN0bC0+bWVtY19icjUgPSBDRkdfUENJTUVNX0JBU0UgfCAweDAwMTsKLQltZW1jdGwtPm1lbWNfb3I2ID0gQ0ZHX1BDSUJSSURHRV9PUjsKLQltZW1jdGwtPm1lbWNfYnI2ID0gQ0ZHX1BDSUJSSURHRV9CQVNFIHwgMHgwMDE7CisJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfUENJTUVNX09SOworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX1BDSU1FTV9CQVNFIHwgMHgwMDE7CisJbWVtY3RsLT5tZW1jX29yNiA9IENPTkZJR19TWVNfUENJQlJJREdFX09SOworCW1lbWN0bC0+bWVtY19icjYgPSBDT05GSUdfU1lTX1BDSUJSSURHRV9CQVNFIHwgMHgwMDE7CiAjZW5kaWYKIAkvKgogCSAqIEZJWE1FOiBJIGRvIG5vdCB1bmRlcnN0YW5kIHdoeSBJIGhhdmUgdG8gY2FsbCB0aGlzIHRvCkBAIC0zMDYsNyArMzA2LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgcmFtX3N6ID0gMDsKIAl1bnNpZ25lZCBsb25nIGRpbW1fc3ogPSAwOwpAQCAtMzU0LDI0ICszNTQsMjQgQEAKIAkJZGltbV9iYW5rID0gZGltbV9zeiAvIDI7CiAJCWlmICghZGltbV9zeikgewogCQkJbWVtY3RsLT5tZW1jX29yMSA9IH4ocmFtX3N6IC0gMSkgfCAweDQwMDsKLQkJCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfU0RSQU1fQkFTRSB8IDB4ODE7CisJCQltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgMHg4MTsKIAkJCW1lbWN0bC0+bWVtY19icjIgPSAwOwogCQkJbWVtY3RsLT5tZW1jX2JyMyA9IDA7CiAJCX0gZWxzZSBpZiAocmFtX3N6ID4gZGltbV9iYW5rKSB7CiAJCQltZW1jdGwtPm1lbWNfb3IxID0gfihyYW1fc3ogLSAxKSB8IDB4NDAwOwotCQkJbWVtY3RsLT5tZW1jX2JyMSA9IENGR19TRFJBTV9CQVNFIHwgMHg4MTsKKwkJCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCAweDgxOwogCQkJbWVtY3RsLT5tZW1jX29yMiA9IH4oZGltbV9iYW5rIC0gMSkgfCAweDQwMDsKLQkJCW1lbWN0bC0+bWVtY19icjIgPSAoQ0ZHX1NEUkFNX0JBU0UgKyByYW1fc3opIHwgMHg4MTsKKwkJCW1lbWN0bC0+bWVtY19icjIgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgcmFtX3N6KSB8IDB4ODE7CiAJCQltZW1jdGwtPm1lbWNfb3IzID0gfihkaW1tX2JhbmsgLSAxKSB8IDB4NDAwOwotCQkJbWVtY3RsLT5tZW1jX2JyMyA9IChDRkdfU0RSQU1fQkFTRSArIHJhbV9zeiArIGRpbW1fYmFuaykgXAorCQkJbWVtY3RsLT5tZW1jX2JyMyA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyByYW1fc3ogKyBkaW1tX2JhbmspIFwKIAkJCQkJCQkJICAgICB8IDB4ODE7CiAJCX0gZWxzZSB7CiAJCQltZW1jdGwtPm1lbWNfb3IyID0gfihkaW1tX2JhbmsgLSAxKSB8IDB4NDAwOwotCQkJbWVtY3RsLT5tZW1jX2JyMiA9IENGR19TRFJBTV9CQVNFIHwgMHg4MTsKKwkJCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCAweDgxOwogCQkJbWVtY3RsLT5tZW1jX29yMyA9IH4oZGltbV9iYW5rIC0gMSkgfCAweDQwMDsKLQkJCW1lbWN0bC0+bWVtY19icjMgPSAoQ0ZHX1NEUkFNX0JBU0UgKyBkaW1tX2JhbmspIHwgMHg4MTsKKwkJCW1lbWN0bC0+bWVtY19icjMgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZGltbV9iYW5rKSB8IDB4ODE7CiAJCQltZW1jdGwtPm1lbWNfb3IxID0gfihyYW1fc3ogLSAxKSB8IDB4NDAwOwotCQkJbWVtY3RsLT5tZW1jX2JyMSA9IChDRkdfU0RSQU1fQkFTRSArIGRpbW1fc3opIHwgMHg4MTsKKwkJCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZGltbV9zeikgfCAweDgxOwogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9ib2FyZC9tYng4eHgvcGNtY2lhLmMgYi9ib2FyZC9tYng4eHgvcGNtY2lhLmMKaW5kZXggYTAyYzg0OC4uNjkzNjhkOCAxMDA2NDQKLS0tIGEvYm9hcmQvbWJ4OHh4L3BjbWNpYS5jCisrKyBiL2JvYXJkL21ieDh4eC9wY21jaWEuYwpAQCAtODgsMTAgKzg4LDEwIEBACiAKIAl1ZGVsYXkgKDEwMDAwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7Ci0Jc3lzcCA9IChzeXNjb25mOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCA9IChjcG04eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKKwlzeXNwID0gKHN5c2NvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSAoJigoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgPSAoY3BtOHh4X3QgKikgKCYoKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOwogCiAJLyogY2xlYXIgaW50ZXJydXB0IHN0YXRlLCBhbmQgZGlzYWJsZSBpbnRlcnJ1cHRzICovCiAJcGNtcC0+cGNtY19wc2NyID0gUENNQ0lBX01BU0sgKF9zbG90Xyk7CmRpZmYgLS1naXQgYS9ib2FyZC9tYng4eHgvdnBkLmMgYi9ib2FyZC9tYng4eHgvdnBkLmMKaW5kZXggNmY4ODM1Mi4uM2JjMjUxZCAxMDA2NDQKLS0tIGEvYm9hcmQvbWJ4OHh4L3ZwZC5jCisrKyBiL2JvYXJkL21ieDh4eC92cGQuYwpAQCAtNDcsNyArNDcsNyBAQAogI2RlZmluZSBJSUNfQkRfRlJFRSAgICAoQkRfSUlDX1NUQVJUICsgMypzaXplb2YoY2JkX3QpKQogCiAvKiBGSVhNRSAtLSByZXBsYWNlIDB4MjAwMCB3aXRoIG9mZnNldG9mICovCi0jZGVmaW5lIFZQRF9QICgodnBkX3QgKikoQ0ZHX0lNTVIgKyAweDIwMDAgKyBDRkdfRFBSQU1WUEQpKQorI2RlZmluZSBWUERfUCAoKHZwZF90ICopKENPTkZJR19TWVNfSU1NUiArIDB4MjAwMCArIENPTkZJR19TWVNfRFBSQU1WUEQpKQogCiAvKiB0cmFuc21pdC9yZWNlaXZlIGJ1ZmZlcnMgKi8KICNkZWZpbmUgSUlDX1JYX0xFTkdUSCAxMjgKQEAgLTY5LDcgKzY5LDcgQEAKIAogdm9pZCB2cGRfaW5pdCh2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gJihpbS0+aW1fY3BtKTsKICAgICB2b2xhdGlsZSBpMmM4eHhfdCAqaTJjID0gKGkyYzh4eF90ICopJihpbS0+aW1faTJjKTsKICAgICB2b2xhdGlsZSBpaWNfdCAqaWlwOwpAQCAtMTIwLDcgKzEyMCw3IEBACiAgKi8KIGludCB2cGRfcmVhZCh1aW50IGlpY19kZXZpY2UsIHVjaGFyICpidWYsIGludCBjb3VudCwgaW50IG9mZnNldCkKIHsKLSAgICB2b2xhdGlsZSBpbW1hcF90ICAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW0tPmltX2NwbSk7CiAgICAgdm9sYXRpbGUgaTJjOHh4X3QgKmkyYyA9IChpMmM4eHhfdCAqKSYoaW0tPmltX2kyYyk7CiAgICAgdm9sYXRpbGUgaWljX3QgKmlpcDsKZGlmZiAtLWdpdCBhL2JvYXJkL21jYzIwMC9hdXRvX3VwZGF0ZS5jIGIvYm9hcmQvbWNjMjAwL2F1dG9fdXBkYXRlLmMKaW5kZXggMmVkNjZkZC4uNDkyMTNkMCAxMDA2NDQKLS0tIGEvYm9hcmQvbWNjMjAwL2F1dG9fdXBkYXRlLmMKKysrIGIvYm9hcmQvbWNjMjAwL2F1dG9fdXBkYXRlLmMKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDx1c2IuaD4KICNpbmNsdWRlIDxwYXJ0Lmg+CiAKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAjaW5jbHVkZSA8aHVzaC5oPgogI2VuZGlmCiAKQEAgLTQwLDggKzQwLDggQEAKICNlcnJvciAibXVzdCBkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFIgogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZXJyb3IgIm11c3QgZGVmaW5lIENGR19IVVNIX1BBUlNFUiIKKyNpZm5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2Vycm9yICJtdXN0IGRlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSIgogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChDT05GSUdfQ01EX0ZBVCkKZGlmZiAtLWdpdCBhL2JvYXJkL21jYzIwMC9tY2MyMDAuYyBiL2JvYXJkL21jYzIwMC9tY2MyMDAuYwppbmRleCA2NWI4MTg0Li4xNGNmMDhkIDEwMDY0NAotLS0gYS9ib2FyZC9tY2MyMDAvbWNjMjAwLmMKKysrIGIvYm9hcmQvbWNjMjAwL21jYzIwMC5jCkBAIC00Nyw3ICs0Nyw3IEBACiBleHRlcm4gaW50IGRvX2F1dG9fdXBkYXRlKHZvaWQpOwogdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHVsb25nIGJhc2UsIGludCBiYW5rbnVtKTsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIHN0YXRpYyB2b2lkIHNkcmFtX3N0YXJ0IChpbnQgaGlfYWRkcikKIHsKIAlsb25nIGhpX2FkZHJfYml0ID0gaGlfYWRkciA/IDB4MDEwMDAwMDAgOiAwOwpAQCAtOTIsNyArOTIsNyBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKgkgICAgICB1c2Ugb2YgQ0ZHX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ0ZHX1NEUkFNX0JBU0UKKyAqCSAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKgkgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIApAQCAtMTAxLDcgKzEwMSw3IEBACiAJdWxvbmcgZHJhbXNpemUgPSAwOwogCXVsb25nIGRyYW1zaXplMiA9IDA7CiAJdWludCBzdnIsIHB2cjsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xMjIsOSArMTIyLDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTUwLDEwICsxNTAsMTAgQEAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJaWYgKCFkcmFtc2l6ZSkKIAkJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCWlmICghZHJhbXNpemUpIHsKIAkJc2RyYW1fc3RhcnQoMSk7Ci0JCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAl9CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CkBAIC0xNzUsNyArMTc1LDcgQEAKIAkJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KIAl9CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTE5Myw3ICsxOTMsNyBAQAogCQlkcmFtc2l6ZTIgPSAwOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKgogCSAqIE9uIE1QQzUyMDBCIHdlIG5lZWQgdG8gc2V0IHRoZSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gZGVsYXkgaW4gdGhlCkBAIC0yMzcsNyArMjM3LDcgQEAKIAkvKgogCSAqIENoZWNrIGlmIGJvb3QgRkxBU0ggaXNuJ3QgbWF4IHNpemUKIAkgKi8KLQlpZiAoZ2QtPmJkLT5iaV9mbGFzaHNpemUgPCAoMCAtIENGR19GTEFTSF9CQVNFKSkgeworCWlmIChnZC0+YmQtPmJpX2ZsYXNoc2l6ZSA8ICgwIC0gQ09ORklHX1NZU19GTEFTSF9CQVNFKSkgewogCQkvKiBhZGp1c3QgbWFwcGluZyAqLwogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVEFSVCA9ICoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUQVJUID0KIAkJCVNUQVJUX1JFRyhnZC0+YmQtPmJpX2ZsYXNoc3RhcnQpOwpAQCAtMjQ3LDMxICsyNDcsMzEgQEAKIAkJLyoKIAkJICogUmUtY2hlY2sgdG8gZ2V0IGNvcnJlY3QgYmFzZSBhZGRyZXNzCiAJCSAqLwotCQlmbGFzaF9nZXRfc2l6ZShnZC0+YmQtPmJpX2ZsYXNoc3RhcnQsIENGR19NQVhfRkxBU0hfQkFOS1MgLSAxKTsKKwkJZmxhc2hfZ2V0X3NpemUoZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0LCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDEpOwogCiAJCS8qCiAJCSAqIFJlLWRvIGZsYXNoIHByb3RlY3Rpb24gdXBvbiBuZXcgYWRkcmVzc2VzCiAJCSAqLwogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfQ0xFQVIsCiAJCQkgICAgICAgZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0LCAweGZmZmZmZmZmLAotCQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAotCQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJICAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogCiAJCS8qIEVudmlyb25tZW50IHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkJICAgICAgIENPTkZJR19FTlZfQUREUiwKIAkJCSAgICAgICBDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSAtIDEsCi0JCQkgICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJCSAgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKIAogCQkvKiBSZWR1bmRhbnQgZW52aXJvbm1lbnQgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCQkgICAgICAgQ09ORklHX0VOVl9BRERSX1JFRFVORCwKIAkJCSAgICAgICBDT05GSUdfRU5WX0FERFJfUkVEVU5EICsgQ09ORklHX0VOVl9TSVpFX1JFRFVORCAtIDEsCi0JCQkgICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJCSAgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKIAl9CiAKIAlpZiAoZ2QtPmJkLT5iaV9mbGFzaHNpemUgPiAoMzIgPDwgMjApKSB7CkBAIC0zMjUsNiArMzI1LDYgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRE9DKQogdm9pZCBkb2NfaW5pdCAodm9pZCkKIHsKLQlkb2NfcHJvYmUgKENGR19ET0NfQkFTRSk7CisJZG9jX3Byb2JlIChDT05GSUdfU1lTX0RPQ19CQVNFKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvbWwyL2ZsYXNoLmMgYi9ib2FyZC9tbDIvZmxhc2guYwppbmRleCBhZDBmMDc1Li5jMTI1ZDQxIDEwMDY0NAotLS0gYS9ib2FyZC9tbDIvZmxhc2guYworKysgYi9ib2FyZC9tbDIvZmxhc2guYwpAQCAtMjIsNyArMjIsNyBAQAogCiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAoNjQqMTAyNCoxMDI0KQogCi1mbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI2RlZmluZSBTRUNUX1NJWkUJCSg1MTIqMTAyNCkKIApAQCAtNjEsMTYgKzYxLDE2IEBACiAJaW50IGksIGo7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IoaT0wO2k8Q0ZHX01BWF9GTEFTSF9CQU5LUztpKyspIHsKKwlmb3IoaT0wO2k8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7aSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IChJTlRFTF9NQU5VRkFDVCAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJCQkJCQkJCSAoSU5URUxfSURfMjhGMTI4SjNBICYgRkxBU0hfVFlQRU1BU0spOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCQltZW1zZXQoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlpZiAoaT09MCkKLQkJCWZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCQkJZmxhc2hiYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCQllbHNlCiAJCQlwYW5pYygiY29uZmlndXJlZCB0b28gbWFueSBmbGFzaCBiYW5rcyFcbiIpOwogCQlmb3IgKGogPSAwOyBqIDwgZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQ7IGorKykKZGlmZiAtLWdpdCBhL2JvYXJkL21sMi9zZXJpYWwuYyBiL2JvYXJkL21sMi9zZXJpYWwuYwppbmRleCBjMTg4MTViLi5kOTExM2FiIDEwMDY0NAotLS0gYS9ib2FyZC9tbDIvc2VyaWFsLmMKKysrIGIvYm9hcmQvbWwyL3NlcmlhbC5jCkBAIC0yNSwyNiArMjUsMjYgQEAKICNpbmNsdWRlIDxjb21tYW5kLmg+CiAjaW5jbHVkZSA8Y29uZmlncy9NTDIuaD4KIAotI2lmIChkZWZpbmVkIENGR19JTklUX0NIQU4xKSB8fCAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMikKKyNpZiAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjEpIHx8IChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMikKICNpbmNsdWRlIDxuczE2NTUwLmg+CiAjZW5kaWYKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLSNpZiAoZGVmaW5lZCBDRkdfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjIpCi1jb25zdCBOUzE2NTUwX3QgQ09NX1BPUlRTW10gPSB7IChOUzE2NTUwX3QpIENGR19OUzE2NTUwX0NPTTEsCi0JKE5TMTY1NTBfdCkgQ0ZHX05TMTY1NTBfQ09NMgorI2lmIChkZWZpbmVkIENPTkZJR19TWVNfSU5JVF9DSEFOMSkgfHwgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4yKQorY29uc3QgTlMxNjU1MF90IENPTV9QT1JUU1tdID0geyAoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSwKKwkoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgogfTsKICNlbmRpZgogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0JaW50IGNsb2NrX2Rpdmlzb3IgPSBDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKIAotI2lmZGVmIENGR19JTklUX0NIQU4xCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4xCiAJKHZvaWQpIE5TMTY1NTBfaW5pdCAoQ09NX1BPUlRTWzBdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgotI2lmZGVmIENGR19JTklUX0NIQU4yCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4yCiAJKHZvaWQpIE5TMTY1NTBfaW5pdCAoQ09NX1BPUlRTWzFdLCBjbG9ja19kaXZpc29yKTsKICNlbmRpZgogCXJldHVybiAwOwpAQCAtNTQsMjkgKzU0LDI5IEBACiB2b2lkIHNlcmlhbF9wdXRjIChjb25zdCBjaGFyIGMpCiB7CiAJaWYgKGMgPT0gJ1xuJykKLQkJTlMxNjU1MF9wdXRjIChDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dLCAnXHInKTsKKwkJTlMxNjU1MF9wdXRjIChDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSwgJ1xyJyk7CiAKLQlOUzE2NTUwX3B1dGMgKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0sIGMpOworCU5TMTY1NTBfcHV0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sIGMpOwogfQogCiBpbnQgc2VyaWFsX2dldGMgKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfZ2V0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSk7CisJcmV0dXJuIE5TMTY1NTBfZ2V0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiBpbnQgc2VyaWFsX3RzdGMgKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfdHN0YyAoQ09NX1BPUlRTW0NGR19EVUFSVF9DSEFOXSk7CisJcmV0dXJuIE5TMTY1NTBfdHN0YyAoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiB2b2lkIHNlcmlhbF9zZXRicmcgKHZvaWQpCiB7Ci0JaW50IGNsb2NrX2Rpdmlzb3IgPSBDRkdfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIGdkLT5iYXVkcmF0ZTsKIAotI2lmZGVmIENGR19JTklUX0NIQU4xCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0NIQU4xCiAJTlMxNjU1MF9yZWluaXQgKENPTV9QT1JUU1swXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5JVF9DSEFOMgorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCU5TMTY1NTBfcmVpbml0IChDT01fUE9SVFNbMV0sIGNsb2NrX2Rpdmlzb3IpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9ib2FyZC9tb2RuZXQ1MC9mbGFzaC5jIGIvYm9hcmQvbW9kbmV0NTAvZmxhc2guYwppbmRleCBmYjEyZTAzLi40YzMxMTQzIDEwMDY0NAotLS0gYS9ib2FyZC9tb2RuZXQ1MC9mbGFzaC5jCisrKyBiL2JvYXJkL21vZG5ldDUwL2ZsYXNoLmMKQEAgLTc2LDcgKzc2LDcgQEAKICNkZWZpbmUgQVZBSUxfU0laRQkJKERFVklDRV9TSVpFKk1BWF9GTEFTSF9ERVZJQ0VTIC0gUkVTRVJWRURfQ0VMTFMqQ0VMTF9TSVpFKQogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogc3RhdGljIF9fdTE2IHRvZ2dsaW5nX2JpdHM7CiAKIApAQCAtMTIwLDggKzEyMCw4IEBACiAJY2FzZSBBTURfSURfTFYxNjBCOgogCQlpbmZvLT5mbGFzaF9pZCArPQogCQkJKEZMQVNIX0FNMTYwTFYgfCBGTEFTSF9BTTE2MEIpICYgRkxBU0hfVFlQRU1BU0s7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJaW5mby0+c2l6ZSA9IENGR19GTEFTSF9TSVpFOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQlpbmZvLT5zaXplID0gQ09ORklHX1NZU19GTEFTSF9TSVpFOwogCQkvKiAxKjE2SyBCb290IEJsb2NrCiAJCSAgIDIqOEsgUGFyYW1ldGVyIEJsb2NrCiAJCSAgIDEqMzJLIFNtYWxsIE1haW4gQmxvY2sgKi8KQEAgLTEzMCw3ICsxMzAsNyBAQAogCQlpbmZvLT5zdGFydFsyXSA9IGJhc2VhZGRyICsgMHg2MDAwOwogCQlpbmZvLT5zdGFydFszXSA9IGJhc2VhZGRyICsgMHg4MDAwOwogCQlmb3IgKGkgPSAxOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspCi0JCQlpbmZvLT5zdGFydFszICsgaV0gPSBiYXNlYWRkciArIGkgKiBDRkdfTUFJTl9TRUNUX1NJWkU7CisJCQlpbmZvLT5zdGFydFszICsgaV0gPSBiYXNlYWRkciArIGkgKiBDT05GSUdfU1lTX01BSU5fU0VDVF9TSVpFOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CkBAIC0xNjAsMTIgKzE2MCwxMiBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgKG9ubHkgb25lIGJhbmspICovCi0Jc2l6ZSA9IGZsYXNoX2dldF9zaXplIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOIHx8IHNpemUgPT0gMCkgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLApAQCAtMTc2LDggKzE3Niw4IEBACiAJICogcHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMzQ1LDcgKzM0NSw3IEBACiAJCQkJCS8qIGFybSBzaW1wbGUsIG5vbiBpbnRlcnJ1cHQgZGVwZW5kZW50IHRpbWVyICovCiAJCQkJCXJlc2V0X3RpbWVyX21hc2tlZCAoKTsKIAkJCQkJd2hpbGUgKGZsYXNoX2NoZWNrX2VyYXNlX2FtZCAoaW5mby0+c3RhcnRbc2VjdF0pKSB7Ci0JCQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQkJCXByaW50ZiAoInRpbWVvdXQhXG4iKTsKIAkJCQkJCQkvKiBPT1BTOiByZWFjaCB0aW1lb3V0LAogCQkJCQkJCSAqIHRyeSB0byByZXNldCBjaGlwCkBAIC00NDksNyArNDQ5LDcgQEAKIAlyZXNldF90aW1lcl9tYXNrZWQgKCk7CiAKIAl3aGlsZSAoZmxhc2hfY2hlY2tfd3JpdGVfYW1kIChkZXN0KSkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlwcmludGYgKCJ0aW1lb3V0ISBAICUwOGxYXG4iLCBkZXN0KTsKIAkJCS8qIE9PUFM6IHJlYWNoIHRpbWVvdXQsCiAJCQkgKiAgICAgICB0cnkgdG8gcmVzZXQgY2hpcCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbW90aW9ucHJvL21vdGlvbnByby5jIGIvYm9hcmQvbW90aW9ucHJvL21vdGlvbnByby5jCmluZGV4IDNiMzQwNjIuLjg0MmJjZTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL21vdGlvbnByby9tb3Rpb25wcm8uYworKysgYi9ib2FyZC9tb3Rpb25wcm8vbW90aW9ucHJvLmMKQEAgLTk2LDcgKzk2LDcgQEAKIAlyZXR1cm47CiB9CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAvKgogICogSGVscGVyIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgU0RSQU0gY29udHJvbGxlci4KICAqLwpAQCAtMTI2LDcgKzEyNiw3IEBACiAJLyogbm9ybWFsIG9wZXJhdGlvbiAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1RSTCA9IFNEUkFNX0NPTlRST0wgfCBoaV9hZGRyX2JpdDsKIH0KLSNlbmRpZiAvKiAhQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiAhQ09ORklHX1NZU19SQU1CT09UICovCiAKIAogLyoKQEAgLTEzNSw3ICsxMzUsNyBAQAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBBY2NvcmRpbmcgdG8gQU4zMjIxIChNUEM1MjAwQiBTRFJBTSBJbml0aWFsaXphdGlvbiBhbmQKQEAgLTE1Myw5ICsxNTMsOSBAQAogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ09ORklHMiA9IFNEUkFNX0NPTkZJRzI7CiAKIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTc4LDE0ICsxNzgsMTQgQEAKIAkvKiBsZXQgU0RSQU0gQ1MxIHN0YXJ0IHJpZ2h0IGFmdGVyIENTMCBhbmQgZGlzYWJsZSBpdCAqLwogCSoodnVfbG9uZyAqKSBNUEM1WFhYX1NEUkFNX0NTMUNGRyA9IGRyYW1zaXplOwogCi0jZWxzZSAvKiAhQ0ZHX1JBTUJPT1QgKi8KKyNlbHNlIC8qICFDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CiAJaWYgKGRyYW1zaXplID49IDB4MTMpCiAJCWRyYW1zaXplID0gKDEgPDwgKGRyYW1zaXplIC0gMHgxMykpIDw8IDIwOwogCWVsc2UKIAkJZHJhbXNpemUgPSAwOwotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXR1cm4gdG90YWwgcmFtIHNpemUgKi8KIAlyZXR1cm4gZHJhbXNpemU7CmRpZmYgLS1naXQgYS9ib2FyZC9tb3Vzc2UvZmxhc2guYyBiL2JvYXJkL21vdXNzZS9mbGFzaC5jCmluZGV4IDJjMzJiOGYuLmQ3MjlmMzMgMTAwNjQ0Ci0tLSBhL2JvYXJkL21vdXNzZS9mbGFzaC5jCisrKyBiL2JvYXJkL21vdXNzZS9mbGFzaC5jCkBAIC01MCw3ICs1MCw3IEBACiAjZGVmaW5lIFBSSVZBVEUKICNlbmRpZgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI2RlZmluZSBTTEVFUF9ERUxBWSAgICAxNjYKICNkZWZpbmUgRkxBU0hfU0VDVE9SX1NJWkUgICAoNjQqMTAyNCkKZGlmZiAtLWdpdCBhL2JvYXJkL21vdXNzZS9tb3Vzc2UuYyBiL2JvYXJkL21vdXNzZS9tb3Vzc2UuYwppbmRleCA3YjYxMjY2Li42YTEyYjU3IDEwMDY0NAotLS0gYS9ib2FyZC9tb3Vzc2UvbW91c3NlLmMKKysrIGIvYm9hcmQvbW91c3NlL21vdXNzZS5jCkBAIC01OCw3ICs1OCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQlyZXR1cm4gQ0ZHX1JBTV9TSVpFOworCXJldHVybiBDT05GSUdfU1lTX1JBTV9TSVpFOwogfQogCiAKZGlmZiAtLWdpdCBhL2JvYXJkL21vdXNzZS9tb3Vzc2UuaCBiL2JvYXJkL21vdXNzZS9tb3Vzc2UuaAppbmRleCA1NDY4MzE0Li4xMGEwMDYyIDEwMDY0NAotLS0gYS9ib2FyZC9tb3Vzc2UvbW91c3NlLmgKKysrIGIvYm9hcmQvbW91c3NlL21vdXNzZS5oCkBAIC0yMDQsMTcgKzIwNCwxNyBAQAogI2RlZmluZSBQUk9NSVNFX01CQVI1ICAoUFJPTUlTRV9NQkFSMCArIDB4NTAwMCkKIAogLyogQVRBLzY2IENvbnRyb2xsZXIgb2Zmc2V0cyAqLwotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUiAgICAgUFJPTUlTRV9NQkFSMAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkgICAgICAgMiAvKiBpZGUwL2lkZTEgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UgICAgICAyIC8qIDIgZHJpdmVzIHBlciBjb250cm9sbGVyICovCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQgICAgMAotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUICAgIDB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgICAgIFBST01JU0VfTUJBUjAKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCSAgICAgICAyIC8qIGlkZTAvaWRlMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UgICAgICAyIC8qIDIgZHJpdmVzIHBlciBjb250cm9sbGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQgICAgMHgzMDAwCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGFjY2Vzc2luZyBJREUgY29udHJvbGxlciByZWdpc3RlcnMKICAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUICAgIDAKLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAgICAwCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVCAgICAoMHgxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCAgICAoMHgxMDAwKQogCiAvKgogICogVGhlIGNvbnN0YW50cyBST01fVEVYVF9BRFJTLCBST01fU0laRSwgUkFNX0hJR0hfQURSUywgYW5kIFJBTV9MT1dfQURSUwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXAydXNiL2ZsYXNoLmMgYi9ib2FyZC9tcDJ1c2IvZmxhc2guYwppbmRleCA1MjdlNzRlLi4yMWE4ZWY5IDEwMDY0NAotLS0gYS9ib2FyZC9tcDJ1c2IvZmxhc2guYworKysgYi9ib2FyZC9tcDJ1c2IvZmxhc2guYwpAQCAtMzAsMTAgKzMwLDEwIEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwIC8qIDEyOCBLQiBzZWN0b3JzICh4MSkgKi8KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSAl1c2hvcnQKICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSFYJdnVfc2hvcnQKQEAgLTc3LDcgKzc3LDcgQEAKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC05Myw4ICs5Myw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0gKTsKIAogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULApAQCAtMjIwLDEwICsyMjAsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgSU5URUxfUkVTRVQ7CQkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzAzLDcgKzMwMyw3IEBACiAJCQkqYWRkciA9IChGUFcpIElOVEVMX0NPTkZJUk07CS8qIGVyYXNlIGNvbmZpcm0gKi8KIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgSU5URUxfRklOSVNIRUQpICE9IChGUFcpIElOVEVMX0ZJTklTSEVEKSB7Ci0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIElOVEVMX1NVU1BFTkQ7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgSU5URUxfUkVTRVQ7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDQ5LDcgKzQ0OSw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIElOVEVMX0ZJTklTSEVEKSAhPSAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIElOVEVMX1JFU0VUOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpAQCAtNTAwLDcgKzUwMCw3IEBACiAJcmVzZXRfdGltZXJfbWFza2VkICgpOwogCiAJd2hpbGUgKCgqYWRkciAmIChGUFcpIElOVEVMX0ZJTklTSEVEKSAhPSAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9VTkxPQ0tfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQpIHsKIAkJCXByaW50ZigiRmxhc2ggbG9jayBiaXQgb3BlcmF0aW9uIHRpbWVkIG91dFxuIik7CiAJCQlyYyA9IDE7CiAJCQlicmVhazsKQEAgLTUzMiw3ICs1MzIsNyBAQAogCQkJCSphZGRyID0gKEZQVykgSU5URUxfUFJPVEVDVDsJLyogc2V0ICovCiAJCQkJd2hpbGUgKCgqYWRkciAmIChGUFcpIElOVEVMX0ZJTklTSEVEKSAhPSAoRlBXKSBJTlRFTF9GSU5JU0hFRCkKIAkJCQl7Ci0JCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUKQorCQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQpCiAJCQkJCXsKIAkJCQkJCXByaW50ZigiRmxhc2ggbG9jayBiaXQgb3BlcmF0aW9uIHRpbWVkIG91dFxuIik7CiAJCQkJCQlyYyA9IDE7CmRpZmYgLS1naXQgYS9ib2FyZC9tcGM4NTQwZXZhbC9kZHIuYyBiL2JvYXJkL21wYzg1NDBldmFsL2Rkci5jCmluZGV4IDQ1MzcyZjQuLjc4NTA3OTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wYzg1NDBldmFsL2Rkci5jCisrKyBiL2JvYXJkL21wYzg1NDBldmFsL2Rkci5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8aTJjLmg+CiAKICNpbmNsdWRlIDxhc20vZnNsX2Rkcl9zZHJhbS5oPgorI2luY2x1ZGUgPGFzbS9mc2xfZGRyX2RpbW1fcGFyYW1zLmg+CiAKIHN0YXRpYyB2b2lkCiBnZXRfc3BkKGRkcjFfc3BkX2VlcHJvbV90ICpzcGQsIHVuc2lnbmVkIGNoYXIgaTJjX2FkZHJlc3MpCkBAIC00MCw3ICs0MSw5IEBACiAJfQogfQogCi12b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywgdW5zaWduZWQgaW50IGN0cmxfbnVtKQordm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsCisJCQkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCisJCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCS8qCiAJICogRmFjdG9ycyB0byBjb25zaWRlciBmb3IgQ1BPOgpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBjODU0MGV2YWwvZmxhc2guYyBiL2JvYXJkL21wYzg1NDBldmFsL2ZsYXNoLmMKaW5kZXggOThmZDE2OC4uOWRmNWJkOSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBjODU0MGV2YWwvZmxhc2guYworKysgYi9ib2FyZC9tcGM4NTQwZXZhbC9mbGFzaC5jCkBAIC0zMSwxMyArMzEsMTMgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNzQsNyArNzQsNyBAQAogCS8qIEluaXQ6IGVuYWJsZSB3cml0ZSwKIAkgKiBvciB3ZSBjYW5ub3QgZXZlbiB3cml0ZSBmbGFzaCBjb21tYW5kcwogCSAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAkJLyogc2V0IHRoZSBkZWZhdWx0IHNlY3RvciBvZmZzZXQgKi8KQEAgLTgyLDcgKzgyLDcgQEAKIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAtIEZJWE1FIFhYWCAqLwogCi0Jc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKQEAgLTkwLDE2ICs5MCwxNiBAQAogCX0KIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIAogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMTc3LDggKzE3Nyw4IEBACiAJdWRlbGF5KDIwKTsKIAlhc20oInN5bmMiKTsKIAotI2lmbmRlZiBDRkdfRkxBU0hfQ0ZJCi0JcHJpbnRmKCJOb3QgZGVmaW5lIENGR19GTEFTSF9DRklcbiIpOworI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSQorCXByaW50ZigiTm90IGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSVxuIik7CiAJcmV0dXJuICgwKTsKICNlbHNlCiAJdmFsdWUgPSBhZGRyWzBdOwpAQCAtMjM3LDcgKzIzNyw3IEBACiAJCQlicmVhazsKIAl9CiAjZW5kaWYKLSNlbmRpZgkJLyojaWZkZWYgQ0ZHX0ZMQVNIX0NGSSovCisjZW5kaWYJCS8qI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJKi8KIAogCWlmIChiaWdfZW5kaWFuPT0wKSB2YWx1ZSA9IChhZGRyWzBdICYgMHhGRjAwMDAwMCkgPj44OwogCWVsc2UgdmFsdWUgPSAoYWRkclswXSAmIDB4MDBGRjAwMDApOwpAQCAtNDUzLDcgKzQ1Myw3IEBACiAJCQkJCQkJYXNtKCJzeW5jIik7CiAJCQkJCQkJcmV0dXJuIDE7CiAJCQkJCQl9Ci0JCQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkJCSphZGRyMTYgPSAweEZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJCQlhc20oInN5bmMiKTsKQEAgLTUwNSw3ICs1MDUsNyBAQAogCQkJCQkJCWFzbSgic3luYyIpOwogCQkJCQkJCXJldHVybiAxOwogCQkJCQkJfQotCQkJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJCQkqYWRkciA9IDB4RkZGRkZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJCQlhc20oInN5bmMiKTsKQEAgLTY5Myw3ICs2OTMsNyBAQAogCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCWZsYWcgID0gMDsKIAkJd2hpbGUgKCgoY3NyID0gKmFkZHIpICYgcmVhZHkpICE9IHJlYWR5KSB7Ci0JCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCWZsYWcgPSAxOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtNzUxLDcgKzc1MSw3IEBACiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJZmxhZyAgPSAwOwogCQl3aGlsZSAoKChjc3IgPSAqYWRkcikgJiByZWFkeSkgIT0gcmVhZHkpIHsKLQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJZmxhZyA9IDE7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC04MTUsNyArODE1LDcgQEAKIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQlmbGFnICA9IDA7CiAJCXdoaWxlICgoKGNzciA9ICphZGRyKSAmIHJlYWR5KSAhPSByZWFkeSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlmbGFnID0gMTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTg4MSw3ICs4ODEsNyBAQAogCSphZGRyID0gMHg3MDcwNzA3MDsJLyogcmVhZCBzdGF0dXMgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUoKCphZGRyICYgcmVhZHkpICE9IHJlYWR5KXsKLQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dCBvbiBjbGVhcmluZyBCbG9jayBMb2NrIEJpdFxuIik7CiAJCQkqYWRkciA9IDB4RkZGRkZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCWFzbSgic3luYyIpOwpAQCAtODkxLDQgKzg5MSw0IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvKiAhQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogIUNPTkZJR19TWVNfTk9fRkxBU0ggKi8KZGlmZiAtLWdpdCBhL2JvYXJkL21wYzg1NDBldmFsL2xhdy5jIGIvYm9hcmQvbXBjODU0MGV2YWwvbGF3LmMKaW5kZXggY2ZjZDczZS4uOTkyNmQyNSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBjODU0MGV2YWwvbGF3LmMKKysrIGIvYm9hcmQvbXBjODU0MGV2YWwvbGF3LmMKQEAgLTQzLDExICs0MywxMSBAQAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfRERSKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSV9NRU1fUEhZUywgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJX01FTV9QSFlTLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAogI2lmbmRlZiBDT05GSUdfUkFNX0FTX0ZMQVNICi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzEyOE0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9MQkMpLAogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9ib2FyZC9tcGM4NTQwZXZhbC9tcGM4NTQwZXZhbC5jIGIvYm9hcmQvbXBjODU0MGV2YWwvbXBjODU0MGV2YWwuYwppbmRleCAwMjhhNzBmLi45YjU2NGI4IDEwMDY0NAotLS0gYS9ib2FyZC9tcGM4NTQwZXZhbC9tcGM4NTQwZXZhbC5jCisrKyBiL2JvYXJkL21wYzg1NDBldmFsL21wYzg1NDBldmFsLmMKQEAgLTM2LDcgKzM2LDcgQEAKIGludCBib2FyZF9wcmVfaW5pdCAodm9pZCkKIHsKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCi0Jdm9sYXRpbGUgY2Nzcl9wY2l4X3QgKnBjaSA9ICh2b2lkICopKENGR19NUEM4NXh4X1BDSVhfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9wY2l4X3QgKnBjaSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9QQ0lYX0FERFIpOwogCiAJcGNpLT5wZWVyICY9IDB4ZmZmZmZmZGY7IC8qIGRpc2FibGUgbWFzdGVyIGFib3J0ICovCiAjZW5kaWYKQEAgLTUzLDEwICs1MywxMCBAQAogCXByaW50ZiAoIlx0Q1BVOiAlbHUgTUh6XG4iLCBzeXNpbmZvLmZyZXFQcm9jZXNzb3IgLyAxMDAwMDAwKTsKIAlwcmludGYgKCJcdENDQjogJWx1IE1IelxuIiwgc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMCk7CiAJcHJpbnRmICgiXHRERFI6ICVsdSBNSHpcbiIsIHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDIwMDAwMDApOwotCWlmKChDRkdfTEJDX0xDUlIgJiAweDBmKSA9PSAyIHx8IChDRkdfTEJDX0xDUlIgJiAweDBmKSA9PSA0IFwKLQkJfHwgKENGR19MQkNfTENSUiAmIDB4MGYpID09IDgpIHsKKwlpZigoQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGYpID09IDIgfHwgKENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDBmKSA9PSA0IFwKKwkJfHwgKENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDBmKSA9PSA4KSB7CiAJCXByaW50ZiAoIlx0TEJDOiAlbHUgTUh6XG4iLAotCQkJc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMC8oQ0ZHX0xCQ19MQ1JSICYgMHgwZikpOworCQkJc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMC8oQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGYpKTsKIAl9IGVsc2UgewogCQlwcmludGYoIlx0TEJDOiB1bmtub3duXG4iKTsKIAl9CkBAIC02OSwxMiArNjksMTIgQEAKIAlsb25nIGRyYW1fc2l6ZSA9IDA7CiAKICNpZiAhZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCXN5c19pbmZvX3Qgc3lzaW5mbzsKIAl1aW50IHRlbXBfbGJjZGxsID0gMDsKICNlbmRpZgogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpIHx8IGRlZmluZWQoQ09ORklHX0REUl9ETEwpCi0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0RMTCkKQEAgLTk0LDQyICs5NCw0MiBAQAogCWRyYW1fc2l6ZSA9IGZpeGVkX3NkcmFtICgpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogCXJldHVybiBkcmFtX3NpemU7CiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpIC8qIExvY2FsQnVzIGlzIG5vdCBlbXVsYXRpbmcgZmxhc2ggKi8KIAlnZXRfc3lzX2luZm8oJnN5c2luZm8pOwogCS8qIGlmIGxvY2FsYnVzIGZyZXEgaXMgbGVzcyB0aGFuIDY2TWh6LHdlIHVzZSBieXBhc3MgbW9kZSxvdGhlcndpc2UgdXNlIERMTCAqLwotCWlmKHN5c2luZm8uZnJlcVN5c3RlbUJ1cy8oQ0ZHX0xCQ19MQ1JSICYgMHgwZikgPCA2NjAwMDAwMCkgewotCQlsYmMtPmxjcnIgPSAoQ0ZHX0xCQ19MQ1JSICYgMHgwZmZmZmZmZil8IDB4ODAwMDAwMDA7CisJaWYoc3lzaW5mby5mcmVxU3lzdGVtQnVzLyhDT05GSUdfU1lTX0xCQ19MQ1JSICYgMHgwZikgPCA2NjAwMDAwMCkgeworCQlsYmMtPmxjcnIgPSAoQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGZmZmZmZmYpfCAweDgwMDAwMDAwOwogCX0gZWxzZSB7Ci0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmIDB4N2ZmZmZmZmY7CisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDdmZmZmZmZmOwogCQl1ZGVsYXkoMjAwKTsKIAkJdGVtcF9sYmNkbGwgPSBndXItPmxiY2RsbGNyOwogCQlndXItPmxiY2RsbGNyID0gKCh0ZW1wX2xiY2RsbCAmIDB4ZmYpIDw8IDE2ICkgfCAweDgwMDAwMDAwOwogCQlhc20oInN5bmM7aXN5bmM7bXN5bmMiKTsKIAl9Ci0JbGJjLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsgLyogNjRNQiBTRFJBTSAqLwotCWxiYy0+YnIyID0gQ0ZHX0JSMl9QUkVMSU07Ci0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzE7CisJbGJjLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07IC8qIDY0TUIgU0RSQU0gKi8KKwlsYmMtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xOwogCWFzbSgic3luYyIpOwogCSogKHVsb25nICopMCA9IDB4MDAwMDAwZmY7Ci0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMjsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMjsKIAlhc20oInN5bmMiKTsKIAkqICh1bG9uZyAqKTAgPSAweDAwMDAwMGZmOwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzM7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzM7CiAJYXNtKCJzeW5jIik7CiAJKiAodWxvbmcgKikwID0gMHgwMDAwMDBmZjsKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl80OworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl80OwogCWFzbSgic3luYyIpOwogCSogKHVsb25nICopMCA9IDB4MDAwMDAwZmY7Ci0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNTsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsKIAlhc20oInN5bmMiKTsKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKIAlhc20oInN5bmMiKTsKLQlsYmMtPm1ydHByID0gQ0ZHX0xCQ19NUlRQUjsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJYXNtKCJzeW5jIik7CiAjZW5kaWYKIApAQCAtMTM5LDcgKzEzOSw3IEBACiAJCSAqIGVuYWJsZSBlcnJvcnMgKi8KIAkJdWludCAqcCA9IDA7CiAJCXVpbnQgaSA9IDA7Ci0JCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworCQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAJCWRtYV9pbml0KCk7CiAJCWZvciAoKnAgPSAwOyBwIDwgKHVpbnQgKikoOCAqIDEwMjQpOyBwKyspIHsKIAkJCWlmICgoKHVuc2lnbmVkIGludClwICYgMHgxZikgPT0gMCkgeyBkY2J6KHApOyB9CkBAIC0xODEsMTEgKzE4MSwxMSBAQAogCXJldHVybiBkcmFtX3NpemU7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKQEAgLTIyMSwxNSArMjIxLDE1IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7Ci0jaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSKTsKIAotCWRkci0+Y3MwX2JuZHMgPSBDRkdfRERSX0NTMF9CTkRTOwotCWRkci0+Y3MwX2NvbmZpZyA9IENGR19ERFJfQ1MwX0NPTkZJRzsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJZGRyLT5jczBfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9tb2RlID0gQ09ORklHX1NZU19ERFJfTU9ERTsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJZGRyLT5lcnJfZGlzYWJsZSA9IDB4MDAwMDAwMEQ7CiAJZGRyLT5lcnJfc2JlID0gMHgwMGZmMDAwMDsKQEAgLTIzOCwxNCArMjM4LDE0IEBACiAJdWRlbGF5KDUwMCk7CiAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJLyogRW5hYmxlIEVDQyBjaGVja2luZyAqLwotCWRkci0+c2RyYW1fY2ZnID0gKENGR19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOworCWRkci0+c2RyYW1fY2ZnID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKICNlbHNlCi0JZGRyLT5zZHJhbV9jZmcgPSBDRkdfRERSX0NPTlRST0w7CisJZGRyLT5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05UUk9MOwogI2VuZGlmCiAJYXNtKCJzeW5jOyBpc3luYzsgbXN5bmMiKTsKIAl1ZGVsYXkoNTAwKTsKICNlbmRpZgotCXJldHVybiAoQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCk7CisJcmV0dXJuIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCk7CiB9CiAjZW5kaWYJLyogIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pICovCiAKZGlmZiAtLWdpdCBhL2JvYXJkL21wYzg1NDBldmFsL3RsYi5jIGIvYm9hcmQvbXBjODU0MGV2YWwvdGxiLmMKaW5kZXggMTAwM2JmNi4uMDYwOTJmOCAxMDA2NDQKLS0tIGEvYm9hcmQvbXBjODU0MGV2YWwvdGxiLmMKKysrIGIvYm9hcmQvbXBjODU0MGV2YWwvdGxiLmMKQEAgLTI3LDM0ICsyNywzNCBAQAogI2luY2x1ZGUgPGFzbS9tbXUuaD4KIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8xTSwgMSksCiAKLSAgI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BPUlRfV0lEVEhfMTYpCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCisgICNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUE9SVF9XSURUSF8xNikKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzRNLCAxKSwKLQlTRVRfVExCX0VOVFJZKDEsIENGR19GTEFTSF9CQVNFICsgMHg0MDAwMDAsIENGR19GTEFTSF9CQVNFICsgMHg0MDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwMCwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfNE0sIDEpLAogICAjZWxzZQotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKICAgI2VuZGlmCiAKICAgI2lmICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKQotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogICAjZW5kaWYKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBDRkdfTEJDX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLAogICAjaWYgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKICAgI2Vsc2UKQEAgLTYyLDE1ICs2MiwxNSBAQAogICAjZW5kaWYKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzE2SywgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0lfTUVNX1BIWVMsIENGR19QQ0lfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA4LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19CQ1NSLCBDRkdfQkNTUiwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQkNTUiwgQ09ORklHX1NZU19CQ1NSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgOSwgQk9PS0VfUEFHRVNaXzE2SywgMSksCiB9OwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL2NvbW1vbi9jb21tb25fdXRpbC5jIGIvYm9hcmQvbXBsL2NvbW1vbi9jb21tb25fdXRpbC5jCmluZGV4IDg0NTQ0MjAuLjg5OTBmYzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wbC9jb21tb24vY29tbW9uX3V0aWwuYworKysgYi9ib2FyZC9tcGwvY29tbW9uL2NvbW1vbl91dGlsLmMKQEAgLTUzLDcgKzUzLDcgQEAKIGV4dGVybiBpbnQgbWVtX3Rlc3QodWxvbmcgc3RhcnQsIHVsb25nIHJhbXNpemUsIGludCBxdWlldCk7CiAKICNkZWZpbmUgSTJDX0JBQ0tVUF9BRERSIDB4N0MwMAkJLyogMHgyMDAgYnl0ZXMgZm9yIGJhY2t1cCAqLwotI2RlZmluZSBJTUFHRV9TSVpFIENGR19NT05JVE9SX0xFTgkvKiB1Z2x5LCBidXQgaXQgd29ya3MgZm9yIG5vdyAqLworI2RlZmluZSBJTUFHRV9TSVpFIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JLyogdWdseSwgYnV0IGl0IHdvcmtzIGZvciBub3cgKi8KIAogZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKQEAgLTI3MCw3ICsyNzAsNyBAQAogI2lmICFkZWZpbmVkKENPTkZJR19QQVRJKQogdm9pZCBnZXRfYmFja3VwX3ZhbHVlcyhiYWNrdXBfdCAqYnVmKQogewotCWkyY19yZWFkKENGR19ERUZfRUVQUk9NX0FERFIsIEkyQ19CQUNLVVBfQUREUiwyLCh2b2lkICopYnVmLHNpemVvZihiYWNrdXBfdCkpOworCWkyY19yZWFkKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBJMkNfQkFDS1VQX0FERFIsMiwodm9pZCAqKWJ1ZixzaXplb2YoYmFja3VwX3QpKTsKIH0KIAogdm9pZCBzZXRfYmFja3VwX3ZhbHVlcyhpbnQgb3ZlcndyaXRlKQpAQCAtMjk4LDcgKzI5OCw3IEBACiAJCXJldHVybjsKIAl9CiAJYmFjay5ldGhfYWRkclsyMF09MDsKLQlpMmNfd3JpdGUoQ0ZHX0RFRl9FRVBST01fQUREUiwgSTJDX0JBQ0tVUF9BRERSLDIsKHZvaWQgKikmYmFjayxzaXplb2YoYmFja3VwX3QpKTsKKwlpMmNfd3JpdGUoQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIsIEkyQ19CQUNLVVBfQUREUiwyLCh2b2lkICopJmJhY2ssc2l6ZW9mKGJhY2t1cF90KSk7CiB9CiAKIHZvaWQgY2xlYXJfZW52X3ZhbHVlcyh2b2lkKQpAQCAtMzA4LDggKzMwOCw4IEBACiAKIAltZW1zZXQoJmJhY2ssMHhmZixzaXplb2YoYmFja3VwX3QpKTsKIAltZW1zZXQoZW52X2NyYywweDAwLDQpOwotCWkyY193cml0ZShDRkdfREVGX0VFUFJPTV9BRERSLEkyQ19CQUNLVVBfQUREUiwyLCh2b2lkICopJmJhY2ssc2l6ZW9mKGJhY2t1cF90KSk7Ci0JaTJjX3dyaXRlKENGR19ERUZfRUVQUk9NX0FERFIsQ09ORklHX0VOVl9PRkZTRVQsMiwodm9pZCAqKWVudl9jcmMsNCk7CisJaTJjX3dyaXRlKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLEkyQ19CQUNLVVBfQUREUiwyLCh2b2lkICopJmJhY2ssc2l6ZW9mKGJhY2t1cF90KSk7CisJaTJjX3dyaXRlKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLENPTkZJR19FTlZfT0ZGU0VULDIsKHZvaWQgKillbnZfY3JjLDQpOwogfQogCiAvKgpAQCAtMzIyLDcgKzMyMiw3IEBACiAJdWNoYXIgYnVmWzY0XTsKIAogCS8qIHJlYWQgb2xkIENSQyAqLwotCWVlcHJvbV9yZWFkIChDRkdfREVGX0VFUFJPTV9BRERSLAorCWVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiwKIAkJICAgICBDT05GSUdfRU5WX09GRlNFVCwKIAkJICAgICAodWNoYXIgKikmY3JjLCBzaXplb2YodWxvbmcpKTsKIApAQCAtMzMzLDcgKzMzMyw3IEBACiAJd2hpbGUgKGxlbiA+IDApIHsKIAkJaW50IG4gPSAobGVuID4gc2l6ZW9mKGJ1ZikpID8gc2l6ZW9mKGJ1ZikgOiBsZW47CiAKLQkJZWVwcm9tX3JlYWQgKENGR19ERUZfRUVQUk9NX0FERFIsIENPTkZJR19FTlZfT0ZGU0VUK29mZiwgYnVmLCBuKTsKKwkJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsIGJ1Ziwgbik7CiAJCW5ldyA9IGNyYzMyIChuZXcsIGJ1Ziwgbik7CiAJCWxlbiAtPSBuOwogCQlvZmYgKz0gbjsKQEAgLTM2Miw3ICszNjIsNyBAQAogCWxlbj1zaXplOwogCW9mZiA9IHNpemVvZihsb25nKTsKIAl3aGlsZSAobGVuID4gb2ZmKSB7Ci0JCWVlcHJvbV9yZWFkIChDRkdfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsICZjLCAxKTsKKwkJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsICZjLCAxKTsKIAkJaWYoYyAhPSAnPScpIHsKIAkJCSpuYW1lKys9YzsKIAkJCW9mZisrOwpAQCAtMzcxLDcgKzM3MSw3IEBACiAJCQkqbmFtZSsrPSdcMCc7CiAJCQlvZmYrKzsKIAkJCWRvIHsKLQkJCQllZXByb21fcmVhZCAoQ0ZHX0RFRl9FRVBST01fQUREUiwgQ09ORklHX0VOVl9PRkZTRVQrb2ZmLCAmYywgMSk7CisJCQkJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsICZjLCAxKTsKIAkJCQkqdmFsdWUrKz1jOwogCQkJCW9mZisrOwogCQkJCWlmKGMgPT0gJ1wwJykKQEAgLTQ4NSw3ICs0ODUsNyBAQAogCQkJfQogCQkJZWxzZSB7CiAJCQkJbG9jYWxfYXJnc1sxXSA9IE5VTEw7Ci0JCQkJbGRfYWRkcj1DRkdfTE9BRF9BRERSOworCQkJCWxkX2FkZHI9Q09ORklHX1NZU19MT0FEX0FERFI7CiAJCQkJcmVzdWx0PWRvX2ZkY2Jvb3QoY21kdHAsIDAsIDEsIGxvY2FsX2FyZ3MpOwogCQkJfQogCQkJcmVzdWx0PW1wbF9wcmdfaW1hZ2UoKHVjaGFyICopbGRfYWRkcik7CkBAIC01MTksMTQgKzUxOSwxNCBAQAogCQkJcmVzdWx0ID0gKGludClzaW1wbGVfc3RydG9sKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAkgICAgfQogCSAgICBzcmM9KHVuc2lnbmVkIGxvbmcpJnJlc3VsdDsKLQkgICAgc3JjLT1DRkdfTUVNVEVTVF9TVEFSVDsKKwkgICAgc3JjLT1DT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CiAJICAgIHNyYy09KDEwMCoxMDI0KTsgLyogLSAxMDBrICovCiAJICAgIHNyYyY9MHhmZmYwMDAwMDsKIAkgICAgc2l6ZT0wOwogCSAgICBkbyB7CiAJCXNpemUrKzsKIAkJCXByaW50ZigiXG5cblBhc3MgJWxkXG4iLHNpemUpOwotCQkJbWVtX3Rlc3QoQ0ZHX01FTVRFU1RfU1RBUlQsc3JjLDEpOworCQkJbWVtX3Rlc3QoQ09ORklHX1NZU19NRU1URVNUX1NUQVJULHNyYywxKTsKIAkJCWlmKGN0cmxjKCkpCiAJCQkJYnJlYWs7CiAJCQlpZihyZXN1bHQ+MCkKZGlmZiAtLWdpdCBhL2JvYXJkL21wbC9jb21tb24vZmxhc2guYyBiL2JvYXJkL21wbC9jb21tb24vZmxhc2guYwppbmRleCBiMmQ0ZjZmLi4zMDJkN2EzIDEwMDY0NAotLS0gYS9ib2FyZC9tcGwvY29tbW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvbXBsL2NvbW1vbi9mbGFzaC5jCkBAIC01Miw3ICs1Miw3IEBACiAjaW5jbHVkZSA8bXBjNXh4Lmg+CiAjZW5kaWYKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKICAqLwpAQCAtODksNyArODksNyBAQAogICogVGhlIGJvYXJkX2luaXRfciB3aWxsIGZpbGwgaW4gd3JvbmcgdmFsdWVzIGluIHRoZSBib2FyZCBpbml0IHN0cnVjdHVyZSwKICAqIGJ1dCB0aGlzIHdpbGwgYmUgZml4ZWQgaW4gdGhlIG1pc2NfaW5pdF9yIHJvdXRpbmU6CiAgKiBiZC0+YmlfZmxhc2hzdGFydD0wLWZsYXNoX2luZm9bMF0uc2l6ZQotICogYmQtPmJpX2ZsYXNoc2l6ZT1mbGFzaF9pbmZvWzBdLnNpemUtQ0ZHX01PTklUT1JfTEVOCisgKiBiZC0+YmlfZmxhc2hzaXplPWZsYXNoX2luZm9bMF0uc2l6ZS1DT05GSUdfU1lTX01PTklUT1JfTEVOCiAgKiBiZC0+YmlfZmxhc2hvZmZzZXQ9MAogICoKICAqLwpAQCAtMTc0LDEzICsxNzQsMTMgQEAKIAkJCSJNUFMiIDogIkZsYXNoIik7CiAjZW5kaWYgLyogI2lmICFkZWZpbmVkKENPTkZJR19QQVRJKSAqLwogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAtIEZJWE1FIFhYWCAqLwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX01PTklUT1JfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCkBAIC0xODgsMTAgKzE4OCwxMCBAQAogCX0KIAkvKiBwcm90ZWN0IHRoZSBib290bG9hZGVyICovCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCUNGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogI2lmICFkZWZpbmVkKENPTkZJR19QQVRJKQpAQCAtNTU1LDcgKzU1NSw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWxhc3QgID0gc3RhcnQ7CiAJd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIEVSUl9USU1PVVQ7CiAJCX0KQEAgLTU3Niw3ICs1NzYsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlsYXN0ICA9IHN0YXJ0OwogCXdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiBFUlJfVElNT1VUOwogCQl9CkBAIC04NDgsNyArODQ4LDcgQEAKIAkJCXVkZWxheSgxMCk7CiAJCQl3aGlsZSAoKGRlc3QyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApCiAJCQl7Ci0JCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJCWRlc3QyW2ldID0gKEZMQVNIX1dPUkRfU0laRSkweDAwRkYwMEZGOyAvKiByZXR1cm4gdG8gcmVhZCBtb2RlICovCkBAIC04NjksNyArODY5LDcgQEAKIAkJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJCXdoaWxlICgoZGVzdDJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CiAJCQkJKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSkgewotCQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCQlyZXR1cm4gKDEpOwogCQkJCX0KIAkJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL21wbC9jb21tb24vaXNhLmMgYi9ib2FyZC9tcGwvY29tbW9uL2lzYS5jCmluZGV4IDUxYjI3NzMuLjkxODI5ZDQgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wbC9jb21tb24vaXNhLmMKKysrIGIvYm9hcmQvbXBsL2NvbW1vbi9pc2EuYwpAQCAtMTEzLDkgKzExMyw5IEBACiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHVuc2lnbmVkIGNoYXIgb3Blbl9jZmdfc3VwZXJfSU8oaW50IGFkZHJlc3MpCiB7Ci0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHg1NSk7IC8qIG9wZW4gY29uZmlnICovCi0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHgyMCk7IC8qIHNldCBhZGRyZXNzIHRvIERFViBJRCAqLwotCWlmKGluOChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAweDEpPT0weDQwKSAvKiBvayBEZXZpY2UgSUQgaXMgY29ycmVjdCAqLworCW91dDgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIHwgYWRkcmVzcywweDU1KTsgLyogb3BlbiBjb25maWcgKi8KKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHgyMCk7IC8qIHNldCBhZGRyZXNzIHRvIERFViBJRCAqLworCWlmKGluOChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzIHwgMHgxKT09MHg0MCkgLyogb2sgRGV2aWNlIElEIGlzIGNvcnJlY3QgKi8KIAkJcmV0dXJuIFRSVUU7CiAJZWxzZQogCQlyZXR1cm4gRkFMU0U7CkBAIC0xMjMsMjYgKzEyMywyNiBAQAogCiB2b2lkIGNsb3NlX2NmZ19zdXBlcl9JTyhpbnQgYWRkcmVzcykKIHsKLQlvdXQ4KENGR19JU0FfSU9fQkFTRV9BRERSRVNTIHwgYWRkcmVzcywweEFBKTsgLyogY2xvc2UgY29uZmlnICovCisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzLDB4QUEpOyAvKiBjbG9zZSBjb25maWcgKi8KIH0KIAogCiB1bnNpZ25lZCBjaGFyIHJlYWRfY2ZnX3N1cGVyX0lPKGludCBhZGRyZXNzLCB1bnNpZ25lZCBjaGFyIGZ1bmN0aW9uLCB1bnNpZ25lZCBjaGFyIHJlZ2FkZHIpCiB7CiAJLyogYXNzdW1pbmcgY29uZmlnIHJlZyBpcyBvcGVuICovCi0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHg3KTsgLyogcG9pbnRzIHRvIHRoZSBmdW5jdGlvbiByZWcgKi8KLQlvdXQ4KENGR19JU0FfSU9fQkFTRV9BRERSRVNTIHwgYWRkcmVzcyB8IDEsZnVuY3Rpb24pOyAvKiBzZXQgdGhlIGZ1bmN0aW9uIG5vICovCi0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MscmVnYWRkcik7IC8qIHNldHMgdGhlIGFkZHJlc3MgaW4gdGhlIGZ1bmN0aW9uICovCi0JcmV0dXJuIGluOChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAxKTsKKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MsMHg3KTsgLyogcG9pbnRzIHRvIHRoZSBmdW5jdGlvbiByZWcgKi8KKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAxLGZ1bmN0aW9uKTsgLyogc2V0IHRoZSBmdW5jdGlvbiBubyAqLworCW91dDgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIHwgYWRkcmVzcyxyZWdhZGRyKTsgLyogc2V0cyB0aGUgYWRkcmVzcyBpbiB0aGUgZnVuY3Rpb24gKi8KKwlyZXR1cm4gaW44KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAxKTsKIH0KIAogdm9pZCB3cml0ZV9jZmdfc3VwZXJfSU8oaW50IGFkZHJlc3MsIHVuc2lnbmVkIGNoYXIgZnVuY3Rpb24sIHVuc2lnbmVkIGNoYXIgcmVnYWRkciwgdW5zaWduZWQgY2hhciBkYXRhKQogewogCS8qIGFzc3VtaW5nIGNvbmZpZyByZWcgaXMgb3BlbiAqLwotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzLDB4Nyk7IC8qIHBvaW50cyB0byB0aGUgZnVuY3Rpb24gcmVnICovCi0Jb3V0OChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MgfCAxLGZ1bmN0aW9uKTsgLyogc2V0IHRoZSBmdW5jdGlvbiBubyAqLwotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzLHJlZ2FkZHIpOyAvKiBzZXRzIHRoZSBhZGRyZXNzIGluIHRoZSBmdW5jdGlvbiAqLwotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzIHwgMSxkYXRhKTsgLyogd3JpdGVzIHRoZSBkYXRhICovCisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzLDB4Nyk7IC8qIHBvaW50cyB0byB0aGUgZnVuY3Rpb24gcmVnICovCisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzIHwgMSxmdW5jdGlvbik7IC8qIHNldCB0aGUgZnVuY3Rpb24gbm8gKi8KKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyB8IGFkZHJlc3MscmVnYWRkcik7IC8qIHNldHMgdGhlIGFkZHJlc3MgaW4gdGhlIGZ1bmN0aW9uICovCisJb3V0OChDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgfCBhZGRyZXNzIHwgMSxkYXRhKTsgLyogd3JpdGVzIHRoZSBkYXRhICovCiB9CiAKIHZvaWQgaXNhX3dyaXRlX3RhYmxlKFNJT19MT0dERVZfVEFCTEUgKmxkdCx1bnNpZ25lZCBjaGFyIGxkZXYpCkBAIC0yMDgsMTIgKzIwOCwxMiBAQAogCiAjZGVmaW5lIGNhY2hlZF9pbXIxCSh1bnNpZ25lZCBjaGFyKWNhY2hlZF9pcnFfbWFzawogI2RlZmluZSBjYWNoZWRfaW1yMgkodW5zaWduZWQgY2hhcikoY2FjaGVkX2lycV9tYXNrPj44KQotI2RlZmluZSBJTVJfMQkJQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBQSUlYNF9JU0FfSU5UMV9PQ1cxCi0jZGVmaW5lIElNUl8yCQlDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIFBJSVg0X0lTQV9JTlQyX09DVzEKLSNkZWZpbmUgSUNXMV8xCUNGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDFfSUNXMQotI2RlZmluZSBJQ1cxXzIJQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBQSUlYNF9JU0FfSU5UMl9JQ1cxCi0jZGVmaW5lIElDVzJfMQlDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIFBJSVg0X0lTQV9JTlQxX0lDVzIKLSNkZWZpbmUgSUNXMl8yCUNGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDJfSUNXMgorI2RlZmluZSBJTVJfMQkJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDFfT0NXMQorI2RlZmluZSBJTVJfMgkJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDJfT0NXMQorI2RlZmluZSBJQ1cxXzEJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDFfSUNXMQorI2RlZmluZSBJQ1cxXzIJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDJfSUNXMQorI2RlZmluZSBJQ1cyXzEJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDFfSUNXMgorI2RlZmluZSBJQ1cyXzIJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgUElJWDRfSVNBX0lOVDJfSUNXMgogI2RlZmluZSBJQ1czXzEJSUNXMl8xCiAjZGVmaW5lIElDVzNfMglJQ1cyXzIKICNkZWZpbmUgSUNXNF8xCUlDVzJfMQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL2NvbW1vbi9rYmQuYyBiL2JvYXJkL21wbC9jb21tb24va2JkLmMKaW5kZXggYjIwYjk1My4uYTQ1NzYzNSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL2NvbW1vbi9rYmQuYworKysgYi9ib2FyZC9tcGwvY29tbW9uL2tiZC5jCkBAIC0yMDMsNyArMjAzLDcgQEAKIAl9CiB9CiAKLSNpZmRlZiBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI2lmZGVmIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQogZXh0ZXJuIGludCBvdmVyd3JpdGVfY29uc29sZSAodm9pZCk7CiAjZWxzZQogaW50IG92ZXJ3cml0ZV9jb25zb2xlICh2b2lkKQpAQCAtNDUyLDIyICs0NTIsMjIgQEAKICAqLwogdW5zaWduZWQgY2hhciBrYmRfcmVhZF9zdGF0dXModm9pZCkKIHsKLQlyZXR1cm4oaW44KENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCkpOworCXJldHVybihpbjgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCkpOwogfQogCiB1bnNpZ25lZCBjaGFyIGtiZF9yZWFkX2lucHV0KHZvaWQpCiB7Ci0JcmV0dXJuKGluOChDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQpKTsKKwlyZXR1cm4oaW44KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQpKTsKIH0KIAogdm9pZCBrYmRfd3JpdGVfY29tbWFuZCh1bnNpZ25lZCBjaGFyIGNtZCkKIHsKLQlvdXQ4KENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCxjbWQpOworCW91dDgoQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgS0RCX0NPTU1BTkRfUE9SVCxjbWQpOwogfQogCiB2b2lkIGtiZF93cml0ZV9vdXRwdXQodW5zaWduZWQgY2hhciBkYXRhKQogewotCW91dDgoQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKyBLREJfREFUQV9QT1JULCBkYXRhKTsKKwlvdXQ4KENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArIEtEQl9EQVRBX1BPUlQsIGRhdGEpOwogfQogCiBpbnQga2JkX3JlYWRfZGF0YSh2b2lkKQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL2NvbW1vbi91c2JfdWhjaS5jIGIvYm9hcmQvbXBsL2NvbW1vbi91c2JfdWhjaS5jCmluZGV4IDY2NmI5OTkuLmFkMzA0NDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wbC9jb21tb24vdXNiX3VoY2kuYworKysgYi9ib2FyZC9tcGwvY29tbW9uL3VzYl91aGNpLmMKQEAgLTYyMSw3ICs2MjEsNyBAQAogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChidXNkZXZmdW5jLFBDSV9CQVNFX0FERFJFU1NfNCwmdXNiX2Jhc2VfYWRkcik7CiAJVVNCX1VIQ0lfUFJJTlRGKCJJTyBCYXNlIEFkZHJlc3MgPSAweCVseFxuIix1c2JfYmFzZV9hZGRyKTsKIAl1c2JfYmFzZV9hZGRyJj0weEZGRkZGRkYwOwotCXVzYl9iYXNlX2FkZHIrPUNGR19JU0FfSU9fQkFTRV9BRERSRVNTOworCXVzYl9iYXNlX2FkZHIrPUNPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUzsKIAlyaC5kZXZudW0gPSAwOwogCXVzYl9pbml0X3NrZWwoKTsKIAlyZXNldF9oYygpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL21pcDQwNS9taXA0MDUuYyBiL2JvYXJkL21wbC9taXA0MDUvbWlwNDA1LmMKaW5kZXggY2YwYWZkMS4uNWViOTBlNSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL21pcDQwNS9taXA0MDUuYworKysgYi9ib2FyZC9tcGwvbWlwNDA1L21pcDQwNS5jCkBAIC0yNTAsNyArMjUwLDcgQEAKIAl1bnNpZ25lZCBjaGFyCWJjOwogCXVuc2lnbmVkIGxvbmcJc2RyYW1fdGltLCBzZHJhbV9iYW5rOwogCi0JLyppMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7Ki8KKwkvKmkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOyovCiAJKHZvaWQpIGdldF9jbG9ja3MgKCk7CiAJZ2QtPmJhdWRyYXRlID0gOTYwMDsKIAlzZXJpYWxfaW5pdCAoKTsKQEAgLTMyMCw3ICszMjAsNyBAQAogCXNlcmlhbF9wdXRzICgiXG4iKTsKICNlbmRpZgogCWkgPSAwOwotCWJhc2VhZGRyID0gQ0ZHX1NEUkFNX0JBU0U7CisJYmFzZWFkZHIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJd2hpbGUgKHNkcmFtX3RhYmxlW2ldLnN6ICE9IDB4ZmYpIHsKIAkJaWYgKHNkcmFtX3RhYmxlW2ldLmJvYXJkdHlwZSA9PSBiYykKIAkJCWJyZWFrOwpAQCAtNjc5LDcgKzY3OSw3IEBACiB7CiAJLyogYWRqdXN0IGZsYXNoIHN0YXJ0IGFuZCBzaXplIGFzIHdlbGwgYXMgdGhlIG9mZnNldCAqLwogCWdkLT5iZC0+YmlfZmxhc2hzdGFydD0wLWZsYXNoX2luZm9bMF0uc2l6ZTsKLQlnZC0+YmQtPmJpX2ZsYXNoc2l6ZT1mbGFzaF9pbmZvWzBdLnNpemUtQ0ZHX01PTklUT1JfTEVOOworCWdkLT5iZC0+YmlfZmxhc2hzaXplPWZsYXNoX2luZm9bMF0uc2l6ZS1DT05GSUdfU1lTX01PTklUT1JfTEVOOwogCWdkLT5iZC0+YmlfZmxhc2hvZmZzZXQ9MDsKIAogCS8qIGNoZWNrLCBpZiBSVEMgaXMgcnVubmluZyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL3BhdGkvY21kX3BhdGkuYyBiL2JvYXJkL21wbC9wYXRpL2NtZF9wYXRpLmMKaW5kZXggOTE2ODNhMy4uOWQ5NTMxYiAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL3BhdGkvY21kX3BhdGkuYworKysgYi9ib2FyZC9tcGwvcGF0aS9jbWRfcGF0aS5jCkBAIC0zNyw3ICszNyw3IEBACiBleHRlcm4gdm9pZCB1c2VyX2xlZDEoaW50IGxlZF9vbik7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSNpZiBkZWZpbmVkKENGR19QQ0lfQ09OX0RFVklDRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX0NPTl9ERVZJQ0UpCiBleHRlcm4gdm9pZCBwY2lfY29uX2Rpc2Modm9pZCk7CiBleHRlcm4gdm9pZCBwY2lfY29uX2Nvbm5lY3Qodm9pZCk7CiAjZW5kaWYKQEAgLTM3OCw3ICszNzgsNyBAQAogCQkJdXNlcl9sZWQxKGxlZF9vbik7CiAJCXJldHVybiAwOwogCX0KLSNpZiBkZWZpbmVkKENGR19QQ0lfQ09OX0RFVklDRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX0NPTl9ERVZJQ0UpCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiY29uIikgPT0gMCkgewogCQlwY2lfY29uX2Nvbm5lY3QoKTsKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9ib2FyZC9tcGwvcGF0aS9wYXRpLmMgYi9ib2FyZC9tcGwvcGF0aS9wYXRpLmMKaW5kZXggMDg4M2M0Mi4uODVjNWFmOSAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL3BhdGkvcGF0aS5jCisrKyBiL2JvYXJkL21wbC9wYXRpL3BhdGkuYwpAQCAtMjI0LDcgKzIyNCw3IEBACiAJLyogcmVzdCBzdGFuZGFyZCBvcGVyYXRpb24gcHJvZ3JhbW1lZCB3cml0ZSBidXJzdCBsZW5ndGggKi8KIAkvKiB3ZSBoYXZlIGEgeDMyIGJpdCBidXMgdG8gdGhlIFNEUkFNLCBzbyBzaGlmdCB0aGUgYWRkciB3aXRoIDIgKi8KIAlsbXI8PD0yOwotCWluMzIoQ0ZHX1NEUkFNX0JBU0UgKyBsbXIpOworCWluMzIoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgbG1yKTsKIAkvKiBvaywgd2UncmUgZG9uZSwgcmV0dXJuIFNEUkFNIHNpemUgKi8KIAlyZXR1cm4gKCgweDQwMDAwMCA8PCBzZHJhbV90YWJsZVtpXS5zeikpOwkJLyogbG9nMiB2YWx1ZSBvZiA0TUJ5dGUgICovCiB9CkBAIC0yODcsNyArMjg3LDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogIHZvaWQgaW5pdF9pb3Modm9pZCkKICB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqIGltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBzeXNjb25mNXh4X3QgKnN5c2NvbmYgPSAmaW1tci0+aW1fc2l1X2NvbmY7CiAJdW5zaWduZWQgbG9uZyByZWc7CiAJcmVnPXN5c2NvbmYtPnNjX3NncGlvY3I7IC8qIERhdGEgZGlyZWN0aW9uIHJlZ2lzdGVyICovCkBAIC0zMDQsNyArMzA0LDcgQEAKIAogdm9pZCB1c2VyX2xlZDAoaW50IGxlZF9vbikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHN5c2NvbmY1eHhfdCAqc3lzY29uZiA9ICZpbW1yLT5pbV9zaXVfY29uZjsKIAl1bnNpZ25lZCBsb25nIHJlZzsKIAlyZWc9c3lzY29uZi0+c2Nfc2dwaW9kdDI7IC8qIERhdGEgcmVnaXN0ZXIgKi8KQEAgLTMxNyw3ICszMTcsNyBAQAogCiB2b2lkIHVzZXJfbGVkMShpbnQgbGVkX29uKQogewotCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqIGltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc3lzY29uZjV4eF90ICpzeXNjb25mID0gJmltbXItPmltX3NpdV9jb25mOwogCXVuc2lnbmVkIGxvbmcgcmVnOwogCXJlZz1zeXNjb25mLT5zY19zZ3Bpb2R0MjsgLyogRGF0YSByZWdpc3RlciAqLwpAQCAtMzcwLDcgKzM3MCw3IEBACiB9CiAKIAotI2lmZGVmIENGR19QQ0lfQ09OX0RFVklDRQorI2lmZGVmIENPTkZJR19TWVNfUENJX0NPTl9ERVZJQ0UKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFBDSSBDb21tdW5pY2F0aW9uCiAgKgpAQCAtNjEwLDkgKzYxMCw5IEBACiAJaXJxX2ZyZWVfaGFuZGxlcigweDAyKTsKIAlwY2lfY29uX2Nvbm5lY3QoKTsKIH0KLSNlbmRpZiAvKiAjaWZkZWYgQ0ZHX1BDSV9DT05fREVWSUNFICovCisjZW5kaWYgLyogI2lmZGVmIENPTkZJR19TWVNfUENJX0NPTl9ERVZJQ0UgKi8KIAogLyoKICAqIEFic29sdXRlIGVudmlyb25tZW50IGFkZHJlc3MgZm9yIGxpbmtlciBmaWxlLgogICovCi1HRU5fQUJTKGVudl9zdGFydCwgQ09ORklHX0VOVl9PRkZTRVQgKyBDRkdfRkxBU0hfQkFTRSk7CitHRU5fQUJTKGVudl9zdGFydCwgQ09ORklHX0VOVl9PRkZTRVQgKyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL3BpcDQwNS9waXA0MDUuYyBiL2JvYXJkL21wbC9waXA0MDUvcGlwNDA1LmMKaW5kZXggNmNiYTg5Mi4uM2JlMDEwNCAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL3BpcDQwNS9waXA0MDUuYworKysgYi9ib2FyZC9tcGwvcGlwNDA1L3BpcDQwNS5jCkBAIC0yMDgsNyArMjA4LDcgQEAKICNlbmRpZgogCiAJLyogUmVhZCBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEluZm9ybWF0aW9uICovCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCWRhdGFvdXRbMF0gPSAwOwogCWZvciAoaSA9IDA7IGkgPCAxMjg7IGkrKykKIAkJZGF0YWluW2ldID0gMTI3OwpAQCAtMzg2LDcgKzM4Niw3IEBACiAJLyogd3JpdGUgU0RSQU0gdGltaW5nIHJlZ2lzdGVyICovCiAJbXRkY3IgKG1lbWNmZ2EsIG1lbV9zZHRyMSk7CiAJbXRkY3IgKG1lbWNmZ2QsIHRtcCk7Ci0JYmFzZWFkZHIgPSBDRkdfU0RSQU1fQkFTRTsKKwliYXNlYWRkciA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAliYW5rX3NpemUgPSAoKCh1bnNpZ25lZCBsb25nKSBkZW5zaXR5KSA8PCAyMikgLyAyOwogCS8qIGluc2VydCBBTSB2YWx1ZSAqLwogCXRtcCA9ICgodW5zaWduZWQgbG9uZykgdC0+bW9kZSAtIDEpIDw8IDEzOwpAQCAtNjYzLDcgKzY2Myw3IEBACiB7CiAJLyogYWRqdXN0IGZsYXNoIHN0YXJ0IGFuZCBzaXplIGFzIHdlbGwgYXMgdGhlIG9mZnNldCAqLwogCWdkLT5iZC0+YmlfZmxhc2hzdGFydD0wLWZsYXNoX2luZm9bMF0uc2l6ZTsKLQlnZC0+YmQtPmJpX2ZsYXNoc2l6ZT1mbGFzaF9pbmZvWzBdLnNpemUtQ0ZHX01PTklUT1JfTEVOOworCWdkLT5iZC0+YmlfZmxhc2hzaXplPWZsYXNoX2luZm9bMF0uc2l6ZS1DT05GSUdfU1lTX01PTklUT1JfTEVOOwogCWdkLT5iZC0+YmlfZmxhc2hvZmZzZXQ9MDsKIAogCS8qIGlmIFBJUDQwNSBoYXMgYm9vdGVkIGZyb20gUENJLCByZXNldCBDQ1IwWzI0XSBhcyBkZXNjcmliZWQgaW4gZXJyYXRhIFBDSV8xOCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvbXBsL3BpcDQwNS9waXA0MDUuaCBiL2JvYXJkL21wbC9waXA0MDUvcGlwNDA1LmgKaW5kZXggNTgxNTc4Ni4uNzA0YWIyYyAxMDA2NDQKLS0tIGEvYm9hcmQvbXBsL3BpcDQwNS9waXA0MDUuaAorKysgYi9ib2FyZC9tcGwvcGlwNDA1L3BpcDQwNS5oCkBAIC0zNSw3ICszNSw3IEBACiB2b2lkIHVzZXJfbGVkMSh1bnNpZ25lZCBjaGFyIG9uKTsKIAogCi0jZGVmaW5lIFBMRF9CQVNFX0FERFJFU1MJCUNGR19JU0FfSU9fQkFTRV9BRERSRVNTICsgMHg4MDAKKyNkZWZpbmUgUExEX0JBU0VfQUREUkVTUwkJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTICsgMHg4MDAKICNkZWZpbmUgUExEX1BBUlRfUkVHCQkJUExEX0JBU0VfQUREUkVTUyArIDAKICNkZWZpbmUgUExEX1ZFUlNfUkVHCQkJUExEX0JBU0VfQUREUkVTUyArIDEKICNkZWZpbmUgUExEX0JPQVJEX0NGR19SRUcJCVBMRF9CQVNFX0FERFJFU1MgKyAyCmRpZmYgLS1naXQgYS9ib2FyZC9tcGwvdmNtYTkvZmxhc2guYyBiL2JvYXJkL21wbC92Y21hOS9mbGFzaC5jCmluZGV4IDM4OTUyNjMuLjdhYmY5Y2YgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wbC92Y21hOS9mbGFzaC5jCisrKyBiL2JvYXJkL21wbC92Y21hOS9mbGFzaC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRQlQSFlTX0ZMQVNIX1NJWkUKICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUgIDB4MTAwMDAJLyogNjQgS0IgKi8KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogI2RlZmluZSBDTURfUkVBRF9BUlJBWQkJMHgwMDAwMDBGMApAQCAtNDEsOCArNDEsOCBAQAogI2RlZmluZSBDTURfUFJPR1JBTQkJMHgwMDAwMDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMDAwMDIwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUEgPDwgMSkpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDAwMDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDAwMDAwODAKQEAgLTYxLDcgKzYxLDcgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQpAQCAtNzUsOCArNzUsOCBAQAogI2Vycm9yICJVbmtub3duIGZsYXNoIGNvbmZpZ3VyZWQiCiAjZW5kaWYKIAkJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKIAkJCWZsYXNoYmFzZSA9IFBIWVNfRkxBU0hfMTsKIAkJZWxzZQpAQCAtMTExLDggKzExMSw4IEBACiAJfQogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjM2LDcgKzIzNiw3IEBACiAKIAkJCQkvKiBjaGVjayB0aW1lb3V0ICovCiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAgPSBUTU87CiAJCQkJCWJyZWFrOwpAQCAtMzMxLDcgKzMzMSw3IEBACiAJCXJlc3VsdCA9ICphZGRyOwogCiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJY2hpcCA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9tcHIyL21wcjIuYyBiL2JvYXJkL21wcjIvbXByMi5jCmluZGV4IDk4NTU3YjQuLjBlYzBjMTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL21wcjIvbXByMi5jCisrKyBiL2JvYXJkL21wcjIvbXByMi5jCkBAIC0xNTQsOCArMTU0LDggQEAKIHsKIAlERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKLQlwcmludGYoIlNEUkFNOiAlZE1CXG4iLCBDRkdfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCXByaW50ZigiU0RSQU06ICVkTUJcbiIsIENPTkZJR19TWVNfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXM3NzIwc2UvbXM3NzIwc2UuYyBiL2JvYXJkL21zNzcyMHNlL21zNzcyMHNlLmMKaW5kZXggYWY2MmNkZi4uZjgzYzEyMCAxMDA2NDQKLS0tIGEvYm9hcmQvbXM3NzIwc2UvbXM3NzIwc2UuYworKysgYi9ib2FyZC9tczc3MjBzZS9tczc3MjBzZS5jCkBAIC00Nyw5ICs0Nyw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbXM3NzIyc2UvbXM3NzIyc2UuYyBiL2JvYXJkL21zNzcyMnNlL21zNzcyMnNlLmMKaW5kZXggY2YwMjI0Mi4uMzIyMzRkMyAxMDA2NDQKLS0tIGEvYm9hcmQvbXM3NzIyc2UvbXM3NzIyc2UuYworKysgYi9ib2FyZC9tczc3MjJzZS9tczc3MjJzZS5jCkBAIC00Nyw5ICs0Nyw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbXM3NzUwc2UvbXM3NzUwc2UuYyBiL2JvYXJkL21zNzc1MHNlL21zNzc1MHNlLmMKaW5kZXggZDJkODI0Yy4uMDJmZjBhMyAxMDA2NDQKLS0tIGEvYm9hcmQvbXM3NzUwc2UvbXM3NzUwc2UuYworKysgYi9ib2FyZC9tczc3NTBzZS9tczc3NTBzZS5jCkBAIC0zOSw5ICszOSw5IEBACiB7CiAJREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKLQlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JZ2QtPmJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ0ZHX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKKwlnZC0+YmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKKwlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLyAoMTAyNCAqIDEwMjQpKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbXVhczMwMDEvbXVhczMwMDEuYyBiL2JvYXJkL211YXMzMDAxL211YXMzMDAxLmMKaW5kZXggMTU3YzcyZC4uNmIxZTU5ZiAxMDA2NDQKLS0tIGEvYm9hcmQvbXVhczMwMDEvbXVhczMwMDEuYworKysgYi9ib2FyZC9tdWFzMzAwMS9tdWFzMzAwMS5jCkBAIC0yMzIsNyArMjMyLDcgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC0yNDMsNyArMjQzLDcgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CkBAIC0yNTYsMzAgKzI1NiwzMCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgcHNpemU7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCWxvbmcgc2l6ZWxpdHRsZSwgc2l6ZWJpZzsKICNlbmRpZgogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiA2MHggU0RSQU0gc2V0dXA6CiAJICovCi0Jc2l6ZWxpdHRsZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl9MSVRUTEUsIENGR19PUjFfTElUVExFLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotCXNpemViaWcgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfQklHLCBDRkdfT1IxX0JJRywKLQkJCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwlzaXplbGl0dGxlID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl9MSVRUTEUsIENPTkZJR19TWVNfT1IxX0xJVFRMRSwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJc2l6ZWJpZyA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfQklHLCBDT05GSUdfU1lTX09SMV9CSUcsCisJCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCWlmIChzaXplbGl0dGxlIDwgc2l6ZWJpZykgewogCQlwc2l6ZSA9IHNpemViaWc7CiAJfSBlbHNlIHsKLQkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfTElUVExFLCBDRkdfT1IxX0xJVFRMRSwKLQkJCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SX0xJVFRMRSwgQ09ORklHX1NZU19PUjFfTElUVExFLAorCQkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAl9Ci0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCWljYWNoZV9lbmFibGUgKCk7CiAKQEAgLTMyOSw4ICszMjksOCBAQAogCQkJImVycjolc1xuIiwgZmR0X3N0cmVycm9yKG5vZGVvZmZzZXQpKTsKIAl9CiAJLyogdXBkYXRlIEZsYXNoIGFkZHIsIHNpemUgKi8KLQlmbGFzaF9kYXRhWzJdID0gY3B1X3RvX2JlMzIgKENGR19GTEFTSF9CQVNFKTsKLQlmbGFzaF9kYXRhWzNdID0gY3B1X3RvX2JlMzIgKENGR19GTEFTSF9TSVpFKTsKKwlmbGFzaF9kYXRhWzJdID0gY3B1X3RvX2JlMzIgKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CisJZmxhc2hfZGF0YVszXSA9IGNwdV90b19iZTMyIChDT05GSUdfU1lTX0ZMQVNIX1NJWkUpOwogCW5vZGVvZmZzZXQgPSBmZHRfcGF0aF9vZmZzZXQgKGJsb2IsICIvbG9jYWxidXMiKTsKIAlpZiAobm9kZW9mZnNldCA+PSAwKSB7CiAJCXJldCA9IGZkdF9zZXRwcm9wIChibG9iLCBub2Rlb2Zmc2V0LCAicmFuZ2VzIiwgZmxhc2hfZGF0YSwKZGlmZiAtLWdpdCBhL2JvYXJkL211Y21jNTIvbXVjbWM1Mi5jIGIvYm9hcmQvbXVjbWM1Mi9tdWNtYzUyLmMKaW5kZXggNzQ0MTdjNC4uNzE4MWJkOCAxMDA2NDQKLS0tIGEvYm9hcmQvbXVjbWM1Mi9tdWNtYzUyLmMKKysrIGIvYm9hcmQvbXVjbWM1Mi9tdWNtYzUyLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiBzdGF0aWMgdm9pZCBzZHJhbV9zdGFydCAoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTg2LDcgKzg2LDcgQEAKIAogLyoKICAqIEFUVEVOVElPTjogQWx0aG91Z2ggcGFydGlhbGx5IHJlZmVyZW5jZWQgaW5pdGRyYW0gZG9lcyBOT1QgbWFrZSByZWFsIHVzZQotICoJICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKgkgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICoJICAgICAgaXMgc29tZXRoaW5nIGVsc2UgdGhhbiAweDAwMDAwMDAwLgogICovCiAKQEAgLTk2LDcgKzk2LDcgQEAKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwogCXVpbnQgc3ZyLCBwdnI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgU0RSQU0gY2hpcCBzZWxlY3RzICovCkBAIC0xMTcsOSArMTE3LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCAoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUgKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplICgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUgKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplICgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQgKDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTQ2LDEwICsxNDYsMTAgQEAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJaWYgKCFkcmFtc2l6ZSkKIAkJc2RyYW1fc3RhcnQgKDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUgKChsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDIwMDAwMDAwKTsKKwl0ZXN0MiA9IHRlc3QxID0gZ2V0X3JhbV9zaXplICgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOwogCWlmICghZHJhbXNpemUpIHsKIAkJc2RyYW1fc3RhcnQgKDEpOwotCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSAoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOworCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSAoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDIwMDAwMDAwKTsKIAl9CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQgKDApOwpAQCAtMTcxLDcgKzE3MSw3IEBACiAJCW91dF9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHLCBkcmFtc2l6ZSk7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSBpbl9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHKSAmIDB4RkY7CkBAIC0xODksNyArMTg5LDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJIC8qCiAJICogT24gTVBDNTIwMEIgd2UgbmVlZCB0byBzZXQgdGhlIHNwZWNpYWwgY29uZmlndXJhdGlvbiBkZWxheSBpbiB0aGUKQEAgLTIzOSw4ICsyMzksOCBAQAogCiBzdHJ1Y3Qga2JkX2RhdGFfdCogZ2V0X2tleXMgKHN0cnVjdCBrYmRfZGF0YV90ICprYmRfZGF0YSkKIHsKLQlrYmRfZGF0YS0+czEgPSBpbl84ICgodm9sYXRpbGUgdWNoYXIqKUNGR19TVEFUVVMxX0JBU0UpOwotCWtiZF9kYXRhLT5zMiA9IGluXzggKCh2b2xhdGlsZSB1Y2hhciopQ0ZHX1NUQVRVUzJfQkFTRSk7CisJa2JkX2RhdGEtPnMxID0gaW5fOCAoKHZvbGF0aWxlIHVjaGFyKilDT05GSUdfU1lTX1NUQVRVUzFfQkFTRSk7CisJa2JkX2RhdGEtPnMyID0gaW5fOCAoKHZvbGF0aWxlIHVjaGFyKilDT05GSUdfU1lTX1NUQVRVUzJfQkFTRSk7CiAKIAlyZXR1cm4ga2JkX2RhdGE7CiB9CkBAIC0zMzksMTQgKzMzOSwxNCBAQAogCWZyZWUgKHN0cik7CiAjZW5kaWYgLyogQ09ORklHX1BSRUJPT1QgKi8KIAotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4MzgpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4MzkpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0EpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0IpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0MpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0QpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0UpLCAnICcpOwotCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ0ZHX0RJU1BMQVlfQkFTRSArIDB4M0YpLCAnICcpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDM4KSwgJyAnKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzOSksICcgJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4M0EpLCAnICcpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDNCKSwgJyAnKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzQyksICcgJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4M0QpLCAnICcpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDNFKSwgJyAnKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzRiksICcgJyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM1NCwyNSArMzU0LDI1IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yICh2b2lkKQogewogCW91dF9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfQk9PVENTX0NGRywgaW5fYmUzMiAoKHVuc2lnbmVkIF9faW9tZW0gKilNUEM1WFhYX0JPT1RDU19DRkcpICYgfjB4MSk7Ci0Jb3V0X2JlMzIgKCh1bnNpZ25lZCBfX2lvbWVtICopTVBDNVhYWF9CT09UQ1NfU1RBUlQsIFNUQVJUX1JFRyhDRkdfRkxBU0hfQkFTRSkpOwotCW91dF9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfQ1MwX1NUQVJULCBTVEFSVF9SRUcoQ0ZHX0ZMQVNIX0JBU0UpKTsKKwlvdXRfYmUzMiAoKHVuc2lnbmVkIF9faW9tZW0gKilNUEM1WFhYX0JPT1RDU19TVEFSVCwgU1RBUlRfUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSkpOworCW91dF9iZTMyICgodW5zaWduZWQgX19pb21lbSAqKU1QQzVYWFhfQ1MwX1NUQVJULCBTVEFSVF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFKSk7CiAJb3V0X2JlMzIgKCh1bnNpZ25lZCBfX2lvbWVtICopTVBDNVhYWF9CT09UQ1NfU1RPUCwKLQkJU1RPUF9SRUcoQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9TSVpFKSk7CisJCVNUT1BfUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9TSVpFKSk7CiAJb3V0X2JlMzIgKCh1bnNpZ25lZCBfX2lvbWVtICopTVBDNVhYWF9DUzBfU1RPUCwKLQkJU1RPUF9SRUcoQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9TSVpFKSk7CisJCVNUT1BfUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9TSVpFKSk7CiAJcmV0dXJuIDA7CiB9CiAKIGludCBsYXN0X3N0YWdlX2luaXQgKHZvaWQpCiB7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzOCksICdNJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzOSksICdVJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzQSksICdDJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzQiksICcuJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzQyksICdNJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzRCksICdDJyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzRSksICc1Jyk7Ci0Jb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDRkdfRElTUExBWV9CQVNFICsgMHgzRiksICcyJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4MzgpLCAnTScpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDM5KSwgJ1UnKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzQSksICdDJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4M0IpLCAnLicpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDNDKSwgJ00nKTsKKwlvdXRfOCAoKHZvbGF0aWxlIHVjaGFyICopKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzRCksICdDJyk7CisJb3V0XzggKCh2b2xhdGlsZSB1Y2hhciAqKShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4M0UpLCAnNScpOworCW91dF84ICgodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDNGKSwgJzInKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXVuaWNlcy9tdW5pY2VzLmMgYi9ib2FyZC9tdW5pY2VzL211bmljZXMuYwppbmRleCAxNjJmODljLi5jMTIwN2YxIDEwMDY0NAotLS0gYS9ib2FyZC9tdW5pY2VzL211bmljZXMuYworKysgYi9ib2FyZC9tdW5pY2VzL211bmljZXMuYwpAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVkZSAibXQ0OGxjMTZtMTZhMi03NS5oIgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC03MCw3ICs3MCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC03OCw3ICs3OCw3IEBACiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwogCXVsb25nIGRyYW1zaXplMiA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtOTksOSArOTksOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gKHVsb25nIClnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHgxMDAwMDAwMCk7CisJdGVzdDEgPSAodWxvbmcgKWdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgxMDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSAodWxvbmcgKWdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDEwMDAwMDAwKTsKKwl0ZXN0MiA9ICh1bG9uZyApZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDEwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTEyMSw3ICsxMjEsNyBAQAogCQkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyA9IDA7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xMzksNyArMTM5LDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplICsgZHJhbXNpemUyOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXVzZW5raS9mbGFzaC5jIGIvYm9hcmQvbXVzZW5raS9mbGFzaC5jCmluZGV4IDQ2MDM1ZDcuLjQwOTY1YmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL211c2Vua2kvZmxhc2guYworKysgYi9ib2FyZC9tdXNlbmtpL2ZsYXNoLmMKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTQ2LDcgKzQ2LDcgQEAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0xMTgsMTUgKzExOCwxNSBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIC0gRklYTUUgWFhYICovCiAKLQlERUJVR0YoIlxuIyMgR2V0IGZsYXNoIGJhbmsgMSBzaXplIEAgMHglMDh4XG4iLENGR19GTEFTSF9CQVNFMF9QUkVMSU0pOworCURFQlVHRigiXG4jIyBHZXQgZmxhc2ggYmFuayAxIHNpemUgQCAweCUwOHhcbiIsQ09ORklHX1NZU19GTEFTSF9CQVNFMF9QUkVMSU0pOwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9jaGFyICopQ0ZHX0ZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfY2hhciAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwOiAiCkBAIC0xMzUsMjEgKzEzNSwyMSBAQAogCQkJc2l6ZV9iMCwgc2l6ZV9iMDw8MjApOwogCX0KIAotCURFQlVHRigiIyMgR2V0IGZsYXNoIGJhbmsgMiBzaXplIEAgMHglMDh4XG4iLENGR19GTEFTSF9CQVNFMV9QUkVMSU0pOwotCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfY2hhciAqKUNGR19GTEFTSF9CQVNFMV9QUkVMSU0sICZmbGFzaF9pbmZvWzFdKTsKKwlERUJVR0YoIiMjIEdldCBmbGFzaCBiYW5rIDIgc2l6ZSBAIDB4JTA4eFxuIixDT05GSUdfU1lTX0ZMQVNIX0JBU0UxX1BSRUxJTSk7CisJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9jaGFyICopQ09ORklHX1NZU19GTEFTSF9CQVNFMV9QUkVMSU0sICZmbGFzaF9pbmZvWzFdKTsKIAogCURFQlVHRigiIyMgUHJlbGltLiBGbGFzaCBiYW5rIHNpemVzOiAlMDhseCArIDB4JTA4bHhcbiIsc2l6ZV9iMCxzaXplX2IxKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0JREVCVUdGKCJwcm90ZWN0IG1vbml0b3IgJXggQCAleFxuIiwgQ0ZHX01PTklUT1JfQkFTRSwgbW9uaXRvcl9mbGFzaF9sZW4pOworI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorCURFQlVHRigicHJvdGVjdCBtb25pdG9yICV4IEAgJXhcbiIsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBtb25pdG9yX2ZsYXNoX2xlbik7CiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0xNjQsMTMgKzE2NCwxMyBAQAogCiAJaWYgKHNpemVfYjEpIHsKIAkJZmxhc2hfaW5mb1sxXS5zaXplID0gc2l6ZV9iMTsKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkJICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAKQEAgLTM0MywxMCArMzQzLDEwIEBACiAKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSBCUygweEZGKTsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC00MTQsNyArNDE0LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9IEJTKCphZGRyKSkgJiBCWVRFTUUoMHgwMDgwMDA4MCkpICE9IEJZVEVNRSgweDAwODAwMDgwKSkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSBCUygweEIwKTsgLyogc3VzcGVuZCBlcmFzZQkgICovCiAJCQkJCSphZGRyID0gQlMoMHhGRik7IC8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDk3LDcgKzQ5Nyw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAJd2hpbGUgKCgoc3RhdHVzID0gQlMoKmFkZHIpKSAmIEJZVEVNRSgweDAwODAwMDgwKSkgIT0gQllURU1FKDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gQlMoMHhGRik7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gMTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbXVzZW5raS9tdXNlbmtpLmMgYi9ib2FyZC9tdXNlbmtpL211c2Vua2kuYwppbmRleCA2ZjllZWIyLi4zMGI5NWNlIDEwMDY0NAotLS0gYS9ib2FyZC9tdXNlbmtpL211c2Vua2kuYworKysgYi9ib2FyZC9tdXNlbmtpL211c2Vua2kuYwpAQCAtNTMsNyArNTMsNyBAQAogCWxvbmcgbWVhcjE7CiAJbG9uZyBlbWVhcjE7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpOwogCiAJbmV3X2JhbmswX2VuZCA9IHNpemUgLSAxOwogCW1lYXIxID0gbXBjODI0eF9tcGMxMDdfZ2V0cmVnKE1FQVIxKTsKZGlmZiAtLWdpdCBhL2JvYXJkL212Ymx1ZS9mbGFzaC5jIGIvYm9hcmQvbXZibHVlL2ZsYXNoLmMKaW5kZXggMGMwNzM4Yy4uMmQ2YWNmNSAxMDA2NDQKLS0tIGEvYm9hcmQvbXZibHVlL2ZsYXNoLmMKKysrIGIvYm9hcmQvbXZibHVlL2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAkjZGVmaW5lIG12ZGVidWcocCkKICNlbmRpZgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI2RlZmluZSBGTEFTSF9CVVNfV0lEVEgJCTgKIApAQCAtNjUsNyArNjUsNyBAQAogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKIAotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC00MTYsNyArNDE2LDcgQEAKIAlhZGRyID0gKEZEVCAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAogCXdoaWxlICgoYWRkclswXSAmIEVSQVNFX0NPTkZJUk1fREFUQSkgIT0gRVJBU0VfQ09ORklSTV9EQVRBKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01NTQsNyArNTU0LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJYWRkciA9ICh2dV9jaGFyICopZGVzdDsKIAl3aGlsZSAoKCAoKmFkZHIpICYgV1JJVEVfQ09ORklSTV9EQVRBKSAhPSAoZGF0YSAmIFdSSVRFX0NPTkZJUk1fREFUQSkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcHJpbnRmKCIgKioqIEVSUk9SOiBGbGFzaCB3cml0ZSB0aW1lb3V0ICEiKTsKIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL212Ymx1ZS9tdmJsdWUuYyBiL2JvYXJkL212Ymx1ZS9tdmJsdWUuYwppbmRleCAwNTZmZWU3Li42OWFiYjA2IDEwMDY0NAotLS0gYS9ib2FyZC9tdmJsdWUvbXZibHVlLmMKKysrIGIvYm9hcmQvbXZibHVlL212Ymx1ZS5jCkBAIC0zOCw4ICszOCw4IEBACiAKIHZvaWQgaW5pdF8ybmRfRFVBUlQgKHZvaWQpCiB7Ci0JTlMxNjU1MF90IGNvbnNvbGUgPSAoTlMxNjU1MF90KSBDRkdfTlMxNjU1MF9DT00yOwotCWludCBjbG9ja19kaXZpc29yID0gQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBDT05GSUdfQkFVRFJBVEU7CisJTlMxNjU1MF90IGNvbnNvbGUgPSAoTlMxNjU1MF90KSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMjsKKwlpbnQgY2xvY2tfZGl2aXNvciA9IENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIENPTkZJR19CQVVEUkFURTsKIAogCSoodTggKikgKDB4ZmMwMDQ1MTEpID0gMHgxOwogCU5TMTY1NTBfaW5pdCAoY29uc29sZSwgY2xvY2tfZGl2aXNvcik7CkBAIC04NCw3ICs4NCw3IEBACiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcoTUVBUjEpOwpAQCAtMTQ3LDEyICsxNDcsMTIgQEAKIHZvaWQgZHVhcnRfc2V0dXAgKHUzMiBiYXNlLCB1MTYgZGl2aXNvcikKIHsKIAlwcmludGYgKCJkdWFydCBzZXR1cCAuLi4iKTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDMpLCAweDgwKTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDApLCBkaXZpc29yICYgMHhmZik7Ci0Jb3V0XzggKCh1OCAqKSAoQ0ZHX0lTQV9JTyArIGJhc2UgKyAxKSwgZGl2aXNvciA+PiA4KTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDMpLCAweDAzKTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDQpLCAweDAzKTsKLQlvdXRfOCAoKHU4ICopIChDRkdfSVNBX0lPICsgYmFzZSArIDIpLCAweDA3KTsKKwlvdXRfOCAoKHU4ICopIChDT05GSUdfU1lTX0lTQV9JTyArIGJhc2UgKyAzKSwgMHg4MCk7CisJb3V0XzggKCh1OCAqKSAoQ09ORklHX1NZU19JU0FfSU8gKyBiYXNlICsgMCksIGRpdmlzb3IgJiAweGZmKTsKKwlvdXRfOCAoKHU4ICopIChDT05GSUdfU1lTX0lTQV9JTyArIGJhc2UgKyAxKSwgZGl2aXNvciA+PiA4KTsKKwlvdXRfOCAoKHU4ICopIChDT05GSUdfU1lTX0lTQV9JTyArIGJhc2UgKyAzKSwgMHgwMyk7CisJb3V0XzggKCh1OCAqKSAoQ09ORklHX1NZU19JU0FfSU8gKyBiYXNlICsgNCksIDB4MDMpOworCW91dF84ICgodTggKikgKENPTkZJR19TWVNfSVNBX0lPICsgYmFzZSArIDIpLCAweDA3KTsKIAlwcmludGYgKCJkb25lXG4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvbXgxYWRzL3N5bmNmbGFzaC5jIGIvYm9hcmQvbXgxYWRzL3N5bmNmbGFzaC5jCmluZGV4IDBmZmMzNzguLjQ3ZjYxM2MgMTAwNjQ0Ci0tLSBhL2JvYXJkL214MWFkcy9zeW5jZmxhc2guYworKysgYi9ib2FyZC9teDFhZHMvc3luY2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogLyogNE14MTZ4MiBJQU09MCBDU0QxICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiAgRm9sbG93aW5nIFNldHRpbmcgaXMgZm9yIENTRDEJKi8KICNkZWZpbmUgU0ZDVEwJCQkweDAwMjIxMDA0CkBAIC00Niw3ICs0Niw3IEBACiAjZGVmaW5lIENNRF9MQ1IJCQkoQ01EX05PUk1BTCArIDB4NjAwMDAwMDApCS8qIExDUiBDb21tYW5kCQkJKi8KICNkZWZpbmUgQ01EX1BST0dSQU0JCShDTURfTk9STUFMICsgMHg3MDAwMDAwMCkKIAotI2RlZmluZSBNT0RFX1JFR19WQUwJCShDRkdfRkxBU0hfQkFTRSsweDAwMDhDQzAwKQkvKiBDYXMgTGF0ZW5jeSAzCQkqLworI2RlZmluZSBNT0RFX1JFR19WQUwJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrMHgwMDA4Q0MwMCkJLyogQ2FzIExhdGVuY3kgMwkJKi8KIAogLyogTENSIENvbW1hbmQgKi8KICNkZWZpbmUgTENSX1JFQURTVEFUVVMJCSgweDAwMDFDMDAwKQkJCS8qIDB4NzAJCQkJKi8KQEAgLTYwLDEyICs2MCwxMiBAQAogCXUzMiB0bXAsdG1wMTsKIAogCXJlZ19TRkNUTAk9IENNRF9QUk9HUkFNOwotCXRtcAkJPSBfX1JFRyhDRkdfRkxBU0hfQkFTRSk7CisJdG1wCQk9IF9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKIAlyZWdfU0ZDVEwJPSBDTURfTk9STUFMOwogCiAJcmVnX1NGQ1RMCT0gQ01EX0xDUjsJCQkvKiBBY3RpdmF0ZSBMQ1IgTW9kZQkJKi8KLQl0bXAxCQk9IF9fUkVHKENGR19GTEFTSF9CQVNFICsgTENSX1NSX0NMRUFSKTsKKwl0bXAxCQk9IF9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIExDUl9TUl9DTEVBUik7CiAKIAlyZXR1cm4gdG1wOwogfQpAQCAtOTYsNyArOTYsNyBAQAogCXUzMiB0bXA7CiAKIAlyZWdfU0ZDVEwJPSBDTURfUFJFQzsJCQkvKiBTZXQgUHJlY2hhcmdlIENvbW1hbmQJKi8KLQl0bXAJCT0gX19SRUcoQ0ZHX0ZMQVNIX0JBU0UgKyBTWU5DRkxBU0hfQTEwKTsgLyogSXNzdWUgUHJlY2hhcmdlIEFsbCBDb21tYW5kICovCisJdG1wCQk9IF9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFNZTkNGTEFTSF9BMTApOyAvKiBJc3N1ZSBQcmVjaGFyZ2UgQWxsIENvbW1hbmQgKi8KIH0KIAogLyogc2V0IFN5bmNGbGFzaCB0byBub3JtYWwgbW9kZQkJCSovCkBAIC0xMzAsMTAgKzEzMCwxMCBAQAogCVNGX1ByZWNoYXJnZUFsbCgpOwogCiAJcmVnX1NGQ1RMCT0gQ01EX0xDUjsJCQkvKiBTZXQgdG8gTENSIG1vZGUJCSovCi0JX19SRUcoQ0ZHX0ZMQVNIX0JBU0UgKyBMQ1JfRVJBU0VfTlZNT0RFKSAgPSAwOwkvKiBJc3N1ZSBFcmFzZSBOdm1vZGUgUmVnIENvbW1hbmQgKi8KKwlfX1JFRyhDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBMQ1JfRVJBU0VfTlZNT0RFKSAgPSAwOwkvKiBJc3N1ZSBFcmFzZSBOdm1vZGUgUmVnIENvbW1hbmQgKi8KIAogCXJlZ19TRkNUTAk9IENNRF9OT1JNQUw7CQkJLyogUmV0dXJuIHRvIE5vcm1hbCBtb2RlCSovCi0JX19SRUcoQ0ZHX0ZMQVNIX0JBU0UgKyBMQ1JfRVJBU0VfTlZNT0RFKSA9IDB4QzBDMEMwQzA7CS8qIENvbmZpcm0JCSovCisJX19SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgTENSX0VSQVNFX05WTU9ERSkgPSAweEMwQzBDMEMwOwkvKiBDb25maXJtCQkqLwogCiAJd2hpbGUoIVNGX1JlYWR5KCkpOwogfQpAQCAtMTQyLDEwICsxNDIsMTAgQEAKIAlTRl9QcmVjaGFyZ2VBbGwoKTsKIAogCXJlZ19TRkNUTAk9IENNRF9MQ1I7CQkJLyogU2V0IHRvIExDUiBtb2RlCQkqLwotCV9fUkVHKENGR19GTEFTSF9CQVNFK0xDUl9QUk9HX05WTU9ERSkgPSAwOwkvKiBJc3N1ZSBQcm9ncmFtIE52bW9kZSByZWcgY29tbWFuZCAqLworCV9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRStMQ1JfUFJPR19OVk1PREUpID0gMDsJLyogSXNzdWUgUHJvZ3JhbSBOdm1vZGUgcmVnIGNvbW1hbmQgKi8KIAogCXJlZ19TRkNUTAk9IENNRF9OT1JNQUw7CQkJLyogUmV0dXJuIHRvIE5vcm1hbCBtb2RlCSovCi0JX19SRUcoQ0ZHX0ZMQVNIX0JBU0UrTENSX1BST0dfTlZNT0RFKSA9IDB4QzBDMEMwQzA7CS8qIENvbmZpcm0gbm90IG5lZWRlZAkqLworCV9fUkVHKENPTkZJR19TWVNfRkxBU0hfQkFTRStMQ1JfUFJPR19OVk1PREUpID0gMHhDMEMwQzBDMDsJLyogQ29uZmlybSBub3QgbmVlZGVkCSovCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtMTY5LDE3ICsxNjksMTcgQEAKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkCT0gIEZMQVNIX01BTl9NVCB8IEZMQVNIX01UMjhTNE0xNkxDOwogCiAJZmxhc2hfaW5mb1tpXS5zaXplCT0gRkxBU0hfQkFOS19TSVpFOwotCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAotCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAKIAlmb3IgKGogPSAwOyBqIDwgZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQ7IGorKykgewotCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0gQ0ZHX0ZMQVNIX0JBU0UgKyBqICogMHgwMDEwMDAwMDsKKwkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIGogKiAweDAwMTAwMDAwOwogCX0KIAogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjgxLDcgKzI4MSw3IEBACiAJCVNGX052bW9kZUVyYXNlKCk7CiAJCVNGX052bW9kZVdyaXRlKCk7CiAKLQkJU0ZfRXJhc2UoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMTAwMDAwICogc2VjdCkpOworCQlTRl9FcmFzZShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMTAwMDAwICogc2VjdCkpOwogCQlTRl9Ob3JtYWwoKTsKIAogCQlwcmludGYoIm9rLlxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9teDFmczIvZmxhc2guYyBiL2JvYXJkL214MWZzMi9mbGFzaC5jCmluZGV4IDhiZTBmNDkuLmRhNGViZTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL214MWZzMi9mbGFzaC5jCisrKyBiL2JvYXJkL214MWZzMi9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSBNWDFGUzJfRkxBU0hfQkFOS19TSVpFCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICBNWDFGUzJfRkxBU0hfU0VDVF9TSVpFCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgKi8KIAogLyoKICAqIE5PVEUgLSBDT05GSUdfRkxBU0hfMTZCSVQgbWVhbnMgdGhlIENQVSBpbnRlcmZhY2UgaXMgMTYtYml0LCBpdApAQCAtNjIsNyArNjIsNyBAQAogc3RhdGljIGludCB3cml0ZV93b3JkX2ludGVsKGZsYXNoX2luZm9fdCAqIGluZm8sIEZQV1YgKiBkZXN0LCBGUFcgZGF0YSk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfYW1kKGZsYXNoX2luZm9fdCAqIGluZm8sIEZQV1YgKiBkZXN0LCBGUFcgZGF0YSk7CiAjZGVmaW5lIHdyaXRlX3dvcmQoaW4sIGRlLCBkYSkgICB3cml0ZV93b3JkX2FtZChpbiwgZGUsIGRhKQotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiBzdGF0aWMgdm9pZCBmbGFzaF9zeW5jX3JlYWxfcHJvdGVjdChmbGFzaF9pbmZvX3QgKiBpbmZvKTsKICNlbmRpZgogCkBAIC03NywxNCArNzcsMTQgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkJICAgIChGTEFTSF9NQU5fQU1EICYgRkxBU0hfVkVORE1BU0spIHwKIAkJICAgIChGTEFTSF9BTTY0MFUgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaGJhc2UgPSBNWDFGUzJfRkxBU0hfQkFTRTsKQEAgLTEwMSw4ICsxMDEsOCBAQAogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBfYnNzX3N0YXJ0IC0gX2FybWJvb3Rfc3RhcnQsCisJCSAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgX2Jzc19zdGFydCAtIF9hcm1ib290X3N0YXJ0LAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0zODksNyArMzg5LDcgQEAKIH0KICNlbmRpZiAvKiAwICovCiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTUyOCw3ICs1MjgsNyBAQAogCQl1ZGVsYXkoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCWlmICgobm93ID0gZ2V0X3RpbWVyKDApKSAtIHN0YXJ0ID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKDApKSAtIHN0YXJ0ID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNzIwLDcgKzcyMCw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXdoaWxlIChyZXMgPT0gMAogCSAgICAgICAmJiAoKmRlc3QgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoZGF0YSAmIChGUFcpIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoMCkgLSBzdGFydCA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoMCkgLSBzdGFydCA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmRlc3QgPSAoRlBXKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlwcmludGYoIlNIQSB0aW1lb3V0XG4iKTsKIAkJCXJlcyA9IDE7CkBAIC03NjgsNyArNzY4LDcgQEAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAogCXdoaWxlIChyZXMgPT0gMCAmJiAoKmRlc3QgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSpkZXN0ID0gKEZQVykgMHgwMEIwMDBCMDsJLyogU3VzcGVuZCBwcm9ncmFtICAgICAgKi8KIAkJCXJlcyA9IDE7CiAJCX0KQEAgLTc4Myw3ICs3ODMsNyBAQAogCXJldHVybiAocmVzKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIGludApkaWZmIC0tZ2l0IGEvYm9hcmQvbXgxZnMyL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL214MWZzMi9sb3dsZXZlbF9pbml0LlMKaW5kZXggNGIyY2I0OC4uNTZhNDgxOSAxMDA2NDQKLS0tIGEvYm9hcmQvbXgxZnMyL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC9teDFmczIvbG93bGV2ZWxfaW5pdC5TCkBAIC0yOSwxOSArMjksMTkgQEAKIAogLyogQ2hhbmdlIFBFUkNMSzFESVYgdG8gMTQgaWUgMTQrMSAqLwogCWxkcgkJcjAsCT1QQ0RSCi0JbGRyCQlyMSwJPUNGR19QQ0RSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BDRFJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qIHNldCBNQ1UgUExMIENvbnRyb2wgUmVnaXN0ZXIgMCAqLwogCiAJbGRyCQlyMCwJPU1QQ1RMMAotCWxkcgkJcjEsCT1DRkdfTVBDVEwwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX01QQ1RMMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogLyogc2V0IE1DVSBQTEwgQ29udHJvbCBSZWdpc3RlciAxICovCiAKIAlsZHIJCXIwLAk9TVBDVEwxCi0JbGRyCQlyMSwJPUNGR19NUENUTDFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfTVBDVEwxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKiBzZXQgbXBsbCByZXN0YXJ0IGJpdCAqLwpAQCAtNjMsMTMgKzYzLDEzIEBACiAvKiBzZXQgU3lzdGVtIFBMTCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KIAogCWxkcgkJcjAsCT1TUENUTDAKLQlsZHIJCXIxLAk9Q0ZHX1NQQ1RMMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19TUENUTDBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qIHNldCBTeXN0ZW0gUExMIENvbnRyb2wgUmVnaXN0ZXIgMSAqLwogCiAJbGRyCQlyMCwJPVNQQ1RMMQotCWxkcgkJcjEsCT1DRkdfU1BDVEwxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1NQQ1RMMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogLyogc2V0IHNwbGwgcmVzdGFydCBiaXQgKi8KQEAgLTg5LDExICs4OSwxMSBAQAogCWJuZQkJMWIKIAogCWxkcgkJcjAsICAgPUNTQ1IKLQlsZHIJCXIxLCAgID1DRkdfQ1NDUl9WQUwKKwlsZHIJCXIxLCAgID1DT05GSUdfU1lTX0NTQ1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLCAgID1HUENSCi0JbGRyCQlyMSwgICA9Q0ZHX0dQQ1JfVkFMCisJbGRyCQlyMSwgICA9Q09ORklHX1NZU19HUENSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKgpAQCAtMTIyLDQzICsxMjIsNDMgQEAKIAlNQ1IgcDE1LDAscjAsYzEsYzAsMAogCiAJbGRyCQlyMCwJPUdJVVMoMCkKLQlsZHIJCXIxLAk9Q0ZHX0dJVVNfQV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HSVVTX0FfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Rk1DUgotCWxkcgkJcjEsCT1DRkdfRk1DUl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19GTUNSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTMFUKLQlsZHIJCXIxLAk9Q0ZHX0NTMFVfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MwVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzBMCi0JbGRyCQlyMSwJPUNGR19DUzBMX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTMExfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1MxVQotCWxkcgkJcjEsCT1DRkdfQ1MxVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzFVX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTMUwKLQlsZHIJCXIxLAk9Q0ZHX0NTMUxfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MxTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzRVCi0JbGRyCQlyMSwJPUNGR19DUzRVX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTNFVfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1M0TAotCWxkcgkJcjEsCT1DRkdfQ1M0TF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzRMX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTNVUKLQlsZHIJCXIxLAk9Q0ZHX0NTNVVfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1M1VV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzVMCi0JbGRyCQlyMSwJPUNGR19DUzVMX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTNUxfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qIFNEUkFNIFNldHVwICovCmRpZmYgLS1naXQgYS9ib2FyZC9uYzY1MC9mbGFzaC5jIGIvYm9hcmQvbmM2NTAvZmxhc2guYwppbmRleCBkMjNlOTc2Li44YTBlYWI1IDEwMDY0NAotLS0gYS9ib2FyZC9uYzY1MC9mbGFzaC5jCisrKyBiL2JvYXJkL25jNjUwL2ZsYXNoLmMKQEAgLTM0LDE2ICszNCwxNiBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmbmRlZiBDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNpZm5kZWYgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgICAgICBPUl9TQ1lfMl9DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAjZW5kaWYKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC05MCwxNSArOTAsMTUgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKLSNpZmRlZiBDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCisjaWZkZWYgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKIAlpbnQgc2N5LCB0cmx4LCBmbGFzaF9vcl90aW1pbmcsIGNsa19kaWZmOwogCi0Jc2N5ID0gKENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogJiBPUl9TQ1lfTVNLKSA+PiA0OwotCWlmIChDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgT1JfVFJMWCkgeworCXNjeSA9IChDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWiAmIE9SX1NDWV9NU0spID4+IDQ7CisJaWYgKENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgT1JfVFJMWCkgewogCQl0cmx4ID0gT1JfVFJMWDsKIAkJc2N5ICo9IDI7CiAJfSBlbHNlCkBAIC0xMzQsMTEgKzEzNCwxMSBAQAogCQlzY3kgPSAxOwogCiAJZmxhc2hfb3JfdGltaW5nID0gKHNjeSA8PCA0KSB8IHRybHggfAotCQkJICAoQ0ZHX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWiAmIH4oT1JfVFJMWCB8IE9SX1NDWV9NU0spKTsKKwkJCSAgKENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgfihPUl9UUkxYIHwgT1JfU0NZX01TSykpOwogI2VuZGlmCiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTUxLDIzICsxNTEsMjMgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0jaWZuZGVmIENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7CisjaWZuZGVmIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKICNlbHNlCiAJbWVtY3RsLT5tZW1jX29yMCA9IGZsYXNoX29yX3RpbWluZyB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7CiAjZW5kaWYKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgoRlBXICopIENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplICgoRlBXICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJKHZvaWQpIGZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0zMTYsMTAgKzMxNiwxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zOTAsNyArMzkwLDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCSAgICBpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkgICAgaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTUzMCw3ICs1MzAsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9uYzY1MC9uYzY1MC5jIGIvYm9hcmQvbmM2NTAvbmM2NTAuYwppbmRleCA2NTdhYmM0Li4wNTYyMzBkIDEwMDY0NAotLS0gYS9ib2FyZC9uYzY1MC9uYzY1MC5jCisrKyBiL2JvYXJkL25jNjUwL25jNjUwLmMKQEAgLTEzMCw3ICsxMzAsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTgsIHNpemU5OwogCWxvbmcgaW50IHNpemVfYjAgPSAwOwpAQCAtMTQ1LDcgKzE0NSw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTE1NCwxMCArMTU0LDEwIEBACiAJICogcHJlbGltaW5hcnkgYWRkcmVzcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgdGhlCiAJICogU0RSQU0gc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xNzcsMTQgKzE3NywxNCBAQAogCSAqCiAJICogdHJ5IDggY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwgU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl84Q09MLCBTRFJBTV9CQVNFM19QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CiAKIAkvKgogCSAqIHRyeSA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIFNEUkFNX0JBU0UzX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOworCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgU0RSQU1fQkFTRTNfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKIAl1ZGVsYXkgKDEwMDApOwogCkBAIC0xOTIsNyArMTkyLDcgQEAKIAkJc2l6ZV9iMCA9IHNpemU5OwogCX0gZWxzZSB7CiAJCXNpemVfYjAgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwogCQl1ZGVsYXkgKDUwMCk7CiAJfQogCkBAIC0yMDIsNyArMjAyLDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSkgewogCQkvKiByZWR1Y2UgdG8gMTUuNiB1cyAoNjIuNCB1cyAvIHF1YWQpICovCi0JCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzRLOwogCQl1ZGVsYXkgKDEwMDApOwogCX0KIApAQCAtMjEwLDEyICsyMTAsMTIgQEAKIAkgKiBGaW5hbCBtYXBwaW5nCiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IzID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IzID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjMgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JcmVnID4+PSAxOwkJCQkJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwlyZWcgPj49IDE7CQkJCQkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKQEAgLTIyNCw3ICsyMjQsNyBAQAogCXVwbWNvbmZpZyAoVVBNQiwgKHVpbnQgKikgbmFuZF9mbGFzaF90YWJsZSwKIAkJCSAgIHNpemVvZiAobmFuZF9mbGFzaF90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfTkFORDsKKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl9OQU5EOwogCiAJcmV0dXJuIChzaXplX2IwKTsKIH0KQEAgLTI0MSw3ICsyNDEsNyBAQAogCiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTI2OSw3ICsyNjksNyBAQAogCSAgIDAgLSBjcDg1MAogCSAgIDEgLSBrcDg1MgogCSovCi0JcFBhcmFtID0gKGNoYXIqKShDRkdfQ1BMRF9CQVNFKTsKKwlwUGFyYW0gPSAoY2hhciopKENPTkZJR19TWVNfQ1BMRF9CQVNFKTsKIAlpZiggKnBQYXJhbSAhPSAwKQogCQlpQ29tcGF0TW9kZSA9IDE7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHBob25lL2ZsYXNoLmMgYi9ib2FyZC9uZXRwaG9uZS9mbGFzaC5jCmluZGV4IGNmMGJjMDkuLjg4NTIxMjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHBob25lL2ZsYXNoLmMKKysrIGIvYm9hcmQvbmV0cGhvbmUvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOCw3ICszOCw3IEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKICNpZiBDT05GSUdfTkVUUEhPTkVfVkVSU0lPTiA9PSAyCkBAIC00Nyw3ICs0Nyw3IEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikgRkxBU0hfQkFTRTBfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CkBAIC01OCwxNyArNTgsMTcgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IChtZW1jdGwtPm1lbWNfYnIwICYgfihCUl9CQV9NU0spKTsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCAobWVtY3RsLT5tZW1jX2JyMCAmIH4oQlJfQkFfTVNLKSk7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopIENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyhDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTkyLDEzICs5MiwxMyBAQAogCQkJcHJpbnRmKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMSAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLCBzaXplMSwgc2l6ZTEgPDwgMjApOwogCiAJCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQkJbWVtY3RsLT5tZW1jX29yNCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemUxICYgMHhGRkZGODAwMCk7Ci0JCW1lbWN0bC0+bWVtY19icjQgPSAoQ0ZHX0ZMQVNIX0JBU0U0ICYgQlJfQkFfTVNLKSB8IChtZW1jdGwtPm1lbWNfYnI0ICYgfihCUl9CQV9NU0spKTsKKwkJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplMSAmIDB4RkZGRjgwMDApOworCQltZW1jdGwtPm1lbWNfYnI0ID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRTQgJiBCUl9CQV9NU0spIHwgKG1lbWN0bC0+bWVtY19icjQgJiB+KEJSX0JBX01TSykpOwogCiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkJc2l6ZTEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDRkdfRkxBU0hfQkFTRTQsICZmbGFzaF9pbmZvWzFdKTsKKwkJc2l6ZTEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U0LCAmZmxhc2hfaW5mb1sxXSk7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMoQ0ZHX0ZMQVNIX0JBU0U0LCAmZmxhc2hfaW5mb1sxXSk7CisJCWZsYXNoX2dldF9vZmZzZXRzKENPTkZJR19TWVNfRkxBU0hfQkFTRTQsICZmbGFzaF9pbmZvWzFdKTsKIAogCQlzaXplICs9IHNpemUxOwogCX0gZWxzZQpAQCAtNDQ4LDcgKzQ0OCw3IEBACiAJbGFzdCA9IHN0YXJ0OwogCWFkZHIgPSAodnVfY2hhciAqKSAoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHg4MCkgIT0gMHg4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MjEsNyArNTIxLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAJd2hpbGUgKCgqKCh2dV9jaGFyICopIGRlc3QpICYgMHg4MCkgIT0gKGRhdGEgJiAweDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0cGhvbmUvbmV0cGhvbmUuYyBiL2JvYXJkL25ldHBob25lL25ldHBob25lLmMKaW5kZXggMzhlYjdjOC4uNTNkMzE3MiAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0cGhvbmUvbmV0cGhvbmUuYworKysgYi9ib2FyZC9uZXRwaG9uZS9uZXRwaG9uZS5jCkBAIC0zNTYsNyArMzU2LDcgQEAKICNkZWZpbmUgTUFSX1NEUkFNX0lOSVQJCSgoQ0FTX0xBVEVOQ1kgPDwgNikgfCAweDAwMDAwMDA4TFUpCiAKIC8qIDggKi8KLSNkZWZpbmUgQ0ZHX01BTVIJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApAQCAtNDA2LDcgKzQwNiw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAKQEAgLTQyMiwxMCArNDIyLDEwIEBACiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDMgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SM19QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01BTVIgJiB+TUFNUl9QVEFFOwkvKiBubyByZWZyZXNoIHlldCAqLworCW1lbWN0bC0+bWVtY19tYm1yID0gQ09ORklHX1NZU19NQU1SICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSgyMDApOwogCkBAIC01NDYsNyArNTQ2LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcG9ydCA9ICZpbW1hcC0+aW1faW9wb3J0OwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG0gPSAmaW1tYXAtPmltX2NwbTsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CkBAIC02MDIsMTMgKzYwMiwxMyBAQAogI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kX2xlZ2FjeS5oPgogCiBleHRlcm4gdWxvbmcgbmFuZF9wcm9iZSh1bG9uZyBwaHlzYWRyKTsKLWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ0ZHX01BWF9OQU5EX0RFVklDRV07CitleHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIAogdm9pZCBuYW5kX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGxlbjsKIAotCXRvdGxlbiA9IG5hbmRfcHJvYmUoQ0ZHX05BTkRfQkFTRSk7CisJdG90bGVuID0gbmFuZF9wcm9iZShDT05GSUdfU1lTX05BTkRfQkFTRSk7CiAJcHJpbnRmICgiJTRsdSBNQlxuIiwgdG90bGVuID4+IDIwKTsKIH0KICNlbmRpZgpAQCAtNjI2LDcgKzYyNiw3IEBACiAKIHN0YXRpYyB2b2xhdGlsZSBpbnQgbGVmdF90b19wb2xsID0gUEhPTkVfQ09OU09MRV9QT0xMX0haOwkvKiBwb2xsICovCiAKLS8qIGNhbGxlZCBmcm9tIHRpbWVyIGludGVycnVwdCBldmVyeSAxL0NGR19IWiBzZWMgKi8KKy8qIGNhbGxlZCBmcm9tIHRpbWVyIGludGVycnVwdCBldmVyeSAxL0NPTkZJR19TWVNfSFogc2VjICovCiB2b2lkIGJvYXJkX3Nob3dfYWN0aXZpdHkodWxvbmcgdGltZXN0YW1wKQogewogCWlmIChsZWZ0X3RvX3BvbGwgPiAtUEhPTkVfQ09OU09MRV9QT0xMX0haKQpAQCAtNjU2LDcgKzY1Niw3IEBACiAKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ09OU09MRV9JU19JTl9FTlYpICYmIGRlZmluZWQoQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORSkKIGludCBvdmVyd3JpdGVfY29uc29sZSh2b2lkKQogewogCS8qIHByaW50Zigib3ZlcndyaXRlX2NvbnNvbGUgY2FsbGVkXG4iKTsgKi8KQEAgLTY3OSwxNiArNjc5LDE2IEBACiAKICNpZiBDT05GSUdfTkVUUEhPTkVfVkVSU0lPTiA9PSAyCiAJLyogYXNzZXJ0IHBlcmlwaGVyYWwgcmVzZXQgKi8KLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfl9CVygxMik7CisJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+X0JXKDEyKTsKIAlmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykKIAkJdWRlbGF5KDEwMDApOwotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSAgX0JXKDEyKTsKKwkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9ICBfQlcoMTIpOwogI2VuZGlmCiAJcmVzZXRfcGh5cygpOwogCiAJLyogY2hlY2sgaW4gb3JkZXIgdG8gZW5hYmxlIHRoZSBsb2NhbCBjb25zb2xlICovCiAJbGVmdF90b19wb2xsID0gUEhPTkVfQ09OU09MRV9QT0xMX0haOwotCWkgPSBDRkdfSFogKiAyOworCWkgPSBDT05GSUdfU1lTX0haICogMjsKIAl3aGlsZSAoaSA+IDApIHsKIAogCQlpZiAodHN0YygpKSB7CkBAIC03MDIsNyArNzAyLDcgQEAKIAkJCXN0YXR1c19sZWRfc2V0KDAsIFNUQVRVU19MRURfT04pOwogCQkJd2hpbGUgKCFkcnZfcGhvbmVfaXNfaWRsZSgpKSB7CiAJCQkJZG9fcG9sbCgpOwotCQkJCXVkZWxheSgxMDAwMDAwIC8gQ0ZHX0haKTsKKwkJCQl1ZGVsYXkoMTAwMDAwMCAvIENPTkZJR19TWVNfSFopOwogCQkJfQogCiAJCQljb25zb2xlX2Fzc2lnbihzdGRpbiwgInBob25lIik7CkBAIC03MTIsNyArNzEyLDcgQEAKIAkJCWJyZWFrOwogCQl9CiAKLQkJdWRlbGF5KDEwMDAwMDAgLyBDRkdfSFopOworCQl1ZGVsYXkoMTAwMDAwMCAvIENPTkZJR19TWVNfSFopOwogCQlpLS07CiAJCWxlZnRfdG9fcG9sbC0tOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHBob25lL3Bob25lX2NvbnNvbGUuYyBiL2JvYXJkL25ldHBob25lL3Bob25lX2NvbnNvbGUuYwppbmRleCA0MDhhZGEwLi5kOWIwYWQzIDEwMDY0NAotLS0gYS9ib2FyZC9uZXRwaG9uZS9waG9uZV9jb25zb2xlLmMKKysrIGIvYm9hcmQvbmV0cGhvbmUvcGhvbmVfY29uc29sZS5jCkBAIC00Niw0MyArNDYsNDMgQEAKICNkZWZpbmUgUk9XUwkyNAogI2RlZmluZSBDT0xTCTgwCiAKLSNkZWZpbmUgUkVGUkVTSF9IWgkJKENGR19IWi81MCkJLyogcmVmcmVzaCBldmVyeSAyMG1zICovCi0jZGVmaW5lIEJMSU5LX0haCQkoQ0ZHX0haLzIpCS8qIGN1cnNvciBibGluayBldmVyeSA1MDBtcyAqLworI2RlZmluZSBSRUZSRVNIX0haCQkoQ09ORklHX1NZU19IWi81MCkJLyogcmVmcmVzaCBldmVyeSAyMG1zICovCisjZGVmaW5lIEJMSU5LX0haCQkoQ09ORklHX1NZU19IWi8yKQkvKiBjdXJzb3IgYmxpbmsgZXZlcnkgNTAwbXMgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgRElTUExBWV9CQUNLTElUX1BPUlQJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0CisjZGVmaW5lIERJU1BMQVlfQkFDS0xJVF9QT1JUCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQKICNkZWZpbmUgRElTUExBWV9CQUNLTElUX01BU0sJMHgwMDEwCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIEtQX1NUQUJMRV9IWgkJKENGR19IWi8xMDApCS8qIHN0YWJsZSBmb3IgMTBtcyAqLwotI2RlZmluZSBLUF9SRVBFQVRfREVMQVlfSFoJKENGR19IWi80KQkvKiBkZWxheSBiZWZvcmUgcmVwZWF0IDI1MG1zICovCi0jZGVmaW5lIEtQX1JFUEVBVF9IWgkJKENGR19IWi8yMCkJLyogcmVwZWF0IGV2ZXJ5IDUwbXMgKi8KLSNkZWZpbmUgS1BfRk9SQ0VfREVMQVlfSFoJKENGR19IWi8yKQkvKiBrZXkgd2FzIGZvcmNlIHByZXNzZWQgKi8KLSNkZWZpbmUgS1BfSURMRV9ERUxBWV9IWgkoQ0ZHX0haLzIpCS8qIGtleSB3YXMgcmVsZWFzZWQgYW5kIGlkbGUgKi8KKyNkZWZpbmUgS1BfU1RBQkxFX0haCQkoQ09ORklHX1NZU19IWi8xMDApCS8qIHN0YWJsZSBmb3IgMTBtcyAqLworI2RlZmluZSBLUF9SRVBFQVRfREVMQVlfSFoJKENPTkZJR19TWVNfSFovNCkJLyogZGVsYXkgYmVmb3JlIHJlcGVhdCAyNTBtcyAqLworI2RlZmluZSBLUF9SRVBFQVRfSFoJCShDT05GSUdfU1lTX0haLzIwKQkvKiByZXBlYXQgZXZlcnkgNTBtcyAqLworI2RlZmluZSBLUF9GT1JDRV9ERUxBWV9IWgkoQ09ORklHX1NZU19IWi8yKQkvKiBrZXkgd2FzIGZvcmNlIHByZXNzZWQgKi8KKyNkZWZpbmUgS1BfSURMRV9ERUxBWV9IWgkoQ09ORklHX1NZU19IWi8yKQkvKiBrZXkgd2FzIHJlbGVhc2VkIGFuZCBpZGxlICovCiAKICNpZiBDT05GSUdfTkVUUEhPTkVfVkVSU0lPTiA9PSAxCi0jZGVmaW5lIEtQX1NQSV9SWERfUE9SVCAoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KQorI2RlZmluZSBLUF9TUElfUlhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpCiAjZGVmaW5lIEtQX1NQSV9SWERfTUFTSyAweDAwMDgKIAotI2RlZmluZSBLUF9TUElfVFhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCkKKyNkZWZpbmUgS1BfU1BJX1RYRF9QT1JUICgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KQogI2RlZmluZSBLUF9TUElfVFhEX01BU0sgMHgwMDA0CiAKLSNkZWZpbmUgS1BfU1BJX0NMS19QT1JUICgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpCisjZGVmaW5lIEtQX1NQSV9DTEtfUE9SVCAoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCkKICNkZWZpbmUgS1BfU1BJX0NMS19NQVNLIDB4MDAwMQogI2VsaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMgotI2RlZmluZSBLUF9TUElfUlhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBLUF9TUElfUlhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgS1BfU1BJX1JYRF9NQVNLIDB4MDAwMDAwMDgKIAotI2RlZmluZSBLUF9TUElfVFhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBLUF9TUElfVFhEX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgS1BfU1BJX1RYRF9NQVNLIDB4MDAwMDAwMDQKIAotI2RlZmluZSBLUF9TUElfQ0xLX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBLUF9TUElfQ0xLX1BPUlQgKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgS1BfU1BJX0NMS19NQVNLIDB4MDAwMDAwMDIKICNlbmRpZgogCi0jZGVmaW5lIEtQX0NTX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KQorI2RlZmluZSBLUF9DU19QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpCiAjZGVmaW5lIEtQX0NTX01BU0sJMHgwMDAwMDAxMAogCiAjZGVmaW5lIEtQX1NQSV9SWEQoKSAoS1BfU1BJX1JYRF9QT1JUICYgS1BfU1BJX1JYRF9NQVNLKQpAQCAtOTgzLDcgKzk4Myw3IEBACiAjaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMQogCWNvbF9tYXNrID0ga3BfZGF0YV90cmFuc2Zlcih2YWwpICYgMHgwRjsKICNlbGlmIENPTkZJR19ORVRQSE9ORV9WRVJTSU9OID09IDIKLQljb2xfbWFzayA9ICgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0ICYgMHgwZjsKKwljb2xfbWFzayA9ICgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCAmIDB4MGY7CiAJLyogWFhYIEZVQ0sgRlVDSyBGVUNLIEZVQ0sgRlVDSyEhISEgKi8KIAljb2xfbWFzayA9ICgoY29sX21hc2sgJiAweDA4KSA+PiAzKSB8CS8qIEJLQlIxICovCiAJCSAgICgoY29sX21hc2sgJiAweDA0KSA8PCAxKSB8CS8qIEJLQlIyICovCmRpZmYgLS1naXQgYS9ib2FyZC9uZXRzdGFsL2hjdTQvaGN1NC5jIGIvYm9hcmQvbmV0c3RhbC9oY3U0L2hjdTQuYwppbmRleCBjMTQ0NzQxLi5hYThhMDk3IDEwMDY0NAotLS0gYS9ib2FyZC9uZXRzdGFsL2hjdTQvaGN1NC5jCisrKyBiL2JvYXJkL25ldHN0YWwvaGN1NC9oY3U0LmMKQEAgLTEzNCw3ICsxMzQsNyBAQAogICovCiB1MzIgZ2V0X3NlcmlhbF9udW1iZXIodm9pZCkKIHsKLQl1MzIgc2VyaWFsID0gaW5fYmUzMigodTMyICopQ0ZHX0ZMQVNIX0JBU0UpOworCXUzMiBzZXJpYWwgPSBpbl9iZTMyKCh1MzIgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCiAJaWYgKHNlcmlhbCA9PSAweGZmZmZmZmZmKQogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YWwvaGN1NS9SRUFETUUudHh0IGIvYm9hcmQvbmV0c3RhbC9oY3U1L1JFQURNRS50eHQKaW5kZXggNzVjMGRkNy4uZjY0OTg3NiAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0c3RhbC9oY3U1L1JFQURNRS50eHQKKysrIGIvYm9hcmQvbmV0c3RhbC9oY3U1L1JFQURNRS50eHQKQEAgLTMzLDcgKzMzLDcgQEAKIE9uLUNoaXAgTWVtb3J5CiAtLS0tLS0tLS0tLS0tLQogCi0weGUwMDEwMDAwLSAweGUwMDEzZmZmICAgQ0ZHX09DTV9CQVNFCisweGUwMDEwMDAwLSAweGUwMDEzZmZmICAgQ09ORklHX1NZU19PQ01fQkFTRQogVGhlIDQ0MEVQeCBpbmNsdWRlcyBhIDE2SyBvbi1jaGlwIG1lbW9yeSB0aGF0IGNhbiBiZSBwbGFjZWQgaG93ZXZlcgogc29mdHdhcmUgY2hvb3Nlcy4KIApAQCAtMTQ5LDcgKzE0OSw3IEBACiAJc2V0dXAgYmQgZmxhc2ggaW5mbwogCWNwdV9pbml0X3I6IChjcHUvcHBjNHh4L2NwdV9pbml0LmMpCiAJICAgIHBlcmlwaGVyYWwgY2hpcCBzZWxlY3QgaW4gdXNpbmcgZGVmaW5lcyBsaWtlCi0JICAgIENGR19FQkNfUEIwQSwgQ0ZHX0VCQ19QQjBDIGZyb20gaGN1NS5oCisJICAgIENPTkZJR19TWVNfRUJDX1BCMEEsIENPTkZJR19TWVNfRUJDX1BCMEMgZnJvbSBoY3U1LmgKIAltZW1fbWFsbG9jX2luaXQKIAltYWxsb2NfYmluX3JlbG9jCiAJc3BpX2luaXQgKHIgb3IgZik/Pz8gKENPTkZJR19FTlZfSVNfSU5fRUVQUk9NKQpAQCAtMTY4LDQgKzE2OCw0IEBACiBEcml2ZXJzIGZvciBzZXJpYWwgZXRjIGFyZSBmb3VuZCB1bmRlciBkcml2ZXJzLwogCiBEb24ndCBhc2sgcXVlc3Rpb24gaWYgeW91IGRpZCBub3QgbG9vayBhdCB0aGUgUkVBRE1FICEhCi1Nb3N0IENGR18qIGFuZCBDT05GSUdfKiBzd2l0Y2hlcyBhcmUgbWVudGlvbmVkL2V4cGxhaW5lZCB0aGVyZS4KK01vc3QgQ09ORklHX1NZU18qIGFuZCBDT05GSUdfKiBzd2l0Y2hlcyBhcmUgbWVudGlvbmVkL2V4cGxhaW5lZCB0aGVyZS4KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YWwvaGN1NS9oY3U1LmMgYi9ib2FyZC9uZXRzdGFsL2hjdTUvaGN1NS5jCmluZGV4IGYzNDI4YzIuLjZmNGVjMjkgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHN0YWwvaGN1NS9oY3U1LmMKKysrIGIvYm9hcmQvbmV0c3RhbC9oY3U1L2hjdTUuYwpAQCAtMjYsNyArMjYsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogI3VuZGVmIEJPT1RTVFJBUF9PUFRJT05fQV9BQ1RJVkUKIApAQCAtNDAsOSArNDAsOSBAQAogI2RlZmluZSBTRFIwX0VDSUQyCQkweDAwODIKICNkZWZpbmUgU0RSMF9FQ0lEMwkJMHgwMDgzCiAKLSNkZWZpbmUgU1lTX0lPX0FERFJFU1MJCQkoQ0ZHX0NTXzIgKyAweDAwZTAwMDAwKQotI2RlZmluZSBTWVNfU0xPVF9BRERSRVNTCQkoQ0ZHX0NQTEQgKyAweDAwNDAwMDAwKQotI2RlZmluZSBIQ1VfRElHSVRBTF9JT19SRUdJU1RFUgkoQ0ZHX0NQTEQgKyAweDA1MDAwMDApCisjZGVmaW5lIFNZU19JT19BRERSRVNTCQkJKENPTkZJR19TWVNfQ1NfMiArIDB4MDBlMDAwMDApCisjZGVmaW5lIFNZU19TTE9UX0FERFJFU1MJCShDT05GSUdfU1lTX0NQTEQgKyAweDAwNDAwMDAwKQorI2RlZmluZSBIQ1VfRElHSVRBTF9JT19SRUdJU1RFUgkoQ09ORklHX1NZU19DUExEICsgMHgwNTAwMDAwKQogI2RlZmluZSBIQ1VfU1dfSU5TVEFMTF9SRVFVRVNURUQJMHgxMAogCiAvKgpAQCAtMjEyLDcgKzIxMiw3IEBACiAgKi8KIHUzMiBnZXRfc2VyaWFsX251bWJlcih2b2lkKQogewotCXUzMiAqc2VyaWFsID0gKHUzMiAqKUNGR19GTEFTSF9CQVNFOworCXUzMiAqc2VyaWFsID0gKHUzMiAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCWlmIChpbl9iZTMyKHNlcmlhbCkgPT0gMHhmZmZmZmZmZikKIAkJcmV0dXJuIDA7CkBAIC0yNDMsNyArMjQzLDcgQEAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApAQCAtMzk5LDE4ICszOTksMTggQEAKIAkgKi8KIAkvKiBQTU0wIE1hc2svQXR0cmlidXRlIC0gZGlzYWJsZWQgYjQgc2V0dGluZyAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4MDAwMDAwMDApOwotCW91dDMycihQQ0lYMF9QTU0wTEEsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0wTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KIAkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QTU0wUENJTEEsIENGR19QQ0lfTUVNQkFTRSk7CisJb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CiAJb3V0MzJyKFBDSVgwX1BNTTBQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIAlvdXQzMnIoUENJWDBfUE1NME1BLCAweEUwMDAwMDAxKTsKIAogCS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCiAJb3V0MzJyKFBDSVgwX1BNTTFNQSwgMHgwMDAwMDAwMCk7Ci0Jb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QTU0xTEEsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCiAJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KLQlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDRkdfUENJX01FTUJBU0UyKTsKKwlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7CiAJb3V0MzJyKFBDSVgwX1BNTTFQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCS8qIDUxMk0gKyBObyBwcmVmZXRjaGluZywgYW5kIGVuYWJsZSByZWdpb24gKi8KIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweEUwMDAwMDAxKTsKQEAgLTQyNiw4ICs0MjYsOCBAQAogCiAJLyogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELAotCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDRkdfUENJX1NVQlNZU19JRCk7CisJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQpOwogCiAJLyogQ29uZmlndXJlIGNvbW1hbmQgcmVnaXN0ZXIgYXMgYnVzIG1hc3RlciAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ09NTUFORCwgUENJX0NPTU1BTkRfTUFTVEVSKTsKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YWwvaGN1NS9pbml0LlMgYi9ib2FyZC9uZXRzdGFsL2hjdTUvaW5pdC5TCmluZGV4IGQ3M2M4NjEuLjA1YjVlMzggMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHN0YWwvaGN1NS9pbml0LlMKKysrIGIvYm9hcmQvbmV0c3RhbC9oY3U1L2luaXQuUwpAQCAtNDIsNyArNDIsNyBAQAogCS8qIFRMQiMwOiB2eFdvcmtzIG5lZWRzIHRoaXMgZW50cnkgZm9yIHRoZSBNYWNoaW5lIENoZWNrIGludGVycnVwdCwgKi8KIAl0bGJlbnRyeSggMHg0MDAwMDAwMCwgU1pfMjU2TSwgMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAkvKiBUTEIjMTogVExCLWVudHJ5IGZvciBERFIgU0RSQU0gKFVwIHRvIDJHQikgKi8KLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENGR19TRFJBTV9CQVNFLCAwLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMCwKIAkJQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCS8qIFRMQiMyOiBUTEItZW50cnkgZm9yIEVCQyAqLwpAQCAtNTMsNyArNTMsNyBAQAogCSAqIG9mZiB0byB1c2UgdGhlIHNwZWVkIHVwIGJvb3QgcHJvY2Vzcy4gSXQgaXMgcGF0Y2hlZCBhZnRlciByZWxvY2F0aW9uCiAJICogdG8gZW5hYmxlIFNBX0kKIAkgKi8KLQl0bGJlbnRyeSggQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8xTSwgQ0ZHX0JPT1RfQkFTRV9BRERSLCAxLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSLCBTWl8xTSwgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiwgMSwKIAkJQUNfUnxBQ19XfEFDX1h8U0FfRykKIAogCS8qCkBAIC02MywxMyArNjMsMTMgQEAKIAkgKi8KIAogCS8qIFRMQiM0OiAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UxLCAxLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEsIDEsCiAJCUFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCS8qIFRMQiM1OiAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UyLCAxLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIsIDEsCiAJCUFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCS8qIFRMQiM2OiAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UzLCAxLAorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMsIDEsCiAJCUFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogVExCLWVudHJ5IGZvciBJbnRlcm5hbCBSZWdpc3RlcnMgJiBPQ00gKi8KQEAgLTg3LDIwICs4NywyMCBAQAogCiAJLyoJCUNBTiAqLwogCS8qIFRMQiMxMDogKi8KLQl0bGJlbnRyeSggQ0ZHX0NTXzEsIFNaXzFLLCBDRkdfQ1NfMSwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19DU18xLCBTWl8xSywgQ09ORklHX1NZU19DU18xLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogCiAJLyogVExCIzExOiAgQ1BMRCBhbmQgSU1DLVN0YW5kYXJkIDMyIE1CICovCi0JdGxiZW50cnkoIENGR19DU18yLCBTWl8xNk0sIENGR19DU18yLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0NTXzIsIFNaXzE2TSwgQ09ORklHX1NZU19DU18yLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogCiAJLyogVExCIzEyOiAqLwotCXRsYmVudHJ5KCBDRkdfQ1NfMiArIDB4MTAwMDAwMCwgU1pfMTZNLCBDRkdfQ1NfMiArIDB4MTAwMDAwMCwgMSwKKwl0bGJlbnRyeSggQ09ORklHX1NZU19DU18yICsgMHgxMDAwMDAwLCBTWl8xNk0sIENPTkZJR19TWVNfQ1NfMiArIDB4MTAwMDAwMCwgMSwKIAkJQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKIAogCSAvKgkJSU1DLUZhc3QgMzIgTUIgKi8KIAkvKiBUTEIjMTM6ICovCi0JdGxiZW50cnkoIENGR19DU18zLCBTWl8xNk0sIENGR19DU18zLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0NTXzMsIFNaXzE2TSwgQ09ORklHX1NZU19DU18zLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogCS8qIFRMQiMxNDogKi8KLQl0bGJlbnRyeSggQ0ZHX0NTXzMgKyAweDEwMDAwMDAsIFNaXzE2TSwgQ0ZHX0NTXzMsIDEsCisJdGxiZW50cnkoIENPTkZJR19TWVNfQ1NfMyArIDB4MTAwMDAwMCwgU1pfMTZNLCBDT05GSUdfU1lTX0NTXzMsIDEsCiAJCUFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCiAKIAl0bGJ0YWJfZW5kCmRpZmYgLS1naXQgYS9ib2FyZC9uZXRzdGFsL2hjdTUvc2RyYW0uYyBiL2JvYXJkL25ldHN0YWwvaGN1NS9zZHJhbS5jCmluZGV4IGU1ZGY2MmUuLmY1OWJkN2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHN0YWwvaGN1NS9zZHJhbS5jCisrKyBiL2JvYXJkL25ldHN0YWwvaGN1NS9zZHJhbS5jCkBAIC0yNjMsMjAgKzI2MywyMCBAQAogCS8qCiAJICogUHJvZ3JhbSB0bGIgZW50cmllcyBmb3IgdGhpcyBzaXplIChkeW5hbWljKQogCSAqLwotCXJlbW92ZV90bGIoQ0ZHX1NEUkFNX0JBU0UsIDI1NiA8PCAyMCk7CisJcmVtb3ZlX3RsYihDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDI1NiA8PCAyMCk7CiAJcHJvZ3JhbV90bGIoMCwgMCwgZHJhbV9zaXplLCBUTEJfV09SRDJfV19FTkFCTEUgfCBUTEJfV09SRDJfSV9FTkFCTEUpOwogCiAJLyoKIAkgKiBTZXR1cCAybmQgVExCIHdpdGggc2FtZSBwaHlzaWNhbCBhZGRyZXNzIGJ1dCBkaWZmZXJlbnQgdmlydHVhbAogCSAqIGFkZHJlc3Mgd2l0aCBjYWNoZSBlbmFibGVkLiBUaGlzIGlzIGRvbmUgZm9yIGZhc3QgRUNDIGdlbmVyYXRpb24uCiAJICovCi0JcHJvZ3JhbV90bGIoMCwgQ0ZHX0REUl9DQUNIRURfQUREUiwgZHJhbV9zaXplLCAwKTsKKwlwcm9ncmFtX3RsYigwLCBDT05GSUdfU1lTX0REUl9DQUNIRURfQUREUiwgZHJhbV9zaXplLCAwKTsKIAogI2lmZGVmIENPTkZJR19ERFJfRUNDCiAJLyoKIAkgKiBJZiBFQ0MgaXMgZW5hYmxlZCwgaW5pdGlhbGl6ZSB0aGUgcGFyaXR5IGJpdHMuCiAJICovCi0JcHJvZ3JhbV9lY2MoQ0ZHX0REUl9DQUNIRURfQUREUiwgZHJhbV9zaXplKTsKKwlwcm9ncmFtX2VjYyhDT05GSUdfU1lTX0REUl9DQUNIRURfQUREUiwgZHJhbV9zaXplKTsKICNlbmRpZgogCiAJcmV0dXJuIChkcmFtX3NpemUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0c3RhbC9oY3U1L3UtYm9vdC5sZHMgYi9ib2FyZC9uZXRzdGFsL2hjdTUvdS1ib290LmxkcwppbmRleCBjNzJlNWJhLi5mODU3ZWYzIDEwMDY0NAotLS0gYS9ib2FyZC9uZXRzdGFsL2hjdTUvdS1ib290LmxkcworKysgYi9ib2FyZC9uZXRzdGFsL2hjdTUvdS1ib290LmxkcwpAQCAtMTM2LDcgKzEzNiw3IEBACiAgICAqKENPTU1PTikKICAgfQogCi0gIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRkIwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKKyAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGQjAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CiAKICAgX2VuZCA9IC4gOwogICBQUk9WSURFIChlbmQgPSAuKTsKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YWwvbWN1MjUvbWN1MjUuYyBiL2JvYXJkL25ldHN0YWwvbWN1MjUvbWN1MjUuYwppbmRleCBlZDE3MWJmLi42NmVkOTVmIDEwMDY0NAotLS0gYS9ib2FyZC9uZXRzdGFsL21jdTI1L21jdTI1LmMKKysrIGIvYm9hcmQvbmV0c3RhbC9tY3UyNS9tY3UyNS5jCkBAIC03NCw5ICs3NCw5IEBACiAJbXRkY3IoY250cmwxLCBDUEMwX0NSMV9WQUxVRSk7CiAJbXRkY3IoZWNyLCAweDYwNjA2MDAwKTsKIAltdGRjcihDUEMwX0VJUlIsIDB4N0MwMDAwMDApOwotCW91dDMyKEdQSU8wX09SLAkJQ0ZHX0dQSU8wX09SICk7Ci0Jb3V0MzIoR1BJTzBfVENSLAlDRkdfR1BJTzBfVENSKTsKLQlvdXQzMihHUElPMF9PRFIsCUNGR19HUElPMF9PRFIpOworCW91dDMyKEdQSU8wX09SLAkJQ09ORklHX1NZU19HUElPMF9PUiApOworCW91dDMyKEdQSU8wX1RDUiwJQ09ORklHX1NZU19HUElPMF9UQ1IpOworCW91dDMyKEdQSU8wX09EUiwJQ09ORklHX1NZU19HUElPMF9PRFIpOwogCW10c3ByKGNjcjAsICAgICAgMHgwMDcwMDAwMCk7CiAKIAlyZXR1cm4gMDsKQEAgLTE0MSw3ICsxNDEsNyBAQAogICovCiB1MzIgZ2V0X3NlcmlhbF9udW1iZXIodm9pZCkKIHsKLQl1MzIgc2VyaWFsID0gaW5fYmUzMigodTMyICopQ0ZHX0ZMQVNIX0JBU0UpOworCXUzMiBzZXJpYWwgPSBpbl9iZTMyKCh1MzIgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCiAJaWYgKHNlcmlhbCA9PSAweGZmZmZmZmZmKQogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHN0YXIvZmxhc2guYyBiL2JvYXJkL25ldHN0YXIvZmxhc2guYwppbmRleCA2OTJjNDE2Li5lOWVjYTM1IDEwMDY0NAotLS0gYS9ib2FyZC9uZXRzdGFyL2ZsYXNoLmMKKysrIGIvYm9hcmQvbmV0c3Rhci9mbGFzaC5jCkBAIC0zMywxMSArMzMsMTEgQEAKIAogI2luY2x1ZGUgImNyY2VrLmgiCiAKLSNpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA+IDEpCisjaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID4gMSkKICNlcnJvciBUaGVyZSBpcyBhbHdheXMgb25seSBfb25lXyBmbGFzaCBjaGlwCiAjZW5kaWYKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKICNkZWZpbmUgQ01EX1JFQURfQVJSQVkJCTB4MDAwMDAwZjAKICNkZWZpbmUgQ01EX1VOTE9DSzEJCTB4MDAwMDAwYWEKQEAgLTQ3LDggKzQ3LDggQEAKICNkZWZpbmUgQ01EX1BST0dSQU0JCTB4MDAwMDAwYTAKICNkZWZpbmUgQ01EX1VOTE9DS19CWVBBU1MJMHgwMDAwMDAyMAogCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMQkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTUgPDwgMSkpKQotI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwMmFhIDw8IDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTUgPDwgMSkpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDJhYSA8PCAxKSkpCiAKICNkZWZpbmUgQklUX0VSQVNFX0RPTkUJCTB4MDAwMDAwODAKICNkZWZpbmUgQklUX1JEWV9NQVNLCQkweDAwMDAwMDgwCkBAIC02NSwyNyArNjUsMjcgQEAKIAlmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID0gKEFNRF9NQU5VRkFDVCAmIEZMQVNIX1ZFTkRNQVNLKSB8CiAJCQkJIChBTURfSURfTFY4MDBCICYgRkxBU0hfVFlQRU1BU0spOwogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IFBIWVNfRkxBU0hfMV9TSVpFOwotCWZsYXNoX2luZm9bMF0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCW1lbXNldChmbGFzaF9pbmZvWzBdLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJZmxhc2hfaW5mb1swXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCW1lbXNldChmbGFzaF9pbmZvWzBdLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCiAJZm9yIChpID0gMDsgaSA8IGZsYXNoX2luZm9bMF0uc2VjdG9yX2NvdW50OyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDogLyogMTZrQiAqLwotCQkJZmxhc2hfaW5mb1swXS5zdGFydFswXSA9IENGR19GTEFTSF9CQVNFOworCQkJZmxhc2hfaW5mb1swXS5zdGFydFswXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAkJCWJyZWFrOwogCQljYXNlIDE6IC8qIDhrQiAqLwotCQkJZmxhc2hfaW5mb1swXS5zdGFydFsxXSA9IENGR19GTEFTSF9CQVNFICsgMHg0MDAwOworCQkJZmxhc2hfaW5mb1swXS5zdGFydFsxXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMDsKIAkJCWJyZWFrOwogCQljYXNlIDI6IC8qIDhrQiAqLwotCQkJZmxhc2hfaW5mb1swXS5zdGFydFsyXSA9IENGR19GTEFTSF9CQVNFICsgMHg0MDAwICsKKwkJCWZsYXNoX2luZm9bMF0uc3RhcnRbMl0gPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAgKwogCQkJCQkJIDB4MjAwMDsKIAkJCWJyZWFrOwogCQljYXNlIDM6IC8qIDMyIEtCICovCi0JCQlmbGFzaF9pbmZvWzBdLnN0YXJ0WzNdID0gQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAgKworCQkJZmxhc2hfaW5mb1swXS5zdGFydFszXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMCArCiAJCQkJCQkgMiAqIDB4MjAwMDsKIAkJCWJyZWFrOwogCQljYXNlIDQ6Ci0JCQlmbGFzaF9pbmZvWzBdLnN0YXJ0WzRdID0gQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAgKworCQkJZmxhc2hfaW5mb1swXS5zdGFydFs0XSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMCArCiAJCQkJCQkgMiAqIDB4MjAwMCArIDB4ODAwMDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OiAvKiA2NGtCICovCkBAIC0xOTYsNyArMTk2LDcgQEAKIAkJCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCU1FTV9GTEFTSF9BRERSMSA9IENNRF9SRUFEX0FSUkFZOwogCQkJCQlyYyA9IEVSUl9USU1PVVQ7CiAJCQkJCWJyZWFrOwpAQCAtMjU0LDcgKzI1NCw3IEBACiAJCXJlc3VsdCA9ICphZGRyOwogCiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcmMgPSBFUlJfVElNT1VUOwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHRhL2NvZGVjLmMgYi9ib2FyZC9uZXR0YS9jb2RlYy5jCmluZGV4IDAxYWIxNGIuLjg0NGFhMTggMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHRhL2NvZGVjLmMKKysrIGIvYm9hcmQvbmV0dGEvY29kZWMuYwpAQCAtMzM5LDkgKzMzOSw5IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgUE9SVEIJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKLSNkZWZpbmUgUE9SVEMJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpCi0jZGVmaW5lIFBPUlRECQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KQorI2RlZmluZSBQT1JUQgkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKKyNkZWZpbmUgUE9SVEMJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KQorI2RlZmluZSBQT1JURAkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpCiAKICNkZWZpbmUgX1BPUlREX1NFVChtYXNrLCBzdGF0ZSkgXAogCWRvIHsgXApkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0dGEvZHNwLmMgYi9ib2FyZC9uZXR0YS9kc3AuYwppbmRleCAzNzM5ZTE2Li5jZDU3NjQ3IDEwMDY0NAotLS0gYS9ib2FyZC9uZXR0YS9kc3AuYworKysgYi9ib2FyZC9uZXR0YS9kc3AuYwpAQCAtOTUsNyArOTUsNyBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgZHNwX2dvX3Nsb3codm9pZCkKIHsKLQl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fbWVtY3RsOworCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fbWVtY3RsOwogI2lmIGRlZmluZWQoQ09ORklHX05FVFRBXzY0MTIpCiAJbWVtY3RsLT5tZW1jX29yNiB8PSBPUl9TQ1lfMTVfQ0xLIHwgT1JfVFJMWDsKICNlbHNlCkBAIC0xMDgsNyArMTA4LDcgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIGRzcF9nb19mYXN0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX21lbWN0bDsKKwl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX21lbWN0bDsKICNpZiBkZWZpbmVkKENPTkZJR19ORVRUQV82NDEyKQogCW1lbWN0bC0+bWVtY19vcjYgPSAobWVtY3RsLT5tZW1jX29yNiAmIH4oT1JfU0NZXzE1X0NMSyB8IE9SX1RSTFgpKSB8IE9SX1NDWV8wX0NMSzsKICNlbHNlCkBAIC0xNDgsMTQgKzE0OCwxNCBAQAogc3RhdGljIGlubGluZSB2b2lkIGRzcF9yZXNldCh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHX05FVFRBXzY0MTIpCi0JKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0ICY9IH4oMSA8PCAoMTUgLSAxNSkpOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQgJj0gfigxIDw8ICgxNSAtIDE1KSk7CiAJdWRlbGF5KDUwMCk7Ci0JKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0IHw9ICAoMSA8PCAoMTUgLSAxNSkpOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQgfD0gICgxIDw8ICgxNSAtIDE1KSk7CiAJdWRlbGF5KDUwMCk7CiAjZWxzZQotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCAmPSB+KDEgPDwgKDE1IC0gNykpOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQgJj0gfigxIDw8ICgxNSAtIDcpKTsKIAl1ZGVsYXkoMjUwKTsKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQgfD0gICgxIDw8ICgxNSAtIDcpKTsKKwkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0IHw9ICAoMSA8PCAoMTUgLSA3KSk7CiAJdWRlbGF5KDI1MCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHRhL2ZsYXNoLmMgYi9ib2FyZC9uZXR0YS9mbGFzaC5jCmluZGV4IDUzMTIwNGMuLjQ1ZTZiMzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHRhL2ZsYXNoLmMKKysrIGIvYm9hcmQvbmV0dGEvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopIEZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOwpAQCAtNTQsMTcgKzU0LDE3IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCAobWVtY3RsLT5tZW1jX2JyMCAmIH4oQlJfQkFfTVNLKSk7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgKG1lbWN0bC0+bWVtY19icjAgJiB+KEJSX0JBX01TSykpOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC00MjcsNyArNDI3LDcgQEAKIAlsYXN0ID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9jaGFyICopIChpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTUwMCw3ICs1MDAsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAl3aGlsZSAoKCooKHZ1X2NoYXIgKikgZGVzdCkgJiAweDgwKSAhPSAoZGF0YSAmIDB4ODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9uZXR0YS9uZXR0YS5jIGIvYm9hcmQvbmV0dGEvbmV0dGEuYwppbmRleCBiYzMxMzg2Li4wMmZkOTRjIDEwMDY0NAotLS0gYS9ib2FyZC9uZXR0YS9uZXR0YS5jCisrKyBiL2JvYXJkL25ldHRhL25ldHRhLmMKQEAgLTI4OSw3ICsyODksNyBAQAogI2RlZmluZSBNQVJfU0RSQU1fSU5JVAkJKChDQVNfTEFURU5DWSA8PCA2KSB8IDB4MDAwMDAwMDhMVSkKIAogLyogOCAqLwotI2RlZmluZSBDRkdfTUFNUgkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC0zMzksNyArMzM5LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTsKIApAQCAtMzU1LDEwICszNTUsMTAgQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgMyB0byB0aGUgU0RSQU0gYmFuayBhdCBwcmVsaW1pbmFyeSBhZGRyZXNzLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUFNUiAmIH5NQU1SX1BUQUU7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01BTVIgJiB+TUFNUl9QVEFFOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5KDIwMCk7CiAKQEAgLTUwNSw3ICs1MDUsNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBpb3A4eHhfdCAqaW9wb3J0ID0gJmltbWFwLT5pbV9pb3BvcnQ7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwbSA9ICZpbW1hcC0+aW1fY3BtOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKQEAgLTU2MCwxMSArNTYwLDExIEBACiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+CiAKIGV4dGVybiB1bG9uZyBuYW5kX3Byb2JlKHVsb25nIHBoeXNhZHIpOwotZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDRkdfTUFYX05BTkRfREVWSUNFXTsKK2V4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdOwogCiB2b2lkIG5hbmRfaW5pdCh2b2lkKQogewotCXVuc2lnbmVkIGxvbmcgdG90bGVuID0gbmFuZF9wcm9iZShDRkdfTkFORF9CQVNFKTsKKwl1bnNpZ25lZCBsb25nIHRvdGxlbiA9IG5hbmRfcHJvYmUoQ09ORklHX1NZU19OQU5EX0JBU0UpOwogCiAJcHJpbnRmICgiJTRsdSBNQlxuIiwgdG90bGVuID4+IDIwKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL25ldHRhL3BjbWNpYS5jIGIvYm9hcmQvbmV0dGEvcGNtY2lhLmMKaW5kZXggNjZlNmU1MS4uZWQ1OGYyYyAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0dGEvcGNtY2lhLmMKKysrIGIvYm9hcmQvbmV0dGEvcGNtY2lhLmMKQEAgLTMzLDcgKzMzLDcgQEAKIAogc3RhdGljIHZvaWQgY2ZnX3ZwcGQoaW50IG5vKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIHNob3J0IG1hc2s7CiAKIAlpZiAoKHVuc2lnbmVkIGludClubyA+PSBzaXplb2YodnBwZF9tYXNrcykvc2l6ZW9mKHZwcGRfbWFza3NbMF0pKQpAQCAtNDgsNyArNDgsNyBAQAogCiBzdGF0aWMgdm9pZCBzZXRfdnBwZChpbnQgbm8sIGludCB3aGF0KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIHNob3J0IG1hc2s7CiAKIAlpZiAoKHVuc2lnbmVkIGludClubyA+PSBzaXplb2YodnBwZF9tYXNrcykvc2l6ZW9mKHZwcGRfbWFza3NbMF0pKQpAQCAtNjYsNyArNjYsNyBAQAogCiBzdGF0aWMgdm9pZCBjZmdfdmNjZChpbnQgbm8pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgc2hvcnQgbWFzazsKIAogCWlmICgodW5zaWduZWQgaW50KW5vID49IHNpemVvZih2Y2NkX21hc2tzKS9zaXplb2YodmNjZF9tYXNrc1swXSkpCkBAIC04MSw3ICs4MSw3IEBACiAKIHN0YXRpYyB2b2lkIHNldF92Y2NkKGludCBubywgaW50IHdoYXQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgc2hvcnQgbWFzazsKIAogCWlmICgodW5zaWduZWQgaW50KW5vID49IHNpemVvZih2Y2NkX21hc2tzKS9zaXplb2YodmNjZF9tYXNrc1swXSkpCkBAIC05OSw3ICs5OSw3IEBACiAKIHN0YXRpYyB2b2lkIGNmZ19vYyh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIHNob3J0IG1hc2sgPSBvY19tYXNrOwogCiAJaW1tYXAtPmltX2lvcG9ydC5pb3BfcGNkaXIgJj0gfm1hc2s7CkBAIC0xMTAsNyArMTEwLDcgQEAKIAogc3RhdGljIGludCBnZXRfb2Modm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1bnNpZ25lZCBzaG9ydCBtYXNrID0gb2NfbWFzazsKIAlpbnQgd2hhdDsKIApAQCAtMTIyLDcgKzEyMiw3IEBACiAKIHN0YXRpYyB2b2lkIGNmZ19zaGRuKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgc2hvcnQgbWFzazsKIAogCW1hc2sgPSBzaGRuX21hc2s7CkBAIC0xMzQsNyArMTM0LDcgQEAKIAogc3RhdGljIHZvaWQgc2V0X3NoZG4oaW50IHdoYXQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgc2hvcnQgbWFzazsKIAogCW1hc2sgPSBzaGRuX21hc2s7CkBAIC0xNTAsOCArMTUwLDggQEAKIAl2b2xhdGlsZSBpbW1hcF90CSppbW1hcDsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3A7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCiAJY2ZnX3ZwcGQoMCk7IGNmZ192cHBkKDEpOwkvKiBWUFBEMCxWUFBEMSBWQVZQUCA9PiBIaS1aICovCkBAIC0xODQsMTAgKzE4NCwxMCBAQAogCiAJdWRlbGF5KDEwMDAwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3NpdV9jb25mKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9zaXVfY29uZikpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CiAKIAkvKiBDb25maWd1cmUgUG9ydHMgZm9yIFRQUzIyMTFBIFBDLUNhcmQgUG93ZXItSW50ZXJmYWNlIFN3aXRjaCAqLwogCWNmZ19wb3J0cyAoKTsKQEAgLTI3Myw4ICsyNzMsOCBAQAogCiAJZGVidWcgKCJoYXJkd2FyZV9kaXNhYmxlOiAiIFBDTUNJQV9CT0FSRF9NU0cgIiBTbG90ICVjXG4iLCAnQScrc2xvdCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCiAJLyogQ29uZmlndXJlIFBDTUNJQSBHZW5lcmFsIENvbnRyb2wgUmVnaXN0ZXIgKi8KIAlkZWJ1ZyAoIkRpc2FibGUgUENNQ0lBIGJ1ZmZlcnMgYW5kIGFzc2VydCBSRVNFVFxuIik7CkBAIC0zMDcsOSArMzA3LDkgQEAKIAkJCSIgU2xvdCAlYywgVmNjPSVkLiVkLCBWcHA9JWQuJWRcbiIsCiAJJ0EnK3Nsb3QsIHZjYy8xMCwgdmNjJTEwLCB2cHAvMTAsIHZjYyUxMCk7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7Ci0JY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSkpOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSkpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCS8qCiAJKiBEaXNhYmxlIFBDTUNJQSBidWZmZXJzIChpc29sYXRlIHRoZSBpbnRlcmZhY2UpCiAJKiBhbmQgYXNzZXJ0IFJFU0VUIHNpZ25hbApkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0dGEyL2ZsYXNoLmMgYi9ib2FyZC9uZXR0YTIvZmxhc2guYwppbmRleCBjZWZmZjcxLi5iNjNmNDU5IDEwMDY0NAotLS0gYS9ib2FyZC9uZXR0YTIvZmxhc2guYworKysgYi9ib2FyZC9uZXR0YTIvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpCisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopIEZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOwpAQCAtNTUsMTcgKzU1LDE3IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7Ci0JbWVtY3RsLT5tZW1jX2JyMCA9IChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCAobWVtY3RsLT5tZW1jX2JyMCAmIH4oQlJfQkFfTVNLKSk7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgKG1lbWN0bC0+bWVtY19icjAgJiB+KEJSX0JBX01TSykpOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC00MjUsNyArNDI1LDcgQEAKIAlsYXN0ID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9jaGFyICopIChpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQ5OCw3ICs0OTgsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAl3aGlsZSAoKCooKHZ1X2NoYXIgKikgZGVzdCkgJiAweDgwKSAhPSAoZGF0YSAmIDB4ODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9uZXR0YTIvbmV0dGEyLmMgYi9ib2FyZC9uZXR0YTIvbmV0dGEyLmMKaW5kZXggMWRiZGRlMS4uMmNlMzNjZiAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0dGEyL25ldHRhMi5jCisrKyBiL2JvYXJkL25ldHRhMi9uZXR0YTIuYwpAQCAtMzU0LDcgKzM1NCw3IEBACiAjZGVmaW5lIE1BUl9TRFJBTV9JTklUCQkoKENBU19MQVRFTkNZIDw8IDYpIHwgMHgwMDAwMDAwOExVKQogCiAvKiA4ICovCi0jZGVmaW5lIENGR19NQU1SCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVIJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTQwNCw3ICs0MDQsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOwogCkBAIC00MjAsMTAgKzQyMCwxMCBAQAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgYmFuayAzIHRvIHRoZSBTRFJBTSBiYW5rIGF0IHByZWxpbWluYXJ5IGFkZHJlc3MuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAKLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR19NQU1SICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUFNUiAmIH5NQU1SX1BUQUU7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkoMjAwKTsKIApAQCAtNTQ0LDcgKzU0NCw3IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGlvcDh4eF90ICppb3BvcnQgPSAmaW1tYXAtPmltX2lvcG9ydDsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3BtID0gJmltbWFwLT5pbV9jcG07CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwpAQCAtNjAwLDEzICs2MDAsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZF9sZWdhY3kuaD4KIAogZXh0ZXJuIHVsb25nIG5hbmRfcHJvYmUodWxvbmcgcGh5c2Fkcik7Ci1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiAKIHZvaWQgbmFuZF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RsZW47CiAKLQl0b3RsZW4gPSBuYW5kX3Byb2JlKENGR19OQU5EX0JBU0UpOworCXRvdGxlbiA9IG5hbmRfcHJvYmUoQ09ORklHX1NZU19OQU5EX0JBU0UpOwogCXByaW50ZiAoIiU0bHUgTUJcbiIsIHRvdGxlbiA+PiAyMCk7CiB9CiAjZW5kaWYKQEAgLTYyMCw3ICs2MjAsNyBAQAogCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WKSAmJiBkZWZpbmVkKENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVikgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUpCiBpbnQgb3ZlcndyaXRlX2NvbnNvbGUodm9pZCkKIHsKIAkvKiBwcmludGYoIm92ZXJ3cml0ZV9jb25zb2xlIGNhbGxlZFxuIik7ICovCkBAIC02NDUsMTAgKzY0NSwxMCBAQAogCiAjaWYgQ09ORklHX05FVFRBMl9WRVJTSU9OID09IDIKIAkvKiBhc3NlcnQgcGVyaXBoZXJhbCByZXNldCAqLwotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+X0JXKDEyKTsKKwkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH5fQlcoMTIpOwogCWZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQogCQl1ZGVsYXkoMTAwMCk7Ci0JKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9ICBfQlcoMTIpOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gIF9CVygxMik7CiAjZW5kaWYKIAlyZXNldF9waHlzKCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL25ldHZpYS9mbGFzaC5jIGIvYm9hcmQvbmV0dmlhL2ZsYXNoLmMKaW5kZXggNjQ3ZjU5NC4uOTg0NzlhNSAxMDA2NDQKLS0tIGEvYm9hcmQvbmV0dmlhL2ZsYXNoLmMKKysrIGIvYm9hcmQvbmV0dmlhL2ZsYXNoLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtMzgsMTMgKzM4LDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKQorCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKQogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAogCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKSBGTEFTSF9CQVNFMF9QUkVMSU0sICZmbGFzaF9pbmZvWzBdKTsKQEAgLTU0LDE3ICs1NCwxNyBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgKG1lbWN0bC0+bWVtY19icjAgJiB+KEJSX0JBX01TSykpOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IChtZW1jdGwtPm1lbWNfYnIwICYgfihCUl9CQV9NU0spKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikgQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyhDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULApAQCAtNDI3LDcgKzQyNyw3IEBACiAJbGFzdCA9IHN0YXJ0OwogCWFkZHIgPSAodnVfY2hhciAqKSAoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHg4MCkgIT0gMHg4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MDAsNyArNTAwLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAJd2hpbGUgKCgqKCh2dV9jaGFyICopIGRlc3QpICYgMHg4MCkgIT0gKGRhdGEgJiAweDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvbmV0dmlhL25ldHZpYS5jIGIvYm9hcmQvbmV0dmlhL25ldHZpYS5jCmluZGV4IDQxNDBiYWMuLjBiMDMyYzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL25ldHZpYS9uZXR2aWEuYworKysgYi9ib2FyZC9uZXR2aWEvbmV0dmlhLmMKQEAgLTI0Nyw3ICsyNDcsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOwogCkBAIC0yNTYsMTcgKzI1NiwxNyBAQAogCS8qCiAJICogUHJlbGltaW5hcnkgcHJlc2NhbGVyIGZvciByZWZyZXNoCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS184SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS184SzsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSBNQVJfU0RSQU1fSU5JVDsJLyogMzItYml0IGFkZHJlc3MgdG8gYmUgb3V0cHV0IG9uIHRoZSBhZGRyZXNzIGJ1cyBpZiBBTVggPSAwYjExICovCiAKICAgICAvKgogICAgICAqIE1hcCBjb250cm9sbGVyIGJhbmsgMyB0byB0aGUgU0RSQU0gYmFuayBhdCBwcmVsaW1pbmFyeSBhZGRyZXNzLgogICAgICAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl85Q09MICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl85Q09MICYgfk1BTVJfUFRBRTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAogCXVkZWxheSgyMDApOwogCkBAIC0yODIsNyArMjgyLDcgQEAKIAogCXVkZWxheSgxMDAwKTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOUNPTDsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl85Q09MOwogCiAJc2l6ZSA9IFNEUkFNX01BWF9TSVpFOwogCkBAIC0zNTgsNyArMzU4LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZih2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcG9ydCA9ICZpbW1hcC0+aW1faW9wb3J0OwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG0gPSAmaW1tYXAtPmltX2NwbTsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CkBAIC00MjEsMTEgKzQyMSwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kX2xlZ2FjeS5oPgogCiBleHRlcm4gdWxvbmcgbmFuZF9wcm9iZSh1bG9uZyBwaHlzYWRyKTsKLWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ0ZHX01BWF9OQU5EX0RFVklDRV07CitleHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIAogdm9pZCBuYW5kX2luaXQodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIHRvdGxlbiA9IG5hbmRfcHJvYmUoQ0ZHX05BTkRfQkFTRSk7CisJdW5zaWduZWQgbG9uZyB0b3RsZW4gPSBuYW5kX3Byb2JlKENPTkZJR19TWVNfTkFORF9CQVNFKTsKIAogCXByaW50ZiAoIiU0bHUgTUJcbiIsIHRvdGxlbiA+PiAyMCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9uczk3NTBkZXYvZmxhc2guYyBiL2JvYXJkL25zOTc1MGRldi9mbGFzaC5jCmluZGV4IDJiNjJiZWYuLjViNTZiOTggMTAwNjQ0Ci0tLSBhL2JvYXJkL25zOTc1MGRldi9mbGFzaC5jCisrKyBiL2JvYXJkL25zOTc1MGRldi9mbGFzaC5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI3VuZGVmIEZMQVNIX1BPUlRfV0lEVEgzMgpAQCAtODgsNyArODgsNyBAQAogewogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC0xMDQsOCArMTA0LDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkJQ09ORklHX0VOVl9BRERSLApAQCAtMjI3LDEwICsyMjcsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzIyLDcgKzMyMiw3IEBACiAJCQkJKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCQkoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkJQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CkBAIC00NTgsNyArNDU4LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9ueDgyMy9mbGFzaC5jIGIvYm9hcmQvbng4MjMvZmxhc2guYwppbmRleCA1ODE5MjVlLi4xOTRkODQxIDEwMDY0NAotLS0gYS9ib2FyZC9ueDgyMy9mbGFzaC5jCisrKyBiL2JvYXJkL254ODIzL2ZsYXNoLmMKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiBleHRlcm4gdV9sb25nICAqbXlfc2VybnVtOwkJLyogZnJvbSBueDgyMy5jICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYzLDEzICs2MywxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjA7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTgyLDE4ICs4MiwxOCBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJLyogUmUtZG8gc2l6aW5nIHRvIGdldCBmdWxsIGNvcnJlY3QgaW5mbyAqLwotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgoRlBXICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgQ0ZHX0ZMQVNIX0JBU0UsCi0JCQkgICAgQ0ZHX0ZMQVNIX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQkgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZV9iMDsKQEAgLTIyMCwxMCArMjIwLDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpMHgwMEZGMDBGRjsgICAgICAvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMjk0LDcgKzI5NCw3IEBACiAJCQl1ZGVsYXkgKDEwMDApOwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAoRlBXKTB4MDBCMDAwQjA7IC8qIHN1c3BlbmQgZXJhc2UJICAqLwogCQkJCQkqYWRkciA9IChGUFcpMHgwMEZGMDBGRjsgLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC0zNDMsOSArMzQzLDkgQEAKICNlbmRpZgogCiAJLyogc2F2ZSBzZXJudW0gaWYgbmVlZGVkICovCi0JaWYgKGFkZHIgPj0gQ0ZHX0ZMQVNIX1NOX1NFQ1RPUiAmJiBhZGRyIDwgQ0ZHX0ZMQVNIX1NOX0JBU0UpCisJaWYgKGFkZHIgPj0gQ09ORklHX1NZU19GTEFTSF9TTl9TRUNUT1IgJiYgYWRkciA8IENPTkZJR19TWVNfRkxBU0hfU05fQkFTRSkKIAl7Ci0JCXVfbG9uZyBkZXN0ID0gQ0ZHX0ZMQVNIX1NOX0JBU0U7CisJCXVfbG9uZyBkZXN0ID0gQ09ORklHX1NZU19GTEFTSF9TTl9CQVNFOwogCQl1X3Nob3J0ICpzbiA9ICh1X3Nob3J0ICopbXlfc2VybnVtOwogCiAJCXByaW50ZigiKHNhdmluZyBzZXJudW0pIik7CkBAIC00NTIsNyArNDUyLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKTB4MDA4MDAwODApICE9IChGUFcpMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL254ODIzL254ODIzLmMgYi9ib2FyZC9ueDgyMy9ueDgyMy5jCmluZGV4IDE4ODQwZmYuLmRmOWFhYWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL254ODIzL254ODIzLmMKKysrIGIvYm9hcmQvbng4MjMvbng4MjMuYwpAQCAtMTU5LDcgKzE1OSw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwLCBzaXplX2IxLCBzaXplOCwgc2l6ZTk7CiAKQEAgLTE3MCwyMiArMTcwLDIyIEBACiAJICogVXAgdG8gMiBCYW5rcyBvZiA2NE1iaXQgeCAyIGRldmljZXMKIAkgKiBJbml0aWFsIGJ1aWxkcyBvbmx5IGhhdmUgMQogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8xQktfNEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8xQktfNEs7CiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIFNEUkFNIGJhbmsgMAogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KIAl1ZGVsYXkgKDIwMCk7CiAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIFNEUkFNIGJhbmsgMQogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIyID0gQ0ZHX0JSMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogCiAJLyoKIAkgKiBQZXJmb3JtIFNEUkFNIGluaXRpYWxpenNhdGlvbiBzZXF1ZW5jZQpAQCAtMjA5LDcgKzIwOSw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKQEAgLTIxOSw3ICsyMTksNyBAQAogCSAqCiAJICogdHJ5IDggY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTFfUFJFTElNLAorCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTFfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJdWRlbGF5ICgxMDAwKTsKQEAgLTIyNyw3ICsyMjcsNyBAQAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTFfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTFfUFJFTElNLAogCQkJICAgU0RSQU1fTUFYX1NJWkUpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsJLyogbGVhdmUgY29uZmlndXJhdGlvbiBhdCA5IGNvbHVtbnMgICAgICovCkBAIC0yMzUsNyArMjM1LDcgQEAKIC8qCWRlYnVnICgiU0RSQU0gQmFuayAwIGluIDkgY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAJfSBlbHNlIHsJCS8qIGJhY2sgdG8gOCBjb2x1bW5zICAgICAgICAgICAgICAgICAgICAqLwogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9CkBAIC0yNTgsNyArMjU4LDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSAmJiAoc2l6ZV9iMSA8IDB4MDIwMDAwMDApKSB7CiAJCS8qIHJlZHVjZSB0byAxNS42IHVzICg2Mi40IHVzIC8gcXVhZCkgKi8KLQkJbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzJCS180SzsKKwkJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAJCXVkZWxheSAoMTAwMCk7CiAJfQogCkBAIC0yNjgsOSArMjY4LDkgQEAKIAlpZiAoc2l6ZV9iMSA+IHNpemVfYjApIHsJLyogU0RSQU0gQmFuayAxIGlzIGJpZ2dlciAtIG1hcCBmaXJzdCAgICovCiAKIAkJbWVtY3RsLT5tZW1jX29yMiA9Ci0JCQkoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJCSgoLXNpemVfYjEpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJbWVtY3RsLT5tZW1jX2JyMiA9Ci0JCQkoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJCWlmIChzaXplX2IwID4gMCkgewogCQkJLyoKQEAgLTI3OCw5ICsyNzgsOSBAQAogCQkJICovCiAJCQltZW1jdGwtPm1lbWNfb3IxID0KIAkJCQkoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwKLQkJCQlDRkdfT1JfVElNSU5HX1NEUkFNOworCQkJCUNPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCQkJbWVtY3RsLT5tZW1jX2JyMSA9Ci0JCQkJKChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwKKwkJCQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwKIAkJCQkgQlJfVikKIAkJCQkrIHNpemVfYjE7CiAJCX0gZWxzZSB7CkBAIC0yOTUsMTYgKzI5NSwxNiBAQAogCiAJCQkvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwogCQkJcmVnID0gbWVtY3RsLT5tZW1jX21wdHByOwotCQkJcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ0ZHX01QVFBSXzFCS184SyAvIF80SyAqLworCQkJcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAkJCW1lbWN0bC0+bWVtY19tcHRwciA9IHJlZzsKIAkJfQogCiAJfSBlbHNlIHsJCS8qIFNEUkFNIEJhbmsgMCBpcyBiaWdnZXIgLSBtYXAgZmlyc3QgICAqLwogCiAJCW1lbWN0bC0+bWVtY19vcjEgPQotCQkJKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJCQkoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CiAJCW1lbWN0bC0+bWVtY19icjEgPQotCQkJKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCQlpZiAoc2l6ZV9iMSA+IDApIHsKIAkJCS8qCkBAIC0zMTIsOSArMzEyLDkgQEAKIAkJCSAqLwogCQkJbWVtY3RsLT5tZW1jX29yMiA9CiAJCQkJKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8Ci0JCQkJQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJCQlDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKIAkJCW1lbWN0bC0+bWVtY19icjIgPQotCQkJCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8CisJCQkJKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8CiAJCQkJIEJSX1YpCiAJCQkJKyBzaXplX2IwOwogCQl9IGVsc2UgewpAQCAtMzI5LDcgKzMyOSw3IEBACiAKIAkJCS8qIGFkanVzdCByZWZyZXNoIHJhdGUgZGVwZW5kaW5nIG9uIFNEUkFNIHR5cGUsIG9uZSBiYW5rICovCiAJCQlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JCQlyZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisJCQlyZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDT05GSUdfU1lTX01QVFBSXzFCS184SyAvIF80SyAqLwogCQkJbWVtY3RsLT5tZW1jX21wdHByID0gcmVnOwogCQl9CiAJfQpAQCAtMzUyLDcgKzM1Miw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfbWFtciA9IG1hbXJfdmFsdWU7CkBAIC0zODcsNyArMzg3LDcgQEAKIAliZF90ICpiZCA9IGdkLT5iZDsKIAogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJYmQtPmJpX3Nlcm51bVtpXSA9ICoodV9jaGFyICopIChDRkdfRkxBU0hfU05fQkFTRSArIGkpOworCQliZC0+Ymlfc2VybnVtW2ldID0gKih1X2NoYXIgKikgKENPTkZJR19TWVNfRkxBU0hfU05fQkFTRSArIGkpOwogCX0KIAliZC0+YmlfZW5ldGFkZHJbMF0gPSAweDEwOwogCWJkLT5iaV9lbmV0YWRkclsxXSA9IDB4MjA7CmRpZmYgLS1naXQgYS9ib2FyZC9vMmRudC9mbGFzaC5jIGIvYm9hcmQvbzJkbnQvZmxhc2guYwppbmRleCAxY2Y3OGM3Li45ZjMwODgwIDEwMDY0NAotLS0gYS9ib2FyZC9vMmRudC9mbGFzaC5jCisrKyBiL2JvYXJkL28yZG50L2ZsYXNoLmMKQEAgLTU1LDcgKzU1LDcgQEAKICNkZWZpbmUgRkxBU0hfQ1lDTEUxCTB4MDU1NQogI2RlZmluZSBGTEFTSF9DWUNMRTIJMHgwMmFhCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTgyLDI1ICs4MiwyNSBAQAogCWZsYXNoX3ByZWluaXQoKTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJbWVtc2V0KCZmbGFzaF9pbmZvW2ldLCAwLCBzaXplb2YoZmxhc2hfaW5mb190KSk7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFF1ZXJ5IGZsYXNoIGNoaXAgKi8KIAlmbGFzaF9pbmZvWzBdLnNpemUgPQotCQlmbGFzaF9nZXRfc2l6ZSgoRlBXICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwkJZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCXNpemUgKz0gZmxhc2hfaW5mb1swXS5zaXplOwogCiAJLyogZ2V0IHRoZSBoL3cgYW5kIHMvdyBwcm90ZWN0aW9uIHN0YXR1cyBpbiBzeW5jICovCiAJZmxhc2hfc3luY19yZWFsX3Byb3RlY3QoJmZsYXNoX2luZm9bMF0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCUNGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKLQkJCWZsYXNoX2dldF9pbmZvKENGR19NT05JVE9SX0JBU0UpKTsKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCWZsYXNoX2dldF9pbmZvKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSk7CiAjZW5kaWYKIAogI2lmZGVmCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTEzNSw3ICsxMzUsNyBAQAogCWludCBpOwogCWZsYXNoX2luZm9fdCAqIGluZm87CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSArKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSArKykgewogCQlpbmZvID0gJiBmbGFzaF9pbmZvW2ldOwogCQlpZiAoaW5mby0+c2l6ZSAmJgogCQkJCWluZm8tPnN0YXJ0WzBdIDw9IGJhc2UgJiYKQEAgLTE0Myw3ICsxNDMsNyBAQAogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIChpID09IENGR19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbyk7CisJcmV0dXJuIChpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm8pOwogfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjgsNyArMzI4LDcgQEAKIAkJdWRlbGF5ICgxMDAwKTsKIAogCQl3aGlsZSAoKCphZGRyICYgKEZQVykgSU5URUxfRklOSVNIRUQpICE9IChGUFcpIElOVEVMX0ZJTklTSEVEKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkqYWRkciA9IChGUFcpIElOVEVMX1NVU1BFTkQ7Lyogc3VzcGVuZCBlcmFzZSAqLwogCQkJCWZsYXNoX3Jlc2V0KGluZm8pOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTMzNyw3ICszMzcsNyBAQAogCQkJfQogCiAJCQkvKiBzaG93IHRoYXQgd2UncmUgd2FpdGluZyAqLwotCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ0ZHX0haKSB7IC8qIGV2ZXJ5IHNlY29uZCAqLworCQkJaWYgKChnZXRfdGltZXIobGFzdCkpID4gQ09ORklHX1NZU19IWikgeyAvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CiAJCQl9CkBAIC00MjUsNyArNDI1LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgSU5URUxfRklOSVNIRUQpICE9IChGUFcpIElOVEVMX0ZJTklTSEVEKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgSU5URUxfUkVTRVQ7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC00NjQsNyArNDY0LDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKIAl3aGlsZSAoKCphZGRyICYgSU5URUxfRklOSVNIRUQpICE9IElOVEVMX0ZJTklTSEVEKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9VTkxPQ0tfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQlwcmludGYgKCJGbGFzaCBsb2NrIGJpdCBvcGVyYXRpb24gdGltZWQgb3V0XG4iKTsKIAkJCXJjID0gMTsKIAkJCWJyZWFrOwpAQCAtNDk0LDcgKzQ5NCw3IEBACiAJCQkJd2hpbGUgKCgqYWRkciAmIElOVEVMX0ZJTklTSEVEKSAhPQogCQkJCSAgICAgICBJTlRFTF9GSU5JU0hFRCkgewogCQkJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPgotCQkJCQkgICAgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUKSB7CisJCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQkJCQlwcmludGYgKCJGbGFzaCBsb2NrIGJpdCBvcGVyYXRpb24gdGltZWQgb3V0XG4iKTsKIAkJCQkJCXJjID0gMTsKIAkJCQkJCWJyZWFrOwpAQCAtNTUwLDcgKzU1MCw3IEBACiAJLyoKIAkgKiBmaXJzdCwgd2FpdCBmb3IgdGhlIFdTTSB0byBiZSBmaW5pc2hlZC4gVGhlIHJhdGlvbmFsZSBmb3IKIAkgKiB3YWl0aW5nIGZvciB0aGUgV1NNIHRvIGJlY29tZSBpZGxlIGZvciBhdCBtb3N0Ci0JICogQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgaXMgYXMgZm9sbG93cy4gVGhlIFdTTSBjYW4gYmUgYnVzeQorCSAqIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCBpcyBhcyBmb2xsb3dzLiBUaGUgV1NNIGNhbiBiZSBidXN5CiAJICogYmVjYXVzZSBvZjogKDEpIGVyYXNlLCAoMikgcHJvZ3JhbSBvciAoMykgbG9jayBiaXQKIAkgKiBjb25maWd1cmF0aW9uLiBTbyB3ZSBqdXN0IHdhaXQgZm9yIHRoZSBsb25nZXN0IHRpbWVvdXQgb2YKIAkgKiB0aGUgKDEpLSgzKSwgaS5lLiB0aGUgZXJhc2UgdGltZW91dC4KQEAgLTU2Myw3ICs1NjMsNyBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKmFkZHIgJiAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgIT0gKEZQVykgSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIElOVEVMX1JFU0VUOyAvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcHJpbnRmKCJXU00gYnVzeSB0b28gbG9uZywgY2FuJ3QgZ2V0IHByb3Qgc3RhdHVzXG4iKTsKIAkJCXJldHVybiAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvbzJkbnQvbzJkbnQuYyBiL2JvYXJkL28yZG50L28yZG50LmMKaW5kZXggMTlmYWY1Mi4uYzcyYTc0MSAxMDA2NDQKLS0tIGEvYm9hcmQvbzJkbnQvbzJkbnQuYworKysgYi9ib2FyZC9vMmRudC9vMmRudC5jCkBAIC02NSw3ICs2NSw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQpAQCAtODYsOSArODYsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xMTQsMTEgKzExNCwxMSBAQAogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwogCi0JdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCiAJaWYgKCFkcmFtc2l6ZSkgewogCQlzZHJhbV9zdGFydCgxKTsKLQkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCX0KIAogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CkBAIC0xNjQsMTAgKzE2NCwxMCBAQAogewogCWlmIChzaXplID09IDB4ODAwMDAwKSB7IC8qIGFkanVzdCBtYXBwaW5nICovCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUQVJUID0gKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPQotCQkJU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplKTsKKwkJCVNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB8IHNpemUpOwogCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUT1AgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0KLQkJCVNUT1BfUkVHKENGR19CT09UQ1NfU1RBUlQgfCBzaXplLCBzaXplKTsKKwkJCVNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUIHwgc2l6ZSwgc2l6ZSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9vbWFwMTYxMGlubi9mbGFzaC5jIGIvYm9hcmQvb21hcDE2MTBpbm4vZmxhc2guYwppbmRleCBkODhhOTgxLi4zNjIwMGFkIDEwMDY0NAotLS0gYS9ib2FyZC9vbWFwMTYxMGlubi9mbGFzaC5jCisrKyBiL2JvYXJkL29tYXAxNjEwaW5uL2ZsYXNoLmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwMjAwMDAJLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSAgICovCiAKIC8qIEJvYXJkIHN1cHBvcnQgZm9yIDEgb3IgMiBmbGFzaCBkZXZpY2VzICovCiAjdW5kZWYgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC05MCwxMSArOTAsMTEgQEAKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgotCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvW2ldKTsKLQkJCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9baV0pOworCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1tpXSk7CisJCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1tpXSk7CiAJCQkvKiB0byByZXNldCB0aGUgbG9jayBiaXQgKi8KIAkJCWZsYXNoX3VubG9jaygmZmxhc2hfaW5mb1tpXSk7CiAJCQlicmVhazsKQEAgLTEwOCw4ICsxMDgsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCQlDT05GSUdfRU5WX0FERFIsCkBAIC0xMjMsNyArMTIzLDcgQEAKIHZvaWQgZmxhc2hfdW5sb2NrKGZsYXNoX2luZm9fdCAqIGluZm8pCiB7CiAJaW50IGo7Ci0JZm9yIChqPTI7ajxDRkdfTUFYX0ZMQVNIX1NFQ1Q7aisrKXsKKwlmb3IgKGo9MjtqPENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7aisrKXsKIAlGUFdWICphZGRyID0gKEZQV1YgKikgKGluZm8tPnN0YXJ0W2pdKTsKIAlmbGFzaF91bnByb3RlY3Rfc2VjdG9ycyAoYWRkcik7CiAJKmFkZHIgPSAoRlBXKSAweDAwNTAwMDUwOy8qIGNsZWFyIHN0YXR1cyByZWdpc3RlciAqLwpAQCAtMjQ0LDEwICsyNDQsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzM5LDcgKzMzOSw3IEBACiAJCQkJKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCQkoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkJQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CkBAIC00NzQsNyArNDc0LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9vbWFwMjQyMGg0L21lbS5jIGIvYm9hcmQvb21hcDI0MjBoNC9tZW0uYwppbmRleCBhMzI5NWZkLi5jOGI0MTg2IDEwMDY0NAotLS0gYS9ib2FyZC9vbWFwMjQyMGg0L21lbS5jCisrKyBiL2JvYXJkL29tYXAyNDIwaDQvbWVtLmMKQEAgLTMyNyw3ICszMjcsNyBAQAogCV9fcmF3X3dyaXRlbCgweDEwLCBHUE1DX1NZU0NPTkZJRyk7CS8qIHNtYXJ0IGlkbGUgKi8KIAlfX3Jhd193cml0ZWwoMHgwLCBHUE1DX0lSUUVOQUJMRSk7CS8qIGlzcidzIHNvdXJjZXMgbWFza2VkICovCiAJX19yYXdfd3JpdGVsKHR2YWwsIEdQTUNfVElNRU9VVF9DT05UUk9MKTsvKiB0aW1lb3V0IGRpc2FibGUgKi8KLSNpZmRlZiBDRkdfTkFORF9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0JPT1QKIAlfX3Jhd193cml0ZWwoMHgwMDEsIEdQTUNfQ09ORklHKTsJLyogc2V0IG5XUCwgZGlzYWJsZSBsaW1pdGVkIGFkZHIgKi8KICNlbHNlCiAJX19yYXdfd3JpdGVsKDB4MTExLCBHUE1DX0NPTkZJRyk7CS8qIHNldCBuV1AsIGRpc2FibGUgbGltaXRlZCBhZGRyICovCkBAIC0zNDMsNyArMzQzLDcgQEAKIAlfX3Jhd193cml0ZWwoMHgwLCBHUE1DX0NPTkZJRzdfMCk7CS8qIGRpc2FibGUgY3VycmVudCBtYXAgKi8KIAlzZGVsYXkoMTAwMCk7CiAKLSNpZmRlZiBDRkdfTkFORF9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0JPT1QKIAlfX3Jhd193cml0ZWwoSDRfMjRYWF9HUE1DX0NPTkZJRzFfMHxtdHlwZXxtd2lkdGgsIEdQTUNfQ09ORklHMV8wKTsKICNlbHNlCiAJX19yYXdfd3JpdGVsKEg0XzI0WFhfR1BNQ19DT05GSUcxXzB8bXV4fG10eXBlfG13aWR0aCwgR1BNQ19DT05GSUcxXzApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvb21hcDI0MjBoNC9vbWFwMjQyMGg0LmMgYi9ib2FyZC9vbWFwMjQyMGg0L29tYXAyNDIwaDQuYwppbmRleCAwOWIwNzBkLi4wZmU5MzgwIDEwMDY0NAotLS0gYS9ib2FyZC9vbWFwMjQyMGg0L29tYXAyNDIwaDQuYworKysgYi9ib2FyZC9vbWFwMjQyMGg0L29tYXAyNDIwaDQuYwpAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpCiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+Ci1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiAjZW5kaWYKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CkBAIC0yMDEsNyArMjAxLDcgQEAKIAl1OCB2bW9kZV9vbiA9IDB4OEM7CiAJI2RlZmluZSBOT1RfRUFSTFkgMAogCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOyAvKiBuZWVkIHRoaXMgYSBiaXQgZWFybHkgKi8KKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsgLyogbmVlZCB0aGlzIGEgYml0IGVhcmx5ICovCiAKIAlidHlwZSA9IGdldF9ib2FyZF90eXBlKCk7CiAJbXR5cGUgPSBnZXRfbWVtX3R5cGUoKTsKQEAgLTI2Nyw3ICsyNjcsNyBAQAogCV9fcmF3X3dyaXRlbCh2LCBDTV9DTEtTRUwyX0NPUkUpOwogCV9fcmF3X3dyaXRlbCgweDEsIENNX0NMS1NFTF9XS1VQKTsKIAotI2lmZGVmIENGR19OUzE2NTUwCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwCiAJLyogRW5hYmxlIFVBUlQxIGNsb2NrICovCiAJZnVuY19jbGtzIHw9IEJJVDIxOwogCWlmX2Nsa3MgfD0gQklUMjE7CkBAIC04NTIsMTYgKzg1MiwxNiBAQAogewogICAgIGV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tdOwogCi0gICAgbmFuZF9wcm9iZShDRkdfTkFORF9BRERSKTsKKyAgICBuYW5kX3Byb2JlKENPTkZJR19TWVNfTkFORF9BRERSKTsKICAgICBpZiAobmFuZF9kZXZfZGVzY1swXS5DaGlwSUQgIT0gTkFORF9DaGlwSURfVU5LTk9XTikgewogCQlwcmludF9zaXplKG5hbmRfZGV2X2Rlc2NbMF0udG90bGVuLCAiXG4iKTsKICAgICB9CiAKLSNpZmRlZiBDRkdfSkZGUzJfTUVNX05BTkQKLSAgICBmbGFzaF9pbmZvW0NGR19KRkZTMl9GSVJTVF9CQU5LXS5mbGFzaF9pZCA9IG5hbmRfZGV2X2Rlc2NbMF0uaWQ7Ci0gICAgZmxhc2hfaW5mb1tDRkdfSkZGUzJfRklSU1RfQkFOS10uc2l6ZSA9IDEwMjQqMTAyNCoyOyAgICAgIC8qIG9ubHkgcmVhZCBrZXJuZWwgc2luZ2xlIG1lZyBwYXJ0aXRpb24gKi8KLQlmbGFzaF9pbmZvW0NGR19KRkZTMl9GSVJTVF9CQU5LXS5zZWN0b3JfY291bnQgPSAxMDI0OyAgIC8qIDEwMjQgYmxvY2tzIGluIDE2bWVnIGNoaXAgKHVzZSBsZXNzIGZvciByYXcvY29waWVkIHBhcnRpdGlvbikgKi8KLSAgICBmbGFzaF9pbmZvW0NGR19KRkZTMl9GSVJTVF9CQU5LXS5zdGFydFswXSA9IDB4ODAyMDAwMDA7IC8qID8sIHJhbSBmb3Igbm93LCBvcGVuIHF1ZXN0aW9uLCBjb3B5IHRvIFJBTSBvciBhZGFwdCBmb3IgTkFORCAqLworI2lmZGVmIENPTkZJR19TWVNfSkZGUzJfTUVNX05BTkQKKyAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOS10uZmxhc2hfaWQgPSBuYW5kX2Rldl9kZXNjWzBdLmlkOworICAgIGZsYXNoX2luZm9bQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LXS5zaXplID0gMTAyNCoxMDI0KjI7ICAgICAgLyogb25seSByZWFkIGtlcm5lbCBzaW5nbGUgbWVnIHBhcnRpdGlvbiAqLworCWZsYXNoX2luZm9bQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LXS5zZWN0b3JfY291bnQgPSAxMDI0OyAgIC8qIDEwMjQgYmxvY2tzIGluIDE2bWVnIGNoaXAgKHVzZSBsZXNzIGZvciByYXcvY29waWVkIHBhcnRpdGlvbikgKi8KKyAgICBmbGFzaF9pbmZvW0NPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOS10uc3RhcnRbMF0gPSAweDgwMjAwMDAwOyAvKiA/LCByYW0gZm9yIG5vdywgb3BlbiBxdWVzdGlvbiwgY29weSB0byBSQU0gb3IgYWRhcHQgZm9yIE5BTkQgKi8KICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9vbWFwNzMwcDIvZmxhc2guYyBiL2JvYXJkL29tYXA3MzBwMi9mbGFzaC5jCmluZGV4IDJiNjJiZWYuLjViNTZiOTggMTAwNjQ0Ci0tLSBhL2JvYXJkL29tYXA3MzBwMi9mbGFzaC5jCisrKyBiL2JvYXJkL29tYXA3MzBwMi9mbGFzaC5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI3VuZGVmIEZMQVNIX1BPUlRfV0lEVEgzMgpAQCAtODgsNyArODgsNyBAQAogewogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC0xMDQsOCArMTA0LDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAogCQkJQ09ORklHX0VOVl9BRERSLApAQCAtMjI3LDEwICsyMjcsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzIyLDcgKzMyMiw3IEBACiAJCQkJKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCQkoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkJQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CkBAIC00NTgsNyArNDU4LDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9veGMvZmxhc2guYyBiL2JvYXJkL294Yy9mbGFzaC5jCmluZGV4IDk0ZDI2NjAuLjM2ZTBmY2EgMTAwNjQ0Ci0tLSBhL2JvYXJkL294Yy9mbGFzaC5jCisrKyBiL2JvYXJkL294Yy9mbGFzaC5jCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICBpbnQgaTsKIAogICAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKyAgICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQogCkBAIC01OSwxNyArNTksMTcgQEAKICAgICAgKiBhbmQgdGhlIHNpemUgb2YgZmxhc2ggdXNpbmcgMHhGRjgwMDAwMCBhcyB0aGUgYmFzZSBhZGRyZXNzLAogICAgICAqIGFuZCB0aGVuIGNhbGwgZmxhc2hfZ2V0X3NpemUoKSBhZ2FpbiB0byBmaWxsIGZsYXNoX2luZm8uCiAgICAgICovCi0gICAgc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9jaGFyICopQ0ZHX0ZMQVNIX1BSRUxJTUJBU0UsICZmbGFzaF9pbmZvWzBdKTsKKyAgICBzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2NoYXIgKilDT05GSUdfU1lTX0ZMQVNIX1BSRUxJTUJBU0UsICZmbGFzaF9pbmZvWzBdKTsKICAgICBpZiAoc2l6ZSkKICAgICB7CiAJZmxhc2hfZ2V0X3NpemUoKHZ1X2NoYXIgKikoLXNpemUpLCAmZmxhc2hfaW5mb1swXSk7CiAgICAgfQogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX1BSRUxJTUJBU0UpCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfUFJFTElNQkFTRSkKICAgICAvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yODYsNyArMjg2LDcgQEAKICAgICBsYXN0ICA9IHN0YXJ0OwogICAgIGFkZHIgPSAodnVfY2hhciAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKICAgICB3aGlsZSAoKGFkZHJbMF0gJiAweDgwKSAhPSAweDgwKSB7Ci0JaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCSAgICBwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkgICAgcmV0dXJuIDE7CiAJfQpAQCAtMzYxLDcgKzM2MSw3IEBACiAgICAgLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKICAgICB3aGlsZSAoKCooKHZ1X2NoYXIgKilkZXN0KSAmIDB4ODApICE9IChkYXRhICYgMHg4MCkpIHsKLQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkgICAgcmV0dXJuICgxKTsKIAl9CiAgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvb3hjL294Yy5jIGIvYm9hcmQvb3hjL294Yy5jCmluZGV4IGViN2VlYjguLjFhMmJkZjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL294Yy9veGMuYworKysgYi9ib2FyZC9veGMvb3hjLmMKQEAgLTM3LDEzICszNywxMyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCWxvbmcgc2l6ZTsKIAlsb25nIG5ld19iYW5rMF9lbmQ7CiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcoTUVBUjEpOwpAQCAtOTIsMTQgKzkyLDE0IEBACiAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7Ci0JKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENGR19DUExEX1JFU0VUKSA9IDB4ODk7CisJKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfQ1BMRF9SRVNFVCkgPSAweDg5OwogCXJldHVybiAwOwogfQogCiAjaWZkZWYgQ09ORklHX1dBVENIRE9HCiB2b2lkIG94Y193ZHRfcmVzZXQodm9pZCkKIHsKLQkqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoQ0ZHX0NQTERfV0FUQ0hET0cpID0gMHhmZjsKKwkqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoQ09ORklHX1NZU19DUExEX1dBVENIRE9HKSA9IDB4ZmY7CiB9CiAKIHZvaWQgd2F0Y2hkb2dfcmVzZXQodm9pZCkKQEAgLTEzNSw3ICsxMzUsNyBAQAogCiB2b2lkIGJvYXJkX3Nob3dfYWN0aXZpdHkgKHVsb25nIHRpbWVzdGFtcCkKIHsKLQlpZiAoKHRpbWVzdGFtcCAlIChDRkdfSFogLyAxMCkpID09IDApCisJaWYgKCh0aW1lc3RhbXAgJSAoQ09ORklHX1NZU19IWiAvIDEwKSkgPT0gMCkKIAkJb3hjX3RvZ2dsZV9hY3RpdmVsZWQgKCk7CiB9CiAKQEAgLTE0OCw5ICsxNDgsOSBAQAogCiAJaWYgKChsZWR0b2dnbGUgPiAoMiAqIGFyZykpICYmIGxlZHN0YXR1cykgewogCQlsZWQgXj0gMHg4MDsKLQkJb3hjX2dldF9leHBhbmRlcihDRkdfSTJDX0VYUEFOREVSMF9BRERSLCAmdmFsKTsKKwkJb3hjX2dldF9leHBhbmRlcihDT05GSUdfU1lTX0kyQ19FWFBBTkRFUjBfQUREUiwgJnZhbCk7CiAJCXVkZWxheSgyMDApOwotCQlveGNfc2V0X2V4cGFuZGVyKENGR19JMkNfRVhQQU5ERVIwX0FERFIsICh2YWwgJiAweDdGKSB8IGxlZCk7CisJCW94Y19zZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsICh2YWwgJiAweDdGKSB8IGxlZCk7CiAJCWxlZHRvZ2dsZSA9IDA7CiAJfQogfQpAQCAtMTY1LDEzICsxNjUsMTMgQEAKIAogCWlmIChhcmcgPiAwICYmIGxlZHN0YXR1cykgewogCQlsZWRzdGF0dXMgPSAwOwotCQlveGNfZ2V0X2V4cGFuZGVyKENGR19JMkNfRVhQQU5ERVIwX0FERFIsICZ2YWwpOworCQlveGNfZ2V0X2V4cGFuZGVyKENPTkZJR19TWVNfSTJDX0VYUEFOREVSMF9BRERSLCAmdmFsKTsKIAkJdWRlbGF5KDIwMCk7Ci0JCW94Y19zZXRfZXhwYW5kZXIoQ0ZHX0kyQ19FWFBBTkRFUjBfQUREUiwgdmFsIHwgMHg4MCk7CisJCW94Y19zZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsIHZhbCB8IDB4ODApOwogCX0gZWxzZSBpZiAoYXJnIDwgMCkgewotCQlveGNfZ2V0X2V4cGFuZGVyKENGR19JMkNfRVhQQU5ERVIwX0FERFIsICZ2YWwpOworCQlveGNfZ2V0X2V4cGFuZGVyKENPTkZJR19TWVNfSTJDX0VYUEFOREVSMF9BRERSLCAmdmFsKTsKIAkJdWRlbGF5KDIwMCk7Ci0JCW94Y19zZXRfZXhwYW5kZXIoQ0ZHX0kyQ19FWFBBTkRFUjBfQUREUiwgdmFsICYgMHg3Rik7CisJCW94Y19zZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsIHZhbCAmIDB4N0YpOwogCQlsZWRzdGF0dXMgPSAxOwogCX0KIH0KQEAgLTE4MCwyMSArMTgwLDIxIEBACiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7CiAJLyogY2hlY2sgd2hldGhlciB0aGUgaTJjIGV4cGFuZGVyICMwIGlzIGFjY2Vzc2libGUgKi8KLQlpZiAoIW94Y19zZXRfZXhwYW5kZXIoQ0ZHX0kyQ19FWFBBTkRFUjBfQUREUiwgMHg3RikpIHsKKwlpZiAoIW94Y19zZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsIDB4N0YpKSB7CiAJCXVkZWxheSgyMDApOwogCQlleHBhbmRlcjBhbGl2ZSA9IDE7CiAJfQogCi0jaWZkZWYgQ0ZHX09YQ19HRU5FUkFURV9JUAorI2lmZGVmIENPTkZJR19TWVNfT1hDX0dFTkVSQVRFX0lQCiAJewogCQljaGFyIHN0clszMl07Ci0JCXVuc2lnbmVkIGxvbmcgaXAgPSBDRkdfT1hDX0lQTUFTSzsKKwkJdW5zaWduZWQgbG9uZyBpcCA9IENPTkZJR19TWVNfT1hDX0lQTUFTSzsKIAkJYmRfdCAqYmQgPSBnZC0+YmQ7CiAKIAkJaWYgKGV4cGFuZGVyMGFsaXZlKSB7CiAJCQl1bnNpZ25lZCBjaGFyIHZhbDsKIAotCQkJaWYgKCFveGNfZ2V0X2V4cGFuZGVyKENGR19JMkNfRVhQQU5ERVIwX0FERFIsICZ2YWwpKSB7CisJCQlpZiAoIW94Y19nZXRfZXhwYW5kZXIoQ09ORklHX1NZU19JMkNfRVhQQU5ERVIwX0FERFIsICZ2YWwpKSB7CiAJCQkJaXAgPSAoaXAgJiAweGZmZmZmZjAwKSB8ICgodmFsICYgMHg3YykgPj4gMik7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3BiMXgwMC9mbGFzaC5jIGIvYm9hcmQvcGIxeDAwL2ZsYXNoLmMKaW5kZXggM2NmMjllOC4uYTJmZWQxZCAxMDA2NDQKLS0tIGEvYm9hcmQvcGIxeDAwL2ZsYXNoLmMKKysrIGIvYm9hcmQvcGIxeDAwL2ZsYXNoLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogZmxhc2hfaW5pdCgpCmRpZmYgLS1naXQgYS9ib2FyZC9wYjF4MDAvcGIxeDAwLmMgYi9ib2FyZC9wYjF4MDAvcGIxeDAwLmMKaW5kZXggODJlMjYxMy4uNzczZTQ0NiAxMDA2NDQKLS0tIGEvYm9hcmQvcGIxeDAwL3BiMXgwMC5jCisrKyBiL2JvYXJkL3BiMXgwMC9wYjF4MDAuYwpAQCAtMTAwLDE5ICsxMDAsMTkgQEAKIAkvKiBXZSBkb250IG5lZWQgdGhlZXNlIHVubGVzcyB3ZSBydW4gd2hvbGUgcGNtY2lhIHBhY2thZ2UgKi8KIAl3cml0ZV9vbmVfdGxiKDIwLCAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAvKiBQYWdlbWFzaywgMTYgTUIgcGFnZXMgKi8KLQkJICAgICAgQ0ZHX1BDTUNJQV9JT19CQVNFLCAvKiBIaSAqLworCQkgICAgICBDT05GSUdfU1lTX1BDTUNJQV9JT19CQVNFLCAvKiBIaSAqLwogCQkgICAgICAweDNDMDAwMDE3LCAgICAgICAgIC8qIExvMCAqLwogCQkgICAgICAweDNDMjAwMDE3KTsgICAgICAgIC8qIExvMSAqLwogCiAJd3JpdGVfb25lX3RsYigyMSwgICAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAgIC8qIFBhZ2VtYXNrLCAxNiBNQiBwYWdlcyAqLwotCQkgICAgICBDRkdfUENNQ0lBX0FUVFJfQkFTRSwgLyogSGkgKi8KKwkJICAgICAgQ09ORklHX1NZU19QQ01DSUFfQVRUUl9CQVNFLCAvKiBIaSAqLwogCQkgICAgICAweDNEMDAwMDE3LCAgICAgICAgICAgLyogTG8wICovCiAJCSAgICAgIDB4M0QyMDAwMTcpOyAgICAgICAgICAvKiBMbzEgKi8KICNlbmRpZgkvKiAwICovCiAJd3JpdGVfb25lX3RsYigyMiwgICAgICAgICAgICAgICAgICAgLyogaW5kZXggKi8KIAkJICAgICAgMHgwMWZmZTAwMCwgICAgICAgICAgIC8qIFBhZ2VtYXNrLCAxNiBNQiBwYWdlcyAqLwotCQkgICAgICBDRkdfUENNQ0lBX01FTV9BRERSLCAgLyogSGkgKi8KKwkJICAgICAgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIsICAvKiBIaSAqLwogCQkgICAgICAweDNFMDAwMDE3LCAgICAgICAgICAgLyogTG8wICovCiAJCSAgICAgIDB4M0UyMDAwMTcpOyAgICAgICAgICAvKiBMbzEgKi8KICNlbmRpZgkvKiBDT05GSUdfSURFX1BDTUNJQSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvcGNpcHBjMi9jcGM3MTBfaW5pdF9yYW0uYyBiL2JvYXJkL3BjaXBwYzIvY3BjNzEwX2luaXRfcmFtLmMKaW5kZXggMTcxZjA2Yy4uODk0NTM1MSAxMDA2NDQKLS0tIGEvYm9hcmQvcGNpcHBjMi9jcGM3MTBfaW5pdF9yYW0uYworKysgYi9ib2FyZC9wY2lwcGMyL2NwYzcxMF9pbml0X3JhbS5jCkBAIC04MSw3ICs4MSw3IEBACiAJdW5zaWduZWQgbG9uZyBiYW5rX3NpemU7CiAJdTMyIG1jZXI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogQ2xlYXIgbWVtb3J5IGJhbmtzCiAJICovCiAJb3V0MzIgKFJFRyAoU0RSQU0wLCBNQ0VSMCksIDApOwpAQCAtMTA3LDE0ICsxMDcsMTQgQEAKIAkJaGFuZyAoKTsKIAl9CiAJbWVtc2l6ZSArPSBiYW5rX3NpemU7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCS8qIEVuYWJsZSBiYW5rLCB6ZXJvIHN0YXJ0CiAJICovCiAJb3V0MzIgKFJFRyAoU0RSQU0wLCBNQ0VSMCksIG1jZXIgfCAweDgwMDAwMDAwKTsKIAlpb2JhcnJpZXJfcncgKCk7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiBFbmFibGUgbWVtb3J5CiAJICovCiAJb3V0MzIgKFJFRyAoU0RSQU0wLCBNQ0NSKSwgaW4zMiAoUkVHIChTRFJBTTAsIE1DQ1IpKSB8IDB4ODAwMDAwMDApOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcGNpcHBjMi9mbGFzaC5jIGIvYm9hcmQvcGNpcHBjMi9mbGFzaC5jCmluZGV4IGE5MTVmYmUuLmVjNjA0ZTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjaXBwYzIvZmxhc2guYworKysgYi9ib2FyZC9wY2lwcGMyL2ZsYXNoLmMKQEAgLTM5LDcgKzM5LDcgQEAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplICh1bG9uZyBhZGRyLCBmbGFzaF9pbmZvX3QgKmluZm8pOwogc3RhdGljIGludCBmbGFzaF9nZXRfb2Zmc2V0cyAodWxvbmcgYmFzZSwgZmxhc2hfaW5mb190ICppbmZvKTsKQEAgLTUyLDI1ICs1MiwyNSBAQAogCXVuc2lnbmVkIGxvbmcgZmxhc2hfc2l6ZSA9IDA7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAwOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSAwOwogCX0KIAotCURFQlVHRigiXG4jIyBHZXQgZmxhc2ggc2l6ZSBAIDB4JTA4eFxuIiwgQ0ZHX0ZMQVNIX0JBU0UpOworCURFQlVHRigiXG4jIyBHZXQgZmxhc2ggc2l6ZSBAIDB4JTA4eFxuIiwgQ09ORklHX1NZU19GTEFTSF9CQVNFKTsKIAotCWZsYXNoX3NpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ0ZHX0ZMQVNIX0JBU0UsIGZsYXNoX2luZm8pOworCWZsYXNoX3NpemUgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBmbGFzaF9pbmZvKTsKIAogCURFQlVHRigiIyMgRmxhc2ggYmFuayBzaXplOiAlMDhseFxuIiwgZmxhc2hfc2l6ZSk7CiAKIAlpZiAoZmxhc2hfc2l6ZSkgewotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UgJiYgXAotICAgIENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSArIENGR19GTEFTSF9NQVhfU0laRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSAmJiBcCisgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX01BWF9TSVpFCiAJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yMzEsMTAgKzIzMSwxMCBAQAogCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlpZiAoISBmbGFzaF9nZXRfb2Zmc2V0cyAoYWRkciwgaW5mbykpIHsKQEAgLTM1NiwxMCArMzU2LDEwIEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gaW5mby0+c3RhcnRbbF9zZWN0XTsKIAotCURFQlVHRiAoIlN0YXJ0IGVyYXNlIHRpbWVvdXQ6ICVkXG4iLCBDRkdfRkxBU0hfRVJBU0VfVE9VVCk7CisJREVCVUdGICgiU3RhcnQgZXJhc2UgdGltZW91dDogJWRcbiIsIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCk7CiAKIAl3aGlsZSAoKGluOChhZGRyKSAmIDB4ODApICE9IDB4ODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJZmxhc2hfcmVzZXQgKGluZm8tPnN0YXJ0WzBdKTsKIAkJCXJldHVybiAxOwpAQCAtNDg4LDcgKzQ4OCw3IEBACiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCQl3aGlsZSAoKGluOChkZXN0K2kpICYgMHg4MCkgIT0gKGRhdGFfY2hbaV0gJiAweDgwKSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlmbGFzaF9yZXNldCAoYWRkcik7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3BjaXBwYzIvaTJjLmMgYi9ib2FyZC9wY2lwcGMyL2kyYy5jCmluZGV4IDM2YjFkMGYuLmFiNTI1NjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjaXBwYzIvaTJjLmMKKysrIGIvYm9hcmQvcGNpcHBjMi9pMmMuYwpAQCAtODUsNyArODUsNyBAQAogewogICBpbnQJCQl2OwogCi0gIGFzbSB2b2xhdGlsZSgibXRkZWMgJTAiIDogOiAiciIgKHRpbWUgKiAoKENGR19CVVNfQ0xLIC8gNCkgLyAxMDAwMDAwKSkpOworICBhc20gdm9sYXRpbGUoIm10ZGVjICUwIiA6IDogInIiICh0aW1lICogKChDT05GSUdfU1lTX0JVU19DTEsgLyA0KSAvIDEwMDAwMDApKSk7CiAKICAgZG8KICAgewpkaWZmIC0tZ2l0IGEvYm9hcmQvcGNpcHBjMi9zY29uc29sZS5jIGIvYm9hcmQvcGNpcHBjMi9zY29uc29sZS5jCmluZGV4IDNiMTkwNjkuLjZlZjM4ZjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjaXBwYzIvc2NvbnNvbGUuYworKysgYi9ib2FyZC9wY2lwcGMyL3Njb25zb2xlLmMKQEAgLTQxLDcgKzQxLDcgQEAKIAlzYi0+cG9zICA9IDA7CiAJc2ItPnNpemUgPSAwOwogCXNiLT5iYXVkID0gZ2QtPmJhdWRyYXRlOwotCXNiLT5tYXhfc2l6ZSA9IENGR19TQ09OU09MRV9TSVpFIC0gc2l6ZW9mIChzY29uc29sZV9idWZmZXJfdCk7CisJc2ItPm1heF9zaXplID0gQ09ORklHX1NZU19TQ09OU09MRV9TSVpFIC0gc2l6ZW9mIChzY29uc29sZV9idWZmZXJfdCk7CiAKIAlyZXR1cm4gKDApOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvcGNpcHBjMi9zY29uc29sZS5oIGIvYm9hcmQvcGNpcHBjMi9zY29uc29sZS5oCmluZGV4IDVkODUwYTUuLmZmMGNjYWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjaXBwYzIvc2NvbnNvbGUuaAorKysgYi9ib2FyZC9wY2lwcGMyL3Njb25zb2xlLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAljaGFyIGRhdGFbMV07CiB9IHNjb25zb2xlX2J1ZmZlcl90OwogCi0jZGVmaW5lIFNDT05TT0xFX0JVRkZFUgkJKChzY29uc29sZV9idWZmZXJfdCAqKSBDRkdfU0NPTlNPTEVfQUREUikKKyNkZWZpbmUgU0NPTlNPTEVfQlVGRkVSCQkoKHNjb25zb2xlX2J1ZmZlcl90ICopIENPTkZJR19TWVNfU0NPTlNPTEVfQUREUikKIAogZXh0ZXJuIHZvaWQJKCogc2NvbnNvbGVfcHV0YykJKGNoYXIpOwogZXh0ZXJuIHZvaWQJKCogc2NvbnNvbGVfcHV0cykJKGNvbnN0IGNoYXIgKik7CmRpZmYgLS1naXQgYS9ib2FyZC9wY3M0NDBlcC9jb25maWcubWsgYi9ib2FyZC9wY3M0NDBlcC9jb25maWcubWsKaW5kZXggNGQ5NDJlYi4uMDg0NGU5OCAxMDA2NDQKLS0tIGEvYm9hcmQvcGNzNDQwZXAvY29uZmlnLm1rCisrKyBiL2JvYXJkL3BjczQ0MGVwL2NvbmZpZy5tawpAQCAtNDMsNSArNDMsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3BjczQ0MGVwL2ZsYXNoLmMgYi9ib2FyZC9wY3M0NDBlcC9mbGFzaC5jCmluZGV4IGM1YTYyZTIuLmY5MGEyMjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjczQ0MGVwL2ZsYXNoLmMKKysrIGIvYm9hcmQvcGNzNDQwZXAvZmxhc2guYwpAQCAtMjQsMTMgKzI0LDEzIEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi0jaWZuZGVmIENGR19GTEFTSF9SRUFEMAotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAjZW5kaWYKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qCiAgKiBGdW5jdGlvbnMKQEAgLTQ1LDcgKzQ1LDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjAsIGJhc2VfYjE7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIApAQCAtMTMwLDcgKzEzMCw3IEBACiAKIAlwcmludGYgKCIgIFNlY3RvciBTdGFydCBBZGRyZXNzZXM6Iik7CiAJZm9yIChpPTA7IGk8aW5mby0+c2VjdG9yX2NvdW50OyArK2kpIHsKLSNpZmRlZiBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCQkvKgogCQkgKiBDaGVjayBpZiB3aG9sZSBzZWN0b3IgaXMgZXJhc2VkCiAJCSAqLwpAQCAtMTc1LDM0ICsxNzUsMzQgQEAKIHsKIAlzaG9ydCBpOwogCXNob3J0IG47Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKWFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWFkZHI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopYWRkcjsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA5MDAwOTA7CiAKLQl2YWx1ZSA9IGFkZHIyW0NGR19GTEFTSF9SRUFEMF07CisJdmFsdWUgPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQwXTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlGVUpfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpRlVKX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9GVUo7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fU1NUOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNUTV9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTVE1fTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NUTTsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlFWENFTF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlFWENFTF9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRVhDRUw7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpTVhfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpTVhfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX01YOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMjEyLDk5ICsyMTIsOTkgQEAKIAkJcmV0dXJuICgwKTsJCQkvKiBubyBvciB1bmtub3duIGZsYXNoCSovCiAJfQogCi0JdmFsdWUgPSBhZGRyMltDRkdfRkxBU0hfUkVBRDFdOwkJLyogZGV2aWNlIElECSovCisJdmFsdWUgPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQxXTsJCS8qIGRldmljZSBJRAkqLwogCiAJc3dpdGNoICh2YWx1ZSkgewotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWNDAwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTQwMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDExOwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDAuNSBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjQwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMC41IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjA0MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMDQwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0wNDA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDg7CiAJCWluZm8tPnNpemUgPSAweDAwODAwMDA7CQkvKiA9PiAwLjUgTUIJKi8KIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTVE1fSURfTTI5VzA0MEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1RNX0lEX00yOVcwNDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gODsKIAkJaW5mby0+c2l6ZSA9IDB4MDA4MDAwMDsgLyogPT4gMCw1IE1CICovCiAJCWJyZWFrOwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMlQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjJUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMkI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIyQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU1ETDMyMkI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDQgTUIJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0RMMzIzVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTURMMzIzVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNzE7CiAJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM0I6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjNCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjAyMDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYwMjA6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NTVDAyMDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gNjQ7CiAJCWluZm8tPnNpemUgPSAweDAwMDQwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMjU2IGtCCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjA0MDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYwNDA6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX1NTVDA0MDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTI4OwogCQlpbmZvLT5zaXplID0gMHgwMDA4MDAwMDsKQEAgLTM4MSwxOSArMzgxLDE5IEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSAhPSBGTEFTSF9NQU5fQU1EKQogCQkJaW5mby0+cHJvdGVjdFtpXSA9IDA7CiAJCWVsc2UKLQkJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDRkdfRkxBU0hfUkVBRDJdICYgMTsKKwkJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMltDT05GSUdfU1lTX0ZMQVNIX1JFQUQyXSAmIDE7CiAJfQogCiAJLyoKIAkgKiBQcmV2ZW50IHdyaXRlcyB0byB1bmluaXRpYWxpemVkIEZMQVNILgogCSAqLwogCWlmIChpbmZvLT5mbGFzaF9pZCAhPSBGTEFTSF9VTktOT1dOKSB7Ci0JCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKLQkJKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOworCQkqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCX0KIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CkBAIC00MDIsOCArNDAyLDggQEAKIAogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAJdWxvbmcgc3RhcnQsIG5vdywgbGFzdDsKIApAQCAtNDM4LDE0ICs0MzgsMTQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdDw9c19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAkJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX1NTVCkgewotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MDsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KIAogCQkJCS8qIHJlLWVuYWJsZSBpbnRlcnJ1cHRzIGlmIG5lY2Vzc2FyeSAqLwogCQkJCWlmIChmbGFnKSB7CkBAIC00NTUsMjAgKzQ1NSwyMCBAQAogCiAJCQkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQkJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKLQkJCQl3aGlsZSAoKGFkZHIyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KLQkJCQkgICAgICAgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCQkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQkJCXdoaWxlICgoYWRkcjJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KKwkJCQkgICAgICAgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKKwkJCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpCiAJCQkJCQlyZXR1cm4gKDEpOwogCQkJCX0KIAkJCX0gZWxzZSB7CiAJCQkJaWYgKHNlY3QgPT0gc19maXJzdCkgewotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwkJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOworCQkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKIAkJCQl9Ci0JCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwMzAwMDMwOyAgLyogc2VjdG9yIGVyYXNlICovCisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDMwMDAzMDsgIC8qIHNlY3RvciBlcmFzZSAqLwogCQkJfQogCQkJbF9zZWN0ID0gc2VjdDsKIAkJfQpAQCAtNDg5LDkgKzQ4OSw5IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJbGFzdCAgPSBzdGFydDsKLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC01MDQsOCArNTA0LDggQEAKIAogRE9ORToKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKLQlhZGRyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKilpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAogCXByaW50ZiAoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTU4NSw5ICs1ODUsOSBAQAogICovCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilkZXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikmZGF0YTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopJmRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGZsYWc7CiAJaW50IGk7CkBAIC01OTksMTAgKzU5OSwxMCBAQAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCWZvciAoaT0wOyBpPDQvc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEEwMDBBMDsKKwlmb3IgKGk9MDsgaTw0L3NpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwQTAwMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTYxMiw5ICs2MTIsOSBAQAogCiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwotCQl3aGlsZSAoKGRlc3QyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KLQkJICAgICAgIChkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKQorCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CisJCSAgICAgICAoZGF0YTJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9wY3M0NDBlcC9pbml0LlMgYi9ib2FyZC9wY3M0NDBlcC9pbml0LlMKaW5kZXggMzZhNDBjOS4uMjVlN2Y0ZiAxMDA2NDQKLS0tIGEvYm9hcmQvcGNzNDQwZXAvaW5pdC5TCisrKyBiL2JvYXJkL3BjczQ0MGVwL2luaXQuUwpAQCAtOTMsMTAgKzkzLDEwIEBACiAJICogQk9PVF9DUyAoRkxBU0gpIG11c3QgYmUgZmlyc3QuIEJlZm9yZSByZWxvY2F0aW9uIFNBX0kgY2FuIGJlIG9mZiB0byB1c2UgdGhlCiAJICogc3BlZWQgdXAgYm9vdCBwcm9jZXNzLiBJdCBpcyBwYXRjaGVkIGFmdGVyIHJlbG9jYXRpb24gdG8gZW5hYmxlIFNBX0kKIAkgKi8KLQl0bGJlbnRyeSggQ0ZHX0JPT1RfQkFTRV9BRERSLCBTWl8yNTZNLCBDRkdfQk9PVF9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cvKnxTQV9JKi8pCisJdGxiZW50cnkoIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIFNaXzI1Nk0sIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cvKnxTQV9JKi8pCiAKIAkvKiBUTEItZW50cnkgZm9yIGluaXQtcmFtIGluIGRjYWNoZSAoU0FfSSBtdXN0IGJlIHR1cm5lZCBvZmYhKSAqLwotCXRsYmVudHJ5KCBDRkdfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDRkdfSU5JVF9SQU1fQUREUiwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRyApCisJdGxiZW50cnkoIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgU1pfNjRLLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQogCiAJLyoKIAkgKiBUTEIgZW50cmllcyBmb3IgU0RSQU0gYXJlIG5vdCBuZWVkZWQgb24gdGhpcyBwbGF0Zm9ybS4KQEAgLTEwNCwxNSArMTA0LDE1IEBACiAJICogcm91dGluZS4KIAkgKi8KIAotCXRsYmVudHJ5KCBDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIENGR19QQ0lfQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX0JBU0UsIFNaXzI1Nk0sIENPTkZJR19TWVNfUENJX0JBU0UsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCiAJLyogUENJICovCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFMSwgU1pfMjU2TSwgQ0ZHX1BDSV9NRU1CQVNFMSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTIsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTIsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UzLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UzLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMywgMCwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKIAkvKiBVU0IgMi4wIERldmljZSAqLwotCXRsYmVudHJ5KCBDRkdfVVNCX0RFVklDRSwgU1pfMUssIDB4NTAwMDAwMDAsIDAsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1VTQl9ERVZJQ0UsIFNaXzFLLCAweDUwMDAwMDAwLCAwLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL3BjczQ0MGVwL3BjczQ0MGVwLmMgYi9ib2FyZC9wY3M0NDBlcC9wY3M0NDBlcC5jCmluZGV4IDIxNDA1ODIuLjI3MTAwNWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BjczQ0MGVwL3BjczQ0MGVwLmMKKysrIGIvYm9hcmQvcGNzNDQwZXAvcGNzNDQwZXAuYwpAQCAtMzQsNyArMzQsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogdW5zaWduZWQgY2hhcglzaGExX2NoZWNrc3VtW1NIQTFfU1VNX0xFTl07CiAKQEAgLTE5Myw3ICsxOTMsNyBAQAogCS8qIHJlYWQgdGhlIE1BQ3MgZnJvbSBFRXByb20gKi8KIAlzdGF0dXNfbGVkX3NldCAoMCwgU1RBVFVTX0xFRF9PTik7CiAJc3RhdHVzX2xlZF9zZXQgKDEsIFNUQVRVU19MRURfT04pOwotCXJldCA9IGVlcHJvbV9yZWFkIChDRkdfSTJDX0VFUFJPTV9BRERSLCAwLCAodWNoYXIgKilidWYsIEVFUFJPTV9MRU4pOworCXJldCA9IGVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwgMCwgKHVjaGFyICopYnVmLCBFRVBST01fTEVOKTsKIAlpZiAocmV0ID09IDApIHsKIAkJY2hlY2tzdW1jcmMxNiA9IGN5Z19jcmMxNiAoKHVjaGFyICopYnVmLCBFRVBST01fTEVOIC0gMik7CiAJCS8qIGNoZWNrLCBpZiB0aGUgRUVwcm9tIGlzIHByb2dyYW1tZWQ6CkBAIC0zNzksOCArMzc5LDggQEAKIAl1bnNpZ25lZCBjaGFyIG9yZ1syMF07CiAJaW50CWksIGxlbiA9IENPTkZJR19TSEExX0xFTjsKIAotCW1lbWNweSAoKGNoYXIgKilDRkdfTE9BRF9BRERSLCAoY2hhciAqKUNPTkZJR19TSEExX1NUQVJULCBsZW4pOwotCWRhdGEgPSAodW5zaWduZWQgY2hhciAqKUNGR19MT0FEX0FERFI7CisJbWVtY3B5ICgoY2hhciAqKUNPTkZJR19TWVNfTE9BRF9BRERSLCAoY2hhciAqKUNPTkZJR19TSEExX1NUQVJULCBsZW4pOworCWRhdGEgPSAodW5zaWduZWQgY2hhciAqKUNPTkZJR19TWVNfTE9BRF9BRERSOwogCXB0cm9mZiA9ICZkYXRhW2xlbiArIFNIQTFfU1VNX1BPU107CiAKIAlmb3IgKGkgPSAwOyBpIDwgU0hBMV9TVU1fTEVOOyBpKyspIHsKQEAgLTQ4NSw3ICs0ODUsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzFdKTsKIApAQCAtNjE2LDcgKzYxNiw3IEBACiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTYzMCwxNCArNjMwLDE0IEBACiAJICB8IE1ha2UgdGhpcyByZWdpb24gbm9uLXByZWZldGNoYWJsZS4KIAkgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJb3V0MzJyKFBDSVgwX1BNTTBNQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgTWFzay9BdHRyaWJ1dGUgLSBkaXNhYmxlZCBiNCBzZXR0aW5nICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCi0Jb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMExBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTBQQ0lMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTBQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0wTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsIGFuZCBlbmFibGUgcmVnaW9uICovCiAKIAlvdXQzMnIoUENJWDBfUE1NMU1BLCAweDAwMDAwMDAwKTsJLyogUE1NMCBNYXNrL0F0dHJpYnV0ZSAtIGRpc2FibGVkIGI0IHNldHRpbmcgKi8KLQlvdXQzMnIoUENJWDBfUE1NMUxBLCBDRkdfUENJX01FTUJBU0UyKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCi0Jb3V0MzJyKFBDSVgwX1BNTTFQQ0lMQSwgQ0ZHX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BNTTFMQSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE1NMVBDSUxBLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMik7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BNTTFQQ0lIQSwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QTU0xTUEsIDB4RTAwMDAwMDEpOwkvKiA1MTJNICsgTm8gcHJlZmV0Y2hpbmcsIGFuZCBlbmFibGUgcmVnaW9uICovCiAKQEAgLTY1Miw4ICs2NTIsOCBAQAogCiAJLyogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkICovCiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKDAsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELAotCQkJICAgICAgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDRkdfUENJX1NVQlNZU19JRCk7CisJCQkgICAgICBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfU1VCU1lTVEVNX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQpOwogCiAJLyogQ29uZmlndXJlIGNvbW1hbmQgcmVnaXN0ZXIgYXMgYnVzIG1hc3RlciAqLwogCXBjaV93cml0ZV9jb25maWdfd29yZCgwLCBQQ0lfQ09NTUFORCwgUENJX0NPTU1BTkRfTUFTVEVSKTsKQEAgLTY2NywxMyArNjY3LDEzIEBACiAJcGNpX3dyaXRlX2NvbmZpZ19kd29yZCgwLCBQQ0lfQlJER09QVDIsIDB4MDAwMDAxMDEpOwogCiB9Ci0jZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIHBjaV9tYXN0ZXJfaW5pdAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogdm9pZCBwY2lfbWFzdGVyX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCXVuc2lnbmVkIHNob3J0IHRlbXBfc2hvcnQ7CkBAIC02ODgsNyArNjg4LDcgQEAKIAkJCSAgICAgIHRlbXBfc2hvcnQgfCBQQ0lfQ09NTUFORF9NQVNURVIgfAogCQkJICAgICAgUENJX0NPTU1BTkRfTUVNT1JZKTsKIH0KLSNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkgKi8KKyNlbmRpZgkJCQkvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQpICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgaXNfcGNpX2hvc3QKZGlmZiAtLWdpdCBhL2JvYXJkL3BsZWIyL2ZsYXNoLmMgYi9ib2FyZC9wbGViMi9mbGFzaC5jCmluZGV4IDNmMDE5MjEuLmFiYWYwYjQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BsZWIyL2ZsYXNoLmMKKysrIGIvYm9hcmQvcGxlYjIvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogICovCiAjaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KIAogLyogTk9URSAtIENPTkZJR19GTEFTSF8xNkJJVCBtZWFucyB0aGUgQ1BVIGludGVyZmFjZSBpcyAxNi1iaXQsIGl0CiAgKiAgICAgICAgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgZmxhc2ggY2hpcCBiZWluZyA4LWJpdCBvciAxNi1iaXQuCkBAIC01OSw3ICs1OSw3IEBACiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfYW1kIChmbGFzaF9pbmZvX3QgKiBpbmZvLCBGUFdWICogZGVzdCwgRlBXIGRhdGEpOwogc3RhdGljIHZvaWQgZmxhc2hfZ2V0X29mZnNldHMgKHVsb25nIGJhc2UsIGZsYXNoX2luZm9fdCAqIGluZm8pOwogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIHN0YXRpYyB2b2lkIGZsYXNoX3N5bmNfcmVhbF9wcm90ZWN0IChmbGFzaF9pbmZvX3QgKiBpbmZvKTsKICNlbmRpZgogCkBAIC03NCwxMSArNzQsMTEgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0Jc2l6ZV9iID0gZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IgPSBmbGFzaF9nZXRfc2l6ZSAoKEZQVyAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjsKIApAQCAtOTAsMjAgKzkwLDIwIEBACiAJLyogRG8gdGhpcyBhZ2FpbiAod2FzIGRvbmUgYWxyZWFkeSBpbiBmbGFzdF9nZXRfc2l6ZSksIGp1c3QKIAkgKiBpbiBjYXNlIHdlIG1vdmUgaXQgd2hlbiByZW1hcCB0aGUgRkxBU0guCiAJICovCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAkvKiByZWFkIHRoZSBoYXJkd2FyZSBwcm90ZWN0aW9uIHN0YXR1cyAoaWYgYW55KSBpbnRvIHRoZQogCSAqIHByb3RlY3Rpb24gYXJyYXkgaW4gZmxhc2hfaW5mby4KIAkgKi8KIAlmbGFzaF9zeW5jX3JlYWxfcHJvdGVjdCAoJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTQxOCw3ICs0MTgsNyBAQAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTU1OSw3ICs1NTksNyBAQAogCiAJCXdoaWxlICgoKmFkZHIgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7CiAJCQlpZiAoKG5vdyA9Ci0JCQkgICAgIGdldF90aW1lcl9tYXNrZWQgKCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCSAgICAgZ2V0X3RpbWVyX21hc2tlZCAoKSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNTczLDcgKzU3Myw3IEBACiAJCQl9CiAKIAkJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCQlpZiAoKG5vdyAtIGxhc3QpID4gMSAqIENGR19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KKwkJCWlmICgobm93IC0gbGFzdCkgPiAxICogQ09ORklHX1NZU19IWikgewkvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBub3c7CiAJCQl9CkBAIC02MDksNyArNjA5LDcgQEAKIAkJLyogY29tYmluZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRhdGEgc28gY2FuIHByb2dyYW0KIAkJICogYW4gZW50aXJlIHdvcmQgb2YgMTYgb3IgMzIgYml0cwogCQkgKi8KLSNpZmRlZiBDRkdfTElUVExFX0VORElBTgorI2lmZGVmIENPTkZJR19TWVNfTElUVExFX0VORElBTgogCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mIChkYXRhKTsgaSsrKSB7CiAJCQlkYXRhID4+PSA4OwogCQkJaWYgKGkgPCBieXRlcyB8fCBpIC0gYnl0ZXMgPj0gbGVmdCkKQEAgLTY4OCw3ICs2ODgsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAl3aGlsZSAocmVzID09IDAKIAkgICAgICAgJiYgKCpkZXN0ICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKSAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqZGVzdCA9IChGUFcpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCXJlcyA9IDE7CiAJCX0KQEAgLTczMyw3ICs3MzMsNyBAQAogCXJlc2V0X3RpbWVyX21hc2tlZCAoKTsKIAogCXdoaWxlIChyZXMgPT0gMCAmJiAoKmRlc3QgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSpkZXN0ID0gKEZQVykgMHgwMEIwMDBCMDsJLyogU3VzcGVuZCBwcm9ncmFtICAgICAgKi8KIAkJCXJlcyA9IDE7CiAJCX0KQEAgLTc0OCw3ICs3NDgsNyBAQAogCXJldHVybiAocmVzKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIGludCBmbGFzaF9yZWFsX3Byb3RlY3QgKGZsYXNoX2luZm9fdCAqIGluZm8sIGxvbmcgc2VjdG9yLCBpbnQgcHJvdCkKZGlmZiAtLWdpdCBhL2JvYXJkL3BsZWIyL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL3BsZWIyL2xvd2xldmVsX2luaXQuUwppbmRleCBhZGQyYzUzLi5iOTVmZjljIDEwMDY0NAotLS0gYS9ib2FyZC9wbGViMi9sb3dsZXZlbF9pbml0LlMKKysrIGIvYm9hcmQvcGxlYjIvbG93bGV2ZWxfaW5pdC5TCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLURSQU1fU0laRTogIC5sb25nICAgQ0ZHX0RSQU1fU0laRQorRFJBTV9TSVpFOiAgLmxvbmcgICBDT05GSUdfU1lTX0RSQU1fU0laRQogCiAvKiB3YWl0IGZvciBjb3Byb2Nlc3NvciB3cml0ZSBjb21wbGV0ZSAqLwogCS5tYWNybyBDUFdBSVQgcmVnCkBAIC00MSw5MiArNDEsOTIgQEAKIAkvKiBTZXQgdXAgR1BJTyBwaW5zIGZpcnN0ICovCiAKIAlsZHIJcjAsICAgPUdQU1IwCi0JbGRyCXIxLCAgID1DRkdfR1BTUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQU1IxCi0JbGRyCXIxLCAgID1DRkdfR1BTUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQU1IyCi0JbGRyCXIxLCAgID1DRkdfR1BTUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQU1IyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IwCi0JbGRyCXIxLCAgID1DRkdfR1BDUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IxCi0JbGRyCXIxLCAgID1DRkdfR1BDUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQQ1IyCi0JbGRyCXIxLCAgID1DRkdfR1BDUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQQ1IyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIwCi0JbGRyCXIxLCAgID1DRkdfR1JFUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIxCi0JbGRyCXIxLCAgID1DRkdfR1JFUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdSRVIyCi0JbGRyCXIxLCAgID1DRkdfR1JFUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dSRVIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIwCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIxCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdGRVIyCi0JbGRyCXIxLCAgID1DRkdfR0ZFUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dGRVIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIwCi0JbGRyCXIxLCAgID1DRkdfR1BEUjBfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIxCi0JbGRyCXIxLCAgID1DRkdfR1BEUjFfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIxX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdQRFIyCi0JbGRyCXIxLCAgID1DRkdfR1BEUjJfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dQRFIyX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIwX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMF9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIwX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMF9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMF9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIxX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMV9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMV9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIxX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMV9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIyX0wKLQlsZHIJcjEsICAgPUNGR19HQUZSMl9MX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMl9MX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAlsZHIJcjAsICAgPUdBRlIyX1UKLQlsZHIJcjEsICAgPUNGR19HQUZSMl9VX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19HQUZSMl9VX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAkvKiBlbmFibGUgR1BJTyBwaW5zICovCiAJbGRyCXIwLCAgID1QU1NSCi0JbGRyCXIxLCAgID1DRkdfUFNTUl9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfUFNTUl9WQUwKIAlzdHIJcjEsICAgW3IwXQogCiAKQEAgLTE2MSw2MSArMTYxLDYxIEBACiAJQCBTdGVwIDJhCiAJQCB3cml0ZSBtc2MwLCByZWFkIGJhY2sgdG8gZW5zdXJlIGRhdGEgbGF0Y2hlcwogCUAKLQlsZHIJcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkcglyMiwgICA9Q09ORklHX1NZU19NU0MwX1ZBTAogCXN0cglyMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAlsZHIJcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCiAKIAlAIHdyaXRlIG1zYzEKLQlsZHIJcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTVNDMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIJcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCUAgd3JpdGUgbXNjMgotCWxkcglyMiwgID1DRkdfTVNDMl9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0cglyMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCWxkcglyMiwgIFtyMSwgI01TQzJfT0ZGU0VUXQogCiAKIEAgU3RlcCAyYgogCUAgd3JpdGUgbWVjcgotCWxkcglyMiwgID1DRkdfTUVDUl9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NRUNSX1ZBTAogCXN0cglyMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCiAJQCB3cml0ZSBtY21lbTAKLQlsZHIJcjIsICA9Q0ZHX01DTUVNMF9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNNRU0wX09GRlNFVF0KIAogCUAgd3JpdGUgbWNtZW0xCi0JbGRyCXIyLCAgPUNGR19NQ01FTTFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DTUVNMV9PRkZTRVRdCiAKIAlAIHdyaXRlIG1jYXR0MAotCWxkcglyMiwgID1DRkdfTUNBVFQwX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCiAJQCB3cml0ZSBtY2F0dDEKLQlsZHIJcjIsICA9Q0ZHX01DQVRUMV9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogCUAgd3JpdGUgbWNpbzAKLQlsZHIJcjIsICA9Q0ZHX01DSU8wX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DSU8wX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DSU8wX09GRlNFVF0KIAogCUAgd3JpdGUgbWNpbzEKLQlsZHIJcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DSU8xX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DSU8xX09GRlNFVF0KIAogQCBTdGVwIDJjCiAJQCBmbHktYnktZG1hIGlzIGRlZmVhdHVyZWQgb24gdGhpcyBwYXJ0CiAJQCB3cml0ZSBmbHljbmZnCi0JQGxkcglyMiwgID1DRkdfRkxZQ05GR19WQUwKKwlAbGRyCXIyLCAgPUNPTkZJR19TWVNfRkxZQ05GR19WQUwKIAlAc3RyCXIyLCAgW3IxLCAjRkxZQ05GR19PRkZTRVRdCiAKIC8qIEZJWE1FIERvZXMgdGhpcyBzZXF1ZW5jZSByZWFsbHkgbWFrZSBzZW5zZSAqLwogI2lmZGVmIFJFREJPT1RfV0FZCiAJQCBTdGVwIDJkCiAJQCBnZXQgdGhlIG1kcmVmciBzZXR0aW5ncwotCWxkcglyMywgID1DRkdfTURSRUZSX1ZBTAorCWxkcglyMywgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAogCUAgZXh0cmFjdCBEUkkgZmllbGQgKHdlIG5lZWQgYSB2YWxpZCBEUkkgZmllbGQpCiAJQApAQCAtMjk2LDcgKzI5Niw3IEBACiAjZWxzZQogCUAgU3RlcCAyZAogCUAgZ2V0IHRoZSBtZHJlZnIgc2V0dGluZ3MKLQlsZHIJcjMsICA9Q0ZHX01EUkVGUl9WQUwKKwlsZHIJcjMsICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAKIAlAIHdyaXRlIGJhY2sgbWRyZWZyCiAJQApAQCAtMzQwLDcgKzM0MCw3IEBACiAJQCBTdGVwIDRkCiAJQCBmZXRjaCBwbGF0Zm9ybSB2YWx1ZSBvZiBtZGNuZmcKIAlACi0JbGRyCXIyLCAgPUNGR19NRENORkdfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCiAJQCBkaXNhYmxlIGFsbCBzZHJhbSBiYW5rcwogCUAKQEAgLTM3NSw3ICszNzUsNyBAQAogCUAgQWNjZXNzIG1lbW9yeSAqbm90IHlldCBlbmFibGVkKiBmb3IgQ0JSIHJlZnJlc2ggY3ljbGVzICg4KQogCUAgLSBDQlIgaXMgZ2VuZXJhdGVkIGZvciBhbGwgYmFua3MKIAotCWxkcglyMiwgPUNGR19EUkFNX0JBU0UKKwlsZHIJcjIsID1DT05GSUdfU1lTX0RSQU1fQkFTRQogCXN0cglyMiwgW3IyXQogCXN0cglyMiwgW3IyXQogCXN0cglyMiwgW3IyXQpAQCAtNDA1LDcgKzQwNSw3IEBACiAJQCBTdGVwIDRoCiAJQCB3cml0ZSBtZG1ycwogCUAKLQlsZHIJcjIsICA9Q0ZHX01ETVJTX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0cglyMiwgIFtyMSwgI01ETVJTX09GRlNFVF0KIAogCUAgRG9uZSBNZW1vcnkgSW5pdApAQCAtNDI0LDcgKzQyNCw3IEBACiAKIAlAIFNldCBpbnRlcnJ1cHQgbWFzayByZWdpc3RlcgogCUAKLQlsZHIJcjEsICA9Q0ZHX0lDTVJfVkFMCisJbGRyCXIxLCAgPUNPTkZJR19TWVNfSUNNUl9WQUwKIAlsZHIJcjIsICA9SUNNUgogCXN0cglyMSwgIFtyMl0KIApAQCAtNDQwLDcgKzQ0MCw3IEBACiAKIAlAIHNldCBjb3JlIGNsb2NrcwogCUAKLQlsZHIJcjIsICA9Q0ZHX0NDQ1JfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfQ0NDUl9WQUwKIAlsZHIJcjEsICA9Q0NDUgogCXN0cglyMiwgIFtyMV0KIApAQCAtNDYzLDcgKzQ2Myw3IEBACiAJQCBUdXJuIG9uIG5lZWRlZCBjbG9ja3MKIAlACiAJbGRyCXIxLCAgPUNLRU4KLQlsZHIJcjIsICA9Q0ZHX0NLRU5fVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfQ0tFTl9WQUwKIAlzdHIJcjIsICBbcjFdCiAKIAkvKlNFVF9MRUQgNyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvcG01MjAvZmxhc2guYyBiL2JvYXJkL3BtNTIwL2ZsYXNoLmMKaW5kZXggOWVjODQzZS4uNjRjODYyNCAxMDA2NDQKLS0tIGEvYm9hcmQvcG01MjAvZmxhc2guYworKysgYi9ib2FyZC9wbTUyMC9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC04NywxMSArODcsMTEgQEAKIAl1bG9uZyBzaXplID0gMDsKIAlleHRlcm4gdm9pZCBmbGFzaF9wcmVpbml0KHZvaWQpOwogCWV4dGVybiB2b2lkIGZsYXNoX2FmdGVyaW5pdCh1bG9uZywgdWxvbmcpOwotCXVsb25nIGZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCXVsb25nIGZsYXNoYmFzZSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAogCWZsYXNoX3ByZWluaXQoKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJbWVtc2V0KCZmbGFzaF9pbmZvW2ldLCAwLCBzaXplb2YoZmxhc2hfaW5mb190KSk7CkBAIC0xMTAsMTEgKzExMCwxMSBAQAogCiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogI2lmbmRlZiBDT05GSUdfQk9PVF9ST00KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdICk7CiAjZW5kaWYKICNlbmRpZgpAQCAtMjQ1LDI4ICsyNDUsMjggQEAKIAkJLyogSW4gVS1Cb290IHdlIHN1cHBvcnQgb25seSAzMiBNQiAobm8gYmFuay1zd2l0Y2hpbmcpICovCiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDI1NiAvIDI7CiAJCWluZm8tPnNpemUgPSAgMHgwNDAwMDAwMCAvIDI7Ci0JCWluZm8tPnN0YXJ0WzBdID0gQ0ZHX0ZMQVNIX0JBU0UgKyAweDAyMDAwMDAwOworCQlpbmZvLT5zdGFydFswXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDIwMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAzMiBNQiAgICAgKi8KIAogCWNhc2UgKEZQVykgSU5URUxfSURfMjhGMTI4SjNBOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF8yOEYxMjhKM0E7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDEyODsKIAkJaW5mby0+c2l6ZSA9IDB4MDIwMDAwMDA7Ci0JCWluZm8tPnN0YXJ0WzBdID0gQ0ZHX0ZMQVNIX0JBU0UgKyAweDAyMDAwMDAwOworCQlpbmZvLT5zdGFydFswXSA9IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDIwMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAzMiBNQiAgICAgKi8KIAogCWNhc2UgKEZQVykgSU5URUxfSURfMjhGNjQwSjNBOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF8yOEY2NDBKM0E7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDY0OwogCQlpbmZvLT5zaXplID0gMHgwMTAwMDAwMDsKLQkJaW5mby0+c3RhcnRbMF0gPSBDRkdfRkxBU0hfQkFTRSArIDB4MDMwMDAwMDA7CisJCWluZm8tPnN0YXJ0WzBdID0gQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMzAwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDE2IE1CICAgICAqLwogCiAJY2FzZSAoRlBXKSBJTlRFTF9JRF8yOEYzMjBKM0E6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIXzI4RjMyMEozQTsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzI7CiAJCWluZm8tPnNpemUgPSAweDgwMDAwMDsKLQkJaW5mby0+c3RhcnRbMF0gPSBDRkdfRkxBU0hfQkFTRSArIDB4MDM4MDAwMDA7CisJCWluZm8tPnN0YXJ0WzBdID0gQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMzgwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDggTUIgICAgICovCiAKIAlkZWZhdWx0OgpAQCAtMjc0LDEwICsyNzQsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zMjgsNyArMzI4LDcgQEAKIAkvKgogCSAqIGZpcnN0LCB3YWl0IGZvciB0aGUgV1NNIHRvIGJlIGZpbmlzaGVkLiBUaGUgcmF0aW9uYWxlIGZvcgogCSAqIHdhaXRpbmcgZm9yIHRoZSBXU00gdG8gYmVjb21lIGlkbGUgZm9yIGF0IG1vc3QKLQkgKiBDRkdfRkxBU0hfRVJBU0VfVE9VVCBpcyBhcyBmb2xsb3dzLiBUaGUgV1NNIGNhbiBiZSBidXN5CisJICogQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUIGlzIGFzIGZvbGxvd3MuIFRoZSBXU00gY2FuIGJlIGJ1c3kKIAkgKiBiZWNhdXNlIG9mOiAoMSkgZXJhc2UsICgyKSBwcm9ncmFtIG9yICgzKSBsb2NrIGJpdAogCSAqIGNvbmZpZ3VyYXRpb24uIFNvIHdlIGp1c3Qgd2FpdCBmb3IgdGhlIGxvbmdlc3QgdGltZW91dCBvZgogCSAqIHRoZSAoMSktKDMpLCBpLmUuIHRoZSBlcmFzZSB0aW1lb3V0LgpAQCAtMzQxLDcgKzM0MSw3IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqYWRkciAmIChGUFcpIElOVEVMX0ZJTklTSEVEKSAhPSAoRlBXKSBJTlRFTF9GSU5JU0hFRCkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgSU5URUxfUkVTRVQ7IC8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlwcmludGYoIldTTSBidXN5IHRvbyBsb25nLCBjYW4ndCBnZXQgcHJvdCBzdGF0dXNcbiIpOwogCQkJcmV0dXJuIDE7CkBAIC00MjUsNyArNDI1LDcgQEAKIAkJCSphZGRyID0gKEZQVykgMHgwMEQwMDBEMDsJLyogZXJhc2UgY29uZmlybSAqLwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC01NjAsNyArNTYwLDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CkBAIC02MDYsNyArNjA2LDcgQEAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAogCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfVU5MT0NLX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJcmMgPSAxOwogCQkJYnJlYWs7CkBAIC02NDMsNyArNjQzLDcgQEAKIAkJCQkqYWRkciA9IElOVEVMX1BST1RFQ1Q7CS8qIHNldCAqLwogCQkJCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpCiAJCQkJewotCQkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9VTkxPQ0tfVE9VVCkKKwkJCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKQogCQkJCQl7CiAJCQkJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJCQkJcmMgPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcG01MjAvcG01MjAuYyBiL2JvYXJkL3BtNTIwL3BtNTIwLmMKaW5kZXggNmRiOTNmYi4uOWRhMTA0MSAxMDA2NDQKLS0tIGEvYm9hcmQvcG01MjAvcG01MjAuYworKysgYi9ib2FyZC9wbTUyMC9wbTUyMC5jCkBAIC0zNyw3ICszNyw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQgKGludCBoaV9hZGRyKQogewogCWxvbmcgaGlfYWRkcl9iaXQgPSBoaV9hZGRyID8gMHgwMTAwMDAwMCA6IDA7CkBAIC04MCw3ICs4MCw3IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqICAgICAgICAgICAgdXNlIG9mIENGR19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENGR19TRFJBTV9CQVNFCisgKiAgICAgICAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKiAgICAgICAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCkBAIC04OSw3ICs4OSw3IEBACiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwogCXVsb25nIGRyYW1zaXplMiA9IDA7Ci0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMTEwLDkgKzExMCw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTEzOCwxMCArMTM4LDEwIEBACiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKIAlpZiAoIWRyYW1zaXplKSB7CiAJCXNkcmFtX3N0YXJ0KDEpOwotCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CisJCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJfQogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTYzLDcgKzE2Myw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0xODEsNyArMTgxLDcgQEAKIAkJZHJhbXNpemUyID0gMDsKIAl9CiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJcmV0dXJuIGRyYW1zaXplICsgZHJhbXNpemUyOwogfQpAQCAtMTkxLDcgKzE5MSw3IEBACiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBhbmQgZW5hYmxlIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMjEwLDkgKzIxMCw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKHVsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKCh1bG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0yMjMsMTIgKzIyMywxMiBAQAogCS8qIHNldCBTRFJBTSBlbmQgYWRkcmVzcyBhY2NvcmRpbmcgdG8gc2l6ZSAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCA9ICgoZHJhbXNpemUgLSAxKSA+PiAxNSk7CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHJpZXZlIGFtb3VudCBvZiBTRFJBTSBhdmFpbGFibGUgKi8KIAlkcmFtc2l6ZSA9ICgoKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9TVE9QICsgMSkgPDwgMTUpOwogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCXJldHVybiBkcmFtc2l6ZTsKIH0KQEAgLTMxOCw3ICszMTgsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ET0MpCiB2b2lkIGRvY19pbml0ICh2b2lkKQogewotCWRvY19wcm9iZSAoQ0ZHX0RPQ19CQVNFKTsKKwlkb2NfcHJvYmUgKENPTkZJR19TWVNfRE9DX0JBU0UpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2JvYXJkL3BtODI2L2ZsYXNoLmMgYi9ib2FyZC9wbTgyNi9mbGFzaC5jCmluZGV4IGJkNmQ3ZDkuLjAxMGY1OWEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BtODI2L2ZsYXNoLmMKKysrIGIvYm9hcmQvcG04MjYvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPG1wYzh4eC5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTExNiwxMyArMTE2LDEzIEBACiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duCiAJICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAob25seSBvbmUgYmFuaykgKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoKHVsb25nICopIENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoKHVsb25nICopIENPTkZJR19TWVNfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOIHx8IHNpemVfYjAgPT0gMCkgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLAogCQkJCXNpemVfYjAsIHNpemVfYjAgPj4gMjApOwpAQCAtMTMyLDE0ICsxMzIsMTQgQEAKIAkgKi8KIAogI2lmbmRlZiBDT05GSUdfQk9PVF9ST00KLQkvKiBJZiBVLUJvb3QgaXMgIGJvb3RlZCBmcm9tIFJPTSB0aGUgQ0ZHX01PTklUT1JfQkFTRSA+IENGR19GTEFTSDBfQkFTRQorCS8qIElmIFUtQm9vdCBpcyAgYm9vdGVkIGZyb20gUk9NIHRoZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAkgKiBidXQgd2Ugc2hvdWxkbid0IHByb3RlY3QgaXQuCiAJICovCiAKLSMgaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyMgaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSDBfQkFTRQogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0KKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdCiAJKTsKICMgZW5kaWYKICNlbmRpZgkvKiBDT05GSUdfQk9PVF9ST00gKi8KQEAgLTI2Nyw3ICsyNjcsNyBAQAogCQkJbGFzdCA9IHN0YXJ0OwogCQkJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCB8fAogCQkJCSAgIChhZGRyWzFdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0IChlcmFzZSBzdXNwZW5kZWQhKVxuIik7CiAJCQkJCS8qIFN1c3BlbmQgZXJhc2UKIAkJCQkJICovCkBAIC0zNjIsNyArMzYyLDcgQEAKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCphZGRyICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCS8qIFN1c3BlbmQgcHJvZ3JhbQogCQkJICovCiAJCQkqYWRkciA9IDB4MDBCMDAwQjA7CmRpZmYgLS1naXQgYS9ib2FyZC9wbTgyNi9wbTgyNi5jIGIvYm9hcmQvcG04MjYvcG04MjYuYwppbmRleCAyMzA0NDIwLi4xOWU3YTAwIDEwMDY0NAotLS0gYS9ib2FyZC9wbTgyNi9wbTgyNi5jCisrKyBiL2JvYXJkL3BtODI2L3BtODI2LmMKQEAgLTI1Niw3ICsyNTYsNyBAQAogCSAqICBhY2Nlc3NpbmcgdGhlIFNEUkFNIHdpdGggYSBzaW5nbGUtYnl0ZSB0cmFuc2FjdGlvbi4iCiAJICoKIAkgKiBUaGUgYXBwcm9wcmlhdGUgQlJ4L09SeCByZWdpc3RlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHdoZW4gd2UKLQkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDRkdfU0RSQU1fQkFTRS4KKwkgKiBnZXQgaGVyZS4gVGhlIFNEUkFNIGNhbiBiZSBhY2Nlc3NlZCBhdCB0aGUgYWRkcmVzcyBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAJICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfUFJFQTsKQEAgLTI2Nyw3ICsyNjcsNyBAQAogCQkqYmFzZSA9IGM7CiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTVJXOwotCSooYmFzZSArIENGR19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KKwkqKGJhc2UgKyBDT05GSUdfU1lTX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX05PUk0gfCBQU0RNUl9SRkVOOwogCSpiYXNlID0gYzsKQEAgLTI4MiwyOSArMjgyLDI5IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgc2l6ZTgsIHNpemU5OwogI2VuZGlmCiAJdWxvbmcgcHNpemUgPSAzMiAqIDEwMjQgKiAxMDI0OwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAotCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKLQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzlDT0wsIENGR19PUjJfOUNPTCwKLQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKKwlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOUNPTCwgQ09ORklHX1NZU19PUjJfOUNPTCwKKwkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAogCWlmIChzaXplOCA8IHNpemU5KSB7CiAJCXBzaXplID0gc2l6ZTk7CiAJCXByaW50ZiAoIig2MHg6OUNPTCkgIik7CiAJfSBlbHNlIHsKLQkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMl84Q09MLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJCXByaW50ZiAoIig2MHg6OENPTCkgIik7CiAJfQogI2VuZGlmCkBAIC0zMTQsNyArMzE0LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRE9DKQogdm9pZCBkb2NfaW5pdCAodm9pZCkKIHsKLQlkb2NfcHJvYmUgKENGR19ET0NfQkFTRSk7CisJZG9jX3Byb2JlIChDT05GSUdfU1lTX0RPQ19CQVNFKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9ib2FyZC9wbTgyOC9mbGFzaC5jIGIvYm9hcmQvcG04MjgvZmxhc2guYwppbmRleCAyZTkyYzExLi40OTU4YTk1IDEwMDY0NAotLS0gYS9ib2FyZC9wbTgyOC9mbGFzaC5jCisrKyBiL2JvYXJkL3BtODI4L2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCkBAIC0xMTYsMTMgKzExNiwxMyBAQAogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93bgogCSAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgKG9ubHkgb25lIGJhbmspICovCiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh1bG9uZyAqKSBDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKCh1bG9uZyAqKSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTiB8fCBzaXplX2IwID09IDApIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJCQlzaXplX2IwLCBzaXplX2IwID4+IDIwKTsKQEAgLTEzMiwxNCArMTMyLDE0IEBACiAJICovCiAKICNpZm5kZWYgQ09ORklHX0JPT1RfUk9NCi0JLyogSWYgVS1Cb290IGlzICBib290ZWQgZnJvbSBST00gdGhlIENGR19NT05JVE9SX0JBU0UgPiBDRkdfRkxBU0gwX0JBU0UKKwkvKiBJZiBVLUJvb3QgaXMgIGJvb3RlZCBmcm9tIFJPTSB0aGUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPiBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAJICogYnV0IHdlIHNob3VsZG4ndCBwcm90ZWN0IGl0LgogCSAqLwogCi0jIGlmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIMF9CQVNFCisjIGlmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXQogCSk7CiAjIGVuZGlmCiAjZW5kaWYJLyogQ09ORklHX0JPT1RfUk9NICovCkBAIC0yNjcsNyArMjY3LDcgQEAKIAkJCWxhc3QgPSBzdGFydDsKIAkJCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODAgfHwKIAkJCQkgICAoYWRkclsxXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dCAoZXJhc2Ugc3VzcGVuZGVkISlcbiIpOwogCQkJCQkvKiBTdXNwZW5kIGVyYXNlCiAJCQkJCSAqLwpAQCAtMzYyLDcgKzM2Miw3IEBACiAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqYWRkciAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkvKiBTdXNwZW5kIHByb2dyYW0KIAkJCSAqLwogCQkJKmFkZHIgPSAweDAwQjAwMEIwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcG04MjgvcG04MjguYyBiL2JvYXJkL3BtODI4L3BtODI4LmMKaW5kZXggMjk2YTE5OS4uNGEzYjJmZCAxMDA2NDQKLS0tIGEvYm9hcmQvcG04MjgvcG04MjguYworKysgYi9ib2FyZC9wbTgyOC9wbTgyOC5jCkBAIC0yNTksNyArMjU5LDcgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC0yNzAsNyArMjcwLDcgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CkBAIC0zMTUsMjkgKzMxNSwyOSBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHNpemU4LCBzaXplOTsKICNlbmRpZgogCXVsb25nIHBzaXplID0gMzIgKiAxMDI0ICogMTAyNDsKIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCi0JCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKLQlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl85Q09MLCBDRkdfT1IyXzlDT0wsCi0JCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IyXzhDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IyXzlDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlwc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCIoNjB4OjlDT0wpICIpOwogCX0gZWxzZSB7Ci0JCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKLQkJCQkJCSAgKHVjaGFyICopIENGR19TRFJBTV9CQVNFKTsKKwkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IyXzhDT0wsCisJCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCQlwcmludGYgKCIoNjB4OjhDT0wpICIpOwogCX0KICNlbmRpZgpAQCAtMzQ3LDcgKzM0Nyw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0RPQykKIHZvaWQgZG9jX2luaXQgKHZvaWQpCiB7Ci0JZG9jX3Byb2JlIChDRkdfRE9DX0JBU0UpOworCWRvY19wcm9iZSAoQ09ORklHX1NZU19ET0NfQkFTRSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvYm9hcmQvcG04NTQvZGRyLmMgYi9ib2FyZC9wbTg1NC9kZHIuYwppbmRleCA0NTM3MmY0Li43ODUwNzk0IDEwMDY0NAotLS0gYS9ib2FyZC9wbTg1NC9kZHIuYworKysgYi9ib2FyZC9wbTg1NC9kZHIuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogCiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9kaW1tX3BhcmFtcy5oPgogCiBzdGF0aWMgdm9pZAogZ2V0X3NwZChkZHIxX3NwZF9lZXByb21fdCAqc3BkLCB1bnNpZ25lZCBjaGFyIGkyY19hZGRyZXNzKQpAQCAtNDAsNyArNDEsOSBAQAogCX0KIH0KIAotdm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsIHVuc2lnbmVkIGludCBjdHJsX251bSkKK3ZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLAorCQkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAorCQkJCXVuc2lnbmVkIGludCBjdHJsX251bSkKIHsKIAkvKgogCSAqIEZhY3RvcnMgdG8gY29uc2lkZXIgZm9yIENQTzoKZGlmZiAtLWdpdCBhL2JvYXJkL3BtODU0L2xhdy5jIGIvYm9hcmQvcG04NTQvbGF3LmMKaW5kZXggZDc0ZDE3YS4uMzllOGRiYiAxMDA2NDQKLS0tIGEvYm9hcmQvcG04NTQvbGF3LmMKKysrIGIvYm9hcmQvcG04NTQvbGF3LmMKQEAgLTQ2LDEzICs0NiwxMyBAQAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfRERSKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCiAJLyogVGhpcyBpcyBub3Qgc28gbXVjaCB0aGUgU0RSQU0gbWFwIGFzIGl0IGlzIHRoZSB3aG9sZSBsb2NhbGJ1cyBtYXAuICovCi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcG04NTQvcG04NTQuYyBiL2JvYXJkL3BtODU0L3BtODU0LmMKaW5kZXggOTA1MjNiZC4uZGI4NTVkZiAxMDA2NDQKLS0tIGEvYm9hcmQvcG04NTQvcG04NTQuYworKysgYi9ib2FyZC9wbTg1NC9wbTg1NC5jCkBAIC00Niw3ICs0Niw3IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKLSAgICB2b2xhdGlsZSBjY3NyX3BjaXhfdCAqcGNpID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfUENJWF9BRERSKTsKKyAgICB2b2xhdGlsZSBjY3NyX3BjaXhfdCAqcGNpID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X1BDSVhfQUREUik7CiAKICAgICBwY2ktPnBlZXIgJj0gMHhmZmZmZmZkZjsgLyogZGlzYWJsZSBtYXN0ZXIgYWJvcnQgKi8KICNlbmRpZgpAQCAtODMsNyArODMsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0RMTCkKIAl7Ci0JICAgIHZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJICAgIHZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCSAgICBpbnQgaSx4OwogCiAJICAgIHggPSAxMDsKQEAgLTEzMyw4ICsxMzMsOCBAQAogdm9pZAogbG9jYWxfYnVzX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfaHo7CkBAIC0xNTQsMTAgKzE1NCwxMCBAQAogCWxiY19oeiA9IHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDEwMDAwMDAgLyBjbGtkaXY7CiAKIAlpZiAobGJjX2h6IDwgNjYpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSIHwgMHg4MDAwMDAwMDsJLyogRExMIEJ5cGFzcyAqLworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSIHwgMHg4MDAwMDAwMDsJLyogRExMIEJ5cGFzcyAqLwogCiAJfSBlbHNlIGlmIChsYmNfaHogPj0gMTMzKSB7Ci0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOyAvKiBETEwgRW5hYmxlZCAqLwogCiAJfSBlbHNlIHsKIAkJLyoKQEAgLTE3Miw3ICsxNzIsNyBAQAogCQkJbGJjLT5sY3JyID0gMHgxMDAwMDAwNDsKIAkJfQogCi0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAofjB4ODAwMDAwMDApOyAvKiBETEwgRW5hYmxlZCAqLwogCQl1ZGVsYXkoMjAwKTsKIAogCQkvKgpAQCAtMTg2LDExICsxODYsMTEgQEAKIH0KIAogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0gKHZvaWQpCiB7Ci0JdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JdWludCAqcGVuZCA9ICh1aW50ICopIENGR19NRU1URVNUX0VORDsKKwl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJdWludCAqcGVuZCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7CiAJdWludCAqcDsKIAogCXByaW50ZigiU0RSQU0gdGVzdCBwaGFzZSAxOlxuIik7CkBAIC0yMjcsMTUgKzIyNywxNSBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGxvbmcgaW50IGZpeGVkX3NkcmFtICh2b2lkKQogewotICAjaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisgICNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIpOwogCi0JZGRyLT5jczBfYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWRkci0+dGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7Ci0JZGRyLT5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOwotCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDRkdfRERSX0lOVEVSVkFMOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJZGRyLT50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlkZHItPnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKICAgICAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJZGRyLT5lcnJfZGlzYWJsZSA9IDB4MDAwMDAwMEQ7CiAJZGRyLT5lcnJfc2JlID0gMHgwMGZmMDAwMDsKQEAgLTI0NCwxNCArMjQ0LDE0IEBACiAJdWRlbGF5KDUwMCk7CiAgICAgI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQogCS8qIEVuYWJsZSBFQ0MgY2hlY2tpbmcgKi8KLQlkZHItPnNkcmFtX2NmZyA9IChDRkdfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKKwlkZHItPnNkcmFtX2NmZyA9IChDT05GSUdfU1lTX0REUl9DT05UUk9MIHwgMHgyMDAwMDAwMCk7CiAgICAgI2Vsc2UKLQlkZHItPnNkcmFtX2NmZyA9IENGR19ERFJfQ09OVFJPTDsKKwlkZHItPnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX0NPTlRST0w7CiAgICAgI2VuZGlmCiAJYXNtKCJzeW5jOyBpc3luYzsgbXN5bmMiKTsKIAl1ZGVsYXkoNTAwKTsKICAgI2VuZGlmCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfQogI2VuZGlmCS8qICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKSAqLwogCmRpZmYgLS1naXQgYS9ib2FyZC9wbTg1NC90bGIuYyBiL2JvYXJkL3BtODU0L3RsYi5jCmluZGV4IGE3ZjM4MTMuLjVlNzRlMmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BtODU0L3RsYi5jCisrKyBiL2JvYXJkL3BtODU0L3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC01NCw3ICs1NCw3IEBACiAJICogVExCIDE6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUywgQ0ZHX1BDSTFfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNjIsNyArNjIsNyBAQAogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDkwMDAwMDAwCTI1Nk0JUENJMSBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzAsNyArNzAsNyBAQAogCSAqIFRMQiAzOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGMwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UsIENGR19SSU9fTUVNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTc4LDcgKzc4LDcgQEAKIAkgKiBUTEIgNDoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhkMDAwMDAwMAkyNTZNCVJhcGlkIElPIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA0LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTg3LDcgKzg3LDcgQEAKIAkgKiAweGUwMDBfMDAwMAkxTQlDQ1NSQkFSCiAJICogMHhlMjAwXzAwMDAJMTZNCVBDSTEgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC05NSw3ICs5NSw3IEBACiAJICogVExCIDY6CTY0TQlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAJICogMHhmMDAwXzAwMDAJNjRNCUxCQyBTRFJBTQogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBDRkdfTEJDX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTEwOCw3ICsxMDgsNyBAQAogCSAqIExpa2VseSBpdCBuZWVkcyB0byBiZSBpbmNyZWFzZWQgYnkgdHdvIGZvciB0aGVzZSBlbnRyaWVzLgogCSAqLwogCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRERSX1NEUkFNX0JBU0UsIENGR19ERFJfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA3LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3BtODU2L2Rkci5jIGIvYm9hcmQvcG04NTYvZGRyLmMKaW5kZXggNDUzNzJmNC4uNzg1MDc5NCAxMDA2NDQKLS0tIGEvYm9hcmQvcG04NTYvZGRyLmMKKysrIGIvYm9hcmQvcG04NTYvZGRyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxpMmMuaD4KIAogI2luY2x1ZGUgPGFzbS9mc2xfZGRyX3NkcmFtLmg+CisjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfZGltbV9wYXJhbXMuaD4KIAogc3RhdGljIHZvaWQKIGdldF9zcGQoZGRyMV9zcGRfZWVwcm9tX3QgKnNwZCwgdW5zaWduZWQgY2hhciBpMmNfYWRkcmVzcykKQEAgLTQwLDcgKzQxLDkgQEAKIAl9CiB9CiAKLXZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLCB1bnNpZ25lZCBpbnQgY3RybF9udW0pCit2b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywKKwkJCQlkaW1tX3BhcmFtc190ICpwZGltbSwKKwkJCQl1bnNpZ25lZCBpbnQgY3RybF9udW0pCiB7CiAJLyoKIAkgKiBGYWN0b3JzIHRvIGNvbnNpZGVyIGZvciBDUE86CmRpZmYgLS1naXQgYS9ib2FyZC9wbTg1Ni9sYXcuYyBiL2JvYXJkL3BtODU2L2xhdy5jCmluZGV4IGQ3NGQxN2EuLjM5ZThkYmIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BtODU2L2xhdy5jCisrKyBiL2JvYXJkL3BtODU2L2xhdy5jCkBAIC00NiwxMyArNDYsMTMgQEAKIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKICNpZm5kZWYgQ09ORklHX1NQRF9FRVBST00KLQlTRVRfTEFXKENGR19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfRERSKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUiksCiAjZW5kaWYKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAogCS8qIFRoaXMgaXMgbm90IHNvIG11Y2ggdGhlIFNEUkFNIG1hcCBhcyBpdCBpcyB0aGUgd2hvbGUgbG9jYWxidXMgbWFwLiAqLwotCVNFVF9MQVcoQ0ZHX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAotCVNFVF9MQVcoQ0ZHX1JJT19NRU1fQkFTRSwgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgTEFXQVJfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pLAogfTsKIAogaW50IG51bV9sYXdfZW50cmllcyA9IEFSUkFZX1NJWkUobGF3X3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3BtODU2L3BtODU2LmMgYi9ib2FyZC9wbTg1Ni9wbTg1Ni5jCmluZGV4IGVlMzMyODYuLjUwYzQyODEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BtODU2L3BtODU2LmMKKysrIGIvYm9hcmQvcG04NTYvcG04NTYuYwpAQCAtMjM4LDcgKzIzOCw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRExMKQogCXsKLQkgICAgdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkgICAgdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJICAgIGludCBpLHg7CiAKIAkgICAgeCA9IDEwOwpAQCAtMjg5LDggKzI4OSw4IEBACiB2b2lkCiBsb2NhbF9idXNfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19oejsKQEAgLTMxMCwxMCArMzEwLDEwIEBACiAJbGJjX2h6ID0gc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMCAvIGNsa2RpdjsKIAogCWlmIChsYmNfaHogPCA2NikgewotCQlsYmMtPmxjcnIgPSBDRkdfTEJDX0xDUlIgfCAweDgwMDAwMDAwOwkvKiBETEwgQnlwYXNzICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgfCAweDgwMDAwMDAwOwkvKiBETEwgQnlwYXNzICovCiAKIAl9IGVsc2UgaWYgKGxiY19oeiA+PSAxMzMpIHsKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSICYgKH4weDgwMDAwMDAwKTsgLyogRExMIEVuYWJsZWQgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiAmICh+MHg4MDAwMDAwMCk7IC8qIERMTCBFbmFibGVkICovCiAKIAl9IGVsc2UgewogCQkvKgpAQCAtMzI4LDcgKzMyOCw3IEBACiAJCQlsYmMtPmxjcnIgPSAweDEwMDAwMDA0OwogCQl9CiAKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSICYgKH4weDgwMDAwMDAwKTsvKiBETEwgRW5hYmxlZCAqLworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSICYgKH4weDgwMDAwMDAwKTsvKiBETEwgRW5hYmxlZCAqLwogCQl1ZGVsYXkoMjAwKTsKIAogCQkvKgpAQCAtMzQxLDExICszNDEsMTEgQEAKIAl9CiB9CiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKQEAgLTM4MiwxNSArMzgyLDE1IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7Ci0gICNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENGR19NUEM4NXh4X0REUl9BRERSKTsKKyAgI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKwl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUl9DUzBfQk5EUzsKLQlkZHItPmNzMF9jb25maWcgPSBDRkdfRERSX0NTMF9DT05GSUc7Ci0JZGRyLT50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWRkci0+dGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlkZHItPnNkcmFtX21vZGUgPSBDRkdfRERSX01PREU7Ci0JZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFJfSU5URVJWQUw7CisJZGRyLT5jczBfYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMF9CTkRTOworCWRkci0+Y3MwX2NvbmZpZyA9IENPTkZJR19TWVNfRERSX0NTMF9DT05GSUc7CisJZGRyLT50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlkZHItPnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOworCWRkci0+c2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CisJZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENPTkZJR19TWVNfRERSX0lOVEVSVkFMOwogICAgICNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAlkZHItPmVycl9kaXNhYmxlID0gMHgwMDAwMDAwRDsKIAlkZHItPmVycl9zYmUgPSAweDAwZmYwMDAwOwpAQCAtMzk5LDE0ICszOTksMTQgQEAKIAl1ZGVsYXkoNTAwKTsKICAgICAjaWYgZGVmaW5lZCAoQ09ORklHX0REUl9FQ0MpCiAJLyogRW5hYmxlIEVDQyBjaGVja2luZyAqLwotCWRkci0+c2RyYW1fY2ZnID0gKENGR19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOworCWRkci0+c2RyYW1fY2ZnID0gKENPTkZJR19TWVNfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKICAgICAjZWxzZQotCWRkci0+c2RyYW1fY2ZnID0gQ0ZHX0REUl9DT05UUk9MOworCWRkci0+c2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKICAgICAjZW5kaWYKIAlhc20oInN5bmM7IGlzeW5jOyBtc3luYyIpOwogCXVkZWxheSg1MDApOwogICAjZW5kaWYKLQlyZXR1cm4gQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CiB9CiAjZW5kaWYJLyogIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pICovCiAKZGlmZiAtLWdpdCBhL2JvYXJkL3BtODU2L3RsYi5jIGIvYm9hcmQvcG04NTYvdGxiLmMKaW5kZXggYTdmMzgxMy4uNWU3NGUyZCAxMDA2NDQKLS0tIGEvYm9hcmQvcG04NTYvdGxiLmMKKysrIGIvYm9hcmQvcG04NTYvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTU0LDcgKzU0LDcgQEAKIAkgKiBUTEIgMToJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg4MDAwMDAwMAkyNTZNCVBDSTEgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC02Miw3ICs2Miw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03MCw3ICs3MCw3IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YzAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1JJT19NRU1fQkFTRSwgQ0ZHX1JJT19NRU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDMsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzgsNyArNzgsNyBAQAogCSAqIFRMQiA0OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGQwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ0ZHX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtODcsNyArODcsNyBAQAogCSAqIDB4ZTAwMF8wMDAwCTFNCUNDU1JCQVIKIAkgKiAweGUyMDBfMDAwMAkxNk0JUENJMSBJTwogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTk1LDcgKzk1LDcgQEAKIAkgKiBUTEIgNjoJNjRNCUNhY2hlYWJsZSwgbm9uLWd1YXJkZWQKIAkgKiAweGYwMDBfMDAwMAk2NE0JTEJDIFNEUkFNCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX1NEUkFNX0JBU0UsIENGR19MQkNfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtMTA4LDcgKzEwOCw3IEBACiAJICogTGlrZWx5IGl0IG5lZWRzIHRvIGJlIGluY3JlYXNlZCBieSB0d28gZm9yIHRoZXNlIGVudHJpZXMuCiAJICovCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSwgQ0ZHX0REUl9TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDcsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvcG42Mi9wbjYyLmMgYi9ib2FyZC9wbjYyL3BuNjIuYwppbmRleCA2MGZjNDMxLi4xYjU0NWJmIDEwMDY0NAotLS0gYS9ib2FyZC9wbjYyL3BuNjIuYworKysgYi9ib2FyZC9wbjYyL3BuNjIuYwpAQCAtODUsNyArODUsNyBAQAogCiAJc2hvd19zdGFydHVwX3BoYXNlICgyKTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcgKE1FQVIxKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3BwbWM3eHgvZmxhc2guYyBiL2JvYXJkL3BwbWM3eHgvZmxhc2guYwppbmRleCAxNzIyYTM1Li5lNzI0MjI3IDEwMDY0NAotLS0gYS9ib2FyZC9wcG1jN3h4L2ZsYXNoLmMKKysrIGIvYm9hcmQvcHBtYzd4eC9mbGFzaC5jCkBAIC0xOSw3ICsxOSw3IEBACiBzdGF0aWMgaW50CXdyaXRlX2R3b3JkIChmbGFzaF9pbmZvX3QqIGluZm8sIHVsb25nIGRlc3QsIHVuc2lnbmVkIGNoYXIgKnBkYXRhKTsKIHN0YXRpYyB2b2lkCXdyaXRlX3ZpYV9mcHUgKHZvbGF0aWxlIERXT1JEKiBhZGRyLCBEV09SRCogZGF0YSk7CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTE3NywxMiArMTc3LDEyIEBACiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAob25seSBvbmUgYmFuaykgKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOIHx8IHNpemVfYjAgPT0gMCkgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLAogCQkJCXNpemVfYjAsIHNpemVfYjAgPj4gMjApOwpAQCAtMTkxLDEwICsxOTEsMTAgQEAKIAkvKgogCSAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKSAmJiBkZWZpbmVkKENPTkZJR19FTlZfQUREUikKQEAgLTM1OSw3ICszNTksNyBAQAogCXdoaWxlICgoKih2b2xhdGlsZSBEV09SRCopaW5mby0+c3RhcnRbbF9zZWN0XSAmIDB4MDA4MDAwODAwMDgwMDA4MExMICkKIAkJCQkhPSAweDAwODAwMDgwMDA4MDAwODBMTCApCiAJewotCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NzcsNyArNDc3LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgqKHZvbGF0aWxlIERXT1JEKilkZXN0ICE9IGRhdGEgKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3BwbWM3eHgvcGNpLmMgYi9ib2FyZC9wcG1jN3h4L3BjaS5jCmluZGV4IDViMTE1ZWEuLmJmMTMzYjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BwbWM3eHgvcGNpLmMKKysrIGIvYm9hcmQvcHBtYzd4eC9wY2kuYwpAQCAtNDIsMzcgKzQyLDM3IEBACiAgICAgaG9zZS0+bGFzdF9idXNubyA9IDB4ZmY7CiAKICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQlDRkdfUENJX01FTU9SWV9CVVMsCi0JQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQlDRkdfUENJX01FTU9SWV9TSVpFLAorCUNPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKICAgICAvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JQ0ZHX1BDSV9NRU1fQlVTLAotCUNGR19QQ0lfTUVNX1BIWVMsCi0JQ0ZHX1BDSV9NRU1fU0laRSwKKwlDT05GSUdfU1lTX1BDSV9NRU1fQlVTLAorCUNPTkZJR19TWVNfUENJX01FTV9QSFlTLAorCUNPTkZJR19TWVNfUENJX01FTV9TSVpFLAogCVBDSV9SRUdJT05fTUVNKTsKIAogICAgIC8qIElTQS9QQ0kgbWVtb3J5IHNwYWNlICovCiAgICAgcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JQ0ZHX0lTQV9NRU1fQlVTLAotCUNGR19JU0FfTUVNX1BIWVMsCi0JQ0ZHX0lTQV9NRU1fU0laRSwKKwlDT05GSUdfU1lTX0lTQV9NRU1fQlVTLAorCUNPTkZJR19TWVNfSVNBX01FTV9QSFlTLAorCUNPTkZJR19TWVNfSVNBX01FTV9TSVpFLAogCVBDSV9SRUdJT05fTUVNKTsKIAogICAgIC8qIFBDSSBJL08gc3BhY2UgKi8KICAgICBwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMywKLQlDRkdfUENJX0lPX0JVUywKLQlDRkdfUENJX0lPX1BIWVMsCi0JQ0ZHX1BDSV9JT19TSVpFLAorCUNPTkZJR19TWVNfUENJX0lPX0JVUywKKwlDT05GSUdfU1lTX1BDSV9JT19QSFlTLAorCUNPTkZJR19TWVNfUENJX0lPX1NJWkUsCiAJUENJX1JFR0lPTl9JTyk7CiAKICAgICAvKiBJU0EvUENJIEkvTyBzcGFjZSAqLwogICAgIHBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyA0LAotCUNGR19JU0FfSU9fQlVTLAotCUNGR19JU0FfSU9fUEhZUywKLQlDRkdfSVNBX0lPX1NJWkUsCisJQ09ORklHX1NZU19JU0FfSU9fQlVTLAorCUNPTkZJR19TWVNfSVNBX0lPX1BIWVMsCisJQ09ORklHX1NZU19JU0FfSU9fU0laRSwKIAlQQ0lfUkVHSU9OX0lPKTsKIAogICAgIGhvc2UtPnJlZ2lvbl9jb3VudCA9IDU7CmRpZmYgLS1naXQgYS9ib2FyZC9wcG1jN3h4L3BwbWM3eHguYyBiL2JvYXJkL3BwbWM3eHgvcHBtYzd4eC5jCmluZGV4IDljODdjMTAuLjk0NGNkNGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BwbWM3eHgvcHBtYzd4eC5jCisrKyBiL2JvYXJkL3BwbWM3eHgvcHBtYzd4eC5jCkBAIC0zMiw3ICszMiw3IEBACiAgKi8KIHBoeXNfc2l6ZV90IGluaXRkcmFtKCBpbnQgYm9hcmRfdHlwZSApCiB7Ci0gICAgcmV0dXJuIENGR19TRFJBTV9TSVpFOworICAgIHJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CiB9CiAKIApkaWZmIC0tZ2l0IGEvYm9hcmQvcHBtYzgyNjAvcHBtYzgyNjAuYyBiL2JvYXJkL3BwbWM4MjYwL3BwbWM4MjYwLmMKaW5kZXggZjNjODUwOS4uMTgwOGFiZCAxMDA2NDQKLS0tIGEvYm9hcmQvcHBtYzgyNjAvcHBtYzgyNjAuYworKysgYi9ib2FyZC9wcG1jODI2MC9wcG1jODI2MC5jCkBAIC0yMDEsMTQgKzIwMSwxNCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIHVjaGFyIGMgPSAweGZmOwotCXZvbGF0aWxlIHVjaGFyICpyYW1hZGRyMCA9ICh1Y2hhciAqKSAoQ0ZHX1NEUkFNMF9CQVNFKTsKLQl2b2xhdGlsZSB1Y2hhciAqcmFtYWRkcjEgPSAodWNoYXIgKikgKENGR19TRFJBTTFfQkFTRSk7Ci0JdWxvbmcgcHNkbXIgPSBDRkdfUFNETVI7Ci0Jdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHIyID0gKHVjaGFyICopIChDRkdfU0RSQU0yX0JBU0UpOwotCXVsb25nIGxzZG1yID0gQ0ZHX0xTRE1SOworCXZvbGF0aWxlIHVjaGFyICpyYW1hZGRyMCA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTTBfQkFTRSk7CisJdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHIxID0gKHVjaGFyICopIChDT05GSUdfU1lTX1NEUkFNMV9CQVNFKTsKKwl1bG9uZyBwc2RtciA9IENPTkZJR19TWVNfUFNETVI7CisJdm9sYXRpbGUgdWNoYXIgKnJhbWFkZHIyID0gKHVjaGFyICopIChDT05GSUdfU1lTX1NEUkFNMl9CQVNFKTsKKwl1bG9uZyBsc2RtciA9IENPTkZJR19TWVNfTFNETVI7CiAJaW50IGk7CiAKIAkvKgpAQCAtMjI4LDEzICsyMjgsMTMgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX1BSRUE7CiAJKnJhbWFkZHIwKysgPSBjOwogCSpyYW1hZGRyMSsrID0gYzsKQEAgLTI0Niw4ICsyNDYsOCBAQAogCX0KIAogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfTVJXOwotCXJhbWFkZHIwID0gKHVjaGFyICopIChDRkdfU0RSQU0wX0JBU0UgKyAweDExMCk7Ci0JcmFtYWRkcjEgPSAodWNoYXIgKikgKENGR19TRFJBTTFfQkFTRSArIDB4MTEwKTsKKwlyYW1hZGRyMCA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTTBfQkFTRSArIDB4MTEwKTsKKwlyYW1hZGRyMSA9ICh1Y2hhciAqKSAoQ09ORklHX1NZU19TRFJBTTFfQkFTRSArIDB4MTEwKTsKIAkqcmFtYWRkcjAgPSBjOwogCSpyYW1hZGRyMSA9IGM7CiAKQEAgLTI3MSwxNSArMjcxLDE1IEBACiAjZW5kaWYKIAogCS8qIHJldHVybiB0b3RhbCByYW0gc2l6ZSAqLwotCXJldHVybiAoKENGR19TRFJBTTBfU0laRSArIENGR19TRFJBTTFfU0laRSkgKiAxMDI0ICogMTAyNCk7CisJcmV0dXJuICgoQ09ORklHX1NZU19TRFJBTTBfU0laRSArIENPTkZJR19TWVNfU0RSQU0xX1NJWkUpICogMTAyNCAqIDEwMjQpOwogfQogCiAjaWZkZWYgQ09ORklHX01JU0NfSU5JVF9SCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX0xFRF9CQVNFCi0JdWNoYXIgZHMgPSAqKHVuc2lnbmVkIGNoYXIgKikgKENGR19MRURfQkFTRSArIDEpOworI2lmZGVmIENPTkZJR19TWVNfTEVEX0JBU0UKKwl1Y2hhciBkcyA9ICoodW5zaWduZWQgY2hhciAqKSAoQ09ORklHX1NZU19MRURfQkFTRSArIDEpOwogCXVjaGFyIHNzOwogCXVjaGFyIHRtcFs2NF07CiAJaW50IHJlczsKQEAgLTI5OCwxMCArMjk4LDEwIEBACiAJCQl0bXBbMTddID0gJ1wwJzsKIAkJCXNldGVudiAoImV0aGFkZHIiLCAoY2hhciAqKXRtcCk7CiAJCQkvKiBzZXQgdGhlIGxlZCB0byBzaG93IHRoZSBhZGRyZXNzICovCi0JCQkqKCh1bnNpZ25lZCBjaGFyICopIChDRkdfTEVEX0JBU0UgKyAxKSkgPSBkczsKKwkJCSooKHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfTEVEX0JBU0UgKyAxKSkgPSBkczsKIAkJfQogCX0KLSNlbmRpZiAvKiBDRkdfTEVEX0JBU0UgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0xFRF9CQVNFICovCiAJcmV0dXJuICgwKTsKIH0KICNlbmRpZiAvKiBDT05GSUdfTUlTQ19JTklUX1IgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3BwbWM4MjYwL3N0cmF0YWZsYXNoLmMgYi9ib2FyZC9wcG1jODI2MC9zdHJhdGFmbGFzaC5jCmluZGV4IGY5YWJmYWMuLmNjOTE2MjcgMTAwNjQ0Ci0tLSBhL2JvYXJkL3BwbWM4MjYwL3N0cmF0YWZsYXNoLmMKKysrIGIvYm9hcmQvcHBtYzgyNjAvc3RyYXRhZmxhc2guYwpAQCAtMTA0LDcgKzEwNCw3IEBACiAKICNkZWZpbmUgTlVNX0VSQVNFX1JFR0lPTlMgNAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMjEsNyArMTIxLDcgQEAKIHN0YXRpYyB1bG9uZyBmbGFzaF9nZXRfc2l6ZSAodWxvbmcgYmFzZSwgaW50IGJhbmtudW0pOwogc3RhdGljIGludCBmbGFzaF93cml0ZV9jZml3b3JkIChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIGNmaXdvcmRfdCBjd29yZCk7CiBzdGF0aWMgaW50IGZsYXNoX2Z1bGxfc3RhdHVzX2NoZWNrKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIHNlY3RvciwgdWxvbmcgdG91dCwgY2hhciAqIHByb21wdCk7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIHN0YXRpYyBpbnQgZmxhc2hfd3JpdGVfY2ZpYnVmZmVyKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVjaGFyICogY3AsIGludCBsZW4pOwogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODEsMTUgKzE4MSwxNSBAQAogCSAqCiAJICovCiAKLQlhZGRyZXNzID0gQ0ZHX0ZMQVNIX0JBU0U7CisJYWRkcmVzcyA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlzaXplID0gMDsKIAogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCXNpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplID0gZmxhc2hfZ2V0X3NpemUoYWRkcmVzcywgaSk7Ci0JCWFkZHJlc3MgKz0gQ0ZHX0ZMQVNIX0lOQ1JFTUVOVDsKKwkJYWRkcmVzcyArPSBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVDsKIAkJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewogCQkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rICVkIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsaSwKIAkJCQlmbGFzaF9pbmZvWzBdLnNpemUsIGZsYXNoX2luZm9baV0uc2l6ZTw8MjApOwpAQCAtMTk3LDggKzE5Nyw4IEBACiAJfQogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRSkKLQlmb3IoaT0wOyBmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldIDwgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xOyBpKyspCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKwlmb3IoaT0wOyBmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMTsgaSsrKQogCQkodm9pZClmbGFzaF9yZWFsX3Byb3RlY3QoJmZsYXNoX2luZm9bMF0sIGksIDEpOwogI2VuZGlmCiAKQEAgLTMxOSw3ICszMTksNyBAQAogCQl3cCA9IGNwOwogCX0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAJd2hpbGUoY250ID49IGluZm8tPnBvcnR3aWR0aCkgewogCQlpID0gaW5mby0+YnVmZmVyX3NpemUgPiBjbnQ/IGNudDogaW5mby0+YnVmZmVyX3NpemU7CiAJCWlmKChyYyA9IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlcihpbmZvLCB3cCwgc3JjLGkpKSAhPSBFUlJfT0spCkBAIC0zNDAsNyArMzQwLDcgQEAKIAkJd3AgKz0gaW5mby0+cG9ydHdpZHRoOwogCQljbnQgLT0gaW5mby0+cG9ydHdpZHRoOwogCX0KLSNlbmRpZiAvKiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLwogCWlmIChjbnQgPT0gMCkgewogCQlyZXR1cm4gKDApOwogCX0KQEAgLTY3OSw3ICs2NzksNyBAQAogCXJldHVybiBmbGFzaF9mdWxsX3N0YXR1c19jaGVjayhpbmZvLCAwLCBpbmZvLT53cml0ZV90b3V0LCAid3JpdGUiKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAKIC8qIGxvb3AgdGhyb3VnaCB0aGUgc2VjdG9ycyBmcm9tIHRoZSBoaWdoZXN0IGFkZHJlc3MKICAqIHdoZW4gdGhlIHBhc3NlZCBhZGRyZXNzIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHNlY3RvciBhZGRyZXNzCkBAIC03NDksNCArNzQ5LDQgQEAKIAlmbGFzaF93cml0ZV9jbWQoaW5mbywgc2VjdG9yLCAwLCBGTEFTSF9DTURfQ0xFQVJfU1RBVFVTKTsKIAlyZXR1cm4gcmV0Y29kZTsKIH0KLSNlbmRpZiAvKiBDRkdfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfVVNFX0ZMQVNIX0JVRkZFUl9XUklURSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvYWxwci9hbHByLmMgYi9ib2FyZC9wcm9kcml2ZS9hbHByL2FscHIuYwppbmRleCBjYzQ5MWQwLi5kYzM0MzE5IDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9hbHByL2FscHIuYworKysgYi9ib2FyZC9wcm9kcml2ZS9hbHByL2FscHIuYwpAQCAtOTIsOCArOTIsOCBAQAogCW10ZGNyICh1aWMwdnIsIDB4MDAwMDAwMDEpOyAvKiAqLwogCiAJLyogU2V0dXAgc2h1dGRvd24vU1NEIGVtcHR5IGludGVycnVwdCBhcyBpbnB1dHMgKi8KLQlvdXQzMihHUElPMF9UQ1IsIGluMzIoR1BJTzBfVENSKSAmIH4oQ0ZHX0dQSU9fU0hVVERPV04gfCBDRkdfR1BJT19TU0RfRU1QVFkpKTsKLQlvdXQzMihHUElPMF9PRFIsIGluMzIoR1BJTzBfT0RSKSAmIH4oQ0ZHX0dQSU9fU0hVVERPV04gfCBDRkdfR1BJT19TU0RfRU1QVFkpKTsKKwlvdXQzMihHUElPMF9UQ1IsIGluMzIoR1BJTzBfVENSKSAmIH4oQ09ORklHX1NZU19HUElPX1NIVVRET1dOIHwgQ09ORklHX1NZU19HUElPX1NTRF9FTVBUWSkpOworCW91dDMyKEdQSU8wX09EUiwgaW4zMihHUElPMF9PRFIpICYgfihDT05GSUdfU1lTX0dQSU9fU0hVVERPV04gfCBDT05GSUdfU1lTX0dQSU9fU1NEX0VNUFRZKSk7CiAKIAkvKiBTZXR1cCBHUElPL0lSUSBtdWx0aXBsZXhpbmcgKi8KIAltdHNkcihzZHJfcGZjMCwgMHgwMWEzM2UwMCk7CkBAIC0xMjQsOCArMTI0LDggQEAKIHN0YXRpYyBpbnQgYm9hcmRfcmV2KHZvaWQpCiB7CiAJLyogU2V0dXAgYXMgaW5wdXQgKi8KLQlvdXQzMihHUElPMF9UQ1IsIGluMzIoR1BJTzBfVENSKSAmIH4oQ0ZHX0dQSU9fUkVWMCB8IENGR19HUElPX1JFVjEpKTsKLQlvdXQzMihHUElPMF9PRFIsIGluMzIoR1BJTzBfT0RSKSAmIH4oQ0ZHX0dQSU9fUkVWMCB8IENGR19HUElPX1JFVjEpKTsKKwlvdXQzMihHUElPMF9UQ1IsIGluMzIoR1BJTzBfVENSKSAmIH4oQ09ORklHX1NZU19HUElPX1JFVjAgfCBDT05GSUdfU1lTX0dQSU9fUkVWMSkpOworCW91dDMyKEdQSU8wX09EUiwgaW4zMihHUElPMF9PRFIpICYgfihDT05GSUdfU1lTX0dQSU9fUkVWMCB8IENPTkZJR19TWVNfR1BJT19SRVYxKSk7CiAKIAlyZXR1cm4gKGluMzIoR1BJTzBfSVIpID4+IDE2KSAmIDB4MzsKIH0KQEAgLTE4Niw3ICsxODYsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICogaG9zZSApCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTIwMSw3ICsyMDEsNyBAQAogCSAqIE1hcCBhbGwgb2YgU0RSQU0gdG8gUENJIGFkZHJlc3MgMHgwMDAwXzAwMDAuIE5vdGUgdGhhdCB0aGUgNDQwIHN0cmFwcGluZwogCSAqIG9wdGlvbnMgdG8gbm90IHN1cHBvcnQgc2l6ZXMgc3VjaCBhcyAxMjgvMjU2IE1CLgogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDMyciggUENJWDBfUElNMExBTCwgQ0ZHX1NEUkFNX0JBU0UgKTsKKwlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSApOwogCW91dDMyciggUENJWDBfUElNMExBSCwgMCApOwogCW91dDMyciggUENJWDBfUElNMFNBLCB+KGdkLT5yYW1fc2l6ZSAtIDEpIHwgMSApOwogCkBAIC0yMTAsMTIgKzIxMCwxMiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0Jb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKLQlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKIAogCW91dDE2ciggUENJWDBfQ01ELCBpbjE2cihQQ0lYMF9DTUQpIHwgUENJX0NPTU1BTkRfTUVNT1JZIHwgUENJX0NPTU1BTkRfTUFTVEVSKTsKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgaXNfcGNpX2hvc3QKQEAgLTIzOSwxMSArMjM5LDExIEBACiAJLyoKIAkgKiBDb25maWd1cmUgRVJFQURZIGFzIGlucHV0CiAJICovCi0Jb3V0MzIoR1BJTzBfVENSLCBpbjMyKEdQSU8wX1RDUikgJiB+Q0ZHX0dQSU9fRVJFQURZKTsKKwlvdXQzMihHUElPMF9UQ1IsIGluMzIoR1BJTzBfVENSKSAmIH5DT05GSUdfU1lTX0dQSU9fRVJFQURZKTsKIAl1ZGVsYXkoMTAwMCk7CiAKIAlmb3IgKDs7KSB7Ci0JCWlmIChpbjMyKEdQSU8wX0lSKSAmIENGR19HUElPX0VSRUFEWSkKKwkJaWYgKGluMzIoR1BJTzBfSVIpICYgQ09ORklHX1NZU19HUElPX0VSRUFEWSkKIAkJCXJldHVybjsKIAl9CiAKQEAgLTI2MCw3ICsyNjAsNyBAQAogICogIHBjaV9tYXN0ZXJfaW5pdAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogdm9pZCBwY2lfbWFzdGVyX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0yNzQsMTkgKzI3NCwxOSBAQAogCW91dDMyciggUENJWDBfUE9NMVNBLCAwICk7IC8qIGRpc2FibGUgKi8KIAlvdXQzMnIoIFBDSVgwX1BPTTJTQSwgMCApOyAvKiBkaXNhYmxlICovCiAKLQlvdXQzMnIoUENJWDBfUE9NMExBTCwgQ0ZHX1BDSV9NRU1CQVNFKTsJLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BPTTBMQUwsIENPTkZJR19TWVNfUENJX01FTUJBU0UpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE9NMExBSCwgMHgwMDAwMDAwMyk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QT00wUENJQUwsIENGR19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCisJb3V0MzJyKFBDSVgwX1BPTTBQQ0lBTCwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSk7CS8qIFBNTTAgUENJIExvdyBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BPTTBQQ0lBSCwgMHgwMDAwMDAwMCk7CS8qIFBNTTAgUENJIEhpZ2ggQWRkcmVzcyAqLwogCW91dDMycihQQ0lYMF9QT00wU0EsIH4oMHgxMDAwMDAwMCAtIDEpIHwgMSk7CS8qIDI1Nk1CICsgZW5hYmxlIHJlZ2lvbiAqLwogCi0Jb3V0MzJyKFBDSVgwX1BPTTFMQUwsIENGR19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KKwlvdXQzMnIoUENJWDBfUE9NMUxBTCwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIExvY2FsIEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE9NMUxBSCwgMHgwMDAwMDAwMyk7CS8qIFBNTTAgTG9jYWwgQWRkcmVzcyAqLwotCW91dDMycihQQ0lYMF9QT00xUENJQUwsIENGR19QQ0lfTUVNQkFTRTIpOwkvKiBQTU0wIFBDSSBMb3cgQWRkcmVzcyAqLworCW91dDMycihQQ0lYMF9QT00xUENJQUwsIENPTkZJR19TWVNfUENJX01FTUJBU0UyKTsJLyogUE1NMCBQQ0kgTG93IEFkZHJlc3MgKi8KIAlvdXQzMnIoUENJWDBfUE9NMVBDSUFILCAweDAwMDAwMDAwKTsJLyogUE1NMCBQQ0kgSGlnaCBBZGRyZXNzICovCiAJb3V0MzJyKFBDSVgwX1BPTTFTQSwgfigweDEwMDAwMDAwIC0gMSkgfCAxKTsJLyogMjU2TUIgKyBlbmFibGUgcmVnaW9uICovCiB9Ci0jZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfTUFTVEVSX0lOSVQpICovCisjZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKSAqLwogCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9hbHByL2NvbmZpZy5tayBiL2JvYXJkL3Byb2RyaXZlL2FscHIvY29uZmlnLm1rCmluZGV4IDllMTgzMzUuLmI2MmU3NzYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL2FscHIvY29uZmlnLm1rCisrKyBiL2JvYXJkL3Byb2RyaXZlL2FscHIvY29uZmlnLm1rCkBAIC00MCw1ICs0MCw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvYWxwci9mcGdhLmMgYi9ib2FyZC9wcm9kcml2ZS9hbHByL2ZwZ2EuYwppbmRleCBlOTQzNjBmLi4wZWNlYmM5IDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9hbHByL2ZwZ2EuYworKysgYi9ib2FyZC9wcm9kcml2ZS9hbHByL2ZwZ2EuYwpAQCAtNjEsMTAgKzYxLDEwIEBACiAjZGVmaW5lCVNFVF9HUElPXzAoYml0KQkJU0VUX0dQSU9fUkVHXzAoR1BJTzBfT1IsIGJpdCkKICNkZWZpbmUJU0VUX0dQSU9fMShiaXQpCQlTRVRfR1BJT19SRUdfMShHUElPMF9PUiwgYml0KQogCi0jZGVmaW5lIEZQR0FfUFJHCQkoMHg4MDAwMDAwMCA+PiBDRkdfR1BJT19QUk9HX0VOKQotI2RlZmluZSBGUEdBX0NPTkZJRwkJKDB4ODAwMDAwMDAgPj4gQ0ZHX0dQSU9fQ09ORklHKQotI2RlZmluZSBGUEdBX0RBVEEJCSgweDgwMDAwMDAwID4+IENGR19HUElPX0RBVEEpCi0jZGVmaW5lIEZQR0FfQ0xLCQkoMHg4MDAwMDAwMCA+PiBDRkdfR1BJT19DTEspCisjZGVmaW5lIEZQR0FfUFJHCQkoMHg4MDAwMDAwMCA+PiBDT05GSUdfU1lTX0dQSU9fUFJPR19FTikKKyNkZWZpbmUgRlBHQV9DT05GSUcJCSgweDgwMDAwMDAwID4+IENPTkZJR19TWVNfR1BJT19DT05GSUcpCisjZGVmaW5lIEZQR0FfREFUQQkJKDB4ODAwMDAwMDAgPj4gQ09ORklHX1NZU19HUElPX0RBVEEpCisjZGVmaW5lIEZQR0FfQ0xLCQkoMHg4MDAwMDAwMCA+PiBDT05GSUdfU1lTX0dQSU9fQ0xLKQogI2RlZmluZSBPTERfVkFMCQkJKEZQR0FfUFJHIHwgRlBHQV9DT05GSUcpCiAKICNkZWZpbmUgU0VUX0ZQR0EoZGF0YSkJCW91dDMyKEdQSU8wX09SLCBkYXRhKQpAQCAtODcsNDMgKzg3LDQzIEBACiAKIAlyZWcgPSBpbjMyKEdQSU8wX0lSKTsKIAkvKiBFbmFibGUgdGhlIEZQR0EgQ2hhaW4gKi8KLQlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENGR19HUElPX1BST0dfRU4pOwotCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ0ZHX0dQSU9fUFJPR19FTik7Ci0JU0VUX0dQSU9fMShDRkdfR1BJT19QUk9HX0VOKTsKLQlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENGR19HUElPX1NFTF9EUFIpOwotCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ0ZHX0dQSU9fU0VMX0RQUik7Ci0JU0VUX0dQSU9fMCgoQ0ZHX0dQSU9fU0VMX0RQUikpOworCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX1BST0dfRU4pOworCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ09ORklHX1NZU19HUElPX1BST0dfRU4pOworCVNFVF9HUElPXzEoQ09ORklHX1NZU19HUElPX1BST0dfRU4pOworCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX1NFTF9EUFIpOworCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ09ORklHX1NZU19HUElPX1NFTF9EUFIpOworCVNFVF9HUElPXzAoKENPTkZJR19TWVNfR1BJT19TRUxfRFBSKSk7CiAKIAkvKiBpbml0aWFsaXplIHRoZSBHUElPIFBpbnMgKi8KIAkvKiBvdXRwdXQgKi8KLQlTRVRfR1BJT18wKENGR19HUElPX0NMSyk7Ci0JU0VUX0dQSU9fUkVHXzEoR1BJTzBfVENSLCBDRkdfR1BJT19DTEspOwotCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ0ZHX0dQSU9fQ0xLKTsKKwlTRVRfR1BJT18wKENPTkZJR19TWVNfR1BJT19DTEspOworCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX0NMSyk7CisJU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDT05GSUdfU1lTX0dQSU9fQ0xLKTsKIAogCS8qIG91dHB1dCAqLwotCVNFVF9HUElPXzAoQ0ZHX0dQSU9fREFUQSk7Ci0JU0VUX0dQSU9fUkVHXzEoR1BJTzBfVENSLCBDRkdfR1BJT19EQVRBKTsKLQlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENGR19HUElPX0RBVEEpOworCVNFVF9HUElPXzAoQ09ORklHX1NZU19HUElPX0RBVEEpOworCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX0RBVEEpOworCVNFVF9HUElPX1JFR18wKEdQSU8wX09EUiwgQ09ORklHX1NZU19HUElPX0RBVEEpOwogCiAJLyogRmlyc3Qgd2Ugc2V0IFNUQVRVUyB0byAwIHRoZW4gYXMgYW4gaW5wdXQgKi8KLQlTRVRfR1BJT19SRUdfMShHUElPMF9UQ1IsIENGR19HUElPX1NUQVRVUyk7Ci0JU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDRkdfR1BJT19TVEFUVVMpOwotCVNFVF9HUElPXzAoQ0ZHX0dQSU9fU1RBVFVTKTsKLQlTRVRfR1BJT19SRUdfMChHUElPMF9UQ1IsIENGR19HUElPX1NUQVRVUyk7Ci0JU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDRkdfR1BJT19TVEFUVVMpOworCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX1NUQVRVUyk7CisJU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDT05GSUdfU1lTX0dQSU9fU1RBVFVTKTsKKwlTRVRfR1BJT18wKENPTkZJR19TWVNfR1BJT19TVEFUVVMpOworCVNFVF9HUElPX1JFR18wKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX1NUQVRVUyk7CisJU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDT05GSUdfU1lTX0dQSU9fU1RBVFVTKTsKIAogCS8qIG91dHB1dCAqLwotCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ0ZHX0dQSU9fQ09ORklHKTsKLQlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENGR19HUElPX0NPTkZJRyk7Ci0JU0VUX0dQSU9fMChDRkdfR1BJT19DT05GSUcpOworCVNFVF9HUElPX1JFR18xKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX0NPTkZJRyk7CisJU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDT05GSUdfU1lTX0dQSU9fQ09ORklHKTsKKwlTRVRfR1BJT18wKENPTkZJR19TWVNfR1BJT19DT05GSUcpOwogCiAJLyogaW5wdXQgKi8KLQlTRVRfR1BJT18wKENGR19HUElPX0NPTl9ET04pOwotCVNFVF9HUElPX1JFR18wKEdQSU8wX1RDUiwgQ0ZHX0dQSU9fQ09OX0RPTik7Ci0JU0VUX0dQSU9fUkVHXzAoR1BJTzBfT0RSLCBDRkdfR1BJT19DT05fRE9OKTsKKwlTRVRfR1BJT18wKENPTkZJR19TWVNfR1BJT19DT05fRE9OKTsKKwlTRVRfR1BJT19SRUdfMChHUElPMF9UQ1IsIENPTkZJR19TWVNfR1BJT19DT05fRE9OKTsKKwlTRVRfR1BJT19SRUdfMChHUElPMF9PRFIsIENPTkZJR19TWVNfR1BJT19DT05fRE9OKTsKIAogCS8qIENPTkZJRyA9IDAgU1RBVFVTID0gMCAtPiBGUEdBIGluIHJlc2V0IHN0YXRlICovCi0JU0VUX0dQSU9fMChDRkdfR1BJT19DT05GSUcpOworCVNFVF9HUElPXzAoQ09ORklHX1NZU19HUElPX0NPTkZJRyk7CiAJcmV0dXJuIEZQR0FfU1VDQ0VTUzsKIH0KIApAQCAtMTMxLDkgKzEzMSw5IEBACiBpbnQgZnBnYV9jb25maWdfZm4gKGludCBhc3NlcnRfY29uZmlnLCBpbnQgZmx1c2gsIGludCBjb29raWUpCiB7CiAJaWYgKGFzc2VydF9jb25maWcpIHsKLQkJU0VUX0dQSU9fMShDRkdfR1BJT19DT05GSUcpOworCQlTRVRfR1BJT18xKENPTkZJR19TWVNfR1BJT19DT05GSUcpOwogCX0gZWxzZSB7Ci0JCVNFVF9HUElPXzAoQ0ZHX0dQSU9fQ09ORklHKTsKKwkJU0VUX0dQSU9fMChDT05GSUdfU1lTX0dQSU9fQ09ORklHKTsKIAl9CiAJcmV0dXJuIEZQR0FfU1VDQ0VTUzsKIH0KQEAgLTE0NCw3ICsxNDQsNyBAQAogCXVuc2lnbmVkIGxvbmcJcmVnOwogCiAJcmVnID0gaW4zMihHUElPMF9JUik7Ci0JaWYgKHJlZyAmPSAoMHg4MDAwMDAwMCA+PiBDRkdfR1BJT19TVEFUVVMpKSB7CisJaWYgKHJlZyAmPSAoMHg4MDAwMDAwMCA+PiBDT05GSUdfU1lTX0dQSU9fU1RBVFVTKSkgewogCQlQUklOVEYoIlNUQVRVUyA9IEhJR0hcbiIpOwogCQlyZXR1cm4gRlBHQV9GQUlMOwogCX0KQEAgLTE1Nyw3ICsxNTcsNyBAQAogewogCXVuc2lnbmVkIGxvbmcJcmVnOwogCXJlZyA9IGluMzIoR1BJTzBfSVIpOwotCWlmIChyZWcgJj0gKDB4ODAwMDAwMDAgPj4gQ0ZHX0dQSU9fQ09OX0RPTikpIHsKKwlpZiAocmVnICY9ICgweDgwMDAwMDAwID4+IENPTkZJR19TWVNfR1BJT19DT05fRE9OKSkgewogCQlQUklOVEYoIkNPTkZfRE9OID0gSElHSFxuIik7CiAJCXJldHVybiBGUEdBX0ZBSUw7CiAJfQpAQCAtMTg5LDEwICsxODksMTAgQEAKIAkJCWkgLS07CiAJCX0gd2hpbGUgKGkgPiAwKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlpZiAoYnl0ZWNvdW50ICUgbGVuXzQwID09IDApIHsKIAkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwotI2lmZGVmIENGR19GUEdBX0NIRUNLX0NUUkxDCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCiAJCQlpZiAoY3RybGMgKCkpCiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKICNlbmRpZgpAQCAtMjA1LDcgKzIwNSw3IEBACiAvKiBjYWxsZWQsIHdoZW4gcHJvZ3JhbW1pbmcgaXMgYWJvcnRlZCAqLwogaW50IGZwZ2FfYWJvcnRfZm4gKGludCBjb29raWUpCiB7Ci0JU0VUX0dQSU9fMSgoQ0ZHX0dQSU9fU0VMX0RQUikpOworCVNFVF9HUElPXzEoKENPTkZJR19TWVNfR1BJT19TRUxfRFBSKSk7CiAJcmV0dXJuIEZQR0FfU1VDQ0VTUzsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvYWxwci9pbml0LlMgYi9ib2FyZC9wcm9kcml2ZS9hbHByL2luaXQuUwppbmRleCA3NjE2NGNlLi40YWY3ZDEzIDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9hbHByL2luaXQuUworKysgYi9ib2FyZC9wcm9kcml2ZS9hbHByL2luaXQuUwpAQCAtODcsMjYgKzg3LDI2IEBACiB0bGJ0YWI6CiAJdGxidGFiX3N0YXJ0CiAJdGxiZW50cnkoIDB4ZmYwMDAwMDAsIFNaXzE2TSwgMHhmZjAwMDAwMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19JU1JBTV9CQVNFLCBTWl80SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1ggKQotCXRsYmVudHJ5KCBDRkdfSVNSQU1fQkFTRSArIDB4MTAwMCwgU1pfNEssIDB4ODAwMDEwMDAsIDAsIEFDX1J8QUNfV3xBQ19YICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzRLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCApCisJdGxiZW50cnkoIENPTkZJR19TWVNfSVNSQU1fQkFTRSArIDB4MTAwMCwgU1pfNEssIDB4ODAwMDEwMDAsIDAsIEFDX1J8QUNfV3xBQ19YICkKICNpZmRlZiBDT05GSUdfNHh4X0RDQUNIRQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfRykKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HKQogI2Vsc2UKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0RDQUNIRQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCiAJLyogVExCLWVudHJ5IGZvciBpbml0LXJhbSBpbiBkY2FjaGUgKFNBX0kgbXVzdCBiZSB0dXJuZWQgb2ZmISkgKi8KLQl0bGJlbnRyeSggQ0ZHX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ0ZHX0lOSVRfUkFNX0FERFIsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0cgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIFNaXzY0SywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HICkKICNlbmRpZgotCXRsYmVudHJ5KCBDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKIAogCS8qIFBDSSAqLwotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRSwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRTEsIFNaXzI1Nk0sIENGR19QQ0lfTUVNQkFTRTEsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDRkdfUENJX01FTUJBU0UyLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UxLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UyLCBTWl8yNTZNLCBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMiwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAKIAkvKiBOQU5EICovCi0JdGxiZW50cnkoIENGR19OQU5EX0JBU0UsIFNaXzRLLCBDRkdfTkFORF9CQVNFLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX05BTkRfQkFTRSwgU1pfNEssIENPTkZJR19TWVNfTkFORF9CQVNFLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL3Byb2RyaXZlL2FscHIvbmFuZC5jIGIvYm9hcmQvcHJvZHJpdmUvYWxwci9uYW5kLmMKaW5kZXggOTlmNTczNy4uYjE4Yzk2YiAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvYWxwci9uYW5kLmMKKysrIGIvYm9hcmQvcHJvZHJpdmUvYWxwci9uYW5kLmMKQEAgLTEzNyw3ICsxMzcsNyBAQAogCiBpbnQgYm9hcmRfbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQpCiB7Ci0JYWxwcl9uZGZjID0gKHN0cnVjdCBhbHByX25kZmNfcmVncyAqKUNGR19OQU5EX0JBU0U7CisJYWxwcl9uZGZjID0gKHN0cnVjdCBhbHByX25kZmNfcmVncyAqKUNPTkZJR19TWVNfTkFORF9CQVNFOwogCiAJbmFuZC0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwogCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9jb21tb24vZmxhc2guYyBiL2JvYXJkL3Byb2RyaXZlL2NvbW1vbi9mbGFzaC5jCmluZGV4IDM2MzYzMWYuLmM0MmZhODMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL2NvbW1vbi9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyoKICAqIEZ1bmN0aW9ucwpAQCAtOTEsNyArOTEsNyBAQAogCiAJcHJpbnRmICgiICBTZWN0b3IgU3RhcnQgQWRkcmVzc2VzOiIpOwogCWZvciAoaT0wOyBpPGluZm8tPnNlY3Rvcl9jb3VudDsgKytpKSB7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAkJLyoKIAkJICogQ2hlY2sgaWYgd2hvbGUgc2VjdG9yIGlzIGVyYXNlZAogCQkgKi8KQEAgLTEzNiwzMSArMTM2LDMxIEBACiB7CiAJc2hvcnQgaTsKIAlzaG9ydCBuOwotCUNGR19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CisJQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CiAJdWxvbmcgYmFzZSA9ICh1bG9uZylhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWFkZHI7CiAKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwOTAwMDkwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDU1MDA1NTsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwOTAwMDkwOwogCi0JdmFsdWUgPSBhZGRyMltDRkdfRkxBU0hfUkVBRDBdOworCXZhbHVlID0gYWRkcjJbQ09ORklHX1NZU19GTEFTSF9SRUFEMF07CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQ7CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpRlVKX01BTlVGQUNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUZVSl9NQU5VRkFDVDoKIAkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fRlVKOwogCQlicmVhazsKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKVNTVF9NQU5VRkFDVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlTU1RfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX1NTVDsKIAkJYnJlYWs7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTVE1fTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1RNX01BTlVGQUNUOgogCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9TVE07CiAJCWJyZWFrOwotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpRVhDRUxfTUFOVUZBQ1Q6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpRVhDRUxfTUFOVUZBQ1Q6CiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0VYQ0VMOwogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtMTcwLDgyICsxNzAsODIgQEAKIAkJcmV0dXJuICgwKTsJCQkvKiBubyBvciB1bmtub3duIGZsYXNoCSovCiAJfQogCi0JdmFsdWUgPSBhZGRyMltDRkdfRkxBU0hfUkVBRDFdOwkJLyogZGV2aWNlIElECQkqLworCXZhbHVlID0gYWRkcjJbQ09ORklHX1NZU19GTEFTSF9SRUFEMV07CQkvKiBkZXZpY2UgSUQJCSovCiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjQwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMC41IE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY0MDBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjQwMEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNNDAwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTE7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMC41IE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjgwMFQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNODAwVDsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMTk7CiAJCWluZm8tPnNpemUgPSAweDAwMTAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMSBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWODAwQjoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFY4MDBCOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTgwMEI7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDE5OwogCQlpbmZvLT5zaXplID0gMHgwMDEwMDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDEgTUIJCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MFQ6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMTYwVDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0xNjBUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAzNTsKIAkJaW5mby0+c2l6ZSA9IDB4MDAyMDAwMDA7CiAJCWJyZWFrOwkJCQkvKiA9PiAyIE1CCQkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYxNjBCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjE2MEI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMTYwQjsKIAkJaW5mby0+c2VjdG9yX2NvdW50ID0gMzU7CiAJCWluZm8tPnNpemUgPSAweDAwMjAwMDAwOwogCQlicmVhazsJCQkJLyogPT4gMiBNQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwVDoKKwljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfTFYzMjBUOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTMyMFQ7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQlpbmZvLT5zaXplID0gMHgwMDQwMDAwMDsgIGJyZWFrOwkvKiA9PiA0IE1CCSovCiAKLQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMEI6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfQU0zMjBCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMlQ6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjJUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjJCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyMkI6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjJCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNUOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM1Q6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjNUOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfREwzMjNCOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9ETDMyM0I6CiAJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNREwzMjNCOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7ICBicmVhazsJLyogPT4gNCBNQgkqLwogCi0JY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlTU1RfSURfeEYwMjA6CisJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMDIwOgogCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9TU1QwMjA7CiAJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDY0OwogCQlpbmZvLT5zaXplID0gMHgwMDA0MDAwMDsKIAkJYnJlYWs7CQkJCS8qID0+IDI1NiBrQgkJKi8KIAotCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpU1NUX0lEX3hGMDQwOgorCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKVNTVF9JRF94RjA0MDoKIAkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfU1NUMDQwOwogCQlpbmZvLT5zZWN0b3JfY291bnQgPSAxMjg7CiAJCWluZm8tPnNpemUgPSAweDAwMDgwMDAwOwpAQCAtMzE4LDE5ICszMTgsMTkgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCQlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVkVORE1BU0spICE9IEZMQVNIX01BTl9BTUQpCiAJCQlpbmZvLT5wcm90ZWN0W2ldID0gMDsKIAkJZWxzZQotCQkJaW5mby0+cHJvdGVjdFtpXSA9IGFkZHIyW0NGR19GTEFTSF9SRUFEMl0gJiAxOworCQkJaW5mby0+cHJvdGVjdFtpXSA9IGFkZHIyW0NPTkZJR19TWVNfRkxBU0hfUkVBRDJdICYgMTsKIAl9CiAKIAkvKgogCSAqIFByZXZlbnQgd3JpdGVzIHRvIHVuaW5pdGlhbGl6ZWQgRkxBU0guCiAJICovCiAJaWYgKGluZm8tPmZsYXNoX2lkICE9IEZMQVNIX1VOS05PV04pIHsKLQkJYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOwotCQkqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopaW5mby0+c3RhcnRbMF07CisJCSphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJfQogCiAJcmV0dXJuIChpbmZvLT5zaXplKTsKQEAgLTMzOSw4ICszMzksOCBAQAogCiBpbnQgZmxhc2hfZXJhc2UoZmxhc2hfaW5mb190ICppbmZvLCBpbnQgc19maXJzdCwgaW50IHNfbGFzdCkKIHsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwogCkBAIC0zNzUsMTQgKzM3NSwxNCBAQAogCS8qIFN0YXJ0IGVyYXNlIG9uIHVucHJvdGVjdGVkIHNlY3RvcnMgKi8KIAlmb3IgKHNlY3QgPSBzX2ZpcnN0OyBzZWN0PD1zX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbc2VjdF0pOworCQkJYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbc2VjdF0pOwogCQkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fU1NUKSB7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODA7Ci0JCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJCQlhZGRyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwotCQkJCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDMwMDAzMDsgIC8qIHNlY3RvciBlcmFzZSAqLworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwOworCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDMwMDAzMDsgIC8qIHNlY3RvciBlcmFzZSAqLwogCiAJCQkJLyogcmUtZW5hYmxlIGludGVycnVwdHMgaWYgbmVjZXNzYXJ5ICovCiAJCQkJaWYgKGZsYWcpIHsKQEAgLTM5MiwyMCArMzkyLDIwIEBACiAKIAkJCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCQkJc3RhcnQgPSBnZXRfdGltZXIgKDApOwotCQkJCXdoaWxlICgoYWRkcjJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQotCQkJCSAgICAgICAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JCQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCQkJd2hpbGUgKChhZGRyMlswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQorCQkJCSAgICAgICAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgeworCQkJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQkJCXJldHVybiAoMSk7CiAJCQkJfQogCQkJfSBlbHNlIHsKIAkJCQlpZiAoc2VjdCA9PSBzX2ZpcnN0KSB7Ci0JCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODA7Ci0JCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7Ci0JCQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OworCQkJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODA7CisJCQkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKKwkJCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwogCQkJCX0KLQkJCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDAzMDAwMzA7ICAvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCQlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwMzAwMDMwOyAgLyogc2VjdG9yIGVyYXNlICovCiAJCQl9CiAJCQlsX3NlY3QgPSBzZWN0OwogCQl9CkBAIC00MjYsOSArNDI2LDkgQEAKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlsYXN0ICA9IHN0YXJ0OwotCWFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKLQl3aGlsZSAoKGFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCWFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CisJd2hpbGUgKChhZGRyWzBdICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQ0MSw4ICs0NDEsOCBAQAogCiBET05FOgogCS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwotCWFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOwotCWFkZHJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKWluZm8tPnN0YXJ0WzBdOworCWFkZHJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMEYwMDBGMDsJLyogcmVzZXQgYmFuayAqLwogCiAJcHJpbnRmICgiIGRvbmVcbiIpOwogCXJldHVybiAwOwpAQCAtNTIyLDkgKzUyMiw5IEBACiAgKi8KIHN0YXRpYyBpbnQgd3JpdGVfd29yZChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKWRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSZkYXRhOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopZGVzdDsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikmZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgZmxhZzsKIAlpbnQgaTsKQEAgLTUzNiwxMCArNTM2LDEwIEBACiAJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cygpOwogCi0JZm9yIChpPTA7IGk8NC9zaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgewotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMEFBMDBBQTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQTAwMEEwOworCWZvciAoaT0wOyBpPDQvc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBQTAwQUE7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDA1NTAwNTU7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTB4MDBBMDAwQTA7CiAKIAkJZGVzdDJbaV0gPSBkYXRhMltpXTsKIApAQCAtNTQ5LDkgKzU0OSw5IEBACiAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lciAoMCk7Ci0JCXdoaWxlICgoZGVzdDJbaV0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPQotCQkgICAgICAgKGRhdGEyW2ldICYgKENGR19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpCisJCXdoaWxlICgoZGVzdDJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0KKwkJICAgICAgIChkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpCiAJCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3Byb2RyaXZlL2NvbW1vbi9mcGdhLmMgYi9ib2FyZC9wcm9kcml2ZS9jb21tb24vZnBnYS5jCmluZGV4IGY5NDEyYTIuLjE0YmZmMDcgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL2NvbW1vbi9mcGdhLmMKKysrIGIvYm9hcmQvcHJvZHJpdmUvY29tbW9uL2ZwZ2EuYwpAQCAtMzcsMTEgKzM3LDExIEBACiAjZGVmaW5lIERCRyh4Li4uKQogI2VuZGlmIC8qIERFQlVHICovCiAKLSNkZWZpbmUgRlBHQV9QUkcJCUNGR19GUEdBX1BSRyAvKiBGUEdBIHByb2dyYW0gcGluIChjcHUgb3V0cHV0KSovCi0jZGVmaW5lIEZQR0FfQ0xLCQlDRkdfRlBHQV9DTEsgLyogRlBHQSBjbGsgcGluIChjcHUgb3V0cHV0KSAgICAqLwotI2RlZmluZSBGUEdBX0RBVEEJCUNGR19GUEdBX0RBVEEgLyogRlBHQSBkYXRhIHBpbiAoY3B1IG91dHB1dCkgICovCi0jZGVmaW5lIEZQR0FfRE9ORQkJQ0ZHX0ZQR0FfRE9ORSAvKiBGUEdBIGRvbmUgcGluIChjcHUgaW5wdXQpICAgKi8KLSNkZWZpbmUgRlBHQV9JTklUCQlDRkdfRlBHQV9JTklUIC8qIEZQR0EgaW5pdCBwaW4gKGNwdSBpbnB1dCkgICAqLworI2RlZmluZSBGUEdBX1BSRwkJQ09ORklHX1NZU19GUEdBX1BSRyAvKiBGUEdBIHByb2dyYW0gcGluIChjcHUgb3V0cHV0KSovCisjZGVmaW5lIEZQR0FfQ0xLCQlDT05GSUdfU1lTX0ZQR0FfQ0xLIC8qIEZQR0EgY2xrIHBpbiAoY3B1IG91dHB1dCkgICAgKi8KKyNkZWZpbmUgRlBHQV9EQVRBCQlDT05GSUdfU1lTX0ZQR0FfREFUQSAvKiBGUEdBIGRhdGEgcGluIChjcHUgb3V0cHV0KSAgKi8KKyNkZWZpbmUgRlBHQV9ET05FCQlDT05GSUdfU1lTX0ZQR0FfRE9ORSAvKiBGUEdBIGRvbmUgcGluIChjcHUgaW5wdXQpICAgKi8KKyNkZWZpbmUgRlBHQV9JTklUCQlDT05GSUdfU1lTX0ZQR0FfSU5JVCAvKiBGUEdBIGluaXQgcGluIChjcHUgaW5wdXQpICAgKi8KIAogI2RlZmluZSBFUlJPUl9GUEdBX1BSR19JTklUX0xPVyAgLTEgICAgICAgIC8qIFRpbWVvdXQgYWZ0ZXIgUFJHKiBhc3NlcnRlZCAgICovCiAjZGVmaW5lIEVSUk9SX0ZQR0FfUFJHX0lOSVRfSElHSCAtMiAgICAgICAgLyogVGltZW91dCBhZnRlciBQUkcqIGRlYXNzZXJ0ZWQgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3Byb2RyaXZlL3AzbXgvbWlzYy5TIGIvYm9hcmQvcHJvZHJpdmUvcDNteC9taXNjLlMKaW5kZXggMTYwYjFkMy4uMjMzZmQ4MyAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcDNteC9taXNjLlMKKysrIGIvYm9hcmQvcHJvZHJpdmUvcDNteC9taXNjLlMKQEAgLTE2LDcgKzE2LDcgQEAKIGJvYXJkX3JlbG9jYXRlX3JvbToKIAltZmxyCXI3CiAJLyogdXBkYXRlIHRoZSBsb2NhdGlvbiBvZiB0aGUgR1QgcmVnaXN0ZXJzICovCi0JbGlzCXIxMSwgQ0ZHX0dUX1JFR1NAaAorCWxpcwlyMTEsIENPTkZJR19TWVNfR1RfUkVHU0BoCiAJLyogaWYgd2UncmUgdXNpbmcgRUNDLCB3ZSBtdXN0IHVzZSB0aGUgRE1BIGVuZ2luZSB0byBjb3B5IG91cnNlbHZlcyAqLwogCWJsCXN0YXJ0X2lkbWFfdHJhbnNmZXJfMAogCWJsCXdhaXRfZm9yX2lkbWFfMApAQCAtMjksMTIgKzI5LDEyIEBACiBib2FyZF9pbml0X2VjYzoKIAltZmxyCXI3CiAJLyogTk9URTogcjEwIHN0aWxsIGNvbnRhaW5zIHRoZSBsb2NhdGlvbiB3ZSd2ZSBiZWVuIHJlbG9jYXRlZCB0bwotCSAqIHdoaWNoIGhhcHBlbnMgdG8gYmUgVE9QX09GX1JBTSAtIENGR19NT05JVE9SX0xFTiAqLworCSAqIHdoaWNoIGhhcHBlbnMgdG8gYmUgVE9QX09GX1JBTSAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gKi8KIAogCS8qIG5vdyB0aGF0IHdlJ3JlIHJ1bm5pbmcgZnJvbSByYW0sIGluaXQgdGhlIHJlc3Qgb2YgbWFpbiBtZW1vcnkKIAkgKiBmb3IgRUNDIHVzZSAqLwotCWxpcwlyOCwgQ0ZHX01PTklUT1JfTEVOQGgKLQlvcmkJcjgsIHI4LCBDRkdfTU9OSVRPUl9MRU5AbAorCWxpcwlyOCwgQ09ORklHX1NZU19NT05JVE9SX0xFTkBoCisJb3JpCXI4LCByOCwgQ09ORklHX1NZU19NT05JVE9SX0xFTkBsCiAKIAlkaXZ3CXIzLCByMTAsIHI4CiAKQEAgLTEyMCwxNSArMTIwLDE1IEBACiAJYmxyCiAjZW5kaWYKIAotI2lmZGVmIENGR19CT0FSRF9BU01fSU5JVAorI2lmZGVmIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQKIAkvKiBOT1RFOiB0cmFzaGVzIHIzLXI3ICovCiAJLmdsb2JsIGJvYXJkX2FzbV9pbml0CiBib2FyZF9hc21faW5pdDoKIAkvKiBqdXN0IG1vdmUgdGhlIEdUIHJlZ2lzdGVycyB0byB3aGVyZSB0aGV5IGJlbG9uZyAqLwotCWxpcwlyMywgQ0ZHX0RGTF9HVF9SRUdTQGgKLQlvcmkJcjMsIHIzLCBDRkdfREZMX0dUX1JFR1NAbAotCWxpcwlyNCwgQ0ZHX0dUX1JFR1NAaAotCW9yaQlyNCwgcjQsIENGR19HVF9SRUdTQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfREZMX0dUX1JFR1NAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfREZMX0dUX1JFR1NAbAorCWxpcwlyNCwgQ09ORklHX1NZU19HVF9SRUdTQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0dUX1JFR1NAbAogCWxpCXI1LCBJTlRFUk5BTF9TUEFDRV9ERUNPREUKIAogCS8qIHRlc3QgdG8gc2VlIGlmIHdlJ3ZlIGFscmVhZHkgbW92ZWQgKi8KQEAgLTE1MywxMSArMTUzLDExIEBACiAJY21wCWNyMCwgcjcsIHI2CiAJYm5lCTFiCiAKLQlsaXMJcjMsIENGR19JTlRfU1JBTV9CQVNFQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU5UX1NSQU1fQkFTRUBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lOVF9TUkFNX0JBU0VAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU5UX1NSQU1fQkFTRUBsCiAJcmx3aW5tICByMywgcjMsIDE2LCAxNiwgMzEKLQlsaXMJcjQsIENGR19HVF9SRUdTQGgKLQlvcmkJcjQsIHI0LCBDRkdfR1RfUkVHU0BsCisJbGlzCXI0LCBDT05GSUdfU1lTX0dUX1JFR1NAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfR1RfUkVHU0BsCiAJbGkJcjUsIElOVEVHUkFURURfU1JBTV9CQVNFX0FERFIKIAlzdHdicnggIHIzLCByNSwgcjQKIApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcDNteC9tcHNjLmMgYi9ib2FyZC9wcm9kcml2ZS9wM214L21wc2MuYwppbmRleCAyNDk0ZWM2Li5jYzA1YjQ1IDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wM214L21wc2MuYworKysgYi9ib2FyZC9wcm9kcml2ZS9wM214L21wc2MuYwpAQCAtNDIyLDcgKzQyMiw3IEBACiAJCQkgIChNVjY0NDYwX0NVTklUX0JBU0VfQUREUl9XSU5fMF9CSVQgKiAyKSkpOwogCiAJLyogU2V0dXAgTVBTQyBpbnRlcm5hbCBhZGRyZXNzIHNwYWNlIGJhc2UgYWRkcmVzcwkqLwotCUdUX1JFR19XUklURSAoQ1VOSVRfSU5URVJOQUxfU1BBQ0VfQkFTRV9BRERSX1JFRywgQ0ZHX0dUX1JFR1MpOworCUdUX1JFR19XUklURSAoQ1VOSVRfSU5URVJOQUxfU1BBQ0VfQkFTRV9BRERSX1JFRywgQ09ORklHX1NZU19HVF9SRUdTKTsKIAogCS8qIG5vIGhpZ2ggYWRkcmVzcyByZW1hcCovCiAJR1RfUkVHX1dSSVRFIChDVU5JVF9ISUdIX0FERFJfUkVNQVBfUkVHMCwgMHgwMCk7CkBAIC01MTIsOSArNTEyLDkgQEAKIAogI2lmZGVmIFpVTUFfTlRMCiAJLyogZnJvbSB0Y2xrICovCi0JY2xvY2sgPSAoQ0ZHX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOworCWNsb2NrID0gKENPTkZJR19TWVNfVENMSyAvICgxNiAqIHJhdGUpKSAtIDE7CiAjZWxzZQotCWNsb2NrID0gKENGR19UQ0xLIC8gKDE2ICogcmF0ZSkpIC0gMTsKKwljbG9jayA9IChDT05GSUdfU1lTX1RDTEsgLyAoMTYgKiByYXRlKSkgLSAxOwogI2VuZGlmCiAKIAlnYWxicmdfc2V0X0NEViAoY2hhbm5lbCwgY2xvY2spOwkvKiBzZXQgdGltZXIgUmVnLiBmb3IgQlJHICovCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wM214L3AzbXguYyBiL2JvYXJkL3Byb2RyaXZlL3AzbXgvcDNteC5jCmluZGV4IDY5ZDdjOWIuLjAyNDdiYjggMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL3AzbXgvcDNteC5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL3AzbXgvcDNteC5jCkBAIC02Nyw3ICs2Nyw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIHRoaXMgaXMgdGhlIGN1cnJlbnQgR1QgcmVnaXN0ZXIgc3BhY2UgbG9jYXRpb24gKi8KLS8qIGl0IHN0YXJ0cyBhdCBDRkdfREZMX0dUX1JFR1MgYnV0IG1vdmVzIGxhdGVyIHRvIENGR19HVF9SRUdTICovCisvKiBpdCBzdGFydHMgYXQgQ09ORklHX1NZU19ERkxfR1RfUkVHUyBidXQgbW92ZXMgbGF0ZXIgdG8gQ09ORklHX1NZU19HVF9SRUdTICovCiAKIC8qIFVuZm9ydHVuYXRlbHksIHdlIGNhbnQgY2hhbmdlIGl0IHdoaWxlIHdlIGFyZSBpbiBmbGFzaCwgc28gd2UgaW5pdGlhbGl6ZSBpdAogICogdG8gdGhlICJmaW5hbCIgdmFsdWUuIFRoaXMgbWVhbnMgdGhhdCBhbnkgZGVidWdfbGVkIGNhbGxzIGJlZm9yZQpAQCAtNzYsNyArNzYsNyBAQAogICovCiAKIHZvaWQgYm9hcmRfcHJlYm9vdG1faW5pdCAodm9pZCk7Ci11bnNpZ25lZCBpbnQgSU5URVJOQUxfUkVHX0JBU0VfQUREUiA9IENGR19HVF9SRUdTOwordW5zaWduZWQgaW50IElOVEVSTkFMX1JFR19CQVNFX0FERFIgPSBDT05GSUdfU1lTX0dUX1JFR1M7CiBpbnQgZGlzcGxheV9tZW1fbWFwICh2b2lkKTsKIHZvaWQgc2V0X2xlZChpbnQpOwogCkBAIC0xMjksNyArMTI5LDcgQEAKIAogCQlHVF9SRUdfV1JJVEUgKFBDSV8wX0NPTkZJR19BRERSLCBCSVQzMSB8IHZhbCk7CiAJCUdUX1JFR19XUklURSAoUENJXzBfQ09ORklHX0RBVEFfVklSVFVBTF9SRUcsCi0JCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ0ZHX1BDSV9JRFNFTCk7CisJCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ09ORklHX1NZU19QQ0lfSURTRUwpOwogCiAJfQogCWlmICgoR1RSRUdSRUFEIChQQ0lfMV9NT0RFKSAmIChCSVQ0IHwgQklUNSkpICE9IDApIHsJLyogaWYgIFBDSS1YICovCkBAIC0xMzgsNyArMTM4LDcgQEAKIAogCQlHVF9SRUdfV1JJVEUgKFBDSV8xX0NPTkZJR19BRERSLCBCSVQzMSB8IHZhbCk7CiAJCUdUX1JFR19XUklURSAoUENJXzFfQ09ORklHX0RBVEFfVklSVFVBTF9SRUcsCi0JCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ0ZHX1BDSV9JRFNFTCk7CisJCQkgICAgICAoc3RhdCAmIDB4ZmZmZjAwMDApIHwgQ09ORklHX1NZU19QQ0lfSURTRUwpOwogCX0KIAogCS8qIEVuYWJsZSBtYXN0ZXIgKi8KQEAgLTE1NywyMSArMTU3LDIxIEBACiAJICogaW4gNjQzNjAgd2hlbiB3cml0aW5nIHRvIHBjaSBiYXNlIGdvIGFuZCBvdmVyaWRlIHJlbWFwIGF1dG9tYXRpY2FseSwKIAkgKiBpbiA2NDQ2MCBpdCBkb2Vzbid0CiAJICovCi0JR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19CQVNFX0FERFIsIENGR19QQ0kwX0lPX1NQQUNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wSV9PX0FERFJFU1NfUkVNQVAsIENGR19QQ0kwX0lPX1NQQUNFX1BDSSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMF9JT19TSVpFLCAoQ0ZHX1BDSTBfSU9fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX0lPX0JBU0VfQUREUiwgQ09ORklHX1NZU19QQ0kwX0lPX1NQQUNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wSV9PX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0kgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfSU9fU0laRSwgKENPTkZJR19TWVNfUENJMF9JT19TSVpFIC0gMSkgPj4gMTYpOwogCi0JR1RfUkVHX1dSSVRFIChQQ0lfMF9NRU1PUlkwX0JBU0VfQUREUiwgQ0ZHX1BDSTBfTUVNX0JBU0UgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzBNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENGR19QQ0kwX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfU0laRSwgKENGR19QQ0kwX01FTV9TSVpFIC0gMSkgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzBfTUVNT1JZMF9CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfME1FTU9SWTBfQUREUkVTU19SRU1BUCwgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8wX01FTU9SWTBfU0laRSwgKENPTkZJR19TWVNfUENJMF9NRU1fU0laRSAtIDEpID4+IDE2KTsKIAotCUdUX1JFR19XUklURSAoUENJXzFfSU9fQkFTRV9BRERSLCBDRkdfUENJMV9JT19TUEFDRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMUlfT19BRERSRVNTX1JFTUFQLCBDRkdfUENJMV9JT19TUEFDRV9QQ0kgPj4gMTYpOwotCUdUX1JFR19XUklURSAoUENJXzFfSU9fU0laRSwgKENGR19QQ0kxX0lPX1NJWkUgLSAxKSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9JT19CQVNFX0FERFIsIENPTkZJR19TWVNfUENJMV9JT19TUEFDRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMUlfT19BRERSRVNTX1JFTUFQLCBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX0lPX1NJWkUsIChDT05GSUdfU1lTX1BDSTFfSU9fU0laRSAtIDEpID4+IDE2KTsKIAotCUdUX1JFR19XUklURSAoUENJXzFfTUVNT1JZMF9CQVNFX0FERFIsIENGR19QQ0kxX01FTV9CQVNFID4+IDE2KTsKLQlHVF9SRUdfV1JJVEUgKFBDSV8xTUVNT1JZMF9BRERSRVNTX1JFTUFQLCBDRkdfUENJMV9NRU1fQkFTRSA+PiAxNik7Ci0JR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX1NJWkUsIChDRkdfUENJMV9NRU1fU0laRSAtIDEpID4+IDE2KTsKKwlHVF9SRUdfV1JJVEUgKFBDSV8xX01FTU9SWTBfQkFTRV9BRERSLCBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgPj4gMTYpOworCUdUX1JFR19XUklURSAoUENJXzFNRU1PUlkwX0FERFJFU1NfUkVNQVAsIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxNik7CisJR1RfUkVHX1dSSVRFIChQQ0lfMV9NRU1PUlkwX1NJWkUsIChDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUgLSAxKSA+PiAxNik7CiAKIAkvKiBQQ0kgaW50ZXJmYWNlIHNldHRpbmdzICovCiAJLyogVGltZW91dCBzZXQgdG8gcmV0cnkgZm9yZXZlciAqLwpAQCAtMTg5LDcgKzE4OSw3IEBACiAJZm9yIChzdGF0ID0gMDsgc3RhdCA8PSBQQ0lfSE9TVDE7IHN0YXQrKykKIAkJcGNpV3JpdGVDb25maWdSZWcgKHN0YXQsCiAJCQkJICAgUENJX0lOVEVSTkFMX1JFR0lTVEVSU19NRU1PUllfTUFQUEVEX0JBU0VfQUREUkVTUywKLQkJCQkgICBTRUxGLCBDRkdfR1RfUkVHUyk7CisJCQkJICAgU0VMRiwgQ09ORklHX1NZU19HVF9SRUdTKTsKICNlbmRpZgogCiB9CkBAIC0yMDQsNyArMjA0LDcgQEAKIAkvKiBjcHUgY29uZmlndXJhdGlvbiByZWdpc3RlciAqLwogCXRtcCA9IEdUUkVHUkVBRCAoQ1BVX0NPTkZJR1VSQVRJT04pOwogCS8qIHNldCB0aGUgU0lOR0xFX0NQVSBiaXQgIHNlZSBNVjY0NDYwICovCi0jaWZuZGVmIENGR19HVF9EVUFMX0NQVQkJLyogU0lOR0xFX0NQVSBzZWVtcyB0byBjYXVzZSBKVEFHIHByb2JsZW1zICovCisjaWZuZGVmIENPTkZJR19TWVNfR1RfRFVBTF9DUFUJCS8qIFNJTkdMRV9DUFUgc2VlbXMgdG8gY2F1c2UgSlRBRyBwcm9ibGVtcyAqLwogCXRtcCB8PSBDUFVfQ09ORl9TSU5HTEVfQ1BVOwogI2VuZGlmCiAJdG1wICY9IH5DUFVfQ09ORl9BQUNLX0RFTEFZXzI7CkBAIC0yNDYsNyArMjQ2LDcgQEAKIAkgKiB0aGF0IGlmIGl0J3Mgbm90IGF0IHRoZSBwb3dlci1vbiBsb2NhdGlvbiwgaXQncyB3aGVyZSB3ZSBwdXQKIAkgKiBpdCBsYXN0IHRpbWUuIChodWJlcikKIAkgKi8KLQlteV9yZW1hcF9ndF9yZWdzIChDRkdfREZMX0dUX1JFR1MsIENGR19HVF9SRUdTKTsKKwlteV9yZW1hcF9ndF9yZWdzIChDT05GSUdfU1lTX0RGTF9HVF9SRUdTLCBDT05GSUdfU1lTX0dUX1JFR1MpOwogCiAjaWZkZWYgQ09ORklHX1BDSQogCWd0X3BjaV9jb25maWcgKCk7CkBAIC0yNzQsMTcgKzI3NCwxNyBAQAogCW1lbW9yeU1hcERldmljZVNwYWNlKERFVklDRTMsIDAsIDApOwogCUdUX1JFR19XUklURShERVZJQ0VfQkFOSzNQQVJBTUVURVJTLCAwKTsKIAotCUdUX1JFR19XUklURShERVZJQ0VfQk9PVF9CQU5LX1BBUkFNRVRFUlMsIENGR19CT09UX1BBUik7CisJR1RfUkVHX1dSSVRFKERFVklDRV9CT09UX0JBTktfUEFSQU1FVEVSUywgQ09ORklHX1NZU19CT09UX1BBUik7CiAKIAlndF9jcHVfY29uZmlnKCk7CiAKIAkvKiBNUFAgc2V0dXAgKi8KLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMCwgQ0ZHX01QUF9DT05UUk9MXzApOwotCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wxLCBDRkdfTVBQX0NPTlRST0xfMSk7Ci0JR1RfUkVHX1dSSVRFIChNUFBfQ09OVFJPTDIsIENGR19NUFBfQ09OVFJPTF8yKTsKLQlHVF9SRUdfV1JJVEUgKE1QUF9DT05UUk9MMywgQ0ZHX01QUF9DT05UUk9MXzMpOworCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wwLCBDT05GSUdfU1lTX01QUF9DT05UUk9MXzApOworCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wxLCBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEpOworCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wyLCBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIpOworCUdUX1JFR19XUklURSAoTVBQX0NPTlRST0wzLCBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMpOwogCi0JR1RfUkVHX1dSSVRFIChHUFBfTEVWRUxfQ09OVFJPTCwgQ0ZHX0dQUF9MRVZFTF9DT05UUk9MKTsKKwlHVF9SRUdfV1JJVEUgKEdQUF9MRVZFTF9DT05UUk9MLCBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MKTsKIAogCXNldF9sZWQoTEVEX1JFRCk7CiAKQEAgLTI5OCw3ICsyOTgsNyBAQAogCXU4IHZhbDsKIAogCWljYWNoZV9lbmFibGUgKCk7Ci0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCWwyY2FjaGVfZW5hYmxlICgpOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX01QU0MKQEAgLTMxMSw3ICszMTEsNyBAQAogCSAqIE5vIGRpb2RlLCAyNTAgb2htIHNlcmllcyByZXNpc3RvcgogCSAqLwogCXZhbCA9IDB4YTU7Ci0JaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIDgsIDEsICZ2YWwsIDEpOworCWkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgOCwgMSwgJnZhbCwgMSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTMyOCw3ICszMjgsNyBAQAogCiB2b2lkIGFmdGVyX3JlbG9jICh1bG9uZyBkZXN0X2FkZHIsIGdkX3QgKiBnZCkKIHsKLQltZW1vcnlNYXBEZXZpY2VTcGFjZSAoQk9PVF9ERVZJQ0UsIENGR19CT09UX1NQQUNFLCBDRkdfQk9PVF9TSVpFKTsKKwltZW1vcnlNYXBEZXZpY2VTcGFjZSAoQk9PVF9ERVZJQ0UsIENPTkZJR19TWVNfQk9PVF9TUEFDRSwgQ09ORklHX1NZU19CT09UX1NJWkUpOwogCiAvKglkaXNwbGF5X21lbV9tYXAoKTsgKi8KIApAQCAtMzQ3LDcgKzM0Nyw3IEBACiB7CiAJY2hhciAqcyA9IGdldGVudigic2VyaWFsIyIpOwogCi0JcHJpbnRmKCJCb2FyZDogJXMiLCBDRkdfQk9BUkRfTkFNRSk7CisJcHJpbnRmKCJCb2FyZDogJXMiLCBDT05GSUdfU1lTX0JPQVJEX05BTUUpOwogCiAJaWYgKHMgIT0gTlVMTCkgewogCQlwdXRzKCIsIHNlcmlhbCMgIik7CkBAIC00NTgsNyArNDU4LDcgQEAKIAogLyogRFJBTSBjaGVjayByb3V0aW5lcyBjb3BpZWQgZnJvbSBndzgyNjAgKi8KIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1QpCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgbW92ZTY0KCkgLSAgbW92ZXMgYSBkb3VibGUgd29yZCAoNjQtYml0KQkJICAgICAqLwpAQCAtNDg5LDcgKzQ4OSw3IEBACiB9CiAKIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1RfREFUQSkKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBKQogCiB1bnNpZ25lZCBsb25nIGxvbmcgcGF0dGVybltdID0gewogCTB4YWFhYWFhYWFhYWFhYWFhYVVMTCwKQEAgLTU1Miw3ICs1NTIsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBtZW1fdGVzdF9kYXRhICh2b2lkKQogewotCXVuc2lnbmVkIGxvbmcgbG9uZyAqcG1lbSA9ICh1bnNpZ25lZCBsb25nIGxvbmcgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7CisJdW5zaWduZWQgbG9uZyBsb25nICpwbWVtID0gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CiAJdW5zaWduZWQgbG9uZyBsb25nIHRlbXA2NCA9IDA7CiAJaW50IG51bV9wYXR0ZXJucyA9IHNpemVvZiAocGF0dGVybikgLyBzaXplb2YgKHBhdHRlcm5bMF0pOwogCWludCBpOwpAQCAtNTc5LDkgKzU3OSw5IEBACiAKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUX0RBVEEgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBICovCiAKLSNpZiBkZWZpbmVkIChDRkdfRFJBTV9URVNUX0FERFJFU1MpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUykKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBOQU1FOiAgbWVtX3Rlc3RfYWRkcmVzcygpIC0JdGVzdCBhZGRyZXNzIGxpbmVzCQkgICAgICovCiAvKgkJCQkJCQkJICAgICAqLwpAQCAtNjA2LDggKzYwNiw4IEBACiBpbnQgbWVtX3Rlc3RfYWRkcmVzcyAodm9pZCkKIHsKIAl2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnBtZW0gPQotCQkodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIENGR19NRU1URVNUX1NUQVJUOwotCWNvbnN0IHVuc2lnbmVkIGludCBzaXplID0gKENGR19NRU1URVNUX0VORCAtIENGR19NRU1URVNUX1NUQVJUKSAvIDQ7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCWNvbnN0IHVuc2lnbmVkIGludCBzaXplID0gKENPTkZJR19TWVNfTUVNVEVTVF9FTkQgLSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQpIC8gNDsKIAl1bnNpZ25lZCBpbnQgaTsKIAogCS8qIHdyaXRlIGFkZHJlc3MgdG8gZWFjaCBsb2NhdGlvbiAqLwpAQCAtNjIzLDkgKzYyMyw5IEBACiAJfQogCXJldHVybiAwOwogfQotI2VuZGlmIC8qIENGR19EUkFNX1RFU1RfQUREUkVTUyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MgKi8KIAotI2lmIGRlZmluZWQgKENGR19EUkFNX1RFU1RfV0FMSykKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE5BTUU6ICAgbWVtX21hcmNoKCkgLSAgbWVtb3J5IG1hcmNoCQkJCSAgICAgKi8KIC8qCQkJCQkJCQkgICAgICovCkBAIC02ODMsNyArNjgzLDcgQEAKIAl9CiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVF9XQUxLICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSyAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogTkFNRTogICBtZW1fdGVzdF93YWxrKCkgLSAgYSBzaW1wbGUgd2Fsa2luZyBvbmVzIHRlc3QJICAgICAqLwpAQCAtNzE1LDggKzcxNSw4IEBACiB7CiAJdW5zaWduZWQgbG9uZyBsb25nIG1hc2s7CiAJdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nICpwbWVtID0KLQkJKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQljb25zdCB1bnNpZ25lZCBsb25nIHNpemUgPSAoQ0ZHX01FTVRFU1RfRU5EIC0gQ0ZHX01FTVRFU1RfU1RBUlQpIC8gODsKKwkJKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJY29uc3QgdW5zaWduZWQgbG9uZyBzaXplID0gKENPTkZJR19TWVNfTUVNVEVTVF9FTkQgLSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQpIC8gODsKIAogCXVuc2lnbmVkIGludCBpOwogCkBAIC03ODIsMTUgKzc4MiwxNSBAQAogCWludCBydW5hZGRyZXNzID0gMDsKIAlpbnQgcnVud2FsayAgICA9IDA7CiAKLSNpZmRlZiBDRkdfRFJBTV9URVNUX0RBVEEKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBCiAJcyA9IGdldGVudiAoInRlc3RkcmFtZGF0YSIpOwogCXJ1bmRhdGEgPSAocyAmJiAoKnMgPT0gJ3knKSkgPyAxIDogMDsKICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfQUREUkVTUworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MKIAlzID0gZ2V0ZW52ICgidGVzdGRyYW1hZGRyZXNzIik7CiAJcnVuYWRkcmVzcyA9IChzICYmICgqcyA9PSAneScpKSA/IDEgOiAwOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9XQUxLCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSwogCXMgPSBnZXRlbnYgKCJ0ZXN0ZHJhbXdhbGsiKTsKIAlydW53YWxrID0gKHMgJiYgKCpzID09ICd5JykpID8gMSA6IDA7CiAjZW5kaWYKQEAgLTc5OCw4ICs3OTgsOCBAQAogCWlmICgocnVuZGF0YSA9PSAxKSB8fCAocnVuYWRkcmVzcyA9PSAxKSB8fCAocnVud2FsayA9PSAxKSkKIAkJcHJpbnRmICgiVGVzdGluZyBSQU0gZnJvbSAweCUwOHggdG8gMHglMDh4IC4uLiAgIgogCQkJIihkb24ndCBwYW5pYy4uLiB0aGF0IHdpbGwgdGFrZSBhIG1vbWVudCAhISEhKVxuIiwKLQkJCUNGR19NRU1URVNUX1NUQVJULCBDRkdfTUVNVEVTVF9FTkQpOwotI2lmZGVmIENGR19EUkFNX1RFU1RfREFUQQorCQkJQ09ORklHX1NZU19NRU1URVNUX1NUQVJULCBDT05GSUdfU1lTX01FTVRFU1RfRU5EKTsKKyNpZmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBCiAJaWYgKHJ1bmRhdGEgPT0gMSkgewogCQlwcmludGYgKCJUZXN0IERBVEEgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X2RhdGEgKCkgPT0gMSkgewpAQCAtODA5LDcgKzgwOSw3IEBACiAJCQlwcmludGYgKCJvayBcbiIpOwogCX0KICNlbmRpZgotI2lmZGVmIENGR19EUkFNX1RFU1RfQUREUkVTUworI2lmZGVmIENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MKIAlpZiAocnVuYWRkcmVzcyA9PSAxKSB7CiAJCXByaW50ZiAoIlRlc3QgQUREUkVTUyAuLi4gICIpOwogCQlpZiAobWVtX3Rlc3RfYWRkcmVzcyAoKSA9PSAxKSB7CkBAIC04MTksNyArODE5LDcgQEAKIAkJCXByaW50ZiAoIm9rIFxuIik7CiAJfQogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RSQU1fVEVTVF9XQUxLCisjaWZkZWYgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSwogCWlmIChydW53YWxrID09IDEpIHsKIAkJcHJpbnRmICgiVGVzdCBXQUxLSU5HIE9ORXMgLi4uICAiKTsKIAkJaWYgKG1lbV90ZXN0X3dhbGsgKCkgPT0gMSkgewpAQCAtODM0LDcgKzgzNCw3IEBACiAJcmV0dXJuIDA7CiAKIH0KLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogLyogcm9uZW4gLSB0aGUgYmVsb3cgZnVuY3Rpb25zIGFyZSB1c2VkIGJ5IHRoZSBib290bSBmdW5jdGlvbiAgICAgICAgICAgKi8KIC8qICAtIHdlIG1hcCB0aGUgYmFzZSByZWdpc3RlciB0byBmYmUwMDAwMCAoc2FtZSBtYXBwaW5nIGFzIGluIHRoZSBMU1ApICovCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wM214L3BjaS5jIGIvYm9hcmQvcHJvZHJpdmUvcDNteC9wY2kuYwppbmRleCAxMzc3MzliLi44NWY3Y2FhIDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wM214L3BjaS5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL3AzbXgvcGNpLmMKQEAgLTkzMiwxNCArOTMyLDE0IEBACiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTBfaG9zZS5yZWdpb25zICsgMCwKLQkJCUNGR19QQ0kwXzBfTUVNX1NQQUNFLAotCQkJQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMF9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkJQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFLAorCQkJQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CiAKIAkvKiBQQ0kgSS9PIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKHBjaTBfaG9zZS5yZWdpb25zICsgMSwKLQkJCUNGR19QQ0kwX0lPX1NQQUNFX1BDSSwKLQkJCUNGR19QQ0kwX0lPX1NQQUNFLCBDRkdfUENJMF9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwkJCUNPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0ksCisJCQlDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UsIENPTkZJR19TWVNfUENJMF9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAogCXBjaV9zZXRfb3BzICgmcGNpMF9ob3NlLAogCQkgICAgIHBjaV9ob3NlX3JlYWRfY29uZmlnX2J5dGVfdmlhX2R3b3JkLApAQCAtOTgxLDE0ICs5ODEsMTQgQEAKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMV9ob3NlLnJlZ2lvbnMgKyAwLAotCQkJQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UsCi0JCQlDRkdfUENJMV8wX01FTV9TUEFDRSwKLQkJCUNGR19QQ0kxX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJCQlDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UsCisJCQlDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJL08gc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbiAocGNpMV9ob3NlLnJlZ2lvbnMgKyAxLAotCQkJQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJLAotCQkJQ0ZHX1BDSTFfSU9fU1BBQ0UsIENGR19QQ0kxX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSSwKKwkJCUNPTkZJR19TWVNfUENJMV9JT19TUEFDRSwgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOwogCiAJcGNpX3NldF9vcHMgKCZwY2kxX2hvc2UsCiAJCSAgICAgcGNpX2hvc2VfcmVhZF9jb25maWdfYnl0ZV92aWFfZHdvcmQsCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wM214L3NkcmFtX2luaXQuYyBiL2JvYXJkL3Byb2RyaXZlL3AzbXgvc2RyYW1faW5pdC5jCmluZGV4IGQ4ODFkMzguLmJhYzZjMTIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL3AzbXgvc2RyYW1faW5pdC5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL3AzbXgvc2RyYW1faW5pdC5jCkBAIC0yNDMsOSArMjQzLDkgQEAKIAl1ZGVsYXkoMik7ICAvKiBGSVhNRSAgbWFrZSB0aGlzIGR5bmFtaWMgZm9yIHRoZSBzeXN0ZW0gY2xvY2sgKi8KIAogCS8qIFNEUkFNIGluaXQgZG9uZSAqLwotCW1lbW9yeV9tYXBfYmFuaygwLCBDRkdfU0RSQU1fQkFTRSwgICgyNTYgPDwgMjApKTsKLSNpZmRlZiBDRkdfU0RSQU0xX0JBU0UKLQltZW1vcnlfbWFwX2JhbmsoMSwgQ0ZHX1NEUkFNMV9CQVNFLCAoMjU2IDw8IDIwKSk7CisJbWVtb3J5X21hcF9iYW5rKDAsIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgICgyNTYgPDwgMjApKTsKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNMV9CQVNFCisJbWVtb3J5X21hcF9iYW5rKDEsIENPTkZJR19TWVNfU0RSQU0xX0JBU0UsICgyNTYgPDwgMjApKTsKICNlbmRpZgogCiAJLyogRFVOSVRfTU1BU0s6IGVuYWJsZSBTbm9vcEhpdEVuIGJpdCB0byBhdm9pZCBlcnJhdGEgQ1BVLSM0CmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvY29uZmlnLm1rIGIvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL2NvbmZpZy5tawppbmRleCBlNTcyMmRkLi42MGQzYmY0IDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvY29uZmlnLm1rCisrKyBiL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9jb25maWcubWsKQEAgLTQwLDUgKzQwLDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvaW5pdC5TIGIvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL2luaXQuUwppbmRleCBlZTZiNzA2Li44YzFhNzljIDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvaW5pdC5TCisrKyBiL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9pbml0LlMKQEAgLTkwLDEwICs5MCwxMCBAQAogdGxidGFiOgogICAgIHRsYnRhYl9zdGFydAogICAgIHRsYmVudHJ5KCAweGYwMDAwMDAwLCBTWl8yNTZNLCAweGYwMDAwMDAwLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCi0gICAgdGxiZW50cnkoIENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0gICAgdGxiZW50cnkoIENGR19JU1JBTV9CQVNFLCBTWl80SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1ggKQotICAgIHRsYmVudHJ5KCBDRkdfSVNSQU1fQkFTRSArIDB4MTAwMCwgU1pfNEssIDB4ODAwMDEwMDAsIDAsIEFDX1J8QUNfV3xBQ19YICkKLSAgICB0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0gICAgdGxiZW50cnkoIENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0gICAgdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzRLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWCApCisgICAgdGxiZW50cnkoIENPTkZJR19TWVNfSVNSQU1fQkFTRSArIDB4MTAwMCwgU1pfNEssIDB4ODAwMDEwMDAsIDAsIEFDX1J8QUNfV3xBQ19YICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorICAgIHRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKyAgICB0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAgICAgdGxidGFiX2VuZApkaWZmIC0tZ2l0IGEvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL3AzcDQ0MC5jIGIvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL3AzcDQ0MC5jCmluZGV4IDFhOGFhY2IuLjFhMDQ4NmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9wM3A0NDAuYworKysgYi9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvcDNwNDQwLmMKQEAgLTM1LDI5ICszNSwyOSBAQAogewogCXN3aXRjaCAoY29sb3IpIHsKIAljYXNlIExFRF9PRkY6Ci0JCW91dDMyKEdQSU8wX09SLCAgaW4zMihHUElPMF9PUikgJiB+Q0ZHX0xFRF9HUkVFTiAmIH5DRkdfTEVEX1JFRCk7CisJCW91dDMyKEdQSU8wX09SLCAgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19MRURfR1JFRU4gJiB+Q09ORklHX1NZU19MRURfUkVEKTsKIAkJYnJlYWs7CiAKIAljYXNlIExFRF9HUkVFTjoKLQkJb3V0MzIoR1BJTzBfT1IsICAoaW4zMihHUElPMF9PUikgfCBDRkdfTEVEX0dSRUVOKSAmIH5DRkdfTEVEX1JFRCk7CisJCW91dDMyKEdQSU8wX09SLCAgKGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19MRURfR1JFRU4pICYgfkNPTkZJR19TWVNfTEVEX1JFRCk7CiAJCWJyZWFrOwogCiAJY2FzZSBMRURfUkVEOgotCQlvdXQzMihHUElPMF9PUiwgIChpbjMyKEdQSU8wX09SKSB8IENGR19MRURfUkVEKSAmIH5DRkdfTEVEX0dSRUVOKTsKKwkJb3V0MzIoR1BJTzBfT1IsICAoaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX0xFRF9SRUQpICYgfkNPTkZJR19TWVNfTEVEX0dSRUVOKTsKIAkJYnJlYWs7CiAKIAljYXNlIExFRF9PUkFOR0U6Ci0JCW91dDMyKEdQSU8wX09SLCAgaW4zMihHUElPMF9PUikgfCBDRkdfTEVEX0dSRUVOIHwgQ0ZHX0xFRF9SRUQpOworCQlvdXQzMihHUElPMF9PUiwgIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19MRURfR1JFRU4gfCBDT05GSUdfU1lTX0xFRF9SRUQpOwogCQlicmVhazsKIAl9CiB9CiAKIHN0YXRpYyBpbnQgaXNfbW9uYXJjaCh2b2lkKQogewotCW91dDMyKEdQSU8wX09SLCAgaW4zMihHUElPMF9PUikgJiB+Q0ZHX0dQSU9fUkRZKTsKKwlvdXQzMihHUElPMF9PUiwgIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfR1BJT19SRFkpOwogCXVkZWxheSgxMDAwKTsKIAotCWlmIChpbjMyKEdQSU8wX0lSKSAmIENGR19NT05BUkNIX0lPKQorCWlmIChpbjMyKEdQSU8wX0lSKSAmIENPTkZJR19TWVNfTU9OQVJDSF9JTykKIAkJcmV0dXJuIDA7CiAJZWxzZQogCQlyZXR1cm4gMTsKQEAgLTY4LDExICs2OCwxMSBAQAogCS8qCiAJICogQ29uZmlndXJlIEVSRUFEWV9JTyBhcyBpbnB1dAogCSAqLwotCW91dDMyKEdQSU8wX1RDUiwgaW4zMihHUElPMF9UQ1IpICYgfkNGR19FUkVBRFlfSU8pOworCW91dDMyKEdQSU8wX1RDUiwgaW4zMihHUElPMF9UQ1IpICYgfkNPTkZJR19TWVNfRVJFQURZX0lPKTsKIAl1ZGVsYXkoMTAwMCk7CiAKIAlmb3IgKDs7KSB7Ci0JCWlmIChpbjMyKEdQSU8wX0lSKSAmIENGR19FUkVBRFlfSU8pCisJCWlmIChpbjMyKEdQSU8wX0lSKSAmIENPTkZJR19TWVNfRVJFQURZX0lPKQogCQkJcmV0dXJuOwogCX0KIApAQCAtOTUsOCArOTUsOCBAQAogCW10ZGNyKGNwYzBfZ3BpbywgMHgwM0YwMUY4MCk7CiAKIAlvdXQzMihHUElPMF9PRFIsIDB4MDAwMDAwMDApOwkvKiBubyBvcGVuIGRyYWluIHBpbnMgICAgICAqLwotCW91dDMyKEdQSU8wX1RDUiwgQ0ZHX0dQSU9fUkRZIHwgQ0ZHX0VSRUFEWV9JTyB8IENGR19MRURfUkVEIHwgQ0ZHX0xFRF9HUkVFTik7Ci0Jb3V0MzIoR1BJTzBfT1IsICBDRkdfR1BJT19SRFkpOworCW91dDMyKEdQSU8wX1RDUiwgQ09ORklHX1NZU19HUElPX1JEWSB8IENPTkZJR19TWVNfRVJFQURZX0lPIHwgQ09ORklHX1NZU19MRURfUkVEIHwgQ09ORklHX1NZU19MRURfR1JFRU4pOworCW91dDMyKEdQSU8wX09SLCAgQ09ORklHX1NZU19HUElPX1JEWSk7CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICogU2V0dXAgdGhlIGludGVycnVwdCBjb250cm9sbGVyIHBvbGFyaXRpZXMsIHRyaWdnZXJzLCBldGMuCkBAIC0xNTIsNyArMTUyLDcgQEAKIAkvKgogCSAqIENoZWNrIGlmIG9ubHkgb25lIEZMQVNIIGJhbmsgaXMgYXZhaWxhYmxlCiAJICovCi0JaWYgKGdkLT5iZC0+YmlfZmxhc2hzaXplICE9IENGR19NQVhfRkxBU0hfQkFOS1MgKiAoMCAtIENGR19GTEFTSDApKSB7CisJaWYgKGdkLT5iZC0+YmlfZmxhc2hzaXplICE9IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICogKDAgLSBDT05GSUdfU1lTX0ZMQVNIMCkpIHsKIAkJbXRlYmMocGIxY3IsIDApOwkJCS8qIGRpc2FibGUgY3MgKi8KIAkJbXRlYmMocGIxYXAsIDApOwogCQltdGViYyhwYjJjciwgMCk7CQkJLyogZGlzYWJsZSBjcyAqLwpAQCAtMjAzLDcgKzIwMyw3IEBACiAgKgltYXkgbm90IGJlIHN1ZmZpY2llbnQgZm9yIGEgZ2l2ZW4gYm9hcmQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiB2b2lkIHBjaV90YXJnZXRfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTIxOCw3ICsyMTgsNyBAQAogCSAqIE1hcCBhbGwgb2YgU0RSQU0gdG8gUENJIGFkZHJlc3MgMHgwMDAwXzAwMDAuIE5vdGUgdGhhdCB0aGUgNDQwIHN0cmFwcGluZwogCSAqIG9wdGlvbnMgdG8gbm90IHN1cHBvcnQgc2l6ZXMgc3VjaCBhcyAxMjgvMjU2IE1CLgogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDMycihQQ0lYMF9QSU0wTEFMLCBDRkdfU0RSQU1fQkFTRSk7CisJb3V0MzJyKFBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJb3V0MzJyKFBDSVgwX1BJTTBMQUgsIDApOwogCW91dDMycihQQ0lYMF9QSU0wU0EsIH4oZ2QtPnJhbV9zaXplIC0gMSkgfCAxKTsKIApAQCAtMjI3LDEyICsyMjcsMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2cihQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQpOwotCW91dDE2cihQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCk7CisJb3V0MTZyKFBDSVgwX1NCU1lTVklELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOworCW91dDE2cihQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQpOwogCiAJb3V0MTZyKFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSk7CiB9Ci0jZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYJCQkJLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogIGlzX3BjaV9ob3N0CmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvcDNwNDQwLmggYi9ib2FyZC9wcm9kcml2ZS9wM3A0NDAvcDNwNDQwLmgKaW5kZXggZTRlODdkMS4uNDdlOTAxOCAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcDNwNDQwL3AzcDQ0MC5oCisrKyBiL2JvYXJkL3Byb2RyaXZlL3AzcDQ0MC9wM3A0NDAuaApAQCAtMjQsMTEgKzI0LDExIEBACiAjaWZuZGVmIF9fUDNQNDQwX0hfXwogI2RlZmluZSBfX1AzUDQ0MF9IX18KIAotI2RlZmluZSBDRkdfR1BJT19SRFkJKDB4ODAwMDAwMDAgPj4gMTEpCi0jZGVmaW5lIENGR19NT05BUkNIX0lPCSgweDgwMDAwMDAwID4+IDE4KQotI2RlZmluZSBDRkdfRVJFQURZX0lPCSgweDgwMDAwMDAwID4+IDIwKQotI2RlZmluZSBDRkdfTEVEX0dSRUVOCSgweDgwMDAwMDAwID4+IDIxKQotI2RlZmluZSBDRkdfTEVEX1JFRAkoMHg4MDAwMDAwMCA+PiAyMikKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1JEWQkoMHg4MDAwMDAwMCA+PiAxMSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05BUkNIX0lPCSgweDgwMDAwMDAwID4+IDE4KQorI2RlZmluZSBDT05GSUdfU1lTX0VSRUFEWV9JTwkoMHg4MDAwMDAwMCA+PiAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19MRURfR1JFRU4JKDB4ODAwMDAwMDAgPj4gMjEpCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX1JFRAkoMHg4MDAwMDAwMCA+PiAyMikKIAogI2RlZmluZSBMRURfT0ZGCQkxCiAjZGVmaW5lIExFRF9HUkVFTgkyCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wZG5iMy9mbGFzaC5jIGIvYm9hcmQvcHJvZHJpdmUvcGRuYjMvZmxhc2guYwppbmRleCA1NzM4YzViLi4zNTFhZWQxIDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wZG5iMy9mbGFzaC5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL3BkbmIzL2ZsYXNoLmMKQEAgLTUyLDcgKzUyLDcgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspCisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilGTEFTSF9CQVNFMF9QUkVMSU0sICZmbGFzaF9pbmZvWzBdKTsKQEAgLTY2LDIwICs2NiwyMCBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCi0JCSAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAkvKiBFbnZpcm9ubWVudCBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCiAJCSAgICAgIENPTkZJR19FTlZfQUREUiwKIAkJICAgICAgQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TRUNUX1NJWkUgLSAxLAotCQkgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKIAogCS8qIFJlZHVuZGFudCBlbnZpcm9ubWVudCBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCiAJCSAgICAgIENPTkZJR19FTlZfQUREUl9SRURVTkQsCiAJCSAgICAgIENPTkZJR19FTlZfQUREUl9SRURVTkQgKyBDT05GSUdfRU5WX1NJWkVfUkVEVU5EIC0gMSwKLQkJICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplOwogCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wZG5iMy9uYW5kLmMgYi9ib2FyZC9wcm9kcml2ZS9wZG5iMy9uYW5kLmMKaW5kZXggMWNlM2M4Yy4uMmVmZTAyNyAxMDA2NDQKLS0tIGEvYm9hcmQvcHJvZHJpdmUvcGRuYjMvbmFuZC5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL3BkbmIzL25hbmQuYwpAQCAtMTM2LDcgKzEzNiw3IEBACiAKIGludCBib2FyZF9uYW5kX2luaXQoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKIHsKLQlwZG5iM19uZGZjID0gKHN0cnVjdCBwZG5iM19uZGZjX3JlZ3MgKilDRkdfTkFORF9CQVNFOworCXBkbmIzX25kZmMgPSAoc3RydWN0IHBkbmIzX25kZmNfcmVncyAqKUNPTkZJR19TWVNfTkFORF9CQVNFOwogCiAJbmFuZC0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwogCmRpZmYgLS1naXQgYS9ib2FyZC9wcm9kcml2ZS9wZG5iMy9wZG5iMy5jIGIvYm9hcmQvcHJvZHJpdmUvcGRuYjMvcGRuYjMuYwppbmRleCAzNDQ1YTNhLi4zNzczYmExIDEwMDY0NAotLS0gYS9ib2FyZC9wcm9kcml2ZS9wZG5iMy9wZG5iMy5jCisrKyBiL2JvYXJkL3Byb2RyaXZlL3BkbmIzL3BkbmIzLmMKQEAgLTM0LDggKzM0LDggQEAKIAogLyogcHJlZGVmaW5lIHRoZXNlIGhlcmUgZm9yIEZQR0EgcHJvZ3JhbW1pbmcgKGJlZm9yZSBpbmNsdWRpbmcgZnBnYS5jKSAqLwogI2RlZmluZSBTRVRfRlBHQShkYXRhKQkqSVhQNDI1X0dQSU9fR1BPVVRSID0gKGRhdGEpCi0jZGVmaW5lIEZQR0FfRE9ORV9TVEFURSAoKklYUDQyNV9HUElPX0dQSU5SICYgQ0ZHX0ZQR0FfRE9ORSkKLSNkZWZpbmUgRlBHQV9JTklUX1NUQVRFICgqSVhQNDI1X0dQSU9fR1BJTlIgJiBDRkdfRlBHQV9JTklUKQorI2RlZmluZSBGUEdBX0RPTkVfU1RBVEUgKCpJWFA0MjVfR1BJT19HUElOUiAmIENPTkZJR19TWVNfRlBHQV9ET05FKQorI2RlZmluZSBGUEdBX0lOSVRfU1RBVEUgKCpJWFA0MjVfR1BJT19HUElOUiAmIENPTkZJR19TWVNfRlBHQV9JTklUKQogI2RlZmluZSBPTERfVkFMCQlvbGRfdmFsCiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIG9sZF92YWwgPSAwOwpAQCAtNTYsNDYgKzU2LDQ2IEBACiAJLyogYWRyZXNzIG9mIGJvb3QgcGFyYW1ldGVycyAqLwogCWdkLT5iZC0+YmlfYm9vdF9wYXJhbXMgPSAweDAwMDAwMTAwOwogCi0JR1BJT19PVVRQVVRfU0VUKENGR19HUElPX0ZQR0FfUkVTRVQpOwotCUdQSU9fT1VUUFVUX0VOQUJMRShDRkdfR1BJT19GUEdBX1JFU0VUKTsKKwlHUElPX09VVFBVVF9TRVQoQ09ORklHX1NZU19HUElPX0ZQR0FfUkVTRVQpOworCUdQSU9fT1VUUFVUX0VOQUJMRShDT05GSUdfU1lTX0dQSU9fRlBHQV9SRVNFVCk7CiAKLQlHUElPX09VVFBVVF9TRVQoQ0ZHX0dQSU9fU1lTX1JVTk5JTkcpOwotCUdQSU9fT1VUUFVUX0VOQUJMRShDRkdfR1BJT19TWVNfUlVOTklORyk7CisJR1BJT19PVVRQVVRfU0VUKENPTkZJR19TWVNfR1BJT19TWVNfUlVOTklORyk7CisJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19TWVNfUlVOTklORyk7CiAKIAkvKgogCSAqIFNldHVwIEdQSU8ncyBmb3IgRlBHQSBwcm9ncmFtbWluZwogCSAqLwotCUdQSU9fT1VUUFVUX0NMRUFSKENGR19HUElPX1BSRyk7Ci0JR1BJT19PVVRQVVRfQ0xFQVIoQ0ZHX0dQSU9fQ0xLKTsKLQlHUElPX09VVFBVVF9DTEVBUihDRkdfR1BJT19EQVRBKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fUFJHKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fQ0xLKTsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fREFUQSk7Ci0JR1BJT19PVVRQVVRfRElTQUJMRShDRkdfR1BJT19JTklUKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFKENGR19HUElPX0RPTkUpOworCUdQSU9fT1VUUFVUX0NMRUFSKENPTkZJR19TWVNfR1BJT19QUkcpOworCUdQSU9fT1VUUFVUX0NMRUFSKENPTkZJR19TWVNfR1BJT19DTEspOworCUdQSU9fT1VUUFVUX0NMRUFSKENPTkZJR19TWVNfR1BJT19EQVRBKTsKKwlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX1BSRyk7CisJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19DTEspOworCUdQSU9fT1VUUFVUX0VOQUJMRShDT05GSUdfU1lTX0dQSU9fREFUQSk7CisJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fSU5JVCk7CisJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fRE9ORSk7CiAKIAkvKgogCSAqIFNldHVwIEdQSU8ncyBmb3IgaW50ZXJydXB0cwogCSAqLwotCUdQSU9fT1VUUFVUX0RJU0FCTEUoQ0ZHX0dQSU9fUENJX0lOVEEpOwotCUdQSU9fSU5UX0FDVF9MT1dfU0VUKENGR19HUElPX1BDSV9JTlRBKTsKLQlHUElPX09VVFBVVF9ESVNBQkxFKENGR19HUElPX1BDSV9JTlRCKTsKLQlHUElPX0lOVF9BQ1RfTE9XX1NFVChDRkdfR1BJT19QQ0lfSU5UQik7Ci0JR1BJT19PVVRQVVRfRElTQUJMRShDRkdfR1BJT19SRVNUT1JFX0lOVCk7Ci0JR1BJT19JTlRfQUNUX0xPV19TRVQoQ0ZHX0dQSU9fUkVTVE9SRV9JTlQpOwotCUdQSU9fT1VUUFVUX0RJU0FCTEUoQ0ZHX0dQSU9fUkVTVEFSVF9JTlQpOwotCUdQSU9fSU5UX0FDVF9MT1dfU0VUKENGR19HUElPX1JFU1RBUlRfSU5UKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQSk7CisJR1BJT19JTlRfQUNUX0xPV19TRVQoQ09ORklHX1NZU19HUElPX1BDSV9JTlRBKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFKENPTkZJR19TWVNfR1BJT19QQ0lfSU5UQik7CisJR1BJT19JTlRfQUNUX0xPV19TRVQoQ09ORklHX1NZU19HUElPX1BDSV9JTlRCKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFKENPTkZJR19TWVNfR1BJT19SRVNUT1JFX0lOVCk7CisJR1BJT19JTlRfQUNUX0xPV19TRVQoQ09ORklHX1NZU19HUElPX1JFU1RPUkVfSU5UKTsKKwlHUElPX09VVFBVVF9ESVNBQkxFKENPTkZJR19TWVNfR1BJT19SRVNUQVJUX0lOVCk7CisJR1BJT19JTlRfQUNUX0xPV19TRVQoQ09ORklHX1NZU19HUElPX1JFU1RBUlRfSU5UKTsKIAogCS8qCiAJICogU2V0dXAgR1BJTydzIGZvciAzM01IeiBjbG9jayBvdXRwdXQKIAkgKi8KIAkqSVhQNDI1X0dQSU9fR1BDTEtSID0gMHgwMUZGMDAwMDsKLQlHUElPX09VVFBVVF9FTkFCTEUoQ0ZHX0dQSU9fQ0xLXzMzTSk7CisJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19DTEtfMzNNKTsKIAogCS8qCiAJICogU2V0dXAgb3RoZXIgY2hpcCBzZWxlY3QncwogCSAqLwotCSpJWFA0MjVfRVhQX0NTMSA9IENGR19FWFBfQ1MxOworCSpJWFA0MjVfRVhQX0NTMSA9IENPTkZJR19TWVNfRVhQX0NTMTsKIAogCXJldHVybiAwOwogfQpAQCAtMTMyLDE0ICsxMzIsMTQgQEAKIAlpbnQgc3RhdHVzOwogCWludCBpbmRleDsKIAlpbnQgaTsKLQl1bG9uZyBsZW4gPSBDRkdfTUFMTE9DX0xFTjsKKwl1bG9uZyBsZW4gPSBDT05GSUdfU1lTX01BTExPQ19MRU47CiAKIAkvKgogCSAqIFNldHVwIEdQSU8ncyBmb3IgRlBHQSBwcm9ncmFtbWluZwogCSAqLwotCUdQSU9fT1VUUFVUX0NMRUFSKENGR19HUElPX1BSRyk7Ci0JR1BJT19PVVRQVVRfQ0xFQVIoQ0ZHX0dQSU9fQ0xLKTsKLQlHUElPX09VVFBVVF9DTEVBUihDRkdfR1BJT19EQVRBKTsKKwlHUElPX09VVFBVVF9DTEVBUihDT05GSUdfU1lTX0dQSU9fUFJHKTsKKwlHUElPX09VVFBVVF9DTEVBUihDT05GSUdfU1lTX0dQSU9fQ0xLKTsKKwlHUElPX09VVFBVVF9DTEVBUihDT05GSUdfU1lTX0dQSU9fREFUQSk7CiAKIAkvKgogCSAqIFNhdmUgdmFsdWUgc28gbm8gcmVhZGJhY2sgaXMgcmVxdWlyZWQgdXBvbiBwcm9ncmFtbWluZwpAQCAtMTQ5LDggKzE0OSw4IEBACiAJLyoKIAkgKiBGaXJzdCB0cnkgdG8gZGVjb21wcmVzcyBmcGdhIGltYWdlIChnemlwIGNvbXByZXNzZWQ/KQogCSAqLwotCWRzdCA9IG1hbGxvYyhDRkdfRlBHQV9NQVhfU0laRSk7Ci0JaWYgKGd1bnppcChkc3QsIENGR19GUEdBX01BWF9TSVpFLCAodWNoYXIgKilmcGdhZGF0YSwgJmxlbikgIT0gMCkgeworCWRzdCA9IG1hbGxvYyhDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUpOworCWlmIChndW56aXAoZHN0LCBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUsICh1Y2hhciAqKWZwZ2FkYXRhLCAmbGVuKSAhPSAwKSB7CiAJCXByaW50ZigiRXJyb3I6IEltYWdlIGhhcyB0byBiZSBnemlwcCdlZCFcbiIpOwogCQlyZXR1cm4gLTE7CiAJfQpAQCAtMjA0LDkgKzIwNCw5IEBACiAJLyoKIAkgKiBSZXNldCBGUEdBCiAJICovCi0JR1BJT19PVVRQVVRfQ0xFQVIoQ0ZHX0dQSU9fRlBHQV9SRVNFVCk7CisJR1BJT19PVVRQVVRfQ0xFQVIoQ09ORklHX1NZU19HUElPX0ZQR0FfUkVTRVQpOwogCXVkZWxheSgxMCk7Ci0JR1BJT19PVVRQVVRfU0VUKENGR19HUElPX0ZQR0FfUkVTRVQpOworCUdQSU9fT1VUUFVUX1NFVChDT05GSUdfU1lTX0dQSU9fRlBHQV9SRVNFVCk7CiAKIAlyZXR1cm4gKDApOwogfQpkaWZmIC0tZ2l0IGEvYm9hcmQvcHN5ZW50L2NvbW1vbi9BTURMVjA2NUQuYyBiL2JvYXJkL3BzeWVudC9jb21tb24vQU1ETFYwNjVELmMKaW5kZXggOGE3YjE0ZS4uMGZjZjM1NCAxMDA2NDQKLS0tIGEvYm9hcmQvcHN5ZW50L2NvbW1vbi9BTURMVjA2NUQuYworKysgYi9ib2FyZC9wc3llbnQvY29tbW9uL0FNRExWMDY1RC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZW5kaWYKIAogI2RlZmluZSBTRUNUU1oJCSg2NCAqIDEwMjQpCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKQEAgLTM5LDE4ICszOSwxOCBAQAogCXVuc2lnbmVkIGxvbmcgYWRkcjsKIAlmbGFzaF9pbmZvX3QgKmZsaSA9ICZmbGFzaF9pbmZvWzBdOwogCi0JZmxpLT5zaXplID0gQ0ZHX0ZMQVNIX1NJWkU7Ci0JZmxpLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJZmxpLT5zaXplID0gQ09ORklHX1NZU19GTEFTSF9TSVpFOworCWZsaS0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAlmbGktPmZsYXNoX2lkID0gRkxBU0hfTUFOX0FNRCArIEZMQVNIX0FNRExWMDY1RDsKIAotCWFkZHIgPSBDRkdfRkxBU0hfQkFTRTsKKwlhZGRyID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWZvciAoaSA9IDA7IGkgPCBmbGktPnNlY3Rvcl9jb3VudDsgKytpKSB7CiAJCWZsaS0+c3RhcnRbaV0gPSBhZGRyOwogCQlhZGRyICs9IFNFQ1RTWjsKIAkJZmxpLT5wcm90ZWN0W2ldID0gMTsKIAl9CiAKLQlyZXR1cm4gKENGR19GTEFTSF9TSVpFKTsKKwlyZXR1cm4gKENPTkZJR19TWVNfRkxBU0hfU0laRSk7CiB9CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIHZvaWQgZmxhc2hfcHJpbnRfaW5mbyAoZmxhc2hfaW5mb190ICogaW5mbykKQEAgLTEzNSw3ICsxMzUsNyBAQAogCQkJd2hpbGUgKCByZWFkYiAoYWRkcjIpICE9IDB4ZmYpIHsKIAkJCQl1ZGVsYXkgKDEwMDAgKiAxMDAwKTsKIAkJCQlwdXRjICgnLicpOwotCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoInRpbWVvdXRcbiIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9CkBAIC0xNzcsNyArMTc3LDcgQEAKIAkJLyogVmVyaWZ5IHdyaXRlICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJd2hpbGUgKHJlYWRiIChkc3QpICE9IGIpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvcHN5ZW50L3BrMWMyMC9sZWQuYyBiL2JvYXJkL3BzeWVudC9wazFjMjAvbGVkLmMKaW5kZXggYzc1ZmU4Yy4uZTVlNzcwNSAxMDA2NDQKLS0tIGEvYm9hcmQvcHN5ZW50L3BrMWMyMC9sZWQuYworKysgYi9ib2FyZC9wc3llbnQvcGsxYzIwL2xlZC5jCkBAIC0zMyw3ICszMyw3IEBACiAKIHZvaWQgX19sZWRfaW5pdCAobGVkX2lkX3QgbWFzaywgaW50IHN0YXRlKQogewotCW5pb3NfcGlvX3QgKnBpbyA9IChuaW9zX3Bpb190ICopQ0ZHX0xFRFBJT19BRERSOworCW5pb3NfcGlvX3QgKnBpbyA9IChuaW9zX3Bpb190ICopQ09ORklHX1NZU19MRURQSU9fQUREUjsKIAogCWlmIChzdGF0ZSA9PSBTVEFUVVNfTEVEX09OKQogCQl2YWwgJj0gfm1hc2s7CkBAIC00NCw3ICs0NCw3IEBACiAKIHZvaWQgX19sZWRfc2V0IChsZWRfaWRfdCBtYXNrLCBpbnQgc3RhdGUpCiB7Ci0Jbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDRkdfTEVEUElPX0FERFI7CisJbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDT05GSUdfU1lTX0xFRFBJT19BRERSOwogCiAJaWYgKHN0YXRlID09IFNUQVRVU19MRURfT04pCiAJCXZhbCAmPSB+bWFzazsKQEAgLTU1LDcgKzU1LDcgQEAKIAogdm9pZCBfX2xlZF90b2dnbGUgKGxlZF9pZF90IG1hc2spCiB7Ci0Jbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDRkdfTEVEUElPX0FERFI7CisJbmlvc19waW9fdCAqcGlvID0gKG5pb3NfcGlvX3QgKilDT05GSUdfU1lTX0xFRFBJT19BRERSOwogCiAJdmFsIF49IG1hc2s7CiAJd3JpdGVsICgmcGlvLT5kYXRhLCB2YWwpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcHVycGxlL2ZsYXNoLmMgYi9ib2FyZC9wdXJwbGUvZmxhc2guYwppbmRleCA2NDBiYzI5Li4zN2M3YmVjIDEwMDY0NAotLS0gYS9ib2FyZC9wdXJwbGUvZmxhc2guYworKysgYi9ib2FyZC9wdXJwbGUvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9pbmNhLWlwLmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgRkxBU0hfUE9SVF9XSURUSDsKIHR5cGVkZWYgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBGTEFTSF9QT1JUX1dJRFRIVjsKQEAgLTIwNyw3ICsyMDcsNyBAQAogCWxvYWRfY21kKElOX1JBTV9DTURfUkVBRCk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJdWxvbmcgZmxhc2hiYXNlID0gUEhZU19GTEFTSF8xOwogCQl1bG9uZyAqIGJ1c2NvbiA9ICh1bG9uZyAqKSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMDsKIApAQCAtMjI5LDEyICsyMjksMTIgQEAKIAkJc2l6ZSArPSBmbGFzaF9pbmZvW2ldLnNpemU7CiAJfQogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCi0JCSAgICAgIGZsYXNoX2dldF9pbmZvKENGR19NT05JVE9SX0JBU0UpKTsKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIGZsYXNoX2dldF9pbmZvKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSk7CiAjZW5kaWYKIAogI2lmZGVmCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTI4MiwxMyArMjgyLDEzIEBACiAJaW50IGk7CiAJZmxhc2hfaW5mb190ICogaW5mbzsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpICsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpICsrKSB7CiAJCWluZm8gPSAmIGZsYXNoX2luZm9baV07CiAJCWlmIChpbmZvLT5zdGFydFswXSA8PSBiYXNlICYmIGJhc2UgPCBpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUpCiAJCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gaSA9PSBDRkdfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CisJcmV0dXJuIGkgPT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPyAwIDogaW5mbzsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTA3LDEwICs1MDcsMTAgQEAKIAogCQlzdGFydCA9IGdldF90aW1lcigwKTsKIAotCQl3aGlsZSAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpIDw9IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCXdoaWxlICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPD0gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAKIAkJCS8qIHNob3cgdGhhdCB3ZSdyZSB3YWl0aW5nICovCi0JCQlpZiAoKGdldF90aW1lcihsYXN0KSkgPiBDRkdfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KKwkJCWlmICgoZ2V0X3RpbWVyKGxhc3QpKSA+IENPTkZJR19TWVNfSFopIHsvKiBldmVyeSBzZWNvbmQgKi8KIAkJCQlwdXRjICgnLicpOwogCQkJCWxhc3QgPSBnZXRfdGltZXIoMCk7CiAJCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9wdXJwbGUvcHVycGxlLmMgYi9ib2FyZC9wdXJwbGUvcHVycGxlLmMKaW5kZXggOTAwZTY2Zi4uNTRiZWY2NSAxMDA2NDQKLS0tIGEvYm9hcmQvcHVycGxlL3B1cnBsZS5jCisrKyBiL2JvYXJkL3B1cnBsZS9wdXJwbGUuYwpAQCAtMTI5LDE0ICsxMjksMTQgQEAKIHsKIAkvKiBUaGUgb25seSBzdXBwb3J0ZWQgbnVtYmVyIG9mIFNEUkFNIGJhbmtzIGlzIDQuCiAJICovCi0jZGVmaW5lIENGR19OQgk0CisjZGVmaW5lIENPTkZJR19TWVNfTkIJNAogCiAJdWxvbmcJY2ZncGIwCT0gKklOQ0FfSVBfU0RSQU1fTUNfQ0ZHUEIwOwogCXVsb25nCWNmZ2R3CT0gKklOQ0FfSVBfU0RSQU1fTUNfQ0ZHRFc7CiAJaW50CWNvbHMJPSBjZmdwYjAgJiAweEY7CiAJaW50CXJvd3MJPSAoY2ZncGIwICYgMHhGMCkgPj4gNDsKIAlpbnQJZHcJPSBjZmdkdyAmIDB4RjsKLQl1bG9uZwlzaXplCT0gKDEgPDwgKHJvd3MgKyBjb2xzKSkgKiAoMSA8PCAoZHcgLSAxKSkgKiBDRkdfTkI7CisJdWxvbmcJc2l6ZQk9ICgxIDw8IChyb3dzICsgY29scykpICogKDEgPDwgKGR3IC0gMSkpICogQ09ORklHX1NZU19OQjsKIAl2b2lkICgqICBzZHJhbV9pbml0KSAodWxvbmcpOwogCiAJc2RyYW1faW5pdCA9ICh2b2lkICgqKSh1bG9uZykpIENLU0VHMEFERFIoJnNkcmFtX3RpbWluZ19pbml0KTsKQEAgLTI1MywyNiArMjUzLDI2IEBACiAKIAkvKiBjb3B5IHUtYm9vdCBjb2RlCiAJICovCi0JY29weUxvbmdzKCh1bG9uZyAqKUNGR19NT05JVE9SX0JBU0UsCisJY29weUxvbmdzKCh1bG9uZyAqKUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAogCQkgICh1bG9uZyAqKWRlc3RfYWRkciwKLQkJICAoKHVsb25nKSZ1Ym9vdF9lbmRfZGF0YSAtIENGR19NT05JVE9SX0JBU0UgKyAzKSAvIDQpOworCQkgICgodWxvbmcpJnVib290X2VuZF9kYXRhIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAzKSAvIDQpOwogCiAKIAkvKiBmbHVzaCBjYWNoZXMKIAkgKi8KIAogCXN0YXJ0ID0gQ0tTRUcwOwotCWVuZCA9IHN0YXJ0ICsgQ0ZHX0RDQUNIRV9TSVpFOworCWVuZCA9IHN0YXJ0ICsgQ09ORklHX1NZU19EQ0FDSEVfU0laRTsKIAl3aGlsZShzdGFydCA8IGVuZCkgewogCQljYWNoZV91bnJvbGwoc3RhcnQsSW5kZXhfV3JpdGViYWNrX0ludl9EKTsKLQkJc3RhcnQgKz0gQ0ZHX0NBQ0hFTElORV9TSVpFOworCQlzdGFydCArPSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFOwogCX0KIAogCXN0YXJ0ID0gQ0tTRUcwOwotCWVuZCA9IHN0YXJ0ICsgQ0ZHX0lDQUNIRV9TSVpFOworCWVuZCA9IHN0YXJ0ICsgQ09ORklHX1NZU19JQ0FDSEVfU0laRTsKIAl3aGlsZShzdGFydCA8IGVuZCkgewogCQljYWNoZV91bnJvbGwoc3RhcnQsSW5kZXhfSW52YWxpZGF0ZV9JKTsKLQkJc3RhcnQgKz0gQ0ZHX0NBQ0hFTElORV9TSVpFOworCQlzdGFydCArPSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvcHVycGxlL3Njb25zb2xlLmMgYi9ib2FyZC9wdXJwbGUvc2NvbnNvbGUuYwppbmRleCBmNTJkNTBkLi5jZDlkODcxIDEwMDY0NAotLS0gYS9ib2FyZC9wdXJwbGUvc2NvbnNvbGUuYworKysgYi9ib2FyZC9wdXJwbGUvc2NvbnNvbGUuYwpAQCAtMzgsNyArMzgsNyBAQAogCiAJc2ItPnBvcyAgPSAwOwogCXNiLT5zaXplID0gMDsKLQlzYi0+bWF4X3NpemUgPSBDRkdfU0NPTlNPTEVfU0laRSAtIHNpemVvZiAoc2NvbnNvbGVfYnVmZmVyX3QpOworCXNiLT5tYXhfc2l6ZSA9IENPTkZJR19TWVNfU0NPTlNPTEVfU0laRSAtIHNpemVvZiAoc2NvbnNvbGVfYnVmZmVyX3QpOwogCiAJcmV0dXJuICgwKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3B1cnBsZS9zY29uc29sZS5oIGIvYm9hcmQvcHVycGxlL3Njb25zb2xlLmgKaW5kZXggZTEzMGFkNC4uYmFlZDVmYiAxMDA2NDQKLS0tIGEvYm9hcmQvcHVycGxlL3Njb25zb2xlLmgKKysrIGIvYm9hcmQvcHVycGxlL3Njb25zb2xlLmgKQEAgLTMzLDcgKzMzLDcgQEAKIAljaGFyIGRhdGFbMV07CiB9IHNjb25zb2xlX2J1ZmZlcl90OwogCi0jZGVmaW5lIFNDT05TT0xFX0JVRkZFUgkJKChzY29uc29sZV9idWZmZXJfdCAqKSBDRkdfU0NPTlNPTEVfQUREUikKKyNkZWZpbmUgU0NPTlNPTEVfQlVGRkVSCQkoKHNjb25zb2xlX2J1ZmZlcl90ICopIENPTkZJR19TWVNfU0NPTlNPTEVfQUREUikKIAogZXh0ZXJuIHZvaWQJKCogc2NvbnNvbGVfcHV0YykJKGNoYXIpOwogZXh0ZXJuIHZvaWQJKCogc2NvbnNvbGVfcHV0cykJKGNvbnN0IGNoYXIgKik7CmRpZmYgLS1naXQgYS9ib2FyZC9weGEyNTVfaWRwL2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL3B4YTI1NV9pZHAvbG93bGV2ZWxfaW5pdC5TCmluZGV4IDgwYjUxODIuLmE1MDc2MGYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3B4YTI1NV9pZHAvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL3B4YTI1NV9pZHAvbG93bGV2ZWxfaW5pdC5TCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLURSQU1fU0laRTogIC5sb25nICAgQ0ZHX0RSQU1fU0laRQorRFJBTV9TSVpFOiAgLmxvbmcgICBDT05GSUdfU1lTX0RSQU1fU0laRQogCiAvKiB3YWl0IGZvciBjb3Byb2Nlc3NvciB3cml0ZSBjb21wbGV0ZSAqLwogCS5tYWNybyBDUFdBSVQgcmVnCkBAIC01Myw2NyArNTMsNjcgQEAKIAogCS8qIFNldCB1cCBHUElPIHBpbnMgZmlyc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAlsZHIJCXIwLAk9R1BTUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IxCi0JbGRyCQlyMSwJPUNGR19HUFNSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMgotCWxkcgkJcjEsCT1DRkdfR1BTUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IxCi0JbGRyCQlyMSwJPUNGR19HUENSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMgotCWxkcgkJcjEsCT1DRkdfR1BDUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjAKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIxCi0JbGRyCQlyMSwJPUNGR19HUERSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMgotCWxkcgkJcjEsCT1DRkdfR1BEUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjBfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMV9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMV9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIyX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJcjAsCT1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCQlyMSwJPUNGR19QU1NSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BTU1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKICNpZmRlZiBERUJVR19CTElOS19FTkFCTEUKQEAgLTE1NiwxNyArMTU2LDE3IEBACiAJLyogTVNDIHJlZ2lzdGVyczogdGltaW5nLCBidXMgd2lkdGgsIG1lbSB0eXBlICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkciAgICAgcjIsICAgPUNPTkZJR19TWVNfTVNDMF9WQUwKIAlzdHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCS8qIHJlYWQgYmFjayB0byBlbnN1cmUgICAgICAqLwogCQkJCQkJLyogdGhhdCBkYXRhIGxhdGNoZXMgICAgICAgICovCiAJLyogTVNDMTogbkNTKDIsMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01TQzFfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01TQzFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkciAgICAgcjIsICBbcjEsICNNU0MxX09GRlNFVF0KIAogCS8qIE1TQzI6IG5DUyg0LDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NU0MyX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIAlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTE3NSwzNyArMTc1LDM3IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01FQ1JfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUVDUl9PRkZTRVRdCiAKIAkvKiBNQ01FTTA6IENhcmQgSW50ZXJmYWNlIHNsb3QgMCB0aW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNNRU0wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ01FTTBfT0ZGU0VUXQogCiAJLyogTUNNRU0xOiBDYXJkIEludGVyZmFjZSBzbG90IDEgdGltaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DTUVNMV9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNGR19NQ0FUVDBfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01DQVRUMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DQVRUMF9PRkZTRVRdCiAKIAkvKiBNQ0FUVDE6IENhcmQgSW50ZXJmYWNlIEF0dHJpYnV0ZSBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICovCi0JbGRyICAgICByMiwgID1DRkdfTUNBVFQxX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0FUVDFfVkFMCiAJc3RyICAgICByMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJLyogTUNJTzA6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMCAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8wX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzBfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIgICAgIHIyLCAgW3IxLCAjTUNJTzFfT0ZGU0VUXQogCWxkcglyMiwJW3IxLCAjTUNJTzFfT0ZGU0VUXQogCkBAIC0yMjUsNyArMjI1LDcgQEAKIAkvKiBCZWZvcmUgYWNjZXNzaW5nIE1EUkVGUiB3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkLCBzbyB3ZSBzZXQgICAgICovCiAJLyogdGhpcyB0byBwb3dlciBvbiBkZWZhdWx0cyArIERSSSBmaWVsZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMywgICAgID1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjMsICAgICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJbGRyICAgICByMiwgICAgID0weEZGRgogCWFuZCAgICAgcjMsICAgICByMywgIHIyCiAJbGRyCXI0LAk9MHgwM2NhNDAwMApAQCAtMjUzLDcgKzI1Myw3IEBACiAKIAkvKiBzZXQgTURSRUZSIGFjY29yZGluZyB0byB1c2VyIGRlZmluZSB3aXRoIGV4Y2VwdGlvbiBvZiBhIGZldyBiaXRzICovCiAKLQlsZHIgICAgIHI0LCAgICAgPUNGR19NRFJFRlJfVkFMCisJbGRyICAgICByNCwgICAgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAlvcnIJcjQsCXI0LAkjKE1EUkVGUl9TTEZSU0gpCiAJYmljCXI0LAlyNCwJIyhNRFJFRlJfRTFQSU58TURSRUZSX0UwUElOKQogCXN0ciAgICAgcjQsICAgICBbcjEsICNNRFJFRlJfT0ZGU0VUXSAgICAvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KQEAgLTI2Nyw3ICsyNjcsNyBAQAogCiAJLyogU3RlcCA0YzogYXNzZXJ0IE1EUkVGUjpFMVBJTiBhbmQgRTBQSU8gYXMgZGVzaXJlZCAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByNCwgICAgID1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjQsICAgICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAJc3RyICAgICByNCwgICAgIFtyMSwgI01EUkVGUl9PRkZTRVRdICAgIC8qIHdyaXRlIGJhY2sgTURSRUZSICAgICAgICAqLwogCWxkciAgICAgcjQsICAgICBbcjEsICNNRFJFRlJfT0ZGU0VUXQogCkBAIC0yNzUsNyArMjc1LDcgQEAKIAkvKiBTdGVwIDRkOiB3cml0ZSBNRENORkcgd2l0aCBNRENORkc6REV4IGRlYXNzZXJ0ZWQgKHNldCB0byAwKSwgdG8gICovCiAJLyogICAgICAgICAgY29uZmlndXJlIGJ1dCBub3QgZW5hYmxlIGVhY2ggU0RSQU0gcGFydGl0aW9uIHBhaXIuICAgICAqLwogCi0JbGRyCXI0LAk9Q0ZHX01EQ05GR19WQUwKKwlsZHIJcjQsCT1DT05GSUdfU1lTX01EQ05GR19WQUwKIAliaWMJcjQsCXI0LAkjKE1EQ05GR19ERTB8TURDTkZHX0RFMSkKIAogCXN0ciAgICAgcjQsICAgICBbcjEsICNNRENORkdfT0ZGU0VUXQkvKiB3cml0ZSBiYWNrIE1EQ05GRyAgICAgICAgKi8KQEAgLTMwMCw3ICszMDAsNyBAQAogCS8qICAgICAgICAgIGRvY3VtZW50ZWQgaW4gU0RSQU0gZGF0YSBzaGVldHMuIFRoZSBhZGRyZXNzKGVzKSB1c2VkICAgKi8KIAkvKiAgICAgICAgICBmb3IgdGhpcyBwdXJwb3NlIG11c3Qgbm90IGJlIGNhY2hlYWJsZS4gICAgICAgICAgICAgICAgICovCiAKLQlsZHIJcjMsCT1DRkdfRFJBTV9CQVNFCisJbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKIAlzdHIJcjIsCVtyM10KIAlzdHIJcjIsCVtyM10KIAlzdHIJcjIsCVtyM10KQEAgLTMxOSw3ICszMTksNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMiwgID1DRkdfTURNUlNfVkFMCisJbGRyICAgICByMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogCXN0ciAgICAgcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKIAkvKiBXZSBhcmUgZmluaXNoZWQgd2l0aCBJbnRlbCdzIG1lbW9yeSBjb250cm9sbGVyIGluaXRpYWxpc2F0aW9uICAgICovCmRpZmYgLS1naXQgYS9ib2FyZC9weGEyNTVfaWRwL3B4YV9pZHAuYyBiL2JvYXJkL3B4YTI1NV9pZHAvcHhhX2lkcC5jCmluZGV4IDU3NjVjNTUuLmIwYWE4ZGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3B4YTI1NV9pZHAvcHhhX2lkcC5jCisrKyBiL2JvYXJkL3B4YTI1NV9pZHAvcHhhX2lkcC5jCkBAIC0xMjcsNyArMTI3LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotVV9CT09UX0NNRChpZHBjbWQsIENGR19NQVhBUkdTLCAwLCBkb19pZHBjbWQsCitVX0JPT1RfQ01EKGlkcGNtZCwgQ09ORklHX1NZU19NQVhBUkdTLCAwLCBkb19pZHBjbWQsCiAJICAgImlkcGNtZCAgICAtIGN1c3RvbSBJRFAgY29tbWFuZFxuIiwKIAkgICAibm8gYXJncyBhdCB0aGlzIHRpbWVcbiIKICk7CmRpZmYgLS1naXQgYS9ib2FyZC9weGEyNTVfaWRwL3B4YV9yZWdfY2FsY3Mub3V0IGIvYm9hcmQvcHhhMjU1X2lkcC9weGFfcmVnX2NhbGNzLm91dAppbmRleCBiZGE5OTQ2Li4zOTI5NWZiIDEwMDY0NAotLS0gYS9ib2FyZC9weGEyNTVfaWRwL3B4YV9yZWdfY2FsY3Mub3V0CisrKyBiL2JvYXJkL3B4YTI1NV9pZHAvcHhhX3JlZ19jYWxjcy5vdXQKQEAgLTE1LDIxICsxNSwyMSBAQAogZ3BzcjI6IDB4MWMwMDAKIAogCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTAkweDgwMDAxMDA1Ci0jZGVmaW5lIENGR19HQUZSMF9VX1ZBTAkweGE1MTI4MDEyCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTAkweDY5OWE5NTU4Ci0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTAkweGFhYTVhYTZhCi0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTAkweGFhYWFhYWFhCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTAkweDIKLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTAkweDE4MDA0MDAKLSNkZWZpbmUgQ0ZHX0dQQ1IxX1ZBTAkweDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTAkweDAKLSNkZWZpbmUgQ0ZHX0dQRFIwX1ZBTAkweGMxODE4NDQwCi0jZGVmaW5lIENGR19HUERSMV9WQUwJMHhmY2ZmYWI4MgotI2RlZmluZSBDRkdfR1BEUjJfVkFMCTB4MWZmZmYKLSNkZWZpbmUgQ0ZHX0dQU1IwX1ZBTAkweDgwMDAKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTAkweDNmMDAwMgotI2RlZmluZSBDRkdfR1BTUjJfVkFMCTB4MWMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9MX1ZBTAkweDgwMDAxMDA1CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwJMHhhNTEyODAxMgorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMCTB4Njk5YTk1NTgKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9VX1ZBTAkweGFhYTVhYTZhCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwJMHhhYWFhYWFhYQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX1VfVkFMCTB4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IwX1ZBTAkweDE4MDA0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMCTB4MAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTAkweGMxODE4NDQwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMCTB4ZmNmZmFiODIKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwJMHgxZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IwX1ZBTAkweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwJMHgzZjAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwJMHgxYzAwMAogCiAKIEdQSU86IDAsIGRpcj0wLCBzZXQ9MCwgY2xyPTAsIGFsdD1ub25lLCBkZXNjPVVTRVJfUkVTRVQjCmRpZmYgLS1naXQgYS9ib2FyZC9weGEyNTVfaWRwL3B4YV9yZWdfY2FsY3MucHkgYi9ib2FyZC9weGEyNTVfaWRwL3B4YV9yZWdfY2FsY3MucHkKaW5kZXggYzRiY2I0Yi4uMmY4OWUzMSAxMDA2NDQKLS0tIGEvYm9hcmQvcHhhMjU1X2lkcC9weGFfcmVnX2NhbGNzLnB5CisrKyBiL2JvYXJkL3B4YTI1NV9pZHAvcHhhX3JlZ19jYWxjcy5weQpAQCAtMjQ2LDEyICsyNDYsMTIgQEAKIAogIyBVLWJvb3QgZGVmaW5lIG5hbWVzCiB1Ym9vdF9yZWdfbmFtZXMgPSB7Ci0JJ2dwZHIwJzonQ0ZHX0dQRFIwX1ZBTCcsICdncGRyMSc6J0NGR19HUERSMV9WQUwnLCAnZ3BkcjInOidDRkdfR1BEUjJfVkFMJywKLQknZ3BzcjAnOidDRkdfR1BTUjBfVkFMJywgJ2dwc3IxJzonQ0ZHX0dQU1IxX1ZBTCcsICdncHNyMic6J0NGR19HUFNSMl9WQUwnLAotCSdncGNyMCc6J0NGR19HUENSMF9WQUwnLCAnZ3BjcjEnOidDRkdfR1BDUjFfVkFMJywgJ2dwY3IyJzonQ0ZHX0dQQ1IyX1ZBTCcsCi0JJ2dhZnIwX2wnOidDRkdfR0FGUjBfTF9WQUwnLCAnZ2FmcjBfdSc6J0NGR19HQUZSMF9VX1ZBTCcsCi0JJ2dhZnIxX2wnOidDRkdfR0FGUjFfTF9WQUwnLCAnZ2FmcjFfdSc6J0NGR19HQUZSMV9VX1ZBTCcsCi0JJ2dhZnIyX2wnOidDRkdfR0FGUjJfTF9WQUwnLCAnZ2FmcjJfdSc6J0NGR19HQUZSMl9VX1ZBTCcsCisJJ2dwZHIwJzonQ09ORklHX1NZU19HUERSMF9WQUwnLCAnZ3BkcjEnOidDT05GSUdfU1lTX0dQRFIxX1ZBTCcsICdncGRyMic6J0NPTkZJR19TWVNfR1BEUjJfVkFMJywKKwknZ3BzcjAnOidDT05GSUdfU1lTX0dQU1IwX1ZBTCcsICdncHNyMSc6J0NPTkZJR19TWVNfR1BTUjFfVkFMJywgJ2dwc3IyJzonQ09ORklHX1NZU19HUFNSMl9WQUwnLAorCSdncGNyMCc6J0NPTkZJR19TWVNfR1BDUjBfVkFMJywgJ2dwY3IxJzonQ09ORklHX1NZU19HUENSMV9WQUwnLCAnZ3BjcjInOidDT05GSUdfU1lTX0dQQ1IyX1ZBTCcsCisJJ2dhZnIwX2wnOidDT05GSUdfU1lTX0dBRlIwX0xfVkFMJywgJ2dhZnIwX3UnOidDT05GSUdfU1lTX0dBRlIwX1VfVkFMJywKKwknZ2FmcjFfbCc6J0NPTkZJR19TWVNfR0FGUjFfTF9WQUwnLCAnZ2FmcjFfdSc6J0NPTkZJR19TWVNfR0FGUjFfVV9WQUwnLAorCSdnYWZyMl9sJzonQ09ORklHX1NZU19HQUZSMl9MX1ZBTCcsICdnYWZyMl91JzonQ09ORklHX1NZU19HQUZSMl9VX1ZBTCcsCiB9CiAKICMgYml0IG1hcHBpbmdzCmRpZmYgLS1naXQgYS9ib2FyZC9xdWFkMTAwaGQvbmFuZC5jIGIvYm9hcmQvcXVhZDEwMGhkL25hbmQuYwppbmRleCA3NjZlZTk1Li4zNTUyNWJjIDEwMDY0NAotLS0gYS9ib2FyZC9xdWFkMTAwaGQvbmFuZC5jCisrKyBiL2JvYXJkL3F1YWQxMDBoZC9uYW5kLmMKQEAgLTM3LDkgKzM3LDkgQEAKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkLT5wcml2OwogCiAJaWYgKGN0cmwgJiBOQU5EX0NUUkxfQ0hBTkdFKSB7Ci0JCWdwaW9fd3JpdGVfYml0KENGR19OQU5EX0NMRSwgISEoY3RybCAmIE5BTkRfQ0xFKSk7Ci0JCWdwaW9fd3JpdGVfYml0KENGR19OQU5EX0FMRSwgISEoY3RybCAmIE5BTkRfQUxFKSk7Ci0JCWdwaW9fd3JpdGVfYml0KENGR19OQU5EX0NFLCAhKGN0cmwgJiBOQU5EX05DRSkpOworCQlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX05BTkRfQ0xFLCAhIShjdHJsICYgTkFORF9DTEUpKTsKKwkJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19OQU5EX0FMRSwgISEoY3RybCAmIE5BTkRfQUxFKSk7CisJCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfTkFORF9DRSwgIShjdHJsICYgTkFORF9OQ0UpKTsKIAl9CiAKIAlpZiAoY21kICE9IE5BTkRfQ01EX05PTkUpCkBAIC00OCw3ICs0OCw3IEBACiAKIHN0YXRpYyBpbnQgcXVhZDEwMGhkX25hbmRfcmVhZHkoc3RydWN0IG10ZF9pbmZvICptdGQpCiB7Ci0JcmV0dXJuIGdwaW9fcmVhZF9pbl9iaXQoQ0ZHX05BTkRfUkRZKTsKKwlyZXR1cm4gZ3Bpb19yZWFkX2luX2JpdChDT05GSUdfU1lTX05BTkRfUkRZKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2JvYXJkL3F1YW50dW0vZnBnYS5jIGIvYm9hcmQvcXVhbnR1bS9mcGdhLmMKaW5kZXggNzVjMjY1OC4uMDkyYWFhYiAxMDA2NDQKLS0tIGEvYm9hcmQvcXVhbnR1bS9mcGdhLmMKKysrIGIvYm9hcmQvcXVhbnR1bS9mcGdhLmMKQEAgLTYyLDExICs2MiwxMSBAQAogCiBpbnQgZnBnYV9ib290ICh1bnNpZ25lZCBjaGFyICpmcGdhZGF0YSwgaW50IHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJaW50IGksIGluZGV4LCBsZW47CiAJaW50IGNvdW50OwogCi0jaWZkZWYgQ0ZHX0ZQR0FfU1BBUlRBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIKIAlpbnQgajsKIAl1bnNpZ25lZCBjaGFyIGRhdGE7CiAjZWxzZQpAQCAtODksNyArODksNyBAQAogCiAJaW5kZXggPSAwOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfU1BBUlRBTjIKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIKIAkvKiBzZWFyY2ggZm9yIHByZWFtYmxlIDB4RkZGRkZGRkYgKi8KIAl3aGlsZSAoMSkgewogCQlpZiAoKGZwZ2FkYXRhW2luZGV4XSA9PSAweGZmKSAmJiAoZnBnYWRhdGFbaW5kZXggKyAxXSA9PSAweGZmKQpAQCAtMTU5LDEyICsxNTksMTIgQEAKIAlkZWJ1ZyAoIndyaXRlIGNvbmZpZ3VyYXRpb24gZGF0YSBpbnRvIGZwZ2FcbiIpOwogCS8qIHdyaXRlIGNvbmZpZ3VyYXRpb24tZGF0YSBpbnRvIGZwZ2EuLi4gKi8KIAotI2lmZGVmIENGR19GUEdBX1NQQVJUQU4yCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCiAJLyoKIAkgKiBMb2FkIHVuY29tcHJlc3NlZCBpbWFnZSBpbnRvIGZwZ2EKIAkgKi8KIAlmb3IgKGkgPSBpbmRleDsgaSA8IHNpemU7IGkrKykgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlpZiAoKGkgJSAxMDI0KSA9PSAwKQogCQkJcHJpbnRmICgiJTZkIG91dCBvZiAlNmRcciIsIGksIHNpemUpOwkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9xdWFudHVtL3F1YW50dW0uYyBiL2JvYXJkL3F1YW50dW0vcXVhbnR1bS5jCmluZGV4IDM0NWYxMjcuLmQ5NGI1ZDcgMTAwNjQ0Ci0tLSBhL2JvYXJkL3F1YW50dW0vcXVhbnR1bS5jCisrKyBiL2JvYXJkL3F1YW50dW0vcXVhbnR1bS5jCkBAIC0xMDQsNyArMTA0LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU5OwogCkBAIC0xMTIsMTUgKzExMiwxNSBAQAogCQkgICBzaXplb2YgKHNkcmFtX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwogCiAJLyogUmVmcmVzaCBjbG9jayBwcmVzY2FsYXIgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwogCiAJLyogTWFwIGNvbnRyb2xsZXIgYmFua3MgMSB0byB0aGUgU0RSQU0gYmFuayAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl85Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOUNPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xMzYsMTIgKzEzNiwxMiBAQAogCS8qIENoZWNrIEJhbmsgMCBNZW1vcnkgU2l6ZSwKIAkgKiA5IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRV9QUkVMSU0sCiAJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAJLyoKIAkgKiBGaW5hbCBtYXBwaW5nOgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplOSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07CisJbWVtY3RsLT5tZW1jX29yMSA9ICgoLXNpemU5KSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CiAJdWRlbGF5ICgxMDAwKTsKIAogCXJldHVybiAoc2l6ZTkpOwpAQCAtMTYwLDcgKzE2MCw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdm9sYXRpbGUgdWxvbmcgKmFkZHI7CiAJdWxvbmcgY250LCB2YWwsIHNpemU7CkBAIC0yMjQsMTQgKzIyNCwxNCBAQAogCXZvaWQgKmZwZ2FfZGF0YTsKIAlpbnQgZnBnYV9zaXplOwogCWludCBzdGF0dXM7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJaW50IGZsYXNoX3NpemU7CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCiAJZmxhc2hfc2l6ZSA9IGZsYXNoX2luaXQgKCk7Ci0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLWZsYXNoX3NpemUgJiAweEZGRkY4MDAwKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtZmxhc2hfc2l6ZSAmIDB4RkZGRjgwMDApOworCW1lbWN0bC0+bWVtY19icjAgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOwogCiAJaWYgKGZwZ2FfZGF0YV9zdHIgJiYgZnBnYV9zaXplX3N0cikgewogCQlmcGdhX2RhdGEgPSAodm9pZCAqKSBzaW1wbGVfc3RydG91bCAoZnBnYV9kYXRhX3N0ciwgTlVMTCwgMTYpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcjJkcGx1cy9yMmRwbHVzLmMgYi9ib2FyZC9yMmRwbHVzL3IyZHBsdXMuYwppbmRleCA0ZTBjNjZhLi4wYzA4ZDY4IDEwMDY0NAotLS0gYS9ib2FyZC9yMmRwbHVzL3IyZHBsdXMuYworKysgYi9ib2FyZC9yMmRwbHVzL3IyZHBsdXMuYwpAQCAtNDMsOSArNDMsOSBAQAogewogCURFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0JZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENGR19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CisJZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwlnZC0+YmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3IzNjBtcGkvZmxhc2guYyBiL2JvYXJkL3IzNjBtcGkvZmxhc2guYwppbmRleCA4MTQ1NDM3Li40NWNjY2Y3IDEwMDY0NAotLS0gYS9ib2FyZC9yMzYwbXBpL2ZsYXNoLmMKKysrIGIvYm9hcmQvcjM2MG1waS9mbGFzaC5jCkBAIC0yOSwxMSArMjksMTEgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC03NiwxMyArNzYsMTMgQEAKIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMDsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC05NSwxOSArOTUsMTkgQEAKIAl9CiAKIAkvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZCkgZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCQlDRkdfRkxBU0hfQkFTRSwKLQkJCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yNjEsMTAgKzI2MSwxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0zMzUsNyArMzM1LDcgQEAKIAkJCXVkZWxheSAoMTAwMCk7CiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCSAgICBpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkgICAgaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTQ3Miw3ICs0NzIsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9yMzYwbXBpL3BjbWNpYS5jIGIvYm9hcmQvcjM2MG1waS9wY21jaWEuYwppbmRleCA0ZmQ5ZDEyLi44NWRhNDFiIDEwMDY0NAotLS0gYS9ib2FyZC9yMzYwbXBpL3BjbWNpYS5jCisrKyBiL2JvYXJkL3IzNjBtcGkvcGNtY2lhLmMKQEAgLTI4LDEwICsyOCwxMCBAQAogCiAJdWRlbGF5KDEwMDAwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3NpdV9jb25mKSk7Ci0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKLQljcCAgICA9IChjcG04eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlzeXNwICA9IChzeXNjb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9zaXVfY29uZikpOworCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOworCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtKSk7CiAKIAkvKgogCSogQ29uZmlndXJlIFNJVU1DUiB0byBlbmFibGUgUENNQ0lBIHBvcnQgQgpAQCAtMTMyLDggKzEzMiw4IEBACiAKIAlkZWJ1ZyAoImhhcmR3YXJlX2Rpc2FibGU6ICIgUENNQ0lBX0JPQVJEX01TRyAiIFNsb3QgJWNcbiIsICdBJytzbG90KTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCiAJLyogcmVtb3ZlIGFsbCBwb3dlciAqLwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IDB4MDQwMDsKQEAgLTE2NCw4ICsxNjQsOCBAQAogCQkJIiBTbG90ICVjLCBWY2M9JWQuJWQsIFZwcD0lZC4lZFxuIiwKIAknQScrc2xvdCwgdmNjLzEwLCB2Y2MlMTAsIHZwcC8xMCwgdmNjJTEwKTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlwY21wID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCS8qCiAJKiBEaXNhYmxlIFBDTUNJQSBidWZmZXJzIChpc29sYXRlIHRoZSBpbnRlcmZhY2UpCiAJKiBhbmQgYXNzZXJ0IFJFU0VUIHNpZ25hbApkaWZmIC0tZ2l0IGEvYm9hcmQvcjM2MG1waS9yMzYwbXBpLmMgYi9ib2FyZC9yMzYwbXBpL3IzNjBtcGkuYwppbmRleCBjNTFlNDEyLi5iNTAyZTRkIDEwMDY0NAotLS0gYS9ib2FyZC9yMzYwbXBpL3IzNjBtcGkuYworKysgYi9ib2FyZC9yMzYwbXBpL3IzNjBtcGkuYwpAQCAtMTA1LDcgKzEwNSw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplOCwgc2l6ZTk7CiAJbG9uZyBpbnQgc2l6ZV9iMCA9IDA7CkBAIC0xMjAsNyArMTIwLDcgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfOEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfOEs7CiAKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDA4ODsKIApAQCAtMTI5LDEwICsxMjksMTAgQEAKIAkgKiBwcmVsaW1pbmFyeSBhZGRyZXNzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKIAkgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAKQEAgLTE1Miw3ICsxNTIsNyBAQAogCSAqCiAJICogdHJ5IDggY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTJfUFJFTElNLAorCXNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgKGxvbmcgKikgU0RSQU1fQkFTRTJfUFJFTElNLAogCQkJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKIAl1ZGVsYXkgKDEwMDApOwpAQCAtMTYwLDcgKzE2MCw3IEBACiAJLyoKIAkgKiB0cnkgOSBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFMl9QUkVMSU0sCisJc2l6ZTkgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl85Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFMl9QUkVMSU0sCiAJCQkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAogCWlmIChzaXplOCA8IHNpemU5KSB7CQkvKiBsZWF2ZSBjb25maWd1cmF0aW9uIGF0IDkgY29sdW1ucyAqLwpAQCAtMTY4LDcgKzE2OCw3IEBACiAvKglkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA5IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0gZWxzZSB7CQkJLyogYmFjayB0byA4IGNvbHVtbnMgICAgICAgICAgICAqLwogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOCBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9CkBAIC0xODEsNyArMTgxLDcgQEAKIAkgKi8KIAlpZiAoKHNpemVfYjAgPCAweDAyMDAwMDAwKSkgewogCQkvKiByZWR1Y2UgdG8gMTUuNiB1cyAoNjIuNCB1cyAvIHF1YWQpICovCi0JCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzRLOwogCQl1ZGVsYXkgKDEwMDApOwogCX0KIApAQCAtMTg5LDIwICsxODksMjAgQEAKIAkgKiBGaW5hbCBtYXBwaW5nCiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAlyZWcgPSBtZW1jdGwtPm1lbWNfbXB0cHI7Ci0JcmVnID4+PSAxOwkJLyogcmVkdWNlIHRvIENGR19NUFRQUl8xQktfOEsgLyBfNEsgKi8KKwlyZWcgPj49IDE7CQkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KIAltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKIAogI2lmZGVmIENPTkZJR19DQU5fRFJJVkVSCiAJLyogSW5pdGlhbGl6ZSBPUjMgLyBCUjMgKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SM19DQU47CQkvKiBzd2l0Y2ggR1BMQl81IHRvIEdQTEFfNSAqLwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX0NBTjsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfQ0FOOwkJLyogc3dpdGNoIEdQTEJfNSB0byBHUExBXzUgKi8KKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfQ0FOOwogCiAJLyogSW5pdGlhbGl6ZSBNQk1SICovCiAJbWVtY3RsLT5tZW1jX21ibXIgPSBNQk1SX0dQTF9CNERJUzsJLyogR1BMX0I0IHdvcmtzIGFzIFVQV0FJVEIgKi8KQEAgLTI1Niw3ICsyNTYsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwKIAkJCSAgIGxvbmcgaW50ICpiYXNlLCBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjY4LDcgKzI2OCw3IEBACiAKIHZvaWQgcjM2MF9pMmNfbGNkX3dyaXRlICh1Y2hhciBkYXRhMCwgdWNoYXIgZGF0YTEpCiB7Ci0JaWYgKGkyY193cml0ZSAoQ0ZHX0kyQ19MQ0RfQUREUiwgZGF0YTAsIDEsICZkYXRhMSwgMSkpIHsKKwlpZiAoaTJjX3dyaXRlIChDT05GSUdfU1lTX0kyQ19MQ0RfQUREUiwgZGF0YTAsIDEsICZkYXRhMSwgMSkpIHsKIAkJcHJpbnRmKCJDYW4ndCB3cml0ZSBsY2QgZGF0YSAweCUwMlggMHglMDJYLlxuIiwgZGF0YTAsIGRhdGExKTsKIAl9CiB9CkBAIC0yOTIsOSArMjkyLDkgQEAKIAljaGFyICpzdHI7CiAJaW50IGk7CiAKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKLQlpMmNfcmVhZCAoQ0ZHX0kyQ19LRVlfQUREUiwgMCwgMCwgKHVjaGFyICopa2JkX2RhdGEsIEtFWUJEX0RBVEFMRU4pOworCWkyY19yZWFkIChDT05GSUdfU1lTX0kyQ19LRVlfQUREUiwgMCwgMCwgKHVjaGFyICopa2JkX2RhdGEsIEtFWUJEX0RBVEFMRU4pOwogCiAJZm9yIChpID0gMDsgaSA8IEtFWUJEX0RBVEFMRU47ICsraSkgewogCQlzcHJpbnRmIChrZXliZF9lbnYgKyBpICsgaSwgIiUwMlgiLCBrYmRfZGF0YVtpXSk7CkBAIC0zOTcsMTAgKzM5NywxMCBAQAogCXVjaGFyIGtleWJkX2VudlsyICogS0VZQkRfREFUQUxFTiArIDFdOwogCWludCBpOwogCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJLyogUmVhZCBrZXlzICovCi0JaTJjX3JlYWQgKENGR19JMkNfS0VZX0FERFIsIDAsIDAsIGtiZF9kYXRhLCBLRVlCRF9EQVRBTEVOKTsKKwlpMmNfcmVhZCAoQ09ORklHX1NZU19JMkNfS0VZX0FERFIsIDAsIDAsIGtiZF9kYXRhLCBLRVlCRF9EQVRBTEVOKTsKIAogCXB1dHMgKCJLZXlzOiIpOwogCWZvciAoaSA9IDA7IGkgPCBLRVlCRF9EQVRBTEVOOyArK2kpIHsKZGlmZiAtLWdpdCBhL2JvYXJkL3I3NzgwbXAvcjc3ODBtcC5jIGIvYm9hcmQvcjc3ODBtcC9yNzc4MG1wLmMKaW5kZXggZWZiZWVjOS4uMzk2ZTRiNiAxMDA2NDQKLS0tIGEvYm9hcmQvcjc3ODBtcC9yNzc4MG1wLmMKKysrIGIvYm9hcmQvcjc3ODBtcC9yNzc4MG1wLmMKQEAgLTQ4LDkgKzQ4LDkgQEAKIHsKIAlERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKLQlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDRkdfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENPTkZJR19TWVNfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9yYXR0bGVyL3JhdHRsZXIuYyBiL2JvYXJkL3JhdHRsZXIvcmF0dGxlci5jCmluZGV4IGFkNzVjMjEuLjgwZjU3ZGMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JhdHRsZXIvcmF0dGxlci5jCisrKyBiL2JvYXJkL3JhdHRsZXIvcmF0dGxlci5jCkBAIC0zNSwzMSArMzUsMzEgQEAKICAqIGFjY29yZGluZyB0byB0aGUgZml2ZSB2YWx1ZXMgcG9kci9wZGlyL3BwYXIvcHNvci9wZGF0IGZvciB0aGF0IGVudHJ5CiAgKi8KIAotI2RlZmluZSBDRkdfRkNDMSAoQ09ORklHX0VUSEVSX0lOREVYID09IDEpCi0jZGVmaW5lIENGR19GQ0MyIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MxIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0MyIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKIAogY29uc3QgaW9wX2NvbmZfdCBpb3BfY29uZl90YWJbNF1bMzJdID0gewogCiAgICAgLyogUG9ydCBBICovCiAgICAgewkvKgkgICAgICBjb25mICAgICAgcHBhciBwc29yIHBkaXIgcG9kciBwZGF0ICovCi0JLyogUEEzMSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBDT0wgICAgKi8KLQkvKiBQQTMwICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIENSUyAgICAqLwotCS8qIFBBMjkgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRVIgICovCi0JLyogUEEyOCAqLyB7IENGR19GQ0MxLCAgIDEsICAgMSwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUWF9FTiAgKi8KLQkvKiBQQTI3ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAxLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJYX0RWICAqLwotCS8qIFBBMjYgKi8geyBDRkdfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRVIgICovCisJLyogUEEzMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ09MICAgICovCisJLyogUEEzMCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgQ1JTICAgICovCisJLyogUEEyOSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRVIgICovCisJLyogUEEyOCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVFhfRU4gICovCisJLyogUEEyNyAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRFYgICovCisJLyogUEEyNiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDEsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUlhfRVIgICovCiAJLyogUEEyNSAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTI1ICAgICAgICAgICAgKi8KIAkvKiBQQTI0ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMjQgICAgICAgICAgICAqLwogCS8qIFBBMjMgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEEyMyAgICAgICAgICAgICovCiAJLyogUEEyMiAqLyB7IDEsICAgICAgICAgIDAsICAgMCwgICAxLCAgIDAsICAgMSB9LCAvKiBFdGggUEhZcyByZXNldCAgKi8KLQkvKiBQQTIxICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFszXSAqLwotCS8qIFBBMjAgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzJdICovCi0JLyogUEExOSAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBUeERbMV0gKi8KLQkvKiBQQTE4ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFR4RFswXSAqLwotCS8qIFBBMTcgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzBdICovCi0JLyogUEExNiAqLyB7IENGR19GQ0MxLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MxIE1JSSBSeERbMV0gKi8KLQkvKiBQQTE1ICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgTUlJIFJ4RFsyXSAqLwotCS8qIFBBMTQgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzNdICovCisJLyogUEEyMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzNdICovCisJLyogUEEyMCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzJdICovCisJLyogUEExOSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzFdICovCisJLyogUEExOCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgVHhEWzBdICovCisJLyogUEExNyAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzBdICovCisJLyogUEExNiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzFdICovCisJLyogUEExNSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzJdICovCisJLyogUEExNCAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBNSUkgUnhEWzNdICovCiAJLyogUEExMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQTEzICAgICAgICAgICAgKi8KIAkvKiBQQTEyICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBBMTIgICAgICAgICAgICAqLwogCS8qIFBBMTEgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEExMSAgICAgICAgICAgICovCkBAIC03OCwyMCArNzgsMjAgQEAKIAogICAgIC8qIFBvcnQgQiAqLwogICAgIHsgICAvKgkgICAgICBjb25mICAgICAgcHBhciBwc29yIHBkaXIgcG9kciBwZGF0ICovCi0JLyogUEIzMSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUWF9FUiAgKi8KLQkvKiBQQjMwICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0RWICAqLwotCS8qIFBCMjkgKi8geyBDRkdfRkNDMiwgICAxLCAgIDEsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVFhfRU4gICovCi0JLyogUEIyOCAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSWF9FUiAgKi8KLQkvKiBQQjI3ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENPTCAgICAqLwotCS8qIFBCMjYgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgQ1JTICAgICovCi0JLyogUEIyNSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbM10gKi8KLQkvKiBQQjI0ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsyXSAqLwotCS8qIFBCMjMgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMSwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgVHhEWzFdICovCi0JLyogUEIyMiAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAxLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBUeERbMF0gKi8KLQkvKiBQQjIxICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFswXSAqLwotCS8qIFBCMjAgKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBNSUkgUnhEWzFdICovCi0JLyogUEIxOSAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIE1JSSBSeERbMl0gKi8KLQkvKiBQQjE4ICovIHsgQ0ZHX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFszXSAqLworCS8qIFBCMzEgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VSICAqLworCS8qIFBCMzAgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0RWICAqLworCS8qIFBCMjkgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAxLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFRYX0VOICAqLworCS8qIFBCMjggKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJYX0VSICAqLworCS8qIFBCMjcgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENPTCAgICAqLworCS8qIFBCMjYgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIENSUyAgICAqLworCS8qIFBCMjUgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFszXSAqLworCS8qIFBCMjQgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsyXSAqLworCS8qIFBCMjMgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFsxXSAqLworCS8qIFBCMjIgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDEsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFR4RFswXSAqLworCS8qIFBCMjEgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFswXSAqLworCS8qIFBCMjAgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsxXSAqLworCS8qIFBCMTkgKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFsyXSAqLworCS8qIFBCMTggKi8geyBDT05GSUdfU1lTX0ZDQzIsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzIgTUlJIFJ4RFszXSAqLwogCS8qIFBCMTcgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogbm9uLWV4aXN0ZW50ICAgICovCiAJLyogUEIxNiAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBub24tZXhpc3RlbnQgICAgKi8KIAkvKiBQQjE1ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIG5vbi1leGlzdGVudCAgICAqLwpAQCAtMTIzLDEyICsxMjMsMTIgQEAKIAkvKiBQQzI1ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMjUgICAgICAgICAgICAqLwogCS8qIFBDMjQgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMyNCAgICAgICAgICAgICovCiAJLyogUEMyMyAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzIzICAgICAgICAgICAgKi8KLQkvKiBQQzIyICovIHsgQ0ZHX0ZDQzEsICAgMSwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIEZDQzEgVHhDbGsgKENMSzEwKSAqLwotCS8qIFBDMjEgKi8geyBDRkdfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBSeENsayAoQ0xLMTEpICovCisJLyogUEMyMiAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBUeENsayAoQ0xLMTApICovCisJLyogUEMyMSAqLyB7IENPTkZJR19TWVNfRkNDMSwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMSBSeENsayAoQ0xLMTEpICovCiAJLyogUEMyMCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzIwICAgICAgICAgICAgKi8KIAkvKiBQQzE5ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTkgICAgICAgICAgICAqLwotCS8qIFBDMTggKi8geyBDRkdfRkNDMiwgICAxLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogRkNDMiBUeENsayAoQ0xLMTQpICovCi0JLyogUEMxNyAqLyB7IENGR19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIFJ4Q2xrIChDTEsxNSkgKi8KKwkvKiBQQzE4ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIFR4Q2xrIChDTEsxNCkgKi8KKwkvKiBQQzE3ICovIHsgQ09ORklHX1NZU19GQ0MyLCAgIDEsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBGQ0MyIFJ4Q2xrIChDTEsxNSkgKi8KIAkvKiBQQzE2ICovIHsgMCwgICAgICAgICAgMCwgICAwLCAgIDAsICAgMCwgICAwIH0sIC8qIFBDMTYgICAgICAgICAgICAqLwogCS8qIFBDMTUgKi8geyAwLCAgICAgICAgICAwLCAgIDAsICAgMCwgICAwLCAgIDAgfSwgLyogUEMxNSAgICAgICAgICAgICovCiAJLyogUEMxNCAqLyB7IDAsICAgICAgICAgIDAsICAgMCwgICAwLCAgIDAsICAgMCB9LCAvKiBQQzE0ICAgICAgICAgICAgKi8KQEAgLTE4NywyNiArMTg3LDI2IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCWxvbmcgaW50IG1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7CisJbG9uZyBpbnQgbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKLQl2dV9jaGFyICpyYW1hZGRyID0gKHZ1X2NoYXIgKilDRkdfU0RSQU1fQkFTRTsKKwl2dV9jaGFyICpyYW1hZGRyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAJdWNoYXIgYyA9IDB4RkY7Ci0JdWludCBwc2RtciA9IENGR19QU0RNUjsKKwl1aW50IHBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKIAlpbnQgaTsKIAogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWNyICA9IDB4MDI7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3BwY19hbHJoID0gMHgzMDEyNjc0NTsKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfdGVzY3IxICAgPSAweDAwMDA0MDAwOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAkvKiBJbml0aWFsaXNlIDYweCBidXMgU0RSQU0gKi8KLQltZW1jdGwtPm1lbWNfcHNydCA9IENGR19QU1JUOwotCW1lbWN0bC0+bWVtY19vcjEgID0gQ0ZHX1NEUkFNX09SOwotCW1lbWN0bC0+bWVtY19icjEgID0gQ0ZHX1NEUkFNX0JSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19vcjEgID0gQ09ORklHX1NZU19TRFJBTV9PUjsKKwltZW1jdGwtPm1lbWNfYnIxICA9IENPTkZJR19TWVNfU0RSQU1fQlI7CiAJbWVtY3RsLT5tZW1jX3BzZG1yID0gcHNkbXIgfCBQU0RNUl9PUF9QUkVBOyAvKiBQcmVjaGFyZ2UgYWxsIGJhbmtzICovCiAJKnJhbWFkZHIgPSBjOwogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfQ0JSUjsgLyogQ0JSIHJlZnJlc2ggKi8KQEAgLTIxNiw3ICsyMTYsNyBAQAogCSpyYW1hZGRyID0gYzsKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX1JGRU47ICAgIC8qIFJlZnJlc2ggZW5hYmxlICovCiAJKnJhbWFkZHIgPSBjOwotI2VuZGlmIC8qICFDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHVybiB0b3RhbCA2MHggYnVzIFNEUkFNIHNpemUgKi8KIAlyZXR1cm4gbXNpemUgKiAxMDI0ICogMTAyNDsKQEAgLTIyNCw3ICsyMjQsNyBAQAogCiBpbnQgY2hlY2tib2FyZCh2b2lkKQogewotCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNGR19CQ1NSOworCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNPTkZJR19TWVNfQkNTUjsKIAogCXByaW50ZigiQm9hcmQ6IFJhdHRsZXIgUmV2LiAlY1xuIiwgYmNzclsweDIwXSArIDB4NDApOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcmJjODIzL2ZsYXNoLmMgYi9ib2FyZC9yYmM4MjMvZmxhc2guYwppbmRleCAyNmViY2FlLi5jYjFlMDg5IDEwMDY0NAotLS0gYS9ib2FyZC9yYmM4MjMvZmxhc2guYworKysgYi9ib2FyZC9yYmM4MjMvZmxhc2guYwpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC00MiwyMCArNDIsMjAgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpCiAJICAgIGZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCiAJLyogRGV0ZWN0IHNpemUgKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogU2V0dXAgb2Zmc2V0cyAqLwotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTMyMiw3ICszMjIsNyBAQAogCiAJd2hpbGUgKChhZGRyWzBdICYgMHhGRikgIT0gMHhGRikKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NTQsNyArNDU0LDcgQEAKIAkgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCSAgICB3aGlsZSAoKCpjZGVzdCBeICpjZGF0YSkgJiAweDgwKQogCSAgICB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAkgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvcmJjODIzL2tiZC5jIGIvYm9hcmQvcmJjODIzL2tiZC5jCmluZGV4IDZkNTMwZjYuLjFkNDhmNmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JiYzgyMy9rYmQuYworKysgYi9ib2FyZC9yYmM4MjMva2JkLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAogdm9pZCBzbWMxX3NldGJyZyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltLT5pbV9jcG0pOwogCiAJLyogU2V0IHVwIHRoZSBiYXVkIHJhdGUgZ2VuZXJhdG9yLgpAQCAtNjUsNyArNjUsNyBAQAogCiBpbnQgc21jMV9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHNtY190ICpzcDsKIAl2b2xhdGlsZSBzbWNfdWFydF90ICp1cDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CkBAIC04NiwxNSArODYsMTUgQEAKIAlpbS0+aW1fc2l1X2NvbmYuc2Nfc2RjciA9IDE7CiAKIAkvKiBjbGVhciBlcnJvciBjb25kaXRpb25zICovCi0jaWZkZWYJQ0ZHX1NEU1IKLQlpbS0+aW1fc2RtYS5zZG1hX3Nkc3IgPSBDRkdfU0RTUjsKKyNpZmRlZglDT05GSUdfU1lTX1NEU1IKKwlpbS0+aW1fc2RtYS5zZG1hX3Nkc3IgPSBDT05GSUdfU1lTX1NEU1I7CiAjZWxzZQogCWltLT5pbV9zZG1hLnNkbWFfc2RzciA9IDB4ODM7CiAjZW5kaWYKIAogCS8qIGNsZWFyIFNETUEgaW50ZXJydXB0IG1hc2sgKi8KLSNpZmRlZglDRkdfU0RNUgotCWltLT5pbV9zZG1hLnNkbWFfc2RtciA9IENGR19TRE1SOworI2lmZGVmCUNPTkZJR19TWVNfU0RNUgorCWltLT5pbV9zZG1hLnNkbWFfc2RtciA9IENPTkZJR19TWVNfU0RNUjsKICNlbHNlCiAJaW0tPmltX3NkbWEuc2RtYV9zZG1yID0gMHgwMDsKICNlbmRpZgpAQCAtMTA5LDcgKzEwOSw3IEBACiAJICogdGhlIGJ1ZmZlciBkZXNjcmlwdG9ycy4KIAkgKi8KIAotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAlkcGFkZHIgPSBkcHJhbV9hbGxvY19hbGlnbiAoc2l6ZW9mKGNiZF90KSoyICsgMiwgOCkgOwogI2Vsc2UKIAlkcGFkZHIgPSBDUE1fS0VZQk9BUkRfQkFTRSA7CkBAIC0xODIsNyArMTgyLDcgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnRiZGY7CiAJdm9sYXRpbGUgY2hhcgkJKmJ1ZjsKIAl2b2xhdGlsZSBzbWNfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3BtcCA9ICYoaW0tPmltX2NwbSk7CiAKIAl1cCA9IChzbWNfdWFydF90ICopJmNwbXAtPmNwX2RwYXJhbVtQUk9GRl9TTUNdOwpAQCAtMjEwLDcgKzIxMCw3IEBACiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIJKmJ1ZjsKIAl2b2xhdGlsZSBzbWNfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3BtcCA9ICYoaW0tPmltX2NwbSk7CiAJdW5zaWduZWQgY2hhcgkJYzsKIApAQCAtMjM1LDcgKzIzNSw3IEBACiB7CiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90CSpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogCXVwID0gKHNtY191YXJ0X3QgKikmY3BtcC0+Y3BfZHBhcmFtW1BST0ZGX1NNQ107CmRpZmYgLS1naXQgYS9ib2FyZC9yYmM4MjMvcmJjODIzLmMgYi9ib2FyZC9yYmM4MjMvcmJjODIzLmMKaW5kZXggNWI2MmFmNi4uYjI5NDkwNiAxMDA2NDQKLS0tIGEvYm9hcmQvcmJjODIzL3JiYzgyMy5jCisrKyBiL2JvYXJkL3JiYzgyMy9yYmM4MjMuYwpAQCAtMTQ0LDcgKzE0NCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlsb25nIGludCBzaXplX2IwLCBzaXplOCwgc2l6ZTk7CiAKQEAgLTE1NCwxNSArMTU0LDE1IEBACiAJLyoKIAkgKiAxIEJhbmsgb2YgNjRNYml0IHggMiBkZXZpY2VzCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS180SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS180SzsKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDA4ODsKIAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgU0RSQU0gYmFuayAwCiAJICovCi0JbWVtY3RsLT5tZW1jX29yNCA9IENGR19PUjRfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQlI0X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjRfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNF9QUkVMSU07CisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTCAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCXVkZWxheSAoMjAwKTsKIAogCS8qCkBAIC0xNzAsMTEgKzE3MCwxMSBAQAogCSAqLwogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwMDA4MTA1OwkvKiBTRFJBTSBiYW5rIDAgKi8KIAl1ZGVsYXkgKDEpOwotCW1lbWN0bC0+bWVtY19tYW1yID0gKENGR19NQU1SXzhDT0wgJiB+KE1BTVJfVExGQV9NU0spKSB8IE1BTVJfVExGQV84WDsKKwltZW1jdGwtPm1lbWNfbWFtciA9IChDT05GSUdfU1lTX01BTVJfOENPTCAmIH4oTUFNUl9UTEZBX01TSykpIHwgTUFNUl9UTEZBXzhYOwogCXVkZWxheSAoMjAwKTsKIAltZW1jdGwtPm1lbWNfbWNyID0gMHg4MDAwODEzMDsJLyogU0RSQU0gYmFuayAwIC0gZXhlY3V0ZSB0d2ljZSAqLwogCXVkZWxheSAoMSk7Ci0JbWVtY3RsLT5tZW1jX21hbXIgPSAoQ0ZHX01BTVJfOENPTCAmIH4oTUFNUl9UTEZBX01TSykpIHwgTUFNUl9UTEZBXzRYOworCW1lbWN0bC0+bWVtY19tYW1yID0gKENPTkZJR19TWVNfTUFNUl84Q09MICYgfihNQU1SX1RMRkFfTVNLKSkgfCBNQU1SX1RMRkFfNFg7CiAJdWRlbGF5ICgyMDApOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgfD0gTUFNUl9QVEFFOwkvKiBlbmFibGUgcmVmcmVzaCAqLwpAQCAtMTg2LDIxICsxODYsMjEgQEAKIAkgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAJICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogCSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CS8qIDE2OiBidXQgc2hvdWxkIGJlOiBDRkdfTVBUUFJfMUJLXzRLICovCisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CS8qIDE2OiBidXQgc2hvdWxkIGJlOiBDT05GSUdfU1lTX01QVFBSXzFCS180SyAqLwogCiAJLyoKIAkgKiBDaGVjayBCYW5rIDAgTWVtb3J5IFNpemUgZm9yIHJlLWNvbmZpZ3VyYXRpb24KIAkgKgogCSAqIHRyeSA4IGNvbHVtbiBtb2RlCiAJICovCi0Jc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0U0X1BSRUxJTSwKKwlzaXplOCA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzhDT0wsIChsb25nICopIFNEUkFNX0JBU0U0X1BSRUxJTSwKIAkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAl1ZGVsYXkgKDEwMDApOwogCiAJLyoKIAkgKiB0cnkgOSBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFNF9QUkVMSU0sCisJc2l6ZTkgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl85Q09MLCAobG9uZyAqKSBTRFJBTV9CQVNFNF9QUkVMSU0sCiAJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewkvKiBsZWF2ZSBjb25maWd1cmF0aW9uIGF0IDkgY29sdW1ucyAgICAgKi8KQEAgLTIwOCw3ICsyMDgsNyBAQAogLyoJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gOSBjb2x1bW4gbW9kZTogJWxkIE1CXG4iLCBzaXplID4+IDIwKTsJKi8KIAl9IGVsc2UgewkJLyogYmFjayB0byA4IGNvbHVtbnMgICAgICAgICAgICAgICAgICAgICovCiAJCXNpemVfYjAgPSBzaXplODsKLQkJbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCQltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MOwogCQl1ZGVsYXkgKDUwMCk7CiAvKglkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA4IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogCX0KQEAgLTIyMSwxNCArMjIxLDE0IEBACiAJICovCiAJaWYgKChzaXplX2IwIDwgMHgwMjAwMDAwMCkpIHsKIAkJLyogcmVkdWNlIHRvIDE1LjYgdXMgKDYyLjQgdXMgLyBxdWFkKSAqLwotCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzRLOworCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS180SzsKIAkJdWRlbGF5ICgxMDAwKTsKIAl9CiAKIAkvKiBTRFJBTSBCYW5rIDAgaXMgYmlnZ2VyIC0gbWFwIGZpcnN0ICAgICAgICovCiAKLQltZW1jdGwtPm1lbWNfb3I0ID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JbWVtY3RsLT5tZW1jX2JyNCA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfb3I0ID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19icjQgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAJdWRlbGF5ICgxMDAwMCk7CiAKQEAgLTI0OCw3ICsyNDgsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjU4LDcgKzI1OCw3IEBACiAKIHZvaWQgZG9jX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAl1cG1jb25maWcgKFVQTUIsICh1aW50ICopIHN0YXRpY190YWJsZSwKZGlmZiAtLWdpdCBhL2JvYXJkL3JtdS9mbGFzaC5jIGIvYm9hcmQvcm11L2ZsYXNoLmMKaW5kZXggN2MyNDhhNy4uYTNhYjg1MSAxMDA2NDQKLS0tIGEvYm9hcmQvcm11L2ZsYXNoLmMKKysrIGIvYm9hcmQvcm11L2ZsYXNoLmMKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNDAsMTMgKzQwLDEzIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCA7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTY0LDIxICs2NCwyMSBAQAogCQltZW1jdGwtPm1lbWNfYnIwLCBtZW1jdGwtPm1lbWNfb3IwKTsKIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAlkZWJ1ZyAoIiMjIEJSMDogMHglMDh4ICAgIE9SMDogMHglMDh4XG4iLAogCQltZW1jdGwtPm1lbWNfYnIwLCBtZW1jdGwtPm1lbWNfb3IwKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7Ci0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgICAgICZmbGFzaF9pbmZvWzBdKTsKIAogI2lmZGVmCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTQwNiw3ICs0MDYsNyBAQAogCWxhc3QgID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9sb25nICopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4ODA4MDgwODApICE9IDB4ODA4MDgwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTUyOSw3ICs1MjksNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDgwODA4MDgwKSAhPSAoZGF0YSAmIDB4ODA4MDgwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9ybXUvcm11LmMgYi9ib2FyZC9ybXUvcm11LmMKaW5kZXggZTIyZGM1Mi4uY2QwMmI5YyAxMDA2NDQKLS0tIGEvYm9hcmQvcm11L3JtdS5jCisrKyBiL2JvYXJkL3JtdS9ybXUuYwpAQCAtOTQsNyArOTQsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTk7CiAKQEAgLTEwMiwxNSArMTAyLDE1IEBACiAJCSAgIHNpemVvZiAoc2RyYW1fdGFibGUpIC8gc2l6ZW9mICh1aW50KSk7CiAKIAkvKiBSZWZyZXNoIGNsb2NrIHByZXNjYWxhciAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJbWVtY3RsLT5tZW1jX21hciA9IDB4MDAwMDAwODg7CiAKIAkvKiBNYXAgY29udHJvbGxlciBiYW5rcyAxIHRvIHRoZSBTRFJBTSBiYW5rICovCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzlDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl85Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAKQEAgLTEyNywxNCArMTI3LDE0IEBACiAJICogOSBjb2x1bW4gbW9kZQogCSAqLwogCi0Jc2l6ZTkgPSBkcmFtX3NpemUgKENGR19NQU1SXzlDT0wsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOUNPTCwgKGxvbmcgKikgU0RSQU1fQkFTRV9QUkVMSU0sCiAJCQkgICBTRFJBTV9NQVhfU0laRSk7CiAKIAkvKgogCSAqIEZpbmFsIG1hcHBpbmc6CiAJICovCiAKLQltZW1jdGwtPm1lbWNfb3IxID0gKCgtc2l6ZTkpICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOworCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplOSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCXVkZWxheSAoMTAwMCk7CiAKIAlyZXR1cm4gKHNpemU5KTsKQEAgLTE1Myw3ICsxNTMsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcnB4c3VwZXIvZmxhc2guYyBiL2JvYXJkL3JweHN1cGVyL2ZsYXNoLmMKaW5kZXggNWY0NDRiZi4uYmUyOWI2NSAxMDA2NDQKLS0tIGEvYm9hcmQvcnB4c3VwZXIvZmxhc2guYworKysgYi9ib2FyZC9ycHhzdXBlci9mbGFzaC5jCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAjZGVmaW5lIFJEX1NXUDMyKHgpIGluX2xlMzIoKHZvbGF0aWxlIHUzMiopeCkKIApAQCAtNTMsMjEgKzUzLDIxIEBACiAgICAgaW50IGk7CiAKICAgICAvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0gICAgZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisgICAgZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogICAgIH0KIAogICAgIC8qIGZvciBub3csIG9ubHkgc3VwcG9ydCB0aGUgNCBNQiBGbGFzaCBTSU1NICovCi0gICAgc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisgICAgc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ09ORklHX1NZU19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAgICAgLyoKICAgICAgKiBwcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKICAgICAgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIMF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSDBfQkFTRQogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC04MSw3ICs4MSw3IEBACiAJCSAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKLSAgICByZXR1cm4gLypzaXplKi8gKENGR19GTEFTSDBfU0laRSAqIDEwMjQgKiAxMDI0KTsKKyAgICByZXR1cm4gLypzaXplKi8gKENPTkZJR19TWVNfRkxBU0gwX1NJWkUgKiAxMDI0ICogMTAyNCk7CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5Miw3ICsyOTIsNyBAQAogICAgIGFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogICAgIHdoaWxlICgJKGFkZHJbMF0gJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwIHx8CiAJCShhZGRyWzFdICYgMHg4MDgwODA4MCkgIT0gMHg4MDgwODA4MCkgewotCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkgICAgcHJpbnRmICgiVGltZW91dFxuIik7CiAJICAgIHJldHVybiAxOwogCX0KQEAgLTQyMyw3ICs0MjMsNyBAQAogICAgIC8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KICAgICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAgICAgd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDgwODA4MDgwKSAhPSAoZGF0YSAmIDB4ODA4MDgwODApKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgIHJldHVybiAoMSk7CiAJfQogICAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3JweHN1cGVyL21paV9waHkuYyBiL2JvYXJkL3JweHN1cGVyL21paV9waHkuYwppbmRleCBlZjk5YWZmLi4xMmUyM2Y0IDEwMDY0NAotLS0gYS9ib2FyZC9ycHhzdXBlci9taWlfcGh5LmMKKysrIGIvYm9hcmQvcnB4c3VwZXIvbWlpX3BoeS5jCkBAIC01NCw3ICs1NCw3IEBACiB7CiAgICAgaW50IGk7CiAgICAgdW5zaWduZWQgc2hvcnQgdG1wLCB2YWwgPSAwLCBhZHIgPSAwOwotICAgIHRfcnB4X3JlZ3MgKnJlZ3MgPSAodF9ycHhfcmVncyopQ0ZHX1JFR1NfQkFTRTsKKyAgICB0X3JweF9yZWdzICpyZWdzID0gKHRfcnB4X3JlZ3MqKUNPTkZJR19TWVNfUkVHU19CQVNFOwogCiAgICAgdG1wID0gMHg2MDAyIHwgKGFkciA8PCA3KSB8IChyZWcgPDwgMik7CiAgICAgcmVncy0+YmNzcjQgPSAweEMzOwpAQCAtODMsNyArODMsNyBAQAogewogICAgIGludCBpOwogICAgIHVuc2lnbmVkIHNob3J0IHRtcCwgYWRyID0gMDsKLSAgICB0X3JweF9yZWdzICpyZWdzID0gKHRfcnB4X3JlZ3MqKUNGR19SRUdTX0JBU0U7CisgICAgdF9ycHhfcmVncyAqcmVncyA9ICh0X3JweF9yZWdzKilDT05GSUdfU1lTX1JFR1NfQkFTRTsKIAogICAgIHRtcCA9IDB4NTAwMiB8IChhZHIgPDwgNykgfCAocmVnIDw8IDIpOwogICAgIHJlZ3MtPmJjc3I0ID0gMHhDMzsKZGlmZiAtLWdpdCBhL2JvYXJkL3JweHN1cGVyL3JweHN1cGVyLmMgYi9ib2FyZC9ycHhzdXBlci9ycHhzdXBlci5jCmluZGV4IGY2MzNjNWMuLmFhNTk4MDMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JweHN1cGVyL3JweHN1cGVyLmMKKysrIGIvYm9hcmQvcnB4c3VwZXIvcnB4c3VwZXIuYwpAQCAtMTkzLDExICsxOTMsMTEgQEAKICovCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mICh2b2lkKQogewotICAgIHZvbGF0aWxlIHRfcnB4X3JlZ3MgKnJlZ3MgPSAodF9ycHhfcmVncyopQ0ZHX1JFR1NfQkFTRTsKLSAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIHRfcnB4X3JlZ3MgKnJlZ3MgPSAodF9ycHhfcmVncyopQ09ORklHX1NZU19SRUdTX0JBU0U7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKLSAgICBtZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNF9QUkVMSU07Ci0gICAgbWVtY3RsLT5tZW1jX29yNCA9IENGR19PUjRfUFJFTElNOworICAgIG1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNF9QUkVMSU07CisgICAgbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0X1BSRUxJTTsKICAgICByZWdzLT5iY3NyMSA9IDB4NzA7IC8qIHRvIGVuYWJsZSB0ZXJtaW5hbCBubyBTTUMxICovCiAgICAgcmVncy0+YmNzcjIgPSAweDIwOwkvKiBtdXQgYmUgd3JpdHRlbiB0byBlbmFibGUgd3JpdGluZyBGTEFTSCAqLwogICAgIHJldHVybiAwOwpAQCAtMjA2LDcgKzIwNiw3IEBACiB2b2lkCiByZXNldF9waHkodm9pZCkKIHsKLSAgICB2b2xhdGlsZSB0X3JweF9yZWdzICpyZWdzID0gKHRfcnB4X3JlZ3MqKUNGR19SRUdTX0JBU0U7CisgICAgdm9sYXRpbGUgdF9ycHhfcmVncyAqcmVncyA9ICh0X3JweF9yZWdzKilDT05GSUdfU1lTX1JFR1NfQkFTRTsKICAgICByZWdzLT5iY3NyNCA9IDB4QzM7CiB9CiAKQEAgLTIxNiw3ICsyMTYsNyBAQAogCiBpbnQgY2hlY2tib2FyZCh2b2lkKQogewotICAgIHZvbGF0aWxlIHRfcnB4X3JlZ3MgKnJlZ3MgPSAodF9ycHhfcmVncyopQ0ZHX1JFR1NfQkFTRTsKKyAgICB2b2xhdGlsZSB0X3JweF9yZWdzICpyZWdzID0gKHRfcnB4X3JlZ3MqKUNPTkZJR19TWVNfUkVHU19CQVNFOwogICAgIHByaW50ZiAoIkJvYXJkOiBFbWJlZGRlZCBQbGFuZXQgUlBYIFN1cGVyLCBSZXZpc2lvbiAlZFxuIiwKIAlyZWdzLT5iY3NyMCA+PiA0KTsKIApAQCAtMjI3LDE1ICsyMjcsMTUgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogICAgIHZvbGF0aWxlIHVjaGFyIGMgPSAwLCAqcmFtYWRkcjsKICAgICB1bG9uZyBwc2RtciwgbHNkbXIsIGJjcjsKICAgICBsb25nIHNpemUgPSAwOwogICAgIGludCBpOwogCi0gICAgcHNkbXIgPSBDRkdfUFNETVI7Ci0gICAgbHNkbXIgPSBDRkdfTFNETVI7CisgICAgcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SOworICAgIGxzZG1yID0gQ09ORklHX1NZU19MU0RNUjsKIAogICAgIC8qCiAgICAgICogUXVvdGUgZnJvbSA4MjYwIFVNICgxMC40LjIgU0RSQU0gUG93ZXItT24gSW5pdGlhbGl6YXRpb24sIDEwLTM1KToKQEAgLTI1NCwxNyArMjU0LDE3IEBACiAgICAgICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKICAgICAgKgogICAgICAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotICAgICAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorICAgICAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KICAgICAgKi8KIAotICAgIHNpemUgPSBDRkdfU0RSQU0wX1NJWkU7CisgICAgc2l6ZSA9IENPTkZJR19TWVNfU0RSQU0wX1NJWkU7CiAgICAgYmNyID0gaW1tYXAtPmltX3NpdV9jb25mLnNjX2JjcjsKICAgICBpbW1hcC0+aW1fc2l1X2NvbmYuc2NfYmNyID0gKGJjciAmIH5CQ1JfRUJNKTsKIAotICAgIG1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKyAgICBtZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCi0gICAgcmFtYWRkciA9ICh1Y2hhciAqKShDRkdfU0RSQU0wX0JBU0UpOwotICAgIG1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7CisgICAgcmFtYWRkciA9ICh1Y2hhciAqKShDT05GSUdfU1lTX1NEUkFNMF9CQVNFKTsKKyAgICBtZW1jdGwtPm1lbWNfcHNydCA9IENPTkZJR19TWVNfUFNSVDsKIAogICAgIG1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsKICAgICAqcmFtYWRkciA9IGM7CkBAIC0yODEsMTAgKzI4MSwxMCBAQAogCiAgICAgaW1tYXAtPmltX3NpdV9jb25mLnNjX2JjciA9IGJjcjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAotLyogICAgc2l6ZSArPSBDRkdfU0RSQU0xX1NJWkU7ICovCi0gICAgcmFtYWRkciA9ICh1Y2hhciAqKShDRkdfU0RSQU0xX0JBU0UpOwotICAgIG1lbWN0bC0+bWVtY19sc3J0ID0gQ0ZHX0xTUlQ7CisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorLyogICAgc2l6ZSArPSBDT05GSUdfU1lTX1NEUkFNMV9TSVpFOyAqLworICAgIHJhbWFkZHIgPSAodWNoYXIgKikoQ09ORklHX1NZU19TRFJBTTFfQkFTRSk7CisgICAgbWVtY3RsLT5tZW1jX2xzcnQgPSBDT05GSUdfU1lTX0xTUlQ7CiAKICAgICBtZW1jdGwtPm1lbWNfbHNkbXIgPSBsc2RtciB8IFBTRE1SX09QX1BSRUE7CiAgICAgKnJhbWFkZHIgPSBjOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcnNkcHJvdG8vZmxhc2guYyBiL2JvYXJkL3JzZHByb3RvL2ZsYXNoLmMKaW5kZXggMzEyYjQwMC4uZTk5YzJhNiAxMDA2NDQKLS0tIGEvYm9hcmQvcnNkcHJvdG8vZmxhc2guYworKysgYi9ib2FyZC9yc2Rwcm90by9mbGFzaC5jCkBAIC00MSw3ICs0MSw3IEBACiAgKi8KICN1bmRlZiBXSVRIX0FVVE9TRUxFQ1QKIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKICNpZiAxCiAjZGVmaW5lIEQoeCkKQEAgLTk0LDcgKzk0LDcgQEAKICNlbmRpZgogCiAgICAgLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotICAgIGZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworICAgIGZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQogCkBAIC0xMjAsMTQgKzEyMCwxNCBAQAogCSAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBQSFlTX0ZMQVNICisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gUEhZU19GTEFTSAogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAKQEAgLTI1OSw3ICsyNTksNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlkbwogCXsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpCiAJCXsJLyogd3JpdGUgcmVzZXQgY29tbWFuZCwgY29tbWFuZCBhZGRyZXNzIGlzIHVuaW1wb3J0YW50ICovCiAJCQkvKiB0aGlzIGNvbW1hbmQgdHVybnMgdGhlIGZsYXNoIGJhY2sgdG8gcmVhZCBtb2RlICAgICAqLwogCQkJZl9hZGRyID0KQEAgLTM4Nyw3ICszODcsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlkbwogCXsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpCiAJCXsKIAkJCS8qIHdyaXRlIHJlc2V0IGNvbW1hbmQsIGNvbW1hbmQgYWRkcmVzcyBpcyB1bmltcG9ydGFudCAqLwogCQkJLyogdGhpcyBjb21tYW5kIHR1cm5zIHRoZSBmbGFzaCBiYWNrIHRvIHJlYWQgbW9kZSAgICAgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3JzZHByb3RvL3JzZHByb3RvLmMgYi9ib2FyZC9yc2Rwcm90by9yc2Rwcm90by5jCmluZGV4IGVlZWMzYjQuLjI2ZWRiMmUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3JzZHByb3RvL3JzZHByb3RvLmMKKysrIGIvYm9hcmQvcnNkcHJvdG8vcnNkcHJvdG8uYwpAQCAtMjUzLDcgKzI1Myw3IEBACiAJcHV0cyAoIkJvYXJkOiBSb2hkZSAmIFNjaHdhcnogODI2MCBQcm90b2NvbCBCb2FyZFxuIik7CiAKIAkvKiBpbml0aWFsaXNlIGkyYyAqLwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCXJlYWRfUlM1QzM3Ml90aW1lICgmdGltZWRhdGUpOwogCXByaW50ZiAoIiAgVGltZTogICUwMmQ6JTAyZDolMDJkXG4iLApAQCAtMjg0LDcgKzI4NCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKICNpZmRlZiBJTklUX0xPQ0FMX0JVU19TRFJBTQpAQCAtMzE3LDcgKzMxNyw3IEBACiAJCSAqCiAJCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkKIAkJICogYmVlbiBzZXQgd2hlbiB3ZSBnZXQgaGVyZSAoc2VlIGNwdV9pbml0X2YpLiBUaGUKLQkJICogU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCQkgKiBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCQkgKi8KIAkJbWVtY3RsLT5tZW1jX21wdHByID0gMHgyMDAwOwogCQltZW1jdGwtPm1lbWNfbWFyID0gMHgwMjAwOwpAQCAtMzMwLDcgKzMzMCw3IEBACiAJCW1lbWN0bC0+bWVtY19sc3J0ID0gMHgwYjsKIAkJbWVtY3RsLT5tZW1jX2x1cnQgPSAweDAwOwogCQlyYW1hZGRyID0gKHVjaGFyICopIFBIWVNfU0RSQU1fTE9DQUw7Ci0JCXNkbXIgPSBDRkdfTFNETVIgJiB+KFBTRE1SX09QX01TSyB8IFBTRE1SX1JGRU4gfCBQU0RNUl9QQkkpOworCQlzZG1yID0gQ09ORklHX1NZU19MU0RNUiAmIH4oUFNETVJfT1BfTVNLIHwgUFNETVJfUkZFTiB8IFBTRE1SX1BCSSk7CiAJCW1lbWN0bC0+bWVtY19sc2RtciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwogCQkqcmFtYWRkciA9IDB4ZmY7CiAJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKQEAgLTMzOSwxMyArMzM5LDEzIEBACiAJCX0KIAkJbWVtY3RsLT5tZW1jX2xzZG1yID0gc2RtciB8IFBTRE1SX09QX01SVzsKIAkJKnJhbWFkZHIgPSAweGZmOwotCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCBQU0RNUl9PUF9OT1JNOworCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDT05GSUdfU1lTX0xTRE1SIHwgUFNETVJfT1BfTk9STTsKICNlbmRpZgogCQkvKiBpbml0aWFsaXNlIDYweCBidXMgcmFtICovCiAJCW1lbWN0bC0+bWVtY19wc3J0ID0gMHgwYjsKIAkJbWVtY3RsLT5tZW1jX3B1cnQgPSAweDA4OwogCQlyYW1hZGRyMzIgPSAodWxvbmcgKikgUEhZU19TRFJBTV82MFg7Ci0JCXNkbXIgPSBDRkdfUFNETVIgJiB+KFBTRE1SX09QX01TSyB8IFBTRE1SX1JGRU4gfCBQU0RNUl9QQkkpOworCQlzZG1yID0gQ09ORklHX1NZU19QU0RNUiAmIH4oUFNETVJfT1BfTVNLIHwgUFNETVJfUkZFTiB8IFBTRE1SX1BCSSk7CiAJCW1lbWN0bC0+bWVtY19wc2RtciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwogCQlyYW1hZGRyMzJbMF0gPSAweDAwZmYwMGZmOwogCQlyYW1hZGRyMzJbMV0gPSAweDAwZmYwMGZmOwpkaWZmIC0tZ2l0IGEvYm9hcmQvcnNrNzIwMy9yc2s3MjAzLmMgYi9ib2FyZC9yc2s3MjAzL3JzazcyMDMuYwppbmRleCAyZDc0MzU5Li4yY2JkNDVlIDEwMDY0NAotLS0gYS9ib2FyZC9yc2s3MjAzL3JzazcyMDMuYworKysgYi9ib2FyZC9yc2s3MjAzL3JzazcyMDMuYwpAQCAtMzksOSArMzksOSBAQAogewogCURFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0JZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENGR19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CisJZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwlnZC0+YmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3NhY3NuZy9jbGtpbml0LmMgYi9ib2FyZC9zYWNzbmcvY2xraW5pdC5jCmluZGV4IGVkYjc3NWQuLjRhN2YzNjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhY3NuZy9jbGtpbml0LmMKKysrIGIvYm9hcmQvc2Fjc25nL2Nsa2luaXQuYwpAQCAtMzcsNyArMzcsNyBAQAogCiB2b2lkIERhcV9CUkdfUmVzZXQodWludCBicmcpCiB7Ci0gICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgIHZvbGF0aWxlIHVpbnQgKmJyZ19wdHI7CiAKICAgICAgYnJnX3B0ciA9ICh1aW50ICopJmltbXItPmltX2JyZ2MxOwpAQCAtNTMsNyArNTMsNyBAQAogCiB2b2lkIERhcV9CUkdfRGlzYWJsZSh1aW50IGJyZykKIHsKLSAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICAgdm9sYXRpbGUgdWludCAqYnJnX3B0cjsKIAogICAgICBicmdfcHRyID0gKHVpbnQgKikmaW1tci0+aW1fYnJnYzE7CkBAIC02OCw3ICs2OCw3IEBACiAKIHZvaWQgRGFxX0JSR19FbmFibGUodWludCBicmcpCiB7Ci0gICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgIHZvbGF0aWxlIHVpbnQgKmJyZ19wdHI7CiAKICAgICAgYnJnX3B0ciA9ICh1aW50ICopJmltbXItPmltX2JyZ2MxOwpAQCAtODIsNyArODIsNyBAQAogCiB1aW50IERhcV9CUkdfR2V0X0RpdjE2KHVpbnQgYnJnKQogewotICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgICB1aW50ICpicmdfcHRyOwogCiAgICAgIGJyZ19wdHIgPSAodWludCAqKSZpbW1yLT5pbV9icmdjMTsKQEAgLTEwNCw3ICsxMDQsNyBAQAogCiB2b2lkIERhcV9CUkdfU2V0X0RpdjE2KHVpbnQgYnJnLCB1aW50IGRpdjE2KQogewotICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgICB1aW50ICpicmdfcHRyOwogCiAgICAgIGJyZ19wdHIgPSAodWludCAqKSZpbW1yLT5pbV9icmdjMTsKQEAgLTEyNiw3ICsxMjYsNyBAQAogCiB1aW50IERhcV9CUkdfR2V0X0NvdW50KHVpbnQgYnJnKQogewotICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgICB1aW50ICpicmdfcHRyOwogICAgICB1aW50IGJyZ19jbnQ7CiAKQEAgLTE1Myw3ICsxNTMsNyBAQAogCiB2b2lkIERhcV9CUkdfU2V0X0NvdW50KHVpbnQgYnJnLCB1aW50IGJyZ19jbnQpCiB7Ci0gICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgIHVpbnQgKmJyZ19wdHI7CiAKICAgICAgYnJnX3B0ciA9ICh1aW50ICopJmltbXItPmltX2JyZ2MxOwpAQCAtMTgzLDcgKzE4Myw3IEBACiAKIHVpbnQgRGFxX0JSR19HZXRfRXh0Q2xrKHVpbnQgYnJnKQogewotICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgICB1aW50ICpicmdfcHRyOwogCiAgICAgIGJyZ19wdHIgPSAodWludCAqKSZpbW1yLT5pbV9icmdjMTsKQEAgLTI0Myw3ICsyNDMsNyBAQAogCiB2b2lkIERhcV9CUkdfU2V0X0V4dENsayh1aW50IGJyZywgdWludCBleHRjKQogewotICAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgICB1aW50ICpicmdfcHRyOwogCiAgICAgIGJyZ19wdHIgPSAodWludCAqKSZpbW1yLT5pbV9icmdjMTsKQEAgLTI1OSw3ICsyNTksNyBAQAogCiB1aW50IERhcV9CUkdfUmF0ZSh1aW50IGJyZykKIHsKLSAgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICAgdWludCAqYnJnX3B0cjsKICAgICAgdWludCBicmdfY250OwogICAgICB1aW50IGJyZ19mcmVxID0gMDsKQEAgLTI5Niw3ICsyOTYsNyBAQAogCiB2b2lkIERhcV9Jbml0X0Nsb2NrcyhpbnQgc2FtcGxlX3JhdGUsIGludCBzYW1wbGVfNjR4KQogewotICAgIHZvbGF0aWxlIGlvcG9ydF90ICppb3BhID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDRkdfSU1NUiwgMCAvKiBwb3J0IEEgKi8pOworICAgIHZvbGF0aWxlIGlvcG9ydF90ICppb3BhID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIsIDAgLyogcG9ydCBBICovKTsKICAgICB1aW50IG1jbGtfZGl2aXNvcjsgLyogTUNMSyBkaXZpc29yICovCiAgICAgaW50ICBmbGFnOyAgICAgICAgIC8qIEludGVycnVwdCBzdGF0ZSAqLwogCkBAIC0zNzgsNyArMzc4LDcgQEAKIAogewogI2lmZGVmIFRJR0hURU5fVVBfQlJHX1RJTUlORwotICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICByZWdpc3RlciB1aW50IG1jbGtfYnJnOyAgICAgICAvKiBNQ0xLICBCUkcgdmFsdWUgKi8KICAgICByZWdpc3RlciB1aW50IHNjbGtfYnJnOyAgICAgICAvKiBTQ0xLICBCUkcgdmFsdWUgKi8KICAgICByZWdpc3RlciB1aW50IGxyY2xrX2JyZzsgICAgICAvKiBMUkNMSyBCUkcgdmFsdWUgKi8KQEAgLTY2Myw3ICs2NjMsNyBAQAogCiB7CiAjaWZkZWYgVElHSFRFTl9VUF9CUkdfVElNSU5HCi0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAgICAgcmVnaXN0ZXIgdWludCBtY2xrX2JyZzsgICAgICAgLyogTUNMSyAgQlJHIHZhbHVlICovCiAgICAgcmVnaXN0ZXIgdWludCBzY2xrX2JyZzsgICAgICAgLyogU0NMSyAgQlJHIHZhbHVlICovCkBAIC05MTQsNyArOTE0LDcgQEAKIHZvaWQgRGFxX0Rpc3BsYXlfQ2xvY2tzKHZvaWQpCiAKIHsKLSAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgdWludCBtY2xrX2Rpdmlzb3I7IC8qIERldGVjdGVkIE1DTEsgZGl2aXNvciAqLwogICAgIHVpbnQgc2Nsa19kaXZpc29yOyAvKiBEZXRlY3RlZCBTQ0xLIGRpdmlzb3IgKi8KIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2Fjc25nL2ZsYXNoLmMgYi9ib2FyZC9zYWNzbmcvZmxhc2guYwppbmRleCA4ZmVjZjk1Li44YjMwZjUwIDEwMDY0NAotLS0gYS9ib2FyZC9zYWNzbmcvZmxhc2guYworKysgYi9ib2FyZC9zYWNzbmcvZmxhc2guYwpAQCAtMjgsMTQgKzI4LDE0IEBACiAjdW5kZWYgIERFQlVHCiAKICNpZm5kZWYJQ09ORklHX0VOVl9BRERSCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICNlbmRpZgogI2lmbmRlZiBDT05GSUdfRU5WX1NJWkUKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCiAjZW5kaWYKIAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC01MiwyNCArNTIsMjQgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCX0KIAotCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfc2hvcnQgKilDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X3Nob3J0ICopQ09ORklHX1NZU19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLAogCQkJc2l6ZV9iMCwgc2l6ZV9iMDw8MjApOwogCX0KIAotCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfc2hvcnQgKilDRkdfRkxBU0gxX0JBU0UsICZmbGFzaF9pbmZvWzFdKTsKKwlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X3Nob3J0ICopQ09ORklHX1NZU19GTEFTSDFfQkFTRSwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtODIsMTEgKzgyLDExIEBACiAjZW5kaWYKIAogCWlmIChzaXplX2IxKSB7Ci0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkJICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAKQEAgLTI0Nyw3ICsyNDcsNyBAQAogCX0gZWxzZSB7CiAjaWZkZWYgREVCVUcKIAkJcHJpbnRmKCJVbmtub3duIGZsYXNoIHR5cGUgMHglMDRYXG4iLCB2YWx1ZSk7Ci0JCWluZm8tPnNpemUgPSBDRkdfRkxBU0hfU0laRTsKKwkJaW5mby0+c2l6ZSA9IENPTkZJR19TWVNfRkxBU0hfU0laRTsKICNlbHNlCiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJcmV0dXJuICgwKTsJCQkvKiA9PiBubyBvciB1bmtub3duIGZsYXNoICovCkBAIC0zNzQsNyArMzc0LDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfc2hvcnQqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDAwODApICE9IDB4MDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlhZGRyWzBdID0gMHhGMEYwOwkvKiByZXNldCBiYW5rICovCiAJCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIHN5bmNcbiAiKTsKQEAgLTUwOSw3ICs1MDksNyBAQAogCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJd2hpbGUgKCoodnVfc2hvcnQgKilkZXN0ICE9ICh1c2hvcnQpZGF0YSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9zYWNzbmcvc2Fjc25nLmMgYi9ib2FyZC9zYWNzbmcvc2Fjc25nLmMKaW5kZXggYzAwZjE0ZS4uMjUxMzkzNyAxMDA2NDQKLS0tIGEvYm9hcmQvc2Fjc25nL3NhY3NuZy5jCisrKyBiL2JvYXJkL3NhY3NuZy9zYWNzbmcuYwpAQCAtMTYxLDE2ICsxNjEsMTYgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogICAgIHZvbGF0aWxlIHVjaGFyIGMgPSAwOwotICAgIHZvbGF0aWxlIHVjaGFyICpyYW1hZGRyID0gKHVjaGFyICopKENGR19TRFJBTV9CQVNFICsgMHg4KTsKLSAgICB1aW50ICBwc2RtciA9IENGR19QU0RNUjsKKyAgICB2b2xhdGlsZSB1Y2hhciAqcmFtYWRkciA9ICh1Y2hhciAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDgpOworICAgIHVpbnQgIHBzZG1yID0gQ09ORklHX1NZU19QU0RNUjsKICAgICBpbnQgICBpOwogICAgIHVpbnQgICBwc3J0ID0gMTQ7CQkJCQkvKiBmb3Igbm8gU1BEICovCiAgICAgdWludCAgIGNoaXBzZWxlY3RzID0gMTsJCQkJLyogZm9yIG5vIFNQRCAqLwotICAgIHVpbnQgICBzZHJhbV9zaXplID0gQ0ZHX1NEUkFNMF9TSVpFICogMTAyNCAqIDEwMjQ7CS8qIGZvciBubyBTUEQgKi8KLSAgICB1aW50ICAgb3IgPSBDRkdfT1IyX1BSRUxJTTsJCQkJLyogZm9yIG5vIFNQRCAqLworICAgIHVpbnQgICBzZHJhbV9zaXplID0gQ09ORklHX1NZU19TRFJBTTBfU0laRSAqIDEwMjQgKiAxMDI0OwkvKiBmb3Igbm8gU1BEICovCisgICAgdWludCAgIG9yID0gQ09ORklHX1NZU19PUjJfUFJFTElNOwkJCQkvKiBmb3Igbm8gU1BEICovCiAjaWZkZWYgU0RSQU1fU1BEX0FERFIKICAgICB1aW50ICAgZGF0YV93aWR0aDsKICAgICB1aW50ICAgcm93czsKQEAgLTM4MywxMCArMzgzLDEwIEBACiAgICAgICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKICAgICAgKgogICAgICAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotICAgICAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorICAgICAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KICAgICAgKi8KIAotICAgIG1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKyAgICBtZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogICAgIG1lbWN0bC0+bWVtY19wc3J0ICA9IHBzcnQ7CiAKICAgICBtZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC00MDksNyArNDA5LDcgQEAKICAgICBpZihjaGlwc2VsZWN0cyA+IDEpIHsKIAlyYW1hZGRyICs9IHNkcmFtX3NpemU7CiAKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU0gKyBzZHJhbV9zaXplOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU0gKyBzZHJhbV9zaXplOwogCW1lbWN0bC0+bWVtY19vcjMgPSBvcjsKIAogCW1lbWN0bC0+bWVtY19wc2RtciA9IHBzZG1yIHwgUFNETVJfT1BfUFJFQTsKQEAgLTQ0Niw4ICs0NDYsOCBAQAogICAgIC8qCiAgICAgICogTm90ZTogaW9wIGlzIHVzZWQgYnkgdGhlIEkyQyBtYWNyb3MsIGFuZCBpb3BhIGJ5IHRoZSBBREMvREFDIGluaXRpYWxpemF0aW9uLgogICAgICAqLwotICAgIHZvbGF0aWxlIGlvcG9ydF90ICppb3BhID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDRkdfSU1NUiwgMCAvKiBwb3J0IEEgKi8pOwotICAgIHZvbGF0aWxlIGlvcG9ydF90ICppb3AgID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDRkdfSU1NUiwgSTJDX1BPUlQpOworICAgIHZvbGF0aWxlIGlvcG9ydF90ICppb3BhID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIsIDAgLyogcG9ydCBBICovKTsKKyAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wICA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCBJMkNfUE9SVCk7CiAKICAgICBpbnQgIHJlZzsgICAgICAgICAgLyogSTJDIHJlZ2lzdGVyIHZhbHVlICovCiAgICAgY2hhciAqZXA7ICAgICAgICAgIC8qIEVudmlyb25tZW50IHBvaW50ZXIgKi8KQEAgLTg1NCwxNCArODU0LDE0IEBACiAKIHZvaWQgc3BpX2NzX2FjdGl2YXRlKHN0cnVjdCBzcGlfc2xhdmUgKnNsYXZlKQogewotICAgIHZvbGF0aWxlIGlvcG9ydF90ICppb3BkID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDRkdfSU1NUiwgMyAvKiBwb3J0IEQgKi8pOworICAgIHZvbGF0aWxlIGlvcG9ydF90ICppb3BkID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIsIDMgLyogcG9ydCBEICovKTsKIAogICAgIGlvcGQtPnBkYXQgJj0gfmNzX21hc2tbc2xhdmUtPmNzXTsKIH0KIAogdm9pZCBzcGlfY3NfZGVhY3RpdmF0ZShzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSkKIHsKLSAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wZCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIDMgLyogcG9ydCBEICovKTsKKyAgICB2b2xhdGlsZSBpb3BvcnRfdCAqaW9wZCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCAzIC8qIHBvcnQgRCAqLyk7CiAKICAgICBpb3BkLT5wZGF0IHw9IGNzX21hc2tbc2xhdmUtPmNzXTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3NhbXN1bmcvc21kazY0MDAvc21kazY0MDAuYyBiL2JvYXJkL3NhbXN1bmcvc21kazY0MDAvc21kazY0MDAuYwppbmRleCA3N2ZkMmM4Li5iZDJlNDVhIDEwMDY0NAotLS0gYS9ib2FyZC9zYW1zdW5nL3NtZGs2NDAwL3NtZGs2NDAwLmMKKysrIGIvYm9hcmQvc2Ftc3VuZy9zbWRrNjQwMC9zbWRrNjQwMC5jCkBAIC0xMDcsMTIgKzEwNywxMiBAQAogfQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19DTURfTkFORCkgJiYgZGVmaW5lZChDRkdfTkFORF9MRUdBQ1kpCisjaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpICYmIGRlZmluZWQoQ09ORklHX1NZU19OQU5EX0xFR0FDWSkKICNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgotZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDRkdfTUFYX05BTkRfREVWSUNFXTsKK2V4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdOwogdm9pZCBuYW5kX2luaXQodm9pZCkKIHsKLQluYW5kX3Byb2JlKENGR19OQU5EX0JBU0UpOworCW5hbmRfcHJvYmUoQ09ORklHX1NZU19OQU5EX0JBU0UpOwogCWlmIChuYW5kX2Rldl9kZXNjWzBdLkNoaXBJRCAhPSBOQU5EX0NoaXBJRF9VTktOT1dOKQogCQlwcmludF9zaXplKG5hbmRfZGV2X2Rlc2NbMF0udG90bGVuLCAiXG4iKTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRidXJzdC9jb21tb24vZmxhc2guYyBiL2JvYXJkL3NhbmRidXJzdC9jb21tb24vZmxhc2guYwppbmRleCA3NjJmYjczLi5kZDcxMmUzIDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9mbGFzaC5jCkBAIC00MSw5ICs0MSw5IEBACiAjZW5kaWYgLyogREVCVUcgKi8KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVs4XVtDRkdfTUFYX0ZMQVNIX0JBTktTXSA9IHsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbOF1bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdID0gewogCXsweGZmZjgwMDAwfQkvKiBCb290IEZsYXNoICovCiB9OwogCkBAIC02NSw3ICs2NSw3IEBACiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbF9iID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemVfYltDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwl1bnNpZ25lZCBsb25nIHNpemVfYltDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAJdW5zaWduZWQgc2hvcnQgaW5kZXggPSAwOwogCWludCBpOwogCkBAIC03NCw3ICs3NCw3IEBACiAJREVCVUdGKCJGTEFTSDogSW5kZXg6ICVkXG4iLCBpbmRleCk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAtMTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKQEAgLTI4NCw3ICsyODQsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlsYXN0ICA9IHN0YXJ0OwogCXdoaWxlICgoYWRkclswXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkgIT0gKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtNTAyLDcgKzUwMiw3IEBACiAJCXdoaWxlICgoZGVzdDJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCQkgICAgICAgKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRidXJzdC9jb21tb24vcHBjNDQwZ3hfaTJjLmMgYi9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL3BwYzQ0MGd4X2kyYy5jCmluZGV4IDFlM2RmZmIuLjlhZjZiOGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhbmRidXJzdC9jb21tb24vcHBjNDQwZ3hfaTJjLmMKKysrIGIvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9wcGM0NDBneF9pMmMuYwpAQCAtNDMsOCArNDMsOCBAQAogI2RlZmluZSBJSUNfTk9LX1RPVVQJNgkJLyogVHJhbnNmZXIgdGltZW91dCAqLwogCiAjZGVmaW5lIElJQ19USU1FT1VUIDEJCQkvKiAxIHNlY29uZCAqLwotI2lmIGRlZmluZWQoQ0ZHX0kyQ19OT1BST0JFUykKLXN0YXRpYyB1Y2hhciBpMmNfbm9fcHJvYmVzW10gPSBDRkdfSTJDX05PUFJPQkVTOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfTk9QUk9CRVMpCitzdGF0aWMgdWNoYXIgaTJjX25vX3Byb2Jlc1tdID0gQ09ORklHX1NZU19JMkNfTk9QUk9CRVM7CiAjZW5kaWYKIAogc3RhdGljIHZvaWQgX2kyY19idXMxX3Jlc2V0ICh2b2lkKQpAQCAtMTA1LDcgKzEwNSw3IEBACiAJdW5zaWduZWQgbG9uZyBmcmVxT1BCOwogCWludCB2YWwsIGRpdmlzb3I7CiAKLSNpZmRlZiBDRkdfSTJDX0lOSVRfQk9BUkQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECiAJLyogY2FsbCBib2FyZCBzcGVjaWZpYyBpMmMgYnVzIHJlc2V0IHJvdXRpbmUgYmVmb3JlIGFjY2Vzc2luZyB0aGUgICAqLwogCS8qIGVudmlyb25tZW50LCB3aGljaCBtaWdodCBiZSBpbiBhIGNoaXAgb24gdGhhdCBidXMuIEZvciBkZXRhaWxzICAgKi8KIAkvKiBhYm91dCB0aGlzIHByb2JsZW0gc2VlIGRvYy9JMkNfRWRnZV9Db25kaXRpb25zLiAgICAgICAgICAgICAgICAgICovCkBAIC0zODQsNyArMzg0LDcgQEAKIAl9CiAKIAotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwogCS8qCiAJICogRUVQUk9NIGNoaXBzIHRoYXQgaW1wbGVtZW50ICJhZGRyZXNzIG92ZXJmbG93IiBhcmUgb25lcwogCSAqIGxpa2UgQ2F0YWx5c3QgMjRXQzA0LzA4LzE2IHdoaWNoIGhhcyA5LzEwLzExIGJpdHMgb2YKQEAgLTM5Nyw3ICszOTcsNyBAQAogCSAqIGhpZGRlbiBpbiB0aGUgY2hpcCBhZGRyZXNzLgogCSAqLwogCWlmKCBhbGVuID4gMCApCi0JCWNoaXAgfD0gKChhZGRyID4+IChhbGVuICogOCkpICYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyk7CisJCWNoaXAgfD0gKChhZGRyID4+IChhbGVuICogOCkpICYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOwogI2VuZGlmCiAJaWYoIChyZXQgPSBpMmNfdHJhbnNmZXIxKCAxLCBjaGlwPDwxLCAmeGFkZHJbNC1hbGVuXSwgYWxlbiwgYnVmZmVyLCBsZW4gKSkgIT0gMCkgewogCQlwcmludGYoICJJMmMgcmVhZDogZmFpbGVkICVkXG4iLCByZXQpOwpAQCAtNDIyLDcgKzQyMiw3IEBACiAJCXhhZGRyWzNdID0gYWRkciAmIDB4RkY7CiAJfQogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzCiAJICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZgpAQCAtNDM1LDcgKzQzNSw3IEBACiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCiAJaWYoIGFsZW4gPiAwICkKLQkJY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwkJY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyk7CiAjZW5kaWYKIAogCXJldHVybiAoaTJjX3RyYW5zZmVyMSggMCwgY2hpcDw8MSwgJnhhZGRyWzQtYWxlbl0sIGFsZW4sIGJ1ZmZlciwgbGVuICkgIT0gMCk7CkBAIC00NjUsMTMgKzQ2NSwxMyBAQAogaW50IGRvX2kyYzFfcHJvYmUoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJaW50IGo7Ci0jaWYgZGVmaW5lZChDRkdfSTJDX05PUFJPQkVTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfTk9QUk9CRVMpCiAJaW50IGssIHNraXA7CiAjZW5kaWYKIAogCXB1dHMgKCJWYWxpZCBjaGlwIGFkZHJlc3NlczoiKTsKIAlmb3IoaiA9IDA7IGogPCAxMjg7IGorKykgewotI2lmIGRlZmluZWQoQ0ZHX0kyQ19OT1BST0JFUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX05PUFJPQkVTKQogCQlza2lwID0gMDsKIAkJZm9yIChrID0gMDsgayA8IHNpemVvZihpMmNfbm9fcHJvYmVzKTsgaysrKXsKIAkJCWlmIChqID09IGkyY19ub19wcm9iZXNba10pewpAQCAtNDg4LDcgKzQ4OCw3IEBACiAJfQogCXB1dGMgKCdcbicpOwogCi0jaWYgZGVmaW5lZChDRkdfSTJDX05PUFJPQkVTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfTk9QUk9CRVMpCiAJcHV0cyAoIkV4Y2x1ZGVkIGNoaXAgYWRkcmVzc2VzOiIpOwogCWZvciggayA9IDA7IGsgPCBzaXplb2YoaTJjX25vX3Byb2Jlcyk7IGsrKyApCiAJCXByaW50ZigiICUwMlgiLCBpMmNfbm9fcHJvYmVzW2tdICk7CmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL3BwYzQ0MGd4X2kyYy5oIGIvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9wcGM0NDBneF9pMmMuaAppbmRleCAxMDAwMGY1Li4zMjhhYmQ2IDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL3BwYzQ0MGd4X2kyYy5oCisrKyBiL2JvYXJkL3NhbmRidXJzdC9jb21tb24vcHBjNDQwZ3hfaTJjLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2lmZGVmIENPTkZJR19IQVJEX0kyQwogCi0jZGVmaW5lIEkyQ19CVVMxX0JBU0VfQUREUiAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA1MDApCisjZGVmaW5lIEkyQ19CVVMxX0JBU0VfQUREUiAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNTAwKQogI2RlZmluZQkgICBJMkNfUkVHSVNURVJTX0JVUzFfQkFTRV9BRERSRVNTIEkyQ19CVVMxX0JBU0VfQUREUgogI2RlZmluZSAgICBJSUNfTURCVUYxCShJMkNfUkVHSVNURVJTX0JVUzFfQkFTRV9BRERSRVNTK0lJQ01EQlVGKQogI2RlZmluZSAgICBJSUNfU0RCVUYxCShJMkNfUkVHSVNURVJTX0JVUzFfQkFTRV9BRERSRVNTK0lJQ1NEQlVGKQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9zYl9jb21tb24uYyBiL2JvYXJkL3NhbmRidXJzdC9jb21tb24vc2JfY29tbW9uLmMKaW5kZXggNTFiMWM3NS4uZjZlYTE2ZiAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZGJ1cnN0L2NvbW1vbi9zYl9jb21tb24uYworKysgYi9ib2FyZC9zYW5kYnVyc3QvY29tbW9uL3NiX2NvbW1vbi5jCkBAIC00Myw3ICs0Myw3IEBACiB7CiAJcHBjNDQwX2dwaW9fcmVnc190ICpncGlvX3JlZ3M7CiAKLQlncGlvX3JlZ3MgPSAocHBjNDQwX2dwaW9fcmVnc190ICopQ0ZHX0dQSU9fQkFTRTsKKwlncGlvX3JlZ3MgPSAocHBjNDQwX2dwaW9fcmVnc190ICopQ09ORklHX1NZU19HUElPX0JBU0U7CiAKIAlpZiAoZ3Bpb19yZWdzLT5pbiAmIFNCQ09NTU9OX0dQSU9fUFJJX04pIHsKIAkJcmV0dXJuIDA7CkBAIC02Myw3ICs2Myw3IEBACiB7CiAJcHBjNDQwX2dwaW9fcmVnc190ICpncGlvX3JlZ3M7CiAKLQlncGlvX3JlZ3MgPSAocHBjNDQwX2dwaW9fcmVnc190ICopQ0ZHX0dQSU9fQkFTRTsKKwlncGlvX3JlZ3MgPSAocHBjNDQwX2dwaW9fcmVnc190ICopQ09ORklHX1NZU19HUElPX0JBU0U7CiAKIAlpZiAoZ3Bpb19yZWdzLT5pbiAmIFNCQ09NTU9OX0dQSU9fU0VDX1BSRVMpCiAJCXJldHVybiAwOwpAQCAtODQsNyArODQsNyBAQAogCiAJLyogR2V0IHRoZSBib2FyZCBzZXJpYWwgbnVtYmVyIGZyb20gZWVwcm9tICovCiAJLyogSW5pdGlhbGl6ZSBJMkMgKi8KLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAkvKiBSZWFkIDI1NiBieXRlcyBpbiBFRVBST00gKi8KIAlpMmNfcmVhZCAoMHg1MCwgMCwgMSwgYnVmZiwgMHgxMDApOwpAQCAtMjE4LDExICsyMTgsMTEgQEAKICAqCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJUZXN0aW5nIFNEUkFNOiAiKTsKQEAgLTM0MCw3ICszNDAsNyBAQAogICoJbWF5IG5vdCBiZSBzdWZmaWNpZW50IGZvciBhIGdpdmVuIGJvYXJkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogdm9pZCBwY2lfdGFyZ2V0X2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICogaG9zZSApCiB7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTM1NSw3ICszNTUsNyBAQAogCSAqIE1hcCBhbGwgb2YgU0RSQU0gdG8gUENJIGFkZHJlc3MgMHgwMDAwXzAwMDAuIE5vdGUgdGhhdCB0aGUgNDQwIHN0cmFwcGluZwogCSAqIG9wdGlvbnMgdG8gbm90IHN1cHBvcnQgc2l6ZXMgc3VjaCBhcyAxMjgvMjU2IE1CLgogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDMyciggUENJWDBfUElNMExBTCwgQ0ZHX1NEUkFNX0JBU0UgKTsKKwlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENPTkZJR19TWVNfU0RSQU1fQkFTRSApOwogCW91dDMyciggUENJWDBfUElNMExBSCwgMCApOwogCW91dDMyciggUENJWDBfUElNMFNBLCB+KGdkLT5yYW1fc2l6ZSAtIDEpIHwgMSApOwogCkBAIC0zNjQsMTIgKzM2NCwxMiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogUHJvZ3JhbSB0aGUgYm9hcmQncyBzdWJzeXN0ZW0gaWQvdmVuZG9yIGlkCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0Jb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKLQlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU1ZJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7CisJb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgKTsKIAogCW91dDE2ciggUENJWDBfQ01ELCBpbjE2cihQQ0lYMF9DTUQpIHwgUENJX0NPTU1BTkRfTUVNT1JZICk7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENGR19QQ0lfVEFSR0VUX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKSAqLwogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC00MDUsNyArNDA1LDcgQEAKIAlpZiAoMCA9PSBtYWNhZGRyX2lkeCkgewogCiAJCS8qIEluaXRpYWxpemUgSTJDICovCi0JCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwkJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAkJLyogUmVhZCAyNTYgYnl0ZXMgaW4gRUVQUk9NICovCiAJCWkyY19yZWFkICgweDUwLCAwLCAxLCBidWZmLCAweDEwMCk7CmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kYnVyc3Qva2FyZWYvY29uZmlnLm1rIGIvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2NvbmZpZy5tawppbmRleCA2NWMxZTQ4Li5mMmY5NGM1IDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kYnVyc3Qva2FyZWYvY29uZmlnLm1rCisrKyBiL2JvYXJkL3NhbmRidXJzdC9rYXJlZi9jb25maWcubWsKQEAgLTM5LDUgKzM5LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9zYW5kYnVyc3Qva2FyZWYvaW5pdC5TIGIvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2luaXQuUwppbmRleCBiMWQ0N2E0Li4zMTk4ZGZkIDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kYnVyc3Qva2FyZWYvaW5pdC5TCisrKyBiL2JvYXJkL3NhbmRidXJzdC9rYXJlZi9pbml0LlMKQEAgLTkwLDEyICs5MCwxMiBAQAogdGxidGFiOgogCXRsYnRhYl9zdGFydAogCXRsYmVudHJ5KCAweGYwMDAwMDAwLCBTWl8yNTZNLCAweGYwMDAwMDAwLCAxLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCi0JdGxiZW50cnkoIENGR19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCi0JdGxiZW50cnkoIENGR19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSsweDEwMDAwMDAwLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSsweDIwMDAwMDAwLCBTWl8yNTZNLCAweDIwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSsweDMwMDAwMDAwLCBTWl8yNTZNLCAweDMwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDIsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQotCXRsYmVudHJ5KCBDRkdfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19JU1JBTV9CQVNFLCBTWl8yNTZLLCAweDgwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kpCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFKzB4MTAwMDAwMDAsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSsweDIwMDAwMDAwLCBTWl8yNTZNLCAweDIwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UrMHgzMDAwMDAwMCwgU1pfMjU2TSwgMHgzMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUENJX01FTUJBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDMsIEFDX1J8QUNfV3xTQV9HfFNBX0kgKQogCXRsYnRhYl9lbmQKZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRidXJzdC9rYXJlZi9rYXJlZi5jIGIvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2thcmVmLmMKaW5kZXggNzJjZTk3Ni4uNzkwOWQzNCAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2thcmVmLmMKKysrIGIvYm9hcmQvc2FuZGJ1cnN0L2thcmVmL2thcmVmLmMKQEAgLTY1LDcgKzY1LDcgQEAKIAltdHNkcihzZHJfcGZjMCwgMHgwMDEwM0UwMCk7CiAKIAkvKiBTZXR1cCBhY2Nlc3MgZm9yIExFRHMsIGFuZCBzeXN0ZW0gdG9wb2xvZ3kgaW5mbyAqLwotCWdwaW9fcmVncyA9IChwcGM0NDBfZ3Bpb19yZWdzX3QgKilDRkdfR1BJT19CQVNFOworCWdwaW9fcmVncyA9IChwcGM0NDBfZ3Bpb19yZWdzX3QgKilDT05GSUdfU1lTX0dQSU9fQkFTRTsKIAlncGlvX3JlZ3MtPm9wZW5fZHJhaW4gPSBTQkNPTU1PTl9HUElPX1NZU19MRURTOwogCWdwaW9fcmVncy0+dHJpX3N0YXRlICA9IFNCQ09NTU9OX0dQSU9fREJHTEVEUzsKIApAQCAtOTMsNyArOTMsNyBAQAogCSAgICAgIEVCQ19CWEFQX1JFX0RJU0FCTEVEICB8IEVCQ19CWEFQX0JFTV9XUklURU9OTFkgfAogCSAgICAgIEVCQ19CWEFQX1BFTl9ESVNBQkxFRCk7CiAKLQltdGViYyhwYjBjciwgRUJDX0JYQ1JfQkFTX0VOQ09ERShDRkdfRkxBU0hfQkFTRSkgfAorCW10ZWJjKHBiMGNyLCBFQkNfQlhDUl9CQVNfRU5DT0RFKENPTkZJR19TWVNfRkxBU0hfQkFTRSkgfAogCSAgICAgIEVCQ19CWENSX0JTXzFNQiB8IEVCQ19CWENSX0JVX1JXIHwgRUJDX0JYQ1JfQldfOEJJVCk7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgIHwgOEtCIE5WUkFNL1JUQy4gSW5pdGlhbGl6ZSBiYW5rIDEgd2l0aCBkZWZhdWx0IHZhbHVlcy4KQEAgLTI1OSw4ICsyNTksOCBAQAogCUtBUkVGX0ZQR0FfUkVHU19TVCAqa2FyZWZfcHM7CiAJT0ZFTV9GUEdBX1JFR1NfU1QgKm9mZW1fcHM7CiAKLQlrYXJlZl9wcyA9IChLQVJFRl9GUEdBX1JFR1NfU1QgKilDRkdfS0FSRUZfRlBHQV9CQVNFOwotCW9mZW1fcHMgPSAoT0ZFTV9GUEdBX1JFR1NfU1QgKilDRkdfT0ZFTV9GUEdBX0JBU0U7CisJa2FyZWZfcHMgPSAoS0FSRUZfRlBHQV9SRUdTX1NUICopQ09ORklHX1NZU19LQVJFRl9GUEdBX0JBU0U7CisJb2ZlbV9wcyA9IChPRkVNX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfT0ZFTV9GUEdBX0JBU0U7CiAKIAlzY2FuX2lkID0gKHVuc2lnbmVkIGNoYXIpKChrYXJlZl9wcy0+cmV2aXNpb25fdWwgJgogCQkJCSAgIFNBTkRfSEFMX0tBX1NDX1NDQU5fUkVWSVNJT05fSURFTlRJRklDQVRJT05fTUFTSykKQEAgLTMxOSw3ICszMTksNyBAQAogCiAJLyogRml4IHRoZSBhY2sgaW4gdGhlIGJtZSAzMiAqLwogCXVkZWxheSg1MDAwKTsKLQlvdXQzMihDRkdfQk1FMzJfQkFTRSArIDB4MDAwMDAwMEMsIDB4MDAwMDAwMDEpOworCW91dDMyKENPTkZJR19TWVNfQk1FMzJfQkFTRSArIDB4MDAwMDAwMEMsIDB4MDAwMDAwMDEpOwogCWFzbSgiZWllaW8iKTsKIAogCkBAIC0zMzUsNyArMzM1LDcgQEAKIHsKIAkvKiBUdXJuIG9uIGkyYyBidXMgMSAqLwogCXB1dHMgKCJJMkMxOiAgIik7Ci0JaTJjMV9pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmMxX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJcHV0cyAoInJlYWR5XG4iKTsKIAogCS8qIFR1cm4gb24gZmFucyAzICYgNCAqLwpAQCAtMzk3LDggKzM5Nyw4IEBACiAJfQogCiAJaWYoIGdldGVudigiZmFrZWxlZCIpKSB7Ci0JCWthcmVmX3BzID0gKEtBUkVGX0ZQR0FfUkVHU19TVCAqKUNGR19LQVJFRl9GUEdBX0JBU0U7Ci0JCW9mZW1fcHMgPSAoT0ZFTV9GUEdBX1JFR1NfU1QgKilDRkdfT0ZFTV9GUEdBX0JBU0U7CisJCWthcmVmX3BzID0gKEtBUkVGX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfS0FSRUZfRlBHQV9CQVNFOworCQlvZmVtX3BzID0gKE9GRU1fRlBHQV9SRUdTX1NUICopQ09ORklHX1NZU19PRkVNX0ZQR0FfQkFTRTsKIAkJb2ZlbV9wcy0+Y29udHJvbF91bCAmPSB+U0FORF9IQUxfS0FfU0NfU0NBTl9DTlRMX0ZBVUxUX0xFRF9NQVNLOwogCQlrYXJlZl9wcy0+Y29udHJvbF91bCAmPSB+U0FORF9IQUxfS0FfT0ZfT0ZFTV9DTlRMX0ZBVUxUX0xFRF9NQVNLOwogCQlzZXRlbnYoImJvb3RkZWxheSIsICItMSIpOwpAQCAtNDE3LDcgKzQxNyw3IEBACiB7CiAJS0FSRUZfRlBHQV9SRUdTX1NUICprYXJlZl9wczsKIAkvKiBUT0RPOiBpZGUgcmVzZXQgKi8KLQlrYXJlZl9wcyA9IChLQVJFRl9GUEdBX1JFR1NfU1QgKilDRkdfS0FSRUZfRlBHQV9CQVNFOworCWthcmVmX3BzID0gKEtBUkVGX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfS0FSRUZfRlBHQV9CQVNFOwogCiAJaWYgKG9uKSB7CiAJCWthcmVmX3BzLT5yZXNldF91bCAmPSB+U0FORF9IQUxfS0FfU0NfU0NBTl9SRVNFVF9DRl9SRVNFVF9OX01BU0s7CkBAIC00NDAsNyArNDQwLDcgQEAKIAkvKiBFbnN1cmUgd2UgaGF2ZSBwb3dlciBhbGwgYXJvdW5kICovCiAJdWRlbGF5KDUwMCk7CiAKLQlrYXJlZl9wcyA9IChLQVJFRl9GUEdBX1JFR1NfU1QgKilDRkdfS0FSRUZfRlBHQV9CQVNFOworCWthcmVmX3BzID0gKEtBUkVGX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfS0FSRUZfRlBHQV9CQVNFOwogCXRtcCA9CiAJCVNBTkRfSEFMX0tBX1NDX1NDQU5fUkVTRVRfQ0ZfUkVTRVRfTl9NQVNLIHwKIAkJU0FORF9IQUxfS0FfU0NfU0NBTl9SRVNFVF9CTUVfUkVTRVRfTl9NQVNLIHwKQEAgLTQ3MCw3ICs0NzAsNyBAQAogCQkJU0FORF9IQUxfS0FfT0ZfT0ZFTV9SRVNFVF9MT0NIMF9SRVNFVF9OX01BU0sgfAogCQkJU0FORF9IQUxfS0FfT0ZfT0ZFTV9SRVNFVF9NQUMwX1JFU0VUX05fTUFTSzsKIAotCQlvZmVtX3BzID0gKE9GRU1fRlBHQV9SRUdTX1NUICopQ0ZHX09GRU1fRlBHQV9CQVNFOworCQlvZmVtX3BzID0gKE9GRU1fRlBHQV9SRUdTX1NUICopQ09ORklHX1NZU19PRkVNX0ZQR0FfQkFTRTsKIAkJb2ZlbV9wcy0+cmVzZXRfdWwgPSB0bXA7CiAKIAkJb2ZlbV9wcy0+Y29udHJvbF91bCB8PSAxIDwgU0FORF9IQUxfS0FfT0ZfT0ZFTV9DTlRMX0ZBVUxUX0xFRF9TSElGVDsKZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRidXJzdC9tZXRyb2JveC9jb25maWcubWsgYi9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvY29uZmlnLm1rCmluZGV4IDkxYWVlMmYuLjU2NWU4MjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhbmRidXJzdC9tZXRyb2JveC9jb25maWcubWsKKysrIGIvYm9hcmQvc2FuZGJ1cnN0L21ldHJvYm94L2NvbmZpZy5tawpAQCAtMzQsNSArMzQsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRidXJzdC9tZXRyb2JveC9pbml0LlMgYi9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvaW5pdC5TCmluZGV4IGUzOThmMDAuLmNjZGVjNDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhbmRidXJzdC9tZXRyb2JveC9pbml0LlMKKysrIGIvYm9hcmQvc2FuZGJ1cnN0L21ldHJvYm94L2luaXQuUwpAQCAtODgsMTIgKzg4LDEyIEBACiB0bGJ0YWI6CiAJdGxidGFiX3N0YXJ0CiAJdGxiZW50cnkoIDB4ZjAwMDAwMDAsIFNaXzI1Nk0sIDB4ZjAwMDAwMDAsIDEsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKLQl0bGJlbnRyeSggQ0ZHX1BFUklQSEVSQUxfQkFTRSwgU1pfMjU2TSwgMHg0MDAwMDAwMCwgMSwgQUNfUnxBQ19XfFNBX0d8U0FfSSkKLQl0bGJlbnRyeSggQ0ZHX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFKzB4MTAwMDAwMDAsIFNaXzI1Nk0sIDB4MTAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFKzB4MjAwMDAwMDAsIFNaXzI1Nk0sIDB4MjAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19TRFJBTV9CQVNFKzB4MzAwMDAwMDAsIFNaXzI1Nk0sIDB4MzAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMiwgQUNfUnxBQ19XfFNBX0d8U0FfSSApCi0JdGxiZW50cnkoIENGR19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX0lTUkFNX0JBU0UsIFNaXzI1NkssIDB4ODAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UrMHgxMDAwMDAwMCwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19TRFJBTV9CQVNFKzB4MjAwMDAwMDAsIFNaXzI1Nk0sIDB4MjAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSsweDMwMDAwMDAwLCBTWl8yNTZNLCAweDMwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAJdGxidGFiX2VuZApkaWZmIC0tZ2l0IGEvYm9hcmQvc2FuZGJ1cnN0L21ldHJvYm94L21ldHJvYm94LmMgYi9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvbWV0cm9ib3guYwppbmRleCBjMzg4NTBkLi5jM2M0NDU5IDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvbWV0cm9ib3guYworKysgYi9ib2FyZC9zYW5kYnVyc3QvbWV0cm9ib3gvbWV0cm9ib3guYwpAQCAtNTUsNyArNTUsNyBAQAogCW10c2RyKHNkcl9wZmMwLCAweDAwMTAzRTAwKTsKIAogCS8qIFNldHVwIGFjY2VzcyBmb3IgTEVEcywgYW5kIHN5c3RlbSB0b3BvbG9neSBpbmZvICovCi0JZ3Bpb19yZWdzID0gKHBwYzQ0MF9ncGlvX3JlZ3NfdCAqKUNGR19HUElPX0JBU0U7CisJZ3Bpb19yZWdzID0gKHBwYzQ0MF9ncGlvX3JlZ3NfdCAqKUNPTkZJR19TWVNfR1BJT19CQVNFOwogCWdwaW9fcmVncy0+b3Blbl9kcmFpbiA9IFNCQ09NTU9OX0dQSU9fU1lTX0xFRFM7CiAJZ3Bpb19yZWdzLT50cmlfc3RhdGUgID0gU0JDT01NT05fR1BJT19EQkdMRURTOwogCkBAIC04Myw3ICs4Myw3IEBACiAJICAgICAgRUJDX0JYQVBfUkVfRElTQUJMRUQgIHwgRUJDX0JYQVBfQkVNX1dSSVRFT05MWSB8CiAJICAgICAgRUJDX0JYQVBfUEVOX0RJU0FCTEVEKTsKIAotCW10ZWJjKHBiMGNyLCBFQkNfQlhDUl9CQVNfRU5DT0RFKENGR19GTEFTSF9CQVNFKSB8CisJbXRlYmMocGIwY3IsIEVCQ19CWENSX0JBU19FTkNPREUoQ09ORklHX1NZU19GTEFTSF9CQVNFKSB8CiAJICAgICAgRUJDX0JYQ1JfQlNfMU1CIHwgRUJDX0JYQ1JfQlVfUlcgfCBFQkNfQlhDUl9CV184QklUKTsKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAgfCA4S0IgTlZSQU0vUlRDLiBJbml0aWFsaXplIGJhbmsgMSB3aXRoIGRlZmF1bHQgdmFsdWVzLgpAQCAtMjQ2LDcgKzI0Niw3IEBACiAJdW5zaWduZWQgY2hhciBvcHRvX3Jldiwgb3B0b19pZDsKIAlPUFRPX0ZQR0FfUkVHU19TVCAqb3B0b19wczsKIAotCW9wdG9fcHMgPSAoT1BUT19GUEdBX1JFR1NfU1QgKilDRkdfRlBHQV9CQVNFOworCW9wdG9fcHMgPSAoT1BUT19GUEdBX1JFR1NfU1QgKilDT05GSUdfU1lTX0ZQR0FfQkFTRTsKIAogCW9wdG9fcmV2ID0gKHVuc2lnbmVkIGNoYXIpKChvcHRvX3BzLT5yZXZpc2lvbl91bCAmCiAJCQkJICAgIFNBTkRfSEFMX1hDX1hDVlJfQ05UTF9SRVZJU0lPTl9SRVZJU0lPTl9NQVNLKQpAQCAtMjg2LDcgKzI4Niw3IEBACiAKIAkvKiBGaXggdGhlIGFjayBpbiB0aGUgYm1lIDMyICovCiAJdWRlbGF5KDUwMDApOwotCW91dDMyKENGR19CTUUzMl9CQVNFICsgMHgwMDAwMDAwQywgMHgwMDAwMDAwMSk7CisJb3V0MzIoQ09ORklHX1NZU19CTUUzMl9CQVNFICsgMHgwMDAwMDAwQywgMHgwMDAwMDAwMSk7CiAJYXNtKCJlaWVpbyIpOwogCiAKQEAgLTMwMiw3ICszMDIsNyBAQAogewogCS8qIFR1cm4gb24gaTJjIGJ1cyAxICovCiAJcHV0cyAoIkkyQzE6ICAiKTsKLQlpMmMxX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyYzFfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAlwdXRzICgicmVhZHlcbiIpOwogCiAJLyogVHVybiBvbiBmYW5zICovCkBAIC0zMjMsNyArMzIzLDcgQEAKIAl1bnNpZ25lZCBjaGFyIG9wdG9fcmV2OwogCU9QVE9fRlBHQV9SRUdTX1NUICpvcHRvX3BzOwogCi0Jb3B0b19wcyA9IChPUFRPX0ZQR0FfUkVHU19TVCAqKUNGR19GUEdBX0JBU0U7CisJb3B0b19wcyA9IChPUFRPX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfRlBHQV9CQVNFOwogCiAJaWYoTlVMTCAhPSBnZXRlbnYoInNlY29uZHNlcmlhbCIpKSB7CiAJICAgIHB1dHMoInNlY29uZHNlcmlhbCBpcyBzZXQsIHN3aXRjaGluZyB0byBzZWNvbmQgc2VyaWFsIHBvcnRcbiIpOwpAQCAtMzg3LDcgKzM4Nyw3IEBACiB2b2lkIGlkZV9zZXRfcmVzZXQoaW50IG9uKQogewogCU9QVE9fRlBHQV9SRUdTX1NUICpvcHRvX3BzOwotCW9wdG9fcHMgPSAoT1BUT19GUEdBX1JFR1NfU1QgKilDRkdfRlBHQV9CQVNFOworCW9wdG9fcHMgPSAoT1BUT19GUEdBX1JFR1NfU1QgKilDT05GSUdfU1lTX0ZQR0FfQkFTRTsKIAogCWlmIChvbikgewkJLyogYXNzZXJ0IFJFU0VUICovCiAJICAgIG9wdG9fcHMtPnJlc2V0X3VsICY9IH5TQU5EX0hBTF9YQ19YQ1ZSX0NOVExfUkVTRVRfQ0ZfUkVTRVRfTl9NQVNLOwpAQCAtNDEyLDcgKzQxMiw3IEBACiAJLyoKIAkgKiBUYWtlIGFwcHJvcHJpYXRlIGh3IGJpdHMgb3V0IG9mIHJlc2V0CiAJICovCi0Jb3B0b19wcyA9IChPUFRPX0ZQR0FfUkVHU19TVCAqKUNGR19GUEdBX0JBU0U7CisJb3B0b19wcyA9IChPUFRPX0ZQR0FfUkVHU19TVCAqKUNPTkZJR19TWVNfRlBHQV9CQVNFOwogCiAJdG1wID0KIAkgICAgU0FORF9IQUxfWENfWENWUl9DTlRMX1JFU0VUX01BQzFfUkVTRVRfTl9NQVNLIHwKZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRwb2ludC9lYXJseV9pbml0LlMgYi9ib2FyZC9zYW5kcG9pbnQvZWFybHlfaW5pdC5TCmluZGV4IDA3ZGFmYjcuLjUzMWRjZGYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NhbmRwb2ludC9lYXJseV9pbml0LlMKKysrIGIvYm9hcmQvc2FuZHBvaW50L2Vhcmx5X2luaXQuUwpAQCAtMzIsNjggKzMyLDY4IEBACiAKICNpZiBkZWZpbmVkKFVTRV9ESU5LMzIpCiAgIC8qIFdlIGFyZSBydW5uaW5nIGZyb20gUkFNLCBzbyBkbyBub3QgY2xlYXIgdGhlIE1DQ1IxX01FTUdPIGJpdCEgKi8KLSAgI2RlZmluZSBNQ0NSMVZBTCAoKENGR19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8IChDRkdfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkgfCBNQ0NSMV9NRU1HTykKKyAgI2RlZmluZSBNQ0NSMVZBTCAoKENPTkZJR19TWVNfUk9NTkFMIDw8IE1DQ1IxX1JPTU5BTF9TSElGVCkgfCAoQ09ORklHX1NZU19ST01GQUwgPDwgTUNDUjFfUk9NRkFMX1NISUZUKSB8IE1DQ1IxX01FTUdPKQogI2Vsc2UKLSAgI2RlZmluZSBNQ0NSMVZBTCAoQ0ZHX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwgKENGR19ST01GQUwgPDwgTUNDUjFfUk9NRkFMX1NISUZUKQorICAjZGVmaW5lIE1DQ1IxVkFMIChDT05GSUdfU1lTX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwgKENPTkZJR19TWVNfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkKICNlbmRpZgogCiAJLnRleHQKIAogCS8qIFZhbHVlcyB0byBwcm9ncmFtIGludG8gbWVtb3J5IGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCiB0Ymw6CS5sb25nCU1DQ1IxLCBNQ0NSMVZBTAotCS5sb25nCU1DQ1IyLCBDRkdfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVAorCS5sb25nCU1DQ1IyLCBDT05GSUdfU1lTX1JFRklOVCA8PCBNQ0NSMl9SRUZJTlRfU0hJRlQKIAkubG9uZwlNQ0NSMwotCS5sb25nCSgoKENGR19CU1RPUFJFICYgMHgwMDAwMDBmMCkgPj4gNCkgPDwgTUNDUjNfQlNUT1BSRTJUTzVfU0hJRlQpIHwgXAotCQkoQ0ZHX1JFRlJFQyA8PCBNQ0NSM19SRUZSRUNfU0hJRlQpIHwgXAotCQkoQ0ZHX1JETEFUICA8PCBNQ0NSM19SRExBVF9TSElGVCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JTVE9QUkUgJiAweDAwMDAwMGYwKSA+PiA0KSA8PCBNQ0NSM19CU1RPUFJFMlRPNV9TSElGVCkgfCBcCisJCShDT05GSUdfU1lTX1JFRlJFQyA8PCBNQ0NSM19SRUZSRUNfU0hJRlQpIHwgXAorCQkoQ09ORklHX1NZU19SRExBVCAgPDwgTUNDUjNfUkRMQVRfU0hJRlQpCiAJLmxvbmcJTUNDUjQKLQkubG9uZwkoQ0ZHX1BSRVRPQUNUIDw8IE1DQ1I0X1BSRVRPQUNUX1NISUZUKSB8IChDRkdfQUNUVE9QUkUgPDwgTUNDUjRfQUNUVE9QUkVfU0hJRlQpIHwgXAotCQkoQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA8PCAyMCkgfCBcCi0JCSgoKENGR19CU1RPUFJFICYgMHgwMDAwMDMwMCkgPj4gOCkgPDwgTUNDUjRfQlNUT1BSRTBUTzFfU0hJRlQgKSB8IFwKLQkJKChDRkdfU0RNT0RFX0NBU19MQVQgPDwgNCkgfCAoQ0ZHX1NETU9ERV9XUkFQIDw8IDMpIHwgXAotCQkoQ0ZHX1NETU9ERV9CVVJTVExFTikgPDwgTUNDUjRfU0RNT0RFX1NISUZUKSB8IFwKLQkJKENGR19BQ1RUT1JXIDw8IE1DQ1I0X0FDVFRPUldfU0hJRlQpIHwgXAotCQkoKENGR19CU1RPUFJFICYgMHgwMDAwMDAwZikgPDwgTUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKQorCS5sb25nCShDT05GSUdfU1lTX1BSRVRPQUNUIDw8IE1DQ1I0X1BSRVRPQUNUX1NISUZUKSB8IChDT05GSUdfU1lTX0FDVFRPUFJFIDw8IE1DQ1I0X0FDVFRPUFJFX1NISUZUKSB8IFwKKwkJKENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDw8IDIwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAwMDMwMCkgPj4gOCkgPDwgTUNDUjRfQlNUT1BSRTBUTzFfU0hJRlQgKSB8IFwKKwkJKChDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUIDw8IDQpIHwgKENPTkZJR19TWVNfU0RNT0RFX1dSQVAgPDwgMykgfCBcCisJCShDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTikgPDwgTUNDUjRfU0RNT0RFX1NISUZUKSB8IFwKKwkJKENPTkZJR19TWVNfQUNUVE9SVyA8PCBNQ0NSNF9BQ1RUT1JXX1NISUZUKSB8IFwKKwkJKChDT05GSUdfU1lTX0JTVE9QUkUgJiAweDAwMDAwMDBmKSA8PCBNQ0NSNF9CU1RPUFJFNlRPOV9TSElGVCApCiAJLmxvbmcJTVNBUjEKLQkubG9uZwkoKChDRkdfQkFOSzBfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LMV9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTksyX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzNfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTkswX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksxX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksyX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTkszX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJRU1TQVIxCi0JLmxvbmcJKCgoQ0ZHX0JBTkswX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCi0JCSgoKENGR19CQU5LMV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzJfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTkszX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKKwkubG9uZwkoKChDT05GSUdfU1lTX0JBTkswX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzFfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTkszX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlNU0FSMgotCS5sb25nCSgoKENGR19CQU5LNF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTks1X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDgpIHwgXAotCQkoKChDRkdfQkFOSzZfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCi0JCSgoKENGR19CQU5LN19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzRfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgMCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzVfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAgOCkgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzZfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzdfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkKIAkubG9uZwlFTVNBUjIKLQkubG9uZwkoKChDRkdfQkFOSzRfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTks1X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LNl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwgXAotCQkoKChDRkdfQkFOSzdfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzRfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDgpIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks2X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzdfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCU1FQVIxCi0JLmxvbmcJKCgoQ0ZHX0JBTkswX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTksxX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTksyX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzBfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTksxX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzNfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJRU1FQVIxCi0JLmxvbmcJKCgoQ0ZHX0JBTkswX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzFfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LMl9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTkszX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LMF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCU1FQVIyCi0JLmxvbmcJKCgoQ0ZHX0JBTks0X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICAwKSB8IFwKLQkJKCgoQ0ZHX0JBTks1X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKLQkJKCgoQ0ZHX0JBTks2X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KQorCS5sb25nCSgoKENPTkZJR19TWVNfQkFOSzRfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgIDApIHwgXAorCQkoKChDT05GSUdfU1lTX0JBTks1X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfCBcCisJCSgoKENPTkZJR19TWVNfQkFOSzdfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpCiAJLmxvbmcJRU1FQVIyCi0JLmxvbmcJKCgoQ0ZHX0JBTks0X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgIDApIHwgXAotCQkoKChDRkdfQkFOSzVfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAgOCkgfCBcCi0JCSgoKENGR19CQU5LNl9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKLQkJKCgoQ0ZHX0JBTks3X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpCisJLmxvbmcJKCgoQ09ORklHX1NZU19CQU5LNF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICAwKSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8ICA4KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8IFwKKwkJKCgoQ09ORklHX1NZU19CQU5LN19FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KQogCS5sb25nCTAKIAogCkBAIC0xMjMsNyArMTIzLDcgQEAKIAkvKiBzZXQgYmFuayBlbmFibGUgYml0cyAqLwogCWxpcwlyMCwgTUJFUkBoCiAJb3JpCXIwLCAwLCBNQkVSQGwKLQlsaQlyMSwgQ0ZHX0JBTktfRU5BQkxFCisJbGkJcjEsIENPTkZJR19TWVNfQkFOS19FTkFCTEUKIAlzdHdicngJcjAsIDAsIHIzCiAJZWllaW8KIAlzdGIJcjEsIDAocjQpCkBAIC0xNDUsOCArMTQ1LDggQEAKIAllaWVpbwogCiAJLyogc2V0IHVwIHN0YWNrIHBvaW50ZXIgKi8KLQlsaXMJcjEsIENGR19JTklUX1NQX09GRlNFVEBoCi0Jb3JpCXIxLCByMSwgQ0ZHX0lOSVRfU1BfT0ZGU0VUQGwKKwlsaXMJcjEsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVRAaAorCW9yaQlyMSwgcjEsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVRAbAogCiAJbXRscglyMTAKIAlibHIKZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRwb2ludC9mbGFzaC5jIGIvYm9hcmQvc2FuZHBvaW50L2ZsYXNoLmMKaW5kZXggMGYzZWNhMi4uZTM2NmNjNiAxMDA2NDQKLS0tIGEvYm9hcmQvc2FuZHBvaW50L2ZsYXNoLmMKKysrIGIvYm9hcmQvc2FuZHBvaW50L2ZsYXNoLmMKQEAgLTMwLDExICszMCwxMSBAQAogI2RlZmluZSBST01fQ1MwX1NUQVJUCTB4RkY4MDAwMDAKICNkZWZpbmUgUk9NX0NTMV9TVEFSVAkweEZGMDAwMDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFICBDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtMTQwLDEwICsxNDAsMTAgQEAKIHsKICAgdW5zaWduZWQgbG9uZyBpOwogICB1bnNpZ25lZCBjaGFyIGo7Ci0gIHN0YXRpYyBjb25zdCB1bG9uZyBmbGFzaF9iYW5rc1tdID0gQ0ZHX0ZMQVNIX0JBTktTOworICBzdGF0aWMgY29uc3QgdWxvbmcgZmxhc2hfYmFua3NbXSA9IENPTkZJR19TWVNfRkxBU0hfQkFOS1M7CiAKICAgLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotICBmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKQorICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKICAgewogICAgIGZsYXNoX2luZm9fdCAqIGNvbnN0IHBmbGluZm8gPSAmZmxhc2hfaW5mb1tpXTsKICAgICBwZmxpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CkBAIC0xNTQsOSArMTU0LDkgQEAKICAgLyogRW5hYmxlIHdyaXRlcyB0byBTYW5kcG9pbnQgZmxhc2ggKi8KICAgewogICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgdGVtcDsKLSAgICBDT05GSUdfUkVBRF9CWVRFKENGR19XSU5CT05EX0lTQV9DRkdfQUREUiArIFdJTkJPTkRfQ1NDUiwgdGVtcCk7CisgICAgQ09ORklHX1JFQURfQllURShDT05GSUdfU1lTX1dJTkJPTkRfSVNBX0NGR19BRERSICsgV0lOQk9ORF9DU0NSLCB0ZW1wKTsKICAgICB0ZW1wICY9IH4weDIwOyAvKiBjbGVhciBCSU9TV1AgYml0ICovCi0gICAgQ09ORklHX1dSSVRFX0JZVEUoQ0ZHX1dJTkJPTkRfSVNBX0NGR19BRERSICsgV0lOQk9ORF9DU0NSLCB0ZW1wKTsKKyAgICBDT05GSUdfV1JJVEVfQllURShDT05GSUdfU1lTX1dJTkJPTkRfSVNBX0NGR19BRERSICsgV0lOQk9ORF9DU0NSLCB0ZW1wKTsKICAgfQogCiAgIGZvcihpID0gMDsgaSA8IHNpemVvZiBmbGFzaF9iYW5rcyAvIHNpemVvZiBmbGFzaF9iYW5rc1swXTsgaSsrKQpAQCAtMjIzLDEwICsyMjMsMTAgQEAKICAgICB9CiAgICAgLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAgICAgICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNjEyLDcgKzYxMiw3IEBACiAgICAgYWRkciA9IChGTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbMF0gKyAoCiAJCQkoaW5mby0+c3RhcnRbbF9zZWN0XSAtIGluZm8tPnN0YXJ0WzBdKSA8PCBzaDhiKSk7CiAgICAgd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJICAgIHByaW50ZiAoIlRpbWVvdXRcbiIpOwogCSAgICByZXR1cm4gMTsKIAl9CkBAIC03NTEsNyArNzUxLDcgQEAKIAkgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCSAgICB3aGlsZSAoKGRlc3QyW2kgPDwgc2g4Yl0gJiAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApICE9CiAJCSAgIChkYXRhMltpXSAmIChGTEFTSF9XT1JEX1NJWkUpMHgwMDgwMDA4MCkpIHsKLQkgICAgICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJICAgICAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJcmV0dXJuICgxKTsKIAkgICAgICB9CiAJICAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3NhbmRwb2ludC9zYW5kcG9pbnQuYyBiL2JvYXJkL3NhbmRwb2ludC9zYW5kcG9pbnQuYwppbmRleCA4MzJiYWEyLi5iYjAxZDczIDEwMDY0NAotLS0gYS9ib2FyZC9zYW5kcG9pbnQvc2FuZHBvaW50LmMKKysrIGIvYm9hcmQvc2FuZHBvaW50L3NhbmRwb2ludC5jCkBAIC01OCw3ICs1OCw3IEBACiAJbG9uZyBtZWFyMTsKIAlsb25nIGVtZWFyMTsKIAotCXNpemUgPSBnZXRfcmFtX3NpemUoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQVhfUkFNX1NJWkUpOworCXNpemUgPSBnZXRfcmFtX3NpemUoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBDT05GSUdfU1lTX01BWF9SQU1fU0laRSk7CiAKIAluZXdfYmFuazBfZW5kID0gc2l6ZSAtIDE7CiAJbWVhcjEgPSBtcGM4MjR4X21wYzEwN19nZXRyZWcoTUVBUjEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjMjQxMHgvZmxhc2guYyBiL2JvYXJkL3NiYzI0MTB4L2ZsYXNoLmMKaW5kZXggZmEzOTk2ZC4uYWJiMDkzNSAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjMjQxMHgvZmxhc2guYworKysgYi9ib2FyZC9zYmMyNDEweC9mbGFzaC5jCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRQlQSFlTX0ZMQVNIX1NJWkUKICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUgIDB4MTAwMDAJLyogNjQgS0IgKi8KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKICNkZWZpbmUgQ01EX1JFQURfQVJSQVkJCTB4MDAwMDAwRjAKICNkZWZpbmUgQ01EX1VOTE9DSzEJCTB4MDAwMDAwQUEKQEAgLTM5LDggKzM5LDggQEAKICNkZWZpbmUgQ01EX1BST0dSQU0JCTB4MDAwMDAwQTAKICNkZWZpbmUgQ01EX1VOTE9DS19CWVBBU1MJMHgwMDAwMDAyMAogCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMQkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTUgPDwgMSkpKQotI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDRkdfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDEpKSkKKyNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDB4MDAwMDA1NTUgPDwgMSkpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjIJCSgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDJBQSA8PCAxKSkpCiAKICNkZWZpbmUgQklUX0VSQVNFX0RPTkUJCTB4MDAwMDAwODAKICNkZWZpbmUgQklUX1JEWV9NQVNLCQkweDAwMDAwMDgwCkBAIC01OSw3ICs1OSw3IEBACiAJaW50IGksIGo7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KQEAgLTczLDggKzczLDggQEAKICNlcnJvciAiVW5rbm93biBmbGFzaCBjb25maWd1cmVkIgogI2VuZGlmCiAJCQlmbGFzaF9pbmZvW2ldLnNpemUgPSBGTEFTSF9CQU5LX1NJWkU7Ci0JCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCWlmIChpID09IDApCiAJCQlmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CiAJCWVsc2UKQEAgLTEwOSw4ICsxMDksOCBAQAogCX0KIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICAgICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKQEAgLTIzNCw3ICsyMzQsNyBAQAogCiAJCQkJLyogY2hlY2sgdGltZW91dCAqLwogCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkgICAgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkgICAgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCU1FTV9GTEFTSF9BRERSMSA9IENNRF9SRUFEX0FSUkFZOwogCQkJCQljaGlwID0gVE1POwogCQkJCQlicmVhazsKQEAgLTMzMCw3ICszMzAsNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCWNoaXAgPSBFUlIgfCBUTU87CiAJCQlicmVhazsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjNDA1L3N0cmF0YWZsYXNoLmMgYi9ib2FyZC9zYmM0MDUvc3RyYXRhZmxhc2guYwppbmRleCBkMjFkODg1Li5lNTg2M2Q2IDEwMDY0NAotLS0gYS9ib2FyZC9zYmM0MDUvc3RyYXRhZmxhc2guYworKysgYi9ib2FyZC9zYmM0MDUvc3RyYXRhZmxhc2guYwpAQCAtMTAzLDcgKzEwMyw3IEBACiAKICNkZWZpbmUgTlVNX0VSQVNFX1JFR0lPTlMgNAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMjAsNyArMTIwLDcgQEAKIHN0YXRpYyB1bG9uZyBmbGFzaF9nZXRfc2l6ZSAodWxvbmcgYmFzZSwgaW50IGJhbmtudW0pOwogc3RhdGljIGludCBmbGFzaF93cml0ZV9jZml3b3JkIChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIGNmaXdvcmRfdCBjd29yZCk7CiBzdGF0aWMgaW50IGZsYXNoX2Z1bGxfc3RhdHVzX2NoZWNrKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIHNlY3RvciwgdWxvbmcgdG91dCwgY2hhciAqIHByb21wdCk7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIHN0YXRpYyBpbnQgZmxhc2hfd3JpdGVfY2ZpYnVmZmVyKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVjaGFyICogY3AsIGludCBsZW4pOwogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODAsMTQgKzE4MCwxNCBAQAogCSAqCiAJICovCiAKLQlhZGRyZXNzID0gQ0ZHX0ZMQVNIX0JBU0U7CisJYWRkcmVzcyA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlzaXplID0gMDsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQlzaXplICs9IGZsYXNoX2luZm9baV0uc2l6ZSA9IGZsYXNoX2dldF9zaXplKGFkZHJlc3MsIGkpOwotCQlhZGRyZXNzICs9IENGR19GTEFTSF9JTkNSRU1FTlQ7CisJCWFkZHJlc3MgKz0gQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQ7CiAJCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAlZCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLGksCiAJCQkJZmxhc2hfaW5mb1swXS5zaXplLCBmbGFzaF9pbmZvW2ldLnNpemU8PDIwKTsKQEAgLTE5NiwxNCArMTk2LDE0IEBACiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UpCi0JZm9yKGk9MDsgZmxhc2hfaW5mb1swXS5zdGFydFtpXSA8IENGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOLTE7IGkrKykKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFKQorCWZvcihpPTA7IGZsYXNoX2luZm9bMF0uc3RhcnRbaV0gPCBDT05GSUdfU1lTX01PTklUT1JfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLTE7IGkrKykKIAkJKHZvaWQpZmxhc2hfcmVhbF9wcm90ZWN0KCZmbGFzaF9pbmZvWzBdLCBpLCAxKTsKICNlbmRpZgogI2Vsc2UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICAtIENGR19NT05JVE9SX0xFTiwKKwkJICAgICAgIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJICAgICAgIC0gMSwgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAKQEAgLTI3Nyw3ICsyNzcsNyBAQAogCiAJcHJpbnRmICgiICBTZWN0b3IgU3RhcnQgQWRkcmVzc2VzOiIpOwogCWZvciAoaT0wOyBpPGluZm8tPnNlY3Rvcl9jb3VudDsgKytpKSB7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAkJaW50IGs7CiAJCWludCBzaXplOwogCQlpbnQgZXJhc2VkOwpAQCAtMzU3LDcgKzM1Nyw3IEBACiAJCXdwID0gY3A7CiAJfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAl3aGlsZShjbnQgPj0gaW5mby0+cG9ydHdpZHRoKSB7CiAJCWkgPSBpbmZvLT5idWZmZXJfc2l6ZSA+IGNudD8gY250OiBpbmZvLT5idWZmZXJfc2l6ZTsKIAkJaWYoKHJjID0gZmxhc2hfd3JpdGVfY2ZpYnVmZmVyKGluZm8sIHdwLCBzcmMsaSkpICE9IEVSUl9PSykKQEAgLTM3OCw3ICszNzgsNyBAQAogCQl3cCArPSBpbmZvLT5wb3J0d2lkdGg7CiAJCWNudCAtPSBpbmZvLT5wb3J0d2lkdGg7CiAJfQotI2VuZGlmIC8qIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCiAJaWYgKGNudCA9PSAwKSB7CiAJCXJldHVybiAoMCk7CiAJfQpAQCAtNzIwLDcgKzcyMCw3IEBACiAJcmV0dXJuIGZsYXNoX2Z1bGxfc3RhdHVzX2NoZWNrKGluZm8sIDAsIGluZm8tPndyaXRlX3RvdXQsICJ3cml0ZSIpOwogfQogCi0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAogLyogbG9vcCB0aHJvdWdoIHRoZSBzZWN0b3JzIGZyb20gdGhlIGhpZ2hlc3QgYWRkcmVzcwogICogd2hlbiB0aGUgcGFzc2VkIGFkZHJlc3MgaXMgZ3JlYXRlciBvciBlcXVhbCB0byB0aGUgc2VjdG9yIGFkZHJlc3MKQEAgLTc5MCw0ICs3OTAsNCBAQAogCWZsYXNoX3dyaXRlX2NtZChpbmZvLCBzZWN0b3IsIDAsIEZMQVNIX0NNRF9DTEVBUl9TVEFUVVMpOwogCXJldHVybiByZXRjb2RlOwogfQotI2VuZGlmIC8qIENGR19VU0VfRkxBU0hfQlVGRkVSX1dSSVRFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19VU0VfRkxBU0hfQlVGRkVSX1dSSVRFICovCmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4MjQwL2ZsYXNoLmMgYi9ib2FyZC9zYmM4MjQwL2ZsYXNoLmMKaW5kZXggZGVjNjE1Ni4uYTA5NTc1MyAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODI0MC9mbGFzaC5jCisrKyBiL2JvYXJkL3NiYzgyNDAvZmxhc2guYwpAQCAtMzIsMTAgKzMyLDEwIEBACiAjaW5jbHVkZSA8bXBjODI0eC5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KIAotI2lmIENGR19NQVhfRkxBU0hfQkFOS1MgIT0gMQotI2Vycm9yICJDRkdfTUFYX0ZMQVNIX0JBTktTIG11c3QgYmUgMSIKKyNpZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAhPSAxCisjZXJyb3IgIkNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIG11c3QgYmUgMSIKICNlbmRpZgotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC0zOTksNyArMzk5LDcgQEAKIAlsYXN0ID0gc3RhcnQ7CiAJd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KIAkgICAgICAgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtNjI4LDcgKzYyOCw3IEBACiAJCXdoaWxlICgoZGVzdDJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCQkgICAgICAgKGRhdGEyW2ldICYgKEZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzgyNDAvc2JjODI0MC5jIGIvYm9hcmQvc2JjODI0MC9zYmM4MjQwLmMKaW5kZXggMDc1ZTM3Ny4uMDFhYmUyNiAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODI0MC9zYmM4MjQwLmMKKysrIGIvYm9hcmQvc2JjODI0MC9zYmM4MjQwLmMKQEAgLTUzLDcgKzUzLDcgQEAKIAlsb25nIG1lYXIxOwogCWxvbmcgZW1lYXIxOwogCi0Jc2l6ZSA9IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgQ0ZHX01BWF9SQU1fU0laRSk7CisJc2l6ZSA9IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFKTsKIAogCW5ld19iYW5rMF9lbmQgPSBzaXplIC0gMTsKIAltZWFyMSA9IG1wYzgyNHhfbXBjMTA3X2dldHJlZyhNRUFSMSk7CkBAIC05Nyw5ICs5Nyw5IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX0xFRF9CQVNFCi0JKigodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0xFRF9CQVNFKSkgPSAweEZGOwotI2VuZGlmIC8qIENGR19MRURfQkFTRSAqLworI2lmZGVmIENPTkZJR19TWVNfTEVEX0JBU0UKKwkqKCh1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX0xFRF9CQVNFKSkgPSAweEZGOworI2VuZGlmIC8qIENPTkZJR19TWVNfTEVEX0JBU0UgKi8KIAogCXJldHVybiAoMCk7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4MjYwL2ZsYXNoLmMgYi9ib2FyZC9zYmM4MjYwL2ZsYXNoLmMKaW5kZXggZDNiMWYzMS4uNjQ1YzY3ZiAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODI2MC9mbGFzaC5jCisrKyBiL2JvYXJkL3NiYzgyNjAvZmxhc2guYwpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC00OSwyMSArNDksMjEgQEAKICAgICBpbnQgaTsKIAogICAgIC8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLSAgICBmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKyAgICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQogCiAgICAgLyogZm9yIG5vdywgb25seSBzdXBwb3J0IHRoZSA0IE1CIEZsYXNoIFNJTU0gKi8KLSAgICBzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKyAgICBzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIMF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKICAgICAvKgogICAgICAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogICAgICAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTc3LDcgKzc3LDcgQEAKIAkJICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAotICAgIHJldHVybiAvKnNpemUqLyAoQ0ZHX0ZMQVNIMF9TSVpFICogMTAyNCAqIDEwMjQpOworICAgIHJldHVybiAvKnNpemUqLyAoQ09ORklHX1NZU19GTEFTSDBfU0laRSAqIDEwMjQgKiAxMDI0KTsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU4LDcgKzI1OCw3IEBACiAgICAgbGFzdCAgPSBzdGFydDsKICAgICBhZGRyID0gKHZ1X2xvbmcqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKICAgICB3aGlsZSAoKGFkZHJbMF0gJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwKSB7Ci0JaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCSAgICBwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkgICAgcmV0dXJuIDE7CiAJfQpAQCAtMzgxLDcgKzM4MSw3IEBACiAgICAgLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogICAgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKICAgICB3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4ODA4MDgwODApICE9IChkYXRhICYgMHg4MDgwODA4MCkpIHsKLQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkgICAgcmV0dXJuICgxKTsKIAl9CiAgICAgfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODI2MC9zYmM4MjYwLmMgYi9ib2FyZC9zYmM4MjYwL3NiYzgyNjAuYwppbmRleCA1NzgxZjYyLi5mNWYyM2JlIDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4MjYwL3NiYzgyNjAuYworKysgYi9ib2FyZC9zYmM4MjYwL3NiYzgyNjAuYwpAQCAtMjEwLDEwICsyMTAsMTAgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKLQl2b2xhdGlsZSB1Y2hhciBjID0gMCwgKnJhbWFkZHIgPSAodWNoYXIgKikgKENGR19TRFJBTV9CQVNFICsgMHg4KTsKLQl1bG9uZyBwc2RtciA9IENGR19QU0RNUjsKKwl2b2xhdGlsZSB1Y2hhciBjID0gMCwgKnJhbWFkZHIgPSAodWNoYXIgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4OCk7CisJdWxvbmcgcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SOwogCWludCBpOwogCiAJLyoKQEAgLTIzMywxMSArMjMzLDExIEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAltZW1jdGwtPm1lbWNfcHNkbXIgPSBwc2RtciB8IFBTRE1SX09QX1BSRUE7CiAJKnJhbWFkZHIgPSBjOwpAQCAtMjUzLDE1ICsyNTMsMTUgQEAKIAkqcmFtYWRkciA9IGM7CiAKIAkvKiByZXR1cm4gdG90YWwgcmFtIHNpemUgKi8KLQlyZXR1cm4gKENGR19TRFJBTTBfU0laRSAqIDEwMjQgKiAxMDI0KTsKKwlyZXR1cm4gKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgKiAxMDI0ICogMTAyNCk7CiB9CiAKICNpZmRlZiBDT05GSUdfTUlTQ19JTklUX1IKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKLSNpZmRlZiBDRkdfTEVEX0JBU0UKLQl1Y2hhciBkcyA9ICoodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0xFRF9CQVNFICsgMSk7CisjaWZkZWYgQ09ORklHX1NZU19MRURfQkFTRQorCXVjaGFyIGRzID0gKih1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX0xFRF9CQVNFICsgMSk7CiAJdWNoYXIgc3M7CiAJdWNoYXIgdG1wWzY0XTsKIAlpbnQgcmVzOwpAQCAtMjgwLDEwICsyODAsMTAgQEAKIAkJCXRtcFsxN10gPSAnXDAnOwogCQkJc2V0ZW52ICgiZXRoYWRkciIsIHRtcCk7CiAJCQkvKiBzZXQgdGhlIGxlZCB0byBzaG93IHRoZSBhZGRyZXNzICovCi0JCQkqKCh1bnNpZ25lZCBjaGFyICopIChDRkdfTEVEX0JBU0UgKyAxKSkgPSBkczsKKwkJCSooKHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfTEVEX0JBU0UgKyAxKSkgPSBkczsKIAkJfQogCX0KLSNlbmRpZiAvKiBDRkdfTEVEX0JBU0UgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0xFRF9CQVNFICovCiAJcmV0dXJuICgwKTsKIH0KICNlbmRpZiAvKiBDT05GSUdfTUlTQ19JTklUX1IgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzgzNDkvcGNpLmMgYi9ib2FyZC9zYmM4MzQ5L3BjaS5jCmluZGV4IDUyN2Y3ZTQuLjkwMjJjNTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzgzNDkvcGNpLmMKKysrIGIvYm9hcmQvc2JjODM0OS9wY2kuYwpAQCAtNDAsOCArNDAsOCBAQAogI2lmZGVmIENPTkZJR19QQ0kKIAogLyogU3lzdGVtIFJBTSBtYXBwZWQgdG8gUENJIHNwYWNlICovCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKIHN0YXRpYyBzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSBwY2lfbXBjODM0OWVtZHNfY29uZmlnX3RhYmxlW10gPSB7CkBAIC05MCw3ICs5MCw3IEBACiAJdTMyIGRldjsKIAlzdHJ1Y3QJcGNpX2NvbnRyb2xsZXIgKiBob3NlOwogCi0JaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWNsayA9IChjbGs4M3h4X3QgKikmaW1tci0+Y2xrOwogCXBjaV9sYXcgPSBpbW1yLT5zeXNjb25mLnBjaWxhdzsKIAlwY2lfcG90ID0gaW1tci0+aW9zLnBvdDsKQEAgLTEzMiwxMCArMTMyLDEwIEBACiAJLyoKIAkgKiBDb25maWd1cmUgUENJIExvY2FsIEFjY2VzcyBXaW5kb3dzCiAJICovCi0JcGNpX2xhd1swXS5iYXIgPSBDRkdfUENJMV9NRU1fUEhZUyAmIExBV0JBUl9CQVI7CisJcGNpX2xhd1swXS5iYXIgPSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMF0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfMUc7CiAKLQlwY2lfbGF3WzFdLmJhciA9IENGR19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfNE07CiAKIAkvKgpAQCAtMTQzLDE4ICsxNDMsMTggQEAKIAkgKi8KIAogCS8qIFBDSTEgbWVtIHNwYWNlIC0gcHJlZmV0Y2ggKi8KLQlwY2lfcG90WzBdLnBvdGFyID0gKENGR19QQ0kxX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFswXS5wb2JhciA9IChDRkdfUENJMV9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbMF0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFswXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzBdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9QUkVGRVRDSF9FTiB8IChQT0NNUl9DTV8yNTZNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKiBQQ0kxIElPIHNwYWNlICovCi0JcGNpX3BvdFsxXS5wb3RhciA9IChDRkdfUENJMV9JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFsxXS5wb2JhciA9IChDRkdfUENJMV9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFsxXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzFdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9JTyB8IChQT0NNUl9DTV8xTSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyogUENJMSBtbWlvIC0gbm9uLXByZWZldGNoIG1lbSBzcGFjZSAqLwotCXBjaV9wb3RbMl0ucG90YXIgPSAoQ0ZHX1BDSTFfTU1JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFsyXS5wb2JhciA9IChDRkdfUENJMV9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKKwlwY2lfcG90WzJdLnBvdGFyID0gKENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzJdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzJdLnBvY21yID0gUE9DTVJfRU4gfCAoUE9DTVJfQ01fMjU2TSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyoKQEAgLTE3MywyMyArMTczLDIzIEBACiAKIAkvKiBQQ0kgbWVtb3J5IHByZWZldGNoIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJMV9NRU1fQkFTRSwKLQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTXxQQ0lfUkVHSU9OX1BSRUZFVENIKTsKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJICAgICAgIENGR19QQ0kxX01NSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0kxX01NSU9fUEhZUywKLQkJICAgICAgIENGR19QQ0kxX01NSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkgICAgICAgQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0kxX0lPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMV9JT19TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkvKiBTeXN0ZW0gbWVtb3J5IHNwYWNlICovCkBAIC0yMDIsOCArMjAyLDggQEAKIAlob3NlLT5yZWdpb25fY291bnQgPSA0OwogCiAJcGNpX3NldHVwX2luZGlyZWN0KGhvc2UsCi0JCQkgICAoQ0ZHX0lNTVIrMHg4MzAwKSwKLQkJCSAgIChDRkdfSU1NUisweDgzMDQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIrMHg4MzAwKSwKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIrMHg4MzA0KSk7CiAKIAlwY2lfcmVnaXN0ZXJfaG9zZShob3NlKTsKIApAQCAtMjM5LDE4ICsyMzksMTggQEAKIAkgKi8KIAogCS8qIFBDSTIgbWVtIHNwYWNlIC0gcHJlZmV0Y2ggKi8KLQlwY2lfcG90WzNdLnBvdGFyID0gKENGR19QQ0kyX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFszXS5wb2JhciA9IChDRkdfUENJMl9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbM10ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7CisJcGNpX3BvdFszXS5wb2JhciA9IChDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzNdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9QQ0kyIHwgUE9DTVJfUFJFRkVUQ0hfRU4gfCAoUE9DTVJfQ01fMjU2TSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyogUENJMiBJTyBzcGFjZSAqLwotCXBjaV9wb3RbNF0ucG90YXIgPSAoQ0ZHX1BDSTJfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOwotCXBjaV9wb3RbNF0ucG9iYXIgPSAoQ0ZHX1BDSTJfSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbNF0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzRdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMl9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CiAJcGNpX3BvdFs0XS5wb2NtciA9IFBPQ01SX0VOIHwgUE9DTVJfUENJMiB8IFBPQ01SX0lPIHwgKFBPQ01SX0NNXzFNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKiBQQ0kyIG1taW8gLSBub24tcHJlZmV0Y2ggbWVtIHNwYWNlICovCi0JcGNpX3BvdFs1XS5wb3RhciA9IChDRkdfUENJMl9NTUlPX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzVdLnBvYmFyID0gKENGR19QQ0kyX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOworCXBjaV9wb3RbNV0ucG90YXIgPSAoQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbNV0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kyX01NSU9fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbNV0ucG9jbXIgPSBQT0NNUl9FTiB8IFBPQ01SX1BDSTIgfCAoUE9DTVJfQ01fMjU2TSAmIFBPQ01SX0NNX01BU0spOwogCiAJLyoKQEAgLTI2OSwyMyArMjY5LDIzIEBACiAKIAkvKiBQQ0kgbWVtb3J5IHByZWZldGNoIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fQkFTRSwKLQkJICAgICAgIENGR19QQ0kyX01FTV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTXxQQ0lfUkVHSU9OX1BSRUZFVENIKTsKIAogCS8qIFBDSSBtZW1vcnkgc3BhY2UgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJICAgICAgIENGR19QQ0kyX01NSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0kyX01NSU9fUEhZUywKLQkJICAgICAgIENGR19QQ0kyX01NSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfTU1JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01NSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCS8qIFBDSSBJTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0kyX0lPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMl9JT19TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkvKiBTeXN0ZW0gbWVtb3J5IHNwYWNlICovCkBAIC0yOTgsOCArMjk4LDggQEAKIAlob3NlLT5yZWdpb25fY291bnQgPSA0OwogCiAJcGNpX3NldHVwX2luZGlyZWN0KGhvc2UsCi0JCQkgICAoQ0ZHX0lNTVIrMHg4MzgwKSwKLQkJCSAgIChDRkdfSU1NUisweDgzODQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIrMHg4MzgwKSwKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIrMHg4Mzg0KSk7CiAKIAlwY2lfcmVnaXN0ZXJfaG9zZShob3NlKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODM0OS9zYmM4MzQ5LmMgYi9ib2FyZC9zYmM4MzQ5L3NiYzgzNDkuYwppbmRleCA5M2FkYTBiLi40MTU0ZjI5IDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4MzQ5L3NiYzgzNDkuYworKysgYi9ib2FyZC9zYmM4MzQ5L3NiYzgzNDkuYwpAQCAtNTQsMTQgKzU0LDE0IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCiAJaWYgKChpbS0+c3lzY29uZi5pbW1yYmFyICYgSU1NUkJBUl9CQVNFX0FERFIpICE9ICh1MzIpaW0pCiAJCXJldHVybiAtMTsKIAogCS8qIEREUiBTRFJBTSAtIE1haW4gU09ESU1NICovCi0JaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENGR19ERFJfQkFTRSAmIExBV0JBUl9CQVI7CisJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENPTkZJR19TWVNfRERSX0JBU0UgJiBMQVdCQVJfQkFSOwogI2lmIGRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCiAJbXNpemUgPSBzcGRfc2RyYW0oKTsKICNlbHNlCkBAIC04OCwxMiArODgsMTIgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgZml4ZWRfc2RyYW0odm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1MzIgbXNpemUgPSAwOwogCXUzMiBkZHJfc2l6ZTsKIAl1MzIgZGRyX3NpemVfbG9nMjsKIAotCW1zaXplID0gQ0ZHX0REUl9TSVpFOworCW1zaXplID0gQ09ORklHX1NZU19ERFJfU0laRTsKIAlmb3IgKGRkcl9zaXplID0gbXNpemUgPDwgMjAsIGRkcl9zaXplX2xvZzIgPSAwOwogCSAgICAgKGRkcl9zaXplID4gMSk7CiAJICAgICBkZHJfc2l6ZSA9IGRkcl9zaXplPj4xLCBkZHJfc2l6ZV9sb2cyKyspIHsKQEAgLTEwMSwyMiArMTAxLDIyIEBACiAJCQlyZXR1cm4gLTE7CiAJCX0KIAl9Ci0JaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENGR19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CisJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgJiAweGZmZmZmMDAwOwogCWltLT5zeXNjb25mLmRkcmxhd1swXS5hciA9IExBV0FSX0VOIHwgKChkZHJfc2l6ZV9sb2cyIC0gMSkgJiBMQVdBUl9TSVpFKTsKIAotI2lmIChDRkdfRERSX1NJWkUgIT0gMjU2KQorI2lmIChDT05GSUdfU1lTX0REUl9TSVpFICE9IDI1NikKICN3YXJuaW5nIEN1cnJlbnRseSBhbnkgZGRyIHNpemUgb3RoZXIgdGhhbiAyNTYgaXMgbm90IHN1cHBvcnRlZAogI2VuZGlmCiAJaW0tPmRkci5jc2JuZHNbMl0uY3NibmRzID0gMHgwMDAwMDAwZjsKLQlpbS0+ZGRyLmNzX2NvbmZpZ1syXSA9IENGR19ERFJfQ09ORklHOworCWltLT5kZHIuY3NfY29uZmlnWzJdID0gQ09ORklHX1NZU19ERFJfQ09ORklHOwogCiAJLyogY3VycmVudGx5IHdlIHVzZSBvbmx5IG9uZSBDUywgc28gZGlzYWJsZSB0aGUgb3RoZXIgYmFua3MgKi8KIAlpbS0+ZGRyLmNzX2NvbmZpZ1swXSA9IDA7CiAJaW0tPmRkci5jc19jb25maWdbMV0gPSAwOwogCWltLT5kZHIuY3NfY29uZmlnWzNdID0gMDsKIAotCWltLT5kZHIudGltaW5nX2NmZ18xID0gQ0ZHX0REUl9USU1JTkdfMTsKLQlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENGR19ERFJfVElNSU5HXzI7CisJaW0tPmRkci50aW1pbmdfY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMTsKKwlpbS0+ZGRyLnRpbWluZ19jZmdfMiA9IENPTkZJR19TWVNfRERSX1RJTUlOR18yOwogCiAJaW0tPmRkci5zZHJhbV9jZmcgPQogCQlTRFJBTV9DRkdfU1JFTgpAQCAtMTI4LDE2ICsxMjgsMTYgQEAKIAkvKiBmb3IgMzItYml0IG1vZGUgYnVyc3QgbGVuZ3RoIGlzIDggKi8KIAlpbS0+ZGRyLnNkcmFtX2NmZyB8PSAoU0RSQU1fQ0ZHXzMyX0JFIHwgU0RSQU1fQ0ZHXzhfQkUpOwogI2VuZGlmCi0JaW0tPmRkci5zZHJhbV9tb2RlID0gQ0ZHX0REUl9NT0RFOworCWltLT5kZHIuc2RyYW1fbW9kZSA9IENPTkZJR19TWVNfRERSX01PREU7CiAKLQlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKKwlpbS0+ZGRyLnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CiAJdWRlbGF5KDIwMCk7CiAKIAkvKiBlbmFibGUgRERSIGNvbnRyb2xsZXIgKi8KIAlpbS0+ZGRyLnNkcmFtX2NmZyB8PSBTRFJBTV9DRkdfTUVNX0VOOwogCXJldHVybiBtc2l6ZTsKIH0KLSNlbmRpZi8qIUNGR19TUERfRUVQUk9NKi8KKyNlbmRpZi8qIUNPTkZJR19TWVNfU1BEX0VFUFJPTSovCiAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCkBAIC0xNDksNDQgKzE0OSw0NCBAQAogLyoKICAqIGlmIGJvYXJkIGlzIGZpdHRlZCB3aXRoIFNEUkFNCiAgKi8KLSNpZiBkZWZpbmVkKENGR19CUjJfUFJFTElNKSAgXAotCSYmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pIFwKLQkmJiBkZWZpbmVkKENGR19MQkxBV0JBUjJfUFJFTElNKSBcCi0JJiYgZGVmaW5lZChDRkdfTEJMQVdBUjJfUFJFTElNKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKSAgXAorCSYmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKSBcCisJJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNKQogLyoKICAqIEluaXRpYWxpemUgU0RSQU0gbWVtb3J5IG9uIHRoZSBMb2NhbCBCdXMuCiAgKi8KIAogdm9pZCBzZHJhbV9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbGJ1czgzeHhfdCAqbGJjPSAmaW1tYXAtPmxidXM7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ0ZHX0xCQ19TRFJBTV9CQVNFOworCXVpbnQgKnNkcmFtX2FkZHIgPSAodWludCAqKUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0U7CiAKIAlwdXRzKCJcbiAgIFNEUkFNIG9uIExvY2FsIEJ1czogIik7Ci0JcHJpbnRfc2l6ZSAoQ0ZHX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICJcbiIpOworCXByaW50X3NpemUgKENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CiAKIAkvKgogCSAqIFNldHVwIFNEUkFNIEJhc2UgYW5kIE9wdGlvbiBSZWdpc3RlcnMsIGFscmVhZHkgZG9uZSBpbiBjcHVfaW5pdC5jCiAJICovCiAKIAkvKiBzZXR1cCBtdHJwdCwgbHNydCBhbmQgbGJjciBmb3IgTEIgYnVzICovCi0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOwotCWxiYy0+bXJ0cHIgPSBDRkdfTEJDX01SVFBSOwotCWxiYy0+bHNydCA9IENGR19MQkNfTFNSVDsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOworCWxiYy0+bXJ0cHIgPSBDT05GSUdfU1lTX0xCQ19NUlRQUjsKKwlsYmMtPmxzcnQgPSBDT05GSUdfU1lTX0xCQ19MU1JUOwogCWFzbSgic3luYyIpOwogCiAJLyoKIAkgKiBDb25maWd1cmUgdGhlIFNEUkFNIGNvbnRyb2xsZXIgTWFjaGluZSBNb2RlIFJlZ2lzdGVyLgogCSAqLwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzU7IC8qIDB4NDA2MzY3MzM7IG5vcm1hbCBvcGVyYXRpb24gKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsgLyogMHg0MDYzNjczMzsgbm9ybWFsIG9wZXJhdGlvbiAqLwogCi0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMTsgLyogMHg2ODYzNjczMzsgcHJlY2hhcmdlIGFsbCB0aGUgYmFua3MgKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMTsgLyogMHg2ODYzNjczMzsgcHJlY2hhcmdlIGFsbCB0aGUgYmFua3MgKi8KIAlhc20oInN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJdWRlbGF5KDEwMCk7CiAKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl8yOyAvKiAweDQ4NjM2NzMzOyBhdXRvIHJlZnJlc2ggKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMjsgLyogMHg0ODYzNjczMzsgYXV0byByZWZyZXNoICovCiAJYXNtKCJzeW5jIik7CiAJLyoxIHRpbWVzKi8KIAkqc2RyYW1fYWRkciA9IDB4ZmY7CkBAIC0yMTQsMTIgKzIxNCwxMiBAQAogCXVkZWxheSgxMDApOwogCiAJLyogMHg1ODYzNjczMzsgbW9kZSByZWdpc3RlciB3cml0ZSBvcGVyYXRpb24gKi8KLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl80OworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl80OwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAl1ZGVsYXkoMTAwKTsKIAotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzU7IC8qIDB4NDA2MzY3MzM7IG5vcm1hbCBvcGVyYXRpb24gKi8KKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsgLyogMHg0MDYzNjczMzsgbm9ybWFsIG9wZXJhdGlvbiAqLwogCWFzbSgic3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAl1ZGVsYXkoMTAwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzg1NDgvZGRyLmMgYi9ib2FyZC9zYmM4NTQ4L2Rkci5jCmluZGV4IGYwN2Q3NDYuLmFiNjRmYTggMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzg1NDgvZGRyLmMKKysrIGIvYm9hcmQvc2JjODU0OC9kZHIuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogCiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9kaW1tX3BhcmFtcy5oPgogCiBzdGF0aWMgdm9pZAogZ2V0X3NwZChkZHIyX3NwZF9lZXByb21fdCAqc3BkLCB1bnNpZ25lZCBjaGFyIGkyY19hZGRyZXNzKQpAQCAtMzcsNyArMzgsOSBAQAogCX0KIH0KIAotdm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsIHVuc2lnbmVkIGludCBjdHJsX251bSkKK3ZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLAorCQkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAorCQkJCXVuc2lnbmVkIGludCBjdHJsX251bSkKIHsKIAkvKgogCSAqIEZhY3RvcnMgdG8gY29uc2lkZXIgZm9yIGNsb2NrIGFkanVzdDoKZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzg1NDgvbGF3LmMgYi9ib2FyZC9zYmM4NTQ4L2xhdy5jCmluZGV4IGFiNTQyNjAuLmU4YzdhZTIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzg1NDgvbGF3LmMKKysrIGIvYm9hcmQvc2JjODU0OC9sYXcuYwpAQCAtNDYsMTIgKzQ2LDEyIEBACiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7CiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUiksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFIpLAogI2VuZGlmCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCiAJLyogTEJDIHdpbmRvdyAtIG1hcHMgMjU2TSAweGYwMDAwMDAwIC0+IDB4ZmZmZmZmZmYgKi8KLQlTRVRfTEFXKENGR19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODU0OC9zYmM4NTQ4LmMgYi9ib2FyZC9zYmM4NTQ4L3NiYzg1NDguYwppbmRleCBmMzFkN2Q2Li4yMWY4MmYyIDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4NTQ4L3NiYzg1NDguYworKysgYi9ib2FyZC9zYmM4NTQ4L3NiYzg1NDguYwpAQCAtNTMsOSArNTMsOSBAQAogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfbG9jYWxfZWNtX3QgKmVjbSA9ICh2b2lkICopKENGR19NUEM4NXh4X0VDTV9BRERSKTsKLQl2b2xhdGlsZSB1X2NoYXIgKnJldj0gKHZvaWQgKilDRkdfQkRfUkVWOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbG9jYWxfZWNtX3QgKmVjbSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9FQ01fQUREUik7CisJdm9sYXRpbGUgdV9jaGFyICpyZXY9ICh2b2lkICopQ09ORklHX1NZU19CRF9SRVY7CiAKIAlwcmludGYgKCJCb2FyZDogV2luZCBSaXZlciBTQkM4NTQ4IFJldi4gMHglMDF4XG4iLAogCQkJKCpyZXYpID4+IDQpOwpAQCAtOTgsNyArOTgsNyBAQAogCQkgKiAgICBPdmVycmlkZSBETEwgPSAxLCBDb3Vyc2UgQWRqID0gMSwgVGFwIFNlbGVjdCA9IDAKIAkJICovCiAKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAKIAkJZ3VyLT5kZHJkbGxjciA9IDB4ODEwMDAwMDA7CiAJCWFzbSgic3luYztpc3luYzttc3luYyIpOwpAQCAtMTM1LDggKzEzNSw4IEBACiB2b2lkCiBsb2NhbF9idXNfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAl1aW50IGNsa2RpdjsKIAl1aW50IGxiY19oejsKQEAgLTE2OSw0NCArMTY5LDQ0IEBACiB2b2lkCiBzZHJhbV9pbml0KHZvaWQpCiB7Ci0jaWYgZGVmaW5lZChDRkdfT1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIzX1BSRUxJTSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSM19QUkVMSU0pCiAKIAl1aW50IGlkeDsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0JdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ0ZHX0xCQ19TRFJBTV9CQVNFOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdWludCAqc2RyYW1fYWRkciA9ICh1aW50ICopQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRTsKIAl1aW50IGxzZG1yX2NvbW1vbjsKIAogCXB1dHMoIiAgICBTRFJBTTogIik7CiAKLQlwcmludF9zaXplIChDRkdfTEJDX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCwgIlxuIik7CisJcHJpbnRfc2l6ZSAoQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0LCAiXG4iKTsKIAogCS8qCiAJICogU2V0dXAgU0RSQU0gQmFzZSBhbmQgT3B0aW9uIFJlZ2lzdGVycwogCSAqLwotCWxiYy0+b3IzID0gQ0ZHX09SM19QUkVMSU07CisJbGJjLT5vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CiAJYXNtKCJtc3luYyIpOwogCi0JbGJjLT5icjMgPSBDRkdfQlIzX1BSRUxJTTsKKwlsYmMtPmJyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKIAlhc20oIm1zeW5jIik7CiAKLQlsYmMtPmxiY3IgPSBDRkdfTEJDX0xCQ1I7CisJbGJjLT5sYmNyID0gQ09ORklHX1NZU19MQkNfTEJDUjsKIAlhc20oIm1zeW5jIik7CiAKIAotCWxiYy0+bHNydCA9IENGR19MQkNfTFNSVDsKLQlsYmMtPm1ydHByID0gQ0ZHX0xCQ19NUlRQUjsKKwlsYmMtPmxzcnQgPSBDT05GSUdfU1lTX0xCQ19MU1JUOworCWxiYy0+bXJ0cHIgPSBDT05GSUdfU1lTX0xCQ19NUlRQUjsKIAlhc20oIm1zeW5jIik7CiAKIAkvKgogCSAqIE1QQzg1NDggdXNlcyAibmV3IiAxNS0xNiBzdHlsZSBhZGRyZXNzaW5nLgogCSAqLwotCWxzZG1yX2NvbW1vbiA9IENGR19MQkNfTFNETVJfQ09NTU9OOwotCWxzZG1yX2NvbW1vbiB8PSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2OworCWxzZG1yX2NvbW1vbiA9IENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTjsKKwlsc2Rtcl9jb21tb24gfD0gQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTY7CiAKIAkvKgogCSAqIElzc3VlIFBSRUNIQVJHRSBBTEwgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEw7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTDsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yMTYsNyArMjE2LDcgQEAKIAkgKiBJc3N1ZSA4IEFVVE8gUkVGUkVTSCBjb21tYW5kcy4KIAkgKi8KIAlmb3IgKGlkeCA9IDA7IGlkeCA8IDg7IGlkeCsrKSB7Ci0JCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSDsKKwkJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSDsKIAkJYXNtKCJzeW5jO21zeW5jIik7CiAJCSpzZHJhbV9hZGRyID0gMHhmZjsKIAkJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yMjYsNyArMjI2LDcgQEAKIAkvKgogCSAqIElzc3VlIDggTU9ERS1zZXQgY29tbWFuZC4KIAkgKi8KLQlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlc7CisJbGJjLT5sc2RtciA9IGxzZG1yX2NvbW1vbiB8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVzsKIAlhc20oInN5bmM7bXN5bmMiKTsKIAkqc2RyYW1fYWRkciA9IDB4ZmY7CiAJcHBjRGNiZigodW5zaWduZWQgbG9uZykgc2RyYW1fYWRkcik7CkBAIC0yMzUsNyArMjM1LDcgQEAKIAkvKgogCSAqIElzc3VlIE5PUk1BTCBPUCBjb21tYW5kLgogCSAqLwotCWxiYy0+bHNkbXIgPSBsc2Rtcl9jb21tb24gfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTDsKKwlsYmMtPmxzZG1yID0gbHNkbXJfY29tbW9uIHwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMOwogCWFzbSgic3luYzttc3luYyIpOwogCSpzZHJhbV9hZGRyID0gMHhmZjsKIAlwcGNEY2JmKCh1bnNpZ25lZCBsb25nKSBzZHJhbV9hZGRyKTsKQEAgLTI0NCwxNyArMjQ0LDE3IEBACiAjZW5kaWYJLyogZW5hYmxlIFNEUkFNIGluaXQgKi8KIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogaW50CiB0ZXN0ZHJhbSh2b2lkKQogewotCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENGR19NRU1URVNUX1NUQVJUOwotCXVpbnQgKnBlbmQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9FTkQ7CisJdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUOworCXVpbnQgKnBlbmQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfRU5EOwogCXVpbnQgKnA7CiAKIAlwcmludGYoIlRlc3RpbmcgRFJBTSBmcm9tIDB4JTA4eCB0byAweCUwOHhcbiIsCi0JICAgICAgIENGR19NRU1URVNUX1NUQVJULAotCSAgICAgICBDRkdfTUVNVEVTVF9FTkQpOworCSAgICAgICBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQsCisJICAgICAgIENPTkZJR19TWVNfTUVNVEVTVF9FTkQpOwogCiAJcHJpbnRmKCJEUkFNIHRlc3QgcGhhc2UgMTpcbiIpOwogCWZvciAocCA9IHBzdGFydDsgcCA8IHBlbmQ7IHArKykKQEAgLTI5MCw5ICsyOTAsOSBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGxvbmcgaW50IGZpeGVkX3NkcmFtICh2b2lkKQogewotICAgICNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MIDB4YzMwMGMwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wgMHhjMzAwYzAwMAogCi0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAKIAlkZHItPmNzMF9ibmRzCQk9IDB4MDAwMDAwN2Y7CiAJZGRyLT5jczFfYm5kcwkJPSAweDAwODAwMGZmOwpAQCAtMzE5LDEyICszMTksMTIgQEAKIAogCSNpZiBkZWZpbmVkIChDT05GSUdfRERSX0VDQykKIAkgIC8qIEVuYWJsZSBFQ0MgY2hlY2tpbmcgKi8KLQkgIGRkci0+c2RyYW1fY2ZnID0gKENGR19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOworCSAgZGRyLT5zZHJhbV9jZmcgPSAoQ09ORklHX1NZU19ERFJfQ09OVFJPTCB8IDB4MjAwMDAwMDApOwogCSNlbHNlCi0JICBkZHItPnNkcmFtX2NmZyA9IENGR19ERFJfQ09OVFJPTDsKKwkgIGRkci0+c2RyYW1fY2ZnID0gQ09ORklHX1NZU19ERFJfQ09OVFJPTDsKIAkjZW5kaWYKIAotCXJldHVybiBDRkdfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OworCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNDsKIH0KICNlbmRpZgogCkBAIC0zNjcsMTEgKzM2NywxMSBAQAogdm9pZAogcGNpX2luaXRfYm9hcmQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCiAjaWZkZWYgQ09ORklHX1BDSTEKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMV9ob3NlOwogCXN0cnVjdCBwY2lfY29uZmlnX3RhYmxlICp0YWJsZTsKQEAgLTM5NywyNCArMzk3LDI0IEBACiAKIAkJLyogaW5ib3VuZCAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0kxX0lPX0JBU0UsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMV9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCQlob3NlLT5yZWdpb25fY291bnQgPSAzOwogCkBAIC00NjYsNyArNDY2LDcgQEAKIAogI2lmZGVmIENPTkZJR19QQ0lFMQogewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSUUxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSUUxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaWUxX2hvc2U7CiAJaW50IHBjaWVfZXAgPSAgKGhvc3RfYWdlbnQgPT0gMCkgfHwgKGhvc3RfYWdlbnQgPT0gMiApIHx8IChob3N0X2FnZW50ID09IDMpOwpAQCAtNDg2LDIzICs0ODYsMjMgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUywKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9CQVNFLAotCQkJICAgICAgIENGR19QQ0lFMV9NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJRTFfTUVNX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJCS8qIG91dGJvdW5kIGlvICovCiAJCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19CQVNFLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0lFMV9JT19TSVpFLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NTQ4L3RsYi5jIGIvYm9hcmQvc2JjODU0OC90bGIuYwppbmRleCA2MzE0MDA1Li4xOGQxMWY2IDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4NTQ4L3RsYi5jCisrKyBiL2JvYXJkL3NiYzg1NDgvdGxiLmMKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTQ2LDcgKzQ2LDcgQEAKIAkgKiAweGZmODAwMDAwCTE2TQlUTEIgZm9yIDhNQiBGTEFTSAogCSAqIE91dCBvZiByZXNldCB0aGlzIGVudHJ5IGlzIG9ubHkgNEsuCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl8xNk0sIDEpLAogCkBAIC01NCw3ICs1NCw3IEBACiAJICogVExCIDE6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUywgQ0ZHX1BDSTFfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNjIsNyArNjIsNyBAQAogCSAqIFRMQiAyOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDkwMDAwMDAwCTI1Nk0JUENJMSBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNzEsNyArNzEsNyBAQAogCSAqIDB4MAkJMjU2TSBERFIgU0RSQU0KIAkgKi8KIAkjaWYgIWRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRERSX1NEUkFNX0JBU0UsIENGR19ERFJfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAJI2VuZGlmCkBAIC04MSw3ICs4MSw3IEBACiAJICogMHhlMDAwMDAwMAkxTQlDQ1NSQkFSCiAJICogMHhlMjAwMDAwMAkxNk0JUENJMSBJTwogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTg5LDcgKzg5LDcgQEAKIAkgKiBUTEIgNToJNjRNCUNhY2hlYWJsZSwgbm9uLWd1YXJkZWQKIAkgKiAweGYwMDAwMDAwCTY0TQlMQkMgU0RSQU0KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19MQkNfU0RSQU1fQkFTRSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC0xMDAsNyArMTAwLDcgQEAKIAkgKiAweGY4MzAwMDAwCTFNCUJvYXJkIHJldmlzaW9uCiAJICogMHhmOGIwMDAwMAkxTQlFRVBST00KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19FUExEX0JBU0UsIENGR19FUExEX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0VQTERfQkFTRSwgQ09ORklHX1NZU19FUExEX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NTYwL2Rkci5jIGIvYm9hcmQvc2JjODU2MC9kZHIuYwppbmRleCA0NTM3MmY0Li43ODUwNzk0IDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4NTYwL2Rkci5jCisrKyBiL2JvYXJkL3NiYzg1NjAvZGRyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxpMmMuaD4KIAogI2luY2x1ZGUgPGFzbS9mc2xfZGRyX3NkcmFtLmg+CisjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfZGltbV9wYXJhbXMuaD4KIAogc3RhdGljIHZvaWQKIGdldF9zcGQoZGRyMV9zcGRfZWVwcm9tX3QgKnNwZCwgdW5zaWduZWQgY2hhciBpMmNfYWRkcmVzcykKQEAgLTQwLDcgKzQxLDkgQEAKIAl9CiB9CiAKLXZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLCB1bnNpZ25lZCBpbnQgY3RybF9udW0pCit2b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywKKwkJCQlkaW1tX3BhcmFtc190ICpwZGltbSwKKwkJCQl1bnNpZ25lZCBpbnQgY3RybF9udW0pCiB7CiAJLyoKIAkgKiBGYWN0b3JzIHRvIGNvbnNpZGVyIGZvciBDUE86CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NTYwL2xhdy5jIGIvYm9hcmQvc2JjODU2MC9sYXcuYwppbmRleCAxMGRlZGI0Li40ZTZiYWVkIDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4NTYwL2xhdy5jCisrKyBiL2JvYXJkL3NiYzg1NjAvbGF3LmMKQEAgLTUxLDEwICs1MSwxMCBAQAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfRERSKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSV9NRU1fUEhZUywgTEFXX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJX01FTV9QSFlTLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfTEJDKSwKIH07CiAKIGludCBudW1fbGF3X2VudHJpZXMgPSBBUlJBWV9TSVpFKGxhd190YWJsZSk7CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NTYwL3NiYzg1NjAuYyBiL2JvYXJkL3NiYzg1NjAvc2JjODU2MC5jCmluZGV4IGRjNjYxNzAuLjQxMzkyNmQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzg1NjAvc2JjODU2MC5jCisrKyBiL2JvYXJkL3NiYzg1NjAvc2JjODU2MC5jCkBAIC0xOTcsNyArMTk3LDcgQEAKIGludCBib2FyZF9lYXJseV9pbml0X2YgKHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQotICAgIHZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QQ0lYX0FERFIpOworICAgIHZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfUENJWF9BRERSKTsKIAogICAgIHBjaS0+cGVlciAmPSAweGZmZmZmZmZkZjsgLyogZGlzYWJsZSBtYXN0ZXIgYWJvcnQgKi8KICNlbmRpZgpAQCAtMjA3LDcgKzIwNyw3IEBACiB2b2lkIHJlc2V0X3BoeSAodm9pZCkKIHsKICNpZiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpIC8qIGF2b2lkIGNvbXBpbGUgd2FybmluZ3MgZm9yIG5vdyAqLwotCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmJjc3IgPSAodW5zaWduZWQgY2hhciAqKSBDRkdfQkNTUjsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpiY3NyID0gKHVuc2lnbmVkIGNoYXIgKikgQ09ORklHX1NZU19CQ1NSOwogI2VuZGlmCiAJLyogcmVzZXQgR2lnYSBiaXQgRXRoZXJuZXQgcG9ydCBpZiBuZWVkZWQgaGVyZSAqLwogCkBAIC0yNDksOSArMjQ5LDkgQEAKIAlwcmludGYgKCJcdENQVTogJWx1IE1IelxuIiwgc3lzaW5mby5mcmVxUHJvY2Vzc29yIC8gMTAwMDAwMCk7CiAJcHJpbnRmICgiXHRDQ0I6ICVsdSBNSHpcbiIsIHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDEwMDAwMDApOwogCXByaW50ZiAoIlx0RERSOiAlbHUgTUh6XG4iLCBzeXNpbmZvLmZyZXFTeXN0ZW1CdXMgLyAyMDAwMDAwKTsKLQlpZigoQ0ZHX0xCQ19MQ1JSICYgMHgwZikgPT0gMiB8fCAoQ0ZHX0xCQ19MQ1JSICYgMHgwZikgPT0gNCBcCi0JCXx8IChDRkdfTEJDX0xDUlIgJiAweDBmKSA9PSA4KSB7Ci0JCXByaW50ZiAoIlx0TEJDOiAlbHUgTUh6XG4iLCBzeXNpbmZvLmZyZXFTeXN0ZW1CdXMgLyAxMDAwMDAwIC8oQ0ZHX0xCQ19MQ1JSICYgMHgwZikpOworCWlmKChDT05GSUdfU1lTX0xCQ19MQ1JSICYgMHgwZikgPT0gMiB8fCAoQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGYpID09IDQgXAorCQl8fCAoQ09ORklHX1NZU19MQkNfTENSUiAmIDB4MGYpID09IDgpIHsKKwkJcHJpbnRmICgiXHRMQkM6ICVsdSBNSHpcbiIsIHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDEwMDAwMDAgLyhDT05GSUdfU1lTX0xCQ19MQ1JSICYgMHgwZikpOwogCX0gZWxzZSB7CiAJCXByaW50ZigiXHRMQkM6IHVua25vd25cbiIpOwogCX0KQEAgLTI2NywxMyArMjY3LDEzIEBACiAKICNpZiAwCiAjaWYgIWRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKIAlzeXNfaW5mb190IHN5c2luZm87CiAJdWludCB0ZW1wX2xiY2RsbCA9IDA7CiAjZW5kaWYKICNlbmRpZiAvKiAwICovCiAjaWYgIWRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkgfHwgZGVmaW5lZChDT05GSUdfRERSX0RMTCkKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0RMTCkKIAl1aW50IHRlbXBfZGRyZGxsID0gMDsKQEAgLTI5NiwzOCArMjk2LDM4IEBACiAjaWYgIWRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkgLyogTG9jYWxCdXMgU0RSQU0gaXMgbm90IGVtdWxhdGluZyBmbGFzaCAqLwogCWdldF9zeXNfaW5mbygmc3lzaW5mbyk7CiAJLyogaWYgbG9jYWxidXMgZnJlcSBpcyBsZXNzIHRoYW4gNjZNaHosd2UgdXNlIGJ5cGFzcyBtb2RlLG90aGVyd2lzZSB1c2UgRExMICovCi0JaWYoc3lzaW5mby5mcmVxU3lzdGVtQnVzLyhDRkdfTEJDX0xDUlIgJiAweDBmKSA8IDY2MDAwMDAwKSB7Ci0JCWxiYy0+bGNyciA9IChDRkdfTEJDX0xDUlIgJiAweDBmZmZmZmZmKXwgMHg4MDAwMDAwMDsKKwlpZihzeXNpbmZvLmZyZXFTeXN0ZW1CdXMvKENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDBmKSA8IDY2MDAwMDAwKSB7CisJCWxiYy0+bGNyciA9IChDT05GSUdfU1lTX0xCQ19MQ1JSICYgMHgwZmZmZmZmZil8IDB4ODAwMDAwMDA7CiAJfSBlbHNlIHsKICNpZiBkZWZpbmVkKENPTkZJR19NUEM4NXh4X1JFVjEpIC8qIG5lZWQgY2hhbmdlIENMS0RJViBiZWZvcmUgZW5hYmxlIERMTCAqLwogCQlsYmMtPmxjcnIgPSAweDEwMDAwMDA0OyAvKiBkZWZhdWx0IENMS0RJViBpcyA4LCBjaGFuZ2UgaXQgdG8gNCB0ZW1wb3JhcmlseSAqLwogI2VuZGlmCi0JCWxiYy0+bGNyciA9IENGR19MQkNfTENSUiAmIDB4N2ZmZmZmZmY7CisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAweDdmZmZmZmZmOwogCQl1ZGVsYXkoMjAwKTsKIAkJdGVtcF9sYmNkbGwgPSBndXItPmxiY2RsbGNyOwogCQlndXItPmxiY2RsbGNyID0gKCh0ZW1wX2xiY2RsbCAmIDB4ZmYpIDw8IDE2ICkgfCAweDgwMDAwMDAwOwogCQlhc20oInN5bmM7aXN5bmM7bXN5bmMiKTsKIAl9Ci0JbGJjLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsgLyogNjRNQiBTRFJBTSAqLwotCWxiYy0+YnIyID0gQ0ZHX0JSMl9QUkVMSU07Ci0JbGJjLT5sYmNyID0gQ0ZHX0xCQ19MQkNSOwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzE7CisJbGJjLT5vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07IC8qIDY0TUIgU0RSQU0gKi8KKwlsYmMtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKKwlsYmMtPmxiY3IgPSBDT05GSUdfU1lTX0xCQ19MQkNSOworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xOwogCWFzbSgic3luYyIpOwogCSh1bnNpZ25lZCBpbnQpICogKHVsb25nICopMCA9IDB4MDAwMDAwZmY7Ci0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfMjsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfMjsKIAlhc20oInN5bmMiKTsKIAkodW5zaWduZWQgaW50KSAqICh1bG9uZyAqKTAgPSAweDAwMDAwMGZmOwotCWxiYy0+bHNkbXIgPSBDRkdfTEJDX0xTRE1SXzM7CisJbGJjLT5sc2RtciA9IENPTkZJR19TWVNfTEJDX0xTRE1SXzM7CiAJYXNtKCJzeW5jIik7CiAJKHVuc2lnbmVkIGludCkgKiAodWxvbmcgKikwID0gMHgwMDAwMDBmZjsKLQlsYmMtPmxzZG1yID0gQ0ZHX0xCQ19MU0RNUl80OworCWxiYy0+bHNkbXIgPSBDT05GSUdfU1lTX0xCQ19MU0RNUl80OwogCWFzbSgic3luYyIpOwogCSh1bnNpZ25lZCBpbnQpICogKHVsb25nICopMCA9IDB4MDAwMDAwZmY7Ci0JbGJjLT5sc2RtciA9IENGR19MQkNfTFNETVJfNTsKKwlsYmMtPmxzZG1yID0gQ09ORklHX1NZU19MQkNfTFNETVJfNTsKIAlhc20oInN5bmMiKTsKLQlsYmMtPmxzcnQgPSBDRkdfTEJDX0xTUlQ7CisJbGJjLT5sc3J0ID0gQ09ORklHX1NZU19MQkNfTFNSVDsKIAlhc20oInN5bmMiKTsKLQlsYmMtPm1ydHByID0gQ0ZHX0xCQ19NUlRQUjsKKwlsYmMtPm1ydHByID0gQ09ORklHX1NZU19MQkNfTVJUUFI7CiAJYXNtKCJzeW5jIik7CiAjZW5kaWYKICNlbmRpZgpAQCAtMzM4LDcgKzMzOCw3IEBACiAJCSAqIGVuYWJsZSBlcnJvcnMgKi8KIAkJdWludCAqcCA9IDA7CiAJCXVpbnQgaSA9IDA7Ci0JCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkcj0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRERSX0FERFIpOworCQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHI9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUik7CiAJCWRtYV9pbml0KCk7CiAJCWZvciAoKnAgPSAwOyBwIDwgKHVpbnQgKikoOCAqIDEwMjQpOyBwKyspIHsKIAkJCWlmICgoKHVuc2lnbmVkIGludClwICYgMHgxZikgPT0gMCkgeyBkY2J6KHApOyB9CkBAIC0zODEsMTEgKzM4MSwxMSBAQAogfQogCiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKQEAgLTQyMiwxMiArNDIyLDEyIEBACiBsb25nIGludCBmaXhlZF9zZHJhbSAodm9pZCkKIHsKIAotI2RlZmluZSBDRkdfRERSX0NPTlRST0wgMHhjMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MIDB4YzIwMDAwMDAKIAotICAjaWZuZGVmIENGR19SQU1CT09UCi0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisgICNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIpOwogCi0jaWYgKENGR19TRFJBTV9TSVpFID09IDUxMikKKyNpZiAoQ09ORklHX1NZU19TRFJBTV9TSVpFID09IDUxMikKIAlkZHItPmNzMF9ibmRzCQk9IDB4MDAwMDAwMGY7CiAjZWxzZQogCWRkci0+Y3MwX2JuZHMJCT0gMHgwMDAwMDAwNzsKQEAgLTQ1MiwxNCArNDUyLDE0IEBACiAJdWRlbGF5KDUwMCk7CiAgICAgI2lmIGRlZmluZWQgKENPTkZJR19ERFJfRUNDKQogCS8qIEVuYWJsZSBFQ0MgY2hlY2tpbmcgKi8KLQlkZHItPnNkcmFtX2NmZyA9IChDRkdfRERSX0NPTlRST0wgfCAweDIwMDAwMDAwKTsKKwlkZHItPnNkcmFtX2NmZyA9IChDT05GSUdfU1lTX0REUl9DT05UUk9MIHwgMHgyMDAwMDAwMCk7CiAgICAgI2Vsc2UKLQlkZHItPnNkcmFtX2NmZyA9IENGR19ERFJfQ09OVFJPTDsKKwlkZHItPnNkcmFtX2NmZyA9IENPTkZJR19TWVNfRERSX0NPTlRST0w7CiAgICAgI2VuZGlmCiAJYXNtKCJzeW5jOyBpc3luYzsgbXN5bmMiKTsKIAl1ZGVsYXkoNTAwKTsKICAgI2VuZGlmCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfQogI2VuZGlmCS8qICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKSAqLwogCmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NTYwL3RsYi5jIGIvYm9hcmQvc2JjODU2MC90bGIuYwppbmRleCBkMDczMzk5Li5mZTBhYzc2IDEwMDY0NAotLS0gYS9ib2FyZC9zYmM4NTYwL3RsYi5jCisrKyBiL2JvYXJkL3NiYzg1NjAvdGxiLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIC8qIFRMQiBmb3IgQ0NTUkJBUiAoSU1NUikgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19DQ1NSQkFSLCBDRkdfQ0NTUkJBUl9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19DQ1NSQkFSLCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl8xTSwgMSksCiAKQEAgLTQ0LDIwICs0NCwyMCBAQAogCQkgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKICNpZiAhZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSwgQ0ZHX0REUl9TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKICNlbmRpZgogCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl8xNkssIDEpLAogCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJX01FTV9QSFlTLCBDRkdfUENJX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogfTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NiYzg2NDFkL2Rkci5jIGIvYm9hcmQvc2JjODY0MWQvZGRyLmMKaW5kZXggNTE2M2FiZi4uMjM0OTdmOSAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODY0MWQvZGRyLmMKKysrIGIvYm9hcmQvc2JjODY0MWQvZGRyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxpMmMuaD4KIAogI2luY2x1ZGUgPGFzbS9mc2xfZGRyX3NkcmFtLmg+CisjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfZGltbV9wYXJhbXMuaD4KIAogc3RhdGljIHZvaWQKIGdldF9zcGQoZGRyMl9zcGRfZWVwcm9tX3QgKnNwZCwgdW5zaWduZWQgY2hhciBpMmNfYWRkcmVzcykKQEAgLTQ1LDcgKzQ2LDkgQEAKIAl9CiB9CiAKLXZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLCB1bnNpZ25lZCBpbnQgY3RybF9udW0pCit2b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywKKwkJCQlkaW1tX3BhcmFtc190ICpwZGltbSwKKwkJCQl1bnNpZ25lZCBpbnQgY3RybF9udW0pCiB7CiAJLyoKIAkgKiBGYWN0b3JzIHRvIGNvbnNpZGVyIGZvciBjbG9jayBhZGp1c3Q6CmRpZmYgLS1naXQgYS9ib2FyZC9zYmM4NjQxZC9sYXcuYyBiL2JvYXJkL3NiYzg2NDFkL2xhdy5jCmluZGV4IDgwMWM1YjcuLmRlNDdmY2QgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NiYzg2NDFkL2xhdy5jCisrKyBiL2JvYXJkL3NiYzg2NDFkL2xhdy5jCkBAIC00NCwxNSArNDQsMTUgQEAKIAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9ERFJfMSksCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfTUVNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCiAJU0VUX0xBVygweGY4MDAwMDAwLCBMQVdfU0laRV8yTSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX0JBU0UsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJXzEpLAotCVNFVF9MQVcoQ0ZHX1BDSTJfSU9fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTJfSU9fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCiAJU0VUX0xBVygweGZlMDAwMDAwLCBMQVdfU0laRV8zMk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8yKSwKLQlTRVRfTEFXKENGR19SSU9fTUVNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTykKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0REUl8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9SSU8pCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2JjODY0MWQvc2JjODY0MWQuYyBiL2JvYXJkL3NiYzg2NDFkL3NiYzg2NDFkLmMKaW5kZXggNjJiNDhjOC4uMDZkMWQyYSAxMDA2NDQKLS0tIGEvYm9hcmQvc2JjODY0MWQvc2JjODY0MWQuYworKysgYi9ib2FyZC9zYmM4NjQxZC9zYmM4NjQxZC5jCkBAIC02Niw3ICs2Niw3IEBACiAJZHJhbV9zaXplID0gZml4ZWRfc2RyYW0gKCk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAJcHV0cyAoIiAgICBERFI6ICIpOwogCXJldHVybiBkcmFtX3NpemU7CiAjZW5kaWYKQEAgLTgyLDExICs4MiwxMSBAQAogCXJldHVybiBkcmFtX3NpemU7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHV0cyAoIlNEUkFNIHRlc3QgcGhhc2UgMTpcbiIpOwpAQCAtMTIyLDcyICsxMjIsNzIgQEAKICAqLwogbG9uZyBpbnQgZml4ZWRfc2RyYW0gKHZvaWQpCiB7Ci0jaWYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyID0gJmltbWFwLT5pbV9kZHIxOwogCi0JZGRyLT5jczBfYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JZGRyLT5jczFfYm5kcyA9IENGR19ERFJfQ1MxX0JORFM7Ci0JZGRyLT5jczJfYm5kcyA9IENGR19ERFJfQ1MyX0JORFM7Ci0JZGRyLT5jczNfYm5kcyA9IENGR19ERFJfQ1MzX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWRkci0+Y3MxX2NvbmZpZyA9IENGR19ERFJfQ1MxX0NPTkZJRzsKLQlkZHItPmNzMl9jb25maWcgPSBDRkdfRERSX0NTMl9DT05GSUc7Ci0JZGRyLT5jczNfY29uZmlnID0gQ0ZHX0REUl9DUzNfQ09ORklHOwotCWRkci0+dGltaW5nX2NmZ18zID0gQ0ZHX0REUl9USU1JTkdfMzsKLQlkZHItPnRpbWluZ19jZmdfMCA9IENGR19ERFJfVElNSU5HXzA7Ci0JZGRyLT50aW1pbmdfY2ZnXzEgPSBDRkdfRERSX1RJTUlOR18xOwotCWRkci0+dGltaW5nX2NmZ18yID0gQ0ZHX0REUl9USU1JTkdfMjsKLQlkZHItPnNkcmFtX2NmZ18xID0gQ0ZHX0REUl9DRkdfMUE7Ci0JZGRyLT5zZHJhbV9jZmdfMiA9IENGR19ERFJfQ0ZHXzI7Ci0JZGRyLT5zZHJhbV9tb2RlXzEgPSBDRkdfRERSX01PREVfMTsKLQlkZHItPnNkcmFtX21vZGVfMiA9IENGR19ERFJfTU9ERV8yOwotCWRkci0+c2RyYW1fbW9kZV9jbnRsID0gQ0ZHX0REUl9NT0RFX0NUTDsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlkZHItPnNkcmFtX2RhdGFfaW5pdCA9IENGR19ERFJfREFUQV9JTklUOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSX0NMS19DVFJMOworCWRkci0+Y3MwX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUzsKKwlkZHItPmNzMV9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MxX0JORFM7CisJZGRyLT5jczJfYm5kcyA9IENPTkZJR19TWVNfRERSX0NTMl9CTkRTOworCWRkci0+Y3MzX2JuZHMgPSBDT05GSUdfU1lTX0REUl9DUzNfQk5EUzsKKwlkZHItPmNzMF9jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHOworCWRkci0+Y3MxX2NvbmZpZyA9IENPTkZJR19TWVNfRERSX0NTMV9DT05GSUc7CisJZGRyLT5jczJfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MyX0NPTkZJRzsKKwlkZHItPmNzM19jb25maWcgPSBDT05GSUdfU1lTX0REUl9DUzNfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzM7CisJZGRyLT50aW1pbmdfY2ZnXzAgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMDsKKwlkZHItPnRpbWluZ19jZmdfMSA9IENPTkZJR19TWVNfRERSX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzI7CisJZGRyLT5zZHJhbV9jZmdfMSA9IENPTkZJR19TWVNfRERSX0NGR18xQTsKKwlkZHItPnNkcmFtX2NmZ18yID0gQ09ORklHX1NZU19ERFJfQ0ZHXzI7CisJZGRyLT5zZHJhbV9tb2RlXzEgPSBDT05GSUdfU1lTX0REUl9NT0RFXzE7CisJZGRyLT5zZHJhbV9tb2RlXzIgPSBDT05GSUdfU1lTX0REUl9NT0RFXzI7CisJZGRyLT5zZHJhbV9tb2RlX2NudGwgPSBDT05GSUdfU1lTX0REUl9NT0RFX0NUTDsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFJfSU5URVJWQUw7CisJZGRyLT5zZHJhbV9kYXRhX2luaXQgPSBDT05GSUdfU1lTX0REUl9EQVRBX0lOSVQ7CisJZGRyLT5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DVFJMOwogCiAJYXNtICgic3luYztpc3luYyIpOwogCiAJdWRlbGF5ICg1MDApOwogCi0JZGRyLT5zZHJhbV9jZmdfMSA9IENGR19ERFJfQ0ZHXzFCOworCWRkci0+c2RyYW1fY2ZnXzEgPSBDT05GSUdfU1lTX0REUl9DRkdfMUI7CiAJYXNtICgic3luYzsgaXN5bmMiKTsKIAogCXVkZWxheSAoNTAwKTsKIAlkZHIgPSAmaW1tYXAtPmltX2RkcjI7CiAKLQlkZHItPmNzMF9ibmRzID0gQ0ZHX0REUjJfQ1MwX0JORFM7Ci0JZGRyLT5jczFfYm5kcyA9IENGR19ERFIyX0NTMV9CTkRTOwotCWRkci0+Y3MyX2JuZHMgPSBDRkdfRERSMl9DUzJfQk5EUzsKLQlkZHItPmNzM19ibmRzID0gQ0ZHX0REUjJfQ1MzX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUjJfQ1MwX0NPTkZJRzsKLQlkZHItPmNzMV9jb25maWcgPSBDRkdfRERSMl9DUzFfQ09ORklHOwotCWRkci0+Y3MyX2NvbmZpZyA9IENGR19ERFIyX0NTMl9DT05GSUc7Ci0JZGRyLT5jczNfY29uZmlnID0gQ0ZHX0REUjJfQ1MzX0NPTkZJRzsKLQlkZHItPnRpbWluZ19jZmdfMyA9IENGR19ERFIyX0VYVF9SRUZSRVNIOwotCWRkci0+dGltaW5nX2NmZ18wID0gQ0ZHX0REUjJfVElNSU5HXzA7Ci0JZGRyLT50aW1pbmdfY2ZnXzEgPSBDRkdfRERSMl9USU1JTkdfMTsKLQlkZHItPnRpbWluZ19jZmdfMiA9IENGR19ERFIyX1RJTUlOR18yOwotCWRkci0+c2RyYW1fY2ZnXzEgPSBDRkdfRERSMl9DRkdfMUE7Ci0JZGRyLT5zZHJhbV9jZmdfMiA9IENGR19ERFIyX0NGR18yOwotCWRkci0+c2RyYW1fbW9kZV8xID0gQ0ZHX0REUjJfTU9ERV8xOwotCWRkci0+c2RyYW1fbW9kZV8yID0gQ0ZHX0REUjJfTU9ERV8yOwotCWRkci0+c2RyYW1fbW9kZV9jbnRsID0gQ0ZHX0REUjJfTU9ERV9DVEw7Ci0JZGRyLT5zZHJhbV9pbnRlcnZhbCA9IENGR19ERFIyX0lOVEVSVkFMOwotCWRkci0+c2RyYW1fZGF0YV9pbml0ID0gQ0ZHX0REUjJfREFUQV9JTklUOwotCWRkci0+c2RyYW1fY2xrX2NudGwgPSBDRkdfRERSMl9DTEtfQ1RSTDsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFIyX0NTMF9CTkRTOworCWRkci0+Y3MxX2JuZHMgPSBDT05GSUdfU1lTX0REUjJfQ1MxX0JORFM7CisJZGRyLT5jczJfYm5kcyA9IENPTkZJR19TWVNfRERSMl9DUzJfQk5EUzsKKwlkZHItPmNzM19ibmRzID0gQ09ORklHX1NZU19ERFIyX0NTM19CTkRTOworCWRkci0+Y3MwX2NvbmZpZyA9IENPTkZJR19TWVNfRERSMl9DUzBfQ09ORklHOworCWRkci0+Y3MxX2NvbmZpZyA9IENPTkZJR19TWVNfRERSMl9DUzFfQ09ORklHOworCWRkci0+Y3MyX2NvbmZpZyA9IENPTkZJR19TWVNfRERSMl9DUzJfQ09ORklHOworCWRkci0+Y3MzX2NvbmZpZyA9IENPTkZJR19TWVNfRERSMl9DUzNfQ09ORklHOworCWRkci0+dGltaW5nX2NmZ18zID0gQ09ORklHX1NZU19ERFIyX0VYVF9SRUZSRVNIOworCWRkci0+dGltaW5nX2NmZ18wID0gQ09ORklHX1NZU19ERFIyX1RJTUlOR18wOworCWRkci0+dGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFIyX1RJTUlOR18xOworCWRkci0+dGltaW5nX2NmZ18yID0gQ09ORklHX1NZU19ERFIyX1RJTUlOR18yOworCWRkci0+c2RyYW1fY2ZnXzEgPSBDT05GSUdfU1lTX0REUjJfQ0ZHXzFBOworCWRkci0+c2RyYW1fY2ZnXzIgPSBDT05GSUdfU1lTX0REUjJfQ0ZHXzI7CisJZGRyLT5zZHJhbV9tb2RlXzEgPSBDT05GSUdfU1lTX0REUjJfTU9ERV8xOworCWRkci0+c2RyYW1fbW9kZV8yID0gQ09ORklHX1NZU19ERFIyX01PREVfMjsKKwlkZHItPnNkcmFtX21vZGVfY250bCA9IENPTkZJR19TWVNfRERSMl9NT0RFX0NUTDsKKwlkZHItPnNkcmFtX2ludGVydmFsID0gQ09ORklHX1NZU19ERFIyX0lOVEVSVkFMOworCWRkci0+c2RyYW1fZGF0YV9pbml0ID0gQ09ORklHX1NZU19ERFIyX0RBVEFfSU5JVDsKKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFIyX0NMS19DVFJMOwogCiAJYXNtICgic3luYztpc3luYyIpOwogCiAJdWRlbGF5ICg1MDApOwogCi0JZGRyLT5zZHJhbV9jZmdfMSA9IENGR19ERFIyX0NGR18xQjsKKwlkZHItPnNkcmFtX2NmZ18xID0gQ09ORklHX1NZU19ERFIyX0NGR18xQjsKIAlhc20gKCJzeW5jOyBpc3luYyIpOwogCiAJdWRlbGF5ICg1MDApOwogI2VuZGlmCi0JcmV0dXJuIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQ7CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0OwogfQogI2VuZGlmCQkJCS8qICFkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKSAqLwogCkBAIC0yMjIsNyArMjIyLDcgQEAKIAogdm9pZCBwY2lfaW5pdF9ib2FyZCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0NDU1JCQVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0NDU1JCQVI7CiAJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gJmltbWFwLT5pbV9ndXI7CiAJdWludCBkZXZkaXNyID0gZ3VyLT5kZXZkaXNyOwogCXVpbnQgaW9fc2VsID0gKGd1ci0+cG9yZGV2c3IgJiBNUEM4NjQxX1BPUkRFVlNSX0lPX1NFTCkKQEAgLTIzMCw3ICsyMzAsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BDSTEKIHsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENGR19QQ0kxX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9mc2xfcGNpX3QgKnBjaSA9IChjY3NyX2ZzbF9wY2lfdCAqKSBDT05GSUdfU1lTX1BDSTFfQUREUjsKIAlleHRlcm4gdm9pZCBmc2xfcGNpX2luaXQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpMV9ob3NlOwogI2lmZGVmIERFQlVHCkBAIC0yNTIsMjMgKzI1MiwyMyBAQAogCiAJCS8qIGluYm91bmQgKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfQlVTLAotCQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFLAogCQkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fUEhZUywKLQkJCSAgICAgICBDRkdfUENJMV9NRU1fU0laRSwKKwkJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkJICAgICAgIENPTkZJR19TWVNfUENJMV9NRU1fU0laRSwKIAkJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkgICAgICAgQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJCSAgICAgICBDRkdfUENJMV9JT19QSFlTLAotCQkJICAgICAgIENGR19QQ0kxX0lPX1NJWkUsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTI5MiwzMCArMjkyLDMwIEBACiAKICNpZmRlZiBDT05GSUdfUENJMgogewotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKikgQ0ZHX1BDSTJfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopIENPTkZJR19TWVNfUENJMl9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2kyX2hvc2U7CiAKIAogCS8qIGluYm91bmQgKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJICAgICAgIENGR19QQ0lfTUVNT1JZX0JVUywKLQkJICAgICAgIENGR19QQ0lfTUVNT1JZX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTSB8IFBDSV9SRUdJT05fTUVNT1JZKTsKIAogCS8qIG91dGJvdW5kIG1lbW9yeSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0kyX01FTV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogb3V0Ym91bmQgaW8gKi8KIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0kyX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMl9JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKZGlmZiAtLWdpdCBhL2JvYXJkL3NjMy9zYzNuYW5kLmMgYi9ib2FyZC9zYzMvc2MzbmFuZC5jCmluZGV4IDQ1ZWZmMjguLjYyYjQwZjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NjMy9zYzNuYW5kLmMKKysrIGIvYm9hcmQvc2MzL3NjM25hbmQuYwpAQCAtNzcsNyArNzcsNyBAQAogewogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKIAotCXNjM19pb19iYXNlID0gKHZvaWQgKikgQ0ZHX05BTkRfQkFTRTsKKwlzYzNfaW9fYmFzZSA9ICh2b2lkICopIENPTkZJR19TWVNfTkFORF9CQVNFOwogCS8qIFNldCBhZGRyZXNzIG9mIE5BTkQgSU8gbGluZXMgKFVzaW5nIExpbmVhciBEYXRhIEFjY2VzcyBSZWdpb24pICovCiAJbmFuZC0+SU9fQUREUl9SID0gKHZvaWQgX19pb21lbSAqKSBzYzNfaW9fYmFzZTsKIAluYW5kLT5JT19BRERSX1cgPSAodm9pZCBfX2lvbWVtICopIHNjM19pb19iYXNlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2M1MjBfY2RwL2ZsYXNoLmMgYi9ib2FyZC9zYzUyMF9jZHAvZmxhc2guYwppbmRleCA0OTNkNTFhLi5kY2I4YzU3IDEwMDY0NAotLS0gYS9ib2FyZC9zYzUyMF9jZHAvZmxhc2guYworKysgYi9ib2FyZC9zYzUyMF9jZHAvZmxhc2guYwpAQCAtMjIyLDcgKzIyMiw3IEBACiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAJCWludCBzZWN0c2l6ZSA9IDA7CiAKLQkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaGJhc2UgPSBTQzUyMF9GTEFTSF9CQU5LMF9CQVNFOwpAQCAtMzcwLDcgKzM3MCw3IEBACiAJd2hpbGUgKCgoKih2b2xhdGlsZSB1MzIqKShhZGRyICsgc2VjdG9yKSkgJiAweDgwODA4MDgwKSAhPSAweDgwODA4MDgwKSB7CiAKIAkJZWxhcHNlZCArPSAqKHZvbGF0aWxlIHUxNiopKDB4ZmZmZWYwMDArU0M1MjBfU1dUTVJNSUxMSSk7Ci0JCWlmIChlbGFwc2VkID4gKChDRkdfRkxBU0hfRVJBU0VfVE9VVC9DRkdfSFopICogMTAwMCkpIHsKKwkJaWYgKGVsYXBzZWQgPiAoKENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVC9DT05GSUdfU1lTX0haKSAqIDEwMDApKSB7CiAJCQkqKHZvbGF0aWxlIHUzMiopKGFkZHIpID0gMHhmMGYwZjBmMDsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00OTMsNyArNDkzLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJd2hpbGUgKChkZXN0MlswXSAmIDB4ODA4MDgwODApICE9IChkYXRhMlswXSAmIDB4ODA4MDgwODApKSB7CiAJCWVsYXBzZWQgKz0gKih2b2xhdGlsZSB1MTYqKSgweGZmZmVmMDAwK1NDNTIwX1NXVE1STUlMTEkpOwotCQlpZiAoZWxhcHNlZCA+ICgoQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQvQ0ZHX0haKSAqIDEwMDApKSB7CisJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJYWRkcjJbMF0gPSAweGYwZjBmMGYwOwogCQkJcmV0dXJuIDE7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3NjNTIwX2NkcC9mbGFzaF9vbGQuYyBiL2JvYXJkL3NjNTIwX2NkcC9mbGFzaF9vbGQuYwppbmRleCBiNjg2MjZlLi45NDkxY2EyIDEwMDY0NAotLS0gYS9ib2FyZC9zYzUyMF9jZHAvZmxhc2hfb2xkLmMKKysrIGIvYm9hcmQvc2M1MjBfY2RwL2ZsYXNoX29sZC5jCkBAIC04OSw3ICs4OSw3IEBACiAJCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IDA7CiAJCQlzZWN0c2l6ZT0wOwogCQl9Ci0JCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hiYXNlID0gU0M1MjBfRkxBU0hfQkFOSzBfQkFTRTsKQEAgLTI0MCw3ICsyNDAsNyBAQAogCQkJCXJlc3VsdCA9IHJlYWRsKGFkZHIpOwogCiAJCQkJLyogY2hlY2sgdGltZW91dCAqLwotCQkJCWlmIChnZXRfdGltZXIoMCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXIoMCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJd3JpdGVsKENNRF9SRUFEX0FSUkFZLCBhZGRyICsgMSk7CiAJCQkJCWNoaXAxID0gVE1POwogCQkJCQlicmVhazsKQEAgLTM0Miw3ICszNDIsNyBAQAogCQlyZXN1bHQgPSByZWFkbChhZGRyKTsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXIoMCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKDApID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQljaGlwMSA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9zYzUyMF9jZHAvc2M1MjBfY2RwLmMgYi9ib2FyZC9zYzUyMF9jZHAvc2M1MjBfY2RwLmMKaW5kZXggOTlkZWJkZS4uNzc5Zjk1NyAxMDA2NDQKLS0tIGEvYm9hcmQvc2M1MjBfY2RwL3NjNTIwX2NkcC5jCisrKyBiL2JvYXJkL3NjNTIwX2NkcC9zYzUyMF9jZHAuYwpAQCAtODcsNyArODcsNyBAQAogCXdyaXRlX21tY3JfYnl0ZShTQzUyMF9JQ0VNQVAsIFNDNTIwX0lSUTEpOyAgICAgICAgICAgICAgLyogU2V0IElDRSBEZWJ1ZyBTZXJpZWxwb3J0IElOVCB0byBJUlExICovCiAJd3JpdGVfbW1jcl9ieXRlKFNDNTIwX0ZFUlJNQVAsU0M1MjBfSVJRMTMpOyAgICAgICAgICAgICAvKiBTZXQgRlAgZXJyb3IgSU5UIHRvIElSUTEzICovCiAKLQlpZiAoQ0ZHX1VTRV9TSU9fVUFSVCkgeworCWlmIChDT05GSUdfU1lTX1VTRV9TSU9fVUFSVCkgewogCQl3cml0ZV9tbWNyX2J5dGUoU0M1MjBfVUFSVDFNQVAsIFNDNTIwX0lSUV9ESVNBQkxFRCk7IC8qIGRpc2FibGUgaW50ZXJuYWwgVUFSVDEgSU5UICovCiAJCXdyaXRlX21tY3JfYnl0ZShTQzUyMF9VQVJUMk1BUCwgU0M1MjBfSVJRX0RJU0FCTEVEKTsgLyogZGlzYWJsZSBpbnRlcm5hbCBVQVJUMiBJTlQgKi8KIAkJd3JpdGVfbW1jcl9ieXRlKFNDNTIwX0dQM0lNQVAsIFNDNTIwX0lSUTMpOyAgICAgICAgICAvKiBTZXQgR1BJUlEzIChJU0EgSVJRMykgdG8gSVJRMyAqLwpAQCAtMTIyLDEwICsxMjIsMTAgQEAKIAkgKiB3aGVuIHdlIG5lZWQgb25lIChhIGJvYXJkIHdpdGggbW9yZSBwY2kgaW50ZXJydXB0IHBpbnMKIAkgKiB3b3VsZCB1c2UgYSBsYXJnZXIgdGFibGUgKi8KIAlzdGF0aWMgaW50IGlycV9saXN0W10gPSB7Ci0JCUNGR19GSVJTVF9QQ0lfSVJRLAotCQlDRkdfU0VDT05EX1BDSV9JUlEsCi0JCUNGR19USElSRF9QQ0lfSVJRLAotCQlDRkdfRk9SVEhfUENJX0lSUQorCQlDT05GSUdfU1lTX0ZJUlNUX1BDSV9JUlEsCisJCUNPTkZJR19TWVNfU0VDT05EX1BDSV9JUlEsCisJCUNPTkZJR19TWVNfVEhJUkRfUENJX0lSUSwKKwkJQ09ORklHX1NZU19GT1JUSF9QQ0lfSVJRCiAJfTsKIAlzdGF0aWMgaW50IG5leHRfaXJxX2luZGV4PTA7CiAKQEAgLTI3OSw3ICsyNzksNyBAQAogCiAJYXNtICgid2JpbnZkXG4iKTsgLyogRmx1c2ggY2FjaGUsIHJlcS4gYWZ0ZXIgc2V0dGluZyB0aGUgdW5jaGFjaGVkIGF0dHJpYnV0ZSBvbmEgUEFSICovCiAKLQlpZiAoQ0ZHX1VTRV9TSU9fVUFSVCkgeworCWlmIChDT05GSUdfU1lTX1VTRV9TSU9fVUFSVCkgewogCQl3cml0ZV9tbWNyX2J5dGUoU0M1MjBfQUREREVDQ1RMLCByZWFkX21tY3JfYnl0ZShTQzUyMF9BRERERUNDVEwpIHwgVUFSVDJfRElTfFVBUlQxX0RJUyk7CiAJCXNldHVwX2FsaV9zaW8oMSk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2JvYXJkL3NjNTIwX3NwdW5rL2ZsYXNoLmMgYi9ib2FyZC9zYzUyMF9zcHVuay9mbGFzaC5jCmluZGV4IDYwOWNjNDIuLmQ3MDIwNDYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NjNTIwX3NwdW5rL2ZsYXNoLmMKKysrIGIvYm9hcmQvc2M1MjBfc3B1bmsvZmxhc2guYwpAQCAtMjI4LDcgKzIyOCw3IEBACiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAJCWludCBzZWN0c2l6ZSA9IDA7CiAKLQkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJbWVtc2V0KGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CiAJCXN3aXRjaCAoaSkgewogCQljYXNlIDA6CiAJCQlmbGFzaGJhc2UgPSBTQzUyMF9GTEFTSF9CQU5LMF9CQVNFOwpAQCAtNDE5LDcgKzQxOSw3IEBACiAJd2hpbGUgKCgoKih2b2xhdGlsZSB1MTYqKShhZGRyICsgc2VjdG9yKSkgJiAweDAwODApICE9IDB4MDA4MCkgewogCiAJCWVsYXBzZWQgKz0gKih2b2xhdGlsZSB1MTYqKSgweGZmZmVmMDAwK1NDNTIwX1NXVE1STUlMTEkpOwotCQlpZiAoZWxhcHNlZCA+ICgoQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQvQ0ZHX0haKSAqIDEwMDApKSB7CisJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJKih2b2xhdGlsZSB1MTYqKShhZGRyKSA9IDB4MDBmMDsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NjcsNyArNDY3LDcgQEAKIAllbGFwc2VkID0gMDsKIAl3aGlsZSAoKCgqKHZvbGF0aWxlIHUxNiopKGFkZHIgKyBzZWN0b3IpKSAmIDB4MDA4MCkgIT0gMHgwMDgwKSB7CiAJCWVsYXBzZWQgKz0gKih2b2xhdGlsZSB1MTYqKSgweGZmZmVmMDAwK1NDNTIwX1NXVE1STUlMTEkpOwotCQlpZiAoZWxhcHNlZCA+ICgoQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQvQ0ZHX0haKSAqIDEwMDApKSB7CisJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJKih2b2xhdGlsZSB1MTYqKShhZGRyICsgc2VjdG9yKSA9IDB4MDBCMDsgIC8qIHN1c3BlbmQgZXJhc2UgICAgICAqLwogCQkJKih2b2xhdGlsZSB1MTYqKShhZGRyICsgc2VjdG9yKSA9IDB4MDBGRjsgIC8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuIDE7CkBAIC02MDIsNyArNjAyLDcgQEAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQl3aGlsZSAoKGRlc3QyW2ldICYgMHgwMDgwKSAhPSAoZGF0YTJbaV0gJiAweDAwODApKSB7CiAJCQllbGFwc2VkICs9ICoodm9sYXRpbGUgdTE2KikoMHhmZmZlZjAwMCtTQzUyMF9TV1RNUk1JTExJKTsKLQkJCWlmIChlbGFwc2VkID4gKChDRkdfRkxBU0hfV1JJVEVfVE9VVC9DRkdfSFopICogMTAwMCkpIHsKKwkJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJCWFkZHIyW2ldID0gMHgwMGYwOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtNjM5LDcgKzYzOSw3IEBACiAJCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAkJd2hpbGUgKCgqKHZvbGF0aWxlIHUxNiopZGVzdCAmIDB4MDA4MCkgIT0gMHgwMDgwKSB7CiAJCQllbGFwc2VkICs9ICoodm9sYXRpbGUgdTE2KikoMHhmZmZlZjAwMCtTQzUyMF9TV1RNUk1JTExJKTsKLQkJCWlmIChlbGFwc2VkID4gKChDRkdfRkxBU0hfV1JJVEVfVE9VVC9DRkdfSFopICogMTAwMCkpIHsKKwkJCWlmIChlbGFwc2VkID4gKChDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQvQ09ORklHX1NZU19IWikgKiAxMDAwKSkgewogCQkJCSoodm9sYXRpbGUgdTE2KilkZXN0ID0gMHgwMGZmOwogCQkJCXJldHVybiAxOwogCQkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2M1MjBfc3B1bmsvc2M1MjBfc3B1bmsuYyBiL2JvYXJkL3NjNTIwX3NwdW5rL3NjNTIwX3NwdW5rLmMKaW5kZXggMGIxMWNhYS4uZDNiZDg2OSAxMDA2NDQKLS0tIGEvYm9hcmQvc2M1MjBfc3B1bmsvc2M1MjBfc3B1bmsuYworKysgYi9ib2FyZC9zYzUyMF9zcHVuay9zYzUyMF9zcHVuay5jCkBAIC0xMDUsMTAgKzEwNSwxMCBAQAogCSAqIHdoZW4gd2UgbmVlZCBvbmUgKGEgYm9hcmQgd2l0aCBtb3JlIHBjaSBpbnRlcnJ1cHQgcGlucwogCSAqIHdvdWxkIHVzZSBhIGxhcmdlciB0YWJsZSAqLwogCXN0YXRpYyBpbnQgaXJxX2xpc3RbXSA9IHsKLQkJQ0ZHX0ZJUlNUX1BDSV9JUlEsCi0JCUNGR19TRUNPTkRfUENJX0lSUSwKLQkJQ0ZHX1RISVJEX1BDSV9JUlEsCi0JCUNGR19GT1JUSF9QQ0lfSVJRCisJCUNPTkZJR19TWVNfRklSU1RfUENJX0lSUSwKKwkJQ09ORklHX1NZU19TRUNPTkRfUENJX0lSUSwKKwkJQ09ORklHX1NZU19USElSRF9QQ0lfSVJRLAorCQlDT05GSUdfU1lTX0ZPUlRIX1BDSV9JUlEKIAl9OwogCXN0YXRpYyBpbnQgbmV4dF9pcnFfaW5kZXg9MDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2NiOTMyOC9mbGFzaC5jIGIvYm9hcmQvc2NiOTMyOC9mbGFzaC5jCmluZGV4IDUzNjcyNWEuLmM2Zjk0YWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NjYjkzMjgvZmxhc2guYworKysgYi9ib2FyZC9zY2I5MzI4L2ZsYXNoLmMKQEAgLTgyLDcgKzgyLDcgQEAKICNlbmRpZgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBzdGF0aWMgRkxBU0hfQlVTX1JFVCBmbGFzaF9zdGF0dXNfcmVnICh2b2lkKQogewpAQCAtMTA5LDcgKzEwOSw3IEBACiAJcmV0dXJuIG9rOwogfQogCi0jaWYgKCBDRkdfTUFYX0ZMQVNIX0JBTktTICE9IDEgKQorI2lmICggQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgIT0gMSApCiAjICBlcnJvciAiU0NCOTMyOCBwbGF0Zm9ybSBoYXMgb25seSBvbmUgZmxhc2ggYmFuayEiCiAjZW5kaWYKIApAQCAtMTIwLDExICsxMjAsMTEgQEAKIAl1bnNpZ25lZCBsb25nIGFkZHJlc3MgPSBTQ0I5MzI4X0ZMQVNIX0JBU0U7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBTQ0I5MzI4X0ZMQVNIX0JBTktfU0laRTsKLQlmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwlmbGFzaF9pbmZvWzBdLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9IElOVEVMX01BTlVGQUNUOwotCW1lbXNldCAoZmxhc2hfaW5mb1swXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCW1lbXNldCAoZmxhc2hfaW5mb1swXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX1NFQ1Q7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOyBpKyspIHsKIAkJZmxhc2hfaW5mb1swXS5zdGFydFtpXSA9IGFkZHJlc3M7CiAjaWZkZWYgU0NCOTMyOF9GTEFTSF9VTkxPQ0sKIAkJLyogU29tZSBkZXZpY2VzIGFyZSBodyBsb2NrZWQgYWZ0ZXIgc3RhcnQuICovCkBAIC0xMzcsOCArMTM3LDggQEAKIAl9CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJCSAgIENGR19GTEFTSF9CQVNFLAotCQkJCSAgIENGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJCSAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCQkgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkJICAgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKQEAgLTIwOSw3ICsyMDksNyBAQAogCiAJCSphZGRyZXNzID0gRkxBU0hfQ01EIChDRklfSU5URUxfQ01EX0JMT0NLX0VSQVNFKTsKIAkJKmFkZHJlc3MgPSBGTEFTSF9DTUQgKENGSV9JTlRFTF9DTURfQ09ORklSTSk7Ci0JCWlmIChmbGFzaF9yZWFkeSAoQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpKSB7CisJCWlmIChmbGFzaF9yZWFkeSAoQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSkgewogCQkJKmFkZHJlc3MgPSBGTEFTSF9DTUQgKENGSV9JTlRFTF9DTURfQ0xFQVJfU1RBVFVTX1JFR0lTVEVSKTsKIAkJCXByaW50ZiAoIm9rLlxuIik7CiAJCX0gZWxzZSB7CkBAIC0yNTcsNyArMjU3LDcgQEAKIAkqYWRkcmVzcyA9IEZMQVNIX0NNRCAoQ0ZJX0lOVEVMX0NNRF9QUk9HUkFNMSk7CiAJKmFkZHJlc3MgPSBkYXRhOwogCi0JaWYgKCFmbGFzaF9yZWFkeSAoQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpKSB7CisJaWYgKCFmbGFzaF9yZWFkeSAoQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSkgewogCQkqYWRkcmVzcyA9IEZMQVNIX0NNRCAoQ0ZJX0lOVEVMX0NNRF9TVVNQRU5EKTsKIAkJcmMgPSBFUlJfVElNT1VUOwogCQlwcmludGYgKCJ0aW1lb3V0ISBBYm9ydGluZy4uLlxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9zY2I5MzI4L2xvd2xldmVsX2luaXQuUyBiL2JvYXJkL3NjYjkzMjgvbG93bGV2ZWxfaW5pdC5TCmluZGV4IGJhM2I2ZDIuLjhlNmE0OWUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NjYjkzMjgvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL3NjYjkzMjgvbG93bGV2ZWxfaW5pdC5TCkBAIC0yOSwxMyArMjksMTMgQEAKIAogLyogQ2hhbmdlIFBFUkNMSzFESVYgdG8gMTQgaWUgMTQrMSAqLwogCWxkcgkJcjAsCT1QQ0RSCi0JbGRyCQlyMSwJPUNGR19QQ0RSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BDRFJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIC8qIHNldCBNQ1UgUExMIENvbnRyb2wgUmVnaXN0ZXIgMCAqLwogCiAJbGRyCQlyMCwJPU1QQ1RMMAotCWxkcgkJcjEsCT1DRkdfTVBDVEwwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX01QQ1RMMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogLyogc2V0IG1wbGwgcmVzdGFydCBiaXQgKi8KQEAgLTU3LDcgKzU3LDcgQEAKIC8qIHNldCBTeXN0ZW0gUExMIENvbnRyb2wgUmVnaXN0ZXIgMCAqLwogCiAJbGRyCQlyMCwJPVNQQ1RMMAotCWxkcgkJcjEsCT1DRkdfU1BDVEwwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1NQQ1RMMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogLyogc2V0IHNwbGwgcmVzdGFydCBiaXQgKi8KQEAgLTc3LDcgKzc3LDcgQEAKIAlibmUJCTFiCiAKIAlsZHIJCXIwLCAgID1DU0NSCi0JbGRyCQlyMSwgICA9Q0ZHX0NTQ1JfVkFMCisJbGRyCQlyMSwgICA9Q09ORklHX1NZU19DU0NSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKiBJIGhhdmUgbm93IHJlYWQgdGhlIEFSTTkyMCBEYXRhU2hlZXQgYmFjay10by1CYWNrLCBhbmQgaGF2ZSBzdHVtYmxlZCB1cG9uCkBAIC0xMDIsNjUgKzEwMiw2NSBAQAogCU1DUiBwMTUsMCxyMCxjMSxjMCwwCiAKIAlsZHIJCXIwLAk9R1BSKDApCi0JbGRyCQlyMSwJPUNGR19HUFJfQV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFJfQV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HSVVTKDApCi0JbGRyCQlyMSwJPUNGR19HSVVTX0FfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0lVU19BX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKiBDUzMgYmVjb21lcyBDUzMgYnkgY2xlYXJpbmcgcmVzZXQgZGVmYXVsdCBiaXQgMSBpbiBGTUNSICovCiAKIAlsZHIJCXIwLAk9Rk1DUgotCWxkcgkJcjEsCT1DRkdfRk1DUl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19GTUNSX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTMFUKLQlsZHIJCXIxLAk9Q0ZHX0NTMFVfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MwVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzBMCi0JbGRyCQlyMSwJPUNGR19DUzBMX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTMExfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1MxVQotCWxkcgkJcjEsCT1DRkdfQ1MxVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzFVX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTMUwKLQlsZHIJCXIxLAk9Q0ZHX0NTMUxfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MxTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzJVCi0JbGRyCQlyMSwJPUNGR19DUzJVX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTMlVfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1MyTAotCWxkcgkJcjEsCT1DRkdfQ1MyTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzJMX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTM1UKLQlsZHIJCXIxLAk9Q0ZHX0NTM1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1MzVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzNMCi0JbGRyCQlyMSwJPUNGR19DUzNMX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTM0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1M0VQotCWxkcgkJcjEsCT1DRkdfQ1M0VV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzRVX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUNTNEwKLQlsZHIJCXIxLAk9Q0ZHX0NTNExfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfQ1M0TF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1DUzVVCi0JbGRyCQlyMSwJPUNGR19DUzVVX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0NTNVVfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9Q1M1TAotCWxkcgkJcjEsCT1DRkdfQ1M1TF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19DUzVMX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAvKiBTRFJBTSBTZXR1cCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2g3NzYzcmRwL3NoNzc2M3JkcC5jIGIvYm9hcmQvc2g3NzYzcmRwL3NoNzc2M3JkcC5jCmluZGV4IDkyYWM3YjcuLjg4YmFiNzAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NoNzc2M3JkcC9zaDc3NjNyZHAuYworKysgYi9ib2FyZC9zaDc3NjNyZHAvc2g3NzYzcmRwLmMKQEAgLTY2LDkgKzY2LDkgQEAKIHsKIAlERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDRkdfU0RSQU1fQkFTRTsKLQlnZC0+YmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKLQlwcmludGYoIkRSQU06ICAlZE1CXG4iLCBDRkdfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOworCWdkLT5iZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJZ2QtPmJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENPTkZJR19TWVNfU0RSQU1fU0laRSAvICgxMDI0ICogMTAyNCkpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9zaDc3ODVsY3Ivc2g3Nzg1bGNyLmMgYi9ib2FyZC9zaDc3ODVsY3Ivc2g3Nzg1bGNyLmMKaW5kZXggNjZiMjFmOC4uNzg2Yzc1OCAxMDA2NDQKLS0tIGEvYm9hcmQvc2g3Nzg1bGNyL3NoNzc4NWxjci5jCisrKyBiL2JvYXJkL3NoNzc4NWxjci9zaDc3ODVsY3IuYwpAQCAtMzgsOSArMzgsOSBAQAogewogCURFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0JZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENGR19TRFJBTV9CQVNFOwotCWdkLT5iZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCXByaW50ZigiRFJBTTogICVkTUJcbiIsIENGR19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CisJZ2QtPmJkLT5iaV9tZW1zdGFydCA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKKwlnZC0+YmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJcHJpbnRmKCJEUkFNOiAgJWRNQlxuIiwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC8gKDEwMjQgKiAxMDI0KSk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3NoYW5ub24vZmxhc2guYyBiL2JvYXJkL3NoYW5ub24vZmxhc2guYwppbmRleCA3ZDZlY2E4Li4wNDU1YWZhIDEwMDY0NAotLS0gYS9ib2FyZC9zaGFubm9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvc2hhbm5vbi9mbGFzaC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRSAweDQwMDAwMAkvKiA0IE1CICovCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDIwMDAwCQkvKiAxMjggS0IgKi8KIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogI2RlZmluZSBDTURfUkVBRF9BUlJBWQkJMHgwMEYwMDBGMApAQCAtNDEsOCArNDEsOCBAQAogI2RlZmluZSBDTURfUFJPR1JBTQkJMHgwMEEwMDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMjAwMDIwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MzIgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAyKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTMyICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUEgPDwgMikpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAyKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDIpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDgwMDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDA4MDAwODAKQEAgLTYxLDE1ICs2MSwxNSBAQAogICAgIGludCBpLCBqOwogICAgIHVsb25nIHNpemUgPSAwOwogCi0gICAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKICAgICB7CiAJdWxvbmcgZmxhc2hiYXNlID0gMDsKIAlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0KIAkgIChBTURfTUFOVUZBQ1QgJiBGTEFTSF9WRU5ETUFTSykgfAogCSAgKEFNRF9JRF9MVjE2MEIgJiBGTEFTSF9UWVBFTUFTSyk7CiAJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOwotCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOworCW1lbXNldChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCWlmIChpID09IDApCiAJICBmbGFzaGJhc2UgPSBQSFlTX0ZMQVNIXzE7CiAJZWxzZQpAQCAtMTEyLDE5ICsxMTIsMTkgQEAKICNpZmRlZiBDT05GSUdfSU5GRVJOTwogICAgIC8qIGZpcnN0IG9uZSwgMHgwMDAwMCB0byAweDA3ZmZmICovCiAgICAgZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgIENGR19GTEFTSF9CQVNFICsgMHgwMDAwMCwKLQkJICBDRkdfRkxBU0hfQkFTRSArIDB4MDgwMDAgLSAxLAorCQkgIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwMDAsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwODAwMCAtIDEsCiAJCSAgJmZsYXNoX2luZm9bMF0pOwogCiAgICAgLyogdGhpcmQgdG8gMTB0aCwgMHgwYzAwMCAtIDB4ZGZmZmYgKi8KICAgICBmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgQ0ZHX0ZMQVNIX0JBU0UgKyAweDBjMDAwLAotCQkgIENGR19GTEFTSF9CQVNFICsgMHhlMDAwMCAtIDEsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwYzAwMCwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweGUwMDAwIC0gMSwKIAkJICAmZmxhc2hfaW5mb1swXSk7CiAjZWxzZQogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICBDRkdfRkxBU0hfQkFTRSwKLQkJICBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkgICZmbGFzaF9pbmZvWzBdKTsKIAogICAgIGZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKQEAgLTI1Myw3ICsyNTMsNyBAQAogCQlyZXN1bHQgPSAqYWRkcjsKIAogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkKIAkJewogCQkgICAgTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCSAgICBjaGlwMSA9IFRNTzsKQEAgLTM1OCw3ICszNTgsNyBAQAogCXJlc3VsdCA9ICphZGRyOwogCiAJLyogY2hlY2sgdGltZW91dCAqLwotCWlmIChnZXRfdGltZXJfbWFza2VkKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkKKwlpZiAoZ2V0X3RpbWVyX21hc2tlZCgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKQogCXsKIAkgICAgY2hpcDEgPSBFUlIgfCBUTU87CiAJICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9DQ00vY2NtLmMgYi9ib2FyZC9zaWVtZW5zL0NDTS9jY20uYwppbmRleCBkNjUzNzYzLi44MDUzZGE0IDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL0NDTS9jY20uYworKysgYi9ib2FyZC9zaWVtZW5zL0NDTS9jY20uYwpAQCAtMTMzLDcgKzEzMyw3IEBACiBpbnQgcG93ZXJfb25fcmVzZXQodm9pZCkKIHsKICAgICAvKiBUZXN0IFJlc2V0IFN0YXR1cyBSZWdpc3RlciAqLwotICAgIHJldHVybiAoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2Nsa3JzdC5jYXJfcnNyICYgUlNSX0NTUlMgPyAwOjE7CisgICAgcmV0dXJuICgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2Nsa3JzdC5jYXJfcnNyICYgUlNSX0NTUlMgPyAwOjE7CiB9CiAKICNkZWZpbmUgUEJfTEVEX0dSRUVOCTB4MTAwMDAJCS8qIHJlZCBMRUQgaXMgb24gUEIuMTUgKi8KQEAgLTE0Miw3ICsxNDIsNyBAQAogCiBzdGF0aWMgdm9pZCBpbml0X2xlZHMgKHZvaWQpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogICAgIGltbWFwLT5pbV9jcG0uY3BfcGJwYXIgJj0gflBCX0xFRFM7CiAgICAgaW1tYXAtPmltX2NwbS5jcF9wYm9kciAmPSB+UEJfTEVEUzsKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKICAgICBsb25nIGludCBzaXplOCwgc2l6ZTk7CiAgICAgbG9uZyBpbnQgc2l6ZSA9IDA7CkBAIC0xNzEsNyArMTcxLDcgQEAKICAgICAgKiB3aXRoIHR3byBTRFJBTSBiYW5rcyBvciBmb3VyIGN5Y2xlcyBldmVyeSAzMS4yIHVzIHdpdGggb25lCiAgICAgICogYmFuay4gSXQgd2lsbCBiZSBhZGp1c3RlZCBhZnRlciBtZW1vcnkgc2l6aW5nLgogICAgICAqLwotICAgIG1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfOEs7CisgICAgbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfOEs7CiAKICAgICBtZW1jdGwtPm1lbWNfbWFyICA9IDB4MDAwMDAwODg7CiAKQEAgLTE4MCwxMCArMTgwLDEwIEBACiAgICAgICogcHJlbGltaW5hcnkgYWRkcmVzc2VzIC0gdGhlc2UgaGF2ZSB0byBiZSBtb2RpZmllZCBhZnRlciB0aGUKICAgICAgKiBTRFJBTSBzaXplIGhhcyBiZWVuIGRldGVybWluZWQuCiAgICAgICovCi0gICAgbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotICAgIG1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKyAgICBtZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworICAgIG1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAKLSAgICBtZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsgLyogbm8gcmVmcmVzaCB5ZXQgKi8KKyAgICBtZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7IC8qIG5vIHJlZnJlc2ggeWV0ICovCiAKICAgICB1ZGVsYXkoMjAwKTsKIApAQCAtMjAzLDIxICsyMDMsMjEgQEAKICAgICAgKgogICAgICAqIHRyeSA4IGNvbHVtbiBtb2RlCiAgICAgICovCi0gICAgc2l6ZTggPSBkcmFtX3NpemUgKENGR19NQU1SXzhDT0wsIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOworICAgIHNpemU4ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVJfOENPTCwgU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAKICAgICB1ZGVsYXkgKDEwMDApOwogCiAgICAgLyoKICAgICAgKiB0cnkgOSBjb2x1bW4gbW9kZQogICAgICAqLwotICAgIHNpemU5ID0gZHJhbV9zaXplIChDRkdfTUFNUl85Q09MLCBTRFJBTV9CQVNFMl9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKyAgICBzaXplOSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQU1SXzlDT0wsIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogCiAgICAgaWYgKHNpemU4IDwgc2l6ZTkpIHsJCS8qIGxlYXZlIGNvbmZpZ3VyYXRpb24gYXQgOSBjb2x1bW5zCSovCiAJc2l6ZSA9IHNpemU5OwogLyoJZGVidWcgKCJTRFJBTSBpbiA5IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemUgPj4gMjApOwkqLwogICAgIH0gZWxzZSB7CQkJCS8qIGJhY2sgdG8gOCBjb2x1bW5zCQkJKi8KIAlzaXplID0gc2l6ZTg7Ci0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl84Q09MOworCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzhDT0w7CiAJdWRlbGF5KDUwMCk7CiAvKglkZWJ1ZyAoIlNEUkFNIGluIDggY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZSA+PiAyMCk7CSovCiAgICAgfQpAQCAtMjMwLDcgKzIzMCw3IEBACiAgICAgICovCiAgICAgaWYgKHNpemUgPCAweDAyMDAwMDAwKSB7CiAJLyogcmVkdWNlIHRvIDE1LjYgdXMgKDYyLjQgdXMgLyBxdWFkKSAqLwotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUl8yQktfNEs7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUl8yQktfNEs7CiAJdWRlbGF5KDEwMDApOwogICAgIH0KIApAQCAtMjM4LDEzICsyMzgsMTMgQEAKICAgICAgKiBGaW5hbCBtYXBwaW5nCiAgICAgICovCiAKLSAgICBtZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZSkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0gICAgbWVtY3RsLT5tZW1jX2JyMiA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKyAgICBtZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOworICAgIG1lbWN0bC0+bWVtY19icjIgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogCiAKICAgICAvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwogICAgIHJlZyA9IG1lbWN0bC0+bWVtY19tcHRwcjsKLSAgICByZWcgPj49IDE7CS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisgICAgcmVnID4+PSAxOwkvKiByZWR1Y2UgdG8gQ09ORklHX1NZU19NUFRQUl8xQktfOEsgLyBfNEsgKi8KICAgICBtZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAKICAgICBjYW5fZHJpdmVyX2VuYWJsZSAoKTsKQEAgLTI2Myw3ICsyNjMsNyBAQAogICovCiB2b2lkIGNhbl9kcml2ZXJfZW5hYmxlICh2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKICAgICAvKiBJbml0aWFsaXplIE1CTVIgKi8KQEAgLTMwMiwxMyArMzAyLDEzIEBACiAgICAgbWVtY3RsLT5tZW1jX21jciA9IDB4MDExQyB8IFVQTUI7CiAKICAgICAvKiBJbml0aWFsaXplIE9SMyAvIEJSMyBmb3IgQ0FOIEJ1cyBDb250cm9sbGVyICovCi0gICAgbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfQ0FOOwotICAgIG1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX0NBTjsKKyAgICBtZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfQ0FOOworICAgIG1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19DQU47CiB9CiAKIHZvaWQgY2FuX2RyaXZlcl9kaXNhYmxlICh2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKICAgICAvKiBSZXNldCBPUjMgLyBCUjMgdG8gZGlzYWJsZSAgQ0FOIEJ1cyBDb250cm9sbGVyICovCkBAIC0zMzEsNyArMzMxLDcgQEAKIAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsIGxvbmcgaW50IG1heHNpemUpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogICAgIG1lbWN0bC0+bWVtY19tYW1yID0gbWFtcl92YWx1ZTsKQEAgLTM0MSwyNCArMzQxLDI0IEBACiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2RlZmluZQlFVEhfQ0ZHX0JJVFMJKENGR19QQl9FVEhfQ0ZHMSB8IENGR19QQl9FVEhfQ0ZHMiAgfCBDRkdfUEJfRVRIX0NGRzMgKQorI2RlZmluZQlFVEhfQ0ZHX0JJVFMJKENPTkZJR19TWVNfUEJfRVRIX0NGRzEgfCBDT05GSUdfU1lTX1BCX0VUSF9DRkcyICB8IENPTkZJR19TWVNfUEJfRVRIX0NGRzMgKQogCi0jZGVmaW5lIEVUSF9BTExfQklUUwkoRVRIX0NGR19CSVRTIHwgQ0ZHX1BCX0VUSF9QT1dFUkRPV04pCisjZGVmaW5lIEVUSF9BTExfQklUUwkoRVRIX0NGR19CSVRTIHwgQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOKQogCiB2b2lkCXJlc2V0X3BoeSh2b2lkKQogewotCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyB2YWx1ZTsKIAogCS8qIENvbmZpZ3VyZSBhbGwgbmVlZGVkIHBvcnQgcGlucyBmb3IgR1BJTyAqLwotI2lmZGVmIENGR19FVEhfTURESVNfVkFMVUUKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0IHw9ICAgQ0ZHX1BBX0VUSF9NRERJUzsKKyNpZmRlZiBDT05GSUdfU1lTX0VUSF9NRERJU19WQUxVRQorCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gICBDT05GSUdfU1lTX1BBX0VUSF9NRERJUzsKICNlbHNlCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+KENGR19QQV9FVEhfTURESVMgfCBDRkdfUEFfRVRIX1JFU0VUKTsJLyogU2V0IGxvdyAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgJj0gfihDT05GSUdfU1lTX1BBX0VUSF9NRERJUyB8IENPTkZJR19TWVNfUEFfRVRIX1JFU0VUKTsJLyogU2V0IGxvdyAqLwogI2VuZGlmCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYXBhciAmPSB+KENGR19QQV9FVEhfTURESVMgfCBDRkdfUEFfRVRIX1JFU0VUKTsJLyogR1BJTyAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDRkdfUEFfRVRIX01ERElTIHwgQ0ZHX1BBX0VUSF9SRVNFVCk7CS8qIGFjdGl2ZSBvdXRwdXQgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9ICAgQ0ZHX1BBX0VUSF9NRERJUyB8IENGR19QQV9FVEhfUkVTRVQ7CS8qIG91dHB1dCAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfihDT05GSUdfU1lTX1BBX0VUSF9NRERJUyB8IENPTkZJR19TWVNfUEFfRVRIX1JFU0VUKTsJLyogR1BJTyAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDT05GSUdfU1lTX1BBX0VUSF9NRERJUyB8IENPTkZJR19TWVNfUEFfRVRIX1JFU0VUKTsJLyogYWN0aXZlIG91dHB1dCAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFkaXIgfD0gICBDT05GSUdfU1lTX1BBX0VUSF9NRERJUyB8IENPTkZJR19TWVNfUEFfRVRIX1JFU0VUOwkvKiBvdXRwdXQgKi8KIAogCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KEVUSF9BTExfQklUUyk7CS8qIEdQSU8gKi8KIAlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihFVEhfQUxMX0JJVFMpOwkvKiBhY3RpdmUgb3V0cHV0ICovCkBAIC0zNjYsMjMgKzM2NiwyMyBAQAogCXZhbHVlICA9IGltbXItPmltX2NwbS5jcF9wYmRhdDsKIAogCS8qIEFzc2VydCBQb3dlcmRvd24gYW5kIFJlc2V0IHNpZ25hbHMgKi8KLQl2YWx1ZSB8PSAgQ0ZHX1BCX0VUSF9QT1dFUkRPV047CisJdmFsdWUgfD0gIENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTjsKIAogCS8qIFBIWSBjb25maWd1cmF0aW9uIGluY2x1ZGVzIE1ERElTIGFuZCBDRkcxIC4uLiBDRkczICovCi0jaWZkZWYgQ0ZHX0VUSF9DRkcxX1ZBTFVFCi0JdmFsdWUgfD0gICBDRkdfUEJfRVRIX0NGRzE7CisjaWZkZWYgQ09ORklHX1NZU19FVEhfQ0ZHMV9WQUxVRQorCXZhbHVlIHw9ICAgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMTsKICNlbHNlCi0JdmFsdWUgJj0gfihDRkdfUEJfRVRIX0NGRzEpOworCXZhbHVlICY9IH4oQ09ORklHX1NZU19QQl9FVEhfQ0ZHMSk7CiAjZW5kaWYKLSNpZmRlZiBDRkdfRVRIX0NGRzJfVkFMVUUKLQl2YWx1ZSB8PSAgIENGR19QQl9FVEhfQ0ZHMjsKKyNpZmRlZiBDT05GSUdfU1lTX0VUSF9DRkcyX1ZBTFVFCisJdmFsdWUgfD0gICBDT05GSUdfU1lTX1BCX0VUSF9DRkcyOwogI2Vsc2UKLQl2YWx1ZSAmPSB+KENGR19QQl9FVEhfQ0ZHMik7CisJdmFsdWUgJj0gfihDT05GSUdfU1lTX1BCX0VUSF9DRkcyKTsKICNlbmRpZgotI2lmZGVmIENGR19FVEhfQ0ZHM19WQUxVRQotCXZhbHVlIHw9ICAgQ0ZHX1BCX0VUSF9DRkczOworI2lmZGVmIENPTkZJR19TWVNfRVRIX0NGRzNfVkFMVUUKKwl2YWx1ZSB8PSAgIENPTkZJR19TWVNfUEJfRVRIX0NGRzM7CiAjZWxzZQotCXZhbHVlICY9IH4oQ0ZHX1BCX0VUSF9DRkczKTsKKwl2YWx1ZSAmPSB+KENPTkZJR19TWVNfUEJfRVRIX0NGRzMpOwogI2VuZGlmCiAKIAkvKiBEcml2ZSBvdXRwdXQgc2lnbmFscyB0byBpbml0aWFsIHN0YXRlICovCkBAIC0zOTEsMTEgKzM5MSwxMSBAQAogCXVkZWxheSAoMTAwMDApOwogCiAJLyogRGUtYXNzZXJ0IEV0aGVybmV0IFBvd2VyZG93biAqLwotCWltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+KENGR19QQl9FVEhfUE9XRVJET1dOKTsgLyogRW5hYmxlIFBIWSBwb3dlciAqLworCWltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+KENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTik7IC8qIEVuYWJsZSBQSFkgcG93ZXIgKi8KIAl1ZGVsYXkgKDEwMDAwKTsKIAogCS8qIGRlLWFzc2VydCBSRVNFVCBzaWduYWwgb2YgUEhZICovCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCB8PSBDRkdfUEFfRVRIX1JFU0VUOworCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gQ09ORklHX1NZU19QQV9FVEhfUkVTRVQ7CiAJdWRlbGF5ICgxMDAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9DQ00vZmxhc2guYyBiL2JvYXJkL3NpZW1lbnMvQ0NNL2ZsYXNoLmMKaW5kZXggOWMzMjc4NS4uYWQxZWQ3OSAxMDA2NDQKLS0tIGEvYm9hcmQvc2llbWVucy9DQ00vZmxhc2guYworKysgYi9ib2FyZC9zaWVtZW5zL0NDTS9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTM4LDEzICszOCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc1LDM4ICs3NSwzOCBAQAogCX0KIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIDB4RkZGRjgwMDApOwotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgMHhGRkZGODAwMCk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKIAlpZiAoc2l6ZV9iMSkgewotCQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOwotCQltZW1jdGwtPm1lbWNfYnIxID0gKChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CisJCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMSAmIDB4RkZGRjgwMDApOworCQltZW1jdGwtPm1lbWNfYnIxID0gKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkJCSAgICBCUl9NU19HUENNIHwgQlJfVjsKIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0JCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApLAorCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCiAJCQkJCSAgJmZsYXNoX2luZm9bMV0pOwogCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKKwkJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjAsICZmbGFzaF9pbmZvWzFdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJCSAgICAgICZmbGFzaF9pbmZvWzFdKTsKICNlbmRpZgogCX0gZWxzZSB7CkBAIC00MTksNyArNDE5LDcgQEAKIAlsYXN0ICA9IHN0YXJ0OwogCWFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogCXdoaWxlICgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTU0Miw3ICs1NDIsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9zaWVtZW5zL0NDTS9mcGdhX2NjbS5jIGIvYm9hcmQvc2llbWVucy9DQ00vZnBnYV9jY20uYwppbmRleCAxMWI5N2JjLi41MGIwOGFiIDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL0NDTS9mcGdhX2NjbS5jCisrKyBiL2JvYXJkL3NpZW1lbnMvQ0NNL2ZwZ2FfY2NtLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogZnBnYV90IGZwZ2FfbGlzdFtdID0gewogICAgIHsgIlBVTUEiICwgUFVNQV9DT05GX0JBU0UgLAotICAgICAgQ0ZHX1BDX1BVTUFfSU5JVCAsIENGR19QQ19QVU1BX1BST0cgLCBDRkdfUENfUFVNQV9ET05FICB9CisgICAgICBDT05GSUdfU1lTX1BDX1BVTUFfSU5JVCAsIENPTkZJR19TWVNfUENfUFVNQV9QUk9HICwgQ09ORklHX1NZU19QQ19QVU1BX0RPTkUgIH0KIH07CiBpbnQgZnBnYV9jb3VudCA9IHNpemVvZihmcGdhX2xpc3QpIC8gc2l6ZW9mKGZwZ2FfdCk7CiAKQEAgLTkwLDcgKzkwLDcgQEAKIAogdWxvbmcgZnBnYV9jb250cm9sIChmcGdhX3QqIGZwZ2EsIGludCBjbWQpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbXIgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tciAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAogICAgIHN3aXRjaCAoY21kKSB7CmRpZmYgLS1naXQgYS9ib2FyZC9zaWVtZW5zL0lBRDIxMC9JQUQyMTAuYyBiL2JvYXJkL3NpZW1lbnMvSUFEMjEwL0lBRDIxMC5jCmluZGV4IDljMGZmMDIuLmU5ZTdmODQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpZW1lbnMvSUFEMjEwL0lBRDIxMC5jCisrKyBiL2JvYXJkL3NpZW1lbnMvSUFEMjEwL0lBRDIxMC5jCkBAIC0xMDIsNyArMTAyLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIGlvcDh4eF90ICppb3AgPSAmaW1tYXAtPmltX2lvcG9ydDsKIAl2b2xhdGlsZSBmZWNfdCAqZmVjcCA9ICZpbW1hcC0+aW1fY3BtLmNwX2ZlYzsKQEAgLTExNyw3ICsxMTcsNyBAQAogCSAqIHdpdGggdHdvIFNEUkFNIGJhbmtzIG9yIGZvdXIgY3ljbGVzIGV2ZXJ5IDMxLjIgdXMgd2l0aCBvbmUKIAkgKiBiYW5rLiBJdCB3aWxsIGJlIGFkanVzdGVkIGFmdGVyIG1lbW9yeSBzaXppbmcuCiAJICovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAltZW1jdGwtPm1lbWNfbWFyID0gMHgwMDAwMDA4ODsKIApAQCAtMTI2LDEwICsxMjYsMTAgQEAKIAkgKiBwcmVsaW1pbmFyeSBhZGRyZXNzZXMgLSB0aGVzZSBoYXZlIHRvIGJlIG1vZGlmaWVkIGFmdGVyIHRoZQogCSAqIFNEUkFNIHNpemUgaGFzIGJlZW4gZGV0ZXJtaW5lZC4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVIgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUiAmICh+KE1BTVJfUFRBRSkpOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCkBAIC0xNTUsMjAgKzE1NSwyMCBAQAogCSAqIENoZWNrIEJhbmsgMCBNZW1vcnkgU2l6ZSBmb3IgcmUtY29uZmlndXJhdGlvbgogCSAqCiAJICovCi0Jc2l6ZSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVIsIChsb25nICopIFNEUkFNX0JBU0VfUFJFTElNLAorCXNpemUgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUiwgKGxvbmcgKikgU0RSQU1fQkFTRV9QUkVMSU0sCiAJCQkgIFNEUkFNX01BWF9TSVpFKTsKIAogCXVkZWxheSAoMTAwMCk7CiAKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVI7CisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVI7CiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCiAJICogRmluYWwgbWFwcGluZwogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSAoKC1zaXplKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9ICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpOworCW1lbWN0bC0+bWVtY19vcjIgPSAoKC1zaXplKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVik7CiAKIAl1ZGVsYXkgKDEwMDAwKTsKIApAQCAtMTk1LDcgKzE5NSw3IEBACiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplIChsb25nIGludCBtYW1yX3ZhbHVlLCBsb25nIGludCAqYmFzZSwKIAkJCSAgIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAltZW1jdGwtPm1lbWNfbWFtciA9IG1hbXJfdmFsdWU7CkBAIC0yMTksNyArMjE5LDcgQEAKIAogdm9pZCBib2FyZF9ldGhlcl9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcCA9ICZpbW1hcC0+aW1faW9wb3J0OwogCXZvbGF0aWxlIGZlY190ICpmZWNwID0gJmltbWFwLT5pbV9jcG0uY3BfZmVjOwogCkBAIC0yMzAsNyArMjMwLDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbXRpbWVyOHh4X3QgKnRpbWVycyA9ICZpbW1hcC0+aW1fY3BtdGltZXI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZvbGF0aWxlIGlvcDh4eF90ICppb3AgPSAmaW1tYXAtPmltX2lvcG9ydDsKQEAgLTI2MSw3ICsyNjEsNyBAQAogdm9pZCBib2FyZF9nZXRfZW5ldGFkZHIgKHVjaGFyICogYWRkcikKIHsKIAlpbnQgaTsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG0gPSAmaW1tYXAtPmltX2NwbTsKIAl1bnNpZ25lZCBpbnQgcmNjcnRtcDsKIApkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9JQUQyMTAvYXRtLmMgYi9ib2FyZC9zaWVtZW5zL0lBRDIxMC9hdG0uYwppbmRleCAxYjI3ZjMzLi5kMWI3NWJjIDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL0lBRDIxMC9hdG0uYworKysgYi9ib2FyZC9zaWVtZW5zL0lBRDIxMC9hdG0uYwpAQCAtNTcsNyArNTcsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgYXRtTG9hZCgpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICB2b2xhdGlsZSBjcG10aW1lcjh4eF90ICp0aW1lcnMgPSAmaW1tYXAtPmltX2NwbXRpbWVyOwogICB2b2xhdGlsZSBpb3A4eHhfdCAgICAgICppb3AgICAgPSAmaW1tYXAtPmltX2lvcG9ydDsKIApAQCAtOTEsNyArOTEsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiB2b2lkIGF0bVVubG9hZCgpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICB2b2xhdGlsZSBjcG10aW1lcjh4eF90ICp0aW1lcnMgPSAmaW1tYXAtPmltX2NwbXRpbWVyOwogICB2b2xhdGlsZSBpb3A4eHhfdCAgICAgICppb3AgICAgPSAmaW1tYXAtPmltX2lvcG9ydDsKIApAQCAtMTQxLDExICsxNDEsMTEgQEAKIGludCBhdG1NZW1Jbml0KCkKIHsKICAgaW50IGk7Ci0gIHVuc2lnbmVkIGltbXIgPSBDRkdfSU1NUjsKKyAgdW5zaWduZWQgaW1tciA9IENPTkZJR19TWVNfSU1NUjsKICAgaW50IHRvdGFsX251bV9yYmQgPSAwOwogICBpbnQgdG90YWxfbnVtX3RiZCA9IDA7CiAKLSAgbWVtc2V0KChjaGFyICopQ0ZHX0lNTVIgKyAweDIwMDAgKyBBVE1fRFBSQU1fQkVHSU4sIDB4MDAsIEFUTV9EUFJBTV9TSVpFKTsKKyAgbWVtc2V0KChjaGFyICopQ09ORklHX1NZU19JTU1SICsgMHgyMDAwICsgQVRNX0RQUkFNX0JFR0lOLCAweDAwLCBBVE1fRFBSQU1fU0laRSk7CiAKICAgZ19hdG0uY3NyYW1fc2l6ZSA9IE5VTV9JTlRfRU5UUklFUyAqIFNJWkVfT0ZfSU5UX0VOVFJZOwogCkBAIC0yMjYsMTEgKzIyNiwxMSBAQAogdm9pZCBhdG1BcGNJbml0KCkKIHsKICAgaW50IGk7Ci0gIC8qIHVuc2lnbmVkIGltbXIgPSBDRkdfSU1NUjsgKi8KLSAgdWludDE2ICogbXBoeXB0X3B0ciA9IE1QSFlQVF9QVFIoQ0ZHX0lNTVIpOwotICBzdHJ1Y3QgYXBjX3BhcmFtc190ICogYXBjcF9wdHIgPSBBUENQX1BUUihDRkdfSU1NUik7Ci0gIHVpbnQxNiAqIGFwY3RfcHJpbzFfcHRyID0gQVBDVDFfUFRSKENGR19JTU1SKTsKLSAgdWludDE2ICogdHFfcHRyID0gVFFfUFRSKENGR19JTU1SKTsKKyAgLyogdW5zaWduZWQgaW1tciA9IENPTkZJR19TWVNfSU1NUjsgKi8KKyAgdWludDE2ICogbXBoeXB0X3B0ciA9IE1QSFlQVF9QVFIoQ09ORklHX1NZU19JTU1SKTsKKyAgc3RydWN0IGFwY19wYXJhbXNfdCAqIGFwY3BfcHRyID0gQVBDUF9QVFIoQ09ORklHX1NZU19JTU1SKTsKKyAgdWludDE2ICogYXBjdF9wcmlvMV9wdHIgPSBBUENUMV9QVFIoQ09ORklHX1NZU19JTU1SKTsKKyAgdWludDE2ICogdHFfcHRyID0gVFFfUFRSKENPTkZJR19TWVNfSU1NUik7CiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgIC8qIEluaXRpYWxpemUgTVBIWSBQb2ludGluZyBUYWJsZSAob25seSBvbmUgZW50cnkpICovCiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0yOTAsNyArMjkwLDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogdm9pZCBhdG1BbXRJbml0KCkKIHsKLSAgdW5zaWduZWQgaW1tciA9IENGR19JTU1SOworICB1bnNpZ25lZCBpbW1yID0gQ09ORklHX1NZU19JTU1SOwogCiAgIGdfYXRtLmFtX3RvcCA9IEFNX1BUUihpbW1yKTsKICAgZ19hdG0uYXBfdG9wID0gQVBfUFRSKGltbXIpOwpAQCAtMzE1LDcgKzMxNSw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHZvaWQgYXRtQ3BtSW5pdCgpCiB7Ci0gIHVuc2lnbmVkIGltbXIgPSBDRkdfSU1NUjsKKyAgdW5zaWduZWQgaW1tciA9IENPTkZJR19TWVNfSU1NUjsKIAogICBtZW1zZXQoKGNoYXIgKilpbW1yICsgMHgzRjAwLCAweDAwLCAweEMwKTsKIApAQCAtNTUxLDcgKzU1MSw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHZvaWQgYXRtVXRwSW5pdCgpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgIHZvbGF0aWxlIGltbWFwX3QgICAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICB2b2xhdGlsZSBpb3A4eHhfdCAgICAgICppb3AgICAgPSAmaW1tYXAtPmltX2lvcG9ydDsKICAgdm9sYXRpbGUgY2FyOHh4X3QJICpjYXIgICAgPSAmaW1tYXAtPmltX2Nsa3JzdDsKICAgdm9sYXRpbGUgY3BtOHh4X3QJICpjcG0gICAgPSAmaW1tYXAtPmltX2NwbTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NpZW1lbnMvSUFEMjEwL2F0bS5oIGIvYm9hcmQvc2llbWVucy9JQUQyMTAvYXRtLmgKaW5kZXggNzFiMDQ5Ny4uY2Q1YjQ1ZSAxMDA2NDQKLS0tIGEvYm9hcmQvc2llbWVucy9JQUQyMTAvYXRtLmgKKysrIGIvYm9hcmQvc2llbWVucy9JQUQyMTAvYXRtLmgKQEAgLTYsOSArNiw5IEBACiB0eXBlZGVmIHZvbGF0aWxlIHVuc2lnbmVkIGludCB2dWludDMyOwogCiAKLSNkZWZpbmUgRFBSQU1fQVRNIENGR19JTU1SICsgMHgzMDAwCisjZGVmaW5lIERQUkFNX0FUTSBDT05GSUdfU1lTX0lNTVIgKyAweDMwMDAKIAotI2RlZmluZSBBVE1fRFBSQU1fQkVHSU4gIChEUFJBTV9BVE0gLSBDRkdfSU1NUiAtIDB4MjAwMCkKKyNkZWZpbmUgQVRNX0RQUkFNX0JFR0lOICAoRFBSQU1fQVRNIC0gQ09ORklHX1NZU19JTU1SIC0gMHgyMDAwKQogI2RlZmluZSBOVU1fQ09OTkVDVElPTlMgIDEKICNkZWZpbmUgU0FSX1JYQl9TSVpFICAgICAxNTg0CiAjZGVmaW5lIEFNX0hNQVNLICAgICAgICAgMHgwRkZGRkZGMApkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9JQUQyMTAvZmxhc2guYyBiL2JvYXJkL3NpZW1lbnMvSUFEMjEwL2ZsYXNoLmMKaW5kZXggMTEwODU4ZC4uYzI2MmUwZiAxMDA2NDQKLS0tIGEvYm9hcmQvc2llbWVucy9JQUQyMTAvZmxhc2guYworKysgYi9ib2FyZC9zaWVtZW5zL0lBRDIxMC9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTM4LDEzICszOCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0gIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICB2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgIHZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKICAgdW5zaWduZWQgbG9uZyBzaXplOwogICBpbnQgaTsKIAogICAvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0gIGZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworICBmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAgICAgZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgIH0KIApAQCAtNTksMTMgKzU5LDEzIEBACiAKIAogICAvKiBSZW1hcCBGTEFTSCBhY2NvcmRpbmcgdG8gcmVhbCBzaXplICovCi0gIG1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplICYgMHhGRkZGODAwMCk7Ci0gIG1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisgIG1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZSAmIDB4RkZGRjgwMDApOworICBtZW1jdGwtPm1lbWNfYnIwID0gKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogICAvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0gIHNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisgIHNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0gIGZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworICBmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKICAgZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIApAQCAtMzY4LDcgKzM2OCw3IEBACiAgIGxhc3QgID0gc3RhcnQ7CiAgIGFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0W2xfc2VjdF0pOwogICB3aGlsZSAoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0gICAgaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisgICAgaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogICAgICAgcHJpbnRmICgiVGltZW91dFxuIik7CiAgICAgICByZXR1cm4gMTsKICAgICB9CkBAIC00OTEsNyArNDkxLDcgQEAKICAgLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogICBzdGFydCA9IGdldF90aW1lciAoMCk7CiAgIHdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewotICAgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKyAgICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogICAgICAgcmV0dXJuICgxKTsKICAgICB9CiAgIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3NpZW1lbnMvU0NNL2NvbmZpZy5tayBiL2JvYXJkL3NpZW1lbnMvU0NNL2NvbmZpZy5tawppbmRleCA4NTVhZTM4Li41ZDA4OThiIDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL1NDTS9jb25maWcubWsKKysrIGIvYm9hcmQvc2llbWVucy9TQ00vY29uZmlnLm1rCkBAIC0yNSw3ICsyNSw3IEBACiAjIFNpZW1lbnMgU0NNIGJvYXJkcwogIwogCi0jIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDRkdfRkxBU0hfQkFTRSBkZWZpbmUgaW4gY29uZmlnX1NDTS5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19TQ00uaAogIyBmb3IgdGhlICJmaW5hbCIgY29uZmlndXJhdGlvbiwgd2l0aCBVLUJvb3QgaW4gZmxhc2gsIG9yIHRoZSBhZGRyZXNzCiAjIGluIFJBTSB3aGVyZSBVLUJvb3QgaXMgbG9hZGVkIGF0IGZvciBkZWJ1Z2dpbmcuCiAjCmRpZmYgLS1naXQgYS9ib2FyZC9zaWVtZW5zL1NDTS9mbGFzaC5jIGIvYm9hcmQvc2llbWVucy9TQ00vZmxhc2guYwppbmRleCA1MDBhZjkyLi40YTZkNTM4IDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL1NDTS9mbGFzaC5jCisrKyBiL2JvYXJkL3NpZW1lbnMvU0NNL2ZsYXNoLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNkZWZpbmUgVl9CWVRFKGEpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoIGEgKSkKIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODUsMTMgKzE4NSwxMyBAQAogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBTdGF0aWMgRkxBU0ggQmFuayBjb25maWd1cmF0aW9uIGhlcmUgKG9ubHkgb25lIGJhbmspICovCiAKLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKENGR19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSAoQ09ORklHX1NZU19GTEFTSDBfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04gfHwgc2l6ZV9iMCA9PSAwKSB7CiAJCXByaW50ZiAoIiMjIFVua25vd24gRkxBU0ggb24gQmFuayAwIC0gU2l6ZSA9IDB4JTA4bHggPSAlbGQgTUJcbiIsCiAJCQkJc2l6ZV9iMCwgc2l6ZV9iMCA+PiAyMCk7CkBAIC0yMDEsMTAgKzIwMSwxMCBAQAogCSAqIHByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0gwX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkgJiYgZGVmaW5lZChDT05GSUdfRU5WX0FERFIpCkBAIC0zNjQsNyArMzY0LDcgQEAKIAl3aGlsZSAoKFZfVUxPTkcgKGluZm8tPnN0YXJ0W2xfc2VjdF0pICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCB8fAogCSAgICAgICAoVl9VTE9ORyAoaW5mby0+c3RhcnRbbF9zZWN0XSArIDQpICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTQ4MCw3ICs0ODAsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKChWX1VMT05HIChkZXN0KSAmIDB4MDA4MDAwODApICE9IChjaCAmIDB4MDA4MDAwODApKSB8fAogCQkgICAoKFZfVUxPTkcgKGRlc3QgKyA0KSAmIDB4MDA4MDAwODApICE9IChjbCAmIDB4MDA4MDAwODApKSkgewotCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9zaWVtZW5zL1NDTS9mcGdhX3NjbS5jIGIvYm9hcmQvc2llbWVucy9TQ00vZnBnYV9zY20uYwppbmRleCA2NjFiZjY2Li5hY2Q5YzE1IDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL1NDTS9mcGdhX3NjbS5jCisrKyBiL2JvYXJkL3NpZW1lbnMvU0NNL2ZwZ2Ffc2NtLmMKQEAgLTI4LDE4ICsyOCwxOCBAQAogI2luY2x1ZGUgIi4uL2NvbW1vbi9mcGdhLmgiCiAKIGZwZ2FfdCBmcGdhX2xpc3RbXSA9IHsKLQl7IkZJT1giLCBDRkdfRklPWF9CQVNFLAotCSBDRkdfUERfRklPWF9JTklULCBDRkdfUERfRklPWF9QUk9HLCBDRkdfUERfRklPWF9ET05FfQorCXsiRklPWCIsIENPTkZJR19TWVNfRklPWF9CQVNFLAorCSBDT05GSUdfU1lTX1BEX0ZJT1hfSU5JVCwgQ09ORklHX1NZU19QRF9GSU9YX1BST0csIENPTkZJR19TWVNfUERfRklPWF9ET05FfQogCSwKLQl7IkZET0hNIiwgQ0ZHX0ZET0hNX0JBU0UsCi0JIENGR19QRF9GRE9ITV9JTklULCBDRkdfUERfRkRPSE1fUFJPRywgQ0ZHX1BEX0ZET0hNX0RPTkV9CisJeyJGRE9ITSIsIENPTkZJR19TWVNfRkRPSE1fQkFTRSwKKwkgQ09ORklHX1NZU19QRF9GRE9ITV9JTklULCBDT05GSUdfU1lTX1BEX0ZET0hNX1BST0csIENPTkZJR19TWVNfUERfRkRPSE1fRE9ORX0KIH07CiBpbnQgZnBnYV9jb3VudCA9IHNpemVvZiAoZnBnYV9saXN0KSAvIHNpemVvZiAoZnBnYV90KTsKIAogCiB1bG9uZyBmcGdhX2NvbnRyb2wgKGZwZ2FfdCAqIGZwZ2EsIGludCBjbWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgRlBHQV9JTklUX0lTX0hJR0g6CkBAIC03NCwxMSArNzQsMTEgQEAKIAkJYnJlYWs7CiAKIAljYXNlIEZQR0FfR0VUX0lEOgotCQlpZiAoZnBnYS0+Y29uZl9iYXNlID09IENGR19GSU9YX0JBU0UpIHsKKwkJaWYgKGZwZ2EtPmNvbmZfYmFzZSA9PSBDT05GSUdfU1lTX0ZJT1hfQkFTRSkgewogCQkJdWxvbmcgdmVyID0KIAkJCQkqKHZvbGF0aWxlIHVsb25nICopIChmcGdhLT5jb25mX2Jhc2UgKyAweDEwKTsKIAkJCXJldHVybiAoKHZlciA+PiAxMCkgJiAweGYpICsgKCh2ZXIgPj4gMikgJiAweGYwKTsKLQkJfSBlbHNlIGlmIChmcGdhLT5jb25mX2Jhc2UgPT0gQ0ZHX0ZET0hNX0JBU0UpIHsKKwkJfSBlbHNlIGlmIChmcGdhLT5jb25mX2Jhc2UgPT0gQ09ORklHX1NZU19GRE9ITV9CQVNFKSB7CiAJCQlyZXR1cm4gKCoodm9sYXRpbGUgdXNob3J0ICopIGZwZ2EtPmNvbmZfYmFzZSkgJiAweGZmOwogCQl9IGVsc2UgewogCQkJcmV0dXJuICoodm9sYXRpbGUgdWxvbmcgKikgZnBnYS0+Y29uZl9iYXNlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9TQ00vc2NtLmMgYi9ib2FyZC9zaWVtZW5zL1NDTS9zY20uYwppbmRleCA2YTlkZDI1Li5lMDYxMWZlIDEwMDY0NAotLS0gYS9ib2FyZC9zaWVtZW5zL1NDTS9zY20uYworKysgYi9ib2FyZC9zaWVtZW5zL1NDTS9zY20uYwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAJICovCiAJbWF4c2l6ZSA9ICgxICsgKH5vcnggfCAweDdmZmYpKSAvIDI7CiAKLQkvKiBTaW5jZSBDRkdfU0RSQU1fQkFTRSBpcyBhbHdheXMgMCAoPz8pLCB3ZSBhc3N1bWUgdGhhdAorCS8qIFNpbmNlIENPTkZJR19TWVNfU0RSQU1fQkFTRSBpcyBhbHdheXMgMCAoPz8pLCB3ZSBhc3N1bWUgdGhhdAogCSAqIHdlIGFyZSBjb25maWd1cmluZyBDUzEgaWYgYmFzZSAhPSAwCiAJICovCiAJc2Rtcl9wdHIgPSBiYXNlID8gJm1lbWN0bC0+bWVtY19sc2RtciA6ICZtZW1jdGwtPm1lbWNfcHNkbXI7CkBAIC0yNzQsNyArMjc0LDcgQEAKIAkgKiAgYWNjZXNzaW5nIHRoZSBTRFJBTSB3aXRoIGEgc2luZ2xlLWJ5dGUgdHJhbnNhY3Rpb24uIgogCSAqCiAJICogVGhlIGFwcHJvcHJpYXRlIEJSeC9PUnggcmVnaXN0ZXJzIGhhdmUgYWxyZWFkeSBiZWVuIHNldCB3aGVuIHdlCi0JICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ0ZHX1NEUkFNX0JBU0UuCisJICogZ2V0IGhlcmUuIFRoZSBTRFJBTSBjYW4gYmUgYWNjZXNzZWQgYXQgdGhlIGFkZHJlc3MgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogCSAqLwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX1BSRUE7CkBAIC0yODUsNyArMjg1LDcgQEAKIAkJKmJhc2UgPSBjOwogCiAJKnNkbXJfcHRyID0gc2RtciB8IFBTRE1SX09QX01SVzsKLQkqKGJhc2UgKyBDRkdfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCisJKihiYXNlICsgQ09ORklHX1NZU19NUlNfT0ZGUykgPSBjOwkvKiBzZXR0aW5nIE1SIG9uIGFkZHJlc3MgbGluZXMgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9OT1JNIHwgUFNETVJfUkZFTjsKIAkqYmFzZSA9IGM7CkBAIC0zMDgsMTAgKzMwOCwxMCBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCWxvbmcgc2l6ZTgsIHNpemU5OwogI2VuZGlmCiAJbG9uZyBwc2l6ZSwgbHNpemU7CkBAIC0zMTksOCArMzE5LDggQEAKIAlwc2l6ZSA9IDE2ICogMTAyNCAqIDEwMjQ7CiAJbHNpemUgPSAwOwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAogI2lmIDAJCQkJCQkJLyogSnVzdCBmb3IgZGVidWdnaW5nICovCiAjZGVmaW5lCXBydF9icl9vcihiclgsb3JYKSBkbyB7CQkJCVwKQEAgLTMzOCwzNyArMzM4LDM3IEBACiAJcHJ0X2JyX29yIChicjMsIG9yMyk7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiA2MHggU0RSQU0gc2V0dXA6CiAJICovCi0Jc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMV84Q09MLAotCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7Ci0Jc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOUNPTCwgQ0ZHX09SMV85Q09MLAotCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IxXzhDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IxXzlDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlwc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCIoNjB4OjlDT0wgLSAlbGQgTUIsICIsIHBzaXplID4+IDIwKTsKIAl9IGVsc2UgewotCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IxXzhDT0wsCi0JCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSk7CisJCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMV84Q09MLAorCQkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAkJcHJpbnRmICgiKDYweDo4Q09MIC0gJWxkIE1CLCAiLCBwc2l6ZSA+PiAyMCk7CiAJfQogCiAJLyogTG9jYWwgU0RSQU0gc2V0dXA6CiAJICovCi0jaWZkZWYgQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KLQltZW1jdGwtPm1lbWNfbHNydCA9IENGR19MU1JUOwotCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX0xTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0KKwltZW1jdGwtPm1lbWNfbHNydCA9IENPTkZJR19TWVNfTFNSVDsKKwlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfTFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKIAkJCQkJICAodWNoYXIgKikgU0RSQU1fQkFTRTJfUFJFTElNKTsKLQlzaXplOSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19MU0RNUl85Q09MLCBDRkdfT1IyXzlDT0wsCisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX0xTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IyXzlDT0wsCiAJCQkJCSAgKHVjaGFyICopIFNEUkFNX0JBU0UyX1BSRUxJTSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlsc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCJMb2NhbDo5Q09MIC0gJWxkIE1CKSB1c2luZyAiLCBsc2l6ZSA+PiAyMCk7CiAJfSBlbHNlIHsKLQkJbHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfTFNETVJfOENPTCwgQ0ZHX09SMl84Q09MLAorCQlsc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfTFNETVJfOENPTCwgQ09ORklHX1NZU19PUjJfOENPTCwKIAkJCQkJCSAgKHVjaGFyICopIFNEUkFNX0JBU0UyX1BSRUxJTSk7CiAJCXByaW50ZiAoIkxvY2FsOjhDT0wgLSAlbGQgTUIpIHVzaW5nICIsIGxzaXplID4+IDIwKTsKIAl9CkBAIC0zNzcsMTEgKzM3NywxMSBAQAogCS8qIFNldCB1cCBCUjIgc28gdGhhdCB0aGUgbG9jYWwgU0RSQU0gZ29lcwogCSAqIHJpZ2h0IGFmdGVyIHRoZSA2MHggU0RSQU0KIAkgKi8KLQltZW1jdGwtPm1lbWNfYnIyID0gKENGR19CUjJfUFJFTElNICYgfkJSeF9CQV9NU0spIHwKLQkJCShDRkdfU0RSQU1fQkFTRSArIHBzaXplKTsKKwltZW1jdGwtPm1lbWNfYnIyID0gKENPTkZJR19TWVNfQlIyX1BSRUxJTSAmIH5CUnhfQkFfTVNLKSB8CisJCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgcHNpemUpOwogI2VuZGlmCi0jZW5kaWYgLyogQ0ZHX0lOSVRfTE9DQUxfU0RSQU0gKi8KLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJaWNhY2hlX2VuYWJsZSAoKTsKIApAQCAtMzk0LDE3ICszOTQsMTcgQEAKIAogc3RhdGljIHZvaWQgY29uZmlnX3Njb2hfY3MgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwotCXZvbGF0aWxlIGNhbl9yZWdfdCAqY2FuID0gKHZvbGF0aWxlIGNhbl9yZWdfdCAqKSBDRkdfQ0FOMF9CQVNFOworCXZvbGF0aWxlIGNhbl9yZWdfdCAqY2FuID0gKHZvbGF0aWxlIGNhbl9yZWdfdCAqKSBDT05GSUdfU1lTX0NBTjBfQkFTRTsKIAl2b2xhdGlsZSB1aW50IHRtcCwgaTsKIAogCS8qIEluaXRpYWxpemUgT1IzIC8gQlIzIGZvciBDQU4gQnVzIENvbnRyb2xsZXIgMCAqLwotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfQ0FOMF9PUjM7Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19DQU4wX0JSMzsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19DQU4wX09SMzsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19DQU4wX0JSMzsKIAkvKiBJbml0aWFsaXplIE9SNCAvIEJSNCBmb3IgQ0FOIEJ1cyBDb250cm9sbGVyIDEgKi8KLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX0NBTjFfT1I0OwotCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQ0FOMV9CUjQ7CisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfQ0FOMV9PUjQ7CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQ0FOMV9CUjQ7CiAKIAkvKiBJbml0aWFsaXplIE1BTVIgdG8gd3JpdGUgaW4gdGhlIGFycmF5IGF0IGFkZHJlc3MgMHgwICovCiAJbWVtY3RsLT5tZW1jX21hbXIgPSAweDAwIHwgTXhNUl9PUF9XQVJSIHwgTXhNUl9HUExfeDRESVM7CkBAIC00ODcsMTkgKzQ4NywxOSBAQAogCiAKIAkvKiBJbml0aWFsaXplIE9SNSAvIEJSNSBmb3IgdGhlIGV4dGVuZGVkIEVFUFJPTSBCYW5rMCAqLwotCW1lbWN0bC0+bWVtY19vcjUgPSBDRkdfRVhUUFJPTV9PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19FWFRQUk9NX0JSNTsKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19FWFRQUk9NX09SNTsKKwltZW1jdGwtPm1lbWNfYnI1ID0gQ09ORklHX1NZU19FWFRQUk9NX0JSNTsKIAkvKiBJbml0aWFsaXplIE9SNiAvIEJSNiBmb3IgdGhlIGV4dGVuZGVkIEVFUFJPTSBCYW5rMSAqLwotCW1lbWN0bC0+bWVtY19vcjYgPSBDRkdfRVhUUFJPTV9PUjY7Ci0JbWVtY3RsLT5tZW1jX2JyNiA9IENGR19FWFRQUk9NX0JSNjsKKwltZW1jdGwtPm1lbWNfb3I2ID0gQ09ORklHX1NZU19FWFRQUk9NX09SNjsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19FWFRQUk9NX0JSNjsKIAogCS8qIEluaXRpYWxpemUgT1I3IC8gQlI3IGZvciB0aGUgR2x1ZSBMb2dpYyAqLwotCW1lbWN0bC0+bWVtY19vcjcgPSBDRkdfRklPWF9PUjc7Ci0JbWVtY3RsLT5tZW1jX2JyNyA9IENGR19GSU9YX0JSNzsKKwltZW1jdGwtPm1lbWNfb3I3ID0gQ09ORklHX1NZU19GSU9YX09SNzsKKwltZW1jdGwtPm1lbWNfYnI3ID0gQ09ORklHX1NZU19GSU9YX0JSNzsKIAogCS8qIEluaXRpYWxpemUgT1I4IC8gQlI4IGZvciB0aGUgRE9IIExvZ2ljICovCi0JbWVtY3RsLT5tZW1jX29yOCA9IENGR19GRE9ITV9PUjg7Ci0JbWVtY3RsLT5tZW1jX2JyOCA9IENGR19GRE9ITV9CUjg7CisJbWVtY3RsLT5tZW1jX29yOCA9IENPTkZJR19TWVNfRkRPSE1fT1I4OworCW1lbWN0bC0+bWVtY19icjggPSBDT05GSUdfU1lTX0ZET0hNX0JSODsKIAogCURFQlVHRiAoIk9SMCAlMDh4ICAgQlIwICUwOHhcbiIsIG1lbWN0bC0+bWVtY19vcjAsIG1lbWN0bC0+bWVtY19icjApOwogCURFQlVHRiAoIk9SMSAlMDh4ICAgQlIxICUwOHhcbiIsIG1lbWN0bC0+bWVtY19vcjEsIG1lbWN0bC0+bWVtY19icjEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9TTU40Mi9mbGFzaC5jIGIvYm9hcmQvc2llbWVucy9TTU40Mi9mbGFzaC5jCmluZGV4IGFlNjQwOTYuLjhjZjE3YjggMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpZW1lbnMvU01ONDIvZmxhc2guYworKysgYi9ib2FyZC9zaWVtZW5zL1NNTjQyL2ZsYXNoLmMKQEAgLTI1LDggKzI1LDggQEAKICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVtDRkdfTUFYX0ZMQVNIX0JBTktTXSA9IENGR19GTEFTSF9CQU5LU19MSVNUOwotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitzdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVDsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogZXh0ZXJuIGludCBscGMyMjkyX2NvcHlfYnVmZmVyX3RvX2ZsYXNoKGZsYXNoX2luZm9fdCAqLCB1bG9uZyk7CiBleHRlcm4gaW50IGxwYzIyOTJfZmxhc2hfZXJhc2UoZmxhc2hfaW5mb190ICosIGludCwgaW50KTsKQEAgLTE3MiwxOSArMTcyLDE5IEBACiAgKiBGcm9tIGhlcmUgb24gaXMgY29kZSBmb3IgdGhlIGV4dGVybmFsIFMyOUdMMTI4TiB0YWtlbiBmcm9tIGNhbTUyMDBfZmxhc2guYwogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSB1bnNpZ25lZCBzaG9ydAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB1bnNpZ25lZCBzaG9ydAogCiBzdGF0aWMgaW50IHdhaXRfZm9yX0RRN18zMihmbGFzaF9pbmZvX3QgKiBpbmZvLCBpbnQgc2VjdCkKIHsKIAl1bG9uZyBzdGFydCwgbm93LCBsYXN0OwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQotCQkoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0KKwkJKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKIAlzdGFydCA9IGdldF90aW1lcigwKTsKIAlsYXN0ID0gc3RhcnQ7Ci0Jd2hpbGUgKChhZGRyWzBdICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9Ci0JCQkoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwl3aGlsZSAoKGFkZHJbMF0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CisJCQkoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtMTk5LDggKzE5OSw4IEBACiAKIGludCBleHRfZmxhc2hfZXJhc2UoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdCwgcmV0OwogCiAJcmV0ID0gMDsKQEAgLTIzNiwxNCArMjM2LDE0IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCi0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OwotCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDMwMDAzMDsJLyogc2VjdG9yIGVyYXNlICovCisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODA7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKKwkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KIAogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC0yNjksOCArMjY5LDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAKIAlpZiAocmV0KQogCQlwcmludGYoIiBlcnJvclxuIik7CkBAIC0yODIsMjAgKzI4MiwyMCBAQAogc3RhdGljIHVsb25nIGZsYXNoX2dldF9zaXplKHZ1X2xvbmcgKiBhZGRyLCBmbGFzaF9pbmZvX3QgKiBpbmZvKQogewogCXNob3J0IGk7Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB2YWx1ZTsKIAl1bG9uZyBiYXNlID0gKHVsb25nKSBhZGRyOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgYWRkcjsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CiAJdWRlbGF5KDEwMDApOwogCiAJdmFsdWUgPSBhZGRyMlswXTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC0zMDgsMTIgKzMwOCwxMiBAQAogCXZhbHVlID0gYWRkcjJbMV07CS8qIGRldmljZSBJRCAgICAgICAgICAgICovCiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX01JUlJPUjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX01JUlJPUjoKIAkJCXZhbHVlID0gYWRkcjJbMTRdOwogCQkJc3dpdGNoKHZhbHVlKSB7Ci0JCQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSlBTURfSURfR0wxMjhOXzI6CisJCQkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0dMMTI4Tl8yOgogCQkJCQl2YWx1ZSA9IGFkZHIyWzE1XTsKLQkJCQkJaWYgKHZhbHVlICE9IChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9HTDEyOE5fMykgeworCQkJCQlpZiAodmFsdWUgIT0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9HTDEyOE5fMykgewogCQkJCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQkJCQl9IGVsc2UgewogCQkJCQkJaW5mby0+Zmxhc2hfaWQgKz0gRkxBU0hfUzI5R0wxMjhOOwpAQCAtMzQwLDEzICszNDAsMTMgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCiAJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMlsyXSAmIDE7CiAJfQogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEYwMDBGMDsKIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CkBAIC0zNTQsMTEgKzM1NCwxMSBAQAogc3RhdGljIHVuc2lnbmVkIGxvbmcgZXh0X2ZsYXNoX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGFsX2IgPSAwOwotCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NGR19NQVhfRkxBU0hfQkFOS1NdOworCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAxOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMTsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gLTE7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IDA7CkBAIC0zODQsOSArMzg0LDkgQEAKIAogc3RhdGljIGludCB3cml0ZV93b3JkKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVzaG9ydCBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmZGF0YTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGVzdDIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgZGVzdDsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgJmRhdGE7CiAJdWxvbmcgc3RhcnQ7CiAJaW50IGZsYWc7CiAKQEAgLTM5OCw5ICszOTgsOSBAQAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOwogCSpkZXN0MiA9ICpkYXRhMjsKIAogCS8qIHJlLWVuYWJsZSBpbnRlcnJ1cHRzIGlmIG5lY2Vzc2FyeSAqLwpAQCAtNDA5LDEwICs0MDksMTAgQEAKIAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lcigwKTsKLQl3aGlsZSAoKCpkZXN0MiAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkJKCpkYXRhMiAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgeworCXdoaWxlICgoKmRlc3QyICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkJKCpkYXRhMiAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlwcmludGYoIldSSVRFX1RPVVRcbiIpOwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9wY3VfZS9mbGFzaC5jIGIvYm9hcmQvc2llbWVucy9wY3VfZS9mbGFzaC5jCmluZGV4IDk3YjUxMWUuLjNjZTdiYjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpZW1lbnMvcGN1X2UvZmxhc2guYworKysgYi9ib2FyZC9zaWVtZW5zL3BjdV9lL2ZsYXNoLmMKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTQ3LDcgKzQ3LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC02OCwyMCArNjgsMjAgQEAKICAqLwogCiAjZGVmaW5lIFBDVV9NT05JVE9SX0JBU0UgICAoIChmbGFzaF9pbmZvWzBdLnN0YXJ0WzBdICsgZmxhc2hfaW5mb1swXS5zaXplIC0gMSkgXAotCQkJICAgLSAoMHhGRkZGRkZGRiAtIENGR19NT05JVE9SX0JBU0UpICkKKwkJCSAgIC0gKDB4RkZGRkZGRkYgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBiYXNlLCBzaXplX2IwLCBzaXplX2IxOwogCWludCBpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCkBAIC0xMzEsNyArMTMxLDcgQEAKIAogCS8qIFJlbWFwIEZMQVNIIGFjY29yZGluZyB0byByZWFsIHNpemUgKi8KIAliYXNlID0gMCAtIHNpemVfYjA7Ci0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKKwltZW1jdGwtPm1lbWNfb3IwID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjAgJiAweEZGRkY4MDAwKTsKIAltZW1jdGwtPm1lbWNfYnIwID0gKGJhc2UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVjsKIAogCURFQlVHRigiIyMgQlIwOiAweCUwOHggICAgT1IwOiAweCUwOHhcbiIsCkBAIC0xNjIsNyArMTYyLDcgQEAKIAlpZiAoc2l6ZV9iMSkgewogCQlmbGFzaF9pbmZvX3QgdG1wX2luZm87CiAKLQkJbWVtY3RsLT5tZW1jX29yNiA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjEgJiAweEZGRkY4MDAwKTsKKwkJbWVtY3RsLT5tZW1jX29yNiA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7CiAJCW1lbWN0bC0+bWVtY19icjYgPSAoKGJhc2UgLSBzaXplX2IxKSAmIEJSX0JBX01TSykgfAogCQkJCSAgICBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WOwogCkBAIC00MzcsMTAgKzQzNywxMCBAQAogI2VuZGlmCiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlzYWRkciA9ICh2dV9zaG9ydCAqKWluZm8tPnN0YXJ0WzBdOwpAQCAtNTI2LDcgKzUyNiw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X3Nob3J0KikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwKSAhPSAweDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTY2MCw3ICs2NjAsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAKLQlmb3IgKHBhc3NlZD0wOyBwYXNzZWQgPCBDRkdfRkxBU0hfV1JJVEVfVE9VVDsgcGFzc2VkPWdldF90aW1lcihzdGFydCkpIHsKKwlmb3IgKHBhc3NlZD0wOyBwYXNzZWQgPCBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQ7IHBhc3NlZD1nZXRfdGltZXIoc3RhcnQpKSB7CiAKIAkJc3ZhbCA9ICpzZGVzdDsKIApAQCAtNjgzLDcgKzY4Myw3IEBACiAJCSBkZXN0LCBzdmFsLCBzZGF0YSk7CiAJfQogCi0JaWYgKHBhc3NlZCA+PSBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChwYXNzZWQgPj0gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCURFQlVHRiAoIlRpbWVvdXQgQCBhZGRyIDB4JTA4bFg6IHZhbCAlMDRYIGRhdGEgJTA0WFxuIiwKIAkJCWRlc3QsIHN2YWwsIHNkYXRhKTsKIAkJcmMgPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc2llbWVucy9wY3VfZS9wY3VfZS5jIGIvYm9hcmQvc2llbWVucy9wY3VfZS9wY3VfZS5jCmluZGV4IDU2NDdmN2EuLmE2MGM4MjUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpZW1lbnMvcGN1X2UvcGN1X2UuYworKysgYi9ib2FyZC9zaWVtZW5zL3BjdV9lL3BjdV9lLmMKQEAgLTE1OCw3ICsxNTgsNyBAQAogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1yLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZV9iMCwgcmVnOwogCWludCBpOwpAQCAtMTY5LDcgKzE2OSw3IEBACiAJdXBtY29uZmlnIChVUE1BLCAodWludCAqKSBzZHJhbV90YWJsZSwKIAkJICAgc2l6ZW9mIChzZHJhbV90YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJLyogYnVyc3QgbGVuZ3RoPTQsIGJ1cnN0IHR5cGU9c2VxdWVudGlhbCwgQ0FTIGxhdGVuY3k9MiAqLwogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwpAQCAtMTc4LDE1ICsxNzgsMTUgQEAKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDIgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MJLyogWFhYICovCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjVfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjUgPSBDRkdfQlI1X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUjVfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNV9QUkVMSU07CiAjZWxzZSAgLyogWFhYICovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAjZW5kaWYgLyogWFhYICovCiAKIAkvKiBpbml0aWFsaXplIG1lbW9yeSBhZGRyZXNzIHJlZ2lzdGVyICovCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUjsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUjsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KIAogCS8qIG1vZGUgaW5pdGlhbGl6YXRpb24gKG9mZnNldCA1KSAqLwogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUwkvKiBYWFggKi8KQEAgLTI0MSwxMiArMjQxLDEyIEBACiAJICogQ2hlY2sgQmFuayAwIE1lbW9yeSBTaXplIGZvciByZS1jb25maWd1cmF0aW9uCiAJICovCiAjaWYgUENVX0VfV0lUSF9TV0FQUEVEX0NTCS8qIFhYWCAqLwotCXNpemVfYjAgPSBkcmFtX3NpemUgKENGR19NQU1SLCAobG9uZyAqKSBTRFJBTV9CQVNFNV9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKwlzaXplX2IwID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVIsIChsb25nICopIFNEUkFNX0JBU0U1X1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogI2Vsc2UgIC8qIFhYWCAqLwotCXNpemVfYjAgPSBkcmFtX3NpemUgKENGR19NQU1SLCAobG9uZyAqKSBTRFJBTV9CQVNFMl9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKwlzaXplX2IwID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01BTVIsIChsb25nICopIFNEUkFNX0JBU0UyX1BSRUxJTSwgU0RSQU1fTUFYX1NJWkUpOwogI2VuZGlmIC8qIFhYWCAqLwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUiB8IE1BTVJfUFRBRTsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUiB8IE1BTVJfUFRBRTsKIAogCS8qCiAJICogRmluYWwgbWFwcGluZzoKQEAgLTI1NCwxMCArMjU0LDEwIEBACiAKICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MJLyogWFhYICovCiAJbWVtY3RsLT5tZW1jX29yNSA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBTRFJBTV9USU1JTkc7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwltZW1jdGwtPm1lbWNfYnI1ID0gKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKICNlbHNlICAvKiBYWFggKi8KIAltZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IFNEUkFNX1RJTUlORzsKLQltZW1jdGwtPm1lbWNfYnIyID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjIgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WOwogI2VuZGlmIC8qIFhYWCAqLwogCXVkZWxheSAoMTAwMCk7CiAKQEAgLTI4Myw3ICsyODMsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjk0LDI5ICsyOTQsMjkgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUwkvKiBYWFggKi8KLSNkZWZpbmUJRVRIX0NGR19CSVRTCShDRkdfUEJfRVRIX0NGRzEgfCBDRkdfUEJfRVRIX0NGRzIgIHwgQ0ZHX1BCX0VUSF9DRkczICkKKyNkZWZpbmUJRVRIX0NGR19CSVRTCShDT05GSUdfU1lTX1BCX0VUSF9DRkcxIHwgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMiAgfCBDT05GSUdfU1lTX1BCX0VUSF9DRkczICkKICNlbHNlICAvKiBYWFggKi8KLSNkZWZpbmUJRVRIX0NGR19CSVRTCShDRkdfUEJfRVRIX01ERElTIHwgQ0ZHX1BCX0VUSF9DRkcxIHwgXAotCQkJIENGR19QQl9FVEhfQ0ZHMiAgfCBDRkdfUEJfRVRIX0NGRzMgKQorI2RlZmluZQlFVEhfQ0ZHX0JJVFMJKENPTkZJR19TWVNfUEJfRVRIX01ERElTIHwgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMSB8IFwKKwkJCSBDT05GSUdfU1lTX1BCX0VUSF9DRkcyICB8IENPTkZJR19TWVNfUEJfRVRIX0NGRzMgKQogI2VuZGlmIC8qIFhYWCAqLwogCi0jZGVmaW5lIEVUSF9BTExfQklUUwkoRVRIX0NGR19CSVRTIHwgQ0ZHX1BCX0VUSF9QT1dFUkRPV04gfCBDRkdfUEJfRVRIX1JFU0VUKQorI2RlZmluZSBFVEhfQUxMX0JJVFMJKEVUSF9DRkdfQklUUyB8IENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTiB8IENPTkZJR19TWVNfUEJfRVRIX1JFU0VUKQogCiB2b2lkIHJlc2V0X3BoeSAodm9pZCkKIHsKLQlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyB2YWx1ZTsKIAogCS8qIENvbmZpZ3VyZSBhbGwgbmVlZGVkIHBvcnQgcGlucyBmb3IgR1BJTyAqLwogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUwkvKiBYWFggKi8KLSMgaWZkZWYgQ0ZHX0VUSF9NRERJU19WQUxVRQotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgfD0gQ0ZHX1BBX0VUSF9NRERJUzsKKyMgaWZkZWYgQ09ORklHX1NZU19FVEhfTURESVNfVkFMVUUKKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0IHw9IENPTkZJR19TWVNfUEFfRVRIX01ERElTOwogIyBlbHNlCi0JaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+KENGR19QQV9FVEhfTURESVMpOwkvKiBTZXQgbG93ICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+KENPTkZJR19TWVNfUEFfRVRIX01ERElTKTsJLyogU2V0IGxvdyAqLwogIyBlbmRpZgotCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfihDRkdfUEFfRVRIX01ERElTKTsJLyogR1BJTyAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDRkdfUEFfRVRIX01ERElTKTsJLyogYWN0aXZlIG91dHB1dCAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkaXIgfD0gQ0ZHX1BBX0VUSF9NRERJUzsJLyogb3V0cHV0ICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wYXBhciAmPSB+KENPTkZJR19TWVNfUEFfRVRIX01ERElTKTsJLyogR1BJTyAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDT05GSUdfU1lTX1BBX0VUSF9NRERJUyk7CS8qIGFjdGl2ZSBvdXRwdXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9IENPTkZJR19TWVNfUEFfRVRIX01ERElTOwkvKiBvdXRwdXQgKi8KICNlbmRpZiAvKiBYWFggKi8KIAlpbW1yLT5pbV9jcG0uY3BfcGJwYXIgJj0gfihFVEhfQUxMX0JJVFMpOwkvKiBHUElPICovCiAJaW1tci0+aW1fY3BtLmNwX3Bib2RyICY9IH4oRVRIX0FMTF9CSVRTKTsJLyogYWN0aXZlIG91dHB1dCAqLwpAQCAtMzI0LDMxICszMjQsMzEgQEAKIAl2YWx1ZSA9IGltbXItPmltX2NwbS5jcF9wYmRhdDsKIAogCS8qIEFzc2VydCBQb3dlcmRvd24gYW5kIFJlc2V0IHNpZ25hbHMgKi8KLQl2YWx1ZSB8PSBDRkdfUEJfRVRIX1BPV0VSRE9XTjsKLQl2YWx1ZSAmPSB+KENGR19QQl9FVEhfUkVTRVQpOworCXZhbHVlIHw9IENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTjsKKwl2YWx1ZSAmPSB+KENPTkZJR19TWVNfUEJfRVRIX1JFU0VUKTsKIAogCS8qIFBIWSBjb25maWd1cmF0aW9uIGluY2x1ZGVzIE1ERElTIGFuZCBDRkcxIC4uLiBDRkczICovCiAjaWYgIVBDVV9FX1dJVEhfU1dBUFBFRF9DUwotIyBpZmRlZiBDRkdfRVRIX01ERElTX1ZBTFVFCi0JdmFsdWUgfD0gQ0ZHX1BCX0VUSF9NRERJUzsKKyMgaWZkZWYgQ09ORklHX1NZU19FVEhfTURESVNfVkFMVUUKKwl2YWx1ZSB8PSBDT05GSUdfU1lTX1BCX0VUSF9NRERJUzsKICMgZWxzZQotCXZhbHVlICY9IH4oQ0ZHX1BCX0VUSF9NRERJUyk7CisJdmFsdWUgJj0gfihDT05GSUdfU1lTX1BCX0VUSF9NRERJUyk7CiAjIGVuZGlmCiAjZW5kaWYKLSNpZmRlZiBDRkdfRVRIX0NGRzFfVkFMVUUKLQl2YWx1ZSB8PSBDRkdfUEJfRVRIX0NGRzE7CisjaWZkZWYgQ09ORklHX1NZU19FVEhfQ0ZHMV9WQUxVRQorCXZhbHVlIHw9IENPTkZJR19TWVNfUEJfRVRIX0NGRzE7CiAjZWxzZQotCXZhbHVlICY9IH4oQ0ZHX1BCX0VUSF9DRkcxKTsKKwl2YWx1ZSAmPSB+KENPTkZJR19TWVNfUEJfRVRIX0NGRzEpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0VUSF9DRkcyX1ZBTFVFCi0JdmFsdWUgfD0gQ0ZHX1BCX0VUSF9DRkcyOworI2lmZGVmIENPTkZJR19TWVNfRVRIX0NGRzJfVkFMVUUKKwl2YWx1ZSB8PSBDT05GSUdfU1lTX1BCX0VUSF9DRkcyOwogI2Vsc2UKLQl2YWx1ZSAmPSB+KENGR19QQl9FVEhfQ0ZHMik7CisJdmFsdWUgJj0gfihDT05GSUdfU1lTX1BCX0VUSF9DRkcyKTsKICNlbmRpZgotI2lmZGVmIENGR19FVEhfQ0ZHM19WQUxVRQotCXZhbHVlIHw9IENGR19QQl9FVEhfQ0ZHMzsKKyNpZmRlZiBDT05GSUdfU1lTX0VUSF9DRkczX1ZBTFVFCisJdmFsdWUgfD0gQ09ORklHX1NZU19QQl9FVEhfQ0ZHMzsKICNlbHNlCi0JdmFsdWUgJj0gfihDRkdfUEJfRVRIX0NGRzMpOworCXZhbHVlICY9IH4oQ09ORklHX1NZU19QQl9FVEhfQ0ZHMyk7CiAjZW5kaWYKIAogCS8qIERyaXZlIG91dHB1dCBzaWduYWxzIHRvIGluaXRpYWwgc3RhdGUgKi8KQEAgLTM1NywxMSArMzU3LDExIEBACiAJdWRlbGF5ICgxMDAwMCk7CiAKIAkvKiBEZS1hc3NlcnQgRXRoZXJuZXQgUG93ZXJkb3duICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ0ZHX1BCX0VUSF9QT1dFUkRPV04pOwkvKiBFbmFibGUgUEhZIHBvd2VyICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOKTsJLyogRW5hYmxlIFBIWSBwb3dlciAqLwogCXVkZWxheSAoMTAwMDApOwogCiAJLyogZGUtYXNzZXJ0IFJFU0VUIHNpZ25hbCBvZiBQSFkgKi8KLQlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgfD0gQ0ZHX1BCX0VUSF9SRVNFVDsKKwlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgfD0gQ09ORklHX1NZU19QQl9FVEhfUkVTRVQ7CiAJdWRlbGF5ICgxMDAwKTsKIH0KIApAQCAtNDE0LDcgKzQxNCw3IEBACiAKIHN0YXRpYyB2b2lkIHB1bWFfc2V0X21vZGUgKGludCBtb2RlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCiAJLyogZGlzYWJsZSBQVU1BIGluIG1lbW9yeSBjb250cm9sbGVyICovCkBAIC00NTIsNyArNDUyLDcgQEAKIAogc3RhdGljIHZvaWQgcHVtYV9sb2FkICh1bG9uZyBhZGRyLCB1bG9uZyBsZW4pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgdWNoYXIgKmZwZ2FfYWRkciA9ICh2b2xhdGlsZSB1Y2hhciAqKSBQVU1BX0NPTkZfQkFTRTsJLyogWFhYID8/PyAqLwogCXVjaGFyICpkYXRhID0gKHVjaGFyICopIGFkZHI7CiAJaW50IGk7CkBAIC00NjIsMzMgKzQ2MiwzMyBAQAogCQkrK2xlbjsKIAogCS8qIFJlc2V0IEZQR0EgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH4oQ0ZHX1BDX1BVTUFfSU5JVCk7CS8qIG1ha2UgaW5wdXQgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gICY9IH4oQ0ZHX1BDX1BVTUFfSU5JVCk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciAmPSB+KENGR19QQ19QVU1BX0lOSVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDT05GSUdfU1lTX1BDX1BVTUFfSU5JVCk7CS8qIG1ha2UgaW5wdXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3Bjc28gICY9IH4oQ09ORklHX1NZU19QQ19QVU1BX0lOSVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgJj0gfihDT05GSUdfU1lTX1BDX1BVTUFfSU5JVCk7CiAKICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MJLyogWFhYICovCi0JaW1tci0+aW1fY3BtLmNwX3BicGFyICY9IH4oQ0ZHX1BCX1BVTUFfUFJPRyk7CQkvKiBHUElPICovCi0JaW1tci0+aW1fY3BtLmNwX3Bib2RyICY9IH4oQ0ZHX1BCX1BVTUFfUFJPRyk7CQkvKiBhY3RpdmUgb3V0cHV0ICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ0ZHX1BCX1BVTUFfUFJPRyk7CQkvKiBTZXQgbG93ICovCi0JaW1tci0+aW1fY3BtLmNwX3BiZGlyIHw9ICAgQ0ZHX1BCX1BVTUFfUFJPRzsJCS8qIG91dHB1dCAqLworCWltbXItPmltX2NwbS5jcF9wYnBhciAmPSB+KENPTkZJR19TWVNfUEJfUFVNQV9QUk9HKTsJCS8qIEdQSU8gKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJvZHIgJj0gfihDT05GSUdfU1lTX1BCX1BVTUFfUFJPRyk7CQkvKiBhY3RpdmUgb3V0cHV0ICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oQ09ORklHX1NZU19QQl9QVU1BX1BST0cpOwkJLyogU2V0IGxvdyAqLworCWltbXItPmltX2NwbS5jcF9wYmRpciB8PSAgIENPTkZJR19TWVNfUEJfUFVNQV9QUk9HOwkJLyogb3V0cHV0ICovCiAjZWxzZQotCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfihDRkdfUEFfUFVNQV9QUk9HKTsJLyogR1BJTyAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkYXQgJj0gfihDRkdfUEFfUFVNQV9QUk9HKTsJLyogU2V0IGxvdyAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDRkdfUEFfUFVNQV9QUk9HKTsJLyogYWN0aXZlIG91dHB1dCAqLwotCWltbXItPmltX2lvcG9ydC5pb3BfcGFkaXIgfD0gICBDRkdfUEFfUFVNQV9QUk9HOwkvKiBvdXRwdXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhcGFyICY9IH4oQ09ORklHX1NZU19QQV9QVU1BX1BST0cpOwkvKiBHUElPICovCisJaW1tci0+aW1faW9wb3J0LmlvcF9wYWRhdCAmPSB+KENPTkZJR19TWVNfUEFfUFVNQV9QUk9HKTsJLyogU2V0IGxvdyAqLworCWltbXItPmltX2lvcG9ydC5pb3BfcGFvZHIgJj0gfihDT05GSUdfU1lTX1BBX1BVTUFfUFJPRyk7CS8qIGFjdGl2ZSBvdXRwdXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGlyIHw9ICAgQ09ORklHX1NZU19QQV9QVU1BX1BST0c7CS8qIG91dHB1dCAqLwogI2VuZGlmIC8qIFhYWCAqLwogCXVkZWxheSAoMTAwKTsKIAogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUwkvKiBYWFggKi8KLQlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgfD0gQ0ZHX1BCX1BVTUFfUFJPRzsJLyogcmVsZWFzZSByZXNldCAqLworCWltbXItPmltX2NwbS5jcF9wYmRhdCB8PSBDT05GSUdfU1lTX1BCX1BVTUFfUFJPRzsJLyogcmVsZWFzZSByZXNldCAqLwogI2Vsc2UKLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0IHw9IENGR19QQV9QVU1BX1BST0c7CS8qIHJlbGVhc2UgcmVzZXQgKi8KKwlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGF0IHw9IENPTkZJR19TWVNfUEFfUFVNQV9QUk9HOwkvKiByZWxlYXNlIHJlc2V0ICovCiAjZW5kaWYgLyogWFhYICovCiAKIAkvKiB3YWl0IHVudGlsIElOSVQgaW5kaWNhdGVzIGNvbXBsZXRpb24gb2YgcmVzZXQgKi8KIAlmb3IgKGkgPSAwOyBpIDwgUFVNQV9JTklUX1RJTUVPVVQ7ICsraSkgewogCQl1ZGVsYXkgKDEwMDApOwotCQlpZiAoaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmIENGR19QQ19QVU1BX0lOSVQpCisJCWlmIChpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgQ09ORklHX1NZU19QQ19QVU1BX0lOSVQpCiAJCQlicmVhazsKIAl9CiAJaWYgKGkgPT0gUFVNQV9JTklUX1RJTUVPVVQpIHsKQEAgLTUxOSwxNCArNTE5LDE0IEBACiAKIHN0YXRpYyBpbnQgcHVtYV9pbml0X2RvbmUgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKiBtYWtlIHN1cmUgcGluIGlzIEdQSU8gaW5wdXQgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH4oQ0ZHX1BDX1BVTUFfRE9ORSk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY3NvICY9IH4oQ0ZHX1BDX1BVTUFfRE9ORSk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciAmPSB+KENGR19QQ19QVU1BX0RPTkUpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDT05GSUdfU1lTX1BDX1BVTUFfRE9ORSk7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3NvICY9IH4oQ09ORklHX1NZU19QQ19QVU1BX0RPTkUpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgJj0gfihDT05GSUdfU1lTX1BDX1BVTUFfRE9ORSk7CiAKLQlyZXR1cm4gKGltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJiBDRkdfUENfUFVNQV9ET05FKSA/IDEgOiAwOworCXJldHVybiAoaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCAmIENPTkZJR19TWVNfUENfUFVNQV9ET05FKSA/IDEgOiAwOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9ib2FyZC9zaXhuZXQvZmxhc2guYyBiL2JvYXJkL3NpeG5ldC9mbGFzaC5jCmluZGV4IDNmMjMyOTkuLmE4ZGZjYTggMTAwNjQ0Ci0tLSBhL2JvYXJkL3NpeG5ldC9mbGFzaC5jCisrKyBiL2JvYXJkL3NpeG5ldC9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAgKi8KICNpbmNsdWRlIDxlbnZpcm9ubWVudC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyogTk9URSAtIENPTkZJR19GTEFTSF8xNkJJVCBtZWFucyB0aGUgQ1BVIGludGVyZmFjZSBpcyAxNi1iaXQsIGl0CiAgKiAgICAgICAgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgZmxhc2ggY2hpcCBiZWluZyA4LWJpdCBvciAxNi1iaXQuCkBAIC01Niw3ICs1Niw3IEBACiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfaW50ZWwoZmxhc2hfaW5mb190ICppbmZvLCBGUFdWICpkZXN0LCBGUFcgZGF0YSk7CiBzdGF0aWMgaW50IHdyaXRlX3dvcmRfYW1kKGZsYXNoX2luZm9fdCAqaW5mbywgRlBXViAqZGVzdCwgRlBXIGRhdGEpOwogc3RhdGljIHZvaWQgZmxhc2hfZ2V0X29mZnNldHModWxvbmcgYmFzZSwgZmxhc2hfaW5mb190ICppbmZvKTsKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogc3RhdGljIHZvaWQgZmxhc2hfc3luY19yZWFsX3Byb3RlY3QoZmxhc2hfaW5mb190ICppbmZvKTsKICNlbmRpZgogCkBAIC02NywxNyArNjcsMTcgQEAKICAqLwogdW5zaWduZWQgbG9uZyBmbGFzaF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyBzaXplX2I7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCi0Jc2l6ZV9iID0gZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJc2l6ZV9iID0gZmxhc2hfZ2V0X3NpemUoKEZQVyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZV9iOwogCkBAIC05MSwyMCArOTEsMjAgQEAKIAkvKiBEbyB0aGlzIGFnYWluICh3YXMgZG9uZSBhbHJlYWR5IGluIGZsYXN0X2dldF9zaXplKSwganVzdAogCSAqIGluIGNhc2Ugd2UgbW92ZSBpdCB3aGVuIHJlbWFwIHRoZSBGTEFTSC4KIAkgKi8KLQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCS8qIHJlYWQgdGhlIGhhcmR3YXJlIHByb3RlY3Rpb24gc3RhdHVzIChpZiBhbnkpIGludG8gdGhlCiAJICogcHJvdGVjdGlvbiBhcnJheSBpbiBmbGFzaF9pbmZvLgogCSAqLwogCWZsYXNoX3N5bmNfcmVhbF9wcm90ZWN0KCZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtNDA1LDcgKzQwNSw3IEBACiAJcmV0dXJuIChpbmZvLT5zaXplKTsKIH0KIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtNTQ0LDcgKzU0NCw3IEBACiAJCXVkZWxheSAoMTAwMCk7CiAKIAkJd2hpbGUgKCgqYWRkciAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAogCQkJCWlmIChpbnRlbCkgewpAQCAtNjYzLDcgKzY2Myw3IEBACiAKICAgICAvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAoRlBXKTB4MDA4MDAwODApKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwRjAwMEYwOwkvKiByZXNldCBiYW5rICovCiAJICAgIHJlcyA9IDE7CiAJfQpAQCAtNzA5LDcgKzcwOSw3IEBACiAgICAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCiAgICAgd2hpbGUgKHJlcyA9PSAwICYmICgqZGVzdCAmIChGUFcpMHgwMDgwMDA4MCkgIT0gKEZQVykweDAwODAwMDgwKSB7Ci0JaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJICAgICpkZXN0ID0gKEZQVykweDAwQjAwMEIwOwkvKiBTdXNwZW5kIHByb2dyYW0JKi8KIAkgICAgcmVzID0gMTsKIAl9CkBAIC03MjQsNyArNzI0LDcgQEAKICAgICByZXR1cm4gKHJlcyk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiBpbnQgZmxhc2hfcmVhbF9wcm90ZWN0IChmbGFzaF9pbmZvX3QgKiBpbmZvLCBsb25nIHNlY3RvciwgaW50IHByb3QpCmRpZmYgLS1naXQgYS9ib2FyZC9zaXhuZXQvc2l4bmV0LmMgYi9ib2FyZC9zaXhuZXQvc2l4bmV0LmMKaW5kZXggZGNkMzQ3Mi4uM2VkNTgxZSAxMDA2NDQKLS0tIGEvYm9hcmQvc2l4bmV0L3NpeG5ldC5jCisrKyBiL2JvYXJkL3NpeG5ldC9zaXhuZXQuYwpAQCAtMzUsNyArMzUsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpCiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+Ci1leHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NGR19NQVhfTkFORF9ERVZJQ0VdOworZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CiAjZW5kaWYKIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CkBAIC0xMzMsNyArMTMzLDcgQEAKICNkZWZpbmUgRlBHQV9ET05FCTB4MDA4MAkvKiBQQTgsIGlucHV0LCBoaWdoIHdoZW4gRlBHQSBsb2FkIGNvbXBsZXRlICovCiAjZGVmaW5lIEZQR0FfUFJPR1JBTV9MCTB4MDA0MAkvKiBQQTksIG91dHB1dCwgbG93IHRvIHJlc2V0LCBoaWdoIHRvIHN0YXJ0ICovCiAjZGVmaW5lIEZQR0FfSU5JVF9MCTB4MDAyMAkvKiBQQTEwLCBpbnB1dCwgbG93IGluZGljYXRlcyBub3QgcmVhZHkJKi8KLSNkZWZpbmUgZnBnYSAoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENGR19GUEdBX1BST0cpKQkvKiBGUEdBIHBvcnQgKi8KKyNkZWZpbmUgZnBnYSAoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfRlBHQV9QUk9HKSkJLyogRlBHQSBwb3J0ICovCiAKIGludCBib2FyZF9wb3N0Y2xrX2luaXQgKHZvaWQpCiB7CkBAIC0xNDMsNyArMTQzLDcgQEAKICMgaW5jbHVkZSAiZnBnYWRhdGEuYyIKIAl9OwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAjZGVmaW5lIHBvcnRhIChpbW1hcC0+aW1faW9wb3J0LmlvcF9wYWRhdCkKIAljb25zdCB1bnNpZ25lZCBjaGFyKiBwZGF0YTsKQEAgLTI0NywxMCArMjQ3LDEwIEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIGJhc2UgYWRkcmVzcyBmb3IgU1JBTSwgYXNzdW1lIDMyLWJpdCBwb3J0LCAgdmFsaWQgKi8KLSNkZWZpbmUgTlZSQU1fQlJfVkFMVUUgICAoQ0ZHX1NSQU1fQkFTRSB8IEJSX1BTXzMyIHwgQlJfVikKKyNkZWZpbmUgTlZSQU1fQlJfVkFMVUUgICAoQ09ORklHX1NZU19TUkFNX0JBU0UgfCBCUl9QU18zMiB8IEJSX1YpCiAKIC8qICB1cCB0byA2NE1CIC0gd2lsbCBiZSBhZGp1c3RlZCBmb3IgYWN0dWFsIHNpemUgKi8KLSNkZWZpbmUgTlZSQU1fT1JfUFJFTElNICAoT1JNQVNLKENGR19TUkFNX1NJWkUpIFwKKyNkZWZpbmUgTlZSQU1fT1JfUFJFTElNICAoT1JNQVNLKENPTkZJR19TWVNfU1JBTV9TSVpFKSBcCiAJfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfNV9DTEsgfCBPUl9FSFRSKQogLyoKICAqIE1pc2NlbGxhbmVvdXMgcGxhdGZvcm0gZGVwZW5kZW50IGluaXRpYWxpemF0aW9ucyBhZnRlciBydW5uaW5nIGluIFJBTS4KQEAgLTI1OCw3ICsyNTgsNyBAQAogCiBpbnQgbWlzY19pbml0X3IgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJY2hhciogczsKIAljaGFyKiBlOwpAQCAtMjcxLDcgKzI3MSw3IEBACiAJLyogSXMgdGhlcmUgYW55IFNSQU0/IElzIGl0IDE2IG9yIDMyIGJpdHMgd2lkZT8gKi8KIAogCS8qIEZpcnN0IGxvb2sgZm9yIDMyLWJpdCBTUkFNICovCi0JYmQtPmJpX3NyYW1zaXplID0gcmFtX3NpemUoKHVsb25nKilDRkdfU1JBTV9CQVNFLCBDRkdfU1JBTV9TSVpFKTsKKwliZC0+Ymlfc3JhbXNpemUgPSByYW1fc2l6ZSgodWxvbmcqKUNPTkZJR19TWVNfU1JBTV9CQVNFLCBDT05GSUdfU1lTX1NSQU1fU0laRSk7CiAKIAlpZiAoYmQtPmJpX3NyYW1zaXplID09IDApIHsKIAkgICAgLyogbm8gMzItYml0IFNSQU0sIGJ1dCB0aGVyZSBjb3VsZCBiZSAxNi1iaXQgU1JBTSBzaW5jZQpAQCAtMjc5LDcgKzI3OSw3IEBACiAJICAgICAqIFRyeSBhZ2FpbiB3aXRoIGEgMTYtYml0IGJ1cy4KIAkgICAgICovCiAJICAgIG1lbWN0bC0+bWVtY19icjIgfD0gQlJfUFNfMTY7Ci0JICAgIGJkLT5iaV9zcmFtc2l6ZSA9IHJhbV9zaXplKCh1bG9uZyopQ0ZHX1NSQU1fQkFTRSwgQ0ZHX1NSQU1fU0laRSk7CisJICAgIGJkLT5iaV9zcmFtc2l6ZSA9IHJhbV9zaXplKCh1bG9uZyopQ09ORklHX1NZU19TUkFNX0JBU0UsIENPTkZJR19TWVNfU1JBTV9TSVpFKTsKIAl9CiAKIAlpZiAoYmQtPmJpX3NyYW1zaXplID09IDApIHsKQEAgLTI4OCw3ICsyODgsNyBAQAogCWVsc2UgewogCSAgICAvKiBhZGp1c3Qgb3IyIGZvciBhY3R1YWwgc2l6ZSBvZiBTUkFNICovCiAJICAgIG1lbWN0bC0+bWVtY19vcjIgfD0gT1JNQVNLKGJkLT5iaV9zcmFtc2l6ZSk7Ci0JICAgIGJkLT5iaV9zcmFtc3RhcnQgPSBDRkdfU1JBTV9CQVNFOworCSAgICBiZC0+Ymlfc3JhbXN0YXJ0ID0gQ09ORklHX1NZU19TUkFNX0JBU0U7CiAJICAgIHByaW50ZigiU1JBTTogICVsdSBLQlxuIiwgYmQtPmJpX3NyYW1zaXplID4+IDEwKTsKIAl9CiAKQEAgLTMzMCw3ICszMzAsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogdm9pZCBuYW5kX2luaXQodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIHRvdGxlbiA9IG5hbmRfcHJvYmUoQ0ZHX0RGTEFTSF9CQVNFKTsKKwl1bnNpZ25lZCBsb25nIHRvdGxlbiA9IG5hbmRfcHJvYmUoQ09ORklHX1NZU19ERkxBU0hfQkFTRSk7CiAKIAlwcmludGYgKCIlNGx1IE1CXG4iLCB0b3RsZW4gPj4gMjApOwogfQpAQCAtNDk4LDcgKzQ5OCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVpbnQgc2l6ZV9zZHJhbSA9IDA7CiAJdWludCBzaXplX3NkcmFtOSA9IDA7CmRpZmYgLS1naXQgYS9ib2FyZC9zbDgyNDUvZmxhc2guYyBiL2JvYXJkL3NsODI0NS9mbGFzaC5jCmluZGV4IGM3ODdiZmIuLjQ0NTViNjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NsODI0NS9mbGFzaC5jCisrKyBiL2JvYXJkL3NsODI0NS9mbGFzaC5jCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9TSVpFCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCUNPTkZJR19FTlZfU0VDVF9TSVpFCkBAIC00Myw3ICs0Myw3IEBACiAjZGVmaW5lIFBBUkFNX1NFQ1QyM19TSVpFIDB4ODAwMAogI2RlZmluZSBQQVJBTV9TRUNUNF9TSVpFIDB4MTAwMDAKIAotZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgICAgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIHN0YXRpYyBpbnQgd3JpdGVfZGF0YSAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyAqZGF0YSk7CiBzdGF0aWMgdm9pZCB3cml0ZV92aWFfZnB1KHZ1X2xvbmcgKmFkZHIsIHVsb25nICpkYXRhKTsKQEAgLTc5LDggKzc5LDggQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKLQkJdnVfbG9uZyAqYWRkciA9ICh2dV9sb25nICopIChDRkdfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUpOworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSk7CiAKIAkJd3JpdGVfdmlhX2ZwdSAoJmFkZHJbMHhhYWFdLCBwcmVjbWQwKTsKIAkJd3JpdGVfdmlhX2ZwdSAoJmFkZHJbMHg1NTRdLCBwcmVjbWQxKTsKQEAgLTEwOCwxMCArMTA4LDEwIEBACiAJCXdyaXRlX3ZpYV9mcHUgKGFkZHIsIGNtZHJlcyk7CiAKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gRkxBU0hfQkFOS19TSVpFOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKLQkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCQlmb3IgKGogPSAwOyBqIDwgMzI7IGorKykgewotCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9IENGR19GTEFTSF9CQVNFICsKKwkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKwogCQkJCQlpICogRkxBU0hfQkFOS19TSVpFICsgaiAqIE1BSU5fU0VDVF9TSVpFOwogCQl9CiAJCWZsYXNoX2luZm9baV0uc3RhcnRbMzJdID0KQEAgLTEyNSwyMiArMTI1LDIyIEBACiAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCUNGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMV0pOwogI2Vsc2UKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19NT05JVE9SX0JBU0UsCi0JCQlDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpICYmIGRlZmluZWQoQ09ORklHX0VOVl9BRERSKQotI2lmIENPTkZJR19FTlZfQUREUiA+PSBDRkdfRkxBU0hfQkFTRSArIEZMQVNIX0JBTktfU0laRQorI2lmIENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBGTEFTSF9CQU5LX1NJWkUKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKIAkJCUNPTkZJR19FTlZfQUREUiwKIAkJCUNPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSAtIDEsICZmbGFzaF9pbmZvWzFdKTsKQEAgLTI2Nyw3ICsyNjcsNyBAQAogCiAJCQl3aGlsZSAoKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgfHwKIAkJCQkgICAoKGFkZHJbMV0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSkgewotCQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJd3JpdGVfdmlhX2ZwdSAoYWRkciwgY21kZXJzdXNwKTsKIAkJCQkJd3JpdGVfdmlhX2ZwdSAoYWRkciwgY21kcmVzKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQAogCiAJd2hpbGUgKCgoYWRkclswXSAmIDB4MDA4MDAwODApICE9IChkYXRhWzBdICYgMHgwMDgwMDA4MCkpIHx8CiAJICAgICAgICgoYWRkclsxXSAmIDB4MDA4MDAwODApICE9IChkYXRhWzFdICYgMHgwMDgwMDA4MCkpKSB7Ci0JCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJd3JpdGVfdmlhX2ZwdSAoY2hpcCwgY21kcmVzKTsKIAkJCXJldHVybiAoMSk7CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3NsODI0NS9zbDgyNDUuYyBiL2JvYXJkL3NsODI0NS9zbDgyNDUuYwppbmRleCAyNWFkYzI4Li5lODQ5ZTAxIDEwMDY0NAotLS0gYS9ib2FyZC9zbDgyNDUvc2w4MjQ1LmMKKysrIGIvYm9hcmQvc2w4MjQ1L3NsODI0NS5jCkBAIC0zNywxMyArMzcsMTMgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAlsb25nIHNpemU7CiAJbG9uZyBuZXdfYmFuazBfZW5kOwogCWxvbmcgbWVhcjE7CiAJbG9uZyBlbWVhcjE7CiAKLQlzaXplID0gZ2V0X3JhbV9zaXplKENGR19TRFJBTV9CQVNFLCBDRkdfTUFYX1JBTV9TSVpFKTsKKwlzaXplID0gZ2V0X3JhbV9zaXplKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUpOwogCiAJbmV3X2JhbmswX2VuZCA9IHNpemUgLSAxOwogCW1lYXIxID0gbXBjODI0eF9tcGMxMDdfZ2V0cmVnKE1FQVIxKTsKQEAgLTU3LDcgKzU3LDcgQEAKIAogCXJldHVybiAoc2l6ZSk7CiAjZWxzZQotCXJldHVybiBDRkdfTUFYX1JBTV9TSVpFOworCXJldHVybiBDT05GSUdfU1lTX01BWF9SQU1fU0laRTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9ib2FyZC9zbWRrMjQwMC9mbGFzaC5jIGIvYm9hcmQvc21kazI0MDAvZmxhc2guYwppbmRleCBhZjQ2YmY2Li45ZWVlNjBkIDEwMDY0NAotLS0gYS9ib2FyZC9zbWRrMjQwMC9mbGFzaC5jCisrKyBiL2JvYXJkL3NtZGsyNDAwL2ZsYXNoLmMKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFIDB4MTAwMDAwMAkvKiAyIHggICA4IE1CICovCiAjZGVmaW5lIE1BSU5fU0VDVF9TSVpFICAweDQwMDAwCQkvKiAyIHggMTI4IGtCICovCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKICNkZWZpbmUgQ01EX1JFQURfQVJSQVkJCTB4MDBGRjAwRkYKQEAgLTY2LDE3ICs2NiwxNyBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCXVsb25nIGZsYXNoYmFzZSA9IDA7CiAKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9CiAJCQkoSU5URUxfTUFOVUZBQ1QgICAgICYgRkxBU0hfVkVORE1BU0spIHwKIAkJCShJTlRFTF9JRF8yOEY2NDBKM0EgJiBGTEFTSF9UWVBFTUFTSyk7CiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKLQkJCWZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCQkJZmxhc2hiYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCQllbHNlCiAJCQlwYW5pYyAoImNvbmZpZ3VyZWQgdG9vIG1hbnkgZmxhc2ggYmFua3MhXG4iKTsKIAkJZm9yIChqID0gMDsgaiA8IGZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50OyBqKyspIHsKQEAgLTkyLDggKzkyLDggQEAKIAkgKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTI5OSw3ICsyOTksNyBAQAogCQkJLyogd2FpdCB1bnRpbCBmbGFzaCBpcyByZWFkeSAqLwogCQkJZG8gewogCQkJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJKmFkZHIgPSBDTURfU1RBVFVTX1JFU0VUOwogCQkJCQlyZXN1bHQgPSBCSVRfVElNRU9VVDsKIAkJCQkJYnJlYWs7CkBAIC0zOTQsNyArMzk0LDcgQEAKIAkvKiB3YWl0IHVudGlsIGZsYXNoIGlzIHJlYWR5ICovCiAJZG8gewogCQkvKiBjaGVjayB0aW1lb3V0ICovCi0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCSphZGRyID0gQ01EX1NVU1BFTkQ7CiAJCQlyZXN1bHQgPSBCSVRfVElNRU9VVDsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc21kazI0MTAvZmxhc2guYyBiL2JvYXJkL3NtZGsyNDEwL2ZsYXNoLmMKaW5kZXggMzJhZTgwZC4uMTMyZDc1MiAxMDA2NDQKLS0tIGEvYm9hcmQvc21kazI0MTAvZmxhc2guYworKysgYi9ib2FyZC9zbWRrMjQxMC9mbGFzaC5jCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEZMQVNIX0JBTktfU0laRQlQSFlTX0ZMQVNIX1NJWkUKICNkZWZpbmUgTUFJTl9TRUNUX1NJWkUgIDB4MTAwMDAJLyogNjQgS0IgKi8KIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogI2RlZmluZSBDTURfUkVBRF9BUlJBWQkJMHgwMDAwMDBGMApAQCAtNDEsOCArNDEsOCBAQAogI2RlZmluZSBDTURfUFJPR1JBTQkJMHgwMDAwMDBBMAogI2RlZmluZSBDTURfVU5MT0NLX0JZUEFTUwkweDAwMDAwMDIwCiAKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAxKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUEgPDwgMSkpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAxKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTE2ICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDEpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDAwMDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDAwMDAwODAKQEAgLTYxLDcgKzYxLDcgQEAKIAlpbnQgaSwgajsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPQpAQCAtNzUsOCArNzUsOCBAQAogI2Vycm9yICJVbmtub3duIGZsYXNoIGNvbmZpZ3VyZWQiCiAjZW5kaWYKIAkJCWZsYXNoX2luZm9baV0uc2l6ZSA9IEZMQVNIX0JBTktfU0laRTsKLQkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7Ci0JCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOworCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CisJCW1lbXNldCAoZmxhc2hfaW5mb1tpXS5wcm90ZWN0LCAwLCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKIAkJaWYgKGkgPT0gMCkKIAkJCWZsYXNoYmFzZSA9IFBIWVNfRkxBU0hfMTsKIAkJZWxzZQpAQCAtMTExLDggKzExMSw4IEBACiAJfQogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19GTEFTSF9CQVNFLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCSAgICAgICAmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULApAQCAtMjM2LDcgKzIzNiw3IEBACiAKIAkJCQkvKiBjaGVjayB0aW1lb3V0ICovCiAJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPgotCQkJCSAgICBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCSAgICBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJTUVNX0ZMQVNIX0FERFIxID0gQ01EX1JFQURfQVJSQVk7CiAJCQkJCWNoaXAgPSBUTU87CiAJCQkJCWJyZWFrOwpAQCAtMzMyLDcgKzMzMiw3IEBACiAJCXJlc3VsdCA9ICphZGRyOwogCiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJY2hpcCA9IEVSUiB8IFRNTzsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC9zbm1jL3FzODUwL2ZsYXNoLmMgYi9ib2FyZC9zbm1jL3FzODUwL2ZsYXNoLmMKaW5kZXggZDJmMTY5Yi4uOWUyNzZhMSAxMDA2NDQKLS0tIGEvYm9hcmQvc25tYy9xczg1MC9mbGFzaC5jCisrKyBiL2JvYXJkL3NubWMvcXM4NTAvZmxhc2guYwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPGFzbS91LWJvb3QuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAqLwogCiAKICNkZWZpbmUgRkxBU0hfV09SRF9TSVpFIHVuc2lnbmVkIGxvbmcKQEAgLTU3LDcgKzU3LDcgQEAKIAl2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUqIGZsYXNoX2Jhc2U7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTg3LDEzICs4NywxMyBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CisJaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDEpIHsKIAkJLyogU2V0dXAgb2Zmc2V0cyAqLwogCQlmbGFzaF9nZXRfb2Zmc2V0cyAoKHVsb25nKWZsYXNoX2Jhc2UsICZmbGFzaF9pbmZvWzBdKTsKIAogCQkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCQlDRkdfTU9OSVRPUl9CQVNFK0NGR19NT05JVE9SX0xFTi0xLCAmZmxhc2hfaW5mb1swXSk7CisJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLTEsICZmbGFzaF9pbmZvWzBdKTsKIAkJc2l6ZV9iMSA9IDAgOwogCQlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwogCQlyZXR1cm4oc2l6ZV9iMCk7CkBAIC0xMjUsOCArMTI1LDggQEAKIAlmbGFzaF9nZXRfb2Zmc2V0cyAoYmFzZV9iMCwgJmZsYXNoX2luZm9bMF0pOwogCiAJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19NT05JVE9SX0JBU0UsCi0JCUNGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOLTEsICZmbGFzaF9pbmZvWzBdKTsKKwkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLTEsICZmbGFzaF9pbmZvWzBdKTsKIAogCWlmIChzaXplX2IxKSB7CiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KQEAgLTEzNCwxMSArMTM0LDExIEBACiAJCWZsYXNoX2dldF9vZmZzZXRzIChiYXNlX2IxLCAmZmxhc2hfaW5mb1sxXSk7CiAKIAkJLyogbW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBiYXNlX2IxK3NpemVfYjEtQ0ZHX01PTklUT1JfTEVOLAorCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIGJhc2VfYjErc2l6ZV9iMS1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJYmFzZV9iMStzaXplX2IxLTEsICZmbGFzaF9pbmZvWzFdKTsKIAogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT0ZGIGJ5IGRlZmF1bHQgKG9uZSBpcyBlbm91Z2gpICovCi0JCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX0NMRUFSLCBiYXNlX2IwK3NpemVfYjAtQ0ZHX01PTklUT1JfTEVOLAorCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9DTEVBUiwgYmFzZV9iMCtzaXplX2IwLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4sCiAJCQliYXNlX2IwK3NpemVfYjAtMSwgJmZsYXNoX2luZm9bMF0pOwogCX0gZWxzZSB7CiAJCWZsYXNoX2luZm9bMV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwpAQCAtNDgwLDcgKzQ4MCw3IEBACiAJd2hpbGUgKChhZGRyWzBdICYgKDB4MDA4MDAwODAmRkxBU0hfSURfTUFTSykpICE9CiAJCQkoMHgwMDgwMDA4MCZGTEFTSF9JRF9NQVNLKSAgKQogCXsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTYwNyw3ICs2MDcsNyBAQAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCiAJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCXJldHVybiAoMSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9ib2FyZC9zbm1jL3FzODUwL3FzODUwLmMgYi9ib2FyZC9zbm1jL3FzODUwL3FzODUwLmMKaW5kZXggMmZiZThhZS4uY2M4ZWFhZCAxMDA2NDQKLS0tIGEvYm9hcmQvc25tYy9xczg1MC9xczg1MC5jCisrKyBiL2JvYXJkL3NubWMvcXM4NTAvcXM4NTAuYwpAQCAtMTQ2LDcgKzE0Niw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAKQEAgLTE1NSwxNyArMTU1LDE3IEBACiAJLyoKIAkqIFByZXNjYWxlciBmb3IgcmVmcmVzaAogCSovCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKIAkvKgogCSogTWFwIGNvbnRyb2xsZXIgYmFuayAxIHRvIHRoZSBTRFJBTSBhZGRyZXNzCiAJKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjE7CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxOwogCXVkZWxheSgxMDAwKTsKIAogCS8qIHBlcmZvcm0gU0RSQU0gaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKi8KLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR18xNk1fTUFNUjsKKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfMTZNX01BTVI7CiAJdWRlbGF5KDEwMCk7CiAKIAkvKiBQcm9ncmFtIHRoZSBTRFJBTSdzIE1vZGUgUmVnaXN0ZXIgKi8KQEAgLTE5Miw3ICsxOTIsNyBAQAogCS8qCiAJKiBDaGVjayBmb3IgMzJNIFNEUkFNIE1lbW9yeSBTaXplCiAJKi8KLQlzaXplID0gZHJhbV9zaXplKENGR18zMk1fTUFNUnxNQU1SX1BUQUUsCisJc2l6ZSA9IGRyYW1fc2l6ZShDT05GSUdfU1lTXzMyTV9NQU1SfE1BTVJfUFRBRSwKIAkobG9uZyAqKVNEUkFNX0JBU0UsIFNEUkFNXzMyTV9NQVhfU0laRSk7CiAJdWRlbGF5ICgxMDAwKTsKIApAQCAtMjAwLDcgKzIwMCw3IEBACiAJKiBDaGVjayBmb3IgMTZNIFNEUkFNIE1lbW9yeSBTaXplCiAJKi8KIAlpZiAoc2l6ZSAhPSBTRFJBTV8zMk1fTUFYX1NJWkUpIHsKLQlzaXplID0gZHJhbV9zaXplKENGR18xNk1fTUFNUnxNQU1SX1BUQUUsCisJc2l6ZSA9IGRyYW1fc2l6ZShDT05GSUdfU1lTXzE2TV9NQU1SfE1BTVJfUFRBRSwKIAkobG9uZyAqKVNEUkFNX0JBU0UsIFNEUkFNXzE2TV9NQVhfU0laRSk7CiAJdWRlbGF5ICgxMDAwKTsKIAl9CkBAIC0yMjEsNyArMjIxLDcgQEAKIAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsIGxvbmcgaW50IG1heHNpemUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc25tYy9xczg2MHQvZmxhc2guYyBiL2JvYXJkL3NubWMvcXM4NjB0L2ZsYXNoLmMKaW5kZXggYWEyZTg1Ni4uMmNiOGRjYiAxMDA2NDQKLS0tIGEvYm9hcmQvc25tYy9xczg2MHQvZmxhc2guYworKysgYi9ib2FyZC9zbm1jL3FzODYwdC9mbGFzaC5jCkBAIC0yOSwxMCArMjksMTAgQEAKICNpbmNsdWRlIDxhc20vdS1ib290Lmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogCi0jaWZkZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogI2RlZmluZSBGTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQKICNkZWZpbmUgRkxBU0hfSURfTUFTSwkweEZGRkYKICNlbHNlCkBAIC00Niw3ICs0Niw3IEBACiAvKiBzdG9sZW4gZnJvbSBlc3RlZW0xOTJlL2ZsYXNoLmMgKi8KIHVsb25nIGZsYXNoX2dldF9zaXplICh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIHN0YXRpYyBpbnQgd3JpdGVfd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKICNlbHNlCiBzdGF0aWMgaW50IHdyaXRlX3Nob3J0IChmbGFzaF9pbmZvX3QgKmluZm8sIHVsb25nIGRlc3QsIHVzaG9ydCBkYXRhKTsKQEAgLTY1LDcgKzY1LDcgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2VfYjAsIGJhc2VfYjE7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTc5LDIwICs3OSwyMCBAQAogCX0KIAogCS8qIE9ubHkgb25lIGJhbmsgKi8KLQlpZiAoQ0ZHX01BWF9GTEFTSF9CQU5LUyA9PSAxKSB7CisJaWYgKENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID09IDEpIHsKIAkJLyogU2V0dXAgb2Zmc2V0cyAqLwogCQlmbGFzaF9nZXRfb2Zmc2V0cyAoRkxBU0hfQkFTRTFfUFJFTElNLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KICNpZiAwCS8qIHNhbmQ6ICovCiAJCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCUZMQVNIX0JBU0UxX1BSRUxJTS1DRkdfTU9OSVRPUl9MRU4rc2l6ZV9iMCwKKwkJCUZMQVNIX0JBU0UxX1BSRUxJTS1DT05GSUdfU1lTX01PTklUT1JfTEVOK3NpemVfYjAsCiAJCQlGTEFTSF9CQVNFMV9QUkVMSU0tMStzaXplX2IwLAogCQkJJmZsYXNoX2luZm9bMF0pOwogI2Vsc2UKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX01PTklUT1JfQkFTRSwKLQkJCUNGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOLTEsCisJCQlDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFK0NPTkZJR19TWVNfTU9OSVRPUl9MRU4tMSwKIAkJCSZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCQlzaXplX2IxID0gMCA7CkBAIC0xMjYsMTMgKzEyNiwxMyBAQAogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogI2lmIDAJLyogc2FuZDogKi8KIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJRkxBU0hfQkFTRTFfUFJFTElNLUNGR19NT05JVE9SX0xFTitzaXplX2IwLAorCQkJRkxBU0hfQkFTRTFfUFJFTElNLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4rc2l6ZV9iMCwKIAkJCUZMQVNIX0JBU0UxX1BSRUxJTS0xK3NpemVfYjAsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAjZWxzZQogCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfTU9OSVRPUl9CQVNFLAotCQkJQ0ZHX01PTklUT1JfQkFTRStDRkdfTU9OSVRPUl9MRU4tMSwKKwkJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi0xLAogCQkJJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTE0NCwxMiArMTQ0LDEyIEBACiAKIAkJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJYmFzZV9iMStzaXplX2IxLUNGR19NT05JVE9SX0xFTiwKKwkJCQliYXNlX2IxK3NpemVfYjEtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCQliYXNlX2IxK3NpemVfYjEtMSwKIAkJCQkmZmxhc2hfaW5mb1sxXSk7CiAJCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT0ZGIGJ5IGRlZmF1bHQgKG9uZSBpcyBlbm91Z2gpICovCiAJCQkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9DTEVBUiwKLQkJCQliYXNlX2IwK3NpemVfYjAtQ0ZHX01PTklUT1JfTEVOLAorCQkJCWJhc2VfYjArc2l6ZV9iMC1DT05GSUdfU1lTX01PTklUT1JfTEVOLAogCQkJCWJhc2VfYjArc2l6ZV9iMC0xLAogCQkJCSZmbGFzaF9pbmZvWzBdKTsKIAkJfSBlbHNlIHsKQEAgLTE4Miw3ICsxODIsNyBAQAogCWVsc2UgaWYgKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfQlRZUEUpIHsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fSU5URUwpIHsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkJLyogc2V0IHNlY3RvciBvZmZzZXRzIGZvciBib3R0b20gYm9vdCBibG9jayB0eXBlICovCiAJCQlpbmZvLT5zdGFydFswXSA9IGJhc2UgKyAweDAwMDAwMDAwOwogCQkJaW5mby0+c3RhcnRbMV0gPSBiYXNlICsgMHgwMDAwNDAwMDsKQEAgLTIzNCw3ICsyMzQsNyBAQAogCQlpID0gaW5mby0+c2VjdG9yX2NvdW50IC0gMTsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fSU5URUwpIHsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkJaW5mby0+c3RhcnRbaS0tXSA9IGJhc2UgKyBpbmZvLT5zaXplIC0gMHgwMDAwNDAwMDsKIAkJCWluZm8tPnN0YXJ0W2ktLV0gPSBiYXNlICsgaW5mby0+c2l6ZSAtIDB4MDAwMDgwMDA7CiAJCQlpbmZvLT5zdGFydFtpLS1dID0gYmFzZSArIGluZm8tPnNpemUgLSAweDAwMDBDMDAwOwpAQCAtMzkzLDcgKzM5Myw3IEBACiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KIAogCi0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAKIAkvKgogCSAqIE5vdGU6IGlmIGl0IGlzIGFuIEFNRCBmbGFzaCBhbmQgdGhlIHdvcmQgYXQgYWRkclswMDAwXQpAQCAtNjUwLDcgKzY1MCw3IEBACiAJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJZmxhZyA9IGRpc2FibGVfaW50ZXJydXB0cyAoKTsKIAlpZiAoaW5mby0+Zmxhc2hfaWQgPCBGTEFTSF9BTURfQ09NUCkgewotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQlhZGRyWzB4MDU1NV0gPSAweDAwQUEwMEFBOwogCQlhZGRyWzB4MDJBQV0gPSAweDAwNTUwMDU1OwogCQlhZGRyWzB4MDU1NV0gPSAweDAwODAwMDgwOwpAQCAtNjkwLDcgKzY5MCw3IEBACiAJCWFkZHIgPSAodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAkJd2hpbGUgKChhZGRyWzBdICYgKDB4MDA4MDAwODAgJiBGTEFTSF9JRF9NQVNLKSkgIT0KIAkJICAgICAgICgweDAwODAwMDgwICYgRkxBU0hfSURfTUFTSykpIHsKLQkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC03MTEsNyArNzExLDcgQEAKIAkJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCiAJCQkJYmFyZiA9IDA7Ci0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAJCQkJYWRkciA9ICh2dV9sb25nICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAJCQkJYWRkclswXSA9IDB4MDAyMDAwMjA7CiAJCQkJYWRkclswXSA9IDB4MDBEMDAwRDA7CkBAIC03NjYsNyArNzY2LDcgQEAKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJaW50IGk7CiAKLQlmb3IgKGk9MCwgaW5mbz0mZmxhc2hfaW5mb1swXTsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgeworCWZvciAoaT0wLCBpbmZvPSZmbGFzaF9pbmZvWzBdOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgewogCQlpZiAoKGFkZHIgPj0gaW5mby0+c3RhcnRbMF0pICYmCiAJCSAgICAoYWRkciA8IChpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUpKSApIHsKIAkJCXJldHVybiAoaW5mbyk7CkBAIC04NDMsNyArODQzLDcgQEAKIAogaW50IHdyaXRlX2J1ZmYgKGZsYXNoX2luZm9fdCAqaW5mbywgdWNoYXIgKnNyYywgdWxvbmcgYWRkciwgdWxvbmcgY250KQogewotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCXVsb25nIGNwLCB3cCwgZGF0YTsKIAlpbnQgbDsKICNlbHNlCkBAIC04NTIsNyArODUyLDcgQEAKICNlbmRpZgogCWludCBpLCByYzsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCiAKIAl3cCA9IChhZGRyICYgfjMpOwkvKiBnZXQgbG93ZXIgd29yZCBhbGlnbmVkIGFkZHJlc3MgKi8KQEAgLTk3OSw3ICs5NzksNyBAQAogICogMSAtIHdyaXRlIHRpbWVvdXQKICAqIDIgLSBGbGFzaCBub3QgZXJhc2VkCiAgKi8KLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIHN0YXRpYyBpbnQgd3JpdGVfd29yZCAoZmxhc2hfaW5mb190ICppbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewogCXZ1X2xvbmcgKmFkZHIgPSAodnVfbG9uZyopKGluZm8tPnN0YXJ0WzBdKTsKQEAgLTEwMTUsMTMgKzEwMTUsMTMgQEAKIAogCWlmKGluZm8tPmZsYXNoX2lkID4gRkxBU0hfQU1EX0NPTVApIHsKIAkJd2hpbGUgKCgqKCh2dV9sb25nICopZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KIAl9IGVsc2UgewogCQl3aGlsZSghKGFkZHJbMF0gJiAweDAwODAwMDgwKSkgewkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIApAQCAtMTA4MSw3ICsxMDgxLDcgQEAKIAlpZihpbmZvLT5mbGFzaF9pZCA8IEZMQVNIX0FNRF9DT01QKSB7CiAJCS8qIEFNRCBzdHVmZiAqLwogCQl3aGlsZSAoKCooKHZ1X3Nob3J0ICopZGVzdCkgJiAweDAwODApICE9IChkYXRhICYgMHgwMDgwKSkgewotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQlyZXR1cm4gKDEpOwogCQkJfQogCQl9CkBAIC0xMDg5LDcgKzEwODksNyBAQAogCX0gZWxzZSB7CiAJCS8qIGludGVsIHN0dWZmICovCiAJCXdoaWxlKCEoYWRkclswXSAmIDB4MDA4MCkpewkvKiB3YWl0IGZvciBlcnJvciBvciBmaW5pc2ggKi8KLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHJldHVybiAoMSk7CisJCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgcmV0dXJuICgxKTsKIAkJfQogCiAJCWlmKCBhZGRyWzBdICYgMHgwMDNBKSB7CS8qIGNoZWNrIGZvciBlcnJvciAqLwpAQCAtMTEwMyw3ICsxMTAzLDcgQEAKIAkJKmFkZHIgPSAweDAwQjA7CiAJCSphZGRyID0gMHgwMDcwOwogCQl3aGlsZSghKGFkZHJbMF0gJiAweDAwODApKXsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSByZXR1cm4gKDEpOworCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHJldHVybiAoMSk7CiAJCX0KIAkJKmFkZHIgPSAweDAwRkY7CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc25tYy9xczg2MHQvcXM4NjB0LmMgYi9ib2FyZC9zbm1jL3FzODYwdC9xczg2MHQuYwppbmRleCAxN2M5MzU2Li5iMjcyZDgwIDEwMDY0NAotLS0gYS9ib2FyZC9zbm1jL3FzODYwdC9xczg2MHQuYworKysgYi9ib2FyZC9zbm1jL3FzODYwdC9xczg2MHQuYwpAQCAtMTE3LDcgKzExNyw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU7CiAKQEAgLTEzMSwxMiArMTMxLDEyIEBACiAJLyoKIAkqIE1hcCBjb250cm9sbGVyIGJhbmsgMiB0byB0aGUgU0RSQU0gYWRkcmVzcwogCSovCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjI7Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjI7CisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMjsKIAl1ZGVsYXkoMjAwKTsKIAogCS8qIHBlcmZvcm0gU0RSQU0gaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKi8KLQltZW1jdGwtPm1lbWNfbWJtciA9IENGR18xNk1fTUJNUjsKKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfMTZNX01CTVI7CiAJdWRlbGF5KDEwMCk7CiAKIAltZW1jdGwtPm1lbWNfbWFyICA9IDB4MDAwMDAwODg7CkBAIC0xNTUsNyArMTU1LDcgQEAKIAkvKgogCSogQ2hlY2sgZm9yIDY0TSBTRFJBTSBNZW1vcnkgU2l6ZQogCSovCi0Jc2l6ZSA9IGRyYW1fc2l6ZSAoQ0ZHXzY0TV9NQk1SLCAodWxvbmcgKilTRFJBTV9CQVNFLCBTRFJBTV82NE1fTUFYX1NJWkUpOworCXNpemUgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfNjRNX01CTVIsICh1bG9uZyAqKVNEUkFNX0JBU0UsIFNEUkFNXzY0TV9NQVhfU0laRSk7CiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCkBAIC0xNjMsNyArMTYzLDcgQEAKIAkqLwogCWlmIChzaXplICE9IFNEUkFNXzY0TV9NQVhfU0laRSkgewogI2VuZGlmCi0Jc2l6ZSA9IGRyYW1fc2l6ZSAoQ0ZHXzE2TV9NQk1SLCAobG9uZyAqKVNEUkFNX0JBU0UsIFNEUkFNXzE2TV9NQVhfU0laRSk7CisJc2l6ZSA9IGRyYW1fc2l6ZSAoQ09ORklHX1NZU18xNk1fTUJNUiwgKGxvbmcgKilTRFJBTV9CQVNFLCBTRFJBTV8xNk1fTUFYX1NJWkUpOwogCXVkZWxheSAoMTAwMCk7CiAjaWYgMAogCX0KQEAgLTE4NCwzMSArMTg0LDMxIEBACiAJLyoKIAkqIE1hcCB0aGUgOE0gSW50ZWwgRmxhc2ggZGV2aWNlIHRvIGNoaXAgc2VsZWN0IDEKIAkqLwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjE7CiAKIAogCS8qCiAJKiBNYXAgNjRLIE5WUkFNLCBTaXBleCBEZXZpY2UsIE5BTkQgQ3RsIFJlZywgYW5kIExFRCBDdGwgUmVnCiAJKiB0byBjaGlwIHNlbGVjdCAzCiAJKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SMzsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSMzsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjM7CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzOwogCiAJLyoKIAkqIE1hcCBjaGlwIHNlbGVjdHMgNCwgNSwgNiwgJiA3IGZvciBleHRlcm5hbCBleHBhbnNpb24gY29ubmVjdG9yCiAJKi8KLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNDsKLQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNDsKKwltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjQ7CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0OwogCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjU7CisJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfT1I1OworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNTsKIAotCW1lbWN0bC0+bWVtY19vcjYgPSBDRkdfT1I2OwotCW1lbWN0bC0+bWVtY19icjYgPSBDRkdfQlI2OworCW1lbWN0bC0+bWVtY19vcjYgPSBDT05GSUdfU1lTX09SNjsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19CUjY7CiAKLQltZW1jdGwtPm1lbWNfb3I3ID0gQ0ZHX09SNzsKLQltZW1jdGwtPm1lbWNfYnI3ID0gQ0ZHX0JSNzsKKwltZW1jdGwtPm1lbWNfb3I3ID0gQ09ORklHX1NZU19PUjc7CisJbWVtY3RsLT5tZW1jX2JyNyA9IENPTkZJR19TWVNfQlI3OwogCiAjZW5kaWYKIApAQCAtMjI3LDcgKzIyNyw3IEBACiAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1ibXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLCBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21ibXIgPSBtYm1yX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc29jcmF0ZXMvZGRyLmMgYi9ib2FyZC9zb2NyYXRlcy9kZHIuYwppbmRleCA2MmE1OTUxLi4yYjYyYjg0IDEwMDY0NAotLS0gYS9ib2FyZC9zb2NyYXRlcy9kZHIuYworKysgYi9ib2FyZC9zb2NyYXRlcy9kZHIuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogCiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9kaW1tX3BhcmFtcy5oPgogCiBzdGF0aWMgdm9pZAogZ2V0X3NwZChkZHIyX3NwZF9lZXByb21fdCAqc3BkLCB1bnNpZ25lZCBjaGFyIGkyY19hZGRyZXNzKQpAQCAtMzcsNyArMzgsOSBAQAogCX0KIH0KIAotdm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsIHVuc2lnbmVkIGludCBjdHJsX251bSkKK3ZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLAorCQkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAorCQkJCXVuc2lnbmVkIGludCBjdHJsX251bSkKIHsKIAkvKgogCSAqIEZhY3RvcnMgdG8gY29uc2lkZXIgZm9yIGNsb2NrIGFkanVzdDoKZGlmZiAtLWdpdCBhL2JvYXJkL3NvY3JhdGVzL2xhdy5jIGIvYm9hcmQvc29jcmF0ZXMvbGF3LmMKaW5kZXggODliNDQ2Zi4uNzFjZmY4YyAxMDA2NDQKLS0tIGEvYm9hcmQvc29jcmF0ZXMvbGF3LmMKKysrIGIvYm9hcmQvc29jcmF0ZXMvbGF3LmMKQEAgLTQ3LDE0ICs0NywxNCBAQAogICovCiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7Ci0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUiksCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19MQkNfRkxBU0hfQkFTRSwgTEFXX1NJWkVfNjRNLCBMQVdfVFJHVF9JRl9MQkMpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0kpLAotI2lmIGRlZmluZWQoQ0ZHX0ZQR0FfQkFTRSkKLQlTRVRfTEFXKENGR19GUEdBX0JBU0UsIExBV0FSX1NJWkVfMU0sIExBV19UUkdUX0lGX0xCQyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0kpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MQkNfRkxBU0hfQkFTRSwgTEFXX1NJWkVfNjRNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRlBHQV9CQVNFKQorCVNFVF9MQVcoQ09ORklHX1NZU19GUEdBX0JBU0UsIExBV0FSX1NJWkVfMU0sIExBV19UUkdUX0lGX0xCQyksCiAjZW5kaWYKLQlTRVRfTEFXKENGR19MSU1FX0JBU0UsIExBV0FSX1NJWkVfNjRNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19MSU1FX0JBU0UsIExBV0FSX1NJWkVfNjRNLCBMQVdfVFJHVF9JRl9MQkMpLAogfTsKIAogaW50IG51bV9sYXdfZW50cmllcyA9IEFSUkFZX1NJWkUobGF3X3RhYmxlKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3NvY3JhdGVzL25hbmQuYyBiL2JvYXJkL3NvY3JhdGVzL25hbmQuYwppbmRleCA2ZWM1M2Y4Li43ZDc2ZjQyIDEwMDY0NAotLS0gYS9ib2FyZC9zb2NyYXRlcy9uYW5kLmMKKysrIGIvYm9hcmQvc29jcmF0ZXMvbmFuZC5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmIGRlZmluZWQoQ0ZHX05BTkRfQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9CQVNFKQogI2luY2x1ZGUgPG5hbmQuaD4KICNpbmNsdWRlIDxhc20vZXJybm8uaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KZGlmZiAtLWdpdCBhL2JvYXJkL3NvY3JhdGVzL3NkcmFtLmMgYi9ib2FyZC9zb2NyYXRlcy9zZHJhbS5jCmluZGV4IDEyZDFiOGEuLjAyOWJhMDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NvY3JhdGVzL3NkcmFtLmMKKysrIGIvYm9hcmQvc29jcmF0ZXMvc2RyYW0uYwpAQCAtNDEsNyArNDEsNyBAQAogICovCiBsb25nIGludCBzZHJhbV9zZXR1cChpbnQgY2FzbCkKIHsKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSKTsKIAogCS8qCiAJICogRGlzYWJsZSBtZW1vcnkgY29udHJvbGxlci4KQEAgLTQ5LDI4ICs0OSwyOCBAQAogCWRkci0+Y3MwX2NvbmZpZyA9IDA7CiAJZGRyLT5zZHJhbV9jZmcgPSAwOwogCi0JZGRyLT5jczBfYm5kcyA9IENGR19ERFJfQ1MwX0JORFM7Ci0JZGRyLT5jczBfY29uZmlnID0gQ0ZHX0REUl9DUzBfQ09ORklHOwotCWRkci0+dGltaW5nX2NmZ18wID0gQ0ZHX0REUl9USU1JTkdfMDsKLQlkZHItPnRpbWluZ19jZmdfMSA9IENGR19ERFJfVElNSU5HXzE7Ci0JZGRyLT50aW1pbmdfY2ZnXzIgPSBDRkdfRERSX1RJTUlOR18yOwotCWRkci0+c2RyYW1fbW9kZSA9IENGR19ERFJfTU9ERTsKLQlkZHItPnNkcmFtX2ludGVydmFsID0gQ0ZHX0REUl9JTlRFUlZBTDsKLQlkZHItPnNkcmFtX2NmZ18yID0gQ0ZHX0REUl9DT05GSUdfMjsKLQlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ0ZHX0REUl9DTEtfQ09OVFJPTDsKKwlkZHItPmNzMF9ibmRzID0gQ09ORklHX1NZU19ERFJfQ1MwX0JORFM7CisJZGRyLT5jczBfY29uZmlnID0gQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRzsKKwlkZHItPnRpbWluZ19jZmdfMCA9IENPTkZJR19TWVNfRERSX1RJTUlOR18wOworCWRkci0+dGltaW5nX2NmZ18xID0gQ09ORklHX1NZU19ERFJfVElNSU5HXzE7CisJZGRyLT50aW1pbmdfY2ZnXzIgPSBDT05GSUdfU1lTX0REUl9USU1JTkdfMjsKKwlkZHItPnNkcmFtX21vZGUgPSBDT05GSUdfU1lTX0REUl9NT0RFOworCWRkci0+c2RyYW1faW50ZXJ2YWwgPSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTDsKKwlkZHItPnNkcmFtX2NmZ18yID0gQ09ORklHX1NZU19ERFJfQ09ORklHXzI7CisJZGRyLT5zZHJhbV9jbGtfY250bCA9IENPTkZJR19TWVNfRERSX0NMS19DT05UUk9MOwogCiAJYXNtICgic3luYztpc3luYzttc3luYyIpOwogCXVkZWxheSgxMDAwKTsKIAotCWRkci0+c2RyYW1fY2ZnID0gQ0ZHX0REUl9DT05GSUc7CisJZGRyLT5zZHJhbV9jZmcgPSBDT05GSUdfU1lTX0REUl9DT05GSUc7CiAJYXNtICgic3luYzsgaXN5bmM7IG1zeW5jIik7CiAJdWRlbGF5KDEwMDApOwogCi0JaWYgKGdldF9yYW1fc2l6ZSgwLCBDRkdfU0RSQU1fU0laRTw8MjApID09IENGR19TRFJBTV9TSVpFPDwyMCkgeworCWlmIChnZXRfcmFtX3NpemUoMCwgQ09ORklHX1NZU19TRFJBTV9TSVpFPDwyMCkgPT0gQ09ORklHX1NZU19TRFJBTV9TSVpFPDwyMCkgewogCQkvKgogCQkgKiBPSywgc2l6ZSBkZXRlY3RlZCAtPiBhbGwgZG9uZQogCQkgKi8KLQkJcmV0dXJuIENGR19TRFJBTV9TSVpFPDwyMDsKKwkJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fU0laRTw8MjA7CiAJfQogCiAJcmV0dXJuIDA7CQkJCS8qIG5vdGhpbmcgZm91bmQgIQkJKi8KQEAgLTkwLDExICs5MCwxMSBAQAogCXJldHVybiBkcmFtX3NpemU7CiB9CiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmICgiU0RSQU0gdGVzdCBwaGFzZSAxOlxuIik7CmRpZmYgLS1naXQgYS9ib2FyZC9zb2NyYXRlcy9zb2NyYXRlcy5jIGIvYm9hcmQvc29jcmF0ZXMvc29jcmF0ZXMuYwppbmRleCAwOTkxMTc3Li5kODNkYzdkIDEwMDY0NAotLS0gYS9ib2FyZC9zb2NyYXRlcy9zb2NyYXRlcy5jCisrKyBiL2JvYXJkL3NvY3JhdGVzL3NvY3JhdGVzLmMKQEAgLTUxLDcgKzUxLDcgQEAKIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAogCWNoYXIgKnNyYzsKIAlpbnQgZjsKQEAgLTg3LDcgKzg3LDcgQEAKIAogaW50IG1pc2NfaW5pdF9yICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKm1lbWN0bCA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICptZW1jdGwgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJLyoKIAkgKiBBZGp1c3QgZmxhc2ggc3RhcnQgYW5kIG9mZnNldCB0byBkZXRlY3RlZCB2YWx1ZXMKQEAgLTk4LDIwICs5OCwyMCBAQAogCS8qCiAJICogQ2hlY2sgaWYgYm9vdCBGTEFTSCBpc24ndCBtYXggc2l6ZQogCSAqLwotCWlmIChnZC0+YmQtPmJpX2ZsYXNoc2l6ZSA8ICgwIC0gQ0ZHX0ZMQVNIMCkpIHsKLQkJbWVtY3RsLT5vcjAgPSBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgfCAoQ0ZHX09SMF9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKLQkJbWVtY3RsLT5icjAgPSBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgfCAoQ0ZHX0JSMF9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKKwlpZiAoZ2QtPmJkLT5iaV9mbGFzaHNpemUgPCAoMCAtIENPTkZJR19TWVNfRkxBU0gwKSkgeworCQltZW1jdGwtPm9yMCA9IGdkLT5iZC0+YmlfZmxhc2hzdGFydCB8IChDT05GSUdfU1lTX09SMF9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKKwkJbWVtY3RsLT5icjAgPSBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgfCAoQ09ORklHX1NZU19CUjBfUFJFTElNICYgMHgwMDAwN2ZmZik7CiAKIAkJLyoKIAkJICogUmUtY2hlY2sgdG8gZ2V0IGNvcnJlY3QgYmFzZSBhZGRyZXNzCiAJCSAqLwotCQlmbGFzaF9nZXRfc2l6ZShnZC0+YmQtPmJpX2ZsYXNoc3RhcnQsIENGR19NQVhfRkxBU0hfQkFOS1MgLSAxKTsKKwkJZmxhc2hfZ2V0X3NpemUoZ2QtPmJkLT5iaV9mbGFzaHN0YXJ0LCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDEpOwogCX0KIAogCS8qCiAJICogQ2hlY2sgaWYgb25seSBvbmUgRkxBU0ggYmFuayBpcyBhdmFpbGFibGUKIAkgKi8KLQlpZiAoZ2QtPmJkLT5iaV9mbGFzaHNpemUgIT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyAqICgwIC0gQ0ZHX0ZMQVNIMCkpIHsKKwlpZiAoZ2QtPmJkLT5iaV9mbGFzaHNpemUgIT0gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgKiAoMCAtIENPTkZJR19TWVNfRkxBU0gwKSkgewogCQltZW1jdGwtPm9yMSA9IDA7CiAJCW1lbWN0bC0+YnIxID0gMDsKIApAQCAtMTIwLDI0ICsxMjAsMjQgQEAKIAkJICovCiAJCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9DTEVBUiwKIAkJCSAgICAgICBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQsIDB4ZmZmZmZmZmYsCi0JCQkgICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJCSAgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKIAogCQkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULAotCQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCi0JCQkgICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKIAkJLyogRW52aXJvbm1lbnQgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCQkgICAgICAgQ09ORklHX0VOVl9BRERSLAogCQkJICAgICAgIENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0VDVF9TSVpFIC0gMSwKLQkJCSAgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkJICAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogCiAJCS8qIFJlZHVuZGFudCBlbnZpcm9ubWVudCBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKIAkJCSAgICAgICBDT05GSUdfRU5WX0FERFJfUkVEVU5ELAogCQkJICAgICAgIENPTkZJR19FTlZfQUREUl9SRURVTkQgKyBDT05GSUdfRU5WX1NJWkVfUkVEVU5EIC0gMSwKLQkJCSAgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkJICAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogCX0KIAogCXJldHVybiAwOwpAQCAtMTQ4LDEyICsxNDgsMTIgQEAKICAqLwogdm9pZCBsb2NhbF9idXNfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRUNNX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0VDTV9BRERSKTsKIAlzeXNfaW5mb190IHN5c2luZm87CiAJdWludCBjbGtkaXY7CiAJdWludCBsYmNfbWh6OwotCXVpbnQgbGNyciA9IENGR19MQkNfTENSUjsKKwl1aW50IGxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSOwogCiAJZ2V0X3N5c19pbmZvICgmc3lzaW5mbyk7CiAJY2xrZGl2ID0gbGJjLT5sY3JyICYgMHgwZjsKQEAgLTIxOSw3ICsyMTksNyBAQAogI2lmZGVmIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKIGludCBib2FyZF9lYXJseV9pbml0X3IgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAogCS8qIHNldCBhbmQgcmVzZXQgdGhlIEdQSU8gcGluIDIgd2hpY2ggd2lsbCByZXNldCB0aGUgVzgzNzgyRyBjaGlwICovCiAJb3V0XzgoKHVuc2lnbmVkIGNoYXIqKSZndXItPmdwb3V0ZHIsIDB4M0YgKTsKQEAgLTI0NiwxOSArMjQ2LDE5IEBACiAJdmFsW2krK10gPSBnZC0+YmQtPmJpX2ZsYXNoc3RhcnQ7CiAJdmFsW2krK10gPSBnZC0+YmQtPmJpX2ZsYXNoc2l6ZTsKIAotCWlmIChtYjg2Mnh4LmZyYW1lQWRycyA9PSBDRkdfTElNRV9CQVNFKSB7CisJaWYgKG1iODYyeHguZnJhbWVBZHJzID09IENPTkZJR19TWVNfTElNRV9CQVNFKSB7CiAJCS8qIEZpeHVwIExJTUUgbWFwcGluZyAqLwogCQl2YWxbaSsrXSA9IDI7CQkJLyogY2hpcCBzZWxlY3QgbnVtYmVyICovCiAJCXZhbFtpKytdID0gMDsJCQkvKiBhbHdheXMgMCAqLwotCQl2YWxbaSsrXSA9IENGR19MSU1FX0JBU0U7Ci0JCXZhbFtpKytdID0gQ0ZHX0xJTUVfU0laRTsKKwkJdmFsW2krK10gPSBDT05GSUdfU1lTX0xJTUVfQkFTRTsKKwkJdmFsW2krK10gPSBDT05GSUdfU1lTX0xJTUVfU0laRTsKIAl9CiAKIAkvKiBGaXh1cCBGUEdBIG1hcHBpbmcgKi8KIAl2YWxbaSsrXSA9IDM7CQkJCS8qIGNoaXAgc2VsZWN0IG51bWJlciAqLwogCXZhbFtpKytdID0gMDsJCQkJLyogYWx3YXlzIDAgKi8KLQl2YWxbaSsrXSA9IENGR19GUEdBX0JBU0U7Ci0JdmFsW2krK10gPSBDRkdfRlBHQV9TSVpFOworCXZhbFtpKytdID0gQ09ORklHX1NZU19GUEdBX0JBU0U7CisJdmFsW2krK10gPSBDT05GSUdfU1lTX0ZQR0FfU0laRTsKIAogCXJjID0gZmR0X2ZpbmRfYW5kX3NldHByb3AoYmxvYiwgIi9sb2NhbGJ1cyIsICJyYW5nZXMiLAogCQkJCSAgdmFsLCBpICogc2l6ZW9mKHUzMiksIDEpOwpAQCAtMjY4LDE0ICsyNjgsMTQgQEAKIH0KICNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpICYmIGRlZmluZWQoQ09ORklHX09GX0JPQVJEX1NFVFVQKSAqLwogCi0jZGVmaW5lIENGR19MSU1FX1NSU1QJCSgoQ0ZHX0xJTUVfQkFTRSkgKyAweDAxRkMwMDJDKQotI2RlZmluZSBDRkdfTElNRV9DQ0YJCSgoQ0ZHX0xJTUVfQkFTRSkgKyAweDAxRkMwMDM4KQotI2RlZmluZSBDRkdfTElNRV9NTVIJCSgoQ0ZHX0xJTUVfQkFTRSkgKyAweDAxRkNGRkZDKQorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfU1JTVAkJKChDT05GSUdfU1lTX0xJTUVfQkFTRSkgKyAweDAxRkMwMDJDKQorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfQ0NGCQkoKENPTkZJR19TWVNfTElNRV9CQVNFKSArIDB4MDFGQzAwMzgpCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9NTVIJCSgoQ09ORklHX1NZU19MSU1FX0JBU0UpICsgMHgwMUZDRkZGQykKIC8qIExpbWUgY2xvY2sgZnJlcXVlbmN5ICovCi0jZGVmaW5lIENGR19MSU1FX0NMS18xMDBNSFoJMHgwMDAwMAotI2RlZmluZSBDRkdfTElNRV9DTEtfMTMzTUhaCTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX0NMS18xMDBNSFoJMHgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfQ0xLXzEzM01IWgkweDEwMDAwCiAvKiBTRFJBTSBwYXJhbWV0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0xJTUVfTU1SX1ZBTFVFCTB4NDE1N0JBNjMKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX01NUl9WQUxVRQkweDQxNTdCQTYzCiAKICNkZWZpbmUgRElTUExBWV9XSURUSAkJODAwCiAjZGVmaW5lIERJU1BMQVlfSEVJR0hUCQk0ODAKQEAgLTMwOCwxMSArMzA4LDExIEBACiAJcmV0dXJuIGluaXRfcmVnczsKIH0KIAotI2RlZmluZSBDRkdfTElNRV9DSUQJCSgoQ0ZHX0xJTUVfQkFTRSkgKyAweDAxRkMwMEYwKQotI2RlZmluZSBDRkdfTElNRV9SRVYJCSgoQ0ZHX0xJTUVfQkFTRSkgKyAweDAxRkY4MDg0KQorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfQ0lECQkoKENPTkZJR19TWVNfTElNRV9CQVNFKSArIDB4MDFGQzAwRjApCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9SRVYJCSgoQ09ORklHX1NZU19MSU1FX0JBU0UpICsgMHgwMUZGODA4NCkKIGludCBsaW1lX3Byb2JlKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbWVtY3RsID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKm1lbWN0bCA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAJdWludCBjZmdfYnIyOwogCXVpbnQgY2ZnX29yMjsKIAl1aW50IHJlZzsKQEAgLTMyMywxNCArMzIzLDE0IEBACiAJLyogQ29uZmlndXJlIEdQQ00gZm9yIENTMiAqLwogCW1lbWN0bC0+YnIyID0gMDsKIAltZW1jdGwtPm9yMiA9IDB4ZmMwMDA0MTA7Ci0JbWVtY3RsLT5icjIgPSAoQ0ZHX0xJTUVfQkFTRSkgfCAweDAwMDAxOTAxOworCW1lbWN0bC0+YnIyID0gKENPTkZJR19TWVNfTElNRV9CQVNFKSB8IDB4MDAwMDE5MDE7CiAKIAkvKiBUcnkgdG8gYWNjZXNzIEdEQyBJRC9SZXZpc2lvbiByZWdpc3RlcnMgKi8KLQlyZWcgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX0xJTUVfQ0lEKTsKLQlyZWcgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX0xJTUVfQ0lEKTsKKwlyZWcgPSBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19MSU1FX0NJRCk7CisJcmVnID0gaW5fYmUzMigodm9pZCAqKUNPTkZJR19TWVNfTElNRV9DSUQpOwogCWlmIChyZWcgPT0gMHgzMDMpIHsKLQkJcmVnID0gaW5fYmUzMigodm9pZCAqKUNGR19MSU1FX1JFVik7Ci0JCXJlZyA9IGluX2JlMzIoKHZvaWQgKilDRkdfTElNRV9SRVYpOworCQlyZWcgPSBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19MSU1FX1JFVik7CisJCXJlZyA9IGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0xJTUVfUkVWKTsKIAkJcmVnID0gKChyZWcgJiB+MHhmZikgPT0gMHgyMDA1MDEwMCkgPyAxIDogMDsKIAl9IGVsc2UKIAkJcmVnID0gMDsKQEAgLTM1MSwyMiArMzUxLDIyIEBACiAJLyoKIAkgKiBSZXNldCBMaW1lIGNvbnRyb2xsZXIKIAkgKi8KLQlvdXRfYmUzMigodm9pZCAqKUNGR19MSU1FX1NSU1QsIDB4MSk7CisJb3V0X2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0xJTUVfU1JTVCwgMHgxKTsKIAl1ZGVsYXkoMjAwKTsKIAogCS8qIFNldCBMaW1lIGNsb2NrIHRvIDEzM01IeiAqLwotCW91dF9iZTMyKCh2b2lkICopQ0ZHX0xJTUVfQ0NGLCBDRkdfTElNRV9DTEtfMTMzTUhaKTsKKwlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfTElNRV9DQ0YsIENPTkZJR19TWVNfTElNRV9DTEtfMTMzTUhaKTsKIAkvKiBEZWxheSByZXF1aXJlZCAqLwogCXVkZWxheSgzMDApOwogCS8qIFNldCBtZW1vcnkgcGFyYW1ldGVycyAqLwotCW91dF9iZTMyKCh2b2lkICopQ0ZHX0xJTUVfTU1SLCBDRkdfTElNRV9NTVJfVkFMVUUpOworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19MSU1FX01NUiwgQ09ORklHX1NZU19MSU1FX01NUl9WQUxVRSk7CiAKIAltYjg2Mnh4LndpblNpemVYID0gRElTUExBWV9XSURUSDsKIAltYjg2Mnh4LndpblNpemVZID0gRElTUExBWV9IRUlHSFQ7CiAJbWI4NjJ4eC5nZGZJbmRleCA9IEdERl8xNUJJVF81NTVSR0I7CiAJbWI4NjJ4eC5nZGZCeXRlc1BQID0gMjsKIAotCXJldHVybiBDRkdfTElNRV9CQVNFOworCXJldHVybiBDT05GSUdfU1lTX0xJTUVfQkFTRTsKIH0KIAogI2RlZmluZSBXODM3ODJEX1JFR19DRkcJCTB4NDAKQEAgLTM4MSwyMiArMzgxLDIyIEBACiB7CiAJdTggYnVmOwogCi0JaWYgKGkyY19yZWFkKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19DRkcsIDEsICZidWYsIDEpKQorCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0NGRywgMSwgJmJ1ZiwgMSkpCiAJCXJldHVybiAtMTsKIAotCWkyY19yZWdfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0NGRywgMHg4MCk7Ci0JaTJjX3JlZ193cml0ZShDRkdfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQkFOS19TRUwsIDApOwotCWkyY19yZWdfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0FEQ0NMSywgMHg0MCk7CisJaTJjX3JlZ193cml0ZShDT05GSUdfU1lTX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0NGRywgMHg4MCk7CisJaTJjX3JlZ193cml0ZShDT05GSUdfU1lTX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX0JBTktfU0VMLCAwKTsKKwlpMmNfcmVnX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQURDQ0xLLCAweDQwKTsKIAotCWJ1ZiA9IGkyY19yZWdfcmVhZChDRkdfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQkVFUF9DVFJMKTsKLQlpMmNfcmVnX3dyaXRlKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19CRUVQX0NUUkwsCisJYnVmID0gaTJjX3JlZ19yZWFkKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQkVFUF9DVFJMKTsKKwlpMmNfcmVnX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQkVFUF9DVFJMLAogCQkgICAgICBidWYgfCAweDgwKTsKLQlpMmNfcmVnX3dyaXRlKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19CRUVQX0NUUkwyLCAwKTsKLQlpMmNfcmVnX3dyaXRlKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19QV01PVVQxLCAweDQ3KTsKLQlpMmNfcmVnX3dyaXRlKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19WQkFULCAweDAxKTsKKwlpMmNfcmVnX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQkVFUF9DVFJMMiwgMCk7CisJaTJjX3JlZ193cml0ZShDT05GSUdfU1lTX0kyQ19XODM3ODJHX0FERFIsIFc4Mzc4MkRfUkVHX1BXTU9VVDEsIDB4NDcpOworCWkyY19yZWdfd3JpdGUoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19WQkFULCAweDAxKTsKIAotCWJ1ZiA9IGkyY19yZWdfcmVhZChDRkdfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQ0ZHKTsKLQlpMmNfcmVnX3dyaXRlKENGR19JMkNfVzgzNzgyR19BRERSLCBXODM3ODJEX1JFR19DRkcsCisJYnVmID0gaTJjX3JlZ19yZWFkKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQ0ZHKTsKKwlpMmNfcmVnX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgVzgzNzgyRF9SRUdfQ0ZHLAogCQkgICAgICAoYnVmICYgMHhmNCkgfCAweDAxKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTQwOCwzNyArNDA4LDM3IEBACiAJdTggb2xkX2J1ZjsKIAogCS8qIFNlbGVjdCBiYW5rIDAgKi8KLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIDB4NGUsIDEsICZvbGRfYnVmLCAxKSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfVzgzNzgyR19BRERSLCAweDRlLCAxLCAmb2xkX2J1ZiwgMSkpCiAJCWdvdG8gZXJyOwogCWVsc2UKIAkJYnVmID0gb2xkX2J1ZiAmIDB4Zjg7CiAKLQlpZiAoaTJjX3dyaXRlKENGR19JMkNfVzgzNzgyR19BRERSLCAweDRlLCAxLCAmYnVmLCAxKSkKKwlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgMHg0ZSwgMSwgJmJ1ZiwgMSkpCiAJCWdvdG8gZXJyOwogCiAJaWYgKGJyID4gMCkgewogCQkvKiBQV01PVVQxIGR1dHkgY3ljbGUgY3RybCAqLwogCQlidWYgPSAyNTUgLyAoMTAwIC8gYnIpOwotCQlpZiAoaTJjX3dyaXRlKENGR19JMkNfVzgzNzgyR19BRERSLCAweDViLCAxLCAmYnVmLCAxKSkKKwkJaWYgKGkyY193cml0ZShDT05GSUdfU1lTX0kyQ19XODM3ODJHX0FERFIsIDB4NWIsIDEsICZidWYsIDEpKQogCQkJZ290byBlcnI7CiAKIAkJLyogTEVEcyBvbiAqLwotCQlyZWcgPSBpbl9iZTMyKCh2b2lkICopKENGR19GUEdBX0JBU0UgKyAweDBjKSk7CisJCXJlZyA9IGluX2JlMzIoKHZvaWQgKikoQ09ORklHX1NZU19GUEdBX0JBU0UgKyAweDBjKSk7CiAJCWlmICghKHJlZyAmIEJBQ0tMSUdIVF9FTkFCTEUpKTsKLQkJCW91dF9iZTMyKCh2b2lkICopKENGR19GUEdBX0JBU0UgKyAweDBjKSwKKwkJCW91dF9iZTMyKCh2b2lkICopKENPTkZJR19TWVNfRlBHQV9CQVNFICsgMHgwYyksCiAJCQkJIHJlZyB8IEJBQ0tMSUdIVF9FTkFCTEUpOwogCX0gZWxzZSB7CiAJCWJ1ZiA9IDA7Ci0JCWlmIChpMmNfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIDB4NWIsIDEsICZidWYsIDEpKQorCQlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgMHg1YiwgMSwgJmJ1ZiwgMSkpCiAJCQlnb3RvIGVycjsKIAogCQkvKiBMRURzIG9mZiAqLwotCQlyZWcgPSBpbl9iZTMyKCh2b2lkICopKENGR19GUEdBX0JBU0UgKyAweDBjKSk7CisJCXJlZyA9IGluX2JlMzIoKHZvaWQgKikoQ09ORklHX1NZU19GUEdBX0JBU0UgKyAweDBjKSk7CiAJCXJlZyAmPSB+QkFDS0xJR0hUX0VOQUJMRTsKLQkJb3V0X2JlMzIoKHZvaWQgKikoQ0ZHX0ZQR0FfQkFTRSArIDB4MGMpLCByZWcpOworCQlvdXRfYmUzMigodm9pZCAqKShDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4MGMpLCByZWcpOwogCX0KIAkvKiBSZXN0b3JlIHByZXZpb3VzIGJhbmsgc2V0dGluZyAqLwotCWlmIChpMmNfd3JpdGUoQ0ZHX0kyQ19XODM3ODJHX0FERFIsIDB4NGUsIDEsICZvbGRfYnVmLCAxKSkKKwlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1c4Mzc4MkdfQUREUiwgMHg0ZSwgMSwgJm9sZF9idWYsIDEpKQogCQlnb3RvIGVycjsKIAogCXJldHVybjsKZGlmZiAtLWdpdCBhL2JvYXJkL3NvY3JhdGVzL3RsYi5jIGIvYm9hcmQvc29jcmF0ZXMvdGxiLmMKaW5kZXggZDI1NWNlYS4uYjkxYjFlYSAxMDA2NDQKLS0tIGEvYm9hcmQvc29jcmF0ZXMvdGxiLmMKKysrIGIvYm9hcmQvc29jcmF0ZXMvdGxiLmMKQEAgLTMxLDE2ICszMSwxNiBAQAogCiBzdHJ1Y3QgZnNsX2VfdGxiX2VudHJ5IHRsYl90YWJsZVtdID0gewogCS8qIFRMQiAwIC0gZm9yIHRlbXAgc3RhY2sgaW4gY2FjaGUgKi8KLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0LAorCVNFVF9UTEJfRU5UUlkoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCiAKQEAgLTUwLDcgKzUwLDcgQEAKIAkgKiAweGZjMDAwMDAwCTY0TQlGTEFTSAogCSAqIE91dCBvZiByZXNldCB0aGlzIGVudHJ5IGlzIG9ubHkgNEsuCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDEsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC01OCw3ICs1OCw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUywgQ0ZHX1BDSTFfTUVNX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDIsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtNjYsMTYgKzY2LDE2IEBACiAJICogVExCIDM6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4OTAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCi0jaWYgZGVmaW5lZChDRkdfRlBHQV9CQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GUEdBX0JBU0UpCiAJLyoKIAkgKiBUTEIgNDoJMU0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YzAwMDAwMDAJMU0JRlBHQSBhbmQgTkFORAogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZQR0FfQkFTRSwgQ0ZHX0ZQR0FfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRlBHQV9CQVNFLCBDT05GSUdfU1lTX0ZQR0FfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8xTSwgMSksCiAjZW5kaWYKQEAgLTg3LDcgKzg3LDcgQEAKIAkgKiAoMHhjYmZjMDAwMAkyNTZLCUxJTUUgR0RDIE1NSU8pCiAJICogTU1JTyBpcyByZWxvY2F0YWJsZSBhbmQgY291bGQgYmUgYXQgMHhjYmZjMDAwMAogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0xJTUVfQkFTRSwgQ0ZHX0xJTUVfQkFTRSwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfTElNRV9CQVNFLCBDT05GSUdfU1lTX0xJTUVfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDUsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC05Niw3ICs5Niw3IEBACiAJICogMHhlMDAwXzAwMDAJMU0JQ0NTUkJBUgogCSAqIDB4ZTIwMF8wMDAwCTE2TQlQQ0kxIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtMTA3LDExICsxMDcsMTEgQEAKIAkgKiBNYWtlIHN1cmUgdGhlIFRMQiBjb3VudCBhdCB0aGUgdG9wIG9mIHRoaXMgdGFibGUgaXMgY29ycmVjdC4KIAkgKiBMaWtlbHkgaXQgbmVlZHMgdG8gYmUgaW5jcmVhc2VkIGJ5IHR3byBmb3IgdGhlc2UgZW50cmllcy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSwgQ0ZHX0REUl9TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDcsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIAotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDgsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIH07CmRpZmYgLS1naXQgYS9ib2FyZC9zb3JjZXJ5L3NvcmNlcnkuYyBiL2JvYXJkL3NvcmNlcnkvc29yY2VyeS5jCmluZGV4IGU0ZmIxNDYuLjNlMWJkNmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NvcmNlcnkvc29yY2VyeS5jCisrKyBiL2JvYXJkL3NvcmNlcnkvc29yY2VyeS5jCkBAIC0zNCw3ICszNCw3IEBACiAKIAlzaXplID0gZHJhbVNldHVwICgpOwogCi0JcmV0dXJuIGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgc2l6ZSk7CisJcmV0dXJuIGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIHNpemUpOwogfQogCiBpbnQgY2hlY2tib2FyZCAodm9pZCkKZGlmZiAtLWdpdCBhL2JvYXJkL3NwYzE5MjAvaHBpLmMgYi9ib2FyZC9zcGMxOTIwL2hwaS5jCmluZGV4IGNmMjFiMjEuLjI2ZDBmOWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NwYzE5MjAvaHBpLmMKKysrIGIvYm9hcmQvc3BjMTkyMC9ocGkuYwpAQCAtMTQ0LDE2ICsxNDQsMTYgQEAKIC8qIGluaXQgdGhlIGhvc3QgcG9ydCBpbnRlcmZhY2Ugb24gVVBNQSAqLwogaW50IGhwaV9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1yLT5pbV9tZW1jdGw7Ci0Jdm9sYXRpbGUgc3BjMTkyMF9wbGRfdCAqcGxkID0gKHNwYzE5MjBfcGxkX3QgKikgQ0ZHX1NQQzE5MjBfUExEX0JBU0U7CisJdm9sYXRpbGUgc3BjMTkyMF9wbGRfdCAqcGxkID0gKHNwYzE5MjBfcGxkX3QgKikgQ09ORklHX1NZU19TUEMxOTIwX1BMRF9CQVNFOwogCiAJdXBtY29uZmlnKFVQTUEsICh1aW50ICopZHNwX3RhYmxlX3Nsb3csIHNpemVvZihkc3BfdGFibGVfc2xvdykvc2l6ZW9mKHVpbnQpKTsKIAl1ZGVsYXkoMTAwKTsKIAotCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVI7Ci0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjM7Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjM7CisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVI7CisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSMzsKIAogCS8qIHJlc2V0IGRzcCAqLwogCWRzcF9yZXNldCgpOwpAQCAtMTcwLDcgKzE3MCw3IEBACiAvKiBhY3RpdmF0ZSB0aGUgSG9zdCBQb3J0IGludGVyZmFjZSAqLwogc3RhdGljIGludCBocGlfYWN0aXZhdGUodm9pZCkKIHsKLQl2b2xhdGlsZSBzcGMxOTIwX3BsZF90ICpwbGQgPSAoc3BjMTkyMF9wbGRfdCAqKSBDRkdfU1BDMTkyMF9QTERfQkFTRTsKKwl2b2xhdGlsZSBzcGMxOTIwX3BsZF90ICpwbGQgPSAoc3BjMTkyMF9wbGRfdCAqKSBDT05GSUdfU1lTX1NQQzE5MjBfUExEX0JBU0U7CiAKIAkvKiB0dXJuIG9uIGhwaSAqLwogCXBsZC0+ZHNwX2hwaV9vbiA9IDB4MTsKQEAgLTE5Myw3ICsxOTMsNyBAQAogLyogdHVybiBvZmYgdGhlIGhvc3QgcG9ydCBpbnRlcmZhY2UgKi8KIHN0YXRpYyB2b2lkIGhwaV9pbmFjdGl2YXRlKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgc3BjMTkyMF9wbGRfdCAqcGxkID0gKHNwYzE5MjBfcGxkX3QgKikgQ0ZHX1NQQzE5MjBfUExEX0JBU0U7CisJdm9sYXRpbGUgc3BjMTkyMF9wbGRfdCAqcGxkID0gKHNwYzE5MjBfcGxkX3QgKikgQ09ORklHX1NZU19TUEMxOTIwX1BMRF9CQVNFOwogCiAJLyogZGVhY3RpdmF0ZSBocGkgKi8KIAlwbGQtPmRzcF9ocGlfb24gPSAweDA7CkBAIC0yMTAsNyArMjEwLDcgQEAKIC8qIHJlc2V0IHRoZSBEU1AgKi8KIHN0YXRpYyB2b2lkIGRzcF9yZXNldCh2b2lkKQogewotCXZvbGF0aWxlIHNwYzE5MjBfcGxkX3QgKnBsZCA9IChzcGMxOTIwX3BsZF90ICopIENGR19TUEMxOTIwX1BMRF9CQVNFOworCXZvbGF0aWxlIHNwYzE5MjBfcGxkX3QgKnBsZCA9IChzcGMxOTIwX3BsZF90ICopIENPTkZJR19TWVNfU1BDMTkyMF9QTERfQkFTRTsKIAlwbGQtPmRzcF9yZXNldCA9IDB4MTsKIAlwbGQtPmRzcF9ocGlfb24gPSAweDA7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3NwYzE5MjAvc3BjMTkyMC5jIGIvYm9hcmQvc3BjMTkyMC9zcGMxOTIwLmMKaW5kZXggYTMyYWFkMC4uZWU5MzliZiAxMDA2NDQKLS0tIGEvYm9hcmQvc3BjMTkyMC9zcGMxOTIwLmMKKysrIGIvYm9hcmQvc3BjMTkyMC9zcGMxOTIwLmMKQEAgLTg0LDkgKzg0LDkgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwotCS8qIHZvbGF0aWxlIHNwYzE5MjBfcGxkX3QgKnBsZCA9IChzcGMxOTIwX3BsZF90ICopIENGR19TUEMxOTIwX1BMRF9CQVNFOyAqLworCS8qIHZvbGF0aWxlIHNwYzE5MjBfcGxkX3QgKnBsZCA9IChzcGMxOTIwX3BsZF90ICopIENPTkZJR19TWVNfU1BDMTkyMF9QTERfQkFTRTsgKi8KIAogCWxvbmcgaW50IHNpemVfYjA7CiAJbG9uZyBpbnQgc2l6ZTgsIHNpemU5OwpAQCAtOTksMTkgKzk5LDE5IEBACiAKIAl1ZGVsYXkoMTAwKTsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogCiAJLyogYnVyc3QgbGVuZ3RoPTQsIGJ1cnN0IHR5cGU9c2VxdWVudGlhbCwgQ0FTIGxhdGVuY3k9MiAqLwotCW1lbWN0bC0+bWVtY19tYXIgPSBDRkdfTUFSOworCW1lbWN0bC0+bWVtY19tYXIgPSBDT05GSUdfU1lTX01BUjsKIAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgYmFuayAxIHRvIHRoZSBTRFJBTSBiYW5rIGF0IHByZWxpbWluYXJ5IGFkZHJlc3MuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAKIAkvKiBpbml0aWFsaXplIG1lbW9yeSBhZGRyZXNzIHJlZ2lzdGVyICovCi0JbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUJNUl84Q09MOyAvKiByZWZyZXNoIG5vdCBlbmFibGVkIHlldCAqLworCW1lbWN0bC0+bWVtY19tYm1yID0gQ09ORklHX1NZU19NQk1SXzhDT0w7IC8qIHJlZnJlc2ggbm90IGVuYWJsZWQgeWV0ICovCiAKIAkvKiBtb2RlIGluaXRpYWxpemF0aW9uIChvZmZzZXQgNSkgKi8KIAl1ZGVsYXkgKDIwMCk7CQkJCS8qIDB4ODAwMDYxMDUgKi8KQEAgLTEzMiw3ICsxMzIsNyBAQAogCS8qIE5lZWQgYXQgbGVhc3QgMTAgRFJBTSBhY2Nlc3NlcyB0byBzdGFiaWxpemUgKi8KIAlmb3IgKGkgPSAwOyBpIDwgMTA7ICsraSkgewogCQl2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyID0KLQkJCSh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIENGR19TRFJBTV9CQVNFOworCQkJKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCQl1bnNpZ25lZCBsb25nIHZhbDsKIAogCQl2YWwgPSAqKGFkZHIgKyBpKTsKQEAgLTE0NCwyMiArMTQ0LDIyIEBACiAJICoKIAkgKiB0cnkgOCBjb2x1bW4gbW9kZQogCSAqLwotCXNpemU4ID0gZHJhbV9zaXplIChDRkdfTUJNUl84Q09MLCAobG9uZyAqKUNGR19TRFJBTV9CQVNFLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUJNUl84Q09MLCAobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgU0RSQU1fTUFYX1NJWkUpOwogCiAJdWRlbGF5ICgxMDAwKTsKIAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01CTVJfOUNPTCwgKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgU0RSQU1fTUFYX1NJWkUpOworCXNpemU5ID0gZHJhbV9zaXplIChDT05GSUdfU1lTX01CTVJfOUNPTCwgKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNEUkFNX01BWF9TSVpFKTsKIAogCWlmIChzaXplOCA8IHNpemU5KSB7CQkvKiBsZWF2ZSBjb25maWd1cmF0aW9uIGF0IDkgY29sdW1ucyAqLwogCQlzaXplX2IwID0gc2l6ZTk7Ci0JCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfOUNPTCB8IE1CTVJfUFRCRTsKKwkJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOUNPTCB8IE1CTVJfUFRCRTsKIAkJdWRlbGF5ICg1MDApOwogCX0gZWxzZSB7CQkJLyogYmFjayB0byA4IGNvbHVtbnMgICAgICAgICAgICAqLwogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfOENPTCB8IE1CTVJfUFRCRTsKKwkJbWVtY3RsLT5tZW1jX21ibXIgPSBDT05GSUdfU1lTX01CTVJfOENPTCB8IE1CTVJfUFRCRTsKIAkJdWRlbGF5ICg1MDApOwogCX0KIApAQCAtMTY5LDE1ICsxNjksMTUgQEAKIAogCW1lbWN0bC0+bWVtY19vcjEgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwKIAkJCU9SX0NTTlRfU0FNIHwgT1JfRzVMUyB8IFNEUkFNX1RJTUlORzsKLQltZW1jdGwtPm1lbWNfYnIxID0gKENGR19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WOworCW1lbWN0bC0+bWVtY19icjEgPSAoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WOwogCXVkZWxheSAoMTAwMCk7CiAKIAkvKiBpbml0YWxpemUgdGhlIERTUCBIb3N0IFBvcnQgSW50ZXJmYWNlICovCiAJaHBpX2luaXQoKTsKIAogCS8qIEZSQU0gU2V0dXAgKi8KLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNDsKLQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNDsKKwltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjQ7CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0OwogCXVkZWxheSgxMDAwKTsKIAogCXJldHVybiAoc2l6ZV9iMCk7CkBAIC0xOTMsNyArMTkzLDcgQEAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1ibXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLAogCQkJICAgbG9uZyBpbnQgbWF4c2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCW1lbWN0bC0+bWVtY19tYm1yID0gbWJtcl92YWx1ZTsKQEAgLTIwNyw3ICsyMDcsNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIFNldCBHby9Ob0dvIGxlZCAoUEExNSkgdG8gY29sb3IgcmVkICovCiAJaW1tYXAtPmltX2lvcG9ydC5pb3BfcGFwYXIgJj0gfjB4MTsKQEAgLTI0MCw3ICsyNDAsNyBAQAogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BkZGF0IHw9IDB4MDAyMDsKIAogCi0jaWZkZWYgQ0ZHX1NNQzFfUExEX0NMSzQgLyogU01DMSB1c2VzIENMSzQgZnJvbSBQTEQgKi8KKyNpZmRlZiBDT05GSUdfU1lTX1NNQzFfUExEX0NMSzQgLyogU01DMSB1c2VzIENMSzQgZnJvbSBQTEQgKi8KIAlpbW1hcC0+aW1fY3BtLmNwX3NpbW9kZSB8PSAweDcwMDA7CiAJaW1tYXAtPmltX2NwbS5jcF9zaW1vZGUgJj0gfigweDgwMDApOwogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9zcGQ4eHgvZmxhc2guYyBiL2JvYXJkL3NwZDh4eC9mbGFzaC5jCmluZGV4IDhjMGJiNGYuLmZiMmZiNmEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3NwZDh4eC9mbGFzaC5jCisrKyBiL2JvYXJkL3NwZDh4eC9mbGFzaC5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKLWZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3NwZDh4eC9zcGQ4eHguYyBiL2JvYXJkL3NwZDh4eC9zcGQ4eHguYwppbmRleCA2Mzg3ZjhhLi45ZTk2NzhkIDEwMDY0NAotLS0gYS9ib2FyZC9zcGQ4eHgvc3BkOHh4LmMKKysrIGIvYm9hcmQvc3BkOHh4L3NwZDh4eC5jCkBAIC0xNDUsNyArMTQ1LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemVfYjA7CiAKQEAgLTE1MywyMyArMTUzLDIzIEBACiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDIgdG8gdGhlIFNSQU0gYmFuayBhdCBwcmVsaW1pbmFyeSBhZGRyZXNzLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjIgPSBDRkdfT1IyOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMjsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjI7CiAjZW5kaWYKIAogCS8qCiAJICogTWFwIGNvbnRyb2xsZXIgYmFuayA0IHRvIHRoZSBQRVI4IGJhbmsuCiAJICovCi0JbWVtY3RsLT5tZW1jX29yNCA9IENGR19PUjQ7Ci0JbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjQ7CisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0OworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNDsKIAogI2lmIDAKIAkvKiBDb25maWd1cmUgU0hBUkMgYXQgVU1BICovCiAJdXBtY29uZmlnIChVUE1BLCAodWludCAqKSBzaGFyY190YWJsZSwKIAkJICAgc2l6ZW9mIChzaGFyY190YWJsZSkgLyBzaXplb2YgKHVpbnQpKTsKIAkvKiBNYXAgY29udHJvbGxlciBiYW5rIDUgdG8gdGhlIFNIQVJDICovCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjU7Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjU7CisJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfT1I1OworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNTsKICNlbmRpZgogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSAweDAwMDAxMDAwOwpAQCAtMTc4LDE3ICsxNzgsMTcgQEAKIAl1cG1jb25maWcgKFVQTUIsICh1aW50ICopIHNkcmFtX3RhYmxlLAogCQkgICBzaXplb2YgKHNkcmFtX3RhYmxlKSAvIHNpemVvZiAodWludCkpOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSXzFCS184SzsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzFCS184SzsKIAogCW1lbWN0bC0+bWVtY19tYXIgPSAweDAwMDAwMDg4OwogCiAJLyoKIAkgKiBNYXAgY29udHJvbGxlciBiYW5rIDMgdG8gdGhlIFNEUkFNIGJhbmsgYXQgcHJlbGltaW5hcnkgYWRkcmVzcy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SM19QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKIAotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfOENPTDsJLyogcmVmcmVzaCBub3QgZW5hYmxlZCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl84Q09MOwkvKiByZWZyZXNoIG5vdCBlbmFibGVkIHlldCAqLwogCiAJdWRlbGF5ICgyMDApOwogCW1lbWN0bC0+bWVtY19tY3IgPSAweDgwODA2MTA1OwpAQCAtMjA1LDEwICsyMDUsMTAgQEAKIAkgKiBDaGVjayBCYW5rIDAgTWVtb3J5IFNpemUgZm9yIHJlLWNvbmZpZ3VyYXRpb24KIAkgKi8KIAlzaXplX2IwID0KLQkJZHJhbV9zaXplIChDRkdfTUJNUl84Q09MLCBTRFJBTV9CQVNFM19QUkVMSU0sCisJCWRyYW1fc2l6ZSAoQ09ORklHX1NZU19NQk1SXzhDT0wsIFNEUkFNX0JBU0UzX1BSRUxJTSwKIAkJCSAgIFNEUkFNX01BWF9TSVpFKTsKIAotCW1lbWN0bC0+bWVtY19tYm1yID0gQ0ZHX01CTVJfOENPTCB8IE1CTVJfUFRCRTsKKwltZW1jdGwtPm1lbWNfbWJtciA9IENPTkZJR19TWVNfTUJNUl84Q09MIHwgTUJNUl9QVEJFOwogCiAJcmV0dXJuIChzaXplX2IwKTsKIH0KQEAgLTIyNiw3ICsyMjYsNyBAQAogc3RhdGljIGxvbmcgaW50IGRyYW1fc2l6ZSAobG9uZyBpbnQgbWFtcl92YWx1ZSwgbG9uZyBpbnQgKmJhc2UsCiAJCQkgICBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21ibXIgPSBtYW1yX3ZhbHVlOwpAQCAtMjM4LDcgKzIzOCw3IEBACiAKIHZvaWQgcmVzZXRfcGh5ICh2b2lkKQogewotCWltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVzaG9ydCBzcmVnOwogCiAJLyogQ29uZmlndXJlIGV4dHJhIHBvcnQgcGlucyBmb3IgTlMgRFA4Mzg0MyBQSFkgKi8KQEAgLTI3NCwyMSArMjc0LDIxIEBACiAKIHZvaWQgaWRlX3NldF9yZXNldCAoaW50IG9uKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyoKIAkgKiBDb25maWd1cmUgUEMgZm9yIElERSBSZXNldCBQaW4KIAkgKi8KIAlpZiAob24pIHsJCS8qIGFzc2VydCBSRVNFVCAqLwotCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICY9IH4oQ0ZHX1BDX0lERV9SRVNFVCk7CisJCWltbXItPmltX2lvcG9ydC5pb3BfcGNkYXQgJj0gfihDT05GSUdfU1lTX1BDX0lERV9SRVNFVCk7CiAJfSBlbHNlIHsJCS8qIHJlbGVhc2UgUkVTRVQgKi8KLQkJaW1tci0+aW1faW9wb3J0LmlvcF9wY2RhdCB8PSBDRkdfUENfSURFX1JFU0VUOworCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IENPTkZJR19TWVNfUENfSURFX1JFU0VUOwogCX0KIAogCS8qIHByb2dyYW0gcG9ydCBwaW4gYXMgR1BJTyBvdXRwdXQgKi8KLQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BjcGFyICY9IH4oQ0ZHX1BDX0lERV9SRVNFVCk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY3NvICY9IH4oQ0ZHX1BDX0lERV9SRVNFVCk7Ci0JaW1tci0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSBDRkdfUENfSURFX1JFU0VUOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNwYXIgJj0gfihDT05GSUdfU1lTX1BDX0lERV9SRVNFVCk7CisJaW1tci0+aW1faW9wb3J0LmlvcF9wY3NvICY9IH4oQ09ORklHX1NZU19QQ19JREVfUkVTRVQpOworCWltbXItPmltX2lvcG9ydC5pb3BfcGNkaXIgfD0gQ09ORklHX1NZU19QQ19JREVfUkVTRVQ7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3Nzdi9hZG5wZXNjMS9hZG5wZXNjMS5jIGIvYm9hcmQvc3N2L2FkbnBlc2MxL2FkbnBlc2MxLmMKaW5kZXggNzFkZTIwOC4uOWQzMjc0MSAxMDA2NDQKLS0tIGEvYm9hcmQvc3N2L2FkbnBlc2MxL2FkbnBlc2MxLmMKKysrIGIvYm9hcmQvc3N2L2FkbnBlc2MxL2FkbnBlc2MxLmMKQEAgLTc2LDE0ICs3NiwxNCBAQAogCiB2b2lkIHNwaV9jc19hY3RpdmF0ZShzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSkKIHsKLQluaW9zX3NwaV90ICpzcGkgPSAobmlvc19zcGlfdCAqKUNGR19OSU9TX1NQSUJBU0U7CisJbmlvc19zcGlfdCAqc3BpID0gKG5pb3Nfc3BpX3QgKilDT05GSUdfU1lTX05JT1NfU1BJQkFTRTsKIAogCXNwaS0+c2xhdmVzZWxlY3QgPSBTUElfUlRDX0NTX01BU0s7CS8qIGFjdGl2YXRlICgxKSAqLwogfQogCiB2b2lkIHNwaV9jc19kZWFjdGl2YXRlKHN0cnVjdCBzcGlfc2xhdmUgKnNsYXZlKQogewotCW5pb3Nfc3BpX3QgKnNwaSA9IChuaW9zX3NwaV90ICopQ0ZHX05JT1NfU1BJQkFTRTsKKwluaW9zX3NwaV90ICpzcGkgPSAobmlvc19zcGlfdCAqKUNPTkZJR19TWVNfTklPU19TUElCQVNFOwogCiAJc3BpLT5zbGF2ZXNlbGVjdCA9IDA7CQkJLyogZGVhY3RpdmF0ZSAoMCkgKi8KIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3Nzdi9hZG5wZXNjMS9jb25maWcubWsgYi9ib2FyZC9zc3YvYWRucGVzYzEvY29uZmlnLm1rCmluZGV4IDdkOGViMDMuLmNmMDU0NDUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Nzdi9hZG5wZXNjMS9jb25maWcubWsKKysrIGIvYm9hcmQvc3N2L2FkbnBlc2MxL2NvbmZpZy5tawpAQCAtMjIsNyArMjIsNyBAQAogIyBNQSAwMjExMS0xMzA3IFVTQQogIwogCi1URVhUX0JBU0UgPSAweDAyZmMwMDAwCSMgQVRURU5USU9OOiBub3RpY2UgeW91ciBDRkdfTU9OSVRPUl9MRU4gc2V0dGluZworVEVYVF9CQVNFID0gMHgwMmZjMDAwMAkjIEFUVEVOVElPTjogbm90aWNlIHlvdXIgQ09ORklHX1NZU19NT05JVE9SX0xFTiBzZXR0aW5nCiAKIGlmZXEgKCQoZGVidWcpLDEpCiBQTEFURk9STV9DUFBGTEFHUyArPSAtRERFQlVHCmRpZmYgLS1naXQgYS9ib2FyZC9zc3YvYWRucGVzYzEvZmxhc2guYyBiL2JvYXJkL3Nzdi9hZG5wZXNjMS9mbGFzaC5jCmluZGV4IDI2MTQwNjguLjg4MjYzMGMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Nzdi9hZG5wZXNjMS9mbGFzaC5jCisrKyBiL2JvYXJkL3Nzdi9hZG5wZXNjMS9mbGFzaC5jCkBAIC0zNiw3ICszNiw3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lCUJBTktTWgkoOCAqIDEwMjQgKiAxMDI0KQogI2RlZmluZQlTRUNUU1oJKDY0ICogMTAyNCkKLSNkZWZpbmUJVUJPT1RTRUNTICgoQ0ZHX01PTklUT1JfTEVOICsgQ09ORklHX0VOVl9TSVpFKSAvIFNFQ1RTWikKKyNkZWZpbmUJVUJPT1RTRUNTICgoQ09ORklHX1NZU19NT05JVE9SX0xFTiArIENPTkZJR19FTlZfU0laRSkgLyBTRUNUU1opCiAjZGVmaW5lCVVCT09UQVJFQSAoVUJPT1RTRUNTICogNjQgKiAxMDI0KQkvKiBtb25pdG9yIC8gZW52IGFyZWEgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtNDcsMTYgKzQ3LDE2IEBACiAJZmxhc2hfaW5mb190ICpmbGkgPSAmZmxhc2hfaW5mb1swXTsKIAogCWZsaS0+c2l6ZSA9IEJBTktTWjsKLQlmbGktPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwlmbGktPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJZmxpLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQgKyBGTEFTSF9BTUxWNjQwVTsKIAotCWFkZHIgPSBDRkdfRkxBU0hfQkFTRTsKKwlhZGRyID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWZvciAoaSA9IDA7IGkgPCBmbGktPnNlY3Rvcl9jb3VudDsgKytpKSB7CiAJCWZsaS0+c3RhcnRbaV0gPSBhZGRyOwogCQlhZGRyICs9IFNFQ1RTWjsKIAogCQkvKiBQcm90ZWN0IG1vbml0b3IgLyBlbnZpcm9ubWVudCBhcmVhICovCi0JCWlmIChhZGRyIDw9IChDRkdfRkxBU0hfQkFTRSArIFVCT09UQVJFQSkpCisJCWlmIChhZGRyIDw9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBVQk9PVEFSRUEpKQogCQkJZmxpLT5wcm90ZWN0W2ldID0gMTsKIAkJZWxzZQogCQkJZmxpLT5wcm90ZWN0W2ldID0gMDsKZGlmZiAtLWdpdCBhL2JvYXJkL3Nzdi9hZG5wZXNjMS92ZWN0b3JzLlMgYi9ib2FyZC9zc3YvYWRucGVzYzEvdmVjdG9ycy5TCmluZGV4IGZiN2UxN2UuLjhiMmRhMmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3Nzdi9hZG5wZXNjMS92ZWN0b3JzLlMKKysrIGIvYm9hcmQvc3N2L2FkbnBlc2MxL3ZlY3RvcnMuUwpAQCAtNTcsMTIgKzU3LDEyIEBACiAJLmFsaWduCTQKIF92ZWN0b3JzOgogCi0jaWYJZGVmaW5lZChDRkdfTklPU19DUFVfT0NJX0JBU0UpCisjaWYJZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFKQogCS8qIE9DSSBkb2VzIHRoZSByZXNldCBqb2IgKi8KIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciAwICAtIE5NSSAvIFJlc2V0ICovCiAjZWxzZQogCS8qIHRoZXJlIGlzIG5vIE9DSSwgc28gd2UgaGF2ZSB0byBkbyBhIGRpcmVjdCByZXNldCBqdW1wIGhlcmUgKi8KLQkubG9uZwlDRkdfTklPU19DUFVfUlNUX1ZFQ1QJLyogVmVjdG9yIDAgIC0gUmVzZXQgdG8gR0VSTVMgKi8KKwkubG9uZwlDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCS8qIFZlY3RvciAwICAtIFJlc2V0IHRvIEdFUk1TICovCiAjZW5kaWYKIAkubG9uZwlfY3dwX2xvbGltaXRAaAkJLyogVmVjdG9yIDEgIC0gdW5kZXJmbG93ICovCiAJLmxvbmcJX2N3cF9oaWxpbWl0QGgJCS8qIFZlY3RvciAyICAtIG92ZXJmbG93CSovCkBAIC04MCw3ICs4MCw3IEBACiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgMTMgLSBmdXR1cmUgcmVzZXJ2ZWQgKi8KIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciAxNCAtIGZ1dHVyZSByZXNlcnZlZCAqLwogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDE1IC0gZnV0dXJlIHJlc2VydmVkICovCi0jaWYJKENGR19OSU9TX1RNUklSUSA9PSAxNikKKyNpZgkoQ09ORklHX1NZU19OSU9TX1RNUklSUSA9PSAxNikKIAkubG9uZwlfdGltZWJhc2VfaW50QGgJCS8qIFZlY3RvciAxNiAtIGxvcHJpIHRpbWVyKi8KICNlbHNlCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgMTYgKi8KQEAgLTExOCw3ICsxMTgsNyBAQAogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDQ3ICovCiAJLmxvbmcJX2RlZl94aGFuZGxlckBoCQkvKiBWZWN0b3IgNDggKi8KIAkubG9uZwlfZGVmX3hoYW5kbGVyQGgJCS8qIFZlY3RvciA0OSAqLwotI2lmCShDRkdfTklPU19UTVJJUlEgPT0gNTApCisjaWYJKENPTkZJR19TWVNfTklPU19UTVJJUlEgPT0gNTApCiAJLmxvbmcJX3RpbWViYXNlX2ludEBoCQkvKiBWZWN0b3IgNTAgLSBsb3ByaSB0aW1lciovCiAjZWxzZQogCS5sb25nCV9kZWZfeGhhbmRsZXJAaAkJLyogVmVjdG9yIDUwICovCmRpZmYgLS1naXQgYS9ib2FyZC9zc3YvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9zc3YvY29tbW9uL2ZsYXNoLmMKaW5kZXggNzBjYWI3Zi4uNzBiZjlkNiAxMDA2NDQKLS0tIGEvYm9hcmQvc3N2L2NvbW1vbi9mbGFzaC5jCisrKyBiL2JvYXJkL3Nzdi9jb21tb24vZmxhc2guYwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAjaW5jbHVkZSA8bmlvcy5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsKK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiB2b2lkIGZsYXNoX3ByaW50X2luZm8gKGZsYXNoX2luZm9fdCAqIGluZm8pCkBAIC03Miw4ICs3Miw4IEBACiAKIGludCBmbGFzaF9lcmFzZSAoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IHByb3QsIHNlY3QsIHdhaXQ7CiAJdW5zaWduZWQgb2xkcHJpOwogCXVsb25nIHN0YXJ0OwpAQCAtMTE2LDcgKzExNiw3IEBACiAJICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAJCQkqYWRkciA9IDB4ZjA7CiAJCQkqKGFkZHIrMHhBQUEvMikgPSAweGFhOwogCQkJKihhZGRyKzB4NTU0LzIpID0gMHg1NTsKQEAgLTEzNSw3ICsxMzUsNyBAQAogCQkJCQl1ZGVsYXkgKDEyNSAqIDEwMDApOwogCQkJCX0KIAkJCQlwdXRjICgnLicpOwotCQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoInRpbWVvdXRcbiIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9CkBAIC0xNjMsMTQgKzE2MywxNCBAQAogaW50IHdyaXRlX2J1ZmYgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVjaGFyICogc3JjYnVmZmVyLCB1bG9uZyBhZGRyLCB1bG9uZyBjbnQpCiB7CiAKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpjbWQgPSAodnVfc2hvcnQgKikgaW5mby0+c3RhcnRbMF07Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZHN0ID0gKHZ1X3Nob3J0ICopIGFkZHI7Ci0JQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqc3JjID0gKHZvaWQgKikgc3JjYnVmZmVyOwotCUNGR19GTEFTSF9XT1JEX1NJWkUgYjsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqY21kID0gKHZ1X3Nob3J0ICopIGluZm8tPnN0YXJ0WzBdOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICpkc3QgPSAodnVfc2hvcnQgKikgYWRkcjsKKwlDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqc3JjID0gKHZvaWQgKikgc3JjYnVmZmVyOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIGI7CiAJdW5zaWduZWQgb2xkcHJpOwogCXVsb25nIHN0YXJ0OwogCi0JY250IC89IHNpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsKKwljbnQgLz0gc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsKIAl3aGlsZSAoY250KSB7CiAJCS8qIENoZWNrIGZvciBzdWZmaWNpZW50IGVyYXNlICovCiAJCWIgPSAqc3JjOwpAQCAtMTkyLDcgKzE5Miw3IEBACiAJCS8qIFZlcmlmeSB3cml0ZSAqLwogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgqZHN0ICE9IGIpIHsKLQkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCQkqY21kID0gMHhmMDsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3Nzdi9jb21tb24vcG9zdC5jIGIvYm9hcmQvc3N2L2NvbW1vbi9wb3N0LmMKaW5kZXggYTVmMjljMS4uYzdhOWNjYyAxMDA2NDQKLS0tIGEvYm9hcmQvc3N2L2NvbW1vbi9wb3N0LmMKKysrIGIvYm9hcmQvc3N2L2NvbW1vbi9wb3N0LmMKQEAgLTI1LDE5ICsyNSwxOSBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfUE9TVCkgfHwgZGVmaW5lZChDT05GSUdfTE9HQlVGRkVSKQogCi0jaWYgIWRlZmluZWQoQ0ZHX05JT1NfUE9TVF9XT1JEX0FERFIpCi0jZXJyb3IgIioqKiBDRkdfTklPU19QT1NUX1dPUkRfQUREUiBub3QgZGVmaW5lZCAqKioiCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19OSU9TX1BPU1RfV09SRF9BRERSKQorI2Vycm9yICIqKiogQ09ORklHX1NZU19OSU9TX1BPU1RfV09SRF9BRERSIG5vdCBkZWZpbmVkICoqKiIKICNlbmRpZgogCiB2b2lkIHBvc3Rfd29yZF9zdG9yZSAodWxvbmcgYSkKIHsKLQl2b2xhdGlsZSB2b2lkICpzYXZlX2FkZHIgPSAodm9pZCAqKShDRkdfTklPU19QT1NUX1dPUkRfQUREUik7CisJdm9sYXRpbGUgdm9pZCAqc2F2ZV9hZGRyID0gKHZvaWQgKikoQ09ORklHX1NZU19OSU9TX1BPU1RfV09SRF9BRERSKTsKIAkqKHZvbGF0aWxlIHVsb25nICopIHNhdmVfYWRkciA9IGE7CiB9CiAKIHVsb25nIHBvc3Rfd29yZF9sb2FkICh2b2lkKQogewotCXZvbGF0aWxlIHZvaWQgKnNhdmVfYWRkciA9ICh2b2lkICopKENGR19OSU9TX1BPU1RfV09SRF9BRERSKTsKKwl2b2xhdGlsZSB2b2lkICpzYXZlX2FkZHIgPSAodm9pZCAqKShDT05GSUdfU1lTX05JT1NfUE9TVF9XT1JEX0FERFIpOwogCXJldHVybiAqKHZvbGF0aWxlIHVsb25nICopIHNhdmVfYWRkcjsKIH0KIApkaWZmIC0tZ2l0IGEvYm9hcmQvc3R4Z3AzL2Rkci5jIGIvYm9hcmQvc3R4Z3AzL2Rkci5jCmluZGV4IDQ1MzcyZjQuLjc4NTA3OTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eGdwMy9kZHIuYworKysgYi9ib2FyZC9zdHhncDMvZGRyLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxpMmMuaD4KIAogI2luY2x1ZGUgPGFzbS9mc2xfZGRyX3NkcmFtLmg+CisjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfZGltbV9wYXJhbXMuaD4KIAogc3RhdGljIHZvaWQKIGdldF9zcGQoZGRyMV9zcGRfZWVwcm9tX3QgKnNwZCwgdW5zaWduZWQgY2hhciBpMmNfYWRkcmVzcykKQEAgLTQwLDcgKzQxLDkgQEAKIAl9CiB9CiAKLXZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLCB1bnNpZ25lZCBpbnQgY3RybF9udW0pCit2b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywKKwkJCQlkaW1tX3BhcmFtc190ICpwZGltbSwKKwkJCQl1bnNpZ25lZCBpbnQgY3RybF9udW0pCiB7CiAJLyoKIAkgKiBGYWN0b3JzIHRvIGNvbnNpZGVyIGZvciBDUE86CmRpZmYgLS1naXQgYS9ib2FyZC9zdHhncDMvZmxhc2guYyBiL2JvYXJkL3N0eGdwMy9mbGFzaC5jCmluZGV4IDE0MzM0OTEuLjYxYzk2MDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eGdwMy9mbGFzaC5jCisrKyBiL2JvYXJkL3N0eGdwMy9mbGFzaC5jCkBAIC0zNywxMyArMzcsMTMgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAKLWZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLworZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcwkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfU0laRQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQlDT05GSUdfRU5WX1NFQ1RfU0laRQpAQCAtNzIsNyArNzIsNyBAQAogCS8qIEluaXQ6IGVuYWJsZSB3cml0ZSwKIAkgKiBvciB3ZSBjYW5ub3QgZXZlbiB3cml0ZSBmbGFzaCBjb21tYW5kcwogCSAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAkJLyogc2V0IHRoZSBkZWZhdWx0IHNlY3RvciBvZmZzZXQgKi8KQEAgLTgwLDcgKzgwLDcgQEAKIAogCS8qIFN0YXRpYyBGTEFTSCBCYW5rIGNvbmZpZ3VyYXRpb24gaGVyZSAtIEZJWE1FIFhYWCAqLwogCi0Jc2l6ZSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAogCWlmIChmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rIDAgLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKQEAgLTg4LDE1ICs4OCwxNSBAQAogCX0KIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogCiAjaWZkZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMzI5LDcgKzMyOSw3IEBACiAJCQkJCWFzbSgic3luYyIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9Ci0JCQkJaWYgKChub3c9Z2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IDB4RkZGRkZGRkY7CS8qIHJlc2V0IGJhbmsgKi8KIAkJCQkJYXNtKCJzeW5jIik7CkBAIC00NTgsNyArNDU4LDcgQEAKIAlmbGFnICA9IDA7CiAKIAl3aGlsZSAoKChjc3IgPSAqYWRkcikgJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCWZsYWcgPSAxOwogCQkJYnJlYWs7CiAJCX0KQEAgLTUwMiw3ICs1MDIsNyBAQAogCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlKCgqYWRkciAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApewotCQlpZiAoKG5vdz1nZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93PWdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0IG9uIGNsZWFyaW5nIEJsb2NrIExvY2sgQml0XG4iKTsKIAkJCSphZGRyID0gMHhGRkZGRkZGRjsJLyogcmVzZXQgYmFuayAqLwogCQkJYXNtKCJzeW5jIik7CkBAIC01MTIsNCArNTEyLDQgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qICFDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiAhQ09ORklHX1NZU19OT19GTEFTSCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3R4Z3AzL2xhdy5jIGIvYm9hcmQvc3R4Z3AzL2xhdy5jCmluZGV4IGE3ZTljZWIuLmJhODlmMGUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eGdwMy9sYXcuYworKysgYi9ib2FyZC9zdHhncDMvbGF3LmMKQEAgLTQ2LDEzICs0NiwxMyBAQAogCiBzdHJ1Y3QgbGF3X2VudHJ5IGxhd190YWJsZVtdID0gewogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQotCVNFVF9MQVcoQ0ZHX0REUl9TRFJBTV9CQVNFLCBMQVdfU0laRV8xMjhNLCBMQVdfVFJHVF9JRl9ERFIpLAorCVNFVF9MQVcoQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfRERSKSwKICNlbmRpZgotCVNFVF9MQVcoQ0ZHX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCiAJLyogVGhpcyBpcyBub3Qgc28gbXVjaCB0aGUgU0RSQU0gbWFwIGFzIGl0IGlzIHRoZSB3aG9sZSBsb2NhbGJ1cyBtYXAuICovCi0JU0VUX0xBVyhDRkdfTEJDX1NEUkFNX0JBU0UsIExBV19TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCi0JU0VUX0xBVyhDRkdfUENJMV9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSSksCi0JU0VUX0xBVyhDRkdfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBMQVdfU0laRV8yNTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBMQVdBUl9TSVpFXzUxMk0sIExBV19UUkdUX0lGX1JJTyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3R4Z3AzL3N0eGdwMy5jIGIvYm9hcmQvc3R4Z3AzL3N0eGdwMy5jCmluZGV4IGM4MGYxYjMuLjM4MDRmZTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eGdwMy9zdHhncDMuYworKysgYi9ib2FyZC9zdHhncDMvc3R4Z3AzLmMKQEAgLTIwMyw3ICsyMDMsNyBAQAogYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7CiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQotICAgIHZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QQ0lYX0FERFIpOworICAgIHZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2kgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfUENJWF9BRERSKTsKIAogICAgIHBjaS0+cGVlciAmPSAweGZmZmZmZmZkZjsgLyogZGlzYWJsZSBtYXN0ZXIgYWJvcnQgKi8KICNlbmRpZgpAQCAtMjE1LDcgKzIxNSw3IEBACiB7CiAJdm9sYXRpbGUgdWludCAqYmxhdGNoOwogCi0JYmxhdGNoID0gKHZvbGF0aWxlIHVpbnQgKilDRkdfTEJDX0xDTERFVlNfQkFTRTsKKwlibGF0Y2ggPSAodm9sYXRpbGUgdWludCAqKUNPTkZJR19TWVNfTEJDX0xDTERFVlNfQkFTRTsKIAogCS8qIHJlc2V0IEdpZ2EgYml0IEV0aGVybmV0IHBvcnQgaWYgbmVlZGVkIGhlcmUgKi8KIApAQCAtMjY3LDcgKzI2Nyw3IEBACiAJaWYgKG5leHRfbGVkX3VwZGF0ZSA+IGdldF90aWNrcygpKQogCQlyZXR1cm47CiAKLQlibGF0Y2ggPSAodm9sYXRpbGUgdWludCAqKUNGR19MQkNfTENMREVWU19CQVNFOworCWJsYXRjaCA9ICh2b2xhdGlsZSB1aW50ICopQ09ORklHX1NZU19MQkNfTENMREVWU19CQVNFOwogCiAJbGVkX2JpdCA+Pj0gMTsKIAlpZiAobGVkX2JpdCA9PSAwKQpAQCAtMjg0LDcgKzI4NCw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRExMKQogCXsKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJCXVpbnQgdGVtcF9kZHJkbGwgPSAwOwogCiAJCS8qIFdvcmsgYXJvdW5kIHRvIHN0YWJpbGl6ZSBERFIgRExMICovCkBAIC0zMDgsMTEgKzMwOCwxMSBAQAogfQogCiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3N0eGdwMy90bGIuYyBiL2JvYXJkL3N0eGdwMy90bGIuYwppbmRleCBkNDEwNDE2Li5hYTExYTVkIDEwMDY0NAotLS0gYS9ib2FyZC9zdHhncDMvdGxiLmMKKysrIGIvYm9hcmQvc3R4Z3AzL3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC00Niw3ICs0Niw3IEBACiAJICogMHhmZjAwMDAwMAkxNk0JRkxBU0gKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfMTZNLCAxKSwKIApAQCAtNTQsNyArNTQsNyBAQAogCSAqIFRMQiAxOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDgwMDAwMDAwCTI1Nk0JUENJMSBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMsIENGR19QQ0kxX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTYyLDcgKzYyLDcgQEAKIAkgKiBUTEIgMjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg5MDAwMDAwMAkyNTZNCVBDSTEgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTcwLDcgKzcwLDcgQEAKIAkgKiBUTEIgMzoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhjMDAwMDAwMAkyNTZNCVJhcGlkIElPIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUklPX01FTV9CQVNFLCBDRkdfUklPX01FTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03OCw3ICs3OCw3IEBACiAJICogVExCIDQ6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ZDAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC04Nyw3ICs4Nyw3IEBACiAJICogMHhlMDAwXzAwMDAJMU0JQ0NTUkJBUgogCSAqIDB4ZTIwMF8wMDAwCTE2TQlQQ0kxIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtOTUsNyArOTUsNyBAQAogCSAqIFRMQiA2Ogk2NE0JQ2FjaGVhYmxlLCBub24tZ3VhcmRlZAogCSAqIDB4ZjAwMF8wMDAwCTY0TQlMQkMgU0RSQU0KIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19MQkNfU0RSQU1fQkFTRSwgQ0ZHX0xCQ19TRFJBTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDYsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC0xMDMsNyArMTAzLDcgQEAKIAkgKiBUTEIgNzoJMTZLCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGZjMDAwMDAwCTE2SwlDb25maWd1cmF0aW9uIExhdGNoIHJlZ2lzdGVyCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfTEJDX0xDTERFVlNfQkFTRSwgQ0ZHX0xCQ19MQ0xERVZTX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19MQ0xERVZTX0JBU0UsIENPTkZJR19TWVNfTEJDX0xDTERFVlNfQkFTRSwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIE1BUzJfSXxNQVMyX0csCiAJCSAgICAgIDAsIDcsIEJPT0tFX1BBR0VTWl8xNkssIDEpLAogCkBAIC0xMTcsMTEgKzExNywxMSBAQAogCSAqIExpa2VseSBpdCBuZWVkcyB0byBiZSBpbmNyZWFzZWQgYnkgdHdvIGZvciB0aGVzZSBlbnRyaWVzLgogCSAqLwogI2Vycm9yKCJVcGRhdGUgdGhlIG51bWJlciBvZiB0YWJsZSBlbnRyaWVzIGluIHRsYjFfZW50cnkiKQotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0REUl9TRFJBTV9CQVNFLCBDRkdfRERSX1NEUkFNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgOCwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZKDEsIENGR19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHg0MDAwMDAwLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDksIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9zdHhzc2EvZGRyLmMgYi9ib2FyZC9zdHhzc2EvZGRyLmMKaW5kZXggNDUzNzJmNC4uNzg1MDc5NCAxMDA2NDQKLS0tIGEvYm9hcmQvc3R4c3NhL2Rkci5jCisrKyBiL2JvYXJkL3N0eHNzYS9kZHIuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGkyYy5oPgogCiAjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfc2RyYW0uaD4KKyNpbmNsdWRlIDxhc20vZnNsX2Rkcl9kaW1tX3BhcmFtcy5oPgogCiBzdGF0aWMgdm9pZAogZ2V0X3NwZChkZHIxX3NwZF9lZXByb21fdCAqc3BkLCB1bnNpZ25lZCBjaGFyIGkyY19hZGRyZXNzKQpAQCAtNDAsNyArNDEsOSBAQAogCX0KIH0KIAotdm9pZCBmc2xfZGRyX2JvYXJkX29wdGlvbnMobWVtY3RsX29wdGlvbnNfdCAqcG9wdHMsIHVuc2lnbmVkIGludCBjdHJsX251bSkKK3ZvaWQgZnNsX2Rkcl9ib2FyZF9vcHRpb25zKG1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLAorCQkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAorCQkJCXVuc2lnbmVkIGludCBjdHJsX251bSkKIHsKIAkvKgogCSAqIEZhY3RvcnMgdG8gY29uc2lkZXIgZm9yIENQTzoKZGlmZiAtLWdpdCBhL2JvYXJkL3N0eHNzYS9sYXcuYyBiL2JvYXJkL3N0eHNzYS9sYXcuYwppbmRleCA4NzMwY2RmLi41NWRkZTY2IDEwMDY0NAotLS0gYS9ib2FyZC9zdHhzc2EvbGF3LmMKKysrIGIvYm9hcmQvc3R4c3NhL2xhdy5jCkBAIC00NywxNCArNDcsMTQgQEAKIAogc3RydWN0IGxhd19lbnRyeSBsYXdfdGFibGVbXSA9IHsKICNpZm5kZWYgQ09ORklHX1NQRF9FRVBST00KLQlTRVRfTEFXKENGR19ERFJfU0RSQU1fQkFTRSwgTEFXX1NJWkVfMTI4TSwgTEFXX1RSR1RfSUZfRERSKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzEyOE0sIExBV19UUkdUX0lGX0REUiksCiAjZW5kaWYKLQlTRVRfTEFXKENGR19QQ0kxX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCi0JU0VUX0xBVyhDRkdfUENJMl9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzIpLAotCVNFVF9MQVcoQ0ZHX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCi0JU0VUX0xBVyhDRkdfUENJMl9JT19QSFlTLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSV8yKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLCBMQVdfU0laRV81MTJNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMSksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTJfSU9fUEhZUywgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lfMiksCiAJLyogTWFwIHRoZSB3aG9sZSBsb2NhbGJ1cywgaW5jbHVkaW5nIGZsYXNoIGFuZCByZXNldCBsYXRjaC4gKi8KLQlTRVRfTEFXKENGR19MQkNfT1BUSU9OX0JBU0UsIExBV0FSX1NJWkVfMjU2TSwgTEFXX1RSR1RfSUZfTEJDKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfTEJDX09QVElPTl9CQVNFLCBMQVdBUl9TSVpFXzI1Nk0sIExBV19UUkdUX0lGX0xCQyksCiB9OwogCiBpbnQgbnVtX2xhd19lbnRyaWVzID0gQVJSQVlfU0laRShsYXdfdGFibGUpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3R4c3NhL3N0eHNzYS5jIGIvYm9hcmQvc3R4c3NhL3N0eHNzYS5jCmluZGV4IDRkNGRjMDYuLjczZGRkZjMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eHNzYS9zdHhzc2EuYworKysgYi9ib2FyZC9zdHhzc2Evc3R4c3NhLmMKQEAgLTIwNyw3ICsyMDcsNyBAQAogI2lmIDAKIAlpbnQJaTsKICNlbmRpZgotCWJsYXRjaCA9ICh2b2xhdGlsZSB1aW50ICopQ0ZHX0xCQ19DRkdMQVRDSF9CQVNFOworCWJsYXRjaCA9ICh2b2xhdGlsZSB1aW50ICopQ09ORklHX1NZU19MQkNfQ0ZHTEFUQ0hfQkFTRTsKIAogCS8qIHJlc2V0IEdpZ2EgYml0IEV0aGVybmV0IHBvcnQgaWYgbmVlZGVkIGhlcmUgKi8KIApAQCAtMjUzLDcgKzI1Myw3IEBACiBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCi0Jdm9sYXRpbGUgY2Nzcl9wY2l4X3QgKnBjaSA9ICh2b2lkICopKENGR19NUEM4NXh4X1BDSVhfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9wY2l4X3QgKnBjaSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9QQ0lYX0FERFIpOwogCiAJcGNpLT5wZWVyICY9IDB4ZmZmZmZmZGY7IC8qIGRpc2FibGUgbWFzdGVyIGFib3J0ICovCiAjZW5kaWYKQEAgLTI4NCw3ICsyODQsNyBAQAogCWlmIChuZXh0X2xlZF91cGRhdGUgPiBnZXRfdGlja3MoKSkKIAkJcmV0dXJuOwogCi0JYmxhdGNoID0gKHZvbGF0aWxlIHVpbnQgKilDRkdfTEJDX0NGR0xBVENIX0JBU0U7CisJYmxhdGNoID0gKHZvbGF0aWxlIHVpbnQgKilDT05GSUdfU1lTX0xCQ19DRkdMQVRDSF9CQVNFOwogCiAJbGVkX2JpdCA+Pj0gMTsKIAlpZiAobGVkX2JpdCA9PSAwKQpAQCAtMzAxLDcgKzMwMSw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19ERFJfRExMKQogCXsKLQkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwkJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJCXVpbnQgdGVtcF9kZHJkbGwgPSAwOwogCiAJCS8qIFdvcmsgYXJvdW5kIHRvIHN0YWJpbGl6ZSBERFIgRExMICovCkBAIC0zMjUsMTEgKzMyNSwxMSBAQAogfQogCiAKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIGludCB0ZXN0ZHJhbSAodm9pZCkKIHsKLQl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDRkdfTUVNVEVTVF9TVEFSVDsKLQl1aW50ICpwZW5kID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfRU5EOworCXVpbnQgKnBzdGFydCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKKwl1aW50ICpwZW5kID0gKHVpbnQgKikgQ09ORklHX1NZU19NRU1URVNUX0VORDsKIAl1aW50ICpwOwogCiAJcHJpbnRmKCJTRFJBTSB0ZXN0IHBoYXNlIDE6XG4iKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3N0eHNzYS90bGIuYyBiL2JvYXJkL3N0eHNzYS90bGIuYwppbmRleCA4NmNiZDExLi4wMzg2NDMyIDEwMDY0NAotLS0gYS9ib2FyZC9zdHhzc2EvdGxiLmMKKysrIGIvYm9hcmQvc3R4c3NhL3RsYi5jCkBAIC0yOCwxNiArMjgsMTYgQEAKIAogc3RydWN0IGZzbF9lX3RsYl9lbnRyeSB0bGJfdGFibGVbXSA9IHsKIAkvKiBUTEIgMCAtIGZvciB0ZW1wIHN0YWNrIGluIGNhY2hlICovCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiwgQ0ZHX0lOSVRfUkFNX0FERFIsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IsIDAsCiAJCSAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSgwLCBDRkdfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKKwlTRVRfVExCX0VOVFJZKDAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDQgKiAxMDI0ICwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAotCVNFVF9UTEJfRU5UUlkoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCAsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDggKiAxMDI0LAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgMCwKIAkJICAgICAgMCwgMCwgQk9PS0VfUEFHRVNaXzRLLCAwKSwKLQlTRVRfVExCX0VOVFJZKDAsIENGR19JTklUX1JBTV9BRERSICsgMTIgKiAxMDI0ICwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQgLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCAwLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC00Niw3ICs0Niw3IEBACiAJICogMHhmYzAwMDAwMAk2TTQJRkxBU0gKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtNTQsNyArNTQsNyBAQAogCSAqIFRMQiAxOgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDgwMDAwMDAwCTI1Nk0JUENJMSBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMsIENGR19QQ0kxX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkoMSwgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTYyLDcgKzYyLDcgQEAKIAkgKiBUTEIgMjoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg5MDAwMDAwMAkyNTZNCVBDSTEgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSgxLCBDRkdfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENGR19QQ0kxX01FTV9QSFlTICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTcwLDcgKzcwLDcgQEAKIAkgKiBUTEIgMzoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhhMDAwMDAwMAkyNTZNCVBDSTIgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19QQ0kyX01FTV9QSFlTLCBDRkdfUENJMl9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZKDEsIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgMywgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC03OCw3ICs3OCw3IEBACiAJICogVExCIDQ6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4YjAwMDAwMDAJMjU2TQlQQ0kyIE1FTSBTZWNvbmQgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDRkdfUENJMl9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLCBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC04OCw3ICs4OCw3IEBACiAJICogMHhlMjAwXzAwMDAJMTZNCVBDSTEgSU8KIAkgKiAweGUzMDBfMDAwMAkxNk0JUENJMiBJTwogCSAqLwotCVNFVF9UTEJfRU5UUlkoMSwgQ0ZHX0NDU1JCQVIsIENGR19DQ1NSQkFSX1BIWVMsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICBNQVMzX1NYfE1BUzNfU1d8TUFTM19TUiwgTUFTMl9JfE1BUzJfRywKIAkJICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCiAKQEAgLTk4LDcgKzk4LDcgQEAKIAkgKiAweGZiMDAwMDAwCQlDb25maWd1cmF0aW9uIExhdGNoIHJlZ2lzdGVyIChvbmUgd29yZCkKIAkgKiAweGZjMDAwMDAwCQlVcCB0byA2NE0gZmxhc2gKIAkgKi8KLQlTRVRfVExCX0VOVFJZKDEsIENGR19MQkNfT1BUSU9OX0JBU0UsIENGR19MQkNfT1BUSU9OX0JBU0UsCisJU0VUX1RMQl9FTlRSWSgxLCBDT05GSUdfU1lTX0xCQ19PUFRJT05fQkFTRSwgQ09ORklHX1NZU19MQkNfT1BUSU9OX0JBU0UsCiAJCSAgICAgIE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkgICAgICAwLCA3LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiB9OwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3R4eHRjL3N0eHh0Yy5jIGIvYm9hcmQvc3R4eHRjL3N0eHh0Yy5jCmluZGV4IDRiYjJkNjguLmExYTM2YzQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N0eHh0Yy9zdHh4dGMuYworKysgYi9ib2FyZC9zdHh4dGMvc3R4eHRjLmMKQEAgLTM0OSw3ICszNDksNyBAQAogI2RlZmluZSBNQVJfU0RSQU1fSU5JVAkJKChDQVNfTEFURU5DWSA8PCA2KSB8IDB4MDAwMDAwMDhMVSkKIAogLyogOSAqLwotI2RlZmluZSBDRkdfTUFNUgkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC00MDEsNyArNDAxLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0oaW50IGJvYXJkX3R5cGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJbG9uZyBpbnQgc2l6ZTsKIAl1MzIgZDEsIGQyOwpAQCAtNDE4LDEwICs0MTgsMTAgQEAKIAkvKgogCSAqIE1hcCBjb250cm9sbGVyIGJhbmsgMyB0byB0aGUgU0RSQU0gYmFuayBhdCBwcmVsaW1pbmFyeSBhZGRyZXNzLgogCSAqLwotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNF9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yNCA9IENPTkZJR19TWVNfT1I0X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI0ID0gQ09ORklHX1NZU19CUjRfUFJFTElNOwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUiAmIH5NQU1SX1BUQUU7CS8qIG5vIHJlZnJlc2ggeWV0ICovCisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVIgJiB+TUFNUl9QVEFFOwkvKiBubyByZWZyZXNoIHlldCAqLwogCiAJdWRlbGF5KDIwMCk7CiAKQEAgLTUyOSw3ICs1MjksNyBAQAogCiBpbnQgYm9hcmRfZWFybHlfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBpb3A4eHhfdCAqaW9wb3J0ID0gJmltbWFwLT5pbV9pb3BvcnQ7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwbSA9ICZpbW1hcC0+aW1fY3BtOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKQEAgLTU3OSwxMyArNTc5LDEzIEBACiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfbGVnYWN5Lmg+CiAKIGV4dGVybiB1bG9uZyBuYW5kX3Byb2JlKHVsb25nIHBoeXNhZHIpOwotZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDRkdfTUFYX05BTkRfREVWSUNFXTsKK2V4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdOwogCiB2b2lkIG5hbmRfaW5pdCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgdG90bGVuOwogCi0JdG90bGVuID0gbmFuZF9wcm9iZShDRkdfTkFORF9CQVNFKTsKKwl0b3RsZW4gPSBuYW5kX3Byb2JlKENPTkZJR19TWVNfTkFORF9CQVNFKTsKIAlwcmludGYgKCIlNGx1IE1CXG4iLCB0b3RsZW4gPj4gMjApOwogfQogI2VuZGlmCkBAIC01OTksNyArNTk5LDcgQEAKIAogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19DT05TT0xFX0lTX0lOX0VOVikgJiYgZGVmaW5lZChDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYpICYmIGRlZmluZWQoQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FKQogaW50IG92ZXJ3cml0ZV9jb25zb2xlKHZvaWQpCiB7CiAJLyogcHJpbnRmKCJvdmVyd3JpdGVfY29uc29sZSBjYWxsZWRcbiIpOyAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvc3ZtX3NjOHh4L2ZsYXNoLmMgYi9ib2FyZC9zdm1fc2M4eHgvZmxhc2guYwppbmRleCAwMGZlZDU5Li5kYjFmMjFhIDEwMDY0NAotLS0gYS9ib2FyZC9zdm1fc2M4eHgvZmxhc2guYworKysgYi9ib2FyZC9zdm1fc2M4eHgvZmxhc2guYwpAQCAtMjQsMTAgKzI0LDEwIEBACiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAKICNpZm5kZWYJQ09ORklHX0VOVl9BRERSCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICNlbmRpZgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRnVuY3Rpb25zCkBAIC01NCw3ICs1NCw3IEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCwgc2l6ZV9iMTsKIAlpbnQgaTsKQEAgLTYyLDE2ICs2MiwxNiBAQAogCXNpemVfYjA9MDsKIAlzaXplX2IxPTA7CiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQotI2lmZGVmIENGR19ET0NfQkFTRQorI2lmZGVmIENPTkZJR19TWVNfRE9DX0JBU0UKICNpZm5kZWYgQ09ORklHX0ZFTDh4eF9BVAotCW1lbWN0bC0+bWVtY19vcjUgPSAoMHhmZmZmODAwMCB8IENGR19PUl9USU1JTkdfRE9DICk7IC8qIDMyayBieXRlcyAqLwotCW1lbWN0bC0+bWVtY19icjUgPSBDRkdfRE9DX0JBU0UgfCAweDQwMTsKKwltZW1jdGwtPm1lbWNfb3I1ID0gKDB4ZmZmZjgwMDAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19ET0MgKTsgLyogMzJrIGJ5dGVzICovCisJbWVtY3RsLT5tZW1jX2JyNSA9IENPTkZJR19TWVNfRE9DX0JBU0UgfCAweDQwMTsKICNlbHNlCi0JbWVtY3RsLT5tZW1jX29yMyA9ICgweGZmZmY4MDAwIHwgQ0ZHX09SX1RJTUlOR19ET0MgKTsgLyogMzJrIGJ5dGVzICovCi0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19ET0NfQkFTRSB8IDB4NDAxOworCW1lbWN0bC0+bWVtY19vcjMgPSAoMHhmZmZmODAwMCB8IENPTkZJR19TWVNfT1JfVElNSU5HX0RPQyApOyAvKiAzMmsgYnl0ZXMgKi8KKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19ET0NfQkFTRSB8IDB4NDAxOwogI2VuZGlmCiAjZW5kaWYKICNpZiBkZWZpbmVkKCBDT05GSUdfQk9PVF84QikKQEAgLTEzNiwxOSArMTM2LDE5IEBACiAJfQogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopQ0ZHX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCWZsYXNoX2dldF9vZmZzZXRzIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTE2MSwyMSArMTYxLDIxIEBACiAjZW5kaWYKIAogCWlmIChzaXplX2IxKSB7Ci0JCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7Ci0JCW1lbWN0bC0+bWVtY19icjEgPSAoKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCkgJiBCUl9CQV9NU0spIHwKKwkJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgMHhGRkZGODAwMCk7CisJCW1lbWN0bC0+bWVtY19icjEgPSAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIHNpemVfYjApICYgQlJfQkFfTVNLKSB8CiAJCQkJICAgIEJSX01TX0dQQ00gfCBCUl9WOwogCiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQkJc2l6ZV9iMSA9IGZsYXNoX2dldF9zaXplKCh2dV9sb25nICopKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCisJCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSwKIAkJCQkJICAmZmxhc2hfaW5mb1sxXSk7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAogCQkJICAgICAgJmZsYXNoX2luZm9bMV0pOwogI2VuZGlmCiAKQEAgLTU2MSw3ICs1NjEsNyBAQAogIyBlcnJvciBDT05GSUdfQk9PVF8oc2l6ZSlCIG1pc3NpbmcuCiAjZW5kaWYKIAl7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC03MTAsNyArNzEwLDcgQEAKIAkgIHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAlsYXN0ICA9IHN0YXJ0OwogCSAgd2hpbGUoICAoIG15X2luXzgoKHVuc2lnbmVkIGNoYXIgKikgKGRlc3QraSkpICkgIT0gKCBkYXRhX2NoW2ldICApICkgewotCQkgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgKSB7CisJCSAgaWYgKGdldF90aW1lcihzdGFydCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgKSB7CiAJCQkgIHJldHVybiAxOwogCQkgIH0KIAkgIH0KQEAgLTczMCw3ICs3MzAsNyBAQAogCSAgc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWxhc3QgID0gc3RhcnQ7CiAJICB3aGlsZSggICggbXlfaW5fYmUxNigodW5zaWduZWQgc2hvcnQgKikgKGRlc3QrKGkqMikpKSApICE9ICggZGF0YV9zaG9ydFtpXSAgKSApIHsKLQkJICBpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUICkgeworCQkgIGlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICkgewogCQkJICByZXR1cm4gMTsKIAkJICB9CiAJICB9CkBAIC03NDksNyArNzQ5LDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvc3ZtX3NjOHh4L3N2bV9zYzh4eC5jIGIvYm9hcmQvc3ZtX3NjOHh4L3N2bV9zYzh4eC5jCmluZGV4IDQ4ZTA1YjguLjQzOTBlNDkgMTAwNjQ0Ci0tLSBhL2JvYXJkL3N2bV9zYzh4eC9zdm1fc2M4eHguYworKysgYi9ib2FyZC9zdm1fc2M4eHgvc3ZtX3NjOHh4LmMKQEAgLTEwMiwxNSArMTAyLDE1IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemVfYjAgPSAwOwogCiAJdXBtY29uZmlnKFVQTUEsICh1aW50ICopc2RyYW1fdGFibGUsIHNpemVvZihzZHJhbV90YWJsZSkvc2l6ZW9mKHVpbnQpKTsKIAotCW1lbWN0bC0+bWVtY19tcHRwciA9IENGR19NUFRQUjsKKwltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSOwogI2lmIGRlZmluZWQgKENPTkZJR19TRFJBTV8xNk0pCi0JbWVtY3RsLT5tZW1jX21hbXIgPSAweDAwODAyMTE0IHwgQ0ZHX014TVJfUFR4OworCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMDgwMjExNCB8IENPTkZJR19TWVNfTXhNUl9QVHg7CiAJbWVtY3RsLT5tZW1jX21jciAgPSAweDgwMDAyMTA1OyAgICAgLyogU0RSQU0gYmFuayAwICovCiAJdWRlbGF5KDEpOwogCW1lbWN0bC0+bWVtY19tY3IgID0gMHg4MDAwMjgzMDsKQEAgLTEyMiw3ICsxMjIsNyBAQAogCW1lbWN0bC0+bWVtY19vcjEgPSAgMHhmZjAwMGEwMDsKIAlzaXplX2IwID0gMHgwMTAwMDAwMDsKICNlbGlmIGRlZmluZWQgKENPTkZJR19TRFJBTV8zMk0pCi0JbWVtY3RsLT5tZW1jX21hbXIgPSAweDAwOTA0MTE0IHwgQ0ZHX014TVJfUFR4OworCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMDkwNDExNCB8IENPTkZJR19TWVNfTXhNUl9QVHg7CiAJbWVtY3RsLT5tZW1jX21jciAgPSAweDgwMDAyMTA1OyAgICAgLyogU0RSQU0gYmFuayAwICovCiAJdWRlbGF5KDEpOwogCW1lbWN0bC0+bWVtY19tY3IgID0gMHg4MDAwMjgzMDsKQEAgLTEzNCw3ICsxMzQsNyBAQAogCW1lbWN0bC0+bWVtY19vcjEgPSAgMHhmZTAwMGEwMDsKIAlzaXplX2IwID0gMHgwMjAwMDAwMDsKICNlbGlmIGRlZmluZWQgKENPTkZJR19TRFJBTV82NE0pCi0JbWVtY3RsLT5tZW1jX21hbXIgPSAweDAwYTA0MTE0IHwgQ0ZHX014TVJfUFR4OworCW1lbWN0bC0+bWVtY19tYW1yID0gMHgwMGEwNDExNCB8IENPTkZJR19TWVNfTXhNUl9QVHg7CiAJbWVtY3RsLT5tZW1jX21jciAgPSAweDgwMDAyMTA1OyAgICAgLyogU0RSQU0gYmFuayAwICovCiAJdWRlbGF5KDEpOwogCW1lbWN0bC0+bWVtY19tY3IgID0gMHg4MDAwMjgzMDsKQEAgLTE1Niw2ICsxNTYsNiBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ET0MpCiB2b2lkIGRvY19pbml0ICh2b2lkKQogewotCSAgICAgICAgZG9jX3Byb2JlIChDRkdfRE9DX0JBU0UpOworCSAgICAgICAgZG9jX3Byb2JlIChDT05GSUdfU1lTX0RPQ19CQVNFKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9hcmQvdGIwMjI5L2ZsYXNoLmMgYi9ib2FyZC90YjAyMjkvZmxhc2guYwppbmRleCBlOWY2NDE4Li45MzNkNWVjIDEwMDY0NAotLS0gYS9ib2FyZC90YjAyMjkvZmxhc2guYworKysgYi9ib2FyZC90YjAyMjkvZmxhc2guYwpAQCAtMjcsMTAgKzI3LDEwIEBACiAjaW5jbHVkZSA8cHBjNHh4Lmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgICAgICovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CS8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICAgICAgICAqLwogCiAKLSNpZmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAjZGVmaW5lIEZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAogI2RlZmluZQlGTEFTSF9JRF9NQVNLCTB4RkZGRgogI2Vsc2UKQEAgLTQ0LDcgKzQ0LDcgQEAKIC8qIHN0b2xlbiBmcm9tIGVzdGVlbTE5MmUvZmxhc2guYyAqLwogdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZvbGF0aWxlIEZMQVNIX1dPUkRfU0laRSAqIGFkZHIsIGZsYXNoX2luZm9fdCAqIGluZm8pOwogCi0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwogI2Vsc2UKIHN0YXRpYyBpbnQgd3JpdGVfc2hvcnQgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVzaG9ydCBkYXRhKTsKQEAgLTYzLDE0ICs2MywxNCBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZV9iMCwgYmFzZV9iMTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIC0gRklYTUUgWFhYICovCiAKIAlzaXplX2IwID0KLQkJZmxhc2hfZ2V0X3NpemUgKCh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKikgQ0ZHX0ZMQVNIX0JBU0UsCisJCWZsYXNoX2dldF9zaXplICgodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CkBAIC03OCw5ICs3OCw5IEBACiAJfQogCiAJLyogT25seSBvbmUgYmFuayAqLwotCWlmIChDRkdfTUFYX0ZMQVNIX0JBTktTID09IDEpIHsKKwlpZiAoQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgPT0gMSkgewogCQkvKiBTZXR1cCBvZmZzZXRzICovCi0JCWZsYXNoX2dldF9vZmZzZXRzIChDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KICNpZiAwCQkJCS8qIHNhbmQ6ICovCkBAIC05MSwxOSArOTEsMTkgQEAKIAkJCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZWxzZQogCQkodm9pZCkgZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtCisJCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtCiAJCQkJICAgICAgMSwgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAJCXNpemVfYjEgPSAwOwogCQlmbGFzaF9pbmZvWzBdLnNpemUgPSBzaXplX2IwOwogCX0KLSNpZmRlZiBDRkdfRkxBU0hfQkFTRV8yCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9CQVNFXzIKIAkvKiAyIGJhbmtzICovCiAJZWxzZSB7CiAJCXNpemVfYjEgPQogCQkJZmxhc2hfZ2V0X3NpemUgKCh2b2xhdGlsZSBGTEFTSF9XT1JEX1NJWkUgKikKLQkJCQkJQ0ZHX0ZMQVNIX0JBU0VfMiwgJmZsYXNoX2luZm9bMV0pOworCQkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0VfMiwgJmZsYXNoX2luZm9bMV0pOwogCiAJCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KIApAQCAtMTQ0LDggKzE0NCw4IEBACiAJCQkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2Vsc2UKIAkJKHZvaWQpIGZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLQorCQkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLQogCQkJCSAgICAgIDEsICZmbGFzaF9pbmZvWzBdKTsKICNlbmRpZgogCkBAIC0yMDAsNyArMjAwLDcgQEAKIAl9IGVsc2UgaWYgKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfQlRZUEUpIHsKIAkJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1ZFTkRNQVNLKSA9PSBGTEFTSF9NQU5fSU5URUwpIHsKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkJLyogc2V0IHNlY3RvciBvZmZzZXRzIGZvciBib3R0b20gYm9vdCBibG9jayB0eXBlICAgICAgICAqLwogCQkJaW5mby0+c3RhcnRbMF0gPSBiYXNlICsgMHgwMDAwMDAwMDsKIAkJCWluZm8tPnN0YXJ0WzFdID0gYmFzZSArIDB4MDAwMDQwMDA7CkBAIC0yNTYsNyArMjU2LDcgQEAKIAkJaSA9IGluZm8tPnNlY3Rvcl9jb3VudCAtIDE7CiAJCWlmICgoaW5mby0+Zmxhc2hfaWQgJiBGTEFTSF9WRU5ETUFTSykgPT0gRkxBU0hfTUFOX0lOVEVMKSB7CiAKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAkJCWluZm8tPnN0YXJ0W2ktLV0gPSBiYXNlICsgaW5mby0+c2l6ZSAtIDB4MDAwMDQwMDA7CiAJCQlpbmZvLT5zdGFydFtpLS1dID0gYmFzZSArIGluZm8tPnNpemUgLSAweDAwMDA4MDAwOwogCQkJaW5mby0+c3RhcnRbaS0tXSA9IGJhc2UgKyBpbmZvLT5zaXplIC0gMHgwMDAwQzAwMDsKQEAgLTQ0OCw3ICs0NDgsNyBAQAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCiAKIAotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCiAJLyoKIAkgKiBOb3RlOiBpZiBpdCBpcyBhbiBBTUQgZmxhc2ggYW5kIHRoZSB3b3JkIGF0IGFkZHJbMDAwMF0KQEAgLTY5OSw3ICs2OTksNyBAQAogCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMgKCk7CiAJaWYgKGluZm8tPmZsYXNoX2lkIDwgRkxBU0hfQU1EX0NPTVApIHsKLSNpZm5kZWYgQ0ZHX0ZMQVNIXzE2QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfMTZCSVQKIAkJYWRkclsweDA1NTVdID0gMHgwMEFBMDBBQTsKIAkJYWRkclsweDAyQUFdID0gMHgwMDU1MDA1NTsKIAkJYWRkclsweDA1NTVdID0gMHgwMDgwMDA4MDsKQEAgLTc0MSw3ICs3NDEsNyBAQAogCQlhZGRyID0gKHZvbGF0aWxlIEZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJCXdoaWxlICgoYWRkclswXSAmICgweDAwODAwMDgwICYgRkxBU0hfSURfTUFTSykpICE9CiAJCSAgICAgICAoMHgwMDgwMDA4MCAmIEZMQVNIX0lEX01BU0spKSB7Ci0JCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCXJldHVybiAxOwogCQkJfQpAQCAtNzYyLDcgKzc2Miw3IEBACiAJCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJCWlmIChpbmZvLT5wcm90ZWN0W3NlY3RdID09IDApIHsJLyogbm90IHByb3RlY3RlZCAqLwogCQkJCWJhcmYgPSAwOwotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkJCWFkZHIgPSAodnVfbG9uZyAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCQkJCWFkZHJbMF0gPSAweDAwNTAwMDUwOwogCQkJCWFkZHJbMF0gPSAweDAwMjAwMDIwOwpAQCAtODAxLDcgKzgwMSw3IEBACiAJCQkJbF9zZWN0ID0gc2VjdDsKIAkJCX0KIAkJCWFkZHIgPSAodm9sYXRpbGUgRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOwotI2lmbmRlZiBDRkdfRkxBU0hfMTZCSVQKKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF8xNkJJVAogCQkJYWRkclswXSA9ICgweDAwRkYwMEZGICYgRkxBU0hfSURfTUFTSyk7CS8qIHJlc2V0IGJhbmsgKi8KICNlbHNlCiAJCQlhZGRyWzBdID0gKDB4MDBGRiAmIEZMQVNIX0lEX01BU0spOwkvKiByZXNldCBiYW5rICovCkBAIC04MjEsNyArODIxLDcgQEAKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJaW50IGk7CiAKLQlmb3IgKGk9MCwgaW5mbz0mZmxhc2hfaW5mb1swXTsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgeworCWZvciAoaT0wLCBpbmZvPSZmbGFzaF9pbmZvWzBdOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgewogCQlpZiAoKGFkZHIgPj0gaW5mby0+c3RhcnRbMF0pICYmCiAJCSAgICAoYWRkciA8IChpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUpKSApIHsKIAkJCXJldHVybiAoaW5mbyk7CkBAIC04OTgsNyArODk4LDcgQEAKIAogaW50IHdyaXRlX2J1ZmYgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVjaGFyICogc3JjLCB1bG9uZyBhZGRyLCB1bG9uZyBjbnQpCiB7Ci0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAJdWxvbmcgY3AsIHdwLCBkYXRhOwogCWludCBsOwogI2Vsc2UKQEAgLTkwNyw3ICs5MDcsNyBAQAogI2VuZGlmCiAJaW50IGksIHJjOwogCi0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiAKIAogCXdwID0gKGFkZHIgJiB+Myk7CS8qIGdldCBsb3dlciB3b3JkIGFsaWduZWQgYWRkcmVzcyAqLwpAQCAtMTAzNCw3ICsxMDM0LDcgQEAKICAqIDEgLSB3cml0ZSB0aW1lb3V0CiAgKiAyIC0gRmxhc2ggbm90IGVyYXNlZAogICovCi0jaWZuZGVmIENGR19GTEFTSF8xNkJJVAorI2lmbmRlZiBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpCiB7CiAJdnVfbG9uZyAqYWRkciA9ICh2dV9sb25nICopIChpbmZvLT5zdGFydFswXSk7CkBAIC0xMDc2LDcgKzEwNzYsNyBAQAogCiAJCXdoaWxlICgoKigodnVfbG9uZyAqKSBkZXN0KSAmIDB4MDA4MDAwODApICE9CiAJCSAgICAgICAoZGF0YSAmIDB4MDA4MDAwODApKSB7Ci0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcHJpbnRmICgidGltZW91dFxuIik7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KQEAgLTEwODUsNyArMTA4NSw3IEBACiAJfSBlbHNlIHsKIAogCQl3aGlsZSAoIShhZGRyWzBdICYgMHgwMDgwMDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcHJpbnRmICgidGltZW91dFxuIik7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KQEAgLTExNTcsNyArMTE1Nyw3IEBACiAJaWYgKGluZm8tPmZsYXNoX2lkIDwgRkxBU0hfQU1EX0NPTVApIHsKIAkJLyogQU1EIHN0dWZmICovCiAJCXdoaWxlICgoKigodnVfc2hvcnQgKikgZGVzdCkgJiAweDAwODApICE9IChkYXRhICYgMHgwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KQEAgLTExNjUsNyArMTE2NSw3IEBACiAJfSBlbHNlIHsKIAkJLyogaW50ZWwgc3R1ZmYgKi8KIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAKQEAgLTExODQsNyArMTE4NCw3IEBACiAJCSphZGRyID0gMHgwMEIwOwogCQkqYWRkciA9IDB4MDA3MDsKIAkJd2hpbGUgKCEoYWRkclswXSAmIDB4MDA4MCkpIHsJLyogd2FpdCBmb3IgZXJyb3Igb3IgZmluaXNoICovCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkKIAkJCQlyZXR1cm4gKDEpOwogCQl9CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3RiMDIyOS90YjAyMjkuYyBiL2JvYXJkL3RiMDIyOS90YjAyMjkuYwppbmRleCAyYWJiNGE3Li5kM2YwNWIyIDEwMDY0NAotLS0gYS9ib2FyZC90YjAyMjkvdGIwMjI5LmMKKysrIGIvYm9hcmQvdGIwMjI5L3RiMDIyOS5jCkBAIC0zNCw3ICszNCw3IEBACiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXJldHVybiBnZXRfcmFtX3NpemUgKENGR19TRFJBTV9CQVNFLCAweDgwMDAwMDApOworCXJldHVybiBnZXRfcmFtX3NpemUgKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwKTsKIH0KIAogaW50IGNoZWNrYm9hcmQgKHZvaWQpCmRpZmYgLS1naXQgYS9ib2FyZC90b3RhbDUyMDAvc2RyYW0uYyBiL2JvYXJkL3RvdGFsNTIwMC9zZHJhbS5jCmluZGV4IGExNjAxZjIuLmRjNGM2ZjEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RvdGFsNTIwMC9zZHJhbS5jCisrKyBiL2JvYXJkL3RvdGFsNTIwMC9zZHJhbS5jCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJzZHJhbS5oIgogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgbXBjNXh4eF9zZHJhbV9zdGFydCAoc2RyYW1fY29uZl90ICpzZHJhbV9jb25mLCBpbnQgaGlfYWRkcikKIHsKIAlsb25nIGhpX2FkZHJfYml0ID0gaGlfYWRkciA/IDB4MDEwMDAwMDAgOiAwOwpAQCAtNzIsNyArNzIsNyBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKiAgICAgICAgICAgIHVzZSBvZiBDRkdfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDRkdfU0RSQU1fQkFTRQorICogICAgICAgICAgICB1c2Ugb2YgQ09ORklHX1NZU19TRFJBTV9CQVNFLiBUaGUgY29kZSBkb2VzIG5vdCB3b3JrIGlmIENPTkZJR19TWVNfU0RSQU1fQkFTRQogICogICAgICAgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIApAQCAtODEsNyArODEsNyBAQAogewogCXVsb25nIGRyYW1zaXplID0gMDsKIAl1bG9uZyBkcmFtc2l6ZTIgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTEwMiw5ICsxMDIsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCW1wYzV4eHhfc2RyYW1fc3RhcnQoc2RyYW1fY29uZiwgMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCW1wYzV4eHhfc2RyYW1fc3RhcnQoc2RyYW1fY29uZiwgMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCW1wYzV4eHhfc2RyYW1fc3RhcnQoc2RyYW1fY29uZiwgMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xMjksOSArMTI5LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MxIG9ubHkgKi8KIAltcGM1eHh4X3NkcmFtX3N0YXJ0KHNkcmFtX2NvbmYsIDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOwogCW1wYzV4eHhfc2RyYW1fc3RhcnQoc2RyYW1fY29uZiwgMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJbXBjNXh4eF9zZHJhbV9zdGFydChzZHJhbV9jb25mLCAwKTsKIAkJZHJhbXNpemUyID0gdGVzdDE7CkBAIC0xNTIsNyArMTUyLDcgQEAKIAkJKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KIAl9CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIHJldHJpZXZlIHNpemUgb2YgbWVtb3J5IGNvbm5lY3RlZCB0byBTRFJBTSBDUzAgKi8KIAlkcmFtc2l6ZSA9ICoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTE3MCw3ICsxNzAsNyBAQAogCQlkcmFtc2l6ZTIgPSAwOwogCX0KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAlyZXR1cm4gZHJhbXNpemUgKyBkcmFtc2l6ZTI7CiB9CkBAIC0xODAsNyArMTgwLDcgQEAKIGxvbmcgaW50IG1wYzV4eHhfc2RyYW1faW5pdCAoc2RyYW1fY29uZl90ICpzZHJhbV9jb25mKQogewogCXVsb25nIGRyYW1zaXplID0gMDsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJdWxvbmcgdGVzdDEsIHRlc3QyOwogCiAJLyogc2V0dXAgYW5kIGVuYWJsZSBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTE5OSw5ICsxOTksOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSAqLwogCW1wYzV4eHhfc2RyYW1fc3RhcnQoc2RyYW1fY29uZiwgMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCW1wYzV4eHhfc2RyYW1fc3RhcnQoc2RyYW1fY29uZiwgMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCW1wYzV4eHhfc2RyYW1fc3RhcnQoc2RyYW1fY29uZiwgMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0yMTIsMTIgKzIxMiwxMiBAQAogCS8qIHNldCBTRFJBTSBlbmQgYWRkcmVzcyBhY2NvcmRpbmcgdG8gc2l6ZSAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fU1RPUCA9ICgoZHJhbXNpemUgLSAxKSA+PiAxNSk7CiAKLSNlbHNlIC8qIENGR19SQU1CT09UICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHJpZXZlIGFtb3VudCBvZiBTRFJBTSBhdmFpbGFibGUgKi8KIAlkcmFtc2l6ZSA9ICgoKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9TVE9QICsgMSkgPDwgMTUpOwogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCXJldHVybiBkcmFtc2l6ZTsKIH0KZGlmZiAtLWdpdCBhL2JvYXJkL3RvdGFsNTIwMC90b3RhbDUyMDAuYyBiL2JvYXJkL3RvdGFsNTIwMC90b3RhbDUyMDAuYwppbmRleCBlYzAwYTY3Li5jNTI0ZDYzIDEwMDY0NAotLS0gYS9ib2FyZC90b3RhbDUyMDAvdG90YWw1MjAwLmMKKysrIGIvYm9hcmQvdG90YWw1MjAwL3RvdGFsNTIwMC5jCkBAIC03MSwxNSArNzEsMTUgQEAKIAkvKgogCSAqIFJldHJpZXZlIEZQR0EgUmV2aXNpb24uCiAJICovCi0JcHJpbnRmICgiKEZQR0EgJTA4bFgpXG4iLCAqKHZ1X2xvbmcgKikgKENGR19GUEdBX0JBU0UgKyAweDQwMCkpOworCXByaW50ZiAoIihGUEdBICUwOGxYKVxuIiwgKih2dV9sb25nICopIChDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4NDAwKSk7CiAKIAkvKgogCSAqIFRha2UgYWxsIHBlcmlwaGVyYWxzIGluIHBvd2VyLXVwIG1vZGUuCiAJICovCiAjaWYgQ09ORklHX1RPVEFMNTIwMF9SRVY9PTIKLQkqKHZ1X2NoYXIgKikgKENGR19DUExEX0JBU0UgKyAweDQ2KSA9IDB4NzA7CisJKih2dV9jaGFyICopIChDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4NDYpID0gMHg3MDsKICNlbHNlCi0JKih2dV9sb25nICopIChDRkdfQ1BMRF9CQVNFICsgMHg0MDApID0gMHg3MDsKKwkqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHg0MDApID0gMHg3MDsKICNlbmRpZgogCiAJcmV0dXJuIDA7CkBAIC0yODQsNyArMjg0LDcgQEAKIC8qIFJldHVybnMgIFNFRDEzODA2IGJhc2UgYWRkcmVzcy4gRmlyc3QgdGhpbmcgY2FsbGVkIGluIHRoZSBkcml2ZXIuICovCiB1bnNpZ25lZCBpbnQgYm9hcmRfdmlkZW9faW5pdCAodm9pZCkKIHsKLQlyZXR1cm4gQ0ZHX0xDRF9CQVNFOworCXJldHVybiBDT05GSUdfU1lTX0xDRF9CQVNFOwogfQogCiAvKiBDYWxsZWQgYWZ0ZXIgaW5pdGlhbGl6aW5nIHRoZSBTRUQxMzgwNiBhbmQgYmVmb3JlIGNsZWFyaW5nIHRoZSBzY3JlZW4uICovCmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtNTIwMC9jYW01MjAwX2ZsYXNoLmMgYi9ib2FyZC90cWMvdHFtNTIwMC9jYW01MjAwX2ZsYXNoLmMKaW5kZXggNGZjNGRjNi4uMTI0YjQ3ZCAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTUyMDAvY2FtNTIwMF9mbGFzaC5jCisrKyBiL2JvYXJkL3RxYy90cW01MjAwL2NhbTUyMDBfZmxhc2guYwpAQCAtMzUsNyArMzUsNyBAQAogCiAjZGVmaW5lIHN3YXAxNih4KSBfX3N3YWIxNih4KQogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyoKICAqIENBTTUyMDAgaXMgYSBUUU01MjAwQiBiYXNlZCBib2FyZC4gQWRkaXRpb25hbGx5IGl0IGFsc28gZmVhdHVyZXMKQEAgLTUxLDE1ICs1MSwxNSBAQAogICogMTYgYml0IGZsYXNoIGJhbmsgYW5kIHR3byBzZXRzIG9mIHJvdXRpbmVzICpfMzIgYW5kICpfMTYgdG8gaGFuZGxlCiAgKiBzcGVjaWZpY3Mgb2YgYm90aCBmbGFzaGVzLgogICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlW11bQ0ZHX01BWF9GTEFTSF9CQU5LU10gPSB7Ci0Je0NGR19CT09UQ1NfU1RBUlQsIENGR19DUzVfU1RBUlQgfCAxfQorc3RhdGljIHVuc2lnbmVkIGxvbmcgZmxhc2hfYWRkcl90YWJsZVtdW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IHsKKwl7Q09ORklHX1NZU19CT09UQ1NfU1RBUlQsIENPTkZJR19TWVNfQ1M1X1NUQVJUIHwgMX0KIH07CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwogICovCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSk7Ci0jaWZkZWYgQ0ZHX0ZMQVNIXzJORF8xNkJJVF9ERVYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYKIHN0YXRpYyBpbnQgd3JpdGVfd29yZF8zMihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKIHN0YXRpYyBpbnQgd3JpdGVfd29yZF8xNihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKTsKIHN0YXRpYyBpbnQgZmxhc2hfZXJhc2VfMzIoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpOwpAQCAtMTQ1LDcgKzE0NSw3IEBACiAvKgogICogVGhlIGZvbGxvd2luZyBjb2RlIGNhbm5vdCBiZSBydW4gZnJvbSBGTEFTSCEKICAqLwotI2lmZGVmIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWCiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUodnVfbG9uZyAqIGFkZHIsIGZsYXNoX2luZm9fdCAqIGluZm8pCiB7CiAKQEAgLTE2NCwyMyArMTY0LDIzIEBACiAjZW5kaWYKIHsKIAlzaG9ydCBpOwotCUNGR19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CisJQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgdmFsdWU7CiAJdWxvbmcgYmFzZSA9ICh1bG9uZykgYWRkcjsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGFkZHI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGFkZHI7CiAKIAlERUJVR0YoImdldF9zaXplMzI6IEZMQVNIIEFERFI6ICUwOHhcbiIsICh1bnNpZ25lZClhZGRyKTsKIAogCS8qIFdyaXRlIGF1dG8gc2VsZWN0IGNvbW1hbmQ6IHJlYWQgTWFudWZhY3R1cmVyIElEICovCi0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA5MDAwOTA7CiAJdWRlbGF5KDEwMDApOwogCiAJdmFsdWUgPSBhZGRyMlswXTsKIAlERUJVR0YoIkZMQVNIIE1BTlVGQUNUOiAleFxuIiwgdmFsdWUpOwogCiAJc3dpdGNoICh2YWx1ZSkgewotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKSBBTURfTUFOVUZBQ1Q6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSBBTURfTUFOVUZBQ1Q6CiAJCQlpbmZvLT5mbGFzaF9pZCA9IEZMQVNIX01BTl9BTUQ7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTIyOCwxMyArMjI4LDEzIEBACiAJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaSsrKSB7CiAJCS8qIHJlYWQgc2VjdG9yIHByb3RlY3Rpb24gYXQgc2VjdG9yIGFkZHJlc3MsIChBNyAuLiBBMCkgPSAweDAyICovCiAJCS8qIEQwID0gMSBpZiBwcm90ZWN0ZWQgKi8KLQkJYWRkcjIgPSAodm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKShpbmZvLT5zdGFydFtpXSk7CisJCWFkZHIyID0gKHZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKIAogCQlpbmZvLT5wcm90ZWN0W2ldID0gYWRkcjJbMl0gJiAxOwogCX0KIAogCS8qIGlzc3VlIGJhbmsgcmVzZXQgdG8gcmV0dXJuIHRvIHJlYWQgbW9kZSAqLwotCWFkZHIyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CisJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CiAKIAlyZXR1cm4gKGluZm8tPnNpemUpOwogfQpAQCAtMjQyLDE0ICsyNDIsMTQgQEAKIHN0YXRpYyBpbnQgd2FpdF9mb3JfRFE3XzMyKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzZWN0KQogewogCXVsb25nIHN0YXJ0LCBub3csIGxhc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9Ci0JCShDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPQorCQkoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKIAogCXN0YXJ0ID0gZ2V0X3RpbWVyKDApOwogCWxhc3QgPSBzdGFydDsKLQl3aGlsZSAoKGFkZHJbMF0gJiAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KLQkJCShDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCXdoaWxlICgoYWRkclswXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgIT0KKwkJCShDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIC0xOwogCQl9CkBAIC0yNjIsNyArMjYyLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2lmZGVmIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWCiBpbnQgZmxhc2hfZXJhc2UoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNfZmlyc3QsIGludCBzX2xhc3QpCiB7CiAJaWYgKChpbmZvLT5mbGFzaF9pZCAmIEZMQVNIX1RZUEVNQVNLKSA9PSBGTEFTSF9BTTMyMEIpIHsKQEAgLTI3Nyw4ICsyNzcsOCBAQAogaW50IGZsYXNoX2VyYXNlKGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogI2VuZGlmCiB7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjI7CiAJaW50IGZsYWcsIHByb3QsIHNlY3QsIGxfc2VjdDsKIAogCWlmICgoc19maXJzdCA8IDApIHx8IChzX2ZpcnN0ID4gc19sYXN0KSkgewpAQCAtMzEzLDE0ICszMTMsMTQgQEAKIAkvKiBTdGFydCBlcmFzZSBvbiB1bnByb3RlY3RlZCBzZWN0b3JzICovCiAJZm9yIChzZWN0ID0gc19maXJzdDsgc2VjdCA8PSBzX2xhc3Q7IHNlY3QrKykgewogCQlpZiAoaW5mby0+cHJvdGVjdFtzZWN0XSA9PSAwKSB7CS8qIG5vdCBwcm90ZWN0ZWQgKi8KLQkJCWFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwkJCWFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CiAKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQUEwMEFBOwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7Ci0JCQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwMzAwMDMwOwkvKiBzZWN0b3IgZXJhc2UgKi8KKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MDsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwNTUwMDU1OworCQkJYWRkcjJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDAzMDAwMzA7CS8qIHNlY3RvciBlcmFzZSAqLwogCiAJCQlsX3NlY3QgPSBzZWN0OwogCQkJLyoKQEAgLTM0Miw4ICszNDIsOCBAQAogCXVkZWxheSgxMDAwKTsKIAogCS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwotCWFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKLQlhZGRyWzBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KKwlhZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGluZm8tPnN0YXJ0WzBdOworCWFkZHJbMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDBGMDAwRjA7CS8qIHJlc2V0IGJhbmsgKi8KIAogCXByaW50ZigiIGRvbmVcbiIpOwogCXJldHVybiAwOwpAQCAtNDIzLDcgKzQyMyw3IEBACiAgKiAxIC0gd3JpdGUgdGltZW91dAogICogMiAtIEZsYXNoIG5vdCBlcmFzZWQKICAqLwotI2lmZGVmIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKIHsKIAlpZiAoKGluZm8tPmZsYXNoX2lkICYgRkxBU0hfVFlQRU1BU0spID09IEZMQVNIX0FNMzIwQikgewpAQCAtNDM4LDkgKzQzOCw5IEBACiBzdGF0aWMgaW50IHdyaXRlX3dvcmQoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWxvbmcgZGF0YSkKICNlbmRpZgogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgaSwgZmxhZzsKIApAQCAtNDQ4LDEzICs0NDgsMTMgQEAKIAlpZiAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIGRhdGEpICE9IGRhdGEpCiAJCXJldHVybiAoMik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDRkdfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKIAkJLyogRGlzYWJsZSBpbnRlcnJ1cHRzIHdoaWNoIG1pZ2h0IGNhdXNlIGEgdGltZW91dCBoZXJlICovCiAJCWZsYWcgPSBkaXNhYmxlX2ludGVycnVwdHMoKTsKIAotCQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4MDBBQTAwQUE7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDU1MDA1NTsKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMEFBMDBBQTsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMV0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4MDA1NTAwNTU7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwQTAwMEEwOwogCiAJCWRlc3QyW2ldID0gZGF0YTJbaV07CiAKQEAgLTQ2NCwxMCArNDY0LDEwIEBACiAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lcigwKTsKLQkJd2hpbGUgKChkZXN0MltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQotCQkJCShkYXRhMltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgeworCQl3aGlsZSAoKGRlc3QyW2ldICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQorCQkJCShkYXRhMltpXSAmIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHgwMDgwMDA4MCkpIHsKIAotCQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKQogCQkJCXJldHVybiAoMSk7CiAJCX0KIAl9CkBAIC00NzUsMTAgKzQ3NSwxMCBAQAogCXJldHVybiAoMCk7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfMk5EXzE2QklUX0RFVgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgogCi0jdW5kZWYgIENGR19GTEFTSF9XT1JEX1NJWkUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSB1bnNpZ25lZCBzaG9ydAorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSB1bnNpZ25lZCBzaG9ydAogCiAvKgogICogVGhlIGZvbGxvd2luZyBjb2RlIGNhbm5vdCBiZSBydW4gZnJvbSBGTEFTSCEKQEAgLTQ4NiwyOSArNDg2LDI5IEBACiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemVfMTYodnVfbG9uZyAqIGFkZHIsIGZsYXNoX2luZm9fdCAqIGluZm8pCiB7CiAJc2hvcnQgaTsKLQlDRkdfRkxBU0hfV09SRF9TSVpFIHZhbHVlOworCUNPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFIHZhbHVlOwogCXVsb25nIGJhc2UgPSAodWxvbmcpIGFkZHI7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqYWRkcjIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBhZGRyOwogCiAJREVCVUdGKCJnZXRfc2l6ZTE2OiBGTEFTSCBBRERSOiAlMDh4XG4iLCAodW5zaWduZWQpYWRkcik7CiAKIAkvKiBpc3N1ZSBiYW5rIHJlc2V0IHRvIHJldHVybiB0byByZWFkIG1vZGUgKi8KLQlhZGRyMlswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEYwMDBGMDAwOworCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEYwMDBGMDAwOwogCiAJLyogV3JpdGUgYXV0byBzZWxlY3QgY29tbWFuZDogcmVhZCBNYW51ZmFjdHVyZXIgSUQgKi8KLQlhZGRyMltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4QUEwMEFBMDA7Ci0JYWRkcjJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDU1MDA1NTAwOwotCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDAwOTAwMDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBQTAwQUEwMDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTAwNTUwMDsKKwlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg5MDAwOTAwMDsKIAl1ZGVsYXkoMTAwMCk7CiAKIAl2YWx1ZSA9IHN3YXAxNihhZGRyMlswXSk7CiAJREVCVUdGKCJGTEFTSCBNQU5VRkFDVDogJXhcbiIsIHZhbHVlKTsKIAogCXN3aXRjaCAodmFsdWUpIHsKLQkJY2FzZSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgorCQljYXNlIChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgQU1EX01BTlVGQUNUOgogCQkJaW5mby0+Zmxhc2hfaWQgPSBGTEFTSF9NQU5fQU1EOwogCQkJYnJlYWs7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIEZVSl9NQU5VRkFDVDoKIAkJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfTUFOX0ZVSjsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpAQCAtNTIyLDEyICs1MjIsMTIgQEAKIAlERUJVR0YoIlxuRkxBU0ggREVWSUNFSUQ6ICV4XG4iLCB2YWx1ZSk7CiAKIAlzd2l0Y2ggKHZhbHVlKSB7Ci0JCWNhc2UgKENGR19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKKwkJY2FzZSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpQU1EX0lEX0xWMzIwQjoKIAkJCWluZm8tPmZsYXNoX2lkICs9IEZMQVNIX0FNMzIwQjsKIAkJCWluZm8tPnNlY3Rvcl9jb3VudCA9IDcxOwogCQkJaW5mby0+c2l6ZSA9IDB4MDA0MDAwMDA7CiAJCQlicmVhazsJLyogPT4gNCBNQgkqLwotCQljYXNlIChDRkdfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CisJCWNhc2UgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKUFNRF9JRF9MVjMyMFQ6CiAJCQlpbmZvLT5mbGFzaF9pZCArPSBGTEFTSF9BTTMyMFQ7CiAJCQlpbmZvLT5zZWN0b3JfY291bnQgPSA3MTsKIAkJCWluZm8tPnNpemUgPSAweDAwNDAwMDAwOwpAQCAtNTY5LDEzICs1NjksMTMgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyBpKyspIHsKIAkJLyogcmVhZCBzZWN0b3IgcHJvdGVjdGlvbiBhdCBzZWN0b3IgYWRkcmVzcywgKEE3IC4uIEEwKSA9IDB4MDIgKi8KIAkJLyogRDAgPSAxIGlmIHByb3RlY3RlZCAqLwotCQlhZGRyMiA9ICh2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICopKGluZm8tPnN0YXJ0W2ldKTsKKwkJYWRkcjIgPSAodm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKikoaW5mby0+c3RhcnRbaV0pOwogCiAJCWluZm8tPnByb3RlY3RbaV0gPSBhZGRyMlsyXSAmIDE7CiAJfQogCiAJLyogaXNzdWUgYmFuayByZXNldCB0byByZXR1cm4gdG8gcmVhZCBtb2RlICovCi0JYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhGMDAwRjAwMDsKKwlhZGRyMlswXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhGMDAwRjAwMDsKIAogCXJldHVybiAoaW5mby0+c2l6ZSk7CiB9CkBAIC01ODMsMTQgKzU4MywxNCBAQAogc3RhdGljIGludCB3YWl0X2Zvcl9EUTdfMTYoZmxhc2hfaW5mb190ICogaW5mbywgaW50IHNlY3QpCiB7CiAJdWxvbmcgc3RhcnQsIG5vdywgbGFzdDsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICphZGRyID0KLQkJKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0W3NlY3RdKTsKKwl2b2xhdGlsZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqYWRkciA9CisJCShDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCiAJc3RhcnQgPSBnZXRfdGltZXIoMCk7CiAJbGFzdCA9IHN0YXJ0OwotCXdoaWxlICgoYWRkclswXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwKSAhPQotCQkJKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4ODAwMDgwMDApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJd2hpbGUgKChhZGRyWzBdICYgKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwKSAhPQorCQkJKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZigiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KQEAgLTYwNSw4ICs2MDUsOCBAQAogCiBzdGF0aWMgaW50IGZsYXNoX2VyYXNlXzE2KGZsYXNoX2luZm9fdCAqIGluZm8sIGludCBzX2ZpcnN0LCBpbnQgc19sYXN0KQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbMF0pOwotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOworCXZvbGF0aWxlIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICphZGRyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyOwogCWludCBmbGFnLCBwcm90LCBzZWN0LCBsX3NlY3Q7CiAKIAlpZiAoKHNfZmlyc3QgPCAwKSB8fCAoc19maXJzdCA+IHNfbGFzdCkpIHsKQEAgLTY0MSwxNCArNjQxLDE0IEBACiAJLyogU3RhcnQgZXJhc2Ugb24gdW5wcm90ZWN0ZWQgc2VjdG9ycyAqLwogCWZvciAoc2VjdCA9IHNfZmlyc3Q7IHNlY3QgPD0gc19sYXN0OyBzZWN0KyspIHsKIAkJaWYgKGluZm8tPnByb3RlY3Rbc2VjdF0gPT0gMCkgewkvKiBub3QgcHJvdGVjdGVkICovCi0JCQlhZGRyMiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFtzZWN0XSk7CisJCQlhZGRyMiA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSAoaW5mby0+c3RhcnRbc2VjdF0pOwogCi0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBQTAwQUEwMDsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDU1MDA1NTAwOwotCQkJYWRkcltDRkdfRkxBU0hfQUREUjBdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4ODAwMDgwMDA7Ci0JCQlhZGRyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBQTAwQUEwMDsKLQkJCWFkZHJbQ0ZHX0ZMQVNIX0FERFIxXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDU1MDA1NTAwOwotCQkJYWRkcjJbMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHgzMDAwMzAwMDsJLyogc2VjdG9yIGVyYXNlICovCisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBMDBBQTAwOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTAwNTUwMDsKKwkJCWFkZHJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4ODAwMDgwMDA7CisJCQlhZGRyW0NPTkZJR19TWVNfRkxBU0hfQUREUjBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEFBMDBBQTAwOworCQkJYWRkcltDT05GSUdfU1lTX0ZMQVNIX0FERFIxXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHg1NTAwNTUwMDsKKwkJCWFkZHIyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDMwMDAzMDAwOwkvKiBzZWN0b3IgZXJhc2UgKi8KIAogCQkJbF9zZWN0ID0gc2VjdDsKIAkJCS8qCkBAIC02NzAsOCArNjcwLDggQEAKIAl1ZGVsYXkoMTAwMCk7CiAKIAkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KLQlhZGRyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgaW5mby0+c3RhcnRbMF07Ci0JYWRkclswXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEYwMDBGMDAwOwkvKiByZXNldCBiYW5rICovCisJYWRkciA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAqKSBpbmZvLT5zdGFydFswXTsKKwlhZGRyWzBdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweEYwMDBGMDAwOwkvKiByZXNldCBiYW5rICovCiAKIAlwcmludGYoIiBkb25lXG4iKTsKIAlyZXR1cm4gMDsKQEAgLTY3OSwyNyArNjc5LDI3IEBACiAKIHN0YXRpYyBpbnQgd3JpdGVfd29yZF8xNihmbGFzaF9pbmZvX3QgKiBpbmZvLCB1bG9uZyBkZXN0LCB1bG9uZyBkYXRhKQogewotCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKikgKGluZm8tPnN0YXJ0WzBdKTsKLQl2b2xhdGlsZSBDRkdfRkxBU0hfV09SRF9TSVpFICpkZXN0MiA9IChDRkdfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7Ci0Jdm9sYXRpbGUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqZGF0YTIgPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSAqKSAmIGRhdGE7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIChpbmZvLT5zdGFydFswXSk7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRlc3QyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopIGRlc3Q7CisJdm9sYXRpbGUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgKmRhdGEyID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICopICYgZGF0YTsKIAl1bG9uZyBzdGFydDsKIAlpbnQgaTsKIAogCS8qIENoZWNrIGlmIEZsYXNoIGlzIChzdWZmaWNpZW50bHkpIGVyYXNlZCAqLwotCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENGR19GTEFTSF9XT1JEX1NJWkUpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgNCAvIHNpemVvZihDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgewogCQlpZiAoKGRlc3QyW2ldICYgc3dhcDE2KGRhdGEyW2ldKSkgIT0gc3dhcDE2KGRhdGEyW2ldKSkKIAkJCXJldHVybiAoMik7CiAJfQogCi0JZm9yIChpID0gMDsgaSA8IDQgLyBzaXplb2YoQ0ZHX0ZMQVNIX1dPUkRfU0laRSk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCA0IC8gc2l6ZW9mKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKTsgaSsrKSB7CiAJCWludCBmbGFnOwogCiAJCS8qIERpc2FibGUgaW50ZXJydXB0cyB3aGljaCBtaWdodCBjYXVzZSBhIHRpbWVvdXQgaGVyZSAqLwogCQlmbGFnID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKLQkJYWRkcjJbQ0ZHX0ZMQVNIX0FERFIwXSA9IChDRkdfRkxBU0hfV09SRF9TSVpFKSAweEFBMDBBQTAwOwotCQlhZGRyMltDRkdfRkxBU0hfQUREUjFdID0gKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4NTUwMDU1MDA7Ci0JCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkgMHhBMDAwQTAwMDsKKwkJYWRkcjJbQ09ORklHX1NZU19GTEFTSF9BRERSMF0gPSAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4QUEwMEFBMDA7CisJCWFkZHIyW0NPTkZJR19TWVNfRkxBU0hfQUREUjFdID0gKENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFKSAweDU1MDA1NTAwOworCQlhZGRyMltDT05GSUdfU1lTX0ZMQVNIX0FERFIwXSA9IChDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSkgMHhBMDAwQTAwMDsKIAogCQlkZXN0MltpXSA9IHN3YXAxNihkYXRhMltpXSk7CiAKQEAgLTcwOSwxMCArNzA5LDEwIEBACiAKIAkJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCQlzdGFydCA9IGdldF90aW1lcigwKTsKLQkJd2hpbGUgKChkZXN0MltpXSAmIChDRkdfRkxBU0hfV09SRF9TSVpFKSAweDgwMDA4MDAwKSAhPQotCQkJCShzd2FwMTYoZGF0YTJbaV0pICYgKENGR19GTEFTSF9XT1JEX1NJWkUpIDB4ODAwMDgwMDApKSB7CisJCXdoaWxlICgoZGVzdDJbaV0gJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4ODAwMDgwMDApICE9CisJCQkJKHN3YXAxNihkYXRhMltpXSkgJiAoQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUpIDB4ODAwMDgwMDApKSB7CiAKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJfQpAQCAtNzIwLDcgKzcyMCw3IEBACiAKIAlyZXR1cm4gKDApOwogfQotI2VuZGlmIC8qIENGR19GTEFTSF8yTkRfMTZCSVRfREVWICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF8yTkRfMTZCSVRfREVWICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNzM0LDcgKzczNCw3IEBACiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGFsX2IgPSAwOwotCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NGR19NQVhfRkxBU0hfQkFOS1NdOworCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAl1bnNpZ25lZCBzaG9ydCBpbmRleCA9IDA7CiAJaW50IGk7CiAKQEAgLTc0Miw3ICs3NDIsNyBAQAogCURFQlVHRigiRkxBU0g6IEluZGV4OiAlZFxuIiwgaW5kZXgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAtMTsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKQEAgLTc2NSw4ICs3NjUsOCBAQAogCQl9CiAKIAkJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KLQkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgICBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gMSwKKwkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCQkgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gMSwKIAkJCQkgICAgJmZsYXNoX2luZm9baV0pOwogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKIAkJKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULCBDT05GSUdfRU5WX0FERFIsCmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtNTIwMC9jbWRfc3RrNTJ4eC5jIGIvYm9hcmQvdHFjL3RxbTUyMDAvY21kX3N0azUyeHguYwppbmRleCBmZDFlNjhiLi41NDgzZmNhIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtNTIwMC9jbWRfc3RrNTJ4eC5jCisrKyBiL2JvYXJkL3RxYy90cW01MjAwL2NtZF9zdGs1Mnh4LmMKQEAgLTE2NSw5ICsxNjUsOSBAQAogCXBzYy0+Y29tbWFuZCA9IChQU0NfUlhfRElTQUJMRSB8IFBTQ19UWF9ESVNBQkxFKTsKIAlwc2MtPnNpY3IgPSAweDIyRTAwMDAwOwkJLyogMTYgYml0IGRhdGE7IEkyUyAqLwogCi0JKih2dV9sb25nICopKENGR19NQkFSICsgMHgyMkMpID0gMHg4MDVkOyAvKiBQU0MyIENETSBNQ0xLIGNvbmZpZzsgTUNMSworCSoodnVfbG9uZyAqKShDT05GSUdfU1lTX01CQVIgKyAweDIyQykgPSAweDgwNWQ7IC8qIFBTQzIgQ0RNIE1DTEsgY29uZmlnOyBNQ0xLCiAJCQkJCQkgICogNS42MTcgTUh6ICovCi0JKih2dV9sb25nICopKENGR19NQkFSICsgMHgyMTQpIHw9IDB4MDAwMDAwNDA7IC8qIENETSBjbG9jayBlbmFibGUKKwkqKHZ1X2xvbmcgKikoQ09ORklHX1NZU19NQkFSICsgMHgyMTQpIHw9IDB4MDAwMDAwNDA7IC8qIENETSBjbG9jayBlbmFibGUKIAkJCQkJCSAgICAgICAqIHJlZ2lzdGVyICovCiAJcHNjLT5jY3IgPSAweDFGMDM7CS8qIDE2IGJpdCBkYXRhIHdpZHRoOyA1LjYxN01IeiBNQ0xLICovCiAJcHNjLT5jdHVyID0gMHgwRjsJLyogMTYgYml0IGZyYW1lIHdpZHRoICovCkBAIC03NTEsOSArNzUxLDkgQEAKIAlzdGF0aWMgaW50IGluaXRfZG9uZSA9IDA7CiAJaW50IGk7CiAJc3RydWN0IG1wYzV4eHhfbXNjYW4gKmNhbjEgPQotCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikoQ0ZHX01CQVIgKyAweDA5MDApOworCQkoc3RydWN0IG1wYzV4eHhfbXNjYW4gKikoQ09ORklHX1NZU19NQkFSICsgMHgwOTAwKTsKIAlzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqY2FuMiA9Ci0JCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKShDRkdfTUJBUiArIDB4MDk4MCk7CisJCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKShDT05GSUdfU1lTX01CQVIgKyAweDA5ODApOwogCiAJLyogR1BJTyBjb25maWd1cmF0aW9uIG9mIHRoZSBDQU4gcGlucyBpcyBkb25lIGluIFRRTTUyMDAuaCAqLwogCkBAIC04OTYsOSArODk2LDkgQEAKIHsKIAlpbnQgaTsKIAlzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqY2FuMSA9Ci0JCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKShDRkdfTUJBUiArIDB4MDkwMCk7CisJCShzdHJ1Y3QgbXBjNXh4eF9tc2NhbiAqKShDT05GSUdfU1lTX01CQVIgKyAweDA5MDApOwogCXN0cnVjdCBtcGM1eHh4X21zY2FuICpjYW4yID0KLQkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopKENGR19NQkFSICsgMHgwOTgwKTsKKwkJKHN0cnVjdCBtcGM1eHh4X21zY2FuICopKENPTkZJR19TWVNfTUJBUiArIDB4MDk4MCk7CiAKIAkvKiBzZW5kIGEgbWVzc2FnZSBvbiBDQU4xICovCiAJY2FuMS0+Y2FudGJzZWwgPSAweDAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTUyMDAvdHFtNTIwMC5jIGIvYm9hcmQvdHFjL3RxbTUyMDAvdHFtNTIwMC5jCmluZGV4IDUxNTIzMzEuLmZhYTJlMDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW01MjAwL3RxbTUyMDAuYworKysgYi9ib2FyZC90cWMvdHFtNTIwMC90cW01MjAwLmMKQEAgLTU0LDcgKzU0LDcgQEAKIHZvaWQgcHMybXVsdF9lYXJseV9pbml0KHZvaWQpOwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiBzdGF0aWMgdm9pZCBzZHJhbV9zdGFydCAoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTEwMSw3ICsxMDEsNyBAQAogCiAvKgogICogQVRURU5USU9OOiBBbHRob3VnaCBwYXJ0aWFsbHkgcmVmZXJlbmNlZCBpbml0ZHJhbSBkb2VzIE5PVCBtYWtlIHJlYWwgdXNlCi0gKgkgICAgICB1c2Ugb2YgQ0ZHX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ0ZHX1NEUkFNX0JBU0UKKyAqCSAgICAgIHVzZSBvZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UuIFRoZSBjb2RlIGRvZXMgbm90IHdvcmsgaWYgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKgkgICAgICBpcyBzb21ldGhpbmcgZWxzZSB0aGFuIDB4MDAwMDAwMDAuCiAgKi8KIApAQCAtMTExLDcgKzExMSw3IEBACiAJdWxvbmcgZHJhbXNpemUyID0gMDsKIAl1aW50IHN2ciwgcHZyOwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCXVsb25nIHRlc3QxLCB0ZXN0MjsKIAogCS8qIHNldHVwIFNEUkFNIGNoaXAgc2VsZWN0cyAqLwpAQCAtMTMyLDkgKzEzMiw5IEBACiAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMCBvbmx5ICovCiAJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CisJdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOwogCXNkcmFtX3N0YXJ0KDEpOwotCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKIAlpZiAodGVzdDEgPiB0ZXN0MikgewogCQlzZHJhbV9zdGFydCgwKTsKIAkJZHJhbXNpemUgPSB0ZXN0MTsKQEAgLTE2MSwxMCArMTYxLDEwIEBACiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzEgb25seSAqLwogCWlmICghZHJhbXNpemUpCiAJCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4MjAwMDAwMDApOworCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDIwMDAwMDAwKTsKIAlpZiAoIWRyYW1zaXplKSB7CiAJCXNkcmFtX3N0YXJ0KDEpOwotCQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKShDRkdfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHgyMDAwMDAwMCk7CisJCXRlc3QyID0gZ2V0X3JhbV9zaXplKChsb25nICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHgyMDAwMDAwMCk7CiAJfQogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTg2LDcgKzE4Niw3IEBACiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfU0RSQU1fQ1MxQ0ZHID0gZHJhbXNpemU7IC8qIGRpc2FibGVkICovCiAJfQogCi0jZWxzZSAvKiBDRkdfUkFNQk9PVCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKiByZXRyaWV2ZSBzaXplIG9mIG1lbW9yeSBjb25uZWN0ZWQgdG8gU0RSQU0gQ1MwICovCiAJZHJhbXNpemUgPSAqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMENGRyAmIDB4RkY7CkBAIC0yMDMsNyArMjAzLDcgQEAKIAl9IGVsc2UgewogCQlkcmFtc2l6ZTIgPSAwOwogCX0KLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyoKIAkgKiBPbiBNUEM1MjAwQiB3ZSBuZWVkIHRvIHNldCB0aGUgc3BlY2lhbCBjb25maWd1cmF0aW9uIGRlbGF5IGluIHRoZQpAQCAtNDA2LDcgKzQwNiw3IEBACiAJcHMybXVsdF9lYXJseV9pbml0KCk7CiAjZW5kaWYgLyogQ09ORklHX1BTMk1VTFQgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpCiAJLyogTG93IGxldmVsIFVTQiBpbml0LCByZXF1aXJlZCBmb3IgcHJvcGVyIGtlcm5lbCBvcGVyYXRpb24gKi8KIAl1c2JfY3B1X2luaXQoKTsKICNlbmRpZgpAQCAtNDY0LDM0ICs0NjQsMzQgQEAKIAkgKi8KIAogCS8qIHNhdmUgb3JpZ2luYWwgU1JBTSBjb250ZW50ICAqLwotCXNhdmUgPSAqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQ7CisJc2F2ZSA9ICoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzJfU1RBUlQ7CiAJcmVzdG9yZSA9IDE7CiAKIAkvKiB3cml0ZSB0ZXN0IHBhdHRlcm4gdG8gU1JBTSAqLwotCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMl9TVEFSVCA9IDB4QTVBNTsKKwkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MyX1NUQVJUID0gMHhBNUE1OwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAJLyoKIAkgKiBQdXQgYSBkaWZmZXJlbnQgcGF0dGVybiBvbiB0aGUgZGF0YSBsaW5lczogb3RoZXJ3aXNlIHRoZXkgbWF5IGZsb2F0CiAJICogbG9uZyBlbm91Z2ggdG8gcmVhZCBiYWNrIHdoYXQgd2Ugd3JvdGUuCiAJICovCi0JdG1wID0gKih2b2xhdGlsZSB1MTYgKilDRkdfRkxBU0hfQkFTRTsKKwl0bXAgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlpZiAodG1wID09IDB4QTVBNSkKIAkJcHV0cyAoIiEhIHBvc3NpYmxlIGVycm9yIGluIFNSQU0gZGV0ZWN0aW9uXG4iKTsKIAotCWlmICgqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQgIT0gMHhBNUE1KSB7CisJaWYgKCoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzJfU1RBUlQgIT0gMHhBNUE1KSB7CiAJCS8qIG5vIFNSQU0gYXQgYWxsLCBkaXNhYmxlIGNzICovCiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQURERUNSICY9IH4oMSA8PCAxOCk7CiAJCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX1NUQVJUID0gMHgwMDAwRkZGRjsKIAkJKih2dV9sb25nICopTVBDNVhYWF9DUzJfU1RPUCA9IDB4MDAwMEZGRkY7CiAJCXJlc3RvcmUgPSAwOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwotCX0gZWxzZSBpZiAoKih2b2xhdGlsZSB1MTYgKikoQ0ZHX0NTMl9TVEFSVCArICgxPDwxOSkpID09IDB4QTVBNSkgeworCX0gZWxzZSBpZiAoKih2b2xhdGlsZSB1MTYgKikoQ09ORklHX1NZU19DUzJfU1RBUlQgKyAoMTw8MTkpKSA9PSAweEE1QTUpIHsKIAkJLyogbWFrZSBzdXJlIHRoYXQgd2UgYWNjZXNzIGEgbWlycm9yZWQgYWRkcmVzcyAqLwotCQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzJfU1RBUlQgPSAweDExMTE7CisJCSoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzJfU1RBUlQgPSAweDExMTE7CiAJCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7Ci0JCWlmICgqKHZvbGF0aWxlIHUxNiAqKShDRkdfQ1MyX1NUQVJUICsgKDE8PDE5KSkgPT0gMHgxMTExKSB7CisJCWlmICgqKHZvbGF0aWxlIHUxNiAqKShDT05GSUdfU1lTX0NTMl9TVEFSVCArICgxPDwxOSkpID09IDB4MTExMSkgewogCQkJLyogU1JBTSBzaXplID0gNTEyIGtCeXRlICovCi0JCQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMl9TVE9QID0gU1RPUF9SRUcoQ0ZHX0NTMl9TVEFSVCwKKwkJCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX1NUT1AgPSBTVE9QX1JFRyhDT05GSUdfU1lTX0NTMl9TVEFSVCwKIAkJCQkJCQkJMHg4MDAwMCk7CiAJCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCQkJcHV0cyAoIlNSQU06ICA1MTIga0JcbiIpOwpAQCAtNTAzLDcgKzUwMyw3IEBACiAJfQogCS8qIHJlc3RvcmUgb3JpZ2lhbmwgU1JBTSBjb250ZW50ICAqLwogCWlmIChyZXN0b3JlKSB7Ci0JCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMl9TVEFSVCA9IHNhdmU7CisJCSoodm9sYXRpbGUgdTE2ICopQ09ORklHX1NZU19DUzJfU1RBUlQgPSBzYXZlOwogCQlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCX0KIApAQCAtNTEzLDIxICs1MTMsMjEgQEAKIAkgKi8KIAogCS8qIHNhdmUgb3JpZ2lhbmwgRkIgY29udGVudCAgKi8KLQlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUOworCXNhdmUgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUOwogCXJlc3RvcmUgPSAxOwogCiAJLyogd3JpdGUgdGVzdCBwYXR0ZXJuIHRvIEZCIG1lbW9yeSAqLwotCSoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCA9IDB4QTVBNTsKKwkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUID0gMHhBNUE1OwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAJLyoKIAkgKiBQdXQgYSBkaWZmZXJlbnQgcGF0dGVybiBvbiB0aGUgZGF0YSBsaW5lczogb3RoZXJ3aXNlIHRoZXkgbWF5IGZsb2F0CiAJICogbG9uZyBlbm91Z2ggdG8gcmVhZCBiYWNrIHdoYXQgd2Ugd3JvdGUuCiAJICovCi0JdG1wID0gKih2b2xhdGlsZSB1MTYgKilDRkdfRkxBU0hfQkFTRTsKKwl0bXAgPSAqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRTsKIAlpZiAodG1wID09IDB4QTVBNSkKIAkJcHV0cyAoIiEhIHBvc3NpYmxlIGVycm9yIGluIGdyYWZpYyBjb250cm9sbGVyIGRldGVjdGlvblxuIik7CiAKLQlpZiAoKih2b2xhdGlsZSB1MTYgKilDRkdfQ1MxX1NUQVJUICE9IDB4QTVBNSkgeworCWlmICgqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUICE9IDB4QTVBNSkgewogCQkvKiBubyBncmFmaWMgY29udHJvbGxlciBhdCBhbGwsIGRpc2FibGUgY3MgKi8KIAkJKih2dV9sb25nICopTVBDNVhYWF9BRERFQ1IgJj0gfigxIDw8IDE3KTsKIAkJKih2dV9sb25nICopTVBDNVhYWF9DUzFfU1RBUlQgPSAweDAwMDBGRkZGOwpAQCAtNTM5LDcgKzUzOSw3IEBACiAJfQogCS8qIHJlc3RvcmUgb3JpZ2lhbmwgRkIgY29udGVudCAgKi8KIAlpZiAocmVzdG9yZSkgewotCQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgPSBzYXZlOworCQkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUID0gc2F2ZTsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAl9CiAKQEAgLTY3OSwyMSArNjc5LDIxIEBACiAJICovCiAKIAkvKiBzYXZlIG9yaWdpYW5sIEZCIGNvbnRlbnQgICovCi0Jc2F2ZSA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVDsKKwlzYXZlID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVDsKIAlyZXN0b3JlID0gMTsKIAogCS8qIHdyaXRlIHRlc3QgcGF0dGVybiB0byBGQiBtZW1vcnkgKi8KLQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgPSAweEE1QTU7CisJKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCA9IDB4QTVBNTsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogCS8qCiAJICogUHV0IGEgZGlmZmVyZW50IHBhdHRlcm4gb24gdGhlIGRhdGEgbGluZXM6IG90aGVyd2lzZSB0aGV5IG1heSBmbG9hdAogCSAqIGxvbmcgZW5vdWdoIHRvIHJlYWQgYmFjayB3aGF0IHdlIHdyb3RlLgogCSAqLwotCXRtcCA9ICoodm9sYXRpbGUgdTE2ICopQ0ZHX0ZMQVNIX0JBU0U7CisJdG1wID0gKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJaWYgKHRtcCA9PSAweEE1QTUpCiAJCXB1dHMgKCIhISBwb3NzaWJsZSBlcnJvciBpbiBncmFmaWMgY29udHJvbGxlciBkZXRlY3Rpb25cbiIpOwogCi0JaWYgKCoodm9sYXRpbGUgdTE2ICopQ0ZHX0NTMV9TVEFSVCAhPSAweEE1QTUpIHsKKwlpZiAoKih2b2xhdGlsZSB1MTYgKilDT05GSUdfU1lTX0NTMV9TVEFSVCAhPSAweEE1QTUpIHsKIAkJLyogbm8gZ3JhZmljIGNvbnRyb2xsZXIgZm91bmQgKi8KIAkJcmVzdG9yZSA9IDA7CiAJCXJldCA9IDA7CkBAIC03MDIsNyArNzAyLDcgQEAKIAl9CiAKIAlpZiAocmVzdG9yZSkgewotCQkqKHZvbGF0aWxlIHUxNiAqKUNGR19DUzFfU1RBUlQgPSBzYXZlOworCQkqKHZvbGF0aWxlIHUxNiAqKUNPTkZJR19TWVNfQ1MxX1NUQVJUID0gc2F2ZTsKIAkJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKIAl9CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04MjYwL2NvbmZpZy5tayBiL2JvYXJkL3RxYy90cW04MjYwL2NvbmZpZy5tawppbmRleCAxZmU5OTUyLi4zZWNmYzQ4IDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODI2MC9jb25maWcubWsKKysrIGIvYm9hcmQvdHFjL3RxbTgyNjAvY29uZmlnLm1rCkBAIC0yNSw3ICsyNSw3IEBACiAjIFRRTTgyNjAgYm9hcmRzCiAjCiAKLSMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENGR19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdfVFFNODI2MC5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19UUU04MjYwLmgKICMgZm9yIHRoZSAiZmluYWwiIGNvbmZpZ3VyYXRpb24sIHdpdGggVS1Cb290IGluIGZsYXNoLCBvciB0aGUgYWRkcmVzcwogIyBpbiBSQU0gd2hlcmUgVS1Cb290IGlzIGxvYWRlZCBhdCBmb3IgZGVidWdnaW5nLgogIwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTgyNjAvZmxhc2guYyBiL2JvYXJkL3RxYy90cW04MjYwL2ZsYXNoLmMKaW5kZXggNTAwYWY5Mi4uNGE2ZDUzOCAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTgyNjAvZmxhc2guYworKysgYi9ib2FyZC90cWMvdHFtODI2MC9mbGFzaC5jCkBAIC0zMSw3ICszMSw3IEBACiAjZGVmaW5lIFZfQllURShhKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKCBhICkpCiAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107CitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg1LDEzICsxODUsMTMgQEAKIAlpbnQgaTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJfQogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIChvbmx5IG9uZSBiYW5rKSAqLwogCi0Jc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplIChDRkdfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKKwlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfRkxBU0gwX0JBU0UsICZmbGFzaF9pbmZvWzBdKTsKIAlpZiAoZmxhc2hfaW5mb1swXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOIHx8IHNpemVfYjAgPT0gMCkgewogCQlwcmludGYgKCIjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMCAtIFNpemUgPSAweCUwOGx4ID0gJWxkIE1CXG4iLAogCQkJCXNpemVfYjAsIHNpemVfYjAgPj4gMjApOwpAQCAtMjAxLDEwICsyMDEsMTAgQEAKIAkgKiBwcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIMF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSDBfQkFTRQogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkgICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOworCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpICYmIGRlZmluZWQoQ09ORklHX0VOVl9BRERSKQpAQCAtMzY0LDcgKzM2NCw3IEBACiAJd2hpbGUgKChWX1VMT05HIChpbmZvLT5zdGFydFtsX3NlY3RdKSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODAgfHwKIAkgICAgICAgKFZfVUxPTkcgKGluZm8tPnN0YXJ0W2xfc2VjdF0gKyA0KSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApCiAJewotCQlpZiAoKG5vdyA9IGdldF90aW1lciAoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00ODAsNyArNDgwLDcgQEAKIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgoVl9VTE9ORyAoZGVzdCkgJiAweDAwODAwMDgwKSAhPSAoY2ggJiAweDAwODAwMDgwKSkgfHwKIAkJICAgKChWX1VMT05HIChkZXN0ICsgNCkgJiAweDAwODAwMDgwKSAhPSAoY2wgJiAweDAwODAwMDgwKSkpIHsKLQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTgyNjAvdHFtODI2MC5jIGIvYm9hcmQvdHFjL3RxbTgyNjAvdHFtODI2MC5jCmluZGV4IGYyMDEwNDUuLjMwMzk5OTkgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW04MjYwL3RxbTgyNjAuYworKysgYi9ib2FyZC90cWMvdHFtODI2MC90cW04MjYwLmMKQEAgLTIzNiw3ICsyMzYsNyBAQAogCSAqLwogCW1heHNpemUgPSAoMSArICh+b3J4IHwgMHg3ZmZmKSkgLyAyOwogCi0JLyogU2luY2UgQ0ZHX1NEUkFNX0JBU0UgaXMgYWx3YXlzIDAgKD8/KSwgd2UgYXNzdW1lIHRoYXQKKwkvKiBTaW5jZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgaXMgYWx3YXlzIDAgKD8/KSwgd2UgYXNzdW1lIHRoYXQKIAkgKiB3ZSBhcmUgY29uZmlndXJpbmcgQ1MxIGlmIGJhc2UgIT0gMAogCSAqLwogCXNkbXJfcHRyID0gYmFzZSA/ICZtZW1jdGwtPm1lbWNfbHNkbXIgOiAmbWVtY3RsLT5tZW1jX3BzZG1yOwpAQCAtMjYxLDcgKzI2MSw3IEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtMjcyLDcgKzI3Miw3IEBACiAJCSpiYXNlID0gYzsKIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9NUlc7Ci0JKihiYXNlICsgQ0ZHX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLworCSooYmFzZSArIENPTkZJR19TWVNfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CiAJKmJhc2UgPSBjOwpAQCAtMjg1LDEwICsyODUsMTAgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAlsb25nIHNpemU4LCBzaXplOTsKICNlbmRpZgogCWxvbmcgcHNpemUsIGxzaXplOwpAQCAtMjk2LDggKzI5Niw4IEBACiAJcHNpemUgPSAxNiAqIDEwMjQgKiAxMDI0OwogCWxzaXplID0gMDsKIAotCW1lbWN0bC0+bWVtY19wc3J0ID0gQ0ZHX1BTUlQ7Ci0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKICNpZiAwCQkJCQkJCS8qIEp1c3QgZm9yIGRlYnVnZ2luZyAqLwogI2RlZmluZQlwcnRfYnJfb3IoYnJYLG9yWCkgZG8gewkJCQlcCkBAIC0zMTUsMzcgKzMxNSwzNyBAQAogCXBydF9icl9vciAoYnIzLCBvcjMpOwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogNjB4IFNEUkFNIHNldHVwOgogCSAqLwotCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzhDT0wsIENGR19PUjFfOENPTCwKLQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOwotCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX1BTRE1SXzlDT0wsIENGR19PUjFfOUNPTCwKLQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCXNpemU4ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMV84Q09MLAorCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOworCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl85Q09MLCBDT05GSUdfU1lTX09SMV85Q09MLAorCQkJCQkgICh1Y2hhciAqKSBDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsKIAkJcHNpemUgPSBzaXplOTsKIAkJcHJpbnRmICgiKDYweDo5Q09MIC0gJWxkIE1CLCAiLCBwc2l6ZSA+PiAyMCk7CiAJfSBlbHNlIHsKLQkJcHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMV84Q09MLAotCQkJCQkJICAodWNoYXIgKikgQ0ZHX1NEUkFNX0JBU0UpOworCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENPTkZJR19TWVNfUFNETVJfOENPTCwgQ09ORklHX1NZU19PUjFfOENPTCwKKwkJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSk7CiAJCXByaW50ZiAoIig2MHg6OENPTCAtICVsZCBNQiwgIiwgcHNpemUgPj4gMjApOwogCX0KIAogCS8qIExvY2FsIFNEUkFNIHNldHVwOgogCSAqLwotI2lmZGVmIENGR19JTklUX0xPQ0FMX1NEUkFNCi0JbWVtY3RsLT5tZW1jX2xzcnQgPSBDRkdfTFNSVDsKLQlzaXplOCA9IHRyeV9pbml0IChtZW1jdGwsIENGR19MU0RNUl84Q09MLCBDRkdfT1IyXzhDT0wsCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0xPQ0FMX1NEUkFNCisJbWVtY3RsLT5tZW1jX2xzcnQgPSBDT05GSUdfU1lTX0xTUlQ7CisJc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX0xTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IyXzhDT0wsCiAJCQkJCSAgKHVjaGFyICopIFNEUkFNX0JBU0UyX1BSRUxJTSk7Ci0Jc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfTFNETVJfOUNPTCwgQ0ZHX09SMl85Q09MLAorCXNpemU5ID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19MU0RNUl85Q09MLCBDT05GSUdfU1lTX09SMl85Q09MLAogCQkJCQkgICh1Y2hhciAqKSBTRFJBTV9CQVNFMl9QUkVMSU0pOwogCiAJaWYgKHNpemU4IDwgc2l6ZTkpIHsKIAkJbHNpemUgPSBzaXplOTsKIAkJcHJpbnRmICgiTG9jYWw6OUNPTCAtICVsZCBNQikgdXNpbmcgIiwgbHNpemUgPj4gMjApOwogCX0gZWxzZSB7Ci0JCWxzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ0ZHX0xTRE1SXzhDT0wsIENGR19PUjJfOENPTCwKKwkJbHNpemUgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX0xTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IyXzhDT0wsCiAJCQkJCQkgICh1Y2hhciAqKSBTRFJBTV9CQVNFMl9QUkVMSU0pOwogCQlwcmludGYgKCJMb2NhbDo4Q09MIC0gJWxkIE1CKSB1c2luZyAiLCBsc2l6ZSA+PiAyMCk7CiAJfQpAQCAtMzU0LDExICszNTQsMTEgQEAKIAkvKiBTZXQgdXAgQlIyIHNvIHRoYXQgdGhlIGxvY2FsIFNEUkFNIGdvZXMKIAkgKiByaWdodCBhZnRlciB0aGUgNjB4IFNEUkFNCiAJICovCi0JbWVtY3RsLT5tZW1jX2JyMiA9IChDRkdfQlIyX1BSRUxJTSAmIH5CUnhfQkFfTVNLKSB8Ci0JCQkoQ0ZHX1NEUkFNX0JBU0UgKyBwc2l6ZSk7CisJbWVtY3RsLT5tZW1jX2JyMiA9IChDT05GSUdfU1lTX0JSMl9QUkVMSU0gJiB+QlJ4X0JBX01TSykgfAorCQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIHBzaXplKTsKICNlbmRpZgotI2VuZGlmIC8qIENGR19JTklUX0xPQ0FMX1NEUkFNICovCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0gKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCWljYWNoZV9lbmFibGUgKCk7CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04MjcyL2NvbmZpZy5tayBiL2JvYXJkL3RxYy90cW04MjcyL2NvbmZpZy5tawppbmRleCBhZjdhODFlLi4wNWM1ZjBjIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODI3Mi9jb25maWcubWsKKysrIGIvYm9hcmQvdHFjL3RxbTgyNzIvY29uZmlnLm1rCkBAIC0yNSw3ICsyNSw3IEBACiAjIFRRTTgyNzIgYm9hcmRzCiAjCiAKLSMgVGhpcyBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIENGR19GTEFTSF9CQVNFIGRlZmluZSBpbiBjb25maWdfVFFNODI2MC5oCisjIFRoaXMgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgZGVmaW5lIGluIGNvbmZpZ19UUU04MjYwLmgKICMgZm9yIHRoZSAiZmluYWwiIGNvbmZpZ3VyYXRpb24sIHdpdGggVS1Cb290IGluIGZsYXNoLCBvciB0aGUgYWRkcmVzcwogIyBpbiBSQU0gd2hlcmUgVS1Cb290IGlzIGxvYWRlZCBhdCBmb3IgZGVidWdnaW5nLgogIwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTgyNzIvbmFuZC5jIGIvYm9hcmQvdHFjL3RxbTgyNzIvbmFuZC5jCmluZGV4IGI5ODhmZmEuLjhjODM0MWIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW04MjcyL25hbmQuYworKysgYi9ib2FyZC90cWMvdHFtODI3Mi9uYW5kLmMKQEAgLTE0MSwxMiArMTQxLDEyIEBACiBzdGF0aWMgdm9pZCB1cG1uYW5kX3dyaXRlX2J5dGUoc3RydWN0IG10ZF9pbmZvICptdGRpbmZvLCB1X2NoYXIgYnl0ZSkKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKLQl1bG9uZyBiYXNlID0gKHVsb25nKSAodGhpcy0+SU9fQUREUl9XICsgY2hpcHNlbCAqIENGR19OQU5EX0NTX0RJU1QpOworCXVsb25nIGJhc2UgPSAodWxvbmcpICh0aGlzLT5JT19BRERSX1cgKyBjaGlwc2VsICogQ09ORklHX1NZU19OQU5EX0NTX0RJU1QpOwogCiAJaWYgKGh3Y3RsICYgMHgxKSB7Ci0JCVdSSVRFX05BTkRfVVBNKGJ5dGUsIGJhc2UsIENGR19OQU5EX1VQTV9XUklURV9DTURfT0ZTKTsKKwkJV1JJVEVfTkFORF9VUE0oYnl0ZSwgYmFzZSwgQ09ORklHX1NZU19OQU5EX1VQTV9XUklURV9DTURfT0ZTKTsKIAl9IGVsc2UgaWYgKGh3Y3RsICYgMHgyKSB7Ci0JCVdSSVRFX05BTkRfVVBNKGJ5dGUsIGJhc2UsIENGR19OQU5EX1VQTV9XUklURV9BRERSX09GUyk7CisJCVdSSVRFX05BTkRfVVBNKGJ5dGUsIGJhc2UsIENPTkZJR19TWVNfTkFORF9VUE1fV1JJVEVfQUREUl9PRlMpOwogCX0gZWxzZSB7CiAJCVdSSVRFX05BTkQoYnl0ZSwgYmFzZSk7CiAJfQpAQCAtMTcxLDcgKzE3MSw3IEBACiBzdGF0aWMgdV9jaGFyIHVwbW5hbmRfcmVhZF9ieXRlKHN0cnVjdCBtdGRfaW5mbyAqbXRkaW5mbykKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKLQl1bG9uZyBiYXNlID0gKHVsb25nKSAodGhpcy0+SU9fQUREUl9XICsgY2hpcHNlbCAqIENGR19OQU5EX0NTX0RJU1QpOworCXVsb25nIGJhc2UgPSAodWxvbmcpICh0aGlzLT5JT19BRERSX1cgKyBjaGlwc2VsICogQ09ORklHX1NZU19OQU5EX0NTX0RJU1QpOwogCiAJcmV0dXJuIFJFQURfTkFORChiYXNlKTsKIH0KQEAgLTE4Nyw3ICsxODcsNyBAQAogc3RhdGljIHZvaWQgdHFtODI3Ml9yZWFkX2J1ZihzdHJ1Y3QgbXRkX2luZm8gKm10ZGluZm8sIHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbikKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKLQl1bnNpZ25lZCBjaGFyICpiYXNlID0gKHVuc2lnbmVkIGNoYXIgKikgKHRoaXMtPklPX0FERFJfVyArIGNoaXBzZWwgKiBDRkdfTkFORF9DU19ESVNUKTsKKwl1bnNpZ25lZCBjaGFyICpiYXNlID0gKHVuc2lnbmVkIGNoYXIgKikgKHRoaXMtPklPX0FERFJfVyArIGNoaXBzZWwgKiBDT05GSUdfU1lTX05BTkRfQ1NfRElTVCk7CiAJaW50CWk7CiAKIAlmb3IgKGkgPSAwOyBpPCBsZW47IGkrKykKQEAgLTE5Nyw3ICsxOTcsNyBAQAogc3RhdGljIHZvaWQgdHFtODI3Ml93cml0ZV9idWYoc3RydWN0IG10ZF9pbmZvICptdGRpbmZvLCBjb25zdCB1aW50OF90ICpidWYsIGludCBsZW4pCiB7CiAJc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7Ci0JdW5zaWduZWQgY2hhciAqYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopICh0aGlzLT5JT19BRERSX1cgKyBjaGlwc2VsICogQ0ZHX05BTkRfQ1NfRElTVCk7CisJdW5zaWduZWQgY2hhciAqYmFzZSA9ICh1bnNpZ25lZCBjaGFyICopICh0aGlzLT5JT19BRERSX1cgKyBjaGlwc2VsICogQ09ORklHX1NZU19OQU5EX0NTX0RJU1QpOwogCWludAlpOwogCiAJZm9yIChpID0gMDsgaTwgbGVuOyBpKyspCkBAIC0yMDcsNyArMjA3LDcgQEAKIHN0YXRpYyBpbnQgdHFtODI3Ml92ZXJpZnlfYnVmKHN0cnVjdCBtdGRfaW5mbyAqbXRkaW5mbywgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgbGVuKQogewogCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGRpbmZvLT5wcml2OwotCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSAodW5zaWduZWQgY2hhciAqKSAodGhpcy0+SU9fQUREUl9XICsgY2hpcHNlbCAqIENGR19OQU5EX0NTX0RJU1QpOworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSAodW5zaWduZWQgY2hhciAqKSAodGhpcy0+SU9fQUREUl9XICsgY2hpcHNlbCAqIENPTkZJR19TWVNfTkFORF9DU19ESVNUKTsKIAlpbnQJaTsKIAogCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKQEAgLTIyNSw3ICsyMjUsNyBAQAogaW50IGJvYXJkX25hbmRfaW5pdChzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kKQogewogCXN0YXRpYwlpbnQJVXBtSW5pdCA9IDA7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqIGltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tci0+aW1fbWVtY3RsOwogCiAJaWYgKGh3aW5mLm5hbmQgPT0gMCkgcmV0dXJuIC0xOwpAQCAtMjUwLDggKzI1MCw4IEBACiAJfQogCiAJLyogU2V0dXAgdGhlIG1lbWN0cmwgKi8KLQltZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX05BTkRfT1I7Ci0JbWVtY3RsLT5tZW1jX2JyMyA9IENGR19OQU5EX0JSOworCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX05BTkRfT1I7CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfTkFORF9CUjsKIAltZW1jdGwtPm1lbWNfbWJtciA9IChNeE1SX09QX05PUk0pOwogCiAJbmFuZC0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTgyNzIvdHFtODI3Mi5jIGIvYm9hcmQvdHFjL3RxbTgyNzIvdHFtODI3Mi5jCmluZGV4IGZjMGEyOWMuLjVkMDc0MWQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW04MjcyL3RxbTgyNzIuYworKysgYi9ib2FyZC90cWMvdHFtODI3Mi90cW04MjcyLmMKQEAgLTI4Nyw3ICsyODcsNyBAQAogCWNoYXIgKnAgPSAoY2hhciAqKSBIV0lCX0lORk9fU1RBUlRfQUREUjsKIAogCXB1dHMgKCJCb2FyZDogIik7Ci0JaWYgKCooKHVuc2lnbmVkIGxvbmcgKilwKSA9PSAodW5zaWduZWQgbG9uZylDRkdfSFdJTkZPX01BR0lDKSB7CisJaWYgKCooKHVuc2lnbmVkIGxvbmcgKilwKSA9PSAodW5zaWduZWQgbG9uZylDT05GSUdfU1lTX0hXSU5GT19NQUdJQykgewogCQlwdXRzIChwKTsKIAl9IGVsc2UgewogCQlwdXRzICgiTm8gSFdJQiBhc3N1bWluZyBUUU04MjcyIik7CkBAIC0zMjcsNyArMzI3LDcgQEAKIHsKICNpZiBkZWZpbmVkKENPTkZJR19CT0FSRF9HRVRfQ1BVX0NMS19GKQogCWludAljbGsgPSBib2FyZF9nZXRfY3B1X2Nsa19mICgpOwotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAlpbnQJYnVzbW9kZSA9IChpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IgJiBCQ1JfRUJNID8gMSA6IDApOwogCWludAljYXM7CiAKQEAgLTQwNCw3ICs0MDQsNyBAQAogCSAqLwogCW1heHNpemUgPSAoMSArICh+b3J4IHwgMHg3ZmZmKSkgLyAyOwogCi0JLyogU2luY2UgQ0ZHX1NEUkFNX0JBU0UgaXMgYWx3YXlzIDAgKD8/KSwgd2UgYXNzdW1lIHRoYXQKKwkvKiBTaW5jZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgaXMgYWx3YXlzIDAgKD8/KSwgd2UgYXNzdW1lIHRoYXQKIAkgKiB3ZSBhcmUgY29uZmlndXJpbmcgQ1MxIGlmIGJhc2UgIT0gMAogCSAqLwogCXNkbXJfcHRyID0gYmFzZSA/ICZtZW1jdGwtPm1lbWNfbHNkbXIgOiAmbWVtY3RsLT5tZW1jX3BzZG1yOwpAQCAtNDI5LDcgKzQyOSw3IEBACiAJICogIGFjY2Vzc2luZyB0aGUgU0RSQU0gd2l0aCBhIHNpbmdsZS1ieXRlIHRyYW5zYWN0aW9uLiIKIAkgKgogCSAqIFRoZSBhcHByb3ByaWF0ZSBCUngvT1J4IHJlZ2lzdGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZXQgd2hlbiB3ZQotCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENGR19TRFJBTV9CQVNFLgorCSAqIGdldCBoZXJlLiBUaGUgU0RSQU0gY2FuIGJlIGFjY2Vzc2VkIGF0IHRoZSBhZGRyZXNzIENPTkZJR19TWVNfU0RSQU1fQkFTRS4KIAkgKi8KIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9QUkVBOwpAQCAtNDQwLDcgKzQ0MCw3IEBACiAJCSpiYXNlID0gYzsKIAogCSpzZG1yX3B0ciA9IHNkbXIgfCBQU0RNUl9PUF9NUlc7Ci0JKihiYXNlICsgQ0ZHX01SU19PRkZTKSA9IGM7CS8qIHNldHRpbmcgTVIgb24gYWRkcmVzcyBsaW5lcyAqLworCSooYmFzZSArIENPTkZJR19TWVNfTVJTX09GRlMpID0gYzsJLyogc2V0dGluZyBNUiBvbiBhZGRyZXNzIGxpbmVzICovCiAKIAkqc2Rtcl9wdHIgPSBzZG1yIHwgUFNETVJfT1BfTk9STSB8IFBTRE1SX1JGRU47CiAJKmJhc2UgPSBjOwpAQCAtNDUzLDEwICs0NTMsMTAgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsODI2MF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAlsb25nIHNpemU4LCBzaXplOTsKICNlbmRpZgogCWxvbmcgcHNpemUsIGxzaXplOwpAQCAtNDY0LDI3ICs0NjQsMjcgQEAKIAlwc2l6ZSA9IDE2ICogMTAyNCAqIDEwMjQ7CiAJbHNpemUgPSAwOwogCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFI7CisJbWVtY3RsLT5tZW1jX3BzcnQgPSBDT05GSUdfU1lTX1BTUlQ7CisJbWVtY3RsLT5tZW1jX21wdHByID0gQ09ORklHX1NZU19NUFRQUjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkvKiA2MHggU0RSQU0gc2V0dXA6CiAJICovCi0Jc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOENPTCwgQ0ZHX09SMV84Q09MLAotCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSwgOCk7Ci0Jc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDRkdfUFNETVJfOUNPTCwgQ0ZHX09SMV85Q09MLAotCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSwgOSk7CisJc2l6ZTggPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzhDT0wsIENPTkZJR19TWVNfT1IxXzhDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgOCk7CisJc2l6ZTkgPSB0cnlfaW5pdCAobWVtY3RsLCBDT05GSUdfU1lTX1BTRE1SXzlDT0wsIENPTkZJR19TWVNfT1IxXzlDT0wsCisJCQkJCSAgKHVjaGFyICopIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgOSk7CiAKIAlpZiAoc2l6ZTggPCBzaXplOSkgewogCQlwc2l6ZSA9IHNpemU5OwogCQlwcmludGYgKCIoNjB4OjlDT0wgLSAlbGQgTUIsICIsIHBzaXplID4+IDIwKTsKIAl9IGVsc2UgewotCQlwc2l6ZSA9IHRyeV9pbml0IChtZW1jdGwsIENGR19QU0RNUl84Q09MLCBDRkdfT1IxXzhDT0wsCi0JCQkJCQkgICh1Y2hhciAqKSBDRkdfU0RSQU1fQkFTRSwgOCk7CisJCXBzaXplID0gdHJ5X2luaXQgKG1lbWN0bCwgQ09ORklHX1NZU19QU0RNUl84Q09MLCBDT05GSUdfU1lTX09SMV84Q09MLAorCQkJCQkJICAodWNoYXIgKikgQ09ORklHX1NZU19TRFJBTV9CQVNFLCA4KTsKIAkJcHJpbnRmICgiKDYweDo4Q09MIC0gJWxkIE1CLCAiLCBwc2l6ZSA+PiAyMCk7CiAJfQogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCWljYWNoZV9lbmFibGUgKCk7CiAKQEAgLTUxNCw3ICs1MTQsNyBAQAogc3RhdGljIGludCBkdW1wX2h3aWIodm9pZCkKIHsKIAlIV0lCX0lORk8JKmh3ID0gJmh3aW5mOwotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAljaGFyICpzID0gZ2V0ZW52KCJzZXJpYWwjIik7CiAKIAlpZiAoaHctPk9LKSB7CkBAIC02MDcsNyArNjA3LDcgQEAKIAogCWRlYl9wcmludGYoIiAlcyBwb2ludGVyOiAlcFxuIiwgX19GVU5DVElPTl9fLCBwKTsKIAkvKiBIZWFkID0gVFFNICovCi0JaWYgKCooKHVuc2lnbmVkIGxvbmcgKilwKSAhPSAodW5zaWduZWQgbG9uZylDRkdfSFdJTkZPX01BR0lDKSB7CisJaWYgKCooKHVuc2lnbmVkIGxvbmcgKilwKSAhPSAodW5zaWduZWQgbG9uZylDT05GSUdfU1lTX0hXSU5GT19NQUdJQykgewogCQlkZWJfcHJpbnRmKCJObyBIV0lCXG4iKTsKIAkJcmV0dXJuIC0xOwogCX0KQEAgLTcwNCw3ICs3MDQsNyBAQAogCiAJaHctPk9LID0gMTsKIAkvKiBzZWFyY2ggTUFDIEFkZHJlc3MgKi8KLQl3aGlsZSAoKCpwICE9ICdcMCcpICYmIChwb3MgPCBDRkdfSFdJTkZPX1NJWkUpKSB7CisJd2hpbGUgKCgqcCAhPSAnXDAnKSAmJiAocG9zIDwgQ09ORklHX1NZU19IV0lORk9fU0laRSkpIHsKIAkJaWYgKCpwIDwgJyAnIHx8ICpwID4gJ34nKSB7IC8qIEFTQ0lJIHN0cmluZ3MhICovCiAJCQlyZXR1cm4gMDsKIAkJfQpAQCAtNzQ0LDcgKzc0NCw3IEBACiAJYnVmW2krK10gPSAnTSc7CiAJYnVmW2krK10gPSAnUCc7CiAJYnVmW2krK10gPSAnQyc7Ci0JaWYgKCooKHVuc2lnbmVkIGxvbmcgKilwKSA9PSAodW5zaWduZWQgbG9uZylDRkdfSFdJTkZPX01BR0lDKSB7CisJaWYgKCooKHVuc2lnbmVkIGxvbmcgKilwKSA9PSAodW5zaWduZWQgbG9uZylDT05GSUdfU1lTX0hXSU5GT19NQUdJQykgewogCQlidWZbaSsrXSA9IComcFszXTsKIAkJYnVmW2krK10gPSAqJnBbNF07CiAJCWJ1ZltpKytdID0gKiZwWzVdOwpAQCAtNzY3LDcgKzc2Nyw3IEBACiAJY2hhciAqcCA9IChjaGFyICopIEhXSUJfSU5GT19TVEFSVF9BRERSOwogCWludCBpID0gMDsKIAotCWlmICgqKCh1bnNpZ25lZCBsb25nICopcCkgPT0gKHVuc2lnbmVkIGxvbmcpQ0ZHX0hXSU5GT19NQUdJQykgeworCWlmICgqKCh1bnNpZ25lZCBsb25nICopcCkgPT0gKHVuc2lnbmVkIGxvbmcpQ09ORklHX1NZU19IV0lORk9fTUFHSUMpIHsKIAkJaWYgKHNlYXJjaF9yZWFsX2J1c2NsayAoJmkpKQogCQkJcmV0dXJuIGk7CiAJfQpAQCAtNzc5LDcgKzc3OSw3IEBACiAKIHN0YXRpYyBpbnQgY2FuX3Rlc3QgKHVuc2lnbmVkIGxvbmcgb2ZmKQogewotCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIJKmJhc2UJPSAodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0NBTl9CQVNFICsgb2ZmKTsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpiYXNlCT0gKHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfQ0FOX0JBU0UgKyBvZmYpOwogCiAJKihiYXNlICsgMHgxNykgPSAnVCc7CiAJKihiYXNlICsgMHgxOCkgPSAnUSc7CkBAIC03OTQsOSArNzk0LDkgQEAKIAogc3RhdGljIGludCBjYW5fY29uZmlnX29uZSAodW5zaWduZWQgbG9uZyBvZmYpCiB7Ci0Jdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqY3RybAk9ICh1bnNpZ25lZCBjaGFyICopIChDRkdfQ0FOX0JBU0UgKyBvZmYpOwotCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIJKmNwdV9pZiA9ICh1bnNpZ25lZCBjaGFyICopIChDRkdfQ0FOX0JBU0UgKyBvZmYgKyAweDAyKTsKLQl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpjbGtvdXQgPSAodW5zaWduZWQgY2hhciAqKSAoQ0ZHX0NBTl9CQVNFICsgb2ZmICsgMHgxZik7CisJdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqY3RybAk9ICh1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX0NBTl9CQVNFICsgb2ZmKTsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyCSpjcHVfaWYgPSAodW5zaWduZWQgY2hhciAqKSAoQ09ORklHX1NZU19DQU5fQkFTRSArIG9mZiArIDB4MDIpOworCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIJKmNsa291dCA9ICh1bnNpZ25lZCBjaGFyICopIChDT05GSUdfU1lTX0NBTl9CQVNFICsgb2ZmICsgMHgxZik7CiAJdW5zaWduZWQgY2hhciB0ZW1wOwogCiAJKmNwdV9pZiA9IDB4NDU7CkBAIC04MjUsMTMgKzgyNSwxMyBAQAogCiBzdGF0aWMgaW50IGluaXRfY2FuICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKIAlpbnQJY291bnQgPSAwOwogCiAJaWYgKChod2luZi5PSykgJiYgKGh3aW5mLmNhbikpIHsKLQkJbWVtY3RsLT5tZW1jX29yNCA9IENGR19DQU5fT1I7Ci0JCW1lbWN0bC0+bWVtY19icjQgPSBDRkdfQ0FOX0JSOworCQltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19DQU5fT1I7CisJCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0NBTl9CUjsKIAkJLyogdXBtIEluaXQgKi8KIAkJdXBtY29uZmlnIChVUE1DLCAodWludCAqKSB1cG1UYWJsZUZhc3QsCiAJCQkgICBzaXplb2YgKHVwbVRhYmxlRmFzdCkgLyBzaXplb2YgKHVpbnQpKTsKQEAgLTg0Miw3ICs4NDIsNyBAQAogCQkJCQlNeE1SX09QX05PUk0pOwogCQkvKiBjYW4gY29uZmlndXJlICovCiAJCWNvdW50ID0gY2FuX2NvbmZpZyAoKTsKLQkJcHJpbnRmICgiQ0FOOgklZCBAICV4XG4iLCBjb3VudCwgQ0ZHX0NBTl9CQVNFKTsKKwkJcHJpbnRmICgiQ0FOOgklZCBAICV4XG4iLCBjb3VudCwgQ09ORklHX1NZU19DQU5fQkFTRSk7CiAJCWlmIChod2luZi5jYW4gIT0gY291bnQpIHByaW50ZigiISEhIGRpZmZlcmVuY2UgdG8gSFdJQlxuIik7CiAJfSBlbHNlIHsKIAkJcHJpbnRmICgiQ0FOOglOb1xuIik7CkBAIC04NzAsNyArODcwLDcgQEAKIAkgICJcbiIKICk7CiAKLSNpZmRlZiBDRkdfVVBEQVRFX0ZMQVNIX1NJWkUKKyNpZmRlZiBDT05GSUdfU1lTX1VQREFURV9GTEFTSF9TSVpFCiBzdGF0aWMgaW50IGdldF9mbGFzaF90aW1pbmcgKHZvaWQpCiB7CiAJLyogZ2V0IGl0IGZyb20gdGhlIG9wdGlvbiAtdGYgaW4gQ0lCICovCkBAIC05MTUsNyArOTE1LDcgQEAKIC8qIFVwZGF0ZSB0aGUgRmxhc2hfU2l6ZSBhbmQgdGhlIEZsYXNoIFRpbWluZyAqLwogaW50IHVwZGF0ZV9mbGFzaF9zaXplIChpbnQgZmxhc2hfc2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICogaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqIGltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1yLT5pbV9tZW1jdGw7CiAJdW5zaWduZWQgbG9uZyByZWc7CiAJdW5zaWduZWQgbG9uZyB0aW07CkBAIC05MzcsNyArOTM3LDcgQEAKIAogaW50IGJvYXJkX2Vhcmx5X2luaXRfZiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tYXAtPmltX2Nsa3JzdC5jYXJfc2NjciB8PSBNODI2WF9TQ0NSX1BDSV9NT0RFX0VOOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTgzNHgvcGNpLmMgYi9ib2FyZC90cWMvdHFtODM0eC9wY2kuYwppbmRleCBlM2QwMzA5Li4wZWVkZjRhIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODM0eC9wY2kuYworKysgYi9ib2FyZC90cWMvdHFtODM0eC9wY2kuYwpAQCAtMjksOCArMjksOCBAQAogI2lmZGVmIENPTkZJR19QQ0kKIAogLyogU3lzdGVtIFJBTSBtYXBwZWQgdG8gUENJIHNwYWNlICovCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCiAKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKQEAgLTc4LDcgKzc4LDcgQEAKIAl1MzIgcmVnMzI7CiAJc3RydWN0CXBjaV9jb250cm9sbGVyICogaG9zZTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAljbGsgPSAoY2xrODN4eF90ICopJmltbXItPmNsazsKIAlwY2lfbGF3ID0gaW1tci0+c3lzY29uZi5wY2lsYXc7CiAJcGNpX3BvdCA9IGltbXItPmlvcy5wb3Q7CkBAIC0xMjgsMTAgKzEyOCwxMCBAQAogCS8qCiAJICogQ29uZmlndXJlIFBDSSBMb2NhbCBBY2Nlc3MgV2luZG93cwogCSAqLwotCXBjaV9sYXdbMF0uYmFyID0gQ0ZHX1BDSTFfTUVNX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMF0uYmFyID0gQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTICYgTEFXQkFSX0JBUjsKIAlwY2lfbGF3WzBdLmFyID0gTEFXQVJfRU4gfCBMQVdBUl9TSVpFXzUxMk07CiAKLQlwY2lfbGF3WzFdLmJhciA9IENGR19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOworCXBjaV9sYXdbMV0uYmFyID0gQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgJiBMQVdCQVJfQkFSOwogCXBjaV9sYXdbMV0uYXIgPSBMQVdBUl9FTiB8IExBV0FSX1NJWkVfMTZNOwogCiAJLyoKQEAgLTEzOSwxMyArMTM5LDEzIEBACiAJICovCiAKIAkvKiBQQ0kxIG1lbSBzcGFjZSAqLwotCXBjaV9wb3RbMF0ucG90YXIgPSAoQ0ZHX1BDSTFfTUVNX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKLQlwY2lfcG90WzBdLnBvYmFyID0gKENGR19QQ0kxX01FTV9QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFswXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgPj4gMTIpICYgUE9UQVJfVEFfTUFTSzsKKwlwY2lfcG90WzBdLnBvYmFyID0gKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyA+PiAxMikgJiBQT0JBUl9CQV9NQVNLOwogCXBjaV9wb3RbMF0ucG9jbXIgPSBQT0NNUl9FTiB8IChQT0NNUl9DTV81MTJNICYgUE9DTVJfQ01fTUFTSyk7CiAKIAkvKiBQQ0kxIElPIHNwYWNlICovCi0JcGNpX3BvdFsxXS5wb3RhciA9IChDRkdfUENJMV9JT19CQVNFID4+IDEyKSAmIFBPVEFSX1RBX01BU0s7Ci0JcGNpX3BvdFsxXS5wb2JhciA9IChDRkdfUENJMV9JT19QSFlTID4+IDEyKSAmIFBPQkFSX0JBX01BU0s7CisJcGNpX3BvdFsxXS5wb3RhciA9IChDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSA+PiAxMikgJiBQT1RBUl9UQV9NQVNLOworCXBjaV9wb3RbMV0ucG9iYXIgPSAoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgPj4gMTIpICYgUE9CQVJfQkFfTUFTSzsKIAlwY2lfcG90WzFdLnBvY21yID0gUE9DTVJfRU4gfCBQT0NNUl9JTyB8IChQT0NNUl9DTV8xNk0gJiBQT0NNUl9DTV9NQVNLKTsKIAogCS8qCkBAIC0xNjQsMTYgKzE2NCwxNiBAQAogCiAJLyogUENJIG1lbW9yeSBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMV9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0kxX01FTV9TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIElPIHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsCi0JCSAgICAgICBDRkdfUENJMV9JT19CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTFfSU9fUEhZUywKLQkJICAgICAgIENGR19QQ0kxX0lPX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX0lPKTsKIAogCS8qIFN5c3RlbSBtZW1vcnkgc3BhY2UgKi8KQEAgLTE4Niw4ICsxODYsOCBAQAogCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CiAKIAlwY2lfc2V0dXBfaW5kaXJlY3QoaG9zZSwKLQkJCSAgIChDRkdfSU1NUisweDgzMDApLAotCQkJICAgKENGR19JTU1SKzB4ODMwNCkpOworCQkJICAgKENPTkZJR19TWVNfSU1NUisweDgzMDApLAorCQkJICAgKENPTkZJR19TWVNfSU1NUisweDgzMDQpKTsKIAogCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwogCmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtODM0eC90cW04MzR4LmMgYi9ib2FyZC90cWMvdHFtODM0eC90cW04MzR4LmMKaW5kZXggMjc4NzgwZC4uMTA2Y2FjMiAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTgzNHgvdHFtODM0eC5jCisrKyBiL2JvYXJkL3RxYy90cW04MzR4L3RxbTgzNHguYwpAQCAtNjcsNyArNjcsNyBAQAogc3RhdGljIHZvaWQgc2V0X2Rkcl9jb25maWcodm9pZCk7CiAKIC8qIExvY2FsIHZhcmlhYmxlICovCi1zdGF0aWMgdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworc3RhdGljIHZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQm9hcmQgaW5pdGlhbHphdGlvbiBhZnRlciByZWxvY2F0aW9uIHRvIFJBTS4gVXNlZCB0byBkZXRlY3QgdGhlIG51bWJlcgpAQCAtOTIsMTMgKzkyLDEzIEBACiAJaW50IGNzOwogCiAJLyogZHVyaW5nIHNpemUgZGV0ZWN0aW9uLCBzZXQgdXAgdGhlIG1heCBERFJMQVcgc2l6ZSAqLwotCWltLT5zeXNjb25mLmRkcmxhd1swXS5iYXIgPSBDRkdfRERSX0JBU0U7CisJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmJhciA9IENPTkZJR19TWVNfRERSX0JBU0U7CiAJaW0tPnN5c2NvbmYuZGRybGF3WzBdLmFyID0gKExBV0FSX0VOIHwgTEFXQVJfU0laRV8yRyk7CiAKIAkvKiBzZXQgQ1MgYm91bmRzIHRvIG1heGltdW0gc2l6ZSAqLwogCWZvcihjcyA9IDA7IGNzIDwgNDsgKytjcykgewogCQlzZXRfY3NfYm91bmRzKGNzLAotCQkJQ0ZHX0REUl9CQVNFICsgKGNzICogRERSX01BWF9TSVpFX1BFUl9DUyksCisJCQlDT05GSUdfU1lTX0REUl9CQVNFICsgKGNzICogRERSX01BWF9TSVpFX1BFUl9DUyksCiAJCQlERFJfTUFYX1NJWkVfUEVSX0NTKTsKIAogCQlzZXRfY3NfY29uZmlnKGNzLCBJTklUSUFMX0NTX0NPTkZJRyk7CkBAIC0xMjIsNyArMTIyLDcgQEAKIAkJZGVidWcoIlxuRGV0ZWN0aW5nIEJhbmslZFxuIiwgY3MpOwogCiAJCWJhbmtfc2l6ZSA9IGdldF9kZHJfYmFua19zaXplKGNzLAotCQkJKHZvbGF0aWxlIGxvbmcqKShDRkdfRERSX0JBU0UgKyBzaXplKSk7CisJCQkodm9sYXRpbGUgbG9uZyopKENPTkZJR19TWVNfRERSX0JBU0UgKyBzaXplKSk7CiAJCXNpemUgKz0gYmFua19zaXplOwogCiAJCWRlYnVnKCJERFIgQmFuayVkIHNpemU6ICVkIE1pQlxuXG4iLCBjcywgYmFua19zaXplID4+IDIwKTsKQEAgLTE0NSw3ICsxNDUsNyBAQAogCXZvbGF0aWxlIGltbWFwX3QgKiBpbW1yOwogCXUzMiB3LCBmOwogCi0JaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWlmICghKGltbXItPnJlc2V0LnJjd2ggJiBIUkNXSF9QQ0lfSE9TVCkpIHsKIAkJcHJpbnRmKCJQQ0k6ICAgTk9UIGluIGhvc3QgbW9kZS4uPyFcbiIpOwogCQlyZXR1cm4gMDsKQEAgLTE5Myw5ICsxOTMsOSBAQAogCXRxbTgzNHhfbnVtX2ZsYXNoX2JhbmtzID0gMjsJLyogYXNzdW1lIHR3byBiYW5rcyAqLwogCiAJLyogR2V0IGJhbmsgMSBhbmQgMiBpbmZvcm1hdGlvbiAqLwotCWJhbmsxX3NpemUgPSBmbGFzaF9nZXRfc2l6ZShDRkdfRkxBU0hfQkFTRSwgMCk7CisJYmFuazFfc2l6ZSA9IGZsYXNoX2dldF9zaXplKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgMCk7CiAJZGVidWcoIkJhbmsxIHNpemU6ICVsdVxuIiwgYmFuazFfc2l6ZSk7Ci0JYmFuazJfc2l6ZSA9IGZsYXNoX2dldF9zaXplKENGR19GTEFTSF9CQVNFICsgYmFuazFfc2l6ZSwgMSk7CisJYmFuazJfc2l6ZSA9IGZsYXNoX2dldF9zaXplKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIGJhbmsxX3NpemUsIDEpOwogCWRlYnVnKCJCYW5rMiBzaXplOiAlbHVcbiIsIGJhbmsyX3NpemUpOwogCXRvdGFsX3NpemUgPSBiYW5rMV9zaXplICsgYmFuazJfc2l6ZTsKIApAQCAtMjAzLDggKzIwMyw4IEBACiAJCS8qIFNlZW1zIGxpa2Ugd2UndmUgZ290IGJhbmsgMiwgYnV0IG1heWJlIGl0J3MgbWlycm9yZWQgMSAqLwogCiAJCS8qIFNldCB0aGUgYmFzZSBhZGRyZXNzZXMgKi8KLQkJYmFuazFfYmFzZSA9IChGUFdWICopIChDRkdfRkxBU0hfQkFTRSk7Ci0JCWJhbmsyX2Jhc2UgPSAoRlBXViAqKSAoQ0ZHX0ZMQVNIX0JBU0UgKyBiYW5rMV9zaXplKTsKKwkJYmFuazFfYmFzZSA9IChGUFdWICopIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOworCQliYW5rMl9iYXNlID0gKEZQV1YgKikgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIGJhbmsxX3NpemUpOwogCiAJCS8qIFB1dCBiYW5rIDIgaW50byBDRkkgY29tbWFuZCBtb2RlIGFuZCByZWFkICovCiAJCWJhbmsyX2Jhc2VbMHg1NV0gPSAweDAwOTgwMDk4OwpAQCAtMjUzLDkgKzI1Myw5IEBACiAJZGVidWcoIk51bWJlciBvZiBmbGFzaCBiYW5rcyBkZXRlY3RlZDogJWRcbiIsIHRxbTgzNHhfbnVtX2ZsYXNoX2JhbmtzKTsKIAogCS8qIHNldCBPUjAgYW5kIEJSMCAqLwotCWltLT5sYnVzLmJhbmtbMF0ub3IgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwKKwlpbS0+bGJ1cy5iYW5rWzBdLm9yID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfAogCQkoLSh0b3RhbF9zaXplKSAmIE9SX0dQQ01fQU0pOwotCWltLT5sYnVzLmJhbmtbMF0uYnIgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQSkgfAorCWltLT5sYnVzLmJhbmtbMF0uYnIgPSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJfQkEpIHwKIAkJKEJSX01TX0dQQ00gfCBCUl9QU18zMiB8IEJSX1YpOwogCiAJcmV0dXJuICgwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04NXh4L2xhdy5jIGIvYm9hcmQvdHFjL3RxbTg1eHgvbGF3LmMKaW5kZXggZGUzZWEwMC4uZmM5MmNkOCAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTg1eHgvbGF3LmMKKysrIGIvYm9hcmQvdHFjL3RxbTg1eHgvbGF3LmMKQEAgLTY2LDIwICs2NiwyMCBAQAogI2VuZGlmCiAKIHN0cnVjdCBsYXdfZW50cnkgbGF3X3RhYmxlW10gPSB7Ci0JU0VUX0xBVyhDRkdfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUiksCi0JU0VUX0xBVyhDRkdfUENJMV9NRU1fUEhZUywgTEFXX1NJWkVfNTEyTSwgTEFXX1RSR1RfSUZfUENJKSwKLQlTRVRfTEFXKENGR19MQkNfRkxBU0hfQkFTRSwgTEFXXzNfU0laRSwgTEFXX1RSR1RfSUZfTEJDKSwKLQlTRVRfTEFXKENGR19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX0REUiksCisJU0VUX0xBVyhDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIExBV19TSVpFXzUxMk0sIExBV19UUkdUX0lGX1BDSSksCisJU0VUX0xBVyhDT05GSUdfU1lTX0xCQ19GTEFTSF9CQVNFLCBMQVdfM19TSVpFLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsIExBV19TSVpFXzE2TSwgTEFXX1RSR1RfSUZfUENJKSwKICNpZmRlZiBDT05GSUdfUENJRTEKLQlTRVRfTEFXKENGR19QQ0lFMV9NRU1fQkFTRSwgTEFXXzVfU0laRSwgTEFXX1RSR1RfSUZfUENJRV8xKSwKKwlTRVRfTEFXKENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UsIExBV181X1NJWkUsIExBV19UUkdUX0lGX1BDSUVfMSksCiAjZWxzZSAvKiAhQ09ORklHX1BDSUUxICovCi0JU0VUX0xBVyhDRkdfUklPX01FTV9CQVNFLCBMQVdfNV9TSVpFLCBMQVdfVFJHVF9JRl9SSU8pLAorCVNFVF9MQVcoQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsIExBV181X1NJWkUsIExBV19UUkdUX0lGX1JJTyksCiAjZW5kaWYgLyogQ09ORklHX1BDSUUxICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ0FOX0RSSVZFUikgfHwgZGVmaW5lZChDT05GSUdfTkFORCkKLQlTRVRfTEFXKENGR19DQU5fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9MQkMpLAorCVNFVF9MQVcoQ09ORklHX1NZU19DQU5fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9MQkMpLAogI2VuZGlmIC8qIENPTkZJR19DQU5fRFJJVkVSIHx8IENPTkZJR19OQU5EICovCiAjaWZkZWYgQ09ORklHX1BDSUUxCi0JU0VUX0xBVyhDRkdfUENJRTFfSU9fQkFTRSwgTEFXX1NJWkVfMTZNLCBMQVdfVFJHVF9JRl9QQ0lFXzEpLAorCVNFVF9MQVcoQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLCBMQVdfU0laRV8xNk0sIExBV19UUkdUX0lGX1BDSUVfMSksCiAjZW5kaWYgLyogQ09ORklHX1BDSUUgKi8KIH07CiAKZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04NXh4L25hbmQuYyBiL2JvYXJkL3RxYy90cW04NXh4L25hbmQuYwppbmRleCA5YzVjMTJjLi5kZWE2NTJkIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODV4eC9uYW5kLmMKKysrIGIvYm9hcmQvdHFjL3RxbTg1eHgvbmFuZC5jCkBAIC00MSwxMCArNDEsMTAgQEAKIGV4dGVybiB1aW50IGdldF9sYmNfY2xvY2sgKHZvaWQpOwogCiAvKiBpbmRleCBvZiBVUE0gUkFNIGFycmF5IHJ1biBwYXR0ZXJuIGZvciBOQU5EIGNvbW1hbmQgY3ljbGUgKi8KLSNkZWZpbmUJQ0ZHX05BTl9VUE1fV1JJVEVfQ01EX09GUwkweDA4CisjZGVmaW5lCUNPTkZJR19TWVNfTkFOX1VQTV9XUklURV9DTURfT0ZTCTB4MDgKIAogLyogaW5kZXggb2YgVVBNIFJBTSBhcnJheSBydW4gcGF0dGVybiBmb3IgTkFORCBhZGRyZXNzIGN5Y2xlICovCi0jZGVmaW5lCUNGR19OQU5EX1VQTV9XUklURV9BRERSX09GUwkweDEwCisjZGVmaW5lCUNPTkZJR19TWVNfTkFORF9VUE1fV1JJVEVfQUREUl9PRlMJMHgxMAogCiAvKiBTdHJ1Y3R1cmUgZm9yIHRhYmxlIHdpdGggc3VwcG9ydGVkIFVQTSB0aW1pbmdzICovCiBzdHJ1Y3QgdXBtX2ZyZXEgewpAQCAtMzc3LDcgKzM3Nyw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIHVwbWJfd3JpdGUgKHVfY2hhciBhZGRyLCB1bG9uZyB2YWwpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAlvdXRfYmUzMiAoJmxiYy0+bWRyLCB2YWwpOwogCkBAIC0zODUsNyArMzg1LDcgQEAKIAkJCU14TVJfT1BfV0FSUiB8IChhZGRyICYgTXhNUl9NQURfTVNLKSk7CiAKIAkvKiBkdW1teSBhY2Nlc3MgdG8gcGVyZm9ybSB3cml0ZSAqLwotCW91dF84ICgodm9pZCBfX2lvbWVtICopQ0ZHX05BTkQwX0JBU0UsIDApOworCW91dF84ICgodm9pZCBfX2lvbWVtICopQ09ORklHX1NZU19OQU5EMF9CQVNFLCAwKTsKIAogCWNscmJpdHNfYmUzMigmbGJjLT5tYm1yLCBNeE1SX09QX1dBUlIpOwogfQpAQCAtMzk2LDExICszOTYsMTEgQEAKIHN0YXRpYyB2b2lkIG5hbmRfdXBtX3NldHVwICh2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMpCiB7CiAJdWludCBpOwotCXVpbnQgb3IzID0gQ0ZHX09SM19QUkVMSU07CisJdWludCBvcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CiAJdWludCBjbG9jayA9IGdldF9sYmNfY2xvY2sgKCk7CiAKIAlvdXRfYmUzMiAoJmxiYy0+YnIzLCAwKTsJLyogZGlzYWJsZSBiYW5rIGFuZCByZXNldCBhbGwgYml0cyAqLwotCW91dF9iZTMyICgmbGJjLT5icjMsIENGR19CUjNfUFJFTElNKTsKKwlvdXRfYmUzMiAoJmxiYy0+YnIzLCBDT05GSUdfU1lTX0JSM19QUkVMSU0pOwogCiAJLyoKIAkgKiBTZWFyY2ggYXBwcm9wcmlhdGUgVVBNIHRhYmxlIGZvciBidXMgY2xvY2suCkBAIC00NTUsNyArNDU1LDcgQEAKIAogaW50IGJvYXJkX25hbmRfaW5pdCAoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKIAogCWlmICghbmFuZF91cG1fcGF0dCkKIAkJbmFuZF91cG1fc2V0dXAgKGxiYyk7CmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtODV4eC9zZHJhbS5jIGIvYm9hcmQvdHFjL3RxbTg1eHgvc2RyYW0uYwppbmRleCAzM2JjNDA3Li43ODNiMjgwIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODV4eC9zZHJhbS5jCisrKyBiL2JvYXJkL3RxYy90cW04NXh4L3NkcmFtLmMKQEAgLTY2LDkgKzY2LDkgQEAKIGxvbmcgaW50IHNkcmFtX3NldHVwIChpbnQgY2FzbCkKIHsKIAlpbnQgaTsKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSKTsKICNpZmRlZiBDT05GSUdfVFFNODU0OAotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAjZWxzZSAvKiAhQ09ORklHX1RRTTg1NDggKi8KIAl1bnNpZ25lZCBsb25nIGNmZ19kZHJfdGltaW5nMTsKIAl1bnNpZ25lZCBsb25nIGNmZ19kZHJfbW9kZTsKQEAgLTI5Niw3ICsyOTYsNyBAQAogCSAqIFRoaXMgRExMLU92ZXJyaWRlIG9ubHkgdXNlZCBvbiBUUU04NTQwIGFuZCBUUU04NTYwCiAJICovCiAJewotCQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKIAkJaW50IGksIHg7CiAKIAkJeCA9IDEwOwpAQCAtMzM2LDExICszMzYsMTEgQEAKIAlyZXR1cm4gZHJhbV9zaXplOwogfQogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0gKHZvaWQpCiB7Ci0JdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgQ0ZHX01FTVRFU1RfU1RBUlQ7Ci0JdWludCAqcGVuZCA9ICh1aW50ICopIENGR19NRU1URVNUX0VORDsKKwl1aW50ICpwc3RhcnQgPSAodWludCAqKSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQ7CisJdWludCAqcGVuZCA9ICh1aW50ICopIENPTkZJR19TWVNfTUVNVEVTVF9FTkQ7CiAJdWludCAqcDsKIAogCXByaW50ZiAoIlNEUkFNIHRlc3QgcGhhc2UgMTpcbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTg1eHgvdGxiLmMgYi9ib2FyZC90cWMvdHFtODV4eC90bGIuYwppbmRleCAzODA0NDhhLi4xNmIxMDJkIDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODV4eC90bGIuYworKysgYi9ib2FyZC90cWMvdHFtODV4eC90bGIuYwpAQCAtMjgsMTkgKzI4LDE5IEBACiAKIHN0cnVjdCBmc2xfZV90bGJfZW50cnkgdGxiX3RhYmxlW10gPSB7CiAJLyogVExCIDAgLSBmb3IgdGVtcCBzdGFjayBpbiBjYWNoZSAqLwotCVNFVF9UTEJfRU5UUlkgKDAsIENGR19JTklUX1JBTV9BRERSLCBDRkdfSU5JVF9SQU1fQUREUiwKKwlTRVRfVExCX0VOVFJZICgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgMCwKIAkJICAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSAoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKLQkJICAgICAgIENGR19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSAoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgNCAqIDEwMjQsCisJCSAgICAgICBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA0ICogMTAyNCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgMCwKIAkJICAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSAoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKLQkJICAgICAgIENGR19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJU0VUX1RMQl9FTlRSWSAoMCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgOCAqIDEwMjQsCisJCSAgICAgICBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA4ICogMTAyNCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgMCwKIAkJICAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl80SywgMCksCi0JU0VUX1RMQl9FTlRSWSAoMCwgQ0ZHX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCi0JCSAgICAgICBDRkdfSU5JVF9SQU1fQUREUiArIDEyICogMTAyNCwKKwlTRVRfVExCX0VOVFJZICgwLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCisJCSAgICAgICBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxMiAqIDEwMjQsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIDAsCiAJCSAgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfNEssIDApLAogCkBAIC01MCwxMSArNTAsMTEgQEAKIAkgKiAweGY4MDAwMDAwCTEyOE0JRkxBU0gKIAkgKiBPdXQgb2YgcmVzZXQgdGhpcyBlbnRyeSBpcyBvbmx5IDRLLgogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgMSwgQk9PS0VfUEFHRVNaXzY0TSwgMSksCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDAwMDAsCi0JCSAgICAgICBDRkdfRkxBU0hfQkFTRSArIDB4NDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDAwMDAsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIE1BUzJfSSB8IE1BUzJfRywKIAkJICAgICAgIDAsIDAsIEJPT0tFX1BBR0VTWl82NE0sIDEpLAogCkBAIC02Miw3ICs2Miw3IEBACiAJICogVExCIDI6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ODAwMDAwMDAJMjU2TQlQQ0kxIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMsIENGR19QQ0kxX01FTV9QSFlTLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTcwLDggKzcwLDggQEAKIAkgKiBUTEIgMzoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg5MDAwMDAwMAkyNTZNCVBDSTEgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTgwLDcgKzgwLDcgQEAKIAkgKiBUTEIgNDoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhjMDAwMDAwMAkyNTZNCVBDSSBleHByZXNzIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1BDSUUxX01FTV9CQVNFLCBDRkdfUENJRTFfTUVNX0JBU0UsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRSwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC04OCw4ICs4OCw4IEBACiAJICogVExCIDU6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ZDAwMDAwMDAJMjU2TQlQQ0kgZXhwcmVzcyBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfUENJRTFfTUVNX0JBU0UgKyAweDEwMDAwMDAwLAotCQkgICAgICAgQ0ZHX1BDSUUxX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwkJICAgICAgIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAjZWxzZSAvKiAhQ09ORklHX1BDSUUgKi8KQEAgLTk3LDcgKzk3LDcgQEAKIAkgKiBUTEIgNDoJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhjMDAwMDAwMAkyNTZNCVJhcGlkIElPIE1FTSBGaXJzdCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1JJT19NRU1fQkFTRSwgQ0ZHX1JJT19NRU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIE1BUzJfSSB8IE1BUzJfRywKIAkJICAgICAgIDAsIDQsIEJPT0tFX1BBR0VTWl8yNTZNLCAxKSwKIApAQCAtMTA1LDggKzEwNSw4IEBACiAJICogVExCIDU6CTI1Nk0JTm9uLWNhY2hlYWJsZSwgZ3VhcmRlZAogCSAqIDB4ZDAwMDAwMDAJMjU2TQlSYXBpZCBJTyBNRU0gU2Vjb25kIGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKLQkJICAgICAgIENGR19SSU9fTUVNX0JBU0UgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKKwkJICAgICAgIENPTkZJR19TWVNfUklPX01FTV9CQVNFICsgMHgxMDAwMDAwMCwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNSwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogI2VuZGlmIC8qIENPTkZJR19QQ0lFICovCkBAIC0xMTcsNyArMTE3LDcgQEAKIAkgKiAweGUyMDAwMDAwCSAxNk0JUENJMSBJTwogCSAqIDB4ZTMwMDAwMDAJIDE2TQlDQU4gYW5kIE5BTkQgRmxhc2gKIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtMTI4LDEyICsxMjgsMTIgQEAKIAkgKiBNYWtlIHN1cmUgdGhlIFRMQiBjb3VudCBhdCB0aGUgdG9wIG9mIHRoaXMgdGFibGUgaXMgY29ycmVjdC4KIAkgKiBMaWtlbHkgaXQgbmVlZHMgdG8gYmUgaW5jcmVhc2VkIGJ5IHR3byBmb3IgdGhlc2UgZW50cmllcy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfRERSX1NEUkFNX0JBU0UsIENGR19ERFJfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA3LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLAotCQkgICAgICAgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKKwkJICAgICAgIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA4LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTE0Miw3ICsxNDIsNyBAQAogCSAqIFRMQiA5OgkgMTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGVmMDAwMDAwCSAxNk0JUENJIGV4cHJlc3MgSU8KIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfUENJRTFfSU9fQkFTRSwgQ0ZHX1BDSUUxX0lPX0JBU0UsCisJU0VUX1RMQl9FTlRSWSAoMSwgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLCBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UsCiAJCSAgICAgICBNQVMzX1NYIHwgTUFTM19TVyB8IE1BUzNfU1IsIE1BUzJfSSB8IE1BUzJfRywKIAkJICAgICAgIDAsIDksIEJPT0tFX1BBR0VTWl8xNk0sIDEpLAogI2VuZGlmIC8qIENPTkZJR19QQ0lFICovCkBAIC0xNTQsMTkgKzE1NCwxOSBAQAogCSAqIDB4YzAwMDAwMDAJICAxRwlGTEFTSAogCSAqIE91dCBvZiByZXNldCB0aGlzIGVudHJ5IGlzIG9ubHkgNEsuCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCAzLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0ZMQVNIX0JBU0UgKyAweDEwMDAwMDAwLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MTAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCAyLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0ZMQVNIX0JBU0UgKyAweDIwMDAwMDAwLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyAweDIwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MjAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDIwMDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCAxLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX0ZMQVNIX0JBU0UgKyAweDMwMDAwMDAwLAotCQkgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgKyAweDMwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MzAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDMwMDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCAwLCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTE3NCw3ICsxNzQsNyBAQAogCSAqIFRMQiA0OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweDgwMDAwMDAwCTI1Nk0JUENJMSBNRU0gRmlyc3QgaGFsZgogCSAqLwotCVNFVF9UTEJfRU5UUlkgKDEsIENGR19QQ0kxX01FTV9QSFlTLCBDRkdfUENJMV9NRU1fUEhZUywKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUywKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNCwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC0xODIsOCArMTgyLDggQEAKIAkgKiBUTEIgNToJMjU2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHg5MDAwMDAwMAkyNTZNCVBDSTEgTUVNIFNlY29uZCBoYWxmCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyArIDB4MTAwMDAwMDAsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgKyAweDEwMDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA1LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTE5Miw3ICsxOTIsNyBAQAogCSAqIFRMQiA2OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGMwMDAwMDAwCTI1Nk0JUENJIGV4cHJlc3MgTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfUENJRTFfTUVNX0JBU0UsIENGR19QQ0lFMV9NRU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLCBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA2LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAjZWxzZSAvKiAhQ09ORklHX1BDSUUgKi8KQEAgLTIwMCw3ICsyMDAsNyBAQAogCSAqIFRMQiA2OgkyNTZNCU5vbi1jYWNoZWFibGUsIGd1YXJkZWQKIAkgKiAweGIwMDAwMDAwCTI1Nk0JUmFwaWQgSU8gTUVNIEZpcnN0IGhhbGYKIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfUklPX01FTV9CQVNFLCBDRkdfUklPX01FTV9CQVNFLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfUklPX01FTV9CQVNFLCBDT05GSUdfU1lTX1JJT19NRU1fQkFTRSwKIAkJICAgICAgIE1BUzNfU1ggfCBNQVMzX1NXIHwgTUFTM19TUiwgTUFTMl9JIHwgTUFTMl9HLAogCQkgICAgICAgMCwgNiwgQk9PS0VfUEFHRVNaXzI1Nk0sIDEpLAogCkBAIC0yMTIsNyArMjEyLDcgQEAKIAkgKiAweGEyMDAwMDAwCSAxNk0JUENJMSBJTwogCSAqIDB4YTMwMDAwMDAJIDE2TQlDQU4gYW5kIE5BTkQgRmxhc2gKIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0NDU1JCQVIsIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA3LCBCT09LRV9QQUdFU1pfNjRNLCAxKSwKIApAQCAtMjIzLDEyICsyMjMsMTIgQEAKIAkgKiBNYWtlIHN1cmUgdGhlIFRMQiBjb3VudCBhdCB0aGUgdG9wIG9mIHRoaXMgdGFibGUgaXMgY29ycmVjdC4KIAkgKiBMaWtlbHkgaXQgbmVlZHMgdG8gYmUgaW5jcmVhc2VkIGJ5IHR3byBmb3IgdGhlc2UgZW50cmllcy4KIAkgKi8KLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfRERSX1NEUkFNX0JBU0UsIENGR19ERFJfU0RSQU1fQkFTRSwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA4LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKLQlTRVRfVExCX0VOVFJZICgxLCBDRkdfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLAotCQkgICAgICAgQ0ZHX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKKwlTRVRfVExCX0VOVFJZICgxLCBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCwKKwkJICAgICAgIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCA5LCBCT09LRV9QQUdFU1pfMjU2TSwgMSksCiAKQEAgLTIzNyw3ICsyMzcsNyBAQAogCSAqIFRMQiAxMDoJIDE2TQlOb24tY2FjaGVhYmxlLCBndWFyZGVkCiAJICogMHhhZjAwMDAwMAkgMTZNCVBDSSBleHByZXNzIElPCiAJICovCi0JU0VUX1RMQl9FTlRSWSAoMSwgQ0ZHX1BDSUUxX0lPX0JBU0UsIENGR19QQ0lFMV9JT19CQVNFLAorCVNFVF9UTEJfRU5UUlkgKDEsIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRSwgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFLAogCQkgICAgICAgTUFTM19TWCB8IE1BUzNfU1cgfCBNQVMzX1NSLCBNQVMyX0kgfCBNQVMyX0csCiAJCSAgICAgICAwLCAxMCwgQk9PS0VfUEFHRVNaXzE2TSwgMSksCiAjZW5kaWYgLyogQ09ORklHX1BDSUUgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3RxYy90cW04NXh4L3RxbTg1eHguYyBiL2JvYXJkL3RxYy90cW04NXh4L3RxbTg1eHguYwppbmRleCA1MzE0ZDMzLi5mNjlkZTk1IDEwMDY0NAotLS0gYS9ib2FyZC90cWMvdHFtODV4eC90cW04NXh4LmMKKysrIGIvYm9hcmQvdHFjL3RxbTg1eHgvdHFtODV4eC5jCkBAIC0yNjksNyArMjY5LDcgQEAKIAogaW50IG1pc2NfaW5pdF9yICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKm1lbWN0bCA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICptZW1jdGwgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCiAJLyoKIAkgKiBBZGp1c3QgZmxhc2ggc3RhcnQgYW5kIG9mZnNldCB0byBkZXRlY3RlZCB2YWx1ZXMKQEAgLTI4Miw5ICsyODIsOSBAQAogCSAqLwogCWlmIChmbGFzaF9pbmZvWzBdLnNpemUgPiAwKSB7CiAJCW1lbWN0bC0+b3IxID0gKCgtZmxhc2hfaW5mb1swXS5zaXplKSAmIDB4ZmZmZjgwMDApIHwKLQkJCShDRkdfT1IxX1BSRUxJTSAmIDB4MDAwMDdmZmYpOworCQkJKENPTkZJR19TWVNfT1IxX1BSRUxJTSAmIDB4MDAwMDdmZmYpOwogCQltZW1jdGwtPmJyMSA9IGdkLT5iZC0+YmlfZmxhc2hzdGFydCB8Ci0JCQkoQ0ZHX0JSMV9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKKwkJCShDT05GSUdfU1lTX0JSMV9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKIAkJLyoKIAkJICogUmUtY2hlY2sgdG8gZ2V0IGNvcnJlY3QgYmFzZSBhZGRyZXNzIGZvciBiYW5rIDEKIAkJICovCkBAIC0yOTgsOSArMjk4LDkgQEAKIAkgKiAgSWYgYmFuayAxIGlzIGVxdWlwcGVkLCBiYW5rIDAgaXMgbWFwcGVkIGFmdGVyIGJhbmsgMQogCSAqLwogCW1lbWN0bC0+b3IwID0gKCgtZmxhc2hfaW5mb1sxXS5zaXplKSAmIDB4ZmZmZjgwMDApIHwKLQkJKENGR19PUjBfUFJFTElNICYgMHgwMDAwN2ZmZik7CisJCShDT05GSUdfU1lTX09SMF9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKIAltZW1jdGwtPmJyMCA9IChnZC0+YmQtPmJpX2ZsYXNoc3RhcnQgKyBmbGFzaF9pbmZvWzBdLnNpemUpIHwKLQkJKENGR19CUjBfUFJFTElNICYgMHgwMDAwN2ZmZik7CisJCShDT05GSUdfU1lTX0JSMF9QUkVMSU0gJiAweDAwMDA3ZmZmKTsKIAkvKgogCSAqIFJlLWNoZWNrIHRvIGdldCBjb3JyZWN0IGJhc2UgYWRkcmVzcyBmb3IgYmFuayAwCiAJICovCkBAIC0zMTEsMjYgKzMxMSwyNiBAQAogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9DTEVBUiwKIAkJICAgICAgIGdkLT5iZC0+YmlfZmxhc2hzdGFydCwgMHhmZmZmZmZmZiwKLQkJICAgICAgICZmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CisJCSAgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKIAogCS8qIE1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAotCQkgICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCSAgICAgICAmZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKIAogCS8qIEVudmlyb25tZW50IHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCSAgICAgICBDT05GSUdfRU5WX0FERFIsCiAJCSAgICAgICBDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSAtIDEsCi0JCSAgICAgICAmZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOworCQkgICAgICAgJmZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgLSAxXSk7CiAKICNpZmRlZiBDT05GSUdfRU5WX0FERFJfUkVEVU5ECiAJLyogUmVkdW5kYW50IGVudmlyb25tZW50IHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCiAJCSAgICAgICBDT05GSUdfRU5WX0FERFJfUkVEVU5ELAogCQkgICAgICAgQ09ORklHX0VOVl9BRERSX1JFRFVORCArIENPTkZJR19FTlZfU0laRV9SRURVTkQgLSAxLAotCQkgICAgICAgJmZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDFdKTsKKwkJICAgICAgICZmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTIC0gMV0pOwogI2VuZGlmCiAKIAlyZXR1cm4gMDsKQEAgLTM0Miw3ICszNDIsNyBAQAogICovCiBzdGF0aWMgdm9pZCB1cG1jX3dyaXRlICh1X2NoYXIgYWRkciwgdWludCB2YWwpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAlvdXRfYmUzMiAoJmxiYy0+bWRyLCB2YWwpOwogCkBAIC0zNTAsNyArMzUwLDcgQEAKIAkJCU14TVJfT1BfV0FSUiB8IChhZGRyICYgTXhNUl9NQURfTVNLKSk7CiAKIAkvKiBkdW1teSBhY2Nlc3MgdG8gcGVyZm9ybSB3cml0ZSAqLwotCW91dF84ICgodm9pZCBfX2lvbWVtICopQ0ZHX0NBTl9CQVNFLCAwKTsKKwlvdXRfOCAoKHZvaWQgX19pb21lbSAqKUNPTkZJR19TWVNfQ0FOX0JBU0UsIDApOwogCiAJLyogbm9ybWFsIG9wZXJhdGlvbiAqLwogCWNscmJpdHNfYmUzMigmbGJjLT5tY21yLCBNeE1SX09QX1dBUlIpOwpAQCAtMzU5LDcgKzM1OSw3IEBACiAKIHVpbnQgZ2V0X2xiY19jbG9jayAodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0xCQ19BRERSKTsKIAlzeXNfaW5mb190IHN5c19pbmZvOwogCXVsb25nIGNsa2RpdiA9IGxiYy0+bGNyciAmIDB4MGY7CiAKQEAgLTM3Niw3ICszNzYsNyBAQAogCQlyZXR1cm4gc3lzX2luZm8uZnJlcVN5c3RlbUJ1cyAvIGNsa2RpdjsKIAl9CiAKLQlwdXRzKCJJbnZhbGlkIGNsb2NrIGRpdmlkZXIgdmFsdWUgaW4gQ0ZHX0xCQ19MQ1JSXG4iKTsKKwlwdXRzKCJJbnZhbGlkIGNsb2NrIGRpdmlkZXIgdmFsdWUgaW4gQ09ORklHX1NZU19MQkNfTENSUlxuIik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM4Niw4ICszODYsOCBAQAogICovCiB2b2lkIGxvY2FsX2J1c19pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbGJjID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfTEJDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAJdWludCBsYmNfbWh6ID0gZ2V0X2xiY19jbG9jayAoKSAgLyAxMDAwMDAwOwogCiAjaWZkZWYgQ09ORklHX01QQzg1NDgKQEAgLTQxOCw3ICs0MTgsNyBAQAogCQlndXItPmxiaXVpcGxsZGNyMSA9IGR1bW15OwogCX0KIAotCWxjcnIgPSBDRkdfTEJDX0xDUlI7CisJbGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlI7CiAKIAkvKgogCSAqIExvY2FsIEJ1cyBDbG9jayA+IDgzLjMgTUh6LiBBY2NvcmRpbmcgdG8gdGltaW5nCkBAIC00NjQsMTIgKzQ2NCwxMiBAQAogCSAqLwogCiAJaWYgKGxiY19taHogPCA2NikgewotCQlsYmMtPmxjcnIgPSBDRkdfTEJDX0xDUlIgfCBMQ1JSX0RCWVA7CS8qIERMTCBCeXBhc3MgKi8KKwkJbGJjLT5sY3JyID0gQ09ORklHX1NZU19MQkNfTENSUiB8IExDUlJfREJZUDsJLyogRExMIEJ5cGFzcyAqLwogCQlsYmMtPmx0ZWRyID0gTFRFRFJfQk1EIHwgTFRFRFJfUEFSRCB8IExURURSX1dQRCB8IExURURSX1dBUkEgfAogCQkJICAgICBMVEVEUl9SQVdBIHwgTFRFRFJfQ1NEOwkvKiBEaXNhYmxlIGFsbCBlcnJvciBjaGVja2luZyAqLwogCiAJfSBlbHNlIGlmIChsYmNfbWh6ID49IDEzMykgewotCQlsYmMtPmxjcnIgPSBDRkdfTEJDX0xDUlIgJiAofkxDUlJfREJZUCk7CS8qIERMTCBFbmFibGVkICovCisJCWxiYy0+bGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlIgJiAofkxDUlJfREJZUCk7CS8qIERMTCBFbmFibGVkICovCiAKIAl9IGVsc2UgewogCQkvKgpAQCAtNDg0LDcgKzQ4NCw3IEBACiAJCQlsYmMtPmxjcnIgPSAweDEwMDAwMDA0OwogCQl9CiAKLQkJbGJjLT5sY3JyID0gQ0ZHX0xCQ19MQ1JSICYgKH5MQ1JSX0RCWVApOwkvKiBETEwgRW5hYmxlZCAqLworCQlsYmMtPmxjcnIgPSBDT05GSUdfU1lTX0xCQ19MQ1JSICYgKH5MQ1JSX0RCWVApOwkvKiBETEwgRW5hYmxlZCAqLwogCQl1ZGVsYXkgKDIwMCk7CiAKIAkJLyoKQEAgLTUwMywxMCArNTAzLDEwIEBACiAJICogc2V0IGlmIExvY2FsIEJ1cyBDbG9jayBpcyA+IDgzIE1Iei4KIAkgKi8KIAlpZiAobGJjX21oeiA+IDgzKQotCQlvdXRfYmUzMiAoJmxiYy0+b3IyLCBDRkdfT1IyX0NBTiB8IE9SX1VQTV9FQUQpOworCQlvdXRfYmUzMiAoJmxiYy0+b3IyLCBDT05GSUdfU1lTX09SMl9DQU4gfCBPUl9VUE1fRUFEKTsKIAllbHNlCi0JCW91dF9iZTMyICgmbGJjLT5vcjIsIENGR19PUjJfQ0FOKTsKLQlvdXRfYmUzMiAoJmxiYy0+YnIyLCBDRkdfQlIyX0NBTik7CisJCW91dF9iZTMyICgmbGJjLT5vcjIsIENPTkZJR19TWVNfT1IyX0NBTik7CisJb3V0X2JlMzIgKCZsYmMtPmJyMiwgQ09ORklHX1NZU19CUjJfQ0FOKTsKIAogCS8qIExHUEw0IGlzIFVQV0FJVCAqLwogCW91dF9iZTMyKCZsYmMtPm1jbXIsIE14TVJfRFN4XzNfQ1lDTCB8IE14TVJfR1BMX3g0RElTIHwgTXhNUl9XTEZ4XzNYKTsKQEAgLTU0OCwxMCArNTQ4LDEwIEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3BjaTEodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgfHwgZGVmaW5lZChDT05GSUdfUENJMSkKIAl1aW50IGhvc3RfYWdlbnQgPSAoZ3VyLT5wb3JibXNyICYgTVBDODV4eF9QT1JCTVNSX0hBKSA+PiAxNjsKLQl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopQ0ZHX1BDSTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopQ09ORklHX1NZU19QQ0kxX0FERFI7CiAJZXh0ZXJuIHZvaWQgZnNsX3BjaV9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSk7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlID0gJnBjaTFfaG9zZTsKIApAQCAtNTc5LDI0ICs1NzksMjQgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uIChob3NlLT5yZWdpb25zICsgMCwKLQkJCQlDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCQlDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkJUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAogCQkvKiBvdXRib3VuZCBtZW1vcnkgKi8KIAkJcGNpX3NldF9yZWdpb24gKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkJCUNGR19QQ0kxX01FTV9CQVNFLAotCQkJCUNGR19QQ0kxX01FTV9QSFlTLAotCQkJCUNGR19QQ0kxX01FTV9TSVpFLAorCQkJCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRSwKKwkJCQlDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFLAogCQkJCVBDSV9SRUdJT05fTUVNKTsKIAogCQkvKiBvdXRib3VuZCBpbyAqLwogCQlwY2lfc2V0X3JlZ2lvbiAoaG9zZS0+cmVnaW9ucyArIDIsCi0JCQkJQ0ZHX1BDSTFfSU9fQkFTRSwKLQkJCQlDRkdfUENJMV9JT19QSFlTLAotCQkJCUNGR19QQ0kxX0lPX1NJWkUsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUsCiAJCQkJUENJX1JFR0lPTl9JTyk7CiAKIAkJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKQEAgLTYzNiwxMSArNjM2LDExIEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3BjaWUxKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKICNpZmRlZiBDT05GSUdfUENJRTEKIAl1aW50IGlvX3NlbCA9IChndXItPnBvcmRldnNyICYgTVBDODV4eF9QT1JERVZTUl9JT19TRUwpID4+IDE5OwogCXVpbnQgaG9zdF9hZ2VudCA9IChndXItPnBvcmJtc3IgJiBNUEM4NXh4X1BPUkJNU1JfSEEpID4+IDE2OwotCXZvbGF0aWxlIGNjc3JfZnNsX3BjaV90ICpwY2kgPSAoY2Nzcl9mc2xfcGNpX3QgKilDRkdfUENJRTFfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2ZzbF9wY2lfdCAqcGNpID0gKGNjc3JfZnNsX3BjaV90ICopQ09ORklHX1NZU19QQ0lFMV9BRERSOwogCWV4dGVybiB2b2lkIGZzbF9wY2lfaW5pdChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UpOwogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9ICZwY2llMV9ob3NlOwogCWludCBwY2llX2VwID0gIChob3N0X2FnZW50ID09IDApIHx8IChob3N0X2FnZW50ID09IDIgKSB8fApAQCAtNjYxLDIzICs2NjEsMjMgQEAKIAogCQkvKiBpbmJvdW5kICovCiAJCXBjaV9zZXRfcmVnaW9uIChob3NlLT5yZWdpb25zICsgMCwKLQkJCQlDRkdfUENJX01FTU9SWV9CVVMsCi0JCQkJQ0ZHX1BDSV9NRU1PUllfUEhZUywKLQkJCQlDRkdfUENJX01FTU9SWV9TSVpFLAorCQkJCUNPTkZJR19TWVNfUENJX01FTU9SWV9CVVMsCisJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUsCiAJCQkJUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkJLyogb3V0Ym91bmQgbWVtb3J5ICovCiAJCXBjaV9zZXRfcmVnaW9uIChob3NlLT5yZWdpb25zICsgMSwKLQkJCQlDRkdfUENJRTFfTUVNX0JBU0UsCi0JCQkJQ0ZHX1BDSUUxX01FTV9QSFlTLAotCQkJCUNGR19QQ0lFMV9NRU1fU0laRSwKKwkJCQlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFLAorCQkJCUNPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRSwKIAkJCQlQQ0lfUkVHSU9OX01FTSk7CiAKIAkJLyogb3V0Ym91bmQgaW8gKi8KIAkJcGNpX3NldF9yZWdpb24gKGhvc2UtPnJlZ2lvbnMgKyAyLAotCQkJCUNGR19QQ0lFMV9JT19CQVNFLAotCQkJCUNGR19QQ0lFMV9JT19QSFlTLAotCQkJCUNGR19QQ0lFMV9JT19TSVpFLAorCQkJCUNPTkZJR19TWVNfUENJRTFfSU9fQkFTRSwKKwkJCQlDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMsCisJCQkJQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFLAogCQkJCVBDSV9SRUdJT05fSU8pOwogCiAJCWhvc2UtPnJlZ2lvbl9jb3VudCA9IDM7CmRpZmYgLS1naXQgYS9ib2FyZC90cWMvdHFtOHh4L2xvYWRfc2VybnVtX2V0aGFkZHIuYyBiL2JvYXJkL3RxYy90cW04eHgvbG9hZF9zZXJudW1fZXRoYWRkci5jCmluZGV4IDE0M2YzNjguLmQyNjk5MDIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RxYy90cW04eHgvbG9hZF9zZXJudW1fZXRoYWRkci5jCisrKyBiL2JvYXJkL3RxYy90cW04eHgvbG9hZF9zZXJudW1fZXRoYWRkci5jCkBAIC01MiwyMSArNTIsMjEgQEAKIHZvaWQgbG9hZF9zZXJudW1fZXRoYWRkciAodm9pZCkKIHsKIAl1bnNpZ25lZCBjaGFyICpod2k7Ci0JdW5zaWduZWQgY2hhciAgc2VyaWFsIFtDRkdfSFdJTkZPX1NJWkVdOwotCXVuc2lnbmVkIGNoYXIgIGV0aGFkZHJbQ0ZHX0hXSU5GT19TSVpFXTsKKwl1bnNpZ25lZCBjaGFyICBzZXJpYWwgW0NPTkZJR19TWVNfSFdJTkZPX1NJWkVdOworCXVuc2lnbmVkIGNoYXIgIGV0aGFkZHJbQ09ORklHX1NZU19IV0lORk9fU0laRV07CiAJdW5zaWduZWQgc2hvcnQgaWgsIGlzLCBpZSwgcGFydDsKIAotCWh3aSA9ICh1bnNpZ25lZCBjaGFyICopKENGR19GTEFTSF9CQVNFICsgQ0ZHX0hXSU5GT19PRkZTRVQpOworCWh3aSA9ICh1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVCk7CiAJaWggPSBpcyA9IGllID0gMDsKIAotCWlmICgqKCh1bnNpZ25lZCBsb25nICopaHdpKSAhPSAodW5zaWduZWQgbG9uZylDRkdfSFdJTkZPX01BR0lDKSB7CisJaWYgKCooKHVuc2lnbmVkIGxvbmcgKilod2kpICE9ICh1bnNpZ25lZCBsb25nKUNPTkZJR19TWVNfSFdJTkZPX01BR0lDKSB7CiAJCXJldHVybjsKIAl9CiAKIAlwYXJ0ID0gMTsKIAogCS8qIGNvcHkgc2VyaWFsICMgLyBNQUMgYWRkcmVzcyAqLwotCXdoaWxlICgoaHdpW2loXSAhPSAnXDAnKSAmJiAoaWggPCBDRkdfSFdJTkZPX1NJWkUpKSB7CisJd2hpbGUgKChod2lbaWhdICE9ICdcMCcpICYmIChpaCA8IENPTkZJR19TWVNfSFdJTkZPX1NJWkUpKSB7CiAJCWlmIChod2lbaWhdIDwgJyAnIHx8IGh3aVtpaF0gPiAnficpIHsgLyogQVNDSUkgc3RyaW5ncyEgKi8KIAkJCXJldHVybjsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvdHFjL3RxbTh4eC90cW04eHguYyBiL2JvYXJkL3RxYy90cW04eHgvdHFtOHh4LmMKaW5kZXggNTUzN2QwNC4uOWEwZjNhMCAxMDA2NDQKLS0tIGEvYm9hcmQvdHFjL3RxbTh4eC90cW04eHguYworKysgYi9ib2FyZC90cWMvdHFtOHh4L3RxbTh4eC5jCkBAIC0xMzksNyArMTM5LDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCWxvbmcgaW50IHNpemU4LCBzaXplOSwgc2l6ZTEwOwogCWxvbmcgaW50IHNpemVfYjAgPSAwOwpAQCAtMTU0LDcgKzE1NCw3IEBACiAJICogd2l0aCB0d28gU0RSQU0gYmFua3Mgb3IgZm91ciBjeWNsZXMgZXZlcnkgMzEuMiB1cyB3aXRoIG9uZQogCSAqIGJhbmsuIEl0IHdpbGwgYmUgYWRqdXN0ZWQgYWZ0ZXIgbWVtb3J5IHNpemluZy4KIAkgKi8KLQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzhLOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFJfMkJLXzhLOwogCiAJLyoKIAkgKiBUaGUgZm9sbG93aW5nIHZhbHVlIGlzIHVzZWQgYXMgYW4gYWRkcmVzcyAoaS5lLiBvcGNvZGUpIGZvcgpAQCAtMTc2LDE5ICsxNzYsMTkgQEAKIAkgKiBwcmVsaW1pbmFyeSBhZGRyZXNzZXMgLSB0aGVzZSBoYXZlIHRvIGJlIG1vZGlmaWVkIGFmdGVyIHRoZQogCSAqIFNEUkFNIHNpemUgaGFzIGJlZW4gZGV0ZXJtaW5lZC4KIAkgKi8KLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjIgPSBDT05GSUdfU1lTX09SMl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgogCWlmICgoYm9hcmRfdHlwZSAhPSAnTCcpICYmCiAJICAgIChib2FyZF90eXBlICE9ICdNJykgJiYKIAkgICAgKGJvYXJkX3R5cGUgIT0gJ0QnKSApIHsJLyogb25seSBvbmUgU0RSQU0gYmFuayBvbiBMLCBNIGFuZCBEIG1vZHVsZXMgKi8KLQkJbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisJCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAJfQogI2VuZGlmCQkJCQkJCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKLQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzhDT0wgJiAofihNQU1SX1BUQUUpKTsJLyogbm8gcmVmcmVzaCB5ZXQgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl84Q09MICYgKH4oTUFNUl9QVEFFKSk7CS8qIG5vIHJlZnJlc2ggeWV0ICovCiAKIAl1ZGVsYXkgKDIwMCk7CiAKQEAgLTIxOSw3ICsyMTksNyBAQAogCSAqCiAJICogdHJ5IDggY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOCA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOENPTCwgU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTggPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl84Q09MLCBTRFJBTV9CQVNFMl9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKIAlkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA4IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemU4ID4+IDIwKTsKIAogCXVkZWxheSAoMTAwMCk7CkBAIC0yMjcsMzAgKzIyNywzMCBAQAogCS8qCiAJICogdHJ5IDkgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplOSA9IGRyYW1fc2l6ZSAoQ0ZHX01BTVJfOUNPTCwgU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CisJc2l6ZTkgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl85Q09MLCBTRFJBTV9CQVNFMl9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKIAlkZWJ1ZyAoIlNEUkFNIEJhbmsgMCBpbiA5IGNvbHVtbiBtb2RlOiAlbGQgTUJcbiIsIHNpemU5ID4+IDIwKTsKIAogCXVkZWxheSgxMDAwKTsKIAotI2lmIGRlZmluZWQoQ0ZHX01BTVJfMTBDT0wpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX01BTVJfMTBDT0wpCiAJLyoKIAkgKiB0cnkgMTAgY29sdW1uIG1vZGUKIAkgKi8KLQlzaXplMTAgPSBkcmFtX3NpemUgKENGR19NQU1SXzEwQ09MLCBTRFJBTV9CQVNFMl9QUkVMSU0sIFNEUkFNX01BWF9TSVpFKTsKKwlzaXplMTAgPSBkcmFtX3NpemUgKENPTkZJR19TWVNfTUFNUl8xMENPTCwgU0RSQU1fQkFTRTJfUFJFTElNLCBTRFJBTV9NQVhfU0laRSk7CiAJZGVidWcgKCJTRFJBTSBCYW5rIDAgaW4gMTAgY29sdW1uIG1vZGU6ICVsZCBNQlxuIiwgc2l6ZTEwID4+IDIwKTsKICNlbHNlCiAJc2l6ZTEwID0gMDsKLSNlbmRpZiAvKiBDRkdfTUFNUl8xMENPTCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTUFNUl8xMENPTCAqLwogCiAJaWYgKChzaXplOCA8IHNpemUxMCkgJiYgKHNpemU5IDwgc2l6ZTEwKSkgewogCQlzaXplX2IwID0gc2l6ZTEwOwogCX0gZWxzZSBpZiAoKHNpemU4IDwgc2l6ZTkpICYmIChzaXplMTAgPCBzaXplOSkpIHsKIAkJc2l6ZV9iMCA9IHNpemU5OwotCQltZW1jdGwtPm1lbWNfbWFtciA9IENGR19NQU1SXzlDT0w7CisJCW1lbWN0bC0+bWVtY19tYW1yID0gQ09ORklHX1NZU19NQU1SXzlDT0w7CiAJCXVkZWxheSAoNTAwKTsKIAl9IGVsc2UgewogCQlzaXplX2IwID0gc2l6ZTg7Ci0JCW1lbWN0bC0+bWVtY19tYW1yID0gQ0ZHX01BTVJfOENPTDsKKwkJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfOENPTDsKIAkJdWRlbGF5ICg1MDApOwogCX0KIAlkZWJ1ZyAoIlNEUkFNIEJhbmsgMDogJWxkIE1CXG4iLCBzaXplX2IwID4+IDIwKTsKQEAgLTI4MSw3ICsyODEsNyBAQAogCSAqLwogCWlmICgoc2l6ZV9iMCA8IDB4MDIwMDAwMDApICYmIChzaXplX2IxIDwgMHgwMjAwMDAwMCkpIHsKIAkJLyogcmVkdWNlIHRvIDE1LjYgdXMgKDYyLjQgdXMgLyBxdWFkKSAqLwotCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDRkdfTVBUUFJfMkJLXzRLOworCQltZW1jdGwtPm1lbWNfbXB0cHIgPSBDT05GSUdfU1lTX01QVFBSXzJCS180SzsKIAkJdWRlbGF5ICgxMDAwKTsKIAl9CiAKQEAgLTI5MCwxNSArMjkwLDE1IEBACiAJICovCiAJaWYgKHNpemVfYjEgPiBzaXplX2IwKSB7CS8qIFNEUkFNIEJhbmsgMSBpcyBiaWdnZXIgLSBtYXAgZmlyc3QgICAqLwogCi0JCW1lbWN0bC0+bWVtY19vcjMgPSAoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKLQkJbWVtY3RsLT5tZW1jX2JyMyA9IChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKKwkJbWVtY3RsLT5tZW1jX29yMyA9ICgoLXNpemVfYjEpICYgMHhGRkZGMDAwMCkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTTsKKwkJbWVtY3RsLT5tZW1jX2JyMyA9IChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CiAKIAkJaWYgKHNpemVfYjAgPiAwKSB7CiAJCQkvKgogCQkJICogUG9zaXRpb24gQmFuayAwIGltbWVkaWF0ZWx5IGFib3ZlIEJhbmsgMQogCQkJICovCi0JCQltZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENGR19PUl9USU1JTkdfU0RSQU07Ci0JCQltZW1jdGwtPm1lbWNfYnIyID0gKChDRkdfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKKwkJCW1lbWN0bC0+bWVtY19vcjIgPSAoKC1zaXplX2IwKSAmIDB4RkZGRjAwMDApIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU07CisJCQltZW1jdGwtPm1lbWNfYnIyID0gKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpCiAJCQkJCSAgICsgc2l6ZV9iMTsKIAkJfSBlbHNlIHsKIAkJCXVuc2lnbmVkIGxvbmcgcmVnOwpAQCAtMzEyLDI0ICszMTIsMjQgQEAKIAogCQkJLyogYWRqdXN0IHJlZnJlc2ggcmF0ZSBkZXBlbmRpbmcgb24gU0RSQU0gdHlwZSwgb25lIGJhbmsgKi8KIAkJCXJlZyA9IG1lbWN0bC0+bWVtY19tcHRwcjsKLQkJCXJlZyA+Pj0gMTsJCQkvKiByZWR1Y2UgdG8gQ0ZHX01QVFBSXzFCS184SyAvIF80SyAqLworCQkJcmVnID4+PSAxOwkJCS8qIHJlZHVjZSB0byBDT05GSUdfU1lTX01QVFBSXzFCS184SyAvIF80SyAqLwogCQkJbWVtY3RsLT5tZW1jX21wdHByID0gcmVnOwogCQl9CiAKIAl9IGVsc2UgewkJCQkJLyogU0RSQU0gQmFuayAwIGlzIGJpZ2dlciAtIG1hcCBmaXJzdCAgICovCiAKLQkJbWVtY3RsLT5tZW1jX29yMiA9ICgoLXNpemVfYjApICYgMHhGRkZGMDAwMCkgfCBDRkdfT1JfVElNSU5HX1NEUkFNOworCQltZW1jdGwtPm1lbWNfb3IyID0gKCgtc2l6ZV9iMCkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCQltZW1jdGwtPm1lbWNfYnIyID0KLQkJCQkoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1Y7CisJCQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVjsKIAogCQlpZiAoc2l6ZV9iMSA+IDApIHsKIAkJCS8qCiAJCQkgKiBQb3NpdGlvbiBCYW5rIDEgaW1tZWRpYXRlbHkgYWJvdmUgQmFuayAwCiAJCQkgKi8KIAkJCW1lbWN0bC0+bWVtY19vcjMgPQotCQkJCQkoKC1zaXplX2IxKSAmIDB4RkZGRjAwMDApIHwgQ0ZHX09SX1RJTUlOR19TRFJBTTsKKwkJCQkJKCgtc2l6ZV9iMSkgJiAweEZGRkYwMDAwKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNOwogCQkJbWVtY3RsLT5tZW1jX2JyMyA9Ci0JCQkJCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpCisJCQkJCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCQkJCQkrIHNpemVfYjA7CiAJCX0gZWxzZSB7CiAJCQl1bnNpZ25lZCBsb25nIHJlZzsKQEAgLTM0NSw3ICszNDUsNyBAQAogCiAJCQkvKiBhZGp1c3QgcmVmcmVzaCByYXRlIGRlcGVuZGluZyBvbiBTRFJBTSB0eXBlLCBvbmUgYmFuayAqLwogCQkJcmVnID0gbWVtY3RsLT5tZW1jX21wdHByOwotCQkJcmVnID4+PSAxOwkJCS8qIHJlZHVjZSB0byBDRkdfTVBUUFJfMUJLXzhLIC8gXzRLICovCisJCQlyZWcgPj49IDE7CQkJLyogcmVkdWNlIHRvIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLIC8gXzRLICovCiAJCQltZW1jdGwtPm1lbWNfbXB0cHIgPSByZWc7CiAJCX0KIAl9CkBAIC0zNTYsOCArMzU2LDggQEAKIAkvKiBVUE0gaW5pdGlhbGl6YXRpb24gZm9yIENBTiBAIENMS09VVCA8PSA2NiBNSHogKi8KIAogCS8qIEluaXRpYWxpemUgT1IzIC8gQlIzICovCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfQ0FOOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX0NBTjsKKwltZW1jdGwtPm1lbWNfb3IzID0gQ09ORklHX1NZU19PUjNfQ0FOOworCW1lbWN0bC0+bWVtY19icjMgPSBDT05GSUdfU1lTX0JSM19DQU47CiAKIAkvKiBJbml0aWFsaXplIE1CTVIgKi8KIAltZW1jdGwtPm1lbWNfbWJtciA9IE1CTVJfR1BMX0I0RElTOwkvKiBHUExfQjQgb3VwdXQgbGluZSBEaXNhYmxlICovCkBAIC0zOTcsOCArMzk3LDggQEAKIAogI2lmZGVmCUNPTkZJR19JU1AxMzYyX1VTQgogCS8qIEluaXRpYWxpemUgT1I1IC8gQlI1ICovCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjVfSVNQMTM2MjsKLQltZW1jdGwtPm1lbWNfYnI1ID0gQ0ZHX0JSNV9JU1AxMzYyOworCW1lbWN0bC0+bWVtY19vcjUgPSBDT05GSUdfU1lTX09SNV9JU1AxMzYyOworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNV9JU1AxMzYyOwogI2VuZGlmCQkJCQkJCS8qIENPTkZJR19JU1AxMzYyX1VTQiAqLwogCXJldHVybiAoc2l6ZV9iMCArIHNpemVfYjEpOwogfQpAQCAtNDE1LDcgKzQxNSw3IEBACiAKIHN0YXRpYyBsb25nIGludCBkcmFtX3NpemUgKGxvbmcgaW50IG1hbXJfdmFsdWUsIGxvbmcgaW50ICpiYXNlLCBsb25nIGludCBtYXhzaXplKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSBtYW1yX3ZhbHVlOwpAQCAtNDUxLDE0ICs0NTEsMTQgQEAKICNpZmRlZiBDT05GSUdfTUlTQ19JTklUX1IKIGludCBtaXNjX2luaXRfciAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAotI2lmZGVmCUNGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKKyNpZmRlZglDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWgogCWludCBzY3ksIHRybHgsIGZsYXNoX29yX3RpbWluZywgY2xrX2RpZmY7CiAKLQlzY3kgPSAoQ0ZHX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWiAmIE9SX1NDWV9NU0spID4+IDQ7Ci0JaWYgKENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogJiBPUl9UUkxYKSB7CisJc2N5ID0gKENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaICYgT1JfU0NZX01TSykgPj4gNDsKKwlpZiAoQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogJiBPUl9UUkxYKSB7CiAJCXRybHggPSBPUl9UUkxYOwogCQlzY3kgKj0gMjsKIAl9IGVsc2UgewpAQCAtNDk4LDI5ICs0OTgsMjkgQEAKIAkJc2N5ID0gMTsKIAogCWZsYXNoX29yX3RpbWluZyA9IChzY3kgPDwgNCkgfCB0cmx4IHwKLQkJKENGR19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFogJiB+KE9SX1RSTFggfCBPUl9TQ1lfTVNLKSk7CisJCShDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSF9BVF81ME1IWiAmIH4oT1JfVFJMWCB8IE9SX1NDWV9NU0spKTsKIAogCW1lbWN0bC0+bWVtY19vcjAgPQogCQlmbGFzaF9vcl90aW1pbmcgfCAoLWZsYXNoX2luZm9bMF0uc2l6ZSAmIE9SX0FNX01TSyk7CiAjZWxzZQogCW1lbWN0bC0+bWVtY19vcjAgPQotCQlDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1mbGFzaF9pbmZvWzBdLnNpemUgJiBPUl9BTV9NU0spOworCQlDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtZmxhc2hfaW5mb1swXS5zaXplICYgT1JfQU1fTVNLKTsKICNlbmRpZgotCW1lbWN0bC0+bWVtY19icjAgPSAoQ0ZHX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAlkZWJ1ZyAoIiMjIEJSMDogMHglMDh4ICAgIE9SMDogMHglMDh4XG4iLAogCSAgICAgICBtZW1jdGwtPm1lbWNfYnIwLCBtZW1jdGwtPm1lbWNfb3IwKTsKIAogCWlmIChmbGFzaF9pbmZvWzFdLnNpemUpIHsKLSNpZmRlZglDRkdfT1JfVElNSU5HX0ZMQVNIX0FUXzUwTUhaCisjaWZkZWYJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0hfQVRfNTBNSFoKIAkJbWVtY3RsLT5tZW1jX29yMSA9IGZsYXNoX29yX3RpbWluZyB8CiAJCQkoLWZsYXNoX2luZm9bMV0uc2l6ZSAmIDB4RkZGRjgwMDApOwogI2Vsc2UKLQkJbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUl9USU1JTkdfRkxBU0ggfAorCQltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfAogCQkJKC1mbGFzaF9pbmZvWzFdLnNpemUgJiAweEZGRkY4MDAwKTsKICNlbmRpZgogCQltZW1jdGwtPm1lbWNfYnIxID0KLQkJCSgoQ0ZHX0ZMQVNIX0JBU0UgKworCQkJKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKwogCQkJICBmbGFzaF9pbmZvWzBdLgogCQkJICBzaXplKSAmIEJSX0JBX01TSykgfCBCUl9NU19HUENNIHwgQlJfVjsKIApAQCAtNTU3LDcgKzU1Nyw3IEBACiAjIGlmZGVmIENPTkZJR19JREVfTEVECiB2b2lkIGlkZV9sZWQgKHVjaGFyIGxlZCwgdWNoYXIgc3RhdHVzKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKiBXZSBoYXZlIG9uZSBsZWQgZm9yIGJvdGggcGNtY2lhIHNsb3RzICovCiAJaWYgKHN0YXR1cykgewkJCQkvKiBsZWQgb24gKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3RyYWIvYXV0b191cGRhdGUuYyBiL2JvYXJkL3RyYWIvYXV0b191cGRhdGUuYwppbmRleCA0NjExMGNjLi45OTMyNzkwIDEwMDY0NAotLS0gYS9ib2FyZC90cmFiL2F1dG9fdXBkYXRlLmMKKysrIGIvYm9hcmQvdHJhYi9hdXRvX3VwZGF0ZS5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgogI2luY2x1ZGUgPHVzYi5oPgogCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogI2luY2x1ZGUgPGh1c2guaD4KICNlbmRpZgogCkBAIC00Miw4ICs0Miw4IEBACiAjZXJyb3IgIm11c3QgZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRSIKICNlbmRpZgogCi0jaWZuZGVmIENGR19IVVNIX1BBUlNFUgotI2Vycm9yICJtdXN0IGRlZmluZSBDRkdfSFVTSF9QQVJTRVIiCisjaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNlcnJvciAibXVzdCBkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUiIKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoQ09ORklHX0NNRF9GQVQpCmRpZmYgLS1naXQgYS9ib2FyZC90cmFiL2ZsYXNoLmMgYi9ib2FyZC90cmFiL2ZsYXNoLmMKaW5kZXggMDg3MjNiZC4uMzE3YjYxZCAxMDA2NDQKLS0tIGEvYm9hcmQvdHJhYi9mbGFzaC5jCisrKyBiL2JvYXJkL3RyYWIvZmxhc2guYwpAQCAtMjgsNyArMjgsNyBAQAogCiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZ1X2xvbmcgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiAKICNkZWZpbmUgQ01EX1JFQURfQVJSQVkJCTB4MDBGMDAwRjAKQEAgLTQyLDkgKzQyLDkgQEAKICNkZWZpbmUgQ01EX1VOTE9DS19CWVBBU1NfUkVTMQkweDAwOTAwMDkwCiAjZGVmaW5lIENNRF9VTkxPQ0tfQllQQVNTX1JFUzIJMHgwMDAwMDAwMAogCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSCQkoKih2b2xhdGlsZSB1MzIgKilDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgTUVNX0ZMQVNIX0FERFIxCQkoKih2b2xhdGlsZSB1MzIgKikoQ0ZHX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAyKSkpCi0jZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTMyICopKENGR19GTEFTSF9CQVNFICsgKDB4MDAwMDAyQUEgPDwgMikpKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUgkJKCoodm9sYXRpbGUgdTMyICopQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBNRU1fRkxBU0hfQUREUjEJCSgqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMHgwMDAwMDU1NSA8PCAyKSkpCisjZGVmaW5lIE1FTV9GTEFTSF9BRERSMgkJKCoodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgweDAwMDAwMkFBIDw8IDIpKSkKIAogI2RlZmluZSBCSVRfRVJBU0VfRE9ORQkJMHgwMDgwMDA4MAogI2RlZmluZSBCSVRfUkRZX01BU0sJCTB4MDA4MDAwODAKQEAgLTYzLDE3ICs2MywxNyBAQAogCWludCBpLCBqOwogCXVsb25nIHNpemUgPSAwOwogCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQl1bG9uZyBmbGFzaGJhc2UgPSAwOwogCQlmbGFzaF9pbmZvX3QgKmluZm8gPSAmZmxhc2hfaW5mb1tpXTsKIAogCQkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCiAJCWluZm8tPmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAotCQlzaXplICs9IGZsYXNoX2dldF9zaXplIChDRkdfRkxBU0hfQkFTRSwgaW5mbyk7CisJCXNpemUgKz0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgaW5mbyk7CiAKIAkJaWYgKGkgPT0gMCkKLQkJCWZsYXNoYmFzZSA9IENGR19GTEFTSF9CQVNFOworCQkJZmxhc2hiYXNlID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCQllbHNlCiAJCQlwYW5pYyAoImNvbmZpZ3VyZWQgdG9vIG1hbnkgZmxhc2ggYmFua3MhXG4iKTsKIAkJZm9yIChqID0gMDsgaiA8IGluZm8tPnNlY3Rvcl9jb3VudDsgaisrKSB7CkBAIC0xMDIsOCArMTAyLDggQEAKIAkgKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTI1Nyw3ICsyNTcsNyBAQAogCQkJCXJlc3VsdCA9ICphZGRyOwogCiAJCQkJLyogY2hlY2sgdGltZW91dCAqLwotCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlNRU1fRkxBU0hfQUREUjEgPSBDTURfUkVBRF9BUlJBWTsKIAkJCQkJY2hpcDEgPSBUTU87CiAJCQkJCWJyZWFrOwpAQCAtMzU2LDcgKzM1Niw3IEBACiAJCXJlc3VsdCA9ICphZGRyOwogCiAJCS8qIGNoZWNrIHRpbWVvdXQgKi8KLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJY2hpcDEgPSBFUlIgfCBUTU87CiAJCQlicmVhazsKIAkJfQpAQCAtNTU5LDEwICs1NTksMTAgQEAKIAogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJcmV0dXJuIChpbmZvLT5zaXplKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3RyYWIvbWVtb3J5LmMgYi9ib2FyZC90cmFiL21lbW9yeS5jCmluZGV4IDA1MjQzMmUuLjhmYjNkMmMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3RyYWIvbWVtb3J5LmMKKysrIGIvYm9hcmQvdHJhYi9tZW1vcnkuYwpAQCAtMTU1LDcgKzE1NSw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAKLS8qICNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX01FTU9SWSAqLworLyogI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX01FTU9SWSAqLwogCiAvKgogICogRGVmaW5lIElOSkVDVF8qX0VSUk9SUyBmb3IgdGVzdGluZyBlcnJvciBkZXRlY3Rpb24gaW4gdGhlIHByZXNlbmNlIG9mCkBAIC00NjUsNyArNDY1LDcgQEAKIAogCiAJaWYgKGZsYWdzICYgUE9TVF9TTE9XVEVTVCkgewotCQlyZXQgPSBtZW1vcnlfcG9zdF90ZXN0cyAoQ0ZHX1NEUkFNX0JBU0UsIG1lbXNpemUpOworCQlyZXQgPSBtZW1vcnlfcG9zdF90ZXN0cyAoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBtZW1zaXplKTsKIAl9IGVsc2UgewkJCS8qIFBPU1RfTk9STUFMICovCiAKIAkJdW5zaWduZWQgbG9uZyBpOwpAQCAtNDgyLDUgKzQ4Miw1IEBACiB9CiAjZW5kaWYgLyogMCAqLwogCi0vKiAjZW5kaWYgKi8gLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9NRU1PUlkgKi8KKy8qICNlbmRpZiAqLyAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9NRU1PUlkgKi8KIC8qICNlbmRpZiAqLyAvKiBDT05GSUdfUE9TVCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvdHJhYi90cmFiLmMgYi9ib2FyZC90cmFiL3RyYWIuYwppbmRleCBiODY5MDIzLi41N2ZmNzE4IDEwMDY0NAotLS0gYS9ib2FyZC90cmFiL3RyYWIuYworKysgYi9ib2FyZC90cmFiL3RyYWIuYwpAQCAtMzAsNyArMzAsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmZGVmIENGR19CUklHSFRORVNTCisjaWZkZWYgQ09ORklHX1NZU19CUklHSFRORVNTCiBzdGF0aWMgdm9pZCBzcGlfaW5pdCh2b2lkKTsKIHN0YXRpYyB2b2lkIHdhaXRfdHJhbnNtaXRfZG9uZSh2b2lkKTsKIHN0YXRpYyB2b2lkIHRzYzIwMDBfd3JpdGUodW5zaWduZWQgaW50IHBhZ2UsIHVuc2lnbmVkIGludCByZWcsCkBAIC0xOTksNyArMTk5LDcgQEAKIAkJZnJlZSAoc3RyKTsKIAl9CiAKLSNpZmRlZiBDRkdfQlJJR0hUTkVTUworI2lmZGVmIENPTkZJR19TWVNfQlJJR0hUTkVTUwogCXRzYzIwMDBfc2V0X2JyaWdodG5lc3MoKTsKICNlbmRpZgogCXJldHVybiAoMCk7CkBAIC0zMzMsNyArMzMzLDcgQEAKIH0KICNlbmRpZgkvKiBDT05GSUdfTU9ERU1fU1VQUE9SVCAqLwogCi0jaWZkZWYgQ0ZHX0JSSUdIVE5FU1MKKyNpZmRlZiBDT05GSUdfU1lTX0JSSUdIVE5FU1MKIAogc3RhdGljIGlubGluZSB2b2lkIFNFVF9DU19UT1VDSCh2b2lkKQogewpAQCAtNDE1LDcgKzQxNSw3IEBACiAJaSA9IGdldGVudl9yKCJicmlnaHRuZXNzIiwgdG1wLCBzaXplb2YodG1wKSk7CiAJYnIgPSAoaSA+IDApCiAJCT8gKGludCkgc2ltcGxlX3N0cnRvdWwgKHRtcCwgTlVMTCwgMTApCi0JCTogQ0ZHX0JSSUdIVE5FU1M7CisJCTogQ09ORklHX1NZU19CUklHSFRORVNTOwogCiAJdHNjMjAwMF93cml0ZSgwLCAweGIsIGJyICYgMHhmZik7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC90cml6ZXBzaXYvbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQvdHJpemVwc2l2L2xvd2xldmVsX2luaXQuUwppbmRleCBkODg2OTM4Li4xMjhkNTU0IDEwMDY0NAotLS0gYS9ib2FyZC90cml6ZXBzaXYvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL3RyaXplcHNpdi9sb3dsZXZlbF9pbml0LlMKQEAgLTQ5LDExOSArNDksMTE5IEBACiAJLyogU2V0IHVwIEdQSU8gcGlucyBmaXJzdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJbGRyCQlyMCwJPUdQU1IwCi0JbGRyCQlyMSwJPUNGR19HUFNSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUFNSMQotCWxkcgkJcjEsCT1DRkdfR1BTUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BTUjIKLQlsZHIJCXIxLAk9Q0ZHX0dQU1IyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQU1IzCi0JbGRyCQlyMSwJPUNGR19HUFNSM19WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSM19WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMAotCWxkcgkJcjEsCT1DRkdfR1BDUjBfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BDUjEKLQlsZHIJCXIxLAk9Q0ZHX0dQQ1IxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQQ1IyCi0JbGRyCQlyMSwJPUNGR19HUENSMl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMl9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUENSMwotCWxkcgkJcjEsCT1DRkdfR1BDUjNfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjNfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1JFUjAKLQlsZHIJCXIxLAk9Q0ZHX0dSRVIwX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dSRVIwX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdSRVIxCi0JbGRyCQlyMSwJPUNGR19HUkVSMV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUkVSMV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUkVSMgotCWxkcgkJcjEsCT1DRkdfR1JFUjJfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1JFUjJfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1JFUjMKLQlsZHIJCXIxLAk9Q0ZHX0dSRVIzX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dSRVIzX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdGRVIwCi0JbGRyCQlyMSwJPUNGR19HRkVSMF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HRkVSMF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HRkVSMQotCWxkcgkJcjEsCT1DRkdfR0ZFUjFfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0ZFUjFfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0ZFUjIKLQlsZHIJCXIxLAk9Q0ZHX0dGRVIyX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dGRVIyX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdGRVIzCi0JbGRyCQlyMSwJPUNGR19HRkVSM19WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HRkVSM19WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMAotCWxkcgkJcjEsCT1DRkdfR1BEUjBfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjBfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R1BEUjEKLQlsZHIJCXIxLAk9Q0ZHX0dQRFIxX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIxX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdQRFIyCi0JbGRyCQlyMSwJPUNGR19HUERSMl9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMl9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HUERSMwotCWxkcgkJcjEsCT1DRkdfR1BEUjNfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjNfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjBfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMF9MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIwX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMV9MCi0JbGRyCQlyMSwJPUNGR19HQUZSMV9MX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjFfVQotCWxkcgkJcjEsCT1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSMV9VX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIyX0wKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1HQUZSMl9VCi0JbGRyCQlyMSwJPUNGR19HQUZSMl9VX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAlsZHIJCXIwLAk9R0FGUjNfTAotCWxkcgkJcjEsCT1DRkdfR0FGUjNfTF9WQUwKKwlsZHIJCXIxLAk9Q09ORklHX1NZU19HQUZSM19MX1ZBTAogCXN0cgkJcjEsICAgW3IwXQogCiAJbGRyCQlyMCwJPUdBRlIzX1UKLQlsZHIJCXIxLAk9Q0ZHX0dBRlIzX1VfVkFMCisJbGRyCQlyMSwJPUNPTkZJR19TWVNfR0FGUjNfVV9WQUwKIAlzdHIJCXIxLCAgIFtyMF0KIAogCWxkcgkJcjAsCT1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCQlyMSwJPUNGR19QU1NSX1ZBTAorCWxkcgkJcjEsCT1DT05GSUdfU1lTX1BTU1JfVkFMCiAJc3RyCQlyMSwgICBbcjBdCiAKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC0xOTksMTcgKzE5OSwxNyBAQAogCS8qIE1TQyByZWdpc3RlcnM6IHRpbWluZywgYnVzIHdpZHRoLCBtZW0gdHlwZQkJCSAgICAqLwogCiAJLyogTVNDMDogbkNTKDAsMSkJCQkJCQkgICAgKi8KLQlsZHIJcjIsICAgPUNGR19NU0MwX1ZBTAorCWxkcglyMiwgICA9Q09ORklHX1NZU19NU0MwX1ZBTAogCXN0cglyMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAlsZHIJcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCS8qIHJlYWQgYmFjayB0byBlbnN1cmUJICAgICovCiAJCQkJCQkvKiB0aGF0IGRhdGEgbGF0Y2hlcwkgICAgKi8KIAkvKiBNU0MxOiBuQ1MoMiwzKQkJCQkJCSAgICAqLwotCWxkcglyMiwgID1DRkdfTVNDMV9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NU0MxX1ZBTAogCXN0cglyMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkcglyMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCiAJLyogTVNDMjogbkNTKDQsNSkJCQkJCQkgICAgKi8KLQlsZHIJcjIsICA9Q0ZHX01TQzJfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTVNDMl9WQUwKIAlzdHIJcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIAlsZHIJcjIsICBbcjEsICNNU0MyX09GRlNFVF0KIApAQCAtMjE4LDQ0ICsyMTgsNDQgQEAKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAkvKiBNRUNSOiBNZW1vcnkgRXhwYW5zaW9uIENhcmQgUmVnaXN0ZXIJCQkJICAgICovCi0JbGRyCXIyLCAgPUNGR19NRUNSX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01FQ1JfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUVDUl9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNRUNSX09GRlNFVF0KIAogCS8qIE1DTUVNMDogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAwIHRpbWluZwkJCQkgICAgKi8KLQlsZHIJcjIsICA9Q0ZHX01DTUVNMF9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ01FTTBfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNNRU0wX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DTUVNMF9PRkZTRVRdCiAKIAkvKiBNQ01FTTE6IENhcmQgSW50ZXJmYWNlIHNsb3QgMSB0aW1pbmcJCQkJICAgICovCi0JbGRyCXIyLCAgPUNGR19NQ01FTTFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DTUVNMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ01FTTFfT0ZGU0VUXQogCiAJLyogTUNBVFQwOiBDYXJkIEludGVyZmFjZSBBdHRyaWJ1dGUgU3BhY2UgVGltaW5nLCBzbG90IDAJICAgICovCi0JbGRyCXIyLCAgPUNGR19NQ0FUVDBfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNBVFQwX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DQVRUMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDBfT0ZGU0VUXQogCiAJLyogTUNBVFQxOiBDYXJkIEludGVyZmFjZSBBdHRyaWJ1dGUgU3BhY2UgVGltaW5nLCBzbG90IDEJICAgICovCi0JbGRyCXIyLCAgPUNGR19NQ0FUVDFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0FUVDFfT0ZGU0VUXQogCiAJLyogTUNJTzA6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMAkJICAgICovCi0JbGRyCXIyLCAgPUNGR19NQ0lPMF9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0lPMF9PRkZTRVRdCiAJbGRyCXIyLAlbcjEsICNNQ0lPMF9PRkZTRVRdCiAKIAkvKiBNQ0lPMTogQ2FyZCBJbnRlcmZhY2UgSS9PIFNwYWNlIFRpbWluZywgc2xvdCAxCQkgICAgKi8KLQlsZHIJcjIsICA9Q0ZHX01DSU8xX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DSU8xX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DSU8xX09GRlNFVF0KIAlsZHIJcjIsCVtyMSwgI01DSU8xX09GRlNFVF0KIAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAkvKiBTdGVwIDJjOiBXcml0ZSBGTFlDTkZHICBGSVhNRTogd2hhdCdzIHRoYXQ/Pz8JCSAgICAqLwogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQlsZHIJcjIsICA9Q0ZHX0ZMWUNORkdfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfRkxZQ05GR19WQUwKIAlzdHIJcjIsICBbcjEsICNGTFlDTkZHX09GRlNFVF0KIAlzdHIJcjIsCVtyMSwgI0ZMWUNORkdfT0ZGU0VUXQogCkBAIC0yNzAsNyArMjcwLDcgQEAKIAlsZHIJcjIsCT0weEZGRgogCWJpYwlyNCwJcjQsIHIyCiAKLQlsZHIJcjMsCT1DRkdfTURSRUZSX1ZBTAorCWxkcglyMywJPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCWFuZAlyMywJcjMsICByMgogCiAJb3JyCXI0LAlyNCwgcjMKQEAgLTMwMCw3ICszMDAsNyBAQAogCS8qIHN5bmNocm9ub3VzIHN0YXRpYyBtZW1vcnkuIE5vdGUgdGhhdCBTWExDUiBuZWVkIG5vdCBiZSB3cml0dGVuICAgKi8KIAkvKiBhdCB0aGlzIHRpbWUuCQkJCQkJICAgICovCiAKLQlsZHIJcjIsICA9Q0ZHX1NYQ05GR19WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19TWENORkdfVkFMCiAJc3RyCXIyLCAgW3IxLCAjU1hDTkZHX09GRlNFVF0KIAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTMyOSw3ICszMjksNyBAQAogCS8qIFN0ZXAgNGQ6IHdyaXRlIE1EQ05GRyB3aXRoIE1EQ05GRzpERXggZGVhc3NlcnRlZCAoc2V0IHRvIDApLCB0byAgKi8KIAkvKgkgICAgY29uZmlndXJlIGJ1dCBub3QgZW5hYmxlIGVhY2ggU0RSQU0gcGFydGl0aW9uIHBhaXIuCSAgICAqLwogCi0JbGRyCXI0LAk9Q0ZHX01EQ05GR19WQUwKKwlsZHIJcjQsCT1DT05GSUdfU1lTX01EQ05GR19WQUwKIAliaWMJcjQsCXI0LAkjKE1EQ05GR19ERTB8TURDTkZHX0RFMSkKIAliaWMJcjQsCXI0LAkjKE1EQ05GR19ERTJ8TURDTkZHX0RFMykKIApAQCAtMzU3LDcgKzM1Nyw3IEBACiAJLyoJICAgIGRvY3VtZW50ZWQgaW4gU0RSQU0gZGF0YSBzaGVldHMuIFRoZSBhZGRyZXNzKGVzKSB1c2VkICAgKi8KIAkvKgkgICAgZm9yIHRoaXMgcHVycG9zZSBtdXN0IG5vdCBiZSBjYWNoZWFibGUuCQkgICAgKi8KIAotCWxkcglyMywJPUNGR19EUkFNX0JBU0UKKwlsZHIJcjMsCT1DT05GSUdfU1lTX0RSQU1fQkFTRQogCXN0cglyMiwJW3IzXQogCXN0cglyMiwJW3IzXQogCXN0cglyMiwJW3IzXQpAQCAtMzc5LDcgKzM3OSw3IEBACiAKIAkvKiBTdGVwIDRoOiBXcml0ZSBNRE1SUy4JCQkJCSAgICAqLwogCi0JbGRyCXIyLCAgPUNGR19NRE1SU19WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NRE1SU19WQUwKIAlzdHIJcjIsICBbcjEsICNNRE1SU19PRkZTRVRdCiAKIAkvKiBlbmFibGUgQVBEICovCkBAIC00NDMsMTEgKzQ0MywxMSBAQAogCS8qIFR1cm4gT2ZmIG9uLWNoaXAgcGVyaXBoZXJhbCBjbG9ja3MgKGV4Y2VwdCBmb3IgbWVtb3J5KQkgICAgKi8KIAkvKiBmb3IgcmUtY29uZmlndXJhdGlvbi4JCQkJCSAgICAqLwogCWxkcglyMSwgID1DS0VOCi0JbGRyCXIyLCAgPUNGR19DS0VOCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfQ0tFTgogCXN0cglyMiwgIFtyMV0KIAogCS8qIC4uLiBhbmQgd3JpdGUgdGhlIGNvcmUgY2xvY2sgY29uZmlnIHJlZ2lzdGVyCQkJICAgICovCi0JbGRyCXIyLCAgPUNGR19DQ0NSCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfQ0NDUgogCWxkcglyMSwgID1DQ0NSCiAJc3RyCXIyLCAgW3IxXQogCmRpZmYgLS1naXQgYS9ib2FyZC91YzEwMC9wY21jaWEuYyBiL2JvYXJkL3VjMTAwL3BjbWNpYS5jCmluZGV4IDQwN2JkYjcuLmFkMjU2NzggMTAwNjQ0Ci0tLSBhL2JvYXJkL3VjMTAwL3BjbWNpYS5jCisrKyBiL2JvYXJkL3VjMTAwL3BjbWNpYS5jCkBAIC0yNCw3ICsyNCw3IEBACiB7CiAJdm9sYXRpbGUgaW1tYXBfdAkqaW1tYXA7CiAKLQlpbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCS8qCiAJKiBDb25maWd1cmUgUG9ydCBBIGZvciBNQVgxNjAyIFBDLUNhcmQgUG93ZXItSW50ZXJmYWNlIFN3aXRjaApAQCAtNDksMTAgKzQ5LDEwIEBACiAKIAl1ZGVsYXkoMTAwMDApOwogCi0JaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotCXN5c3AgID0gKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKLQlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOwotCWNwICAgID0gKGNwbTh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0pKTsKKwlpbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOworCXN5c3AgID0gKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3NpdV9jb25mKSk7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CisJY3AgICAgPSAoY3BtOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pKTsKIAogCS8qIENvbmZpZ3VyZSBQb3J0cyBmb3IgVFBTMjIxMUEgUEMtQ2FyZCBQb3dlci1JbnRlcmZhY2UgU3dpdGNoICovCiAJY2ZnX3BvcnRzICgpOwpAQCAtMTMzLDggKzEzMyw4IEBACiAKIAlkZWJ1ZyAoImhhcmR3YXJlX2Rpc2FibGU6ICIgUENNQ0lBX0JPQVJEX01TRyAiIFNsb3QgJWNcbiIsICdBJytzbG90KTsKIAotCWltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLQlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCWltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisJcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAKIAkvKiBzd2l0Y2ggVkNDIG9mZiAqLwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BhZGF0ICY9IH4weDgwMDA7IC8qIHBvd2VyIGRpc2FibGUgMy4zViAqLwpAQCAtMTYzLDggKzE2Myw4IEBACiAJCQkiIFNsb3QgJWMsIFZjYz0lZC4lZCwgVnBwPSVkLiVkXG4iLAogCSdBJytzbG90LCB2Y2MvMTAsIHZjYyUxMCwgdnBwLzEwLCB2Y2MlMTApOwogCi0JaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotCXBjbXAgID0gKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKKwlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKIAkvKgogCSogRGlzYWJsZSBQQ01DSUEgYnVmZmVycyAoaXNvbGF0ZSB0aGUgaW50ZXJmYWNlKQogCSogYW5kIGFzc2VydCBSRVNFVCBzaWduYWwKZGlmZiAtLWdpdCBhL2JvYXJkL3VjMTAwL3VjMTAwLmMgYi9ib2FyZC91YzEwMC91YzEwMC5jCmluZGV4IDg5NmY5NjkuLjM4YzdiZTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3VjMTAwL3VjMTAwLmMKKysrIGIvYm9hcmQvdWMxMDAvdWMxMDAuYwpAQCAtMTM4LDcgKzEzOCw3IEBACiB7CiAJdm9sYXRpbGUgcGNtY29uZjh4eF90CSpwY21wOwogCi0JcGNtcCAgPSAocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwlwY21wICA9IChwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKIAogCXJldHVybiAoKHBjbXAtPnBjbWNfcGlwciA+PiAyNCkgJiAweGYpOwogfQpAQCAtMTcxLDcgKzE3MSw3IEBACiAgKi8KIHBoeXNfc2l6ZV90IGluaXRkcmFtIChpbnQgYm9hcmRfdHlwZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTE4Nyw4ICsxODcsOCBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAltZW1jdGwtPm1lbWNfbXB0cHIgPSAweDAyMDA7IC8qIERpdmlkZSBieSAzMiBXViAqLwogCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl9WQUwgJiAweEZGN0ZGRkZGOyAvKiBCaXQgOCA6PSAiMCIgS2VpbiBSZWZyZXNoIFdWICovCi0JbWVtY3RsLT5tZW1jX21ibXIgPSBDRkdfTUJNUl9WQUw7CisJbWVtY3RsLT5tZW1jX21hbXIgPSBDT05GSUdfU1lTX01BTVJfVkFMICYgMHhGRjdGRkZGRjsgLyogQml0IDggOj0gIjAiIEtlaW4gUmVmcmVzaCBXViAqLworCW1lbWN0bC0+bWVtY19tYm1yID0gQ09ORklHX1NZU19NQk1SX1ZBTDsKIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAkvKiBJbml0aWFsaXplIHRoZSBNZW1vcnkgQ29udHJvbGxlciByZWdpc3RlcnMsIE1QVFBSLCBDaGlwIFNlbGVjdCAxICAgICovCkBAIC0xOTgsOCArMTk4LDggQEAKIAkvKiAgICAgICBjbG9jayByYXRlICgxNi42N01IeikgdG8gYWxsb3cgcHJvcGVyIG9wZXJhdGlvbiBmb3IgYWxsIEFEUyAgICovCiAJLyogICAgICAgY2xvY2sgZnJlcXVlbmNpZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJLyogV2FpdCBhdCBsZWFzdCAyMDAgdXNlYyBmb3IgRFJBTSB0byBzdGFiaWxpemUsIHRoaXMgbWFnaWMgbnVtYmVyICAgKi8KQEAgLTIwOSw4ICsyMDksOCBAQAogCiAJbWVtY3RsLT5tZW1jX21hbXIgPSAobWVtY3RsLT5tZW1jX21hbXIgfCAweDA0KSAmIH4weDA4OwogCi0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJLyogcnVuIE1SUyBjb21tYW5kIGluIGxvY2F0aW9uIDUtOCBvZiBVUE1CLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtMjM2LDcgKzIzNiw3IEBACiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCS8qIHJlcnN0b3JlIE1CTVIgdmFsdWUgKDQtYmVhdCByZWZyZXNoIGJ1cnN0LikgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbWVtY3RsLT5tZW1jX21hbXIgPSBDRkdfTUFNUl9WQUwgfCAweDAwODAwMDAwOyAvKiBCaXQgOCA6PSAiMSIgUmVmcmVzaCBFbmFibGUgV1YgKi8KKwltZW1jdGwtPm1lbWNfbWFtciA9IENPTkZJR19TWVNfTUFNUl9WQUwgfCAweDAwODAwMDAwOyAvKiBCaXQgOCA6PSAiMSIgUmVmcmVzaCBFbmFibGUgV1YgKi8KIAogCXVkZWxheSgyMDApOwogCkBAIC0yNTEsOSArMjUxLDkgQEAKIAkvKgogCSAqIE1ha2Ugc3VyZSB0aGF0IFJUQyBoYXMgY2xvY2sgb3V0cHV0IGVuYWJsZWQgKHRyaWdnZXJzIHdhdGNoZG9nISkKIAkgKi8KLQl2YWwgPSBpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIDB4MEQpOworCXZhbCA9IGkyY19yZWdfcmVhZCAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDB4MEQpOwogCXZhbCB8PSAweDgwOwotCWkyY19yZWdfd3JpdGUgKENGR19JMkNfUlRDX0FERFIsIDB4MEQsIHZhbCk7CisJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDB4MEQsIHZhbCk7CiAKIAkvKgogCSAqIENvbmZpZ3VyZSBQSFkgdG8gc2V0dXAgTEVEJ3MgY29ycmVjdGx5IGFuZCB1c2UgMTAwTUJpdCwgRkQKZGlmZiAtLWdpdCBhL2JvYXJkL3VjMTAxL3VjMTAxLmMgYi9ib2FyZC91YzEwMS91YzEwMS5jCmluZGV4IDY5YmE1MDcuLjdkZjM0OWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3VjMTAxL3VjMTAxLmMKKysrIGIvYm9hcmQvdWMxMDEvdWMxMDEuYwpAQCAtOTksNyArOTksNyBAQAogI2RlZmluZSBHUF9USU1FUl9HRVRfSShuLCB2KSAoIFwKIAkoKCh2b2xhdGlsZSBzdHJ1Y3QgbXBjNXh4eF9ncHQgKikoTVBDNVhYWF9HUFQgKyBuKSktPnNyICYgMHgxMDApID4+IDgpCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiBzdGF0aWMgdm9pZCBzZHJhbV9zdGFydCAoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTE0MiwxNCArMTQyLDE0IEBACiAKIC8qCiAgKiBBVFRFTlRJT046IEFsdGhvdWdoIHBhcnRpYWxseSByZWZlcmVuY2VkIGluaXRkcmFtIGRvZXMgTk9UIG1ha2UgcmVhbCB1c2UKLSAqCSAgICAgIHVzZSBvZiBDRkdfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDRkdfU0RSQU1fQkFTRQorICoJICAgICAgdXNlIG9mIENPTkZJR19TWVNfU0RSQU1fQkFTRS4gVGhlIGNvZGUgZG9lcyBub3Qgd29yayBpZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICAqCSAgICAgIGlzIHNvbWV0aGluZyBlbHNlIHRoYW4gMHgwMDAwMDAwMC4KICAqLwogCiBwaHlzX3NpemVfdCBpbml0ZHJhbSAoaW50IGJvYXJkX3R5cGUpCiB7CiAJdWxvbmcgZHJhbXNpemUgPSAwOwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTE3MCw5ICsxNzAsOSBAQAogCiAJLyogZmluZCBSQU0gc2l6ZSB1c2luZyBTRFJBTSBDUzAgb25seSAqLwogCXNkcmFtX3N0YXJ0KDApOwotCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ0ZHX1NEUkFNX0JBU0UsIDB4MjAwMDAwMDApOworCXRlc3QxID0gZ2V0X3JhbV9zaXplKChsb25nICopQ09ORklHX1NZU19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKIAlzZHJhbV9zdGFydCgxKTsKLQl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDIwMDAwMDAwKTsKKwl0ZXN0MiA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHgyMDAwMDAwMCk7CiAJaWYgKHRlc3QxID4gdGVzdDIpIHsKIAkJc2RyYW1fc3RhcnQoMCk7CiAJCWRyYW1zaXplID0gdGVzdDE7CkBAIC0xOTQsNyArMTk0LDcgQEAKIAl9CiAKIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1NEUkFNX0NTMUNGRyA9IGRyYW1zaXplOyAvKiBkaXNhYmxlZCAqLwotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogcmV0cmlldmUgc2l6ZSBvZiBtZW1vcnkgY29ubmVjdGVkIHRvIFNEUkFNIENTMCAqLwogCWRyYW1zaXplID0gKih2dV9sb25nICopTVBDNVhYWF9TRFJBTV9DUzBDRkcgJiAweEZGOwpAQCAtMjEyLDcgKzIxMiw3IEBACiAJCWRyYW1zaXplMiA9IDA7CiAJfQogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogLyoJcmV0dXJuIGRyYW1zaXplICsgZHJhbXNpemUyOyAqLwogCXJldHVybiBkcmFtc2l6ZTsKQEAgLTIyMiw3ICsyMjIsNyBAQAogewogCXB1dHMgKCJCb2FyZDogTUFOIFVDMTAxXG4iKTsKIAkvKiBjbGVhciB0aGUgRGlzcGxheSAqLwotCSooY2hhciAqKShDRkdfRElTUF9DV09SRCkgPSAweDgwOworCSooY2hhciAqKShDT05GSUdfU1lTX0RJU1BfQ1dPUkQpID0gMHg4MDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzQ1LDkgKzM0NSw5IEBACiB7CiAJKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfQ0ZHICY9IH4weDE7IC8qIGNsZWFyIFJPICovCiAJKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RBUlQgPQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUQVJUID0gU1RBUlRfUkVHKENGR19GTEFTSF9CQVNFKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0ZMQVNIX0JBU0UpOwogCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX1NUT1AgPQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUT1AgPSBTVE9QX1JFRyhDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX1NJWkUpOworCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUT1AgPSBTVE9QX1JFRyhDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfU0laRSk7CiAJLyogSW50ZXJidXMgZW5hYmxlIGl0IGhlcmUgPz8gKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0dQVDZfRU5BQkxFID0gR1BUX09VVF8xOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdXR4ODI0NS9mbGFzaC5jIGIvYm9hcmQvdXR4ODI0NS9mbGFzaC5jCmluZGV4IDVhYWI4ODYuLmFhYzgxMTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3V0eDgyNDUvZmxhc2guYworKysgYi9ib2FyZC91dHg4MjQ1L2ZsYXNoLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTUwLDcgKzUwLDcgQEAKICNkZWZpbmUJU0VDVF9TSVpFXzMyS0IJMHg4MDAwCiAjZGVmaW5lCVNFQ1RfU0laRV84S0IJMHgyMDAwCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBzdGF0aWMgaW50IHdyaXRlX3dvcmQgKGZsYXNoX2luZm9fdCAqIGluZm8sIHVsb25nIGRlc3QsIHVsb25nIGRhdGEpOwogI2lmIDAKQEAgLTgwLDggKzgwLDggQEAKIAl1bG9uZyB0b3RhbF9zaXplID0gMCwgZGV2aWNlX3NpemUgPSAxOwogCXVuc2lnbmVkIGNoYXIgbWFudWZfaWQsIGRldmljZV9pZDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKLQkJdnVfY2hhciAqYWRkciA9ICh2dV9jaGFyICopIChDRkdfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUpOworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJCXZ1X2NoYXIgKmFkZHIgPSAodnVfY2hhciAqKSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSk7CiAKIAkJYWRkclsweDU1NV0gPSAweEFBOwkJLyogZ2V0IG1hbnVmL2RldmljZSBpbmZvIGNvbW1hbmQgKi8KIAkJYWRkclsweDJBQV0gPSAweDU1OwkJLyogMy1jeWNsZSBjb21tYW5kICovCkBAIC05Nyw3ICs5Nyw3IEBACiAJCQlkZXZpY2Vfc2l6ZSAqPSAyOwogCiAJCWZsYXNoX2luZm9baV0uc2l6ZSA9IGRldmljZV9zaXplOwotCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCiAjaWYgZGVmaW5lZCBERUJVR19GTEFTSAogCQlwcmludGYgKCJtYW51Zl9pZCA9ICV4LCBkZXZpY2VfaWQgPSAleFxuIiwgbWFudWZfaWQsIGRldmljZV9pZCk7CkBAIC0xMTIsNyArMTEyLDcgQEAKIAkJCS8qIHNldCBpbmRpdmlkdWFsIHNlY3RvciBzdGFydCBhZGRyZXNzZXMgKi8KIAkJCWZvciAoaiA9IDA7IGogPCBmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudDsgaisrKSB7CiAJCQkJZmxhc2hfaW5mb1tpXS5zdGFydFtqXSA9Ci0JCQkJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFICsKKwkJCQkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFICsKIAkJCQkJCSBqICogTUFJTl9TRUNUX1NJWkUpOwogCQkJfQogCQl9CkBAIC0xMjYsMTQgKzEyNiwxNCBAQAogCQkJLyogc2V0IGluZGl2aWR1YWwgc2VjdG9yIHN0YXJ0IGFkZHJlc3NlcyAqLwogCQkJZm9yIChqID0gMDsgaiA8IGZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50OyBqKyspIHsKIAkJCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0KLQkJCQkJCShDRkdfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUgKworCQkJCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIGkgKiBGTEFTSF9CQU5LX1NJWkUgKwogCQkJCQkJIGogKiBNQUlOX1NFQ1RfU0laRSk7CiAKLQkJCQlpZiAoaiA8IChDRkdfTUFYX0ZMQVNIX1NFQ1QgLSAzKSkgeworCQkJCWlmIChqIDwgKENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgLSAzKSkgewogCQkJCQlmbGFzaF9pbmZvW2ldLnN0YXJ0W2pdID0KLQkJCQkJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBpICogRkxBU0hfQkFOS19TSVpFICsKKwkJCQkJCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgaSAqIEZMQVNIX0JBTktfU0laRSArCiAJCQkJCQkJIGogKiBNQUlOX1NFQ1RfU0laRSk7Ci0JCQkJfSBlbHNlIGlmIChqID09IChDRkdfTUFYX0ZMQVNIX1NFQ1QgLSAzKSkgeworCQkJCX0gZWxzZSBpZiAoaiA9PSAoQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAtIDMpKSB7CiAJCQkJCWZsYXNoX2luZm9baV0uc3RhcnRbal0gPQogCQkJCQkJCShmbGFzaF9pbmZvW2ldLnN0YXJ0W2ogLSAxXSArIFNFQ1RfU0laRV8zMktCKTsKIApAQCAtMTU2LDE2ICsxNTYsMTYgQEAKIAogCQlhZGRyWzBdID0gMHhGRjsKIAotCQltZW1zZXQgKGZsYXNoX2luZm9baV0ucHJvdGVjdCwgMCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKKwkJbWVtc2V0IChmbGFzaF9pbmZvW2ldLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCiAJCXRvdGFsX3NpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplOwogCX0KIAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLQlmbGFzaF9wcm90ZWN0IChGTEFHX1BST1RFQ1RfU0VULCBDRkdfTU9OSVRPUl9CQVNFLAotCQkJCSAgIENGR19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UsCisJCQkJICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkJICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTM4Myw3ICszODMsNyBAQAogCQkJCQkJCQkJCQkJICAgc3RhcnRbMF0pIDw8IHNoOGIpKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSAhPQogCQkgICAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyIChzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIgKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTUyNCw3ICs1MjQsNyBAQAogCQlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJCXdoaWxlICgoZGVzdDJbaSA8PCBzaDhiXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CiAJCQkgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgewotCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJCXJldHVybiAoMSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3V0eDgyNDUvdXR4ODI0NS5jIGIvYm9hcmQvdXR4ODI0NS91dHg4MjQ1LmMKaW5kZXggZTdjYTY2OS4uODQwMjY4OSAxMDA2NDQKLS0tIGEvYm9hcmQvdXR4ODI0NS91dHg4MjQ1LmMKKysrIGIvYm9hcmQvdXR4ODI0NS91dHg4MjQ1LmMKQEAgLTU1LDcgKzU1LDcgQEAKIAlsb25nIG1lYXIxOwogCWxvbmcgZW1lYXIxOwogCi0Jc2l6ZSA9IGdldF9yYW1fc2l6ZShDRkdfU0RSQU1fQkFTRSwgQ0ZHX01BWF9SQU1fU0laRSk7CisJc2l6ZSA9IGdldF9yYW1fc2l6ZShDT05GSUdfU1lTX1NEUkFNX0JBU0UsIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFKTsKIAogCW5ld19iYW5rMF9lbmQgPSBzaXplLzIgLSAxOwogCW5ld19iYW5rMV9lbmQgPSBzaXplIC0gMTsKZGlmZiAtLWdpdCBhL2JvYXJkL3YzNy9mbGFzaC5jIGIvYm9hcmQvdjM3L2ZsYXNoLmMKaW5kZXggZDg0NWY2NS4uOWI4MTdlYyAxMDA2NDQKLS0tIGEvYm9hcmQvdjM3L2ZsYXNoLmMKKysrIGIvYm9hcmQvdjM3L2ZsYXNoLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxtcGM4eHguaD4KIAotZmxhc2hfaW5mb190CWZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZ1bmN0aW9ucwpAQCAtNTQsNDIgKzU0LDQyIEBACiAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXVuc2lnbmVkIGxvbmcgc2l6ZV9iMCwgc2l6ZV9iMTsKIAlzaG9ydCBtYW51LCBkZXZfaWQ7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKIAkvKiBEbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCiAKLQlmbGFzaF9nZXRfaWRfd29yZCgodm9pZCopQ0ZHX0ZMQVNIX0JBU0UwLCZtYW51LCZkZXZfaWQpOworCWZsYXNoX2dldF9pZF93b3JkKCh2b2lkKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UwLCZtYW51LCZkZXZfaWQpOwogCiAJc2l6ZV9iMCA9IGZsYXNoX2dldF9zaXplKG1hbnUsIGRldl9pZCwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFMCwgJmZsYXNoX2luZm9bMF0sMCk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRTAsICZmbGFzaF9pbmZvWzBdLDApOwogCi0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUl9USU1JTkdfRkxBU0ggfCAoMCAtIHNpemVfYjApOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgwIC0gc2l6ZV9iMCk7CiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFMAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRTAKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKLQlmbGFzaF9nZXRfaWRfbG9uZygodm9pZCopQ0ZHX0ZMQVNIX0JBU0UxLCZtYW51LCZkZXZfaWQpOworCWZsYXNoX2dldF9pZF9sb25nKCh2b2lkKilDT05GSUdfU1lTX0ZMQVNIX0JBU0UxLCZtYW51LCZkZXZfaWQpOwogCiAJc2l6ZV9iMSA9IDIgKiBmbGFzaF9nZXRfc2l6ZShtYW51LCBkZXZfaWQsICZmbGFzaF9pbmZvWzFdKTsKIAotCWZsYXNoX2dldF9vZmZzZXRzKENGR19GTEFTSF9CQVNFMSwgJmZsYXNoX2luZm9bMV0sMSk7CisJZmxhc2hfZ2V0X29mZnNldHMoQ09ORklHX1NZU19GTEFTSF9CQVNFMSwgJmZsYXNoX2luZm9bMV0sMSk7CiAKLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SX1RJTUlOR19GTEFTSCB8ICgwIC0gc2l6ZV9iMSk7CisJbWVtY3RsLT5tZW1jX29yMSA9IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIHwgKDAgLSBzaXplX2IxKTsKIAogCWZsYXNoX2luZm9bMF0uc2l6ZSA9IHNpemVfYjA7CiAJZmxhc2hfaW5mb1sxXS5zaXplID0gc2l6ZV9iMTsKQEAgLTM5NSw3ICszOTUsNyBAQAogCWxhc3QgID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9zaG9ydCAqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDgwODApICE9IDB4ODA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNTI0LDcgKzUyNCw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X3Nob3J0ICopZGVzdCkgJiAweDgwODApICE9IChzZGF0YSAmIDB4ODA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KQEAgLTU0OCw3ICs1NDgsNyBAQAogCS8qIGRhdGEgcG9sbGluZyBmb3IgRDcgKi8KIAlzdGFydCA9IGdldF90aW1lciAoMCk7CiAJd2hpbGUgKCgqKCh2dV9zaG9ydCAqKWRlc3QgKyAxKSAmIDB4ODA4MCkgIT0gKHNkYXRhICYgMHg4MDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQvdjM3L3YzNy5jIGIvYm9hcmQvdjM3L3YzNy5jCmluZGV4IDIwNjdmZWQuLjljN2JhZDUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3YzNy92MzcuYworKysgYi9ib2FyZC92MzcvdjM3LmMKQEAgLTkyLDcgKzkyLDcgQEAKIAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgICAgICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICB2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAgICAgdW5zaWduZWQgbG9uZyB0ZW1wOwogICAgIHZvbGF0aWxlIGludCBkZWxheV9jbnQ7CkBAIC0xMzYsOCArMTM2LDggQEAKIAogI2lmZGVmCUNPTkZJR19DQU5fRFJJVkVSCiAgICAgLyogSW5pdGlhbGl6ZSBPUjMgLyBCUjMgKi8KLSAgICBtZW1jdGwtPm1lbWNfb3IzID0gQ0ZHX09SM19DQU47Ci0gICAgbWVtY3RsLT5tZW1jX2JyMyA9IENGR19CUjNfQ0FOOworICAgIG1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19DQU47CisgICAgbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX0NBTjsKIAogICAgIC8qIEluaXRpYWxpemUgTUJNUiAqLwogICAgIG1lbWN0bC0+bWVtY19tYW1yID0gTUFNUl9HUExfQTRESVM7CS8qIEdQTF9BNCBvdXB1dCBsaW5lIERpc2FibGUgKi8KQEAgLTE5MSw3ICsxOTEsNyBAQAogCiBzdGF0aWMgbG9uZyBpbnQgZHJhbV9zaXplICgpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIHN5c2NvbmY4eHhfdCAqc2l1ID0gJmltbWFwLT5pbV9zaXVfY29uZjsKICAgICB2b2xhdGlsZSBwY21jb25mOHh4X3QgKnBjbSA9ICZpbW1hcC0+aW1fcGNtY2lhOwogICAgIGxvbmcgaW50CQkgIGksIG1lbW9yeT0xOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdjM4Yi92MzhiLmMgYi9ib2FyZC92MzhiL3YzOGIuYwppbmRleCA4ODE1YTBjLi5kNzc0Mjk1IDEwMDY0NAotLS0gYS9ib2FyZC92MzhiL3YzOGIuYworKysgYi9ib2FyZC92MzhiL3YzOGIuYwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KIAogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogc3RhdGljIHZvaWQgc2RyYW1fc3RhcnQoaW50IGhpX2FkZHIpCiB7CiAJbG9uZyBoaV9hZGRyX2JpdCA9IGhpX2FkZHIgPyAweDAxMDAwMDAwIDogMDsKQEAgLTY4LDcgKzY4LDcgQEAKIAkqKHZ1X2xvbmcgKikgTVBDNVhYWF9TRFJBTV9DVFJMID0gU0RSQU1fQ09OVFJPTCB8IGhpX2FkZHJfYml0OwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiB9Ci0jZW5kaWYgLyogIUNGR19SQU1CT09UICovCisjZW5kaWYgLyogIUNPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQpAQCAtNzcsNyArNzcsNyBAQAogCXVsb25nIGRyYW1zaXplMiA9IDA7CiAJdWludCBzdnIsIHB2cjsKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAl1bG9uZyB0ZXN0MSwgdGVzdDI7CiAKIAkvKiBzZXR1cCBTRFJBTSBjaGlwIHNlbGVjdHMgKi8KQEAgLTk4LDkgKzk4LDkgQEAKIAogCS8qIGZpbmQgUkFNIHNpemUgdXNpbmcgU0RSQU0gQ1MwIG9ubHkgKi8KIAlzZHJhbV9zdGFydCgwKTsKLQl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNGR19TRFJBTV9CQVNFLCAweDgwMDAwMDAwKTsKKwl0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CiAJc2RyYW1fc3RhcnQoMSk7Ci0JdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDRkdfU0RSQU1fQkFTRSwgMHg4MDAwMDAwMCk7CisJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsIDB4ODAwMDAwMDApOwogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwogCQlkcmFtc2l6ZSA9IHRlc3QxOwpAQCAtMTIzLDEwICsxMjMsMTAgQEAKIAkvKiBmaW5kIFJBTSBzaXplIHVzaW5nIFNEUkFNIENTMSBvbmx5ICovCiAJaWYgKCFkcmFtc2l6ZSkKIAkJc2RyYW1fc3RhcnQoMCk7Ci0JdGVzdDIgPSB0ZXN0MSA9IGdldF9yYW1fc2l6ZSgobG9uZyAqKSAoQ0ZHX1NEUkFNX0JBU0UgKyBkcmFtc2l6ZSksIDB4ODAwMDAwMDApOworCXRlc3QyID0gdGVzdDEgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJaWYgKCFkcmFtc2l6ZSkgewogCQlzZHJhbV9zdGFydCgxKTsKLQkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgKENGR19TRFJBTV9CQVNFICsgZHJhbXNpemUpLCAweDgwMDAwMDAwKTsKKwkJdGVzdDIgPSBnZXRfcmFtX3NpemUoKGxvbmcgKikgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGRyYW1zaXplKSwgMHg4MDAwMDAwMCk7CiAJfQogCWlmICh0ZXN0MSA+IHRlc3QyKSB7CiAJCXNkcmFtX3N0YXJ0KDApOwpAQCAtMTQ1LDcgKzE0NSw3IEBACiAJZWxzZQogCQkqKHZ1X2xvbmcgKikgTVBDNVhYWF9TRFJBTV9DUzFDRkcgPSBkcmFtc2l6ZTsgLyogZGlzYWJsZWQgKi8KIAotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogcmV0cmlldmUgc2l6ZSBvZiBtZW1vcnkgY29ubmVjdGVkIHRvIFNEUkFNIENTMCAqLwogCWRyYW1zaXplID0gKih2dV9sb25nICopIE1QQzVYWFhfU0RSQU1fQ1MwQ0ZHICYgMHhGRjsKQEAgLTE2MSw3ICsxNjEsNyBAQAogCWVsc2UKIAkJZHJhbXNpemUyID0gMDsKIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIAkvKgogCSAqIE9uIE1QQzUyMDBCIHdlIG5lZWQgdG8gc2V0IHRoZSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gZGVsYXkgaW4gdGhlCmRpZmYgLS1naXQgYS9ib2FyZC92ZXJzYXRpbGUvZmxhc2guYyBiL2JvYXJkL3ZlcnNhdGlsZS9mbGFzaC5jCmluZGV4IGJiZTVkZjcuLjNiZGM4OTUgMTAwNjQ0Ci0tLSBhL2JvYXJkL3ZlcnNhdGlsZS9mbGFzaC5jCisrKyBiL2JvYXJkL3ZlcnNhdGlsZS9mbGFzaC5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI2RlZmluZSBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTEwMSw3ICsxMDEsNyBAQAogewogCWludCBpOwogCXVsb25nIHNpemUgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkgICAgICAgIGZsYXNoX3ZwcCgxKTsKQEAgLTExOSw4ICsxMTksOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLCAmZmxhc2hfaW5mb1swXSk7CisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsICZmbGFzaF9pbmZvWzBdKTsKIAogCXJldHVybiBzaXplOwogfQpAQCAtMjQ2LDEwICsyNDYsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMzQyLDcgKzM0Miw3IEBACiAJCQkJKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0KIAkJCQkoRlBXKSAweDAwODAwMDgwKSB7CiAJCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4KLQkJCQkJQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQkJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CkBAIC00OTMsNyArNDkzLDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlmbGFzaF92cHAoMCk7CiAJCQlyZXR1cm4gKDEpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdzdvL2NtZF92cGQuYyBiL2JvYXJkL3c3by9jbWRfdnBkLmMKaW5kZXggZmRkNmNlYi4uMzEwZmRlMCAxMDA2NDQKLS0tIGEvYm9hcmQvdzdvL2NtZF92cGQuYworKysgYi9ib2FyZC93N28vY21kX3ZwZC5jCkBAIC0zNSw3ICszNSw3IEBACiBpbnQgZG9fdnBkIChjbWRfdGJsX3QgKiBjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJVlBEIHZwZDsJCQkvKiBCb2FyZCBzcGVjaWZpYyBkYXRhIHN0cnVjdCAqLwotCXVjaGFyIGRldl9hZGRyID0gQ0ZHX0RFRl9FRVBST01fQUREUjsKKwl1Y2hhciBkZXZfYWRkciA9IENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSOwogCiAJLyogVmFsaWRhdGUgdXNhZ2UgKi8KIAlpZiAoYXJnYyA+IDIpIHsKZGlmZiAtLWdpdCBhL2JvYXJkL3c3by9mbGFzaC5jIGIvYm9hcmQvdzdvL2ZsYXNoLmMKaW5kZXggMzI4MTVmYi4uNjc3NDk0OSAxMDA2NDQKLS0tIGEvYm9hcmQvdzdvL2ZsYXNoLmMKKysrIGIvYm9hcmQvdzdvL2ZsYXNoLmMKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAKLWZsYXNoX2luZm9fdCAgICBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190ICAgIGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOyAvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGdW5jdGlvbnMKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICB1bnNpZ25lZCBsb25nIHNpemVfYjEsIGJhc2VfYjE7CiAKICAgICAvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0gICAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworICAgIGZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAgICAgfQogCkBAIC05MCwxMyArOTAsMTMgQEAKICAgICAvKiBQcm90ZWN0IHRoZSBGUEdBIGltYWdlICovCiAgICAgKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAogCQkJRkxBU0hfQkFTRTFfUFJFTElNLAotCQkJRkxBU0hfQkFTRTFfUFJFTElNICsgQ0ZHX0ZQR0FfSU1BR0VfTEVOIC0gMSwKKwkJCUZMQVNIX0JBU0UxX1BSRUxJTSArIENPTkZJR19TWVNfRlBHQV9JTUFHRV9MRU4gLSAxLAogCQkJJmZsYXNoX2luZm9bMV0pOwogCiAgICAgLyogUHJvdGVjdCB0aGUgZGVmYXVsdCBib290IGltYWdlICovCiAgICAgKHZvaWQpZmxhc2hfcHJvdGVjdChGTEFHX1BST1RFQ1RfU0VULAotCQkJRkxBU0hfQkFTRTFfUFJFTElNICsgQ0ZHX0ZQR0FfSU1BR0VfTEVOLAotCQkJRkxBU0hfQkFTRTFfUFJFTElNICsgQ0ZHX0ZQR0FfSU1BR0VfTEVOICsgMHg2MDAwMDAgLSAxLAorCQkJRkxBU0hfQkFTRTFfUFJFTElNICsgQ09ORklHX1NZU19GUEdBX0lNQUdFX0xFTiwKKwkJCUZMQVNIX0JBU0UxX1BSRUxJTSArIENPTkZJR19TWVNfRlBHQV9JTUFHRV9MRU4gKyAweDYwMDAwMCAtIDEsCiAJCQkmZmxhc2hfaW5mb1sxXSk7CiAKICAgICAvKiBTZXR1cCBvZmZzZXRzIGZvciBNYWluIEZsYXNoICovCkBAIC0yOTQsMTEgKzI5NCwxMSBAQAogCX0KICAgICB9CiAKLSAgICAvKiBNYWtlIHN1cmUgd2UgZG9uJ3QgZXhjZWVkIENGR19NQVhfRkxBU0hfU0VDVCAqLwotICAgIGlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKyAgICAvKiBNYWtlIHN1cmUgd2UgZG9uJ3QgZXhjZWVkIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgKi8KKyAgICBpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogICAgIH0KIAogICAgIC8qIHNldCB1cCBzZWN0b3Igc3RhcnQgYWRkcmVzcyB0YWJsZSAqLwpAQCAtNTIwLDcgKzUyMCw3IEBACiAJICAgIHVkZWxheSAoMTAwMCk7CiAKIAkgICAgd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkgICAgcHJpbnRmICgiVGltZW91dFxuIik7CiAJCSAgICAqYWRkciA9IDB4MDBCMDAwQjA7ICAgICAgLyogc3VzcGVuZCBlcmFzZSAgICAgICovCiAJCSAgICAqYWRkciA9IDB4MDBGRjAwRkY7ICAgICAgLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC03ODcsNyArNzg3LDcgQEAKIAogICAgIHdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIDB4MDA4MDAwODApICE9IDB4MDA4MDAwODApIHsKIAlXQVRDSERPR19SRVNFVCgpOwotCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCSAgICAqYWRkciA9IDB4MDBGRjAwRkY7ICAgICAgICAgICAgICAvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCSAgICByZXR1cm4gKDEpOwogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3c3by9pbml0LlMgYi9ib2FyZC93N28vaW5pdC5TCmluZGV4IDM1ZDdkYmMuLjJmZDg0YmEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3c3by9pbml0LlMKKysrIGIvYm9hcmQvdzdvL2luaXQuUwpAQCAtNjQsMTEgKzY0LDExIEBACiAJbWZscglyMwkJCS8qIGdldCBhZGRyZXNzIG9mIC4uZ2V0QWRkciAqLwogCiAJLyogQ2FsY3VsYXRlIG51bWJlciBvZiBjYWNoZSBsaW5lcyBmb3IgdGhpcyBmdW5jdGlvbiAqLwotCWFkZGkJcjQsIDAsICgoKC5MZmUwIC0gLi5nZXRBZGRyKSAvIENGR19DQUNIRUxJTkVfU0laRSkgKyAyKQorCWFkZGkJcjQsIDAsICgoKC5MZmUwIC0gLi5nZXRBZGRyKSAvIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpICsgMikKIAltdGN0cglyNAogLi5lYmNsb29wOgogCWljYnQJcjAsIHIzCQkJLyogcHJlZmV0Y2ggY2FjaGUgbGluZSBmb3IgYWRkciBpbiByMyovCi0JYWRkaQlyMywgcjMsIENGR19DQUNIRUxJTkVfU0laRSAvKiBtb3ZlIHRvIG5leHQgY2FjaGUgbGluZSAqLworCWFkZGkJcjMsIHIzLCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFIC8qIG1vdmUgdG8gbmV4dCBjYWNoZSBsaW5lICovCiAJYmRuegkuLmViY2xvb3AJCS8qIGNvbnRpbnVlIGZvciAkQ1RSIGNhY2hlIGxpbmVzICovCiAKIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwMywxNCArMTAzLDE0IEBACiAJICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAJYWRkaQlyMywgMCwgcGIwYXAKIAltdGRjcgllYmNjZmdhLCByMwotCWFkZGlzCXI0LCAwLCBDRkdfVzdPX0VCQ19QQjBBUEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX1c3T19FQkNfUEIwQVBAbAorCWFkZGlzCXI0LCAwLCBDT05GSUdfU1lTX1c3T19FQkNfUEIwQVBAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfVzdPX0VCQ19QQjBBUEBsCiAJbXRkY3IJZWJjY2ZnZCwgcjQKIAogCWFkZGkJcjMsIDAsIHBiMGNyCiAJbXRkY3IJZWJjY2ZnYSwgcjMKLQlhZGRpcwlyNCwgMCwgQ0ZHX1c3T19FQkNfUEIwQ1JAaAotCW9yaQlyNCwgcjQsIENGR19XN09fRUJDX1BCMENSQGwKKwlhZGRpcwlyNCwgMCwgQ09ORklHX1NZU19XN09fRUJDX1BCMENSQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX1c3T19FQkNfUEIwQ1JAbAogCW10ZGNyCWViY2NmZ2QsIHI0CiAKIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExOCwxNCArMTE4LDE0IEBACiAJICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAJYWRkaQlyMywgMCwgcGI3YXAKIAltdGRjcgllYmNjZmdhLCByMwotCWFkZGlzCXI0LCAwLCBDRkdfVzdPX0VCQ19QQjdBUEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX1c3T19FQkNfUEI3QVBAbAorCWFkZGlzCXI0LCAwLCBDT05GSUdfU1lTX1c3T19FQkNfUEI3QVBAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfVzdPX0VCQ19QQjdBUEBsCiAJbXRkY3IJZWJjY2ZnZCwgcjQKIAogCWFkZGkJcjMsIDAsIHBiN2NyCiAJbXRkY3IJZWJjY2ZnYSwgcjMKLQlhZGRpcwlyNCwgMCwgQ0ZHX1c3T19FQkNfUEI3Q1JAaAotCW9yaQlyNCwgcjQsIENGR19XN09fRUJDX1BCN0NSQGwKKwlhZGRpcwlyNCwgMCwgQ09ORklHX1NZU19XN09fRUJDX1BCN0NSQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX1c3T19FQkNfUEI3Q1JAbAogCW10ZGNyCWViY2NmZ2QsIHI0CiAKIAkvKiBXZSBhcmUgYWxsIGRvbmUgKi8KZGlmZiAtLWdpdCBhL2JvYXJkL3c3by9wb3N0Mi5jIGIvYm9hcmQvdzdvL3Bvc3QyLmMKaW5kZXggNmVlMzNlYi4uMWRmYWEyZiAxMDA2NDQKLS0tIGEvYm9hcmQvdzdvL3Bvc3QyLmMKKysrIGIvYm9hcmQvdzdvL3Bvc3QyLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19SVENfTTQ4VDM1QSkKIHZvaWQgcnRjdGVzdCh2b2lkKQogewotICAgIHZvbGF0aWxlIHVjaGFyICp0Y2hhciA9ICh1Y2hhciopKENGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fU0laRSAtIDkpOworICAgIHZvbGF0aWxlIHVjaGFyICp0Y2hhciA9ICh1Y2hhciopKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgQ09ORklHX1NZU19OVlJBTV9TSVpFIC0gOSk7CiAgICAgc3RydWN0IHJ0Y190aW1lIHRtcDsKIAogICAgIC8qIHNldCB1cCBsZWQgY29kZSBmb3IgUlRDIHRlc3RzICovCkBAIC04OSw5ICs4OSw5IEBACiAgICAgaHlzdCA9IGR0dF9yZWFkKHNlbnNvciwgRFRUX1RFTVBfSFlTVCkgLyAyNTY7CiAKICAgICAvKiBjaGVjayB2YWx1ZXMgKi8KLSAgICBpZiAoKGh5c3QgIT0gKENGR19EVFRfTUFYX1RFTVAgLSBDRkdfRFRUX0hZU1RFUkVTSVMpKSB8fAotCSh0cmlwICE9IENGR19EVFRfTUFYX1RFTVApIHx8Ci0JKHRlbXAgPCBDRkdfRFRUX0xPV19URU1QKSB8fCAodGVtcCA+IENGR19EVFRfTUFYX1RFTVApKQorICAgIGlmICgoaHlzdCAhPSAoQ09ORklHX1NZU19EVFRfTUFYX1RFTVAgLSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTKSkgfHwKKwkodHJpcCAhPSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUCkgfHwKKwkodGVtcCA8IENPTkZJR19TWVNfRFRUX0xPV19URU1QKSB8fCAodGVtcCA+IENPTkZJR19TWVNfRFRUX01BWF9URU1QKSkKIAlyZXR1cm4gMTsKIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYm9hcmQvdzdvL3ZwZC5jIGIvYm9hcmQvdzdvL3ZwZC5jCmluZGV4IDJjZTE1NjguLjU3NTU4ZTggMTAwNjQ0Ci0tLSBhL2JvYXJkL3c3by92cGQuYworKysgYi9ib2FyZC93N28vdnBkLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBkZWZpbmVkKFZYV09SS1MpCiAjIGluY2x1ZGUgPHN0ZGlvLmg+CiAjIGluY2x1ZGUgPHN0cmluZy5oPgotIyBkZWZpbmUgQ0ZHX0RFRl9FRVBST01fQUREUiAweGEwCisjIGRlZmluZSBDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiAweGEwCiBleHRlcm4gY2hhciBpaWNSZWFkQnl0ZSggY2hhciwgY2hhciApOwogZXh0ZXJuIHVsb25nX3QgY3JjMzIoIHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgbG9uZyApOwogI2Vsc2UKQEAgLTQ3LDcgKzQ3LDcgQEAKICAgICAgKiBTRFJBTSBTUEQgaW4gdGhlIGZpcnN0IDEyOCBieXRlcywKICAgICAgKiBzbyBza2V3IHRoZSBvZmZzZXQuCiAgICAgICovCi0gICAgaWYgKGRldl9hZGRyID09IENGR19ERUZfRUVQUk9NX0FERFIpCisgICAgaWYgKGRldl9hZGRyID09IENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSKQogCW9mZnNldCArPSBTRFJBTV9TUERfREFUQV9TSVpFOwogCiAgICAgLyogVHJ5IHRvIHJlYWQgdGhlIEkyQyBFRVBST00gKi8KQEAgLTEyNyw3ICsxMjcsNyBAQAogICAgIC8qIENoZWNrIEV5ZWNhdGNoZXIgKi8KICAgICBpZiAoc3RybmNtcCgoY2hhciAqKSh2cGQtPmhlYWRlci5leWVjYXRjaGVyKSwgVlBEX0VZRUNBVENIRVIsIFZQRF9FWUVfU0laRSkgIT0gMCkgewogCXVuc2lnbmVkIG9mZnNldCA9IDA7Ci0JaWYgKGRldl9hZGRyID09IENGR19ERUZfRUVQUk9NX0FERFIpCisJaWYgKGRldl9hZGRyID09IENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSKQogCSAgICBvZmZzZXQgKz0gU0RSQU1fU1BEX0RBVEFfU0laRTsKIAlwcmludGYoIkVycm9yOiBWUEQgRUVQUk9NIDB4JXggY29ycnVwdCBAIDB4JXhcbiIsIGRldl9hZGRyLCBvZmZzZXQpOwogCmRpZmYgLS1naXQgYS9ib2FyZC93N28vdzdvLmMgYi9ib2FyZC93N28vdzdvLmMKaW5kZXggMGUzYjg0Yy4uMjJjZGZjZCAxMDA2NDQKLS0tIGEvYm9hcmQvdzdvL3c3by5jCisrKyBiL2JvYXJkL3c3by93N28uYwpAQCAtMTMyLDcgKzEzMiw3IEBACiAJcHV0cyAoIkJvYXJkOiAiKTsKIAogCS8qIFZQRCBkYXRhIHByZXNlbnQgaW4gSTJDIEVFUFJPTSAqLwotCWlmICh2cGRfZ2V0X2RhdGEgKENGR19ERUZfRUVQUk9NX0FERFIsICZ2cGQpID09IDApIHsKKwlpZiAodnBkX2dldF9kYXRhIChDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiwgJnZwZCkgPT0gMCkgewogCQkvKgogCQkgKiBLbm93biBib2FyZCB0eXBlLgogCQkgKi8KQEAgLTIwNCw3ICsyMDQsNyBAQAogCS8qCiAJICogUmVhZCBWUEQKIAkgKi8KLQlpZiAodnBkX2dldF9kYXRhIChDRkdfREVGX0VFUFJPTV9BRERSLCB2cGQpICE9IDApCisJaWYgKHZwZF9nZXRfZGF0YSAoQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIsIHZwZCkgIT0gMCkKIAkJcmV0dXJuOwogCiAJLyoKZGlmZiAtLWdpdCBhL2JvYXJkL3c3by93YXRjaGRvZy5jIGIvYm9hcmQvdzdvL3dhdGNoZG9nLmMKaW5kZXggNGJiZDk0Zi4uMTMxMzk5YyAxMDA2NDQKLS0tIGEvYm9hcmQvdzdvL3dhdGNoZG9nLmMKKysrIGIvYm9hcmQvdzdvL3dhdGNoZG9nLmMKQEAgLTMyLDcgKzMyLDcgQEAKIAogdm9pZCBod193YXRjaGRvZ19yZXNldCh2b2lkKQogewotICAgIHZvbGF0aWxlIHVzaG9ydCAqaHdkID0gKHVzaG9ydCAqKShDRkdfVzdPX0VCQ19QQjdDUiAmIDB4ZmZmMDAwMDApOworICAgIHZvbGF0aWxlIHVzaG9ydCAqaHdkID0gKHVzaG9ydCAqKShDT05GSUdfU1lTX1c3T19FQkNfUEI3Q1IgJiAweGZmZjAwMDAwKTsKIAogICAgIC8qCiAgICAgICogUmVhZCB0aGUgTE1HJ3MgaHdkIHJlZ2lzdGVyIGFuZCB0b2dnbGUgdGhlCmRpZmYgLS1naXQgYS9ib2FyZC93ZXBlcDI1MC9mbGFzaC5jIGIvYm9hcmQvd2VwZXAyNTAvZmxhc2guYwppbmRleCA2MjIzZWMxLi5jNmU5MTcxIDEwMDY0NAotLS0gYS9ib2FyZC93ZXBlcDI1MC9mbGFzaC5jCisrKyBiL2JvYXJkL3dlcGVwMjUwL2ZsYXNoLmMKQEAgLTgyLDcgKzgyLDcgQEAKICNlbmRpZgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwogCiBzdGF0aWMgRkxBU0hfQlVTX1JFVCBmbGFzaF9zdGF0dXNfcmVnICh2b2lkKQogewpAQCAtMTA5LDcgKzEwOSw3IEBACiAJcmV0dXJuIG9rOwogfQogCi0jaWYgKCBDRkdfTUFYX0ZMQVNIX0JBTktTICE9IDEgKQorI2lmICggQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgIT0gMSApCiAjICBlcnJvciAiV0VQIHBsYXRmb3JtIGhhcyBvbmx5IG9uZSBmbGFzaCBiYW5rISIKICNlbmRpZgogCkBAIC0xMjAsMTEgKzEyMCwxMSBAQAogCUZMQVNIX0JVUyBhZGRyZXNzID0gV0VQX0ZMQVNIX0JBU0U7CiAKIAlmbGFzaF9pbmZvWzBdLnNpemUgPSBXRVBfRkxBU0hfQkFOS19TSVpFOwotCWZsYXNoX2luZm9bMF0uc2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCWZsYXNoX2luZm9bMF0uc2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAlmbGFzaF9pbmZvWzBdLmZsYXNoX2lkID0gSU5URUxfTUFOVUZBQ1Q7Ci0JbWVtc2V0IChmbGFzaF9pbmZvWzBdLnByb3RlY3QsIDAsIENGR19NQVhfRkxBU0hfU0VDVCk7CisJbWVtc2V0IChmbGFzaF9pbmZvWzBdLnByb3RlY3QsIDAsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfU0VDVDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7IGkrKykgewogCQlmbGFzaF9pbmZvWzBdLnN0YXJ0W2ldID0gYWRkcmVzczsKICNpZmRlZiBXRVBfRkxBU0hfVU5MT0NLCiAJCS8qIFNvbWUgZGV2aWNlcyBhcmUgaHcgbG9ja2VkIGFmdGVyIHN0YXJ0LiAqLwpAQCAtMTM3LDggKzEzNyw4IEBACiAJfQogCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJCQkgICBDRkdfRkxBU0hfQkFTRSwKLQkJCQkgICBDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCQkgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQkJICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJCSAgICZmbGFzaF9pbmZvWzBdKTsKIAogCWZsYXNoX3Byb3RlY3QgKEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0yMDksNyArMjA5LDcgQEAKIAogCQkqYWRkcmVzcyA9IEZMQVNIX0NNRCAoQ0ZJX0lOVEVMX0NNRF9CTE9DS19FUkFTRSk7CiAJCSphZGRyZXNzID0gRkxBU0hfQ01EIChDRklfSU5URUxfQ01EX0NPTkZJUk0pOwotCQlpZiAoZmxhc2hfcmVhZHkgKENGR19GTEFTSF9FUkFTRV9UT1VUKSkgeworCQlpZiAoZmxhc2hfcmVhZHkgKENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkpIHsKIAkJCSphZGRyZXNzID0gRkxBU0hfQ01EIChDRklfSU5URUxfQ01EX0NMRUFSX1NUQVRVU19SRUdJU1RFUik7CiAJCQlwcmludGYgKCJvay5cbiIpOwogCQl9IGVsc2UgewpAQCAtMjU3LDcgKzI1Nyw3IEBACiAJKmFkZHJlc3MgPSBGTEFTSF9DTUQgKENGSV9JTlRFTF9DTURfUFJPR1JBTTEpOwogCSphZGRyZXNzID0gZGF0YTsKIAotCWlmICghZmxhc2hfcmVhZHkgKENGR19GTEFTSF9XUklURV9UT1VUKSkgeworCWlmICghZmxhc2hfcmVhZHkgKENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkpIHsKIAkJKmFkZHJlc3MgPSBGTEFTSF9DTUQgKENGSV9JTlRFTF9DTURfU1VTUEVORCk7CiAJCXJjID0gRVJSX1RJTU9VVDsKIAkJcHJpbnRmICgidGltZW91dCEgQWJvcnRpbmcuLi5cbiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQvd2VzdGVsL2FteDg2MC9hbXg4NjAuYyBiL2JvYXJkL3dlc3RlbC9hbXg4NjAvYW14ODYwLmMKaW5kZXggNDc0MmFhZmMuLjkxZGNjMGQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3dlc3RlbC9hbXg4NjAvYW14ODYwLmMKKysrIGIvYm9hcmQvd2VzdGVsL2FteDg2MC9hbXg4NjAuYwpAQCAtNjQsNyArNjQsNyBAQAogcGh5c19zaXplX3QgaW5pdGRyYW0gKGludCBib2FyZF90eXBlKQogewogCi0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAkvKiBBTVg4NjA6IGhhcyA0IE1iIG9mIDYwbnMgRURPIERSQU0sIHNvIHN0YXJ0IERSQU0gYXQgMCAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvd2VzdGVsL2FteDg2MC9mbGFzaC5jIGIvYm9hcmQvd2VzdGVsL2FteDg2MC9mbGFzaC5jCmluZGV4IDc3NjhlMmQuLmZlOGJjZTQgMTAwNjQ0Ci0tLSBhL2JvYXJkL3dlc3RlbC9hbXg4NjAvZmxhc2guYworKysgYi9ib2FyZC93ZXN0ZWwvYW14ODYwL2ZsYXNoLmMKQEAgLTI0LDExICsyNCwxMSBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1wYzh4eC5oPgogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKICMgaWZuZGVmICBDT05GSUdfRU5WX0FERFIKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTYwLDEzICs2MCwxMyBAQAogCiB1bnNpZ25lZCBsb25nIGZsYXNoX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl1bnNpZ25lZCBsb25nIHNpemVfYjAsIHNpemVfYjE7CiAJaW50IGk7CiAKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSkgewogCQlmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID0gRkxBU0hfVU5LTk9XTjsKIAl9CiAKQEAgLTExMywyNCArMTEzLDI0IEBACiAJCW1lbWN0bC0+bWVtY19icjEsIG1lbWN0bC0+bWVtY19vcjEpOwogCiAJLyogUmVtYXAgRkxBU0ggYWNjb3JkaW5nIHRvIHJlYWwgc2l6ZSAqLwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IwICYgT1JfQU1fTVNLKTsKLQltZW1jdGwtPm1lbWNfYnIwID0gKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX01TX0dQQ00gfCBCUl9WOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCB8ICgtc2l6ZV9iMCAmIE9SX0FNX01TSyk7CisJbWVtY3RsLT5tZW1jX2JyMCA9IChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfR1BDTSB8IEJSX1Y7CiAKIAlERUJVR0YoIiMjIEJSMDogMHglMDh4ICAgIE9SMDogMHglMDh4XG4iLAogCQltZW1jdGwtPm1lbWNfYnIwLCBtZW1jdGwtPm1lbWNfb3IwKTsKIAogCS8qIFJlLWRvIHNpemluZyB0byBnZXQgZnVsbCBjb3JyZWN0IGluZm8gKi8KLQlzaXplX2IwID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKilDRkdfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOworCXNpemVfYjAgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCi0JZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFLCAmZmxhc2hfaW5mb1swXSk7CisJZmxhc2hfZ2V0X29mZnNldHMgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgJmZsYXNoX2luZm9bMF0pOwogCiAJZmxhc2hfaW5mb1swXS5zaXplID0gc2l6ZV9iMDsKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSwKLQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSttb25pdG9yX2ZsYXNoX2xlbi0xLAorCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UrbW9uaXRvcl9mbGFzaF9sZW4tMSwKIAkJICAgICAgJmZsYXNoX2luZm9bMF0pOwogI2VuZGlmCiAKQEAgLTE0MywyNiArMTQzLDI2IEBACiAjZW5kaWYKIAogCWlmIChzaXplX2IxKSB7Ci0JCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1JfVElNSU5HX0ZMQVNIIHwgKC1zaXplX2IxICYgT1JfQU1fTVNLKTsKLQkJbWVtY3RsLT5tZW1jX2JyMSA9ICgoQ0ZHX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAorCQltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggfCAoLXNpemVfYjEgJiBPUl9BTV9NU0spOworCQltZW1jdGwtPm1lbWNfYnIxID0gKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBzaXplX2IwKSAmIEJSX0JBX01TSykgfAogCQkJCSAgIEJSX01TX0dQQ00gfCBCUl9WOwogCiAJCURFQlVHRigiIyMgQlIxOiAweCUwOHggICAgT1IxOiAweCUwOHhcbiIsCiAJCQltZW1jdGwtPm1lbWNfYnIxLCBtZW1jdGwtPm1lbWNfb3IxKTsKIAogCQkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCi0JCXNpemVfYjEgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKShDRkdfRkxBU0hfQkFTRSArIHNpemVfYjApLAorCQlzaXplX2IxID0gZmxhc2hfZ2V0X3NpemUoKHZ1X2xvbmcgKikoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCksCiAJCQkJCSAgJmZsYXNoX2luZm9bMV0pOwogCiAJCWZsYXNoX2luZm9bMV0uc2l6ZSA9IHNpemVfYjE7CiAKLQkJZmxhc2hfZ2V0X29mZnNldHMgKENGR19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOworCQlmbGFzaF9nZXRfb2Zmc2V0cyAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgc2l6ZV9iMCwgJmZsYXNoX2luZm9bMV0pOwogCi0jIGlmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKKyMgaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCiAJCS8qIG1vbml0b3IgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCiAJCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKLQkJCSAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK21vbml0b3JfZmxhc2hfbGVuLTEsCiAJCQkgICAgICAmZmxhc2hfaW5mb1sxXSk7CiAjIGVuZGlmCiAKQEAgLTUwMyw3ICs1MDMsNyBAQAogCWxhc3QgID0gc3RhcnQ7CiAJYWRkciA9ICh2dV9sb25nKikoaW5mby0+c3RhcnRbbF9zZWN0XSk7CiAJd2hpbGUgKChhZGRyWzBdICYgMHgwMDgwMDA4MCkgIT0gMHgwMDgwMDA4MCkgewotCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtNjI2LDcgKzYyNiw3IEBACiAJLyogZGF0YSBwb2xsaW5nIGZvciBENyAqLwogCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAl3aGlsZSAoKCooKHZ1X2xvbmcgKilkZXN0KSAmIDB4MDA4MDAwODApICE9IChkYXRhICYgMHgwMDgwMDA4MCkpIHsKLQkJaWYgKGdldF90aW1lcihzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJcmV0dXJuICgxKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2JvYXJkL3hhZW5pYXgvZmxhc2guYyBiL2JvYXJkL3hhZW5pYXgvZmxhc2guYwppbmRleCBjZDI1N2RmLi5iMDUxYzg5IDEwMDY0NAotLS0gYS9ib2FyZC94YWVuaWF4L2ZsYXNoLmMKKysrIGIvYm9hcmQveGFlbmlheC9mbGFzaC5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvYnl0ZW9yZGVyL3N3YWIuaD4KIAogCi1mbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KK2ZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgICAgKi8KIAogLyogQm9hcmQgc3VwcG9ydCBmb3IgMSBvciAyIGZsYXNoIGRldmljZXMgKi8KICNkZWZpbmUgRkxBU0hfUE9SVF9XSURUSDMyCkBAIC02NSw3ICs2NSw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgoRlBXICopIFBIWVNfRkxBU0hfMSwgJmZsYXNoX2luZm9baV0pOwpAQCAtODUsOCArODUsOCBAQAogCS8qIFByb3RlY3QgbW9uaXRvciBhbmQgZW52aXJvbm1lbnQgc2VjdG9ycwogCSAqLwogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULAotCQkJQ0ZHX0ZMQVNIX0JBU0UsCi0JCQlDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKKwkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwKIAkJCSZmbGFzaF9pbmZvWzBdICk7CiAKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKQEAgLTIwMywxMCArMjAzLDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJYWRkclswXSA9IChGUFcpIDB4MDBGRjAwRkY7CQkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwpAQCAtMjc2LDcgKzI3Niw3IEBACiAJCQkqYWRkciA9IChGUFcpIDB4MDBEMDAwRDA7CS8qIGVyYXNlIGNvbmZpcm0gKi8KIAogCQkJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpIHsKKwkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCkgewogCQkJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCQkJKmFkZHIgPSAoRlBXKSAweDAwQjAwMEIwOwkvKiBzdXNwZW5kIGVyYXNlICAgICAqLwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc2V0IHRvIHJlYWQgbW9kZSAqLwpAQCAtNDEwLDcgKzQxMCw3IEBACiAKIAkvKiB3YWl0IHdoaWxlIHBvbGxpbmcgdGhlIHN0YXR1cyByZWdpc3RlciAqLwogCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCkgewogCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXN0b3JlIHJlYWQgbW9kZSAqLwogCQkJcmV0dXJuICgxKTsKIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQveGFlbmlheC9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC94YWVuaWF4L2xvd2xldmVsX2luaXQuUwppbmRleCBmZTNlNzEyLi41N2UxNjIwIDEwMDY0NAotLS0gYS9ib2FyZC94YWVuaWF4L2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC94YWVuaWF4L2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KIAkubWFjcm8gQ1BXQUlUIHJlZwpAQCAtNDcsNjcgKzQ3LDY3IEBACiAJLyogU2V0IHVwIEdQSU8gcGlucyBmaXJzdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJbGRyCXIwLD1HUFNSMAotCWxkcglyMSw9Q0ZHX0dQU1IwX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUFNSMF9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HUFNSMQotCWxkcglyMSw9Q0ZHX0dQU1IxX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUFNSMV9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HUFNSMgotCWxkcglyMSw9Q0ZHX0dQU1IyX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUFNSMl9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HUENSMAotCWxkcglyMSw9Q0ZHX0dQQ1IwX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUENSMF9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HUENSMQotCWxkcglyMSw9Q0ZHX0dQQ1IxX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUENSMV9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HUENSMgotCWxkcglyMSw9Q0ZHX0dQQ1IyX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUENSMl9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HUERSMAotCWxkcglyMSw9Q0ZHX0dQRFIwX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUERSMF9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HUERSMQotCWxkcglyMSw9Q0ZHX0dQRFIxX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUERSMV9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HUERSMgotCWxkcglyMSw9Q0ZHX0dQRFIyX1ZBTAorCWxkcglyMSw9Q09ORklHX1NZU19HUERSMl9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HQUZSMF9MCi0JbGRyCXIxLD1DRkdfR0FGUjBfTF9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR0FGUjBfTF9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HQUZSMF9VCi0JbGRyCXIxLD1DRkdfR0FGUjBfVV9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HQUZSMV9MCi0JbGRyCXIxLD1DRkdfR0FGUjFfTF9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR0FGUjFfTF9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HQUZSMV9VCi0JbGRyCXIxLD1DRkdfR0FGUjFfVV9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR0FGUjFfVV9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HQUZSMl9MCi0JbGRyCXIxLD1DRkdfR0FGUjJfTF9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1HQUZSMl9VCi0JbGRyCXIxLD1DRkdfR0FGUjJfVV9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfR0FGUjJfVV9WQUwKIAlzdHIJcjEsW3IwXQogCiAJbGRyCXIwLD1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCXIxLD1DRkdfUFNTUl9WQUwKKwlsZHIJcjEsPUNPTkZJR19TWVNfUFNTUl9WQUwKIAlzdHIJcjEsW3IwXQogCiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtMTQ1LDE3ICsxNDUsMTcgQEAKIAkvKiBNU0MgcmVnaXN0ZXJzOiB0aW1pbmcsIGJ1cyB3aWR0aCwgbWVtIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICovCiAKIAkvKiBNU0MwOiBuQ1MoMCwxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyICAgICByMiw9Q0ZHX01TQzBfVkFMCisJbGRyICAgICByMiw9Q09ORklHX1NZU19NU0MwX1ZBTAogCXN0ciAgICAgcjIsW3IxLCAjTVNDMF9PRkZTRVRdCiAJbGRyICAgICByMixbcjEsICNNU0MwX09GRlNFVF0JLyogcmVhZCBiYWNrIHRvIGVuc3VyZSBkYXRhIGxhdGNoZXMgKi8KIAogCS8qIE1TQzE6IG5DUygyLDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTVNDMV9WQUwKKwlsZHIgICAgIHIyLD1DT05GSUdfU1lTX01TQzFfVkFMCiAJc3RyICAgICByMixbcjEsICNNU0MxX09GRlNFVF0KIAlsZHIgICAgIHIyLFtyMSwgI01TQzFfT0ZGU0VUXQogCiAJLyogTVNDMjogbkNTKDQsNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsPUNGR19NU0MyX1ZBTAorCWxkciAgICAgcjIsPUNPTkZJR19TWVNfTVNDMl9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01TQzJfT0ZGU0VUXQogCWxkciAgICAgcjIsW3IxLCAjTVNDMl9PRkZTRVRdCiAKQEAgLTE2NCwzNyArMTY0LDM3IEBACiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAJLyogTUVDUjogTWVtb3J5IEV4cGFuc2lvbiBDYXJkIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsPUNGR19NRUNSX1ZBTAorCWxkciAgICAgcjIsPUNPTkZJR19TWVNfTUVDUl9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01FQ1JfT0ZGU0VUXQogCWxkcglyMixbcjEsICNNRUNSX09GRlNFVF0KIAogCS8qIE1DTUVNMDogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAwIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTUNNRU0wX1ZBTAorCWxkciAgICAgcjIsPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogCXN0ciAgICAgcjIsW3IxLCAjTUNNRU0wX09GRlNFVF0KIAlsZHIJcjIsW3IxLCAjTUNNRU0wX09GRlNFVF0KIAogCS8qIE1DTUVNMTogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAxIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTUNNRU0xX1ZBTAorCWxkciAgICAgcjIsPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAogCXN0ciAgICAgcjIsW3IxLCAjTUNNRU0xX09GRlNFVF0KIAlsZHIJcjIsW3IxLCAjTUNNRU0xX09GRlNFVF0KIAogCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTUNBVFQwX1ZBTAorCWxkciAgICAgcjIsPUNPTkZJR19TWVNfTUNBVFQwX1ZBTAogCXN0ciAgICAgcjIsW3IxLCAjTUNBVFQwX09GRlNFVF0KIAlsZHIJcjIsW3IxLCAjTUNBVFQwX09GRlNFVF0KIAogCS8qIE1DQVRUMTogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAxICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTUNBVFQxX1ZBTAorCWxkciAgICAgcjIsPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogCXN0ciAgICAgcjIsW3IxLCAjTUNBVFQxX09GRlNFVF0KIAlsZHIJcjIsW3IxLCAjTUNBVFQxX09GRlNFVF0KIAogCS8qIE1DSU8wOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLD1DRkdfTUNJTzBfVkFMCisJbGRyICAgICByMiw9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIgICAgIHIyLFtyMSwgI01DSU8wX09GRlNFVF0KIAlsZHIJcjIsW3IxLCAjTUNJTzBfT0ZGU0VUXQogCiAJLyogTUNJTzE6IENhcmQgSW50ZXJmYWNlIEkvTyBTcGFjZSBUaW1pbmcsIHNsb3QgMSAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsPUNGR19NQ0lPMV9WQUwKKwlsZHIgICAgIHIyLD1DT05GSUdfU1lTX01DSU8xX1ZBTAogCXN0ciAgICAgcjIsW3IxLCAjTUNJTzFfT0ZGU0VUXQogCWxkcglyMixbcjEsICNNQ0lPMV9PRkZTRVRdCiAKQEAgLTIwNyw3ICsyMDcsNyBAQAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogCUAgZ2V0IHRoZSBtZHJlZnIgc2V0dGluZ3MKLQlsZHIgICAgIHI0LD1DRkdfTURSRUZSX1ZBTAorCWxkciAgICAgcjQsPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCiAJQCB3cml0ZSBiYWNrIG1kcmVmcgogCXN0ciAgICAgcjQsW3IxLCAjTURSRUZSX09GRlNFVF0KQEAgLTI2MSw3ICsyNjEsNyBAQAogCS8qIFN0ZXAgNGQ6CQkJCQkJCSovCiAJLyogZmV0Y2ggcGxhdGZvcm0gdmFsdWUgb2YgbWRjbmZnCQkJCSovCiAJQAotCWxkciAgICAgcjIsICA9Q0ZHX01EQ05GR19WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCiAJQCBkaXNhYmxlIGFsbCBzZHJhbSBiYW5rcwogCUAKQEAgLTI5Niw3ICsyOTYsNyBAQAogCS8qICAgICAgICAgIGRvY3VtZW50ZWQgaW4gU0RSQU0gZGF0YSBzaGVldHMuIFRoZSBhZGRyZXNzKGVzKSB1c2VkICAgKi8KIAkvKiAgICAgICAgICBmb3IgdGhpcyBwdXJwb3NlIG11c3Qgbm90IGJlIGNhY2hlYWJsZS4gICAgICAgICAgICAgICAgICovCiAKLQlsZHIJcjMsCT1DRkdfRFJBTV9CQVNFCisJbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKIAlzdHIJcjIsCVtyM10KIAlzdHIJcjIsCVtyM10KIAlzdHIJcjIsCVtyM10KQEAgLTMyNiw3ICszMjYsNyBAQAogCiAJLyogU3RlcCA0aDogV3JpdGUgTURNUlMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi0JbGRyICAgICByMiwJPUNGR19NRE1SU19WQUwKKwlsZHIgICAgIHIyLAk9Q09ORklHX1NZU19NRE1SU19WQUwKIAlzdHIgICAgIHIyLAlbcjEsICNNRE1SU19PRkZTRVRdCiAKIApAQCAtMzQyLDcgKzM0Miw3IEBACiAJbGRyICAgICByMiwgID1JQ0xSCiAJc3RyICAgICByMSwgIFtyMl0KIAotCWxkciAgICAgcjEsICA9Q0ZHX0lDTVJfVkFMIC8qIG1hc2sgYWxsIGludGVycnVwdHMgYXQgdGhlIGNvbnRyb2xsZXIgKi8KKwlsZHIgICAgIHIxLCAgPUNPTkZJR19TWVNfSUNNUl9WQUwgLyogbWFzayBhbGwgaW50ZXJydXB0cyBhdCB0aGUgY29udHJvbGxlciAqLwogCWxkciAgICAgcjIsICA9SUNNUgogCXN0ciAgICAgcjEsICBbcjJdCiAKQEAgLTM4OCw3ICszODgsNyBAQAogCUAKIHRlc3Q6CiAJbGRyICAgICByMSwgID1DS0VOCi0JbGRyICAgICByMiwgID1DRkdfQ0tFTl9WQUwKKwlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfQ0tFTl9WQUwKIAlzdHIgICAgIHIyLCAgW3IxXQogCiAJLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQveGlsaW54L21sMzAwL3NlcmlhbC5jIGIvYm9hcmQveGlsaW54L21sMzAwL3NlcmlhbC5jCmluZGV4IDk5M2RmYTMuLjQyMTU1MTMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hpbGlueC9tbDMwMC9zZXJpYWwuYworKysgYi9ib2FyZC94aWxpbngvbWwzMDAvc2VyaWFsLmMKQEAgLTQ1LDkgKzQ1LDkgQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiAjZGVmaW5lIFVTRV9DSEFOMSBcCi0JKChkZWZpbmVkIFhQQVJfVUFSVE5TNTUwXzBfQkFTRUFERFIpICYmIChkZWZpbmVkIENGR19JTklUX0NIQU4xKSkKKwkoKGRlZmluZWQgWFBBUl9VQVJUTlM1NTBfMF9CQVNFQUREUikgJiYgKGRlZmluZWQgQ09ORklHX1NZU19JTklUX0NIQU4xKSkKICNkZWZpbmUgVVNFX0NIQU4yIFwKLQkoKGRlZmluZWQgWFBBUl9VQVJUTlM1NTBfMV9CQVNFQUREUikgJiYgKGRlZmluZWQgQ0ZHX0lOSVRfQ0hBTjIpKQorCSgoZGVmaW5lZCBYUEFSX1VBUlROUzU1MF8xX0JBU0VBRERSKSAmJiAoZGVmaW5lZCBDT05GSUdfU1lTX0lOSVRfQ0hBTjIpKQogCiAjaWYgVVNFX0NIQU4xCiAjaW5jbHVkZSA8bnMxNjU1MC5oPgpAQCAtODIsMjEgKzgyLDIxIEBACiBzZXJpYWxfcHV0Yyhjb25zdCBjaGFyIGMpCiB7CiAJaWYgKGMgPT0gJ1xuJykKLQkJTlMxNjU1MF9wdXRjKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0sICdccicpOworCQlOUzE2NTUwX3B1dGMoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0sICdccicpOwogCi0JTlMxNjU1MF9wdXRjKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0sIGMpOworCU5TMTY1NTBfcHV0YyhDT01fUE9SVFNbQ09ORklHX1NZU19EVUFSVF9DSEFOXSwgYyk7CiB9CiAKIGludAogc2VyaWFsX2dldGModm9pZCkKIHsKLQlyZXR1cm4gTlMxNjU1MF9nZXRjKENPTV9QT1JUU1tDRkdfRFVBUlRfQ0hBTl0pOworCXJldHVybiBOUzE2NTUwX2dldGMoQ09NX1BPUlRTW0NPTkZJR19TWVNfRFVBUlRfQ0hBTl0pOwogfQogCiBpbnQKIHNlcmlhbF90c3RjKHZvaWQpCiB7Ci0JcmV0dXJuIE5TMTY1NTBfdHN0YyhDT01fUE9SVFNbQ0ZHX0RVQVJUX0NIQU5dKTsKKwlyZXR1cm4gTlMxNjU1MF90c3RjKENPTV9QT1JUU1tDT05GSUdfU1lTX0RVQVJUX0NIQU5dKTsKIH0KIAogdm9pZApkaWZmIC0tZ2l0IGEvYm9hcmQveGlsaW54L21sNDAxL21sNDAxLmMgYi9ib2FyZC94aWxpbngvbWw0MDEvbWw0MDEuYwppbmRleCA5NTU5MzZkLi5mMzg4Yjc3IDEwMDY0NAotLS0gYS9ib2FyZC94aWxpbngvbWw0MDEvbWw0MDEuYworKysgYi9ib2FyZC94aWxpbngvbWw0MDEvbWw0MDEuYwpAQCAtMzIsMTEgKzMyLDExIEBACiAKIHZvaWQgZG9fcmVzZXQgKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX0dQSU9fMAotCSooKHVuc2lnbmVkIGxvbmcgKikoQ0ZHX0dQSU9fMF9BRERSKSkgPQotCSAgICArKygqKCh1bnNpZ25lZCBsb25nICopKENGR19HUElPXzBfQUREUikpKTsKKyNpZmRlZiBDT05GSUdfU1lTX0dQSU9fMAorCSooKHVuc2lnbmVkIGxvbmcgKikoQ09ORklHX1NZU19HUElPXzBfQUREUikpID0KKwkgICAgKysoKigodW5zaWduZWQgbG9uZyAqKShDT05GSUdfU1lTX0dQSU9fMF9BRERSKSkpOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKIAlwdXRzICgiUmVzZXRpbmcgYm9hcmRcbiIpOwogCWFzbSAoImJyYSByMCIpOwogI2VuZGlmCkBAIC00NCwxNyArNDQsMTcgQEAKIAogaW50IGdwaW9faW5pdCAodm9pZCkKIHsKLSNpZmRlZiBDRkdfR1BJT18wCi0JKigodW5zaWduZWQgbG9uZyAqKShDRkdfR1BJT18wX0FERFIpKSA9IDB4RkZGRkZGRkY7CisjaWZkZWYgQ09ORklHX1NZU19HUElPXzAKKwkqKCh1bnNpZ25lZCBsb25nICopKENPTkZJR19TWVNfR1BJT18wX0FERFIpKSA9IDB4RkZGRkZGRkY7CiAjZW5kaWYKIAlyZXR1cm4gMDsKIH0KIAotI2lmZGVmIENGR19GU0xfMgorI2lmZGVmIENPTkZJR19TWVNfRlNMXzIKIHZvaWQgZnNsX2lzcjIgKHZvaWQgKmFyZykgewogCXZvbGF0aWxlIGludCBudW07Ci0JKigodW5zaWduZWQgaW50ICopKENGR19HUElPXzBfQUREUiArIDB4NCkpID0KLQkgICAgKysoKigodW5zaWduZWQgaW50ICopKENGR19HUElPXzBfQUREUiArIDB4NCkpKTsKKwkqKCh1bnNpZ25lZCBpbnQgKikoQ09ORklHX1NZU19HUElPXzBfQUREUiArIDB4NCkpID0KKwkgICAgKysoKigodW5zaWduZWQgaW50ICopKENPTkZJR19TWVNfR1BJT18wX0FERFIgKyAweDQpKSk7CiAJR0VUIChudW0sIDIpOwogCU5HRVQgKG51bSwgMik7CiAJcHV0cygiKiIpOwpkaWZmIC0tZ2l0IGEvYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3UtYm9vdC1yYW0ubGRzIGIvYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3UtYm9vdC1yYW0ubGRzCmluZGV4IDJjOThkMjcuLjU4ODY1NTYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy91LWJvb3QtcmFtLmxkcworKysgYi9ib2FyZC94aWxpbngvcHBjNDQwLWdlbmVyaWMvdS1ib290LXJhbS5sZHMKQEAgLTEyNyw3ICsxMjcsNyBAQAogICAgKihDT01NT04pCiAgIH0KIAotICBwcGNlbnZfYXNzZXJ0ID0gQVNTRVJUKC4gPCAweEZGRkZCMDAwLCAiLmJzcyBzZWN0aW9uIHRvbyBiaWcsIG92ZXJsYXBzIC5wcGNlbnYgc2VjdGlvbi4gUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbmZndXJhdGlvbjogQ0ZHX01PTklUT1JfQkFTRSwgQ0ZHX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CisgIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRkIwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhbmQgVEVYVF9CQVNFIG1heSBuZWVkIHRvIGJlIG1vZGlmaWVkLiIpOwogCiAgIF9lbmQgPSAuIDsKICAgUFJPVklERSAoZW5kID0gLik7CmRpZmYgLS1naXQgYS9ib2FyZC94aWxpbngvcHBjNDQwLWdlbmVyaWMvdS1ib290LXJvbS5sZHMgYi9ib2FyZC94aWxpbngvcHBjNDQwLWdlbmVyaWMvdS1ib290LXJvbS5sZHMKaW5kZXggZDVkYTAxOC4uZGViYzkxNiAxMDA2NDQKLS0tIGEvYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3UtYm9vdC1yb20ubGRzCisrKyBiL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy91LWJvb3Qtcm9tLmxkcwpAQCAtMTM3LDcgKzEzNyw3IEBACiAgICAqKENPTU1PTikKICAgfQogCi0gIHBwY2Vudl9hc3NlcnQgPSBBU1NFUlQoLiA8IDB4RkZGRkIwMDAsICIuYnNzIHNlY3Rpb24gdG9vIGJpZywgb3ZlcmxhcHMgLnBwY2VudiBzZWN0aW9uLiBQbGVhc2UgdXBkYXRlIHlvdXIgY29uZmd1cmF0aW9uOiBDRkdfTU9OSVRPUl9CQVNFLCBDRkdfTU9OSVRPUl9MRU4gYW5kIFRFWFRfQkFTRSBtYXkgbmVlZCB0byBiZSBtb2RpZmllZC4iKTsKKyAgcHBjZW52X2Fzc2VydCA9IEFTU0VSVCguIDwgMHhGRkZGQjAwMCwgIi5ic3Mgc2VjdGlvbiB0b28gYmlnLCBvdmVybGFwcyAucHBjZW52IHNlY3Rpb24uIFBsZWFzZSB1cGRhdGUgeW91ciBjb25mZ3VyYXRpb246IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFuZCBURVhUX0JBU0UgbWF5IG5lZWQgdG8gYmUgbW9kaWZpZWQuIik7CiAKICAgX2VuZCA9IC4gOwogICBQUk9WSURFIChlbmQgPSAuKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy94aWxpbnhfcHBjNDQwX2dlbmVyaWMuYyBiL2JvYXJkL3hpbGlueC9wcGM0NDAtZ2VuZXJpYy94aWxpbnhfcHBjNDQwX2dlbmVyaWMuYwppbmRleCAwODY3MjI2Li4wYzNkNjY3IDEwMDY0NAotLS0gYS9ib2FyZC94aWxpbngvcHBjNDQwLWdlbmVyaWMveGlsaW54X3BwYzQ0MF9nZW5lcmljLmMKKysrIGIvYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3hpbGlueF9wcGM0NDBfZ2VuZXJpYy5jCkBAIC0zNyw3ICszNyw3IEBACiBwaHlzX3NpemVfdCBfX2luaXRkcmFtKGludCBib2FyZF90eXBlKQogewogCXJldHVybiBnZXRfcmFtX3NpemUoWFBBUl9ERFIyX1NEUkFNX01FTV9CQVNFQUREUiwKLQkJCSAgICBDRkdfU0RSQU1fU0laRV9NQiAqIDEwMjQgKiAxMDI0KTsKKwkJCSAgICBDT05GSUdfU1lTX1NEUkFNX1NJWkVfTUIgKiAxMDI0ICogMTAyNCk7CiB9CiBwaHlzX3NpemVfdCBpbml0ZHJhbShpbnQpIF9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJfX2luaXRkcmFtIikpKTsKIApkaWZmIC0tZ2l0IGEvYm9hcmQveGlsaW54L3hpbGlueF9paWMvaWljX2FkYXB0ZXIuYyBiL2JvYXJkL3hpbGlueC94aWxpbnhfaWljL2lpY19hZGFwdGVyLmMKaW5kZXggYWQxOWFkZS4uNThhYWViNyAxMDA2NDQKLS0tIGEvYm9hcmQveGlsaW54L3hpbGlueF9paWMvaWljX2FkYXB0ZXIuYworKysgYi9ib2FyZC94aWxpbngveGlsaW54X2lpYy9paWNfYWRhcHRlci5jCkBAIC03Miw3ICs3Miw3IEBACiAJCW1lbWNweSgmc2VuZEJ1ZlsyXSwgJmRhdGFbcG9zXSwgd2xlbik7CiAKIAkJLyogU2VuZCB0byBFRVBST00gdGhyb3VnaCBpaWMgYnVzICovCi0JCXJldCA9IFhJaWNfU2VuZChYUEFSX0lJQ18wX0JBU0VBRERSLCBDRkdfSTJDX0VFUFJPTV9BRERSID4+IDEsCisJCXJldCA9IFhJaWNfU2VuZChYUEFSX0lJQ18wX0JBU0VBRERSLCBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiA+PiAxLAogCQkJCXNlbmRCdWYsIHdsZW4gKyAyKTsKIAogCQl1ZGVsYXkoSUlDX0RFTEFZKTsKQEAgLTkzLDExICs5MywxMSBAQAogCiAJLyogUHJvdmlkZSBFRVBST00gYWRkcmVzcyAqLwogCXJldCA9Ci0JICAgIFhJaWNfU2VuZChYUEFSX0lJQ18wX0JBU0VBRERSLCBDRkdfSTJDX0VFUFJPTV9BRERSID4+IDEsIGFkZHJlc3MsCisJICAgIFhJaWNfU2VuZChYUEFSX0lJQ18wX0JBU0VBRERSLCBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiA+PiAxLCBhZGRyZXNzLAogCQkgICAgICAyKTsKIAkvKiBSZWNlaXZlIGRhdGEgZnJvbSBFRVBST00gKi8KIAlyZXQgPQotCSAgICBYSWljX1JlY3YoWFBBUl9JSUNfMF9CQVNFQUREUiwgQ0ZHX0kyQ19FRVBST01fQUREUiA+PiAxLCBkYXRhLCBsZW4pOworCSAgICBYSWljX1JlY3YoWFBBUl9JSUNfMF9CQVNFQUREUiwgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgPj4gMSwgZGF0YSwgbGVuKTsKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvYm9hcmQveGlsaW54L3h1cHYycC94dXB2MnAuYyBiL2JvYXJkL3hpbGlueC94dXB2MnAveHVwdjJwLmMKaW5kZXggYjQ4MTAzZi4uYjFhNzZjMCAxMDA2NDQKLS0tIGEvYm9hcmQveGlsaW54L3h1cHYycC94dXB2MnAuYworKysgYi9ib2FyZC94aWxpbngveHVwdjJwL3h1cHYycC5jCkBAIC0zMCwxMSArMzAsMTEgQEAKIAogdm9pZCBkb19yZXNldCAodm9pZCkKIHsKLSNpZmRlZiBDRkdfR1BJT18wCi0JKigodW5zaWduZWQgbG9uZyAqKShDRkdfR1BJT18wX0FERFIpKSA9Ci0JICAgICsrKCooKHVuc2lnbmVkIGxvbmcgKikoQ0ZHX0dQSU9fMF9BRERSKSkpOworI2lmZGVmIENPTkZJR19TWVNfR1BJT18wCisJKigodW5zaWduZWQgbG9uZyAqKShDT05GSUdfU1lTX0dQSU9fMF9BRERSKSkgPQorCSAgICArKygqKCh1bnNpZ25lZCBsb25nICopKENPTkZJR19TWVNfR1BJT18wX0FERFIpKSk7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUkVTRVRfQUREUkVTUworI2lmZGVmIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwogCXB1dHMgKCJSZXNldGluZyBib2FyZFxuIik7CiAJYXNtICgiYnJhIHIwIik7CiAjZW5kaWYKQEAgLTQyLDggKzQyLDggQEAKIAogaW50IGdwaW9faW5pdCAodm9pZCkKIHsKLSNpZmRlZiBDRkdfR1BJT18wCi0JKigodW5zaWduZWQgbG9uZyAqKShDRkdfR1BJT18wX0FERFIpKSA9IDB4MDsKKyNpZmRlZiBDT05GSUdfU1lTX0dQSU9fMAorCSooKHVuc2lnbmVkIGxvbmcgKikoQ09ORklHX1NZU19HUElPXzBfQUREUikpID0gMHgwOwogI2VuZGlmCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9ib2FyZC94bTI1MC9mbGFzaC5jIGIvYm9hcmQveG0yNTAvZmxhc2guYwppbmRleCA4OTMzNTFlLi5iMDIxNDljIDEwMDY0NAotLS0gYS9ib2FyZC94bTI1MC9mbGFzaC5jCisrKyBiL2JvYXJkL3htMjUwL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI2RlZmluZSBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTg0LDcgKzg0LDcgQEAKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC0xMDQsOCArMTA0LDggQEAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMKIAkgKi8KIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCwKLQkJCUNGR19GTEFTSF9CQVNFLAotCQkJQ0ZHX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCisJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsCiAJCQkmZmxhc2hfaW5mb1swXSApOwogCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCkBAIC0yMzIsMTAgKzIzMiwxMCBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJcHJpbnRmICgiKiogRVJST1I6IHNlY3RvciBjb3VudCAlZCA+IG1heCAoJWQpICoqXG4iLAotCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDRkdfTUFYX0ZMQVNIX1NFQ1QpOwotCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDRkdfTUFYX0ZMQVNIX1NFQ1Q7CisJCQlpbmZvLT5zZWN0b3JfY291bnQsIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpOworCQlpbmZvLT5zZWN0b3JfY291bnQgPSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUOwogCX0KIAogCWFkZHJbMF0gPSAoRlBXKSAweDAwRkYwMEZGOwkJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KQEAgLTMwNSw3ICszMDUsNyBAQAogCQkJKmFkZHIgPSAoRlBXKSAweDAwRDAwMEQwOwkvKiBlcmFzZSBjb25maXJtICovCiAKIAkJCXdoaWxlICgoKHN0YXR1cyA9ICphZGRyKSAmIChGUFcpIDB4MDA4MDAwODApICE9IChGUFcpIDB4MDA4MDAwODApIHsKLQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCQkJcHJpbnRmICgiVGltZW91dFxuIik7CiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEIwMDBCMDsJLyogc3VzcGVuZCBlcmFzZSAgICAgKi8KIAkJCQkJKmFkZHIgPSAoRlBXKSAweDAwRkYwMEZGOwkvKiByZXNldCB0byByZWFkIG1vZGUgKi8KQEAgLTQzOSw3ICs0MzksNyBAQAogCiAJLyogd2FpdCB3aGlsZSBwb2xsaW5nIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKi8KIAl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQpIHsKIAkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzdG9yZSByZWFkIG1vZGUgKi8KIAkJCXJldHVybiAoMSk7CiAJCX0KQEAgLTQ4NCw3ICs0ODQsNyBAQAogCXJlc2V0X3RpbWVyX21hc2tlZCAoKTsKIAogCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpIHsKLQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfVU5MT0NLX1RPVVQpIHsKKwkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKSB7CiAJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJcmMgPSAxOwogCQkJYnJlYWs7CkBAIC01MTYsNyArNTE2LDcgQEAKIAkJCQkqYWRkciA9IElOVEVMX1BST1RFQ1Q7CS8qIHNldCAqLwogCQkJCXdoaWxlICgoKmFkZHIgJiBJTlRFTF9GSU5JU0hFRCkgIT0gSU5URUxfRklOSVNIRUQpCiAJCQkJewotCQkJCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9VTkxPQ0tfVE9VVCkKKwkJCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUKQogCQkJCQl7CiAJCQkJCQlwcmludGYoIkZsYXNoIGxvY2sgYml0IG9wZXJhdGlvbiB0aW1lZCBvdXRcbiIpOwogCQkJCQkJcmMgPSAxOwpkaWZmIC0tZ2l0IGEvYm9hcmQveG0yNTAvbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQveG0yNTAvbG93bGV2ZWxfaW5pdC5TCmluZGV4IDJlYmQzOTUuLjgyMzA1NTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL3htMjUwL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC94bTI1MC9sb3dsZXZlbF9pbml0LlMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDx2ZXJzaW9uLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KIAotRFJBTV9TSVpFOiAgLmxvbmcgICBDRkdfRFJBTV9TSVpFCitEUkFNX1NJWkU6ICAubG9uZyAgIENPTkZJR19TWVNfRFJBTV9TSVpFCiAKIC8qIHdhaXQgZm9yIGNvcHJvY2Vzc29yIHdyaXRlIGNvbXBsZXRlICovCiAJLm1hY3JvIENQV0FJVCByZWcKQEAgLTUxLDk4ICs1MSw5OCBAQAogCS8qIFNldCB1cCBHUElPIHBpbnMgZmlyc3QgKi8KIAogCWxkcglyMCwgICA9R1BTUjAKLQlsZHIJcjEsICAgPUNGR19HUFNSMF9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BTUjBfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1BTUjEKLQlsZHIJcjEsICAgPUNGR19HUFNSMV9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BTUjFfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1BTUjIKLQlsZHIJcjEsICAgPUNGR19HUFNSMl9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BTUjJfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1BDUjAKLQlsZHIJcjEsICAgPUNGR19HUENSMF9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BDUjBfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1BDUjEKLQlsZHIJcjEsICAgPUNGR19HUENSMV9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BDUjFfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1BDUjIKLQlsZHIJcjEsICAgPUNGR19HUENSMl9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1JFUjAKLQlsZHIJcjEsICAgPUNGR19HUkVSMF9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1JFUjBfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1JFUjEKLQlsZHIJcjEsICAgPUNGR19HUkVSMV9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1JFUjFfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1JFUjIKLQlsZHIJcjEsICAgPUNGR19HUkVSMl9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1JFUjJfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0ZFUjAKLQlsZHIJcjEsICAgPUNGR19HRkVSMF9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR0ZFUjBfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0ZFUjEKLQlsZHIJcjEsICAgPUNGR19HRkVSMV9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR0ZFUjFfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0ZFUjIKLQlsZHIJcjEsICAgPUNGR19HRkVSMl9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR0ZFUjJfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1BEUjAKLQlsZHIJcjEsICAgPUNGR19HUERSMF9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BEUjBfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1BEUjEKLQlsZHIJcjEsICAgPUNGR19HUERSMV9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BEUjFfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R1BEUjIKLQlsZHIJcjEsICAgPUNGR19HUERSMl9WQUwKKwlsZHIJcjEsICAgPUNPTkZJR19TWVNfR1BEUjJfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0FGUjBfTAotCWxkcglyMSwgICA9Q0ZHX0dBRlIwX0xfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dBRlIwX0xfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0FGUjBfVQotCWxkcglyMSwgICA9Q0ZHX0dBRlIwX1VfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dBRlIwX1VfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0FGUjFfTAotCWxkcglyMSwgICA9Q0ZHX0dBRlIxX0xfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0FGUjFfVQotCWxkcglyMSwgICA9Q0ZHX0dBRlIxX1VfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dBRlIxX1VfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0FGUjJfTAotCWxkcglyMSwgICA9Q0ZHX0dBRlIyX0xfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dBRlIyX0xfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCWxkcglyMCwgICA9R0FGUjJfVQotCWxkcglyMSwgICA9Q0ZHX0dBRlIyX1VfVkFMCisJbGRyCXIxLCAgID1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCiAJc3RyCXIxLCAgIFtyMF0KIAogCS8qIGVuYWJsZSBHUElPIHBpbnMgKi8KIAlsZHIJcjAsICAgPVBTU1IKLQlsZHIJcjEsICAgPUNGR19QU1NSX1ZBTAorCWxkcglyMSwgICA9Q09ORklHX1NZU19QU1NSX1ZBTAogCXN0cglyMSwgICBbcjBdCiAKIAkvKiBTRVRfTEVEIDEgKi8KIAogCWxkcglyMywgPU1TQzEJCS8qIGxvdyAtIGJhbmsgMiBMdWJib2NrIFJlZ2lzdGVycyAvIFNSQU0gKi8KLQlsZHIJcjIsID1DRkdfTVNDMV9WQUwJLyogaGlnaCAtIGJhbmsgMyBFdGhlcm5ldCBDb250cm9sbGVyICovCisJbGRyCXIyLCA9Q09ORklHX1NZU19NU0MxX1ZBTAkvKiBoaWdoIC0gYmFuayAzIEV0aGVybmV0IENvbnRyb2xsZXIgKi8KIAlzdHIJcjIsIFtyM10JCS8qIG5lZWQgdG8gc2V0IE1TQzEgYmVmb3JlIHRyeWluZyB0byB3cml0ZSB0byB0aGUgSEVYIExFRHMgKi8KIAlsZHIJcjIsIFtyM10JCS8qIG5lZWQgdG8gcmVhZCBpdCBiYWNrIHRvIG1ha2Ugc3VyZSB0aGUgdmFsdWUgbGF0Y2hlcyAoc2VlIE1TQyBzZWN0aW9uIG9mIG1hbnVhbCkgKi8KIApAQCAtMTgxLDQ3ICsxODEsNDcgQEAKIAlAIFN0ZXAgMmEKIAlAIHdyaXRlIG1zYzAsIHJlYWQgYmFjayB0byBlbnN1cmUgZGF0YSBsYXRjaGVzCiAJQAotCWxkcglyMiwgICA9Q0ZHX01TQzBfVkFMCisJbGRyCXIyLCAgID1DT05GSUdfU1lTX01TQzBfVkFMCiAJc3RyCXIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQogCWxkcglyMiwgICBbcjEsICNNU0MwX09GRlNFVF0KIAogCUAgd3JpdGUgbXNjMQotCWxkcglyMiwgID1DRkdfTVNDMV9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NU0MxX1ZBTAogCXN0cglyMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCWxkcglyMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQogCiAJQCB3cml0ZSBtc2MyCi0JbGRyCXIyLCAgPUNGR19NU0MyX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01TQzJfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAJbGRyCXIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCiAKIAlAIFN0ZXAgMmIKIAlAIHdyaXRlIG1lY3IKLQlsZHIJcjIsICA9Q0ZHX01FQ1JfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUVDUl9WQUwKIAlzdHIJcjIsICBbcjEsICNNRUNSX09GRlNFVF0KIAogCUAgd3JpdGUgbWNtZW0wCi0JbGRyCXIyLCAgPUNGR19NQ01FTTBfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DTUVNMF9PRkZTRVRdCiAKIAlAIHdyaXRlIG1jbWVtMQotCWxkcglyMiwgID1DRkdfTUNNRU0xX1ZBTAorCWxkcglyMiwgID1DT05GSUdfU1lTX01DTUVNMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQogCiAJQCB3cml0ZSBtY2F0dDAKLQlsZHIJcjIsICA9Q0ZHX01DQVRUMF9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ0FUVDBfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTUNBVFQwX09GRlNFVF0KIAogCUAgd3JpdGUgbWNhdHQxCi0JbGRyCXIyLCAgPUNGR19NQ0FUVDFfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAogCXN0cglyMiwgIFtyMSwgI01DQVRUMV9PRkZTRVRdCiAKIAlAIHdyaXRlIG1jaW8wCi0JbGRyCXIyLCAgPUNGR19NQ0lPMF9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ0lPMF9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0lPMF9PRkZTRVRdCiAKIAlAIHdyaXRlIG1jaW8xCi0JbGRyCXIyLCAgPUNGR19NQ0lPMV9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NQ0lPMV9WQUwKIAlzdHIJcjIsICBbcjEsICNNQ0lPMV9PRkZTRVRdCiAKIAkvKlNFVF9MRUQgMyAqLwpAQCAtMjI5LDE0ICsyMjksMTQgQEAKIAlAIFN0ZXAgMmMKIAlAIGZseS1ieS1kbWEgaXMgZGVmZWF0dXJlZCBvbiB0aGlzIHBhcnQKIAlAIHdyaXRlIGZseWNuZmcKLQlAbGRyCXIyLCAgPUNGR19GTFlDTkZHX1ZBTAorCUBsZHIJcjIsICA9Q09ORklHX1NZU19GTFlDTkZHX1ZBTAogCUBzdHIJcjIsICBbcjEsICNGTFlDTkZHX09GRlNFVF0KIAogLyogRklYTUUgRG9lcyB0aGlzIHNlcXVlbmNlIHJlYWxseSBtYWtlIHNlbnNlICovCiAjaWZkZWYgUkVEQk9PVF9XQVkKIAlAIFN0ZXAgMmQKIAlAIGdldCB0aGUgbWRyZWZyIHNldHRpbmdzCi0JbGRyCXIzLCAgPUNGR19NRFJFRlJfVkFMCisJbGRyCXIzLCAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAogCiAJQCBleHRyYWN0IERSSSBmaWVsZCAod2UgbmVlZCBhIHZhbGlkIERSSSBmaWVsZCkKIAlACkBAIC0zMTksNyArMzE5LDcgQEAKICNlbHNlCiAJQCBTdGVwIDJkCiAJQCBnZXQgdGhlIG1kcmVmciBzZXR0aW5ncwotCWxkcglyNCwgID1DRkdfTURSRUZSX1ZBTAorCWxkcglyNCwgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKIAogCUAgd3JpdGUgYmFjayBtZHJlZnIKIAlACkBAIC0zNjcsNyArMzY3LDcgQEAKIAlAIFN0ZXAgNGQKIAlAIGZldGNoIHBsYXRmb3JtIHZhbHVlIG9mIG1kY25mZwogCUAKLQlsZHIJcjIsICA9Q0ZHX01EQ05GR19WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19NRENORkdfVkFMCiAKIAlAIGRpc2FibGUgYWxsIHNkcmFtIGJhbmtzCiAJQApAQCAtNDA0LDcgKzQwNCw3IEBACiAJQCBBY2Nlc3MgbWVtb3J5ICpub3QgeWV0IGVuYWJsZWQqIGZvciBDQlIgcmVmcmVzaCBjeWNsZXMgKDgpCiAJQCAtIENCUiBpcyBnZW5lcmF0ZWQgZm9yIGFsbCBiYW5rcwogCi0JbGRyCXIyLCA9Q0ZHX0RSQU1fQkFTRQorCWxkcglyMiwgPUNPTkZJR19TWVNfRFJBTV9CQVNFCiAJc3RyCXIyLCBbcjJdCiAJc3RyCXIyLCBbcjJdCiAJc3RyCXIyLCBbcjJdCkBAIC00MzQsNyArNDM0LDcgQEAKIAlAIFN0ZXAgNGgKIAlAIHdyaXRlIG1kbXJzCiAJQAotCWxkcglyMiwgID1DRkdfTURNUlNfVkFMCisJbGRyCXIyLCAgPUNPTkZJR19TWVNfTURNUlNfVkFMCiAJc3RyCXIyLCAgW3IxLCAjTURNUlNfT0ZGU0VUXQogCiAJQCBEb25lIE1lbW9yeSBJbml0CkBAIC00NTMsNyArNDUzLDcgQEAKIAogCUAgU2V0IGludGVycnVwdCBtYXNrIHJlZ2lzdGVyCiAJQAotCWxkcglyMSwgID1DRkdfSUNNUl9WQUwKKwlsZHIJcjEsICA9Q09ORklHX1NZU19JQ01SX1ZBTAogCWxkcglyMiwgID1JQ01SCiAJc3RyCXIxLCAgW3IyXQogCkBAIC00NjksNyArNDY5LDcgQEAKIAogCUAgc2V0IGNvcmUgY2xvY2tzCiAJQAotCWxkcglyMiwgID1DRkdfQ0NDUl9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19DQ0NSX1ZBTAogCWxkcglyMSwgID1DQ0NSCiAJc3RyCXIyLCAgW3IxXQogCkBAIC00OTIsNyArNDkyLDcgQEAKIAlAIFR1cm4gb24gbmVlZGVkIGNsb2NrcwogCUAKIAlsZHIJcjEsICA9Q0tFTgotCWxkcglyMiwgID1DRkdfQ0tFTl9WQUwKKwlsZHIJcjIsICA9Q09ORklHX1NZU19DS0VOX1ZBTAogCXN0cglyMiwgIFtyMV0KIAogCS8qU0VUX0xFRCA3ICovCmRpZmYgLS1naXQgYS9ib2FyZC94cGVkaXRlMWsvY29uZmlnLm1rIGIvYm9hcmQveHBlZGl0ZTFrL2NvbmZpZy5tawppbmRleCBlNDJiMjczLi4zM2RmYmYxIDEwMDY0NAotLS0gYS9ib2FyZC94cGVkaXRlMWsvY29uZmlnLm1rCisrKyBiL2JvYXJkL3hwZWRpdGUxay9jb25maWcubWsKQEAgLTM4LDUgKzM4LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC94cGVkaXRlMWsvZmxhc2guYyBiL2JvYXJkL3hwZWRpdGUxay9mbGFzaC5jCmluZGV4IGNlNWQ0ZTEuLjA3MTE5MzEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hwZWRpdGUxay9mbGFzaC5jCisrKyBiL2JvYXJkL3hwZWRpdGUxay9mbGFzaC5jCkBAIC01Nyw5ICs1Nyw5IEBACiAjZGVmaW5lIEZMQVNIX1NSQU1fU0VMX1ZBTAkxCiAKIAotZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ0ZHX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCitmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGZsYXNoX2FkZHJfdGFibGVbOF1bQ0ZHX01BWF9GTEFTSF9CQU5LU10gPSB7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBmbGFzaF9hZGRyX3RhYmxlWzhdW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSA9IHsKIAl7MHhmZmY4MDAwMH0sCS8qIDA6MDAwOiBjb25maWd1cmF0b24gMyAqLwogCXsweGZmZjkwMDAwfSwJLyogMTowMDE6IGNvbmZpZ3VyYXRvbiA0ICovCiAJezB4ZmZmYTAwMDB9LAkvKiAyOjAxMDogY29uZmlndXJhdG9uIDcgKi8KQEAgLTg5LDcgKzg5LDcgQEAKIHVuc2lnbmVkIGxvbmcgZmxhc2hfaW5pdCAodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRvdGFsX2IgPSAwOwotCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NGR19NQVhfRkxBU0hfQkFOS1NdOworCXVuc2lnbmVkIGxvbmcgc2l6ZV9iW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKIAl1bnNpZ25lZCBzaG9ydCBpbmRleCA9IDA7CiAJaW50IGk7CiAKQEAgLTk4LDcgKzk4LDcgQEAKIAlERUJVR0YoIkZMQVNIOiBJbmRleDogJWRcbiIsIGluZGV4KTsKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwogCQlmbGFzaF9pbmZvW2ldLnNlY3Rvcl9jb3VudCA9IC0xOwogCQlmbGFzaF9pbmZvW2ldLnNpemUgPSAwOwpAQCAtMzY2LDcgKzM2Niw3IEBACiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCWxhc3QgID0gc3RhcnQ7CiAJd2hpbGUgKChhZGRyWzBdICYgKEZMQVNIX1dPUkRfU0laRSkweDAwODAwMDgwKSAhPSAoRkxBU0hfV09SRF9TSVpFKTB4MDA4MDAwODApIHsKLQkJaWYgKChub3cgPSBnZXRfdGltZXIoc3RhcnQpKSA+IENGR19GTEFTSF9FUkFTRV9UT1VUKSB7CisJCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpIHsKIAkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJcmV0dXJuIC0xOwogCQl9CkBAIC01OTQsNyArNTk0LDcgQEAKIAkJd2hpbGUgKChkZXN0MltpXSAmIChGTEFTSF9XT1JEX1NJWkUpIDB4MDA4MDAwODApICE9CiAJCSAgICAgICAoZGF0YTJbaV0gJiAoRkxBU0hfV09SRF9TSVpFKSAweDAwODAwMDgwKSkgewogCi0JCQlpZiAoZ2V0X3RpbWVyIChzdGFydCkgPiBDRkdfRkxBU0hfV1JJVEVfVE9VVCkgeworCQkJaWYgKGdldF90aW1lciAoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJcmV0dXJuICgxKTsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvYm9hcmQveHBlZGl0ZTFrL2luaXQuUyBiL2JvYXJkL3hwZWRpdGUxay9pbml0LlMKaW5kZXggNmNiMjBlNC4uOGEwNGY0ZiAxMDA2NDQKLS0tIGEvYm9hcmQveHBlZGl0ZTFrL2luaXQuUworKysgYi9ib2FyZC94cGVkaXRlMWsvaW5pdC5TCkBAIC04NywxMCArODcsMTAgQEAKIHRsYnRhYjoKIAl0bGJ0YWJfc3RhcnQKIAl0bGJlbnRyeSggMHhmMDAwMDAwMCwgU1pfMjU2TSwgMHhmMDAwMDAwMCwgMSwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQotCXRsYmVudHJ5KCBDRkdfUEVSSVBIRVJBTF9CQVNFLCBTWl8yNTZNLCAweDQwMDAwMDAwLCAxLCBBQ19SfEFDX1d8U0FfR3xTQV9JKQotCXRsYmVudHJ5KCBDRkdfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQotCXRsYmVudHJ5KCBDRkdfU0RSQU1fQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1NEUkFNX0JBU0UrMHgxMDAwMDAwMCwgU1pfMjU2TSwgMHgxMDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKLQl0bGJlbnRyeSggQ0ZHX1BDSV9NRU1CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAzLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UsIFNaXzI1Nk0sIDB4NDAwMDAwMDAsIDEsIEFDX1J8QUNfV3xTQV9HfFNBX0kpCisJdGxiZW50cnkoIENPTkZJR19TWVNfSVNSQU1fQkFTRSwgU1pfMjU2SywgMHg4MDAwMDAwMCwgMCwgQUNfUnxBQ19XfEFDX1h8U0FfR3xTQV9JKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFNaXzI1Nk0sIDB4MDAwMDAwMDAsIDAsIEFDX1J8QUNfV3xBQ19YfFNBX0d8U0FfSSApCisJdGxiZW50cnkoIENPTkZJR19TWVNfU0RSQU1fQkFTRSsweDEwMDAwMDAwLCBTWl8yNTZNLCAweDEwMDAwMDAwLCAwLCBBQ19SfEFDX1d8QUNfWHxTQV9HfFNBX0kgKQorCXRsYmVudHJ5KCBDT05GSUdfU1lTX1BDSV9CQVNFLCBTWl8yNTZNLCAweDAwMDAwMDAwLCAyLCBBQ19SfEFDX1d8U0FfR3xTQV9JICkKKwl0bGJlbnRyeSggQ09ORklHX1NZU19QQ0lfTUVNQkFTRSwgU1pfMjU2TSwgMHgwMDAwMDAwMCwgMywgQUNfUnxBQ19XfFNBX0d8U0FfSSApCiAJdGxidGFiX2VuZApkaWZmIC0tZ2l0IGEvYm9hcmQveHBlZGl0ZTFrL3hwZWRpdGUxay5jIGIvYm9hcmQveHBlZGl0ZTFrL3hwZWRpdGUxay5jCmluZGV4IGM5NGEzNDUuLjU4YmNmYWYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hwZWRpdGUxay94cGVkaXRlMWsuYworKysgYi9ib2FyZC94cGVkaXRlMWsveHBlZGl0ZTFrLmMKQEAgLTQwLDcgKzQwLDcgQEAKIAkvKiBUQlM6CSBTZXR1cCB0aGUgR1BJTyBhY2Nlc3MgZm9yIHRoZSB1c2VyIExFRHMgKi8KIAltZnNkcihzZHJfcGZjMCwgc2RycmVnKTsKIAltdHNkcihzZHJfcGZjMCwgKHNkcnJlZyAmIH4weDAwMDAwMTAwKSB8IDB4MDAwMDBFMDApOwotCW91dDMyKENGR19HUElPX0JBU0UgKyAweDAxOCwgKFVTUl9MRUQwIHwgVVNSX0xFRDEgfCBVU1JfTEVEMiB8IFVTUl9MRUQzKSk7CisJb3V0MzIoQ09ORklHX1NZU19HUElPX0JBU0UgKyAweDAxOCwgKFVTUl9MRUQwIHwgVVNSX0xFRDEgfCBVU1JfTEVEMiB8IFVTUl9MRUQzKSk7CiAJTEVEMF9PRkYoKTsKIAlMRUQxX09GRigpOwogCUxFRDJfT0ZGKCk7CkBAIC0xMjksNyArMTI5LDcgQEAKIH0KIAogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0gKHZvaWQpCiB7CiAJdWludCAqcHN0YXJ0ID0gKHVpbnQgKikgMHgwMDAwMDAwMDsKQEAgLTIzMSw3ICsyMzEsNyBAQAogCQlyZXR1cm4gKDApOwogCX0KIAotI2lmIGRlZmluZWQoQ0ZHX1BDSV9GT1JDRV9QQ0lfQ09OVikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX0ZPUkNFX1BDSV9DT05WKQogCS8qIFNldHVwIFN5c3RlbSBEZXZpY2UgUmVnaXN0ZXIgUENJWDBfWENSICovCiAJbWZzZHIoc2RyX3hjciwgc3RyYXApOwogCXN0cmFwICY9IDB4MGYwMDAwMDA7CkBAIC0yNDksNyArMjQ5LDcgQEAKICAqCW1heSBub3QgYmUgc3VmZmljaWVudCBmb3IgYSBnaXZlbiBib2FyZC4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkKIHZvaWQgcGNpX3RhcmdldF9pbml0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqIGhvc2UgKQogewogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0yNjQsNyArMjY0LDcgQEAKIAkgKiBNYXAgYWxsIG9mIFNEUkFNIHRvIFBDSSBhZGRyZXNzIDB4MDAwMF8wMDAwLiBOb3RlIHRoYXQgdGhlIDQ0MCBzdHJhcHBpbmcKIAkgKiBvcHRpb25zIHRvIG5vdCBzdXBwb3J0IHNpemVzIHN1Y2ggYXMgMTI4LzI1NiBNQi4KIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlvdXQzMnIoIFBDSVgwX1BJTTBMQUwsIENGR19TRFJBTV9CQVNFICk7CisJb3V0MzJyKCBQQ0lYMF9QSU0wTEFMLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBMQUgsIDAgKTsKIAlvdXQzMnIoIFBDSVgwX1BJTTBTQSwgfihnZC0+cmFtX3NpemUgLSAxKSB8IDEgKTsKIApAQCAtMjczLDEyICsyNzMsMTIgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCSAqIFByb2dyYW0gdGhlIGJvYXJkJ3Mgc3Vic3lzdGVtIGlkL3ZlbmRvciBpZAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEICk7Ci0Jb3V0MTZyKCBQQ0lYMF9TQlNZU0lELCBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNWSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCApOworCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICk7CiAKIAlvdXQxNnIoIFBDSVgwX0NNRCwgaW4xNnIoUENJWDBfQ01EKSB8IFBDSV9DT01NQU5EX01FTU9SWSApOwogfQotI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCkgKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMjk5LDcgKzI5OSw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogaW50IGlzX3BjaV9ob3N0KHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSkKIHsKLQlyZXR1cm4gKChpbjMyKENGR19HUElPX0JBU0UgKyAweDFDKSAmIDB4MDAwMDA4MDApID09IDApOworCXJldHVybiAoKGluMzIoQ09ORklHX1NZU19HUElPX0JBU0UgKyAweDFDKSAmIDB4MDAwMDA4MDApID09IDApOwogfQogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BDSSkgKi8KIApAQCAtMzE3LDcgKzMxNyw3IEBACiB2b2lkIHBvc3Rfd29yZF9zdG9yZSAodWxvbmcgYSkKIHsKIAl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0KLQkJKHZvbGF0aWxlIHVsb25nICopKENGR19QT1NUX1dPUkRfQUREUik7CisJCSh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSKTsKIAogCSpzYXZlX2FkZHIgPSBhOwogfQpAQCAtMzI1LDcgKzMyNSw3IEBACiB1bG9uZyBwb3N0X3dvcmRfbG9hZCAodm9pZCkKIHsKIAl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0KLQkJKHZvbGF0aWxlIHVsb25nICopKENGR19QT1NUX1dPUkRfQUREUik7CisJCSh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSKTsKIAogCXJldHVybiAqc2F2ZV9hZGRyOwogfQpAQCAtMzQyLDcgKzM0Miw3IEBACiAJdW5zaWduZWQgY2hhciBidWZmWzB4MTAwXSwgKmNwOwogCiAJLyogSW5pdGlhbGl6ZSBJMkMJCQkJCSovCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJLyogUmVhZCAyNTYgYnl0ZXMgaW4gRUVQUk9NCQkJCSovCiAJaTJjX3JlYWQgKDB4NTAsIDAsIDEsIGJ1ZmYsIDB4MTAwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL3hzZW5naW5lL2ZsYXNoLmMgYi9ib2FyZC94c2VuZ2luZS9mbGFzaC5jCmluZGV4IGYyOWRlZjIuLjczNjkwNWEgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hzZW5naW5lL2ZsYXNoLmMKKysrIGIvYm9hcmQveHNlbmdpbmUvZmxhc2guYwpAQCAtMjksNyArMjksNyBAQAogCiAjZGVmaW5lIFNXQVAoeCkgICAgICAgICAgICAgICBfX3N3YWIzMih4KQogCi1mbGFzaF9pbmZvX3QJZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KK2ZsYXNoX2luZm9fdAlmbGFzaF9pbmZvW0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyogRnVuY3Rpb25zICovCiBzdGF0aWMgdWxvbmcgZmxhc2hfZ2V0X3NpemUgKHZ1X2xvbmcgKmFkZHIsIGZsYXNoX2luZm9fdCAqaW5mbyk7CkBAIC00Myw3ICs0Myw3IEBACiAJaW50IGk7CiAJdWxvbmcgc2l6ZSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJc3dpdGNoIChpKSB7CiAJCWNhc2UgMDoKIAkJCWZsYXNoX2dldF9zaXplICgodnVfbG9uZyAqKSBQSFlTX0ZMQVNIXzEsICZmbGFzaF9pbmZvW2ldKTsKQEAgLTYxLDcgKzYxLDcgQEAKIAl9CiAKIAkvKiBQcm90ZWN0IG1vbml0b3IgYW5kIGVudmlyb25tZW50IHNlY3RvcnMgKi8KLQlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCxDRkdfRkxBU0hfQkFTRSxDRkdfRkxBU0hfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuIC0gMSwmZmxhc2hfaW5mb1swXSApOworCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULENPTkZJR19TWVNfRkxBU0hfQkFTRSxDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAtIDEsJmZsYXNoX2luZm9bMF0gKTsKIAlmbGFzaF9wcm90ZWN0ICggRkxBR19QUk9URUNUX1NFVCxDT05GSUdfRU5WX0FERFIsQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TSVpFIC0gMSwgJmZsYXNoX2luZm9bMF0gKTsKIAogCXJldHVybiBzaXplOwpAQCAtMzM4LDcgKzMzOCw3IEBACiAJbGFzdCAgPSBzdGFydDsKIAlhZGRyID0gKHZ1X2xvbmcqKShpbmZvLT5zdGFydFtsX3NlY3RdKTsKIAl3aGlsZSAoKGFkZHJbMF0gJiAweDAwODAwMDgwKSAhPSAweDAwODAwMDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC00NjIsNyArNDYyLDcgQEAKIAkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJc3RhcnQgPSBnZXRfdGltZXIgKDApOwogCXdoaWxlICgoKigodnVfbG9uZyAqKWRlc3QpICYgMHgwMDgwMDA4MCkgIT0gKGRhdGEgJiAweDAwODAwMDgwKSkgewotCQlpZiAoZ2V0X3RpbWVyKHN0YXJ0KSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQlyZXR1cm4gKDEpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvYm9hcmQveHNlbmdpbmUvbG93bGV2ZWxfaW5pdC5TIGIvYm9hcmQveHNlbmdpbmUvbG93bGV2ZWxfaW5pdC5TCmluZGV4IGIwYjE1NjEuLjBkOTRhYjYgMTAwNjQ0Ci0tLSBhL2JvYXJkL3hzZW5naW5lL2xvd2xldmVsX2luaXQuUworKysgYi9ib2FyZC94c2VuZ2luZS9sb3dsZXZlbF9pbml0LlMKQEAgLTIsNyArMiw3IEBACiAjaW5jbHVkZSA8dmVyc2lvbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLURSQU1fU0laRTogIC5sb25nICAgQ0ZHX0RSQU1fU0laRQorRFJBTV9TSVpFOiAgLmxvbmcgICBDT05GSUdfU1lTX0RSQU1fU0laRQogCiAuZ2xvYmwgbG93bGV2ZWxfaW5pdAogbG93bGV2ZWxfaW5pdDoKQEAgLTE0LDkzICsxNCw5MyBAQAogCiAgICAvKiBHZW5lcmFsIHB1cnBvc2Ugc2V0IHJlZ2lzdGVycyAqLwogICAgbGRyICAgICAgcjAsICAgPUdQU1IwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQU1IwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BTUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R1BTUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BTUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUFNSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HUFNSMgotICAgbGRyICAgICAgcjEsICAgPUNGR19HUFNSMl9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQU1IyX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICAvKiBHZW5lcmFsIHB1cnBvc2UgY2xlYXIgcmVnaXN0ZXJzICovCiAgICBsZHIgICAgICByMCwgICA9R1BDUjAKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BDUjBfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUENSMF9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HUENSMQotICAgbGRyICAgICAgcjEsICAgPUNGR19HUENSMV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQQ1IxX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdQQ1IyCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQQ1IyX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BDUjJfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIC8qIEdlbmVyYWwgcmlzaW5nIGVkZ2UgcmVnaXN0ZXJzICovCiAgICBsZHIgICAgICByMCwgICA9R1JFUjAKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1JFUjBfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUkVSMF9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HUkVSMQotICAgbGRyICAgICAgcjEsICAgPUNGR19HUkVSMV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dSRVIxX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdSRVIyCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dSRVIyX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1JFUjJfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKICAgIC8qIEdlbmVyYWwgZmFsbGluZyBlZGdlIHJlZ2lzdGVycyAqLwogICAgbGRyICAgICAgcjAsICAgPUdGRVIwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dGRVIwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0ZFUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R0ZFUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0ZFUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HRkVSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HRkVSMgotICAgbGRyICAgICAgcjEsICAgPUNGR19HRkVSMl9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dGRVIyX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICAvKiBHZW5lcmFsIGVkZ2UgZGV0ZWN0IHJlZ2lzdGVycyAqLwogICAgbGRyICAgICAgcjAsICAgPUdQRFIwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQRFIwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BEUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R1BEUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BEUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUERSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HUERSMgotICAgbGRyICAgICAgcjEsICAgPUNGR19HUERSMl9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQRFIyX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICAvKiBHZW5lcmFsIGFsdGVybmF0ZSBmdW5jdGlvbiByZWdpc3RlcnMgKi8KICAgIGxkciAgICAgIHIwLCAgID1HQUZSMF9MCQkvKiBbMDoxNV0gKi8KLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0FGUjBfTF9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dBRlIwX0xfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R0FGUjBfVQkJLyogWzMxOjE2XSAqLwotICAgbGRyICAgICAgcjEsICAgPUNGR19HQUZSMF9VX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0FGUjBfVV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HQUZSMV9MCQkvKiBbNDc6MzJdICovCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dBRlIxX0xfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HQUZSMV9MX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogICAgbGRyICAgICAgcjAsICAgPUdBRlIxX1UJCS8qIFs2Mzo0OF0gKi8KLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR0FGUjFfVV9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dBRlIxX1VfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R0FGUjJfTAkJLyogWzc5OjY0XSAqLwotICAgbGRyICAgICAgcjEsICAgPUNGR19HQUZSMl9MX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR0FGUjJfTF9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HQUZSMl9VCQkvKiBbODBdICovCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dBRlIyX1VfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HQUZSMl9VX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICAvKiBHZW5lcmFsIHB1cnBvc2UgZGlyZWN0aW9uIHJlZ2lzdGVycyAqLwogICAgbGRyICAgICAgcjAsICAgPUdQRFIwCi0gICBsZHIgICAgICByMSwgICA9Q0ZHX0dQRFIwX1ZBTAorICAgbGRyICAgICAgcjEsICAgPUNPTkZJR19TWVNfR1BEUjBfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAgICBsZHIgICAgICByMCwgICA9R1BEUjEKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfR1BEUjFfVkFMCisgICBsZHIgICAgICByMSwgICA9Q09ORklHX1NZU19HUERSMV9WQUwKICAgIHN0ciAgICAgIHIxLCAgIFtyMF0KICAgIGxkciAgICAgIHIwLCAgID1HUERSMgotICAgbGRyICAgICAgcjEsICAgPUNGR19HUERSMl9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX0dQRFIyX1ZBTAogICAgc3RyICAgICAgcjEsICAgW3IwXQogCiAgICAvKiBQb3dlciBtYW5hZ2VyIHNsZWVwIHN0YXR1cyAqLwogICAgbGRyICAgICAgcjAsICAgPVBTU1IKLSAgIGxkciAgICAgIHIxLCAgID1DRkdfUFNTUl9WQUwKKyAgIGxkciAgICAgIHIxLCAgID1DT05GSUdfU1lTX1BTU1JfVkFMCiAgICBzdHIgICAgICByMSwgICBbcjBdCiAKIC8qIC0tLS0gTUVNT1JZIElOSVRJQUxJU0FUSU9OIC0tLS0gKi8KQEAgLTEyMSwxNyArMTIxLDE3IEBACiAKIC8qIC0tLS0gRkxBU0ggSU5JVElBTElTQVRJT04gLS0tLSAqLwogLyogV3JpdGUgTVNDMCBhbmQgcmVhZCBiYWNrIHRvIGVuc3VyZSBkYXRhIGNoYW5nZSBpcyBhY2NlcHRlZCBieSBjcHUgKi8KLSAgIGxkciAgICAgcjIsICAgPUNGR19NU0MwX1ZBTAorICAgbGRyICAgICByMiwgICA9Q09ORklHX1NZU19NU0MwX1ZBTAogICAgc3RyICAgICByMiwgICBbcjEsICNNU0MwX09GRlNFVF0KICAgIGxkciAgICAgcjIsICAgW3IxLCAjTVNDMF9PRkZTRVRdCiAKIC8qIC0tLS0gU0RSQU0gSU5JVElBTElTQVRJT04gLS0tLSAqLwogLyogZ2V0IHRoZSBNRFJFRlIgc2V0dGluZ3MgKi8KLSAgIGxkciAgICAgcjIsICA9Q0ZHX01EUkVGUl9WQUwKKyAgIGxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRFJFRlJfVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxLCAjTURSRUZSX09GRlNFVF0KIAogLyogZmV0Y2ggcGxhdGZvcm0gdmFsdWUgb2YgTURDTkZHICovCi0gICBsZHIgICAgIHIyLCAgPUNGR19NRENORkdfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTURDTkZHX1ZBTAogCiAvKiBkaXNhYmxlIGFsbCBzZHJhbSBiYW5rcyAqLwogICAgYmljICAgICByMiwgIHIyLCAgIyhNRENORkdfREUwIHwgTURDTkZHX0RFMSkKQEAgLTE1Myw3ICsxNTMsNyBAQAogLyogQWNjZXNzIG1lbW9yeSAqbm90IHlldCBlbmFibGVkKiBmb3IgQ0JSIHJlZnJlc2ggY3ljbGVzICg4KSAqLwogLyogQ0JSIGlzIGdlbmVyYXRlZCBmb3IgYWxsIGJhbmtzICovCiAKLSAgIGxkciAgICAgcjIsID1DRkdfRFJBTV9CQVNFCisgICBsZHIgICAgIHIyLCA9Q09ORklHX1NZU19EUkFNX0JBU0UKICAgIHN0ciAgICAgcjIsIFtyMl0KICAgIHN0ciAgICAgcjIsIFtyMl0KICAgIHN0ciAgICAgcjIsIFtyMl0KQEAgLTE3Miw3ICsxNzIsNyBAQAogICAgc3RyICAgICByMiwgIFtyMSwgI01EQ05GR19PRkZTRVRdCiAKIC8qIHdyaXRlIE1ETVJTIHRvIHRyaWdnZXIgYW4gTVNSIGNvbW1hbmQgdG8gYWxsIGVuYWJsZWQgU0RSQU0gYmFua3MgKi8KLSAgIGxkciAgICAgcjIsICA9Q0ZHX01ETVJTX1ZBTAorICAgbGRyICAgICByMiwgID1DT05GSUdfU1lTX01ETVJTX1ZBTAogICAgc3RyICAgICByMiwgIFtyMSwgI01ETVJTX09GRlNFVF0KIAogLyogLS0tLSBJTlRFUlJVUFQgSU5JVElBTElTQVRJT04gLS0tLSAqLwpAQCAtMTgzLDcgKzE4Myw3IEBACiAgICBzdHIgICAgIHIxLCAgW3IyXQogCiAvKiBTZXQgaW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIgKi8KLSAgIGxkciAgICAgcjEsICA9Q0ZHX0lDTVJfVkFMCisgICBsZHIgICAgIHIxLCAgPUNPTkZJR19TWVNfSUNNUl9WQUwKICAgIGxkciAgICAgcjIsICA9SUNNUgogICAgc3RyICAgICByMSwgIFtyMl0KIApAQCAtMTk2LDcgKzE5Niw3IEBACiAgICBzdHIgICAgIHIyLCAgW3IxXQogCiAvKiBzZXQgY29yZSBjbG9ja3MgKi8KLSAgIGxkciAgICAgcjIsICA9Q0ZHX0NDQ1JfVkFMCisgICBsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfQ0NDUl9WQUwKICAgIGxkciAgICAgcjEsICA9Q0NDUgogICAgc3RyICAgICByMiwgIFtyMV0KIApAQCAtMjE1LDcgKzIxNSw3IEBACiAKIC8qIFR1cm4gb24gbmVlZGVkIGNsb2NrcyAqLwogICAgbGRyICAgICByMSwgID1DS0VOCi0gICBsZHIgICAgIHIyLCAgPUNGR19DS0VOX1ZBTAorICAgbGRyICAgICByMiwgID1DT05GSUdfU1lTX0NLRU5fVkFMCiAgICBzdHIgICAgIHIyLCAgW3IxXQogCiAgICBtb3YgICBwYywgcjEwCmRpZmYgLS1naXQgYS9ib2FyZC96ZXVzL3VwZGF0ZS5jIGIvYm9hcmQvemV1cy91cGRhdGUuYwppbmRleCBjNzY1MTlmLi4yZjJhMTI3IDEwMDY0NAotLS0gYS9ib2FyZC96ZXVzL3VwZGF0ZS5jCisrKyBiL2JvYXJkL3pldXMvdXBkYXRlLmMKQEAgLTY3LDEyICs2NywxMiBAQAogc3RhdGljIGludCB1cGRhdGVfYm9vdF9lZXByb20odm9pZCkKIHsKIAl1MzIgbGVuID0gMHgyMDsKLQl1OCBjaGlwID0gQ0ZHX0kyQ19FRVBST01fQUREUjsKKwl1OCBjaGlwID0gQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFI7CiAJdTggKnBidWY7CiAJdTggYmFzZTsKIAlpbnQgaTsKIAotCWlmIChpbl9iZTMyKCh2b2lkICopR1BJTzBfSVIpICYgR1BJT19WQUwoQ0ZHX0dQSU9fWkVVU19QRSkpIHsKKwlpZiAoaW5fYmUzMigodm9pZCAqKUdQSU8wX0lSKSAmIEdQSU9fVkFMKENPTkZJR19TWVNfR1BJT19aRVVTX1BFKSkgewogCQlwYnVmID0gYnVmX3pldXNfcGU7CiAJCWJhc2UgPSAweDQwOwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9ib2FyZC96ZXVzL3pldXMuYyBiL2JvYXJkL3pldXMvemV1cy5jCmluZGV4IDZmYTRlZWYuLjk3NGJkZjIgMTAwNjQ0Ci0tLSBhL2JvYXJkL3pldXMvemV1cy5jCisrKyBiL2JvYXJkL3pldXMvemV1cy5jCkBAIC0zOCw3ICszOCw3IEBACiAjZGVmaW5lIFJFQk9PVF9OT1AJMHgwMDAwMDAwMAogI2RlZmluZSBSRUJPT1RfRE9fUE9TVAkweDAwMDAwMDAxCiAKLWV4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRkdfTUFYX0ZMQVNIX0JBTktTXTsgLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMJKi8KK2V4dGVybiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzCSovCiBleHRlcm4gZW52X3QgKmVudl9wdHI7CiBleHRlcm4gdWNoYXIgZGVmYXVsdF9lbnZpcm9ubWVudFtdOwogCkBAIC03Myw4ICs3Myw4IEBACiAJdTMyIHBvc3RfbWFnaWM7CiAJdTMyIHBvc3RfdmFsOwogCi0JcG9zdF9tYWdpYyA9IGluX2JlMzIoKHZvaWQgKilDRkdfUE9TVF9NQUdJQyk7Ci0JcG9zdF92YWwgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX1BPU1RfVkFMKTsKKwlwb3N0X21hZ2ljID0gaW5fYmUzMigodm9pZCAqKUNPTkZJR19TWVNfUE9TVF9NQUdJQyk7CisJcG9zdF92YWwgPSBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19QT1NUX1ZBTCk7CiAJaWYgKChwb3N0X21hZ2ljID09IFJFQk9PVF9NQUdJQykgJiYgKHBvc3RfdmFsID09IFJFQk9PVF9ET19QT1NUKSkgewogCQkvKgogCQkgKiBTZXQgc3BlY2lhbCBib290bGluZSBib290cGFyYW1ldGVyIHRvIHBhc3MgdGhpcyBQT1NUIGJvb3QKQEAgLTg3LDcgKzg3LDcgQEAKIAkJICogdmlhIHRoZSBzdy1yZXNldCBidXR0b24uIFNvIGRpc2FibGUgZnVydGhlciB0ZXN0cwogCQkgKiB1cG9uIG5leHQgYm9vdHVwIGhlcmUuCiAJCSAqLwotCQlvdXRfYmUzMigodm9pZCAqKUNGR19QT1NUX1ZBTCwgUkVCT09UX05PUCk7CisJCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19QT1NUX1ZBTCwgUkVCT09UX05PUCk7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogT25seSBydW4gUE9TVCB3aGVuIGluaXRpYXRlZCB2aWEgdGhlIHN3LXJlc2V0IGJ1dHRvbiBtZWNoYW5pc20KQEAgLTE0NCw3ICsxNDQsNyBAQAogCiAJLyogTW9uaXRvciBwcm90ZWN0aW9uIE9OIGJ5IGRlZmF1bHQgKi8KIAkodm9pZClmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgLUNGR19NT05JVE9SX0xFTiwKKwkJCSAgICAtQ09ORklHX1NZU19NT05JVE9SX0xFTiwKIAkJCSAgICAweGZmZmZmZmZmLAogCQkJICAgICZmbGFzaF9pbmZvWzBdKTsKIApAQCAtMTY2LDcgKzE2Niw3IEBACiAKIAlwdXRzKCJCb2FyZDogWmV1cy0iKTsKIAotCWlmIChpbl9iZTMyKCh2b2lkICopR1BJTzBfSVIpICYgR1BJT19WQUwoQ0ZHX0dQSU9fWkVVU19QRSkpCisJaWYgKGluX2JlMzIoKHZvaWQgKilHUElPMF9JUikgJiBHUElPX1ZBTChDT05GSUdfU1lTX0dQSU9fWkVVU19QRSkpCiAJCXB1dHMoIlBFIik7CiAJZWxzZQogCQlwdXRzKCJDRSIpOwpAQCAtMTgwLDEyICsxODAsMTIgQEAKIAlwdXRjKCdcbicpOwogCiAJLyogYm90aCBMRUQncyBvZmYgKi8KLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19MRURfUkVELCAwKTsKLQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19MRURfR1JFRU4sIDApOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19MRURfUkVELCAwKTsKKwlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fTEVEX0dSRUVOLCAwKTsKIAl1ZGVsYXkoMTAwMDApOwogCS8qIGFuZCBvbiBhZ2FpbiAqLwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0xFRF9SRUQsIDEpOwotCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0xFRF9HUkVFTiwgMSk7CisJZ3Bpb193cml0ZV9iaXQoQ09ORklHX1NZU19HUElPX0xFRF9SRUQsIDEpOworCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19MRURfR1JFRU4sIDEpOwogCiAJcmV0dXJuICgwKTsKIH0KQEAgLTIzOSw3ICsyMzksNyBAQAogCSAqLwogCW1lbXNldChlbnZfcHRyLCAwLCBzaXplb2YoZW52X3QpKTsKIAltZW1jcHkoZW52X3B0ci0+ZGF0YSwgZGVmYXVsdF9lbnZpcm9ubWVudCwgRU5WX1NJWkUpOwotI2lmZGVmIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQKKyNpZmRlZiBDT05GSUdfU1lTX1JFRFVOREFORF9FTlZJUk9OTUVOVAogCWVudl9wdHItPmZsYWdzID0gMHhGRjsKICNlbmRpZgogCWVudl9jcmNfdXBkYXRlKCk7CkBAIC0zMzMsNyArMzMzLDcgQEAKIAogc3RhdGljIGlubGluZSBpbnQgc3dfcmVzZXRfcHJlc3NlZCh2b2lkKQogewotCXJldHVybiAhKGluX2JlMzIoKHZvaWQgKilHUElPMF9JUikgJiBHUElPX1ZBTChDRkdfR1BJT19TV19SRVNFVCkpOworCXJldHVybiAhKGluX2JlMzIoKHZvaWQgKilHUElPMF9JUikgJiBHUElPX1ZBTChDT05GSUdfU1lTX0dQSU9fU1dfUkVTRVQpKTsKIH0KIAogaW50IGRvX2Noa3Jlc2V0KGNtZF90YmxfdCogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciogYXJndltdKQpAQCAtMzU2LDE2ICszNTYsMTYgQEAKIAkJaWYgKCFzd19yZXNldF9wcmVzc2VkKCkpCiAJCQlicmVhazsKIAotCQlpZiAoKGRlbHRhID4gQ0ZHX1RJTUVfUE9TVCkgJiYgIXBvc3QpIHsKKwkJaWYgKChkZWx0YSA+IENPTkZJR19TWVNfVElNRV9QT1NUKSAmJiAhcG9zdCkgewogCQkJcHJpbnRmKCJcbldoZW4gcmVsZWFzZWQgbm93LCBQT1NUIHRlc3RzIHdpbGwgYmUgc3RhcnRlZC4iKTsKLQkJCWdwaW9fd3JpdGVfYml0KENGR19HUElPX0xFRF9HUkVFTiwgMCk7CisJCQlncGlvX3dyaXRlX2JpdChDT05GSUdfU1lTX0dQSU9fTEVEX0dSRUVOLCAwKTsKIAkJCXBvc3QgPSAxOwogCQl9CiAKLQkJaWYgKChkZWx0YSA+IENGR19USU1FX0ZBQ1RPUllfUkVTRVQpICYmICFmYWN0b3J5X3Jlc2V0KSB7CisJCWlmICgoZGVsdGEgPiBDT05GSUdfU1lTX1RJTUVfRkFDVE9SWV9SRVNFVCkgJiYgIWZhY3RvcnlfcmVzZXQpIHsKIAkJCXByaW50ZigiXG5XaGVuIHJlbGVhc2VkIG5vdywgZmFjdG9yeSBkZWZhdWx0IHZhbHVlcyIKIAkJCSAgICAgICAiIHdpbGwgYmUgcmVzdG9yZWQuIik7Ci0JCQlncGlvX3dyaXRlX2JpdChDRkdfR1BJT19MRURfUkVELCAwKTsKKwkJCWdwaW9fd3JpdGVfYml0KENPTkZJR19TWVNfR1BJT19MRURfUkVELCAwKTsKIAkJCWZhY3RvcnlfcmVzZXQgPSAxOwogCQl9CiAKQEAgLTM3Nyw3ICszNzcsNyBAQAogCiAJcHJpbnRmKCJcblNXLVJlc2V0IEJ1dHRvbiByZWxlYXNlZCBhZnRlciAlZCBtaWxsaS1zZWNvbmRzIVxuIiwgZGVsdGEpOwogCi0JaWYgKGRlbHRhID4gQ0ZHX1RJTUVfRkFDVE9SWV9SRVNFVCkgeworCWlmIChkZWx0YSA+IENPTkZJR19TWVNfVElNRV9GQUNUT1JZX1JFU0VUKSB7CiAJCXByaW50ZigiU3RhcnRpbmcgZmFjdG9yeSByZXNldCB2YWx1ZSByZXN0b3JhdGlvbi4uLlxuIik7CiAKIAkJLyoKQEAgLTM5MywxNCArMzkzLDE0IEBACiAJCXJldHVybiAwOwogCX0KIAotCWlmIChkZWx0YSA+IENGR19USU1FX1BPU1QpIHsKKwlpZiAoZGVsdGEgPiBDT05GSUdfU1lTX1RJTUVfUE9TVCkgewogCQlwcmludGYoIlN0YXJ0aW5nIFBPU1QgY29uZmlndXJhdGlvbi4uLlxuIik7CiAKIAkJLyoKIAkJICogRW5hYmxlIFBPU1QgdXBvbiBuZXh0IGJvb3R1cAogCQkgKi8KLQkJb3V0X2JlMzIoKHZvaWQgKilDRkdfUE9TVF9NQUdJQywgUkVCT09UX01BR0lDKTsKLQkJb3V0X2JlMzIoKHZvaWQgKilDRkdfUE9TVF9WQUwsIFJFQk9PVF9ET19QT1NUKTsKKwkJb3V0X2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX1BPU1RfTUFHSUMsIFJFQk9PVF9NQUdJQyk7CisJCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19QT1NUX1ZBTCwgUkVCT09UX0RPX1BPU1QpOwogCQlwb3N0X2Jvb3Rtb2RlX2luaXQoKTsKIAogCQkvKgpAQCAtNDMyLDggKzQzMiw4IEBACiAJdTMyIHBvc3RfbWFnaWM7CiAJdTMyIHBvc3RfdmFsOwogCi0JcG9zdF9tYWdpYyA9IGluX2JlMzIoKHZvaWQgKilDRkdfUE9TVF9NQUdJQyk7Ci0JcG9zdF92YWwgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX1BPU1RfVkFMKTsKKwlwb3N0X21hZ2ljID0gaW5fYmUzMigodm9pZCAqKUNPTkZJR19TWVNfUE9TVF9NQUdJQyk7CisJcG9zdF92YWwgPSBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19QT1NUX1ZBTCk7CiAKIAlpZiAoKHBvc3RfbWFnaWMgPT0gUkVCT09UX01BR0lDKSAmJiAocG9zdF92YWwgPT0gUkVCT09UX0RPX1BPU1QpKQogCQlyZXR1cm4gMTsKZGlmZiAtLWdpdCBhL2JvYXJkL3pwYzE5MDAvenBjMTkwMC5jIGIvYm9hcmQvenBjMTkwMC96cGMxOTAwLmMKaW5kZXggMTAzZWY3MS4uMDI3ZDU2NiAxMDA2NDQKLS0tIGEvYm9hcmQvenBjMTkwMC96cGMxOTAwLmMKKysrIGIvYm9hcmQvenBjMTkwMC96cGMxOTAwLmMKQEAgLTE4Myw3ICsxODMsNyBAQAogICAgIH0KIH07CiAKLSNpZmRlZiBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUKKyNpZmRlZiBDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FCiB2b2lkICpudnJhbV9yZWFkKHZvaWQgKmRlc3QsIGxvbmcgc3JjLCBzaXplX3QgY291bnQpCiB7CiAJcmV0dXJuIG1lbWNweShkZXN0LCAoY29uc3Qgdm9pZCAqKXNyYywgY291bnQpOwpAQCAtMTkxLDggKzE5MSw4IEBACiAKIHZvaWQgbnZyYW1fd3JpdGUobG9uZyBkZXN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCkKIHsKLQl2dV9jaGFyICAgICAqcDEgPSAodnVfY2hhciAqKShDRkdfRUVQUk9NICsgMHgxNTU1KTsKLQl2dV9jaGFyICAgICAqcDIgPSAodnVfY2hhciAqKShDRkdfRUVQUk9NICsgMHgwQUFBKTsKKwl2dV9jaGFyICAgICAqcDEgPSAodnVfY2hhciAqKShDT05GSUdfU1lTX0VFUFJPTSArIDB4MTU1NSk7CisJdnVfY2hhciAgICAgKnAyID0gKHZ1X2NoYXIgKikoQ09ORklHX1NZU19FRVBST00gKyAweDBBQUEpOwogCXZ1X2NoYXIgICAgICpkID0gKHZ1X2NoYXIgKilkZXN0OwogCWNvbnN0IHVjaGFyICpzID0gKGNvbnN0IHVjaGFyICopc3JjOwogCkBAIC0yMTgsMTYgKzIxOCwxNiBAQAogCSpwMSA9IDB4QTA7CiAJdWRlbGF5KDEwMDAwKTsKIH0KLSNlbmRpZiAvKiBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FICovCiAKIHBoeXNfc2l6ZV90IGluaXRkcmFtKGludCBib2FyZF90eXBlKQogewotCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNGR19CQ1NSOwotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2dV9jaGFyICpiY3NyID0gKHZ1X2NoYXIgKilDT05GSUdfU1lTX0JDU1I7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4MjYwX3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXZ1X2NoYXIgKnJhbWFkZHI7CiAJdWNoYXIgYyA9IDB4RkY7Ci0JbG9uZyBpbnQgbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKKwlsb25nIGludCBtc2l6ZSA9IENPTkZJR19TWVNfU0RSQU1fU0laRTsKIAlpbnQgaTsKIAogCWlmIChiY3NyWzRdICYgQkNTUl9QQ0lfTU9ERSkgeyAvKiBQQ0kgbW9kZSBzZWxlY3RlZCBieSBKUDkgKi8KQEAgLTIzNywzOCArMjM3LDM4IEBACiAJCQl8IFNJVU1DUl9MQlBDMDE7CiAJfQogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCWltbWFwLT5pbV9zaXVfY29uZi5zY19wcGNfYWNyICA9IDB4MDM7CiAJaW1tYXAtPmltX3NpdV9jb25mLnNjX3BwY19hbHJoID0gMHgzMDEyNjc0NTsKIAlpbW1hcC0+aW1fc2l1X2NvbmYuc2NfdGVzY3IxICAgPSAweDAwMDA0MDAwOwogCi0JbWVtY3RsLT5tZW1jX21wdHByID0gQ0ZHX01QVFBSOworCW1lbWN0bC0+bWVtY19tcHRwciA9IENPTkZJR19TWVNfTVBUUFI7CiAKLSNpZmRlZiBDRkdfTFNEUkFNX0JBU0UKKyNpZmRlZiBDT05GSUdfU1lTX0xTRFJBTV9CQVNFCiAJLyoKIAkgIEluaXRpYWxpc2UgbG9jYWwgYnVzIFNEUkFNIG9ubHkgaWYgdGhlIHBpbnMKIAkgIGFyZSBjb25maWd1cmVkIGFzIGxvY2FsIGJ1cyBwaW5zIGFuZCBub3QgYXMgUENJLgogCSovCiAJaWYgKChpbW1hcC0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyICYgU0lVTUNSX0xCUEMxMSkgPT0gU0lVTUNSX0xCUEMwMCkgewotCQltZW1jdGwtPm1lbWNfbHNydCAgPSBDRkdfTFNSVDsKLQkJbWVtY3RsLT5tZW1jX29yNCAgID0gQ0ZHX0xTRFJBTV9PUjsKLQkJbWVtY3RsLT5tZW1jX2JyNCAgID0gQ0ZHX0xTRFJBTV9CUjsKLQkJcmFtYWRkciA9ICh2dV9jaGFyICopQ0ZHX0xTRFJBTV9CQVNFOwotCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCBQU0RNUl9PUF9QUkVBOworCQltZW1jdGwtPm1lbWNfbHNydCAgPSBDT05GSUdfU1lTX0xTUlQ7CisJCW1lbWN0bC0+bWVtY19vcjQgICA9IENPTkZJR19TWVNfTFNEUkFNX09SOworCQltZW1jdGwtPm1lbWNfYnI0ICAgPSBDT05GSUdfU1lTX0xTRFJBTV9CUjsKKwkJcmFtYWRkciA9ICh2dV9jaGFyICopQ09ORklHX1NZU19MU0RSQU1fQkFTRTsKKwkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ09ORklHX1NZU19MU0RNUiB8IFBTRE1SX09QX1BSRUE7CiAJCSpyYW1hZGRyID0gYzsKLQkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ0ZHX0xTRE1SIHwgUFNETVJfT1BfQ0JSUjsKKwkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ09ORklHX1NZU19MU0RNUiB8IFBTRE1SX09QX0NCUlI7CiAJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCiAJCQkqcmFtYWRkciA9IGM7Ci0JCW1lbWN0bC0+bWVtY19sc2RtciA9IENGR19MU0RNUiB8IFBTRE1SX09QX01SVzsKKwkJbWVtY3RsLT5tZW1jX2xzZG1yID0gQ09ORklHX1NZU19MU0RNUiB8IFBTRE1SX09QX01SVzsKIAkJKnJhbWFkZHIgPSBjOwotCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDRkdfTFNETVIgfCBQU0RNUl9SRkVOOworCQltZW1jdGwtPm1lbWNfbHNkbXIgPSBDT05GSUdfU1lTX0xTRE1SIHwgUFNETVJfUkZFTjsKIAl9Ci0jZW5kaWYgLyogQ0ZHX0xTRFJBTV9CQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MU0RSQU1fQkFTRSAqLwogCiAJLyogSW5pdGlhbGlzZSA2MHggYnVzIFNEUkFNICovCi0JbWVtY3RsLT5tZW1jX3BzcnQgPSBDRkdfUFNSVDsKLQltZW1jdGwtPm1lbWNfb3IyICA9IENGR19QU0RSQU1fT1I7Ci0JbWVtY3RsLT5tZW1jX2JyMiAgPSBDRkdfUFNEUkFNX0JSOworCW1lbWN0bC0+bWVtY19wc3J0ID0gQ09ORklHX1NZU19QU1JUOworCW1lbWN0bC0+bWVtY19vcjIgID0gQ09ORklHX1NZU19QU0RSQU1fT1I7CisJbWVtY3RsLT5tZW1jX2JyMiAgPSBDT05GSUdfU1lTX1BTRFJBTV9CUjsKIAkvKgogCSAqIFRoZSBtb2RlIGRhdGEgZm9yIE1vZGUgUmVnaXN0ZXIgV3JpdGUgY29tbWFuZCBtdXN0IGFwcGVhciBvbgogCSAqIHRoZSBhZGRyZXNzIGxpbmVzIGR1cmluZyBhIG1vZGUtc2V0IGN5Y2xlLiBJdCBpcyBkcml2ZW4gYnkKQEAgLTI3OCwxOCArMjc4LDE4IEBACiAJICogdGhlIGFkZHJlc3MgbGluZXMuIEJMPTAgYmVjYXVzZSBmb3IgNjQtYml0IHBvcnQgc2l6ZSBidXJzdAogCSAqIGxlbmd0aCBtdXN0IGJlIDQuCiAJICovCi0JcmFtYWRkciA9ICh2dV9jaGFyICopKENGR19TRFJBTV9CQVNFIHwKLQkJCSAgICAgICgoQ0ZHX1BTRE1SICYgUFNETVJfQ0xfTVNLKSA8PCA3KSB8IDB4MTApOwotCW1lbWN0bC0+bWVtY19wc2RtciA9IENGR19QU0RNUiB8IFBTRE1SX09QX1BSRUE7IC8qIFByZWNoYXJnZSBhbGwgYmFua3MgKi8KKwlyYW1hZGRyID0gKHZ1X2NoYXIgKikoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwKKwkJCSAgICAgICgoQ09ORklHX1NZU19QU0RNUiAmIFBTRE1SX0NMX01TSykgPDwgNykgfCAweDEwKTsKKwltZW1jdGwtPm1lbWNfcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SIHwgUFNETVJfT1BfUFJFQTsgLyogUHJlY2hhcmdlIGFsbCBiYW5rcyAqLwogCSpyYW1hZGRyID0gYzsKLQltZW1jdGwtPm1lbWNfcHNkbXIgPSBDRkdfUFNETVIgfCBQU0RNUl9PUF9DQlJSOyAvKiBDQlIgcmVmcmVzaCAqLworCW1lbWN0bC0+bWVtY19wc2RtciA9IENPTkZJR19TWVNfUFNETVIgfCBQU0RNUl9PUF9DQlJSOyAvKiBDQlIgcmVmcmVzaCAqLwogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCiAJCSpyYW1hZGRyID0gYzsKLQltZW1jdGwtPm1lbWNfcHNkbXIgPSBDRkdfUFNETVIgfCBQU0RNUl9PUF9NUlc7ICAvKiBNb2RlIFJlZ2lzdGVyIHdyaXRlICovCisJbWVtY3RsLT5tZW1jX3BzZG1yID0gQ09ORklHX1NZU19QU0RNUiB8IFBTRE1SX09QX01SVzsgIC8qIE1vZGUgUmVnaXN0ZXIgd3JpdGUgKi8KIAkqcmFtYWRkciA9IGM7Ci0JbWVtY3RsLT5tZW1jX3BzZG1yID0gQ0ZHX1BTRE1SIHwgUFNETVJfUkZFTjsgICAgLyogUmVmcmVzaCBlbmFibGUgKi8KKwltZW1jdGwtPm1lbWNfcHNkbXIgPSBDT05GSUdfU1lTX1BTRE1SIHwgUFNETVJfUkZFTjsgICAgLyogUmVmcmVzaCBlbmFibGUgKi8KIAkqcmFtYWRkciA9IGM7Ci0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogCS8qIFJldHVybiB0b3RhbCA2MHggYnVzIFNEUkFNIHNpemUgKi8KIAlyZXR1cm4gbXNpemUgKiAxMDI0ICogMTAyNDsKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCiBpbnQgY2hlY2tib2FyZCh2b2lkKQogewotCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNGR19CQ1NSOworCXZ1X2NoYXIgKmJjc3IgPSAodnVfY2hhciAqKUNPTkZJR19TWVNfQkNTUjsKIAogCXByaW50ZigiQm9hcmQ6IFplcGh5ciBaUEMuMTkwMCBSZXYuICVjXG4iLCBiY3NyWzJdICsgMHg0MCk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9ib2FyZC96eWxvbml0ZS9mbGFzaC5jIGIvYm9hcmQvenlsb25pdGUvZmxhc2guYwppbmRleCA4MGI1MjBiLi41YmE4NGM2IDEwMDY0NAotLS0gYS9ib2FyZC96eWxvbml0ZS9mbGFzaC5jCisrKyBiL2JvYXJkL3p5bG9uaXRlL2ZsYXNoLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvc3dhYi5oPgogCiAKLWZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW0NGR19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLworZmxhc2hfaW5mb190IGZsYXNoX2luZm9bQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NdOwkvKiBpbmZvIGZvciBGTEFTSCBjaGlwcyAgICAqLwogCiAvKiBCb2FyZCBzdXBwb3J0IGZvciAxIG9yIDIgZmxhc2ggZGV2aWNlcyAqLwogI2RlZmluZSBGTEFTSF9QT1JUX1dJRFRIMzIKQEAgLTY2LDcgKzY2LDcgQEAKIAlpbnQgaTsKIAl1bG9uZyBzaXplID0gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQlzd2l0Y2ggKGkpIHsKIAkJY2FzZSAwOgogCQkJZmxhc2hfZ2V0X3NpemUgKChGUFcgKikgUEhZU19GTEFTSF8xLCAmZmxhc2hfaW5mb1tpXSk7CkBAIC04Niw4ICs4Niw4IEBACiAJLyogUHJvdGVjdCBtb25pdG9yIGFuZCBlbnZpcm9ubWVudCBzZWN0b3JzCiAJICovCiAJZmxhc2hfcHJvdGVjdCAoIEZMQUdfUFJPVEVDVF9TRVQsCi0JCQlDRkdfRkxBU0hfQkFTRSwKLQkJCUNGR19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gLSAxLAogCQkJJmZsYXNoX2luZm9bMF0gKTsKIAogCWZsYXNoX3Byb3RlY3QgKCBGTEFHX1BST1RFQ1RfU0VULApAQCAtMjA2LDEwICsyMDYsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGluZm8tPnNlY3Rvcl9jb3VudCA+IENGR19NQVhfRkxBU0hfU0VDVCkgeworCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKSB7CiAJCXByaW50ZiAoIioqIEVSUk9SOiBzZWN0b3IgY291bnQgJWQgPiBtYXggKCVkKSAqKlxuIiwKLQkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ0ZHX01BWF9GTEFTSF9TRUNUKTsKLQkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ0ZHX01BWF9GTEFTSF9TRUNUOworCQkJaW5mby0+c2VjdG9yX2NvdW50LCBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKwkJaW5mby0+c2VjdG9yX2NvdW50ID0gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVDsKIAl9CiAKIAlhZGRyWzBdID0gKEZQVykgMHgwMEZGMDBGRjsJCS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCkBAIC0yNzksNyArMjc5LDcgQEAKIAkJCSphZGRyID0gKEZQVykgMHgwMEQwMDBEMDsJLyogZXJhc2UgY29uZmlybSAqLwogCiAJCQl3aGlsZSAoKChzdGF0dXMgPSAqYWRkcikgJiAoRlBXKSAweDAwODAwMDgwKSAhPSAoRlBXKSAweDAwODAwMDgwKSB7Ci0JCQkJaWYgKGdldF90aW1lcl9tYXNrZWQgKCkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQkJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQkJCXByaW50ZiAoIlRpbWVvdXRcbiIpOwogCQkJCQkqYWRkciA9IChGUFcpIDB4MDBCMDAwQjA7CS8qIHN1c3BlbmQgZXJhc2UgICAgICovCiAJCQkJCSphZGRyID0gKEZQVykgMHgwMEZGMDBGRjsJLyogcmVzZXQgdG8gcmVhZCBtb2RlICovCkBAIC00MTMsNyArNDEzLDcgQEAKIAogCS8qIHdhaXQgd2hpbGUgcG9sbGluZyB0aGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJd2hpbGUgKCgoc3RhdHVzID0gKmFkZHIpICYgKEZQVykgMHgwMDgwMDA4MCkgIT0gKEZQVykgMHgwMDgwMDA4MCkgewotCQlpZiAoZ2V0X3RpbWVyX21hc2tlZCAoKSA+IENGR19GTEFTSF9XUklURV9UT1VUKSB7CisJCWlmIChnZXRfdGltZXJfbWFza2VkICgpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkqYWRkciA9IChGUFcpIDB4MDBGRjAwRkY7CS8qIHJlc3RvcmUgcmVhZCBtb2RlICovCiAJCQlyZXR1cm4gKDEpOwogCQl9CmRpZmYgLS1naXQgYS9ib2FyZC96eWxvbml0ZS9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC96eWxvbml0ZS9sb3dsZXZlbF9pbml0LlMKaW5kZXggZGEwMTc2NS4uZmYxN2M3ZSAxMDA2NDQKLS0tIGEvYm9hcmQvenlsb25pdGUvbG93bGV2ZWxfaW5pdC5TCisrKyBiL2JvYXJkL3p5bG9uaXRlL2xvd2xldmVsX2luaXQuUwpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHZlcnNpb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogCi1EUkFNX1NJWkU6ICAubG9uZyAgIENGR19EUkFNX1NJWkUKK0RSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKIAogLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KIC5tYWNybyBDUFdBSVQgcmVnCkBAIC0yMzUsMTMgKzIzNSwxMyBAQAogCW9ycgkJcjEsIHIxLCAjMHg0MDAwMDAwMAlAIGVuYWJsZSBTRFJBTSBmb3IgTm9ybWFsIEFjY2VzcwogCXN0cgkJcjEsIFtyMF0KIAotI2lmbmRlZiBDRkdfU0tJUF9EUkFNX1NDUlVCCisjaWZuZGVmIENPTkZJR19TWVNfU0tJUF9EUkFNX1NDUlVCCiAJLyogc2NydWIvaW5pdCBTRFJBTSBpZiBlbmFibGVkL3ByZXNlbnQgKi8KLS8qCWxkcglyMTEsID0weGEwMDAwMDAwIC9cKiBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gKENGR19EUkFNX0JBU0UpICpcLyAqLwotLyoJbGRyCXIxMiwgPTB4MDQwMDAwMDAgL1wqIHNpemUgb2YgbWVtb3J5IHRvIHNjcnViIChDRkdfRFJBTV9TSVpFKSAqXC8gKi8KKy8qCWxkcglyMTEsID0weGEwMDAwMDAwIC9cKiBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gKENPTkZJR19TWVNfRFJBTV9CQVNFKSAqXC8gKi8KKy8qCWxkcglyMTIsID0weDA0MDAwMDAwIC9cKiBzaXplIG9mIG1lbW9yeSB0byBzY3J1YiAoQ09ORklHX1NZU19EUkFNX1NJWkUpICpcLyAqLwogLyoJbW92CXI4LHIxMgkJIC9cKiBzYXZlIERSQU0gc2l6ZSAobWs6IHdoeT8/PykgKlwvICovCi0JbGRyCXI4LCA9MHhhMDAwMDAwMAkgLyogYmFzZSBhZGRyZXNzIG9mIFNEUkFNIChDRkdfRFJBTV9CQVNFKSAqLwotCWxkcglyOSwgPTB4MDQwMDAwMDAJIC8qIHNpemUgb2YgbWVtb3J5IHRvIHNjcnViIChDRkdfRFJBTV9TSVpFKSAqLworCWxkcglyOCwgPTB4YTAwMDAwMDAJIC8qIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSAoQ09ORklHX1NZU19EUkFNX0JBU0UpICovCisJbGRyCXI5LCA9MHgwNDAwMDAwMAkgLyogc2l6ZSBvZiBtZW1vcnkgdG8gc2NydWIgKENPTkZJR19TWVNfRFJBTV9TSVpFKSAqLwogCW1vdglyMCwgIzAJCSAvKiBzY3J1YiB3aXRoIDB4MDAwMDowMDAwICovCiAJbW92CXIxLCAjMAogCW1vdglyMiwgIzAKQEAgLTI1NSw3ICsyNTUsNyBAQAogCXN0bWlhCXI4ISwge3IwLXI3fQogCWJlcQkxNWYKIAliCTEwYgotI2VuZGlmIC8qIENGR19TS0lQX0RSQU1fU0NSVUIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1NLSVBfRFJBTV9TQ1JVQiAqLwogCiAxNToKIAkvKiBNYXNrIGFsbCBpbnRlcnJ1cHRzICovCmRpZmYgLS1naXQgYS9ib2FyZC96eWxvbml0ZS9uYW5kLmMgYi9ib2FyZC96eWxvbml0ZS9uYW5kLmMKaW5kZXggN2YyMjkzNS4uODk1ZmIyYiAxMDA2NDQKLS0tIGEvYm9hcmQvenlsb25pdGUvbmFuZC5jCisrKyBiL2JvYXJkL3p5bG9uaXRlL25hbmQuYwpAQCAtMjgsMTkgKzI4LDE5IEBACiAjaW5jbHVkZSA8bmFuZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAKLSNpZmRlZiBDRkdfREZDX0RFQlVHMQorI2lmZGVmIENPTkZJR19TWVNfREZDX0RFQlVHMQogIyBkZWZpbmUgREZDX0RFQlVHMShmbXQsIGFyZ3MuLi4pIHByaW50ZihmbXQsICMjYXJncykKICNlbHNlCiAjIGRlZmluZSBERkNfREVCVUcxKGZtdCwgYXJncy4uLikKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RGQ19ERUJVRzIKKyNpZmRlZiBDT05GSUdfU1lTX0RGQ19ERUJVRzIKICMgZGVmaW5lIERGQ19ERUJVRzIoZm10LCBhcmdzLi4uKSBwcmludGYoZm10LCAjI2FyZ3MpCiAjZWxzZQogIyBkZWZpbmUgREZDX0RFQlVHMihmbXQsIGFyZ3MuLi4pCiAjZW5kaWYKIAotI2lmZGVmIENGR19ERkNfREVCVUczCisjaWZkZWYgQ09ORklHX1NZU19ERkNfREVCVUczCiAjIGRlZmluZSBERkNfREVCVUczKGZtdCwgYXJncy4uLikgcHJpbnRmKGZtdCwgIyNhcmdzKQogI2Vsc2UKICMgZGVmaW5lIERGQ19ERUJVRzMoZm10LCBhcmdzLi4uKQpAQCAtMjExLDcgKzIxMSw3IEBACiBzdGF0aWMgdm9pZCBkZmNfY2xlYXJfbmRkYih2b2lkKQogewogCU5EQ1IgJj0gfk5EQ1JfTkRfUlVOOwotCXdhaXRfdXMoQ0ZHX05BTkRfT1RIRVJfVE8pOworCXdhaXRfdXMoQ09ORklHX1NZU19OQU5EX09USEVSX1RPKTsKIH0KIAogLyogd2FpdF9ldmVudCB3aXRoIHRpbWVvdXQgKi8KQEAgLTIyMiw5ICsyMjIsOSBAQAogCWlmKCFldmVudCkKIAkJcmV0dXJuIDB4ZmYwMDAwMDA7CiAJZWxzZSBpZihldmVudCAmIChORFNSX0NTMF9DTUREIHwgTkRTUl9DUzBfQkJEKSkKLQkJdGltZW91dCA9IENGR19OQU5EX1BST0dfRVJBU0VfVE8gKiBPU0NSX0NMS19GUkVROworCQl0aW1lb3V0ID0gQ09ORklHX1NZU19OQU5EX1BST0dfRVJBU0VfVE8gKiBPU0NSX0NMS19GUkVROwogCWVsc2UKLQkJdGltZW91dCA9IENGR19OQU5EX09USEVSX1RPICogT1NDUl9DTEtfRlJFUTsKKwkJdGltZW91dCA9IENPTkZJR19TWVNfTkFORF9PVEhFUl9UTyAqIE9TQ1JfQ0xLX0ZSRVE7CiAKIAl3aGlsZSgxKSB7CiAJCW5kc3IgPSBORFNSOwpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAJaW50IHJldHJ5ID0gMDsKIAl1bnNpZ25lZCBsb25nIHN0YXR1czsKIAotCXdoaWxlKHJldHJ5KysgPD0gQ0ZHX05BTkRfU0VORENNRF9SRVRSWSkgeworCXdoaWxlKHJldHJ5KysgPD0gQ09ORklHX1NZU19OQU5EX1NFTkRDTURfUkVUUlkpIHsKIAkJLyogQ2xlYXIgTkRTUiAqLwogCQlORFNSID0gMHhGRkY7CiAKQEAgLTQzOCw4ICs0MzgsOCBAQAogCS8qIHR1cm4gb24gdGhlIE5BTkQgQ29udHJvbGxlciBDbG9jayAoMTA0IE1IeiBAIEQwKSAqLwogCUNLRU5BIHw9IChDS0VOQV80X05BTkQgfCBDS0VOQV85X1NNQyk7CiAKLSN1bmRlZiBDRkdfVElNSU5HX1RJR0hUCi0jaWZuZGVmIENGR19USU1JTkdfVElHSFQKKyN1bmRlZiBDT05GSUdfU1lTX1RJTUlOR19USUdIVAorI2lmbmRlZiBDT05GSUdfU1lTX1RJTUlOR19USUdIVAogCXRDSCA9IE1JTigoKHVuc2lnbmVkIGxvbmcpIChOQU5EX1RJTUlOR190Q0ggKiBERkNfQ0xLX1BFUl9VUykgKyAxKSwKIAkJICBERkNfTUFYX3RDSCk7CiAJdENTID0gTUlOKCgodW5zaWduZWQgbG9uZykgKE5BTkRfVElNSU5HX3RDUyAqIERGQ19DTEtfUEVSX1VTKSArIDEpLApAQCAtNDc4LDcgKzQ3OCw3IEBACiAJCSAgIERGQ19NQVhfdFdIUik7CiAJdEFSID0gTUlOKCgodW5zaWduZWQgbG9uZykgKE5BTkRfVElNSU5HX3RBUiAqIERGQ19DTEtfUEVSX1VTKSAtIDIpLAogCQkgIERGQ19NQVhfdEFSKTsKLSNlbmRpZiAvKiBDRkdfVElNSU5HX1RJR0hUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19USU1JTkdfVElHSFQgKi8KIAogCiAJREZDX0RFQlVHMigidENIPSV1LCB0Q1M9JXUsIHRXSD0ldSwgdFdQPSV1LCB0Ukg9JXUsIHRSUD0ldSwgdFI9JXUsIHRXSFI9JXUsIHRBUj0ldS5cbiIsIHRDSCwgdENTLCB0V0gsIHRXUCwgdFJILCB0UlAsIHRSLCB0V0hSLCB0QVIpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL0FDRVgxSy5jIGIvY29tbW9uL0FDRVgxSy5jCmluZGV4IDUzNjc3YjguLjNmNzk2NzcgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9BQ0VYMUsuYworKysgYi9jb21tb24vQUNFWDFLLmMKQEAgLTQ0LDggKzQ0LDggQEAKICNkZWZpbmUgQ09ORklHX0ZQR0FfREVMQVkoKQogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0ZQR0FfV0FJVAotI2RlZmluZSBDRkdfRlBHQV9XQUlUIENGR19IWi8xMAkJLyogMTAwIG1zICovCisjaWZuZGVmIENPTkZJR19TWVNfRlBHQV9XQUlUCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9XQUlUIENPTkZJR19TWVNfSFovMTAJCS8qIDEwMCBtcyAqLwogI2VuZGlmCiAKIHN0YXRpYyBpbnQgQUNFWDFLX3BzX2xvYWQoIEFsdGVyYV9kZXNjICpkZXNjLCB2b2lkICpidWYsIHNpemVfdCBic2l6ZSApOwpAQCAtMTU0LDcgKzE1NCw3IEBACiAJCQkJImRvbmU6XHQweCVwXG5cbiIsCiAJCQkJX19GVU5DVElPTl9fLCAmZm4sIGZuLCBmbi0+Y29uZmlnLCBmbi0+c3RhdHVzLAogCQkJCWZuLT5jbGssIGZuLT5kYXRhLCBmbi0+ZG9uZSk7Ci0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXByaW50ZiAoIkxvYWRpbmcgRlBHQSBEZXZpY2UgJWQuLi4iLCBjb29raWUpOwogI2VuZGlmCiAKQEAgLTE4NSw3ICsxODUsNyBAQAogCQl0cyA9IGdldF90aW1lciAoMCk7CQkvKiBnZXQgY3VycmVudCB0aW1lICovCiAJCWRvIHsKIAkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwotCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLworCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQlwdXRzICgiKiogVGltZW91dCB3YWl0aW5nIGZvciBTVEFUVVMgdG8gZ28gaGlnaC5cbiIpOwogCQkJCSgqZm4tPmFib3J0KSAoY29va2llKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwpAQCAtMTk5LDcgKzE5OSw3IEBACiAJCS8qIExvYWQgdGhlIGRhdGEgKi8KIAkJd2hpbGUgKGJ5dGVjb3VudCA8IGJzaXplKSB7CiAJCQl1bnNpZ25lZCBjaGFyIHZhbD0wOwotI2lmZGVmIENGR19GUEdBX0NIRUNLX0NUUkxDCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCiAJCQlpZiAoY3RybGMgKCkpIHsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTIzMCw3ICsyMzAsNyBAQAogCQkJCWkgLS07CiAJCQl9IHdoaWxlIChpID4gMCk7CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJCWlmIChieXRlY291bnQgJSAoYnNpemUgLyA0MCkgPT0gMCkKIAkJCQlwdXRjICgnLicpOwkJLyogbGV0IHRoZW0ga25vdyB3ZSBhcmUgYWxpdmUgKi8KICNlbmRpZgpAQCAtMjM4LDcgKzIzOCw3IEBACiAKIAkJQ09ORklHX0ZQR0FfREVMQVkgKCk7CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJcHV0YyAoJyAnKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIApAQCAtMjY1LDcgKzI2NSw3IEBACiAKIAlyZXRfdmFsID0gRlBHQV9TVUNDRVNTOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCWlmIChyZXRfdmFsID09IEZQR0FfU1VDQ0VTUykgewogCQkJcHV0cyAoIkRvbmUuXG4iKTsKIAkJfQpkaWZmIC0tZ2l0IGEvY29tbW9uL01ha2VmaWxlIGIvY29tbW9uL01ha2VmaWxlCmluZGV4IDhiZGRmOGUuLmYwMGNiZDkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9NYWtlZmlsZQorKysgYi9jb21tb24vTWFrZWZpbGUKQEAgLTE1Myw2ICsxNTMsNyBAQAogQ09CSlMteSArPSBrZ2RiLm8KIENPQkpTLSQoQ09ORklHX0xDRCkgKz0gbGNkLm8KIENPQkpTLSQoQ09ORklHX0xZTlhLREkpICs9IGx5bnhrZGkubworQ09CSlMtJChDT05GSUdfVVBEQVRFX1RGVFApICs9IHVwZGF0ZS5vCiBDT0JKUy0kKENPTkZJR19VU0JfS0VZQk9BUkQpICs9IHVzYl9rYmQubwogQ09CSlMtJChDT05GSUdfRERSX1NQRCkgKz0gZGRyX3NwZC5vCiAKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfYXV0b3NjcmlwdC5jIGIvY29tbW9uL2NtZF9hdXRvc2NyaXB0LmMKaW5kZXggMDQzOWRhMi4uNDUxN2FjOCAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9hdXRvc2NyaXB0LmMKKysrIGIvY29tbW9uL2NtZF9hdXRvc2NyaXB0LmMKQEAgLTQzLDcgKzQzLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAjaW5jbHVkZSA8bXBjOHh4Lmg+CiAjZW5kaWYKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAjaW5jbHVkZSA8aHVzaC5oPgogI2VuZGlmCiAKQEAgLTE2NCw3ICsxNjQsNyBAQAogCW1lbW1vdmUgKGNtZCwgKGNoYXIgKilkYXRhLCBsZW4pOwogCSooY21kICsgbGVuKSA9IDA7CiAKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIgLyo/PyAqLworI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIgLyo/PyAqLwogCXJjb2RlID0gcGFyc2Vfc3RyaW5nX291dGVyIChjbWQsIEZMQUdfUEFSU0VfU0VNSUNPTE9OKTsKICNlbHNlCiAJewpAQCAtMjExLDcgKzIxMSw3IEBACiAKIAkvKiBGaW5kIHNjcmlwdCBpbWFnZSAqLwogCWlmIChhcmdjIDwgMikgewotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQlkZWJ1ZyAoIiogIGF1dG9zY3I6IGRlZmF1bHQgbG9hZCBhZGRyZXNzID0gMHglMDhseFxuIiwgYWRkcik7CiAjaWYgZGVmaW5lZChDT05GSUdfRklUKQogCX0gZWxzZSBpZiAoZml0X3BhcnNlX3N1YmltYWdlIChhcmd2WzFdLCBsb2FkX2FkZHIsICZhZGRyLCAmZml0X3VuYW1lKSkgewpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9iZGluZm8uYyBiL2NvbW1vbi9jbWRfYmRpbmZvLmMKaW5kZXggZjRkOWQ0MC4uNjY3NTI0MSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9iZGluZm8uYworKysgYi9jb21tb24vY21kX2JkaW5mby5jCkBAIC0xMTcsNiArMTE3LDIwIEBACiAJfQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKENPTkZJR19IQVNfRVRINCkKKyAgICAgICBwdXRzICgiXG5ldGg0YWRkciAgICA9Iik7CisgICAgICAgZm9yIChpPTA7IGk8NjsgKytpKSB7CisJCXByaW50ZiAoIiVjJTAyWCIsIGkgPyAnOicgOiAnICcsIGJkLT5iaV9lbmV0NGFkZHJbaV0pOworCX0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfSEFTX0VUSDUpCisgICAgICAgcHV0cyAoIlxuZXRoNWFkZHIgICAgPSIpOworICAgICAgIGZvciAoaT0wOyBpPDY7ICsraSkgeworCQlwcmludGYgKCIlYyUwMlgiLCBpID8gJzonIDogJyAnLCBiZC0+YmlfZW5ldDVhZGRyW2ldKTsKKwl9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19IRVJNRVMKIAlwcmludF9zdHIgKCJldGhzcGVlZCIsCSAgICBzdHJtaHooYnVmLCBiZC0+YmlfZXRoc3BlZWQpKTsKICNlbmRpZgpAQCAtMTY0LDcgKzE3OCw3IEBACiAJcHJpbnRfbnVtICgiZmxhc2ggc2l6ZSIsCSh1bG9uZyliZC0+YmlfZmxhc2hzaXplKTsKIAlwcmludF9udW0gKCJmbGFzaCBvZmZzZXQiLAkodWxvbmcpYmQtPmJpX2ZsYXNob2Zmc2V0KTsKIAotI2lmIGRlZmluZWQoQ0ZHX1NSQU1fQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfU1JBTV9CQVNFKQogCXByaW50X251bSAoInNyYW0gc3RhcnQiLAkodWxvbmcpYmQtPmJpX3NyYW1zdGFydCk7CiAJcHJpbnRfbnVtICgic3JhbSBzaXplIiwJCSh1bG9uZyliZC0+Ymlfc3JhbXNpemUpOwogI2VuZGlmCkBAIC0xOTMsNyArMjA3LDcgQEAKIAlwcmludF9udW0gKCJmbGFzaCBzdGFydCAgICAiLAkodWxvbmcpYmQtPmJpX2ZsYXNoc3RhcnQpOwogCXByaW50X251bSAoImZsYXNoIHNpemUgICAgICIsCSh1bG9uZyliZC0+YmlfZmxhc2hzaXplKTsKIAlwcmludF9udW0gKCJmbGFzaCBvZmZzZXQgICAiLAkodWxvbmcpYmQtPmJpX2ZsYXNob2Zmc2V0KTsKLSNpZiBkZWZpbmVkKENGR19TUkFNX0JBU0UpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fQkFTRSkKIAlwcmludF9udW0gKCJzcmFtIHN0YXJ0ICAgICAiLAkodWxvbmcpYmQtPmJpX3NyYW1zdGFydCk7CiAJcHJpbnRfbnVtICgic3JhbSBzaXplICAgICAgIiwJKHVsb25nKWJkLT5iaV9zcmFtc2l6ZSk7CiAjZW5kaWYKQEAgLTIyMywxOCArMjM3LDE4IEBACiAJcHJpbnRfbnVtKCJtZW1zdGFydCAgICAgICAgICAgICAgICIsIGJkLT5iaV9tZW1zdGFydCk7CiAJcHJpbnRfbG51bSgibWVtc2l6ZSAgICAgICAgICAgICAgICAiLCBiZC0+YmlfbWVtc2l6ZSk7CiAJcHJpbnRfbnVtKCJmbGFzaHN0YXJ0ICAgICAgICAgICAgICIsIGJkLT5iaV9mbGFzaHN0YXJ0KTsKLQlwcmludF9udW0oIkNGR19NT05JVE9SX0JBU0UgICAgICAgIiwgQ0ZHX01PTklUT1JfQkFTRSk7CisJcHJpbnRfbnVtKCJDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICAgICAiLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSk7CiAJcHJpbnRfbnVtKCJDT05GSUdfRU5WX0FERFIgICAgICAgICAgICIsIENPTkZJR19FTlZfQUREUik7Ci0JcHJpbnRmKCJDRkdfUkVMT0NfTU9OSVRPUl9CQVNFID0gMHglbHggKCVkKVxuIiwgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwKLQkgICAgICAgQ0ZHX01PTklUT1JfTEVOKTsKLQlwcmludGYoIkNGR19NQUxMT0NfQkFTRSAgICAgICAgPSAweCVseCAoJWQpXG4iLCBDRkdfTUFMTE9DX0JBU0UsCi0JICAgICAgIENGR19NQUxMT0NfTEVOKTsKLQlwcmludGYoIkNGR19JTklUX1NQX09GRlNFVCAgICAgPSAweCVseCAoJWQpXG4iLCBDRkdfSU5JVF9TUF9PRkZTRVQsCi0JICAgICAgIENGR19TVEFDS19TSVpFKTsKLQlwcmludGYoIkNGR19QUk9NX09GRlNFVCAgICAgICAgPSAweCVseCAoJWQpXG4iLCBDRkdfUFJPTV9PRkZTRVQsCi0JICAgICAgIENGR19QUk9NX1NJWkUpOwotCXByaW50ZigiQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICA9IDB4JWx4ICglZClcbiIsIENGR19HQkxfREFUQV9PRkZTRVQsCi0JICAgICAgIENGR19HQkxfREFUQV9TSVpFKTsKKwlwcmludGYoIkNPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFID0gMHglbHggKCVkKVxuIiwgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsCisJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pOworCXByaW50ZigiQ09ORklHX1NZU19NQUxMT0NfQkFTRSAgICAgICAgPSAweCVseCAoJWQpXG4iLCBDT05GSUdfU1lTX01BTExPQ19CQVNFLAorCSAgICAgICBDT05GSUdfU1lTX01BTExPQ19MRU4pOworCXByaW50ZigiQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgPSAweCVseCAoJWQpXG4iLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VULAorCSAgICAgICBDT05GSUdfU1lTX1NUQUNLX1NJWkUpOworCXByaW50ZigiQ09ORklHX1NZU19QUk9NX09GRlNFVCAgICAgICAgPSAweCVseCAoJWQpXG4iLCBDT05GSUdfU1lTX1BST01fT0ZGU0VULAorCSAgICAgICBDT05GSUdfU1lTX1BST01fU0laRSk7CisJcHJpbnRmKCJDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICA9IDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VULAorCSAgICAgICBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05FVCkKIAlwdXRzKCJldGhhZGRyICAgICAgICAgICAgICAgID0iKTsKQEAgLTI2MiwxMSArMjc2LDExIEBACiAJcHJpbnRfbnVtICgiZmxhc2hzdGFydCIsCSh1bG9uZyliZC0+YmlfZmxhc2hzdGFydCk7CiAJcHJpbnRfbnVtICgiZmxhc2hzaXplIiwJCSh1bG9uZyliZC0+YmlfZmxhc2hzaXplKTsKIAlwcmludF9udW0gKCJmbGFzaG9mZnNldCIsCSh1bG9uZyliZC0+YmlfZmxhc2hvZmZzZXQpOwotI2lmIGRlZmluZWQoQ0ZHX0lOSVRfUkFNX0FERFIpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpCiAJcHJpbnRfbnVtICgic3JhbXN0YXJ0IiwJCSh1bG9uZyliZC0+Ymlfc3JhbXN0YXJ0KTsKIAlwcmludF9udW0gKCJzcmFtc2l6ZSIsCQkodWxvbmcpYmQtPmJpX3NyYW1zaXplKTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX01CQVIpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX01CQVIpCiAJcHJpbnRfbnVtICgibWJhciIsCQliZC0+YmlfbWJhcl9iYXNlKTsKICNlbmRpZgogCXByaW50X3N0ciAoImJ1c2ZyZXEiLAkJc3RybWh6KGJ1ZiwgYmQtPmJpX2J1c2ZyZXEpKTsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfYmVkYnVnLmMgYi9jb21tb24vY21kX2JlZGJ1Zy5jCmluZGV4IDk0ZjdlMDguLjNlNTk3ZjkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfYmVkYnVnLmMKKysrIGIvY29tbW9uL2NtZF9iZWRidWcuYwpAQCAtMjE4LDcgKzIxOCw3IEBACiAJaW50IGZsYWc7CQkvKiBDb21tYW5kIGZsYWdzICAgICAgICAgICovCiAJaW50IHJjID0gMDsJCS8qIFJlc3VsdCBmcm9tIHJ1bl9jb21tYW5kICovCiAJY2hhciBwcm9tcHRfc3RyWzIwXTsJLyogUHJvbXB0IHN0cmluZyAgICAgICAgICAqLwotCXN0YXRpYyBjaGFyIGxhc3Rjb21tYW5kW0NGR19DQlNJWkVdID0geyAwIH07CS8qIHByZXZpb3VzIGNvbW1hbmQgKi8KKwlzdGF0aWMgY2hhciBsYXN0Y29tbWFuZFtDT05GSUdfU1lTX0NCU0laRV0gPSB7IDAgfTsJLyogcHJldmlvdXMgY29tbWFuZCAqLwogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIAlpZiAoYnVnX2N0eC5jbGVhcikKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfYm1wLmMgYi9jb21tb24vY21kX2JtcC5jCmluZGV4IDE5N2U1ZTguLmJjMDhiMjYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfYm1wLmMKKysrIGIvY29tbW9uL2NtZF9ibXAuYwpAQCAtNTUsMTkgKzU1LDE5IEBACiAJLyoKIAkgKiBEZWNvbXByZXNzIGJtcCBpbWFnZQogCSAqLwotCWxlbiA9IENGR19WSURFT19MT0dPX01BWF9TSVpFOwotCWRzdCA9IG1hbGxvYyhDRkdfVklERU9fTE9HT19NQVhfU0laRSk7CisJbGVuID0gQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFOworCWRzdCA9IG1hbGxvYyhDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUpOwogCWlmIChkc3QgPT0gTlVMTCkgewogCQlwdXRzKCJFcnJvcjogbWFsbG9jIGluIGd1bnppcCBmYWlsZWQhXG4iKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQotCWlmIChndW56aXAoZHN0LCBDRkdfVklERU9fTE9HT19NQVhfU0laRSwgKHVjaGFyICopYWRkciwgJmxlbikgIT0gMCkgeworCWlmIChndW56aXAoZHN0LCBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUsICh1Y2hhciAqKWFkZHIsICZsZW4pICE9IDApIHsKIAkJZnJlZShkc3QpOwogCQlyZXR1cm4gTlVMTDsKIAl9Ci0JaWYgKGxlbiA9PSBDRkdfVklERU9fTE9HT19NQVhfU0laRSkKKwlpZiAobGVuID09IENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSkKIAkJcHV0cygiSW1hZ2UgY291bGQgYmUgdHJ1bmNhdGVkIgotCQkJCSIgKGluY3JlYXNlIENGR19WSURFT19MT0dPX01BWF9TSVpFKSFcbiIpOworCQkJCSIgKGluY3JlYXNlIENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSkhXG4iKTsKIAogCWJtcCA9IGRzdDsKIApkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9ib290LmMgYi9jb21tb24vY21kX2Jvb3QuYwppbmRleCBkODNmNWFmLi42MDI0ZmZlIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2Jvb3QuYworKysgYi9jb21tb24vY21kX2Jvb3QuYwpAQCAtNjMsNyArNjMsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogVV9CT09UX0NNRCgKLQlnbywgQ0ZHX01BWEFSR1MsIDEsCWRvX2dvLAorCWdvLCBDT05GSUdfU1lTX01BWEFSR1MsIDEsCWRvX2dvLAogCSJnbyAgICAgIC0gc3RhcnQgYXBwbGljYXRpb24gYXQgYWRkcmVzcyAnYWRkcidcbiIsCiAJImFkZHIgW2FyZyAuLi5dXG4gICAgLSBzdGFydCBhcHBsaWNhdGlvbiBhdCBhZGRyZXNzICdhZGRyJ1xuIgogCSIgICAgICBwYXNzaW5nICdhcmcnIGFzIGFyZ3VtZW50c1xuIgpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9ib290bS5jIGIvY29tbW9uL2NtZF9ib290bS5jCmluZGV4IDg5N2U5ZjYuLmIwMmRhM2UgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfYm9vdG0uYworKysgYi9jb21tb24vY21kX2Jvb3RtLmMKQEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlIDx1c2IuaD4KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogI2luY2x1ZGUgPGh1c2guaD4KICNlbmRpZgogCkBAIC02MCw4ICs2MCw4IEBACiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAogZXh0ZXJuIGludCBndW56aXAgKHZvaWQgKmRzdCwgaW50IGRzdGxlbiwgdW5zaWduZWQgY2hhciAqc3JjLCB1bnNpZ25lZCBsb25nICpsZW5wKTsKLSNpZm5kZWYgQ0ZHX0JPT1RNX0xFTgotI2RlZmluZSBDRkdfQk9PVE1fTEVOCTB4ODAwMDAwCS8qIHVzZSA4TUJ5dGUgYXMgZGVmYXVsdCBtYXggZ3VuemlwIHNpemUgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19CT09UTV9MRU4KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTV9MRU4JMHg4MDAwMDAJLyogdXNlIDhNQnl0ZSBhcyBkZWZhdWx0IG1heCBndW56aXAgc2l6ZSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfQlpJUDIKQEAgLTExOSw3ICsxMTksNyBAQAogc3RhdGljIGJvb3Rfb3NfZm4gZG9fYm9vdG1faW50ZWdyaXR5OwogI2VuZGlmCiAKLXVsb25nIGxvYWRfYWRkciA9IENGR19MT0FEX0FERFI7CS8qIERlZmF1bHQgTG9hZCBBZGRyZXNzICovCit1bG9uZyBsb2FkX2FkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsJLyogRGVmYXVsdCBMb2FkIEFkZHJlc3MgKi8KIHN0YXRpYyBib290bV9oZWFkZXJzX3QgaW1hZ2VzOwkJLyogcG9pbnRlcnMgdG8gb3MvaW5pdHJkL2ZkdCBpbWFnZXMgKi8KIAogdm9pZCBfX2JvYXJkX2xtYl9yZXNlcnZlKHN0cnVjdCBsbWIgKmxtYikKQEAgLTEyOCw2ICsxMjgsMTIgQEAKIH0KIHZvaWQgYm9hcmRfbG1iX3Jlc2VydmUoc3RydWN0IGxtYiAqbG1iKSBfX2F0dHJpYnV0ZV9fKCh3ZWFrLCBhbGlhcygiX19ib2FyZF9sbWJfcmVzZXJ2ZSIpKSk7CiAKK3ZvaWQgX19hcmNoX2xtYl9yZXNlcnZlKHN0cnVjdCBsbWIgKmxtYikKK3sKKwkvKiBwbGVhc2UgZGVmaW5lIHBsYXRmb3JtIHNwZWNpZmljIGFyY2hfbG1iX3Jlc2VydmUoKSAqLworfQordm9pZCBhcmNoX2xtYl9yZXNlcnZlKHN0cnVjdCBsbWIgKmxtYikgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIl9fYXJjaF9sbWJfcmVzZXJ2ZSIpKSk7CisKICNpZiBkZWZpbmVkKF9fQVJNX18pCiAgICNkZWZpbmUgSUhfSU5JVFJEX0FSQ0ggSUhfQVJDSF9BUk0KICNlbGlmIGRlZmluZWQoX19hdnIzMl9fKQpAQCAtMTczLDYgKzE3OSw3IEBACiAKIAlsbWJfYWRkKCZpbWFnZXMubG1iLCAocGh5c19hZGRyX3QpbWVtX3N0YXJ0LCBtZW1fc2l6ZSk7CiAKKwlhcmNoX2xtYl9yZXNlcnZlKCZpbWFnZXMubG1iKTsKIAlib2FyZF9sbWJfcmVzZXJ2ZSgmaW1hZ2VzLmxtYik7CiAKIAkvKiBnZXQga2VybmVsIGltYWdlIGhlYWRlciwgc3RhcnQgYWRkcmVzcyBhbmQgbGVuZ3RoICovCkBAIC0yODksNyArMjk2LDcgQEAKIAl1bG9uZyBibG9iX2VuZCA9IG9zLmVuZDsKIAl1bG9uZyBpbWFnZV9zdGFydCA9IG9zLmltYWdlX3N0YXJ0OwogCXVsb25nIGltYWdlX2xlbiA9IG9zLmltYWdlX2xlbjsKLQl1aW50IHVuY19sZW4gPSBDRkdfQk9PVE1fTEVOOworCXVpbnQgdW5jX2xlbiA9IENPTkZJR19TWVNfQk9PVE1fTEVOOwogCiAJY29uc3QgY2hhciAqdHlwZV9uYW1lID0gZ2VuaW1nX2dldF90eXBlX25hbWUgKG9zLnR5cGUpOwogCkBAIC0zMjksNyArMzM2LDcgQEAKIAkJICovCiAJCWludCBpID0gQloyX2J6QnVmZlRvQnVmZkRlY29tcHJlc3MgKChjaGFyKilsb2FkLAogCQkJCQkmdW5jX2xlbiwgKGNoYXIgKilpbWFnZV9zdGFydCwgaW1hZ2VfbGVuLAotCQkJCQlDRkdfTUFMTE9DX0xFTiA8ICg0MDk2ICogMTAyNCksIDApOworCQkJCQlDT05GSUdfU1lTX01BTExPQ19MRU4gPCAoNDA5NiAqIDEwMjQpLCAwKTsKIAkJaWYgKGkgIT0gQlpfT0spIHsKIAkJCXByaW50ZiAoIkJVTlpJUDI6IHVuY29tcHJlc3Mgb3Igb3ZlcndyaXRlIGVycm9yICVkICIKIAkJCQkiLSBtdXN0IFJFU0VUIGJvYXJkIHRvIHJlY292ZXJcbiIsIGkpOwpAQCAtNzYyLDcgKzc2OSw3IEBACiB9CiAKIFVfQk9PVF9DTUQoCi0JYm9vdG0sCUNGR19NQVhBUkdTLAkxLAlkb19ib290bSwKKwlib290bSwJQ09ORklHX1NZU19NQVhBUkdTLAkxLAlkb19ib290bSwKIAkiYm9vdG0gICAtIGJvb3QgYXBwbGljYXRpb24gaW1hZ2UgZnJvbSBtZW1vcnlcbiIsCiAJIlthZGRyIFthcmcgLi4uXV1cbiAgICAtIGJvb3QgYXBwbGljYXRpb24gaW1hZ2Ugc3RvcmVkIGluIG1lbW9yeVxuIgogCSJcdHBhc3NpbmcgYXJndW1lbnRzICdhcmcgLi4uJzsgd2hlbiBib290aW5nIGEgTGludXgga2VybmVsLFxuIgpAQCAtNzkyLDcgKzc5OSw3IEBACiB7CiAJaW50IHJjb2RlID0gMDsKIAotI2lmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZm5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCWlmIChydW5fY29tbWFuZCAoZ2V0ZW52ICgiYm9vdGNtZCIpLCBmbGFnKSA8IDApCiAJCXJjb2RlID0gMTsKICNlbHNlCkBAIC04OTYsNyArOTAzLDcgQEAKIH0KIAogVV9CT09UX0NNRCgKLQlpbWluZm8sCUNGR19NQVhBUkdTLAkxLAlkb19pbWluZm8sCisJaW1pbmZvLAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX2ltaW5mbywKIAkiaW1pbmZvICAtIHByaW50IGhlYWRlciBpbmZvcm1hdGlvbiBmb3IgYXBwbGljYXRpb24gaW1hZ2VcbiIsCiAJImFkZHIgW2FkZHIgLi4uXVxuIgogCSIgICAgLSBwcmludCBoZWFkZXIgaW5mb3JtYXRpb24gZm9yIGFwcGxpY2F0aW9uIGltYWdlIHN0YXJ0aW5nIGF0XG4iCkBAIC05MTcsNyArOTI0LDcgQEAKIAl2b2lkICpoZHI7CiAKIAlmb3IgKGkgPSAwLCBpbmZvID0gJmZsYXNoX2luZm9bMF07Ci0JCWkgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgeworCQlpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsraSwgKytpbmZvKSB7CiAKIAkJaWYgKGluZm8tPmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pCiAJCQlnb3RvIG5leHRfYmFuazsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfZGF0ZS5jIGIvY29tbW9uL2NtZF9kYXRlLmMKaW5kZXggZDZjZDU2NS4uYjRkOTY0OSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9kYXRlLmMKKysrIGIvY29tbW9uL2NtZF9kYXRlLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKIAogCS8qIHN3aXRjaCB0byBjb3JyZWN0IEkyQyBidXMgKi8KIAlvbGRfYnVzID0gSTJDX0dFVF9CVVMoKTsKLQlJMkNfU0VUX0JVUyhDRkdfUlRDX0JVU19OVU0pOworCUkyQ19TRVRfQlVTKENPTkZJR19TWVNfUlRDX0JVU19OVU0pOwogCiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAyOgkJCS8qIHNldCBkYXRlICYgdGltZSAqLwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9kaWFnLmMgYi9jb21tb24vY21kX2RpYWcuYwppbmRleCA4MmQ1YWQzLi4xM2Q0MjI1IDEwMDY0NAotLS0gYS9jb21tb24vY21kX2RpYWcuYworKysgYi9jb21tb24vY21kX2RpYWcuYwpAQCAtNjUsNyArNjUsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogVV9CT09UX0NNRCgKLQlkaWFnLAlDRkdfTUFYQVJHUywJMCwJZG9fZGlhZywKKwlkaWFnLAlDT05GSUdfU1lTX01BWEFSR1MsCTAsCWRvX2RpYWcsCiAJImRpYWcgICAgLSBwZXJmb3JtIGJvYXJkIGRpYWdub3N0aWNzXG4iLAogCSAgICAgIiAgICAtIHByaW50IGxpc3Qgb2YgYXZhaWxhYmxlIHRlc3RzXG4iCiAJImRpYWcgW3Rlc3QxIFt0ZXN0Ml1dXG4iCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2Rpc3BsYXkuYyBiL2NvbW1vbi9jbWRfZGlzcGxheS5jCmluZGV4IGEyOTM0NWMuLjk4MmUwOWQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfZGlzcGxheS5jCisrKyBiL2NvbW1vbi9jbWRfZGlzcGxheS5jCkBAIC0zNiw3ICszNiw3IEBACiAJaW50IHBvczsKIAogCS8qIENsZWFyIGRpc3BsYXkgKi8KLQkqKCh2b2xhdGlsZSBjaGFyKikoQ0ZHX0RJU1BfQ1dPUkQpKSA9IENXT1JEX0NMRUFSOworCSooKHZvbGF0aWxlIGNoYXIqKShDT05GSUdfU1lTX0RJU1BfQ1dPUkQpKSA9IENXT1JEX0NMRUFSOwogCXVkZWxheSgxMDAwICogQ0xFQVJfREVMQVkpOwogCiAJaWYgKGFyZ2MgPCAyKQpAQCAtNDYsMTQgKzQ2LDE0IEBACiAJCWNoYXIgKnAgPSBhcmd2W2ldLCBjOwogCiAJCWlmIChpID4gMSkgewotCQkJKigodm9sYXRpbGUgdWNoYXIgKikgKENGR19ESVNQX0NIUl9SQU0gKyBwb3MrKykpID0gJyAnOworCQkJKigodm9sYXRpbGUgdWNoYXIgKikgKENPTkZJR19TWVNfRElTUF9DSFJfUkFNICsgcG9zKyspKSA9ICcgJzsKICNpZmRlZiBERUJVR19ESVNQCiAJCQlwdXRjKCcgJyk7CiAjZW5kaWYKIAkJfQogCiAJCXdoaWxlICgoYyA9ICpwKyspICE9ICdcMCcgJiYgcG9zIDwgRElTUF9TSVpFKSB7Ci0JCQkqKCh2b2xhdGlsZSB1Y2hhciAqKSAoQ0ZHX0RJU1BfQ0hSX1JBTSArIHBvcysrKSkgPSBjOworCQkJKigodm9sYXRpbGUgdWNoYXIgKikgKENPTkZJR19TWVNfRElTUF9DSFJfUkFNICsgcG9zKyspKSA9IGM7CiAjaWZkZWYgREVCVUdfRElTUAogCQkJcHV0YyhjKTsKICNlbmRpZgpAQCAtNzAsNyArNzAsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogVV9CT09UX0NNRCgKLQlkaXNwbGF5LAlDRkdfTUFYQVJHUywJMSwJZG9fZGlzcGxheSwKKwlkaXNwbGF5LAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX2Rpc3BsYXksCiAJImRpc3BsYXktIGRpc3BsYXkgc3RyaW5nIG9uIGRvdCBtYXRyaXggZGlzcGxheVxuIiwKIAkiWzxzdHJpbmc+XVxuIgogCSIgICAgLSB3aXRoIDxzdHJpbmc+IGFyZ3VtZW50OiBkaXNwbGF5IDxzdHJpbmc+IG9uIGRvdCBtYXRyaXggZGlzcGxheVxuIgpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9kb2MuYyBiL2NvbW1vbi9jbWRfZG9jLmMKaW5kZXggYTU1Y2E0MS4uMDI1MDJjYyAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9kb2MuYworKysgYi9jb21tb24vY21kX2RvYy5jCkBAIC0yMCwxOSArMjAsMTkgQEAKICAqIFRPRE86IG11c3QgYmUgaW1wbGVtZW50ZWQgYW5kIHRlc3RlZCBieSBzb21lb25lIHdpdGggSFcKICAqLwogI2lmIDAKLSNpZmRlZiBDRkdfRE9DX1NVUFBPUlRfMjAwMAorI2lmZGVmIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMAogI2RlZmluZSBEb0NfaXNfMjAwMChkb2MpIChkb2MtPkNoaXBJRCA9PSBET0NfQ2hpcElEX0RvYzJrKQogI2Vsc2UKICNkZWZpbmUgRG9DX2lzXzIwMDAoZG9jKSAoMCkKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNpZmRlZiBDT05GSUdfU1lTX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KICNkZWZpbmUgRG9DX2lzX01pbGxlbm5pdW0oZG9jKSAoZG9jLT5DaGlwSUQgPT0gRE9DX0NoaXBJRF9Eb2NNaWwpCiAjZWxzZQogI2RlZmluZSBEb0NfaXNfTWlsbGVubml1bShkb2MpICgwKQogI2VuZGlmCiAKLS8qIENGR19ET0NfUEFTU0lWRV9QUk9CRToKKy8qIENPTkZJR19TWVNfRE9DX1BBU1NJVkVfUFJPQkU6CiAgICBJbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgQklPUyBjaGVja3N1bSBpcyBjb3JyZWN0IGF0IGJvb3QgdGltZSwgYW5kCiAgICBoZW5jZSB0aGF0IHRoZSBvbmJvYXJkIEJJT1MgZXh0ZW5zaW9uIGdldHMgZXhlY3V0ZWQsIHRoZSBEaXNrT25DaGlwCiAgICBnb2VzIGludG8gcmVzZXQgbW9kZSB3aGVuIGl0IGlzIHJlYWQgc2VxdWVudGlhbGx5OiBhbGwgcmVnaXN0ZXJzCkBAIC00OCw3ICs0OCw3IEBACiAgICB0aGUgbWFjaGluZS4KIAogICAgSWYgeW91IGhhdmUgdGhpcyBwcm9ibGVtLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lOgotI2RlZmluZSBDRkdfRE9DX1BBU1NJVkVfUFJPQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfUEFTU0lWRV9QUk9CRQogKi8KIAogI3VuZGVmCURPQ19ERUJVRwpAQCAtNTYsNyArNTYsNyBAQAogI3VuZGVmCVBTWUNIT19ERUJVRwogI3VuZGVmCU5GVExfREVCVUcKIAotc3RhdGljIHN0cnVjdCBEaXNrT25DaGlwIGRvY19kZXZfZGVzY1tDRkdfTUFYX0RPQ19ERVZJQ0VdOworc3RhdGljIHN0cnVjdCBEaXNrT25DaGlwIGRvY19kZXZfZGVzY1tDT05GSUdfU1lTX01BWF9ET0NfREVWSUNFXTsKIAogLyogQ3VycmVudCBET0MgRGV2aWNlCSovCiBzdGF0aWMgaW50IGN1cnJfZGV2aWNlID0gLTE7CkBAIC0xMDQsNyArMTA0LDcgQEAKIAogCQlwdXRjICgnXG4nKTsKIAotCQlmb3IgKGk9MDsgaTxDRkdfTUFYX0RPQ19ERVZJQ0U7ICsraSkgeworCQlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9ET0NfREVWSUNFOyArK2kpIHsKIAkJCWlmKGRvY19kZXZfZGVzY1tpXS5DaGlwSUQgPT0gRE9DX0NoaXBJRF9VTktOT1dOKQogCQkJCWNvbnRpbnVlOyAvKiBsaXN0IG9ubHkga25vd24gZGV2aWNlcyAqLwogCQkJcHJpbnRmICgiRGV2aWNlICVkOiAiLCBpKTsKQEAgLTExMyw3ICsxMTMsNyBAQAogCQlyZXR1cm4gMDsKIAogCX0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sImRldmljZSIpID09IDApIHsKLQkJaWYgKChjdXJyX2RldmljZSA8IDApIHx8IChjdXJyX2RldmljZSA+PSBDRkdfTUFYX0RPQ19ERVZJQ0UpKSB7CisJCWlmICgoY3Vycl9kZXZpY2UgPCAwKSB8fCAoY3Vycl9kZXZpY2UgPj0gQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRSkpIHsKIAkJCXB1dHMgKCJcbm5vIGRldmljZXMgYXZhaWxhYmxlXG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC0xMjgsNyArMTI4LDcgQEAKIAkJaW50IGRldiA9IChpbnQpc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTApOwogCiAJCXByaW50ZiAoIlxuRGV2aWNlICVkOiAiLCBkZXYpOwotCQlpZiAoZGV2ID49IENGR19NQVhfRE9DX0RFVklDRSkgeworCQlpZiAoZGV2ID49IENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UpIHsKIAkJCXB1dHMgKCJ1bmtub3duIGRldmljZVxuIik7CiAJCQlyZXR1cm4gMTsKIAkJfQpAQCAtMjE4LDcgKzIxOCw3IEBACiAJc2hvd19ib290X3Byb2dyZXNzICgzNCk7CiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAxOgotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQlib290X2RldmljZSA9IGdldGVudiAoImJvb3RkZXZpY2UiKTsKIAkJYnJlYWs7CiAJY2FzZSAyOgpAQCAtMjUwLDcgKzI1MCw3IEBACiAKIAlkZXYgPSBzaW1wbGVfc3RydG91bChib290X2RldmljZSwgJmVwLCAxNik7CiAKLQlpZiAoKGRldiA+PSBDRkdfTUFYX0RPQ19ERVZJQ0UpIHx8CisJaWYgKChkZXYgPj0gQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRSkgfHwKIAkgICAgKGRvY19kZXZfZGVzY1tkZXZdLkNoaXBJRCA9PSBET0NfQ2hpcElEX1VOS05PV04pKSB7CiAJCXByaW50ZiAoIlxuKiogRGV2aWNlICVkIG5vdCBhdmFpbGFibGVcbiIsIGRldik7CiAJCXNob3dfYm9vdF9wcm9ncmVzcyAoLTM3KTsKQEAgLTQzOSw3ICs0MzksNyBAQAogCiAJLyogT3V0LW9mLWxpbmUgcm91dGluZSB0byB3YWl0IGZvciBjaGlwIHJlc3BvbnNlICovCiAJd2hpbGUgKCEoUmVhZERPQyhkb2NwdHIsIENEU05Db250cm9sKSAmIENEU05fQ1RSTF9GUl9CKSkgewotI2lmZGVmIENGR19ET0NfU0hPUlRfVElNRU9VVAorI2lmZGVmIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKIAkJLyogaXQgc2VlbXMgdGhhdCBhZnRlciBhIGNlcnRhaW4gdGltZSB0aGUgRG9DIGRlYXNzZXJ0cwogCQkgKiB0aGUgQ0RTTl9DVFJMX0ZSX0IgYWx0aG91Z2ggaXQgaXMgbm90IHJlYWR5Li4uCiAJCSAqIHVzaW5nIGEgc2hvcnQgdGltb3V0IHNvbHZlIHRoaXMgKHRpbWVyIGluY3JlbWVudHMgZXZlcnkgbXMpICovCkBAIC0xNTI1LDEyICsxNTI1LDEyIEBACiAKIAkvKiBSb3V0aW5lIGNvcGllZCBmcm9tIHRoZSBMaW51eCBET0MgZHJpdmVyICovCiAKLSNpZmRlZiBDRkdfRE9DUFJPQkVfNTVBQQorI2lmZGVmIENPTkZJR19TWVNfRE9DUFJPQkVfNTVBQQogCS8qIENoZWNrIGZvciAweDU1IDB4QUEgc2lnbmF0dXJlIGF0IGJlZ2lubmluZyBvZiB3aW5kb3csCiAJICAgdGhpcyBpcyBubyBsb25nZXIgdHJ1ZSBvbmNlIHdlIHJlbW92ZSB0aGUgSVBMIChmb3IgTWlsbGVubml1bSAqLwogCWlmIChSZWFkRE9DKHdpbmRvdywgU2lnMSkgIT0gMHg1NSB8fCBSZWFkRE9DKHdpbmRvdywgU2lnMikgIT0gMHhhYSkKIAkJcmV0dXJuIDA7Ci0jZW5kaWYgLyogQ0ZHX0RPQ1BST0JFXzU1QUEgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RPQ1BST0JFXzU1QUEgKi8KIAogI2lmbmRlZiBET0NfUEFTU0lWRV9QUk9CRQogCS8qIEl0J3Mgbm90IHBvc3NpYmxlIHRvIGNsZWFubHkgZGV0ZWN0IHRoZSBEaXNrT25DaGlwIC0gdGhlCkBAIC0xNTc0LDcgKzE1NzQsNyBAQAogCQlicmVhazsKIAogCWRlZmF1bHQ6Ci0jaWZuZGVmIENGR19ET0NQUk9CRV81NUFBCisjaWZuZGVmIENPTkZJR19TWVNfRE9DUFJPQkVfNTVBQQogLyoKICAqIGlmIHRoZSBJRCBpc24ndCB0aGUgRG9DMjAwMCBvciBEb0NNaWxsZW5pdW0gSUQsIHNvIHdlIGNhbiBhc3N1bWUKICAqIHRoZSBET0MgaXMgbWlzc2luZwpAQCAtMTYwOSw3ICsxNjA5LDcgQEAKIAogCWlmICgoQ2hpcElEID0gZG9jY2hlY2socGh5c2FkciwgcGh5c2FkcikpKSB7CiAKLQkJZm9yIChpPTA7IGk8Q0ZHX01BWF9ET0NfREVWSUNFOyBpKyspIHsKKwkJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRE9DX0RFVklDRTsgaSsrKSB7CiAJCQlpZiAoZG9jX2Rldl9kZXNjW2ldLkNoaXBJRCA9PSBET0NfQ2hpcElEX1VOS05PV04pIHsKIAkJCQl0aGlzID0gZG9jX2Rldl9kZXNjICsgaTsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfZHR0LmMgYi9jb21tb24vY21kX2R0dC5jCmluZGV4IDk1NmRjNjkuLmM1YjFkNGQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfZHR0LmMKKysrIGIvY29tbW9uL2NtZF9kdHQuYwpAQCAtMzYsNyArMzYsNyBAQAogCiAJLyogc3dpdGNoIHRvIGNvcnJlY3QgSTJDIGJ1cyAqLwogCW9sZF9idXMgPSBJMkNfR0VUX0JVUygpOwotCUkyQ19TRVRfQlVTKENGR19EVFRfQlVTX05VTSk7CisJSTJDX1NFVF9CVVMoQ09ORklHX1NZU19EVFRfQlVTX05VTSk7CiAKIAkvKgogCSAqIExvb3AgdGhyb3VnaCBzZW5zb3JzLCByZWFkCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2VlcHJvbS5jIGIvY29tbW9uL2NtZF9lZXByb20uYwppbmRleCA0NGQ0NGZlLi4yNDUxYmVmIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2VlcHJvbS5jCisrKyBiL2NvbW1vbi9jbWRfZWVwcm9tLmMKQEAgLTMyLDggKzMyLDggQEAKICAqIFVzZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBlbnN1cmUgbm8gdW5uZWVkZWQgcGVyZm9ybWFuY2UKICAqIGRlZ3JhZGF0aW9uICh0eXBpY2FsIGZvciBFRVBST00pIGlzIGluY3VyZWQgZm9yIEZSQU0gbWVtb3J5OgogICoKLSAqICNkZWZpbmUgQ0ZHX0kyQ19GUkFNCi0gKiAjdW5kZWYgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCisgKiAjZGVmaW5lIENPTkZJR19TWVNfSTJDX0ZSQU0KKyAqICN1bmRlZiBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCiAgKgogICovCiAKQEAgLTQ3LDEyICs0NywxMiBAQAogCQkJICB1Y2hhciAqYnVmZmVyLCB1bnNpZ25lZCBjbnQpOwogZXh0ZXJuIGludCAgZWVwcm9tX3dyaXRlICh1bnNpZ25lZCBkZXZfYWRkciwgdW5zaWduZWQgb2Zmc2V0LAogCQkJICB1Y2hhciAqYnVmZmVyLCB1bnNpZ25lZCBjbnQpOwotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9XUkVOKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fV1JFTikKIGV4dGVybiBpbnQgZWVwcm9tX3dyaXRlX2VuYWJsZSAodW5zaWduZWQgZGV2X2FkZHIsIGludCBzdGF0ZSk7CiAjZW5kaWYKIAogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1g0MDQzMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1g0MDQzMCkKIAkvKiBNYXhpbXVtIG51bWJlciBvZiB0aW1lcyB0byBwb2xsIGZvciBhY2tub3dsZWRnZSBhZnRlciB3cml0ZSAqLwogI2RlZmluZSBNQVhfQUNLTk9XTEVER0VfUE9MTFMJMTAKICNlbmRpZgpAQCAtNjUsNyArNjUsNyBAQAogCWNvbnN0IGNoYXIgKmNvbnN0IGZtdCA9CiAJCSJcbkVFUFJPTSBAMHglbFggJXM6IGFkZHIgJTA4bHggIG9mZiAlMDRseCAgY291bnQgJWxkIC4uLiAiOwogCi0jaWYgZGVmaW5lZChDRkdfSTJDX01VTFRJX0VFUFJPTVMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TKQogCWlmIChhcmdjID09IDYpIHsKIAkJdWxvbmcgZGV2X2FkZHIgPSBzaW1wbGVfc3RydG91bCAoYXJndlsyXSwgTlVMTCwgMTYpOwogCQl1bG9uZyBhZGRyID0gc2ltcGxlX3N0cnRvdWwgKGFyZ3ZbM10sIE5VTEwsIDE2KTsKQEAgLTczLDExICs3MywxMSBAQAogCQl1bG9uZyBjbnQgID0gc2ltcGxlX3N0cnRvdWwgKGFyZ3ZbNV0sIE5VTEwsIDE2KTsKICNlbHNlCiAJaWYgKGFyZ2MgPT0gNSkgewotCQl1bG9uZyBkZXZfYWRkciA9IENGR19ERUZfRUVQUk9NX0FERFI7CisJCXVsb25nIGRldl9hZGRyID0gQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFI7CiAJCXVsb25nIGFkZHIgPSBzaW1wbGVfc3RydG91bCAoYXJndlsyXSwgTlVMTCwgMTYpOwogCQl1bG9uZyBvZmYgID0gc2ltcGxlX3N0cnRvdWwgKGFyZ3ZbM10sIE5VTEwsIDE2KTsKIAkJdWxvbmcgY250ICA9IHNpbXBsZV9zdHJ0b3VsIChhcmd2WzRdLCBOVUxMLCAxNik7Ci0jZW5kaWYgLyogQ0ZHX0kyQ19NVUxUSV9FRVBST01TICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUyAqLwogCiAjIGlmbmRlZiBDT05GSUdfU1BJCiAJCWVlcHJvbV9pbml0ICgpOwpAQCAtMTExLDE2ICsxMTEsMTYgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIGZvciBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAyICgxNi1iaXQgRUVQUk9NIGFkZHJlc3MpIG9mZnNldCBpcworICogZm9yIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAyICgxNi1iaXQgRUVQUk9NIGFkZHJlc3MpIG9mZnNldCBpcwogICogICAweDAwMG54eHh4IGZvciBFRVBST00gYWRkcmVzcyBzZWxlY3RvcnMgYXQgbiwgb2Zmc2V0IHh4eHggaW4gRUVQUk9NLgogICoKLSAqIGZvciBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICg4LWJpdCBFRVBST00gcGFnZSBhZGRyZXNzKSBvZmZzZXQgaXMKKyAqIGZvciBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAoOC1iaXQgRUVQUk9NIHBhZ2UgYWRkcmVzcykgb2Zmc2V0IGlzCiAgKiAgIDB4MDAwMDBueHggZm9yIEVFUFJPTSBhZGRyZXNzIHNlbGVjdG9ycyBhbmQgcGFnZSBudW1iZXIgYXQgbi4KICAqLwogCiAjaWZuZGVmIENPTkZJR19TUEkKLSNpZiAhZGVmaW5lZChDRkdfSTJDX0VFUFJPTV9BRERSX0xFTikgfHwgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gPCAxIHx8IENGR19JMkNfRUVQUk9NX0FERFJfTEVOID4gMgotI2Vycm9yIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIG11c3QgYmUgMSBvciAyCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOKSB8fCBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPCAxIHx8IENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiA+IDIKKyNlcnJvciBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gbXVzdCBiZSAxIG9yIDIKICNlbmRpZgogI2VuZGlmCiAKQEAgLTEzNiwxMSArMTM2LDExIEBACiAJICovCiAJd2hpbGUgKG9mZnNldCA8IGVuZCkgewogCQl1bnNpZ25lZCBhbGVuLCBsZW47Ci0jaWYgIWRlZmluZWQoQ0ZHX0kyQ19GUkFNKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0ZSQU0pCiAJCXVuc2lnbmVkIG1heGxlbjsKICNlbmRpZgogCi0jaWYgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAmJiAhZGVmaW5lZChDT05GSUdfU1BJX1gpCisjaWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOID09IDEgJiYgIWRlZmluZWQoQ09ORklHX1NQSV9YKQogCQl1Y2hhciBhZGRyWzJdOwogCiAJCWJsa19vZmYgPSBvZmZzZXQgJiAweEZGOwkvKiBibG9jayBvZmZzZXQgKi8KQEAgLTE1Nyw3ICsxNTcsNyBAQAogCQlhZGRyWzFdID0gb2Zmc2V0ID4+ICA4OwkJLyogdXBwZXIgYWRkcmVzcyBvY3RldCAqLwogCQlhZGRyWzJdID0gYmxrX29mZjsJCS8qIGxvd2VyIGFkZHJlc3Mgb2N0ZXQgKi8KIAkJYWxlbgk9IDM7Ci0jZW5kaWYJLyogQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4sIENPTkZJR19TUElfWCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiwgQ09ORklHX1NQSV9YICovCiAKIAkJYWRkclswXSB8PSBkZXZfYWRkcjsJCS8qIGluc2VydCBkZXZpY2UgYWRkcmVzcyAqLwogCkBAIC0xNjgsNyArMTY4LDcgQEAKIAkJICogYnl0ZXMgdGhhdCBjYW4gYmUgY2Nlc3NlZCB3aXRoIHRoZSBzaW5nbGUgcmVhZCBvciB3cml0ZQogCQkgKiBvcGVyYXRpb24uCiAJCSAqLwotI2lmICFkZWZpbmVkKENGR19JMkNfRlJBTSkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0kyQ19GUkFNKQogCQltYXhsZW4gPSAweDEwMCAtIGJsa19vZmY7CiAJCWlmIChtYXhsZW4gPiBJMkNfUlhUWF9MRU4pCiAJCQltYXhsZW4gPSBJMkNfUlhUWF9MRU47CkBAIC0xOTEsMTAgKzE5MSwxMCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogZm9yIENGR19JMkNfRUVQUk9NX0FERFJfTEVOID09IDIgKDE2LWJpdCBFRVBST00gYWRkcmVzcykgb2Zmc2V0IGlzCisgKiBmb3IgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOID09IDIgKDE2LWJpdCBFRVBST00gYWRkcmVzcykgb2Zmc2V0IGlzCiAgKiAgIDB4MDAwbnh4eHggZm9yIEVFUFJPTSBhZGRyZXNzIHNlbGVjdG9ycyBhdCBuLCBvZmZzZXQgeHh4eCBpbiBFRVBST00uCiAgKgotICogZm9yIENGR19JMkNfRUVQUk9NX0FERFJfTEVOID09IDEgKDgtYml0IEVFUFJPTSBwYWdlIGFkZHJlc3MpIG9mZnNldCBpcworICogZm9yIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICg4LWJpdCBFRVBST00gcGFnZSBhZGRyZXNzKSBvZmZzZXQgaXMKICAqICAgMHgwMDAwMG54eCBmb3IgRUVQUk9NIGFkZHJlc3Mgc2VsZWN0b3JzIGFuZCBwYWdlIG51bWJlciBhdCBuLgogICovCiAKQEAgLTIwNCw3ICsyMDQsNyBAQAogCXVuc2lnbmVkIGJsa19vZmY7CiAJaW50IHJjb2RlID0gMDsKIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9YNDA0MzApCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9YNDA0MzApCiAJdWNoYXIJY29udHJfcl9hZGRyWzJdOwogCXVjaGFyCWFkZHJfdm9pZFsyXTsKIAl1Y2hhcgljb250cl9yZWdbMl07CkBAIC0yMTIsNyArMjEyLDcgQEAKIAlpbnQJaTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1dSRU4pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9XUkVOKQogCWVlcHJvbV93cml0ZV9lbmFibGUgKGRldl9hZGRyLDEpOwogI2VuZGlmCiAJLyogV3JpdGUgZGF0YSB1bnRpbCBkb25lIG9yIHdvdWxkIGNyb3NzIGEgd3JpdGUgcGFnZSBib3VuZGFyeS4KQEAgLTIyMiwxMSArMjIyLDExIEBACiAKIAl3aGlsZSAob2Zmc2V0IDwgZW5kKSB7CiAJCXVuc2lnbmVkIGFsZW4sIGxlbjsKLSNpZiAhZGVmaW5lZChDRkdfSTJDX0ZSQU0pCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19JMkNfRlJBTSkKIAkJdW5zaWduZWQgbWF4bGVuOwogI2VuZGlmCiAKLSNpZiBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICYmICFkZWZpbmVkKENPTkZJR19TUElfWCkKKyNpZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gPT0gMSAmJiAhZGVmaW5lZChDT05GSUdfU1BJX1gpCiAJCXVjaGFyIGFkZHJbMl07CiAKIAkJYmxrX29mZiA9IG9mZnNldCAmIDB4RkY7CS8qIGJsb2NrIG9mZnNldCAqLwpAQCAtMjQzLDcgKzI0Myw3IEBACiAJCWFkZHJbMV0gPSBvZmZzZXQgPj4gIDg7CQkvKiB1cHBlciBhZGRyZXNzIG9jdGV0ICovCiAJCWFkZHJbMl0gPSBibGtfb2ZmOwkJLyogbG93ZXIgYWRkcmVzcyBvY3RldCAqLwogCQlhbGVuCT0gMzsKLSNlbmRpZgkvKiBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiwgQ09ORklHX1NQSV9YICovCisjZW5kaWYJLyogQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOLCBDT05GSUdfU1BJX1ggKi8KIAogCQlhZGRyWzBdIHw9IGRldl9hZGRyOwkJLyogaW5zZXJ0IGRldmljZSBhZGRyZXNzICovCiAKQEAgLTI1NCwxMSArMjU0LDExIEBACiAJCSAqIGJ5dGVzIHRoYXQgY2FuIGJlIGNjZXNzZWQgd2l0aCB0aGUgc2luZ2xlIHJlYWQgb3Igd3JpdGUKIAkJICogb3BlcmF0aW9uLgogCQkgKi8KLSNpZiAhZGVmaW5lZChDRkdfSTJDX0ZSQU0pCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19JMkNfRlJBTSkKIAotI2lmIGRlZmluZWQoQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpCiAKLSNkZWZpbmUJRUVQUk9NX1BBR0VfU0laRQkoMSA8PCBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUykKKyNkZWZpbmUJRUVQUk9NX1BBR0VfU0laRQkoMSA8PCBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpCiAjZGVmaW5lCUVFUFJPTV9QQUdFX09GRlNFVCh4KQkoKHgpICYgKEVFUFJPTV9QQUdFX1NJWkUgLSAxKSkKIAogCQltYXhsZW4gPSBFRVBST01fUEFHRV9TSVpFIC0gRUVQUk9NX1BBR0VfT0ZGU0VUKGJsa19vZmYpOwpAQCAtMjc1LDcgKzI3NSw3IEBACiAjaWZkZWYgQ09ORklHX1NQSQogCQlzcGlfd3JpdGUgKGFkZHIsIGFsZW4sIGJ1ZmZlciwgbGVuKTsKICNlbHNlCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1g0MDQzMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1g0MDQzMCkKIAkJLyogR2V0IHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbCByZWdpc3Rlci4KIAkJICogU2V0IGN1cnJlbnQgYWRkcmVzcyAoaW50ZXJuYWwgcG9pbnRlciBpbiB0aGUgeDQwNDMwKQogCQkgKiB0byAweDFmZi4KQEAgLTI4NCw5ICsyODQsOSBAQAogCQljb250cl9yX2FkZHJbMV0gPSAweGZmOwogCQlhZGRyX3ZvaWRbMF0gICAgPSAwOwogCQlhZGRyX3ZvaWRbMV0gICAgPSBhZGRyWzFdOwotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFIKLQkJY29udHJfcl9hZGRyWzBdIHw9IENGR19JMkNfRUVQUk9NX0FERFI7Ci0JCWFkZHJfdm9pZFswXSAgICB8PSBDRkdfSTJDX0VFUFJPTV9BRERSOworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCisJCWNvbnRyX3JfYWRkclswXSB8PSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUjsKKwkJYWRkcl92b2lkWzBdICAgIHw9IENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSOwogI2VuZGlmCiAJCWNvbnRyX3JlZ1swXSA9IDB4ZmY7CiAJCWlmIChpMmNfcmVhZCAoY29udHJfcl9hZGRyWzBdLCBjb250cl9yX2FkZHJbMV0sIDEsIGNvbnRyX3JlZywgMSkgIT0gMCkgewpAQCAtMzM0LDggKzMzNCw4IEBACiAJCQlmb3IgKGkgPSAwOyBpIDwgTUFYX0FDS05PV0xFREdFX1BPTExTOyBpKyspIHsKIAkJCQlpZiAoaTJjX3JlYWQgKGFkZHJfdm9pZFswXSwgYWRkcl92b2lkWzFdLCAxLCBjb250cl9yZWcsIDEpID09IDApCiAJCQkJCWJyZWFrOwkvKiBnb3QgYWNrICovCi0jaWYgZGVmaW5lZChDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMpCi0JCQkJdWRlbGF5KENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUykKKwkJCQl1ZGVsYXkoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOwogI2VuZGlmCiAJCQl9CiAJCQlpZiAoaSA9PSBNQVhfQUNLTk9XTEVER0VfUE9MTFMpIHsKQEAgLTM2NCwxMSArMzY0LDExIEBACiAJCWJ1ZmZlciArPSBsZW47CiAJCW9mZnNldCArPSBsZW47CiAKLSNpZiBkZWZpbmVkKENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUykKLQkJdWRlbGF5KENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAqIDEwMDApOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUykKKwkJdWRlbGF5KENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgKiAxMDAwKTsKICNlbmRpZgogCX0KLSNpZiBkZWZpbmVkKENGR19FRVBST01fV1JFTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRUVQUk9NX1dSRU4pCiAJZWVwcm9tX3dyaXRlX2VuYWJsZSAoZGV2X2FkZHIsMCk7CiAjZW5kaWYKIAlyZXR1cm4gcmNvZGU7CkBAIC0zODIsMTEgKzM4MiwxMSBAQAogCiAJLyogUHJvYmUgdGhlIGNoaXAgYWRkcmVzcwogCSAqLwotI2lmIENGR19JMkNfRUVQUk9NX0FERFJfTEVOID09IDEgJiYgIWRlZmluZWQoQ09ORklHX1NQSV9YKQorI2lmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiA9PSAxICYmICFkZWZpbmVkKENPTkZJR19TUElfWCkKIAljaGlwID0gb2Zmc2V0ID4+IDg7CQkvKiBibG9jayBudW1iZXIgKi8KICNlbHNlCiAJY2hpcCA9IG9mZnNldCA+PiAxNjsJCS8qIGJsb2NrIG51bWJlciAqLwotI2VuZGlmCS8qIENGR19JMkNfRUVQUk9NX0FERFJfTEVOLCBDT05GSUdfU1BJX1ggKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4sIENPTkZJR19TUElfWCAqLwogCiAJY2hpcCB8PSBkZXZfYWRkcjsJCS8qIGluc2VydCBkZXZpY2UgYWRkcmVzcyAqLwogCkBAIC0zOTcsMTIgKzM5NywxMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IGRlZmF1bHQgdmFsdWVzCiAgKi8KLSNpZm5kZWYJQ0ZHX0kyQ19TUEVFRAotI2RlZmluZQlDRkdfSTJDX1NQRUVECTUwMDAwCisjaWZuZGVmCUNPTkZJR19TWVNfSTJDX1NQRUVECisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECTUwMDAwCiAjZW5kaWYKIAotI2lmbmRlZglDRkdfSTJDX1NMQVZFCi0jZGVmaW5lCUNGR19JMkNfU0xBVkUJMHhGRQorI2lmbmRlZglDT05GSUdfU1lTX0kyQ19TTEFWRQorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TTEFWRQkweEZFCiAjZW5kaWYKIAogdm9pZCBlZXByb21faW5pdCAgKHZvaWQpCkBAIC00MTIsNyArNDEyLDcgQEAKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX0hBUkRfSTJDKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfU09GVF9JMkMpCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogI2VuZGlmCiB9CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MjIsNyArNDIyLDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9FRVBST00pCiAKLSNpZmRlZiBDRkdfSTJDX01VTFRJX0VFUFJPTVMKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCiBVX0JPT1RfQ01EKAogCWVlcHJvbSwJNiwJMSwJZG9fZWVwcm9tLAogCSJlZXByb20gIC0gRUVQUk9NIHN1Yi1zeXN0ZW1cbiIsCkBAIC00MzgsNiArNDM4LDYgQEAKIAkiZWVwcm9tIHdyaXRlIGFkZHIgb2ZmIGNudFxuIgogCSIgICAgICAgLSByZWFkL3dyaXRlIGBjbnQnIGJ5dGVzIGF0IEVFUFJPTSBvZmZzZXQgYG9mZidcbiIKICk7Ci0jZW5kaWYgLyogQ0ZHX0kyQ19NVUxUSV9FRVBST01TICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUyAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfZWxmLmMgYi9jb21tb24vY21kX2VsZi5jCmluZGV4IDYyZTVlNzYuLjNlYmI2ZDkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfZWxmLmMKKysrIGIvY29tbW9uL2NtZF9lbGYuYwpAQCAtMTksNyArMTksNyBAQAogI2luY2x1ZGUgPG5ldC5oPgogI2luY2x1ZGUgPGVsZi5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfV0FMTlVUKSB8fCBkZWZpbmVkKENGR19WWFdPUktTX01BQ19QVFIpCisjaWYgZGVmaW5lZChDT05GSUdfV0FMTlVUKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSKQogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAjZW5kaWYKIApAQCAtMTM1LDEwICsxMzUsMTAgQEAKIAkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1dBTE5VVCkKLQl0bXAgPSAoY2hhciAqKSBDRkdfTlZSQU1fQkFTRV9BRERSICsgMHg1MDA7CisJdG1wID0gKGNoYXIgKikgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyAweDUwMDsKIAltZW1jcHkgKChjaGFyICopIHRtcCwgKGNoYXIgKikgJmdkLT5iZC0+YmlfZW5ldGFkZHJbM10sIDMpOwotI2VsaWYgZGVmaW5lZChDRkdfVlhXT1JLU19NQUNfUFRSKQotCXRtcCA9IChjaGFyICopIENGR19WWFdPUktTX01BQ19QVFI7CisjZWxpZiBkZWZpbmVkKENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSKQorCXRtcCA9IChjaGFyICopIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSOwogCW1lbWNweSAoKGNoYXIgKikgdG1wLCAoY2hhciAqKSAmZ2QtPmJkLT5iaV9lbmV0YWRkclswXSwgNik7CiAjZWxzZQogCXB1dHMgKCIjIyBFdGhlcm5ldCBNQUMgYWRkcmVzcyBub3QgY29waWVkIHRvIE5WIFJBTVxuIik7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX2V4dDIuYyBiL2NvbW1vbi9jbWRfZXh0Mi5jCmluZGV4IGY1Njk0MDYuLjljNDM3OTIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfZXh0Mi5jCisrKyBiL2NvbW1vbi9jbWRfZXh0Mi5jCkBAIC00NCw4ICs0NCw4IEBACiAjaW5jbHVkZSA8dXNiLmg+CiAjZW5kaWYKIAotI2lmbmRlZiBDT05GSUdfRE9TX1BBUlRJVElPTgotI2Vycm9yIERPUyBwYXJ0aXRpb24gc3VwcG9ydCBtdXN0IGJlIHNlbGVjdGVkCisjaWYgIWRlZmluZWQoQ09ORklHX0RPU19QQVJUSVRJT04pICYmICFkZWZpbmVkKENPTkZJR19FRklfUEFSVElUSU9OKQorI2Vycm9yIERPUyBvciBFRkkgcGFydGl0aW9uIHN1cHBvcnQgbXVzdCBiZSBzZWxlY3RlZAogI2VuZGlmCiAKIC8qICNkZWZpbmUJRVhUMl9ERUJVRyAqLwpAQCAtMTQyLDcgKzE0Miw3IEBACiAJCWlmIChhZGRyX3N0ciAhPSBOVUxMKSB7CiAJCQlhZGRyID0gc2ltcGxlX3N0cnRvdWwgKGFkZHJfc3RyLCBOVUxMLCAxNik7CiAJCX0gZWxzZSB7Ci0JCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJCWFkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAkJfQogCQlmaWxlbmFtZSA9IGdldGVudiAoImJvb3RmaWxlIik7CiAJCWNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfZmF0LmMgYi9jb21tb24vY21kX2ZhdC5jCmluZGV4IDk1NzZjZGYuLmViZTllMDkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfZmF0LmMKKysrIGIvY29tbW9uL2NtZF9mYXQuYwpAQCAtMTg4LDcgKzE4OCw3IEBACiAJdW5zaWduZWQgY2hhciAqcGFydF90YWJsZTsKIAl1bnNpZ25lZCBjaGFyIGJ1ZmZlcltBVEFfQkxPQ0tTSVpFXTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfSURFX01BWERFVklDRTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfSURFX01BWERFVklDRTsgaSsrKSB7CiAJCWRldl9kZXNjID0gaWRlX2dldF9kZXYgKGkpOwogCQlpZiAoIWRldl9kZXNjKSB7CiAJCQlkZWJ1ZyAoImNvdWxkbid0IGdldCBpZGUgZGV2aWNlIVxuIik7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX2ZkYy5jIGIvY29tbW9uL2NtZF9mZGMuYwppbmRleCBiNjYzZDYwLi5kOTk1ZmYyIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2ZkYy5jCisrKyBiL2NvbW1vbi9jbWRfZmRjLmMKQEAgLTE3MCwxNyArMTcwLDE3IEBACiBzdGF0aWMgRkRDX0NPTU1BTkRfU1RSVUNUIGNtZDsgLyogZ2xvYmFsIGNvbW1hbmQgc3RydWN0ICovCiAKIC8qIElmIHRoZSBib290IGRyaXZlIG51bWJlciBpcyB1bmRlZmluZWQsIHdlIGFzc3VtZSBpdCdzIGRyaXZlIDAgICAgICAgICAgICAgKi8KLSNpZm5kZWYgQ0ZHX0ZEQ19EUklWRV9OVU1CRVIKLSNkZWZpbmUgQ0ZHX0ZEQ19EUklWRV9OVU1CRVIgMAorI2lmbmRlZiBDT05GSUdfU1lTX0ZEQ19EUklWRV9OVU1CRVIKKyNkZWZpbmUgQ09ORklHX1NZU19GRENfRFJJVkVfTlVNQkVSIDAKICNlbmRpZgogCiAvKiBIYXJkd2FyZSBhY2Nlc3MgKi8KLSNpZm5kZWYgQ0ZHX0lTQV9JT19TVFJJREUKLSNkZWZpbmUgQ0ZHX0lTQV9JT19TVFJJREUgMQorI2lmbmRlZiBDT05GSUdfU1lTX0lTQV9JT19TVFJJREUKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fU1RSSURFIDEKICNlbmRpZgogCi0jaWZuZGVmIENGR19JU0FfSU9fT0ZGU0VUCi0jZGVmaW5lIENGR19JU0FfSU9fT0ZGU0VUIDAKKyNpZm5kZWYgQ09ORklHX1NZU19JU0FfSU9fT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX09GRlNFVCAwCiAjZW5kaWYKIAogCkBAIC0yMTMsOSArMjEzLDkgQEAKIHVuc2lnbmVkIGNoYXIgcmVhZF9mZGNfcmVnKHVuc2lnbmVkIGludCBhZGRyKQogewogCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKnZhbCA9Ci0JCSh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENGR19JU0FfSU9fQkFTRV9BRERSRVNTICsKLQkJCQkJICAgKGFkZHIgKiBDRkdfSVNBX0lPX1NUUklERSkgKwotCQkJCQkgICBDRkdfSVNBX0lPX09GRlNFVCk7CisJCSh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArCisJCQkJCSAgIChhZGRyICogQ09ORklHX1NZU19JU0FfSU9fU1RSSURFKSArCisJCQkJCSAgIENPTkZJR19TWVNfSVNBX0lPX09GRlNFVCk7CiAKIAlyZXR1cm4gdmFsIFswXTsKIH0KQEAgLTIyNCw5ICsyMjQsOSBAQAogdm9pZCB3cml0ZV9mZGNfcmVnKHVuc2lnbmVkIGludCBhZGRyLCB1bnNpZ25lZCBjaGFyIHZhbCkKIHsKIAl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICp0bXAgPQotCQkodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArCi0JCQkJCSAgIChhZGRyICogQ0ZHX0lTQV9JT19TVFJJREUpICsKLQkJCQkJICAgQ0ZHX0lTQV9JT19PRkZTRVQpOworCQkodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKworCQkJCQkgICAoYWRkciAqIENPTkZJR19TWVNfSVNBX0lPX1NUUklERSkgKworCQkJCQkgICBDT05GSUdfU1lTX0lTQV9JT19PRkZTRVQpOwogCXRtcFswXT12YWw7CiB9CiAKQEAgLTY1Miw3ICs2NTIsNyBAQAogCWk4MjU5X3VubWFza19pcnEoNik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19GRENfSFdfSU5JVAorI2lmZGVmIENPTkZJR19TWVNfRkRDX0hXX0lOSVQKIAlmZGNfaHdfaW5pdCAoKTsKICNlbmRpZgogCS8qIGZpcnN0LCB3ZSByZXNldCB0aGUgRkRDIHZpYSB0aGUgRE9SICovCkBAIC03ODksMTIgKzc4OSwxMiBAQAogCiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAxOgotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKLQkJYm9vdF9kcml2ZT1DRkdfRkRDX0RSSVZFX05VTUJFUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOworCQlib290X2RyaXZlPUNPTkZJR19TWVNfRkRDX0RSSVZFX05VTUJFUjsKIAkJYnJlYWs7CiAJY2FzZSAyOgogCQlhZGRyID0gc2ltcGxlX3N0cnRvdWwoYXJndlsxXSwgTlVMTCwgMTYpOwotCQlib290X2RyaXZlPUNGR19GRENfRFJJVkVfTlVNQkVSOworCQlib290X2RyaXZlPUNPTkZJR19TWVNfRkRDX0RSSVZFX05VTUJFUjsKIAkJYnJlYWs7CiAJY2FzZSAzOgogCQlhZGRyID0gc2ltcGxlX3N0cnRvdWwoYXJndlsxXSwgTlVMTCwgMTYpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9mZG9zLmMgYi9jb21tb24vY21kX2Zkb3MuYwppbmRleCBiM2RiZDE5Li5hYTEzYjUyIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2Zkb3MuYworKysgYi9jb21tb24vY21kX2Zkb3MuYwpAQCAtNDIsNyArNDIsNyBAQAogICAgIGludCBzaXplOwogICAgIGludCByY29kZSA9IDA7CiAgICAgY2hhciBidWYgWzEyXTsKLSAgICBpbnQgZHJpdmUgPSBDRkdfRkRDX0RSSVZFX05VTUJFUjsKKyAgICBpbnQgZHJpdmUgPSBDT05GSUdfU1lTX0ZEQ19EUklWRV9OVU1CRVI7CiAKICAgICAvKiBwcmUtc2V0IGxvYWRfYWRkciAqLwogICAgIGlmICgoZXAgPSBnZXRlbnYoImxvYWRhZGRyIikpICE9IE5VTEwpIHsKQEAgLTExOCw3ICsxMTgsNyBAQAogaW50IGRvX2Zkb3NscyhjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICAgICBjaGFyICpwYXRoID0gIiI7Ci0gICAgaW50IGRyaXZlID0gQ0ZHX0ZEQ19EUklWRV9OVU1CRVI7CisgICAgaW50IGRyaXZlID0gQ09ORklHX1NZU19GRENfRFJJVkVfTlVNQkVSOwogCiAgICAgc3dpdGNoIChhcmdjKSB7CiAgICAgY2FzZSAxOgpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9mZHQuYyBiL2NvbW1vbi9jbWRfZmR0LmMKaW5kZXggMjg4YTVjNC4uNDI3NGE3NyAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9mZHQuYworKysgYi9jb21tb24vY21kX2ZkdC5jCkBAIC0zNjQsNyArMzY0LDcgQEAKIAl9IGVsc2UgaWYgKHN0cm5jbXAoYXJndlsxXSwgIm1lIiwgMikgPT0gMCkgewogCQl1aW50NjRfdCBhZGRyLCBzaXplOwogCQlpbnQgZXJyOwotI2lmZGVmIENGR182NEJJVF9TVFJUT1VMCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCiAJCQlhZGRyID0gc2ltcGxlX3N0cnRvdWxsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKIAkJCXNpemUgPSBzaW1wbGVfc3RydG91bGwoYXJndlszXSwgTlVMTCwgMTYpOwogI2Vsc2UKQEAgLTQwMiw3ICs0MDIsNyBAQAogCQl9IGVsc2UgaWYgKGFyZ3ZbMl1bMF0gPT0gJ2EnKSB7CiAJCQl1aW50NjRfdCBhZGRyLCBzaXplOwogCQkJaW50IGVycjsKLSNpZmRlZiBDRkdfNjRCSVRfU1RSVE9VTAorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAogCQkJYWRkciA9IHNpbXBsZV9zdHJ0b3VsbChhcmd2WzNdLCBOVUxMLCAxNik7CiAJCQlzaXplID0gc2ltcGxlX3N0cnRvdWxsKGFyZ3ZbNF0sIE5VTEwsIDE2KTsKICNlbHNlCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2ZsYXNoLmMgYi9jb21tb24vY21kX2ZsYXNoLmMKaW5kZXggMThkMjI1MC4uOTNlZWZhOSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9mbGFzaC5jCisrKyBiL2NvbW1vbi9jbWRfZmxhc2guYwpAQCAtNDEsNyArNDEsNyBAQAogCQl1OCAqcGFydF9udW0sIHN0cnVjdCBwYXJ0X2luZm8gKipwYXJ0KTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiBleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bXTsJLyogaW5mbyBmb3IgRkxBU0ggY2hpcHMgKi8KIAogLyoKQEAgLTc2LDcgKzc2LDcgQEAKIAogCWJhbmsgPSBzaW1wbGVfc3RydG91bCAoc3RyLCAmZXAsIDEwKTsKIAlpZiAoZXAgPT0gc3RyIHx8ICplcCAhPSAnXDAnIHx8Ci0JCWJhbmsgPCAxIHx8IGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTIHx8CisJCWJhbmsgPCAxIHx8IGJhbmsgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyB8fAogCQkoZnAgPSAmZmxhc2hfaW5mb1tiYW5rIC0gMV0pLT5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKQogCQlyZXR1cm4gLTE7CiAKQEAgLTEwNSw2ICsxMDUsNDcgQEAKIH0KIAogLyoKKyAqIFRha2UgKmFkZHIgaW4gRmxhc2ggYW5kIGFkanVzdCBpdCB0byBmYWxsIG9uIHRoZSBlbmQgb2YgaXRzIHNlY3RvcgorICovCitpbnQgZmxhc2hfc2VjdF9yb3VuZGIgKHVsb25nICphZGRyKQoreworCWZsYXNoX2luZm9fdCAqaW5mbzsKKwl1bG9uZyBiYW5rLCBzZWN0b3JfZW5kX2FkZHI7CisJY2hhciBmb3VuZDsKKwlpbnQgaTsKKworCS8qIGZpbmQgdGhlIGVuZCBhZGRyIG9mIHRoZSBzZWN0b3Igd2hlcmUgdGhlICphZGRyIGlzICovCisJZm91bmQgPSAwOworCWZvciAoYmFuayA9IDA7IGJhbmsgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAmJiAhZm91bmQ7ICsrYmFuaykgeworCQlpbmZvID0gJmZsYXNoX2luZm9bYmFua107CisJCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQgJiYgIWZvdW5kOyArK2kpIHsKKwkJCS8qIGdldCB0aGUgZW5kIGFkZHJlc3Mgb2YgdGhlIHNlY3RvciAqLworCQkJaWYgKGkgPT0gaW5mby0+c2VjdG9yX2NvdW50IC0gMSkgeworCQkJCXNlY3Rvcl9lbmRfYWRkciA9IGluZm8tPnN0YXJ0WzBdICsKKwkJCQkJCQkJaW5mby0+c2l6ZSAtIDE7CisJCQl9IGVsc2UgeworCQkJCXNlY3Rvcl9lbmRfYWRkciA9IGluZm8tPnN0YXJ0W2krMV0gLSAxOworCQkJfQorCisJCQlpZiAoKmFkZHIgPD0gc2VjdG9yX2VuZF9hZGRyICYmCisJCQkJCQkqYWRkciA+PSBpbmZvLT5zdGFydFtpXSkgeworCQkJCWZvdW5kID0gMTsKKwkJCQkvKiBhZGp1c3QgKmFkZHIgaWYgbmVjZXNzYXJ5ICovCisJCQkJaWYgKCphZGRyIDwgc2VjdG9yX2VuZF9hZGRyKQorCQkJCQkqYWRkciA9IHNlY3Rvcl9lbmRfYWRkcjsKKwkJCX0gLyogc2VjdG9yICovCisJCX0gLyogYmFuayAqLworCX0KKwlpZiAoIWZvdW5kKSB7CisJCS8qIGVycm9yLCBhZGRyZXMgbm90IGluIGZsYXNoICovCisJCXByaW50ZigiRXJyb3I6IGVuZCBhZGRyZXNzICgweCUwOGx4KSBub3QgaW4gZmxhc2ghXG4iLCAqYWRkcik7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCisvKgogICogVGhpcyBmdW5jdGlvbiBjb21wdXRlcyB0aGUgc3RhcnQgYW5kIGVuZCBhZGRyZXNzZXMgZm9yIGJvdGgKICAqIGVyYXNlIGFuZCBwcm90ZWN0IGNvbW1hbmRzLiBUaGUgcmFuZ2Ugb2YgdGhlIGFkZHJlc3NlcyBvbiB3aGljaAogICogZWl0aGVyIG9mIHRoZSBjb21tYW5kcyBpcyB0byBvcGVyYXRlIGNhbiBiZSBnaXZlbiBpbiB0d28gZm9ybXM6CkBAIC0xMjYsOCArMTY3LDYgQEAKIHsKIAljaGFyICplcDsKIAljaGFyIGxlbl91c2VkOyAvKiBpbmRpY2F0ZXMgaWYgdGhlICJzdGFydCArbGVuZ3RoIiBmb3JtIHVzZWQgKi8KLQljaGFyIGZvdW5kOwotCXVsb25nIGJhbms7CiAKIAkqYWRkcl9maXJzdCA9IHNpbXBsZV9zdHJ0b3VsKGFyZzEsICZlcCwgMTYpOwogCWlmIChlcCA9PSBhcmcxIHx8ICplcCAhPSAnXDAnKQpAQCAtMTU3LDM4ICsxOTYsOCBAQAogCQkgKiBzZWN0b3IgYm91bmRhcnksIHNvIHRoYXQgdGhlIGNvbW1hbmRzIGRvbid0IGZhaWwgbGF0ZXIgb24uCiAJCSAqLwogCi0JCS8qIGZpbmQgdGhlIGVuZCBhZGRyIG9mIHRoZSBzZWN0b3Igd2hlcmUgdGhlICphZGRyX2xhc3QgaXMgKi8KLQkJZm91bmQgPSAwOwotCQlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUyAmJiAhZm91bmQ7ICsrYmFuayl7Ci0JCQlpbnQgaTsKLQkJCWZsYXNoX2luZm9fdCAqaW5mbyA9ICZmbGFzaF9pbmZvW2JhbmtdOwotCQkJZm9yIChpID0gMDsgaSA8IGluZm8tPnNlY3Rvcl9jb3VudCAmJiAhZm91bmQ7ICsraSl7Ci0JCQkJLyogZ2V0IHRoZSBlbmQgYWRkcmVzcyBvZiB0aGUgc2VjdG9yICovCi0JCQkJdWxvbmcgc2VjdG9yX2VuZF9hZGRyOwotCQkJCWlmIChpID09IGluZm8tPnNlY3Rvcl9jb3VudCAtIDEpewotCQkJCQlzZWN0b3JfZW5kX2FkZHIgPQotCQkJCQkJaW5mby0+c3RhcnRbMF0gKyBpbmZvLT5zaXplIC0gMTsKLQkJCQl9IGVsc2UgewotCQkJCQlzZWN0b3JfZW5kX2FkZHIgPQotCQkJCQkJaW5mby0+c3RhcnRbaSsxXSAtIDE7Ci0JCQkJfQotCQkJCWlmICgqYWRkcl9sYXN0IDw9IHNlY3Rvcl9lbmRfYWRkciAmJgotCQkJCQkJKmFkZHJfbGFzdCA+PSBpbmZvLT5zdGFydFtpXSl7Ci0JCQkJCS8qIHNlY3RvciBmb3VuZCAqLwotCQkJCQlmb3VuZCA9IDE7Ci0JCQkJCS8qIGFkanVzdCAqYWRkcl9sYXN0IGlmIG5lY2Vzc2FyeSAqLwotCQkJCQlpZiAoKmFkZHJfbGFzdCA8IHNlY3Rvcl9lbmRfYWRkcil7Ci0JCQkJCQkqYWRkcl9sYXN0ID0gc2VjdG9yX2VuZF9hZGRyOwotCQkJCQl9Ci0JCQkJfQotCQkJfSAvKiBzZWN0b3IgKi8KLQkJfSAvKiBiYW5rICovCi0JCWlmICghZm91bmQpewotCQkJLyogZXJyb3IsIGFkZHJlcyBub3QgaW4gZmxhc2ggKi8KLQkJCXByaW50ZigiRXJyb3I6IGVuZCBhZGRyZXNzICgweCUwOGx4KSBub3QgaW4gZmxhc2ghXG4iLAotCQkJCQkJCQkqYWRkcl9sYXN0KTsKKwkJaWYgKGZsYXNoX3NlY3Rfcm91bmRiKGFkZHJfbGFzdCkgPiAwKQogCQkJcmV0dXJuIC0xOwotCQl9CiAJfSAvKiAic3RhcnQgK2xlbmd0aCIgZnJvbSB1c2VkICovCiAKIAlyZXR1cm4gMTsKQEAgLTIwNSwxMyArMjE0LDEzIEBACiAKIAkqc19jb3VudCA9IDA7CiAKLQlmb3IgKGJhbms9MDsgYmFuayA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgeworCWZvciAoYmFuaz0wOyBiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgewogCQlzX2ZpcnN0W2JhbmtdID0gLTE7CS8qIGZpcnN0IHNlY3RvciB0byBlcmFzZQkqLwogCQlzX2xhc3QgW2JhbmtdID0gLTE7CS8qIGxhc3QgIHNlY3RvciB0byBlcmFzZQkqLwogCX0KIAogCWZvciAoYmFuaz0wLGluZm8gPSAmZmxhc2hfaW5mb1swXTsKLQkgICAgIChiYW5rIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUykgJiYgKGFkZHJfZmlyc3QgPD0gYWRkcl9sYXN0KTsKKwkgICAgIChiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpICYmIChhZGRyX2ZpcnN0IDw9IGFkZHJfbGFzdCk7CiAJICAgICArK2JhbmssICsraW5mbykgewogCQl1bG9uZyBiX2VuZDsKIAkJaW50IHNlY3Q7CkBAIC0yNzYsMTEgKzI4NSwxMSBAQAogCiAJcmV0dXJuIHJjb2RlOwogfQotI2VuZGlmIC8qIENGR19OT19GTEFTSCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogaW50IGRvX2ZsaW5mbyAoIGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotI2lmbmRlZiBDRkdfTk9fRkxBU0gKKyNpZm5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogCXVsb25nIGJhbms7CiAjZW5kaWYKIApAQCAtMjg4LDkgKzI5Nyw5IEBACiAJZGF0YWZsYXNoX3ByaW50X2luZm8oKTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJaWYgKGFyZ2MgPT0gMSkgewkvKiBwcmludCBpbmZvIGZvciBhbGwgRkxBU0ggYmFua3MgKi8KLQkJZm9yIChiYW5rPTA7IGJhbmsgPENGR19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgeworCQlmb3IgKGJhbms9MDsgYmFuayA8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgewogCQkJcHJpbnRmICgiXG5CYW5rICMgJWxkOiAiLCBiYW5rKzEpOwogCiAJCQlmbGFzaF9wcmludF9pbmZvICgmZmxhc2hfaW5mb1tiYW5rXSk7CkBAIC0yOTksMjAgKzMwOCwyMCBAQAogCX0KIAogCWJhbmsgPSBzaW1wbGVfc3RydG91bChhcmd2WzFdLCBOVUxMLCAxNik7Ci0JaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTKSkgeworCWlmICgoYmFuayA8IDEpIHx8IChiYW5rID4gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpKSB7CiAJCXByaW50ZiAoIk9ubHkgRkxBU0ggQmFua3MgIyAxIC4uLiAjICVkIHN1cHBvcnRlZFxuIiwKLQkJCUNGR19NQVhfRkxBU0hfQkFOS1MpOworCQkJQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpOwogCQlyZXR1cm4gMTsKIAl9CiAJcHJpbnRmICgiXG5CYW5rICMgJWxkOiAiLCBiYW5rKTsKIAlmbGFzaF9wcmludF9pbmZvICgmZmxhc2hfaW5mb1tiYW5rLTFdKTsKLSNlbmRpZiAvKiBDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05PX0ZMQVNIICovCiAJcmV0dXJuIDA7CiB9CiAKIGludCBkb19mbGVyYXNlIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJdWxvbmcgYmFuaywgYWRkcl9maXJzdCwgYWRkcl9sYXN0OwogCWludCBuLCBzZWN0X2ZpcnN0LCBzZWN0X2xhc3Q7CkBAIC0zMjksNyArMzM4LDcgQEAKIAl9CiAKIAlpZiAoc3RyY21wKGFyZ3ZbMV0sICJhbGwiKSA9PSAwKSB7Ci0JCWZvciAoYmFuaz0xOyBiYW5rPD1DRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKKwkJZm9yIChiYW5rPTE7IGJhbms8PUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKIAkJCXByaW50ZiAoIkVyYXNlIEZsYXNoIEJhbmsgIyAlbGQgIiwgYmFuayk7CiAJCQlpbmZvID0gJmZsYXNoX2luZm9bYmFuay0xXTsKIAkJCXJjb2RlID0gZmxhc2hfZXJhc2UgKGluZm8sIDAsIGluZm8tPnNlY3Rvcl9jb3VudC0xKTsKQEAgLTM4MSw5ICszOTAsOSBAQAogCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiYmFuayIpID09IDApIHsKIAkJYmFuayA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKLQkJaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTKSkgeworCQlpZiAoKGJhbmsgPCAxKSB8fCAoYmFuayA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSkgewogCQkJcHJpbnRmICgiT25seSBGTEFTSCBCYW5rcyAjIDEgLi4uICMgJWQgc3VwcG9ydGVkXG4iLAotCQkJCUNGR19NQVhfRkxBU0hfQkFOS1MpOworCQkJCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKTsKIAkJCXJldHVybiAxOwogCQl9CiAJCXByaW50ZiAoIkVyYXNlIEZsYXNoIEJhbmsgIyAlbGQgIiwgYmFuayk7CkBAIC00MDYsMTggKzQxNSwxOCBAQAogCXJldHVybiByY29kZTsKICNlbHNlCiAJcmV0dXJuIDA7Ci0jZW5kaWYgLyogQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogfQogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiBpbnQgZmxhc2hfc2VjdF9lcmFzZSAodWxvbmcgYWRkcl9maXJzdCwgdWxvbmcgYWRkcl9sYXN0KQogewogCWZsYXNoX2luZm9fdCAqaW5mbzsKIAl1bG9uZyBiYW5rOwotI2lmZGVmIENGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUCi0JaW50IHNfZmlyc3RbQ0ZHX01BWF9GTEFTSF9CQU5LU19ERVRFQ1RdLCBzX2xhc3RbQ0ZHX01BWF9GTEFTSF9CQU5LU19ERVRFQ1RdOworI2lmZGVmIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAorCWludCBzX2ZpcnN0W0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVF0sIHNfbGFzdFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1RdOwogI2Vsc2UKLQlpbnQgc19maXJzdFtDRkdfTUFYX0ZMQVNIX0JBTktTXSwgc19sYXN0W0NGR19NQVhfRkxBU0hfQkFOS1NdOworCWludCBzX2ZpcnN0W0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXSwgc19sYXN0W0NPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTXTsKICNlbmRpZgogCWludCBlcmFzZWQgPSAwOwogCWludCBwbGFubmVkOwpAQCAtNDI4LDcgKzQzNyw3IEBACiAKIAlpZiAocGxhbm5lZCAmJiAocmNvZGUgPT0gMCkpIHsKIAkJZm9yIChiYW5rPTAsaW5mbyA9ICZmbGFzaF9pbmZvWzBdOwotCQkgICAgIChiYW5rIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUykgJiYgKHJjb2RlID09IDApOworCQkgICAgIChiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpICYmIChyY29kZSA9PSAwKTsKIAkJICAgICArK2JhbmssICsraW5mbykgewogCQkJaWYgKHNfZmlyc3RbYmFua10+PTApIHsKIAkJCQllcmFzZWQgKz0gc19sYXN0W2JhbmtdIC0gc19maXJzdFtiYW5rXSArIDE7CkBAIC00NTAsMTUgKzQ1OSwxNSBAQAogCX0KIAlyZXR1cm4gcmNvZGU7CiB9Ci0jZW5kaWYgLyogQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogCiBpbnQgZG9fcHJvdGVjdCAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJZmxhc2hfaW5mb190ICppbmZvOwogCXVsb25nIGJhbms7CiAJaW50IGksIG4sIHNlY3RfZmlyc3QsIHNlY3RfbGFzdDsKLSNlbmRpZiAvKiBDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05PX0ZMQVNIICovCiAJdWxvbmcgYWRkcl9maXJzdCwgYWRkcl9sYXN0OwogCWludCBwOwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9KRkZTMikgJiYgZGVmaW5lZChDT05GSUdfSkZGUzJfQ01ETElORSkKQEAgLTUwMyw5ICs1MTIsOSBAQAogCX0KICNlbmRpZgogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJaWYgKHN0cmNtcChhcmd2WzJdLCAiYWxsIikgPT0gMCkgewotCQlmb3IgKGJhbms9MTsgYmFuazw9Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rKSB7CisJCWZvciAoYmFuaz0xOyBiYW5rPD1DT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rKSB7CiAJCQlpbmZvID0gJmZsYXNoX2luZm9bYmFuay0xXTsKIAkJCWlmIChpbmZvLT5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQkJY29udGludWU7CkBAIC01MTQsMTcgKzUyMywxNyBAQAogCQkJCXAgPyAiIiA6ICJVbi0iLCBiYW5rKTsKIAogCQkJZm9yIChpPTA7IGk8aW5mby0+c2VjdG9yX2NvdW50OyArK2kpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJCXJjb2RlID0gMTsKIAkJCQlwdXRjICgnLicpOwogI2Vsc2UKIAkJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQkJfQotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQlpZiAoIXJjb2RlKSBwdXRzICgiIGRvbmVcbiIpOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAJCX0KIAkJcmV0dXJuIHJjb2RlOwogCX0KQEAgLTUzOCwxOCArNTQ3LDE4IEBACiAJCQlwID8gIiIgOiAiVW4tIiwgc2VjdF9maXJzdCwgc2VjdF9sYXN0LAogCQkJKGluZm8tZmxhc2hfaW5mbykrMSk7CiAJCWZvciAoaSA9IHNlY3RfZmlyc3Q7IGkgPD0gc2VjdF9sYXN0OyBpKyspIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJaWYgKGZsYXNoX3JlYWxfcHJvdGVjdChpbmZvLCBpLCBwKSkKIAkJCQlyY29kZSA9ICAxOwogCQkJcHV0YyAoJy4nKTsKICNlbHNlCiAJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQl9CiAKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQlpZiAoIXJjb2RlKSBwdXRzICgiIGRvbmVcbiIpOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAKIAkJcmV0dXJuIHJjb2RlOwogCX0KQEAgLTU4OCw5ICs1OTcsOSBAQAogCiAJaWYgKHN0cmNtcChhcmd2WzJdLCAiYmFuayIpID09IDApIHsKIAkJYmFuayA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbM10sIE5VTEwsIDE2KTsKLQkJaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTKSkgeworCQlpZiAoKGJhbmsgPCAxKSB8fCAoYmFuayA+IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSkgewogCQkJcHJpbnRmICgiT25seSBGTEFTSCBCYW5rcyAjIDEgLi4uICMgJWQgc3VwcG9ydGVkXG4iLAotCQkJCUNGR19NQVhfRkxBU0hfQkFOS1MpOworCQkJCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKTsKIAkJCXJldHVybiAxOwogCQl9CiAJCXByaW50ZiAoIiVzUHJvdGVjdCBGbGFzaCBCYW5rICMgJWxkXG4iLApAQCAtNjAyLDE4ICs2MTEsMTggQEAKIAkJCXJldHVybiAxOwogCQl9CiAJCWZvciAoaT0wOyBpPGluZm8tPnNlY3Rvcl9jb3VudDsgKytpKSB7Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJcmNvZGUgPSAgMTsKIAkJCXB1dGMgKCcuJyk7CiAjZWxzZQogCQkJaW5mby0+cHJvdGVjdFtpXSA9IHA7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAkJfQogCi0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJaWYgKCFyY29kZSkgcHV0cyAoIiBkb25lXG4iKTsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCiAJCXJldHVybiByY29kZTsKIAl9CkBAIC02MjgsMTkgKzYzNywxOSBAQAogCQlyZXR1cm4gMTsKIAl9CiAJcmNvZGUgPSBmbGFzaF9zZWN0X3Byb3RlY3QgKHAsIGFkZHJfZmlyc3QsIGFkZHJfbGFzdCk7Ci0jZW5kaWYgLyogQ0ZHX05PX0ZMQVNIICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogCXJldHVybiByY29kZTsKIH0KIAotI2lmbmRlZiBDRkdfTk9fRkxBU0gKKyNpZm5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogaW50IGZsYXNoX3NlY3RfcHJvdGVjdCAoaW50IHAsIHVsb25nIGFkZHJfZmlyc3QsIHVsb25nIGFkZHJfbGFzdCkKIHsKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJdWxvbmcgYmFuazsKLSNpZmRlZiBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAotCWludCBzX2ZpcnN0W0NGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUXSwgc19sYXN0W0NGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUXTsKKyNpZmRlZiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QKKwlpbnQgc19maXJzdFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1RdLCBzX2xhc3RbQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NfREVURUNUXTsKICNlbHNlCi0JaW50IHNfZmlyc3RbQ0ZHX01BWF9GTEFTSF9CQU5LU10sIHNfbGFzdFtDRkdfTUFYX0ZMQVNIX0JBTktTXTsKKwlpbnQgc19maXJzdFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU10sIHNfbGFzdFtDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU107CiAjZW5kaWYKIAlpbnQgcHJvdGVjdGVkLCBpOwogCWludCBwbGFubmVkOwpAQCAtNjUxLDcgKzY2MCw3IEBACiAJcHJvdGVjdGVkID0gMDsKIAogCWlmIChwbGFubmVkICYmIChyY29kZSA9PSAwKSkgewotCQlmb3IgKGJhbms9MCxpbmZvID0gJmZsYXNoX2luZm9bMF07IGJhbmsgPCBDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmssICsraW5mbykgeworCQlmb3IgKGJhbms9MCxpbmZvID0gJmZsYXNoX2luZm9bMF07IGJhbmsgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rLCArK2luZm8pIHsKIAkJCWlmIChpbmZvLT5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7CiAJCQkJY29udGludWU7CiAJCQl9CkBAIC02NjIsMTkgKzY3MSwxOSBAQAogCQkJCQlzX2ZpcnN0W2JhbmtdLCBzX2xhc3RbYmFua10sIGJhbmsrMSk7CiAJCQkJcHJvdGVjdGVkICs9IHNfbGFzdFtiYW5rXSAtIHNfZmlyc3RbYmFua10gKyAxOwogCQkJCWZvciAoaT1zX2ZpcnN0W2JhbmtdOyBpPD1zX2xhc3RbYmFua107ICsraSkgewotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJCQlyY29kZSA9IDE7CiAJCQkJCXB1dGMgKCcuJyk7CiAjZWxzZQogCQkJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQkJCX0KIAkJCX0KIAkJfQotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCXB1dHMgKCIgZG9uZVxuIik7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAogCQlwcmludGYgKCIlc1Byb3RlY3RlZCAlZCBzZWN0b3JzXG4iLAogCQkJcCA/ICIiIDogIlVuLSIsIHByb3RlY3RlZCk7CkBAIC02ODUsNyArNjk0LDcgQEAKIAl9CiAJcmV0dXJuIHJjb2RlOwogfQotI2VuZGlmIC8qIENGR19OT19GTEFTSCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2kyYy5jIGIvY29tbW9uL2NtZF9pMmMuYwppbmRleCBlYTgwZThhLi44NGVjZjQ5IDEwMDY0NAotLS0gYS9jb21tb24vY21kX2kyYy5jCisrKyBiL2NvbW1vbi9jbWRfaTJjLmMKQEAgLTY1LDcgKzY1LDcgQEAKICAqICAgc2lnbmlmaWNhbnQgMSwgMiwgb3IgMyBiaXRzIG9mIGFkZHJlc3MgaW50byB0aGUgY2hpcCBhZGRyZXNzIGJ5dGUuCiAgKiAgIFRoaXMgZWZmZWN0aXZlbHkgbWFrZXMgb25lIGNoaXAgKGxvZ2ljYWxseSkgbG9vayBsaWtlIDIsIDQsIG9yCiAgKiAgIDggY2hpcHMuICBUaGlzIGlzIGhhbmRsZWQgKGF3a3dhcmRseSkgYnkgI2RlZmluaW5nCi0gKiAgIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cgYW5kIHVzaW5nIHRoZSAuMSBtb2RpZmllciBvbiB0aGUKKyAqICAgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cgYW5kIHVzaW5nIHRoZSAuMSBtb2RpZmllciBvbiB0aGUKICAqICAge2FkZHJ9IGZpZWxkIChzaW5jZSAuMSBpcyB0aGUgZGVmYXVsdCwgaXQgZG9lc24ndCBhY3R1YWxseSBoYXZlIHRvCiAgKiAgIGJlIHNwZWNpZmllZCkuICBFeGFtcGxlczogZ2l2ZW4gYSBtZW1vcnkgY2hpcCBhdCBJMkMgY2hpcCBhZGRyZXNzCiAgKiAgIDB4NTAsIHRoZSBmb2xsb3dpbmcgd291bGQgaGFwcGVuLi4uCkBAIC04Myw3ICs4Myw5IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KICNpbmNsdWRlIDxjb21tYW5kLmg+CisjaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KICNpbmNsdWRlIDxpMmMuaD4KKyNpbmNsdWRlIDxtYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CiAKIC8qIERpc3BsYXkgdmFsdWVzIGZyb20gbGFzdCBjb21tYW5kLgpAQCAtMTAzLDE5ICsxMDUsMTkgQEAKICAqIFdoZW4gbXVsdGlwbGUgYnVzZXMgYXJlIHByZXNlbnQsIHRoZSBsaXN0IGlzIGFuIGFycmF5IG9mIGJ1cy1hZGRyZXNzCiAgKiBwYWlycy4gIFRoZSBmb2xsb3dpbmcgbWFjcm9zIHRha2UgY2FyZSBvZiB0aGlzICovCiAKLSNpZiBkZWZpbmVkKENGR19JMkNfTk9QUk9CRVMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19OT1BST0JFUykKICNpZiBkZWZpbmVkKENPTkZJR19JMkNfTVVMVElfQlVTKQogc3RhdGljIHN0cnVjdAogewogCXVjaGFyCWJ1czsKIAl1Y2hhcglhZGRyOwotfSBpMmNfbm9fcHJvYmVzW10gPSBDRkdfSTJDX05PUFJPQkVTOworfSBpMmNfbm9fcHJvYmVzW10gPSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUzsKICNkZWZpbmUgR0VUX0JVU19OVU0JaTJjX2dldF9idXNfbnVtKCkKICNkZWZpbmUgQ09NUEFSRV9CVVMoYixpKQkoaTJjX25vX3Byb2Jlc1soaSldLmJ1cyA9PSAoYikpCiAjZGVmaW5lIENPTVBBUkVfQUREUihhLGkpCShpMmNfbm9fcHJvYmVzWyhpKV0uYWRkciA9PSAoYSkpCiAjZGVmaW5lIE5PX1BST0JFX0FERFIoaSkJaTJjX25vX3Byb2Jlc1soaSldLmFkZHIKICNlbHNlCQkvKiBzaW5nbGUgYnVzICovCi1zdGF0aWMgdWNoYXIgaTJjX25vX3Byb2Jlc1tdID0gQ0ZHX0kyQ19OT1BST0JFUzsKK3N0YXRpYyB1Y2hhciBpMmNfbm9fcHJvYmVzW10gPSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUzsKICNkZWZpbmUgR0VUX0JVU19OVU0JMAogI2RlZmluZSBDT01QQVJFX0JVUyhiLGkpCSgoYikgPT0gMCkJLyogTWFrZSBjb21waWxlciBoYXBweSAqLwogI2RlZmluZSBDT01QQVJFX0FERFIoYSxpKQkoaTJjX25vX3Byb2Jlc1soaSldID09IChhKSkKQEAgLTEyNSw2ICsxMjcsMTQgQEAKICNkZWZpbmUgTlVNX0VMRU1FTlRTX05PUFJPQkUgKHNpemVvZihpMmNfbm9fcHJvYmVzKS9zaXplb2YoaTJjX25vX3Byb2Jlc1swXSkpCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVVgpCitzdGF0aWMgSTJDX01VWF9ERVZJQ0UJKmkyY19tdXhfZGV2aWNlcyA9IE5VTEw7CitzdGF0aWMJaW50CWkyY19tdXhfYnVzaWQgPSBDT05GSUdfU1lTX01BWF9JMkNfQlVTOworCitERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKKworI2VuZGlmCisKIHN0YXRpYyBpbnQKIG1vZF9pMmNfbWVtKGNtZF90YmxfdCAqY21kdHAsIGludCBpbmNyZmxhZywgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pOwogCkBAIC0zMTMsNyArMzIzLDcgQEAKIC8qCiAgKiBObyB3cml0ZSBkZWxheSB3aXRoIEZSQU0gZGV2aWNlcy4KICAqLwotI2lmICFkZWZpbmVkKENGR19JMkNfRlJBTSkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0kyQ19GUkFNKQogCQl1ZGVsYXkoMTEwMDApOwogI2VuZGlmCiAKQEAgLTUxOSw4ICs1MjksOCBAQAogI2VuZGlmCiAJCQkJaWYgKGkyY193cml0ZShjaGlwLCBhZGRyLCBhbGVuLCAodWNoYXIgKikmZGF0YSwgc2l6ZSkgIT0gMCkKIAkJCQkJcHV0cyAoIkVycm9yIHdyaXRpbmcgdGhlIGNoaXAuXG4iKTsKLSNpZmRlZiBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMKLQkJCQl1ZGVsYXkoQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CisjaWZkZWYgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUworCQkJCXVkZWxheShDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TICogMTAwMCk7CiAjZW5kaWYKIAkJCQlpZiAoaW5jcmZsYWcpCiAJCQkJCWFkZHIgKz0gc2l6ZTsKQEAgLTU0MiwxNCArNTUyLDE0IEBACiBpbnQgZG9faTJjX3Byb2JlIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAlpbnQgajsKLSNpZiBkZWZpbmVkKENGR19JMkNfTk9QUk9CRVMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19OT1BST0JFUykKIAlpbnQgaywgc2tpcDsKIAl1Y2hhciBidXMgPSBHRVRfQlVTX05VTTsKICNlbmRpZgkvKiBOT1BST0JFUyAqLwogCiAJcHV0cyAoIlZhbGlkIGNoaXAgYWRkcmVzc2VzOiIpOwogCWZvciAoaiA9IDA7IGogPCAxMjg7IGorKykgewotI2lmIGRlZmluZWQoQ0ZHX0kyQ19OT1BST0JFUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX05PUFJPQkVTKQogCQlza2lwID0gMDsKIAkJZm9yIChrPTA7IGsgPCBOVU1fRUxFTUVOVFNfTk9QUk9CRTsgaysrKSB7CiAJCQlpZiAoQ09NUEFSRV9CVVMoYnVzLCBrKSAmJiBDT01QQVJFX0FERFIoaiwgaykpIHsKQEAgLTU2NSw3ICs1NzUsNyBAQAogCX0KIAlwdXRjICgnXG4nKTsKIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19OT1BST0JFUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX05PUFJPQkVTKQogCXB1dHMgKCJFeGNsdWRlZCBjaGlwIGFkZHJlc3NlczoiKTsKIAlmb3IgKGs9MDsgayA8IE5VTV9FTEVNRU5UU19OT1BST0JFOyBrKyspIHsKIAkJaWYgKENPTVBBUkVfQlVTKGJ1cyxrKSkKQEAgLTExODIsNiArMTE5Miw0MyBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19JMkNfQ01EX1RSRUUpCitpbnQgZG9faTJjX3Jlc2V0KGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKKwlyZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVVgpCitpbnQgZG9faTJjX2FkZF9idXMoY21kX3RibF90ICogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludCByZXQ9MDsKKworCWlmIChhcmdjID09IDEpIHsKKwkJLyogc2hvdyBhbGwgYnVzc2VzICovCisJCUkyQ19NVVgJCSptdXg7CisJCUkyQ19NVVhfREVWSUNFCSpkZXZpY2UgPSBpMmNfbXV4X2RldmljZXM7CisKKwkJcHJpbnRmICgiQnVzc2VzIHJlYWNoZWQgb3ZlciBtdXhlczpcbiIpOworCQl3aGlsZSAoZGV2aWNlICE9IE5VTEwpIHsKKwkJCXByaW50ZiAoIkJ1cyBJRDogJXhcbiIsIGRldmljZS0+YnVzaWQpOworCQkJcHJpbnRmICgiICByZWFjaGVkIG92ZXIgTXV4KGVzKTpcbiIpOworCQkJbXV4ID0gZGV2aWNlLT5tdXg7CisJCQl3aGlsZSAobXV4ICE9IE5VTEwpIHsKKwkJCQlwcmludGYgKCIgICAgJXNAJXggY2g6ICV4XG4iLCBtdXgtPm5hbWUsIG11eC0+Y2hpcCwgbXV4LT5jaGFubmVsKTsKKwkJCQltdXggPSBtdXgtPm5leHQ7CisJCQl9CisJCQlkZXZpY2UgPSBkZXZpY2UtPm5leHQ7CisJCX0KKwl9IGVsc2UgeworCQlJMkNfTVVYX0RFVklDRSAqZGV2OworCisJCWRldiA9IGkyY19tdXhfaWRlbnRfbXV4c3RyaW5nICgodWNoYXIgKilhcmd2WzFdKTsKKwkJcmV0ID0gMDsKKwl9CisJcmV0dXJuIHJldDsKK30KKyNlbmRpZiAgLyogQ09ORklHX0kyQ19NVVggKi8KKwogI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVUxUSV9CVVMpCiBpbnQgZG9faTJjX2J1c19udW0oY21kX3RibF90ICogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewpAQCAtMTIyMCw2ICsxMjY3LDEwIEBACiAKIGludCBkb19pMmMoY21kX3RibF90ICogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogeworI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVVgpCisJaWYgKCFzdHJuY21wKGFyZ3ZbMV0sICJidSIsIDIpKQorCQlyZXR1cm4gZG9faTJjX2FkZF9idXMoY21kdHAsIGZsYWcsIC0tYXJnYywgKythcmd2KTsKKyNlbmRpZiAgLyogQ09ORklHX0kyQ19NVVggKi8KIAlpZiAoIXN0cm5jbXAoYXJndlsxXSwgInNwIiwgMikpCiAJCXJldHVybiBkb19pMmNfYnVzX3NwZWVkKGNtZHRwLCBmbGFnLCAtLWFyZ2MsICsrYXJndik7CiAjaWYgZGVmaW5lZChDT05GSUdfSTJDX01VTFRJX0JVUykKQEAgLTEyMzgsNiArMTI4OSw4IEBACiAJCXJldHVybiBkb19pMmNfY3JjKGNtZHRwLCBmbGFnLCAtLWFyZ2MsICsrYXJndik7CiAJaWYgKCFzdHJuY21wKGFyZ3ZbMV0sICJwciIsIDIpKQogCQlyZXR1cm4gZG9faTJjX3Byb2JlKGNtZHRwLCBmbGFnLCAtLWFyZ2MsICsrYXJndik7CisJaWYgKCFzdHJuY21wKGFyZ3ZbMV0sICJyZSIsIDIpKQorCQlyZXR1cm4gZG9faTJjX3Jlc2V0KGNtZHRwLCBmbGFnLCAtLWFyZ2MsICsrYXJndik7CiAJaWYgKCFzdHJuY21wKGFyZ3ZbMV0sICJsbyIsIDIpKQogCQlyZXR1cm4gZG9faTJjX2xvb3AoY21kdHAsIGZsYWcsIC0tYXJnYywgKythcmd2KTsKICNpZiBkZWZpbmVkKENPTkZJR19DTURfU0RSQU0pCkBAIC0xMjU2LDYgKzEzMDksOSBAQAogVV9CT09UX0NNRCgKIAlpMmMsIDYsIDEsIGRvX2kyYywKIAkiaTJjICAgICAtIEkyQyBzdWItc3lzdGVtXG4iLAorI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVVgpCisJImJ1cyBbbXV4dHlwZTptdXhhZGRyOm11eGNoYW5uZWxdIC0gYWRkIGEgbmV3IGJ1cyByZWFjaGVkIG92ZXIgbXV4ZXMuXG4iCisjZW5kaWYgIC8qIENPTkZJR19JMkNfTVVYICovCiAJInNwZWVkIFtzcGVlZF0gLSBzaG93IG9yIHNldCBJMkMgYnVzIHNwZWVkXG4iCiAjaWYgZGVmaW5lZChDT05GSUdfSTJDX01VTFRJX0JVUykKIAkiaTJjIGRldiBbZGV2XSAtIHNob3cgb3Igc2V0IGN1cnJlbnQgSTJDIGJ1c1xuIgpAQCAtMTI2Niw2ICsxMzIyLDcgQEAKIAkiaTJjIG5tIGNoaXAgYWRkcmVzc1suMCwgLjEsIC4yXSAtIHdyaXRlIHRvIEkyQyBkZXZpY2UgKGNvbnN0YW50IGFkZHJlc3MpXG4iCiAJImkyYyBjcmMzMiBjaGlwIGFkZHJlc3NbLjAsIC4xLCAuMl0gY291bnQgLSBjb21wdXRlIENSQzMyIGNoZWNrc3VtXG4iCiAJImkyYyBwcm9iZSAtIHNob3cgZGV2aWNlcyBvbiB0aGUgSTJDIGJ1c1xuIgorCSJpMmMgcmVzZXQgLSByZS1pbml0IHRoZSBJMkMgQ29udHJvbGxlclxuIgogCSJpMmMgbG9vcCBjaGlwIGFkZHJlc3NbLjAsIC4xLCAuMl0gWyMgb2Ygb2JqZWN0c10gLSBsb29waW5nIHJlYWQgb2YgZGV2aWNlXG4iCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX1NEUkFNKQogCSJpMmMgc2RyYW0gY2hpcCAtIHByaW50IFNEUkFNIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb25cbiIKQEAgLTEzMjYsMyArMTM4MywyMjIgQEAKIAkiICAgICAgKHZhbGlkIGNoaXAgdmFsdWVzIDUwLi41NylcbiIKICk7CiAjZW5kaWYKKworI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVVgpCisKK2ludCBpMmNfbXV4X2FkZF9kZXZpY2UoSTJDX01VWF9ERVZJQ0UgKmRldikKK3sKKwlJMkNfTVVYX0RFVklDRQkqZGV2dG1wID0gaTJjX211eF9kZXZpY2VzOworCisJaWYgKGkyY19tdXhfZGV2aWNlcyA9PSBOVUxMKSB7CisJCWkyY19tdXhfZGV2aWNlcyA9IGRldjsKKwkJcmV0dXJuIDA7CisJfQorCXdoaWxlIChkZXZ0bXAtPm5leHQgIT0gTlVMTCkKKwkJZGV2dG1wID0gZGV2dG1wLT5uZXh0OworCisJZGV2dG1wLT5uZXh0ID0gZGV2OworCXJldHVybiAwOworfQorCitJMkNfTVVYX0RFVklDRQkqaTJjX211eF9zZWFyY2hfZGV2aWNlKGludCBpZCkKK3sKKwlJMkNfTVVYX0RFVklDRQkqZGV2aWNlID0gaTJjX211eF9kZXZpY2VzOworCisJd2hpbGUgKGRldmljZSAhPSBOVUxMKSB7CisJCWlmIChkZXZpY2UtPmJ1c2lkID09IGlkKQorCQkJcmV0dXJuIGRldmljZTsKKwkJZGV2aWNlID0gZGV2aWNlLT5uZXh0OworCX0KKwlyZXR1cm4gTlVMTDsKK30KKworLyogc2VhcmNoZXMgaW4gdGhlIGJ1ZiBmcm9tICpwb3MgdGhlIG5leHQgJzonLgorICogcmV0dXJuczoKKyAqICAgICAwIGlmIGZvdW5kICh3aXRoICpwb3MgPSB3aGVyZSkKKyAqICAgPCAwIGlmIGFuIGVycm9yIG9jY3VyZWQKKyAqICAgPiAwIGlmIHRoZSBlbmQgb2YgYnVmIGlzIHJlYWNoZWQKKyAqLworc3RhdGljIGludCBpMmNfbXV4X3NlYXJjaF9uZXh0IChpbnQgKnBvcywgdWNoYXIJKmJ1ZiwgaW50IGxlbikKK3sKKwl3aGlsZSAoKGJ1ZlsqcG9zXSAhPSAnOicpICYmICgqcG9zIDwgbGVuKSkgeworCQkqcG9zICs9IDE7CisJfQorCWlmICgqcG9zID49IGxlbikKKwkJcmV0dXJuIDE7CisJaWYgKGJ1ZlsqcG9zXSAhPSAnOicpCisJCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpMmNfbXV4X2dldF9idXNpZCAodm9pZCkKK3sKKwlpbnQJdG1wID0gaTJjX211eF9idXNpZDsKKworCWkyY19tdXhfYnVzaWQgKys7CisJcmV0dXJuIHRtcDsKK30KKworLyogQW5hbHlzZXMgYSBNdXhzdHJpbmcgYW5kIHNlbmRzIGltbWVkaWF0ZWx5IHRoZQorICAgQ29tbWFuZHMgdG8gdGhlIE11eGVzLiBSdW5zIGZyb20gRmxhc2guCisgKi8KK2ludCBpMmNfbXV4X2lkZW50X211eHN0cmluZ19mICh1Y2hhciAqYnVmKQoreworCWludAlwb3MgPSAwOworCWludAlvbGRwb3M7CisJaW50CXJldCA9IDA7CisJaW50CWxlbiA9IHN0cmxlbigoY2hhciAqKWJ1Zik7CisJaW50CWNoaXA7CisJdWNoYXIJY2hhbm5lbDsKKwlpbnQJd2FzID0gMDsKKworCXdoaWxlIChyZXQgPT0gMCkgeworCQlvbGRwb3MgPSBwb3M7CisJCS8qIHNlYXJjaCBuYW1lICovCisJCXJldCA9IGkyY19tdXhfc2VhcmNoX25leHQoJnBvcywgYnVmLCBsZW4pOworCQlpZiAocmV0ICE9IDApCisJCQlwcmludGYgKCJFUlJPUlxuIik7CisJCS8qIHNlYXJjaCBhZGRyZXNzICovCisJCXBvcyArKzsKKwkJb2xkcG9zID0gcG9zOworCQlyZXQgPSBpMmNfbXV4X3NlYXJjaF9uZXh0KCZwb3MsIGJ1ZiwgbGVuKTsKKwkJaWYgKHJldCAhPSAwKQorCQkJcHJpbnRmICgiRVJST1JcbiIpOworCQlidWZbcG9zXSA9IDA7CisJCWNoaXAgPSBzaW1wbGVfc3RydG91bCgoY2hhciAqKSZidWZbb2xkcG9zXSwgTlVMTCwgMTYpOworCQlidWZbcG9zXSA9ICc6JzsKKwkJLyogc2VhcmNoIGNoYW5uZWwgKi8KKwkJcG9zICsrOworCQlvbGRwb3MgPSBwb3M7CisJCXJldCA9IGkyY19tdXhfc2VhcmNoX25leHQoJnBvcywgYnVmLCBsZW4pOworCQlpZiAocmV0IDwgMCkKKwkJCXByaW50ZiAoIkVSUk9SXG4iKTsKKwkJd2FzID0gMDsKKwkJaWYgKGJ1Zltwb3NdICE9IDApIHsKKwkJCWJ1Zltwb3NdID0gMDsKKwkJCXdhcyA9IDE7CisJCX0KKwkJY2hhbm5lbCA9IHNpbXBsZV9zdHJ0b3VsKChjaGFyICopJmJ1ZltvbGRwb3NdLCBOVUxMLCAxNik7CisJCWlmICh3YXMpCisJCQlidWZbcG9zXSA9ICc6JzsKKwkJaWYgKGkyY193cml0ZShjaGlwLCAwLCAwLCAmY2hhbm5lbCwgMSkgIT0gMCkgeworCQkJcHJpbnRmICgiRXJyb3Igc2V0dGluZyBNdXg6IGNoaXA6JXggY2hhbm5lbDogXAorCQkJCSV4XG4iLCBjaGlwLCBjaGFubmVsKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQlwb3MgKys7CisJCW9sZHBvcyA9IHBvczsKKworCX0KKworCXJldHVybiAwOworfQorCisvKiBBbmFseXNlcyBhIE11eHN0cmluZyBhbmQgaWYgdGhpcyBTdHJpbmcgaXMgY29ycmVjdAorICogYWRkcyBhIG5ldyBJMkMgQnVzLgorICovCitJMkNfTVVYX0RFVklDRSAqaTJjX211eF9pZGVudF9tdXhzdHJpbmcgKHVjaGFyICpidWYpCit7CisJSTJDX01VWF9ERVZJQ0UJKmRldmljZTsKKwlJMkNfTVVYCQkqbXV4OworCWludAlwb3MgPSAwOworCWludAlvbGRwb3M7CisJaW50CXJldCA9IDA7CisJaW50CWxlbiA9IHN0cmxlbigoY2hhciAqKWJ1Zik7CisJaW50CXdhcyA9IDA7CisKKwlkZXZpY2UgPSAoSTJDX01VWF9ERVZJQ0UgKiltYWxsb2MgKHNpemVvZihJMkNfTVVYX0RFVklDRSkpOworCWRldmljZS0+bXV4ID0gTlVMTDsKKwlkZXZpY2UtPmJ1c2lkID0gaTJjX211eF9nZXRfYnVzaWQgKCk7CisJZGV2aWNlLT5uZXh0ID0gTlVMTDsKKwl3aGlsZSAocmV0ID09IDApIHsKKwkJbXV4ID0gKEkyQ19NVVggKiltYWxsb2MgKHNpemVvZihJMkNfTVVYKSk7CisJCW11eC0+bmV4dCA9IE5VTEw7CisJCS8qIHNlYXJjaCBuYW1lIG9mIG11eCAqLworCQlvbGRwb3MgPSBwb3M7CisJCXJldCA9IGkyY19tdXhfc2VhcmNoX25leHQoJnBvcywgYnVmLCBsZW4pOworCQlpZiAocmV0ICE9IDApCisJCQlwcmludGYgKCIlcyBubyBuYW1lLlxuIiwgX19GVU5DVElPTl9fKTsKKwkJbXV4LT5uYW1lID0gKGNoYXIgKiltYWxsb2MgKHBvcyAtIG9sZHBvcyArIDEpOworCQltZW1jcHkgKG11eC0+bmFtZSwgJmJ1ZltvbGRwb3NdLCBwb3MgLSBvbGRwb3MpOworCQltdXgtPm5hbWVbcG9zIC0gb2xkcG9zXSA9IDA7CisJCS8qIHNlYXJjaCBhZGRyZXNzICovCisJCXBvcyArKzsKKwkJb2xkcG9zID0gcG9zOworCQlyZXQgPSBpMmNfbXV4X3NlYXJjaF9uZXh0KCZwb3MsIGJ1ZiwgbGVuKTsKKwkJaWYgKHJldCAhPSAwKQorCQkJcHJpbnRmICgiJXMgbm8gbXV4IGFkZHJlc3MuXG4iLCBfX0ZVTkNUSU9OX18pOworCQlidWZbcG9zXSA9IDA7CisJCW11eC0+Y2hpcCA9IHNpbXBsZV9zdHJ0b3VsKChjaGFyICopJmJ1ZltvbGRwb3NdLCBOVUxMLCAxNik7CisJCWJ1Zltwb3NdID0gJzonOworCQkvKiBzZWFyY2ggY2hhbm5lbCAqLworCQlwb3MgKys7CisJCW9sZHBvcyA9IHBvczsKKwkJcmV0ID0gaTJjX211eF9zZWFyY2hfbmV4dCgmcG9zLCBidWYsIGxlbik7CisJCWlmIChyZXQgPCAwKQorCQkJcHJpbnRmICgiJXMgbm8gbXV4IGNoYW5uZWwuXG4iLCBfX0ZVTkNUSU9OX18pOworCQl3YXMgPSAwOworCQlpZiAoYnVmW3Bvc10gIT0gMCkgeworCQkJYnVmW3Bvc10gPSAwOworCQkJd2FzID0gMTsKKwkJfQorCQltdXgtPmNoYW5uZWwgPSBzaW1wbGVfc3RydG91bCgoY2hhciAqKSZidWZbb2xkcG9zXSwgTlVMTCwgMTYpOworCQlpZiAod2FzKQorCQkJYnVmW3Bvc10gPSAnOic7CisJCWlmIChkZXZpY2UtPm11eCA9PSBOVUxMKQorCQkJZGV2aWNlLT5tdXggPSBtdXg7CisJCWVsc2UgeworCQkJSTJDX01VWAkJKm11eHRtcCA9IGRldmljZS0+bXV4OworCQkJd2hpbGUgKG11eHRtcC0+bmV4dCAhPSBOVUxMKSB7CisJCQkJbXV4dG1wID0gbXV4dG1wLT5uZXh0OworCQkJfQorCQkJbXV4dG1wLT5uZXh0ID0gbXV4OworCQl9CisJCXBvcyArKzsKKwkJb2xkcG9zID0gcG9zOworCX0KKwlpZiAocmV0ID4gMCkgeworCQkvKiBBZGQgRGV2aWNlICovCisJCWkyY19tdXhfYWRkX2RldmljZSAoZGV2aWNlKTsKKwkJcmV0dXJuIGRldmljZTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworaW50IGkyeF9tdXhfc2VsZWN0X211eChpbnQgYnVzKQoreworCUkyQ19NVVhfREVWSUNFICAqZGV2OworCUkyQ19NVVgJCSptdXg7CisKKwlpZiAoKGdkLT5mbGFncyAmIEdEX0ZMR19SRUxPQykgIT0gR0RfRkxHX1JFTE9DKSB7CisJCS8qIHNlbGVjdCBEZWZhdWx0IE11eCBCdXMgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX0lWTV9CVVMpCisJCWkyY19tdXhfaWRlbnRfbXV4c3RyaW5nX2YgKCh1Y2hhciAqKUNPTkZJR19TWVNfSTJDX0lWTV9CVVMpOworI2Vsc2UKKwkJeworCQl1bnNpZ25lZCBjaGFyICpidWY7CisJCWJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopIGdldGVudigiRUVwcm9tX2l2bSIpOworCQlpZiAoYnVmICE9IE5VTEwpCisJCQlpMmNfbXV4X2lkZW50X211eHN0cmluZ19mIChidWYpOworCQl9CisjZW5kaWYKKwkJcmV0dXJuIDA7CisJfQorCWRldiA9IGkyY19tdXhfc2VhcmNoX2RldmljZShidXMpOworCWlmIChkZXYgPT0gTlVMTCkKKwkJcmV0dXJuIC0xOworCisJbXV4ID0gZGV2LT5tdXg7CisJd2hpbGUgKG11eCAhPSBOVUxMKSB7CisJCWlmIChpMmNfd3JpdGUobXV4LT5jaGlwLCAwLCAwLCAmbXV4LT5jaGFubmVsLCAxKSAhPSAwKSB7CisJCQlwcmludGYgKCJFcnJvciBzZXR0aW5nIE11eDogY2hpcDoleCBjaGFubmVsOiBcCisJCQkJJXhcbiIsIG11eC0+Y2hpcCwgbXV4LT5jaGFubmVsKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQltdXggPSBtdXgtPm5leHQ7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmIC8qIENPTkZJR19JMkNfTVVYICovCisKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfaWRlLmMgYi9jb21tb24vY21kX2lkZS5jCmluZGV4IDJmY2FmZjguLjI1NjRjMmIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfaWRlLmMKKysrIGIvY29tbW9uL2NtZF9pZGUuYwpAQCAtOTIsMTAgKzkyLDEwIEBACiAKIHN0YXRpYyBwaW9fY29uZmlnX3QgcGlvX2NvbmZpZ19jbGsgW0lERV9NQVhfUElPX01PREUrMV07CiAKLSNpZm5kZWYJQ0ZHX1BJT19NT0RFCi0jZGVmaW5lCUNGR19QSU9fTU9ERQkwCQkvKiB1c2UgYSByZWxheGVkIGRlZmF1bHQgKi8KKyNpZm5kZWYJQ09ORklHX1NZU19QSU9fTU9ERQorI2RlZmluZQlDT05GSUdfU1lTX1BJT19NT0RFCTAJCS8qIHVzZSBhIHJlbGF4ZWQgZGVmYXVsdCAqLwogI2VuZGlmCi1zdGF0aWMgaW50IHBpb19tb2RlID0gQ0ZHX1BJT19NT0RFOworc3RhdGljIGludCBwaW9fbW9kZSA9IENPTkZJR19TWVNfUElPX01PREU7CiAKIC8qIE1ha2UgY2xvY2sgY3ljbGVzIGFuZCBhbHdheXMgcm91bmQgdXAgKi8KIApAQCAtMTA5LDIzICsxMDksMjMgQEAKIHN0YXRpYyBpbnQgY3Vycl9kZXZpY2UgPSAtMTsKIAogLyogQ3VycmVudCBvZmZzZXQgZm9yIElERTAgLyBJREUxIGJ1cyBhY2Nlc3MJKi8KLXVsb25nIGlkZV9idXNfb2Zmc2V0W0NGR19JREVfTUFYQlVTXSA9IHsKLSNpZiBkZWZpbmVkKENGR19BVEFfSURFMF9PRkZTRVQpCi0JQ0ZHX0FUQV9JREUwX09GRlNFVCwKK3Vsb25nIGlkZV9idXNfb2Zmc2V0W0NPTkZJR19TWVNfSURFX01BWEJVU10gPSB7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCkKKwlDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCwKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0FUQV9JREUxX09GRlNFVCkgJiYgKENGR19JREVfTUFYQlVTID4gMSkKLQlDRkdfQVRBX0lERTFfT0ZGU0VULAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQpICYmIChDT05GSUdfU1lTX0lERV9NQVhCVVMgPiAxKQorCUNPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VULAogI2VuZGlmCiB9OwogCiAKICNpZm5kZWYgQ09ORklHX0FNSUdBT05FRzNTRQotc3RhdGljIGludCBpZGVfYnVzX29rW0NGR19JREVfTUFYQlVTXTsKK3N0YXRpYyBpbnQgaWRlX2J1c19va1tDT05GSUdfU1lTX0lERV9NQVhCVVNdOwogI2Vsc2UKLXN0YXRpYyBpbnQgaWRlX2J1c19va1tDRkdfSURFX01BWEJVU10gPSB7MCx9Oworc3RhdGljIGludCBpZGVfYnVzX29rW0NPTkZJR19TWVNfSURFX01BWEJVU10gPSB7MCx9OwogI2VuZGlmCiAKLWJsb2NrX2Rldl9kZXNjX3QgaWRlX2Rldl9kZXNjW0NGR19JREVfTUFYREVWSUNFXTsKK2Jsb2NrX2Rldl9kZXNjX3QgaWRlX2Rldl9kZXNjW0NPTkZJR19TWVNfSURFX01BWERFVklDRV07CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICNpZmRlZiBDT05GSUdfSURFX0xFRApAQCAtMTY1LDggKzE2NSw4IEBACiBzdGF0aWMgdm9pZCBvdXRwdXRfZGF0YShpbnQgZGV2LCB1bG9uZyAqc2VjdF9idWYsIGludCB3b3Jkcyk7CiBzdGF0aWMgdm9pZCBpZGVudF9jcHkgKHVuc2lnbmVkIGNoYXIgKmRlc3QsIHVuc2lnbmVkIGNoYXIgKnNyYywgdW5zaWduZWQgaW50IGxlbik7CiAKLSNpZm5kZWYgQ0ZHX0FUQV9QT1JUX0FERFIKLSNkZWZpbmUgQ0ZHX0FUQV9QT1JUX0FERFIocG9ydCkgKHBvcnQpCisjaWZuZGVmIENPTkZJR19TWVNfQVRBX1BPUlRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9QT1JUX0FERFIocG9ydCkgKHBvcnQpCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19BVEFQSQpAQCAtMjA1LDcgKzIwNSw3IEBACiAKIAkJcHV0YyAoJ1xuJyk7CiAKLQkJZm9yIChpPTA7IGk8Q0ZHX0lERV9NQVhERVZJQ0U7ICsraSkgeworCQlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX0lERV9NQVhERVZJQ0U7ICsraSkgewogCQkJaWYgKGlkZV9kZXZfZGVzY1tpXS50eXBlPT1ERVZfVFlQRV9VTktOT1dOKQogCQkJCWNvbnRpbnVlOyAvKiBsaXN0IG9ubHkga25vd24gZGV2aWNlcyAqLwogCQkJcHJpbnRmICgiSURFIGRldmljZSAlZDogIiwgaSk7CkBAIC0yMTQsNyArMjE0LDcgQEAKIAkJcmV0dXJuIDA7CiAKIAl9IGVsc2UgaWYgKHN0cm5jbXAoYXJndlsxXSwiZGV2IiwzKSA9PSAwKSB7Ci0JCWlmICgoY3Vycl9kZXZpY2UgPCAwKSB8fCAoY3Vycl9kZXZpY2UgPj0gQ0ZHX0lERV9NQVhERVZJQ0UpKSB7CisJCWlmICgoY3Vycl9kZXZpY2UgPCAwKSB8fCAoY3Vycl9kZXZpY2UgPj0gQ09ORklHX1NZU19JREVfTUFYREVWSUNFKSkgewogCQkJcHV0cyAoIlxubm8gSURFIGRldmljZXMgYXZhaWxhYmxlXG4iKTsKIAkJCXJldHVybiAxOwogCQl9CkBAIC0yMjQsNyArMjI0LDcgQEAKIAl9IGVsc2UgaWYgKHN0cm5jbXAoYXJndlsxXSwicGFydCIsNCkgPT0gMCkgewogCQlpbnQgZGV2LCBvazsKIAotCQlmb3IgKG9rPTAsIGRldj0wOyBkZXY8Q0ZHX0lERV9NQVhERVZJQ0U7ICsrZGV2KSB7CisJCWZvciAob2s9MCwgZGV2PTA7IGRldjxDT05GSUdfU1lTX0lERV9NQVhERVZJQ0U7ICsrZGV2KSB7CiAJCQlpZiAoaWRlX2Rldl9kZXNjW2Rldl0ucGFydF90eXBlIT1QQVJUX1RZUEVfVU5LTk9XTikgewogCQkJCSsrb2s7CiAJCQkJaWYgKGRldikKQEAgLTI0NSw3ICsyNDUsNyBAQAogCQlpbnQgZGV2ID0gKGludClzaW1wbGVfc3RydG91bChhcmd2WzJdLCBOVUxMLCAxMCk7CiAKIAkJcHJpbnRmICgiXG5JREUgZGV2aWNlICVkOiAiLCBkZXYpOwotCQlpZiAoZGV2ID49IENGR19JREVfTUFYREVWSUNFKSB7CisJCWlmIChkZXYgPj0gQ09ORklHX1NZU19JREVfTUFYREVWSUNFKSB7CiAJCQlwdXRzICgidW5rbm93biBkZXZpY2VcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTI5Niw3ICsyOTYsNyBAQAogCQl1bG9uZyBhZGRyID0gc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTYpOwogCQl1bG9uZyBjbnQgID0gc2ltcGxlX3N0cnRvdWwoYXJndls0XSwgTlVMTCwgMTYpOwogCQl1bG9uZyBuOwotI2lmZGVmIENGR182NEJJVF9MQkEKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX0xCQQogCQlsYmFpbnRfdCBibGsgID0gc2ltcGxlX3N0cnRvdWxsKGFyZ3ZbM10sIE5VTEwsIDE2KTsKIAogCQlwcmludGYgKCJcbklERSByZWFkOiBkZXZpY2UgJWQgYmxvY2sgIyAlcWQsIGNvdW50ICVsZCAuLi4gIiwKQEAgLTMyNSw3ICszMjUsNyBAQAogCQl1bG9uZyBhZGRyID0gc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTYpOwogCQl1bG9uZyBjbnQgID0gc2ltcGxlX3N0cnRvdWwoYXJndls0XSwgTlVMTCwgMTYpOwogCQl1bG9uZyBuOwotI2lmZGVmIENGR182NEJJVF9MQkEKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX0xCQQogCQlsYmFpbnRfdCBibGsgID0gc2ltcGxlX3N0cnRvdWxsKGFyZ3ZbM10sIE5VTEwsIDE2KTsKIAogCQlwcmludGYgKCJcbklERSB3cml0ZTogZGV2aWNlICVkIGJsb2NrICMgJXFkLCBjb3VudCAlbGQgLi4uICIsCkBAIC0zNzEsNyArMzcxLDcgQEAKIAlzaG93X2Jvb3RfcHJvZ3Jlc3MgKDQxKTsKIAlzd2l0Y2ggKGFyZ2MpIHsKIAljYXNlIDE6Ci0JCWFkZHIgPSBDRkdfTE9BRF9BRERSOworCQlhZGRyID0gQ09ORklHX1NZU19MT0FEX0FERFI7CiAJCWJvb3RfZGV2aWNlID0gZ2V0ZW52ICgiYm9vdGRldmljZSIpOwogCQlicmVhazsKIAljYXNlIDI6CkBAIC01MjUsOCArNTI1LDggQEAKIF9faWRlX291dGIoaW50IGRldiwgaW50IHBvcnQsIHVuc2lnbmVkIGNoYXIgdmFsKQogewogCWRlYnVnICgiaWRlX291dGIgKGRldj0gJWQsIHBvcnQ9IDB4JXgsIHZhbD0gMHglMDJ4KSA6IEAgMHglMDhseFxuIiwKLQkJZGV2LCBwb3J0LCB2YWwsIChBVEFfQ1VSUl9CQVNFKGRldikrQ0ZHX0FUQV9QT1JUX0FERFIocG9ydCkpKTsKLQlvdXRiKHZhbCwgKEFUQV9DVVJSX0JBU0UoZGV2KStDRkdfQVRBX1BPUlRfQUREUihwb3J0KSkpOworCQlkZXYsIHBvcnQsIHZhbCwgKEFUQV9DVVJSX0JBU0UoZGV2KStDT05GSUdfU1lTX0FUQV9QT1JUX0FERFIocG9ydCkpKTsKKwlvdXRiKHZhbCwgKEFUQV9DVVJSX0JBU0UoZGV2KStDT05GSUdfU1lTX0FUQV9QT1JUX0FERFIocG9ydCkpKTsKIH0KIHZvaWQgaW5saW5lIGlkZV9vdXRiIChpbnQgZGV2LCBpbnQgcG9ydCwgdW5zaWduZWQgY2hhciB2YWwpCiAJCV9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJfX2lkZV9vdXRiIikpKTsKQEAgLTUzNSw5ICs1MzUsOSBAQAogX19pZGVfaW5iKGludCBkZXYsIGludCBwb3J0KQogewogCXVjaGFyIHZhbDsKLQl2YWwgPSBpbmIoKEFUQV9DVVJSX0JBU0UoZGV2KStDRkdfQVRBX1BPUlRfQUREUihwb3J0KSkpOworCXZhbCA9IGluYigoQVRBX0NVUlJfQkFTRShkZXYpK0NPTkZJR19TWVNfQVRBX1BPUlRfQUREUihwb3J0KSkpOwogCWRlYnVnICgiaWRlX2luYiAoZGV2PSAlZCwgcG9ydD0gMHgleCkgOiBAIDB4JTA4bHggLT4gMHglMDJ4XG4iLAotCQlkZXYsIHBvcnQsIChBVEFfQ1VSUl9CQVNFKGRldikrQ0ZHX0FUQV9QT1JUX0FERFIocG9ydCkpLCB2YWwpOworCQlkZXYsIHBvcnQsIChBVEFfQ1VSUl9CQVNFKGRldikrQ09ORklHX1NZU19BVEFfUE9SVF9BRERSKHBvcnQpKSwgdmFsKTsKIAlyZXR1cm4gdmFsOwogfQogdW5zaWduZWQgY2hhciBpbmxpbmUgaWRlX2luYihpbnQgZGV2LCBpbnQgcG9ydCkKQEAgLTU1Nyw3ICs1NTcsNyBAQAogewogCiAjaWZkZWYgQ09ORklHX0lERV84eHhfRElSRUNUCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHBjbWNvbmY4eHhfdCAqcGNtcCA9ICYoaW1tci0+aW1fcGNtY2lhKTsKICNlbmRpZgogCXVuc2lnbmVkIGNoYXIgYzsKQEAgLTYzOSwxNyArNjM5LDE3IEBACiAJICogQWNjb3JkaW5nIHRvIHNwZWMsIHRoaXMgY2FuIHRha2UgdXAgdG8gMzEgc2Vjb25kcyEKIAkgKi8KICNpZm5kZWYgQ09ORklHX0FNSUdBT05FRzNTRQotCWZvciAoYnVzPTA7IGJ1czxDRkdfSURFX01BWEJVUzsgKytidXMpIHsKLQkJaW50IGRldiA9IGJ1cyAqIChDRkdfSURFX01BWERFVklDRSAvIENGR19JREVfTUFYQlVTKTsKKwlmb3IgKGJ1cz0wOyBidXM8Q09ORklHX1NZU19JREVfTUFYQlVTOyArK2J1cykgeworCQlpbnQgZGV2ID0gYnVzICogKENPTkZJR19TWVNfSURFX01BWERFVklDRSAvIENPTkZJR19TWVNfSURFX01BWEJVUyk7CiAjZWxzZQogCXMgPSBnZXRlbnYoImlkZV9tYXhidXMiKTsKIAlpZiAocykKIAkJbWF4X2J1c19zY2FuID0gc2ltcGxlX3N0cnRvbChzLCBOVUxMLCAxMCk7CiAJZWxzZQotCQltYXhfYnVzX3NjYW4gPSBDRkdfSURFX01BWEJVUzsKKwkJbWF4X2J1c19zY2FuID0gQ09ORklHX1NZU19JREVfTUFYQlVTOwogCiAJZm9yIChidXM9MDsgYnVzPG1heF9idXNfc2NhbjsgKytidXMpIHsKLQkJaW50IGRldiA9IGJ1cyAqIChDRkdfSURFX01BWERFVklDRSAvIG1heF9idXNfc2Nhbik7CisJCWludCBkZXYgPSBidXMgKiAoQ09ORklHX1NZU19JREVfTUFYREVWSUNFIC8gbWF4X2J1c19zY2FuKTsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0lERV84eHhfUENDQVJECkBAIC03MjIsNyArNzIyLDcgQEAKIAlpZGVfbGVkICgoTEVEX0lERTEgfCBMRURfSURFMiksIDApOwkvKiBMRUQncyBvZmYJKi8KIAogCWN1cnJfZGV2aWNlID0gLTE7Ci0JZm9yIChpPTA7IGk8Q0ZHX0lERV9NQVhERVZJQ0U7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfSURFX01BWERFVklDRTsgKytpKSB7CiAjaWZkZWYgQ09ORklHX0lERV9MRUQKIAkJaW50IGxlZCA9IChJREVfQlVTKGkpID09IDApID8gTEVEX0lERTEgOiBMRURfSURFMjsKICNlbmRpZgpAQCAtNzUzLDcgKzc1Myw3IEBACiAKIGJsb2NrX2Rldl9kZXNjX3QgKiBpZGVfZ2V0X2RldihpbnQgZGV2KQogewotCXJldHVybiAoZGV2IDwgQ0ZHX0lERV9NQVhERVZJQ0UpID8gJmlkZV9kZXZfZGVzY1tkZXZdIDogTlVMTDsKKwlyZXR1cm4gKGRldiA8IENPTkZJR19TWVNfSURFX01BWERFVklDRSkgPyAmaWRlX2Rldl9kZXNjW2Rldl0gOiBOVUxMOwogfQogCiAKQEAgLTc2Miw3ICs3NjIsNyBAQAogc3RhdGljIHZvaWQKIHNldF9wY21jaWFfdGltaW5nIChpbnQgcG1vZGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHBjbWNvbmY4eHhfdCAqcGNtcCA9ICYoaW1tci0+aW1fcGNtY2lhKTsKIAl1bG9uZyB0aW1pbmdzOwogCkBAIC03NzUsMzMgKzc3NSwzMyBAQAogCiAJLyogSURFIDAKIAkgKi8KLQlwY21wLT5wY21jX3BicjAgPSBDRkdfUENNQ0lBX1BCUjA7Ci0JcGNtcC0+cGNtY19wb3IwID0gQ0ZHX1BDTUNJQV9QT1IwCi0jaWYgKENGR19QQ01DSUFfUE9SMCAhPSAwKQorCXBjbXAtPnBjbWNfcGJyMCA9IENPTkZJR19TWVNfUENNQ0lBX1BCUjA7CisJcGNtcC0+cGNtY19wb3IwID0gQ09ORklHX1NZU19QQ01DSUFfUE9SMAorI2lmIChDT05GSUdfU1lTX1BDTUNJQV9QT1IwICE9IDApCiAJCQl8IHRpbWluZ3MKICNlbmRpZgogCQkJOwogCWRlYnVnICgiUEJSMDogJTA4eCAgUE9SMDogJTA4eFxuIiwgcGNtcC0+cGNtY19wYnIwLCBwY21wLT5wY21jX3BvcjApOwogCi0JcGNtcC0+cGNtY19wYnIxID0gQ0ZHX1BDTUNJQV9QQlIxOwotCXBjbXAtPnBjbWNfcG9yMSA9IENGR19QQ01DSUFfUE9SMQotI2lmIChDRkdfUENNQ0lBX1BPUjEgIT0gMCkKKwlwY21wLT5wY21jX3BicjEgPSBDT05GSUdfU1lTX1BDTUNJQV9QQlIxOworCXBjbXAtPnBjbWNfcG9yMSA9IENPTkZJR19TWVNfUENNQ0lBX1BPUjEKKyNpZiAoQ09ORklHX1NZU19QQ01DSUFfUE9SMSAhPSAwKQogCQkJfCB0aW1pbmdzCiAjZW5kaWYKIAkJCTsKIAlkZWJ1ZyAoIlBCUjE6ICUwOHggIFBPUjE6ICUwOHhcbiIsIHBjbXAtPnBjbWNfcGJyMSwgcGNtcC0+cGNtY19wb3IxKTsKIAotCXBjbXAtPnBjbWNfcGJyMiA9IENGR19QQ01DSUFfUEJSMjsKLQlwY21wLT5wY21jX3BvcjIgPSBDRkdfUENNQ0lBX1BPUjIKLSNpZiAoQ0ZHX1BDTUNJQV9QT1IyICE9IDApCisJcGNtcC0+cGNtY19wYnIyID0gQ09ORklHX1NZU19QQ01DSUFfUEJSMjsKKwlwY21wLT5wY21jX3BvcjIgPSBDT05GSUdfU1lTX1BDTUNJQV9QT1IyCisjaWYgKENPTkZJR19TWVNfUENNQ0lBX1BPUjIgIT0gMCkKIAkJCXwgdGltaW5ncwogI2VuZGlmCiAJCQk7CiAJZGVidWcgKCJQQlIyOiAlMDh4ICBQT1IyOiAlMDh4XG4iLCBwY21wLT5wY21jX3BicjIsIHBjbXAtPnBjbWNfcG9yMik7CiAKLQlwY21wLT5wY21jX3BicjMgPSBDRkdfUENNQ0lBX1BCUjM7Ci0JcGNtcC0+cGNtY19wb3IzID0gQ0ZHX1BDTUNJQV9QT1IzCi0jaWYgKENGR19QQ01DSUFfUE9SMyAhPSAwKQorCXBjbXAtPnBjbWNfcGJyMyA9IENPTkZJR19TWVNfUENNQ0lBX1BCUjM7CisJcGNtcC0+cGNtY19wb3IzID0gQ09ORklHX1NZU19QQ01DSUFfUE9SMworI2lmIChDT05GSUdfU1lTX1BDTUNJQV9QT1IzICE9IDApCiAJCQl8IHRpbWluZ3MKICNlbmRpZgogCQkJOwpAQCAtODA5LDMzICs4MDksMzMgQEAKIAogCS8qIElERSAxCiAJICovCi0JcGNtcC0+cGNtY19wYnI0ID0gQ0ZHX1BDTUNJQV9QQlI0OwotCXBjbXAtPnBjbWNfcG9yNCA9IENGR19QQ01DSUFfUE9SNAotI2lmIChDRkdfUENNQ0lBX1BPUjQgIT0gMCkKKwlwY21wLT5wY21jX3BicjQgPSBDT05GSUdfU1lTX1BDTUNJQV9QQlI0OworCXBjbXAtPnBjbWNfcG9yNCA9IENPTkZJR19TWVNfUENNQ0lBX1BPUjQKKyNpZiAoQ09ORklHX1NZU19QQ01DSUFfUE9SNCAhPSAwKQogCQkJfCB0aW1pbmdzCiAjZW5kaWYKIAkJCTsKIAlkZWJ1ZyAoIlBCUjQ6ICUwOHggIFBPUjQ6ICUwOHhcbiIsIHBjbXAtPnBjbWNfcGJyNCwgcGNtcC0+cGNtY19wb3I0KTsKIAotCXBjbXAtPnBjbWNfcGJyNSA9IENGR19QQ01DSUFfUEJSNTsKLQlwY21wLT5wY21jX3BvcjUgPSBDRkdfUENNQ0lBX1BPUjUKLSNpZiAoQ0ZHX1BDTUNJQV9QT1I1ICE9IDApCisJcGNtcC0+cGNtY19wYnI1ID0gQ09ORklHX1NZU19QQ01DSUFfUEJSNTsKKwlwY21wLT5wY21jX3BvcjUgPSBDT05GSUdfU1lTX1BDTUNJQV9QT1I1CisjaWYgKENPTkZJR19TWVNfUENNQ0lBX1BPUjUgIT0gMCkKIAkJCXwgdGltaW5ncwogI2VuZGlmCiAJCQk7CiAJZGVidWcgKCJQQlI1OiAlMDh4ICBQT1I1OiAlMDh4XG4iLCBwY21wLT5wY21jX3BicjUsIHBjbXAtPnBjbWNfcG9yNSk7CiAKLQlwY21wLT5wY21jX3BicjYgPSBDRkdfUENNQ0lBX1BCUjY7Ci0JcGNtcC0+cGNtY19wb3I2ID0gQ0ZHX1BDTUNJQV9QT1I2Ci0jaWYgKENGR19QQ01DSUFfUE9SNiAhPSAwKQorCXBjbXAtPnBjbWNfcGJyNiA9IENPTkZJR19TWVNfUENNQ0lBX1BCUjY7CisJcGNtcC0+cGNtY19wb3I2ID0gQ09ORklHX1NZU19QQ01DSUFfUE9SNgorI2lmIChDT05GSUdfU1lTX1BDTUNJQV9QT1I2ICE9IDApCiAJCQl8IHRpbWluZ3MKICNlbmRpZgogCQkJOwogCWRlYnVnICgiUEJSNjogJTA4eCAgUE9SNjogJTA4eFxuIiwgcGNtcC0+cGNtY19wYnI2LCBwY21wLT5wY21jX3BvcjYpOwogCi0JcGNtcC0+cGNtY19wYnI3ID0gQ0ZHX1BDTUNJQV9QQlI3OwotCXBjbXAtPnBjbWNfcG9yNyA9IENGR19QQ01DSUFfUE9SNwotI2lmIChDRkdfUENNQ0lBX1BPUjcgIT0gMCkKKwlwY21wLT5wY21jX3BicjcgPSBDT05GSUdfU1lTX1BDTUNJQV9QQlI3OworCXBjbXAtPnBjbWNfcG9yNyA9IENPTkZJR19TWVNfUENNQ0lBX1BPUjcKKyNpZiAoQ09ORklHX1NZU19QQ01DSUFfUE9SNyAhPSAwKQogCQkJfCB0aW1pbmdzCiAjZW5kaWYKIAkJCTsKQEAgLTEwNzksNyArMTA3OSw3IEBACiAJaWYgKHMpIHsKIAkJbWF4X2J1c19zY2FuID0gc2ltcGxlX3N0cnRvbChzLCBOVUxMLCAxMCk7CiAJfSBlbHNlIHsKLQkJbWF4X2J1c19zY2FuID0gQ0ZHX0lERV9NQVhCVVM7CisJCW1heF9idXNfc2NhbiA9IENPTkZJR19TWVNfSURFX01BWEJVUzsKIAl9CiAJaWYgKGRldmljZSA+PSBtYXhfYnVzX3NjYW4qMikgewogCQlkZXZfZGVzYy0+dHlwZT1ERVZfVFlQRV9VTktOT1dOOwpAQCAtMTM1OSw3ICsxMzU5LDcgQEAKIAkJCS8qIHdyaXRlIGhpZ2ggYml0cyAqLwogCQkJaWRlX291dGIgKGRldmljZSwgQVRBX1NFQ1RfQ05ULCAwKTsKIAkJCWlkZV9vdXRiIChkZXZpY2UsIEFUQV9MQkFfTE9XLAkoYmxrbnIgPj4gMjQpICYgMHhGRik7Ci0jaWZkZWYgQ0ZHXzY0QklUX0xCQQorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfTEJBCiAJCQlpZGVfb3V0YiAoZGV2aWNlLCBBVEFfTEJBX01JRCwJKGJsa25yID4+IDMyKSAmIDB4RkYpOwogCQkJaWRlX291dGIgKGRldmljZSwgQVRBX0xCQV9ISUdILCAoYmxrbnIgPj4gNDApICYgMHhGRik7CiAjZWxzZQpAQCAtMTM5Nyw3ICsxMzk3LDcgQEAKIAkJfQogCiAJCWlmICgoYyYoQVRBX1NUQVRfRFJRfEFUQV9TVEFUX0JVU1l8QVRBX1NUQVRfRVJSKSkgIT0gQVRBX1NUQVRfRFJRKSB7Ci0jaWYgZGVmaW5lZChDRkdfNjRCSVRfTEJBKSAmJiBkZWZpbmVkKENGR182NEJJVF9WU1BSSU5URikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfNjRCSVRfTEJBKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYpCiAJCQlwcmludGYgKCJFcnJvciAobm8gSVJRKSBkZXYgJWQgYmxrICVxZDogc3RhdHVzIDB4JTAyeFxuIiwKIAkJCQlkZXZpY2UsIGJsa25yLCBjKTsKICNlbHNlCkBAIC0xNDU0LDcgKzE0NTQsNyBAQAogCQkJLyogd3JpdGUgaGlnaCBiaXRzICovCiAJCQlpZGVfb3V0YiAoZGV2aWNlLCBBVEFfU0VDVF9DTlQsIDApOwogCQkJaWRlX291dGIgKGRldmljZSwgQVRBX0xCQV9MT1csCShibGtuciA+PiAyNCkgJiAweEZGKTsKLSNpZmRlZiBDRkdfNjRCSVRfTEJBCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9MQkEKIAkJCWlkZV9vdXRiIChkZXZpY2UsIEFUQV9MQkFfTUlELAkoYmxrbnIgPj4gMzIpICYgMHhGRik7CiAJCQlpZGVfb3V0YiAoZGV2aWNlLCBBVEFfTEJBX0hJR0gsIChibGtuciA+PiA0MCkgJiAweEZGKTsKICNlbHNlCkBAIC0xNDg3LDcgKzE0ODcsNyBAQAogCQljID0gaWRlX3dhaXQgKGRldmljZSwgSURFX1RJTUVfT1VUKTsJLyogY2FuJ3QgdGFrZSBvdmVyIDUwMCBtcyAqLwogCiAJCWlmICgoYyYoQVRBX1NUQVRfRFJRfEFUQV9TVEFUX0JVU1l8QVRBX1NUQVRfRVJSKSkgIT0gQVRBX1NUQVRfRFJRKSB7Ci0jaWYgZGVmaW5lZChDRkdfNjRCSVRfTEJBKSAmJiBkZWZpbmVkKENGR182NEJJVF9WU1BSSU5URikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfNjRCSVRfTEJBKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYpCiAJCQlwcmludGYgKCJFcnJvciAobm8gSVJRKSBkZXYgJWQgYmxrICVxZDogc3RhdHVzIDB4JTAyeFxuIiwKIAkJCQlkZXZpY2UsIGJsa25yLCBjKTsKICNlbHNlCkBAIC0xNTY3LDE1ICsxNTY3LDE1IEBACiAKIHN0YXRpYyB2b2lkIGlkZV9yZXNldCAodm9pZCkKIHsKLSNpZiBkZWZpbmVkKENGR19QQl8xMlZfRU5BQkxFKSB8fCBkZWZpbmVkKENGR19QQl9JREVfTU9UT1IpCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1BCXzEyVl9FTkFCTEUpIHx8IGRlZmluZWQoQ09ORklHX1NZU19QQl9JREVfTU9UT1IpCisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogI2VuZGlmCiAJaW50IGk7CiAKIAljdXJyX2RldmljZSA9IC0xOwotCWZvciAoaT0wOyBpPENGR19JREVfTUFYQlVTOyArK2kpCisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19JREVfTUFYQlVTOyArK2kpCiAJCWlkZV9idXNfb2tbaV0gPSAwOwotCWZvciAoaT0wOyBpPENGR19JREVfTUFYREVWSUNFOyArK2kpCisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19JREVfTUFYREVWSUNFOyArK2kpCiAJCWlkZV9kZXZfZGVzY1tpXS50eXBlID0gREVWX1RZUEVfVU5LTk9XTjsKIAogCWlkZV9zZXRfcmVzZXQgKDEpOyAvKiBhc3NlcnQgcmVzZXQgKi8KQEAgLTE1ODUsMTEgKzE1ODUsMTEgQEAKIAogCVdBVENIRE9HX1JFU0VUKCk7CiAKLSNpZmRlZiBDRkdfUEJfMTJWX0VOQUJMRQotCWltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+KENGR19QQl8xMlZfRU5BQkxFKTsJLyogMTJWIEVuYWJsZSBvdXRwdXQgT0ZGICovCi0JaW1tci0+aW1fY3BtLmNwX3BicGFyICY9IH4oQ0ZHX1BCXzEyVl9FTkFCTEUpOwotCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENGR19QQl8xMlZfRU5BQkxFKTsKLQlpbW1yLT5pbV9jcG0uY3BfcGJkaXIgfD0gICBDRkdfUEJfMTJWX0VOQUJMRTsKKyNpZmRlZiBDT05GSUdfU1lTX1BCXzEyVl9FTkFCTEUKKwlpbW1yLT5pbV9jcG0uY3BfcGJkYXQgJj0gfihDT05GSUdfU1lTX1BCXzEyVl9FTkFCTEUpOwkvKiAxMlYgRW5hYmxlIG91dHB1dCBPRkYgKi8KKwlpbW1yLT5pbV9jcG0uY3BfcGJwYXIgJj0gfihDT05GSUdfU1lTX1BCXzEyVl9FTkFCTEUpOworCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENPTkZJR19TWVNfUEJfMTJWX0VOQUJMRSk7CisJaW1tci0+aW1fY3BtLmNwX3BiZGlyIHw9ICAgQ09ORklHX1NZU19QQl8xMlZfRU5BQkxFOwogCiAJLyogd2FpdCA1MDAgbXMgZm9yIHRoZSB2b2x0YWdlIHRvIHN0YWJpbGl6ZQogCSAqLwpAQCAtMTU5NywxOSArMTU5NywxOSBAQAogCQl1ZGVsYXkgKDEwMDApOwogCX0KIAotCWltbXItPmltX2NwbS5jcF9wYmRhdCB8PSAgIENGR19QQl8xMlZfRU5BQkxFOwkvKiAxMlYgRW5hYmxlIG91dHB1dCBPTiAqLwotI2VuZGlmCS8qIENGR19QQl8xMlZfRU5BQkxFICovCisJaW1tci0+aW1fY3BtLmNwX3BiZGF0IHw9ICAgQ09ORklHX1NZU19QQl8xMlZfRU5BQkxFOwkvKiAxMlYgRW5hYmxlIG91dHB1dCBPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfUEJfMTJWX0VOQUJMRSAqLwogCi0jaWZkZWYgQ0ZHX1BCX0lERV9NT1RPUgorI2lmZGVmIENPTkZJR19TWVNfUEJfSURFX01PVE9SCiAJLyogY29uZmlndXJlIElERSBNb3RvciB2b2x0YWdlIG1vbml0b3IgcGluIGFzIGlucHV0ICovCi0JaW1tci0+aW1fY3BtLmNwX3BicGFyICY9IH4oQ0ZHX1BCX0lERV9NT1RPUik7Ci0JaW1tci0+aW1fY3BtLmNwX3Bib2RyICY9IH4oQ0ZHX1BCX0lERV9NT1RPUik7Ci0JaW1tci0+aW1fY3BtLmNwX3BiZGlyICY9IH4oQ0ZHX1BCX0lERV9NT1RPUik7CisJaW1tci0+aW1fY3BtLmNwX3BicGFyICY9IH4oQ09ORklHX1NZU19QQl9JREVfTU9UT1IpOworCWltbXItPmltX2NwbS5jcF9wYm9kciAmPSB+KENPTkZJR19TWVNfUEJfSURFX01PVE9SKTsKKwlpbW1yLT5pbV9jcG0uY3BfcGJkaXIgJj0gfihDT05GSUdfU1lTX1BCX0lERV9NT1RPUik7CiAKIAkvKiB3YWl0IHVwIHRvIDEgcyBmb3IgdGhlIG1vdG9yIHZvbHRhZ2UgdG8gc3RhYmlsaXplCiAJICovCiAJZm9yIChpPTA7IGk8MTAwMDsgKytpKSB7Ci0JCWlmICgoaW1tci0+aW1fY3BtLmNwX3BiZGF0ICYgQ0ZHX1BCX0lERV9NT1RPUikgIT0gMCkgeworCQlpZiAoKGltbXItPmltX2NwbS5jcF9wYmRhdCAmIENPTkZJR19TWVNfUEJfSURFX01PVE9SKSAhPSAwKSB7CiAJCQlicmVhazsKIAkJfQogCQl1ZGVsYXkgKDEwMDApOwpAQCAtMTYyNiw3ICsxNjI2LDcgQEAKICMgIGVuZGlmCiAjIGVuZGlmCS8qIENPTkZJR19TVEFUVVNfTEVEICovCiAJfQotI2VuZGlmCS8qIENGR19QQl9JREVfTU9UT1IgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX1BCX0lERV9NT1RPUiAqLwogCiAJV0FUQ0hET0dfUkVTRVQoKTsKIApkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9pbW1hcC5jIGIvY29tbW9uL2NtZF9pbW1hcC5jCmluZGV4IGQ3NTgyNjkuLjEzYWQ5NGUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfaW1tYXAuYworKysgYi9jb21tb24vY21kX2ltbWFwLmMKQEAgLTUyLDcgKzUyLDcgQEAKIGludAogZG9fc2l1aW5mbyAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmIGRlZmluZWQoQ09ORklHXzh4eCkKIAl2b2xhdGlsZSBzeXNjb25mOHh4X3QgKnNjID0gJmltbWFwLT5pbV9zaXVfY29uZjsKQEAgLTgzLDcgKzgzLDcgQEAKIGludAogZG9fbWVtY2luZm8gKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwpAQCAtMTUxLDcgKzE1MSw3IEBACiBpbnQKIGRvX2NhcmluZm8gKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAJdm9sYXRpbGUgY2FyOHh4X3QgKmNhciA9ICZpbW1hcC0+aW1fY2xrcnN0OwpAQCAtMjM1LDcgKzIzNSw3IEBACiBpbnQKIGRvX2lvcGluZm8gKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcCA9ICZpbW1hcC0+aW1faW9wb3J0OwpAQCAtNTAwLDcgKzUwMCw3IEBACiBpbnQKIGRvX2JyZ2luZm8gKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gJmltbWFwLT5pbV9jcG07CkBAIC01MjQsNyArNTI0LDcgQEAKIGludAogZG9faTJjaW5mbyAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmIGRlZmluZWQoQ09ORklHXzh4eCkKIAl2b2xhdGlsZSBpMmM4eHhfdCAqaTJjID0gJmltbWFwLT5pbV9pMmM7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX2pmZnMyLmMgYi9jb21tb24vY21kX2pmZnMyLmMKaW5kZXggYzY5MjBjOS4uNzkxYTU3MiAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9qZmZzMi5jCisrKyBiL2NvbW1vbi9jbWRfamZmczIuYwpAQCAtNzcyLDcgKzc3Miw3IEBACiB7CiAJaWYgKHR5cGUgPT0gTVREX0RFVl9UWVBFX05PUikgewogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9GTEFTSCkKLQkJaWYgKG51bSA8IENGR19NQVhfRkxBU0hfQkFOS1MpIHsKKwkJaWYgKG51bSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTKSB7CiAJCQlleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bXTsKIAkJCSpzaXplID0gZmxhc2hfaW5mb1tudW1dLnNpemU7CiAKQEAgLTc4MCwyNCArNzgwLDI0IEBACiAJCX0KIAogCQlwcmludGYoIm5vIHN1Y2ggRkxBU0ggZGV2aWNlOiAlcyVkICh2YWxpZCByYW5nZSAwIC4uLiAlZFxuIiwKLQkJCQlNVERfREVWX1RZUEUodHlwZSksIG51bSwgQ0ZHX01BWF9GTEFTSF9CQU5LUyAtIDEpOworCQkJCU1URF9ERVZfVFlQRSh0eXBlKSwgbnVtLCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAtIDEpOwogI2Vsc2UKIAkJcHJpbnRmKCJzdXBwb3J0IGZvciBGTEFTSCBkZXZpY2VzIG5vdCBwcmVzZW50XG4iKTsKICNlbmRpZgogCX0gZWxzZSBpZiAodHlwZSA9PSBNVERfREVWX1RZUEVfTkFORCkgewogI2lmIGRlZmluZWQoQ09ORklHX0pGRlMyX05BTkQpICYmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQotCQlpZiAobnVtIDwgQ0ZHX01BWF9OQU5EX0RFVklDRSkgeworCQlpZiAobnVtIDwgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UpIHsKICNpZm5kZWYgQ09ORklHX05BTkRfTEVHQUNZCiAJCQkqc2l6ZSA9IG5hbmRfaW5mb1tudW1dLnNpemU7CiAjZWxzZQotCQkJZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDRkdfTUFYX05BTkRfREVWSUNFXTsKKwkJCWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdOwogCQkJKnNpemUgPSBuYW5kX2Rldl9kZXNjW251bV0udG90bGVuOwogI2VuZGlmCiAJCQlyZXR1cm4gMDsKIAkJfQogCiAJCXByaW50Zigibm8gc3VjaCBOQU5EIGRldmljZTogJXMlZCAodmFsaWQgcmFuZ2UgMCAuLi4gJWQpXG4iLAotCQkJCU1URF9ERVZfVFlQRSh0eXBlKSwgbnVtLCBDRkdfTUFYX05BTkRfREVWSUNFIC0gMSk7CisJCQkJTVREX0RFVl9UWVBFKHR5cGUpLCBudW0sIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFIC0gMSk7CiAjZWxzZQogCQlwcmludGYoInN1cHBvcnQgZm9yIE5BTkQgZGV2aWNlcyBub3QgcHJlc2VudFxuIik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfbG9hZC5jIGIvY29tbW9uL2NtZF9sb2FkLmMKaW5kZXggMTM1MWZlMi4uNjVhNGQ2OSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9sb2FkLmMKKysrIGIvY29tbW9uL2NtZF9sb2FkLmMKQEAgLTU4LDcgKzU4LDcgQEAKIAlpbnQgaTsKIAljaGFyICplbnZfZWNobzsKIAlpbnQgcmNvZGUgPSAwOwotI2lmZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQorI2lmZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UKIAlpbnQgbG9hZF9iYXVkcmF0ZSwgY3VycmVudF9iYXVkcmF0ZTsKIAogCWxvYWRfYmF1ZHJhdGUgPSBjdXJyZW50X2JhdWRyYXRlID0gZ2QtPmJhdWRyYXRlOwpAQCAtNzAsNyArNzAsNyBAQAogCQlkb19lY2hvID0gMDsKIAl9CiAKLSNpZmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyNpZmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAJaWYgKGFyZ2MgPj0gMikgewogCQlvZmZzZXQgPSBzaW1wbGVfc3RydG9sKGFyZ3ZbMV0sIE5VTEwsIDE2KTsKIAl9CkBAIC05MywxMSArOTMsMTEgQEAKIAkJCQlicmVhazsKIAkJfQogCX0KLSNlbHNlCS8qICEgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFICovCisjZWxzZQkvKiAhIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UgKi8KIAlpZiAoYXJnYyA9PSAyKSB7CiAJCW9mZnNldCA9IHNpbXBsZV9zdHJ0b2woYXJndlsxXSwgTlVMTCwgMTYpOwogCX0KLSNlbmRpZgkvKiBDRkdfTE9BRFNfQkFVRF9DSEFOR0UgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICovCiAKIAlwcmludGYgKCIjIyBSZWFkeSBmb3IgUy1SZWNvcmQgZG93bmxvYWQgLi4uXG4iKTsKIApAQCAtMTIzLDcgKzEyMyw3IEBACiAJCWxvYWRfYWRkciA9IGFkZHI7CiAJfQogCi0jaWZkZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjaWZkZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCWlmIChsb2FkX2JhdWRyYXRlICE9IGN1cnJlbnRfYmF1ZHJhdGUpIHsKIAkJcHJpbnRmICgiIyMgU3dpdGNoIGJhdWRyYXRlIHRvICVkIGJwcyBhbmQgcHJlc3MgRVNDIC4uLlxuIiwKIAkJCWN1cnJlbnRfYmF1ZHJhdGUpOwpAQCAtMTY3LDcgKzE2Nyw3IEBACiAJCWNhc2UgU1JFQ19EQVRBMzoKIAkJY2FzZSBTUkVDX0RBVEE0OgogCQkgICAgc3RvcmVfYWRkciA9IGFkZHIgKyBvZmZzZXQ7Ci0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJCSAgICBpZiAoYWRkcjJpbmZvKHN0b3JlX2FkZHIpKSB7CiAJCQlpbnQgcmM7CiAKQEAgLTI1OSw3ICsyNTksNyBAQAogewogCXVsb25nIG9mZnNldCA9IDA7CiAJdWxvbmcgc2l6ZSAgID0gMDsKLSNpZmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyNpZmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAJaW50IHNhdmVfYmF1ZHJhdGUsIGN1cnJlbnRfYmF1ZHJhdGU7CiAKIAlzYXZlX2JhdWRyYXRlID0gY3VycmVudF9iYXVkcmF0ZSA9IGdkLT5iYXVkcmF0ZTsKQEAgLTI2OCw3ICsyNjgsNyBAQAogCWlmIChhcmdjID49IDIpIHsKIAkJb2Zmc2V0ID0gc2ltcGxlX3N0cnRvdWwoYXJndlsxXSwgTlVMTCwgMTYpOwogCX0KLSNpZmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyNpZmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAJaWYgKGFyZ2MgPj0gMykgewogCQlzaXplID0gc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTYpOwogCX0KQEAgLTI5MSwxMSArMjkxLDExIEBACiAJCQkJYnJlYWs7CiAJCX0KIAl9Ci0jZWxzZQkvKiAhIENGR19MT0FEU19CQVVEX0NIQU5HRSAqLworI2Vsc2UJLyogISBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICovCiAJaWYgKGFyZ2MgPT0gMykgewogCQlzaXplID0gc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTYpOwogCX0KLSNlbmRpZgkvKiBDRkdfTE9BRFNfQkFVRF9DSEFOR0UgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICovCiAKIAlwcmludGYgKCIjIyBSZWFkeSBmb3IgUy1SZWNvcmQgdXBsb2FkLCBwcmVzcyBFTlRFUiB0byBwcm9jZWVkIC4uLlxuIik7CiAJZm9yICg7OykgewpAQCAtMzA3LDcgKzMwNyw3IEBACiAJfSBlbHNlIHsKIAkJcHJpbnRmICgiIyMgUy1SZWNvcmQgdXBsb2FkIGNvbXBsZXRlXG4iKTsKIAl9Ci0jaWZkZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjaWZkZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCWlmIChzYXZlX2JhdWRyYXRlICE9IGN1cnJlbnRfYmF1ZHJhdGUpIHsKIAkJcHJpbnRmICgiIyMgU3dpdGNoIGJhdWRyYXRlIHRvICVkIGJwcyBhbmQgcHJlc3MgRVNDIC4uLlxuIiwKIAkJCShpbnQpY3VycmVudF9iYXVkcmF0ZSk7CkBAIC00NDEsOCArNDQxLDggQEAKIAlpbnQgcmNvZGUgPSAwOwogCWNoYXIgKnM7CiAKLQkvKiBwcmUtc2V0IG9mZnNldCBmcm9tIENGR19MT0FEX0FERFIgKi8KLQlvZmZzZXQgPSBDRkdfTE9BRF9BRERSOworCS8qIHByZS1zZXQgb2Zmc2V0IGZyb20gQ09ORklHX1NZU19MT0FEX0FERFIgKi8KKwlvZmZzZXQgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAogCS8qIHByZS1zZXQgb2Zmc2V0IGZyb20gJGxvYWRhZGRyICovCiAJaWYgKChzID0gZ2V0ZW52KCJsb2FkYWRkciIpKSAhPSBOVUxMKSB7CkBAIC0xMDAxLDcgKzEwMDEsNyBAQAogCQkJc3RvcmVfYWRkciA9IGFkZHIgKyBvZmZzZXQ7CiAJCQlzaXplICs9IHJlczsKIAkJCWFkZHIgKz0gcmVzOwotI2lmbmRlZiBDRkdfTk9fRkxBU0gKKyNpZm5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogCQkJaWYgKGFkZHIyaW5mbyAoc3RvcmVfYWRkcikpIHsKIAkJCQlpbnQgcmM7CiAKQEAgLTEwNDIsNyArMTA0Miw3IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTE9BRFMpCiAKLSNpZmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyNpZmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiBVX0JPT1RfQ01EKAogCWxvYWRzLCAzLCAwLAlkb19sb2FkX3NlcmlhbCwKIAkibG9hZHMgICAtIGxvYWQgUy1SZWNvcmQgZmlsZSBvdmVyIHNlcmlhbCBsaW5lXG4iLApAQCAtMTA1MSwxNCArMTA1MSwxNCBAQAogCSIgd2l0aCBvZmZzZXQgJ29mZicgYW5kIGJhdWRyYXRlICdiYXVkJ1xuIgogKTsKIAotI2Vsc2UJLyogISBDRkdfTE9BRFNfQkFVRF9DSEFOR0UgKi8KKyNlbHNlCS8qICEgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRSAqLwogVV9CT09UX0NNRCgKIAlsb2FkcywgMiwgMCwJZG9fbG9hZF9zZXJpYWwsCiAJImxvYWRzICAgLSBsb2FkIFMtUmVjb3JkIGZpbGUgb3ZlciBzZXJpYWwgbGluZVxuIiwKIAkiWyBvZmYgXVxuIgogCSIgICAgLSBsb2FkIFMtUmVjb3JkIGZpbGUgb3ZlciBzZXJpYWwgbGluZSB3aXRoIG9mZnNldCAnb2ZmJ1xuIgogKTsKLSNlbmRpZgkvKiBDRkdfTE9BRFNfQkFVRF9DSEFOR0UgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICovCiAKIC8qCiAgKiBTQVZFUyBhbHdheXMgcmVxdWlyZXMgTE9BRFMgc3VwcG9ydCwgYnV0IG5vdCB2aWNlIHZlcnNhCkBAIC0xMDY2LDcgKzEwNjYsNyBAQAogCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfU0FWRVMpCi0jaWZkZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCisjaWZkZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogVV9CT09UX0NNRCgKIAlzYXZlcywgNCwgMCwJZG9fc2F2ZV9zZXJpYWwsCiAJInNhdmVzICAgLSBzYXZlIFMtUmVjb3JkIGZpbGUgb3ZlciBzZXJpYWwgbGluZVxuIiwKQEAgLTEwNzQsMTQgKzEwNzQsMTQgQEAKIAkiICAgIC0gc2F2ZSBTLVJlY29yZCBmaWxlIG92ZXIgc2VyaWFsIGxpbmUiCiAJIiB3aXRoIG9mZnNldCAnb2ZmJywgc2l6ZSAnc2l6ZScgYW5kIGJhdWRyYXRlICdiYXVkJ1xuIgogKTsKLSNlbHNlCS8qICEgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFICovCisjZWxzZQkvKiAhIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UgKi8KIFVfQk9PVF9DTUQoCiAJc2F2ZXMsIDMsIDAsCWRvX3NhdmVfc2VyaWFsLAogCSJzYXZlcyAgIC0gc2F2ZSBTLVJlY29yZCBmaWxlIG92ZXIgc2VyaWFsIGxpbmVcbiIsCiAJIlsgb2ZmIF0gW3NpemVdXG4iCiAJIiAgICAtIHNhdmUgUy1SZWNvcmQgZmlsZSBvdmVyIHNlcmlhbCBsaW5lIHdpdGggb2Zmc2V0ICdvZmYnIGFuZCBzaXplICdzaXplJ1xuIgogKTsKLSNlbmRpZgkvKiBDRkdfTE9BRFNfQkFVRF9DSEFOR0UgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICovCiAjZW5kaWYKICNlbmRpZgogCmRpZmYgLS1naXQgYS9jb21tb24vY21kX2xvZy5jIGIvY29tbW9uL2NtZF9sb2cuYwppbmRleCBmZGNjNTc1Li5mZWJkYjkwIDEwMDY0NAotLS0gYS9jb21tb24vY21kX2xvZy5jCisrKyBiL2NvbW1vbi9jbWRfbG9nLmMKQEAgLTY4LDcgKzY4LDcgQEAKIAogdW5zaWduZWQgbG9uZyBfX2xvZ2J1ZmZlcl9iYXNlKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19TRFJBTV9CQVNFICsgZ2QtPmJkLT5iaV9tZW1zaXplIC0gTE9HQlVGRl9MRU47CisJcmV0dXJuIENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGdkLT5iZC0+YmlfbWVtc2l6ZSAtIExPR0JVRkZfTEVOOwogfQogdW5zaWduZWQgbG9uZyBsb2didWZmZXJfYmFzZSAodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIl9fbG9nYnVmZmVyX2Jhc2UiKSkpOwogCmRpZmYgLS1naXQgYS9jb21tb24vY21kX21lbS5jIGIvY29tbW9uL2NtZF9tZW0uYwppbmRleCAwN2IwOGZiLi5kNzY2NmMyIDEwMDY0NAotLS0gYS9jb21tb24vY21kX21lbS5jCisrKyBiL2NvbW1vbi9jbWRfbWVtLmMKQEAgLTM4Myw3ICszODMsNyBAQAogCQlyZXR1cm4gMTsKIAl9CiAKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAkvKiBjaGVjayBpZiB3ZSBhcmUgY29weWluZyB0byBGbGFzaCAqLwogCWlmICggKGFkZHIyaW5mbyhkZXN0KSAhPSBOVUxMKQogI2lmZGVmIENPTkZJR19IQVNfREFUQUZMQVNICkBAIC00NjMsNyArNDYzLDcgQEAKIAogCS8qIENoZWNrIGlmIHdlIGFyZSBjb3B5aW5nIGZyb20gRGF0YUZsYXNoIHRvIFJBTSAqLwogCWlmIChhZGRyX2RhdGFmbGFzaChhZGRyKSAmJiAhYWRkcl9kYXRhZmxhc2goZGVzdCkKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAkJCQkgJiYgKGFkZHIyaW5mbyhkZXN0KSA9PSBOVUxMKQogI2VuZGlmCiAJICAgKXsKQEAgLTY2Myw3ICs2NjMsNyBAQAogCiAvKgogICogUGVyZm9ybSBhIG1lbW9yeSB0ZXN0LiBBIG1vcmUgY29tcGxldGUgYWx0ZXJuYXRpdmUgdGVzdCBjYW4gYmUKLSAqIGNvbmZpZ3VyZWQgdXNpbmcgQ0ZHX0FMVF9NRU1URVNULiBUaGUgY29tcGxldGUgdGVzdCBsb29wcyB1bnRpbAorICogY29uZmlndXJlZCB1c2luZyBDT05GSUdfU1lTX0FMVF9NRU1URVNULiBUaGUgY29tcGxldGUgdGVzdCBsb29wcyB1bnRpbAogICogaW50ZXJydXB0ZWQgYnkgY3RybC1jIG9yIGJ5IGEgZmFpbHVyZSBvZiBvbmUgb2YgdGhlIHN1Yi10ZXN0cy4KICAqLwogaW50IGRvX21lbV9tdGVzdCAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCkBAIC02NzMsNyArNjczLDcgQEAKIAl1bG9uZwlyZWFkYmFjazsKIAlpbnQgICAgIHJjb2RlID0gMDsKIAotI2lmIGRlZmluZWQoQ0ZHX0FMVF9NRU1URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19BTFRfTUVNVEVTVCkKIAl2dV9sb25nCWxlbjsKIAl2dV9sb25nCW9mZnNldDsKIAl2dV9sb25nCXRlc3Rfb2Zmc2V0OwpAQCAtNjgxLDggKzY4MSw4IEBACiAJdnVfbG9uZwl0ZW1wOwogCXZ1X2xvbmcJYW50aV9wYXR0ZXJuOwogCXZ1X2xvbmcJbnVtX3dvcmRzOwotI2lmIGRlZmluZWQoQ0ZHX01FTVRFU1RfU0NSQVRDSCkKLQl2dV9sb25nICpkdW1teSA9ICh2dV9sb25nKilDRkdfTUVNVEVTVF9TQ1JBVENIOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19NRU1URVNUX1NDUkFUQ0gpCisJdnVfbG9uZyAqZHVtbXkgPSAodnVfbG9uZyopQ09ORklHX1NZU19NRU1URVNUX1NDUkFUQ0g7CiAjZWxzZQogCXZ1X2xvbmcgKmR1bW15ID0gMDsJLyogeWVzLCB0aGlzIGlzIGFkZHJlc3MgMHgwLCBub3QgTlVMTCAqLwogI2VuZGlmCkBAIC03MDcsMTMgKzcwNywxMyBAQAogCWlmIChhcmdjID4gMSkgewogCQlzdGFydCA9ICh1bG9uZyAqKXNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMV0sIE5VTEwsIDE2KTsKIAl9IGVsc2UgewotCQlzdGFydCA9ICh1bG9uZyAqKUNGR19NRU1URVNUX1NUQVJUOworCQlzdGFydCA9ICh1bG9uZyAqKUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVDsKIAl9CiAKIAlpZiAoYXJnYyA+IDIpIHsKIAkJZW5kID0gKHVsb25nICopc2ltcGxlX3N0cnRvdWwoYXJndlsyXSwgTlVMTCwgMTYpOwogCX0gZWxzZSB7Ci0JCWVuZCA9ICh1bG9uZyAqKShDRkdfTUVNVEVTVF9FTkQpOworCQllbmQgPSAodWxvbmcgKikoQ09ORklHX1NZU19NRU1URVNUX0VORCk7CiAJfQogCiAJaWYgKGFyZ2MgPiAzKSB7CkBAIC03MjIsNyArNzIyLDcgQEAKIAkJcGF0dGVybiA9IDA7CiAJfQogCi0jaWYgZGVmaW5lZChDRkdfQUxUX01FTVRFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0FMVF9NRU1URVNUKQogCXByaW50ZiAoIlRlc3RpbmcgJTA4eCAuLi4gJTA4eDpcbiIsICh1aW50KXN0YXJ0LCAodWludCllbmQpOwogCVBSSU5URigiJXM6JWQ6IHN0YXJ0IDB4JXAgZW5kIDB4JXBcbiIsCiAJCV9fRlVOQ1RJT05fXywgX19MSU5FX18sIHN0YXJ0LCBlbmQpOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9taXNjLmMgYi9jb21tb24vY21kX21pc2MuYwppbmRleCAxMjZiNTM4Li4zZWE4ZWUwIDEwMDY0NAotLS0gYS9jb21tb24vY21kX21pc2MuYworKysgYi9jb21tb24vY21kX21pc2MuYwpAQCAtMzcsNyArMzcsNyBAQAogCQlyZXR1cm4gMTsKIAl9CiAKLQlkZWxheSA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMV0sIE5VTEwsIDEwKSAqIENGR19IWjsKKwlkZWxheSA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMV0sIE5VTEwsIDEwKSAqIENPTkZJR19TWVNfSFo7CiAKIAl3aGlsZSAoZ2V0X3RpbWVyKHN0YXJ0KSA8IGRlbGF5KSB7CiAJCWlmIChjdHJsYyAoKSkgewpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9tcC5jIGIvY29tbW9uL2NtZF9tcC5jCmluZGV4IGM4NDQ0ZmIuLmYzYTdmNDkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfbXAuYworKysgYi9jb21tb24vY21kX21wLmMKQEAgLTgyLDcgKzgyLDcgQEAKICNlbmRpZgogCiBVX0JPT1RfQ01EKAotCWNwdSwgQ0ZHX01BWEFSR1MsIDEsIGNwdV9jbWQsCisJY3B1LCBDT05GSUdfU1lTX01BWEFSR1MsIDEsIGNwdV9jbWQsCiAJImNwdSAgICAgLSBNdWx0aXByb2Nlc3NvciBDUFUgYm9vdCBtYW5pcHVsYXRpb24gYW5kIHJlbGVhc2VcbiIsCiAJICAgICI8bnVtPiByZXNldCAgICAgICAgICAgICAgICAgLSBSZXNldCBjcHUgPG51bT5cbiIKIAkiY3B1IDxudW0+IHN0YXR1cyAgICAgICAgICAgICAgICAtIFN0YXR1cyBvZiBjcHUgPG51bT5cbiIKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfbmFuZC5jIGIvY29tbW9uL2NtZF9uYW5kLmMKaW5kZXggYjk0YTJiZi4uZWE0M2Y0ZiAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9uYW5kLmMKKysrIGIvY29tbW9uL2NtZF9uYW5kLmMKQEAgLTE3MSw4ICsxNzEsOCBAQAogCXNpemVfdCBzaXplOwogCWNoYXIgKmNtZCwgKnM7CiAJbmFuZF9pbmZvX3QgKm5hbmQ7Ci0jaWZkZWYgQ0ZHX05BTkRfUVVJRVQKLQlpbnQgcXVpZXQgPSBDRkdfTkFORF9RVUlFVDsKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfUVVJRVQKKwlpbnQgcXVpZXQgPSBDT05GSUdfU1lTX05BTkRfUVVJRVQ7CiAjZWxzZQogCWludCBxdWlldCA9IDA7CiAjZW5kaWYKQEAgLTE5MCw3ICsxOTAsNyBAQAogCWlmIChzdHJjbXAoY21kLCAiaW5mbyIpID09IDApIHsKIAogCQlwdXRjKCdcbicpOwotCQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9OQU5EX0RFVklDRTsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRTsgaSsrKSB7CiAJCQlpZiAobmFuZF9pbmZvW2ldLm5hbWUpCiAJCQkJcHJpbnRmKCJEZXZpY2UgJWQ6ICVzLCBzZWN0b3Igc2l6ZSAldSBLaUJcbiIsCiAJCQkJICAgICAgIGksIG5hbmRfaW5mb1tpXS5uYW1lLApAQCAtMjAzLDcgKzIwMyw3IEBACiAKIAkJaWYgKGFyZ2MgPCAzKSB7CiAJCQlpZiAoKG5hbmRfY3Vycl9kZXZpY2UgPCAwKSB8fAotCQkJICAgIChuYW5kX2N1cnJfZGV2aWNlID49IENGR19NQVhfTkFORF9ERVZJQ0UpKQorCQkJICAgIChuYW5kX2N1cnJfZGV2aWNlID49IENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFKSkKIAkJCQlwdXRzKCJcbm5vIGRldmljZXMgYXZhaWxhYmxlXG4iKTsKIAkJCWVsc2UKIAkJCQlwcmludGYoIlxuRGV2aWNlICVkOiAlc1xuIiwgbmFuZF9jdXJyX2RldmljZSwKQEAgLTIxMSw3ICsyMTEsNyBAQAogCQkJcmV0dXJuIDA7CiAJCX0KIAkJZGV2ID0gKGludClzaW1wbGVfc3RydG91bChhcmd2WzJdLCBOVUxMLCAxMCk7Ci0JCWlmIChkZXYgPCAwIHx8IGRldiA+PSBDRkdfTUFYX05BTkRfREVWSUNFIHx8ICFuYW5kX2luZm9bZGV2XS5uYW1lKSB7CisJCWlmIChkZXYgPCAwIHx8IGRldiA+PSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSB8fCAhbmFuZF9pbmZvW2Rldl0ubmFtZSkgewogCQkJcHV0cygiTm8gc3VjaCBkZXZpY2VcbiIpOwogCQkJcmV0dXJuIDE7CiAJCX0KQEAgLTIxOSw3ICsyMTksNyBAQAogCQlwdXRzKCIuLi4gaXMgbm93IGN1cnJlbnQgZGV2aWNlXG4iKTsKIAkJbmFuZF9jdXJyX2RldmljZSA9IGRldjsKIAotI2lmZGVmIENGR19OQU5EX1NFTEVDVF9ERVZJQ0UKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfU0VMRUNUX0RFVklDRQogCQkvKgogCQkgKiBTZWxlY3QgdGhlIGNoaXAgaW4gdGhlIGJvYXJkL2NwdSBzcGVjaWZpYyBkcml2ZXIKIAkJICovCkBAIC0yMzgsNyArMjM4LDcgQEAKIAkJZ290byB1c2FnZTsKIAogCS8qIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgb3BlcmF0ZSBvbiB0aGUgY3VycmVudCBkZXZpY2UgKi8KLQlpZiAobmFuZF9jdXJyX2RldmljZSA8IDAgfHwgbmFuZF9jdXJyX2RldmljZSA+PSBDRkdfTUFYX05BTkRfREVWSUNFIHx8CisJaWYgKG5hbmRfY3Vycl9kZXZpY2UgPCAwIHx8IG5hbmRfY3Vycl9kZXZpY2UgPj0gQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UgfHwKIAkgICAgIW5hbmRfaW5mb1tuYW5kX2N1cnJfZGV2aWNlXS5uYW1lKSB7CiAJCXB1dHMoIlxubm8gZGV2aWNlcyBhdmFpbGFibGVcbiIpOwogCQlyZXR1cm4gMTsKQEAgLTYwNiw3ICs2MDYsNyBAQAogCQkJaWYgKGFyZ2MgPT0gMykKIAkJCQlhZGRyID0gc2ltcGxlX3N0cnRvdWwoYXJndlsxXSwgTlVMTCwgMTYpOwogCQkJZWxzZQotCQkJCWFkZHIgPSBDRkdfTE9BRF9BRERSOworCQkJCWFkZHIgPSBDT05GSUdfU1lTX0xPQURfQUREUjsKIAkJCXJldHVybiBuYW5kX2xvYWRfaW1hZ2UoY21kdHAsICZuYW5kX2luZm9bZGV2LT5pZC0+bnVtXSwKIAkJCQkJICAgICAgIHBhcnQtPm9mZnNldCwgYWRkciwgYXJndlswXSk7CiAJCX0KQEAgLTYxNiw3ICs2MTYsNyBAQAogCXNob3dfYm9vdF9wcm9ncmVzcyg1Mik7CiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAxOgotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQlib290X2RldmljZSA9IGdldGVudigiYm9vdGRldmljZSIpOwogCQlicmVhazsKIAljYXNlIDI6CkBAIC02NTEsNyArNjUxLDcgQEAKIAogCWlkeCA9IHNpbXBsZV9zdHJ0b3VsKGJvb3RfZGV2aWNlLCBOVUxMLCAxNik7CiAKLQlpZiAoaWR4IDwgMCB8fCBpZHggPj0gQ0ZHX01BWF9OQU5EX0RFVklDRSB8fCAhbmFuZF9pbmZvW2lkeF0ubmFtZSkgeworCWlmIChpZHggPCAwIHx8IGlkeCA+PSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSB8fCAhbmFuZF9pbmZvW2lkeF0ubmFtZSkgewogCQlwcmludGYoIlxuKiogRGV2aWNlICVkIG5vdCBhdmFpbGFibGVcbiIsIGlkeCk7CiAJCXNob3dfYm9vdF9wcm9ncmVzcygtNTUpOwogCQlyZXR1cm4gMTsKQEAgLTcyOCw3ICs3MjgsNyBAQAogLyoKICAqIEltcG9ydHMgZnJvbSBuYW5kX2xlZ2FjeS5jCiAgKi8KLWV4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ0ZHX01BWF9OQU5EX0RFVklDRV07CitleHRlcm4gc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIGV4dGVybiBpbnQgY3Vycl9kZXZpY2U7CiBleHRlcm4gaW50IG5hbmRfbGVnYWN5X2VyYXNlKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsIHNpemVfdCBvZnMsCiAJCQkgICAgc2l6ZV90IGxlbiwgaW50IGNsZWFuKTsKQEAgLTc1Nyw3ICs3NTcsNyBAQAogCiAJCQlwdXRjICgnXG4nKTsKIAotCQkJZm9yIChpID0gMDsgaSA8IENGR19NQVhfTkFORF9ERVZJQ0U7ICsraSkgeworCQkJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFOyArK2kpIHsKIAkJCQlpZiAobmFuZF9kZXZfZGVzY1tpXS5DaGlwSUQgPT0KIAkJCQkgICAgTkFORF9DaGlwSURfVU5LTk9XTikKIAkJCQkJY29udGludWU7CS8qIGxpc3Qgb25seSBrbm93biBkZXZpY2VzICovCkBAIC03NjgsNyArNzY4LDcgQEAKIAogCQl9IGVsc2UgaWYgKHN0cmNtcCAoYXJndlsxXSwgImRldmljZSIpID09IDApIHsKIAkJCWlmICgoY3Vycl9kZXZpY2UgPCAwKQotCQkJICAgIHx8IChjdXJyX2RldmljZSA+PSBDRkdfTUFYX05BTkRfREVWSUNFKSkgeworCQkJICAgIHx8IChjdXJyX2RldmljZSA+PSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSkpIHsKIAkJCQlwdXRzICgiXG5ubyBkZXZpY2VzIGF2YWlsYWJsZVxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC03NzgsNyArNzc4LDcgQEAKIAogCQl9IGVsc2UgaWYgKHN0cmNtcCAoYXJndlsxXSwgImJhZCIpID09IDApIHsKIAkJCWlmICgoY3Vycl9kZXZpY2UgPCAwKQotCQkJICAgIHx8IChjdXJyX2RldmljZSA+PSBDRkdfTUFYX05BTkRfREVWSUNFKSkgeworCQkJICAgIHx8IChjdXJyX2RldmljZSA+PSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSkpIHsKIAkJCQlwdXRzICgiXG5ubyBkZXZpY2VzIGF2YWlsYWJsZVxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC03OTQsNyArNzk0LDcgQEAKIAkJCWludCBkZXYgPSAoaW50KSBzaW1wbGVfc3RydG91bCAoYXJndlsyXSwgTlVMTCwgMTApOwogCiAJCQlwcmludGYgKCJcbkRldmljZSAlZDogIiwgZGV2KTsKLQkJCWlmIChkZXYgPj0gQ0ZHX01BWF9OQU5EX0RFVklDRSkgeworCQkJaWYgKGRldiA+PSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSkgewogCQkJCXB1dHMgKCJ1bmtub3duIGRldmljZVxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CkBAIC04NjYsNyArODY2LDcgQEAKIAkJCWVsc2UgaWYgKGNtZHRhaWwgJiYgIXN0cmNtcCAoY21kdGFpbCwgIi5lIikpCiAJCQkJY21kIHw9IE5BTkRSV19KRkZTMjsJLyogc2tpcCBiYWQgYmxvY2tzICovCiAjZW5kaWYKLSNpZmRlZiBDRkdfTkFORF9TS0lQX0JBRF9ET1RfSQorI2lmZGVmIENPTkZJR19TWVNfTkFORF9TS0lQX0JBRF9ET1RfSQogCQkJLyogbmVlZCAiLmkiIHNhbWUgYXMgIi5qZmZzMnMiIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIgdW5pdHMgKGVzZCkgKi8KIAkJCS8qICIuaSIgZm9yIGltYWdlIC0+IHJlYWQgc2tpcHMgYmFkIGJsb2NrIChubyAweGZmKSAqLwogCQkJZWxzZSBpZiAoY21kdGFpbCAmJiAhc3RyY21wIChjbWR0YWlsLCAiLmkiKSkgewpAQCAtODc0LDcgKzg3NCw3IEBACiAJCQkJaWYgKGNtZCAmIE5BTkRSV19SRUFEKQogCQkJCQljbWQgfD0gTkFORFJXX0pGRlMyX1NLSVA7CS8qIHNraXAgYmFkIGJsb2NrcyAob24gcmVhZCB0b28pICovCiAJCQl9Ci0jZW5kaWYgLyogQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05BTkRfU0tJUF9CQURfRE9UX0kgKi8KIAkJCWVsc2UgaWYgKGNtZHRhaWwpIHsKIAkJCQlwcmludGYgKCJVc2FnZTpcbiVzXG4iLCBjbWR0cC0+dXNhZ2UpOwogCQkJCXJldHVybiAxOwpAQCAtOTUyLDcgKzk1Miw3IEBACiAJc2hvd19ib290X3Byb2dyZXNzICg1Mik7CiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAxOgotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQlib290X2RldmljZSA9IGdldGVudiAoImJvb3RkZXZpY2UiKTsKIAkJYnJlYWs7CiAJY2FzZSAyOgpAQCAtOTg0LDcgKzk4NCw3IEBACiAKIAlkZXYgPSBzaW1wbGVfc3RydG91bChib290X2RldmljZSwgJmVwLCAxNik7CiAKLQlpZiAoKGRldiA+PSBDRkdfTUFYX05BTkRfREVWSUNFKSB8fAorCWlmICgoZGV2ID49IENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFKSB8fAogCSAgICAobmFuZF9kZXZfZGVzY1tkZXZdLkNoaXBJRCA9PSBOQU5EX0NoaXBJRF9VTktOT1dOKSkgewogCQlwcmludGYgKCJcbioqIERldmljZSAlZCBub3QgYXZhaWxhYmxlXG4iLCBkZXYpOwogCQlzaG93X2Jvb3RfcHJvZ3Jlc3MgKC01NSk7CmRpZmYgLS1naXQgYS9jb21tb24vY21kX252ZWRpdC5jIGIvY29tbW9uL2NtZF9udmVkaXQuYwppbmRleCA2MzdkNmM5Li5kMjgwY2IwIDEwMDY0NAotLS0gYS9jb21tb24vY21kX252ZWRpdC5jCisrKyBiL2NvbW1vbi9jbWRfbnZlZGl0LmMKQEAgLTcyLDcgKzcyLDcgQEAKIC8qCiAgKiBUYWJsZSB3aXRoIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKGRlZmluZWQgaW4gY29uZmlnX3h5ei5oKQogICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBiYXVkcmF0ZV90YWJsZVtdID0gQ0ZHX0JBVURSQVRFX1RBQkxFOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgYmF1ZHJhdGVfdGFibGVbXSA9IENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEU7CiAjZGVmaW5lCU5fQkFVRFJBVEVTIChzaXplb2YoYmF1ZHJhdGVfdGFibGUpIC8gc2l6ZW9mKGJhdWRyYXRlX3RhYmxlWzBdKSkKIAogCkBAIC00MTYsOSArNDE2LDkgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfQVNLRU5WKQogaW50IGRvX2Fza2VudiAoIGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCWV4dGVybiBjaGFyIGNvbnNvbGVfYnVmZmVyW0NGR19DQlNJWkVdOwotCWNoYXIgbWVzc2FnZVtDRkdfQ0JTSVpFXTsKLQlpbnQgc2l6ZSA9IENGR19DQlNJWkUgLSAxOworCWV4dGVybiBjaGFyIGNvbnNvbGVfYnVmZmVyW0NPTkZJR19TWVNfQ0JTSVpFXTsKKwljaGFyIG1lc3NhZ2VbQ09ORklHX1NZU19DQlNJWkVdOworCWludCBzaXplID0gQ09ORklHX1NZU19DQlNJWkUgLSAxOwogCWludCBsZW47CiAJY2hhciAqbG9jYWxfYXJnc1s0XTsKIApAQCAtNDY0LDggKzQ2NCw4IEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChzaXplID49IENGR19DQlNJWkUpCi0JCXNpemUgPSBDRkdfQ0JTSVpFIC0gMTsKKwlpZiAoc2l6ZSA+PSBDT05GSUdfU1lTX0NCU0laRSkKKwkJc2l6ZSA9IENPTkZJR19TWVNfQ0JTSVpFIC0gMTsKIAogCWlmIChzaXplIDw9IDApCiAJCXJldHVybiAxOwpAQCAtNTgwLDcgKzU4MCw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIFVfQk9PVF9DTUQoCi0JcHJpbnRlbnYsIENGR19NQVhBUkdTLCAxLAlkb19wcmludGVudiwKKwlwcmludGVudiwgQ09ORklHX1NZU19NQVhBUkdTLCAxLAlkb19wcmludGVudiwKIAkicHJpbnRlbnYtIHByaW50IGVudmlyb25tZW50IHZhcmlhYmxlc1xuIiwKIAkiXG4gICAgLSBwcmludCB2YWx1ZXMgb2YgYWxsIGVudmlyb25tZW50IHZhcmlhYmxlc1xuIgogCSJwcmludGVudiBuYW1lIC4uLlxuIgpAQCAtNTg4LDcgKzU4OCw3IEBACiApOwogCiBVX0JPT1RfQ01EKAotCXNldGVudiwgQ0ZHX01BWEFSR1MsIDAsCWRvX3NldGVudiwKKwlzZXRlbnYsIENPTkZJR19TWVNfTUFYQVJHUywgMCwJZG9fc2V0ZW52LAogCSJzZXRlbnYgIC0gc2V0IGVudmlyb25tZW50IHZhcmlhYmxlc1xuIiwKIAkibmFtZSB2YWx1ZSAuLi5cbiIKIAkiICAgIC0gc2V0IGVudmlyb25tZW50IHZhcmlhYmxlICduYW1lJyB0byAndmFsdWUgLi4uJ1xuIgpAQCAtNjEyLDcgKzYxMiw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0FTS0VOVikKIAogVV9CT09UX0NNRCgKLQlhc2tlbnYsCUNGR19NQVhBUkdTLAkxLAlkb19hc2tlbnYsCisJYXNrZW52LAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX2Fza2VudiwKIAkiYXNrZW52ICAtIGdldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSBzdGRpblxuIiwKIAkibmFtZSBbbWVzc2FnZV0gW3NpemVdXG4iCiAJIiAgICAtIGdldCBlbnZpcm9ubWVudCB2YXJpYWJsZSAnbmFtZScgZnJvbSBzdGRpbiAobWF4ICdzaXplJyBjaGFycylcbiIKQEAgLTYyOSw3ICs2MjksNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9SVU4pCiBpbnQgZG9fcnVuIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7CiBVX0JPT1RfQ01EKAotCXJ1biwJQ0ZHX01BWEFSR1MsCTEsCWRvX3J1biwKKwlydW4sCUNPTkZJR19TWVNfTUFYQVJHUywJMSwJZG9fcnVuLAogCSJydW4gICAgIC0gcnVuIGNvbW1hbmRzIGluIGFuIGVudmlyb25tZW50IHZhcmlhYmxlXG4iLAogCSJ2YXIgWy4uLl1cbiIKIAkiICAgIC0gcnVuIHRoZSBjb21tYW5kcyBpbiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUocykgJ3ZhcidcbiIKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfcGNpLmMgYi9jb21tb24vY21kX3BjaS5jCmluZGV4IGIyYWE4MzMuLjY3ZmYyZmIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfcGNpLmMKKysrIGIvY29tbW9uL2NtZF9wY2kuYwpAQCAtNDgsNyArNDgsNyBAQAogICogU3Vicm91dGluZTogIHBjaWluZm8KICAqCiAgKiBEZXNjcmlwdGlvbjogU2hvdyBpbmZvcm1hdGlvbiBhYm91dCBkZXZpY2VzIG9uIFBDSSBidXMuCi0gKgkJCQlEZXBlbmRpbmcgb24gdGhlIGRlZmluZSBDRkdfU0hPUlRfUENJX0xJU1RJTkcKKyAqCQkJCURlcGVuZGluZyBvbiB0aGUgZGVmaW5lIENPTkZJR19TWVNfU0hPUlRfUENJX0xJU1RJTkcKICAqCQkJCXRoZSBvdXRwdXQgd2lsbCBiZSBtb3JlIG9yIGxlc3MgZXhoYXVzdGl2ZS4KICAqCiAgKiBJbnB1dHM6CWJ1c19ubwkJdGhlIG51bWJlciBvZiB0aGUgYnVzIHRvIGJlIHNjYW5uZWQuCmRpZmYgLS1naXQgYS9jb21tb24vY21kX3BjbWNpYS5jIGIvY29tbW9uL2NtZF9wY21jaWEuYwppbmRleCBkY2QwN2MwLi4yM2ZhZDNiIDEwMDY0NAotLS0gYS9jb21tb24vY21kX3BjbWNpYS5jCisrKyBiL2NvbW1vbi9jbWRfcGNtY2lhLmMKQEAgLTI3OCw4ICsyNzgsOCBAQAogCWludCBmb3VuZCA9IDA7CiAJaW50IGk7CiAKLQlhZGRyID0gKHZvbGF0aWxlIHVjaGFyICopKENGR19QQ01DSUFfTUVNX0FERFIgKwotCQkJCSAgQ0ZHX1BDTUNJQV9NRU1fU0laRSAqIChzbG90ICogNCkpOworCWFkZHIgPSAodm9sYXRpbGUgdWNoYXIgKikoQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgKworCQkJCSAgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKiAoc2xvdCAqIDQpKTsKIAlkZWJ1ZyAoIlBDTUNJQSBNRU06ICUwOGxYXG4iLCAodWxvbmcpYWRkcik7CiAKIAlzdGFydCA9IHAgPSAodm9sYXRpbGUgdWNoYXIgKikgYWRkcjsKZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfcmVnaW5mby5jIGIvY29tbW9uL2NtZF9yZWdpbmZvLmMKaW5kZXggYzBhMTQ1OS4uNGM4ZTYxYSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9yZWdpbmZvLmMKKysrIGIvY29tbW9uL2NtZF9yZWdpbmZvLmMKQEAgLTM4LDcgKzM4LDcgQEAKIGludCBkb19yZWdpbmZvIChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCi0Jdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAgICAgKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSBzeXNjb25mOHh4X3QgKnN5c2NvbmYgPSAmaW1tYXAtPmltX3NpdV9jb25mOwogCXZvbGF0aWxlIHNpdDh4eF90ICp0aW1lcnMgPSAmaW1tYXAtPmltX3NpdDsKQEAgLTI0NCw3ICsyNDQsNyBAQAogCXB1dHMgKCJcblxuIik7CiAjZWxpZiBkZWZpbmVkKENPTkZJR181eHgpCiAKLQl2b2xhdGlsZSBpbW1hcF90CSppbW1hcCAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltbWFwICA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDV4eF90CSptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAl2b2xhdGlsZSBzeXNjb25mNXh4X3QJKnN5c2NvbmYgPSAmaW1tYXAtPmltX3NpdV9jb25mOwogCXZvbGF0aWxlIHNpdDV4eF90CSp0aW1lcnMgPSAmaW1tYXAtPmltX3NpdDsKQEAgLTI3OSw3ICsyNzksNyBAQAogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCXB1dHMgKCJcbk1QQzUyMDAgcmVnaXN0ZXJzXG4iKTsKLQlwcmludGYgKCJNQkFSPSUwOHhcbiIsIENGR19NQkFSKTsKKwlwcmludGYgKCJNQkFSPSUwOHhcbiIsIENPTkZJR19TWVNfTUJBUik7CiAJcHV0cyAoIk1lbW9yeSBtYXAgcmVnaXN0ZXJzXG4iKTsKIAlwcmludGYgKCJcdENTMDogc3RhcnQgJTA4bFhcdHN0b3AgJTA4bFhcdGNvbmZpZyAlMDhsWFx0ZW4gJWRcbiIsCiAJCSoodm9sYXRpbGUgdWxvbmcqKU1QQzVYWFhfQ1MwX1NUQVJULApkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9yZWlzZXIuYyBiL2NvbW1vbi9jbWRfcmVpc2VyLmMKaW5kZXggYjczOTVkNy4uNGY0MTE3ZSAxMDA2NDQKLS0tIGEvY29tbW9uL2NtZF9yZWlzZXIuYworKysgYi9jb21tb24vY21kX3JlaXNlci5jCkBAIC0xMjgsNyArMTI4LDcgQEAKIAkJaWYgKGFkZHJfc3RyICE9IE5VTEwpIHsKIAkJCWFkZHIgPSBzaW1wbGVfc3RydG91bCAoYWRkcl9zdHIsIE5VTEwsIDE2KTsKIAkJfSBlbHNlIHsKLQkJCWFkZHIgPSBDRkdfTE9BRF9BRERSOworCQkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQl9CiAJCWZpbGVuYW1lID0gZ2V0ZW52ICgiYm9vdGZpbGUiKTsKIAkJY291bnQgPSAwOwpkaWZmIC0tZ2l0IGEvY29tbW9uL2NtZF9zYXRhLmMgYi9jb21tb24vY21kX3NhdGEuYwppbmRleCA3OWMyNDk1Li5kZDZmMWQ5IDEwMDY0NAotLS0gYS9jb21tb24vY21kX3NhdGEuYworKysgYi9jb21tb24vY21kX3NhdGEuYwpAQCAtMjksMTQgKzI5LDE0IEBACiAjaW5jbHVkZSA8c2F0YS5oPgogCiBpbnQgY3Vycl9kZXZpY2UgPSAtMTsKLWJsb2NrX2Rldl9kZXNjX3Qgc2F0YV9kZXZfZGVzY1tDRkdfU0FUQV9NQVhfREVWSUNFXTsKK2Jsb2NrX2Rldl9kZXNjX3Qgc2F0YV9kZXZfZGVzY1tDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRV07CiAKIGludCBzYXRhX2luaXRpYWxpemUodm9pZCkKIHsKIAlpbnQgcmM7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX1NBVEFfTUFYX0RFVklDRTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFOyBpKyspIHsKIAkJbWVtc2V0KCZzYXRhX2Rldl9kZXNjW2ldLCAwLCBzaXplb2Yoc3RydWN0IGJsb2NrX2Rldl9kZXNjKSk7CiAJCXNhdGFfZGV2X2Rlc2NbaV0uaWZfdHlwZSA9IElGX1RZUEVfU0FUQTsKIAkJc2F0YV9kZXZfZGVzY1tpXS5kZXYgPSBpOwpAQCAtNTgsNyArNTgsNyBAQAogCiBibG9ja19kZXZfZGVzY190ICpzYXRhX2dldF9kZXYoaW50IGRldikKIHsKLQlyZXR1cm4gKGRldiA8IENGR19TQVRBX01BWF9ERVZJQ0UpID8gJnNhdGFfZGV2X2Rlc2NbZGV2XSA6IE5VTEw7CisJcmV0dXJuIChkZXYgPCBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRSkgPyAmc2F0YV9kZXZfZGVzY1tkZXZdIDogTlVMTDsKIH0KIAogaW50IGRvX3NhdGEoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCkBAIC03NCw3ICs3NCw3IEBACiAJCWlmIChzdHJuY21wKGFyZ3ZbMV0sImluZiIsIDMpID09IDApIHsKIAkJCWludCBpOwogCQkJcHV0YygnXG4nKTsKLQkJCWZvciAoaSA9IDA7IGkgPCBDRkdfU0FUQV9NQVhfREVWSUNFOyArK2kpIHsKKwkJCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRTsgKytpKSB7CiAJCQkJaWYgKHNhdGFfZGV2X2Rlc2NbaV0udHlwZSA9PSBERVZfVFlQRV9VTktOT1dOKQogCQkJCQljb250aW51ZTsKIAkJCQlwcmludGYgKCJTQVRBIGRldmljZSAlZDogIiwgaSk7CkBAIC04Miw3ICs4Miw3IEBACiAJCQl9CiAJCQlyZXR1cm4gMDsKIAkJfSBlbHNlIGlmIChzdHJuY21wKGFyZ3ZbMV0sImRldiIsIDMpID09IDApIHsKLQkJCWlmICgoY3Vycl9kZXZpY2UgPCAwKSB8fCAoY3Vycl9kZXZpY2UgPj0gQ0ZHX1NBVEFfTUFYX0RFVklDRSkpIHsKKwkJCWlmICgoY3Vycl9kZXZpY2UgPCAwKSB8fCAoY3Vycl9kZXZpY2UgPj0gQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0UpKSB7CiAJCQkJcHV0cygiXG5ubyBTQVRBIGRldmljZXMgYXZhaWxhYmxlXG4iKTsKIAkJCQlyZXR1cm4gMTsKIAkJCX0KQEAgLTkyLDcgKzkyLDcgQEAKIAkJfSBlbHNlIGlmIChzdHJuY21wKGFyZ3ZbMV0sInBhcnQiLDQpID09IDApIHsKIAkJCWludCBkZXYsIG9rOwogCi0JCQlmb3IgKG9rID0gMCwgZGV2ID0gMDsgZGV2IDwgQ0ZHX1NBVEFfTUFYX0RFVklDRTsgKytkZXYpIHsKKwkJCWZvciAob2sgPSAwLCBkZXYgPSAwOyBkZXYgPCBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRTsgKytkZXYpIHsKIAkJCQlpZiAoc2F0YV9kZXZfZGVzY1tkZXZdLnBhcnRfdHlwZSAhPSBQQVJUX1RZUEVfVU5LTk9XTikgewogCQkJCQkrK29rOwogCQkJCQlpZiAoZGV2KQpAQCAtMTEzLDcgKzExMyw3IEBACiAJCQlpbnQgZGV2ID0gKGludClzaW1wbGVfc3RydG91bChhcmd2WzJdLCBOVUxMLCAxMCk7CiAKIAkJCXByaW50ZigiXG5TQVRBIGRldmljZSAlZDogIiwgZGV2KTsKLQkJCWlmIChkZXYgPj0gQ0ZHX1NBVEFfTUFYX0RFVklDRSkgeworCQkJaWYgKGRldiA+PSBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRSkgewogCQkJCXB1dHMgKCJ1bmtub3duIGRldmljZVxuIik7CiAJCQkJcmV0dXJuIDE7CiAJCQl9CmRpZmYgLS1naXQgYS9jb21tb24vY21kX3Njc2kuYyBiL2NvbW1vbi9jbWRfc2NzaS5jCmluZGV4IGYzNTc0NjUuLjA2NmZkODAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfc2NzaS5jCisrKyBiL2NvbW1vbi9jbWRfc2NzaS5jCkBAIC01OSw3ICs1OSw3IEBACiAKIHN0YXRpYyBpbnQgc2NzaV9jdXJyX2RldjsgLyogY3VycmVudCBkZXZpY2UgKi8KIAotc3RhdGljIGJsb2NrX2Rldl9kZXNjX3Qgc2NzaV9kZXZfZGVzY1tDRkdfU0NTSV9NQVhfREVWSUNFXTsKK3N0YXRpYyBibG9ja19kZXZfZGVzY190IHNjc2lfZGV2X2Rlc2NbQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0VdOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBmb3J3YXJkIGRlY2xlcmF0aW9ucyBvZiBzb21lIFNldHVwIFJvdXRpbmVzCkBAIC04OCw3ICs4OCw3IEBACiAJaWYobW9kZT09MSkgewogCQlwcmludGYoInNjYW5uaW5nIGJ1cyBmb3IgZGV2aWNlcy4uLlxuIik7CiAJfQotCWZvcihpPTA7aTxDRkdfU0NTSV9NQVhfREVWSUNFO2krKykgeworCWZvcihpPTA7aTxDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRTtpKyspIHsKIAkJc2NzaV9kZXZfZGVzY1tpXS50YXJnZXQ9MHhmZjsKIAkJc2NzaV9kZXZfZGVzY1tpXS5sdW49MHhmZjsKIAkJc2NzaV9kZXZfZGVzY1tpXS5sYmE9MDsKQEAgLTEwNCw5ICsxMDQsOSBAQAogCQlzY3NpX2Rldl9kZXNjW2ldLmJsb2NrX3JlYWQ9c2NzaV9yZWFkOwogCX0KIAlzY3NpX21heF9kZXZzPTA7Ci0JZm9yKGk9MDtpPENGR19TQ1NJX01BWF9TQ1NJX0lEO2krKykgeworCWZvcihpPTA7aTxDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQ7aSsrKSB7CiAJCXBjY2ItPnRhcmdldD1pOwotCQlmb3IobHVuPTA7bHVuPENGR19TQ1NJX01BWF9MVU47bHVuKyspIHsKKwkJZm9yKGx1bj0wO2x1bjxDT05GSUdfU1lTX1NDU0lfTUFYX0xVTjtsdW4rKykgewogCQkJcGNjYi0+bHVuPWx1bjsKIAkJCXBjY2ItPnBkYXRhPSh1bnNpZ25lZCBjaGFyICopJnRlbXBidWZmOwogCQkJcGNjYi0+ZGF0YWxlbj01MTI7CkBAIC0xOTUsNyArMTk1LDcgQEAKIAogYmxvY2tfZGV2X2Rlc2NfdCAqIHNjc2lfZ2V0X2RldihpbnQgZGV2KQogewotCXJldHVybiAoZGV2IDwgQ0ZHX1NDU0lfTUFYX0RFVklDRSkgPyAmc2NzaV9kZXZfZGVzY1tkZXZdIDogTlVMTDsKKwlyZXR1cm4gKGRldiA8IENPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFKSA/ICZzY3NpX2Rldl9kZXNjW2Rldl0gOiBOVUxMOwogfQogCiAKQEAgLTIxNyw3ICsyMTcsNyBAQAogCiAJc3dpdGNoIChhcmdjKSB7CiAJY2FzZSAxOgotCQlhZGRyID0gQ0ZHX0xPQURfQUREUjsKKwkJYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCQlib290X2RldmljZSA9IGdldGVudiAoImJvb3RkZXZpY2UiKTsKIAkJYnJlYWs7CiAJY2FzZSAyOgpAQCAtMzU2LDcgKzM1Niw3IEBACiAJCQl9CiAJCQlpZiAoc3RybmNtcChhcmd2WzFdLCJpbmYiLDMpID09IDApIHsKIAkJCQlpbnQgaTsKLQkJCQlmb3IgKGk9MDsgaTxDRkdfU0NTSV9NQVhfREVWSUNFOyArK2kpIHsKKwkJCQlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRTsgKytpKSB7CiAJCQkJCWlmKHNjc2lfZGV2X2Rlc2NbaV0udHlwZT09REVWX1RZUEVfVU5LTk9XTikKIAkJCQkJCWNvbnRpbnVlOyAvKiBsaXN0IG9ubHkga25vd24gZGV2aWNlcyAqLwogCQkJCQlwcmludGYgKCJTQ1NJIGRldi4gJWQ6ICAiLCBpKTsKQEAgLTM2NSw3ICszNjUsNyBAQAogCQkJCXJldHVybiAwOwogCQkJfQogCQkJaWYgKHN0cm5jbXAoYXJndlsxXSwiZGV2IiwzKSA9PSAwKSB7Ci0JCQkJaWYgKChzY3NpX2N1cnJfZGV2IDwgMCkgfHwgKHNjc2lfY3Vycl9kZXYgPj0gQ0ZHX1NDU0lfTUFYX0RFVklDRSkpIHsKKwkJCQlpZiAoKHNjc2lfY3Vycl9kZXYgPCAwKSB8fCAoc2NzaV9jdXJyX2RldiA+PSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRSkpIHsKIAkJCQkJcHJpbnRmKCJcbm5vIFNDU0kgZGV2aWNlcyBhdmFpbGFibGVcbiIpOwogCQkJCQlyZXR1cm4gMTsKIAkJCQl9CkBAIC0zNzksNyArMzc5LDcgQEAKIAkJCX0KIAkJCWlmIChzdHJuY21wKGFyZ3ZbMV0sInBhcnQiLDQpID09IDApIHsKIAkJCQlpbnQgZGV2LCBvazsKLQkJCQlmb3IgKG9rPTAsIGRldj0wOyBkZXY8Q0ZHX1NDU0lfTUFYX0RFVklDRTsgKytkZXYpIHsKKwkJCQlmb3IgKG9rPTAsIGRldj0wOyBkZXY8Q09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0U7ICsrZGV2KSB7CiAJCQkJCWlmIChzY3NpX2Rldl9kZXNjW2Rldl0udHlwZSE9REVWX1RZUEVfVU5LTk9XTikgewogCQkJCQkJb2srKzsKIAkJCQkJCWlmIChkZXYpCkBAIC0zOTgsNyArMzk4LDcgQEAKIAkJCWlmIChzdHJuY21wKGFyZ3ZbMV0sImRldiIsMykgPT0gMCkgewogCQkJCWludCBkZXYgPSAoaW50KXNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDEwKTsKIAkJCQlwcmludGYgKCJcblNDU0kgZGV2aWNlICVkOiAiLCBkZXYpOwotCQkJCWlmIChkZXYgPj0gQ0ZHX1NDU0lfTUFYX0RFVklDRSkgeworCQkJCWlmIChkZXYgPj0gQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UpIHsKIAkJCQkJcHJpbnRmKCJ1bmtub3duIGRldmljZVxuIik7CiAJCQkJCXJldHVybiAxOwogCQkJCX0KZGlmZiAtLWdpdCBhL2NvbW1vbi9jbWRfdXNiLmMgYi9jb21tb24vY21kX3VzYi5jCmluZGV4IGM2MmNhOTcuLjk5ZTU1MWYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jbWRfdXNiLmMKKysrIGIvY29tbW9uL2NtZF91c2IuYwpAQCAtMzIxLDcgKzMyMSw3IEBACiAKIAlzd2l0Y2ggKGFyZ2MpIHsKIAljYXNlIDE6Ci0JCWFkZHIgPSBDRkdfTE9BRF9BRERSOworCQlhZGRyID0gQ09ORklHX1NZU19MT0FEX0FERFI7CiAJCWJvb3RfZGV2aWNlID0gZ2V0ZW52ICgiYm9vdGRldmljZSIpOwogCQlicmVhazsKIAljYXNlIDI6CmRpZmYgLS1naXQgYS9jb21tb24vY29tbWFuZC5jIGIvY29tbW9uL2NvbW1hbmQuYwppbmRleCBhY2E1N2IyLi5hNGE5NzhjIDEwMDY0NAotLS0gYS9jb21tb24vY29tbWFuZC5jCisrKyBiL2NvbW1vbi9jb21tYW5kLmMKQEAgLTcwLDcgKzcwLDcgQEAKIH0KIAogVV9CT09UX0NNRCgKLQllY2hvLAlDRkdfTUFYQVJHUywJMSwJZG9fZWNobywKKwllY2hvLAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX2VjaG8sCiAJImVjaG8gICAgLSBlY2hvIGFyZ3MgdG8gY29uc29sZVxuIiwKIAkiW2FyZ3MuLl1cbiIKIAkiICAgIC0gZWNobyBhcmdzIHRvIGNvbnNvbGU7IFxcYyBzdXBwcmVzc2VzIG5ld2xpbmVcbiIKQEAgLTc4LDcgKzc4LDcgQEAKIAogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAKIGludAogZG9fdGVzdCAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCkBAIC0yMDIsNyArMjAyLDcgQEAKIH0KIAogVV9CT09UX0NNRCgKLQl0ZXN0LAlDRkdfTUFYQVJHUywJMSwJZG9fdGVzdCwKKwl0ZXN0LAlDT05GSUdfU1lTX01BWEFSR1MsCTEsCWRvX3Rlc3QsCiAJInRlc3QgICAgLSBtaW5pbWFsIHRlc3QgbGlrZSAvYmluL3NoXG4iLAogCSJbYXJncy4uXVxuIgogCSIgICAgLSB0ZXN0IGZ1bmN0aW9uYWxpdHlcbiIKQEAgLTI4Niw3ICsyODYsNyBAQAogCSAqLwogCWZvciAoaSA9IDE7IGkgPCBhcmdjOyArK2kpIHsKIAkJaWYgKChjbWR0cCA9IGZpbmRfY21kIChhcmd2W2ldKSkgIT0gTlVMTCkgewotI2lmZGVmCUNGR19MT05HSEVMUAorI2lmZGVmCUNPTkZJR19TWVNfTE9OR0hFTFAKIAkJCS8qIGZvdW5kIC0gcHJpbnQgKGxvbmcpIGhlbHAgaW5mbyAqLwogCQkJcHV0cyAoY21kdHAtPm5hbWUpOwogCQkJcHV0YyAoJyAnKTsKQEAgLTMwMCw3ICszMDAsNyBAQAogI2Vsc2UJLyogbm8gbG9uZyBoZWxwIGF2YWlsYWJsZSAqLwogCQkJaWYgKGNtZHRwLT51c2FnZSkKIAkJCQlwdXRzIChjbWR0cC0+dXNhZ2UpOwotI2VuZGlmCS8qIENGR19MT05HSEVMUCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfTE9OR0hFTFAgKi8KIAkJfSBlbHNlIHsKIAkJCXByaW50ZiAoIlVua25vd24gY29tbWFuZCAnJXMnIC0gdHJ5ICdoZWxwJyIKIAkJCQkiIHdpdGhvdXQgYXJndW1lbnRzIGZvciBsaXN0IG9mIGFsbCIKQEAgLTMxNCw3ICszMTQsNyBAQAogCiAKIFVfQk9PVF9DTUQoCi0JaGVscCwJQ0ZHX01BWEFSR1MsCTEsCWRvX2hlbHAsCisJaGVscCwJQ09ORklHX1NZU19NQVhBUkdTLAkxLAlkb19oZWxwLAogCSJoZWxwICAgIC0gcHJpbnQgb25saW5lIGhlbHBcbiIsCiAJIltjb21tYW5kIC4uLl1cbiIKIAkiICAgIC0gc2hvdyBoZWxwIGluZm9ybWF0aW9uIChmb3IgJ2NvbW1hbmQnKVxuIgpAQCAtMzI1LDI2ICszMjUsMjYgQEAKICk7CiAKIC8qIFRoaXMgZG8gbm90IHVzdCB0aGUgVV9CT09UX0NNRCBtYWNybyBhcyA/IGNhbid0IGJlIHVzZWQgaW4gc3ltYm9sIG5hbWVzICovCi0jaWZkZWYgIENGR19MT05HSEVMUAorI2lmZGVmICBDT05GSUdfU1lTX0xPTkdIRUxQCiBjbWRfdGJsX3QgX191X2Jvb3RfY21kX3F1ZXN0aW9uX21hcmsgU3RydWN0X1NlY3Rpb24gPSB7Ci0JIj8iLAlDRkdfTUFYQVJHUywJMSwJZG9faGVscCwKKwkiPyIsCUNPTkZJR19TWVNfTUFYQVJHUywJMSwJZG9faGVscCwKIAkiPyAgICAgICAtIGFsaWFzIGZvciAnaGVscCdcbiIsCiAJTlVMTAogfTsKICNlbHNlCiBjbWRfdGJsX3QgX191X2Jvb3RfY21kX3F1ZXN0aW9uX21hcmsgU3RydWN0X1NlY3Rpb24gPSB7Ci0JIj8iLAlDRkdfTUFYQVJHUywJMSwJZG9faGVscCwKKwkiPyIsCUNPTkZJR19TWVNfTUFYQVJHUywJMSwJZG9faGVscCwKIAkiPyAgICAgICAtIGFsaWFzIGZvciAnaGVscCdcbiIKIH07Ci0jZW5kaWYgLyogQ0ZHX0xPTkdIRUxQICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MT05HSEVMUCAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBmaW5kIGNvbW1hbmQgdGFibGUgZW50cnkgZm9yIGEgY29tbWFuZAogICovCi1jbWRfdGJsX3QgKmZpbmRfY21kIChjb25zdCBjaGFyICpjbWQpCitjbWRfdGJsX3QgKmZpbmRfY21kX3RibCAoY29uc3QgY2hhciAqY21kLCBjbWRfdGJsX3QgKnRhYmxlLCBpbnQgdGFibGVfbGVuKQogewogCWNtZF90YmxfdCAqY21kdHA7Ci0JY21kX3RibF90ICpjbWR0cF90ZW1wID0gJl9fdV9ib290X2NtZF9zdGFydDsJLypJbml0IHZhbHVlICovCisJY21kX3RibF90ICpjbWR0cF90ZW1wID0gdGFibGU7CS8qSW5pdCB2YWx1ZSAqLwogCWNvbnN0IGNoYXIgKnA7CiAJaW50IGxlbjsKIAlpbnQgbl9mb3VuZCA9IDA7CkBAIC0zNTUsOCArMzU1LDggQEAKIAkgKi8KIAlsZW4gPSAoKHAgPSBzdHJjaHIoY21kLCAnLicpKSA9PSBOVUxMKSA/IHN0cmxlbiAoY21kKSA6IChwIC0gY21kKTsKIAotCWZvciAoY21kdHAgPSAmX191X2Jvb3RfY21kX3N0YXJ0OwotCSAgICAgY21kdHAgIT0gJl9fdV9ib290X2NtZF9lbmQ7CisJZm9yIChjbWR0cCA9IHRhYmxlOworCSAgICAgY21kdHAgIT0gdGFibGUgKyB0YWJsZV9sZW47CiAJICAgICBjbWR0cCsrKSB7CiAJCWlmIChzdHJuY21wIChjbWQsIGNtZHRwLT5uYW1lLCBsZW4pID09IDApIHsKIAkJCWlmIChsZW4gPT0gc3RybGVuIChjbWR0cC0+bmFtZSkpCkBAIC0zNzMsNiArMzczLDEyIEBACiAJcmV0dXJuIE5VTEw7CS8qIG5vdCBmb3VuZCBvciBhbWJpZ3VvdXMgY29tbWFuZCAqLwogfQogCitjbWRfdGJsX3QgKmZpbmRfY21kIChjb25zdCBjaGFyICpjbWQpCit7CisJaW50IGxlbiA9ICZfX3VfYm9vdF9jbWRfZW5kIC0gJl9fdV9ib290X2NtZF9zdGFydDsKKwlyZXR1cm4gZmluZF9jbWRfdGJsKGNtZCwgJl9fdV9ib290X2NtZF9zdGFydCwgbGVuKTsKK30KKwogI2lmZGVmIENPTkZJR19BVVRPX0NPTVBMRVRFCiAKIGludCB2YXJfY29tcGxldGUoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgY2hhciBsYXN0X2NoYXIsIGludCBtYXh2LCBjaGFyICpjbWR2W10pCkBAIC01NjQsMTIgKzU3MCwxMiBAQAogCXJldHVybiBsZW47CiB9CiAKLXN0YXRpYyBjaGFyIHRtcF9idWZbQ0ZHX0NCU0laRV07CS8qIGNvcHkgb2YgY29uc29sZSBJL08gYnVmZmVyCSovCitzdGF0aWMgY2hhciB0bXBfYnVmW0NPTkZJR19TWVNfQ0JTSVpFXTsJLyogY29weSBvZiBjb25zb2xlIEkvTyBidWZmZXIJKi8KIAogaW50IGNtZF9hdXRvX2NvbXBsZXRlKGNvbnN0IGNoYXIgKmNvbnN0IHByb21wdCwgY2hhciAqYnVmLCBpbnQgKm5wLCBpbnQgKmNvbHApCiB7CiAJaW50IG4gPSAqbnAsIGNvbCA9ICpjb2xwOwotCWNoYXIgKmFyZ3ZbQ0ZHX01BWEFSR1MgKyAxXTsJCS8qIE5VTEwgdGVybWluYXRlZAkqLworCWNoYXIgKmFyZ3ZbQ09ORklHX1NZU19NQVhBUkdTICsgMV07CQkvKiBOVUxMIHRlcm1pbmF0ZWQJKi8KIAljaGFyICpjbWR2WzIwXTsKIAljaGFyICpzLCAqdDsKIAljb25zdCBjaGFyICpzZXA7CkBAIC01NzcsNyArNTgzLDcgQEAKIAlpbnQgY250OwogCWNoYXIgbGFzdF9jaGFyOwogCi0JaWYgKHN0cmNtcChwcm9tcHQsIENGR19QUk9NUFQpICE9IDApCisJaWYgKHN0cmNtcChwcm9tcHQsIENPTkZJR19TWVNfUFJPTVBUKSAhPSAwKQogCQlyZXR1cm4gMDsJLyogbm90IGluIG5vcm1hbCBjb25zb2xlICovCiAKIAljbnQgPSBzdHJsZW4oYnVmKTsKQEAgLTYyNSw3ICs2MzEsNyBAQAogCWlmIChzICE9IE5VTEwpIHsKIAkJayA9IGxlbiArIHNlcGxlbjsKIAkJLyogbWFrZSBzdXJlIGl0IGZpdHMgKi8KLQkJaWYgKG4gKyBrID49IENGR19DQlNJWkUgLSAyKSB7CisJCWlmIChuICsgayA+PSBDT05GSUdfU1lTX0NCU0laRSAtIDIpIHsKIAkJCXB1dGMoJ1xhJyk7CiAJCQlyZXR1cm4gMTsKIAkJfQpkaWZmIC0tZ2l0IGEvY29tbW9uL2NvbnNvbGUuYyBiL2NvbW1vbi9jb25zb2xlLmMKaW5kZXggNTZkOTExOC4uNmYwODQ2ZiAxMDA2NDQKLS0tIGEvY29tbW9uL2NvbnNvbGUuYworKysgYi9jb21tb24vY29uc29sZS5jCkBAIC0zMywyMCArMzMsMjAgQEAKIGludCBjb25zb2xlX2NoYW5nZWQgPSAwOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyNpZmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCiAvKgogICogaWYgb3ZlcndyaXRlX2NvbnNvbGUgcmV0dXJucyAxLCB0aGUgc3RkaW4sIHN0ZGVyciBhbmQgc3Rkb3V0CiAgKiBhcmUgc3dpdGNoZWQgdG8gdGhlIHNlcmlhbCBwb3J0LCBlbHNlIHRoZSBzZXR0aW5ncyBpbiB0aGUKICAqIGVudmlyb25tZW50IGFyZSB1c2VkCiAgKi8KLSNpZmRlZiBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI2lmZGVmIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQogZXh0ZXJuIGludCBvdmVyd3JpdGVfY29uc29sZSAodm9pZCk7CiAjZGVmaW5lIE9WRVJXUklURV9DT05TT0xFIG92ZXJ3cml0ZV9jb25zb2xlICgpCiAjZWxzZQogI2RlZmluZSBPVkVSV1JJVEVfQ09OU09MRSAwCi0jZW5kaWYgLyogQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUgKi8KIAotI2VuZGlmIC8qIENGR19DT05TT0xFX0lTX0lOX0VOViAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYgKi8KIAogc3RhdGljIGludCBjb25zb2xlX3NldGZpbGUgKGludCBmaWxlLCBkZXZpY2VfdCAqIGRldikKIHsKQEAgLTk5LDcgKzk5LDcgQEAKIHsKIAl2YV9saXN0IGFyZ3M7CiAJdWludCBpOwotCWNoYXIgcHJpbnRidWZmZXJbQ0ZHX1BCU0laRV07CisJY2hhciBwcmludGJ1ZmZlcltDT05GSUdfU1lTX1BCU0laRV07CiAKIAl2YV9zdGFydCAoYXJncywgZm10KTsKIApAQCAtMTQ0LDcgKzE0NCw3IEBACiB7CiAJdmFfbGlzdCBhcmdzOwogCXVpbnQgaTsKLQljaGFyIHByaW50YnVmZmVyW0NGR19QQlNJWkVdOworCWNoYXIgcHJpbnRidWZmZXJbQ09ORklHX1NZU19QQlNJWkVdOwogCiAJdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CiAKQEAgLTIzOCw3ICsyMzgsNyBAQAogewogCXZhX2xpc3QgYXJnczsKIAl1aW50IGk7Ci0JY2hhciBwcmludGJ1ZmZlcltDRkdfUEJTSVpFXTsKKwljaGFyIHByaW50YnVmZmVyW0NPTkZJR19TWVNfUEJTSVpFXTsKIAogCXZhX3N0YXJ0IChhcmdzLCBmbXQpOwogCkBAIC0yNTUsNyArMjU1LDcgQEAKIHZvaWQgdnByaW50ZiAoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB7CiAJdWludCBpOwotCWNoYXIgcHJpbnRidWZmZXJbQ0ZHX1BCU0laRV07CisJY2hhciBwcmludGJ1ZmZlcltDT05GSUdfU1lTX1BCU0laRV07CiAKIAkvKiBGb3IgdGhpcyB0byB3b3JrLCBwcmludGJ1ZmZlciBtdXN0IGJlIGxhcmdlciB0aGFuCiAJICogYW55dGhpbmcgd2UgZXZlciB3YW50IHRvIHByaW50LgpAQCAtMzE0LDcgKzMxNCw3IEBACiB7CiAJdmFfbGlzdAlhcmdzOwogCXVpbnQJaTsKLQljaGFyCXByaW50YnVmZmVyW0NGR19QQlNJWkVdOworCWNoYXIJcHJpbnRidWZmZXJbQ09ORklHX1NZU19QQlNJWkVdOwogCiAJaWYgKCFvbmNlKSB7CiAJCW1lbXNldChzY3JlZW4sIDAsIHNpemVvZihzY3JlZW4pKTsKQEAgLTM5OCwxNSArMzk4LDE1IEBACiAJcmV0dXJuICgwKTsKIH0KIAotI2lmZGVmIENGR19DT05TT0xFX0lTX0lOX0VOVgorI2lmZGVmIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYKIC8qIENhbGxlZCBhZnRlciB0aGUgcmVsb2NhdGlvbiAtIHVzZSBkZXNpcmVkIGNvbnNvbGUgZnVuY3Rpb25zICovCiBpbnQgY29uc29sZV9pbml0X3IgKHZvaWQpCiB7CiAJY2hhciAqc3RkaW5uYW1lLCAqc3Rkb3V0bmFtZSwgKnN0ZGVycm5hbWU7CiAJZGV2aWNlX3QgKmlucHV0ZGV2ID0gTlVMTCwgKm91dHB1dGRldiA9IE5VTEwsICplcnJkZXYgPSBOVUxMOwotI2lmZGVmIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURQogCWludCBpOwotI2VuZGlmIC8qIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURSAqLwogCiAJLyogc2V0IGRlZmF1bHQgaGFuZGxlcnMgYXQgZmlyc3QgKi8KIAlnZC0+anRbWEZfZ2V0Y10gPSBzZXJpYWxfZ2V0YzsKQEAgLTQ0OSw3ICs0NDksNyBAQAogCiAJZ2QtPmZsYWdzIHw9IEdEX0ZMR19ERVZJTklUOwkvKiBkZXZpY2UgaW5pdGlhbGl6YXRpb24gY29tcGxldGVkICovCiAKLSNpZm5kZWYgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAorI2lmbmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAogCS8qIFByaW50IGluZm9ybWF0aW9uICovCiAJcHV0cyAoIkluOiAgICAiKTsKIAlpZiAoc3RkaW9fZGV2aWNlc1tzdGRpbl0gPT0gTlVMTCkgewpAQCAtNDcxLDE0ICs0NzEsMTQgQEAKIAl9IGVsc2UgewogCQlwcmludGYgKCIlc1xuIiwgc3RkaW9fZGV2aWNlc1tzdGRlcnJdLT5uYW1lKTsKIAl9Ci0jZW5kaWYgLyogQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUICovCiAKLSNpZmRlZiBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCisjaWZkZWYgQ09ORklHX1NZU19DT05TT0xFX0VOVl9PVkVSV1JJVEUKIAkvKiBzZXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyAod2lsbCBvdmVyd3JpdGUgcHJldmlvdXMgZW52IHNldHRpbmdzKSAqLwogCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKIAkJc2V0ZW52IChzdGRpb19uYW1lc1tpXSwgc3RkaW9fZGV2aWNlc1tpXS0+bmFtZSk7CiAJfQotI2VuZGlmIC8qIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0NPTlNPTEVfRU5WX09WRVJXUklURSAqLwogCiAjaWYgMAogCS8qIElmIG5vdGhpbmcgdXNhYmxlIGluc3RhbGxlZCwgdXNlIG9ubHkgdGhlIGluaXRpYWwgY29uc29sZSAqLwpAQCAtNDg4LDcgKzQ4OCw3IEBACiAJcmV0dXJuICgwKTsKIH0KIAotI2Vsc2UgLyogQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WICovCisjZWxzZSAvKiBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WICovCiAKIC8qIENhbGxlZCBhZnRlciB0aGUgcmVsb2NhdGlvbiAtIHVzZSBkZXNpcmVkIGNvbnNvbGUgZnVuY3Rpb25zICovCiBpbnQgY29uc29sZV9pbml0X3IgKHZvaWQpCkBAIC01MzMsNyArNTMzLDcgQEAKIAogCWdkLT5mbGFncyB8PSBHRF9GTEdfREVWSU5JVDsJLyogZGV2aWNlIGluaXRpYWxpemF0aW9uIGNvbXBsZXRlZCAqLwogCi0jaWZuZGVmIENGR19DT05TT0xFX0lORk9fUVVJRVQKKyNpZm5kZWYgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQKIAkvKiBQcmludCBpbmZvcm1hdGlvbiAqLwogCXB1dHMgKCJJbjogICAgIik7CiAJaWYgKHN0ZGlvX2RldmljZXNbc3RkaW5dID09IE5VTEwpIHsKQEAgLTU1NSw3ICs1NTUsNyBAQAogCX0gZWxzZSB7CiAJCXByaW50ZiAoIiVzXG4iLCBzdGRpb19kZXZpY2VzW3N0ZGVycl0tPm5hbWUpOwogCX0KLSNlbmRpZiAvKiBDRkdfQ09OU09MRV9JTkZPX1FVSUVUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQgKi8KIAogCS8qIFNldHRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewpAQCAtNTcxLDQgKzU3MSw0IEBACiAJcmV0dXJuICgwKTsKIH0KIAotI2VuZGlmIC8qIENGR19DT05TT0xFX0lTX0lOX0VOViAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYgKi8KZGlmZiAtLWdpdCBhL2NvbW1vbi9jeWNsb24yLmMgYi9jb21tb24vY3ljbG9uMi5jCmluZGV4IDQ3OWJlYmIuLjNlZDY0YjIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9jeWNsb24yLmMKKysrIGIvY29tbW9uL2N5Y2xvbjIuYwpAQCAtNDMsOCArNDMsOCBAQAogI2RlZmluZSBDT05GSUdfRlBHQV9ERUxBWSgpCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfRlBHQV9XQUlUCi0jZGVmaW5lIENGR19GUEdBX1dBSVQgQ0ZHX0haLzEwCQkvKiAxMDAgbXMgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19GUEdBX1dBSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1dBSVQgQ09ORklHX1NZU19IWi8xMAkJLyogMTAwIG1zICovCiAjZW5kaWYKIAogc3RhdGljIGludCBDWUMyX3BzX2xvYWQoIEFsdGVyYV9kZXNjICpkZXNjLCB2b2lkICpidWYsIHNpemVfdCBic2l6ZSApOwpAQCAtMTQ3LDcgKzE0Nyw3IEBACiAJCQkJImRvbmU6XHQweCVwXG5cbiIsCiAJCQkJX19GVU5DVElPTl9fLCAmZm4sIGZuLCBmbi0+Y29uZmlnLCBmbi0+c3RhdHVzLAogCQkJCWZuLT53cml0ZSwgZm4tPmRvbmUpOwotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwcmludGYgKCJMb2FkaW5nIEZQR0EgRGV2aWNlICVkLi4uIiwgY29va2llKTsKICNlbmRpZgogCkBAIC0xNjcsNyArMTY3LDcgQEAKIAkJdHMgPSBnZXRfdGltZXIgKDApOwkJLyogZ2V0IGN1cnJlbnQgdGltZSAqLwogCQlkbyB7CiAJCQlDT05GSUdfRlBHQV9ERUxBWSAoKTsKLQkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENGR19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KKwkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENPTkZJR19TWVNfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCiAJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgU1RBVFVTIHRvIGdvIGhpZ2guXG4iKTsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTE4MywxMyArMTgzLDEzIEBACiAJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQl9Ci0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXB1dHMoIiBPSz8gLi4uIik7CiAjZW5kaWYKIAogCQlDT05GSUdfRlBHQV9ERUxBWSAoKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnICcpOwkJCS8qIHRlcm1pbmF0ZSB0aGUgZG90dGVkIGxpbmUgKi8KICNlbmRpZgogCkBAIC0yMDIsMTMgKzIwMiwxMyBAQAogCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCXJldHVybiAoRlBHQV9GQUlMKTsKIAl9Ci0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJcHV0cygiIE9LXG4iKTsKICNlbmRpZgogCiAJcmV0X3ZhbCA9IEZQR0FfU1VDQ0VTUzsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCWlmIChyZXRfdmFsID09IEZQR0FfU1VDQ0VTUykgewogCQlwdXRzICgiRG9uZS5cbiIpOwogCX0KZGlmZiAtLWdpdCBhL2NvbW1vbi9kZXZpY2VzLmMgYi9jb21tb24vZGV2aWNlcy5jCmluZGV4IDdkMGFjMmUuLmNlM2I3YTAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9kZXZpY2VzLmMKKysrIGIvY29tbW9uL2RldmljZXMuYwpAQCAtNDAsMTIgKzQwLDEyIEBACiBkZXZpY2VfdCAqc3RkaW9fZGV2aWNlc1tdID0geyBOVUxMLCBOVUxMLCBOVUxMIH07CiBjaGFyICpzdGRpb19uYW1lc1tNQVhfRklMRVNdID0geyAic3RkaW4iLCAic3Rkb3V0IiwgInN0ZGVyciIgfTsKIAotI2lmIGRlZmluZWQoQ09ORklHX1NQTEFTSF9TQ1JFRU4pICYmICFkZWZpbmVkKENGR19ERVZJQ0VfTlVMTERFVikKLSNkZWZpbmUJQ0ZHX0RFVklDRV9OVUxMREVWCTEKKyNpZiBkZWZpbmVkKENPTkZJR19TUExBU0hfU0NSRUVOKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWKQorI2RlZmluZQlDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEKICNlbmRpZgogCiAKLSNpZmRlZiBDRkdfREVWSUNFX05VTExERVYKKyNpZmRlZiBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCiB2b2lkIG51bGxkZXZfcHV0Yyhjb25zdCBjaGFyIGMpCiB7CiAJLyogbnVsbGRldiBpcyBlbXB0eSEgKi8KQEAgLTkwLDcgKzkwLDcgQEAKIAogCWRldmljZV9yZWdpc3RlciAoJmRldik7CiAKLSNpZmRlZiBDRkdfREVWSUNFX05VTExERVYKKyNpZmRlZiBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCiAJbWVtc2V0ICgmZGV2LCAwLCBzaXplb2YgKGRldikpOwogCiAJc3RyY3B5IChkZXYubmFtZSwgIm51bGxkZXYiKTsKQEAgLTE2Miw3ICsxNjIsNyBAQAogLyogZGVyZWdpc3RlciB0aGUgZGV2aWNlICJkZXZuYW1lIi4KICAqIHJldHVybnMgMCBpZiBzdWNjZXNzLCAtMSBpZiBkZXZpY2UgaXMgYXNzaWduZWQgYW5kIDEgaWYgZGV2bmFtZSBub3QgZm91bmQKICAqLwotI2lmZGVmCUNGR19ERVZJQ0VfREVSRUdJU1RFUgorI2lmZGVmCUNPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIKIGludCBkZXZpY2VfZGVyZWdpc3RlcihjaGFyICpkZXZuYW1lKQogewogCWludCBsOwpAQCAtMTk3LDcgKzE5Nyw3IEBACiAJfQogCXJldHVybiAwOwogfQotI2VuZGlmCS8qIENGR19ERVZJQ0VfREVSRUdJU1RFUiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIgKi8KIAogaW50IGRldmljZXNfaW5pdCAodm9pZCkKIHsKQEAgLTIxNiw3ICsyMTYsNyBAQAogCUlOSVRfTElTVF9IRUFEKCYoZGV2cy5saXN0KSk7CiAKICNpZiBkZWZpbmVkKENPTkZJR19IQVJEX0kyQykgfHwgZGVmaW5lZChDT05GSUdfU09GVF9JMkMpCi0JaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0xDRAogCWRydl9sY2RfaW5pdCAoKTsKZGlmZiAtLWdpdCBhL2NvbW1vbi9lbnZfY29tbW9uLmMgYi9jb21tb24vZW52X2NvbW1vbi5jCmluZGV4IDc3Zjk5NDQuLjZiZTNiYjAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9lbnZfY29tbW9uLmMKKysrIGIvY29tbW9uL2Vudl9jb21tb24uYwpAQCAtOTEsMTQgKzkxLDIwIEBACiAjaWZkZWYJQ09ORklHX0VUSDNBRERSCiAJImV0aDNhZGRyPSIJTUtfU1RSKENPTkZJR19FVEgzQUREUikJCSJcMCIKICNlbmRpZgorI2lmZGVmCUNPTkZJR19FVEg0QUREUgorCSJldGg0YWRkcj0iCU1LX1NUUihDT05GSUdfRVRINEFERFIpCQkiXDAiCisjZW5kaWYKKyNpZmRlZglDT05GSUdfRVRINUFERFIKKwkiZXRoNWFkZHI9IglNS19TVFIoQ09ORklHX0VUSDVBRERSKQkJIlwwIgorI2VuZGlmCiAjaWZkZWYJQ09ORklHX0lQQUREUgogCSJpcGFkZHI9IglNS19TVFIoQ09ORklHX0lQQUREUikJCSJcMCIKICNlbmRpZgogI2lmZGVmCUNPTkZJR19TRVJWRVJJUAogCSJzZXJ2ZXJpcD0iCU1LX1NUUihDT05GSUdfU0VSVkVSSVApCQkiXDAiCiAjZW5kaWYKLSNpZmRlZglDRkdfQVVUT0xPQUQKLQkiYXV0b2xvYWQ9IglDRkdfQVVUT0xPQUQJCQkiXDAiCisjaWZkZWYJQ09ORklHX1NZU19BVVRPTE9BRAorCSJhdXRvbG9hZD0iCUNPTkZJR19TWVNfQVVUT0xPQUQJCQkiXDAiCiAjZW5kaWYKICNpZmRlZglDT05GSUdfUFJFQk9PVAogCSJwcmVib290PSIJQ09ORklHX1BSRUJPT1QJCQkiXDAiCkBAIC0yMTQsNyArMjIwLDcgQEAKIAltZW1zZXQoZW52X3B0ciwgMCwgc2l6ZW9mKGVudl90KSk7CiAJbWVtY3B5KGVudl9wdHItPmRhdGEsIGRlZmF1bHRfZW52aXJvbm1lbnQsCiAJICAgICAgIHNpemVvZihkZWZhdWx0X2Vudmlyb25tZW50KSk7Ci0jaWZkZWYgQ0ZHX1JFRFVOREFORF9FTlZJUk9OTUVOVAorI2lmZGVmIENPTkZJR19TWVNfUkVEVU5EQU5EX0VOVklST05NRU5UCiAJZW52X3B0ci0+ZmxhZ3MgPSAweEZGOwogI2VuZGlmCiAJZW52X2NyY191cGRhdGUgKCk7CmRpZmYgLS1naXQgYS9jb21tb24vZW52X2VlcHJvbS5jIGIvY29tbW9uL2Vudl9lZXByb20uYwppbmRleCAxZjBmNDEzLi4xNTc4ZDYxIDEwMDY0NAotLS0gYS9jb21tb24vZW52X2VlcHJvbS5jCisrKyBiL2NvbW1vbi9lbnZfZWVwcm9tLmMKQEAgLTM5LDcgKzM5LDcgQEAKIHsKIAl1Y2hhciBjOwogCi0JZWVwcm9tX3JlYWQgKENGR19ERUZfRUVQUk9NX0FERFIsCisJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLAogCQkgICAgIENPTkZJR19FTlZfT0ZGU0VUK2luZGV4K29mZnNldG9mKGVudl90LGRhdGEpLAogCQkgICAgICZjLCAxKTsKIApAQCAtNDgsNyArNDgsNyBAQAogCiB2b2lkIGVudl9yZWxvY2F0ZV9zcGVjICh2b2lkKQogewotCWVlcHJvbV9yZWFkIChDRkdfREVGX0VFUFJPTV9BRERSLAorCWVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiwKIAkJICAgICBDT05GSUdfRU5WX09GRlNFVCwKIAkJICAgICAodWNoYXIqKWVudl9wdHIsCiAJCSAgICAgQ09ORklHX0VOVl9TSVpFKTsKQEAgLTU2LDcgKzU2LDcgQEAKIAogaW50IHNhdmVlbnYodm9pZCkKIHsKLQlyZXR1cm4gZWVwcm9tX3dyaXRlIChDRkdfREVGX0VFUFJPTV9BRERSLAorCXJldHVybiBlZXByb21fd3JpdGUgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLAogCQkJICAgICBDT05GSUdfRU5WX09GRlNFVCwKIAkJCSAgICAgKHVjaGFyICopZW52X3B0ciwKIAkJCSAgICAgQ09ORklHX0VOVl9TSVpFKTsKQEAgLTc3LDcgKzc3LDcgQEAKIAllZXByb21faW5pdCAoKTsJLyogcHJlcGFyZSBmb3IgRUVQUk9NIHJlYWQvd3JpdGUgKi8KIAogCS8qIHJlYWQgb2xkIENSQyAqLwotCWVlcHJvbV9yZWFkIChDRkdfREVGX0VFUFJPTV9BRERSLAorCWVlcHJvbV9yZWFkIChDT05GSUdfU1lTX0RFRl9FRVBST01fQUREUiwKIAkJICAgICBDT05GSUdfRU5WX09GRlNFVCtvZmZzZXRvZihlbnZfdCxjcmMpLAogCQkgICAgICh1Y2hhciAqKSZjcmMsIHNpemVvZih1bG9uZykpOwogCkBAIC04Nyw3ICs4Nyw3IEBACiAJd2hpbGUgKGxlbiA+IDApIHsKIAkJaW50IG4gPSAobGVuID4gc2l6ZW9mKGJ1ZikpID8gc2l6ZW9mKGJ1ZikgOiBsZW47CiAKLQkJZWVwcm9tX3JlYWQgKENGR19ERUZfRUVQUk9NX0FERFIsIENPTkZJR19FTlZfT0ZGU0VUK29mZiwgYnVmLCBuKTsKKwkJZWVwcm9tX3JlYWQgKENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSLCBDT05GSUdfRU5WX09GRlNFVCtvZmYsIGJ1Ziwgbik7CiAJCW5ldyA9IGNyYzMyIChuZXcsIGJ1Ziwgbik7CiAJCWxlbiAtPSBuOwogCQlvZmYgKz0gbjsKZGlmZiAtLWdpdCBhL2NvbW1vbi9lbnZfZW1iZWRkZWQuYyBiL2NvbW1vbi9lbnZfZW1iZWRkZWQuYwppbmRleCA3N2U1NjE5Li5hZTZjYWM0IDEwMDY0NAotLS0gYS9jb21tb24vZW52X2VtYmVkZGVkLmMKKysrIGIvY29tbW9uL2Vudl9lbWJlZGRlZC5jCkBAIC01MSw3ICs1MSw3IEBACiAgKiBhIHNlcGVyYXRlIHNlY3Rpb24uICBOb3RlIHRoYXQgRU5WX0NSQyBpcyBvbmx5IGRlZmluZWQgd2hlbiBidWlsZGluZwogICogVS1Cb290IGl0c2VsZi4KICAqLwotI2lmIChkZWZpbmVkKENGR19VU0VfUFBDRU5WKSB8fCBkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkpICYmIFwKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX1VTRV9QUENFTlYpIHx8IGRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSkgJiYgXAogICAgICBkZWZpbmVkKEVOVl9DUkMpIC8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIFUtQm9vdCAucHBjZW52IHNlY3Rpb24gKi8KIC8qIFhYWCAtIFRoaXMgb25seSB3b3JrcyB3aXRoIEdOVSBDICovCiAjICBkZWZpbmUgX19QUENFTlZfXyBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbigiLnBwY2VudiIpKSkKQEAgLTk4LDcgKzk4LDcgQEAKIAogZW52X3QgZW52aXJvbm1lbnQgX19QUENFTlZfXyA9IHsKIAlFTlZfQ1JDLAkvKiBDUkMgU3VtICovCi0jaWZkZWYgQ0ZHX1JFRFVOREFORF9FTlZJUk9OTUVOVAorI2lmZGVmIENPTkZJR19TWVNfUkVEVU5EQU5EX0VOVklST05NRU5UCiAJMSwJCS8qIEZsYWdzOiB2YWxpZCAqLwogI2VuZGlmCiAJewpAQCAtMTM1LDYgKzEzNSwxMiBAQAogI2lmZGVmCUNPTkZJR19FVEgzQUREUgogCSJldGgzYWRkcj0iCU1LX1NUUihDT05GSUdfRVRIM0FERFIpCQkiXDAiCiAjZW5kaWYKKyNpZmRlZglDT05GSUdfRVRINEFERFIKKwkiZXRoNGFkZHI9IglNS19TVFIoQ09ORklHX0VUSDRBRERSKQkJIlwwIgorI2VuZGlmCisjaWZkZWYJQ09ORklHX0VUSDVBRERSCisJImV0aDVhZGRyPSIJTUtfU1RSKENPTkZJR19FVEg1QUREUikJCSJcMCIKKyNlbmRpZgogI2lmZGVmCUNPTkZJR19FVEhQUklNRQogCSJldGhwcmltZT0iCUNPTkZJR19FVEhQUklNRQkJCSJcMCIKICNlbmRpZgpAQCAtMTQ0LDggKzE1MCw4IEBACiAjaWZkZWYJQ09ORklHX1NFUlZFUklQCiAJInNlcnZlcmlwPSIJTUtfU1RSKENPTkZJR19TRVJWRVJJUCkJCSJcMCIKICNlbmRpZgotI2lmZGVmCUNGR19BVVRPTE9BRAotCSJhdXRvbG9hZD0iCUNGR19BVVRPTE9BRAkJCSJcMCIKKyNpZmRlZglDT05GSUdfU1lTX0FVVE9MT0FECisJImF1dG9sb2FkPSIJQ09ORklHX1NZU19BVVRPTE9BRAkJCSJcMCIKICNlbmRpZgogI2lmZGVmCUNPTkZJR19ST09UUEFUSAogCSJyb290cGF0aD0iCU1LX1NUUihDT05GSUdfUk9PVFBBVEgpCQkiXDAiCmRpZmYgLS1naXQgYS9jb21tb24vZW52X252cmFtLmMgYi9jb21tb24vZW52X252cmFtLmMKaW5kZXggYThiNzk1OS4uNTYyZWRkMCAxMDA2NDQKLS0tIGEvY29tbW9uL2Vudl9udnJhbS5jCisrKyBiL2NvbW1vbi9lbnZfbnZyYW0uYwpAQCAtMzUsNyArMzUsNyBAQAogICogc3BhY2UgdXNpbmcgaXRzIGFkZHJlc3MgYW5kIGRhdGEgcmVnaXN0ZXJzLiBUbyBlbmFibGUgdXNhZ2Ugb2YKICAqIE5WUkFNIGluIHRob3NlIGNhc2VzIEkgaW52ZW50ZWQgdGhlIGZ1bmN0aW9ucyAnbnZyYW1fcmVhZCgpJyBhbmQKICAqICdudnJhbV93cml0ZSgpJywgd2hpY2ggd2lsbCBiZSBhY3RpdmF0ZWQgdXBvbiB0aGUgY29uZmlndXJhdGlvbgotICogI2RlZmluZSBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUuIE5vdGUsIHRoYXQgdGhvc2UgZnVuY3Rpb25zIGFyZQorICogI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FLiBOb3RlLCB0aGF0IHRob3NlIGZ1bmN0aW9ucyBhcmUKICAqIHN0cm9uZ2x5IGRlcGVuZGVudCBvbiB0aGUgdXNlZCBIVywgYW5kIG11c3QgYmUgcmVkZWZpbmVkIGZvciBlYWNoCiAgKiBib2FyZCB0aGF0IHdhbnRzIHRvIHVzZSB0aGVtLgogICovCkBAIC00Nyw3ICs0Nyw3IEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0jaWZkZWYgQ0ZHX05WUkFNX0FDQ0VTU19ST1VUSU5FCisjaWZkZWYgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORQogZXh0ZXJuIHZvaWQgKm52cmFtX3JlYWQodm9pZCAqZGVzdCwgY29uc3QgbG9uZyBzcmMsIHNpemVfdCBjb3VudCk7CiBleHRlcm4gdm9pZCBudnJhbV93cml0ZShsb25nIGRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNvdW50KTsKIGVudl90ICplbnZfcHRyID0gTlVMTDsKQEAgLTYzLDcgKzYzLDcgQEAKICNpZmRlZiBDT05GSUdfQU1JR0FPTkVHM1NFCiB1Y2hhciBlbnZfZ2V0X2NoYXJfc3BlYyAoaW50IGluZGV4KQogewotI2lmZGVmIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORQorI2lmZGVmIENPTkZJR19TWVNfTlZSQU1fQUNDRVNTX1JPVVRJTkUKIAl1Y2hhciBjOwogCiAJbnZyYW1fcmVhZCgmYywgQ09ORklHX0VOVl9BRERSK2luZGV4LCAxKTsKQEAgLTgwLDcgKzgwLDcgQEAKICNlbHNlCiB1Y2hhciBlbnZfZ2V0X2NoYXJfc3BlYyAoaW50IGluZGV4KQogewotI2lmZGVmIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORQorI2lmZGVmIENPTkZJR19TWVNfTlZSQU1fQUNDRVNTX1JPVVRJTkUKIAl1Y2hhciBjOwogCiAJbnZyYW1fcmVhZCgmYywgQ09ORklHX0VOVl9BRERSK2luZGV4LCAxKTsKQEAgLTk0LDcgKzk0LDcgQEAKIAogdm9pZCBlbnZfcmVsb2NhdGVfc3BlYyAodm9pZCkKIHsKLSNpZiBkZWZpbmVkKENGR19OVlJBTV9BQ0NFU1NfUk9VVElORSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlZSQU1fQUNDRVNTX1JPVVRJTkUpCiAJbnZyYW1fcmVhZChlbnZfcHRyLCBDT05GSUdfRU5WX0FERFIsIENPTkZJR19FTlZfU0laRSk7CiAjZWxzZQogCW1lbWNweSAoZW52X3B0ciwgKHZvaWQqKUNPTkZJR19FTlZfQUREUiwgQ09ORklHX0VOVl9TSVpFKTsKQEAgLTEwNyw3ICsxMDcsNyBAQAogI2lmZGVmIENPTkZJR19BTUlHQU9ORUczU0UKIAllbmFibGVfbnZyYW0oKTsKICNlbmRpZgotI2lmZGVmIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORQorI2lmZGVmIENPTkZJR19TWVNfTlZSQU1fQUNDRVNTX1JPVVRJTkUKIAludnJhbV93cml0ZShDT05GSUdfRU5WX0FERFIsIGVudl9wdHIsIENPTkZJR19FTlZfU0laRSk7CiAjZWxzZQogCWlmIChtZW1jcHkgKChjaGFyICopQ09ORklHX0VOVl9BRERSLCBlbnZfcHRyLCBDT05GSUdfRU5WX1NJWkUpID09IE5VTEwpCkBAIC0xMzEsNyArMTMxLDcgQEAKICNpZmRlZiBDT05GSUdfQU1JR0FPTkVHM1NFCiAJZW5hYmxlX252cmFtKCk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19OVlJBTV9BQ0NFU1NfUk9VVElORSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlZSQU1fQUNDRVNTX1JPVVRJTkUpCiAJdWxvbmcgY3JjOwogCXVjaGFyIGRhdGFbRU5WX1NJWkVdOwogCW52cmFtX3JlYWQgKCZjcmMsIENPTkZJR19FTlZfQUREUiwgc2l6ZW9mKHVsb25nKSk7CmRpZmYgLS1naXQgYS9jb21tb24vZmxhc2guYyBiL2NvbW1vbi9mbGFzaC5jCmluZGV4IGZlMzlkNTUuLmViNGIyZjUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9mbGFzaC5jCisrKyBiL2NvbW1vbi9mbGFzaC5jCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8Zmxhc2guaD4KIAotI2lmICFkZWZpbmVkKENGR19OT19GTEFTSCkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05PX0ZMQVNIKQogCiBleHRlcm4gZmxhc2hfaW5mb190ICBmbGFzaF9pbmZvW107IC8qIGluZm8gZm9yIEZMQVNIIGNoaXBzICovCiAKQEAgLTc1LDE5ICs3NSwxOSBAQAogCQkgKi8KIAkJaWYgKGZyb20gPD0gZW5kICYmIHRvID49IGluZm8tPnN0YXJ0W2ldKSB7CiAJCQlpZiAoZmxhZyAmIEZMQUdfUFJPVEVDVF9DTEVBUikgewotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQkJZmxhc2hfcmVhbF9wcm90ZWN0KGluZm8sIGksIDApOwogI2Vsc2UKIAkJCQlpbmZvLT5wcm90ZWN0W2ldID0gMDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQkJCWRlYnVnICgicHJvdGVjdCBvZmYgJWRcbiIsIGkpOwogCQkJfQogCQkJZWxzZSBpZiAoZmxhZyAmIEZMQUdfUFJPVEVDVF9TRVQpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJCWZsYXNoX3JlYWxfcHJvdGVjdChpbmZvLCBpLCAxKTsKICNlbHNlCiAJCQkJaW5mby0+cHJvdGVjdFtpXSA9IDE7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAkJCQlkZWJ1ZyAoInByb3RlY3Qgb24gJWRcbiIsIGkpOwogCQkJfQogCQl9CkBAIC0xMDQsNyArMTA0LDcgQEAKIAlmbGFzaF9pbmZvX3QgKmluZm87CiAJaW50IGk7CiAKLQlmb3IgKGk9MCwgaW5mbyA9ICZmbGFzaF9pbmZvWzBdOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSwgKytpbmZvKSB7CisJZm9yIChpPTAsIGluZm8gPSAmZmxhc2hfaW5mb1swXTsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytpLCArK2luZm8pIHsKIAkJaWYgKGluZm8tPmZsYXNoX2lkICE9IEZMQVNIX1VOS05PV04gJiYKIAkJICAgIGFkZHIgPj0gaW5mby0+c3RhcnRbMF0gJiYKIAkJICAgIC8qIFdBUk5JTkcgLSBUaGUgJy0gMScgaXMgbmVlZGVkIGlmIHRoZSBmbGFzaApAQCAtMjI1LDQgKzIyNSw0IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2VuZGlmIC8qICFDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiAhQ09ORklHX1NZU19OT19GTEFTSCAqLwpkaWZmIC0tZ2l0IGEvY29tbW9uL2h1c2guYyBiL2NvbW1vbi9odXNoLmMKaW5kZXggMDkzYzQyOC4uOWFlZjZlNCAxMDA2NDQKLS0tIGEvY29tbW9uL2h1c2guYworKysgYi9jb21tb24vaHVzaC5jCkBAIC05Niw3ICs5Niw3IEBACiAvKmNtZF9ib290LmMqLwogZXh0ZXJuIGludCBkb19ib290ZCAoY21kX3RibF90ICpjbWR0cCwgaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pOyAgICAgIC8qIGRvX2Jvb3RkICovCiAjZW5kaWYKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAjaWZuZGVmIF9fVV9CT09UX18KICNpbmNsdWRlIDxjdHlwZS5oPiAgICAgLyogaXNhbHBoYSwgaXNkaWdpdCAqLwogI2luY2x1ZGUgPHVuaXN0ZC5oPiAgICAvKiBnZXRwaWQgKi8KQEAgLTUwMSwxMCArNTAxLDYgQEAKIHN0YXRpYyBjaGFyICoqbWFrZV9saXN0X2luKGNoYXIgKippbnAsIGNoYXIgKm5hbWUpOwogc3RhdGljIGNoYXIgKmluc2VydF92YXJfdmFsdWUoY2hhciAqaW5wKTsKIHN0YXRpYyBjaGFyICpnZXRfbG9jYWxfdmFyKGNvbnN0IGNoYXIgKnZhcik7Ci0jaWZuZGVmIF9fVV9CT09UX18KLXN0YXRpYyB2b2lkICB1bnNldF9sb2NhbF92YXIoY29uc3QgY2hhciAqbmFtZSk7Ci0jZW5kaWYKLXN0YXRpYyBpbnQgc2V0X2xvY2FsX3Zhcihjb25zdCBjaGFyICpzLCBpbnQgZmxnX2V4cG9ydCk7CiAKICNpZm5kZWYgX19VX0JPT1RfXwogLyogVGFibGUgb2YgYnVpbHQtaW4gZnVuY3Rpb25zLiAgVGhleSBjYW4gYmUgZm9ya2VkIG9yIG5vdCwgZGVwZW5kaW5nIG9uCkBAIC0xMDIzLDkgKzEwMTksOSBAQAogCWZmbHVzaChzdGRvdXQpOwogCWktPnAgPSB0aGVfY29tbWFuZDsKICNlbHNlCi0JZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ0ZHX0NCU0laRV07CisJZXh0ZXJuIGNoYXIgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwogCWludCBuOwotCXN0YXRpYyBjaGFyIHRoZV9jb21tYW5kW0NGR19DQlNJWkVdOworCXN0YXRpYyBjaGFyIHRoZV9jb21tYW5kW0NPTkZJR19TWVNfQ0JTSVpFXTsKIAogI2lmZGVmIENPTkZJR19CT09UX1JFVFJZX1RJTUUKICMgIGlmZGVmIENPTkZJR19SRVNFVF9UT19SRVRSWQpAQCAtMTAzNyw5ICsxMDMzLDkgQEAKICNlbmRpZgogCWktPl9fcHJvbXB0bWUgPSAxOwogCWlmIChpLT5wcm9tcHRtb2RlID09IDEpIHsKLQkJbiA9IHJlYWRsaW5lKENGR19QUk9NUFQpOworCQluID0gcmVhZGxpbmUoQ09ORklHX1NZU19QUk9NUFQpOwogCX0gZWxzZSB7Ci0JCW4gPSByZWFkbGluZShDRkdfUFJPTVBUX0hVU0hfUFMyKTsKKwkJbiA9IHJlYWRsaW5lKENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyKTsKIAl9CiAjaWZkZWYgQ09ORklHX0JPT1RfUkVUUllfVElNRQogCWlmIChuID09IC0yKSB7CkBAIC0xMDc5LDcgKzEwNzUsNyBAQAogCWVsc2UgewogCQlpZiAoY29uc29sZV9idWZmZXJbMF0gIT0gJ1xuJykgewogCQkJaWYgKHN0cmxlbih0aGVfY29tbWFuZCkgKyBzdHJsZW4oY29uc29sZV9idWZmZXIpCi0JCQkgICAgPCBDRkdfQ0JTSVpFKSB7CisJCQkgICAgPCBDT05GSUdfU1lTX0NCU0laRSkgewogCQkJCW4gPSBzdHJsZW4odGhlX2NvbW1hbmQpOwogCQkJCXRoZV9jb21tYW5kW24tMV0gPSAnICc7CiAJCQkJc3RyY3B5KCZ0aGVfY29tbWFuZFtuXSxjb25zb2xlX2J1ZmZlcik7CkBAIC0yMjA0LDcgKzIyMDAsNyBAQAogICAgZmxnX2V4cG9ydD09MCBpZiBvbmx5IGxvY2FsIChub3QgZXhwb3J0aW5nKSB2YXJpYWJsZQogICAgZmxnX2V4cG9ydD09MSBpZiAibmV3IiBleHBvcnRpbmcgZW52aXJvbgogICAgZmxnX2V4cG9ydD4xICBpZiBjdXJyZW50IHN0YXJ0dXAgZW52aXJvbiAobm90IGNhbGwgcHV0ZW52KCkpICovCi1zdGF0aWMgaW50IHNldF9sb2NhbF92YXIoY29uc3QgY2hhciAqcywgaW50IGZsZ19leHBvcnQpCitpbnQgc2V0X2xvY2FsX3Zhcihjb25zdCBjaGFyICpzLCBpbnQgZmxnX2V4cG9ydCkKIHsKIAljaGFyICpuYW1lLCAqdmFsdWU7CiAJaW50IHJlc3VsdD0wOwpAQCAtMjI5NSw4ICsyMjkxLDcgQEAKIAlyZXR1cm4gcmVzdWx0OwogfQogCi0jaWZuZGVmIF9fVV9CT09UX18KLXN0YXRpYyB2b2lkIHVuc2V0X2xvY2FsX3Zhcihjb25zdCBjaGFyICpuYW1lKQordm9pZCB1bnNldF9sb2NhbF92YXIoY29uc3QgY2hhciAqbmFtZSkKIHsKIAlzdHJ1Y3QgdmFyaWFibGVzICpjdXI7CiAKQEAgLTIzMTEsOCArMjMwNiwxMCBAQAogCQkJCWVycm9yX21zZygiJXM6IHJlYWRvbmx5IHZhcmlhYmxlIiwgbmFtZSk7CiAJCQkJcmV0dXJuOwogCQkJfSBlbHNlIHsKKyNpZm5kZWYgX19VX0JPT1RfXwogCQkJCWlmKGN1ci0+ZmxnX2V4cG9ydCkKIAkJCQkJdW5zZXRlbnYoY3VyLT5uYW1lKTsKKyNlbmRpZgogCQkJCWZyZWUoY3VyLT5uYW1lKTsKIAkJCQlmcmVlKGN1ci0+dmFsdWUpOwogCQkJCXdoaWxlIChuZXh0LT5uZXh0ICE9IGN1cikKQEAgLTIzMjMsNyArMjMyMCw2IEBACiAJCX0KIAl9CiB9Ci0jZW5kaWYKIAogc3RhdGljIGludCBpc19hc3NpZ25tZW50KGNvbnN0IGNoYXIgKnMpCiB7CkBAIC0zNTg4LDUgKzM1ODQsNTMgQEAKIAlyZXR1cm4gc3RyOwogfQogCisjaWZkZWYgX19VX0JPT1RfXworaW50IGRvX3Nob3d2YXIgKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCWludCBpLCBrOworCWludCByY29kZSA9IDA7CisJc3RydWN0IHZhcmlhYmxlcyAqY3VyOworCi0jZW5kaWYgLyogQ0ZHX0hVU0hfUEFSU0VSICovCisJaWYgKGFyZ2MgPT0gMSkgewkJLyogUHJpbnQgYWxsIGVudiB2YXJpYWJsZXMJKi8KKwkJZm9yIChjdXIgPSB0b3BfdmFyczsgY3VyOyBjdXIgPSBjdXItPm5leHQpIHsKKwkJCXByaW50ZiAoIiVzPSVzXG4iLCBjdXItPm5hbWUsIGN1ci0+dmFsdWUpOworCQkJaWYgKGN0cmxjICgpKSB7CisJCQkJcHV0cyAoIlxuICoqIEFib3J0XG4iKTsKKwkJCQlyZXR1cm4gMTsKKwkJCX0KKwkJfQorCQlyZXR1cm4gMDsKKwl9CisJZm9yIChpID0gMTsgaSA8IGFyZ2M7ICsraSkgewkvKiBwcmludCBzaW5nbGUgZW52IHZhcmlhYmxlcwkqLworCQljaGFyICpuYW1lID0gYXJndltpXTsKKworCQlrID0gLTE7CisJCWZvciAoY3VyID0gdG9wX3ZhcnM7IGN1cjsgY3VyID0gY3VyLT5uZXh0KSB7CisJCQlpZihzdHJjbXAgKGN1ci0+bmFtZSwgbmFtZSkgPT0gMCkgeworCQkJCWsgPSAwOworCQkJCXByaW50ZiAoIiVzPSVzXG4iLCBjdXItPm5hbWUsIGN1ci0+dmFsdWUpOworCQkJfQorCQkJaWYgKGN0cmxjICgpKSB7CisJCQkJcHV0cyAoIlxuICoqIEFib3J0XG4iKTsKKwkJCQlyZXR1cm4gMTsKKwkJCX0KKwkJfQorCQlpZiAoayA8IDApIHsKKwkJCXByaW50ZiAoIiMjIEVycm9yOiBcIiVzXCIgbm90IGRlZmluZWRcbiIsIG5hbWUpOworCQkJcmNvZGUgKys7CisJCX0KKwl9CisJcmV0dXJuIHJjb2RlOworfQorCitVX0JPT1RfQ01EKAorCXNob3d2YXIsIENPTkZJR19TWVNfTUFYQVJHUywgMSwJZG9fc2hvd3ZhciwKKwkic2hvd3Zhci0gcHJpbnQgbG9jYWwgaHVzaHNoZWxsIHZhcmlhYmxlc1xuIiwKKwkiXG4gICAgLSBwcmludCB2YWx1ZXMgb2YgYWxsIGh1c2hzaGVsbCB2YXJpYWJsZXNcbiIKKwkic2hvd3ZhciBuYW1lIC4uLlxuIgorCSIgICAgLSBwcmludCB2YWx1ZSBvZiBodXNoc2hlbGwgdmFyaWFibGUgJ25hbWUnXG4iCispOworCisjZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KZGlmZiAtLWdpdCBhL2NvbW1vbi9pbWFnZS5jIGIvY29tbW9uL2ltYWdlLmMKaW5kZXggZGM4ZDdkZC4uODY2ZWRmNiAxMDA2NDQKLS0tIGEvY29tbW9uL2ltYWdlLmMKKysrIGIvY29tbW9uL2ltYWdlLmMKQEAgLTQyNiw4ICs0MjYsOCBAQAogCQlyZXR1cm4gdG1wOwogCX0KIAotI2lmIGRlZmluZWQoQ0ZHX1NEUkFNX0JBU0UpCi0JcmV0dXJuIENGR19TRFJBTV9CQVNFOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19TRFJBTV9CQVNFKQorCXJldHVybiBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUk0pCiAJcmV0dXJuIGdkLT5iZC0+YmlfZHJhbVswXS5zdGFydDsKICNlbHNlCkBAIC00NDAsNyArNDQwLDcgQEAKIAljaGFyICpzID0gZ2V0ZW52ICgiYm9vdG1fc2l6ZSIpOwogCWlmIChzKSB7CiAJCXBoeXNfc2l6ZV90IHRtcDsKLSNpZmRlZiBDRkdfNjRCSVRfU1RSVE9VTAorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAogCQl0bXAgPSAocGh5c19zaXplX3Qpc2ltcGxlX3N0cnRvdWxsIChzLCBOVUxMLCAxNik7CiAjZWxzZQogCQl0bXAgPSAocGh5c19zaXplX3Qpc2ltcGxlX3N0cnRvdWwgKHMsIE5VTEwsIDE2KTsKQEAgLTY2Myw3ICs2NjMsNyBAQAogCiAJaWYgKGFkZHJfZGF0YWZsYXNoIChpbWdfYWRkcikpewogCQkvKiBnZXIgUkFNIGFkZHJlc3MgKi8KLQkJcmFtX2FkZHIgPSBDRkdfTE9BRF9BRERSOworCQlyYW1fYWRkciA9IENPTkZJR19TWVNfTE9BRF9BRERSOwogCiAJCS8qIGdldCBoZWFkZXIgc2l6ZSAqLwogCQloX3NpemUgPSBpbWFnZV9nZXRfaGVhZGVyX3NpemUgKCk7CkBAIC0xMTU0LDggKzExNTQsOCBAQAogfQogI2VuZGlmIC8qIENPTkZJR19GSVQgKi8KIAotI2lmbmRlZiBDRkdfRkRUX1BBRAotI2RlZmluZSBDRkdfRkRUX1BBRCAweDMwMDAKKyNpZm5kZWYgQ09ORklHX1NZU19GRFRfUEFECisjZGVmaW5lIENPTkZJR19TWVNfRkRUX1BBRCAweDMwMDAKICNlbmRpZgogCiAvKioKQEAgLTExOTAsNyArMTE5MCw3IEBACiAJCWdvdG8gZXJyb3I7CiAJfQogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJLyogbW92ZSB0aGUgYmxvYiBpZiBpdCBpcyBpbiBmbGFzaCAoc2V0IHJlbG9jYXRlKSAqLwogCWlmIChhZGRyMmluZm8gKCh1bG9uZylmZHRfYmxvYikgIT0gTlVMTCkKIAkJcmVsb2NhdGUgPSAxOwpAQCAtMTIwMiw4ICsxMjAyLDggQEAKIAlpZiAoZmR0X2Jsb2IgPCAoY2hhciAqKWJvb3RtYXBfYmFzZSkKIAkJcmVsb2NhdGUgPSAxOwogCi0JaWYgKChmZHRfYmxvYiArICpvZl9zaXplICsgQ0ZHX0ZEVF9QQUQpID49Ci0JCQkoKGNoYXIgKilDRkdfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKSkKKwlpZiAoKGZkdF9ibG9iICsgKm9mX3NpemUgKyBDT05GSUdfU1lTX0ZEVF9QQUQpID49CisJCQkoKGNoYXIgKilDT05GSUdfU1lTX0JPT1RNQVBTWiArIGJvb3RtYXBfYmFzZSkpCiAJCXJlbG9jYXRlID0gMTsKIAogCS8qIG1vdmUgZmxhdHRlbmQgZGV2aWNlIHRyZWUgaWYgbmVlZGVkICovCkBAIC0xMjEzLDkgKzEyMTMsOSBAQAogCiAJCS8qIHBvc2l0aW9uIG9uIGEgNEsgYm91bmRhcnkgYmVmb3JlIHRoZSBhbGxvY19jdXJyZW50ICovCiAJCS8qIFBhZCB0aGUgRkRUIGJ5IGEgc3BlY2lmaWVkIGFtb3VudCAqLwotCQlvZl9sZW4gPSAqb2Zfc2l6ZSArIENGR19GRFRfUEFEOworCQlvZl9sZW4gPSAqb2Zfc2l6ZSArIENPTkZJR19TWVNfRkRUX1BBRDsKIAkJb2Zfc3RhcnQgPSAodW5zaWduZWQgbG9uZylsbWJfYWxsb2NfYmFzZShsbWIsIG9mX2xlbiwgMHgxMDAwLAotCQkJCShDRkdfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKSk7CisJCQkJKENPTkZJR19TWVNfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKSk7CiAKIAkJaWYgKG9mX3N0YXJ0ID09IDApIHsKIAkJCXB1dHMoImRldmljZSB0cmVlIC0gYWxsb2NhdGlvbiBlcnJvclxuIik7CkBAIC0xMjQwLDcgKzEyNDAsNyBAQAogCQkqb2Zfc2l6ZSA9IG9mX2xlbjsKIAl9IGVsc2UgewogCQkqb2ZfZmxhdF90cmVlID0gZmR0X2Jsb2I7Ci0JCW9mX2xlbiA9IChDRkdfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKSAtICh1bG9uZylmZHRfYmxvYjsKKwkJb2ZfbGVuID0gKENPTkZJR19TWVNfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKSAtICh1bG9uZylmZHRfYmxvYjsKIAkJbG1iX3Jlc2VydmUobG1iLCAodWxvbmcpZmR0X2Jsb2IsIG9mX2xlbik7CiAJCWZkdF9zZXRfdG90YWxzaXplKCpvZl9mbGF0X3RyZWUsIG9mX2xlbik7CiAKQEAgLTE1OTgsOCArMTU5OCw4IEBACiAJY2hhciAqY21kbGluZTsKIAljaGFyICpzOwogCi0JY21kbGluZSA9IChjaGFyICopKHVsb25nKWxtYl9hbGxvY19iYXNlKGxtYiwgQ0ZHX0JBUkdTSVpFLCAweGYsCi0JCQkJCSBDRkdfQk9PVE1BUFNaICsgYm9vdG1hcF9iYXNlKTsKKwljbWRsaW5lID0gKGNoYXIgKikodWxvbmcpbG1iX2FsbG9jX2Jhc2UobG1iLCBDT05GSUdfU1lTX0JBUkdTSVpFLCAweGYsCisJCQkJCSBDT05GSUdfU1lTX0JPT1RNQVBTWiArIGJvb3RtYXBfYmFzZSk7CiAKIAlpZiAoY21kbGluZSA9PSBOVUxMKQogCQlyZXR1cm4gLTE7CkBAIC0xNjM1LDcgKzE2MzUsNyBAQAogaW50IGJvb3RfZ2V0X2tiZCAoc3RydWN0IGxtYiAqbG1iLCBiZF90ICoqa2JkLCB1bG9uZyBib290bWFwX2Jhc2UpCiB7CiAJKmtiZCA9IChiZF90ICopKHVsb25nKWxtYl9hbGxvY19iYXNlKGxtYiwgc2l6ZW9mKGJkX3QpLCAweGYsCi0JCQkJICAgICAgQ0ZHX0JPT1RNQVBTWiArIGJvb3RtYXBfYmFzZSk7CisJCQkJICAgICAgQ09ORklHX1NZU19CT09UTUFQU1ogKyBib290bWFwX2Jhc2UpOwogCWlmICgqa2JkID09IE5VTEwpCiAJCXJldHVybiAtMTsKIApAQCAtMTg1Miw3ICsxODUyLDEwIEBACiAgKiBAcDogcG9pbnRlciB0byBwcmVmaXggc3RyaW5nCiAgKgogICogZml0X2ltYWdlX3ByaW50KCkgbGlzdHMgYWxsIG1hbmRhdG9yeSBwcm9wZXJpZXMgZm9yIHRoZSBwcm9jZXNzZWQgY29tcG9uZW50Ci0gKiBpbWFnZS4gSWYgcHJlc2VudCwgaGFzaCBub2RlcyBhcmUgcHJpbnRlZCBvdXQgYXMgd2VsbC4KKyAqIGltYWdlLiBJZiBwcmVzZW50LCBoYXNoIG5vZGVzIGFyZSBwcmludGVkIG91dCBhcyB3ZWxsLiBMb2FkCisgKiBhZGRyZXNzIGZvciBpbWFnZXMgb2YgdHlwZSBmaXJtd2FyZSBpcyBhbHNvIHByaW50ZWQgb3V0LiBTaW5jZSB0aGUgbG9hZAorICogYWRkcmVzcyBpcyBub3QgbWFuZGF0b3J5IGZvciBmaXJtd2FyZSBpbWFnZXMsIGl0IHdpbGwgYmUgb3V0cHV0IGFzCisgKiAidW5hdmFpbGFibGUiIHdoZW4gbm90IHByZXNlbnQuCiAgKgogICogcmV0dXJuczoKICAqICAgICBubyByZXR1cm5lZCByZXN1bHRzCkBAIC0xOTExLDE0ICsxOTE0LDE3IEBACiAJCXByaW50ZiAoIiVzICBPUzogICAgICAgICAgICVzXG4iLCBwLCBnZW5pbWdfZ2V0X29zX25hbWUgKG9zKSk7CiAJfQogCi0JaWYgKCh0eXBlID09IElIX1RZUEVfS0VSTkVMKSB8fCAodHlwZSA9PSBJSF9UWVBFX1NUQU5EQUxPTkUpKSB7CisJaWYgKCh0eXBlID09IElIX1RZUEVfS0VSTkVMKSB8fCAodHlwZSA9PSBJSF9UWVBFX1NUQU5EQUxPTkUpIHx8CisJCSh0eXBlID09IElIX1RZUEVfRklSTVdBUkUpKSB7CiAJCXJldCA9IGZpdF9pbWFnZV9nZXRfbG9hZCAoZml0LCBpbWFnZV9ub2Zmc2V0LCAmbG9hZCk7CiAJCXByaW50ZiAoIiVzICBMb2FkIEFkZHJlc3M6ICIsIHApOwogCQlpZiAocmV0KQogCQkJcHJpbnRmICgidW5hdmFpbGFibGVcbiIpOwogCQllbHNlCiAJCQlwcmludGYgKCIweCUwOGx4XG4iLCBsb2FkKTsKKwl9CiAKKwlpZiAoKHR5cGUgPT0gSUhfVFlQRV9LRVJORUwpIHx8ICh0eXBlID09IElIX1RZUEVfU1RBTkRBTE9ORSkpIHsKIAkJZml0X2ltYWdlX2dldF9lbnRyeSAoZml0LCBpbWFnZV9ub2Zmc2V0LCAmZW50cnkpOwogCQlwcmludGYgKCIlcyAgRW50cnkgUG9pbnQ6ICAiLCBwKTsKIAkJaWYgKHJldCkKQEAgLTI4NDQsNyArMjg1MCw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfVElNRVNUQU1QKSB8fCBkZWZpbmVkKENPTkZJR19DTURfREFURSkgfHwgZGVmaW5lZChVU0VfSE9TVENDKQogCS8qIG1hbmRhdG9yeSAvIG5vZGUgJ3RpbWVzdGFtcCcgcHJvcGVydHkgKi8KIAlpZiAoZmR0X2dldHByb3AgKGZpdCwgMCwgRklUX1RJTUVTVEFNUF9QUk9QLCBOVUxMKSA9PSBOVUxMKSB7Ci0JCWRlYnVnICgiV3JvbmcgRklUIGZvcm1hdDogbm8gZGVzY3JpcHRpb25cbiIpOworCQlkZWJ1ZyAoIldyb25nIEZJVCBmb3JtYXQ6IG5vIHRpbWVzdGFtcFxuIik7CiAJCXJldHVybiAwOwogCX0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvY29tbW9uL2tnZGIuYyBiL2NvbW1vbi9rZ2RiLmMKaW5kZXggYjE0ODk4Yi4uYWRjMTVkZCAxMDA2NDQKLS0tIGEvY29tbW9uL2tnZGIuYworKysgYi9jb21tb24va2dkYi5jCkBAIC01NzQsNyArNTc0LDcgQEAKIH0KIAogVV9CT09UX0NNRCgKLQlrZ2RiLCBDRkdfTUFYQVJHUywgMSwJZG9fa2dkYiwKKwlrZ2RiLCBDT05GSUdfU1lTX01BWEFSR1MsIDEsCWRvX2tnZGIsCiAJImtnZGIgICAgLSBlbnRlciBnZGIgcmVtb3RlIGRlYnVnIG1vZGVcbiIsCiAJIlthcmcwIGFyZzEgLi4gYXJnTl1cbiIKIAkiICAgIC0gZXhlY3V0ZXMgYSBicmVha3BvaW50IHNvIHRoYXQga2dkYiBtb2RlIGlzXG4iCmRpZmYgLS1naXQgYS9jb21tb24vbGNkLmMgYi9jb21tb24vbGNkLmMKaW5kZXggMjVmODY2NC4uZDEwNGIyNiAxMDA2NDQKLS0tIGEvY29tbW9uL2xjZC5jCisrKyBiL2NvbW1vbi9sY2QuYwpAQCAtMzg2LDEzICszODYsMTMgQEAKIAlsY2Rfc2V0Y29scmVnICAoQ09OU09MRV9DT0xPUl9XSElURSwJMHhGRiwgMHhGRiwgMHhGRik7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfV0hJVEVfT05fQkxBQ0sKKyNpZm5kZWYgQ09ORklHX1NZU19XSElURV9PTl9CTEFDSwogCWxjZF9zZXRmZ2NvbG9yIChDT05TT0xFX0NPTE9SX0JMQUNLKTsKIAlsY2Rfc2V0Ymdjb2xvciAoQ09OU09MRV9DT0xPUl9XSElURSk7CiAjZWxzZQogCWxjZF9zZXRmZ2NvbG9yIChDT05TT0xFX0NPTE9SX1dISVRFKTsKIAlsY2Rfc2V0Ymdjb2xvciAoQ09OU09MRV9DT0xPUl9CTEFDSyk7Ci0jZW5kaWYJLyogQ0ZHX1dISVRFX09OX0JMQUNLICovCisjZW5kaWYJLyogQ09ORklHX1NZU19XSElURV9PTl9CTEFDSyAqLwogCiAjaWZkZWYJTENEX1RFU1RfUEFUVEVSTgogCXRlc3RfcGF0dGVybigpOwpAQCAtNTMxLDcgKzUzMSw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfUFhBMjUwKQogCXN0cnVjdCBweGFmYl9pbmZvICpmYmkgPSAmcGFuZWxfaW5mby5weGE7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM4MjMpCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gJihpbW1yLT5pbV9jcG0pOwogI2VuZGlmCiAKQEAgLTU3MSw3ICs1NzEsNyBAQAogCQkJKihjbWFwICsgQk1QX0xPR09fT0ZGU0VUKSA9IGx1dF9lbnRyeTsKIAkJCWNtYXArKzsKICNlbHNlIC8qICFDT05GSUdfQVRNRUxfTENEICovCi0jaWZkZWYgIENGR19JTlZFUlRfQ09MT1JTCisjaWZkZWYgIENPTkZJR19TWVNfSU5WRVJUX0NPTE9SUwogCQkJKmNtYXArKyA9IDB4ZmZmZiAtIGNvbHJlZzsKICNlbHNlCiAJCQkqY21hcCsrID0gY29scmVnOwpAQCAtNjI3LDcgKzYyNyw3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfUFhBMjUwKQogCXN0cnVjdCBweGFmYl9pbmZvICpmYmkgPSAmcGFuZWxfaW5mby5weGE7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM4MjMpCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gJihpbW1yLT5pbV9jcG0pOwogI2VuZGlmCiAKQEAgLTY4MSw3ICs2ODEsNyBAQAogCQkJCSggKChjdGUucmVkKSAgIDw8IDgpICYgMHhmODAwKSB8CiAJCQkJKCAoKGN0ZS5ncmVlbikgPDwgMykgJiAweDA3ZTApIHwKIAkJCQkoICgoY3RlLmJsdWUpICA+PiAzKSAmIDB4MDAxZikgOwotI2lmZGVmIENGR19JTlZFUlRfQ09MT1JTCisjaWZkZWYgQ09ORklHX1NZU19JTlZFUlRfQ09MT1JTCiAJCQkqY21hcCA9IDB4ZmZmZiAtIGNvbHJlZzsKICNlbHNlCiAJCQkqY21hcCA9IGNvbHJlZzsKQEAgLTg0NSw3ICs4NDUsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfTlJfRFJBTV9CQU5LUzsgaSsrKQogCQlkcmFtX3NpemUgKz0gZ2QtPmJkLT5iaV9kcmFtW2ldLnNpemU7CiAJbmFuZF9zaXplID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9OQU5EX0RFVklDRTsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRTsgaSsrKQogCQluYW5kX3NpemUgKz0gbmFuZF9pbmZvW2ldLnNpemU7CiAJc3ByaW50ZiAoaW5mbywgIiAgJWxkIE1CIFNEUkFNLCAlbGQgTUIgTkFORCIsCiAJCWRyYW1fc2l6ZSA+PiAyMCwKZGlmZiAtLWdpdCBhL2NvbW1vbi9tYWluLmMgYi9jb21tb24vbWFpbi5jCmluZGV4IDE4N2VmOGEuLmE5OTlhNWQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9tYWluLmMKKysrIGIvY29tbW9uL21haW4uYwpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPG1hbGxvYy5oPgkJLyogZm9yIGZyZWUoKSBwcm90b3R5cGUgKi8KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogI2luY2x1ZGUgPGh1c2guaD4KICNlbmRpZgogCkBAIC01Niw2ICs1Niw5IEBACiAKIGV4dGVybiBpbnQgZG9fYm9vdGQgKGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKTsKIAorI2lmIGRlZmluZWQoQ09ORklHX1VQREFURV9URlRQKQordm9pZCB1cGRhdGVfdGZ0cCAodm9pZCk7CisjZW5kaWYgLyogQ09ORklHX1VQREFURV9URlRQICovCiAKICNkZWZpbmUgTUFYX0RFTEFZX1NUT1BfU1RSIDMyCiAKQEAgLTY1LDcgKzY4LDcgQEAKIAogI3VuZGVmIERFQlVHX1BBUlNFUgogCi1jaGFyICAgICAgICBjb25zb2xlX2J1ZmZlcltDRkdfQ0JTSVpFXTsJCS8qIGNvbnNvbGUgSS9PIGJ1ZmZlcgkqLworY2hhciAgICAgICAgY29uc29sZV9idWZmZXJbQ09ORklHX1NZU19DQlNJWkVdOwkJLyogY29uc29sZSBJL08gYnVmZmVyCSovCiAKIHN0YXRpYyBjaGFyICogZGVsZXRlX2NoYXIgKGNoYXIgKmJ1ZmZlciwgY2hhciAqcCwgaW50ICpjb2xwLCBpbnQgKm5wLCBpbnQgcGxlbik7CiBzdGF0aWMgY2hhciBlcmFzZV9zZXFbXSA9ICJcYiBcYiI7CQkvKiBlcmFzZSBzZXF1ZW5jZQkqLwpAQCAtMjY5LDggKzI3Miw4IEBACiAKIHZvaWQgbWFpbl9sb29wICh2b2lkKQogewotI2lmbmRlZiBDRkdfSFVTSF9QQVJTRVIKLQlzdGF0aWMgY2hhciBsYXN0Y29tbWFuZFtDRkdfQ0JTSVpFXSA9IHsgMCwgfTsKKyNpZm5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorCXN0YXRpYyBjaGFyIGxhc3Rjb21tYW5kW0NPTkZJR19TWVNfQ0JTSVpFXSA9IHsgMCwgfTsKIAlpbnQgbGVuOwogCWludCByYyA9IDE7CiAJaW50IGZsYWc7CkBAIC0zMDEsNiArMzA0LDEwIEBACiAJdHJhYl92ZmQgKGJtcCk7CiAjZW5kaWYJLyogQ09ORklHX1ZGRCAmJiBWRkRfVEVTVF9MT0dPICovCiAKKyNpZiBkZWZpbmVkKENPTkZJR19VUERBVEVfVEZUUCkKKwl1cGRhdGVfdGZ0cCAoKTsKKyNlbmRpZiAvKiBDT05GSUdfVVBEQVRFX1RGVFAgKi8KKwogI2lmZGVmIENPTkZJR19CT09UQ09VTlRfTElNSVQKIAlib290Y291bnQgPSBib290Y291bnRfbG9hZCgpOwogCWJvb3Rjb3VudCsrOwpAQCAtMzMwLDEwICszMzcsMTQgQEAKIAl9CiAjZW5kaWYgLyogQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgKi8KIAotI2lmZGVmIENGR19IVVNIX1BBUlNFUgorI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAl1X2Jvb3RfaHVzaF9zdGFydCAoKTsKICNlbmRpZgogCisjaWYgZGVmaW5lZChDT05GSUdfSFVTSF9JTklUX1ZBUikKKwlodXNoX2luaXRfdmFyICgpOworI2VuZGlmCisKICNpZmRlZiBDT05GSUdfQVVUT19DT01QTEVURQogCWluc3RhbGxfYXV0b19jb21wbGV0ZSgpOwogI2VuZGlmCkBAIC0zNDQsNyArMzU1LDcgQEAKIAkJaW50IHByZXYgPSBkaXNhYmxlX2N0cmxjKDEpOwkvKiBkaXNhYmxlIENvbnRyb2wgQyBjaGVja2luZyAqLwogIyBlbmRpZgogCi0jIGlmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyMgaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAkJcnVuX2NvbW1hbmQgKHAsIDApOwogIyBlbHNlCiAJCXBhcnNlX3N0cmluZ19vdXRlcihwLCBGTEFHX1BBUlNFX1NFTUlDT0xPTiB8CkBAIC0zOTAsNyArNDAxLDcgQEAKIAkJaW50IHByZXYgPSBkaXNhYmxlX2N0cmxjKDEpOwkvKiBkaXNhYmxlIENvbnRyb2wgQyBjaGVja2luZyAqLwogIyBlbmRpZgogCi0jIGlmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyMgaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAkJcnVuX2NvbW1hbmQgKHMsIDApOwogIyBlbHNlCiAJCXBhcnNlX3N0cmluZ19vdXRlcihzLCBGTEFHX1BBUlNFX1NFTUlDT0xPTiB8CkBAIC00MDYsNyArNDE3LDcgQEAKIAlpZiAobWVudWtleSA9PSBDT05GSUdfTUVOVUtFWSkgewogCSAgICBzID0gZ2V0ZW52KCJtZW51Y21kIik7CiAJICAgIGlmIChzKSB7Ci0jIGlmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyMgaWZuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAkJcnVuX2NvbW1hbmQgKHMsIDApOwogIyBlbHNlCiAJCXBhcnNlX3N0cmluZ19vdXRlcihzLCBGTEFHX1BBUlNFX1NFTUlDT0xPTiB8CkBAIC00MjcsNyArNDM4LDcgQEAKIAkvKgogCSAqIE1haW4gTG9vcCBmb3IgTW9uaXRvciBDb21tYW5kIFByb2Nlc3NpbmcKIAkgKi8KLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAJcGFyc2VfZmlsZV9vdXRlcigpOwogCS8qIFRoaXMgcG9pbnQgaXMgbmV2ZXIgcmVhY2hlZCAqLwogCWZvciAoOzspOwpAQCAtNDQxLDcgKzQ1Miw3IEBACiAJCQlyZXNldF9jbWRfdGltZW91dCgpOwogCQl9CiAjZW5kaWYKLQkJbGVuID0gcmVhZGxpbmUgKENGR19QUk9NUFQpOworCQlsZW4gPSByZWFkbGluZSAoQ09ORklHX1NZU19QUk9NUFQpOwogCiAJCWZsYWcgPSAwOwkvKiBhc3N1bWUgbm8gc3BlY2lhbCBmbGFncyBmb3Igbm93ICovCiAJCWlmIChsZW4gPiAwKQpAQCAtNDcyLDcgKzQ4Myw3IEBACiAJCQlsYXN0Y29tbWFuZFswXSA9IDA7CiAJCX0KIAl9Ci0jZW5kaWYgLypDRkdfSFVTSF9QQVJTRVIqLworI2VuZGlmIC8qQ09ORklHX1NZU19IVVNIX1BBUlNFUiovCiB9CiAKICNpZmRlZiBDT05GSUdfQk9PVF9SRVRSWV9USU1FCkBAIC0xMDMxLDcgKzEwNDIsNyBAQAogCQkJLyoKIAkJCSAqIE11c3QgYmUgYSBub3JtYWwgY2hhcmFjdGVyIHRoZW4KIAkJCSAqLwotCQkJaWYgKG4gPCBDRkdfQ0JTSVpFLTIpIHsKKwkJCWlmIChuIDwgQ09ORklHX1NZU19DQlNJWkUtMikgewogCQkJCWlmIChjID09ICdcdCcpIHsJLyogZXhwYW5kIFRBQnMJCSovCiAjaWZkZWYgQ09ORklHX0FVVE9fQ09NUExFVEUKIAkJCQkJLyogaWYgYXV0byBjb21wbGV0aW9uIHRyaWdnZXJlZCBqdXN0IGNvbnRpbnVlICovCkBAIC0xMTAwLDcgKzExMTEsNyBAQAogI2lmZGVmIERFQlVHX1BBUlNFUgogCXByaW50ZiAoInBhcnNlX2xpbmU6IFwiJXNcIlxuIiwgbGluZSk7CiAjZW5kaWYKLQl3aGlsZSAobmFyZ3MgPCBDRkdfTUFYQVJHUykgeworCXdoaWxlIChuYXJncyA8IENPTkZJR19TWVNfTUFYQVJHUykgewogCiAJCS8qIHNraXAgYW55IHdoaXRlIHNwYWNlICovCiAJCXdoaWxlICgoKmxpbmUgPT0gJyAnKSB8fCAoKmxpbmUgPT0gJ1x0JykpIHsKQEAgLTExMzMsNyArMTE0NCw3IEBACiAJCSpsaW5lKysgPSAnXDAnOwkJLyogdGVybWluYXRlIGN1cnJlbnQgYXJnCSAqLwogCX0KIAotCXByaW50ZiAoIioqIFRvbyBtYW55IGFyZ3MgKG1heC4gJWQpICoqXG4iLCBDRkdfTUFYQVJHUyk7CisJcHJpbnRmICgiKiogVG9vIG1hbnkgYXJncyAobWF4LiAlZCkgKipcbiIsIENPTkZJR19TWVNfTUFYQVJHUyk7CiAKICNpZmRlZiBERUJVR19QQVJTRVIKIAlwcmludGYgKCJwYXJzZV9saW5lOiBuYXJncz0lZFxuIiwgbmFyZ3MpOwpAQCAtMTE0OCw3ICsxMTU5LDcgQEAKIAljaGFyIGMsIHByZXY7CiAJY29uc3QgY2hhciAqdmFybmFtZV9zdGFydCA9IE5VTEw7CiAJaW50IGlucHV0Y250ID0gc3RybGVuIChpbnB1dCk7Ci0JaW50IG91dHB1dGNudCA9IENGR19DQlNJWkU7CisJaW50IG91dHB1dGNudCA9IENPTkZJR19TWVNfQ0JTSVpFOwogCWludCBzdGF0ZSA9IDA7CQkvKiAwID0gd2FpdGluZyBmb3IgJyQnICAqLwogCiAJLyogMSA9IHdhaXRpbmcgZm9yICcoJyBvciAneycgKi8KQEAgLTEyMDgsNyArMTIxOSw3IEBACiAJCWNhc2UgMjoJLyogV2FpdGluZyBmb3IgKSAgICAgICAgKi8KIAkJCWlmIChjID09ICcpJyB8fCBjID09ICd9JykgewogCQkJCWludCBpOwotCQkJCWNoYXIgZW52bmFtZVtDRkdfQ0JTSVpFXSwgKmVudnZhbDsKKwkJCQljaGFyIGVudm5hbWVbQ09ORklHX1NZU19DQlNJWkVdLCAqZW52dmFsOwogCQkJCWludCBlbnZjbnQgPSBpbnB1dCAtIHZhcm5hbWVfc3RhcnQgLSAxOwkvKiBWYXJuYW1lICMgb2YgY2hhcnMgKi8KIAogCQkJCS8qIEdldCB0aGUgdmFybmFtZSAqLwpAQCAtMTI1OSw3ICsxMjcwLDcgQEAKICAqCTAgIC0gY29tbWFuZCBleGVjdXRlZCBidXQgbm90IHJlcGVhdGFibGUsIGludGVycnVwdGVkIGNvbW1hbmRzIGFyZQogICoJICAgICBhbHdheXMgY29uc2lkZXJlZCBub3QgcmVwZWF0YWJsZQogICoJLTEgLSBub3QgZXhlY3V0ZWQgKHVucmVjb2duaXplZCwgYm9vdGQgcmVjdXJzaW9uIG9yIHRvbyBtYW55IGFyZ3MpCi0gKiAgICAgICAgICAgKElmIGNtZCBpcyBOVUxMIG9yICIiIG9yIGxvbmdlciB0aGFuIENGR19DQlNJWkUtMSBpdCBpcworICogICAgICAgICAgIChJZiBjbWQgaXMgTlVMTCBvciAiIiBvciBsb25nZXIgdGhhbiBDT05GSUdfU1lTX0NCU0laRS0xIGl0IGlzCiAgKiAgICAgICAgICAgY29uc2lkZXJlZCB1bnJlY29nbml6ZWQpCiAgKgogICogV0FSTklORzoKQEAgLTEyNzMsMTIgKzEyODQsMTIgQEAKIGludCBydW5fY29tbWFuZCAoY29uc3QgY2hhciAqY21kLCBpbnQgZmxhZykKIHsKIAljbWRfdGJsX3QgKmNtZHRwOwotCWNoYXIgY21kYnVmW0NGR19DQlNJWkVdOwkvKiB3b3JraW5nIGNvcHkgb2YgY21kCQkqLworCWNoYXIgY21kYnVmW0NPTkZJR19TWVNfQ0JTSVpFXTsJLyogd29ya2luZyBjb3B5IG9mIGNtZAkJKi8KIAljaGFyICp0b2tlbjsJCQkvKiBzdGFydCBvZiB0b2tlbiBpbiBjbWRidWYJKi8KIAljaGFyICpzZXA7CQkJLyogZW5kIG9mIHRva2VuIChzZXBhcmF0b3IpIGluIGNtZGJ1ZiAqLwotCWNoYXIgZmluYWx0b2tlbltDRkdfQ0JTSVpFXTsKKwljaGFyIGZpbmFsdG9rZW5bQ09ORklHX1NZU19DQlNJWkVdOwogCWNoYXIgKnN0ciA9IGNtZGJ1ZjsKLQljaGFyICphcmd2W0NGR19NQVhBUkdTICsgMV07CS8qIE5VTEwgdGVybWluYXRlZAkqLworCWNoYXIgKmFyZ3ZbQ09ORklHX1NZU19NQVhBUkdTICsgMV07CS8qIE5VTEwgdGVybWluYXRlZAkqLwogCWludCBhcmdjLCBpbnF1b3RlczsKIAlpbnQgcmVwZWF0YWJsZSA9IDE7CiAJaW50IHJjID0gMDsKQEAgLTEyOTUsNyArMTMwNiw3IEBACiAJCXJldHVybiAtMTsJLyogZW1wdHkgY29tbWFuZCAqLwogCX0KIAotCWlmIChzdHJsZW4oY21kKSA+PSBDRkdfQ0JTSVpFKSB7CisJaWYgKHN0cmxlbihjbWQpID49IENPTkZJR19TWVNfQ0JTSVpFKSB7CiAJCXB1dHMgKCIjIyBDb21tYW5kIHRvbyBsb25nIVxuIik7CiAJCXJldHVybiAtMTsKIAl9CkBAIC0xNDE0LDcgKzE0MjUsNyBAQAogCQkJcHJpbnRmICgiIyMgRXJyb3I6IFwiJXNcIiBub3QgZGVmaW5lZFxuIiwgYXJndltpXSk7CiAJCQlyZXR1cm4gMTsKIAkJfQotI2lmbmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZm5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCQlpZiAocnVuX2NvbW1hbmQgKGFyZywgZmxhZykgPT0gLTEpCiAJCQlyZXR1cm4gMTsKICNlbHNlCmRpZmYgLS1naXQgYS9jb21tb24vbWlpcGh5dXRpbC5jIGIvY29tbW9uL21paXBoeXV0aWwuYwppbmRleCA1ZWY0YTMzLi42NmZkOWNhIDEwMDY0NAotLS0gYS9jb21tb24vbWlpcGh5dXRpbC5jCisrKyBiL2NvbW1vbi9taWlwaHl1dGlsLmMKQEAgLTQ2Miw3ICs0NjIsNyBAQAogI2VuZGlmCiB9CiAKLSNpZmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyNpZmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBEZXRlcm1pbmUgbGluayBzdGF0dXMKZGlmZiAtLWdpdCBhL2NvbW1vbi9zZXJpYWwuYyBiL2NvbW1vbi9zZXJpYWwuYwppbmRleCBiZmRhN2NhLi5iMzhkMWU3IDEwMDY0NAotLS0gYS9jb21tb24vc2VyaWFsLmMKKysrIGIvY29tbW9uL3NlcmlhbC5jCkBAIC00Myw3ICs0Myw3IEBACiAjZWxpZiBkZWZpbmVkKENPTkZJR180MDVHUCkgfHwgZGVmaW5lZChDT05GSUdfNDA1Q1IpIHx8IGRlZmluZWQoQ09ORklHXzQ0MCkgXAogICAgfHwgZGVmaW5lZChDT05GSUdfNDA1RVApIHx8IGRlZmluZWQoQ09ORklHXzQwNUVaKSB8fCBkZWZpbmVkKENPTkZJR180MDVFWCkgXAogICAgfHwgZGVmaW5lZChDT05GSUdfTVBDNXh4eCkKLSNpZiBkZWZpbmVkKENPTkZJR19DT05TX0lOREVYKSAmJiBkZWZpbmVkKENGR19OUzE2NTUwX1NFUklBTCkKKyNpZiBkZWZpbmVkKENPTkZJR19DT05TX0lOREVYKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwpCiAjaWYgKENPTkZJR19DT05TX0lOREVYPT0xKQogCXJldHVybiAmZXNlcmlhbDFfZGV2aWNlOwogI2VsaWYgKENPTkZJR19DT05TX0lOREVYPT0yKQpAQCAtMTEwLDIwICsxMTAsMjAgQEAKIAlzZXJpYWxfcmVnaXN0ZXIoJnNlcmlhbDFfZGV2aWNlKTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfTlMxNjU1MF9TRVJJQUwpCi0jaWYgZGVmaW5lZChDRkdfTlMxNjU1MF9DT00xKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00xKQogCXNlcmlhbF9yZWdpc3RlcigmZXNlcmlhbDFfZGV2aWNlKTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NMikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00yKQogCXNlcmlhbF9yZWdpc3RlcigmZXNlcmlhbDJfZGV2aWNlKTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NMykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00zKQogCXNlcmlhbF9yZWdpc3RlcigmZXNlcmlhbDNfZGV2aWNlKTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NNCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT000KQogCXNlcmlhbF9yZWdpc3RlcigmZXNlcmlhbDRfZGV2aWNlKTsKICNlbmRpZgotI2VuZGlmIC8qIENGR19OUzE2NTUwX1NFUklBTCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwgKi8KICNpZiBkZWZpbmVkIChDT05GSUdfRkZVQVJUKQogCXNlcmlhbF9yZWdpc3Rlcigmc2VyaWFsX2ZmdWFydF9kZXZpY2UpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9jb21tb24vc3BhcnRhbjIuYyBiL2NvbW1vbi9zcGFydGFuMi5jCmluZGV4IGViYWMzODguLmY1YmE3ZmMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zcGFydGFuMi5jCisrKyBiL2NvbW1vbi9zcGFydGFuMi5jCkBAIC0zMiw4ICszMiw4IEBACiAjZGVmaW5lIFBSSU5URihmbXQsYXJncy4uLikKICNlbmRpZgogCi0jdW5kZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQotI3VuZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyN1bmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQlVTWQorI3VuZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAKIC8qIE5vdGU6IFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UgY2Fubm90IHBvc3NpYmx5IHJ1biBmYXN0IGVub3VnaCB0bwogICogb3ZlcnJ1biB0aGUgZGV2aWNlICh0aGUgU2xhdmUgUGFyYWxsZWwgbW9kZSBjYW4gZnJlZSBydW4gYXQgNTBNSHopLgpAQCAtNDQsOCArNDQsOCBAQAogI2RlZmluZSBDT05GSUdfRlBHQV9ERUxBWSgpCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfRlBHQV9XQUlUCi0jZGVmaW5lIENGR19GUEdBX1dBSVQgQ0ZHX0haLzEwMAkvKiAxMCBtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX0ZQR0FfV0FJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVCBDT05GSUdfU1lTX0haLzEwMAkvKiAxMCBtcyAqLwogI2VuZGlmCiAKIHN0YXRpYyBpbnQgU3BhcnRhbjJfc3BfbG9hZCggWGlsaW54X2Rlc2MgKmRlc2MsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJzaXplICk7CkBAIC0xODAsNyArMTgwLDcgQEAKIAkJICogQ29udGludW91cyBEYXRhIExvYWRpbmcgaW4gU2xhdmUgUGFyYWxsZWwgTW9kZSBmb3IKIAkJICogdGhlIFNwYXJ0YW4tSUkgRmFtaWx5LgogCQkgKi8KLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJcHJpbnRmICgiTG9hZGluZyBGUEdBIERldmljZSAlZC4uLlxuIiwgY29va2llKTsKICNlbmRpZgogCQkvKgpAQCAtMjAxLDcgKzIwMSw3IEBACiAJCS8qIE5vdyB3YWl0IGZvciBJTklUIGFuZCBCVVNZIHRvIGdvIGhpZ2ggKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gY2xlYXIuXG4iKTsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CS8qIGFib3J0IHRoZSBidXJuICovCiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTIyMyw3ICsyMjMsNyBAQAogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7CiAJCQkoKmZuLT5jbGspIChUUlVFLCBUUlVFLCBjb29raWUpOwkvKiBBc3NlcnQgdGhlIGNsb2NrIHBpbiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9DSEVDS19CVVNZCiAJCQl0cyA9IGdldF90aW1lciAoMCk7CS8qIGdldCBjdXJyZW50IHRpbWUgKi8KIAkJCXdoaWxlICgoKmZuLT5idXN5KSAoY29va2llKSkgewogCQkJCS8qIFhYWCAtIHdlIHNob3VsZCBoYXZlIGEgY2hlY2sgaW4gaGVyZSBzb21ld2hlcmUgdG8KQEAgLTIzNCw3ICsyMzQsNyBAQAogCQkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJCSgqZm4tPmNsaykgKFRSVUUsIFRSVUUsIGNvb2tpZSk7CS8qIEFzc2VydCB0aGUgY2xvY2sgcGluICovCiAKLQkJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgQlVTWSB0byBjbGVhci5cbiIpOwogCQkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CS8qIGFib3J0IHRoZSBidXJuICovCiAJCQkJCXJldHVybiBGUEdBX0ZBSUw7CkBAIC0yNDIsNyArMjQyLDcgQEAKIAkJCX0KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCQlpZiAoYnl0ZWNvdW50ICUgKGJzaXplIC8gNDApID09IDApCiAJCQkJcHV0YyAoJy4nKTsJCS8qIGxldCB0aGVtIGtub3cgd2UgYXJlIGFsaXZlICovCiAjZW5kaWYKQEAgLTI1Miw3ICsyNTIsNyBAQAogCQkoKmZuLT5jcykgKEZBTFNFLCBUUlVFLCBjb29raWUpOwkvKiBEZWFzc2VydCB0aGUgY2hpcCBzZWxlY3QgKi8KIAkJKCpmbi0+d3IpIChGQUxTRSwgVFJVRSwgY29va2llKTsJLyogRGVhc3NlcnQgdGhlIHdyaXRlIHBpbiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXB1dGMgKCdcbicpOwkJCS8qIHRlcm1pbmF0ZSB0aGUgZG90dGVkIGxpbmUgKi8KICNlbmRpZgogCkBAIC0yNjgsNyArMjY4LDcgQEAKIAkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsJLyogQXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAotCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLworCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQlwdXRzICgiKiogVGltZW91dCB3YWl0aW5nIGZvciBET05FIHRvIGNsZWFyLlxuIik7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwkvKiBhYm9ydCB0aGUgYnVybiAqLwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CkBAIC0yNzcsNyArMjc3LDcgQEAKIAkJfQogCiAJCWlmIChyZXRfdmFsID09IEZQR0FfU1VDQ0VTUykgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHV0cyAoIkRvbmUuXG4iKTsKICNlbmRpZgogCQl9CkBAIC0yODksNyArMjg5LDcgQEAKIAkJfQogCiAJCWVsc2UgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHV0cyAoIkZhaWwuXG4iKTsKICNlbmRpZgogCQl9CkBAIC0zMjMsNyArMzIzLDcgQEAKIAkJCSgqZm4tPmNsaykgKEZBTFNFLCBUUlVFLCBjb29raWUpOwkvKiBEZWFzc2VydCB0aGUgY2xvY2sgcGluICovCiAJCQkoKmZuLT5jbGspIChUUlVFLCBUUlVFLCBjb29raWUpOwkvKiBBc3NlcnQgdGhlIGNsb2NrIHBpbiAqLwogCQkJKCpmbi0+cmRhdGEpICgmKGRhdGFbYnl0ZWNvdW50KytdKSwgY29va2llKTsJLyogcmVhZCB0aGUgZGF0YSAqLwotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCkBAIC0zMzMsNyArMzMzLDcgQEAKIAkJKCpmbi0+Y2xrKSAoRkFMU0UsIFRSVUUsIGNvb2tpZSk7CS8qIERlYXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsJLyogQXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIAkJcHV0cyAoIkRvbmUuXG4iKTsKQEAgLTQ2MCw3ICs0NjAsNyBAQAogCQkJCSJkb25lOlx0MHglcFxuXG4iLAogCQkJCV9fRlVOQ1RJT05fXywgJmZuLCBmbiwgZm4tPnBnbSwgZm4tPmluaXQsCiAJCQkJZm4tPmNsaywgZm4tPndyLCBmbi0+ZG9uZSk7Ci0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXByaW50ZiAoIkxvYWRpbmcgRlBHQSBEZXZpY2UgJWQuLi5cbiIsIGNvb2tpZSk7CiAjZW5kaWYKIApAQCAtNDc4LDcgKzQ3OCw3IEBACiAJCXRzID0gZ2V0X3RpbWVyICgwKTsJCS8qIGdldCBjdXJyZW50IHRpbWUgKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gc3RhcnQuXG4iKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJfQpAQCAtNDkyLDcgKzQ5Miw3IEBACiAJCS8qIE5vdyB3YWl0IGZvciBJTklUIHRvIGdvIGhpZ2ggKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gY2xlYXIuXG4iKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJfQpAQCAtNTIzLDcgKzUyMyw3IEBACiAJCQkJaSAtLTsKIAkJCX0gd2hpbGUgKGkgPiAwKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCkBAIC01MzEsNyArNTMxLDcgQEAKIAogCQlDT05GSUdfRlBHQV9ERUxBWSAoKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIApAQCAtNTUxLDcgKzU1MSw3IEBACiAKIAkJCXB1dGMgKCcqJyk7CiAKLQkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENGR19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KKwkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENPTkZJR19TWVNfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCiAJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgRE9ORSB0byBjbGVhci5cbiIpOwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CiAJCQkJYnJlYWs7CkBAIC01NjYsNyArNTY2LDcgQEAKIAkJCSgqZm4tPnBvc3QpIChjb29raWUpOwogCQl9CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJaWYgKHJldF92YWwgPT0gRlBHQV9TVUNDRVNTKSB7CiAJCQlwdXRzICgiRG9uZS5cbiIpOwogCQl9CmRpZmYgLS1naXQgYS9jb21tb24vc3BhcnRhbjMuYyBiL2NvbW1vbi9zcGFydGFuMy5jCmluZGV4IDhmMWFiODAuLjljZTQxZjEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zcGFydGFuMy5jCisrKyBiL2NvbW1vbi9zcGFydGFuMy5jCkBAIC0zNyw4ICszNyw4IEBACiAjZGVmaW5lIFBSSU5URihmbXQsYXJncy4uLikKICNlbmRpZgogCi0jdW5kZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQotI3VuZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyN1bmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQlVTWQorI3VuZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAKIC8qIE5vdGU6IFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgd2UgY2Fubm90IHBvc3NpYmx5IHJ1biBmYXN0IGVub3VnaCB0bwogICogb3ZlcnJ1biB0aGUgZGV2aWNlICh0aGUgU2xhdmUgUGFyYWxsZWwgbW9kZSBjYW4gZnJlZSBydW4gYXQgNTBNSHopLgpAQCAtNDksOCArNDksOCBAQAogI2RlZmluZSBDT05GSUdfRlBHQV9ERUxBWSgpCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfRlBHQV9XQUlUCi0jZGVmaW5lIENGR19GUEdBX1dBSVQgQ0ZHX0haLzEwMAkvKiAxMCBtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX0ZQR0FfV0FJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVCBDT05GSUdfU1lTX0haLzEwMAkvKiAxMCBtcyAqLwogI2VuZGlmCiAKIHN0YXRpYyBpbnQgU3BhcnRhbjNfc3BfbG9hZCggWGlsaW54X2Rlc2MgKmRlc2MsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJzaXplICk7CkBAIC0xODUsNyArMTg1LDcgQEAKIAkJICogQ29udGludW91cyBEYXRhIExvYWRpbmcgaW4gU2xhdmUgUGFyYWxsZWwgTW9kZSBmb3IKIAkJICogdGhlIFNwYXJ0YW4tSUkgRmFtaWx5LgogCQkgKi8KLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJcHJpbnRmICgiTG9hZGluZyBGUEdBIERldmljZSAlZC4uLlxuIiwgY29va2llKTsKICNlbmRpZgogCQkvKgpAQCAtMjA2LDcgKzIwNiw3IEBACiAJCS8qIE5vdyB3YWl0IGZvciBJTklUIGFuZCBCVVNZIHRvIGdvIGhpZ2ggKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gY2xlYXIuXG4iKTsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CS8qIGFib3J0IHRoZSBidXJuICovCiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTIyOCw3ICsyMjgsNyBAQAogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7CiAJCQkoKmZuLT5jbGspIChUUlVFLCBUUlVFLCBjb29raWUpOwkvKiBBc3NlcnQgdGhlIGNsb2NrIHBpbiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQorI2lmZGVmIENPTkZJR19TWVNfRlBHQV9DSEVDS19CVVNZCiAJCQl0cyA9IGdldF90aW1lciAoMCk7CS8qIGdldCBjdXJyZW50IHRpbWUgKi8KIAkJCXdoaWxlICgoKmZuLT5idXN5KSAoY29va2llKSkgewogCQkJCS8qIFhYWCAtIHdlIHNob3VsZCBoYXZlIGEgY2hlY2sgaW4gaGVyZSBzb21ld2hlcmUgdG8KQEAgLTIzOSw3ICsyMzksNyBAQAogCQkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJCSgqZm4tPmNsaykgKFRSVUUsIFRSVUUsIGNvb2tpZSk7CS8qIEFzc2VydCB0aGUgY2xvY2sgcGluICovCiAKLQkJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgQlVTWSB0byBjbGVhci5cbiIpOwogCQkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CS8qIGFib3J0IHRoZSBidXJuICovCiAJCQkJCXJldHVybiBGUEdBX0ZBSUw7CkBAIC0yNDcsNyArMjQ3LDcgQEAKIAkJCX0KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCQlpZiAoYnl0ZWNvdW50ICUgKGJzaXplIC8gNDApID09IDApCiAJCQkJcHV0YyAoJy4nKTsJCS8qIGxldCB0aGVtIGtub3cgd2UgYXJlIGFsaXZlICovCiAjZW5kaWYKQEAgLTI1Nyw3ICsyNTcsNyBAQAogCQkoKmZuLT5jcykgKEZBTFNFLCBUUlVFLCBjb29raWUpOwkvKiBEZWFzc2VydCB0aGUgY2hpcCBzZWxlY3QgKi8KIAkJKCpmbi0+d3IpIChGQUxTRSwgVFJVRSwgY29va2llKTsJLyogRGVhc3NlcnQgdGhlIHdyaXRlIHBpbiAqLwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXB1dGMgKCdcbicpOwkJCS8qIHRlcm1pbmF0ZSB0aGUgZG90dGVkIGxpbmUgKi8KICNlbmRpZgogCkBAIC0yNzMsNyArMjczLDcgQEAKIAkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsJLyogQXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAotCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLworCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KIAkJCQlwdXRzICgiKiogVGltZW91dCB3YWl0aW5nIGZvciBET05FIHRvIGNsZWFyLlxuIik7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwkvKiBhYm9ydCB0aGUgYnVybiAqLwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CkBAIC0yODIsNyArMjgyLDcgQEAKIAkJfQogCiAJCWlmIChyZXRfdmFsID09IEZQR0FfU1VDQ0VTUykgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHV0cyAoIkRvbmUuXG4iKTsKICNlbmRpZgogCQl9CkBAIC0yOTQsNyArMjk0LDcgQEAKIAkJfQogCiAJCWVsc2UgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHV0cyAoIkZhaWwuXG4iKTsKICNlbmRpZgogCQl9CkBAIC0zMjgsNyArMzI4LDcgQEAKIAkJCSgqZm4tPmNsaykgKEZBTFNFLCBUUlVFLCBjb29raWUpOwkvKiBEZWFzc2VydCB0aGUgY2xvY2sgcGluICovCiAJCQkoKmZuLT5jbGspIChUUlVFLCBUUlVFLCBjb29raWUpOwkvKiBBc3NlcnQgdGhlIGNsb2NrIHBpbiAqLwogCQkJKCpmbi0+cmRhdGEpICgmKGRhdGFbYnl0ZWNvdW50KytdKSwgY29va2llKTsJLyogcmVhZCB0aGUgZGF0YSAqLwotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCkBAIC0zMzgsNyArMzM4LDcgQEAKIAkJKCpmbi0+Y2xrKSAoRkFMU0UsIFRSVUUsIGNvb2tpZSk7CS8qIERlYXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsJLyogQXNzZXJ0IHRoZSBjbG9jayBwaW4gKi8KIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIAkJcHV0cyAoIkRvbmUuXG4iKTsKQEAgLTQ2NSw3ICs0NjUsNyBAQAogCQkJCSJkb25lOlx0MHglcFxuXG4iLAogCQkJCV9fRlVOQ1RJT05fXywgJmZuLCBmbiwgZm4tPnBnbSwgZm4tPmluaXQsCiAJCQkJZm4tPmNsaywgZm4tPndyLCBmbi0+ZG9uZSk7Ci0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXByaW50ZiAoIkxvYWRpbmcgRlBHQSBEZXZpY2UgJWQuLi5cbiIsIGNvb2tpZSk7CiAjZW5kaWYKIApAQCAtNDgzLDcgKzQ4Myw3IEBACiAJCXRzID0gZ2V0X3RpbWVyICgwKTsJCS8qIGdldCBjdXJyZW50IHRpbWUgKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gc3RhcnQuXG4iKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJfQpAQCAtNDk3LDcgKzQ5Nyw3IEBACiAJCS8qIE5vdyB3YWl0IGZvciBJTklUIHRvIGdvIGhpZ2ggKi8KIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVCkgewkvKiBjaGVjayB0aGUgdGltZSAqLwogCQkJCXB1dHMgKCIqKiBUaW1lb3V0IHdhaXRpbmcgZm9yIElOSVQgdG8gY2xlYXIuXG4iKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJfQpAQCAtNTI4LDcgKzUyOCw3IEBACiAJCQkJaSAtLTsKIAkJCX0gd2hpbGUgKGkgPiAwKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CQkvKiBsZXQgdGhlbSBrbm93IHdlIGFyZSBhbGl2ZSAqLwogI2VuZGlmCkBAIC01MzYsNyArNTM2LDcgQEAKIAogCQlDT05GSUdfRlBHQV9ERUxBWSAoKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsJCQkvKiB0ZXJtaW5hdGUgdGhlIGRvdHRlZCBsaW5lICovCiAjZW5kaWYKIApAQCAtNTU2LDcgKzU1Niw3IEBACiAKIAkJCXB1dGMgKCcqJyk7CiAKLQkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENGR19GUEdBX1dBSVQpIHsJLyogY2hlY2sgdGhlIHRpbWUgKi8KKwkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENPTkZJR19TWVNfRlBHQV9XQUlUKSB7CS8qIGNoZWNrIHRoZSB0aW1lICovCiAJCQkJcHV0cyAoIioqIFRpbWVvdXQgd2FpdGluZyBmb3IgRE9ORSB0byBjbGVhci5cbiIpOwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CiAJCQkJYnJlYWs7CkBAIC01NzEsNyArNTcxLDcgQEAKIAkJCSgqZm4tPnBvc3QpIChjb29raWUpOwogCQl9CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJaWYgKHJldF92YWwgPT0gRlBHQV9TVUNDRVNTKSB7CiAJCQlwdXRzICgiRG9uZS5cbiIpOwogCQl9CmRpZmYgLS1naXQgYS9jb21tb24vdXBkYXRlLmMgYi9jb21tb24vdXBkYXRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUyODQ3NAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi91cGRhdGUuYwpAQCAtMCwwICsxLDMxNSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgMjAwOCBTZW1paGFsZgorICoKKyAqIFdyaXR0ZW4gYnk6IFJhZmFsIEN6dWJhayA8cmN6QHNlbWloYWxmLmNvbT4KKyAqICAgICAgICAgICAgIEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKgorICovCisKKyNpbmNsdWRlIDxjb21tb24uaD4KKworI2lmICEoZGVmaW5lZChDT05GSUdfRklUKSAmJiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpKQorI2Vycm9yICJDT05GSUdfRklUIGFuZCBDT05GSUdfT0ZfTElCRkRUIGFyZSByZXF1aXJlZCBmb3IgYXV0by11cGRhdGUgZmVhdHVyZSIKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05PX0ZMQVNIKQorI2Vycm9yICJDT05GSUdfU1lTX05PX0ZMQVNIIGRlZmluZWQsIGJ1dCBGTEFTSCBpcyByZXF1aXJlZCBmb3IgYXV0by11cGRhdGUgZmVhdHVyZSIKKyNlbmRpZgorCisjaW5jbHVkZSA8Y29tbWFuZC5oPgorI2luY2x1ZGUgPGZsYXNoLmg+CisjaW5jbHVkZSA8bmV0Lmg+CisjaW5jbHVkZSA8bWFsbG9jLmg+CisKKy8qIGVudiB2YXJpYWJsZSBob2xkaW5nIHRoZSBsb2NhdGlvbiBvZiB0aGUgdXBkYXRlIGZpbGUgKi8KKyNkZWZpbmUgVVBEQVRFX0ZJTEVfRU5WCQkidXBkYXRlZmlsZSIKKworLyogc2V0IGNvbmZpZ3VyYXRpb24gZGVmYXVsdHMgaWYgbmVlZGVkICovCisjaWZuZGVmIENPTkZJR19VUERBVEVfTE9BRF9BRERSCisjZGVmaW5lIENPTkZJR19VUERBVEVfTE9BRF9BRERSCTB4MTAwMDAwCisjZW5kaWYKKworI2lmbmRlZiBDT05GSUdfVVBEQVRFX1RGVFBfTVNFQ19NQVgKKyNkZWZpbmUgQ09ORklHX1VQREFURV9URlRQX01TRUNfTUFYCTEwMAorI2VuZGlmCisKKyNpZm5kZWYgQ09ORklHX1VQREFURV9URlRQX0NOVF9NQVgKKyNkZWZpbmUgQ09ORklHX1VQREFURV9URlRQX0NOVF9NQVgJMAorI2VuZGlmCisKK2V4dGVybiB1bG9uZyBUZnRwUlJRVGltZW91dE1TZWNzOworZXh0ZXJuIGludCBUZnRwUlJRVGltZW91dENvdW50TWF4OworZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW107CitleHRlcm4gdWxvbmcgbG9hZF9hZGRyOworCitzdGF0aWMgdWNoYXIgKnNhdmVkX3Byb3RfaW5mbzsKKworc3RhdGljIGludCB1cGRhdGVfbG9hZChjaGFyICpmaWxlbmFtZSwgdWxvbmcgbXNlY19tYXgsIGludCBjbnRfbWF4LCB1bG9uZyBhZGRyKQoreworCWludCBzaXplLCBydjsKKwl1bG9uZyBzYXZlZF90aW1lb3V0X21zZWNzOworCWludCBzYXZlZF90aW1lb3V0X2NvdW50OworCWNoYXIgKnNhdmVkX25ldHJldHJ5LCAqc2F2ZWRfYm9vdGZpbGU7CisKKwlydiA9IDA7CisJLyogc2F2ZSB1c2VkIGdsb2JhbHMgYW5kIGVudiB2YXJpYWJsZSAqLworCXNhdmVkX3RpbWVvdXRfbXNlY3MgPSBUZnRwUlJRVGltZW91dE1TZWNzOworCXNhdmVkX3RpbWVvdXRfY291bnQgPSBUZnRwUlJRVGltZW91dENvdW50TWF4OworCXNhdmVkX25ldHJldHJ5ID0gc3RyZHVwKGdldGVudigibmV0cmV0cnkiKSk7CisJc2F2ZWRfYm9vdGZpbGUgPSBzdHJkdXAoQm9vdEZpbGUpOworCisJLyogc2V0IHRpbWVvdXRzIGZvciBhdXRvLXVwZGF0ZSAqLworCVRmdHBSUlFUaW1lb3V0TVNlY3MgPSBtc2VjX21heDsKKwlUZnRwUlJRVGltZW91dENvdW50TWF4ID0gY250X21heDsKKworCS8qIHdlIGRvbid0IHdhbnQgdG8gcmV0cnkgdGhlIGNvbm5lY3Rpb24gaWYgZXJyb3JzIG9jY3VyICovCisJc2V0ZW52KCJuZXRyZXRyeSIsICJubyIpOworCisJLyogZG93bmxvYWQgdGhlIHVwZGF0ZSBmaWxlICovCisJbG9hZF9hZGRyID0gYWRkcjsKKwljb3B5X2ZpbGVuYW1lKEJvb3RGaWxlLCBmaWxlbmFtZSwgc2l6ZW9mKEJvb3RGaWxlKSk7CisJc2l6ZSA9IE5ldExvb3AoVEZUUCk7CisKKwlpZiAoc2l6ZSA8IDApCisJCXJ2ID0gMTsKKwllbHNlIGlmIChzaXplID4gMCkKKwkJZmx1c2hfY2FjaGUoYWRkciwgc2l6ZSk7CisKKwkvKiByZXN0b3JlIGNoYW5nZWQgZ2xvYmFscyBhbmQgZW52IHZhcmlhYmxlICovCisJVGZ0cFJSUVRpbWVvdXRNU2VjcyA9IHNhdmVkX3RpbWVvdXRfbXNlY3M7CisJVGZ0cFJSUVRpbWVvdXRDb3VudE1heCA9IHNhdmVkX3RpbWVvdXRfY291bnQ7CisKKwlzZXRlbnYoIm5ldHJldHJ5Iiwgc2F2ZWRfbmV0cmV0cnkpOworCWlmIChzYXZlZF9uZXRyZXRyeSAhPSBOVUxMKQorCQlmcmVlKHNhdmVkX25ldHJldHJ5KTsKKworCWlmIChzYXZlZF9ib290ZmlsZSAhPSBOVUxMKSB7CisJCWNvcHlfZmlsZW5hbWUoQm9vdEZpbGUsIHNhdmVkX2Jvb3RmaWxlLCBzaXplb2YoQm9vdEZpbGUpKTsKKwkJZnJlZShzYXZlZF9ib290ZmlsZSk7CisJfQorCisJcmV0dXJuIHJ2OworfQorCitzdGF0aWMgaW50IHVwZGF0ZV9mbGFzaF9wcm90ZWN0KGludCBwcm90LCB1bG9uZyBhZGRyX2ZpcnN0LCB1bG9uZyBhZGRyX2xhc3QpCit7CisJdWNoYXIgKnNwX2luZm9fcHRyOworCXVsb25nIHM7CisJaW50IGksIGJhbmssIGNudDsKKwlmbGFzaF9pbmZvX3QgKmluZm87CisKKwlzcF9pbmZvX3B0ciA9IE5VTEw7CisKKwlpZiAocHJvdCA9PSAwKSB7CisJCXNhdmVkX3Byb3RfaW5mbyA9CisJCQljYWxsb2MoQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgKiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNULCAxKTsKKwkJaWYgKCFzYXZlZF9wcm90X2luZm8pCisJCQlyZXR1cm4gMTsKKwl9CisKKwlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaykgeworCQljbnQgPSAwOworCQlpbmZvID0gJmZsYXNoX2luZm9bYmFua107CisKKwkJLyogTm90aGluZyB0byBkbyBpZiB0aGUgYmFuayBkb2Vzbid0IGV4aXN0ICovCisJCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPT0gMCkKKwkJCXJldHVybiAwOworCisJCS8qIFBvaW50IHRvIGN1cnJlbnQgYmFuayBwcm90ZWN0aW9uIGluZm9ybWF0aW9uICovCisJCXNwX2luZm9fcHRyID0gc2F2ZWRfcHJvdF9pbmZvICsgKGJhbmsgKiBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUKTsKKworCQkvKgorCQkgKiBBZGp1c3QgYWRkcl9maXJzdCBvciBhZGRyX2xhc3QgaWYgd2UgYXJlIG9uIGJhbmsgYm91bmRhcnkuCisJCSAqIEFkZHJlc3Mgc3BhY2UgYmV0d2VlbiBiYW5rcyBtdXN0IGJlIGNvbnRpbnVvdXMgZm9yIG90aGVyCisJCSAqIGZsYXNoIGZ1bmN0aW9ucyAobGlrZSBmbGFzaF9zZWN0X2VyYXNlIG9yIGZsYXNoX3dyaXRlKSB0bworCQkgKiBzdWNjZWVkLiBCYW5rcyBtdXN0IGFsc28gYmUgbnVtYmVyZWQgaW4gY29ycmVjdCBvcmRlciwKKwkJICogYWNjb3JkaW5nIHRvIGluY3JlYXNpbmcgYWRkcmVzc2VzLgorCQkgKi8KKwkJaWYgKGFkZHJfbGFzdCA+IGluZm8tPnN0YXJ0WzBdICsgaW5mby0+c2l6ZSAtIDEpCisJCQlhZGRyX2xhc3QgPSBpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUgLSAxOworCQlpZiAoYWRkcl9maXJzdCA8IGluZm8tPnN0YXJ0WzBdKQorCQkJYWRkcl9maXJzdCA9IGluZm8tPnN0YXJ0WzBdOworCisJCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5zZWN0b3JfY291bnQ7IGkrKykgeworCQkJLyogU2F2ZSBjdXJyZW50IGluZm9ybWF0aW9uIGFib3V0IHByb3RlY3RlZCBzZWN0b3JzICovCisJCQlpZiAocHJvdCA9PSAwKSB7CisJCQkJcyA9IGluZm8tPnN0YXJ0W2ldOworCQkJCWlmICgocyA+PSBhZGRyX2ZpcnN0KSAmJiAocyA8PSBhZGRyX2xhc3QpKQorCQkJCQlzcF9pbmZvX3B0cltpXSA9IGluZm8tPnByb3RlY3RbaV07CisKKwkJCX0KKworCQkJLyogUHJvdGVjdC91bnByb3RlY3Qgc2VjdG9ycyAqLworCQkJaWYgKHNwX2luZm9fcHRyW2ldID09IDEpIHsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKKwkJCQlpZiAoZmxhc2hfcmVhbF9wcm90ZWN0KGluZm8sIGksIHByb3QpKQorCQkJCQlyZXR1cm4gMTsKKyNlbHNlCisJCQkJaW5mby0+cHJvdGVjdFtpXSA9IHByb3Q7CisjZW5kaWYKKwkJCQljbnQrKzsKKwkJCX0KKwkJfQorCisJCWlmIChjbnQpIHsKKwkJCXByaW50ZigiJXNQcm90ZWN0ZWQgJWQgc2VjdG9yc1xuIiwKKwkJCQkJCXByb3QgPyAiIjogIlVuLSIsIGNudCk7CisJCX0KKwl9CisKKwlpZigocHJvdCA9PSAxKSAmJiBzYXZlZF9wcm90X2luZm8pCisJCWZyZWUoc2F2ZWRfcHJvdF9pbmZvKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVwZGF0ZV9mbGFzaCh1bG9uZyBhZGRyX3NvdXJjZSwgdWxvbmcgYWRkcl9maXJzdCwgdWxvbmcgc2l6ZSkKK3sKKwl1bG9uZyBhZGRyX2xhc3QgPSBhZGRyX2ZpcnN0ICsgc2l6ZSAtIDE7CisKKwkvKiByb3VuZCBsYXN0IGFkZHJlc3MgdG8gdGhlIHNlY3RvciBib3VuZGFyeSAqLworCWlmIChmbGFzaF9zZWN0X3JvdW5kYigmYWRkcl9sYXN0KSA+IDApCisJCXJldHVybiAxOworCisJaWYgKGFkZHJfZmlyc3QgPj0gYWRkcl9sYXN0KSB7CisJCXByaW50ZigiRXJyb3I6IGVuZCBhZGRyZXNzIGV4Y2VlZHMgYWRkcmVzc2luZyBzcGFjZVxuIik7CisJCXJldHVybiAxOworCX0KKworCS8qIHJlbW92ZSBwcm90ZWN0aW9uIG9uIHByb2Nlc3NlZCBzZWN0b3JzICovCisJaWYgKHVwZGF0ZV9mbGFzaF9wcm90ZWN0KDAsIGFkZHJfZmlyc3QsIGFkZHJfbGFzdCkgPiAwKSB7CisJCXByaW50ZigiRXJyb3I6IGNvdWxkIG5vdCB1bnByb3RlY3QgZmxhc2ggc2VjdG9yc1xuIik7CisJCXJldHVybiAxOworCX0KKworCXByaW50ZigiRXJhc2luZyAweCUwOGx4IC0gMHglMDhseCIsIGFkZHJfZmlyc3QsIGFkZHJfbGFzdCk7CisJaWYgKGZsYXNoX3NlY3RfZXJhc2UoYWRkcl9maXJzdCwgYWRkcl9sYXN0KSA+IDApIHsKKwkJcHJpbnRmKCJFcnJvcjogY291bGQgbm90IGVyYXNlIGZsYXNoXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcHJpbnRmKCJDb3B5aW5nIHRvIGZsYXNoLi4uIik7CisJaWYgKGZsYXNoX3dyaXRlKChjaGFyICopYWRkcl9zb3VyY2UsIGFkZHJfZmlyc3QsIHNpemUpID4gMCkgeworCQlwcmludGYoIkVycm9yOiBjb3VsZCBub3QgY29weSB0byBmbGFzaFxuIik7CisJCXJldHVybiAxOworCX0KKwlwcmludGYoImRvbmVcbiIpOworCisJLyogZW5hYmxlIHByb3RlY3Rpb24gb24gcHJvY2Vzc2VkIHNlY3RvcnMgKi8KKwlpZiAodXBkYXRlX2ZsYXNoX3Byb3RlY3QoMSwgYWRkcl9maXJzdCwgYWRkcl9sYXN0KSA+IDApIHsKKwkJcHJpbnRmKCJFcnJvcjogY291bGQgbm90IHByb3RlY3QgZmxhc2ggc2VjdG9yc1xuIik7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVwZGF0ZV9maXRfZ2V0cGFyYW1zKGNvbnN0IHZvaWQgKmZpdCwgaW50IG5vZmZzZXQsIHVsb25nICphZGRyLAorCQkJCQkJdWxvbmcgKmZsYWRkciwgdWxvbmcgKnNpemUpCit7CisJY29uc3Qgdm9pZCAqZGF0YTsKKworCWlmIChmaXRfaW1hZ2VfZ2V0X2RhdGEoZml0LCBub2Zmc2V0LCAmZGF0YSwgKHNpemVfdCAqKXNpemUpKQorCQlyZXR1cm4gMTsKKworCWlmIChmaXRfaW1hZ2VfZ2V0X2xvYWQoZml0LCBub2Zmc2V0LCAodWxvbmcgKilmbGFkZHIpKQorCQlyZXR1cm4gMTsKKworCSphZGRyID0gKHVsb25nKWRhdGE7CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCB1cGRhdGVfdGZ0cCh2b2lkKQoreworCWNoYXIgKmZpbGVuYW1lLCAqZW52X2FkZHI7CisJaW50IGltYWdlc19ub2Zmc2V0LCBuZGVwdGgsIG5vZmZzZXQ7CisJdWxvbmcgdXBkYXRlX2FkZHIsIHVwZGF0ZV9mbGFkZHIsIHVwZGF0ZV9zaXplOworCXVsb25nIGFkZHI7CisJdm9pZCAqZml0OworCisJcHJpbnRmKCJBdXRvLXVwZGF0ZSBmcm9tIFRGVFA6ICIpOworCisJLyogZ2V0IHRoZSBmaWxlIG5hbWUgb2YgdGhlIHVwZGF0ZSBmaWxlICovCisJZmlsZW5hbWUgPSBnZXRlbnYoVVBEQVRFX0ZJTEVfRU5WKTsKKwlpZiAoZmlsZW5hbWUgPT0gTlVMTCkgeworCQlwcmludGYoImZhaWxlZCwgZW52LiB2YXJpYWJsZSAnJXMnIG5vdCBmb3VuZFxuIiwKKwkJCQkJCQlVUERBVEVfRklMRV9FTlYpOworCQlyZXR1cm47CisJfQorCisJcHJpbnRmKCJ0cnlpbmcgdXBkYXRlIGZpbGUgJyVzJ1xuIiwgZmlsZW5hbWUpOworCisJLyogZ2V0IGxvYWQgYWRkcmVzcyBvZiBkb3dubG9hZGVkIHVwZGF0ZSBmaWxlICovCisJaWYgKChlbnZfYWRkciA9IGdldGVudigibG9hZGFkZHIiKSkgIT0gTlVMTCkKKwkJYWRkciA9IHNpbXBsZV9zdHJ0b3VsKGVudl9hZGRyLCBOVUxMLCAxNik7CisJZWxzZQorCQlhZGRyID0gQ09ORklHX1VQREFURV9MT0FEX0FERFI7CisKKworCWlmICh1cGRhdGVfbG9hZChmaWxlbmFtZSwgQ09ORklHX1VQREFURV9URlRQX01TRUNfTUFYLAorCQkJCQlDT05GSUdfVVBEQVRFX1RGVFBfQ05UX01BWCwgYWRkcikpIHsKKwkJcHJpbnRmKCJDYW4ndCBsb2FkIHVwZGF0ZSBmaWxlLCBhYm9ydGluZyBhdXRvLXVwZGF0ZVxuIik7CisJCXJldHVybjsKKwl9CisKKwlmaXQgPSAodm9pZCAqKWFkZHI7CisKKwlpZiAoIWZpdF9jaGVja19mb3JtYXQoKHZvaWQgKilmaXQpKSB7CisJCXByaW50ZigiQmFkIEZJVCBmb3JtYXQgb2YgdGhlIHVwZGF0ZSBmaWxlLCBhYm9ydGluZyAiCisJCQkJCQkJImF1dG8tdXBkYXRlXG4iKTsKKwkJcmV0dXJuOworCX0KKworCS8qIHByb2Nlc3MgdXBkYXRlcyAqLworCWltYWdlc19ub2Zmc2V0ID0gZmR0X3BhdGhfb2Zmc2V0KGZpdCwgRklUX0lNQUdFU19QQVRIKTsKKworCW5kZXB0aCA9IDA7CisJbm9mZnNldCA9IGZkdF9uZXh0X25vZGUoZml0LCBpbWFnZXNfbm9mZnNldCwgJm5kZXB0aCk7CisJd2hpbGUgKG5vZmZzZXQgPj0gMCAmJiBuZGVwdGggPiAwKSB7CisJCWlmIChuZGVwdGggIT0gMSkKKwkJCWdvdG8gbmV4dF9ub2RlOworCisJCXByaW50ZigiUHJvY2Vzc2luZyB1cGRhdGUgJyVzJyA6IiwKKwkJCWZpdF9nZXRfbmFtZShmaXQsIG5vZmZzZXQsIE5VTEwpKTsKKworCQlpZiAoIWZpdF9pbWFnZV9jaGVja19oYXNoZXMoZml0LCBub2Zmc2V0KSkgeworCQkJcHJpbnRmKCJFcnJvcjogaW52YWxpZCB1cGRhdGUgaGFzaCwgYWJvcnRpbmdcbiIpOworCQkJZ290byBuZXh0X25vZGU7CisJCX0KKworCQlwcmludGYoIlxuIik7CisJCWlmICh1cGRhdGVfZml0X2dldHBhcmFtcyhmaXQsIG5vZmZzZXQsICZ1cGRhdGVfYWRkciwKKwkJCQkJJnVwZGF0ZV9mbGFkZHIsICZ1cGRhdGVfc2l6ZSkpIHsKKwkJCXByaW50ZigiRXJyb3I6IGNhbid0IGdldCB1cGRhdGUgcGFyYW1ldGVyZXMsICIKKwkJCQkJCQkJImFib3J0aW5nXG4iKTsKKwkJCWdvdG8gbmV4dF9ub2RlOworCQl9CisJCWlmICh1cGRhdGVfZmxhc2godXBkYXRlX2FkZHIsIHVwZGF0ZV9mbGFkZHIsIHVwZGF0ZV9zaXplKSkgeworCQkJcHJpbnRmKCJFcnJvcjogY2FuJ3QgZmxhc2ggdXBkYXRlLCBhYm9ydGluZ1xuIik7CisJCQlnb3RvIG5leHRfbm9kZTsKKwkJfQorbmV4dF9ub2RlOgorCQlub2Zmc2V0ID0gZmR0X25leHRfbm9kZShmaXQsIG5vZmZzZXQsICZuZGVwdGgpOworCX0KKworCXJldHVybjsKK30KZGlmZiAtLWdpdCBhL2NvbW1vbi91c2Jfa2JkLmMgYi9jb21tb24vdXNiX2tiZC5jCmluZGV4IDkyMGJiMGYuLmNmMTQ1NjAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi91c2Jfa2JkLmMKKysrIGIvY29tbW9uL3VzYl9rYmQuYwpAQCAtMzYsNyArMzYsNyBAQAogICogYXJlIHN3aXRjaGVkIHRvIHRoZSBzZXJpYWwgcG9ydCwgZWxzZSB0aGUgc2V0dGluZ3MgaW4gdGhlCiAgKiBlbnZpcm9ubWVudCBhcmUgdXNlZAogICovCi0jaWZkZWYgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKKyNpZmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKIGV4dGVybiBpbnQgb3ZlcndyaXRlX2NvbnNvbGUgKHZvaWQpOwogI2Vsc2UKIGludCBvdmVyd3JpdGVfY29uc29sZSAodm9pZCkKQEAgLTEyMCw3ICsxMjAsNyBAQAogLyogdGVzdCBpZiBhIGNoYXJhY3RlciBpcyBpbiB0aGUgcXVldWUgKi8KIHN0YXRpYyBpbnQgdXNiX2tiZF90ZXN0Yyh2b2lkKQogewotI2lmZGVmIENGR19VU0JfRVZFTlRfUE9MTAorI2lmZGVmIENPTkZJR19TWVNfVVNCX0VWRU5UX1BPTEwKIAl1c2JfZXZlbnRfcG9sbCgpOwogI2VuZGlmCiAJaWYodXNiX2luX3BvaW50ZXI9PXVzYl9vdXRfcG9pbnRlcikKQEAgLTEzMyw3ICsxMzMsNyBAQAogewogCWNoYXIgYzsKIAl3aGlsZSh1c2JfaW5fcG9pbnRlcj09dXNiX291dF9wb2ludGVyKSB7Ci0jaWZkZWYgQ0ZHX1VTQl9FVkVOVF9QT0xMCisjaWZkZWYgQ09ORklHX1NZU19VU0JfRVZFTlRfUE9MTAogCQl1c2JfZXZlbnRfcG9sbCgpOwogI2VuZGlmCiAJfQpkaWZmIC0tZ2l0IGEvY29tbW9uL3ZpcnRleDIuYyBiL2NvbW1vbi92aXJ0ZXgyLmMKaW5kZXggNTJkYTFiMi4uNTBkMDkyMSAxMDA2NDQKLS0tIGEvY29tbW9uL3ZpcnRleDIuYworKysgYi9jb21tb24vdmlydGV4Mi5jCkBAIC00MywzNCArNDMsMzQgQEAKIAogLyoKICAqIElmIHRoZSBTZWxlY3RNYXAgaW50ZXJmYWNlIGNhbiBiZSBvdmVycnVuIGJ5IHRoZSBwcm9jZXNzb3IsIGRlZmluZQotICogQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWSBhbmQvb3IgQ09ORklHX0ZQR0FfREVMQVkgaW4gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24KKyAqIENPTkZJR19TWVNfRlBHQV9DSEVDS19CVVNZIGFuZC9vciBDT05GSUdfRlBHQV9ERUxBWSBpbiB0aGUgYm9hcmQgY29uZmlndXJhdGlvbgogICogZmlsZSBhbmQgYWRkIGJvYXJkLXNwZWNpZmljIHN1cHBvcnQgZm9yIGNoZWNraW5nIEJVU1kgc3RhdHVzLiBCeSBkZWZhdWx0LAogICogYXNzdW1lIHRoYXQgdGhlIFNlbGVjdE1hcCBpbnRlcmZhY2UgY2Fubm90IGJlIG92ZXJydW4uCiAgKi8KLSNpZm5kZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQlVTWQotI3VuZGVmIENGR19GUEdBX0NIRUNLX0JVU1kKKyNpZm5kZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0JVU1kKKyN1bmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQlVTWQogI2VuZGlmCiAKICNpZm5kZWYgQ09ORklHX0ZQR0FfREVMQVkKICNkZWZpbmUgQ09ORklHX0ZQR0FfREVMQVkoKQogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSwotI2RlZmluZSBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZuZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAjZW5kaWYKIAogLyoKICAqIERvbid0IGFsbG93IGNvbmZpZyBjeWNsZSB0byBiZSBpbnRlcnJ1cHRlZAogICovCi0jaWZuZGVmIENGR19GUEdBX0NIRUNLX0NUUkxDCi0jdW5kZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQ1RSTEMKKyNpZm5kZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCisjdW5kZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCiAjZW5kaWYKIAogLyoKICAqIENoZWNrIGZvciBlcnJvcnMgZHVyaW5nIGNvbmZpZ3VyYXRpb24gYnkgZGVmYXVsdAogICovCi0jaWZuZGVmIENGR19GUEdBX0NIRUNLX0VSUk9SCi0jZGVmaW5lIENGR19GUEdBX0NIRUNLX0VSUk9SCisjaWZuZGVmIENPTkZJR19TWVNfRlBHQV9DSEVDS19FUlJPUgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfRVJST1IKICNlbmRpZgogCiAvKgpAQCAtODEsOCArODEsOCBAQAogICogd2hpY2ggeWllbGRzIDExLjQ0IG1TLiAgU28gbGV0J3MgbWFrZSBpdCBiaWdnZXIgaW4gb3JkZXIgdG8gaGFuZGxlCiAgKiBhbiBYQzJWMTAwMCwgaWYgYW55b25lIGNhbiBldmVyIGdldCBhaG9sZCBvZiBvbmUuCiAgKi8KLSNpZm5kZWYgQ0ZHX0ZQR0FfV0FJVF9JTklUCi0jZGVmaW5lIENGR19GUEdBX1dBSVRfSU5JVAlDRkdfSFovMgkvKiA1MDAgbXMgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19GUEdBX1dBSVRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVF9JTklUCUNPTkZJR19TWVNfSFovMgkvKiA1MDAgbXMgKi8KICNlbmRpZgogCiAvKgpAQCAtOTAsMTUgKzkwLDE1IEBACiAgKiBUaGlzIGlzIG5vcm1hbGx5IG5vdCBuZWNlc3Nhcnkgc2luY2UgZm9yIG1vc3QgcmVhc29uYWJsZSBjb25maWd1cmF0aW9uCiAgKiBjbG9jayBmcmVxdWVuY2llcyAoaS5lLiA2NiBNSHogb3IgbGVzcyksIEJVU1kgbW9uaXRvcmluZyBpcyB1bm5lY2Vzc2FyeS4KICAqLwotI2lmbmRlZiBDRkdfRlBHQV9XQUlUX0JVU1kKLSNkZWZpbmUgQ0ZHX0ZQR0FfV0FJVF9CVVNZCUNGR19IWi8yMDAJLyogNSBtcyovCisjaWZuZGVmIENPTkZJR19TWVNfRlBHQV9XQUlUX0JVU1kKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1dBSVRfQlVTWQlDT05GSUdfU1lTX0haLzIwMAkvKiA1IG1zKi8KICNlbmRpZgogCiAvKiBEZWZhdWx0IHRpbWVvdXQgZm9yIHdhaXRpbmcgZm9yIEZQR0EgdG8gZW50ZXIgb3BlcmF0aW9uYWwgbW9kZSBhZnRlcgogICogY29uZmlndXJhdGlvbiBkYXRhIGhhcyBiZWVuIHdyaXR0ZW4uCiAgKi8KLSNpZm5kZWYJQ0ZHX0ZQR0FfV0FJVF9DT05GSUcKLSNkZWZpbmUgQ0ZHX0ZQR0FfV0FJVF9DT05GSUcJQ0ZHX0haLzUJLyogMjAwIG1zICovCisjaWZuZGVmCUNPTkZJR19TWVNfRlBHQV9XQUlUX0NPTkZJRworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfV0FJVF9DT05GSUcJQ09ORklHX1NZU19IWi81CS8qIDIwMCBtcyAqLwogI2VuZGlmCiAKIHN0YXRpYyBpbnQgVmlydGV4Ml9zc21fbG9hZCAoWGlsaW54X2Rlc2MgKiBkZXNjLCB2b2lkICpidWYsIHNpemVfdCBic2l6ZSk7CkBAIC0yMzIsNyArMjMyLDcgQEAKIAkJCQlmbi0+Y2xrLCBmbi0+Y3MsIGZuLT53ciwgZm4tPnJkYXRhLCBmbi0+d2RhdGEsCiAJCQkJZm4tPmJ1c3ksIGZuLT5hYm9ydCwgZm4tPnBvc3QpOwogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCXByaW50ZiAoIkluaXRpYWxpemluZyBGUEdBIERldmljZSAlZC4uLlxuIiwgY29va2llKTsKICNlbmRpZgogCQkvKgpAQCAtMjUyLDEwICsyNTIsMTAgQEAKIAkJdWRlbGF5ICgxMCk7CiAJCXRzID0gZ2V0X3RpbWVyICgwKTsKIAkJZG8gewotCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVF9JTklUKSB7CisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVF9JTklUKSB7CiAJCQkJcHJpbnRmICgiJXM6JWQ6ICoqIFRpbWVvdXQgYWZ0ZXIgJWQgdGlja3Mgd2FpdGluZyBmb3IgSU5JVCIKIAkJCQkJCSIgdG8gYXNzZXJ0LlxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXywKLQkJCQkJCUNGR19GUEdBX1dBSVRfSU5JVCk7CisJCQkJCQlDT05GSUdfU1lTX0ZQR0FfV0FJVF9JTklUKTsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKIAkJCX0KQEAgLTI3MSwxMCArMjcxLDEwIEBACiAJCXRzID0gZ2V0X3RpbWVyICgwKTsKIAkJZG8gewogCQkJQ09ORklHX0ZQR0FfREVMQVkgKCk7Ci0JCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDRkdfRlBHQV9XQUlUX0lOSVQpIHsKKwkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENPTkZJR19TWVNfRlBHQV9XQUlUX0lOSVQpIHsKIAkJCQlwcmludGYgKCIlczolZDogKiogVGltZW91dCBhZnRlciAlZCB0aWNrcyB3YWl0aW5nIGZvciBJTklUIgogCQkJCQkJIiB0byBkZWFzc2VydC5cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18sCi0JCQkJCQlDRkdfRlBHQV9XQUlUX0lOSVQpOworCQkJCQkJQ09ORklHX1NZU19GUEdBX1dBSVRfSU5JVCk7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwogCQkJCXJldHVybiBGUEdBX0ZBSUw7CiAJCQl9CkBAIC0yODksNyArMjg5LDcgQEAKIAkJICogTG9hZCB0aGUgZGF0YSBieXRlIGJ5IGJ5dGUKIAkJICovCiAJCXdoaWxlIChieXRlY291bnQgPCBic2l6ZSkgewotI2lmZGVmIENGR19GUEdBX0NIRUNLX0NUUkxDCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCiAJCQlpZiAoY3RybGMgKCkpIHsKIAkJCQkoKmZuLT5hYm9ydCkgKGNvb2tpZSk7CiAJCQkJcmV0dXJuIEZQR0FfRkFJTDsKQEAgLTMwMiw3ICszMDIsNyBAQAogCQkJICAgIGJyZWFrOwogCQkJfQogCi0jaWZkZWYgQ0ZHX0ZQR0FfQ0hFQ0tfRVJST1IKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfRVJST1IKIAkJCWlmICgoKmZuLT5pbml0KSAoY29va2llKSkgewogCQkJCXByaW50ZiAoIlxuJXM6JWQ6ICAqKiBFcnJvcjogSU5JVCBhc3NlcnRlZCBkdXJpbmciCiAJCQkJCQkiIGNvbmZpZ3VyYXRpb25cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwpAQCAtMzIzLDIwICszMjMsMjAgQEAKIAkJCUNPTkZJR19GUEdBX0RFTEFZICgpOwogCQkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsKIAotI2lmZGVmIENGR19GUEdBX0NIRUNLX0JVU1kKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQlVTWQogCQkJdHMgPSBnZXRfdGltZXIgKDApOwogCQkJd2hpbGUgKCgqZm4tPmJ1c3kpIChjb29raWUpKSB7Ci0JCQkJaWYgKGdldF90aW1lciAodHMpID4gQ0ZHX0ZQR0FfV0FJVF9CVVNZKSB7CisJCQkJaWYgKGdldF90aW1lciAodHMpID4gQ09ORklHX1NZU19GUEdBX1dBSVRfQlVTWSkgewogCQkJCQlwcmludGYgKCIlczolZDogKiogVGltZW91dCBhZnRlciAlZCB0aWNrcyB3YWl0aW5nIGZvciIKIAkJCQkJCQkiIEJVU1kgdG8gZGVhc3NlcnRcbiIsCi0JCQkJCQkJX19GVU5DVElPTl9fLCBfX0xJTkVfXywgQ0ZHX0ZQR0FfV0FJVF9CVVNZKTsKKwkJCQkJCQlfX0ZVTkNUSU9OX18sIF9fTElORV9fLCBDT05GSUdfU1lTX0ZQR0FfV0FJVF9CVVNZKTsKIAkJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwogCQkJCQlyZXR1cm4gRlBHQV9GQUlMOwogCQkJCX0KIAkJCX0KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2lmZGVmIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAJCQlpZiAoYnl0ZWNvdW50ICUgKGJzaXplIC8gNDApID09IDApCiAJCQkJcHV0YyAoJy4nKTsKICNlbmRpZgpAQCAtMzQ5LDcgKzM0OSw3IEBACiAJCSgqZm4tPmNzKSAoRkFMU0UsIFRSVUUsIGNvb2tpZSk7CiAJCSgqZm4tPndyKSAoRkFMU0UsIFRSVUUsIGNvb2tpZSk7CiAKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJcHV0YyAoJ1xuJyk7CiAjZW5kaWYKIApAQCAtMzYwLDEwICszNjAsMTAgQEAKIAkJdHMgPSBnZXRfdGltZXIgKDApOwogCQlyZXRfdmFsID0gRlBHQV9TVUNDRVNTOwogCQl3aGlsZSAoKCgqZm4tPmRvbmUpIChjb29raWUpID09IEZQR0FfRkFJTCkgfHwgKCpmbi0+aW5pdCkgKGNvb2tpZSkpIHsKLQkJCWlmIChnZXRfdGltZXIgKHRzKSA+IENGR19GUEdBX1dBSVRfQ09ORklHKSB7CisJCQlpZiAoZ2V0X3RpbWVyICh0cykgPiBDT05GSUdfU1lTX0ZQR0FfV0FJVF9DT05GSUcpIHsKIAkJCQlwcmludGYgKCIlczolZDogKiogVGltZW91dCBhZnRlciAlZCB0aWNrcyB3YWl0aW5nIGZvciBET05FIHRvIgogCQkJCQkJImFzc2VydCBhbmQgSU5JVCB0byBkZWFzc2VydFxuIiwKLQkJCQkJCV9fRlVOQ1RJT05fXywgX19MSU5FX18sIENGR19GUEdBX1dBSVRfQ09ORklHKTsKKwkJCQkJCV9fRlVOQ1RJT05fXywgX19MSU5FX18sIENPTkZJR19TWVNfRlBHQV9XQUlUX0NPTkZJRyk7CiAJCQkJKCpmbi0+YWJvcnQpIChjb29raWUpOwogCQkJCXJldF92YWwgPSBGUEdBX0ZBSUw7CiAJCQkJYnJlYWs7CkBAIC0zNzEsNyArMzcxLDcgQEAKIAkJfQogCiAJCWlmIChyZXRfdmFsID09IEZQR0FfU1VDQ0VTUykgewotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJcHJpbnRmICgiSW5pdGlhbGl6YXRpb24gb2YgRlBHQSBkZXZpY2UgJWQgY29tcGxldGVcbiIsIGNvb2tpZSk7CiAjZW5kaWYKIAkJCS8qCkBAIC0zODEsNyArMzgxLDcgQEAKIAkJCQkoKmZuLT5wb3N0KSAoY29va2llKTsKIAkJCX0KIAkJfSBlbHNlIHsKLSNpZmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCisjaWZkZWYgQ09ORklHX1NZU19GUEdBX1BST0dfRkVFREJBQ0sKIAkJCXByaW50ZiAoIioqIEluaXRpYWxpemF0aW9uIG9mIEZQR0EgZGV2aWNlICVkIEZBSUxFRFxuIiwKIAkJCQkJY29va2llKTsKICNlbmRpZgpAQCAtNDEyLDcgKzQxMiw3IEBACiAJCSgqZm4tPmNsaykgKFRSVUUsIFRSVUUsIGNvb2tpZSk7CiAKIAkJd2hpbGUgKGJ5dGVjb3VudCA8IGJzaXplKSB7Ci0jaWZkZWYgQ0ZHX0ZQR0FfQ0hFQ0tfQ1RSTEMKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfQ0hFQ0tfQ1RSTEMKIAkJCWlmIChjdHJsYyAoKSkgewogCQkJCSgqZm4tPmFib3J0KSAoY29va2llKTsKIAkJCQlyZXR1cm4gRlBHQV9GQUlMOwpAQCAtNDI0LDcgKzQyNCw3IEBACiAJCQkoKmZuLT5jbGspIChGQUxTRSwgVFJVRSwgY29va2llKTsKIAkJCSgqZm4tPmNsaykgKFRSVUUsIFRSVUUsIGNvb2tpZSk7CiAJCQkoKmZuLT5yZGF0YSkgKCYoZGF0YVtieXRlY291bnQrK10pLCBjb29raWUpOwotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQkJaWYgKGJ5dGVjb3VudCAlIChic2l6ZSAvIDQwKSA9PSAwKQogCQkJCXB1dGMgKCcuJyk7CiAjZW5kaWYKQEAgLTQzNyw3ICs0MzcsNyBAQAogCQkoKmZuLT5jbGspIChGQUxTRSwgVFJVRSwgY29va2llKTsKIAkJKCpmbi0+Y2xrKSAoVFJVRSwgVFJVRSwgY29va2llKTsKIAotI2lmZGVmIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCQlwdXRjICgnXG4nKTsKICNlbmRpZgogCQlwdXRzICgiRG9uZS5cbiIpOwpkaWZmIC0tZ2l0IGEvY3B1Lzc0eHhfN3h4L2NhY2hlLlMgYi9jcHUvNzR4eF83eHgvY2FjaGUuUwppbmRleCBlYWM0NTQ0Li42NmM3Mjk4IDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvY2FjaGUuUworKysgYi9jcHUvNzR4eF83eHgvY2FjaGUuUwpAQCAtNTIsNyArNTIsNyBAQAogLyoKICAqIEZsdXNoIGRhdGEgY2FjaGUuCiAgKi8KLV9HTE9CQUwoZmx1c2hfZGF0YV9jYWNoZSkKK19HTE9CQUwoZmx1c2hfZGNhY2hlKQogCWxpcwlyMywwCiAJbGlzCXI1LENBQ0hFX0xJTkVfU0laRQogZmx1c2g6CkBAIC0yOTIsNyArMjkyLDcgQEAKIAltdHNwcglISUQwLCByNQkJLyogZW5hYmxlICsgaW52YWxpZGF0ZSAqLwogCW10c3ByCUhJRDAsIHIzCQkvKiBlbmFibGUgKi8KIAlzeW5jCi0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCW1mbHIJcjUKIAlibAlsMmNhY2hlX2VuYWJsZQkJLyogdXNlcyByMyBhbmQgcjQgKi8KIAlzeW5jCkBAIC0zMDMsMTIgKzMwMywxMiBAQAogCiAvKgogICogRGlzYWJsZSBkYXRhIGNhY2hlKHMpIC0gTDEgYW5kIG9wdGlvbmFsbHkgTDIKLSAqIENhbGxzIGZsdXNoX2RhdGFfY2FjaGUgYW5kIGwyY2FjaGVfZGlzYWJsZV9ub19mbHVzaC4KKyAqIENhbGxzIGZsdXNoX2RjYWNoZSBhbmQgbDJjYWNoZV9kaXNhYmxlX25vX2ZsdXNoLgogICogTFIgc2F2ZWQgaW4gcjQKICAqLwogX0dMT0JBTChkY2FjaGVfZGlzYWJsZSkKIAltZmxyCXI0CQkJLyogc2F2ZSBsaW5rIHJlZ2lzdGVyICovCi0JYmwJZmx1c2hfZGF0YV9jYWNoZQkvKiB1c2VzIHIzIGFuZCByNSAqLworCWJsCWZsdXNoX2RjYWNoZQkvKiB1c2VzIHIzIGFuZCByNSAqLwogCXN5bmMKIAltZnNwcglyMywgSElEMAogCWxpCXI1LCBISUQwX0RDRkl8SElEMF9ETE9DSwpAQCAtMzE4LDcgKzMxOCw3IEBACiAJYW5kYwlyMywgcjMsIHI1CQkvKiBubyBlbmFibGUsIG5vIGludmFsaWRhdGUgKi8KIAltdHNwcglISUQwLCByMwogCXN5bmMKLSNpZmRlZiBDRkdfTDIKKyNpZmRlZiBDT05GSUdfU1lTX0wyCiAJYmwJbDJjYWNoZV9kaXNhYmxlX25vX2ZsdXNoIC8qIHVzZXMgcjMgKi8KICNlbmRpZgogCW10bHIJcjQJCQkvKiByZXN0b3JlIGxpbmsgcmVnaXN0ZXIgKi8KQEAgLTM4OSwxMSArMzg5LDExIEBACiAKIC8qCiAgKiBEaXNhYmxlIEwyIGNhY2hlCi0gKiBDYWxscyBmbHVzaF9kYXRhX2NhY2hlLiBMUiBpcyBzYXZlZCBpbiByNAorICogQ2FsbHMgZmx1c2hfZGNhY2hlLiBMUiBpcyBzYXZlZCBpbiByNAogICovCiBfR0xPQkFMKGwyY2FjaGVfZGlzYWJsZSkKIAltZmxyCXI0CQkJLyogc2F2ZSBsaW5rIHJlZ2lzdGVyICovCi0JYmwJZmx1c2hfZGF0YV9jYWNoZQkvKiB1c2VzIHIzIGFuZCByNSAqLworCWJsCWZsdXNoX2RjYWNoZQkJLyogdXNlcyByMyBhbmQgcjUgKi8KIAlzeW5jCiAJbXRscglyNAkJCS8qIHJlc3RvcmUgbGluayByZWdpc3RlciAqLwogbDJjYWNoZV9kaXNhYmxlX25vX2ZsdXNoOgkJLyogcHJvdmlkZSB3YXkgdG8gZGlzYWJsZSBMMiB3L28gZmx1c2hpbmcgKi8KZGlmZiAtLWdpdCBhL2NwdS83NHh4Xzd4eC9jcHUuYyBiL2NwdS83NHh4Xzd4eC9jcHUuYwppbmRleCBjMDA3YWJjLi4zYzE3Mjc3IDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvY3B1LmMKKysrIGIvY3B1Lzc0eHhfN3h4L2NwdS5jCkBAIC0yNTYsMTYgKzI1NiwxNiBAQAogCV9fYXNtX18gX192b2xhdGlsZV9fICgiaXN5bmMiKTsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiKTsKIAotI2lmZGVmIENGR19SRVNFVF9BRERSRVNTCi0JYWRkciA9IENGR19SRVNFVF9BRERSRVNTOworI2lmZGVmIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUworCWFkZHIgPSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1M7CiAjZWxzZQogCS8qCi0JICogbm90ZTogd2hlbiBDRkdfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLAotCSAqIENGR19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQKKwkgKiBub3RlOiB3aGVuIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLAorCSAqIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZykgaXMgdXN1YWxseSBhIHZhbGlkCiAJICogYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcyBrbm93biB0byBiZSBpbnZhbGlkIG9uIHlvdXIKLQkgKiBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDRkdfUkVTRVRfQUREUkVTUy4KKwkgKiBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MuCiAJICovCi0JYWRkciA9IENGR19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKKwlhZGRyID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKICNlbmRpZgogCXNvZnRfcmVzdGFydChhZGRyKTsKIAl3aGlsZSgxKTsJLyogbm90IHJlYWNoZWQgKi8KQEAgLTI3NywxOCArMjc3LDE4IEBACiAvKgogICogRm9yIHRoZSA3NDAwIHRoZSBUQiBjbG9jayBydW5zIGF0IDEvNCB0aGUgY3B1IGJ1cyBzcGVlZC4KICAqLwotI2lmIGRlZmluZWQoQ09ORklHX0FNSUdBT05FRzNTRSkgfHwgZGVmaW5lZChDRkdfQ09ORklHX0JVU19DTEspCisjaWYgZGVmaW5lZChDT05GSUdfQU1JR0FPTkVHM1NFKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfQ09ORklHX0JVU19DTEspCiB1bnNpZ25lZCBsb25nIGdldF90YmNsayh2b2lkKQogewogCXJldHVybiAoZ2QtPmJ1c19jbGsgLyA0KTsKIH0KLSNlbHNlCS8qICEgQ09ORklHX0FNSUdBT05FRzNTRSBhbmQgIUNGR19DT05GSUdfQlVTX0NMSyovCisjZWxzZQkvKiAhIENPTkZJR19BTUlHQU9ORUczU0UgYW5kICFDT05GSUdfU1lTX0NPTkZJR19CVVNfQ0xLKi8KIAogdW5zaWduZWQgbG9uZyBnZXRfdGJjbGsgKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19CVVNfSFogLyA0OworCXJldHVybiBDT05GSUdfU1lTX0JVU19IWiAvIDQ7CiB9Ci0jZW5kaWYJLyogQ09ORklHX0FNSUdBT05FRzNTRSBvciBDRkdfQ09ORklHX0JVU19DTEsqLworI2VuZGlmCS8qIENPTkZJR19BTUlHQU9ORUczU0Ugb3IgQ09ORklHX1NZU19DT05GSUdfQlVTX0NMSyovCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCiAjaWYgIWRlZmluZWQoQ09ORklHX1BDSVBQQzIpICYmICFkZWZpbmVkKENPTkZJR19CQUI3eHgpCmRpZmYgLS1naXQgYS9jcHUvNzR4eF83eHgvaW50ZXJydXB0cy5jIGIvY3B1Lzc0eHhfN3h4L2ludGVycnVwdHMuYwppbmRleCBmMGVhNDg1Li4wZWExYWVjIDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS83NHh4Xzd4eC9pbnRlcnJ1cHRzLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIAkgICAgICAgR1RSRUdSRUFEKEVUSEVSTkVUMl9JTlRFUlJVUFRfTUFTS19SRUdJU1RFUikpOwogCXB1dHMoImludGVycnVwdF9pbml0OiBzZXR0aW5nIGRlY3JlbWVudGVyX2NvdW50XG4iKTsKICNlbmRpZgotCSpkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsaygpIC8gQ0ZHX0haOworCSpkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsaygpIC8gQ09ORklHX1NZU19IWjsKIAogCXJldHVybiAoMCk7CiB9CmRpZmYgLS1naXQgYS9jcHUvNzR4eF83eHgva2dkYi5TIGIvY3B1Lzc0eHhfN3h4L2tnZGIuUwppbmRleCA0ZjIzMTIyLi5hZDQ4N2NkIDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgva2dkYi5TCisrKyBiL2NwdS83NHh4Xzd4eC9rZ2RiLlMKQEAgLTQzLDcgKzQzLDcgQEAKIAlhZGRpcwlyNCxyMCwweDAwNDAKIGtnZGJfZmx1c2hfbG9vcDoKIAlsd3oJcjUsMChyMykKLQlhZGRpCXIzLHIzLENGR19DQUNIRUxJTkVfU0laRQorCWFkZGkJcjMscjMsQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQogCWNtcAkwLDAscjMscjQKIAlibmUJa2dkYl9mbHVzaF9sb29wCiAJU1lOQwpAQCAtNTUsMjEgKzU1LDIxIEBACiAKIAkuZ2xvYmwJa2dkYl9mbHVzaF9jYWNoZV9yYW5nZQoga2dkYl9mbHVzaF9jYWNoZV9yYW5nZToKLQlsaQlyNSxDRkdfQ0FDSEVMSU5FX1NJWkUtMQorCWxpCXI1LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUtMQogCWFuZGMJcjMscjMscjUKIAlzdWJmCXI0LHIzLHI0CiAJYWRkCXI0LHI0LHI1Ci0Jc3J3aS4JcjQscjQsQ0ZHX0NBQ0hFTElORV9TSElGVAorCXNyd2kuCXI0LHI0LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCiAJYmVxbHIKIAltdGN0cglyNAogCW1yCXI2LHIzCiAxOglkY2JzdAkwLHIzCi0JYWRkaQlyMyxyMyxDRkdfQ0FDSEVMSU5FX1NJWkUKKwlhZGRpCXIzLHIzLENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAliZG56CTFiCiAJc3luYwkJCQkvKiB3YWl0IGZvciBkY2JzdCdzIHRvIGdldCB0byByYW0gKi8KIAltdGN0cglyNAogMjoJaWNiaQkwLHI2Ci0JYWRkaQlyNixyNixDRkdfQ0FDSEVMSU5FX1NJWkUKKwlhZGRpCXI2LHI2LENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAliZG56CTJiCiAJU1lOQwogCWJscgpkaWZmIC0tZ2l0IGEvY3B1Lzc0eHhfN3h4L3NwZWVkLmMgYi9jcHUvNzR4eF83eHgvc3BlZWQuYwppbmRleCBkOGM0MGNlLi5iYzMzYTY3IDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvc3BlZWQuYworKysgYi9jcHUvNzR4eF83eHgvc3BlZWQuYwpAQCAtMTI3LDggKzEyNyw4IEBACiB7CiAJdWxvbmcgY2xvY2sgPSAwOwogCi0jaWZkZWYgQ0ZHX0JVU19DTEsKLQlnZC0+YnVzX2NsayA9IENGR19CVVNfQ0xLOwkvKiBidXMgY2xvY2sgaXMgYSBmaXhlZCBmcmVxdWVuY3kgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0JVU19DTEsKKwlnZC0+YnVzX2NsayA9IENPTkZJR19TWVNfQlVTX0NMSzsJLyogYnVzIGNsb2NrIGlzIGEgZml4ZWQgZnJlcXVlbmN5ICovCiAjZWxzZQogCWdkLT5idXNfY2xrID0gZ2V0X2JvYXJkX2J1c19jbGsgKCk7CS8qIGJ1cyBjbG9jayBpcyBjb25maWd1cmFibGUgKi8KICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1Lzc0eHhfN3h4L3N0YXJ0LlMgYi9jcHUvNzR4eF83eHgvc3RhcnQuUwppbmRleCA0MmIwZjcyLi4wN2JiZTAxIDEwMDY0NAotLS0gYS9jcHUvNzR4eF83eHgvc3RhcnQuUworKysgYi9jcHUvNzR4eF83eHgvc3RhcnQuUwpAQCAtMjA5LDcgKzIwOSw3IEBACiAJYmwJaW52YWxpZGF0ZV9iYXRzCiAJc3luYwogCi0jaWZkZWYgQ0ZHX0wyCisjaWZkZWYgQ09ORklHX1NZU19MMgogCS8qIGluaXQgdGhlIEwyIGNhY2hlICovCiAJYWRkaXMJcjMsIHIwLCBMMl9JTklUQGgKIAlvcmkJcjMsIHIzLCBMMl9JTklUQGwKQEAgLTIyNSwxMiArMjI1LDEyIEBACiAJCSAqLwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfTDIKKyNpZmRlZiBDT05GSUdfU1lTX0wyCiAJLyogaW52YWxpZGF0ZSB0aGUgTDIgY2FjaGUgKi8KIAlibAlsMmNhY2hlX2ludmFsaWRhdGUKIAlzeW5jCiAjZW5kaWYKLSNpZmRlZiBDRkdfQk9BUkRfQVNNX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCiAJLyogZG8gZWFybHkgaW5pdCAqLwogCWJsCWJvYXJkX2FzbV9pbml0CiAjZW5kaWYKQEAgLTIzOCw4ICsyMzgsOCBAQAogCS8qCiAJICogQ2FsY3VsYXRlIGFic29sdXRlIGFkZHJlc3MgaW4gRkxBU0ggYW5kIGp1bXAgdGhlcmUKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbGlzCXIzLCBDRkdfTU9OSVRPUl9CQVNFQGgKLQlvcmkJcjMsIHIzLCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJYWRkaQlyMywgcjMsIGluX2ZsYXNoIC0gX3N0YXJ0ICsgRVhDX09GRl9TWVNfUkVTRVQKIAltdGxyCXIzCiAJYmxyCkBAIC0yODAsMTUgKzI4MCwxNSBAQAogCWJsCWwxZGNhY2hlX2VuYWJsZQogCXN5bmMKICNlbmRpZgotI2lmZGVmIENGR19JTklUX1JBTV9MT0NLCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiAJYmwJbG9ja19yYW1faW5fY2FjaGUKIAlzeW5jCiAjZW5kaWYKIAogCS8qIHNldCB1cCB0aGUgc3RhY2sgcG9pbnRlciBpbiBvdXIgbmV3bHkgY3JlYXRlZAogCSAqIGNhY2hlLXJhbSAocjEpICovCi0JbGlzCXIxLCAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKUBoCi0Jb3JpCXIxLCByMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVClAbAorCWxpcwlyMSwgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKUBoCisJb3JpCXIxLCByMSwgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKUBsCiAKIAlsaQlyMCwgMAkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kCSovCiAJc3R3dQlyMCwgLTQocjEpCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KQEAgLTM0MywxNDYgKzM0MywxNDYgQEAKIAlhZGRpcwlyMCwgcjAsIDB4MDAwMAogCiAJLyogSUJBVCAwICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDBMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDBMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUMFVAaAotCW9yaQlyMywgcjMsIENGR19JQkFUMFVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUMExAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDBMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDBVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQwVUBsCiAJbXRzcHIJSUJBVDBMLCByNAogCW10c3ByCUlCQVQwVSwgcjMKIAlpc3luYwogCiAJLyogREJBVCAwICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDBMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDBMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUMFVAaAotCW9yaQlyMywgcjMsIENGR19EQkFUMFVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUMExAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDBMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDBVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQwVUBsCiAJbXRzcHIJREJBVDBMLCByNAogCW10c3ByCURCQVQwVSwgcjMKIAlpc3luYwogCiAJLyogSUJBVCAxICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDFMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDFMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUMVVAaAotCW9yaQlyMywgcjMsIENGR19JQkFUMVVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUMUxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDFMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDFVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQxVUBsCiAJbXRzcHIJSUJBVDFMLCByNAogCW10c3ByCUlCQVQxVSwgcjMKIAlpc3luYwogCiAJLyogREJBVCAxICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDFMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDFMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUMVVAaAotCW9yaQlyMywgcjMsIENGR19EQkFUMVVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUMUxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDFMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDFVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQxVUBsCiAJbXRzcHIJREJBVDFMLCByNAogCW10c3ByCURCQVQxVSwgcjMKIAlpc3luYwogCiAJLyogSUJBVCAyICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDJMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDJMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUMlVAaAotCW9yaQlyMywgcjMsIENGR19JQkFUMlVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUMkxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDJMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDJVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQyVUBsCiAJbXRzcHIJSUJBVDJMLCByNAogCW10c3ByCUlCQVQyVSwgcjMKIAlpc3luYwogCiAJLyogREJBVCAyICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDJMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDJMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUMlVAaAotCW9yaQlyMywgcjMsIENGR19EQkFUMlVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUMkxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDJMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDJVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQyVUBsCiAJbXRzcHIJREJBVDJMLCByNAogCW10c3ByCURCQVQyVSwgcjMKIAlpc3luYwogCiAJLyogSUJBVCAzICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDNMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDNMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUM1VAaAotCW9yaQlyMywgcjMsIENGR19JQkFUM1VAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUM0xAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDNMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDNVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQzVUBsCiAJbXRzcHIJSUJBVDNMLCByNAogCW10c3ByCUlCQVQzVSwgcjMKIAlpc3luYwogCiAJLyogREJBVCAzICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDNMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDNMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUM1VAaAotCW9yaQlyMywgcjMsIENGR19EQkFUM1VAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUM0xAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDNMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDNVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQzVUBsCiAJbXRzcHIJREJBVDNMLCByNAogCW10c3ByCURCQVQzVSwgcjMKIAlpc3luYwogCiAjaWZkZWYgQ09ORklHX0hJR0hfQkFUUwogCS8qIElCQVQgNCAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfSUJBVDRMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0lCQVQ0TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19JQkFUNFVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDRVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19JQkFUNExAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQ0TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfSUJBVDRVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JQkFUNFVAbAogCW10c3ByICAgSUJBVDRMLCByNAogCW10c3ByICAgSUJBVDRVLCByMwogCWlzeW5jCiAKIAkvKiBEQkFUIDQgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0RCQVQ0TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUNExAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfREJBVDRVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ0VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfREJBVDRMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19EQkFUNExAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQ0VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDRVQGwKIAltdHNwciAgIERCQVQ0TCwgcjQKIAltdHNwciAgIERCQVQ0VSwgcjMKIAlpc3luYwogCiAJLyogSUJBVCA1ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19JQkFUNUxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDVMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0lCQVQ1VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUNVVAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0lCQVQ1TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDVMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19JQkFUNVVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQ1VUBsCiAJbXRzcHIgICBJQkFUNUwsIHI0CiAJbXRzcHIgICBJQkFUNVUsIHIzCiAJaXN5bmMKIAogCS8qIERCQVQgNSAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfREJBVDVMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0RCQVQ1TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19EQkFUNVVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfREJBVDVVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19EQkFUNUxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQ1TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfREJBVDVVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19EQkFUNVVAbAogCW10c3ByICAgREJBVDVMLCByNAogCW10c3ByICAgREJBVDVVLCByMwogCWlzeW5jCiAKIAkvKiBJQkFUIDYgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0lCQVQ2TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUNkxAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfSUJBVDZVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0lCQVQ2VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfSUJBVDZMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19JQkFUNkxAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0lCQVQ2VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDZVQGwKIAltdHNwciAgIElCQVQ2TCwgcjQKIAltdHNwciAgIElCQVQ2VSwgcjMKIAlpc3luYwogCiAJLyogREJBVCA2ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19EQkFUNkxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfREJBVDZMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0RCQVQ2VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19EQkFUNlVAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0RCQVQ2TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfREJBVDZMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19EQkFUNlVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQ2VUBsCiAJbXRzcHIgICBEQkFUNkwsIHI0CiAJbXRzcHIgICBEQkFUNlUsIHIzCiAJaXN5bmMKIAogCS8qIElCQVQgNyAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfSUJBVDdMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0lCQVQ3TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19JQkFUN1VAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDdVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19JQkFUN0xAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQ3TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfSUJBVDdVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JQkFUN1VAbAogCW10c3ByICAgSUJBVDdMLCByNAogCW10c3ByICAgSUJBVDdVLCByMwogCWlzeW5jCiAKIAkvKiBEQkFUIDcgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0RCQVQ3TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUN0xAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfREJBVDdVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ3VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfREJBVDdMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19EQkFUN0xAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQ3VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDdVQGwKIAltdHNwciAgIERCQVQ3TCwgcjQKIAltdHNwciAgIERCQVQ3VSwgcjMKIAlpc3luYwpAQCAtNjEyLDE2ICs2MTIsMTYgQEAKIAltcglyMTAsIHI1CQkvKiBTYXZlIGNvcHkgb2YgRGVzdGluYXRpb24gQWRkcmVzcwkqLwogCiAJbXIJcjMsICByNQkJCQkvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCi0JbGlzCXI0LCBDRkdfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KLQlvcmkJcjQsIHI0LCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJbHd6CXI1LCBHT1QoX19pbml0X2VuZCkKIAlzdWIJcjUsIHI1LCByNAotCWxpCXI2LCBDRkdfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZQkqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKIAkgKi8KQEAgLTYzOSwxMSArNjM5LDExIEBACiAJYmwJYm9hcmRfcmVsb2NhdGVfcm9tCiAJc3luYwogCW1yCXIzLCByMTAJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAjZWxzZQogCWNtcGx3CWNyMSxyMyxyNAogCWFkZGkJcjAscjUsMwpAQCAtODUxLDE0ICs4NTEsMTQgQEAKIAogCWJscgogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKIGxvY2tfcmFtX2luX2NhY2hlOgogCS8qIEFsbG9jYXRlIEluaXRpYWwgUkFNIGluIGRhdGEgY2FjaGUuCiAJICovCi0JbGlzCXIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGgKLQlvcmkJcjMsIHIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKLQlsaQlyMiwgKChDRkdfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKLQkJICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgJiAzMSkgKyAzMSkgLyAzMgorCWxpcwlyMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAorCW9yaQlyMywgcjMsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKKwlsaQlyMiwgKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAmIH4zMSkgKyBcCisJCSAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCiAJbXRjdHIJcjIKIDE6CiAJZGNieglyMCwgcjMKQEAgLTg3NiwxMCArODc2LDEwIEBACiAuZ2xvYmwgdW5sb2NrX3JhbV9pbl9jYWNoZQogdW5sb2NrX3JhbV9pbl9jYWNoZToKIAkvKiBpbnZhbGlkYXRlIHRoZSBJTklUX1JBTSBzZWN0aW9uICovCi0JbGlzCXIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGgKLQlvcmkJcjMsIHIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKLQlsaQlyMiwgKChDRkdfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKLQkJICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgJiAzMSkgKyAzMSkgLyAzMgorCWxpcwlyMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAorCW9yaQlyMywgcjMsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKKwlsaQlyMiwgKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAmIH4zMSkgKyBcCisJCSAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCiAJbXRjdHIJcjIKIDE6CWljYmkJcjAsIHIzCiAJYWRkaQlyMywgcjMsIDMyCmRpZmYgLS1naXQgYS9jcHUvYXJtMTEzNi9jcHUuYyBiL2NwdS9hcm0xMTM2L2NwdS5jCmluZGV4IGMyN2Y4Y2QuLjA0ODYxNjMgMTAwNjQ0Ci0tLSBhL2NwdS9hcm0xMTM2L2NwdS5jCisrKyBiL2NwdS9hcm0xMTM2L2NwdS5jCkBAIC04OSw3ICs4OSw3IEBACiAJICogc2V0dXAgdXAgc3RhY2tzIGlmIG5lY2Vzc2FyeQogCSAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCi0JSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDRkdfTUFMTE9DX0xFTiAtIENGR19HQkxfREFUQV9TSVpFIC0gNDsKKwlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDQ7CiAJRklRX1NUQUNLX1NUQVJUID0gSVJRX1NUQUNLX1NUQVJUIC0gQ09ORklHX1NUQUNLU0laRV9JUlE7CiAjZW5kaWYKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9hcm0xMTM2L214MzEvaW50ZXJydXB0cy5jIGIvY3B1L2FybTExMzYvbXgzMS9pbnRlcnJ1cHRzLmMKaW5kZXggY2Q1NzA3MS4uYjM2YzU4YyAxMDA2NDQKLS0tIGEvY3B1L2FybTExMzYvbXgzMS9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTExMzYvbXgzMS9pbnRlcnJ1cHRzLmMKQEAgLTM4LDE2ICszOCwxNiBAQAogI2RlZmluZSBHUFRDUl9DTEtTT1VSQ0VfMzIJKDQgPDwgNikJLyogQ2xvY2sgc291cmNlCQkqLwogI2RlZmluZSBHUFRDUl9URU4JCTEJCS8qIFRpbWVyIGVuYWJsZQkJKi8KIAotLyogInRpbWUiIGlzIG1lYXN1cmVkIGluIDEgLyBDRkdfSFogc2Vjb25kcywgInRpY2siIGlzIGludGVybmFsIHRpbWVyIHBlcmlvZCAqLworLyogInRpbWUiIGlzIG1lYXN1cmVkIGluIDEgLyBDT05GSUdfU1lTX0haIHNlY29uZHMsICJ0aWNrIiBpcyBpbnRlcm5hbCB0aW1lciBwZXJpb2QgKi8KICNpZmRlZiBDT05GSUdfTVgzMV9USU1FUl9ISUdIX1BSRUNJU0lPTgogLyogfjAuNCUgZXJyb3IgLSBtZWFzdXJlZCB3aXRoIHN0b3Atd2F0Y2ggb24gMTAwcyBib290LWRlbGF5ICovCi0jZGVmaW5lIFRJQ0tfVE9fVElNRSh0KQkoKHQpICogQ0ZHX0haIC8gQ09ORklHX01YMzFfQ0xLMzIpCi0jZGVmaW5lIFRJTUVfVE9fVElDSyh0KQkoKHVuc2lnbmVkIGxvbmcgbG9uZykodCkgKiBDT05GSUdfTVgzMV9DTEszMiAvIENGR19IWikKKyNkZWZpbmUgVElDS19UT19USU1FKHQpCSgodCkgKiBDT05GSUdfU1lTX0haIC8gQ09ORklHX01YMzFfQ0xLMzIpCisjZGVmaW5lIFRJTUVfVE9fVElDSyh0KQkoKHVuc2lnbmVkIGxvbmcgbG9uZykodCkgKiBDT05GSUdfTVgzMV9DTEszMiAvIENPTkZJR19TWVNfSFopCiAjZGVmaW5lIFVTX1RPX1RJQ0sodCkJKCgodW5zaWduZWQgbG9uZyBsb25nKSh0KSAqIENPTkZJR19NWDMxX0NMSzMyICsgXAogCQkJOTk5OTk5KSAvIDEwMDAwMDApCiAjZWxzZQogLyogfjIlIGVycm9yICovCi0jZGVmaW5lIFRJQ0tfUEVSX1RJTUUJKChDT05GSUdfTVgzMV9DTEszMiArIENGR19IWiAvIDIpIC8gQ0ZHX0haKQorI2RlZmluZSBUSUNLX1BFUl9USU1FCSgoQ09ORklHX01YMzFfQ0xLMzIgKyBDT05GSUdfU1lTX0haIC8gMikgLyBDT05GSUdfU1lTX0haKQogI2RlZmluZSBVU19QRVJfVElDSwkoMTAwMDAwMCAvIENPTkZJR19NWDMxX0NMSzMyKQogI2RlZmluZSBUSUNLX1RPX1RJTUUodCkJKCh0KSAvIFRJQ0tfUEVSX1RJTUUpCiAjZGVmaW5lIFRJTUVfVE9fVElDSyh0KQkoKHVuc2lnbmVkIGxvbmcgbG9uZykodCkgKiBUSUNLX1BFUl9USU1FKQpAQCAtMTA0LDcgKzEwNCw3IEBACiAJLyoKIAkgKiBnZXRfdGlja3MoKSByZXR1cm5zIGEgbG9uZyBsb25nICg2NCBiaXQpLCBpdCB3cmFwcyBpbgogCSAqIDJeNjQgLyBDT05GSUdfTVgzMV9DTEszMiA9IDJeNjQgLyAyXjE1ID0gMl40OSB+IDUgKiAxMF4xNCAocykgfgotCSAqIDUgKiAxMF45IGRheXMuLi4gYW5kIGdldF90aWNrcygpICogQ0ZHX0haIHdyYXBzIGluCisJICogNSAqIDEwXjkgZGF5cy4uLiBhbmQgZ2V0X3RpY2tzKCkgKiBDT05GSUdfU1lTX0haIHdyYXBzIGluCiAJICogNSAqIDEwXjYgZGF5cyAtIGxvbmcgZW5vdWdoLgogCSAqLwogCXJldHVybiBUSUNLX1RPX1RJTUUoZ2V0X3RpY2tzKCkpOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTExMzYvbXgzMS9zZXJpYWwuYyBiL2NwdS9hcm0xMTM2L214MzEvc2VyaWFsLmMKaW5kZXggZjQ5ODU5OS4uZTAyNWU5NCAxMDA2NDQKLS0tIGEvY3B1L2FybTExMzYvbXgzMS9zZXJpYWwuYworKysgYi9jcHUvYXJtMTEzNi9teDMxL3NlcmlhbC5jCkBAIC0yNSwxOCArMjUsMTggQEAKIAogI2RlZmluZSBfX1JFRyh4KSAgICAgKCooKHZvbGF0aWxlIHUzMiAqKSh4KSkpCiAKLSNpZmRlZiBDRkdfTVgzMV9VQVJUMQorI2lmZGVmIENPTkZJR19TWVNfTVgzMV9VQVJUMQogI2RlZmluZSBVQVJUX1BIWVMgMHg0M2Y5MDAwMAotI2VsaWYgZGVmaW5lZChDRkdfTVgzMV9VQVJUMikKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19NWDMxX1VBUlQyKQogI2RlZmluZSBVQVJUX1BIWVMgMHg0M2Y5NDAwMAotI2VsaWYgZGVmaW5lZChDRkdfTVgzMV9VQVJUMykKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19NWDMxX1VBUlQzKQogI2RlZmluZSBVQVJUX1BIWVMgMHg1MDAwYzAwMAotI2VsaWYgZGVmaW5lZChDRkdfTVgzMV9VQVJUNCkKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19NWDMxX1VBUlQ0KQogI2RlZmluZSBVQVJUX1BIWVMgMHg0M2ZiMDAwMAotI2VsaWYgZGVmaW5lZChDRkdfTVgzMV9VQVJUNSkKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19NWDMxX1VBUlQ1KQogI2RlZmluZSBVQVJUX1BIWVMgMHg0M2ZiNDAwMAogI2Vsc2UKLSNlcnJvciAiZGVmaW5lIENGR19NWDMxX1VBUlR4IHRvIHVzZSB0aGUgbXgzMSBVQVJUIGRyaXZlciIKKyNlcnJvciAiZGVmaW5lIENPTkZJR19TWVNfTVgzMV9VQVJUeCB0byB1c2UgdGhlIG14MzEgVUFSVCBkcml2ZXIiCiAjZW5kaWYKIAogLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm0xMTM2L29tYXAyNHh4L2ludGVycnVwdHMuYyBiL2NwdS9hcm0xMTM2L29tYXAyNHh4L2ludGVycnVwdHMuYwppbmRleCBiOWE4YjkzLi5mYjAyYTQ5IDEwMDY0NAotLS0gYS9jcHUvYXJtMTEzNi9vbWFwMjR4eC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTExMzYvb21hcDI0eHgvaW50ZXJydXB0cy5jCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIFRJTUVSX0xPQURfVkFMIDAKIAogLyogbWFjcm8gdG8gcmVhZCB0aGUgMzIgYml0IHRpbWVyICovCi0jZGVmaW5lIFJFQURfVElNRVIgKCooKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UrVENSUikpKQorI2RlZmluZSBSRUFEX1RJTUVSICgqKCh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1RJTUVSQkFTRStUQ1JSKSkpCiAKIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CiBzdGF0aWMgdWxvbmcgbGFzdGluYzsKQEAgLTQ4LDkgKzQ4LDkgQEAKIAlpbnQzMl90IHZhbDsKIAogCS8qIFN0YXJ0IHRoZSBjb3VudGVyIHRpY2tpbmcgdXAgKi8KLQkqKChpbnQzMl90ICopIChDRkdfVElNRVJCQVNFICsgVExEUikpID0gVElNRVJfTE9BRF9WQUw7CS8qIHJlbG9hZCB2YWx1ZSBvbiBvdmVyZmxvdyovCi0JdmFsID0gKENGR19QVlQgPDwgMikgfCBCSVQ1IHwgQklUMSB8IEJJVDA7CQkvKiBtYXNrIHRvIGVuYWJsZSB0aW1lciovCi0JKigoaW50MzJfdCAqKSAoQ0ZHX1RJTUVSQkFTRSArIFRDTFIpKSA9IHZhbDsJLyogc3RhcnQgdGltZXIgKi8KKwkqKChpbnQzMl90ICopIChDT05GSUdfU1lTX1RJTUVSQkFTRSArIFRMRFIpKSA9IFRJTUVSX0xPQURfVkFMOwkvKiByZWxvYWQgdmFsdWUgb24gb3ZlcmZsb3cqLworCXZhbCA9IChDT05GSUdfU1lTX1BWVCA8PCAyKSB8IEJJVDUgfCBCSVQxIHwgQklUMDsJCS8qIG1hc2sgdG8gZW5hYmxlIHRpbWVyKi8KKwkqKChpbnQzMl90ICopIChDT05GSUdfU1lTX1RJTUVSQkFTRSArIFRDTFIpKSA9IHZhbDsJLyogc3RhcnQgdGltZXIgKi8KIAogCXJlc2V0X3RpbWVyX21hc2tlZCgpOyAvKiBpbml0IHRoZSB0aW1lc3RhbXAgYW5kIGxhc3RpbmMgdmFsdWUgKi8KIApAQCAtODEsMTAgKzgxLDEwIEBACiAKIAlpZiAodXNlYyA+PSAxMDAwKSB7CQkJLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOwkJLyogc3RhcnQgdG8gbm9ybWFsaXplIGZvciB1c2VjIHRvIHRpY2tzIHBlciBzZWMgKi8KLQkJdG1vICo9IENGR19IWjsJCQkvKiBmaW5kIG51bWJlciBvZiAidGlja3MiIHRvIHdhaXQgdG8gYWNoaWV2ZSB0YXJnZXQgKi8KKwkJdG1vICo9IENPTkZJR19TWVNfSFo7CQkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOwkJCS8qIGZpbmlzaCBub3JtYWxpemUuICovCiAJfSBlbHNlIHsJCQkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xMjUsMTAgKzEyNSwxMCBAQAogCiAJaWYgKHVzZWMgPj0gMTAwMCkgewkJCS8qIGlmICJiaWciIG51bWJlciwgc3ByZWFkIG5vcm1hbGl6YXRpb24gdG8gc2Vjb25kcyAqLwogCQl0bW8gPSB1c2VjIC8gMTAwMDsJCS8qIHN0YXJ0IHRvIG5vcm1hbGl6ZSBmb3IgdXNlYyB0byB0aWNrcyBwZXIgc2VjICovCi0JCXRtbyAqPSBDRkdfSFo7CQkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwkJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLwogCQl0bW8gLz0gMTAwMDsJCQkvKiBmaW5pc2ggbm9ybWFsaXplLiAqLwogCX0gZWxzZSB7CQkJCQkvKiBlbHNlIHNtYWxsIG51bWJlciwgZG9uJ3Qga2lsbCBpdCBwcmlvciB0byBIWiBtdWx0aXBseSAqLwotCQl0bW8gPSB1c2VjICogQ0ZHX0haOworCQl0bW8gPSB1c2VjICogQ09ORklHX1NZU19IWjsKIAkJdG1vIC89ICgxMDAwKjEwMDApOwogCX0KIAllbmR0aW1lID0gZ2V0X3RpbWVyX21hc2tlZCAoKSArIHRtbzsKQEAgLTE1NCw2ICsxNTQsNiBAQAogdWxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewogCXVsb25nIHRiY2xrOwotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CmRpZmYgLS1naXQgYS9jcHUvYXJtMTEzNi9zdGFydC5TIGIvY3B1L2FybTExMzYvc3RhcnQuUwppbmRleCA1MWI2NjRkLi5lNjIyMzM4IDEwMDY0NAotLS0gYS9jcHUvYXJtMTEzNi9zdGFydC5TCisrKyBiL2NwdS9hcm0xMTM2L3N0YXJ0LlMKQEAgLTE3OCw4ICsxNzgsOCBAQAogI2lmZGVmIENPTkZJR19PTkVOQU5EX0lQTAogCXN1YglzcCwgcjAsICMxMjgJCS8qIGxlYXZlIDMyIHdvcmRzIGZvciBhYm9ydC1zdGFjayAgICovCiAjZWxzZQotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTiAvKiBtYWxsb2MgYXJlYQkJCSAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOIC8qIG1hbGxvYyBhcmVhCQkJICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYKQEAgLTI5MCw4ICsyOTAsOCBAQAogCXN0bWlhCXNwLCB7cjAgLSByMTJ9CQkJQCBTYXZlIHVzZXIgcmVnaXN0ZXJzIChub3cgaW4gc3ZjIG1vZGUpIHIwLXIxMgogCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIyLCByMiwgIyhDRkdfR0JMX0RBVEFfU0laRSs4KQlAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjaworCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpCUAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJbGRtaWEJcjIsIHtyMiAtIHIzfQkJCUAgZ2V0IHZhbHVlcyBmb3IgImFib3J0ZWQiIHBjIGFuZCBjcHNyIChpbnRvIHBhcm0gcmVncykKIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIGdyYWIgcG9pbnRlciB0byBvbGQgc3RhY2sKIApAQCAtMzIzLDggKzMyMyw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrIChlbnRlciBpbiBiYW5rZWQgbW9kZSkKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX01BTExPQ19MRU4pCUAgbW92ZSBwYXN0IG1hbGxvYyBwb29sCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgbW92ZSB0byByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBmb3IgYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQlAIG1vdmUgcGFzdCBtYWxsb2MgcG9vbAorCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgQCBtb3ZlIHRvIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGZvciBhYm9ydCBzdGFjawogCiAJc3RyCWxyLCBbcjEzXQkJCUAgc2F2ZSBjYWxsZXIgbHIgaW4gcG9zaXRpb24gMCBvZiBzYXZlZCBzdGFjawogCW1ycwlsciwgc3BzcgkJCUAgZ2V0IHRoZSBzcHNyCkBAIC0zNDEsOCArMzQxLDggQEAKIAlzdWIJcjEzLCByMTMsICM0CQkJQCBzcGFjZSBvbiBjdXJyZW50IHN0YWNrIGZvciBzY3JhdGNoIHJlZy4KIAlzdHIJcjAsIFtyMTNdCQkJQCBzYXZlIFIwJ3MgdmFsdWUuCiAJbGRyCXIwLCBfYXJtYm9vdF9zdGFydAkJQCBnZXQgZGF0YSByZWdpb25zIHN0YXJ0Ci0Jc3ViCXIwLCByMCwgIyhDRkdfTUFMTE9DX0xFTikJQCBtb3ZlIHBhc3QgbWFsbG9jIHBvb2wKLQlzdWIJcjAsIHIwLCAjKENGR19HQkxfREFUQV9TSVpFKzgpCUAgbW92ZSBwYXN0IGdibCBhbmQgYSBjb3VwbGUgc3BvdHMgZm9yIGFib3J0IHN0YWNrCisJc3ViCXIwLCByMCwgIyhDT05GSUdfU1lTX01BTExPQ19MRU4pCUAgbW92ZSBwYXN0IG1hbGxvYyBwb29sCisJc3ViCXIwLCByMCwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkJQCBtb3ZlIHBhc3QgZ2JsIGFuZCBhIGNvdXBsZSBzcG90cyBmb3IgYWJvcnQgc3RhY2sKIAlzdHIJbHIsIFtyMF0JCQlAIHNhdmUgY2FsbGVyIGxyIGluIHBvc2l0aW9uIDAgb2Ygc2F2ZWQgc3RhY2sKIAltcnMJcjAsIHNwc3IJCQlAIGdldCB0aGUgc3BzcgogCXN0cglsciwgW3IwLCAjNF0JCQlAIHNhdmUgc3BzciBpbiBwb3NpdGlvbiAxIG9mIHNhdmVkIHN0YWNrCmRpZmYgLS1naXQgYS9jcHUvYXJtMTE3Ni9zM2M2NHh4L2ludGVycnVwdHMuYyBiL2NwdS9hcm0xMTc2L3MzYzY0eHgvaW50ZXJydXB0cy5jCmluZGV4IGUzNDM2OWYuLjgzZjM4MDYgMTAwNjQ0Ci0tLSBhL2NwdS9hcm0xMTc2L3MzYzY0eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9hcm0xMTc2L3MzYzY0eHgvaW50ZXJydXB0cy5jCkBAIC0xNTAsNyArMTUwLDcgQEAKIHVsb25nIGdldF90aW1lcl9tYXNrZWQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcgcmVzID0gZ2V0X3RpY2tzKCk7Ci0JZG9fZGl2IChyZXMsICh0aW1lcl9sb2FkX3ZhbCAvICgxMDAgKiBDRkdfSFopKSk7CisJZG9fZGl2IChyZXMsICh0aW1lcl9sb2FkX3ZhbCAvICgxMDAgKiBDT05GSUdfU1lTX0haKSkpOwogCXJldHVybiByZXM7CiB9CiAKQEAgLTE2MSw3ICsxNjEsNyBAQAogCiB2b2lkIHNldF90aW1lcih1bG9uZyB0KQogewotCXRpbWVzdGFtcCA9IHQgKiAodGltZXJfbG9hZF92YWwgLyAoMTAwICogQ0ZHX0haKSk7CisJdGltZXN0YW1wID0gdCAqICh0aW1lcl9sb2FkX3ZhbCAvICgxMDAgKiBDT05GSUdfU1lTX0haKSk7CiB9CiAKIHZvaWQgdWRlbGF5KHVuc2lnbmVkIGxvbmcgdXNlYykKZGlmZiAtLWdpdCBhL2NwdS9hcm0xMTc2L3N0YXJ0LlMgYi9jcHUvYXJtMTE3Ni9zdGFydC5TCmluZGV4IDk5MTI3N2YuLmNiODkxZGYgMTAwNjQ0Ci0tLSBhL2NwdS9hcm0xMTc2L3N0YXJ0LlMKKysrIGIvY3B1L2FybTExNzYvc3RhcnQuUwpAQCAtMzcsOCArMzcsOCBAQAogI2VuZGlmCiAjaW5jbHVkZSA8czNjNjQwMC5oPgogCi0jaWYgIWRlZmluZWQoQ09ORklHX0VOQUJMRV9NTVUpICYmICFkZWZpbmVkKENGR19QSFlfVUJPT1RfQkFTRSkKLSNkZWZpbmUgQ0ZHX1BIWV9VQk9PVF9CQVNFCUNGR19VQk9PVF9CQVNFCisjaWYgIWRlZmluZWQoQ09ORklHX0VOQUJMRV9NTVUpICYmICFkZWZpbmVkKENPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UJQ09ORklHX1NZU19VQk9PVF9CQVNFCiAjZW5kaWYKIAogLyoKQEAgLTEwNSw3ICsxMDUsNyBAQAogICogYnkgc2NzdWguCiAgKi8KIF9URVhUX1BIWV9CQVNFOgotCS53b3JkCUNGR19QSFlfVUJPT1RfQkFTRQorCS53b3JkCUNPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UKIAogLmdsb2JsIF9hcm1ib290X3N0YXJ0CiBfYXJtYm9vdF9zdGFydDoKQEAgLTIwOSw3ICsyMDksNyBAQAogCiAJLyogU2V0IHRoZSBUVEIgcmVnaXN0ZXIgKi8KIAlsZHIJcjAsIF9tbXVfdGFibGVfYmFzZQotCWxkcglyMSwgPUNGR19QSFlfVUJPT1RfQkFTRQorCWxkcglyMSwgPUNPTkZJR19TWVNfUEhZX1VCT09UX0JBU0UKIAlsZHIJcjIsID0weGZmZjAwMDAwCiAJYmljCXIwLCByMCwgcjIKIAlvcnIJcjEsIHIwLCByMQpAQCAtMjQyLDExICsyNDIsMTEgQEAKIAkvKiBTZXQgdXAgdGhlIHN0YWNrCQkJCQkJICAgICovCiBzdGFja19zZXR1cDoKICNpZmRlZiBDT05GSUdfTUVNT1JZX1VQUEVSX0NPREUKLQlsZHIJc3AsID0oQ0ZHX1VCT09UX0JBU0UgKyBDRkdfVUJPT1RfU0laRSAtIDB4YykKKwlsZHIJc3AsID0oQ09ORklHX1NZU19VQk9PVF9CQVNFICsgQ09ORklHX1NZU19VQk9PVF9TSVpFIC0gMHhjKQogI2Vsc2UKIAlsZHIJcjAsIF9URVhUX0JBU0UJCS8qIHVwcGVyIDEyOCBLaUI6IHJlbG9jYXRlZCB1Ym9vdCAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAlzdWIJc3AsIHIwLCAjMTIJCS8qIGxlYXZlIDMgd29yZHMgZm9yIGFib3J0LXN0YWNrICAgICovCiAKICNlbmRpZgpAQCAtMzU3LDkgKzM1Nyw5IEBACiAJc3RtaWEJc3AsIHtyMCAtIHIxMn0KIAogCWxkcglyMiwgX2FybWJvb3Rfc3RhcnQKLQlzdWIJcjIsIHIyLCAjKENGR19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCS8qIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjayAqLwotCXN1YglyMiwgcjIsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KQogCS8qIGdldCB2YWx1ZXMgZm9yICJhYm9ydGVkIiBwYyBhbmQgY3BzciAoaW50byBwYXJtIHJlZ3MpICovCiAJbGRtaWEJcjIsIHtyMiAtIHIzfQogCS8qIGdyYWIgcG9pbnRlciB0byBvbGQgc3RhY2sgKi8KQEAgLTM3Nyw5ICszNzcsOSBAQAogCS8qIHNldHVwIG91ciBtb2RlIHN0YWNrIChlbnRlciBpbiBiYW5rZWQgbW9kZSkgKi8KIAlsZHIJcjEzLCBfYXJtYm9vdF9zdGFydAogCS8qIG1vdmUgcGFzdCBtYWxsb2MgcG9vbCAqLwotCXN1YglyMTMsIHIxMywgIyhDRkdfTUFMTE9DX0xFTikKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCS8qIG1vdmUgdG8gcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgZm9yIGFib3J0IHN0YWNrICovCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFICsgOCkKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICsgOCkKIAogCS8qIHNhdmUgY2FsbGVyIGxyIGluIHBvc2l0aW9uIDAgb2Ygc2F2ZWQgc3RhY2sgKi8KIAlzdHIJbHIsIFtyMTNdCkBAIC00MDcsOSArNDA3LDkgQEAKIAkvKiBnZXQgZGF0YSByZWdpb25zIHN0YXJ0ICovCiAJbGRyCXIwLCBfYXJtYm9vdF9zdGFydAogCS8qIG1vdmUgcGFzdCBtYWxsb2MgcG9vbCAqLwotCXN1YglyMCwgcjAsICMoQ0ZHX01BTExPQ19MRU4pCisJc3ViCXIwLCByMCwgIyhDT05GSUdfU1lTX01BTExPQ19MRU4pCiAJLyogbW92ZSBwYXN0IGdibCBhbmQgYSBjb3VwbGUgc3BvdHMgZm9yIGFib3J0IHN0YWNrICovCi0Jc3ViCXIwLCByMCwgIyhDRkdfR0JMX0RBVEFfU0laRSArIDgpCisJc3ViCXIwLCByMCwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgKyA4KQogCS8qIHNhdmUgY2FsbGVyIGxyIGluIHBvc2l0aW9uIDAgb2Ygc2F2ZWQgc3RhY2sgKi8KIAlzdHIJbHIsIFtyMF0KIAkvKiBnZXQgdGhlIHNwc3IgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm03MjB0L2NwdS5jIGIvY3B1L2FybTcyMHQvY3B1LmMKaW5kZXggNjBjMWFhOS4uNWFjOGY1OSAxMDA2NDQKLS0tIGEvY3B1L2FybTcyMHQvY3B1LmMKKysrIGIvY3B1L2FybTcyMHQvY3B1LmMKQEAgLTQxLDcgKzQxLDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTcyMHQvaW50ZXJydXB0cy5jIGIvY3B1L2FybTcyMHQvaW50ZXJydXB0cy5jCmluZGV4IDk4NTQwMTYuLjM5ZWQzNDUgMTAwNjQ0Ci0tLSBhL2NwdS9hcm03MjB0L2ludGVycnVwdHMuYworKysgYi9jcHUvYXJtNzIwdC9pbnRlcnJ1cHRzLmMKQEAgLTk1LDcgKzk1LDcgQEAKIAl1bnNpZ25lZCBpbnQgKnBUaW1lID0gKHVuc2lnbmVkIGludCAqKWRhdGE7CiAKIAkoKnBUaW1lKSsrOwotCWlmICggISgqcFRpbWUgJSAoQ0ZHX0haLzQpKSkgeworCWlmICggISgqcFRpbWUgJSAoQ09ORklHX1NZU19IWi80KSkpIHsKIAkJLyogdG9nZ2xlIExFRCAwICovCiAJCVBVVF9SRUcoIFJFR19JT1BEQVRBLCBHRVRfUkVHKFJFR19JT1BEQVRBKSBeIDB4MSk7CiAJfQpAQCAtMTE4LDcgKzExOCw3IEBACiAJSVJRRU4gPSAwOwogCiAJLyogb3BlcmF0ZSB0aW1lciAyIGluIG5vbi1wcmVzY2FsZSBtb2RlICovCi0JVE0yQ1RSTCA9ICggTkVUQVJNX0dFTl9USU1FUl9TRVRfSFooQ0ZHX0haKSB8CisJVE0yQ1RSTCA9ICggTkVUQVJNX0dFTl9USU1FUl9TRVRfSFooQ09ORklHX1NZU19IWikgfAogCQkgICAgTkVUQVJNX0dFTl9UQ1RMX0VOQUJMRSB8CiAJCSAgICBORVRBUk1fR0VOX1RDVExfSU5JVF9DT1VOVChUSU1FUl9MT0FEX1ZBTCkpOwogCkBAIC0xNjYsOSArMTY2LDkgQEAKIAogCS8qCiAJICogTG9hZCBUaW1lciBkYXRhIHJlZ2lzdGVyIHdpdGggY291bnQgZG93biB2YWx1ZS4KLQkgKiBjb3VudF9kb3duX3ZhbCA9IENGR19TWVNfQ0xLX0ZSRVEvQ0ZHX0haCisJICogY291bnRfZG93bl92YWwgPSBDT05GSUdfU1lTX1NZU19DTEtfRlJFUS9DT05GSUdfU1lTX0haCiAJICovCi0JUFVUX1JFRyggUkVHX1REQVRBMCwgKENGR19TWVNfQ0xLX0ZSRVEgLyBDRkdfSFopKTsKKwlQVVRfUkVHKCBSRUdfVERBVEEwLCAoQ09ORklHX1NZU19TWVNfQ0xLX0ZSRVEgLyBDT05GSUdfU1lTX0haKSk7CiAKIAkvKgogCSAqIEVuYWJsZSBnbG9iYWwgaW50ZXJydXB0CkBAIC0xODEsNyArMTgxLDcgQEAKICNlbGlmIGRlZmluZWQoQ09ORklHX0xQQzIyOTIpCiAJUFVUMzIoVDBJUiwgMCk7CQkvKiBkaXNhYmxlIGFsbCB0aW1lcjAgaW50ZXJydXB0cyAqLwogCVBVVDMyKFQwVENSLCAwKTsJLyogZGlzYWJsZSB0aW1lcjAgKi8KLQlQVVQzMihUMFBSLCBDRkdfU1lTX0NMS19GUkVRIC8gQ0ZHX0haKTsKKwlQVVQzMihUMFBSLCBDT05GSUdfU1lTX1NZU19DTEtfRlJFUSAvIENPTkZJR19TWVNfSFopOwogCVBVVDMyKFQwTUNSLCAwKTsKIAlQVVQzMihUMFRDLCAwKTsKIAlQVVQzMihUMFRDUiwgMSk7CS8qIGVuYWJsZSB0aW1lcjAgKi8KQEAgLTIyMyw3ICsyMjMsNyBAQAogCXVsb25nIHRtbzsKIAogCXRtbyA9IHVzZWMgLyAxMDAwOwotCXRtbyAqPSBDRkdfSFo7CisJdG1vICo9IENPTkZJR19TWVNfSFo7CiAJdG1vIC89IDEwMDA7CiAKIAl0bW8gKz0gZ2V0X3RpbWVyICgwKTsKQEAgLTI2OCwxMCArMjY4LDEwIEBACiAKIAlpZiAodXNlYyA+PSAxMDAwKSB7CiAJCXRtbyA9IHVzZWMgLyAxMDAwOwotCQl0bW8gKj0gQ0ZHX0haOworCQl0bW8gKj0gQ09ORklHX1NZU19IWjsKIAkJdG1vIC89IDEwMDA7CiAJfSBlbHNlIHsKLQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJdG1vID0gdXNlYyAqIENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAoMTAwMCoxMDAwKTsKIAl9CiAKQEAgLTI5NCw3ICsyOTQsNyBAQAogewogCXUzMiB0aWNrczsKIAotCXRpY2tzID0gKHVzZWMgKiBDRkdfSFopIC8gMTAwMDAwMDsKKwl0aWNrcyA9ICh1c2VjICogQ09ORklHX1NZU19IWikgLyAxMDAwMDAwOwogCiAJdGlja3MgKz0gZ2V0X3RpbWVyICgwKTsKIApkaWZmIC0tZ2l0IGEvY3B1L2FybTcyMHQvbHBjMjI5Mi9mbGFzaC5jIGIvY3B1L2FybTcyMHQvbHBjMjI5Mi9mbGFzaC5jCmluZGV4IGU1Yzg2OTcuLjNkMmRjMzIgMTAwNjQ0Ci0tLSBhL2NwdS9hcm03MjB0L2xwYzIyOTIvZmxhc2guYworKysgYi9jcHUvYXJtNzIwdC9scGMyMjkyL2ZsYXNoLmMKQEAgLTg1LDcgKzg1LDcgQEAKIAljb21tYW5kWzFdID0gZmxhc2hfYWRkcjsKIAljb21tYW5kWzJdID0gQ09QWV9CVUZGRVJfTE9DQVRJT047CiAJY29tbWFuZFszXSA9IDUxMjsKLQljb21tYW5kWzRdID0gQ0ZHX1NZU19DTEtfRlJFUSA+PiAxMDsKKwljb21tYW5kWzRdID0gQ09ORklHX1NZU19TWVNfQ0xLX0ZSRVEgPj4gMTA7CiAJaWFwX2VudHJ5KGNvbW1hbmQsIHJlc3VsdCk7CiAJaWYgKHJlc3VsdFswXSAhPSBJQVBfUkVUX0NNRF9TVUNDRVNTKSB7CiAJCXByaW50ZigiSUFQIGNvcHkgZmFpbGVkXG4iKTsKQEAgLTEzMiw3ICsxMzIsNyBAQAogCWNvbW1hbmRbMF0gPSBJQVBfQ01EX0VSQVNFOwogCWNvbW1hbmRbMV0gPSBzX2ZpcnN0OwogCWNvbW1hbmRbMl0gPSBzX2xhc3Q7Ci0JY29tbWFuZFszXSA9IENGR19TWVNfQ0xLX0ZSRVEgPj4gMTA7CisJY29tbWFuZFszXSA9IENPTkZJR19TWVNfU1lTX0NMS19GUkVRID4+IDEwOwogCWlhcF9lbnRyeShjb21tYW5kLCByZXN1bHQpOwogCWlmIChyZXN1bHRbMF0gIT0gSUFQX1JFVF9DTURfU1VDQ0VTUykgewogCQlwcmludGYoIklBUCBlcmFzZSBmYWlsZWRcbiIpOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTcyMHQvc2VyaWFsLmMgYi9jcHUvYXJtNzIwdC9zZXJpYWwuYwppbmRleCAxYjBlMTQ3Li41NGE5YjMxIDEwMDY0NAotLS0gYS9jcHUvYXJtNzIwdC9zZXJpYWwuYworKysgYi9jcHUvYXJtNzIwdC9zZXJpYWwuYwpAQCAtODUsNyArODUsNyBAQAogCWlmIChjID09ICdcbicpCiAJCXNlcmlhbF9wdXRjICgnXHInKTsKIAotCXRtbyA9IGdldF90aW1lciAoMCkgKyAxICogQ0ZHX0haOworCXRtbyA9IGdldF90aW1lciAoMCkgKyAxICogQ09ORklHX1NZU19IWjsKIAl3aGlsZSAoSU9fU1lTRkxHMSAmIFNZU0ZMRzFfVVRYRkYpCiAJCWlmIChnZXRfdGltZXIgKDApID4gdG1vKQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9jcHUvYXJtNzIwdC9zZXJpYWxfbmV0YXJtLmMgYi9jcHUvYXJtNzIwdC9zZXJpYWxfbmV0YXJtLmMKaW5kZXggYTU5M2NiYy4uMWExYjJkYiAxMDA2NDQKLS0tIGEvY3B1L2FybTcyMHQvc2VyaWFsX25ldGFybS5jCisrKyBiL2NwdS9hcm03MjB0L3NlcmlhbF9uZXRhcm0uYwpAQCAtNDYsNyArNDYsNyBAQAogLyogd2FpdCB1bnRpbCB0cmFuc21pdHRlciBpcyByZWFkeSBmb3IgYW5vdGhlciBjaGFyYWN0ZXIgKi8KICNkZWZpbmUgVFhXQUlUUkRZKHJlZ2lzdGVycykJCQkJCQkJXAogewkJCQkJCQkJCQlcCi0JdWxvbmcgdG1vID0gZ2V0X3RpbWVyKDApICsgMSAqIENGR19IWjsJCQkJCVwKKwl1bG9uZyB0bW8gPSBnZXRfdGltZXIoMCkgKyAxICogQ09ORklHX1NZU19IWjsJCQkJCVwKIAl3aGlsZSAoKChyZWdpc3RlcnMpLT5zdGF0dXNfYSAmIE5FVEFSTV9TRVJfU1RBVEFfVFhfUkRZKSA9PSAwICkJewlcCiAJCWlmIChnZXRfdGltZXIoMCkgPiB0bW8pCQkJCQkJXAogCQkJYnJlYWs7CQkJCQkJCVwKZGlmZiAtLWdpdCBhL2NwdS9hcm03MjB0L3N0YXJ0LlMgYi9jcHUvYXJtNzIwdC9zdGFydC5TCmluZGV4IDg0MjNlNGYuLjAyMmI4NzMgMTAwNjQ0Ci0tLSBhL2NwdS9hcm03MjB0L3N0YXJ0LlMKKysrIGIvY3B1L2FybTcyMHQvc3RhcnQuUwpAQCAtMTY2LDggKzE2Niw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTiAvKiBtYWxsb2MgYXJlYQkJCSAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOIC8qIG1hbGxvYyBhcmVhCQkJICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYKQEAgLTQ0NCw4ICs0NDQsOCBAQAogCWFkZAlyOCwgc3AsICNTX1BDCiAKIAlsZHIJcjIsIF9hcm1ib290X3N0YXJ0Ci0Jc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMiwgcjIsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkJQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpCUAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJbGRtaWEJcjIsIHtyMiAtIHI0fQkJCUAgZ2V0IHBjLCBjcHNyLCBvbGRfcjAKIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIHJlc3RvcmUgc3BfU1ZDCiAKQEAgLTQ3Nyw4ICs0NzcsOCBAQAogCiAJLm1hY3JvIGdldF9iYWRfc3RhY2sKIAlsZHIJcjEzLCBfYXJtYm9vdF9zdGFydAkJQCBzZXR1cCBvdXIgbW9kZSBzdGFjawotCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMTMsIHIxMywgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjawogCiAJc3RyCWxyLCBbcjEzXQkJCUAgc2F2ZSBjYWxsZXIgbHIgLyBzcHNyCiAJbXJzCWxyLCBzcHNyCmRpZmYgLS1naXQgYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2kyYy5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9pMmMuYwppbmRleCA5MGY5NWRmLi5iNjhjNWRkIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2kyYy5jCisrKyBiL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvaTJjLmMKQEAgLTEyMCw3ICsxMjAsNyBAQAogaTJjX3JlYWQgKHVuc2lnbmVkIGNoYXIgY2hpcCwgdW5zaWduZWQgaW50IGFkZHIsIGludCBhbGVuLAogCSAgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgbGVuKQogewotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwogCS8qIHdlIG9ubHkgYWxsb3cgb25lIGFkZHJlc3MgYnl0ZSAqLwogCWlmIChhbGVuID4gMSkKIAkJcmV0dXJuIDE7CkBAIC0xMzksNyArMTM5LDcgQEAKIGkyY193cml0ZSh1bnNpZ25lZCBjaGFyIGNoaXAsIHVuc2lnbmVkIGludCBhZGRyLCBpbnQgYWxlbiwKIAkgIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGxlbikKIHsKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKIAlpbnQgaTsKIAl1bnNpZ25lZCBjaGFyICpidWY7CiAKQEAgLTIxMCw3ICsyMTAsNyBAQAogCiB1bnNpZ25lZCBpbnQgaTJjX2dldF9idXNfc3BlZWQodm9pZCkKIHsKLQlyZXR1cm4gQ0ZHX0kyQ19TUEVFRDsKKwlyZXR1cm4gQ09ORklHX1NZU19JMkNfU1BFRUQ7CiB9CiAKICNlbmRpZiAvKiBDT05GSUdfSEFSRF9JMkMgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvaW50ZXJydXB0cy5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9pbnRlcnJ1cHRzLmMKaW5kZXggMTA1NDYwMi4uNWYwNzAzYyAxMDA2NDQKLS0tIGEvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9pbnRlcnJ1cHRzLmMKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgogLyojaW5jbHVkZSA8YXNtL3Byb2MvcHRyYWNlLmg+Ki8KIAotLyogdGhlIG51bWJlciBvZiBjbG9ja3MgcGVyIENGR19IWiAqLwotI2RlZmluZSBUSU1FUl9MT0FEX1ZBTCAoQ0ZHX0haX0NMT0NLL0NGR19IWikKKy8qIHRoZSBudW1iZXIgb2YgY2xvY2tzIHBlciBDT05GSUdfU1lTX0haICovCisjZGVmaW5lIFRJTUVSX0xPQURfVkFMIChDT05GSUdfU1lTX0haX0NMT0NLL0NPTkZJR19TWVNfSFopCiAKIC8qIG1hY3JvIHRvIHJlYWQgdGhlIDE2IGJpdCB0aW1lciAqLwogI2RlZmluZSBSRUFEX1RJTUVSICh0bXItPlRDX0NWICYgMHgwMDAwZmZmZikKQEAgLTEyNiw3ICsxMjYsNyBAQAogCXVsb25nIGVuZHRpbWU7CiAJc2lnbmVkIGxvbmcgZGlmZjsKIAotCXRtbyA9IENGR19IWl9DTE9DSyAvIDEwMDA7CisJdG1vID0gQ09ORklHX1NZU19IWl9DTE9DSyAvIDEwMDA7CiAJdG1vICo9IHVzZWM7CiAJdG1vIC89IDEwMDA7CiAKQEAgLTE1NSw3ICsxNTUsNyBAQAogewogCXVsb25nIHRiY2xrOwogCi0JdGJjbGsgPSBDRkdfSFo7CisJdGJjbGsgPSBDT05GSUdfU1lTX0haOwogCXJldHVybiB0YmNsazsKIH0KIApkaWZmIC0tZ2l0IGEvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9sb3dsZXZlbF9pbml0LlMgYi9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2xvd2xldmVsX2luaXQuUwppbmRleCA5ODM2M2ViLi42NmIwN2RhIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2xvd2xldmVsX2luaXQuUworKysgYi9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL2xvd2xldmVsX2luaXQuUwpAQCAtNzksNyArNzksNyBAQAogCS8qIEdldCB0aGUgQ0tHUiBCYXNlIEFkZHJlc3MgKi8KIAlsZHIgICAgIHIxLCA9QVQ5MUNfQkFTRV9DS0dSCiAJLyogTWFpbiBvc2NpbGxhdG9yIEVuYWJsZSByZWdpc3RlciAqLwotI2lmZGVmIENGR19VU0VfTUFJTl9PU0NJTExBVE9SCisjaWZkZWYgQ09ORklHX1NZU19VU0VfTUFJTl9PU0NJTExBVE9SCiAJbGRyICAgICByMCwgPTB4MDAwMEZGMDEJCS8qIEVuYWJsZSBtYWluIG9zY2lsbGF0b3IsICBPU0NPVU5UID0gMHhGRiAqLwogI2Vsc2UKIAlsZHIgICAgIHIwLCA9MHgwMDAwRkYwMAkJLyogRGlzYWJsZSBtYWluIG9zY2lsbGF0b3IsIE9TQ09VTlQgPSAweEZGICovCmRpZmYgLS1naXQgYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL3NwaS5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC9zcGkuYwppbmRleCAyNjVkMTg1Li5mM2NiNWQ4IDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL3NwaS5jCisrKyBiL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvc3BpLmMKQEAgLTEzNywxMSArMTM3LDExIEBACiAKIAlBVDkxQ19CQVNFX1NQSS0+U1BJX1BUQ1IgPSBBVDkxQ19QRENfVFhURU4gKyBBVDkxQ19QRENfUlhURU47CiAJd2hpbGUoIShBVDkxQ19CQVNFX1NQSS0+U1BJX1NSICYgQVQ5MUNfU1BJX1JYQlVGRikgJiYKLQkJKCh0aW1lb3V0ID0gZ2V0X3RpbWVyX21hc2tlZCgpICkgPCBDRkdfU1BJX1dSSVRFX1RPVVQpKTsKKwkJKCh0aW1lb3V0ID0gZ2V0X3RpbWVyX21hc2tlZCgpICkgPCBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUKSk7CiAJQVQ5MUNfQkFTRV9TUEktPlNQSV9QVENSID0gQVQ5MUNfUERDX1RYVERJUyArIEFUOTFDX1BEQ19SWFRESVM7CiAJcERlc2MtPnN0YXRlID0gSURMRTsKIAotCWlmICh0aW1lb3V0ID49IENGR19TUElfV1JJVEVfVE9VVCl7CisJaWYgKHRpbWVvdXQgPj0gQ09ORklHX1NZU19TUElfV1JJVEVfVE9VVCl7CiAJCXByaW50ZigiRXJyb3IgVGltZW91dFxuXHIiKTsKIAkJcmV0dXJuIERBVEFGTEFTSF9FUlJPUjsKIAl9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL3VzYi5jIGIvY3B1L2FybTkyMHQvYXQ5MXJtOTIwMC91c2IuYwppbmRleCBjMTIxZGU2Li43MjM1NWRjIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9hdDkxcm05MjAwL3VzYi5jCisrKyBiL2NwdS9hcm05MjB0L2F0OTFybTkyMDAvdXNiLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9DUFVfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkKICMgaWZkZWYgQ09ORklHX0FUOTFSTTkyMDAKIAogI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CkBAIC01MCw0ICs1MCw0IEBACiB9CiAKICMgZW5kaWYgLyogQ09ORklHX0FUOTFSTTkyMDAgKi8KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSSkgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L2NwdS5jIGIvY3B1L2FybTkyMHQvY3B1LmMKaW5kZXggZjkzYmY1Ny4uMWI5Y2RlNiAxMDA2NDQKLS0tIGEvY3B1L2FybTkyMHQvY3B1LmMKKysrIGIvY3B1L2FybTkyMHQvY3B1LmMKQEAgLTk1LDcgKzk1LDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyMHQvaW14L2ludGVycnVwdHMuYyBiL2NwdS9hcm05MjB0L2lteC9pbnRlcnJ1cHRzLmMKaW5kZXggYzYxZDNiYy4uZGRjZmIzNCAxMDA2NDQKLS0tIGEvY3B1L2FybTkyMHQvaW14L2ludGVycnVwdHMuYworKysgYi9jcHUvYXJtOTIwdC9pbXgvaW50ZXJydXB0cy5jCkBAIC0xMTIsNyArMTEyLDcgQEAKIHsKIAl1bG9uZyB0YmNsazsKIAotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAogCXJldHVybiB0YmNsazsKIH0KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L2ludGVycnVwdHMuYyBiL2NwdS9hcm05MjB0L2ludGVycnVwdHMuYwppbmRleCBjOWNkMDY2Li4wOWM1NGRiIDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTkyMHQvaW50ZXJydXB0cy5jCkBAIC00Miw3ICs0Miw3IEBACiAJLyogQVNTVU1FRCB0byBiZSBhIHRpbWVyIGludGVycnVwdCAgKi8KIAkvKiBKdXN0IGNsZWFyIGl0IC0gY291bnQgaGFuZGxlZCBpbiAqLwogCS8qIGludGVncmF0b3JhcC5jICAgICAgICAgICAgICAgICAgICovCi0JKih2b2xhdGlsZSB1bG9uZyAqKShDRkdfVElNRVJCQVNFICsgMHgwQykgPSAwOworCSoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyAweDBDKSA9IDA7CiAjZWxzZQogI2Vycm9yIGRvX2lycSgpIG5vdCBkZWZpbmVkIGZvciB0aGlzIGNwdSB0eXBlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L3MzYzI0eDAvaTJjLmMgYi9jcHUvYXJtOTIwdC9zM2MyNHgwL2kyYy5jCmluZGV4IDM3NGI2ODMuLmZiYTVjZDEgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjB0L3MzYzI0eDAvaTJjLmMKKysrIGIvY3B1L2FybTkyMHQvczNjMjR4MC9pMmMuYwpAQCAtMzg0LDcgKzM4NCw3IEBACiAJCXhhZGRyWzNdID0gYWRkciAmIDB4RkY7CiAJfQogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzCiAJICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZgpAQCAtMzk3LDcgKzM5Nyw3IEBACiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCiAJaWYgKGFsZW4gPiAwKQotCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCWlmICgocmV0ID0KIAkgICAgIGkyY190cmFuc2ZlciAoSTJDX1JFQUQsIGNoaXAgPDwgMSwgJnhhZGRyWzQgLSBhbGVuXSwgYWxlbiwKQEAgLTQyMyw3ICs0MjMsNyBAQAogCQl4YWRkclsyXSA9IChhZGRyID4+IDgpICYgMHhGRjsKIAkJeGFkZHJbM10gPSBhZGRyICYgMHhGRjsKIAl9Ci0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzCiAJICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZgpAQCAtNDM2LDcgKzQzNiw3IEBACiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCiAJaWYgKGFsZW4gPiAwKQotCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCXJldHVybiAoaTJjX3RyYW5zZmVyCiAJCShJMkNfV1JJVEUsIGNoaXAgPDwgMSwgJnhhZGRyWzQgLSBhbGVuXSwgYWxlbiwgYnVmZmVyLApkaWZmIC0tZ2l0IGEvY3B1L2FybTkyMHQvczNjMjR4MC9pbnRlcnJ1cHRzLmMgYi9jcHUvYXJtOTIwdC9zM2MyNHgwL2ludGVycnVwdHMuYwppbmRleCA3YWQ5ZmNiLi4xMWU2ODA0IDEwMDY0NAotLS0gYS9jcHUvYXJtOTIwdC9zM2MyNHgwL2ludGVycnVwdHMuYworKysgYi9jcHUvYXJtOTIwdC9zM2MyNHgwL2ludGVycnVwdHMuYwpAQCAtMTc5LDcgKzE3OSw3IEBACiAjZWxpZiBkZWZpbmVkKENPTkZJR19TQkMyNDEwWCkgfHwgXAogICAgICAgZGVmaW5lZChDT05GSUdfU01ESzI0MTApIHx8IFwKICAgICAgIGRlZmluZWQoQ09ORklHX1ZDTUE5KQotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKICNlbHNlCiAjCWVycm9yICJ0YmNsayBub3QgY29uZmlndXJlZCIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyMHQvczNjMjR4MC91c2IuYyBiL2NwdS9hcm05MjB0L3MzYzI0eDAvdXNiLmMKaW5kZXggNDIxZWJiNC4uOWNjZjU3NSAxMDA2NDQKLS0tIGEvY3B1L2FybTkyMHQvczNjMjR4MC91c2IuYworKysgYi9jcHUvYXJtOTIwdC9zM2MyNHgwL3VzYi5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpCiAjIGlmIGRlZmluZWQoQ09ORklHX1MzQzI0MDApIHx8IGRlZmluZWQoQ09ORklHX1MzQzI0MTApCiAKICNpZiBkZWZpbmVkKENPTkZJR19TM0MyNDAwKQpAQCAtNjksNCArNjksNCBAQAogfQogCiAjIGVuZGlmIC8qIGRlZmluZWQoQ09ORklHX1MzQzI0MDApIHx8IGRlZmluZWQoQ09ORklHX1MzQzI0MTApICovCi0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9DUFVfSU5JVCkgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjB0L3N0YXJ0LlMgYi9jcHUvYXJtOTIwdC9zdGFydC5TCmluZGV4IDVkMGZlYzYuLjE3OTc3YzIgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjB0L3N0YXJ0LlMKKysrIGIvY3B1L2FybTkyMHQvc3RhcnQuUwpAQCAtMjAyLDggKzIwMiw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKIAlzdWIJcjAsIHIwLCAjKENPTkZJR19TVEFDS1NJWkVfSVJRK0NPTkZJR19TVEFDS1NJWkVfRklRKQogI2VuZGlmCkBAIC0zMTYsOCArMzE2LDggQEAKIAlzdG1pYQlzcCwge3IwIC0gcjEyfQkJCUAgQ2FsbGluZyByMC1yMTIKIAlsZHIJcjIsIF9hcm1ib290X3N0YXJ0CiAJc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFKQotCXN1YglyMiwgcjIsICMoQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIyLCByMiwgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKIAlsZG1pYQlyMiwge3IyIC0gcjN9CQkJQCBnZXQgcGMsIGNwc3IKIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIHJlc3RvcmUgc3BfU1ZDCiAKQEAgLTM1MCw4ICszNTAsOCBAQAogCS5tYWNybyBnZXRfYmFkX3N0YWNrCiAJbGRyCXIxMywgX2FybWJvb3Rfc3RhcnQJCUAgc2V0dXAgb3VyIG1vZGUgc3RhY2sKIAlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRSkKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjawogCiAJc3RyCWxyLCBbcjEzXQkJCUAgc2F2ZSBjYWxsZXIgbHIgLyBzcHNyCiAJbXJzCWxyLCBzcHNyCmRpZmYgLS1naXQgYS9jcHUvYXJtOTI1dC9jcHUuYyBiL2NwdS9hcm05MjV0L2NwdS5jCmluZGV4IGQ4NWI3ZmEuLmI5ZjA5MzEgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjV0L2NwdS5jCisrKyBiL2NwdS9hcm05MjV0L2NwdS5jCkBAIC05NSw3ICs5NSw3IEBACiAJICogc2V0dXAgdXAgc3RhY2tzIGlmIG5lY2Vzc2FyeQogCSAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCi0JSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDRkdfTUFMTE9DX0xFTiAtIENGR19HQkxfREFUQV9TSVpFIC0gNDsKKwlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDQ7CiAJRklRX1NUQUNLX1NUQVJUID0gSVJRX1NUQUNLX1NUQVJUIC0gQ09ORklHX1NUQUNLU0laRV9JUlE7CiAjZW5kaWYKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9hcm05MjV0L2ludGVycnVwdHMuYyBiL2NwdS9hcm05MjV0L2ludGVycnVwdHMuYwppbmRleCAyMDhhMjViZC4uM2VmNDU1NCAxMDA2NDQKLS0tIGEvY3B1L2FybTkyNXQvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9hcm05MjV0L2ludGVycnVwdHMuYwpAQCAtMzksNyArMzksNyBAQAogI2RlZmluZSBUSU1FUl9MT0FEX1ZBTCAweGZmZmZmZmZmCiAKIC8qIG1hY3JvIHRvIHJlYWQgdGhlIDMyIGJpdCB0aW1lciAqLwotI2RlZmluZSBSRUFEX1RJTUVSICgqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UrOCkpCisjZGVmaW5lIFJFQURfVElNRVIgKCoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UrOCkpCiAKIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CiBzdGF0aWMgdWxvbmcgbGFzdGRlYzsKQEAgLTUwLDkgKzUwLDkgQEAKIAlpbnQzMl90IHZhbDsKIAogCS8qIFN0YXJ0IHRoZSBkZWNyZW1lbnRlciB0aWNraW5nIGRvd24gZnJvbSAweGZmZmZmZmZmICovCi0JKigoaW50MzJfdCAqKSAoQ0ZHX1RJTUVSQkFTRSArIExPQURfVElNKSkgPSBUSU1FUl9MT0FEX1ZBTDsKLQl2YWwgPSBNUFVUSU1fU1QgfCBNUFVUSU1fQVIgfCBNUFVUSU1fQ0xPQ0tfRU5BQkxFIHwgKENGR19QVlQgPDwgTVBVVElNX1BUVl9CSVQpOwotCSooKGludDMyX3QgKikgKENGR19USU1FUkJBU0UgKyBDTlRMX1RJTUVSKSkgPSB2YWw7CisJKigoaW50MzJfdCAqKSAoQ09ORklHX1NZU19USU1FUkJBU0UgKyBMT0FEX1RJTSkpID0gVElNRVJfTE9BRF9WQUw7CisJdmFsID0gTVBVVElNX1NUIHwgTVBVVElNX0FSIHwgTVBVVElNX0NMT0NLX0VOQUJMRSB8IChDT05GSUdfU1lTX1BWVCA8PCBNUFVUSU1fUFRWX0JJVCk7CisJKigoaW50MzJfdCAqKSAoQ09ORklHX1NZU19USU1FUkJBU0UgKyBDTlRMX1RJTUVSKSkgPSB2YWw7CiAKIAkvKiBpbml0IHRoZSB0aW1lc3RhbXAgYW5kIGxhc3RkZWMgdmFsdWUgKi8KIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKQEAgLTg2LDEwICs4NiwxMCBAQAogCiAJaWYodXNlYyA+PSAxMDAwKXsJCS8qIGlmICJiaWciIG51bWJlciwgc3ByZWFkIG5vcm1hbGl6YXRpb24gdG8gc2Vjb25kcyAqLwogCQl0bW8gPSB1c2VjIC8gMTAwMDsJLyogc3RhcnQgdG8gbm9ybWFsaXplIGZvciB1c2VjIHRvIHRpY2tzIHBlciBzZWMgKi8KLQkJdG1vICo9IENGR19IWjsJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLworCQl0bW8gKj0gQ09ORklHX1NZU19IWjsJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLwogCQl0bW8gLz0gMTAwMDsJCS8qIGZpbmlzaCBub3JtYWxpemUuICovCiAJfWVsc2V7CQkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xNDUsMTAgKzE0NSwxMCBAQAogCiAJaWYgKHVzZWMgPj0gMTAwMCkgewkJLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOwkvKiBzdGFydCB0byBub3JtYWxpemUgZm9yIHVzZWMgdG8gdGlja3MgcGVyIHNlYyAqLwotCQl0bW8gKj0gQ0ZHX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOwkJLyogZmluaXNoIG5vcm1hbGl6ZS4gKi8KIAl9IGVsc2UgewkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xNzgsNiArMTc4LDYgQEAKIHsKIAl1bG9uZyB0YmNsazsKIAotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTI1dC9zdGFydC5TIGIvY3B1L2FybTkyNXQvc3RhcnQuUwppbmRleCA1ZGRkYTU0Li5jNDgwMTRkIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI1dC9zdGFydC5TCisrKyBiL2NwdS9hcm05MjV0L3N0YXJ0LlMKQEAgLTE5MCw4ICsxOTAsOCBAQAogCS8qIFNldCB1cCB0aGUgc3RhY2sJCQkJCQkgICAgKi8KIHN0YWNrX3NldHVwOgogCWxkcglyMCwgX1RFWFRfQkFTRQkJLyogdXBwZXIgMTI4IEtpQjogcmVsb2NhdGVkIHVib290ICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCiAJc3ViCXIwLCByMCwgIyhDT05GSUdfU1RBQ0tTSVpFX0lSUStDT05GSUdfU1RBQ0tTSVpFX0ZJUSkKICNlbmRpZgpAQCAtMjk1LDggKzI5NSw4IEBACiAJc3RtaWEJc3AsIHtyMCAtIHIxMn0JCQlAIFNhdmUgdXNlciByZWdpc3RlcnMgKG5vdyBpbiBzdmMgbW9kZSkgcjAtcjEyCiAKIAlsZHIJcjIsIF9hcm1ib290X3N0YXJ0Ci0Jc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMiwgcjIsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKIAlsZG1pYQlyMiwge3IyIC0gcjN9ICAgICAgICAgICAgICAgICAgIEAgZ2V0IHZhbHVlcyBmb3IgImFib3J0ZWQiIHBjIGFuZCBjcHNyIChpbnRvIHBhcm0gcmVncykKIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIGdyYWIgcG9pbnRlciB0byBvbGQgc3RhY2sKIApAQCAtMzI4LDggKzMyOCw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrCi0Jc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCiAKIAlzdHIJbHIsIFtyMTNdCQkJQCBzYXZlIGNhbGxlciBsciBpbiBwb3NpdGlvbiAwIG9mIHNhdmVkIHN0YWNrCiAJbXJzCWxyLCBzcHNyICAgICAgICAgICAgICAgICAgICAgICAgQCBnZXQgdGhlIHNwc3IKZGlmZiAtLWdpdCBhL2NwdS9hcm05MjZlanMvYXQ5MS9zcGkuYyBiL2NwdS9hcm05MjZlanMvYXQ5MS9zcGkuYwppbmRleCBjOWZlNmQ4Li4zZWIyNTJjIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2F0OTEvc3BpLmMKKysrIGIvY3B1L2FybTkyNmVqcy9hdDkxL3NwaS5jCkBAIC00OCw3ICs0OCw3IEBACiAJICAgICAgICgoQVQ5MV9NQVNURVJfQ0xPQ0sgLyBBVDkxX1NQSV9DTEspIDw8IDgpLAogCSAgICAgICBBVDkxX0JBU0VfU1BJICsgQVQ5MV9TUElfQ1NSKDApKTsKIAotI2lmZGVmIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEKKyNpZmRlZiBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMQogCS8qIENvbmZpZ3VyZSBDUzEgKi8KIAl3cml0ZWwoQVQ5MV9TUElfTkNQSEEgfAogCSAgICAgICAoQVQ5MV9TUElfRExZQlMgJiBEQVRBRkxBU0hfVENTUykgfApAQCAtNTcsNyArNTcsNyBAQAogCSAgICAgICBBVDkxX0JBU0VfU1BJICsgQVQ5MV9TUElfQ1NSKDEpKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMworI2lmZGVmIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MzCiAJLyogQ29uZmlndXJlIENTMyAqLwogCXdyaXRlbChBVDkxX1NQSV9OQ1BIQSB8CiAJICAgICAgIChBVDkxX1NQSV9ETFlCUyAmIERBVEFGTEFTSF9UQ1NTKSB8CkBAIC0xNDQsMTEgKzE0NCwxMSBAQAogCiAJd3JpdGVsKEFUOTFfU1BJX1RYVEVOICsgQVQ5MV9TUElfUlhURU4sIEFUOTFfQkFTRV9TUEkgKyBBVDkxX1NQSV9QVENSKTsKIAl3aGlsZSAoIShyZWFkbChBVDkxX0JBU0VfU1BJICsgQVQ5MV9TUElfU1IpICYgQVQ5MV9TUElfUlhCVUZGKSAmJgotCQkoKHRpbWVvdXQgPSBnZXRfdGltZXJfbWFza2VkKCkpIDwgQ0ZHX1NQSV9XUklURV9UT1VUKSk7CisJCSgodGltZW91dCA9IGdldF90aW1lcl9tYXNrZWQoKSkgPCBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUKSk7CiAJd3JpdGVsKEFUOTFfU1BJX1RYVERJUyArIEFUOTFfU1BJX1JYVERJUywgQVQ5MV9CQVNFX1NQSSArIEFUOTFfU1BJX1BUQ1IpOwogCXBEZXNjLT5zdGF0ZSA9IElETEU7CiAKLQlpZiAodGltZW91dCA+PSBDRkdfU1BJX1dSSVRFX1RPVVQpIHsKKwlpZiAodGltZW91dCA+PSBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUKSB7CiAJCXByaW50ZigiRXJyb3IgVGltZW91dFxuXHIiKTsKIAkJcmV0dXJuIERBVEFGTEFTSF9FUlJPUjsKIAl9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL2F0OTEvdGltZXIuYyBiL2NwdS9hcm05MjZlanMvYXQ5MS90aW1lci5jCmluZGV4IGM3OWVjN2UuLmZlYzU0NWIgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjZlanMvYXQ5MS90aW1lci5jCisrKyBiL2NwdS9hcm05MjZlanMvYXQ5MS90aW1lci5jCkBAIC0xMzAsNyArMTMwLDcgQEAKIHsKIAl1bG9uZyB0YmNsazsKIAotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CiAKZGlmZiAtLWdpdCBhL2NwdS9hcm05MjZlanMvYXQ5MS91c2IuYyBiL2NwdS9hcm05MjZlanMvYXQ5MS91c2IuYwppbmRleCAyYTkyZjczLi43Y2IwODJkIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2F0OTEvdXNiLmMKKysrIGIvY3B1L2FybTkyNmVqcy9hdDkxL3VzYi5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpCiAKICNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+CkBAIC01OSw0ICs1OSw0IEBACiAJcmV0dXJuIHVzYl9jcHVfc3RvcCgpOwogfQogCi0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1VTQl9PSENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpICovCmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL2NwdS5jIGIvY3B1L2FybTkyNmVqcy9jcHUuYwppbmRleCA1NmM2Mjg5Li40OGEyYzBiIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2NwdS5jCisrKyBiL2NwdS9hcm05MjZlanMvY3B1LmMKQEAgLTk1LDcgKzk1LDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyNmVqcy9kYXZpbmNpL2kyYy5jIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL2kyYy5jCmluZGV4IGFmOWRjMDMuLmQyMjBhNGMgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05MjZlanMvZGF2aW5jaS9pMmMuYworKysgYi9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvaTJjLmMKQEAgLTEwNCw3ICsxMDQsNyBAQAogCX0KIAogCXBzYyA9IDI7Ci0JZGl2ID0gKENGR19IWl9DTE9DSyAvICgocHNjICsgMSkgKiBzcGVlZCkpIC0gMTA7CS8qIFNDTEwgKyBTQ0xIICovCisJZGl2ID0gKENPTkZJR19TWVNfSFpfQ0xPQ0sgLyAoKHBzYyArIDEpICogc3BlZWQpKSAtIDEwOwkvKiBTQ0xMICsgU0NMSCAqLwogCVJFRyhJMkNfUFNDKSA9IHBzYzsJCQkvKiAyN01IeiAvICgyICsgMSkgPSA5TUh6ICovCiAJUkVHKEkyQ19TQ0xMKSA9IChkaXYgKiA1MCkgLyAxMDA7CS8qIDUwJSBEdXR5ICovCiAJUkVHKEkyQ19TQ0xIKSA9IGRpdiAtIFJFRyhJMkNfU0NMTCk7CmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvbmFuZC5jIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL25hbmQuYwppbmRleCBmN2NmMGM5Li4wMTRlMmIwIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL2RhdmluY2kvbmFuZC5jCisrKyBiL2NwdS9hcm05MjZlanMvZGF2aW5jaS9uYW5kLmMKQEAgLTQ0LDE0ICs0NCwxNCBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCi0jaWZkZWYgQ0ZHX1VTRV9OQU5ECisjaWZkZWYgQ09ORklHX1NZU19VU0VfTkFORAogI2lmICFkZWZpbmVkKENPTkZJR19OQU5EX0xFR0FDWSkKIAogI2luY2x1ZGUgPG5hbmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9uYW5kX2RlZnMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9lbWlmX2RlZnMuaD4KIAotZXh0ZXJuIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDRkdfTUFYX05BTkRfREVWSUNFXTsKK2V4dGVybiBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfZGV2X2Rlc2NbQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0VdOwogCiBzdGF0aWMgdm9pZCBuYW5kX2RhdmluY2lfaHdjb250cm9sKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgY21kLCB1bnNpZ25lZCBpbnQgY3RybCkKIHsKQEAgLTg3LDExICs4NywxMSBAQAogI2VuZGlmCiB9CiAKLSNpZmRlZiBDRkdfTkFORF9IV19FQ0MKLSNpZmRlZiBDRkdfREFWSU5DSV9CUk9LRU5fRUNDCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0hXX0VDQworI2lmZGVmIENPTkZJR19TWVNfREFWSU5DSV9CUk9LRU5fRUNDCiAvKiBMaW51eC1jb21wYXRpYmxlIEVDQyB1c2VzIE1URCBkZWZhdWx0cy4gKi8KIC8qIFRoZXNlIGxheW91dHMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggTGludXggb3IgUkJML1VCTC4gKi8KLSNpZmRlZiBDRkdfTkFORF9MQVJHRVBBR0UKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFCiBzdGF0aWMgc3RydWN0IG5hbmRfZWNjbGF5b3V0IGRhdmluY2lfbmFuZF9lY2NsYXlvdXQgPSB7CiAJLmVjY2J5dGVzID0gMTIsCiAJLmVjY3BvcyA9IHs4LCA5LCAxMCwgMjQsIDI1LCAyNiwgNDAsIDQxLCA0MiwgNTYsIDU3LCA1OH0sCkBAIC0xMDMsNyArMTAzLDcgQEAKIAkJey5vZmZzZXQgPSA2MCwgLmxlbmd0aCA9IDR9CiAJfQogfTsKLSNlbGlmIGRlZmluZWQoQ0ZHX05BTkRfU01BTExQQUdFKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX05BTkRfU01BTExQQUdFKQogc3RhdGljIHN0cnVjdCBuYW5kX2VjY2xheW91dCBkYXZpbmNpX25hbmRfZWNjbGF5b3V0ID0gewogCS5lY2NieXRlcyA9IDMsCiAJLmVjY3BvcyA9IHswLCAxLCAyfSwKQEAgLTExMyw5ICsxMTMsOSBAQAogCX0KIH07CiAjZWxzZQotI2Vycm9yICJFaXRoZXIgQ0ZHX05BTkRfTEFSR0VQQUdFIG9yIENGR19OQU5EX1NNQUxMUEFHRSBtdXN0IGJlIGRlZmluZWQhIgorI2Vycm9yICJFaXRoZXIgQ09ORklHX1NZU19OQU5EX0xBUkdFUEFHRSBvciBDT05GSUdfU1lTX05BTkRfU01BTExQQUdFIG11c3QgYmUgZGVmaW5lZCEiCiAjZW5kaWYKLSNlbmRpZiAvKiBDRkdfREFWSU5DSV9CUk9LRU5fRUNDICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KIAogc3RhdGljIHZvaWQgbmFuZF9kYXZpbmNpX2VuYWJsZV9od2VjYyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IG1vZGUpCiB7CkBAIC0xNTQsNyArMTU0LDcgQEAKIHN0YXRpYyBpbnQgbmFuZF9kYXZpbmNpX2NhbGN1bGF0ZV9lY2Moc3RydWN0IG10ZF9pbmZvICptdGQsIGNvbnN0IHVfY2hhciAqZGF0LCB1X2NoYXIgKmVjY19jb2RlKQogewogCXVfaW50MzJfdAkJdG1wOwotI2lmZGVmIENGR19EQVZJTkNJX0JST0tFTl9FQ0MKKyNpZmRlZiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQwogCS8qCiAJICogVGhpcyBpcyBub3QgaG93IHlvdSBzaG91bGQgcmVhZCBFQ0NzIG9uIGxhcmdlIHBhZ2UgRGF2aW5jaSBkZXZpY2VzLgogCSAqIFRoZSByZWdpb24gcGFyYW1ldGVyIGdldHMgeW91IEVDQ3MgZm9yIGZsYXNoIGNoaXBzIG9uIGRpZmZlcmVudCBjaGlwCkBAIC0xOTEsMTEgKzE5MSwxMSBAQAogCSplY2NfY29kZSsrID0gdG1wOwogCSplY2NfY29kZSsrID0gdG1wID4+ICA4OwogCSplY2NfY29kZSsrID0gdG1wID4+IDE2OwotI2VuZGlmIC8qIENGR19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQyAqLwogCXJldHVybigwKTsKIH0KIAotI2lmZGVmIENGR19EQVZJTkNJX0JST0tFTl9FQ0MKKyNpZmRlZiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQwogc3RhdGljIHZvaWQgbmFuZF9kYXZpbmNpX2dlbl90cnVlX2VjYyh1X2ludDhfdCAqZWNjX2J1ZikKIHsKIAl1X2ludDMyX3QJdG1wID0gZWNjX2J1ZlswXSB8IChlY2NfYnVmWzFdIDw8IDE2KSB8ICgoZWNjX2J1ZlsyXSAmIDB4ZjApIDw8IDIwKSB8ICgoZWNjX2J1ZlsyXSAmIDB4MGYpIDw8IDgpOwpAQCAtMzEyLDEyICszMTIsMTIgQEAKIAkJCXJldHVybigtMSk7CiAJfQogfQotI2VuZGlmIC8qIENGR19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQyAqLwogCiBzdGF0aWMgaW50IG5hbmRfZGF2aW5jaV9jb3JyZWN0X2RhdGEoc3RydWN0IG10ZF9pbmZvICptdGQsIHVfY2hhciAqZGF0LCB1X2NoYXIgKnJlYWRfZWNjLCB1X2NoYXIgKmNhbGNfZWNjKQogewogCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGQtPnByaXY7Ci0jaWZkZWYgQ0ZHX0RBVklOQ0lfQlJPS0VOX0VDQworI2lmZGVmIENPTkZJR19TWVNfREFWSU5DSV9CUk9LRU5fRUNDCiAJaW50CQkJYmxvY2tfY291bnQgPSAwLCBpLCByYzsKIAogCWJsb2NrX2NvdW50ID0gKHRoaXMtPmVjYy5zaXplLzUxMik7CkBAIC0zNjYsMTAgKzM2NiwxMCBAQAogCQkJcmV0dXJuIC0xOwogCQl9CiAJfQotI2VuZGlmIC8qIENGR19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQyAqLwogCXJldHVybigwKTsKIH0KLSNlbmRpZiAvKiBDRkdfTkFORF9IV19FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05BTkRfSFdfRUNDICovCiAKIHN0YXRpYyBpbnQgbmFuZF9kYXZpbmNpX2Rldl9yZWFkeShzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKIHsKQEAgLTQzMSwzMiArNDMxLDMyIEBACiAJbmFuZC0+SU9fQUREUl9XICAgPSAodm9pZCAgX19pb21lbSAqKU5BTkRfQ0UwREFUQTsKIAluYW5kLT5jaGlwX2RlbGF5ICA9IDA7CiAJbmFuZC0+c2VsZWN0X2NoaXAgPSBuYW5kX2RhdmluY2lfc2VsZWN0X2NoaXA7Ci0jaWZkZWYgQ0ZHX05BTkRfVVNFX0ZMQVNIX0JCVAorI2lmZGVmIENPTkZJR19TWVNfTkFORF9VU0VfRkxBU0hfQkJUCiAJbmFuZC0+b3B0aW9ucwkgID0gTkFORF9VU0VfRkxBU0hfQkJUOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX05BTkRfSFdfRUNDCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0hXX0VDQwogCW5hbmQtPmVjYy5tb2RlID0gTkFORF9FQ0NfSFc7Ci0jaWZkZWYgQ0ZHX0RBVklOQ0lfQlJPS0VOX0VDQworI2lmZGVmIENPTkZJR19TWVNfREFWSU5DSV9CUk9LRU5fRUNDCiAJbmFuZC0+ZWNjLmxheW91dCAgPSAmZGF2aW5jaV9uYW5kX2VjY2xheW91dDsKLSNpZmRlZiBDRkdfTkFORF9MQVJHRVBBR0UKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFCiAJbmFuZC0+ZWNjLnNpemUgPSAyMDQ4OwogCW5hbmQtPmVjYy5ieXRlcyA9IDEyOwotI2VsaWYgZGVmaW5lZChDRkdfTkFORF9TTUFMTFBBR0UpCisjZWxpZiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9TTUFMTFBBR0UpCiAJbmFuZC0+ZWNjLnNpemUgPSA1MTI7CiAJbmFuZC0+ZWNjLmJ5dGVzID0gMzsKICNlbHNlCi0jZXJyb3IgIkVpdGhlciBDRkdfTkFORF9MQVJHRVBBR0Ugb3IgQ0ZHX05BTkRfU01BTExQQUdFIG11c3QgYmUgZGVmaW5lZCEiCisjZXJyb3IgIkVpdGhlciBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFIG9yIENPTkZJR19TWVNfTkFORF9TTUFMTFBBR0UgbXVzdCBiZSBkZWZpbmVkISIKICNlbmRpZgogI2Vsc2UKIAluYW5kLT5lY2Muc2l6ZSA9IDUxMjsKIAluYW5kLT5lY2MuYnl0ZXMgPSAzOwotI2VuZGlmIC8qIENGR19EQVZJTkNJX0JST0tFTl9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RBVklOQ0lfQlJPS0VOX0VDQyAqLwogCW5hbmQtPmVjYy5jYWxjdWxhdGUgPSBuYW5kX2RhdmluY2lfY2FsY3VsYXRlX2VjYzsKIAluYW5kLT5lY2MuY29ycmVjdCAgPSBuYW5kX2RhdmluY2lfY29ycmVjdF9kYXRhOwogCW5hbmQtPmVjYy5od2N0bCAgPSBuYW5kX2RhdmluY2lfZW5hYmxlX2h3ZWNjOwogI2Vsc2UKIAluYW5kLT5lY2MubW9kZSA9IE5BTkRfRUNDX1NPRlQ7Ci0jZW5kaWYgLyogQ0ZHX05BTkRfSFdfRUNDICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OQU5EX0hXX0VDQyAqLwogCiAJLyogU2V0IGFkZHJlc3Mgb2YgaGFyZHdhcmUgY29udHJvbCBmdW5jdGlvbiAqLwogCW5hbmQtPmNtZF9jdHJsID0gbmFuZF9kYXZpbmNpX2h3Y29udHJvbDsKQEAgLTQ3Miw0ICs0NzIsNCBAQAogI2Vsc2UKICNlcnJvciAiVS1Cb290IGxlZ2FjeSBOQU5EIHN1cHBvcnQgbm90IGF2YWlsYWJsZSBmb3IgRGFWaW5jaSBjaGlwcyIKICNlbmRpZgotI2VuZGlmCS8qIENGR19VU0VfTkFORCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfVVNFX05BTkQgKi8KZGlmZiAtLWdpdCBhL2NwdS9hcm05MjZlanMvZGF2aW5jaS90aW1lci5jIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL3RpbWVyLmMKaW5kZXggNmM2NzBmMC4uNzczNzM1YSAxMDA2NDQKLS0tIGEvY3B1L2FybTkyNmVqcy9kYXZpbmNpL3RpbWVyLmMKKysrIGIvY3B1L2FybTkyNmVqcy9kYXZpbmNpL3RpbWVyLmMKQEAgLTU0LDkgKzU0LDkgQEAKIAl1X2ludDMyX3QJd2R0Y3I7CiB9IGRhdmluY2lfdGltZXI7CiAKLWRhdmluY2lfdGltZXIJCSp0aW1lciA9IChkYXZpbmNpX3RpbWVyICopQ0ZHX1RJTUVSQkFTRTsKK2RhdmluY2lfdGltZXIJCSp0aW1lciA9IChkYXZpbmNpX3RpbWVyICopQ09ORklHX1NZU19USU1FUkJBU0U7CiAKLSNkZWZpbmUgVElNRVJfTE9BRF9WQUwJKENGR19IWl9DTE9DSyAvIENGR19IWikKKyNkZWZpbmUgVElNRVJfTE9BRF9WQUwJKENPTkZJR19TWVNfSFpfQ0xPQ0sgLyBDT05GSUdfU1lTX0haKQogI2RlZmluZSBUSU1fQ0xLX0RJVgkxNgogCiBzdGF0aWMgdWxvbmcgdGltZXN0YW1wOwpAQCAtMTE3LDcgKzExNyw3IEBACiAJdWxvbmcgZW5kdGltZTsKIAlzaWduZWQgbG9uZyBkaWZmOwogCi0JdG1vID0gQ0ZHX0haX0NMT0NLIC8gMTAwMDsKKwl0bW8gPSBDT05GSUdfU1lTX0haX0NMT0NLIC8gMTAwMDsKIAl0bW8gKj0gdXNlYzsKIAl0bW8gLz0gKDEwMDAgKiBUSU1fQ0xLX0RJVik7CiAKQEAgLTE0NCw1ICsxNDQsNSBAQAogICovCiB1bG9uZyBnZXRfdGJjbGsodm9pZCkKIHsKLQlyZXR1cm4gQ0ZHX0haOworCXJldHVybiBDT05GSUdfU1lTX0haOwogfQpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyNmVqcy9vbWFwL3RpbWVyLmMgYi9jcHUvYXJtOTI2ZWpzL29tYXAvdGltZXIuYwppbmRleCBhMmE5MTMzLi40OWU3NGFiIDEwMDY0NAotLS0gYS9jcHUvYXJtOTI2ZWpzL29tYXAvdGltZXIuYworKysgYi9jcHUvYXJtOTI2ZWpzL29tYXAvdGltZXIuYwpAQCAtNDEsNyArNDEsNyBAQAogI2RlZmluZSBUSU1FUl9MT0FEX1ZBTCAweGZmZmZmZmZmCiAKIC8qIG1hY3JvIHRvIHJlYWQgdGhlIDMyIGJpdCB0aW1lciAqLwotI2RlZmluZSBSRUFEX1RJTUVSICgqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UrOCkpCisjZGVmaW5lIFJFQURfVElNRVIgKCoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UrOCkpCiAKIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CiBzdGF0aWMgdWxvbmcgbGFzdGRlYzsKQEAgLTUxLDkgKzUxLDkgQEAKIAlpbnQzMl90IHZhbDsKIAogCS8qIFN0YXJ0IHRoZSBkZWNyZW1lbnRlciB0aWNraW5nIGRvd24gZnJvbSAweGZmZmZmZmZmICovCi0JKigoaW50MzJfdCAqKSAoQ0ZHX1RJTUVSQkFTRSArIExPQURfVElNKSkgPSBUSU1FUl9MT0FEX1ZBTDsKLQl2YWwgPSBNUFVUSU1fU1QgfCBNUFVUSU1fQVIgfCBNUFVUSU1fQ0xPQ0tfRU5BQkxFIHwgKENGR19QVlQgPDwgTVBVVElNX1BUVl9CSVQpOwotCSooKGludDMyX3QgKikgKENGR19USU1FUkJBU0UgKyBDTlRMX1RJTUVSKSkgPSB2YWw7CisJKigoaW50MzJfdCAqKSAoQ09ORklHX1NZU19USU1FUkJBU0UgKyBMT0FEX1RJTSkpID0gVElNRVJfTE9BRF9WQUw7CisJdmFsID0gTVBVVElNX1NUIHwgTVBVVElNX0FSIHwgTVBVVElNX0NMT0NLX0VOQUJMRSB8IChDT05GSUdfU1lTX1BWVCA8PCBNUFVUSU1fUFRWX0JJVCk7CisJKigoaW50MzJfdCAqKSAoQ09ORklHX1NZU19USU1FUkJBU0UgKyBDTlRMX1RJTUVSKSkgPSB2YWw7CiAKIAkvKiBpbml0IHRoZSB0aW1lc3RhbXAgYW5kIGxhc3RkZWMgdmFsdWUgKi8KIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKQEAgLTg3LDEwICs4NywxMCBAQAogCiAJaWYodXNlYyA+PSAxMDAwKXsJCS8qIGlmICJiaWciIG51bWJlciwgc3ByZWFkIG5vcm1hbGl6YXRpb24gdG8gc2Vjb25kcyAqLwogCQl0bW8gPSB1c2VjIC8gMTAwMDsJLyogc3RhcnQgdG8gbm9ybWFsaXplIGZvciB1c2VjIHRvIHRpY2tzIHBlciBzZWMgKi8KLQkJdG1vICo9IENGR19IWjsJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLworCQl0bW8gKj0gQ09ORklHX1NZU19IWjsJCS8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLwogCQl0bW8gLz0gMTAwMDsJCS8qIGZpbmlzaCBub3JtYWxpemUuICovCiAJfWVsc2V7CQkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xNDAsMTAgKzE0MCwxMCBAQAogCiAJaWYgKHVzZWMgPj0gMTAwMCkgewkJLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOwkvKiBzdGFydCB0byBub3JtYWxpemUgZm9yIHVzZWMgdG8gdGlja3MgcGVyIHNlYyAqLwotCQl0bW8gKj0gQ0ZHX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOwkJLyogZmluaXNoIG5vcm1hbGl6ZS4gKi8KIAl9IGVsc2UgewkJCS8qIGVsc2Ugc21hbGwgbnVtYmVyLCBkb24ndCBraWxsIGl0IHByaW9yIHRvIEhaIG11bHRpcGx5ICovCi0JCXRtbyA9IHVzZWMgKiBDRkdfSFo7CisJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gKDEwMDAqMTAwMCk7CiAJfQogCkBAIC0xNzIsNiArMTcyLDYgQEAKIHsKIAl1bG9uZyB0YmNsazsKIAotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CmRpZmYgLS1naXQgYS9jcHUvYXJtOTI2ZWpzL3N0YXJ0LlMgYi9jcHUvYXJtOTI2ZWpzL3N0YXJ0LlMKaW5kZXggYTYxZmExOC4uZWQ0OTMyYSAxMDA2NDQKLS0tIGEvY3B1L2FybTkyNmVqcy9zdGFydC5TCisrKyBiL2NwdS9hcm05MjZlanMvc3RhcnQuUwpAQCAtMTY1LDggKzE2NSw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKIAlzdWIJcjAsIHIwLCAjKENPTkZJR19TVEFDS1NJWkVfSVJRK0NPTkZJR19TVEFDS1NJWkVfRklRKQogI2VuZGlmCkBAIC0yNzYsOCArMjc2LDggQEAKIAlzdG1pYQlzcCwge3IwIC0gcjEyfQlAIFNhdmUgdXNlciByZWdpc3RlcnMgKG5vdyBpbiBzdmMgbW9kZSkgcjAtcjEyCiAKIAlsZHIJcjIsIF9hcm1ib290X3N0YXJ0Ci0Jc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMiwgcjIsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKIAlAIGdldCB2YWx1ZXMgZm9yICJhYm9ydGVkIiBwYyBhbmQgY3BzciAoaW50byBwYXJtIHJlZ3MpCiAJbGRtaWEJcjIsIHtyMiAtIHIzfQogCWFkZAlyMCwgc3AsICNTX0ZSQU1FX1NJWkUJCUAgZ3JhYiBwb2ludGVyIHRvIG9sZCBzdGFjawpAQCAtMzEwLDggKzMxMCw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrCi0Jc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCiAKIAlzdHIJbHIsIFtyMTNdCUAgc2F2ZSBjYWxsZXIgbHIgaW4gcG9zaXRpb24gMCBvZiBzYXZlZCBzdGFjawogCW1ycwlsciwgc3BzcglAIGdldCB0aGUgc3BzcgpkaWZmIC0tZ2l0IGEvY3B1L2FybTkyNmVqcy92ZXJzYXRpbGUvdGltZXIuYyBiL2NwdS9hcm05MjZlanMvdmVyc2F0aWxlL3RpbWVyLmMKaW5kZXggZjAxZjMxOC4uOWFjODY3ZSAxMDA3NTUKLS0tIGEvY3B1L2FybTkyNmVqcy92ZXJzYXRpbGUvdGltZXIuYworKysgYi9jcHUvYXJtOTI2ZWpzL3ZlcnNhdGlsZS90aW1lci5jCkBAIC00MSw3ICs0MSw3IEBACiAjZGVmaW5lIFRJTUVSX0xPQURfVkFMIDB4ZmZmZmZmZmYKIAogLyogbWFjcm8gdG8gcmVhZCB0aGUgMzIgYml0IHRpbWVyICovCi0jZGVmaW5lIFJFQURfVElNRVIgKCoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSs0KSkKKyNkZWZpbmUgUkVBRF9USU1FUiAoKih2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX1RJTUVSQkFTRSs0KSkKIAogc3RhdGljIHVsb25nIHRpbWVzdGFtcDsKIHN0YXRpYyB1bG9uZyBsYXN0ZGVjOwpAQCAtNjIsOSArNjIsOSBAQAogCXVsb25nCXRtcl9jdHJsX3ZhbDsKIAogCS8qIDFzdCBkaXNhYmxlIHRoZSBUaW1lciAqLwotCXRtcl9jdHJsX3ZhbCA9ICoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSArIDgpOworCXRtcl9jdHJsX3ZhbCA9ICoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyA4KTsKIAl0bXJfY3RybF92YWwgJj0gflRJTUVSX0VOQUJMRTsKLQkqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UgKyA4KSA9IHRtcl9jdHJsX3ZhbDsKKwkqKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfVElNRVJCQVNFICsgOCkgPSB0bXJfY3RybF92YWw7CiAKIAkvKgogCSAqIFRoZSBUaW1lciBDb250cm9sIFJlZ2lzdGVyIGhhcyBvbmUgVW5kZWZpbmVkL1Nob3VsZG4ndCBVc2UgQml0CkBAIC03OCwxMSArNzgsMTEgQEAKIAkgKiBUbXIgU2l6IDogMTYgQml0IENvdW50ZXIKIAkgKiBUbXIgaW4gV3JhcHBpbmcgTW9kZQogCSAqLwotCXRtcl9jdHJsX3ZhbCA9ICoodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX1RJTUVSQkFTRSArIDgpOworCXRtcl9jdHJsX3ZhbCA9ICoodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19USU1FUkJBU0UgKyA4KTsKIAl0bXJfY3RybF92YWwgJj0gfihUSU1FUl9NT0RFX01TSyB8IFRJTUVSX0lOVF9FTiB8IFRJTUVSX1BSU19NU0sgfCBUSU1FUl9TSVpFX01TSyB8IFRJTUVSX09ORV9TSFQgKTsKIAl0bXJfY3RybF92YWwgfD0gKFRJTUVSX0VOQUJMRSB8IFRJTUVSX1BSU184Uyk7CiAKLQkqKHZvbGF0aWxlIHVsb25nICopKENGR19USU1FUkJBU0UgKyA4KSA9IHRtcl9jdHJsX3ZhbDsKKwkqKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfVElNRVJCQVNFICsgOCkgPSB0bXJfY3RybF92YWw7CiAKIAkvKiBpbml0IHRoZSB0aW1lc3RhbXAgYW5kIGxhc3RkZWMgdmFsdWUgKi8KIAlyZXNldF90aW1lcl9tYXNrZWQoKTsKQEAgLTExNiwxMCArMTE2LDEwIEBACiAKIAlpZih1c2VjID49IDEwMDApewkJLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOwkvKiBzdGFydCB0byBub3JtYWxpemUgZm9yIHVzZWMgdG8gdGlja3MgcGVyIHNlYyAqLwotCQl0bW8gKj0gQ0ZHX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwkJLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOwkJLyogZmluaXNoIG5vcm1hbGl6ZS4gKi8KIAl9ZWxzZXsJCQkJLyogZWxzZSBzbWFsbCBudW1iZXIsIGRvbid0IGtpbGwgaXQgcHJpb3IgdG8gSFogbXVsdGlwbHkgKi8KLQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJdG1vID0gdXNlYyAqIENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAoMTAwMCoxMDAwKTsKIAl9CiAKQEAgLTE2OSwxMCArMTY5LDEwIEBACiAKIAlpZiAodXNlYyA+PSAxMDAwKSB7CQkvKiBpZiAiYmlnIiBudW1iZXIsIHNwcmVhZCBub3JtYWxpemF0aW9uIHRvIHNlY29uZHMgKi8KIAkJdG1vID0gdXNlYyAvIDEwMDA7CS8qIHN0YXJ0IHRvIG5vcm1hbGl6ZSBmb3IgdXNlYyB0byB0aWNrcyBwZXIgc2VjICovCi0JCXRtbyAqPSBDRkdfSFo7CQkvKiBmaW5kIG51bWJlciBvZiAidGlja3MiIHRvIHdhaXQgdG8gYWNoaWV2ZSB0YXJnZXQgKi8KKwkJdG1vICo9IENPTkZJR19TWVNfSFo7CQkvKiBmaW5kIG51bWJlciBvZiAidGlja3MiIHRvIHdhaXQgdG8gYWNoaWV2ZSB0YXJnZXQgKi8KIAkJdG1vIC89IDEwMDA7CQkvKiBmaW5pc2ggbm9ybWFsaXplLiAqLwogCX0gZWxzZSB7CQkJLyogZWxzZSBzbWFsbCBudW1iZXIsIGRvbid0IGtpbGwgaXQgcHJpb3IgdG8gSFogbXVsdGlwbHkgKi8KLQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJdG1vID0gdXNlYyAqIENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAoMTAwMCoxMDAwKTsKIAl9CiAKQEAgLTIwMSw2ICsyMDEsNiBAQAogewogCXVsb25nIHRiY2xrOwogCi0JdGJjbGsgPSBDRkdfSFo7CisJdGJjbGsgPSBDT05GSUdfU1lTX0haOwogCXJldHVybiB0YmNsazsKIH0KZGlmZiAtLWdpdCBhL2NwdS9hcm05NDZlcy9jcHUuYyBiL2NwdS9hcm05NDZlcy9jcHUuYwppbmRleCA0YzYzYThkLi40NGM1ODlhIDEwMDY0NAotLS0gYS9jcHUvYXJtOTQ2ZXMvY3B1LmMKKysrIGIvY3B1L2FybTk0NmVzL2NwdS5jCkBAIC05NSw3ICs5NSw3IEBACiAJICogc2V0dXAgdXAgc3RhY2tzIGlmIG5lY2Vzc2FyeQogCSAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCi0JSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDRkdfTUFMTE9DX0xFTiAtIENGR19HQkxfREFUQV9TSVpFIC0gNDsKKwlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDQ7CiAJRklRX1NUQUNLX1NUQVJUID0gSVJRX1NUQUNLX1NUQVJUIC0gQ09ORklHX1NUQUNLU0laRV9JUlE7CiAjZW5kaWYKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9hcm05NDZlcy9pbnRlcnJ1cHRzLmMgYi9jcHUvYXJtOTQ2ZXMvaW50ZXJydXB0cy5jCmluZGV4IGEyYzM2NDYuLmMxM2QzMDkgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05NDZlcy9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2FybTk0NmVzL2ludGVycnVwdHMuYwpAQCAtMTIxLDEwICsxMjEsMTAgQEAKIAogCWlmKHVzZWMgPj0gMTAwMCl7ICAgICAgICAgICAgICAgLyogaWYgImJpZyIgbnVtYmVyLCBzcHJlYWQgbm9ybWFsaXphdGlvbiB0byBzZWNvbmRzICovCiAJCXRtbyA9IHVzZWMgLyAxMDAwOyAgICAgIC8qIHN0YXJ0IHRvIG5vcm1hbGl6ZSBmb3IgdXNlYyB0byB0aWNrcyBwZXIgc2VjICovCi0JCXRtbyAqPSBDRkdfSFpfQ0xPQ0s7ICAgIC8qIGZpbmQgbnVtYmVyIG9mICJ0aWNrcyIgdG8gd2FpdCB0byBhY2hpZXZlIHRhcmdldCAqLworCQl0bW8gKj0gQ09ORklHX1NZU19IWl9DTE9DSzsgICAgLyogZmluZCBudW1iZXIgb2YgInRpY2tzIiB0byB3YWl0IHRvIGFjaGlldmUgdGFyZ2V0ICovCiAJCXRtbyAvPSAxMDAwOyAgICAgICAgICAgIC8qIGZpbmlzaCBub3JtYWxpemUuICovCiAJfWVsc2V7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlbHNlIHNtYWxsIG51bWJlciwgZG9uJ3Qga2lsbCBpdCBwcmlvciB0byBIWiBtdWx0aXBseSAqLwotCQl0bW8gPSB1c2VjICogQ0ZHX0haX0NMT0NLOworCQl0bW8gPSB1c2VjICogQ09ORklHX1NZU19IWl9DTE9DSzsKIAkJdG1vIC89ICgxMDAwKjEwMDApOwogCX0KIApAQCAtMTUxLDcgKzE1MSw3IEBACiB7CiAJdWxvbmcgdGJjbGs7CiAKLQl0YmNsayA9IENGR19IWjsKKwl0YmNsayA9IENPTkZJR19TWVNfSFo7CiAJcmV0dXJuIHRiY2xrOwogfQogCmRpZmYgLS1naXQgYS9jcHUvYXJtOTQ2ZXMvc3RhcnQuUyBiL2NwdS9hcm05NDZlcy9zdGFydC5TCmluZGV4IDllOTdmNTMuLjc5NzJiMDAgMTAwNjQ0Ci0tLSBhL2NwdS9hcm05NDZlcy9zdGFydC5TCisrKyBiL2NwdS9hcm05NDZlcy9zdGFydC5TCkBAIC0xNTcsOCArMTU3LDggQEAKIAkvKiBTZXQgdXAgdGhlIHN0YWNrCQkJCQkJICAgICovCiBzdGFja19zZXR1cDoKIAlsZHIJcjAsIF9URVhUX0JBU0UJCS8qIHVwcGVyIDEyOCBLaUI6IHJlbG9jYXRlZCB1Ym9vdCAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYKQEAgLTI2NCw4ICsyNjQsOCBAQAogCXN0bWlhCXNwLCB7cjAgLSByMTJ9CUAgU2F2ZSB1c2VyIHJlZ2lzdGVycyAobm93IGluIHN2YyBtb2RlKSByMC1yMTIKIAogCWxkcglyMiwgX2FybWJvb3Rfc3RhcnQKLQlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIyLCByMiwgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjawogCUAgZ2V0IHZhbHVlcyBmb3IgImFib3J0ZWQiIHBjIGFuZCBjcHNyIChpbnRvIHBhcm0gcmVncykKIAlsZG1pYQlyMiwge3IyIC0gcjN9CiAJYWRkCXIwLCBzcCwgI1NfRlJBTUVfU0laRQkJQCBncmFiIHBvaW50ZXIgdG8gb2xkIHN0YWNrCkBAIC0yOTgsOCArMjk4LDggQEAKIAogCS5tYWNybyBnZXRfYmFkX3N0YWNrCiAJbGRyCXIxMywgX2FybWJvb3Rfc3RhcnQJCUAgc2V0dXAgb3VyIG1vZGUgc3RhY2sKLQlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjaworCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKIAogCXN0cglsciwgW3IxM10JQCBzYXZlIGNhbGxlciBsciBpbiBwb3NpdGlvbiAwIG9mIHNhdmVkIHN0YWNrCiAJbXJzCWxyLCBzcHNyCUAgZ2V0IHRoZSBzcHNyCmRpZmYgLS1naXQgYS9jcHUvYXJtX2ludGNtL2NwdS5jIGIvY3B1L2FybV9pbnRjbS9jcHUuYwppbmRleCBlMjMwOWY4Li5jY2Y3ZmQ1IDEwMDY0NAotLS0gYS9jcHUvYXJtX2ludGNtL2NwdS5jCisrKyBiL2NwdS9hcm1faW50Y20vY3B1LmMKQEAgLTQzLDcgKzQzLDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2FybV9pbnRjbS9zdGFydC5TIGIvY3B1L2FybV9pbnRjbS9zdGFydC5TCmluZGV4IGQ1Nzc4YTAuLmVlMDgwNGEgMTAwNjQ0Ci0tLSBhL2NwdS9hcm1faW50Y20vc3RhcnQuUworKysgYi9jcHUvYXJtX2ludGNtL3N0YXJ0LlMKQEAgLTE1NSw4ICsxNTUsOCBAQAogCS8qIFNldCB1cCB0aGUgc3RhY2sJCQkJCQkgICAgKi8KIHN0YWNrX3NldHVwOgogCWxkcglyMCwgX1RFWFRfQkFTRQkJLyogdXBwZXIgMTI4IEtpQjogcmVsb2NhdGVkIHVib290ICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCiAJc3ViCXIwLCByMCwgIyhDT05GSUdfU1RBQ0tTSVpFX0lSUStDT05GSUdfU1RBQ0tTSVpFX0ZJUSkKICNlbmRpZgpAQCAtMjQwLDggKzI0MCw4IEBACiAJc3RtaWEJc3AsIHtyMCAtIHIxMn0JQCBTYXZlIHVzZXIgcmVnaXN0ZXJzIChub3cgaW4gc3ZjIG1vZGUpIHIwLXIxMgogCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjIsIHIyLCAjKENGR19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjaworCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJQCBnZXQgdmFsdWVzIGZvciAiYWJvcnRlZCIgcGMgYW5kIGNwc3IgKGludG8gcGFybSByZWdzKQogCWxkbWlhCXIyLCB7cjIgLSByM30KIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQlAIGdyYWIgcG9pbnRlciB0byBvbGQgc3RhY2sKQEAgLTI3NCw4ICsyNzQsOCBAQAogCiAJLm1hY3JvIGdldF9iYWRfc3RhY2sKIAlsZHIJcjEzLCBfYXJtYm9vdF9zdGFydAkJQCBzZXR1cCBvdXIgbW9kZSBzdGFjawotCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NGR19NQUxMT0NfTEVOKQotCXN1YglyMTMsIHIxMywgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjawogCiAJc3RyCWxyLCBbcjEzXQlAIHNhdmUgY2FsbGVyIGxyIGluIHBvc2l0aW9uIDAgb2Ygc2F2ZWQgc3RhY2sKIAltcnMJbHIsIHNwc3IJQCBnZXQgdGhlIHNwc3IKZGlmZiAtLWdpdCBhL2NwdS9hdDMyYXAvYXQzMmFwNzAweC9jbGsuYyBiL2NwdS9hdDMyYXAvYXQzMmFwNzAweC9jbGsuYwppbmRleCBiM2FhMDM0Li4yYjFjZDM2IDEwMDY0NAotLS0gYS9jcHUvYXQzMmFwL2F0MzJhcDcwMHgvY2xrLmMKKysrIGIvY3B1L2F0MzJhcC9hdDMyYXA3MDB4L2Nsay5jCkBAIC0zOCwxMCArMzgsMTAgQEAKIAogI2lmZGVmIENPTkZJR19QTEwKIAkvKiBJbml0aWFsaXplIHRoZSBQTEwgKi8KLQlzbV93cml0ZWwoUE1fUExMMCwgKFNNX0JGKFBMTENPVU5ULCBDRkdfUExMMF9TVVBQUkVTU19DWUNMRVMpCi0JCQkgICAgfCBTTV9CRihQTExNVUwsIENGR19QTEwwX01VTCAtIDEpCi0JCQkgICAgfCBTTV9CRihQTExESVYsIENGR19QTEwwX0RJViAtIDEpCi0JCQkgICAgfCBTTV9CRihQTExPUFQsIENGR19QTEwwX09QVCkKKwlzbV93cml0ZWwoUE1fUExMMCwgKFNNX0JGKFBMTENPVU5ULCBDT05GSUdfU1lTX1BMTDBfU1VQUFJFU1NfQ1lDTEVTKQorCQkJICAgIHwgU01fQkYoUExMTVVMLCBDT05GSUdfU1lTX1BMTDBfTVVMIC0gMSkKKwkJCSAgICB8IFNNX0JGKFBMTERJViwgQ09ORklHX1NZU19QTEwwX0RJViAtIDEpCisJCQkgICAgfCBTTV9CRihQTExPUFQsIENPTkZJR19TWVNfUExMMF9PUFQpCiAJCQkgICAgfCBTTV9CRihQTExPU0MsIDApCiAJCQkgICAgfCBTTV9CSVQoUExMRU4pKSk7CiAKQEAgLTUxLDE0ICs1MSwxNCBAQAogCiAJLyogU2V0IHVwIGNsb2NrcyBmb3IgdGhlIENQVSBhbmQgYWxsIHBlcmlwaGVyYWwgYnVzZXMgKi8KIAlja3NlbCA9IDA7Ci0JaWYgKENGR19DTEtESVZfQ1BVKQotCQlja3NlbCB8PSBTTV9CSVQoQ1BVRElWKSB8IFNNX0JGKENQVVNFTCwgQ0ZHX0NMS0RJVl9DUFUgLSAxKTsKLQlpZiAoQ0ZHX0NMS0RJVl9IU0IpCi0JCWNrc2VsIHw9IFNNX0JJVChIU0JESVYpIHwgU01fQkYoSFNCU0VMLCBDRkdfQ0xLRElWX0hTQiAtIDEpOwotCWlmIChDRkdfQ0xLRElWX1BCQSkKLQkJY2tzZWwgfD0gU01fQklUKFBCQURJVikgfCBTTV9CRihQQkFTRUwsIENGR19DTEtESVZfUEJBIC0gMSk7Ci0JaWYgKENGR19DTEtESVZfUEJCKQotCQlja3NlbCB8PSBTTV9CSVQoUEJCRElWKSB8IFNNX0JGKFBCQlNFTCwgQ0ZHX0NMS0RJVl9QQkIgLSAxKTsKKwlpZiAoQ09ORklHX1NZU19DTEtESVZfQ1BVKQorCQlja3NlbCB8PSBTTV9CSVQoQ1BVRElWKSB8IFNNX0JGKENQVVNFTCwgQ09ORklHX1NZU19DTEtESVZfQ1BVIC0gMSk7CisJaWYgKENPTkZJR19TWVNfQ0xLRElWX0hTQikKKwkJY2tzZWwgfD0gU01fQklUKEhTQkRJVikgfCBTTV9CRihIU0JTRUwsIENPTkZJR19TWVNfQ0xLRElWX0hTQiAtIDEpOworCWlmIChDT05GSUdfU1lTX0NMS0RJVl9QQkEpCisJCWNrc2VsIHw9IFNNX0JJVChQQkFESVYpIHwgU01fQkYoUEJBU0VMLCBDT05GSUdfU1lTX0NMS0RJVl9QQkEgLSAxKTsKKwlpZiAoQ09ORklHX1NZU19DTEtESVZfUEJCKQorCQlja3NlbCB8PSBTTV9CSVQoUEJCRElWKSB8IFNNX0JGKFBCQlNFTCwgQ09ORklHX1NZU19DTEtESVZfUEJCIC0gMSk7CiAJc21fd3JpdGVsKFBNX0NLU0VMLCBja3NlbCk7CiAKICNpZmRlZiBDT05GSUdfUExMCmRpZmYgLS1naXQgYS9jcHUvYXQzMmFwL2F0MzJhcDcwMHgvZ3Bpby5jIGIvY3B1L2F0MzJhcC9hdDMyYXA3MDB4L2dwaW8uYwppbmRleCA1NmJhMmY5Li45MWJiNjM2IDEwMDY0NAotLS0gYS9jcHUvYXQzMmFwL2F0MzJhcDcwMHgvZ3Bpby5jCisrKyBiL2NwdS9hdDMyYXAvYXQzMmFwNzAweC9ncGlvLmMKQEAgLTMzLDggKzMzLDggQEAKICAqLwogdm9pZCBncGlvX2VuYWJsZV9lYmkodm9pZCkKIHsKLSNpZmRlZiBDRkdfSFNEUkFNQwotI2lmbmRlZiBDRkdfU0RSQU1fMTZCSVQKKyNpZmRlZiBDT05GSUdfU1lTX0hTRFJBTUMKKyNpZm5kZWYgQ09ORklHX1NZU19TRFJBTV8xNkJJVAogCWdwaW9fc2VsZWN0X3BlcmlwaF9BKEdQSU9fUElOX1BFMCwgMCk7CiAJZ3Bpb19zZWxlY3RfcGVyaXBoX0EoR1BJT19QSU5fUEUxLCAwKTsKIAlncGlvX3NlbGVjdF9wZXJpcGhfQShHUElPX1BJTl9QRTIsIDApOwpkaWZmIC0tZ2l0IGEvY3B1L2F0MzJhcC9jYWNoZS5jIGIvY3B1L2F0MzJhcC9jYWNoZS5jCmluZGV4IDQxZmI1YWEuLjE2YTA1NjUgMTAwNjQ0Ci0tLSBhL2NwdS9hdDMyYXAvY2FjaGUuYworKysgYi9jcHUvYXQzMmFwL2NhY2hlLmMKQEAgLTI4LDcgKzI4LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHYsIGJlZ2luLCBlbmQsIGxpbmVzejsKIAotCWxpbmVzeiA9IENGR19EQ0FDSEVfTElORVNaOworCWxpbmVzeiA9IENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWjsKIAogCS8qIFlvdSBhc2tlZCBmb3IgaXQsIHlvdSBnb3QgaXQgKi8KIAliZWdpbiA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0ICYgfihsaW5lc3ogLSAxKTsKQEAgLTQ0LDcgKzQ0LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHYsIGJlZ2luLCBlbmQsIGxpbmVzejsKIAotCWxpbmVzeiA9IENGR19EQ0FDSEVfTElORVNaOworCWxpbmVzeiA9IENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWjsKIAogCS8qIFlvdSBhc2tlZCBmb3IgaXQsIHlvdSBnb3QgaXQgKi8KIAliZWdpbiA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0ICYgfihsaW5lc3ogLSAxKTsKQEAgLTU4LDcgKzU4LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHYsIGJlZ2luLCBlbmQsIGxpbmVzejsKIAotCWxpbmVzeiA9IENGR19EQ0FDSEVfTElORVNaOworCWxpbmVzeiA9IENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWjsKIAogCS8qIFlvdSBhc2tlZCBmb3IgaXQsIHlvdSBnb3QgaXQgKi8KIAliZWdpbiA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0ICYgfihsaW5lc3ogLSAxKTsKQEAgLTc0LDcgKzc0LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHYsIGJlZ2luLCBlbmQsIGxpbmVzejsKIAotCWxpbmVzeiA9IENGR19JQ0FDSEVfTElORVNaOworCWxpbmVzeiA9IENPTkZJR19TWVNfSUNBQ0hFX0xJTkVTWjsKIAogCS8qIFlvdSBhc2tlZCBmb3IgaXQsIHlvdSBnb3QgaXQgKi8KIAliZWdpbiA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0ICYgfihsaW5lc3ogLSAxKTsKZGlmZiAtLWdpdCBhL2NwdS9hdDMyYXAvY3B1LmMgYi9jcHUvYXQzMmFwL2NwdS5jCmluZGV4IDFhMTM3MDIuLmY5MmQzZTIgMTAwNjQ0Ci0tLSBhL2NwdS9hdDMyYXAvY3B1LmMKKysrIGIvY3B1L2F0MzJhcC9jcHUuYwpAQCAtMzIsMTIgKzMyLDEyIEBACiAjaW5jbHVkZSAiaHNtYzMuaCIKIAogLyogU2FuaXR5IGNoZWNrcyAqLwotI2lmIChDRkdfQ0xLRElWX0NQVSA+IENGR19DTEtESVZfSFNCKQkJXAotCXx8IChDRkdfQ0xLRElWX0hTQiA+IENGR19DTEtESVZfUEJBKQlcCi0JfHwgKENGR19DTEtESVZfSFNCID4gQ0ZHX0NMS0RJVl9QQkIpCisjaWYgKENPTkZJR19TWVNfQ0xLRElWX0NQVSA+IENPTkZJR19TWVNfQ0xLRElWX0hTQikJCVwKKwl8fCAoQ09ORklHX1NZU19DTEtESVZfSFNCID4gQ09ORklHX1NZU19DTEtESVZfUEJBKQlcCisJfHwgKENPTkZJR19TWVNfQ0xLRElWX0hTQiA+IENPTkZJR19TWVNfQ0xLRElWX1BCQikKICMgZXJyb3IgQ29uc3RyYWludCBmQ1BVID49IGZIU0IgPj0gZlBCe0EsQn0gdmlvbGF0ZWQKICNlbmRpZgotI2lmIGRlZmluZWQoQ09ORklHX1BMTCkgJiYgKChDRkdfUExMMF9NVUwgPCAxKSB8fCAoQ0ZHX1BMTDBfRElWIDwgMSkpCisjaWYgZGVmaW5lZChDT05GSUdfUExMKSAmJiAoKENPTkZJR19TWVNfUExMMF9NVUwgPCAxKSB8fCAoQ09ORklHX1NZU19QTEwwX0RJViA8IDEpKQogIyBlcnJvciBJbnZhbGlkIFBMTCBtdWx0aXBsaWVyIGFuZC9vciBkaXZpZGVyCiAjZW5kaWYKIApAQCAtNDcsNyArNDcsNyBAQAogewogCWV4dGVybiB2b2lkIF9ldmJhKHZvaWQpOwogCi0JZ2QtPmNwdV9oeiA9IENGR19PU0MwX0haOworCWdkLT5jcHVfaHogPSBDT05GSUdfU1lTX09TQzBfSFo7CiAKIAkvKiBUT0RPOiBNb3ZlIHNvbWV3aGVyZSBlbHNlLCBidXQgbmVlZHMgdG8gYmUgcnVuIGJlZm9yZSB3ZQogCSAqIGluY3JlYXNlIHRoZSBjbG9jayBmcmVxdWVuY3kuICovCmRpZmYgLS1naXQgYS9jcHUvYXQzMmFwL2hzZHJhbWMuYyBiL2NwdS9hdDMyYXAvaHNkcmFtYy5jCmluZGV4IDk5MjYxMmIuLmY3NDEyMWMgMTAwNjQ0Ci0tLSBhL2NwdS9hdDMyYXAvaHNkcmFtYy5jCisrKyBiL2NwdS9hdDMyYXAvaHNkcmFtYy5jCkBAIC0yMSw3ICsyMSw3IEBACiAgKi8KICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmZGVmIENGR19IU0RSQU1DCisjaWZkZWYgQ09ORklHX1NZU19IU0RSQU1DCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3NkcmFtLmg+CiAKQEAgLTExNyw0ICsxMTcsNCBAQAogCXJldHVybiBzZHJhbV9zaXplOwogfQogCi0jZW5kaWYgLyogQ0ZHX0hTRFJBTUMgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0hTRFJBTUMgKi8KZGlmZiAtLWdpdCBhL2NwdS9hdDMyYXAvaW50ZXJydXB0cy5jIGIvY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMKaW5kZXggMTYwODM4ZS4uNzVjYzM5ZSAxMDA2NDQKLS0tIGEvY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMKQEAgLTgyLDcgKzgyLDcgQEAKIAl1bnNpZ25lZCBsb25nIGxvbmcgdGlja3MgPSB0OwogCXVuc2lnbmVkIGxvbmcgbG8sIGhpLCBoaV9uZXc7CiAKLQl0aWNrcyA9ICh0aWNrcyAqIGdldF90YmNsaygpKSAvIENGR19IWjsKKwl0aWNrcyA9ICh0aWNrcyAqIGdldF90YmNsaygpKSAvIENPTkZJR19TWVNfSFo7CiAJaGkgPSB0aWNrcyA+PiAzMjsKIAlsbyA9IHRpY2tzICYgMHhmZmZmZmZmZlVMOwogCkBAIC0xMzcsNyArMTM3LDcgQEAKIAogCXN5c3JlZ193cml0ZShDT1VOVCwgMCk7CiAKLQl0bXAgPSAodTY0KUNGR19IWiA8PCAzMjsKKwl0bXAgPSAodTY0KUNPTkZJR19TWVNfSFogPDwgMzI7CiAJdG1wICs9IGdkLT5jcHVfaHogLyAyOwogCWRvX2Rpdih0bXAsIGdkLT5jcHVfaHopOwogCXRiX2ZhY3RvciA9ICh1MzIpdG1wOwpkaWZmIC0tZ2l0IGEvY3B1L2F0MzJhcC9zdGFydC5TIGIvY3B1L2F0MzJhcC9zdGFydC5TCmluZGV4IDkwN2U5YjEuLmQzN2E0NmUgMTAwNjQ0Ci0tLSBhL2NwdS9hdDMyYXAvc3RhcnQuUworKysgYi9jcHUvYXQzMmFwL3N0YXJ0LlMKQEAgLTE4OCw3ICsxODgsNyBAQAogCS5hbGlnbgkyCiAJLnR5cGUJc3BfaW5pdCxAb2JqZWN0CiBzcF9pbml0OgotCS5sb25nCUNGR19JTklUX1NQX0FERFIKKwkubG9uZwlDT05GSUdfU1lTX0lOSVRfU1BfQUREUgogZ290X2luaXQ6CiAJLmxvbmcJM2IgLSBfR0xPQkFMX09GRlNFVF9UQUJMRV8KIApkaWZmIC0tZ2l0IGEvY3B1L2JsYWNrZmluL2ludGVycnVwdHMuYyBiL2NwdS9ibGFja2Zpbi9pbnRlcnJ1cHRzLmMKaW5kZXggODBjNTUwNS4uZDRkZDYzNiAxMDA2NDQKLS0tIGEvY3B1L2JsYWNrZmluL2ludGVycnVwdHMuYworKysgYi9jcHUvYmxhY2tmaW4vaW50ZXJydXB0cy5jCkBAIC00OCw3ICs0OCw3IEBACiB7CiAJdWxvbmcgdGJjbGs7CiAKLQl0YmNsayA9IENGR19IWjsKKwl0YmNsayA9IENPTkZJR19TWVNfSFo7CiAJcmV0dXJuIHRiY2xrOwogfQogCmRpZmYgLS1naXQgYS9jcHUvYmxhY2tmaW4vc3RhcnQuUyBiL2NwdS9ibGFja2Zpbi9zdGFydC5TCmluZGV4IDMwMjEyZTkuLjgzMDMyOTIgMTAwNjQ0Ci0tLSBhL2NwdS9ibGFja2Zpbi9zdGFydC5TCisrKyBiL2NwdS9ibGFja2Zpbi9zdGFydC5TCkBAIC0xNDUsMTIgKzE0NSwxMiBAQAogCXI2ID0gMCAoeCk7CiAJcDEgPSByMDsKIAotCXAyLmwgPSBMTyhDRkdfTU9OSVRPUl9CQVNFKTsKLQlwMi5oID0gSEkoQ0ZHX01PTklUT1JfQkFTRSk7CisJcDIubCA9IExPKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKTsKKwlwMi5oID0gSEkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UpOwogCiAJcDMgPSAweDA0OwotCXA0LmwgPSBMTyhDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKTsKLQlwNC5oID0gSEkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTik7CisJcDQubCA9IExPKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTik7CisJcDQuaCA9IEhJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTik7CiAuTGxvb3AxOgogCXIxID0gW3AxICsrIHAzXTsKIAlbcDIgKysgcDNdID0gcjE7CmRpZmYgLS1naXQgYS9jcHUvYmxhY2tmaW4vdHJhcHMuYyBiL2NwdS9ibGFja2Zpbi90cmFwcy5jCmluZGV4IDQ0NzRmZTUuLjJlYjQ1YjUgMTAwNjQ0Ci0tLSBhL2NwdS9ibGFja2Zpbi90cmFwcy5jCisrKyBiL2NwdS9ibGFja2Zpbi90cmFwcy5jCkBAIC0yMjksOCArMjI5LDggQEAKIAogCWlmICghYWRkcmVzcykKIAkJc3ByaW50ZihidWYsICI8MHglcD4gLyogTWF5YmUgbnVsbCBwb2ludGVyPyAqLyIsIGFkZHJlc3MpOwotCWVsc2UgaWYgKGFkZHJlc3MgPj0gQ0ZHX01PTklUT1JfQkFTRSAmJgotCSAgICAgICAgIGFkZHJlc3MgPCBDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorCWVsc2UgaWYgKGFkZHJlc3MgPj0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgJiYKKwkgICAgICAgICBhZGRyZXNzIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCQlzcHJpbnRmKGJ1ZiwgIjwweCVwPiAvKiBzb21ld2hlcmUgaW4gdS1ib290ICovIiwgYWRkcmVzcyk7CiAJZWxzZQogCQlzcHJpbnRmKGJ1ZiwgIjwweCVwPiAvKiB1bmtub3duIGFkZHJlc3MgKi8iLCBhZGRyZXNzKTsKZGlmZiAtLWdpdCBhL2NwdS9pMzg2L2ludGVycnVwdHMuYyBiL2NwdS9pMzg2L2ludGVycnVwdHMuYwppbmRleCBmMzQwMTE5Li5mNmRiY2NhIDEwMDY0NAotLS0gYS9jcHUvaTM4Ni9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L2kzODYvaW50ZXJydXB0cy5jCkBAIC01MDksNyArNTA5LDcgQEAKIH0KIAogCi0jaWZkZWYgQ0ZHX1JFU0VUX0dFTkVSSUMKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0dFTkVSSUMKIAogdm9pZCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgwKSkpIGdlbmVyYXRlX2dwZih2b2lkKTsKIGFzbSgiLmdsb2JsIGdlbmVyYXRlX2dwZlxuIgpkaWZmIC0tZ2l0IGEvY3B1L2kzODYvc2M1MjAuYyBiL2NwdS9pMzg2L3NjNTIwLmMKaW5kZXggNjQwYjI1NS4uOGJjYjk3OSAxMDA2NDQKLS0tIGEvY3B1L2kzODYvc2M1MjAuYworKysgYi9jcHUvaTM4Ni9zYzUyMC5jCkBAIC0xMTMsNyArMTEzLDcgQEAKIAl3cml0ZV9tbWNyX3dvcmQoU0M1MjBfSEJDVEwsMHgwNCk7ICAgICAgLyogZW5hYmxlIHBvc3RlZC13cml0ZXMgKi8KIAogCi0JaWYgKENGR19TQzUyMF9ISUdIX1NQRUVEKSB7CisJaWYgKENPTkZJR19TWVNfU0M1MjBfSElHSF9TUEVFRCkgewogCQl3cml0ZV9tbWNyX2J5dGUoU0M1MjBfQ1BVQ1RMLCAweDIpOwkvKiBzZXQgaXQgdG8gMTMzIE1IeiBhbmQgd3JpdGUgYmFjayAqLwogCQlnZC0+Y3B1X2NsayA9IDEzMzAwMDAwMDsKIAkJcHJpbnRmKCIjIyBDUFUgU3BlZWQgc2V0IHRvIDEzM01IelxuIik7CkBAIC0xNDUsNyArMTQ1LDcgQEAKIAogCXUzMiBkcmFtX3ByZXNlbnQ9MDsKIAl1MzIgZHJhbV9jdHJsOwotI2lmZGVmIENGR19TRFJBTV9EUkNUTUNUTAorI2lmZGVmIENPTkZJR19TWVNfU0RSQU1fRFJDVE1DVEwKIAkvKiB0aGVzZSBtZW1vcnkgY29udHJvbCByZWdpc3RlcnMgYXJlIHNldCB1cCBpbiB0aGUgYXNzZW1iZXIgcGFydCwKIAkgKiBpbiBzYzUyMF9hc20uUywgZHVyaW5nICdtZW1faW5pdCcuICBJZiB3ZSBtdWNrIHdpdGggdGhlbSBoZXJlLAogCSAqIGFmdGVyIHdlIGFyZSBydW5uaW5nIGEgc3RhY2sgaW4gUkFNLCB3ZSBoYXZlIHRyb3VibGVzLiAgQmVzaWRlcywKQEAgLTE1Niw5ICsxNTYsOSBAQAogI2Vsc2UKIAlpbnQgdmFsOwogCi0JaW50IGNhc19wcmVjaGFyZ2VfZGVsYXkgPSBDRkdfU0RSQU1fUFJFQ0hBUkdFX0RFTEFZOwotCWludCByZWZyZXNoX3JhdGUgICAgICAgID0gQ0ZHX1NEUkFNX1JFRlJFU0hfUkFURTsKLQlpbnQgcmFzX2Nhc19kZWxheSAgICAgICA9IENGR19TRFJBTV9SQVNfQ0FTX0RFTEFZOworCWludCBjYXNfcHJlY2hhcmdlX2RlbGF5ID0gQ09ORklHX1NZU19TRFJBTV9QUkVDSEFSR0VfREVMQVk7CisJaW50IHJlZnJlc2hfcmF0ZSAgICAgICAgPSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfUkFURTsKKwlpbnQgcmFzX2Nhc19kZWxheSAgICAgICA9IENPTkZJR19TWVNfU0RSQU1fUkFTX0NBU19ERUxBWTsKIAogCS8qIHNldCBTRFJBTSBzcGVlZCBoZXJlICovCiAKQEAgLTM5Myw3ICszOTMsNyBAQAogCiAjZW5kaWYKIAotI2lmZGVmIENGR19USU1FUl9TQzUyMAorI2lmZGVmIENPTkZJR19TWVNfVElNRVJfU0M1MjAKIAogCiB2b2lkIHJlc2V0X3RpbWVyKHZvaWQpCmRpZmYgLS1naXQgYS9jcHUvaTM4Ni9zYzUyMF9hc20uUyBiL2NwdS9pMzg2L3NjNTIwX2FzbS5TCmluZGV4IDM0MzIyZWEuLjU5ZWQyYjggMTAwNjQ0Ci0tLSBhL2NwdS9pMzg2L3NjNTIwX2FzbS5TCisrKyBiL2NwdS9pMzg2L3NjNTIwX2FzbS5TCkBAIC00NjAsMjEgKzQ2MCwyMSBAQAogCWluY2wgICAgJWVkaQogCWxvb3AgICAgY2xlYW51cGxwCiAKLSNpZiBkZWZpbmVkIENGR19TRFJBTV9EUkNUTUNUTAorI2lmIGRlZmluZWQgQ09ORklHX1NZU19TRFJBTV9EUkNUTUNUTAogCS8qIGp1c3QgaGF2ZSB5b3VyIGhhcmR3YXJlIGRlc2luZ2VyIF9HSVZFXyB5b3Ugd2hhdCB5b3UgbmVlZCBoZXJlISAqLwogCW1vdmwgICAgJERSQ1RNQ1RMLCAlZWRpCi0JbW92YiAgICAkQ0ZHX1NEUkFNX0RSQ1RNQ1RMLCVhbAorCW1vdmIgICAgJENPTkZJR19TWVNfU0RSQU1fRFJDVE1DVEwsJWFsCiAJbW92YiAgICAoJWVkaSksICVhbAogI2Vsc2UKLSNpZiBkZWZpbmVkKENGR19TRFJBTV9DQVNfTEFURU5DWV8yVCkgfHwgZGVmaW5lZChDRkdfU0RSQU1fQ0FTX0xBVEVOQ1lfM1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NEUkFNX0NBU19MQVRFTkNZXzJUKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfM1QpCiAJLyogc2V0IHRoZSBDQVMgbGF0ZW5jeSBub3cgc2luY2UgaXQgaXMgaGFyZCB0byBkbwogCSAqIHdoZW4gd2UgcnVuIGZyb20gdGhlIFJBTSAqLwogCW1vdmwgICAgJERSQ1RNQ1RMLCAlZWRpICAgICAgICAgIC8qIERSQU0gdGltaW5nIHJlZ2lzdGVyICovCiAJbW92YiAgICAoJWVkaSksICVhbAotI2lmZGVmIENGR19TRFJBTV9DQVNfTEFURU5DWV8yVAorI2lmZGVmIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfMlQKIAlhbmRiICAgICQweGVmLCAlYWwKICNlbmRpZgotI2lmZGVmIENGR19TRFJBTV9DQVNfTEFURU5DWV8zVAorI2lmZGVmIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfM1QKIAlvcmIgICAgICQweDEwLCAlYWwKICNlbmRpZgogCW1vdmIgICAgJWFsLCAoJWVkaSkKQEAgLTU0MCw3ICs1NDAsNyBAQAogZG9uZToKIAltb3ZsCSVlYngsICVlYXgKIAotI2lmIENGR19TRFJBTV9FQ0NfRU5BQkxFCisjaWYgQ09ORklHX1NZU19TRFJBTV9FQ0NfRU5BQkxFCiAJLyogQSBub21pbmFsIG1lbW9yeSB0ZXN0OiBqdXN0IGEgYnl0ZSBhdCBlYWNoIGFkZHJlc3MgbGluZSAqLwogCW1vdmwgICAgJWVheCwgJWVjeAogCXNocmwgICAgJDB4MSwgJWVjeApkaWZmIC0tZ2l0IGEvY3B1L2kzODYvc3RhcnQuUyBiL2NwdS9pMzg2L3N0YXJ0LlMKaW5kZXggMjY0YWMwOS4uZjVhZDgzMyAxMDA2NDQKLS0tIGEvY3B1L2kzODYvc3RhcnQuUworKysgYi9jcHUvaTM4Ni9zdGFydC5TCkBAIC02Nyw3ICs2Nyw3IEBACiAJICogKHdlIG5lZWQgYXRsZWFzdCBic3Mgc3RhcnQrYnNzIHNpemUrc3RhY2sgc2l6ZSkgKi8KIAltb3ZsCSRfaTM4NmJvb3RfYnNzX3N0YXJ0LCAlZWN4ICAgICAgICAvKiBCU1Mgc3RhcnQgKi8KIAlhZGRsCSRfaTM4NmJvb3RfYnNzX3NpemUsICVlY3ggICAgICAgICAvKiBCU1Mgc2l6ZSAqLwotCWFkZGwJJENGR19TVEFDS19TSVpFLCAlZWN4CisJYWRkbAkkQ09ORklHX1NZU19TVEFDS19TSVpFLCAlZWN4CiAJY21wbAklZWN4LCAlZWF4CiAJamFlCW1lbV9vawogCkBAIC04OCw3ICs4OCw3IEBACiAJLyogY3JlYXRlIGEgc3RhY2sgYWZ0ZXIgdGhlIGJzcyAqLwogCW1vdmwgICAgJF9pMzg2Ym9vdF9ic3Nfc3RhcnQsICVlYXgKIAlhZGRsCSRfaTM4NmJvb3RfYnNzX3NpemUsICVlYXgKLQlhZGRsCSRDRkdfU1RBQ0tfU0laRSwgJWVheAorCWFkZGwJJENPTkZJR19TWVNfU1RBQ0tfU0laRSwgJWVheAogCW1vdmwgICAgJWVheCwgJWVzcAogCiAJcHVzaGwJJDAKZGlmZiAtLWdpdCBhL2NwdS9pMzg2L3RpbWVyLmMgYi9jcHUvaTM4Ni90aW1lci5jCmluZGV4IDQ4NmQ5MjcuLjQ2ZGIyM2YgMTAwNjQ0Ci0tLSBhL2NwdS9pMzg2L3RpbWVyLmMKKysrIGIvY3B1L2kzODYvdGltZXIuYwpAQCAtNzIsOSArNzIsOSBAQAogfQogCiAKLSNpZmRlZiBDRkdfVElNRVJfR0VORVJJQworI2lmZGVmIENPTkZJR19TWVNfVElNRVJfR0VORVJJQwogCi0vKiB0aGUgdW5pdCBmb3IgdGhlc2UgaXMgQ0ZHX0haICovCisvKiB0aGUgdW5pdCBmb3IgdGhlc2UgaXMgQ09ORklHX1NZU19IWiAqLwogCiAvKiBGaXhNZTogaW1wbGVtZW50IHRoZXNlICovCiB2b2lkIHJlc2V0X3RpbWVyICh2b2lkKQpkaWZmIC0tZ2l0IGEvY3B1L2l4cC9jcHUuYyBiL2NwdS9peHAvY3B1LmMKaW5kZXggMmM3ZDVhMC4uNDAyMTg4ZSAxMDA2NDQKLS0tIGEvY3B1L2l4cC9jcHUuYworKysgYi9jcHUvaXhwL2NwdS5jCkBAIC04MSw3ICs4MSw3IEBACiAJICogc2V0dXAgdXAgc3RhY2tzIGlmIG5lY2Vzc2FyeQogCSAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCi0JSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDRkdfTUFMTE9DX0xFTiAtIENGR19HQkxfREFUQV9TSVpFIC0gNDsKKwlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDQ7CiAJRklRX1NUQUNLX1NUQVJUID0gSVJRX1NUQUNLX1NUQVJUIC0gQ09ORklHX1NUQUNLU0laRV9JUlE7CiAjZW5kaWYKIApAQCAtMTk4LDcgKzE5OCw3IEBACiAKIHZvaWQgYm9vdGNvdW50X3N0b3JlICh1bG9uZyBhKQogewotCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPSAodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX0JPT1RDT1VOVF9BRERSKTsKKwl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0gKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfQk9PVENPVU5UX0FERFIpOwogCiAJc2F2ZV9hZGRyWzBdID0gYTsKIAlzYXZlX2FkZHJbMV0gPSBCT09UQ09VTlRfTUFHSUM7CkBAIC0yMDYsNyArMjA2LDcgQEAKIAogdWxvbmcgYm9vdGNvdW50X2xvYWQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9ICh2b2xhdGlsZSB1bG9uZyAqKShDRkdfQk9PVENPVU5UX0FERFIpOworCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPSAodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19CT09UQ09VTlRfQUREUik7CiAKIAlpZiAoc2F2ZV9hZGRyWzFdICE9IEJPT1RDT1VOVF9NQUdJQykKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvaXhwL2ludGVycnVwdHMuYyBiL2NwdS9peHAvaW50ZXJydXB0cy5jCmluZGV4IDg0ZmU5MzcuLjYyMWYzMWIgMTAwNjQ0Ci0tLSBhL2NwdS9peHAvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9peHAvaW50ZXJydXB0cy5jCkBAIC00MCw4ICs0MCw4IEBACiAgKi8KIAogI2RlZmluZSBGUkVRCQk2NjY2NjY2NgotI2RlZmluZSBDTE9DS19USUNLX1JBVEUJKCgoRlJFUSAvIENGR19IWiAmIH5JWFA0MjVfT1NUX1JFTE9BRF9NQVNLKSArIDEpICogQ0ZHX0haKQotI2RlZmluZSBMQVRDSAkJKChDTE9DS19USUNLX1JBVEUgKyBDRkdfSFovMikgLyBDRkdfSFopCS8qIEZvciBkaXZpZGVyICovCisjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkoKChGUkVRIC8gQ09ORklHX1NZU19IWiAmIH5JWFA0MjVfT1NUX1JFTE9BRF9NQVNLKSArIDEpICogQ09ORklHX1NZU19IWikKKyNkZWZpbmUgTEFUQ0gJCSgoQ0xPQ0tfVElDS19SQVRFICsgQ09ORklHX1NZU19IWi8yKSAvIENPTkZJR19TWVNfSFopCS8qIEZvciBkaXZpZGVyICovCiAKIHN0cnVjdCBfaXJxX2hhbmRsZXIgewogCXZvaWQgICAgICAgICAgICAgICAgKm1fZGF0YTsKZGlmZiAtLWdpdCBhL2NwdS9peHAvbnBlL2luY2x1ZGUvbnBlLmggYi9jcHUvaXhwL25wZS9pbmNsdWRlL25wZS5oCmluZGV4IGU1MzQ1OGQuLjNkNmY3MjcgMTAwNjQ0Ci0tLSBhL2NwdS9peHAvbnBlL2luY2x1ZGUvbnBlLmgKKysrIGIvY3B1L2l4cC9ucGUvaW5jbHVkZS9ucGUuaApAQCAtMjcsMTAgKzI3LDEwIEBACiAvKgogICogZGVmaW5lcy4uLgogICovCi0jZGVmaW5lIENGR19OUEVfTlVNUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX05QRV9OVU1TCQkxCiAjaWZkZWYgQ09ORklHX0hBU19FVEgxCi0jdW5kZWYgQ0ZHX05QRV9OVU1TCi0jZGVmaW5lIENGR19OUEVfTlVNUwkJMgorI3VuZGVmIENPTkZJR19TWVNfTlBFX05VTVMKKyNkZWZpbmUgQ09ORklHX1NZU19OUEVfTlVNUwkJMgogI2VuZGlmCiAKICNkZWZpbmUgTlBFX05VTV9QT1JUUwkJMwpkaWZmIC0tZ2l0IGEvY3B1L2l4cC9ucGUvbnBlLmMgYi9jcHUvaXhwL25wZS9ucGUuYwppbmRleCA4OTIwOTZiLi5iZDc3ZmVkIDEwMDY0NAotLS0gYS9jcHUvaXhwL25wZS9ucGUuYworKysgYi9jcHUvaXhwL25wZS9ucGUuYwpAQCAtNTEsNyArNTEsNyBAQAogc3RhdGljIGludCBucGVfdXNlZFtOUEVfTlVNX1BPUlRTXTsKIAogLyogQSBsaXR0bGUgZXh0cmEgc28gd2UgY2FuIGFsaWduIHRvIGNhY2hlbGluZS4gKi8KLXN0YXRpYyB1OCBucGVfYWxsb2NfcG9vbFtOUEVfTUVNX1BPT0xfU0laRSArIENGR19DQUNIRUxJTkVfU0laRSAtIDFdOworc3RhdGljIHU4IG5wZV9hbGxvY19wb29sW05QRV9NRU1fUE9PTF9TSVpFICsgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAtIDFdOwogc3RhdGljIHU4ICpucGVfYWxsb2NfZW5kOwogc3RhdGljIHU4ICpucGVfYWxsb2NfZnJlZTsKIApAQCAtNjAsNyArNjAsNyBAQAogCXN0YXRpYyBpbnQgY291bnQgPSAwOwogCXZvaWQgKnAgPSBOVUxMOwogCi0Jc2l6ZSA9IChzaXplICsgKENGR19DQUNIRUxJTkVfU0laRS0xKSkgJiB+KENGR19DQUNIRUxJTkVfU0laRS0xKTsKKwlzaXplID0gKHNpemUgKyAoQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRS0xKSkgJiB+KENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUtMSk7CiAJY291bnQrKzsKIAogCWlmICgobnBlX2FsbG9jX2ZyZWUgKyBzaXplKSA8IG5wZV9hbGxvY19lbmQpIHsKQEAgLTM5OSw3ICszOTksNyBAQAogCiAJbnBlX2FsbG9jX2VuZCA9IG5wZV9hbGxvY19wb29sICsgc2l6ZW9mKG5wZV9hbGxvY19wb29sKTsKIAlucGVfYWxsb2NfZnJlZSA9ICh1OCAqKSgoKHVuc2lnbmVkKW5wZV9hbGxvY19wb29sICsKLQkJCQkgQ0ZHX0NBQ0hFTElORV9TSVpFIC0gMSkgJiB+KENGR19DQUNIRUxJTkVfU0laRSAtIDEpKTsKKwkJCQkgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAtIDEpICYgfihDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFIC0gMSkpOwogCiAJLyogaW5pdGlhbGl6ZSBtYnVmIHBvb2wgKi8KIAlpbml0X3J4X21idWZzKHBfbnBlKTsKQEAgLTU2OCw3ICs1NjgsNyBAQAogCWludCBldGhfbnVtID0gMDsKIAlzdHJ1Y3QgbnBlICpwX25wZSA9IE5VTEw7CiAKLQlmb3IgKGV0aF9udW0gPSAwOyBldGhfbnVtIDwgQ0ZHX05QRV9OVU1TOyBldGhfbnVtKyspIHsKKwlmb3IgKGV0aF9udW0gPSAwOyBldGhfbnVtIDwgQ09ORklHX1NZU19OUEVfTlVNUzsgZXRoX251bSsrKSB7CiAKIAkJLyogU2VlIGlmIHdlIGNhbiBhY3R1YWxseSBicmluZyB1cCB0aGUgaW50ZXJmYWNlLCBvdGhlcndpc2UsIHNraXAgaXQgKi8KIAkJc3dpdGNoIChldGhfbnVtKSB7CkBAIC02NzMsOCArNjczLDggQEAKIAogCQkJbnBlX2FsbG9jX2VuZCA9IG5wZV9hbGxvY19wb29sICsgc2l6ZW9mKG5wZV9hbGxvY19wb29sKTsKIAkJCW5wZV9hbGxvY19mcmVlID0gKHU4ICopKCgodW5zaWduZWQpbnBlX2FsbG9jX3Bvb2wgKwotCQkJCQkJIENGR19DQUNIRUxJTkVfU0laRSAtIDEpCi0JCQkJCQkmIH4oQ0ZHX0NBQ0hFTElORV9TSVpFIC0gMSkpOworCQkJCQkJIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgLSAxKQorCQkJCQkJJiB+KENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgLSAxKSk7CiAKIAkJCWlmICghbnBlX2Nzcl9sb2FkKCkpCiAJCQkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvaXhwL3NlcmlhbC5jIGIvY3B1L2l4cC9zZXJpYWwuYwppbmRleCA0NTQ5NjMxLi5kZDI2YWY0IDEwMDY0NAotLS0gYS9jcHUvaXhwL3NlcmlhbC5jCisrKyBiL2NwdS9peHAvc2VyaWFsLmMKQEAgLTQzLDcgKzQzLDcgQEAKIHZvaWQgc2VyaWFsX3NldGJyZyAodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgcXVvdCA9IDA7Ci0JaW50IHVhcnQgPSBDRkdfSVhQNDI1X0NPTlNPTEU7CisJaW50IHVhcnQgPSBDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFOwogCiAJaWYgKChnZC0+YmF1ZHJhdGUgPD0gU0VSSUFMX0NMT0NLKSAmJiAoU0VSSUFMX0NMT0NLICUgZ2QtPmJhdWRyYXRlID09IDApKQogCQlxdW90ID0gU0VSSUFMX0NMT0NLIC8gZ2QtPmJhdWRyYXRlOwpAQCAtODUsOSArODUsOSBAQAogdm9pZCBzZXJpYWxfcHV0YyAoY29uc3QgY2hhciBjKQogewogCS8qIHdhaXQgZm9yIHJvb20gaW4gdGhlIHR4IEZJRk8gb24gVUFSVCAqLwotCXdoaWxlICgoTFNSKENGR19JWFA0MjVfQ09OU09MRSkgJiBMU1JfVEVNVCkgPT0gMCk7CisJd2hpbGUgKChMU1IoQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRSkgJiBMU1JfVEVNVCkgPT0gMCk7CiAKLQlUSFIoQ0ZHX0lYUDQyNV9DT05TT0xFKSA9IGM7CisJVEhSKENPTkZJR19TWVNfSVhQNDI1X0NPTlNPTEUpID0gYzsKIAogCS8qIElmIFxuLCBhbHNvIGRvIFxyICovCiAJaWYgKGMgPT0gJ1xuJykKQEAgLTEwMSw3ICsxMDEsNyBAQAogICovCiBpbnQgc2VyaWFsX3RzdGMgKHZvaWQpCiB7Ci0JcmV0dXJuIExTUihDRkdfSVhQNDI1X0NPTlNPTEUpICYgTFNSX0RSOworCXJldHVybiBMU1IoQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRSkgJiBMU1JfRFI7CiB9CiAKIC8qCkBAIC0xMTEsOSArMTExLDkgQEAKICAqLwogaW50IHNlcmlhbF9nZXRjICh2b2lkKQogewotCXdoaWxlICghKExTUihDRkdfSVhQNDI1X0NPTlNPTEUpICYgTFNSX0RSKSk7CisJd2hpbGUgKCEoTFNSKENPTkZJR19TWVNfSVhQNDI1X0NPTlNPTEUpICYgTFNSX0RSKSk7CiAKLQlyZXR1cm4gKGNoYXIpIFJCUihDRkdfSVhQNDI1X0NPTlNPTEUpICYgMHhmZjsKKwlyZXR1cm4gKGNoYXIpIFJCUihDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFKSAmIDB4ZmY7CiB9CiAKIHZvaWQKZGlmZiAtLWdpdCBhL2NwdS9peHAvc3RhcnQuUyBiL2NwdS9peHAvc3RhcnQuUwppbmRleCBkNGM4ZTMzLi4xOTZiYTVkIDEwMDY0NAotLS0gYS9jcHUvaXhwL3N0YXJ0LlMKKysrIGIvY3B1L2l4cC9zdGFydC5TCkBAIC0xNTQsNyArMTU0LDcgQEAKIAlDUFdBSVQJcjAKIAogCS8qIHNldCBFWFAgQ1MwIHRvIHRoZSBvcHRpbXVtIHRpbWluZyAqLwotCWxkcglyMSwgPUNGR19FWFBfQ1MwCisJbGRyCXIxLCA9Q09ORklHX1NZU19FWFBfQ1MwCiAJbGRyICAgICByMiwgPUlYUDQyNV9FWFBfQ1MwCiAJc3RyICAgICByMSwgW3IyXQogCkBAIC0xNjUsNyArMTY1LDcgQEAKIAlvcnIgICAgIHIxLCByMSwgIzB4ODAwMDAwMDAKIAlzdHIgICAgIHIxLCBbcjJdCiAjZW5kaWYKLQltb3YJcjEsICNDRkdfU0RSX0NPTkZJRworCW1vdglyMSwgI0NPTkZJR19TWVNfU0RSX0NPTkZJRwogCWxkciAgICAgcjIsID1JWFA0MjVfU0RSX0NPTkZJRwogCXN0ciAgICAgcjEsIFtyMl0KIApAQCAtMTgxLDcgKzE4MSw3IEBACiAJREVMQVlfRk9SIDB4NDAwMCwgcjAKIAogCS8qIHNldCBTRFJBTSBpbnRlcm5hbCByZWZyZXNoIHZhbCAqLwotCWxkcglyMSwgPUNGR19TRFJBTV9SRUZSRVNIX0NOVAorCWxkcglyMSwgPUNPTkZJR19TWVNfU0RSQU1fUkVGUkVTSF9DTlQKIAlzdHIgICAgIHIxLCBbcjNdCiAJREVMQVlfRk9SIDB4NDAwMCwgcjAKIApAQCAtMTk5LDcgKzE5OSw3IEBACiAJYm5lCTExMWIKIAogCS8qIHNldCBtb2RlIHJlZ2lzdGVyIGluIHNkcmFtICovCi0JbW92CXIxLCAjQ0ZHX1NEUl9NT0RFX0NPTkZJRworCW1vdglyMSwgI0NPTkZJR19TWVNfU0RSX01PREVfQ09ORklHCiAJc3RyCXIxLCBbcjRdCiAJREVMQVlfRk9SIDB4NDAwMCwgcjAKIApAQCAtMjExLDcgKzIxMSw3IEBACiAJLyogY29weSAqLwogCW1vdiAgICAgcjAsICMwCiAJbW92ICAgICByNCwgcjAKLQlhZGQgICAgIHIyLCByMCwgI0NGR19NT05JVE9SX0xFTgorCWFkZCAgICAgcjIsIHIwLCAjQ09ORklHX1NZU19NT05JVE9SX0xFTgogCW1vdiAgICAgcjEsICMweDEwMDAwMDAwCiAJbW92ICAgICByNSwgcjEKIApAQCAtMjgzLDggKzI4Myw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKIAlzdWIJcjAsIHIwLCAjKENPTkZJR19TVEFDS1NJWkVfSVJRK0NPTkZJR19TVEFDS1NJWkVfRklRKQogI2VuZGlmCkBAIC0zNDUsOCArMzQ1LDggQEAKIAlhZGQJcjgsIHNwLCAjU19QQwogCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjIsIHIyLCAjKENGR19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjaworCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJbGRtaWEJcjIsIHtyMiAtIHI0fQkJCS8qIGdldCBwYywgY3Bzciwgb2xkX3IwCSAgICAqLwogCWFkZAlyMCwgc3AsICNTX0ZSQU1FX1NJWkUJCS8qIHJlc3RvcmUgc3BfU1ZDCSAgICAqLwogCkBAIC0zODIsOCArMzgyLDggQEAKIAogCS5tYWNybyBnZXRfYmFkX3N0YWNrCiAJbGRyCXIxMywgX2FybWJvb3Rfc3RhcnQJCUAgc2V0dXAgb3VyIG1vZGUgc3RhY2sKLQlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjaworCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKIAogCXN0cglsciwgW3IxM10JCQlAIHNhdmUgY2FsbGVyIGxyIC8gc3BzcgogCW1ycwlsciwgc3BzcgpkaWZmIC0tZ2l0IGEvY3B1L2l4cC90aW1lci5jIGIvY3B1L2l4cC90aW1lci5jCmluZGV4IDkyMGYzNGUuLjA5ZDhhZDUgMTAwNjQ0Ci0tLSBhL2NwdS9peHAvdGltZXIuYworKysgYi9jcHUvaXhwL3RpbWVyLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAkgKiBUaGlzIGZ1bmN0aW9uIGhhcyBhIG1heCB1c2VjLCBidXQgc2luY2UgaXQgaXMgY2FsbGVkIGZyb20gdWRlbGF5CiAJICogd2Ugc2hvdWxkIG5vdCBoYXZlIHRvIHdvcnJ5Li4uIGJlIGhhcHB5CiAJICovCi0JdW5zaWduZWQgbG9uZyB1c2VjcyA9IENGR19IWi8xMDAwMDAwTCAmIH5JWFA0MjVfT1NUX1JFTE9BRF9NQVNLOworCXVuc2lnbmVkIGxvbmcgdXNlY3MgPSBDT05GSUdfU1lTX0haLzEwMDAwMDBMICYgfklYUDQyNV9PU1RfUkVMT0FEX01BU0s7CiAKIAkqSVhQNDI1X09TU1QgPSBJWFA0MjVfT1NTVF9USU1FUl8xX1BFTkQ7CiAJdXNlY3MgfD0gSVhQNDI1X09TVF9PTkVfU0hPVCB8IElYUDQyNV9PU1RfRU5BQkxFOwpkaWZmIC0tZ2l0IGEvY3B1L2xlb24yL2ludGVycnVwdHMuYyBiL2NwdS9sZW9uMi9pbnRlcnJ1cHRzLmMKaW5kZXggMzViMzc1Yy4uOWIwZGE5NiAxMDA2NDQKLS0tIGEvY3B1L2xlb24yL2ludGVycnVwdHMuYworKysgYi9jcHUvbGVvbjIvaW50ZXJydXB0cy5jCkBAIC05OCw4ICs5OCw4IEBACiB2b2lkIGhhbmRsZXJfaXJxKGludCBpcnEsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCWlmIChpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyKSB7Ci0JCWlmICgoKHVuc2lnbmVkIGludClpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyID4gQ0ZHX1JBTV9FTkQpIHx8Ci0JCSAgICAoKHVuc2lnbmVkIGludClpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyIDwgQ0ZHX1JBTV9CQVNFKQorCQlpZiAoKCh1bnNpZ25lZCBpbnQpaXJxX2hhbmRsZXJzW2lycV0uaGFuZGxlciA+IENPTkZJR19TWVNfUkFNX0VORCkgfHwKKwkJICAgICgodW5zaWduZWQgaW50KWlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIgPCBDT05GSUdfU1lTX1JBTV9CQVNFKQogCQkgICAgKSB7CiAJCQlwcmludGYoImhhbmRsZXJfaXJxOiBiYWQgaGFuZGxlcjogJXgsIGlycSBudW1iZXIgJWRcbiIsCiAJCQkgICAgICAgKHVuc2lnbmVkIGludClpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyLCBpcnEpOwpAQCAtMTYzLDggKzE2Myw4IEBACiAJCXByaW50ZigiaXJxX2luc3RhbGxfaGFuZGxlcjogMHglMDhseCByZXBsYWNpbmcgMHglMDhseFxuIiwKIAkJICAgICAgICh1bG9uZykgaGFuZGxlciwgKHVsb25nKSBpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyKTsKIAotCWlmICgoKHVuc2lnbmVkIGludCloYW5kbGVyID4gQ0ZHX1JBTV9FTkQpIHx8Ci0JICAgICgodW5zaWduZWQgaW50KWhhbmRsZXIgPCBDRkdfUkFNX0JBU0UpCisJaWYgKCgodW5zaWduZWQgaW50KWhhbmRsZXIgPiBDT05GSUdfU1lTX1JBTV9FTkQpIHx8CisJICAgICgodW5zaWduZWQgaW50KWhhbmRsZXIgPCBDT05GSUdfU1lTX1JBTV9CQVNFKQogCSAgICApIHsKIAkJcHJpbnRmKCJpcnFfaW5zdGFsbF9oYW5kbGVyOiBiYWQgaGFuZGxlcjogJXgsIGlycSBudW1iZXIgJWRcbiIsCiAJCSAgICAgICAodW5zaWduZWQgaW50KWhhbmRsZXIsIGlycSk7CmRpZmYgLS1naXQgYS9jcHUvbGVvbjIvcHJvbS5jIGIvY3B1L2xlb24yL3Byb20uYwppbmRleCBiMDMxOTk1Li4xYTZjN2Y3IDEwMDY0NAotLS0gYS9jcHUvbGVvbjIvcHJvbS5jCisrKyBiL2NwdS9sZW9uMi9wcm9tLmMKQEAgLTQ1LDE0ICs0NSwxNCBAQAogLyogZm9yIF9fdmEgKi8KIGV4dGVybiBpbnQgX19wcm9tX3N0YXJ0OwogI2RlZmluZSBQQUdFX09GRlNFVCAweGYwMDAwMDAwCi0jZGVmaW5lIHBoeXNfYmFzZSBDRkdfU0RSQU1fQkFTRQorI2RlZmluZSBwaHlzX2Jhc2UgQ09ORklHX1NZU19TRFJBTV9CQVNFCiAjZGVmaW5lIFBST01fT0ZGUyA4MTkyCiAjZGVmaW5lIFBST01fU0laRV9NQVNLIChQUk9NX09GRlMtMSkKICNkZWZpbmUgX192YSh4KSAoIFwKIAkodm9pZCAqKSggKCh1bnNpZ25lZCBsb25nKSh4KSktUFJPTV9PRkZTKyBcCi0JKENGR19QUk9NX09GRlNFVC1waHlzX2Jhc2UpK1BBR0VfT0ZGU0VULVRFWFRfQkFTRSApIFwKKwkoQ09ORklHX1NZU19QUk9NX09GRlNFVC1waHlzX2Jhc2UpK1BBR0VfT0ZGU0VULVRFWFRfQkFTRSApIFwKIAkpCi0jZGVmaW5lIF9fcGh5KHgpICgodm9pZCAqKSgoKHVuc2lnbmVkIGxvbmcpKHgpKS1QUk9NX09GRlMrQ0ZHX1BST01fT0ZGU0VULVRFWFRfQkFTRSkpCisjZGVmaW5lIF9fcGh5KHgpICgodm9pZCAqKSgoKHVuc2lnbmVkIGxvbmcpKHgpKS1QUk9NX09GRlMrQ09ORklHX1NZU19QUk9NX09GRlNFVC1URVhUX0JBU0UpKQogCiBzdHJ1Y3QgcHJvcGVydHkgewogCWNoYXIgKm5hbWU7CkBAIC01NDAsMTMgKzU0MCwxMyBAQAogCV9fdmEoJnNwaS50b3RwaHlzKSwKIAl7CiAJIE5VTEwsCi0JIChjaGFyICopQ0ZHX1NEUkFNX0JBU0UsCisJIChjaGFyICopQ09ORklHX1NZU19TRFJBTV9CQVNFLAogCSAwLAogCSB9LAogCV9fdmEoJnNwaS5hdmFpbCksCiAJewogCSBOVUxMLAotCSAoY2hhciAqKUNGR19TRFJBTV9CQVNFLAorCSAoY2hhciAqKUNPTkZJR19TWVNfU0RSQU1fQkFTRSwKIAkgMCwKIAkgfSwKIAlOVUxMLAkJCS8qIHByb21tYXBfcCAqLwpAQCAtNjU0LDcgKzY1NCw3IEBACiAKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9Ci0JICAgICh2b2lkICopKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKHZvaWQgKikoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCXVuc2lnbmVkIGludCAqc3JtbXVfY3R4X3RhYmxlOwogCkBAIC03MDcsNyArNzA3LDcgQEAKIAlzcm1tdV9zZXRfbW11cmVnKDApOwogCiAJLyogSGFyZGNvZGVkIHN0YXJ0IGFkZHJlc3MgKi8KLQlyZXNldCA9IENGR19NT05JVE9SX0JBU0U7CisJcmVzZXQgPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRTsKIAogCS8qIGZsdXNoIGRhdGEgY2FjaGUgKi8KIAlzcGFyY19kY2FjaGVfZmx1c2hfYWxsKCk7CkBAIC03NjIsNyArNzYyLDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9Ci0JICAgICh2b2lkICopKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKHZvaWQgKikoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCS8qIGNvbnZlcnQgaW50byB2aXJ0dWFsIGFkZHJlc3MgKi8KIAlwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQpAQCAtNzc3LDcgKzc3Nyw3IEBACiB7CiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCi0JICAgIChDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgIChDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCXBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCkBAIC03OTIsNyArNzkyLDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKLQkgICAgKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAKIAkvKiBjb252ZXJ0IGludG8gdmlydHVhbCBhZGRyZXNzICovCiAJcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKQEAgLTgxMSw3ICs4MTEsNyBAQAogewogCS8qIGdldCBwaHlzaWNhbCBhZGRyZXNzICovCiAJc3RydWN0IGxlb25fcHJvbV9pbmZvICpwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQotCSAgICAoQ0ZHX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOworCSAgICAoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCS8qIGNvbnZlcnQgaW50byB2aXJ0dWFsIGFkZHJlc3MgKi8KIAlwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQpAQCAtODI3LDcgKzgyNyw3IEBACiB7CiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCi0JICAgIChDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgIChDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCXBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCkBAIC04NTAsNyArODUwLDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKLQkgICAgKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAJc3RydWN0IHByb3BlcnR5ICpwcm9wOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwpAQCAtOTA2LDcgKzkwNiw3IEBACiAJcHNwaS0+ZnJlcV9raHogPSBDT05GSUdfU1lTX0NMS19GUkVRIC8gMTAwMDsKIAogCS8qIFNldCBBdmFpbGFibGUgbWFpbiBtZW1vcnkgc2l6ZSAqLwotCXBzcGktPnRvdHBoeXMubnVtX2J5dGVzID0gQ0ZHX1BST01fT0ZGU0VUIC0gQ0ZHX1NEUkFNX0JBU0U7CisJcHNwaS0+dG90cGh5cy5udW1fYnl0ZXMgPSBDT05GSUdfU1lTX1BST01fT0ZGU0VUIC0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCXBzcGktPmF2YWlsLm51bV9ieXRlcyA9IHBzcGktPnRvdHBoeXMubnVtX2J5dGVzOwogCiAjdW5kZWYgbm9kZXMKQEAgLTk1MSw3ICs5NTEsNyBAQAogaW50IHByb21faW5pdCh2b2lkKQogewogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9ICh2b2lkICopCi0JICAgICgoKCh1bnNpZ25lZCBpbnQpJnNwaSkgJiBQUk9NX1NJWkVfTUFTSykgKyBDRkdfUFJPTV9PRkZTRVQpOworCSAgICAoKCgodW5zaWduZWQgaW50KSZzcGkpICYgUFJPTV9TSVpFX01BU0spICsgQ09ORklHX1NZU19QUk9NX09GRlNFVCk7CiAKIAkvKiBkaXNhYmxlIG1tdSAqLwogCXNybW11X3NldF9tbXVyZWcoMHgwMDAwMDAwMCk7CkBAIC05NzcsNyArOTc3LDcgQEAKIAkvKiBpZiBubyBib290YXJncyBzZXQsIHNraXAgY29weWluZyA9PT4gZGVmYXVsdCBib290bGluZSAqLwogCWlmIChib290YXJncyAmJiAoKmJvb3RhcmdzICE9ICdcMCcpKSB7CiAJCXBzcGkgPSAodm9pZCAqKSgoKCh1bnNpZ25lZCBpbnQpJnNwaSkgJiBQUk9NX1NJWkVfTUFTSykgKwotCQkJCUNGR19QUk9NX09GRlNFVCk7CisJCQkJQ09ORklHX1NZU19QUk9NX09GRlNFVCk7CiAJCXNyYyA9IGJvb3RhcmdzOwogCQlkc3QgPSAmcHNwaS0+YXJnWzBdOwogCQlsZWZ0ID0gMjU1OwkvKiBtYXggbGVuICovCkBAIC05OTQsNyArOTk0LDcgQEAKIHsKIAlzcGFyY19zcm1tdV9zZXR1cCAqcHNybW11X3RhYmxlcyA9ICh2b2lkICopCiAJICAgICgoKCh1bnNpZ25lZCBpbnQpJnNybW11X3RhYmxlcykgJiBQUk9NX1NJWkVfTUFTSykgKwotCSAgICAgQ0ZHX1BST01fT0ZGU0VUKTsKKwkgICAgIENPTkZJR19TWVNfUFJPTV9PRkZTRVQpOwogCiAJLyogTWFrZSBjb250ZXh0IDAgKGtlcm5lbCdzIGNvbnRleHQpIHBvaW50CiAJICogdG8gb3VyIHByZXBhcmVkIG1lbW9yeSBtYXBwaW5nCkBAIC0xMDEwLDIxICsxMDEwLDIxIEBACiAjZGVmaW5lIFBURSAyCiAjZGVmaW5lIEFDQ19TVV9BTEwgMHgxYwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGYwXSA9Ci0JICAgIChDRkdfU0RSQU1fQkFTRSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGYxXSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAlwc3JtbXVfdGFibGVzLT5wZ2RfdGFibGVbMHhmMl0gPQotCSAgICAoKENGR19TRFJBTV9CQVNFICsgMHgyMDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgyMDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjNdID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4MzAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MzAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGY0XSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAlwc3JtbXVfdGFibGVzLT5wZ2RfdGFibGVbMHhmNV0gPQotCSAgICAoKENGR19TRFJBTV9CQVNFICsgMHg1MDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg1MDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjZdID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4NjAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NjAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGY3XSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDcwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDcwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAogCS8qIGNvbnZlcnQgcm9tIHZlYyBwb2ludGVyIHRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCWtlcm5lbF9hcmdfcHJvbXZlYyA9IChzdHJ1Y3QgbGludXhfcm9tdmVjICopCmRpZmYgLS1naXQgYS9jcHUvbGVvbjIvc2VyaWFsLmMgYi9jcHUvbGVvbjIvc2VyaWFsLmMKaW5kZXggY2U5NDU3Zi4uNGY0MWI4ZSAxMDA2NDQKLS0tIGEvY3B1L2xlb24yL3NlcmlhbC5jCisrKyBiL2NwdS9sZW9uMi9zZXJpYWwuYwpAQCAtNTcsNyArNTcsNyBAQAogCXJlZ3MgPSAoTEVPTjJfVWFydF9yZWdzICopICYgbGVvbjItPlVBUlRfQ2hhbm5lbF8yOwogI2VuZGlmCiAKLQlyZWdzLT5VQVJUX1NjYWxlciA9IENGR19MRU9OMl9VQVJUMV9TQ0FMRVI7CisJcmVncy0+VUFSVF9TY2FsZXIgPSBDT05GSUdfU1lTX0xFT04yX1VBUlQxX1NDQUxFUjsKIAogCS8qIExldCBiaXQgMTEgYmUgdW5jaGFuZ2VkIChkZWJ1ZyBiaXQgZm9yIEdSTU9OKSAqLwogCXRtcCA9IFJFQURfV09SRChyZWdzLT5VQVJUX0NvbnRyb2wpOwpkaWZmIC0tZ2l0IGEvY3B1L2xlb24yL3N0YXJ0LlMgYi9jcHUvbGVvbjIvc3RhcnQuUwppbmRleCBmMjNmNDk5Li45YjVkODNlIDEwMDY0NAotLS0gYS9jcHUvbGVvbjIvc3RhcnQuUworKysgYi9jcHUvbGVvbjIvc3RhcnQuUwpAQCAtNjgsNyArNjgsNyBAQAogTUlORlJBTUUgPSAoV0lORE9XU0laRSArIEFSR1BVU0hTSVpFICsgNCkKIAogLyogTnVtYmVyIG9mIHJlZ2lzdGVyIHdpbmRvd3MgKi8KLSNpZm5kZWYgQ0ZHX1NQQVJDX05XSU5ET1dTCisjaWZuZGVmIENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MKICNlcnJvciBNdXN0IGRlZmluZSBudW1iZXIgb2YgU1BBUkMgcmVnaXN0ZXIgd2luZG93cywgZGVmYXVsdCBpcyA4CiAjZW5kaWYKIApAQCAtMjgwLDE2ICsyODAsMTYgQEAKIGxlb24yX2luaXRfbWN0cmw6CiAKIAkvKiBtZW1vcnkgY29uZmlnIHJlZ2lzdGVyIDEgKi8KLQlzZXQJQ0ZHX0dSTElCX01FTUNGRzEsICVnMgorCXNldAlDT05GSUdfU1lTX0dSTElCX01FTUNGRzEsICVnMgogCWxkCVslZzFdLCAlZzMJCSEKIAlhbmQJJWczLCAweDMwMCwgJWczCiAJb3IJJWcyLCAlZzMsICVnMgogCXN0CSVnMiwgWyVnMSArIExFT04yX01DRkcxXQotCXNldAlDRkdfR1JMSUJfTUVNQ0ZHMiwgJWcyCQkhIExvYWQgbWVtb3J5IGNvbmZpZyByZWdpc3RlciAyCisJc2V0CUNPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiwgJWcyCQkhIExvYWQgbWVtb3J5IGNvbmZpZyByZWdpc3RlciAyCiAjaWYgISggZGVmaW5lZChUU0lNKSB8fCAhZGVmaW5lZChCWklNQUdFKSkKIAlzdAklZzIsIFslZzEgKyBMRU9OMl9NQ0ZHMl0JISBvbmx5IGZvciBwcm9tIHZlcnNpb24sIGVsc2UgZG9uZSBieSAiZHVtb24gLWkiCiAjZW5kaWYKLQlzZXQJQ0ZHX0dSTElCX01FTUNGRzMsICVnMgkJISBJbml0IEZUIHJlZ2lzdGVyCisJc2V0CUNPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMywgJWcyCQkhIEluaXQgRlQgcmVnaXN0ZXIKIAlzdAklZzIsIFslZzEgKyBMRU9OMl9FQ1RSTF0KIAlsZAlbJWcxICsgTEVPTjJfRUNUUkxdLCAlZzIKIAlzcmwJJWcyLCAzMCwgJWcyCkBAIC0zMTAsNyArMzEwLDcgQEAKIAlub3AKIAogbGVvbjJfaW5pdF9zdGFja3A6Ci0Jc2V0CUNGR19JTklUX1NQX09GRlNFVCwgJWZwCisJc2V0CUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQsICVmcAogCWFuZG4JJWZwLCAweDBmLCAlZnAKIAlzdWIJJWZwLCA2NCwgJXNwCiAKQEAgLTMyNyw3ICszMjcsNyBAQAogcmVsb2M6CiAJc2V0CVRFWFRfU1RBUlQsJWcyCiAJc2V0CURBVEFfRU5ELCVnMwotCXNldAlDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLCVnNAorCXNldAlDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSwlZzQKIHJlbG9jX2xvb3A6CiAJbGRkCVslZzJdLCVsMAogCWxkZAlbJWcyKzhdLCVsMgpAQCAtMzczLDEwICszNzMsMTAgQEAKIAlzZXQJX19nb3RfZW5kLCVnMwogLyoKICAqIG5ldyBnb3Qgb2Zmc2V0ID0gKG9sZCBHT1QtUFRSIChyZWFkIHdpdGggbGQpIC0KLSAqICAgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRShmcm9tIGRlZmluZSkgKSArCisgKiAgIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFKGZyb20gZGVmaW5lKSApICsKICAqICAgRGVzdGluYXRpb24gQWRkcmVzcyAoZnJvbSBkZWZpbmUpCiAgKi8KLQlzZXQJQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwlZzIKKwlzZXQJQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsJWcyCiAJc2V0CVRFWFRfU1RBUlQsICVnMQogCWFkZAklZzQsJWcyLCVnNAogCXN1YgklZzQsJWcxLCVnNApAQCAtMzk3LDcgKzM5Nyw3IEBACiBwcm9tX3JlbG9jYXRlOgogCXNldAlfX3Byb21fc3RhcnQsICVnMgogCXNldAlfX3Byb21fZW5kLCAlZzMKLQlzZXQJQ0ZHX1BST01fT0ZGU0VULCAlZzQKKwlzZXQJQ09ORklHX1NZU19QUk9NX09GRlNFVCwgJWc0CiAKIHByb21fcmVsb2NhdGVfbG9vcDoKIAlsZGQJWyVnMl0sJWwwCkBAIC00MTMsNyArNDEzLDcgQEAKICAqIHRoZSBuZXcgdHJhcCB0YWJsZSBhZGRyZXNzCiAgKi8KIAotCXNldAlDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLCAlZzIKKwlzZXQJQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsICVnMgogCXdyCSVnMCwgJWcyLCAldGJyCiAKIC8qCWNhbGwJcmVsb2NhdGUqLwpAQCAtNDIxLDE0ICs0MjEsMTQgQEAKIC8qIENhbGwgcmVsb2NhdGVkIGluaXQgZnVuY3Rpb25zICovCiBqdW1wOgogCXNldAljcHVfaW5pdF9mMiwlbzEKLQlzZXQJQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwlbzIKKwlzZXQJQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsJW8yCiAJYWRkCSVvMSwlbzIsJW8xCiAJc3ViCSVvMSwlZzEsJW8xCiAJY2FsbAklbzEKIAljbHIJJW8wCiAKIAlzZXQJYm9hcmRfaW5pdF9mLCVvMQotCXNldAlDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLCVvMgorCXNldAlDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSwlbzIKIAlhZGQJJW8xLCVvMiwlbzEKIAlzdWIJJW8xLCVnMSwlbzEKIAljYWxsCSVvMQpAQCAtNDU0LDcgKzQ1NCw3IEBACiAJV1JJVEVfUEFVU0UKIAltb3YJJWw3LCAlbzAJCSEgaXJxIGxldmVsCiAJc2V0CWhhbmRsZXJfaXJxLCAlbzEKLQlzZXQJKENGR19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSwgJW8yCisJc2V0CShDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpLCAlbzIKIAlhZGQJJW8xLCAlbzIsICVvMQogCWNhbGwJJW8xCiAJYWRkCSVzcCwgU0ZfUkVHU19TWiwgJW8xCSEgcHRfcmVncyBwdHIKQEAgLTQ3Miw3ICs0NzIsNyBAQAogCW1vdgkld2ltLCAlbDMJCSEgQ2FsY3VsYXRlIG5leHQgV0lNCiAJbW92CSVnMSwgJWw3CiAJc3JsCSVsMywgMSwgJWcxCi0Jc2xsCSVsMywgKENGR19TUEFSQ19OV0lORE9XUy0xKSAsICVsNAorCXNsbAklbDMsIChDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLTEpICwgJWw0CiAJb3IJJWw0LCAlZzEsICVnMQogCiAJc2F2ZQkJCQkhIEdldCBpbnRvIHdpbmRvdyB0byBiZSBzYXZlZC4KQEAgLTUwOSw3ICs1MDksNyBAQAogCiAJbW92ICAld2ltLCAlbDMJCQkhIENhbGN1bGF0ZSBuZXh0IFdJTQogCXNsbCAgJWwzLCAxLCAlbDQKLQlzcmwgICVsMywgKENGR19TUEFSQ19OV0lORE9XUy0xKSwgJWw1CisJc3JsICAlbDMsIChDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLTEpLCAlbDUKIAlvciAgICVsNSwgJWw0LCAlbDUKIAltb3YgICVsNSwgJXdpbQogCW5vcDsgbm9wOyBub3AKQEAgLTU3OCw3ICs1NzgsNyBAQAogCSAqLwogCXNybAkldF93aW0sIDB4MSwgJWcyCQkhIGJlZ2luIGNvbXB1dGF0aW9uIG9mIG5ldyAld2ltCiAKLQlzZXQJKENGR19TUEFSQ19OV0lORE9XUy0xKSwgJWczCSFOV0lORE9XUy0xCisJc2V0CShDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLTEpLCAlZzMJIU5XSU5ET1dTLTEKIAogCXNsbAkldF93aW0sICVnMywgJXRfd2ltCSEgTldJTkRPV1MtMQogCW9yCSV0X3dpbSwgJWcyLCAlZzIKQEAgLTYxMiw3ICs2MTIsNyBAQAogCW1vdgkyLCAlZzEKIAlzbGwJJWcxLCAldF9wc3IsICVnMQogCi0Jc2V0CUNGR19TUEFSQ19OV0lORE9XUywgJWcyCSFOV0lORE9XUworCXNldAlDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLCAlZzIJIU5XSU5ET1dTCiAKIAlzcmwJJWcxLCAlZzIsICVnMgogCW9yCSVnMSwgJWcyLCAlZzEKQEAgLTYyMiw3ICs2MjIsNyBAQAogCSBzbGwJJWcyLCAweDEsICVnMQogCiAJLyogV2UgaGF2ZSB0byBncmFiIGEgd2luZG93IGJlZm9yZSByZXR1cm5pbmcuICovCi0Jc2V0CShDRkdfU1BBUkNfTldJTkRPV1MtMSksICVnMwkhTldJTkRPV1MtMQorCXNldAkoQ09ORklHX1NZU19TUEFSQ19OV0lORE9XUy0xKSwgJWczCSFOV0lORE9XUy0xCiAKIAlzcmwJJWcyLCAlZzMsICAlZzIKIAlvcgklZzEsICVnMiwgJWcxCmRpZmYgLS1naXQgYS9jcHUvbGVvbjMvY3B1X2luaXQuYyBiL2NwdS9sZW9uMy9jcHVfaW5pdC5jCmluZGV4IDRmZTdkNGIuLmJlMjJlYzIgMTAwNjQ0Ci0tLSBhL2NwdS9sZW9uMy9jcHVfaW5pdC5jCisrKyBiL2NwdS9sZW9uMy9jcHVfaW5pdC5jCkBAIC0xNTksOSArMTU5LDkgQEAKIAkJbWN0cmwgPSAoYW1iYXBwX2Rldl9tY3RybCAqKSBiYXNlOwogCiAJCS8qIGNvbmZpZyBNQ1RSTCBtZW1vcnkgY29udHJvbGxlciAqLwotCQltY3RybC0+bWNmZzEgPSBDRkdfR1JMSUJfTUVNQ0ZHMSB8IChtY3RybC0+bWNmZzEgJiAweDMwMCk7Ci0JCW1jdHJsLT5tY2ZnMiA9IENGR19HUkxJQl9NRU1DRkcyOwotCQltY3RybC0+bWNmZzMgPSBDRkdfR1JMSUJfTUVNQ0ZHMzsKKwkJbWN0cmwtPm1jZmcxID0gQ09ORklHX1NZU19HUkxJQl9NRU1DRkcxIHwgKG1jdHJsLT5tY2ZnMSAmIDB4MzAwKTsKKwkJbWN0cmwtPm1jZmcyID0gQ09ORklHX1NZU19HUkxJQl9NRU1DRkcyOworCQltY3RybC0+bWNmZzMgPSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzM7CiAJCW5vdF9mb3VuZF9tY3RybCA9IDA7CiAJfQogCkBAIC0xNzEsOSArMTcxLDkgQEAKIAkJbWN0cmwgPSAoYW1iYXBwX2Rldl9tY3RybCAqKSBiYXNlOwogCiAJCS8qIGNvbmZpZyBNQ1RSTCBtZW1vcnkgY29udHJvbGxlciAqLwotCQltY3RybC0+bWNmZzEgPSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMSB8IChtY3RybC0+bWNmZzEgJiAweDMwMCk7Ci0JCW1jdHJsLT5tY2ZnMiA9IENGR19HUkxJQl9GVF9NRU1DRkcyOwotCQltY3RybC0+bWNmZzMgPSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMzsKKwkJbWN0cmwtPm1jZmcxID0gQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcxIHwgKG1jdHJsLT5tY2ZnMSAmIDB4MzAwKTsKKwkJbWN0cmwtPm1jZmcyID0gQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcyOworCQltY3RybC0+bWNmZzMgPSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzM7CiAJCW5vdF9mb3VuZF9tY3RybCA9IDA7CiAJfQogCkBAIC0xODMsNyArMTgzLDcgQEAKIAkJc2RjdHJsID0gKGFtYmFwcF9kZXZfc2RjdHJsICopIGJhc2U7CiAKIAkJLyogY29uZmlnIG1lbW9yeSBjb250cm9sbGVyICovCi0JCXNkY3RybC0+c2RjZmcgPSBDRkdfR1JMSUJfU0RSQU07CisJCXNkY3RybC0+c2RjZmcgPSBDT05GSUdfU1lTX0dSTElCX1NEUkFNOwogCQlub3RfZm91bmRfbWN0cmwgPSAwOwogCX0KIApAQCAtMTkyLDggKzE5Miw4IEBACiAJCWRkcjJzcGEgPSAoYW1iYXBwX2Rldl9kZHIyc3BhICopIGFtYmFwcF9haGJfZ2V0X2luZm8oYWhiLCAxKTsKIAogCQkvKiBDb25maWcgRERSMiBtZW1vcnkgY29udHJvbGxlciAqLwotCQlkZHIyc3BhLT5jZmcxID0gQ0ZHX0dSTElCX0REUjJfQ0ZHMTsKLQkJZGRyMnNwYS0+Y2ZnMyA9IENGR19HUkxJQl9ERFIyX0NGRzM7CisJCWRkcjJzcGEtPmNmZzEgPSBDT05GSUdfU1lTX0dSTElCX0REUjJfQ0ZHMTsKKwkJZGRyMnNwYS0+Y2ZnMyA9IENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkczOwogCQlub3RfZm91bmRfbWN0cmwgPSAwOwogCX0KIApAQCAtMjAyLDcgKzIwMiw3IEBACiAJCWRkcnNwYSA9IChhbWJhcHBfZGV2X2RkcnNwYSAqKSBhbWJhcHBfYWhiX2dldF9pbmZvKGFoYiwgMSk7CiAKIAkJLyogQ29uZmlnIEREUiBtZW1vcnkgY29udHJvbGxlciAqLwotCQlkZHJzcGEtPmN0cmwgPSBDRkdfR1JMSUJfRERSX0NGRzsKKwkJZGRyc3BhLT5jdHJsID0gQ09ORklHX1NZU19HUkxJQl9ERFJfQ0ZHOwogCQlub3RfZm91bmRfbWN0cmwgPSAwOwogCX0KIApkaWZmIC0tZ2l0IGEvY3B1L2xlb24zL2ludGVycnVwdHMuYyBiL2NwdS9sZW9uMy9pbnRlcnJ1cHRzLmMKaW5kZXggMjY5MjYzMi4uYWM2YWNhNSAxMDA2NDQKLS0tIGEvY3B1L2xlb24zL2ludGVycnVwdHMuYworKysgYi9jcHUvbGVvbjMvaW50ZXJydXB0cy5jCkBAIC0xMDQsOCArMTA0LDggQEAKIHZvaWQgaGFuZGxlcl9pcnEoaW50IGlycSwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CiAJaWYgKGlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIpIHsKLQkJaWYgKCgodW5zaWduZWQgaW50KWlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIgPiBDRkdfUkFNX0VORCkgfHwKLQkJICAgICgodW5zaWduZWQgaW50KWlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIgPCBDRkdfUkFNX0JBU0UpCisJCWlmICgoKHVuc2lnbmVkIGludClpcnFfaGFuZGxlcnNbaXJxXS5oYW5kbGVyID4gQ09ORklHX1NZU19SQU1fRU5EKSB8fAorCQkgICAgKCh1bnNpZ25lZCBpbnQpaXJxX2hhbmRsZXJzW2lycV0uaGFuZGxlciA8IENPTkZJR19TWVNfUkFNX0JBU0UpCiAJCSAgICApIHsKIAkJCXByaW50ZigiaGFuZGxlcl9pcnE6IGJhZCBoYW5kbGVyOiAleCwgaXJxIG51bWJlciAlZFxuIiwKIAkJCSAgICAgICAodW5zaWduZWQgaW50KWlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIsIGlycSk7CkBAIC0xNjUsOCArMTY1LDggQEAKIAkJcHJpbnRmKCJpcnFfaW5zdGFsbF9oYW5kbGVyOiAweCUwOGx4IHJlcGxhY2luZyAweCUwOGx4XG4iLAogCQkgICAgICAgKHVsb25nKSBoYW5kbGVyLCAodWxvbmcpIGlycV9oYW5kbGVyc1tpcnFdLmhhbmRsZXIpOwogCi0JaWYgKCgodW5zaWduZWQgaW50KWhhbmRsZXIgPiBDRkdfUkFNX0VORCkgfHwKLQkgICAgKCh1bnNpZ25lZCBpbnQpaGFuZGxlciA8IENGR19SQU1fQkFTRSkKKwlpZiAoKCh1bnNpZ25lZCBpbnQpaGFuZGxlciA+IENPTkZJR19TWVNfUkFNX0VORCkgfHwKKwkgICAgKCh1bnNpZ25lZCBpbnQpaGFuZGxlciA8IENPTkZJR19TWVNfUkFNX0JBU0UpCiAJICAgICkgewogCQlwcmludGYoImlycV9pbnN0YWxsX2hhbmRsZXI6IGJhZCBoYW5kbGVyOiAleCwgaXJxIG51bWJlciAlZFxuIiwKIAkJICAgICAgICh1bnNpZ25lZCBpbnQpaGFuZGxlciwgaXJxKTsKZGlmZiAtLWdpdCBhL2NwdS9sZW9uMy9wcm9tLmMgYi9jcHUvbGVvbjMvcHJvbS5jCmluZGV4IDlmYTJkMDQuLjE4ZDJmYjIgMTAwNjQ0Ci0tLSBhL2NwdS9sZW9uMy9wcm9tLmMKKysrIGIvY3B1L2xlb24zL3Byb20uYwpAQCAtNDksMTQgKzQ5LDE0IEBACiAvKiBmb3IgX192YSAqLwogZXh0ZXJuIGludCBfX3Byb21fc3RhcnQ7CiAjZGVmaW5lIFBBR0VfT0ZGU0VUIDB4ZjAwMDAwMDAKLSNkZWZpbmUgcGh5c19iYXNlIENGR19TRFJBTV9CQVNFCisjZGVmaW5lIHBoeXNfYmFzZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNkZWZpbmUgUFJPTV9PRkZTIDgxOTIKICNkZWZpbmUgUFJPTV9TSVpFX01BU0sgKFBST01fT0ZGUy0xKQogI2RlZmluZSBfX3ZhKHgpICggXAogCSh2b2lkICopKCAoKHVuc2lnbmVkIGxvbmcpKHgpKS1QUk9NX09GRlMrIFwKLQkoQ0ZHX1BST01fT0ZGU0VULXBoeXNfYmFzZSkrUEFHRV9PRkZTRVQtVEVYVF9CQVNFICkgXAorCShDT05GSUdfU1lTX1BST01fT0ZGU0VULXBoeXNfYmFzZSkrUEFHRV9PRkZTRVQtVEVYVF9CQVNFICkgXAogCSkKLSNkZWZpbmUgX19waHkoeCkgKCh2b2lkICopKCgodW5zaWduZWQgbG9uZykoeCkpLVBST01fT0ZGUytDRkdfUFJPTV9PRkZTRVQtVEVYVF9CQVNFKSkKKyNkZWZpbmUgX19waHkoeCkgKCh2b2lkICopKCgodW5zaWduZWQgbG9uZykoeCkpLVBST01fT0ZGUytDT05GSUdfU1lTX1BST01fT0ZGU0VULVRFWFRfQkFTRSkpCiAKIHN0cnVjdCBwcm9wZXJ0eSB7CiAJY2hhciAqbmFtZTsKQEAgLTU0NSwxMyArNTQ1LDEzIEBACiAJX192YSgmc3BpLnRvdHBoeXMpLAogCXsKIAkgTlVMTCwKLQkgKGNoYXIgKilDRkdfU0RSQU1fQkFTRSwKKwkgKGNoYXIgKilDT05GSUdfU1lTX1NEUkFNX0JBU0UsCiAJIDAsCiAJIH0sCiAJX192YSgmc3BpLmF2YWlsKSwKIAl7CiAJIE5VTEwsCi0JIChjaGFyICopQ0ZHX1NEUkFNX0JBU0UsCisJIChjaGFyICopQ09ORklHX1NZU19TRFJBTV9CQVNFLAogCSAwLAogCSB9LAogCU5VTEwsCQkJLyogcHJvbW1hcF9wICovCkBAIC02NTksNyArNjU5LDcgQEAKIAogCS8qIGdldCBwaHlzaWNhbCBhZGRyZXNzICovCiAJc3RydWN0IGxlb25fcHJvbV9pbmZvICpwc3BpID0KLQkgICAgKHZvaWQgKikoQ0ZHX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOworCSAgICAodm9pZCAqKShDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJdW5zaWduZWQgaW50ICpzcm1tdV9jdHhfdGFibGU7CiAKQEAgLTcxMiw3ICs3MTIsNyBAQAogCXNybW11X3NldF9tbXVyZWcoMCk7CiAKIAkvKiBIYXJkY29kZWQgc3RhcnQgYWRkcmVzcyAqLwotCXJlc2V0ID0gQ0ZHX01PTklUT1JfQkFTRTsKKwlyZXNldCA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFOwogCiAJLyogZmx1c2ggZGF0YSBjYWNoZSAqLwogCXNwYXJjX2RjYWNoZV9mbHVzaF9hbGwoKTsKQEAgLTc0Miw3ICs3NDIsNyBAQAogCiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPQotCSAgICAodm9pZCAqKShDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgICh2b2lkICopKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAKIAl1YXJ0ID0gKGFtYmFwcF9kZXZfYXBidWFydCAqKQogCSAgICBTUEFSQ19CWVBBU1NfUkVBRCgmcHNwaS0+cmVsb2NfZnVuY3MubGVvbjNfYXBidWFydCk7CkBAIC03NzgsNyArNzc4LDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9Ci0JICAgICh2b2lkICopKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKHZvaWQgKikoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCS8qIGNvbnZlcnQgaW50byB2aXJ0dWFsIGFkZHJlc3MgKi8KIAlwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQpAQCAtNzkzLDcgKzc5Myw3IEBACiB7CiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCi0JICAgIChDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgIChDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCXBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCkBAIC04MDgsNyArODA4LDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKLQkgICAgKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAKIAkvKiBjb252ZXJ0IGludG8gdmlydHVhbCBhZGRyZXNzICovCiAJcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKQEAgLTgyNyw3ICs4MjcsNyBAQAogewogCS8qIGdldCBwaHlzaWNhbCBhZGRyZXNzICovCiAJc3RydWN0IGxlb25fcHJvbV9pbmZvICpwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQotCSAgICAoQ0ZHX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOworCSAgICAoQ09ORklHX1NZU19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKIAogCS8qIGNvbnZlcnQgaW50byB2aXJ0dWFsIGFkZHJlc3MgKi8KIAlwc3BpID0gKHN0cnVjdCBsZW9uX3Byb21faW5mbyAqKQpAQCAtODQzLDcgKzg0Myw3IEBACiB7CiAJLyogZ2V0IHBoeXNpY2FsIGFkZHJlc3MgKi8KIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCi0JICAgIChDRkdfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CisJICAgIChDT05GSUdfU1lTX1BST01fT0ZGU0VUICsgc2l6ZW9mKHNybW11X3RhYmxlcykpOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwogCXBzcGkgPSAoc3RydWN0IGxlb25fcHJvbV9pbmZvICopCkBAIC04NjYsNyArODY2LDcgQEAKIHsKIAkvKiBnZXQgcGh5c2ljYWwgYWRkcmVzcyAqLwogCXN0cnVjdCBsZW9uX3Byb21faW5mbyAqcHNwaSA9IChzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKikKLQkgICAgKENGR19QUk9NX09GRlNFVCArIHNpemVvZihzcm1tdV90YWJsZXMpKTsKKwkgICAgKENPTkZJR19TWVNfUFJPTV9PRkZTRVQgKyBzaXplb2Yoc3JtbXVfdGFibGVzKSk7CiAJc3RydWN0IHByb3BlcnR5ICpwcm9wOwogCiAJLyogY29udmVydCBpbnRvIHZpcnR1YWwgYWRkcmVzcyAqLwpAQCAtOTIyLDcgKzkyMiw3IEBACiAJcHNwaS0+ZnJlcV9raHogPSBDT05GSUdfU1lTX0NMS19GUkVRIC8gMTAwMDsKIAogCS8qIFNldCBBdmFpbGFibGUgbWFpbiBtZW1vcnkgc2l6ZSAqLwotCXBzcGktPnRvdHBoeXMubnVtX2J5dGVzID0gQ0ZHX1BST01fT0ZGU0VUIC0gQ0ZHX1NEUkFNX0JBU0U7CisJcHNwaS0+dG90cGh5cy5udW1fYnl0ZXMgPSBDT05GSUdfU1lTX1BST01fT0ZGU0VUIC0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCXBzcGktPmF2YWlsLm51bV9ieXRlcyA9IHBzcGktPnRvdHBoeXMubnVtX2J5dGVzOwogCiAJLyogU2V0IHRoZSBwb2ludGVyIHRvIHRoZSBDb25zb2xlIFVBUlQgaW4gcm9tdmVjICovCkBAIC05ODIsNyArOTgyLDcgQEAKIGludCBwcm9tX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgbGVvbl9wcm9tX2luZm8gKnBzcGkgPSAodm9pZCAqKQotCSAgICAoKCgodW5zaWduZWQgaW50KSZzcGkpICYgUFJPTV9TSVpFX01BU0spICsgQ0ZHX1BST01fT0ZGU0VUKTsKKwkgICAgKCgoKHVuc2lnbmVkIGludCkmc3BpKSAmIFBST01fU0laRV9NQVNLKSArIENPTkZJR19TWVNfUFJPTV9PRkZTRVQpOwogCiAJLyogZGlzYWJsZSBtbXUgKi8KIAlzcm1tdV9zZXRfbW11cmVnKDB4MDAwMDAwMDApOwpAQCAtMTAwOCw3ICsxMDA4LDcgQEAKIAkvKiBpZiBubyBib290YXJncyBzZXQsIHNraXAgY29weWluZyA9PT4gZGVmYXVsdCBib290bGluZSAqLwogCWlmIChib290YXJncyAmJiAoKmJvb3RhcmdzICE9ICdcMCcpKSB7CiAJCXBzcGkgPSAodm9pZCAqKSgoKCh1bnNpZ25lZCBpbnQpJnNwaSkgJiBQUk9NX1NJWkVfTUFTSykgKwotCQkJCUNGR19QUk9NX09GRlNFVCk7CisJCQkJQ09ORklHX1NZU19QUk9NX09GRlNFVCk7CiAJCXNyYyA9IGJvb3RhcmdzOwogCQlkc3QgPSAmcHNwaS0+YXJnWzBdOwogCQlsZWZ0ID0gMjU1OwkvKiBtYXggbGVuICovCkBAIC0xMDI1LDcgKzEwMjUsNyBAQAogewogCXNwYXJjX3NybW11X3NldHVwICpwc3JtbXVfdGFibGVzID0gKHZvaWQgKikKIAkgICAgKCgoKHVuc2lnbmVkIGludCkmc3JtbXVfdGFibGVzKSAmIFBST01fU0laRV9NQVNLKSArCi0JICAgICBDRkdfUFJPTV9PRkZTRVQpOworCSAgICAgQ09ORklHX1NZU19QUk9NX09GRlNFVCk7CiAKIAkvKiBNYWtlIGNvbnRleHQgMCAoa2VybmVsJ3MgY29udGV4dCkgcG9pbnQKIAkgKiB0byBvdXIgcHJlcGFyZWQgbWVtb3J5IG1hcHBpbmcKQEAgLTEwNDEsMjEgKzEwNDEsMjEgQEAKICNkZWZpbmUgUFRFIDIKICNkZWZpbmUgQUNDX1NVX0FMTCAweDFjCiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjBdID0KLQkgICAgKENGR19TRFJBTV9CQVNFID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjFdID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGYyXSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDIwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDIwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAlwc3JtbXVfdGFibGVzLT5wZ2RfdGFibGVbMHhmM10gPQotCSAgICAoKENGR19TRFJBTV9CQVNFICsgMHgzMDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgzMDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjRdID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCXBzcm1tdV90YWJsZXMtPnBnZF90YWJsZVsweGY1XSA9Ci0JICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDUwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKKwkgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDUwMDAwMDApID4+IDQpIHwgQUNDX1NVX0FMTCB8IFBURTsKIAlwc3JtbXVfdGFibGVzLT5wZ2RfdGFibGVbMHhmNl0gPQotCSAgICAoKENGR19TRFJBTV9CQVNFICsgMHg2MDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CisJICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg2MDAwMDAwKSA+PiA0KSB8IEFDQ19TVV9BTEwgfCBQVEU7CiAJcHNybW11X3RhYmxlcy0+cGdkX3RhYmxlWzB4ZjddID0KLQkgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4NzAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOworCSAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NzAwMDAwMCkgPj4gNCkgfCBBQ0NfU1VfQUxMIHwgUFRFOwogCiAJLyogY29udmVydCByb20gdmVjIHBvaW50ZXIgdG8gdmlydHVhbCBhZGRyZXNzICovCiAJa2VybmVsX2FyZ19wcm9tdmVjID0gKHN0cnVjdCBsaW51eF9yb212ZWMgKikKZGlmZiAtLWdpdCBhL2NwdS9sZW9uMy9zZXJpYWwuYyBiL2NwdS9sZW9uMy9zZXJpYWwuYwppbmRleCAyN2Q1Y2QzLi40YjJmY2I4IDEwMDY0NAotLS0gYS9jcHUvbGVvbjMvc2VyaWFsLmMKKysrIGIvY3B1L2xlb24zL3NlcmlhbC5jCkBAIC01OCw3ICs1OCw3IEBACiAJCSAqCiAJCSAqIFJlY2VpdmVyICYgdHJhbnNtaXR0ZXIgZW5hYmxlCiAJCSAqLwotCQlsZW9uM19hcGJ1YXJ0LT5zY2FsZXIgPSBDRkdfR1JMSUJfQVBCVUFSVF9TQ0FMRVI7CisJCWxlb24zX2FwYnVhcnQtPnNjYWxlciA9IENPTkZJR19TWVNfR1JMSUJfQVBCVUFSVF9TQ0FMRVI7CiAKIAkJLyogTGV0IGJpdCAxMSBiZSB1bmNoYW5nZWQgKGRlYnVnIGJpdCBmb3IgR1JNT04pICovCiAJCXRtcCA9IFJFQURfV09SRChsZW9uM19hcGJ1YXJ0LT5jdHJsKTsKZGlmZiAtLWdpdCBhL2NwdS9sZW9uMy9zdGFydC5TIGIvY3B1L2xlb24zL3N0YXJ0LlMKaW5kZXggZDQyMTg5OC4uN2FmZTEwZSAxMDA2NDQKLS0tIGEvY3B1L2xlb24zL3N0YXJ0LlMKKysrIGIvY3B1L2xlb24zL3N0YXJ0LlMKQEAgLTY4LDcgKzY4LDcgQEAKIE1JTkZSQU1FID0gKFdJTkRPV1NJWkUgKyBBUkdQVVNIU0laRSArIDQpCiAKIC8qIE51bWJlciBvZiByZWdpc3RlciB3aW5kb3dzICovCi0jaWZuZGVmIENGR19TUEFSQ19OV0lORE9XUworI2lmbmRlZiBDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTCiAjZXJyb3IgTXVzdCBkZWZpbmUgbnVtYmVyIG9mIFNQQVJDIHJlZ2lzdGVyIHdpbmRvd3MsIGRlZmF1bHQgaXMgOAogI2VuZGlmCiAKQEAgLTI1MSw3ICsyNTEsNyBAQAogCW1vdgklZzMsICV3aW0KIAogc3RhY2twOgotCXNldAlDRkdfSU5JVF9TUF9PRkZTRVQsICVmcAorCXNldAlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VULCAlZnAKIAlhbmRuCSVmcCwgMHgwZiwgJWZwCiAJc3ViCSVmcCwgNjQsICVzcAogCkBAIC0yNjgsNyArMjY4LDcgQEAKIHJlbG9jOgogCXNldAlURVhUX1NUQVJULCVnMgogCXNldAlEQVRBX0VORCwlZzMKLQlzZXQJQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwlZzQKKwlzZXQJQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UsJWc0CiByZWxvY19sb29wOgogCWxkZAlbJWcyXSwlbDAKIAlsZGQJWyVnMis4XSwlbDIKQEAgLTMxNCwxMCArMzE0LDEwIEBACiAJc2V0CV9fZ290X2VuZCwlZzMKIC8qCiAgKiBuZXcgZ290IG9mZnNldCA9IChvbGQgR09ULVBUUiAocmVhZCB3aXRoIGxkKSAtCi0gKiAgIENGR19SRUxPQ19NT05JVE9SX0JBU0UoZnJvbSBkZWZpbmUpICkgKworICogICBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRShmcm9tIGRlZmluZSkgKSArCiAgKiAgIERlc3RpbmF0aW9uIEFkZHJlc3MgKGZyb20gZGVmaW5lKQogICovCi0Jc2V0CUNGR19SRUxPQ19NT05JVE9SX0JBU0UsJWcyCisJc2V0CUNPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLCVnMgogCXNldAlURVhUX1NUQVJULCAlZzEKIAlhZGQJJWc0LCVnMiwlZzQKIAlzdWIJJWc0LCVnMSwlZzQKQEAgLTMzOCw3ICszMzgsNyBAQAogcHJvbV9yZWxvY2F0ZToKIAlzZXQJX19wcm9tX3N0YXJ0LCAlZzIKIAlzZXQJX19wcm9tX2VuZCwgJWczCi0Jc2V0CUNGR19QUk9NX09GRlNFVCwgJWc0CisJc2V0CUNPTkZJR19TWVNfUFJPTV9PRkZTRVQsICVnNAogCiBwcm9tX3JlbG9jYXRlX2xvb3A6CiAJbGRkCVslZzJdLCVsMApAQCAtMzU0LDcgKzM1NCw3IEBACiAgKiB0aGUgbmV3IHRyYXAgdGFibGUgYWRkcmVzcwogICovCiAKLQlzZXQJQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwgJWcyCisJc2V0CUNPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLCAlZzIKIAl3cgklZzAsICVnMiwgJXRicgogCW5vcAogCW5vcApAQCAtMzY4LDIyICszNjgsMjIgQEAKIAlzZXRoaQklaGkoMHgwMDgwMDAwMCksICVvMAogCWxkYQlbJWcwXSAyLCAlbzEKIAlhbmQJJW8wLCAlbzEsICVvMAotCXNldGhpCSVoaShsZW9uM19zbm9vcGluZ19hdmFpbCtDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSksICVvMQotCXN0CSVvMCwgWyVsbyhsZW9uM19zbm9vcGluZ19hdmFpbCtDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkrJW8xXQorCXNldGhpCSVoaShsZW9uM19zbm9vcGluZ19hdmFpbCtDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpLCAlbzEKKwlzdAklbzAsIFslbG8obGVvbjNfc25vb3BpbmdfYXZhaWwrQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSslbzFdCiAKIC8qCWNhbGwJcmVsb2NhdGUqLwogCW5vcAogLyogQ2FsbCByZWxvY2F0ZWQgaW5pdCBmdW5jdGlvbnMgKi8KIGp1bXA6CiAJc2V0CWNwdV9pbml0X2YyLCVvMQotCXNldAlDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLCVvMgorCXNldAlDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSwlbzIKIAlhZGQJJW8xLCVvMiwlbzEKIAlzdWIJJW8xLCVnMSwlbzEKIAljYWxsCSVvMQogCWNscgklbzAKIAogCXNldAlib2FyZF9pbml0X2YsJW8xCi0Jc2V0CUNGR19SRUxPQ19NT05JVE9SX0JBU0UsJW8yCisJc2V0CUNPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLCVvMgogCWFkZAklbzEsJW8yLCVvMQogCXN1YgklbzEsJWcxLCVvMQogCWNhbGwJJW8xCkBAIC00MDksNyArNDA5LDcgQEAKIAlXUklURV9QQVVTRQogCW1vdgklbDcsICVvMAkJISBpcnEgbGV2ZWwKIAlzZXQJaGFuZGxlcl9pcnEsICVvMQotCXNldAkoQ0ZHX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpLCAlbzIKKwlzZXQJKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSksICVvMgogCWFkZAklbzEsICVvMiwgJW8xCiAJY2FsbAklbzEKIAlhZGQJJXNwLCBTRl9SRUdTX1NaLCAlbzEJISBwdF9yZWdzIHB0cgpAQCAtNDI3LDcgKzQyNyw3IEBACiAJbW92CSV3aW0sICVsMwkJISBDYWxjdWxhdGUgbmV4dCBXSU0KIAltb3YJJWcxLCAlbDcKIAlzcmwJJWwzLCAxLCAlZzEKLQlzbGwJJWwzLCAoQ0ZHX1NQQVJDX05XSU5ET1dTLTEpICwgJWw0CisJc2xsCSVsMywgKENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MtMSkgLCAlbDQKIAlvcgklbDQsICVnMSwgJWcxCiAKIAlzYXZlCQkJCSEgR2V0IGludG8gd2luZG93IHRvIGJlIHNhdmVkLgpAQCAtNDY0LDcgKzQ2NCw3IEBACiAKIAltb3YgICV3aW0sICVsMwkJCSEgQ2FsY3VsYXRlIG5leHQgV0lNCiAJc2xsICAlbDMsIDEsICVsNAotCXNybCAgJWwzLCAoQ0ZHX1NQQVJDX05XSU5ET1dTLTEpLCAlbDUKKwlzcmwgICVsMywgKENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MtMSksICVsNQogCW9yICAgJWw1LCAlbDQsICVsNQogCW1vdiAgJWw1LCAld2ltCiAJbm9wOyBub3A7IG5vcApAQCAtNTMzLDcgKzUzMyw3IEBACiAJICovCiAJc3JsCSV0X3dpbSwgMHgxLCAlZzIJCSEgYmVnaW4gY29tcHV0YXRpb24gb2YgbmV3ICV3aW0KIAotCXNldAkoQ0ZHX1NQQVJDX05XSU5ET1dTLTEpLCAlZzMJIU5XSU5ET1dTLTEKKwlzZXQJKENPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MtMSksICVnMwkhTldJTkRPV1MtMQogCiAJc2xsCSV0X3dpbSwgJWczLCAldF93aW0JISBOV0lORE9XUy0xCiAJb3IJJXRfd2ltLCAlZzIsICVnMgpAQCAtNTY3LDcgKzU2Nyw3IEBACiAJbW92CTIsICVnMQogCXNsbAklZzEsICV0X3BzciwgJWcxCiAKLQlzZXQJQ0ZHX1NQQVJDX05XSU5ET1dTLCAlZzIJIU5XSU5ET1dTCisJc2V0CUNPTkZJR19TWVNfU1BBUkNfTldJTkRPV1MsICVnMgkhTldJTkRPV1MKIAogCXNybAklZzEsICVnMiwgJWcyCiAJb3IJJWcxLCAlZzIsICVnMQpAQCAtNTc3LDcgKzU3Nyw3IEBACiAJIHNsbAklZzIsIDB4MSwgJWcxCiAKIAkvKiBXZSBoYXZlIHRvIGdyYWIgYSB3aW5kb3cgYmVmb3JlIHJldHVybmluZy4gKi8KLQlzZXQJKENGR19TUEFSQ19OV0lORE9XUy0xKSwgJWczCSFOV0lORE9XUy0xCisJc2V0CShDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTLTEpLCAlZzMJIU5XSU5ET1dTLTEKIAogCXNybAklZzIsICVnMywgICVnMgogCW9yCSVnMSwgJWcyLCAlZzEKZGlmZiAtLWdpdCBhL2NwdS9saDdhNDB4L2NwdS5jIGIvY3B1L2xoN2E0MHgvY3B1LmMKaW5kZXggNTc4ZWI3My4uOGZmM2EzNiAxMDA2NDQKLS0tIGEvY3B1L2xoN2E0MHgvY3B1LmMKKysrIGIvY3B1L2xoN2E0MHgvY3B1LmMKQEAgLTk0LDcgKzk0LDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L2xoN2E0MHgvaW50ZXJydXB0cy5jIGIvY3B1L2xoN2E0MHgvaW50ZXJydXB0cy5jCmluZGV4IGQwMTc4N2YuLjVhY2ZlMWEgMTAwNjQ0Ci0tLSBhL2NwdS9saDdhNDB4L2ludGVycnVwdHMuYworKysgYi9jcHUvbGg3YTQweC9pbnRlcnJ1cHRzLmMKQEAgLTU5LDcgKzU5LDcgQEAKIAkJLyoKIAkJICogMTBtcyBwZXJpb2Qgd2l0aCA1MDguNDY5a0h6IGNsb2NrID0gNTA4NAogCQkgKi8KLQkJdGltZXJfbG9hZF92YWwgPSBDRkdfSFovMTAwOworCQl0aW1lcl9sb2FkX3ZhbCA9IENPTkZJR19TWVNfSFovMTAwOwogCX0KIAogCS8qIGxvYWQgdmFsdWUgZm9yIDEwIG1zIHRpbWVvdXQgKi8KQEAgLTk4LDEyICs5OCwxMiBAQAogCS8qIG5vcm1hbGl6ZSAqLwogCWlmICh1c2VjID49IDEwMDApIHsKIAkJdG1vID0gdXNlYyAvIDEwMDA7Ci0JCXRtbyAqPSBDRkdfSFo7CisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gMTAwMDsKIAl9CiAJZWxzZSB7CiAJCWlmICh1c2VjID4gMSkgewotCQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQkJdG1vIC89ICgxMDAwKjEwMDApOwogCQl9CiAJCWVsc2UKQEAgLTE1MiwxMSArMTUyLDExIEBACiAJLyogbm9ybWFsaXplICovCiAJaWYgKHVzZWMgPj0gMTAwMCkgewogCQl0bW8gPSB1c2VjIC8gMTAwMDsKLQkJdG1vICo9IENGR19IWjsKKwkJdG1vICo9IENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAxMDAwOwogCX0gZWxzZSB7CiAJCWlmICh1c2VjID4gMSkgewotCQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJCXRtbyA9IHVzZWMgKiBDT05GSUdfU1lTX0haOwogCQkJdG1vIC89ICgxMDAwKjEwMDApOwogCQl9IGVsc2UgewogCQkJdG1vID0gMTsKZGlmZiAtLWdpdCBhL2NwdS9saDdhNDB4L3N0YXJ0LlMgYi9jcHUvbGg3YTQweC9zdGFydC5TCmluZGV4IGU0NjU1ZDYuLjExMjUyY2UgMTAwNjQ0Ci0tLSBhL2NwdS9saDdhNDB4L3N0YXJ0LlMKKysrIGIvY3B1L2xoN2E0MHgvc3RhcnQuUwpAQCAtMTcyLDggKzE3Miw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKIAlzdWIJcjAsIHIwLCAjKENPTkZJR19TVEFDS1NJWkVfSVJRK0NPTkZJR19TVEFDS1NJWkVfRklRKQogI2VuZGlmCkBAIC0yODUsOCArMjg1LDggQEAKIAlzdWIJc3AsIHNwLCAjU19GUkFNRV9TSVpFCiAJc3RtaWEJc3AsIHtyMCAtIHIxMn0JCQlAIENhbGxpbmcgcjAtcjEyCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjIsIHIyLCAjKENGR19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjaworCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUrOCkgIEAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCiAJbGRtaWEJcjIsIHtyMiAtIHIzfQkJCUAgZ2V0IHBjLCBjcHNyCiAJYWRkCXIwLCBzcCwgI1NfRlJBTUVfU0laRQkJQCByZXN0b3JlIHNwX1NWQwogCkBAIC0zMTgsOCArMzE4LDggQEAKIAogCS5tYWNybyBnZXRfYmFkX3N0YWNrCiAJbGRyCXIxMywgX2FybWJvb3Rfc3RhcnQJCUAgc2V0dXAgb3VyIG1vZGUgc3RhY2sKLQlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjEzLCByMTMsICMoQ0ZHX0dCTF9EQVRBX1NJWkUrOCkgQCByZXNlcnZlZCBhIGNvdXBsZSBzcG90cyBpbiBhYm9ydCBzdGFjaworCXN1YglyMTMsIHIxMywgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKIAogCXN0cglsciwgW3IxM10JCQlAIHNhdmUgY2FsbGVyIGxyIC8gc3BzcgogCW1ycwlsciwgc3BzcgpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyMjd4L2NwdV9pbml0LmMgYi9jcHUvbWNmNTIyN3gvY3B1X2luaXQuYwppbmRleCBjZjI5NTU5Li4wZjFkZDFmIDEwMDY0NAotLS0gYS9jcHUvbWNmNTIyN3gvY3B1X2luaXQuYworKysgYi9jcHUvbWNmNTIyN3gvY3B1X2luaXQuYwpAQCAtNTgsNDAgKzU4LDQwIEBACiAJc2NtMS0+cGFjcmcgPSAwOwogCXNjbTEtPnBhY3JpID0gMDsKIAotI2lmIChkZWZpbmVkKENGR19DUzBfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MwX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMF9DVFJMKSkKLQlmYmNzLT5jc2FyMCA9IENGR19DUzBfQkFTRTsKLQlmYmNzLT5jc2NyMCA9IENGR19DUzBfQ1RSTDsKLQlmYmNzLT5jc21yMCA9IENGR19DUzBfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMF9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfQ1RSTCkpCisJZmJjcy0+Y3NhcjAgPSBDT05GSUdfU1lTX0NTMF9CQVNFOworCWZiY3MtPmNzY3IwID0gQ09ORklHX1NZU19DUzBfQ1RSTDsKKwlmYmNzLT5jc21yMCA9IENPTkZJR19TWVNfQ1MwX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzFfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MxX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMV9DVFJMKSkKLQlmYmNzLT5jc2FyMSA9IENGR19DUzFfQkFTRTsKLQlmYmNzLT5jc2NyMSA9IENGR19DUzFfQ1RSTDsKLQlmYmNzLT5jc21yMSA9IENGR19DUzFfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfQ1RSTCkpCisJZmJjcy0+Y3NhcjEgPSBDT05GSUdfU1lTX0NTMV9CQVNFOworCWZiY3MtPmNzY3IxID0gQ09ORklHX1NZU19DUzFfQ1RSTDsKKwlmYmNzLT5jc21yMSA9IENPTkZJR19TWVNfQ1MxX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzJfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MyX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMl9DVFJMKSkKLQlmYmNzLT5jc2FyMiA9IENGR19DUzJfQkFTRTsKLQlmYmNzLT5jc2NyMiA9IENGR19DUzJfQ1RSTDsKLQlmYmNzLT5jc21yMiA9IENGR19DUzJfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMl9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfQ1RSTCkpCisJZmJjcy0+Y3NhcjIgPSBDT05GSUdfU1lTX0NTMl9CQVNFOworCWZiY3MtPmNzY3IyID0gQ09ORklHX1NZU19DUzJfQ1RSTDsKKwlmYmNzLT5jc21yMiA9IENPTkZJR19TWVNfQ1MyX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzNfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MzX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTM19DVFJMKSkKLQlmYmNzLT5jc2FyMyA9IENGR19DUzNfQkFTRTsKLQlmYmNzLT5jc2NyMyA9IENGR19DUzNfQ1RSTDsKLQlmYmNzLT5jc21yMyA9IENGR19DUzNfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTM19CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQ1RSTCkpCisJZmJjcy0+Y3NhcjMgPSBDT05GSUdfU1lTX0NTM19CQVNFOworCWZiY3MtPmNzY3IzID0gQ09ORklHX1NZU19DUzNfQ1RSTDsKKwlmYmNzLT5jc21yMyA9IENPTkZJR19TWVNfQ1MzX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzRfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M0X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNF9DVFJMKSkKLQlmYmNzLT5jc2FyNCA9IENGR19DUzRfQkFTRTsKLQlmYmNzLT5jc2NyNCA9IENGR19DUzRfQ1RSTDsKLQlmYmNzLT5jc21yNCA9IENGR19DUzRfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M0X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfQ1RSTCkpCisJZmJjcy0+Y3NhcjQgPSBDT05GSUdfU1lTX0NTNF9CQVNFOworCWZiY3MtPmNzY3I0ID0gQ09ORklHX1NZU19DUzRfQ1RSTDsKKwlmYmNzLT5jc21yNCA9IENPTkZJR19TWVNfQ1M0X01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzVfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M1X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNV9DVFJMKSkKLQlmYmNzLT5jc2FyNSA9IENGR19DUzVfQkFTRTsKLQlmYmNzLT5jc2NyNSA9IENGR19DUzVfQ1RSTDsKLQlmYmNzLT5jc21yNSA9IENGR19DUzVfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M1X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzVfQ1RSTCkpCisJZmJjcy0+Y3NhcjUgPSBDT05GSUdfU1lTX0NTNV9CQVNFOworCWZiY3MtPmNzY3I1ID0gQ09ORklHX1NZU19DUzVfQ1RSTDsKKwlmYmNzLT5jc21yNSA9IENPTkZJR19TWVNfQ1M1X01BU0s7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCkBAIC0xMDcsMTIgKzEwNywxMiBAQAogaW50IGNwdV9pbml0X3Iodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfTUNGUlRDCi0Jdm9sYXRpbGUgcnRjX3QgKnJ0YyA9ICh2b2xhdGlsZSBydGNfdCAqKShDRkdfTUNGUlRDX0JBU0UpOworCXZvbGF0aWxlIHJ0Y190ICpydGMgPSAodm9sYXRpbGUgcnRjX3QgKikoQ09ORklHX1NZU19NQ0ZSVENfQkFTRSk7CiAJdm9sYXRpbGUgcnRjZXhfdCAqcnRjZXggPSAodm9sYXRpbGUgcnRjZXhfdCAqKSZydGMtPmV4dGVuZGVkOwotCXUzMiBvc2NpbGxhdG9yID0gQ0ZHX1JUQ19PU0NJTExBVE9SOworCXUzMiBvc2NpbGxhdG9yID0gQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUjsKIAotCXJ0Y2V4LT5nb2N1ID0gKENGR19SVENfT1NDSUxMQVRPUiA+PiAxNikgJiAweEZGRkY7Ci0JcnRjZXgtPmdvY2wgPSBDRkdfUlRDX09TQ0lMTEFUT1IgJiAweEZGRkY7CisJcnRjZXgtPmdvY3UgPSAoQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUiA+PiAxNikgJiAweEZGRkY7CisJcnRjZXgtPmdvY2wgPSBDT05GSUdfU1lTX1JUQ19PU0NJTExBVE9SICYgMHhGRkZGOwogI2VuZGlmCiAKIAlyZXR1cm4gKDApOwpAQCAtMTIzLDcgKzEyMyw3IEBACiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKSBNTUFQX0dQSU87CiAKIAkvKiBTZXR1cCBQb3J0czogKi8KLQlzd2l0Y2ggKENGR19VQVJUX1BPUlQpIHsKKwlzd2l0Y2ggKENPTkZJR19TWVNfVUFSVF9QT1JUKSB7CiAJY2FzZSAwOgogCQlncGlvLT5wYXJfdWFydCAmPQogCQkgICAgKEdQSU9fUEFSX1VBUlRfVTBUWERfTUFTSyAmIEdQSU9fUEFSX1VBUlRfVTBSWERfTUFTSyk7CmRpZmYgLS1naXQgYS9jcHUvbWNmNTIyN3gvaW50ZXJydXB0cy5jIGIvY3B1L21jZjUyMjd4L2ludGVycnVwdHMuYwppbmRleCA5NTcyYTdiLi44NTgyOGE2IDEwMDY0NAotLS0gYS9jcHUvbWNmNTIyN3gvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tY2Y1MjI3eC9pbnRlcnJ1cHRzLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogaW50IGludGVycnVwdF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJLyogTWFrZSBzdXJlIGFsbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCAqLwogCWludHAtPmltcmgwIHw9IDB4RkZGRkZGRkY7CkBAIC00NCw5ICs0NCw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfTUNGVE1SKQogdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKQogewotCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENGR19JTlRSX0JBU0UpOworCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENPTkZJR19TWVNfSU5UUl9CQVNFKTsKIAotCWludHAtPmljcjBbQ0ZHX1RNUklOVFJfTk9dID0gQ0ZHX1RNUklOVFJfUFJJOwotCWludHAtPmltcmgwICY9IH5DRkdfVE1SSU5UUl9NQVNLOworCWludHAtPmljcjBbQ09ORklHX1NZU19UTVJJTlRSX05PXSA9IENPTkZJR19TWVNfVE1SSU5UUl9QUkk7CisJaW50cC0+aW1yaDAgJj0gfkNPTkZJR19TWVNfVE1SSU5UUl9NQVNLOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbWNmNTIyN3gvc3BlZWQuYyBiL2NwdS9tY2Y1MjI3eC9zcGVlZC5jCmluZGV4IDBiYWY5YmMuLjc0YjkwNTkgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MjI3eC9zcGVlZC5jCisrKyBiL2NwdS9tY2Y1MjI3eC9zcGVlZC5jCkBAIC05OSwxNCArOTksMTQgQEAKIAkJLyogc2VyaWFsIG1vZGUgKi8KIAl9IGVsc2UgewogCQkvKiBOb3JtYWwgTW9kZSAqLwotCQl2Y28gPSBwZmRyICogQ0ZHX0lOUFVUX0NMS1NSQzsKKwkJdmNvID0gcGZkciAqIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwogCQlnZC0+dmNvX2NsayA9IHZjbzsKIAl9CiAKIAlpZiAoKGNjbS0+Y2NyICYgQ0NNX01JU0NDUl9MSU1QKSA9PSBDQ01fTUlTQ0NSX0xJTVApIHsKIAkJLyogTGltcCBtb2RlICovCiAJfSBlbHNlIHsKLQkJZ2QtPmlucF9jbGsgPSBDRkdfSU5QVVRfQ0xLU1JDOwkvKiBJbnB1dCBjbG9jayAqLworCQlnZC0+aW5wX2NsayA9IENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwkvKiBJbnB1dCBjbG9jayAqLwogCiAJCXRlbXAgPSAocGxsLT5wY3IgJiBQTExfUENSX09VVERJVjFfTUFTSykgKyAxOwogCQlnZC0+Y3B1X2NsayA9IHZjbyAvIHRlbXA7CS8qIGNwdSBjbG9jayAqLwpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyMjd4L3N0YXJ0LlMgYi9jcHUvbWNmNTIyN3gvc3RhcnQuUwppbmRleCAxYjQ3Yzk3Li5iZWNhYWI3IDEwMDY0NAotLS0gYS9jcHUvbWNmNTIyN3gvc3RhcnQuUworKysgYi9jcHUvbWNmNTIyN3gvc3RhcnQuUwpAQCAtMjksOSArMjksOSBAQAogI2VuZGlmCiAKIC8qIGxhc3QgdGhyZWUgbG9uZyB3b3JkIHJlc2VydmVkIGZvciBjYWNoZSBzdGF0dXMgKi8KLSNkZWZpbmUgSUNBQ0hFX1NUQVRVUwkoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC0gNCkKLSNkZWZpbmUgRENBQ0hFX1NUQVRVUwkoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC0gOCkKLSNkZWZpbmUgQ0FDUl9TVEFUVVMJKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtMTIpCisjZGVmaW5lIElDQUNIRV9TVEFUVVMJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC0gNCkKKyNkZWZpbmUgRENBQ0hFX1NUQVRVUwkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELSA4KQorI2RlZmluZSBDQUNSX1NUQVRVUwkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTEyKQogCiAjZGVmaW5lIF9TVEFSVAlfc3RhcnQKICNkZWZpbmUgX0ZBVUxUCV9mYXVsdApAQCAtMTMyLDEwICsxMzIsMTAgQEAKIAltb3ZlLncgIzB4MjcwMCwlc3IJCS8qIE1hc2sgb2ZmIEludGVycnVwdCAqLwogCiAJLyogU2V0IHZlY3RvciBiYXNlIHJlZ2lzdGVyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEZsYXNoICovCi0JbW92ZS5sCSNDRkdfRkxBU0hfQkFTRSwgJWQwCisJbW92ZS5sCSNDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICVkMAogCW1vdmVjCSVkMCwgJVZCUgogCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9SQU1fQ1RSTCksICVkMAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTCksICVkMAogCW1vdmVjCSVkMCwgJVJBTUJBUjEKIAogCS8qIGluaXRpYWxpemUgZ2VuZXJhbCB1c2UgaW50ZXJuYWwgcmFtICovCkBAIC0xNTYsNyArMTU2LDcgQEAKIAogCS8qIHNldCBzdGFja3BvaW50ZXIgdG8gZW5kIG9mIGludGVybmFsIHJhbSB0byBnZXQgc29tZSBzdGFja3NwYWNlIGZvcgogCSAgIHRoZSBmaXJzdCBjLWNvZGUgKi8KLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIENGR19JTklUX1NQX09GRlNFVCksICVzcAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQpLCAlc3AKIAljbHIubCAlc3BALQogCiAJbW92ZS5sICNfX2dvdF9zdGFydCwgJWE1CS8qIHB1dCByZWxvY2F0aW9uIHRhYmxlIGFkZHJlc3MgdG8gYTUgKi8KQEAgLTE4Nyw3ICsxODcsNyBAQAogCW1vdmUubCAxMiglYTYpLCAlZDAJCS8qIFNhdmUgY29weSBvZiBHbG9iYWwgRGF0YSBwb2ludGVyICovCiAJbW92ZS5sIDE2KCVhNiksICVhMAkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KIAotCW1vdmUubCAjQ0ZHX01PTklUT1JfQkFTRSwgJWExCisJbW92ZS5sICNDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgJWExCiAJbW92ZS5sICNfX2luaXRfZW5kLCAlYTIKIAltb3ZlLmwgJWEwLCAlYTMKIApAQCAtMjAyLDcgKzIwMiw3IEBACiAgKiBpbml0aWFsaXphdGlvbiwgbm93IHJ1bm5pbmcgZnJvbSBSQU0uCiAgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKGluX3JhbSAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubAkjKGluX3JhbSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAJam1wCSglYTEpCiAKIGluX3JhbToKQEAgLTIxMiw5ICsyMTIsOSBAQAogCSAqIE5vdyBjbGVhciBCU1Mgc2VnbWVudAogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX3Nic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9zYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTAsICVkMQotCWFkZC5sCSMoX2Vic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlZDEKKwlhZGQubAkjKF9lYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVkMQogNjoKIAljbHIubAkoJWExKSsKIAljbXAubAklYTEsJWQxCkBAIC0yMjQsMTEgKzIyNCwxMSBAQAogCSAqIGZpeCBnb3QgdGFibGUgaW4gUkFNCiAJICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhfX2dvdF9zdGFydCAtIENGR19NT05JVE9SX0JBU0UpLCVhMQorCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWExCiAJbW92ZS5sCSVhMSwlYTUJCQkvKiAqIGZpeCBnb3QgcG9pbnRlciByZWdpc3RlciBhNSAqLwogCiAJbW92ZS5sCSVhMCwgJWEyCi0JYWRkLmwJIyhfX2dvdF9lbmQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTIKKwlhZGQubAkjKF9fZ290X2VuZCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTIKIAogNzoKIAltb3ZlLmwJKCVhMSksJWQxCkBAIC0yNDAsNyArMjQwLDcgQEAKIAogCS8qIGNhbGN1bGF0ZSByZWxhdGl2ZSBqdW1wIHRvIGJvYXJkX2luaXRfciBpbiByYW0gKi8KIAltb3ZlLmwgJWEwLCAlYTEKLQlhZGQubCAjKGJvYXJkX2luaXRfciAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubCAjKGJvYXJkX2luaXRfciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAKIAkvKiBzZXQgcGFyYW1ldGVycyBmb3IgYm9hcmRfaW5pdF9yICovCiAJbW92ZS5sICVhMCwtKCVzcCkJCS8qIGRlc3RfYWRkciAqLwpAQCAtMjc2LDcgKzI3Niw3IEBACiAJbW92ZS5sCSMweDAxMjAwMDAwLCAlZDAJLyogSW52YWxpZCBjYWNoZSAqLwogCW1vdmVjCSVkMCwgJUNBQ1IKIAotCW1vdmUubAkjKENGR19TRFJBTV9CQVNFICsgMHgxYzAwMCksICVkMAorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MWMwMDApLCAlZDAKIAltb3ZlYwklZDAsICVBQ1IwCiAKIAltb3ZlLmwJIzB4ODE2MDA2MTAsICVkMAkvKiBFbmFibGUgY2FjaGUgKi8KZGlmZiAtLWdpdCBhL2NwdS9tY2Y1MjN4L2NwdS5jIGIvY3B1L21jZjUyM3gvY3B1LmMKaW5kZXggYmRjMTUyZi4uMWNlOTBmZCAxMDA2NDQKLS0tIGEvY3B1L21jZjUyM3gvY3B1LmMKKysrIGIvY3B1L21jZjUyM3gvY3B1LmMKQEAgLTk4LDcgKzk4LDcgQEAKIAl1MzIgd2RvZ19tb2R1bGUgPSAwOwogCiAJLyogc2V0IHRpbWVvdXQgYW5kIGVuYWJsZSB3YXRjaGRvZyAqLwotCXdkb2dfbW9kdWxlID0gKChDRkdfQ0xLIC8gQ0ZHX0haKSAqIENPTkZJR19XQVRDSERPR19USU1FT1VUKTsKKwl3ZG9nX21vZHVsZSA9ICgoQ09ORklHX1NZU19DTEsgLyBDT05GSUdfU1lTX0haKSAqIENPTkZJR19XQVRDSERPR19USU1FT1VUKTsKIAl3ZG9nX21vZHVsZSB8PSAod2RvZ19tb2R1bGUgLyA4MTkyKTsKIAl3ZHAtPm1yID0gd2RvZ19tb2R1bGU7CiAKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1MjN4L2NwdV9pbml0LmMgYi9jcHUvbWNmNTIzeC9jcHVfaW5pdC5jCmluZGV4IDhhYjViOGUuLjY1MjA5NDQgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MjN4L2NwdV9pbml0LmMKKysrIGIvY3B1L21jZjUyM3gvY3B1X2luaXQuYwpAQCAtNDksNjkgKzQ5LDY5IEBACiAJd2RvZy0+Y3IgPSAwOwogI2VuZGlmCiAKLQlzY20tPnJhbWJhciA9IChDRkdfSU5JVF9SQU1fQUREUiB8IFNDTV9SQU1CQVJfQkRFKTsKKwlzY20tPnJhbWJhciA9IChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBTQ01fUkFNQkFSX0JERSk7CiAKIAkvKiBQb3J0IGNvbmZpZ3VyYXRpb24gKi8KIAlncGlvLT5wYXJfY3MgPSAwOwogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzBfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MwX0NUUkwpKQotCWZiY3MtPmNzYXIwID0gQ0ZHX0NTMF9CQVNFOwotCWZiY3MtPmNzY3IwID0gQ0ZHX0NTMF9DVFJMOwotCWZiY3MtPmNzbXIwID0gQ0ZHX0NTMF9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MwX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9DVFJMKSkKKwlmYmNzLT5jc2FyMCA9IENPTkZJR19TWVNfQ1MwX0JBU0U7CisJZmJjcy0+Y3NjcjAgPSBDT05GSUdfU1lTX0NTMF9DVFJMOworCWZiY3MtPmNzbXIwID0gQ09ORklHX1NZU19DUzBfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMV9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzFfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MxX0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9DVFJMKSkKIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1NfQ1MxOwotCWZiY3MtPmNzYXIxID0gQ0ZHX0NTMV9CQVNFOwotCWZiY3MtPmNzY3IxID0gQ0ZHX0NTMV9DVFJMOwotCWZiY3MtPmNzbXIxID0gQ0ZHX0NTMV9NQVNLOworCWZiY3MtPmNzYXIxID0gQ09ORklHX1NZU19DUzFfQkFTRTsKKwlmYmNzLT5jc2NyMSA9IENPTkZJR19TWVNfQ1MxX0NUUkw7CisJZmJjcy0+Y3NtcjEgPSBDT05GSUdfU1lTX0NTMV9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1MyX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTMl9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzJfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzJfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX0NUUkwpKQogCWdwaW8tPnBhcl9jcyB8PSBHUElPX1BBUl9DU19DUzI7Ci0JZmJjcy0+Y3NhcjIgPSBDRkdfQ1MyX0JBU0U7Ci0JZmJjcy0+Y3NjcjIgPSBDRkdfQ1MyX0NUUkw7Ci0JZmJjcy0+Y3NtcjIgPSBDRkdfQ1MyX01BU0s7CisJZmJjcy0+Y3NhcjIgPSBDT05GSUdfU1lTX0NTMl9CQVNFOworCWZiY3MtPmNzY3IyID0gQ09ORklHX1NZU19DUzJfQ1RSTDsKKwlmYmNzLT5jc21yMiA9IENPTkZJR19TWVNfQ1MyX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzNfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MzX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTM19DVFJMKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTM19CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQ1RSTCkpCiAJZ3Bpby0+cGFyX2NzIHw9IEdQSU9fUEFSX0NTX0NTMzsKLQlmYmNzLT5jc2FyMyA9IENGR19DUzNfQkFTRTsKLQlmYmNzLT5jc2NyMyA9IENGR19DUzNfQ1RSTDsKLQlmYmNzLT5jc21yMyA9IENGR19DUzNfTUFTSzsKKwlmYmNzLT5jc2FyMyA9IENPTkZJR19TWVNfQ1MzX0JBU0U7CisJZmJjcy0+Y3NjcjMgPSBDT05GSUdfU1lTX0NTM19DVFJMOworCWZiY3MtPmNzbXIzID0gQ09ORklHX1NZU19DUzNfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzRfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M0X0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M0X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNF9DVFJMKSkKIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1NfQ1M0OwotCWZiY3MtPmNzYXI0ID0gQ0ZHX0NTNF9CQVNFOwotCWZiY3MtPmNzY3I0ID0gQ0ZHX0NTNF9DVFJMOwotCWZiY3MtPmNzbXI0ID0gQ0ZHX0NTNF9NQVNLOworCWZiY3MtPmNzYXI0ID0gQ09ORklHX1NZU19DUzRfQkFTRTsKKwlmYmNzLT5jc2NyNCA9IENPTkZJR19TWVNfQ1M0X0NUUkw7CisJZmJjcy0+Y3NtcjQgPSBDT05GSUdfU1lTX0NTNF9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1M1X0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTNV9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzVfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzVfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M1X0NUUkwpKQogCWdwaW8tPnBhcl9jcyB8PSBHUElPX1BBUl9DU19DUzU7Ci0JZmJjcy0+Y3NhcjUgPSBDRkdfQ1M1X0JBU0U7Ci0JZmJjcy0+Y3NjcjUgPSBDRkdfQ1M1X0NUUkw7Ci0JZmJjcy0+Y3NtcjUgPSBDRkdfQ1M1X01BU0s7CisJZmJjcy0+Y3NhcjUgPSBDT05GSUdfU1lTX0NTNV9CQVNFOworCWZiY3MtPmNzY3I1ID0gQ09ORklHX1NZU19DUzVfQ1RSTDsKKwlmYmNzLT5jc21yNSA9IENPTkZJR19TWVNfQ1M1X01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzZfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M2X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNl9DVFJMKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNl9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M2X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzZfQ1RSTCkpCiAJZ3Bpby0+cGFyX2NzIHw9IEdQSU9fUEFSX0NTX0NTNjsKLQlmYmNzLT5jc2FyNiA9IENGR19DUzZfQkFTRTsKLQlmYmNzLT5jc2NyNiA9IENGR19DUzZfQ1RSTDsKLQlmYmNzLT5jc21yNiA9IENGR19DUzZfTUFTSzsKKwlmYmNzLT5jc2FyNiA9IENPTkZJR19TWVNfQ1M2X0JBU0U7CisJZmJjcy0+Y3NjcjYgPSBDT05GSUdfU1lTX0NTNl9DVFJMOworCWZiY3MtPmNzbXI2ID0gQ09ORklHX1NZU19DUzZfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTN19CQVNFKSAmJiBkZWZpbmVkKENGR19DUzdfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M3X0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M3X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzdfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTN19DVFJMKSkKIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1NfQ1M3OwotCWZiY3MtPmNzYXI3ID0gQ0ZHX0NTN19CQVNFOwotCWZiY3MtPmNzY3I3ID0gQ0ZHX0NTN19DVFJMOwotCWZiY3MtPmNzbXI3ID0gQ0ZHX0NTN19NQVNLOworCWZiY3MtPmNzYXI3ID0gQ09ORklHX1NZU19DUzdfQkFTRTsKKwlmYmNzLT5jc2NyNyA9IENPTkZJR19TWVNfQ1M3X0NUUkw7CisJZmJjcy0+Y3NtcjcgPSBDT05GSUdfU1lTX0NTN19NQVNLOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRlNMX0kyQwotCUNGR19JMkNfUElOTVVYX1JFRyAmPSBDRkdfSTJDX1BJTk1VWF9DTFI7Ci0JQ0ZHX0kyQ19QSU5NVVhfUkVHIHw9IENGR19JMkNfUElOTVVYX1NFVDsKKwlDT05GSUdfU1lTX0kyQ19QSU5NVVhfUkVHICY9IENPTkZJR19TWVNfSTJDX1BJTk1VWF9DTFI7CisJQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRyB8PSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfU0VUOwogI2VuZGlmCiAKIAlpY2FjaGVfZW5hYmxlKCk7CkBAIC0xMzAsNyArMTMwLDcgQEAKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl91YXJ0ID0gKEdQSU9fUEFSX1VBUlRfVTBSWEQgfCBHUElPX1BBUl9VQVJUX1UwVFhEKTsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9jcHUvbWNmNTIzeC9pbnRlcnJ1cHRzLmMgYi9jcHUvbWNmNTIzeC9pbnRlcnJ1cHRzLmMKaW5kZXggMTI1YzUzYi4uZGI1Y2NkZiAxMDA2NDQKLS0tIGEvY3B1L21jZjUyM3gvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tY2Y1MjN4L2ludGVycnVwdHMuYwpAQCAtMjgsNyArMjgsNyBAQAogCiBpbnQgaW50ZXJydXB0X2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDRkdfSU5UUl9CQVNFKTsKKwl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDT05GSUdfU1lTX0lOVFJfQkFTRSk7CiAKIAkvKiBNYWtlIHN1cmUgYWxsIGludGVycnVwdHMgYXJlIGRpc2FibGVkICovCiAJaW50cC0+aW1ybDAgfD0gMHgxOwpAQCAtNDAsMTAgKzQwLDEwIEBACiAjaWYgZGVmaW5lZChDT05GSUdfTUNGVE1SKQogdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKQogewotCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENGR19JTlRSX0JBU0UpOworCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENPTkZJR19TWVNfSU5UUl9CQVNFKTsKIAotCWludHAtPmljcjBbQ0ZHX1RNUklOVFJfTk9dID0gQ0ZHX1RNUklOVFJfUFJJOworCWludHAtPmljcjBbQ09ORklHX1NZU19UTVJJTlRSX05PXSA9IENPTkZJR19TWVNfVE1SSU5UUl9QUkk7CiAJaW50cC0+aW1ybDAgJj0gfklOVENfSVBSTF9JTlQwOwotCWludHAtPmltcmwwICY9IH5DRkdfVE1SSU5UUl9NQVNLOworCWludHAtPmltcmwwICY9IH5DT05GSUdfU1lTX1RNUklOVFJfTUFTSzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyM3gvc3BlZWQuYyBiL2NwdS9tY2Y1MjN4L3NwZWVkLmMKaW5kZXggMWJkYTJkNC4uNjA5NmJhNCAxMDA2NDQKLS0tIGEvY3B1L21jZjUyM3gvc3BlZWQuYworKysgYi9jcHUvbWNmNTIzeC9zcGVlZC5jCkBAIC00Miw3ICs0Miw3IEBACiAKIAl3aGlsZSAoIShwbGwtPnN5bnNyICYgUExMX1NZTlNSX0xPQ0spKTsKIAotCWdkLT5idXNfY2xrID0gQ0ZHX0NMSzsKKwlnZC0+YnVzX2NsayA9IENPTkZJR19TWVNfQ0xLOwogCWdkLT5jcHVfY2xrID0gKGdkLT5idXNfY2xrICogMik7CiAKICNpZmRlZiBDT05GSUdfRlNMX0kyQwpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyM3gvc3RhcnQuUyBiL2NwdS9tY2Y1MjN4L3N0YXJ0LlMKaW5kZXggMmI2MzhkZi4uYjcwYjgzYiAxMDA2NDQKLS0tIGEvY3B1L21jZjUyM3gvc3RhcnQuUworKysgYi9jcHUvbWNmNTIzeC9zdGFydC5TCkBAIC0xMjcsMTAgKzEyNywxMCBAQAogCW1vdmUudyAjMHgyNzAwLCVzcgkvKiBNYXNrIG9mZiBJbnRlcnJ1cHQgKi8KIAogCS8qIFNldCB2ZWN0b3IgYmFzZSByZWdpc3RlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBGbGFzaCAqLwotCW1vdmUubAkjQ0ZHX0ZMQVNIX0JBU0UsICVkMAorCW1vdmUubAkjQ09ORklHX1NZU19GTEFTSF9CQVNFLCAlZDAKIAltb3ZlYwklZDAsICVWQlIKIAotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfUkFNX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfUkFNX0NUUkwpLCAlZDAKIAltb3ZlYwklZDAsICVSQU1CQVIxCiAKIAkvKiBpbnZhbGlkYXRlIGFuZCBkaXNhYmxlIGNhY2hlICovCkBAIC0xNDMsMTQgKzE0MywxNCBAQAogCiAJLyogaW5pdGlhbGl6ZSBnZW5lcmFsIHVzZSBpbnRlcm5hbCByYW0gKi8KIAltb3ZlLmwgIzAsICVkMAotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtOCksICVhMQotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtNCksICVhMgorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC04KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTQpLCAlYTIKIAltb3ZlLmwgJWQwLCAoJWExKQogCW1vdmUubCAlZDAsICglYTIpCiAKIAkvKiBzZXQgc3RhY2twb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbCByYW0gdG8gZ2V0IHNvbWUgc3RhY2tzcGFjZSBmb3IgdGhlCiAJICAgZmlyc3QgYy1jb2RlICovCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9TUF9PRkZTRVQpLCAlc3AKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCiAJY2xyLmwgJXNwQC0KIAogCW1vdmUubCAjX19nb3Rfc3RhcnQsICVhNQkvKiBwdXQgcmVsb2NhdGlvbiB0YWJsZSBhZGRyZXNzIHRvIGE1ICovCkBAIC0xODEsNyArMTgxLDcgQEAKIAltb3ZlLmwgMTIoJWE2KSwgJWQwCQkvKiBTYXZlIGNvcHkgb2YgR2xvYmFsIERhdGEgcG9pbnRlciAqLwogCW1vdmUubCAxNiglYTYpLCAlYTAJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKLQltb3ZlLmwgI0NGR19NT05JVE9SX0JBU0UsICVhMQorCW1vdmUubCAjQ09ORklHX1NZU19NT05JVE9SX0JBU0UsICVhMQogCW1vdmUubCAjX19pbml0X2VuZCwgJWEyCiAJbW92ZS5sICVhMCwgJWEzCiAKQEAgLTE5Niw3ICsxOTYsNyBAQAogICogaW5pdGlhbGl6YXRpb24sIG5vdyBydW5uaW5nIGZyb20gUkFNLgogICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhpbl9yYW0gLSBDRkdfTU9OSVRPUl9CQVNFKSwgJWExCisJYWRkLmwJIyhpbl9yYW0gLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksICVhMQogCWptcAkoJWExKQogCiBpbl9yYW06CkBAIC0yMDYsOSArMjA2LDkgQEAKIAkgKiBOb3cgY2xlYXIgQlNTIHNlZ21lbnQKIAkgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKF9zYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWExCisJYWRkLmwJIyhfc2JzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTEKIAltb3ZlLmwJJWEwLCAlZDEKLQlhZGQubAkjKF9lYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWQxCisJYWRkLmwJIyhfZWJzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlZDEKIDY6CiAJY2xyLmwJKCVhMSkrCiAJY21wLmwJJWExLCVkMQpAQCAtMjE4LDExICsyMTgsMTEgQEAKIAkgKiBmaXggZ290IHRhYmxlIGluIFJBTQogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9fZ290X3N0YXJ0IC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTEsJWE1CQkvKiAqIGZpeCBnb3QgcG9pbnRlciByZWdpc3RlciBhNSAqLwogCiAJbW92ZS5sCSVhMCwgJWEyCi0JYWRkLmwJIyhfX2dvdF9lbmQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTIKKwlhZGQubAkjKF9fZ290X2VuZCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTIKIAogNzoKIAltb3ZlLmwJKCVhMSksJWQxCkBAIC0yMzQsNyArMjM0LDcgQEAKIAogCS8qIGNhbGN1bGF0ZSByZWxhdGl2ZSBqdW1wIHRvIGJvYXJkX2luaXRfciBpbiByYW0gKi8KIAltb3ZlLmwgJWEwLCAlYTEKLQlhZGQubCAjKGJvYXJkX2luaXRfciAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubCAjKGJvYXJkX2luaXRfciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAKIAkvKiBzZXQgcGFyYW1ldGVycyBmb3IgYm9hcmRfaW5pdF9yICovCiAJbW92ZS5sICVhMCwtKCVzcCkJCS8qIGRlc3RfYWRkciAqLwpAQCAtMjcwLDE2ICsyNzAsMTYgQEAKIAltb3ZlLmwJIzB4MDEwMDAwMDAsICVkMAkJLyogSW52YWxpZGF0ZSBjYWNoZSBjbWQgKi8KIAltb3ZlYwklZDAsICVDQUNSCQkJLyogSW52YWxpZGF0ZSBjYWNoZSAqLwogCW5vcAotCW1vdmUubAkjKENGR19TRFJBTV9CQVNFICsgMHhjMDAwKSwgJWQwCS8qIFNldHVwIGNhY2hlIG1hc2sgKi8KKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweGMwMDApLCAlZDAJLyogU2V0dXAgY2FjaGUgbWFzayAqLwogCW1vdmVjCSVkMCwgJUFDUjAJCQkvKiBFbmFibGUgY2FjaGUgKi8KLQltb3ZlLmwJIyhDRkdfRkxBU0hfQkFTRSArIDB4YzAwMCksICVkMAkvKiBTZXR1cCBjYWNoZSBtYXNrICovCisJbW92ZS5sCSMoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHhjMDAwKSwgJWQwCS8qIFNldHVwIGNhY2hlIG1hc2sgKi8KIAltb3ZlYwklZDAsICVBQ1IxCQkJLyogRW5hYmxlIGNhY2hlICovCiAKIAltb3ZlLmwJIzB4ODA0MDAxMDAsICVkMAkJLyogU2V0dXAgY2FjaGUgbWFzayAqLwogCW1vdmVjCSVkMCwgJUNBQ1IJCQkvKiBFbmFibGUgY2FjaGUgKi8KIAlub3AKIAotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtOCksICVhMQorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC04KSwgJWExCiAJbW92ZXEJIzEsICVkMAogCW1vdmUubAklZDAsICglYTEpCiAJcnRzCkBAIC0yOTIsMTQgKzI5MiwxNCBAQAogCW1vdmVjCSVkMCwgJUFDUjAKIAltb3ZlYwklZDAsICVBQ1IxCiAKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTgpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtOCksICVhMQogCW1vdmVxCSMwLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwogCiAJLmdsb2JsCWljYWNoZV9zdGF0dXMKIGljYWNoZV9zdGF0dXM6Ci0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC04KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTgpLCAlYTEKIAltb3ZlLmwJKCVhMSksICVkMAogCXJ0cwogCkBAIC0zMTIsNyArMzEyLDcgQEAKIAogCS5nbG9ibAlkY2FjaGVfZW5hYmxlCiBkY2FjaGVfZW5hYmxlOgotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtNCksICVhMQorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC00KSwgJWExCiAJbW92ZXEJIzEsICVkMAogCW1vdmUubAklZDAsICglYTEpCiAJcnRzCkBAIC0zMjAsMTQgKzMyMCwxNCBAQAogICAgIC8qIE5vIGRjYWNoZSwganVzdCBhIGR1bW15IGZ1bmN0aW9uICovCiAJLmdsb2JsCWRjYWNoZV9kaXNhYmxlCiBkY2FjaGVfZGlzYWJsZToKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTQpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtNCksICVhMQogCW1vdmVxCSMwLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwogCiAJLmdsb2JsCWRjYWNoZV9zdGF0dXMKIGRjYWNoZV9zdGF0dXM6Ci0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC00KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTQpLCAlYTEKIAltb3ZlLmwJKCVhMSksICVkMAogCXJ0cwogCmRpZmYgLS1naXQgYS9jcHUvbWNmNTJ4Mi9jcHUuYyBiL2NwdS9tY2Y1MngyL2NwdS5jCmluZGV4IGMyNTY3MGQuLjMyZDZjNDAgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MngyL2NwdS5jCisrKyBiL2NwdS9tY2Y1MngyL2NwdS5jCkBAIC02NiwxMSArNjYsMTEgQEAKIAogCWlmIChjcHVfbW9kZWwpCiAJCXByaW50ZigiQ1BVOiAgIEZyZWVzY2FsZSBDb2xkRmlyZSBNQ0YlcyByZXYuICVodSwgYXQgJXMgTUh6XG4iLAotCQkgICAgICAgY3B1X21vZGVsLCBwcm4sIHN0cm1oeihidWYsIENGR19DTEspKTsKKwkJICAgICAgIGNwdV9tb2RlbCwgcHJuLCBzdHJtaHooYnVmLCBDT05GSUdfU1lTX0NMSykpOwogCWVsc2UKIAkJcHJpbnRmKCJDUFU6ICAgVW5rbm93biAtIEZyZWVzY2FsZSBDb2xkRmlyZSBNQ0Y1MjcxIGZhbWlseSIKIAkJICAgICAgICIgKFBJTjogMHgleCkgcmV2LiAlaHUsIGF0ICVzIE1IelxuIiwKLQkJICAgICAgIHBpbiwgcHJuLCBzdHJtaHooYnVmLCBDRkdfQ0xLKSk7CisJCSAgICAgICBwaW4sIHBybiwgc3RybWh6KGJ1ZiwgQ09ORklHX1NZU19DTEspKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTc0LDcgKzE3NCw3IEBACiAKIAkvKiBzZXQgdGltZW91dCBhbmQgZW5hYmxlIHdhdGNoZG9nICovCiAJd2R0LT53ZG9nX3dycnIgPQotCSAgICAoKENPTkZJR19XQVRDSERPR19USU1FT1VUICogQ0ZHX0haKSAvICgzMjc2OCAqIDEwMDApKSAtIDE7CisJICAgICgoQ09ORklHX1dBVENIRE9HX1RJTUVPVVQgKiBDT05GSUdfU1lTX0haKSAvICgzMjc2OCAqIDEwMDApKSAtIDE7CiAJd2R0LT53ZG9nX3djciA9IDA7CS8qIHJlc2V0IHdhdGNoZG9nIGNvdW50ZXIgKi8KIAogCXB1dHMoIldBVENIRE9HOmVuYWJsZWRcbiIpOwpAQCAtMjAyLDcgKzIwMiw3IEBACiAJY2hhciBidWZbMzJdOwogCiAJcHJpbnRmKCJDUFU6ICAgRnJlZXNjYWxlIENvbGRmaXJlIE1DRjUyNzUgYXQgJXMgTUh6XG4iLAotCQkJc3RybWh6KGJ1ZiwgQ0ZHX0NMSykpOworCQkJc3RybWh6KGJ1ZiwgQ09ORklHX1NZU19DTEspKTsKIAlyZXR1cm4gMDsKIH07CiAKQEAgLTIzNiw3ICsyMzYsNyBAQAogCiAJLyogc2V0IHRpbWVvdXQgYW5kIGVuYWJsZSB3YXRjaGRvZyAqLwogCXdkdC0+d21yID0KLQkJKChDT05GSUdfV0FUQ0hET0dfVElNRU9VVCAqIENGR19IWikgLyAoMzI3NjggKiAxMDAwKSkgLSAxOworCQkoKENPTkZJR19XQVRDSERPR19USU1FT1VUICogQ09ORklHX1NZU19IWikgLyAoMzI3NjggKiAxMDAwKSkgLSAxOwogCXdkdC0+d3NyID0gMHg1NTU1OyAvKiByZXNldCB3YXRjaGRvZyBjb3VudGVyICovCiAJd2R0LT53c3IgPSAweEFBQUE7CiAKQEAgLTI3OCw3ICsyNzgsNyBAQAogCWNoYXIgYnVmWzMyXTsKIAogCXByaW50ZigiQ1BVOiAgIEZyZWVzY2FsZSBDb2xkZmlyZSBNQ0Y1MjQ5IGF0ICVzIE1IelxuIiwKLQkgICAgICAgc3RybWh6KGJ1ZiwgQ0ZHX0NMSykpOworCSAgICAgICBzdHJtaHooYnVmLCBDT05GSUdfU1lTX0NMSykpOwogCXJldHVybiAwOwogfQogCkBAIC0zMDAsNyArMzAwLDcgQEAKIAogCXVuc2lnbmVkIGNoYXIgcmVzZXRzb3VyY2UgPSBtYmFyX3JlYWRMb25nKFNJTV9SU1IpOwogCXByaW50ZigiQ1BVOiAgIEZyZWVzY2FsZSBDb2xkZmlyZSBNQ0Y1MjUzIGF0ICVzIE1IelxuIiwKLQkgICAgICAgc3RybWh6KGJ1ZiwgQ0ZHX0NMSykpOworCSAgICAgICBzdHJtaHooYnVmLCBDT05GSUdfU1lTX0NMSykpOwogCiAJaWYgKChyZXNldHNvdXJjZSAmIFNJTV9SU1JfSFJTVCkgfHwgKHJlc2V0c291cmNlICYgU0lNX1JTUl9TV1RSKSkgewogCQlwcmludGYoIlJlc2V0OiVzJXNcbiIsCmRpZmYgLS1naXQgYS9jcHUvbWNmNTJ4Mi9jcHVfaW5pdC5jIGIvY3B1L21jZjUyeDIvY3B1X2luaXQuYwppbmRleCA2OGFlZmU5Li43YmIzNThlIDEwMDY0NAotLS0gYS9jcHUvbWNmNTJ4Mi9jcHVfaW5pdC5jCisrKyBiL2NwdS9tY2Y1MngyL2NwdV9pbml0LmMKQEAgLTcyLDIwICs3MiwyMCBAQAogCSAqICBTZXR1cCBjaGlwIHNlbGVjdHMuLi4KIAkgKi8KIAotCW1iYXJfd3JpdGVTaG9ydChNQ0ZTSU1fQ1NBUjEsIENGR19DU0FSMSk7Ci0JbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0NSMSwgQ0ZHX0NTQ1IxKTsKLQltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fQ1NNUjEsIENGR19DU01SMSk7CisJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0FSMSwgQ09ORklHX1NZU19DU0FSMSk7CisJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0NSMSwgQ09ORklHX1NZU19DU0NSMSk7CisJbWJhcl93cml0ZUxvbmcoTUNGU0lNX0NTTVIxLCBDT05GSUdfU1lTX0NTTVIxKTsKIAotCW1iYXJfd3JpdGVTaG9ydChNQ0ZTSU1fQ1NBUjAsIENGR19DU0FSMCk7Ci0JbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0NSMCwgQ0ZHX0NTQ1IwKTsKLQltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fQ1NNUjAsIENGR19DU01SMCk7CisJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0FSMCwgQ09ORklHX1NZU19DU0FSMCk7CisJbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0NSMCwgQ09ORklHX1NZU19DU0NSMCk7CisJbWJhcl93cml0ZUxvbmcoTUNGU0lNX0NTTVIwLCBDT05GSUdfU1lTX0NTTVIwKTsKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCi0JQ0ZHX0kyQ19QSU5NVVhfUkVHID0gQ0ZHX0kyQ19QSU5NVVhfUkVHICYgQ0ZHX0kyQ19QSU5NVVhfQ0xSOwotCUNGR19JMkNfUElOTVVYX1JFRyB8PSBDRkdfSTJDX1BJTk1VWF9TRVQ7Ci0jaWZkZWYgQ0ZHX0kyQzJfT0ZGU0VUCi0JQ0ZHX0kyQzJfUElOTVVYX1JFRyAmPSBDRkdfSTJDMl9QSU5NVVhfQ0xSOwotCUNGR19JMkMyX1BJTk1VWF9SRUcgfD0gQ0ZHX0kyQzJfUElOTVVYX1NFVDsKKwlDT05GSUdfU1lTX0kyQ19QSU5NVVhfUkVHID0gQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRyAmIENPTkZJR19TWVNfSTJDX1BJTk1VWF9DTFI7CisJQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRyB8PSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfU0VUOworI2lmZGVmIENPTkZJR19TWVNfSTJDMl9PRkZTRVQKKwlDT05GSUdfU1lTX0kyQzJfUElOTVVYX1JFRyAmPSBDT05GSUdfU1lTX0kyQzJfUElOTVVYX0NMUjsKKwlDT05GSUdfU1lTX0kyQzJfUElOTVVYX1JFRyB8PSBDT05GSUdfU1lTX0kyQzJfUElOTVVYX1NFVDsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTEwMiw3ICsxMDIsNyBAQAogdm9pZCB1YXJ0X3BvcnRfY29uZih2b2lkKQogewogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWJyZWFrOwogCWNhc2UgMToKQEAgLTEzOCw3ICsxMzgsNyBAQAogdm9pZCB1YXJ0X3BvcnRfY29uZih2b2lkKQogewogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCW1iYXJfd3JpdGVTaG9ydChNQ0ZfR1BJT19QQVJfVUFSVCwgTUNGX0dQSU9fUEFSX1VBUlRfVTBUWEQgfAogCQkJCU1DRl9HUElPX1BBUl9VQVJUX1UwUlhEKTsKQEAgLTE2OSw1OSArMTY5LDU5IEBACiAJICogYWxyZWFkeSBpbml0aWFsaXplZC4KIAkgKi8KICNpZm5kZWYgQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCi0Jdm9sYXRpbGUgc3lzY3RybF90ICpzeXNjdHJsID0gKHN5c2N0cmxfdCAqKSAoQ0ZHX01CQVIpOworCXZvbGF0aWxlIHN5c2N0cmxfdCAqc3lzY3RybCA9IChzeXNjdHJsX3QgKikgKENPTkZJR19TWVNfTUJBUik7CiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKSAoTU1BUF9HUElPKTsKIAl2b2xhdGlsZSBjc2N0cmxfdCAqY3NjdHJsID0gKGNzY3RybF90ICopIChNTUFQX0ZCQ1MpOwogCi0Jc3lzY3RybC0+c2Nfc2NyID0gQ0ZHX1NDUjsKLQlzeXNjdHJsLT5zY19zcHIgPSBDRkdfU1BSOworCXN5c2N0cmwtPnNjX3NjciA9IENPTkZJR19TWVNfU0NSOworCXN5c2N0cmwtPnNjX3NwciA9IENPTkZJR19TWVNfU1BSOwogCiAJLyogU2V0dXAgUG9ydHM6ICovCi0JZ3Bpby0+Z3Bpb19wYWNudCA9IENGR19QQUNOVDsKLQlncGlvLT5ncGlvX3BhZGRyID0gQ0ZHX1BBRERSOwotCWdwaW8tPmdwaW9fcGFkYXQgPSBDRkdfUEFEQVQ7Ci0JZ3Bpby0+Z3Bpb19wYmNudCA9IENGR19QQkNOVDsKLQlncGlvLT5ncGlvX3BiZGRyID0gQ0ZHX1BCRERSOwotCWdwaW8tPmdwaW9fcGJkYXQgPSBDRkdfUEJEQVQ7Ci0JZ3Bpby0+Z3Bpb19wZGNudCA9IENGR19QRENOVDsKKwlncGlvLT5ncGlvX3BhY250ID0gQ09ORklHX1NZU19QQUNOVDsKKwlncGlvLT5ncGlvX3BhZGRyID0gQ09ORklHX1NZU19QQUREUjsKKwlncGlvLT5ncGlvX3BhZGF0ID0gQ09ORklHX1NZU19QQURBVDsKKwlncGlvLT5ncGlvX3BiY250ID0gQ09ORklHX1NZU19QQkNOVDsKKwlncGlvLT5ncGlvX3BiZGRyID0gQ09ORklHX1NZU19QQkREUjsKKwlncGlvLT5ncGlvX3BiZGF0ID0gQ09ORklHX1NZU19QQkRBVDsKKwlncGlvLT5ncGlvX3BkY250ID0gQ09ORklHX1NZU19QRENOVDsKIAogCS8qIE1lbW9yeSBDb250cm9sbGVyOiAqLwotCWNzY3RybC0+Y3NfYnIwID0gQ0ZHX0JSMF9QUkVMSU07Ci0JY3NjdHJsLT5jc19vcjAgPSBDRkdfT1IwX1BSRUxJTTsKKwljc2N0cmwtPmNzX2JyMCA9IENPTkZJR19TWVNfQlIwX1BSRUxJTTsKKwljc2N0cmwtPmNzX29yMCA9IENPTkZJR19TWVNfT1IwX1BSRUxJTTsKIAotI2lmIChkZWZpbmVkKENGR19PUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSkKLQljc2N0cmwtPmNzX2JyMSA9IENGR19CUjFfUFJFTElNOwotCWNzY3RybC0+Y3Nfb3IxID0gQ0ZHX09SMV9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19PUjFfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIxX1BSRUxJTSkpCisJY3NjdHJsLT5jc19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CisJY3NjdHJsLT5jc19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pCi0JY3NjdHJsLT5jc19icjIgPSBDRkdfQlIyX1BSRUxJTTsKLQljc2N0cmwtPmNzX29yMiA9IENGR19PUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkKKwljc2N0cmwtPmNzX2JyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKKwljc2N0cmwtPmNzX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIzX1BSRUxJTSkKLQljc2N0cmwtPmNzX2JyMyA9IENGR19CUjNfUFJFTElNOwotCWNzY3RybC0+Y3Nfb3IzID0gQ0ZHX09SM19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjNfUFJFTElNKQorCWNzY3RybC0+Y3NfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOworCWNzY3RybC0+Y3Nfb3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjRfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjRfUFJFTElNKQotCWNzY3RybC0+Y3NfYnI0ID0gQ0ZHX0JSNF9QUkVMSU07Ci0JY3NjdHJsLT5jc19vcjQgPSBDRkdfT1I0X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I0X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSNF9QUkVMSU0pCisJY3NjdHJsLT5jc19icjQgPSBDT05GSUdfU1lTX0JSNF9QUkVMSU07CisJY3NjdHJsLT5jc19vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SNV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSNV9QUkVMSU0pCi0JY3NjdHJsLT5jc19icjUgPSBDRkdfQlI1X1BSRUxJTTsKLQljc2N0cmwtPmNzX29yNSA9IENGR19PUjVfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlI1X1BSRUxJTSkKKwljc2N0cmwtPmNzX2JyNSA9IENPTkZJR19TWVNfQlI1X1BSRUxJTTsKKwljc2N0cmwtPmNzX29yNSA9IENPTkZJR19TWVNfT1I1X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1I2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlI2X1BSRUxJTSkKLQljc2N0cmwtPmNzX2JyNiA9IENGR19CUjZfUFJFTElNOwotCWNzY3RybC0+Y3Nfb3I2ID0gQ0ZHX09SNl9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SNl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjZfUFJFTElNKQorCWNzY3RybC0+Y3NfYnI2ID0gQ09ORklHX1NZU19CUjZfUFJFTElNOworCWNzY3RybC0+Y3Nfb3I2ID0gQ09ORklHX1NZU19PUjZfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjdfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjdfUFJFTElNKQotCWNzY3RybC0+Y3NfYnI3ID0gQ0ZHX0JSN19QUkVMSU07Ci0JY3NjdHJsLT5jc19vcjcgPSBDRkdfT1I3X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I3X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSN19QUkVMSU0pCisJY3NjdHJsLT5jc19icjcgPSBDT05GSUdfU1lTX0JSN19QUkVMSU07CisJY3NjdHJsLT5jc19vcjcgPSBDT05GSUdfU1lTX09SN19QUkVMSU07CiAjZW5kaWYKIAogI2VuZGlmCQkJCS8qICNpZm5kZWYgQ09ORklHX01PTklUT1JfSVNfSU5fUkFNICovCkBAIC0yNDQsNyArMjQ0LDcgQEAKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPmdwaW9fcGJjbnQgJj0gfihHUElPX1BCQ05UX1BCME1TSyB8IEdQSU9fUEJDTlRfUEIxTVNLKTsKIAkJZ3Bpby0+Z3Bpb19wYmNudCB8PSAoR1BJT19QQkNOVF9VUlQwX1RYRCB8IEdQSU9fUEJDTlRfVVJUMF9SWEQpOwpAQCAtMjgyLDU3ICsyODIsNTcgQEAKIAogCS8qIE1lbW9yeSBDb250cm9sbGVyOiAqLwogCS8qIEZsYXNoICovCi0JY3NjdHJsX3JlZy0+YXIwID0gQ0ZHX0FSMF9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3IwID0gQ0ZHX0NSMF9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXIwID0gQ0ZHX01SMF9QUkVMSU07CisJY3NjdHJsX3JlZy0+YXIwID0gQ09ORklHX1NZU19BUjBfUFJFTElNOworCWNzY3RybF9yZWctPmNyMCA9IENPTkZJR19TWVNfQ1IwX1BSRUxJTTsKKwljc2N0cmxfcmVnLT5tcjAgPSBDT05GSUdfU1lTX01SMF9QUkVMSU07CiAKLSNpZiAoZGVmaW5lZChDRkdfQVIxX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1IxX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVIxX1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXIxID0gQ0ZHX0FSMV9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3IxID0gQ0ZHX0NSMV9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXIxID0gQ0ZHX01SMV9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjFfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1IxX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SMV9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyMSA9IENPTkZJR19TWVNfQVIxX1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjEgPSBDT05GSUdfU1lTX0NSMV9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXIxID0gQ09ORklHX1NZU19NUjFfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVIyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVIyX1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXIyID0gQ0ZHX0FSMl9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3IyID0gQ0ZHX0NSMl9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXIyID0gQ0ZHX01SMl9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SMl9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyMiA9IENPTkZJR19TWVNfQVIyX1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjIgPSBDT05GSUdfU1lTX0NSMl9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXIyID0gQ09ORklHX1NZU19NUjJfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVIzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVIzX1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXIzID0gQ0ZHX0FSM19QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3IzID0gQ0ZHX0NSM19QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXIzID0gQ0ZHX01SM19QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjNfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SM19QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyMyA9IENPTkZJR19TWVNfQVIzX1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjMgPSBDT05GSUdfU1lTX0NSM19QUkVMSU07CisJY3NjdHJsX3JlZy0+bXIzID0gQ09ORklHX1NZU19NUjNfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVI0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1I0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVI0X1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXI0ID0gQ0ZHX0FSNF9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3I0ID0gQ0ZHX0NSNF9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXI0ID0gQ0ZHX01SNF9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjRfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1I0X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SNF9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyNCA9IENPTkZJR19TWVNfQVI0X1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjQgPSBDT05GSUdfU1lTX0NSNF9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXI0ID0gQ09ORklHX1NZU19NUjRfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVI1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1I1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVI1X1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXI1ID0gQ0ZHX0FSNV9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3I1ID0gQ0ZHX0NSNV9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXI1ID0gQ0ZHX01SNV9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1I1X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SNV9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyNSA9IENPTkZJR19TWVNfQVI1X1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjUgPSBDT05GSUdfU1lTX0NSNV9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXI1ID0gQ09ORklHX1NZU19NUjVfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVI2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1I2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVI2X1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXI2ID0gQ0ZHX0FSNl9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3I2ID0gQ0ZHX0NSNl9QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXI2ID0gQ0ZHX01SNl9QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjZfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1I2X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SNl9QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyNiA9IENPTkZJR19TWVNfQVI2X1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjYgPSBDT05GSUdfU1lTX0NSNl9QUkVMSU07CisJY3NjdHJsX3JlZy0+bXI2ID0gQ09ORklHX1NZU19NUjZfUFJFTElNOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQVI3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQ1I3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTVI3X1BSRUxJTSkpCi0JY3NjdHJsX3JlZy0+YXI3ID0gQ0ZHX0FSN19QUkVMSU07Ci0JY3NjdHJsX3JlZy0+Y3I3ID0gQ0ZHX0NSN19QUkVMSU07Ci0JY3NjdHJsX3JlZy0+bXI3ID0gQ0ZHX01SN19QUkVMSU07CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19BUjdfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1I3X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX01SN19QUkVMSU0pKQorCWNzY3RybF9yZWctPmFyNyA9IENPTkZJR19TWVNfQVI3X1BSRUxJTTsKKwljc2N0cmxfcmVnLT5jcjcgPSBDT05GSUdfU1lTX0NSN19QUkVMSU07CisJY3NjdHJsX3JlZy0+bXI3ID0gQ09ORklHX1NZU19NUjdfUFJFTElNOwogI2VuZGlmCiAKICNlbmRpZgkJCQkvKiAjaWZuZGVmIENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAqLwogCiAjaWZkZWYgQ09ORklHX0ZTTF9JMkMKLQlDRkdfSTJDX1BJTk1VWF9SRUcgJj0gQ0ZHX0kyQ19QSU5NVVhfQ0xSOwotCUNGR19JMkNfUElOTVVYX1JFRyB8PSBDRkdfSTJDX1BJTk1VWF9TRVQ7CisJQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRyAmPSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfQ0xSOworCUNPTkZJR19TWVNfSTJDX1BJTk1VWF9SRUcgfD0gQ09ORklHX1NZU19JMkNfUElOTVVYX1NFVDsKICNlbmRpZgogCiAJLyogZW5hYmxlIGluc3RydWN0aW9uIGNhY2hlIG5vdyAqLwpAQCAtMzUyLDcgKzM1Miw3IEBACiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKU1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl91YXJ0IHw9IFVBUlQwX0VOQUJMRV9NQVNLOwogCQlicmVhazsKQEAgLTM4NCwxNTUgKzM4NCwxNTUgQEAKICNpZm5kZWYgQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCiAJLyogU2V0IHNwZWVkIC9QTEwgKi8KIAlNQ0ZDTE9DS19TWU5DUiA9Ci0JICAgIE1DRkNMT0NLX1NZTkNSX01GRChDRkdfTUZEKSB8IE1DRkNMT0NLX1NZTkNSX1JGRChDRkdfUkZEKTsKKwkgICAgTUNGQ0xPQ0tfU1lOQ1JfTUZEKENPTkZJR19TWVNfTUZEKSB8IE1DRkNMT0NLX1NZTkNSX1JGRChDT05GSUdfU1lTX1JGRCk7CiAJd2hpbGUgKCEoTUNGQ0xPQ0tfU1lOU1IgJiBNQ0ZDTE9DS19TWU5TUl9MT0NLKSkgOwogCiAJTUNGR1BJT19QQkNEUEFSID0gMHhjMDsKIAogCS8qIFNldCB1cCB0aGUgR1BJTyBwb3J0cyAqLwotI2lmZGVmIENGR19QRVBBUgotCU1DRkdQSU9fUEVQQVIgPSBDRkdfUEVQQVI7CisjaWZkZWYgQ09ORklHX1NZU19QRVBBUgorCU1DRkdQSU9fUEVQQVIgPSBDT05GSUdfU1lTX1BFUEFSOwogI2VuZGlmCi0jaWZkZWYJQ0ZHX1BGUEFSCi0JTUNGR1BJT19QRlBBUiA9IENGR19QRlBBUjsKKyNpZmRlZglDT05GSUdfU1lTX1BGUEFSCisJTUNGR1BJT19QRlBBUiA9IENPTkZJR19TWVNfUEZQQVI7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUEpQQVIKLQlNQ0ZHUElPX1BKUEFSID0gQ0ZHX1BKUEFSOworI2lmZGVmIENPTkZJR19TWVNfUEpQQVIKKwlNQ0ZHUElPX1BKUEFSID0gQ09ORklHX1NZU19QSlBBUjsKICNlbmRpZgotI2lmZGVmIENGR19QU0RQQVIKLQlNQ0ZHUElPX1BTRFBBUiA9IENGR19QU0RQQVI7CisjaWZkZWYgQ09ORklHX1NZU19QU0RQQVIKKwlNQ0ZHUElPX1BTRFBBUiA9IENPTkZJR19TWVNfUFNEUEFSOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX1BBU1BBUgotCU1DRkdQSU9fUEFTUEFSID0gQ0ZHX1BBU1BBUjsKKyNpZmRlZiBDT05GSUdfU1lTX1BBU1BBUgorCU1DRkdQSU9fUEFTUEFSID0gQ09ORklHX1NZU19QQVNQQVI7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUEVITFBBUgotCU1DRkdQSU9fUEVITFBBUiA9IENGR19QRUhMUEFSOworI2lmZGVmIENPTkZJR19TWVNfUEVITFBBUgorCU1DRkdQSU9fUEVITFBBUiA9IENPTkZJR19TWVNfUEVITFBBUjsKICNlbmRpZgotI2lmZGVmIENGR19QUVNQQVIKLQlNQ0ZHUElPX1BRU1BBUiA9IENGR19QUVNQQVI7CisjaWZkZWYgQ09ORklHX1NZU19QUVNQQVIKKwlNQ0ZHUElPX1BRU1BBUiA9IENPTkZJR19TWVNfUFFTUEFSOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX1BUQ1BBUgotCU1DRkdQSU9fUFRDUEFSID0gQ0ZHX1BUQ1BBUjsKKyNpZmRlZiBDT05GSUdfU1lTX1BUQ1BBUgorCU1DRkdQSU9fUFRDUEFSID0gQ09ORklHX1NZU19QVENQQVI7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUFREUEFSCi0JTUNGR1BJT19QVERQQVIgPSBDRkdfUFREUEFSOworI2lmZGVmIENPTkZJR19TWVNfUFREUEFSCisJTUNGR1BJT19QVERQQVIgPSBDT05GSUdfU1lTX1BURFBBUjsKICNlbmRpZgotI2lmZGVmIENGR19QVUFQQVIKLQlNQ0ZHUElPX1BVQVBBUiA9IENGR19QVUFQQVI7CisjaWZkZWYgQ09ORklHX1NZU19QVUFQQVIKKwlNQ0ZHUElPX1BVQVBBUiA9IENPTkZJR19TWVNfUFVBUEFSOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfRERSVUEKLQlNQ0ZHUElPX0REUlVBID0gQ0ZHX0REUlVBOworI2lmZGVmIENPTkZJR19TWVNfRERSVUEKKwlNQ0ZHUElPX0REUlVBID0gQ09ORklHX1NZU19ERFJVQTsKICNlbmRpZgogCiAJLyogVGhpcyBpcyBwcm9iYWJseSBhIGJhZCBwbGFjZSB0byBzZXR1cCBjaGlwIHNlbGVjdHMsIGJ1dCBldmVyeW9uZQogCSAgIGVsc2UgaXMgZG9pbmcgaXQhICovCiAKLSNpZiBkZWZpbmVkKENGR19DUzBfQkFTRSkgJiBkZWZpbmVkKENGR19DUzBfU0laRSkgJiBcCi0gICAgZGVmaW5lZChDRkdfQ1MwX1dJRFRIKSAmIGRlZmluZWQoQ0ZHX0NTMF9XUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX0JBU0UpICYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9TSVpFKSAmIFwKKyAgICBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX1dJRFRIKSAmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfV1MpCiAKLQlNQ0ZDU01fQ1NBUjAgPSAoQ0ZHX0NTMF9CQVNFID4+IDE2KSAmIDB4RkZGRjsKKwlNQ0ZDU01fQ1NBUjAgPSAoQ09ORklHX1NZU19DUzBfQkFTRSA+PiAxNikgJiAweEZGRkY7CiAKLSNpZiAoQ0ZHX0NTMF9XSURUSCA9PSA4KQotI2RlZmluZQkgQ0ZHX0NTMF9QUyAgTUNGQ1NNX0NTQ1JfUFNfOAotI2VsaWYgKENGR19DUzBfV0lEVEggPT0gMTYpCi0jZGVmaW5lCSBDRkdfQ1MwX1BTICBNQ0ZDU01fQ1NDUl9QU18xNgotI2VsaWYgKENGR19DUzBfV0lEVEggPT0gMzIpCi0jZGVmaW5lCSBDRkdfQ1MwX1BTICBNQ0ZDU01fQ1NDUl9QU18zMgorI2lmIChDT05GSUdfU1lTX0NTMF9XSURUSCA9PSA4KQorI2RlZmluZQkgQ09ORklHX1NZU19DUzBfUFMgIE1DRkNTTV9DU0NSX1BTXzgKKyNlbGlmIChDT05GSUdfU1lTX0NTMF9XSURUSCA9PSAxNikKKyNkZWZpbmUJIENPTkZJR19TWVNfQ1MwX1BTICBNQ0ZDU01fQ1NDUl9QU18xNgorI2VsaWYgKENPTkZJR19TWVNfQ1MwX1dJRFRIID09IDMyKQorI2RlZmluZQkgQ09ORklHX1NZU19DUzBfUFMgIE1DRkNTTV9DU0NSX1BTXzMyCiAjZWxzZQotI2Vycm9yCSJDRkdfQ1MwX1dJRFRIOiBGYXVsdCAtIHdyb25nIGJ1cyB3aXRoIGZvciBDUzAiCisjZXJyb3IJIkNPTkZJR19TWVNfQ1MwX1dJRFRIOiBGYXVsdCAtIHdyb25nIGJ1cyB3aXRoIGZvciBDUzAiCiAjZW5kaWYKLQlNQ0ZDU01fQ1NDUjAgPSBNQ0ZDU01fQ1NDUl9XUyhDRkdfQ1MwX1dTKQotCSAgICB8IENGR19DUzBfUFMgfCBNQ0ZDU01fQ1NDUl9BQTsKKwlNQ0ZDU01fQ1NDUjAgPSBNQ0ZDU01fQ1NDUl9XUyhDT05GSUdfU1lTX0NTMF9XUykKKwkgICAgfCBDT05GSUdfU1lTX0NTMF9QUyB8IE1DRkNTTV9DU0NSX0FBOwogCi0jaWYgKENGR19DUzBfUk8gIT0gMCkKLQlNQ0ZDU01fQ1NNUjAgPSBNQ0ZDU01fQ1NNUl9CQU0oQ0ZHX0NTMF9TSVpFIC0gMSkKKyNpZiAoQ09ORklHX1NZU19DUzBfUk8gIT0gMCkKKwlNQ0ZDU01fQ1NNUjAgPSBNQ0ZDU01fQ1NNUl9CQU0oQ09ORklHX1NZU19DUzBfU0laRSAtIDEpCiAJICAgIHwgTUNGQ1NNX0NTTVJfV1AgfCBNQ0ZDU01fQ1NNUl9WOwogI2Vsc2UKLQlNQ0ZDU01fQ1NNUjAgPSBNQ0ZDU01fQ1NNUl9CQU0oQ0ZHX0NTMF9TSVpFIC0gMSkgfCBNQ0ZDU01fQ1NNUl9WOworCU1DRkNTTV9DU01SMCA9IE1DRkNTTV9DU01SX0JBTShDT05GSUdfU1lTX0NTMF9TSVpFIC0gMSkgfCBNQ0ZDU01fQ1NNUl9WOwogI2VuZGlmCiAjZWxzZQogI3dhcm5pbmcgIkNoaXAgU2VsZWN0IDAgYXJlIG5vdCBpbml0aWFsaXplZC91c2VkIgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19DUzFfQkFTRSkgJiBkZWZpbmVkKENGR19DUzFfU0laRSkgJiBcCi0gICAgZGVmaW5lZChDRkdfQ1MxX1dJRFRIKSAmIGRlZmluZWQoQ0ZHX0NTMV9XUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0JBU0UpICYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9TSVpFKSAmIFwKKyAgICBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX1dJRFRIKSAmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfV1MpCiAKLQlNQ0ZDU01fQ1NBUjEgPSAoQ0ZHX0NTMV9CQVNFID4+IDE2KSAmIDB4RkZGRjsKKwlNQ0ZDU01fQ1NBUjEgPSAoQ09ORklHX1NZU19DUzFfQkFTRSA+PiAxNikgJiAweEZGRkY7CiAKLSNpZiAoQ0ZHX0NTMV9XSURUSCA9PSA4KQotI2RlZmluZQkgQ0ZHX0NTMV9QUyAgTUNGQ1NNX0NTQ1JfUFNfOAotI2VsaWYgKENGR19DUzFfV0lEVEggPT0gMTYpCi0jZGVmaW5lCSBDRkdfQ1MxX1BTICBNQ0ZDU01fQ1NDUl9QU18xNgotI2VsaWYgKENGR19DUzFfV0lEVEggPT0gMzIpCi0jZGVmaW5lCSBDRkdfQ1MxX1BTICBNQ0ZDU01fQ1NDUl9QU18zMgorI2lmIChDT05GSUdfU1lTX0NTMV9XSURUSCA9PSA4KQorI2RlZmluZQkgQ09ORklHX1NZU19DUzFfUFMgIE1DRkNTTV9DU0NSX1BTXzgKKyNlbGlmIChDT05GSUdfU1lTX0NTMV9XSURUSCA9PSAxNikKKyNkZWZpbmUJIENPTkZJR19TWVNfQ1MxX1BTICBNQ0ZDU01fQ1NDUl9QU18xNgorI2VsaWYgKENPTkZJR19TWVNfQ1MxX1dJRFRIID09IDMyKQorI2RlZmluZQkgQ09ORklHX1NZU19DUzFfUFMgIE1DRkNTTV9DU0NSX1BTXzMyCiAjZWxzZQotI2Vycm9yCSJDRkdfQ1MxX1dJRFRIOiBGYXVsdCAtIHdyb25nIGJ1cyB3aXRoIGZvciBDUzEiCisjZXJyb3IJIkNPTkZJR19TWVNfQ1MxX1dJRFRIOiBGYXVsdCAtIHdyb25nIGJ1cyB3aXRoIGZvciBDUzEiCiAjZW5kaWYKLQlNQ0ZDU01fQ1NDUjEgPSBNQ0ZDU01fQ1NDUl9XUyhDRkdfQ1MxX1dTKQotCSAgICB8IENGR19DUzFfUFMgfCBNQ0ZDU01fQ1NDUl9BQTsKKwlNQ0ZDU01fQ1NDUjEgPSBNQ0ZDU01fQ1NDUl9XUyhDT05GSUdfU1lTX0NTMV9XUykKKwkgICAgfCBDT05GSUdfU1lTX0NTMV9QUyB8IE1DRkNTTV9DU0NSX0FBOwogCi0jaWYgKENGR19DUzFfUk8gIT0gMCkKLQlNQ0ZDU01fQ1NNUjEgPSBNQ0ZDU01fQ1NNUl9CQU0oQ0ZHX0NTMV9TSVpFIC0gMSkKKyNpZiAoQ09ORklHX1NZU19DUzFfUk8gIT0gMCkKKwlNQ0ZDU01fQ1NNUjEgPSBNQ0ZDU01fQ1NNUl9CQU0oQ09ORklHX1NZU19DUzFfU0laRSAtIDEpCiAJICAgIHwgTUNGQ1NNX0NTTVJfV1AgfCBNQ0ZDU01fQ1NNUl9WOwogI2Vsc2UKLQlNQ0ZDU01fQ1NNUjEgPSBNQ0ZDU01fQ1NNUl9CQU0oQ0ZHX0NTMV9TSVpFIC0gMSkKKwlNQ0ZDU01fQ1NNUjEgPSBNQ0ZDU01fQ1NNUl9CQU0oQ09ORklHX1NZU19DUzFfU0laRSAtIDEpCiAJICAgIHwgTUNGQ1NNX0NTTVJfVjsKICNlbmRpZgogI2Vsc2UKICN3YXJuaW5nICJDaGlwIFNlbGVjdCAxIGFyZSBub3QgaW5pdGlhbGl6ZWQvdXNlZCIKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ1MyX0JBU0UpICYgZGVmaW5lZChDRkdfQ1MyX1NJWkUpICYgXAotICAgIGRlZmluZWQoQ0ZHX0NTMl9XSURUSCkgJiBkZWZpbmVkKENGR19DUzJfV1MpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9CQVNFKSAmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfU0laRSkgJiBcCisgICAgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9XSURUSCkgJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX1dTKQogCi0JTUNGQ1NNX0NTQVIyID0gKENGR19DUzJfQkFTRSA+PiAxNikgJiAweEZGRkY7CisJTUNGQ1NNX0NTQVIyID0gKENPTkZJR19TWVNfQ1MyX0JBU0UgPj4gMTYpICYgMHhGRkZGOwogCi0jaWYgKENGR19DUzJfV0lEVEggPT0gOCkKLSNkZWZpbmUJIENGR19DUzJfUFMgIE1DRkNTTV9DU0NSX1BTXzgKLSNlbGlmIChDRkdfQ1MyX1dJRFRIID09IDE2KQotI2RlZmluZQkgQ0ZHX0NTMl9QUyAgTUNGQ1NNX0NTQ1JfUFNfMTYKLSNlbGlmIChDRkdfQ1MyX1dJRFRIID09IDMyKQotI2RlZmluZQkgQ0ZHX0NTMl9QUyAgTUNGQ1NNX0NTQ1JfUFNfMzIKKyNpZiAoQ09ORklHX1NZU19DUzJfV0lEVEggPT0gOCkKKyNkZWZpbmUJIENPTkZJR19TWVNfQ1MyX1BTICBNQ0ZDU01fQ1NDUl9QU184CisjZWxpZiAoQ09ORklHX1NZU19DUzJfV0lEVEggPT0gMTYpCisjZGVmaW5lCSBDT05GSUdfU1lTX0NTMl9QUyAgTUNGQ1NNX0NTQ1JfUFNfMTYKKyNlbGlmIChDT05GSUdfU1lTX0NTMl9XSURUSCA9PSAzMikKKyNkZWZpbmUJIENPTkZJR19TWVNfQ1MyX1BTICBNQ0ZDU01fQ1NDUl9QU18zMgogI2Vsc2UKLSNlcnJvcgkiQ0ZHX0NTMl9XSURUSDogRmF1bHQgLSB3cm9uZyBidXMgd2l0aCBmb3IgQ1MyIgorI2Vycm9yCSJDT05GSUdfU1lTX0NTMl9XSURUSDogRmF1bHQgLSB3cm9uZyBidXMgd2l0aCBmb3IgQ1MyIgogI2VuZGlmCi0JTUNGQ1NNX0NTQ1IyID0gTUNGQ1NNX0NTQ1JfV1MoQ0ZHX0NTMl9XUykKLQkgICAgfCBDRkdfQ1MyX1BTIHwgTUNGQ1NNX0NTQ1JfQUE7CisJTUNGQ1NNX0NTQ1IyID0gTUNGQ1NNX0NTQ1JfV1MoQ09ORklHX1NZU19DUzJfV1MpCisJICAgIHwgQ09ORklHX1NZU19DUzJfUFMgfCBNQ0ZDU01fQ1NDUl9BQTsKIAotI2lmIChDRkdfQ1MyX1JPICE9IDApCi0JTUNGQ1NNX0NTTVIyID0gTUNGQ1NNX0NTTVJfQkFNKENGR19DUzJfU0laRSAtIDEpCisjaWYgKENPTkZJR19TWVNfQ1MyX1JPICE9IDApCisJTUNGQ1NNX0NTTVIyID0gTUNGQ1NNX0NTTVJfQkFNKENPTkZJR19TWVNfQ1MyX1NJWkUgLSAxKQogCSAgICB8IE1DRkNTTV9DU01SX1dQIHwgTUNGQ1NNX0NTTVJfVjsKICNlbHNlCi0JTUNGQ1NNX0NTTVIyID0gTUNGQ1NNX0NTTVJfQkFNKENGR19DUzJfU0laRSAtIDEpCisJTUNGQ1NNX0NTTVIyID0gTUNGQ1NNX0NTTVJfQkFNKENPTkZJR19TWVNfQ1MyX1NJWkUgLSAxKQogCSAgICB8IE1DRkNTTV9DU01SX1Y7CiAjZW5kaWYKICNlbHNlCiAjd2FybmluZyAiQ2hpcCBTZWxlY3QgMiBhcmUgbm90IGluaXRpYWxpemVkL3VzZWQiCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NTM19CQVNFKSAmIGRlZmluZWQoQ0ZHX0NTM19TSVpFKSAmIFwKLSAgICBkZWZpbmVkKENGR19DUzNfV0lEVEgpICYgZGVmaW5lZChDRkdfQ1MzX1dTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQkFTRSkgJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX1NJWkUpICYgXAorICAgIGRlZmluZWQoQ09ORklHX1NZU19DUzNfV0lEVEgpICYgZGVmaW5lZChDT05GSUdfU1lTX0NTM19XUykKIAotCU1DRkNTTV9DU0FSMyA9IChDRkdfQ1MzX0JBU0UgPj4gMTYpICYgMHhGRkZGOworCU1DRkNTTV9DU0FSMyA9IChDT05GSUdfU1lTX0NTM19CQVNFID4+IDE2KSAmIDB4RkZGRjsKIAotI2lmIChDRkdfQ1MzX1dJRFRIID09IDgpCi0jZGVmaW5lCSBDRkdfQ1MzX1BTICBNQ0ZDU01fQ1NDUl9QU184Ci0jZWxpZiAoQ0ZHX0NTM19XSURUSCA9PSAxNikKLSNkZWZpbmUJIENGR19DUzNfUFMgIE1DRkNTTV9DU0NSX1BTXzE2Ci0jZWxpZiAoQ0ZHX0NTM19XSURUSCA9PSAzMikKLSNkZWZpbmUJIENGR19DUzNfUFMgIE1DRkNTTV9DU0NSX1BTXzMyCisjaWYgKENPTkZJR19TWVNfQ1MzX1dJRFRIID09IDgpCisjZGVmaW5lCSBDT05GSUdfU1lTX0NTM19QUyAgTUNGQ1NNX0NTQ1JfUFNfOAorI2VsaWYgKENPTkZJR19TWVNfQ1MzX1dJRFRIID09IDE2KQorI2RlZmluZQkgQ09ORklHX1NZU19DUzNfUFMgIE1DRkNTTV9DU0NSX1BTXzE2CisjZWxpZiAoQ09ORklHX1NZU19DUzNfV0lEVEggPT0gMzIpCisjZGVmaW5lCSBDT05GSUdfU1lTX0NTM19QUyAgTUNGQ1NNX0NTQ1JfUFNfMzIKICNlbHNlCi0jZXJyb3IJIkNGR19DUzNfV0lEVEg6IEZhdWx0IC0gd3JvbmcgYnVzIHdpdGggZm9yIENTMSIKKyNlcnJvcgkiQ09ORklHX1NZU19DUzNfV0lEVEg6IEZhdWx0IC0gd3JvbmcgYnVzIHdpdGggZm9yIENTMSIKICNlbmRpZgotCU1DRkNTTV9DU0NSMyA9IE1DRkNTTV9DU0NSX1dTKENGR19DUzNfV1MpCi0JICAgIHwgQ0ZHX0NTM19QUyB8IE1DRkNTTV9DU0NSX0FBOworCU1DRkNTTV9DU0NSMyA9IE1DRkNTTV9DU0NSX1dTKENPTkZJR19TWVNfQ1MzX1dTKQorCSAgICB8IENPTkZJR19TWVNfQ1MzX1BTIHwgTUNGQ1NNX0NTQ1JfQUE7CiAKLSNpZiAoQ0ZHX0NTM19STyAhPSAwKQotCU1DRkNTTV9DU01SMyA9IE1DRkNTTV9DU01SX0JBTShDRkdfQ1MzX1NJWkUgLSAxKQorI2lmIChDT05GSUdfU1lTX0NTM19STyAhPSAwKQorCU1DRkNTTV9DU01SMyA9IE1DRkNTTV9DU01SX0JBTShDT05GSUdfU1lTX0NTM19TSVpFIC0gMSkKIAkgICAgfCBNQ0ZDU01fQ1NNUl9XUCB8IE1DRkNTTV9DU01SX1Y7CiAjZWxzZQotCU1DRkNTTV9DU01SMyA9IE1DRkNTTV9DU01SX0JBTShDRkdfQ1MzX1NJWkUgLSAxKQorCU1DRkNTTV9DU01SMyA9IE1DRkNTTV9DU01SX0JBTShDT05GSUdfU1lTX0NTM19TSVpFIC0gMSkKIAkgICAgfCBNQ0ZDU01fQ1NNUl9WOwogI2VuZGlmCiAjZWxzZQpAQCAtNTU2LDcgKzU1Niw3IEBACiB2b2lkIHVhcnRfcG9ydF9jb25mKHZvaWQpCiB7CiAJLyogU2V0dXAgUG9ydHM6ICovCi0Jc3dpdGNoIChDRkdfVUFSVF9QT1JUKSB7CisJc3dpdGNoIChDT05GSUdfU1lTX1VBUlRfUE9SVCkgewogCWNhc2UgMDoKIAkJTUNGR1BJT19QVUFQQVIgJj0gMHhGYzsKIAkJTUNGR1BJT19QVUFQQVIgfD0gMHgwMzsKQEAgLTU4OSwxMiArNTg5LDEyIEBACiAJICogICAgICAgIHdoaWNoIGlzIHRoZWlyIHByaW1hcnkgZnVuY3Rpb24uCiAJICogICAgICAgIH5KZXJlbXkKIAkgKi8KLQltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU9fRlVOQywgQ0ZHX0dQSU9fRlVOQyk7Ci0JbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9GVU5DLCBDRkdfR1BJTzFfRlVOQyk7Ci0JbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPX0VOLCBDRkdfR1BJT19FTik7Ci0JbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9FTiwgQ0ZHX0dQSU8xX0VOKTsKLQltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU9fT1VULCBDRkdfR1BJT19PVVQpOwotCW1iYXIyX3dyaXRlTG9uZyhNQ0ZTSU1fR1BJTzFfT1VULCBDRkdfR1BJTzFfT1VUKTsKKwltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU9fRlVOQywgQ09ORklHX1NZU19HUElPX0ZVTkMpOworCW1iYXIyX3dyaXRlTG9uZyhNQ0ZTSU1fR1BJTzFfRlVOQywgQ09ORklHX1NZU19HUElPMV9GVU5DKTsKKwltYmFyMl93cml0ZUxvbmcoTUNGU0lNX0dQSU9fRU4sIENPTkZJR19TWVNfR1BJT19FTik7CisJbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9FTiwgQ09ORklHX1NZU19HUElPMV9FTik7CisJbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPX09VVCwgQ09ORklHX1NZU19HUElPX09VVCk7CisJbWJhcjJfd3JpdGVMb25nKE1DRlNJTV9HUElPMV9PVVQsIENPTkZJR19TWVNfR1BJTzFfT1VUKTsKIAogCS8qCiAJICogIGRCdWcgQ29tcGxpYW5jZToKQEAgLTYzNiwxMyArNjM2LDEzIEBACiAJICogIFNldHVwIGNoaXAgc2VsZWN0cy4uLgogCSAqLwogCi0JbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0FSMSwgQ0ZHX0NTQVIxKTsKLQltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQ1IxLCBDRkdfQ1NDUjEpOwotCW1iYXJfd3JpdGVMb25nKE1DRlNJTV9DU01SMSwgQ0ZHX0NTTVIxKTsKKwltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQVIxLCBDT05GSUdfU1lTX0NTQVIxKTsKKwltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQ1IxLCBDT05GSUdfU1lTX0NTQ1IxKTsKKwltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fQ1NNUjEsIENPTkZJR19TWVNfQ1NNUjEpOwogCi0JbWJhcl93cml0ZVNob3J0KE1DRlNJTV9DU0FSMCwgQ0ZHX0NTQVIwKTsKLQltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQ1IwLCBDRkdfQ1NDUjApOwotCW1iYXJfd3JpdGVMb25nKE1DRlNJTV9DU01SMCwgQ0ZHX0NTTVIwKTsKKwltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQVIwLCBDT05GSUdfU1lTX0NTQVIwKTsKKwltYmFyX3dyaXRlU2hvcnQoTUNGU0lNX0NTQ1IwLCBDT05GSUdfU1lTX0NTQ1IwKTsKKwltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fQ1NNUjAsIENPTkZJR19TWVNfQ1NNUjApOwogCiAJLyogZW5hYmxlIGluc3RydWN0aW9uIGNhY2hlIG5vdyAqLwogCWljYWNoZV9lbmFibGUoKTsKQEAgLTY1OSw3ICs2NTksNyBAQAogdm9pZCB1YXJ0X3BvcnRfY29uZih2b2lkKQogewogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWJyZWFrOwogCWNhc2UgMToKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1MngyL2ludGVycnVwdHMuYyBiL2NwdS9tY2Y1MngyL2ludGVycnVwdHMuYwppbmRleCBiOGZiN2JiLi4wMTgxZTRiIDEwMDY0NAotLS0gYS9jcHUvbWNmNTJ4Mi9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21jZjUyeDIvaW50ZXJydXB0cy5jCkBAIC01MSwxMCArNTEsMTAgQEAKICNpZiBkZWZpbmVkKENPTkZJR19NQ0ZUTVIpCiB2b2lkIGR0aW1lcl9pbnRyX3NldHVwKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50Y3RybF90ICppbnRwID0gKGludGN0cmxfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50Y3RybF90ICppbnRwID0gKGludGN0cmxfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJaW50cC0+aW50X2ljcjEgJj0gfklOVF9JQ1IxX1RNUjNNQVNLOwotCWludHAtPmludF9pY3IxIHw9IENGR19UTVJJTlRSX1BSSTsKKwlpbnRwLT5pbnRfaWNyMSB8PSBDT05GSUdfU1lTX1RNUklOVFJfUFJJOwogfQogI2VuZGlmCQkJCS8qIENPTkZJR19NQ0ZUTVIgKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyNzIgKi8KQEAgLTYyLDcgKzYyLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19NNTI4MikgfHwgZGVmaW5lZChDT05GSUdfTTUyNzEpIHx8IGRlZmluZWQoQ09ORklHX001Mjc1KQogaW50IGludGVycnVwdF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJLyogTWFrZSBzdXJlIGFsbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCAqLwogCWludHAtPmltcmwwIHw9IDB4MTsKQEAgLTc0LDExICs3NCwxMSBAQAogI2lmIGRlZmluZWQoQ09ORklHX01DRlRNUikKIHZvaWQgZHRpbWVyX2ludHJfc2V0dXAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDRkdfSU5UUl9CQVNFKTsKKwl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDT05GSUdfU1lTX0lOVFJfQkFTRSk7CiAKLQlpbnRwLT5pY3IwW0NGR19UTVJJTlRSX05PXSA9IENGR19UTVJJTlRSX1BSSTsKKwlpbnRwLT5pY3IwW0NPTkZJR19TWVNfVE1SSU5UUl9OT10gPSBDT05GSUdfU1lTX1RNUklOVFJfUFJJOwogCWludHAtPmltcmwwICY9IDB4RkZGRkZGRkU7Ci0JaW50cC0+aW1ybDAgJj0gfkNGR19UTVJJTlRSX01BU0s7CisJaW50cC0+aW1ybDAgJj0gfkNPTkZJR19TWVNfVE1SSU5UUl9NQVNLOwogfQogI2VuZGlmCQkJCS8qIENPTkZJR19NQ0ZUTVIgKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyODIgfCBDT05GSUdfTTUyNzEgfCBDT05GSUdfTTUyNzUgKi8KQEAgLTk1LDcgKzk1LDcgQEAKIHZvaWQgZHRpbWVyX2ludHJfc2V0dXAodm9pZCkKIHsKIAltYmFyX3dyaXRlTG9uZyhNQ0ZTSU1fSU1SLCBtYmFyX3JlYWRMb25nKE1DRlNJTV9JTVIpICYgfjB4MDAwMDA0MDApOwotCW1iYXJfd3JpdGVCeXRlKE1DRlNJTV9USU1FUjJJQ1IsIENGR19UTVJJTlRSX1BSSSk7CisJbWJhcl93cml0ZUJ5dGUoTUNGU0lNX1RJTUVSMklDUiwgQ09ORklHX1NZU19UTVJJTlRSX1BSSSk7CiB9CiAjZW5kaWYJCQkJLyogQ09ORklHX01DRlRNUiAqLwogI2VuZGlmCQkJCS8qIENPTkZJR19NNTI0OSB8fCBDT05GSUdfTTUyNTMgKi8KZGlmZiAtLWdpdCBhL2NwdS9tY2Y1MngyL3NwZWVkLmMgYi9jcHUvbWNmNTJ4Mi9zcGVlZC5jCmluZGV4IDRjYjhmOTMuLmZlNTFmYjQgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MngyL3NwZWVkLmMKKysrIGIvY3B1L21jZjUyeDIvc3BlZWQuYwpAQCAtMzksMTEgKzM5LDExIEBACiAJdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBjcGxsID0gbWJhcjJfcmVhZExvbmcoTUNGU0lNX1BMTENSKTsKIAl1bnNpZ25lZCBsb25nIHBsbGNyOwogCi0jaWZuZGVmIENGR19QTExfQllQQVNTCisjaWZuZGVmIENPTkZJR19TWVNfUExMX0JZUEFTUwogCiAjaWZkZWYgQ09ORklHX001MjQ5CiAJLyogU2V0dXAgdGhlIFBMTCB0byBydW4gYXQgdGhlIHNwZWNpZmllZCBzcGVlZCAqLwotI2lmZGVmIENGR19GQVNUX0NMSworI2lmZGVmIENPTkZJR19TWVNfRkFTVF9DTEsKIAlwbGxjciA9IDB4OTI1YTMxMDA7CS8qIH4xNDBNSHogY2xvY2sgKFBMTCBieXBhc3MgPSAwKSAqLwogI2Vsc2UKIAlwbGxjciA9IDB4MTM1YTQxNDA7CS8qIH43Mk1IeiBjbG9jayAoUExMIGJ5cGFzcyA9IDApICovCkBAIC01MSw3ICs1MSw3IEBACiAjZW5kaWYJCQkJLyogQ09ORklHX001MjQ5ICovCiAKICNpZmRlZiBDT05GSUdfTTUyNTMKLQlwbGxjciA9IENGR19QTExDUjsKKwlwbGxjciA9IENPTkZJR19TWVNfUExMQ1I7CiAjZW5kaWYJCQkJLyogQ09ORklHX001MjUzICovCiAKIAljcGxsID0gY3BsbCAmIDB4ZmZmZmZmZmU7CS8qIFNldCBQTEwgYnlwYXNzIG1vZGUgPSAwIChQU1RDTEsgPSBjcnlzdGFsKSAqLwpAQCAtNjAsNyArNjAsNyBAQAogCXBsbGNyIF49IDB4MDAwMDAwMDE7CS8qIFNldCBwbGwgYnlwYXNzIHRvIDEgKi8KIAltYmFyMl93cml0ZUxvbmcoTUNGU0lNX1BMTENSLCBwbGxjcik7CS8qIFN0YXJ0IGxvY2tpbmcgKHBsbCBieXBhc3MgPSAxKSAqLwogCXVkZWxheSgweDIwKTsJCS8qIFdhaXQgZm9yIGEgbG9jayAuLi4gKi8KLSNlbmRpZgkJCQkvKiAjaWZuZGVmIENGR19QTExfQllQQVNTICovCisjZW5kaWYJCQkJLyogI2lmbmRlZiBDT05GSUdfU1lTX1BMTF9CWVBBU1MgKi8KIAogI2VuZGlmCQkJCS8qIENPTkZJR19NNTI0OSB8fCBDT05GSUdfTTUyNTMgKi8KIApAQCAtNzYsNyArNzYsNyBAQAogCQk7CiAjZW5kaWYKIAotCWdkLT5jcHVfY2xrID0gQ0ZHX0NMSzsKKwlnZC0+Y3B1X2NsayA9IENPTkZJR19TWVNfQ0xLOwogI2lmIGRlZmluZWQoQ09ORklHX001MjQ5KSB8fCBkZWZpbmVkKENPTkZJR19NNTI1MykgfHwgZGVmaW5lZChDT05GSUdfTTUyNzUpCiAJZ2QtPmJ1c19jbGsgPSBnZC0+Y3B1X2NsayAvIDI7CiAjZWxzZQpAQCAtODUsNyArODUsNyBAQAogCiAjaWZkZWYgQ09ORklHX0ZTTF9JMkMKIAlnZC0+aTJjMV9jbGsgPSBnZC0+YnVzX2NsazsKLSNpZmRlZiBDRkdfSTJDMl9PRkZTRVQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCiAJZ2QtPmkyYzJfY2xrID0gZ2QtPmJ1c19jbGs7CiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L21jZjUyeDIvc3RhcnQuUyBiL2NwdS9tY2Y1MngyL3N0YXJ0LlMKaW5kZXggMmU4ZWNmYi4uZGE0NWJjYiAxMDA2NDQKLS0tIGEvY3B1L21jZjUyeDIvc3RhcnQuUworKysgYi9jcHUvbWNmNTJ4Mi9zdGFydC5TCkBAIC01Niw3ICs1Niw3IEBACiBfdmVjdG9yczoKIAogLmxvbmcJMHgwMDAwMDAwMAkJLyogRmxhc2ggb2Zmc2V0IGlzIDAgdW50aWwgd2Ugc2V0dXAgQ1MwICovCi0jaWYgZGVmaW5lZChDT05GSUdfTTUyODIpICYmIChURVhUX0JBU0UgPT0gQ0ZHX0lOVF9GTEFTSF9CQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX001MjgyKSAmJiAoVEVYVF9CQVNFID09IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpCiAubG9uZwlfc3RhcnQgLSBURVhUX0JBU0UKICNlbHNlCiAubG9uZwlfU1RBUlQKQEAgLTEwMyw5ICsxMDMsOSBAQAogCS50ZXh0CiAKIAotI2lmIGRlZmluZWQoQ0ZHX0lOVF9GTEFTSF9CQVNFKSAmJiBcCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKSAmJiBcCiAgICAgKGRlZmluZWQoQ09ORklHX001MjgyKSB8fCBkZWZpbmVkKENPTkZJR19NNTI4MSkpCi0JI2lmIChURVhUX0JBU0UgPT0gQ0ZHX0lOVF9GTEFTSF9CQVNFKQorCSNpZiAoVEVYVF9CQVNFID09IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpCiAJCS5sb25nCTB4NTVBQTU1QUEsMHhBQTU1QUE1NSAvKiBDRk0gQmFja2Rvb3JrZXkgKi8KIAkJLmxvbmcJMHhGRkZGRkZGRiAvKiBhbGwgc2VjdG9ycyBwcm90ZWN0ZWQgKi8KIAkJLmxvbmcJMHgwMDAwMDAwMCAvKiBzdXBlcnZpc29yL1VzZXIgcmVzdHJpY3Rpb24gKi8KQEAgLTEyMCw0NCArMTIwLDQ0IEBACiAJbW92ZS53ICMweDI3MDAsJXNyCiAKICNpZiBkZWZpbmVkKENPTkZJR19NNTI3MikgfHwgZGVmaW5lZChDT05GSUdfTTUyNDkpIHx8IGRlZmluZWQoQ09ORklHX001MjUzKQotCW1vdmUubAkjKENGR19NQkFSICsgMSksICVkMAkJLyogc2V0IE1CQVIgYWRkcmVzcyArIHZhbGlkIGZsYWcgKi8KKwltb3ZlLmwJIyhDT05GSUdfU1lTX01CQVIgKyAxKSwgJWQwCQkvKiBzZXQgTUJBUiBhZGRyZXNzICsgdmFsaWQgZmxhZyAqLwogCW1vdmUuYwklZDAsICVNQkFSCiAKIAkvKioqIFRoZSA1MjQ5IGhhcyBNQkFSMiBhcyB3ZWxsICoqKi8KLSNpZmRlZiBDRkdfTUJBUjIKLQltb3ZlLmwJIyhDRkdfTUJBUjIgKyAxKSwgJWQwCSAgICAgICAgLyogR2V0IE1CQVIyIGFkZHJlc3MgKi8KKyNpZmRlZiBDT05GSUdfU1lTX01CQVIyCisJbW92ZS5sCSMoQ09ORklHX1NZU19NQkFSMiArIDEpLCAlZDAJICAgICAgICAvKiBHZXQgTUJBUjIgYWRkcmVzcyAqLwogCW1vdmVjCSVkMCwgIzB4YzBlCQkgICAgICAgIC8qIFNldCBNQkFSMiAqLwogI2VuZGlmCiAKLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIDEpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAxKSwgJWQwCiAJbW92ZWMJJWQwLCAlUkFNQkFSMAogI2VuZGlmIC8qIENPTkZJR19NNTI3MiB8fCBDT05GSUdfTTUyNDkgfHwgQ09ORklHX001MjUzICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19NNTI4MikgfHwgZGVmaW5lZChDT05GSUdfTTUyNzEpCiAJLyogSW5pdGlhbGl6ZSBJUFNCQVIgKi8KLQltb3ZlLmwJIyhDRkdfTUJBUiArIDEpLCAlZDAJCS8qIHNldCBJUFNCQVIgYWRkcmVzcyArIHZhbGlkIGZsYWcgKi8KKwltb3ZlLmwJIyhDT05GSUdfU1lTX01CQVIgKyAxKSwgJWQwCQkvKiBzZXQgSVBTQkFSIGFkZHJlc3MgKyB2YWxpZCBmbGFnICovCiAJbW92ZS5sCSVkMCwgMHg0MDAwMDAwMAogCiAJLyogSW5pdGlhbGl6ZSBSQU1CQVIxOiBsb2NhdGUgU1JBTSBhbmQgdmFsaWRhdGUgaXQgKi8KLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIDB4MjEpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAweDIxKSwgJWQwCiAJbW92ZWMJJWQwLCAlUkFNQkFSMQogCiAjaWYgZGVmaW5lZChDT05GSUdfTTUyODIpCi0jaWYgKFRFWFRfQkFTRSA9PSBDRkdfSU5UX0ZMQVNIX0JBU0UpCisjaWYgKFRFWFRfQkFTRSA9PSBDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKQogCS8qIFNldHVwIGNvZGUgaW4gU1JBTSB0byBpbml0aWFsaXplIEZMQVNIQkFSLCBpZiBzdGFydCBmcm9tIGludGVybmFsIEZsYXNoICovCiAKLQltb3ZlLmwgIyhfZmxhc2hiYXJfc2V0dXAtQ0ZHX0lOVF9GTEFTSF9CQVNFKSwgJWEwCi0JbW92ZS5sICMoX2ZsYXNoYmFyX3NldHVwX2VuZC1DRkdfSU5UX0ZMQVNIX0JBU0UpLCAlYTEKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUiksICVhMgorCW1vdmUubCAjKF9mbGFzaGJhcl9zZXR1cC1DT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKSwgJWEwCisJbW92ZS5sICMoX2ZsYXNoYmFyX3NldHVwX2VuZC1DT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSKSwgJWEyCiBfY29weV9mbGFzaDoKIAltb3ZlLmwgKCVhMCkrLCAoJWEyKSsKIAljbXAubCAlYTAsICVhMQogCWJndC5zIF9jb3B5X2ZsYXNoCi0Jam1wIENGR19JTklUX1JBTV9BRERSCisJam1wIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgogCiBfZmxhc2hiYXJfc2V0dXA6CiAJLyogSW5pdGlhbGl6ZSBGTEFTSEJBUjogbG9jYXRlIGludGVybmFsIEZsYXNoIGFuZCB2YWxpZGF0ZSBpdCAqLwotCW1vdmUubAkjKENGR19JTlRfRkxBU0hfQkFTRSArIENGR19JTlRfRkxBU0hfRU5BQkxFKSwgJWQwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfSU5UX0ZMQVNIX0VOQUJMRSksICVkMAogCW1vdmVjCSVkMCwgJUZMQVNIQkFSCiAJam1wIF9hZnRlcl9mbGFzaGJhcl9jb3B5LkwJLyogRm9yY2UganVtcCB0byBhYnNvbHV0ZSBhZGRyZXNzICovCiBfZmxhc2hiYXJfc2V0dXBfZW5kOgpAQCAtMTY1LDkgKzE2NSw5IEBACiBfYWZ0ZXJfZmxhc2hiYXJfY29weToKICNlbHNlCiAJLyogU2V0dXAgY29kZSB0byBpbml0aWFsaXplIEZMQVNIQkFSLCBpZiBzdGFydCBmcm9tIGV4dGVybmFsIE1lbW9yeSAqLwotCW1vdmUubAkjKENGR19JTlRfRkxBU0hfQkFTRSArIENGR19JTlRfRkxBU0hfRU5BQkxFKSwgJWQwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfSU5UX0ZMQVNIX0VOQUJMRSksICVkMAogCW1vdmVjCSVkMCwgJUZMQVNIQkFSCi0jZW5kaWYgLyogKFRFWFRfQkFTRSA9PSBDRkdfSU5UX0ZMQVNIX0JBU0UpICovCisjZW5kaWYgLyogKFRFWFRfQkFTRSA9PSBDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFKSAqLwogCiAjZW5kaWYKICNlbmRpZgpAQCAtMTc1LDIyICsxNzUsMjIgQEAKIAkgKiB0aGVyZWZvcmUgbm8gVkJSIHRvIHNldAogCSAqLwogI2lmICFkZWZpbmVkKENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSkKLSNpZiBkZWZpbmVkKENPTkZJR19NNTI4MikgJiYgKFRFWFRfQkFTRSA9PSBDRkdfSU5UX0ZMQVNIX0JBU0UpCi0JbW92ZS5sCSNDRkdfSU5UX0ZMQVNIX0JBU0UsICVkMAorI2lmIGRlZmluZWQoQ09ORklHX001MjgyKSAmJiAoVEVYVF9CQVNFID09IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpCisJbW92ZS5sCSNDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFLCAlZDAKICNlbHNlCi0JbW92ZS5sCSNDRkdfRkxBU0hfQkFTRSwgJWQwCisJbW92ZS5sCSNDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICVkMAogI2VuZGlmCiAJbW92ZWMJJWQwLCAlVkJSCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19NNTI3NQogCS8qIEluaXRpYWxpemUgSVBTQkFSICovCi0JbW92ZS5sCSMoQ0ZHX01CQVIgKyAxKSwgJWQwCQkvKiBzZXQgSVBTQkFSIGFkZHJlc3MgKyB2YWxpZCBmbGFnICovCisJbW92ZS5sCSMoQ09ORklHX1NZU19NQkFSICsgMSksICVkMAkJLyogc2V0IElQU0JBUiBhZGRyZXNzICsgdmFsaWQgZmxhZyAqLwogCW1vdmUubAklZDAsIDB4NDAwMDAwMDAKIC8qCW1vdmVjCSVkMCwgJU1CQVIgKi8KIAogCS8qIEluaXRpYWxpemUgUkFNQkFSOiBsb2NhdGUgU1JBTSBhbmQgdmFsaWRhdGUgaXQgKi8KLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIDB4MjEpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyAweDIxKSwgJWQwCiAJbW92ZWMJJWQwLCAlUkFNQkFSMQogI2VuZGlmCiAKQEAgLTIwNCw3ICsyMDQsNyBAQAogI2VuZGlmCiAKIAkvKiBzZXQgc3RhY2twb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbCByYW0gdG8gZ2V0IHNvbWUgc3RhY2tzcGFjZSBmb3IgdGhlIGZpcnN0IGMtY29kZSAqLwotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCksICVzcAogCWNsci5sICVzcEAtCiAKIAltb3ZlLmwgI19fZ290X3N0YXJ0LCAlYTUJCS8qIHB1dCByZWxvY2F0aW9uIHRhYmxlIGFkZHJlc3MgdG8gYTUgKi8KQEAgLTIzNSw3ICsyMzUsNyBAQAogCW1vdmUubCAxMiglYTYpLCAlZDAJCS8qIFNhdmUgY29weSBvZiBHbG9iYWwgRGF0YSBwb2ludGVyICovCiAJbW92ZS5sIDE2KCVhNiksICVhMAkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KIAotCW1vdmUubCAjQ0ZHX01PTklUT1JfQkFTRSwgJWExCisJbW92ZS5sICNDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgJWExCiAJbW92ZS5sICNfX2luaXRfZW5kLCAlYTIKIAltb3ZlLmwgJWEwLCAlYTMKIAkvKiBjb3B5IHRoZSBjb2RlIHRvIFJBTSAqLwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAgKiBpbml0aWFsaXphdGlvbiwgbm93IHJ1bm5pbmcgZnJvbSBSQU0uCiAgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKGluX3JhbSAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubAkjKGluX3JhbSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAJam1wCSglYTEpCiAKIGluX3JhbToKQEAgLTI1OSw5ICsyNTksOSBAQAogCSAqIE5vdyBjbGVhciBCU1Mgc2VnbWVudAogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX3Nic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9zYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTAsICVkMQotCWFkZC5sCSMoX2Vic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlZDEKKwlhZGQubAkjKF9lYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVkMQogNjoKIAljbHIubAkoJWExKSsKIAljbXAubAklYTEsJWQxCkBAIC0yNzEsMTEgKzI3MSwxMSBAQAogCSAqIGZpeCBnb3QgdGFibGUgaW4gUkFNCiAJICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhfX2dvdF9zdGFydCAtIENGR19NT05JVE9SX0JBU0UpLCVhMQorCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWExCiAJbW92ZS5sCSVhMSwlYTUJCS8qICogZml4IGdvdCBwb2ludGVyIHJlZ2lzdGVyIGE1ICovCiAKIAltb3ZlLmwJJWEwLCAlYTIKLQlhZGQubAkjKF9fZ290X2VuZCAtIENGR19NT05JVE9SX0JBU0UpLCVhMgorCWFkZC5sCSMoX19nb3RfZW5kIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMgogCiA3OgogCW1vdmUubAkoJWExKSwlZDEKQEAgLTI5MCwyNyArMjkwLDI3IEBACiAJLyogcXVpY2sgYW5kIGRpcnR5ICovCiAKIAltb3ZlLmwJJWEwLCVkMQotCWFkZC5sCSMoaWNhY2hlX3N0YXRlIC0gQ0ZHX01PTklUT1JfQkFTRSksJWQxCisJYWRkLmwJIyhpY2FjaGVfc3RhdGUgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWQxCiAJbW92ZS5sCSVhMCwlYTEKLQlhZGQubAkjKGljYWNoZV9zdGF0ZV9hY2Nlc3NfMSsyIC0gQ0ZHX01PTklUT1JfQkFTRSksJWExCisJYWRkLmwJIyhpY2FjaGVfc3RhdGVfYWNjZXNzXzErMiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTEKIAltb3ZlLmwgICVkMSwoJWExKQogCW1vdmUubAklYTAsJWExCi0JYWRkLmwJIyhpY2FjaGVfc3RhdGVfYWNjZXNzXzIrMiAtIENGR19NT05JVE9SX0JBU0UpLCVhMQorCWFkZC5sCSMoaWNhY2hlX3N0YXRlX2FjY2Vzc18yKzIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWExCiAJbW92ZS5sICAlZDEsKCVhMSkKIAltb3ZlLmwJJWEwLCVhMQotCWFkZC5sCSMoaWNhY2hlX3N0YXRlX2FjY2Vzc18zKzIgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKGljYWNoZV9zdGF0ZV9hY2Nlc3NfMysyIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubCAgJWQxLCglYTEpCiAjZW5kaWYKIAogCS8qIGNhbGN1bGF0ZSByZWxhdGl2ZSBqdW1wIHRvIGJvYXJkX2luaXRfciBpbiByYW0gKi8KIAltb3ZlLmwgJWEwLCAlYTEKLQlhZGQubCAjKGJvYXJkX2luaXRfciAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubCAjKGJvYXJkX2luaXRfciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAKIAkvKiBzZXQgcGFyYW1ldGVycyBmb3IgYm9hcmRfaW5pdF9yICovCiAJbW92ZS5sICVhMCwtKCVzcCkJCS8qIGRlc3RfYWRkciAqLwogCW1vdmUubCAlZDAsLSglc3ApCQkvKiBnZCAqLwotI2lmIGRlZmluZWQoREVCVUcpICYmIChURVhUX0JBU0UgIT0gQ0ZHX0lOVF9GTEFTSF9CQVNFKSAmJiBcCi0gICAgZGVmaW5lZChDRkdfSEFMVF9CRUZPUl9SQU1fSlVNUCkKKyNpZiBkZWZpbmVkKERFQlVHKSAmJiAoVEVYVF9CQVNFICE9IENPTkZJR19TWVNfSU5UX0ZMQVNIX0JBU0UpICYmIFwKKyAgICBkZWZpbmVkKENPTkZJR19TWVNfSEFMVF9CRUZPUl9SQU1fSlVNUCkKIAloYWx0CiAjZW5kaWYKIAlqc3IJKCVhMSkKQEAgLTM0NCwxNCArMzQ0LDE0IEBACiBpY2FjaGVfZW5hYmxlOgogCW1vdmUubAkjMHgwMTAwMDAwMCwgJWQwCQkvKiBJbnZhbGlkYXRlIGNhY2hlIGNtZCAqLwogCW1vdmVjCSVkMCwgJUNBQ1IJCQkvKiBJbnZhbGlkYXRlIGNhY2hlICovCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0JBU0UgKyAweGMwMDApLCAlZDAJLyogU2V0dXAgY2FjaGUgbWFzayAqLworCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4YzAwMCksICVkMAkvKiBTZXR1cCBjYWNoZSBtYXNrICovCiAJbW92ZWMJJWQwLCAlQUNSMAkJCS8qIEVuYWJsZSBjYWNoZSAqLwogCiAJbW92ZS5sCSMweDgwMDAwMjAwLCAlZDAJCS8qIFNldHVwIGNhY2hlIG1hc2sgKi8KIAltb3ZlYwklZDAsICVDQUNSCQkJLyogRW5hYmxlIGNhY2hlICovCiAJbm9wCiAKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTgpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtOCksICVhMQogCW1vdmVxCSMxLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwpkaWZmIC0tZ2l0IGEvY3B1L21jZjUzMngvY3B1LmMgYi9jcHUvbWNmNTMyeC9jcHUuYwppbmRleCAyNjBkNmU2Li44YzQ5NmEyIDEwMDY0NAotLS0gYS9jcHUvbWNmNTMyeC9jcHUuYworKysgYi9jcHUvbWNmNTMyeC9jcHUuYwpAQCAtMTE3LDcgKzExNyw3IEBACiAJdTMyIHdkb2dfbW9kdWxlID0gMDsKIAogCS8qIHNldCB0aW1lb3V0IGFuZCBlbmFibGUgd2F0Y2hkb2cgKi8KLQl3ZG9nX21vZHVsZSA9ICgoQ0ZHX0NMSyAvIDEwMDApICogQ09ORklHX1dBVENIRE9HX1RJTUVPVVQpOworCXdkb2dfbW9kdWxlID0gKChDT05GSUdfU1lTX0NMSyAvIDEwMDApICogQ09ORklHX1dBVENIRE9HX1RJTUVPVVQpOwogI2lmZGVmIENPTkZJR19NNTMyOQogCXdkcC0+bXIgPSAod2RvZ19tb2R1bGUgLyA4MTkyKTsKICNlbHNlCmRpZmYgLS1naXQgYS9jcHUvbWNmNTMyeC9jcHVfaW5pdC5jIGIvY3B1L21jZjUzMngvY3B1X2luaXQuYwppbmRleCA5MzA4NmY3Li5kMzQ4ZTI5IDEwMDY0NAotLS0gYS9jcHUvbWNmNTMyeC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tY2Y1MzJ4L2NwdV9pbml0LmMKQEAgLTYzLDQ2ICs2Myw0NiBAQAogCS8qIFBvcnQgY29uZmlndXJhdGlvbiAqLwogCWdwaW8tPnBhcl9jcyA9IDA7CiAKLSNpZiAoZGVmaW5lZChDRkdfQ1MwX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTMF9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzBfQ1RSTCkpCi0JZmJjcy0+Y3NhcjAgPSBDRkdfQ1MwX0JBU0U7Ci0JZmJjcy0+Y3NjcjAgPSBDRkdfQ1MwX0NUUkw7Ci0JZmJjcy0+Y3NtcjAgPSBDRkdfQ1MwX01BU0s7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzBfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX0NUUkwpKQorCWZiY3MtPmNzYXIwID0gQ09ORklHX1NZU19DUzBfQkFTRTsKKwlmYmNzLT5jc2NyMCA9IENPTkZJR19TWVNfQ1MwX0NUUkw7CisJZmJjcy0+Y3NtcjAgPSBDT05GSUdfU1lTX0NTMF9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1MxX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTMV9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzFfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzFfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0NUUkwpKQogCS8qIExhdGNoIGNoaXBzZWxlY3QgKi8KIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1MxOwotCWZiY3MtPmNzYXIxID0gQ0ZHX0NTMV9CQVNFOwotCWZiY3MtPmNzY3IxID0gQ0ZHX0NTMV9DVFJMOwotCWZiY3MtPmNzbXIxID0gQ0ZHX0NTMV9NQVNLOworCWZiY3MtPmNzYXIxID0gQ09ORklHX1NZU19DUzFfQkFTRTsKKwlmYmNzLT5jc2NyMSA9IENPTkZJR19TWVNfQ1MxX0NUUkw7CisJZmJjcy0+Y3NtcjEgPSBDT05GSUdfU1lTX0NTMV9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1MyX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTMl9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzJfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzJfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX0NUUkwpKQogCWdwaW8tPnBhcl9jcyB8PSBHUElPX1BBUl9DUzI7Ci0JZmJjcy0+Y3NhcjIgPSBDRkdfQ1MyX0JBU0U7Ci0JZmJjcy0+Y3NjcjIgPSBDRkdfQ1MyX0NUUkw7Ci0JZmJjcy0+Y3NtcjIgPSBDRkdfQ1MyX01BU0s7CisJZmJjcy0+Y3NhcjIgPSBDT05GSUdfU1lTX0NTMl9CQVNFOworCWZiY3MtPmNzY3IyID0gQ09ORklHX1NZU19DUzJfQ1RSTDsKKwlmYmNzLT5jc21yMiA9IENPTkZJR19TWVNfQ1MyX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzNfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MzX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTM19DVFJMKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTM19CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQ1RSTCkpCiAJZ3Bpby0+cGFyX2NzIHw9IEdQSU9fUEFSX0NTMzsKLQlmYmNzLT5jc2FyMyA9IENGR19DUzNfQkFTRTsKLQlmYmNzLT5jc2NyMyA9IENGR19DUzNfQ1RSTDsKLQlmYmNzLT5jc21yMyA9IENGR19DUzNfTUFTSzsKKwlmYmNzLT5jc2FyMyA9IENPTkZJR19TWVNfQ1MzX0JBU0U7CisJZmJjcy0+Y3NjcjMgPSBDT05GSUdfU1lTX0NTM19DVFJMOworCWZiY3MtPmNzbXIzID0gQ09ORklHX1NZU19DUzNfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzRfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M0X0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M0X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNF9DVFJMKSkKIAlncGlvLT5wYXJfY3MgfD0gR1BJT19QQVJfQ1M0OwotCWZiY3MtPmNzYXI0ID0gQ0ZHX0NTNF9CQVNFOwotCWZiY3MtPmNzY3I0ID0gQ0ZHX0NTNF9DVFJMOwotCWZiY3MtPmNzbXI0ID0gQ0ZHX0NTNF9NQVNLOworCWZiY3MtPmNzYXI0ID0gQ09ORklHX1NZU19DUzRfQkFTRTsKKwlmYmNzLT5jc2NyNCA9IENPTkZJR19TWVNfQ1M0X0NUUkw7CisJZmJjcy0+Y3NtcjQgPSBDT05GSUdfU1lTX0NTNF9NQVNLOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfQ1M1X0JBU0UpICYmIGRlZmluZWQoQ0ZHX0NTNV9NQVNLKSAmJiBkZWZpbmVkKENGR19DUzVfQ1RSTCkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19DUzVfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9NQVNLKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M1X0NUUkwpKQogCWdwaW8tPnBhcl9jcyB8PSBHUElPX1BBUl9DUzU7Ci0JZmJjcy0+Y3NhcjUgPSBDRkdfQ1M1X0JBU0U7Ci0JZmJjcy0+Y3NjcjUgPSBDRkdfQ1M1X0NUUkw7Ci0JZmJjcy0+Y3NtcjUgPSBDRkdfQ1M1X01BU0s7CisJZmJjcy0+Y3NhcjUgPSBDT05GSUdfU1lTX0NTNV9CQVNFOworCWZiY3MtPmNzY3I1ID0gQ09ORklHX1NZU19DUzVfQ1RSTDsKKwlmYmNzLT5jc21yNSA9IENPTkZJR19TWVNfQ1M1X01BU0s7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCkBAIC0xMjUsNyArMTI1LDcgQEAKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl91YXJ0ID0gKEdQSU9fUEFSX1VBUlRfVFhEMCB8IEdQSU9fUEFSX1VBUlRfUlhEMCk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvY3B1L21jZjUzMngvaW50ZXJydXB0cy5jIGIvY3B1L21jZjUzMngvaW50ZXJydXB0cy5jCmluZGV4IGZmNTBkN2QuLmQ2YzgyMDUgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1MzJ4L2ludGVycnVwdHMuYworKysgYi9jcHUvbWNmNTMyeC9pbnRlcnJ1cHRzLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW50IGludGVycnVwdF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJLyogTWFrZSBzdXJlIGFsbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCAqLwogCWludHAtPmltcmgwIHw9IDB4RkZGRkZGRkY7CkBAIC00MSw5ICs0MSw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfTUNGVE1SKQogdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKQogewotCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENGR19JTlRSX0JBU0UpOworCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENPTkZJR19TWVNfSU5UUl9CQVNFKTsKIAotCWludHAtPmljcjBbQ0ZHX1RNUklOVFJfTk9dID0gQ0ZHX1RNUklOVFJfUFJJOwotCWludHAtPmltcmgwICY9IH5DRkdfVE1SSU5UUl9NQVNLOworCWludHAtPmljcjBbQ09ORklHX1NZU19UTVJJTlRSX05PXSA9IENPTkZJR19TWVNfVE1SSU5UUl9QUkk7CisJaW50cC0+aW1yaDAgJj0gfkNPTkZJR19TWVNfVE1SSU5UUl9NQVNLOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbWNmNTMyeC9zcGVlZC5jIGIvY3B1L21jZjUzMngvc3BlZWQuYwppbmRleCBhMTFlNDI1Li4xZTQwMzc0IDEwMDY0NAotLS0gYS9jcHUvbWNmNTMyeC9zcGVlZC5jCisrKyBiL2NwdS9tY2Y1MzJ4L3NwZWVkLmMKQEAgLTE5Nyw3ICsxOTcsNyBAQAogCSAqLwogCiAJLyogc29mdHdhcmUgd29ya2Fyb3VuZCBmb3IgU0RSQU0gb3BlYXJ0aW9uIGFmdGVyIGV4aXRpbmcgTElNUCBtb2RlIGVycmF0YSAqLwotCSpzZHJhbV93b3JrYXJvdW5kID0gQ0ZHX1NEUkFNX0JBU0U7CisJKnNkcmFtX3dvcmthcm91bmQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CiAKIAkvKiB3YWl0IGZvciBEUVMgbG9naWMgdG8gcmVsb2NrICovCiAJZm9yIChpID0gMDsgaSA8IDB4MjAwOyBpKyspIDsKQEAgLTIxMCw3ICsyMTAsNyBAQAogICovCiBpbnQgZ2V0X2Nsb2Nrcyh2b2lkKQogewotCWdkLT5idXNfY2xrID0gY2xvY2tfcGxsKENGR19DTEsgLyAxMDAwLCAwKSAqIDEwMDA7CisJZ2QtPmJ1c19jbGsgPSBjbG9ja19wbGwoQ09ORklHX1NZU19DTEsgLyAxMDAwLCAwKSAqIDEwMDA7CiAJZ2QtPmNwdV9jbGsgPSAoZ2QtPmJ1c19jbGsgKiAzKTsKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCmRpZmYgLS1naXQgYS9jcHUvbWNmNTMyeC9zdGFydC5TIGIvY3B1L21jZjUzMngvc3RhcnQuUwppbmRleCBjODA2ZjdhLi43YTNlYjVmIDEwMDY0NAotLS0gYS9jcHUvbWNmNTMyeC9zdGFydC5TCisrKyBiL2NwdS9tY2Y1MzJ4L3N0YXJ0LlMKQEAgLTEyNywxMCArMTI3LDEwIEBACiAJbW92ZS53ICMweDI3MDAsJXNyCS8qIE1hc2sgb2ZmIEludGVycnVwdCAqLwogCiAJLyogU2V0IHZlY3RvciBiYXNlIHJlZ2lzdGVyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEZsYXNoICovCi0JbW92ZS5sCSNDRkdfRkxBU0hfQkFTRSwgJWQwCisJbW92ZS5sCSNDT05GSUdfU1lTX0ZMQVNIX0JBU0UsICVkMAogCW1vdmVjCSVkMCwgJVZCUgogCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9SQU1fQ1RSTCksICVkMAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTCksICVkMAogCW1vdmVjCSVkMCwgJVJBTUJBUjEKIAogCS8qIGludmFsaWRhdGUgYW5kIGRpc2FibGUgY2FjaGUgKi8KQEAgLTE0MiwxNCArMTQyLDE0IEBACiAKIAkvKiBpbml0aWFsaXplIGdlbmVyYWwgdXNlIGludGVybmFsIHJhbSAqLwogCW1vdmUubCAjMCwgJWQwCi0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC04KSwgJWExCi0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC00KSwgJWEyCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTgpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtNCksICVhMgogCW1vdmUubCAlZDAsICglYTEpCiAJbW92ZS5sICVkMCwgKCVhMikKIAogCS8qIHNldCBzdGFja3BvaW50ZXIgdG8gZW5kIG9mIGludGVybmFsIHJhbSB0byBnZXQgc29tZSBzdGFja3NwYWNlIGZvciB0aGUKIAkgICBmaXJzdCBjLWNvZGUgKi8KLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIENGR19JTklUX1NQX09GRlNFVCksICVzcAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQpLCAlc3AKIAljbHIubCAlc3BALQogCiAJbW92ZS5sICNfX2dvdF9zdGFydCwgJWE1CS8qIHB1dCByZWxvY2F0aW9uIHRhYmxlIGFkZHJlc3MgdG8gYTUgKi8KQEAgLTE4MCw3ICsxODAsNyBAQAogCW1vdmUubCAxMiglYTYpLCAlZDAJCS8qIFNhdmUgY29weSBvZiBHbG9iYWwgRGF0YSBwb2ludGVyICovCiAJbW92ZS5sIDE2KCVhNiksICVhMAkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KIAotCW1vdmUubCAjQ0ZHX01PTklUT1JfQkFTRSwgJWExCisJbW92ZS5sICNDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgJWExCiAJbW92ZS5sICNfX2luaXRfZW5kLCAlYTIKIAltb3ZlLmwgJWEwLCAlYTMKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAgKiBpbml0aWFsaXphdGlvbiwgbm93IHJ1bm5pbmcgZnJvbSBSQU0uCiAgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKGluX3JhbSAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubAkjKGluX3JhbSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAJam1wCSglYTEpCiAKIGluX3JhbToKQEAgLTIwNSw5ICsyMDUsOSBAQAogCSAqIE5vdyBjbGVhciBCU1Mgc2VnbWVudAogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX3Nic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9zYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTAsICVkMQotCWFkZC5sCSMoX2Vic3MgLSBDRkdfTU9OSVRPUl9CQVNFKSwlZDEKKwlhZGQubAkjKF9lYnNzIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVkMQogNjoKIAljbHIubAkoJWExKSsKIAljbXAubAklYTEsJWQxCkBAIC0yMTcsMTEgKzIxNywxMSBAQAogCSAqIGZpeCBnb3QgdGFibGUgaW4gUkFNCiAJICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhfX2dvdF9zdGFydCAtIENGR19NT05JVE9SX0JBU0UpLCVhMQorCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWExCiAJbW92ZS5sCSVhMSwlYTUJCS8qICogZml4IGdvdCBwb2ludGVyIHJlZ2lzdGVyIGE1ICovCiAKIAltb3ZlLmwJJWEwLCAlYTIKLQlhZGQubAkjKF9fZ290X2VuZCAtIENGR19NT05JVE9SX0JBU0UpLCVhMgorCWFkZC5sCSMoX19nb3RfZW5kIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMgogCiA3OgogCW1vdmUubAkoJWExKSwlZDEKQEAgLTIzMyw3ICsyMzMsNyBAQAogCiAJLyogY2FsY3VsYXRlIHJlbGF0aXZlIGp1bXAgdG8gYm9hcmRfaW5pdF9yIGluIHJhbSAqLwogCW1vdmUubCAlYTAsICVhMQotCWFkZC5sICMoYm9hcmRfaW5pdF9yIC0gQ0ZHX01PTklUT1JfQkFTRSksICVhMQorCWFkZC5sICMoYm9hcmRfaW5pdF9yIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCAlYTEKIAogCS8qIHNldCBwYXJhbWV0ZXJzIGZvciBib2FyZF9pbml0X3IgKi8KIAltb3ZlLmwgJWEwLC0oJXNwKQkJLyogZGVzdF9hZGRyICovCkBAIC0yNjgsMTQgKzI2OCwxNCBAQAogaWNhY2hlX2VuYWJsZToKIAltb3ZlLmwJIzB4MDEwMDAwMDAsICVkMAkJLyogSW52YWxpZGF0ZSBjYWNoZSBjbWQgKi8KIAltb3ZlYwklZDAsICVDQUNSCQkJLyogSW52YWxpZGF0ZSBjYWNoZSAqLwotCW1vdmUubAkjKENGR19TRFJBTV9CQVNFICsgMHgxYzAwMCksICVkMAorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MWMwMDApLCAlZDAKIAltb3ZlYwklZDAsICVBQ1IwCQkJLyogRW5hYmxlIGNhY2hlICovCiAKIAltb3ZlLmwJIzB4ODAwMDAyMDAsICVkMAkJLyogU2V0dXAgY2FjaGUgbWFzayAqLwogCW1vdmVjCSVkMCwgJUNBQ1IJCQkvKiBFbmFibGUgY2FjaGUgKi8KIAlub3AKIAotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtOCksICVhMQorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC04KSwgJWExCiAJbW92ZXEJIzEsICVkMAogCW1vdmUubAklZDAsICglYTEpCiAJcnRzCkBAIC0yODgsMTQgKzI4OCwxNCBAQAogCW1vdmVjCSVkMCwgJUFDUjAKIAltb3ZlYwklZDAsICVBQ1IxCiAKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTgpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtOCksICVhMQogCW1vdmVxCSMwLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwogCiAJLmdsb2JsCWljYWNoZV9zdGF0dXMKIGljYWNoZV9zdGF0dXM6Ci0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC04KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTgpLCAlYTEKIAltb3ZlLmwJKCVhMSksICVkMAogCXJ0cwogCkBAIC0zMDcsNyArMzA3LDcgQEAKIAogCS5nbG9ibAlkY2FjaGVfZW5hYmxlCiBkY2FjaGVfZW5hYmxlOgotCW1vdmUubCAjKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtNCksICVhMQorCW1vdmUubCAjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC00KSwgJWExCiAJbW92ZXEJIzEsICVkMAogCW1vdmUubAklZDAsICglYTEpCiAJcnRzCkBAIC0zMTUsMTQgKzMxNSwxNCBAQAogICAgIC8qIE5vIGRjYWNoZSwganVzdCBhIGR1bW15IGZ1bmN0aW9uICovCiAJLmdsb2JsCWRjYWNoZV9kaXNhYmxlCiBkY2FjaGVfZGlzYWJsZToKLQltb3ZlLmwgIyhDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTQpLCAlYTEKKwltb3ZlLmwgIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtNCksICVhMQogCW1vdmVxCSMwLCAlZDAKIAltb3ZlLmwJJWQwLCAoJWExKQogCXJ0cwogCiAJLmdsb2JsCWRjYWNoZV9zdGF0dXMKIGRjYWNoZV9zdGF0dXM6Ci0JbW92ZS5sICMoQ0ZHX0lOSVRfUkFNX0FERFIrQ0ZHX0lOSVRfUkFNX0VORC00KSwgJWExCisJbW92ZS5sICMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTQpLCAlYTEKIAltb3ZlLmwJKCVhMSksICVkMAogCXJ0cwogCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ0NXgvY3B1X2luaXQuYyBiL2NwdS9tY2Y1NDQ1eC9jcHVfaW5pdC5jCmluZGV4IDUxYTllOTAuLjUwYjQ1NjEgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDQ1eC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tY2Y1NDQ1eC9jcHVfaW5pdC5jCkBAIC02Miw0MiArNjIsNDIgQEAKIAkgICAgR1BJT19QQVJfRkJDVExfVFNfVFM7CiAKICNpZiAhZGVmaW5lZChDT05GSUdfQ0ZfU0JGKQotI2lmIChkZWZpbmVkKENGR19DUzBfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MwX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMF9DVFJMKSkKLQlmYmNzLT5jc2FyMCA9IENGR19DUzBfQkFTRTsKLQlmYmNzLT5jc2NyMCA9IENGR19DUzBfQ1RSTDsKLQlmYmNzLT5jc21yMCA9IENGR19DUzBfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMF9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfQ1RSTCkpCisJZmJjcy0+Y3NhcjAgPSBDT05GSUdfU1lTX0NTMF9CQVNFOworCWZiY3MtPmNzY3IwID0gQ09ORklHX1NZU19DUzBfQ1RSTDsKKwlmYmNzLT5jc21yMCA9IENPTkZJR19TWVNfQ1MwX01BU0s7CiAjZW5kaWYKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMV9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzFfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MxX0NUUkwpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9DVFJMKSkKIAkvKiBMYXRjaCBjaGlwc2VsZWN0ICovCi0JZmJjcy0+Y3NhcjEgPSBDRkdfQ1MxX0JBU0U7Ci0JZmJjcy0+Y3NjcjEgPSBDRkdfQ1MxX0NUUkw7Ci0JZmJjcy0+Y3NtcjEgPSBDRkdfQ1MxX01BU0s7CisJZmJjcy0+Y3NhcjEgPSBDT05GSUdfU1lTX0NTMV9CQVNFOworCWZiY3MtPmNzY3IxID0gQ09ORklHX1NZU19DUzFfQ1RSTDsKKwlmYmNzLT5jc21yMSA9IENPTkZJR19TWVNfQ1MxX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzJfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MyX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTMl9DVFJMKSkKLQlmYmNzLT5jc2FyMiA9IENGR19DUzJfQkFTRTsKLQlmYmNzLT5jc2NyMiA9IENGR19DUzJfQ1RSTDsKLQlmYmNzLT5jc21yMiA9IENGR19DUzJfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTMl9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MyX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfQ1RSTCkpCisJZmJjcy0+Y3NhcjIgPSBDT05GSUdfU1lTX0NTMl9CQVNFOworCWZiY3MtPmNzY3IyID0gQ09ORklHX1NZU19DUzJfQ1RSTDsKKwlmYmNzLT5jc21yMiA9IENPTkZJR19TWVNfQ1MyX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzNfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1MzX01BU0spICYmIGRlZmluZWQoQ0ZHX0NTM19DVFJMKSkKLQlmYmNzLT5jc2FyMyA9IENGR19DUzNfQkFTRTsKLQlmYmNzLT5jc2NyMyA9IENGR19DUzNfQ1RSTDsKLQlmYmNzLT5jc21yMyA9IENGR19DUzNfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTM19CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfQ1RSTCkpCisJZmJjcy0+Y3NhcjMgPSBDT05GSUdfU1lTX0NTM19CQVNFOworCWZiY3MtPmNzY3IzID0gQ09ORklHX1NZU19DUzNfQ1RSTDsKKwlmYmNzLT5jc21yMyA9IENPTkZJR19TWVNfQ1MzX01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzRfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M0X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNF9DVFJMKSkKLQlmYmNzLT5jc2FyNCA9IENGR19DUzRfQkFTRTsKLQlmYmNzLT5jc2NyNCA9IENGR19DUzRfQ1RSTDsKLQlmYmNzLT5jc21yNCA9IENGR19DUzRfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M0X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfQ1RSTCkpCisJZmJjcy0+Y3NhcjQgPSBDT05GSUdfU1lTX0NTNF9CQVNFOworCWZiY3MtPmNzY3I0ID0gQ09ORklHX1NZU19DUzRfQ1RSTDsKKwlmYmNzLT5jc21yNCA9IENPTkZJR19TWVNfQ1M0X01BU0s7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19DUzVfQkFTRSkgJiYgZGVmaW5lZChDRkdfQ1M1X01BU0spICYmIGRlZmluZWQoQ0ZHX0NTNV9DVFJMKSkKLQlmYmNzLT5jc2FyNSA9IENGR19DUzVfQkFTRTsKLQlmYmNzLT5jc2NyNSA9IENGR19DUzVfQ1RSTDsKLQlmYmNzLT5jc21yNSA9IENGR19DUzVfTUFTSzsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0NTNV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1M1X01BU0spICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzVfQ1RSTCkpCisJZmJjcy0+Y3NhcjUgPSBDT05GSUdfU1lTX0NTNV9CQVNFOworCWZiY3MtPmNzY3I1ID0gQ09ORklHX1NZU19DUzVfQ1RSTDsKKwlmYmNzLT5jc21yNSA9IENPTkZJR19TWVNfQ1M1X01BU0s7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCkBAIC0xMTMsMTEgKzExMywxMSBAQAogaW50IGNwdV9pbml0X3Iodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfTUNGUlRDCi0Jdm9sYXRpbGUgcnRjX3QgKnJ0YyA9ICh2b2xhdGlsZSBydGNfdCAqKShDRkdfTUNGUlRDX0JBU0UpOworCXZvbGF0aWxlIHJ0Y190ICpydGMgPSAodm9sYXRpbGUgcnRjX3QgKikoQ09ORklHX1NZU19NQ0ZSVENfQkFTRSk7CiAJdm9sYXRpbGUgcnRjZXhfdCAqcnRjZXggPSAodm9sYXRpbGUgcnRjZXhfdCAqKSZydGMtPmV4dGVuZGVkOwogCi0JcnRjZXgtPmdvY3UgPSAoQ0ZHX1JUQ19PU0NJTExBVE9SID4+IDE2KSAmIDB4RkZGRjsKLQlydGNleC0+Z29jbCA9IENGR19SVENfT1NDSUxMQVRPUiAmIDB4RkZGRjsKKwlydGNleC0+Z29jdSA9IChDT05GSUdfU1lTX1JUQ19PU0NJTExBVE9SID4+IDE2KSAmIDB4RkZGRjsKKwlydGNleC0+Z29jbCA9IENPTkZJR19TWVNfUlRDX09TQ0lMTEFUT1IgJiAweEZGRkY7CiAjZW5kaWYKIAogCXJldHVybiAoMCk7CkBAIC0xMjgsNyArMTI4LDcgQEAKIAl2b2xhdGlsZSBncGlvX3QgKmdwaW8gPSAoZ3Bpb190ICopIE1NQVBfR1BJTzsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl91YXJ0ID0KIAkJICAgIChHUElPX1BBUl9VQVJUX1UwVFhEX1UwVFhEIHwgR1BJT19QQVJfVUFSVF9VMFJYRF9VMFJYRCk7CmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ0NXgvZHNwaS5jIGIvY3B1L21jZjU0NDV4L2RzcGkuYwppbmRleCA5NTlkNmJkLi42ZDNlYmFiIDEwMDY0NAotLS0gYS9jcHUvbWNmNTQ0NXgvZHNwaS5jCisrKyBiL2NwdS9tY2Y1NDQ1eC9kc3BpLmMKQEAgLTQ3LDI5ICs0NywyOSBAQAogCSAgICBEU1BJX0RNQ1JfQ1NJUzIgfCBEU1BJX0RNQ1JfQ1NJUzEgfCBEU1BJX0RNQ1JfQ1NJUzAgfAogCSAgICBEU1BJX0RNQ1JfQ1JYRiB8IERTUElfRE1DUl9DVFhGOwogCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVIwCi0JZHNwaS0+ZGN0YXIwID0gQ0ZHX0RTUElfRENUQVIwOworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjAKKwlkc3BpLT5kY3RhcjAgPSBDT05GSUdfU1lTX0RTUElfRENUQVIwOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVIxCi0JZHNwaS0+ZGN0YXIxID0gQ0ZHX0RTUElfRENUQVIxOworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjEKKwlkc3BpLT5kY3RhcjEgPSBDT05GSUdfU1lTX0RTUElfRENUQVIxOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVIyCi0JZHNwaS0+ZGN0YXIyID0gQ0ZHX0RTUElfRENUQVIyOworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjIKKwlkc3BpLT5kY3RhcjIgPSBDT05GSUdfU1lTX0RTUElfRENUQVIyOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVIzCi0JZHNwaS0+ZGN0YXIzID0gQ0ZHX0RTUElfRENUQVIzOworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjMKKwlkc3BpLT5kY3RhcjMgPSBDT05GSUdfU1lTX0RTUElfRENUQVIzOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVI0Ci0JZHNwaS0+ZGN0YXI0ID0gQ0ZHX0RTUElfRENUQVI0OworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjQKKwlkc3BpLT5kY3RhcjQgPSBDT05GSUdfU1lTX0RTUElfRENUQVI0OwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVI1Ci0JZHNwaS0+ZGN0YXI1ID0gQ0ZHX0RTUElfRENUQVI1OworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjUKKwlkc3BpLT5kY3RhcjUgPSBDT05GSUdfU1lTX0RTUElfRENUQVI1OwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVI2Ci0JZHNwaS0+ZGN0YXI2ID0gQ0ZHX0RTUElfRENUQVI2OworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjYKKwlkc3BpLT5kY3RhcjYgPSBDT05GSUdfU1lTX0RTUElfRENUQVI2OwogI2VuZGlmCi0jaWZkZWYgQ0ZHX0RTUElfRENUQVI3Ci0JZHNwaS0+ZGN0YXI3ID0gQ0ZHX0RTUElfRENUQVI3OworI2lmZGVmIENPTkZJR19TWVNfRFNQSV9EQ1RBUjcKKwlkc3BpLT5kY3RhcjcgPSBDT05GSUdfU1lTX0RTUElfRENUQVI3OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDQ1eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbWNmNTQ0NXgvaW50ZXJydXB0cy5jCmluZGV4IDk1NzJhN2IuLjg1ODI4YTYgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDQ1eC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21jZjU0NDV4L2ludGVycnVwdHMuYwpAQCAtMzEsNyArMzEsNyBAQAogCiBpbnQgaW50ZXJydXB0X2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDRkdfSU5UUl9CQVNFKTsKKwl2b2xhdGlsZSBpbnQwX3QgKmludHAgPSAoaW50MF90ICopIChDT05GSUdfU1lTX0lOVFJfQkFTRSk7CiAKIAkvKiBNYWtlIHN1cmUgYWxsIGludGVycnVwdHMgYXJlIGRpc2FibGVkICovCiAJaW50cC0+aW1yaDAgfD0gMHhGRkZGRkZGRjsKQEAgLTQ0LDkgKzQ0LDkgQEAKICNpZiBkZWZpbmVkKENPTkZJR19NQ0ZUTVIpCiB2b2lkIGR0aW1lcl9pbnRyX3NldHVwKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCi0JaW50cC0+aWNyMFtDRkdfVE1SSU5UUl9OT10gPSBDRkdfVE1SSU5UUl9QUkk7Ci0JaW50cC0+aW1yaDAgJj0gfkNGR19UTVJJTlRSX01BU0s7CisJaW50cC0+aWNyMFtDT05GSUdfU1lTX1RNUklOVFJfTk9dID0gQ09ORklHX1NZU19UTVJJTlRSX1BSSTsKKwlpbnRwLT5pbXJoMCAmPSB+Q09ORklHX1NZU19UTVJJTlRSX01BU0s7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDQ1eC9wY2kuYyBiL2NwdS9tY2Y1NDQ1eC9wY2kuYwppbmRleCAwMzk4NDY5Li5jNGEzYjA1IDEwMDY0NAotLS0gYS9jcHUvbWNmNTQ0NXgvcGNpLmMKKysrIGIvY3B1L21jZjU0NDV4L3BjaS5jCkBAIC0zMSw5ICszMSw5IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAvKiBTeXN0ZW0gUkFNIG1hcHBlZCBvdmVyIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU1lTX01FTV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NZU19NRU1fQlVTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NZU19NRU1fU0laRQkoMTAyNCAqIDEwMjQgKiAxMDI0KQogCiAjZGVmaW5lIGNmZ19yZWFkKHZhbCwgYWRkciwgdHlwZSwgb3ApCQkqdmFsID0gb3AoKHR5cGUpKGFkZHIpKTsKICNkZWZpbmUgY2ZnX3dyaXRlKHZhbCwgYWRkciwgdHlwZSwgb3ApCQlvcCgodHlwZSAqKShhZGRyKSwgKHZhbCkpOwpAQCAtODAsOSArODAsOSBAQAogCXBjaS0+dGNyMSB8PSBQQ0lfVENSMV9QOwogCiAJLyogSW5pdGlhdG9yIHdpbmRvd3MgKi8KLQlwY2ktPml3MGJ0YXIgPSBDRkdfUENJX01FTV9QSFlTIHwgKENGR19QQ0lfTUVNX1BIWVMgPj4gMTYpOwotCXBjaS0+aXcxYnRhciA9IENGR19QQ0lfSU9fUEhZUyB8IChDRkdfUENJX0lPX1BIWVMgPj4gMTYpOwotCXBjaS0+aXcyYnRhciA9IENGR19QQ0lfQ0ZHX1BIWVMgfCAoQ0ZHX1BDSV9DRkdfUEhZUyA+PiAxNik7CisJcGNpLT5pdzBidGFyID0gQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgfCAoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgPj4gMTYpOworCXBjaS0+aXcxYnRhciA9IENPTkZJR19TWVNfUENJX0lPX1BIWVMgfCAoQ09ORklHX1NZU19QQ0lfSU9fUEhZUyA+PiAxNik7CisJcGNpLT5pdzJidGFyID0gQ09ORklHX1NZU19QQ0lfQ0ZHX1BIWVMgfCAoQ09ORklHX1NZU19QQ0lfQ0ZHX1BIWVMgPj4gMTYpOwogCiAJcGNpLT5pd2NyID0KIAkgICAgUENJX0lXQ1JfVzBDX0VOIHwgUENJX0lXQ1JfVzFDX0VOIHwgUENJX0lXQ1JfVzFDX0lPIHwKQEAgLTk3LDM0ICs5NywzNCBAQAogCXBjaS0+Y3IxID0gUENJX0NSMV9DTFMoOCkgfCBQQ0lfQ1IxX0xUTVIoMHhGOCk7CiAJcGNpLT5jcjIgPSAwOwogCi0jaWZkZWYgQ0ZHX1BDSV9CQVIwCi0JcGNpLT5iYXIwID0gUENJX0JBUl9CQVIwKENGR19QQ0lfQkFSMCk7Ci0JcGNpLT50YmF0cjAgPSBDRkdfUENJX1RCQVRSMCB8IFBDSV9UQkFUUl9FTjsKKyNpZmRlZiBDT05GSUdfU1lTX1BDSV9CQVIwCisJcGNpLT5iYXIwID0gUENJX0JBUl9CQVIwKENPTkZJR19TWVNfUENJX0JBUjApOworCXBjaS0+dGJhdHIwID0gQ09ORklHX1NZU19QQ0lfVEJBVFIwIHwgUENJX1RCQVRSX0VOOwogCWJhckVuIHw9IFBDSV9UQ1IyX0IwRTsKICNlbmRpZgotI2lmZGVmIENGR19QQ0lfQkFSMQotCXBjaS0+YmFyMSA9IFBDSV9CQVJfQkFSMShDRkdfUENJX0JBUjEpOwotCXBjaS0+dGJhdHIxID0gQ0ZHX1BDSV9UQkFUUjEgfCBQQ0lfVEJBVFJfRU47CisjaWZkZWYgQ09ORklHX1NZU19QQ0lfQkFSMQorCXBjaS0+YmFyMSA9IFBDSV9CQVJfQkFSMShDT05GSUdfU1lTX1BDSV9CQVIxKTsKKwlwY2ktPnRiYXRyMSA9IENPTkZJR19TWVNfUENJX1RCQVRSMSB8IFBDSV9UQkFUUl9FTjsKIAliYXJFbiB8PSBQQ0lfVENSMl9CMUU7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUENJX0JBUjIKLQlwY2ktPmJhcjIgPSBQQ0lfQkFSX0JBUjIoQ0ZHX1BDSV9CQVIyKTsKLQlwY2ktPnRiYXRyMiA9IENGR19QQ0lfVEJBVFIyIHwgUENJX1RCQVRSX0VOOworI2lmZGVmIENPTkZJR19TWVNfUENJX0JBUjIKKwlwY2ktPmJhcjIgPSBQQ0lfQkFSX0JBUjIoQ09ORklHX1NZU19QQ0lfQkFSMik7CisJcGNpLT50YmF0cjIgPSBDT05GSUdfU1lTX1BDSV9UQkFUUjIgfCBQQ0lfVEJBVFJfRU47CiAJYmFyRW4gfD0gUENJX1RDUjJfQjJFOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX1BDSV9CQVIzCi0JcGNpLT5iYXIzID0gUENJX0JBUl9CQVIzKENGR19QQ0lfQkFSMyk7Ci0JcGNpLT50YmF0cjMgPSBDRkdfUENJX1RCQVRSMyB8IFBDSV9UQkFUUl9FTjsKKyNpZmRlZiBDT05GSUdfU1lTX1BDSV9CQVIzCisJcGNpLT5iYXIzID0gUENJX0JBUl9CQVIzKENPTkZJR19TWVNfUENJX0JBUjMpOworCXBjaS0+dGJhdHIzID0gQ09ORklHX1NZU19QQ0lfVEJBVFIzIHwgUENJX1RCQVRSX0VOOwogCWJhckVuIHw9IFBDSV9UQ1IyX0IzRTsKICNlbmRpZgotI2lmZGVmIENGR19QQ0lfQkFSNAotCXBjaS0+YmFyNCA9IFBDSV9CQVJfQkFSNChDRkdfUENJX0JBUjQpOwotCXBjaS0+dGJhdHI0ID0gQ0ZHX1BDSV9UQkFUUjQgfCBQQ0lfVEJBVFJfRU47CisjaWZkZWYgQ09ORklHX1NZU19QQ0lfQkFSNAorCXBjaS0+YmFyNCA9IFBDSV9CQVJfQkFSNChDT05GSUdfU1lTX1BDSV9CQVI0KTsKKwlwY2ktPnRiYXRyNCA9IENPTkZJR19TWVNfUENJX1RCQVRSNCB8IFBDSV9UQkFUUl9FTjsKIAliYXJFbiB8PSBQQ0lfVENSMl9CNEU7CiAjZW5kaWYKLSNpZmRlZiBDRkdfUENJX0JBUjUKLQlwY2ktPmJhcjUgPSBQQ0lfQkFSX0JBUjUoQ0ZHX1BDSV9CQVI1KTsKLQlwY2ktPnRiYXRyNSA9IENGR19QQ0lfVEJBVFI1IHwgUENJX1RCQVRSX0VOOworI2lmZGVmIENPTkZJR19TWVNfUENJX0JBUjUKKwlwY2ktPmJhcjUgPSBQQ0lfQkFSX0JBUjUoQ09ORklHX1NZU19QQ0lfQkFSNSk7CisJcGNpLT50YmF0cjUgPSBDT05GSUdfU1lTX1BDSV9UQkFUUjUgfCBQQ0lfVEJBVFJfRU47CiAJYmFyRW4gfD0gUENJX1RDUjJfQjVFOwogI2VuZGlmCiAKQEAgLTEzOCwyMCArMTM4LDIwIEBACiAJaG9zZS0+Zmlyc3RfYnVzbm8gPSAwOwogCWhvc2UtPmxhc3RfYnVzbm8gPSAweGZmOwogCi0JcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsIENGR19QQ0lfTUVNX0JVUywgQ0ZHX1BDSV9NRU1fUEhZUywKLQkJICAgICAgIENGR19QQ0lfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKKwlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwgQ09ORklHX1NZU19QQ0lfTUVNX0JVUywgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCi0JcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDEsIENGR19QQ0lfSU9fQlVTLCBDRkdfUENJX0lPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLCBDT05GSUdfU1lTX1BDSV9JT19CVVMsIENPTkZJR19TWVNfUENJX0lPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKIAotCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLCBDRkdfUENJX1NZU19NRU1fQlVTLAotCQkgICAgICAgQ0ZHX1BDSV9TWVNfTUVNX1BIWVMsIENGR19QQ0lfU1lTX01FTV9TSVpFLAorCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAyLCBDT05GSUdfU1lTX1BDSV9TWVNfTUVNX0JVUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX1NZU19NRU1fUEhZUywgQ09ORklHX1NZU19QQ0lfU1lTX01FTV9TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAlob3NlLT5yZWdpb25fY291bnQgPSAzOwogCiAJaG9zZS0+Y2ZnX2FkZHIgPSAmKHBjaS0+Y2FyKTsKLQlob3NlLT5jZmdfZGF0YSA9ICh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopQ0ZHX1BDSV9DRkdfQlVTOworCWhvc2UtPmNmZ19kYXRhID0gKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKilDT05GSUdfU1lTX1BDSV9DRkdfQlVTOwogCiAJcGNpX3NldF9vcHMoaG9zZSwgcGNpX3JlYWRfY2ZnX2J5dGUsIHBjaV9yZWFkX2NmZ193b3JkLAogCQkgICAgcGNpX3JlYWRfY2ZnX2R3b3JkLCBwY2lfd3JpdGVfY2ZnX2J5dGUsIHBjaV93cml0ZV9jZmdfd29yZCwKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDQ1eC9zcGVlZC5jIGIvY3B1L21jZjU0NDV4L3NwZWVkLmMKaW5kZXggNjcxMWExZC4uOWMwYzA3NyAxMDA2NDQKLS0tIGEvY3B1L21jZjU0NDV4L3NwZWVkLmMKKysrIGIvY3B1L21jZjU0NDV4L3NwZWVkLmMKQEAgLTk0LDcgKzk0LDcgQEAKIAl1MTYgZmJwbGxfbWFzazsKIAogI2lmZGVmIENPTkZJR19NNTQ0NTVFVkIKLQl2b2xhdGlsZSB1OCAqY3BsZCA9ICh2b2xhdGlsZSB1OCAqKShDRkdfQ1MyX0JBU0UgKyAzKTsKKwl2b2xhdGlsZSB1OCAqY3BsZCA9ICh2b2xhdGlsZSB1OCAqKShDT05GSUdfU1lTX0NTMl9CQVNFICsgMyk7CiAjZW5kaWYKIAl1OCBib290bW9kZTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBACiAKIAlpZiAoYm9vdG1vZGUgPT0gMCkgewogCQkvKiBSQ09OIG1vZGUgKi8KLQkJdmNvID0gcFBsbG11bHRbY2NtLT5yY29uICYgZmJwbGxfbWFza10gKiBDRkdfSU5QVVRfQ0xLU1JDOworCQl2Y28gPSBwUGxsbXVsdFtjY20tPnJjb24gJiBmYnBsbF9tYXNrXSAqIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwogCiAJCWlmICgodmNvIDwgQ0xPQ0tfUExMX0ZWQ09fTUlOKSB8fCAodmNvID4gQ0xPQ0tfUExMX0ZWQ09fTUFYKSkgewogCQkJLyogaW52YWlsZCByYW5nZSwgcmUtc2V0IGluIFBDUiAqLwpAQCAtMTU0LDcgKzE1NCw3IEBACiAKIAkJCWogPSAocGxsLT5wY3IgJiAweEZGMDAwMDAwKSA+PiAyNDsKIAkJCWZvciAoaSA9IGo7IGkgPCAweEZGOyBpKyspIHsKLQkJCQl2Y28gPSBpICogQ0ZHX0lOUFVUX0NMS1NSQzsKKwkJCQl2Y28gPSBpICogQ09ORklHX1NZU19JTlBVVF9DTEtTUkM7CiAJCQkJaWYgKHZjbyA+PSBDTE9DS19QTExfRlZDT19NSU4pIHsKIAkJCQkJYnVzID0gdmNvIC8gdGVtcDsKIAkJCQkJaWYgKGJ1cyA8PSBDTE9DS19QTExfRlNZU19NSU4gLSBNSFopCkBAIC0xNzIsMjUgKzE3MiwyNSBAQAogCQlnZC0+dmNvX2NsayA9IHZjbzsJLyogVmNvIGNsb2NrICovCiAJfSBlbHNlIGlmIChib290bW9kZSA9PSAyKSB7CiAJCS8qIE5vcm1hbCBtb2RlICovCi0JCXZjbyA9ICAoKHBsbC0+cGNyICYgMHhGRjAwMDAwMCkgPj4gMjQpICogQ0ZHX0lOUFVUX0NMS1NSQzsKKwkJdmNvID0gICgocGxsLT5wY3IgJiAweEZGMDAwMDAwKSA+PiAyNCkgKiBDT05GSUdfU1lTX0lOUFVUX0NMS1NSQzsKIAkJaWYgKCh2Y28gPCBDTE9DS19QTExfRlZDT19NSU4pIHx8ICh2Y28gPiBDTE9DS19QTExfRlZDT19NQVgpKSB7CiAJCQkvKiBEZWZhdWx0IHZhbHVlICovCiAJCQlwY3J2YWx1ZSA9IChwbGwtPnBjciAmIDB4MDBGRkZGRkYpOwogCQkJcGNydmFsdWUgfD0gcFBsbG11bHRbY2NtLT5jY3IgJiBmYnBsbF9tYXNrXSA8PCAyNDsKIAkJCXBsbC0+cGNyID0gcGNydmFsdWU7Ci0JCQl2Y28gPSAgKChwbGwtPnBjciAmIDB4RkYwMDAwMDApID4+IDI0KSAqIENGR19JTlBVVF9DTEtTUkM7CisJCQl2Y28gPSAgKChwbGwtPnBjciAmIDB4RkYwMDAwMDApID4+IDI0KSAqIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwogCQl9CiAJCWdkLT52Y29fY2xrID0gdmNvOwkvKiBWY28gY2xvY2sgKi8KIAl9IGVsc2UgaWYgKGJvb3Rtb2RlID09IDMpIHsKIAkJLyogc2VyaWFsIG1vZGUgKi8KLQkJdmNvID0gICgocGxsLT5wY3IgJiAweEZGMDAwMDAwKSA+PiAyNCkgKiBDRkdfSU5QVVRfQ0xLU1JDOworCQl2Y28gPSAgKChwbGwtPnBjciAmIDB4RkYwMDAwMDApID4+IDI0KSAqIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDOwogCQlnZC0+dmNvX2NsayA9IHZjbzsJLyogVmNvIGNsb2NrICovCiAJfQogCiAJaWYgKChjY20tPmNjciAmIENDTV9NSVNDQ1JfTElNUCkgPT0gQ0NNX01JU0NDUl9MSU1QKSB7CiAJCS8qIExpbXAgbW9kZSAqLwogCX0gZWxzZSB7Ci0JCWdkLT5pbnBfY2xrID0gQ0ZHX0lOUFVUX0NMS1NSQzsJLyogSW5wdXQgY2xvY2sgKi8KKwkJZ2QtPmlucF9jbGsgPSBDT05GSUdfU1lTX0lOUFVUX0NMS1NSQzsJLyogSW5wdXQgY2xvY2sgKi8KIAogCQl0ZW1wID0gKHBsbC0+cGNyICYgUExMX1BDUl9PVVRESVYxX01BU0spICsgMTsKIAkJZ2QtPmNwdV9jbGsgPSB2Y28gLyB0ZW1wOwkvKiBjcHUgY2xvY2sgKi8KZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDQ1eC9zdGFydC5TIGIvY3B1L21jZjU0NDV4L3N0YXJ0LlMKaW5kZXggMmE2MDE5Yi4uNjFlNDNmZiAxMDA2NDQKLS0tIGEvY3B1L21jZjU0NDV4L3N0YXJ0LlMKKysrIGIvY3B1L21jZjU0NDV4L3N0YXJ0LlMKQEAgLTI5LDkgKzI5LDkgQEAKICNlbmRpZgogCiAvKiBsYXN0IHRocmVlIGxvbmcgd29yZCByZXNlcnZlZCBmb3IgY2FjaGUgc3RhdHVzICovCi0jZGVmaW5lIENBQ1JfU1RBVFVTCShDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTEyKQotI2RlZmluZSBJQ0FDSEVfU1RBVFVTCShDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELSA4KQotI2RlZmluZSBEQ0FDSEVfU1RBVFVTCShDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELSA0KQorI2RlZmluZSBDQUNSX1NUQVRVUwkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSK0NPTkZJR19TWVNfSU5JVF9SQU1fRU5ELTEyKQorI2RlZmluZSBJQ0FDSEVfU1RBVFVTCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtIDgpCisjZGVmaW5lIERDQUNIRV9TVEFUVVMJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC0gNCkKIAogI2RlZmluZSBfU1RBUlQJX3N0YXJ0CiAjZGVmaW5lIF9GQVVMVAlfZmF1bHQKQEAgLTQ3LDggKzQ3LDggQEAKIAlydGU7CiAKICNpZiBkZWZpbmVkKENPTkZJR19DRl9TQkYpCi0jZGVmaW5lIEFTTV9EUkFNSU5JVAkoYXNtX2RyYW1faW5pdCAtIFRFWFRfQkFTRSArIENGR19JTklUX1JBTV9BRERSKQotI2RlZmluZSBBU01fU0JGX0lNR19IRFIJKGFzbV9zYmZfaW1nX2hkciAtIFRFWFRfQkFTRSArIENGR19JTklUX1JBTV9BRERSKQorI2RlZmluZSBBU01fRFJBTUlOSVQJKGFzbV9kcmFtX2luaXQgLSBURVhUX0JBU0UgKyBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpCisjZGVmaW5lIEFTTV9TQkZfSU1HX0hEUgkoYXNtX3NiZl9pbWdfaGRyIC0gVEVYVF9CQVNFICsgQ09ORklHX1NZU19JTklUX1JBTV9BRERSKQogI2VuZGlmCiAKIC50ZXh0CkBAIC0xNDksMTggKzE0OSwxOCBAQAogCS5sb25nCVRFWFRfQkFTRQkvKiBpbWFnZSB0byBiZSByZWxvY2F0ZWQgYXQgKi8KIAogYXNtX2RyYW1faW5pdDoKLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU1fQUREUiArIENGR19JTklUX1JBTV9DVFJMKSwgJWQwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19JTklUX1JBTV9DVFJMKSwgJWQwCiAJbW92ZWMJJWQwLCAlUkFNQkFSMQkvKiBpbml0IFJhbWJhciAqLwotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCisJbW92ZS5sCSMoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCksICVzcAogCWNsci5sICVzcEAtCiAKIAkvKiBNdXN0IGRpc2FibGUgZ2xvYmFsIGFkZHJlc3MgKi8KIAltb3ZlLmwJIzB4RkMwMDgwMDAsICVhMQotCW1vdmUubAkjKENGR19DUzBfQkFTRSksICglYTEpCisJbW92ZS5sCSMoQ09ORklHX1NZU19DUzBfQkFTRSksICglYTEpCiAJbW92ZS5sCSMweEZDMDA4MDA4LCAlYTEKLQltb3ZlLmwJIyhDRkdfQ1MwX0NUUkwpLCAoJWExKQorCW1vdmUubAkjKENPTkZJR19TWVNfQ1MwX0NUUkwpLCAoJWExKQogCW1vdmUubAkjMHhGQzAwODAwNCwgJWExCi0JbW92ZS5sCSMoQ0ZHX0NTMF9NQVNLKSwgKCVhMSkKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0NTMF9NQVNLKSwgKCVhMSkKIAogCS8qCiAJICogRHJhbSBJbml0aWFsaXphdGlvbgpAQCAtMTY4LDcgKzE2OCw3IEBACiAJICovCiAJLyogbXNjciBzZHJhbSAqLwogCW1vdmUubAkjMHhGQzBBNDA3NCwgJWExCi0JbW92ZS5iCSMoQ0ZHX1NEUkFNX0RSVl9TVFJFTkdUSCksICglYTEpCisJbW92ZS5iCSMoQ09ORklHX1NZU19TRFJBTV9EUlZfU1RSRU5HVEgpLCAoJWExKQogCW5vcAogCiAJLyogU0RSQU0gQ2hpcCAwIGFuZCAxICovCkBAIC0xNzcsOCArMTc3LDggQEAKIAogCS8qIGNhbGN1bGF0ZSB0aGUgc2l6ZSAqLwogCW1vdmUubAkjMHgxMywgJWQxCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX1NJWkUpLCAlZDIKLSNpZmRlZiBDRkdfU0RSQU1fQkFTRTEKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX1NJWkUpLCAlZDIKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0JBU0UxCiAJbHNyLmwJIzEsICVkMgogI2VuZGlmCiAKQEAgLTE4OSwyMCArMTg5LDIwIEBACiAJYm5lCWRyYW1zel9sb29wCiAKIAkvKiBTRFJBTSBDaGlwIDAgYW5kIDEgKi8KLQltb3ZlLmwJIyhDRkdfU0RSQU1fQkFTRSksICglYTEpCisJbW92ZS5sCSMoQ09ORklHX1NZU19TRFJBTV9CQVNFKSwgKCVhMSkKIAlvci5sCSVkMSwgKCVhMSkKLSNpZmRlZiBDRkdfU0RSQU1fQkFTRTEKLQltb3ZlLmwJIyhDRkdfU0RSQU1fQkFTRTEpLCAoJWEyKQorI2lmZGVmIENPTkZJR19TWVNfU0RSQU1fQkFTRTEKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0JBU0UxKSwgKCVhMikKIAlvci5sCSVkMSwgKCVhMikKICNlbmRpZgogCW5vcAogCiAJLyogZHJhbSBjZmcxIGFuZCBjZmcyICovCiAJbW92ZS5sCSMweEZDMEI4MDA4LCAlYTEKLQltb3ZlLmwJIyhDRkdfU0RSQU1fQ0ZHMSksICglYTEpCisJbW92ZS5sCSMoQ09ORklHX1NZU19TRFJBTV9DRkcxKSwgKCVhMSkKIAlub3AKIAltb3ZlLmwJIzB4RkMwQjgwMEMsICVhMgotCW1vdmUubAkjKENGR19TRFJBTV9DRkcyKSwgKCVhMikKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0NGRzIpLCAoJWEyKQogCW5vcAogCiAJbW92ZS5sCSMweEZDMEI4MDAwLCAlYTEJLyogTW9kZSAqLwpAQCAtMjEwLDEzICsyMTAsMTMgQEAKIAogI2lmZGVmIENPTkZJR19NNTQ0NTVFVkIKIAkvKiBJc3N1ZSBQQUxMICovCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0NUUkwgKyAyKSwgKCVhMikKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0NUUkwgKyAyKSwgKCVhMikKIAlub3AKIAogCS8qIElzc3VlIExFTVIgKi8KLQltb3ZlLmwJIyhDRkdfU0RSQU1fRU1PRCArIDB4NDA4KSwgKCVhMSkKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0VNT0QgKyAweDQwOCksICglYTEpCiAJbm9wCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX01PREUgKyAweDMwMCksICglYTEpCisJbW92ZS5sCSMoQ09ORklHX1NZU19TRFJBTV9NT0RFICsgMHgzMDApLCAoJWExKQogCW5vcAogCiAJbW92ZS5sCSMxMDAwLCAlZDAKQEAgLTIyNywyNCArMjI3LDI0IEBACiAjZW5kaWYKIAogCS8qIElzc3VlIFBBTEwgKi8KLQltb3ZlLmwJIyhDRkdfU0RSQU1fQ1RSTCArIDIpLCAoJWEyKQorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQ1RSTCArIDIpLCAoJWEyKQogCW5vcAogCiAJLyogUGVyZm9ybSB0d28gcmVmcmVzaCBjeWNsZXMgKi8KLQltb3ZlLmwJIyhDRkdfU0RSQU1fQ1RSTCArIDQpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0NUUkwgKyA0KSwgJWQwCiAJbm9wCiAJbW92ZS5sCSVkMCwgKCVhMikKIAltb3ZlLmwJJWQwLCAoJWEyKQogCW5vcAogCiAjaWZkZWYgQ09ORklHX001NDQ1NUVWQgotCW1vdmUubAkjKENGR19TRFJBTV9NT0RFICsgMHgyMDApLCAoJWExKQorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fTU9ERSArIDB4MjAwKSwgKCVhMSkKIAlub3AKICNlbGlmIGRlZmluZWQoQ09ORklHX001NDQ1MUVWQikKIAkvKiBJc3N1ZSBMRU1SICovCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX01PREUpLCAoJWEyKQorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fTU9ERSksICglYTIpCiAJbm9wCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0VNT0QpLCAoJWEyKQorCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fRU1PRCksICglYTIpCiAJbm9wCiAjZW5kaWYKIApAQCAtMjU0LDcgKzI1NCw3IEBACiAJc3VicS5sCSMxLCAlZDAKIAlibmUJd2FpdDUwMAogCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0NUUkwpLCAlZDAKIAlhbmQubAkjMHg3RkZGRkZGRiwgJWQwCiAjaWZkZWYgQ09ORklHX001NDQ1NUVWQgogCW9yLmwJIzB4MTAwMDBjMDAsICVkMApAQCAtMjkwLDggKzI5MCw4IEBACiAJbW92ZS5sCSglYTEpKywgJWQ1CiAJbW92ZS5sCSglYTEpLCAlYTQKIAotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX1NCRkhEUl9EQVRBX09GRlNFVCksICVhMAotCW1vdmUubAkjKENGR19TQkZIRFJfU0laRSksICVkNAorCW1vdmUubAkjKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfU0JGSERSX0RBVEFfT0ZGU0VUKSwgJWEwCisJbW92ZS5sCSMoQ09ORklHX1NZU19TQkZIRFJfU0laRSksICVkNAogCiAJbW92ZS5sCSMweEZDMDVDMDJDLCAlYTEJLyogZHNwaSBzdGF0dXMgKi8KIApAQCAtMzgxLDEwICszODEsMTAgQEAKIAltb3ZlLmwJI1RFWFRfQkFTRSwgJWQwCiAJbW92ZWMJJWQwLCAlVkJSCiAjZWxzZQotCW1vdmUubAkjQ0ZHX0ZMQVNIX0JBU0UsICVkMAorCW1vdmUubAkjQ09ORklHX1NZU19GTEFTSF9CQVNFLCAlZDAKIAltb3ZlYwklZDAsICVWQlIKIAotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfUkFNX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfUkFNX0NUUkwpLCAlZDAKIAltb3ZlYwklZDAsICVSQU1CQVIxCiAjZW5kaWYKIApAQCAtNDA4LDcgKzQwOCw3IEBACiAKIAkvKiBzZXQgc3RhY2twb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbCByYW0gdG8gZ2V0IHNvbWUgc3RhY2tzcGFjZSBmb3IKIAkgICB0aGUgZmlyc3QgYy1jb2RlICovCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9TUF9PRkZTRVQpLCAlc3AKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCiAJY2xyLmwgJXNwQC0KIAogCW1vdmUubCAjX19nb3Rfc3RhcnQsICVhNQkvKiBwdXQgcmVsb2NhdGlvbiB0YWJsZSBhZGRyZXNzIHRvIGE1ICovCkBAIC00MzksNyArNDM5LDcgQEAKIAltb3ZlLmwgMTIoJWE2KSwgJWQwCQkvKiBTYXZlIGNvcHkgb2YgR2xvYmFsIERhdGEgcG9pbnRlciAqLwogCW1vdmUubCAxNiglYTYpLCAlYTAJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKLQltb3ZlLmwgI0NGR19NT05JVE9SX0JBU0UsICVhMQorCW1vdmUubCAjQ09ORklHX1NZU19NT05JVE9SX0JBU0UsICVhMQogCW1vdmUubCAjX19pbml0X2VuZCwgJWEyCiAJbW92ZS5sICVhMCwgJWEzCiAKQEAgLTQ1NCw3ICs0NTQsNyBAQAogICogaW5pdGlhbGl6YXRpb24sIG5vdyBydW5uaW5nIGZyb20gUkFNLgogICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhpbl9yYW0gLSBDRkdfTU9OSVRPUl9CQVNFKSwgJWExCisJYWRkLmwJIyhpbl9yYW0gLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksICVhMQogCWptcAkoJWExKQogCiBpbl9yYW06CkBAIC00NjQsOSArNDY0LDkgQEAKIAkgKiBOb3cgY2xlYXIgQlNTIHNlZ21lbnQKIAkgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKF9zYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWExCisJYWRkLmwJIyhfc2JzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTEKIAltb3ZlLmwJJWEwLCAlZDEKLQlhZGQubAkjKF9lYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWQxCisJYWRkLmwJIyhfZWJzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlZDEKIDY6CiAJY2xyLmwJKCVhMSkrCiAJY21wLmwJJWExLCVkMQpAQCAtNDc2LDExICs0NzYsMTEgQEAKIAkgKiBmaXggZ290IHRhYmxlIGluIFJBTQogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9fZ290X3N0YXJ0IC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTEsJWE1CQkJLyogKiBmaXggZ290IHBvaW50ZXIgcmVnaXN0ZXIgYTUgKi8KIAogCW1vdmUubAklYTAsICVhMgotCWFkZC5sCSMoX19nb3RfZW5kIC0gQ0ZHX01PTklUT1JfQkFTRSksJWEyCisJYWRkLmwJIyhfX2dvdF9lbmQgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksJWEyCiAKIDc6CiAJbW92ZS5sCSglYTEpLCVkMQpAQCAtNDkyLDcgKzQ5Miw3IEBACiAKIAkvKiBjYWxjdWxhdGUgcmVsYXRpdmUganVtcCB0byBib2FyZF9pbml0X3IgaW4gcmFtICovCiAJbW92ZS5sICVhMCwgJWExCi0JYWRkLmwgIyhib2FyZF9pbml0X3IgLSBDRkdfTU9OSVRPUl9CQVNFKSwgJWExCisJYWRkLmwgIyhib2FyZF9pbml0X3IgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksICVhMQogCiAJLyogc2V0IHBhcmFtZXRlcnMgZm9yIGJvYXJkX2luaXRfciAqLwogCW1vdmUubCAlYTAsLSglc3ApCQkvKiBkZXN0X2FkZHIgKi8KQEAgLTUzMSw3ICs1MzEsNyBAQAogCW1vdmUubAkjMHgwMDA0MDEwMCwgJWQwCS8qIEludmFsaWRhdGUgaWNhY2hlICovCiAJbW92ZWMJJWQwLCAlQ0FDUgogCi0JbW92ZS5sCSMoQ0ZHX1NEUkFNX0JBU0UgKyAweDFjMDAwKSwgJWQwCS8qIFNldHVwIGljYWNoZSAqLworCW1vdmUubAkjKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MWMwMDApLCAlZDAJLyogU2V0dXAgaWNhY2hlICovCiAJbW92ZWMJJWQwLCAlQUNSMgogCiAJbW92ZS5sCSMweDA0MDg4MDIwLCAlZDAJLyogRW5hYmxlIGJjYWNoZSBhbmQgaWNhY2hlICovCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ3eF84eC9jcHUuYyBiL2NwdS9tY2Y1NDd4Xzh4L2NwdS5jCmluZGV4IGFiNGFkMjguLmY5YTM1NDQgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L2NwdS5jCisrKyBiL2NwdS9tY2Y1NDd4Xzh4L2NwdS5jCkBAIC0xMzMsNyArMTMzLDcgQEAKIAl2b2xhdGlsZSBncHRtcl90ICpncHRtciA9IChncHRtcl90ICopIChNTUFQX0dQVE1SKTsKIAogCWdwdG1yLT5wcmUgPSBDT05GSUdfV0FUQ0hET0dfVElNRU9VVDsKLQlncHRtci0+Y250ID0gQ0ZHX1RJTUVSX1BSRVNDQUxFUiAqIDEwMDA7CisJZ3B0bXItPmNudCA9IENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSICogMTAwMDsKIAogCWdwdG1yLT5tb2RlID0gR1BUX1RNU19TR1BJTzsKIAlncHRtci0+Y3RybCA9IEdQVF9DVFJMX0NFIHwgR1BUX0NUUkxfV0RFTjsKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDd4Xzh4L2NwdV9pbml0LmMgYi9jcHUvbWNmNTQ3eF84eC9jcHVfaW5pdC5jCmluZGV4IDExMTU0YzYuLjlhMGUwNDAgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L2NwdV9pbml0LmMKKysrIGIvY3B1L21jZjU0N3hfOHgvY3B1X2luaXQuYwpAQCAtNTIsNDAgKzUyLDQwIEBACiAJeGxiYXJiLT5wcmkgPSAwOwogCXhsYmFyYi0+cHJpZW4gPSAweGZmOwogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzBfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MwX0NUUkwpKQotCWZiY3MtPmNzYXIwID0gQ0ZHX0NTMF9CQVNFOwotCWZiY3MtPmNzY3IwID0gQ0ZHX0NTMF9DVFJMOwotCWZiY3MtPmNzbXIwID0gQ0ZHX0NTMF9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MwX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzBfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9DVFJMKSkKKwlmYmNzLT5jc2FyMCA9IENPTkZJR19TWVNfQ1MwX0JBU0U7CisJZmJjcy0+Y3NjcjAgPSBDT05GSUdfU1lTX0NTMF9DVFJMOworCWZiY3MtPmNzbXIwID0gQ09ORklHX1NZU19DUzBfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMV9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzFfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MxX0NUUkwpKQotCWZiY3MtPmNzYXIxID0gQ0ZHX0NTMV9CQVNFOwotCWZiY3MtPmNzY3IxID0gQ0ZHX0NTMV9DVFJMOwotCWZiY3MtPmNzbXIxID0gQ0ZHX0NTMV9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMV9DVFJMKSkKKwlmYmNzLT5jc2FyMSA9IENPTkZJR19TWVNfQ1MxX0JBU0U7CisJZmJjcy0+Y3NjcjEgPSBDT05GSUdfU1lTX0NTMV9DVFJMOworCWZiY3MtPmNzbXIxID0gQ09ORklHX1NZU19DUzFfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTMl9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzJfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MyX0NUUkwpKQotCWZiY3MtPmNzYXIyID0gQ0ZHX0NTMl9CQVNFOwotCWZiY3MtPmNzY3IyID0gQ0ZHX0NTMl9DVFJMOwotCWZiY3MtPmNzbXIyID0gQ0ZHX0NTMl9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MyX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9DVFJMKSkKKwlmYmNzLT5jc2FyMiA9IENPTkZJR19TWVNfQ1MyX0JBU0U7CisJZmJjcy0+Y3NjcjIgPSBDT05GSUdfU1lTX0NTMl9DVFJMOworCWZiY3MtPmNzbXIyID0gQ09ORklHX1NZU19DUzJfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTM19CQVNFKSAmJiBkZWZpbmVkKENGR19DUzNfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1MzX0NUUkwpKQotCWZiY3MtPmNzYXIzID0gQ0ZHX0NTM19CQVNFOwotCWZiY3MtPmNzY3IzID0gQ0ZHX0NTM19DVFJMOwotCWZiY3MtPmNzbXIzID0gQ0ZHX0NTM19NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1MzX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzNfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTM19DVFJMKSkKKwlmYmNzLT5jc2FyMyA9IENPTkZJR19TWVNfQ1MzX0JBU0U7CisJZmJjcy0+Y3NjcjMgPSBDT05GSUdfU1lTX0NTM19DVFJMOworCWZiY3MtPmNzbXIzID0gQ09ORklHX1NZU19DUzNfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTNF9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzRfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M0X0NUUkwpKQotCWZiY3MtPmNzYXI0ID0gQ0ZHX0NTNF9CQVNFOwotCWZiY3MtPmNzY3I0ID0gQ0ZHX0NTNF9DVFJMOwotCWZiY3MtPmNzbXI0ID0gQ0ZHX0NTNF9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M0X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNF9DVFJMKSkKKwlmYmNzLT5jc2FyNCA9IENPTkZJR19TWVNfQ1M0X0JBU0U7CisJZmJjcy0+Y3NjcjQgPSBDT05GSUdfU1lTX0NTNF9DVFJMOworCWZiY3MtPmNzbXI0ID0gQ09ORklHX1NZU19DUzRfTUFTSzsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0NTNV9CQVNFKSAmJiBkZWZpbmVkKENGR19DUzVfTUFTSykgJiYgZGVmaW5lZChDRkdfQ1M1X0NUUkwpKQotCWZiY3MtPmNzYXI1ID0gQ0ZHX0NTNV9CQVNFOwotCWZiY3MtPmNzY3I1ID0gQ0ZHX0NTNV9DVFJMOwotCWZiY3MtPmNzbXI1ID0gQ0ZHX0NTNV9NQVNLOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfQ1M1X0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzVfTUFTSykgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9DVFJMKSkKKwlmYmNzLT5jc2FyNSA9IENPTkZJR19TWVNfQ1M1X0JBU0U7CisJZmJjcy0+Y3NjcjUgPSBDT05GSUdfU1lTX0NTNV9DVFJMOworCWZiY3MtPmNzbXI1ID0gQ09ORklHX1NZU19DUzVfTUFTSzsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0ZTTF9JMkMKQEAgLTExMCwxMCArMTEwLDEwIEBACiB2b2lkIHVhcnRfcG9ydF9jb25mKHZvaWQpCiB7CiAJdm9sYXRpbGUgZ3Bpb190ICpncGlvID0gKGdwaW9fdCAqKSBNTUFQX0dQSU87Ci0Jdm9sYXRpbGUgdTggKnBzY3NpY3IgPSAodTggKikgKENGR19VQVJUX0JBU0UgKyAweDQwKTsKKwl2b2xhdGlsZSB1OCAqcHNjc2ljciA9ICh1OCAqKSAoQ09ORklHX1NZU19VQVJUX0JBU0UgKyAweDQwKTsKIAogCS8qIFNldHVwIFBvcnRzOiAqLwotCXN3aXRjaCAoQ0ZHX1VBUlRfUE9SVCkgeworCXN3aXRjaCAoQ09ORklHX1NZU19VQVJUX1BPUlQpIHsKIAljYXNlIDA6CiAJCWdwaW8tPnBhcl9wc2MwID0gKEdQSU9fUEFSX1BTQzBfVFhEMCB8IEdQSU9fUEFSX1BTQzBfUlhEMCk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvY3B1L21jZjU0N3hfOHgvaW50ZXJydXB0cy5jIGIvY3B1L21jZjU0N3hfOHgvaW50ZXJydXB0cy5jCmluZGV4IGQ2ODRmZmUuLjc2YmU4NzYgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L2ludGVycnVwdHMuYworKysgYi9jcHUvbWNmNTQ3eF84eC9pbnRlcnJ1cHRzLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW50IGludGVycnVwdF9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ0ZHX0lOVFJfQkFTRSk7CisJdm9sYXRpbGUgaW50MF90ICppbnRwID0gKGludDBfdCAqKSAoQ09ORklHX1NZU19JTlRSX0JBU0UpOwogCiAJLyogTWFrZSBzdXJlIGFsbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCAqLwogCWludHAtPmltcmgwIHw9IDB4RkZGRkZGRkY7CkBAIC00Miw5ICs0Miw5IEBACiAjaWYgZGVmaW5lZChDT05GSUdfU0xUVE1SKQogdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKQogewotCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENGR19JTlRSX0JBU0UpOworCXZvbGF0aWxlIGludDBfdCAqaW50cCA9IChpbnQwX3QgKikgKENPTkZJR19TWVNfSU5UUl9CQVNFKTsKIAotCWludHAtPmljcjBbQ0ZHX1RNUklOVFJfTk9dID0gQ0ZHX1RNUklOVFJfUFJJOwotCWludHAtPmltcmgwICY9IH5DRkdfVE1SSU5UUl9NQVNLOworCWludHAtPmljcjBbQ09ORklHX1NZU19UTVJJTlRSX05PXSA9IENPTkZJR19TWVNfVE1SSU5UUl9QUkk7CisJaW50cC0+aW1yaDAgJj0gfkNPTkZJR19TWVNfVE1SSU5UUl9NQVNLOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ3eF84eC9wY2kuYyBiL2NwdS9tY2Y1NDd4Xzh4L3BjaS5jCmluZGV4IDcwMzc4YjAuLmY1YzI1MzYgMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L3BjaS5jCisrKyBiL2NwdS9tY2Y1NDd4Xzh4L3BjaS5jCkBAIC0zMSw5ICszMSw5IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAvKiBTeXN0ZW0gUkFNIG1hcHBlZCBvdmVyIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU1lTX01FTV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NZU19NRU1fQlVTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NZU19NRU1fU0laRQkoMTAyNCAqIDEwMjQgKiAxMDI0KQogCiAjZGVmaW5lIGNmZ19yZWFkKHZhbCwgYWRkciwgdHlwZSwgb3ApCQkqdmFsID0gb3AoKHR5cGUpKGFkZHIpKTsKICNkZWZpbmUgY2ZnX3dyaXRlKHZhbCwgYWRkciwgdHlwZSwgb3ApCQlvcCgodHlwZSAqKShhZGRyKSwgKHZhbCkpOwpAQCAtMTA3LDkgKzEwNyw5IEBACiAJcGNpLT50Y3IxID0gUENJX1RDUjFfUDsKIAogCS8qIEluaXRpYXRvciB3aW5kb3dzICovCi0JcGNpLT5pdzBidGFyID0gQ0ZHX1BDSV9NRU1fUEhZUyB8IChDRkdfUENJX01FTV9QSFlTID4+IDE2KTsKLQlwY2ktPml3MWJ0YXIgPSBDRkdfUENJX0lPX1BIWVMgfCAoQ0ZHX1BDSV9JT19QSFlTID4+IDE2KTsKLQlwY2ktPml3MmJ0YXIgPSBDRkdfUENJX0NGR19QSFlTIHwgKENGR19QQ0lfQ0ZHX1BIWVMgPj4gMTYpOworCXBjaS0+aXcwYnRhciA9IENPTkZJR19TWVNfUENJX01FTV9QSFlTIHwgKENPTkZJR19TWVNfUENJX01FTV9QSFlTID4+IDE2KTsKKwlwY2ktPml3MWJ0YXIgPSBDT05GSUdfU1lTX1BDSV9JT19QSFlTIHwgKENPTkZJR19TWVNfUENJX0lPX1BIWVMgPj4gMTYpOworCXBjaS0+aXcyYnRhciA9IENPTkZJR19TWVNfUENJX0NGR19QSFlTIHwgKENPTkZJR19TWVNfUENJX0NGR19QSFlTID4+IDE2KTsKIAogCXBjaS0+aXdjciA9CiAJICAgIFBDSV9JV0NSX1cwQ19FTiB8IFBDSV9JV0NSX1cxQ19FTiB8IFBDSV9JV0NSX1cxQ19JTyB8CkBAIC0xMjQsMTMgKzEyNCwxMyBAQAogCXBjaS0+Y3IxID0gUENJX0NSMV9DTFMoOCkgfCBQQ0lfQ1IxX0xUTVIoMHhGOCk7CiAJcGNpLT5jcjIgPSAwOwogCi0jaWZkZWYgQ0ZHX1BDSV9CQVIwCi0JcGNpLT5iYXIwID0gUENJX0JBUl9CQVIwKENGR19QQ0lfQkFSMCk7Ci0JcGNpLT50YmF0cjBhID0gQ0ZHX1BDSV9UQkFUUjAgfCBQQ0lfVEJBVFJfRU47CisjaWZkZWYgQ09ORklHX1NZU19QQ0lfQkFSMAorCXBjaS0+YmFyMCA9IFBDSV9CQVJfQkFSMChDT05GSUdfU1lTX1BDSV9CQVIwKTsKKwlwY2ktPnRiYXRyMGEgPSBDT05GSUdfU1lTX1BDSV9UQkFUUjAgfCBQQ0lfVEJBVFJfRU47CiAjZW5kaWYKLSNpZmRlZiBDRkdfUENJX0JBUjEKLQlwY2ktPmJhcjEgPSBQQ0lfQkFSX0JBUjEoQ0ZHX1BDSV9CQVIxKTsKLQlwY2ktPnRiYXRyMWEgPSBDRkdfUENJX1RCQVRSMSB8IFBDSV9UQkFUUl9FTjsKKyNpZmRlZiBDT05GSUdfU1lTX1BDSV9CQVIxCisJcGNpLT5iYXIxID0gUENJX0JBUl9CQVIxKENPTkZJR19TWVNfUENJX0JBUjEpOworCXBjaS0+dGJhdHIxYSA9IENPTkZJR19TWVNfUENJX1RCQVRSMSB8IFBDSV9UQkFUUl9FTjsKICNlbmRpZgogCiAJLyogRGVhc3NlcnQgcmVzZXQgYml0ICovCkBAIC0xNDEsMjAgKzE0MSwyMCBAQAogCWhvc2UtPmZpcnN0X2J1c25vID0gMDsKIAlob3NlLT5sYXN0X2J1c25vID0gMHhmZjsKIAotCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAwLCBDRkdfUENJX01FTV9CVVMsIENGR19QQ0lfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJX01FTV9TSVpFLCBQQ0lfUkVHSU9OX01FTSk7CisJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsIENPTkZJR19TWVNfUENJX01FTV9CVVMsIENPTkZJR19TWVNfUENJX01FTV9QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUsIFBDSV9SRUdJT05fTUVNKTsKIAotCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLCBDRkdfUENJX0lPX0JVUywgQ0ZHX1BDSV9JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSV9JT19TSVpFLCBQQ0lfUkVHSU9OX0lPKTsKKwlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwgQ09ORklHX1NZU19QQ0lfSU9fQlVTLCBDT05GSUdfU1lTX1BDSV9JT19QSFlTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKLQlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwgQ0ZHX1BDSV9TWVNfTUVNX0JVUywKLQkJICAgICAgIENGR19QQ0lfU1lTX01FTV9QSFlTLCBDRkdfUENJX1NZU19NRU1fU0laRSwKKwlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMiwgQ09ORklHX1NZU19QQ0lfU1lTX01FTV9CVVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9TWVNfTUVNX1BIWVMsIENPTkZJR19TWVNfUENJX1NZU19NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogCiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gMzsKIAogCWhvc2UtPmNmZ19hZGRyID0gJihwY2ktPmNhcik7Ci0JaG9zZS0+Y2ZnX2RhdGEgPSAodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKUNGR19QQ0lfQ0ZHX0JVUzsKKwlob3NlLT5jZmdfZGF0YSA9ICh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopQ09ORklHX1NZU19QQ0lfQ0ZHX0JVUzsKIAogCXBjaV9zZXRfb3BzKGhvc2UsIHBjaV9yZWFkX2NmZ19ieXRlLCBwY2lfcmVhZF9jZmdfd29yZCwKIAkJICAgIHBjaV9yZWFkX2NmZ19kd29yZCwgcGNpX3dyaXRlX2NmZ19ieXRlLCBwY2lfd3JpdGVfY2ZnX3dvcmQsCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ3eF84eC9zbGljZXRpbWVyLmMgYi9jcHUvbWNmNTQ3eF84eC9zbGljZXRpbWVyLmMKaW5kZXggNDk0Zjk4Zi4uNjdlODE4OSAxMDA2NDQKLS0tIGEvY3B1L21jZjU0N3hfOHgvc2xpY2V0aW1lci5jCisrKyBiL2NwdS9tY2Y1NDd4Xzh4L3NsaWNldGltZXIuYwpAQCAtMzEsMjIgKzMxLDIyIEBACiBzdGF0aWMgdWxvbmcgdGltZXN0YW1wOwogCiAjaWYgZGVmaW5lZChDT05GSUdfU0xUVE1SKQotI2lmbmRlZiBDRkdfVURFTEFZX0JBU0UKKyNpZm5kZWYgQ09ORklHX1NZU19VREVMQVlfQkFTRQogIwllcnJvcgkidURlbGF5IGJhc2Ugbm90IGRlZmluZWQhIgogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChDRkdfVE1SX0JBU0UpIHx8ICFkZWZpbmVkKENGR19JTlRSX0JBU0UpIHx8ICFkZWZpbmVkKENGR19UTVJJTlRSX05PKSB8fCAhZGVmaW5lZChDRkdfVE1SSU5UUl9NQVNLKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfVE1SX0JBU0UpIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfSU5UUl9CQVNFKSB8fCAhZGVmaW5lZChDT05GSUdfU1lTX1RNUklOVFJfTk8pIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKQogIwllcnJvcgkiVE1SX0JBU0UsIElOVFJfQkFTRSwgVE1SSU5UUl9OTyBvciBUTVJJTlRSX01BU2sgbm90IGRlZmluZWQhIgogI2VuZGlmCiBleHRlcm4gdm9pZCBkdGltZXJfaW50cl9zZXR1cCh2b2lkKTsKIAogdm9pZCB1ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjKQogewotCXZvbGF0aWxlIHNsdF90ICp0aW1lcnAgPSAoc2x0X3QgKikgKENGR19VREVMQVlfQkFTRSk7CisJdm9sYXRpbGUgc2x0X3QgKnRpbWVycCA9IChzbHRfdCAqKSAoQ09ORklHX1NZU19VREVMQVlfQkFTRSk7CiAJdTMyIG5vdywgZnJlcTsKIAogCS8qIDEgdXMgcGVyaW9kICovCi0JZnJlcSA9IENGR19USU1FUl9QUkVTQ0FMRVI7CisJZnJlcSA9IENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSOwogCiAJdGltZXJwLT5jciA9IDA7CQkvKiBEaXNhYmxlICovCiAJdGltZXJwLT50Y250ID0gdXNlYyAqIGZyZXE7CkBAIC02MiwxMCArNjIsMTAgQEAKIAogdm9pZCBkdGltZXJfaW50ZXJydXB0KHZvaWQgKm5vdF91c2VkKQogewotCXZvbGF0aWxlIHNsdF90ICp0aW1lcnAgPSAoc2x0X3QgKikgKENGR19UTVJfQkFTRSk7CisJdm9sYXRpbGUgc2x0X3QgKnRpbWVycCA9IChzbHRfdCAqKSAoQ09ORklHX1NZU19UTVJfQkFTRSk7CiAKIAkvKiBjaGVjayBmb3IgdGltZXIgaW50ZXJydXB0IGFzc2VydGVkICovCi0JaWYgKChDRkdfVE1SUE5EX1JFRyAmIENGR19UTVJJTlRSX01BU0spID09IENGR19UTVJJTlRSX1BFTkQpIHsKKwlpZiAoKENPTkZJR19TWVNfVE1SUE5EX1JFRyAmIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKSA9PSBDT05GSUdfU1lTX1RNUklOVFJfUEVORCkgewogCQl0aW1lcnAtPnNyIHw9IFNMVF9TUl9TVDsKIAkJdGltZXN0YW1wKys7CiAJCXJldHVybjsKQEAgLTc0LDcgKzc0LDcgQEAKIAogdm9pZCB0aW1lcl9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgc2x0X3QgKnRpbWVycCA9IChzbHRfdCAqKSAoQ0ZHX1RNUl9CQVNFKTsKKwl2b2xhdGlsZSBzbHRfdCAqdGltZXJwID0gKHNsdF90ICopIChDT05GSUdfU1lTX1RNUl9CQVNFKTsKIAogCXRpbWVzdGFtcCA9IDA7CiAKQEAgLTgzLDEwICs4MywxMCBAQAogCXRpbWVycC0+c3IgPSBTTFRfU1JfQkUgfCBTTFRfU1JfU1Q7CS8qIGNsZWFyIHN0YXR1cyAqLwogCiAJLyogaW5pdGlhbGl6ZSBhbmQgZW5hYmxlIHRpbWVyIGludGVycnVwdCAqLwotCWlycV9pbnN0YWxsX2hhbmRsZXIoQ0ZHX1RNUklOVFJfTk8sIGR0aW1lcl9pbnRlcnJ1cHQsIDApOworCWlycV9pbnN0YWxsX2hhbmRsZXIoQ09ORklHX1NZU19UTVJJTlRSX05PLCBkdGltZXJfaW50ZXJydXB0LCAwKTsKIAogCS8qIEludGVycnVwdCBldmVyeSBtcyAqLwotCXRpbWVycC0+dGNudCA9IDEwMDAgKiBDRkdfVElNRVJfUFJFU0NBTEVSOworCXRpbWVycC0+dGNudCA9IDEwMDAgKiBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUjsKIAogCWR0aW1lcl9pbnRyX3NldHVwKCk7CiAKZGlmZiAtLWdpdCBhL2NwdS9tY2Y1NDd4Xzh4L3NwZWVkLmMgYi9jcHUvbWNmNTQ3eF84eC9zcGVlZC5jCmluZGV4IDI4ZmU2NTcuLjJjZWU0ODggMTAwNjQ0Ci0tLSBhL2NwdS9tY2Y1NDd4Xzh4L3NwZWVkLmMKKysrIGIvY3B1L21jZjU0N3hfOHgvc3BlZWQuYwpAQCAtMzcsNyArMzcsNyBAQAogewogCURFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0JZ2QtPmJ1c19jbGsgPSBDRkdfQ0xLOworCWdkLT5idXNfY2xrID0gQ09ORklHX1NZU19DTEs7CiAJZ2QtPmNwdV9jbGsgPSAoZ2QtPmJ1c19jbGsgKiAyKTsKIAogI2lmZGVmIENPTkZJR19GU0xfSTJDCmRpZmYgLS1naXQgYS9jcHUvbWNmNTQ3eF84eC9zdGFydC5TIGIvY3B1L21jZjU0N3hfOHgvc3RhcnQuUwppbmRleCA4NzM1NWY5Li40MWZjNjk0IDEwMDY0NAotLS0gYS9jcHUvbWNmNTQ3eF84eC9zdGFydC5TCisrKyBiL2NwdS9tY2Y1NDd4Xzh4L3N0YXJ0LlMKQEAgLTI5LDkgKzI5LDkgQEAKICNlbmRpZgogCiAvKiBsYXN0IHRocmVlIGxvbmcgd29yZCByZXNlcnZlZCBmb3IgY2FjaGUgc3RhdHVzICovCi0jZGVmaW5lIElDQUNIRV9TVEFUVVMJKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtIDQpCi0jZGVmaW5lIERDQUNIRV9TVEFUVVMJKENGR19JTklUX1JBTV9BRERSK0NGR19JTklUX1JBTV9FTkQtIDgpCi0jZGVmaW5lIENBQ1JfU1RBVFVTCShDRkdfSU5JVF9SQU1fQUREUitDRkdfSU5JVF9SQU1fRU5ELTEyKQorI2RlZmluZSBJQ0FDSEVfU1RBVFVTCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIrQ09ORklHX1NZU19JTklUX1JBTV9FTkQtIDQpCisjZGVmaW5lIERDQUNIRV9TVEFUVVMJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC0gOCkKKyNkZWZpbmUgQ0FDUl9TVEFUVVMJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUitDT05GSUdfU1lTX0lOSVRfUkFNX0VORC0xMikKIAogI2RlZmluZSBfU1RBUlQJX3N0YXJ0CiAjZGVmaW5lIF9GQVVMVAlfZmF1bHQKQEAgLTEzMiwxNiArMTMyLDE2IEBACiAJbW92ZS53ICMweDI3MDAsJXNyCQkvKiBNYXNrIG9mZiBJbnRlcnJ1cHQgKi8KIAogCS8qIFNldCB2ZWN0b3IgYmFzZSByZWdpc3RlciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBGbGFzaCAqLwotCW1vdmUubAkjQ0ZHX0ZMQVNIX0JBU0UsICVkMAorCW1vdmUubAkjQ09ORklHX1NZU19GTEFTSF9CQVNFLCAlZDAKIAltb3ZlYwklZDAsICVWQlIKIAotCW1vdmUubAkjKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfUkFNX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfUkFNX0NUUkwpLCAlZDAKIAltb3ZlYwklZDAsICVSQU1CQVIwCiAKLQltb3ZlLmwJIyhDRkdfSU5JVF9SQU0xX0FERFIgKyBDRkdfSU5JVF9SQU0xX0NUUkwpLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNMV9BRERSICsgQ09ORklHX1NZU19JTklUX1JBTTFfQ1RSTCksICVkMAogCW1vdmVjCSVkMCwgJVJBTUJBUjEKIAotCW1vdmUubAkjQ0ZHX01CQVIsICVkMAkJLyogc2V0IE1CQVIgYWRkcmVzcyAqLworCW1vdmUubAkjQ09ORklHX1NZU19NQkFSLCAlZDAJCS8qIHNldCBNQkFSIGFkZHJlc3MgKi8KIAltb3ZlLmMJJWQwLCAlTUJBUgogCiAJLyogaW52YWxpZGF0ZSBhbmQgZGlzYWJsZSBjYWNoZSAqLwpAQCAtMTY0LDcgKzE2NCw3IEBACiAKIAkvKiBzZXQgc3RhY2twb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbCByYW0gdG8gZ2V0IHNvbWUgc3RhY2tzcGFjZSBmb3IgdGhlCiAJICAgZmlyc3QgYy1jb2RlICovCi0JbW92ZS5sCSMoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9TUF9PRkZTRVQpLCAlc3AKKwltb3ZlLmwJIyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKSwgJXNwCiAJY2xyLmwgJXNwQC0KIAogCW1vdmUubCAjX19nb3Rfc3RhcnQsICVhNQkvKiBwdXQgcmVsb2NhdGlvbiB0YWJsZSBhZGRyZXNzIHRvIGE1ICovCkBAIC0xOTUsNyArMTk1LDcgQEAKIAltb3ZlLmwgMTIoJWE2KSwgJWQwCQkvKiBTYXZlIGNvcHkgb2YgR2xvYmFsIERhdGEgcG9pbnRlciAqLwogCW1vdmUubCAxNiglYTYpLCAlYTAJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKLQltb3ZlLmwgI0NGR19NT05JVE9SX0JBU0UsICVhMQorCW1vdmUubCAjQ09ORklHX1NZU19NT05JVE9SX0JBU0UsICVhMQogCW1vdmUubCAjX19pbml0X2VuZCwgJWEyCiAJbW92ZS5sICVhMCwgJWEzCiAKQEAgLTIxMCw3ICsyMTAsNyBAQAogICogaW5pdGlhbGl6YXRpb24sIG5vdyBydW5uaW5nIGZyb20gUkFNLgogICovCiAJbW92ZS5sCSVhMCwgJWExCi0JYWRkLmwJIyhpbl9yYW0gLSBDRkdfTU9OSVRPUl9CQVNFKSwgJWExCisJYWRkLmwJIyhpbl9yYW0gLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSksICVhMQogCWptcAkoJWExKQogCiBpbl9yYW06CkBAIC0yMjAsOSArMjIwLDkgQEAKIAkgKiBOb3cgY2xlYXIgQlNTIHNlZ21lbnQKIAkgKi8KIAltb3ZlLmwJJWEwLCAlYTEKLQlhZGQubAkjKF9zYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWExCisJYWRkLmwJIyhfc2JzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTEKIAltb3ZlLmwJJWEwLCAlZDEKLQlhZGQubAkjKF9lYnNzIC0gQ0ZHX01PTklUT1JfQkFTRSksJWQxCisJYWRkLmwJIyhfZWJzcyAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlZDEKIDY6CiAJY2xyLmwJKCVhMSkrCiAJY21wLmwJJWExLCVkMQpAQCAtMjMyLDExICsyMzIsMTEgQEAKIAkgKiBmaXggZ290IHRhYmxlIGluIFJBTQogCSAqLwogCW1vdmUubAklYTAsICVhMQotCWFkZC5sCSMoX19nb3Rfc3RhcnQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTEKKwlhZGQubAkjKF9fZ290X3N0YXJ0IC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpLCVhMQogCW1vdmUubAklYTEsJWE1CQkvKiAqIGZpeCBnb3QgcG9pbnRlciByZWdpc3RlciBhNSAqLwogCiAJbW92ZS5sCSVhMCwgJWEyCi0JYWRkLmwJIyhfX2dvdF9lbmQgLSBDRkdfTU9OSVRPUl9CQVNFKSwlYTIKKwlhZGQubAkjKF9fZ290X2VuZCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwlYTIKIAogNzoKIAltb3ZlLmwJKCVhMSksJWQxCkBAIC0yNDgsNyArMjQ4LDcgQEAKIAogCS8qIGNhbGN1bGF0ZSByZWxhdGl2ZSBqdW1wIHRvIGJvYXJkX2luaXRfciBpbiByYW0gKi8KIAltb3ZlLmwgJWEwLCAlYTEKLQlhZGQubCAjKGJvYXJkX2luaXRfciAtIENGR19NT05JVE9SX0JBU0UpLCAlYTEKKwlhZGQubCAjKGJvYXJkX2luaXRfciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSwgJWExCiAKIAkvKiBzZXQgcGFyYW1ldGVycyBmb3IgYm9hcmRfaW5pdF9yICovCiAJbW92ZS5sICVhMCwtKCVzcCkJCS8qIGRlc3RfYWRkciAqLwpAQCAtMjgxLDcgKzI4MSw3IEBACiAvKiBjYWNoZSBmdW5jdGlvbnMgKi8KIAkuZ2xvYmwJaWNhY2hlX2VuYWJsZQogaWNhY2hlX2VuYWJsZToKLQltb3ZlLmwJIyhDRkdfU0RSQU1fQkFTRSArIDB4MWMwMDApLCAlZDAKKwltb3ZlLmwJIyhDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDFjMDAwKSwgJWQwCiAJbW92ZWMJJWQwLCAlQUNSMgkJCS8qIEVuYWJsZSBjYWNoZSAqLwogCiAJbW92ZS5sCSMweDAyMEM4MTAwLCAlZDAJCS8qIFNldHVwIGNhY2hlIG1hc2sgKi8KQEAgLTMyMiw3ICszMjIsNyBAQAogZGNhY2hlX2VuYWJsZToKIAlic3IJaWNhY2hlX2Rpc2FibGUKIAotCW1vdmUubAkjKENGR19TRFJBTV9CQVNFICsgMHhjMDAwKSwgJWQwCisJbW92ZS5sCSMoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHhjMDAwKSwgJWQwCiAJbW92ZWMJJWQwLCAlQUNSMAkJCS8qIEVuYWJsZSBjYWNoZSAqLwogCiAJbW92ZS5sCSMweEEzMEM4MTAwLCAlZDAJCS8qIEludmFsaWRhdGUgY2FjaGUgY21kICovCmRpZmYgLS1naXQgYS9jcHUvbWljcm9ibGF6ZS9leGNlcHRpb24uYyBiL2NwdS9taWNyb2JsYXplL2V4Y2VwdGlvbi5jCmluZGV4IGQ3NmIwNWEuLjAzNjVkZTMgMTAwNjQ0Ci0tLSBhL2NwdS9taWNyb2JsYXplL2V4Y2VwdGlvbi5jCisrKyBiL2NwdS9taWNyb2JsYXplL2V4Y2VwdGlvbi5jCkBAIC02NSw3ICs2NSw3IEBACiAJaGFuZyAoKTsKIH0KIAotI2lmZGVmIENGR19VU1JfRVhDRVAKKyNpZmRlZiBDT05GSUdfU1lTX1VTUl9FWENFUAogdm9pZCBfZXhjZXB0aW9uX2hhbmRsZXIgKHZvaWQpCiB7CiAJcHV0cyAoIlVzZXIgdmVjdG9yX2V4Y2VwdGlvblxuIik7CmRpZmYgLS1naXQgYS9jcHUvbWljcm9ibGF6ZS9pbnRlcnJ1cHRzLmMgYi9jcHUvbWljcm9ibGF6ZS9pbnRlcnJ1cHRzLmMKaW5kZXggMjZlODhjYi4uYTYwMjFjOSAxMDA2NDQKLS0tIGEvY3B1L21pY3JvYmxhemUvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9taWNyb2JsYXplL2ludGVycnVwdHMuYwpAQCAtNDUsMTkgKzQ1LDE5IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBDRkdfSU5UQ18wCi0jaWZkZWYgQ0ZHX1RJTUVSXzAKKyNpZmRlZiBDT05GSUdfU1lTX0lOVENfMAorI2lmZGVmIENPTkZJR19TWVNfVElNRVJfMAogZXh0ZXJuIHZvaWQgdGltZXJfaW5pdCAodm9pZCk7CiAjZW5kaWYKLSNpZmRlZiBDRkdfRlNMXzIKKyNpZmRlZiBDT05GSUdfU1lTX0ZTTF8yCiBleHRlcm4gdm9pZCBmc2xfaW5pdDIgKHZvaWQpOwogI2VuZGlmCiAKIAotc3RhdGljIHN0cnVjdCBpcnFfYWN0aW9uIHZlY3NbQ0ZHX0lOVENfMF9OVU1dOworc3RhdGljIHN0cnVjdCBpcnFfYWN0aW9uIHZlY3NbQ09ORklHX1NZU19JTlRDXzBfTlVNXTsKIAogLyogbWFwcGluZyBzdHJ1Y3R1cmUgdG8gaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8KLW1pY3JvYmxhemVfaW50Y190ICppbnRjID0gKG1pY3JvYmxhemVfaW50Y190ICopIChDRkdfSU5UQ18wX0FERFIpOworbWljcm9ibGF6ZV9pbnRjX3QgKmludGMgPSAobWljcm9ibGF6ZV9pbnRjX3QgKikgKENPTkZJR19TWVNfSU5UQ18wX0FERFIpOwogCiAvKiBkZWZhdWx0IGhhbmRsZXIgKi8KIHZvaWQgZGVmX2hkbHIgKHZvaWQpCkBAIC0xMDAsNyArMTAwLDcgQEAKIHsKIAlzdHJ1Y3QgaXJxX2FjdGlvbiAqYWN0OwogCS8qIGlycSBvdXQgb2YgcmFuZ2UgKi8KLQlpZiAoKGlycSA8IDApIHx8IChpcnEgPiBDRkdfSU5UQ18wX05VTSkpIHsKKwlpZiAoKGlycSA8IDApIHx8IChpcnEgPiBDT05GSUdfU1lTX0lOVENfMF9OVU0pKSB7CiAJCXB1dHMgKCJJUlEgb3V0IG9mIHJhbmdlXG4iKTsKIAkJcmV0dXJuOwogCX0KQEAgLTEzNSwxNyArMTM1LDE3IEBACiB7CiAJaW50IGk7CiAJLyogaW5pdGlhbGl6ZSBpcnEgbGlzdCAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfSU5UQ18wX05VTTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfSU5UQ18wX05VTTsgaSsrKSB7CiAJCXZlY3NbaV0uaGFuZGxlciA9IChpbnRlcnJ1cHRfaGFuZGxlcl90ICopIGRlZl9oZGxyOwogCQl2ZWNzW2ldLmFyZyA9ICh2b2lkICopaTsKIAkJdmVjc1tpXS5jb3VudCA9IDA7CiAJfQogCS8qIGluaXRpYWxpemUgaW50YyBjb250cm9sbGVyICovCiAJaW50Y19pbml0ICgpOwotI2lmZGVmIENGR19USU1FUl8wCisjaWZkZWYgQ09ORklHX1NZU19USU1FUl8wCiAJdGltZXJfaW5pdCAoKTsKICNlbmRpZgotI2lmZGVmIENGR19GU0xfMgorI2lmZGVmIENPTkZJR19TWVNfRlNMXzIKIAlmc2xfaW5pdDIgKCk7CiAjZW5kaWYKIAllbmFibGVfaW50ZXJydXB0cyAoKTsKQEAgLTE5MSw3ICsxOTEsNyBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSVJRKQotI2lmZGVmIENGR19JTlRDXzAKKyNpZmRlZiBDT05GSUdfU1lTX0lOVENfMAogaW50IGRvX2lycWluZm8gKGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAlpbnQgaTsKQEAgLTIwMSw3ICsyMDEsNyBAQAogCSAgICAgICJOciAgUm91dGluZSAgIEFyZyAgICAgICBDb3VudFxuIgogCSAgICAgICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX0lOVENfMF9OVU07IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX0lOVENfMF9OVU07IGkrKykgewogCQlpZiAoYWN0LT5oYW5kbGVyICE9IChpbnRlcnJ1cHRfaGFuZGxlcl90KikgZGVmX2hkbHIpIHsKIAkJCXByaW50ZiAoIiUwMmQgICUwOHggICUwOHggICVkXG4iLCBpLAogCQkJCShpbnQpYWN0LT5oYW5kbGVyLCAoaW50KWFjdC0+YXJnLCBhY3QtPmNvdW50KTsKZGlmZiAtLWdpdCBhL2NwdS9taWNyb2JsYXplL3N0YXJ0LlMgYi9jcHUvbWljcm9ibGF6ZS9zdGFydC5TCmluZGV4IDg3NDAyODQuLjJlOWEwOGQgMTAwNjQ0Ci0tLSBhL2NwdS9taWNyb2JsYXplL3N0YXJ0LlMKKysrIGIvY3B1L21pY3JvYmxhemUvc3RhcnQuUwpAQCAtMzAsNyArMzAsNyBAQAogCS5nbG9iYWwgX3N0YXJ0CiBfc3RhcnQ6CiAJbXRzCXJtc3IsIHIwCS8qIGRpc2FibGUgY2FjaGUgKi8KLQlhZGRpCXIxLCByMCwgQ0ZHX0lOSVRfU1BfT0ZGU0VUCisJYWRkaQlyMSwgcjAsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQKIAlhZGRpCXIxLCByMSwgLTQJLyogRGVjcmVtZW50IFNQIHRvIHRvcCBvZiBtZW1vcnkgKi8KIAkvKiBhZGQgb3Bjb2RlIGluc3RydWN0aW9uIGZvciAzMmJpdCBqdW1wIC0gMiBpbnN0cnVjdGlvbiBpbW0gJiBicmFpKi8KIAlhZGRpCXI2LCByMCwgMHhiMDAwMDAwMAkvKiBoZXggYjAwMCBvcGNvZGUgaW1tICovCkBAIC00NSw5ICs0NSw5IEBACiAJc3dpCXI2LCByMCwgMHgxNAkvKiBpbnRlcnJ1cHQgKi8KIAlzd2kJcjYsIHIwLCAweDI0CS8qIGhhcmR3YXJlIGV4Y2VwdGlvbiAqLwogCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKIAkvKiByZXNldCBhZGRyZXNzICovCi0JYWRkaWsJcjYsIHIwLCBDRkdfUkVTRVRfQUREUkVTUworCWFkZGlrCXI2LCByMCwgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCiAJc3cJcjYsIHIxLCByMAogCWxodQlyNywgcjEsIHIwCiAJc2hpCXI3LCByMCwgMHgyCkBAIC01NiwxMSArNTYsMTEgQEAKICAqIENvcHkgVS1Cb290IGNvZGUgdG8gVEVYVF9CQVNFCiAgKiBzb2x2ZSBwcm9ibGVtIHdpdGggc2Jya19iYXNlCiAgKi8KLSNpZiAoQ0ZHX1JFU0VUX0FERFJFU1MgIT0gVEVYVF9CQVNFKQorI2lmIChDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgIT0gVEVYVF9CQVNFKQogCWFkZGkJcjQsIHIwLCBfX2VuZAogCWFkZGkJcjUsIHIwLCBfX3RleHRfc3RhcnQKIAlyc3ViCXI0LCByNSwgcjQJLyogc2l6ZSA9IF9fZW5kIC0gX190ZXh0X3N0YXJ0ICovCi0JYWRkaQlyNiwgcjAsIENGR19SRVNFVF9BRERSRVNTCS8qIHNvdXJjZSBhZGRyZXNzICovCisJYWRkaQlyNiwgcjAsIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkvKiBzb3VyY2UgYWRkcmVzcyAqLwogCWFkZGkJcjcsIHIwLCAwCS8qIGNvdW50ZXIgKi8KIDQ6CiAJbHcJcjgsIHI2LCByNwpAQCAtNzEsNyArNzEsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmZGVmIENGR19VU1JfRVhDRVAKKyNpZmRlZiBDT05GSUdfU1lTX1VTUl9FWENFUAogCS8qIHVzZXJfdmVjdG9yX2V4Y2VwdGlvbiAqLwogCWFkZGlrCXI2LCByMCwgX2V4Y2VwdGlvbl9oYW5kbGVyCiAJc3cJcjYsIHIxLCByMApAQCAtODAsNyArODAsNyBAQAogCXNoaQlyNiwgcjAsIDB4ZQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSU5UQ18wCisjaWZkZWYgQ09ORklHX1NZU19JTlRDXzAKIAkvKiBpbnRlcnJ1cHRfaGFuZGxlciAqLwogCWFkZGlrCXI2LCByMCwgX2ludGVycnVwdF9oYW5kbGVyCiAJc3cJcjYsIHIxLCByMApkaWZmIC0tZ2l0IGEvY3B1L21pY3JvYmxhemUvdGltZXIuYyBiL2NwdS9taWNyb2JsYXplL3RpbWVyLmMKaW5kZXggYjM1MDQ1My4uYTkxZWFiYyAxMDA2NDQKLS0tIGEvY3B1L21pY3JvYmxhemUvdGltZXIuYworKysgYi9jcHUvbWljcm9ibGF6ZS90aW1lci5jCkBAIC0zMyw3ICszMyw3IEBACiAJdGltZXN0YW1wID0gMDsKIH0KIAotI2lmZGVmIENGR19USU1FUl8wCisjaWZkZWYgQ09ORklHX1NZU19USU1FUl8wCiB1bG9uZyBnZXRfdGltZXIgKHVsb25nIGJhc2UpCiB7CiAJcmV0dXJuICh0aW1lc3RhbXAgLSBiYXNlKTsKQEAgLTUwLDkgKzUwLDkgQEAKIAl0aW1lc3RhbXAgPSB0OwogfQogCi0jaWZkZWYgQ0ZHX0lOVENfMAotI2lmZGVmIENGR19USU1FUl8wCi1taWNyb2JsYXplX3RpbWVyX3QgKnRtciA9IChtaWNyb2JsYXplX3RpbWVyX3QgKikgKENGR19USU1FUl8wX0FERFIpOworI2lmZGVmIENPTkZJR19TWVNfSU5UQ18wCisjaWZkZWYgQ09ORklHX1NZU19USU1FUl8wCittaWNyb2JsYXplX3RpbWVyX3QgKnRtciA9IChtaWNyb2JsYXplX3RpbWVyX3QgKikgKENPTkZJR19TWVNfVElNRVJfMF9BRERSKTsKIAogdm9pZCB0aW1lcl9pc3IgKHZvaWQgKmFyZykKIHsKQEAgLTYyLDEyICs2MiwxMiBAQAogCiB2b2lkIHRpbWVyX2luaXQgKHZvaWQpCiB7Ci0JdG1yLT5sb2FkcmVnID0gQ0ZHX1RJTUVSXzBfUFJFTE9BRDsKKwl0bXItPmxvYWRyZWcgPSBDT05GSUdfU1lTX1RJTUVSXzBfUFJFTE9BRDsKIAl0bXItPmNvbnRyb2wgPSBUSU1FUl9JTlRFUlJVUFQgfCBUSU1FUl9SRVNFVDsKIAl0bXItPmNvbnRyb2wgPQogCSAgICBUSU1FUl9FTkFCTEUgfCBUSU1FUl9FTkFCTEVfSU5UUiB8IFRJTUVSX1JFTE9BRCB8IFRJTUVSX0RPV05fQ09VTlQ7CiAJcmVzZXRfdGltZXIgKCk7Ci0JaW5zdGFsbF9pbnRlcnJ1cHRfaGFuZGxlciAoQ0ZHX1RJTUVSXzBfSVJRLCB0aW1lcl9pc3IsICh2b2lkICopdG1yKTsKKwlpbnN0YWxsX2ludGVycnVwdF9oYW5kbGVyIChDT05GSUdfU1lTX1RJTUVSXzBfSVJRLCB0aW1lcl9pc3IsICh2b2lkICopdG1yKTsKIH0KICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbWlwcy9hdTF4MDBfZXRoLmMgYi9jcHUvbWlwcy9hdTF4MDBfZXRoLmMKaW5kZXggZDBjZjhlMC4uOGRkYzA2YSAxMDA2NDQKLS0tIGEvY3B1L21pcHMvYXUxeDAwX2V0aC5jCisrKyBiL2NwdS9taXBzL2F1MXgwMF9ldGguYwpAQCAtMjMsNyArMjMsNyBAQAogICovCiAjaW5jbHVkZSA8Y29uZmlnLmg+CiAKLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKICNlcnJvciAiUEhZIG5vdCBzdXBwb3J0ZWQgeWV0IgogLyogV2UganVzdCBhc3N1bWUgdGhhdCB3ZSBhcmUgcnVubmluZyAxMDBGRCBmb3Igbm93ICovCiAvKiBXZSBhbGwgdXNlIHN3aXRjaGVzLCByaWdodD8gOy0pICovCmRpZmYgLS1naXQgYS9jcHUvbWlwcy9hdTF4MDBfc2VyaWFsLmMgYi9jcHUvbWlwcy9hdTF4MDBfc2VyaWFsLmMKaW5kZXggZThiYWFiNS4uYzI1YmE1YSAxMDA2NDQKLS0tIGEvY3B1L21pcHMvYXUxeDAwX3NlcmlhbC5jCisrKyBiL2NwdS9taXBzL2F1MXgwMF9zZXJpYWwuYwpAQCAtNzYsNyArNzYsNyBAQAogCXNkID0gKCpzeXNfcG93ZXJjdHJsICYgMHgwMykgKyAyOwogCiAJLyogY2FsdWxhdGUgMnggYmF1ZHJhdGUgYW5kIHJvdW5kICovCi0JZGl2aXNvcngyID0gKChDRkdfTUlQU19USU1FUl9GUkVRLyhzZCAqIDE2ICogQ09ORklHX0JBVURSQVRFKSkpOworCWRpdmlzb3J4MiA9ICgoQ09ORklHX1NZU19NSVBTX1RJTUVSX0ZSRVEvKHNkICogMTYgKiBDT05GSUdfQkFVRFJBVEUpKSk7CiAKIAlpZiAoZGl2aXNvcngyICYgMHgwMSkKIAkJZGl2aXNvcngyID0gZGl2aXNvcngyICsgMTsKZGlmZiAtLWdpdCBhL2NwdS9taXBzL2NhY2hlLlMgYi9jcHUvbWlwcy9jYWNoZS5TCmluZGV4IGVlNWQ0MTEuLmZmNGYxMWMgMTAwNjQ0Ci0tLSBhL2NwdS9taXBzL2NhY2hlLlMKKysrIGIvY3B1L21pcHMvY2FjaGUuUwpAQCAtMjA4LDkgKzIwOCw5IEBACiAqLwogTkVTVEVEKG1pcHNfY2FjaGVfcmVzZXQsIDAsIHJhKQogCW1vdmUJUkEsIHJhCi0JbGkJdDIsIENGR19JQ0FDSEVfU0laRQotCWxpCXQzLCBDRkdfRENBQ0hFX1NJWkUKLQlsaQl0NCwgQ0ZHX0NBQ0hFTElORV9TSVpFCisJbGkJdDIsIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUKKwlsaQl0MywgQ09ORklHX1NZU19EQ0FDSEVfU0laRQorCWxpCXQ0LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJbW92ZQl0NSwgdDQKIAogCWxpCXYwLCBNSVBTX01BWF9DQUNIRV9TSVpFCkBAIC0zMDIsNyArMzAyLDcgQEAKIAlqcglyYQogCUVORChkY2FjaGVfZW5hYmxlKQogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0xPQ0tfTUlQUworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DS19NSVBTCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBtaXBzX2NhY2hlX2xvY2sgLSBsb2NrIFJBTSBhcmVhIHBvaW50ZWQgdG8gYnkgYTAgaW4gY2FjaGUuCkBAIC0zMTEsOSArMzExLDkgQEAKICoKICovCiAjaWYgZGVmaW5lZChDT05GSUdfUFVSUExFKQotIyBkZWZpbmUJQ0FDSEVfTE9DS19TSVpFCShDRkdfRENBQ0hFX1NJWkUvMikKKyMgZGVmaW5lCUNBQ0hFX0xPQ0tfU0laRQkoQ09ORklHX1NZU19EQ0FDSEVfU0laRS8yKQogI2Vsc2UKLSMgZGVmaW5lCUNBQ0hFX0xPQ0tfU0laRQkoQ0ZHX0RDQUNIRV9TSVpFKQorIyBkZWZpbmUJQ0FDSEVfTE9DS19TSVpFCShDT05GSUdfU1lTX0RDQUNIRV9TSVpFKQogI2VuZGlmCiAJLmdsb2JsCW1pcHNfY2FjaGVfbG9jawogCS5lbnQJbWlwc19jYWNoZV9sb2NrCkBAIC0zMjEsMTEgKzMyMSwxMSBAQAogCWxpCWExLCBDS1NFRzAgLSBDQUNIRV9MT0NLX1NJWkUKIAlhZGR1CWEwLCBhMQogCWxpCWEyLCBDQUNIRV9MT0NLX1NJWkUKLQlsaQlhMywgQ0ZHX0NBQ0hFTElORV9TSVpFCisJbGkJYTMsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAltb3ZlCWExLCBhMgogCWljYWNoZW9wKGEwLGExLGEyLGEzLDB4MWQpCiAKIAlqcglyYQogCiAJLmVuZAltaXBzX2NhY2hlX2xvY2sKLSNlbmRpZiAvKiBDRkdfSU5JVF9SQU1fTE9DS19NSVBTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JTklUX1JBTV9MT0NLX01JUFMgKi8KZGlmZiAtLWdpdCBhL2NwdS9taXBzL2NwdS5jIGIvY3B1L21pcHMvY3B1LmMKaW5kZXggMGY1OGQyNS4uMzhkODY5NyAxMDA2NDQKLS0tIGEvY3B1L21pcHMvY3B1LmMKKysrIGIvY3B1L21pcHMvY3B1LmMKQEAgLTUxLDcgKzUxLDcgQEAKIAogdm9pZCBmbHVzaF9jYWNoZSh1bG9uZyBzdGFydF9hZGRyLCB1bG9uZyBzaXplKQogewotCXVuc2lnbmVkIGxvbmcgbHNpemUgPSBDRkdfQ0FDSEVMSU5FX1NJWkU7CisJdW5zaWduZWQgbG9uZyBsc2l6ZSA9IENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkU7CiAJdW5zaWduZWQgbG9uZyBhZGRyID0gc3RhcnRfYWRkciAmIH4obHNpemUgLSAxKTsKIAl1bnNpZ25lZCBsb25nIGFlbmQgPSAoc3RhcnRfYWRkciArIHNpemUgLSAxKSAmIH4obHNpemUgLSAxKTsKIApkaWZmIC0tZ2l0IGEvY3B1L21pcHMvc3RhcnQuUyBiL2NwdS9taXBzL3N0YXJ0LlMKaW5kZXggMDllNGFhYi4uNmEyMjMwMiAxMDA2NDQKLS0tIGEvY3B1L21pcHMvc3RhcnQuUworKysgYi9jcHUvbWlwcy9zdGFydC5TCkBAIC0yNzQsMTQgKzI3NCwxNCBAQAogCiAJLyogU2V0IHVwIHRlbXBvcmFyeSBzdGFjay4KIAkgKi8KLSNpZmRlZiBDRkdfSU5JVF9SQU1fTE9DS19NSVBTCi0JbGkJYTAsIENGR19JTklUX1NQX09GRlNFVAorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DS19NSVBTCisJbGkJYTAsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQKIAlsYQl0OSwgbWlwc19jYWNoZV9sb2NrCiAJamFscgl0OQogCW5vcAogI2VuZGlmCiAKLQlsaQl0MCwgQ0ZHX1NEUkFNX0JBU0UgKyBDRkdfSU5JVF9TUF9PRkZTRVQKKwlsaQl0MCwgQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAogCWxhCXNwLCAwKHQwKQogCiAJbGEJdDksIGJvYXJkX2luaXRfZgpAQCAtMzAzLDcgKzMwMyw3IEBACiByZWxvY2F0ZV9jb2RlOgogCW1vdmUJc3AsIGEwCQkvKiBTZXQgbmV3IHN0YWNrIHBvaW50ZXIJKi8KIAotCWxpCXQwLCBDRkdfTU9OSVRPUl9CQVNFCisJbGkJdDAsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAJbGEJdDMsIGluX3JhbQogCWx3CXQyLCAtMTIodDMpCS8qIHQyIDwtLSB1Ym9vdF9lbmRfZGF0YQkqLwogCW1vdmUJdDEsIGEyCkBAIC0zMTEsMTAgKzMxMSwxMCBAQAogCS8qCiAJICogRml4ICRncDoKIAkgKgotCSAqIE5ldyAkZ3AgPSAoT2xkICRncCAtIENGR19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcworCSAqIE5ldyAkZ3AgPSAoT2xkICRncCAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKi8KIAltb3ZlCXQ2LCBncAotCXN1YglncCwgQ0ZHX01PTklUT1JfQkFTRQorCXN1YglncCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UKIAlhZGQJZ3AsIGEyCQkvKiBncCBub3cgYWRqdXN0ZWQJCSovCiAJc3ViCXQ2LCBncCwgdDYJLyogdDYgPC0tIHJlbG9jYXRpb24gb2Zmc2V0CSovCiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM1MTJ4L2NwdS5jIGIvY3B1L21wYzUxMngvY3B1LmMKaW5kZXggZDQzMmQ5OS4uOWI1OTczOCAxMDA2NDQKLS0tIGEvY3B1L21wYzUxMngvY3B1LmMKKysrIGIvY3B1L21wYzUxMngvY3B1LmMKQEAgLTQxLDcgKzQxLDcgQEAKIAogaW50IGNoZWNrY3B1ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIGNsb2NrID0gZ2QtPmNwdV9jbGs7CiAJdTMyIHB2ciA9IGdldF9wdnIgKCk7CiAJdTMyIHNwcmlkciA9IGltbXItPnN5c2NvbmYuc3ByaWRyOwpAQCAtNzUsNyArNzUsNyBAQAogZG9fcmVzZXQgKGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAl1bG9uZyBtc3I7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIEludGVycnVwdHMgYW5kIE1NVSBvZmYgKi8KIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mbXNyICAgICUwIjoiPXIiIChtc3IpOik7CkBAIC0xMjIsNyArMTIyLDcgQEAKIAlpbnQgcmVfZW5hYmxlID0gZGlzYWJsZV9pbnRlcnJ1cHRzICgpOwogCiAJLyogUmVzZXQgd2F0Y2hkb2cgKi8KLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbW1yLT53ZHQuc3dzcnIgPSAweDU1NmM7CiAJaW1tci0+d2R0LnN3c3JyID0gMHhhYTM5OwogCmRpZmYgLS1naXQgYS9jcHUvbXBjNTEyeC9jcHVfaW5pdC5jIGIvY3B1L21wYzUxMngvY3B1X2luaXQuYwppbmRleCBkNjk0OWY2Li5mYTc1M2M4IDEwMDY0NAotLS0gYS9jcHUvbXBjNTEyeC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tcGM1MTJ4L2NwdV9pbml0LmMKQEAgLTM3LDIzICszNywyMyBAQAogCXUzMiBpcHNfZGl2OwogCiAJLyogUG9pbnRlciBpcyB3cml0YWJsZSBzaW5jZSB3ZSBhbGxvY2F0ZWQgYSByZWdpc3RlciBmb3IgaXQgKi8KLQlnZCA9IChnZF90ICopIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpOworCWdkID0gKGdkX3QgKikgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKTsKIAogCS8qIENsZWFyIGluaXRpYWwgZ2xvYmFsIGRhdGEgKi8KIAltZW1zZXQgKCh2b2lkICopIGdkLCAwLCBzaXplb2YgKGdkX3QpKTsKIAogCS8qIHN5c3RlbSBwZXJmb3JtYW5jZSB0d2Vha2luZyAqLwogCi0jaWZkZWYgQ0ZHX0FDUl9QSVBFX0RFUAorI2lmZGVmIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCiAJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAqLwogCWltLT5hcmJpdGVyLmFjciA9IChpbS0+YXJiaXRlci5hY3IgJiB+QUNSX1BJUEVfREVQKSB8Ci0JCQkgIChDRkdfQUNSX1BJUEVfREVQIDw8IEFDUl9QSVBFX0RFUF9TSElGVCk7CisJCQkgIChDT05GSUdfU1lTX0FDUl9QSVBFX0RFUCA8PCBBQ1JfUElQRV9ERVBfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfQUNSX1JQVENOVAorI2lmZGVmIENPTkZJR19TWVNfQUNSX1JQVENOVAogCS8qIEFyYml0ZXIgcmVwZWF0IGNvdW50ICovCiAJaW0tPmFyYml0ZXIuYWNyID0gKChpbS0+YXJiaXRlci5hY3IgJiB+KEFDUl9SUFRDTlQpKSB8Ci0JCQkgICAoQ0ZHX0FDUl9SUFRDTlQgPDwgQUNSX1JQVENOVF9TSElGVCkpOworCQkJICAgKENPTkZJR19TWVNfQUNSX1JQVENOVCA8PCBBQ1JfUlBUQ05UX1NISUZUKSk7CiAjZW5kaWYKIAogCS8qIFJTUiAtIFJlc2V0IFN0YXR1cyBSZWdpc3RlciAtIGNsZWFyIGFsbCBzdGF0dXMgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM1MTJ4L2kyYy5jIGIvY3B1L21wYzUxMngvaTJjLmMKaW5kZXggNTZiYTQ0My4uNzdhNmYwZCAxMDA2NDQKLS0tIGEvY3B1L21wYzUxMngvaTJjLmMKKysrIGIvY3B1L21wYzUxMngvaTJjLmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxtcGM1MTJ4Lmg+CiAjaW5jbHVkZSA8aTJjLmg+CiAKLSNkZWZpbmUgaW1tciAoKGltbWFwX3QgKilDRkdfSU1NUikKKyNkZWZpbmUgaW1tciAoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpCiAKIC8qIGJ5IGRlZmF1bHQgc2V0IEkyQyBidXMgMCBhY3RpdmUgKi8KIHN0YXRpYyB1bnNpZ25lZCBpbnQgYnVzX251bSA9IDA7CkBAIC00MjIsNyArNDIyLDcgQEAKIAogaW50IGkyY19zZXRfYnVzX3NwZWVkICh1bnNpZ25lZCBpbnQgc3BlZWQpCiB7Ci0JaWYgKHNwZWVkICE9IENGR19JMkNfU1BFRUQpCisJaWYgKHNwZWVkICE9IENPTkZJR19TWVNfSTJDX1NQRUVEKQogCQlyZXR1cm4gLTE7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1MTJ4L2ludGVycnVwdHMuYyBiL2NwdS9tcGM1MTJ4L2ludGVycnVwdHMuYwppbmRleCA4Y2MyNDFjLi5lZjdjNzczIDEwMDY0NAotLS0gYS9jcHUvbXBjNTEyeC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21wYzUxMngvaW50ZXJydXB0cy5jCkBAIC0zNyw3ICszNyw3IEBACiAKIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUgKHVuc2lnbmVkICpkZWNyZW1lbnRlcl9jb3VudCkKIHsKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsgKCkgLyBDRkdfSFo7CisJKmRlY3JlbWVudGVyX2NvdW50ID0gZ2V0X3RiY2xrICgpIC8gQ09ORklHX1NZU19IWjsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzUxMngvaW9waW4uYyBiL2NwdS9tcGM1MTJ4L2lvcGluLmMKaW5kZXggM2Q3MDQyZC4uNzhmNGZhMWUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1MTJ4L2lvcGluLmMKKysrIGIvY3B1L21wYzUxMngvaW9waW4uYwpAQCAtMjksNyArMjksNyBAQAogewogCXNob3J0IGksIGosIHA7CiAJdV9sb25nICpyZWc7Ci0JaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAlyZWcgPSAodV9sb25nICopJihpbS0+aW9fY3RybC5yZWdzWzBdKTsKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzUxMngvc2VyaWFsLmMgYi9jcHUvbXBjNTEyeC9zZXJpYWwuYwppbmRleCA4YTIxNDA0Li43ZGI4N2E4IDEwMDY0NAotLS0gYS9jcHUvbXBjNTEyeC9zZXJpYWwuYworKysgYi9jcHUvbXBjNTEyeC9zZXJpYWwuYwpAQCAtMzcsNyArMzcsNyBAQAogCiBzdGF0aWMgdm9pZCBmaWZvX2luaXQgKHZvbGF0aWxlIHBzYzUxMnhfdCAqcHNjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKiByZXNldCBSeCAmIFR4IGZpZm8gc2xpY2UgKi8KIAlwc2MtPnJmY21kID0gUFNDX0ZJRk9fUkVTRVRfU0xJQ0U7CkBAIC02MCw3ICs2MCw3IEBACiAKIGludCBzZXJpYWxfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgcHNjNTEyeF90ICpwc2MgPSAocHNjNTEyeF90ICopICZpbS0+cHNjW0NPTkZJR19QU0NfQ09OU09MRV07CiAJdW5zaWduZWQgbG9uZyBiYXNlY2xrOwogCWludCBkaXY7CkBAIC0xMDYsNyArMTA2LDcgQEAKIAogdm9pZCBzZXJpYWxfcHV0YyAoY29uc3QgY2hhciBjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHBzYzUxMnhfdCAqcHNjID0gKHBzYzUxMnhfdCAqKSAmaW0tPnBzY1tDT05GSUdfUFNDX0NPTlNPTEVdOwogCiAJaWYgKGMgPT0gJ1xuJykKQEAgLTEyMSw3ICsxMjEsNyBAQAogCiB2b2lkIHNlcmlhbF9wdXRjX3JhdyAoY29uc3QgY2hhciBjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgcHNjNTEyeF90ICpwc2MgPSAocHNjNTEyeF90ICopICZpbS0+cHNjW0NPTkZJR19QU0NfQ09OU09MRV07CiAKIAkvKiBXYWl0IGZvciBsYXN0IGNoYXJhY3RlciB0byBnby4gKi8KQEAgLTE0MSw3ICsxNDEsNyBAQAogCiBpbnQgc2VyaWFsX2dldGMgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwc2M1MTJ4X3QgKnBzYyA9IChwc2M1MTJ4X3QgKikgJmltLT5wc2NbQ09ORklHX1BTQ19DT05TT0xFXTsKIAogCS8qIFdhaXQgZm9yIGEgY2hhcmFjdGVyIHRvIGFycml2ZS4gKi8KQEAgLTE1Myw3ICsxNTMsNyBAQAogCiBpbnQgc2VyaWFsX3RzdGMgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwc2M1MTJ4X3QgKnBzYyA9IChwc2M1MTJ4X3QgKikgJmltLT5wc2NbQ09ORklHX1BTQ19DT05TT0xFXTsKIAogCXJldHVybiAhKHBzYy0+cmZzdGF0ICYgUFNDX0ZJRk9fRU1QVFkpOwpAQCAtMTYxLDcgKzE2MSw3IEBACiAKIHZvaWQgc2VyaWFsX3NldGJyZyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHBzYzUxMnhfdCAqcHNjID0gKHBzYzUxMnhfdCAqKSAmaW0tPnBzY1tDT05GSUdfUFNDX0NPTlNPTEVdOwogCXVuc2lnbmVkIGxvbmcgYmFzZWNsaywgZGl2OwogCkBAIC0xNzQsNyArMTc0LDcgQEAKIAogdm9pZCBzZXJpYWxfc2V0cnRzKGludCBzKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgcHNjNTEyeF90ICpwc2MgPSAocHNjNTEyeF90ICopICZpbS0+cHNjW0NPTkZJR19QU0NfQ09OU09MRV07CiAKIAlpZiAocykgewpAQCAtMTg5LDcgKzE4OSw3IEBACiAKIGludCBzZXJpYWxfZ2V0Y3RzKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwc2M1MTJ4X3QgKnBzYyA9IChwc2M1MTJ4X3QgKikgJmltLT5wc2NbQ09ORklHX1BTQ19DT05TT0xFXTsKIAogCXJldHVybiAocHNjLT5pcCAmIDB4MSkgPyAwIDogMTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1MTJ4L3NwZWVkLmMgYi9jcHUvbXBjNTEyeC9zcGVlZC5jCmluZGV4IGU2MjQ3N2IuLmJhZjYyMTUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1MTJ4L3NwZWVkLmMKKysrIGIvY3B1L21wYzUxMngvc3BlZWQuYwpAQCAtNjIsMTMgKzYyLDEzIEBACiAKIGludCBnZXRfY2xvY2tzICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdTggc3BtZjsKIAl1OCBjcG1mOwogCXU4IHN5c19kaXY7CiAJdTggaXBzX2RpdjsKIAl1OCBwY2lfZGl2OwotCXUzMiByZWZfY2xrID0gQ0ZHX01QQzUxMlhfQ0xLSU47CisJdTMyIHJlZl9jbGsgPSBDT05GSUdfU1lTX01QQzUxMlhfQ0xLSU47CiAJdTMyIHNwbGw7CiAJdTMyIHN5c19jbGs7CiAJdTMyIGNvcmVfY2xrOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzUxMngvc3RhcnQuUyBiL2NwdS9tcGM1MTJ4L3N0YXJ0LlMKaW5kZXggZmI4YWNiNS4uMjZmM2M1MiAxMDA2NDQKLS0tIGEvY3B1L21wYzUxMngvc3RhcnQuUworKysgYi9jcHUvbXBjNTEyeC9zdGFydC5TCkBAIC0xOTIsOCArMTkyLDggQEAKIAogCS8qIFNldCBJTU1SIGFyZWEgdG8gb3VyIHByZWZlcnJlZCBsb2NhdGlvbiAqLwogCWxpcwlyNCwgQ09ORklHX0RFRkFVTFRfSU1NUkBoCi0JbGlzCXIzLCBDRkdfSU1NUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lNTVJAbAorCWxpcwlyMywgQ09ORklHX1NZU19JTU1SQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lNTVJAbAogCXN0dwlyMywgSU1NUkJBUihyNCkKIAltdHNwcglNQkFSLCByMwkJLyogSU1NUkJBUiBpcyBtaXJyb3JlZCBpbnRvIHRoZSBNQkFSIFNQUiAoMzExKSAqLwogCkBAIC0yMDgsMTggKzIwOCwxOCBAQAogCSAqLwogCiAJLyogQm9vdCBDUy9DUzAgd2luZG93IHJhbmdlICovCi0JbGlzICAgICByMywgQ0ZHX0lNTVJAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSU1NUkBsCisJbGlzICAgICByMywgQ09ORklHX1NZU19JTU1SQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JTU1SQGwKIAotCWxpcwlyNCwgU1RBUlRfUkVHKENGR19GTEFTSF9CQVNFKQotCW9yaQlyNCwgcjQsIFNUT1BfUkVHKENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfU0laRSkKKwlsaXMJcjQsIFNUQVJUX1JFRyhDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisJb3JpCXI0LCByNCwgU1RPUF9SRUcoQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX1NJWkUpCiAJc3R3CXI0LCBMUENTMEFXKHIzKQogCiAJLyoKIAkgKiBUaGUgU1JBTSB3aW5kb3cgaGFzIGEgZml4ZWQgc2l6ZSAoMjU2SyksIHNvIG9ubHkgdGhlIHN0YXJ0IGFkZHJlc3MKIAkgKiBpcyBuZWNlc3NhcnkKIAkgKi8KLQlsaXMJcjQsIFNUQVJUX1JFRyhDRkdfU1JBTV9CQVNFKSAmIDB4ZmYwMAorCWxpcwlyNCwgU1RBUlRfUkVHKENPTkZJR19TWVNfU1JBTV9CQVNFKSAmIDB4ZmYwMAogCXN0dwlyNCwgU1JBTUJBUihyMykKIAogCS8qCkBAIC0yMzQsMTEgKzIzNCwxMSBAQAogCSAqIFNldCBjb25maWd1cmF0aW9uIG9mIHRoZSBCb290L0NTMCwgdGhlIFNSQU0gd2luZG93IGRvZXMgbm90IGhhdmUgYQogCSAqIGNvbmZpZyByZWdpc3RlciBzbyBubyBwYXJhbXMgY2FuIGJlIHNldCBmb3IgaXQKIAkgKi8KLQlsaXMgICAgIHIzLCAoQ0ZHX0lNTVIgKyBMUENfT0ZGU0VUKUBoCi0Jb3JpICAgICByMywgcjMsIChDRkdfSU1NUiArIExQQ19PRkZTRVQpQGwKKwlsaXMgICAgIHIzLCAoQ09ORklHX1NZU19JTU1SICsgTFBDX09GRlNFVClAaAorCW9yaSAgICAgcjMsIHIzLCAoQ09ORklHX1NZU19JTU1SICsgTFBDX09GRlNFVClAbAogCi0JbGlzICAgICByNCwgQ0ZHX0NTMF9DRkdAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfQ1MwX0NGR0BsCisJbGlzICAgICByNCwgQ09ORklHX1NZU19DUzBfQ0ZHQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19DUzBfQ0ZHQGwKIAlzdHcgICAgIHI0LCBDUzBfQ09ORklHKHIzKQogCiAJLyogTWFzdGVyIGVuYWJsZSBhbGwgQ1MncyAqLwpAQCAtMjQ2LDE1ICsyNDYsMTUgQEAKIAlvcmkJcjQsIHI0LCBDU19DVFJMX01FQGwKIAlzdHcJcjQsIENTX0NUUkwocjMpCiAKLQlsaXMJcjQsIChDRkdfTU9OSVRPUl9CQVNFKUBoCi0Jb3JpCXI0LCByNCwgKENGR19NT05JVE9SX0JBU0UpQGwKKwlsaXMJcjQsIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSlAaAorCW9yaQlyNCwgcjQsIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSlAbAogCWFkZGkJcjUsIHI0LCBpbl9mbGFzaCAtIF9zdGFydCArIEVYQ19PRkZfU1lTX1JFU0VUCiAJbXRscglyNQogCWJscgogCiBpbl9mbGFzaDoKLQlsaXMJcjEsIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpQGgKLQlvcmkJcjEsIHIxLCAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKUBsCisJbGlzCXIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpQGgKKwlvcmkJcjEsIHIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpQGwKIAogCWxpCXIwLCAwCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQJKi8KIAlzdHd1CXIwLCAtNChyMSkJLyogY2xlYXIgZmluYWwgc3RhY2sgZnJhbWUgc28gdGhhdAkqLwpAQCAtMjY4LDcgKzI2OCw3IEBACiAJR0VUX0dPVAkJCS8qIGluaXRpYWxpemUgR09UIGFjY2VzcwkqLwogCiAJLyogcjM6IElNTVIgKi8KLQlsaXMJcjMsIENGR19JTU1SQGgKKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCiAJLyogcnVuIGxvdy1sZXZlbCBDUFUgaW5pdCBjb2RlIChpbiBGbGFzaCkgKi8KIAlibAljcHVfaW5pdF9mCiAKQEAgLTM1MywxMiArMzUzLDEyIEBACiAJU1lOQwogCW10c3ByCVNSUjEsIHIzCQkJLyogTWlycm9yIGN1cnJlbnQgTVNSIHN0YXRlIGluIFNSUjEgKi8KIAotCWxpcwlyMywgQ0ZHX0lNTVJAaAorCWxpcwlyMywgQ09ORklHX1NZU19JTU1SQGgKIAogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQogCS8qIEluaXRpYWxpc2UgdGhlIHdhdGNoZG9nIGFuZCByZXNldCBpdCAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcyByNCwgQ0ZHX1dBVENIRE9HX1ZBTFVFCisJbGlzIHI0LCBDT05GSUdfU1lTX1dBVENIRE9HX1ZBTFVFCiAJb3JpIHI0LCByNCwgKFNXQ1JSX1NXRU4gfCBTV0NSUl9TV1JJIHwgU1dDUlJfU1dQUikKIAlzdHcgcjQsIFNXQ1JSKHIzKQogCkBAIC0zODYsMTggKzM4NiwxOCBAQAogCS8qIEluaXRpYWxpemUgdGhlIEhhcmR3YXJlIEltcGxlbWVudGF0aW9uLWRlcGVuZGVudCBSZWdpc3RlcnMgKi8KIAkvKiBISUQwIGFsc28gY29udGFpbnMgY2FjaGUgY29udHJvbAkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMywgQ0ZHX0hJRDBfSU5JVEBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDBfSU5JVEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDBfSU5JVEBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19ISUQwX0lOSVRAbAogCVNZTkMKIAltdHNwcglISUQwLCByMwogCi0JbGlzCXIzLCBDRkdfSElEMF9GSU5BTEBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDBfRklOQUxAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQwX0ZJTkFMQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDBfRklOQUxAbAogCVNZTkMKIAltdHNwcglISUQwLCByMwogCi0JbGlzCXIzLCBDRkdfSElEMkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDJAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQyQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDJAbAogCVNZTkMKIAltdHNwcglISUQyLCByMwogCXN5bmMKQEAgLTQ5OSwxNiArNDk5LDE2IEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcyAqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzICovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzICovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUgKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplICovCiAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKQogCSAqCQkrIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvY3B1LmMgYi9jcHUvbXBjNXh4L2NwdS5jCmluZGV4IDRiZWY5MGMuLjdmZmZlYmMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHgvY3B1LmMKKysrIGIvY3B1L21wYzV4eC9jcHUuYwpAQCAtODAsNyArODAsNyBAQAogewogCWludCByZV9lbmFibGUgPSBkaXNhYmxlX2ludGVycnVwdHMgKCk7CiAKLQlyZXNldF81eHhfd2F0Y2hkb2cgKChpbW1hcF90ICopIENGR19JTU1SKTsKKwlyZXNldF81eHhfd2F0Y2hkb2cgKChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUik7CiAJaWYgKHJlX2VuYWJsZSkKIAkJZW5hYmxlX2ludGVycnVwdHMgKCk7CiB9CkBAIC0xMDMsMTQgKzEwMywxNCBAQAogICovCiB1bnNpZ25lZCBsb25nIGdldF90YmNsayAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKHZvbGF0aWxlIGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyBvc2NjbGssIGZhY3RvcjsKIAogCWlmIChpbW1yLT5pbV9jbGtyc3QuY2FyX3NjY3IgJiBTQ0NSX1RCUykgewogCQlyZXR1cm4gKGdkLT5jcHVfY2xrIC8gMTYpOwogCX0KIAotCWZhY3RvciA9ICgoKENGR19QTFBSQ1IpICYgUExQUkNSX01GX01TSykgPj4gUExQUkNSX01GX1NISUZUKSArIDE7CisJZmFjdG9yID0gKCgoQ09ORklHX1NZU19QTFBSQ1IpICYgUExQUkNSX01GX01TSykgPj4gUExQUkNSX01GX1NISUZUKSArIDE7CiAKIAlvc2NjbGsgPSBnZC0+Y3B1X2NsayAvIGZhY3RvcjsKIApAQCAtMTQxLDcgKzE0MSw3IEBACiBpbnQgZG9fcmVzZXQgKGNtZF90YmxfdCAqIGNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICNpZiBkZWZpbmVkKENPTkZJR19QQVRJKQotCXZvbGF0aWxlIHVsb25nICphZGRyID0gKHVsb25nICopIENGR19SRVNFVF9BRERSRVNTOworCXZvbGF0aWxlIHVsb25nICphZGRyID0gKHVsb25nICopIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKIAkqYWRkciA9IDE7CiAjZWxzZQogCXVsb25nIGFkZHI7CkBAIC0xNTUsMTUgKzE1NSwxNSBAQAogCSAqIFRyeWluZyB0byBleGVjdXRlIHRoZSBuZXh0IGluc3RydWN0aW9uIGF0IGEgbm9uLWV4aXN0aW5nIGFkZHJlc3MKIAkgKiBzaG91bGQgY2F1c2UgYSBtYWNoaW5lIGNoZWNrLCByZXN1bHRpbmcgaW4gcmVzZXQKIAkgKi8KLSNpZmRlZiBDRkdfUkVTRVRfQUREUkVTUwotCWFkZHIgPSBDRkdfUkVTRVRfQUREUkVTUzsKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKKwlhZGRyID0gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTOwogI2Vsc2UKIAkvKgotCSAqIG5vdGU6IHdoZW4gQ0ZHX01PTklUT1JfQkFTRSBwb2ludHMgdG8gYSBSQU0gYWRkcmVzcywgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAgICogLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQgYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcwotCSAqIGtub3duIHRvIGJlIGludmFsaWQgb24geW91ciBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDRkdfUkVTRVRfQUREUkVTUy4KKwkgKiBub3RlOiB3aGVuIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICAgICAgICogLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQgYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcworCSAqIGtub3duIHRvIGJlIGludmFsaWQgb24geW91ciBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MuCiAJICogIih1bG9uZyktMSIgdXNlZCB0byBiZSBhIGdvb2QgY2hvaWNlIGZvciBtYW55IHN5c3RlbXMuLi4KIAkgKi8KLQlhZGRyID0gQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpOworCWFkZHIgPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpOwogI2VuZGlmCiAJKCh2b2lkICgqKSAodm9pZCkpIGFkZHIpICgpOwogI2VuZGlmICAvKiAjaWYgZGVmaW5lZChDT05GSUdfUEFUSSkgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvY3B1X2luaXQuYyBiL2NwdS9tcGM1eHgvY3B1X2luaXQuYwppbmRleCA1YmJiNzk4Li5jYjRiZjg0IDEwMDY0NAotLS0gYS9jcHUvbXBjNXh4L2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzV4eC9jcHVfaW5pdC5jCkBAIC00MSw3NCArNDEsNzQgQEAKIAogCS8qIFNZUENSIC0gY29udGFpbnMgd2F0Y2hkb2cgY29udHJvbC4gVGhpcyB3aWxsIGVuYWJsZSB3YXRjaGRvZyAqLwogCS8qIGlmIENPTkZJR19XQVRDSERPRyBpcyBzZXQgKi8KLQlpbW1yLT5pbV9zaXVfY29uZi5zY19zeXBjciA9IENGR19TWVBDUjsKKwlpbW1yLT5pbV9zaXVfY29uZi5zY19zeXBjciA9IENPTkZJR19TWVNfU1lQQ1I7CiAKICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKIAlyZXNldF81eHhfd2F0Y2hkb2cgKGltbXIpOwogI2VuZGlmCiAKIAkvKiBTSVVNQ1IgLSBjb250YWlucyBkZWJ1ZyBwaW4gY29uZmlndXJhdGlvbiAqLwotCWltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciB8PSBDRkdfU0lVTUNSOworCWltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciB8PSBDT05GSUdfU1lTX1NJVU1DUjsKIAogCS8qIEluaXRpYWxpemUgdGltZWJhc2UuIFVubG9jayBUQlNDUksgKi8KIAlpbW1yLT5pbV9zaXRrLnNpdGtfdGJzY3JrID0gS0FQV1JfS0VZOwotCWltbXItPmltX3NpdC5zaXRfdGJzY3IgPSBDRkdfVEJTQ1I7CisJaW1tci0+aW1fc2l0LnNpdF90YnNjciA9IENPTkZJR19TWVNfVEJTQ1I7CiAKIAkvKiBGdWxsIElNQiBidXMgc3BlZWQgKi8KLQlpbW1yLT5pbV91aW1iLnVpbWJfdW1jciA9IENGR19VTUNSOworCWltbXItPmltX3VpbWIudWltYl91bWNyID0gQ09ORklHX1NZU19VTUNSOwogCiAJLyogVGltZSBiYXNlIGFuZCBkZWNyZW1lbnRlciB3aWxsIGJlIGVuYWJsZXMgKFRCRSkgKi8KIAkvKiBpbiBpbml0X3RpbWViYXNlKCkgaW4gdGltZS5jIGNhbGxlZCBmcm9tIGJvYXJkX2luaXRfZigpLiAqLwogCiAJLyogSW5pdGlhbGl6ZSB0aGUgUElULiBVbmxvY2sgUElTQ1JLICovCiAJaW1tci0+aW1fc2l0ay5zaXRrX3Bpc2NyayA9IEtBUFdSX0tFWTsKLQlpbW1yLT5pbV9zaXQuc2l0X3Bpc2NyID0gQ0ZHX1BJU0NSOworCWltbXItPmltX3NpdC5zaXRfcGlzY3IgPSBDT05GSUdfU1lTX1BJU0NSOwogCiAjaWYgIWRlZmluZWQoQ09ORklHX1BBVEkpCiAJLyogUEFUSSBzZXN0IFBMTCBpbiBzdGFydC5TICovCiAJLyogUExMIChDUFUgY2xvY2spIHNldHRpbmdzICovCiAJaW1tci0+aW1fY2xrcnN0ay5jYXJrX3BscHJjcmsgPSBLQVBXUl9LRVk7CiAKLQkvKiBJZiBDRkdfUExQUkNSIChzZXQgaW4gdGhlIHZhcmlvdXMgKl9jb25maWcuaCBmaWxlcykgdHJpZXMgdG8KLQkgKiBzZXQgdGhlIE1GIGZpZWxkLCB0aGVuIGp1c3QgY29weSBDRkdfUExQUkNSIG92ZXIgY2FyX3BscHJjciwKLQkgKiBvdGhlcndpc2UgT1IgaW4gQ0ZHX1BMUFJDUiBzbyB3ZSBkbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50TUYKKwkvKiBJZiBDT05GSUdfU1lTX1BMUFJDUiAoc2V0IGluIHRoZSB2YXJpb3VzICpfY29uZmlnLmggZmlsZXMpIHRyaWVzIHRvCisJICogc2V0IHRoZSBNRiBmaWVsZCwgdGhlbiBqdXN0IGNvcHkgQ09ORklHX1NZU19QTFBSQ1Igb3ZlciBjYXJfcGxwcmNyLAorCSAqIG90aGVyd2lzZSBPUiBpbiBDT05GSUdfU1lTX1BMUFJDUiBzbyB3ZSBkbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50TUYKIAkgKiBmaWVsZCB2YWx1ZS4KIAkgKi8KLSNpZiAoKENGR19QTFBSQ1IgJiBQTFBSQ1JfTUZfTVNLKSAhPSAwKQotCXJlZyA9IENGR19QTFBSQ1I7CQkJLyogcmVzZXQgY29udHJvbCBiaXRzICAgKi8KKyNpZiAoKENPTkZJR19TWVNfUExQUkNSICYgUExQUkNSX01GX01TSykgIT0gMCkKKwlyZWcgPSBDT05GSUdfU1lTX1BMUFJDUjsJCQkvKiByZXNldCBjb250cm9sIGJpdHMgICAqLwogI2Vsc2UKIAlyZWcgPSBpbW1yLT5pbV9jbGtyc3QuY2FyX3BscHJjcjsKIAlyZWcgJj0gUExQUkNSX01GX01TSzsJCQkvKiBpc29sYXRlIE1GIGZpZWxkICovCi0JcmVnIHw9IENGR19QTFBSQ1I7CQkJLyogcmVzZXQgY29udHJvbCBiaXRzICAgKi8KKwlyZWcgfD0gQ09ORklHX1NZU19QTFBSQ1I7CQkJLyogcmVzZXQgY29udHJvbCBiaXRzICAgKi8KICNlbmRpZgogCWltbXItPmltX2Nsa3JzdC5jYXJfcGxwcmNyID0gcmVnOwogCiAjZW5kaWYgLyogIWRlZmluZWQoQ09ORklHX1BBVEkpICovCiAKLQkvKiBTeXN0ZW0gaW50ZWdyYXRpb24gdGltZXJzLiBDRkdfTUFTSyBoYXMgRUJERiBjb25maWd1cmF0aW9uICovCisJLyogU3lzdGVtIGludGVncmF0aW9uIHRpbWVycy4gQ09ORklHX1NZU19NQVNLIGhhcyBFQkRGIGNvbmZpZ3VyYXRpb24gKi8KIAlpbW1yLT5pbV9jbGtyc3RrLmNhcmtfc2NjcmsgPSBLQVBXUl9LRVk7CiAJcmVnID0gaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyOwogCXJlZyAmPSBTQ0NSX01BU0s7Ci0JcmVnIHw9IENGR19TQ0NSOworCXJlZyB8PSBDT05GSUdfU1lTX1NDQ1I7CiAJaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyID0gcmVnOwogCiAJLyogTWVtb3J5IENvbnRyb2xsZXIgKi8KLQltZW1jdGwtPm1lbWNfYnIwID0gQ0ZHX0JSMF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX29yMCA9IENGR19PUjBfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjAgPSBDT05GSUdfU1lTX0JSMF9QUkVMSU07CisJbWVtY3RsLT5tZW1jX29yMCA9IENPTkZJR19TWVNfT1IwX1BSRUxJTTsKIAotI2lmIChkZWZpbmVkKENGR19PUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSkKLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMSA9IENGR19CUjFfUFJFTElNOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfT1IxX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSMV9QUkVMSU0pKQorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SM19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSM19QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSM19QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvaW50ZXJydXB0cy5jIGIvY3B1L21wYzV4eC9pbnRlcnJ1cHRzLmMKaW5kZXggYTRmNDdjNy4uMTY3NTQzZiAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21wYzV4eC9pbnRlcnJ1cHRzLmMKQEAgLTUyLDExICs1MiwxMSBAQAogCiBpbnQgaW50ZXJydXB0X2luaXRfY3B1ICh1bG9uZyAqZGVjcmVtZW50ZXJfY291bnQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJaW50IHZlYzsKIAogCS8qIERlY3JlbWVudGVyIHVzZWQgaGVyZSBmb3Igc3RhdHVzIGxlZCAqLwotCSpkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsayAoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsgKCkgLyBDT05GSUdfU1lTX0haOwogCiAJLyogRGlzYWJsZSBhbGwgaW50ZXJydXB0cyAqLwogCWltbXItPmltX3NpdV9jb25mLnNjX3NpbWFzayA9IDA7CkBAIC03NCw3ICs3NCw3IEBACiAgKi8KIHZvaWQgZXh0ZXJuYWxfaW50ZXJydXB0IChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgaXJxOwogCXVsb25nIHNpbWFzaywgbmV3bWFzazsKIAl1bG9uZyB2ZWMsIHZfYml0OwpAQCAtMTMwLDcgKzEzMCw3IEBACiB2b2lkIGlycV9pbnN0YWxsX2hhbmRsZXIgKGludCB2ZWMsIGludGVycnVwdF9oYW5kbGVyX3QgKiBoYW5kbGVyLAogCQkJCQkJICB2b2lkICphcmcpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJLyogU0lVIGludGVycnVwdCAqLwogCWlmIChpcnFfdmVjc1t2ZWNdLmhhbmRsZXIgIT0gTlVMTCkgewogCQlwcmludGYgKCJTSVUgaW50ZXJydXB0ICVkIDB4JXhcbiIsCkBAIC0xNDgsNyArMTQ4LDcgQEAKIAogdm9pZCBpcnFfZnJlZV9oYW5kbGVyIChpbnQgdmVjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCS8qIFNJVSBpbnRlcnJ1cHQgKi8KICNpZiAwCiAJcHJpbnRmICgiRnJlZSBDUE0gaW50ZXJydXB0IGZvciB2ZWN0b3IgJWRcbiIsCkBAIC0xNjUsNyArMTY1LDcgQEAKICAqLwogdm9pZCB0aW1lcl9pbnRlcnJ1cHRfY3B1IChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmIDAKIAlwcmludGYgKCIqKiogVGltZXIgSW50ZXJydXB0ICoqKiAiKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvc2VyaWFsLmMgYi9jcHUvbXBjNXh4L3NlcmlhbC5jCmluZGV4IDM5ZjU3YTEuLjg4YzZkYjggMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHgvc2VyaWFsLmMKKysrIGIvY3B1L21wYzV4eC9zZXJpYWwuYwpAQCAtNDgsNyArNDgsNyBAQAogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJc2VyaWFsX3NldGJyZygpOwogCkBAIC02NSw3ICs2NSw3IEBACiAKIHZvaWQgc2VyaWFsX3B1dGMoY29uc3QgY2hhciBjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCS8qIFRlc3QgZm9yIGNvbXBsZXRpdGlvbiAqLwogCWlmKHJlYWR5X3RvX3NlbmQoKSkgewpAQCAtODcsNyArODcsNyBAQAogCiBpbnQgc2VyaWFsX2dldGModm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc2hvcnQgc3RhdHVzOwogCXVuc2lnbmVkIGNoYXIgdG1wOwogCkBAIC0xMTUsNyArMTE1LDcgQEAKIAogaW50IHNlcmlhbF90c3RjKCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJc2hvcnQgc3RhdHVzOwogCiAJLyogTmV3IGRhdGEgY2hhcmFjdGVyID8gKi8KQEAgLTEyOSw3ICsxMjksNyBAQAogCiB2b2lkIHNlcmlhbF9zZXRicmcgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXNob3J0IHNjeGJyOwogCiAJLyogU2V0IGJhdWRyYXRlICovCkBAIC0xNTEsNyArMTUxLDcgQEAKIAogaW50IHJlYWR5X3RvX3NlbmQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc2hvcnQgc3RhdHVzOwogCiAJZG8gewpkaWZmIC0tZ2l0IGEvY3B1L21wYzV4eC9zcGVlZC5jIGIvY3B1L21wYzV4eC9zcGVlZC5jCmluZGV4IDdiN2M1YjkuLmVhNWMxZGUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHgvc3BlZWQuYworKysgYi9jcHUvbXBjNXh4L3NwZWVkLmMKQEAgLTM4LDE0ICszOCwxNCBAQAogICovCiBpbnQgZ2V0X2Nsb2NrcyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmbmRlZglDT05GSUdfNXh4X0dDTEtfRlJFUQogCXVpbnQgZGl2ZiA9IChpbW1yLT5pbV9jbGtyc3QuY2FyX3BscHJjciAmIFBMUFJDUl9ESVZGX01TSyk7CiAJdWludCBtZiA9ICgoaW1tci0+aW1fY2xrcnN0LmNhcl9wbHByY3IgJiBQTFBSQ1JfTUZfTVNLKSA+PiBQTFBSQ1JfTUZfU0hJRlQpOwogCXVsb25nIHZjb291dDsKIAotCXZjb291dCA9IChDRkdfT1NDX0NMSyAvIChkaXZmICsgMSkpICogKG1mICsgMSkgKiAyOworCXZjb291dCA9IChDT05GSUdfU1lTX09TQ19DTEsgLyAoZGl2ZiArIDEpKSAqIChtZiArIDEpICogMjsKIAlpZihpbW1yLT5pbV9jbGtyc3QuY2FyX3BscHJjciAmIFBMUFJDUl9DU1JDX01TSykgewogCQlnZC0+Y3B1X2NsayA9IHZjb291dCAvICgyXigoKGltbXItPmltX2Nsa3JzdC5jYXJfc2NjciAmIFNDQ1JfREZOTF9NU0spID4+IFNDQ1JfREZOTF9TSElGVCkgKyAxKSk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvc3BpLmMgYi9jcHUvbXBjNXh4L3NwaS5jCmluZGV4IDNjMTg3YmUuLjNjYTE1ZWEgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHgvc3BpLmMKKysrIGIvY3B1L21wYzV4eC9zcGkuYwpAQCAtMTExLDcgKzExMSw3IEBACiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tcjsKIAl2b2xhdGlsZSBxc21jbTV4eF90ICpxc21jbTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSAgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopICBDT05GSUdfU1lTX0lNTVI7CiAJcXNtY20gPSAocXNtY201eHhfdCAqKSZpbW1yLT5pbV9xc21jbTsKIAogCXFzbWNtLT5xc21jbV9xc21jciA9IDA7IC8qIGFsbCBhY2Nlc3NlcyBlbmFibGVkICovCkBAIC0xMjgsNyArMTI4LDcgQEAKIAkgKiBQUVNQQVJbMDZdID0gMSBbMHgwMjAwXSAtPiBQRVJJOiAoU1BJTU9TSSkKIAkgKiBQUVNQQVJbMDddID0gMSBbMHgwMTAwXSAtPiBQRVJJOiAoU1BJTUlTTykKIAkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCXFzbWNtLT5xc21jbV9wcXNwYXIgPSAgMHgzIHwgKENGR19TUElfQ1NfVVNFRCA8PCAzKTsKKwlxc21jbS0+cXNtY21fcHFzcGFyID0gIDB4MyB8IChDT05GSUdfU1lTX1NQSV9DU19VU0VEIDw8IDMpOwogCiAJIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICogRERSUVNbMDBdID0gMCByZXNlcnZlZApAQCAtMTYwLDcgKzE2MCw3IEBACiAJICogUE9SVFFTWzE0XSA9IDAgWzB4MDAwMl0gLT4gU1BJTU9TSSBPdXRwdXQKIAkgKiBQT1JUUVNbMTVdID0gMCBbMHgwMDAxXSAtPiBTUElNSVNPIElucHV0CiAJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQlxc21jbS0+cXNtY21fcG9ydHFzIHw9IChDRkdfU1BJX0NTX0JBU0UgPDwgMyk7CisJcXNtY20tPnFzbWNtX3BvcnRxcyB8PSAoQ09ORklHX1NZU19TUElfQ1NfQkFTRSA8PCAzKTsKIAkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCSAqIENvbnRyb2xsIFJlZ2lzdGVyIDAKIAkgKiBTUENSMFswMF0gPSAxICgweDgwMDApIE1hc3RlcgpAQCAtMjM1LDcgKzIzNSw3IEBACiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tcjsKIAl2b2xhdGlsZSBxc21jbTV4eF90ICpxc21jbTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSAgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopICBDT05GSUdfU1lTX0lNTVI7CiAJcXNtY20gPSAocXNtY201eHhfdCAqKSZpbW1yLT5pbV9xc21jbTsKIAlmb3IoaT0wO2k8MzI7aSsrKSB7CiAJCSBxc21jbS0+cXNtY21fcmVjcmFtW2ldPTB4MDAwMDsKQEAgLTMwOCw3ICszMDgsNyBAQAogCXZvbGF0aWxlIGltbWFwX3QgKmltbXI7CiAJdm9sYXRpbGUgcXNtY201eHhfdCAqcXNtY207CiAKLQlpbW1yID0gKGltbWFwX3QgKikgIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSAgQ09ORklHX1NZU19JTU1SOwogCXFzbWNtID0gKHFzbWNtNXh4X3QgKikmaW1tci0+aW1fcXNtY207CiAKIAlmb3IoaT0wO2k8MzI7aSsrKSB7CkBAIC0zNjQsMTUgKzM2NCwxNSBAQAogCWludCBpOwogCWludCB0bTsKIAl1c2hvcnQgc3RhdHVzOwotCWltbXIgPSAoaW1tYXBfdCAqKSAgQ0ZHX0lNTVI7CisJaW1tciA9IChpbW1hcF90ICopICBDT05GSUdfU1lTX0lNTVI7CiAJcXNtY20gPSAocXNtY201eHhfdCAqKSZpbW1yLT5pbV9xc21jbTsKIAlEUFJJTlQgKCgiKioqIHNwaV94ZmVyIGVudGVyZWQgY291bnQgJWQqKipcbiIsY291bnQpKTsKIAogCS8qIFNldCBDUyBmb3IgZGV2aWNlICovCiAJZm9yKGk9MDtpPChjb3VudC0xKTtpKyspCi0JCXFzbWNtLT5xc21jbV9jb21kcmFtW2ldID0gMHg4MCB8IENGR19TUElfQ1NfQUNUOyAgLyogQ1MzIGlzIGNvbm5lY3RlZCB0byB0aGUgU1BJIEVFUFJPTSAqLworCQlxc21jbS0+cXNtY21fY29tZHJhbVtpXSA9IDB4ODAgfCBDT05GSUdfU1lTX1NQSV9DU19BQ1Q7ICAvKiBDUzMgaXMgY29ubmVjdGVkIHRvIHRoZSBTUEkgRUVQUk9NICovCiAKLQlxc21jbS0+cXNtY21fY29tZHJhbVtpXSA9IENGR19TUElfQ1NfQUNUOyAvKiBDUzMgaXMgY29ubmVjdGVkIHRvIHRoZSBTUEkgRUVQUk9NICovCisJcXNtY20tPnFzbWNtX2NvbWRyYW1baV0gPSBDT05GSUdfU1lTX1NQSV9DU19BQ1Q7IC8qIENTMyBpcyBjb25uZWN0ZWQgdG8gdGhlIFNQSSBFRVBST00gKi8KIAlxc21jbS0+cXNtY21fc3BjcjI9KChjb3VudC0xKSYweDFGKTw8ODsKIAogCURQUklOVCAoKCIqKiogc3BpX3hmZXI6IEJ5dGVzIHRvIGJlIHhmZXJyZWQ6ICVkICoqKlxuIiwgY291bnQpKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHgvc3RhcnQuUyBiL2NwdS9tcGM1eHgvc3RhcnQuUwppbmRleCAwNjM3MDAzLi5mMmZmZTg0IDEwMDY0NAotLS0gYS9jcHUvbXBjNXh4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzV4eC9zdGFydC5TCkBAIC04Nyw3ICs4Nyw3IEBACiAJLmdsb2JsCV9zdGFydAogX3N0YXJ0OgogCW1mc3ByCXIzLCA2MzgKLQlsaQlyNCwgQ0ZHX0lTQgkJCS8qIFNldCBJU0IgYml0ICovCisJbGkJcjQsIENPTkZJR19TWVNfSVNCCQkJLyogU2V0IElTQiBiaXQgKi8KIAlvcglyMywgcjMsIHI0CiAJbXRzcHIJNjM4LCByMwogCWxpCXIyMSwgQk9PVEZMQUdfQ09MRAkJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0gJKi8KQEAgLTEyMSwxMiArMTIxLDEyIEBACiAJLyogdGhlIGV4dGVybmFsIGZsYXNoIGFjY2VzcyBvbiBQQVRJIGZhaWxzIGlmIHByb2dyYW1taW5nIHRoZSBQTEwgdG8gNDBNSHouCiAJICogQ29weSB0aGUgUExMIHByb2dyYW1taW5nIGNvZGUgdG8gdGhlIGludGVybmFsIFJBTSBhbmQgZXhlY3V0ZSBpdAogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbGlzCXIzLCBDRkdfTU9OSVRPUl9CQVNFQGgKLQlvcmkJcjMsIHIzLCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJYWRkaQlyMywgcjMsIHBsbF9wcm9nX2NvZGVfc3RhcnQgLSBfc3RhcnQgKyBFWENfT0ZGX1NZU19SRVNFVAogCi0JbGlzCXI0LCBDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lOSVRfUkFNX0FERFJAbAorCWxpcwlyNCwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAbAogCW10bHIJcjQKIAlhZGRpcwlyNSwwLDB4MAogCW9yaQlyNSxyNSwoKHBsbF9wcm9nX2NvZGVfZW5kIC0gcGxsX3Byb2dfY29kZV9zdGFydCkgPj4yKQpAQCAtMTQ0LDggKzE0NCw4IEBACiAJICogQ2FsY3VsYXRlIGFic29sdXRlIGFkZHJlc3MgaW4gRkxBU0ggYW5kIGp1bXAgdGhlcmUKIAkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0JbGlzCXIzLCBDRkdfTU9OSVRPUl9CQVNFQGgKLQlvcmkJcjMsIHIzLCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJYWRkaQlyMywgcjMsIGluX2ZsYXNoIC0gX3N0YXJ0ICsgRVhDX09GRl9TWVNfUkVTRVQKIAltdGxyCXIzCiAJYmxyCkBAIC0xNTUsOSArMTU1LDkgQEAKIAkvKiBJbml0aWFsaXplIHNvbWUgU1BScyB0aGF0IGFyZSBoYXJkIHRvIGFjY2VzcyBmcm9tIEMJCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQlsaXMgICAgIHIzLCBDRkdfSU1NUkBoCQkJLyogUGFzcyBJTU1SIGFzIGFyZzEgdG8gQyByb3V0aW5lICovCi0JbGlzCXIyLCBDRkdfSU5JVF9TUF9BRERSQGgKLQlvcmkJcjEsIHIyLCBDRkdfSU5JVF9TUF9BRERSQGwJLyogU2V0IHVwIHRoZSBzdGFjayBpbiBpbnRlcm5hbCBTUkFNICovCisJbGlzICAgICByMywgQ09ORklHX1NZU19JTU1SQGgJCQkvKiBQYXNzIElNTVIgYXMgYXJnMSB0byBDIHJvdXRpbmUgKi8KKwlsaXMJcjIsIENPTkZJR19TWVNfSU5JVF9TUF9BRERSQGgKKwlvcmkJcjEsIHIyLCBDT05GSUdfU1lTX0lOSVRfU1BfQUREUkBsCS8qIFNldCB1cCB0aGUgc3RhY2sgaW4gaW50ZXJuYWwgU1JBTSAqLwogCS8qIE5vdGU6IFIwIGlzIHN0aWxsIDAgaGVyZSAqLwogCXN0d3UJcjAsIC00KHIxKQkJCS8qIENsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KIAlzdHd1CXIwLCAtNChyMSkJCQkvKiBzdGFjayBiYWNrdHJhY2VzIHRlcm1pbmF0ZSBjbGVhbmx5CSovCkBAIC0xNzMsOCArMTczLDggQEAKIAogCS8qIFNldCB1cCBkZWJ1ZyBtb2RlIGVudHJ5ICovCiAKLQlsaXMJcjIsIENGR19ERVJAaAotCW9yaQlyMiwgcjIsIENGR19ERVJAbAorCWxpcwlyMiwgQ09ORklHX1NZU19ERVJAaAorCW9yaQlyMiwgcjIsIENPTkZJR19TWVNfREVSQGwKIAltdHNwcglERVIsIHIyCiAKIAkvKiBMZXQgdGhlIEMtY29kZSBzZXQgdXAgdGhlIHJlc3QJCQkJCSovCkBAIC0zODUsMTUgKzM4NSwxNSBAQAogCW1yCXIxMCwgcjUJCS8qIFNhdmUgY29weSBvZiBtb25pdG9yIGRlc3RpbmF0aW9uIEFkZHJlc3MgaW4gU1JBTSAqLwogCiAJbXIJcjMsICByNQkJCQkvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCi0JbGlzCXI0LCBDRkdfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KLQlvcmkJcjQsIHI0LCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJbHd6CXI1LCBHT1QoX19pbml0X2VuZCkKIAlzdWIJcjUsIHI1LCByNAogCiAJLyoKIAkgKiBGaXggR09UIHBvaW50ZXI6CiAJICoKLQkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENGR19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcworCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcwogCSAqCiAJICogT2Zmc2V0OgogCSAqLwpAQCAtNTgxLDE1ICs1ODEsMTUgQEAKICNpZiBkZWZpbmVkKENPTkZJR19QQVRJKQogLyogUHJvZ3JhbSB0aGUgUExMICovCiBwbGxfcHJvZ19jb2RlX3N0YXJ0OgotCWxpcwlyNCwgKENGR19JTU1SICsgMHgwMDJmYzM4NClAaAotCW9yaQlyNCwgcjQsIChDRkdfSU1NUiArIDB4MDAyZmMzODQpQGwKKwlsaXMJcjQsIChDT05GSUdfU1lTX0lNTVIgKyAweDAwMmZjMzg0KUBoCisJb3JpCXI0LCByNCwgKENPTkZJR19TWVNfSU1NUiArIDB4MDAyZmMzODQpQGwKIAlsaXMJcjMsICgweDU1Y2NhYTMzKUBoCiAJb3JpCXIzLCByMywgKDB4NTVjY2FhMzMpQGwKIAlzdHcJcjMsIDAocjQpCi0JbGlzCXI0LCAoQ0ZHX0lNTVIgKyAweDAwMmZjMjg0KUBoCi0Jb3JpCXI0LCByNCwgKENGR19JTU1SICsgMHgwMDJmYzI4NClAbAotCWxpcwlyMywgQ0ZHX1BMUFJDUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX1BMUFJDUkBsCisJbGlzCXI0LCAoQ09ORklHX1NZU19JTU1SICsgMHgwMDJmYzI4NClAaAorCW9yaQlyNCwgcjQsIChDT05GSUdfU1lTX0lNTVIgKyAweDAwMmZjMjg0KUBsCisJbGlzCXIzLCBDT05GSUdfU1lTX1BMUFJDUkBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19QTFBSQ1JAbAogCXN0dwlyMywgMChyNCkKIAlhZGRpcwlyMywwLDB4MAogCW9yaQlyMyxyMywweEEwMDAKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L2NwdS5jIGIvY3B1L21wYzV4eHgvY3B1LmMKaW5kZXggMTMyNmMzYy4uOWM2YWI3NiAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvY3B1LmMKKysrIGIvY3B1L21wYzV4eHgvY3B1LmMKQEAgLTExOCw3ICsxMTgsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX09GX0xJQkZEVCkgJiYgZGVmaW5lZCAoQ09ORklHX09GX0JPQVJEX1NFVFVQKQogdm9pZCBmdF9jcHVfc2V0dXAodm9pZCAqYmxvYiwgYmRfdCAqYmQpCiB7Ci0JaW50IGRpdiA9IGluXzgoKHZvaWQqKUNGR19NQkFSICsgMHgyMDQpICYgMHgwMDIwID8gOCA6IDQ7CisJaW50IGRpdiA9IGluXzgoKHZvaWQqKUNPTkZJR19TWVNfTUJBUiArIDB4MjA0KSAmIDB4MDAyMCA/IDggOiA0OwogCWNoYXIgKiBjcHVfcGF0aCA9ICIvY3B1cy8iIE9GX0NQVTsKICNpZmRlZiBDT05GSUdfTVBDNXh4eF9GRUMKIAljaGFyICogZXRoX3BhdGggPSAiLyIgT0ZfU09DICIvZXRoZXJuZXRAMzAwMCI7CmRpZmYgLS1naXQgYS9jcHUvbXBjNXh4eC9jcHVfaW5pdC5jIGIvY3B1L21wYzV4eHgvY3B1X2luaXQuYwppbmRleCBiYzYyMDFlLi4xNGJkNDE3IDEwMDY0NAotLS0gYS9jcHUvbXBjNXh4eC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tcGM1eHh4L2NwdV9pbml0LmMKQEAgLTM1LDExICszNSwxMSBAQAogdm9pZCBjcHVfaW5pdF9mICh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgYWRkZWNyID0gKDEgPDwgMjUpOyAvKiBCb290X0NTICovCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkgJiYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkgJiYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKIAlhZGRlY3IgfD0gKDEgPDwgMjIpOyAvKiBTRFJBTSBlbmFibGUgKi8KICNlbmRpZgogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0ICgodm9pZCAqKSBnZCwgMCwgc2l6ZW9mIChnZF90KSk7CkBAIC00Nyw5NSArNDcsOTUgQEAKIAkvKgogCSAqIE1lbW9yeSBDb250cm9sbGVyOiBjb25maWd1cmUgY2hpcCBzZWxlY3RzIGFuZCBlbmFibGUgdGhlbQogCSAqLwotI2lmIGRlZmluZWQoQ0ZHX0JPT1RDU19TVEFSVCkgJiYgZGVmaW5lZChDRkdfQk9PVENTX1NJWkUpCi0JKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCk7Ci0JKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RPUCA9IFNUT1BfUkVHKENGR19CT09UQ1NfU1RBUlQsCi0JCQlDRkdfQk9PVENTX1NJWkUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQpICYmIGRlZmluZWQoQ09ORklHX1NZU19CT09UQ1NfU0laRSkKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0JPT1RDU19TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCk7CisJKih2dV9sb25nICopTVBDNVhYWF9CT09UQ1NfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJULAorCQkJQ09ORklHX1NZU19CT09UQ1NfU0laRSk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19CT09UQ1NfQ0ZHKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX0NGRyA9IENGR19CT09UQ1NfQ0ZHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CT09UQ1NfQ0ZHKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQk9PVENTX0NGRyA9IENPTkZJR19TWVNfQk9PVENTX0NGRzsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ1MwX1NUQVJUKSAmJiBkZWZpbmVkKENGR19DUzBfU0laRSkKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVEFSVCA9IFNUQVJUX1JFRyhDRkdfQ1MwX1NUQVJUKTsKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMF9TVE9QID0gU1RPUF9SRUcoQ0ZHX0NTMF9TVEFSVCwgQ0ZHX0NTMF9TSVpFKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX1NUQVJUKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MwX1NJWkUpCisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfU1RBUlQgPSBTVEFSVF9SRUcoQ09ORklHX1NZU19DUzBfU1RBUlQpOworCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MwX1NUT1AgPSBTVE9QX1JFRyhDT05GSUdfU1lTX0NTMF9TVEFSVCwgQ09ORklHX1NZU19DUzBfU0laRSk7CiAJLyogQ1MwIGFuZCBCT09UX0NTIGNhbm5vdCBiZSBlbmFibGVkIGF0IG9uY2UuICovCiAJLyoJYWRkZWNyIHw9ICgxIDw8IDE2KTsgKi8KICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0NTMF9DRkcpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzBfQ0ZHID0gQ0ZHX0NTMF9DRkc7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTMF9DRkcpCisJKih2dV9sb25nICopTVBDNVhYWF9DUzBfQ0ZHID0gQ09ORklHX1NZU19DUzBfQ0ZHOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19DUzFfU1RBUlQpICYmIGRlZmluZWQoQ0ZHX0NTMV9TSVpFKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MxX1NUQVJUID0gU1RBUlRfUkVHKENGR19DUzFfU1RBUlQpOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MxX1NUT1AgPSBTVE9QX1JFRyhDRkdfQ1MxX1NUQVJULCBDRkdfQ1MxX1NJWkUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfU1RBUlQpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzFfU0laRSkKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMV9TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0NTMV9TVEFSVCk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzFfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfQ1MxX1NUQVJULCBDT05GSUdfU1lTX0NTMV9TSVpFKTsKIAlhZGRlY3IgfD0gKDEgPDwgMTcpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQ1MxX0NGRykKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMV9DRkcgPSBDRkdfQ1MxX0NGRzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MxX0NGRykKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMV9DRkcgPSBDT05GSUdfU1lTX0NTMV9DRkc7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NTMl9TVEFSVCkgJiYgZGVmaW5lZChDRkdfQ1MyX1NJWkUpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzJfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0NTMl9TVEFSVCk7Ci0JKih2dV9sb25nICopTVBDNVhYWF9DUzJfU1RPUCA9IFNUT1BfUkVHKENGR19DUzJfU1RBUlQsIENGR19DUzJfU0laRSk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9TVEFSVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTMl9TSVpFKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX1NUQVJUID0gU1RBUlRfUkVHKENPTkZJR19TWVNfQ1MyX1NUQVJUKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTMl9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19DUzJfU1RBUlQsIENPTkZJR19TWVNfQ1MyX1NJWkUpOwogCWFkZGVjciB8PSAoMSA8PCAxOCk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19DUzJfQ0ZHKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX0NGRyA9IENGR19DUzJfQ0ZHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzJfQ0ZHKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MyX0NGRyA9IENPTkZJR19TWVNfQ1MyX0NGRzsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ1MzX1NUQVJUKSAmJiBkZWZpbmVkKENGR19DUzNfU0laRSkKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTM19TVEFSVCA9IFNUQVJUX1JFRyhDRkdfQ1MzX1NUQVJUKTsKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTM19TVE9QID0gU1RPUF9SRUcoQ0ZHX0NTM19TVEFSVCwgQ0ZHX0NTM19TSVpFKTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX1NUQVJUKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQ1MzX1NJWkUpCisJKih2dV9sb25nICopTVBDNVhYWF9DUzNfU1RBUlQgPSBTVEFSVF9SRUcoQ09ORklHX1NZU19DUzNfU1RBUlQpOworCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1MzX1NUT1AgPSBTVE9QX1JFRyhDT05GSUdfU1lTX0NTM19TVEFSVCwgQ09ORklHX1NZU19DUzNfU0laRSk7CiAJYWRkZWNyIHw9ICgxIDw8IDE5KTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0NTM19DRkcpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzNfQ0ZHID0gQ0ZHX0NTM19DRkc7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTM19DRkcpCisJKih2dV9sb25nICopTVBDNVhYWF9DUzNfQ0ZHID0gQ09ORklHX1NZU19DUzNfQ0ZHOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19DUzRfU1RBUlQpICYmIGRlZmluZWQoQ0ZHX0NTNF9TSVpFKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M0X1NUQVJUID0gU1RBUlRfUkVHKENGR19DUzRfU1RBUlQpOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M0X1NUT1AgPSBTVE9QX1JFRyhDRkdfQ1M0X1NUQVJULCBDRkdfQ1M0X1NJWkUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfU1RBUlQpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzRfU0laRSkKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNF9TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0NTNF9TVEFSVCk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzRfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfQ1M0X1NUQVJULCBDT05GSUdfU1lTX0NTNF9TSVpFKTsKIAlhZGRlY3IgfD0gKDEgPDwgMjApOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQ1M0X0NGRykKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNF9DRkcgPSBDRkdfQ1M0X0NGRzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1M0X0NGRykKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNF9DRkcgPSBDT05GSUdfU1lTX0NTNF9DRkc7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NTNV9TVEFSVCkgJiYgZGVmaW5lZChDRkdfQ1M1X1NJWkUpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzVfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0NTNV9TVEFSVCk7Ci0JKih2dV9sb25nICopTVBDNVhYWF9DUzVfU1RPUCA9IFNUT1BfUkVHKENGR19DUzVfU1RBUlQsIENGR19DUzVfU0laRSk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9TVEFSVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTNV9TSVpFKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M1X1NUQVJUID0gU1RBUlRfUkVHKENPTkZJR19TWVNfQ1M1X1NUQVJUKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNV9TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19DUzVfU1RBUlQsIENPTkZJR19TWVNfQ1M1X1NJWkUpOwogCWFkZGVjciB8PSAoMSA8PCAyMSk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19DUzVfQ0ZHKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M1X0NGRyA9IENGR19DUzVfQ0ZHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzVfQ0ZHKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M1X0NGRyA9IENPTkZJR19TWVNfQ1M1X0NGRzsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKIAlhZGRlY3IgfD0gMTsKLSNpZiBkZWZpbmVkKENGR19DUzZfU1RBUlQpICYmIGRlZmluZWQoQ0ZHX0NTNl9TSVpFKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M2X1NUQVJUID0gU1RBUlRfUkVHKENGR19DUzZfU1RBUlQpOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M2X1NUT1AgPSBTVE9QX1JFRyhDRkdfQ1M2X1NUQVJULCBDRkdfQ1M2X1NJWkUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzZfU1RBUlQpICYmIGRlZmluZWQoQ09ORklHX1NZU19DUzZfU0laRSkKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNl9TVEFSVCA9IFNUQVJUX1JFRyhDT05GSUdfU1lTX0NTNl9TVEFSVCk7CisJKih2dV9sb25nICopTVBDNVhYWF9DUzZfU1RPUCA9IFNUT1BfUkVHKENPTkZJR19TWVNfQ1M2X1NUQVJULCBDT05GSUdfU1lTX0NTNl9TSVpFKTsKIAlhZGRlY3IgfD0gKDEgPDwgMjYpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfQ1M2X0NGRykKLQkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNl9DRkcgPSBDRkdfQ1M2X0NGRzsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1M2X0NGRykKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTNl9DRkcgPSBDT05GSUdfU1lTX0NTNl9DRkc7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0NTN19TVEFSVCkgJiYgZGVmaW5lZChDRkdfQ1M3X1NJWkUpCi0JKih2dV9sb25nICopTVBDNVhYWF9DUzdfU1RBUlQgPSBTVEFSVF9SRUcoQ0ZHX0NTN19TVEFSVCk7Ci0JKih2dV9sb25nICopTVBDNVhYWF9DUzdfU1RPUCA9IFNUT1BfUkVHKENGR19DUzdfU1RBUlQsIENGR19DUzdfU0laRSk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0NTN19TVEFSVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0NTN19TSVpFKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M3X1NUQVJUID0gU1RBUlRfUkVHKENPTkZJR19TWVNfQ1M3X1NUQVJUKTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX0NTN19TVE9QID0gU1RPUF9SRUcoQ09ORklHX1NZU19DUzdfU1RBUlQsIENPTkZJR19TWVNfQ1M3X1NJWkUpOwogCWFkZGVjciB8PSAoMSA8PCAyNyk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19DUzdfQ0ZHKQotCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M3X0NGRyA9IENGR19DUzdfQ0ZHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DUzdfQ0ZHKQorCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1M3X0NGRyA9IENPTkZJR19TWVNfQ1M3X0NGRzsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQ1NfQlVSU1QpCi0JKih2dV9sb25nICopTVBDNVhYWF9DU19CVVJTVCA9IENGR19DU19CVVJTVDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQ1NfQlVSU1QpCisJKih2dV9sb25nICopTVBDNVhYWF9DU19CVVJTVCA9IENPTkZJR19TWVNfQ1NfQlVSU1Q7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19DU19ERUFEQ1lDTEUpCi0JKih2dV9sb25nICopTVBDNVhYWF9DU19ERUFEQ1lDTEUgPSBDRkdfQ1NfREVBRENZQ0xFOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19DU19ERUFEQ1lDTEUpCisJKih2dV9sb25nICopTVBDNVhYWF9DU19ERUFEQ1lDTEUgPSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRTsKICNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19NUEM1MjAwICovCiAKQEAgLTE0NCw4ICsxNDQsOCBAQAogCSoodnVfbG9uZyAqKU1QQzVYWFhfQ1NfQ1RSTCA9ICgxIDw8IDI0KTsKIAogCS8qIFNldHVwIHBpbiBtdWx0aXBsZXhpbmcgKi8KLSNpZiBkZWZpbmVkKENGR19HUFNfUE9SVF9DT05GSUcpCi0JKih2dV9sb25nICopTVBDNVhYWF9HUFNfUE9SVF9DT05GSUcgPSBDRkdfR1BTX1BPUlRfQ09ORklHOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcpCisJKih2dV9sb25nICopTVBDNVhYWF9HUFNfUE9SVF9DT05GSUcgPSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRzsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKQEAgLTE1NCwyOCArMTU0LDI4IEBACiAKIAkvKiBFbmFibGUgc25vb3BpbmcgZm9yIFJBTSAqLwogCSoodnVfbG9uZyAqKShNUEM1WFhYX1hMQkFSQiArIDB4NDApIHw9ICgxIDw8IDE1KTsKLQkqKHZ1X2xvbmcgKikoTVBDNVhYWF9YTEJBUkIgKyAweDcwKSA9IENGR19TRFJBTV9CQVNFIHwgMHgxZDsKKwkqKHZ1X2xvbmcgKikoTVBDNVhYWF9YTEJBUkIgKyAweDcwKSA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IDB4MWQ7CiAKLSMgaWYgZGVmaW5lZChDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjIGlmIGRlZmluZWQoQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSykKIAkvKiBNb3Rvcm9sYSByZXBvcnRzIElQQiBzaG91bGQgYmV0dGVyIHJ1biBhdCAxMzMgTUh6LiAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfQURERUNSIHw9IDE7CiAJLyogcGNpX2Nsa19zZWwgPSAweDAyLCBpcGJfY2xrX3NlbCA9IDB4MDA7ICovCiAJYWRkZWNyID0gKih2dV9sb25nICopTVBDNVhYWF9DRE1fQ0ZHOwogCWFkZGVjciAmPSB+MHgxMDM7Ci0jICBpZiBkZWZpbmVkKENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyKQorIyAgaWYgZGVmaW5lZChDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIpCiAJLyogcGNpX2Nsa19zZWwgPSAweDAxIC0+IElQQl9DTEsvMiAqLwogCWFkZGVjciB8PSAweDAxOwogIyAgZWxzZQogCS8qIHBjaV9jbGtfc2VsID0gMHgwMiAtPiBYTEJfQ0xLLzQgPSBJUEJfQ0xLLzQgKi8KIAlhZGRlY3IgfD0gMHgwMjsKLSMgIGVuZGlmIC8qIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyICovCisjICBlbmRpZiAvKiBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIgKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX0NETV9DRkcgPSBhZGRlY3I7Ci0jIGVuZGlmCS8qIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSyAqLworIyBlbmRpZgkvKiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLICovCiAJLyogQ29uZmlndXJlIHRoZSBYTEIgQXJiaXRlciAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfWExCQVJCX01QUklFTiA9IDB4ZmY7CiAJKih2dV9sb25nICopTVBDNVhYWF9YTEJBUkJfTVBSSVZBTCA9IDB4MTExMTExMTE7CiAKLSMgaWYgZGVmaW5lZChDRkdfWExCX1BJUEVMSU5JTkcpCisjIGlmIGRlZmluZWQoQ09ORklHX1NZU19YTEJfUElQRUxJTklORykKIAkvKiBFbmFibGUgcGlwbGluaW5nICovCiAJKih2dV9sb25nICopKE1QQzVYWFhfWExCQVJCICsgMHg0MCkgJj0gfigxIDw8IDMxKTsKICMgZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L2Zpcm13YXJlX3NjX3Rhc2tfYmVzdGNvbW0uaW1wbC5TIGIvY3B1L21wYzV4eHgvZmlybXdhcmVfc2NfdGFza19iZXN0Y29tbS5pbXBsLlMKaW5kZXggYTA3Yzc3Ni4uZDE0MGM3ZSAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvZmlybXdhcmVfc2NfdGFza19iZXN0Y29tbS5pbXBsLlMKKysrIGIvY3B1L21wYzV4eHgvZmlybXdhcmVfc2NfdGFza19iZXN0Y29tbS5pbXBsLlMKQEAgLTIzLDcgKzIzLDcgQEAKIC5sb25nICAgMHgwMDAwMDAwMAogLmxvbmcgICAweDAwMDAwMDAwCiAubG9uZyAgIHNjRXRoZXJuZXRSZWN2X0NTYXZlIC0gdGFza1RhYmxlCS8qIFRhc2sgMCBjb250ZXh0IHNhdmUgc3BhY2UgKi8KLS5sb25nICAgQ0ZHX01CQVIKKy5sb25nICAgQ09ORklHX1NZU19NQkFSCiAuZ2xvYmwgc2NFdGhlcm5ldFhtaXRfRW50cnkKIHNjRXRoZXJuZXRYbWl0X0VudHJ5OgkJLyogVGFzayAxICovCiAubG9uZyAgIHNjRXRoZXJuZXRYbWl0X1REVCAtIHRhc2tUYWJsZQkvKiBUYXNrIDEgRGVzY3JpcHRvciBUYWJsZSAqLwpAQCAtMzMsNyArMzMsNyBAQAogLmxvbmcgICAweDAwMDAwMDAwCiAubG9uZyAgIDB4MDAwMDAwMDAKIC5sb25nICAgc2NFdGhlcm5ldFhtaXRfQ1NhdmUgLSB0YXNrVGFibGUJLyogVGFzayAxIGNvbnRleHQgc2F2ZSBzcGFjZSAqLwotLmxvbmcgICBDRkdfTUJBUgorLmxvbmcgICBDT05GSUdfU1lTX01CQVIKIAogCiAuZ2xvYmwgc2NFdGhlcm5ldFJlY3ZfVERUCkBAIC0xNTEsNyArMTUxLDcgQEAKIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbNl0gKi8KIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbN10gKi8KIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbOF0gKi8KLS5sb25nICAgKENGR19NQkFSICsgMHg4ODAwKQkvKiB2YXJbOV0gKi8KKy5sb25nICAgKENPTkZJR19TWVNfTUJBUiArIDB4ODgwMCkJLyogdmFyWzldICovCiAubG9uZyAgIDB4MDAwMDAwMDgJLyogdmFyWzEwXSAqLwogLmxvbmcgICAweDAwMDAwMDBjCS8qIHZhclsxMV0gKi8KIC5sb25nICAgMHg4MDAwMDAwMAkvKiB2YXJbMTJdICovCkBAIC0xOTAsNyArMTkwLDcgQEAKIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbOF0gKi8KIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbOV0gKi8KIC5sb25nICAgMHgwMDAwMDAwMAkvKiB2YXJbMTBdICovCi0ubG9uZyAgIChDRkdfTUJBUiArIDB4ODgwMCkJLyogdmFyWzExXSAqLworLmxvbmcgICAoQ09ORklHX1NZU19NQkFSICsgMHg4ODAwKQkvKiB2YXJbMTFdICovCiAubG9uZyAgIDB4MDAwMDAwMDAJLyogdmFyWzEyXSAqLwogLmxvbmcgICAweDgwMDAwMDAwCS8qIHZhclsxM10gKi8KIC5sb25nICAgMHgxMDAwMDAwMAkvKiB2YXJbMTRdICovCmRpZmYgLS1naXQgYS9jcHUvbXBjNXh4eC9pMmMuYyBiL2NwdS9tcGM1eHh4L2kyYy5jCmluZGV4IDBmMDJlNzguLjRkMTZiYmUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHh4L2kyYy5jCisrKyBiL2NwdS9tcGM1eHh4L2kyYy5jCkBAIC0zMCwxMiArMzAsMTIgQEAKICNpbmNsdWRlIDxtcGM1eHh4Lmg+CiAjaW5jbHVkZSA8aTJjLmg+CiAKLSNpZiAoQ0ZHX0kyQ19NT0RVTEUgPT0gMikKKyNpZiAoQ09ORklHX1NZU19JMkNfTU9EVUxFID09IDIpCiAjZGVmaW5lIEkyQ19CQVNFCU1QQzVYWFhfSTJDMgotI2VsaWYgKENGR19JMkNfTU9EVUxFID09IDEpCisjZWxpZiAoQ09ORklHX1NZU19JMkNfTU9EVUxFID09IDEpCiAjZGVmaW5lIEkyQ19CQVNFCU1QQzVYWFhfSTJDMQogI2Vsc2UKLSNlcnJvciBDRkdfSTJDX01PRFVMRSBpcyBub3QgcHJvcGVybHkgY29uZmlndXJlZAorI2Vycm9yIENPTkZJR19TWVNfSTJDX01PRFVMRSBpcyBub3QgcHJvcGVybHkgY29uZmlndXJlZAogI2VuZGlmCiAKICNkZWZpbmUgSTJDX1RJTUVPVVQJMTAwCmRpZmYgLS1naXQgYS9jcHUvbXBjNXh4eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbXBjNXh4eC9pbnRlcnJ1cHRzLmMKaW5kZXggODgxNmRkMS4uNjAzNTc3MSAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM1eHh4L2ludGVycnVwdHMuYwpAQCAtMjI5LDcgKzIyOSw3IEBACiAKIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUodWxvbmcgKiBkZWNyZW1lbnRlcl9jb3VudCkKIHsKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENPTkZJR19TWVNfSFo7CiAKIAltcGM1eHh4X2luaXRfaXJxKCk7CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3BjaV9tcGM1MjAwLmMgYi9jcHUvbXBjNXh4eC9wY2lfbXBjNTIwMC5jCmluZGV4IDJmMDFkNWMuLmEzMjUxYWIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHh4L3BjaV9tcGM1MjAwLmMKKysrIGIvY3B1L21wYzV4eHgvcGNpX21wYzUyMDAuYwpAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgPG1wYzV4eHguaD4KIAogLyogU3lzdGVtIFJBTSBtYXBwZWQgb3ZlciBQQ0kgKi8KLSNkZWZpbmUgQ09ORklHX1BDSV9NRU1PUllfQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENPTkZJR19QQ0lfTUVNT1JZX1BIWVMJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9NRU1PUllfQlVTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfUENJX01FTU9SWV9QSFlTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfUENJX01FTU9SWV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCiAKIC8qIFBDSUlXQ1IgYml0IGZpZWxkcyAqLwpAQCAtMTI1LDExICsxMjUsMTEgQEAKIAogCS8qIFNldCBjYWNoZSBsaW5lIHNpemUgKi8KIAkqKHZ1X2xvbmcgKilNUEM1WFhYX1BDSV9DRkcgPSAoKih2dV9sb25nICopTVBDNVhYWF9QQ0lfQ0ZHICYgfjB4ZmYpIHwKLQkJKENGR19DQUNIRUxJTkVfU0laRSAvIDQpOworCQkoQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAvIDQpOwogCiAJLyogTWFwIE1CQVIgdG8gUENJIHNwYWNlICovCi0JKih2dV9sb25nICopTVBDNVhYWF9QQ0lfQkFSMCA9IENGR19NQkFSOwotCSoodnVfbG9uZyAqKU1QQzVYWFhfUENJX1RCQVRSMCA9IENGR19NQkFSIHwgMTsKKwkqKHZ1X2xvbmcgKilNUEM1WFhYX1BDSV9CQVIwID0gQ09ORklHX1NZU19NQkFSOworCSoodnVfbG9uZyAqKU1QQzVYWFhfUENJX1RCQVRSMCA9IENPTkZJR19TWVNfTUJBUiB8IDE7CiAKIAkvKiBNYXAgUkFNIHRvIFBDSSBzcGFjZSAqLwogCSoodnVfbG9uZyAqKU1QQzVYWFhfUENJX0JBUjEgPSBDT05GSUdfUENJX01FTU9SWV9CVVMgfCAoMSA8PCAzKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3NlcmlhbC5jIGIvY3B1L21wYzV4eHgvc2VyaWFsLmMKaW5kZXggNDMwZDYzZi4uYThhMzg0YSAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvc2VyaWFsLmMKKysrIGIvY3B1L21wYzV4eHgvc2VyaWFsLmMKQEAgLTEwNiw3ICsxMDYsNyBAQAogCS8qIHNlbGVjdCBjbG9jayBzb3VyY2VzICovCiAjaWYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKIAlwc2MtPnBzY19jbG9ja19zZWxlY3QgPSAweGRkMDA7Ci0JYmFzZWNsayA9IChDRkdfTVBDNVhYWF9DTEtJTiArIDE2KSAvIDMyOworCWJhc2VjbGsgPSAoQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOICsgMTYpIC8gMzI7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCXBzYy0+cHNjX2Nsb2NrX3NlbGVjdCA9IDA7CiAJYmFzZWNsayA9IChnZC0+aXBiX2NsayArIDE2KSAvIDMyOwpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlY2xrLCBkaXY7CiAKICNpZiBkZWZpbmVkKENPTkZJR19NR1Q1MTAwKQotCWJhc2VjbGsgPSAoQ0ZHX01QQzVYWFhfQ0xLSU4gKyAxNikgLyAzMjsKKwliYXNlY2xrID0gKENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTiArIDE2KSAvIDMyOwogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKIAliYXNlY2xrID0gKGdkLT5pcGJfY2xrICsgMTYpIC8gMzI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3NwZWVkLmMgYi9jcHUvbXBjNXh4eC9zcGVlZC5jCmluZGV4IDc4NDdhZGMuLjBlM2U1NTIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHh4L3NwZWVkLmMKKysrIGIvY3B1L21wYzV4eHgvc3BlZWQuYwpAQCAtNDcsMTUgKzQ3LDE1IEBACiB7CiAJdWxvbmcgdmFsLCB2Y287CiAKLSNpZiAhZGVmaW5lZChDRkdfTVBDNVhYWF9DTEtJTikKLSNlcnJvciBjbG9jayBtZWFzdXJpbmcgbm90IGltcGxlbWVudGVkIHlldCAtIGRlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTikKKyNlcnJvciBjbG9jayBtZWFzdXJpbmcgbm90IGltcGxlbWVudGVkIHlldCAtIGRlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4KICNlbmRpZgogCiAJdmFsID0gKih2dV9sb25nICopTVBDNVhYWF9DRE1fUE9SQ0ZHOwogCWlmICh2YWwgJiAoMSA8PCA2KSkgewotCQl2Y28gPSBDRkdfTVBDNVhYWF9DTEtJTiAqIDEyOworCQl2Y28gPSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4gKiAxMjsKIAl9IGVsc2UgewotCQl2Y28gPSBDRkdfTVBDNVhYWF9DTEtJTiAqIDE2OworCQl2Y28gPSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4gKiAxNjsKIAl9CiAJaWYgKHZhbCAmICgxIDw8IDUpKSB7CiAJCWdkLT5idXNfY2xrID0gdmNvIC8gODsKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3N0YXJ0LlMgYi9jcHUvbXBjNXh4eC9zdGFydC5TCmluZGV4IDliMWJkNDguLmRlZmU3N2QgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM1eHh4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzV4eHgvc3RhcnQuUwpAQCAtMTA2LDE5ICsxMDYsMTkgQEAKIAkvKiBNb3ZlIENTQm9vdCBhbmQgYWRqdXN0IGluc3RydWN0aW9uIHBvaW50ZXIgICAgICAgICAgICAgICAgICAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0xPV0JPT1QpCi0jIGlmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0jICBlcnJvciBDRkdfTE9XQk9PVCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDRkdfUkFNQk9PVAotIyBlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MT1dCT09UKQorIyBpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKyMgIGVycm9yIENPTkZJR19TWVNfTE9XQk9PVCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDT05GSUdfU1lTX1JBTUJPT1QKKyMgZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAjIGlmIGRlZmluZWQoQ09ORklHX01HVDUxMDApCi0jICBlcnJvciBDRkdfTE9XQk9PVCBpcyBpbmNvbXBhdGlibGUgd2l0aCBNR1Q1MTAwCisjICBlcnJvciBDT05GSUdfU1lTX0xPV0JPT1QgaXMgaW5jb21wYXRpYmxlIHdpdGggTUdUNTEwMAogIyBlbmRpZiAvKiBDT05GSUdfTUdUNTEwMCAqLwotCWxpcwlyNCwgQ0ZHX0RFRkFVTFRfTUJBUkBoCi0JbGlzCXIzLAlTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVClAaAotCW9yaQlyMywgcjMsIFNUQVJUX1JFRyhDRkdfQk9PVENTX1NUQVJUKUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUkBoCisJbGlzCXIzLAlTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQpQGgKKwlvcmkJcjMsIHIzLCBTVEFSVF9SRUcoQ09ORklHX1NZU19CT09UQ1NfU1RBUlQpQGwKIAlzdHcJcjMsIDB4NChyNCkJCS8qIENTMCBzdGFydCAqLwotCWxpcwlyMywJU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCwgQ0ZHX0JPT1RDU19TSVpFKUBoCi0Jb3JpCXIzLCByMywgU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCwgQ0ZHX0JPT1RDU19TSVpFKUBsCisJbGlzCXIzLAlTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCwgQ09ORklHX1NZU19CT09UQ1NfU0laRSlAaAorCW9yaQlyMywgcjMsIFNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJULCBDT05GSUdfU1lTX0JPT1RDU19TSVpFKUBsCiAJc3R3CXIzLCAweDgocjQpCQkvKiBDUzAgc3RvcCAqLwogCWxpcwlyMywgICAgIDB4MDIwMTAwMDBAaAogCW9yaQlyMywgcjMsIDB4MDIwMTAwMDBAbApAQCAtMTMwLDIwICsxMzAsMjAgQEAKIAlibHIKIAogbG93Ym9vdF9yZWVudHJ5OgotCWxpcwlyMywJU1RBUlRfUkVHKENGR19CT09UQ1NfU1RBUlQpQGgKLQlvcmkJcjMsIHIzLCBTVEFSVF9SRUcoQ0ZHX0JPT1RDU19TVEFSVClAbAorCWxpcwlyMywJU1RBUlRfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUKUBoCisJb3JpCXIzLCByMywgU1RBUlRfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJUKUBsCiAJc3R3CXIzLCAweDRjKHI0KQkJLyogQm9vdCBzdGFydCAqLwotCWxpcwlyMywJU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCwgQ0ZHX0JPT1RDU19TSVpFKUBoCi0Jb3JpCXIzLCByMywgU1RPUF9SRUcoQ0ZHX0JPT1RDU19TVEFSVCwgQ0ZHX0JPT1RDU19TSVpFKUBsCisJbGlzCXIzLAlTVE9QX1JFRyhDT05GSUdfU1lTX0JPT1RDU19TVEFSVCwgQ09ORklHX1NZU19CT09UQ1NfU0laRSlAaAorCW9yaQlyMywgcjMsIFNUT1BfUkVHKENPTkZJR19TWVNfQk9PVENTX1NUQVJULCBDT05GSUdfU1lTX0JPT1RDU19TSVpFKUBsCiAJc3R3CXIzLCAweDUwKHI0KQkJLyogQm9vdCBzdG9wICovCiAJbGlzCXIzLCAgICAgMHgwMjAwMDAwMUBoCiAJb3JpCXIzLCByMywgMHgwMjAwMDAwMUBsCiAJc3R3CXIzLCAweDU0KHI0KQkJLyogQm9vdCBlbmFibGUsIENTMCBkaXNhYmxlICovCi0jZW5kaWYJLyogQ0ZHX0xPV0JPT1QgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RFRkFVTFRfTUJBUikgJiYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0JbGlzCXIzLCBDRkdfTUJBUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX01CQVJAbAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ERUZBVUxUX01CQVIpICYmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKwlsaXMJcjMsIENPTkZJR19TWVNfTUJBUkBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19NQkFSQGwKICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCS8qIE1CQVIgaXMgbWlycm9yZWQgaW50byB0aGUgTUJBUiBTUFIgKi8KIAltdHNwcglNQkFSLHIzCkBAIC0xNTIsOSArMTUyLDkgQEAKICNpZiBkZWZpbmVkKENPTkZJR19NR1Q1MTAwKQogCXJsd2lubQlyMywgcjMsIDE3LCAxNSwgMzEKICNlbmRpZgotCWxpcwlyNCwgQ0ZHX0RFRkFVTFRfTUJBUkBoCisJbGlzCXI0LCBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUkBoCiAJc3R3CXIzLCAwKHI0KQotI2VuZGlmIC8qIENGR19ERUZBVUxUX01CQVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUiAqLwogCiAJLyogSW5pdGlhbGlzZSB0aGUgTVBDNXh4eCBwcm9jZXNzb3IgY29yZQkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xNjUsOSArMTY1LDkgQEAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogCS8qIHNldCB1cCBzdGFjayBpbiBvbi1jaGlwIFNSQU0gKi8KLQlsaXMJcjMsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU5JVF9SQU1fQUREUkBsCi0Jb3JpCXIxLCByMywgQ0ZHX0lOSVRfU1BfT0ZGU0VUCisJbGlzCXIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCisJb3JpCXIxLCByMywgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAogCWxpCXIwLCAwCQkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kCSovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBjbGVhciBmaW5hbCBzdGFjayBmcmFtZSBzbyB0aGF0CSovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBzdGFjayBiYWNrdHJhY2VzIHRlcm1pbmF0ZSBjbGVhbmx5CSovCkBAIC00MDAsMTMgKzQwMCwxMyBAQAogCS8qIEhJRDAgYWxzbyBjb250YWlucyBjYWNoZSBjb250cm9sCQkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQlsaXMJcjMsIENGR19ISUQwX0lOSVRAaAotCW9yaQlyMywgcjMsIENGR19ISUQwX0lOSVRAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQwX0lOSVRAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSElEMF9JTklUQGwKIAlTWU5DCiAJbXRzcHIJSElEMCwgcjMKIAotCWxpcwlyMywgQ0ZHX0hJRDBfRklOQUxAaAotCW9yaQlyMywgcjMsIENGR19ISUQwX0ZJTkFMQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSElEMF9GSU5BTEBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19ISUQwX0ZJTkFMQGwKIAlTWU5DCiAJbXRzcHIJSElEMCwgcjMKIApAQCAtNTgyLDE2ICs1ODIsMTYgQEAKIAltcglyMTAsIHI1CQkvKiBTYXZlIGNvcHkgb2YgRGVzdGluYXRpb24gQWRkcmVzcwkqLwogCiAJbXIJcjMsICByNQkJCQkvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCi0JbGlzCXI0LCBDRkdfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KLQlvcmkJcjQsIHI0LCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJbHd6CXI1LCBHT1QoX19pbml0X2VuZCkKIAlzdWIJcjUsIHI1LCByNAotCWxpCXI2LCBDRkdfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZQkqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKIAkgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L3VzYi5jIGIvY3B1L21wYzV4eHgvdXNiLmMKaW5kZXggZWQ0NjdhYi4uOGYyYjY2YSAxMDA2NDQKLS0tIGEvY3B1L21wYzV4eHgvdXNiLmMKKysrIGIvY3B1L21wYzV4eHgvdXNiLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9DUFVfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkKIAogI2luY2x1ZGUgPG1wYzV4eHguaD4KIApAQCAtNTEsNCArNTEsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1VTQl9PSENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODIyMC9jcHUuYyBiL2NwdS9tcGM4MjIwL2NwdS5jCmluZGV4IGJlMjc0Y2QuLjViM2ZkZDMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL2NwdS5jCisrKyBiL2NwdS9tcGM4MjIwL2NwdS5jCkBAIC00Miw3ICs0Miw3IEBACiAKIAlwcmludGYgKENQVV9JRF9TVFIpOwogCi0JcHJpbnRmICgiIChKVEFHIElEICUwOGx4KSIsICoodnVfbG9uZyAqKSAoQ0ZHX01CQVIgKyAweDUwKSk7CisJcHJpbnRmICgiIChKVEFHIElEICUwOGx4KSIsICoodnVfbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSICsgMHg1MCkpOwogCiAJcHJpbnRmICgiIGF0ICVzIE1IelxuIiwgc3RybWh6IChidWYsIGNsb2NrKSk7CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjIwL2NwdV9pbml0LmMgYi9jcHUvbXBjODIyMC9jcHVfaW5pdC5jCmluZGV4IDBkYWFjNWIuLjhmNTJjN2QgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzgyMjAvY3B1X2luaXQuYwpAQCAtMzksNyArMzksNyBAQAogCXZvbGF0aWxlIHhsYmFyYjgyMjBfdCAqeGxiYXJiID0gKHZvbGF0aWxlIHhsYmFyYjgyMjBfdCAqKSBNTUFQX1hMQkFSQjsKIAogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0ICgodm9pZCAqKSBnZCwgMCwgc2l6ZW9mIChnZF90KSk7CkBAIC00OSw1NCArNDksNTQgQEAKIAlwb3J0Y2ZnLT5wY2ZnMSA9IDA7CiAJcG9ydGNmZy0+cGNmZzIgPSAwOwogCXBvcnRjZmctPnBjZmczID0gMDsKLQlwb3J0Y2ZnLT5wY2ZnMiA9IENGR19HUDFfUE9SVDJfQ09ORklHOwotCXBvcnRjZmctPnBjZmczID0gQ0ZHX1BDSV9QT1JUM19DT05GSUcgfCBDRkdfR1AyX1BPUlQzX0NPTkZJRzsKKwlwb3J0Y2ZnLT5wY2ZnMiA9IENPTkZJR19TWVNfR1AxX1BPUlQyX0NPTkZJRzsKKwlwb3J0Y2ZnLT5wY2ZnMyA9IENPTkZJR19TWVNfUENJX1BPUlQzX0NPTkZJRyB8IENPTkZJR19TWVNfR1AyX1BPUlQzX0NPTkZJRzsKIAogCS8qCiAJICogRmxleGJ1cyBDb250cm9sbGVyOiBjb25maWd1cmUgY2hpcCBzZWxlY3RzIGFuZCBlbmFibGUgdGhlbQogCSAqLwotI2lmIGRlZmluZWQgKENGR19DUzBfQkFTRSkKLQlmbGV4YnVzLT5jc2FyMCA9IENGR19DUzBfQkFTRTsKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0NTMF9CQVNFKQorCWZsZXhidXMtPmNzYXIwID0gQ09ORklHX1NZU19DUzBfQkFTRTsKIAogLyogU29yY2VyeS1DIGNhbiBoYW5nLXVwIGFmdGVyIENUUkwgcmVnIGluaXRpYWxpemF0aW9uICovCi0jaWYgZGVmaW5lZCAoQ0ZHX0NTMF9DVFJMKQotCWZsZXhidXMtPmNzY3IwID0gQ0ZHX0NTMF9DVFJMOworI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQ1MwX0NUUkwpCisJZmxleGJ1cy0+Y3NjcjAgPSBDT05GSUdfU1lTX0NTMF9DVFJMOwogI2VuZGlmCi0JZmxleGJ1cy0+Y3NtcjAgPSAoKENGR19DUzBfTUFTSyAtIDEpICYgMHhmZmZmMDAwMCkgfCAxOworCWZsZXhidXMtPmNzbXIwID0gKChDT05GSUdfU1lTX0NTMF9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKICNlbmRpZgotI2lmIGRlZmluZWQgKENGR19DUzFfQkFTRSkKLQlmbGV4YnVzLT5jc2FyMSA9IENGR19DUzFfQkFTRTsKLQlmbGV4YnVzLT5jc2NyMSA9IENGR19DUzFfQ1RSTDsKLQlmbGV4YnVzLT5jc21yMSA9ICgoQ0ZHX0NTMV9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19DUzFfQkFTRSkKKwlmbGV4YnVzLT5jc2FyMSA9IENPTkZJR19TWVNfQ1MxX0JBU0U7CisJZmxleGJ1cy0+Y3NjcjEgPSBDT05GSUdfU1lTX0NTMV9DVFJMOworCWZsZXhidXMtPmNzbXIxID0gKChDT05GSUdfU1lTX0NTMV9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKICNlbmRpZgotI2lmIGRlZmluZWQgKENGR19DUzJfQkFTRSkKLQlmbGV4YnVzLT5jc2FyMiA9IENGR19DUzJfQkFTRTsKLQlmbGV4YnVzLT5jc2NyMiA9IENGR19DUzJfQ1RSTDsKLQlmbGV4YnVzLT5jc21yMiA9ICgoQ0ZHX0NTMl9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7Ci0JcG9ydGNmZy0+cGNmZzMgfD0gQ0ZHX0NTMl9QT1JUM19DT05GSUc7CisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19DUzJfQkFTRSkKKwlmbGV4YnVzLT5jc2FyMiA9IENPTkZJR19TWVNfQ1MyX0JBU0U7CisJZmxleGJ1cy0+Y3NjcjIgPSBDT05GSUdfU1lTX0NTMl9DVFJMOworCWZsZXhidXMtPmNzbXIyID0gKChDT05GSUdfU1lTX0NTMl9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CisJcG9ydGNmZy0+cGNmZzMgfD0gQ09ORklHX1NZU19DUzJfUE9SVDNfQ09ORklHOwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAjZW5kaWYKLSNpZiBkZWZpbmVkIChDRkdfQ1MzX0JBU0UpCi0JZmxleGJ1cy0+Y3NhcjMgPSBDRkdfQ1MzX0JBU0U7Ci0JZmxleGJ1cy0+Y3NjcjMgPSBDRkdfQ1MzX0NUUkw7Ci0JZmxleGJ1cy0+Y3NtcjMgPSAoKENGR19DUzNfTUFTSyAtIDEpICYgMHhmZmZmMDAwMCkgfCAxOwotCXBvcnRjZmctPnBjZmczIHw9IENGR19DUzNfUE9SVDNfQ09ORklHOworI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQ1MzX0JBU0UpCisJZmxleGJ1cy0+Y3NhcjMgPSBDT05GSUdfU1lTX0NTM19CQVNFOworCWZsZXhidXMtPmNzY3IzID0gQ09ORklHX1NZU19DUzNfQ1RSTDsKKwlmbGV4YnVzLT5jc21yMyA9ICgoQ09ORklHX1NZU19DUzNfTUFTSyAtIDEpICYgMHhmZmZmMDAwMCkgfCAxOworCXBvcnRjZmctPnBjZmczIHw9IENPTkZJR19TWVNfQ1MzX1BPUlQzX0NPTkZJRzsKIAlfX2FzbV9fIHZvbGF0aWxlICgic3luYyIpOwogI2VuZGlmCi0jaWYgZGVmaW5lZCAoQ0ZHX0NTNF9CQVNFKQotCWZsZXhidXMtPmNzYXI0ID0gQ0ZHX0NTNF9CQVNFOwotCWZsZXhidXMtPmNzY3I0ID0gQ0ZHX0NTNF9DVFJMOwotCWZsZXhidXMtPmNzbXI0ID0gKChDRkdfQ1M0X01BU0sgLSAxKSAmIDB4ZmZmZjAwMDApIHwgMTsKLQlwb3J0Y2ZnLT5wY2ZnMyB8PSBDRkdfQ1M0X1BPUlQzX0NPTkZJRzsKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0NTNF9CQVNFKQorCWZsZXhidXMtPmNzYXI0ID0gQ09ORklHX1NZU19DUzRfQkFTRTsKKwlmbGV4YnVzLT5jc2NyNCA9IENPTkZJR19TWVNfQ1M0X0NUUkw7CisJZmxleGJ1cy0+Y3NtcjQgPSAoKENPTkZJR19TWVNfQ1M0X01BU0sgLSAxKSAmIDB4ZmZmZjAwMDApIHwgMTsKKwlwb3J0Y2ZnLT5wY2ZnMyB8PSBDT05GSUdfU1lTX0NTNF9QT1JUM19DT05GSUc7CiAJX19hc21fXyB2b2xhdGlsZSAoInN5bmMiKTsKICNlbmRpZgotI2lmIGRlZmluZWQgKENGR19DUzVfQkFTRSkKLQlmbGV4YnVzLT5jc2FyNSA9IENGR19DUzVfQkFTRTsKLQlmbGV4YnVzLT5jc2NyNSA9IENGR19DUzVfQ1RSTDsKLQlmbGV4YnVzLT5jc21yNSA9ICgoQ0ZHX0NTNV9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7Ci0JcG9ydGNmZy0+cGNmZzMgfD0gQ0ZHX0NTNV9QT1JUM19DT05GSUc7CisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19DUzVfQkFTRSkKKwlmbGV4YnVzLT5jc2FyNSA9IENPTkZJR19TWVNfQ1M1X0JBU0U7CisJZmxleGJ1cy0+Y3NjcjUgPSBDT05GSUdfU1lTX0NTNV9DVFJMOworCWZsZXhidXMtPmNzbXI1ID0gKChDT05GSUdfU1lTX0NTNV9NQVNLIC0gMSkgJiAweGZmZmYwMDAwKSB8IDE7CisJcG9ydGNmZy0+cGNmZzMgfD0gQ09ORklHX1NZU19DUzVfUE9SVDNfQ09ORklHOwogCV9fYXNtX18gdm9sYXRpbGUgKCJzeW5jIik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzgyMjAvZHJhbVNldHVwLmMgYi9jcHUvbXBjODIyMC9kcmFtU2V0dXAuYwppbmRleCAwOGUzMTcyLi41MmNmMTMzIDEwMDY0NAotLS0gYS9jcHUvbXBjODIyMC9kcmFtU2V0dXAuYworKysgYi9jcHUvbXBjODIyMC9kcmFtU2V0dXAuYwpAQCAtMzQsOSArMzQsOSBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2RlZmluZSBTUERfU0laRQlDRkdfU0RSQU1fU1BEX1NJWkUKLSNkZWZpbmUgRFJBTV9TUEQJKENGR19TRFJBTV9TUERfSTJDX0FERFIpPDwxCS8qIG9uIEJvYXJkIFNQRCBlZXByb20gKi8KLSNkZWZpbmUgVE9UQUxfQkFOSwlDRkdfU0RSQU1fVE9UQUxfQkFOS1MKKyNkZWZpbmUgU1BEX1NJWkUJQ09ORklHX1NZU19TRFJBTV9TUERfU0laRQorI2RlZmluZSBEUkFNX1NQRAkoQ09ORklHX1NZU19TRFJBTV9TUERfSTJDX0FERFIpPDwxCS8qIG9uIEJvYXJkIFNQRCBlZXByb20gKi8KKyNkZWZpbmUgVE9UQUxfQkFOSwlDT05GSUdfU1lTX1NEUkFNX1RPVEFMX0JBTktTCiAKIGludCBzcGRfc3RhdHVzICh2b2xhdGlsZSBpMmM4MjIwX3QgKiBwaTJjLCB1OCBzdGFfYml0LCB1OCB0cnVlZmFsc2UpCiB7CkBAIC0xMDMsNyArMTAzLDcgQEAKIAkvKiBFbmFibGUgUG9ydCBDb25maWd1cmF0aW9uIGZvciBTREEgYW5kIFNETCBzaWduYWxzICovCiAJcGNmZyA9ICh2b2xhdGlsZSBwY2ZnODIyMF90ICopIChNTUFQX1BDRkcpOwogCV9fYXNtX18gKCJzeW5jIik7Ci0JcGNmZy0+cGNmZzMgJj0gfkNGR19JMkNfUE9SVDNfQ09ORklHOworCXBjZmctPnBjZmczICY9IH5DT05GSUdfU1lTX0kyQ19QT1JUM19DT05GSUc7CiAJX19hc21fXyAoInN5bmMiKTsKIAogCS8qIFBvaW50cyB0aGUgc3RydWN0dXJlIHRvIEkyYyBtYmFyIG1lbW9yeSBvZmZzZXQgKi8KQEAgLTE0NCw3ICsxNDQsNyBAQAogCQlicmVhazsKIAl9CiAKLQlwaTJjUmVnLT5hZHIgPSBDRkdfSTJDX1NMQVZFPDwxOworCXBpMmNSZWctPmFkciA9IENPTkZJR19TWVNfSTJDX1NMQVZFPDwxOwogCiAJcGkyY1JlZy0+Y3IgPSBJMkNfQ1RMX0VOOwkvKiBTZXQgRW5hYmxlICAgICAgICAgKi8KIApAQCAtNTQxLDcgKzU0MSw3IEBACiAJfQogCiAJLyogU2V0IHVwIHRoZSBEcml2ZSBTdHJlbmd0aCByZWdpc3RlciAqLwotCXN5c2NvbmYtPnNkcmFtZHMgPSBDRkdfU0RSQU1fRFJJVkVfU1RSRU5HVEg7CisJc3lzY29uZi0+c2RyYW1kcyA9IENPTkZJR19TWVNfU0RSQU1fRFJJVkVfU1RSRU5HVEg7CiAKIAkvKiAqKioqKioqKioqKioqKioqKioqKioqIENmZyAxICoqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIApAQCAtNjc5LDcgKzY3OSw3IEBACiAKIAogCS8qIFNldCB1cCBtb2RlIHZhbHVlIGZvciBDQVMgbGF0ZW5jeSAqLwotI2lmIChDRkdfU0RSQU1fQ0FTX0xBVEVOQ1k9PTUpIC8qIENMPTIuNSAqLworI2lmIChDT05GSUdfU1lTX1NEUkFNX0NBU19MQVRFTkNZPT01KSAvKiBDTD0yLjUgKi8KIAltb2RlX3ZhbHVlID0gKE1PREVfTU9ERSB8IE1PREVfQlVSU1RMRU4gKE1PREVfQlVSU1RMRU5fOCkgfAogCQlNT0RFX0JUX1NFUVVFTlRJQUwgfCBNT0RFX0NMIChNT0RFX0NMXzJwNSkgfCBNT0RFX0NNRCk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyMjAvaW50ZXJydXB0cy5jIGIvY3B1L21wYzgyMjAvaW50ZXJydXB0cy5jCmluZGV4IDAzNjM3OGMuLjc4ZTk5MTcgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL2ludGVycnVwdHMuYworKysgYi9jcHUvbXBjODIyMC9pbnRlcnJ1cHRzLmMKQEAgLTM0LDcgKzM0LDcgQEAKIAogaW50IGludGVycnVwdF9pbml0X2NwdSAodWxvbmcgKiBkZWNyZW1lbnRlcl9jb3VudCkKIHsKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsgKCkgLyBDRkdfSFo7CisJKmRlY3JlbWVudGVyX2NvdW50ID0gZ2V0X3RiY2xrICgpIC8gQ09ORklHX1NZU19IWjsKIAogCXJldHVybiAoMCk7CiB9CmRpZmYgLS1naXQgYS9jcHUvbXBjODIyMC9wY2kuYyBiL2NwdS9tcGM4MjIwL3BjaS5jCmluZGV4IDRlZjIxNGUuLmE3OGE4MjggMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL3BjaS5jCisrKyBiL2NwdS9tcGM4MjIwL3BjaS5jCkBAIC0zMyw4ICszMyw4IEBACiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogCiAvKiBTeXN0ZW0gUkFNIG1hcHBlZCBvdmVyIFBDSSAqLwotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCSBDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fUEhZUwkgQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwkgQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCSBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1NJWkUJICgxMDI0ICogMTAyNCAqIDEwMjQpCiAKICNkZWZpbmUgY2ZnX3JlYWQodmFsLCBhZGRyLCB0eXBlLCBvcCkJCSp2YWwgPSBvcCgodHlwZSkoYWRkcikpOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyMjAvc3BlZWQuYyBiL2NwdS9tcGM4MjIwL3NwZWVkLmMKaW5kZXggMjAwYTc2Mi4uYzAxY2EwYyAxMDA2NDQKLS0tIGEvY3B1L21wYzgyMjAvc3BlZWQuYworKysgYi9jcHUvbXBjODIyMC9zcGVlZC5jCkBAIC02NywyNSArNjcsMjUgQEAKIAl1MzIgaGlkMTsKIAlpbnQgaSwgc2l6ZSwgcGNpMmJ1czsKIAotI2lmICFkZWZpbmVkKENGR19NUEM4MjIwX0NMS0lOKQotI2Vycm9yIGNsb2NrIG1lYXN1cmluZyBub3QgaW1wbGVtZW50ZWQgeWV0IC0gZGVmaW5lIENGR19NUEM4MjIwX0NMS0lOCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19NUEM4MjIwX0NMS0lOKQorI2Vycm9yIGNsb2NrIG1lYXN1cmluZyBub3QgaW1wbGVtZW50ZWQgeWV0IC0gZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9DTEtJTgogI2VuZGlmCiAKLQlnZC0+aW5wX2NsayA9IENGR19NUEM4MjIwX0NMS0lOOworCWdkLT5pbnBfY2xrID0gQ09ORklHX1NZU19NUEM4MjIwX0NMS0lOOwogCiAJLyogUmVhZCBYTEIgdG8gUENJKElOUCkgY2xvY2sgbXVsdGlwbGllciAqLwogCXBjaTJidXMgPSAoKigodm9sYXRpbGUgdTMyICopUENJX1JFR19QQ0lHU0NSKSAmCiAJCVBDSV9SRUdfUENJR1NDUl9QQ0kyWExCX0NMS19NQVNLKT4+UENJX1JFR19QQ0lHU0NSX1BDSTJYTEJfQ0xLX0JJVDsKIAogCS8qIFhMQiBidXMgY2xvY2sgKi8KLQlnZC0+YnVzX2NsayA9IENGR19NUEM4MjIwX0NMS0lOICogcGNpMmJ1czsKKwlnZC0+YnVzX2NsayA9IENPTkZJR19TWVNfTVBDODIyMF9DTEtJTiAqIHBjaTJidXM7CiAKIAkvKiBQQ0kgY2xvY2sgaXMgc2FtZSBhcyBpbnB1dCBjbG9jayAqLwotCWdkLT5wY2lfY2xrID0gQ0ZHX01QQzgyMjBfQ0xLSU47CisJZ2QtPnBjaV9jbGsgPSBDT05GSUdfU1lTX01QQzgyMjBfQ0xLSU47CiAKIAkvKiBGbGV4QnVzIGlzIHRlbXBvcmFyeSBzZXQgYXMgdGhlIHNhbWUgYXMgaW5wdXQgY2xvY2sgKi8KIAkvKiB3aWxsIGRvIGR5bmFtaWMgaW4gdGhlIGZ1dHVyZSAqLwotCWdkLT5mbGJfY2xrID0gQ0ZHX01QQzgyMjBfQ0xLSU47CisJZ2QtPmZsYl9jbGsgPSBDT05GSUdfU1lTX01QQzgyMjBfQ0xLSU47CiAKIAkvKiBDUFUgQ2xvY2sgLSBSZWFkIEhJRDEgKi8KIAlhc20gdm9sYXRpbGUgKCJtZnNwciAlMCwgMTAwOSI6Ij1yIiAoaGlkMSk6KTsKQEAgLTk3LDcgKzk3LDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQogCQlpZiAoaGlkMSA9PSBidXMyY29yZVtpXS5oaWQxKSB7CiAJCQlnZC0+Y3B1X2NsayA9IChidXMyY29yZVtpXS5tdWx0aSAqIGdkLT5idXNfY2xrKSA+PiAxOwotCQkJZ2QtPnZjb19jbGsgPSBDRkdfTVBDODIyMF9TWVNQTExfVkNPX01VTFRJUExJRVIgKiAoZ2QtPnBjaV9jbGsgKiBidXMyY29yZVtpXS52Y29fZGl2KS8yOworCQkJZ2QtPnZjb19jbGsgPSBDT05GSUdfU1lTX01QQzgyMjBfU1lTUExMX1ZDT19NVUxUSVBMSUVSICogKGdkLT5wY2lfY2xrICogYnVzMmNvcmVbaV0udmNvX2RpdikvMjsKIAkJCWJyZWFrOwogCQl9CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjIwL3N0YXJ0LlMgYi9jcHUvbXBjODIyMC9zdGFydC5TCmluZGV4IGI1MTQ1Y2EuLjM3M2JlMmMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjIwL3N0YXJ0LlMKKysrIGIvY3B1L21wYzgyMjAvc3RhcnQuUwpAQCAtMTA1LDE2ICsxMDUsMTYgQEAKIAkvKiByZXBsYWNlIGRlZmF1bHQgTUJBUiBiYXNlIGFkZHJlc3MgZnJvbSAweDgwMDAwMDAwCiAJICAgIHRvIDB4ZjAwMDAwMDAgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RFRkFVTFRfTUJBUikgJiYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCi0JbGlzCXIzLCBDRkdfTUJBUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX01CQVJAbAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ERUZBVUxUX01CQVIpICYmICFkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKKwlsaXMJcjMsIENPTkZJR19TWVNfTUJBUkBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19NQkFSQGwKIAogCS8qIE1CQVIgaXMgbWlycm9yZWQgaW50byB0aGUgTUJBUiBTUFIgKi8KIAltdHNwcglNQkFSLHIzCiAJbXRzcHIJU1BSTl9TUFJHN1cscjMKLQlsaXMJcjQsIENGR19ERUZBVUxUX01CQVJAaAorCWxpcwlyNCwgQ09ORklHX1NZU19ERUZBVUxUX01CQVJAaAogCXN0dwlyMywgMChyNCkKLSNlbmRpZiAvKiBDRkdfREVGQVVMVF9NQkFSICovCisjZW5kaWYgLyogQ09ORklHX1NZU19ERUZBVUxUX01CQVIgKi8KIAogCS8qIEluaXRpYWxpc2UgdGhlIE1QQzgyMjAgcHJvY2Vzc29yIGNvcmUJCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtMTI1LDkgKzEyNSw5IEBACiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIAkvKiBzZXQgdXAgc3RhY2sgaW4gb24tY2hpcCBTUkFNICovCi0JbGlzCXIzLCBDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lOSVRfUkFNX0FERFJAbAotCW9yaQlyMSwgcjMsIENGR19JTklUX1NQX09GRlNFVAorCWxpcwlyMywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAbAorCW9yaQlyMSwgcjMsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQKIAogCWxpCXIwLCAwCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQgKi8KIAlzdHd1CXIwLCAtNChyMSkJLyogY2xlYXIgZmluYWwgc3RhY2sgZnJhbWUgc28gdGhhdAkqLwpAQCAtMzYxLDEzICszNjEsMTMgQEAKIAkvKiBISUQwIGFsc28gY29udGFpbnMgY2FjaGUgY29udHJvbAkJCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0JbGlzCXIzLCBDRkdfSElEMF9JTklUQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMF9JTklUQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSElEMF9JTklUQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDBfSU5JVEBsCiAJU1lOQwogCW10c3ByCUhJRDAsIHIzCiAKLQlsaXMJcjMsIENGR19ISUQwX0ZJTkFMQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMF9GSU5BTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDBfRklOQUxAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSElEMF9GSU5BTEBsCiAJU1lOQwogCW10c3ByCUhJRDAsIHIzCiAKQEAgLTQ1OCw3ICs0NTgsNyBAQAogCS5nbG9ibAlpY2FjaGVfZW5hYmxlCiBpY2FjaGVfZW5hYmxlOgogCWxpcwlyNCwgMAotCW9yaQlyNCwgcjQsIENGR19ISUQwX0lOSVQgLyogc2V0IElDRSAmIElDRkkgYml0CQkqLworCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSElEMF9JTklUIC8qIHNldCBJQ0UgJiBJQ0ZJIGJpdAkJKi8KIAlybHdpbm0JcjMsIHI0LCAwLCAyMSwgMTkgICAgIC8qIGNsZWFyIHRoZSBJQ0ZJIGJpdAkJKi8KIAogCS8qCkBAIC01NDcsMTYgKzU0NywxNiBAQAogCW1yCXIxMCwgcjUJICAgIC8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKIAltcglyMywgIHI1CSAgICAvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCQkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCS8qIFNvdXJjZSBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCS8qIFNvdXJjZSBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCS8qIENhY2hlIExpbmUgU2l6ZQkqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCS8qIENhY2hlIExpbmUgU2l6ZQkqLwogCiAJLyoKIAkgKiBGaXggR09UIHBvaW50ZXI6CiAJICoKLQkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENGR19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcworCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcwogCSAqCiAJICogT2Zmc2V0OgogCSAqLwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNHgvY3B1LmMgYi9jcHUvbXBjODI0eC9jcHUuYwppbmRleCAwYTQ1Y2M4Li4wOGY2YTk0IDEwMDY0NAotLS0gYS9jcHUvbXBjODI0eC9jcHUuYworKysgYi9jcHUvbXBjODI0eC9jcHUuYwpAQCAtMTA5LDE3ICsxMDksMTcgQEAKIAkgKiBUcnlpbmcgdG8gZXhlY3V0ZSB0aGUgbmV4dCBpbnN0cnVjdGlvbiBhdCBhIG5vbi1leGlzdGluZyBhZGRyZXNzCiAJICogc2hvdWxkIGNhdXNlIGEgbWFjaGluZSBjaGVjaywgcmVzdWx0aW5nIGluIHJlc2V0CiAJICovCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKLQlhZGRyID0gQ0ZHX1JFU0VUX0FERFJFU1M7CisjaWZkZWYgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCisJYWRkciA9IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKICNlbHNlCiAJLyoKLQkgKiBub3RlOiB3aGVuIENGR19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsCi0JICogQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpIGlzIHVzdWFsbHkgYSB2YWxpZAorCSAqIG5vdGU6IHdoZW4gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsCisJICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQKIAkgKiBhZGRyZXNzLiBCZXR0ZXIgcGljayBhbiBhZGRyZXNzIGtub3duIHRvIGJlIGludmFsaWQgb24KLQkgKiB5b3VyIHN5c3RlbSBhbmQgYXNzaWduIGl0IHRvIENGR19SRVNFVF9BRERSRVNTLgorCSAqIHlvdXIgc3lzdGVtIGFuZCBhc3NpZ24gaXQgdG8gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTLgogCSAqICIodWxvbmcpLTEiIHVzZWQgdG8gYmUgYSBnb29kIGNob2ljZSBmb3IgbWFueSBzeXN0ZW1zLi4uCiAJICovCi0JYWRkciA9IENGR19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKKwlhZGRyID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKTsKICNlbmRpZgogCSgodm9pZCAoKikodm9pZCkpIGFkZHIpICgpOwogCXJldHVybiAxOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNHgvY3B1X2luaXQuYyBiL2NwdS9tcGM4MjR4L2NwdV9pbml0LmMKaW5kZXggNzg3MTAzMS4uMzk1Zjc3NiAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNHgvY3B1X2luaXQuYworKysgYi9jcHUvbXBjODI0eC9jcHVfaW5pdC5jCkBAIC0yNSwzMiArMjUsMzIgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8bXBjODI0eC5oPgogCi0jaWZuZGVmIENGR19CQU5LMF9ST1cKLSNkZWZpbmUgQ0ZHX0JBTkswX1JPVyAwCisjaWZuZGVmIENPTkZJR19TWVNfQkFOSzBfUk9XCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfUk9XIDAKICNlbmRpZgotI2lmbmRlZiBDRkdfQkFOSzFfUk9XCi0jZGVmaW5lIENGR19CQU5LMV9ST1cgMAorI2lmbmRlZiBDT05GSUdfU1lTX0JBTksxX1JPVworI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1JPVyAwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX0JBTksyX1JPVwotI2RlZmluZSBDRkdfQkFOSzJfUk9XIDAKKyNpZm5kZWYgQ09ORklHX1NZU19CQU5LMl9ST1cKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9ST1cgMAogI2VuZGlmCi0jaWZuZGVmIENGR19CQU5LM19ST1cKLSNkZWZpbmUgQ0ZHX0JBTkszX1JPVyAwCisjaWZuZGVmIENPTkZJR19TWVNfQkFOSzNfUk9XCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfUk9XIDAKICNlbmRpZgotI2lmbmRlZiBDRkdfQkFOSzRfUk9XCi0jZGVmaW5lIENGR19CQU5LNF9ST1cgMAorI2lmbmRlZiBDT05GSUdfU1lTX0JBTks0X1JPVworI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1JPVyAwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX0JBTks1X1JPVwotI2RlZmluZSBDRkdfQkFOSzVfUk9XIDAKKyNpZm5kZWYgQ09ORklHX1NZU19CQU5LNV9ST1cKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9ST1cgMAogI2VuZGlmCi0jaWZuZGVmIENGR19CQU5LNl9ST1cKLSNkZWZpbmUgQ0ZHX0JBTks2X1JPVyAwCisjaWZuZGVmIENPTkZJR19TWVNfQkFOSzZfUk9XCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfUk9XIDAKICNlbmRpZgotI2lmbmRlZiBDRkdfQkFOSzdfUk9XCi0jZGVmaW5lIENGR19CQU5LN19ST1cgMAorI2lmbmRlZiBDT05GSUdfU1lTX0JBTks3X1JPVworI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1JPVyAwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX0RCVVNfU0laRTIKLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRTIgMAorI2lmbmRlZiBDT05GSUdfU1lTX0RCVVNfU0laRTIKKyNkZWZpbmUgQ09ORklHX1NZU19EQlVTX1NJWkUyIDAKICNlbmRpZgogCiAvKgpAQCAtMTYzLDE1MCArMTYzLDE1MCBAQAogI2VuZGlmCiAJQ09ORklHX1dSSVRFX1dPUkQoUElDUjIsIHZhbCk7CiAKLQlDT05GSUdfV1JJVEVfV09SRChFVU1CQkFSLCBDRkdfRVVNQl9BRERSKTsKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLQlDT05GSUdfV1JJVEVfV09SRChNQ0NSMSwgKENGR19ST01OQUwgPDwgTUNDUjFfUk9NTkFMX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzBfUk9XKSB8Ci0JCQkJIChDRkdfQkFOSzFfUk9XIDw8IE1DQ1IxX0JBTksxUk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzJfUk9XIDw8IE1DQ1IxX0JBTksyUk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzNfUk9XIDw8IE1DQ1IxX0JBTkszUk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzRfUk9XIDw8IE1DQ1IxX0JBTks0Uk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzVfUk9XIDw8IE1DQ1IxX0JBTks1Uk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzZfUk9XIDw8IE1DQ1IxX0JBTks2Uk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfQkFOSzdfUk9XIDw8IE1DQ1IxX0JBTks3Uk9XX1NISUZUKSB8Ci0JCQkJIChDRkdfUk9NRkFMIDw8IE1DQ1IxX1JPTUZBTF9TSElGVCkpOworCUNPTkZJR19XUklURV9XT1JEKEVVTUJCQVIsIENPTkZJR19TWVNfRVVNQl9BRERSKTsKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjEsIChDT05GSUdfU1lTX1JPTU5BTCA8PCBNQ0NSMV9ST01OQUxfU0hJRlQpIHwKKwkJCQkgKENPTkZJR19TWVNfQkFOSzBfUk9XKSB8CisJCQkJIChDT05GSUdfU1lTX0JBTksxX1JPVyA8PCBNQ0NSMV9CQU5LMVJPV19TSElGVCkgfAorCQkJCSAoQ09ORklHX1NZU19CQU5LMl9ST1cgPDwgTUNDUjFfQkFOSzJST1dfU0hJRlQpIHwKKwkJCQkgKENPTkZJR19TWVNfQkFOSzNfUk9XIDw8IE1DQ1IxX0JBTkszUk9XX1NISUZUKSB8CisJCQkJIChDT05GSUdfU1lTX0JBTks0X1JPVyA8PCBNQ0NSMV9CQU5LNFJPV19TSElGVCkgfAorCQkJCSAoQ09ORklHX1NZU19CQU5LNV9ST1cgPDwgTUNDUjFfQkFOSzVST1dfU0hJRlQpIHwKKwkJCQkgKENPTkZJR19TWVNfQkFOSzZfUk9XIDw8IE1DQ1IxX0JBTks2Uk9XX1NISUZUKSB8CisJCQkJIChDT05GSUdfU1lTX0JBTks3X1JPVyA8PCBNQ0NSMV9CQU5LN1JPV19TSElGVCkgfAorCQkJCSAoQ09ORklHX1NZU19ST01GQUwgPDwgTUNDUjFfUk9NRkFMX1NISUZUKSk7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0FTUklTRSkgJiYgZGVmaW5lZChDRkdfQVNGQUxMKQotCUNPTkZJR19XUklURV9XT1JEKE1DQ1IyLCBDRkdfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVCB8Ci0JCQkJIENGR19BU1JJU0UgPDwgTUNDUjJfQVNSSVNFX1NISUZUIHwKLQkJCQkgQ0ZHX0FTRkFMTCA8PCBNQ0NSMl9BU0ZBTExfU0hJRlQpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19BU1JJU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19BU0ZBTEwpCisJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjIsIENPTkZJR19TWVNfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVCB8CisJCQkJIENPTkZJR19TWVNfQVNSSVNFIDw8IE1DQ1IyX0FTUklTRV9TSElGVCB8CisJCQkJIENPTkZJR19TWVNfQVNGQUxMIDw8IE1DQ1IyX0FTRkFMTF9TSElGVCk7CiAjZWxzZQotCUNPTkZJR19XUklURV9XT1JEKE1DQ1IyLCBDRkdfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVCk7CisJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjIsIENPTkZJR19TWVNfUkVGSU5UIDw8IE1DQ1IyX1JFRklOVF9TSElGVCk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX01QQzgyNDApCiAJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjMsCi0JCSgoKENGR19CU1RPUFJFICYgMHgwMDNjKSA+PiAyKSA8PCBNQ0NSM19CU1RPUFJFMlRPNV9TSElGVCkgfAotCQkoQ0ZHX1JFRlJFQyA8PCBNQ0NSM19SRUZSRUNfU0hJRlQpIHwKLQkJKENGR19SRExBVCAgPDwgTUNDUjNfUkRMQVRfU0hJRlQpKTsKKwkJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDNjKSA+PiAyKSA8PCBNQ0NSM19CU1RPUFJFMlRPNV9TSElGVCkgfAorCQkoQ09ORklHX1NZU19SRUZSRUMgPDwgTUNDUjNfUkVGUkVDX1NISUZUKSB8CisJCShDT05GSUdfU1lTX1JETEFUICA8PCBNQ0NSM19SRExBVF9TSElGVCkpOwogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDODI0NSkKIAlDT05GSUdfV1JJVEVfV09SRChNQ0NSMywKLQkJKCgoQ0ZHX0JTVE9QUkUgJiAweDAwM2MpID4+IDIpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8Ci0JCShDRkdfUkVGUkVDIDw8IE1DQ1IzX1JFRlJFQ19TSElGVCkpOworCQkoKChDT05GSUdfU1lTX0JTVE9QUkUgJiAweDAwM2MpID4+IDIpIDw8IE1DQ1IzX0JTVE9QUkUyVE81X1NISUZUKSB8CisJCShDT05GSUdfU1lTX1JFRlJFQyA8PCBNQ0NSM19SRUZSRUNfU0hJRlQpKTsKICNlbHNlCiAjZXJyb3IgU3BlY2lmaWMgdHlwZSBvZiBNUEM4MjR4IG11c3QgYmUgZGVmaW5lZCAoaS5lLiBDT05GSUdfTVBDODI0MCkKICNlbmRpZgogCiAvKiB0aGlzIGlzIGdyb3NzLiAgV2UgdGhpbmsgdGhlc2Ugc2hvdWxkIGFsbCBiZSB0aGUgc2FtZSwgYW5kIHZhcmlvdXMgYm9hcmRzCi0gKiAgc2hvdWxkIGRlZmluZSBDRkdfQUNUT1JXIHRvIDAgaWYgdGhleSBkb24ndCB3YW50IHRvIHNldCBpdCwgb3IgZXZlbiwgaWYKKyAqICBzaG91bGQgZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXIHRvIDAgaWYgdGhleSBkb24ndCB3YW50IHRvIHNldCBpdCwgb3IgZXZlbiwgaWYKICAqICBpdHMgbm90IHNldCwgd2UgZGVmaW5lIGl0IHRvIHplcm8gaW4gdGhpcyBmaWxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DVTgyNCkgfHwgZGVmaW5lZChDT05GSUdfUE42MikKIAlDT05GSUdfV1JJVEVfV09SRChNQ0NSNCwKLQkoQ0ZHX1BSRVRPQUNUIDw8IE1DQ1I0X1BSRVRPQUNUX1NISUZUKSB8Ci0JKENGR19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfAorCShDT05GSUdfU1lTX1BSRVRPQUNUIDw8IE1DQ1I0X1BSRVRPQUNUX1NISUZUKSB8CisJKENPTkZJR19TWVNfQUNUVE9QUkUgPDwgTUNDUjRfQUNUVE9QUkVfU0hJRlQpIHwKIAlNQ0NSNF9CSVQyMSB8Ci0JKENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPyBNQ0NSNF9SRUdJU1RFUkVEOiAwKSB8Ci0JKChDRkdfQlNUT1BSRSAmIDB4MDAwMykgPDxNQ0NSNF9CU1RPUFJFMFRPMV9TSElGVCApIHwKLQkoKChDRkdfU0RNT0RFX0NBU19MQVQgPDw0KSB8IChDRkdfU0RNT0RFX1dSQVAgPDwzKSB8Ci0JCSAgQ0ZHX1NETU9ERV9CVVJTVExFTikgPDwgTUNDUjRfU0RNT0RFX1NISUZUKSB8Ci0JKENGR19BQ1RPUlcgPDwgTUNDUjRfQUNUVE9SV19TSElGVCkgfAotCSgoKENGR19CU1RPUFJFICYgMHgwM2MwKSA+PiA2KSA8PCBNQ0NSNF9CU1RPUFJFNlRPOV9TSElGVCkpOworCShDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA/IE1DQ1I0X1JFR0lTVEVSRUQ6IDApIHwKKwkoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMykgPDxNQ0NSNF9CU1RPUFJFMFRPMV9TSElGVCApIHwKKwkoKChDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUIDw8NCkgfCAoQ09ORklHX1NZU19TRE1PREVfV1JBUCA8PDMpIHwKKwkJICBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTikgPDwgTUNDUjRfU0RNT0RFX1NISUZUKSB8CisJKENPTkZJR19TWVNfQUNUT1JXIDw8IE1DQ1I0X0FDVFRPUldfU0hJRlQpIHwKKwkoKChDT05GSUdfU1lTX0JTVE9QUkUgJiAweDAzYzApID4+IDYpIDw8IE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUKSk7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM4MjQwKQogCUNPTkZJR19XUklURV9XT1JEKE1DQ1I0LAotCShDRkdfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwKLQkoQ0ZHX0FDVFRPUFJFIDw8IE1DQ1I0X0FDVFRPUFJFX1NISUZUKSB8CisJKENPTkZJR19TWVNfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwKKwkoQ09ORklHX1NZU19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfAogCU1DQ1I0X0JJVDIxIHwKLQkoQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiA/IE1DQ1I0X1JFR0lTVEVSRUQ6IDApIHwKLQkoKENGR19CU1RPUFJFICYgMHgwMDAzKSA8PE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfAotCSgoKENGR19TRE1PREVfQ0FTX0xBVCA8PDQpIHwgKENGR19TRE1PREVfV1JBUCA8PDMpIHwKLQkJICAoQ0ZHX1NETU9ERV9CVVJTVExFTikpIDw8TUNDUjRfU0RNT0RFX1NISUZUKSB8Ci0JKCgoQ0ZHX0JTVE9QUkUgJiAweDAzYzApID4+IDYpIDw8TUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKSk7CisJKENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSID8gTUNDUjRfUkVHSVNURVJFRDogMCkgfAorCSgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwMDAzKSA8PE1DQ1I0X0JTVE9QUkUwVE8xX1NISUZUICkgfAorCSgoKENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgPDw0KSB8IChDT05GSUdfU1lTX1NETU9ERV9XUkFQIDw8MykgfAorCQkgIChDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTikpIDw8TUNDUjRfU0RNT0RFX1NISUZUKSB8CisJKCgoQ09ORklHX1NZU19CU1RPUFJFICYgMHgwM2MwKSA+PiA2KSA8PE1DQ1I0X0JTVE9QUkU2VE85X1NISUZUICkpOwogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDODI0NSkKIAlDT05GSUdfUkVBRF9XT1JEKE1DQ1IxLCB2YWwpOwogCXZhbCAmPSBNQ0NSMV9EQlVTX1NJWkUwOyAgICAvKiB0ZXN0IGZvciA2NC1iaXQgbWVtIGJ1cyAqLwogCiAJQ09ORklHX1dSSVRFX1dPUkQoTUNDUjQsCi0JCShDRkdfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwKLQkJKENGR19BQ1RUT1BSRSA8PCBNQ0NSNF9BQ1RUT1BSRV9TSElGVCkgfAotCQkoQ0ZHX0VYVFJPTSA/IE1DQ1I0X0VYVFJPTSA6IDApIHwKLQkJKENGR19SRUdESU1NID8gTUNDUjRfUkVHRElNTSA6IDApIHwKLQkJKENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgPyBNQ0NSNF9SRUdJU1RFUkVEOiAwKSB8Ci0JCSgoQ0ZHX0JTVE9QUkUgJiAweDAwMDMpIDw8TUNDUjRfQlNUT1BSRTBUTzFfU0hJRlQgKSB8Ci0JCShDRkdfREJVU19TSVpFMiA8PCBNQ0NSNF9EQlVTX1NJWkUyX1NISUZUKSB8Ci0JCSgoKENGR19TRE1PREVfQ0FTX0xBVCA8PDQpIHwgKENGR19TRE1PREVfV1JBUCA8PDMpIHwKKwkJKENPTkZJR19TWVNfUFJFVE9BQ1QgPDwgTUNDUjRfUFJFVE9BQ1RfU0hJRlQpIHwKKwkJKENPTkZJR19TWVNfQUNUVE9QUkUgPDwgTUNDUjRfQUNUVE9QUkVfU0hJRlQpIHwKKwkJKENPTkZJR19TWVNfRVhUUk9NID8gTUNDUjRfRVhUUk9NIDogMCkgfAorCQkoQ09ORklHX1NZU19SRUdESU1NID8gTUNDUjRfUkVHRElNTSA6IDApIHwKKwkJKENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSID8gTUNDUjRfUkVHSVNURVJFRDogMCkgfAorCQkoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDAwMykgPDxNQ0NSNF9CU1RPUFJFMFRPMV9TSElGVCApIHwKKwkJKENPTkZJR19TWVNfREJVU19TSVpFMiA8PCBNQ0NSNF9EQlVTX1NJWkUyX1NISUZUKSB8CisJCSgoKENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgPDw0KSB8IChDT05GSUdfU1lTX1NETU9ERV9XUkFQIDw8MykgfAogCQkgICAgICAodmFsID8gMiA6IDMpKSA8PCBNQ0NSNF9TRE1PREVfU0hJRlQpICB8Ci0JCShDRkdfQUNUT1JXIDw8IE1DQ1I0X0FDVFRPUldfU0hJRlQpIHwKLQkJKCgoQ0ZHX0JTVE9QUkUgJiAweDAzYzApID4+IDYpIDw8TUNDUjRfQlNUT1BSRTZUTzlfU0hJRlQgKSk7CisJCShDT05GSUdfU1lTX0FDVE9SVyA8PCBNQ0NSNF9BQ1RUT1JXX1NISUZUKSB8CisJCSgoKENPTkZJR19TWVNfQlNUT1BSRSAmIDB4MDNjMCkgPj4gNikgPDxNQ0NSNF9CU1RPUFJFNlRPOV9TSElGVCApKTsKICNlbHNlCiAjZXJyb3IgU3BlY2lmaWMgdHlwZSBvZiBNUEM4MjR4IG11c3QgYmUgZGVmaW5lZCAoaS5lLiBDT05GSUdfTVBDODI0MCkKICNlbmRpZgogCiAJQ09ORklHX1dSSVRFX1dPUkQoTVNBUjEsCi0JCSggKENGR19CQU5LMF9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIHwKLQkJKCgoQ0ZHX0JBTksxX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgOCkgfAotCQkoKChDRkdfQkFOSzJfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfAotCQkoKChDRkdfQkFOSzNfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAyNCkpOworCQkoIChDT05GSUdfU1lTX0JBTkswX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAorCQkoKChDT05GSUdfU1lTX0JBTksxX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgOCkgfAorCQkoKChDT05GSUdfU1lTX0JBTksyX1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CiAJQ09ORklHX1dSSVRFX1dPUkQoRU1TQVIxLAotCQkoIChDRkdfQkFOSzBfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIHwKLQkJKCgoQ0ZHX0JBTksxX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCA4KSB8Ci0JCSgoKENGR19CQU5LMl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTkszX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkpOworCQkoIChDT05GSUdfU1lTX0JBTkswX1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzFfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LM19TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpKTsKIAlDT05GSUdfV1JJVEVfV09SRChNU0FSMiwKLQkJKCAoQ0ZHX0JBTks0X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAotCQkoKChDRkdfQkFOSzVfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCA4KSB8Ci0JCSgoKENGR19CQU5LNl9TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDE2KSB8Ci0JCSgoKENGR19CQU5LN19TVEFSVCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CisJCSggKENPTkZJR19TWVNfQkFOSzRfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzVfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCA4KSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzZfU1RBUlQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMjQpKTsKIAlDT05GSUdfV1JJVEVfV09SRChFTVNBUjIsCi0JCSggKENGR19CQU5LNF9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgfAotCQkoKChDRkdfQkFOSzVfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKLQkJKCgoQ0ZHX0JBTks2X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfAotCQkoKChDRkdfQkFOSzdfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDI0KSk7CisJCSggKENPTkZJR19TWVNfQkFOSzRfU1RBUlQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9TVEFSVCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgOCkgfAorCQkoKChDT05GSUdfU1lTX0JBTks2X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAxNikgfAorCQkoKChDT05GSUdfU1lTX0JBTks3X1NUQVJUICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkpOwogCUNPTkZJR19XUklURV9XT1JEKE1FQVIxLAotCQkoIChDRkdfQkFOSzBfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAotCQkoKChDRkdfQkFOSzFfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgOCkgfAotCQkoKChDRkdfQkFOSzJfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CisJCSggKENPTkZJR19TWVNfQkFOSzBfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAorCQkoKChDT05GSUdfU1lTX0JBTksxX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfAorCQkoKChDT05GSUdfU1lTX0JBTkszX0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CiAJQ09ORklHX1dSSVRFX1dPUkQoRU1FQVIxLAotCQkoIChDRkdfQkFOSzBfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSB8Ci0JCSgoKENGR19CQU5LMV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKLQkJKCgoQ0ZHX0JBTksyX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTkszX0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpKTsKKwkJKCAoQ09ORklHX1NZU19CQU5LMF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LMV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LMl9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzNfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkpOwogCUNPTkZJR19XUklURV9XT1JEKE1FQVIyLAotCQkoIChDRkdfQkFOSzRfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAotCQkoKChDRkdfQkFOSzVfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgOCkgfAotCQkoKChDRkdfQkFOSzZfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CisJCSggKENPTkZJR19TWVNfQkFOSzRfRU5EICYgTUlDUl9BRERSX01BU0spID4+IE1JQ1JfQUREUl9TSElGVCkgfAorCQkoKChDT05GSUdfU1lTX0JBTks1X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9FTkQgJiBNSUNSX0FERFJfTUFTSykgPj4gTUlDUl9BRERSX1NISUZUKSA8PCAxNikgfAorCQkoKChDT05GSUdfU1lTX0JBTks3X0VORCAmIE1JQ1JfQUREUl9NQVNLKSA+PiBNSUNSX0FERFJfU0hJRlQpIDw8IDI0KSk7CiAJQ09ORklHX1dSSVRFX1dPUkQoRU1FQVIyLAotCQkoIChDRkdfQkFOSzRfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSB8Ci0JCSgoKENGR19CQU5LNV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKLQkJKCgoQ0ZHX0JBTks2X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMTYpIHwKLQkJKCgoQ0ZHX0JBTks3X0VORCAmIE1JQ1JfRUFERFJfTUFTSykgPj4gTUlDUl9FQUREUl9TSElGVCkgPDwgMjQpKTsKKwkJKCAoQ09ORklHX1NZU19CQU5LNF9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LNV9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDgpIHwKKwkJKCgoQ09ORklHX1NZU19CQU5LNl9FTkQgJiBNSUNSX0VBRERSX01BU0spID4+IE1JQ1JfRUFERFJfU0hJRlQpIDw8IDE2KSB8CisJCSgoKENPTkZJR19TWVNfQkFOSzdfRU5EICYgTUlDUl9FQUREUl9NQVNLKSA+PiBNSUNSX0VBRERSX1NISUZUKSA8PCAyNCkpOwogCi0JQ09ORklHX1dSSVRFX0JZVEUoT0RDUiwgQ0ZHX09EQ1IpOwotI2lmZGVmIENGR19ETExfTUFYX0RFTEFZCi0JQ09ORklHX1dSSVRFX0JZVEUoTUlPQ1IxLCBDRkdfRExMX01BWF9ERUxBWSk7CS8qIG5lZWRlZCB0byBtYWtlIERMTCBsb2NrICovCisJQ09ORklHX1dSSVRFX0JZVEUoT0RDUiwgQ09ORklHX1NZU19PRENSKTsKKyNpZmRlZiBDT05GSUdfU1lTX0RMTF9NQVhfREVMQVkKKwlDT05GSUdfV1JJVEVfQllURShNSU9DUjEsIENPTkZJR19TWVNfRExMX01BWF9ERUxBWSk7CS8qIG5lZWRlZCB0byBtYWtlIERMTCBsb2NrICovCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19ETExfRVhURU5EKSAmJiBkZWZpbmVkKENGR19QQ0lfSE9MRF9ERUwpCi0JQ09ORklHX1dSSVRFX0JZVEUoUE1DUjIsIENGR19ETExfRVhURU5EIHwgQ0ZHX1BDSV9IT0xEX0RFTCk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RMTF9FWFRFTkQpICYmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfSE9MRF9ERUwpCisJQ09ORklHX1dSSVRFX0JZVEUoUE1DUjIsIENPTkZJR19TWVNfRExMX0VYVEVORCB8IENPTkZJR19TWVNfUENJX0hPTERfREVMKTsKICNlbmRpZgotI2lmIGRlZmluZWQoTUlPQ1IyKSAmJiBkZWZpbmVkKENGR19TRFJBTV9EU0NEKQotCUNPTkZJR19XUklURV9CWVRFKE1JT0NSMiwgQ0ZHX1NEUkFNX0RTQ0QpOwkvKiBjaGFuZ2UgbWVtb3J5IGlucHV0ICovCisjaWYgZGVmaW5lZChNSU9DUjIpICYmIGRlZmluZWQoQ09ORklHX1NZU19TRFJBTV9EU0NEKQorCUNPTkZJR19XUklURV9CWVRFKE1JT0NSMiwgQ09ORklHX1NZU19TRFJBTV9EU0NEKTsJLyogY2hhbmdlIG1lbW9yeSBpbnB1dCAqLwogI2VuZGlmIC8qIHNldHVwICYgaG9sZCB0aW1lICovCiAKIAlDT05GSUdfV1JJVEVfQllURShNQkVSLAotCQkgQ0ZHX0JBTkswX0VOQUJMRSB8Ci0JCShDRkdfQkFOSzFfRU5BQkxFIDw8IDEpIHwKLQkJKENGR19CQU5LMl9FTkFCTEUgPDwgMikgfAotCQkoQ0ZHX0JBTkszX0VOQUJMRSA8PCAzKSB8Ci0JCShDRkdfQkFOSzRfRU5BQkxFIDw8IDQpIHwKLQkJKENGR19CQU5LNV9FTkFCTEUgPDwgNSkgfAotCQkoQ0ZHX0JBTks2X0VOQUJMRSA8PCA2KSB8Ci0JCShDRkdfQkFOSzdfRU5BQkxFIDw8IDcpKTsKKwkJIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFIHwKKwkJKENPTkZJR19TWVNfQkFOSzFfRU5BQkxFIDw8IDEpIHwKKwkJKENPTkZJR19TWVNfQkFOSzJfRU5BQkxFIDw8IDIpIHwKKwkJKENPTkZJR19TWVNfQkFOSzNfRU5BQkxFIDw8IDMpIHwKKwkJKENPTkZJR19TWVNfQkFOSzRfRU5BQkxFIDw8IDQpIHwKKwkJKENPTkZJR19TWVNfQkFOSzVfRU5BQkxFIDw8IDUpIHwKKwkJKENPTkZJR19TWVNfQkFOSzZfRU5BQkxFIDw8IDYpIHwKKwkJKENPTkZJR19TWVNfQkFOSzdfRU5BQkxFIDw8IDcpKTsKIAotI2lmZGVmIENGR19QR01BWAotCUNPTkZJR19XUklURV9CWVRFKE1QTVIsIENGR19QR01BWCk7CisjaWZkZWYgQ09ORklHX1NZU19QR01BWAorCUNPTkZJR19XUklURV9CWVRFKE1QTVIsIENPTkZJR19TWVNfUEdNQVgpOwogI2VuZGlmCiAKIAkvKiAhIFdhaXQgMjAwdXMgYmVmb3JlIGluaXRpYWxpemUgb3RoZXIgcmVnaXN0ZXJzICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODI0eC9kcml2ZXJzL2VwaWMvZXBpYzEuYyBiL2NwdS9tcGM4MjR4L2RyaXZlcnMvZXBpYy9lcGljMS5jCmluZGV4IGY4OWRlZWQuLmVjYmI0MmQgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjR4L2RyaXZlcnMvZXBpYy9lcGljMS5jCisrKyBiL2NwdS9tcGM4MjR4L2RyaXZlcnMvZXBpYy9lcGljMS5jCkBAIC0zMTEsNyArMzExLDcgQEAKICAgICB7CiAgICAgVUxPTkcgdGVtcDsKIAotICAgIHRlbXAgPSAqKFVMT05HICopIChDRkdfRVVNQl9BRERSICsgcmVnTnVtKTsKKyAgICB0ZW1wID0gKihVTE9ORyAqKSAoQ09ORklHX1NZU19FVU1CX0FERFIgKyByZWdOdW0pOwogICAgIHJldHVybiAoIExPTkdTV0FQKHRlbXApKTsKICAgICB9CiAKQEAgLTMzMSw3ICszMzEsNyBAQAogICAgICkKICAgICB7CiAKLSAgICAqKFVMT05HICopIChDRkdfRVVNQl9BRERSICsgcmVnTnVtKSA9IExPTkdTV0FQKHJlZ1ZhbCk7CisgICAgKihVTE9ORyAqKSAoQ09ORklHX1NZU19FVU1CX0FERFIgKyByZWdOdW0pID0gTE9OR1NXQVAocmVnVmFsKTsKICAgICByZXR1cm4gOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNHgvZHJpdmVycy9pMmMvaTJjLmMgYi9jcHUvbXBjODI0eC9kcml2ZXJzL2kyYy9pMmMuYwppbmRleCAzYWRkNjg3Li44NTQzNDVlIDEwMDY0NAotLS0gYS9jcHUvbXBjODI0eC9kcml2ZXJzL2kyYy9pMmMuYworKysgYi9jcHUvbXBjODI0eC9kcml2ZXJzL2kyYy9pMmMuYwpAQCAtMzEsOSArMzEsOSBAQAogI2lmZGVmIENPTkZJR19IQVJEX0kyQwogI2luY2x1ZGUgPGkyYy5oPgogCi0jZGVmaW5lIFRJTUVPVVQgKENGR19IWi80KQorI2RlZmluZSBUSU1FT1VUIChDT05GSUdfU1lTX0haLzQpCiAKLSNkZWZpbmUgSTJDX0FkZHIgKCh1bnNpZ25lZCAqKShDRkdfRVVNQl9BRERSICsgMHgzMDAwKSkKKyNkZWZpbmUgSTJDX0FkZHIgKCh1bnNpZ25lZCAqKShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4MzAwMCkpCiAKICNkZWZpbmUgSTJDQURSICZJMkNfQWRkclswXQogI2RlZmluZSBJMkNGRFIgICZJMkNfQWRkclsxXQpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jIGIvY3B1L21wYzgyNHgvaW50ZXJydXB0cy5jCmluZGV4IDQzNTllY2MuLjEzOWM1MmMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjR4L2ludGVycnVwdHMuYworKysgYi9jcHUvbXBjODI0eC9pbnRlcnJ1cHRzLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogaW50IGludGVycnVwdF9pbml0X2NwdSAodW5zaWduZWQgKmRlY3JlbWVudGVyX2NvdW50KQogewotCSpkZWNyZW1lbnRlcl9jb3VudCA9IChnZXRfYnVzX2ZyZXEgKDApIC8gNCkgLyBDRkdfSFo7CisJKmRlY3JlbWVudGVyX2NvdW50ID0gKGdldF9idXNfZnJlcSAoMCkgLyA0KSAvIENPTkZJR19TWVNfSFo7CiAKIAkvKgogCSAqIEl0J3MgYWxsIGJyb2tlbiBhdCB0aGUgbW9tZW50IGFuZCBJIGN1cnJlbnRseSBkb24ndCBuZWVkCkBAIC01Nyw3ICs1Nyw3IEBACiB7CiAJcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyB0ZW1wOwogCi0JcGNpX3JlYWRsIChDRkdfRVVNQl9BRERSICsgRVBJQ19QUk9DX0lOVF9BQ0tfUkVHLCB0ZW1wKTsKKwlwY2lfcmVhZGwgKENPTkZJR19TWVNfRVVNQl9BRERSICsgRVBJQ19QUk9DX0lOVF9BQ0tfUkVHLCB0ZW1wKTsKIAlzeW5jICgpOwkJCQkJLyogaSdtIG5vdCBjb252aW5jZWQgdGhpcyBpcyBuZWVkZWQsIGJ1dCBkaW5rIHNvdXJjZSBoYXMgaXQgKi8KIAl0ZW1wICY9IDB4ZmY7CQkJCS8qZ2V0IHZlY3RvciAqLwogCmRpZmYgLS1naXQgYS9jcHUvbXBjODI0eC9zdGFydC5TIGIvY3B1L21wYzgyNHgvc3RhcnQuUwppbmRleCA3ODRlZGMzLi5iNWQ3ZWIxIDEwMDY0NAotLS0gYS9jcHUvbXBjODI0eC9zdGFydC5TCisrKyBiL2NwdS9tcGM4MjR4L3N0YXJ0LlMKQEAgLTE1Nyw4ICsxNTcsOCBAQAogCiAJLyogQWxsb2NhdGUgSW5pdGlhbCBSQU0gaW4gZGF0YSBjYWNoZS4KIAkgKi8KLQlsaXMJcjMsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU5JVF9SQU1fQUREUkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCiAJbGkJcjIsIDEyOAogCW10Y3RyCXIyCiAxOgpAQCAtMTgwLDggKzE4MCw4IEBACiAJICogVGhpc2sgdGhlIHN0YWNrIHBvaW50ZXIgKnNvbWV3aGVyZSogc2Vuc2libGUuIERvZXNudAogCSAqIG1hdHRlciBtdWNoIHdoZXJlIGFzIHdlJ2xsIG1vdmUgaXQgd2hlbiB3ZSByZWxvY2F0ZQogCSAqLwotCWxpcwlyMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVClAaAotCW9yaQlyMSwgcjEsIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpQGwKKwlsaXMJcjEsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVClAaAorCW9yaQlyMSwgcjEsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVClAbAogCiAJbGkJcjAsIDAJCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQJKi8KIAlzdHd1CXIwLCAtNChyMSkJCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KQEAgLTQ3NSwyMSArNDc1LDIxIEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotI2lmZGVmIENGR19SQU1CT09UCi0JbGlzCXI0LCBDRkdfU0RSQU1fQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX1NEUkFNX0JBU0VAbAorI2lmZGVmIENPTkZJR19TWVNfUkFNQk9PVAorCWxpcwlyNCwgQ09ORklHX1NZU19TRFJBTV9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX1NEUkFNX0JBU0VAbAogI2Vsc2UKLQlsaXMJcjQsIENGR19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcwkqLwotCW9yaQlyNCwgcjQsIENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcwkqLworCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKICNlbmRpZgogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCisJICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCiAJICoKIAkgKiBPZmZzZXQ6CiAJICovCkBAIC01MzEsOCArNTMxLDggQEAKIC8qIFVubG9jayB0aGUgZGF0YSBjYWNoZSBhbmQgaW52YWxpZGF0ZSBsb2NrZWQgYXJlYSAqLwogCXhvcglyMCwgcjAsIHIwCiAJbXRzcHIJMTAxMSwgcjAKLQlsaXMJcjQsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjQsIHI0LCBDRkdfSU5JVF9SQU1fQUREUkBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCiAJbGkJcjAsIDEyOAogCW10Y3RyCXIwCiA0MToKQEAgLTcwOSw2NiArNzA5LDY2IEBACiAJLyogU2V0dXAgdGhlIEJBVCByZWdpc3RlcnMuCiAJICovCiBzZXR1cF9iYXRzOgotCWxpcwlyNCwgQ0ZHX0lCQVQwTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQwTEBsCi0JbGlzCXIzLCBDRkdfSUJBVDBVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDBVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDBMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQwTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQwVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUMFVAbAogCW10c3ByCUlCQVQwTCwgcjQKIAltdHNwcglJQkFUMFUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0RCQVQwTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQwTEBsCi0JbGlzCXIzLCBDRkdfREJBVDBVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDBVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfREJBVDBMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQwTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQwVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUMFVAbAogCW10c3ByCURCQVQwTCwgcjQKIAltdHNwcglEQkFUMFUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0lCQVQxTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQxTEBsCi0JbGlzCXIzLCBDRkdfSUJBVDFVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDFVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDFMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQxTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQxVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUMVVAbAogCW10c3ByCUlCQVQxTCwgcjQKIAltdHNwcglJQkFUMVUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0RCQVQxTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQxTEBsCi0JbGlzCXIzLCBDRkdfREJBVDFVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDFVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfREJBVDFMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQxTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQxVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUMVVAbAogCW10c3ByCURCQVQxTCwgcjQKIAltdHNwcglEQkFUMVUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0lCQVQyTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQyTEBsCi0JbGlzCXIzLCBDRkdfSUJBVDJVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDJVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDJMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQyTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQyVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUMlVAbAogCW10c3ByCUlCQVQyTCwgcjQKIAltdHNwcglJQkFUMlUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0RCQVQyTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQyTEBsCi0JbGlzCXIzLCBDRkdfREJBVDJVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDJVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfREJBVDJMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQyTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQyVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUMlVAbAogCW10c3ByCURCQVQyTCwgcjQKIAltdHNwcglEQkFUMlUsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0lCQVQzTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQzTEBsCi0JbGlzCXIzLCBDRkdfSUJBVDNVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDNVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDNMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQzTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQzVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUM1VAbAogCW10c3ByCUlCQVQzTCwgcjQKIAltdHNwcglJQkFUM1UsIHIzCiAJaXN5bmMKIAotCWxpcwlyNCwgQ0ZHX0RCQVQzTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQzTEBsCi0JbGlzCXIzLCBDRkdfREJBVDNVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDNVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfREJBVDNMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQzTEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQzVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUM1VAbAogCW10c3ByCURCQVQzTCwgcjQKIAltdHNwcglEQkFUM1UsIHIzCiAJaXN5bmMKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL2NvbW1wcm9jLmMgYi9jcHUvbXBjODI2MC9jb21tcHJvYy5jCmluZGV4IDg3NzdlNzcuLjk0ZjZiYzIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2NvbW1wcm9jLmMKKysrIGIvY3B1L21wYzgyNjAvY29tbXByb2MuYwpAQCAtMjUsNyArMjUsNyBAQAogdm9pZAogbTgyNjBfY3BtX3Jlc2V0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHVsb25nIGNvdW50OwogCiAJLyogUmVjbGFpbSB0aGUgRFAgbWVtb3J5IGZvciBvdXIgdXNlLgpAQCAtNTQsNyArNTQsNyBAQAogdWludAogbTgyNjBfY3BtX2RwYWxsb2ModWludCBzaXplLCB1aW50IGFsaWduKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1aW50CXJldGxvYzsKIAl1aW50CWFsaWduX21hc2ssIG9mZjsKIAl1aW50CXNhdmViYXNlOwpAQCAtMTEwLDcgKzExMCw3IEBACiB2b2lkCiBtODI2MF9jcG1fc2V0YnJnKHVpbnQgYnJnLCB1aW50IHJhdGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHVpbnQJKmJwOwogCXVpbnQgY2QgPSBCUkdfVUFSVF9DTEsgLyByYXRlOwogCkBAIC0xMzMsNyArMTMzLDcgQEAKIHZvaWQKIG04MjYwX2NwbV9mYXN0YnJnKHVpbnQgYnJnLCB1aW50IHJhdGUsIGludCBkaXYxNikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgdWludAkqYnA7CiAKIAkvKiBUaGlzIGlzIGdvb2QgZW5vdWdoIHRvIGdldCBTTUNzIHJ1bm5pbmcuLi4uLgpAQCAtMTU4LDcgKzE1OCw3IEBACiB2b2lkCiBtODI2MF9jcG1fZXh0Y2JyZyh1aW50IGJyZywgdWludCByYXRlLCB1aW50IGV4dGNsaywgaW50IHBpbnNlbCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgdWludAkqYnA7CiAKIAlpZiAoYnJnIDwgNCkgewpAQCAtMTgxLDcgKzE4MSw3IEBACiB2b2lkIHBvc3Rfd29yZF9zdG9yZSAodWxvbmcgYSkKIHsKIAl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0KLQkJKHZvbGF0aWxlIHVsb25nICopKENGR19JTU1SICsgQ1BNX1BPU1RfV09SRF9BRERSKTsKKwkJKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfSU1NUiArIENQTV9QT1NUX1dPUkRfQUREUik7CiAKIAkqc2F2ZV9hZGRyID0gYTsKIH0KQEAgLTE4OSw3ICsxODksNyBAQAogdWxvbmcgcG9zdF93b3JkX2xvYWQgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKShDRkdfSU1NUiArIENQTV9QT1NUX1dPUkRfQUREUik7CisJCSh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX0lNTVIgKyBDUE1fUE9TVF9XT1JEX0FERFIpOwogCiAJcmV0dXJuICpzYXZlX2FkZHI7CiB9CkBAIC0yMDEsNyArMjAxLDcgQEAKIHZvaWQgYm9vdGNvdW50X3N0b3JlICh1bG9uZyBhKQogewogCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPQotCQkodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX0lNTVIgKyBDUE1fQk9PVENPVU5UX0FERFIpOworCQkodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19JTU1SICsgQ1BNX0JPT1RDT1VOVF9BRERSKTsKIAogCXNhdmVfYWRkclswXSA9IGE7CiAJc2F2ZV9hZGRyWzFdID0gQk9PVENPVU5UX01BR0lDOwpAQCAtMjEwLDcgKzIxMCw3IEBACiB1bG9uZyBib290Y291bnRfbG9hZCAodm9pZCkKIHsKIAl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0KLQkJKHZvbGF0aWxlIHVsb25nICopKENGR19JTU1SICsgQ1BNX0JPT1RDT1VOVF9BRERSKTsKKwkJKHZvbGF0aWxlIHVsb25nICopKENPTkZJR19TWVNfSU1NUiArIENQTV9CT09UQ09VTlRfQUREUik7CiAKIAlpZiAoc2F2ZV9hZGRyWzFdICE9IEJPT1RDT1VOVF9NQUdJQykKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9jcHUuYyBiL2NwdS9tcGM4MjYwL2NwdS5jCmluZGV4IGVmYjhlZDYuLjlmODM0ZDMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2NwdS5jCisrKyBiL2NwdS9tcGM4MjYwL2NwdS5jCkBAIC02MSw3ICs2MSw3IEBACiAKIGludCBjaGVja2NwdSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIGNsb2NrID0gZ2QtPmNwdV9jbGs7CiAJdWludCBwdnIgPSBnZXRfcHZyICgpOwogCXVpbnQgaW1tciwgcmV2LCBtLCBrOwpAQCAtODgsNyArODgsNyBAQAogCXJldiA9IHB2ciAmIDB4ZmY7CiAKIAlpbW1yID0gaW1tYXAtPmltX21lbWN0bC5tZW1jX2ltbXI7Ci0JaWYgKChpbW1yICYgSU1NUl9JU0JfTVNLKSAhPSBDRkdfSU1NUikKKwlpZiAoKGltbXIgJiBJTU1SX0lTQl9NU0spICE9IENPTkZJR19TWVNfSU1NUikKIAkJcmV0dXJuIC0xOwkvKiB3aG9vcHMhIHNvbWVvbmUgbW92ZWQgdGhlIElNTVIgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0dFVF9DUFVfU1RSX0YpCkBAIC0xNzgsNyArMTc4LDcgQEAKIAogdm9pZCB1cG1jb25maWcgKHVpbnQgdXBtLCB1aW50ICogdGFibGUsIHVpbnQgc2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDgyNjBfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdm9sYXRpbGUgdWNoYXIgKmR1bW15ID0gKHVjaGFyICopIEJSeF9CQV9NU0s7CS8qIHNldCBhbGwgQkEgYml0cyAqLwogCXVpbnQgaTsKQEAgLTI0MSw3ICsyNDEsNyBAQAogewogCXVsb25nIG1zciwgYWRkcjsKIAotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1hcC0+aW1fY2xrcnN0LmNhcl9ybXIgPSBSTVJfQ1NSRTsJLyogQ2hlY2tzdG9wIFJlc2V0IGVuYWJsZSAqLwogCkBAIC0yNTUsMTUgKzI1NSwxNSBAQAogCSAqIFRyeWluZyB0byBleGVjdXRlIHRoZSBuZXh0IGluc3RydWN0aW9uIGF0IGEgbm9uLWV4aXN0aW5nIGFkZHJlc3MKIAkgKiBzaG91bGQgY2F1c2UgYSBtYWNoaW5lIGNoZWNrLCByZXN1bHRpbmcgaW4gcmVzZXQKIAkgKi8KLSNpZmRlZiBDRkdfUkVTRVRfQUREUkVTUwotCWFkZHIgPSBDRkdfUkVTRVRfQUREUkVTUzsKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKKwlhZGRyID0gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTOwogI2Vsc2UKIAkvKgotCSAqIG5vdGU6IHdoZW4gQ0ZHX01PTklUT1JfQkFTRSBwb2ludHMgdG8gYSBSQU0gYWRkcmVzcywgQ0ZHX01PTklUT1JfQkFTRQorCSAqIG5vdGU6IHdoZW4gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAJICogLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQgYWRkcmVzcy4gQmV0dGVyIHBpY2sgYW4gYWRkcmVzcwotCSAqIGtub3duIHRvIGJlIGludmFsaWQgb24geW91ciBzeXN0ZW0gYW5kIGFzc2lnbiBpdCB0byBDRkdfUkVTRVRfQUREUkVTUy4KKwkgKiBrbm93biB0byBiZSBpbnZhbGlkIG9uIHlvdXIgc3lzdGVtIGFuZCBhc3NpZ24gaXQgdG8gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTLgogCSAqLwotCWFkZHIgPSBDRkdfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CisJYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CiAjZW5kaWYKIAkoKHZvaWQgKCopKHZvaWQpKSBhZGRyKSAoKTsKIAlyZXR1cm4gMTsKQEAgLTI5Myw3ICsyOTMsNyBAQAogewogCWludCByZV9lbmFibGUgPSBkaXNhYmxlX2ludGVycnVwdHMgKCk7CiAKLQlyZXNldF84MjYwX3dhdGNoZG9nICgoaW1tYXBfdCAqKSBDRkdfSU1NUik7CisJcmVzZXRfODI2MF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKTsKIAlpZiAocmVfZW5hYmxlKQogCQllbmFibGVfaW50ZXJydXB0cyAoKTsKIH0KZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL2NwdV9pbml0LmMgYi9jcHUvbXBjODI2MC9jcHVfaW5pdC5jCmluZGV4IDM2ZmMxZWIuLjFkNTI3NzMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzgyNjAvY3B1X2luaXQuYwpAQCAtMTE0LDcgKzExNCw3IEBACiAJZXh0ZXJuIHZvaWQgbTgyNjBfY3BtX3Jlc2V0ICh2b2lkKTsKIAogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0ICovCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0ICgodm9pZCAqKSBnZCwgMCwgc2l6ZW9mIChnZF90KSk7CkBAIC0xMjQsNDUgKzEyNCw0NSBAQAogCWltbXItPmltX2Nsa3JzdC5jYXJfcnNyID0gUlNSX0FMTEJJVFM7CiAKIAkvKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyIC0gY29udGFpbnMgY2hlY2tzdG9wIHJlc2V0IGVuYWJsZSAoNS01KSAqLwotCWltbXItPmltX2Nsa3JzdC5jYXJfcm1yID0gQ0ZHX1JNUjsKKwlpbW1yLT5pbV9jbGtyc3QuY2FyX3JtciA9IENPTkZJR19TWVNfUk1SOwogCiAJLyogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKDQtMjUpICovCi0jaWYgZGVmaW5lZChDRkdfQkNSXzYweCkgJiYgKENGR19CQ1JfU0lOR0xFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19CQ1JfNjB4KSAmJiAoQ09ORklHX1NZU19CQ1JfU0lOR0xFKQogCWlmIChpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IgJiBCQ1JfRUJNKSB7Ci0JCWltbXItPmltX3NpdV9jb25mLnNjX2JjciA9IFNFVF9WQUxfTUFTSyhpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IsIENGR19CQ1JfNjB4LCAweDgwMDAwMDEwKTsKKwkJaW1tci0+aW1fc2l1X2NvbmYuc2NfYmNyID0gU0VUX1ZBTF9NQVNLKGltbXItPmltX3NpdV9jb25mLnNjX2JjciwgQ09ORklHX1NZU19CQ1JfNjB4LCAweDgwMDAwMDEwKTsKIAl9IGVsc2UgewotCQlpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IgPSBTRVRfVkFMX01BU0soaW1tci0+aW1fc2l1X2NvbmYuc2NfYmNyLCBDRkdfQkNSX1NJTkdMRSwgMHg4MDAwMDAxMCk7CisJCWltbXItPmltX3NpdV9jb25mLnNjX2JjciA9IFNFVF9WQUxfTUFTSyhpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IsIENPTkZJR19TWVNfQkNSX1NJTkdMRSwgMHg4MDAwMDAxMCk7CiAJfQogI2Vsc2UKLQlpbW1yLT5pbV9zaXVfY29uZi5zY19iY3IgPSBDRkdfQkNSOworCWltbXItPmltX3NpdV9jb25mLnNjX2JjciA9IENPTkZJR19TWVNfQkNSOwogI2VuZGlmCiAKIAkvKiBTSVVNQ1IgLSBjb250YWlucyBkZWJ1ZyBwaW4gY29uZmlndXJhdGlvbiAoNC0zMSkgKi8KLSNpZiBkZWZpbmVkKENGR19TSVVNQ1JfTE9XKSAmJiAoQ0ZHX1NJVU1DUl9ISUdIKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19TSVVNQ1JfTE9XKSAmJiAoQ09ORklHX1NZU19TSVVNQ1JfSElHSCkKIAljcHVfY2xrID0gYm9hcmRfZ2V0X2NwdV9jbGtfZiAoKTsKIAlpZiAoY3B1X2NsayA+PSAxMDAwMDAwMDApIHsKLQkJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gU0VUX1ZBTF9NQVNLKGltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciwgQ0ZHX1NJVU1DUl9ISUdILCAweDlmM2NjMDAwKTsKKwkJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gU0VUX1ZBTF9NQVNLKGltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciwgQ09ORklHX1NZU19TSVVNQ1JfSElHSCwgMHg5ZjNjYzAwMCk7CiAJfSBlbHNlIHsKLQkJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gU0VUX1ZBTF9NQVNLKGltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciwgQ0ZHX1NJVU1DUl9MT1csIDB4OWYzY2MwMDApOworCQlpbW1yLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgPSBTRVRfVkFMX01BU0soaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyLCBDT05GSUdfU1lTX1NJVU1DUl9MT1csIDB4OWYzY2MwMDApOwogCX0KICNlbHNlCi0JaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gQ0ZHX1NJVU1DUjsKKwlpbW1yLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgPSBDT05GSUdfU1lTX1NJVU1DUjsKICNlbmRpZgogCiAJY29uZmlnXzgyNjBfaW9wb3J0cyAoaW1tcik7CiAKIAkvKiBpbml0aWFsaXplIHRpbWUgY291bnRlciBzdGF0dXMgYW5kIGNvbnRyb2wgcmVnaXN0ZXIgKDQtNDApICovCi0JaW1tci0+aW1fc2l0LnNpdF90bWNudHNjID0gQ0ZHX1RNQ05UU0M7CisJaW1tci0+aW1fc2l0LnNpdF90bWNudHNjID0gQ09ORklHX1NZU19UTUNOVFNDOwogCiAJLyogaW5pdGlhbGl6ZSB0aGUgUElUICg0LTQyKSAqLwotCWltbXItPmltX3NpdC5zaXRfcGlzY3IgPSBDRkdfUElTQ1I7CisJaW1tci0+aW1fc2l0LnNpdF9waXNjciA9IENPTkZJR19TWVNfUElTQ1I7CiAKICNpZiAhZGVmaW5lZChDT05GSUdfQ09HRU5UKQkJLyogZG9uZSBpbiBzdGFydC5TIGZvciB0aGUgY29nZW50ICovCiAJLyogU3lzdGVtIGNsb2NrIGNvbnRyb2wgcmVnaXN0ZXIgKDktOCkgKi8KIAlzY2NyID0gaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyICYKIAkJKFNDQ1JfUENJX01PREUgfCBTQ0NSX1BDSV9NT0RDSyB8IFNDQ1JfUENJREZfTVNLKTsKIAlpbW1yLT5pbV9jbGtyc3QuY2FyX3NjY3IgPSBzY2NyIHwKLQkJKENGR19TQ0NSICYgfihTQ0NSX1BDSV9NT0RFIHwgU0NDUl9QQ0lfTU9EQ0sgfCBTQ0NSX1BDSURGX01TSykgKTsKKwkJKENPTkZJR19TWVNfU0NDUiAmIH4oU0NDUl9QQ0lfTU9ERSB8IFNDQ1JfUENJX01PRENLIHwgU0NDUl9QQ0lERl9NU0spICk7CiAjZW5kaWYgLyogIUNPTkZJR19DT0dFTlQgKi8KIAogCS8qCkBAIC0xNzQsNzEgKzE3NCw3MSBAQAogCSAqIGhhcyBiZWVuIGRldGVybWluZWQKIAkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX09SMF9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SMF9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SMF9SRU1BUDsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX09SMV9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IxX1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9SRU1BUDsKICNlbmRpZgogCiAJLyogbm93IHJlc3RyaWN0IHRvIHByZWxpbWluYXJ5IHJhbmdlICovCiAJLyogdGhlIFBTIGNhbWUgZnJvbSB0aGUgSFJDVywgZG9utHQgY2hhbmdlIGl0ICovCi0JbWVtY3RsLT5tZW1jX2JyMCA9IFNFVF9WQUxfTUFTSyhtZW1jdGwtPm1lbWNfYnIwICwgQ0ZHX0JSMF9QUkVMSU0sIEJSeF9QU19NU0spOwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1IwX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIwID0gU0VUX1ZBTF9NQVNLKG1lbWN0bC0+bWVtY19icjAgLCBDT05GSUdfU1lTX0JSMF9QUkVMSU0sIEJSeF9QU19NU0spOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SMF9QUkVMSU07CiAKLSNpZiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjFfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjEgPSBDRkdfT1IxX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIxID0gQ0ZHX0JSMV9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMV9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjFfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMSA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3IyID0gQ0ZHX09SMl9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMiA9IENGR19CUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjIgPSBDT05GSUdfU1lTX0JSMl9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSM19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SM19QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjMgPSBDRkdfQlIzX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yMyA9IENPTkZJR19TWVNfT1IzX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjRfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjRfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjQgPSBDRkdfT1I0X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnI0ID0gQ0ZHX0JSNF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSNF9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjRfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyNCA9IENPTkZJR19TWVNfQlI0X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I1X1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3I1ID0gQ0ZHX09SNV9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyNSA9IENGR19CUjVfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3I1ID0gQ09ORklHX1NZU19PUjVfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjUgPSBDT05GSUdfU1lTX0JSNV9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSNl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNl9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yNiA9IENGR19PUjZfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjYgPSBDRkdfQlI2X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI2X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNl9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yNiA9IENPTkZJR19TWVNfT1I2X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI2ID0gQ09ORklHX1NZU19CUjZfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjdfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjdfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjcgPSBDRkdfT1I3X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnI3ID0gQ0ZHX0JSN19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSN19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjdfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjcgPSBDT05GSUdfU1lTX09SN19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyNyA9IENPTkZJR19TWVNfQlI3X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI4X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I4X1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3I4ID0gQ0ZHX09SOF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyOCA9IENGR19CUjhfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjhfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I4X1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3I4ID0gQ09ORklHX1NZU19PUjhfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjggPSBDT05GSUdfU1lTX0JSOF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSOV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SOV9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yOSA9IENGR19PUjlfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjkgPSBDRkdfQlI5X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI5X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SOV9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yOSA9IENPTkZJR19TWVNfT1I5X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI5ID0gQ09ORklHX1NZU19CUjlfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjEwX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IxMF9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yMTAgPSBDRkdfT1IxMF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyMTAgPSBDRkdfQlIxMF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMTBfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IxMF9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yMTAgPSBDT05GSUdfU1lTX09SMTBfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEwID0gQ09ORklHX1NZU19CUjEwX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlIxMV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SMTFfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjExID0gQ0ZHX09SMTFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjExID0gQ0ZHX0JSMTFfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjExX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMTFfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjExID0gQ09ORklHX1NZU19PUjExX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIxMSA9IENPTkZJR19TWVNfQlIxMV9QUkVMSU07CiAjZW5kaWYKIAogCW04MjYwX2NwbV9yZXNldCAoKTsKQEAgLTI1MSw3ICsyNTEsNyBAQAogewogCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBnZC0+YmQtPmJpX2ltbXJfYmFzZTsKIAotCWltbXItPmltX2NwbS5jcF9yY2NyID0gQ0ZHX1JDQ1I7CisJaW1tci0+aW1fY3BtLmNwX3JjY3IgPSBDT05GSUdfU1lTX1JDQ1I7CiAKIAlyZXR1cm4gKDApOwogfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNjAvZXRoZXJfZmNjLmMgYi9jcHUvbXBjODI2MC9ldGhlcl9mY2MuYwppbmRleCAzN2JmNDQ1Li4zYWI1N2ViIDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC9ldGhlcl9mY2MuYworKysgYi9jcHUvbXBjODI2MC9ldGhlcl9mY2MuYwpAQCAtNzMsOCArNzMsOCBAQAogCVBST0ZGX0ZDQzEsCiAJQ1BNX0NSX0ZDQzFfU0JMT0NLLAogCUNQTV9DUl9GQ0MxX1BBR0UsCi0JQ0ZHX0NNWEZDUl9NQVNLMSwKLQlDRkdfQ01YRkNSX1ZBTFVFMQorCUNPTkZJR19TWVNfQ01YRkNSX01BU0sxLAorCUNPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMQogfSwKICNlbmRpZgogCkBAIC04NCw4ICs4NCw4IEBACiAJUFJPRkZfRkNDMiwKIAlDUE1fQ1JfRkNDMl9TQkxPQ0ssCiAJQ1BNX0NSX0ZDQzJfUEFHRSwKLQlDRkdfQ01YRkNSX01BU0syLAotCUNGR19DTVhGQ1JfVkFMVUUyCisJQ09ORklHX1NZU19DTVhGQ1JfTUFTSzIsCisJQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUyCiB9LAogI2VuZGlmCiAKQEAgLTk1LDggKzk1LDggQEAKIAlQUk9GRl9GQ0MzLAogCUNQTV9DUl9GQ0MzX1NCTE9DSywKIAlDUE1fQ1JfRkNDM19QQUdFLAotCUNGR19DTVhGQ1JfTUFTSzMsCi0JQ0ZHX0NNWEZDUl9WQUxVRTMKKwlDT05GSUdfU1lTX0NNWEZDUl9NQVNLMywKKwlDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTMKIH0sCiAjZW5kaWYKIH07CkBAIC0yMjUsNyArMjI1LDcgQEAKIHsKICAgICBzdHJ1Y3QgZXRoZXJfZmNjX2luZm9fcyAqIGluZm8gPSBkZXYtPnByaXY7CiAgICAgaW50IGk7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIHZvbGF0aWxlIGNwbTgyNjBfdCAqY3AgPSAmKGltbXItPmltX2NwbSk7CiAgICAgZmNjX2VuZXRfdCAqcHJhbV9wdHI7CiAgICAgdW5zaWduZWQgbG9uZyBtZW1fYWRkcjsKQEAgLTI0Niw3ICsyNDYsNyBAQAogICAgICAgRkNDX0dGTVJfTU9ERV9FTkVUIHwgRkNDX0dGTVJfVENSQ18zMjsKIAogICAgIC8qIDI4LjkgLSAoNSk6IEZQU01SOiBlbmFibGUgZnVsbCBkdXBsZXgsIHNlbGVjdCBDQ0lUVCBDUkMgZm9yIEV0aGVybmV0ICovCi0gICAgaW1tci0+aW1fZmNjW2luZm8tPmV0aGVyX2luZGV4XS5mY2NfZnBzbXIgPSBDRkdfRkNDX1BTTVIgfCBGQ0NfUFNNUl9FTkNSQzsKKyAgICBpbW1yLT5pbV9mY2NbaW5mby0+ZXRoZXJfaW5kZXhdLmZjY19mcHNtciA9IENPTkZJR19TWVNfRkNDX1BTTVIgfCBGQ0NfUFNNUl9FTkNSQzsKIAogICAgIC8qIDI4LjkgLSAoNik6IEZEU1I6IEV0aGVybmV0IFN5biAqLwogICAgIGltbXItPmltX2ZjY1tpbmZvLT5ldGhlcl9pbmRleF0uZmNjX2Zkc3IgPSAweEQ1NTU7CkBAIC0yOTYsMTAgKzI5NiwxMCBAQAogICAgICAqLwogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY19tcmJsciA9IFBLVF9NQVhCTFJfU0laRTsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfcnN0YXRlID0gKENQTUZDUl9HQkwgfCBDUE1GQ1JfRUIgfAotCQkJCSAgICAgICBDRkdfQ1BNRkNSX1JBTVRZUEUpIDw8IDI0OworCQkJCSAgICAgICBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFKSA8PCAyNDsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfcmJhc2UgPSAodW5zaWduZWQgaW50KSgmcnR4LnJ4YmRbcnhJZHhdKTsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfdHN0YXRlID0gKENQTUZDUl9HQkwgfCBDUE1GQ1JfRUIgfAotCQkJCSAgICAgICBDRkdfQ1BNRkNSX1JBTVRZUEUpIDw8IDI0OworCQkJCSAgICAgICBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFKSA8PCAyNDsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfdGJhc2UgPSAodW5zaWduZWQgaW50KSgmcnR4LnR4YmRbdHhJZHhdKTsKIAogICAgIC8qIHByb3RvY29sLXNwZWNpZmljIGFyZWEgKi8KQEAgLTM2Niw3ICszNjYsNyBAQAogc3RhdGljIHZvaWQgZmVjX2hhbHQoc3RydWN0IGV0aF9kZXZpY2UqIGRldikKIHsKICAgICBzdHJ1Y3QgZXRoZXJfZmNjX2luZm9fcyAqIGluZm8gPSBkZXYtPnByaXY7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAgICAgLyogd3JpdGUgR0ZNUjogZGlzYWJsZSB0eC9yeCAqLwogICAgIGltbXItPmltX2ZjY1tpbmZvLT5ldGhlcl9pbmRleF0uZmNjX2dmbXIgJj0KQEAgLTY0Niw3ICs2NDYsNyBAQAogdm9pZAogZXRoX2xvb3BiYWNrX3Rlc3QgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTgyNjBfdCAqY3AgPSAmKGltbXItPmltX2NwbSk7CiAJaW50IGMsIG5jbG9zZWQ7CiAJdWxvbmcgcnVudGltZSwgbm1zZWM7CmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9ldGhlcl9zY2MuYyBiL2NwdS9tcGM4MjYwL2V0aGVyX3NjYy5jCmluZGV4IDYzM2QwNTMuLmM2NWYwZTAgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2V0aGVyX3NjYy5jCisrKyBiL2NwdS9tcGM4MjYwL2V0aGVyX3NjYy5jCkBAIC03Nyw4ICs3Nyw4IEBACiAKICNkZWZpbmUgVFhfQlVGX0NOVCAyCiAKLSNpZiAhZGVmaW5lZChDRkdfU0NDX1RPVVRfTE9PUCkKLSAgI2RlZmluZSBDRkdfU0NDX1RPVVRfTE9PUCAxMDAwMDAwCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19TQ0NfVE9VVF9MT09QKQorICAjZGVmaW5lIENPTkZJR19TWVNfU0NDX1RPVVRfTE9PUCAxMDAwMDAwCiAjZW5kaWYKIAogc3RhdGljIGNoYXIgdHhidWZbVFhfQlVGX0NOVF1bIERCVUZfTEVOR1RIIF07CkBAIC0xMTEsNyArMTExLDcgQEAKICAgICB9CiAKICAgICBmb3IoaT0wOyBydHgtPnR4YmRbdHhJZHhdLmNiZF9zYyAmIEJEX0VORVRfVFhfUkVBRFk7IGkrKykgewotCWlmIChpID49IENGR19TQ0NfVE9VVF9MT09QKSB7CisJaWYgKGkgPj0gQ09ORklHX1NZU19TQ0NfVE9VVF9MT09QKSB7CiAJICAgIHB1dHMgKCJzY2M6IHR4IGJ1ZmZlciBub3QgcmVhZHlcbiIpOwogCSAgICBnb3RvIG91dDsKIAl9CkBAIC0xMjMsNyArMTIzLDcgQEAKIAkJCQlCRF9FTkVUX1RYX1dSQVApOwogCiAgICAgZm9yKGk9MDsgcnR4LT50eGJkW3R4SWR4XS5jYmRfc2MgJiBCRF9FTkVUX1RYX1JFQURZOyBpKyspIHsKLQlpZiAoaSA+PSBDRkdfU0NDX1RPVVRfTE9PUCkgeworCWlmIChpID49IENPTkZJR19TWVNfU0NDX1RPVVRfTE9PUCkgewogCSAgICBwdXRzICgic2NjOiB0eCBlcnJvclxuIik7CiAJICAgIGdvdG8gb3V0OwogCX0KQEAgLTE4Nyw3ICsxODcsNyBAQAogaW50IGV0aF9pbml0KGJkX3QgKmJpcykKIHsKICAgICBpbnQgaTsKLSAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyAgICB2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAgICAgc2NjX2VuZXRfdCAqcHJhbV9wdHI7CiAgICAgdWludCBkcGFkZHI7CiAKQEAgLTIwMyw3ICsyMDMsNyBAQAogICAgIC8qIDI0LjIxIC0gKDQsNSk6IGNvbm5lY3QgU0NDJ3MgdHggYW5kIHJ4IGNsb2NrcywgdXNlIE5NU0kgZm9yIFNDQyAqLwogICAgIGltbXItPmltX2NwbXV4LmNteF91YXIgPSAwOwogICAgIGltbXItPmltX2NwbXV4LmNteF9zY3IgPSAoIChpbW1yLT5pbV9jcG11eC5jbXhfc2NyICYgfkNNWFNDUl9NQVNLKSB8Ci0JCQkgICAgICAgQ0ZHX0NNWFNDUl9WQUxVRSk7CisJCQkgICAgICAgQ09ORklHX1NZU19DTVhTQ1JfVkFMVUUpOwogCiAKICAgICAvKiAyNC4yMSAoNikgd3JpdGUgUkJBU0UgYW5kIFRCQVNFIHRvIHBhcmFtZXRlciBSQU0gKi8KQEAgLTM0MCw3ICszNDAsNyBAQAogCiB2b2lkIGV0aF9oYWx0KHZvaWQpCiB7Ci0gICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisgICAgdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogICAgIGltbXItPmltX3NjY1tDT05GSUdfRVRIRVJfSU5ERVgtMV0uc2NjX2dzbXJsICY9IH4oU0NDX0dTTVJMX0VOUiB8CiAJCQkJCQkgICAgICBTQ0NfR1NNUkxfRU5UKTsKIH0KQEAgLTM0OCw3ICszNDgsNyBAQAogI2lmIDAKIHZvaWQgcmVzdGFydCh2b2lkKQogewotICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworICAgIHZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICAgICBpbW1yLT5pbV9jcG0uY3Bfc2NjW0NPTkZJR19FVEhFUl9JTkRFWC0xXS5zY2NfZ3NtcmwgfD0gKFNDQ19HU01STF9FTlIgfAogCQkJCQkJCSAgICBTQ0NfR1NNUkxfRU5UKTsKIH0KZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL2kyYy5jIGIvY3B1L21wYzgyNjAvaTJjLmMKaW5kZXggYzNhZjdiNi4uYTkzNDE5MyAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNjAvaTJjLmMKKysrIGIvY3B1L21wYzgyNjAvaTJjLmMKQEAgLTM2LDYgKzM2LDEwIEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCisjaWYgZGVmaW5lZChDT05GSUdfSTJDX01VTFRJX0JVUykKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19udW0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCJkYXRhIikpKSA9IDA7CisjZW5kaWYgLyogQ09ORklHX0kyQ19NVUxUSV9CVVMgKi8KKwogLyogdVNlYyB0byB3YWl0IGJldHdlZW4gcG9sbHMgb2YgdGhlIGkyYyAqLwogI2RlZmluZSBERUxBWV9VUwkxMDAKIC8qIHVTZWMgdG8gd2FpdCBmb3IgdGhlIENQTSB0byBzdGFydCBwcm9jZXNzaW5nIHRoZSBidWZmZXIgKi8KQEAgLTUwLDEyICs1NCwxMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IGRlZmF1bHQgdmFsdWVzCiAgKi8KLSNpZm5kZWYJQ0ZHX0kyQ19TUEVFRAotI2RlZmluZQlDRkdfSTJDX1NQRUVECTUwMDAwCisjaWZuZGVmCUNPTkZJR19TWVNfSTJDX1NQRUVECisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECTUwMDAwCiAjZW5kaWYKIAotI2lmbmRlZglDRkdfSTJDX1NMQVZFCi0jZGVmaW5lCUNGR19JMkNfU0xBVkUJMHhGRQorI2lmbmRlZglDT05GSUdfU1lTX0kyQ19TTEFWRQorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TTEFWRQkweEZFCiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwpAQCAtMTcyLDcgKzE3Niw3IEBACiAgKi8KIHN0YXRpYyBpbnQgaTJjX3NldHJhdGUoaW50IGh6LCBpbnQgc3BlZWQpCiB7Ci0gICAgaW1tYXBfdAkqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SIDsKKyAgICBpbW1hcF90CSppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SIDsKICAgICB2b2xhdGlsZSBpMmM4MjYwX3QgKmkyYyA9IChpMmM4MjYwX3QgKikmaW1tYXAtPmltX2kyYzsKICAgICBpbnQgYnJndmFsLAogCSAgbW9kdmFsLAkvKiAwLTMgKi8KQEAgLTIxNSw3ICsyMTksNyBAQAogCiB2b2lkIGkyY19pbml0KGludCBzcGVlZCwgaW50IHNsYXZlYWRkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgY3BtODI2MF90ICpjcCA9IChjcG04MjYwX3QgKikmaW1tYXAtPmltX2NwbTsKIAl2b2xhdGlsZSBpMmM4MjYwX3QgKmkyYwk9IChpMmM4MjYwX3QgKikmaW1tYXAtPmltX2kyYzsKIAl2b2xhdGlsZSBpaWNfdCAqaWlwOwpAQCAtMjIzLDcgKzIyNyw3IEBACiAJdm9sYXRpbGUgSTJDX0JEICpyeGJkLCAqdHhiZDsKIAl1aW50IGRwYWRkcjsKIAotI2lmZGVmIENGR19JMkNfSU5JVF9CT0FSRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQKIAkvKiBjYWxsIGJvYXJkIHNwZWNpZmljIGkyYyBidXMgcmVzZXQgcm91dGluZSBiZWZvcmUgYWNjZXNzaW5nIHRoZSAgICovCiAJLyogZW52aXJvbm1lbnQsIHdoaWNoIG1pZ2h0IGJlIGluIGEgY2hpcCBvbiB0aGF0IGJ1cy4gRm9yIGRldGFpbHMgICAqLwogCS8qIGFib3V0IHRoaXMgcHJvYmxlbSBzZWUgZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMuICAgICAgICAgICAgICAgICAgKi8KQEAgLTI2Niw3ICsyNzAsNyBAQAogCSAqIGRpdmlkZSBCUkdDTEsgYnkgMSkKIAkgKi8KIAlQUklOVEQoKCJbSTJDXSBTZXR0aW5nIHJhdGUuLi5cbiIpKTsKLQlpMmNfc2V0cmF0ZSAoZ2QtPmJyZ19jbGssIENGR19JMkNfU1BFRUQpIDsKKwlpMmNfc2V0cmF0ZSAoZ2QtPmJyZ19jbGssIENPTkZJR19TWVNfSTJDX1NQRUVEKSA7CiAKIAkvKiBTZXQgSTJDIGNvbnRyb2xsZXIgaW4gbWFzdGVyIG1vZGUgKi8KIAlpMmMtPmkyY19pMmNvbSA9IDB4MDE7CkBAIC0zMDUsNyArMzA5LDcgQEAKIHN0YXRpYwogdm9pZCBpMmNfbmV3aW8oaTJjX3N0YXRlX3QgKnN0YXRlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgaWljX3QgKmlpcDsKIAl1aW50IGRwYWRkcjsKIApAQCAtNDkwLDcgKzQ5NCw3IEBACiBzdGF0aWMKIGludCBpMmNfZG9pbyhpMmNfc3RhdGVfdCAqc3RhdGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SIDsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SIDsKIAl2b2xhdGlsZSBpaWNfdCAqaWlwOwogCXZvbGF0aWxlIGkyYzgyNjBfdCAqaTJjCT0gKGkyYzgyNjBfdCAqKSZpbW1hcC0+aW1faTJjOwogCXZvbGF0aWxlIEkyQ19CRCAqdHhiZCwgKnJ4YmQ7CkBAIC02NjMsNyArNjY3LDcgQEAKIAl4YWRkclsyXSA9IChhZGRyID4+ICA4KSAmIDB4RkY7CiAJeGFkZHJbM10gPSAgYWRkciAgICAgICAgJiAweEZGOwogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJIC8qCiAJICAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMKIAkgICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZiBhZGRyZXNzCkBAIC02NzUsNyArNjc5LDcgQEAKIAkgICogYmUgb25lIGJ5dGUgYmVjYXVzZSB0aGUgZXh0cmEgYWRkcmVzcyBiaXRzIGFyZSBoaWRkZW4gaW4gdGhlCiAJICAqIGNoaXAgYWRkcmVzcy4KIAkgICovCi0JY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCiAJaTJjX25ld2lvKCZzdGF0ZSk7CkBAIC03MTIsNyArNzE2LDcgQEAKIAl4YWRkclsyXSA9IChhZGRyID4+ICA4KSAmIDB4RkY7CiAJeGFkZHJbM10gPSAgYWRkciAgICAgICAgJiAweEZGOwogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJIC8qCiAJICAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMKIAkgICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZiBhZGRyZXNzCkBAIC03MjQsNyArNzI4LDcgQEAKIAkgICogYmUgb25lIGJ5dGUgYmVjYXVzZSB0aGUgZXh0cmEgYWRkcmVzcyBiaXRzIGFyZSBoaWRkZW4gaW4gdGhlCiAJICAqIGNoaXAgYWRkcmVzcy4KIAkgICovCi0JY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCiAJaTJjX25ld2lvKCZzdGF0ZSk7CkBAIC03NjUsNCArNzY5LDQ5IEBACiAJaTJjX3dyaXRlKGNoaXAsIHJlZywgMSwgJnZhbCwgMSk7CiB9CiAKKyNpZiBkZWZpbmVkKENPTkZJR19JMkNfTVVMVElfQlVTKQorLyoKKyAqIEZ1bmN0aW9ucyBmb3IgbXVsdGlwbGUgSTJDIGJ1cyBoYW5kbGluZworICovCit1bnNpZ25lZCBpbnQgaTJjX2dldF9idXNfbnVtKHZvaWQpCit7CisJcmV0dXJuIGkyY19idXNfbnVtOworfQorCitpbnQgaTJjX3NldF9idXNfbnVtKHVuc2lnbmVkIGludCBidXMpCit7CisjaWYgZGVmaW5lZChDT05GSUdfSTJDX01VWCkKKwlpZiAoYnVzIDwgQ09ORklHX1NZU19NQVhfSTJDX0JVUykgeworCQlpMmNfYnVzX251bSA9IGJ1czsKKwl9IGVsc2UgeworCQlpbnQJcmV0OworCisJCXJldCA9IGkyeF9tdXhfc2VsZWN0X211eChidXMpOworCQlpZiAocmV0ID09IDApCisJCQlpMmNfYnVzX251bSA9IGJ1czsKKwkJZWxzZQorCQkJcmV0dXJuIHJldDsKKwl9CisjZWxzZQorCWlmIChidXMgPj0gQ09ORklHX1NZU19NQVhfSTJDX0JVUykKKwkJcmV0dXJuIC0xOworCWkyY19idXNfbnVtID0gYnVzOworI2VuZGlmCisJcmV0dXJuIDA7Cit9CisvKiBUT0RPOiBhZGQgMTAwLzQwMGsgc3dpdGNoaW5nICovCit1bnNpZ25lZCBpbnQgaTJjX2dldF9idXNfc3BlZWQodm9pZCkKK3sKKwlyZXR1cm4gQ09ORklHX1NZU19JMkNfU1BFRUQ7Cit9CisKK2ludCBpMmNfc2V0X2J1c19zcGVlZCh1bnNpZ25lZCBpbnQgc3BlZWQpCit7CisJaWYgKHNwZWVkICE9IENPTkZJR19TWVNfSTJDX1NQRUVEKQorCQlyZXR1cm4gLTE7CisKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmCS8qIENPTkZJR19JMkNfTVVMVElfQlVTICovCiAjZW5kaWYJLyogQ09ORklHX0hBUkRfSTJDICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9pbnRlcnJ1cHRzLmMgYi9jcHUvbXBjODI2MC9pbnRlcnJ1cHRzLmMKaW5kZXggYmYwZDRkMC4uYTc3MDBjNCAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNjAvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM4MjYwL2ludGVycnVwdHMuYwpAQCAtODIsNyArODIsNyBAQAogCiBzdGF0aWMgdm9pZCBtODI2MF9tYXNrX2lycSAodW5zaWduZWQgaW50IGlycV9ucikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgYml0LCB3b3JkOwogCXZvbGF0aWxlIHVpbnQgKnNpbXI7CiAKQEAgLTk2LDcgKzk2LDcgQEAKIAogc3RhdGljIHZvaWQgbTgyNjBfdW5tYXNrX2lycSAodW5zaWduZWQgaW50IGlycV9ucikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgYml0LCB3b3JkOwogCXZvbGF0aWxlIHVpbnQgKnNpbXI7CiAKQEAgLTExMCw3ICsxMTAsNyBAQAogCiBzdGF0aWMgdm9pZCBtODI2MF9tYXNrX2FuZF9hY2sgKHVuc2lnbmVkIGludCBpcnFfbnIpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJaW50IGJpdCwgd29yZDsKIAl2b2xhdGlsZSB1aW50ICpzaW1yLCAqc2lwbnI7CiAKQEAgLTEyNiw3ICsxMjYsNyBAQAogCiBzdGF0aWMgaW50IG04MjYwX2dldF9pcnEgKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWludCBpcnE7CiAJdW5zaWduZWQgbG9uZyBiaXRzOwogCkBAIC0xNDIsOSArMTQyLDkgQEAKIAogaW50IGludGVycnVwdF9pbml0X2NwdSAodW5zaWduZWQgKmRlY3JlbWVudGVyX2NvdW50KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCi0JKmRlY3JlbWVudGVyX2NvdW50ID0gKGdkLT5idXNfY2xrIC8gNCkgLyBDRkdfSFo7CisJKmRlY3JlbWVudGVyX2NvdW50ID0gKGdkLT5idXNfY2xrIC8gNCkgLyBDT05GSUdfU1lTX0haOwogCiAJLyogSW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBpbnRlcnJ1cHQgbWFwcGluZyBwcmlvcml0aWVzICovCiAJaW1tci0+aW1faW50Y3RsLmljX3NpY3IgPSAwOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNjAva2dkYi5TIGIvY3B1L21wYzgyNjAva2dkYi5TCmluZGV4IGRhZTg3YmIuLmM1OTM2YzcgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL2tnZGIuUworKysgYi9jcHUvbXBjODI2MC9rZ2RiLlMKQEAgLTUwLDIxICs1MCwyMSBAQAogCiAJLmdsb2JsCWtnZGJfZmx1c2hfY2FjaGVfcmFuZ2UKIGtnZGJfZmx1c2hfY2FjaGVfcmFuZ2U6Ci0JbGkJcjUsQ0ZHX0NBQ0hFTElORV9TSVpFLTEKKwlsaQlyNSxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFLTEKIAlhbmRjCXIzLHIzLHI1CiAJc3ViZglyNCxyMyxyNAogCWFkZAlyNCxyNCxyNQotCXNyd2kuCXI0LHI0LENGR19DQUNIRUxJTkVfU0hJRlQKKwlzcndpLglyNCxyNCxDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAogCWJlcWxyCiAJbXRjdHIJcjQKIAltcglyNixyMwogMToJZGNic3QJMCxyMwotCWFkZGkJcjMscjMsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyMyxyMyxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkxYgogCXN5bmMJCQkJLyogd2FpdCBmb3IgZGNic3QncyB0byBnZXQgdG8gcmFtICovCiAJbXRjdHIJcjQKIDI6CWljYmkJMCxyNgotCWFkZGkJcjYscjYsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyNixyNixDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkyYgogCVNZTkMKIAlibHIKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL3BjaS5jIGIvY3B1L21wYzgyNjAvcGNpLmMKaW5kZXggODIzMDM2NC4uMzc4ZDZjNSAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNjAvcGNpLmMKKysrIGIvY3B1L21wYzgyNjAvcGNpLmMKQEAgLTcwLDIzICs3MCwyMyBAQAogICogVGhpcyB3aW5kb3cgaXMgc2V0IHVwIHVzaW5nIHRoZSBmaXJzdCBzZXQgb2YgSW5ib3VuZCBBVFUgcmVnaXN0ZXJzCiAgKi8KIAotI2lmbmRlZiBDRkdfUENJX1NMVl9NRU1fTE9DQUwKLSNkZWZpbmUgUENJX1NMVl9NRU1fTE9DQUwgQ0ZHX1NEUkFNX0JBU0UJLyogTG9jYWwgYmFzZSAqLworI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMCisjZGVmaW5lIFBDSV9TTFZfTUVNX0xPQ0FMIENPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBMb2NhbCBiYXNlICovCiAjZWxzZQotI2RlZmluZSBQQ0lfU0xWX01FTV9MT0NBTCBDRkdfUENJX1NMVl9NRU1fTE9DQUwKKyNkZWZpbmUgUENJX1NMVl9NRU1fTE9DQUwgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BDSV9TTFZfTUVNX0JVUworI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUwogI2RlZmluZSBQQ0lfU0xWX01FTV9CVVMgMHgwMDAwMDAwMAkvKiBQQ0kgYmFzZSAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX1NMVl9NRU1fQlVTIENGR19QQ0lfU0xWX01FTV9CVVMKKyNkZWZpbmUgUENJX1NMVl9NRU1fQlVTIENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUElDTVIwX01BU0tfQVRUUklCCisjaWZuZGVmIENPTkZJR19TWVNfUElDTVIwX01BU0tfQVRUUklCCiAjZGVmaW5lIFBJQ01SMF9NQVNLX0FUVFJJQgkoUElDTVJfTUFTS181MTJNQiB8IFBJQ01SX0VOQUJMRSB8IFwKIAkJCQkgUElDTVJfUFJFRkVUQ0hfRU4pCiAjZWxzZQotI2RlZmluZSBQSUNNUjBfTUFTS19BVFRSSUIgQ0ZHX1BJQ01SMF9NQVNLX0FUVFJJQgorI2RlZmluZSBQSUNNUjBfTUFTS19BVFRSSUIgQ09ORklHX1NZU19QSUNNUjBfTUFTS19BVFRSSUIKICNlbmRpZgogCiAvKgpAQCAtOTcsMjkgKzk3LDI5IEBACiAgKi8KIAogLyogUENJQlIwICovCi0jaWZuZGVmIENGR19QQ0lfTVNUUjBfTE9DQUwKKyNpZm5kZWYgQ09ORklHX1NZU19QQ0lfTVNUUjBfTE9DQUwKICNkZWZpbmUgUENJX01TVFIwX0xPQ0FMCQkweDgwMDAwMDAwCS8qIExvY2FsIGJhc2UgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSMF9MT0NBTCBDRkdfUENJX01TVFIwX0xPQ0FMCisjZGVmaW5lIFBDSV9NU1RSMF9MT0NBTCBDT05GSUdfU1lTX1BDSV9NU1RSMF9MT0NBTAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BDSU1TSzBfTUFTSworI2lmbmRlZiBDT05GSUdfU1lTX1BDSU1TSzBfTUFTSwogI2RlZmluZSBQQ0lNU0swX01BU0sJCVBDSU1TS18xR0IJLyogU2l6ZSBvZiB3aW5kb3cgKi8KICNlbHNlCi0jZGVmaW5lIFBDSU1TSzBfTUFTSwlDRkdfUENJTVNLMF9NQVNLCisjZGVmaW5lIFBDSU1TSzBfTUFTSwlDT05GSUdfU1lTX1BDSU1TSzBfTUFTSwogI2VuZGlmCiAKIC8qIFBDSUJSMSAqLwotI2lmbmRlZiBDRkdfUENJX01TVFIxX0xPQ0FMCisjaWZuZGVmIENPTkZJR19TWVNfUENJX01TVFIxX0xPQ0FMCiAjZGVmaW5lIFBDSV9NU1RSMV9MT0NBTAkJMHhGNDAwMDAwMAkvKiBMb2NhbCBiYXNlICovCiAjZWxzZQotI2RlZmluZSBQQ0lfTVNUUjFfTE9DQUwJCUNGR19QQ0lfTVNUUjFfTE9DQUwKKyNkZWZpbmUgUENJX01TVFIxX0xPQ0FMCQlDT05GSUdfU1lTX1BDSV9NU1RSMV9MT0NBTAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BDSU1TSzFfTUFTSworI2lmbmRlZiBDT05GSUdfU1lTX1BDSU1TSzFfTUFTSwogI2RlZmluZQkgUENJTVNLMV9NQVNLCQlQQ0lNU0tfNjRNQgkvKiBTaXplIG9mIHdpbmRvdyAqLwogI2Vsc2UKLSNkZWZpbmUJIFBDSU1TSzFfTUFTSwkJQ0ZHX1BDSU1TSzFfTUFTSworI2RlZmluZQkgUENJTVNLMV9NQVNLCQlDT05GSUdfU1lTX1BDSU1TSzFfTUFTSwogI2VuZGlmCiAKIC8qCkBAIC0xMjgsMzQgKzEyOCwzNCBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jaWZuZGVmIENGR19QQ0lfTVNUUl9NRU1fTE9DQUwKKyNpZm5kZWYgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fTE9DQUwKICNkZWZpbmUgUENJX01TVFJfTUVNX0xPQ0FMIDB4ODAwMDAwMDAJLyogTG9jYWwgYmFzZSAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX01TVFJfTUVNX0xPQ0FMIENGR19QQ0lfTVNUUl9NRU1fTE9DQUwKKyNkZWZpbmUgUENJX01TVFJfTUVNX0xPQ0FMIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0xPQ0FMCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUENJX01TVFJfTUVNX0JVUworI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9CVVMKICNkZWZpbmUgUENJX01TVFJfTUVNX0JVUyAweDgwMDAwMDAwCS8qIFBDSSBiYXNlICAgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSX01FTV9CVVMgQ0ZHX1BDSV9NU1RSX01FTV9CVVMKKyNkZWZpbmUgUENJX01TVFJfTUVNX0JVUyBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9CVVMKICNlbmRpZgogCi0jaWZuZGVmIENGR19DUFVfUENJX01FTV9TVEFSVAorI2lmbmRlZiBDT05GSUdfU1lTX0NQVV9QQ0lfTUVNX1NUQVJUCiAjZGVmaW5lIENQVV9QQ0lfTUVNX1NUQVJUIFBDSV9NU1RSX01FTV9MT0NBTAogI2Vsc2UKLSNkZWZpbmUgQ1BVX1BDSV9NRU1fU1RBUlQgQ0ZHX0NQVV9QQ0lfTUVNX1NUQVJUCisjZGVmaW5lIENQVV9QQ0lfTUVNX1NUQVJUIENPTkZJR19TWVNfQ1BVX1BDSV9NRU1fU1RBUlQKICNlbmRpZgogCi0jaWZuZGVmIENGR19QQ0lfTVNUUl9NRU1fU0laRQorI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9TSVpFCiAjZGVmaW5lIFBDSV9NU1RSX01FTV9TSVpFIDB4MTAwMDAwMDAJLyogMjU2TUIgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSX01FTV9TSVpFIENGR19QQ0lfTVNUUl9NRU1fU0laRQorI2RlZmluZSBQQ0lfTVNUUl9NRU1fU0laRSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9TSVpFCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUE9DTVIwX01BU0tfQVRUUklCCisjaWZuZGVmIENPTkZJR19TWVNfUE9DTVIwX01BU0tfQVRUUklCCiAjZGVmaW5lIFBPQ01SMF9NQVNLX0FUVFJJQgkoUE9DTVJfTUFTS18yNTZNQiB8IFBPQ01SX0VOQUJMRSB8IFBPQ01SX1BSRUZFVENIX0VOKQogI2Vsc2UKLSNkZWZpbmUgUE9DTVIwX01BU0tfQVRUUklCIENGR19QT0NNUjBfTUFTS19BVFRSSUIKKyNkZWZpbmUgUE9DTVIwX01BU0tfQVRUUklCIENPTkZJR19TWVNfUE9DTVIwX01BU0tfQVRUUklCCiAjZW5kaWYKIAogLyoKQEAgLTE2NCwzNCArMTY0LDM0IEBACiAgKiBpbiB0aGUgYnJpZGdlLgogICovCiAKLSNpZm5kZWYgQ0ZHX1BDSV9NU1RSX01FTUlPX0xPQ0FMCisjaWZuZGVmIENPTkZJR19TWVNfUENJX01TVFJfTUVNSU9fTE9DQUwKICNkZWZpbmUgUENJX01TVFJfTUVNSU9fTE9DQUwgMHg5MDAwMDAwMCAvKiBMb2NhbCBiYXNlICovCiAjZWxzZQotI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19MT0NBTCBDRkdfUENJX01TVFJfTUVNSU9fTE9DQUwKKyNkZWZpbmUgUENJX01TVFJfTUVNSU9fTE9DQUwgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19MT0NBTAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BDSV9NU1RSX01FTUlPX0JVUworI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0JVUwogI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19CVVMgMHg5MDAwMDAwMAkvKiBQQ0kgYmFzZSAgICovCiAjZWxzZQotI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19CVVMgQ0ZHX1BDSV9NU1RSX01FTUlPX0JVUworI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19CVVMgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19CVVMKICNlbmRpZgogCi0jaWZuZGVmIENGR19DUFVfUENJX01FTUlPX1NUQVJUCisjaWZuZGVmIENPTkZJR19TWVNfQ1BVX1BDSV9NRU1JT19TVEFSVAogI2RlZmluZSBDUFVfUENJX01FTUlPX1NUQVJUIFBDSV9NU1RSX01FTUlPX0xPQ0FMCiAjZWxzZQotI2RlZmluZSBDUFVfUENJX01FTUlPX1NUQVJUIENGR19DUFVfUENJX01FTUlPX1NUQVJUCisjZGVmaW5lIENQVV9QQ0lfTUVNSU9fU1RBUlQgQ09ORklHX1NZU19DUFVfUENJX01FTUlPX1NUQVJUCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUENJX01TVFJfTUVNSU9fU0laRQorI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX1NJWkUKICNkZWZpbmUgUENJX01TVFJfTUVNSU9fU0laRSAweDEwMDAwMDAwCS8qIDI1NiBNQiAqLwogI2Vsc2UKLSNkZWZpbmUgUENJX01TVFJfTUVNSU9fU0laRSBDRkdfUENJX01TVFJfTUVNSU9fU0laRQorI2RlZmluZSBQQ0lfTVNUUl9NRU1JT19TSVpFIENPTkZJR19TWVNfUENJX01TVFJfTUVNSU9fU0laRQogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1BPQ01SMV9NQVNLX0FUVFJJQgorI2lmbmRlZiBDT05GSUdfU1lTX1BPQ01SMV9NQVNLX0FUVFJJQgogI2RlZmluZSBQT0NNUjFfTUFTS19BVFRSSUIJKFBPQ01SX01BU0tfNTEyTUIgfCBQT0NNUl9FTkFCTEUpCiAjZWxzZQotI2RlZmluZSBQT0NNUjFfTUFTS19BVFRSSUIgQ0ZHX1BPQ01SMV9NQVNLX0FUVFJJQgorI2RlZmluZSBQT0NNUjFfTUFTS19BVFRSSUIgQ09ORklHX1NZU19QT0NNUjFfTUFTS19BVFRSSUIKICNlbmRpZgogCiAvKgpAQCAtMjAwLDM0ICsyMDAsMzQgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2lmbmRlZiBDRkdfUENJX01TVFJfSU9fTE9DQUwKKyNpZm5kZWYgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19MT0NBTAogI2RlZmluZSBQQ0lfTVNUUl9JT19MT0NBTCAweEEwMDAwMDAwCS8qIExvY2FsIGJhc2UgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSX0lPX0xPQ0FMIENGR19QQ0lfTVNUUl9JT19MT0NBTAorI2RlZmluZSBQQ0lfTVNUUl9JT19MT0NBTCBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0xPQ0FMCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUENJX01TVFJfSU9fQlVTCisjaWZuZGVmIENPTkZJR19TWVNfUENJX01TVFJfSU9fQlVTCiAjZGVmaW5lIFBDSV9NU1RSX0lPX0JVUyAweEEwMDAwMDAwCS8qIFBDSSBiYXNlICAgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSX0lPX0JVUyBDRkdfUENJX01TVFJfSU9fQlVTCisjZGVmaW5lIFBDSV9NU1RSX0lPX0JVUyBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0JVUwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0NQVV9QQ0lfSU9fU1RBUlQKKyNpZm5kZWYgQ09ORklHX1NZU19DUFVfUENJX0lPX1NUQVJUCiAjZGVmaW5lIENQVV9QQ0lfSU9fU1RBUlQgUENJX01TVFJfSU9fTE9DQUwKICNlbHNlCi0jZGVmaW5lIENQVV9QQ0lfSU9fU1RBUlQgQ0ZHX0NQVV9QQ0lfSU9fU1RBUlQKKyNkZWZpbmUgQ1BVX1BDSV9JT19TVEFSVCBDT05GSUdfU1lTX0NQVV9QQ0lfSU9fU1RBUlQKICNlbmRpZgogCi0jaWZuZGVmIENGR19QQ0lfTVNUUl9JT19TSVpFCisjaWZuZGVmIENPTkZJR19TWVNfUENJX01TVFJfSU9fU0laRQogI2RlZmluZSBQQ0lfTVNUUl9JT19TSVpFIDB4MTAwMDAwMDAJLyogMjU2TUIgKi8KICNlbHNlCi0jZGVmaW5lIFBDSV9NU1RSX0lPX1NJWkUgQ0ZHX1BDSV9NU1RSX0lPX1NJWkUKKyNkZWZpbmUgUENJX01TVFJfSU9fU0laRSBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX1NJWkUKICNlbmRpZgogCi0jaWZuZGVmIENGR19QT0NNUjJfTUFTS19BVFRSSUIKKyNpZm5kZWYgQ09ORklHX1NZU19QT0NNUjJfTUFTS19BVFRSSUIKICNkZWZpbmUgUE9DTVIyX01BU0tfQVRUUklCCShQT0NNUl9NQVNLXzI1Nk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUENJX0lPKQogI2Vsc2UKLSNkZWZpbmUgUE9DTVIyX01BU0tfQVRUUklCIENGR19QT0NNUjJfTUFTS19BVFRSSUIKKyNkZWZpbmUgUE9DTVIyX01BU0tfQVRUUklCIENPTkZJR19TWVNfUE9DTVIyX01BU0tfQVRUUklCCiAjZW5kaWYKIAogLyogUENJIGJ1cyBjb25maWd1cmF0aW9uIHJlZ2lzdGVycy4KQEAgLTI0NSwxMSArMjQ1LDExIEBACiB7CiAJdTE2IHRlbXBTaG9ydDsKIAotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJcGNpX2Rldl90IGhvc3RfZGV2bm8gPSBQQ0lfQkRGICgwLCAwLCAwKTsKIAotCXBjaV9zZXR1cF9pbmRpcmVjdCAoaG9zZSwgQ0ZHX0lNTVIgKyBQQ0lfQ0ZHX0FERFJfUkVHLAotCQkJICAgIENGR19JTU1SICsgUENJX0NGR19EQVRBX1JFRyk7CisJcGNpX3NldHVwX2luZGlyZWN0IChob3NlLCBDT05GSUdfU1lTX0lNTVIgKyBQQ0lfQ0ZHX0FERFJfUkVHLAorCQkJICAgIENPTkZJR19TWVNfSU1NUiArIFBDSV9DRkdfREFUQV9SRUcpOwogCiAJLyoKIAkgKiBTZXR0aW5nIHJlcXVpcmVkIHRvIGVuYWJsZSBsb2NhbCBidXMgZm9yIFBDSSAoU0lVTUNSIFtMQlBDXSkuCkBAIC00MTMsOCArNDEzLDggQEAKIAkJCWdkLT5yYW1fc2l6ZSwgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAjZWxzZQogCXBjaV9zZXRfcmVnaW9uIChob3NlLT5yZWdpb25zICsgMCwKLQkJCUNGR19TRFJBTV9CQVNFLAotCQkJQ0ZHX1NEUkFNX0JBU0UsCisJCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UsCisJCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UsCiAJCQkweDQwMDAwMDAsIFBDSV9SRUdJT05fTUVNIHwgUENJX1JFR0lPTl9NRU1PUlkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL3NlcmlhbF9zY2MuYyBiL2NwdS9tcGM4MjYwL3NlcmlhbF9zY2MuYwppbmRleCAzYTZlYWYwLi40YWI2YTI4IDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC9zZXJpYWxfc2NjLmMKKysrIGIvY3B1L21wYzgyNjAvc2VyaWFsX3NjYy5jCkBAIC04NCw3ICs4NCw3IEBACiAKIGludCBzZXJpYWxfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBzY2NfdCAqc3A7CiAJdm9sYXRpbGUgc2NjX3VhcnRfdCAqdXA7CiAJdm9sYXRpbGUgY2JkX3QgKnRiZGYsICpyYmRmOwpAQCAtMjAxLDcgKzIwMSw3IEBACiAJaWYgKGMgPT0gJ1xuJykKIAkJc2VyaWFsX3B1dGMgKCdccicpOwogCi0JaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdXAgPSAoc2NjX3VhcnRfdCAqKSZpbS0+aW1fZHByYW1iYXNlW1BST0ZGX1NDQ107CiAJdGJkZiA9IChjYmRfdCAqKSZpbS0+aW1fZHByYW1iYXNlW3VwLT5zY2NfZ2Vuc2NjLnNjY190YmFzZV07CiAKQEAgLTIzMyw3ICsyMzMsNyBAQAogCXZvbGF0aWxlIGltbWFwX3QJKmltOwogCXVuc2lnbmVkIGNoYXIJCWM7CiAKLQlpbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1cCA9IChzY2NfdWFydF90ICopJmltLT5pbV9kcHJhbWJhc2VbUFJPRkZfU0NDXTsKIAlyYmRmID0gKGNiZF90ICopJmltLT5pbV9kcHJhbWJhc2VbdXAtPnNjY19nZW5zY2Muc2NjX3JiYXNlXTsKIApAQCAtMjU3LDcgKzI1Nyw3IEBACiAJdm9sYXRpbGUgc2NjX3VhcnRfdAkqdXA7CiAJdm9sYXRpbGUgaW1tYXBfdAkqaW07CiAKLQlpbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1cCA9IChzY2NfdWFydF90ICopJmltLT5pbV9kcHJhbWJhc2VbUFJPRkZfU0NDXTsKIAlyYmRmID0gKGNiZF90ICopJmltLT5pbV9kcHJhbWJhc2VbdXAtPnNjY19nZW5zY2Muc2NjX3JiYXNlXTsKIApAQCAtMzIxLDcgKzMyMSw3IEBACiB2b2lkCiBrZ2RiX3NlcmlhbF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHNjY190ICpzcDsKIAl2b2xhdGlsZSBzY2NfdWFydF90ICp1cDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CkBAIC00NDAsNyArNDQwLDcgQEAKIAlpZiAoYyA9PSAnXG4nKQogCQlwdXREZWJ1Z0NoYXIgKCdccicpOwogCi0JaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCWltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdXAgPSAoc2NjX3VhcnRfdCAqKSZpbS0+aW1fZHByYW1iYXNlW0tHREJfUFJPRkZfU0NDXTsKIAl0YmRmID0gKGNiZF90ICopJmltLT5pbV9kcHJhbWJhc2VbdXAtPnNjY19nZW5zY2Muc2NjX3RiYXNlXTsKIApAQCAtNDcyLDcgKzQ3Miw3IEBACiAJdm9sYXRpbGUgaW1tYXBfdAkqaW07CiAJdW5zaWduZWQgY2hhcgkJYzsKIAotCWltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVwID0gKHNjY191YXJ0X3QgKikmaW0tPmltX2RwcmFtYmFzZVtLR0RCX1BST0ZGX1NDQ107CiAJcmJkZiA9IChjYmRfdCAqKSZpbS0+aW1fZHByYW1iYXNlW3VwLT5zY2NfZ2Vuc2NjLnNjY19yYmFzZV07CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4MjYwL3NlcmlhbF9zbWMuYyBiL2NwdS9tcGM4MjYwL3NlcmlhbF9zbWMuYwppbmRleCBmM2RmZmViLi5hNmVmYTY2IDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC9zZXJpYWxfc21jLmMKKysrIGIvY3B1L21wYzgyNjAvc2VyaWFsX3NtYy5jCkBAIC03Niw3ICs3Niw3IEBACiAKIGludCBzZXJpYWxfaW5pdCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBzbWNfdCAqc3A7CiAJdm9sYXRpbGUgc21jX3VhcnRfdCAqdXA7CiAJdm9sYXRpbGUgY2JkX3QgKnRiZGYsICpyYmRmOwpAQCAtMTg2LDcgKzE4Niw3IEBACiAJdm9sYXRpbGUgY2JkX3QJCSp0YmRmOwogCXZvbGF0aWxlIGNoYXIJCSpidWY7CiAJdm9sYXRpbGUgc21jX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAlpZiAoYyA9PSAnXG4nKQogCQlzZXJpYWxfcHV0YyAoJ1xyJyk7CkBAIC0yMjAsNyArMjIwLDcgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIGNoYXIJCWM7CiAKIAl1cCA9IChzbWNfdWFydF90ICopJihpbS0+aW1fZHByYW1iYXNlW1BST0ZGX1NNQ10pOwpAQCAtMjQzLDcgKzI0Myw3IEBACiB7CiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJdXAgPSAoc21jX3VhcnRfdCAqKSYoaW0tPmltX2RwcmFtYmFzZVtQUk9GRl9TTUNdKTsKIApAQCAtMjg5LDcgKzI4OSw3IEBACiB2b2lkCiBrZ2RiX3NlcmlhbF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHNtY190ICpzcDsKIAl2b2xhdGlsZSBzbWNfdWFydF90ICp1cDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CkBAIC00MDEsNyArNDAxLDcgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnRiZGY7CiAJdm9sYXRpbGUgY2hhcgkJKmJ1ZjsKIAl2b2xhdGlsZSBzbWNfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCWlmIChjID09ICdcbicpCiAJCXB1dERlYnVnQ2hhciAoJ1xyJyk7CkBAIC00MzUsNyArNDM1LDcgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXVuc2lnbmVkIGNoYXIJCWM7CiAKIAl1cCA9IChzbWNfdWFydF90ICopJihpbS0+aW1fZHByYW1iYXNlW0tHREJfUFJPRkZfU01DXSk7CmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9zcGVlZC5jIGIvY3B1L21wYzgyNjAvc3BlZWQuYwppbmRleCA4ZDI4MGZiLi4wZTFjMmIwIDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC9zcGVlZC5jCisrKyBiL2NwdS9tcGM4MjYwL3NwZWVkLmMKQEAgLTEwNyw3ICsxMDcsNyBAQAogCiBpbnQgZ2V0X2Nsb2NrcyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXVsb25nIGNsa2luOwogCXVsb25nIHNjY3IsIGRmYnJnOwogCXVsb25nIHNjbXIsIGNvcmVjbmYsIGJ1c2RmLCBjcG1kZiwgcGxsZGYsIHBsbG1mOwpAQCAtMTkxLDcgKzE5MSw3IEBACiAKIGludCBwcnRfODI2MF9jbGtzICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdWxvbmcgc2NjciwgZGZicmc7CiAJdWxvbmcgc2NtciwgY29yZWNuZiwgYnVzZGYsIGNwbWRmLCBwbGxkZiwgcGxsbWYsIHBjaWRmOwogCWNvcmVjbmZfdCAqY3A7CmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9zcGkuYyBiL2NwdS9tcGM4MjYwL3NwaS5jCmluZGV4IGMxYTYwN2MuLmY1ZDJhYzMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4MjYwL3NwaS5jCisrKyBiL2NwdS9tcGM4MjYwL3NwaS5jCkBAIC02Myw4ICs2Myw4IEBACiAgKiBUaGUgdmFsdWUgMHgyMDAwIG1ha2VzIGl0IGZhciBlbm91Z2ggZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGRhdGEKICAqIGFyZWEgKGFzIHdlbGwgYXMgZnJvbSB0aGUgc3RhY2sgcG9pbnRlcikuCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSNpZm5kZWYJQ0ZHX1NQSV9JTklUX09GRlNFVAotI2RlZmluZQlDRkdfU1BJX0lOSVRfT0ZGU0VUCTB4MjAwMAorI2lmbmRlZglDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAorI2RlZmluZQlDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAkweDIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENQTV9TUElfQkFTRSAweDEwMApAQCAtMTE5LDExICsxMTksMTEgQEAKICAqIEluaXRpYWxseSB3ZSBwbGFjZSB0aGUgUlggYW5kIFRYIGJ1ZmZlcnMgYXQgYSBmaXhlZCBsb2NhdGlvbiBpbiBEUFJBTSEKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIHN0YXRpYyB1Y2hhciAqcnhidWYgPQotICAodWNoYXIgKikmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9kcHJhbWJhc2UKLQkJCVtDRkdfU1BJX0lOSVRfT0ZGU0VUXTsKKyAgKHVjaGFyICopJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2RwcmFtYmFzZQorCQkJW0NPTkZJR19TWVNfU1BJX0lOSVRfT0ZGU0VUXTsKIHN0YXRpYyB1Y2hhciAqdHhidWYgPQotICAodWNoYXIgKikmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9kcHJhbWJhc2UKLQkJCVtDRkdfU1BJX0lOSVRfT0ZGU0VUK01BWF9CVUZGRVJdOworICAodWNoYXIgKikmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fZHByYW1iYXNlCisJCQlbQ09ORklHX1NZU19TUElfSU5JVF9PRkZTRVQrTUFYX0JVRkZFUl07CiAKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMTQzLDcgKzE0Myw3IEBACiAJdm9sYXRpbGUgY3BtODI2MF90ICpjcDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSAgQ09ORklHX1NZU19JTU1SOwogCWNwICAgPSAoY3BtODI2MF90ICopICZpbW1yLT5pbV9jcG07CiAKIAkqKHVzaG9ydCAqKSgmaW1tci0+aW1fZHByYW1iYXNlW1BST0ZGX1NQSV9CQVNFXSkgPSBQUk9GRl9TUEk7CkBAIC0yMDAsNyArMjAwLDcgQEAKIAkvKiBBbGxvY2F0ZSBzcGFjZSBmb3Igb25lIHRyYW5zbWl0IGFuZCBvbmUgcmVjZWl2ZSBidWZmZXIKIAkgKiBkZXNjcmlwdG9yIGluIHRoZSBEUCByYW0KIAkgKi8KLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJZHBhZGRyID0gbTgyNjBfY3BtX2RwYWxsb2MgKHNpemVvZihjYmRfdCkqMiwgOCk7CiAjZWxzZQogCWRwYWRkciA9IENQTV9TUElfQkFTRTsKQEAgLTI3OSw3ICsyNzksNyBAQAogCXZvbGF0aWxlIGNwbTgyNjBfdCAqY3A7CiAJdm9sYXRpbGUgY2JkX3QgKnRiZGYsICpyYmRmOwogCi0JaW1tciA9IChpbW1hcF90ICopICBDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKikgIENPTkZJR19TWVNfSU1NUjsKIAljcCAgID0gKGNwbTgyNjBfdCAqKSAmaW1tci0+aW1fY3BtOwogCiAJc3BpICA9IChzcGlfdCAqKSZpbW1yLT5pbV9kcHJhbWJhc2VbUFJPRkZfU1BJXTsKQEAgLTM2NSw3ICszNjUsNyBAQAogCiAJRFBSSU5UICgoIioqKiBzcGlfeGZlciBlbnRlcmVkICoqKlxuIikpOwogCi0JaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJY3AgICA9IChjcG04MjYwX3QgKikgJmltbXItPmltX2NwbTsKIAogCXNwaSAgPSAoc3BpX3QgKikmaW1tci0+aW1fZHByYW1iYXNlW1BST0ZGX1NQSV07CmRpZmYgLS1naXQgYS9jcHUvbXBjODI2MC9zdGFydC5TIGIvY3B1L21wYzgyNjAvc3RhcnQuUwppbmRleCA3ZjVkYzgxLi5kYTBjNTE2IDEwMDY0NAotLS0gYS9jcHUvbXBjODI2MC9zdGFydC5TCisrKyBiL2NwdS9tcGM4MjYwL3N0YXJ0LlMKQEAgLTEyNywxNCArMTI3LDE0IEBACiAJLnRleHQKIAkuZ2xvYmwJX2hyY3dfdGFibGUKIF9ocmN3X3RhYmxlOgotCV9IUkNXX1RBQkxFX0VOVFJZKENGR19IUkNXX01BU1RFUikKLQlfSFJDV19UQUJMRV9FTlRSWShDRkdfSFJDV19TTEFWRTEpCi0JX0hSQ1dfVEFCTEVfRU5UUlkoQ0ZHX0hSQ1dfU0xBVkUyKQotCV9IUkNXX1RBQkxFX0VOVFJZKENGR19IUkNXX1NMQVZFMykKLQlfSFJDV19UQUJMRV9FTlRSWShDRkdfSFJDV19TTEFWRTQpCi0JX0hSQ1dfVEFCTEVfRU5UUlkoQ0ZHX0hSQ1dfU0xBVkU1KQotCV9IUkNXX1RBQkxFX0VOVFJZKENGR19IUkNXX1NMQVZFNikKLQlfSFJDV19UQUJMRV9FTlRSWShDRkdfSFJDV19TTEFWRTcpCisJX0hSQ1dfVEFCTEVfRU5UUlkoQ09ORklHX1NZU19IUkNXX01BU1RFUikKKwlfSFJDV19UQUJMRV9FTlRSWShDT05GSUdfU1lTX0hSQ1dfU0xBVkUxKQorCV9IUkNXX1RBQkxFX0VOVFJZKENPTkZJR19TWVNfSFJDV19TTEFWRTIpCisJX0hSQ1dfVEFCTEVfRU5UUlkoQ09ORklHX1NZU19IUkNXX1NMQVZFMykKKwlfSFJDV19UQUJMRV9FTlRSWShDT05GSUdfU1lTX0hSQ1dfU0xBVkU0KQorCV9IUkNXX1RBQkxFX0VOVFJZKENPTkZJR19TWVNfSFJDV19TTEFWRTUpCisJX0hSQ1dfVEFCTEVfRU5UUlkoQ09ORklHX1NZU19IUkNXX1NMQVZFNikKKwlfSFJDV19UQUJMRV9FTlRSWShDT05GSUdfU1lTX0hSQ1dfU0xBVkU3KQogLyoKICAqICBBZnRlciBjb25maWd1cmF0aW9uLCBhIHN5c3RlbSByZXNldCBleGNlcHRpb24gaXMgZXhlY3V0ZWQgdXNpbmcgdGhlCiAgKiAgdmVjdG9yIGF0IG9mZnNldCAweDEwMCByZWxhdGl2ZSB0byB0aGUgYmFzZSBzZXQgYnkgTVNSW0lQXS4gSWYgTVNSW0lQXQpAQCAtMTcyLDggKzE3Miw4IEBACiAJYglib290X3dhcm0KIAogYm9vdF9jb2xkOgotI2lmIGRlZmluZWQoQ09ORklHX01QQzgyNjBBRFMpICYmIGRlZmluZWQoQ0ZHX0RFRkFVTFRfSU1NUikKLQlsaXMJcjMsIENGR19ERUZBVUxUX0lNTVJAaAorI2lmIGRlZmluZWQoQ09ORklHX01QQzgyNjBBRFMpICYmIGRlZmluZWQoQ09ORklHX1NZU19ERUZBVUxUX0lNTVIpCisJbGlzCXIzLCBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUkBoCiAJbm9wCiAJbHd6CXI0LCAwKHIzKQogCW5vcApAQCAtMTgzLDcgKzE4Myw3IEBACiAJbm9wCiAJc3R3CXI0LCAwKHIzKQogCW5vcAotI2VuZGlmIC8qIENPTkZJR19NUEM4MjYwQURTICYmIENGR19ERUZBVUxUX0lNTVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfTVBDODI2MEFEUyAmJiBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUiAqLwogYm9vdF93YXJtOgogCW1mbXNyCXI1CQkJLyogc2F2ZSBtc3IgY29udGVudHMJCSovCiAKQEAgLTE5NSwyNCArMTk1LDI0IEBACiAJYmwJY29nZW50X2luaXRfODI2MAogI2VuZGlmCS8qIENPTkZJR19DT0dFTlQgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0RFRkFVTFRfSU1NUikKLQlsaXMJcjMsIENGR19JTU1SQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU1NUkBsCi0JbGlzCXI0LCBDRkdfREVGQVVMVF9JTU1SQGgKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfREVGQVVMVF9JTU1SKQorCWxpcwlyMywgQ09ORklHX1NZU19JTU1SQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lNTVJAbAorCWxpcwlyNCwgQ09ORklHX1NZU19ERUZBVUxUX0lNTVJAaAogCXN0dwlyMywgMHgxQTgocjQpCi0jZW5kaWYgLyogQ0ZHX0RFRkFVTFRfSU1NUiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfREVGQVVMVF9JTU1SICovCiAKIAkvKiBJbml0aWFsaXNlIHRoZSBNUEM4MjYwIHByb2Nlc3NvciBjb3JlCQkJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogCWJsCWluaXRfODI2MF9jb3JlCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJLyogV2hlbiBib290aW5nIGZyb20gUk9NIChGbGFzaCBvciBFUFJPTSksIGNsZWFyIHRoZQkJKi8KIAkvKiBBZGRyZXNzIE1hc2sgaW4gT1IwIHNvIFJPTSBhcHBlYXJzIGV2ZXJ5d2hlcmUJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQlsaXMJcjMsIChDRkdfSU1NUitJTV9SRUdCQVNFKUBoCisJbGlzCXIzLCAoQ09ORklHX1NZU19JTU1SK0lNX1JFR0JBU0UpQGgKIAlsd3oJcjQsIElNX09SMEBsKHIzKQogCWxpCXI1LCAweDdmZmYKIAlhbmQJcjQsIHI0LCByNQpAQCAtMjIxLDIwICsyMjEsMjAgQEAKIAkvKiBDYWxjdWxhdGUgYWJzb2x1dGUgYWRkcmVzcyBpbiBGTEFTSCBhbmQganVtcCB0aGVyZQkJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgQ0ZHX01PTklUT1JfQkFTRUBoCi0Jb3JpCXIzLCByMywgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWFkZGkJcjMsIHIzLCBpbl9mbGFzaCAtIF9zdGFydCArIEVYQ19PRkZfU1lTX1JFU0VUCiAJbXRscglyMwogCWJscgogCiBpbl9mbGFzaDoKLSNlbmRpZgkvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAJLyogaW5pdGlhbGl6ZSBzb21lIHRoaW5ncyB0aGF0IGFyZSBoYXJkIHRvIGFjY2VzcyBmcm9tIEMJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgQ0ZHX0lNTVJAaAkJLyogc2V0IHVwIHN0YWNrIGluIGludGVybmFsIERQUkFNICovCi0Jb3JpCXIxLCByMywgQ0ZHX0lOSVRfU1BfT0ZGU0VUCisJbGlzCXIzLCBDT05GSUdfU1lTX0lNTVJAaAkJLyogc2V0IHVwIHN0YWNrIGluIGludGVybmFsIERQUkFNICovCisJb3JpCXIxLCByMywgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAogCWxpCXIwLCAwCQkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kCSovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBjbGVhciBmaW5hbCBzdGFjayBmcmFtZSBzbyB0aGF0CSovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBzdGFjayBiYWNrdHJhY2VzIHRlcm1pbmF0ZSBjbGVhbmx5CSovCkBAIC00NTgsMTggKzQ1OCwxOCBAQAogCS8qIFRha2VuIGZyb20gcGFnZSAxNCBvZiBDTUEyODIgbWFudWFsCQkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQlsaXMJcjQsIChDRkdfSU1NUitJTV9SRUdCQVNFKUBoCi0JbGlzCXIzLCBDRkdfSU1NUkBoCisJbGlzCXI0LCAoQ09ORklHX1NZU19JTU1SK0lNX1JFR0JBU0UpQGgKKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCiAJc3R3CXIzLCBJTV9JTU1SQGwocjQpCiAJbHd6CXIzLCBJTV9JTU1SQGwocjQpCiAJc3R3CXIzLCAwKHIwKQotCWxpcwlyMywgQ0ZHX1NZUENSQGgKLQlvcmkJcjMsIHIzLCBDRkdfU1lQQ1JAbAorCWxpcwlyMywgQ09ORklHX1NZU19TWVBDUkBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19TWVBDUkBsCiAJc3R3CXIzLCBJTV9TWVBDUkBsKHI0KQogCWx3eglyMywgSU1fU1lQQ1JAbChyNCkKIAlzdHcJcjMsIDQocjApCi0JbGlzCXIzLCBDRkdfU0NDUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX1NDQ1JAbAorCWxpcwlyMywgQ09ORklHX1NZU19TQ0NSQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX1NDQ1JAbAogCXN0dwlyMywgSU1fU0NDUkBsKHI0KQogCWx3eglyMywgSU1fU0NDUkBsKHI0KQogCXN0dwlyMywgOChyMCkKQEAgLTUyMSwxMCArNTIxLDEwIEBACiAJLyogSW5pdGlhbGlzZSB0aGUgU1lQQ1IgZWFybHksIGFuZCByZXNldCB0aGUgd2F0Y2hkb2cgKGlmIHJlcSkJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgKENGR19JTU1SK0lNX1JFR0JBU0UpQGgKKwlsaXMJcjMsIChDT05GSUdfU1lTX0lNTVIrSU1fUkVHQkFTRSlAaAogI2lmICFkZWZpbmVkKENPTkZJR19DT0dFTlQpCi0JbGlzCXI0LCBDRkdfU1lQQ1JAaAotCW9yaQlyNCwgcjQsIENGR19TWVBDUkBsCisJbGlzCXI0LCBDT05GSUdfU1lTX1NZUENSQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX1NZUENSQGwKIAlzdHcJcjQsIElNX1NZUENSQGwocjMpCiAjZW5kaWYgLyogIUNPTkZJR19DT0dFTlQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKQEAgLTUzOCwxOCArNTM4LDE4IEBACiAJLyogSElEMCBhbHNvIGNvbnRhaW5zIGNhY2hlIGNvbnRyb2wJCQkJKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgQ0ZHX0hJRDBfSU5JVEBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDBfSU5JVEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDBfSU5JVEBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19ISUQwX0lOSVRAbAogCVNZTkMKIAltdHNwcglISUQwLCByMwogCi0JbGlzCXIzLCBDRkdfSElEMF9GSU5BTEBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDBfRklOQUxAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQwX0ZJTkFMQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDBfRklOQUxAbAogCVNZTkMKIAltdHNwcglISUQwLCByMwogCi0JbGlzCXIzLCBDRkdfSElEMkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0hJRDJAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQyQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0hJRDJAbAogCW10c3ByCUhJRDIsIHIzCiAKIAkvKiBjbGVhciBhbGwgQkFUJ3MJCQkJCQkqLwpAQCAtNjE5LDI5ICs2MTksMjkgQEAKIAkuZ2xvYmwJaW5pdF9kZWJ1ZwogaW5pdF9kZWJ1ZzoKIAotCWxpcwlyMywgKENGR19JTU1SK0lNX1JFR0JBU0UpQGgKKwlsaXMJcjMsIChDT05GSUdfU1lTX0lNTVIrSU1fUkVHQkFTRSlAaAogCiAJLyogUXVpY2sgYW5kIGRpcnR5IGhhY2sgdG8gZW5hYmxlIHRoZSBSQU0gYW5kIGNvcHkgdGhlCQkqLwogCS8qIHZlY3RvcnMgc28gdGhhdCB3ZSBjYW4gdGFrZSBleGNlcHRpb25zLgkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJLyogd3JpdGUgTWVtb3J5IFJlZnJlc2ggUHJlc2NhbGVyICovCi0JbGkJcjQsIENGR19NUFRQUgorCWxpCXI0LCBDT05GSUdfU1lTX01QVFBSCiAJc3RoCXI0LCBJTV9NUFRQUkBsKHIzKQogCS8qIHdyaXRlIDYweCBSZWZyZXNoIFRpbWVyICovCi0JbGkJcjQsIENGR19QU1JUCisJbGkJcjQsIENPTkZJR19TWVNfUFNSVAogCXN0YglyNCwgSU1fUFNSVEBsKHIzKQogCS8qIGluaXQgdGhlIDYweCBTRFJBTSBNb2RlIFJlZ2lzdGVyICovCi0JbGlzCXI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX05PUk0pQGgKLQlvcmkJcjQsIHI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX05PUk0pQGwKKwlsaXMJcjQsIChDT05GSUdfU1lTX1BTRE1SfFBTRE1SX09QX05PUk0pQGgKKwlvcmkJcjQsIHI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9OT1JNKUBsCiAJc3R3CXI0LCBJTV9QU0RNUkBsKHIzKQogCS8qIHdyaXRlIFByZWNoYXJnZSBBbGwgQmFua3MgY29tbWFuZCAqLwotCWxpcwlyNCwgKENGR19QU0RNUnxQU0RNUl9PUF9QUkVBKUBoCi0Jb3JpCXI0LCByNCwgKENGR19QU0RNUnxQU0RNUl9PUF9QUkVBKUBsCisJbGlzCXI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9QUkVBKUBoCisJb3JpCXI0LCByNCwgKENPTkZJR19TWVNfUFNETVJ8UFNETVJfT1BfUFJFQSlAbAogCXN0dwlyNCwgSU1fUFNETVJAbChyMykKIAlzdGIJcjAsIDAoMCkKIAkvKiB3cml0ZSBlaWdodCBDQlIgUmVmcmVzaCBjb21tYW5kcyAqLwotCWxpcwlyNCwgKENGR19QU0RNUnxQU0RNUl9PUF9DQlJSKUBoCi0Jb3JpCXI0LCByNCwgKENGR19QU0RNUnxQU0RNUl9PUF9DQlJSKUBsCisJbGlzCXI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9DQlJSKUBoCisJb3JpCXI0LCByNCwgKENPTkZJR19TWVNfUFNETVJ8UFNETVJfT1BfQ0JSUilAbAogCXN0dwlyNCwgSU1fUFNETVJAbChyMykKIAlzdGIJcjAsIDAoMCkKIAlzdGIJcjAsIDAoMCkKQEAgLTY1MiwxMyArNjUyLDEzIEBACiAJc3RiCXIwLCAwKDApCiAJc3RiCXIwLCAwKDApCiAJLyogd3JpdGUgTW9kZSBSZWdpc3RlciBXcml0ZSBjb21tYW5kICovCi0JbGlzCXI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX01SVylAaAotCW9yaQlyNCwgcjQsIChDRkdfUFNETVJ8UFNETVJfT1BfTVJXKUBsCisJbGlzCXI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9NUlcpQGgKKwlvcmkJcjQsIHI0LCAoQ09ORklHX1NZU19QU0RNUnxQU0RNUl9PUF9NUlcpQGwKIAlzdHcJcjQsIElNX1BTRE1SQGwocjMpCiAJc3RiCXIwLCAwKDApCiAJLyogd3JpdGUgTm9ybWFsIE9wZXJhdGlvbiBjb21tYW5kIGFuZCBlbmFibGUgUmVmcmVzaCAqLwotCWxpcwlyNCwgKENGR19QU0RNUnxQU0RNUl9PUF9OT1JNfFBTRE1SX1JGRU4pQGgKLQlvcmkJcjQsIHI0LCAoQ0ZHX1BTRE1SfFBTRE1SX09QX05PUk18UFNETVJfUkZFTilAbAorCWxpcwlyNCwgKENPTkZJR19TWVNfUFNETVJ8UFNETVJfT1BfTk9STXxQU0RNUl9SRkVOKUBoCisJb3JpCXI0LCByNCwgKENPTkZJR19TWVNfUFNETVJ8UFNETVJfT1BfTk9STXxQU0RNUl9SRkVOKUBsCiAJc3R3CXI0LCBJTV9QU0RNUkBsKHIzKQogCXN0YglyMCwgMCgwKQogCS8qIFJBTSBzaG91bGQgbm93IGJlIG9wZXJhdGlvbmFsICovCkBAIC02ODcsNyArNjg3LDcgQEAKIAkvKiBhbiBleGNlcHRpb24gaXMgZ2VuZXJhdGVkIChiZWZvcmUgdGhlIGluc3RydWN0aW9uIGF0IHRoYXQJKi8KIAkvKiBsb2NhdGlvbiBjb21wbGV0ZXMpLiBUaGUgdmVjdG9yIGZvciB0aGlzIGV4Y2VwdGlvbiBpcyAweDEzMDAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQlsaXMJcjMsIENGR19JTU1SQGgKKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCiAJbHd6CXIzLCAwKHIzKQogCW10c3ByCUlBQlIsIHIzCiAKQEAgLTY5NSw5ICs2OTUsOSBAQAogCS8qIHJlc2lkZXMpIHRvIGEga25vd24gdmFsdWUgLSBtYWtlcyBpdCBlYXNpZXIgdG8gc2VlIHdoZXJlCSovCiAJLyogdGhlIHN0YWNrIGhhcyBiZWVuIHdyaXR0ZW4JCQkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbGlzCXIzLCAoQ0ZHX0lNTVIgKyBDRkdfSU5JVF9TUF9PRkZTRVQpQGgKLQlvcmkJcjMsIHIzLCAoQ0ZHX0lNTVIgKyBDRkdfSU5JVF9TUF9PRkZTRVQpQGwKLQlsaQlyNCwgKChDRkdfSU5JVF9TUF9PRkZTRVQgLSA0KSAvIDQpCisJbGlzCXIzLCAoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVClAaAorCW9yaQlyMywgcjMsIChDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKUBsCisJbGkJcjQsICgoQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAtIDQpIC8gNCkKIAltdGN0cglyNAogCWxpcwlyNCwgMHhkZWFkYmVhZkBoCiAJb3JpCXI0LCByNCwgMHhkZWFkYmVhZkBsCkBAIC04MDcsMTYgKzgwNywxNiBAQAogCW1yCXIxMCwgcjUJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCiAKIAltcglyMywgIHI1CQkJCS8qIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KLQlsaXMJcjQsIENGR19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcwkqLwotCW9yaQlyNCwgcjQsIENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcwkqLworCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKIAlsd3oJcjUsIEdPVChfX2luaXRfZW5kKQogCXN1YglyNSwgcjUsIHI0Ci0JbGkJcjYsIENGR19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCisJbGkJcjYsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZQkqLwogCiAJLyoKIAkgKiBGaXggR09UIHBvaW50ZXI6CiAJICoKLQkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENGR19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcworCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpICsgRGVzdGluYXRpb24gQWRkcmVzcwogCSAqCiAJICogT2Zmc2V0OgogCSAqLwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgyNjAvdHJhcHMuYyBiL2NwdS9tcGM4MjYwL3RyYXBzLmMKaW5kZXggYjVkNDE2Yy4uNjYyNDU0NCAxMDA2NDQKLS0tIGEvY3B1L21wYzgyNjAvdHJhcHMuYworKysgYi9jcHUvbXBjODI2MC90cmFwcy5jCkBAIC0xMTEsNyArMTExLDcgQEAKIHZvaWQgZHVtcF9wY2kgKHZvaWQpCiB7CiAKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJcHJpbnRmICgiUENJOiBlcnIgc3RhdHVzICV4IGVyciBtYXNrICV4IGVyciBjdHJsICV4XG4iLAogCQlsZTMyX3RvX2NwdSAoaW1tYXAtPmltX3BjaS5wY2lfZXNyKSwKQEAgLTEzNSw3ICsxMzUsNyBAQAogCSAqIHRoZSBQQ0kgZXhjZXB0aW9uIGhhbmRsZXIuCiAJICovCiAjaWZkZWYgQ09ORklHX1BDSQotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwICA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAjaWZkZWYgREVCVUcKIAlkdW1wX3BjaSgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9jcHUuYyBiL2NwdS9tcGM4M3h4L2NwdS5jCmluZGV4IDk5YWIyMTYuLjA1YzJmMzMgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L2NwdS5jCisrKyBiL2NwdS9tcGM4M3h4L2NwdS5jCkBAIC02Nyw3ICs2Nyw3IEBACiAJCUNQVV9UWVBFX0VOVFJZKDgzNzkpLAogCX07CiAKLQlpbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAKIAlwdXRzKCJDUFU6ICAgIik7CiAKQEAgLTE0OCw3ICsxNDgsNyBAQAogdm9pZCB1cG1jb25maWcgKHVpbnQgdXBtLCB1aW50ICp0YWJsZSwgdWludCBzaXplKQogewogI2lmIGRlZmluZWQoQ09ORklHX01QQzgzNFgpCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsYnVzODN4eF90ICpsYnVzID0gJmltbWFwLT5sYnVzOwogCXZvbGF0aWxlIHVjaGFyICpkdW1teSA9IE5VTEw7CiAJY29uc3QgdTMyIG1zZWwgPSAodXBtICsgNCkgPDwgQlJfTVNFTF9TSElGVDsJLyogV2hhdCB0aGUgTVNFTCBmaWVsZCBpbiBCUm4gc2hvdWxkIGJlICovCkBAIC0xOTYsNyArMTk2LDcgQEAKIAl1bG9uZyBhZGRyOwogI2VuZGlmCiAKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAjaWZkZWYgTVBDODN4eF9SRVNFVAogCS8qIEludGVycnVwdHMgYW5kIE1NVSBvZmYgKi8KQEAgLTIzNSw3ICsyMzUsNyBAQAogCSAqIFRyeWluZyB0byBleGVjdXRlIHRoZSBuZXh0IGluc3RydWN0aW9uIGF0IGEgbm9uLWV4aXN0aW5nIGFkZHJlc3MKIAkgKiBzaG91bGQgY2F1c2UgYSBtYWNoaW5lIGNoZWNrLCByZXN1bHRpbmcgaW4gcmVzZXQKIAkgKi8KLQlhZGRyID0gQ0ZHX1JFU0VUX0FERFJFU1M7CisJYWRkciA9IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKIAogCXByaW50ZigicmVzZXR0aW5nIHRoZSBib2FyZC4iKTsKIAlwcmludGYoIlxuIik7CkBAIC0yNjYsNyArMjY2LDcgQEAKIAlpbnQgcmVfZW5hYmxlID0gZGlzYWJsZV9pbnRlcnJ1cHRzKCk7CiAKIAkvKiBSZXNldCB0aGUgODN4eCB3YXRjaGRvZyAqLwotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWltbXItPndkdC5zd3NyciA9IDB4NTU2YzsKIAlpbW1yLT53ZHQuc3dzcnIgPSAweGFhMzk7CiAKQEAgLTI3OCw3ICsyNzgsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9FQ0MpCiB2b2lkIGRtYV9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZG1hODN4eF90ICpkbWEgPSAmaW1tYXAtPmRtYTsKIAl2b2xhdGlsZSB1MzIgc3RhdHVzID0gc3dhYjMyKGRtYS0+ZG1hc3IwKTsKIAl2b2xhdGlsZSB1MzIgZG1hbXIwID0gc3dhYjMyKGRtYS0+ZG1hbXIwKTsKQEAgLTMwOSw3ICszMDksNyBAQAogCiB1aW50IGRtYV9jaGVjayh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGRtYTgzeHhfdCAqZG1hID0gJmltbWFwLT5kbWE7CiAJdm9sYXRpbGUgdTMyIHN0YXR1cyA9IHN3YWIzMihkbWEtPmRtYXNyMCk7CiAJdm9sYXRpbGUgdTMyIGJ5dGVfY291bnQgPSBzd2FiMzIoZG1hLT5kbWFiY3IwKTsKQEAgLTMyOCw3ICszMjgsNyBAQAogCiBpbnQgZG1hX3hmZXIodm9pZCAqZGVzdCwgdTMyIGNvdW50LCB2b2lkICpzcmMpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZG1hODN4eF90ICpkbWEgPSAmaW1tYXAtPmRtYTsKIAl2b2xhdGlsZSB1MzIgZG1hbXIwOwogCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9jcHVfaW5pdC5jIGIvY3B1L21wYzgzeHgvY3B1X2luaXQuYwppbmRleCBmZjAxY2YxLi40OTFjMmU1IDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC9jcHVfaW5pdC5jCisrKyBiL2NwdS9tcGM4M3h4L2NwdV9pbml0LmMKQEAgLTYwLDEwNyArNjAsMTA3IEBACiB2b2lkIGNwdV9pbml0X2YgKHZvbGF0aWxlIGltbWFwX3QgKiBpbSkKIHsKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdCAqLwotCWdkID0gKGdkX3QgKikgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVCk7CisJZ2QgPSAoZ2RfdCAqKSAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpOwogCiAJLyogQ2xlYXIgaW5pdGlhbCBnbG9iYWwgZGF0YSAqLwogCW1lbXNldCAoKHZvaWQgKikgZ2QsIDAsIHNpemVvZiAoZ2RfdCkpOwogCiAJLyogc3lzdGVtIHBlcmZvcm1hbmNlIHR3ZWFraW5nICovCiAKLSNpZmRlZiBDRkdfQUNSX1BJUEVfREVQCisjaWZkZWYgQ09ORklHX1NZU19BQ1JfUElQRV9ERVAKIAkvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoICovCiAJaW0tPmFyYml0ZXIuYWNyID0gKGltLT5hcmJpdGVyLmFjciAmIH5BQ1JfUElQRV9ERVApIHwKLQkJCSAgKENGR19BQ1JfUElQRV9ERVAgPDwgQUNSX1BJUEVfREVQX1NISUZUKTsKKwkJCSAgKENPTkZJR19TWVNfQUNSX1BJUEVfREVQIDw8IEFDUl9QSVBFX0RFUF9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19BQ1JfUlBUQ05UCisjaWZkZWYgQ09ORklHX1NZU19BQ1JfUlBUQ05UCiAJLyogQXJiaXRlciByZXBlYXQgY291bnQgKi8KIAlpbS0+YXJiaXRlci5hY3IgPSAoaW0tPmFyYml0ZXIuYWNyICYgfihBQ1JfUlBUQ05UKSkgfAotCQkJICAoQ0ZHX0FDUl9SUFRDTlQgPDwgQUNSX1JQVENOVF9TSElGVCk7CisJCQkgIChDT05GSUdfU1lTX0FDUl9SUFRDTlQgPDwgQUNSX1JQVENOVF9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TUENSX09QVAorI2lmZGVmIENPTkZJR19TWVNfU1BDUl9PUFQKIAkvKiBPcHRpbWl6ZSB0cmFuc2FjdGlvbnMgYmV0d2VlbiBDU0IgYW5kIG90aGVyIGRldmljZXMgKi8KIAlpbS0+c3lzY29uZi5zcGNyID0gKGltLT5zeXNjb25mLnNwY3IgJiB+U1BDUl9PUFQpIHwKLQkJCSAgIChDRkdfU1BDUl9PUFQgPDwgU1BDUl9PUFRfU0hJRlQpOworCQkJICAgKENPTkZJR19TWVNfU1BDUl9PUFQgPDwgU1BDUl9PUFRfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU1BDUl9UU0VDRVAKKyNpZmRlZiBDT05GSUdfU1lTX1NQQ1JfVFNFQ0VQCiAJLyogYWxsIGVUU0VDJ3MgRW1lcmdlbmN5IHByaW9yaXR5ICovCiAJaW0tPnN5c2NvbmYuc3BjciA9IChpbS0+c3lzY29uZi5zcGNyICYgflNQQ1JfVFNFQ0VQKSB8Ci0JCQkgICAoQ0ZHX1NQQ1JfVFNFQ0VQIDw8IFNQQ1JfVFNFQ0VQX1NISUZUKTsKKwkJCSAgIChDT05GSUdfU1lTX1NQQ1JfVFNFQ0VQIDw8IFNQQ1JfVFNFQ0VQX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NQQ1JfVFNFQzFFUAorI2lmZGVmIENPTkZJR19TWVNfU1BDUl9UU0VDMUVQCiAJLyogVFNFQzEgRW1lcmdlbmN5IHByaW9yaXR5ICovCiAJaW0tPnN5c2NvbmYuc3BjciA9IChpbS0+c3lzY29uZi5zcGNyICYgflNQQ1JfVFNFQzFFUCkgfAotCQkJICAgKENGR19TUENSX1RTRUMxRVAgPDwgU1BDUl9UU0VDMUVQX1NISUZUKTsKKwkJCSAgIChDT05GSUdfU1lTX1NQQ1JfVFNFQzFFUCA8PCBTUENSX1RTRUMxRVBfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU1BDUl9UU0VDMkVQCisjaWZkZWYgQ09ORklHX1NZU19TUENSX1RTRUMyRVAKIAkvKiBUU0VDMiBFbWVyZ2VuY3kgcHJpb3JpdHkgKi8KIAlpbS0+c3lzY29uZi5zcGNyID0gKGltLT5zeXNjb25mLnNwY3IgJiB+U1BDUl9UU0VDMkVQKSB8Ci0JCQkgICAoQ0ZHX1NQQ1JfVFNFQzJFUCA8PCBTUENSX1RTRUMyRVBfU0hJRlQpOworCQkJICAgKENPTkZJR19TWVNfU1BDUl9UU0VDMkVQIDw8IFNQQ1JfVFNFQzJFUF9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TQ0NSX0VOQ0NNCisjaWZkZWYgQ09ORklHX1NZU19TQ0NSX0VOQ0NNCiAJLyogRW5jcnlwdGlvbiBjbG9jayBtb2RlICovCiAJaW0tPmNsay5zY2NyID0gKGltLT5jbGsuc2NjciAmIH5TQ0NSX0VOQ0NNKSB8Ci0JCSAgICAgICAoQ0ZHX1NDQ1JfRU5DQ00gPDwgU0NDUl9QQ0lDTV9TSElGVCk7CisJCSAgICAgICAoQ09ORklHX1NZU19TQ0NSX0VOQ0NNIDw8IFNDQ1JfUENJQ01fU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU0NDUl9QQ0lDTQorI2lmZGVmIENPTkZJR19TWVNfU0NDUl9QQ0lDTQogCS8qIFBDSSAmIERNQSBjbG9jayBtb2RlICovCiAJaW0tPmNsay5zY2NyID0gKGltLT5jbGsuc2NjciAmIH5TQ0NSX1BDSUNNKSB8Ci0JCSAgICAgICAoQ0ZHX1NDQ1JfUENJQ00gPDwgU0NDUl9QQ0lDTV9TSElGVCk7CisJCSAgICAgICAoQ09ORklHX1NZU19TQ0NSX1BDSUNNIDw8IFNDQ1JfUENJQ01fU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU0NDUl9UU0VDQ00KKyNpZmRlZiBDT05GSUdfU1lTX1NDQ1JfVFNFQ0NNCiAJLyogYWxsIFRTRUMncyBjbG9jayBtb2RlICovCiAJaW0tPmNsay5zY2NyID0gKGltLT5jbGsuc2NjciAmIH5TQ0NSX1RTRUNDTSkgfAotCQkgICAgICAgKENGR19TQ0NSX1RTRUNDTSA8PCBTQ0NSX1RTRUNDTV9TSElGVCk7CisJCSAgICAgICAoQ09ORklHX1NZU19TQ0NSX1RTRUNDTSA8PCBTQ0NSX1RTRUNDTV9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TQ0NSX1RTRUMxQ00KKyNpZmRlZiBDT05GSUdfU1lTX1NDQ1JfVFNFQzFDTQogCS8qIFRTRUMxIGNsb2NrIG1vZGUgKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfVFNFQzFDTSkgfAotCQkgICAgICAgKENGR19TQ0NSX1RTRUMxQ00gPDwgU0NDUl9UU0VDMUNNX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfVFNFQzFDTSA8PCBTQ0NSX1RTRUMxQ01fU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU0NDUl9UU0VDMkNNCisjaWZkZWYgQ09ORklHX1NZU19TQ0NSX1RTRUMyQ00KIAkvKiBUU0VDMiBjbG9jayBtb2RlICovCiAJaW0tPmNsay5zY2NyID0gKGltLT5jbGsuc2NjciAmIH5TQ0NSX1RTRUMyQ00pIHwKLQkJICAgICAgIChDRkdfU0NDUl9UU0VDMkNNIDw8IFNDQ1JfVFNFQzJDTV9TSElGVCk7CisJCSAgICAgICAoQ09ORklHX1NZU19TQ0NSX1RTRUMyQ00gPDwgU0NDUl9UU0VDMkNNX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NDQ1JfVFNFQzFPTgorI2lmZGVmIENPTkZJR19TWVNfU0NDUl9UU0VDMU9OCiAJLyogVFNFQzEgY2xvY2sgc3dpdGNoICovCiAJaW0tPmNsay5zY2NyID0gKGltLT5jbGsuc2NjciAmIH5TQ0NSX1RTRUMxT04pIHwKLQkJICAgICAgIChDRkdfU0NDUl9UU0VDMU9OIDw8IFNDQ1JfVFNFQzFPTl9TSElGVCk7CisJCSAgICAgICAoQ09ORklHX1NZU19TQ0NSX1RTRUMxT04gPDwgU0NDUl9UU0VDMU9OX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NDQ1JfVFNFQzJPTgorI2lmZGVmIENPTkZJR19TWVNfU0NDUl9UU0VDMk9OCiAJLyogVFNFQzIgY2xvY2sgc3dpdGNoICovCiAJaW0tPmNsay5zY2NyID0gKGltLT5jbGsuc2NjciAmIH5TQ0NSX1RTRUMyT04pIHwKLQkJICAgICAgIChDRkdfU0NDUl9UU0VDMk9OIDw8IFNDQ1JfVFNFQzJPTl9TSElGVCk7CisJCSAgICAgICAoQ09ORklHX1NZU19TQ0NSX1RTRUMyT04gPDwgU0NDUl9UU0VDMk9OX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NDQ1JfVVNCTVBIQ00KKyNpZmRlZiBDT05GSUdfU1lTX1NDQ1JfVVNCTVBIQ00KIAkvKiBVU0IgTVBIIGNsb2NrIG1vZGUgKi8KIAlpbS0+Y2xrLnNjY3IgPSAoaW0tPmNsay5zY2NyICYgflNDQ1JfVVNCTVBIQ00pIHwKLQkJICAgICAgIChDRkdfU0NDUl9VU0JNUEhDTSA8PCBTQ0NSX1VTQk1QSENNX1NISUZUKTsKKwkJICAgICAgIChDT05GSUdfU1lTX1NDQ1JfVVNCTVBIQ00gPDwgU0NDUl9VU0JNUEhDTV9TSElGVCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TQ0NSX1VTQkRSQ00KKyNpZmRlZiBDT05GSUdfU1lTX1NDQ1JfVVNCRFJDTQogCS8qIFVTQiBEUiBjbG9jayBtb2RlICovCiAJaW0tPmNsay5zY2NyID0gKGltLT5jbGsuc2NjciAmIH5TQ0NSX1VTQkRSQ00pIHwKLQkJICAgICAgIChDRkdfU0NDUl9VU0JEUkNNIDw8IFNDQ1JfVVNCRFJDTV9TSElGVCk7CisJCSAgICAgICAoQ09ORklHX1NZU19TQ0NSX1VTQkRSQ00gPDwgU0NDUl9VU0JEUkNNX1NISUZUKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NDQ1JfU0FUQUNNCisjaWZkZWYgQ09ORklHX1NZU19TQ0NSX1NBVEFDTQogCS8qIFNBVEEgY29udHJvbGxlciBjbG9jayBtb2RlICovCiAJaW0tPmNsay5zY2NyID0gKGltLT5jbGsuc2NjciAmIH5TQ0NSX1NBVEFDTSkgfAotCQkgICAgICAgKENGR19TQ0NSX1NBVEFDTSA8PCBTQ0NSX1NBVEFDTV9TSElGVCk7CisJCSAgICAgICAoQ09ORklHX1NZU19TQ0NSX1NBVEFDTSA8PCBTQ0NSX1NBVEFDTV9TSElGVCk7CiAjZW5kaWYKIAogCS8qIFJTUiAtIFJlc2V0IFN0YXR1cyBSZWdpc3RlciAtIGNsZWFyIGFsbCBzdGF0dXMgKDQuNi4xLjMpICovCkBAIC0xNzgsMzAgKzE3OCwzMCBAQAogCWltLT5yZXNldC5ybXIgPSAoUk1SX0NTUkUgJiAoMTw8Uk1SX0NTUkVfU0hJRlQpKTsKIAogCS8qIExDUlIgLSBDbG9jayBSYXRpbyBSZWdpc3RlciAoMTAuMy4xLjE2KSAqLwotCWltLT5sYnVzLmxjcnIgPSBDRkdfTENSUjsKKwlpbS0+bGJ1cy5sY3JyID0gQ09ORklHX1NZU19MQ1JSOwogCiAJLyogRW5hYmxlIFRpbWUgQmFzZSAmIERlY3JpbWVudGVyICggc28gd2Ugd2lsbCBoYXZlIHVkZWxheSgpICkqLwogCWltLT5zeXNjb25mLnNwY3IgfD0gU1BDUl9UQkVOOwogCiAJLyogU3lzdGVtIEdlbmVyYWwgUHVycG9zZSBSZWdpc3RlciAqLwotI2lmZGVmIENGR19TSUNSSAorI2lmZGVmIENPTkZJR19TWVNfU0lDUkgKICNpZiBkZWZpbmVkKENPTkZJR19NUEM4MzRYKSB8fCBkZWZpbmVkKENPTkZJR19NUEM4MzEzKQogCS8qIHJlZ2FyZGluZyB0byBNUEMzNHggbWFudWFsIHJldi4xIGJpdHMgMjguLjI5IG11c3QgYmUgcHJlc2VydmVkICovCi0JaW0tPnN5c2NvbmYuc2ljcmggPSAoaW0tPnN5c2NvbmYuc2ljcmggJiAweDAwMDAwMDBDKSB8IENGR19TSUNSSDsKKwlpbS0+c3lzY29uZi5zaWNyaCA9IChpbS0+c3lzY29uZi5zaWNyaCAmIDB4MDAwMDAwMEMpIHwgQ09ORklHX1NZU19TSUNSSDsKICNlbHNlCi0JaW0tPnN5c2NvbmYuc2ljcmggPSBDRkdfU0lDUkg7CisJaW0tPnN5c2NvbmYuc2ljcmggPSBDT05GSUdfU1lTX1NJQ1JIOwogI2VuZGlmCiAjZW5kaWYKLSNpZmRlZiBDRkdfU0lDUkwKLQlpbS0+c3lzY29uZi5zaWNybCA9IENGR19TSUNSTDsKKyNpZmRlZiBDT05GSUdfU1lTX1NJQ1JMCisJaW0tPnN5c2NvbmYuc2ljcmwgPSBDT05GSUdfU1lTX1NJQ1JMOwogI2VuZGlmCiAJLyogRERSIGNvbnRyb2wgZHJpdmVyIHJlZ2lzdGVyICovCi0jaWZkZWYgQ0ZHX0REUkNEUgotCWltLT5zeXNjb25mLmRkcmNkciA9IENGR19ERFJDRFI7CisjaWZkZWYgQ09ORklHX1NZU19ERFJDRFIKKwlpbS0+c3lzY29uZi5kZHJjZHIgPSBDT05GSUdfU1lTX0REUkNEUjsKICNlbmRpZgogCS8qIE91dHB1dCBidWZmZXIgaW1wZWRhbmNlIHJlZ2lzdGVyICovCi0jaWZkZWYgQ0ZHX09CSVIKLQlpbS0+c3lzY29uZi5vYmlyID0gQ0ZHX09CSVI7CisjaWZkZWYgQ09ORklHX1NZU19PQklSCisJaW0tPnN5c2NvbmYub2JpciA9IENPTkZJR19TWVNfT0JJUjsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1FFCkBAIC0yMTgsODggKzIxOCw4OCBAQAogCSAqIGhhcyBiZWVuIGRldGVybWluZWQKIAkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0JSMF9QUkVMSU0pICBcCi0JJiYgZGVmaW5lZChDRkdfT1IwX1BSRUxJTSkgXAotCSYmIGRlZmluZWQoQ0ZHX0xCTEFXQkFSMF9QUkVMSU0pIFwKLQkmJiBkZWZpbmVkKENGR19MQkxBV0FSMF9QUkVMSU0pCi0JaW0tPmxidXMuYmFua1swXS5iciA9IENGR19CUjBfUFJFTElNOwotCWltLT5sYnVzLmJhbmtbMF0ub3IgPSBDRkdfT1IwX1BSRUxJTTsKLQlpbS0+c3lzY29uZi5sYmxhd1swXS5iYXIgPSBDRkdfTEJMQVdCQVIwX1BSRUxJTTsKLQlpbS0+c3lzY29uZi5sYmxhd1swXS5hciA9IENGR19MQkxBV0FSMF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMF9QUkVMSU0pICBcCisJJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMF9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTSkgXAorCSYmIGRlZmluZWQoQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0pCisJaW0tPmxidXMuYmFua1swXS5iciA9IENPTkZJR19TWVNfQlIwX1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzBdLm9yID0gQ09ORklHX1NZU19PUjBfUFJFTElNOworCWltLT5zeXNjb25mLmxibGF3WzBdLmJhciA9IENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1swXS5hciA9IENPTkZJR19TWVNfTEJMQVdBUjBfUFJFTElNOwogI2Vsc2UKLSNlcnJvcglDRkdfQlIwX1BSRUxJTSwgQ0ZHX09SMF9QUkVMSU0sIENGR19MQkxBV0JBUjBfUFJFTElNICYgQ0ZHX0xCTEFXQVIwX1BSRUxJTSBtdXN0IGJlIGRlZmluZWQKKyNlcnJvcglDT05GSUdfU1lTX0JSMF9QUkVMSU0sIENPTkZJR19TWVNfT1IwX1BSRUxJTSwgQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNICYgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0gbXVzdCBiZSBkZWZpbmVkCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSMV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SMV9QUkVMSU0pCi0JaW0tPmxidXMuYmFua1sxXS5iciA9IENGR19CUjFfUFJFTElNOwotCWltLT5sYnVzLmJhbmtbMV0ub3IgPSBDRkdfT1IxX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIxX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMV9QUkVMSU0pCisJaW0tPmxidXMuYmFua1sxXS5iciA9IENPTkZJR19TWVNfQlIxX1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzFdLm9yID0gQ09ORklHX1NZU19PUjFfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTEJMQVdCQVIxX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTEJMQVdBUjFfUFJFTElNKQotCWltLT5zeXNjb25mLmxibGF3WzFdLmJhciA9IENGR19MQkxBV0JBUjFfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzFdLmFyID0gQ0ZHX0xCTEFXQVIxX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVIxX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTSkKKwlpbS0+c3lzY29uZi5sYmxhd1sxXS5iYXIgPSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU07CisJaW0tPnN5c2NvbmYubGJsYXdbMV0uYXIgPSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pCi0JaW0tPmxidXMuYmFua1syXS5iciA9IENGR19CUjJfUFJFTElNOwotCWltLT5sYnVzLmJhbmtbMl0ub3IgPSBDRkdfT1IyX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMl9QUkVMSU0pCisJaW0tPmxidXMuYmFua1syXS5iciA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzJdLm9yID0gQ09ORklHX1NZU19PUjJfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTEJMQVdCQVIyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTEJMQVdBUjJfUFJFTElNKQotCWltLT5zeXNjb25mLmxibGF3WzJdLmJhciA9IENGR19MQkxBV0JBUjJfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzJdLmFyID0gQ0ZHX0xCTEFXQVIyX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVIyX1BSRUxJTSkKKwlpbS0+c3lzY29uZi5sYmxhd1syXS5iYXIgPSBDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU07CisJaW0tPnN5c2NvbmYubGJsYXdbMl0uYXIgPSBDT05GSUdfU1lTX0xCTEFXQVIyX1BSRUxJTTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0JSM19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SM19QUkVMSU0pCi0JaW0tPmxidXMuYmFua1szXS5iciA9IENGR19CUjNfUFJFTElNOwotCWltLT5sYnVzLmJhbmtbM10ub3IgPSBDRkdfT1IzX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pCisJaW0tPmxidXMuYmFua1szXS5iciA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzNdLm9yID0gQ09ORklHX1NZU19PUjNfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTEJMQVdCQVIzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTEJMQVdBUjNfUFJFTElNKQotCWltLT5zeXNjb25mLmxibGF3WzNdLmJhciA9IENGR19MQkxBV0JBUjNfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzNdLmFyID0gQ0ZHX0xCTEFXQVIzX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVIzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVIzX1BSRUxJTSkKKwlpbS0+c3lzY29uZi5sYmxhd1szXS5iYXIgPSBDT05GSUdfU1lTX0xCTEFXQkFSM19QUkVMSU07CisJaW0tPnN5c2NvbmYubGJsYXdbM10uYXIgPSBDT05GSUdfU1lTX0xCTEFXQVIzX1BSRUxJTTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0JSNF9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNF9QUkVMSU0pCi0JaW0tPmxidXMuYmFua1s0XS5iciA9IENGR19CUjRfUFJFTElNOwotCWltLT5sYnVzLmJhbmtbNF0ub3IgPSBDRkdfT1I0X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI0X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNF9QUkVMSU0pCisJaW0tPmxidXMuYmFua1s0XS5iciA9IENPTkZJR19TWVNfQlI0X1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzRdLm9yID0gQ09ORklHX1NZU19PUjRfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTEJMQVdCQVI0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTEJMQVdBUjRfUFJFTElNKQotCWltLT5zeXNjb25mLmxibGF3WzRdLmJhciA9IENGR19MQkxBV0JBUjRfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzRdLmFyID0gQ0ZHX0xCTEFXQVI0X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVI0X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVI0X1BSRUxJTSkKKwlpbS0+c3lzY29uZi5sYmxhd1s0XS5iYXIgPSBDT05GSUdfU1lTX0xCTEFXQkFSNF9QUkVMSU07CisJaW0tPnN5c2NvbmYubGJsYXdbNF0uYXIgPSBDT05GSUdfU1lTX0xCTEFXQVI0X1BSRUxJTTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0JSNV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNV9QUkVMSU0pCi0JaW0tPmxidXMuYmFua1s1XS5iciA9IENGR19CUjVfUFJFTElNOwotCWltLT5sYnVzLmJhbmtbNV0ub3IgPSBDRkdfT1I1X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI1X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNV9QUkVMSU0pCisJaW0tPmxidXMuYmFua1s1XS5iciA9IENPTkZJR19TWVNfQlI1X1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzVdLm9yID0gQ09ORklHX1NZU19PUjVfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTEJMQVdCQVI1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTEJMQVdBUjVfUFJFTElNKQotCWltLT5zeXNjb25mLmxibGF3WzVdLmJhciA9IENGR19MQkxBV0JBUjVfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzVdLmFyID0gQ0ZHX0xCTEFXQVI1X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVI1X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVI1X1BSRUxJTSkKKwlpbS0+c3lzY29uZi5sYmxhd1s1XS5iYXIgPSBDT05GSUdfU1lTX0xCTEFXQkFSNV9QUkVMSU07CisJaW0tPnN5c2NvbmYubGJsYXdbNV0uYXIgPSBDT05GSUdfU1lTX0xCTEFXQVI1X1BSRUxJTTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0JSNl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNl9QUkVMSU0pCi0JaW0tPmxidXMuYmFua1s2XS5iciA9IENGR19CUjZfUFJFTElNOwotCWltLT5sYnVzLmJhbmtbNl0ub3IgPSBDRkdfT1I2X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI2X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNl9QUkVMSU0pCisJaW0tPmxidXMuYmFua1s2XS5iciA9IENPTkZJR19TWVNfQlI2X1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzZdLm9yID0gQ09ORklHX1NZU19PUjZfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTEJMQVdCQVI2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTEJMQVdBUjZfUFJFTElNKQotCWltLT5zeXNjb25mLmxibGF3WzZdLmJhciA9IENGR19MQkxBV0JBUjZfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzZdLmFyID0gQ0ZHX0xCTEFXQVI2X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVI2X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVI2X1BSRUxJTSkKKwlpbS0+c3lzY29uZi5sYmxhd1s2XS5iYXIgPSBDT05GSUdfU1lTX0xCTEFXQkFSNl9QUkVMSU07CisJaW0tPnN5c2NvbmYubGJsYXdbNl0uYXIgPSBDT05GSUdfU1lTX0xCTEFXQVI2X1BSRUxJTTsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0JSN19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SN19QUkVMSU0pCi0JaW0tPmxidXMuYmFua1s3XS5iciA9IENGR19CUjdfUFJFTElNOwotCWltLT5sYnVzLmJhbmtbN10ub3IgPSBDRkdfT1I3X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI3X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SN19QUkVMSU0pCisJaW0tPmxidXMuYmFua1s3XS5iciA9IENPTkZJR19TWVNfQlI3X1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzddLm9yID0gQ09ORklHX1NZU19PUjdfUFJFTElNOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfTEJMQVdCQVI3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfTEJMQVdBUjdfUFJFTElNKQotCWltLT5zeXNjb25mLmxibGF3WzddLmJhciA9IENGR19MQkxBV0JBUjdfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzddLmFyID0gQ0ZHX0xCTEFXQVI3X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJMQVdCQVI3X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0xCTEFXQVI3X1BSRUxJTSkKKwlpbS0+c3lzY29uZi5sYmxhd1s3XS5iYXIgPSBDT05GSUdfU1lTX0xCTEFXQkFSN19QUkVMSU07CisJaW0tPnN5c2NvbmYubGJsYXdbN10uYXIgPSBDT05GSUdfU1lTX0xCTEFXQVI3X1BSRUxJTTsKICNlbmRpZgotI2lmZGVmIENGR19HUElPMV9QUkVMSU0KLQlpbS0+Z3Bpb1swXS5kYXQgPSBDRkdfR1BJTzFfREFUOwotCWltLT5ncGlvWzBdLmRpciA9IENGR19HUElPMV9ESVI7CisjaWZkZWYgQ09ORklHX1NZU19HUElPMV9QUkVMSU0KKwlpbS0+Z3Bpb1swXS5kYXQgPSBDT05GSUdfU1lTX0dQSU8xX0RBVDsKKwlpbS0+Z3Bpb1swXS5kaXIgPSBDT05GSUdfU1lTX0dQSU8xX0RJUjsKICNlbmRpZgotI2lmZGVmIENGR19HUElPMl9QUkVMSU0KLQlpbS0+Z3Bpb1sxXS5kYXQgPSBDRkdfR1BJTzJfREFUOwotCWltLT5ncGlvWzFdLmRpciA9IENGR19HUElPMl9ESVI7CisjaWZkZWYgQ09ORklHX1NZU19HUElPMl9QUkVMSU0KKwlpbS0+Z3Bpb1sxXS5kYXQgPSBDT05GSUdfU1lTX0dQSU8yX0RBVDsKKwlpbS0+Z3Bpb1sxXS5kaXIgPSBDT05GSUdfU1lTX0dQSU8yX0RJUjsKICNlbmRpZgogfQogCiBpbnQgY3B1X2luaXRfciAodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfUUUKLQl1aW50IHFlX2Jhc2UgPSBDRkdfSU1NUiArIDB4MDAxMDAwMDA7IC8qIFFFIGltbXIgYmFzZSAqLworCXVpbnQgcWVfYmFzZSA9IENPTkZJR19TWVNfSU1NUiArIDB4MDAxMDAwMDA7IC8qIFFFIGltbXIgYmFzZSAqLwogCXFlX2luaXQocWVfYmFzZSk7CiAJcWVfcmVzZXQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L21wYzgzeHgvZWNjLmMgYi9jcHUvbXBjODN4eC9lY2MuYwppbmRleCA1MTM3YWI2Li41YWIxNjlmIDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC9lY2MuYworKysgYi9jcHUvbXBjODN4eC9lY2MuYwpAQCAtMjAsNyArMjAsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9FQ0MpICYmIGRlZmluZWQoQ09ORklHX0REUl9FQ0NfQ01EKQogdm9pZCBlY2NfcHJpbnRfc3RhdHVzKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBkZHI4M3h4X3QgKmRkciA9ICZpbW1hcC0+ZGRyOwogCiAJcHJpbnRmKCJcbkVDQyBtb2RlOiAlc1xuXG4iLApAQCAtMTAwLDcgKzEwMCw3IEBACiAKIGludCBkb19lY2MoY21kX3RibF90ICogY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZGRyODN4eF90ICpkZHIgPSAmaW1tYXAtPmRkcjsKIAl2b2xhdGlsZSB1MzIgdmFsOwogCXU2NCAqYWRkcjsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4M3h4L2ZkdC5jIGIvY3B1L21wYzgzeHgvZmR0LmMKaW5kZXggMzliZDlkYy4uZjg5MDc3NSAxMDA2NDQKLS0tIGEvY3B1L21wYzgzeHgvZmR0LmMKKysrIGIvY3B1L21wYzgzeHgvZmR0LmMKQEAgLTM0LDcgKzM0LDcgQEAKIAogdm9pZCBmdF9jcHVfc2V0dXAodm9pZCAqYmxvYiwgYmRfdCAqYmQpCiB7Ci0JaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWludCBzcHJpZHIgPSBpbW1yLT5zeXNjb25mLnNwcmlkcjsKIAogCS8qCkBAIC01Miw3ICs1Miw4IEBACiAJCWZkdF9maXh1cF9jcnlwdG9fbm9kZShibG9iLCAweDAyMDQpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfSEFTX0VUSDApIHx8IGRlZmluZWQoQ09ORklHX0hBU19FVEgxKSB8fFwKLSAgICBkZWZpbmVkKENPTkZJR19IQVNfRVRIMikgfHwgZGVmaW5lZChDT05GSUdfSEFTX0VUSDMpCisgICAgZGVmaW5lZChDT05GSUdfSEFTX0VUSDIpIHx8IGRlZmluZWQoQ09ORklHX0hBU19FVEgzKSB8fFwKKyAgICBkZWZpbmVkKENPTkZJR19IQVNfRVRINCkgfHwgZGVmaW5lZChDT05GSUdfSEFTX0VUSDUpCiAJZmR0X2ZpeHVwX2V0aGVybmV0KGJsb2IpOwogI2VuZGlmCiAKQEAgLTc2LDkgKzc3LDkgQEAKIAlmdF9xZV9zZXR1cChibG9iKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX05TMTY1NTAKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTAKIAlkb19maXh1cF9ieV9jb21wYXRfdTMyKGJsb2IsICJuczE2NTUwIiwKLQkJImNsb2NrLWZyZXF1ZW5jeSIsIENGR19OUzE2NTUwX0NMSywgMSk7CisJCSJjbG9jay1mcmVxdWVuY3kiLCBDT05GSUdfU1lTX05TMTY1NTBfQ0xLLCAxKTsKICNlbmRpZgogCiAJZmR0X2ZpeHVwX21lbW9yeShibG9iLCAodTY0KWJkLT5iaV9tZW1zdGFydCwgKHU2NCliZC0+YmlfbWVtc2l6ZSk7CmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbXBjODN4eC9pbnRlcnJ1cHRzLmMKaW5kZXggOThlZDIxYy4uZmFmZmJhZiAxMDA2NDQKLS0tIGEvY3B1L21wYzgzeHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM4M3h4L2ludGVycnVwdHMuYwpAQCAtMzgsOSArMzgsOSBAQAogCiBpbnQgaW50ZXJydXB0X2luaXRfY3B1ICh1bnNpZ25lZCAqZGVjcmVtZW50ZXJfY291bnQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKLQkqZGVjcmVtZW50ZXJfY291bnQgPSAoZ2QtPmJ1c19jbGsgLyA0KSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSAoZ2QtPmJ1c19jbGsgLyA0KSAvIENPTkZJR19TWVNfSFo7CiAKIAkvKiBFbmFibGUgZTMwMCB0aW1lIGJhc2UgKi8KIApkaWZmIC0tZ2l0IGEvY3B1L21wYzgzeHgvbmFuZF9pbml0LmMgYi9jcHUvbXBjODN4eC9uYW5kX2luaXQuYwppbmRleCBlOTJmMjMwLi4zOGUxNDFhIDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC9uYW5kX2luaXQuYworKysgYi9jcHUvbXBjODN4eC9uYW5kX2luaXQuYwpAQCAtMzcsNyArMzcsNyBAQAogCWludCBpOwogCiAJLyogUG9pbnRlciBpcyB3cml0YWJsZSBzaW5jZSB3ZSBhbGxvY2F0ZWQgYSByZWdpc3RlciBmb3IgaXQgKi8KLQlnZCA9IChnZF90ICopIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpOworCWdkID0gKGdkX3QgKikgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKTsKIAogCS8qIENsZWFyIGluaXRpYWwgZ2xvYmFsIGRhdGEgKi8KIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGdkX3QpOyBpKyspCkBAIC00NSwzNCArNDUsMzQgQEAKIAogCS8qIHN5c3RlbSBwZXJmb3JtYW5jZSB0d2Vha2luZyAqLwogCi0jaWZkZWYgQ0ZHX0FDUl9QSVBFX0RFUAorI2lmZGVmIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCiAJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAqLwogCWltLT5hcmJpdGVyLmFjciA9IChpbS0+YXJiaXRlci5hY3IgJiB+QUNSX1BJUEVfREVQKSB8Ci0JCQkgIChDRkdfQUNSX1BJUEVfREVQIDw8IEFDUl9QSVBFX0RFUF9TSElGVCk7CisJCQkgIChDT05GSUdfU1lTX0FDUl9QSVBFX0RFUCA8PCBBQ1JfUElQRV9ERVBfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfQUNSX1JQVENOVAorI2lmZGVmIENPTkZJR19TWVNfQUNSX1JQVENOVAogCS8qIEFyYml0ZXIgcmVwZWF0IGNvdW50ICovCiAJaW0tPmFyYml0ZXIuYWNyID0gKGltLT5hcmJpdGVyLmFjciAmIH4oQUNSX1JQVENOVCkpIHwKLQkJCSAgKENGR19BQ1JfUlBUQ05UIDw8IEFDUl9SUFRDTlRfU0hJRlQpOworCQkJICAoQ09ORklHX1NZU19BQ1JfUlBUQ05UIDw8IEFDUl9SUFRDTlRfU0hJRlQpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfU1BDUl9PUFQKKyNpZmRlZiBDT05GSUdfU1lTX1NQQ1JfT1BUCiAJLyogT3B0aW1pemUgdHJhbnNhY3Rpb25zIGJldHdlZW4gQ1NCIGFuZCBvdGhlciBkZXZpY2VzICovCiAJaW0tPnN5c2NvbmYuc3BjciA9IChpbS0+c3lzY29uZi5zcGNyICYgflNQQ1JfT1BUKSB8Ci0JCQkgICAoQ0ZHX1NQQ1JfT1BUIDw8IFNQQ1JfT1BUX1NISUZUKTsKKwkJCSAgIChDT05GSUdfU1lTX1NQQ1JfT1BUIDw8IFNQQ1JfT1BUX1NISUZUKTsKICNlbmRpZgogCiAJLyogRW5hYmxlIFRpbWUgQmFzZSAmIERlY3JpbWVudGVyIChzbyB3ZSB3aWxsIGhhdmUgdWRlbGF5KCkpICovCiAJaW0tPnN5c2NvbmYuc3BjciB8PSBTUENSX1RCRU47CiAKIAkvKiBERFIgY29udHJvbCBkcml2ZXIgcmVnaXN0ZXIgKi8KLSNpZmRlZiBDRkdfRERSQ0RSCi0JaW0tPnN5c2NvbmYuZGRyY2RyID0gQ0ZHX0REUkNEUjsKKyNpZmRlZiBDT05GSUdfU1lTX0REUkNEUgorCWltLT5zeXNjb25mLmRkcmNkciA9IENPTkZJR19TWVNfRERSQ0RSOwogI2VuZGlmCiAJLyogT3V0cHV0IGJ1ZmZlciBpbXBlZGFuY2UgcmVnaXN0ZXIgKi8KLSNpZmRlZiBDRkdfT0JJUgotCWltLT5zeXNjb25mLm9iaXIgPSBDRkdfT0JJUjsKKyNpZmRlZiBDT05GSUdfU1lTX09CSVIKKwlpbS0+c3lzY29uZi5vYmlyID0gQ09ORklHX1NZU19PQklSOwogI2VuZGlmCiAKIAkvKgpAQCAtODQsMTYgKzg0LDE2IEBACiAJICogaGFzIGJlZW4gZGV0ZXJtaW5lZAogCSAqLwogCi0jaWYgZGVmaW5lZChDRkdfTkFORF9CUl9QUkVMSU0pICBcCi0JJiYgZGVmaW5lZChDRkdfTkFORF9PUl9QUkVMSU0pIFwKLQkmJiBkZWZpbmVkKENGR19OQU5EX0xCTEFXQkFSX1BSRUxJTSkgXAotCSYmIGRlZmluZWQoQ0ZHX05BTkRfTEJMQVdBUl9QUkVMSU0pCi0JaW0tPmxidXMuYmFua1swXS5iciA9IENGR19OQU5EX0JSX1BSRUxJTTsKLQlpbS0+bGJ1cy5iYW5rWzBdLm9yID0gQ0ZHX05BTkRfT1JfUFJFTElNOwotCWltLT5zeXNjb25mLmxibGF3WzBdLmJhciA9IENGR19OQU5EX0xCTEFXQkFSX1BSRUxJTTsKLQlpbS0+c3lzY29uZi5sYmxhd1swXS5hciA9IENGR19OQU5EX0xCTEFXQVJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTSkgIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9PUl9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9MQkxBV0JBUl9QUkVMSU0pIFwKKwkmJiBkZWZpbmVkKENPTkZJR19TWVNfTkFORF9MQkxBV0FSX1BSRUxJTSkKKwlpbS0+bGJ1cy5iYW5rWzBdLmJyID0gQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTTsKKwlpbS0+bGJ1cy5iYW5rWzBdLm9yID0gQ09ORklHX1NZU19OQU5EX09SX1BSRUxJTTsKKwlpbS0+c3lzY29uZi5sYmxhd1swXS5iYXIgPSBDT05GSUdfU1lTX05BTkRfTEJMQVdCQVJfUFJFTElNOworCWltLT5zeXNjb25mLmxibGF3WzBdLmFyID0gQ09ORklHX1NZU19OQU5EX0xCTEFXQVJfUFJFTElNOwogI2Vsc2UKLSNlcnJvciBDRkdfTkFORF9CUl9QUkVMSU0sIENGR19OQU5EX09SX1BSRUxJTSwgQ0ZHX05BTkRfTEJMQVdCQVJfUFJFTElNICYgQ0ZHX05BTkRfTEJMQVdBUl9QUkVMSU0gbXVzdCBiZSBkZWZpbmVkCisjZXJyb3IgQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTSwgQ09ORklHX1NZU19OQU5EX09SX1BSRUxJTSwgQ09ORklHX1NZU19OQU5EX0xCTEFXQkFSX1BSRUxJTSAmIENPTkZJR19TWVNfTkFORF9MQkxBV0FSX1BSRUxJTSBtdXN0IGJlIGRlZmluZWQKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9wY2kuYyBiL2NwdS9tcGM4M3h4L3BjaS5jCmluZGV4IGMzZWM1ZjguLjViOGVlYjcgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L3BjaS5jCisrKyBiL2NwdS9tcGM4M3h4L3BjaS5jCkBAIC00Miw3ICs0Miw3IEBACiAKIHN0YXRpYyB2b2lkIHBjaV9pbml0X2J1cyhpbnQgYnVzLCBzdHJ1Y3QgcGNpX3JlZ2lvbiAqcmVnKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBwb3Q4M3h4X3QgKnBvdCA9IGltbXItPmlvcy5wb3Q7CiAJdm9sYXRpbGUgcGNpY3RybDgzeHhfdCAqcGNpX2N0cmwgPSAmaW1tci0+cGNpX2N0cmxbYnVzXTsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSAmcGNpX2hvc2VbYnVzXTsKQEAgLTk0LDggKzk0LDggQEAKIAlob3NlLT5maXJzdF9idXNubyA9IDA7CiAJaG9zZS0+bGFzdF9idXNubyA9IDB4ZmY7CiAKLQlwY2lfc2V0dXBfaW5kaXJlY3QoaG9zZSwgQ0ZHX0lNTVIgKyAweDgzMDAgKyBidXMgKiAweDgwLAotCSAgICAgICAgICAgICAgICAgICAgICAgICBDRkdfSU1NUiArIDB4ODMwNCArIGJ1cyAqIDB4ODApOworCXBjaV9zZXR1cF9pbmRpcmVjdChob3NlLCBDT05GSUdfU1lTX0lNTVIgKyAweDgzMDAgKyBidXMgKiAweDgwLAorCSAgICAgICAgICAgICAgICAgICAgICAgICBDT05GSUdfU1lTX0lNTVIgKyAweDgzMDQgKyBidXMgKiAweDgwKTsKIAogCXBjaV9yZWdpc3Rlcl9ob3NlKGhvc2UpOwogCkBAIC0xMzMsNyArMTMzLDcgQEAKICAqLwogdm9pZCBtcGM4M3h4X3BjaV9pbml0KGludCBudW1fYnVzZXMsIHN0cnVjdCBwY2lfcmVnaW9uICoqcmVnLCBpbnQgd2FybWJvb3QpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWludCBpOwogCiAJaWYgKG51bV9idXNlcyA+IE1BWF9CVVNFUykgewpkaWZmIC0tZ2l0IGEvY3B1L21wYzgzeHgvcWVfaW8uYyBiL2NwdS9tcGM4M3h4L3FlX2lvLmMKaW5kZXggY2U5MWEwNy4uZGI5NGYwMCAxMDA2NDQKLS0tIGEvY3B1L21wYzgzeHgvcWVfaW8uYworKysgYi9jcHUvbXBjODN4eC9xZV9pby5jCkBAIC0zMyw3ICszMyw3IEBACiAJdTMyCQkJcGluXzJiaXRfYXNzaWduOwogCXUzMgkJCXBpbl8xYml0X21hc2s7CiAJdTMyCQkJdG1wX3ZhbDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9ICh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBxZXBpbzgzeHhfdAkqcGFyX2lvID0gKHZvbGF0aWxlIHFlcGlvODN4eF90ICopJmltLT5xZXBpbzsKIAogCS8qIENhY3VsYXRlIHBpbiBsb2NhdGlvbiBhbmQgMmJpdCBtYXNrIGFuZCBkaXIgKi8KZGlmZiAtLWdpdCBhL2NwdS9tcGM4M3h4L3NlcmRlcy5jIGIvY3B1L21wYzgzeHgvc2VyZGVzLmMKaW5kZXggMDIwYzRjOC4uNjMwYjExMSAxMDA2NDQKLS0tIGEvY3B1L21wYzgzeHgvc2VyZGVzLmMKKysrIGIvY3B1L21wYzgzeHgvc2VyZGVzLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogdm9pZCBmc2xfc2V0dXBfc2VyZGVzKHUzMiBvZmZzZXQsIGNoYXIgcHJvdG8sIGNoYXIgcmZja3MsIGNoYXIgdmRkKQogewotCXZvaWQgKnJlZ3MgPSAodm9pZCAqKUNGR19JTU1SICsgb2Zmc2V0OworCXZvaWQgKnJlZ3MgPSAodm9pZCAqKUNPTkZJR19TWVNfSU1NUiArIG9mZnNldDsKIAl1MzIgdG1wOwogCiAJLyogMS4wViBjb3JldmRkICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9zcGRfc2RyYW0uYyBiL2NwdS9tcGM4M3h4L3NwZF9zZHJhbS5jCmluZGV4IGY0YTBlOTAuLjM1OWE5MTUgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L3NwZF9zZHJhbS5jCisrKyBiL2NwdS9tcGM4M3h4L3NwZF9zZHJhbS5jCkBAIC0zOCw3ICszOCw3IEBACiAKIHZvaWQgYm9hcmRfYWRkX3JhbV9pbmZvKGludCB1c2VfZGVmYXVsdCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGRkcjgzeHhfdCAqZGRyID0gJmltbWFwLT5kZHI7CiAJY2hhciBidWZbMzJdOwogCkBAIC01Nyw5ICs1Nyw5IEBACiAKIAlwcmludGYoIiwgJXMgTUh6KSIsIHN0cm1oeihidWYsIGdkLT5tZW1fY2xrKSk7CiAKLSNpZiBkZWZpbmVkKENGR19MQl9TRFJBTSkgJiYgZGVmaW5lZChDRkdfTEJDX1NEUkFNX1NJWkUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0xCX1NEUkFNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUpCiAJcHV0cygiXG5TRFJBTTogIik7Ci0JcHJpbnRfc2l6ZSAoQ0ZHX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICIgKGxvY2FsIGJ1cykiKTsKKwlwcmludF9zaXplIChDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQsICIgKGxvY2FsIGJ1cykiKTsKICNlbmRpZgogfQogCkBAIC03MSw4ICs3MSw4IEBACiBleHRlcm4gaW50IGRtYV94ZmVyKHZvaWQgKmRlc3QsIHVpbnQgY291bnQsIHZvaWQgKnNyYyk7CiAjZW5kaWYKIAotI2lmbmRlZglDRkdfUkVBRF9TUEQKLSNkZWZpbmUgQ0ZHX1JFQURfU1BECWkyY19yZWFkCisjaWZuZGVmCUNPTkZJR19TWVNfUkVBRF9TUEQKKyNkZWZpbmUgQ09ORklHX1NZU19SRUFEX1NQRAlpMmNfcmVhZAogI2VuZGlmCiAKIC8qCkBAIC0xMjksNyArMTI5LDcgQEAKIAogbG9uZyBpbnQgc3BkX3NkcmFtKCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBkZHI4M3h4X3QgKmRkciA9ICZpbW1hcC0+ZGRyOwogCXZvbGF0aWxlIGxhdzgzeHhfdCAqZWNtID0gJmltbWFwLT5zeXNjb25mLmRkcmxhd1swXTsKIAlzcGRfZWVwcm9tX3Qgc3BkOwpAQCAtMTU4LDcgKzE1OCw3IEBACiAJdW5zaWduZWQgaW50IHB2ciA9IGdldF9wdnIoKTsKIAogCS8qIFJlYWQgU1BEIHBhcmFtZXRlcnMgd2l0aCBJMkMgKi8KLQlDRkdfUkVBRF9TUEQoU1BEX0VFUFJPTV9BRERSRVNTLCAwLCAxLCAodWNoYXIgKikgJiBzcGQsIHNpemVvZiAoc3BkKSk7CisJQ09ORklHX1NZU19SRUFEX1NQRChTUERfRUVQUk9NX0FERFJFU1MsIDAsIDEsICh1Y2hhciAqKSAmIHNwZCwgc2l6ZW9mIChzcGQpKTsKICNpZmRlZiBTUERfREVCVUcKIAlzcGRfZGVidWcoJnNwZCk7CiAjZW5kaWYKQEAgLTE5NCwxMiArMTk0LDEyIEBACiAJCXJldHVybiAwOwogCX0KIAotI2lmZGVmIENGR19ERFJDRFJfVkFMVUUKKyNpZmRlZiBDT05GSUdfU1lTX0REUkNEUl9WQUxVRQogCS8qCiAJICogQWRqdXN0IEREUiBJSSBJTyB2b2x0YWdlIGJpYXNpbmcuICBJdCBqdXN0IG1ha2VzIGl0IHdvcmsuCiAJICovCiAJaWYoc3BkLm1lbV90eXBlID09IFNQRF9NRU1UWVBFX0REUjIpIHsKLQkJaW1tYXAtPnN5c2NvbmYuZGRyY2RyID0gQ0ZHX0REUkNEUl9WQUxVRTsKKwkJaW1tYXAtPnN5c2NvbmYuZGRyY2RyID0gQ09ORklHX1NZU19ERFJDRFJfVkFMVUU7CiAJfQogCXVkZWxheSg1MDAwMCk7CiAjZW5kaWYKQEAgLTIxNCw3ICsyMTQsNyBAQAogCX0KIAogCS8qIFNldHVwIEREUiBjaGlwIHNlbGVjdCByZWdpc3RlciAqLwotI2lmZGVmIENGR184M1hYX0REUl9VU0VTX0NTMAorI2lmZGVmIENPTkZJR19TWVNfODNYWF9ERFJfVVNFU19DUzAKIAlkZHItPmNzYm5kc1swXS5jc2JuZHMgPSAoYmFua3NpemUoc3BkLnJvd19kZW5zKSA+PiAyNCkgLSAxOwogCWRkci0+Y3NfY29uZmlnWzBdID0gKCAxIDw8IDMxCiAJCQkgICAgfCAob2R0X3JkX2NmZyA8PCAyMCkKQEAgLTI3NCw3ICsyNzQsNyBAQAogCS8qCiAJICogU2V0IHVwIExBV0JBUiBmb3IgYWxsIG9mIEREUi4KIAkgKi8KLQllY20tPmJhciA9IENGR19ERFJfU0RSQU1fQkFTRSAmIDB4ZmZmZmYwMDA7CisJZWNtLT5iYXIgPSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFICYgMHhmZmZmZjAwMDsKIAllY20tPmFyICA9IChMQVdBUl9FTiB8IExBV0FSX1RSR1RfSUZfRERSIHwgKExBV0FSX1NJWkUgJiBsYXdfc2l6ZSkpOwogCWRlYnVnKCJERFI6YmFyPTB4JTA4eFxuIiwgZWNtLT5iYXIpOwogCWRlYnVnKCJERFI6YXI9MHglMDh4XG4iLCBlY20tPmFyKTsKQEAgLTcyNCw4ICs3MjQsOCBAQAogCQlkZWJ1ZygiRERSOiBzZHJhbV9jZmcyICA9IDB4JTA4eFxuIiwgZGRyLT5zZHJhbV9jZmcyKTsKIAl9CiAKLSNpZmRlZiBDRkdfRERSX1NEUkFNX0NMS19DTlRMCS8qIE9wdGlvbmFsIHBsYXRmb3JtIHNwZWNpZmljIHZhbHVlICovCi0JZGRyLT5zZHJhbV9jbGtfY250bCA9IENGR19ERFJfU0RSQU1fQ0xLX0NOVEw7CisjaWZkZWYgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJLyogT3B0aW9uYWwgcGxhdGZvcm0gc3BlY2lmaWMgdmFsdWUgKi8KKwlkZHItPnNkcmFtX2Nsa19jbnRsID0gQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEw7CiAjZW5kaWYKIAlkZWJ1ZygiRERSOnNkcmFtX2Nsa19jbnRsPTB4JTA4eFxuIiwgZGRyLT5zZHJhbV9jbGtfY250bCk7CiAKQEAgLTg0Miw3ICs4NDIsNyBAQAogLyogI2RlZmluZSBDT05GSUdfRERSX0VDQ19JTklUX1ZJQV9ETUEgKi8KIHZvaWQgZGRyX2VuYWJsZV9lY2ModW5zaWduZWQgaW50IGRyYW1fc2l6ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBkZHI4M3h4X3QgKmRkcj0gJmltbWFwLT5kZHI7CiAJdW5zaWduZWQgbG9uZyB0X3N0YXJ0LCB0X2VuZDsKIAlyZWdpc3RlciB1NjQgKnA7CmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC9zcGVlZC5jIGIvY3B1L21wYzgzeHgvc3BlZWQuYwppbmRleCA3NmM1NjlkLi4zYTcwOGQ4IDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC9zcGVlZC5jCisrKyBiL2NwdS9tcGM4M3h4L3NwZWVkLmMKQEAgLTkwLDcgKzkwLDcgQEAKICAqLwogaW50IGdldF9jbG9ja3Modm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXUzMiBwY2lfc3luY19pbjsKIAl1OCBzcG1mOwogCXU4IGNsa2luX2RpdjsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4M3h4L3N0YXJ0LlMgYi9jcHUvbXBjODN4eC9zdGFydC5TCmluZGV4IDE0YmZiZGEuLmNkNTY2YjIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4M3h4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzgzeHgvc3RhcnQuUwpAQCAtNTcsOCArNTcsOCBAQAogI2RlZmluZSBNU1JfS0VSTkVMIChNU1JfRlB8TVNSX01FfE1TUl9SSSkKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQ09ORklHX05BTkRfU1BMKSAmJiAhZGVmaW5lZChDRkdfUkFNQk9PVCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIQk9PVAorI2lmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkgJiYgIWRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIQk9PVAogI2VuZGlmCiAKIC8qCkBAIC05Myw4ICs5Myw4IEBACiAJLmZpbGwJOCwxLCgoKHcpPj4gOCkmMHhmZik7CVwKIAkuZmlsbAk4LDEsKCgodykgICAgKSYweGZmKQogCi0JX0hSQ1dfVEFCTEVfRU5UUlkoQ0ZHX0hSQ1dfTE9XKQotCV9IUkNXX1RBQkxFX0VOVFJZKENGR19IUkNXX0hJR0gpCisJX0hSQ1dfVEFCTEVfRU5UUlkoQ09ORklHX1NZU19IUkNXX0xPVykKKwlfSFJDV19UQUJMRV9FTlRSWShDT05GSUdfU1lTX0hSQ1dfSElHSCkKIAogLyoKICAqIE1hZ2ljIG51bWJlciBhbmQgdmVyc2lvbiBzdHJpbmcgLSBwdXQgaXQgYWZ0ZXIgdGhlIEhSQ1cgc2luY2UgaXQKQEAgLTExMSwxMCArMTExLDEwIEBACiAKICNpZm5kZWYgQ09ORklHX0RFRkFVTFRfSU1NUgogI2Vycm9yIENPTkZJR19ERUZBVUxUX0lNTVIgbXVzdCBiZSBkZWZpbmVkCi0jZW5kaWYgLyogQ0ZHX0RFRkFVTFRfSU1NUiAqLwotI2lmbmRlZiBDRkdfSU1NUgotI2RlZmluZSBDRkdfSU1NUiBDT05GSUdfREVGQVVMVF9JTU1SCi0jZW5kaWYgLyogQ0ZHX0lNTVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUiAqLworI2lmbmRlZiBDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SIENPTkZJR19ERUZBVUxUX0lNTVIKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lNTVIgKi8KIAogLyoKICAqIEFmdGVyIGNvbmZpZ3VyYXRpb24sIGEgc3lzdGVtIHJlc2V0IGV4Y2VwdGlvbiBpcyBleGVjdXRlZCB1c2luZyB0aGUKQEAgLTE2MCwyNCArMTYwLDM2IEBACiAJbm9wCiBib290X3dhcm06IC8qIHRpbWUgdCA1ICovCiAJbWZtc3IJcjUJCQkvKiBzYXZlIG1zciBjb250ZW50cwkqLwotCWxpcwlyMywgQ0ZHX0lNTVJAaAotCW9yaQlyMywgcjMsIENGR19JTU1SQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JTU1SQGwKIAlzdHcJcjMsIElNTVJCQVIocjQpCiAKIAkvKiBJbml0aWFsaXNlIHRoZSBFMzAwIHByb2Nlc3NvciBjb3JlCQkqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAorI2lmZGVmIENPTkZJR19OQU5EX1NQTAorCS8qIFRoZSBGQ00gYmVnaW5zIGV4ZWN1dGlvbiBhZnRlciBvbmx5IHRoZSBmaXJzdCBwYWdlCisJICogaXMgbG9hZGVkLiAgV2FpdCBmb3IgdGhlIHJlc3QgYmVmb3JlIGJyYW5jaGluZworCSAqIHRvIGFub3RoZXIgZmxhc2ggcGFnZS4KKwkgKi8KKwlhZGRpCXI3LCByMywgMHg1MGIwCisxOglkY2JpCTAsIHI3CisJbHd6CXI2LCAwKHI3KQorCWFuZGkuCXI2LCByNiwgMQorCWJlcQkxYgorI2VuZGlmCisKIAlibAlpbml0X2UzMDBfY29yZQogCi0jaWZkZWYgQ0ZHX0ZMQVNIQk9PVAorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hCT09UCiAKIAkvKiBJbmZsYXRlIGZsYXNoIGxvY2F0aW9uIHNvIGl0IGFwcGVhcnMgZXZlcnl3aGVyZSwgY2FsY3VsYXRlICovCiAJLyogdGhlIGFic29sdXRlIGFkZHJlc3MgaW4gZmluYWwgbG9jYXRpb24gb2YgdGhlIEZMQVNILCBqdW1wICAqLwogCS8qIHRoZXJlIGFuZCBkZWZsYXRlIHRoZSBmbGFzaCBzaXplIGJhY2sgdG8gbWluaW1hbCBzaXplICAgICAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJYmwgbWFwX2ZsYXNoX2J5X2xhdzEKLQlsaXMgcjQsIChDRkdfTU9OSVRPUl9CQVNFKUBoCi0Jb3JpIHI0LCByNCwgKENGR19NT05JVE9SX0JBU0UpQGwKKwlsaXMgcjQsIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSlAaAorCW9yaSByNCwgcjQsIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSlAbAogCWFkZGkgcjUsIHI0LCBpbl9mbGFzaCAtIF9zdGFydCArIEVYQ19PRkZfU1lTX1JFU0VUCiAJbXRsciByNQogCWJscgpAQCAtMTg1LDcgKzE5Nyw3IEBACiAjaWYgMSAvKiBSZW1hcHBpbmcgZmxhc2ggd2l0aCBMQVcwLiAqLwogCWJsIHJlbWFwX2ZsYXNoX2J5X2xhdzAKICNlbmRpZgotI2VuZGlmCS8qIENGR19GTEFTSEJPT1QgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIQk9PVCAqLwogCiAJLyogc2V0dXAgdGhlIGJhdHMgKi8KIAlibAlzZXR1cF9iYXRzCkBAIC0yMTEsMTUgKzIyMywxNSBAQAogCS8qIGVuYWJsZSB0aGUgZGF0YSBjYWNoZSAqLwogCWJsCWRjYWNoZV9lbmFibGUKIAlzeW5jCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKIAlibAlsb2NrX3JhbV9pbl9jYWNoZQogCXN5bmMKICNlbmRpZgogCiAJLyogc2V0IHVwIHRoZSBzdGFjayBwb2ludGVyIGluIG91ciBuZXdseSBjcmVhdGVkCiAJICogY2FjaGUtcmFtIChyMSkgKi8KLQlsaXMJcjEsIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpQGgKLQlvcmkJcjEsIHIxLCAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKUBsCisJbGlzCXIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpQGgKKwlvcmkJcjEsIHIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpQGwKIAogCWxpCXIwLCAwCQkvKiBNYWtlIHJvb20gZm9yIHN0YWNrIGZyYW1lIGhlYWRlciBhbmQJKi8KIAlzdHd1CXIwLCAtNChyMSkJLyogY2xlYXIgZmluYWwgc3RhY2sgZnJhbWUgc28gdGhhdAkqLwpAQCAtMjM0LDcgKzI0Niw3IEBACiAJR0VUX0dPVAkJCS8qIGluaXRpYWxpemUgR09UIGFjY2VzcwkqLwogCiAJLyogcjM6IElNTVIgKi8KLQlsaXMJcjMsIENGR19JTU1SQGgKKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCiAJLyogcnVuIGxvdy1sZXZlbCBDUFUgaW5pdCBjb2RlIChpbiBGbGFzaCkqLwogCWJsCWNwdV9pbml0X2YKIApAQCAtNDU2LDExICs0NjgsMTEgQEAKIAltdHNwcglTUlIxLCByMwkJCS8qIE1ha2UgU1JSMSBtYXRjaCBNU1IgKi8KIAogCi0JbGlzCXIzLCBDRkdfSU1NUkBoCisJbGlzCXIzLCBDT05GSUdfU1lTX0lNTVJAaAogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQogCS8qIEluaXRpYWxpc2UgdGhlIFdhdGhjZG9nIHZhbHVlcyBhbmQgcmVzZXQgaXQgKGlmIHJlcSkgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbGlzIHI0LCBDRkdfV0FUQ0hET0dfVkFMVUUKKwlsaXMgcjQsIENPTkZJR19TWVNfV0FUQ0hET0dfVkFMVUUKIAlvcmkgcjQsIHI0LCAoU1dDUlJfU1dFTiB8IFNXQ1JSX1NXUkkgfCBTV0NSUl9TV1BSKQogCXN0dyByNCwgU1dDUlIocjMpCiAKQEAgLTQ5OSwxOCArNTExLDE4IEBACiAJLyogLSBmb3JjZSBpbnZhbGlkYXRpb24gb2YgZGF0YSBhbmQgaW5zdHJ1Y3Rpb24gY2FjaGVzICAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgQ0ZHX0hJRDBfSU5JVEBoCi0Jb3JpCXIzLCByMywgKENGR19ISUQwX0lOSVQgfCBISUQwX0lDRkkgfCBISUQwX0RDRkkpQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfSElEMF9JTklUQGgKKwlvcmkJcjMsIHIzLCAoQ09ORklHX1NZU19ISUQwX0lOSVQgfCBISUQwX0lDRkkgfCBISUQwX0RDRkkpQGwKIAlTWU5DCiAJbXRzcHIJSElEMCwgcjMKIAotCWxpcwlyMywgQ0ZHX0hJRDBfRklOQUxAaAotCW9yaQlyMywgcjMsIChDRkdfSElEMF9GSU5BTCAmIH4oSElEMF9JQ0ZJIHwgSElEMF9EQ0ZJKSlAbAorCWxpcwlyMywgQ09ORklHX1NZU19ISUQwX0ZJTkFMQGgKKwlvcmkJcjMsIHIzLCAoQ09ORklHX1NZU19ISUQwX0ZJTkFMICYgfihISUQwX0lDRkkgfCBISUQwX0RDRkkpKUBsCiAJU1lOQwogCW10c3ByCUhJRDAsIHIzCiAKLQlsaXMJcjMsIENGR19ISUQyQGgKLQlvcmkJcjMsIHIzLCBDRkdfSElEMkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0hJRDJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSElEMkBsCiAJU1lOQwogCW10c3ByCUhJRDIsIHIzCiAKQEAgLTUyNCwxMzEgKzUzNiwxMzEgQEAKIAlhZGRpcwlyMCwgcjAsIDB4MDAwMAogCiAJLyogSUJBVCAwICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDBMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDBMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUMFVAaAotCW9yaQlyMywgcjMsIENGR19JQkFUMFVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUMExAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDBMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDBVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQwVUBsCiAJbXRzcHIJSUJBVDBMLCByNAogCW10c3ByCUlCQVQwVSwgcjMKIAogCS8qIERCQVQgMCAqLwotCWFkZGlzCXI0LCByMCwgQ0ZHX0RCQVQwTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQwTEBsCi0JYWRkaXMJcjMsIHIwLCBDRkdfREJBVDBVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDBVQGwKKwlhZGRpcwlyNCwgcjAsIENPTkZJR19TWVNfREJBVDBMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQwTEBsCisJYWRkaXMJcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQwVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUMFVAbAogCW10c3ByCURCQVQwTCwgcjQKIAltdHNwcglEQkFUMFUsIHIzCiAKIAkvKiBJQkFUIDEgKi8KLQlhZGRpcwlyNCwgcjAsIENGR19JQkFUMUxAaAotCW9yaQlyNCwgcjQsIENGR19JQkFUMUxAbAotCWFkZGlzCXIzLCByMCwgQ0ZHX0lCQVQxVUBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lCQVQxVUBsCisJYWRkaXMJcjQsIHIwLCBDT05GSUdfU1lTX0lCQVQxTEBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19JQkFUMUxAbAorCWFkZGlzCXIzLCByMCwgQ09ORklHX1NZU19JQkFUMVVAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSUJBVDFVQGwKIAltdHNwcglJQkFUMUwsIHI0CiAJbXRzcHIJSUJBVDFVLCByMwogCiAJLyogREJBVCAxICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfREJBVDFMQGgKLQlvcmkJcjQsIHI0LCBDRkdfREJBVDFMQGwKLQlhZGRpcwlyMywgcjAsIENGR19EQkFUMVVAaAotCW9yaQlyMywgcjMsIENGR19EQkFUMVVAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19EQkFUMUxAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfREJBVDFMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfREJBVDFVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQxVUBsCiAJbXRzcHIJREJBVDFMLCByNAogCW10c3ByCURCQVQxVSwgcjMKIAogCS8qIElCQVQgMiAqLwotCWFkZGlzCXI0LCByMCwgQ0ZHX0lCQVQyTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lCQVQyTEBsCi0JYWRkaXMJcjMsIHIwLCBDRkdfSUJBVDJVQGgKLQlvcmkJcjMsIHIzLCBDRkdfSUJBVDJVQGwKKwlhZGRpcwlyNCwgcjAsIENPTkZJR19TWVNfSUJBVDJMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQyTEBsCisJYWRkaXMJcjMsIHIwLCBDT05GSUdfU1lTX0lCQVQyVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19JQkFUMlVAbAogCW10c3ByCUlCQVQyTCwgcjQKIAltdHNwcglJQkFUMlUsIHIzCiAKIAkvKiBEQkFUIDIgKi8KLQlhZGRpcwlyNCwgcjAsIENGR19EQkFUMkxAaAotCW9yaQlyNCwgcjQsIENGR19EQkFUMkxAbAotCWFkZGlzCXIzLCByMCwgQ0ZHX0RCQVQyVUBoCi0Jb3JpCXIzLCByMywgQ0ZHX0RCQVQyVUBsCisJYWRkaXMJcjQsIHIwLCBDT05GSUdfU1lTX0RCQVQyTEBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19EQkFUMkxAbAorCWFkZGlzCXIzLCByMCwgQ09ORklHX1NZU19EQkFUMlVAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfREJBVDJVQGwKIAltdHNwcglEQkFUMkwsIHI0CiAJbXRzcHIJREJBVDJVLCByMwogCiAJLyogSUJBVCAzICovCi0JYWRkaXMJcjQsIHIwLCBDRkdfSUJBVDNMQGgKLQlvcmkJcjQsIHI0LCBDRkdfSUJBVDNMQGwKLQlhZGRpcwlyMywgcjAsIENGR19JQkFUM1VAaAotCW9yaQlyMywgcjMsIENGR19JQkFUM1VAbAorCWFkZGlzCXI0LCByMCwgQ09ORklHX1NZU19JQkFUM0xAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUJBVDNMQGwKKwlhZGRpcwlyMywgcjAsIENPTkZJR19TWVNfSUJBVDNVQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQzVUBsCiAJbXRzcHIJSUJBVDNMLCByNAogCW10c3ByCUlCQVQzVSwgcjMKIAogCS8qIERCQVQgMyAqLwotCWFkZGlzCXI0LCByMCwgQ0ZHX0RCQVQzTEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RCQVQzTEBsCi0JYWRkaXMJcjMsIHIwLCBDRkdfREJBVDNVQGgKLQlvcmkJcjMsIHIzLCBDRkdfREJBVDNVQGwKKwlhZGRpcwlyNCwgcjAsIENPTkZJR19TWVNfREJBVDNMQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQzTEBsCisJYWRkaXMJcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQzVUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19EQkFUM1VAbAogCW10c3ByCURCQVQzTCwgcjQKIAltdHNwcglEQkFUM1UsIHIzCiAKICNpZmRlZiBDT05GSUdfSElHSF9CQVRTCiAJLyogSUJBVCA0ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19JQkFUNExAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDRMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0lCQVQ0VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUNFVAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0lCQVQ0TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDRMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19JQkFUNFVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQ0VUBsCiAJbXRzcHIgICBJQkFUNEwsIHI0CiAJbXRzcHIgICBJQkFUNFUsIHIzCiAKIAkvKiBEQkFUIDQgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0RCQVQ0TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUNExAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfREJBVDRVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ0VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfREJBVDRMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19EQkFUNExAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQ0VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDRVQGwKIAltdHNwciAgIERCQVQ0TCwgcjQKIAltdHNwciAgIERCQVQ0VSwgcjMKIAogCS8qIElCQVQgNSAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfSUJBVDVMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0lCQVQ1TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19JQkFUNVVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDVVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19JQkFUNUxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQ1TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfSUJBVDVVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19JQkFUNVVAbAogCW10c3ByICAgSUJBVDVMLCByNAogCW10c3ByICAgSUJBVDVVLCByMwogCiAJLyogREJBVCA1ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19EQkFUNUxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfREJBVDVMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0RCQVQ1VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19EQkFUNVVAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0RCQVQ1TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfREJBVDVMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19EQkFUNVVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0RCQVQ1VUBsCiAJbXRzcHIgICBEQkFUNUwsIHI0CiAJbXRzcHIgICBEQkFUNVUsIHIzCiAKIAkvKiBJQkFUIDYgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0lCQVQ2TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUNkxAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfSUJBVDZVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0lCQVQ2VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfSUJBVDZMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19JQkFUNkxAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0lCQVQ2VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDZVQGwKIAltdHNwciAgIElCQVQ2TCwgcjQKIAltdHNwciAgIElCQVQ2VSwgcjMKIAogCS8qIERCQVQgNiAqLwotCWFkZGlzICAgcjQsIHIwLCBDRkdfREJBVDZMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0RCQVQ2TEBsCi0JYWRkaXMgICByMywgcjAsIENGR19EQkFUNlVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfREJBVDZVQGwKKwlhZGRpcyAgIHI0LCByMCwgQ09ORklHX1NZU19EQkFUNkxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQ2TEBsCisJYWRkaXMgICByMywgcjAsIENPTkZJR19TWVNfREJBVDZVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19EQkFUNlVAbAogCW10c3ByICAgREJBVDZMLCByNAogCW10c3ByICAgREJBVDZVLCByMwogCiAJLyogSUJBVCA3ICovCi0JYWRkaXMgICByNCwgcjAsIENGR19JQkFUN0xAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDdMQGwKLQlhZGRpcyAgIHIzLCByMCwgQ0ZHX0lCQVQ3VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUN1VAbAorCWFkZGlzICAgcjQsIHIwLCBDT05GSUdfU1lTX0lCQVQ3TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfSUJBVDdMQGwKKwlhZGRpcyAgIHIzLCByMCwgQ09ORklHX1NZU19JQkFUN1VAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQ3VUBsCiAJbXRzcHIgICBJQkFUN0wsIHI0CiAJbXRzcHIgICBJQkFUN1UsIHIzCiAKIAkvKiBEQkFUIDcgKi8KLQlhZGRpcyAgIHI0LCByMCwgQ0ZHX0RCQVQ3TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUN0xAbAotCWFkZGlzICAgcjMsIHIwLCBDRkdfREJBVDdVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ3VUBsCisJYWRkaXMgICByNCwgcjAsIENPTkZJR19TWVNfREJBVDdMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19EQkFUN0xAbAorCWFkZGlzICAgcjMsIHIwLCBDT05GSUdfU1lTX0RCQVQ3VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDdVQGwKIAltdHNwciAgIERCQVQ3TCwgcjQKIAltdHNwciAgIERCQVQ3VSwgcjMKICNlbmRpZgpAQCAtNzc0LDExICs3ODYsMTEgQEAKIAkuZ2xvYmwJZmx1c2hfZGNhY2hlCiBmbHVzaF9kY2FjaGU6CiAJbGlzCXIzLCAwCi0JbGlzCXI1LCBDRkdfQ0FDSEVMSU5FX1NJWkUKKwlsaXMJcjUsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIDE6CWNtcAkwLCAxLCByMywgcjUKIAliZ2UJMmYKIAlsd3oJcjUsIDAocjMpCi0JbGlzCXI1LCBDRkdfQ0FDSEVMSU5FX1NJWkUKKwlsaXMJcjUsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAlhZGRpCXIzLCByMywgMHg0CiAJYgkxYgogMjoJYmxyCkBAIC04MjAsMTYgKzgzMiwxNiBAQAogCW1yCXIxMCwgcjUJCS8qIFNhdmUgY29weSBvZiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCiAKIAltcglyMywgIHI1CQkJCS8qIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KLQlsaXMJcjQsIENGR19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcyAqLwotCW9yaQlyNCwgcjQsIENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAaAkJLyogU291cmNlICAgICAgQWRkcmVzcyAqLworCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKIAlsd3oJcjUsIEdPVChfX2Jzc19zdGFydCkKIAlzdWIJcjUsIHI1LCByNAotCWxpCXI2LCBDRkdfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZSAqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUgKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKQorCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpCiAJICoJCSsgRGVzdGluYXRpb24gQWRkcmVzcwogCSAqCiAJICogT2Zmc2V0OgpAQCAtMTA3MywxNCArMTA4NSwxNCBAQAogCWJscgogI2VuZGlmIC8qICFDT05GSUdfTkFORF9TUEwgKi8KIAotI2lmZGVmIENGR19JTklUX1JBTV9MT0NLCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiBsb2NrX3JhbV9pbl9jYWNoZToKIAkvKiBBbGxvY2F0ZSBJbml0aWFsIFJBTSBpbiBkYXRhIGNhY2hlLgogCSAqLwotCWxpcwlyMywgKENGR19JTklUX1JBTV9BRERSICYgfjMxKUBoCi0Jb3JpCXIzLCByMywgKENGR19JTklUX1JBTV9BRERSICYgfjMxKUBsCi0JbGkJcjQsICgoQ0ZHX0lOSVRfUkFNX0VORCAmIH4zMSkgKyBcCi0JCSAgICAgKENGR19JTklUX1JBTV9BRERSICYgMzEpICsgMzEpIC8gMzIKKwlsaXMJcjMsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiB+MzEpQGgKKwlvcmkJcjMsIHIzLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgfjMxKUBsCisJbGkJcjQsICgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgJiB+MzEpICsgXAorCQkgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiAzMSkgKyAzMSkgLyAzMgogCW10Y3RyCXI0CiAxOgogCWRjYnoJcjAsIHIzCkBAIC0xMDk5LDEwICsxMTExLDEwIEBACiAuZ2xvYmwgdW5sb2NrX3JhbV9pbl9jYWNoZQogdW5sb2NrX3JhbV9pbl9jYWNoZToKIAkvKiBpbnZhbGlkYXRlIHRoZSBJTklUX1JBTSBzZWN0aW9uICovCi0JbGlzCXIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGgKLQlvcmkJcjMsIHIzLCAoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKLQlsaQlyNCwgKChDRkdfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKLQkJICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgJiAzMSkgKyAzMSkgLyAzMgorCWxpcwlyMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAorCW9yaQlyMywgcjMsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKKwlsaQlyNCwgKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAmIH4zMSkgKyBcCisJCSAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCiAJbXRjdHIJcjQKIDE6CWljYmkJcjAsIHIzCiAJZGNiaQlyMCwgcjMKQEAgLTExMjIsMTQgKzExMzQsMTQgQEAKIAltdHNwcglISUQwLCByMwkJLyogbm8gaW52YWxpZGF0ZSwgdW5sb2NrICovCiAJYmxyCiAjZW5kaWYgLyogIUNPTkZJR19OQU5EX1NQTCAqLwotI2VuZGlmIC8qIENGR19JTklUX1JBTV9MT0NLICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JTklUX1JBTV9MT0NLICovCiAKLSNpZmRlZiBDRkdfRkxBU0hCT09UCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSEJPT1QKIG1hcF9mbGFzaF9ieV9sYXcxOgogCS8qIFdoZW4gYm9vdGluZyBmcm9tIFJPTSAoRmxhc2ggb3IgRVBST00pLCBjbGVhciB0aGUgICovCiAJLyogQWRkcmVzcyBNYXNrIGluIE9SMCBzbyBST00gYXBwZWFycyBldmVyeXdoZXJlICAgICAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMywgKENGR19JTU1SKUBoICAvKiByMyA8PSBDRkdfSU1NUiAgICAqLworCWxpcwlyMywgKENPTkZJR19TWVNfSU1NUilAaCAgLyogcjMgPD0gQ09ORklHX1NZU19JTU1SICAgICovCiAJbHd6CXI0LCBPUjBAbChyMykKIAlsaQlyNSwgMHg3ZmZmICAgICAgICAvKiByNSA8PSAweDAwMDA3RkZGRiAqLwogCWFuZAlyNCwgcjQsIHI1CkBAIC0xMTUxLDE0ICsxMTYzLDE0IEBACiAJICogTEJJVSBMb2NhbCBBY2Nlc3MgV2lkb3cgMCB3aWxsIG5vdCBjb3ZlciB0aGlzIG1lbW9yeSBzcGFjZS4gIFNvLCB3ZQogCSAqIG5lZWQgYW5vdGhlciB3aW5kb3cgdG8gbWFwIGluIGl0LgogCSAqLwotCWxpcyByNCwgKENGR19GTEFTSF9CQVNFKUBoCi0Jb3JpIHI0LCByNCwgKENGR19GTEFTSF9CQVNFKUBsCi0Jc3R3IHI0LCBMQkxBV0JBUjEocjMpIC8qIExCTEFXQkFSMSA8PSBDRkdfRkxBU0hfQkFTRSAqLworCWxpcyByNCwgKENPTkZJR19TWVNfRkxBU0hfQkFTRSlAaAorCW9yaSByNCwgcjQsIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UpQGwKKwlzdHcgcjQsIExCTEFXQkFSMShyMykgLyogTEJMQVdCQVIxIDw9IENPTkZJR19TWVNfRkxBU0hfQkFTRSAqLwogCi0JLyogU3RvcmUgMHg4MDAwMDAxMiArIGxvZzIoQ0ZHX0ZMQVNIX1NJWkUpIGludG8gTEJMQVdBUjEgKi8KKwkvKiBTdG9yZSAweDgwMDAwMDEyICsgbG9nMihDT05GSUdfU1lTX0ZMQVNIX1NJWkUpIGludG8gTEJMQVdBUjEgKi8KIAlsaXMgcjQsICgweDgwMDAwMDEyKUBoCiAJb3JpIHI0LCByNCwgKDB4ODAwMDAwMTIpQGwKLQlsaSByNSwgQ0ZHX0ZMQVNIX1NJWkUKKwlsaSByNSwgQ09ORklHX1NZU19GTEFTSF9TSVpFCiAxOglzcmF3aS4gcjUsIHI1LCAxCS8qIHI1ID0gcjUgPj4gMSAqLwogCWFkZGkgcjQsIHI0LCAxCiAJYm5lIDFiCkBAIC0xMTc1LDI0ICsxMTg3LDI0IEBACiAJbHd6IHI0LCBCUjAocjMpCiAJbGkgIHI1LCAweDdGRkYKIAlhbmQgcjQsIHI0LCByNQotCWxpcyByNSwgKENGR19GTEFTSF9CQVNFICYgMHhGRkZGODAwMClAaAotCW9yaSByNSwgcjUsIChDRkdfRkxBU0hfQkFTRSAmIDB4RkZGRjgwMDApQGwKKwlsaXMgcjUsIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiAweEZGRkY4MDAwKUBoCisJb3JpIHI1LCByNSwgKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIDB4RkZGRjgwMDApQGwKIAlvciAgcjUsIHI1LCByNAotCXN0dyByNSwgQlIwKHIzKSAvKiByNSA8PSAoQ0ZHX0ZMQVNIX0JBU0UgJiAweEZGRkY4MDAwKSB8IChCUjAgJiAweDAwMDA3RkZGKSAqLworCXN0dyByNSwgQlIwKHIzKSAvKiByNSA8PSAoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgMHhGRkZGODAwMCkgfCAoQlIwICYgMHgwMDAwN0ZGRikgKi8KIAogCWx3eiByNCwgT1IwKHIzKQotCWxpcyByNSwgfigoQ0ZHX0ZMQVNIX1NJWkUgPDwgNCkgLSAxKQorCWxpcyByNSwgfigoQ09ORklHX1NZU19GTEFTSF9TSVpFIDw8IDQpIC0gMSkKIAlvciByNCwgcjQsIHI1CiAJc3R3IHI0LCBPUjAocjMpCiAKLQlsaXMgcjQsIChDRkdfRkxBU0hfQkFTRSlAaAotCW9yaSByNCwgcjQsIChDRkdfRkxBU0hfQkFTRSlAbAotCXN0dyByNCwgTEJMQVdCQVIwKHIzKSAvKiBMQkxBV0JBUjAgPD0gQ0ZHX0ZMQVNIX0JBU0UgKi8KKwlsaXMgcjQsIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UpQGgKKwlvcmkgcjQsIHI0LCAoQ09ORklHX1NZU19GTEFTSF9CQVNFKUBsCisJc3R3IHI0LCBMQkxBV0JBUjAocjMpIC8qIExCTEFXQkFSMCA8PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKi8KIAotCS8qIFN0b3JlIDB4ODAwMDAwMTIgKyBsb2cyKENGR19GTEFTSF9TSVpFKSBpbnRvIExCTEFXQVIwICovCisJLyogU3RvcmUgMHg4MDAwMDAxMiArIGxvZzIoQ09ORklHX1NZU19GTEFTSF9TSVpFKSBpbnRvIExCTEFXQVIwICovCiAJbGlzIHI0LCAoMHg4MDAwMDAxMilAaAogCW9yaSByNCwgcjQsICgweDgwMDAwMDEyKUBsCi0JbGkgcjUsIENGR19GTEFTSF9TSVpFCisJbGkgcjUsIENPTkZJR19TWVNfRkxBU0hfU0laRQogMToJc3Jhd2kuIHI1LCByNSwgMSAvKiByNSA9IHI1ID4+IDEgKi8KIAlhZGRpIHI0LCByNCwgMQogCWJuZSAxYgpAQCAtMTIwMyw0ICsxMjE1LDQgQEAKIAlzdHcgcjQsIExCTEFXQkFSMShyMykKIAlzdHcgcjQsIExCTEFXQVIxKHIzKSAvKiBPZmYgTEJJVSBMQVcxICovCiAJYmxyCi0jZW5kaWYgLyogQ0ZHX0ZMQVNIQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hCT09UICovCmRpZmYgLS1naXQgYS9jcHUvbXBjODN4eC90cmFwcy5jIGIvY3B1L21wYzgzeHgvdHJhcHMuYwppbmRleCBkZmQ2YzAzLi4zYjA5YTYyIDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC90cmFwcy5jCisrKyBiL2NwdS9tcGM4M3h4L3RyYXBzLmMKQEAgLTEwMCw3ICsxMDAsNyBAQAogdm9pZCBkdW1wX3BjaSAodm9pZCkKIHsKIC8qCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlwcmludGYgKCJQQ0k6IGVyciBzdGF0dXMgJXggZXJyIG1hc2sgJXggZXJyIGN0cmwgJXhcbiIsCiAJCWxlMzJfdG9fY3B1IChpbW1hcC0+aW1fcGNpLnBjaV9lc3IpLAogCQlsZTMyX3RvX2NwdSAoaW1tYXAtPmltX3BjaS5wY2lfZW1yKSwKQEAgLTEyNCw3ICsxMjQsNyBAQAogCSAqLwogI2lmZGVmIENPTkZJR19QQ0kKICNpZiAwCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICNpZmRlZiBERUJVRwogCWR1bXBfcGNpKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L2NvbW1wcm9jLmMgYi9jcHUvbXBjODV4eC9jb21tcHJvYy5jCmluZGV4IGIwZWNkMjUuLmZmZjhkZmYgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L2NvbW1wcm9jLmMKKysrIGIvY3B1L21wYzg1eHgvY29tbXByb2MuYwpAQCAtMzcsMTAgKzM3LDEwIEBACiB2b2lkCiBtODU2MF9jcG1fcmVzZXQodm9pZCkKIHsKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXZvbGF0aWxlIHVsb25nIGNvdW50OwogCi0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBSZWNsYWltIHRoZSBEUCBtZW1vcnkgZm9yIG91ciB1c2UuCiAJKi8KQEAgLTY0LDcgKzY0LDcgQEAKIHVpbnQKIG04NTYwX2NwbV9kcGFsbG9jKHVpbnQgc2l6ZSwgdWludCBhbGlnbikKIHsKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXVpbnQJcmV0bG9jOwogCXVpbnQJYWxpZ25fbWFzaywgb2ZmOwogCXVpbnQJc2F2ZWJhc2U7CkBAIC0xMjAsNyArMTIwLDcgQEAKIHZvaWQKIG04NTYwX2NwbV9zZXRicmcodWludCBicmcsIHVpbnQgcmF0ZSkKIHsKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXZvbGF0aWxlIHVpbnQJKmJwOwogCiAJLyogVGhpcyBpcyBnb29kIGVub3VnaCB0byBnZXQgU01DcyBydW5uaW5nLi4uLi4KQEAgLTE0Miw3ICsxNDIsNyBAQAogdm9pZAogbTg1NjBfY3BtX2Zhc3RicmcodWludCBicmcsIHVpbnQgcmF0ZSwgaW50IGRpdjE2KQogewotCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ0ZHX01QQzg1eHhfQ1BNX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9jcG1fdCAqY3BtID0gKGNjc3JfY3BtX3QgKilDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFI7CiAJdm9sYXRpbGUgdWludAkqYnA7CiAKIAkvKiBUaGlzIGlzIGdvb2QgZW5vdWdoIHRvIGdldCBTTUNzIHJ1bm5pbmcuLi4uLgpAQCAtMTY3LDcgKzE2Nyw3IEBACiB2b2lkCiBtODU2MF9jcG1fZXh0Y2JyZyh1aW50IGJyZywgdWludCByYXRlLCB1aW50IGV4dGNsaywgaW50IHBpbnNlbCkKIHsKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXZvbGF0aWxlIHVpbnQJKmJwOwogCiAJaWYgKGJyZyA8IDQpIHsKQEAgLTE5MCw3ICsxOTAsNyBAQAogdm9pZCBwb3N0X3dvcmRfc3RvcmUgKHVsb25nIGEpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKShDRkdfSU1NUiArIENQTV9QT1NUX1dPUkRfQUREUik7CisJCSh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX0lNTVIgKyBDUE1fUE9TVF9XT1JEX0FERFIpOwogCiAJKnNhdmVfYWRkciA9IGE7CiB9CkBAIC0xOTgsNyArMTk4LDcgQEAKIHVsb25nIHBvc3Rfd29yZF9sb2FkICh2b2lkKQogewogCXZvbGF0aWxlIHVsb25nICpzYXZlX2FkZHIgPQotCQkodm9sYXRpbGUgdWxvbmcgKikoQ0ZHX0lNTVIgKyBDUE1fUE9TVF9XT1JEX0FERFIpOworCQkodm9sYXRpbGUgdWxvbmcgKikoQ09ORklHX1NZU19JTU1SICsgQ1BNX1BPU1RfV09SRF9BRERSKTsKIAogCXJldHVybiAqc2F2ZV9hZGRyOwogfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvY3B1LmMgYi9jcHUvbXBjODV4eC9jcHUuYwppbmRleCBmMTViMGE4Li45YzRmMjE0IDEwMDY0NAotLS0gYS9jcHUvbXBjODV4eC9jcHUuYworKysgYi9jcHUvbXBjODV4eC9jcHUuYwpAQCAtODQsNyArODQsNyBAQAogCXVpbnQgbWFqb3IsIG1pbm9yOwogCXN0cnVjdCBjcHVfdHlwZSAqY3B1OwogI2lmZGVmIENPTkZJR19ERFJfQ0xLX0ZSRVEKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXUzMiBkZHJfcmF0aW8gPSAoKGd1ci0+cG9ycGxsc3IpICYgTVBDODV4eF9QT1JQTExTUl9ERFJfUkFUSU8pCiAJCT4+IE1QQzg1eHhfUE9SUExMU1JfRERSX1JBVElPX1NISUZUOwogI2Vsc2UKQEAgLTk5LDcgKzk5LDEyIEBACiAjZW5kaWYKIAltaW5vciA9IFNWUl9NSU4oc3ZyKTsKIAorI2lmIChDT05GSUdfTlVNX0NQVVMgPiAxKQorCXZvbGF0aWxlIGNjc3JfcGljX3QgKnBpYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9QSUNfQUREUik7CisJcHJpbnRmKCJDUFUlZDogICIsIHBpYy0+d2hvYW1pKTsKKyNlbHNlCiAJcHV0cygiQ1BVOiAgICIpOworI2VuZGlmCiAKIAljcHUgPSBpZGVudGlmeV9jcHUodmVyKTsKIAlpZiAoY3B1KSB7CkBAIC0xNTEsMTEgKzE1NiwxMSBAQAogCQlicmVhazsKIAl9CiAKLSNpZiBkZWZpbmVkKENGR19MQkNfTENSUikKLQlsY3JyID0gQ0ZHX0xCQ19MQ1JSOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19MQkNfTENSUikKKwlsY3JyID0gQ09ORklHX1NZU19MQkNfTENSUjsKICNlbHNlCiAJewotCSAgICB2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9MQkNfQUREUik7CisJICAgIHZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9MQkNfQUREUik7CiAKIAkgICAgbGNyciA9IGxiYy0+bGNycjsKIAl9CkBAIC0yMDAsNyArMjA1LDcgQEAKIAlpZiAodmVyICYgMSl7CiAJLyogZTUwMCB2MiBjb3JlIGhhcyByZXNldCBjb250cm9sIHJlZ2lzdGVyICovCiAJCXZvbGF0aWxlIHVuc2lnbmVkIGludCAqIHJzdGNyOwotCQlyc3RjciA9ICh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoQ0ZHX0lNTVIgKyAweEUwMEIwKTsKKwkJcnN0Y3IgPSAodm9sYXRpbGUgdW5zaWduZWQgaW50ICopKENPTkZJR19TWVNfSU1NUiArIDB4RTAwQjApOwogCQkqcnN0Y3IgPSAweDI7CQkvKiBIUkVTRVRfUkVRICovCiAJCXVkZWxheSgxMDApOwogCX0KQEAgLTI1Niw3ICsyNjEsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0VDQykKIHZvaWQgZG1hX2luaXQodm9pZCkgewotCXZvbGF0aWxlIGNjc3JfZG1hX3QgKmRtYSA9ICh2b2lkICopKENGR19NUEM4NXh4X0RNQV9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2RtYV90ICpkbWEgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRE1BX0FERFIpOwogCiAJZG1hLT5zYXRyMCA9IDB4MDJjNDAwMDA7CiAJZG1hLT5kYXRyMCA9IDB4MDJjNDAwMDA7CkBAIC0yNjYsNyArMjcxLDcgQEAKIH0KIAogdWludCBkbWFfY2hlY2sodm9pZCkgewotCXZvbGF0aWxlIGNjc3JfZG1hX3QgKmRtYSA9ICh2b2lkICopKENGR19NUEM4NXh4X0RNQV9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2RtYV90ICpkbWEgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRE1BX0FERFIpOwogCXZvbGF0aWxlIHVpbnQgc3RhdHVzID0gZG1hLT5zcjA7CiAKIAkvKiBXaGlsZSB0aGUgY2hhbm5lbCBpcyBidXN5LCBzcGluICovCkBAIC0yODUsNyArMjkwLDcgQEAKIH0KIAogaW50IGRtYV94ZmVyKHZvaWQgKmRlc3QsIHVpbnQgY291bnQsIHZvaWQgKnNyYykgewotCXZvbGF0aWxlIGNjc3JfZG1hX3QgKmRtYSA9ICh2b2lkICopKENGR19NUEM4NXh4X0RNQV9BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2RtYV90ICpkbWEgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRE1BX0FERFIpOwogCiAJZG1hLT5kYXIwID0gKHVpbnQpIGRlc3Q7CiAJZG1hLT5zYXIwID0gKHVpbnQpIHNyYzsKQEAgLTMwNiw3ICszMTEsNyBAQAogewogCWludCBpLCBtZHIsIG1hZCwgb2xkX21hZCA9IDA7CiAJdm9sYXRpbGUgdTMyICpteG1yOwotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICpsYmMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCXZvbGF0aWxlIHUzMiAqYnJwLCpvcnA7CiAJdm9sYXRpbGUgdTgqIGR1bW15ID0gTlVMTDsKIAlpbnQgdXBtbWFzazsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L2NwdV9pbml0LmMgYi9jcHUvbXBjODV4eC9jcHVfaW5pdC5jCmluZGV4IDc4M2M1YmEuLjNhOGFlZjIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzg1eHgvY3B1X2luaXQuYwpAQCAtMTMyLDI4ICsxMzIsMjggQEAKIC8qIFdlIHJ1biBjcHVfaW5pdF9lYXJseV9mIGluIEFTID0gMSAqLwogdm9pZCBjcHVfaW5pdF9lYXJseV9mKHZvaWQpCiB7Ci0Jc2V0X3RsYigwLCBDRkdfQ0NTUkJBUiwgQ0ZHX0NDU1JCQVJfUEhZUywKKwlzZXRfdGxiKDAsIENPTkZJR19TWVNfQ0NTUkJBUiwgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMsCiAJCU1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkxLCAwLCBCT09LRV9QQUdFU1pfNEssIDApOwogCiAJLyogc2V0IHVwIENDU1IgaWYgd2Ugd2FudCBpdCBtb3ZlZCAqLwotI2lmIChDRkdfQ0NTUkJBUl9ERUZBVUxUICE9IENGR19DQ1NSQkFSX1BIWVMpCisjaWYgKENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUICE9IENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTKQogCXsKIAkJdTMyIHRlbXA7CiAKLQkJc2V0X3RsYigwLCBDRkdfQ0NTUkJBUl9ERUZBVUxULCBDRkdfQ0NTUkJBUl9ERUZBVUxULAorCQlzZXRfdGxiKDAsIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxULCBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVCwKIAkJCU1BUzNfU1h8TUFTM19TV3xNQVMzX1NSLCBNQVMyX0l8TUFTMl9HLAogCQkJMSwgMSwgQk9PS0VfUEFHRVNaXzRLLCAwKTsKIAotCQl0ZW1wID0gaW5fYmUzMigodm9sYXRpbGUgdTMyICopQ0ZHX0NDU1JCQVJfREVGQVVMVCk7Ci0JCW91dF9iZTMyKCh2b2xhdGlsZSB1MzIgKilDRkdfQ0NTUkJBUl9ERUZBVUxULCBDRkdfQ0NTUkJBUl9QSFlTID4+IDEyKTsKKwkJdGVtcCA9IGluX2JlMzIoKHZvbGF0aWxlIHUzMiAqKUNPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUKTsKKwkJb3V0X2JlMzIoKHZvbGF0aWxlIHUzMiAqKUNPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxULCBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUyA+PiAxMik7CiAKLQkJdGVtcCA9IGluX2JlMzIoKHZvbGF0aWxlIHUzMiAqKUNGR19DQ1NSQkFSKTsKKwkJdGVtcCA9IGluX2JlMzIoKHZvbGF0aWxlIHUzMiAqKUNPTkZJR19TWVNfQ0NTUkJBUik7CiAJfQogI2VuZGlmCiAKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdCAqLwotCWdkID0gKGdkX3QgKikgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVCk7CisJZ2QgPSAoZ2RfdCAqKSAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpOwogCiAJLyogQ2xlYXIgaW5pdGlhbCBnbG9iYWwgZGF0YSAqLwogCW1lbXNldCAoKHZvaWQgKikgZ2QsIDAsIHNpemVvZiAoZ2RfdCkpOwpAQCAtMTcyLDY5ICsxNzIsNjkgQEAKIAogdm9pZCBjcHVfaW5pdF9mICh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfbGJjX3QgKm1lbWN0bCA9ICh2b2lkICopKENGR19NUEM4NXh4X0xCQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX2xiY190ICptZW1jdGwgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIpOwogCWV4dGVybiB2b2lkIG04NTYwX2NwbV9yZXNldCAodm9pZCk7CiAKIAlkaXNhYmxlX3RsYigxNCk7CiAJZGlzYWJsZV90bGIoMTUpOwogCiAjaWZkZWYgQ09ORklHX0NQTTIKLQljb25maWdfODU2MF9pb3BvcnRzKChjY3NyX2NwbV90ICopQ0ZHX01QQzg1eHhfQ1BNX0FERFIpOworCWNvbmZpZ184NTYwX2lvcG9ydHMoKGNjc3JfY3BtX3QgKilDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpOwogI2VuZGlmCiAKIAkvKiBNYXAgYmFua3MgMCBhbmQgMSB0byB0aGUgRkxBU0ggYmFua3MgMCBhbmQgMSBhdCBwcmVsaW1pbmFyeQogCSAqIGFkZHJlc3NlcyAtIHRoZXNlIGhhdmUgdG8gYmUgbW9kaWZpZWQgbGF0ZXIgd2hlbiBGTEFTSCBzaXplCiAJICogaGFzIGJlZW4gZGV0ZXJtaW5lZAogCSAqLwotI2lmIGRlZmluZWQoQ0ZHX09SMF9SRU1BUCkKLQltZW1jdGwtPm9yMCA9IENGR19PUjBfUkVNQVA7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SMF9SRU1BUCkKKwltZW1jdGwtPm9yMCA9IENPTkZJR19TWVNfT1IwX1JFTUFQOwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfT1IxX1JFTUFQKQotCW1lbWN0bC0+b3IxID0gQ0ZHX09SMV9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IxX1JFTUFQKQorCW1lbWN0bC0+b3IxID0gQ09ORklHX1NZU19PUjFfUkVNQVA7CiAjZW5kaWYKIAogCS8qIG5vdyByZXN0cmljdCB0byBwcmVsaW1pbmFyeSByYW5nZSAqLwogCS8qIGlmIGNzMSBpcyBhbHJlYWR5IHNldCB2aWEgZGVidWdnZXIsIGxlYXZlIGNzMC9jczEgYWxvbmUgKi8KIAlpZiAoISBtZW1jdGwtPmJyMSAmIDEpIHsKLSNpZiBkZWZpbmVkKENGR19CUjBfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjBfUFJFTElNKQotCQltZW1jdGwtPmJyMCA9IENGR19CUjBfUFJFTElNOwotCQltZW1jdGwtPm9yMCA9IENGR19PUjBfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjBfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1BSRUxJTSkKKwkJbWVtY3RsLT5icjAgPSBDT05GSUdfU1lTX0JSMF9QUkVMSU07CisJCW1lbWN0bC0+b3IwID0gQ09ORklHX1NZU19PUjBfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjFfUFJFTElNKQotCQltZW1jdGwtPm9yMSA9IENGR19PUjFfUFJFTElNOwotCQltZW1jdGwtPmJyMSA9IENGR19CUjFfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjFfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IxX1BSRUxJTSkKKwkJbWVtY3RsLT5vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJCW1lbWN0bC0+YnIxID0gQ09ORklHX1NZU19CUjFfUFJFTElNOwogI2VuZGlmCiAJfQogCi0jaWYgZGVmaW5lZChDRkdfQlIyX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IyX1BSRUxJTSkKLQltZW1jdGwtPm9yMiA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+YnIyID0gQ0ZHX0JSMl9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjJfUFJFTElNKQorCW1lbWN0bC0+b3IyID0gQ09ORklHX1NZU19PUjJfUFJFTElNOworCW1lbWN0bC0+YnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjNfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjNfUFJFTElNKQotCW1lbWN0bC0+b3IzID0gQ0ZHX09SM19QUkVMSU07Ci0JbWVtY3RsLT5icjMgPSBDRkdfQlIzX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIzX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pCisJbWVtY3RsLT5vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5icjMgPSBDT05GSUdfU1lTX0JSM19QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSNF9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNF9QUkVMSU0pCi0JbWVtY3RsLT5vcjQgPSBDRkdfT1I0X1BSRUxJTTsKLQltZW1jdGwtPmJyNCA9IENGR19CUjRfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjRfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I0X1BSRUxJTSkKKwltZW1jdGwtPm9yNCA9IENPTkZJR19TWVNfT1I0X1BSRUxJTTsKKwltZW1jdGwtPmJyNCA9IENPTkZJR19TWVNfQlI0X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI1X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I1X1BSRUxJTSkKLQltZW1jdGwtPm9yNSA9IENGR19PUjVfUFJFTElNOwotCW1lbWN0bC0+YnI1ID0gQ0ZHX0JSNV9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSNV9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjVfUFJFTElNKQorCW1lbWN0bC0+b3I1ID0gQ09ORklHX1NZU19PUjVfUFJFTElNOworCW1lbWN0bC0+YnI1ID0gQ09ORklHX1NZU19CUjVfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjZfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjZfUFJFTElNKQotCW1lbWN0bC0+b3I2ID0gQ0ZHX09SNl9QUkVMSU07Ci0JbWVtY3RsLT5icjYgPSBDRkdfQlI2X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI2X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNl9QUkVMSU0pCisJbWVtY3RsLT5vcjYgPSBDT05GSUdfU1lTX09SNl9QUkVMSU07CisJbWVtY3RsLT5icjYgPSBDT05GSUdfU1lTX0JSNl9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSN19QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SN19QUkVMSU0pCi0JbWVtY3RsLT5vcjcgPSBDRkdfT1I3X1BSRUxJTTsKLQltZW1jdGwtPmJyNyA9IENGR19CUjdfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjdfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I3X1BSRUxJTSkKKwltZW1jdGwtPm9yNyA9IENPTkZJR19TWVNfT1I3X1BSRUxJTTsKKwltZW1jdGwtPmJyNyA9IENPTkZJR19TWVNfQlI3X1BSRUxJTTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ1BNMikKQEAgLTI2NCw3ICsyNjQsNyBAQAogCXB1dHMgKCJMMjogICAgIik7CiAKICNpZiBkZWZpbmVkKENPTkZJR19MMl9DQUNIRSkKLQl2b2xhdGlsZSBjY3NyX2wyY2FjaGVfdCAqbDJjYWNoZSA9ICh2b2lkICopQ0ZHX01QQzg1eHhfTDJfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2wyY2FjaGVfdCAqbDJjYWNoZSA9ICh2b2lkICopQ09ORklHX1NZU19NUEM4NXh4X0wyX0FERFI7CiAJdm9sYXRpbGUgdWludCBjYWNoZV9jdGw7CiAJdWludCBzdnIsIHZlcjsKIAl1aW50IGwyc3JiYXI7CkBAIC0zMTcsMTMgKzMxNywxMyBAQAogCWlmIChsMmNhY2hlLT5sMmN0bCAmIDB4ODAwMDAwMDApIHsKIAkJcHV0cygiYWxyZWFkeSBlbmFibGVkIik7CiAJCWwyc3JiYXIgPSBsMmNhY2hlLT5sMnNyYmFyMDsKLSNpZmRlZiBDRkdfSU5JVF9MMl9BRERSCi0JCWlmIChsMmNhY2hlLT5sMmN0bCAmIDB4MDAwMTAwMDAgJiYgbDJzcmJhciA+PSBDRkdfRkxBU0hfQkFTRSkgewotCQkJbDJzcmJhciA9IENGR19JTklUX0wyX0FERFI7CisjaWZkZWYgQ09ORklHX1NZU19JTklUX0wyX0FERFIKKwkJaWYgKGwyY2FjaGUtPmwyY3RsICYgMHgwMDAxMDAwMCAmJiBsMnNyYmFyID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSkgeworCQkJbDJzcmJhciA9IENPTkZJR19TWVNfSU5JVF9MMl9BRERSOwogCQkJbDJjYWNoZS0+bDJzcmJhcjAgPSBsMnNyYmFyOwotCQkJcHJpbnRmKCJtb3ZpbmcgdG8gMHglMDh4IiwgQ0ZHX0lOSVRfTDJfQUREUik7CisJCQlwcmludGYoIm1vdmluZyB0byAweCUwOHgiLCBDT05GSUdfU1lTX0lOSVRfTDJfQUREUik7CiAJCX0KLSNlbmRpZiAvKiBDRkdfSU5JVF9MMl9BRERSICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JTklUX0wyX0FERFIgKi8KIAkJcHV0cygiXG4iKTsKIAl9IGVsc2UgewogCQlhc20oIm1zeW5jO2lzeW5jIik7CkBAIC0zMzUsNyArMzM1LDcgQEAKIAlwdXRzKCJkaXNhYmxlZFxuIik7CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfUUUKLQl1aW50IHFlX2Jhc2UgPSBDRkdfSU1NUiArIDB4MDAwODAwMDA7IC8qIFFFIGltbXIgYmFzZSAqLworCXVpbnQgcWVfYmFzZSA9IENPTkZJR19TWVNfSU1NUiArIDB4MDAwODAwMDA7IC8qIFFFIGltbXIgYmFzZSAqLwogCXFlX2luaXQocWVfYmFzZSk7CiAJcWVfcmVzZXQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvZGRyLWdlbjEuYyBiL2NwdS9tcGM4NXh4L2Rkci1nZW4xLmMKaW5kZXggMmMxMWVlNC4uZTI0YzlhZiAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvZGRyLWdlbjEuYworKysgYi9jcHUvbXBjODV4eC9kZHItZ2VuMS5jCkBAIC0xOCw3ICsxOCw3IEBACiAJCQkgICAgIHVuc2lnbmVkIGludCBjdHJsX251bSkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHIgPSAodm9pZCAqKUNGR19NUEM4NXh4X0REUl9BRERSOworCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICh2b2lkICopQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSOwogCiAJaWYgKGN0cmxfbnVtICE9IDApIHsKIAkJcHJpbnRmKCIlcyB1bmV4cGVjdGVkIGN0cmxfbnVtID0gJXVcbiIsIF9fRlVOQ1RJT05fXywgY3RybF9udW0pOwpAQCAtNzksNyArNzksNyBAQAogewogCXVpbnQgKnAgPSAwOwogCXVpbnQgaSA9IDA7Ci0Jdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDRkdfTVBDODV4eF9ERFJfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9kZHJfdCAqZGRyPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIpOwogCiAJZG1hX2luaXQoKTsKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvZGRyLWdlbjIuYyBiL2NwdS9tcGM4NXh4L2Rkci1nZW4yLmMKaW5kZXggMTMwMDkwYy4uNjU1Zjk5YyAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvZGRyLWdlbjIuYworKysgYi9jcHUvbXBjODV4eC9kZHItZ2VuMi5jCkBAIC0xOCw3ICsxOCw3IEBACiAJCQkgICAgIHVuc2lnbmVkIGludCBjdHJsX251bSkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKLQl2b2xhdGlsZSBjY3NyX2Rkcl90ICpkZHIgPSAodm9pZCAqKUNGR19NUEM4NXh4X0REUl9BRERSOworCXZvbGF0aWxlIGNjc3JfZGRyX3QgKmRkciA9ICh2b2lkICopQ09ORklHX1NZU19NUEM4NXh4X0REUl9BRERSOwogCiAJaWYgKGN0cmxfbnVtKSB7CiAJCXByaW50ZigiJXMgdW5leHBlY3RlZCBjdHJsX251bSA9ICV1XG4iLCBfX0ZVTkNUSU9OX18sIGN0cmxfbnVtKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L2Rkci1nZW4zLmMgYi9jcHUvbXBjODV4eC9kZHItZ2VuMy5jCmluZGV4IGQ3Y2M5ZGIuLmUwNjU0YmIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L2Rkci1nZW4zLmMKKysrIGIvY3B1L21wYzg1eHgvZGRyLWdlbjMuYwpAQCAtMjIsMTAgKzIyLDEwIEBACiAKIAlzd2l0Y2ggKGN0cmxfbnVtKSB7CiAJY2FzZSAwOgotCQlkZHIgPSAodm9pZCAqKUNGR19NUEM4NXh4X0REUl9BRERSOworCQlkZHIgPSAodm9pZCAqKUNPTkZJR19TWVNfTVBDODV4eF9ERFJfQUREUjsKIAkJYnJlYWs7CiAJY2FzZSAxOgotCQlkZHIgPSAodm9pZCAqKUNGR19NUEM4NXh4X0REUjJfQUREUjsKKwkJZGRyID0gKHZvaWQgKilDT05GSUdfU1lTX01QQzg1eHhfRERSMl9BRERSOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlwcmludGYoIiVzIHVuZXhwZWN0ZWQgY3RybF9udW0gPSAldVxuIiwgX19GVU5DVElPTl9fLCBjdHJsX251bSk7CmRpZmYgLS1naXQgYS9jcHUvbXBjODV4eC9ldGhlcl9mY2MuYyBiL2NwdS9tcGM4NXh4L2V0aGVyX2ZjYy5jCmluZGV4IGJkNjJhYWIuLjMyYWQ0NjkgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L2V0aGVyX2ZjYy5jCisrKyBiL2NwdS9tcGM4NXh4L2V0aGVyX2ZjYy5jCkBAIC03NCw4ICs3NCw4IEBACiAJUFJPRkZfRkNDMSwKIAlDUE1fQ1JfRkNDMV9TQkxPQ0ssCiAJQ1BNX0NSX0ZDQzFfUEFHRSwKLQlDRkdfQ01YRkNSX01BU0sxLAotCUNGR19DTVhGQ1JfVkFMVUUxCisJQ09ORklHX1NZU19DTVhGQ1JfTUFTSzEsCisJQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUxCiB9LAogI2VuZGlmCiAKQEAgLTg1LDggKzg1LDggQEAKIAlQUk9GRl9GQ0MyLAogCUNQTV9DUl9GQ0MyX1NCTE9DSywKIAlDUE1fQ1JfRkNDMl9QQUdFLAotCUNGR19DTVhGQ1JfTUFTSzIsCi0JQ0ZHX0NNWEZDUl9WQUxVRTIKKwlDT05GSUdfU1lTX0NNWEZDUl9NQVNLMiwKKwlDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTIKIH0sCiAjZW5kaWYKIApAQCAtOTYsOCArOTYsOCBAQAogCVBST0ZGX0ZDQzMsCiAJQ1BNX0NSX0ZDQzNfU0JMT0NLLAogCUNQTV9DUl9GQ0MzX1BBR0UsCi0JQ0ZHX0NNWEZDUl9NQVNLMywKLQlDRkdfQ01YRkNSX1ZBTFVFMworCUNPTkZJR19TWVNfQ01YRkNSX01BU0szLAorCUNPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMwogfSwKICNlbmRpZgogfTsKQEAgLTIzMCw3ICsyMzAsNyBAQAogewogICAgIHN0cnVjdCBldGhlcl9mY2NfaW5mb19zICogaW5mbyA9IGRldi0+cHJpdjsKICAgICBpbnQgaTsKLSAgICB2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworICAgIHZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogICAgIHZvbGF0aWxlIGNjc3JfY3BtX2NwX3QgKmNwID0gJihjcG0tPmltX2NwbV9jcCk7CiAgICAgZmNjX2VuZXRfdCAqcHJhbV9wdHI7CiAgICAgdW5zaWduZWQgbG9uZyBtZW1fYWRkcjsKQEAgLTI1NywxMSArMjU3LDExIEBACiAKICAgICAvKiAyOC45IC0gKDUpOiBGUFNNUjogZW5hYmxlIGZ1bGwgZHVwbGV4LCBzZWxlY3QgQ0NJVFQgQ1JDIGZvciBFdGhlcm5ldCxNSUkgKi8KICAgICBpZihpbmZvLT5ldGhlcl9pbmRleCA9PSAwKSB7Ci0JY3BtLT5pbV9jcG1fZmNjMS5mcHNtciA9IENGR19GQ0NfUFNNUiB8IEZDQ19QU01SX0VOQ1JDOworCWNwbS0+aW1fY3BtX2ZjYzEuZnBzbXIgPSBDT05GSUdfU1lTX0ZDQ19QU01SIHwgRkNDX1BTTVJfRU5DUkM7CiAgICAgfSBlbHNlIGlmIChpbmZvLT5ldGhlcl9pbmRleCA9PSAxKXsKLQljcG0tPmltX2NwbV9mY2MyLmZwc21yID0gQ0ZHX0ZDQ19QU01SIHwgRkNDX1BTTVJfRU5DUkM7CisJY3BtLT5pbV9jcG1fZmNjMi5mcHNtciA9IENPTkZJR19TWVNfRkNDX1BTTVIgfCBGQ0NfUFNNUl9FTkNSQzsKICAgICB9IGVsc2UgaWYgKGluZm8tPmV0aGVyX2luZGV4ID09IDIpewotCWNwbS0+aW1fY3BtX2ZjYzMuZnBzbXIgPSBDRkdfRkNDX1BTTVIgfCBGQ0NfUFNNUl9FTkNSQzsKKwljcG0tPmltX2NwbV9mY2MzLmZwc21yID0gQ09ORklHX1NZU19GQ0NfUFNNUiB8IEZDQ19QU01SX0VOQ1JDOwogICAgIH0KIAogICAgIC8qIDI4LjkgLSAoNik6IEZEU1I6IEV0aGVybmV0IFN5biAqLwpAQCAtMzIxLDE0ICszMjEsMTQgQEAKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfbXJibHIgPSBQS1RfTUFYQkxSX1NJWkU7IC8qIDE1MzYgKi8KICAgICAvKiBsb2NhbGJ1cyBTRFJBTSBzaG91bGQgYmUgcHJlZmVycmVkICovCiAgICAgcHJhbV9wdHItPmZlbl9nZW5mY2MuZmNjX3JzdGF0ZSA9IChDUE1GQ1JfR0JMIHwgQ1BNRkNSX0VCIHwKLQkJCQkgICAgICAgQ0ZHX0NQTUZDUl9SQU1UWVBFKSA8PCAyNDsKKwkJCQkgICAgICAgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRSkgPDwgMjQ7CiAgICAgcHJhbV9wdHItPmZlbl9nZW5mY2MuZmNjX3JiYXNlID0gKHVuc2lnbmVkIGludCkoJnJ0eC5yeGJkW3J4SWR4XSk7CiAgICAgcHJhbV9wdHItPmZlbl9nZW5mY2MuZmNjX3JiZHN0YXQgPSAwOwogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY19yYmRsZW4gPSAwOwogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY19yZHB0ciA9IDA7CiAgICAgLyogbG9jYWxidXMgU0RSQU0gc2hvdWxkIGJlIHByZWZlcnJlZCAqLwogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY190c3RhdGUgPSAoQ1BNRkNSX0dCTCB8IENQTUZDUl9FQiB8Ci0JCQkJICAgICAgIENGR19DUE1GQ1JfUkFNVFlQRSkgPDwgMjQ7CisJCQkJICAgICAgIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUpIDw8IDI0OwogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY190YmFzZSA9ICh1bnNpZ25lZCBpbnQpKCZydHgudHhiZFt0eElkeF0pOwogICAgIHByYW1fcHRyLT5mZW5fZ2VuZmNjLmZjY190YmRzdGF0ID0gMDsKICAgICBwcmFtX3B0ci0+ZmVuX2dlbmZjYy5mY2NfdGJkbGVuID0gMDsKQEAgLTQyNiw3ICs0MjYsNyBAQAogc3RhdGljIHZvaWQgZmVjX2hhbHQoc3RydWN0IGV0aF9kZXZpY2UqIGRldikKIHsKICAgICBzdHJ1Y3QgZXRoZXJfZmNjX2luZm9fcyAqIGluZm8gPSBkZXYtPnByaXY7Ci0gICAgdm9sYXRpbGUgY2Nzcl9jcG1fdCAqY3BtID0gKGNjc3JfY3BtX3QgKilDRkdfTVBDODV4eF9DUE1fQUREUjsKKyAgICB2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUjsKIAogICAgIC8qIHdyaXRlIEdGTVI6IGRpc2FibGUgdHgvcnggKi8KICAgICBpZihpbmZvLT5ldGhlcl9pbmRleCA9PSAwKSB7CmRpZmYgLS1naXQgYS9jcHUvbXBjODV4eC9mZHQuYyBiL2NwdS9tcGM4NXh4L2ZkdC5jCmluZGV4IDAzN2E2MGYuLjU5YWFmYjEgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4NXh4L2ZkdC5jCisrKyBiL2NwdS9tcGM4NXh4L2ZkdC5jCkBAIC04Myw3ICs4Myw3IEBACiAvKiByZXR1cm4gc2l6ZSBpbiBraWxvYnl0ZXMgKi8KIHN0YXRpYyBpbmxpbmUgdTMyIGwyY2FjaGVfc2l6ZSh2b2lkKQogewotCXZvbGF0aWxlIGNjc3JfbDJjYWNoZV90ICpsMmNhY2hlID0gKHZvaWQgKilDRkdfTVBDODV4eF9MMl9BRERSOworCXZvbGF0aWxlIGNjc3JfbDJjYWNoZV90ICpsMmNhY2hlID0gKHZvaWQgKilDT05GSUdfU1lTX01QQzg1eHhfTDJfQUREUjsKIAl2b2xhdGlsZSB1MzIgbDJzaXpfZmllbGQgPSAobDJjYWNoZS0+bDJjdGwgPj4gMjgpICYgMHgzOwogCXUzMiB2ZXIgPSBTVlJfU09DX1ZFUihnZXRfc3ZyKCkpOwogCkBAIC0yMDEsNiArMjAxLDE1IEBACiB9CiAKIAordm9pZCBmZHRfYWRkX2VuZXRfc3Rhc2hpbmcodm9pZCAqZmR0KQoreworCWRvX2ZpeHVwX2J5X2NvbXBhdChmZHQsICJnaWFuZmFyIiwgImJkLXN0YXNoIiwgTlVMTCwgMCwgMSk7CisKKwlkb19maXh1cF9ieV9jb21wYXRfdTMyKGZkdCwgImdpYW5mYXIiLCAicngtc3Rhc2gtbGVuIiwgOTYsIDEpOworCisJZG9fZml4dXBfYnlfY29tcGF0X3UzMihmZHQsICJnaWFuZmFyIiwgInJ4LXN0YXNoLWlkeCIsIDAsIDEpOworfQorCiB2b2lkIGZ0X2NwdV9zZXR1cCh2b2lkICpibG9iLCBiZF90ICpiZCkKIHsKIAkvKiBkZWxldGUgY3J5cHRvIG5vZGUgaWYgbm90IG9uIGFuIEUtcHJvY2Vzc29yICovCkBAIC0yMTAsNiArMjE5LDggQEAKICNpZiBkZWZpbmVkKENPTkZJR19IQVNfRVRIMCkgfHwgZGVmaW5lZChDT05GSUdfSEFTX0VUSDEpIHx8XAogICAgIGRlZmluZWQoQ09ORklHX0hBU19FVEgyKSB8fCBkZWZpbmVkKENPTkZJR19IQVNfRVRIMykKIAlmZHRfZml4dXBfZXRoZXJuZXQoYmxvYik7CisKKwlmZHRfYWRkX2VuZXRfc3Rhc2hpbmcoYmxvYik7CiAjZW5kaWYKIAogCWRvX2ZpeHVwX2J5X3Byb3BfdTMyKGJsb2IsICJkZXZpY2VfdHlwZSIsICJjcHUiLCA0LApAQCAtMjI0LDkgKzIzNSw5IEBACiAJZnRfcWVfc2V0dXAoYmxvYik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzE2NTUwCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwCiAJZG9fZml4dXBfYnlfY29tcGF0X3UzMihibG9iLCAibnMxNjU1MCIsCi0JCSJjbG9jay1mcmVxdWVuY3kiLCBDRkdfTlMxNjU1MF9DTEssIDEpOworCQkiY2xvY2stZnJlcXVlbmN5IiwgQ09ORklHX1NZU19OUzE2NTUwX0NMSywgMSk7CiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19DUE0yCmRpZmYgLS1naXQgYS9jcHUvbXBjODV4eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbXBjODV4eC9pbnRlcnJ1cHRzLmMKaW5kZXggZDcwMmNhNi4uNGVmODM5NSAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM4NXh4L2ludGVycnVwdHMuYwpAQCAtMzQsMTQgKzM0LDE0IEBACiAKIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUodW5zaWduZWQgbG9uZyAqZGVjcmVtZW50ZXJfY291bnQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9waWNfdCAqcGljID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfUElDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfcGljX3QgKnBpYyA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9QSUNfQUREUik7CiAKIAlwaWMtPmdjciA9IE1QQzg1eHhfUElDR0NSX1JTVDsKIAl3aGlsZSAocGljLT5nY3IgJiBNUEM4NXh4X1BJQ0dDUl9SU1QpCiAJCTsKIAlwaWMtPmdjciA9IE1QQzg1eHhfUElDR0NSX007CiAKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENPTkZJR19TWVNfSFo7CiAKIAkvKiBQSUUgaXMgc2FtZSBhcyBESUUsIGRlYyBpbnRlcnJ1cHQgZW5hYmxlICovCiAJbXRzcHIoU1BSTl9UQ1IsIFRDUl9QSUUpOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvbXAuYyBiL2NwdS9tcGM4NXh4L21wLmMKaW5kZXggNGUwOWM5Yy4uMzMzOGMxYSAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvbXAuYworKysgYi9jcHUvbXBjODV4eC9tcC5jCkBAIC0zNiw3ICszNiw3IEBACiAKIGludCBjcHVfcmVzZXQoaW50IG5yKQogewotCXZvbGF0aWxlIGNjc3JfcGljX3QgKnBpYyA9ICh2b2lkICopKENGR19NUEM4NXh4X1BJQ19BRERSKTsKKwl2b2xhdGlsZSBjY3NyX3BpY190ICpwaWMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfUElDX0FERFIpOwogCW91dF9iZTMyKCZwaWMtPnBpciwgMSA8PCBucik7CiAJKHZvaWQpaW5fYmUzMigmcGljLT5waXIpOwogCW91dF9iZTMyKCZwaWMtPnBpciwgMHgwKTsKQEAgLTg3LDcgKzg3LDcgQEAKIAkJcmV0dXJuIDE7CiAJfQogCi0jaWZkZWYgQ0ZHXzY0QklUX1NUUlRPVUwKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwKIAlib290X2FkZHIgPSBzaW1wbGVfc3RydG91bGwoYXJndlswXSwgTlVMTCwgMTYpOwogI2Vsc2UKIAlib290X2FkZHIgPSBzaW1wbGVfc3RydG91bChhcmd2WzBdLCBOVUxMLCAxNik7CkBAIC0xMjksOSArMTI5LDkgQEAKIAl1MzIgdXAsIGNwdV91cF9tYXNrLCB3aG9hbWk7CiAJdTMyICp0YWJsZSA9ICh1MzIgKilnZXRfc3Bpbl9hZGRyKCk7CiAJdm9sYXRpbGUgdTMyIGJwY3I7Ci0Jdm9sYXRpbGUgY2Nzcl9sb2NhbF9lY21fdCAqZWNtID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfRUNNX0FERFIpOwotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7Ci0Jdm9sYXRpbGUgY2Nzcl9waWNfdCAqcGljID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfUElDX0FERFIpOworCXZvbGF0aWxlIGNjc3JfbG9jYWxfZWNtX3QgKmVjbSA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9FQ01fQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9waWNfdCAqcGljID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X1BJQ19BRERSKTsKIAl1MzIgZGV2ZGlzcjsKIAlpbnQgdGltZW91dCA9IDEwOwogCmRpZmYgLS1naXQgYS9jcHUvbXBjODV4eC9tcGM4NTM2X3NlcmRlcy5jIGIvY3B1L21wYzg1eHgvbXBjODUzNl9zZXJkZXMuYwppbmRleCBhZTA5MWU2Li5kOWFjNDY2IDEwMDY0NAotLS0gYS9jcHUvbXBjODV4eC9tcGM4NTM2X3NlcmRlcy5jCisrKyBiL2NwdS9tcGM4NXh4L21wYzg1MzZfc2VyZGVzLmMKQEAgLTU0LDggKzU0LDggQEAKIAogdm9pZCBmc2xfc2VyZGVzX2luaXQodm9pZCkKIHsKLQl2b2lkICpndXRzID0gKHZvaWQgKikoQ0ZHX01QQzg1eHhfR1VUU19BRERSKTsKLQl2b2lkICpzZCA9ICh2b2lkICopQ0ZHX01QQzg1eHhfU0VSREVTMl9BRERSOworCXZvaWQgKmd1dHMgPSAodm9pZCAqKShDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSKTsKKwl2b2lkICpzZCA9ICh2b2lkICopQ09ORklHX1NZU19NUEM4NXh4X1NFUkRFUzJfQUREUjsKIAl1MzIgcG9yZGV2c3IgPSBpbl9iZTMyKGd1dHMgKyBHVVRTX1BPUkRFVlNSX09GRlMpOwogCXUzMiBzcmRzMl9pb19zZWw7CiAJdTMyIHRtcDsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L3BjaS5jIGIvY3B1L21wYzg1eHgvcGNpLmMKaW5kZXggZmRjNGM4My4uMTEyZjE4YyAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvcGNpLmMKKysrIGIvY3B1L21wYzg1eHgvcGNpLmMKQEAgLTM5LDExICszOSwxMSBAQAogCXUxNiByZWcxNjsKIAl1MzIgZGV2OwogCi0Jdm9sYXRpbGUgY2Nzcl9wY2l4X3QgKnBjaXggPSAodm9pZCAqKShDRkdfTVBDODV4eF9QQ0lYX0FERFIpOworCXZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2l4ID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X1BDSVhfQUREUik7CiAjaWZkZWYgQ09ORklHX01QQzg1WFhfUENJMgotCXZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2l4MiA9ICh2b2lkICopKENGR19NUEM4NXh4X1BDSVgyX0FERFIpOworCXZvbGF0aWxlIGNjc3JfcGNpeF90ICpwY2l4MiA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9QQ0lYMl9BRERSKTsKICNlbmRpZgotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENGR19NUEM4NXh4X0dVVFNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9ndXJfdCAqZ3VyID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUik7CiAJc3RydWN0IHBjaV9jb250cm9sbGVyICogaG9zZTsKIAogCXBjaV9ob3NlID0gYm9hcmRfaG9zZTsKQEAgLTU0LDggKzU0LDggQEAKIAlob3NlLT5sYXN0X2J1c25vID0gMHhmZjsKIAogCXBjaV9zZXR1cF9pbmRpcmVjdChob3NlLAotCQkJICAgKENGR19JTU1SKzB4ODAwMCksCi0JCQkgICAoQ0ZHX0lNTVIrMHg4MDA0KSk7CisJCQkgICAoQ09ORklHX1NZU19JTU1SKzB4ODAwMCksCisJCQkgICAoQ09ORklHX1NZU19JTU1SKzB4ODAwNCkpOwogCiAJLyoKIAkgKiBIb3NlIHNjYW4uCkBAIC04MCwxOSArODAsMTkgQEAKIAkJcGNpX2hvc2Vfd3JpdGVfY29uZmlnX3dvcmQoaG9zZSwgZGV2LCBQQ0lYX0NPTU1BTkQsIHJlZzE2KTsKIAl9CiAKLQlwY2l4LT5wb3RhcjEgICA9IChDRkdfUENJMV9NRU1fQkFTRSA+PiAxMikgJiAweDAwMGZmZmZmOworCXBjaXgtPnBvdGFyMSAgID0gKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSA+PiAxMikgJiAweDAwMGZmZmZmOwogCXBjaXgtPnBvdGVhcjEgID0gMHgwMDAwMDAwMDsKLQlwY2l4LT5wb3diYXIxICA9IChDRkdfUENJMV9NRU1fUEhZUyA+PiAxMikgJiAweDAwMGZmZmZmOworCXBjaXgtPnBvd2JhcjEgID0gKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyA+PiAxMikgJiAweDAwMGZmZmZmOwogCXBjaXgtPnBvd2JlYXIxID0gMHgwMDAwMDAwMDsKIAlwY2l4LT5wb3dhcjEgPSAoUE9XQVJfRU4gfCBQT1dBUl9NRU1fUkVBRCB8Ci0JCQlQT1dBUl9NRU1fV1JJVEUgfCAoX19pbG9nMihDRkdfUENJMV9NRU1fU0laRSkgLSAxKSk7CisJCQlQT1dBUl9NRU1fV1JJVEUgfCAoX19pbG9nMihDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUpIC0gMSkpOwogCi0JcGNpeC0+cG90YXIyICA9IChDRkdfUENJMV9JT19CQVNFID4+IDEyKSAmIDB4MDAwZmZmZmY7CisJcGNpeC0+cG90YXIyICA9IChDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSA+PiAxMikgJiAweDAwMGZmZmZmOwogCXBjaXgtPnBvdGVhcjIgID0gMHgwMDAwMDAwMDsKLQlwY2l4LT5wb3diYXIyICA9IChDRkdfUENJMV9JT19QSFlTID4+IDEyKSAmIDB4MDAwZmZmZmY7CisJcGNpeC0+cG93YmFyMiAgPSAoQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMgPj4gMTIpICYgMHgwMDBmZmZmZjsKIAlwY2l4LT5wb3diZWFyMiA9IDB4MDAwMDAwMDA7CiAJcGNpeC0+cG93YXIyID0gKFBPV0FSX0VOIHwgUE9XQVJfSU9fUkVBRCB8Ci0JCQlQT1dBUl9JT19XUklURSB8IChfX2lsb2cyKENGR19QQ0kxX0lPX1NJWkUpIC0gMSkpOworCQkJUE9XQVJfSU9fV1JJVEUgfCAoX19pbG9nMihDT05GSUdfU1lTX1BDSTFfSU9fU0laRSkgLSAxKSk7CiAKIAlwY2l4LT5waXRhcjEgPSAweDAwMDAwMDAwOwogCXBjaXgtPnBpd2JhcjEgPSAweDAwMDAwMDAwOwpAQCAtMTA1LDE1ICsxMDUsMTUgQEAKIAlwY2l4LT5waXdhcjMgPSAwOwogCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJMV9NRU1fQkFTRSwKLQkJICAgICAgIENGR19QQ0kxX01FTV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTFfTUVNX1NJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUsCiAJCSAgICAgICBQQ0lfUkVHSU9OX01FTSk7CiAKIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMSwKLQkJICAgICAgIENGR19QQ0kxX0lPX0JBU0UsCi0JCSAgICAgICBDRkdfUENJMV9JT19QSFlTLAotCQkgICAgICAgQ0ZHX1BDSTFfSU9fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMV9JT19CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTFfSU9fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fSU8pOwogCiAJaG9zZS0+cmVnaW9uX2NvdW50ID0gMjsKQEAgLTE1Miw4ICsxNTIsOCBAQAogCWhvc2UtPmxhc3RfYnVzbm8gPSAweGZmOwogCiAJcGNpX3NldHVwX2luZGlyZWN0KGhvc2UsCi0JCQkgICAoQ0ZHX0lNTVIrMHg5MDAwKSwKLQkJCSAgIChDRkdfSU1NUisweDkwMDQpKTsKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIrMHg5MDAwKSwKKwkJCSAgIChDT05GSUdfU1lTX0lNTVIrMHg5MDA0KSk7CiAKIAlkZXYgPSBQQ0lfQkRGKGhvc2UtPmZpcnN0X2J1c25vLCAwLCAwKTsKIAlwY2lfaG9zZV9yZWFkX2NvbmZpZ193b3JkIChob3NlLCBkZXYsIFBDSV9DT01NQU5ELCAmcmVnMTYpOwpAQCAtMTY1LDE5ICsxNjUsMTkgQEAKIAkgKi8KIAlwY2lfaG9zZV93cml0ZV9jb25maWdfd29yZChob3NlLCBkZXYsIFBDSV9TVEFUVVMsIDB4ZmZmZik7CiAKLQlwY2l4Mi0+cG90YXIxICAgPSAoQ0ZHX1BDSTJfTUVNX0JBU0UgPj4gMTIpICYgMHgwMDBmZmZmZjsKKwlwY2l4Mi0+cG90YXIxICAgPSAoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFID4+IDEyKSAmIDB4MDAwZmZmZmY7CiAJcGNpeDItPnBvdGVhcjEgID0gMHgwMDAwMDAwMDsKLQlwY2l4Mi0+cG93YmFyMSAgPSAoQ0ZHX1BDSTJfTUVNX1BIWVMgPj4gMTIpICYgMHgwMDBmZmZmZjsKKwlwY2l4Mi0+cG93YmFyMSAgPSAoQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTID4+IDEyKSAmIDB4MDAwZmZmZmY7CiAJcGNpeDItPnBvd2JlYXIxID0gMHgwMDAwMDAwMDsKIAlwY2l4Mi0+cG93YXIxID0gKFBPV0FSX0VOIHwgUE9XQVJfTUVNX1JFQUQgfAotCQkJUE9XQVJfTUVNX1dSSVRFIHwgKF9faWxvZzIoQ0ZHX1BDSTJfTUVNX1NJWkUpIC0gMSkpOworCQkJUE9XQVJfTUVNX1dSSVRFIHwgKF9faWxvZzIoQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFKSAtIDEpKTsKIAotCXBjaXgyLT5wb3RhcjIgID0gKENGR19QQ0kyX0lPX0JBU0UgPj4gMTIpICYgMHgwMDBmZmZmZjsKKwlwY2l4Mi0+cG90YXIyICA9IChDT05GSUdfU1lTX1BDSTJfSU9fQkFTRSA+PiAxMikgJiAweDAwMGZmZmZmOwogCXBjaXgyLT5wb3RlYXIyICA9IDB4MDAwMDAwMDA7Ci0JcGNpeDItPnBvd2JhcjIgID0gKENGR19QQ0kyX0lPX1BIWVMgPj4gMTIpICYgMHgwMDBmZmZmZjsKKwlwY2l4Mi0+cG93YmFyMiAgPSAoQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMgPj4gMTIpICYgMHgwMDBmZmZmZjsKIAlwY2l4Mi0+cG93YmVhcjIgPSAweDAwMDAwMDAwOwogCXBjaXgyLT5wb3dhcjIgPSAoUE9XQVJfRU4gfCBQT1dBUl9JT19SRUFEIHwKLQkJCVBPV0FSX0lPX1dSSVRFIHwgKF9faWxvZzIoQ0ZHX1BDSTJfSU9fU0laRSkgLSAxKSk7CisJCQlQT1dBUl9JT19XUklURSB8IChfX2lsb2cyKENPTkZJR19TWVNfUENJMl9JT19TSVpFKSAtIDEpKTsKIAogCXBjaXgyLT5waXRhcjEgPSAweDAwMDAwMDAwOwogCXBjaXgyLT5waXdiYXIxID0gMHgwMDAwMDAwMDsKQEAgLTE5MCwxNSArMTkwLDE1IEBACiAJcGNpeDItPnBpd2FyMyA9IDA7CiAKIAlwY2lfc2V0X3JlZ2lvbihob3NlLT5yZWdpb25zICsgMCwKLQkJICAgICAgIENGR19QQ0kyX01FTV9CQVNFLAotCQkgICAgICAgQ0ZHX1BDSTJfTUVNX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMl9NRU1fU0laRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9NRU1fU0laRSwKIAkJICAgICAgIFBDSV9SRUdJT05fTUVNKTsKIAogCXBjaV9zZXRfcmVnaW9uKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSTJfSU9fQkFTRSwKLQkJICAgICAgIENGR19QQ0kyX0lPX1BIWVMsCi0JCSAgICAgICBDRkdfUENJMl9JT19TSVpFLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJMl9JT19TSVpFLAogCQkgICAgICAgUENJX1JFR0lPTl9JTyk7CiAKIAlob3NlLT5yZWdpb25fY291bnQgPSAyOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvcWVfaW8uYyBiL2NwdS9tcGM4NXh4L3FlX2lvLmMKaW5kZXggMjFlYTM4Yi4uNzJhMjliNyAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvcWVfaW8uYworKysgYi9jcHUvbXBjODV4eC9xZV9pby5jCkBAIC0zNCw3ICszNCw3IEBACiAJdTMyCQkJcGluXzJiaXRfYXNzaWduOwogCXUzMgkJCXBpbl8xYml0X21hc2s7CiAJdTMyCQkJdG1wX3ZhbDsKLQl2b2xhdGlsZSBjY3NyX2d1cl90CSpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QJKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXZvbGF0aWxlIHBhcl9pb190CSpwYXJfaW8gPSAodm9sYXRpbGUgcGFyX2lvX3QgKikKIAkJCQkJCSYoZ3VyLT5xZV9wYXJfaW8pOwogCmRpZmYgLS1naXQgYS9jcHUvbXBjODV4eC9zZXJpYWxfc2NjLmMgYi9jcHUvbXBjODV4eC9zZXJpYWxfc2NjLmMKaW5kZXggN2VlM2NjOC4uMDVmYjgwOCAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvc2VyaWFsX3NjYy5jCisrKyBiL2NwdS9tcGM4NXh4L3NlcmlhbF9zY2MuYwpAQCAtODgsNyArODgsNyBAQAogCiBpbnQgc2VyaWFsX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgY2Nzcl9jcG1fdCAqY3BtID0gKGNjc3JfY3BtX3QgKilDRkdfTVBDODV4eF9DUE1fQUREUjsKKwl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUjsKIAl2b2xhdGlsZSBjY3NyX2NwbV9zY2NfdCAqc3A7CiAJdm9sYXRpbGUgc2NjX3VhcnRfdCAqdXA7CiAJdm9sYXRpbGUgY2JkX3QgKnRiZGYsICpyYmRmOwpAQCAtMjAxLDcgKzIwMSw3IEBACiB7CiAJdm9sYXRpbGUgc2NjX3VhcnRfdAkqdXA7CiAJdm9sYXRpbGUgY2JkX3QJCSp0YmRmOwotCXZvbGF0aWxlIGNjc3JfY3BtX3QJKmNwbSA9IChjY3NyX2NwbV90ICopQ0ZHX01QQzg1eHhfQ1BNX0FERFI7CisJdm9sYXRpbGUgY2Nzcl9jcG1fdAkqY3BtID0gKGNjc3JfY3BtX3QgKilDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFI7CiAKIAlpZiAoYyA9PSAnXG4nKQogCQlzZXJpYWxfcHV0YyAoJ1xyJyk7CkBAIC0yMzQsNyArMjM0LDcgQEAKIHsKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgc2NjX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgY2Nzcl9jcG1fdAkqY3BtID0gKGNjc3JfY3BtX3QgKilDRkdfTVBDODV4eF9DUE1fQUREUjsKKwl2b2xhdGlsZSBjY3NyX2NwbV90CSpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUjsKIAl1bnNpZ25lZCBjaGFyCQljOwogCiAJdXAgPSAoc2NjX3VhcnRfdCAqKSYoY3BtLT5pbV9kcHJhbWJhc2VbUFJPRkZfU0NDXSk7CkBAIC0yNTgsNyArMjU4LDcgQEAKIHsKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgc2NjX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgY2Nzcl9jcG1fdAkqY3BtID0gKGNjc3JfY3BtX3QgKilDRkdfTVBDODV4eF9DUE1fQUREUjsKKwl2b2xhdGlsZSBjY3NyX2NwbV90CSpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUjsKIAogCXVwID0gKHNjY191YXJ0X3QgKikmKGNwbS0+aW1fZHByYW1iYXNlW1BST0ZGX1NDQ10pOwogCXJiZGYgPSAoY2JkX3QgKikmKGNwbS0+aW1fZHByYW1iYXNlW3VwLT5zY2NfZ2Vuc2NjLnNjY19yYmFzZV0pOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvc3BlZWQuYyBiL2NwdS9tcGM4NXh4L3NwZWVkLmMKaW5kZXggNzBkZmFkMC4uMWUwZjQ4MyAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvc3BlZWQuYworKysgYi9jcHUvbXBjODV4eC9zcGVlZC5jCkBAIC0zNSw3ICszNSw3IEBACiAKIHZvaWQgZ2V0X3N5c19pbmZvIChzeXNfaW5mb190ICogc3lzSW5mbykKIHsKLQl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKShDRkdfTVBDODV4eF9HVVRTX0FERFIpOworCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopKENPTkZJR19TWVNfTVBDODV4eF9HVVRTX0FERFIpOwogCXVpbnQgcGxhdF9yYXRpbyxlNTAwX3JhdGlvLGhhbGZfZnJlcVN5c3RlbUJ1czsKIAogCXBsYXRfcmF0aW8gPSAoZ3VyLT5wb3JwbGxzcikgJiAweDAwMDAwMDNlOwpAQCAtNjcsMTAgKzY3LDEwIEBACiB7CiAJc3lzX2luZm9fdCBzeXNfaW5mbzsKICNpZmRlZiBDT05GSUdfTVBDODU0NAotCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICh2b2lkICopIENGR19NUEM4NXh4X0dVVFNfQUREUjsKKwl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAodm9pZCAqKSBDT05GSUdfU1lTX01QQzg1eHhfR1VUU19BRERSOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ1BNMikKLQl2b2xhdGlsZSBjY3NyX2NwbV90ICpjcG0gPSAoY2Nzcl9jcG1fdCAqKUNGR19NUEM4NXh4X0NQTV9BRERSOworCXZvbGF0aWxlIGNjc3JfY3BtX3QgKmNwbSA9IChjY3NyX2NwbV90ICopQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSOwogCXVpbnQgc2NjciwgZGZicmc7CiAKIAkvKiBzZXQgVkNPID0gNCAqIEJSRyAqLwpAQCAtMTAyLDkgKzEwMiw5IEBACiAJICogUE9SREVWU1IyX1NFQ19DRkcgYml0IGlzIDAgb24gYWxsIDg1eHggYm9hcmRzIHRoYXQgYXJlIG5vdCBhbiA4NTQ0LgogCSAqLwogCWlmIChndXItPnBvcmRldnNyMiAmIE1QQzg1eHhfUE9SREVWU1IyX1NFQ19DRkcpCi0JCWdkLT5pMmMxX2NsayA9IHN5c19pbmZvLmZyZXFTeXN0ZW1CdXMgLyAyOwotCWVsc2UKIAkJZ2QtPmkyYzFfY2xrID0gc3lzX2luZm8uZnJlcVN5c3RlbUJ1cyAvIDM7CisJZWxzZQorCQlnZC0+aTJjMV9jbGsgPSBzeXNfaW5mby5mcmVxU3lzdGVtQnVzIC8gMjsKICNlbHNlCiAJLyogTW9zdCA4NXh4IFNPQ3MgdXNlIENDQi8yLCBzbyB0aGlzIGlzIHRoZSBkZWZhdWx0IGJlaGF2aW9yLiAqLwogCWdkLT5pMmMxX2NsayA9IHN5c19pbmZvLmZyZXFTeXN0ZW1CdXMgLyAyOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvc3RhcnQuUyBiL2NwdS9tcGM4NXh4L3N0YXJ0LlMKaW5kZXggMTBmZTkzNi4uZmMzYzMzNiAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvc3RhcnQuUworKysgYi9jcHUvbXBjODV4eC9zdGFydC5TCkBAIC0xNzIsMTIgKzE3MiwxMiBAQAogCW10c3ByCUJVQ1NSLHIwCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0lOSVRfREJDUikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9EQkNSKQogCWxpcwlyMSwweGZmZmYKIAlvcmkJcjEscjEsMHhmZmZmCiAJbXRzcHIJREJTUixyMQkJCS8qIENsZWFyIGFsbCBzdGF0dXMgYml0cyAqLwotCWxpcwlyMCxDRkdfSU5JVF9EQkNSQGgJLyogREJDUjBbSURNXSBtdXN0IGJlIHNldCAqLwotCW9yaQlyMCxyMCxDRkdfSU5JVF9EQkNSQGwKKwlsaXMJcjAsQ09ORklHX1NZU19JTklUX0RCQ1JAaAkvKiBEQkNSMFtJRE1dIG11c3QgYmUgc2V0ICovCisJb3JpCXIwLHIwLENPTkZJR19TWVNfSU5JVF9EQkNSQGwKIAltdHNwcglEQkNSMCxyMAogI2VuZGlmCiAKQEAgLTIxMCwxMSArMjEwLDExIEBACiAJbGlzICAgICByNyxGU0xfQk9PS0VfTUFTMSgxLCAxLCAwLCAxLCBCT09LRV9QQUdFU1pfMTZLKUBoCiAJb3JpICAgICByNyxyNyxGU0xfQk9PS0VfTUFTMSgxLCAxLCAwLCAxLCBCT09LRV9QQUdFU1pfMTZLKUBsCiAKLQlsaXMgICAgIHI4LEZTTF9CT09LRV9NQVMyKENGR19JTklUX1JBTV9BRERSLCAwKUBoCi0Jb3JpICAgICByOCxyOCxGU0xfQk9PS0VfTUFTMihDRkdfSU5JVF9SQU1fQUREUiwgMClAbAorCWxpcyAgICAgcjgsRlNMX0JPT0tFX01BUzIoQ09ORklHX1NZU19JTklUX1JBTV9BRERSLCAwKUBoCisJb3JpICAgICByOCxyOCxGU0xfQk9PS0VfTUFTMihDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDApQGwKIAotCWxpcyAgICAgcjksRlNMX0JPT0tFX01BUzMoQ0ZHX0lOSVRfUkFNX0FERFIsIDAsIChNQVMzX1NYfE1BUzNfU1d8TUFTM19TUikpQGgKLQlvcmkgICAgIHI5LHI5LEZTTF9CT09LRV9NQVMzKENGR19JTklUX1JBTV9BRERSLCAwLCAoTUFTM19TWHxNQVMzX1NXfE1BUzNfU1IpKUBsCisJbGlzICAgICByOSxGU0xfQk9PS0VfTUFTMyhDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIsIDAsIChNQVMzX1NYfE1BUzNfU1d8TUFTM19TUikpQGgKKwlvcmkgICAgIHI5LHI5LEZTTF9CT09LRV9NQVMzKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiwgMCwgKE1BUzNfU1h8TUFTM19TV3xNQVMzX1NSKSlAbAogCiAJbXRzcHIgICBNQVMwLHI2CiAJbXRzcHIgICBNQVMxLHI3CkBAIC0yMzgsOCArMjM4LDggQEAKIAogCS8qIEFsbG9jYXRlIEluaXRpYWwgUkFNIGluIGRhdGEgY2FjaGUuCiAJICovCi0JbGlzCXIzLENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjMscjMsQ0ZHX0lOSVRfUkFNX0FERFJAbAorCWxpcwlyMyxDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAbAogCW1mc3ByCXIyLCBMMUNGRzAKIAlhbmRpLglyMiwgcjIsIDB4MWZmCiAJLyogY2FjaGUgc2l6ZSAqIDEwMjQgLyAoMiAqIEwxIGxpbmUgc2l6ZSkgKi8KQEAgLTI0OSwxNyArMjQ5LDE3IEBACiAxOgogCWRjYnoJcjAscjMKIAlkY2J0bHMJMCxyMCxyMwotCWFkZGkJcjMscjMsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyMyxyMyxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkxYgogCiAJLyogSnVtcCBvdXQgdGhlIGxhc3QgNEsgcGFnZSBhbmQgY29udGludWUgdG8gJ25vcm1hbCcgc3RhcnQgKi8KLSNpZmRlZiBDRkdfUkFNQk9PVAorI2lmZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCWIJX3N0YXJ0X2NvbnQKICNlbHNlCiAJLyogQ2FsY3VsYXRlIGFic29sdXRlIGFkZHJlc3MgaW4gRkxBU0ggYW5kIGp1bXAgdGhlcmUJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0JbGlzCXIzLENGR19NT05JVE9SX0JBU0VAaAotCW9yaQlyMyxyMyxDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjMsQ09ORklHX1NZU19NT05JVE9SX0JBU0VAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJYWRkaQlyMyxyMyxfc3RhcnRfY29udCAtIF9zdGFydCArIF9TVEFSVF9PRkZTRVQKIAltdGxyCXIzCiAJYmxyCkBAIC0yNzksOCArMjc5LDggQEAKIAkuZ2xvYmwJX3N0YXJ0X2NvbnQKIF9zdGFydF9jb250OgogCS8qIFNldHVwIHRoZSBzdGFjayBpbiBpbml0aWFsIFJBTSxjb3VsZCBiZSBMMi1hcy1TUkFNIG9yIEwxIGRjYWNoZSovCi0JbGlzCXIxLENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjEscjEsQ0ZHX0lOSVRfU1BfT0ZGU0VUQGwKKwlsaXMJcjEsQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjEscjEsQ09ORklHX1NZU19JTklUX1NQX09GRlNFVEBsCiAKIAlsaQlyMCwwCiAJc3R3dQlyMCwtNChyMSkKQEAgLTU2NSw2ICs1NjUsNyBAQAogCiAvKiBDYWNoZSBmdW5jdGlvbnMuCiAqLworLmdsb2JsIGludmFsaWRhdGVfaWNhY2hlCiBpbnZhbGlkYXRlX2ljYWNoZToKIAltZnNwcglyMCxMMUNTUjEKIAlvcmkJcjAscjAsTDFDU1IxX0lDRkkKQEAgLTU3NCw2ICs1NzUsNyBAQAogCWlzeW5jCiAJYmxyCQkJCS8qIGVudGlyZSBJIGNhY2hlICovCiAKKy5nbG9ibCBpbnZhbGlkYXRlX2RjYWNoZQogaW52YWxpZGF0ZV9kY2FjaGU6CiAJbWZzcHIJcjAsTDFDU1IwCiAJb3JpCXIwLHIwLEwxQ1NSMF9EQ0ZJCkBAIC03NzgsMTYgKzc4MCwxNiBAQAogCW1yCXIxMCxyNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLHI1CQkJCS8qIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KLQlsaXMJcjQsQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LHI0LENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyNCxDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LHI0LENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKIAlsd3oJcjUsR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LHI1LHI0Ci0JbGkJcjYsQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNixDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKIAkgKi8KQEAgLTk5NiwyMCArOTk4LDIwIEBACiAuZ2xvYmwgdW5sb2NrX3JhbV9pbl9jYWNoZQogdW5sb2NrX3JhbV9pbl9jYWNoZToKIAkvKiBpbnZhbGlkYXRlIHRoZSBJTklUX1JBTSBzZWN0aW9uICovCi0JbGlzCXIzLChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAotCW9yaQlyMyxyMywoQ0ZHX0lOSVRfUkFNX0FERFIgJiB+MzEpQGwKKwlsaXMJcjMsKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAorCW9yaQlyMyxyMywoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgfjMxKUBsCiAJbWZzcHIJcjQsTDFDRkcwCiAJYW5kaS4JcjQscjQsMHgxZmYKIAlzbHdpCXI0LHI0LCgxMCAtIDEgLSBMMV9DQUNIRV9TSElGVCkKIAltdGN0cglyNAogMToJZGNiaQlyMCxyMwotCWFkZGkJcjMscjMsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyMyxyMyxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkxYgogCXN5bmMKIAogCS8qIEludmFsaWRhdGUgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUgY2FjaGUgKi8KLQlsaXMJcjMsQ0ZHX0lOSVRfUkFNX0FERFJAaAotCW9yaQlyMyxyMyxDRkdfSU5JVF9SQU1fQUREUkBsCisJbGlzCXIzLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIzLHIzLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCiAJdGxiaXZheAkwLHIzCiAJYWRkaQlyMyxyMywweDEwMDAKIAl0bGJpdmF4CTAscjMKQEAgLTEwMTksMyArMTAyMSw1MCBAQAogCXRsYml2YXgJMCxyMwogCWlzeW5jCiAJYmxyCisKKy5nbG9ibCBmbHVzaF9kY2FjaGUKK2ZsdXNoX2RjYWNoZToKKwltZnNwcglyMyxTUFJOX0wxQ0ZHMAorCisJcmx3aW5tCXI1LHIzLDksMwkvKiBFeHRyYWN0IGNhY2hlIGJsb2NrIHNpemUgKi8KKwl0d2xndGkJcjUsMQkJLyogT25seSAzMiBhbmQgNjQgYnl0ZSBjYWNoZSBibG9ja3MKKwkJCQkgKiBhcmUgY3VycmVudGx5IGRlZmluZWQuCisJCQkJICovCisJbGkJcjQsMzIKKwlzdWJmaWMJcjYscjUsMgkJLyogcjYgPSBsb2cyKDFLaUIgLyBjYWNoZSBibG9jayBzaXplKSAtCisJCQkJICogICAgICBsb2cyKG51bWJlciBvZiB3YXlzKQorCQkJCSAqLworCXNsdwlyNSxyNCxyNQkvKiByNSA9IGNhY2hlIGJsb2NrIHNpemUgKi8KKworCXJsd2lubQlyNyxyMywwLDB4ZmYJLyogRXh0cmFjdCBudW1iZXIgb2YgS2lCIGluIHRoZSBjYWNoZSAqLworCW11bGxpCXI3LHI3LDEzCS8qIEFuIDgtd2F5IGNhY2hlIHdpbGwgcmVxdWlyZSAxMworCQkJCSAqIGxvYWRzIHBlciBzZXQuCisJCQkJICovCisJc2x3CXI3LHI3LHI2CisKKwkvKiBzYXZlIG9mZiBISUQwIGFuZCBzZXQgRENGQSAqLworCW1mc3ByCXI4LFNQUk5fSElEMAorCW9yaQlyOSxyOCxISUQwX0RDRkFAbAorCW10c3ByCVNQUk5fSElEMCxyOQorCWlzeW5jCisKKwlsaXMJcjQsMAorCW10Y3RyCXI3CisKKzE6CWx3eglyMywwKHI0KQkvKiBMb2FkLi4uICovCisJYWRkCXI0LHI0LHI1CisJYmRuegkxYgorCisJbXN5bmMKKwlsaXMJcjQsMAorCW10Y3RyCXI3CisKKzE6CWRjYmYJMCxyNAkJLyogLi4uYW5kIGZsdXNoLiAqLworCWFkZAlyNCxyNCxyNQorCWJkbnoJMWIKKworCS8qIHJlc3RvcmUgSElEMCAqLworCW10c3ByCVNQUk5fSElEMCxyOAorCWlzeW5jCisKKwlibHIKZGlmZiAtLWdpdCBhL2NwdS9tcGM4NXh4L3RsYi5jIGIvY3B1L21wYzg1eHgvdGxiLmMKaW5kZXggN2NlN2ExNC4uYTJkMTZhZSAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvdGxiLmMKKysrIGIvY3B1L21wYzg1eHgvdGxiLmMKQEAgLTEzOCw3ICsxMzgsNyBAQAogCSAqIFN0YXJ0aW5nIGF0IFRMQjEgOCwgdXNlIG5vIG1vcmUgdGhhbiA4IFRMQjEgZW50cmllcy4KIAkgKi8KIAlyYW1fdGxiX2luZGV4ID0gODsKLQlyYW1fdGxiX2FkZHJlc3MgPSAodW5zaWduZWQgaW50KUNGR19ERFJfU0RSQU1fQkFTRTsKKwlyYW1fdGxiX2FkZHJlc3MgPSAodW5zaWduZWQgaW50KUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0U7CiAJd2hpbGUgKHJhbV90bGJfYWRkcmVzcyA8IChtZW1zaXplX2luX21lZyAqIDEwMjQgKiAxMDI0KQogCSAgICAgICYmIHJhbV90bGJfaW5kZXggPCAxNikgewogCQlzZXRfdGxiKDEsIHJhbV90bGJfYWRkcmVzcywgcmFtX3RsYl9hZGRyZXNzLApkaWZmIC0tZ2l0IGEvY3B1L21wYzg1eHgvdHJhcHMuYyBiL2NwdS9tcGM4NXh4L3RyYXBzLmMKaW5kZXggMGVhYjY5NC4uMTA0NWNjMSAxMDA2NDQKLS0tIGEvY3B1L21wYzg1eHgvdHJhcHMuYworKysgYi9jcHUvbXBjODV4eC90cmFwcy5jCkBAIC0yOTAsNyArMjkwLDcgQEAKIHZvaWQKIEV4dEludEV4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBjY3NyX3BpY190ICpwaWMgPSAodm9pZCAqKShDRkdfTVBDODV4eF9QSUNfQUREUik7CisJdm9sYXRpbGUgY2Nzcl9waWNfdCAqcGljID0gKHZvaWQgKikoQ09ORklHX1NZU19NUEM4NXh4X1BJQ19BRERSKTsKIAogCXVpbnQgdmVjdDsKIApkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvY2FjaGUuUyBiL2NwdS9tcGM4Nnh4L2NhY2hlLlMKaW5kZXggODBmZjY4OC4uMGJiMDU4YiAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvY2FjaGUuUworKysgYi9jcHUvbXBjODZ4eC9jYWNoZS5TCkBAIC01Myw3ICs1Myw3IEBACiAvKgogICogRmx1c2ggZGF0YSBjYWNoZS4KICAqLwotX0dMT0JBTChmbHVzaF9kYXRhX2NhY2hlKQorX0dMT0JBTChmbHVzaF9kY2FjaGUpCiAJbGlzCXIzLDAKIAlsaXMJcjUsQ0FDSEVfTElORV9TSVpFCiBmbHVzaDoKQEAgLTI3OSw3ICsyNzksNyBAQAogCW10c3ByCUhJRDAsIHI1CQkvKiBlbmFibGUgKyBpbnZhbGlkYXRlICovCiAJbXRzcHIJSElEMCwgcjMJCS8qIGVuYWJsZSAqLwogCXN5bmMKLSNpZmRlZiBDRkdfTDIKKyNpZmRlZiBDT05GSUdfU1lTX0wyCiAJbWZscglyNQogCWJsCWwyY2FjaGVfZW5hYmxlCQkvKiB1c2VzIHIzIGFuZCByNCAqLwogCXN5bmMKQEAgLTI5MCwxMiArMjkwLDEyIEBACiAKIC8qCiAgKiBEaXNhYmxlIGRhdGEgY2FjaGUocykgLSBMMSBhbmQgb3B0aW9uYWxseSBMMgotICogQ2FsbHMgZmx1c2hfZGF0YV9jYWNoZSBhbmQgbDJjYWNoZV9kaXNhYmxlX25vX2ZsdXNoLgorICogQ2FsbHMgZmx1c2hfZGNhY2hlIGFuZCBsMmNhY2hlX2Rpc2FibGVfbm9fZmx1c2guCiAgKiBMUiBzYXZlZCBpbiByNAogICovCiBfR0xPQkFMKGRjYWNoZV9kaXNhYmxlKQogCW1mbHIJcjQJCQkvKiBzYXZlIGxpbmsgcmVnaXN0ZXIgKi8KLQlibAlmbHVzaF9kYXRhX2NhY2hlCS8qIHVzZXMgcjMgYW5kIHI1ICovCisJYmwJZmx1c2hfZGNhY2hlCS8qIHVzZXMgcjMgYW5kIHI1ICovCiAJc3luYwogCW1mc3ByCXIzLCBISUQwCiAJbGkJcjUsIEhJRDBfRENGSXxISUQwX0RMT0NLCkBAIC0zMDUsNyArMzA1LDcgQEAKIAlhbmRjCXIzLCByMywgcjUJCS8qIG5vIGVuYWJsZSwgbm8gaW52YWxpZGF0ZSAqLwogCW10c3ByCUhJRDAsIHIzCiAJc3luYwotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAlibAlsMmNhY2hlX2Rpc2FibGVfbm9fZmx1c2ggLyogdXNlcyByMyAqLwogI2VuZGlmCiAJbXRscglyNAkJCS8qIHJlc3RvcmUgbGluayByZWdpc3RlciAqLwpAQCAtMzYzLDExICszNjMsMTEgQEAKIAogLyoKICAqIERpc2FibGUgTDIgY2FjaGUKLSAqIENhbGxzIGZsdXNoX2RhdGFfY2FjaGUuIExSIGlzIHNhdmVkIGluIHI0CisgKiBDYWxscyBmbHVzaF9kY2FjaGUuIExSIGlzIHNhdmVkIGluIHI0CiAgKi8KIF9HTE9CQUwobDJjYWNoZV9kaXNhYmxlKQogCW1mbHIJcjQJCQkvKiBzYXZlIGxpbmsgcmVnaXN0ZXIgKi8KLQlibAlmbHVzaF9kYXRhX2NhY2hlCS8qIHVzZXMgcjMgYW5kIHI1ICovCisJYmwJZmx1c2hfZGNhY2hlCQkvKiB1c2VzIHIzIGFuZCByNSAqLwogCXN5bmMKIAltdGxyCXI0CQkJLyogcmVzdG9yZSBsaW5rIHJlZ2lzdGVyICovCiBsMmNhY2hlX2Rpc2FibGVfbm9fZmx1c2g6CQkvKiBwcm92aWRlIHdheSB0byBkaXNhYmxlIEwyIHcvbyBmbHVzaGluZyAqLwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvY3B1LmMgYi9jcHUvbXBjODZ4eC9jcHUuYwppbmRleCAzYTc1YWY3Li40Y2FjZTk4IDEwMDY0NAotLS0gYS9jcHUvbXBjODZ4eC9jcHUuYworKysgYi9jcHUvbXBjODZ4eC9jcHUuYwpAQCAtNDEsNyArNDEsNyBAQAogCXVpbnQgbWFqb3IsIG1pbm9yOwogCXVpbnQgbGNycjsJCS8qIGxvY2FsIGJ1cyBjbG9jayByYXRpbyByZWdpc3RlciAqLwogCXVpbnQgY2xrZGl2OwkJLyogY2xvY2sgZGl2aWRlciBwb3J0aW9uIG9mIGxjcnIgKi8KLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICZpbW1hcC0+aW1fZ3VyOwogCiAJcHV0cygiRnJlZXNjYWxlIFBvd2VyUENcbiIpOwpAQCAtMTAwLDExICsxMDAsMTEgQEAKIAlwcmludGYoIk1QWDolNGx1IE1IeiwgIiwgc3lzaW5mby5mcmVxU3lzdGVtQnVzIC8gMTAwMDAwMCk7CiAJcHJpbnRmKCJERFI6JTRsdSBNSHosICIsIHN5c2luZm8uZnJlcVN5c3RlbUJ1cyAvIDIwMDAwMDApOwogCi0jaWYgZGVmaW5lZChDRkdfTEJDX0xDUlIpCi0JbGNyciA9IENGR19MQkNfTENSUjsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTEJDX0xDUlIpCisJbGNyciA9IENPTkZJR19TWVNfTEJDX0xDUlI7CiAjZWxzZQogCXsKLQkJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwkJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJCXZvbGF0aWxlIGNjc3JfbGJjX3QgKmxiYyA9ICZpbW1hcC0+aW1fbGJjOwogCiAJCWxjcnIgPSBsYmMtPmxjcnI7CkBAIC0xNjEsMTYgKzE2MSwxNiBAQAogewogI2lmICFkZWZpbmVkKENPTkZJR19NUEM4NjQxSFBDTikgJiYgIWRlZmluZWQoQ09ORklHX01QQzg2MTBIUENEKQogCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKLQl1bG9uZyBhZGRyID0gQ0ZHX1JFU0VUX0FERFJFU1M7CisjaWZkZWYgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCisJdWxvbmcgYWRkciA9IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKICNlbHNlCiAJLyoKLQkgKiBub3RlOiB3aGVuIENGR19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsCi0JICogQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpIGlzIHVzdWFsbHkgYSB2YWxpZAorCSAqIG5vdGU6IHdoZW4gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsCisJICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBzaXplb2YgKHVsb25nKSBpcyB1c3VhbGx5IGEgdmFsaWQKIAkgKiBhZGRyZXNzLiBCZXR0ZXIgcGljayBhbiBhZGRyZXNzIGtub3duIHRvIGJlIGludmFsaWQgb24geW91cgotCSAqIHN5c3RlbSBhbmQgYXNzaWduIGl0IHRvIENGR19SRVNFVF9BRERSRVNTLgorCSAqIHN5c3RlbSBhbmQgYXNzaWduIGl0IHRvIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUy4KIAkgKi8KLQl1bG9uZyBhZGRyID0gQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZih1bG9uZyk7CisJdWxvbmcgYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mKHVsb25nKTsKICNlbmRpZgogCiAJLyogZmx1c2ggYW5kIGRpc2FibGUgSS9EIGNhY2hlICovCkBAIC0yMTksNyArMjE5LDcgQEAKIAkvKgogCSAqIFRoaXMgYWN0dWFsbHkgZmVlZCB0aGUgaGFyZCBlbmFibGVkIHdhdGNoZG9nLgogCSAqLwotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNjc3Jfd2R0X3QgKndkdCA9ICZpbW1hcC0+aW1fd2R0OwogCXZvbGF0aWxlIGNjc3JfZ3VyX3QgKmd1ciA9ICZpbW1hcC0+aW1fZ3VyOwogCXUzMiB0bXAgPSBndXItPnBvcmRldnNyOwpAQCAtMjM3LDcgKzIzNyw3IEBACiB2b2lkCiBkbWFfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9kbWFfdCAqZG1hID0gJmltbWFwLT5pbV9kbWE7CiAKIAlkbWEtPnNhdHIwID0gMHgwMDA0MDAwMDsKQEAgLTI0OCw3ICsyNDgsNyBAQAogdWludAogZG1hX2NoZWNrKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2RtYV90ICpkbWEgPSAmaW1tYXAtPmltX2RtYTsKIAl2b2xhdGlsZSB1aW50IHN0YXR1cyA9IGRtYS0+c3IwOwogCkBAIC0yNjYsNyArMjY2LDcgQEAKIGludAogZG1hX3hmZXIodm9pZCAqZGVzdCwgdWludCBjb3VudCwgdm9pZCAqc3JjKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9kbWFfdCAqZG1hID0gJmltbWFwLT5pbV9kbWE7CiAKIAlkbWEtPmRhcjAgPSAodWludCkgZGVzdDsKQEAgLTI4OCw3ICsyODgsNyBAQAogICovCiB2b2lkIG1wYzg2eHhfcmVnaW5mbyh2b2lkKQogewotCWltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwlpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWNjc3JfbGJjX3QgKmxiYyA9ICZpbW1hcC0+aW1fbGJjOwogCiAJcHJpbnRfYmF0cygpOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvY3B1X2luaXQuYyBiL2NwdS9tcGM4Nnh4L2NwdV9pbml0LmMKaW5kZXggMWZkYTNmZS4uNGFiODhmMCAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvY3B1X2luaXQuYworKysgYi9jcHUvbXBjODZ4eC9jcHVfaW5pdC5jCkBAIC00MywxMSArNDMsMTEgQEAKIAogdm9pZCBjcHVfaW5pdF9mKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAgICAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgICAgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY2Nzcl9sYmNfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9sYmM7CiAKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdCAqLwotCWdkID0gKGdkX3QgKikgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVCk7CisJZ2QgPSAoZ2RfdCAqKSAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpOwogCiAJLyogQ2xlYXIgaW5pdGlhbCBnbG9iYWwgZGF0YSAqLwogCW1lbXNldCAoKHZvaWQgKikgZ2QsIDAsIHNpemVvZiAoZ2RfdCkpOwpAQCAtNjEsNTIgKzYxLDUyIEBACiAJICogaGFzIGJlZW4gZGV0ZXJtaW5lZAogCSAqLwogCi0jaWYgZGVmaW5lZChDRkdfT1IwX1JFTUFQKQotCW1lbWN0bC0+b3IwID0gQ0ZHX09SMF9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1JFTUFQKQorCW1lbWN0bC0+b3IwID0gQ09ORklHX1NZU19PUjBfUkVNQVA7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19PUjFfUkVNQVApCi0JbWVtY3RsLT5vcjEgPSBDRkdfT1IxX1JFTUFQOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjFfUkVNQVApCisJbWVtY3RsLT5vcjEgPSBDT05GSUdfU1lTX09SMV9SRU1BUDsKICNlbmRpZgogCiAJLyogbm93IHJlc3RyaWN0IHRvIHByZWxpbWluYXJ5IHJhbmdlICovCi0jaWYgZGVmaW5lZChDRkdfQlIwX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IwX1BSRUxJTSkKLQltZW1jdGwtPmJyMCA9IENGR19CUjBfUFJFTElNOwotCW1lbWN0bC0+b3IwID0gQ0ZHX09SMF9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSMF9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjBfUFJFTElNKQorCW1lbWN0bC0+YnIwID0gQ09ORklHX1NZU19CUjBfUFJFTElNOworCW1lbWN0bC0+b3IwID0gQ09ORklHX1NZU19PUjBfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjFfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjFfUFJFTElNKQotCW1lbWN0bC0+b3IxID0gQ0ZHX09SMV9QUkVMSU07Ci0JbWVtY3RsLT5icjEgPSBDRkdfQlIxX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlIxX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SMV9QUkVMSU0pCisJbWVtY3RsLT5vcjEgPSBDT05GSUdfU1lTX09SMV9QUkVMSU07CisJbWVtY3RsLT5icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pCi0JbWVtY3RsLT5vcjIgPSBDRkdfT1IyX1BSRUxJTTsKLQltZW1jdGwtPmJyMiA9IENGR19CUjJfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjJfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkKKwltZW1jdGwtPm9yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPmJyMiA9IENPTkZJR19TWVNfQlIyX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlIzX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1IzX1BSRUxJTSkKLQltZW1jdGwtPm9yMyA9IENGR19PUjNfUFJFTElNOwotCW1lbWN0bC0+YnIzID0gQ0ZHX0JSM19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSM19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjNfUFJFTElNKQorCW1lbWN0bC0+b3IzID0gQ09ORklHX1NZU19PUjNfUFJFTElNOworCW1lbWN0bC0+YnIzID0gQ09ORklHX1NZU19CUjNfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjRfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjRfUFJFTElNKQotCW1lbWN0bC0+b3I0ID0gQ0ZHX09SNF9QUkVMSU07Ci0JbWVtY3RsLT5icjQgPSBDRkdfQlI0X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI0X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SNF9QUkVMSU0pCisJbWVtY3RsLT5vcjQgPSBDT05GSUdfU1lTX09SNF9QUkVMSU07CisJbWVtY3RsLT5icjQgPSBDT05GSUdfU1lTX0JSNF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0JSNV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX09SNV9QUkVMSU0pCi0JbWVtY3RsLT5vcjUgPSBDRkdfT1I1X1BSRUxJTTsKLQltZW1jdGwtPmJyNSA9IENGR19CUjVfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19CUjVfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1BSRUxJTSkKKwltZW1jdGwtPm9yNSA9IENPTkZJR19TWVNfT1I1X1BSRUxJTTsKKwltZW1jdGwtPmJyNSA9IENPTkZJR19TWVNfQlI1X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfQlI2X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfT1I2X1BSRUxJTSkKLQltZW1jdGwtPm9yNiA9IENGR19PUjZfUFJFTElNOwotCW1lbWN0bC0+YnI2ID0gQ0ZHX0JSNl9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0JSNl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19PUjZfUFJFTElNKQorCW1lbWN0bC0+b3I2ID0gQ09ORklHX1NZU19PUjZfUFJFTElNOworCW1lbWN0bC0+YnI2ID0gQ09ORklHX1NZU19CUjZfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19CUjdfUFJFTElNKSAmJiBkZWZpbmVkKENGR19PUjdfUFJFTElNKQotCW1lbWN0bC0+b3I3ID0gQ0ZHX09SN19QUkVMSU07Ci0JbWVtY3RsLT5icjcgPSBDRkdfQlI3X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQlI3X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX09SN19QUkVMSU0pCisJbWVtY3RsLT5vcjcgPSBDT05GSUdfU1lTX09SN19QUkVMSU07CisJbWVtY3RsLT5icjcgPSBDT05GSUdfU1lTX0JSN19QUkVMSU07CiAjZW5kaWYKIAogCS8qIGVuYWJsZSB0aGUgdGltZWJhc2UgYml0IGluIEhJRDAgKi8KQEAgLTEyNywyMiArMTI3LDIyIEBACiAvKiBTZXQgdXAgQkFUIHJlZ2lzdGVycyAqLwogdm9pZCBzZXR1cF9iYXRzKHZvaWQpCiB7Ci0Jd3JpdGVfYmF0KERCQVQwLCBDRkdfREJBVDBVLCBDRkdfREJBVDBMKTsKLQl3cml0ZV9iYXQoSUJBVDAsIENGR19JQkFUMFUsIENGR19JQkFUMEwpOwotCXdyaXRlX2JhdChEQkFUMSwgQ0ZHX0RCQVQxVSwgQ0ZHX0RCQVQxTCk7Ci0Jd3JpdGVfYmF0KElCQVQxLCBDRkdfSUJBVDFVLCBDRkdfSUJBVDFMKTsKLQl3cml0ZV9iYXQoREJBVDIsIENGR19EQkFUMlUsIENGR19EQkFUMkwpOwotCXdyaXRlX2JhdChJQkFUMiwgQ0ZHX0lCQVQyVSwgQ0ZHX0lCQVQyTCk7Ci0Jd3JpdGVfYmF0KERCQVQzLCBDRkdfREJBVDNVLCBDRkdfREJBVDNMKTsKLQl3cml0ZV9iYXQoSUJBVDMsIENGR19JQkFUM1UsIENGR19JQkFUM0wpOwotCXdyaXRlX2JhdChEQkFUNCwgQ0ZHX0RCQVQ0VSwgQ0ZHX0RCQVQ0TCk7Ci0Jd3JpdGVfYmF0KElCQVQ0LCBDRkdfSUJBVDRVLCBDRkdfSUJBVDRMKTsKLQl3cml0ZV9iYXQoREJBVDUsIENGR19EQkFUNVUsIENGR19EQkFUNUwpOwotCXdyaXRlX2JhdChJQkFUNSwgQ0ZHX0lCQVQ1VSwgQ0ZHX0lCQVQ1TCk7Ci0Jd3JpdGVfYmF0KERCQVQ2LCBDRkdfREJBVDZVLCBDRkdfREJBVDZMKTsKLQl3cml0ZV9iYXQoSUJBVDYsIENGR19JQkFUNlUsIENGR19JQkFUNkwpOwotCXdyaXRlX2JhdChEQkFUNywgQ0ZHX0RCQVQ3VSwgQ0ZHX0RCQVQ3TCk7Ci0Jd3JpdGVfYmF0KElCQVQ3LCBDRkdfSUJBVDdVLCBDRkdfSUJBVDdMKTsKKwl3cml0ZV9iYXQoREJBVDAsIENPTkZJR19TWVNfREJBVDBVLCBDT05GSUdfU1lTX0RCQVQwTCk7CisJd3JpdGVfYmF0KElCQVQwLCBDT05GSUdfU1lTX0lCQVQwVSwgQ09ORklHX1NZU19JQkFUMEwpOworCXdyaXRlX2JhdChEQkFUMSwgQ09ORklHX1NZU19EQkFUMVUsIENPTkZJR19TWVNfREJBVDFMKTsKKwl3cml0ZV9iYXQoSUJBVDEsIENPTkZJR19TWVNfSUJBVDFVLCBDT05GSUdfU1lTX0lCQVQxTCk7CisJd3JpdGVfYmF0KERCQVQyLCBDT05GSUdfU1lTX0RCQVQyVSwgQ09ORklHX1NZU19EQkFUMkwpOworCXdyaXRlX2JhdChJQkFUMiwgQ09ORklHX1NZU19JQkFUMlUsIENPTkZJR19TWVNfSUJBVDJMKTsKKwl3cml0ZV9iYXQoREJBVDMsIENPTkZJR19TWVNfREJBVDNVLCBDT05GSUdfU1lTX0RCQVQzTCk7CisJd3JpdGVfYmF0KElCQVQzLCBDT05GSUdfU1lTX0lCQVQzVSwgQ09ORklHX1NZU19JQkFUM0wpOworCXdyaXRlX2JhdChEQkFUNCwgQ09ORklHX1NZU19EQkFUNFUsIENPTkZJR19TWVNfREJBVDRMKTsKKwl3cml0ZV9iYXQoSUJBVDQsIENPTkZJR19TWVNfSUJBVDRVLCBDT05GSUdfU1lTX0lCQVQ0TCk7CisJd3JpdGVfYmF0KERCQVQ1LCBDT05GSUdfU1lTX0RCQVQ1VSwgQ09ORklHX1NZU19EQkFUNUwpOworCXdyaXRlX2JhdChJQkFUNSwgQ09ORklHX1NZU19JQkFUNVUsIENPTkZJR19TWVNfSUJBVDVMKTsKKwl3cml0ZV9iYXQoREJBVDYsIENPTkZJR19TWVNfREJBVDZVLCBDT05GSUdfU1lTX0RCQVQ2TCk7CisJd3JpdGVfYmF0KElCQVQ2LCBDT05GSUdfU1lTX0lCQVQ2VSwgQ09ORklHX1NZU19JQkFUNkwpOworCXdyaXRlX2JhdChEQkFUNywgQ09ORklHX1NZU19EQkFUN1UsIENPTkZJR19TWVNfREJBVDdMKTsKKwl3cml0ZV9iYXQoSUJBVDcsIENPTkZJR19TWVNfSUJBVDdVLCBDT05GSUdfU1lTX0lCQVQ3TCk7CiAKIAlyZXR1cm47CiB9CmRpZmYgLS1naXQgYS9jcHUvbXBjODZ4eC9kZHItODY0MS5jIGIvY3B1L21wYzg2eHgvZGRyLTg2NDEuYwppbmRleCBmOTM2MTgyLi41MWQwMTAyIDEwMDY0NAotLS0gYS9jcHUvbXBjODZ4eC9kZHItODY0MS5jCisrKyBiL2NwdS9tcGM4Nnh4L2Rkci04NjQxLmMKQEAgLTIyLDEwICsyMiwxMCBAQAogCiAJc3dpdGNoIChjdHJsX251bSkgewogCWNhc2UgMDoKLQkJZGRyID0gKHZvaWQgKilDRkdfTVBDODZ4eF9ERFJfQUREUjsKKwkJZGRyID0gKHZvaWQgKilDT05GSUdfU1lTX01QQzg2eHhfRERSX0FERFI7CiAJCWJyZWFrOwogCWNhc2UgMToKLQkJZGRyID0gKHZvaWQgKilDRkdfTVBDODZ4eF9ERFIyX0FERFI7CisJCWRkciA9ICh2b2lkICopQ09ORklHX1NZU19NUEM4Nnh4X0REUjJfQUREUjsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcHJpbnRmKCIlcyB1bmV4cGVjdGVkIGN0cmxfbnVtID0gJXVcbiIsIF9fRlVOQ1RJT05fXywgY3RybF9udW0pOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvZmR0LmMgYi9jcHUvbXBjODZ4eC9mZHQuYwppbmRleCAxMmQ5MDUyLi4xZmVmOTRmNSAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvZmR0LmMKKysrIGIvY3B1L21wYzg2eHgvZmR0LmMKQEAgLTI4LDggKzI4LDggQEAKIAlmZHRfZml4dXBfZXRoZXJuZXQoYmxvYik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzE2NTUwCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwCiAJZG9fZml4dXBfYnlfY29tcGF0X3UzMihibG9iLCAibnMxNjU1MCIsCi0JCQkgICAgICAgImNsb2NrLWZyZXF1ZW5jeSIsIENGR19OUzE2NTUwX0NMSywgMSk7CisJCQkgICAgICAgImNsb2NrLWZyZXF1ZW5jeSIsIENPTkZJR19TWVNfTlMxNjU1MF9DTEssIDEpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9jcHUvbXBjODZ4eC9pbnRlcnJ1cHRzLmMgYi9jcHUvbXBjODZ4eC9pbnRlcnJ1cHRzLmMKaW5kZXggZmEyY2ZhYy4uYzc4ZmM3MiAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM4Nnh4L2ludGVycnVwdHMuYwpAQCAtMzgsNyArMzgsNyBAQAogCiBpbnQgaW50ZXJydXB0X2luaXRfY3B1KHVuc2lnbmVkIGxvbmcgKmRlY3JlbWVudGVyX2NvdW50KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX3BpY190ICpwaWMgPSAmaW1tci0+aW1fcGljOwogCiAJcGljLT5nY3IgPSBNUEM4Nnh4X1BJQ0dDUl9SU1Q7CkBAIC00Niw3ICs0Niw3IEBACiAJCTsKIAlwaWMtPmdjciA9IE1QQzg2eHhfUElDR0NSX01PREU7CiAKLQkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsoKSAvIENPTkZJR19TWVNfSFo7CiAJZGVidWcoImludGVycnVwdCBpbml0OiB0YmNsaygpID0gJWQgTUh6LCBkZWNyZW1lbnRlcl9jb3VudCA9ICVsZFxuIiwKIAkgICAgICAoZ2V0X3RiY2xrKCkgLyAxMDAwMDAwKSwKIAkgICAgICAqZGVjcmVtZW50ZXJfY291bnQpOwpkaWZmIC0tZ2l0IGEvY3B1L21wYzg2eHgvc3BlZWQuYyBiL2NwdS9tcGM4Nnh4L3NwZWVkLmMKaW5kZXggZGE1YjU4Yi4uNDE1YWM5ZCAxMDA2NDQKLS0tIGEvY3B1L21wYzg2eHgvc3BlZWQuYworKysgYi9jcHUvbXBjODZ4eC9zcGVlZC5jCkBAIC0zNiw3ICszNiw3IEBACiAKIHZvaWQgZ2V0X3N5c19pbmZvKHN5c19pbmZvX3QgKnN5c0luZm8pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjY3NyX2d1cl90ICpndXIgPSAmaW1tYXAtPmltX2d1cjsKIAl1aW50IHBsYXRfcmF0aW8sIGU2MDBfcmF0aW87CiAKZGlmZiAtLWdpdCBhL2NwdS9tcGM4Nnh4L3N0YXJ0LlMgYi9jcHUvbXBjODZ4eC9zdGFydC5TCmluZGV4IDkwYTFiODMuLjE1OWYzZTEgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4Nnh4L3N0YXJ0LlMKKysrIGIvY3B1L21wYzg2eHgvc3RhcnQuUwpAQCAtMTk0LDcgKzE5NCw3IEBACiAjZW5kaWYKIAogMToKLSNpZmRlZiBDRkdfUkFNQk9PVAorI2lmZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCS8qIGRpc2FibGUgZXZlcnl0aGluZyAqLwogCWxpCXIwLCAwCiAJbXRzcHIJSElEMCwgcjAKQEAgLTIwNSw3ICsyMDUsNyBAQAogCWJsCWludmFsaWRhdGVfYmF0cwogCXN5bmMKIAotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAkvKiBpbml0IHRoZSBMMiBjYWNoZSAqLwogCWxpcwlyMywgTDJfSU5JVEBoCiAJb3JpCXIzLCByMywgTDJfSU5JVEBsCkBAIC0yMTgsOCArMjE4LDggQEAKIAkvKgogCSAqIENhbGN1bGF0ZSBhYnNvbHV0ZSBhZGRyZXNzIGluIEZMQVNIIGFuZCBqdW1wIHRoZXJlCiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMywgQ0ZHX01PTklUT1JfQkFTRUBoCi0Jb3JpCXIzLCByMywgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXIzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCisJb3JpCXIzLCByMywgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWFkZGkJcjMsIHIzLCBpbl9mbGFzaCAtIF9zdGFydCArIEVYQ19PRkZfU1lTX1JFU0VUCiAJbXRscglyMwogCWJscgpAQCAtMjU3LDE1ICsyNTcsMTUgQEAKIAlibAlpY2FjaGVfZW5hYmxlCiAjZW5kaWYKIAotI2lmZGVmIENGR19JTklUX1JBTV9MT0NLCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiAJYmwJbG9ja19yYW1faW5fY2FjaGUKIAlzeW5jCiAjZW5kaWYKIAogCS8qIHNldCB1cCB0aGUgc3RhY2sgcG9pbnRlciBpbiBvdXIgbmV3bHkgY3JlYXRlZAogCSAqIGNhY2hlLXJhbSAocjEpICovCi0JbGlzCXIxLCAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKUBoCi0Jb3JpCXIxLCByMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVClAbAorCWxpcwlyMSwgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKUBoCisJb3JpCXIxLCByMSwgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKUBsCiAKIAlsaQlyMCwgMAkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kICovCiAJc3R3dQlyMCwgLTQocjEpCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KQEAgLTI3OCw3ICsyNzgsNyBAQAogCWJsICAgICAgY2xlYXJfdGxicwogCXN5bmMKIAotI2lmIChDRkdfQ0NTUkJBUl9ERUZBVUxUICE9IENGR19DQ1NSQkFSKQorI2lmIChDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVCAhPSBDT05GSUdfU1lTX0NDU1JCQVIpCiAJLyogc2V0dXAgY2NzcmJhciAqLwogCWJsICAgICAgc2V0dXBfY2NzcmJhcgogI2VuZGlmCkBAIC0zMDgsOCArMzA4LDggQEAKIAlzdGIJcjMsIDAocjQpCiAKIAkvKiBHZXQgdGhlIGFkZHJlc3MgdG8ganVtcCB0byBpbiByMyovCi0JbGlzCXIzLCBDRkdfRElBR19BRERSQGgKLQlvcmkJcjMsIHIzLCBDRkdfRElBR19BRERSQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfRElBR19BRERSQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0RJQUdfQUREUkBsCiAKIAkvKiBMb2FkIHRoZSBMUiB3aXRoIHRoZSBicmFuY2ggYWRkcmVzcyAqLwogCW10bHIJcjMKQEAgLTM2NywzNyArMzY3LDM3IEBACiAJLmdsb2JsICBlYXJseV9iYXRzCiBlYXJseV9iYXRzOgogCS8qIElCQVQgNSAqLwotCWxpcwlyNCwgQ0ZHX0lCQVQ1TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19JQkFUNUxAbAotCWxpcwlyMywgQ0ZHX0lCQVQ1VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19JQkFUNVVAbAorCWxpcwlyNCwgQ09ORklHX1NZU19JQkFUNUxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0lCQVQ1TEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lCQVQ1VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfSUJBVDVVQGwKIAltdHNwciAgIElCQVQ1TCwgcjQKIAltdHNwciAgIElCQVQ1VSwgcjMKIAlpc3luYwogCiAJLyogREJBVCA1ICovCi0JbGlzCXI0LCBDRkdfREJBVDVMQGgKLQlvcmkgICAgIHI0LCByNCwgQ0ZHX0RCQVQ1TEBsCi0JbGlzCXIzLCBDRkdfREJBVDVVQGgKLQlvcmkgICAgIHIzLCByMywgQ0ZHX0RCQVQ1VUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0RCQVQ1TEBoCisJb3JpICAgICByNCwgcjQsIENPTkZJR19TWVNfREJBVDVMQGwKKwlsaXMJcjMsIENPTkZJR19TWVNfREJBVDVVQGgKKwlvcmkgICAgIHIzLCByMywgQ09ORklHX1NZU19EQkFUNVVAbAogCW10c3ByICAgREJBVDVMLCByNAogCW10c3ByICAgREJBVDVVLCByMwogCWlzeW5jCiAKIAkvKiBJQkFUIDYgKi8KLQlsaXMJcjQsIENGR19JQkFUNkxAaAotCW9yaSAgICAgcjQsIHI0LCBDRkdfSUJBVDZMQGwKLQlsaXMJcjMsIENGR19JQkFUNlVAaAotCW9yaSAgICAgcjMsIHIzLCBDRkdfSUJBVDZVQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUJBVDZMQGgKKwlvcmkgICAgIHI0LCByNCwgQ09ORklHX1NZU19JQkFUNkxAbAorCWxpcwlyMywgQ09ORklHX1NZU19JQkFUNlVAaAorCW9yaSAgICAgcjMsIHIzLCBDT05GSUdfU1lTX0lCQVQ2VUBsCiAJbXRzcHIgICBJQkFUNkwsIHI0CiAJbXRzcHIgICBJQkFUNlUsIHIzCiAJaXN5bmMKIAogCS8qIERCQVQgNiAqLwotCWxpcwlyNCwgQ0ZHX0RCQVQ2TEBoCi0Jb3JpICAgICByNCwgcjQsIENGR19EQkFUNkxAbAotCWxpcwlyMywgQ0ZHX0RCQVQ2VUBoCi0Jb3JpICAgICByMywgcjMsIENGR19EQkFUNlVAbAorCWxpcwlyNCwgQ09ORklHX1NZU19EQkFUNkxAaAorCW9yaSAgICAgcjQsIHI0LCBDT05GSUdfU1lTX0RCQVQ2TEBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0RCQVQ2VUBoCisJb3JpICAgICByMywgcjMsIENPTkZJR19TWVNfREJBVDZVQGwKIAltdHNwciAgIERCQVQ2TCwgcjQKIAltdHNwciAgIERCQVQ2VSwgcjMKIAlpc3luYwpAQCAtNjIxLDE2ICs2MjEsMTYgQEAKIAltcglyMTAsIHI1CQkvKiBTYXZlIGNvcHkgb2YgRGVzdGluYXRpb24gQWRkcmVzcwkqLwogCiAJbXIJcjMsICByNQkJCQkvKiBEZXN0aW5hdGlvbiBBZGRyZXNzCSovCi0JbGlzCXI0LCBDRkdfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KLQlvcmkJcjQsIHI0LCBDRkdfTU9OSVRPUl9CQVNFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGgJCS8qIFNvdXJjZSAgICAgIEFkZHJlc3MJKi8KKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBsCiAJbHd6CXI1LCBHT1QoX19pbml0X2VuZCkKIAlzdWIJcjUsIHI1LCByNAotCWxpCXI2LCBDRkdfQ0FDSEVMSU5FX1NJWkUJCS8qIENhY2hlIExpbmUgU2l6ZQkqLworCWxpCXI2LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KIAogCS8qCiAJICogRml4IEdPVCBwb2ludGVyOgogCSAqCi0JICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDRkdfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKKwkgKiBOZXcgR09ULVBUUiA9IChvbGQgR09ULVBUUiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSArIERlc3RpbmF0aW9uIEFkZHJlc3MKIAkgKgogCSAqIE9mZnNldDoKIAkgKi8KQEAgLTY0OCwxMSArNjQ4LDExIEBACiAJYmwJYm9hcmRfcmVsb2NhdGVfcm9tCiAJc3luYwogCW1yCXIzLCByMTAJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAjZWxzZQogCWNtcGx3CWNyMSxyMyxyNAogCWFkZGkJcjAscjUsMwpAQCAtODY0LDE1ICs4NjQsMTUgQEAKIAlpc3luYwogCWJscgogCi0jaWYgKENGR19DQ1NSQkFSX0RFRkFVTFQgIT0gQ0ZHX0NDU1JCQVIpCisjaWYgKENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUICE9IENPTkZJR19TWVNfQ0NTUkJBUikKIC5nbG9ibCBzZXR1cF9jY3NyYmFyCiBzZXR1cF9jY3NyYmFyOgogCS8qIFNwZWNpYWwgc2VxdWVuY2UgbmVlZGVkIHRvIHVwZGF0ZSBDQ1NSQkFSIGl0c2VsZiAqLwotCWxpcwlyNCwgQ0ZHX0NDU1JCQVJfREVGQVVMVEBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0NDU1JCQVJfREVGQVVMVEBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVEBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFRAbAogCi0JbGlzCXI1LCBDRkdfQ0NTUkJBUkBoCi0Jb3JpCXI1LCByNSwgQ0ZHX0NDU1JCQVJAbAorCWxpcwlyNSwgQ09ORklHX1NZU19DQ1NSQkFSQGgKKwlvcmkJcjUsIHI1LCBDT05GSUdfU1lTX0NDU1JCQVJAbAogCXNyd2kJcjYscjUsMTIKIAlzdHcJcjYsIDAocjQpCiAJaXN5bmMKQEAgLTg4MiwyMSArODgyLDIxIEBACiAJbHd6CXI1LCAwKHI1KQogCWlzeW5jCiAKLQlsaXMJcjMsIENGR19DQ1NSQkFSQGgKLQlsd3oJcjUsIENGR19DQ1NSQkFSQGwocjMpCisJbGlzCXIzLCBDT05GSUdfU1lTX0NDU1JCQVJAaAorCWx3eglyNSwgQ09ORklHX1NZU19DQ1NSQkFSQGwocjMpCiAJaXN5bmMKIAogCWJscgogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fTE9DSworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogbG9ja19yYW1faW5fY2FjaGU6CiAJLyogQWxsb2NhdGUgSW5pdGlhbCBSQU0gaW4gZGF0YSBjYWNoZS4KIAkgKi8KLQlsaXMJcjMsIChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAotCW9yaQlyMywgcjMsIChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAbAotCWxpCXI0LCAoKENGR19JTklUX1JBTV9FTkQgJiB+MzEpICsgXAotCQkgICAgIChDRkdfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCisJbGlzCXIzLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgfjMxKUBoCisJb3JpCXIzLCByMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAbAorCWxpCXI0LCAoKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKKwkJICAgICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgMzEpICsgMzEpIC8gMzIKIAltdGN0cglyNAogMToKIAlkY2J6CXIwLCByMwpAQCAtOTI4LDEwICs5MjgsMTAgQEAKIC5nbG9ibCB1bmxvY2tfcmFtX2luX2NhY2hlCiB1bmxvY2tfcmFtX2luX2NhY2hlOgogCS8qIGludmFsaWRhdGUgdGhlIElOSVRfUkFNIHNlY3Rpb24gKi8KLQlsaXMJcjMsIChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAaAotCW9yaQlyMywgcjMsIChDRkdfSU5JVF9SQU1fQUREUiAmIH4zMSlAbAotCWxpCXI0LCAoKENGR19JTklUX1JBTV9FTkQgJiB+MzEpICsgXAotCQkgICAgIChDRkdfSU5JVF9SQU1fQUREUiAmIDMxKSArIDMxKSAvIDMyCisJbGlzCXIzLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgfjMxKUBoCisJb3JpCXIzLCByMywgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAmIH4zMSlAbAorCWxpCXI0LCAoKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICYgfjMxKSArIFwKKwkJICAgICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICYgMzEpICsgMzEpIC8gMzIKIAltdGN0cglyNAogMToJaWNiaQlyMCwgcjMKIAlhZGRpCXIzLCByMywgMzIKQEAgLTk4Nyw3ICs5ODcsNyBAQAogCXN5bmMKIAlibAllbmFibGVfZXh0X2FkZHIKIAotI2lmZGVmIENGR19MMgorI2lmZGVmIENPTkZJR19TWVNfTDIKIAkvKiBpbml0IHRoZSBMMiBjYWNoZSAqLwogCWFkZGlzCXIzLCByMCwgTDJfSU5JVEBoCiAJb3JpCXIzLCByMywgTDJfSU5JVEBsCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L2NvbW1wcm9jLmMgYi9jcHUvbXBjOHh4L2NvbW1wcm9jLmMKaW5kZXggMDdjNzYzYy4uYTg3YTBkYyAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9jb21tcHJvYy5jCisrKyBiL2NwdS9tcGM4eHgvY29tbXByb2MuYwpAQCAtMjYsNyArMjYsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAogaW50IGRwcmFtX2luaXQgKHZvaWQpCiB7CkBAIC04MiwxNCArODIsMTQgQEAKIAogCXJldHVybiAoZ2QtPmRwX2FsbG9jX2Jhc2UgKyBtYXNrKSAmIH5tYXNrOwogfQotI2VuZGlmCS8qIENGR19BTExPQ19EUFJBTSAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfQUxMT0NfRFBSQU0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BPU1QpIHx8IGRlZmluZWQoQ09ORklHX0xPR0JVRkZFUikKIAogdm9pZCBwb3N0X3dvcmRfc3RvcmUgKHVsb25nIGEpCiB7CiAJdm9sYXRpbGUgdm9pZCAqc2F2ZV9hZGRyID0KLQkJKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsgQ1BNX1BPU1RfV09SRF9BRERSOworCQkoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsgQ1BNX1BPU1RfV09SRF9BRERSOwogCiAJKih2b2xhdGlsZSB1bG9uZyAqKSBzYXZlX2FkZHIgPSBhOwogfQpAQCAtOTcsNyArOTcsNyBAQAogdWxvbmcgcG9zdF93b3JkX2xvYWQgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdm9pZCAqc2F2ZV9hZGRyID0KLQkJKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsgQ1BNX1BPU1RfV09SRF9BRERSOworCQkoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsgQ1BNX1BPU1RfV09SRF9BRERSOwogCiAJcmV0dXJuICoodm9sYXRpbGUgdWxvbmcgKikgc2F2ZV9hZGRyOwogfQpAQCAtMTA5LDcgKzEwOSw3IEBACiB2b2lkIGJvb3Rjb3VudF9zdG9yZSAodWxvbmcgYSkKIHsKIAl2b2xhdGlsZSB1bG9uZyAqc2F2ZV9hZGRyID0KLQkJKHZvbGF0aWxlIHVsb25nICopKCAoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfZHBtZW0gKworCQkodm9sYXRpbGUgdWxvbmcgKikoICgoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfZHBtZW0gKwogCQkgICAgICAgICAgICAgICAgICAgIENQTV9CT09UQ09VTlRfQUREUiApOwogCiAJc2F2ZV9hZGRyWzBdID0gYTsKQEAgLTExOSw3ICsxMTksNyBAQAogdWxvbmcgYm9vdGNvdW50X2xvYWQgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKSggKChpbW1hcF90ICopIENGR19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsKKwkJKHZvbGF0aWxlIHVsb25nICopKCAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX2RwbWVtICsKIAkJICAgICAgICAgICAgICAgICAgICBDUE1fQk9PVENPVU5UX0FERFIgKTsKIAogCWlmIChzYXZlX2FkZHJbMV0gIT0gQk9PVENPVU5UX01BR0lDKQpkaWZmIC0tZ2l0IGEvY3B1L21wYzh4eC9jcHUuYyBiL2NwdS9tcGM4eHgvY3B1LmMKaW5kZXggZWM2YTNmZC4uNDIwZWFlZCAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9jcHUuYworKysgYi9jcHUvbXBjOHh4L2NwdS5jCkBAIC0xMzcsMTMgKzEzNywxMyBAQAogCQlwcmludGYgKCJ1bmtub3duIE0lcyAoMHglMDh4KSIsIGlkX3N0ciwgayk7CiAKIAotI2lmIGRlZmluZWQoQ0ZHXzh4eF9DUFVDTEtfTUlOKSAmJiBkZWZpbmVkKENGR184eHhfQ1BVQ0xLX01BWCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4pICYmIGRlZmluZWQoQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWCkKIAlwcmludGYgKCIgYXQgJXMgTUh6IFslZC4lZC4uLiVkLiVkIE1Iel1cbiAgICAgICAiLAogCQlzdHJtaHogKGJ1ZiwgY2xvY2spLAotCQlDRkdfOHh4X0NQVUNMS19NSU4gLyAxMDAwMDAwLAotCQkoKENGR184eHhfQ1BVQ0xLX01JTiAlIDEwMDAwMDApICsgNTAwMDApIC8gMTAwMDAwLAotCQlDRkdfOHh4X0NQVUNMS19NQVggLyAxMDAwMDAwLAotCQkoKENGR184eHhfQ1BVQ0xLX01BWCAlIDEwMDAwMDApICsgNTAwMDApIC8gMTAwMDAwCisJCUNPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4gLyAxMDAwMDAwLAorCQkoKENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4gJSAxMDAwMDAwKSArIDUwMDAwKSAvIDEwMDAwMCwKKwkJQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWCAvIDEwMDAwMDAsCisJCSgoQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWCAlIDEwMDAwMDApICsgNTAwMDApIC8gMTAwMDAwCiAJKTsKICNlbHNlCiAJcHJpbnRmICgiIGF0ICVzIE1IejogIiwgc3RybWh6IChidWYsIGNsb2NrKSk7CkBAIC0zNzUsNyArMzc1LDcgQEAKIAogaW50IGNoZWNraWNhY2hlICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbWVtY3RsOHh4X3QgKm1lbWN0bCA9ICZpbW1hcC0+aW1fbWVtY3RsOwogCXUzMiBjYWNoZW9uID0gcmRfaWNfY3N0ICgpICYgSURDX0VOQUJMRUQ7CiAKQEAgLTQyMiw3ICs0MjIsNyBAQAogCiBpbnQgY2hlY2tkY2FjaGUgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAJdTMyIGNhY2hlb24gPSByZF9kY19jc3QgKCkgJiBJRENfRU5BQkxFRDsKIApAQCAtNDYyLDcgKzQ2Miw3IEBACiB7CiAJdWludCBpOwogCXVpbnQgYWRkciA9IDA7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbWFwLT5pbV9tZW1jdGw7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CkBAIC00ODAsNyArNDgwLDcgQEAKIHsKIAl1bG9uZyBtc3IsIGFkZHI7CiAKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tYXAtPmltX2Nsa3JzdC5jYXJfcGxwcmNyIHw9IFBMUFJDUl9DU1I7CS8qIENoZWNrc3RvcCBSZXNldCBlbmFibGUgKi8KIApAQCAtNDk1LDE2ICs0OTUsMTYgQEAKIAkgKiBUcnlpbmcgdG8gZXhlY3V0ZSB0aGUgbmV4dCBpbnN0cnVjdGlvbiBhdCBhIG5vbi1leGlzdGluZyBhZGRyZXNzCiAJICogc2hvdWxkIGNhdXNlIGEgbWFjaGluZSBjaGVjaywgcmVzdWx0aW5nIGluIHJlc2V0CiAJICovCi0jaWZkZWYgQ0ZHX1JFU0VUX0FERFJFU1MKLQlhZGRyID0gQ0ZHX1JFU0VUX0FERFJFU1M7CisjaWZkZWYgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCisJYWRkciA9IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUzsKICNlbHNlCiAJLyoKLQkgKiBub3RlOiB3aGVuIENGR19NT05JVE9SX0JBU0UgcG9pbnRzIHRvIGEgUkFNIGFkZHJlc3MsIENGR19NT05JVE9SX0JBU0UKKwkgKiBub3RlOiB3aGVuIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIHBvaW50cyB0byBhIFJBTSBhZGRyZXNzLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRQogCSAqIC0gc2l6ZW9mICh1bG9uZykgaXMgdXN1YWxseSBhIHZhbGlkIGFkZHJlc3MuIEJldHRlciBwaWNrIGFuIGFkZHJlc3MKLQkgKiBrbm93biB0byBiZSBpbnZhbGlkIG9uIHlvdXIgc3lzdGVtIGFuZCBhc3NpZ24gaXQgdG8gQ0ZHX1JFU0VUX0FERFJFU1MuCisJICoga25vd24gdG8gYmUgaW52YWxpZCBvbiB5b3VyIHN5c3RlbSBhbmQgYXNzaWduIGl0IHRvIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUy4KIAkgKiAiKHVsb25nKS0xIiB1c2VkIHRvIGJlIGEgZ29vZCBjaG9pY2UgZm9yIG1hbnkgc3lzdGVtcy4uLgogCSAqLwotCWFkZHIgPSBDRkdfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CisJYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CiAjZW5kaWYKIAkoKHZvaWQgKCopKHZvaWQpKSBhZGRyKSAoKTsKIAlyZXR1cm4gMTsKQEAgLTUyNSw3ICs1MjUsNyBAQAogCWRpc2FibGVfaW50ZXJydXB0cyAoKTsKIAogCS8qIG1ha2Ugc3VyZSB0aGUgd2F0Y2hkb2cgaXMgcnVubmluZyAqLwotCXJlc2V0Xzh4eF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ0ZHX0lNTVIpOworCXJlc2V0Xzh4eF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKTsKIAogCS8qIHdhaXQgZm9yIHdhdGNoZG9nIHJlc2V0ICovCiAJd2hpbGUgKDEpIHt9OwpAQCAtNTkxLDcgKzU5MSw3IEBACiB7CiAJaW50IHJlX2VuYWJsZSA9IGRpc2FibGVfaW50ZXJydXB0cyAoKTsKIAotCXJlc2V0Xzh4eF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ0ZHX0lNTVIpOworCXJlc2V0Xzh4eF93YXRjaGRvZyAoKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SKTsKIAlpZiAocmVfZW5hYmxlKQogCQllbmFibGVfaW50ZXJydXB0cyAoKTsKIH0KZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvY3B1X2luaXQuYyBiL2NwdS9tcGM4eHgvY3B1X2luaXQuYwppbmRleCA1YzQzZWNhLi5lYjAwOTFiIDEwMDY0NAotLS0gYS9jcHUvbXBjOHh4L2NwdV9pbml0LmMKKysrIGIvY3B1L21wYzh4eC9jcHVfaW5pdC5jCkBAIC0yNywxMiArMjcsMTIgQEAKICNpbmNsdWRlIDxtcGM4eHguaD4KICNpbmNsdWRlIDxjb21tcHJvYy5oPgogCi0jaWYgZGVmaW5lZChDRkdfUlRDU0MpIHx8IGRlZmluZWQoQ0ZHX1JNRFMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JUQ1NDKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfUk1EUykKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19JMkNfVUNPREVfUEFUQ0gpIHx8IGRlZmluZWQoQ0ZHX1NQSV9VQ09ERV9QQVRDSCkgfHwgXAotICAgIGRlZmluZWQoQ0ZHX1NNQ19VQ09ERV9QQVRDSCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX1VDT0RFX1BBVENIKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENIKSB8fCBcCisgICAgZGVmaW5lZChDT05GSUdfU1lTX1NNQ19VQ09ERV9QQVRDSCkKIHZvaWQgY3BtX2xvYWRfcGF0Y2ggKHZvbGF0aWxlIGltbWFwX3QgKiBpbW1yKTsKICNlbmRpZgogCkBAIC00Nyw3ICs0Nyw3IEBACiB7CiAjaWZuZGVmIENPTkZJR19NQlgKIAl2b2xhdGlsZSBtZW1jdGw4eHhfdCAqbWVtY3RsID0gJmltbXItPmltX21lbWN0bDsKLSMgaWZkZWYgQ0ZHX1BMUFJDUgorIyBpZmRlZiBDT05GSUdfU1lTX1BMUFJDUgogCXVsb25nIG1mbWFzazsKICMgZW5kaWYKICNlbmRpZgpAQCAtNTUsNyArNTUsNyBAQAogCiAJLyogU1lQQ1IgLSBjb250YWlucyB3YXRjaGRvZyBjb250cm9sICgxMS05KSAqLwogCi0JaW1tci0+aW1fc2l1X2NvbmYuc2Nfc3lwY3IgPSBDRkdfU1lQQ1I7CisJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc3lwY3IgPSBDT05GSUdfU1lTX1NZUENSOwogCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCiAJcmVzZXRfOHh4X3dhdGNoZG9nIChpbW1yKTsKQEAgLTYzLDI3ICs2MywyNyBAQAogCiAJLyogU0lVTUNSIC0gY29udGFpbnMgZGVidWcgcGluIGNvbmZpZ3VyYXRpb24gKDExLTYpICovCiAjaWZuZGVmIENPTkZJR19TVk1fU0M4eHgKLQlpbW1yLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgfD0gQ0ZHX1NJVU1DUjsKKwlpbW1yLT5pbV9zaXVfY29uZi5zY19zaXVtY3IgfD0gQ09ORklHX1NZU19TSVVNQ1I7CiAjZWxzZQotCWltbXItPmltX3NpdV9jb25mLnNjX3NpdW1jciA9IENGR19TSVVNQ1I7CisJaW1tci0+aW1fc2l1X2NvbmYuc2Nfc2l1bWNyID0gQ09ORklHX1NZU19TSVVNQ1I7CiAjZW5kaWYKIAkvKiBpbml0aWFsaXplIHRpbWViYXNlIHN0YXR1cyBhbmQgY29udHJvbCByZWdpc3RlciAoMTEtMjYpICovCiAJLyogdW5sb2NrIFRCU0NSSyAqLwogCiAJaW1tci0+aW1fc2l0ay5zaXRrX3Ric2NyayA9IEtBUFdSX0tFWTsKLQlpbW1yLT5pbV9zaXQuc2l0X3Ric2NyID0gQ0ZHX1RCU0NSOworCWltbXItPmltX3NpdC5zaXRfdGJzY3IgPSBDT05GSUdfU1lTX1RCU0NSOwogCiAJLyogaW5pdGlhbGl6ZSB0aGUgUElUICgxMS0zMSkgKi8KIAogCWltbXItPmltX3NpdGsuc2l0a19waXNjcmsgPSBLQVBXUl9LRVk7Ci0JaW1tci0+aW1fc2l0LnNpdF9waXNjciA9IENGR19QSVNDUjsKKwlpbW1yLT5pbV9zaXQuc2l0X3Bpc2NyID0gQ09ORklHX1NZU19QSVNDUjsKIAogCS8qIFN5c3RlbSBpbnRlZ3JhdGlvbiB0aW1lcnMuIERvbid0IGNoYW5nZSBFQkRGISAoMTUtMjcpICovCiAKIAlpbW1yLT5pbV9jbGtyc3RrLmNhcmtfc2NjcmsgPSBLQVBXUl9LRVk7CiAJcmVnID0gaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyOwogCXJlZyAmPSBTQ0NSX01BU0s7Ci0JcmVnIHw9IENGR19TQ0NSOworCXJlZyB8PSBDT05GSUdfU1lTX1NDQ1I7CiAJaW1tci0+aW1fY2xrcnN0LmNhcl9zY2NyID0gcmVnOwogCiAJLyogUExMIChDUFUgY2xvY2spIHNldHRpbmdzICgxNS0zMCkgKi8KQEAgLTkyLDI1ICs5MiwyNSBAQAogCiAjaWZuZGVmIENPTkZJR19NQlgJCS8qIE1CWCBib2FyZCBkb2VzIHRoaW5ncyBkaWZmZXJlbnQgKi8KIAotCS8qIElmIENGR19QTFBSQ1IgKHNldCBpbiB0aGUgdmFyaW91cyAqX2NvbmZpZy5oIGZpbGVzKSB0cmllcyB0bwotCSAqIHNldCB0aGUgTUYgZmllbGQsIHRoZW4ganVzdCBjb3B5IENGR19QTFBSQ1Igb3ZlciBjYXJfcGxwcmNyLAotCSAqIG90aGVyd2lzZSBPUiBpbiBDRkdfUExQUkNSIHNvIHdlIGRvIG5vdCBjaGFuZ2UgdGhlIGN1cnJlbnQgTUYKKwkvKiBJZiBDT05GSUdfU1lTX1BMUFJDUiAoc2V0IGluIHRoZSB2YXJpb3VzICpfY29uZmlnLmggZmlsZXMpIHRyaWVzIHRvCisJICogc2V0IHRoZSBNRiBmaWVsZCwgdGhlbiBqdXN0IGNvcHkgQ09ORklHX1NZU19QTFBSQ1Igb3ZlciBjYXJfcGxwcmNyLAorCSAqIG90aGVyd2lzZSBPUiBpbiBDT05GSUdfU1lTX1BMUFJDUiBzbyB3ZSBkbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50IE1GCiAJICogZmllbGQgdmFsdWUuCiAJICoKIAkgKiBGb3IgbmV3ZXIgKHN0YXJ0aW5nIE1QQzg2NikgY2hpcHMgUExQUkNSIGxheW91dCBpcyBkaWZmZXJlbnQuCiAJICovCi0jaWZkZWYgQ0ZHX1BMUFJDUgorI2lmZGVmIENPTkZJR19TWVNfUExQUkNSCiAJaWYgKGdldF9pbW1yKDB4RkZGRikgPj0gTVBDOHh4X05FV19DTEspCiAJICAgbWZtYXNrID0gUExQUkNSX01GQUNUX01TSzsKIAllbHNlCiAJICAgbWZtYXNrID0gUExQUkNSX01GX01TSzsKIAotCWlmICgoQ0ZHX1BMUFJDUiAmIG1mbWFzaykgIT0gMCkKLQkgICByZWcgPSBDRkdfUExQUkNSOwkJCS8qIHJlc2V0IGNvbnRyb2wgYml0cyAgICovCisJaWYgKChDT05GSUdfU1lTX1BMUFJDUiAmIG1mbWFzaykgIT0gMCkKKwkgICByZWcgPSBDT05GSUdfU1lTX1BMUFJDUjsJCQkvKiByZXNldCBjb250cm9sIGJpdHMgICAqLwogCWVsc2UgewogCSAgIHJlZyA9IGltbXItPmltX2Nsa3JzdC5jYXJfcGxwcmNyOwogCSAgIHJlZyAmPSBtZm1hc2s7CQkJLyogaXNvbGF0ZSBNRi1yZWxhdGVkIGZpZWxkcyAqLwotCSAgIHJlZyB8PSBDRkdfUExQUkNSOwkJCS8qIHJlc2V0IGNvbnRyb2wgYml0cyAgICovCisJICAgcmVnIHw9IENPTkZJR19TWVNfUExQUkNSOwkJCS8qIHJlc2V0IGNvbnRyb2wgYml0cyAgICovCiAJfQogCWltbXItPmltX2Nsa3JzdC5jYXJfcGxwcmNyID0gcmVnOwogI2VuZGlmCkBAIC0xMzAsMjAgKzEzMCwyMCBAQAogCSAqIHdoZW4gRkxBU0ggc2l6ZSBoYXMgYmVlbiBkZXRlcm1pbmVkCiAJICoKIAkgKiBEZXBlbmRpbmcgb24gdGhlIHNpemUgb2YgdGhlIG1lbW9yeSByZWdpb24gZGVmaW5lZCBieQotCSAqIENGR19PUjBfUkVNQVAgc29tZSBib2FyZHMgKHdpZGUgYWRkcmVzcyBtYXNrKSBhbGxvdyB0byBtYXAgdGhlCi0JICogQ0ZHX01PTklUT1JfQkFTRSwgd2hpbGUgb3RoZXJzIChuYXJyb3dlciBhZGRyZXNzIG1hc2spIGNhbid0Ci0JICogbWFwIENGR19NT05JVE9SX0JBU0UuCisJICogQ09ORklHX1NZU19PUjBfUkVNQVAgc29tZSBib2FyZHMgKHdpZGUgYWRkcmVzcyBtYXNrKSBhbGxvdyB0byBtYXAgdGhlCisJICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UsIHdoaWxlIG90aGVycyAobmFycm93ZXIgYWRkcmVzcyBtYXNrKSBjYW4ndAorCSAqIG1hcCBDT05GSUdfU1lTX01PTklUT1JfQkFTRS4KIAkgKgotCSAqIEZvciBleGFtcGxlLCBmb3IgQ09ORklHX0lWTVM4LCB0aGUgQ0ZHX01PTklUT1JfQkFTRSBpcwotCSAqIDB4ZmYwMDAwMDAsIGJ1dCBDRkdfT1IwX1JFTUFQJ3MgYWRkcmVzcyBtYXNrIGlzIDB4ZmZmODAwMDAuCisJICogRm9yIGV4YW1wbGUsIGZvciBDT05GSUdfSVZNUzgsIHRoZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSBpcworCSAqIDB4ZmYwMDAwMDAsIGJ1dCBDT05GSUdfU1lTX09SMF9SRU1BUCdzIGFkZHJlc3MgbWFzayBpcyAweGZmZjgwMDAwLgogCSAqCiAJICogSWYgQlIwIHdhc24ndCBsb2FkZWQgd2l0aCBhZGRyZXNzIGJhc2UgMHhmZjAwMDAwMCwgdGhlbiBCUjAncwogCSAqIGJhc2UgYWRkcmVzcyByZW1haW5zIGFzIDB4MDAwMDAwMDAuIEhvd2V2ZXIsIHRoZSBhZGRyZXNzIG1hc2sKLQkgKiBoYXZlIGJlZW4gbmFycm93ZWQgdG8gNTEyS2IsIHNvIENGR19NT05JVE9SX0JBU0Ugd2Fzbid0IG1hcHBlZAorCSAqIGhhdmUgYmVlbiBuYXJyb3dlZCB0byA1MTJLYiwgc28gQ09ORklHX1NZU19NT05JVE9SX0JBU0Ugd2Fzbid0IG1hcHBlZAogCSAqIGludG8gdGhlIEJhbmswLgogCSAqCiAJICogVGhpcyBpcyB3aHkgQ09ORklHX0lWTVM4IGFuZCBzaW1pbGFyIGJvYXJkcyBtdXN0IGxvYWQgQlIwIHdpdGgKLQkgKiBDRkdfQlIwX1BSRUxJTSBpbiBhZHZhbmNlLgorCSAqIENPTkZJR19TWVNfQlIwX1BSRUxJTSBpbiBhZHZhbmNlLgogCSAqCiAJICogW1RoYW5rcyB0byBNaWNoYWVsIExpYW8gZm9yIHRoaXMgZXhwbGFuYXRpb24uCiAJICogIEkgb3dlIGhpbSBhIGZyZWUgYmVlci4gLSB3ZF0KQEAgLTE2NSw2MCArMTY1LDYwIEBACiAgICAgZGVmaW5lZChDT05GSUdfU1BDMTkyMCkJfHwgXAogICAgIGRlZmluZWQoQ09ORklHX1NQRDgyM1RTKQogCi0JbWVtY3RsLT5tZW1jX2JyMCA9IENGR19CUjBfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjAgPSBDT05GSUdfU1lTX0JSMF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SMF9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3IwID0gQ0ZHX09SMF9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IwX1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SMF9SRU1BUDsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX09SMV9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3IxID0gQ0ZHX09SMV9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IxX1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjEgPSBDT05GSUdfU1lTX09SMV9SRU1BUDsKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX09SNV9SRU1BUCkKLQltZW1jdGwtPm1lbWNfb3I1ID0gQ0ZHX09SNV9SRU1BUDsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1JFTUFQKQorCW1lbWN0bC0+bWVtY19vcjUgPSBDT05GSUdfU1lTX09SNV9SRU1BUDsKICNlbmRpZgogCiAJLyogbm93IHJlc3RyaWN0IHRvIHByZWxpbWluYXJ5IHJhbmdlICovCi0JbWVtY3RsLT5tZW1jX2JyMCA9IENGR19CUjBfUFJFTElNOwotCW1lbWN0bC0+bWVtY19vcjAgPSBDRkdfT1IwX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIwID0gQ09ORklHX1NZU19CUjBfUFJFTElNOworCW1lbWN0bC0+bWVtY19vcjAgPSBDT05GSUdfU1lTX09SMF9QUkVMSU07CiAKLSNpZiAoZGVmaW5lZChDRkdfT1IxX1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlIxX1BSRUxJTSkpCi0JbWVtY3RsLT5tZW1jX29yMSA9IENGR19PUjFfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjEgPSBDRkdfQlIxX1BSRUxJTTsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX09SMV9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjFfUFJFTElNKSkKKwltZW1jdGwtPm1lbWNfb3IxID0gQ09ORklHX1NZU19PUjFfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjEgPSBDT05GSUdfU1lTX0JSMV9QUkVMSU07CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0lQODYwKSAvKiBkaXNhYmxlIENTMCBub3cgdGhhdCBGbGFzaCBpcyBtYXBwZWQgb24gQ1MxICovCiAJbWVtY3RsLT5tZW1jX2JyMCA9IDA7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SMl9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSMl9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yMiA9IENGR19PUjJfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjIgPSBDRkdfQlIyX1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1IyX1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSMl9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yMiA9IENPTkZJR19TWVNfT1IyX1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnIyID0gQ09ORklHX1NZU19CUjJfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjNfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjNfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjMgPSBDRkdfT1IzX1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnIzID0gQ0ZHX0JSM19QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SM19QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjNfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjMgPSBDT05GSUdfU1lTX09SM19QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyMyA9IENPTkZJR19TWVNfQlIzX1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1I0X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlI0X1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3I0ID0gQ0ZHX09SNF9QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyNCA9IENGR19CUjRfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjRfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlI0X1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3I0ID0gQ09ORklHX1NZU19PUjRfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjQgPSBDT05GSUdfU1lTX0JSNF9QUkVMSU07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX09SNV9QUkVMSU0pICYmIGRlZmluZWQoQ0ZHX0JSNV9QUkVMSU0pCi0JbWVtY3RsLT5tZW1jX29yNSA9IENGR19PUjVfUFJFTElNOwotCW1lbWN0bC0+bWVtY19icjUgPSBDRkdfQlI1X1BSRUxJTTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfT1I1X1BSRUxJTSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0JSNV9QUkVMSU0pCisJbWVtY3RsLT5tZW1jX29yNSA9IENPTkZJR19TWVNfT1I1X1BSRUxJTTsKKwltZW1jdGwtPm1lbWNfYnI1ID0gQ09ORklHX1NZU19CUjVfUFJFTElNOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19PUjZfUFJFTElNKSAmJiBkZWZpbmVkKENGR19CUjZfUFJFTElNKQotCW1lbWN0bC0+bWVtY19vcjYgPSBDRkdfT1I2X1BSRUxJTTsKLQltZW1jdGwtPm1lbWNfYnI2ID0gQ0ZHX0JSNl9QUkVMSU07CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX09SNl9QUkVMSU0pICYmIGRlZmluZWQoQ09ORklHX1NZU19CUjZfUFJFTElNKQorCW1lbWN0bC0+bWVtY19vcjYgPSBDT05GSUdfU1lTX09SNl9QUkVMSU07CisJbWVtY3RsLT5tZW1jX2JyNiA9IENPTkZJR19TWVNfQlI2X1BSRUxJTTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfT1I3X1BSRUxJTSkgJiYgZGVmaW5lZChDRkdfQlI3X1BSRUxJTSkKLQltZW1jdGwtPm1lbWNfb3I3ID0gQ0ZHX09SN19QUkVMSU07Ci0JbWVtY3RsLT5tZW1jX2JyNyA9IENGR19CUjdfUFJFTElNOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19PUjdfUFJFTElNKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfQlI3X1BSRUxJTSkKKwltZW1jdGwtPm1lbWNfb3I3ID0gQ09ORklHX1NZU19PUjdfUFJFTElNOworCW1lbWN0bC0+bWVtY19icjcgPSBDT05GSUdfU1lTX0JSN19QUkVMSU07CiAjZW5kaWYKIAogI2VuZGlmIC8qICEgQ09ORklHX01CWCAqLwpAQCAtMjQ5LDEzICsyNDksMTMgQEAKIAlycHhsaXRlX2luaXQgKCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19SQ0NSCQkJLyogbXVzdCBiZSBkb25lIGJlZm9yZSBjcG1fbG9hZF9wYXRjaCgpICovCisjaWZkZWYgQ09ORklHX1NZU19SQ0NSCQkJLyogbXVzdCBiZSBkb25lIGJlZm9yZSBjcG1fbG9hZF9wYXRjaCgpICovCiAJLyogd3JpdGUgY29uZmlnIHZhbHVlICovCi0JaW1tci0+aW1fY3BtLmNwX3JjY3IgPSBDRkdfUkNDUjsKKwlpbW1yLT5pbV9jcG0uY3BfcmNjciA9IENPTkZJR19TWVNfUkNDUjsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfSTJDX1VDT0RFX1BBVENIKSB8fCBkZWZpbmVkKENGR19TUElfVUNPREVfUEFUQ0gpIHx8IFwKLSAgICBkZWZpbmVkKENGR19TTUNfVUNPREVfUEFUQ0gpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19VQ09ERV9QQVRDSCkgfHwgZGVmaW5lZChDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSCkgfHwgXAorICAgIGRlZmluZWQoQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gpCiAJY3BtX2xvYWRfcGF0Y2ggKGltbXIpOwkvKiBsb2FkIG1wYzh4eCAgbWljcm9jb2RlIHBhdGNoICovCiAjZW5kaWYKIH0KQEAgLTI2NSwyMSArMjY1LDIxIEBACiAgKi8KIGludCBjcHVfaW5pdF9yICh2b2lkKQogewotI2lmIGRlZmluZWQoQ0ZHX1JUQ1NDKSB8fCBkZWZpbmVkKENGR19STURTKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SVENTQykgfHwgZGVmaW5lZChDT05GSUdfU1lTX1JNRFMpCiAJYmRfdCAqYmQgPSBnZC0+YmQ7CiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9ICh2b2xhdGlsZSBpbW1hcF90ICopIChiZC0+YmlfaW1tcl9iYXNlKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1JUQ1NDCisjaWZkZWYgQ09ORklHX1NZU19SVENTQwogCS8qIFVubG9jayBSVFNDIHJlZ2lzdGVyICovCiAJaW1tci0+aW1fc2l0ay5zaXRrX3J0Y3NjayA9IEtBUFdSX0tFWTsKIAkvKiB3cml0ZSBjb25maWcgdmFsdWUgKi8KLQlpbW1yLT5pbV9zaXQuc2l0X3J0Y3NjID0gQ0ZHX1JUQ1NDOworCWltbXItPmltX3NpdC5zaXRfcnRjc2MgPSBDT05GSUdfU1lTX1JUQ1NDOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfUk1EUworI2lmZGVmIENPTkZJR19TWVNfUk1EUwogCS8qIHdyaXRlIGNvbmZpZyB2YWx1ZSAqLwotCWltbXItPmltX2NwbS5jcF9ybWRzID0gQ0ZHX1JNRFM7CisJaW1tci0+aW1fY3BtLmNwX3JtZHMgPSBDT05GSUdfU1lTX1JNRFM7CiAjZW5kaWYKIAlyZXR1cm4gKDApOwogfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzh4eC9mZWMuYyBiL2NwdS9tcGM4eHgvZmVjLmMKaW5kZXggMzdlYjQ4MS4uMTQxNDI1ZCAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9mZWMuYworKysgYi9jcHUvbXBjOHh4L2ZlYy5jCkBAIC00MCw3ICs0MCw3IEBACiAjZW5kaWYKIAogLyogZGVmaW5lIFdBTlRfTUlJIHdoZW4gTUlJIHN1cHBvcnQgaXMgcmVxdWlyZWQgKi8KLSNpZiBkZWZpbmVkKENGR19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX0ZFQzFfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19GRUMyX1BIWSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKSB8fCBkZWZpbmVkKENPTkZJR19GRUMxX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfRkVDMl9QSFkpCiAjZGVmaW5lIFdBTlRfTUlJCiAjZWxzZQogI3VuZGVmIFdBTlRfTUlJCkBAIC01OSw3ICs1OSw3IEBACiAjZXJyb3IgUk1JSSBzdXBwb3J0IGlzIHVudXNhYmxlIHdpdGhvdXQgYSB3b3JraW5nIFBIWS4KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI2lmZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiBzdGF0aWMgaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldik7CiAjZW5kaWYKIApAQCAtMTk3LDcgKzE5Nyw3IEBACiB7CiAJaW50IGosIHJjOwogCXN0cnVjdCBldGhlcl9mY2NfaW5mb19zICplZmlzID0gZGV2LT5wcml2OwotCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENGR19JTU1SICsgZWZpcy0+ZmVjcF9vZmZzZXQpOworCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENPTkZJR19TWVNfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKIAogCS8qIHNlY3Rpb24gMTYuOS4yMy4zCiAJICogV2FpdCBmb3IgcmVhZHkKQEAgLTI0OCw3ICsyNDgsNyBAQAogewogCXN0cnVjdCBldGhlcl9mY2NfaW5mb19zICplZmlzID0gZGV2LT5wcml2OwogCXZvbGF0aWxlIGZlY190ICpmZWNwID0KLQkJKHZvbGF0aWxlIGZlY190ICopIChDRkdfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKKwkJKHZvbGF0aWxlIGZlY190ICopIChDT05GSUdfU1lTX0lNTVIgKyBlZmlzLT5mZWNwX29mZnNldCk7CiAJaW50IGxlbmd0aDsKIAogCWZvciAoOzspIHsKQEAgLTMzOSw3ICszMzksNyBAQAogCWlmICgodW5zaWduZWQgaW50KWZlY2lkeCA+PSAyKQogCQloYW5nKCk7CiAKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9jcHRyIHw9ICBtYXNrOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9jcHRyIHw9ICBtYXNrOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmVjXzEwME1icHMoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKQEAgLTM1MSw3ICszNTEsNyBAQAogCWlmICgodW5zaWduZWQgaW50KWZlY2lkeCA+PSAyKQogCQloYW5nKCk7CiAKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9jcHRyICY9IH5tYXNrOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9jcHRyICY9IH5tYXNrOwogfQogCiAjZW5kaWYKQEAgLTM1OSw3ICszNTksNyBAQAogc3RhdGljIGlubGluZSB2b2lkIGZlY19mdWxsX2R1cGxleChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBldGhlcl9mY2NfaW5mb19zICplZmlzID0gZGV2LT5wcml2OwotCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENGR19JTU1SICsgZWZpcy0+ZmVjcF9vZmZzZXQpOworCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENPTkZJR19TWVNfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKIAogCWZlY3AtPmZlY19yX2NudHJsICY9IH5GRUNfUkNOVFJMX0RSVDsKIAlmZWNwLT5mZWNfeF9jbnRybCB8PSAgRkVDX1RDTlRSTF9GREVOOwkvKiBGRCBlbmFibGUgKi8KQEAgLTM2OCw3ICszNjgsNyBAQAogc3RhdGljIGlubGluZSB2b2lkIGZlY19oYWxmX2R1cGxleChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBldGhlcl9mY2NfaW5mb19zICplZmlzID0gZGV2LT5wcml2OwotCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENGR19JTU1SICsgZWZpcy0+ZmVjcF9vZmZzZXQpOworCXZvbGF0aWxlIGZlY190ICpmZWNwID0gKHZvbGF0aWxlIGZlY190ICopKENPTkZJR19TWVNfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKIAogCWZlY3AtPmZlY19yX2NudHJsIHw9ICBGRUNfUkNOVFJMX0RSVDsKIAlmZWNwLT5mZWNfeF9jbnRybCAmPSB+RkVDX1RDTlRSTF9GREVOOwkvKiBGRCBkaXNhYmxlICovCkBAIC0zNzcsNyArMzc3LDcgQEAKIHN0YXRpYyB2b2lkIGZlY19waW5faW5pdChpbnQgZmVjaWR4KQogewogCWJkX3QgICAgICAgICAgICpiZCA9IGdkLT5iZDsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBmZWNfdCAqZmVjcDsKIAogCS8qCkBAIC00NzQsNyArNDc0LDcgQEAKIAkJICogQ29uZmlndXJlIHBvcnQgQSBmb3IgTUlJLgogCQkgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX0lDVTg2MikgJiYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX0lDVTg2MikgJiYgZGVmaW5lZChDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSkKIAogCQkvKgogCQkgKiBPbiB0aGUgSUNVODYyIGJvYXJkIHRoZSBNSUktTURDIHBpbiBpcyByb3V0ZWQgdG8gUEQ4IHBpbgpAQCAtNTY5LDkgKzU2OSw5IEBACiBzdGF0aWMgaW50IGZlY19pbml0IChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2LCBiZF90ICogYmQpCiB7CiAJc3RydWN0IGV0aGVyX2ZjY19pbmZvX3MgKmVmaXMgPSBkZXYtPnByaXY7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgZmVjX3QgKmZlY3AgPQotCQkodm9sYXRpbGUgZmVjX3QgKikgKENGR19JTU1SICsgZWZpcy0+ZmVjcF9vZmZzZXQpOworCQkodm9sYXRpbGUgZmVjX3QgKikgKENPTkZJR19TWVNfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKIAlpbnQgaTsKIAogCWlmIChlZmlzLT5ldGhlcl9pbmRleCA9PSAwKSB7CkBAIC02NTcsNyArNjU3LDcgQEAKIAl0eElkeCA9IDA7CiAKIAlpZiAoIXJ0eCkgewotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAkJcnR4ID0gKFJUWEJEICopIChpbW1yLT5pbV9jcG0uY3BfZHBtZW0gKwogCQkJCSBkcHJhbV9hbGxvY19hbGlnbiAoc2l6ZW9mIChSVFhCRCksIDgpKTsKICNlbHNlCkBAIC03MjEsNyArNzIxLDcgQEAKIAlmZWNwLT5mZWNfZWNudHJsID0gRkVDX0VDTlRSTF9QSU5NVVggfCBGRUNfRUNOVFJMX0VUSEVSX0VOOwogCiAJaWYgKGVmaXMtPnBoeV9hZGRyID09IC0xKSB7Ci0jaWZkZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI2lmZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAJCS8qCiAJCSAqIHdhaXQgZm9yIHRoZSBQSFkgdG8gd2FrZSB1cCBhZnRlciByZXNldAogCQkgKi8KQEAgLTc3Miw3ICs3NzIsNyBAQAogc3RhdGljIHZvaWQgZmVjX2hhbHQoc3RydWN0IGV0aF9kZXZpY2UqIGRldikKIHsKIAlzdHJ1Y3QgZXRoZXJfZmNjX2luZm9fcyAqZWZpcyA9IGRldi0+cHJpdjsKLQl2b2xhdGlsZSBmZWNfdCAqZmVjcCA9ICh2b2xhdGlsZSBmZWNfdCAqKShDRkdfSU1NUiArIGVmaXMtPmZlY3Bfb2Zmc2V0KTsKKwl2b2xhdGlsZSBmZWNfdCAqZmVjcCA9ICh2b2xhdGlsZSBmZWNfdCAqKShDT05GSUdfU1lTX0lNTVIgKyBlZmlzLT5mZWNwX29mZnNldCk7CiAJaW50IGk7CiAKIAkvKiBhdm9pZCBoYWx0IGlmIGluaXRpYWxpemVkOyBtaWkgZ2V0cyBzdHVjayBvdGhlcndpc2UgKi8KQEAgLTgwMSw3ICs4MDEsNyBAQAogCWVmaXMtPmluaXRpYWxpemVkID0gMDsKIH0KIAotI2lmIGRlZmluZWQoQ0ZHX0RJU0NPVkVSX1BIWSkgfHwgZGVmaW5lZChDT05GSUdfTUlJKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpIHx8IGRlZmluZWQoQ09ORklHX01JSSkgfHwgZGVmaW5lZChDT05GSUdfQ01EX01JSSkKIAogLyogTWFrZSBNSUkgcmVhZC93cml0ZSBjb21tYW5kcyBmb3IgdGhlIEZFQy4KICovCkBAIC04NDYsNyArODQ2LDcgQEAKIAl2b2xhdGlsZSBmZWNfdAkqZXA7CiAJaW50IGNudDsKIAotCWVwID0gJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9mZWMpOworCWVwID0gJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfZmVjKTsKIAogCWVwLT5mZWNfbWlpX2RhdGEgPSBtaWlfY21kOwkvKiBjb21tYW5kIHRvIHBoeSAqLwogCkBAIC04NjgsNyArODY4LDcgQEAKIH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfRElTQ09WRVJfUEhZKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkpCiBzdGF0aWMgaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldikKIHsKICNkZWZpbmUgTUFYX1BIWV9QQVNTRVMgMTEKQEAgLTkzNyw3ICs5MzcsNyBAQAogCX0KIAlyZXR1cm4gcGh5YWRkcjsKIH0KLSNlbmRpZgkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjZW5kaWYJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogI2lmIChkZWZpbmVkKENPTkZJR19NSUkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpKSAmJiAhZGVmaW5lZChDT05GSUdfQklUQkFOR01JSSkKIApAQCAtOTQ4LDcgKzk0OCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIF9fbWlpX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBmZWNfdCAqZmVjcCA9ICYoaW1tci0+aW1fY3BtLmNwX2ZlYyk7CiAKIAlpZiAoZmVjX3Jlc2V0KGZlY3ApIDwgMCkKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvaTJjLmMgYi9jcHUvbXBjOHh4L2kyYy5jCmluZGV4IGYwNWI2NjYuLjI5YzdjNzEgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvaTJjLmMKKysrIGIvY3B1L21wYzh4eC9pMmMuYwpAQCAtNDUsMTIgKzQ1LDEyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXQgZGVmYXVsdCB2YWx1ZXMKICAqLwotI2lmbmRlZglDRkdfSTJDX1NQRUVECi0jZGVmaW5lCUNGR19JMkNfU1BFRUQJNTAwMDAKKyNpZm5kZWYJQ09ORklHX1NZU19JMkNfU1BFRUQKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU1BFRUQJNTAwMDAKICNlbmRpZgogCi0jaWZuZGVmCUNGR19JMkNfU0xBVkUKLSNkZWZpbmUJQ0ZHX0kyQ19TTEFWRQkweEZFCisjaWZuZGVmCUNPTkZJR19TWVNfSTJDX1NMQVZFCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NMQVZFCTB4RkUKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCkBAIC0xNjIsNyArMTYyLDcgQEAKIHN0YXRpYyBpbnQKIGkyY19zZXRyYXRlIChpbnQgaHosIGludCBzcGVlZCkKIHsKLQlpbW1hcF90CQkqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1hcF90CQkqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgaTJjOHh4X3QgKmkyYyA9IChpMmM4eHhfdCAqKSAmIGltbWFwLT5pbV9pMmM7CiAJaW50CQlicmd2YWwsCiAJCQltb2R2YWwsCQkvKiAwLTMgKi8KQEAgLTIwNyw3ICsyMDcsNyBAQAogdm9pZAogaTJjX2luaXQoaW50IHNwZWVkLCBpbnQgc2xhdmVhZGRyKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gKGNwbTh4eF90ICopJmltbWFwLT5pbV9jcG07CiAJdm9sYXRpbGUgaTJjOHh4X3QgKmkyYwk9IChpMmM4eHhfdCAqKSZpbW1hcC0+aW1faTJjOwogCXZvbGF0aWxlIGlpY190ICppaXAgPSAoaWljX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9JSUNdOwpAQCAtMjE1LDIxICsyMTUsMjEgQEAKIAl2b2xhdGlsZSBJMkNfQkQgKnJ4YmQsICp0eGJkOwogCXVpbnQgZHBhZGRyOwogCi0jaWZkZWYgQ0ZHX0kyQ19JTklUX0JPQVJECisjaWZkZWYgQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRAogCS8qIGNhbGwgYm9hcmQgc3BlY2lmaWMgaTJjIGJ1cyByZXNldCByb3V0aW5lIGJlZm9yZSBhY2Nlc3NpbmcgdGhlICAgKi8KIAkvKiBlbnZpcm9ubWVudCwgd2hpY2ggbWlnaHQgYmUgaW4gYSBjaGlwIG9uIHRoYXQgYnVzLiBGb3IgZGV0YWlscyAgICovCiAJLyogYWJvdXQgdGhpcyBwcm9ibGVtIHNlZSBkb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucy4gICAgICAgICAgICAgICAgICAqLwogCWkyY19pbml0X2JvYXJkKCk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19JMkNfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19VQ09ERV9QQVRDSAogCWlpcCA9IChpaWNfdCAqKSZjcC0+Y3BfZHBtZW1baWlwLT5paWNfcnBiYXNlXTsKICNlbHNlCiAJLyogRGlzYWJsZSByZWxvY2F0aW9uICovCiAJaWlwLT5paWNfcnBiYXNlID0gMDsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgQ09ORklHX1NZU19BTExPQ19EUFJBTQogCWRwYWRkciA9IGlpcC0+aWljX3JiYXNlOwogCWlmIChkcGFkZHIgPT0gMCkgewogCSAgICAvKiBuZWVkIHRvIGFsbG9jYXRlIGR1YWwgcG9ydCByYW0gKi8KQEAgLTI2OSw3ICsyNjksNyBAQAogCSAqIGRpdmlkZSBCUkdDTEsgYnkgMSkKIAkgKi8KIAlQUklOVEQoKCJbSTJDXSBTZXR0aW5nIHJhdGUuLi5cbiIpKTsKLQlpMmNfc2V0cmF0ZSAoZ2QtPmNwdV9jbGssIENGR19JMkNfU1BFRUQpIDsKKwlpMmNfc2V0cmF0ZSAoZ2QtPmNwdV9jbGssIENPTkZJR19TWVNfSTJDX1NQRUVEKSA7CiAKIAkvKiBTZXQgSTJDIGNvbnRyb2xsZXIgaW4gbWFzdGVyIG1vZGUgKi8KIAlpMmMtPmkyY19pMmNvbSA9IDB4MDE7CkBAIC0yOTUsNyArMjk1LDcgQEAKIAkvKiBTZXQgbWF4aW11bSByZWNlaXZlIHNpemUuICovCiAJaWlwLT5paWNfbXJibHIgPSBJMkNfUlhUWF9MRU47CiAKLSNpZmRlZiBDRkdfSTJDX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gKIAkvKgogCSAqICBJbml0aWFsaXplIHJlcXVpcmVkIHBhcmFtZXRlcnMgaWYgdXNpbmcgbWljcm9jb2RlIHBhdGNoLgogCSAqLwpAQCAtMzE4LDEzICszMTgsMTMgQEAKIHN0YXRpYyB2b2lkCiBpMmNfbmV3aW8oaTJjX3N0YXRlX3QgKnN0YXRlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gKGNwbTh4eF90ICopJmltbWFwLT5pbV9jcG07CiAJdm9sYXRpbGUgaWljX3QgKmlpcCA9IChpaWNfdCAqKSZjcC0+Y3BfZHBhcmFtW1BST0ZGX0lJQ107CiAKIAlQUklOVEQoKCJbSTJDXSBpMmNfbmV3aW9cbiIpKTsKIAotI2lmZGVmIENGR19JMkNfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19VQ09ERV9QQVRDSAogCWlpcCA9IChpaWNfdCAqKSZjcC0+Y3BfZHBtZW1baWlwLT5paWNfcnBiYXNlXTsKICNlbmRpZgogCXN0YXRlLT5yeF9pZHggPSAwOwpAQCAtNDkyLDcgKzQ5Miw3IEBACiAKIHN0YXRpYyBpbnQgaTJjX2RvaW8oaTJjX3N0YXRlX3QgKnN0YXRlKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUiA7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiA7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gKGNwbTh4eF90ICopJmltbWFwLT5pbV9jcG07CiAJdm9sYXRpbGUgaTJjOHh4X3QgKmkyYwk9IChpMmM4eHhfdCAqKSZpbW1hcC0+aW1faTJjOwogCXZvbGF0aWxlIGlpY190ICppaXAgPSAoaWljX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9JSUNdOwpAQCAtNTAxLDcgKzUwMSw3IEBACiAKIAlQUklOVEQoKCJbSTJDXSBpMmNfZG9pb1xuIikpOwogCi0jaWZkZWYgQ0ZHX0kyQ19VQ09ERV9QQVRDSAorI2lmZGVmIENPTkZJR19TWVNfSTJDX1VDT0RFX1BBVENICiAJaWlwID0gKGlpY190ICopJmNwLT5jcF9kcG1lbVtpaXAtPmlpY19ycGJhc2VdOwogI2VuZGlmCiAKQEAgLTU5Myw3ICs1OTMsNyBAQAogCWludCByYzsKIAl1Y2hhciBidWZbMV07CiAKLQlpMmNfaW5pdChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJaTJjX25ld2lvKCZzdGF0ZSk7CiAKQEAgLTYyOCw3ICs2MjgsNyBAQAogCXhhZGRyWzJdID0gKGFkZHIgPj4gIDgpICYgMHhGRjsKIAl4YWRkclszXSA9ICBhZGRyICAgICAgICAmIDB4RkY7CiAKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKIAkvKgogCSAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMgbGlrZQogCSAqIENhdGFseXN0IDI0V0MwNC8wOC8xNiB3aGljaCBoYXMgOS8xMC8xMSBiaXRzIG9mIGFkZHJlc3MgYW5kIHRoZQpAQCAtNjM5LDcgKzYzOSw3IEBACiAJICogYmUgb25lIGJ5dGUgYmVjYXVzZSB0aGUgZXh0cmEgYWRkcmVzcyBiaXRzIGFyZSBoaWRkZW4gaW4gdGhlCiAJICogY2hpcCBhZGRyZXNzLgogCSAqLwotCSBjaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCSBjaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCiAJaTJjX25ld2lvKCZzdGF0ZSk7CkBAIC02NzgsNyArNjc4LDcgQEAKIAl4YWRkclsyXSA9IChhZGRyID4+ICA4KSAmIDB4RkY7CiAJeGFkZHJbM10gPSAgYWRkciAgICAgICAgJiAweEZGOwogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzIGxpa2UKIAkgKiBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZiBhZGRyZXNzIGFuZCB0aGUKQEAgLTY4OSw3ICs2ODksNyBAQAogCSAqIGJlIG9uZSBieXRlIGJlY2F1c2UgdGhlIGV4dHJhIGFkZHJlc3MgYml0cyBhcmUgaGlkZGVuIGluIHRoZQogCSAqIGNoaXAgYWRkcmVzcy4KIAkgKi8KLQkgY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwkgY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyk7CiAjZW5kaWYKIAogCWkyY19uZXdpbygmc3RhdGUpOwpAQCAtNzIyLDcgKzcyMiw3IEBACiB7CiAJdWNoYXIgYnVmOwogCi0JaTJjX2luaXQoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCWkyY19yZWFkKGkyY19hZGRyLCByZWcsIDEsICZidWYsIDEpOwogCkBAIC03MzIsNyArNzMyLDcgQEAKIHZvaWQKIGkyY19yZWdfd3JpdGUodWNoYXIgaTJjX2FkZHIsIHVjaGFyIHJlZywgdWNoYXIgdmFsKQogewotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAlpMmNfd3JpdGUoaTJjX2FkZHIsIHJlZywgMSwgJnZhbCwgMSk7CiB9CmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L2ludGVycnVwdHMuYyBiL2NwdS9tcGM4eHgvaW50ZXJydXB0cy5jCmluZGV4IDIwZTcwMTIuLjVkYWE2YjIgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9tcGM4eHgvaW50ZXJydXB0cy5jCkBAIC00Nyw5ICs0Nyw5IEBACiAKIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUgKHVuc2lnbmVkICpkZWNyZW1lbnRlcl9jb3VudCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAotCSpkZWNyZW1lbnRlcl9jb3VudCA9IGdldF90YmNsayAoKSAvIENGR19IWjsKKwkqZGVjcmVtZW50ZXJfY291bnQgPSBnZXRfdGJjbGsgKCkgLyBDT05GSUdfU1lTX0haOwogCiAJLyogZGlzYWJsZSBhbGwgaW50ZXJydXB0cyAqLwogCWltbXItPmltX3NpdV9jb25mLnNjX3NpbWFzayA9IDA7CkBAIC02Nyw3ICs2Nyw3IEBACiAgKi8KIHZvaWQgZXh0ZXJuYWxfaW50ZXJydXB0IChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlpbnQgaXJxOwogCXVsb25nIHNpbWFzaywgbmV3bWFzazsKIAl1bG9uZyB2ZWMsIHZfYml0OwpAQCAtMTI0LDcgKzEyNCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIGNwbV9pbnRlcnJ1cHQgKHZvaWQgKnJlZ3MpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdWludCB2ZWM7CiAKIAkvKgpAQCAtMTY1LDcgKzE2NSw3IEBACiB2b2lkIGlycV9pbnN0YWxsX2hhbmRsZXIgKGludCB2ZWMsIGludGVycnVwdF9oYW5kbGVyX3QgKiBoYW5kbGVyLAogCQkJCQkJICB2b2lkICphcmcpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpZiAoKHZlYyAmIENQTVZFQ19PRkZTRVQpICE9IDApIHsKIAkJLyogQ1BNIGludGVycnVwdCAqLwpAQCAtMjAyLDcgKzIwMiw3IEBACiAKIHZvaWQgaXJxX2ZyZWVfaGFuZGxlciAoaW50IHZlYykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWlmICgodmVjICYgQ1BNVkVDX09GRlNFVCkgIT0gMCkgewogCQkvKiBDUE0gaW50ZXJydXB0ICovCkBAIC0yMzAsNyArMjMwLDcgQEAKIAogc3RhdGljIHZvaWQgY3BtX2ludGVycnVwdF9pbml0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJLyoKIAkgKiBJbml0aWFsaXplIHRoZSBDUE0gaW50ZXJydXB0IGNvbnRyb2xsZXIuCkBAIC0yNjYsNyArMjY2LDcgQEAKICAqLwogdm9pZCB0aW1lcl9pbnRlcnJ1cHRfY3B1IChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmIDAKIAlwcmludGYgKCIqKiogVGltZXIgSW50ZXJydXB0ICoqKiAiKTsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgva2dkYi5TIGIvY3B1L21wYzh4eC9rZ2RiLlMKaW5kZXggODEyYmFhMy4uMmNjOGZlNiAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9rZ2RiLlMKKysrIGIvY3B1L21wYzh4eC9rZ2RiLlMKQEAgLTUyLDIxICs1MiwyMSBAQAogCiAJLmdsb2JsCWtnZGJfZmx1c2hfY2FjaGVfcmFuZ2UKIGtnZGJfZmx1c2hfY2FjaGVfcmFuZ2U6Ci0JbGkJcjUsQ0ZHX0NBQ0hFTElORV9TSVpFLTEKKwlsaQlyNSxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFLTEKIAlhbmRjCXIzLHIzLHI1CiAJc3ViZglyNCxyMyxyNAogCWFkZAlyNCxyNCxyNQotCXNyd2kuCXI0LHI0LENGR19DQUNIRUxJTkVfU0hJRlQKKwlzcndpLglyNCxyNCxDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAogCWJlcWxyCiAJbXRjdHIJcjQKIAltcglyNixyMwogMToJZGNic3QJMCxyMwotCWFkZGkJcjMscjMsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyMyxyMyxDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkxYgogCXN5bmMJCQkJLyogd2FpdCBmb3IgZGNic3QncyB0byBnZXQgdG8gcmFtICovCiAJbXRjdHIJcjQKIDI6CWljYmkJMCxyNgotCWFkZGkJcjYscjYsQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyNixyNixDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmRuegkyYgogCVNZTkMKIAlibHIKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvbGNkLmMgYi9jcHUvbXBjOHh4L2xjZC5jCmluZGV4IDNjNjRhOWIuLjQ0NzRlMjQgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvbGNkLmMKKysrIGIvY3B1L21wYzh4eC9sY2QuYwpAQCAtNjMsNyArNjMsNyBAQAogI2RlZmluZSBMQ0RfQlBQCUxDRF9DT0xPUjQKIAogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgNjQwLCA0ODAsIDEzMiwgOTksIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsCiAgICAgTENEX0JQUCwgMSwgMCwgMSwgMCwgIDUsIDAsIDAsIDAKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC03Niw3ICs3Niw3IEBACiAgKiAgSGl0YWNoaSBTUDE5WDAwMS0uIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMTU0LCAxMTYsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTU0LCAxMTYsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILAogICAgIExDRF9DT0xPUjgsIDEsIDAsIDEsIDAsIDAsIDAsIDAsIDAKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC04OSw3ICs4OSw3IEBACiAgKiAgTkVDIE5MNjQ0OEFDMzMtMTguIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE0NCwgMiwgMCwgMzMKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC0xMDEsNyArMTAxLDcgQEAKICAqICBORUMgTkw2NDQ4QkMyMC0wOC4gIDYuNSIsIDY0MHg0ODAuIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE0NCwgMiwgMCwgMzMKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC0xMTMsNyArMTEzLDcgQEAKICAqICBORUMgTkw2NDQ4QkMzMy01NC4gMTAuNCIsIDY0MHg0ODAuIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMjEyLCAxNTgsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0xPVywgQ0ZHX0xPVywgQ0ZHX0hJR0gsCisgICAgNjQwLCA0ODAsIDIxMiwgMTU4LCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19MT1csIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0hJR0gsCiAgICAgMywgMCwgMCwgMSwgMSwgMTQ0LCAyLCAwLCAzMwogCQkvKiB3YmwsIHZwdywgbGNkYWMsIHdiZiAqLwogfTsKQEAgLTEyNSw3ICsxMjUsNyBAQAogICogIFNIQVJQIExRMTA0VjdEUzAxLiA2LjUiLCA2NDB4NDgwLiBBY3RpdmUsIGNvbG9yLCBzaW5nbGUgc2Nhbi4KICAqLwogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgNjQwLCA0ODAsIDEzMiwgOTksIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0xPVywgQ0ZHX0xPVywgQ0ZHX0xPVywKKyAgICA2NDAsIDQ4MCwgMTMyLCA5OSwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19MT1csCiAgICAgMywgMCwgMCwgMSwgMSwgMjUsIDEsIDAsIDMzCiAJCS8qIHdibCwgdnB3LCBsY2RhYywgd2JmICovCiB9OwpAQCAtMTM4LDcgKzEzOCw3IEBACiAgKiBub3Qgc3VyZSB3aGF0IGl0IGlzLi4uLi4uLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICAzMjAsIDI0MCwgMCwgMCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILAorICAgIDMyMCwgMjQwLCAwLCAwLCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwKICAgICAzLCAwLCAwLCAxLCAxLCAxNSwgNCwgMCwgMwogfTsKICNlbmRpZiAvKiBDT05GSUdfU0hBUlBfMTZ4OSAqLwpAQCAtMTUyLDcgKzE1Miw3IEBACiAjZGVmaW5lIExDRF9ERiAxMgogCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICAzMjAsIDI0MCwgMCwgMCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICAzMjAsIDI0MCwgMCwgMCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE1LCA0LCAwLCAzCiAJCS8qIHdibCwgdnB3LCBsY2RhYywgd2JmICovCiB9OwpAQCAtMTY1LDcgKzE2NSw3IEBACiAgKiBTaGFycCBMUTY0RDM0MSBkaXNwbGF5LCA2NDB4NDgwLiBBY3RpdmUsIGNvbG9yLCBzaW5nbGUgc2Nhbi4KICAqLwogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgNjQwLCA0ODAsIDAsIDAsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0xPVywgQ0ZHX0xPVywgQ0ZHX0hJR0gsCisgICAgNjQwLCA0ODAsIDAsIDAsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19MT1csIENPTkZJR19TWVNfSElHSCwKICAgICAzLCAwLCAwLCAxLCAxLCAxMjgsIDE2LCAwLCAzMgogCQkvKiB3YmwsIHZwdywgbGNkYWMsIHdiZiAqLwogfTsKQEAgLTE3Niw3ICsxNzYsNyBAQAogICogU2hhcnAgTFEwNjVUOURSNTFVIGRpc3BsYXksIDQwMHgyNDAuIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA0MDAsIDI0MCwgMTQzLCA3OSwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILAorICAgIDQwMCwgMjQwLCAxNDMsIDc5LCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwKICAgICAzLCAwLCAwLCAxLCAxLCAyNDgsIDQsIDAsIDM1CiAJCS8qIHdibCwgdnB3LCBsY2RhYywgd2JmICovCiB9OwpAQCAtMTg4LDcgKzE4OCw3IEBACiAgKiBTaGFycCBMUTA4NFYxREcyMSBkaXNwbGF5LCA2NDB4NDgwLiBBY3RpdmUsIGNvbG9yLCBzaW5nbGUgc2Nhbi4KICAqLwogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgNjQwLCA0ODAsIDE3MSwgMTI5LCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19MT1csIENGR19MT1csIENGR19MT1csCisgICAgNjQwLCA0ODAsIDE3MSwgMTI5LCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19MT1csIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywKICAgICAzLCAwLCAwLCAxLCAxLCAxNjAsIDMsIDAsIDQ4CiAJCS8qIHdibCwgdnB3LCBsY2RhYywgd2JmICovCiB9OwpAQCAtMjAxLDcgKzIwMSw3IEBACiAgKiBITEQxMDQ1IGRpc3BsYXksIDY0MHg0ODAuIEFjdGl2ZSwgY29sb3IsIHNpbmdsZSBzY2FuLgogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMCwgMCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMCwgMCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE2MCwgMywgMCwgNDgKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC0yMTMsNyArMjEzLDcgQEAKICAqIFByaW1lIFZpZXcgVjE2QzY0NDhBQwogICovCiB2aWRpbmZvX3QgcGFuZWxfaW5mbyA9IHsKLSAgICA2NDAsIDQ4MCwgMTMwLCA5OCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLCBDRkdfTE9XLCBDRkdfSElHSCwKKyAgICA2NDAsIDQ4MCwgMTMwLCA5OCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLCBDT05GSUdfU1lTX0xPVywgQ09ORklHX1NZU19ISUdILAogICAgIDMsIDAsIDAsIDEsIDEsIDE0NCwgMiwgMCwgMzUKIAkJLyogd2JsLCB2cHcsIGxjZGFjLCB3YmYgKi8KIH07CkBAIC0yMzUsNyArMjM1LDcgQEAKIAkJCQkvKiAxIC0gIDQgZ3JleSBsZXZlbHMsIDIgYnBwICovCiAJCQkJLyogMiAtIDE2IGdyZXkgbGV2ZWxzLCA0IGJwcCAqLwogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgMzIwLCAyNDAsIDAsIDAsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLAorICAgIDMyMCwgMjQwLCAwLCAwLCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLAogICAgIE9QVFJFWF9CUFAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQKIH07CiAjZW5kaWYgLyogQ09ORklHX09QVFJFWF9CVyAqLwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAjZGVmaW5lIExDRF9ERgkJMTAKIAogdmlkaW5mb190IHBhbmVsX2luZm8gPSB7Ci0gICAgMzIwLCAyNDAsIDAsIDAsIENGR19ISUdILCBDRkdfSElHSCwgQ0ZHX0hJR0gsIENGR19ISUdILCBDRkdfTE9XLAorICAgIDMyMCwgMjQwLCAwLCAwLCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfSElHSCwgQ09ORklHX1NZU19ISUdILCBDT05GSUdfU1lTX0hJR0gsIENPTkZJR19TWVNfTE9XLAogICAgIExDRF9CUFAsICAwLCAwLCAwLCAwLCAzMywgMCwgMCwgMAogfTsKICNlbmRpZgpAQCAtMzA3LDcgKzMwNyw3IEBACiAKIHZvaWQgbGNkX2N0cmxfaW5pdCAodm9pZCAqbGNkYmFzZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsY2Q4MjNfdCAqbGNkcCA9ICZpbW1yLT5pbV9sY2Q7CiAKIAl1aW50IGxjY3J0bXA7CkBAIC0zMjAsNyArMzIwLDcgQEAKIAogI2lmZGVmIENPTkZJR19SUFhMSVRFCiAJLyogVGhpcyBpcyBzcGVjaWFsIGZvciBSUFhsaXRlX0RXIFNvZnR3YXJlIERldmVsb3BtZW50IFBsYXRmb3JtICoqW1NhbV0qKiAqLwotCXBhbmVsX2luZm8udmxfZHAgPSBDRkdfTE9XOworCXBhbmVsX2luZm8udmxfZHAgPSBDT05GSUdfU1lTX0xPVzsKICNlbmRpZgogCiAJbGNjcnRtcCAgPSBMQ0RCSVQgKExDQ1JfQk5VTV9CSVQsCkBAIC00MzYsMTQgKzQzNiwxNCBAQAogc3RhdGljIHZvaWQKIGxjZF9nZXRjb2xyZWcgKHVzaG9ydCByZWdubywgdXNob3J0ICpyZWQsIHVzaG9ydCAqZ3JlZW4sIHVzaG9ydCAqYmx1ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltbXItPmltX2NwbSk7CiAJdW5zaWduZWQgc2hvcnQgY29scmVnLCAqY21hcF9wdHI7CiAKIAljbWFwX3B0ciA9ICh1bnNpZ25lZCBzaG9ydCAqKSZjcC0+bGNkX2NtYXBbcmVnbm8gKiAyXTsKIAogCWNvbHJlZyA9ICpjbWFwX3B0cjsKLSNpZmRlZglDRkdfSU5WRVJUX0NPTE9SUworI2lmZGVmCUNPTkZJR19TWVNfSU5WRVJUX0NPTE9SUwogCWNvbHJlZyBePSAweDBGRkY7CiAjZW5kaWYKIApAQCAtNDU5LDcgKzQ1OSw3IEBACiB2b2lkCiBsY2Rfc2V0Y29scmVnICh1c2hvcnQgcmVnbm8sIHVzaG9ydCByZWQsIHVzaG9ydCBncmVlbiwgdXNob3J0IGJsdWUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gJihpbW1yLT5pbV9jcG0pOwogCXVuc2lnbmVkIHNob3J0IGNvbHJlZywgKmNtYXBfcHRyOwogCkBAIC00NjgsNyArNDY4LDcgQEAKIAljb2xyZWcgPSAoKHJlZCAgICYgMHgwRikgPDwgOCkgfAogCQkgKChncmVlbiAmIDB4MEYpIDw8IDQpIHwKIAkJICAoYmx1ZSAgJiAweDBGKSA7Ci0jaWZkZWYJQ0ZHX0lOVkVSVF9DT0xPUlMKKyNpZmRlZglDT05GSUdfU1lTX0lOVkVSVF9DT0xPUlMKIAljb2xyZWcgXj0gMHgwRkZGOwogI2VuZGlmCiAJKmNtYXBfcHRyID0gY29scmVnOwpAQCAtNDg2LDcgKzQ4Niw3IEBACiBzdGF0aWMKIHZvaWQgbGNkX2luaXRjb2xyZWdzICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW1tci0+aW1fY3BtKTsKIAl1c2hvcnQgcmVnbm87CiAKQEAgLTUwMSw3ICs1MDEsNyBAQAogCiB2b2lkIGxjZF9lbmFibGUgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgbGNkODIzX3QgKmxjZHAgPSAmaW1tci0+aW1fbGNkOwogCiAJLyogRW5hYmxlIHRoZSBMQ0QgcGFuZWwgKi8KQEAgLTUyMSw3ICs1MjEsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfTFdNT04pCiAgICAgewl1Y2hhciBjID0gcGljX3JlYWQgKDB4NjApOwotI2lmIGRlZmluZWQoQ09ORklHX0xDRCkgJiYgZGVmaW5lZChDT05GSUdfTFdNT04pICYmIChDT05GSUdfUE9TVCAmIENGR19QT1NUX1NZU01PTikKKyNpZiBkZWZpbmVkKENPTkZJR19MQ0QpICYmIGRlZmluZWQoQ09ORklHX0xXTU9OKSAmJiAoQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1lTTU9OKQogCS8qIEVuYWJsZSBMQ0QgbGF0ZXIgaW4gc3lzbW9uIHRlc3QsIG9ubHkgaWYgdGVtcGVyYXR1cmUgaXMgT0sgKi8KICNlbHNlCiAJYyB8PSAweDA3OwkvKiBQb3dlciBvbiBDQ0ZMLCBFbmFibGUgQ0NGTCwgQ2hpcCBFbmFibGUgTENEICovCkBAIC01ODYsNyArNTg2LDcgQEAKICNpZiBkZWZpbmVkIChDT05GSUdfUkJDODIzKQogdm9pZCBsY2RfZGlzYWJsZSAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBsY2Q4MjNfdCAqbGNkcCA9ICZpbW1yLT5pbV9sY2Q7CiAKICNpZiBkZWZpbmVkKENPTkZJR19MV01PTikKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvc2NjLmMgYi9jcHUvbXBjOHh4L3NjYy5jCmluZGV4IDA5YTYzNDguLmVmZmI5NjcgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvc2NjLmMKKysrIGIvY3B1L21wYzh4eC9zY2MuYwpAQCAtMTkxLDcgKzE5MSw3IEBACiAJaW50IGk7CiAJc2NjX2VuZXRfdCAqcHJhbV9wdHI7CiAKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmIGRlZmluZWQoQ09ORklHX0xXTU9OKQogCXJlc2V0X3BoeSgpOwpAQCAtMjE2LDcgKzIxNiw3IEBACiAJdHhJZHggPSAwOwogCiAJaWYgKCFydHgpIHsKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJCXJ0eCA9IChSVFhCRCAqKSAoaW1tci0+aW1fY3BtLmNwX2RwbWVtICsKIAkJCQkgZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZiAoUlRYQkQpLCA4KSk7CiAjZWxzZQpAQCAtNTUyLDcgKzU1Miw3IEBACiAKIHN0YXRpYyB2b2lkIHNjY19oYWx0IChzdHJ1Y3QgZXRoX2RldmljZSAqZGV2KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tci0+aW1fY3BtLmNwX3NjY1tTQ0NfRU5FVF0uc2NjX2dzbXJsICY9CiAJCX4oU0NDX0dTTVJMX0VOUiB8IFNDQ19HU01STF9FTlQpOwpAQCAtNTYzLDcgKzU2Myw3IEBACiAjaWYgMAogdm9pZCByZXN0YXJ0ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tci0+aW1fY3BtLmNwX3NjY1tTQ0NfRU5FVF0uc2NjX2dzbXJsIHw9CiAJCShTQ0NfR1NNUkxfRU5SIHwgU0NDX0dTTVJMX0VOVCk7CmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3NlcmlhbC5jIGIvY3B1L21wYzh4eC9zZXJpYWwuYwppbmRleCBhZDAyMjk5Li5jYWU5MGRkIDEwMDY0NAotLS0gYS9jcHUvbXBjOHh4L3NlcmlhbC5jCisrKyBiL2NwdS9tcGM4eHgvc2VyaWFsLmMKQEAgLTc0LDggKzc0LDggQEAKIAkJZGl2aXNvcj0oNTAqMTAwMCoxMDAwICsgOCo5NjAwKS8xNi85NjAwOwogCX0KIAotI2lmZGVmIENGR19CUkdDTEtfUFJFU0NBTEUKLQlkaXZpc29yIC89IENGR19CUkdDTEtfUFJFU0NBTEU7CisjaWZkZWYgQ09ORklHX1NZU19CUkdDTEtfUFJFU0NBTEUKKwlkaXZpc29yIC89IENPTkZJR19TWVNfQlJHQ0xLX1BSRVNDQUxFOwogI2VuZGlmCiAKIAlpZihkaXZpc29yPD0weDEwMDApIHsKQEAgLTk0LDcgKzk0LDcgQEAKIAogc3RhdGljIHZvaWQgc21jX3NldGJyZyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltLT5pbV9jcG0pOwogCiAJLyogU2V0IHVwIHRoZSBiYXVkIHJhdGUgZ2VuZXJhdG9yLgpAQCAtMTEwLDcgKzExMCw3IEBACiAKIHN0YXRpYyBpbnQgc21jX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc21jX3QgKnNwOwogCXZvbGF0aWxlIHNtY191YXJ0X3QgKnVwOwogCXZvbGF0aWxlIGNiZF90ICp0YmRmLCAqcmJkZjsKQEAgLTEyNCw3ICsxMjQsNyBAQAogCiAJc3AgPSAoc21jX3QgKikgJihjcC0+Y3Bfc21jW1NNQ19JTkRFWF0pOwogCXVwID0gKHNtY191YXJ0X3QgKikgJmNwLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKLSNpZmRlZiBDRkdfU01DX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gKIAl1cCA9IChzbWNfdWFydF90ICopICZjcC0+Y3BfZHBtZW1bdXAtPnNtY19ycGJhc2VdOwogI2Vsc2UKIAkvKiBEaXNhYmxlIHJlbG9jYXRpb24gKi8KQEAgLTE0MCwxNSArMTQwLDE1IEBACiAJaW0tPmltX3NpdV9jb25mLnNjX3NkY3IgPSAxOwogCiAJLyogY2xlYXIgZXJyb3IgY29uZGl0aW9ucyAqLwotI2lmZGVmCUNGR19TRFNSCi0JaW0tPmltX3NkbWEuc2RtYV9zZHNyID0gQ0ZHX1NEU1I7CisjaWZkZWYJQ09ORklHX1NZU19TRFNSCisJaW0tPmltX3NkbWEuc2RtYV9zZHNyID0gQ09ORklHX1NZU19TRFNSOwogI2Vsc2UKIAlpbS0+aW1fc2RtYS5zZG1hX3Nkc3IgPSAweDgzOwogI2VuZGlmCiAKIAkvKiBjbGVhciBTRE1BIGludGVycnVwdCBtYXNrICovCi0jaWZkZWYJQ0ZHX1NETVIKLQlpbS0+aW1fc2RtYS5zZG1hX3NkbXIgPSBDRkdfU0RNUjsKKyNpZmRlZglDT05GSUdfU1lTX1NETVIKKwlpbS0+aW1fc2RtYS5zZG1hX3NkbXIgPSBDT05GSUdfU1lTX1NETVI7CiAjZWxzZQogCWltLT5pbV9zZG1hLnNkbWFfc2RtciA9IDB4MDA7CiAjZW5kaWYKQEAgLTE5Myw3ICsxOTMsNyBAQAogCSAqIHRoZSBidWZmZXIgZGVzY3JpcHRvcnMuCiAJICovCiAKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJZHBhZGRyID0gZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZihjYmRfdCkqMiArIDIsIDgpIDsKICNlbHNlCiAJZHBhZGRyID0gQ1BNX1NFUklBTF9CQVNFIDsKQEAgLTIxOCw3ICsyMTgsNyBAQAogCXVwLT5zbWNfdGJhc2UgPSBkcGFkZHIrc2l6ZW9mKGNiZF90KTsKIAl1cC0+c21jX3JmY3IgPSBTTUNfRUI7CiAJdXAtPnNtY190ZmNyID0gU01DX0VCOwotI2lmIGRlZmluZWQgKENGR19TTUNfVUNPREVfUEFUQ0gpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gpCiAJdXAtPnNtY19yYnB0ciA9IHVwLT5zbWNfcmJhc2U7CiAJdXAtPnNtY190YnB0ciA9IHVwLT5zbWNfdGJhc2U7CiAJdXAtPnNtY19yc3RhdGUgPSAwOwpAQCAtMjM5LDExICsyMzksMTEgQEAKIAlzcC0+c21jX3NtY20gPSAwOwogCXNwLT5zbWNfc21jZSA9IDB4ZmY7CiAKLSNpZmRlZiBDRkdfU1BDMTkyMF9TTUMxX0NMSzQKKyNpZmRlZiBDT05GSUdfU1lTX1NQQzE5MjBfU01DMV9DTEs0CiAJLyogY2xvY2sgc291cmNlIGlzIFBMRCAqLwogCiAJLyogc2V0IGZyZXEgdG8gMTkyMDAgQmF1ZCAqLwotCSooKHZvbGF0aWxlIHVjaGFyICopIENGR19TUEMxOTIwX1BMRF9CQVNFKzYpID0gMHgzOworCSooKHZvbGF0aWxlIHVjaGFyICopIENPTkZJR19TWVNfU1BDMTkyMF9QTERfQkFTRSs2KSA9IDB4MzsKIAkvKiBjb25maWd1cmUgY2xrNCBhcyBpbnB1dCAqLwogCWltLT5pbV9pb3BvcnQuaW9wX3BkcGFyIHw9IDB4ODAwOwogCWltLT5pbV9pb3BvcnQuaW9wX3BkZGlyICY9IH4weDgwMDsKQEAgLTI4OCw3ICsyODgsNyBAQAogCXZvbGF0aWxlIGNiZF90CQkqdGJkZjsKIAl2b2xhdGlsZSBjaGFyCQkqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90CSpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogI2lmZGVmIENPTkZJR19NT0RFTV9TVVBQT1JUCkBAIC0zMDAsNyArMzAwLDcgQEAKIAkJc21jX3B1dGMgKCdccicpOwogCiAJdXAgPSAoc21jX3VhcnRfdCAqKSZjcG1wLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKLSNpZmRlZiBDRkdfU01DX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gKIAl1cCA9IChzbWNfdWFydF90ICopICZjcG1wLT5jcF9kcG1lbVt1cC0+c21jX3JwYmFzZV07CiAjZW5kaWYKIApAQCAtMzM2LDEyICszMzYsMTIgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhcgkqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90CSpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAl1bnNpZ25lZCBjaGFyCQljOwogCiAJdXAgPSAoc21jX3VhcnRfdCAqKSZjcG1wLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKLSNpZmRlZiBDRkdfU01DX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gKIAl1cCA9IChzbWNfdWFydF90ICopICZjcG1wLT5jcF9kcG1lbVt1cC0+c21jX3JwYmFzZV07CiAjZW5kaWYKIApAQCAtMzY1LDExICszNjUsMTEgQEAKIHsKIAl2b2xhdGlsZSBjYmRfdAkJKnJiZGY7CiAJdm9sYXRpbGUgc21jX3VhcnRfdAkqdXA7Ci0Jdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QJKmNwbXAgPSAmKGltLT5pbV9jcG0pOwogCiAJdXAgPSAoc21jX3VhcnRfdCAqKSZjcG1wLT5jcF9kcGFyYW1bUFJPRkZfU01DXTsKLSNpZmRlZiBDRkdfU01DX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gKIAl1cCA9IChzbWNfdWFydF90ICopICZjcG1wLT5jcF9kcG1lbVt1cC0+c21jX3JwYmFzZV07CiAjZW5kaWYKIApAQCAtMzk4LDcgKzM5OCw3IEBACiBzdGF0aWMgdm9pZAogc2NjX3NldGJyZyAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdCAqY3AgPSAmKGltLT5pbV9jcG0pOwogCiAJLyogU2V0IHVwIHRoZSBiYXVkIHJhdGUgZ2VuZXJhdG9yLgpAQCAtNDE0LDcgKzQxNCw3IEBACiAKIHN0YXRpYyBpbnQgc2NjX2luaXQgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgc2NjX3QgKnNwOwogCXZvbGF0aWxlIHNjY191YXJ0X3QgKnVwOwogCXZvbGF0aWxlIGNiZF90ICp0YmRmLCAqcmJkZjsKQEAgLTQ3NCw3ICs0NzQsNyBAQAogCS8qIEFsbG9jYXRlIHNwYWNlIGZvciB0d28gYnVmZmVyIGRlc2NyaXB0b3JzIGluIHRoZSBEUCByYW0uCiAJICovCiAKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJZHBhZGRyID0gZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZihjYmRfdCkqMiArIDIsIDgpIDsKICNlbHNlCiAJZHBhZGRyID0gQ1BNX1NFUklBTDJfQkFTRSA7CkBAIC01ODAsNyArNTgwLDcgQEAKIAl2b2xhdGlsZSBjYmRfdAkJKnRiZGY7CiAJdm9sYXRpbGUgY2hhcgkJKmJ1ZjsKIAl2b2xhdGlsZSBzY2NfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3BtcCA9ICYoaW0tPmltX2NwbSk7CiAKICNpZmRlZiBDT05GSUdfTU9ERU1fU1VQUE9SVApAQCAtNjI1LDcgKzYyNSw3IEBACiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHVuc2lnbmVkIGNoYXIJKmJ1ZjsKIAl2b2xhdGlsZSBzY2NfdWFydF90CSp1cDsKLQl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdAkqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBjcG04eHhfdAkqY3BtcCA9ICYoaW0tPmltX2NwbSk7CiAJdW5zaWduZWQgY2hhcgkJYzsKIApAQCAtNjUxLDcgKzY1MSw3IEBACiB7CiAJdm9sYXRpbGUgY2JkX3QJCSpyYmRmOwogCXZvbGF0aWxlIHNjY191YXJ0X3QJKnVwOwotCXZvbGF0aWxlIGltbWFwX3QJKmltID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90CSppbSA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90CSpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogCXVwID0gKHNjY191YXJ0X3QgKikmY3BtcC0+Y3BfZHBhcmFtW1BST0ZGX1NDQ107CmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3NwZWVkLmMgYi9jcHUvbXBjOHh4L3NwZWVkLmMKaW5kZXggMDcwYmFiYy4uZjMwOWYyOSAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9zcGVlZC5jCisrKyBiL2NwdS9tcGM4eHgvc3BlZWQuYwpAQCAtMjcsNyArMjcsNyBAQAogCiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAotI2lmICFkZWZpbmVkKENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQpIHx8IGRlZmluZWQoQ0ZHX01FQVNVUkVfQ1BVQ0xLKSB8fCBkZWZpbmVkKERFQlVHKQorI2lmICFkZWZpbmVkKENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQpIHx8IGRlZmluZWQoQ09ORklHX1NZU19NRUFTVVJFX0NQVUNMSykgfHwgZGVmaW5lZChERUJVRykKIAogI2RlZmluZSBQSVRDX1NISUZUIDE2CiAjZGVmaW5lIFBJVFJfU0hJRlQgMTYKQEAgLTg3LDEyICs4NywxMiBAQAogCiB1bnNpZ25lZCBsb25nIG1lYXN1cmVfZ2Nsayh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbXRpbWVyOHh4X3QgKnRpbWVycCA9ICZpbW1yLT5pbV9jcG10aW1lcjsKIAl1bG9uZyB0aW1lcjJfdmFsOwogCXVsb25nIG1zcl92YWw7CiAKLSNpZmRlZiBDRkdfOFhYX1hJTgorI2lmZGVmIENPTkZJR19TWVNfOFhYX1hJTgogCS8qIGRvbnQgdXNlIE9TQ00sIG9ubHkgdXNlIEVYVENMSy81MTIgKi8KIAlpbW1yLT5pbV9jbGtyc3QuY2FyX3NjY3IgfD0gU0NDUl9SVFNFTCB8IFNDQ1JfUlRESVY7CiAjZWxzZQpAQCAtMTM3LDcgKzEzNyw3IEBACiAJaW1tci0+aW1fc2l0LnNpdF9waXRjID0gU1BFRURfUElUQ19JTklUOwogCiAJaW1tci0+aW1fc2l0ay5zaXRrX3Bpc2NyayA9IEtBUFdSX0tFWTsKLQlpbW1yLT5pbV9zaXQuc2l0X3Bpc2NyID0gQ0ZHX1BJU0NSOworCWltbXItPmltX3NpdC5zaXRfcGlzY3IgPSBDT05GSUdfU1lTX1BJU0NSOwogCiAJLyoKIAkgKiBTdGFydCBtZWFzdXJlbWVudCAtIGRpc2FibGUgaW50ZXJydXB0cywganVzdCBpbiBjYXNlCkBAIC0xNjQsOSArMTY0LDkgQEAKIAl0aW1lcnAtPmNwbXRfdGdjciAmPSB+KFRHQ1JfUlNUMiB8IFRHQ1JfRlJaMiB8IFRHQ1JfU1RQMik7CiAJaW1tci0+aW1fc2l0LnNpdF9waXNjciAmPSB+UElTQ1JfUFRFOwogCi0jaWYgZGVmaW5lZChDRkdfOFhYX1hJTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfOFhYX1hJTikKIAkvKiBub3QgdXNpbmcgT1NDTSwgdXNpbmcgWElOLCBzbyBzY2FsZSBhcHByb3ByaWF0ZWx5ICovCi0JcmV0dXJuICgoKHRpbWVyMl92YWwgKyAyKSAvIDQpICogKENGR184WFhfWElOLzUxMikpLzgxOTIgKiAxMDAwMDBMOworCXJldHVybiAoKCh0aW1lcjJfdmFsICsgMikgLyA0KSAqIChDT05GSUdfU1lTXzhYWF9YSU4vNTEyKSkvODE5MiAqIDEwMDAwMEw7CiAjZWxzZQogCXJldHVybiAoKHRpbWVyMl92YWwgKyAyKSAvIDQpICogMTAwMDAwTDsJLyogY29udmVydCB0byBIegkqLwogI2VuZGlmCkBAIC0yNjEsNyArMjYxLDcgQEAKICAqLwogaW50IGdldF9jbG9ja3NfODY2ICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWNoYXIJCSAgdG1wWzY0XTsKIAlsb25nCQkgIGNwdWNsayA9IDA7CiAJbG9uZwkJICBzY2NyX3JlZzsKQEAgLTI2OSwxMSArMjY5LDExIEBACiAJaWYgKGdldGVudl9yICgiY3B1Y2xrIiwgdG1wLCBzaXplb2YgKHRtcCkpID4gMCkKIAkJY3B1Y2xrID0gc2ltcGxlX3N0cnRvdWwgKHRtcCwgTlVMTCwgMTApICogMTAwMDAwMDsKIAotCWlmICgoQ0ZHXzh4eF9DUFVDTEtfTUlOID4gY3B1Y2xrKSB8fCAoQ0ZHXzh4eF9DUFVDTEtfTUFYIDwgY3B1Y2xrKSkKKwlpZiAoKENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4gPiBjcHVjbGspIHx8IChDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYIDwgY3B1Y2xrKSkKIAkJY3B1Y2xrID0gQ09ORklHXzh4eF9DUFVDTEtfREVGQVVMVDsKIAogCWdkLT5jcHVfY2xrID0gaW5pdF9wbGxfODY2IChjcHVjbGspOwotI2lmIGRlZmluZWQoQ0ZHX01FQVNVUkVfQ1BVQ0xLKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19NRUFTVVJFX0NQVUNMSykKIAlnZC0+Y3B1X2NsayA9IG1lYXN1cmVfZ2NsayAoKTsKICNlbmRpZgogCkBAIC0zMDEsMTIgKzMwMSwxMiBAQAogICovCiBpbnQgc2RyYW1fYWRqdXN0Xzg2NiAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAlsb25nCQkgIG1hbXI7CiAKIAltYW1yID0gaW1tci0+aW1fbWVtY3RsLm1lbWNfbWFtcjsKIAltYW1yICY9IH5NQU1SX1BUQV9NU0s7Ci0JbWFtciB8PSAoKGdkLT5jcHVfY2xrIC8gQ0ZHX1BUQV9QRVJfQ0xLKSA8PCBNQU1SX1BUQV9TSElGVCk7CisJbWFtciB8PSAoKGdkLT5jcHVfY2xrIC8gQ09ORklHX1NZU19QVEFfUEVSX0NMSykgPDwgTUFNUl9QVEFfU0hJRlQpOwogCWltbXItPmltX21lbWN0bC5tZW1jX21hbXIgPSBtYW1yOwogCiAJcmV0dXJuICgwKTsKQEAgLTMyMCw3ICszMjAsNyBAQAogewogCWV4dGVybiB2b2lkIHBscHJjcl93cml0ZV84NjYgKGxvbmcpOwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJbG9uZwkJICBuLCBwbHByY3I7CiAJY2hhcgkJICBtZmksIG1mbiwgbWZkLCBzLCBwZGY7CiAJbG9uZwkJICBzdGVwX21maSwgc3RlcF9tZm47CkBAIC0zOTQsMTMgKzM5NCwxMyBAQAogICovCiBpbnQgYWRqdXN0X3NkcmFtX3Ric184eHggKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJbG9uZwkJICBtYW1yOwogCWxvbmcgICAgICAgICAgICAgIHNjY3I7CiAKIAltYW1yID0gaW1tci0+aW1fbWVtY3RsLm1lbWNfbWFtcjsKIAltYW1yICY9IH5NQU1SX1BUQV9NU0s7Ci0JbWFtciB8PSAoKGdkLT5jcHVfY2xrIC8gQ0ZHX1BUQV9QRVJfQ0xLKSA8PCBNQU1SX1BUQV9TSElGVCk7CisJbWFtciB8PSAoKGdkLT5jcHVfY2xrIC8gQ09ORklHX1NZU19QVEFfUEVSX0NMSykgPDwgTUFNUl9QVEFfU0hJRlQpOwogCWltbXItPmltX21lbWN0bC5tZW1jX21hbXIgPSBtYW1yOwogCiAJaWYgKGdkLT5jcHVfY2xrIDwgNjcwMDAwMDApIHsKZGlmZiAtLWdpdCBhL2NwdS9tcGM4eHgvc3BpLmMgYi9jcHUvbXBjOHh4L3NwaS5jCmluZGV4IGUzMThlZDAuLmIyYWMyM2UgMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHgvc3BpLmMKKysrIGIvY3B1L21wYzh4eC9zcGkuYwpAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlIDxzZXJpYWwuaD4KIAotI2lmIChkZWZpbmVkKENPTkZJR19TUEkpKSB8fCAoQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUEkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NQSSkpIHx8IChDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUEkpCiAKIC8qIFdhcm5pbmc6CiAgKiBZb3UgY2Fubm90IGVuYWJsZSBERUJVRyBmb3IgZWFybHkgc3lzdGVtIGluaXRhbGl6YXRpb24sIGkuIGUuIHdoZW4KQEAgLTY0LDggKzY0LDggQEAKICAqIFRoZSB2YWx1ZSAweGIwMCBtYWtlcyBpdCBmYXIgZW5vdWdoIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBkYXRhCiAgKiBhcmVhIChhcyB3ZWxsIGFzIGZyb20gdGhlIHN0YWNrIHBvaW50ZXIpLgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0jaWZuZGVmCUNGR19TUElfSU5JVF9PRkZTRVQKLSNkZWZpbmUJQ0ZHX1NQSV9JTklUX09GRlNFVAkweEIwMAorI2lmbmRlZglDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAorI2RlZmluZQlDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAkweEIwMAogI2VuZGlmCiAKICNpZmRlZglERUJVRwpAQCAtMTE4LDExICsxMTgsMTEgQEAKICAqIEluaXRpYWxseSB3ZSBwbGFjZSB0aGUgUlggYW5kIFRYIGJ1ZmZlcnMgYXQgYSBmaXhlZCBsb2NhdGlvbiBpbiBEUFJBTSEKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIHN0YXRpYyB1Y2hhciAqcnhidWYgPQotICAodWNoYXIgKikmKChjcG04eHhfdCAqKSYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbSktPmNwX2RwbWVtCi0JCQlbQ0ZHX1NQSV9JTklUX09GRlNFVF07CisgICh1Y2hhciAqKSYoKGNwbTh4eF90ICopJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbSktPmNwX2RwbWVtCisJCQlbQ09ORklHX1NZU19TUElfSU5JVF9PRkZTRVRdOwogc3RhdGljIHVjaGFyICp0eGJ1ZiA9Ci0gICh1Y2hhciAqKSYoKGNwbTh4eF90ICopJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtKS0+Y3BfZHBtZW0KLQkJCVtDRkdfU1BJX0lOSVRfT0ZGU0VUK01BWF9CVUZGRVJdOworICAodWNoYXIgKikmKChjcG04eHhfdCAqKSYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0pLT5jcF9kcG1lbQorCQkJW0NPTkZJR19TWVNfU1BJX0lOSVRfT0ZGU0VUK01BWF9CVUZGRVJdOwogCiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTE0NCwxMiArMTQ0LDEyIEBACiAJdm9sYXRpbGUgaW9wOHh4X3QgKmlvcDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSAgQ09ORklHX1NZU19JTU1SOwogCWNwaSAgPSAoY3BpYzh4eF90ICopJmltbXItPmltX2NwaWM7CiAJaW9wICA9IChpb3A4eHhfdCAqKSAmaW1tci0+aW1faW9wb3J0OwogCWNwICAgPSAoY3BtOHh4X3QgKikgJmltbXItPmltX2NwbTsKIAotI2lmZGVmIENGR19TUElfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSAogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwbWVtW3NwaS0+c3BpX3JwYmFzZV07CiAjZWxzZQogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9TUEldOwpAQCAtMjEwLDcgKzIxMCw3IEBACiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIG9uZSB0cmFuc21pdCBhbmQgb25lIHJlY2VpdmUgYnVmZmVyCiAJICogZGVzY3JpcHRvciBpbiB0aGUgRFAgcmFtCiAJICovCi0jaWZkZWYgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgQ09ORklHX1NZU19BTExPQ19EUFJBTQogCWRwYWRkciA9IGRwcmFtX2FsbG9jX2FsaWduIChzaXplb2YoY2JkX3QpKjIsIDgpOwogI2Vsc2UKIAlkcGFkZHIgPSBDUE1fU1BJX0JBU0U7CkBAIC0yMzQsNyArMjM0LDcgQEAKIAlzcGktPnNwaV90YnB0ciA9IHNwaS0+c3BpX3RiYXNlOwogCiAvKiA0ICovCi0jaWZkZWYgQ0ZHX1NQSV9VQ09ERV9QQVRDSAorI2lmZGVmIENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENICiAJLyoKIAkgKiAgSW5pdGlhbGl6ZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGlmIHVzaW5nIG1pY3JvY29kZSBwYXRjaC4KIAkgKi8KQEAgLTI0Nyw3ICsyNDcsNyBAQAogCWNwLT5jcF9jcGNyID0gbWtfY3JfY21kKENQTV9DUl9DSF9TUEksIENQTV9DUl9JTklUX1RSWCkgfCBDUE1fQ1JfRkxHOwogCXdoaWxlIChjcC0+Y3BfY3BjciAmIENQTV9DUl9GTEcpCiAJCTsKLSNlbmRpZgkvKiBDRkdfU1BJX1VDT0RFX1BBVENIICovCisjZW5kaWYJLyogQ09ORklHX1NZU19TUElfVUNPREVfUEFUQ0ggKi8KIAogLyogNSAqLwogCS8qIFNldCBTRE1BIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgKi8KQEAgLTI5OSwxMCArMjk5LDEwIEBACiAJdm9sYXRpbGUgaW1tYXBfdCAqaW1tcjsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CiAKLQlpbW1yID0gKGltbWFwX3QgKikgIENGR19JTU1SOworCWltbXIgPSAoaW1tYXBfdCAqKSAgQ09ORklHX1NZU19JTU1SOwogCWNwICAgPSAoY3BtOHh4X3QgKikgJmltbXItPmltX2NwbTsKIAotI2lmZGVmIENGR19TUElfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSAogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwbWVtW3NwaS0+c3BpX3JwYmFzZV07CiAjZWxzZQogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9TUEldOwpAQCAtMzkyLDEwICszOTIsMTAgQEAKIAogCURQUklOVCAoKCIqKiogc3BpX3hmZXIgZW50ZXJlZCAqKipcbiIpKTsKIAotCWltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWNwICAgPSAoY3BtOHh4X3QgKikgJmltbXItPmltX2NwbTsKIAotI2lmZGVmIENGR19TUElfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSAogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwbWVtW3NwaS0+c3BpX3JwYmFzZV07CiAjZWxzZQogCXNwaSAgPSAoc3BpX3QgKikmY3AtPmNwX2RwYXJhbVtQUk9GRl9TUEldOwpAQCAtNDY4LDcgKzQ2OCw3IEBACiAKIAlyZXR1cm4gY291bnQ7CiB9Ci0jZW5kaWYJLyogQ09ORklHX1NQSSB8fCAoQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUEkpICovCisjZW5kaWYJLyogQ09ORklHX1NQSSB8fCAoQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BJKSAqLwogCiAvKgogICogU1BJIHRlc3QKQEAgLTQ4MSw3ICs0ODEsNyBAQAogICogICBURVNUX05VTSAtIG51bWJlciBvZiB0ZXN0cwogICovCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1NQSQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NQSQogCiAjZGVmaW5lIFRFU1RfTUlOX0xFTkdUSAkJMQogI2RlZmluZSBURVNUX01BWF9MRU5HVEgJCU1BWF9CVUZGRVIKQEAgLTUxMyw3ICs1MTMsNyBAQAogaW50IHNwaV9wb3N0X3Rlc3QgKGludCBmbGFncykKIHsKIAlpbnQgcmVzID0gLTE7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwID0gKGNwbTh4eF90ICopICYgaW1tci0+aW1fY3BtOwogCWludCBpOwogCWludCBsOwpAQCAtNTU3LDQgKzU1Nyw0IEBACiAKIAlyZXR1cm4gcmVzOwogfQotI2VuZGlmCS8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1BJICovCisjZW5kaWYJLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BJICovCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3N0YXJ0LlMgYi9jcHUvbXBjOHh4L3N0YXJ0LlMKaW5kZXggZWNhNGI1MC4uN2I3NTY2MCAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC9zdGFydC5TCisrKyBiL2NwdS9tcGM4eHgvc3RhcnQuUwpAQCAtOTMsNyArOTMsNyBAQAogCS4gPSBFWENfT0ZGX1NZU19SRVNFVAogCS5nbG9ibAlfc3RhcnQKIF9zdGFydDoKLQlsaXMJcjMsIENGR19JTU1SQGgJCS8qIHBvc2l0aW9uIElNTVIgKi8KKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCQkvKiBwb3NpdGlvbiBJTU1SICovCiAJbXRzcHIJNjM4LCByMwogCWxpCXIyMSwgQk9PVEZMQUdfQ09MRAkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSAkqLwogCWIJYm9vdF9jb2xkCkBAIC0xNTksOCArMTU5LDggQEAKIAkgKiBDYWxjdWxhdGUgYWJzb2x1dGUgYWRkcmVzcyBpbiBGTEFTSCBhbmQganVtcCB0aGVyZQogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLQlsaXMJcjMsIENGR19NT05JVE9SX0JBU0VAaAotCW9yaQlyMywgcjMsIENGR19NT05JVE9SX0JBU0VAbAorCWxpcwlyMywgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFQGwKIAlhZGRpCXIzLCByMywgaW5fZmxhc2ggLSBfc3RhcnQgKyBFWENfT0ZGX1NZU19SRVNFVAogCW10bHIJcjMKIAlibHIKQEAgLTE3MCw4ICsxNzAsOCBAQAogCS8qIGluaXRpYWxpemUgc29tZSBTUFJzIHRoYXQgYXJlIGhhcmQgdG8gYWNjZXNzIGZyb20gQwkJCSovCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotCWxpcwlyMywgQ0ZHX0lNTVJAaAkJLyogcGFzcyBJTU1SIGFzIGFyZzEgdG8gQyByb3V0aW5lICovCi0Jb3JpCXIxLCByMywgQ0ZHX0lOSVRfU1BfT0ZGU0VUIC8qIHNldCB1cCB0aGUgc3RhY2sgaW4gaW50ZXJuYWwgRFBSQU0gKi8KKwlsaXMJcjMsIENPTkZJR19TWVNfSU1NUkBoCQkvKiBwYXNzIElNTVIgYXMgYXJnMSB0byBDIHJvdXRpbmUgKi8KKwlvcmkJcjEsIHIzLCBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUIC8qIHNldCB1cCB0aGUgc3RhY2sgaW4gaW50ZXJuYWwgRFBSQU0gKi8KIAkvKiBOb3RlOiBSMCBpcyBzdGlsbCAwIGhlcmUgKi8KIAlzdHd1CXIwLCAtNChyMSkJCS8qIGNsZWFyIGZpbmFsIHN0YWNrIGZyYW1lIHNvIHRoYXQJKi8KIAlzdHd1CXIwLCAtNChyMSkJCS8qIHN0YWNrIGJhY2t0cmFjZXMgdGVybWluYXRlIGNsZWFubHkJKi8KQEAgLTE4Nyw4ICsxODcsOCBAQAogCiAJLyogU2V0IHVwIGRlYnVnIG1vZGUgZW50cnkgKi8KIAotCWxpcwlyMiwgQ0ZHX0RFUkBoCi0Jb3JpCXIyLCByMiwgQ0ZHX0RFUkBsCisJbGlzCXIyLCBDT05GSUdfU1lTX0RFUkBoCisJb3JpCXIyLCByMiwgQ09ORklHX1NZU19ERVJAbAogCW10c3ByCURFUiwgcjIKIAogCS8qIGxldCB0aGUgQy1jb2RlIHNldCB1cCB0aGUgcmVzdAkJCQkJKi8KQEAgLTQ5NSwxNiArNDk1LDE2IEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKLQlsaQlyNiwgQ0ZHX0NBQ0hFTElORV9TSVpFCQkvKiBDYWNoZSBMaW5lIFNpemUJKi8KKwlsaQlyNiwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLyogQ2FjaGUgTGluZSBTaXplCSovCiAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCisJICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCiAJICoKIAkgKiBPZmZzZXQ6CiAJICovCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3VwYXRjaC5jIGIvY3B1L21wYzh4eC91cGF0Y2guYwppbmRleCA0ZDZjNTIyLi5hOGNiNzM1IDEwMDY0NAotLS0gYS9jcHUvbXBjOHh4L3VwYXRjaC5jCisrKyBiL2NwdS9tcGM4eHgvdXBhdGNoLmMKQEAgLTEsOCArMSw4IEBACiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAjaW5jbHVkZSA8Y29tbXByb2MuaD4KIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19VQ09ERV9QQVRDSCkgfHwgZGVmaW5lZChDRkdfU1BJX1VDT0RFX1BBVENIKSB8fCBcCi0gICAgZGVmaW5lZChDRkdfU01DX1VDT0RFX1BBVENIKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gpIHx8IGRlZmluZWQoQ09ORklHX1NZU19TUElfVUNPREVfUEFUQ0gpIHx8IFwKKyAgICBkZWZpbmVkKENPTkZJR19TWVNfU01DX1VDT0RFX1BBVENIKQogCiBzdGF0aWMgdm9pZCBVY29kZUNvcHkgKHZvbGF0aWxlIGNwbTh4eF90ICpjcG0pOwogCkBAIC0xMSwzNiArMTEsMzYgQEAKIAlpbW1yLT5pbV9jcG0uY3BfcmNjciAmPSB+MHgwMDAzOwkvKiBEaXNhYmxlIG1pY3JvY29kZSBwcm9ncmFtIGFyZWEgKi8KIAogCVVjb2RlQ29weSAoKGNwbTh4eF90ICopJmltbXItPmltX2NwbSk7CS8qIENvcHkgdWNvZGUgcGF0Y2ggdG8gRFBSQU0gICAqLwotI2lmZGVmIENGR19TUElfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NQSV9VQ09ERV9QQVRDSAogICAgIHsKIAl2b2xhdGlsZSBzcGlfdCAqc3BpID0gKHNwaV90ICopICYgaW1tci0+aW1fY3BtLmNwX2RwYXJhbVtQUk9GRl9TUEldOwogCS8qIEFjdGl2YXRlIHRoZSBtaWNyb2NvZGUgcGVyIHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIG1pY3JvY29kZSBtYW51YWwgKi8KIAkvKiBOT1RFOiAgV2UncmUgb25seSByZWxvY2F0aW5nIHRoZSBTUEkgcGFyYW1ldGVycyAobm90IEkyQykuICAgICAgICAgICovCiAJaW1tci0+aW1fY3BtLmNwX2NwbWNyMSA9IDB4ODAyYTsJLyogV3JpdGUgVHJhcCByZWdpc3RlciAxIHZhbHVlICovCiAJaW1tci0+aW1fY3BtLmNwX2NwbWNyMiA9IDB4ODAyODsJLyogV3JpdGUgVHJhcCByZWdpc3RlciAyIHZhbHVlICovCi0Jc3BpLT5zcGlfcnBiYXNlID0gQ0ZHX1NQSV9EUE1FTV9PRkZTRVQ7CS8qIFdoZXJlIHRvIHJlbG9jdGUgU1BJIHBhcmFtcyAqLworCXNwaS0+c3BpX3JwYmFzZSA9IENPTkZJR19TWVNfU1BJX0RQTUVNX09GRlNFVDsJLyogV2hlcmUgdG8gcmVsb2N0ZSBTUEkgcGFyYW1zICovCiAgICAgfQogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSTJDX1VDT0RFX1BBVENICisjaWZkZWYgQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gKICAgICB7CiAJdm9sYXRpbGUgaWljX3QgKmlpcCA9IChpaWNfdCAqKSAmIGltbXItPmltX2NwbS5jcF9kcGFyYW1bUFJPRkZfSUlDXTsKIAkvKiBBY3RpdmF0ZSB0aGUgbWljcm9jb2RlIHBlciB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBtaWNyb2NvZGUgbWFudWFsICovCiAJLyogTk9URTogIFdlJ3JlIG9ubHkgcmVsb2NhdGluZyB0aGUgSTJDIHBhcmFtZXRlcnMgKG5vdCBTUEkpLiAgICAgICAgICAqLwogCWltbXItPmltX2NwbS5jcF9jcG1jcjMgPSAweDgwMmU7CS8qIFdyaXRlIFRyYXAgcmVnaXN0ZXIgMyB2YWx1ZSAqLwogCWltbXItPmltX2NwbS5jcF9jcG1jcjQgPSAweDgwMmM7CS8qIFdyaXRlIFRyYXAgcmVnaXN0ZXIgNCB2YWx1ZSAqLwotCWlpcC0+aWljX3JwYmFzZSA9IENGR19JMkNfRFBNRU1fT0ZGU0VUOwkvKiBXaGVyZSB0byByZWxvY3RlIEkyQyBwYXJhbXMgKi8KKwlpaXAtPmlpY19ycGJhc2UgPSBDT05GSUdfU1lTX0kyQ19EUE1FTV9PRkZTRVQ7CS8qIFdoZXJlIHRvIHJlbG9jdGUgSTJDIHBhcmFtcyAqLwogICAgIH0KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1NNQ19VQ09ERV9QQVRDSAorI2lmZGVmIENPTkZJR19TWVNfU01DX1VDT0RFX1BBVENICiAgICAgewogCXZvbGF0aWxlIHNtY191YXJ0X3QgKnVwID0gKHNtY191YXJ0X3QgKikgJiBpbW1yLT5pbV9jcG0uY3BfZHBhcmFtW1BST0ZGX1NNQzFdOwogCS8qIEFjdGl2YXRlIHRoZSBtaWNyb2NvZGUgcGVyIHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIG1pY3JvY29kZSBtYW51YWwgKi8KIAkvKiBOT1RFOiAgV2UncmUgb25seSByZWxvY2F0aW5nIHRoZSBTTUMgcGFyYW1ldGVycy4gICAgICAgICAgICAgICAgICAgICovCiAJaW1tci0+aW1fY3BtLmNwX2NwbWNyMSA9IDB4ODA4MDsJLyogV3JpdGUgVHJhcCByZWdpc3RlciAxIHZhbHVlICovCiAJaW1tci0+aW1fY3BtLmNwX2NwbWNyMiA9IDB4ODA4ODsJLyogV3JpdGUgVHJhcCByZWdpc3RlciAyIHZhbHVlICovCi0JdXAtPnNtY19ycGJhc2UgPSBDRkdfU01DX0RQTUVNX09GRlNFVDsJLyogV2hlcmUgdG8gcmVsb2N0ZSBTTUMgcGFyYW1zICovCisJdXAtPnNtY19ycGJhc2UgPSBDT05GSUdfU1lTX1NNQ19EUE1FTV9PRkZTRVQ7CS8qIFdoZXJlIHRvIHJlbG9jdGUgU01DIHBhcmFtcyAqLwogICAgIH0KICNlbmRpZgogCkBAIC00OCwxNCArNDgsMTQgQEAKIAkgKiBFbmFibGUgRFBSQU0gbWljcm9jb2RlIHRvIGV4ZWN1dGUgZnJvbSB0aGUgZmlyc3QgNTEyIGJ5dGVzCiAJICogYW5kIGEgMjU2IGJ5dGUgZXh0ZW5zaW9uIG9mIERQUkFNLgogCSAqLwotI2lmZGVmIENGR19TTUNfVUNPREVfUEFUQ0gKKyNpZmRlZiBDT05GSUdfU1lTX1NNQ19VQ09ERV9QQVRDSAogCWltbXItPmltX2NwbS5jcF9yY2NyIHw9IDB4MDAwMjsKICNlbHNlCiAJaW1tci0+aW1fY3BtLmNwX3JjY3IgfD0gMHgwMDAxOwogI2VuZGlmCiB9CiAKLSNpZiBkZWZpbmVkKENGR19JMkNfVUNPREVfUEFUQ0gpIHx8IGRlZmluZWQoQ0ZHX1NQSV9VQ09ERV9QQVRDaCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSTJDX1VDT0RFX1BBVENIKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENoKQogc3RhdGljIHVsb25nIHBhdGNoXzIwMDBbXSA9IHsKIAkweDdGRkZFRkQ5LCAweDNGRkQwMDAwLCAweDdGRkI0OUY3LCAweDdGRjkwMDAwLAogCTB4NUZFRkFERjcsIDB4NUY4OEFERjcsIDB4NUZFRkFGRjcsIDB4NUY4OEFGRjcsCkBAIC0xOTEsNCArMTkxLDQgQEAKIAl9CiB9CiAKLSNlbmRpZgkvKiBDRkdfSTJDX1VDT0RFX1BBVENILCBDRkdfU1BJX1VDT0RFX1BBVENIICovCisjZW5kaWYJLyogQ09ORklHX1NZU19JMkNfVUNPREVfUEFUQ0gsIENPTkZJR19TWVNfU1BJX1VDT0RFX1BBVENIICovCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4L3ZpZGVvLmMgYi9jcHUvbXBjOHh4L3ZpZGVvLmMKaW5kZXggZWY5MTE2NS4uMmU2YTIyYSAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eC92aWRlby5jCisrKyBiL2NwdS9tcGM4eHgvdmlkZW8uYwpAQCAtNTE3LDcgKzUxNyw3IEBACiAKIHN0YXRpYyBpbnQgdmlkZW9fbW9kZV9nZW5lcmF0ZSAodm9pZCkKIHsKLQlpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCWltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCVZSQU0gKnZyID0gKFZSQU0gKikgKCgodm9pZCAqKSBpbW1hcCkgKyAweGIwMCk7CS8qIFBvaW50ZXIgdG8gdGhlIFZSQU0gdGFibGUgKi8KIAlpbnQgRFgsIFgxLCBYMiwgRFksIFkxLCBZMiwgZW50cnkgPSAwLCBmaWZvOwogCkBAIC04MDgsNyArODA4LDcgQEAKIAogCS8qIEluaXRpYWxpemUgdGhlIEkyQyAqLwogCWRlYnVnICgiW1ZJREVPIEVOQ09ERVJdIEluaXRpYWxpemluZyBJMkMgYnVzLi4uXG4iKTsKLQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKICNpZmRlZiBDT05GSUdfRkFEUwogCS8qIFJlc2V0IEFEVjcxNzYgY2hpcCAqLwpAQCAtODU2LDcgKzg1Niw3IEBACiAKIHN0YXRpYyB2b2lkIHZpZGVvX2N0cmxfaW5pdCAodm9pZCAqbWVtcHRyKQogewotCWltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAl2aWRlb19mYl9hZGRyZXNzID0gbWVtcHRyOwogCkBAIC0xMjM1LDEzICsxMjM1LDEzIEBACiAJdmlkZW9fc2V0cGFsZXR0ZSAgKENPTlNPTEVfQ09MT1JfR1JFWTIsCSAgMHhGOCwgMHhGOCwgMHhGOCk7CiAJdmlkZW9fc2V0cGFsZXR0ZSAgKENPTlNPTEVfQ09MT1JfV0hJVEUsCSAgMHhGRiwgMHhGRiwgMHhGRik7CiAKLSNpZm5kZWYgQ0ZHX1dISVRFX09OX0JMQUNLCisjaWZuZGVmIENPTkZJR19TWVNfV0hJVEVfT05fQkxBQ0sKIAl2aWRlb19zZXRmZ2NvbG9yIChDT05TT0xFX0NPTE9SX0JMQUNLKTsKIAl2aWRlb19zZXRiZ2NvbG9yIChDT05TT0xFX0NPTE9SX0dSRVkyKTsKICNlbHNlCiAJdmlkZW9fc2V0Zmdjb2xvciAoQ09OU09MRV9DT0xPUl9HUkVZMik7CiAJdmlkZW9fc2V0Ymdjb2xvciAoQ09OU09MRV9DT0xPUl9CTEFDSyk7Ci0jZW5kaWYJLyogQ0ZHX1dISVRFX09OX0JMQUNLICovCisjZW5kaWYJLyogQ09ORklHX1NZU19XSElURV9PTl9CTEFDSyAqLwogCiAjaWZkZWYgQ09ORklHX1ZJREVPX0xPR08KIAkvKiBQYWludCB0aGUgbG9nbyBhbmQgcmV0cmlldmUgdHYgYmFzZSBhZGRyZXNzICovCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4eC9kZHIvY3RybF9yZWdzLmMgYi9jcHUvbXBjOHh4eC9kZHIvY3RybF9yZWdzLmMKaW5kZXggZTZjMmE1Yy4uMTc4M2U5MiAxMDA2NDQKLS0tIGEvY3B1L21wYzh4eHgvZGRyL2N0cmxfcmVncy5jCisrKyBiL2NwdS9tcGM4eHh4L2Rkci9jdHJsX3JlZ3MuYwpAQCAtOTUsMTYgKzk1LDEwIEBACiAJCWNvbF9iaXRzX2NzX24gPSBkaW1tX3BhcmFtc1tpLzJdLm5fY29sX2FkZHIgLSA4OwogCX0KIAotCS8qIEZJWE1FOiBpbnRsdl9lbiwgaW50bHZfY3RsIG9ubHkgb24gQ1MwX0NPTkZJRyAqLwotCWlmIChpICE9IDApIHsKLQkJaW50bHZfZW4gPSAwOwotCQlpbnRsdl9jdGwgPSAwOwotCX0KLQogCWRkci0+Y3NbaV0uY29uZmlnID0gKDAKIAkJfCAoKGNzX25fZW4gJiAweDEpIDw8IDMxKQogCQl8ICgoaW50bHZfZW4gJiAweDMpIDw8IDI5KQotCQl8ICgoaW50bHZfZW4gJiAweGYpIDw8IDI0KQorCQl8ICgoaW50bHZfY3RsICYgMHhmKSA8PCAyNCkKIAkJfCAoKGFwX25fZW4gJiAweDEpIDw8IDIzKQogCiAJCS8qIFhYWDogc29tZSBpbXBsZW1lbnRhdGlvbiBvbmx5IGhhdmUgMSBiaXQgc3RhcnRpbmcgYXQgbGVmdCAqLwpAQCAtMTE3LDYgKzExMSw3IEBACiAJCXwgKChyb3dfYml0c19jc19uICYgMHg3KSA8PCA4KQogCQl8ICgoY29sX2JpdHNfY3NfbiAmIDB4NykgPDwgMCkKIAkJKTsKKwlkZWJ1ZygiRlNMRERSOiBjc1slZF1fY29uZmlnID0gMHglMDh4XG4iLCBpLGRkci0+Y3NbaV0uY29uZmlnKTsKIH0KIAogLyogQ2hpcCBTZWxlY3QgQ29uZmlndXJhdGlvbiAyIChDU25fQ09ORklHXzIpICovCkBAIC0xMjYsNiArMTIxLDcgQEAKIAl1bnNpZ25lZCBpbnQgcGFzcl9jZmcgPSAwOwkvKiBQYXJ0aWFsIGFycmF5IHNlbGYgcmVmcmVzaCBjb25maWcgKi8KIAogCWRkci0+Y3NbaV0uY29uZmlnXzIgPSAoKHBhc3JfY2ZnICYgNykgPDwgMjQpOworCWRlYnVnKCJGU0xERFI6IGNzWyVkXV9jb25maWdfMiA9IDB4JTA4eFxuIiwgaSwgZGRyLT5jc1tpXS5jb25maWdfMik7CiB9CiAKIC8qIC0zRSA9IDY2NyBDTDUsIC0yNSA9IENMNiA4MDAsIC0yNUUgPSBDTDUgODAwICovCkBAIC0xOTYsNiArMTkyLDcgQEAKIAkJfCAoKGV4dF9jYXNsYXQgJiAweDEpIDw8IDEyKQogCQl8ICgoY250bF9hZGogJiAweDcpIDw8IDApCiAJCSk7CisJZGVidWcoIkZTTEREUjogdGltaW5nX2NmZ18zID0gMHglMDh4XG4iLCBkZHItPnRpbWluZ19jZmdfMyk7CiB9CiAKIC8qIEREUiBTRFJBTSBUaW1pbmcgQ29uZmlndXJhdGlvbiAxIChUSU1JTkdfQ0ZHXzEpICovCkBAIC0yNjMsNiArMjYwLDcgQEAKIAkJfCAoKGFjdHRvYWN0X21jbGsgJiAweDA3KSA8PCA0KQogCQl8ICgod3J0b3JkX21jbGsgJiAweDA3KSA8PCAwKQogCQkpOworCWRlYnVnKCJGU0xERFI6IHRpbWluZ19jZmdfMSA9IDB4JTA4eFxuIiwgZGRyLT50aW1pbmdfY2ZnXzEpOwogfQogCiAvKiBERFIgU0RSQU0gVGltaW5nIENvbmZpZ3VyYXRpb24gMiAoVElNSU5HX0NGR18yKSAqLwpAQCAtMzE5LDYgKzMxNyw3IEBACiAJCXwgKChja2VfcGxzICYgMHg3KSA8PCA2KQogCQl8ICgoZm91cl9hY3QgJiAweDFmKSA8PCAwKQogCQkpOworCWRlYnVnKCJGU0xERFI6IHRpbWluZ19jZmdfMiA9IDB4JTA4eFxuIiwgZGRyLT50aW1pbmdfY2ZnXzIpOwogfQogCiAvKiBERFIgU0RSQU0gY29udHJvbCBjb25maWd1cmF0aW9uIChERFJfU0RSQU1fQ0ZHKSAqLwpAQCAtMzg1LDYgKzM4NCw3IEBACiAJCQl8ICgobWVtX2hhbHQgJiAweDEpIDw8IDEpCiAJCQl8ICgoYmkgJiAweDEpIDw8IDApCiAJCQkpOworCWRlYnVnKCJGU0xERFI6IGRkcl9zZHJhbV9jZmcgPSAweCUwOHhcbiIsIGRkci0+ZGRyX3NkcmFtX2NmZyk7CiB9CiAKIC8qIEREUiBTRFJBTSBjb250cm9sIGNvbmZpZ3VyYXRpb24gMiAoRERSX1NEUkFNX0NGR18yKSAqLwpAQCAtNDQ5LDYgKzQ0OSw3IEBACiAJCXwgKChyY3dfZW4gJiAweDEpIDw8IDIpCiAJCXwgKChtZF9lbiAmIDB4MSkgPDwgMCkKIAkJKTsKKwlkZWJ1ZygiRlNMRERSOiBkZHJfc2RyYW1fY2ZnXzIgPSAweCUwOHhcbiIsIGRkci0+ZGRyX3NkcmFtX2NmZ18yKTsKIH0KIAogLyogRERSIFNEUkFNIE1vZGUgY29uZmlndXJhdGlvbiAyIChERFJfU0RSQU1fTU9ERV8yKSAqLwpAQCAtNDYxLDYgKzQ2Miw3IEBACiAJCQkJIHwgKChlc2Rtb2RlMiAmIDB4RkZGRikgPDwgMTYpCiAJCQkJIHwgKChlc2Rtb2RlMyAmIDB4RkZGRikgPDwgMCkKIAkJCQkgKTsKKwlkZWJ1ZygiRlNMRERSOiBkZHJfc2RyYW1fbW9kZV8yID0gMHglMDh4XG4iLCBkZHItPmRkcl9zZHJhbV9tb2RlXzIpOwogfQogCiAvKiBERFIgU0RSQU0gSW50ZXJ2YWwgQ29uZmlndXJhdGlvbiAoRERSX1NEUkFNX0lOVEVSVkFMKSAqLwpAQCAtNDgwLDYgKzQ4Miw3IEBACiAJCQkJICAgfCAoKHJlZmludCAmIDB4RkZGRikgPDwgMTYpCiAJCQkJICAgfCAoKGJzdG9wcmUgJiAweDNGRkYpIDw8IDApCiAJCQkJICAgKTsKKwlkZWJ1ZygiRlNMRERSOiBkZHJfc2RyYW1faW50ZXJ2YWwgPSAweCUwOHhcbiIsIGRkci0+ZGRyX3NkcmFtX2ludGVydmFsKTsKIH0KIAogLyogRERSIFNEUkFNIE1vZGUgY29uZmlndXJhdGlvbiBzZXQgKEREUl9TRFJBTV9NT0RFKSAqLwpAQCAtNjEzLDYgKzYxNiw3IEBACiAJCQkgICAgICAgfCAoKGVzZG1vZGUgJiAweEZGRkYpIDw8IDE2KQogCQkJICAgICAgIHwgKChzZG1vZGUgJiAweEZGRkYpIDw8IDApCiAJCQkgICAgICAgKTsKKwlkZWJ1ZygiRlNMRERSOiBkZHJfc2RyYW1fbW9kZSA9IDB4JTA4eFxuIiwgZGRyLT5kZHJfc2RyYW1fbW9kZSk7CiB9CiAKIApAQCAtNjc1LDYgKzY3OSw3IEBACiAJCQkgICAgIHwgKCh3d3QgJiAweGYpIDw8IDE2KQogCQkJICAgICB8IChkbGxfbG9jayAmIDB4MykKIAkJCSAgICAgKTsKKwlkZWJ1ZygiRlNMRERSOiB0aW1pbmdfY2ZnXzQgPSAweCUwOHhcbiIsIGRkci0+dGltaW5nX2NmZ180KTsKIH0KIAogLyogRERSIFNEUkFNIFRpbWluZyBDb25maWd1cmF0aW9uIDUgKFRJTUlOR19DRkdfNSkgKi8KQEAgLTY5MSw2ICs2OTYsNyBAQAogCQkJICAgICB8ICgod29kdF9vbiAmIDB4ZikgPDwgMTIpCiAJCQkgICAgIHwgKCh3b2R0X29mZiAmIDB4ZikgPDwgOCkKIAkJCSAgICAgKTsKKwlkZWJ1ZygiRlNMRERSOiB0aW1pbmdfY2ZnXzUgPSAweCUwOHhcbiIsIGRkci0+dGltaW5nX2NmZ181KTsKIH0KIAogLyogRERSIFpRIENhbGlicmF0aW9uIENvbnRyb2wgKEREUl9aUV9DTlRMKSAqLwpAQCAtODc0LDggKzg4MCwxMyBAQAogCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfQ0hJUF9TRUxFQ1RTX1BFUl9DVFJMOyBpKyspIHsKIAkJcGh5c19zaXplX3Qgc2EgPSAwOwogCQlwaHlzX3NpemVfdCBlYSA9IDA7Ci0JCWlmIChwb3B0cy0+YmFfaW50bHZfY3RsICYmIGkgPiAwKSB7Ci0JCQkvKiBEb24ndCBzZXQgdXAgYm91bmRhcmllcyBpZiBiYW5rIGludGVybGVhdmluZyAqLworCisJCWlmIChwb3B0cy0+YmFfaW50bHZfY3RsICYmIChpID4gMCkgJiYKKwkJCSgocG9wdHMtPmJhX2ludGx2X2N0bCAmIDB4NjApICE9IEZTTF9ERFJfQ1MyX0NTMyApKSB7CisJCQkvKiBEb24ndCBzZXQgdXAgYm91bmRhcmllcyBmb3Igb3RoZXIgQ1MKKwkJCSAqIG90aGVyIHRoYW4gQ1MwLCBpZiBiYW5rIGludGVybGVhdmluZworCQkJICogaXMgZW5hYmxlZCBhbmQgbm90IENTMitDUzMgaW50ZXJsZWF2ZWQuCisJCQkgKi8KIAkJCWJyZWFrOwogCQl9CiAKQEAgLTg5NCw3ICs5MDUsOSBAQAogCQkJICogb24gZWFjaCBjb250cm9sbGVyIGlzIHR3aWNlIHRoZSBhbW91bnQgcHJlc2VudCBvbgogCQkJICogZWFjaCBjb250cm9sbGVyLgogCQkJICovCi0JCQllYSA9ICgyICogY29tbW9uX2RpbW0tPnRvdGFsX21lbSA+PiBkYndfY2FwX2FkaikgLSAxOworCQkJdW5zaWduZWQgbG9uZyBsb25nIHJhbmtfZGVuc2l0eQorCQkJCQk9IGRpbW1fcGFyYW1zWzBdLmNhcGFjaXR5OworCQkJZWEgPSAoMiAqIChyYW5rX2RlbnNpdHkgPj4gZGJ3X2NhcF9hZGopKSAtIDE7CiAJCX0KIAkJZWxzZSBpZiAoIXBvcHRzLT5tZW1jdGxfaW50ZXJsZWF2aW5nICYmIHBvcHRzLT5iYV9pbnRsdl9jdGwpIHsKIAkJCS8qCkBAIC05MDYsOCArOTE5LDQ0IEBACiAJCQkgKiBjb250cm9sbGVyIG5lZWRzIHRvIGJlIHByb2dyYW1tZWQgaW50byBpdHMKIAkJCSAqIHJlc3BlY3RpdmUgQ1MwX0JORFMuCiAJCQkgKi8KLQkJCXNhID0gY29tbW9uX2RpbW0tPmJhc2VfYWRkcmVzczsKLQkJCWVhID0gc2EgKyAoY29tbW9uX2RpbW0tPnRvdGFsX21lbSA+PiBkYndfY2FwX2FkaikgLSAxOworCQkJdW5zaWduZWQgbG9uZyBsb25nIHJhbmtfZGVuc2l0eQorCQkJCQkJPSBkaW1tX3BhcmFtc1tpLzJdLnJhbmtfZGVuc2l0eTsKKwkJCXN3aXRjaCAocG9wdHMtPmJhX2ludGx2X2N0bCAmIEZTTF9ERFJfQ1MwX0NTMV9DUzJfQ1MzKSB7CisJCQljYXNlIEZTTF9ERFJfQ1MwX0NTMV9DUzJfQ1MzOgorCQkJCS8qIENTMCtDUzErQ1MyK0NTMyBpbnRlcmxlYXZpbmcsIG9ubHkgQ1MwX0NORFMKKwkJCQkgKiBuZWVkcyB0byBiZSBzZXQuCisJCQkJICovCisJCQkJc2EgPSBjb21tb25fZGltbS0+YmFzZV9hZGRyZXNzOworCQkJCWVhID0gc2EgKyAoNCAqIChyYW5rX2RlbnNpdHkgPj4gZGJ3X2NhcF9hZGopKS0xOworCQkJCWJyZWFrOworCQkJY2FzZSBGU0xfRERSX0NTMF9DUzFfQU5EX0NTMl9DUzM6CisJCQkJLyogQ1MwK0NTMSBhbmQgQ1MyK0NTMyBpbnRlcmxlYXZpbmcsIENTMF9DTkRTCisJCQkJICogYW5kIENTMl9DTkRTIG5lZWQgdG8gYmUgc2V0LgorCQkJCSAqLworCQkJCWlmICghKGkmMSkpIHsKKwkJCQkJc2EgPSBkaW1tX3BhcmFtc1tpLzJdLmJhc2VfYWRkcmVzczsKKwkJCQkJZWEgPSBzYSArIChpICogKHJhbmtfZGVuc2l0eSA+PgorCQkJCQkJZGJ3X2NhcF9hZGopKSAtIDE7CisJCQkJfQorCQkJCWJyZWFrOworCQkJY2FzZSBGU0xfRERSX0NTMF9DUzE6CisJCQkJLyogQ1MwK0NTMSBpbnRlcmxlYXZpbmcsIENTMF9DTkRTIG5lZWRzCisJCQkJICogdG8gYmUgc2V0CisJCQkJICovCisJCQkJc2EgPSBjb21tb25fZGltbS0+YmFzZV9hZGRyZXNzOworCQkJCWVhID0gc2EgKyAoMiAqIChyYW5rX2RlbnNpdHkgPj4gZGJ3X2NhcF9hZGopKS0xOworCQkJCWJyZWFrOworCQkJY2FzZSBGU0xfRERSX0NTMl9DUzM6CisJCQkJLyogQ1MyK0NTMyBpbnRlcmxlYXZpbmcqLworCQkJCWlmIChpID09IDIpIHsKKwkJCQkJc2EgPSBkaW1tX3BhcmFtc1tpLzJdLmJhc2VfYWRkcmVzczsKKwkJCQkJZWEgPSBzYSArICgyICogKHJhbmtfZGVuc2l0eSA+PgorCQkJCQkJZGJ3X2NhcF9hZGopKSAtIDE7CisJCQkJfQorCQkJCWJyZWFrOworCQkJZGVmYXVsdDogIC8qIE5vIGJhbmsoY2hpcC1zZWxlY3QpIGludGVybGVhdmluZyAqLworCQkJCWJyZWFrOworCQkJfQogCQl9CiAJCWVsc2UgaWYgKHBvcHRzLT5tZW1jdGxfaW50ZXJsZWF2aW5nICYmICFwb3B0cy0+YmFfaW50bHZfY3RsKSB7CiAJCQkvKgpAQCAtOTU1LDYgKzEwMDQsNyBAQAogCQkJfCAoKGVhICYgMHhGRkYpIDw8IDApCS8qIGVuZGluZyBhZGRyZXNzIE1TQiAqLwogCQkJKTsKIAorCQlkZWJ1ZygiRlNMRERSOiBjc1slZF1fYm5kcyA9IDB4JTA4eFxuIiwgaSwgZGRyLT5jc1tpXS5ibmRzKTsKIAkJc2V0X2Nzbl9jb25maWcoaSwgZGRyLCBwb3B0cywgZGltbV9wYXJhbXMpOwogCQlzZXRfY3NuX2NvbmZpZ18yKGksIGRkcik7CiAJfQpkaWZmIC0tZ2l0IGEvY3B1L21wYzh4eHgvZGRyL2Rkci5oIGIvY3B1L21wYzh4eHgvZGRyL2Rkci5oCmluZGV4IGY1ZGM0MGEuLjlmZmQ1NDggMTAwNjQ0Ci0tLSBhL2NwdS9tcGM4eHh4L2Rkci9kZHIuaAorKysgYi9jcHUvbXBjOHh4eC9kZHIvZGRyLmgKQEAgLTEwLDggKzEwLDggQEAKICNkZWZpbmUgRlNMX0REUl9NQUlOX0gKIAogI2luY2x1ZGUgPGFzbS9mc2xfZGRyX3NkcmFtLmg+CisjaW5jbHVkZSA8YXNtL2ZzbF9kZHJfZGltbV9wYXJhbXMuaD4KIAotI2luY2x1ZGUgImRkcjFfMl9kaW1tX3BhcmFtcy5oIgogI2luY2x1ZGUgImNvbW1vbl90aW1pbmdfcGFyYW1zLmgiCiAKIC8qCkBAIC0zMSwxNyArMzEsMTcgQEAKICAqCiAgKiBBbGwgZGF0YSBzdHJ1Y3R1cmVzIGhhdmUgdG8gYmUgb24gdGhlIHN0YWNrCiAgKi8KLSNkZWZpbmUgQ0ZHX05VTV9ERFJfQ1RMUlMgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMKLSNkZWZpbmUgQ0ZHX0RJTU1fU0xPVFNfUEVSX0NUTFIgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fRERSX0NUTFJTIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCisjZGVmaW5lIENPTkZJR19TWVNfRElNTV9TTE9UU19QRVJfQ1RMUiBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUgogCiB0eXBlZGVmIHN0cnVjdCB7CiAJZ2VuZXJpY19zcGRfZWVwcm9tX3QKLQkgICBzcGRfaW5zdGFsbGVkX2RpbW1zW0NGR19OVU1fRERSX0NUTFJTXVtDRkdfRElNTV9TTE9UU19QRVJfQ1RMUl07CisJICAgc3BkX2luc3RhbGxlZF9kaW1tc1tDT05GSUdfU1lTX05VTV9ERFJfQ1RMUlNdW0NPTkZJR19TWVNfRElNTV9TTE9UU19QRVJfQ1RMUl07CiAJc3RydWN0IGRpbW1fcGFyYW1zX3MKLQkgICBkaW1tX3BhcmFtc1tDRkdfTlVNX0REUl9DVExSU11bQ0ZHX0RJTU1fU0xPVFNfUEVSX0NUTFJdOwotCW1lbWN0bF9vcHRpb25zX3QgbWVtY3RsX29wdHNbQ0ZHX05VTV9ERFJfQ1RMUlNdOwotCWNvbW1vbl90aW1pbmdfcGFyYW1zX3QgY29tbW9uX3RpbWluZ19wYXJhbXNbQ0ZHX05VTV9ERFJfQ1RMUlNdOwotCWZzbF9kZHJfY2ZnX3JlZ3NfdCBmc2xfZGRyX2NvbmZpZ19yZWdbQ0ZHX05VTV9ERFJfQ1RMUlNdOworCSAgIGRpbW1fcGFyYW1zW0NPTkZJR19TWVNfTlVNX0REUl9DVExSU11bQ09ORklHX1NZU19ESU1NX1NMT1RTX1BFUl9DVExSXTsKKwltZW1jdGxfb3B0aW9uc190IG1lbWN0bF9vcHRzW0NPTkZJR19TWVNfTlVNX0REUl9DVExSU107CisJY29tbW9uX3RpbWluZ19wYXJhbXNfdCBjb21tb25fdGltaW5nX3BhcmFtc1tDT05GSUdfU1lTX05VTV9ERFJfQ1RMUlNdOworCWZzbF9kZHJfY2ZnX3JlZ3NfdCBmc2xfZGRyX2NvbmZpZ19yZWdbQ09ORklHX1NZU19OVU1fRERSX0NUTFJTXTsKIH0gZnNsX2Rkcl9pbmZvX3Q7CiAKIC8qIENvbXB1dGUgc3RlcHMgKi8KQEAgLTcxLDYgKzcxLDcgQEAKIAkJCQkgICAgICB1bnNpZ25lZCBpbnQgbnVtYmVyX29mX2RpbW1zKTsKIGV4dGVybiB1bnNpZ25lZCBpbnQgcG9wdWxhdGVfbWVtY3RsX29wdGlvbnMoaW50IGFsbF9ESU1Nc19yZWdpc3RlcmVkLAogCQkJCW1lbWN0bF9vcHRpb25zX3QgKnBvcHRzLAorCQkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAogCQkJCXVuc2lnbmVkIGludCBjdHJsX251bSk7CiAKIGV4dGVybiB1bnNpZ25lZCBpbnQgbWNsa190b19waWNvcyh1bnNpZ25lZCBpbnQgbWNsayk7CmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4eC9kZHIvbWFpbi5jIGIvY3B1L21wYzh4eHgvZGRyL21haW4uYwppbmRleCBjMzQwZDU2Li4yMWExNmQ5IDEwMDY0NAotLS0gYS9jcHUvbXBjOHh4eC9kZHIvbWFpbi5jCisrKyBiL2NwdS9tcGM4eHh4L2Rkci9tYWluLmMKQEAgLTE2NCw2ICsxNjQsMjQgQEAKIAl9CiAJaWYgKGogPT0gMikgewogCQkqbWVtY3RsX2ludGVybGVhdmluZyA9IDE7CisKKwkJcHJpbnRmKCJcbk1lbW9yeSBjb250cm9sbGVyIGludGVybGVhdmluZyBlbmFibGVkOiAiKTsKKworCQlzd2l0Y2ggKHBpbmZvLT5tZW1jdGxfb3B0c1swXS5tZW1jdGxfaW50ZXJsZWF2aW5nX21vZGUpIHsKKwkJY2FzZSBGU0xfRERSX0NBQ0hFX0xJTkVfSU5URVJMRUFWSU5HOgorCQkJcHJpbnRmKCJDYWNoZS1saW5lIGludGVybGVhdmluZyFcbiIpOworCQkJYnJlYWs7CisJCWNhc2UgRlNMX0REUl9QQUdFX0lOVEVSTEVBVklORzoKKwkJCXByaW50ZigiUGFnZSBpbnRlcmxlYXZpbmchXG4iKTsKKwkJCWJyZWFrOworCQljYXNlIEZTTF9ERFJfQkFOS19JTlRFUkxFQVZJTkc6CisJCQlwcmludGYoIkJhbmsgaW50ZXJsZWF2aW5nIVxuIik7CisJCQlicmVhazsKKwkJY2FzZSBGU0xfRERSX1NVUEVSQkFOS19JTlRFUkxFQVZJTkc6CisJCQlwcmludGYoIlN1cGVyIGJhbmsgaW50ZXJsZWF2aW5nXG4iKTsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CiAJfQogCiAJLyogQ2hlY2sgdGhhdCBhbGwgY29udHJvbGxlcnMgYXJlIHJhbmsgaW50ZXJsZWF2aW5nLiAqLwpAQCAtMTc1LDEwICsxOTMsMzAgQEAKIAl9CiAJaWYgKGogPT0gMikgewogCQkqcmFua19pbnRlcmxlYXZpbmcgPSAxOworCisJCXByaW50ZigiQmFuayhjaGlwLXNlbGVjdCkgaW50ZXJsZWF2aW5nIGVuYWJsZWQ6ICIpOworCisJCXN3aXRjaCAocGluZm8tPm1lbWN0bF9vcHRzWzBdLmJhX2ludGx2X2N0bCAmCisJCQkJCQlGU0xfRERSX0NTMF9DUzFfQ1MyX0NTMykgeworCQljYXNlIEZTTF9ERFJfQ1MwX0NTMV9DUzJfQ1MzOgorCQkJcHJpbnRmKCJDUzArQ1MxK0NTMitDUzNcbiIpOworCQkJYnJlYWs7CisJCWNhc2UgRlNMX0REUl9DUzBfQ1MxOgorCQkJcHJpbnRmKCJDUzArQ1MxXG4iKTsKKwkJCWJyZWFrOworCQljYXNlIEZTTF9ERFJfQ1MyX0NTMzoKKwkJCXByaW50ZigiQ1MyK0NTM1xuIik7CisJCQlicmVhazsKKwkJY2FzZSBGU0xfRERSX0NTMF9DUzFfQU5EX0NTMl9DUzM6CisJCQlwcmludGYoIkNTMCtDUzEgYW5kIENTMitDUzNcbiIpOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KIAl9CiAKIAlpZiAoKm1lbWN0bF9pbnRlcmxlYXZpbmcpIHsKIAkJcGh5c19hZGRyX3QgYWRkcjsKKwkJcGh5c19zaXplX3QgdG90YWxfbWVtX3Blcl9jdGxyID0gMDsKIAogCQkvKgogCQkgKiBJZiBpbnRlcmxlYXZpbmcgYmV0d2VlbiBtZW1vcnkgY29udHJvbGxlcnMsCkBAIC0xOTcsMTQgKzIzNSwxOCBAQAogCiAJCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUzsgaSsrKSB7CiAJCQlhZGRyID0gMDsKKwkJCXBpbmZvLT5jb21tb25fdGltaW5nX3BhcmFtc1tpXS5iYXNlX2FkZHJlc3MgPQorCQkJCQkJKHBoeXNfYWRkcl90KWFkZHI7CiAJCQlmb3IgKGogPSAwOyBqIDwgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFI7IGorKykgewogCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBjYXAKIAkJCQkJPSBwaW5mby0+ZGltbV9wYXJhbXNbaV1bal0uY2FwYWNpdHk7CiAKIAkJCQlwaW5mby0+ZGltbV9wYXJhbXNbaV1bal0uYmFzZV9hZGRyZXNzID0gYWRkcjsKIAkJCQlhZGRyICs9IChwaHlzX2FkZHJfdCkoY2FwID4+IGRid19jYXBfYWRqW2ldKTsKKwkJCQl0b3RhbF9tZW1fcGVyX2N0bHIgKz0gY2FwID4+IGRid19jYXBfYWRqW2ldOwogCQkJfQogCQl9CisJCXBpbmZvLT5jb21tb25fdGltaW5nX3BhcmFtc1swXS50b3RhbF9tZW0gPSB0b3RhbF9tZW1fcGVyX2N0bHI7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogU2ltcGxlIGxpbmVhciBhc3NpZ25tZW50IGlmIG1lbW9yeQpAQCAtMzE0LDcgKzM1Niw4IEBACiAJCQkgKi8KIAkJCXBvcHVsYXRlX21lbWN0bF9vcHRpb25zKAogCQkJCQl0aW1pbmdfcGFyYW1zW2ldLmFsbF9ESU1Nc19yZWdpc3RlcmVkLAotCQkJCQkmcGluZm8tPm1lbWN0bF9vcHRzW2ldLCBpKTsKKwkJCQkJJnBpbmZvLT5tZW1jdGxfb3B0c1tpXSwKKwkJCQkJcGluZm8tPmRpbW1fcGFyYW1zW2ldLCBpKTsKIAkJfQogCiAJY2FzZSBTVEVQX0FTU0lHTl9BRERSRVNTRVM6CmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4eC9kZHIvb3B0aW9ucy5jIGIvY3B1L21wYzh4eHgvZGRyL29wdGlvbnMuYwppbmRleCA2YzJiNDNjLi43MTRlODhkIDEwMDY0NAotLS0gYS9jcHUvbXBjOHh4eC9kZHIvb3B0aW9ucy5jCisrKyBiL2NwdS9tcGM4eHh4L2Rkci9vcHRpb25zLmMKQEAgLTEzLDEzICsxMywxNiBAQAogCiAvKiBCb2FyZC1zcGVjaWZpYyBmdW5jdGlvbnMgZGVmaW5lZCBpbiBlYWNoIGJvYXJkJ3MgZGRyLmMgKi8KIGV4dGVybiB2b2lkIGZzbF9kZHJfYm9hcmRfb3B0aW9ucyhtZW1jdGxfb3B0aW9uc190ICpwb3B0cywKKwkJZGltbV9wYXJhbXNfdCAqcGRpbW0sCiAJCXVuc2lnbmVkIGludCBjdHJsX251bSk7CiAKIHVuc2lnbmVkIGludCBwb3B1bGF0ZV9tZW1jdGxfb3B0aW9ucyhpbnQgYWxsX0RJTU1zX3JlZ2lzdGVyZWQsCiAJCQltZW1jdGxfb3B0aW9uc190ICpwb3B0cywKKwkJCWRpbW1fcGFyYW1zX3QgKnBkaW1tLAogCQkJdW5zaWduZWQgaW50IGN0cmxfbnVtKQogewogCXVuc2lnbmVkIGludCBpOworCWNvbnN0IGNoYXIgKnA7CiAKIAkvKiBDaGlwIHNlbGVjdCBvcHRpb25zLiAqLwogCkBAIC0xNzksMTkgKzE4Miw4OCBAQAogI2Vycm9yICJGSVhNRSBkZXRlcm1pbmUgZm91ciBhY3RpdmF0ZXMgZm9yIEREUjMiCiAjZW5kaWYKIAotCS8qIE9EVCBzaG91bGQgb25seSBiZSB1c2VkIGZvciBERFIyICovCi0KLQkvKiBGSVhNRT8gKi8KLQogCS8qCi0JICogSW50ZXJsZWF2aW5nIGNoZWNrcy4KKwkgKiBDaGVjayBpbnRlcmxlYXZpbmcgY29uZmlndXJhdGlvbiBmcm9tIGVudmlyb25tZW50LgorCSAqIFBsZWFzZSByZWZlciB0byBkb2MvUkVBRE1FLmZzbC1kZHIgZm9yIHRoZSBkZXRhaWwuCiAJICoKIAkgKiBJZiBtZW1vcnkgY29udHJvbGxlciBpbnRlcmxlYXZpbmcgaXMgZW5hYmxlZCwgdGhlbiB0aGUgZGF0YQogCSAqIGJ1cyB3aWR0aHMgbXVzdCBiZSBwcm9ncmFtbWVkIGlkZW50aWNhbGx5IGZvciB0aGUgMiBtZW1vcnkKIAkgKiBjb250cm9sbGVycy4KKwkgKgorCSAqIFhYWDogQXR0ZW1wdCB0byBzZXQgYm90aCBjb250cm9sbGVycyB0byB0aGUgc2FtZSBjaGlwIHNlbGVjdAorCSAqIGludGVybGVhdmluZyBtb2RlLiBJdCB3aWxsIGRvIGEgYmVzdCBlZmZvcnQgdG8gZ2V0IHRoZQorCSAqIHJlcXVlc3RlZCByYW5rcyBpbnRlcmxlYXZlZCB0b2dldGhlciBzdWNoIHRoYXQgdGhlIHJlc3VsdAorCSAqIHNob3VsZCBiZSBhIHN1YnNldCBvZiB0aGUgcmVxdWVzdGVkIGNvbmZpZ3VyYXRpb24uCiAJICovCisJaWYgKChwID0gZ2V0ZW52KCJtZW1jdGxfaW50bHZfY3RsIikpICE9IE5VTEwpIHsKKwkJaWYgKHBkaW1tWzBdLm5fcmFua3MgPT0gMCkgeworCQkJcHJpbnRmKCJUaGVyZSBpcyBubyByYW5rIG9uIENTMC4gQmVjYXVzZSBvbmx5IHJhbmsgb24gXAorCQkJCUNTMCBhbmQgcmFua3MgY2hpcC1zZWxlY3QgaW50ZXJsZWF2ZWQgd2l0aCBDUzBcCisJCQkJYXJlIGNvbnRyb2xsZXIgaW50ZXJsZWF2ZWQsIGZvcmNlIG5vbiBtZW1vcnkgXAorCQkJCWNvbnRyb2xsZXIgaW50ZXJsZWF2aW5nXG4iKTsKKwkJCXBvcHRzLT5tZW1jdGxfaW50ZXJsZWF2aW5nID0gMDsKKwkJfSBlbHNlIHsKKwkJCXBvcHRzLT5tZW1jdGxfaW50ZXJsZWF2aW5nID0gMTsKKwkJCWlmIChzdHJjbXAocCwgImNhY2hlbGluZSIpID09IDApCisJCQkJcG9wdHMtPm1lbWN0bF9pbnRlcmxlYXZpbmdfbW9kZSA9CisJCQkJCUZTTF9ERFJfQ0FDSEVfTElORV9JTlRFUkxFQVZJTkc7CisJCQllbHNlIGlmIChzdHJjbXAocCwgInBhZ2UiKSA9PSAwKQorCQkJCXBvcHRzLT5tZW1jdGxfaW50ZXJsZWF2aW5nX21vZGUgPQorCQkJCQlGU0xfRERSX1BBR0VfSU5URVJMRUFWSU5HOworCQkJZWxzZSBpZiAoc3RyY21wKHAsICJiYW5rIikgPT0gMCkKKwkJCQlwb3B0cy0+bWVtY3RsX2ludGVybGVhdmluZ19tb2RlID0KKwkJCQkJRlNMX0REUl9CQU5LX0lOVEVSTEVBVklORzsKKwkJCWVsc2UgaWYgKHN0cmNtcChwLCAic3VwZXJiYW5rIikgPT0gMCkKKwkJCQlwb3B0cy0+bWVtY3RsX2ludGVybGVhdmluZ19tb2RlID0KKwkJCQkJRlNMX0REUl9TVVBFUkJBTktfSU5URVJMRUFWSU5HOworCQkJZWxzZQorCQkJCXBvcHRzLT5tZW1jdGxfaW50ZXJsZWF2aW5nX21vZGUgPQorCQkJCQkJc2ltcGxlX3N0cnRvdWwocCwgTlVMTCwgMCk7CisJCX0KKwl9CisKKwlpZiggKHAgPSBnZXRlbnYoImJhX2ludGx2X2N0bCIpKSAhPSBOVUxMKSB7CisJCWlmIChzdHJjbXAocCwgImNzMF9jczEiKSA9PSAwKQorCQkJcG9wdHMtPmJhX2ludGx2X2N0bCA9IEZTTF9ERFJfQ1MwX0NTMTsKKwkJZWxzZSBpZiAoc3RyY21wKHAsICJjczJfY3MzIikgPT0gMCkKKwkJCXBvcHRzLT5iYV9pbnRsdl9jdGwgPSBGU0xfRERSX0NTMl9DUzM7CisJCWVsc2UgaWYgKHN0cmNtcChwLCAiY3MwX2NzMV9hbmRfY3MyX2NzMyIpID09IDApCisJCQlwb3B0cy0+YmFfaW50bHZfY3RsID0gRlNMX0REUl9DUzBfQ1MxX0FORF9DUzJfQ1MzOworCQllbHNlIGlmIChzdHJjbXAocCwgImNzMF9jczFfY3MyX2NzMyIpID09IDApCisJCQlwb3B0cy0+YmFfaW50bHZfY3RsID0gRlNMX0REUl9DUzBfQ1MxX0NTMl9DUzM7CisJCWVsc2UKKwkJCXBvcHRzLT5iYV9pbnRsdl9jdGwgPSBzaW1wbGVfc3RydG91bChwLCBOVUxMLCAwKTsKKworCQlzd2l0Y2ggKHBvcHRzLT5iYV9pbnRsdl9jdGwgJiBGU0xfRERSX0NTMF9DUzFfQ1MyX0NTMykgeworCQljYXNlIEZTTF9ERFJfQ1MwX0NTMV9DUzJfQ1MzOgorCQljYXNlIEZTTF9ERFJfQ1MwX0NTMToKKwkJCWlmIChwZGltbVswXS5uX3JhbmtzICE9IDIpIHsKKwkJCQlwb3B0cy0+YmFfaW50bHZfY3RsID0gMDsKKwkJCQlwcmludGYoIk5vIGVub3VnaCBiYW5rKGNoaXAtc2VsZWN0KSBmb3IgXAorCQkJCQlDUzArQ1MxLCBmb3JjZSBub24taW50ZXJsZWF2aW5nIVxuIik7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSBGU0xfRERSX0NTMl9DUzM6CisJCQlpZiAocGRpbW1bMV0ubl9yYW5rcyAhPTIpeworCQkJCXBvcHRzLT5iYV9pbnRsdl9jdGwgPSAwOworCQkJCXByaW50ZigiTm8gZW5vdWdoIGJhbmsoQ1MpIGZvciBDUzIrQ1MzLCBcCisJCQkJCWZvcmNlIG5vbi1pbnRlcmxlYXZpbmchXG4iKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIEZTTF9ERFJfQ1MwX0NTMV9BTkRfQ1MyX0NTMzoKKwkJCWlmICgocGRpbW1bMF0ubl9yYW5rcyAhPSAyKXx8KHBkaW1tWzFdLm5fcmFua3MgIT0gMikpIHsKKwkJCQlwb3B0cy0+YmFfaW50bHZfY3RsID0gMDsKKwkJCQlwcmludGYoIk5vIGVub3VnaCBiYW5rKENTKSBmb3IgQ1MwK0NTMSBvciBcCisJCQkJCSBDUzIrQ1MzLCBmb3JjZSBub24taW50ZXJsZWF2aW5nIVxuIik7CisJCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXBvcHRzLT5iYV9pbnRsdl9jdGwgPSAwOworCQkJYnJlYWs7CisJCX0KKwl9CiAKLQlmc2xfZGRyX2JvYXJkX29wdGlvbnMocG9wdHMsIGN0cmxfbnVtKTsKKwlmc2xfZGRyX2JvYXJkX29wdGlvbnMocG9wdHMsIHBkaW1tLCBjdHJsX251bSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2NwdS9uaW9zL2FzbWkuYyBiL2NwdS9uaW9zL2FzbWkuYwppbmRleCBjMmNkOGZlLi4yYzJlODM4IDEwMDY0NAotLS0gYS9jcHUvbmlvcy9hc21pLmMKKysrIGIvY3B1L25pb3MvYXNtaS5jCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSA8Y29tbWFuZC5oPgogI2luY2x1ZGUgPG5pb3MtaW8uaD4KIAotI2lmICFkZWZpbmVkKENGR19OSU9TX0FTTUlCQVNFKQotI2Vycm9yICIqKiogQ0ZHX05JT1NfQVNNSUJBU0Ugbm90IGRlZmluZWQgKioqIgorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19BU01JQkFTRSkKKyNlcnJvciAiKioqIENPTkZJR19TWVNfTklPU19BU01JQkFTRSBub3QgZGVmaW5lZCAqKioiCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC02OSw3ICs2OSw3IEBACiAjZGVmaW5lIEFTTUlfU1RBVFVTX1dJUAkJKDE8PDApCS8qIFdyaXRlIGluIHByb2dyZXNzICovCiAjZGVmaW5lIEFTTUlfU1RBVFVTX1dFTAkJKDE8PDEpCS8qIFdyaXRlIGVuYWJsZSBsYXRjaCAqLwogCi1zdGF0aWMgbmlvc19hc21pX3QgKmFzbWkgPSAobmlvc19hc21pX3QgKilDRkdfTklPU19BU01JQkFTRTsKK3N0YXRpYyBuaW9zX2FzbWlfdCAqYXNtaSA9IChuaW9zX2FzbWlfdCAqKUNPTkZJR19TWVNfTklPU19BU01JQkFTRTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBEZXZpY2UgYWNjZXNzCmRpZmYgLS1naXQgYS9jcHUvbmlvcy9pbnRlcnJ1cHRzLmMgYi9jcHUvbmlvcy9pbnRlcnJ1cHRzLmMKaW5kZXggNzVlNDkxZC4uNTVhNTcxOCAxMDA2NDQKLS0tIGEvY3B1L25pb3MvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9uaW9zL2ludGVycnVwdHMuYwpAQCAtNjgsMTUgKzY4LDE1IEBACiAvKiBUaGUgYm9hcmQgbXVzdCBoYW5kbGUgdGhpcyBpbnRlcnJ1cHQgaWYgYSB0aW1lciBpcyBub3QKICAqIHByb3ZpZGVkLgogICovCi0jaWYgZGVmaW5lZChDRkdfTklPU19UTVJCQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX1RNUkJBU0UpCiB2b2lkIHRpbWVyX2ludGVycnVwdCAoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CiAJLyogSW50ZXJydXB0IGlzIGNsZWFyZWQgYnkgd3JpdGluZyBhbnl0aGluZyB0byB0aGUKIAkgKiBzdGF0dXMgcmVnaXN0ZXIuCiAJICovCi0Jbmlvc190aW1lcl90ICp0bXIgPSAobmlvc190aW1lcl90ICopQ0ZHX05JT1NfVE1SQkFTRTsKKwluaW9zX3RpbWVyX3QgKnRtciA9IChuaW9zX3RpbWVyX3QgKilDT05GSUdfU1lTX05JT1NfVE1SQkFTRTsKIAl0bXItPnN0YXR1cyA9IDA7Ci0JdGltZXN0YW1wICs9IENGR19OSU9TX1RNUk1TOworCXRpbWVzdGFtcCArPSBDT05GSUdfU1lTX05JT1NfVE1STVM7CiAjaWZkZWYgQ09ORklHX1NUQVRVU19MRUQKIAlzdGF0dXNfbGVkX3RpY2sodGltZXN0YW1wKTsKICNlbmRpZgpAQCAtMTI1LDE0ICsxMjUsMTQgQEAKIHsKIAlpbnQgdmVjOwogCi0jaWYgZGVmaW5lZChDRkdfTklPU19UTVJCQVNFKQotCW5pb3NfdGltZXJfdCAqdG1yID0gKG5pb3NfdGltZXJfdCAqKUNGR19OSU9TX1RNUkJBU0U7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfVE1SQkFTRSkKKwluaW9zX3RpbWVyX3QgKnRtciA9IChuaW9zX3RpbWVyX3QgKilDT05GSUdfU1lTX05JT1NfVE1SQkFTRTsKIAogCXRtci0+Y29udHJvbCAmPSB+TklPU19USU1FUl9JVE87CiAJdG1yLT5jb250cm9sIHw9IE5JT1NfVElNRVJfU1RPUDsKLSNpZiBkZWZpbmVkKENGR19OSU9TX1RNUkNOVCkKLQl0bXItPnBlcmlvZGwgPSBDRkdfTklPU19UTVJDTlQgJiAweGZmZmY7Ci0JdG1yLT5wZXJpb2RoID0gKENGR19OSU9TX1RNUkNOVCA+PiAxNikgJiAweGZmZmY7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfVE1SQ05UKQorCXRtci0+cGVyaW9kbCA9IENPTkZJR19TWVNfTklPU19UTVJDTlQgJiAweGZmZmY7CisJdG1yLT5wZXJpb2RoID0gKENPTkZJR19TWVNfTklPU19UTVJDTlQgPj4gMTYpICYgMHhmZmZmOwogI2VuZGlmCiAjZW5kaWYKIApAQCAtMTQzLDExICsxNDMsMTEgQEAKIAl9CiAKIAkvKiBOZWVkIHRpbXVzIGludGVycnVwdHVzIC0tIHN0YXJ0IHRoZSBsb3ByaSB0aW1lciAqLwotI2lmIGRlZmluZWQoQ0ZHX05JT1NfVE1SQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19UTVJCQVNFKQogCXRtci0+Y29udHJvbCB8PSAoIE5JT1NfVElNRVJfSVRPIHwKIAkJCSAgTklPU19USU1FUl9DT05UIHwKIAkJCSAgTklPU19USU1FUl9TVEFSVCApOwotCWlwcmkgKENGR19OSU9TX1RNUklSUSArIDEpOworCWlwcmkgKENPTkZJR19TWVNfTklPU19UTVJJUlEgKyAxKTsKICNlbmRpZgogCWVuYWJsZV9pbnRlcnJ1cHRzICgpOwogCXJldHVybiAoMCk7CmRpZmYgLS1naXQgYS9jcHUvbmlvcy9zZXJpYWwuYyBiL2NwdS9uaW9zL3NlcmlhbC5jCmluZGV4IDVlY2RjNmQuLjQ0YWE2MDAgMTAwNjQ0Ci0tLSBhL2NwdS9uaW9zL3NlcmlhbC5jCisrKyBiL2NwdS9uaW9zL3NlcmlhbC5jCkBAIC0zMyw3ICszMyw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DT05TT0xFX0pUQUcpCiAKLXN0YXRpYyBuaW9zX2p0YWdfdCAqanRhZyA9IChuaW9zX2p0YWdfdCAqKUNGR19OSU9TX0NPTlNPTEU7CitzdGF0aWMgbmlvc19qdGFnX3QgKmp0YWcgPSAobmlvc19qdGFnX3QgKilDT05GSUdfU1lTX05JT1NfQ09OU09MRTsKIAogdm9pZCBzZXJpYWxfc2V0YnJnKCB2b2lkICl7IHJldHVybjsgfQogaW50IHNlcmlhbF9pbml0KCB2b2lkICkgeyByZXR1cm4oMCk7fQpAQCAtNzEsOSArNzEsOSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZWxzZQogCi1zdGF0aWMgbmlvc191YXJ0X3QgKnVhcnQgPSAobmlvc191YXJ0X3QgKilDRkdfTklPU19DT05TT0xFOworc3RhdGljIG5pb3NfdWFydF90ICp1YXJ0ID0gKG5pb3NfdWFydF90ICopQ09ORklHX1NZU19OSU9TX0NPTlNPTEU7CiAKLSNpZiBkZWZpbmVkKENGR19OSU9TX0ZJWEVEQkFVRCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19GSVhFREJBVUQpCiAKIC8qIEV2ZXJ5dGhpbmcncyBhbHJlYWR5IHNldHVwIGZvciBmaXhlZC1iYXVkIFBURgogICogYXNzaWdubWVudApAQCAtOTgsNyArOTgsNyBAQAogCXJldHVybiAoMCk7CiB9CiAKLSNlbmRpZiAvKiBDRkdfTklPU19GSVhFREJBVUQgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05JT1NfRklYRURCQVVEICovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvY3B1L25pb3Mvc3BpLmMgYi9jcHUvbmlvcy9zcGkuYwppbmRleCA2NDA4MTgwLi44OWY5Nzk3IDEwMDY0NAotLS0gYS9jcHUvbmlvcy9zcGkuYworKysgYi9jcHUvbmlvcy9zcGkuYwpAQCAtMjgsMTkgKzI4LDE5IEBACiAjaW5jbHVkZSA8bmlvcy1pby5oPgogI2luY2x1ZGUgPHNwaS5oPgogCi0jaWYgIWRlZmluZWQoQ0ZHX05JT1NfU1BJQkFTRSkKLSNlcnJvciAiKioqIENGR19OSU9TX1NQSUJBU0Ugbm90IGRlZmluZWQgKioqIgorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19TUElCQVNFKQorI2Vycm9yICIqKiogQ09ORklHX1NZU19OSU9TX1NQSUJBU0Ugbm90IGRlZmluZWQgKioqIgogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChDRkdfTklPU19TUElCSVRTKQotI2Vycm9yICIqKiogQ0ZHX05JT1NfU1BJQklUUyBub3QgZGVmaW5lZCAqKioiCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19OSU9TX1NQSUJJVFMpCisjZXJyb3IgIioqKiBDT05GSUdfU1lTX05JT1NfU1BJQklUUyBub3QgZGVmaW5lZCAqKioiCiAjZW5kaWYKIAotI2lmIChDRkdfTklPU19TUElCSVRTICE9IDgpICYmIChDRkdfTklPU19TUElCSVRTICE9IDE2KQotI2Vycm9yICIqKiogQ0ZHX05JT1NfU1BJQklUUyBzaG91bGQgYmUgZWl0aGVyIDggb3IgMTYgKioqIgorI2lmIChDT05GSUdfU1lTX05JT1NfU1BJQklUUyAhPSA4KSAmJiAoQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgIT0gMTYpCisjZXJyb3IgIioqKiBDT05GSUdfU1lTX05JT1NfU1BJQklUUyBzaG91bGQgYmUgZWl0aGVyIDggb3IgMTYgKioqIgogI2VuZGlmCiAKLXN0YXRpYyBuaW9zX3NwaV90CSpzcGkJPSAobmlvc19zcGlfdCAqKUNGR19OSU9TX1NQSUJBU0U7CitzdGF0aWMgbmlvc19zcGlfdAkqc3BpCT0gKG5pb3Nfc3BpX3QgKilDT05GSUdfU1lTX05JT1NfU1BJQkFTRTsKIAogLyogV2FybmluZzoKICAqIFlvdSBjYW5ub3QgZW5hYmxlIERFQlVHIGZvciBlYXJseSBzeXN0ZW0gaW5pdGFsaXphdGlvbiwgaS4gZS4gd2hlbgpAQCAtMTM5LDcgKzEzOSw3IEBACiAJaWYgKGZsYWdzICYgU1BJX1hGRVJfQkVHSU4pCiAJCXNwaV9jc19hY3RpdmF0ZShzbGF2ZSk7CiAKLQlpZiAoIShmbGFncyAmIFNQSV9YRkVSX0VORCkgfHwgYml0bGVuID4gQ0ZHX05JT1NfU1BJQklUUykgeworCWlmICghKGZsYWdzICYgU1BJX1hGRVJfRU5EKSB8fCBiaXRsZW4gPiBDT05GSUdfU1lTX05JT1NfU1BJQklUUykgewogCQkvKiBsZWF2ZSBjaGlwIHNlbGVjdCBhY3RpdmUgKi8KIAkJc3BpLT5jb250cm9sIHw9IE5JT1NfU1BJX1NTTzsKIAl9CkBAIC0xNDcsNyArMTQ3LDcgQEAKIAlmb3IgKAlqID0gMDsJCQkJLyogY291bnQgZWFjaCBieXRlIGluICovCiAJCWogPCAoKGJpdGxlbiArIDcpIC8gOCk7CQkvKiBkb3V0W10gYW5kIGRpbltdICovCiAKLSNpZgkoQ0ZHX05JT1NfU1BJQklUUyA9PSA4KQorI2lmCShDT05GSUdfU1lTX05JT1NfU1BJQklUUyA9PSA4KQogCQlqKyspIHsKIAogCQl3aGlsZSAoKHNwaS0+c3RhdHVzICYgTklPU19TUElfVFJEWSkgPT0gMCkKQEAgLTE1OCw3ICsxNTgsNyBAQAogCQkJOwogCQlyeGRbal0gPSAodW5zaWduZWQgY2hhcikoc3BpLT5yeGRhdGEgJiAweGZmKTsKIAotI2VsaWYJKENGR19OSU9TX1NQSUJJVFMgPT0gMTYpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgPT0gMTYpCiAJCWorKywgaisrKSB7CiAKIAkJd2hpbGUgKChzcGktPnN0YXR1cyAmIE5JT1NfU1BJX1RSRFkpID09IDApCkBAIC0xNzUsMTIgKzE3NSwxMiBAQAogCQkJcnhkW2orMV0gPSAodW5zaWduZWQgY2hhcikoc3BpLT5yeGRhdGEgJiAweGZmKTsKIAogI2Vsc2UKLSNlcnJvciAiKioqIHVuc3VwcG9ydGVkIHZhbHVlIG9mIENGR19OSU9TX1NQSUJJVFMgKioqIgorI2Vycm9yICIqKiogdW5zdXBwb3J0ZWQgdmFsdWUgb2YgQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgKioqIgogI2VuZGlmCiAKIAl9CiAKLQlpZiAoYml0bGVuID4gQ0ZHX05JT1NfU1BJQklUUyAmJiAoZmxhZ3MgJiBTUElfWEZFUl9FTkQpKSB7CisJaWYgKGJpdGxlbiA+IENPTkZJR19TWVNfTklPU19TUElCSVRTICYmIChmbGFncyAmIFNQSV9YRkVSX0VORCkpIHsKIAkJc3BpLT5jb250cm9sICY9IH5OSU9TX1NQSV9TU087CiAJfQogCmRpZmYgLS1naXQgYS9jcHUvbmlvcy9zdGFydC5TIGIvY3B1L25pb3Mvc3RhcnQuUwppbmRleCA5ZTczOTQxLi41ZDE1ZThkIDEwMDY0NAotLS0gYS9jcHUvbmlvcy9zdGFydC5TCisrKyBiL2NwdS9uaW9zL3N0YXJ0LlMKQEAgLTcxLDEwICs3MSwxMCBAQAogCS8qCiAJICogU1RBQ0sKIAkgKi8KLQlwZngJJWhpKENGR19JTklUX1NQKQotCW1vdmkJJXNwLCAlbG8oQ0ZHX0lOSVRfU1ApCi0JcGZ4CSV4aGkoQ0ZHX0lOSVRfU1ApCi0JbW92aGkJJXNwLCAleGxvKENGR19JTklUX1NQKQorCXBmeAklaGkoQ09ORklHX1NZU19JTklUX1NQKQorCW1vdmkJJXNwLCAlbG8oQ09ORklHX1NZU19JTklUX1NQKQorCXBmeAkleGhpKENPTkZJR19TWVNfSU5JVF9TUCkKKwltb3ZoaQklc3AsICV4bG8oQ09ORklHX1NZU19JTklUX1NQKQogCW1vdgklZnAsICVzcAogCiAJcGZ4CSVoaSg0KjE2KQpAQCAtMTUyLDEwICsxNTIsMTAgQEAKIAkvKgogCSAqIElOSVQgVkVDVE9SIFRBQkxFCiAJICovCi0JcGZ4CSVoaShDRkdfVkVDVF9CQVNFKQotCW1vdmkJJWcwLCAlbG8oQ0ZHX1ZFQ1RfQkFTRSkKLQlwZngJJXhoaShDRkdfVkVDVF9CQVNFKQotCW1vdmhpCSVnMCwgJXhsbyhDRkdfVkVDVF9CQVNFKQkvKiBkc3QgKi8KKwlwZngJJWhpKENPTkZJR19TWVNfVkVDVF9CQVNFKQorCW1vdmkJJWcwLCAlbG8oQ09ORklHX1NZU19WRUNUX0JBU0UpCisJcGZ4CSV4aGkoQ09ORklHX1NZU19WRUNUX0JBU0UpCisJbW92aGkJJWcwLCAleGxvKENPTkZJR19TWVNfVkVDVF9CQVNFKQkvKiBkc3QgKi8KIAltb3YJJWwwLCAlZzAKIAogCXBmeAklaGkoX3ZlY3RvcnMpCmRpZmYgLS1naXQgYS9jcHUvbmlvczIvY3B1LmMgYi9jcHUvbmlvczIvY3B1LmMKaW5kZXggZjQyMTdhOC4uNjM3OTUzNCAxMDA2NDQKLS0tIGEvY3B1L25pb3MyL2NwdS5jCisrKyBiL2NwdS9uaW9zMi9jcHUuYwpAQCAtMjUsMTQgKzI1LDE0IEBACiAjaW5jbHVkZSA8bmlvczIuaD4KICNpbmNsdWRlIDxuaW9zMi1pby5oPgogCi0jaWYgZGVmaW5lZCAoQ0ZHX05JT1NfU1lTSURfQkFTRSkKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRSkKIGV4dGVybiB2b2lkIGRpc3BsYXlfc3lzaWQgKHZvaWQpOwotI2VuZGlmIC8qIENGR19OSU9TX1NZU0lEX0JBU0UgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRSAqLwogCiBpbnQgY2hlY2tjcHUgKHZvaWQpCiB7CiAJcHJpbnRmICgiQ1BVICAgOiBOaW9zLUlJXG4iKTsKLSNpZiAhZGVmaW5lZChDRkdfTklPU19TWVNJRF9CQVNFKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19TWVNJRF9CQVNFKQogCXByaW50ZiAoIlNZU0lEIDogPHVua25vd24+XG4iKTsKICNlbHNlCiAJZGlzcGxheV9zeXNpZCAoKTsKQEAgLTQzLDcgKzQzLDcgQEAKIAogaW50IGRvX3Jlc2V0ICh2b2lkKQogewotCXZvaWQgKCpyc3QpKHZvaWQpID0gKHZvaWQoKikodm9pZCkpQ0ZHX1JFU0VUX0FERFI7CisJdm9pZCAoKnJzdCkodm9pZCkgPSAodm9pZCgqKSh2b2lkKSlDT05GSUdfU1lTX1JFU0VUX0FERFI7CiAJZGlzYWJsZV9pbnRlcnJ1cHRzICgpOwogCXJzdCgpOwogCXJldHVybigwKTsKZGlmZiAtLWdpdCBhL2NwdS9uaW9zMi9lcGNzLmMgYi9jcHUvbmlvczIvZXBjcy5jCmluZGV4IDQxNGMzOGMuLjk2OGI1MGYgMTAwNjQ0Ci0tLSBhL2NwdS9uaW9zMi9lcGNzLmMKKysrIGIvY3B1L25pb3MyL2VwY3MuYwpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLSNpZiBkZWZpbmVkKENGR19OSU9TX0VQQ1NCQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX0VQQ1NCQVNFKQogI2luY2x1ZGUgPGNvbW1hbmQuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxuaW9zMi1pby5oPgpAQCAtNzIsNyArNzIsNyBAQAogICovCiAjZGVmaW5lIEVQQ1NfVElNRU9VVAkJMTAwCS8qIDEwMCBtc2VjIHRpbWVvdXQgKi8KIAotc3RhdGljIG5pb3Nfc3BpX3QgKmVwY3MgPSAobmlvc19zcGlfdCAqKUNGR19OSU9TX0VQQ1NCQVNFOworc3RhdGljIG5pb3Nfc3BpX3QgKmVwY3MgPSAobmlvc19zcGlfdCAqKUNPTkZJR19TWVNfTklPU19FUENTQkFTRTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBEZXZpY2UgYWNjZXNzCmRpZmYgLS1naXQgYS9jcHUvbmlvczIvaW50ZXJydXB0cy5jIGIvY3B1L25pb3MyL2ludGVycnVwdHMuYwppbmRleCBlYzVkYjMxYi4uMWMzNTY2ZSAxMDA2NDQKLS0tIGEvY3B1L25pb3MyL2ludGVycnVwdHMuYworKysgYi9jcHUvbmlvczIvaW50ZXJydXB0cy5jCkBAIC0zNyw4ICszNyw4IEBACiAjaW5jbHVkZSA8c3RhdHVzX2xlZC5oPgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19OSU9TX1RNUkJBU0UpICYmICFkZWZpbmVkKENGR19OSU9TX1RNUklSUSkKLSNlcnJvciBDRkdfTklPU19UTVJJUlEgbm90IGRlZmluZWQgKHNlZSBkb2N1bWVudGF0aW9uKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX1RNUkJBU0UpICYmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19UTVJJUlEpCisjZXJyb3IgQ09ORklHX1NZU19OSU9TX1RNUklSUSBub3QgZGVmaW5lZCAoc2VlIGRvY3VtZW50YXRpb24pCiAjZW5kaWYKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC03NCw3ICs3NCw3IEBACiAvKiBUaGUgYm9hcmQgbXVzdCBoYW5kbGUgdGhpcyBpbnRlcnJ1cHQgaWYgYSB0aW1lciBpcyBub3QKICAqIHByb3ZpZGVkLgogICovCi0jaWYgZGVmaW5lZChDRkdfTklPU19UTVJCQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX1RNUkJBU0UpCiB2b2lkIHRtcl9pc3IgKHZvaWQgKmFyZykKIHsKIAluaW9zX3RpbWVyX3QgKnRtciA9IChuaW9zX3RpbWVyX3QgKilhcmc7CkBAIC04Miw3ICs4Miw3IEBACiAJICogc3RhdHVzIHJlZ2lzdGVyLgogCSAqLwogCXdyaXRlbCAoJnRtci0+c3RhdHVzLCAwKTsKLQl0aW1lc3RhbXAgKz0gQ0ZHX05JT1NfVE1STVM7CisJdGltZXN0YW1wICs9IENPTkZJR19TWVNfTklPU19UTVJNUzsKICNpZmRlZiBDT05GSUdfU1RBVFVTX0xFRAogCXN0YXR1c19sZWRfdGljayh0aW1lc3RhbXApOwogI2VuZGlmCkBAIC05MCwyMiArOTAsMjIgQEAKIAogc3RhdGljIHZvaWQgdG1yX2luaXQgKHZvaWQpCiB7Ci0Jbmlvc190aW1lcl90ICp0bXIgPShuaW9zX3RpbWVyX3QgKilDRkdfTklPU19UTVJCQVNFOworCW5pb3NfdGltZXJfdCAqdG1yID0obmlvc190aW1lcl90ICopQ09ORklHX1NZU19OSU9TX1RNUkJBU0U7CiAKIAl3cml0ZWwgKCZ0bXItPnN0YXR1cywgMCk7CiAJd3JpdGVsICgmdG1yLT5jb250cm9sLCAwKTsKIAl3cml0ZWwgKCZ0bXItPmNvbnRyb2wsIE5JT1NfVElNRVJfU1RPUCk7CiAKLSNpZiBkZWZpbmVkKENGR19OSU9TX1RNUkNOVCkKLQl3cml0ZWwgKCZ0bXItPnBlcmlvZGwsIENGR19OSU9TX1RNUkNOVCAmIDB4ZmZmZik7Ci0Jd3JpdGVsICgmdG1yLT5wZXJpb2RoLCAoQ0ZHX05JT1NfVE1SQ05UID4+IDE2KSAmIDB4ZmZmZik7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfVE1SQ05UKQorCXdyaXRlbCAoJnRtci0+cGVyaW9kbCwgQ09ORklHX1NZU19OSU9TX1RNUkNOVCAmIDB4ZmZmZik7CisJd3JpdGVsICgmdG1yLT5wZXJpb2RoLCAoQ09ORklHX1NZU19OSU9TX1RNUkNOVCA+PiAxNikgJiAweGZmZmYpOwogI2VuZGlmCiAJd3JpdGVsICgmdG1yLT5jb250cm9sLCBOSU9TX1RJTUVSX0lUTyB8IE5JT1NfVElNRVJfQ09OVCB8CiAJCQkgIE5JT1NfVElNRVJfU1RBUlQgKTsKLQlpcnFfaW5zdGFsbF9oYW5kbGVyIChDRkdfTklPU19UTVJJUlEsIHRtcl9pc3IsICh2b2lkICopdG1yKTsKKwlpcnFfaW5zdGFsbF9oYW5kbGVyIChDT05GSUdfU1lTX05JT1NfVE1SSVJRLCB0bXJfaXNyLCAodm9pZCAqKXRtcik7CiB9CiAKLSNlbmRpZiAvKiBDRkdfTklPU19UTVJCQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OSU9TX1RNUkJBU0UgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBpbnQgZGlzYWJsZV9pbnRlcnJ1cHRzICh2b2lkKQpAQCAtMTk1LDcgKzE5NSw3IEBACiAJCXZlY3NbaV0uY291bnQgPSAwOwogCX0KIAotI2lmIGRlZmluZWQoQ0ZHX05JT1NfVE1SQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19UTVJCQVNFKQogCXRtcl9pbml0ICgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2NwdS9uaW9zMi9zZXJpYWwuYyBiL2NwdS9uaW9zMi9zZXJpYWwuYwppbmRleCAwYmQzODIxLi44YmJiODAzIDEwMDY0NAotLS0gYS9jcHUvbmlvczIvc2VyaWFsLmMKKysrIGIvY3B1L25pb3MyL3NlcmlhbC5jCkBAIC0zNCw3ICszNCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DT05TT0xFX0pUQUcpCiAKLXN0YXRpYyBuaW9zX2p0YWdfdCAqanRhZyA9IChuaW9zX2p0YWdfdCAqKUNGR19OSU9TX0NPTlNPTEU7CitzdGF0aWMgbmlvc19qdGFnX3QgKmp0YWcgPSAobmlvc19qdGFnX3QgKilDT05GSUdfU1lTX05JT1NfQ09OU09MRTsKIAogdm9pZCBzZXJpYWxfc2V0YnJnKCB2b2lkICl7IHJldHVybjsgfQogaW50IHNlcmlhbF9pbml0KCB2b2lkICkgeyByZXR1cm4oMCk7fQpAQCAtNzksOSArNzksOSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZWxzZQogCi1zdGF0aWMgbmlvc191YXJ0X3QgKnVhcnQgPSAobmlvc191YXJ0X3QgKikgQ0ZHX05JT1NfQ09OU09MRTsKK3N0YXRpYyBuaW9zX3VhcnRfdCAqdWFydCA9IChuaW9zX3VhcnRfdCAqKSBDT05GSUdfU1lTX05JT1NfQ09OU09MRTsKIAotI2lmIGRlZmluZWQoQ0ZHX05JT1NfRklYRURCQVVEKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX0ZJWEVEQkFVRCkKIAogLyogRXZlcnl0aGluZydzIGFscmVhZHkgc2V0dXAgZm9yIGZpeGVkLWJhdWQgUFRGCiAgKiBhc3NpZ25tZW50CkBAIC0xMDYsNyArMTA2LDcgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jZW5kaWYgLyogQ0ZHX05JT1NfRklYRURCQVVEICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OSU9TX0ZJWEVEQkFVRCAqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2NwdS9uaW9zMi9zdGFydC5TIGIvY3B1L25pb3MyL3N0YXJ0LlMKaW5kZXggNmM2ZjI5NC4uZWE0MTQzNSAxMDA2NDQKLS0tIGEvY3B1L25pb3MyL3N0YXJ0LlMKKysrIGIvY3B1L25pb3MyL3N0YXJ0LlMKQEAgLTM5LDkgKzM5LDkgQEAKIAkgKiBqdXN0IGJlIGludmFsaWRhdGluZyB0aGUgY2FjaGUgYSBzZWNvbmQgdGltZS4gSWYgY2FjaGUKIAkgKiBpcyBub3QgaW1wbGVtZW50ZWQgaW5pdGkgYmVoYXZlcyBhcyBub3AuCiAJICovCi0Jb3JpCXI0LCByMCwgJWxvKENGR19JQ0FDSEVMSU5FX1NJWkUpCi0JbW92aGkJcjUsICVoaShDRkdfSUNBQ0hFX1NJWkUpCi0Jb3JpCXI1LCByNSwgJWxvKENGR19JQ0FDSEVfU0laRSkKKwlvcmkJcjQsIHIwLCAlbG8oQ09ORklHX1NZU19JQ0FDSEVMSU5FX1NJWkUpCisJbW92aGkJcjUsICVoaShDT05GSUdfU1lTX0lDQUNIRV9TSVpFKQorCW9yaQlyNSwgcjUsICVsbyhDT05GSUdfU1lTX0lDQUNIRV9TSVpFKQogCW1vdglyNiwgcjAKIDA6CWluaXRpCXI2CiAJYWRkCXI2LCByNiwgcjQKQEAgLTY3LDEwICs2NywxMCBAQAogCS8qIERDQUNIRSBJTklUIC0tIGlmIGRjYWNoZSBub3QgaW1wbGVtZW50ZWQsIGluaXRkIGJlaGF2ZXMgYXMKIAkgKiBub3AuCiAJICovCi0JbW92aGkJcjQsICVoaShDRkdfRENBQ0hFTElORV9TSVpFKQotCW9yaQlyNCwgcjQsICVsbyhDRkdfRENBQ0hFTElORV9TSVpFKQotCW1vdmhpCXI1LCAlaGkoQ0ZHX0RDQUNIRV9TSVpFKQotCW9yaQlyNSwgcjUsICVsbyhDRkdfRENBQ0hFX1NJWkUpCisJbW92aGkJcjQsICVoaShDT05GSUdfU1lTX0RDQUNIRUxJTkVfU0laRSkKKwlvcmkJcjQsIHI0LCAlbG8oQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUpCisJbW92aGkJcjUsICVoaShDT05GSUdfU1lTX0RDQUNIRV9TSVpFKQorCW9yaQlyNSwgcjUsICVsbyhDT05GSUdfU1lTX0RDQUNIRV9TSVpFKQogCW1vdglyNiwgcjAKIDE6CWluaXRkCTAocjYpCiAJYWRkCXI2LCByNiwgcjQKQEAgLTEzNiw4ICsxMzYsOCBAQAogCW9yaQlyNCwgcjQsICVsbyhfZXhjZXB0X3N0YXJ0KQogCW1vdmhpCXI1LCAlaGkoX2V4Y2VwdF9lbmQpCiAJb3JpCXI1LCByNSwgJWxvKF9leGNlcHRfZW5kKQotCW1vdmhpCXI2LCAlaGkoQ0ZHX0VYQ0VQVElPTl9BRERSKQotCW9yaQlyNiwgcjYsICVsbyhDRkdfRVhDRVBUSU9OX0FERFIpCisJbW92aGkJcjYsICVoaShDT05GSUdfU1lTX0VYQ0VQVElPTl9BRERSKQorCW9yaQlyNiwgcjYsICVsbyhDT05GSUdfU1lTX0VYQ0VQVElPTl9BRERSKQogCWJlcQlyNCwgcjYsIDdmCS8qIFNraXAgaWYgYXQgcHJvcGVyIGFkZHIgKi8KIAogNjoJbGR3aW8JcjcsIDAocjQpCkBAIC0xNTAsOCArMTUwLDggQEAKIAogCS8qIFNUQUNLIElOSVQgLS0gemVybyB0b3AgdHdvIHdvcmRzIGZvciBjYWxsIGJhY2sgY2hhaW4uCiAJICovCi0JbW92aGkJc3AsICVoaShDRkdfSU5JVF9TUCkKLQlvcmkJc3AsIHNwLCAlbG8oQ0ZHX0lOSVRfU1ApCisJbW92aGkJc3AsICVoaShDT05GSUdfU1lTX0lOSVRfU1ApCisJb3JpCXNwLCBzcCwgJWxvKENPTkZJR19TWVNfSU5JVF9TUCkKIAlhZGRpCXNwLCBzcCwgLTgKIAlzdHcJcjAsIDAoc3ApCiAJc3R3CXIwLCA0KHNwKQpAQCAtMTk1LDcgKzE5NSw3IEBACiAKIGRseV9jbGtzOgogCi0jaWYgKENGR19JQ0FDSEVfU0laRSA+IDApCisjaWYgKENPTkZJR19TWVNfSUNBQ0hFX1NJWkUgPiAwKQogCXN1YmkJcjQsIHI0LCAzCQkvKiAzIGNsb2Nrcy9sb29wCSovCiAjZWxzZQogCXN1YmkJcjQsIHI0LCAxMgkJLyogMTIgY2xvY2tzL2xvb3AJKi8KZGlmZiAtLWdpdCBhL2NwdS9uaW9zMi9zeXNpZC5jIGIvY3B1L25pb3MyL3N5c2lkLmMKaW5kZXggNjk3ZWQwMy4uYWZkNWQ4MyAxMDA2NDQKLS0tIGEvY3B1L25pb3MyL3N5c2lkLmMKKysrIGIvY3B1L25pb3MyL3N5c2lkLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZCAoQ0ZHX05JT1NfU1lTSURfQkFTRSkKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRSkKIAogI2luY2x1ZGUgPGNvbW1hbmQuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTMyLDcgKzMyLDcgQEAKIAogdm9pZCBkaXNwbGF5X3N5c2lkICh2b2lkKQogewotCXN0cnVjdCBuaW9zX3N5c2lkX3QgKnN5c2lkID0gKHN0cnVjdCBuaW9zX3N5c2lkX3QgKilDRkdfTklPU19TWVNJRF9CQVNFOworCXN0cnVjdCBuaW9zX3N5c2lkX3QgKnN5c2lkID0gKHN0cnVjdCBuaW9zX3N5c2lkX3QgKilDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRTsKIAlzdHJ1Y3QgdG0gdDsKIAljaGFyIGFzY1szMl07CiAJdGltZV90IHN0YW1wOwpAQCAtNTUsNCArNTUsNCBAQAogCSJzeXNpZCAgIC0gZGlzcGxheSBOaW9zLUlJIHN5c3RlbSBpZFxuXG4iLAogCSJcbiAgICAtIGRpc3BsYXkgTmlvcy1JSSBzeXN0ZW0gaWRcbiIKICk7Ci0jZW5kaWYgLyogQ0ZHX05JT1NfU1lTSURfQkFTRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTklPU19TWVNJRF9CQVNFICovCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4LzQweF9zcGRfc2RyYW0uYyBiL2NwdS9wcGM0eHgvNDB4X3NwZF9zZHJhbS5jCmluZGV4IGIyMWIxM2UuLjU3ODYxYjMgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvNDB4X3NwZF9zZHJhbS5jCisrKyBiL2NwdS9wcGM0eHgvNDB4X3NwZF9zZHJhbS5jCkBAIC01MiwxMiArNTIsMTIgQEAKIC8qCiAgKiBTZXQgZGVmYXVsdCB2YWx1ZXMKICAqLwotI2lmbmRlZiBDRkdfSTJDX1NQRUVECi0jZGVmaW5lIENGR19JMkNfU1BFRUQJNTAwMDAKKyNpZm5kZWYgQ09ORklHX1NZU19JMkNfU1BFRUQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJNTAwMDAKICNlbmRpZgogCi0jaWZuZGVmIENGR19JMkNfU0xBVkUKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkweEZFCisjaWZuZGVmIENPTkZJR19TWVNfSTJDX1NMQVZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4RkUKICNlbmRpZgogCiAjZGVmaW5lIE9ORV9CSUxMSU9OCTEwMDAwMDAwMDAKQEAgLTE2Myw3ICsxNjMsNyBAQAogCQkgKiBNYWtlIHN1cmUgSTJDIGNvbnRyb2xsZXIgaXMgaW5pdGlhbGl6ZWQKIAkJICogYmVmb3JlIGNvbnRpbnVpbmcuCiAJCSAqLwotCQlpMmNfaW5pdChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwkJaTJjX2luaXQoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAl9CiAKIAkvKiBNYWtlIHNodXJlIHdlIGFyZSB1c2luZyBTRFJBTSAqLwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC80NHhfc3BkX2Rkci5jIGIvY3B1L3BwYzR4eC80NHhfc3BkX2Rkci5jCmluZGV4IDllZmNlZGUuLjE1MzM5MWUgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvNDR4X3NwZF9kZHIuYworKysgYi9jcHUvcHBjNHh4LzQ0eF9zcGRfZGRyLmMKQEAgLTYyLDEyICs2MiwxMiBAQAogLyoKICAqIFNldCBkZWZhdWx0IHZhbHVlcwogICovCi0jaWZuZGVmIENGR19JMkNfU1BFRUQKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAk1MDAwMAorI2lmbmRlZiBDT05GSUdfU1lTX0kyQ19TUEVFRAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAk1MDAwMAogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0kyQ19TTEFWRQotI2RlZmluZSBDRkdfSTJDX1NMQVZFCTB4RkUKKyNpZm5kZWYgQ09ORklHX1NZU19JMkNfU0xBVkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJMHhGRQogI2VuZGlmCiAKICNkZWZpbmUgT05FX0JJTExJT04JMTAwMDAwMDAwMApAQCAtMTE5LDcgKzExOSw3IEBACiAKIHR5cGVkZWYgc3RydWN0IGJhbmtfcGFyYW0gQkFOS1BBUk1TOwogCi0jaWZkZWYgQ0ZHX1NJTVVMQVRFX1NQRF9FRVBST00KKyNpZmRlZiBDT05GSUdfU1lTX1NJTVVMQVRFX1NQRF9FRVBST00KIGV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIGNmZ19zaW11bGF0ZV9zcGRfZWVwcm9tWzEyOF07CiAjZW5kaWYKIApAQCAtMTc0LDcgKzE3NCw3IEBACiAJICogTWFrZSBzdXJlIEkyQyBjb250cm9sbGVyIGlzIGluaXRpYWxpemVkCiAJICogYmVmb3JlIGNvbnRpbnVpbmcuCiAJICovCi0JaTJjX2luaXQoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJaTJjX2luaXQoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAogCS8qCiAJICogUmVhZCB0aGUgU1BEIGluZm9ybWF0aW9uIHVzaW5nIEkyQyBpbnRlcmZhY2UuIENoZWNrIHRvIHNlZSBpZiB0aGUKQEAgLTI2NSw3ICsyNjUsNyBAQAogCS8qCiAJICogSWYgZWNjIGlzIGVuYWJsZWQsIGluaXRpYWxpemUgdGhlIHBhcml0eSBiaXRzLgogCSAqLwotCWVjY19pbml0KENGR19TRFJBTV9CQVNFLCB0b3RhbF9zaXplKTsKKwllY2NfaW5pdChDT05GSUdfU1lTX1NEUkFNX0JBU0UsIHRvdGFsX3NpemUpOwogI2VuZGlmCiAKIAlyZXR1cm4gdG90YWxfc2l6ZTsKQEAgLTI3NSwxNCArMjc1LDE0IEBACiB7CiAJdW5zaWduZWQgY2hhciBkYXRhWzJdOwogCi0jaWZkZWYgQ0ZHX1NJTVVMQVRFX1NQRF9FRVBST00KLQlpZiAoY2hpcCA9PSBDRkdfU0lNVUxBVEVfU1BEX0VFUFJPTSkgeworI2lmZGVmIENPTkZJR19TWVNfU0lNVUxBVEVfU1BEX0VFUFJPTQorCWlmIChjaGlwID09IENPTkZJR19TWVNfU0lNVUxBVEVfU1BEX0VFUFJPTSkgewogCQkvKgogCQkgKiBPbmJvYXJkIHNwZCBlZXByb20gcmVxdWVzdGVkIC0+IHNpbXVsYXRlIHZhbHVlcwogCQkgKi8KIAkJcmV0dXJuIGNmZ19zaW11bGF0ZV9zcGRfZWVwcm9tW2FkZHJdOwogCX0KLSNlbmRpZiAvKiBDRkdfU0lNVUxBVEVfU1BEX0VFUFJPTSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfU0lNVUxBVEVfU1BEX0VFUFJPTSAqLwogCiAJaWYgKGkyY19wcm9iZShjaGlwKSA9PSAwKSB7CiAJCWlmIChpMmNfcmVhZChjaGlwLCBhZGRyLCAxLCBkYXRhLCAxKSA9PSAwKSB7CkBAIC0xMTIwLDcgKzExMjAsNyBAQAogCS8qCiAJICogcmVzZXQgdGhlIGJhbmtfYmFzZSBhZGRyZXNzCiAJICovCi0JYmFua19iYXNlX2FkZHIgPSBDRkdfU0RSQU1fQkFTRTsKKwliYW5rX2Jhc2VfYWRkciA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAogCWZvciAoZGltbV9udW0gPSAwOyBkaW1tX251bSA8IG51bV9kaW1tX2JhbmtzOyBkaW1tX251bSsrKSB7CiAJCWlmIChkaW1tX3BvcHVsYXRlZFtkaW1tX251bV0gPT0gVFJVRSkgewpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC80NHhfc3BkX2RkcjIuYyBiL2NwdS9wcGM0eHgvNDR4X3NwZF9kZHIyLmMKaW5kZXggOTk1ZDVmZS4uNDU0NGI3OCAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC80NHhfc3BkX2RkcjIuYworKysgYi9jcHUvcHBjNHh4LzQ0eF9zcGRfZGRyMi5jCkBAIC00MDIsOCArNDAyLDggQEAKIAkgKi8KIAogCS8qIHN3aXRjaCB0byBjb3JyZWN0IEkyQyBidXMgKi8KLQlJMkNfU0VUX0JVUyhDRkdfU1BEX0JVU19OVU0pOwotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCUkyQ19TRVRfQlVTKENPTkZJR19TWVNfU1BEX0JVU19OVU0pOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCSAqIENsZWFyIG91dCB0aGUgc2VyaWFsIHByZXNlbmNlIGRldGVjdCBidWZmZXJzLgpAQCAtMjk3OCw2MiArMjk3OCw2MiBAQAogCiAJLyogU2V0IE1lbW9yeSBCYW5rIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXJzICovCiAKLQltdHNkcmFtKFNEUkFNX01CMENGLCBDRkdfU0RSQU0wX01CMENGKTsKLQltdHNkcmFtKFNEUkFNX01CMUNGLCBDRkdfU0RSQU0wX01CMUNGKTsKLQltdHNkcmFtKFNEUkFNX01CMkNGLCBDRkdfU0RSQU0wX01CMkNGKTsKLQltdHNkcmFtKFNEUkFNX01CM0NGLCBDRkdfU0RSQU0wX01CM0NGKTsKKwltdHNkcmFtKFNEUkFNX01CMENGLCBDT05GSUdfU1lTX1NEUkFNMF9NQjBDRik7CisJbXRzZHJhbShTRFJBTV9NQjFDRiwgQ09ORklHX1NZU19TRFJBTTBfTUIxQ0YpOworCW10c2RyYW0oU0RSQU1fTUIyQ0YsIENPTkZJR19TWVNfU0RSQU0wX01CMkNGKTsKKwltdHNkcmFtKFNEUkFNX01CM0NGLCBDT05GSUdfU1lTX1NEUkFNMF9NQjNDRik7CiAKIAkvKiBTZXQgTWVtb3J5IENsb2NrIFRpbWluZyBSZWdpc3RlciAqLwogCi0JbXRzZHJhbShTRFJBTV9DTEtUUiwgQ0ZHX1NEUkFNMF9DTEtUUik7CisJbXRzZHJhbShTRFJBTV9DTEtUUiwgQ09ORklHX1NZU19TRFJBTTBfQ0xLVFIpOwogCiAJLyogU2V0IFJlZnJlc2ggVGltZSBSZWdpc3RlciAqLwogCi0JbXRzZHJhbShTRFJBTV9SVFIsIENGR19TRFJBTTBfUlRSKTsKKwltdHNkcmFtKFNEUkFNX1JUUiwgQ09ORklHX1NZU19TRFJBTTBfUlRSKTsKIAogCS8qIFNldCBTRFJBTSBUaW1pbmcgUmVnaXN0ZXJzICovCiAKLQltdHNkcmFtKFNEUkFNX1NEVFIxLCBDRkdfU0RSQU0wX1NEVFIxKTsKLQltdHNkcmFtKFNEUkFNX1NEVFIyLCBDRkdfU0RSQU0wX1NEVFIyKTsKLQltdHNkcmFtKFNEUkFNX1NEVFIzLCBDRkdfU0RSQU0wX1NEVFIzKTsKKwltdHNkcmFtKFNEUkFNX1NEVFIxLCBDT05GSUdfU1lTX1NEUkFNMF9TRFRSMSk7CisJbXRzZHJhbShTRFJBTV9TRFRSMiwgQ09ORklHX1NZU19TRFJBTTBfU0RUUjIpOworCW10c2RyYW0oU0RSQU1fU0RUUjMsIENPTkZJR19TWVNfU0RSQU0wX1NEVFIzKTsKIAogCS8qIFNldCBNb2RlIGFuZCBFeHRlbmRlZCBNb2RlIFJlZ2lzdGVycyAqLwogCi0JbXRzZHJhbShTRFJBTV9NTU9ERSwgQ0ZHX1NEUkFNMF9NTU9ERSk7Ci0JbXRzZHJhbShTRFJBTV9NRU1PREUsIENGR19TRFJBTTBfTUVNT0RFKTsKKwltdHNkcmFtKFNEUkFNX01NT0RFLCBDT05GSUdfU1lTX1NEUkFNMF9NTU9ERSk7CisJbXRzZHJhbShTRFJBTV9NRU1PREUsIENPTkZJR19TWVNfU0RSQU0wX01FTU9ERSk7CiAKIAkvKiBTZXQgTWVtb3J5IENvbnRyb2xsZXIgT3B0aW9ucyAxIFJlZ2lzdGVyICovCiAKLQltdHNkcmFtKFNEUkFNX01DT1BUMSwgQ0ZHX1NEUkFNMF9NQ09QVDEpOworCW10c2RyYW0oU0RSQU1fTUNPUFQxLCBDT05GSUdfU1lTX1NEUkFNMF9NQ09QVDEpOwogCiAJLyogU2V0IE1hbnVhbCBJbml0aWFsaXphdGlvbiBDb250cm9sIFJlZ2lzdGVycyAqLwogCi0JbXRzZHJhbShTRFJBTV9JTklUUExSMCwgQ0ZHX1NEUkFNMF9JTklUUExSMCk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSMSwgQ0ZHX1NEUkFNMF9JTklUUExSMSk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSMiwgQ0ZHX1NEUkFNMF9JTklUUExSMik7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSMywgQ0ZHX1NEUkFNMF9JTklUUExSMyk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSNCwgQ0ZHX1NEUkFNMF9JTklUUExSNCk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSNSwgQ0ZHX1NEUkFNMF9JTklUUExSNSk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSNiwgQ0ZHX1NEUkFNMF9JTklUUExSNik7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSNywgQ0ZHX1NEUkFNMF9JTklUUExSNyk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSOCwgQ0ZHX1NEUkFNMF9JTklUUExSOCk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSOSwgQ0ZHX1NEUkFNMF9JTklUUExSOSk7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSMTAsIENGR19TRFJBTTBfSU5JVFBMUjEwKTsKLQltdHNkcmFtKFNEUkFNX0lOSVRQTFIxMSwgQ0ZHX1NEUkFNMF9JTklUUExSMTEpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjEyLCBDRkdfU0RSQU0wX0lOSVRQTFIxMik7Ci0JbXRzZHJhbShTRFJBTV9JTklUUExSMTMsIENGR19TRFJBTTBfSU5JVFBMUjEzKTsKLQltdHNkcmFtKFNEUkFNX0lOSVRQTFIxNCwgQ0ZHX1NEUkFNMF9JTklUUExSMTQpOwotCW10c2RyYW0oU0RSQU1fSU5JVFBMUjE1LCBDRkdfU0RSQU0wX0lOSVRQTFIxNSk7CisJbXRzZHJhbShTRFJBTV9JTklUUExSMCwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjApOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjEsIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIxKTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFIyLCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMik7CisJbXRzZHJhbShTRFJBTV9JTklUUExSMywgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjMpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjQsIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI0KTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFI1LCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSNSk7CisJbXRzZHJhbShTRFJBTV9JTklUUExSNiwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjYpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjcsIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI3KTsKKwltdHNkcmFtKFNEUkFNX0lOSVRQTFI4LCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSOCk7CisJbXRzZHJhbShTRFJBTV9JTklUUExSOSwgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjkpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjEwLCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTApOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjExLCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTEpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjEyLCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTIpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjEzLCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTMpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjE0LCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTQpOworCW10c2RyYW0oU0RSQU1fSU5JVFBMUjE1LCBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTUpOwogCiAJLyogU2V0IE9uLURpZSBUZXJtaW5hdGlvbiBSZWdpc3RlcnMgKi8KIAotCW10c2RyYW0oU0RSQU1fQ09EVCwgQ0ZHX1NEUkFNMF9DT0RUKTsKLQltdHNkcmFtKFNEUkFNX01PRFQwLCBDRkdfU0RSQU0wX01PRFQwKTsKLQltdHNkcmFtKFNEUkFNX01PRFQxLCBDRkdfU0RSQU0wX01PRFQxKTsKKwltdHNkcmFtKFNEUkFNX0NPRFQsIENPTkZJR19TWVNfU0RSQU0wX0NPRFQpOworCW10c2RyYW0oU0RSQU1fTU9EVDAsIENPTkZJR19TWVNfU0RSQU0wX01PRFQwKTsKKwltdHNkcmFtKFNEUkFNX01PRFQxLCBDT05GSUdfU1lTX1NEUkFNMF9NT0RUMSk7CiAKIAkvKiBTZXQgV3JpdGUgVGltaW5nIFJlZ2lzdGVyICovCiAKLQltdHNkcmFtKFNEUkFNX1dSRFRSLCBDRkdfU0RSQU0wX1dSRFRSKTsKKwltdHNkcmFtKFNEUkFNX1dSRFRSLCBDT05GSUdfU1lTX1NEUkFNMF9XUkRUUik7CiAKIAkvKgogCSAqIFN0YXJ0IEluaXRpYWxpemF0aW9uIGJ5IFNEUkFNMF9NQ09QVDJbU1JFTl0gPSAwIGFuZApAQCAtMzA1NCwxMiArMzA1NCwxMiBAQAogCiAJLyogU2V0IERlbGF5IENvbnRyb2wgUmVnaXN0ZXJzICovCiAKLQltdHNkcmFtKFNEUkFNX0RMQ1IsIENGR19TRFJBTTBfRExDUik7CisJbXRzZHJhbShTRFJBTV9ETENSLCBDT05GSUdfU1lTX1NEUkFNMF9ETENSKTsKIAogI2lmICFkZWZpbmVkKENPTkZJR19QUEM0eHhfRERSX0FVVE9DQUxJQlJBVElPTikKLQltdHNkcmFtKFNEUkFNX1JEQ0MsIENGR19TRFJBTTBfUkRDQyk7Ci0JbXRzZHJhbShTRFJBTV9SUURDLCBDRkdfU0RSQU0wX1JRREMpOwotCW10c2RyYW0oU0RSQU1fUkZEQywgQ0ZHX1NEUkFNMF9SRkRDKTsKKwltdHNkcmFtKFNEUkFNX1JEQ0MsIENPTkZJR19TWVNfU0RSQU0wX1JEQ0MpOworCW10c2RyYW0oU0RSQU1fUlFEQywgQ09ORklHX1NZU19TRFJBTTBfUlFEQyk7CisJbXRzZHJhbShTRFJBTV9SRkRDLCBDT05GSUdfU1lTX1NEUkFNMF9SRkRDKTsKICNlbmRpZiAvKiAhQ09ORklHX1BQQzR4eF9ERFJfQVVUT0NBTElCUkFUSU9OICovCiAKIAkvKgpAQCAtMzA3OSw3ICszMDc5LDcgQEAKICNlbmRpZiAvKiBDT05GSUdfUFBDNHh4X0REUl9BVVRPQ0FMSUJSQVRJT04gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl9FQ0MpCi0JZWNjX2luaXQoQ0ZHX1NEUkFNX0JBU0UsIENGR19NQllURVNfU0RSQU0gPDwgMjApOworCWVjY19pbml0KENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjApOwogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0REUl9FQ0MpICovCiAKIAlwcGM0eHhfaWJtX2RkcjJfcmVnaXN0ZXJfZHVtcCgpOwpAQCAtMzA5NSw3ICszMDk1LDcgQEAKIAogI2VuZGlmIC8qICFkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkgfHwgZGVmaW5lZChDT05GSUdfTkFORF9TUEwpICovCiAKLQlyZXR1cm4gKENGR19NQllURVNfU0RSQU0gPDwgMjApOworCXJldHVybiAoQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjApOwogfQogI2VuZGlmIC8qIENPTkZJR19TUERfRUVQUk9NICovCiAKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvNHh4X2VuZXQuYyBiL2NwdS9wcGM0eHgvNHh4X2VuZXQuYwppbmRleCA2ZDRkMDQzLi5kN2IxNmRhIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4LzR4eF9lbmV0LmMKKysrIGIvY3B1L3BwYzR4eC80eHhfZW5ldC5jCkBAIC0yMjUsNyArMjI1LDcgQEAKICAqIFNvbWUgYm9hcmRzIGRvIG5vdCBoYXZlIGEgUEhZIGZvciBlYWNoIGV0aGVybmV0IHBvcnQuIFRoZXNlIHBvcnRzCiAgKiBhcmUga25vd24gYXMgRml4ZWQgUEhZIChvciBQSFktbGVzcykgcG9ydHMuIEZvciBzdWNoIHBvcnRzLCBzZXQKICAqIHRoZSBhcHByb3ByaWF0ZSBDT05GSUdfUEhZX0FERFIgZXF1YWwgdG8gQ09ORklHX0ZJWEVEX1BIWSBhbmQKLSAqIHRoZW4gZGVmaW5lIENGR19GSVhFRF9QSFlfUE9SVFMgdG8gZGVmaW5lIHdoYXQgdGhlIHNwZWVkIGFuZAorICogdGhlbiBkZWZpbmUgQ09ORklHX1NZU19GSVhFRF9QSFlfUE9SVFMgdG8gZGVmaW5lIHdoYXQgdGhlIHNwZWVkIGFuZAogICogZHVwbGV4IHNob3VsZCBiZSBmb3IgdGhlc2UgcG9ydHMgaW4gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24KICAqIGZpbGUuCiAgKgpAQCAtMjM3LDIwICsyMzcsMjAgQEAKICAqICAgICAjZGVmaW5lIENPTkZJR19QSFkyX0FERFIgICBDT05GSUdfRklYRURfUEhZCiAgKiAgICAgI2RlZmluZSBDT05GSUdfUEhZM19BRERSICAgMwogICoKLSAqICAgICAjZGVmaW5lIENGR19GSVhFRF9QSFlfUE9SVChkZXZudW0sc3BlZWQsZHVwbGV4KSBcCisgKiAgICAgI2RlZmluZSBDT05GSUdfU1lTX0ZJWEVEX1BIWV9QT1JUKGRldm51bSxzcGVlZCxkdXBsZXgpIFwKICAqICAgICAgICAgICAgICAgICAgICAge2Rldm51bSwgc3BlZWQsIGR1cGxleH0sCiAgKgotICogICAgICNkZWZpbmUgQ0ZHX0ZJWEVEX1BIWV9QT1JUUyBcCi0gKiAgICAgICAgICAgICAgICAgICAgIENGR19GSVhFRF9QSFlfUE9SVCgwLDEwMDAsRlVMTCkgXAotICogICAgICAgICAgICAgICAgICAgICBDRkdfRklYRURfUEhZX1BPUlQoMiwxMDAsSEFMRikKKyAqICAgICAjZGVmaW5lIENPTkZJR19TWVNfRklYRURfUEhZX1BPUlRTIFwKKyAqICAgICAgICAgICAgICAgICAgICAgQ09ORklHX1NZU19GSVhFRF9QSFlfUE9SVCgwLDEwMDAsRlVMTCkgXAorICogICAgICAgICAgICAgICAgICAgICBDT05GSUdfU1lTX0ZJWEVEX1BIWV9QT1JUKDIsMTAwLEhBTEYpCiAgKi8KIAogI2lmbmRlZiBDT05GSUdfRklYRURfUEhZCiAjZGVmaW5lIENPTkZJR19GSVhFRF9QSFkJMHhGRkZGRkZGRiAvKiBGaXhlZCBQSFkgKFBIWS1sZXNzKSAqLwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX0ZJWEVEX1BIWV9QT1JUUwotI2RlZmluZSBDRkdfRklYRURfUEhZX1BPUlRTCS8qIGRlZmF1bHQgaXMgYW4gZW1wdHkgYXJyYXkgKi8KKyNpZm5kZWYgQ09ORklHX1NZU19GSVhFRF9QSFlfUE9SVFMKKyNkZWZpbmUgQ09ORklHX1NZU19GSVhFRF9QSFlfUE9SVFMJLyogZGVmYXVsdCBpcyBhbiBlbXB0eSBhcnJheSAqLwogI2VuZGlmCiAKIHN0cnVjdCBmaXhlZF9waHlfcG9ydCB7CkBAIC0yNjAsNyArMjYwLDcgQEAKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWRfcGh5X3BvcnQgZml4ZWRfcGh5X3BvcnRbXSA9IHsKLQlDRkdfRklYRURfUEhZX1BPUlRTCS8qIGRlZmluZWQgaW4gYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlICovCisJQ09ORklHX1NZU19GSVhFRF9QSFlfUE9SVFMJLyogZGVmaW5lZCBpbiBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUgKi8KIH07CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0xMzM3LDggKzEzMzcsOCBAQAogI2lmZGVmIENPTkZJR180eHhfRENBQ0hFCiAJCWZsdXNoX2RjYWNoZV9yYW5nZShiZF9jYWNoZWQsIGJkX2NhY2hlZCArIE1BTF9BTExPQ19TSVpFKTsKIAkJaWYgKCFsYXN0X3VzZWRfZWEpCi0jaWYgZGVmaW5lZChDRkdfTUVNX1RPUF9ISURFKQotCQkJYmRfdW5jYWNoZWQgPSBiaXMtPmJpX21lbXNpemUgKyBDRkdfTUVNX1RPUF9ISURFOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19NRU1fVE9QX0hJREUpCisJCQliZF91bmNhY2hlZCA9IGJpcy0+YmlfbWVtc2l6ZSArIENPTkZJR19TWVNfTUVNX1RPUF9ISURFOwogI2Vsc2UKIAkJCWJkX3VuY2FjaGVkID0gYmlzLT5iaV9tZW1zaXplOwogI2VuZGlmCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4LzR4eF9pYm1fZGRyMl9hdXRvY2FsaWIuYyBiL2NwdS9wcGM0eHgvNHh4X2libV9kZHIyX2F1dG9jYWxpYi5jCmluZGV4IDQ3YWIzOWIuLjFlM2UyMGQgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvNHh4X2libV9kZHIyX2F1dG9jYWxpYi5jCisrKyBiL2NwdS9wcGM0eHgvNHh4X2libV9kZHIyX2F1dG9jYWxpYi5jCkBAIC01MywxMSArNTMsMTEgQEAKICNkZWZpbmUgTUFYQlhDRgkJCTQKICNkZWZpbmUgU0RSQU1fUlhCQVNfU0hJRlRfMU0JMjAKIAotI2lmIGRlZmluZWQoQ0ZHX0RFQ1JFTUVOVF9QQVRURVJOUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfREVDUkVNRU5UX1BBVFRFUk5TKQogI2RlZmluZSBOVU1NRU1URVNUUwkJMjQKICNlbHNlCiAjZGVmaW5lIE5VTU1FTVRFU1RTCQk4Ci0jZW5kaWYgLyogQ0ZHX0RFQ1JFTUVOVF9QQVRURVJOUyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfREVDUkVNRU5UX1BBVFRFUk5TICovCiAjZGVmaW5lIE5VTUxPT1BTCQkxCS8qIGNvbmZpZ3VyZSBhcyB5b3UgZGVlbSBhcHByb3BvcmlhdGUgKi8KICNkZWZpbmUgTlVNTUVNV09SRFMJCTE2CiAKQEAgLTI1NCw3ICsyNTQsNyBAQAogCQkgMHg1NUFBNTVBQSwgMHg1NUFBNTVBQSwgMHhBQTU1QUE1NSwgMHhBQTU1QUE1NSwKIAkJIDB4NTVBQTU1QUEsIDB4NTVBQTU1QUEsIDB4QUE1NUFBNTUsIDB4QUE1NUFBNTV9LAogCi0jaWYgZGVmaW5lZChDRkdfREVDUkVNRU5UX1BBVFRFUk5TKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19ERUNSRU1FTlRfUEFUVEVSTlMpCiAJLyogOCAqLwl7MHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwKIAkJIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsCiAJCSAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLApAQCAtMzE5LDcgKzMxOSw3IEBACiAJCSAweGZmZjBmZmYwLCAweGZmZjBmZmYwLCAweGZmZjBmZmYwLCAweGZmZjBmZmYwLAogCQkgMHhmZmYwZmZmMCwgMHhmZmYwZmZmMCwgMHhmZmYwZmZmMCwgMHhmZmYwZmZmMCwKIAkJIDB4ZmZmMGZmZjAsIDB4ZmZmMGZmZmUsIDB4ZmZmMGZmZjAsIDB4ZmZmMGZmZjB9LAotI2VuZGlmIC8qIENGR19ERUNSRU1FTlRfUEFUVEVSTlMgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RFQ1JFTUVOVF9QQVRURVJOUyAqLwogCQkJCQkJCQkgfTsKIAogCW1mc2RyYW0oU0RSQU1fTUNPUFQxLCBlY2NfbW9kZSk7CmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4LzR4eF9wY2kuYyBiL2NwdS9wcGM0eHgvNHh4X3BjaS5jCmluZGV4IGMyOGM3YWMuLmVjYTkyZTggMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvNHh4X3BjaS5jCisrKyBiL2NwdS9wcGM0eHgvNHh4X3BjaS5jCkBAIC0xMDgsMTIgKzEwOCwxMiBAQAogCWJkX3QgKmJkID0gZ2QtPmJkOwogCiAJdW5zaWduZWQgc2hvcnQgdGVtcF9zaG9ydDsKLQl1bnNpZ25lZCBsb25nIHB0bXBjaWxhWzJdID0ge0NGR19QQ0lfUFRNMVBDSSwgQ0ZHX1BDSV9QVE0yUENJfTsKKwl1bnNpZ25lZCBsb25nIHB0bXBjaWxhWzJdID0ge0NPTkZJR19TWVNfUENJX1BUTTFQQ0ksIENPTkZJR19TWVNfUENJX1BUTTJQQ0l9OwogI2lmIGRlZmluZWQoQ09ORklHX0NQQ0k0MDUpIHx8IGRlZmluZWQoQ09ORklHX1BNQzQwNSkKIAljaGFyICpwdG1sYV9zdHIsICpwdG1tc19zdHI7CiAjZW5kaWYKLQl1bnNpZ25lZCBsb25nIHB0bWxhWzJdICAgID0ge0NGR19QQ0lfUFRNMUxBLCBDRkdfUENJX1BUTTJMQX07Ci0JdW5zaWduZWQgbG9uZyBwdG1tc1syXSAgICA9IHtDRkdfUENJX1BUTTFNUywgQ0ZHX1BDSV9QVE0yTVN9OworCXVuc2lnbmVkIGxvbmcgcHRtbGFbMl0gICAgPSB7Q09ORklHX1NZU19QQ0lfUFRNMUxBLCBDT05GSUdfU1lTX1BDSV9QVE0yTEF9OworCXVuc2lnbmVkIGxvbmcgcHRtbXNbMl0gICAgPSB7Q09ORklHX1NZU19QQ0lfUFRNMU1TLCBDT05GSUdfU1lTX1BDSV9QVE0yTVN9OwogI2lmIGRlZmluZWQoQ09ORklHX1BJUDQwNSkgfHwgZGVmaW5lZCAoQ09ORklHX01JUDQwNSkKIAl1bnNpZ25lZCBsb25nIHBtbWxhWzNdICAgID0gezB4ODAwMDAwMDAsIDB4QTAwMDAwMDAsIDB9OwogCXVuc2lnbmVkIGxvbmcgcG1tbWFbM10gICAgPSB7MHhFMDAwMDAwMSwgMHhFMDAwMDAwMSwgMH07CkBAIC0yNjgsMjIgKzI2OCwyMiBAQAogCS8qCiAJICogSW5zZXJ0IFN1YnN5c3RlbSBWZW5kb3IgYW5kIERldmljZSBJRAogCSAqLwotCXBjaV93cml0ZV9jb25maWdfd29yZChQQ0lERVZJRF80MDVHUCwgUENJX1NVQlNZU1RFTV9WRU5ET1JfSUQsIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEKTsKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9TVUJTWVNURU1fVkVORE9SX0lELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQpOwogI2lmZGVmIENPTkZJR19DUENJNDA1CiAJaWYgKG1mZGNyKHN0cmFwKSAmIFBTUl9QQ0lfQVJCSVRfRU4pCi0JCXBjaV93cml0ZV9jb25maWdfd29yZChQQ0lERVZJRF80MDVHUCwgUENJX1NVQlNZU1RFTV9JRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQpOworCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9TVUJTWVNURU1fSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCk7CiAJZWxzZQotCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoUENJREVWSURfNDA1R1AsIFBDSV9TVUJTWVNURU1fSUQsIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEMik7CisJCXBjaV93cml0ZV9jb25maWdfd29yZChQQ0lERVZJRF80MDVHUCwgUENJX1NVQlNZU1RFTV9JRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEMik7CiAjZWxzZQotCXBjaV93cml0ZV9jb25maWdfd29yZChQQ0lERVZJRF80MDVHUCwgUENJX1NVQlNZU1RFTV9JRCwgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQpOworCXBjaV93cml0ZV9jb25maWdfd29yZChQQ0lERVZJRF80MDVHUCwgUENJX1NVQlNZU1RFTV9JRCwgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEKTsKICNlbmRpZgogCiAJLyoKIAkgKiBJbnNlcnQgQ2xhc3MtY29kZQogCSAqLwotI2lmZGVmIENGR19QQ0lfQ0xBU1NDT0RFCi0JcGNpX3dyaXRlX2NvbmZpZ193b3JkKFBDSURFVklEXzQwNUdQLCBQQ0lfQ0xBU1NfU1VCX0NPREUsIENGR19QQ0lfQ0xBU1NDT0RFKTsKLSNlbmRpZiAvKiBDRkdfUENJX0NMQVNTQ09ERSAqLworI2lmZGVmIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQorCXBjaV93cml0ZV9jb25maWdfd29yZChQQ0lERVZJRF80MDVHUCwgUENJX0NMQVNTX1NVQl9DT0RFLCBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUpOworI2VuZGlmIC8qIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAqLwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAkgKiBJZiBQQ0kgc3BlZWQgPSA2Nk1oeiwgc2V0IDY2TWh6IGNhcGFibGUgYml0LgpAQCAtNDA1LDggKzQwNSw4IEBACiAgKi8KIHN0YXRpYyBzdHJ1Y3QgcGNpX2NvbmZpZ190YWJsZSBwY2lfNDA1Z3BfY29uZmlnX3RhYmxlW10gPSB7CiAvKmlmIFZlbmRJRCBpcyAwIGl0IHRlcm1pbmF0ZXMgdGhlIHRhYmxlIHNlYXJjaCAoaWUgV2FsbnV0KSovCi0jaWZkZWYgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQKLQl7Q0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQsIFBDSV9BTllfSUQsIFBDSV9DTEFTU19CUklER0VfSE9TVCwKKyNpZmRlZiBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQKKwl7Q09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklELCBQQ0lfQU5ZX0lELCBQQ0lfQ0xBU1NfQlJJREdFX0hPU1QsCiAJIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIHBjaV80MDVncF9zZXR1cF9icmlkZ2V9LAogI2VuZGlmCiAJe1BDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9DTEFTU19ESVNQTEFZX1ZHQSwKQEAgLTQ4OCwxMCArNDg4LDEwIEBACiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24oaG9zZS0+cmVnaW9ucyArIHJlZ19udW0rKywKLQkJICAgICAgIENGR19QQ0lfVEFSR0JBU0UsCi0JCSAgICAgICBDRkdfUENJX01FTUJBU0UsCi0jaWZkZWYgQ0ZHX1BDSV9NRU1TSVpFCi0JCSAgICAgICBDRkdfUENJX01FTVNJWkUsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSwKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UsCisjaWZkZWYgQ09ORklHX1NZU19QQ0lfTUVNU0laRQorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNU0laRSwKICNlbHNlCiAJCSAgICAgICAweDEwMDAwMDAwLAogI2VuZGlmCkBAIC01MjMsMTEgKzUyMywxMSBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogUENJIHRhcmdldCBpbml0CiAJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgZGVmaW5lZChDRkdfUENJX1RBUkdFVF9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQpCiAJcGNpX3RhcmdldF9pbml0KGhvc2UpOyAgICAgICAgICAgICAgICAvKiBMZXQgYm9hcmQgc2V0dXAgcGNpIHRhcmdldCAqLwogI2Vsc2UKLQlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCApOwotCW91dDE2ciggUENJWDBfU0JTWVNJRCwgQ0ZHX1BDSV9TVUJTWVNfSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTVklELCBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgKTsKKwlvdXQxNnIoIFBDSVgwX1NCU1lTSUQsIENPTkZJR19TWVNfUENJX1NVQlNZU19JRCApOwogCW91dDE2ciggUENJWDBfQ0xTLCAweDAwMDYwMDAwICk7IC8qIEJyaWRnZSwgaG9zdCBicmlkZ2UgKi8KICNlbmRpZgogCkBAIC01NDIsOSArNTQyLDkgQEAKIAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJICogUENJIG1hc3RlciBpbml0OiBkZWZhdWx0IGlzIG9uZSAyNTZNQiByZWdpb24gZm9yIFBDSSBtZW1vcnk6Ci0JICogMHgzXzAwMDAwMDAwIC0gMHgzXzBGRkZGRkZGICA9PT4gQ0ZHX1BDSV9NRU1CQVNFCisJICogMHgzXzAwMDAwMDAwIC0gMHgzXzBGRkZGRkZGICA9PT4gQ09ORklHX1NZU19QQ0lfTUVNQkFTRQogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogCXBjaV9tYXN0ZXJfaW5pdChob3NlKTsgICAgICAgICAgLyogTGV0IGJvYXJkIHNldHVwIHBjaSBtYXN0ZXIgKi8KICNlbHNlCiAJb3V0MzJyKCBQQ0lYMF9QT00wU0EsIDAgKTsgLyogZGlzYWJsZSAqLwpAQCAtNTU4LDcgKzU1OCw3IEBACiAJb3V0MzJyKCBQQ0lYMF9QT00wTEFMLCAweDAwMDAwMDAwICk7CiAJb3V0MzJyKCBQQ0lYMF9QT00wTEFILCAweDAwMDAwMDAzICk7CiAjZW5kaWYKLQlvdXQzMnIoIFBDSVgwX1BPTTBQQ0lBTCwgQ0ZHX1BDSV9NRU1CQVNFICk7CisJb3V0MzJyKCBQQ0lYMF9QT00wUENJQUwsIENPTkZJR19TWVNfUENJX01FTUJBU0UgKTsKIAlvdXQzMnIoIFBDSVgwX1BPTTBQQ0lBSCwgMHgwMDAwMDAwMCApOwogCW91dDMyciggUENJWDBfUE9NMFNBLCAweGYwMDAwMDAxICk7IC8qIDI1Nk1CLCBlbmFibGVkICovCiAJb3V0MzJyKCBQQ0lYMF9TVFMsIGluMzJyKCBQQ0lYMF9TVFMgKSAmIH4weDAwMDBmZmY4ICk7CmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4LzR4eF9wY2llLmMgYi9jcHUvcHBjNHh4LzR4eF9wY2llLmMKaW5kZXggMGFhZGMwNi4uZmQ0MGQ4YSAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC80eHhfcGNpZS5jCisrKyBiL2NwdS9wcGM0eHgvNHh4X3BjaWUuYwpAQCAtNDksMTIgKzQ5LDEyIEBACiAKIHN0YXRpYyBpbnQgdmFsaWRhdGVfZW5kcG9pbnQoc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlKQogewotCWlmIChob3NlLT5jZmdfZGF0YSA9PSAodTggKilDRkdfUENJRTBfQ0ZHQkFTRSkKKwlpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4ICopQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFKQogCQlyZXR1cm4gKGlzX2VuZF9wb2ludCgwKSk7Ci0JZWxzZSBpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4ICopQ0ZHX1BDSUUxX0NGR0JBU0UpCisJZWxzZSBpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4ICopQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFKQogCQlyZXR1cm4gKGlzX2VuZF9wb2ludCgxKSk7Ci0jaWYgQ0ZHX1BDSUVfTlJfUE9SVFMgPiAyCi0JZWxzZSBpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4ICopQ0ZHX1BDSUUyX0NGR0JBU0UpCisjaWYgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTID4gMgorCWVsc2UgaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCAqKUNPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRSkKIAkJcmV0dXJuIChpc19lbmRfcG9pbnQoMikpOwogI2VuZGlmCiAKQEAgLTY3LDEzICs2NywxMyBAQAogCiAJLyogdXNlIGxvY2FsIGNvbmZpZ3VyYXRpb24gc3BhY2UgZm9yIHRoZSBmaXJzdCBidXMgKi8KIAlpZiAoUENJX0JVUyhkZXZmbikgPT0gMCkgewotCQlpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4KilDRkdfUENJRTBfQ0ZHQkFTRSkKLQkJCWJhc2UgPSAodTgqKUNGR19QQ0lFMF9YQ0ZHQkFTRTsKLQkJaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCopQ0ZHX1BDSUUxX0NGR0JBU0UpCi0JCQliYXNlID0gKHU4KilDRkdfUENJRTFfWENGR0JBU0U7Ci0jaWYgQ0ZHX1BDSUVfTlJfUE9SVFMgPiAyCi0JCWlmIChob3NlLT5jZmdfZGF0YSA9PSAodTgqKUNGR19QQ0lFMl9DRkdCQVNFKQotCQkJYmFzZSA9ICh1OCopQ0ZHX1BDSUUyX1hDRkdCQVNFOworCQlpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4KilDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0UpCisJCQliYXNlID0gKHU4KilDT05GSUdfU1lTX1BDSUUwX1hDRkdCQVNFOworCQlpZiAoaG9zZS0+Y2ZnX2RhdGEgPT0gKHU4KilDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UpCisJCQliYXNlID0gKHU4KilDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFOworI2lmIENPTkZJR19TWVNfUENJRV9OUl9QT1JUUyA+IDIKKwkJaWYgKGhvc2UtPmNmZ19kYXRhID09ICh1OCopQ09ORklHX1NZU19QQ0lFMl9DRkdCQVNFKQorCQkJYmFzZSA9ICh1OCopQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRTsKICNlbmRpZgogCX0KIApAQCAtODYsNyArODYsNyBAQAogCQltZmRjciAoRENSTl9QRUdQTF9DRkcoRENSTl9QQ0lFMF9CQVNFKSkgfCBHUExfRE1FUl9NQVNLX0RJU0EpOwogCW10ZGNyIChEQ1JOX1BFR1BMX0NGRyhEQ1JOX1BDSUUxX0JBU0UpLAogCQltZmRjciAoRENSTl9QRUdQTF9DRkcoRENSTl9QQ0lFMV9CQVNFKSkgfCBHUExfRE1FUl9NQVNLX0RJU0EpOwotI2lmIENGR19QQ0lFX05SX1BPUlRTID4gMgorI2lmIENPTkZJR19TWVNfUENJRV9OUl9QT1JUUyA+IDIKIAltdGRjciAoRENSTl9QRUdQTF9DRkcoRENSTl9QQ0lFMl9CQVNFKSwKIAkJbWZkY3IgKERDUk5fUEVHUExfQ0ZHKERDUk5fUENJRTJfQkFTRSkpIHwgR1BMX0RNRVJfTUFTS19ESVNBKTsKICNlbmRpZgpAQCAtOTgsNyArOTgsNyBAQAogCQltZmRjciAoRENSTl9QRUdQTF9DRkcoRENSTl9QQ0lFMF9CQVNFKSkgJiB+R1BMX0RNRVJfTUFTS19ESVNBKTsKIAltdGRjciAoRENSTl9QRUdQTF9DRkcgKERDUk5fUENJRTFfQkFTRSksCiAJCW1mZGNyIChEQ1JOX1BFR1BMX0NGRyhEQ1JOX1BDSUUxX0JBU0UpKSAmIH5HUExfRE1FUl9NQVNLX0RJU0EpOwotI2lmIENGR19QQ0lFX05SX1BPUlRTID4gMgorI2lmIENPTkZJR19TWVNfUENJRV9OUl9QT1JUUyA+IDIKIAltdGRjciAoRENSTl9QRUdQTF9DRkcgKERDUk5fUENJRTJfQkFTRSksCiAJCW1mZGNyIChEQ1JOX1BFR1BMX0NGRyhEQ1JOX1BDSUUyX0JBU0UpKSAmIH5HUExfRE1FUl9NQVNLX0RJU0EpOwogI2VuZGlmCkBAIC0yODYsNyArMjg2LDcgQEAKIAkJbXRkY3IoRENSTl9QRUdQTF9TUEVDSUFMKFBDSUUyKSwgMHg2ODc4MjgwMCk7CiAJCWJyZWFrOwogCX0KLQl1dGxfYmFzZSA9ICh1bnNpZ25lZCBpbnQgKikoQ0ZHX1BDSUVfQkFTRSArIDB4MTAwMCAqIHBvcnQpOworCXV0bF9iYXNlID0gKHVuc2lnbmVkIGludCAqKShDT05GSUdfU1lTX1BDSUVfQkFTRSArIDB4MTAwMCAqIHBvcnQpOwogCiAJLyoKIAkgKiBTZXQgYnVmZmVyIGFsbG9jYXRpb25zIGFuZCB0aGVuIGFzc2VydCBWUkIgYW5kIFRYRS4KQEAgLTQxMiwyMSArNDEyLDIxIEBACiAJICovCiAJc3dpdGNoIChwb3J0KSB7CiAJY2FzZSAwOgotCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBSChQQ0lFMCksIFU2NF9UT19VMzJfSElHSChDRkdfUENJRTBfVVRMQkFTRSkpOwotCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBTChQQ0lFMCksIFU2NF9UT19VMzJfTE9XKENGR19QQ0lFMF9VVExCQVNFKSk7CisJCW10ZGNyKERDUk5fUEVHUExfUkVHQkFIKFBDSUUwKSwgVTY0X1RPX1UzMl9ISUdIKENPTkZJR19TWVNfUENJRTBfVVRMQkFTRSkpOworCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBTChQQ0lFMCksIFU2NF9UT19VMzJfTE9XKENPTkZJR19TWVNfUENJRTBfVVRMQkFTRSkpOwogCQltdGRjcihEQ1JOX1BFR1BMX1JFR01TSyhQQ0lFMCksIDB4MDAwMDcwMDEpOwkvKiBCQU0gMTExMDAwMDA9NEtCICovCiAJCW10ZGNyKERDUk5fUEVHUExfU1BFQ0lBTChQQ0lFMCksIDApOwogCQlicmVhazsKIAogCWNhc2UgMToKLQkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUgoUENJRTEpLCBVNjRfVE9fVTMyX0hJR0goQ0ZHX1BDSUUwX1VUTEJBU0UpKTsKLQkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUwoUENJRTEpLCBVNjRfVE9fVTMyX0xPVyhDRkdfUENJRTBfVVRMQkFTRSkKKwkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUgoUENJRTEpLCBVNjRfVE9fVTMyX0hJR0goQ09ORklHX1NZU19QQ0lFMF9VVExCQVNFKSk7CisJCW10ZGNyKERDUk5fUEVHUExfUkVHQkFMKFBDSUUxKSwgVTY0X1RPX1UzMl9MT1coQ09ORklHX1NZU19QQ0lFMF9VVExCQVNFKQogCQkJKyAweDEwMDApOwogCQltdGRjcihEQ1JOX1BFR1BMX1JFR01TSyhQQ0lFMSksIDB4MDAwMDcwMDEpOwkvKiBCQU0gMTExMDAwMDA9NEtCICovCiAJCW10ZGNyKERDUk5fUEVHUExfU1BFQ0lBTChQQ0lFMSksIDApOwogCQlicmVhazsKIAl9Ci0JdXRsX2Jhc2UgPSAodW5zaWduZWQgaW50ICopKENGR19QQ0lFX0JBU0UgKyAweDEwMDAgKiBwb3J0KTsKKwl1dGxfYmFzZSA9ICh1bnNpZ25lZCBpbnQgKikoQ09ORklHX1NZU19QQ0lFX0JBU0UgKyAweDEwMDAgKiBwb3J0KTsKIAogCS8qCiAJICogU2V0IGJ1ZmZlciBhbGxvY2F0aW9ucyBhbmQgdGhlbiBhc3NlcnQgVlJCIGFuZCBUWEUuCkBAIC01MTIsMjAgKzUxMiwyMCBAQAogCXN3aXRjaCAocG9ydCkgewogCWNhc2UgMDoKIAkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUgoUENJRTApLCAweDAwMDAwMDAwKTsKLQkJbXRkY3IoRENSTl9QRUdQTF9SRUdCQUwoUENJRTApLCBDRkdfUENJRTBfVVRMQkFTRSk7CisJCW10ZGNyKERDUk5fUEVHUExfUkVHQkFMKFBDSUUwKSwgQ09ORklHX1NZU19QQ0lFMF9VVExCQVNFKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9SRUdNU0soUENJRTApLCAweDAwMDA3MDAxKTsgLyogNGsgcmVnaW9uLCB2YWxpZCAqLwogCQltdGRjcihEQ1JOX1BFR1BMX1NQRUNJQUwoUENJRTApLCAwKTsKIAkJYnJlYWs7CiAKIAljYXNlIDE6CiAJCW10ZGNyKERDUk5fUEVHUExfUkVHQkFIKFBDSUUxKSwgMHgwMDAwMDAwMCk7Ci0JCW10ZGNyKERDUk5fUEVHUExfUkVHQkFMKFBDSUUxKSwgQ0ZHX1BDSUUxX1VUTEJBU0UpOworCQltdGRjcihEQ1JOX1BFR1BMX1JFR0JBTChQQ0lFMSksIENPTkZJR19TWVNfUENJRTFfVVRMQkFTRSk7CiAJCW10ZGNyKERDUk5fUEVHUExfUkVHTVNLKFBDSUUxKSwgMHgwMDAwNzAwMSk7IC8qIDRrIHJlZ2lvbiwgdmFsaWQgKi8KIAkJbXRkY3IoRENSTl9QRUdQTF9TUEVDSUFMKFBDSUUxKSwgMCk7CiAKIAkJYnJlYWs7CiAJfQotCXV0bF9iYXNlID0gKHBvcnQ9PTApID8gQ0ZHX1BDSUUwX1VUTEJBU0UgOiBDRkdfUENJRTFfVVRMQkFTRTsKKwl1dGxfYmFzZSA9IChwb3J0PT0wKSA/IENPTkZJR19TWVNfUENJRTBfVVRMQkFTRSA6IENPTkZJR19TWVNfUENJRTFfVVRMQkFTRTsKIAogCS8qCiAJICogU2V0IGJ1ZmZlciBhbGxvY2F0aW9ucyBhbmQgdGhlbiBhc3NlcnQgVlJCIGFuZCBUWEUuCkBAIC03NjEsOSArNzYxLDkgQEAKIHsKICNpZiBkZWZpbmVkKENPTkZJR180MDVFWCkKIAlpZiAocG9ydCA9PSAwKQotCQlyZXR1cm4gKHU2NClDRkdfUENJRTBfQ0ZHQkFTRTsKKwkJcmV0dXJuICh1NjQpQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFOwogCWVsc2UKLQkJcmV0dXJuICh1NjQpQ0ZHX1BDSUUxX0NGR0JBU0U7CisJCXJldHVybiAodTY0KUNPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRTsKICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHXzQ0MFNQRSkKIAlpZiAocHBjNDQwc3BlX3JldkIoKSkgewpAQCAtODk1LDcgKzg5NSw3IEBACiAJCW10ZGNyKERDUk5fUEVHUExfQ0ZHQkFMKFBDSUUxKSwgbG93KTsKIAkJbXRkY3IoRENSTl9QRUdQTF9DRkdNU0soUENJRTEpLCAweGUwMDAwMDAxKTsgLyogNTEyTUIgcmVnaW9uLCB2YWxpZCAqLwogCQlicmVhazsKLSNpZiBDRkdfUENJRV9OUl9QT1JUUyA+IDIKKyNpZiBDT05GSUdfU1lTX1BDSUVfTlJfUE9SVFMgPiAyCiAJY2FzZSAyOgogCQltdGRjcihEQ1JOX1BFR1BMX0NGR0JBSChQQ0lFMiksIGhpZ2gpOwogCQltdGRjcihEQ1JOX1BFR1BMX0NGR0JBTChQQ0lFMiksIGxvdyk7CkBAIC05NDcsMjAgKzk0NywyMCBAQAogCiAJc3dpdGNoIChwb3J0KSB7CiAJY2FzZSAwOgotCQltYmFzZSA9ICh1MzIgKilDRkdfUENJRTBfWENGR0JBU0U7Ci0JCXJtYmFzZSA9ICh1MzIgKilDRkdfUENJRTBfQ0ZHQkFTRTsKLQkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDRkdfUENJRTBfQ0ZHQkFTRTsKKwkJbWJhc2UgPSAodTMyICopQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRTsKKwkJcm1iYXNlID0gKHUzMiAqKUNPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRTsKKwkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0U7CiAJCWJyZWFrOwogCWNhc2UgMToKLQkJbWJhc2UgPSAodTMyICopQ0ZHX1BDSUUxX1hDRkdCQVNFOwotCQlybWJhc2UgPSAodTMyICopQ0ZHX1BDSUUxX0NGR0JBU0U7Ci0JCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ0ZHX1BDSUUxX0NGR0JBU0U7CisJCW1iYXNlID0gKHUzMiAqKUNPTkZJR19TWVNfUENJRTFfWENGR0JBU0U7CisJCXJtYmFzZSA9ICh1MzIgKilDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0U7CisJCWhvc2UtPmNmZ19kYXRhID0gKHU4ICopQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFOwogCQlicmVhazsKLSNpZiBDRkdfUENJRV9OUl9QT1JUUyA+IDIKKyNpZiBDT05GSUdfU1lTX1BDSUVfTlJfUE9SVFMgPiAyCiAJY2FzZSAyOgotCQltYmFzZSA9ICh1MzIgKilDRkdfUENJRTJfWENGR0JBU0U7Ci0JCXJtYmFzZSA9ICh1MzIgKilDRkdfUENJRTJfQ0ZHQkFTRTsKLQkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDRkdfUENJRTJfQ0ZHQkFTRTsKKwkJbWJhc2UgPSAodTMyICopQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRTsKKwkJcm1iYXNlID0gKHUzMiAqKUNPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRTsKKwkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0U7CiAJCWJyZWFrOwogI2VuZGlmCiAJfQpAQCAtOTc5LDE5ICs5NzksMTkgQEAKIAkgKiBzdWJyZWdpb25zIGFuZCB0byBlbmFibGUgdGhlIG91dGJvdW5kIHRyYW5zbGF0aW9uLgogCSAqLwogCW91dF9sZTMyKG1iYXNlICsgUEVDRkdfUE9NMExBSCwgMHgwMDAwMDAwMCk7Ci0Jb3V0X2xlMzIobWJhc2UgKyBQRUNGR19QT00wTEFMLCBDRkdfUENJRV9NRU1CQVNFICsKLQkJIHBvcnQgKiBDRkdfUENJRV9NRU1TSVpFKTsKKwlvdXRfbGUzMihtYmFzZSArIFBFQ0ZHX1BPTTBMQUwsIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsKKwkJIHBvcnQgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSk7CiAJZGVidWcoIlBFQ0ZHX1BPTTBMQT0lMDh4LiUwOHhcbiIsIGluX2xlMzIobWJhc2UgKyBQRUNGR19QT00wTEFIKSwKIAkgICAgICBpbl9sZTMyKG1iYXNlICsgUEVDRkdfUE9NMExBTCkpOwogCiAJc3dpdGNoIChwb3J0KSB7CiAJY2FzZSAwOgotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTApLCBDRkdfUENJRV9BRERSX0hJR0gpOwotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUwoUENJRTApLCBDRkdfUENJRV9NRU1CQVNFICsKLQkJICAgICAgcG9ydCAqIENGR19QQ0lFX01FTVNJWkUpOworCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTApLCBDT05GSUdfU1lTX1BDSUVfQUREUl9ISUdIKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUwKSwgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKworCQkgICAgICBwb3J0ICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tIKFBDSUUwKSwgMHg3ZmZmZmZmZik7CiAJCW10ZGNyKERDUk5fUEVHUExfT01SMU1TS0woUENJRTApLAotCQkgICAgICB+KENGR19QQ0lFX01FTVNJWkUgLSAxKSB8IDMpOworCQkgICAgICB+KENPTkZJR19TWVNfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKIAkJZGVidWcoIjA6UEVHUExfT01SMUJBPSUwOHguJTA4eCBNU0s9JTA4eC4lMDh4XG4iLAogCQkgICAgICBtZmRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTApKSwKIAkJICAgICAgbWZkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUwKSksCkBAIC05OTksMjYgKzk5OSwyNiBAQAogCQkgICAgICBtZmRjcihEQ1JOX1BFR1BMX09NUjFNU0tMKFBDSUUwKSkpOwogCQlicmVhazsKIAljYXNlIDE6Ci0JCW10ZGNyKERDUk5fUEVHUExfT01SMUJBSChQQ0lFMSksIENGR19QQ0lFX0FERFJfSElHSCk7Ci0JCW10ZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMSksIENGR19QQ0lFX01FTUJBU0UgKwotCQkgICAgICBwb3J0ICogQ0ZHX1BDSUVfTUVNU0laRSk7CisJCW10ZGNyKERDUk5fUEVHUExfT01SMUJBSChQQ0lFMSksIENPTkZJR19TWVNfUENJRV9BRERSX0hJR0gpOworCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUwoUENJRTEpLCBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRSArCisJCSAgICAgIHBvcnQgKiBDT05GSUdfU1lTX1BDSUVfTUVNU0laRSk7CiAJCW10ZGNyKERDUk5fUEVHUExfT01SMU1TS0goUENJRTEpLCAweDdmZmZmZmZmKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9PTVIxTVNLTChQQ0lFMSksCi0JCSAgICAgIH4oQ0ZHX1BDSUVfTUVNU0laRSAtIDEpIHwgMyk7CisJCSAgICAgIH4oQ09ORklHX1NZU19QQ0lFX01FTVNJWkUgLSAxKSB8IDMpOwogCQlkZWJ1ZygiMTpQRUdQTF9PTVIxQkE9JTA4eC4lMDh4IE1TSz0lMDh4LiUwOHhcbiIsCiAJCSAgICAgIG1mZGNyKERDUk5fUEVHUExfT01SMUJBSChQQ0lFMSkpLAogCQkgICAgICBtZmRjcihEQ1JOX1BFR1BMX09NUjFCQUwoUENJRTEpKSwKIAkJICAgICAgbWZkY3IoRENSTl9QRUdQTF9PTVIxTVNLSChQQ0lFMSkpLAogCQkgICAgICBtZmRjcihEQ1JOX1BFR1BMX09NUjFNU0tMKFBDSUUxKSkpOwogCQlicmVhazsKLSNpZiBDRkdfUENJRV9OUl9QT1JUUyA+IDIKKyNpZiBDT05GSUdfU1lTX1BDSUVfTlJfUE9SVFMgPiAyCiAJY2FzZSAyOgotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTIpLCBDRkdfUENJRV9BRERSX0hJR0gpOwotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUwoUENJRTIpLCBDRkdfUENJRV9NRU1CQVNFICsKLQkJICAgICAgcG9ydCAqIENGR19QQ0lFX01FTVNJWkUpOworCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTIpLCBDT05GSUdfU1lTX1BDSUVfQUREUl9ISUdIKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUyKSwgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKworCQkgICAgICBwb3J0ICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tIKFBDSUUyKSwgMHg3ZmZmZmZmZik7CiAJCW10ZGNyKERDUk5fUEVHUExfT01SMU1TS0woUENJRTIpLAotCQkgICAgICB+KENGR19QQ0lFX01FTVNJWkUgLSAxKSB8IDMpOworCQkgICAgICB+KENPTkZJR19TWVNfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKIAkJZGVidWcoIjI6UEVHUExfT01SMUJBPSUwOHguJTA4eCBNU0s9JTA4eC4lMDh4XG4iLAogCQkgICAgICBtZmRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTIpKSwKIAkJICAgICAgbWZkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUyKSksCkBAIC0xMDcyLDE3ICsxMDcyLDE3IEBACiAKIAlzd2l0Y2ggKHBvcnQpIHsKIAljYXNlIDA6Ci0JCW1iYXNlID0gKHUzMiAqKUNGR19QQ0lFMF9YQ0ZHQkFTRTsKLQkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDRkdfUENJRTBfQ0ZHQkFTRTsKKwkJbWJhc2UgPSAodTMyICopQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRTsKKwkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0U7CiAJCWJyZWFrOwogCWNhc2UgMToKLQkJbWJhc2UgPSAodTMyICopQ0ZHX1BDSUUxX1hDRkdCQVNFOwotCQlob3NlLT5jZmdfZGF0YSA9ICh1OCAqKUNGR19QQ0lFMV9DRkdCQVNFOworCQltYmFzZSA9ICh1MzIgKilDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFOworCQlob3NlLT5jZmdfZGF0YSA9ICh1OCAqKUNPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRTsKIAkJYnJlYWs7Ci0jaWYgZGVmaW5lZChDRkdfUENJRTJfQ0ZHQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRSkKIAljYXNlIDI6Ci0JCW1iYXNlID0gKHUzMiAqKUNGR19QQ0lFMl9YQ0ZHQkFTRTsKLQkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDRkdfUENJRTJfQ0ZHQkFTRTsKKwkJbWJhc2UgPSAodTMyICopQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRTsKKwkJaG9zZS0+Y2ZnX2RhdGEgPSAodTggKilDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0U7CiAJCWJyZWFrOwogI2VuZGlmCiAJfQpAQCAtMTA5OCwyOSArMTA5OCwyOSBAQAogCiAJc3dpdGNoIChwb3J0KSB7CiAJY2FzZSAwOgotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTApLCBDRkdfUENJRV9BRERSX0hJR0gpOwotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUwoUENJRTApLCBDRkdfUENJRV9NRU1CQVNFICsKLQkJICAgICAgcG9ydCAqIENGR19QQ0lFX01FTVNJWkUpOworCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTApLCBDT05GSUdfU1lTX1BDSUVfQUREUl9ISUdIKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUwKSwgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKworCQkgICAgICBwb3J0ICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tIKFBDSUUwKSwgMHg3ZmZmZmZmZik7CiAJCW10ZGNyKERDUk5fUEVHUExfT01SMU1TS0woUENJRTApLAotCQkgICAgICB+KENGR19QQ0lFX01FTVNJWkUgLSAxKSB8IDMpOworCQkgICAgICB+KENPTkZJR19TWVNfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKIAkJYnJlYWs7CiAJY2FzZSAxOgotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTEpLCBDRkdfUENJRV9BRERSX0hJR0gpOwotCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUwoUENJRTEpLCBDRkdfUENJRV9NRU1CQVNFICsKLQkJICAgICAgcG9ydCAqIENGR19QQ0lFX01FTVNJWkUpOworCQltdGRjcihEQ1JOX1BFR1BMX09NUjFCQUgoUENJRTEpLCBDT05GSUdfU1lTX1BDSUVfQUREUl9ISUdIKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUxKSwgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UgKworCQkgICAgICBwb3J0ICogQ09ORklHX1NZU19QQ0lFX01FTVNJWkUpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tIKFBDSUUxKSwgMHg3ZmZmZmZmZik7CiAJCW10ZGNyKERDUk5fUEVHUExfT01SMU1TS0woUENJRTEpLAotCQkgICAgICB+KENGR19QQ0lFX01FTVNJWkUgLSAxKSB8IDMpOworCQkgICAgICB+KENPTkZJR19TWVNfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKIAkJYnJlYWs7Ci0jaWYgQ0ZHX1BDSUVfTlJfUE9SVFMgPiAyCisjaWYgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTID4gMgogCWNhc2UgMjoKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUyKSwgQ0ZHX1BDSUVfQUREUl9ISUdIKTsKLQkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFMKFBDSUUyKSwgQ0ZHX1BDSUVfTUVNQkFTRSArCi0JCSAgICAgIHBvcnQgKiBDRkdfUENJRV9NRU1TSVpFKTsKKwkJbXRkY3IoRENSTl9QRUdQTF9PTVIxQkFIKFBDSUUyKSwgQ09ORklHX1NZU19QQ0lFX0FERFJfSElHSCk7CisJCW10ZGNyKERDUk5fUEVHUExfT01SMUJBTChQQ0lFMiksIENPTkZJR19TWVNfUENJRV9NRU1CQVNFICsKKwkJICAgICAgcG9ydCAqIENPTkZJR19TWVNfUENJRV9NRU1TSVpFKTsKIAkJbXRkY3IoRENSTl9QRUdQTF9PTVIxTVNLSChQQ0lFMiksIDB4N2ZmZmZmZmYpOwogCQltdGRjcihEQ1JOX1BFR1BMX09NUjFNU0tMKFBDSUUyKSwKLQkJICAgICAgfihDRkdfUENJRV9NRU1TSVpFIC0gMSkgfCAzKTsKKwkJICAgICAgfihDT05GSUdfU1lTX1BDSUVfTUVNU0laRSAtIDEpIHwgMyk7CiAJCWJyZWFrOwogI2VuZGlmCiAJfQpAQCAtMTE0MSw4ICsxMTQxLDggQEAKIAlvdXRfbGUzMihtYmFzZSArIFBFQ0ZHX0JBUjJITVBBLCAwKTsKIAlvdXRfbGUzMihtYmFzZSArIFBFQ0ZHX0JBUjJMTVBBLCAwKTsKIAotCW91dF9sZTMyKG1iYXNlICsgUEVDRkdfUElNMExBTCwgVTY0X1RPX1UzMl9MT1coQ0ZHX1BDSUVfSU5CT1VORF9CQVNFKSk7Ci0Jb3V0X2xlMzIobWJhc2UgKyBQRUNGR19QSU0wTEFILCBVNjRfVE9fVTMyX0hJR0goQ0ZHX1BDSUVfSU5CT1VORF9CQVNFKSk7CisJb3V0X2xlMzIobWJhc2UgKyBQRUNGR19QSU0wTEFMLCBVNjRfVE9fVTMyX0xPVyhDT05GSUdfU1lTX1BDSUVfSU5CT1VORF9CQVNFKSk7CisJb3V0X2xlMzIobWJhc2UgKyBQRUNGR19QSU0wTEFILCBVNjRfVE9fVTMyX0hJR0goQ09ORklHX1NZU19QQ0lFX0lOQk9VTkRfQkFTRSkpOwogCW91dF9sZTMyKG1iYXNlICsgUEVDRkdfUElNRU4sIDB4MSk7CiAKIAkvKiBFbmFibGUgSS9PLCBNZW0sIGFuZCBCdXNtYXN0ZXIgY3ljbGVzICovCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4LzR4eF91YXJ0LmMgYi9jcHUvcHBjNHh4LzR4eF91YXJ0LmMKaW5kZXggNzY2ZTU4Ni4uYzEwNmFjMiAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC80eHhfdWFydC5jCisrKyBiL2NwdS9wcGM0eHgvNHh4X3VhcnQuYwpAQCAtNjYsMjAgKzY2LDIwIEBACiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUlgpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180NjBFWCkgfHwgZGVmaW5lZChDT05GSUdfNDYwR1QpCi0jZGVmaW5lIFVBUlQwX0JBU0UJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMzAwKQotI2RlZmluZSBVQVJUMV9CQVNFCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDQwMCkKKyNkZWZpbmUgVUFSVDBfQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMzAwKQorI2RlZmluZSBVQVJUMV9CQVNFCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA0MDApCiAjZWxzZQotI2RlZmluZSBVQVJUMF9CQVNFCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDIwMCkKLSNkZWZpbmUgVUFSVDFfQkFTRQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAzMDApCisjZGVmaW5lIFVBUlQwX0JBU0UJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDIwMCkKKyNkZWZpbmUgVUFSVDFfQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMzAwKQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR180NDBTUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwU1BFKQotI2RlZmluZSBVQVJUMl9CQVNFCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDYwMCkKKyNkZWZpbmUgVUFSVDJfQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNjAwKQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR180NjBFWCkgfHwgZGVmaW5lZChDT05GSUdfNDYwR1QpCi0jZGVmaW5lIFVBUlQyX0JBU0UJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNTAwKQotI2RlZmluZSBVQVJUM19CQVNFCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDYwMCkKKyNkZWZpbmUgVUFSVDJfQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNTAwKQorI2RlZmluZSBVQVJUM19CQVNFCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA2MDApCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHXzQ0MEdQKQpAQCAtMTQ3LDcgKzE0Nyw3IEBACiAjZGVmaW5lIEFDVElOR19VQVJUMV9CQVNFCVVBUlQxX0JBU0UKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfNDA1RVApICYmIGRlZmluZWQoQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0spCisjaWYgZGVmaW5lZChDT05GSUdfNDA1RVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLKQogI2Vycm9yICJFeHRlcm5hbCBzZXJpYWwgY2xvY2sgbm90IHN1cHBvcnRlZCBvbiBBTUNDIFBQQzQwNUVQISIKICNlbmRpZgogCkBAIC0xOTksOCArMTk5LDggQEAKIAkvKiBDb3JyZWN0IFVBUlQgZnJlcXVlbmN5IGluIGJkLWluZm8gc3RydWN0IG5vdyB0aGF0CiAJICogdGhlIFVBUlQgZGl2aXNvciBpcyBhdmFpbGFibGUKIAkgKi8KLSNpZmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwotCWdkLT51YXJ0X2NsayA9IENGR19FWFRfU0VSSUFMX0NMT0NLOworI2lmZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSworCWdkLT51YXJ0X2NsayA9IENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSzsKICNlbHNlCiAJZ2QtPnVhcnRfY2xrID0gc3lzX2luZm8uZnJlcVVBUlQgLyB1ZGl2OwogI2VuZGlmCkBAIC0yMTgsNyArMjE4LDcgQEAKIH0KIAogI2lmIChkZWZpbmVkKENPTkZJR180NDApIHx8IGRlZmluZWQoQ09ORklHXzQwNUVYKSkgJiYJXAotICAgICFkZWZpbmVkKENGR19FWFRfU0VSSUFMX0NMT0NLKQorICAgICFkZWZpbmVkKENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSykKIHN0YXRpYyB2b2lkIHNlcmlhbF9kaXZzIChpbnQgYmF1ZHJhdGUsIHVuc2lnbmVkIGxvbmcgKnB1ZGl2LAogCQkJIHVuc2lnbmVkIHNob3J0ICpwYmRpdikKIHsKQEAgLTMxNSw3ICszMTUsNyBAQAogCW10Y3ByKGNwcnBlcmQwLCByZWcpOwogCSpwYmRpdiA9IGRpdiAvIHVkaXY7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfNDQwKSAmJiAhZGVmaW5lZChDRkdfRVhUX1NFUklBTF9DTEspICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfNDQwKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xLKSAqLwogCiAvKgogICogTWluaW1hbCBzZXJpYWwgZnVuY3Rpb25zIG5lZWRlZCB0byB1c2Ugb25lIG9mIHRoZSBTTUMgcG9ydHMKQEAgLTMyOCwxOCArMzI4LDE4IEBACiAJdW5zaWduZWQgbG9uZyByZWc7CiAJdW5zaWduZWQgbG9uZyB1ZGl2OwogCXVuc2lnbmVkIHNob3J0IGJkaXY7Ci0jaWZkZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKIAl1bnNpZ25lZCBsb25nIHRtcDsKICNlbmRpZgogCiAJTUZSRUcoVUFSVDBfU0RSLCByZWcpOwogCXJlZyAmPSB+Q1IwX01BU0s7CiAKLSNpZmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSworI2lmZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogCXJlZyB8PSBDUjBfRVhUQ0xLX0VOQTsKIAl1ZGl2ID0gMTsKIAl0bXAgID0gZ2QtPmJhdWRyYXRlICogMTY7Ci0JYmRpdiA9IChDRkdfRVhUX1NFUklBTF9DTE9DSyArIHRtcCAvIDIpIC8gdG1wOworCWJkaXYgPSAoQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLICsgdG1wIC8gMikgLyB0bXA7CiAjZWxzZQogCS8qIEZvciA0NDAsIHRoZSBjcHUgY2xvY2sgaXMgb24gZGl2aWRlciBjaGFpbiBBLCBVQVJUIG9uIGRpdmlkZXIKIAkgKiBjaGFpbiBCIC4uLiBzbyBjcHUgY2xvY2sgaXMgaXJyZWxldmFudC4gR2V0IHRoZSAib3B0aW1pemVkIgpAQCAtMzg0LDExICszODQsMTEgQEAKIAljbGsgPSB0bXAgPSAwOwogCW1mc2RyKFVBUlQwX1NEUiwgcmVnKTsKIAlyZWcgJj0gfkNSMF9NQVNLOwotI2lmZGVmIENGR19FWFRfU0VSSUFMX0NMT0NLCisjaWZkZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCiAJcmVnIHw9IENSMF9FWFRDTEtfRU5BOwogCXVkaXYgPSAxOwogCXRtcCAgPSBnZC0+YmF1ZHJhdGUgKiAxNjsKLQliZGl2ID0gKENGR19FWFRfU0VSSUFMX0NMT0NLICsgdG1wIC8gMikgLyB0bXA7CisJYmRpdiA9IChDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sgKyB0bXAgLyAyKSAvIHRtcDsKICNlbHNlCiAJc2VyaWFsX2RpdnMoZ2QtPmJhdWRyYXRlLCAmdWRpdiwgJmJkaXYpOwogI2VuZGlmCkBAIC00MTEsNyArNDExLDcgQEAKICNpZmRlZiBDT05GSUdfNDA1RVAKIAlyZWcgPSBtZmRjcihjcGMwX3VjcikgJiB+KFVDUjBfTUFTSyB8IFVDUjFfTUFTSyk7CiAJY2xrID0gZ2QtPmNwdV9jbGs7Ci0JdG1wID0gQ0ZHX0JBU0VfQkFVRCAqIDE2OworCXRtcCA9IENPTkZJR19TWVNfQkFTRV9CQVVEICogMTY7CiAJdWRpdiA9IChjbGsgKyB0bXAgLyAyKSAvIHRtcDsKIAlpZiAodWRpdiA+IFVESVZfTUFYKSAgICAgICAgICAgICAgICAgICAgLyogbWF4LiBuIGJpdHMgZm9yIHVkaXYgKi8KIAkJdWRpdiA9IFVESVZfTUFYOwpAQCAtNDIwLDE2ICs0MjAsMTYgQEAKIAltdGRjciAoY3BjMF91Y3IsIHJlZyk7CiAjZWxzZSAvKiBDT05GSUdfNDA1RVAgKi8KIAlyZWcgPSBtZmRjcihjbnRybDApICYgfkNSMF9NQVNLOwotI2lmZGVmIENGR19FWFRfU0VSSUFMX0NMT0NLCi0JY2xrID0gQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0s7CisjaWZkZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCisJY2xrID0gQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLOwogCXVkaXYgPSAxOwogCXJlZyB8PSBDUjBfRVhUQ0xLX0VOQTsKICNlbHNlCiAJY2xrID0gZ2QtPmNwdV9jbGs7Ci0jaWZkZWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OQorI2lmZGVmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5CiAJdWRpdiA9IDMxOwkJCS8qIEVycmF0YSA1OTogc3R1Y2sgYXQgMzEgKi8KICNlbHNlCi0JdG1wID0gQ0ZHX0JBU0VfQkFVRCAqIDE2OworCXRtcCA9IENPTkZJR19TWVNfQkFTRV9CQVVEICogMTY7CiAJdWRpdiA9IChjbGsgKyB0bXAgLyAyKSAvIHRtcDsKIAlpZiAodWRpdiA+IFVESVZfTUFYKSAgICAgICAgICAgICAgICAgICAgLyogbWF4LiBuIGJpdHMgZm9yIHVkaXYgKi8KIAkJdWRpdiA9IFVESVZfTUFYOwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9jYWNoZS5TIGIvY3B1L3BwYzR4eC9jYWNoZS5TCmluZGV4IGNlYjNlYzAuLjI2OTcxNmYgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvY2FjaGUuUworKysgYi9jcHUvcHBjNHh4L2NhY2hlLlMKQEAgLTE0Myw4ICsxNDMsOCBAQAogX0dMT0JBTChpbnZhbGlkYXRlX2RjYWNoZSkKIAlhZGRpCXI2LDAsMHgwMDAwCQkvKiBjbGVhciBHUFIgNiAqLwogCS8qIERvIGxvb3AgZm9yICMgb2YgZGNhY2hlIGNvbmdydWVuY2UgY2xhc3Nlcy4gKi8KLQlsaXMJcjcsKENGR19EQ0FDSEVfU0laRSAvIEwxX0NBQ0hFX0JZVEVTIC8gMilAaGEJLyogVEJTIGZvciBsYXJnZSBzaXplZCBjYWNoZSAqLwotCW9yaQlyNyxyNywoQ0ZHX0RDQUNIRV9TSVpFIC8gTDFfQ0FDSEVfQllURVMgLyAyKUBsCisJbGlzCXI3LChDT05GSUdfU1lTX0RDQUNIRV9TSVpFIC8gTDFfQ0FDSEVfQllURVMgLyAyKUBoYQkvKiBUQlMgZm9yIGxhcmdlIHNpemVkIGNhY2hlICovCisJb3JpCXI3LHI3LChDT05GSUdfU1lTX0RDQUNIRV9TSVpFIC8gTDFfQ0FDSEVfQllURVMgLyAyKUBsCiAJCQkJCS8qIE5PVEU6IGRjY2NpIGludmFsaWRhdGVzIGJvdGggKi8KIAltdGN0cglyNwkJCS8qIHdheXMgaW4gdGhlIEQgY2FjaGUgKi8KIC4uZGNsb29wOgpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9jb21tcHJvYy5jIGIvY3B1L3BwYzR4eC9jb21tcHJvYy5jCmluZGV4IDhiMjk1NGMuLmExNjk2ZDMgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvY29tbXByb2MuYworKysgYi9jcHUvcHBjNHh4L2NvbW1wcm9jLmMKQEAgLTMwLDEwICszMCwxMCBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfUE9TVCkgfHwgZGVmaW5lZChDT05GSUdfTE9HQlVGRkVSKQogCi0jaWYgZGVmaW5lZChDRkdfUE9TVF9XT1JEX0FERFIpCi0jIGRlZmluZSBfUE9TVF9BRERSCSgoQ0ZHX09DTV9EQVRBX0FERFIpICsgKENGR19QT1NUX1dPUkRfQUREUikpCi0jZWxpZiBkZWZpbmVkKENGR19QT1NUX0FMVF9XT1JEX0FERFIpCi0jIGRlZmluZSBfUE9TVF9BRERSCShDRkdfUE9TVF9BTFRfV09SRF9BRERSKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUikKKyMgZGVmaW5lIF9QT1NUX0FERFIJKChDT05GSUdfU1lTX09DTV9EQVRBX0FERFIpICsgKENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIpKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX1BPU1RfQUxUX1dPUkRfQUREUikKKyMgZGVmaW5lIF9QT1NUX0FERFIJKENPTkZJR19TWVNfUE9TVF9BTFRfV09SRF9BRERSKQogI2VuZGlmCiAKIHZvaWQgcG9zdF93b3JkX3N0b3JlICh1bG9uZyBhKQpAQCAtNTcsNyArNTcsNyBAQAogdm9pZCBib290Y291bnRfc3RvcmUgKHVsb25nIGEpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKShDRkdfT0NNX0RBVEFfQUREUiArIENGR19CT09UQ09VTlRfQUREUik7CisJCSh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgKyBDT05GSUdfU1lTX0JPT1RDT1VOVF9BRERSKTsKIAogCXNhdmVfYWRkclswXSA9IGE7CiAJc2F2ZV9hZGRyWzFdID0gQk9PVENPVU5UX01BR0lDOwpAQCAtNjYsNyArNjYsNyBAQAogdWxvbmcgYm9vdGNvdW50X2xvYWQgKHZvaWQpCiB7CiAJdm9sYXRpbGUgdWxvbmcgKnNhdmVfYWRkciA9Ci0JCSh2b2xhdGlsZSB1bG9uZyAqKShDRkdfT0NNX0RBVEFfQUREUiArIENGR19CT09UQ09VTlRfQUREUik7CisJCSh2b2xhdGlsZSB1bG9uZyAqKShDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgKyBDT05GSUdfU1lTX0JPT1RDT1VOVF9BRERSKTsKIAogCWlmIChzYXZlX2FkZHJbMV0gIT0gQk9PVENPVU5UX01BR0lDKQogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvY3B1LmMgYi9jcHUvcHBjNHh4L2NwdS5jCmluZGV4IGJjOTMzNWEuLjY2YTc3MzcgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvY3B1LmMKKysrIGIvY3B1L3BwYzR4eC9jcHUuYwpAQCAtNjI5LDE0ICs2MjksMTQgQEAKICNpZiBkZWZpbmVkKENPTkZJR19CT0FSRF9SRVNFVCkKIAlib2FyZF9yZXNldCgpOwogI2Vsc2UKLSNpZiBkZWZpbmVkKENGR180eHhfUkVTRVRfVFlQRSkKLQltdHNwcihkYmNyMCwgQ0ZHXzR4eF9SRVNFVF9UWVBFIDw8IDI4KTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfNHh4X1JFU0VUX1RZUEUpCisJbXRzcHIoZGJjcjAsIENPTkZJR19TWVNfNHh4X1JFU0VUX1RZUEUgPDwgMjgpOwogI2Vsc2UKIAkvKgogCSAqIEluaXRpYXRlIHN5c3RlbSByZXNldCBpbiBkZWJ1ZyBjb250cm9sIHJlZ2lzdGVyIERCQ1IKIAkgKi8KIAltdHNwcihkYmNyMCwgMHgzMDAwMDAwMCk7Ci0jZW5kaWYgLyogZGVmaW5lZChDRkdfNHh4X1JFU0VUX1RZUEUpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfU1lTXzR4eF9SRVNFVF9UWVBFKSAqLwogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX0JPQVJEX1JFU0VUKSAqLwogCiAJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L2NwdV9pbml0LmMgYi9jcHUvcHBjNHh4L2NwdV9pbml0LmMKaW5kZXggZGVlOTgwNy4uYjVkODFmMiAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC9jcHVfaW5pdC5jCisrKyBiL2NwdS9wcGM0eHgvY3B1X2luaXQuYwpAQCAtMzIsOCArMzIsOCBAQAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUExMX1JFQ09ORklHCi0jZGVmaW5lIENGR19QTExfUkVDT05GSUcJMAorI2lmbmRlZiBDT05GSUdfU1lTX1BMTF9SRUNPTkZJRworI2RlZmluZSBDT05GSUdfU1lTX1BMTF9SRUNPTkZJRwkwCiAjZW5kaWYKIAogdm9pZCByZWNvbmZpZ3VyZV9wbGwodTMyIG5ld19jcHVfZnJlcSkKQEAgLTE0MiwzMiArMTQyLDMyIEBACiAJdTMyIHZhbDsKICNlbmRpZgogCi0JcmVjb25maWd1cmVfcGxsKENGR19QTExfUkVDT05GSUcpOworCXJlY29uZmlndXJlX3BsbChDT05GSUdfU1lTX1BMTF9SRUNPTkZJRyk7CiAKLSNpZiAoZGVmaW5lZChDT05GSUdfNDA1RVApIHx8IGRlZmluZWQgKENPTkZJR180MDVFWCkpICYmICFkZWZpbmVkKENGR180eHhfR1BJT19UQUJMRSkKKyNpZiAoZGVmaW5lZChDT05GSUdfNDA1RVApIHx8IGRlZmluZWQgKENPTkZJR180MDVFWCkpICYmICFkZWZpbmVkKENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUpCiAJLyoKIAkgKiBHUElPMCBzZXR1cCAoc2VsZWN0IEdQSU8gb3IgYWx0ZXJuYXRlIGZ1bmN0aW9uKQogCSAqLwotI2lmIGRlZmluZWQoQ0ZHX0dQSU8wX09SKQotCW91dDMyKEdQSU8wX09SLCBDRkdfR1BJTzBfT1IpOwkJLyogc2V0IGluaXRpYWwgc3RhdGUgb2Ygb3V0cHV0IHBpbnMJKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfR1BJTzBfT1IpCisJb3V0MzIoR1BJTzBfT1IsIENPTkZJR19TWVNfR1BJTzBfT1IpOwkJLyogc2V0IGluaXRpYWwgc3RhdGUgb2Ygb3V0cHV0IHBpbnMJKi8KICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0dQSU8wX09EUikKLQlvdXQzMihHUElPMF9PRFIsIENGR19HUElPMF9PRFIpOwkvKiBvcGVuLWRyYWluIHNlbGVjdAkJCSovCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0dQSU8wX09EUikKKwlvdXQzMihHUElPMF9PRFIsIENPTkZJR19TWVNfR1BJTzBfT0RSKTsJLyogb3Blbi1kcmFpbiBzZWxlY3QJCQkqLwogI2VuZGlmCi0Jb3V0MzIoR1BJTzBfT1NSSCwgQ0ZHX0dQSU8wX09TUkgpOwkvKiBvdXRwdXQgc2VsZWN0CQkJKi8KLQlvdXQzMihHUElPMF9PU1JMLCBDRkdfR1BJTzBfT1NSTCk7Ci0Jb3V0MzIoR1BJTzBfSVNSMUgsIENGR19HUElPMF9JU1IxSCk7CS8qIGlucHV0IHNlbGVjdAkJCQkqLwotCW91dDMyKEdQSU8wX0lTUjFMLCBDRkdfR1BJTzBfSVNSMUwpOwotCW91dDMyKEdQSU8wX1RTUkgsIENGR19HUElPMF9UU1JIKTsJLyogdGhyZWUtc3RhdGUgc2VsZWN0CQkJKi8KLQlvdXQzMihHUElPMF9UU1JMLCBDRkdfR1BJTzBfVFNSTCk7Ci0jaWYgZGVmaW5lZChDRkdfR1BJTzBfSVNSMkgpCi0Jb3V0MzIoR1BJTzBfSVNSMkgsIENGR19HUElPMF9JU1IySCk7Ci0Jb3V0MzIoR1BJTzBfSVNSMkwsIENGR19HUElPMF9JU1IyTCk7CisJb3V0MzIoR1BJTzBfT1NSSCwgQ09ORklHX1NZU19HUElPMF9PU1JIKTsJLyogb3V0cHV0IHNlbGVjdAkJCSovCisJb3V0MzIoR1BJTzBfT1NSTCwgQ09ORklHX1NZU19HUElPMF9PU1JMKTsKKwlvdXQzMihHUElPMF9JU1IxSCwgQ09ORklHX1NZU19HUElPMF9JU1IxSCk7CS8qIGlucHV0IHNlbGVjdAkJCQkqLworCW91dDMyKEdQSU8wX0lTUjFMLCBDT05GSUdfU1lTX0dQSU8wX0lTUjFMKTsKKwlvdXQzMihHUElPMF9UU1JILCBDT05GSUdfU1lTX0dQSU8wX1RTUkgpOwkvKiB0aHJlZS1zdGF0ZSBzZWxlY3QJCQkqLworCW91dDMyKEdQSU8wX1RTUkwsIENPTkZJR19TWVNfR1BJTzBfVFNSTCk7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0dQSU8wX0lTUjJIKQorCW91dDMyKEdQSU8wX0lTUjJILCBDT05GSUdfU1lTX0dQSU8wX0lTUjJIKTsKKwlvdXQzMihHUElPMF9JU1IyTCwgQ09ORklHX1NZU19HUElPMF9JU1IyTCk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkIChDRkdfR1BJTzBfVENSKQotCW91dDMyKEdQSU8wX1RDUiwgQ0ZHX0dQSU8wX1RDUik7CS8qIGVuYWJsZSBvdXRwdXQgZHJpdmVyIGZvciBvdXRwdXRzCSovCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19HUElPMF9UQ1IpCisJb3V0MzIoR1BJTzBfVENSLCBDT05GSUdfU1lTX0dQSU8wX1RDUik7CS8qIGVuYWJsZSBvdXRwdXQgZHJpdmVyIGZvciBvdXRwdXRzCSovCiAjZW5kaWYKLSNlbmRpZiAvKiBDT05GSUdfNDA1RVAgLi4uICYmICFDRkdfNHh4X0dQSU9fVEFCTEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfNDA1RVAgLi4uICYmICFDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFICovCiAKICNpZiBkZWZpbmVkIChDT05GSUdfNDA1RVApCiAJLyoKQEAgLTE4MSwxNCArMTgxLDE0IEBACiAJbXRkY3IoY3BjMF9wY2ksIG1mZGNyKGNwYzBfcGNpKSB8IENQQzBfUENJX0hPU1RfQ0ZHX0VOIHwgQ1BDMF9QQ0lfQVJCSVRfRU4pOwogI2VuZGlmIC8qIENPTkZJR180MDVFUCAqLwogCi0jaWYgZGVmaW5lZChDRkdfNHh4X0dQSU9fVEFCTEUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFKQogCWdwaW9fc2V0X2NoaXBfY29uZmlndXJhdGlvbigpOwotI2VuZGlmIC8qIENGR180eHhfR1BJT19UQUJMRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgKi8KIAogCS8qCiAJICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKIAkgKi8KLSNpZiAoZGVmaW5lZChDRkdfRUJDX1BCMEFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEIwQ1IpKQorI2lmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMEFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMENSKSkKICNpZiAoZGVmaW5lZChDT05GSUdfNDA1R1ApIHx8IGRlZmluZWQoQ09ORklHXzQwNUNSKSB8fCBcCiAgICAgIGRlZmluZWQoQ09ORklHXzQwNUVQKSB8fCBkZWZpbmVkKENPTkZJR180MDVFWikgfHwgXAogICAgICBkZWZpbmVkKENPTkZJR180MDVFWCkgfHwgZGVmaW5lZChDT05GSUdfNDA1KSkKQEAgLTIwOSw0NyArMjA5LDQ3IEBACiAJYXNtIHZvbGF0aWxlKCIyOgliZG56CTJiIgkJOjo6ICJjdHIiLCAiY3IwIik7CiAjZW5kaWYKIAotCW10ZWJjKHBiMGFwLCBDRkdfRUJDX1BCMEFQKTsKLQltdGViYyhwYjBjciwgQ0ZHX0VCQ19QQjBDUik7CisJbXRlYmMocGIwYXAsIENPTkZJR19TWVNfRUJDX1BCMEFQKTsKKwltdGViYyhwYjBjciwgQ09ORklHX1NZU19FQkNfUEIwQ1IpOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfRUJDX1BCMUFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEIxQ1IpICYmICEoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDEpKQotCW10ZWJjKHBiMWFwLCBDRkdfRUJDX1BCMUFQKTsKLQltdGViYyhwYjFjciwgQ0ZHX0VCQ19QQjFDUik7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEIxQVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEIxQ1IpICYmICEoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSAxKSkKKwltdGViYyhwYjFhcCwgQ09ORklHX1NZU19FQkNfUEIxQVApOworCW10ZWJjKHBiMWNyLCBDT05GSUdfU1lTX0VCQ19QQjFDUik7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19FQkNfUEIyQVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjJDUikgJiYgIShDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gMikpCi0JbXRlYmMocGIyYXAsIENGR19FQkNfUEIyQVApOwotCW10ZWJjKHBiMmNyLCBDRkdfRUJDX1BCMkNSKTsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjJBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjJDUikgJiYgIShDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDIpKQorCW10ZWJjKHBiMmFwLCBDT05GSUdfU1lTX0VCQ19QQjJBUCk7CisJbXRlYmMocGIyY3IsIENPTkZJR19TWVNfRUJDX1BCMkNSKTsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjNBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCM0NSKSAmJiAhKENGR19JTklUX0RDQUNIRV9DUyA9PSAzKSkKLQltdGViYyhwYjNhcCwgQ0ZHX0VCQ19QQjNBUCk7Ci0JbXRlYmMocGIzY3IsIENGR19FQkNfUEIzQ1IpOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCM0FQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCM0NSKSAmJiAhKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gMykpCisJbXRlYmMocGIzYXAsIENPTkZJR19TWVNfRUJDX1BCM0FQKTsKKwltdGViYyhwYjNjciwgQ09ORklHX1NZU19FQkNfUEIzQ1IpOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfRUJDX1BCNEFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEI0Q1IpICYmICEoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDQpKQotCW10ZWJjKHBiNGFwLCBDRkdfRUJDX1BCNEFQKTsKLQltdGViYyhwYjRjciwgQ0ZHX0VCQ19QQjRDUik7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI0QVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI0Q1IpICYmICEoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSA0KSkKKwltdGViYyhwYjRhcCwgQ09ORklHX1NZU19FQkNfUEI0QVApOworCW10ZWJjKHBiNGNyLCBDT05GSUdfU1lTX0VCQ19QQjRDUik7CiAjZW5kaWYKIAotI2lmIChkZWZpbmVkKENGR19FQkNfUEI1QVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjVDUikgJiYgIShDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gNSkpCi0JbXRlYmMocGI1YXAsIENGR19FQkNfUEI1QVApOwotCW10ZWJjKHBiNWNyLCBDRkdfRUJDX1BCNUNSKTsKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjVBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjVDUikgJiYgIShDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDUpKQorCW10ZWJjKHBiNWFwLCBDT05GSUdfU1lTX0VCQ19QQjVBUCk7CisJbXRlYmMocGI1Y3IsIENPTkZJR19TWVNfRUJDX1BCNUNSKTsKICNlbmRpZgogCi0jaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjZBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCNkNSKSAmJiAhKENGR19JTklUX0RDQUNIRV9DUyA9PSA2KSkKLQltdGViYyhwYjZhcCwgQ0ZHX0VCQ19QQjZBUCk7Ci0JbXRlYmMocGI2Y3IsIENGR19FQkNfUEI2Q1IpOworI2lmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCNkFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCNkNSKSAmJiAhKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gNikpCisJbXRlYmMocGI2YXAsIENPTkZJR19TWVNfRUJDX1BCNkFQKTsKKwltdGViYyhwYjZjciwgQ09ORklHX1NZU19FQkNfUEI2Q1IpOwogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChDRkdfRUJDX1BCN0FQKSAmJiBkZWZpbmVkKENGR19FQkNfUEI3Q1IpICYmICEoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDcpKQotCW10ZWJjKHBiN2FwLCBDRkdfRUJDX1BCN0FQKTsKLQltdGViYyhwYjdjciwgQ0ZHX0VCQ19QQjdDUik7CisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI3QVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI3Q1IpICYmICEoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSA3KSkKKwltdGViYyhwYjdhcCwgQ09ORklHX1NZU19FQkNfUEI3QVApOworCW10ZWJjKHBiN2NyLCBDT05GSUdfU1lTX0VCQ19QQjdDUik7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQgKENGR19FQkNfQ0ZHKQotCW10ZWJjKEVCQzBfQ0ZHLCBDRkdfRUJDX0NGRyk7CisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19FQkNfQ0ZHKQorCW10ZWJjKEVCQzBfQ0ZHLCBDT05GSUdfU1lTX0VCQ19DRkcpOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKQEAgLTI2MSw5ICsyNjEsOSBAQAogI2Vsc2UKIAl2YWwgfD0gMHhmMDAwMDAwMDsgICAgICAvKiBnZW5lcmF0ZSBzeXN0ZW0gcmVzZXQgYWZ0ZXIgMi42ODQgc2Vjb25kcyAqLwogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfNHh4X1JFU0VUX1RZUEUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTXzR4eF9SRVNFVF9UWVBFKQogCXZhbCAmPSB+MHgzMDAwMDAwMDsJCQkvKiBjbGVhciBXUkMgYml0cyAqLwotCXZhbCB8PSBDRkdfNHh4X1JFU0VUX1RZUEUgPDwgMjg7CS8qIHNldCBib2FyZCBzcGVjaWZpYyBXUkMgdHlwZSAqLworCXZhbCB8PSBDT05GSUdfU1lTXzR4eF9SRVNFVF9UWVBFIDw8IDI4OwkvKiBzZXQgYm9hcmQgc3BlY2lmaWMgV1JDIHR5cGUgKi8KICNlbmRpZgogCW10c3ByKHRjciwgdmFsKTsKIApkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9kZW5hbGlfZGF0YV9leWUuYyBiL2NwdS9wcGM0eHgvZGVuYWxpX2RhdGFfZXllLmMKaW5kZXggOTY3ZTYxYi4uZmZjMzgxNyAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC9kZW5hbGlfZGF0YV9leWUuYworKysgYi9jcHUvcHBjNHh4L2RlbmFsaV9kYXRhX2V5ZS5jCkBAIC0xMjcsNyArMTI3LDcgQEAKIAkJMHg1NUFBNTVBQSwgMHg1NUFBNTVBQSwgMHhBQTU1QUE1NSwgMHhBQTU1QUE1NQogCX07CiAKLQlyYW1fcG9pbnRlciA9ICh2b2xhdGlsZSB1MzIgKikoQ0ZHX1NEUkFNX0JBU0UpOworCXJhbV9wb2ludGVyID0gKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX1NEUkFNX0JBU0UpOwogCiAJZm9yICh3cl9kcXNfc2hpZnQgPSA2NDsgd3JfZHFzX3NoaWZ0IDwgOTY7IHdyX2Rxc19zaGlmdCsrKSB7CiAJCS8qIGZvciAod3JfZHFzX3NoaWZ0PTE7IHdyX2Rxc19zaGlmdDw5Njsgd3JfZHFzX3NoaWZ0KyspIHsgKi8KZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvZGVuYWxpX3NwZF9kZHIyLmMgYi9jcHUvcHBjNHh4L2RlbmFsaV9zcGRfZGRyMi5jCmluZGV4IDY3MGZjNWMuLjQ3MDVlMjEgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvZGVuYWxpX3NwZF9kZHIyLmMKKysrIGIvY3B1L3BwYzR4eC9kZW5hbGlfc3BkX2RkcjIuYwpAQCAtMTA0OCw4ICsxMDQ4LDggQEAKIAkgKiBiZWZvcmUgY29udGludWluZy4KIAkgKi8KIAkvKiBzd2l0Y2ggdG8gY29ycmVjdCBJMkMgYnVzICovCi0JSTJDX1NFVF9CVVMoQ0ZHX1NQRF9CVVNfTlVNKTsKLQlpMmNfaW5pdChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlJMkNfU0VUX0JVUyhDT05GSUdfU1lTX1NQRF9CVVNfTlVNKTsKKwlpMmNfaW5pdChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBDbGVhciBvdXQgdGhlIHNlcmlhbCBwcmVzZW5jZSBkZXRlY3QgYnVmZmVycy4KQEAgLTExODUsMjcgKzExODUsMjcgQEAKIAkgKiBNYXAgdGhlIGZpcnN0IDEgTWlCIG9mIG1lbW9yeSBpbiB0aGUgVExCLCBhbmQgcGVyZm9ybSB0aGUgZGF0YSBleWUKIAkgKiBzZWFyY2guCiAJICovCi0JcHJvZ3JhbV90bGIoMCwgQ0ZHX1NEUkFNX0JBU0UsIFRMQl8xTUJfU0laRSwgVExCX1dPUkQyX0lfRU5BQkxFKTsKKwlwcm9ncmFtX3RsYigwLCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFRMQl8xTUJfU0laRSwgVExCX1dPUkQyX0lfRU5BQkxFKTsKIAlkZW5hbGlfY29yZV9zZWFyY2hfZGF0YV9leWUoKTsKIAlkZW5hbGlfc2RyYW1fcmVnaXN0ZXJfZHVtcCgpOwotCXJlbW92ZV90bGIoQ0ZHX1NEUkFNX0JBU0UsIFRMQl8xTUJfU0laRSk7CisJcmVtb3ZlX3RsYihDT05GSUdfU1lTX1NEUkFNX0JBU0UsIFRMQl8xTUJfU0laRSk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX1pFUk9fU0RSQU0pIHx8IGRlZmluZWQoQ09ORklHX0REUl9FQ0MpCi0JcHJvZ3JhbV90bGIoMCwgQ0ZHX1NEUkFNX0JBU0UsIGRyYW1fc2l6ZSwgMCk7CisJcHJvZ3JhbV90bGIoMCwgQ09ORklHX1NZU19TRFJBTV9CQVNFLCBkcmFtX3NpemUsIDApOwogCXN5bmMoKTsKIAkvKiBaZXJvIHRoZSBtZW1vcnkgKi8KIAlkZWJ1ZygiWmVyb2luZyBTRFJBTS4uLiIpOwotI2lmIGRlZmluZWQoQ0ZHX01FTV9UT1BfSElERSkKLQlkY2J6X2FyZWEoQ0ZHX1NEUkFNX0JBU0UsIGRyYW1fc2l6ZSAtIENGR19NRU1fVE9QX0hJREUpOworI2lmIGRlZmluZWQoQ09ORklHX1NZU19NRU1fVE9QX0hJREUpCisJZGNiel9hcmVhKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgZHJhbV9zaXplIC0gQ09ORklHX1NZU19NRU1fVE9QX0hJREUpOwogI2Vsc2UKLSNlcnJvciBQbGVhc2UgZGVmaW5lIENGR19NRU1fVE9QX0hJREUgKHNlZSBSRUFETUUpIGluIHlvdXIgYm9hcmQgY29uZmlnIGZpbGUKKyNlcnJvciBQbGVhc2UgZGVmaW5lIENPTkZJR19TWVNfTUVNX1RPUF9ISURFIChzZWUgUkVBRE1FKSBpbiB5b3VyIGJvYXJkIGNvbmZpZyBmaWxlCiAjZW5kaWYKIAkvKiBXcml0ZSBtb2RpZmllZCBkY2FjaGUgbGluZXMgYmFjayB0byBtZW1vcnkgKi8KLQljbGVhbl9kY2FjaGVfcmFuZ2UoQ0ZHX1NEUkFNX0JBU0UsIENGR19TRFJBTV9CQVNFICsgZHJhbV9zaXplIC0gQ0ZHX01FTV9UT1BfSElERSk7CisJY2xlYW5fZGNhY2hlX3JhbmdlKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZHJhbV9zaXplIC0gQ09ORklHX1NZU19NRU1fVE9QX0hJREUpOwogCWRlYnVnKCJDb21wbGV0ZWRcbiIpOwogCXN5bmMoKTsKLQlyZW1vdmVfdGxiKENGR19TRFJBTV9CQVNFLCBkcmFtX3NpemUpOworCXJlbW92ZV90bGIoQ09ORklHX1NZU19TRFJBTV9CQVNFLCBkcmFtX3NpemUpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfRERSX0VDQykKIAkvKgpAQCAtMTIzNiw3ICsxMjM2LDcgQEAKICNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19ERFJfRUNDKSAqLwogI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1pFUk9fU0RSQU0pIHx8IGRlZmluZWQoQ09ORklHX0REUl9FQ0MpICovCiAKLQlwcm9ncmFtX3RsYigwLCBDRkdfU0RSQU1fQkFTRSwgZHJhbV9zaXplLCBNWV9UTEJfV09SRDJfSV9FTkFCTEUpOworCXByb2dyYW1fdGxiKDAsIENPTkZJR19TWVNfU0RSQU1fQkFTRSwgZHJhbV9zaXplLCBNWV9UTEJfV09SRDJfSV9FTkFCTEUpOwogCXJldHVybiBkcmFtX3NpemU7CiB9CiAKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvZWNjLmMgYi9jcHUvcHBjNHh4L2VjYy5jCmluZGV4IGEyZWIwN2IuLjNmOTg5ZTdmIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L2VjYy5jCisrKyBiL2NwdS9wcGM0eHgvZWNjLmMKQEAgLTY4LDcgKzY4LDcgQEAKICAqCiAgKiAgT3V0cHV0KHMpOgogICogICAgc3RhcnQgLSBBIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIG1lbW9yeSBjb3ZlcmVkIGJ5IEVDQyB3aXRoCi0gKgkgICAgICBDRkdfRUNDX1BBVFRFUk4gd3JpdHRlbiB0byBhbGwgbG9jYXRpb25zIGFuZCBFQ0MgZGF0YQorICoJICAgICAgQ09ORklHX1NZU19FQ0NfUEFUVEVSTiB3cml0dGVuIHRvIGFsbCBsb2NhdGlvbnMgYW5kIEVDQyBkYXRhCiAgKgkgICAgICBwcmltZWQuCiAgKgogICogIFJldHVybnM6CkBAIC03Niw3ICs3Niw3IEBACiAgKi8KIHZvaWQgZWNjX2luaXQodW5zaWduZWQgbG9uZyAqIGNvbnN0IHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpCiB7Ci0JY29uc3QgdW5zaWduZWQgbG9uZyBwYXR0ZXJuID0gQ0ZHX0VDQ19QQVRURVJOOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgcGF0dGVybiA9IENPTkZJR19TWVNfRUNDX1BBVFRFUk47CiAJdW5zaWduZWQgbG9uZyAqIGNvbnN0IGVuZCA9ICh1bnNpZ25lZCBsb25nICogY29uc3QpKChsb25nKXN0YXJ0ICsgc2l6ZSk7CiAJdW5zaWduZWQgbG9uZyAqIGN1cnJlbnQgPSBzdGFydDsKIAl1bnNpZ25lZCBsb25nIG1jb3B0MTsKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvZWNjLmggYi9jcHUvcHBjNHh4L2VjYy5oCmluZGV4IGFlY2YyOTEuLjY3YzNiZmYgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvZWNjLmgKKysrIGIvY3B1L3BwYzR4eC9lY2MuaApAQCAtMzMsOSArMzMsOSBAQAogI2lmbmRlZiBfRUNDX0hfCiAjZGVmaW5lIF9FQ0NfSF8KIAotI2lmICFkZWZpbmVkKENGR19FQ0NfUEFUVEVSTikKLSNkZWZpbmUJQ0ZHX0VDQ19QQVRURVJOCTB4MDAwMDAwMDAKLSNlbmRpZiAvKiAhZGVmaW5lZChDRkdfRUNDX1BBVFRFUk4pICovCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19FQ0NfUEFUVEVSTikKKyNkZWZpbmUJQ09ORklHX1NZU19FQ0NfUEFUVEVSTgkweDAwMDAwMDAwCisjZW5kaWYgLyogIWRlZmluZWQoQ09ORklHX1NZU19FQ0NfUEFUVEVSTikgKi8KIAogLyoKICAqIFNpbmNlIHRoZSBJQk0gRERSIGNvbnRyb2xsZXIgdXNlZCBvbiA0NDBHUC9HWC9FUC9HUiBpcyBub3QgcmVnaXN0ZXIKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvZ3Bpby5jIGIvY3B1L3BwYzR4eC9ncGlvLmMKaW5kZXggZGY5OWY1My4uYzBkMzUxYSAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC9ncGlvLmMKKysrIGIvY3B1L3BwYzR4eC9ncGlvLmMKQEAgLTI2LDggKzI2LDggQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vZ3Bpby5oPgogCi0jaWYgZGVmaW5lZChDRkdfNHh4X0dQSU9fVEFCTEUpCi1ncGlvX3BhcmFtX3MgY29uc3QgZ3Bpb190YWJbR1BJT19HUk9VUF9NQVhdW0dQSU9fTUFYXSA9IENGR180eHhfR1BJT19UQUJMRTsKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUpCitncGlvX3BhcmFtX3MgY29uc3QgZ3Bpb190YWJbR1BJT19HUk9VUF9NQVhdW0dQSU9fTUFYXSA9IENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEU7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoR1BJTzBfT1NSTCkKQEAgLTEzMiw3ICsxMzIsNyBAQAogCXJldHVybiAoaW5fYmUzMigodm9pZCAqKUdQSU8wX0lSICsgb2ZmcykgJiBHUElPX1ZBTChwaW4pID8gMSA6IDApOwogfQogCi0jaWYgZGVmaW5lZChDRkdfNHh4X0dQSU9fVEFCTEUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFKQogdm9pZCBncGlvX3NldF9jaGlwX2NvbmZpZ3VyYXRpb24odm9pZCkKIHsKIAl1bnNpZ25lZCBjaGFyIGk9MCwgaj0wLCBvZmZzPTAsIGdwaW9fY29yZTsKQEAgLTI1Miw0ICsyNTIsNCBAQAogCQl9CiAJfQogfQotI2VuZGlmIC8qIENGR180eHhfR1BJT19UQUJMRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgKi8KZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvaTJjLmMgYi9jcHUvcHBjNHh4L2kyYy5jCmluZGV4IGQ4YmUyY2UuLjBkZWIxNDkgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvaTJjLmMKKysrIGIvY3B1L3BwYzR4eC9pMmMuYwpAQCAtNDIsOCArNDIsOCBAQAogICogcnVucyBmcm9tIFJPTSwgYW5kIHdlIGNhbid0IHN3aXRjaCBidXNlcyBiZWNhdXNlIHdlIGNhbid0IG1vZGlmeQogICogdGhlIGdsb2JhbCB2YXJpYWJsZXMuCiAgKi8KLSNpZmRlZiBDRkdfU1BEX0JVU19OVU0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19udW0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCJkYXRhIikpKSA9IENGR19TUERfQlVTX05VTTsKKyNpZmRlZiBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCitzdGF0aWMgdW5zaWduZWQgaW50IGkyY19idXNfbnVtIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiZGF0YSIpKSkgPSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNOwogI2Vsc2UKIHN0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19udW0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCJkYXRhIikpKSA9IDA7CiAjZW5kaWYKQEAgLTk1LDE0ICs5NSwxNCBAQAogCWludCB2YWwsIGRpdmlzb3I7CiAJaW50IGJ1czsKIAotI2lmZGVmIENGR19JMkNfSU5JVF9CT0FSRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQKIAkvKiBjYWxsIGJvYXJkIHNwZWNpZmljIGkyYyBidXMgcmVzZXQgcm91dGluZSBiZWZvcmUgYWNjZXNzaW5nIHRoZSAgICovCiAJLyogZW52aXJvbm1lbnQsIHdoaWNoIG1pZ2h0IGJlIGluIGEgY2hpcCBvbiB0aGF0IGJ1cy4gRm9yIGRldGFpbHMgICAqLwogCS8qIGFib3V0IHRoaXMgcHJvYmxlbSBzZWUgZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMuICAgICAgICAgICAgICAgICAgKi8KIAlpMmNfaW5pdF9ib2FyZCgpOwogI2VuZGlmCiAKLQlmb3IgKGJ1cyA9IDA7IGJ1cyA8IENGR19NQVhfSTJDX0JVUzsgYnVzKyspIHsKKwlmb3IgKGJ1cyA9IDA7IGJ1cyA8IENPTkZJR19TWVNfTUFYX0kyQ19CVVM7IGJ1cysrKSB7CiAJCUkyQ19TRVRfQlVTKGJ1cyk7CiAKIAkJLyogSGFuZGxlIHBvc3NpYmxlIGZhaWxlZCBJMkMgc3RhdGUgKi8KQEAgLTE2MSw3ICsxNjEsNyBAQAogCX0KIAogCS8qIHNldCB0byBTUEQgYnVzIGFzIGRlZmF1bHQgYnVzIHVwb24gcG93ZXJ1cCAqLwotCUkyQ19TRVRfQlVTKENGR19TUERfQlVTX05VTSk7CisJSTJDX1NFVF9CVVMoQ09ORklHX1NZU19TUERfQlVTX05VTSk7CiB9CiAKIC8qCkBAIC0zNjEsNyArMzYxLDcgQEAKIAl9CiAKIAotI2lmZGVmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwogCS8qCiAJICogRUVQUk9NIGNoaXBzIHRoYXQgaW1wbGVtZW50ICJhZGRyZXNzIG92ZXJmbG93IiBhcmUgb25lcwogCSAqIGxpa2UgQ2F0YWx5c3QgMjRXQzA0LzA4LzE2IHdoaWNoIGhhcyA5LzEwLzExIGJpdHMgb2YKQEAgLTM3NCw3ICszNzQsNyBAQAogCSAqIGhpZGRlbiBpbiB0aGUgY2hpcCBhZGRyZXNzLgogCSAqLwogCWlmIChhbGVuID4gMCkKLQkJY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwkJY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyk7CiAjZW5kaWYKIAlpZiAoKHJldCA9IGkyY190cmFuc2ZlcigxLCBjaGlwPDwxLCAmeGFkZHJbNC1hbGVuXSwgYWxlbiwgYnVmZmVyLCBsZW4pKSAhPSAwKSB7CiAJCWlmIChnZC0+aGF2ZV9jb25zb2xlKQpAQCAtNDAxLDcgKzQwMSw3IEBACiAJCXhhZGRyWzNdID0gYWRkciAmIDB4RkY7CiAJfQogCi0jaWZkZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2lmZGVmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCiAJLyoKIAkgKiBFRVBST00gY2hpcHMgdGhhdCBpbXBsZW1lbnQgImFkZHJlc3Mgb3ZlcmZsb3ciIGFyZSBvbmVzCiAJICogbGlrZSBDYXRhbHlzdCAyNFdDMDQvMDgvMTYgd2hpY2ggaGFzIDkvMTAvMTEgYml0cyBvZgpAQCAtNDE0LDcgKzQxNCw3IEBACiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCiAJaWYgKGFsZW4gPiAwKQotCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cpOworCQljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKICNlbmRpZgogCiAJcmV0dXJuIChpMmNfdHJhbnNmZXIoMCwgY2hpcDw8MSwgJnhhZGRyWzQtYWxlbl0sIGFsZW4sIGJ1ZmZlciwgbGVuICkgIT0gMCk7CkBAIC00NTEsNyArNDUxLDcgQEAKIAogaW50IGkyY19zZXRfYnVzX251bSh1bnNpZ25lZCBpbnQgYnVzKQogewotCWlmIChidXMgPj0gQ0ZHX01BWF9JMkNfQlVTKQorCWlmIChidXMgPj0gQ09ORklHX1NZU19NQVhfSTJDX0JVUykKIAkJcmV0dXJuIC0xOwogCiAJaTJjX2J1c19udW0gPSBidXM7CkBAIC00NjMsMTIgKzQ2MywxMiBAQAogLyogVE9ETzogYWRkIDEwMC80MDBrIHN3aXRjaGluZyAqLwogdW5zaWduZWQgaW50IGkyY19nZXRfYnVzX3NwZWVkKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19JMkNfU1BFRUQ7CisJcmV0dXJuIENPTkZJR19TWVNfSTJDX1NQRUVEOwogfQogCiBpbnQgaTJjX3NldF9idXNfc3BlZWQodW5zaWduZWQgaW50IHNwZWVkKQogewotCWlmIChzcGVlZCAhPSBDRkdfSTJDX1NQRUVEKQorCWlmIChzcGVlZCAhPSBDT05GSUdfU1lTX0kyQ19TUEVFRCkKIAkJcmV0dXJuIC0xOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L25kZmMuYyBiL2NwdS9wcGM0eHgvbmRmYy5jCmluZGV4IDdkOTZlNzkuLjNhNWFmMTIgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvbmRmYy5jCisrKyBiL2NwdS9wcGM0eHgvbmRmYy5jCkBAIC0xNDksOCArMTQ5LDggQEAKIH0KICNlbmRpZiAvKiAjaWZuZGVmIENPTkZJR19OQU5EX1NQTCAqLwogCi0jaWZuZGVmIENGR19OQU5EX0JDUgotI2RlZmluZSBDRkdfTkFORF9CQ1IgMHg4MDAwMjIyMgorI2lmbmRlZiBDT05GSUdfU1lTX05BTkRfQkNSCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQ1IgMHg4MDAwMjIyMgogI2VuZGlmCiAKIHZvaWQgYm9hcmRfbmFuZF9zZWxlY3RfZGV2aWNlKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsIGludCBjaGlwKQpAQCAtMTY1LDcgKzE2NSw3IEBACiAJLyogU2V0IE5hbmRGbGFzaCBDb3JlIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KIAkvKiAxIGNvbCB4IDIgcm93cyAqLwogCW91dF9iZTMyKCh1MzIgKikoYmFzZSArIE5ERkNfQ0NSKSwgMHgwMDAwMDAwMCB8IChjcyA8PCAyNCkpOwotCW91dF9iZTMyKCh1MzIgKikoYmFzZSArIE5ERkNfQkNGRzAgKyAoY3MgPDwgMikpLCBDRkdfTkFORF9CQ1IpOworCW91dF9iZTMyKCh1MzIgKikoYmFzZSArIE5ERkNfQkNGRzAgKyAoY3MgPDwgMikpLCBDT05GSUdfU1lTX05BTkRfQkNSKTsKIH0KIAogc3RhdGljIHZvaWQgbmRmY19zZWxlY3RfY2hpcChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgaW50IGNoaXApCkBAIC0yMTQsOCArMjE0LDggQEAKIAkgKi8KIAltdGViYyhFQkMwX0NGRywgMHhiODQwMDAwMCk7CiAKLQltdGViYyhwYjBjciwgQ0ZHX0VCQ19QQjBDUik7Ci0JbXRlYmMocGIwYXAsIENGR19FQkNfUEIwQVApOworCW10ZWJjKHBiMGNyLCBDT05GSUdfU1lTX0VCQ19QQjBDUik7CisJbXRlYmMocGIwYXAsIENPTkZJR19TWVNfRUJDX1BCMEFQKTsKICNlbmRpZgogCiAJY2hpcCsrOwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9zZHJhbS5jIGIvY3B1L3BwYzR4eC9zZHJhbS5jCmluZGV4IGI1YTZhNGMuLjZkNWY4ZDYgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvc2RyYW0uYworKysgYi9jcHUvcHBjNHh4L3NkcmFtLmMKQEAgLTM3LDcgKzM3LDcgQEAKIAogI2lmbmRlZiBDT05GSUdfNDQwCiAKLSNpZm5kZWYgQ0ZHX1NEUkFNX1RBQkxFCisjaWZuZGVmIENPTkZJR19TWVNfU0RSQU1fVEFCTEUKIHNkcmFtX2NvbmZfdCBtYjBjZltdID0gewogCXsoMTI4IDw8IDIwKSwgMTMsIDB4MDAwQTQwMDF9LAkgICAgLyogKDAtMTI4TUIpIEFkZHJlc3MgTW9kZSAzLCAxM3gxMCg0KSAqLwogCXsoNjQgPDwgMjApLCAgMTMsIDB4MDAwODQwMDF9LAkgICAgLyogKDAtNjRNQikgQWRkcmVzcyBNb2RlIDMsIDEzeDkoNCkJICAqLwpAQCAtNDYsNzIgKzQ2LDcyIEBACiAJeyg0IDw8IDIwKSwgICAxMSwgMHgwMDAwODAwMX0sCSAgICAvKiAoMC00TUIpIEFkZHJlc3MgTW9kZSA1LCAxMXg4KDIpCSAgKi8KIH07CiAjZWxzZQotc2RyYW1fY29uZl90IG1iMGNmW10gPSBDRkdfU0RSQU1fVEFCTEU7CitzZHJhbV9jb25mX3QgbWIwY2ZbXSA9IENPTkZJR19TWVNfU0RSQU1fVEFCTEU7CiAjZW5kaWYKIAogI2RlZmluZSBOX01CMENGIChzaXplb2YobWIwY2YpIC8gc2l6ZW9mKG1iMGNmWzBdKSkKIAotI2lmZGVmIENGR19TRFJBTV9DQVNMCisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9DQVNMCiBzdGF0aWMgdWxvbmcgbnMyY2xrcyh1bG9uZyBucykKIHsKIAl1bG9uZyBidXNfcGVyaW9kX3hfMTAgPSBPTkVfQklMTElPTiAvIChnZXRfYnVzX2ZyZXEoMCkgLyAxMCk7CiAKIAlyZXR1cm4gKChucyAqIDEwKSArIGJ1c19wZXJpb2RfeF8xMCkgLyBidXNfcGVyaW9kX3hfMTA7CiB9Ci0jZW5kaWYgLyogQ0ZHX1NEUkFNX0NBU0wgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1NEUkFNX0NBU0wgKi8KIAogc3RhdGljIHVsb25nIGNvbXB1dGVfc2R0cjEodWxvbmcgc3BlZWQpCiB7Ci0jaWZkZWYgQ0ZHX1NEUkFNX0NBU0wKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0NBU0wKIAl1bG9uZyB0bXA7CiAJdWxvbmcgc2R0cjEgPSAwOwogCiAJLyogQ0FTTCAqLwotCWlmIChDRkdfU0RSQU1fQ0FTTCA8IDIpCisJaWYgKENPTkZJR19TWVNfU0RSQU1fQ0FTTCA8IDIpCiAJCXNkdHIxIHw9ICgxIDw8IFNEUkFNMF9UUl9DQVNMKTsKIAllbHNlCi0JCWlmIChDRkdfU0RSQU1fQ0FTTCA+IDQpCisJCWlmIChDT05GSUdfU1lTX1NEUkFNX0NBU0wgPiA0KQogCQkJc2R0cjEgfD0gKDMgPDwgU0RSQU0wX1RSX0NBU0wpOwogCQllbHNlCi0JCQlzZHRyMSB8PSAoKENGR19TRFJBTV9DQVNMLTEpIDw8IFNEUkFNMF9UUl9DQVNMKTsKKwkJCXNkdHIxIHw9ICgoQ09ORklHX1NZU19TRFJBTV9DQVNMLTEpIDw8IFNEUkFNMF9UUl9DQVNMKTsKIAogCS8qIFBUQSAqLwotCXRtcCA9IG5zMmNsa3MoQ0ZHX1NEUkFNX1BUQSk7CisJdG1wID0gbnMyY2xrcyhDT05GSUdfU1lTX1NEUkFNX1BUQSk7CiAJaWYgKCh0bXAgPj0gMikgJiYgKHRtcCA8PSA0KSkKIAkJc2R0cjEgfD0gKCh0bXAtMSkgPDwgU0RSQU0wX1RSX1BUQSk7CiAJZWxzZQogCQlzZHRyMSB8PSAoKDQtMSkgPDwgU0RSQU0wX1RSX1BUQSk7CiAKIAkvKiBDVFAgKi8KLQl0bXAgPSBuczJjbGtzKENGR19TRFJBTV9DVFApOworCXRtcCA9IG5zMmNsa3MoQ09ORklHX1NZU19TRFJBTV9DVFApOwogCWlmICgodG1wID49IDIpICYmICh0bXAgPD0gNCkpCiAJCXNkdHIxIHw9ICgodG1wLTEpIDw8IFNEUkFNMF9UUl9DVFApOwogCWVsc2UKIAkJc2R0cjEgfD0gKCg0LTEpIDw8IFNEUkFNMF9UUl9DVFApOwogCiAJLyogTERGICovCi0JdG1wID0gbnMyY2xrcyhDRkdfU0RSQU1fTERGKTsKKwl0bXAgPSBuczJjbGtzKENPTkZJR19TWVNfU0RSQU1fTERGKTsKIAlpZiAoKHRtcCA+PSAyKSAmJiAodG1wIDw9IDQpKQogCQlzZHRyMSB8PSAoKHRtcC0xKSA8PCBTRFJBTTBfVFJfTERGKTsKIAllbHNlCiAJCXNkdHIxIHw9ICgoMi0xKSA8PCBTRFJBTTBfVFJfTERGKTsKIAogCS8qIFJGVEEgKi8KLQl0bXAgPSBuczJjbGtzKENGR19TRFJBTV9SRlRBKTsKKwl0bXAgPSBuczJjbGtzKENPTkZJR19TWVNfU0RSQU1fUkZUQSk7CiAJaWYgKCh0bXAgPj0gNCkgJiYgKHRtcCA8PSAxMCkpCiAJCXNkdHIxIHw9ICgodG1wLTQpIDw8IFNEUkFNMF9UUl9SRlRBKTsKIAllbHNlCiAJCXNkdHIxIHw9ICgoMTAtNCkgPDwgU0RSQU0wX1RSX1JGVEEpOwogCiAJLyogUkNEICovCi0JdG1wID0gbnMyY2xrcyhDRkdfU0RSQU1fUkNEKTsKKwl0bXAgPSBuczJjbGtzKENPTkZJR19TWVNfU0RSQU1fUkNEKTsKIAlpZiAoKHRtcCA+PSAyKSAmJiAodG1wIDw9IDQpKQogCQlzZHRyMSB8PSAoKHRtcC0xKSA8PCBTRFJBTTBfVFJfUkNEKTsKIAllbHNlCiAJCXNkdHIxIHw9ICgoNC0xKSA8PCBTRFJBTTBfVFJfUkNEKTsKIAogCXJldHVybiBzZHRyMTsKLSNlbHNlIC8qIENGR19TRFJBTV9DQVNMICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1NEUkFNX0NBU0wgKi8KIAkvKgogCSAqIElmIG5vIHZhbHVlcyBhcmUgY29uZmlndXJlZCBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUKIAkgKiB1c2UgdGhlIGRlZmF1bHQgdmFsdWVzLCB3aGljaCBzZWVtIHRvIGJlIG9rIGZvciBtb3N0CkBAIC0xMzMsMjAgKzEzMywyMCBAQAogCQkgKi8KIAkJcmV0dXJuIDB4MDA4NjQwMGQ7CiAJfQotI2VuZGlmIC8qIENGR19TRFJBTV9DQVNMICovCisjZW5kaWYgLyogQ09ORklHX1NZU19TRFJBTV9DQVNMICovCiB9CiAKIC8qIHJlZnJlc2ggaXMgZXhwcmVzc2VkIGluIG1zICovCiBzdGF0aWMgdWxvbmcgY29tcHV0ZV9ydHIodWxvbmcgc3BlZWQsIHVsb25nIHJvd3MsIHVsb25nIHJlZnJlc2gpCiB7Ci0jaWZkZWYgQ0ZHX1NEUkFNX0NBU0wKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0NBU0wKIAl1bG9uZyB0bXA7CiAKIAl0bXAgPSAoKHJlZnJlc2gqMTAwMCoxMDAwKSAvICgxIDw8IHJvd3MpKSAqIChzcGVlZCAvIDEwMDApOwogCXRtcCAvPSAxMDAwMDAwOwogCiAJcmV0dXJuICgodG1wICYgMHgwMDAwM0ZGOCkgPDwgMTYpOwotI2Vsc2UgLyogQ0ZHX1NEUkFNX0NBU0wgKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfU0RSQU1fQ0FTTCAqLwogCWlmIChzcGVlZCA+IDEwMDAwMDAwMCkgewogCQkvKgogCQkgKiAxMzMgTUh6IFNEUkFNCkBAIC0xNTgsNyArMTU4LDcgQEAKIAkJICovCiAJCXJldHVybiAweDA1ZjAwMDAwOwogCX0KLSNlbmRpZiAvKiBDRkdfU0RSQU1fQ0FTTCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfU0RSQU1fQ0FTTCAqLwogfQogCiAvKgpAQCAtMjU2LDE3ICsyNTYsMTcgQEAKICAqIGJvYXJkIGNvbmZpZyBmaWxlLgogICovCiAKLSNpZm5kZWYgQ0ZHX1NEUkFNX1RBQkxFCisjaWZuZGVmIENPTkZJR19TWVNfU0RSQU1fVEFCTEUKIHNkcmFtX2NvbmZfdCBtYjBjZltdID0gewogCXsoMjU2IDw8IDIwKSwgMTMsIDB4MDAwQzQwMDF9LAkvKiAyNTZNQiBtb2RlIDMsIDEzeDEwKDQpCSovCiAJeyg2NCA8PCAyMCksICAxMiwgMHgwMDA4MjAwMX0JLyogNjRNQiBtb2RlIDIsIDEyeDkoNCkJCSovCiB9OwogI2Vsc2UKLXNkcmFtX2NvbmZfdCBtYjBjZltdID0gQ0ZHX1NEUkFNX1RBQkxFOworc2RyYW1fY29uZl90IG1iMGNmW10gPSBDT05GSUdfU1lTX1NEUkFNX1RBQkxFOwogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX1NEUkFNMF9UUjAKLSNkZWZpbmUJQ0ZHX1NEUkFNMF9UUjAJCTB4NDEwOTQwMTIKKyNpZm5kZWYgQ09ORklHX1NZU19TRFJBTTBfVFIwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU0wX1RSMAkJMHg0MTA5NDAxMgogI2VuZGlmCiAKICNkZWZpbmUgTl9NQjBDRiAoc2l6ZW9mKG1iMGNmKSAvIHNpemVvZihtYjBjZlswXSkpCkBAIC0zODUsNyArMzg1LDcgQEAKIAkJICogRm9sbG93aW5nIGZvciBDQVMgTGF0ZW5jeSA9IDIuNSBAIDEzMyBNSHogUExCCiAJCSAqLwogCQltdHNkcmFtKG1lbV9iMGNyLCBtYjBjZltpXS5yZWcpOwotCQltdHNkcmFtKG1lbV90cjAsIENGR19TRFJBTTBfVFIwKTsKKwkJbXRzZHJhbShtZW1fdHIwLCBDT05GSUdfU1lTX1NEUkFNMF9UUjApOwogCQltdHNkcmFtKG1lbV90cjEsIDB4ODA4MDA4MDApOwkvKiBTUz1UMiBTTD1TVEFHRSAzIENEPTEgQ1Q9MHgwMCovCiAJCW10c2RyYW0obWVtX3J0ciwgMHgwNDEwMDAwMCk7CS8qIEludGVydmFsIDcuOLVzIEAgMTMzTUh6IFBMQgkqLwogCQltdHNkcmFtKG1lbV9jZmcxLCAweDAwMDAwMDAwKTsJLyogU2VsZi1yZWZyZXNoIGV4aXQsIGRpc2FibGUgUE0qLwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9zZHJhbS5oIGIvY3B1L3BwYzR4eC9zZHJhbS5oCmluZGV4IDRmYjliMWEuLmJlYTMzNzYgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvc2RyYW0uaAorKysgYi9jcHUvcHBjNHh4L3NkcmFtLmgKQEAgLTQ3LDE5ICs0NywxOSBAQAogI2RlZmluZSBTRFJBTTBfVFJfUkZUQQkJKDMxIC0gMjkpCiAjZGVmaW5lIFNEUkFNMF9UUl9SQ0QJCSgzMSAtIDMxKQogCi0jaWZkZWYgQ0ZHX1NEUkFNX0NMCisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9DTAogLyogU0RSQU0gdGltaW5ncyBbbnNdIGFjY29yZGluZyB0byBBTUNDL0lCTSBuYW1lcyAoc2VlIFNEUkFNX2ZhcS5kb2MpICovCi0jZGVmaW5lIENGR19TRFJBTV9DQVNMCQlDRkdfU0RSQU1fQ0wKLSNkZWZpbmUgQ0ZHX1NEUkFNX1BUQQkJQ0ZHX1NEUkFNX3RSUAotI2RlZmluZSBDRkdfU0RSQU1fQ1RQCQkoQ0ZHX1NEUkFNX3RSQyAtIENGR19TRFJBTV90UkNEIC0gQ0ZHX1NEUkFNX3RSUCkKLSNkZWZpbmUgQ0ZHX1NEUkFNX0xERgkJMAotI2lmZGVmIENGR19TRFJBTV90UkZDCi0jZGVmaW5lIENGR19TRFJBTV9SRlRBCQlDRkdfU0RSQU1fdFJGQworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NBU0wJCUNPTkZJR19TWVNfU0RSQU1fQ0wKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9QVEEJCUNPTkZJR19TWVNfU0RSQU1fdFJQCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RQCQkoQ09ORklHX1NZU19TRFJBTV90UkMgLSBDT05GSUdfU1lTX1NEUkFNX3RSQ0QgLSBDT05GSUdfU1lTX1NEUkFNX3RSUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9MREYJCTAKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX3RSRkMKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SRlRBCQlDT05GSUdfU1lTX1NEUkFNX3RSRkMKICNlbHNlCi0jZGVmaW5lIENGR19TRFJBTV9SRlRBCQlDRkdfU0RSQU1fdFJDCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUkZUQQkJQ09ORklHX1NZU19TRFJBTV90UkMKICNlbmRpZgotI2RlZmluZSBDRkdfU0RSQU1fUkNECQlDRkdfU0RSQU1fdFJDRAotI2VuZGlmIC8qICNpZmRlZiBDRkdfU0RSQU1fQ0wgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SQ0QJCUNPTkZJR19TWVNfU0RSQU1fdFJDRAorI2VuZGlmIC8qICNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX0NMICovCiAKIC8qCiAgKiBTb21lIGRlZmluZXMgZm9yIHRoZSA0NDAgRERSIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL2NwdS9wcGM0eHgvc3RhcnQuUyBiL2NwdS9wcGM0eHgvc3RhcnQuUwppbmRleCA5NzQxMWJkLi4zMTkwMmEwIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L3N0YXJ0LlMKKysrIGIvY3B1L3BwYzR4eC9zdGFydC5TCkBAIC03Nyw2OSArNzcsNjkgQEAKICNkZWZpbmUJIENPTkZJR19JREVOVF9TVFJJTkcgIiIKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0lOSVRfRENBQ0hFX0NTCi0jIGlmIChDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gMCkKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCisjIGlmIChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDApCiAjICBkZWZpbmUgUEJ4QVAgcGIwYXAKICMgIGRlZmluZSBQQnhDUiBwYjBjcgotIyAgaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjBBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCMENSKSkKLSMgICBkZWZpbmUgUEJ4QVBfVkFMIENGR19FQkNfUEIwQVAKLSMgICBkZWZpbmUgUEJ4Q1JfVkFMIENGR19FQkNfUEIwQ1IKKyMgIGlmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMEFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMENSKSkKKyMgICBkZWZpbmUgUEJ4QVBfVkFMIENPTkZJR19TWVNfRUJDX1BCMEFQCisjICAgZGVmaW5lIFBCeENSX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjBDUgogIyAgZW5kaWYKICMgZW5kaWYKLSMgaWYgKENGR19JTklUX0RDQUNIRV9DUyA9PSAxKQorIyBpZiAoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSAxKQogIyAgZGVmaW5lIFBCeEFQIHBiMWFwCiAjICBkZWZpbmUgUEJ4Q1IgcGIxY3IKLSMgIGlmIChkZWZpbmVkKENGR19FQkNfUEIxQVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjFDUikpCi0jICAgZGVmaW5lIFBCeEFQX1ZBTCBDRkdfRUJDX1BCMUFQCi0jICAgZGVmaW5lIFBCeENSX1ZBTCBDRkdfRUJDX1BCMUNSCisjICBpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjFBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjFDUikpCisjICAgZGVmaW5lIFBCeEFQX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjFBUAorIyAgIGRlZmluZSBQQnhDUl9WQUwgQ09ORklHX1NZU19FQkNfUEIxQ1IKICMgIGVuZGlmCiAjIGVuZGlmCi0jIGlmIChDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gMikKKyMgaWYgKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gMikKICMgIGRlZmluZSBQQnhBUCBwYjJhcAogIyAgZGVmaW5lIFBCeENSIHBiMmNyCi0jICBpZiAoZGVmaW5lZChDRkdfRUJDX1BCMkFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEIyQ1IpKQotIyAgIGRlZmluZSBQQnhBUF9WQUwgQ0ZHX0VCQ19QQjJBUAotIyAgIGRlZmluZSBQQnhDUl9WQUwgQ0ZHX0VCQ19QQjJDUgorIyAgaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEIyQVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEIyQ1IpKQorIyAgIGRlZmluZSBQQnhBUF9WQUwgQ09ORklHX1NZU19FQkNfUEIyQVAKKyMgICBkZWZpbmUgUEJ4Q1JfVkFMIENPTkZJR19TWVNfRUJDX1BCMkNSCiAjICBlbmRpZgogIyBlbmRpZgotIyBpZiAoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDMpCisjIGlmIChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDMpCiAjICBkZWZpbmUgUEJ4QVAgcGIzYXAKICMgIGRlZmluZSBQQnhDUiBwYjNjcgotIyAgaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjNBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCM0NSKSkKLSMgICBkZWZpbmUgUEJ4QVBfVkFMIENGR19FQkNfUEIzQVAKLSMgICBkZWZpbmUgUEJ4Q1JfVkFMIENGR19FQkNfUEIzQ1IKKyMgIGlmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCM0FQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCM0NSKSkKKyMgICBkZWZpbmUgUEJ4QVBfVkFMIENPTkZJR19TWVNfRUJDX1BCM0FQCisjICAgZGVmaW5lIFBCeENSX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjNDUgogIyAgZW5kaWYKICMgZW5kaWYKLSMgaWYgKENGR19JTklUX0RDQUNIRV9DUyA9PSA0KQorIyBpZiAoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSA0KQogIyAgZGVmaW5lIFBCeEFQIHBiNGFwCiAjICBkZWZpbmUgUEJ4Q1IgcGI0Y3IKLSMgIGlmIChkZWZpbmVkKENGR19FQkNfUEI0QVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjRDUikpCi0jICAgZGVmaW5lIFBCeEFQX1ZBTCBDRkdfRUJDX1BCNEFQCi0jICAgZGVmaW5lIFBCeENSX1ZBTCBDRkdfRUJDX1BCNENSCisjICBpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjRBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjRDUikpCisjICAgZGVmaW5lIFBCeEFQX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjRBUAorIyAgIGRlZmluZSBQQnhDUl9WQUwgQ09ORklHX1NZU19FQkNfUEI0Q1IKICMgIGVuZGlmCiAjIGVuZGlmCi0jIGlmIChDRkdfSU5JVF9EQ0FDSEVfQ1MgPT0gNSkKKyMgaWYgKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgPT0gNSkKICMgIGRlZmluZSBQQnhBUCBwYjVhcAogIyAgZGVmaW5lIFBCeENSIHBiNWNyCi0jICBpZiAoZGVmaW5lZChDRkdfRUJDX1BCNUFQKSAmJiBkZWZpbmVkKENGR19FQkNfUEI1Q1IpKQotIyAgIGRlZmluZSBQQnhBUF9WQUwgQ0ZHX0VCQ19QQjVBUAotIyAgIGRlZmluZSBQQnhDUl9WQUwgQ0ZHX0VCQ19QQjVDUgorIyAgaWYgKGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI1QVApICYmIGRlZmluZWQoQ09ORklHX1NZU19FQkNfUEI1Q1IpKQorIyAgIGRlZmluZSBQQnhBUF9WQUwgQ09ORklHX1NZU19FQkNfUEI1QVAKKyMgICBkZWZpbmUgUEJ4Q1JfVkFMIENPTkZJR19TWVNfRUJDX1BCNUNSCiAjICBlbmRpZgogIyBlbmRpZgotIyBpZiAoQ0ZHX0lOSVRfRENBQ0hFX0NTID09IDYpCisjIGlmIChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTID09IDYpCiAjICBkZWZpbmUgUEJ4QVAgcGI2YXAKICMgIGRlZmluZSBQQnhDUiBwYjZjcgotIyAgaWYgKGRlZmluZWQoQ0ZHX0VCQ19QQjZBUCkgJiYgZGVmaW5lZChDRkdfRUJDX1BCNkNSKSkKLSMgICBkZWZpbmUgUEJ4QVBfVkFMIENGR19FQkNfUEI2QVAKLSMgICBkZWZpbmUgUEJ4Q1JfVkFMIENGR19FQkNfUEI2Q1IKKyMgIGlmIChkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCNkFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCNkNSKSkKKyMgICBkZWZpbmUgUEJ4QVBfVkFMIENPTkZJR19TWVNfRUJDX1BCNkFQCisjICAgZGVmaW5lIFBCeENSX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjZDUgogIyAgZW5kaWYKICMgZW5kaWYKLSMgaWYgKENGR19JTklUX0RDQUNIRV9DUyA9PSA3KQorIyBpZiAoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUyA9PSA3KQogIyAgZGVmaW5lIFBCeEFQIHBiN2FwCiAjICBkZWZpbmUgUEJ4Q1IgcGI3Y3IKLSMgIGlmIChkZWZpbmVkKENGR19FQkNfUEI3QVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjdDUikpCi0jICAgZGVmaW5lIFBCeEFQX1ZBTCBDRkdfRUJDX1BCN0FQCi0jICAgZGVmaW5lIFBCeENSX1ZBTCBDRkdfRUJDX1BCN0NSCisjICBpZiAoZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjdBUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0VCQ19QQjdDUikpCisjICAgZGVmaW5lIFBCeEFQX1ZBTCBDT05GSUdfU1lTX0VCQ19QQjdBUAorIyAgIGRlZmluZSBQQnhDUl9WQUwgQ09ORklHX1NZU19FQkNfUEI3Q1IKICMgIGVuZGlmCiAjIGVuZGlmCiAjIGlmbmRlZiBQQnhBUF9WQUwKQEAgLTE0OSwxMSArMTQ5LDExIEBACiAjICBkZWZpbmUgUEJ4Q1JfVkFMCTAKICMgZW5kaWYKIC8qCi0gKiBNZW1vcnkgQmFuayB4IChub3RoaW5nbmVzcykgaW5pdGlhbGl6YXRpb24gQ0ZHX0lOSVRfUkFNX0FERFIgKyA2NCBNaUIKKyAqIE1lbW9yeSBCYW5rIHggKG5vdGhpbmduZXNzKSBpbml0aWFsaXphdGlvbiBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyA2NCBNaUIKICAqIHVzZWQgYXMgdGVtcG9yYXJ5IHN0YWNrIHBvaW50ZXIgZm9yIHRoZSBwcmltb3JkaWFsIHN0YWNrCiAgKi8KLSMgaWZuZGVmIENGR19JTklUX0RDQUNIRV9QQnhBUgotIyAgZGVmaW5lIENGR19JTklUX0RDQUNIRV9QQnhBUgkoRUJDX0JYQVBfQk1FX0RJU0FCTEVECQkJfCBcCisjIGlmbmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeEFSCisjICBkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhBUgkoRUJDX0JYQVBfQk1FX0RJU0FCTEVECQkJfCBcCiAJCQkJIEVCQ19CWEFQX1RXVF9FTkNPREUoNykJCQl8IFwKIAkJCQkgRUJDX0JYQVBfQkNFX0RJU0FCTEUJCQl8IFwKIAkJCQkgRUJDX0JYQVBfQkNUXzJUUkFOUwkJCXwgXApAQCAtMTY2LDQyICsxNjYsNDIgQEAKIAkJCQkgRUJDX0JYQVBfU09SX05PTkRFTEFZRUQJCXwgXAogCQkJCSBFQkNfQlhBUF9CRU1fV1JJVEVPTkxZCQkJfCBcCiAJCQkJIEVCQ19CWEFQX1BFTl9ESVNBQkxFRCkKLSMgZW5kaWYgLyogQ0ZHX0lOSVRfRENBQ0hFX1BCeEFSICovCi0jIGlmbmRlZiBDRkdfSU5JVF9EQ0FDSEVfUEJ4Q1IKLSMgIGRlZmluZSBDRkdfSU5JVF9EQ0FDSEVfUEJ4Q1IJKEVCQ19CWENSX0JBU19FTkNPREUoQ0ZHX0lOSVRfUkFNX0FERFIpCXwgXAorIyBlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeEFSICovCisjIGlmbmRlZiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeENSCisjICBkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhDUgkoRUJDX0JYQ1JfQkFTX0VOQ09ERShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpCXwgXAogCQkJCSBFQkNfQlhDUl9CU182NE1CCQkJfCBcCiAJCQkJIEVCQ19CWENSX0JVX1JXCQkJCXwgXAogCQkJCSBFQkNfQlhDUl9CV18xNkJJVCkKLSMgZW5kaWYgLyogQ0ZHX0lOSVRfRENBQ0hFX1BCeENSICovCi0jIGlmbmRlZiBDRkdfSU5JVF9SQU1fUEFUVEVSTgotIyAgZGVmaW5lIENGR19JTklUX1JBTV9QQVRURVJOCTB4REVBRERFQUQKKyMgZW5kaWYgLyogQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhDUiAqLworIyBpZm5kZWYgQ09ORklHX1NZU19JTklUX1JBTV9QQVRURVJOCisjICBkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9QQVRURVJOCTB4REVBRERFQUQKICMgZW5kaWYKLSNlbmRpZiAvKiBDRkdfSU5JVF9EQ0FDSEVfQ1MgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTICovCiAKLSNpZiAoZGVmaW5lZChDRkdfSU5JVF9SQU1fRENBQ0hFKSAmJiAoQ0ZHX0lOSVRfUkFNX0VORCA+ICg0IDw8IDEwKSkpCi0jZXJyb3IgT25seSA0ayBvZiBpbml0LXJhbSBpcyBzdXBwb3J0ZWQgLSBwbGVhc2UgYWRqdXN0IENGR19JTklUX1JBTV9FTkQhCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUpICYmIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCA+ICg0IDw8IDEwKSkpCisjZXJyb3IgT25seSA0ayBvZiBpbml0LXJhbSBpcyBzdXBwb3J0ZWQgLSBwbGVhc2UgYWRqdXN0IENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIQogI2VuZGlmCiAKIC8qCiAgKiBVbmxlc3Mgb3RoZXJ3aXNlIG92ZXJyaWRlbiwgZW5hYmxlIHR3byAxMjhNQiBjYWNoYWJsZSBpbnN0cnVjdGlvbiByZWdpb25zCi0gKiBhdCBDRkdfU0RSQU1fQkFTRSBhbmQgYW5vdGhlciAxMjhNQiBjYWNoZWFibGUgaW5zdHJ1Y3Rpb24gcmVnaW9uIGNvdmVyaW5nCi0gKiBOT1IgZmxhc2ggYXQgQ0ZHX0ZMQVNIX0JBU0UuIERpc2FibGUgYWxsIGNhY2hlYWJsZSBkYXRhIHJlZ2lvbnMuCisgKiBhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgYW5kIGFub3RoZXIgMTI4TUIgY2FjaGVhYmxlIGluc3RydWN0aW9uIHJlZ2lvbiBjb3ZlcmluZworICogTk9SIGZsYXNoIGF0IENPTkZJR19TWVNfRkxBU0hfQkFTRS4gRGlzYWJsZSBhbGwgY2FjaGVhYmxlIGRhdGEgcmVnaW9ucy4KICAqLwotI2lmICFkZWZpbmVkKENGR19GTEFTSF9CQVNFKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfQkFTRSkKIC8qIElmIG5vdCBhbHJlYWR5IGRlZmluZWQsIHNldCBpdCB0byB0aGUgImxhc3QiIDEyOE1CeXRlIHJlZ2lvbiAqLwotIyBkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZjgwMDAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmODAwMDAwMAogI2VuZGlmCi0jaWYgIWRlZmluZWQoQ0ZHX0lDQUNIRV9TQUNSX1ZBTFVFKQotIyBkZWZpbmUgQ0ZHX0lDQUNIRV9TQUNSX1ZBTFVFCQlcCi0JCShQUENfMTI4TUJfU0FDUl9WQUxVRShDRkdfU0RSQU1fQkFTRSArICggIDAgPDwgMjApKSB8IFwKLQkJIFBQQ18xMjhNQl9TQUNSX1ZBTFVFKENGR19TRFJBTV9CQVNFICsgKDEyOCA8PCAyMCkpIHwgXAotCQkgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ0ZHX0ZMQVNIX0JBU0UpKQotI2VuZGlmIC8qICFkZWZpbmVkKENGR19JQ0FDSEVfU0FDUl9WQUxVRSkgKi8KKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0lDQUNIRV9TQUNSX1ZBTFVFKQorIyBkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0FDUl9WQUxVRQkJXAorCQkoUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKCAgMCA8PCAyMCkpIHwgXAorCQkgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKDEyOCA8PCAyMCkpIHwgXAorCQkgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19GTEFTSF9CQVNFKSkKKyNlbmRpZiAvKiAhZGVmaW5lZChDT05GSUdfU1lTX0lDQUNIRV9TQUNSX1ZBTFVFKSAqLwogCi0jaWYgIWRlZmluZWQoQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFKQotIyBkZWZpbmUgQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFCQlcCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19EQ0FDSEVfU0FDUl9WQUxVRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUUJCVwKIAkJKDB4MDAwMDAwMDApCi0jZW5kaWYgLyogIWRlZmluZWQoQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFKSAqLworI2VuZGlmIC8qICFkZWZpbmVkKENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUUpICovCiAKICNkZWZpbmUgZnVuY3Rpb25fcHJvbG9nKGZ1bmNfbmFtZSkJLnRleHQ7IFwKIAkJCQkJLmFsaWduIDI7IFwKQEAgLTYwOSwxNSArNjA5LDE1IEBACiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCS8qIERlYnVnIHNldHVwIC0tIHNvbWUgKG5vdCB2ZXJ5IGdvb2QpIGljZSdzIG5lZWQgYW4gZXZlbnQqLwotCS8qIHRvIGVzdGFibGlzaCBjb250cm9sIDotKCBEZWZpbmUgQ0ZHX0lOSVRfREJDUiB0byB0aGUgZGJzciAqLworCS8qIHRvIGVzdGFibGlzaCBjb250cm9sIDotKCBEZWZpbmUgQ09ORklHX1NZU19JTklUX0RCQ1IgdG8gdGhlIGRic3IgKi8KIAkvKiB2YWx1ZSB5b3UgbmVlZCBpbiB0aGlzIGNhc2UgMHg4Y2ZmIDAwMDAgc2hvdWxkIGRvIHRoZSB0cmljayAqLwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYgZGVmaW5lZChDRkdfSU5JVF9EQkNSKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RCQ1IpCiAJbGlzCXIxLDB4ZmZmZgogCW9yaQlyMSxyMSwweGZmZmYKIAltdHNwcglkYnNyLHIxCQkJLyogQ2xlYXIgYWxsIHN0YXR1cyBiaXRzICovCi0JbGlzCXIwLENGR19JTklUX0RCQ1JAaAotCW9yaQlyMCxyMCxDRkdfSU5JVF9EQkNSQGwKKwlsaXMJcjAsQ09ORklHX1NZU19JTklUX0RCQ1JAaAorCW9yaQlyMCxyMCxDT05GSUdfU1lTX0lOSVRfREJDUkBsCiAJbXRzcHIJZGJjcjAscjAKIAlpc3luYwogI2VuZGlmCkBAIC02MjcsMTIgKzYyNywxMiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJbGkJcjAsMAogCi0jaWZkZWYgQ0ZHX0lOSVRfUkFNX0RDQUNIRQorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCiAJLyogQ2xlYXIgRGNhY2hlIHRvIHVzZSBhcyBSQU0gKi8KLQlhZGRpcwlyMyxyMCxDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIzLHIzLENGR19JTklUX1JBTV9BRERSQGwKLQlhZGRpcwlyNCxyMCxDRkdfSU5JVF9SQU1fRU5EQGgKLQlvcmkJcjQscjQsQ0ZHX0lOSVRfUkFNX0VOREBsCisJYWRkaXMJcjMscjAsQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjMscjMsQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGwKKwlhZGRpcwlyNCxyMCxDT05GSUdfU1lTX0lOSVRfUkFNX0VOREBoCisJb3JpCXI0LHI0LENPTkZJR19TWVNfSU5JVF9SQU1fRU5EQGwKIAlybHdpbm0uIHI1LHI0LDAsMjcsMzEKIAlybHdpbm0JcjUscjQsMjcsNSwzMQogCWJlcQkuLmRfcmFuCkBAIC02NzAsNyArNjcwLDcgQEAKIAltdHNwcglkdHYzLHIxCiAJbXN5bmMKIAlpc3luYwotI2VuZGlmIC8qIENGR19JTklUX1JBTV9EQ0FDSEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRSAqLwogCiAJLyogNDQwRVAgJiA0NDBHUiBhcmUgb25seSA0NDBlciBQUEMncyB3aXRob3V0IGludGVybmFsIFNSQU0gKi8KICNpZiAhZGVmaW5lZChDT05GSUdfNDQwRVApICYmICFkZWZpbmVkKENPTkZJR180NDBHUikKQEAgLTc0NCw4ICs3NDQsOCBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAJLyogU2V0dXAgdGhlIHN0YWNrIGluIGludGVybmFsIFNSQU0gKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCWxpcwlyMSxDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIxLHIxLENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIxLHIxLENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVRAbAogCWxpCXIwLDAKIAlzdHd1CXIwLC00KHIxKQogCXN0d3UJcjAsLTQocjEpCQkvKiBUZXJtaW5hdGUgY2FsbCBjaGFpbiAqLwpAQCAtODUyLDE4ICs4NTIsMTggQEAKIAlzeW5jCiAKIAkvKiBTZXQtdXAgaWNhY2hlIGNhY2hlYWJpbGl0eS4gKi8KLQlsaXMJcjEsIENGR19JQ0FDSEVfU0FDUl9WQUxVRUBoCi0Jb3JpCXIxLCByMSwgQ0ZHX0lDQUNIRV9TQUNSX1ZBTFVFQGwKKwlsaXMJcjEsIENPTkZJR19TWVNfSUNBQ0hFX1NBQ1JfVkFMVUVAaAorCW9yaQlyMSwgcjEsIENPTkZJR19TWVNfSUNBQ0hFX1NBQ1JfVkFMVUVAbAogCW10aWNjcglyMQogCWlzeW5jCiAKIAkvKiBTZXQtdXAgZGNhY2hlIGNhY2hlYWJpbGl0eS4gKi8KLQlsaXMJcjEsIENGR19EQ0FDSEVfU0FDUl9WQUxVRUBoCi0Jb3JpCXIxLCByMSwgQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFQGwKKwlsaXMJcjEsIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUVAaAorCW9yaQlyMSwgcjEsIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUVAbAogCW10ZGNjcglyMQogCi0JYWRkaXMJcjEscjAsQ0ZHX0lOSVRfUkFNX0FERFJAaAotCW9yaQlyMSxyMSxDRkdfSU5JVF9TUF9PRkZTRVQgLyogc2V0IHVwIHRoZSBzdGFjayB0byBTRFJBTSAqLworCWFkZGlzCXIxLHIwLENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIxLHIxLENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgLyogc2V0IHVwIHRoZSBzdGFjayB0byBTRFJBTSAqLwogCWxpCXIwLCAwCQkJLyogTWFrZSByb29tIGZvciBzdGFjayBmcmFtZSBoZWFkZXIgYW5kICovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBjbGVhciBmaW5hbCBzdGFjayBmcmFtZSBzbyB0aGF0CSovCiAJc3R3dQlyMCwgLTQocjEpCQkvKiBzdGFjayBiYWNrdHJhY2VzIHRlcm1pbmF0ZSBjbGVhbmx5CSovCkBAIC05MDgsMzEgKzkwOCwzMSBAQAogCWJsCWludmFsaWRhdGVfZGNhY2hlCiAKIAkvKiBTZXQtdXAgaWNhY2hlIGNhY2hlYWJpbGl0eS4gKi8KLQlsaXMJcjQsIENGR19JQ0FDSEVfU0FDUl9WQUxVRUBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lDQUNIRV9TQUNSX1ZBTFVFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSUNBQ0hFX1NBQ1JfVkFMVUVAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSUNBQ0hFX1NBQ1JfVkFMVUVAbAogCW10aWNjcglyNAogCWlzeW5jCiAKIAkvKiBTZXQtdXAgZGNhY2hlIGNhY2hlYWJpbGl0eS4gKi8KLQlsaXMJcjQsIENGR19EQ0FDSEVfU0FDUl9WQUxVRUBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0RDQUNIRV9TQUNSX1ZBTFVFQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUVAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfRENBQ0hFX1NBQ1JfVkFMVUVAbAogCW10ZGNjcglyNAogCi0jaWYgIShkZWZpbmVkKENGR19FQkNfUEIwQVApICYmIGRlZmluZWQoQ0ZHX0VCQ19QQjBDUikpCisjaWYgIShkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMEFQKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRUJDX1BCMENSKSkKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAJLyogVHVuZSB0aGUgc3BlZWQgYW5kIHNpemUgZm9yIGZsYXNoIENTMCAgKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAJYmwJZXh0X2J1c19jbnRscl9pbml0CiAjZW5kaWYKIAotI2lmICEoZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpIHx8IGRlZmluZWQoQ0ZHX1RFTVBfU1RBQ0tfT0NNKSkKKyNpZiAhKGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykgfHwgZGVmaW5lZChDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNKSkKIAkvKgogCSAqIEZvciBib2FyZHMgdGhhdCBkb24ndCBoYXZlIE9DTSBhbmQgY2FuJ3QgdXNlIHRoZSBkYXRhIGNhY2hlCiAJICogZm9yIHRoZWlyIHByaW1vcmRpYWwgc3RhY2ssIHNldHVwIHN0YWNrIGhlcmUgZGlyZWN0bHkgYWZ0ZXIgdGhlCiAJICogU0RSQU0gaXMgaW5pdGlhbGl6ZWQgaW4gZXh0X2J1c19jbnRscl9pbml0LgogCSAqLwotCWxpcwlyMSwgQ0ZHX0lOSVRfUkFNX0FERFJAaAotCW9yaQlyMSxyMSxDRkdfSU5JVF9TUF9PRkZTRVQgLyogc2V0IHVwIHRoZSBzdGFjayBpbiBTRFJBTSAqLworCWxpcwlyMSwgQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjEscjEsQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAvKiBzZXQgdXAgdGhlIHN0YWNrIGluIFNEUkFNICovCiAKIAlsaQlyMCwgMAkJCS8qIE1ha2Ugcm9vbSBmb3Igc3RhY2sgZnJhbWUgaGVhZGVyIGFuZCAqLwogCXN0d3UJcjAsIC00KHIxKQkJLyogY2xlYXIgZmluYWwgc3RhY2sgZnJhbWUgc28gdGhhdAkqLwpAQCAtOTQ2LDcgKzk0Niw3IEBACiAJb3JpCXIwLCByMCwgUkVTRVRfVkVDVE9SQGwKIAlzdHd1CXIxLCAtOChyMSkJCS8qIFNhdmUgYmFjayBjaGFpbiBhbmQgbW92ZSBTUCAqLwogCXN0dwlyMCwgKzEyKHIxKQkJLyogU2F2ZSByZXR1cm4gYWRkciAodW5kZXJmbG93IHZlY3QpICovCi0jZW5kaWYgLyogIShDRkdfSU5JVF9EQ0FDSEVfQ1MJfHwgIUNGR19URU1fU1RBQ0tfT0NNKSAqLworI2VuZGlmIC8qICEoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwl8fCAhQ09ORklHX1NZU19URU1fU1RBQ0tfT0NNKSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfNDA1RVApCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtOTU5LDI1ICs5NTksMjUgQEAKIAlibAlwcGM0MDVlcF9pbml0CQkvKiBkbyBwcGM0MDVlcCBzcGVjaWZpYyBpbml0ICovCiAjZW5kaWYgLyogQ09ORklHXzQwNUVQICovCiAKLSNpZiBkZWZpbmVkKENGR19PQ01fREFUQV9BRERSKSAmJiBkZWZpbmVkKENGR19PQ01fREFUQV9TSVpFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19PQ01fREFUQV9BRERSKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT0NNX0RBVEFfU0laRSkKICNpZiBkZWZpbmVkKENPTkZJR180MDVFWikKIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAkgKiBTZXR1cCBPQ00gLSBPbiBDaGlwIE1lbW9yeSAtIFBQQzQwNUVaIHVzZXMgT0NNIENvbnRyb2xsZXIgVjIKIAkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAkvKgogCSAqIFdlIGNhbiBtYXAgdGhlIE9DTSBvbiB0aGUgUExCMywgc28gbWFwIGl0IGF0Ci0JICogQ0ZHX09DTV9EQVRBX0FERFIgKyAweDgwMDAKKwkgKiBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgKyAweDgwMDAKIAkgKi8KLQlsaXMJcjMsQ0ZHX09DTV9EQVRBX0FERFJAaAkvKiBPQ00gbG9jYXRpb24gKi8KLQlvcmkJcjMscjMsQ0ZHX09DTV9EQVRBX0FERFJAbAorCWxpcwlyMyxDT05GSUdfU1lTX09DTV9EQVRBX0FERFJAaAkvKiBPQ00gbG9jYXRpb24gKi8KKwlvcmkJcjMscjMsQ09ORklHX1NZU19PQ01fREFUQV9BRERSQGwKIAlvcmkJcjMscjMsMHgwMjcwCQkvKiAxNksgZm9yIEJhbmsgMSwgUi9XL0VuYWJsZSAqLwogCW10ZGNyCW9jbXBsYjNjcjEscjMJCS8qIFNldCBQTEIgQWNjZXNzICovCiAJb3JpCXIzLHIzLDB4NDAwMAkJLyogQWRkIDB4NDAwMCBmb3IgYmFuayAyICovCiAJbXRkY3IJb2NtcGxiM2NyMixyMwkJLyogU2V0IFBMQiBBY2Nlc3MgKi8KIAlpc3luYwogCi0JbGlzCXIzLENGR19PQ01fREFUQV9BRERSQGgJLyogT0NNIGxvY2F0aW9uICovCi0Jb3JpCXIzLHIzLENGR19PQ01fREFUQV9BRERSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19PQ01fREFUQV9BRERSQGgJLyogT0NNIGxvY2F0aW9uICovCisJb3JpCXIzLHIzLENPTkZJR19TWVNfT0NNX0RBVEFfQUREUkBsCiAJb3JpCXIzLHIzLDB4MDI3MAkJLyogMTZLIGZvciBCYW5rIDEsIFIvVy9FbmFibGUgKi8KIAltdGRjcglvY21kc2NyMSwgcjMJCS8qIFNldCBEYXRhIFNpZGUgKi8KIAltdGRjcglvY21pc2NyMSwgcjMJCS8qIFNldCBJbnN0cnVjdGlvbiBTaWRlICovCkBAIC0xMDAzLDggKzEwMDMsOCBAQAogCW10ZGNyCW9jbWRzY250bCwgcjQJCS8qIHNldCBkYXRhLXNpZGUgSVJBTSBjb25maWcgKi8KIAlpc3luYwogCi0JbGlzCXIzLENGR19PQ01fREFUQV9BRERSQGgJLyogT0NNIGxvY2F0aW9uICovCi0Jb3JpCXIzLHIzLENGR19PQ01fREFUQV9BRERSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19PQ01fREFUQV9BRERSQGgJLyogT0NNIGxvY2F0aW9uICovCisJb3JpCXIzLHIzLENPTkZJR19TWVNfT0NNX0RBVEFfQUREUkBsCiAJbXRkY3IJb2NtZHNhcmMsIHIzCiAJYWRkaXMJcjQsIDAsIDB4QzAwMAkJLyogT0NNIGRhdGEgYXJlYSBlbmFibGVkICovCiAJbXRkY3IJb2NtZHNjbnRsLCByNApAQCAtMTAxNSwyNiArMTAxNSwyNiBAQAogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAkvKiBTZXR1cCB0ZW1wb3Jhcnkgc3RhY2sgaW4gRENBQ0hFIG9yIE9DTSBpZiBuZWVkZWQgZm9yIFNEUkFNIFNQRC4gKi8KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0jaWZkZWYgQ0ZHX0lOSVRfRENBQ0hFX0NTCisjaWZkZWYgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwogCWxpCXI0LCBQQnhBUAogCW10ZGNyCWViY2NmZ2EsIHI0Ci0JbGlzCXI0LCBDRkdfSU5JVF9EQ0FDSEVfUEJ4QVJAaAotCW9yaQlyNCwgcjQsIENGR19JTklUX0RDQUNIRV9QQnhBUkBsCisJbGlzCXI0LCBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeEFSQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX1BCeEFSQGwKIAltdGRjcgllYmNjZmdkLCByNAogCiAJYWRkaQlyNCwgMCwgUEJ4Q1IKIAltdGRjcgllYmNjZmdhLCByNAotCWxpcwlyNCwgQ0ZHX0lOSVRfRENBQ0hFX1BCeENSQGgKLQlvcmkJcjQsIHI0LCBDRkdfSU5JVF9EQ0FDSEVfUEJ4Q1JAbAorCWxpcwlyNCwgQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhDUkBoCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19JTklUX0RDQUNIRV9QQnhDUkBsCiAJbXRkY3IJZWJjY2ZnZCwgcjQKIAogCS8qCiAJICogRW5hYmxlIHRoZSBkYXRhIGNhY2hlIGZvciB0aGUgMTI4TUIgc3RvcmFnZSBhY2Nlc3MgY29udHJvbCByZWdpb24KLQkgKiBhdCBDRkdfSU5JVF9SQU1fQUREUi4KKwkgKiBhdCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIuCiAJICovCiAJbWZkY2NyCXI0Ci0Jb3JpcwlyNCwgcjQsIFBQQ18xMjhNQl9TQUNSX1ZBTFVFKENGR19JTklUX1JBTV9BRERSKUBoCi0Jb3JpCXI0LCByNCwgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ0ZHX0lOSVRfUkFNX0FERFIpQGwKKwlvcmlzCXI0LCByNCwgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19JTklUX1JBTV9BRERSKUBoCisJb3JpCXI0LCByNCwgUFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19JTklUX1JBTV9BRERSKUBsCiAJbXRkY2NyCXI0CiAKIAkvKgpAQCAtMTA0NCwxMSArMTA0NCwxMSBAQAogCSAqLwogCWxpCXIwLCAwCiAKLQlsaXMJcjMsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjMsIHIzLCBDRkdfSU5JVF9SQU1fQUREUkBsCisJbGlzCXIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMywgcjMsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBsCiAKLQlsaXMJcjQsIENGR19JTklUX1JBTV9FTkRAaAotCW9yaQlyNCwgcjQsIENGR19JTklUX1JBTV9FTkRAbAorCWxpcwlyNCwgQ09ORklHX1NZU19JTklUX1JBTV9FTkRAaAorCW9yaQlyNCwgcjQsIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EQGwKIAogCS8qCiAJICogQ29udmVydCB0aGUgc2l6ZSwgaW4gYnl0ZXMsIHRvIHRoZSBudW1iZXIgb2YgY2FjaGUgbGluZXMvYmxvY2tzCkBAIC0xMDcyLDE4ICsxMDcyLDE4IEBACiAJICogTG9hZCB0aGUgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgYW5kIGNvbnZlcnQgdGhlIHNpemUsCiAJICogaW4gYnl0ZXMsIHRvIHRoZSBudW1iZXIgb2Ygd29yZHMgdG8gaW5pdGlhbGl6ZSB0byBhIGtub3duIHZhbHVlLgogCSAqLwotCWxpcwlyMSwgQ0ZHX0lOSVRfUkFNX0FERFJAaAotCW9yaQlyMSwgcjEsIENGR19JTklUX1NQX09GRlNFVEBsCisJbGlzCXIxLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAaAorCW9yaQlyMSwgcjEsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVRAbAogCi0JbGlzCXI0LCAoQ0ZHX0lOSVRfUkFNX0VORCA+PiAyKUBoCi0Jb3JpCXI0LCByNCwgKENGR19JTklUX1JBTV9FTkQgPj4gMilAbAorCWxpcwlyNCwgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EID4+IDIpQGgKKwlvcmkJcjQsIHI0LCAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgPj4gMilAbAogCW10Y3RyCXI0CiAKLQlsaXMJcjIsIENGR19JTklUX1JBTV9BRERSQGgKLQlvcmkJcjIsIHIyLCBDRkdfSU5JVF9SQU1fRU5EQGwKKwlsaXMJcjIsIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkBoCisJb3JpCXIyLCByMiwgQ09ORklHX1NZU19JTklUX1JBTV9FTkRAbAogCi0JbGlzCXI0LCBDRkdfSU5JVF9SQU1fUEFUVEVSTkBoCi0Jb3JpCXI0LCByNCwgQ0ZHX0lOSVRfUkFNX1BBVFRFUk5AbAorCWxpcwlyNCwgQ09ORklHX1NZU19JTklUX1JBTV9QQVRURVJOQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lOSVRfUkFNX1BBVFRFUk5AbAogCiAuLnN0YWNrbG9vcDoKIAlzdHd1CXI0LCAtNChyMikKQEAgLTExMDYsMTUgKzExMDYsMTUgQEAKIAlzdHd1CXIxLCAtOChyMSkJCS8qIFNhdmUgYmFjayBjaGFpbiBhbmQgbW92ZSBTUCAqLwogCXN0dwlyMCwgKzEyKHIxKQkJLyogU2F2ZSByZXR1cm4gYWRkciAodW5kZXJmbG93IHZlY3QpICovCiAKLSNlbGlmIGRlZmluZWQoQ0ZHX1RFTVBfU1RBQ0tfT0NNKSAmJiBcCi0JKGRlZmluZWQoQ0ZHX09DTV9EQVRBX0FERFIpICYmIGRlZmluZWQoQ0ZHX09DTV9EQVRBX1NJWkUpKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNKSAmJiBcCisJKGRlZmluZWQoQ09ORklHX1NZU19PQ01fREFUQV9BRERSKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfT0NNX0RBVEFfU0laRSkpCiAJLyoKIAkgKiBTdGFjayBpbiBPQ00uCiAJICovCiAKIAkvKiBTZXQgdXAgU3RhY2sgYXQgdG9wIG9mIE9DTSAqLwotCWxpcwlyMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUKUBoCi0Jb3JpCXIxLCByMSwgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0lOSVRfU1BfT0ZGU0VUKUBsCisJbGlzCXIxLCAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVClAaAorCW9yaQlyMSwgcjEsIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgKyBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUKUBsCiAKIAkvKiBTZXQgdXAgYSB6ZXJvaXplZCBzdGFjayBmcmFtZSBzbyB0aGF0IGJhY2t0cmFjZSB3b3JrcyByaWdodCAqLwogCWxpCXIwLCAwCkBAIC0xMTMwLDcgKzExMzAsNyBAQAogCW9yaQlyMCwgcjAsIFJFU0VUX1ZFQ1RPUkBsCiAJc3R3dQlyMSwgLTgocjEpCQkvKiBTYXZlIGJhY2sgY2hhaW4gYW5kIG1vdmUgU1AgKi8KIAlzdHcJcjAsICsxMihyMSkJCS8qIFNhdmUgcmV0dXJuIGFkZHIgKHVuZGVyZmxvdyB2ZWN0KSAqLwotI2VuZGlmIC8qIENGR19JTklUX0RDQUNIRV9DUyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MgKi8KIAogI2lmZGVmIENPTkZJR19OQU5EX1NQTAogCWJsCW5hbmRfYm9vdF9jb21tb24JLyogd2lsbCBub3QgcmV0dXJuICovCkBAIC0xMzQxLDcgKzEzNDEsNyBAQAogICovCiAJLmdsb2JsCXJlbG9jYXRlX2NvZGUKIHJlbG9jYXRlX2NvZGU6Ci0jaWYgZGVmaW5lZChDT05GSUdfNHh4X0RDQUNIRSkgfHwgZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpCisjaWYgZGVmaW5lZChDT05GSUdfNHh4X0RDQUNIRSkgfHwgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKQogCS8qCiAJICogV2UgbmVlZCB0byBmbHVzaCB0aGUgaW5pdGlhbCBnbG9iYWwgZGF0YSAoZ2RfdCkgYmVmb3JlIHRoZSBkY2FjaGUKIAkgKiB3aWxsIGJlIGludmFsaWRhdGVkLgpAQCAtMTM1NCwxMCArMTM1NCwxMCBAQAogCiAJLyogRmx1c2ggaW5pdGlhbCBnbG9iYWwgZGF0YSByYW5nZSAqLwogCW1yCXIzLCByNAotCWFkZGkJcjQsIHI0LCBDRkdfR0JMX0RBVEFfU0laRUBsCisJYWRkaQlyNCwgcjQsIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRUBsCiAJYmwJZmx1c2hfZGNhY2hlX3JhbmdlCiAKLSNpZiBkZWZpbmVkKENGR19JTklUX0RDQUNIRV9DUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MpCiAJLyoKIAkgKiBVbmRvIHRoZSBlYXJsaWVyIGRhdGEgY2FjaGUgc2V0LXVwIGZvciB0aGUgcHJpbW9yZGlhbCBzdGFjayBhbmQKIAkgKiBkYXRhIGFyZWEuIEZpcnN0LCBpbnZhbGlkYXRlIHRoZSBkYXRhIGNhY2hlIGFuZCB0aGVuIGRpc2FibGUgZGF0YQpAQCAtMTM2NiwxOSArMTM2NiwxOSBAQAogCSAqLwogCiAJLyogSW52YWxpZGF0ZSB0aGUgcHJpbW9yZGlhbCBzdGFjayBhbmQgZGF0YSBhcmVhIGluIGNhY2hlICovCi0JbGlzCXIzLCBDRkdfSU5JVF9SQU1fQUREUkBoCi0Jb3JpCXIzLCByMywgQ0ZHX0lOSVRfUkFNX0FERFJAbAorCWxpcwlyMywgQ09ORklHX1NZU19JTklUX1JBTV9BRERSQGgKKwlvcmkJcjMsIHIzLCBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJAbAogCi0JbGlzCXI0LCBDRkdfSU5JVF9SQU1fRU5EQGgKLQlvcmkJcjQsIHI0LCBDRkdfSU5JVF9SQU1fRU5EQGwKKwlsaXMJcjQsIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EQGgKKwlvcmkJcjQsIHI0LCBDT05GSUdfU1lTX0lOSVRfUkFNX0VOREBsCiAJYWRkCXI0LCByNCwgcjMKIAogCWJsCWludmFsaWRhdGVfZGNhY2hlX3JhbmdlCiAKIAkvKiBEaXNhYmxlIGNhY2hlYWJpbGl0eSBmb3IgdGhlIHJlZ2lvbiAqLwogCW1mZGNjcglyMwotCWxpcyAgICAgcjQsIH5QUENfMTI4TUJfU0FDUl9WQUxVRShDRkdfSU5JVF9SQU1fQUREUilAaAotCW9yaSAgICAgcjQsIHI0LCB+UFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ0ZHX0lOSVRfUkFNX0FERFIpQGwKKwlsaXMgICAgIHI0LCB+UFBDXzEyOE1CX1NBQ1JfVkFMVUUoQ09ORklHX1NZU19JTklUX1JBTV9BRERSKUBoCisJb3JpICAgICByNCwgcjQsIH5QUENfMTI4TUJfU0FDUl9WQUxVRShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpQGwKIAlhbmQgICAgIHIzLCByMywgcjQKIAltdGRjY3IgIHIzCiAKQEAgLTEzOTQsMTUgKzEzOTQsMTUgQEAKIAlsaXMJcjMsIFBCeENSX1ZBTEBoCiAJb3JpCXIzLCByMywgUEJ4Q1JfVkFMQGwKIAltdGRjcgllYmNjZmdkLCByMwotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX0lOSVRfRENBQ0hFX0NTKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykgKi8KIAogCS8qIFJlc3RvcmUgcmVnaXN0ZXJzICovCiAJbXIJcjMsIHI5CiAJbXIJcjQsIHIxMAogCW1yCXI1LCByMTEKLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR180eHhfRENBQ0hFKSB8fCBkZWZpbmVkKENGR19JTklUX0RDQUNIRV9DUykgKi8KKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR180eHhfRENBQ0hFKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MpICovCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fRENBQ0hFCisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUKIAkvKgogCSAqIFVubG9jayB0aGUgcHJldmlvdXNseSBsb2NrZWQgZC1jYWNoZQogCSAqLwpAQCAtMTQyNCw3ICsxNDI0LDcgQEAKIAltdHNwcglkdHYzLHI2CiAJbXN5bmMKIAlpc3luYwotI2VuZGlmIC8qIENGR19JTklUX1JBTV9EQ0FDSEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUlgpIHx8IFwKQEAgLTE0MzksMTEgKzE0MzksMTEgQEAKIAlkY2NjaQkwLDAJCQkvKiBJbnZhbGlkYXRlIGRhdGEgY2FjaGUsIG5vdyBubyBsb25nZXIgb3VyIHN0YWNrICovCiAJc3luYwogCWlzeW5jCi0jaWZkZWYgQ0ZHX1RMQl9GT1JfQk9PVF9GTEFTSAotCWFkZGkJcjEscjAsQ0ZHX1RMQl9GT1JfQk9PVF9GTEFTSAkvKiBVc2UgZGVmaW5lZCBUTEIgKi8KKyNpZmRlZiBDT05GSUdfU1lTX1RMQl9GT1JfQk9PVF9GTEFTSAorCWFkZGkJcjEscjAsQ09ORklHX1NZU19UTEJfRk9SX0JPT1RfRkxBU0gJLyogVXNlIGRlZmluZWQgVExCICovCiAjZWxzZQogCWFkZGkJcjEscjAsMHgwMDAwCQkvKiBEZWZhdWx0IFRMQiBlbnRyeSBpcyAjMCAqLwotI2VuZGlmIC8qIENGR19UTEJfRk9SX0JPT1RfRkxBU0ggKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1RMQl9GT1JfQk9PVF9GTEFTSCAqLwogCXRsYnJlCXIwLHIxLDB4MDAwMgkJLyogUmVhZCBjb250ZW50cyAqLwogCW9yaQlyMCxyMCwweDBjMDAJCS8qIE9yIGluIHRoZSBpbmhpYml0LCB3cml0ZSB0aHJvdWdoIGJpdCAqLwogCXRsYndlCXIwLHIxLDB4MDAwMgkJLyogU2F2ZSBpdCBvdXQgKi8KQEAgLTE0NTUsOCArMTQ1NSw4IEBACiAJbXIJcjEwLCByNQkJLyogU2F2ZSBjb3B5IG9mIERlc3RpbmF0aW9uIEFkZHJlc3MJKi8KIAogCW1yCXIzLCAgcjUJCQkJLyogRGVzdGluYXRpb24gQWRkcmVzcwkqLwotCWxpcwlyNCwgQ0ZHX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCi0Jb3JpCXI0LCByNCwgQ0ZHX01PTklUT1JfQkFTRUBsCisJbGlzCXI0LCBDT05GSUdfU1lTX01PTklUT1JfQkFTRUBoCQkvKiBTb3VyY2UgICAgICBBZGRyZXNzCSovCisJb3JpCXI0LCByNCwgQ09ORklHX1NZU19NT05JVE9SX0JBU0VAbAogCWx3eglyNSwgR09UKF9faW5pdF9lbmQpCiAJc3ViCXI1LCByNSwgcjQKIAlsaQlyNiwgTDFfQ0FDSEVfQllURVMJCS8qIENhY2hlIExpbmUgU2l6ZQkqLwpAQCAtMTQ2NCw3ICsxNDY0LDcgQEAKIAkvKgogCSAqIEZpeCBHT1QgcG9pbnRlcjoKIAkgKgotCSAqIE5ldyBHT1QtUFRSID0gKG9sZCBHT1QtUFRSIC0gQ0ZHX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCisJICogTmV3IEdPVC1QVFIgPSAob2xkIEdPVC1QVFIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgKyBEZXN0aW5hdGlvbiBBZGRyZXNzCiAJICoKIAkgKiBPZmZzZXQ6CiAJICovCkBAIC0xNzc1LDc0ICsxNzc1LDc0IEBACiAKIAlsaXMJcjMsR1BJTzBfT1NSSEBoCQkvKiBjb25maWcgR1BJTyBvdXRwdXQgc2VsZWN0ICovCiAJb3JpCXIzLHIzLEdQSU8wX09TUkhAbAotCWxpcwlyNCxDRkdfR1BJTzBfT1NSSEBoCi0Jb3JpCXI0LHI0LENGR19HUElPMF9PU1JIQGwKKwlsaXMJcjQsQ09ORklHX1NZU19HUElPMF9PU1JIQGgKKwlvcmkJcjQscjQsQ09ORklHX1NZU19HUElPMF9PU1JIQGwKIAlzdHcJcjQsMChyMykKIAlsaXMJcjMsR1BJTzBfT1NSTEBoCiAJb3JpCXIzLHIzLEdQSU8wX09TUkxAbAotCWxpcwlyNCxDRkdfR1BJTzBfT1NSTEBoCi0Jb3JpCXI0LHI0LENGR19HUElPMF9PU1JMQGwKKwlsaXMJcjQsQ09ORklHX1NZU19HUElPMF9PU1JMQGgKKwlvcmkJcjQscjQsQ09ORklHX1NZU19HUElPMF9PU1JMQGwKIAlzdHcJcjQsMChyMykKIAogCWxpcwlyMyxHUElPMF9JU1IxSEBoCS8qIGNvbmZpZyBHUElPIGlucHV0IHNlbGVjdCAqLwogCW9yaQlyMyxyMyxHUElPMF9JU1IxSEBsCi0JbGlzCXI0LENGR19HUElPMF9JU1IxSEBoCi0Jb3JpCXI0LHI0LENGR19HUElPMF9JU1IxSEBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfSVNSMUhAaAorCW9yaQlyNCxyNCxDT05GSUdfU1lTX0dQSU8wX0lTUjFIQGwKIAlzdHcJcjQsMChyMykKIAlsaXMJcjMsR1BJTzBfSVNSMUxAaAogCW9yaQlyMyxyMyxHUElPMF9JU1IxTEBsCi0JbGlzCXI0LENGR19HUElPMF9JU1IxTEBoCi0Jb3JpCXI0LHI0LENGR19HUElPMF9JU1IxTEBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfSVNSMUxAaAorCW9yaQlyNCxyNCxDT05GSUdfU1lTX0dQSU8wX0lTUjFMQGwKIAlzdHcJcjQsMChyMykKIAogCWxpcwlyMyxHUElPMF9UU1JIQGgJCS8qIGNvbmZpZyBHUElPIHRocmVlLXN0YXRlIHNlbGVjdCAqLwogCW9yaQlyMyxyMyxHUElPMF9UU1JIQGwKLQlsaXMJcjQsQ0ZHX0dQSU8wX1RTUkhAaAotCW9yaQlyNCxyNCxDRkdfR1BJTzBfVFNSSEBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfVFNSSEBoCisJb3JpCXI0LHI0LENPTkZJR19TWVNfR1BJTzBfVFNSSEBsCiAJc3R3CXI0LDAocjMpCiAJbGlzCXIzLEdQSU8wX1RTUkxAaAogCW9yaQlyMyxyMyxHUElPMF9UU1JMQGwKLQlsaXMJcjQsQ0ZHX0dQSU8wX1RTUkxAaAotCW9yaQlyNCxyNCxDRkdfR1BJTzBfVFNSTEBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfVFNSTEBoCisJb3JpCXI0LHI0LENPTkZJR19TWVNfR1BJTzBfVFNSTEBsCiAJc3R3CXI0LDAocjMpCiAKIAlsaXMJcjMsR1BJTzBfVENSQGgJCS8qIGNvbmZpZyBHUElPIGRyaXZlciBvdXRwdXQgZW5hYmxlcyAqLwogCW9yaQlyMyxyMyxHUElPMF9UQ1JAbAotCWxpcwlyNCxDRkdfR1BJTzBfVENSQGgKLQlvcmkJcjQscjQsQ0ZHX0dQSU8wX1RDUkBsCisJbGlzCXI0LENPTkZJR19TWVNfR1BJTzBfVENSQGgKKwlvcmkJcjQscjQsQ09ORklHX1NZU19HUElPMF9UQ1JAbAogCXN0dwlyNCwwKHIzKQogCiAJbGkJcjMscGIxYXAJCS8qIHByb2dyYW0gRUJDIGJhbmsgMSBmb3IgUlRDIGFjY2VzcyAqLwogCW10ZGNyCWViY2NmZ2EscjMKLQlsaXMJcjMsQ0ZHX0VCQ19QQjFBUEBoCi0Jb3JpCXIzLHIzLENGR19FQkNfUEIxQVBAbAorCWxpcwlyMyxDT05GSUdfU1lTX0VCQ19QQjFBUEBoCisJb3JpCXIzLHIzLENPTkZJR19TWVNfRUJDX1BCMUFQQGwKIAltdGRjcgllYmNjZmdkLHIzCiAJbGkJcjMscGIxY3IKIAltdGRjcgllYmNjZmdhLHIzCi0JbGlzCXIzLENGR19FQkNfUEIxQ1JAaAotCW9yaQlyMyxyMyxDRkdfRUJDX1BCMUNSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19FQkNfUEIxQ1JAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX0VCQ19QQjFDUkBsCiAJbXRkY3IJZWJjY2ZnZCxyMwogCiAJbGkJcjMscGIxYXAJCS8qIHByb2dyYW0gRUJDIGJhbmsgMSBmb3IgUlRDIGFjY2VzcyAqLwogCW10ZGNyCWViY2NmZ2EscjMKLQlsaXMJcjMsQ0ZHX0VCQ19QQjFBUEBoCi0Jb3JpCXIzLHIzLENGR19FQkNfUEIxQVBAbAorCWxpcwlyMyxDT05GSUdfU1lTX0VCQ19QQjFBUEBoCisJb3JpCXIzLHIzLENPTkZJR19TWVNfRUJDX1BCMUFQQGwKIAltdGRjcgllYmNjZmdkLHIzCiAJbGkJcjMscGIxY3IKIAltdGRjcgllYmNjZmdhLHIzCi0JbGlzCXIzLENGR19FQkNfUEIxQ1JAaAotCW9yaQlyMyxyMyxDRkdfRUJDX1BCMUNSQGwKKwlsaXMJcjMsQ09ORklHX1NZU19FQkNfUEIxQ1JAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX0VCQ19QQjFDUkBsCiAJbXRkY3IJZWJjY2ZnZCxyMwogCiAJbGkJcjMscGI0YXAJCS8qIHByb2dyYW0gRUJDIGJhbmsgNCBmb3IgRlBHQSBhY2Nlc3MgKi8KIAltdGRjcgllYmNjZmdhLHIzCi0JbGlzCXIzLENGR19FQkNfUEI0QVBAaAotCW9yaQlyMyxyMyxDRkdfRUJDX1BCNEFQQGwKKwlsaXMJcjMsQ09ORklHX1NZU19FQkNfUEI0QVBAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX0VCQ19QQjRBUEBsCiAJbXRkY3IJZWJjY2ZnZCxyMwogCWxpCXIzLHBiNGNyCiAJbXRkY3IJZWJjY2ZnYSxyMwotCWxpcwlyMyxDRkdfRUJDX1BCNENSQGgKLQlvcmkJcjMscjMsQ0ZHX0VCQ19QQjRDUkBsCisJbGlzCXIzLENPTkZJR19TWVNfRUJDX1BCNENSQGgKKwlvcmkJcjMscjMsQ09ORklHX1NZU19FQkNfUEI0Q1JAbAogCW10ZGNyCWViY2NmZ2QscjMKICNlbmRpZgogCkBAIC0yMTExLDIwICsyMTExLDIwIEBACiAJICogRmlyc3QgaW5pdGlhbGl6ZSBTRFJBTS4gSXQgaGFzIHRvIGJlIGF2YWlsYWJsZSAqYmVmb3JlKiBjYWxsaW5nCiAJICogbmFuZF9ib290KCkuCiAJICovCi0JbGlzCXIzLENGR19TRFJBTV9CQVNFQGgKLQlvcmkJcjMscjMsQ0ZHX1NEUkFNX0JBU0VAbAorCWxpcwlyMyxDT05GSUdfU1lTX1NEUkFNX0JBU0VAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX1NEUkFNX0JBU0VAbAogCWJsCWluaXRkcmFtCiAKIAkvKgogCSAqIE5vdyBjb3B5IHRoZSA0ayBTUEwgY29kZSBpbnRvIFNEUkFNIGFuZCBjb250aW51ZSBleGVjdXRpb24KIAkgKiBmcm9tIHRoZXJlLgogCSAqLwotCWxpcwlyMyxDRkdfTkFORF9CT09UX1NQTF9EU1RAaAotCW9yaQlyMyxyMyxDRkdfTkFORF9CT09UX1NQTF9EU1RAbAotCWxpcwlyNCxDRkdfTkFORF9CT09UX1NQTF9TUkNAaAotCW9yaQlyNCxyNCxDRkdfTkFORF9CT09UX1NQTF9TUkNAbAotCWxpcwlyNSxDRkdfTkFORF9CT09UX1NQTF9TSVpFQGgKLQlvcmkJcjUscjUsQ0ZHX05BTkRfQk9PVF9TUExfU0laRUBsCisJbGlzCXIzLENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1RAaAorCW9yaQlyMyxyMyxDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUQGwKKwlsaXMJcjQsQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQ0BoCisJb3JpCXI0LHI0LENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkNAbAorCWxpcwlyNSxDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU0laRUBoCisJb3JpCXI1LHI1LENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TSVpFQGwKIAlibAluYW5kX2Jvb3RfcmVsb2NhdGUKIAogCS8qCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L3VzYi5jIGIvY3B1L3BwYzR4eC91c2IuYwppbmRleCBjYjhkNWM3Li41OTJlZmU3IDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L3VzYi5jCisrKyBiL2NwdS9wcGM0eHgvdXNiLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGNvbW1vbi5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfVVNCX09IQ0lfTkVXKSAmJiBkZWZpbmVkKENGR19VU0JfT0hDSV9DUFVfSU5JVCkKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkKIAogI2lmZGVmIENPTkZJR180eHhfRENBQ0hFCiAjaW5jbHVkZSA8YXNtL21tdS5oPgpAQCAtNjMsNCArNjMsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKSAqLworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1VTQl9PSENJKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQpICovCmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L3VzYl9vaGNpLmMgYi9jcHUvcHBjNHh4L3VzYl9vaGNpLmMKaW5kZXggNWRiZDg0Mi4uMmM4MGQ1YyAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC91c2Jfb2hjaS5jCisrKyBiL2NwdS9wcGM0eHgvdXNiX29oY2kuYwpAQCAtMTYwMCw5ICsxNjAwLDkgQEAKIAlnb2hjaS5zbGVlcGluZyA9IDA7CiAJZ29oY2kuaXJxID0gLTE7CiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApCi0JZ29oY2kucmVncyA9IChzdHJ1Y3Qgb2hjaV9yZWdzICopKENGR19QRVJJUEhFUkFMX0JBU0UgfCAweDEwMDApOwotI2VsaWYgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENGR19VU0JfSE9TVCkKLQlnb2hjaS5yZWdzID0gKHN0cnVjdCBvaGNpX3JlZ3MgKikoQ0ZHX1VTQl9IT1NUKTsKKwlnb2hjaS5yZWdzID0gKHN0cnVjdCBvaGNpX3JlZ3MgKikoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgfCAweDEwMDApOworI2VsaWYgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfVVNCX0hPU1QpCisJZ29oY2kucmVncyA9IChzdHJ1Y3Qgb2hjaV9yZWdzICopKENPTkZJR19TWVNfVVNCX0hPU1QpOwogI2VuZGlmCiAKIAlnb2hjaS5mbGFncyA9IDA7CmRpZmYgLS1naXQgYS9jcHUvcHBjNHh4L3VzYmRldi5oIGIvY3B1L3BwYzR4eC91c2JkZXYuaAppbmRleCAzNDQ2ZDk4Li5lZjZhMmRhIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L3VzYmRldi5oCisrKyBiL2NwdS9wcGM0eHgvdXNiZGV2LmgKQEAgLTEsMzEgKzEsMzEgQEAKICNpbmNsdWRlIDxjb25maWcuaD4KIAogLypDb21tb24gUmVnaXN0ZXJzKi8KLSNkZWZpbmUgVVNCMkQwX0lOVFJJTl8xNiAgIChDRkdfVVNCX0RFVklDRSB8IDB4MTAwKQotI2RlZmluZSBVU0IyRDBfUE9XRVJfOCAgICAgKENGR19VU0JfREVWSUNFIHwgMHgxMDIpCi0jZGVmaW5lIFVTQjJEMF9GQUREUl84ICAgICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDEwMykKLSNkZWZpbmUgVVNCMkQwX0lOVFJJTkVfMTYgIChDRkdfVVNCX0RFVklDRSB8IDB4MTA0KQotI2RlZmluZSBVU0IyRDBfSU5UUk9VVF8xNiAgKENGR19VU0JfREVWSUNFIHwgMHgxMDYpCi0jZGVmaW5lIFVTQjJEMF9JTlRSVVNCRV84ICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDEwOCkKLSNkZWZpbmUgVVNCMkQwX0lOVFJVU0JfOCAgIChDRkdfVVNCX0RFVklDRSB8IDB4MTA5KQotI2RlZmluZSBVU0IyRDBfSU5UUk9VVEVfMTYgKENGR19VU0JfREVWSUNFIHwgMHgxMGEpCi0jZGVmaW5lIFVTQjJEMF9UU1RNT0RFXzggICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDEwYykKLSNkZWZpbmUgVVNCMkQwX0lOREVYXzggICAgIChDRkdfVVNCX0RFVklDRSB8IDB4MTBkKQotI2RlZmluZSBVU0IyRDBfRlJBTUVfMTYgICAgKENGR19VU0JfREVWSUNFIHwgMHgxMGUpCisjZGVmaW5lIFVTQjJEMF9JTlRSSU5fMTYgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDApCisjZGVmaW5lIFVTQjJEMF9QT1dFUl84ICAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDIpCisjZGVmaW5lIFVTQjJEMF9GQUREUl84ICAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDMpCisjZGVmaW5lIFVTQjJEMF9JTlRSSU5FXzE2ICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDQpCisjZGVmaW5lIFVTQjJEMF9JTlRST1VUXzE2ICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDYpCisjZGVmaW5lIFVTQjJEMF9JTlRSVVNCRV84ICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDgpCisjZGVmaW5lIFVTQjJEMF9JTlRSVVNCXzggICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMDkpCisjZGVmaW5lIFVTQjJEMF9JTlRST1VURV8xNiAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMGEpCisjZGVmaW5lIFVTQjJEMF9UU1RNT0RFXzggICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMGMpCisjZGVmaW5lIFVTQjJEMF9JTkRFWF84ICAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMGQpCisjZGVmaW5lIFVTQjJEMF9GUkFNRV8xNiAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMGUpCiAKIC8qSW5kZXhlZCBSZWdpc3RlcnMqLwotI2RlZmluZSBVU0IyRDBfSU5DU1IwXzggICAgKENGR19VU0JfREVWSUNFIHwgMHgxMTApCi0jZGVmaW5lIFVTQjJEMF9JTkNTUl8xNiAgICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDExMCkKLSNkZWZpbmUgVVNCMkQwX0lOTUFYUF8xNiAgIChDRkdfVVNCX0RFVklDRSB8IDB4MTEyKQotI2RlZmluZSBVU0IyRDBfT1VUQ1NSXzE2ICAgKENGR19VU0JfREVWSUNFIHwgMHgxMTQpCi0jZGVmaW5lIFVTQjJEMF9PVVRNQVhQXzE2ICAoQ0ZHX1VTQl9ERVZJQ0UgfCAweDExNikKLSNkZWZpbmUgVVNCMkQwX09VVENPVU5UMF84IChDRkdfVVNCX0RFVklDRSB8IDB4MTFhKQotI2RlZmluZSBVU0IyRDBfT1VUQ09VTlRfMTYgKENGR19VU0JfREVWSUNFIHwgMHgxMWEpCisjZGVmaW5lIFVTQjJEMF9JTkNTUjBfOCAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTApCisjZGVmaW5lIFVTQjJEMF9JTkNTUl8xNiAgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTApCisjZGVmaW5lIFVTQjJEMF9JTk1BWFBfMTYgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTIpCisjZGVmaW5lIFVTQjJEMF9PVVRDU1JfMTYgICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTQpCisjZGVmaW5lIFVTQjJEMF9PVVRNQVhQXzE2ICAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMTYpCisjZGVmaW5lIFVTQjJEMF9PVVRDT1VOVDBfOCAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMWEpCisjZGVmaW5lIFVTQjJEMF9PVVRDT1VOVF8xNiAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMWEpCiAKIC8qRklGT3MqLwotI2RlZmluZSBVU0IyRDBfRklGT18wIChDRkdfVVNCX0RFVklDRSB8IDB4MTIwKQotI2RlZmluZSBVU0IyRDBfRklGT18xIChDRkdfVVNCX0RFVklDRSB8IDB4MTI0KQotI2RlZmluZSBVU0IyRDBfRklGT18yIChDRkdfVVNCX0RFVklDRSB8IDB4MTI4KQotI2RlZmluZSBVU0IyRDBfRklGT18zIChDRkdfVVNCX0RFVklDRSB8IDB4MTJjKQorI2RlZmluZSBVU0IyRDBfRklGT18wIChDT05GSUdfU1lTX1VTQl9ERVZJQ0UgfCAweDEyMCkKKyNkZWZpbmUgVVNCMkQwX0ZJRk9fMSAoQ09ORklHX1NZU19VU0JfREVWSUNFIHwgMHgxMjQpCisjZGVmaW5lIFVTQjJEMF9GSUZPXzIgKENPTkZJR19TWVNfVVNCX0RFVklDRSB8IDB4MTI4KQorI2RlZmluZSBVU0IyRDBfRklGT18zIChDT05GSUdfU1lTX1VTQl9ERVZJQ0UgfCAweDEyYykKIAogdm9pZCB1c2JfZGV2X2luaXQodm9pZCk7CmRpZmYgLS1naXQgYS9jcHUvcHhhL2NwdS5jIGIvY3B1L3B4YS9jcHUuYwppbmRleCAwZWU4MTgwLi5lODRjYjViIDEwMDY0NAotLS0gYS9jcHUvcHhhL2NwdS5jCisrKyBiL2NwdS9weGEvY3B1LmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAkgKiBzZXR1cCB1cCBzdGFja3MgaWYgbmVjZXNzYXJ5CiAJICovCiAjaWZkZWYgQ09ORklHX1VTRV9JUlEKLQlJUlFfU1RBQ0tfU1RBUlQgPSBfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSA0OworCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gNDsKIAlGSVFfU1RBQ0tfU1RBUlQgPSBJUlFfU1RBQ0tfU1RBUlQgLSBDT05GSUdfU1RBQ0tTSVpFX0lSUTsKICNlbmRpZgogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvY3B1L3B4YS9pMmMuYyBiL2NwdS9weGEvaTJjLmMKaW5kZXggZGY1MzdjNC4uMDgwNDJiZSAxMDA2NDQKLS0tIGEvY3B1L3B4YS9pMmMuYworKysgYi9jcHUvcHhhL2kyYy5jCkBAIC0zNyw3ICszNyw3IEBACiAjaWZkZWYgQ09ORklHX0hBUkRfSTJDCiAKIC8qCi0gKgktIENGR19JMkNfU1BFRUQKKyAqCS0gQ09ORklHX1NZU19JMkNfU1BFRUQKICAqCS0gSTJDX1BYQV9TTEFWRV9BRERSCiAgKi8KIApAQCAtNDgsNyArNDgsNyBAQAogLyojZGVmaW5lCURFQlVHX0kyQwkxCS8jIyMqIGFjdGl2YXRlIGxvY2FsIGRlYnVnZ2luZyBvdXRwdXQgICovCiAjZGVmaW5lIEkyQ19QWEFfU0xBVkVfQUREUgkweDEJLyogc2xhdmUgcHhhIHVuaXQgYWRkcmVzcyAgICAgICAgICAgKi8KIAotI2lmIChDRkdfSTJDX1NQRUVEID09IDQwMDAwMCkKKyNpZiAoQ09ORklHX1NZU19JMkNfU1BFRUQgPT0gNDAwMDAwKQogI2RlZmluZSBJMkNfSUNSX0lOSVQJKElDUl9GTSB8IElDUl9CRUlFIHwgSUNSX0lSRklFIHwgSUNSX0lURUlFIHwgSUNSX0dDRCB8IElDUl9TQ0xFKQogI2Vsc2UKICNkZWZpbmUgSTJDX0lDUl9JTklUCShJQ1JfQkVJRSB8IElDUl9JUkZJRSB8IElDUl9JVEVJRSB8IElDUl9HQ0QgfCBJQ1JfU0NMRSkKQEAgLTI1NCw3ICsyNTQsNyBAQAogCiB2b2lkIGkyY19pbml0KGludCBzcGVlZCwgaW50IHNsYXZlYWRkcikKIHsKLSNpZmRlZiBDRkdfSTJDX0lOSVRfQk9BUkQKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECiAJLyogY2FsbCBib2FyZCBzcGVjaWZpYyBpMmMgYnVzIHJlc2V0IHJvdXRpbmUgYmVmb3JlIGFjY2Vzc2luZyB0aGUgICAqLwogCS8qIGVudmlyb25tZW50LCB3aGljaCBtaWdodCBiZSBpbiBhIGNoaXAgb24gdGhhdCBidXMuIEZvciBkZXRhaWxzICAgKi8KIAkvKiBhYm91dCB0aGlzIHByb2JsZW0gc2VlIGRvYy9JMkNfRWRnZV9Db25kaXRpb25zLiAgICAgICAgICAgICAgICAgICovCkBAIC0zMjksNyArMzI5LDcgQEAKIAkgKiBzZW5kIG1lbW9yeSBhZGRyZXNzIGJ5dGVzOwogCSAqIGFsZW4gZGVmaW5lcyBob3cgbXVjaCBieXRlcyB3ZSBoYXZlIHRvIHNlbmQuCiAJICovCi0JLyphZGRyICY9ICgoMSA8PCBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyktMSk7ICovCisJLyphZGRyICY9ICgoMSA8PCBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMpLTEpOyAqLwogCWFkZHJfYnl0ZXNbMF0gPSAodTgpKChhZGRyID4+ICAwKSAmIDB4MDAwMDAwRkYpOwogCWFkZHJfYnl0ZXNbMV0gPSAodTgpKChhZGRyID4+ICA4KSAmIDB4MDAwMDAwRkYpOwogCWFkZHJfYnl0ZXNbMl0gPSAodTgpKChhZGRyID4+IDE2KSAmIDB4MDAwMDAwRkYpOwpkaWZmIC0tZ2l0IGEvY3B1L3B4YS9pbnRlcnJ1cHRzLmMgYi9jcHUvcHhhL2ludGVycnVwdHMuYwppbmRleCA4YjU3N2UxLi5lYzhmYjllIDEwMDY0NAotLS0gYS9jcHUvcHhhL2ludGVycnVwdHMuYworKysgYi9jcHUvcHhhL2ludGVycnVwdHMuYwpAQCAtNzgsMTAgKzc4LDEwIEBACiAKIAlpZiAodXNlYyA+PSAxMDAwKSB7CiAJCXRtbyA9IHVzZWMgLyAxMDAwOwotCQl0bW8gKj0gQ0ZHX0haOworCQl0bW8gKj0gQ09ORklHX1NZU19IWjsKIAkJdG1vIC89IDEwMDA7CiAJfSBlbHNlIHsKLQkJdG1vID0gdXNlYyAqIENGR19IWjsKKwkJdG1vID0gdXNlYyAqIENPTkZJR19TWVNfSFo7CiAJCXRtbyAvPSAoMTAwMCoxMDAwKTsKIAl9CiAKQEAgLTEwOSw2ICsxMDksNiBAQAogdWxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewogCXVsb25nIHRiY2xrOwotCXRiY2xrID0gQ0ZHX0haOworCXRiY2xrID0gQ09ORklHX1NZU19IWjsKIAlyZXR1cm4gdGJjbGs7CiB9CmRpZmYgLS1naXQgYS9jcHUvcHhhL21tYy5jIGIvY3B1L3B4YS9tbWMuYwppbmRleCAxY2ZlZGU3Li5kNzM1YzhkIDEwMDY0NAotLS0gYS9jcHUvcHhhL21tYy5jCisrKyBiL2NwdS9weGEvbW1jLmMKQEAgLTIzNCw3ICsyMzQsNyBAQAogCW1tY19ibG9ja19zaXplID0gTU1DX0JMT0NLX1NJWkU7CiAJbW1jX2Jsb2NrX2FkZHJlc3MgPSB+KG1tY19ibG9ja19zaXplIC0gMSk7CiAKLQlzcmMgLT0gQ0ZHX01NQ19CQVNFOworCXNyYyAtPSBDT05GSUdfU1lTX01NQ19CQVNFOwogCWVuZCA9IHNyYyArIHNpemU7CiAJcGFydF9zdGFydCA9IH5tbWNfYmxvY2tfYWRkcmVzcyAmIHNyYzsKIAlwYXJ0X2VuZCA9IH5tbWNfYmxvY2tfYWRkcmVzcyAmIGVuZDsKQEAgLTMxMCw3ICszMTAsNyBAQAogCW1tY19ibG9ja19zaXplID0gTU1DX0JMT0NLX1NJWkU7CiAJbW1jX2Jsb2NrX2FkZHJlc3MgPSB+KG1tY19ibG9ja19zaXplIC0gMSk7CiAKLQlkc3QgLT0gQ0ZHX01NQ19CQVNFOworCWRzdCAtPSBDT05GSUdfU1lTX01NQ19CQVNFOwogCWVuZCA9IGRzdCArIHNpemU7CiAJcGFydF9zdGFydCA9IH5tbWNfYmxvY2tfYWRkcmVzcyAmIGRzdDsKIAlwYXJ0X2VuZCA9IH5tbWNfYmxvY2tfYWRkcmVzcyAmIGVuZDsKQEAgLTM3OSw3ICszNzksNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiB7CiAJaW50IG1tY19ibG9ja19zaXplID0gTU1DX0JMT0NLX1NJWkU7Ci0JdWxvbmcgc3JjID0gYmxrbnIgKiBtbWNfYmxvY2tfc2l6ZSArIENGR19NTUNfQkFTRTsKKwl1bG9uZyBzcmMgPSBibGtuciAqIG1tY19ibG9ja19zaXplICsgQ09ORklHX1NZU19NTUNfQkFTRTsKIAogCW1tY19yZWFkKHNyYywgKHVjaGFyICopIGRzdCwgYmxrY250ICogbW1jX2Jsb2NrX3NpemUpOwogCXJldHVybiBibGtjbnQ7CkBAIC02NTIsOCArNjUyLDggQEAKIAogaW50IG1tYzJpbmZvKHVsb25nIGFkZHIpCiB7Ci0JaWYgKGFkZHIgPj0gQ0ZHX01NQ19CQVNFCi0JICAgICYmIGFkZHIgPCBDRkdfTU1DX0JBU0UgKyAobW1jX2Rldi5sYmEgKiBtbWNfZGV2LmJsa3N6KSkgeworCWlmIChhZGRyID49IENPTkZJR19TWVNfTU1DX0JBU0UKKwkgICAgJiYgYWRkciA8IENPTkZJR19TWVNfTU1DX0JBU0UgKyAobW1jX2Rldi5sYmEgKiBtbWNfZGV2LmJsa3N6KSkgewogCQlyZXR1cm4gMTsKIAl9CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvcHhhL3B4YWZiLmMgYi9jcHUvcHhhL3B4YWZiLmMKaW5kZXggYjJjYWE3My4uOTdlZmNiNiAxMDA2NDQKLS0tIGEvY3B1L3B4YS9weGFmYi5jCisrKyBiL2NwdS9weGEvcHhhZmIuYwpAQCAtNjAsMTEgKzYwLDExIEBACiAJdmxfcm93OgkJNDgwLAogCXZsX3dpZHRoOgk2NDAsCiAJdmxfaGVpZ2h0Ogk0ODAsCi0JdmxfY2xrcDoJQ0ZHX0hJR0gsCi0Jdmxfb2VwOgkJQ0ZHX0hJR0gsCi0JdmxfaHNwOgkJQ0ZHX0hJR0gsCi0JdmxfdnNwOgkJQ0ZHX0hJR0gsCi0JdmxfZHA6CQlDRkdfSElHSCwKKwl2bF9jbGtwOglDT05GSUdfU1lTX0hJR0gsCisJdmxfb2VwOgkJQ09ORklHX1NZU19ISUdILAorCXZsX2hzcDoJCUNPTkZJR19TWVNfSElHSCwKKwl2bF92c3A6CQlDT05GSUdfU1lTX0hJR0gsCisJdmxfZHA6CQlDT05GSUdfU1lTX0hJR0gsCiAJdmxfYnBpeDoJTENEX0JQUCwKIAl2bF9sYnc6CQkwLAogCXZsX3NwbHQ6CTAsCkBAIC05NCwxMSArOTQsMTEgQEAKIAl2bF9yb3c6CQk0ODAsCiAJdmxfd2lkdGg6CTE1NywKIAl2bF9oZWlnaHQ6CTExOCwKLQl2bF9jbGtwOglDRkdfSElHSCwKLQl2bF9vZXA6CQlDRkdfSElHSCwKLQl2bF9oc3A6CQlDRkdfSElHSCwKLQl2bF92c3A6CQlDRkdfSElHSCwKLQl2bF9kcDoJCUNGR19ISUdILAorCXZsX2Nsa3A6CUNPTkZJR19TWVNfSElHSCwKKwl2bF9vZXA6CQlDT05GSUdfU1lTX0hJR0gsCisJdmxfaHNwOgkJQ09ORklHX1NZU19ISUdILAorCXZsX3ZzcDoJCUNPTkZJR19TWVNfSElHSCwKKwl2bF9kcDoJCUNPTkZJR19TWVNfSElHSCwKIAl2bF9icGl4OglMQ0RfQlBQLAogCXZsX2xidzoJCTAsCiAJdmxfc3BsdDoJMSwKQEAgLTEyNywxMSArMTI3LDExIEBACiAJdmxfcm93OgkJMjQwLAogCXZsX3dpZHRoOgkxNjcsCiAJdmxfaGVpZ2h0OgkxMDksCi0JdmxfY2xrcDoJQ0ZHX0hJR0gsCi0Jdmxfb2VwOgkJQ0ZHX0hJR0gsCi0JdmxfaHNwOgkJQ0ZHX0hJR0gsCi0JdmxfdnNwOgkJQ0ZHX0hJR0gsCi0JdmxfZHA6CQlDRkdfSElHSCwKKwl2bF9jbGtwOglDT05GSUdfU1lTX0hJR0gsCisJdmxfb2VwOgkJQ09ORklHX1NZU19ISUdILAorCXZsX2hzcDoJCUNPTkZJR19TWVNfSElHSCwKKwl2bF92c3A6CQlDT05GSUdfU1lTX0hJR0gsCisJdmxfZHA6CQlDT05GSUdfU1lTX0hJR0gsCiAJdmxfYnBpeDoJTENEX0JQUCwKIAl2bF9sYnc6CQkxLAogCXZsX3NwbHQ6CTAsCmRpZmYgLS1naXQgYS9jcHUvcHhhL3N0YXJ0LlMgYi9jcHUvcHhhL3N0YXJ0LlMKaW5kZXggMjMwMDVlMi4uNjNhYjBjNSAxMDA2NDQKLS0tIGEvY3B1L3B4YS9zdGFydC5TCisrKyBiL2NwdS9weGEvc3RhcnQuUwpAQCAtMTM1LDggKzEzNSw4IEBACiAJLyogU2V0IHVwIHRoZSBzdGFjawkJCQkJCSAgICAqLwogc3RhY2tfc2V0dXA6CiAJbGRyCXIwLCBfVEVYVF9CQVNFCQkvKiB1cHBlciAxMjggS2lCOiByZWxvY2F0ZWQgdWJvb3QgICAqLwotCXN1YglyMCwgcjAsICNDRkdfTUFMTE9DX0xFTiAvKiBtYWxsb2MgYXJlYQkJCSAgICAqLwotCXN1YglyMCwgcjAsICNDRkdfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOIC8qIG1hbGxvYyBhcmVhCQkJICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8JCQkgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYgLyogQ09ORklHX1VTRV9JUlEgKi8KQEAgLTE5MSwyMCArMTkxLDIwIEBACiAKIC8qIENsb2NrIE1hbmFnZXIgUmVnaXN0ZXJzCQkJCQkJICAgICovCiAjaWZkZWYgQ09ORklHX0NQVV9NT05BSEFOUwotIyBpZm5kZWYgQ0ZHX01PTkFIQU5TX1JVTl9NT0RFX09TQ19SQVRJTwotIyAgZXJyb3IgIllvdSBoYXZlIHRvIGRlZmluZSBDRkdfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPISEiCi0jIGVuZGlmIC8qICFDRkdfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPICovCi0jIGlmbmRlZiBDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8KLSMgIGRlZmluZSBDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8gMHgxCi0jIGVuZGlmIC8qICFDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8gKi8KKyMgaWZuZGVmIENPTkZJR19TWVNfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPCisjICBlcnJvciAiWW91IGhhdmUgdG8gZGVmaW5lIENPTkZJR19TWVNfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPISEiCisjIGVuZGlmIC8qICFDT05GSUdfU1lTX01PTkFIQU5TX1JVTl9NT0RFX09TQ19SQVRJTyAqLworIyBpZm5kZWYgQ09ORklHX1NZU19NT05BSEFOU19UVVJCT19SVU5fTU9ERV9SQVRJTworIyAgZGVmaW5lIENPTkZJR19TWVNfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8gMHgxCisjIGVuZGlmIC8qICFDT05GSUdfU1lTX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPICovCiAjZWxzZSAvKiAhQ09ORklHX0NQVV9NT05BSEFOUyAqLwotI2lmZGVmIENGR19DUFVTUEVFRAorI2lmZGVmIENPTkZJR19TWVNfQ1BVU1BFRUQKIENDX0JBU0U6CS53b3JkCTB4NDEzMDAwMDAKICNkZWZpbmUgQ0NDUgkweDAwCi1jcHVzcGVlZDoJLndvcmQJQ0ZHX0NQVVNQRUVECi0jZWxzZSAvKiAhQ0ZHX0NQVVNQRUVEICovCi0jZXJyb3IgIllvdSBoYXZlIHRvIGRlZmluZSBDRkdfQ1BVU1BFRUQhISIKLSNlbmRpZiAvKiBDRkdfQ1BVU1BFRUQgKi8KK2NwdXNwZWVkOgkud29yZAlDT05GSUdfU1lTX0NQVVNQRUVECisjZWxzZSAvKiAhQ09ORklHX1NZU19DUFVTUEVFRCAqLworI2Vycm9yICJZb3UgaGF2ZSB0byBkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRCEhIgorI2VuZGlmIC8qIENPTkZJR19TWVNfQ1BVU1BFRUQgKi8KICNlbmRpZiAvKiBDT05GSUdfQ1BVX01PTkFIQU5TICovCiAKIAkvKiB0YWtlcyBjYXJlIHRoZSBDUDE1IHVwZGF0ZSBoYXMgdGFrZW4gcGxhY2UgKi8KQEAgLTI0NSwxMCArMjQ1LDEwIEBACiAJLyogc2V0IGNsb2NrIHNwZWVkICovCiAjaWZkZWYgQ09ORklHX0NQVV9NT05BSEFOUwogCWxkcglyMCwgPUFDQ1IKLQlsZHIJcjEsID0oKChDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU88PDgpICYgQUNDUl9YTl9NQVNLKSB8IChDRkdfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPICYgQUNDUl9YTF9NQVNLKSkKKwlsZHIJcjEsID0oKChDT05GSUdfU1lTX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPPDw4KSAmIEFDQ1JfWE5fTUFTSykgfCAoQ09ORklHX1NZU19NT05BSEFOU19SVU5fTU9ERV9PU0NfUkFUSU8gJiBBQ0NSX1hMX01BU0spKQogCXN0cglyMSwgW3IwXQogI2Vsc2UgLyogIUNPTkZJR19DUFVfTU9OQUhBTlMgKi8KLSNpZmRlZiBDRkdfQ1BVU1BFRUQKKyNpZmRlZiBDT05GSUdfU1lTX0NQVVNQRUVECiAJbGRyCXIwLCBDQ19CQVNFCiAJbGRyCXIxLCBjcHVzcGVlZAogCXN0cglyMSwgW3IwLCAjQ0NDUl0KQEAgLTI1Nyw3ICsyNTcsNyBAQAogCiBzZXRzcGVlZF9kb25lOgogCi0jZW5kaWYgLyogQ0ZHX0NQVVNQRUVEICovCisjZW5kaWYgLyogQ09ORklHX1NZU19DUFVTUEVFRCAqLwogI2VuZGlmIC8qIENPTkZJR19DUFVfTU9OQUhBTlMgKi8KIAogCS8qCkBAIC0zMzYsOCArMzM2LDggQEAKIAlhZGQJcjgsIHNwLCAjU19QQwogCiAJbGRyCXIyLCBfYXJtYm9vdF9zdGFydAotCXN1YglyMiwgcjIsICMoQ09ORklHX1NUQUNLU0laRStDRkdfTUFMTE9DX0xFTikKLQlzdWIJcjIsIHIyLCAjKENGR19HQkxfREFUQV9TSVpFKzgpCUAgc2V0IGJhc2UgMiB3b3JkcyBpbnRvIGFib3J0IHN0YWNrCisJc3ViCXIyLCByMiwgIyhDT05GSUdfU1RBQ0tTSVpFK0NPTkZJR19TWVNfTUFMTE9DX0xFTikKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KQlAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjawogCWxkbWlhCXIyLCB7cjIgLSByNH0JCQkvKiBnZXQgcGMsIGNwc3IsIG9sZF9yMAkgICAgKi8KIAlhZGQJcjAsIHNwLCAjU19GUkFNRV9TSVpFCQkvKiByZXN0b3JlIHNwX1NWQwkgICAgKi8KIApAQCAtMzczLDggKzM3Myw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrCi0Jc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCiAKIAlzdHIJbHIsIFtyMTNdCQkJQCBzYXZlIGNhbGxlciBsciAvIHNwc3IKIAltcnMJbHIsIHNwc3IKZGlmZiAtLWdpdCBhL2NwdS9weGEvdXNiLmMgYi9jcHUvcHhhL3VzYi5jCmluZGV4IGFhNmY0YjcuLmJkNzE4YTYgMTAwNjQ0Ci0tLSBhL2NwdS9weGEvdXNiLmMKKysrIGIvY3B1L3B4YS91c2IuYwpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLSNpZiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSV9ORVcpICYmIGRlZmluZWQoQ0ZHX1VTQl9PSENJX0NQVV9JTklUKQorI2lmIGRlZmluZWQoQ09ORklHX1VTQl9PSENJX05FVykgJiYgZGVmaW5lZChDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUKQogIyBpZiBkZWZpbmVkKENPTkZJR19DUFVfTU9OQUhBTlMpIHx8IGRlZmluZWQoQ09ORklHX1BYQTI3WCkKIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CkBAIC0xMDksNCArMTA5LDQgQEAKIH0KIAogIyBlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19DUFVfTU9OQUhBTlMpIHx8IGRlZmluZWQoQ09ORklHX1BYQTI3WCkgKi8KLSNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19VU0JfT0hDSSkgJiYgZGVmaW5lZChDRkdfVVNCX09IQ0lfQ1BVX0lOSVQpICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfVVNCX09IQ0kpICYmIGRlZmluZWQoQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVCkgKi8KZGlmZiAtLWdpdCBhL2NwdS9zM2M0NGIwL2ludGVycnVwdHMuYyBiL2NwdS9zM2M0NGIwL2ludGVycnVwdHMuYwppbmRleCBlZDc5NjQ4Li5lYjIzZTZhIDEwMDY0NAotLS0gYS9jcHUvczNjNDRiMC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L3MzYzQ0YjAvaW50ZXJydXB0cy5jCkBAIC04MCw3ICs4MCw3IEBACiAJdWxvbmcgdG1vOwogCiAJdG1vID0gdXNlYyAvIDEwMDA7Ci0JdG1vICo9IENGR19IWjsKKwl0bW8gKj0gQ09ORklHX1NZU19IWjsKIAl0bW8gLz0gODsKIAogCXRtbyArPSBnZXRfdGltZXIgKDApOwpAQCAtMTIwLDEwICsxMjAsMTAgQEAKIAogCWlmICh1c2VjID49IDEwMDApIHsKIAkJdG1vID0gdXNlYyAvIDEwMDA7Ci0JCXRtbyAqPSBDRkdfSFo7CisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gODsKIAl9IGVsc2UgewotCQl0bW8gPSB1c2VjICogQ0ZHX0haOworCQl0bW8gPSB1c2VjICogQ09ORklHX1NZU19IWjsKIAkJdG1vIC89ICgxMDAwKjgpOwogCX0KIApkaWZmIC0tZ2l0IGEvY3B1L3MzYzQ0YjAvc3RhcnQuUyBiL2NwdS9zM2M0NGIwL3N0YXJ0LlMKaW5kZXggMWQ4OGMxYy4uZjVhM2QzYSAxMDA2NDQKLS0tIGEvY3B1L3MzYzQ0YjAvc3RhcnQuUworKysgYi9jcHUvczNjNDRiMC9zdGFydC5TCkBAIC0xNTcsOCArMTU3LDggQEAKIAkvKiBTZXQgdXAgdGhlIHN0YWNrCQkJCQkJICAgICovCiBzdGFja19zZXR1cDoKIAlsZHIJcjAsIF9URVhUX0JBU0UJCS8qIHVwcGVyIDEyOCBLaUI6IHJlbG9jYXRlZCB1Ym9vdCAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCi0Jc3ViCXIwLCByMCwgI0NGR19HQkxfREFUQV9TSVpFIC8qIGJkaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfTUFMTE9DX0xFTgkvKiBtYWxsb2MgYXJlYSAgICAgICAgICAgICAgICAgICAgICAqLworCXN1YglyMCwgcjAsICNDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQogCXN1YglyMCwgcjAsICMoQ09ORklHX1NUQUNLU0laRV9JUlErQ09ORklHX1NUQUNLU0laRV9GSVEpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NwdS9zYTExMDAvY3B1LmMgYi9jcHUvc2ExMTAwL2NwdS5jCmluZGV4IGYxYmQ2NDQuLmJiNGU1YTEgMTAwNjQ0Ci0tLSBhL2NwdS9zYTExMDAvY3B1LmMKKysrIGIvY3B1L3NhMTEwMC9jcHUuYwpAQCAtNDMsNyArNDMsNyBAQAogCSAqIHNldHVwIHVwIHN0YWNrcyBpZiBuZWNlc3NhcnkKIAkgKi8KICNpZmRlZiBDT05GSUdfVVNFX0lSUQotCUlSUV9TVEFDS19TVEFSVCA9IF9hcm1ib290X3N0YXJ0IC0gQ0ZHX01BTExPQ19MRU4gLSBDRkdfR0JMX0RBVEFfU0laRSAtIDQ7CisJSVJRX1NUQUNLX1NUQVJUID0gX2FybWJvb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01BTExPQ19MRU4gLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgLSA0OwogCUZJUV9TVEFDS19TVEFSVCA9IElSUV9TVEFDS19TVEFSVCAtIENPTkZJR19TVEFDS1NJWkVfSVJROwogI2VuZGlmCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9jcHUvc2ExMTAwL2ludGVycnVwdHMuYyBiL2NwdS9zYTExMDAvaW50ZXJydXB0cy5jCmluZGV4IDUzZjI3NDUuLjJlZmYwNDUgMTAwNjQ0Ci0tLSBhL2NwdS9zYTExMDAvaW50ZXJydXB0cy5jCisrKyBiL2NwdS9zYTExMDAvaW50ZXJydXB0cy5jCkBAIC03NCwxMCArNzQsMTAgQEAKIAogCWlmICh1c2VjID49IDEwMDApIHsKIAkJdG1vID0gdXNlYyAvIDEwMDA7Ci0JCXRtbyAqPSBDRkdfSFo7CisJCXRtbyAqPSBDT05GSUdfU1lTX0haOwogCQl0bW8gLz0gMTAwMDsKIAl9IGVsc2UgewotCQl0bW8gPSB1c2VjICogQ0ZHX0haOworCQl0bW8gPSB1c2VjICogQ09ORklHX1NZU19IWjsKIAkJdG1vIC89ICgxMDAwKjEwMDApOwogCX0KIApAQCAtMTA2LDYgKzEwNiw2IEBACiB7CiAJdWxvbmcgdGJjbGs7CiAKLQl0YmNsayA9IENGR19IWjsKKwl0YmNsayA9IENPTkZJR19TWVNfSFo7CiAJcmV0dXJuIHRiY2xrOwogfQpkaWZmIC0tZ2l0IGEvY3B1L3NhMTEwMC9zdGFydC5TIGIvY3B1L3NhMTEwMC9zdGFydC5TCmluZGV4IDkxMDY1MGQuLjI3OGM1MDAgMTAwNjQ0Ci0tLSBhL2NwdS9zYTExMDAvc3RhcnQuUworKysgYi9jcHUvc2ExMTAwL3N0YXJ0LlMKQEAgLTE0Nyw4ICsxNDcsOCBAQAogCS8qIFNldCB1cCB0aGUgc3RhY2sJCQkJCQkgICAgKi8KIHN0YWNrX3NldHVwOgogCWxkcglyMCwgX1RFWFRfQkFTRQkJLyogdXBwZXIgMTI4IEtpQjogcmVsb2NhdGVkIHVib290ICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX01BTExPQ19MRU4JLyogbWFsbG9jIGFyZWEgICAgICAgICAgICAgICAgICAgICAgKi8KLQlzdWIJcjAsIHIwLCAjQ0ZHX0dCTF9EQVRBX1NJWkUgLyogYmRpbmZvICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwlzdWIJcjAsIHIwLCAjQ09ORklHX1NZU19NQUxMT0NfTEVOCS8qIG1hbGxvYyBhcmVhICAgICAgICAgICAgICAgICAgICAgICovCisJc3ViCXIwLCByMCwgI0NPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAvKiBiZGluZm8gICAgICAgICAgICAgICAgICAgICAgICAqLwogI2lmZGVmIENPTkZJR19VU0VfSVJRCiAJc3ViCXIwLCByMCwgIyhDT05GSUdfU1RBQ0tTSVpFX0lSUStDT05GSUdfU1RBQ0tTSVpFX0ZJUSkKICNlbmRpZgpAQCAtMTk2LDcgKzE5Niw3IEBACiBQV1JfQkFTRToJCS53b3JkICAgMHg5MDAyMDAwMAogI2RlZmluZSBQU1BSICAgIDB4MDgKICNkZWZpbmUgUFBDUiAgICAweDE0Ci1jcHVzcGVlZDoJCS53b3JkICAgQ0ZHX0NQVVNQRUVECitjcHVzcGVlZDoJCS53b3JkICAgQ09ORklHX1NZU19DUFVTUEVFRAogCiAKIGNwdV9pbml0X2NyaXQ6CkBAIC0yODgsOCArMjg4LDggQEAKIAlhZGQgICAgIHI4LCBzcCwgI1NfUEMKIAogCWxkcglyMiwgX2FybWJvb3Rfc3RhcnQKLQlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIyLCByMiwgIyhDRkdfR0JMX0RBVEFfU0laRSs4KSAgQCBzZXQgYmFzZSAyIHdvcmRzIGludG8gYWJvcnQgc3RhY2sKKwlzdWIJcjIsIHIyLCAjKENPTkZJR19TVEFDS1NJWkUrQ09ORklHX1NZU19NQUxMT0NfTEVOKQorCXN1YglyMiwgcjIsICMoQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKzgpICBAIHNldCBiYXNlIDIgd29yZHMgaW50byBhYm9ydCBzdGFjawogCWxkbWlhCXIyLCB7cjIgLSByNH0gICAgICAgICAgICAgICAgICAgQCBnZXQgcGMsIGNwc3IsIG9sZF9yMAogCWFkZAlyMCwgc3AsICNTX0ZSQU1FX1NJWkUJCUAgcmVzdG9yZSBzcF9TVkMKIApAQCAtMzIxLDggKzMyMSw4IEBACiAKIAkubWFjcm8gZ2V0X2JhZF9zdGFjawogCWxkcglyMTMsIF9hcm1ib290X3N0YXJ0CQlAIHNldHVwIG91ciBtb2RlIHN0YWNrCi0Jc3ViCXIxMywgcjEzLCAjKENPTkZJR19TVEFDS1NJWkUrQ0ZHX01BTExPQ19MRU4pCi0Jc3ViCXIxMywgcjEzLCAjKENGR19HQkxfREFUQV9TSVpFKzgpIEAgcmVzZXJ2ZWQgYSBjb3VwbGUgc3BvdHMgaW4gYWJvcnQgc3RhY2sKKwlzdWIJcjEzLCByMTMsICMoQ09ORklHX1NUQUNLU0laRStDT05GSUdfU1lTX01BTExPQ19MRU4pCisJc3ViCXIxMywgcjEzLCAjKENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSs4KSBAIHJlc2VydmVkIGEgY291cGxlIHNwb3RzIGluIGFib3J0IHN0YWNrCiAKIAlzdHIJbHIsIFtyMTNdCQkJQCBzYXZlIGNhbGxlciBsciAvIHNwc3IKIAltcnMJbHIsIHNwc3IKZGlmZiAtLWdpdCBhL2NwdS9zaDIvc3RhcnQuUyBiL2NwdS9zaDIvc3RhcnQuUwppbmRleCBjNGZhNjg4Li4wYWI4NjdkIDEwMDY0NAotLS0gYS9jcHUvc2gyL3N0YXJ0LlMKKysrIGIvY3B1L3NoMi9zdGFydC5TCkBAIC03Myw2ICs3Myw2IEBACiAuX3JlbG9jX2RzdF9lbmQ6CS5sb25nCXJlbG9jX2RzdF9lbmQKIC5fYnNzX3N0YXJ0OgkJLmxvbmcJYnNzX3N0YXJ0CiAuX2Jzc19lbmQ6CQkubG9uZwlic3NfZW5kCi0uX2dkX2luaXQ6CQkubG9uZwkoX3N0YXJ0IC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0uX3N0YWNrX2luaXQ6CS5sb25nCShfc3RhcnQgLSBDRkdfR0JMX0RBVEFfU0laRSAtIENGR19NQUxMT0NfTEVOIC0gMTYpCisuX2dkX2luaXQ6CQkubG9uZwkoX3N0YXJ0IC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorLl9zdGFja19pbml0OgkubG9uZwkoX3N0YXJ0IC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gMTYpCiAuX3NoX2dlbmVyaWNfaW5pdDoJLmxvbmcJc2hfZ2VuZXJpY19pbml0CmRpZmYgLS1naXQgYS9jcHUvc2gyL3RpbWUuYyBiL2NwdS9zaDIvdGltZS5jCmluZGV4IGQ2ZWIwY2IuLmZjYmI5MjEgMTAwNjQ0Ci0tLSBhL2NwdS9zaDIvdGltZS5jCisrKyBiL2NwdS9zaDIvdGltZS5jCkBAIC0xMDEsMTEgKzEwMSwxMSBAQAogewogCXVuc2lnbmVkIGludCBzdGFydCA9IGdldF90aW1lcigwKTsKIAotCXdoaWxlIChnZXRfdGltZXIoKHVsb25nKSBzdGFydCkgPCAodXNlYyAqIChDRkdfSFogLyAxMDAwMDAwKSkpCisJd2hpbGUgKGdldF90aW1lcigodWxvbmcpIHN0YXJ0KSA8ICh1c2VjICogKENPTkZJR19TWVNfSFogLyAxMDAwMDAwKSkpCiAJCWNvbnRpbnVlOwogfQogCiB1bnNpZ25lZCBsb25nIGdldF90YmNsayh2b2lkKQogewotCXJldHVybiBDRkdfSFo7CisJcmV0dXJuIENPTkZJR19TWVNfSFo7CiB9CmRpZmYgLS1naXQgYS9jcHUvc2gzL3N0YXJ0LlMgYi9jcHUvc2gzL3N0YXJ0LlMKaW5kZXggZWUwYmNkZi4uYzBmODMyNiAxMDA2NDQKLS0tIGEvY3B1L3NoMy9zdGFydC5TCisrKyBiL2NwdS9zaDMvc3RhcnQuUwpAQCAtNzIsNiArNzIsNiBAQAogLl9yZWxvY19kc3RfZW5kOgkubG9uZwlyZWxvY19kc3RfZW5kCiAuX2Jzc19zdGFydDoJCS5sb25nCWJzc19zdGFydAogLl9ic3NfZW5kOgkJLmxvbmcJYnNzX2VuZAotLl9nZF9pbml0OgkJLmxvbmcJKF9zdGFydCAtIENGR19HQkxfREFUQV9TSVpFKQotLl9zdGFja19pbml0OgkubG9uZwkoX3N0YXJ0IC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSBDRkdfTUFMTE9DX0xFTiAtIDE2KQorLl9nZF9pbml0OgkJLmxvbmcJKF9zdGFydCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKy5fc3RhY2tfaW5pdDoJLmxvbmcJKF9zdGFydCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIDE2KQogLl9zaF9nZW5lcmljX2luaXQ6CS5sb25nCXNoX2dlbmVyaWNfaW5pdApkaWZmIC0tZ2l0IGEvY3B1L3NoMy90aW1lLmMgYi9jcHUvc2gzL3RpbWUuYwppbmRleCAwYzI3M2RkLi5hYWIzNjU5IDEwMDY0NAotLS0gYS9jcHUvc2gzL3RpbWUuYworKysgYi9jcHUvc2gzL3RpbWUuYwpAQCAtOTEsNyArOTEsNyBAQAogdm9pZCB1ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjKQogewogCXVuc2lnbmVkIGludCBzdGFydCA9IGdldF90aW1lcigwKTsKLQl1bnNpZ25lZCBpbnQgZW5kID0gc3RhcnQgKyAodXNlYyAqICgoQ0ZHX0haICsgNTAwMDAwKSAvIDEwMDAwMDApKTsKKwl1bnNpZ25lZCBpbnQgZW5kID0gc3RhcnQgKyAodXNlYyAqICgoQ09ORklHX1NZU19IWiArIDUwMDAwMCkgLyAxMDAwMDAwKSk7CiAKIAl3aGlsZSAoZ2V0X3RpbWVyKDApIDwgZW5kKQogCQljb250aW51ZTsKQEAgLTk5LDUgKzk5LDUgQEAKIAogdW5zaWduZWQgbG9uZyBnZXRfdGJjbGsodm9pZCkKIHsKLQlyZXR1cm4gQ0ZHX0haOworCXJldHVybiBDT05GSUdfU1lTX0haOwogfQpkaWZmIC0tZ2l0IGEvY3B1L3NoNC9zdGFydC5TIGIvY3B1L3NoNC9zdGFydC5TCmluZGV4IGE2OGViYjguLjcxMWFlNjYgMTAwNjQ0Ci0tLSBhL2NwdS9zaDQvc3RhcnQuUworKysgYi9jcHUvc2g0L3N0YXJ0LlMKQEAgLTY5LDYgKzY5LDYgQEAKIC5fcmVsb2NfZHN0X2VuZDoJLmxvbmcJcmVsb2NfZHN0X2VuZAogLl9ic3Nfc3RhcnQ6CQkubG9uZwlic3Nfc3RhcnQKIC5fYnNzX2VuZDoJCS5sb25nCWJzc19lbmQKLS5fZ2RfaW5pdDoJCS5sb25nCShfc3RhcnQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLS5fc3RhY2tfaW5pdDoJCS5sb25nCShfc3RhcnQgLSBDRkdfR0JMX0RBVEFfU0laRSAtIENGR19NQUxMT0NfTEVOIC0gMTYpCisuX2dkX2luaXQ6CQkubG9uZwkoX3N0YXJ0IC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorLl9zdGFja19pbml0OgkJLmxvbmcJKF9zdGFydCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTiAtIDE2KQogLl9zaF9nZW5lcmljX2luaXQ6CS5sb25nCXNoX2dlbmVyaWNfaW5pdApkaWZmIC0tZ2l0IGEvY3B1L3NoNC90aW1lLmMgYi9jcHUvc2g0L3RpbWUuYwppbmRleCA1ZjhhM2EwLi43N2UwYWUyIDEwMDY0NAotLS0gYS9jcHUvc2g0L3RpbWUuYworKysgYi9jcHUvc2g0L3RpbWUuYwpAQCAtODYsNyArODYsNyBAQAogdm9pZCB1ZGVsYXkgKHVuc2lnbmVkIGxvbmcgdXNlYykKIHsKIAl1bnNpZ25lZCBpbnQgc3RhcnQgPSBnZXRfdGltZXIgKDApOwotCXVuc2lnbmVkIGludCBlbmQgPSBzdGFydCArICh1c2VjICogKChDRkdfSFogKyA1MDAwMDApIC8gMTAwMDAwMCkpOworCXVuc2lnbmVkIGludCBlbmQgPSBzdGFydCArICh1c2VjICogKChDT05GSUdfU1lTX0haICsgNTAwMDAwKSAvIDEwMDAwMDApKTsKIAogCXdoaWxlIChnZXRfdGltZXIgKDApIDwgZW5kKQogCQljb250aW51ZTsKQEAgLTk0LDUgKzk0LDUgQEAKIAogdW5zaWduZWQgbG9uZyBnZXRfdGJjbGsgKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19IWjsKKwlyZXR1cm4gQ09ORklHX1NZU19IWjsKIH0KZGlmZiAtLWdpdCBhL2Rpc2svTWFrZWZpbGUgYi9kaXNrL01ha2VmaWxlCmluZGV4IGYxOWQxOGQuLmM0NzkxNDUgMTAwNjQ0Ci0tLSBhL2Rpc2svTWFrZWZpbGUKKysrIGIvZGlzay9NYWtlZmlsZQpAQCAtMzIsNiArMzIsNyBAQAogQ09CSlMteSArPSBwYXJ0X2Rvcy5vCiBDT0JKUy15ICs9IHBhcnRfaXNvLm8KIENPQkpTLXkgKz0gcGFydF9hbWlnYS5vCitDT0JKUy15ICs9IHBhcnRfZWZpLm8KIAogQ09CSlMJOj0gJChDT0JKUy15KQogU1JDUwk6PSAkKENPQkpTOi5vPS5jKQpkaWZmIC0tZ2l0IGEvZGlzay9wYXJ0LmMgYi9kaXNrL3BhcnQuYwppbmRleCA4MDUzMmE3Li5lMzUzY2VlIDEwMDY0NAotLS0gYS9kaXNrL3BhcnQuYworKysgYi9kaXNrL3BhcnQuYwpAQCAtMTgzLDcgKzE4Myw3IEBACiAJCWlmIChkZXZfZGVzYy0+bGJhNDgpCiAJCQlwcmludGYgKCIgICAgICAgICAgICBTdXBwb3J0cyA0OC1iaXQgYWRkcmVzc2luZ1xuIik7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR182NEJJVF9MQkEpICYmIGRlZmluZWQoQ0ZHXzY0QklUX1ZTUFJJTlRGKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU182NEJJVF9MQkEpICYmIGRlZmluZWQoQ09ORklHX1NZU182NEJJVF9WU1BSSU5URikKIAkJcHJpbnRmICgiICAgICAgICAgICAgQ2FwYWNpdHk6ICVsZC4lbGQgTUIgPSAlbGQuJWxkIEdCICglcWQgeCAlbGQpXG4iLAogCQkJbWJfcXVvdCwgbWJfcmVtLAogCQkJZ2JfcXVvdCwgZ2JfcmVtLApAQCAtMjEyLDcgKzIxMiw4IEBACiAjaWYgZGVmaW5lZChDT05GSUdfTUFDX1BBUlRJVElPTikgfHwgXAogICAgIGRlZmluZWQoQ09ORklHX0RPU19QQVJUSVRJT04pIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR19JU09fUEFSVElUSU9OKSB8fCBcCi0gICAgZGVmaW5lZChDT05GSUdfQU1JR0FfUEFSVElUSU9OKQorICAgIGRlZmluZWQoQ09ORklHX0FNSUdBX1BBUlRJVElPTikgfHwgXAorICAgIGRlZmluZWQoQ09ORklHX0VGSV9QQVJUSVRJT04pCiAKIHZvaWQgaW5pdF9wYXJ0IChibG9ja19kZXZfZGVzY190ICogZGV2X2Rlc2MpCiB7CkBAIC0yMzAsNiArMjMxLDE0IEBACiAJfQogI2VuZGlmCiAKKy8qIG11c3QgYmUgcGxhY2VkIGJlZm9yZSBET1MgcGFydGl0aW9uIGRldGVjdGlvbiAqLworI2lmZGVmIENPTkZJR19FRklfUEFSVElUSU9OCisJaWYgKHRlc3RfcGFydF9lZmkoZGV2X2Rlc2MpID09IDApIHsKKwkJZGV2X2Rlc2MtPnBhcnRfdHlwZSA9IFBBUlRfVFlQRV9FRkk7CisJCXJldHVybjsKKwl9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19ET1NfUEFSVElUSU9OCiAJaWYgKHRlc3RfcGFydF9kb3MoZGV2X2Rlc2MpID09IDApIHsKIAkJZGV2X2Rlc2MtPnBhcnRfdHlwZSA9IFBBUlRfVFlQRV9ET1M7CkBAIC0yODYsNiArMjk1LDE1IEBACiAJICAgIH0KIAkgICAgYnJlYWs7CiAjZW5kaWYKKworI2lmZGVmIENPTkZJR19FRklfUEFSVElUSU9OCisJY2FzZSBQQVJUX1RZUEVfRUZJOgorCQlpZiAoZ2V0X3BhcnRpdGlvbl9pbmZvX2VmaShkZXZfZGVzYyxwYXJ0LGluZm8pID09IDApIHsKKwkJCVBSSU5URiAoIiMjIFZhbGlkIEVGSSBwYXJ0aXRpb24gZm91bmQgIyNcbiIpOworCQkJcmV0dXJuICgwKTsKKwkJfQorCQlicmVhazsKKyNlbmRpZgogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KQEAgLTM1NiwxNCArMzc0LDIzIEBACiAJICAgIHByaW50X3BhcnRfYW1pZ2EgKGRldl9kZXNjKTsKIAkgICAgcmV0dXJuOwogI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfRUZJX1BBUlRJVElPTgorCWNhc2UgUEFSVF9UWVBFX0VGSToKKwkJUFJJTlRGICgiIyMgVGVzdGluZyBmb3IgdmFsaWQgRUZJIHBhcnRpdGlvbiAjI1xuIik7CisJCXByaW50X3BhcnRfaGVhZGVyICgiRUZJIiwgZGV2X2Rlc2MpOworCQlwcmludF9wYXJ0X2VmaSAoZGV2X2Rlc2MpOworCQlyZXR1cm47CisjZW5kaWYKIAl9CiAJcHV0cyAoIiMjIFVua25vd24gcGFydGl0aW9uIHRhYmxlXG4iKTsKIH0KIAogCi0jZWxzZQkvKiBuZWl0aGVyIE1BQyBub3IgRE9TIG5vciBJU08gcGFydGl0aW9uIGNvbmZpZ3VyZWQgKi8KKyNlbHNlCS8qIG5laXRoZXIgTUFDIG5vciBET1Mgbm9yIElTTyBub3IgQU1JR0Egbm9yIEVGSSBwYXJ0aXRpb24gY29uZmlndXJlZCAqLwogIyBlcnJvciBuZWl0aGVyIENPTkZJR19NQUNfUEFSVElUSU9OIG5vciBDT05GSUdfRE9TX1BBUlRJVElPTgotIyBlcnJvciBub3IgQ09ORklHX0lTT19QQVJUSVRJT04gY29uZmlndXJlZCEKKyMgZXJyb3Igbm9yIENPTkZJR19JU09fUEFSVElUSU9OIG5vciBDT05GSUdfQU1JR0FfUEFSVElUSU9OCisjIGVycm9yIG5vciBDT05GSUdfRUZJX1BBUlRJVElPTiBjb25maWd1cmVkIQogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZGlzay9wYXJ0X2VmaS5jIGIvZGlzay9wYXJ0X2VmaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMTg4ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9kaXNrL3BhcnRfZWZpLmMKQEAgLTAsMCArMSw0MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggUnVnZ2VkQ29tLCBJbmMuCisgKiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKy8qCisgKiBQcm9ibGVtcyB3aXRoIENPTkZJR19TWVNfNjRCSVRfTEJBOgorICoKKyAqIHN0cnVjdCBkaXNrX3BhcnRpdGlvbi5zdGFydCBpbiBpbmNsdWRlL3BhcnQuaCBpcyBzaXplZCBhcyB1bG9uZy4KKyAqIFdoZW4gQ09ORklHX1NZU182NEJJVF9MQkEgaXMgYWN0aXZhdGVkLCBsYmFpbnRfdCBjaGFuZ2VzIGZyb20gdWxvbmcgdG8gdWludDY0X3QuCisgKiBGb3Igbm93LCBpdCBpcyBjYXN0IGJhY2sgdG8gdWxvbmcgYXQgYXNzaWdubWVudC4KKyAqCisgKiBUaGlzIGxpbWl0cyB0aGUgbWF4aW11bSBzaXplIG9mIGFkZHJlc3NhYmxlIHN0b3JhZ2UgdG8gPCAyIFRlcnJhIEJ5dGVzCisgKi8KKyNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxjb21tYW5kLmg+CisjaW5jbHVkZSA8aWRlLmg+CisjaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVkZSAicGFydF9lZmkuaCIKKworI2lmIChkZWZpbmVkKENPTkZJR19DTURfSURFKSB8fCBcCisgICAgIGRlZmluZWQoQ09ORklHX0NNRF9TQVRBKSB8fCBcCisgICAgIGRlZmluZWQoQ09ORklHX0NNRF9TQ1NJKSB8fCBcCisgICAgIGRlZmluZWQoQ09ORklHX0NNRF9VU0IpIHx8IFwKKyAgICAgZGVmaW5lZChDT05GSUdfTU1DKSB8fCBcCisgICAgIGRlZmluZWQoQ09ORklHX1NZU1RFTUFDRSkgKSAmJiBkZWZpbmVkKENPTkZJR19FRklfUEFSVElUSU9OKQorCisvKiBDb252ZXJ0IGNoYXJbMl0gaW4gbGl0dGxlIGVuZGlhbiBmb3JtYXQgdG8gdGhlIGhvc3QgZm9ybWF0IGludGVnZXIKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBzaG9ydCBsZTE2X3RvX2ludCh1bnNpZ25lZCBjaGFyICpsZTE2KQoreworCXJldHVybiAoKGxlMTZbMV0gPDwgOCkgKyBsZTE2WzBdKTsKK30KKworLyogQ29udmVydCBjaGFyWzRdIGluIGxpdHRsZSBlbmRpYW4gZm9ybWF0IHRvIHRoZSBob3N0IGZvcm1hdCBpbnRlZ2VyCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBsZTMyX3RvX2ludCh1bnNpZ25lZCBjaGFyICpsZTMyKQoreworCXJldHVybiAoKGxlMzJbM10gPDwgMjQpICsgKGxlMzJbMl0gPDwgMTYpICsgKGxlMzJbMV0gPDwgOCkgKyBsZTMyWzBdKTsKK30KKworLyogQ29udmVydCBjaGFyWzhdIGluIGxpdHRsZSBlbmRpYW4gZm9ybWF0IHRvIHRoZSBob3N0IGZvcm1hdCBpbnRlZ2VyCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBsb25nIGxlNjRfdG9faW50KHVuc2lnbmVkIGNoYXIgKmxlNjQpCit7CisJcmV0dXJuICgoKHVuc2lnbmVkIGxvbmcgbG9uZylsZTY0WzddIDw8IDU2KSArCisJCSgodW5zaWduZWQgbG9uZyBsb25nKWxlNjRbNl0gPDwgNDgpICsKKwkJKCh1bnNpZ25lZCBsb25nIGxvbmcpbGU2NFs1XSA8PCA0MCkgKworCQkoKHVuc2lnbmVkIGxvbmcgbG9uZylsZTY0WzRdIDw8IDMyKSArCisJCSgodW5zaWduZWQgbG9uZyBsb25nKWxlNjRbM10gPDwgMjQpICsKKwkJKCh1bnNpZ25lZCBsb25nIGxvbmcpbGU2NFsyXSA8PCAxNikgKworCQkoKHVuc2lnbmVkIGxvbmcgbG9uZylsZTY0WzFdIDw8IDgpICsKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZylsZTY0WzBdKTsKK30KKworLyoqCisgKiBlZmlfY3JjMzIoKSAtIEVGSSB2ZXJzaW9uIG9mIGNyYzMyIGZ1bmN0aW9uCisgKiBAYnVmOiBidWZmZXIgdG8gY2FsY3VsYXRlIGNyYzMyIG9mCisgKiBAbGVuIC0gbGVuZ3RoIG9mIGJ1ZgorICoKKyAqIERlc2NyaXB0aW9uOiBSZXR1cm5zIEVGSS1zdHlsZSBDUkMzMiB2YWx1ZSBmb3IgQGJ1ZgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZWZpX2NyYzMyKGNvbnN0IHZvaWQgKmJ1ZiwgdW5zaWduZWQgbG9uZyBsZW4pCit7CisJcmV0dXJuIGNyYzMyKDAsIGJ1ZiwgbGVuKTsKK30KKworLyoKKyAqIFByaXZhdGUgZnVuY3Rpb24gcHJvdG90eXBlcworICovCisKK3N0YXRpYyBpbnQgcG1icl9wYXJ0X3ZhbGlkKHN0cnVjdCBwYXJ0aXRpb24gKnBhcnQpOworc3RhdGljIGludCBpc19wbWJyX3ZhbGlkKGxlZ2FjeV9tYnIgKiBtYnIpOworCitzdGF0aWMgaW50IGlzX2dwdF92YWxpZChibG9ja19kZXZfZGVzY190ICogZGV2X2Rlc2MsIHVuc2lnbmVkIGxvbmcgbG9uZyBsYmEsCisJCQkJZ3B0X2hlYWRlciAqIHBncHRfaGVhZCwgZ3B0X2VudHJ5ICoqIHBncHRfcHRlKTsKKworc3RhdGljIGdwdF9lbnRyeSAqYWxsb2NfcmVhZF9ncHRfZW50cmllcyhibG9ja19kZXZfZGVzY190ICogZGV2X2Rlc2MsCisJCQkJZ3B0X2hlYWRlciAqIHBncHRfaGVhZCk7CisKK3N0YXRpYyBpbnQgaXNfcHRlX3ZhbGlkKGdwdF9lbnRyeSAqIHB0ZSk7CisKKy8qCisgKiBQdWJsaWMgRnVuY3Rpb25zIChpbmNsdWRlL3BhcnQuaCkKKyAqLworCit2b2lkIHByaW50X3BhcnRfZWZpKGJsb2NrX2Rldl9kZXNjX3QgKiBkZXZfZGVzYykKK3sKKwlncHRfaGVhZGVyIGdwdF9oZWFkOworCWdwdF9lbnRyeSAqKnBncHRfcHRlID0gTlVMTDsKKwlpbnQgaSA9IDA7CisKKwlpZiAoIWRldl9kZXNjKSB7CisJCXByaW50ZigiJXM6IEludmFsaWQgQXJndW1lbnQocylcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybjsKKwl9CisJLyogVGhpcyBmdW5jdGlvbiB2YWxpZGF0ZXMgQU5EIGZpbGxzIGluIHRoZSBHUFQgaGVhZGVyIGFuZCBQVEUgKi8KKwlpZiAoaXNfZ3B0X3ZhbGlkKGRldl9kZXNjLCBHUFRfUFJJTUFSWV9QQVJUSVRJT05fVEFCTEVfTEJBLAorCQkJICYoZ3B0X2hlYWQpLCBwZ3B0X3B0ZSkgIT0gMSkgeworCQlwcmludGYoIiVzOiAqKiogRVJST1I6IEludmFsaWQgR1BUICoqKlxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuOworCX0KKworCWRlYnVnKCIlczogZ3B0LWVudHJ5IGF0IDB4JTA4WFxuIiwgX19GVU5DVElPTl9fLCAodW5zaWduZWQgaW50KSpwZ3B0X3B0ZSk7CisKKwlwcmludGYoIlBhcnQgIFN0YXJ0IExCQSAgRW5kIExCQVxuIik7CisJZm9yIChpID0gMDsgaSA8IGxlMzJfdG9faW50KGdwdF9oZWFkLm51bV9wYXJ0aXRpb25fZW50cmllcyk7IGkrKykgeworCisJCWlmIChpc19wdGVfdmFsaWQoJigqcGdwdF9wdGUpW2ldKSkgeworCQkJcHJpbnRmKCIlcyVkICAweCVsbFggICAgMHglbGxYXG4iLCBHUFRfRU5UUllfTkFNRSwKKwkJCQkoaSArIDEpLAorCQkJCWxlNjRfdG9faW50KCgqcGdwdF9wdGUpW2ldLnN0YXJ0aW5nX2xiYSksCisJCQkJbGU2NF90b19pbnQoKCpwZ3B0X3B0ZSlbaV0uZW5kaW5nX2xiYSkpOworCQl9IGVsc2UgeworCQkJYnJlYWs7CS8qIFN0b3AgYXQgdGhlIGZpcnN0IG5vbiB2YWxpZCBQVEUgKi8KKwkJfQorCX0KKworCS8qIFJlbWVtYmVyIHRvIGZyZWUgcHRlICovCisJaWYgKCpwZ3B0X3B0ZSAhPSBOVUxMKSB7CisJCWRlYnVnKCIlczogRnJlZWluZyBwZ3B0X3B0ZVxuIiwgX19GVU5DVElPTl9fKTsKKwkJZnJlZSgqcGdwdF9wdGUpOworCX0KKwlyZXR1cm47Cit9CisKK2ludCBnZXRfcGFydGl0aW9uX2luZm9fZWZpKGJsb2NrX2Rldl9kZXNjX3QgKiBkZXZfZGVzYywgaW50IHBhcnQsCisJCQkJZGlza19wYXJ0aXRpb25fdCAqIGluZm8pCit7CisJZ3B0X2hlYWRlciBncHRfaGVhZDsKKwlncHRfZW50cnkgKipwZ3B0X3B0ZSA9IE5VTEw7CisKKwkvKiAicGFydCIgYXJndW1lbnQgbXVzdCBiZSBhdCBsZWFzdCAxICovCisJaWYgKCFkZXZfZGVzYyB8fCAhaW5mbyB8fCBwYXJ0IDwgMSkgeworCQlwcmludGYoIiVzOiBJbnZhbGlkIEFyZ3VtZW50KHMpXG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLTE7CisJfQorCisJLyogVGhpcyBmdW5jdGlvbiB2YWxpZGF0ZXMgQU5EIGZpbGxzIGluIHRoZSBHUFQgaGVhZGVyIGFuZCBQVEUgKi8KKwlpZiAoaXNfZ3B0X3ZhbGlkKGRldl9kZXNjLCBHUFRfUFJJTUFSWV9QQVJUSVRJT05fVEFCTEVfTEJBLAorCQkJJihncHRfaGVhZCksIHBncHRfcHRlKSAhPSAxKSB7CisJCXByaW50ZigiJXM6ICoqKiBFUlJPUjogSW52YWxpZCBHUFQgKioqXG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gLTE7CisJfQorCisJLyogVGhlIHVsb25nIGNhc3RpbmcgbGltaXRzIHRoZSBtYXhpbXVtIGRpc2sgc2l6ZSB0byAyIFRCICovCisJaW5mby0+c3RhcnQgPSAodWxvbmcpIGxlNjRfdG9faW50KCgqcGdwdF9wdGUpW3BhcnQgLSAxXS5zdGFydGluZ19sYmEpOworCWluZm8tPnNpemUgPSAodWxvbmcpIGxlNjRfdG9faW50KCgqcGdwdF9wdGUpW3BhcnQgLSAxXS5lbmRpbmdfbGJhKSAtIGluZm8tPnN0YXJ0OworCWluZm8tPmJsa3N6ID0gR1BUX0JMT0NLX1NJWkU7CisKKwlzcHJpbnRmKChjaGFyICopaW5mby0+bmFtZSwgIiVzJWRcbiIsIEdQVF9FTlRSWV9OQU1FLCBwYXJ0KTsKKwlzcHJpbnRmKChjaGFyICopaW5mby0+dHlwZSwgIlUtQm9vdCIpOworCisJZGVidWcoIiVzOiBzdGFydCAweCVsWCwgc2l6ZSAweCVsWCwgbmFtZSAlcyIsIF9fRlVOQ1RJT05fXywKKwkJaW5mby0+c3RhcnQsIGluZm8tPnNpemUsIGluZm8tPm5hbWUpOworCisJLyogUmVtZW1iZXIgdG8gZnJlZSBwdGUgKi8KKwlpZiAoKnBncHRfcHRlICE9IE5VTEwpIHsKKwkJZGVidWcoIiVzOiBGcmVlaW5nIHBncHRfcHRlXG4iLCBfX0ZVTkNUSU9OX18pOworCQlmcmVlKCpwZ3B0X3B0ZSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQgdGVzdF9wYXJ0X2VmaShibG9ja19kZXZfZGVzY190ICogZGV2X2Rlc2MpCit7CisJbGVnYWN5X21iciBsZWdhY3ltYnI7CisKKwkvKiBSZWFkIGxlZ2FjeSBNQlIgZnJvbSBibG9jayAwIGFuZCB2YWxpZGF0ZSBpdCAqLworCWlmICgoZGV2X2Rlc2MtPmJsb2NrX3JlYWQoZGV2X2Rlc2MtPmRldiwgMCwgMSwgKHVsb25nICopICYgbGVnYWN5bWJyKSAhPSAxKQorCQl8fCAoaXNfcG1icl92YWxpZCgmbGVnYWN5bWJyKSAhPSAxKSkgeworCQlyZXR1cm4gLTE7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogUHJpdmF0ZSBmdW5jdGlvbnMKKyAqLworLyoKKyAqIHBtYnJfcGFydF92YWxpZCgpOiBDaGVjayBmb3IgRUZJIHBhcnRpdGlvbiBzaWduYXR1cmUKKyAqCisgKiBSZXR1cm5zOiAxIGlmIEVGSSBHUFQgcGFydGl0aW9uIHR5cGUgaXMgZm91bmQuCisgKi8KK3N0YXRpYyBpbnQgcG1icl9wYXJ0X3ZhbGlkKHN0cnVjdCBwYXJ0aXRpb24gKnBhcnQpCit7CisJaWYgKHBhcnQtPnN5c19pbmQgPT0gRUZJX1BNQlJfT1NUWVBFX0VGSV9HUFQgJiYKKwkJbGUzMl90b19pbnQocGFydC0+c3RhcnRfc2VjdCkgPT0gMVVMKSB7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogaXNfcG1icl92YWxpZCgpOiB0ZXN0IFByb3RlY3RpdmUgTUJSIGZvciB2YWxpZGl0eQorICoKKyAqIFJldHVybnM6IDEgaWYgUE1CUiBpcyB2YWxpZCwgMCBvdGhlcndpc2UuCisgKiBWYWxpZGl0eSBkZXBlbmRzIG9uIHR3byB0aGluZ3M6CisgKiAgMSkgTVNET1Mgc2lnbmF0dXJlIGlzIGluIHRoZSBsYXN0IHR3byBieXRlcyBvZiB0aGUgTUJSCisgKiAgMikgT25lIHBhcnRpdGlvbiBvZiB0eXBlIDB4RUUgaXMgZm91bmQsIGNoZWNrZWQgYnkgcG1icl9wYXJ0X3ZhbGlkKCkKKyAqLworc3RhdGljIGludCBpc19wbWJyX3ZhbGlkKGxlZ2FjeV9tYnIgKiBtYnIpCit7CisJaW50IGkgPSAwOworCisJaWYgKCFtYnIgfHwgbGUxNl90b19pbnQobWJyLT5zaWduYXR1cmUpICE9IE1TRE9TX01CUl9TSUdOQVRVUkUpIHsKKwkJcmV0dXJuIDA7CisJfQorCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlpZiAocG1icl9wYXJ0X3ZhbGlkKCZtYnItPnBhcnRpdGlvbl9yZWNvcmRbaV0pKSB7CisJCQlyZXR1cm4gMTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBpc19ncHRfdmFsaWQoKSAtIHRlc3RzIG9uZSBHUFQgaGVhZGVyIGFuZCBQVEVzIGZvciB2YWxpZGl0eQorICoKKyAqIGxiYSBpcyB0aGUgbG9naWNhbCBibG9jayBhZGRyZXNzIG9mIHRoZSBHUFQgaGVhZGVyIHRvIHRlc3QKKyAqIGdwdCBpcyBhIEdQVCBoZWFkZXIgcHRyLCBmaWxsZWQgb24gcmV0dXJuLgorICogcHRlcyBpcyBhIFBURXMgcHRyLCBmaWxsZWQgb24gcmV0dXJuLgorICoKKyAqIERlc2NyaXB0aW9uOiByZXR1cm5zIDEgaWYgdmFsaWQsICAwIG9uIGVycm9yLgorICogSWYgdmFsaWQsIHJldHVybnMgcG9pbnRlcnMgdG8gUFRFcy4KKyAqLworc3RhdGljIGludCBpc19ncHRfdmFsaWQoYmxvY2tfZGV2X2Rlc2NfdCAqIGRldl9kZXNjLCB1bnNpZ25lZCBsb25nIGxvbmcgbGJhLAorCQkJZ3B0X2hlYWRlciAqIHBncHRfaGVhZCwgZ3B0X2VudHJ5ICoqIHBncHRfcHRlKQoreworCXVuc2lnbmVkIGNoYXIgY3JjMzJfYmFja3VwWzRdID0geyAwIH07CisJdW5zaWduZWQgbG9uZyBjYWxjX2NyYzMyOworCXVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0bGJhOworCisJaWYgKCFkZXZfZGVzYyB8fCAhcGdwdF9oZWFkKSB7CisJCXByaW50ZigiJXM6IEludmFsaWQgQXJndW1lbnQocylcbiIsIF9fRlVOQ1RJT05fXyk7CisJCXJldHVybiAwOworCX0KKworCS8qIFJlYWQgR1BUIEhlYWRlciBmcm9tIGRldmljZSAqLworCWlmIChkZXZfZGVzYy0+YmxvY2tfcmVhZChkZXZfZGVzYy0+ZGV2LCBsYmEsIDEsIHBncHRfaGVhZCkgIT0gMSkgeworCQlwcmludGYoIioqKiBFUlJPUjogQ2FuJ3QgcmVhZCBHUFQgaGVhZGVyICoqKlxuIik7CisJCXJldHVybiAwOworCX0KKworCS8qIENoZWNrIHRoZSBHUFQgaGVhZGVyIHNpZ25hdHVyZSAqLworCWlmIChsZTY0X3RvX2ludChwZ3B0X2hlYWQtPnNpZ25hdHVyZSkgIT0gR1BUX0hFQURFUl9TSUdOQVRVUkUpIHsKKwkJcHJpbnRmKCJHVUlEIFBhcnRpdGlvbiBUYWJsZSBIZWFkZXIgc2lnbmF0dXJlIGlzIHdyb25nOiIKKwkJCSIweCVsbFggIT0gMHglbGxYXG4iLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylsZTY0X3RvX2ludChwZ3B0X2hlYWQtPnNpZ25hdHVyZSksCisJCQkodW5zaWduZWQgbG9uZyBsb25nKUdQVF9IRUFERVJfU0lHTkFUVVJFKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogQ2hlY2sgdGhlIEdVSUQgUGFydGl0aW9uIFRhYmxlIENSQyAqLworCW1lbWNweShjcmMzMl9iYWNrdXAsIHBncHRfaGVhZC0+aGVhZGVyX2NyYzMyLCBzaXplb2YoY3JjMzJfYmFja3VwKSk7CisJbWVtc2V0KHBncHRfaGVhZC0+aGVhZGVyX2NyYzMyLCAwLCBzaXplb2YocGdwdF9oZWFkLT5oZWFkZXJfY3JjMzIpKTsKKworCWNhbGNfY3JjMzIgPSBlZmlfY3JjMzIoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilwZ3B0X2hlYWQsCisJCWxlMzJfdG9faW50KHBncHRfaGVhZC0+aGVhZGVyX3NpemUpKTsKKworCW1lbWNweShwZ3B0X2hlYWQtPmhlYWRlcl9jcmMzMiwgY3JjMzJfYmFja3VwLCBzaXplb2YoY3JjMzJfYmFja3VwKSk7CisKKwlpZiAoY2FsY19jcmMzMiAhPSBsZTMyX3RvX2ludChjcmMzMl9iYWNrdXApKSB7CisJCXByaW50ZigiR1VJRCBQYXJ0aXRpb24gVGFibGUgSGVhZGVyIENSQyBpcyB3cm9uZzoiCisJCQkiMHglMDhsWCAhPSAweCUwOGxYXG4iLAorCQkJbGUzMl90b19pbnQoY3JjMzJfYmFja3VwKSwgY2FsY19jcmMzMik7CisJCXJldHVybiAwOworCX0KKworCS8qIENoZWNrIHRoYXQgdGhlIG15X2xiYSBlbnRyeSBwb2ludHMgdG8gdGhlIExCQSB0aGF0IGNvbnRhaW5zIHRoZSBHUFQgKi8KKwlpZiAobGU2NF90b19pbnQocGdwdF9oZWFkLT5teV9sYmEpICE9IGxiYSkgeworCQlwcmludGYoIkdQVDogbXlfbGJhIGluY29ycmVjdDogJWxsWCAhPSAlbGxYXG4iLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylsZTY0X3RvX2ludChwZ3B0X2hlYWQtPm15X2xiYSksCisJCQkodW5zaWduZWQgbG9uZyBsb25nKWxiYSk7CisJCXJldHVybiAwOworCX0KKworCS8qIENoZWNrIHRoZSBmaXJzdF91c2FibGVfbGJhIGFuZCBsYXN0X3VzYWJsZV9sYmEgYXJlIHdpdGhpbiB0aGUgZGlzay4gKi8KKwlsYXN0bGJhID0gKHVuc2lnbmVkIGxvbmcgbG9uZylkZXZfZGVzYy0+bGJhOworCWlmIChsZTY0X3RvX2ludChwZ3B0X2hlYWQtPmZpcnN0X3VzYWJsZV9sYmEpID4gbGFzdGxiYSkgeworCQlwcmludGYoIkdQVDogZmlyc3RfdXNhYmxlX2xiYSBpbmNvcnJlY3Q6ICVsbFggPiAlbGxYXG4iLAorCQkJbGU2NF90b19pbnQocGdwdF9oZWFkLT5maXJzdF91c2FibGVfbGJhKSwgbGFzdGxiYSk7CisJCXJldHVybiAwOworCX0KKwlpZiAobGU2NF90b19pbnQocGdwdF9oZWFkLT5sYXN0X3VzYWJsZV9sYmEpID4gbGFzdGxiYSkgeworCQlwcmludGYoIkdQVDogbGFzdF91c2FibGVfbGJhIGluY29ycmVjdDogJWxsWCA+ICVsbFhcbiIsCisJCQlsZTY0X3RvX2ludChwZ3B0X2hlYWQtPmxhc3RfdXNhYmxlX2xiYSksIGxhc3RsYmEpOworCQlyZXR1cm4gMDsKKwl9CisKKwlkZWJ1ZygiR1BUOiBmaXJzdF91c2FibGVfbGJhOiAlbGxYIGxhc3RfdXNhYmxlX2xiYSAlbGxYIGxhc3QgbGJhICVsbFhcbiIsCisJCWxlNjRfdG9faW50KHBncHRfaGVhZC0+Zmlyc3RfdXNhYmxlX2xiYSksCisJCWxlNjRfdG9faW50KHBncHRfaGVhZC0+bGFzdF91c2FibGVfbGJhKSwgbGFzdGxiYSk7CisKKwkvKiBSZWFkIGFuZCBhbGxvY2F0ZSBQYXJ0aXRpb24gVGFibGUgRW50cmllcyAqLworCSpwZ3B0X3B0ZSA9IGFsbG9jX3JlYWRfZ3B0X2VudHJpZXMoZGV2X2Rlc2MsIHBncHRfaGVhZCk7CisJaWYgKCpwZ3B0X3B0ZSA9PSBOVUxMKSB7CisJCXByaW50ZigiR1BUOiBGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBQVEVcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKiBDaGVjayB0aGUgR1VJRCBQYXJ0aXRpb24gVGFibGUgRW50cnkgQXJyYXkgQ1JDICovCisJY2FsY19jcmMzMiA9IGVmaV9jcmMzMigoY29uc3QgdW5zaWduZWQgY2hhciAqKSpwZ3B0X3B0ZSwKKwkJbGUzMl90b19pbnQocGdwdF9oZWFkLT5udW1fcGFydGl0aW9uX2VudHJpZXMpICoKKwkJbGUzMl90b19pbnQocGdwdF9oZWFkLT5zaXplb2ZfcGFydGl0aW9uX2VudHJ5KSk7CisKKwlpZiAoY2FsY19jcmMzMiAhPSBsZTMyX3RvX2ludChwZ3B0X2hlYWQtPnBhcnRpdGlvbl9lbnRyeV9hcnJheV9jcmMzMikpIHsKKwkJcHJpbnRmKCJHVUlEIFBhcnRpdGlvbiBUYWJsZSBFbnRyeSBBcnJheSBDUkMgaXMgd3Jvbmc6IgorCQkJIjB4JTA4bFggIT0gMHglMDhsWFxuIiwKKwkJCWxlMzJfdG9faW50KHBncHRfaGVhZC0+cGFydGl0aW9uX2VudHJ5X2FycmF5X2NyYzMyKSwKKwkJCWNhbGNfY3JjMzIpOworCisJCWlmICgqcGdwdF9wdGUgIT0gTlVMTCkgeworCQkJZnJlZSgqcGdwdF9wdGUpOworCQl9CisJCXJldHVybiAwOworCX0KKworCS8qIFdlJ3JlIGRvbmUsIGFsbCdzIHdlbGwgKi8KKwlyZXR1cm4gMTsKK30KKworLyoqCisgKiBhbGxvY19yZWFkX2dwdF9lbnRyaWVzKCk6IHJlYWRzIHBhcnRpdGlvbiBlbnRyaWVzIGZyb20gZGlzaworICogQGRldl9kZXNjCisgKiBAZ3B0IC0gR1BUIGhlYWRlcgorICoKKyAqIERlc2NyaXB0aW9uOiBSZXR1cm5zIHB0ZXMgb24gc3VjY2VzcywgIE5VTEwgb24gZXJyb3IuCisgKiBBbGxvY2F0ZXMgc3BhY2UgZm9yIFBURXMgYmFzZWQgb24gaW5mb3JtYXRpb24gZm91bmQgaW4gQGdwdC4KKyAqIE5vdGVzOiByZW1lbWJlciB0byBmcmVlIHB0ZSB3aGVuIHlvdSdyZSBkb25lIQorICovCitzdGF0aWMgZ3B0X2VudHJ5ICphbGxvY19yZWFkX2dwdF9lbnRyaWVzKGJsb2NrX2Rldl9kZXNjX3QgKiBkZXZfZGVzYywKKwkJCQkJIGdwdF9oZWFkZXIgKiBwZ3B0X2hlYWQpCit7CisJc2l6ZV90IGNvdW50ID0gMDsKKwlncHRfZW50cnkgKnB0ZSA9IE5VTEw7CisKKwlpZiAoIWRldl9kZXNjIHx8ICFwZ3B0X2hlYWQpIHsKKwkJcHJpbnRmKCIlczogSW52YWxpZCBBcmd1bWVudChzKVxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJY291bnQgPSBsZTMyX3RvX2ludChwZ3B0X2hlYWQtPm51bV9wYXJ0aXRpb25fZW50cmllcykgKgorCQlsZTMyX3RvX2ludChwZ3B0X2hlYWQtPnNpemVvZl9wYXJ0aXRpb25fZW50cnkpOworCisJZGVidWcoIiVzOiBjb3VudCA9ICVsdSAqICVsdSA9ICV1XG4iLCBfX0ZVTkNUSU9OX18sCisJCWxlMzJfdG9faW50KHBncHRfaGVhZC0+bnVtX3BhcnRpdGlvbl9lbnRyaWVzKSwKKwkJbGUzMl90b19pbnQocGdwdF9oZWFkLT5zaXplb2ZfcGFydGl0aW9uX2VudHJ5KSwgY291bnQpOworCisJLyogQWxsb2NhdGUgbWVtb3J5IGZvciBQVEUsIHJlbWVtYmVyIHRvIEZSRUUgKi8KKwlpZiAoY291bnQgIT0gMCkgeworCQlwdGUgPSBtYWxsb2MoY291bnQpOworCX0KKworCWlmIChjb3VudCA9PSAwIHx8IHB0ZSA9PSBOVUxMKSB7CisJCXByaW50ZigiJXM6IEVSUk9SOiBDYW4ndCBhbGxvY2F0ZSAweCVYIGJ5dGVzIGZvciBHUFQgRW50cmllc1xuIiwKKwkJCV9fRlVOQ1RJT05fXywgY291bnQpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwkvKiBSZWFkIEdQVCBFbnRyaWVzIGZyb20gZGV2aWNlICovCisJaWYgKGRldl9kZXNjLT5ibG9ja19yZWFkIChkZXZfZGVzYy0+ZGV2LAorCQkodW5zaWduZWQgbG9uZylsZTY0X3RvX2ludChwZ3B0X2hlYWQtPnBhcnRpdGlvbl9lbnRyeV9sYmEpLAorCQkobGJhaW50X3QpIChjb3VudCAvIEdQVF9CTE9DS19TSVpFKSwgcHRlKQorCQkhPSAoY291bnQgLyBHUFRfQkxPQ0tfU0laRSkpIHsKKworCQlwcmludGYoIioqKiBFUlJPUjogQ2FuJ3QgcmVhZCBHUFQgRW50cmllcyAqKipcbiIpOworCQlmcmVlKHB0ZSk7CisJCXJldHVybiBOVUxMOworCX0KKwlyZXR1cm4gcHRlOworfQorCisvKioKKyAqIGlzX3B0ZV92YWxpZCgpOiB2YWxpZGF0ZXMgYSBzaW5nbGUgUGFydGl0aW9uIFRhYmxlIEVudHJ5CisgKiBAZ3B0X2VudHJ5IC0gUG9pbnRlciB0byBhIHNpbmdsZSBQYXJ0aXRpb24gVGFibGUgRW50cnkKKyAqCisgKiBEZXNjcmlwdGlvbjogcmV0dXJucyAxIGlmIHZhbGlkLCAgMCBvbiBlcnJvci4KKyAqLworc3RhdGljIGludCBpc19wdGVfdmFsaWQoZ3B0X2VudHJ5ICogcHRlKQoreworCWVmaV9ndWlkX3QgdW51c2VkX2d1aWQ7CisKKwlpZiAoIXB0ZSkgeworCQlwcmludGYoIiVzOiBJbnZhbGlkIEFyZ3VtZW50KHMpXG4iLCBfX0ZVTkNUSU9OX18pOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKiBPbmx5IG9uZSB2YWxpZGF0aW9uIGZvciBub3c6CisJICogVGhlIEdVSUQgUGFydGl0aW9uIFR5cGUgIT0gVW51c2VkIEVudHJ5IChBTEwtWkVSTykKKwkgKi8KKwltZW1zZXQodW51c2VkX2d1aWQuYiwgMCwgc2l6ZW9mKHVudXNlZF9ndWlkLmIpKTsKKworCWlmIChtZW1jbXAocHRlLT5wYXJ0aXRpb25fdHlwZV9ndWlkLmIsIHVudXNlZF9ndWlkLmIsCisJCXNpemVvZih1bnVzZWRfZ3VpZC5iKSkgPT0gMCkgeworCisJCWRlYnVnKCIlczogRm91bmQgYW4gdW51c2VkIFBURSBHVUlEIGF0IDB4JTA4WFxuIiwgX19GVU5DVElPTl9fLAorCQkodW5zaWduZWQgaW50KXB0ZSk7CisKKwkJcmV0dXJuIDA7CisJfSBlbHNlIHsKKwkJcmV0dXJuIDE7CisJfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9kaXNrL3BhcnRfZWZpLmggYi9kaXNrL3BhcnRfZWZpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFkOTA1ZAotLS0gL2Rldi9udWxsCisrKyBiL2Rpc2svcGFydF9lZmkuaApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBSdWdnZWRDb20sIEluYy4KKyAqIFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCSBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworLyoKKyAqIFNlZSBhbHNvIGxpbnV4L2ZzL3BhcnRpdGlvbnMvZWZpLmgKKyAqCisgKiBFRkkgR1VJRCBQYXJ0aXRpb24gVGFibGUKKyAqIFBlciBJbnRlbCBFRkkgU3BlY2lmaWNhdGlvbiB2MS4wMgorICogaHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vdGVjaG5vbG9neS9lZmkvZWZpLmh0bQorKi8KKworI2lmbmRlZiBfRElTS19QQVJUX0VGSV9ICisjZGVmaW5lIF9ESVNLX1BBUlRfRUZJX0gKKworI2RlZmluZSBNU0RPU19NQlJfU0lHTkFUVVJFIDB4QUE1NQorI2RlZmluZSBFRklfUE1CUl9PU1RZUEVfRUZJIDB4RUYKKyNkZWZpbmUgRUZJX1BNQlJfT1NUWVBFX0VGSV9HUFQgMHhFRQorCisjZGVmaW5lIEdQVF9CTE9DS19TSVpFIDUxMgorI2RlZmluZSBHUFRfSEVBREVSX1NJR05BVFVSRSAweDU0NTI0MTUwMjA0OTQ2NDVVTEwKKyNkZWZpbmUgR1BUX0hFQURFUl9SRVZJU0lPTl9WMSAweDAwMDEwMDAwCisjZGVmaW5lIEdQVF9QUklNQVJZX1BBUlRJVElPTl9UQUJMRV9MQkEgMVVMTAorI2RlZmluZSBHUFRfRU5UUllfTkFNRSAiZ3B0IgorCisjZGVmaW5lIEVGSV9HVUlEKGEsYixjLGQwLGQxLGQyLGQzLGQ0LGQ1LGQ2LGQ3KSBcCisoKGVmaV9ndWlkX3QpIFwKK3t7IChhKSAmIDB4ZmYsICgoYSkgPj4gOCkgJiAweGZmLCAoKGEpID4+IDE2KSAmIDB4ZmYsICgoYSkgPj4gMjQpICYgMHhmZiwgXAorICAoYikgJiAweGZmLCAoKGIpID4+IDgpICYgMHhmZiwgXAorICAoYykgJiAweGZmLCAoKGMpID4+IDgpICYgMHhmZiwgXAorICAoZDApLCAoZDEpLCAoZDIpLCAoZDMpLCAoZDQpLCAoZDUpLCAoZDYpLCAoZDcpIH19KQorCisjZGVmaW5lIFBBUlRJVElPTl9TWVNURU1fR1VJRCBcCisgICAgRUZJX0dVSUQoIDB4QzEyQTczMjgsIDB4RjgxRiwgMHgxMWQyLCBcCisgICAgICAgICAgICAgIDB4QkEsIDB4NEIsIDB4MDAsIDB4QTAsIDB4QzksIDB4M0UsIDB4QzksIDB4M0IpCisjZGVmaW5lIExFR0FDWV9NQlJfUEFSVElUSU9OX0dVSUQgXAorICAgIEVGSV9HVUlEKCAweDAyNERFRTQxLCAweDMzRTcsIDB4MTFkMywgXAorICAgICAgICAgICAgICAweDlELCAweDY5LCAweDAwLCAweDA4LCAweEM3LCAweDgxLCAweEYzLCAweDlGKQorI2RlZmluZSBQQVJUSVRJT05fTVNGVF9SRVNFUlZFRF9HVUlEIFwKKyAgICBFRklfR1VJRCggMHhFM0M5RTMxNiwgMHgwQjVDLCAweDREQjgsIFwKKyAgICAgICAgICAgICAgMHg4MSwgMHg3RCwgMHhGOSwgMHgyRCwgMHhGMCwgMHgwMiwgMHgxNSwgMHhBRSkKKyNkZWZpbmUgUEFSVElUSU9OX0JBU0lDX0RBVEFfR1VJRCBcCisgICAgRUZJX0dVSUQoIDB4RUJEMEEwQTIsIDB4QjlFNSwgMHg0NDMzLCBcCisgICAgICAgICAgICAgIDB4ODcsIDB4QzAsIDB4NjgsIDB4QjYsIDB4QjcsIDB4MjYsIDB4OTksIDB4QzcpCisjZGVmaW5lIFBBUlRJVElPTl9MSU5VWF9SQUlEX0dVSUQgXAorICAgIEVGSV9HVUlEKCAweGExOWQ4ODBmLCAweDA1ZmMsIDB4NGQzYiwgXAorICAgICAgICAgICAgICAweGEwLCAweDA2LCAweDc0LCAweDNmLCAweDBmLCAweDg0LCAweDkxLCAweDFlKQorI2RlZmluZSBQQVJUSVRJT05fTElOVVhfU1dBUF9HVUlEIFwKKyAgICBFRklfR1VJRCggMHgwNjU3ZmQ2ZCwgMHhhNGFiLCAweDQzYzQsIFwKKyAgICAgICAgICAgICAgMHg4NCwgMHhlNSwgMHgwOSwgMHgzMywgMHhjOCwgMHg0YiwgMHg0ZiwgMHg0ZikKKyNkZWZpbmUgUEFSVElUSU9OX0xJTlVYX0xWTV9HVUlEIFwKKyAgICBFRklfR1VJRCggMHhlNmQ2ZDM3OSwgMHhmNTA3LCAweDQ0YzIsIFwKKyAgICAgICAgICAgICAgMHhhMiwgMHgzYywgMHgyMywgMHg4ZiwgMHgyYSwgMHgzZCwgMHhmOSwgMHgyOCkKKworLyogbGludXgvaW5jbHVkZS9lZmkuaCAqLwordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBlZmlfY2hhcjE2X3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKwl1bnNpZ25lZCBjaGFyIGJbMTZdOworfSBlZmlfZ3VpZF90OworCisvKiBiYXNlZCBvbiBsaW51eC9pbmNsdWRlL2dlbmhkLmggKi8KK3N0cnVjdCBwYXJ0aXRpb24geworCXVuc2lnbmVkIGNoYXIgYm9vdF9pbmQ7CS8qIDB4ODAgLSBhY3RpdmUgKi8KKwl1bnNpZ25lZCBjaGFyIGhlYWQ7CS8qIHN0YXJ0aW5nIGhlYWQgKi8KKwl1bnNpZ25lZCBjaGFyIHNlY3RvcjsJLyogc3RhcnRpbmcgc2VjdG9yICovCisJdW5zaWduZWQgY2hhciBjeWw7CS8qIHN0YXJ0aW5nIGN5bGluZGVyICovCisJdW5zaWduZWQgY2hhciBzeXNfaW5kOwkvKiBXaGF0IHBhcnRpdGlvbiB0eXBlICovCisJdW5zaWduZWQgY2hhciBlbmRfaGVhZDsJLyogZW5kIGhlYWQgKi8KKwl1bnNpZ25lZCBjaGFyIGVuZF9zZWN0b3I7CS8qIGVuZCBzZWN0b3IgKi8KKwl1bnNpZ25lZCBjaGFyIGVuZF9jeWw7CS8qIGVuZCBjeWxpbmRlciAqLworCXVuc2lnbmVkIGNoYXIgc3RhcnRfc2VjdFs0XTsJLyogc3RhcnRpbmcgc2VjdG9yIGNvdW50aW5nIGZyb20gMCAqLworCXVuc2lnbmVkIGNoYXIgbnJfc2VjdHNbNF07CS8qIG5yIG9mIHNlY3RvcnMgaW4gcGFydGl0aW9uICovCit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworLyogYmFzZWQgb24gbGludXgvZnMvcGFydGl0aW9ucy9lZmkuaCAqLwordHlwZWRlZiBzdHJ1Y3QgX2dwdF9oZWFkZXIgeworCXVuc2lnbmVkIGNoYXIgc2lnbmF0dXJlWzhdOworCXVuc2lnbmVkIGNoYXIgcmV2aXNpb25bNF07CisJdW5zaWduZWQgY2hhciBoZWFkZXJfc2l6ZVs0XTsKKwl1bnNpZ25lZCBjaGFyIGhlYWRlcl9jcmMzMls0XTsKKwl1bnNpZ25lZCBjaGFyIHJlc2VydmVkMVs0XTsKKwl1bnNpZ25lZCBjaGFyIG15X2xiYVs4XTsKKwl1bnNpZ25lZCBjaGFyIGFsdGVybmF0ZV9sYmFbOF07CisJdW5zaWduZWQgY2hhciBmaXJzdF91c2FibGVfbGJhWzhdOworCXVuc2lnbmVkIGNoYXIgbGFzdF91c2FibGVfbGJhWzhdOworCWVmaV9ndWlkX3QgZGlza19ndWlkOworCXVuc2lnbmVkIGNoYXIgcGFydGl0aW9uX2VudHJ5X2xiYVs4XTsKKwl1bnNpZ25lZCBjaGFyIG51bV9wYXJ0aXRpb25fZW50cmllc1s0XTsKKwl1bnNpZ25lZCBjaGFyIHNpemVvZl9wYXJ0aXRpb25fZW50cnlbNF07CisJdW5zaWduZWQgY2hhciBwYXJ0aXRpb25fZW50cnlfYXJyYXlfY3JjMzJbNF07CisJdW5zaWduZWQgY2hhciByZXNlcnZlZDJbR1BUX0JMT0NLX1NJWkUgLSA5Ml07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBncHRfaGVhZGVyOworCit0eXBlZGVmIHN0cnVjdCBfZ3B0X2VudHJ5X2F0dHJpYnV0ZXMgeworCXVuc2lnbmVkIGxvbmcgbG9uZyByZXF1aXJlZF90b19mdW5jdGlvbjoxOworCXVuc2lnbmVkIGxvbmcgbG9uZyByZXNlcnZlZDo0NzsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdHlwZV9ndWlkX3NwZWNpZmljOjE2OworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgZ3B0X2VudHJ5X2F0dHJpYnV0ZXM7CisKK3R5cGVkZWYgc3RydWN0IF9ncHRfZW50cnkgeworCWVmaV9ndWlkX3QgcGFydGl0aW9uX3R5cGVfZ3VpZDsKKwllZmlfZ3VpZF90IHVuaXF1ZV9wYXJ0aXRpb25fZ3VpZDsKKwl1bnNpZ25lZCBjaGFyIHN0YXJ0aW5nX2xiYVs4XTsKKwl1bnNpZ25lZCBjaGFyIGVuZGluZ19sYmFbOF07CisJZ3B0X2VudHJ5X2F0dHJpYnV0ZXMgYXR0cmlidXRlczsKKwllZmlfY2hhcjE2X3QgcGFydGl0aW9uX25hbWVbNzIgLyBzaXplb2YoZWZpX2NoYXIxNl90KV07Cit9CitfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgZ3B0X2VudHJ5OworCit0eXBlZGVmIHN0cnVjdCBfbGVnYWN5X21iciB7CisJdW5zaWduZWQgY2hhciBib290X2NvZGVbNDQwXTsKKwl1bnNpZ25lZCBjaGFyIHVuaXF1ZV9tYnJfc2lnbmF0dXJlWzRdOworCXVuc2lnbmVkIGNoYXIgdW5rbm93blsyXTsKKwlzdHJ1Y3QgcGFydGl0aW9uIHBhcnRpdGlvbl9yZWNvcmRbNF07CisJdW5zaWduZWQgY2hhciBzaWduYXR1cmVbMl07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBsZWdhY3lfbWJyOworCisjZW5kaWYJCQkJLyogX0RJU0tfUEFSVF9FRklfSCAqLwpkaWZmIC0tZ2l0IGEvZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMgYi9kb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucwppbmRleCA0NGQzNDc4Li5mNGE5OTY4IDEwMDY0NAotLS0gYS9kb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucworKysgYi9kb2MvSTJDX0VkZ2VfQ29uZGl0aW9ucwpAQCAtMzMsNyArMzMsNyBAQAogVGhpcyByZXNldCBlZGdlIGNvbmRpdGlvbiBjb3VsZCBwb3NzaWJseSBiZSBwcmVzZW50IGluIGV2ZXJ5IEkyQwogY29udHJvbGxlciBhbmQgZGV2aWNlIGF2YWlsYWJsZS4gRm9yIGJvYXJkcyB3aGVyZSBhIEkyQyBidXMgcmVzZXQKIGZ1bmN0aW9uIGNhbiBiZSBpbXBsZW1lbnRlZCBhIGkyY19pbml0X2JvYXJkKCkgZnVuY3Rpb24gc2hvdWxkIGJlCi1wcm92aWRlZCBhbmQgZW5hYmxlZCBieSAjZGVmaW5lJ2luZyBDRkdfSTJDX0lOSVRfQk9BUkQgaW4geW91cgorcHJvdmlkZWQgYW5kIGVuYWJsZWQgYnkgI2RlZmluZSdpbmcgQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRCBpbiB5b3VyCiBib2FyZCdzIGNvbmZpZyBmaWxlLiBOb3RlIHRoYXQgdGhpcyBpcyBOT1QgbmVjZXNzYXJ5IHdoZW4gdXNpbmcgdGhlCiBiaXQtYmFuZ2luZyBJMkMgZHJpdmVyIChjb21tb24vc29mdF9pMmMuYykgYXMgdGhpcyBhbHJlYWR5IGluY2x1ZGVzCiB0aGUgSTJDIGJ1cyByZXNldCBzZXF1ZW5jZS4KZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUuSkZGUzIgYi9kb2MvUkVBRE1FLkpGRlMyCmluZGV4IGM1ZDY3ZmQuLmYwZTliYzEgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuSkZGUzIKKysrIGIvZG9jL1JFQURNRS5KRkZTMgpAQCAtMTIsNyArMTIsNyBAQAogCiBJZiB5b3UgYm9vdCBmcm9tIGEgcGFydGl0aW9uIHdoaWNoIGlzIG1vdW50ZWQgd3JpdGFibGUsIGFuZCB5b3UKIHVwZGF0ZSB5b3VyIGJvb3QgZW52aXJvbm1lbnQgYnkgcmVwbGFjaW5nIHNpbmdsZSBmaWxlcyBvbiB0aGF0Ci1wYXJ0aXRpb24sIHlvdSBzaG91bGQgYWxzbyBkZWZpbmUgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTLiBTY2FubmluZworcGFydGl0aW9uLCB5b3Ugc2hvdWxkIGFsc28gZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMuIFNjYW5uaW5nCiB0aGUgSkZGUzIgZmlsZXN5c3RlbSB0YWtlcyAqbXVjaCogbG9uZ2VyIHdpdGggdGhpcyBmZWF0dXJlLCB0aG91Z2guCiBTb3J0aW5nIGlzIGRvbmUgd2hpbGUgaW5zZXJ0aW5nIGludG8gdGhlIGZyYWdtZW50IGxpc3QsIHdoaWNoIGlzCiBtb3JlIG9yIGxlc3MgYSBidWJibGUgc29ydC4gVGhhdCBhbGdvcml0aG0gaXMga25vd24gdG8gYmUgTyhuXjIpLApAQCAtMjQsMTYgKzI0LDE2IEBACiBwYXJ0aXRpb24gaW4gdGhlIGNvZGUpIGFuZCB5b3UgY2FuIGNoYW5nZSB3aGVyZSB0aGUgcGFydGl0aW9uIGlzIHdpdGgKIHR3byBkZWZpbmVzLgogCi1DRkdfSkZGUzJfRklSU1RfQkFOSworQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCiAJZGVmaW5lZCB0aGUgZmlyc3QgZmxhc2ggYmFuayB0byB1c2UKIAotQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgorQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IKIAlkZWZpbmVzIHRoZSBmaXJzdCBzZWN0b3IgdG8gdXNlCiAKIAotVGhlIHNlY29uZCB3YXkgaXMgdG8gZGVmaW5lIENGR19KRkZTX0NVU1RPTV9QQVJUIGFuZCBpbXBsZW1lbnQgdGhlCitUaGUgc2Vjb25kIHdheSBpcyB0byBkZWZpbmUgQ09ORklHX1NZU19KRkZTX0NVU1RPTV9QQVJUIGFuZCBpbXBsZW1lbnQgdGhlCiBqZmZzMl9wYXJ0X2luZm8oaW50IHBhcnRfbnVtKSBmdW5jdGlvbiBpbiB5b3VyIGJvYXJkIHNwZWNpZmljIGZpbGVzLgotSW4gdGhpcyBtb2RlIENGR19KRkZTMl9GSVJTVF9CQU5LIGFuZCBDRkdfSkZGUzJfRklSU1RfU0VDVE9SIGlzIG5vdAorSW4gdGhpcyBtb2RlIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSyBhbmQgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IgaXMgbm90CiB1c2VkLgogCiBUaGUgaW5wdXQgaXMgYSBwYXJ0aXRpb24gbnVtYmVyIHN0YXJ0aW5nIHdpdGggMC4KQEAgLTQxLDcgKzQxLDcgQEAKIAogRXggamZmczJfcGFydF9pbmZvKCkgZm9yIG9uZSBwYXJ0aXRpb24uCiAtLS0KLSNpZiBkZWZpbmVkIENGR19KRkZTX0NVU1RPTV9QQVJUCisjaWYgZGVmaW5lZCBDT05GSUdfU1lTX0pGRlNfQ1VTVE9NX1BBUlQKICNpbmNsdWRlIDxqZmZzMi9qZmZzMi5oPgogCiBzdGF0aWMgc3RydWN0IHBhcnRfaW5mbyBwYXJ0OwpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5KRkZTMl9OQU5EIGIvZG9jL1JFQURNRS5KRkZTMl9OQU5ECmluZGV4IGE4MzZkNTMuLjJiMzMyNmIgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuSkZGUzJfTkFORAorKysgYi9kb2MvUkVBRE1FLkpGRlMyX05BTkQKQEAgLTEzLDcgKzEzLDcgQEAKICNkZWZpbmUgQ09ORklHX0pGRlMyX05BTkRfU0laRSAyKjEwMjQqMTAyNAkvKiBzaXplIG9mIGpmZnMyIHBhcnRpdGlvbiAqLwogCiBJZiBtb3JlIHRoYW4gYSBzaW5nbGUgcGFydGl0aW9uIGlzIGRlc2lyZWQsIHRoZSB1c2VyIGNhbiBkZWZpbmUgYQotQ0ZHX0pGRlNfQ1VTVE9NX1BBUlQgbWFjcm8gYW5kIGltcGxlbWVudCBhCitDT05GSUdfU1lTX0pGRlNfQ1VTVE9NX1BBUlQgbWFjcm8gYW5kIGltcGxlbWVudCBhCiAKIAlzdHJ1Y3QgcGFydF9pbmZvKiBqZmZzMl9wYXJ0X2luZm8oaW50IHBhcnRfbnVtKQogCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLk1CWCBiL2RvYy9SRUFETUUuTUJYCmluZGV4IDY3OTIyOGUuLmM4ODlmZTkgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuTUJYCisrKyBiL2RvYy9SRUFETUUuTUJYCkBAIC0xLDQgKzEsNCBAQAotSU1QT1JUQU5UIE5PVEUgLSByZWFkIGJlZm9yZSBkZWZpbmluZyBDRkdfVVNFX09TQ0NMSyBpbiB5b3VyIGJvYXJkCitJTVBPUlRBTlQgTk9URSAtIHJlYWQgYmVmb3JlIGRlZmluaW5nIENPTkZJR19TWVNfVVNFX09TQ0NMSyBpbiB5b3VyIGJvYXJkCiAJCSBjb25maWcgZmlsZSEhIQogCiAKQEAgLTYyLDcgKzYyLDcgQEAKIHNlcmlhbCBwb3J0cyB0byBkbyBzby4KIAogCi1Zb3UgbWF5IGhhdmUgYSBsZWdpdGltYXRlIG5lZWQgdG8gZGVmaW5lIENGR19VU0VfT1NDQ0xLIGlmIHlvdXIKK1lvdSBtYXkgaGF2ZSBhIGxlZ2l0aW1hdGUgbmVlZCB0byBkZWZpbmUgQ09ORklHX1NZU19VU0VfT1NDQ0xLIGlmIHlvdXIKIE1CWDh4eCBib2FyZCBpcyB1c2luZyB0aGUgT1NDTSBjbG9ja2luZyBtb2RlLgogCiBZb3UgYmV0dGVyIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGhlcmUuCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLk1QQzg2NiBiL2RvYy9SRUFETUUuTVBDODY2CmluZGV4IGM4MjU2YTEuLjQ3MDdjYjcgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuTVBDODY2CisrKyBiL2RvYy9SRUFETUUuTVBDODY2CkBAIC00LDggKzQsOCBAQAogRm91ciBjb21waWxlLXRpbWUgY29uc3RhbnRzIGFyZSB1c2VkOgogCiAJQ09ORklHXzh4eF9PU0NMSyAgICAgICAgICAtIGlucHV0IHF1YXJ0eiBjbG9jawotCUNGR184eHhfQ1BVQ0xLX01JTiAgICAgICAgLSBtaW5pbXVtIGFsbG93ZWQgQ1BVIGNsb2NrCi0JQ0ZHXzh4eF9DUFVDTEtfTUFYICAgICAgICAtIG1heGltdW0gYWxsb3dlZCBDUFUgY2xvY2sKKwlDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOICAgICAgICAtIG1pbmltdW0gYWxsb3dlZCBDUFUgY2xvY2sKKwlDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYICAgICAgICAtIG1heGltdW0gYWxsb3dlZCBDUFUgY2xvY2sKIAlDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUIC0gZGVmYXVsdCBDUFUgY2xvY2sgdmFsdWUKIAogSWYgdGhlICJjcHVjbGsiIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlIGlzIHdpdGhpbiB0aGUgQ1BVQ0xLX01JTiAvCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLlBJUDQwNSBiL2RvYy9SRUFETUUuUElQNDA1CmluZGV4IDA3NzU2YTUuLmQ4YjNmOWMgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuUElQNDA1CisrKyBiL2RvYy9SRUFETUUuUElQNDA1CkBAIC0xMDAsOSArMTAwLDkgQEAKIFNDU0kgc3VwcG9ydCAoZXhwZXJpbWVudGFsKSBvbmx5IFNZTTUzQzh4eCBzdXBwb3J0ZWQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIENPTkZJR19TQ1NJX1NZTTUzQzhYWAkJdHlwZSBvZiBTQ1NJIGNvbnRyb2xsZXIKLUNGR19TQ1NJX01BWF9MVU4JOAludW1iZXIgb2Ygc3VwcG9ydGVkIExVTnMKLUNGR19TQ1NJX01BWF9TQ1NJX0lECTcJbWF4aW11bSBTQ1NJIElEICgwLi42KQotQ0ZHX1NDU0lfTUFYX0RFVklDRQlDRkdfU0NTSV9NQVhfU0NTSV9JRCAqIENGR19TQ1NJX01BWF9MVU4KK0NPTkZJR19TWVNfU0NTSV9NQVhfTFVOCTgJbnVtYmVyIG9mIHN1cHBvcnRlZCBMVU5zCitDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQJNwltYXhpbXVtIFNDU0kgSUQgKDAuLjYpCitDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQlDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQgKiBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTgogCQkJCW1heGltdW0gb2YgVGFyZ2V0IGRldmljZXMgKG11bHRpcGxlIExVTiBzdXBwb3J0CiAJCQkJZm9yIGJvb3QpCiAKQEAgLTEyNSw3ICsxMjUsNyBAQAogCiBFeHRlcm5hbCBwZXJpcGhlcmFsIGJhc2UgYWRkcmVzczoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MJCWFkZHJlc3Mgb2YgYWxsIElTQS1idXMgcmVsYXRlZCBwYXJ0cworQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTCQlhZGRyZXNzIG9mIGFsbCBJU0EtYnVzIHJlbGF0ZWQgcGFydHMKIAkJCQlfbXVzdF8gYmUgZGVmaW5lZCBmb3IgSVNBLWJ1cyBwYXJ0cwogCiBJZGVudGlmeToKQEAgLTEzNSwxNCArMTM1LDE0IEBACiBFbnZpcm9ubWVudCAvIENvbnNvbGU6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUNGR19DT05TT0xFX0lTX0lOX0VOVgkJaWYgZGVmaW5lZCwgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIHVzZWQgZnJvbQorQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJaWYgZGVmaW5lZCwgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIHVzZWQgZnJvbQogCQkJCXRoZSB2YWx1ZXMgc3RvcmVkIGluIHRoZSBldmlyb25tZW50LgogCi1DRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQlpZiBkZWZpbmVkLCBjb25zb2xlX292ZXJ3cml0ZSgpIGRlY2lkZXMgaWYgdGhlCitDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJaWYgZGVmaW5lZCwgY29uc29sZV9vdmVyd3JpdGUoKSBkZWNpZGVzIGlmIHRoZQogCQkJCXZhbHVlcyBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50IG9yIHRoZSBzdGFuZGFyZAogCQkJCXNlcmlhbCBpbi9vdXQgcHV0IHNob3VsZCBiZSBhc3NpZ25lZCB0byB0aGUgY29uc29sZS4KIAotQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQlpZiBkZWZpbmVkLCB0aGUgc3RhcnQtdXAgY29uc29sZSBzd2l0Y2hpbmcKK0NPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCWlmIGRlZmluZWQsIHRoZSBzdGFydC11cCBjb25zb2xlIHN3aXRjaGluZwogCQkJCWFyZSBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50LgogCiBQSVA0MDUgc3BlY2lmaWM6CkBAIC0xNjEsNyArMTYxLDcgQEAKIAogRmxvcHB5IHN1cHBvcnQ6CiAtLS0tLS0tLS0tLS0tLS0KLVN1cHBvcnQgb2YgYSBzdGFuZGFyZCBmbG9wcHkgZGlzayBjb250cm9sbGVyIGF0IGFkZHJlc3MgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MKK1N1cHBvcnQgb2YgYSBzdGFuZGFyZCBmbG9wcHkgZGlzayBjb250cm9sbGVyIGF0IGFkZHJlc3MgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTCiArIDB4M0YwLiBFbmFibGVkIHdpdGggZGVmaW5lIENPTkZJR19DTURfRkRDLiBSZWFkcyBhIHVuZm9ybWF0ZWQgZmxvcHB5IGRpc2sKIHdpdGggYSBpbWFnZSBoZWFkZXIgKHNlZTogbWtpbWFnZSkuIE5vIGludGVycnVwdHMgYW5kIG5vIERNQSBhcmUgdXNlZCBmb3IgdGhpcy4KIEFkZGVkIGZpbGVzOgpAQCAtMTczLDcgKzE3Myw3IEBACiBTdXBwb3J0IGZvciBTeW1iaW9zIFNZTTUzQzgxMEEgY2hpcC4gSW1wbGVtZW50ZWQgYXMgZm9sbG93czoKIC0gd2l0aG91dCBkaXNjb25uZWN0CiAtIG9ubHkgYXN5bmNocm91bm91cwotLSBtdWx0aXBsZSBMVU4gc3VwcG9ydCAoY2F1dGlvbiwgbmVlZHMgYSBsb3Qgb2YgUkFNLiBkZWZpbmUgQ0ZHX1NDU0lfTUFYX0xVTiAxIHRvCistIG11bHRpcGxlIExVTiBzdXBwb3J0IChjYXV0aW9uLCBuZWVkcyBhIGxvdCBvZiBSQU0uIGRlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTiAxIHRvCiAgIHNhdmUgUkFNKQogLSBtdWx0aXBsZSBTQ1NJIElEIHN1cHBvcnQKIC0gbm8gd3JpdGUgc3VwcG9ydApAQCAtMTk3LDcgKzE5Nyw3IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBBZGRlZCBBVEFQSSBzdXBwb3J0ICh3aXRoIENPTkZJR19BVEFQSSkgaW4gdGhlIGZpbGUgY21kX2lkZS5jLgogVG8gc3VwcG9ydCBhIGhhcmRyZXNldCwgd2hlbiB0aGUgSURFIHJlc2V0IHBpbiBpcyBub3QgY29ubmVjdGVkIHRvIHRoZQotQ0ZHX1BDX0lERV9SRVNFVCBwaW4sIHRoZSBzd2l0Y2ggQ09ORklHX0lERV9SRVNFVF9ST1VUSU5FIGhhcyBiZWVuIGFkZGVkLiBXaGVuCitDT05GSUdfU1lTX1BDX0lERV9SRVNFVCBwaW4sIHRoZSBzd2l0Y2ggQ09ORklHX0lERV9SRVNFVF9ST1VUSU5FIGhhcyBiZWVuIGFkZGVkLiBXaGVuCiB0aGlzIHN3aXRjaCBpcyBlbmFibGVkIHRoZSByb3V0aW5lIHZvaWQgaWRlX3NldF9yZXNldChpbnQgaWRlcmVzZXQpIG11c3QgYmUKIHdpdGhpbiB0aGUgYm9hcmQgc3BlY2lmaWMgZmlsZXMuCiBPbmx5IHJlYWQgZnJvbSBBVEFQSSBkZXZpY2VzIGFyZSBzdXBwb3J0ZWQuCkBAIC0yNDIsNyArMjQyLDcgQEAKIE1DMTQ2ODE4IFJUQyBzdXBwb3J0OgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBBZGRlZCBzdXBwb3J0IGZvciBNQzE0NjgxOCBSVEMgd2l0aCBkZWZpbmluZyBDT05GSUdfUlRDX01DMTQ2ODE4LiBUaGUgSVNBIGJ1cyBJTwotYmFzZSBhZGRyZXNzIG11c3QgYmUgZGVmaW5lZCB3aXRoIENGR19JU0FfSU9fQkFTRV9BRERSRVNTLgorYmFzZSBhZGRyZXNzIG11c3QgYmUgZGVmaW5lZCB3aXRoIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUy4KIEFkZGVkIGZpbGVzOgogLSBydGMvbWMxNDY4MTguYwogCkBAIC0yOTksNyArMjk5LDcgQEAKIC0tLS0tLS0tLS0KIEFkZGVkIGRlZmluZWQoQ09ORklHX1BJUDQwNSkgYXQgc2V2ZXJhbCBwb2ludHMgaW4gY29tbW9uL2NtZF9pMmMuYy4KIEFkZGVkIDE2Yml0IHJlYWQvd3JpdGUgc3VwcG9ydCBmb3IgSTJDIChQUEM0MDUpLCBhbmQgcGFnZSB3cml0ZSB0bwotSTJDIEVFUFJPTSBpZiBkZWZpbmVkIENGR19FRVBST01fUEFHRV9XUklURV9FTkFCTEUuCitJMkMgRUVQUk9NIGlmIGRlZmluZWQgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9FTkFCTEUuCiBDaGFuZ2VkIGZpbGVzOgogLSBjcHUvcHBjNHh4L2kyYy5jCiAtIGNvbW1vbi9jbWRfaTJjLmMKQEAgLTMwOCwxMSArMzA4LDExIEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBBbHRob3VnaCBpbiBSRUFETUUuY29uc29sZSBkZXNjcmliZWQsIHRoZSBVLUJvb3QgaGFzIG5vdCBhc3NpbmdlZCB0aGUgdmFsdWVzCiBmb3VuZCBpbiB0aGUgZW52aXJvbm1lbnQgdG8gdGhlIGNvbnNvbGUuIENvcnJlY3RlZCB0aGlzIGJlaGF2aW9yLCBidXQgb25seSBpZgotQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WIGlzIGRlZmluZWQuCi1JZiBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORSBpcyBkZWZpbmVkLCBjb25zb2xlX292ZXJ3cml0ZSgpIGRlY2lkZXMgaWYgdGhlCitDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIGlzIGRlZmluZWQuCitJZiBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUgaXMgZGVmaW5lZCwgY29uc29sZV9vdmVyd3JpdGUoKSBkZWNpZGVzIGlmIHRoZQogdmFsdWVzIHN0b3JlZCBpbiB0aGUgZW52aXJvbm1lbnQgb3IgdGhlIHN0YW5kYXJkIHNlcmlhbCBpbi9vdXRwdXQgc2hvdWxkIGJlCiBhc3NpZ25lZCB0byB0aGUgY29uc29sZS4gVGhpcyBpcyB1c2VmdWwgaWYgdGhlIGVudmlyb25tZW50IHZhbHVlcyBhcmUgbm90IGNvcnJlY3QuCi1JZiBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFIGlzIGRlZmluZWQgdGhlIGRldmljZXMgYXNzaWduZWQgdG8gdGhlIGNvbnNvbGUgYXQKK0lmIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFIGlzIGRlZmluZWQgdGhlIGRldmljZXMgYXNzaWduZWQgdG8gdGhlIGNvbnNvbGUgYXQKIHN0YXJ0LXVwIHRpbWUgd2lsbCBiZSB3cml0dGVuIHRvIHRoZSBlbnZpcm9ubWVudC4gVGhpcyBtZWFucyB0aGF0IGlmIHRoZQogZW52aXJvbm1lbnQgdmFsdWVzIGFyZSBvdmVyd3JpdHRlbiBieSB0aGUgb3ZlcndyaXRlX2NvbnNvbGUoKSByb3V0aW5lLCB0aGV5IHdpbGwgYmUKIHN0b3JlZCBpbiB0aGUgZW52aXJvbm1lbnQuCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLlBYQV9DRiBiL2RvYy9SRUFETUUuUFhBX0NGCmluZGV4IGU0NDNkMzkuLjZhMGYyMzYgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuUFhBX0NGCisrKyBiL2RvYy9SRUFETUUuUFhBX0NGCkBAIC0xMiwzNSArMTIsMzUgQEAKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EgMQogLyoganVzdCB0byBrZWVwIGJ1aWxkIHN5c3RlbSBoYXBweSAgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSICAgICAweDI4MDAwMDAwCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUgICAgIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgICAgIDB4MjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgICAgIDB4MTAwMDAwMDAKIAotI2RlZmluZSBDRkdfTUVDUl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DTUVNMF9WQUwJCTB4MDAwMDQyMDQKLSNkZWZpbmUgQ0ZHX01DTUVNMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DSU8wX1ZBTAkJMHgwMDAwODQwNwotI2RlZmluZSBDRkdfTUNJTzFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMCQkweDAwMDA0MjA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMCQkweDAwMDA4NDA3CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMCQkweDAwMDAwMDAwCiAvKiBtZW1vcnkgY29uZmlndXJhdGlvbiAqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQogLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEKIC8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4MjAwMDAwMDAKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgxZjAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgxZjAKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MWYwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgxZjAKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDNmMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4M2YwCiAKIAogQW5vdGhlciBpbXBvcnRhbnQgcG9pbnQgaXMgdGhhdCBtYXliZSB5b3UgaGF2ZSB0byBwb3dlciB0aGUgcGNtY2lhCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLlRRTTgyNjAgYi9kb2MvUkVBRE1FLlRRTTgyNjAKaW5kZXggMDU3MTA5NS4uYjkzYTFjYiAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5UUU04MjYwCisrKyBiL2RvYy9SRUFETUUuVFFNODI2MApAQCAtNTIsNyArNTIsNyBAQAogCiAJSWYgZGVmaW5lZCwgU01DMiB3aWxsIGJlIHVzZWQgYXMgdGhlIGNvbnNvbGUKIAotQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KK0NPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTQogCiAJSWYgZGVmaW5lZCwgdGhlIFNEUkFNIG9uIHRoZSBsb2NhbCBidXMgd2lsbCBiZSBpbml0aWFsaXplZCBhbmQKIAltYXBwZWQgYXQgQlIyLgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5hZG5wZXNjMSBiL2RvYy9SRUFETUUuYWRucGVzYzEKaW5kZXggNTI1N2YxOC4uZjk1NjZiOCAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5hZG5wZXNjMQorKysgYi9kb2MvUkVBRE1FLmFkbnBlc2MxCkBAIC03OCw3ICs3OCw3IEBACiBBIG1pbmltYWwgY29uZmlndXJhdGlvbiBvY2N1cGllcyBsZXNzIHRoYW4gNzAgS0J5dGUKIChuZXR3b3JrLCBTUEksIFBPU1QgYW5kIGJvYXJkIGNvbW1hbmQgc3VwcG9ydCBkaXNhYmxlZCkuIFlvdQogY2FuIHNhdmUgbW9yZSBtZW1vcnkgYnkgZGVhY3RpdmF0aW5nIHRoZSBIdS1TaGVsbCBzdXBwb3J0IGFuZAotbG9uZyBjb21tYW5kIGhlbHAgKENGR19IVVNIX1BBUlNFUiwgQ0ZHX0xPTkdIRUxQKS4KK2xvbmcgY29tbWFuZCBoZWxwIChDT05GSUdfU1lTX0hVU0hfUEFSU0VSLCBDT05GSUdfU1lTX0xPTkdIRUxQKS4KIAogVG8gcHJvZ3JhbSBVLUJvb3QgaW50byB0aGUgQUROUC9FU0MxIGZsYXNoIHVzaW5nIEdFUk1TIGRvIHRoZQogZm9sbG93aW5nOgpAQCAtMTkzLDI0ICsxOTMsMjQgQEAKIAktIHRoaXMgaXMgdGhlIHN0YXJ0dXAgYWRkcmVzcyBmb3IgYXV0b2Jvb3QKIAktIGVhY2ggTmlvcyBhcHBsaWNhdGlvbiBjb2RlIHdlIHdhbnQgdG8gdXBkYXRlIHdpbGwgYmUgY29waWVkCiAJICB0byB0aGlzIGFkZHJlc3MKLQktIGRlZmF1bHQgaXMgQ0ZHX0FETlBFU0MxX05JT1NfQVBQTF9FTlRSWQorCS0gZGVmYXVsdCBpcyBDT05GSUdfU1lTX0FETlBFU0MxX05JT1NfQVBQTF9FTlRSWQogCiAzLiBhcHBsX2VuZF9hZGRyCiAKIAktIE5pb3MgYXBwbGljYXRpb24gYXJlYSBlbmQgYWRkcmVzcyAodXN1YWxseSBpbiBGbGFzaCkKIAktIHdpbGwgYmUgdXNlZCB0byB1bnByb3RlY3QvZXJhc2UgdGhlIEZsYXNoIGFyZWEgd2hpbGUgdXBkYXRpbmcKLQktIGRlZmF1bHQgaXMgQ0ZHX0FETlBFU0MxX05JT1NfQVBQTF9FTkQKKwktIGRlZmF1bHQgaXMgQ09ORklHX1NZU19BRE5QRVNDMV9OSU9TX0FQUExfRU5ECiAKIDQuIGFwcGxfaWRlbnRfYWRkcgogCiAJLSBhZGRyZXNzIG9mIHRoZSBOaW9zIGFwcGxpY2F0aW9uIGlkZW50aWZpY2F0aW9uIHN0cmluZwogCS0gdGhpcyBpcyB0aGUgYWRkcmVzcyBjaGVja2VkLXVwIGJ5IGF1dG9ib290Ci0JLSBkZWZhdWx0IGlzIENGR19BRE5QRVNDMV9OSU9TX0FQUExfSURFTlQKKwktIGRlZmF1bHQgaXMgQ09ORklHX1NZU19BRE5QRVNDMV9OSU9TX0FQUExfSURFTlQKIAogNS4gYXBwbF9pZGVudF9zdHIKIAogCS0gdGhlIE5pb3MgYXBwbGljYXRpb24gaWRlbnRpZmljYXRpb24gc3RyaW5nIGl0c2VsZgotCS0gZGVmYXVsdCBpcyBDRkdfQUROUEVTQzFfTklPU19JREVOVElGSUVSCisJLSBkZWZhdWx0IGlzIENPTkZJR19TWVNfQUROUEVTQzFfTklPU19JREVOVElGSUVSCiAKIDYuIGFwcGxfbmFtZQogCkBAIC0yMjEsMTMgKzIyMSwxMyBAQAogCiAJLSBvcHRpb25hbGx5IGZpbGUgc3lzdGVtIGFyZWEgc3RhcnQgYWRkcmVzcyAodXN1YWxseSBpbiBGbGFzaCkKIAktIGVhY2ggZmlsZSBzeXN0ZW0gd2Ugd2FudCB0byB1cGRhdGUgd2lsbCBiZSBjb3BpZWQgdG8gdGhpcyBhZGRyZXNzCi0JLSBkZWZhdWx0IGlzIENGR19BRE5QRVNDMV9GSUxFU1lTVEVNX0JBU0UKKwktIGRlZmF1bHQgaXMgQ09ORklHX1NZU19BRE5QRVNDMV9GSUxFU1lTVEVNX0JBU0UKIAogOC4gZnNfZW5kX2FkZHIKIAogCS0gb3B0aW9uYWxseSBmaWxlIHN5c3RlbSBhcmVhIGVuZCBhZGRyZXNzICh1c3VhbGx5IGluIEZsYXNoKQogCS0gd2lsbCBiZSB1c2VkIHRvIHVucHJvdGVjdC9lcmFzZSB0aGUgRmxhc2ggYXJlYSB3aGlsZSB1cGRhdGluZwotCS0gZGVmYXVsdCBpcyBDRkdfQUROUEVTQzFfRklMRVNZU1RFTV9FTkQKKwktIGRlZmF1bHQgaXMgQ09ORklHX1NZU19BRE5QRVNDMV9GSUxFU1lTVEVNX0VORAogCiA5LiBmc19uYW1lCiAKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUuYWRucGVzYzFfYmFzZTMyIGIvZG9jL1JFQURNRS5hZG5wZXNjMV9iYXNlMzIKaW5kZXggMTQ1ZThjZC4uZTZmYjdhNCAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5hZG5wZXNjMV9iYXNlMzIKKysrIGIvZG9jL1JFQURNRS5hZG5wZXNjMV9iYXNlMzIKQEAgLTE4LDM5ICsxOCwzOSBAQAogCW5vIERlYnVnIENvcmUKIAlubyBPbiBDaGlwIEluc3RydW1lbnRhdGlvbiAoT0NJKQogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKLQkJCUNGR19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IChub3QgcHJlc2VudCkKLQkJCUNGR19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IChub3QgcHJlc2VudCkKLQkJCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gNTEyCi0JCQlDRkdfTklPU19DUFVfTVVMCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTVNURVAJICAgICA9IDEKLQkJCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCSAgICAgPSA1MDAwMDAwMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IChub3QgcHJlc2VudCkKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSAgICAgPSAobm90IHByZXNlbnQpCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSA1MTIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCiAKIElSUToJIE5yLiAgfCB1c2VkIGJ5CiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIDE2ICAgfCBUSU1FUjAJICB8ICBDRkdfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2Ci0JIDE3ICAgfCBVQVJUMAkgIHwgIENGR19OSU9TX0NQVV9VQVJUMF9JUlEgID0gMTcKLQkgMTggICB8IFVBUlQxCSAgfCAgQ0ZHX05JT1NfQ1BVX1VBUlQxX0lSUSAgPSAxOAotCSAyMCAgIHwgTEFOOTFDMTExIHwgIENGR19OSU9TX0NQVV9MQU4wX0lSUSAgID0KLQkgICAgICB8IFBJTzYJICB8ICBDRkdfTklPU19DUFVfUElPNl9JUlEgICA9IDIwCi0JIDI1ICAgfCBTUEkwCSAgfCAgQ0ZHX05JT1NfQ1BVX1NQSTBfSVJRICAgPSAyNQotCSAzMSAgIHwgUElPNwkgIHwgIENGR19OSU9TX0NQVV9QSU83X0lSUSAgID0gMzEKLQkgMzIgICB8IFBJTzgJICB8ICBDRkdfTklPU19DUFVfUElPOF9JUlEgICA9IDMyCi0JIDMzICAgfCBQSU85CSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzlfSVJRICAgPSAzMwotCSAzNCAgIHwgUElPMTAJICB8ICBDRkdfTklPU19DUFVfUElPMTBfSVJRICA9IDM0Ci0JIDM1ICAgfCBQSU8xMQkgIHwgIENGR19OSU9TX0NQVV9QSU8xMV9JUlEgID0gMzUKLQkgMzYgICB8IFBJTzEyCSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzEyX0lSUSAgPQotCSAgICAgIHwgSURFMAkgIHwgIENGR19OSU9TX0NQVV9JREUwX0lSUSAgID0gMzYKLQkgMzcgICB8IFBJTzEzCSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzEzX0lSUSAgPQotCSAgICAgIHwgSURFMQkgIHwgIENGR19OSU9TX0NQVV9JREUxX0lSUSAgID0gMzcKKwkgMTYgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2CisJIDE3ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDE3CisJIDE4ICAgfCBVQVJUMQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfSVJRICA9IDE4CisJIDIwICAgfCBMQU45MUMxMTEgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0lSUSAgID0KKwkgICAgICB8IFBJTzYJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfSVJRICAgPSAyMAorCSAyNSAgIHwgU1BJMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfU1BJMF9JUlEgICA9IDI1CisJIDMxICAgfCBQSU83CSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0lSUSAgID0gMzEKKwkgMzIgICB8IFBJTzgJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzhfSVJRICAgPSAzMgorCSAzMyAgIHwgUElPOQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPOV9JUlEgICA9IDMzCisJIDM0ICAgfCBQSU8xMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMTBfSVJRICA9IDM0CisJIDM1ICAgfCBQSU8xMQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMTFfSVJRICA9IDM1CisJIDM2ICAgfCBQSU8xMgkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMTJfSVJRICA9CisJICAgICAgfCBJREUwCSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9JREUwX0lSUSAgID0gMzYKKwkgMzcgICB8IFBJTzEzCSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xM19JUlEgID0KKwkgICAgICB8IElERTEJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX0lERTFfSVJRICAgPSAzNwogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJMTYgTUJ5dGUgU0RSQU0KIAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDAKLQkJCUNGR19OSU9TX0NQVV9VU0VSX1RJTUVSCSAgICAgPSAobm90IHByZXNlbnQpCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IChub3QgcHJlc2VudCkKIAogUElPOgkgTnIuICB8IGRlc2NyaXB0aW9uCiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03MSwxMyArNzEsMTMgQEAKIAkgUElPMTN8IElOVDc6CSAgICAxIGlucHV0IGZvciBnZW5lcmFsIHB1cnBvc2UgaXJxIChJUlEzNykKIAkgICAgICB8IElERTFJTlQ6ICAgICAoc2FtZSkgZm9yIElERTEgaXJxIGlucHV0CiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfUE9SVEFfUElPCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfUE9SVEJfUElPCSAgICAgPSAxCi0JCQlDRkdfTklPU19DUFVfUE9SVENfUElPCSAgICAgPSAyCi0JCQlDRkdfTklPU19DUFVfUkNNX1BJTwkgICAgID0gMwotCQkJQ0ZHX05JT1NfQ1BVX1dEVEVOQV9QSU8JICAgICA9IDQKLQkJCUNGR19OSU9TX0NQVV9XRFRUUklHX1BJTyAgICAgPSA1Ci0JCQlDRkdfTklPU19DUFVfTEVEX1BJTwkgICAgID0gKG5vdCBwcmVzZW50KQorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfUE9SVEFfUElPCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BPUlRCX1BJTwkgICAgID0gMQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QT1JUQ19QSU8JICAgICA9IDIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfUkNNX1BJTwkgICAgID0gMworCQkJQ09ORklHX1NZU19OSU9TX0NQVV9XRFRFTkFfUElPCSAgICAgPSA0CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1dEVFRSSUdfUElPICAgICA9IDUKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTwkgICAgID0gKG5vdCBwcmVzZW50KQogCiBVQVJUOglVQVJUMDogZml4ZWQgYmF1ZHJhdGUgb2YgMTE1MjAwLCBmaXhlZCBwcm90b2NvbCA4TjEsIFJUUy9DVFMgKElSUTE3KQogCVVBUlQxOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMSwKQEAgLTEwNCwyOCArMTA0LDI4IEBACiAgIDB4NDQwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0KIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUgICA6CSAgICAgICA6IHwKLSAgRVhUMyAoQ1M0KSAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9DUzNfU0laRQorICBFWFQzIChDUzQpICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9DUzNfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDQzMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9DUzNfQkFTRQorICAweDQzMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfQ1MzX0JBU0UKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUgICA6CSAgICAgICA6IHwKLSAgRVhUMiAoQ1MzKSAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9DUzJfU0laRQorICBFWFQyIChDUzMpICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9DUzJfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDQyMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9DUzJfQkFTRQorICAweDQyMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfQ1MyX0JBU0UKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUgICA6CSAgICAgICA6IHwKLSAgRVhUMSAoQ1MyKSAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9DUzFfU0laRQorICBFWFQxIChDUzIpICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9DUzFfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDQxMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9DUzFfQkFTRQorICAweDQxMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfQ1MxX0JBU0UKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUgICA6CSAgICAgICA6IHwKLSAgRVhUMCAoQ1MxKSAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9DUzBfU0laRQorICBFWFQwIChDUzEpICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9DUzBfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDQwMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9DUzBfQkFTRQorICAweDQwMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfQ1MwX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMTM1LDIzICsxMzUsMjMgQEAKIAkgICAgICAgOgkJCSAgICAgICA6CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIHwJCQkgICAgICAgfAotICAweDAzMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TVEFDSworICAweDAzMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCBcCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgKFUtQm9vdCBydW4tdGltZSBzeXN0ZW0pCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAotCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENGR19NT05JVE9SX0xFTgorCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENPTkZJR19TWVNfTU9OSVRPUl9MRU4KIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICAgPSAweDAwMDQwMDAwCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IC8KICAgMHgwMmZjMDAwMCAtLSszMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wKyAgICBURVhUX0JBU0UKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCBcCi0JICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ0ZHX01BTExPQ19MRU4gKGhlYXApCisJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ09ORklHX1NZU19NQUxMT0NfTEVOIChoZWFwKQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IC8KIAkgICAgIC0tKzMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTArCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgXAotCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENGR19HQkxfREFUQV9TSVpFIChnbG9iYWwpCisJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIChnbG9iYWwpCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgLwotCSAgICAgLS0rMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMCsgICAgQ0ZHX0lOSVRfU1AgKHUtYm9vdCBzdGFjaykKKwkgICAgIC0tKzMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTArICAgIENPTkZJR19TWVNfSU5JVF9TUCAodS1ib290IHN0YWNrKQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IFwgXAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gc3RhY2sgYXJlYQpAQCAtMTU5LDE3ICsxNTksMTcgQEAKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFYKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8CiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAotICBTRFJBTQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCAgPiBDRkdfTklPU19DUFVfU0RSQU1fU0laRQorICBTRFJBTQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAogICAweDAyMDAwMTAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCBcCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8Ci0JICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgPiBDRkdfTklPU19DUFVfVkVDX1NJWkUKKwkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwgICA9IDB4MDAwMDAxMDAKIAkgICAgICAgfAkJCSAgICAgICB8IC8gLwotICAweDAyMDAwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENGR19OSU9TX0NQVV9WRUNfQkFTRQotICAweDAyMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TRFJBTV9CQVNFCisgIDB4MDIwMDAwMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstIC0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQorICAweDAyMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOiAgPiAoc3BhY2UgZm9yIDJuZCBGbGFzaCkKIAkgICAgICAgfAkJCSAgICAgICB8IC8KQEAgLTE3NywxMSArMTc3LDExIEBACiAJICAgICAgIHwgIHNlY3RvciAxMjcJCSAgICAgICB8IFwKICAgICArIDB4N2YwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDRkdfTklPU19DUFVfRkxBU0hfU0laRQorICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUKIAkgICAgICAgfCAgc2VjdG9yIDEgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDgwMDAwMAogICAgICsgMHgwMTAwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc2VjdG9yIDAgKHNpemUgPSAweDEwMDAwKSAgICB8IC8KLSAgMHgwMTAwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfRkxBU0hfQkFTRQorICAweDAxMDAwMDAwIC0tLTgtLS0tLS0tLS0tLS0tNHwzLS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgOgkJCSAgICAgICA6CkBAIC0yMDcsNyArMjA3LDcgQEAKIAkgICAgICAgfCB8LSAtIC0gLSAtIC0gLXwtIC0gLSAtIC0gLSAtfCB8IHwKIAkgICAgICAgfCB8IEVQSCBTVEFUVVMgIHwgVENSCSAgICAgfCB8IHwKIAkgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IC8KLSAgMHgwMDAxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfTEFOMF9CQVNFCisgIDB4MDAwMTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMjIzLDEzICsyMjMsMTMgQEAKICAgSURFMSBpL2YgICAgIDoJICAgICAgIDoJICAgICAgIDogID4gMHgwMDAwMDAyMAogICBbNV0JICAgICAgIDoJICAgICAgIDoJICAgICAgIDogfAogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IC8KLSAgMHgwMDAwMTAyMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfSURFMQorICAweDAwMDAxMDIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfSURFMQogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IFwKIAkgICAgICAgOgkgICAgICAgOgkgICAgICAgOiB8CiAgIElERTAgaS9mICAgICA6CSAgICAgICA6CSAgICAgICA6ICA+IDB4MDAwMDAwMjAKICAgWzVdCSAgICAgICA6CSAgICAgICA6CSAgICAgICA6IHwKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCAvCi0gIDB4MDAwMDEwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0lERTAKKyAgMHgwMDAwMTAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0lERTAKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIHwJCQkgICAgICAgfApAQCAtMjQxLDcgKzI0MSw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDAwMDk3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMTMKKyAgMHgwMDAwMDk3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEzCiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxIGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8xMiAgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMSBiaXQpCSAocncpICB8IHwKQEAgLTI0OSw3ICsyNDksNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA5NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzEyCisgIDB4MDAwMDA5NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMgogCSAgICAgICB8ICBlZGdlY2FwdHVyZSAoMSBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMTEgICAgICAgIHwgIGludGVycnVwdG1hc2sgKDEgYml0KQkgKHJ3KSAgfCB8CkBAIC0yNTcsNyArMjU3LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJIChybykgIHwgLwotICAweDAwMDAwOTUwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8xMQorICAweDAwMDAwOTUwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMTEKIAkgICAgICAgfCAgZWRnZWNhcHR1cmUgKDEgYml0KQkgKHJ3KSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzEwICAgICAgICB8ICBpbnRlcnJ1cHRtYXNrICgxIGJpdCkJIChydykgIHwgfApAQCAtMjY1LDcgKzI2NSw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDAwMDk0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMTAKKyAgMHgwMDAwMDk0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEwCiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxIGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU85ICAgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMSBiaXQpCSAocncpICB8IHwKQEAgLTI3Myw3ICsyNzMsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA5MzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzkKKyAgMHgwMDAwMDkzMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzkKIAkgICAgICAgfCAgZWRnZWNhcHR1cmUgKDEgYml0KQkgKHJ3KSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzggICAgICAgICB8ICBpbnRlcnJ1cHRtYXNrICgxIGJpdCkJIChydykgIHwgfApAQCAtMjgxLDcgKzI4MSw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDAwMDkyMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPOAorICAweDAwMDAwOTIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPOAogCSAgICAgICB8ICBlZGdlY2FwdHVyZSAoMSBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNyAgICAgICAgIHwgIGludGVycnVwdG1hc2sgKDEgYml0KQkgKHJ3KSAgfCB8CkBAIC0yODksNyArMjg5LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJIChybykgIHwgLwotICAweDAwMDAwOTEwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU83CisgIDB4MDAwMDA5MTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU83CiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxIGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU82ICAgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMSBiaXQpCSAocncpICB8IHwKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA5MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzYKKyAgMHgwMDAwMDkwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzYKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIHwJCQkgICAgICAgfApAQCAtMzE3LDcgKzMxNyw3IEBACiAJICAgICAgIHwgIHR4ZGF0YSAoMTYgYml0KQkgKHdvKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHJ4ZGF0YSAoMTYgYml0KQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA4YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1NQSTAKKyAgMHgwMDAwMDhjMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NQSTAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzUJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMzI1LDcgKzMyNSw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDAwMDhiMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNQorICAweDAwMDAwOGIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNQogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0zMzMsNyArMzMzLDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJICh3bykgIHwgLwotICAweDAwMDAwOGEwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU80CisgIDB4MDAwMDA4YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU80CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8zCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTM0MSw3ICszNDEsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA4OTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzMKKyAgMHgwMDAwMDg5MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzIJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMzQ5LDcgKzM0OSw3IEBACiAJICAgICAgIHwgIGRpcmVjdGlvbiAoNCBiaXQpICAgICAgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDQgYml0KQkJIChydykgIHwgLwotICAweDAwMDAwODgwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8yCisgIDB4MDAwMDA4ODAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8xCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTM1Nyw3ICszNTcsNyBAQAogCSAgICAgICB8ICBkaXJlY3Rpb24gKDggYml0KSAgICAgIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICg4IGJpdCkJCSAocncpICB8IC8KLSAgMHgwMDAwMDg3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMQorICAweDAwMDAwODcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMQogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0zNjUsNyArMzY1LDcgQEAKIAkgICAgICAgfCAgZGlyZWN0aW9uICg4IGJpdCkgICAgICAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoOCBiaXQpCQkgKHJ3KSAgfCAvCi0gIDB4MDAwMDA4NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzAKKyAgMHgwMDAwMDg2MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMzgxLDcgKzM4MSw3IEBACiAJICAgICAgIHwgIGNvbnRyb2wgKDQgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHN0YXR1cyAoMiBiaXQpCSAocncpICB8IC8KLSAgMHgwMDAwMDg0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVElNRVIwCisgIDB4MDAwMDA4NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMzk3LDcgKzM5Nyw3IEBACiAJICAgICAgIHwgIHR4ZGF0YSAoOCBiaXQpCSAod28pICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgcnhkYXRhICg4IGJpdCkJIChybykgIHwgLwotICAweDAwMDAwODIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9VQVJUMQorICAweDAwMDAwODIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDEKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtNDEzLDE4ICs0MTMsMTggQEAKIAkgICAgICAgfCAgdHhkYXRhICg4IGJpdCkJICh3bykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICByeGRhdGEgKDggYml0KQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA4MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1VBUlQwCisgIDB4MDAwMDA4MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMAogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gIG9uIGNoaXAgbWVtb3J5IDEJICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIAogICAweDAwMDAwODAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgXAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwKLSAgR0VSTVMJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCisgIEdFUk1TCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfUk9NX1NJWkUKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8ICAgPSAweDAwMDAwODAwCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgLwotICAweDAwMDAwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENGR19OSU9TX0NQVV9SU1RfVkVDVAotICAweDAwMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9ST01fQkFTRQorICAweDAwMDAwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENPTkZJR19TWVNfTklPU19DUFVfUlNUX1ZFQ1QKKyAgMHgwMDAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9CQVNFCiAKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5hbGFza2E4MjIwIGIvZG9jL1JFQURNRS5hbGFza2E4MjIwCmluZGV4IDhlNjU5ZjMuLjBiZDY4ZDkgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuYWxhc2thODIyMAorKysgYi9kb2MvUkVBRE1FLmFsYXNrYTgyMjAKQEAgLTg3LDEyICs4NywxMiBAQAogMy4xIEV4cGxhbmF0aW9uIG9uIE5FVyBkZWZpbml0aW9ucyBpbiBpbmNsdWRlL2NvbmZpZ3MvYWxhc2thODIyMC5oCiAgICAgQ09ORklHX01QQzgyMjAJICAgIE1QQzgyMjAgc3BlY2lmaWMKICAgICBDT05GSUdfQUxBU0tBODIyMAkgICAgQWxhc2thIGJvYXJkIHNwZWNpZmljCi0gICAgQ0ZHX01QQzgyMjBfQ0xLSU4JICAgIERlZmluZSBBbGFza2EgSW5wdXQgQ2xvY2sKKyAgICBDT05GSUdfU1lTX01QQzgyMjBfQ0xLSU4JICAgIERlZmluZSBBbGFza2EgSW5wdXQgQ2xvY2sKICAgICBDT05GSUdfUFNDX0NPTlNPTEUJICAgIEVuYWJsZSBNUEM4MjIwIFVBUlQKICAgICBDT05GSUdfRVhUVUFSVF9DT05TT0xFICBFbmFibGUgRXh0ZXJuYWwgMTY1NTIgVUFSVAotICAgIENGR19BTURfQk9PVAkgICAgVG8gZGV0ZXJtaW5lIHRoZSB1LWJvb3QgaXMgYm9vdGVkIGZyb20gQU1EIG9yIEludGVsCi0gICAgQ0ZHX01CQVIJCSAgICBNQkFSIGJhc2UgYWRkcmVzcwotICAgIENGR19ERUZBVUxUX01CQVIJICAgIFJlc2V0IE1CQVIgYmFzZSBhZGRyZXNzCisgICAgQ09ORklHX1NZU19BTURfQk9PVAkgICAgVG8gZGV0ZXJtaW5lIHRoZSB1LWJvb3QgaXMgYm9vdGVkIGZyb20gQU1EIG9yIEludGVsCisgICAgQ09ORklHX1NZU19NQkFSCQkgICAgTUJBUiBiYXNlIGFkZHJlc3MKKyAgICBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkgICAgUmVzZXQgTUJBUiBiYXNlIGFkZHJlc3MKIAogMy4yIENvbXBpbGF0aW9uCiAgICBleHBvcnQgQ1JPU1NfQ09NUElMRT1jcm9zcy1jb21waWxlLXByZWZpeApkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5jbWkgYi9kb2MvUkVBRE1FLmNtaQppbmRleCA4ODQ4NTRkLi4wZWRkNTBhIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLmNtaQorKysgYi9kb2MvUkVBRE1FLmNtaQpAQCAtMzUsMTcgKzM1LDE3IEBACiAKIE1lbW9yeSBNYXAgYWZ0ZXIgcmVsb2NhdGlvbjoKIAotICAgIDB4MDAwMCAwMDAwCQlDRkdfU0RSQU1fQkFTRQorICAgIDB4MDAwMCAwMDAwCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UKIAkgIDoKICAgICAweDAwMEYgOUZGRgogCSAgOgogCSAgOgotICAgIDB4MDEwMCAwMDAwCQlDRkdfSU1NUiAoSW50ZXJuYWwgbWVtb3J5IG1hcCBiYXNlIGFkcmVzcykKKyAgICAweDAxMDAgMDAwMAkJQ09ORklHX1NZU19JTU1SIChJbnRlcm5hbCBtZW1vcnkgbWFwIGJhc2UgYWRyZXNzKQogCSAgOgogICAgIDB4MDEzMCA3RkZGCiAJICA6CiAJICA6Ci0gICAgMHgwMjAwIDAwMDAJCUNGR19GTEFTSF9CQVNFCisgICAgMHgwMjAwIDAwMDAJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogCSAgOgogICAgIDB4MDI3QyBGRkZGCiAJICA6CmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmRrMWMyMF9zdGQzMiBiL2RvYy9SRUFETUUuZGsxYzIwX3N0ZDMyCmluZGV4IDUyMWZhYjcuLjJiZTEyOTkgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZGsxYzIwX3N0ZDMyCisrKyBiL2RvYy9SRUFETUUuZGsxYzIwX3N0ZDMyCkBAIC0yMCwyNSArMjAsMjUgQEAKIAlubyBEZWJ1ZyBDb3JlCiAJT24gQ2hpcCBJbnN0cnVtZW50YXRpb24gKE9DSSkgZW5hYmxlZAogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKLQkJCUNGR19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gMjU2Ci0JCQlDRkdfTklPU19DUFVfTVVMCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTVNURVAJICAgICA9IDEKLQkJCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCSAgICAgPSA1MDAwMDAwMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSAgICAgPSA0MDk2CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSAyNTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCiAKIE9DSToJKFRPRE8pCiAKIElSUToJIE5yLiAgfCB1c2VkIGJ5CiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIDE2ICAgfCBUSU1FUjAJICB8ICBDRkdfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2Ci0JIDI1ICAgfCBVQVJUMAkgIHwgIENGR19OSU9TX0NQVV9VQVJUMF9JUlEgID0gMjUKLQkgMzAgICB8IExBTjkxQzExMSB8ICBDRkdfTklPU19DUFVfTEFOMF9JUlEgICA9IDMwCi0JIDM1ICAgfCBQSU81CSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQotCSA0MCAgIHwgUElPMAkgIHwgIENGR19OSU9TX0NQVV9QSU8wX0lSUSAgID0gNDAKLQkgNDUgICB8IEFTTUkJICB8ICBDRkdfTklPU19DUFVfQVNNSTBfSVJRICA9IDQ1Ci0JIDUwICAgfCBUSU1FUjEJICB8ICBDRkdfTklPU19DUFVfVElNRVIxX0lSUSA9IDUwCisJIDE2ICAgfCBUSU1FUjAJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEgPSAxNgorCSAyNSAgIHwgVUFSVDAJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0lSUSAgPSAyNQorCSAzMCAgIHwgTEFOOTFDMTExIHwgIENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9JUlEgICA9IDMwCisJIDM1ICAgfCBQSU81CSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0lSUSAgID0gMzUKKwkgNDAgICB8IFBJTzAJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVJRICAgPSA0MAorCSA0NSAgIHwgQVNNSQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfQVNNSTBfSVJRICA9IDQ1CisJIDUwICAgfCBUSU1FUjEJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9JUlEgPSA1MAogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJIDEgTUJ5dGUgU1JBTQpAQCAtNDksOCArNDksOCBAQAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCVRJTUVSMTogbG93IHByaW9yaXR5IGZpeGVkIHRpbWVyIGZvciAxMCBtcyBAIDUwIE1IeiAoSVJRNTApCiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfVElDS19USU1FUgkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IDAKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfVVNFUl9USU1FUgkgICAgID0gMAogCiBQSU86CSBOci4gIHwgZGVzY3JpcHRpb24KIAktLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYzLDE0ICs2MywxNCBAQAogCSBQSU82IHwgQ0ZQT1dFUjogICAgMSBvdXRwdXQgdG8gY29udHJvbGwgQ0YgcG93ZXIgc3VwcGx5CiAJIFBJTzcgfCBDRkFUQVNFTDogICAxIG91dHB1dCB0byBjb250cm9sbCBDRiBBVEEgY2FyZCBzZWxlY3QKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9CVVRUT05fUElPCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTENEX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKLQkJCUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAzCi0JCQlDRkdfTklPU19DUFVfUkVDT05GX1BJTwkgICAgID0gNAotCQkJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKLQkJCUNGR19OSU9TX0NQVV9DRlBPV0VSX1BJTyAgICAgPSA2Ci0JCQlDRkdfTklPU19DUFVfQ0ZBVEFTRUxfUElPICAgID0gNworCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPICAgID0gMworCQkJQ09ORklHX1NZU19OSU9TX0NQVV9SRUNPTkZfUElPCSAgICAgPSA0CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8gICAgID0gNgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8gICAgPSA3CiAKIFVBUlQ6CVVBUlQwOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMSwKIAkgICAgICAgd2l0aG91dCBoYW5kc2hha2UgUlRTL0NUUyAoSVJRMjUpCkBAIC05MSwxMCArOTEsMTAgQEAKICAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TRFJBTV9TSVpFCisgIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgICA9IDB4MDEwMDAwMDAKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAvCi0gIDB4MDEwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyAgMHgwMTAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMTEwLDcgKzExMCw3IEBACiAgIEFTTUkgaS9mICAgICA6ICAgYW5kIGNvbnRlbnQgOgkgICAgICAgOiAgPiAweF9fX19fX19fCiAgIFs1XQkgICAgICAgOiAgIHVua25vd24pICAgIDoJICAgICAgIDogfAogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IC8KLSAgMHgwMDkyMGIwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfQVNNSTAKKyAgMHgwMDkyMGIwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUkwCiAJICAgICAgIHwJCQkgICAgICAgfAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOgogCSAgICAgICB8CQkJICAgICAgIHwKQEAgLTEyMCw3ICsxMjAsNyBAQAogICBJREUgaS9mICAgICAgOiAgIGFuZCBjb250ZW50IDoJICAgICAgIDogID4gMHgwMDAwMDA4MAogICBbNl0JICAgICAgIDogICB1bmtub3duKSAgICA6CSAgICAgICA6IHwKIAkgICAgICAgfAkgICAgICAgfAkgICAgICAgfCAvCi0gIDB4MDA5MjBhMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0lERTAKKyAgMHgwMDkyMGEwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0lERTAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTM2LDcgKzEzNiw3IEBACiAJICAgICAgIHwgIGNvbnRyb2wgKDEgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHN0YXR1cyAoMiBiaXQpCSAocncpICB8IC8KLSAgMHgwMDkyMDllMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVElNRVIxCisgIDB4MDA5MjA5ZTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjEKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzcJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTQ0LDcgKzE0NCw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDkyMDlkMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNworICAweDAwOTIwOWQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNwogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNgkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xNTIsNyArMTUyLDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJICh3bykgIHwgLwotICAweDAwOTIwOWMwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU82CisgIDB4MDA5MjA5YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU82CiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxIGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU81CSAgICAgICB8ICBpbnRlcnJ1cHRtYXNrICgxIGJpdCkJIChydykgIHwgfApAQCAtMTYwLDcgKzE2MCw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDkyMDliMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNQorICAweDAwOTIwOWIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNQogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xNjgsNyArMTY4LDcgQEAKIAkgICAgICAgfCAgZGlyZWN0aW9uICgxIGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAocncpICB8IC8KLSAgMHgwMDkyMDlhMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNAorICAweDAwOTIwOWEwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMwkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xNzYsNyArMTc2LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDE2IGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDkyMDk5MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMworICAweDAwOTIwOTkwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMwogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMgkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xODQsNyArMTg0LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDggYml0KQkJICh3bykgIHwgLwotICAweDAwOTIwOTgwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8yCisgIDB4MDA5MjA5ODAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8xCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE5Miw3ICsxOTIsNyBAQAogCSAgICAgICB8ICBkaXJlY3Rpb24gKDExIGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxMSBiaXQpCQkgKHJ3KSAgfCAvCi0gIDB4MDA5MjA5NzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzEKKyAgMHgwMDkyMDk3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEKIAkgICAgICAgfCAgZWRnZWNhcHR1cmUgKDQgYml0KQkgKHJ3KSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzAJICAgICAgIHwgIGludGVycnVwdG1hc2sgKDQgYml0KQkgKHJ3KSAgfCB8CkBAIC0yMDAsNyArMjAwLDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDQgYml0KQkJIChybykgIHwgLwotICAweDAwOTIwOTYwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8wCisgIDB4MDA5MjA5NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgxYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTIxNiw3ICsyMTYsNyBAQAogCSAgICAgICB8ICBjb250cm9sICg0IGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBzdGF0dXMgKDIgYml0KQkgKHJ3KSAgfCAvCi0gIDB4MDA5MjA5NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1RJTUVSMAorICAweDAwOTIwOTQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwCiAJICAgICAgIHwJCQkgICAgICAgfCBcCiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6ICA+IChzcGFjZSBmb3IgVUFSVDEpCiAJICAgICAgIHwJCQkgICAgICAgfCAvCkBAIC0yMzYsMjggKzIzNiwyOCBAQAogCSAgICAgICB8ICB0eGRhdGEgKDggYml0KQkgKHdvKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHJ4ZGF0YSAoOCBiaXQpCSAocm8pICB8IC8KLSAgMHgwMDkyMDkwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVUFSVDAKKyAgMHgwMDkyMDkwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgb24gY2hpcCBkZWJ1Z2dpbmcgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIAogICAweDAwOTIwOTAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICAgICAgIHwJCQkgICAgICAgfCBcCiAJICAgICAgIDogIChyZWFsIHNpemUJCSAgICAgICA6IHwKLSAgT0NJIERlYnVnICAgIDogICBhbmQgY29udGVudAkJICAgICAgIDogID4gQ0ZHX05JT1NfQ1BVX09DSV9TSVpFCisgIE9DSSBEZWJ1ZyAgICA6ICAgYW5kIGNvbnRlbnQJCSAgICAgICA6ICA+IENPTkZJR19TWVNfTklPU19DUFVfT0NJX1NJWkUKIAkgICAgICAgOiAgIHVua25vd24pCQkgICAgICAgOiB8ICAgPSAweDAwMDAwMTAwCiAJICAgICAgIHwJCQkgICAgICAgfCAvCi0gIDB4MDA5MjA4MDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgQ0ZHX05JT1NfQ1BVX09DSV9CQVNFCisgIDB4MDA5MjA4MDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfQkFTRQogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0Jb24gY2hpcCBtZW1vcnkJICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIAogICAweDAwOTIwODAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgXAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwKLSAgR0VSTVMJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCisgIEdFUk1TCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfUk9NX1NJWkUKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8ICAgPSAweDAwMDAwODAwCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgLwotICAweDAwOTIwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENGR19OSU9TX0NQVV9SU1RfVkVDVAotICAweDAwOTIwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9ST01fQkFTRQorICAweDAwOTIwMDAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLSAtIENPTkZJR19TWVNfTklPU19DUFVfUlNUX1ZFQ1QKKyAgMHgwMDkyMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9CQVNFCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQkgZXh0ZXJuYWwgaS9vCSAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCkBAIC0yNzksNyArMjc5LDcgQEAKIAkgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IHwKICAgMHgwMDkxMDMwMCAtLSstLUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VULS0tfCB8CiAJICAgICAgIHwJICAgICAgZ2FwCSAgICAgICB8IC8KLSAgMHgwMDkxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfTEFOMF9CQVNFCisgIDB4MDA5MTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMjkzLDMwICsyOTMsMzAgQEAKICAgMHgwMDkwMDAwMCAtLSszMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wKwogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwgXAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgfAotCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgID4gQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFCisJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCB8ICAgPSAweDAwMDAwMTAwCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAvCi0gIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtOi0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCi0gIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtOi0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1NUQUNLCisgIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtOi0gLSAtIC0gLSAtIC0gLSstfC0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQorICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLTotIC0gLSAtIC0gLSAtIC0rLXwtIENPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8ICA+IHN0YWNrIGFyZWEKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8IFYKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIFNSQU0JICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQorICBTUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDEwMDAwMAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IC8KLSAgMHgwMDgwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfU1JBTV9CQVNFCisgIDB4MDA4MDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX0JBU0UKICAgMHgwMDgwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLQogCSAgICAgICB8ICBzZWN0b3IgMTI3CQkgICAgICAgfCBcCiAgICAgKyAweDdmMDAwMCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwKLSAgRmxhc2gJICAgICAgIHwtICAgLQktICAgLSAgOiAgLSAgIC0JICAtICAgLXwgID4gQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUKKyAgRmxhc2gJICAgICAgIHwtICAgLQktICAgLSAgOiAgLSAgIC0JICAtICAgLXwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCiAJICAgICAgIHwgIHNlY3RvciAxICAgICA6CSAgICAgICB8IHwgICA9IDB4MDA4MDAwMDAKICAgICArIDB4MDEwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHNlY3RvciAwIChzaXplID0gMHgxMDAwMCkgICAgfCAvCi0gIDB4MDAwMDAwMDAgLS0tOC0tLS0tLS0tLS0tLS00fDMtLS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0ZMQVNIX0JBU0UKKyAgMHgwMDAwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX0JBU0UKIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmRrMXMxMF9tbGRrMjAgYi9kb2MvUkVBRE1FLmRrMXMxMF9tbGRrMjAKaW5kZXggZmNmODE3MC4uNzRlMDdhOSAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5kazFzMTBfbWxkazIwCisrKyBiL2RvYy9SRUFETUUuZGsxczEwX21sZGsyMApAQCAtMTgsMjkgKzE4LDI5IEBACiAJbm8gRGVidWcgQ29yZQogCW5vIE9uIENoaXAgSW5zdHJ1bWVudGF0aW9uIChPQ0kpCiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfQ0xLCSAgICAgPSA3NTAwMDAwMAotCQkJQ0ZHX05JT1NfQ1BVX0lDQUNIRQkgICAgID0gKG5vdCBwcmVzZW50KQotCQkJQ0ZHX05JT1NfQ1BVX0RDQUNIRQkgICAgID0gKG5vdCBwcmVzZW50KQotCQkJQ0ZHX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSA1MTIKLQkJCUNGR19OSU9TX0NQVV9NVUwJICAgICA9IDAKLQkJCUNGR19OSU9TX0NQVV9NU1RFUAkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9DTEsJICAgICA9IDc1MDAwMDAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0lDQUNIRQkgICAgID0gKG5vdCBwcmVzZW50KQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IChub3QgcHJlc2VudCkKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfUkVHX05VTVMJICAgICA9IDUxMgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9NVUwJICAgICA9IDAKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVNURVAJICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfREJHX0NPUkUJICAgICA9IDAKIAogSVJROgkgTnIuICB8IHVzZWQgYnkKIAktLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkgMTYgICB8IFRJTUVSMAkgIHwgIENGR19OSU9TX0NQVV9USU1FUjBfSVJRID0gMTYKLQkgMTcgICB8IFVBUlQwCSAgfCAgQ0ZHX05JT1NfQ1BVX1VBUlQwX0lSUSAgPSAxNwotCSAxOCAgIHwgVUFSVDEJICB8ICBDRkdfTklPU19DUFVfVUFSVDFfSVJRICA9IDE4Ci0JIDIwICAgfCBMQU45MUMxMTEgfCAgQ0ZHX05JT1NfQ1BVX0xBTjBfSVJRICAgPSAyMAotCSAyNSAgIHwgSURFMAkgIHwgIENGR19OSU9TX0NQVV9JREUwX0lSUSAgID0gMjUKKwkgMTYgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2CisJIDE3ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDE3CisJIDE4ICAgfCBVQVJUMQkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfSVJRICA9IDE4CisJIDIwICAgfCBMQU45MUMxMTEgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0lSUSAgID0gMjAKKwkgMjUgICB8IElERTAJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX0lERTBfSVJRICAgPSAyNQogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJMTYgTUJ5dGUgU0RSQU0KIAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDAKLQkJCUNGR19OSU9TX0NQVV9VU0VSX1RJTUVSCSAgICAgPSAobm90IHByZXNlbnQpCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IChub3QgcHJlc2VudCkKIAogUElPOgkgTnIuICB8IGRlc2NyaXB0aW9uCiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01NCwxNCArNTQsMTQgQEAKIAkgICAgICB8IENGUFJFU0VOVDogIDEgaW5wdXQgZm9yIENGIHByZXNlbnQgZXZlbnQgKElSUTM1KQogCSAgICAgIHwgQ0ZBVEFTRUw6ICAgMSBvdXRwdXQgdG8gY29udHJvbGwgQ0YgQVRBIGNhcmQgc2VsZWN0CiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0xDRF9QSU8JICAgICA9IChub3QgcHJlc2VudCkKLQkJCUNGR19OSU9TX0NQVV9MRURfUElPCSAgICAgPSAobm90IHByZXNlbnQpCi0JCQlDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPICAgID0gKG5vdCBwcmVzZW50KQotCQkJQ0ZHX05JT1NfQ1BVX1JFQ09ORl9QSU8JICAgICA9IChub3QgcHJlc2VudCkKLQkJCUNGR19OSU9TX0NQVV9DRlBSRVNFTlRfUElPICAgPSAobm90IHByZXNlbnQpCi0JCQlDRkdfTklPU19DUFVfQ0ZQT1dFUl9QSU8gICAgID0gMAotCQkJQ0ZHX05JT1NfQ1BVX0NGQVRBU0VMX1BJTyAgICA9IChub3QgcHJlc2VudCkKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX0JVVFRPTl9QSU8JICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTENEX1BJTwkgICAgID0gKG5vdCBwcmVzZW50KQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPCSAgICAgPSAobm90IHByZXNlbnQpCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyAgICA9IChub3QgcHJlc2VudCkKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkgICAgID0gKG5vdCBwcmVzZW50KQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9DRlBSRVNFTlRfUElPICAgPSAobm90IHByZXNlbnQpCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUE9XRVJfUElPICAgICA9IDAKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZBVEFTRUxfUElPICAgID0gKG5vdCBwcmVzZW50KQogCiBVQVJUOglVQVJUMDogZml4ZWQgYmF1ZHJhdGUgb2YgMTE1MjAwLCBmaXhlZCBwcm90b2NvbCA4TjIsCiAJICAgICAgIHdpdGhvdXQgaGFuZHNoYWtlIFJUUy9DVFMgKElSUTE3KQpAQCAtODEsNyArODEsNyBAQAogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gICBleHRlcm5hbCBtZW1vcnkgICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKLSAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfU1RBQ0sKKyAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NUQUNLCiAgIDB4MDIwMDAwMDAgLS0rMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMCsKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCBcIFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKQEAgLTkwLDI1ICs5MCwyNSBAQAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgVgogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8Ci0gIFNEUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TRFJBTV9TSVpFCisgIFNEUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgICA9IDB4MDEwMDAwMDAKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8CiAgIDB4MDEwMDAxMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0KIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKLQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IENGR19OSU9TX0NQVV9WRUNfU0laRQorCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfU0laRQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfCAgID0gMHgwMDAwMDEwMAogCSAgICAgICB8CQkJICAgICAgIHwgLyAvCi0gIDB4MDEwMDAwMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstIC0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCi0gIDB4MDEwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyAgMHgwMTAwMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFCisgIDB4MDEwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCiAJICAgICAgIHwgIHNlY3RvciAxMjcJCSAgICAgICB8IFwKICAgICArIDB4N2YwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDRkdfTklPU19DUFVfRkxBU0hfU0laRQorICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUKIAkgICAgICAgfCAgc2VjdG9yIDEgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDgwMDAwMAogICAgICsgMHgwMTAwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc2VjdG9yIDAgKHNpemUgPSAweDEwMDAwKSAgICB8IC8KLSAgMHgwMDgwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfRkxBU0hfQkFTRQorICAweDAwODAwMDAwIC0tLTgtLS0tLS0tLS0tLS0tNHwzLS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgOgkJCSAgICAgICA6CkBAIC0xMzYsNyArMTM2LDcgQEAKIAkgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IHwKICAgMHgwMDAxMDMwMCAtLSstLUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VULS0tfCB8CiAJICAgICAgIHwJICAgICAgZ2FwCSAgICAgICB8IC8KLSAgMHgwMDAxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfTEFOMF9CQVNFCisgIDB4MDAwMTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMTUyLDcgKzE1Miw3IEBACiAgIElERSBpL2YgICAgICA6ICAgYW5kIGNvbnRlbnQgOgkgICAgICAgOiAgPiAweDAwMDAwMDgwCiAgIFs1XQkgICAgICAgOiAgIHVua25vd24pICAgIDoJICAgICAgIDogfAogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IC8KLSAgMHgwMDAwMDkwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfSURFMAorICAweDAwMDAwOTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfSURFMAogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOiAgPiAoc3BhY2UgZm9yIFBJTzQuLjcpCiAJICAgICAgIHwJCQkgICAgICAgfCAvCkBAIC0xNzIsNyArMTcyLDcgQEAKIAkgICAgICAgfCAgdHhkYXRhICg4IGJpdCkJICh3bykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICByeGRhdGEgKDggYml0KQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA4YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1VBUlQxCisgIDB4MDAwMDA4YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMQogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOiAgPiAoc3BhY2UgZm9yIFBJTzIuLjMpCiAJICAgICAgIHwJCQkgICAgICAgfCAvCkBAIC0xODQsNyArMTg0LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDQgYml0KQkJIChybykgIHwgLwotICAweDAwMDAwODcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8xCisgIDB4MDAwMDA4NzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8wCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE5Miw3ICsxOTIsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDAwMDA4NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzAKKyAgMHgwMDAwMDg2MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMjA4LDcgKzIwOCw3IEBACiAJICAgICAgIHwgIGNvbnRyb2wgKDQgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHN0YXR1cyAoMiBiaXQpCSAocncpICB8IC8KLSAgMHgwMDAwMDg0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVElNRVIwCisgIDB4MDAwMDA4NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAKIAkgICAgICAgfAkJCSAgICAgICB8IFwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDogID4gKHNwYWNlIGZvciBVQVJUMikKIAkgICAgICAgfAkJCSAgICAgICB8IC8KQEAgLTIyOCwxOCArMjI4LDE4IEBACiAJICAgICAgIHwgIHR4ZGF0YSAoOCBiaXQpCSAod28pICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgcnhkYXRhICg4IGJpdCkJIChybykgIHwgLwotICAweDAwMDAwODAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9VQVJUMAorICAweDAwMDAwODAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDAKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBvbiBjaGlwIG1lbW9yeSAxCSAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKICAgMHgwMDAwMDgwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIEdFUk1TCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9ST01fU0laRQorICBHRVJNUwkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDAwMDgwMAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IC8KLSAgMHgwMDAwMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDRkdfTklPU19DUFVfUlNUX1ZFQ1QKLSAgMHgwMDAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUk9NX0JBU0UKKyAgMHgwMDAwMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCisgIDB4MDAwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAJRiBMIEEgUyBIICAgTSBFIE0gTyBSIFkJICBBIEwgTCBPIEMgQSBUIEkgTyBOCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmRrMXMxMF9zdGQzMiBiL2RvYy9SRUFETUUuZGsxczEwX3N0ZDMyCmluZGV4IGQ2NDllYjMuLjYyMmIyYjkgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZGsxczEwX3N0ZDMyCisrKyBiL2RvYy9SRUFETUUuZGsxczEwX3N0ZDMyCkBAIC0xOSwyNCArMTksMjQgQEAKIAlubyBEZWJ1ZyBDb3JlCiAJT24gQ2hpcCBJbnN0cnVtZW50YXRpb24gKE9DSSkgZW5hYmxlZAogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKLQkJCUNGR19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gMjU2Ci0JCQlDRkdfTklPU19DUFVfTVVMCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTVNURVAJICAgICA9IDEKLQkJCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCSAgICAgPSA1MDAwMDAwMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSAgICAgPSA0MDk2CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSAyNTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCiAKIE9DSToJKFRPRE8pCiAKIElSUToJIE5yLiAgfCB1c2VkIGJ5CiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIDE2ICAgfCBUSU1FUjAJICB8ICBDRkdfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2Ci0JIDI1ICAgfCBVQVJUMAkgIHwgIENGR19OSU9TX0NQVV9VQVJUMF9JUlEgID0gMjUKLQkgMzAgICB8IExBTjkxQzExMSB8ICBDRkdfTklPU19DUFVfTEFOMF9JUlEgICA9IDMwCi0JIDM1ICAgfCBQSU81CSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQotCSA0MCAgIHwgUElPMAkgIHwgIENGR19OSU9TX0NQVV9QSU8wX0lSUSAgID0gNDAKLQkgNTAgICB8IFRJTUVSMQkgIHwgIENGR19OSU9TX0NQVV9USU1FUjFfSVJRID0gNTAKKwkgMTYgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2CisJIDI1ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDI1CisJIDMwICAgfCBMQU45MUMxMTEgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0lSUSAgID0gMzAKKwkgMzUgICB8IFBJTzUJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQorCSA0MCAgIHwgUElPMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMF9JUlEgICA9IDQwCisJIDUwICAgfCBUSU1FUjEJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9JUlEgPSA1MAogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJIDEgTUJ5dGUgU1JBTQpAQCAtNDUsOCArNDUsOCBAQAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCVRJTUVSMTogbG93IHByaW9yaXR5IGZpeGVkIHRpbWVyIGZvciAxMCBtcyBAIDUwIE1IeiAoSVJRNTApCiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfVElDS19USU1FUgkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IDAKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfVVNFUl9USU1FUgkgICAgID0gMAogCiBQSU86CSBOci4gIHwgZGVzY3JpcHRpb24KIAktLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTU5LDE0ICs1OSwxNCBAQAogCSBQSU82IHwgQ0ZQT1dFUjogICAgMSBvdXRwdXQgdG8gY29udHJvbGwgQ0YgcG93ZXIgc3VwcGx5CiAJIFBJTzcgfCBDRkFUQVNFTDogICAxIG91dHB1dCB0byBjb250cm9sbCBDRiBBVEEgY2FyZCBzZWxlY3QKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9CVVRUT05fUElPCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTENEX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKLQkJCUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAzCi0JCQlDRkdfTklPU19DUFVfUkVDT05GX1BJTwkgICAgID0gNAotCQkJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKLQkJCUNGR19OSU9TX0NQVV9DRlBPV0VSX1BJTyAgICAgPSA2Ci0JCQlDRkdfTklPU19DUFVfQ0ZBVEFTRUxfUElPICAgID0gNworCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPICAgID0gMworCQkJQ09ORklHX1NZU19OSU9TX0NQVV9SRUNPTkZfUElPCSAgICAgPSA0CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8gICAgID0gNgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8gICAgPSA3CiAKIFVBUlQ6CVVBUlQwOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMSwKIAkgICAgICAgd2l0aG91dCBoYW5kc2hha2UgUlRTL0NUUyAoSVJRMjUpCkBAIC04NywxMCArODcsMTAgQEAKICAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TRFJBTV9TSVpFCisgIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgICA9IDB4MDEwMDAwMDAKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAvCi0gIDB4MDEwMDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyAgMHgwMTAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UKIAkgICAgICAgfAkJCSAgICAgICB8CiAJICAgICAgIDoJICAgICAgZ2FwCSAgICAgICA6CiAJICAgICAgIDoJCQkgICAgICAgOgpAQCAtMTA2LDcgKzEwNiw3IEBACiAgIElERSBpL2YgICAgICA6ICAgYW5kIGNvbnRlbnQgOgkgICAgICAgOiAgPiAweDAwMDAwMDgwCiAgIFs1XQkgICAgICAgOiAgIHVua25vd24pICAgIDoJICAgICAgIDogfAogCSAgICAgICB8CSAgICAgICB8CSAgICAgICB8IC8KLSAgMHgwMDkyMGEwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfSURFMAorICAweDAwOTIwYTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfSURFMAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MWMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xMjIsNyArMTIyLDcgQEAKIAkgICAgICAgfCAgY29udHJvbCAoMSBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc3RhdHVzICgyIGJpdCkJIChydykgIHwgLwotICAweDAwOTIwOWUwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9USU1FUjEKKyAgMHgwMDkyMDllMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMQogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNwkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xMzAsNyArMTMwLDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJICh3bykgIHwgLwotICAweDAwOTIwOWQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU83CisgIDB4MDA5MjA5ZDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU83CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU82CSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTEzOCw3ICsxMzgsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDA5MjA5YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzYKKyAgMHgwMDkyMDljMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzYKIAkgICAgICAgfCAgZWRnZWNhcHR1cmUgKDEgYml0KQkgKHJ3KSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzUJICAgICAgIHwgIGludGVycnVwdG1hc2sgKDEgYml0KQkgKHJ3KSAgfCB8CkBAIC0xNDYsNyArMTQ2LDcgQEAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJIChybykgIHwgLwotICAweDAwOTIwOWIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU81CisgIDB4MDA5MjA5YjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU81CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU80CSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE1NCw3ICsxNTQsNyBAQAogCSAgICAgICB8ICBkaXJlY3Rpb24gKDEgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDEgYml0KQkJIChydykgIHwgLwotICAweDAwOTIwOWEwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU80CisgIDB4MDA5MjA5YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU80CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8zCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE2Miw3ICsxNjIsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTYgYml0KQkJICh3bykgIHwgLwotICAweDAwOTIwOTkwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8zCisgIDB4MDA5MjA5OTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8yCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE3MCw3ICsxNzAsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoOCBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDA5MjA5ODAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzIKKyAgMHgwMDkyMDk4MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzEJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTc4LDcgKzE3OCw3IEBACiAJICAgICAgIHwgIGRpcmVjdGlvbiAoMTEgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDExIGJpdCkJCSAocncpICB8IC8KLSAgMHgwMDkyMDk3MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMQorICAweDAwOTIwOTcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMQogCSAgICAgICB8ICBlZGdlY2FwdHVyZSAoNCBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMAkgICAgICAgfCAgaW50ZXJydXB0bWFzayAoNCBiaXQpCSAocncpICB8IHwKQEAgLTE4Niw3ICsxODYsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoNCBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDA5MjA5NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzAKKyAgMHgwMDkyMDk2MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDFjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMjAyLDcgKzIwMiw3IEBACiAJICAgICAgIHwgIGNvbnRyb2wgKDQgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHN0YXR1cyAoMiBiaXQpCSAocncpICB8IC8KLSAgMHgwMDkyMDk0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVElNRVIwCisgIDB4MDA5MjA5NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAKIAkgICAgICAgfAkJCSAgICAgICB8IFwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDogID4gKHNwYWNlIGZvciBVQVJUMSkKIAkgICAgICAgfAkJCSAgICAgICB8IC8KQEAgLTIyMiwyOCArMjIyLDI4IEBACiAJICAgICAgIHwgIHR4ZGF0YSAoOCBiaXQpCSAod28pICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgcnhkYXRhICg4IGJpdCkJIChybykgIHwgLwotICAweDAwOTIwOTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9VQVJUMAorICAweDAwOTIwOTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDAKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBvbiBjaGlwIGRlYnVnZ2luZyAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCiAgIDB4MDA5MjA5MDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgICAgICAgfAkJCSAgICAgICB8IFwKIAkgICAgICAgOiAgKHJlYWwgc2l6ZQkJICAgICAgIDogfAotICBPQ0kgRGVidWcgICAgOiAgIGFuZCBjb250ZW50CQkgICAgICAgOiAgPiBDRkdfTklPU19DUFVfT0NJX1NJWkUKKyAgT0NJIERlYnVnICAgIDogICBhbmQgY29udGVudAkJICAgICAgIDogID4gQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQogCSAgICAgICA6ICAgdW5rbm93bikJCSAgICAgICA6IHwgICA9IDB4MDAwMDAxMDAKIAkgICAgICAgfAkJCSAgICAgICB8IC8KLSAgMHgwMDkyMDgwMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICBDRkdfTklPU19DUFVfT0NJX0JBU0UKKyAgMHgwMDkyMDgwMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgb24gY2hpcCBtZW1vcnkgMgkgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCiAgIDB4MDA5MjA4MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0KIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCBcCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBHRVJNUwkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDRkdfTklPU19DUFVfUk9NX1NJWkUKKyAgR0VSTVMJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9ST01fU0laRQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgICA9IDB4MDAwMDA4MDAKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAvCi0gIDB4MDA5MjAwMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstIC0gQ0ZHX05JT1NfQ1BVX1JTVF9WRUNUCi0gIDB4MDA5MjAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1JPTV9CQVNFCisgIDB4MDA5MjAwMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstIC0gQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVAorICAweDAwOTIwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUk9NX0JBU0UKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtCSBleHRlcm5hbCBpL28JICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKQEAgLTI2NSwxNyArMjY1LDE3IEBACiAJICAgICAgIHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCB8CiAgIDB4MDA5MTAzMDAgLS0rLS1MQU45MUMxMTFfUkVHSVNURVJTX09GRlNFVC0tLXwgfAogCSAgICAgICB8CSAgICAgIGdhcAkgICAgICAgfCAvCi0gIDB4MDA5MTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0xBTjBfQkFTRQorICAweDAwOTEwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgb24gY2hpcCBtZW1vcnkgMQkgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCiAgIDB4MDA5MTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0KIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCBcCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBvbmNoaXAgUkFNICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDRkdfTklPU19DUFVfUkFNX1NJWkUKKyAgb25jaGlwIFJBTSAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fU0laRQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwgICA9IDB4MDAwMTAwMDAKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAvCi0gIDB4MDA5MDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1JBTV9CQVNFCisgIDB4MDA5MDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fQkFTRQogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gIGV4dGVybmFsIG1lbW9yeSAxICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKQEAgLTI4MywzMCArMjgzLDMwIEBACiAgIDB4MDA5MDAwMDAgLS0rMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMCsKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCBcIFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKLQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IENGR19OSU9TX0NQVV9WRUNfU0laRQorCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfU0laRQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfCAgID0gMHgwMDAwMDEwMAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgLwotICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENGR19OSU9TX0NQVV9WRUNfQkFTRQotICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENGR19OSU9TX0NQVV9TVEFDSworICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENPTkZJR19TWVNfTklPU19DUFVfVkVDX0JBU0UKKyAgMHgwMDhmZmYwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy18LSBDT05GSUdfU1lTX05JT1NfQ1BVX1NUQUNLCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCBcCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8CiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgPiBzdGFjayBhcmVhCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8CiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCBWCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfAotICBTUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TUkFNX1NJWkUKKyAgU1JBTQkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRQogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgICA9IDB4MDAxMDAwMDAKIAkgICAgICAgfAkJCSAgICAgICB8IC8KLSAgMHgwMDgwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfU1JBTV9CQVNFCisgIDB4MDA4MDAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX0JBU0UKICAgMHgwMDgwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLQogCSAgICAgICB8ICBzZWN0b3IgMTI3CQkgICAgICAgfCBcCiAgICAgKyAweDdmMDAwMCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IHwKLSAgRmxhc2gJICAgICAgIHwtICAgLQktICAgLSAgOiAgLSAgIC0JICAtICAgLXwgID4gQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUKKyAgRmxhc2gJICAgICAgIHwtICAgLQktICAgLSAgOiAgLSAgIC0JICAtICAgLXwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCiAJICAgICAgIHwgIHNlY3RvciAxICAgICA6CSAgICAgICB8IHwgICA9IDB4MDA4MDAwMDAKICAgICArIDB4MDEwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHNlY3RvciAwIChzaXplID0gMHgxMDAwMCkgICAgfCAvCi0gIDB4MDAwMDAwMDAgLS0tOC0tLS0tLS0tLS0tLS00fDMtLS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX0ZMQVNIX0JBU0UKKyAgMHgwMDAwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX0JBU0UKIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmRrMXM0MF9zdGQzMiBiL2RvYy9SRUFETUUuZGsxczQwX3N0ZDMyCmluZGV4IDA4YzgyNDQuLjlhMGVhMDYgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZGsxczQwX3N0ZDMyCisrKyBiL2RvYy9SRUFETUUuZGsxczQwX3N0ZDMyCkBAIC0xOSwyNCArMTksMjQgQEAKIAlubyBEZWJ1ZyBDb3JlCiAJT24gQ2hpcCBJbnN0cnVtZW50YXRpb24gKE9DSSkgZW5hYmxlZAogCi0JVS1Cb290IENGRzoJQ0ZHX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKLQkJCUNGR19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9EQ0FDSEUJICAgICA9IDQwOTYKLQkJCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gMjU2Ci0JCQlDRkdfTklPU19DUFVfTVVMCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTVNURVAJICAgICA9IDEKLQkJCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAorCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCSAgICAgPSA1MDAwMDAwMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJICAgICA9IDQwOTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSAgICAgPSA0MDk2CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCSAgICAgPSAyNTYKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCSAgICAgPSAwCiAKIE9DSToJKFRPRE8pCiAKIElSUToJIE5yLiAgfCB1c2VkIGJ5CiAJLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIDE2ICAgfCBUSU1FUjAJICB8ICBDRkdfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2Ci0JIDI1ICAgfCBVQVJUMAkgIHwgIENGR19OSU9TX0NQVV9VQVJUMF9JUlEgID0gMjUKLQkgMzAgICB8IExBTjkxQzExMSB8ICBDRkdfTklPU19DUFVfTEFOMF9JUlEgICA9IDMwCi0JIDM1ICAgfCBQSU81CSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQotCSA0MCAgIHwgUElPMAkgIHwgIENGR19OSU9TX0NQVV9QSU8wX0lSUSAgID0gNDAKLQkgNTAgICB8IFRJTUVSMQkgIHwgIENGR19OSU9TX0NQVV9USU1FUjFfSVJRID0gNTAKKwkgMTYgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDE2CisJIDI1ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDI1CisJIDMwICAgfCBMQU45MUMxMTEgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0lSUSAgID0gMzAKKwkgMzUgICB8IFBJTzUJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVJRICAgPSAzNQorCSA0MCAgIHwgUElPMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfUElPMF9JUlEgICA9IDQwCisJIDUwICAgfCBUSU1FUjEJICB8ICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9JUlEgPSA1MAogCiBNRU1PUlk6CSA4IE1CeXRlIEZsYXNoCiAJIDEgTUJ5dGUgU1JBTQpAQCAtNDUsOCArNDUsOCBAQAogVGltZXI6CVRJTUVSMDogaGlnaCBwcmlvcml0eSBwcm9ncmFtbWFibGUgdGltZXIgKElSUTE2KQogCVRJTUVSMTogbG93IHByaW9yaXR5IGZpeGVkIHRpbWVyIGZvciAxMCBtcyBAIDUwIE1IeiAoSVJRNTApCiAKLQlVLUJvb3QgQ0ZHOglDRkdfTklPU19DUFVfVElDS19USU1FUgkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJICAgICA9IDAKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIJICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfVVNFUl9USU1FUgkgICAgID0gMAogCiBQSU86CSBOci4gIHwgZGVzY3JpcHRpb24KIAktLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTU5LDE0ICs1OSwxNCBAQAogCSBQSU82IHwgQ0ZQT1dFUjogICAgMSBvdXRwdXQgdG8gY29udHJvbGwgQ0YgcG93ZXIgc3VwcGx5CiAJIFBJTzcgfCBDRkFUQVNFTDogICAxIG91dHB1dCB0byBjb250cm9sbCBDRiBBVEEgY2FyZCBzZWxlY3QKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9CVVRUT05fUElPCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTENEX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKLQkJCUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAzCi0JCQlDRkdfTklPU19DUFVfUkVDT05GX1BJTwkgICAgID0gNAotCQkJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKLQkJCUNGR19OSU9TX0NQVV9DRlBPV0VSX1BJTyAgICAgPSA2Ci0JCQlDRkdfTklPU19DUFVfQ0ZBVEFTRUxfUElPICAgID0gNworCVUtQm9vdCBDRkc6CUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAxCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDIKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPICAgID0gMworCQkJQ09ORklHX1NZU19OSU9TX0NQVV9SRUNPTkZfUElPCSAgICAgPSA0CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8gICA9IDUKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8gICAgID0gNgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8gICAgPSA3CiAKIFVBUlQ6CVVBUlQwOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMSwKIAkgICAgICAgd2l0aG91dCBoYW5kc2hha2UgUlRTL0NUUyAoSVJRMjUpCkBAIC04NywxMCArODcsMTAgQEAKICAgMHgwMjAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIFNEUkFNCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9TUkFNX1NJWkUKKyAgU0RSQU0JICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8ICAgPSAweDAxMDAwMDAwCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgLwotICAweDAxMDAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TUkFNX0JBU0UKKyAgMHgwMTAwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgOgkJCSAgICAgICA6CkBAIC0xMDYsNyArMTA2LDcgQEAKICAgSURFIGkvZiAgICAgIDogICBhbmQgY29udGVudCA6CSAgICAgICA6ICA+IDB4MDAwMDAwODAKICAgWzVdCSAgICAgICA6ICAgdW5rbm93bikgICAgOgkgICAgICAgOiB8CiAJICAgICAgIHwJICAgICAgIHwJICAgICAgIHwgLwotICAweDAwOTIwYTAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9JREUwCisgIDB4MDA5MjBhMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9JREUwCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgxYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTEyMiw3ICsxMjIsNyBAQAogCSAgICAgICB8ICBjb250cm9sICgxIGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBzdGF0dXMgKDIgYml0KQkgKHJ3KSAgfCAvCi0gIDB4MDA5MjA5ZTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1RJTUVSMQorICAweDAwOTIwOWUwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU83CSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTEzMCw3ICsxMzAsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDA5MjA5ZDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzcKKyAgMHgwMDkyMDlkMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzcKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzYJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTM4LDcgKzEzOCw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxIGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDkyMDljMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPNgorICAweDAwOTIwOWMwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPNgogCSAgICAgICB8ICBlZGdlY2FwdHVyZSAoMSBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPNQkgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMSBiaXQpCSAocncpICB8IHwKQEAgLTE0Niw3ICsxNDYsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJvKSAgfCAvCi0gIDB4MDA5MjA5YjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzUKKyAgMHgwMDkyMDliMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzUKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzQJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTU0LDcgKzE1NCw3IEBACiAJICAgICAgIHwgIGRpcmVjdGlvbiAoMSBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMSBiaXQpCQkgKHJ3KSAgfCAvCi0gIDB4MDA5MjA5YTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzQKKyAgMHgwMDkyMDlhMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzQKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzMJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTYyLDcgKzE2Miw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICgxNiBiaXQpCQkgKHdvKSAgfCAvCi0gIDB4MDA5MjA5OTAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1BJTzMKKyAgMHgwMDkyMDk5MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCBcCiAJKyAweDBjIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAgIFBJTzIJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfApAQCAtMTcwLDcgKzE3MCw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICg4IGJpdCkJCSAod28pICB8IC8KLSAgMHgwMDkyMDk4MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMgorICAweDAwOTIwOTgwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMgogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMQkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0xNzgsNyArMTc4LDcgQEAKIAkgICAgICAgfCAgZGlyZWN0aW9uICgxMSBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTEgYml0KQkJIChydykgIHwgLwotICAweDAwOTIwOTcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8xCisgIDB4MDA5MjA5NzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICg0IGJpdCkJIChydykgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8wCSAgICAgICB8ICBpbnRlcnJ1cHRtYXNrICg0IGJpdCkJIChydykgIHwgfApAQCAtMTg2LDcgKzE4Niw3IEBACiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBkYXRhICg0IGJpdCkJCSAocm8pICB8IC8KLSAgMHgwMDkyMDk2MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUElPMAorICAweDAwOTIwOTYwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfUElPMAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IFwKIAkrIDB4MWMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfAkJICAgICAodW51c2VkKSAgfCB8CkBAIC0yMDIsNyArMjAyLDcgQEAKIAkgICAgICAgfCAgY29udHJvbCAoNCBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc3RhdHVzICgyIGJpdCkJIChydykgIHwgLwotICAweDAwOTIwOTQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9USU1FUjAKKyAgMHgwMDkyMDk0MCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMAogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6CSAgICAgIGdhcAkgICAgICAgOiAgPiAoc3BhY2UgZm9yIFVBUlQxKQogCSAgICAgICB8CQkJICAgICAgIHwgLwpAQCAtMjIyLDI4ICsyMjIsMjggQEAKIAkgICAgICAgfCAgdHhkYXRhICg4IGJpdCkJICh3bykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICByeGRhdGEgKDggYml0KQkgKHJvKSAgfCAvCi0gIDB4MDA5MjA5MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1VBUlQwCisgIDB4MDA5MjA5MDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMAogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gIG9uIGNoaXAgZGVidWdnaW5nICAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKICAgMHgwMDkyMDkwMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCSAgICAgICB8CQkJICAgICAgIHwgXAogCSAgICAgICA6ICAocmVhbCBzaXplCQkgICAgICAgOiB8Ci0gIE9DSSBEZWJ1ZyAgICA6ICAgYW5kIGNvbnRlbnQJCSAgICAgICA6ICA+IENGR19OSU9TX0NQVV9PQ0lfU0laRQorICBPQ0kgRGVidWcgICAgOiAgIGFuZCBjb250ZW50CQkgICAgICAgOiAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9TSVpFCiAJICAgICAgIDogICB1bmtub3duKQkJICAgICAgIDogfCAgID0gMHgwMDAwMDEwMAogCSAgICAgICB8CQkJICAgICAgIHwgLwotICAweDAwOTIwODAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgIENGR19OSU9TX0NQVV9PQ0lfQkFTRQorICAweDAwOTIwODAwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgIENPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBvbiBjaGlwIG1lbW9yeSAyCSAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKICAgMHgwMDkyMDgwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIEdFUk1TCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9ST01fU0laRQorICBHRVJNUwkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDAwMDgwMAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IC8KLSAgMHgwMDkyMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDRkdfTklPU19DUFVfUlNUX1ZFQ1QKLSAgMHgwMDkyMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUk9NX0JBU0UKKyAgMHgwMDkyMDAwMCAgIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtKy0gLSBDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCisgIDB4MDA5MjAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQogCiAtIC0gLSAtIC0gLSAtIC0gLSAtIC0JIGV4dGVybmFsIGkvbwkgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIApAQCAtMjY1LDE3ICsyNjUsMTcgQEAKIAkgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IHwKICAgMHgwMDkxMDMwMCAtLSstLUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VULS0tfCB8CiAJICAgICAgIHwJICAgICAgZ2FwCSAgICAgICB8IC8KLSAgMHgwMDkxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfTEFOMF9CQVNFCisgIDB4MDA5MTAwMDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UKIAogLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBvbiBjaGlwIG1lbW9yeSAxCSAgLSAtIC0gLSAtIC0gLSAtIC0gLSAtCiAKICAgMHgwMDkxMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLQogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IFwKIAkgICAgICAgfAkgICAgICAgOgkgICAgICAgfCB8Ci0gIG9uY2hpcCBSQU0gICB8CSAgICAgICA6CSAgICAgICB8ICA+IENGR19OSU9TX0NQVV9SQU1fU0laRQorICBvbmNoaXAgUkFNICAgfAkgICAgICAgOgkgICAgICAgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9TSVpFCiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDAxMDAwMAogCSAgICAgICB8CSAgICAgICA6CSAgICAgICB8IC8KLSAgMHgwMDkwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfUkFNX0JBU0UKKyAgMHgwMDkwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9CQVNFCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAgZXh0ZXJuYWwgbWVtb3J5IDEgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KIApAQCAtMjgzLDMwICsyODMsMzAgQEAKICAgMHgwMDkwMDAwMCAtLSszMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wKwogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IFwgXAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfAotCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFCisJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8ICAgPSAweDAwMDAwMTAwCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAvCi0gIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCi0gIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1NUQUNLCisgIDB4MDA4ZmZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQorICAweDAwOGZmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IHN0YWNrIGFyZWEKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFYKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8Ci0gIFNSQU0JICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQorICBTUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgID0gMHgwMDEwMDAwMAogCSAgICAgICB8CQkJICAgICAgIHwgLwotICAweDAwODAwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TUkFNX0JBU0UKKyAgMHgwMDgwMDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRQogICAweDAwODAwMDAwIC0tLTgtLS0tLS0tLS0tLS0tNHwzLS0tLS0tLS0tLS0tLTAtCiAJICAgICAgIHwgIHNlY3RvciAxMjcJCSAgICAgICB8IFwKICAgICArIDB4N2YwMDAwIHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwJICAgICAgIDoJICAgICAgIHwgfAotICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDRkdfTklPU19DUFVfRkxBU0hfU0laRQorICBGbGFzaAkgICAgICAgfC0gICAtCS0gICAtICA6ICAtICAgLQkgIC0gICAtfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUKIAkgICAgICAgfCAgc2VjdG9yIDEgICAgIDoJICAgICAgIHwgfCAgID0gMHgwMDgwMDAwMAogICAgICsgMHgwMTAwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc2VjdG9yIDAgKHNpemUgPSAweDEwMDAwKSAgICB8IC8KLSAgMHgwMDAwMDAwMCAtLS04LS0tLS0tLS0tLS0tLTR8My0tLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfRkxBU0hfQkFTRQorICAweDAwMDAwMDAwIC0tLTgtLS0tLS0tLS0tLS0tNHwzLS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUuZGsyMGsyMDBfc3RkMzIgYi9kb2MvUkVBRE1FLmRrMjBrMjAwX3N0ZDMyCmluZGV4IDdiNWQ0ZDQuLmZjMmQyYTMgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZGsyMGsyMDBfc3RkMzIKKysrIGIvZG9jL1JFQURNRS5kazIwazIwMF9zdGQzMgpAQCAtMTUsMjAgKzE1LDIwIEBACiAJbm8gRGVidWcgQ29yZQogCW5vIE9uIENoaXAgSW5zdHJ1bWVudGF0aW9uIChPQ0kpIGVuYWJsZWQKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9DTEsJICAgICA9IDUwMDAwMDAwCi0JCQlDRkdfTklPU19DUFVfSUNBQ0hFCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfRENBQ0hFCSAgICAgPSAwCi0JCQlDRkdfTklPU19DUFVfUkVHX05VTVMJICAgICA9IDI1NgotCQkJQ0ZHX05JT1NfQ1BVX01VTAkgICAgID0gMAotCQkJQ0ZHX05JT1NfQ1BVX01TVEVQCSAgICAgPSAxCi0JCQlDRkdfTklPU19DUFVfREJHX0NPUkUJICAgICA9IDAKKwlVLUJvb3QgQ0ZHOglDT05GSUdfU1lTX05JT1NfQ1BVX0NMSwkgICAgID0gNTAwMDAwMDAKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfSUNBQ0hFCSAgICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9SRUdfTlVNUwkgICAgID0gMjU2CisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX01VTAkgICAgID0gMAorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9NU1RFUAkgICAgID0gMQorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9EQkdfQ09SRQkgICAgID0gMAogCiBJUlE6CSBOci4gIHwgdXNlZCBieQogCS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCSAyNSAgIHwgVElNRVIwCSAgfCAgQ0ZHX05JT1NfQ1BVX1RJTUVSMF9JUlEgPSAyNQotCSAyNiAgIHwgVUFSVDAJICB8ICBDRkdfTklPU19DUFVfVUFSVDBfSVJRICA9IDI2Ci0JIDI3ICAgfCBQSU8yCSAgfCAgQ0ZHX05JT1NfQ1BVX1BJTzJfSVJRICAgPSAyNwotCSAyOCAgIHwgVUFSVDEJICB8ICBDRkdfTklPU19DUFVfVUFSVDFfSVJRICA9IDI4ICAgIChkZWJ1ZykKKwkgMjUgICB8IFRJTUVSMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUSA9IDI1CisJIDI2ICAgfCBVQVJUMAkgIHwgIENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRICA9IDI2CisJIDI3ICAgfCBQSU8yCSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0lSUSAgID0gMjcKKwkgMjggICB8IFVBUlQxCSAgfCAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9JUlEgID0gMjggICAgKGRlYnVnKQogCiBNRU1PUlk6CSAgMSBNQnl0ZSBGbGFzaAogCTI1NiBLQnl0ZSBTUkFNCkBAIC0zNiw3ICszNiw3IEBACiAKIFRpbWVyOglUSU1FUjA6IGhpZ2ggcHJpb3JpdHkgcHJvZ3JhbW1hYmxlIHRpbWVyIChJUlEyNSkKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9USUNLX1RJTUVSCSAgICAgPSAwCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSCSAgICAgPSAwCiAKIFBJTzoJIE5yLiAgfCBkZXNjcmlwdGlvbgogCS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDUsMTAgKzQ1LDEwIEBACiAJIFBJTzIgfCBCVVRUT046CSAgICA0IGlucHV0cyBmb3IgdXNlciBwdXNoIGJ1dHRvbnMgKElSUTI3KQogCSBQSU8zIHwgTENEOgkgICAxMSBpbi9vdXRwdXRzIGZvciBBU0NJSSBMQ0QKIAotCVUtQm9vdCBDRkc6CUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAwCi0JCQlDRkdfTklPU19DUFVfTEVEX1BJTwkgICAgID0gMQotCQkJQ0ZHX05JT1NfQ1BVX0JVVFRPTl9QSU8JICAgICA9IDIKLQkJCUNGR19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAzCisJVS1Cb290IENGRzoJQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gICAgPSAwCisJCQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JICAgICA9IDEKKwkJCUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkgICAgID0gMgorCQkJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCSAgICAgPSAzCiAKIFVBUlQ6CVVBUlQwOiBmaXhlZCBiYXVkcmF0ZSBvZiAxMTUyMDAsIGZpeGVkIHByb3RvY29sIDhOMiwKIAkgICAgICAgd2l0aG91dCBoYW5kc2hha2UgUlRTL0NUUyAoSVJRMjYpCkBAIC03MCw3ICs3MCw3IEBACiAJICAgICAgIHwgIHNlY3RvciA1ICAgICA6CSAgICAgICB8IHwKICAgICArIDB4MDIwMDAwIHwtICAgLQktICAgLSAgLSAgLSAgIC0JICAtICAgLXwgfAogCSAgICAgICB8ICBzZWN0b3IgNCAoc2l6ZSA9IDB4MTAwMDApICAgIHwgfAotICAgICsgMHgwMTAwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18ICA+IENGR19OSU9TX0NQVV9GTEFTSF9TSVpFCisgICAgKyAweDAxMDAwMCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgID4gQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCiAJICAgICAgIHwgIHNlY3RvciAzIChzaXplID0gMHgwODAwMCkgICAgfCB8ICAgPSAweDAwMTAwMDAwCiAgICAgKyAweDAwODAwMCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBzZWN0b3IgMiAoc2l6ZSA9IDB4MDIwMDApICAgIHwgfApAQCAtNzgsNyArNzgsNyBAQAogCSAgICAgICB8ICBzZWN0b3IgMSAoc2l6ZSA9IDB4MDIwMDApICAgIHwgfAogICAgICsgMHgwMDQwMDAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgc2VjdG9yIDAgKHNpemUgPSAweDA0MDAwKSAgICB8IC8KLSAgMHgwMDEwMDAwMCAtLS0xNS0tLS0tLS0tLS0tLTh8Ny0tLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfRkxBU0hfQkFTRQorICAweDAwMTAwMDAwIC0tLTE1LS0tLS0tLS0tLS0tOHw3LS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgfAkJCSAgICAgICB8CkBAIC04NiwyMSArODYsMjEgQEAKICAgMHgwMDA4MDAwMCAtLSszMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wKwogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IFwgXAogCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgfAotCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8IHwgID4gQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFCisJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgPiBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCB8ICAgPSAweDAwMDAwMTAwCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAvCi0gIDB4MDAwN2ZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCi0gIDB4MDAwN2ZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ0ZHX05JT1NfQ1BVX1NUQUNLCisgIDB4MDAwN2ZmMDAgICB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSstfC0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQorICAweDAwMDdmZjAwICAgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rLXwtIENPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8ICA+IHN0YWNrIGFyZWEKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IHwKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8IFYKIAkgICAgICAgfAkgICAgICAgLgkgICAgICAgfCB8Ci0gIFNSQU0JICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgID4gQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQorICBTUkFNCSAgICAgICB8CSAgICAgICAuCSAgICAgICB8ICA+IENPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCiAJICAgICAgIHwJICAgICAgIC4JICAgICAgIHwgfCAgID0gMHgwMDA0MDAwMAogCSAgICAgICB8CQkJICAgICAgIHwgLwotICAweDAwMDQwMDAwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9TUkFNX0JBU0UKKyAgMHgwMDA0MDAwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgOgkJCSAgICAgICA6CkBAIC0xMjYsNyArMTI2LDcgQEAKIAkgICAgICAgfCAgdHhkYXRhICg4IGJpdCkJICh3bykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICByeGRhdGEgKDggYml0KQkgKHJvKSAgfCAvCi0gIDB4MDAwMDA0YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1VBUlQxCisgIDB4MDAwMDA0YzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMQogCSAgICAgICB8CQkJICAgICAgIHwKIAkgICAgICAgOgkgICAgICBnYXAJICAgICAgIDoKIAkgICAgICAgfAkJCSAgICAgICB8CkBAIC0xMzgsNyArMTM4LDcgQEAKIAkgICAgICAgfCAgZGlyZWN0aW9uICgxMSBiaXQpCSAocncpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTEgYml0KQkJIChydykgIHwgLwotICAweDAwMDAwNDgwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8zCisgIDB4MDAwMDA0ODAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zCiAJICAgICAgIHwgIGVkZ2VjYXB0dXJlICgxMiBiaXQpCSAocncpICB8IFwKIAkrIDB4MGMgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKICAgUElPMgkgICAgICAgfCAgaW50ZXJydXB0bWFzayAoMTIgYml0KSAocncpICB8IHwKQEAgLTE0Niw3ICsxNDYsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTIgYml0KQkJIChybykgIHwgLwotICAweDAwMDAwNDcwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8yCisgIDB4MDAwMDA0NzAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8xCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE1NCw3ICsxNTQsNyBAQAogCSAgICAgICB8ICBkaXJlY3Rpb24gKDIgYml0KQkgKHJ3KSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIGRhdGEgKDIgYml0KQkJIChydykgIHwgLwotICAweDAwMDAwNDYwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8xCisgIDB4MDAwMDA0NjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgxYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE3MCw3ICsxNzAsNyBAQAogCSAgICAgICB8ICBjb250cm9sICg0IGJpdCkJIChydykgIHwgfAogCSsgMHgwNCB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8ICBzdGF0dXMgKDIgYml0KQkgKHJ3KSAgfCAvCi0gIDB4MDAwMDA0NDAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ0ZHX05JT1NfQ1BVX1RJTUVSMAorICAweDAwMDAwNDQwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgwYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogICBQSU8wCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE3OCw3ICsxNzgsNyBAQAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKIAkrIDB4MDQgfC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC18IHwKIAkgICAgICAgfCAgZGF0YSAoMTYgYml0KQkJICh3bykgIHwgLwotICAweDAwMDAwNDIwIC0tLTMyLS0tLS0tLS0tLS0xNnwxNS0tLS0tLS0tLS0tLTAtICAgIENGR19OSU9TX0NQVV9QSU8wCisgIDB4MDAwMDA0MjAgLS0tMzItLS0tLS0tLS0tLTE2fDE1LS0tLS0tLS0tLS0tMC0gICAgQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wCiAJICAgICAgIHwJCSAgICAgKHVudXNlZCkgIHwgXAogCSsgMHgxYyB8LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLXwgfAogCSAgICAgICB8CQkgICAgICh1bnVzZWQpICB8IHwKQEAgLTE5NCw3ICsxOTQsNyBAQAogCSAgICAgICB8ICB0eGRhdGEgKDggYml0KQkgKHdvKSAgfCB8CiAJKyAweDA0IHwtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8CiAJICAgICAgIHwgIHJ4ZGF0YSAoOCBiaXQpCSAocm8pICB8IC8KLSAgMHgwMDAwMDQwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDRkdfTklPU19DUFVfVUFSVDAKKyAgMHgwMDAwMDQwMCAtLS0zMi0tLS0tLS0tLS0tMTZ8MTUtLS0tLS0tLS0tLS0wLSAgICBDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwCiAKIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQlvbiBjaGlwIG1lbW9yeQkgIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQogCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLmVib255IGIvZG9jL1JFQURNRS5lYm9ueQppbmRleCA4YjAzMGRiLi5hMzk1YTQ5IDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLmVib255CisrKyBiL2RvYy9SRUFETUUuZWJvbnkKQEAgLTM1LDcgKzM1LDcgQEAKID09PT09PT09PT09PT09PT09PT09PQogCiBUaGUgaTJjIHV0aWxpdGllcyBoYXZlIGJlZW4gdGVzdGVkIG9uIGJvdGggUmV2IEIuIGFuZCBSZXYgQy4gYW5kCi1sb29rIGdvb2QuIFRoZSBDRkdfSTJDX05PUFJPQkVTIG1hY3JvIGlzIGRlZmluZWQgdG8gcHJldmVudAorbG9vayBnb29kLiBUaGUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgbWFjcm8gaXMgZGVmaW5lZCB0byBwcmV2ZW50CiBwcm9iaW5nIHRoZSBDRENWODUwIGNsb2NrIGNvbnRyb2xsZXIgYXQgYWRkcmVzcyAweDY5IChzaW5jZSByZWFkaW5nCiBpdCBjYXVzZXMgdGhlIGkyYyBpbXBsZW1lbnRhdGlvbiB0byBtaXNiZWhhdmUuIFRoZSBvdXRwdXQgb2YKIGlwcm9iZSBzaG91bGQgbG9vayBsaWtlIHRoaXMgKGFzc3VtaW5nIHlvdSBhcmUgb25seSB1c2luZyBhIHNpbmdsZQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5mc2wtZGRyIGIvZG9jL1JFQURNRS5mc2wtZGRyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMjIyNGYKLS0tIC9kZXYvbnVsbAorKysgYi9kb2MvUkVBRE1FLmZzbC1kZHIKQEAgLTAsMCArMSw2OSBAQAorCitUYWJsZSBvZiBpbnRlcmxlYXZpbmcgbW9kZXMgc3VwcG9ydGVkIGluIGNwdS84eHh4L2Rkci8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICArLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBSYW5rIEludGVybGVhdmluZyAgICAgICAgICAgICAgICAgICAgIHwKKyAgfCAgICAgICAgICAgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKworICB8TWVtb3J5ICAgICAgIHwgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgMngyICAgICB8ICAgIDR4MSAgICB8CisgIHxDb250cm9sbGVyICAgfCAgTm9uZSAgfCAyeDEgbG93ZXIgfCAyeDEgdXBwZXIgfCB7Q1MwK0NTMX0sIHwge0NTMCtDUzErIHwKKyAgfEludGVybGVhdmluZyB8ICAgICAgICB8IHtDUzArQ1MxfSB8IHtDUzIrQ1MzfSB8IHtDUzIrQ1MzfSAgfCAgQ1MyK0NTM30gfAorICArLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rCisgIHxOb25lICAgICAgICAgfCAgWWVzICAgfCBZZXMgICAgICAgfCBZZXMgICAgICAgfCBZZXMgICAgICAgIHwgWWVzICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKworICB8Q2FjaGVsaW5lICAgIHwgIFllcyAgIHwgWWVzICAgICAgIHwgTm8gICAgICAgIHwgTm8sIE9ubHkoKil8IFllcyAgICAgICB8CisgIHwgICAgICAgICAgICAgfENTMCBPbmx5fCAgICAgICAgICAgfCAgICAgICAgICAgfCB7Q1MwK0NTMX0gIHwgICAgICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKworICB8UGFnZSAgICAgICAgIHwgIFllcyAgIHwgWWVzICAgICAgIHwgTm8gICAgICAgIHwgTm8sIE9ubHkoKil8IFllcyAgICAgICB8CisgIHwgICAgICAgICAgICAgfENTMCBPbmx5fCAgICAgICAgICAgfCAgICAgICAgICAgfCB7Q1MwK0NTMX0gIHwgICAgICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKworICB8QmFuayAgICAgICAgIHwgIFllcyAgIHwgWWVzICAgICAgIHwgTm8gICAgICAgIHwgTm8sIE9ubHkoKil8IFllcyAgICAgICB8CisgIHwgICAgICAgICAgICAgfENTMCBPbmx5fCAgICAgICAgICAgfCAgICAgICAgICAgfCB7Q1MwK0NTMX0gIHwgICAgICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKworICB8U3VwZXJiYW5rICAgIHwgIE5vICAgIHwgWWVzICAgICAgIHwgTm8gICAgICAgIHwgTm8sIE9ubHkoKil8IFllcyAgICAgICB8CisgIHwgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgfCB7Q1MwK0NTMX0gIHwgICAgICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKworICgqKSBBbHRob3VnaCB0aGUgaGFyZHdhcmUgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCBtZW1vcnkgY29udHJvbGxlcgorIGludGVybGVhdmluZyB1c2luZyAiMngyIiByYW5rIGludGVybGVhdmluZywgaXQgb25seSBpbnRlcmxlYXZlcyB7Q1MwK0NTMX0KKyBmcm9tIGVhY2ggY29udHJvbGxlci4ge0NTMitDUzN9IG9uIGVhY2ggY29udHJvbGxlciBhcmUgb25seSByYW5rCisgaW50ZXJsZWF2ZWQgb24gdGhhdCBjb250cm9sbGVyLgorCitUaGUgd2F5cyB0byBjb25maWd1cmUgdGhlIGRkciBpbnRlcmxlYXZpbmcgbW9kZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorMS4gSW4gYm9hcmQgaGVhZGVyIGZpbGUoZS5nLk1QQzg1NzJEUy5oKSwgYWRkIGRlZmF1bHQgaW50ZXJsZWF2aW5nIHNldHRpbmcKKyAgIHVuZGVyICJDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTIiwgbGlrZToKKwkjZGVmaW5lIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCQkJXAorCSAibWVtY3RsX2ludGx2X2N0bD0yXDAiCQkJCQkJXAorCSAuLi4uLi4KKworMi4gUnVuIHUtYm9vdCAic2V0ZW52IiBjb21tYW5kIHRvIGNvbmZpZ3VyZSB0aGUgbWVtb3J5IGludGVybGVhdmluZyBtb2RlLgorICAgRWl0aGVyIG51bWVyaWNhbCBvciBzdHJpbmcgdmFsdWUgaXMgYWNjZXB0ZWQuCisKKyAgIyBkaXNhYmxlIG1lbW9yeSBjb250cm9sbGVyIGludGVybGVhdmluZworICBzZXRlbnYgbWVtY3RsX2ludGx2X2N0bAorCisgICMgY2FjaGVsaW5lIGludGVybGVhdmluZworICBzZXRlbnYgbWVtY3RsX2ludGx2X2N0bCAwIG9yIHNldGVudiBtZW1jdGxfaW50bHZfY3RsIGNhY2hlbGluZQorCisgICMgcGFnZSBpbnRlcmxlYXZpbmcKKyAgc2V0ZW52IG1lbWN0bF9pbnRsdl9jdGwgMSBvciBzZXRlbnYgbWVtY3RsX2ludGx2X2N0bCBwYWdlCisKKyAgIyBiYW5rIGludGVybGVhdmluZworICBzZXRlbnYgbWVtY3RsX2ludGx2X2N0bCAyIG9yIHNldGVudiBtZW1jdGxfaW50bHZfY3RsIGJhbmsKKworICAjIHN1cGVyYmFuaworICBzZXRlbnYgbWVtY3RsX2ludGx2X2N0bCAzIG9yIHNldGVudiBtZW1jdGxfaW50bHZfY3RsIHN1cGVyYmFuaworCisgICMgZGlzYWJsZSBiYW5rIChjaGlwLXNlbGVjdCkgaW50ZXJsZWF2aW5nCisgIHNldGVudiBiYV9pbnRsdl9jdGwKKworICAjIGJhbmsoY2hpcC1zZWxlY3QpIGludGVybGVhdmluZyBjczArY3MxCisgIHNldGVudiBiYV9pbnRsdl9jdGwgMHg0MCBvciBzZXRlbnYgYmFfaW50bHZfY3RsIGNzMF9jczEKKworICAjIGJhbmsoY2hpcC1zZWxlY3QpIGludGVybGVhdmluZyBjczIrY3MzCisgIHNldGVudiBiYV9pbnRsdl9jdGwgMHgyMCBvciBzZXRlbnYgYmFfaW50bHZfY3RsIGNzMl9jczMKKworICAjIGJhbmsoY2hpcC1zZWxlY3QpIGludGVybGVhdmluZyAoY3MwK2NzMSkgYW5kIChjczIrY3MzKSAgKDJ4MikKKyAgc2V0ZW52IGJhX2ludGx2X2N0bCAweDYwIG9yIHNldGVudiBiYV9pbnRsdl9jdGwgY3MwX2NzMV9hbmRfY3MyX2NzMworCisgICMgYmFuayhjaGlwLXNlbGVjdCkgaW50ZXJsZWF2aW5nIChjczArY3MxK2NzMitjczMpICg0eDEpCisgIHNldGVudiBiYV9pbnRsdl9jdGwgMHgwNCBvciBzZXRlbnYgYmFfaW50bHZfY3RsIGNzMF9jczFfY3MyX2NzMwpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5nZW5lcmljX3VzYl9vaGNpIGIvZG9jL1JFQURNRS5nZW5lcmljX3VzYl9vaGNpCmluZGV4IDE0N2VhNTEuLmJhN2NlYTggMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUuZ2VuZXJpY191c2Jfb2hjaQorKysgYi9kb2MvUkVBRE1FLmdlbmVyaWNfdXNiX29oY2kKQEAgLTExLDI0ICsxMSwyNCBAQAogCiAJQ09ORklHX1VTQl9PSENJX05FVzogZW5hYmxlIHRoZSBuZXcgT0hDSSBkcml2ZXIKIAotCUNGR19VU0JfT0hDSV9CT0FSRF9JTklUOiBjYWxsIHRoZSBib2FyZCBkZXBlbmRhbnQgaG9va3M6CisJQ09ORklHX1NZU19VU0JfT0hDSV9CT0FSRF9JTklUOiBjYWxsIHRoZSBib2FyZCBkZXBlbmRhbnQgaG9va3M6CiAKIAkJICAtIGV4dGVybiBpbnQgdXNiX2JvYXJkX2luaXQodm9pZCk7CiAJCSAgLSBleHRlcm4gaW50IHVzYl9ib2FyZF9zdG9wKHZvaWQpOwogCQkgIC0gZXh0ZXJuIGludCB1c2JfY3B1X2luaXRfZmFpbCh2b2lkKTsKIAotCUNGR19VU0JfT0hDSV9DUFVfSU5JVDogY2FsbCB0aGUgY3B1IGRlcGVuZGFudCBob29rczoKKwlDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUOiBjYWxsIHRoZSBjcHUgZGVwZW5kYW50IGhvb2tzOgogCiAJCSAgLSBleHRlcm4gaW50IHVzYl9jcHVfaW5pdCh2b2lkKTsKIAkJICAtIGV4dGVybiBpbnQgdXNiX2NwdV9zdG9wKHZvaWQpOwogCQkgIC0gZXh0ZXJuIGludCB1c2JfY3B1X2luaXRfZmFpbCh2b2lkKTsKIAotCUNGR19VU0JfT0hDSV9SRUdTX0JBU0U6IGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgT0hDSQorCUNPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFOiBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE9IQ0kKIAkJCQlyZWdpc3RlcnMKIAotCUNGR19VU0JfT0hDSV9TTE9UX05BTUU6IHNsb3QgbmFtZQorCUNPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FOiBzbG90IG5hbWUKIAotCUNGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUzogbWF4aW1hbCBudW1iZXIgb2YgcG9ydHMgb2YgdGhlCisJQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUzogbWF4aW1hbCBudW1iZXIgb2YgcG9ydHMgb2YgdGhlCiAJCQkJICAgICByb290IGh1Yi4KIAogCkBAIC0zOSw3ICszOSw3IEBACiBPSENJIGNvbnRyb2xsZXJzIHRoYXQgb3BlcmF0ZSBpbiBiaWcgZW5kaWFuIHN1Y2ggYXMgcHBjNHh4IGFuZAogbXBjNXh4eC4gRm9yIHRoZXNlIHRoZSBjb25maWcgb3B0aW9uCiAKLQlDRkdfT0hDSV9CRV9DT05UUk9MTEVSCisJQ09ORklHX1NZU19PSENJX0JFX0NPTlRST0xMRVIKIAogbmVlZHMgdG8gYmUgZGVmaW5lZC4KIApAQCAtNjAsNCArNjAsNCBAQAogUENJIENvbnRyb2xsZXJzIG5lZWQgdG8gZG8gYnl0ZSBzd2FwcGluZyBvbiByZWdpc3RlciBhY2Nlc3Nlcywgc28gdGhleQogc2hvdWxkIHRvIGRlZmluZToKIAotCUNGR19PSENJX1NXQVBfUkVHX0FDQ0VTUworCUNPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUubHlueGtkaSBiL2RvYy9SRUFETUUubHlueGtkaQppbmRleCA4ZmRmNDk1Li4wNzZmMDE4IDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLmx5bnhrZGkKKysrIGIvZG9jL1JFQURNRS5seW54a2RpCkBAIC0zOSw5ICszOSw5IEBACiAKIEVkaXQgaW5jbHVkZS9jb25maWdzL01QQzgyNjBBRFMuaCB0byB1c2UgdGhlIGZvbGxvd2luZzoKIAotI2RlZmluZSBDRkdfSU1NUgkweEZBMjAwMDAwCi0jZGVmaW5lIENGR19CQ1NSCTB4RkExMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JMHhGQTEwMTgwMQorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJMHhGQTIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJMHhGQTEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JMHhGQTEwMTgwMQogCiBXaGVuIGNyZWF0aW5nIGEgTHlueE9TIG9yIEJsdWVDYXQgdS1ib290IGltYWdlIHVzaW5nIG1raW1hZ2UsCiB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmc6CmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLm01MjI3N2V2YiBiL2RvYy9SRUFETUUubTUyMjc3ZXZiCmluZGV4IGRlMWRhYmEuLmUwMDI5NDcgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUubTUyMjc3ZXZiCisrKyBiL2RvYy9SRUFETUUubTUyMjc3ZXZiCkBAIC03MCwxMiArNzAsMTIgQEAKIENPTkZJR19NNTIyNzdFVkIJLS0gZGVmaW5lIGZvciBNNTIyNzdFVkIgYm9hcmQKIAogQ09ORklHX01DRlVBUlQJCS0tIGRlZmluZSB0byB1c2UgY29tbW9uIENGIFVhcnQgZHJpdmVyCi1DRkdfVUFSVF9QT1JUCQktLSBkZWZpbmUgVUFSVCBwb3J0IG51bWJlciwgc3RhcnQgd2l0aCAwLCAxIGFuZCAyCitDT05GSUdfU1lTX1VBUlRfUE9SVAkJLS0gZGVmaW5lIFVBUlQgcG9ydCBudW1iZXIsIHN0YXJ0IHdpdGggMCwgMSBhbmQgMgogQ09ORklHX0JBVURSQVRFCQktLSBkZWZpbmUgVUFSVCBiYXVkcmF0ZQogCiBDT05GSUdfTUNGUlRDCQktLSBkZWZpbmUgdG8gdXNlIGNvbW1vbiBDRiBSVEMgZHJpdmVyCi1DRkdfTUNGUlRDX0JBU0UJCS0tIHByb3ZpZGUgYmFzZSBhZGRyZXNzIGZvciBSVEMgaW4gaW1tYXAuaAotQ0ZHX1JUQ19PU0NJTExBVE9SCS0tIGRlZmluZSBSVEMgY2xvY2sgZnJlcXVlbmN5CitDT05GSUdfU1lTX01DRlJUQ19CQVNFCQktLSBwcm92aWRlIGJhc2UgYWRkcmVzcyBmb3IgUlRDIGluIGltbWFwLmgKK0NPTkZJR19TWVNfUlRDX09TQ0lMTEFUT1IJLS0gZGVmaW5lIFJUQyBjbG9jayBmcmVxdWVuY3kKIFJUQ19ERUJVRwkJLS0gZGVmaW5lIHRvIHNob3cgUlRDIGRlYnVnIG1lc3NhZ2UKIENPTkZJR19DTURfREFURQkJLS0gZW5hYmxlIHRvIHVzZSBkYXRlIGZlYXR1cmUgaW4gdS1ib290CiAKQEAgLTg1LDIyICs4NSwyMiBAQAogQ09ORklHX0ZTTF9JMkMJCS0tIGRlZmluZSB0byB1c2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyCiBDT05GSUdfSEFSRF9JMkMJCS0tIGRlZmluZSBmb3IgSTJDIGhhcmR3YXJlIHN1cHBvcnQKIENPTkZJR19TT0ZUX0kyQwkJLS0gZGVmaW5lIGZvciBJMkMgYml0LWJhbmdlZAotQ0ZHX0kyQ19TUEVFRAkJLS0gZGVmaW5lIGZvciBJMkMgc3BlZWQKLUNGR19JMkNfU0xBVkUJCS0tIGRlZmluZSBmb3IgSTJDIHNsYXZlIGFkZHJlc3MKLUNGR19JMkNfT0ZGU0VUCQktLSBkZWZpbmUgZm9yIEkyQyBiYXNlIGFkZHJlc3Mgb2Zmc2V0Ci1DRkdfSU1NUgkJLS0gZGVmaW5lIGZvciBNQkFSIG9mZnNldAorQ09ORklHX1NZU19JMkNfU1BFRUQJCS0tIGRlZmluZSBmb3IgSTJDIHNwZWVkCitDT05GSUdfU1lTX0kyQ19TTEFWRQkJLS0gZGVmaW5lIGZvciBJMkMgc2xhdmUgYWRkcmVzcworQ09ORklHX1NZU19JMkNfT0ZGU0VUCQktLSBkZWZpbmUgZm9yIEkyQyBiYXNlIGFkZHJlc3Mgb2Zmc2V0CitDT05GSUdfU1lTX0lNTVIJCS0tIGRlZmluZSBmb3IgTUJBUiBvZmZzZXQKIAotQ0ZHX01CQVIJCS0tIGRlZmluZSBNQkFSIG9mZnNldAorQ09ORklHX1NZU19NQkFSCQktLSBkZWZpbmUgTUJBUiBvZmZzZXQKIAogQ09ORklHX01PTklUT1JfSVNfSU5fUkFNIC0tIE5vdCBzdXBwb3J0CiAKLUNGR19JTklUX1JBTV9BRERSCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUNGNTIyNzcgaW50ZXJuYWwgU1JBTQorQ09ORklHX1NZU19JTklUX1JBTV9BRERSCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUNGNTIyNzcgaW50ZXJuYWwgU1JBTQogCi1DRkdfQ1NuX0JBU0UJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQmFzZSByZWdpc3RlcgotQ0ZHX0NTbl9NQVNLCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IE1hc2sgcmVnaXN0ZXIKLUNGR19DU25fQ1RSTAktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBDb250cm9sIHJlZ2lzdGVyCitDT05GSUdfU1lTX0NTbl9CQVNFCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IEJhc2UgcmVnaXN0ZXIKK0NPTkZJR19TWVNfQ1NuX01BU0sJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgTWFzayByZWdpc3RlcgorQ09ORklHX1NZU19DU25fQ1RSTAktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBDb250cm9sIHJlZ2lzdGVyCiAKLUNGR19TRFJBTV9CQVNFCS0tIGRlZmluZXMgdGhlIERSQU0gQmFzZQorQ09ORklHX1NZU19TRFJBTV9CQVNFCS0tIGRlZmluZXMgdGhlIERSQU0gQmFzZQogCiBDT05GSUdfTENEIGFuZCBDT05GSUdfQ01EX1VTQiBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGN1cnJlbnQgdS1ib290LAogdXBkYXRlIHdpbGwgYmUgcHJvdmlkZWQgYXQgbGF0ZXIgdGltZQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tNTI1M2V2YmUgYi9kb2MvUkVBRE1FLm01MjUzZXZiZQppbmRleCAwNDI2Y2IxLi5mNTE2MDlmIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLm01MjUzZXZiZQorKysgYi9kb2MvUkVBRE1FLm01MjUzZXZiZQpAQCAtMjgsOSArMjgsOSBAQAogCUNPTkZJR19NQ0Y1MngyCQlQcm9jZXNzb3IgZmFtaWx5CiAJQ09ORklHX01DRjUyNTMJCU1DRjUyNTMgc3BlY2lmaWMKIAlDT05GSUdfTTUyNTNFVkJFCUFtYWRldXMgUGx1cyBib2FyZCBzcGVjaWZpYwotCUNGR19DTEsJCQlEZWZpbmUgQW1hZGV1cyBQbHVzIENQVSBDbG9jawotCUNGR19NQkFSCQlNQkFSIGJhc2UgYWRkcmVzcwotCUNGR19NQkFSMgkJTUJBUjIgYmFzZSBhZGRyZXNzCisJQ09ORklHX1NZU19DTEsJCQlEZWZpbmUgQW1hZGV1cyBQbHVzIENQVSBDbG9jaworCUNPTkZJR19TWVNfTUJBUgkJTUJBUiBiYXNlIGFkZHJlc3MKKwlDT05GSUdfU1lTX01CQVIyCQlNQkFSMiBiYXNlIGFkZHJlc3MKIAogMy4yIENvbXBpbGF0aW9uCiAJZXhwb3J0IENST1NTX0NPTVBJTEU9L3Vzci9sb2NhbC9mcmVlc2NhbGUtY29sZGZpcmUtNC4xLWVsZi9iaW4vbTY4ay1lbGYtCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLm01MzczZXZiIGIvZG9jL1JFQURNRS5tNTM3M2V2YgppbmRleCBiMmVmNGE1Li40NzgxZDk0IDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLm01MzczZXZiCisrKyBiL2RvYy9SRUFETUUubTUzNzNldmIKQEAgLTY3LDEyICs2NywxMiBAQAogQ09ORklHX001MzczRVZCCQktLSBkZWZpbmUgZm9yIE01MzczRVZCIGJvYXJkCiAKIENPTkZJR19NQ0ZVQVJUCQktLSBkZWZpbmUgdG8gdXNlIGNvbW1vbiBDRiBVYXJ0IGRyaXZlcgotQ0ZHX1VBUlRfUE9SVAkJLS0gZGVmaW5lIFVBUlQgcG9ydCBudW1iZXIsIHN0YXJ0IHdpdGggMCwgMSBhbmQgMgorQ09ORklHX1NZU19VQVJUX1BPUlQJCS0tIGRlZmluZSBVQVJUIHBvcnQgbnVtYmVyLCBzdGFydCB3aXRoIDAsIDEgYW5kIDIKIENPTkZJR19CQVVEUkFURQkJLS0gZGVmaW5lIFVBUlQgYmF1ZHJhdGUKIAogQ09ORklHX01DRlJUQwkJLS0gZGVmaW5lIHRvIHVzZSBjb21tb24gQ0YgUlRDIGRyaXZlcgotQ0ZHX01DRlJUQ19CQVNFCQktLSBwcm92aWRlIGJhc2UgYWRkcmVzcyBmb3IgUlRDIGluIGltbWFwLmgKLUNGR19SVENfT1NDSUxMQVRPUgktLSBkZWZpbmUgUlRDIGNsb2NrIGZyZXF1ZW5jeQorQ09ORklHX1NZU19NQ0ZSVENfQkFTRQkJLS0gcHJvdmlkZSBiYXNlIGFkZHJlc3MgZm9yIFJUQyBpbiBpbW1hcC5oCitDT05GSUdfU1lTX1JUQ19PU0NJTExBVE9SCS0tIGRlZmluZSBSVEMgY2xvY2sgZnJlcXVlbmN5CiBSVENfREVCVUcJCS0tIGRlZmluZSB0byBzaG93IFJUQyBkZWJ1ZyBtZXNzYWdlCiBDT05GSUdfQ01EX0RBVEUJCS0tIGVuYWJsZSB0byB1c2UgZGF0ZSBmZWF0dXJlIGluIHUtYm9vdAogCkBAIC04MCwxMSArODAsMTEgQEAKIENPTkZJR19ORVRfTVVMVEkJLS0gZGVmaW5lIHRvIHVzZSBtdWx0aSBGRUMgaW4gdS1ib290CiBDT05GSUdfTUlJCQktLSBlbmFibGUgdG8gdXNlIE1JSSBkcml2ZXIKIENPTkZJR19DRl9ET01JSQkJLS0gZW5hYmxlIHRvIHVzZSBNSUkgZmVhdHVyZSBpbiBjbWRfbWlpLmMKLUNGR19ESVNDT1ZFUl9QSFkJLS0gZW5hYmxlIFBIWSBkaXNjb3ZlcnkKLUNGR19SWF9FVEhfQlVGRkVSCS0tIFNldCBGRUMgUmVjZWl2ZSBidWZmZXIKLUNGR19GQVVMVF9FQ0hPX0xJTktfRE9XTi0tCi1DRkdfRkVDMF9QSU5NVVgJCS0tIFNldCBGRUMwIFBpbiBjb25maWd1cmF0aW9uCi1DRkdfRkVDMF9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCitDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQktLSBlbmFibGUgUEhZIGRpc2NvdmVyeQorQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCS0tIFNldCBGRUMgUmVjZWl2ZSBidWZmZXIKK0NPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04tLQorQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJLS0gU2V0IEZFQzAgUGluIGNvbmZpZ3VyYXRpb24KK0NPTkZJR19TWVNfRkVDMF9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCiBNQ0ZGRUNfVE9VVF9MT09QCS0tIHNldCBGRUMgdGltZW91dCBsb29wCiAKIENPTkZJR19NQ0ZUTVIJCS0tIGRlZmluZSB0byB1c2UgRE1BIHRpbWVyCkBAIC05MywyMiArOTMsMjIgQEAKIENPTkZJR19GU0xfSTJDCQktLSBkZWZpbmUgdG8gdXNlIEZTTCBjb21tb24gSTJDIGRyaXZlcgogQ09ORklHX0hBUkRfSTJDCQktLSBkZWZpbmUgZm9yIEkyQyBoYXJkd2FyZSBzdXBwb3J0CiBDT05GSUdfU09GVF9JMkMJCS0tIGRlZmluZSBmb3IgSTJDIGJpdC1iYW5nZWQKLUNGR19JMkNfU1BFRUQJCS0tIGRlZmluZSBmb3IgSTJDIHNwZWVkCi1DRkdfSTJDX1NMQVZFCQktLSBkZWZpbmUgZm9yIEkyQyBzbGF2ZSBhZGRyZXNzCi1DRkdfSTJDX09GRlNFVAkJLS0gZGVmaW5lIGZvciBJMkMgYmFzZSBhZGRyZXNzIG9mZnNldAotQ0ZHX0lNTVIJCS0tIGRlZmluZSBmb3IgTUJBUiBvZmZzZXQKK0NPTkZJR19TWVNfSTJDX1NQRUVECQktLSBkZWZpbmUgZm9yIEkyQyBzcGVlZAorQ09ORklHX1NZU19JMkNfU0xBVkUJCS0tIGRlZmluZSBmb3IgSTJDIHNsYXZlIGFkZHJlc3MKK0NPTkZJR19TWVNfSTJDX09GRlNFVAkJLS0gZGVmaW5lIGZvciBJMkMgYmFzZSBhZGRyZXNzIG9mZnNldAorQ09ORklHX1NZU19JTU1SCQktLSBkZWZpbmUgZm9yIE1CQVIgb2Zmc2V0CiAKLUNGR19NQkFSCQktLSBkZWZpbmUgTUJBUiBvZmZzZXQKK0NPTkZJR19TWVNfTUJBUgkJLS0gZGVmaW5lIE1CQVIgb2Zmc2V0CiAKIENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAtLSBOb3Qgc3VwcG9ydAogCi1DRkdfSU5JVF9SQU1fQUREUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjUzNzMgaW50ZXJuYWwgU1JBTQorQ09ORklHX1NZU19JTklUX1JBTV9BRERSCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUNGNTM3MyBpbnRlcm5hbCBTUkFNCiAKLUNGR19DU25fQkFTRQktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBCYXNlIHJlZ2lzdGVyCi1DRkdfQ1NuX01BU0sJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgTWFzayByZWdpc3RlcgotQ0ZHX0NTbl9DVFJMCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IENvbnRyb2wgcmVnaXN0ZXIKK0NPTkZJR19TWVNfQ1NuX0JBU0UJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQmFzZSByZWdpc3RlcgorQ09ORklHX1NZU19DU25fTUFTSwktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBNYXNrIHJlZ2lzdGVyCitDT05GSUdfU1lTX0NTbl9DVFJMCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IENvbnRyb2wgcmVnaXN0ZXIKIAotQ0ZHX1NEUkFNX0JBU0UJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlCitDT05GSUdfU1lTX1NEUkFNX0JBU0UJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlCiAKIDIuIE1FTU9SWSBNQVAgVU5ERVIgVS1CT09UIEFORCBMSU5VWCBLRVJORUwKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUubTU0NDU1ZXZiIGIvZG9jL1JFQURNRS5tNTQ0NTVldmIKaW5kZXggNWMwMWYwZC4uZjY5NWRhNSAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5tNTQ0NTVldmIKKysrIGIvZG9jL1JFQURNRS5tNTQ0NTVldmIKQEAgLTcxLDEyICs3MSwxMiBAQAogQ09ORklHX001NDQ1NUVWQgktLSBkZWZpbmUgZm9yIE01NDQ1NUVWQiBib2FyZAogCiBDT05GSUdfTUNGVUFSVAkJLS0gZGVmaW5lIHRvIHVzZSBjb21tb24gQ0YgVWFydCBkcml2ZXIKLUNGR19VQVJUX1BPUlQJCS0tIGRlZmluZSBVQVJUIHBvcnQgbnVtYmVyLCBzdGFydCB3aXRoIDAsIDEgYW5kIDIKK0NPTkZJR19TWVNfVUFSVF9QT1JUCQktLSBkZWZpbmUgVUFSVCBwb3J0IG51bWJlciwgc3RhcnQgd2l0aCAwLCAxIGFuZCAyCiBDT05GSUdfQkFVRFJBVEUJCS0tIGRlZmluZSBVQVJUIGJhdWRyYXRlCiAKIENPTkZJR19NQ0ZSVEMJCS0tIGRlZmluZSB0byB1c2UgY29tbW9uIENGIFJUQyBkcml2ZXIKLUNGR19NQ0ZSVENfQkFTRQkJLS0gcHJvdmlkZSBiYXNlIGFkZHJlc3MgZm9yIFJUQyBpbiBpbW1hcC5oCi1DRkdfUlRDX09TQ0lMTEFUT1IJLS0gZGVmaW5lIFJUQyBjbG9jayBmcmVxdWVuY3kKK0NPTkZJR19TWVNfTUNGUlRDX0JBU0UJCS0tIHByb3ZpZGUgYmFzZSBhZGRyZXNzIGZvciBSVEMgaW4gaW1tYXAuaAorQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUgktLSBkZWZpbmUgUlRDIGNsb2NrIGZyZXF1ZW5jeQogUlRDX0RFQlVHCQktLSBkZWZpbmUgdG8gc2hvdyBSVEMgZGVidWcgbWVzc2FnZQogQ09ORklHX0NNRF9EQVRFCQktLSBlbmFibGUgdG8gdXNlIGRhdGUgZmVhdHVyZSBpbiB1LWJvb3QKIApAQCAtODQsMTMgKzg0LDEzIEBACiBDT05GSUdfTkVUX01VTFRJCS0tIGRlZmluZSB0byB1c2UgbXVsdGkgRkVDIGluIHUtYm9vdAogQ09ORklHX01JSQkJLS0gZW5hYmxlIHRvIHVzZSBNSUkgZHJpdmVyCiBDT05GSUdfQ0ZfRE9NSUkJCS0tIGVuYWJsZSB0byB1c2UgTUlJIGZlYXR1cmUgaW4gY21kX21paS5jCi1DRkdfRElTQ09WRVJfUEhZCS0tIGVuYWJsZSBQSFkgZGlzY292ZXJ5Ci1DRkdfUlhfRVRIX0JVRkZFUgktLSBTZXQgRkVDIFJlY2VpdmUgYnVmZmVyCi1DRkdfRkFVTFRfRUNIT19MSU5LX0RPV04tLQotQ0ZHX0ZFQzBfUElOTVVYCQktLSBTZXQgRkVDMCBQaW4gY29uZmlndXJhdGlvbgotQ0ZHX0ZFQzFfUElOTVVYCQktLSBTZXQgRkVDMSBQaW4gY29uZmlndXJhdGlvbgotQ0ZHX0ZFQzBfTUlJQkFTRQktLSBTZXQgRkVDMCBNSUkgYmFzZSByZWdpc3RlcgotQ0ZHX0ZFQzFfTUlJQkFTRQktLSBTZXQgRkVDMCBNSUkgYmFzZSByZWdpc3RlcgorQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkJLS0gZW5hYmxlIFBIWSBkaXNjb3ZlcnkKK0NPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgktLSBTZXQgRkVDIFJlY2VpdmUgYnVmZmVyCitDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOLS0KK0NPTkZJR19TWVNfRkVDMF9QSU5NVVgJCS0tIFNldCBGRUMwIFBpbiBjb25maWd1cmF0aW9uCitDT05GSUdfU1lTX0ZFQzFfUElOTVVYCQktLSBTZXQgRkVDMSBQaW4gY29uZmlndXJhdGlvbgorQ09ORklHX1NZU19GRUMwX01JSUJBU0UJLS0gU2V0IEZFQzAgTUlJIGJhc2UgcmVnaXN0ZXIKK0NPTkZJR19TWVNfRkVDMV9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCiBNQ0ZGRUNfVE9VVF9MT09QCS0tIHNldCBGRUMgdGltZW91dCBsb29wCiBDT05GSUdfSEFTX0VUSDEJCS0tIGRlZmluZSB0byBlbmFibGUgc2Vjb25kIEZFQyBpbiB1LWJvb3QKIApAQCAtMTAwLDE0ICsxMDAsMTQgQEAKIENPTkZJR19JREVfUFJFSU5JVAktLSBkZWZpbmUgaWRlX3ByZWluaXQoKQogQ09ORklHX0FUQVBJCQktLSBkZWZpbmUgQVRBUEkgc3VwcG9ydAogQ09ORklHX0xCQTQ4CQktLSBkZWZpbmUgTEJBNDggKGxhcmdlciB0aGFuIDEyMEdCKSBzdXBwb3J0Ci1DRkdfSURFX01BWEJVUwkJLS0gZGVmaW5lIG1heCBjaGFubmVsCi1DRkdfSURFX01BWERFVklDRQktLSBkZWZpbmUgbWF4IGRldmljZXMgcGVyIGNoYW5uZWwKLUNGR19BVEFfQkFTRV9BRERSCS0tIGRlZmluZSBBVEEgYmFzZSBhZGRyZXNzCi1DRkdfQVRBX0lERTBfT0ZGU0VUCS0tIGRlZmluZSBBVEEgSURFMCBvZmZzZXQKLUNGR19BVEFfREFUQV9PRkZTRVQJLS0gZGVmaW5lIEFUQSBkYXRhIElPCi1DRkdfQVRBX1JFR19PRkZTRVQJLS0gZGVmaW5lIGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMKLUNGR19BVEFfQUxUX09GRlNFVAktLSBkZWZpbmUgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMKLUNGR19BVEFfU1RSSURFCQktLSBkZWZpbmUgZm9yIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCitDT05GSUdfU1lTX0lERV9NQVhCVVMJCS0tIGRlZmluZSBtYXggY2hhbm5lbAorQ09ORklHX1NZU19JREVfTUFYREVWSUNFCS0tIGRlZmluZSBtYXggZGV2aWNlcyBwZXIgY2hhbm5lbAorQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCS0tIGRlZmluZSBBVEEgYmFzZSBhZGRyZXNzCitDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAktLSBkZWZpbmUgQVRBIElERTAgb2Zmc2V0CitDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAktLSBkZWZpbmUgQVRBIGRhdGEgSU8KK0NPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJLS0gZGVmaW5lIGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMKK0NPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJLS0gZGVmaW5lIGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCitDT05GSUdfU1lTX0FUQV9TVFJJREUJCS0tIGRlZmluZSBmb3IgSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMKIF9JT19CQVNFCQktLSBkZWZpbmUgZm9yIElPIGJhc2UgYWRkcmVzcwogCiBDT05GSUdfTUNGVE1SCQktLSBkZWZpbmUgdG8gdXNlIERNQSB0aW1lcgpAQCAtMTE2LDQyICsxMTYsNDIgQEAKIENPTkZJR19GU0xfSTJDCQktLSBkZWZpbmUgdG8gdXNlIEZTTCBjb21tb24gSTJDIGRyaXZlcgogQ09ORklHX0hBUkRfSTJDCQktLSBkZWZpbmUgZm9yIEkyQyBoYXJkd2FyZSBzdXBwb3J0CiBDT05GSUdfU09GVF9JMkMJCS0tIGRlZmluZSBmb3IgSTJDIGJpdC1iYW5nZWQKLUNGR19JMkNfU1BFRUQJCS0tIGRlZmluZSBmb3IgSTJDIHNwZWVkCi1DRkdfSTJDX1NMQVZFCQktLSBkZWZpbmUgZm9yIEkyQyBzbGF2ZSBhZGRyZXNzCi1DRkdfSTJDX09GRlNFVAkJLS0gZGVmaW5lIGZvciBJMkMgYmFzZSBhZGRyZXNzIG9mZnNldAotQ0ZHX0lNTVIJCS0tIGRlZmluZSBmb3IgTUJBUiBvZmZzZXQKK0NPTkZJR19TWVNfSTJDX1NQRUVECQktLSBkZWZpbmUgZm9yIEkyQyBzcGVlZAorQ09ORklHX1NZU19JMkNfU0xBVkUJCS0tIGRlZmluZSBmb3IgSTJDIHNsYXZlIGFkZHJlc3MKK0NPTkZJR19TWVNfSTJDX09GRlNFVAkJLS0gZGVmaW5lIGZvciBJMkMgYmFzZSBhZGRyZXNzIG9mZnNldAorQ09ORklHX1NZU19JTU1SCQktLSBkZWZpbmUgZm9yIE1CQVIgb2Zmc2V0CiAKIENPTkZJR19QQ0kgICAgICAgICAgICAgIC0tIGRlZmluZSBmb3IgUENJIHN1cHBvcnQKIENPTkZJR19QQ0lfUE5QICAgICAgICAgIC0tIGRlZmluZSBmb3IgUGx1ZyBuIHBsYXkgc3VwcG9ydAotQ0ZHX1BDSV9NRU1fQlVTCQktLSBQQ0kgbWVtb3J5IGxvZ2ljYWwgb2Zmc2V0Ci1DRkdfUENJX01FTV9QSFlTCS0tIFBDSSBtZW1vcnkgcGh5c2ljYWwgb2Zmc2V0Ci1DRkdfUENJX01FTV9TSVpFCS0tIFBDSSBtZW1vcnkgc2l6ZQotQ0ZHX1BDSV9JT19CVVMJCS0tIFBDSSBJTyBsb2dpY2FsIG9mZnNldAotQ0ZHX1BDSV9JT19QSFlTCQktLSBQQ0kgSU8gcGh5c2ljYWwgb2Zmc2V0Ci1DRkdfUENJX0lPX1NJWkUJCS0tIFBDSSBJTyBzaXplCi1DRkdfUENJX0NGR19CVVMJCS0tIFBDSSBDb25maWd1cmF0aW9uIGxvZ2ljYWwgb2Zmc2V0Ci1DRkdfUENJX0NGR19QSFlTCS0tIFBDSSBDb25maWd1cmF0aW9uIHBoeXNpY2FsIG9mZnNldAotQ0ZHX1BDSV9DRkdfU0laRQktLSBQQ0kgQ29uZmlndXJhdGlvbiBzaXplCitDT05GSUdfU1lTX1BDSV9NRU1fQlVTCQktLSBQQ0kgbWVtb3J5IGxvZ2ljYWwgb2Zmc2V0CitDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwktLSBQQ0kgbWVtb3J5IHBoeXNpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJLS0gUENJIG1lbW9yeSBzaXplCitDT05GSUdfU1lTX1BDSV9JT19CVVMJCS0tIFBDSSBJTyBsb2dpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfSU9fUEhZUwkJLS0gUENJIElPIHBoeXNpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJLS0gUENJIElPIHNpemUKK0NPTkZJR19TWVNfUENJX0NGR19CVVMJCS0tIFBDSSBDb25maWd1cmF0aW9uIGxvZ2ljYWwgb2Zmc2V0CitDT05GSUdfU1lTX1BDSV9DRkdfUEhZUwktLSBQQ0kgQ29uZmlndXJhdGlvbiBwaHlzaWNhbCBvZmZzZXQKK0NPTkZJR19TWVNfUENJX0NGR19TSVpFCS0tIFBDSSBDb25maWd1cmF0aW9uIHNpemUKIAogQ09ORklHX0VYVFJBX0NMT0NLCS0tIEVuYWJsZSBleHRyYSBjbG9jayBzdWNoIGFzIHZjbywgZmxleGJ1cywgcGNpLCBldGMKIAotQ0ZHX01CQVIJCS0tIGRlZmluZSBNQkFSIG9mZnNldAorQ09ORklHX1NZU19NQkFSCQktLSBkZWZpbmUgTUJBUiBvZmZzZXQKIAotQ0ZHX0FUTUVMX0JPT1QJCS0tIFRvIGRldGVybWluZSB0aGUgdS1ib290IGlzIGJvb3RlZCBmcm9tIEF0bWVsIG9yIEludGVsCitDT05GSUdfU1lTX0FUTUVMX0JPT1QJCS0tIFRvIGRldGVybWluZSB0aGUgdS1ib290IGlzIGJvb3RlZCBmcm9tIEF0bWVsIG9yIEludGVsCiAKIENPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAtLSBOb3Qgc3VwcG9ydAogCi1DRkdfSU5JVF9SQU1fQUREUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjU0NDU1IGludGVybmFsIFNSQU0KK0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjU0NDU1IGludGVybmFsIFNSQU0KIAotQ0ZHX0NTbl9CQVNFCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IEJhc2UgcmVnaXN0ZXIKLUNGR19DU25fTUFTSwktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBNYXNrIHJlZ2lzdGVyCi1DRkdfQ1NuX0NUUkwJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQ29udHJvbCByZWdpc3RlcgorQ09ORklHX1NZU19DU25fQkFTRQktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBCYXNlIHJlZ2lzdGVyCitDT05GSUdfU1lTX0NTbl9NQVNLCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IE1hc2sgcmVnaXN0ZXIKK0NPTkZJR19TWVNfQ1NuX0NUUkwJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQ29udHJvbCByZWdpc3RlcgogCi1DRkdfQVRNRUxfQkFTRQktLSBkZWZpbmVzIHRoZSBBdG1lbCBGbGFzaCBiYXNlCi1DRkdfSU5URUxfQkFTRQktLSBkZWZpbmVzIHRoZSBJbnRlbCBGbGFzaCBiYXNlCitDT05GSUdfU1lTX0FUTUVMX0JBU0UJLS0gZGVmaW5lcyB0aGUgQXRtZWwgRmxhc2ggYmFzZQorQ09ORklHX1NZU19JTlRFTF9CQVNFCS0tIGRlZmluZXMgdGhlIEludGVsIEZsYXNoIGJhc2UKIAotQ0ZHX1NEUkFNX0JBU0UJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlCi1DRkdfU0RSQU1fQkFTRTEJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlIDEKK0NPTkZJR19TWVNfU0RSQU1fQkFTRQktLSBkZWZpbmVzIHRoZSBEUkFNIEJhc2UKK0NPTkZJR19TWVNfU0RSQU1fQkFTRTEJLS0gZGVmaW5lcyB0aGUgRFJBTSBCYXNlIDEKIAogMi4gTUVNT1JZIE1BUCBVTkRFUiBVLUJPT1QgQU5EIExJTlVYIEtFUk5FTAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tNTQ3NWV2YiBiL2RvYy9SRUFETUUubTU0NzVldmIKaW5kZXggMzdkMTQzOC4uZGM5YTYwNSAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5tNTQ3NWV2YgorKysgYi9kb2MvUkVBRE1FLm01NDc1ZXZiCkBAIC03NCwyMCArNzQsMjAgQEAKIENPTkZJR19NNTQ3NQkJLS0gZGVmaW5lIGZvciBNNTQ3NUVWQiBib2FyZAogCiBDT05GSUdfTUNGVUFSVAkJLS0gZGVmaW5lIHRvIHVzZSBjb21tb24gQ0YgVWFydCBkcml2ZXIKLUNGR19VQVJUX1BPUlQJCS0tIGRlZmluZSBVQVJUIHBvcnQgbnVtYmVyLCBzdGFydCB3aXRoIDAsIDEgYW5kIDIKK0NPTkZJR19TWVNfVUFSVF9QT1JUCQktLSBkZWZpbmUgVUFSVCBwb3J0IG51bWJlciwgc3RhcnQgd2l0aCAwLCAxIGFuZCAyCiBDT05GSUdfQkFVRFJBVEUJCS0tIGRlZmluZSBVQVJUIGJhdWRyYXRlCiAKIENPTkZJR19GU0xETUFGRUMJLS0gZGVmaW5lIHRvIHVzZSBjb21tb24gZG1hIEZFQyBkcml2ZXIKIENPTkZJR19ORVRfTVVMVEkJLS0gZGVmaW5lIHRvIHVzZSBtdWx0aSBGRUMgaW4gdS1ib290CiBDT05GSUdfTUlJCQktLSBlbmFibGUgdG8gdXNlIE1JSSBkcml2ZXIKIENPTkZJR19DRl9ET01JSQkJLS0gZW5hYmxlIHRvIHVzZSBNSUkgZmVhdHVyZSBpbiBjbWRfbWlpLmMKLUNGR19ESVNDT1ZFUl9QSFkJLS0gZW5hYmxlIFBIWSBkaXNjb3ZlcnkKLUNGR19SWF9FVEhfQlVGRkVSCS0tIFNldCBGRUMgUmVjZWl2ZSBidWZmZXIKLUNGR19GQVVMVF9FQ0hPX0xJTktfRE9XTi0tCi1DRkdfRkVDMF9QSU5NVVgJCS0tIFNldCBGRUMwIFBpbiBjb25maWd1cmF0aW9uCi1DRkdfRkVDMV9QSU5NVVgJCS0tIFNldCBGRUMxIFBpbiBjb25maWd1cmF0aW9uCi1DRkdfRkVDMF9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCi1DRkdfRkVDMV9NSUlCQVNFCS0tIFNldCBGRUMwIE1JSSBiYXNlIHJlZ2lzdGVyCitDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQktLSBlbmFibGUgUEhZIGRpc2NvdmVyeQorQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCS0tIFNldCBGRUMgUmVjZWl2ZSBidWZmZXIKK0NPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04tLQorQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJLS0gU2V0IEZFQzAgUGluIGNvbmZpZ3VyYXRpb24KK0NPTkZJR19TWVNfRkVDMV9QSU5NVVgJCS0tIFNldCBGRUMxIFBpbiBjb25maWd1cmF0aW9uCitDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQktLSBTZXQgRkVDMCBNSUkgYmFzZSByZWdpc3RlcgorQ09ORklHX1NZU19GRUMxX01JSUJBU0UJLS0gU2V0IEZFQzAgTUlJIGJhc2UgcmVnaXN0ZXIKIE1DRkZFQ19UT1VUX0xPT1AJLS0gc2V0IEZFQyB0aW1lb3V0IGxvb3AKIENPTkZJR19IQVNfRVRIMQkJLS0gZGVmaW5lIHRvIGVuYWJsZSBzZWNvbmQgRkVDIGluIHUtYm9vdAogCkBAIC0xMDEsMzUgKzEwMSwzNSBAQAogQ09ORklHX0ZTTF9JMkMJCS0tIGRlZmluZSB0byB1c2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyCiBDT05GSUdfSEFSRF9JMkMJCS0tIGRlZmluZSBmb3IgSTJDIGhhcmR3YXJlIHN1cHBvcnQKIENPTkZJR19TT0ZUX0kyQwkJLS0gZGVmaW5lIGZvciBJMkMgYml0LWJhbmdlZAotQ0ZHX0kyQ19TUEVFRAkJLS0gZGVmaW5lIGZvciBJMkMgc3BlZWQKLUNGR19JMkNfU0xBVkUJCS0tIGRlZmluZSBmb3IgSTJDIHNsYXZlIGFkZHJlc3MKLUNGR19JMkNfT0ZGU0VUCQktLSBkZWZpbmUgZm9yIEkyQyBiYXNlIGFkZHJlc3Mgb2Zmc2V0Ci1DRkdfSU1NUgkJLS0gZGVmaW5lIGZvciBNQkFSIG9mZnNldAorQ09ORklHX1NZU19JMkNfU1BFRUQJCS0tIGRlZmluZSBmb3IgSTJDIHNwZWVkCitDT05GSUdfU1lTX0kyQ19TTEFWRQkJLS0gZGVmaW5lIGZvciBJMkMgc2xhdmUgYWRkcmVzcworQ09ORklHX1NZU19JMkNfT0ZGU0VUCQktLSBkZWZpbmUgZm9yIEkyQyBiYXNlIGFkZHJlc3Mgb2Zmc2V0CitDT05GSUdfU1lTX0lNTVIJCS0tIGRlZmluZSBmb3IgTUJBUiBvZmZzZXQKIAogQ09ORklHX1BDSQkJLS0gZGVmaW5lIGZvciBQQ0kgc3VwcG9ydAogQ09ORklHX1BDSV9QTlAJCS0tIGRlZmluZSBmb3IgUGx1ZyBuIHBsYXkgc3VwcG9ydAogQ09ORklHX1NLSVBQQ0lfSE9TVEJSSURHRQktLSBTS0lQIFBDSSBIb3N0IGJyaWRnZQotQ0ZHX1BDSV9NRU1fQlVTCQktLSBQQ0kgbWVtb3J5IGxvZ2ljYWwgb2Zmc2V0Ci1DRkdfUENJX01FTV9QSFlTCS0tIFBDSSBtZW1vcnkgcGh5c2ljYWwgb2Zmc2V0Ci1DRkdfUENJX01FTV9TSVpFCS0tIFBDSSBtZW1vcnkgc2l6ZQotQ0ZHX1BDSV9JT19CVVMJCS0tIFBDSSBJTyBsb2dpY2FsIG9mZnNldAotQ0ZHX1BDSV9JT19QSFlTCQktLSBQQ0kgSU8gcGh5c2ljYWwgb2Zmc2V0Ci1DRkdfUENJX0lPX1NJWkUJCS0tIFBDSSBJTyBzaXplCi1DRkdfUENJX0NGR19CVVMJCS0tIFBDSSBDb25maWd1cmF0aW9uIGxvZ2ljYWwgb2Zmc2V0Ci1DRkdfUENJX0NGR19QSFlTCS0tIFBDSSBDb25maWd1cmF0aW9uIHBoeXNpY2FsIG9mZnNldAotQ0ZHX1BDSV9DRkdfU0laRQktLSBQQ0kgQ29uZmlndXJhdGlvbiBzaXplCitDT05GSUdfU1lTX1BDSV9NRU1fQlVTCQktLSBQQ0kgbWVtb3J5IGxvZ2ljYWwgb2Zmc2V0CitDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwktLSBQQ0kgbWVtb3J5IHBoeXNpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJLS0gUENJIG1lbW9yeSBzaXplCitDT05GSUdfU1lTX1BDSV9JT19CVVMJCS0tIFBDSSBJTyBsb2dpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfSU9fUEhZUwkJLS0gUENJIElPIHBoeXNpY2FsIG9mZnNldAorQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJLS0gUENJIElPIHNpemUKK0NPTkZJR19TWVNfUENJX0NGR19CVVMJCS0tIFBDSSBDb25maWd1cmF0aW9uIGxvZ2ljYWwgb2Zmc2V0CitDT05GSUdfU1lTX1BDSV9DRkdfUEhZUwktLSBQQ0kgQ29uZmlndXJhdGlvbiBwaHlzaWNhbCBvZmZzZXQKK0NPTkZJR19TWVNfUENJX0NGR19TSVpFCS0tIFBDSSBDb25maWd1cmF0aW9uIHNpemUKIAotQ0ZHX01CQVIJCS0tIGRlZmluZSBNQkFSIG9mZnNldAorQ09ORklHX1NZU19NQkFSCQktLSBkZWZpbmUgTUJBUiBvZmZzZXQKIAogQ09ORklHX01PTklUT1JfSVNfSU5fUkFNIC0tIE5vdCBzdXBwb3J0CiAKLUNGR19JTklUX1JBTV9BRERSCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUNGNTQ3eCBpbnRlcm5hbCBTUkFNCitDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1NDd4IGludGVybmFsIFNSQU0KIAotQ0ZHX0NTbl9CQVNFCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IEJhc2UgcmVnaXN0ZXIKLUNGR19DU25fTUFTSwktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBNYXNrIHJlZ2lzdGVyCi1DRkdfQ1NuX0NUUkwJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQ29udHJvbCByZWdpc3RlcgorQ09ORklHX1NZU19DU25fQkFTRQktLSBkZWZpbmVzIHRoZSBDaGlwIFNlbGVjdCBCYXNlIHJlZ2lzdGVyCitDT05GSUdfU1lTX0NTbl9NQVNLCS0tIGRlZmluZXMgdGhlIENoaXAgU2VsZWN0IE1hc2sgcmVnaXN0ZXIKK0NPTkZJR19TWVNfQ1NuX0NUUkwJLS0gZGVmaW5lcyB0aGUgQ2hpcCBTZWxlY3QgQ29udHJvbCByZWdpc3RlcgogCi1DRkdfU0RSQU1fQkFTRQktLSBkZWZpbmVzIHRoZSBEUkFNIEJhc2UKK0NPTkZJR19TWVNfU0RSQU1fQkFTRQktLSBkZWZpbmVzIHRoZSBEUkFNIEJhc2UKIAogMi4gTUVNT1JZIE1BUCBVTkRFUiBVLUJPT1QgQU5EIExJTlVYIEtFUk5FTAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tNjhrIGIvZG9jL1JFQURNRS5tNjhrCmluZGV4IDBjNTMzZjMuLmU2YzMzYTcgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUubTY4aworKysgYi9kb2MvUkVBRE1FLm02OGsKQEAgLTcyLDcgKzcyLDcgQEAKIGh0dHA6Ly9tYWlsbWFuLnVjbGludXgub3JnL3BpcGVybWFpbC91Y2xpbnV4LWRldi8yMDAzLURlY2VtYmVyLzAyMzM4NC5odG1sCiAKIFUtYm9vdCBpcyBjb25maWd1cmVkIHRvIHJ1biBhdCAweDIwMDAwIGF0IGRlZmF1bHQuIFRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgYnkKLWNoYW5nZSBURVhUX0JBU0UgaW4gYm9hcmQvbTUyODJldmIvY29uZmlnLm1rIGFuZCBDRkdfTU9OSVRPUl9CQVNFIGluCitjaGFuZ2UgVEVYVF9CQVNFIGluIGJvYXJkL201MjgyZXZiL2NvbmZpZy5tayBhbmQgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgaW4KIGluY2x1ZGUvY29uZmlncy9NNTI4MkVWQi5oLgogCiAzLjIgQnVTIEVCK01DRi1FVjEyMwpAQCAtOTUsNyArOTUsNyBAQAogQ09ORklHX01PTklUT1JfSVNfSU5fUkFNIG11c3QgYmUgZGVmaW5lZC4gSWYgaXQgaXMgZGVmaW5lZCB0aGUKIGluaXRpYWwgdmVjdG9yIHRhYmxlIGFuZCBiYXNpYyBwcm9jZXNzb3IgaW5pdGlhbGl6YXRpb24gd2lsbCBub3QKIGJlIGNvbXBpbGVkIGluLiBUaGUgc3RhcnQgYWRkcmVzcyBvZiB1LWJvb3QgbXVzdCBiZSBhZGp1c3RlZCBpbgotdGhlIGJvYXJkcyBjb25maWcgaGVhZGVyIGZpbGUgKENGR19NT05JVE9SX0JBU0UpIGFuZCBNYWtlZmlsZQordGhlIGJvYXJkcyBjb25maWcgaGVhZGVyIGZpbGUgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSBhbmQgTWFrZWZpbGUKIChURVhUX0JBU0UpIHRvIHRoZSBsb2FkIGFkZHJlc3MuCiAKIDQuMSBNQ0Y1MjcyIHNwZWNpZmljIE9wdGlvbnMvU2V0dGluZ3MKQEAgLTEwNywyMCArMTA3LDIwIEBACiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KIAkJLS0gZGVmaW5lZCBpZiB1LWJvb3QgaXMgbG9hZGVkIGJ5IGEgcHJlLWxvYWRlcgogCi1DRkdfTUJBUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjUyNzIgY29uZmlndXJhdGlvbiByZWdpc3RlcnMKLUNGR19JTklUX1JBTV9BRERSCitDT05GSUdfU1lTX01CQVIJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1MjcyIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzCitDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIKIAkJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1MjcyIGludGVybmFsIFNSQU0KLUNGR19FTkVUX0JEX0JBU0UKK0NPTkZJR19TWVNfRU5FVF9CRF9CQVNFCiAJCS0tIGRlZmluZXMgdGhlIGJhc2UgYWRkcmVzIG9mIHRoZSBGRUMgYnVmZmVyIGRlc2NyaXB0b3JzCiAKLUNGR19TQ1IJCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBTeXN0ZW0gQ29uZmlndXJhdGlvbiBSZWdpc3RlcgotQ0ZHX1NQUgkJLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIFN5c3RlbSBQcm90ZWN0aW9uIFJlZ2lzdGVyCi1DRkdfQlJ4X1BSRUxJTQktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgQ2hpcCBTZWxlY3QgQmFzZSBSZWdpc3RlcnMKLUNGR19PUnhfUFJFTElNCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBDaGlwIFNlbGVjdCBPcHRpb24gUmVnaXN0ZXJzCitDT05GSUdfU1lTX1NDUgkJLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIFN5c3RlbSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyCitDT05GSUdfU1lTX1NQUgkJLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIFN5c3RlbSBQcm90ZWN0aW9uIFJlZ2lzdGVyCitDT05GSUdfU1lTX0JSeF9QUkVMSU0JLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIENoaXAgU2VsZWN0IEJhc2UgUmVnaXN0ZXJzCitDT05GSUdfU1lTX09SeF9QUkVMSU0JLS0gZGVmaW5lcyB0aGUgY29udGVudHMgb2YgdGhlIENoaXAgU2VsZWN0IE9wdGlvbiBSZWdpc3RlcnMKIAotQ0ZHX1B4RERSCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBEYXRhIERpcmVjdGlvbiBSZWdpc3RlcnMKLUNGR19QeERBVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgRGF0YSBSZWdpc3RlcnMKLUNGR19QWENOVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycworQ09ORklHX1NZU19QeEREUgktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXJzCitDT05GSUdfU1lTX1B4REFUCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBEYXRhIFJlZ2lzdGVycworQ09ORklHX1NZU19QWENOVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycwogCiAKIDQuMiBNQ0Y1MjgyIHNwZWNpZmljIE9wdGlvbnMvU2V0dGluZ3MKQEAgLTEzMiwzMiArMTMyLDMyIEBACiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KIAkJLS0gZGVmaW5lZCBpZiB1LWJvb3QgaXMgbG9hZGVkIGJ5IGEgcHJlLWxvYWRlcgogCi1DRkdfTUJBUgktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjUyODIgaW50ZXJuYWwgcmVnaXN0ZXIgc3BhY2UKLUNGR19JTklUX1JBTV9BRERSCitDT05GSUdfU1lTX01CQVIJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1MjgyIGludGVybmFsIHJlZ2lzdGVyIHNwYWNlCitDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIKIAkJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBNQ0Y1MjgyIGludGVybmFsIFNSQU0KLUNGR19JTlRfRkxBU0hfQkFTRQorQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRQogCQktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIE1DRjUyODIgaW50ZXJuYWwgRmxhc2ggbWVtb3J5Ci1DRkdfRU5FVF9CRF9CQVNFCitDT05GSUdfU1lTX0VORVRfQkRfQkFTRQogCQktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlcyBvZiB0aGUgRkVDIGJ1ZmZlciBkZXNjcmlwdG9ycwogCi1DRkdfTUZECitDT05GSUdfU1lTX01GRAogCQktLSBkZWZpbmVzIHRoZSBQTEwgTXVsdGlwbGljYXRpb24gRmFjdG9yIERldmlkZXIKIAkJICAgKHNlZSB0YWJsZSA5LTQgb2YgTUNGIHVzZXIgbWFudWFsKQotQ0ZHX1JGRAkJLS0gZGVmaW5lcyB0aGUgUExMIFJlZHVjZSBGcmVjdWVuY3kgRGV2aWRlcgorQ09ORklHX1NZU19SRkQJCS0tIGRlZmluZXMgdGhlIFBMTCBSZWR1Y2UgRnJlY3VlbmN5IERldmlkZXIKIAkJICAgKHNlZSB0YWJsZSA5LTQgb2YgTUNGIHVzZXIgbWFudWFsKQogCi1DRkdfQ1N4X0JBU0UJLS0gZGVmaW5lcyB0aGUgYmFzZSBhZGRyZXNzIG9mIGNoaXAgc2VsZWN0IHgKLUNGR19DU3hfU0laRQktLSBkZWZpbmVzIHRoZSBtZW1vcnkgc2l6ZSAoYWRkcmVzcyByYW5nZSkgb2YgY2hpcCBzZWxlY3QgeAotQ0ZHX0NTeF9XSURUSAktLSBkZWZpbmVzIHRoZSBidXMgd2l0aCBvZiBjaGlwIHNlbGVjdCB4Ci1DRkdfQ1N4X1JPCS0tIGlmIHNldCB0byAwIGNoaXAgc2VsZWN0IHggaXMgcmVhZC93aXJ0ZQorQ09ORklHX1NZU19DU3hfQkFTRQktLSBkZWZpbmVzIHRoZSBiYXNlIGFkZHJlc3Mgb2YgY2hpcCBzZWxlY3QgeAorQ09ORklHX1NZU19DU3hfU0laRQktLSBkZWZpbmVzIHRoZSBtZW1vcnkgc2l6ZSAoYWRkcmVzcyByYW5nZSkgb2YgY2hpcCBzZWxlY3QgeAorQ09ORklHX1NZU19DU3hfV0lEVEgJLS0gZGVmaW5lcyB0aGUgYnVzIHdpdGggb2YgY2hpcCBzZWxlY3QgeAorQ09ORklHX1NZU19DU3hfUk8JLS0gaWYgc2V0IHRvIDAgY2hpcCBzZWxlY3QgeCBpcyByZWFkL3dpcnRlCiAJCQllbHNlIGNoaXBzZWxjdCBpcyByZWFkIG9ubHkKLUNGR19DU3hfV1MJLS0gZGVmaW5lcyB0aGUgbnVtYmVyIG9mIHdhaXQgc3RhdGVzICBvZiBjaGlwIHNlbGVjdCB4CitDT05GSUdfU1lTX0NTeF9XUwktLSBkZWZpbmVzIHRoZSBudW1iZXIgb2Ygd2FpdCBzdGF0ZXMgIG9mIGNoaXAgc2VsZWN0IHgKIAotQ0ZHX1B4RERSCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBEYXRhIERpcmVjdGlvbiBSZWdpc3RlcnMKLUNGR19QeERBVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgRGF0YSBSZWdpc3RlcnMKLUNGR19QWENOVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycworQ09ORklHX1NZU19QeEREUgktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXJzCitDT05GSUdfU1lTX1B4REFUCS0tIGRlZmluZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBEYXRhIFJlZ2lzdGVycworQ09ORklHX1NZU19QWENOVAktLSBkZWZpbmVzIHRoZSBjb250ZW50cyBvZiB0aGUgUG9ydCBDb25maWd1cmF0aW9uIFJlZ2lzdGVycwogCi1DRkdfUHhQQVIJLS0gZGVmaW5lcyB0aGUgZnVuY3Rpb24gb2YgcG9ydHMKK0NPTkZJR19TWVNfUHhQQVIJLS0gZGVmaW5lcyB0aGUgZnVuY3Rpb24gb2YgcG9ydHMKIAogCiA1LiBDT01QSUxFUgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tYXJ1YnVuLXBjbWNpYSBiL2RvYy9SRUFETUUubWFydWJ1bi1wY21jaWEKaW5kZXggNjA5OWRhMi4uZDM1NjNhMyAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5tYXJ1YnVuLXBjbWNpYQorKysgYi9kb2MvUkVBRE1FLm1hcnVidW4tcGNtY2lhCkBAIC0zMywyOCArMzMsMjggQEAKIAlNb3N0IGRldmljZXMgaGF2ZSBvbmx5IG9uZSBzbG90LiBZb3Ugc2hvdWxkIGRlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQSAuCiAJZXguCSNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EgICAgMQogCi0gICAgKiBDRkdfTUFSVUJVTl9NUlNIUEMKKyAgICAqIENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMKIAlUaGlzIGlzIE1SLVNIUEMtMDEgUENNQ0lBIGNvbnRyb2xlciBiYXNlIGFkZHJlc3MuCiAJWW91IHNob3VsZCBkbyB0aGUgc2V0dGluZyBtYXRjaGVkIHRvIHlvdXIgZW52aXJvbm1lbnQuCi0JZXguICAjZGVmaW5lIENGR19NQVJVQlVOX01SU0hQQyAweGIwM2ZmZmUwCisJZXguICAjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgMHhiMDNmZmZlMAogCSAgICAgKCBmb3IgTVM3NzIyU0UwMSBlbnZpcm9ubWVudCApCiAKLSAgICAqIENGR19NQVJVQlVOX01XMQorICAgICogQ09ORklHX1NZU19NQVJVQlVOX01XMQogCVRoaXMgaXMgTVItU0hQQy0wMSBtZW1vcnkgd2luZG93IGJhc2UgYWRkcmVzcy4KIAlZb3Ugc2hvdWxkIGRvIHRoZSBzZXR0aW5nIG1hdGNoZWQgdG8geW91ciBlbnZpcm9ubWVudC4KLQlleC4gI2RlZmluZSBDRkdfTUFSVUJVTl9NVzEgMHhiMDQwMDAwMAorCWV4LiAjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9NVzEgMHhiMDQwMDAwMAogCSAgICAgKCBmb3IgTVM3NzIyU0UwMSBlbnZpcm9ubWVudCApCiAKLSAgICAqIENGR19NQVJVQlVOX01XMQorICAgICogQ09ORklHX1NZU19NQVJVQlVOX01XMQogCVRoaXMgaXMgTVItU0hQQy0wMSBhdHRyaWJ1dGUgd2luZG93IGJhc2UgYWRkcmVzcy4KIAlZb3Ugc2hvdWxkIGRvIHRoZSBzZXR0aW5nIG1hdGNoZWQgdG8geW91ciBlbnZpcm9ubWVudC4KLQlleC4gI2RlZmluZSBDRkdfTUFSVUJVTl9NVzIgMHhiMDUwMDAwMAorCWV4LiAjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9NVzIgMHhiMDUwMDAwMAogCSAgICAgKCBmb3IgTVM3NzIyU0UwMSBlbnZpcm9ubWVudCApCiAKLSAgICAqIENGR19NQVJVQlVOX01XMQorICAgICogQ09ORklHX1NZU19NQVJVQlVOX01XMQogCVRoaXMgaXMgTVItU0hQQy0wMSBJL08gd2luZG93IGJhc2UgYWRkcmVzcy4KIAlZb3Ugc2hvdWxkIGRvIHRoZSBzZXR0aW5nIG1hdGNoZWQgdG8geW91ciBlbnZpcm9ubWVudC4KLQlleC4gI2RlZmluZSBDRkdfTUFSVUJVTl9JTyAgMHhiMDYwMDAwMAorCWV4LiAjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9JTyAgMHhiMDYwMDAwMAogCSAgICAgKCBmb3IgTVM3NzIyU0UwMSBlbnZpcm9ubWVudCApCiAKIDMuIE90aGVyCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLm1wYzgzMTNlcmRiIGIvZG9jL1JFQURNRS5tcGM4MzEzZXJkYgppbmRleCBjZDU2Njg5Li43YzFhZjE3IDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLm1wYzgzMTNlcmRiCisrKyBiL2RvYy9SRUFETUUubXBjODMxM2VyZGIKQEAgLTMsNyArMyw3IEBACiAKIDEuCUJvYXJkIFN3aXRjaGVzIGFuZCBKdW1wZXJzCiAKLQlTMyBpcyB1c2VkIHRvIHNldCBDRkdfUkVTRVRfU09VUkNFLgorCVMzIGlzIHVzZWQgdG8gc2V0IENPTkZJR19TWVNfUkVTRVRfU09VUkNFLgogCiAJVG8gYm9vdCB0aGUgaW1hZ2UgYXQgMHhGRTAwMDAwMCBpbiBOT1IgZmxhc2gsIHVzZSB0aGVzZSBESVAKIAlzd2l0Y2ggc2V0dGluZ3MgZm9yIFMzIFM0OgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5tcGM4MzE1ZXJkYiBiL2RvYy9SRUFETUUubXBjODMxNWVyZGIKaW5kZXggZTc3ZWJhNy4uN2Q0NzZkMCAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5tcGM4MzE1ZXJkYgorKysgYi9kb2MvUkVBRE1FLm1wYzgzMTVlcmRiCkBAIC0zLDcgKzMsNyBAQAogCiAxLglCb2FyZCBTd2l0Y2hlcyBhbmQgSnVtcGVycwogCi0JUzMgaXMgdXNlZCB0byBzZXQgQ0ZHX1JFU0VUX1NPVVJDRS4KKwlTMyBpcyB1c2VkIHRvIHNldCBDT05GSUdfU1lTX1JFU0VUX1NPVVJDRS4KIAogCVRvIGJvb3QgdGhlIGltYWdlIGF0IDB4RkUwMDAwMDAgaW4gTk9SIGZsYXNoLCB1c2UgdGhlc2UgRElQCiAJc3dpdGNoIHNldHRpbmdzIGZvciBTMyBTNDoKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUubXBjODY0MWhwY24gYi9kb2MvUkVBRE1FLm1wYzg2NDFocGNuCmluZGV4IDFjNDFkNzcuLjJjM2M3MDMgMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUubXBjODY0MWhwY24KKysrIGIvZG9jL1JFQURNRS5tcGM4NjQxaHBjbgpAQCAtMjEsMTYgKzIxLDE2IEBACiAJSjE0IFBpbnMgMS0yIChuZWFyIHBsY2MzMiBzb2NrZXQpCiAKIFN3aXRjaGVzOgotCVNXMSgxLTUpID0gMDExMDAJQ0ZHX0NPUkVQTEwJPSAwMTAwMCA6OiBDT1JFID0gICAyOjEKKwlTVzEoMS01KSA9IDAxMTAwCUNPTkZJR19TWVNfQ09SRVBMTAk9IDAxMDAwIDo6IENPUkUgPSAgIDI6MQogCQkJCQkJICAwMTEwMCA6OiBDT1JFID0gMi41OjEKIAkJCQkJCSAgMTAwMDAgOjogQ09SRSA9ICAgMzoxCiAJCQkJCQkgIDExMTAwIDo6IENPUkUgPSAzLjU6MQogCQkJCQkJICAxMDEwMCA6OiBDT1JFID0gICA0OjEKIAkJCQkJCSAgMDExMTAgOjogQ09SRSA9IDQuNToxCi0JU1cxKDYtOCkgPSAwMDEJCUNGR19TWVNDTEsJPSAwMDAJOjogU1lTQ0xLID0gMzNNSHoKKwlTVzEoNi04KSA9IDAwMQkJQ09ORklHX1NZU19TWVNDTEsJPSAwMDAJOjogU1lTQ0xLID0gMzNNSHoKIAkJCQkJCSAgMDAxCTo6IFNZU0NMSyA9IDQwTUh6CiAKLQlTVzIoMS00KSA9IDExMDAJCUNGR19DQ0JQTEwJPSAwMDEwCTo6IDJYCisJU1cyKDEtNCkgPSAxMTAwCQlDT05GSUdfU1lTX0NDQlBMTAk9IDAwMTAJOjogMlgKIAkJCQkJCSAgMDEwMAk6OiA0WAogCQkJCQkJICAwMTEwCTo6IDZYCiAJCQkJCQkgIDEwMDAJOjogOFgKQEAgLTM4LDM0ICszOCwzNCBAQAogCQkJCQkJICAxMTAwCTo6IDEyWAogCQkJCQkJICAxMTEwCTo6IDE0WAogCQkJCQkJICAwMDAwCTo6IDE2WAotCVNXMig1LTgpID0gMTExMAkJQ0ZHX0JPT1RMT0MJPSAxMTEwCTo6IGJvb3QgMTYtYml0IGxvY2FsYnVzCisJU1cyKDUtOCkgPSAxMTEwCQlDT05GSUdfU1lTX0JPT1RMT0MJPSAxMTEwCTo6IGJvb3QgMTYtYml0IGxvY2FsYnVzCiAKLQlTVzMoMS03KSA9IDAwMTEwMDAJQ0ZHX1ZJRAkJPSAwMDExMDAwIDo6IFZDT1JFID0gMS4yVgorCVNXMygxLTcpID0gMDAxMTAwMAlDT05GSUdfU1lTX1ZJRAkJPSAwMDExMDAwIDo6IFZDT1JFID0gMS4yVgogCQkJCQkJICAwMTAwMDAwIDo6IFZDT1JFID0gMS4xMVYKIAlTVzMoOCkJID0gMAkJVkNDX1BMQVQJPSAwCTo6IFZDQ19QTEFUID0gMS4yVgogCQkJCQkJICAxCTo6IFZDQ19QTEFUID0gMS4wVgogCi0JU1c0KDEtMikgPSAxMQkJQ0ZHX0hPU1RNT0RFCT0gMTEJOjogYm90aCBwcm90cyBob3N0L3Jvb3QKLQlTVzQoMy00KSA9IDExCQlDRkdfQk9PVFNFUQk9IDExCTo6IG5vIGJvb3Qgc2VxCi0JU1c0KDUtOCkgPSAwMDExCQlDRkdfSU9QT1JUCT0gMDAxMQk6OiBib3RoIFBFWAorCVNXNCgxLTIpID0gMTEJCUNPTkZJR19TWVNfSE9TVE1PREUJPSAxMQk6OiBib3RoIHByb3RzIGhvc3Qvcm9vdAorCVNXNCgzLTQpID0gMTEJCUNPTkZJR19TWVNfQk9PVFNFUQk9IDExCTo6IG5vIGJvb3Qgc2VxCisJU1c0KDUtOCkgPSAwMDExCQlDT05GSUdfU1lTX0lPUE9SVAk9IDAwMTEJOjogYm90aCBQRVgKIAotCVNXNSgxKQkgPSAxCQlDRkdfRkxBU0hNQVAJPSAxCTo6IGJvb3QgZnJvbSBmbGFzaAorCVNXNSgxKQkgPSAxCQlDT05GSUdfU1lTX0ZMQVNITUFQCT0gMQk6OiBib290IGZyb20gZmxhc2gKIAkJCQkJCSAgMAk6OiBib290IGZyb20gUHJvbUpldAotCVNXNSgyKQkgPSAxCQlDRkdfRkxBU0hCQU5LCT0gMQk6OiBzd2FwIHVwcGVyL2xvd2VyCisJU1c1KDIpCSA9IDEJCUNPTkZJR19TWVNfRkxBU0hCQU5LCT0gMQk6OiBzd2FwIHVwcGVyL2xvd2VyCiAJCQkJCQkJIGhhbHZlcyAodmlydHVhbCBiYW5rcykKIAkJCQkJCSAgMAk6OiBub3JtYWwKLQlTVzUoMykJID0gMAkJQ0ZHX0ZMQVNIV1AJPSAwCTo6IG5vdCBwcm90ZWN0ZWQKLQlTVzUoNCkJID0gMAkJQ0ZHX1BPUlRESVYJPSAxCTo6IDI6MSBmb3IgUEQ0CisJU1c1KDMpCSA9IDAJCUNPTkZJR19TWVNfRkxBU0hXUAk9IDAJOjogbm90IHByb3RlY3RlZAorCVNXNSg0KQkgPSAwCQlDT05GSUdfU1lTX1BPUlRESVYJPSAxCTo6IDI6MSBmb3IgUEQ0CiAJCQkJCQkJICAgMToxIGZvciBQRDYKLQlTVzUoNS02KSA9IDExCQlDRkdfUElYSVNPUFQJPSAxMQk6OiBzL3cgZGV0ZXJtaW5lZAotCVNXNSg3LTgpID0gMTEJCUNGR19MQURPUFQJPSAxMQk6OiBzL3cgZGV0ZXJtaW5lZAorCVNXNSg1LTYpID0gMTEJCUNPTkZJR19TWVNfUElYSVNPUFQJPSAxMQk6OiBzL3cgZGV0ZXJtaW5lZAorCVNXNSg3LTgpID0gMTEJCUNPTkZJR19TWVNfTEFET1BUCT0gMTEJOjogcy93IGRldGVybWluZWQKIAotCVNXNigxKQkgPSAxCQlDRkdfQ1BVQk9PVAk9IDEJOjogbm8gYm9vdCBob2xkb2ZmCi0JU1c2KDIpCSA9IDEJCUNGR19CT09UQUREUgk9IDEJOjogbm8gdHJhc2xhdGlvbgotCVNXNigzLTUpID0gMDAwCQlDRkdfUkVGQ0xLU0VMCT0gMDAwCTo6IDEwME1IWgotCVNXNig2KQkgPSAxCQlDRkdfU0VSUk9NX0FERFI9IDEJOjoKLQlTVzYoNykJID0gMQkJQ0ZHX01FTURFQlVHCT0gMQk6OgotCVNXNig4KQkgPSAxCQlDRkdfRERSREVCVUcJPSAxCTo6CisJU1c2KDEpCSA9IDEJCUNPTkZJR19TWVNfQ1BVQk9PVAk9IDEJOjogbm8gYm9vdCBob2xkb2ZmCisJU1c2KDIpCSA9IDEJCUNPTkZJR19TWVNfQk9PVEFERFIJPSAxCTo6IG5vIHRyYXNsYXRpb24KKwlTVzYoMy01KSA9IDAwMAkJQ09ORklHX1NZU19SRUZDTEtTRUwJPSAwMDAJOjogMTAwTUhaCisJU1c2KDYpCSA9IDEJCUNPTkZJR19TWVNfU0VSUk9NX0FERFI9IDEJOjoKKwlTVzYoNykJID0gMQkJQ09ORklHX1NZU19NRU1ERUJVRwk9IDEJOjoKKwlTVzYoOCkJID0gMQkJQ09ORklHX1NZU19ERFJERUJVRwk9IDEJOjoKIAogCVNXOCgxKQkgPSAxCQlBQ1pfU1lOQwk9IDEJOjogNDhNSHogb24gVFA0OQogCVNXOCgyKQkgPSAxCQlBQ0JfU1lOQwk9IDEJOjogVEhSTVRSSVAgZGlzYWJsZWQKQEAgLTc0LDcgKzc0LDcgQEAKIAlTVzgoNSkJID0gMAkJU1VTTEVECQk9IDAJOjogU291dGhCcmlkZ2UgTW9kZQogCVNXOCg2KQkgPSAwCQlTUFJFQUQJCT0gMAk6OiBSRUZDTEsgU1NDRyBEaXNhYmxlZAogCVNXOCg3KQkgPSAxCQlBQ1BXUgkJPSAxCTo6IG5vbi1iYXR0ZXJ5Ci0JU1c4KDgpCSA9IDAJCUNGR19JRFdQCT0gMAk6OiB3cml0ZSBlbmFibGUKKwlTVzgoOCkJID0gMAkJQ09ORklHX1NZU19JRFdQCT0gMAk6OiB3cml0ZSBlbmFibGUKIAogCiAzLiBGbGFzaCBVLUJvb3QKZGlmZiAtLWdpdCBhL2RvYy9SRUFETUUubmFuZCBiL2RvYy9SRUFETUUubmFuZAppbmRleCA2ZGFjMjRjLi5iZjgwYmMwIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLm5hbmQKKysrIGIvZG9jL1JFQURNRS5uYW5kCkBAIC05NSw3ICs5NSw3IEBACiAgICAgICBDT05GSUdfTVREX05BTkRfRUNDX1lBRkZTIHdvdWxkIGJlIGFub3RoZXIgdXNlZnVsIGNob2ljZSBmb3IKICAgICAgIHNvbWVvbmUgdG8gaW1wbGVtZW50LgogCi0gICBDRkdfTUFYX05BTkRfREVWSUNFCisgICBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQogICAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyB5b3Ugd2FudCB0byBzdXBwb3J0LgogCiBOQU5EIEludGVyZmFjZToKQEAgLTE2NCw3ICsxNjQsNyBAQAogICAgVGhlc2UgZGVmaW5pdGlvbnMgYXJlIG5lZWRlZCBpbiB0aGUgYm9hcmQgY29uZmlndXJhdGlvbiBmb3Igbm93LCBidXQKICAgIG1heSByZWFsbHkgYmVsb25nIGluIGEgaGVhZGVyIGZpbGUuCiAgICBUT0RPOiBGaWd1cmUgd2hpY2ggb25lcyBhcmUgdHJ1bHkgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhbmQgcmVuYW1lCi0JIHRoZW0gdG8gQ0ZHX05BTkRfLi4uIGFuZCBtb3ZlIHRoZSByZXN0IHNvbWV3aGVyZSBhcHByb3ByaWF0ZS4KKwkgdGhlbSB0byBDT05GSUdfU1lTX05BTkRfLi4uIGFuZCBtb3ZlIHRoZSByZXN0IHNvbWV3aGVyZSBhcHByb3ByaWF0ZS4KIAogICAgI2RlZmluZSBTRUNUT1JTSVpFIDUxMgogICAgI2RlZmluZSBBRERSX0NPTFVNTiAxCkBAIC0xNzQsNyArMTc0LDcgQEAKICAgICNkZWZpbmUgTkFORF9NQVhfRkxPT1JTIDEKICAgICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMgMQogCi0gICAjZGVmaW5lIENGR19EQVZJTkNJX0JST0tFTl9FQ0MKKyAgICNkZWZpbmUgQ09ORklHX1NZU19EQVZJTkNJX0JST0tFTl9FQ0MKICAgICAgIFZlcnNpb25zIG9mIFUtQm9vdCA8PSAxLjMuMyBhbmQgTW9udGF2aXN0YSBMaW51eCBrZXJuZWxzCiAgICAgICBnZW5lcmF0ZWQgYm9ndXMgRUNDcyBvbiBsYXJnZS1wYWdlIE5BTkQuIEJvdGggbGFyZ2UgYW5kIHNtYWxsIHBhZ2UKICAgICAgIE5BTkQgRUNDcyB3ZXJlIGluY29tcGF0aWJsZSB3aXRoIHRoZSBMaW51eCBkYXZpbmNpIGdpdCB0cmVlIChzaW5jZQpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5uaW9zIGIvZG9jL1JFQURNRS5uaW9zCmluZGV4IDJmMTE0ODkuLjdmMzQ5MzggMTAwNjQ0Ci0tLSBhL2RvYy9SRUFETUUubmlvcworKysgYi9kb2MvUkVBRE1FLm5pb3MKQEAgLTY4LDExICs2OCwxMSBAQAogMi4xIE5pb3Mtc3BlY2lmaWMgT3B0aW9ucy9TZXR0aW5ncwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIEFsbCBjb25maWd1cmF0aW9uIG9wdGlvbnMvc2V0dGluZ3MgdGhhdCBhcmUgc3BlY2lmaWMgdG8gTmlvcyBiZWdpbgotd2l0aCAiQ09ORklHX05JT1NfIiwgIkNGR19OSU9TXyIsIG9yICJDRkdfTklPU19DUFVfIi4KK3dpdGggIkNPTkZJR19OSU9TXyIsICJDT05GSUdfU1lTX05JT1NfIiwgb3IgIkNPTkZJR19TWVNfTklPU19DUFVfIi4KIAogVGhlIGNvbmZpZ3VyYXRpb24gZm9sbG93cyBhIHR3by1zdGFnZSBwcm9jZXNzLiBJbiB0aGUgZmlyc3Qgc3RhZ2UKIHRoZSBOSU9TIENQVSBjb3JlIHdpbGwgZGVmaW5lZCBsaWtlIGRlZmluZWQgaW4gQWx0ZXJhcyBTT1BDIEJ1aWxkZXIuCi1BdCB0aGlzIHBvaW50IHdlIHVzZSB0aGUgIkNGR19OSU9TX0NQVV8iIGRlZmluZXMgZXhjbHVzaXZlbHkuIEZvcgorQXQgdGhpcyBwb2ludCB3ZSB1c2UgdGhlICJDT05GSUdfU1lTX05JT1NfQ1BVXyIgZGVmaW5lcyBleGNsdXNpdmVseS4gRm9yCiBtb3JlIGluZm9ybWF0aW9ucyBhYm91dCBhbGwgdGhlIGRlZmluaXRpb25zIHlvdSBoYXZlIHRvIHNldHVwIHNlZQogaW50byBjdXJyZW50IGJvYXJkIGNvbmZpZ3VyYXRpb25zIGFuZCBkb2MvUkVBRE1FLm5pb3NfQ0ZHX05JT1NfQ1BVLgogCkBAIC04NSw0MSArODUsNDEgQEAKIAogQ09ORklHX05JT1MgLS0gZGVmaW5lZCBmb3IgYWxsIE5pb3MtMzIgYm9hcmRzLgogCi1DRkdfTklPU19DT05TT0xFIC0tIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIGNvbnNvbGUgVUFSVCBvciB0aGUgSlRBRworQ09ORklHX1NZU19OSU9TX0NPTlNPTEUgLS0gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgY29uc29sZSBVQVJUIG9yIHRoZSBKVEFHCiAJc3RkaW8gcG9ydC4gVG8gZW5hYmxlIGEgY29uc29sZSB2aWEgSlRBRywgZGVmaW5lCiAJQ09ORklHX0NPTlNPTEVfSlRBRyBhbmQgc2V0IENHRl9OSU9TX0NPTlNPTEUgdG8gdGhlIGJhc2UgYWRkcmVzcwogCW9mIHRoZSBKVEFHIHN0ZGlvIHBvcnQgKG5vcm1hbGx5IE9DSSBiYXNlICsgMHgwMGZhKS4gVGhlbgogCXJ1biBuaW9zLWNvbnNvbGUgd2l0aCB0aGUgLXcgb3B0aW9uLgogCShzdGFuZGFyZC0zMjogbmFzeXNfdWFydF8wIHJlc3AuIG5hX3VhcnQxX2Jhc2UpLgogCi1DRkdfTklPU19GSVhFREJBVUQgLS0gZGVmaW5lZCBpZiB0aGUgY29uc29sZSBVQVJUIFBURiBmaXhlZF9iYXVkCitDT05GSUdfU1lTX05JT1NfRklYRURCQVVEIC0tIGRlZmluZWQgaWYgdGhlIGNvbnNvbGUgVUFSVCBQVEYgZml4ZWRfYmF1ZAogCXBhcmFtZXRlciBpcyBzZXQgdG8gJzEnLgogCi1DRkdfTklPU19NVUxUX0hXIC0tIHVzZSBmdWxsIGhhcmR3YXJlIG11bHRpcGx5IChub3QgeWV0IGltcGxlbWVudGVkKS4KK0NPTkZJR19TWVNfTklPU19NVUxUX0hXIC0tIHVzZSBmdWxsIGhhcmR3YXJlIG11bHRpcGx5IChub3QgeWV0IGltcGxlbWVudGVkKS4KIAotQ0ZHX05JT1NfTVVMVF9NU1RFUCAtLSB1c2UgaGFyZHdhcmUgYXNzaXN0ZWQgbXVsdGlwbHkgdXNpbmcgdGhlCitDT05GSUdfU1lTX05JT1NfTVVMVF9NU1RFUCAtLSB1c2UgaGFyZHdhcmUgYXNzaXN0ZWQgbXVsdGlwbHkgdXNpbmcgdGhlCiAJTVNURVAgaW5zdHJ1Y3Rpb24gKG5vdCB5ZXQgaW1wbGVtZW50ZWQpLgogCi1DRkdfTklPU19UTVJCQVNFIC0tIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIHRpbWVyIHVzZWQgdG8gc3VwcG9ydAorQ09ORklHX1NZU19OSU9TX1RNUkJBU0UgLS0gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgdGltZXIgdXNlZCB0byBzdXBwb3J0CiAJeHh4X3RpbWVyIHJvdXRpbmVzIChlLmcuIHNldF90aW1lcigpLCBnZXRfdGltZXIoKSwgZXRjLikuCiAJKHN0YW5kYXJkLTMyOiBuYXN5c190aW1lcl8xIHJlc3AuIG5hX2xvX3ByaW9yaXR5X3RpbWVyMl9iYXNlKS4KIAotQ0ZHX05JT1NfVE1SSVJRIC0tIHRoZSBpbnRlcnJ1cHQgcmVxdWVzdCAodmVjdG9yIG51bWJlcikgYXNzaWduZWQgdG8KK0NPTkZJR19TWVNfTklPU19UTVJJUlEgLS0gdGhlIGludGVycnVwdCByZXF1ZXN0ICh2ZWN0b3IgbnVtYmVyKSBhc3NpZ25lZCB0bwogCXRoZSB0aW1lci4gKHN0YW5kYXJkLTMyOiBuYXN5c190aW1lcl8xX2lycSByZXNwLgogCW5hX2xvd19wcmlvcml0eV90aW1lcjJfaXJxKS4KIAotQ0ZHX05JT1NfVE1STVMgLS0gdGhlIHBlcmlvZCBvZiB0aGUgdGltZXIgaW4gbWlsbGlzZWNvbmRzLgorQ09ORklHX1NZU19OSU9TX1RNUk1TIC0tIHRoZSBwZXJpb2Qgb2YgdGhlIHRpbWVyIGluIG1pbGxpc2Vjb25kcy4KIAotQ0ZHX05JT1NfVE1SQ05UIC0tIHRoZSBwcmVsb2FkYWJsZSBjb3VudGVyIHZhbHVlIGZvciB0aGUgdGltZXIgaWYgaXQgaGFzCitDT05GSUdfU1lTX05JT1NfVE1SQ05UIC0tIHRoZSBwcmVsb2FkYWJsZSBjb3VudGVyIHZhbHVlIGZvciB0aGUgdGltZXIgaWYgaXQgaGFzCiAJbm8gZml4ZWQgcGVyaW9kLgogCi1DRkdfTklPU19BU01JQkFTRSAtLSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBBU01JIHBlcmlwaGVyYWwuCitDT05GSUdfU1lTX05JT1NfQVNNSUJBU0UgLS0gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgQVNNSSBwZXJpcGhlcmFsLgogCShzdGFuZGFyZC0zMjogbmFfYXNtaV9iYXNlKS4KIAotQ0ZHX05JT1NfU1BJQkFTRSAtLSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBTUEkgbWFzdGVyICghKSBwZXJpcGhlcmFsLgorQ09ORklHX1NZU19OSU9TX1NQSUJBU0UgLS0gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgU1BJIG1hc3RlciAoISkgcGVyaXBoZXJhbC4KIAkobmFzeXNfc3BpXzApCiAKLUNGR19OSU9TX1NQSUJJVFMgLS0gdGhlIGFtb3VudCBvZiBjb25maWd1cmVkIFNQSSBkYXRhIGJpdHMgaW4gUFRGLgorQ09ORklHX1NZU19OSU9TX1NQSUJJVFMgLS0gdGhlIGFtb3VudCBvZiBjb25maWd1cmVkIFNQSSBkYXRhIGJpdHMgaW4gUFRGLgogCVRoaXMgdmFsdWUgY2FuIGJlIDggb3IgMTYgb25seSEgKFBURjogZGF0YWJpdHMpCiAKIApAQCAtMTI4LDcgKzEyOCw3IEBACiBTb21lICdzdGFuZGFyZCcgVS1Cb290IG9wdGlvbnMvc2V0dGluZ3MgYXJlIHRyZWF0ZWQgZGlmZmVyZW50bHkgaW4KIHRoZSBOaW9zIHBvcnQuIFRoZXNlIGFyZSBkZXNjcmliZWQgYmVsb3cuCiAKLUNGR19HQkxfREFUQV9PRkZTRVQgLS0gaW4gdGhlIE5pb3MgcG9ydCwgdGhpcyBpcyB0aGUgb2Zmc2V0IG9mIHRoZQorQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLS0gaW4gdGhlIE5pb3MgcG9ydCwgdGhpcyBpcyB0aGUgb2Zmc2V0IG9mIHRoZQogCWdsb2JhbCBkYXRhIHN0cnVjdHVyZSBpbiB0aGUgTmlvcyBtZW1vcnkgc3BhY2UuIE1vcmUgc2ltcGx5LAogCXRoZSBhZGRyZXNzIG9mIGdsb2JhbCBkYXRhLgogCkBAIC0xNTYsMTcgKzE1NiwxNyBAQAogNC4xIEJvb3QgcHJvY2VzcyBvdmVyIEdFUk1TCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFdoZW4gdGhlIE5JT1MgQ1BVIGNhdGNoIGEgcmVzZXQgc2lnbmFsIGl0IHdpbGwgYmVnaW4gdG8gYmUgcnVubmluZwotY29kZSBmcm9tIENGR19OSU9TX0NQVV9SU1RfVkVDVC4gTm9ybWFsbHkgYXQgdGhpcyBwbGFjZSBpdCB3aWxsCitjb2RlIGZyb20gQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVC4gTm9ybWFsbHkgYXQgdGhpcyBwbGFjZSBpdCB3aWxsCiBmaW5kIHRoZSBHRVJNUyBtb25pdG9yLiBUaGF0J3MgdGhlIGNhc2UgZm9yIHRoZSBnZW5lcmljIE5JT1MgQ1BVCiBjb25maWd1cmF0aW9uICJzdGFuZGFyZF8zMiIuIFdoZW4gdGhlIEdFUk1TIG1vbml0b3Igc3RhcnRzIHJ1bm5pbmcsCiBpdCBwZXJmb3JtcyBpbXBvcnRhbnQgc3lzdGVtIGluaXRpYWxpemF0aW9ucyBhbmQgdGhlbiBsb29rcyBmb3IKIGV4ZWN1dGFibGUgY29kZSBpbiBmbGFzaCwgdXNpbmcgdGhlIGZvbGxvd2luZyBzdGVwczoKIAotICAgIDEuIEV4YW1pbmluZyB0aGUgdHdvIGJ5dGVzIGF0IENGR19OSU9TX0NQVV9GTEFTSF9CQVNFICsgMHgwNDAwMEMuCi0gICAgMi4gRXhhbWluaW5nIHRoZSBidXR0b24gMCBvbiB0aGUgUElPIENGR19OSU9TX0NQVV9CVVRUT05fUElPLgorICAgIDEuIEV4YW1pbmluZyB0aGUgdHdvIGJ5dGVzIGF0IENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRSArIDB4MDQwMDBDLgorICAgIDIuIEV4YW1pbmluZyB0aGUgYnV0dG9uIDAgb24gdGhlIFBJTyBDT05GSUdfU1lTX05JT1NfQ1BVX0JVVFRPTl9QSU8uCiAgICAgMy4gSWYgdGhlIGJ1dHRvbiBpcyBub3QgcHJlc3NlZCBhbmQgdGhlIHR3byBieXRlcyBjb250YWluICdOJwogICAgICAgIGFuZCAnaScsIHRoZSBtb25pdG9yIGV4ZWN1dGVzIGEgQ0FMTCB0byBsb2NhdGlvbgotICAgICAgIENGR19OSU9TX0NQVV9GTEFTSF9CQVNFICsgMHgwNDAwMDAuCisgICAgICAgQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFICsgMHgwNDAwMDAuCiAgICAgNC4gSWYgdGhlIGNvZGUgaXMgbm90IGV4ZWN1dGVkIGluIHN0ZXAgMyBvciB0aGUgY29kZSByZXR1cm5zLAogICAgICAgIHRoZW4gcHJpbnRzIGFuIDgtZGlnaXQgdmVyc2lvbiBudW1iZXIgdG8gU1RET1VUIGFuZCB3YWl0cyBmb3IKICAgICAgICB1c2VyIGNvbW1hbmRzIGZyb20gU1RESU4uCkBAIC0xODEsOSArMTgxLDkgQEAKIGltbWVkaWF0ZWx5IGV4ZWN1dGVzIHRoZSBjb2RlLiBUbyByZXR1cm4gcHJvZ3JhbSBleGVjdXRpb24gdG8gdGhlCiBHRVJNUyBtb25pdG9yICh0aGF0IGlzLCBhdm9pZCBydW5uaW5nIGNvZGUgc3RvcmVkIGluIGZsYXNoIG1lbW9yeSk6CiAKLSAgICAxLiBIb2xkIGRvd24gQ0ZHX05JT1NfQ1BVX0JVVFRPTl9QSU8sIGJ1dHRvbiBudW1iZXIgMC4KKyAgICAxLiBIb2xkIGRvd24gQ09ORklHX1NZU19OSU9TX0NQVV9CVVRUT05fUElPLCBidXR0b24gbnVtYmVyIDAuCiAgICAgMi4gUHJlc3MgdGhlbiByZWxlYXNlIHRoZSBDUFUgcmVzZXQgYnV0dG9uLgotICAgIDMuIFJlbGVhc2UgQ0ZHX05JT1NfQ1BVX0JVVFRPTl9QSU8sIGJ1dHRvbiBudW1iZXIgMC4KKyAgICAzLiBSZWxlYXNlIENPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTywgYnV0dG9uIG51bWJlciAwLgogCiAKIDUuIERFQlVHR0lORyBXSVRIIEdEQgpAQCAtMzU0LDcgKzM1NCw3IEBACiAtQWRkIGJvb3Qgc3VwcG9ydCBmb3IgdWNMaW51eCAobmlvc25vbW11KS4KIAogLUltcGxlbWVudCAoZG9uJ3QgY29weSBBbHRlcmEgY29kZSkgdGhlIF9fbXVseHggcm91dGluZXMgdXNpbmcgdGhlCi0gTVNURVAgYW5kIE1VTCBpbnN0cnVjdGlvbnMgKGUuZy4gQ0ZHX05JT1NfTVVMVF9IVyBhbmQgQ0ZHX05JT1NfTVVMVF9NU1RFUCkuCisgTVNURVAgYW5kIE1VTCBpbnN0cnVjdGlvbnMgKGUuZy4gQ09ORklHX1NZU19OSU9TX01VTFRfSFcgYW5kIENPTkZJR19TWVNfTklPU19NVUxUX01TVEVQKS4KIAogCiBSZWdhcmRzLApkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5uaW9zX0NGR19OSU9TX0NQVSBiL2RvYy9SRUFETUUubmlvc19DRkdfTklPU19DUFUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzOGVkOTEuLjAwMDAwMDAKLS0tIGEvZG9jL1JFQURNRS5uaW9zX0NGR19OSU9TX0NQVQorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQlDIEYgRyBfIE4gSSBPIFMgXyBDIFAgVSBfICogICB2IHMgLiAgIE4gSSBPIFMJUyBEIEsKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotV2hlbiBldmVyIHlvdSBoYXZlIHRvIG1ha2UgYSBuZXcgTklPUyBDUFUgY29uZmlndXJhdGlvbiB5b3UgY2FuIHVzZSB0aGlzIHRhYmxlCi1hcyBhIHJlZmVyZW5jZSBsaXN0IHRvIHRoZSBvcmlnaW5hbCBOSU9TIFNESyBzeW1ib2xzIG1hZGUgYnkgQWx0ZXJhcyBTT1BDCi1CdWlsZGVyLiBMb29rIGludG8gZXhjYWxpYnVyLmggYW5kIGV4Y2FsaWJ1ci5zIGluIHlvdXIgU0RLIHBhdGggY3B1X3Nkay9pbmMuCi1TeW1ib2xzIGJlZ2lubmluZyB3aXRoIGEgJ1twdGZdOicgYXJlIGNvbWluZyBmcm9tIHlvdXIgU09QQyBzeXRlbSBkZXNjcmlwdGlvbgotKFBURiBmaWxlKSBpbiBzZWN0aW9ucyBXSVpBUkRfU0NSSVBUX0FSR1VNRU5UUyBvciBTWVNURU1fQlVJTERFUl9JTkZPLgotCi1DIE8gUiBFCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQlbMV0sWzddCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfQ0xLCQkJCQluYXN5c19jbG9ja19mcmVxCi1DRkdfTklPU19DUFVfSUNBQ0hFCQkJCQluYXN5c19pY2FjaGVfc2l6ZQotQ0ZHX05JT1NfQ1BVX0RDQUNIRQkJCQkJbmFzeXNfZGNhY2hlX3NpemUKLUNGR19OSU9TX0NQVV9SRUdfTlVNUwkJCQkJbmFzeXNfbmlvc19udW1fcmVncwotQ0ZHX05JT1NfQ1BVX01VTAkJCQkJX19uaW9zX3VzZV9tdWx0aXBseV9fCi1DRkdfTklPU19DUFVfTVNURVAJCQkJCV9fbmlvc191c2VfbXN0ZXBfXwotQ0ZHX05JT1NfQ1BVX1NUQUNLCQkJCQluYXN5c19zdGFja190b3AKLUNGR19OSU9TX0NQVV9WRUNfQkFTRQkJCQkJbmFzeXNfdmVjdG9yX3RhYmxlCi1DRkdfTklPU19DUFVfVkVDX1NJWkUJCQkJCW5hc3lzX3ZlY3Rvcl90YWJsZV9zaXplCi1DRkdfTklPU19DUFVfVkVDX05VTVMKLUNGR19OSU9TX0NQVV9SU1RfVkVDVAkJCQkJbmFzeXNfcmVzZXRfYWRkcmVzcwotQ0ZHX05JT1NfQ1BVX0RCR19DT1JFCQkJCQluYXN5c19kZWJ1Z19jb3JlCi1DRkdfTklPU19DUFVfUkFNX0JBU0UJCW5hX29uY2hpcF9yYW1fNjRfa2J5dGVzCi1DRkdfTklPU19DUFVfUkFNX1NJWkUJCW5hX29uY2hpcF9yYW1fNjRfa2J5dGVzX3NpemUKLUNGR19OSU9TX0NQVV9ST01fQkFTRQkJbmFfYm9vdF9tb25pdG9yX3JvbQotQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCQluYV9ib290X21vbml0b3Jfcm9tX3NpemUKLUNGR19OSU9TX0NQVV9PQ0lfQkFTRQkJCQkJbmFzeXNfb2NpX2NvcmUKLUNGR19OSU9TX0NQVV9PQ0lfU0laRQotQ0ZHX05JT1NfQ1BVX1NSQU1fQkFTRQkJbmFfZXh0X3JhbQkJbmFzeXNfcHJvZ3JhbV9tZW0KLQkJCQkJCQluYXN5c19kYXRhX21lbQotQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQkJbmFfZXh0X3JhbV9zaXplCQluYXN5c19wcm9ncmFtX21lbV9zaXplCi0JCQkJCQkJbmFzeXNfZGF0YV9tZW1fc2l6ZQotQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UJCSBuYV9zZHJhbQotQ0ZHX05JT1NfQ1BVX1NEUkFNX1NJWkUJCSBuYV9zZHJhbV9zaXplCi1DRkdfTklPU19DUFVfRkxBU0hfQkFTRQkJIG5hX2V4dF9mbGFzaAkJbmFzeXNfbWFpbl9mbGFzaAotCQkJCQkJCW5hc3lzX2FtMjlsdjA2NWRfZmxhc2hfMAotCQkJCQkJCW5hc3lzX2ZsYXNoXzAKLUNGR19OSU9TX0NQVV9GTEFTSF9TSVpFCSAgICBuYV9leHRfZmxhc2hfc2l6ZQkJbmFzeXNfbWFpbl9mbGFzaF9zaXplCi0KLVQgSSBNIEUgUgkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzNdCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfVElNRVJfTlVNUwkJCQkJbmFzeXNfdGltZXJfY291bnQKLUNGR19OSU9TX0NQVV9USU1FUlswLTldCQkJCQluYXN5c190aW1lcl9bMC05XQotQ0ZHX05JT1NfQ1BVX1RJTUVSWzAtOV1fSVJRCQkJCW5hc3lzX3RpbWVyX1swLTldX2lycQotQ0ZHX05JT1NfQ1BVX1RJTUVSWzAtOV1fUEVSCQkJCVtwdGZdOnBlcmlvZAotCQkJCQkJCVtwdGZdOnBlcmlvZF91bml0cwotCQkJCQkJCVtwdGZdOm11bHQKLUNGR19OSU9TX0NQVV9USU1FUlswLTldX0FSCQkJCVtwdGZdOmFsd2F5c19ydW4KLUNGR19OSU9TX0NQVV9USU1FUlswLTldX0ZQCQkJCVtwdGZdOmZpeGVkX3BlcmlvZAotQ0ZHX05JT1NfQ1BVX1RJTUVSWzAtOV1fU1MJCQkJW3B0Zl06c25hcHNob3QKLQotVSBBIFIgVAkJCQkJTiBJIE8gUwkgIFMgRCBLCQkJICAgIFsyXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUwkJCQkJbmFzeXNfdWFydF9jb3VudAotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XQkJCQkJbmFzeXNfdWFydF9bMC05XQotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XV9JUlEJCQkJbmFzeXNfdWFydF9bMC05XV9pcnEKLUNGR19OSU9TX0NQVV9VQVJUWzAtOV1fQlIJCQkJW3B0Zl06YmF1ZAotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XV9EQgkJCQlbcHRmXTpkYXRhX2JpdHMKLUNGR19OSU9TX0NQVV9VQVJUWzAtOV1fU0IJCQkJW3B0Zl06c3RvcF9iaXRzCi1DRkdfTklPU19DUFVfVUFSVFswLTldX1BBCQkJCVtwdGZdOnBhcml0eQotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XV9IUwkJCQlbcHRmXTp1c2VfY3RzX3J0cwotQ0ZHX05JT1NfQ1BVX1VBUlRbMC05XV9FT1AJCQkJW3B0Zl06dXNlX2VvcF9yZWdpc3RlcgotCi1QIEkgTwkJCQkJTiBJIE8gUwkgIFMgRCBLCQkJICAgIFs0XQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQ0ZHX05JT1NfQ1BVX1BJT19OVU1TCQkJCQluYXN5c19waW9fY291bnQKLUNGR19OSU9TX0NQVV9QSU9bMC05XQkJCQkJbmFzeXNfcGlvX1swLTldCi1DRkdfTklPU19DUFVfUElPWzAtOV1fSVJRCQkJCW5hc3lzX3Bpb19bMC05XV9pcnEKLUNGR19OSU9TX0NQVV9QSU9bMC05XV9CSVRTCQkJCVtwdGZdOkRhdGFfV2lkdGgKLUNGR19OSU9TX0NQVV9QSU9bMC05XV9UWVBFCQkJCVtwdGZdOmhhc190cmkKLQkJCQkJCQlbcHRmXTpoYXNfb3V0Ci0JCQkJCQkJW3B0Zl06aGFzX2luCi1DRkdfTklPU19DUFVfUElPWzAtOV1fQ0FQCQkJCVtwdGZdOmNhcHR1cmUKLUNGR19OSU9TX0NQVV9QSU9bMC05XV9FREdFCQkJCVtwdGZdOmVkZ2VfdHlwZQotQ0ZHX05JT1NfQ1BVX1BJT1swLTldX0lUWVBFCQkJCVtwdGZdOmlycV90eXBlCi0KLVMgUCBJCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzZdCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfU1BJX05VTVMJCQkJCW5hc3lzX3NwaV9jb3VudAotQ0ZHX05JT1NfQ1BVX1NQSVswLTldCQkJCQluYXN5c19zcGlfWzAtOV0KLUNGR19OSU9TX0NQVV9TUElbMC05XV9JUlEJCQkJbmFzeXNfc3BpX1swLTldX2lycQotQ0ZHX05JT1NfQ1BVX1NQSVswLTldX0JJVFMJCQkJW3B0Zl06ZGF0YWJpdHMKLUNGR19OSU9TX0NQVV9TUElbMC05XV9NQQkJCQlbcHRmXTppc21hc3RlcgotQ0ZHX05JT1NfQ1BVX1NQSVswLTldX1NMTgkJCQlbcHRmXTpudW1zbGF2ZXMKLUNGR19OSU9TX0NQVV9TUElbMC05XV9UQ0xLCQkJCVtwdGZdOnRhcmdldGNsb2NrCi1DRkdfTklPU19DUFVfU1BJWzAtOV1fVERFTEFZCQkJCVtwdGZdOnRhcmdldGRlbGF5Ci1DRkdfTklPU19DUFVfU1BJWzAtOV1fKgkJCQkJW3B0Zl06KgotCi1JIEQgRQkJCQkJTiBJIE8gUwkgIFMgRCBLCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfSURFX05VTVMJCQkJCW5hc3lzX3VzZXJzb2NrZXRfY291bnQKLUNGR19OSU9TX0NQVV9JREVbMC05XQkJCQkJbmFzeXNfdXNlcnNvY2tldF9bMC05XQotCi1BIFMgTSBJCQkJCQlOIEkgTyBTCSAgUyBEIEsJCQkgICAgWzVdCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfQVNNSV9OVU1TCQkJCQluYXN5c19hc21pX2NvdW50Ci1DRkdfTklPU19DUFVfQVNNSVswLTldCQkJCQluYXN5c19hc21pX1swLTldCi1DRkdfTklPU19DUFVfQVNNSVswLTldX0lSUQkJCQluYXN5c19hc21pX1swLTldX2lycQotCi1FIHQgaCBlIHIgbiBlIHQJICAoIEwgQSBOICkJCU4gSSBPIFMJICBTIEQgSwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQ0ZHX05JT1NfQ1BVX0xBTl9OVU1TCi1DRkdfTklPU19DUFVfTEFOWzAtOV1fQkFTRQluYV9sYW45MWMxMTEKLUNGR19OSU9TX0NQVV9MQU5bMC05XV9PRkZTCQkJCUxBTjkxQzExMV9SRUdJU1RFUlNfT0ZGU0VUCi1DRkdfTklPU19DUFVfTEFOWzAtOV1fSVJRCW5hX2xhbjkxYzExMV9pcnEKLUNGR19OSU9TX0NQVV9MQU5bMC05XV9CVVNXCQkJCUxBTjkxQzExMV9EQVRBX0JVU19XSURUSAotQ0ZHX05JT1NfQ1BVX0xBTlswLTldX1RZUEUKLQotcyB5IHMgdCBlIG0gICBjIG8gbSBwIG8gcyBpIG4gZwkJTiBJIE8gUwkgIFMgRCBLCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1DRkdfTklPU19DUFVfVElDS19USU1FUgkJKG5hX2xvd19wcmlvcml0eV90aW1lcjIpCi1DRkdfTklPU19DUFVfVVNFUl9USU1FUgkJKG5hX3RpbWVyMSkKLUNGR19OSU9TX0NQVV9CVVRUT05fUElPCQkobmFfYnV0dG9uX3BpbykKLUNGR19OSU9TX0NQVV9MQ0RfUElPCQkobmFfbGNkX3BpbykKLUNGR19OSU9TX0NQVV9MRURfUElPCQkobmFfbGVkX3BpbykKLUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8JKG5hX3NldmVuX3NlZ19waW8pCi1DRkdfTklPU19DUFVfUkVDT05GX1BJTwkJKG5hX3JlY29uZmlnX3JlcXVlc3RfcGlvKQotQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JKG5hX2NmX3ByZXNlbnRfcGlvKQotQ0ZHX05JT1NfQ1BVX0NGUE9XRVJfUElPCShuYV9jZl9wb3dlcl9waW8pCi1DRkdfTklPU19DUFVfQ0ZBVEFTRUxfUElPCShuYV9jZl9hdGFfc2VsZWN0X3BpbykKLUNGR19OSU9TX0NQVV9VU0VSX1NQSQkJKG5hX3NwaSkKLQotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0JUiBFIEYgRSBSIEUgTiBDIEUgUwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotWzFdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3NjcHUucGRmCi1bMl0JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc191YXJ0LnBkZgotWzNdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3NfdGltZXIucGRmCi1bNF0JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc19waW8ucGRmCi1bNV0JaHR0cDovL3d3dy5hbHRlcmEuY29tL2xpdGVyYXR1cmUvZHMvZHNfbmlvc19hc21pLnBkZgotWzZdCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX25pb3Nfc3BpLnBkZgotWzddCWh0dHA6Ly93d3cuYWx0ZXJhLmNvbS9saXRlcmF0dXJlL2RzL2RzX2xlZ2FjeV9zZHJhbV9jdHJsLnBkZgotCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVN0ZXBoYW4gTGlueiA8bGluekBsaS1wcm8ubmV0PgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5wcGM0NDAgYi9kb2MvUkVBRE1FLnBwYzQ0MAppbmRleCAyZTA0YWJhLi4wYTVmOTlmIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLnBwYzQ0MAorKysgYi9kb2MvUkVBRE1FLnBwYzQ0MApAQCAtNDcsMjUgKzQ3LDI1IEBACiBhdCBsZWFzdCByZXZpZXcgdGhlc2UgYmVmb3JlIGRlY2lkaW5nIHRvIG1ha2UgYW55IGNoYW5nZXMgLi4uIGl0CiB3aWxsIHByb2JhYmx5IHNhdmUgeW91IHNvbWUgaGVhZGFjaGVzIDstKQogCi1DRkdfU0RSQU1fQkFTRSAtIFRoZSB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgU0RSQU0gaXMgbWFwcGVkIChhbHdheXMgMCkKK0NPTkZJR19TWVNfU0RSQU1fQkFTRSAtIFRoZSB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgU0RSQU0gaXMgbWFwcGVkIChhbHdheXMgMCkKIAotQ0ZHX0ZMQVNIX0JBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIEZMQVNIIGlzIG1hcHBlZC4KK0NPTkZJR19TWVNfRkxBU0hfQkFTRSAtIFRoZSB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgRkxBU0ggaXMgbWFwcGVkLgogCi1DRkdfUENJX01FTUJBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIFBDSS1idXMgbWVtb3J5IGlzIG1hcHBlZC4KK0NPTkZJR19TWVNfUENJX01FTUJBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIFBDSS1idXMgbWVtb3J5IGlzIG1hcHBlZC4KICAgICBUaGlzIG1hcHBpbmcgcHJvdmlkZXMgYWNjZXNzIHRvIFBDSS1idXMgbWVtb3J5LgogCi1DRkdfUEVSSVBIRVJBTF9CQVNFIC0gVGhlIHZpcnR1YWwgYWRkcmVzcyB3aGVyZSB0aGUgNDQwIG1lbW9yeS1tYXBwZWQKK0NPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFIC0gVGhlIHZpcnR1YWwgYWRkcmVzcyB3aGVyZSB0aGUgNDQwIG1lbW9yeS1tYXBwZWQKICAgICBwZXJpcGhlcmFscyBhcmUgbWFwcGVkLiAoZS5nLiAtLSBVQVJUIHJlZ2lzdGVycywgSUlDIHJlZ2lzdGVycywgZXRjKS4KIAotQ0ZHX0lTUkFNX0JBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIHRoZSA0NDAgaW50ZXJuYWwgU1JBTSBpcworQ09ORklHX1NZU19JU1JBTV9CQVNFIC0gVGhlIHZpcnR1YWwgYWRkcmVzcyB3aGVyZSB0aGUgNDQwIGludGVybmFsIFNSQU0gaXMKICAgICBtYXBwZWQuIFRoZSBpbnRlcm5hbCBTUkFNIGlzIGVxdWl2YWxlbnQgdG8gNDA1Z3AgT0NNIGFuZCBpcyB1c2VkCiAgICAgZm9yIHRoZSBpbml0aWFsIHN0YWNrLgogCi1DRkdfUENJX0JBU0UgLSBUaGUgdmlydHVhbCBhZGRyZXNzIHdoZXJlIHRoZSA0NDAgUENJLXggYnJpZGdlIGNvbmZpZworQ09ORklHX1NZU19QQ0lfQkFTRSAtIFRoZSB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgdGhlIDQ0MCBQQ0kteCBicmlkZ2UgY29uZmlnCiAgICAgcmVnaXN0ZXJzIGFyZSBtYXBwZWQuCiAKLUNGR19QQ0lfVEFSR0JBU0UgLSBUaGUgUENJIGFkZHJlc3MgdGhhdCBpcyBtYXBwZWQgdG8gdGhlIHZpcnR1YWwgYWRkcmVzcwotICAgIGRlZmluZWQgYnkgQ0ZHX1BDSV9NRU1CQVNFLgorQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgLSBUaGUgUENJIGFkZHJlc3MgdGhhdCBpcyBtYXBwZWQgdG8gdGhlIHZpcnR1YWwgYWRkcmVzcworICAgIGRlZmluZWQgYnkgQ09ORklHX1NZU19QQ0lfTUVNQkFTRS4KIAogCiBVQVJUIC8gU0VSSUFMCkBAIC03Myw3ICs3Myw3IEBACiAKIFRoZSBVQVJUIHBvcnQgd29ya3MgZmluZSB3aGVuIGFuIGV4dGVybmFsIHNlcmlhbCBjbG9jayBpcyBwcm92aWRlZAogKGxpa2UgdGhlIG9uZSBvbiB0aGUgRWJvbnkgYm9hcmQpIGFuZCB3aGVuIHVzaW5nIGludGVybmFsIGNsb2NraW5nLgotVGhpcyBpcyBjb250cm9sbGVkIHdpdGggdGhlIENGR19FWFRfU0VSSUFMX0NMT0NLIGZsYWcuIFdoZW4gdXNpbmcKK1RoaXMgaXMgY29udHJvbGxlZCB3aXRoIHRoZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sgZmxhZy4gV2hlbiB1c2luZwogaW50ZXJuYWwgY2xvY2tpbmcsIHRoZSAiaWRlYWwgYmF1ZCByYXRlIiBzZXR0aW5ncyBpbiB0aGUgNDQwR1AKIHVzZXIgbWFudWFsIGFyZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQuCiAKQEAgLTk0LDcgKzk0LDcgQEAKIENEQ1Y4NTAgY2xvY2sgY29udHJvbGxlciBhdCBhZGRyZXNzIDB4Njkgb24gdGhlIGVib255IGJvYXJkKS4KIAogVG8gcHJldmVudCBwcm9iaW5nIGNlcnRhaW4gYWRkcmVzc2VzIHlvdSBjYW4gZGVmaW5lIHRoZQotQ0ZHX0kyQ19OT1BST0JFUyBtYWNybyBpbiB5b3VyIGJvYXJkLXNwZWNpZmljIGhlYWRlciBmaWxlLiBXaGVuCitDT05GSUdfU1lTX0kyQ19OT1BST0JFUyBtYWNybyBpbiB5b3VyIGJvYXJkLXNwZWNpZmljIGhlYWRlciBmaWxlLiBXaGVuCiBkZWZpbmVkLCBhbGwgc3BlY2lmaWVkIGFkZHJlc3NlcyBhcmUgc2tpcHBlZCBkdXJpbmcgYSBwcm9iZS4KIFRoZSBhZGRyZXNzZXMgdGhhdCBhcmUgc2tpcHBlZCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgb3V0cHV0CiBvZiB0aGUgaXByb2JlIGNvbW1hbmQuCkBAIC0xMDIsMTIgKzEwMiwxMiBAQAogRm9yIGV4YW1wbGUsIHRvIHByZXZlbnQgcHJvYmluZyBhZGRyZXNzIDB4NjksIGRlZmluZSB0aGUgbWFjcm8gYXMKIGZvbGxvd3M6CiAKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyB7MHg2OX0KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgezB4Njl9CiAKIFNpbWlsYXJseSwgdG8gcHJldmVudCBwcm9iaW5nIGFkZHJlc3NlcyAweDY5IGFuZCAweDcwLCBkZWZpbmUgdGhlCiBtYWNybyBhOgogCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgezB4NjksIDB4NzB9CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTIHsweDY5LCAweDcwfQogCiAKIEREUiBTRFJBTSBDT05UUk9MTEVSCkBAIC0xNDQsNyArMTQ0LDcgQEAKIFRoZSBjcHUtc3BlY2lmaWMgY29kZSBzZXRzIHVwIGEgZGVmYXVsdCBwY2lfY29udHJvbGxlciBzdHJ1Y3R1cmUKIHRoYXQgbWFwcyBpbiBhIHNpbmdsZSBQQ0kgSS9PIHNwYWNlIGFuZCBQQ0kgbWVtb3J5IHNwYWNlLiBUaGUgSS9PCiBzcGFjZSBiZWdpbnMgYXQgUENJIEkvTyBhZGRyZXNzIDAgYW5kIHRoZSBQQ0kgbWVtb3J5IHNwYWNlIGlzCi0yNTYgTUIgc3RhcnRpbmcgYXQgUENJIGFkZHJlc3MgQ0ZHX1BDSV9UQVJHQkFTRS4gQWZ0ZXIgdGhlCisyNTYgTUIgc3RhcnRpbmcgYXQgUENJIGFkZHJlc3MgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UuIEFmdGVyIHRoZQogcGNpX2NvbnRyb2xsZXIgc3RydWN0dXJlIGlzIGluaXRpYWxpemVkLCB0aGUgY3B1LXNwZWNpZmljIGNvZGUgd2lsbAogY2FsbCB0aGUgcm91dGluZSBwY2lfcHJlX2luaXQoKS4gVGhpcyByb3V0aW5lIGlzIGltcGxlbWVudGVkIGJ5CiBib2FyZC1zcGVjaWZpYyBjb2RlICYgaXMgd2hlcmUgdGhlIGJvYXJkIGNhbiBvdmVyLXJpZGUvZXh0ZW5kIHRoZQpAQCAtMTU3LDcgKzE1Nyw3IEBACiBUaGUgZGVmYXVsdCA0NDBHUCBQQ0kgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gaXMgbWluaW1hbCAtLSBpdCBhc3N1bWVzIHRoYXQKIHRoZSBzdHJhcHBpbmcgcmVnaXN0ZXJzIGFyZSBzZXQgYXMgbmVjZXNzYXJ5LiBTaW5jZSB0aGUgc3RyYXBwaW5nIGJpdHMKIHByb3ZpZGUgdmVyeSBsaW1pdGVkIGZsZXhpYmlsaXR5LCB5b3UgbWF5IHdhbnQgdG8gY3VzdG9taXplIHRoZSBib2FyZHMKLXRhcmdldCBjb25maWd1cmF0aW9uLiBJZiBDRkdfUENJX1RBUkdFVF9JTklUIGlzIGRlZmluZWQsIHRoZSBjcHUtc3BlY2lmaWMKK3RhcmdldCBjb25maWd1cmF0aW9uLiBJZiBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVCBpcyBkZWZpbmVkLCB0aGUgY3B1LXNwZWNpZmljCiBjb2RlIHdpbGwgY2FsbCB0aGUgcm91dGluZSBwY2lfdGFyZ2V0X2luaXQoKSB3aGljaCB5b3UgbXVzdCBpbXBsZW1lbnQKIGluIHlvdXIgYm9hcmQtc3BlY2lmaWMgY29kZS4KIApAQCAtMTY2LDcgKzE2Niw3IEBACiB0aGF0IHRoZSAnZW5hYmxlIGhvc3QgY29uZmlndXJhdGlvbicgYml0IGluIHRoZSBQQ0lYMF9CUkRHT1BUMiBpcyBzZXQuCiAKIFRoZSBkZWZhdWx0IFBDSSBtYXN0ZXIgaW5pdGlhbGl6YXRpb24gbWFwcyBpbiAyNTYgTUIgb2YgcGNpIG1lbW9yeQotc3RhcnRpbmcgYXQgUENJIGFkZHJlc3MgQ0ZHX1BDSV9NRU1CQVNFLiBUbyBjdXN0b21pemUgdGhpcywgZGVmaW5lCitzdGFydGluZyBhdCBQQ0kgYWRkcmVzcyBDT05GSUdfU1lTX1BDSV9NRU1CQVNFLiBUbyBjdXN0b21pemUgdGhpcywgZGVmaW5lCiBQQ0lfTUFTVEVSX0lOSVQuIFRoaXMgd2lsbCBjYWxsIHRoZSByb3V0aW5lIHBjaV9tYXN0ZXJfaW5pdCgpIGluIHlvdXIKIGJvYXJkLXNwZWNpZmljIGNvZGUgcmF0aGVyIHRoYW4gcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBtYXN0ZXIKIGluaXRpYWxpemF0aW9uLgpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5zZXJpYWxfbXVsdGkgYi9kb2MvUkVBRE1FLnNlcmlhbF9tdWx0aQppbmRleCA0MGY3ODE1Li5hZDYxZDQyIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLnNlcmlhbF9tdWx0aQorKysgYi9kb2MvUkVBRE1FLnNlcmlhbF9tdWx0aQpAQCAtMzUsNyArMzUsNyBAQAogCXNldGVudiBzb3V0IHNlcmlhbF9zY2M7IHNldGVudiBiYXVkcmF0ZSAzODQwMAogCiBBZnRlciB0aGF0IHByZXNzICdlbnRlcicgYXQgdGhlIFNDQyBjb25zb2xlLiBOb3RlIHRoYXQgYmF1ZHJhdGVzIDwzODQwMAotYXJlIG5vdCBhbGxvd2VkIG9uIExXTU9OIHdpdGggd2F0Y2hkb2cgZW5hYmxlZCAoc2VlIENGR19CQVVEUkFURV9UQUJMRSBpbgorYXJlIG5vdCBhbGxvd2VkIG9uIExXTU9OIHdpdGggd2F0Y2hkb2cgZW5hYmxlZCAoc2VlIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgaW4KIGluY2x1ZGUvY29uZmlncy9sd21vbi5oKS4KIAogCmRpZmYgLS1naXQgYS9kb2MvUkVBRE1FLnNoYTEgYi9kb2MvUkVBRE1FLnNoYTEKaW5kZXggNzk5MmY3Zi4uZjZjY2E0MCAxMDA2NDQKLS0tIGEvZG9jL1JFQURNRS5zaGExCisrKyBiL2RvYy9SRUFETUUuc2hhMQpAQCAtMzQsNyArMzQsNyBAQAogCiBiKSBJbml0aWFsaXplIHRoZSBTSEExIHN1bSBpbiB0aGUgSW1hZ2Ugd2l0aCAweDAwCiAgICBUaGUgU0hBMSBzdW0gaXMgc3RvcmVkIGluIEZsYXNoIGF0OgotCQkJICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiArIFNIQTFfU1VNX1BPUworCQkJICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOICsgU0hBMV9TVU1fUE9TCiAgICBmb3IgdGhlIHBjczQ0MGVwIEZsYXNoOgkgMHhmZmZhMDAwMCArCSAgICAgIDB4NjAwMDAgKyAgICAgICAgLTB4MjAKIAkJCSAgICA9IDB4ZmZmZmZmZTAKICAgIGZvciB0aGUgZXhhbXBsZSBpbiBSQU06CSAgIDB4MzAwMDAwICsJICAgICAgMHg2MDAwMCArICAgICAgICAtMHgyMApkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS5zaWxlbnQgYi9kb2MvUkVBRE1FLnNpbGVudAppbmRleCA2NzcyNTMyLi5hMjZlM2RmIDEwMDY0NAotLS0gYS9kb2MvUkVBRE1FLnNpbGVudAorKysgYi9kb2MvUkVBRE1FLnNpbGVudApAQCAtMTMsNyArMTMsNyBAQAogIC0gV2hlbiB0aGUgY29uc29sZSBkZXZpY2VzIGhhdmUgYmVlbiBpbml0aWFsaXplZCwgInN0ZG91dCIgYW5kCiAgICAic3RkZXJyIiBhcmUgc2V0IHRvICJudWxsZGV2Iiwgc28gc3Vic2VxdWVudCBtZXNzYWdlcyBhcmUKICAgIHN1cHByZXNzZWQgYXV0b21hdGljYWxseS4gTWFrZSBzdXJlIHRvIGVuYWJsZSAibnVsbGRldiIgYnkKLSAgICNkZWZpbmluZyBDRkdfREVWSUNFX05VTExERVYgaW4geW91ciBib2FyZCBjb25maWcgZmlsZS4KKyAgICNkZWZpbmluZyBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWIGluIHlvdXIgYm9hcmQgY29uZmlnIGZpbGUuCiAKICAtIFdoZW4gYm9vdGluZyBhIGxpbnV4IGtlcm5lbCwgdGhlICJib290YXJncyIgYXJlIGZpeGVkIHVwIHNvIHRoYXQKICAgIHRoZSBhcmd1bWVudCAiY29uc29sZT0iIHdpbGwgYmUgaW4gdGhlIGNvbW1hbmQgbGluZSwgbm8gbWF0dGVyIGhvdwpkaWZmIC0tZ2l0IGEvZG9jL1JFQURNRS51cGRhdGUgYi9kb2MvUkVBRE1FLnVwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDc2MDAyCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL1JFQURNRS51cGRhdGUKQEAgLTAsMCArMSw5MCBAQAorQXV0b21hdGljIHNvZnR3YXJlIHVwZGF0ZSBmcm9tIGEgVEZUUCBzZXJ2ZXIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK092ZXJ2aWV3CistLS0tLS0tLQorCitUaGlzIGZlYXR1cmUgYWxsb3dzIHRvIGF1dG9tYXRpY2FsbHkgc3RvcmUgc29mdHdhcmUgdXBkYXRlcyBwcmVzZW50IG9uIGEgVEZUUAorc2VydmVyIGluIE5PUiBGbGFzaC4gSW4gbW9yZSBkZXRhaWw6IGEgVEZUUCB0cmFuc2ZlciBvZiBhIGZpbGUgZ2l2ZW4gaW4KK2Vudmlyb25tZW50IHZhcmlhYmxlICd1cGRhdGVmaWxlJyBmcm9tIHNlcnZlciAnc2VydmVyaXAnIGlzIGF0dGVtcHRlZCBkdXJpbmcKK2Jvb3QuIFRoZSB1cGRhdGUgZmlsZSBzaG91bGQgYmUgYSBGSVQgZmlsZSwgYW5kIGNhbiBjb250YWluIG9uZSBvciBtb3JlCit1cGRhdGVzLiBFYWNoIHVwZGF0ZSBpbiB0aGUgdXBkYXRlIGZpbGUgaGFzIGFuIGFkZHJlc3MgaW4gTk9SIEZsYXNoIHdoZXJlIGl0CitzaG91bGQgYmUgcGxhY2VkLCB1cGRhdGVzIGFyZSBhbHNvIHByb3RlY3RlZCB3aXRoIGEgU0hBLTEgY2hlY2tzdW0uIElmIHRoZQorVEZUUCB0cmFuc2ZlciBpcyBzdWNjZXNzZnVsLCB0aGUgaGFzaCBvZiBlYWNoIHVwZGF0ZSBpcyB2ZXJpZmllZCwgYW5kIGlmIHRoZQordmVyaWZpY2F0aW9uIGlzIHBvc2l0aXZlLCB0aGUgdXBkYXRlIGlzIHN0b3JlZCBpbiBGbGFzaC4KKworVGhlIGF1dG8tdXBkYXRlIGZlYXR1cmUgaXMgZW5hYmxlZCBieSB0aGUgQ09ORklHX1VQREFURV9URlRQIG1hY3JvOgorCisjZGVmaW5lIENPTkZJR19VUERBVEVfVEZUUAkJMQorCisKK05vdGUgdGhhdCB3aGVuIGVuYWJsaW5nIGF1dG8tdXBkYXRlLCBGbGFzaCBzdXBwb3J0IG11c3QgYmUgdHVybmVkIG9uLiAgQWxzbywKK29uZSBtdXN0IGVuYWJsZSBGSVQgYW5kIExJQkZEVCBzdXBwb3J0OgorCisjZGVmaW5lIENPTkZJR19GSVQJCTEKKyNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkxCisKK1RoZSBhdXRvLXVwZGF0ZSBmZWF0dXJlIHVzZXMgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIGtub2JzOgorCistIENPTkZJR19VUERBVEVfTE9BRF9BRERSCisKKyAgTm9ybWFsbHksIFRGVFAgdHJhbnNmZXIgb2YgdGhlIHVwZGF0ZSBmaWxlIGlzIGRvbmUgdG8gdGhlIGFkZHJlc3Mgc3BlY2lmaWVkCisgIGluIGVudmlyb25tZW50IHZhcmlhYmxlICdsb2FkYWRkcicuIElmIHRoaXMgdmFyaWFibGUgaXMgbm90IHByZXNlbnQsIHRoZQorICB0cmFuc2ZlciBpcyBtYWRlIHRvIHRoZSBhZGRyZXNzIGdpdmVuIGluIENPTkZJR19VUERBVEVfTE9BRF9BRERSICgweDEwMDAwMAorICBieSBkZWZhdWx0KS4KKworLSBDT05GSUdfVVBEQVRFX1RGVFBfQ05UX01BWAorICBDT05GSUdfVVBEQVRFX1RGVFBfTVNFQ19NQVgKKworICBUaGVzZSBrbm9icyBjb250cm9sIHRoZSB0aW1lb3V0cyBkdXJpbmcgaW5pdGlhbCBjb25uZWN0aW9uIHRvIHRoZSBURlRQCisgIHNlcnZlci4gU2luY2UgYSB0cmFuc2ZlciBpcyBhdHRlbXB0ZWQgZHVyaW5nIGVhY2ggYm9vdCwgaXQgaXMgdW5kZXNpcmFibGUgdG8KKyAgaGF2ZSBhIGxvbmcgZGVsYXkgd2hlbiBhIFRGVFAgc2VydmVyIGlzIG5vdCBwcmVzZW50LgorICBDT05GSUdfVVBEQVRFX1RGVFBfTVNFQ19NQVggc3BlY2lmaWVzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGZvciB0aGUKKyAgc2VydmVyIHRvIHJlc3BvbmQgdG8gaW5pdGlhbCBjb25uZWN0aW9uLCBhbmQgQ09ORklHX1VQREFURV9URlRQX0NOVF9NQVgKKyAgZ2l2ZXMgdGhlIG51bWJlciBvZiBzdWNoIGNvbm5lY3Rpb24gcmV0cmllcy4gQ09ORklHX1VQREFURV9URlRQX0NOVF9NQVggbXVzdAorICBiZSBub24tbmVnYXRpdmUgYW5kIGlzIDAgYnkgZGVmYXVsdCwgQ09ORklHX1VQREFURV9URlRQX01TRUNfTUFYIG11c3QgYmUKKyAgcG9zaXRpdmUgYW5kIGlzIDEgYnkgZGVmYXVsdC4KKworU2luY2UgdGhlIHVwZGF0ZSBmaWxlIGlzIGluIEZJVCBmb3JtYXQsIGl0IGlzIGNyZWF0ZWQgZnJvbSBhbiAqLml0cyBmaWxlIHVzaW5nCit0aGUgbWtpbWFnZSB0b29sLiBkdGMgdG9vbCB3aXRoIHN1cHBvcnQgZm9yIGJpbmFyeSBpbmNsdWRlcywgZS5nLiBpbiB2ZXJzaW9uCisxLjIuMCBvciBsYXRlciwgbXVzdCBhbHNvIGJlIGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtIHdoZXJlIHRoZSB1cGRhdGUgZmlsZSBpcwordG8gYmUgcHJlcGFyZWQuIFJlZmVyIHRvIHRoZSBkb2MvdUltYWdlLkZJVC8gZGlyZWN0b3J5IGZvciBtb3JlIGRldGFpbHMgb24gRklUCitpbWFnZXMuCisKKworRXhhbXBsZSAuaXRzIGZpbGVzCistLS0tLS0tLS0tLS0tLS0tLS0KKworLSBkb2MvdUltYWdlLkZJVC91cGRhdGVfdWJvb3QuaXRzCisKKyAgQSBzaW1wbGUgZXhhbXBsZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhbiB1cGRhdGUgZmlsZSBmb3IgYXV0b21hdGljYWxseQorICByZXBsYWNpbmcgVS1Cb290IGltYWdlIG9uIGEgc3lzdGVtLgorCisgIEFzc3VtaW5nIHRoYXQgYW4gVS1Cb290IGltYWdlIHUtYm9vdC5iaW4gaXMgcHJlc2VudCBpbiB0aGUgY3VycmVudCB3b3JraW5nCisgIGRpcmVjdG9yeSwgYW5kIHRoYXQgdGhlIGFkZHJlc3MgZ2l2ZW4gaW4gdGhlICdsb2FkJyBwcm9wZXJ0eSBpbiB0aGUKKyAgJ3VwZGF0ZV91Ym9vdC5pdHMnIGZpbGUgaXMgd2hlcmUgdGhlIFUtQm9vdCBpcyBzdG9yZWQgaW4gRmxhc2gsIHRoZQorICBmb2xsb3dpbmcgY29tbWFuZCB3aWxsIGNyZWF0ZSB0aGUgYWN0dWFsIHVwZGF0ZSBmaWxlICd1cGRhdGVfdWJvb3QuaXRiJzoKKworICBta2ltYWdlIC1mIHVwZGF0ZV91Ym9vdC5pdHMgdXBkYXRlX3Vib290Lml0YgorCisgIFBsYWNlICd1cGRhdGVfdWJvb3QuaXRiJyBvbiBhIFRGVFAgc2VydmVyLCBmb3IgZXhhbXBsZSBhcworICAnL3RmdHBib290L3VwZGF0ZV91Ym9vdC5pdGInLCBhbmQgc2V0IHRoZSAndXBkYXRlZmlsZScgdmFyaWFibGUKKyAgYXBwcm9wcmlhdGVseSwgZm9yIGV4YW1wbGUgaW4gdGhlIFUtQm9vdCBwcm9tcHQ6CisKKyAgc2V0ZW52IHVwZGF0ZWZpbGUgL3RmdHBib290L3VwZGF0ZV91Ym9vdC5pdGIKKyAgc2F2ZWVudgorCisgIE5vdywgd2hlbiB0aGUgc3lzdGVtIGJvb3RzIHVwIGFuZCB0aGUgdXBkYXRlIFRGVFAgc2VydmVyIHNwZWNpZmllZCBpbiB0aGUKKyAgJ3NlcnZlcmlwJyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBhY2Nlc3NpYmxlLCB0aGUgbmV3IFUtQm9vdCBpbWFnZSB3aWxsIGJlCisgIGF1dG9tYXRpY2FsbHkgc3RvcmVkIGluIEZsYXNoLgorCisgIE5PVEU6IGRvIG1ha2Ugc3VyZSB0aGF0IHRoZSAndS1ib290LmJpbicgaW1hZ2UgdXNlZCB0byBjcmVhdGUgdGhlIHVwZGF0ZQorICBmaWxlIGlzIGEgZ29vZCwgd29ya2luZyBpbWFnZS4gQWxzbyBtYWtlIHN1cmUgdGhhdCB0aGUgYWRkcmVzcyBpbiBGbGFzaAorICB3aGVyZSB0aGUgdXBkYXRlIHdpbGwgYmUgcGxhY2VkIGlzIGNvcnJlY3QuIE1ha2luZyBtaXN0YWtlIGhlcmUgYW5kCisgIGF0dGVtcHRpbmcgdGhlIGF1dG8tdXBkYXRlIGNhbiByZW5kZXIgdGhlIHN5c3RlbSB1bnVzYWJsZS4KKworLSBkb2MvdUltYWdlLkZJVC91cGRhdGUzLml0cworCisgIEFuIGV4YW1wbGUgY29udGFpbmluZyB0aHJlZSB1cGRhdGVzLiBJdCBjYW4gYmUgdXNlZCB0byB1cGRhdGUgTGludXgga2VybmVsLAorICByYW1kaXNrIGFuZCBGRFQgYmxvYiBzdG9yZWQgaW4gRmxhc2guIFRoZSBwcm9jZWR1cmUgZm9yIHByZXBhcmluZyB0aGUgdXBkYXRlCisgIGZpbGUgaXMgc2ltaWxhciB0byB0aGUgZXhhbXBsZSBhYm92ZS4KZGlmZiAtLWdpdCBhL2RvYy91SW1hZ2UuRklUL2NvbW1hbmRfc3ludGF4X2V4dGVuc2lvbnMudHh0IGIvZG9jL3VJbWFnZS5GSVQvY29tbWFuZF9zeW50YXhfZXh0ZW5zaW9ucy50eHQKaW5kZXggNjE4NWNkOC4uMDAyODE4YyAxMDA2NDQKLS0tIGEvZG9jL3VJbWFnZS5GSVQvY29tbWFuZF9zeW50YXhfZXh0ZW5zaW9ucy50eHQKKysrIGIvZG9jL3VJbWFnZS5GSVQvY29tbWFuZF9zeW50YXhfZXh0ZW5zaW9ucy50eHQKQEAgLTE2MCw3ICsxNjAsNyBAQAogCiBXaGVuIGJvb3RtIGlzIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50cywgdGhlIGltYWdlIGF0IGN1cnJlbnQgaW1hZ2UgYWRkcmVzcyBpcwogYm9vdGVkLiBUaGUgY3VycmVudCBpbWFnZSBhZGRyZXNzIGlzIHRoZSBhZGRyZXNzIHNldCBtb3N0IHJlY2VudGx5IGJ5IGEgbG9hZAotY29tbWFuZCwgZXRjLCBhbmQgaXMgYnkgZGVmYXVsdCBlcXVhbCB0byBDRkdfTE9BRF9BRERSLiBGb3IgZXhhbXBsZSwgY29uc2lkZXIKK2NvbW1hbmQsIGV0YywgYW5kIGlzIGJ5IGRlZmF1bHQgZXF1YWwgdG8gQ09ORklHX1NZU19MT0FEX0FERFIuIEZvciBleGFtcGxlLCBjb25zaWRlcgogdGhlIGZvbGxvd2luZyBjb21tYW5kczoKIAogdGZ0cCAyMDAwMDAgL3RmdHBib290L2tlcm5lbApkaWZmIC0tZ2l0IGEvZG9jL3VJbWFnZS5GSVQvdXBkYXRlMy5pdHMgYi9kb2MvdUltYWdlLkZJVC91cGRhdGUzLml0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODVjZjczCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3VJbWFnZS5GSVQvdXBkYXRlMy5pdHMKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIEV4YW1wbGUgQXV0b21hdGljIHNvZnR3YXJlIHVwZGF0ZSBmaWxlLgorICovCisvIHsKKwlkZXNjcmlwdGlvbiA9ICJBdXRvbWF0aWMgc29mdHdhcmUgdXBkYXRlczoga2VybmVsLCByYW1kaXNrLCBGRFQiOworCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCisJaW1hZ2VzIHsKKwkJdXBkYXRlQDEgeworCQkJZGVzY3JpcHRpb24gPSAiTGludXgga2VybmVsIGJpbmFyeSI7CisJCQlkYXRhID0gL2luY2Jpbi8oIi4vdm1saW51eC5iaW4uZ3oiKTsKKwkJCWNvbXByZXNzaW9uID0gIm5vbmUiOworCQkJdHlwZSA9ICJmaXJtd2FyZSI7CisJCQlsb2FkID0gPEZGNzAwMDAwPjsKKwkJCWhhc2hAMSB7CisJCQkJYWxnbyA9ICJzaGExIjsKKwkJCX07CisJCX07CisJCXVwZGF0ZUAyIHsKKwkJCWRlc2NyaXB0aW9uID0gIlJhbWRpc2sgaW1hZ2UiOworCQkJZGF0YSA9IC9pbmNiaW4vKCIuL3JhbWRpc2tfaW1hZ2UuZ3oiKTsKKwkJCWNvbXByZXNzaW9uID0gIm5vbmUiOworCQkJdHlwZSA9ICJmaXJtd2FyZSI7CisJCQlsb2FkID0gPEZGOEUwMDAwPjsKKwkJCWhhc2hAMSB7CisJCQkJYWxnbyA9ICJzaGExIjsKKwkJCX07CisJCX07CisKKwkJdXBkYXRlQDMgeworCQkJZGVzY3JpcHRpb24gPSAiRkRUIGJsb2IiOworCQkJZGF0YSA9IC9pbmNiaW4vKCIuL2Jsb2IuZmR0Iik7CisJCQljb21wcmVzc2lvbiA9ICJub25lIjsKKwkJCXR5cGUgPSAiZmlybXdhcmUiOworCQkJbG9hZCA9IDxGRkFDMDAwMD47CisJCQloYXNoQDEgeworCQkJCWFsZ28gPSAic2hhMSI7CisJCQl9OworCQl9OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvZG9jL3VJbWFnZS5GSVQvdXBkYXRlX3Vib290Lml0cyBiL2RvYy91SW1hZ2UuRklUL3VwZGF0ZV91Ym9vdC5pdHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBkMjdlYQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy91SW1hZ2UuRklUL3VwZGF0ZV91Ym9vdC5pdHMKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqIEF1dG9tYXRpYyBzb2Z0d2FyZSB1cGRhdGUgZm9yIFUtQm9vdAorICogTWFrZSBzdXJlIHRoZSBmbGFzaGluZyBhZGRyZXNzZXMgKCdsb2FkJyBwcm9wKSBpcyBjb3JyZWN0IGZvciB5b3VyIGJvYXJkIQorICovCisvIHsKKwlkZXNjcmlwdGlvbiA9ICJBdXRvbWF0aWMgVS1Cb290IHVwZGF0ZSI7CisJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisKKwlpbWFnZXMgeworCQl1cGRhdGVAMSB7CisJCQlkZXNjcmlwdGlvbiA9ICJVLUJvb3QgYmluYXJ5IjsKKwkJCWRhdGEgPSAvaW5jYmluLygiLi91LWJvb3QuYmluIik7CisJCQljb21wcmVzc2lvbiA9ICJub25lIjsKKwkJCXR5cGUgPSAiZmlybXdhcmUiOworCQkJbG9hZCA9IDxGRkZDMDAwMD47CisJCQloYXNoQDEgeworCQkJCWFsZ28gPSAic2hhMSI7CisJCQl9OworCQl9OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iaW9zX2VtdWxhdG9yL3g4NmVtdS9kZWJ1Zy5jIGIvZHJpdmVycy9iaW9zX2VtdWxhdG9yL3g4NmVtdS9kZWJ1Zy5jCmluZGV4IDVjYmNjOTUuLjI5ZmUzZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmlvc19lbXVsYXRvci94ODZlbXUvZGVidWcuYworKysgYi9kcml2ZXJzL2Jpb3NfZW11bGF0b3IveDg2ZW11L2RlYnVnLmMKQEAgLTUwLDcgKzUwLDcgQEAKIAogc3RhdGljIHZvaWQgcHJpbnRfZW5jb2RlZF9ieXRlcyh1MTYgcywgdTE2IG8pOwogc3RhdGljIHZvaWQgcHJpbnRfZGVjb2RlZF9pbnN0cnVjdGlvbih2b2lkKTsKLXN0YXRpYyBpbnQgcGFyc2VfbGluZShjaGFyICpzLCBpbnQgKnBzLCBpbnQgKm4pOworc3RhdGljIGludCB4ODZlbXVfcGFyc2VfbGluZShjaGFyICpzLCBpbnQgKnBzLCBpbnQgKm4pOwogCiAvKiBzaG91bGQgbG9vayBzb21ldGhpbmcgbGlrZSBkZWJ1ZydzIG91dHB1dC4gKi8KIHZvaWQgWDg2RU1VX3RyYWNlX3JlZ3Modm9pZCkKQEAgLTI1Nyw3ICsyNTcsNyBAQAogCW9mZnNldCA9IE0ueDg2LnNhdmVkX2lwOwogCXdoaWxlICghZG9uZSkgewogCQlwcmludGsoIi0iKTsKLQkJY21kID0gcGFyc2VfbGluZShzLCBwcywgJm50b2spOworCQljbWQgPSB4ODZlbXVfcGFyc2VfbGluZShzLCBwcywgJm50b2spOwogCQlzd2l0Y2ggKGNtZCkgewogCQljYXNlICd1JzoKIAkJCWRpc2Fzc2VtYmxlX2ZvcndhcmQoTS54ODYuc2F2ZWRfY3MsICh1MTYpIG9mZnNldCwgMTApOwpAQCAtMzMxLDcgKzMzMSw3IEBACiAJcmV0dXJuIE0ueDg2LmRlYnVnICY9IH4oREVCVUdfU1RFUF9GIHwgREVCVUdfREVDT0RFX0YgfCBERUJVR19UUkFDRV9GKTsKIH0KIAotc3RhdGljIGludCBwYXJzZV9saW5lKGNoYXIgKnMsIGludCAqcHMsIGludCAqbikKK3N0YXRpYyBpbnQgeDg2ZW11X3BhcnNlX2xpbmUoY2hhciAqcywgaW50ICpwcywgaW50ICpuKQogewogCWludCBjbWQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svYWhjaS5jIGIvZHJpdmVycy9ibG9jay9haGNpLmMKaW5kZXggNTJmZDEwOC4uMjQ0NWU4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9haGNpLmMKKysrIGIvZHJpdmVycy9ibG9jay9haGNpLmMKQEAgLTY3Niw3ICs2NzYsNyBAQAogCiAJbGlua21hcCA9IHByb2JlX2VudC0+bGlua19wb3J0X21hcDsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfU0NTSV9NQVhfU0NTSV9JRDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRDsgaSsrKSB7CiAJCWlmICgoKGxpbmttYXAgPj4gaSkgJiAweDAxKSkgewogCQkJaWYgKGFoY2lfcG9ydF9zdGFydCgodTgpIGkpKSB7CiAJCQkJcHJpbnRmKCJDYW4gbm90IHN0YXJ0IHBvcnQgJWRcbiIsIGkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9hdGFfcGlpeC5jIGIvZHJpdmVycy9ibG9jay9hdGFfcGlpeC5jCmluZGV4IDRjMjZiMzYuLmVjMzc2ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svYXRhX3BpaXguYworKysgYi9kcml2ZXJzL2Jsb2NrL2F0YV9waWl4LmMKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxpZGUuaD4KICNpbmNsdWRlIDxhdGEuaD4KIAotZXh0ZXJuIGJsb2NrX2Rldl9kZXNjX3Qgc2F0YV9kZXZfZGVzY1tDRkdfU0FUQV9NQVhfREVWSUNFXTsKK2V4dGVybiBibG9ja19kZXZfZGVzY190IHNhdGFfZGV2X2Rlc2NbQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0VdOwogZXh0ZXJuIGludCBjdXJyX2RldmljZTsKIAogI2RlZmluZSBERUJVR19TQVRBIDAJCS8qRm9yIGRlYnVnIHByaW50cyBzZXQgREVCVUdfU0FUQSB0byAxICovCkBAIC0xNzMsMTAgKzE3MywxMCBAQAogCSAgICBpb2Jhc2U0IHwgQVRBX1BDSV9DVExfT0ZTOwogCXBvcnRbMV0uaW9hZGRyLmJtZG1hX2FkZHIgPSBpb2Jhc2U1ICsgMHg4OwogCi0JZm9yIChpID0gMDsgaSA8IENGR19TQVRBX01BWEJVUzsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX1NBVEFfTUFYQlVTOyBpKyspCiAJCXNhdGFfcG9ydCAoJnBvcnRbaV0uaW9hZGRyKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfU0FUQV9NQVhCVVM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX1NBVEFfTUFYQlVTOyBpKyspIHsKIAkJaWYgKCEoc2F0YV9idXNfcHJvYmUgKGkpKSkgewogCQkJcG9ydFtpXS5wb3J0X3N0YXRlID0gMDsKIAkJCXByaW50ZiAoIlNBVEEjJWQgcG9ydCBpcyBub3QgcHJlc2VudCBcbiIsIGkpOwpAQCAtMTkwLDE1ICsxOTAsMTUgQEAKIAkJfQogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfU0FUQV9NQVhCVVM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX1NBVEFfTUFYQlVTOyBpKyspIHsKIAkJdTggaiwgZGV2bm87CiAKIAkJaWYgKHBvcnRbaV0ucG9ydF9zdGF0ZSA9PSAwKQogCQkJY29udGludWU7Ci0JCWZvciAoaiA9IDA7IGogPCBDRkdfU0FUQV9ERVZTX1BFUl9CVVM7IGorKykgeworCQlmb3IgKGogPSAwOyBqIDwgQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUzsgaisrKSB7CiAJCQlzYXRhX2lkZW50aWZ5IChpLCBqKTsKIAkJCXNldF9GZWF0dXJlX2NtZCAoaSwgaik7Ci0JCQlkZXZubyA9IGkgKiBDRkdfU0FUQV9ERVZTX1BFUl9CVVMgKyBqOworCQkJZGV2bm8gPSBpICogQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUyArIGo7CiAJCQlpZiAoKHNhdGFfZGV2X2Rlc2NbZGV2bm9dLmxiYSA+IDApICYmCiAJCQkgICAgKHNhdGFfZGV2X2Rlc2NbZGV2bm9dLmJsa3N6ID4gMCkpIHsKIAkJCQlkZXZfcHJpbnQgKCZzYXRhX2Rldl9kZXNjW2Rldm5vXSk7CkBAIC0yMDYsNyArMjA2LDcgQEAKIAkJCQlpbml0X3BhcnQgKCZzYXRhX2Rldl9kZXNjW2Rldm5vXSk7CiAJCQkJaWYgKGN1cnJfZGV2aWNlIDwgMCkKIAkJCQkJY3Vycl9kZXZpY2UgPQotCQkJCQkgICAgaSAqIENGR19TQVRBX0RFVlNfUEVSX0JVUyArIGo7CisJCQkJCSAgICBpICogQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUyArIGo7CiAJCQl9CiAJCX0KIAl9CkBAIC0yNzEsNyArMjcxLDcgQEAKIAogCXBvcnRbbnVtXS5kZXZfbWFzayA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX1NBVEFfREVWU19QRVJfQlVTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUzsgaSsrKSB7CiAJCWlmICghKHNhdGFfZGV2Y2hrICgmcG9ydFtudW1dLmlvYWRkciwgaSkpKSB7CiAJCQlQUklOVEYgKCJkZXZfY2hrIGZhaWxlZCBmb3IgZGV2IyVkXG4iLCBpKTsKIAkJfSBlbHNlIHsKQEAgLTMyOCw3ICszMjgsNyBAQAogdm9pZAogc2F0YV9pZGVudGlmeSAoaW50IG51bSwgaW50IGRldikKIHsKLQl1OCBjbWQgPSAwLCBzdGF0dXMgPSAwLCBkZXZubyA9IG51bSAqIENGR19TQVRBX0RFVlNfUEVSX0JVUyArIGRldjsKKwl1OCBjbWQgPSAwLCBzdGF0dXMgPSAwLCBkZXZubyA9IG51bSAqIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVMgKyBkZXY7CiAJdTE2IGlvYnVmW0FUQV9TRUNUX1NJWkVdOwogCXU2NCBuX3NlY3RvcnMgPSAwOwogCXU4IG1hc2sgPSAwOwpAQCAtNTY0LDEwICs1NjQsMTAgQEAKIAl9CiAjZW5kaWYKIAkvKlBvcnQgTnVtYmVyICovCi0JbnVtID0gZGV2aWNlIC8gQ0ZHX1NBVEFfREVWU19QRVJfQlVTOworCW51bSA9IGRldmljZSAvIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVM7CiAJLypkZXYgb24gdGhlIHBvcnQgKi8KLQlpZiAoZGV2aWNlID49IENGR19TQVRBX0RFVlNfUEVSX0JVUykKLQkJZGV2ID0gZGV2aWNlIC0gQ0ZHX1NBVEFfREVWU19QRVJfQlVTOworCWlmIChkZXZpY2UgPj0gQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUykKKwkJZGV2ID0gZGV2aWNlIC0gQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUzsKIAllbHNlCiAJCWRldiA9IGRldmljZTsKIApAQCAtNjcxLDEwICs2NzEsMTAgQEAKIAl9CiAjZW5kaWYKIAkvKlBvcnQgTnVtYmVyICovCi0JbnVtID0gZGV2aWNlIC8gQ0ZHX1NBVEFfREVWU19QRVJfQlVTOworCW51bSA9IGRldmljZSAvIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVM7CiAJLypkZXYgb24gdGhlIFBvcnQgKi8KLQlpZiAoZGV2aWNlID49IENGR19TQVRBX0RFVlNfUEVSX0JVUykKLQkJZGV2ID0gZGV2aWNlIC0gQ0ZHX1NBVEFfREVWU19QRVJfQlVTOworCWlmIChkZXZpY2UgPj0gQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUykKKwkJZGV2ID0gZGV2aWNlIC0gQ09ORklHX1NZU19TQVRBX0RFVlNfUEVSX0JVUzsKIAllbHNlCiAJCWRldiA9IGRldmljZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9hdGFfcGlpeC5oIGIvZHJpdmVycy9ibG9jay9hdGFfcGlpeC5oCmluZGV4IGY5ZjAxOTQuLjExODg1YWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svYXRhX3BpaXguaAorKysgYi9kcml2ZXJzL2Jsb2NrL2F0YV9waWl4LmgKQEAgLTg4LDcgKzg4LDcgQEAKICNlbmRpZgogCiAjaWZkZWYgRFJWX0RFQ0wJCQkvKkRlZmluZXMgRHJpdmVyIFNwZWNpZmljIHZhcmlhYmxlcyAqLwotc3RydWN0IHNhdGFfcG9ydCBwb3J0W0NGR19TQVRBX01BWEJVU107CitzdHJ1Y3Qgc2F0YV9wb3J0IHBvcnRbQ09ORklHX1NZU19TQVRBX01BWEJVU107CiAjZW5kaWYKIAogI2VuZGlmIC8qIF9fQVRBX1BJSVhfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2ZzbF9zYXRhLmMgYi9kcml2ZXJzL2Jsb2NrL2ZzbF9zYXRhLmMKaW5kZXggNTVmNTkzYS4uMjAwOWQxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9mc2xfc2F0YS5jCisrKyBiL2RyaXZlcnMvYmxvY2svZnNsX3NhdGEuYwpAQCAtMjYsMjMgKzI2LDIzIEBACiAjaW5jbHVkZSA8ZmlzLmg+CiAjaW5jbHVkZSAiZnNsX3NhdGEuaCIKIAotZXh0ZXJuIGJsb2NrX2Rldl9kZXNjX3Qgc2F0YV9kZXZfZGVzY1tDRkdfU0FUQV9NQVhfREVWSUNFXTsKK2V4dGVybiBibG9ja19kZXZfZGVzY190IHNhdGFfZGV2X2Rlc2NbQ09ORklHX1NZU19TQVRBX01BWF9ERVZJQ0VdOwogCi0jaWZuZGVmIENGR19TQVRBMV9GTEFHUwotCSNkZWZpbmUgQ0ZHX1NBVEExX0ZMQUdTCUZMQUdTX0RNQQorI2lmbmRlZiBDT05GSUdfU1lTX1NBVEExX0ZMQUdTCisJI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX0ZMQUdTCUZMQUdTX0RNQQogI2VuZGlmCi0jaWZuZGVmIENGR19TQVRBMl9GTEFHUwotCSNkZWZpbmUgQ0ZHX1NBVEEyX0ZMQUdTCUZMQUdTX0RNQQorI2lmbmRlZiBDT05GSUdfU1lTX1NBVEEyX0ZMQUdTCisJI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX0ZMQUdTCUZMQUdTX0RNQQogI2VuZGlmCiAKIHN0YXRpYyBzdHJ1Y3QgZnNsX3NhdGFfaW5mbyBmc2xfc2F0YV9pbmZvW10gPSB7CiAjaWZkZWYgQ09ORklHX1NBVEExCi0Je0NGR19TQVRBMSwgQ0ZHX1NBVEExX0ZMQUdTfSwKKwl7Q09ORklHX1NZU19TQVRBMSwgQ09ORklHX1NZU19TQVRBMV9GTEFHU30sCiAjZWxzZQogCXswLCAwfSwKICNlbmRpZgogI2lmZGVmIENPTkZJR19TQVRBMgotCXtDRkdfU0FUQTIsIENGR19TQVRBMl9GTEFHU30sCisJe0NPTkZJR19TWVNfU0FUQTIsIENPTkZJR19TWVNfU0FUQTJfRkxBR1N9LAogI2Vsc2UKIAl7MCwgMH0sCiAjZW5kaWYKQEAgLTEyMyw3ICsxMjMsNyBAQAogCWludCBpOwogCWZzbF9zYXRhX3QgKnNhdGE7CiAKLQlpZiAoZGV2IDwgMCB8fCBkZXYgPiAoQ0ZHX1NBVEFfTUFYX0RFVklDRSAtIDEpKSB7CisJaWYgKGRldiA8IDAgfHwgZGV2ID4gKENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFIC0gMSkpIHsKIAkJcHJpbnRmKCJ0aGUgc2F0YSBpbmRleCAlZCBpcyBvdXQgb2YgcmFuZ2VzXG5cciIsIGRldik7CiAJCXJldHVybiAtMTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3NhdGFfc2lsMzExNC5jIGIvZHJpdmVycy9ibG9jay9zYXRhX3NpbDMxMTQuYwppbmRleCA4Mzk5NzM3Li4zNTFjZjk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3NhdGFfc2lsMzExNC5jCisrKyBiL2RyaXZlcnMvYmxvY2svc2F0YV9zaWwzMTE0LmMKQEAgLTQ4LDkgKzQ4LDkgQEAKIHN0YXRpYyB2b2lkIG1zbGVlcCAoaW50IGNvdW50KTsKIAogc3RhdGljIHUzMiBpb2Jhc2VbNl0gPSB7IDAsIDAsIDAsIDAsIDAsIDB9OwkvKiBQQ0kgQkFSIHJlZ2lzdGVycyBmb3IgZGV2aWNlICovCi1leHRlcm4gYmxvY2tfZGV2X2Rlc2NfdCBzYXRhX2Rldl9kZXNjW0NGR19TQVRBX01BWF9ERVZJQ0VdOworZXh0ZXJuIGJsb2NrX2Rldl9kZXNjX3Qgc2F0YV9kZXZfZGVzY1tDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRV07CiAKLXN0YXRpYyBzdHJ1Y3Qgc2F0YV9wb3J0IHBvcnRbQ0ZHX1NBVEFfTUFYX0RFVklDRV07CitzdGF0aWMgc3RydWN0IHNhdGFfcG9ydCBwb3J0W0NPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFXTsKIAogc3RhdGljIHZvaWQgb3V0cHV0X2RhdGEgKHN0cnVjdCBzYXRhX2lvcG9ydHMgKmlvYWRkciwgdTE2ICogc2VjdF9idWYsIGludCB3b3JkcykKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svc2lsNjgwLmMgYi9kcml2ZXJzL2Jsb2NrL3NpbDY4MC5jCmluZGV4IDA1MmMzZDMuLmUyMWZiOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svc2lsNjgwLmMKKysrIGIvZHJpdmVycy9ibG9jay9zaWw2ODAuYwpAQCAtMzIsMjUgKzMyLDI1IEBACiAgKiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCiAgKiBOT1RFIGl0IG1heSBhbHNvIGJlIG5lY2Vzc2FyeSB0byBkZWZpbmUgdGhpcyBpZiB0aGUgZGVmYXVsdCBvZiA4IGlzCiAgKiBpbmNvcnJlY3QgZm9yIHRoZSB0YXJnZXQgYm9hcmQgKGUuZy4gdGhlIHNlcXVvaWEgYm9hcmQgcmVxdWlyZXMgMCkuCi0gKiAjZGVmaW5lIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFCTAKKyAqICNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFCTAKICAqCiAgKiAjZGVmaW5lIENPTkZJR19DTURfSURFCiAgKiAjdW5kZWYgIENPTkZJR19JREVfOHh4X0RJUkVDVAogICogI3VuZGVmICBDT05GSUdfSURFX0xFRAogICogI3VuZGVmICBDT05GSUdfSURFX1JFU0VUCiAgKiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAotICogI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMiAtIG1vZGlmeSB0byBzdWl0Ci0gKiAjZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoyKSAtIG1vZGlmeSB0byBzdWl0Ci0gKiAjZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTAKLSAqICNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkwCi0gKiAjZGVmaW5lIENGR19BVEFfSURFMV9PRkZTRVQJMAotICogI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTAKLSAqICNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTAKLSAqICNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwNAorICogI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIgLSBtb2RpZnkgdG8gc3VpdAorICogI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAtIG1vZGlmeSB0byBzdWl0CisgKiAjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkwCisgKiAjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTAKKyAqICNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJMAorICogI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCisgKiAjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMAorICogI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwNAogICoKICAqIFRoZSBtYXBwaW5nIGZvciBQQ0kgSU8tc3BhY2UuCiAgKiBOT1RFIHRoaXMgaXMgdGhlIHZhbHVlIGZvciB0aGUgc2VxdW9pYSBib2FyZC4gTW9kaWZ5IHRvIHN1aXQuCi0gKiAjZGVmaW5lIENGR19QQ0kwX0lPX1NQQUNFICAgMHhFODAwMDAwMAorICogI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UgICAweEU4MDAwMDAwCiAgKi8KIAogI2luY2x1ZGUgPGNvbW1vbi5oPgpAQCAtNTgsNyArNTgsNyBAQAogI2luY2x1ZGUgPGlkZS5oPgogI2luY2x1ZGUgPHBjaS5oPgogCi1leHRlcm4gdWxvbmcgaWRlX2J1c19vZmZzZXRbQ0ZHX0lERV9NQVhCVVNdOworZXh0ZXJuIHVsb25nIGlkZV9idXNfb2Zmc2V0W0NPTkZJR19TWVNfSURFX01BWEJVU107CiAKIGludCBpZGVfcHJlaW5pdCAodm9pZCkKIHsKQEAgLTY3LDcgKzY3LDcgQEAKIAlpbnQgbDsKIAogCXN0YXR1cyA9IDE7Ci0JZm9yIChsID0gMDsgbCA8IENGR19JREVfTUFYQlVTOyBsKyspIHsKKwlmb3IgKGwgPSAwOyBsIDwgQ09ORklHX1NZU19JREVfTUFYQlVTOyBsKyspIHsKIAkJaWRlX2J1c19vZmZzZXRbbF0gPSAtQVRBX1NUQVRVUzsKIAl9CiAJZGV2YnVzZm4gPSBwY2lfZmluZF9kZXZpY2UgKDB4MTA5NSwgMHgwNjgwLCAwKTsKQEAgLTc3LDExICs3NywxMSBAQAogCQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGRldmJ1c2ZuLCBQQ0lfQkFTRV9BRERSRVNTXzAsCiAJCQkJICAgICAgICh1MzIgKikgJmlkZV9idXNfb2Zmc2V0WzBdKTsKIAkJaWRlX2J1c19vZmZzZXRbMF0gJj0gMHhmZmZmZmZmODsKLQkJaWRlX2J1c19vZmZzZXRbMF0gKz0gQ0ZHX1BDSTBfSU9fU1BBQ0U7CisJCWlkZV9idXNfb2Zmc2V0WzBdICs9IENPTkZJR19TWVNfUENJMF9JT19TUEFDRTsKIAkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXZidXNmbiwgUENJX0JBU0VfQUREUkVTU18yLAogCQkJCSAgICAgICAodTMyICopICZpZGVfYnVzX29mZnNldFsxXSk7CiAJCWlkZV9idXNfb2Zmc2V0WzFdICY9IDB4ZmZmZmZmZjg7Ci0JCWlkZV9idXNfb2Zmc2V0WzFdICs9IENGR19QQ0kwX0lPX1NQQUNFOworCQlpZGVfYnVzX29mZnNldFsxXSArPSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0U7CiAJCS8qIGluaXQgdmFyaW91cyB0aGluZ3MgLSB0YWtlbiBmcm9tIHRoZSBMaW51eCBkcml2ZXIgKi8KIAkJLyogc2V0IFBJTyBtb2RlICovCiAJCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXZidXNmbiwgMHg4MCwgMHgwMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3N5bTUzYzh4eC5jIGIvZHJpdmVycy9ibG9jay9zeW01M2M4eHguYwppbmRleCA0NGU5OThiLi4wYzYwYmY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3N5bTUzYzh4eC5jCisrKyBiL2RyaXZlcnMvYmxvY2svc3ltNTNjOHh4LmMKQEAgLTQyNiw3ICs0MjYsNyBAQAogewogCXVuc2lnbmVkIGNoYXIgdDsKIAlpbnQgaTsKLQlpbnQgZW5kID0gQ0ZHX1NDU0lfU1BJTl9VUF9USU1FKjEwMDA7CisJaW50IGVuZCA9IENPTkZJR19TWVNfU0NTSV9TUElOX1VQX1RJTUUqMTAwMDsKIAogCXQ9c2NzaV9yZWFkX2J5dGUoU0NOVEwxKTsKIAlzY3NpX3dyaXRlX2J5dGUoU0NOVEwxLCh0IHwgQ1JTVCkpOwpAQCAtODM2LDEwICs4MzYsMTAgQEAKIAlzY3NpX3dyaXRlX2J5dGUoU0NOVEwwLDB4QzApOyAvKiBmdWxsIGFyYml0cmF0aW9uIG5vIHN0YXJ0LCBubyBtZXNzYWdlLCBwYXJpdHkgZGlzYWJsZWQsIG1hc3RlciAqLwogCXNjc2lfd3JpdGVfYnl0ZShTQ05UTDEsMHgwMCk7CiAJc2NzaV93cml0ZV9ieXRlKFNDTlRMMiwweDAwKTsKLSNpZm5kZWYgQ0ZHX1NDU0lfU1lNNTNDOFhYX0NDRiAgICAvKiBjb25maWcgdmFsdWUgZm9yIG5vbmUgNDAgbWh6IGNsb2NrcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX1NDU0lfU1lNNTNDOFhYX0NDRiAgICAvKiBjb25maWcgdmFsdWUgZm9yIG5vbmUgNDAgbWh6IGNsb2NrcyAqLwogCXNjc2lfd3JpdGVfYnl0ZShTQ05UTDMsMHgxMyk7IC8qIHN5bmNocm9ub3VzIGNsb2NrIDQwLzQ9MTBNSHosIGFzeW5jaHJvbm91cyA0ME1IeiAqLwogI2Vsc2UKLQlzY3NpX3dyaXRlX2J5dGUoU0NOVEwzLENGR19TQ1NJX1NZTTUzQzhYWF9DQ0YpOyAvKiBjb25maWcgdmFsdWUgZm9yIG5vbmUgNDAgbWh6IGNsb2NrcyAqLworCXNjc2lfd3JpdGVfYnl0ZShTQ05UTDMsQ09ORklHX1NZU19TQ1NJX1NZTTUzQzhYWF9DQ0YpOyAvKiBjb25maWcgdmFsdWUgZm9yIG5vbmUgNDAgbWh6IGNsb2NrcyAqLwogI2VuZGlmCiAJc2NzaV93cml0ZV9ieXRlKFNDSUQsMHg0Nyk7IC8qIElEPTcsIGVuYWJsZSByZXNlbGVjdGlvbiAqLwogCXNjc2lfd3JpdGVfYnl0ZShTWEZFUiwweDAwKTsgLyogc3luY2hyb25vdXMgdHJhbnNmZXIgcGVyaW9kIDEwTUh6LCBhc3luY2hyb25vdXMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svc3lzdGVtYWNlLmMgYi9kcml2ZXJzL2Jsb2NrL3N5c3RlbWFjZS5jCmluZGV4IGRmYWFiNTIuLmU4ZGZmMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svc3lzdGVtYWNlLmMKKysrIGIvZHJpdmVycy9ibG9jay9zeXN0ZW1hY2UuYwpAQCAtMjAsNyArMjAsNyBAQAogCiAvKgogICogVGhlIFhpbGlueCBTeXN0ZW1BQ0UgY2hpcCBzdXBwb3J0IGlzIGFjdGl2YXRlZCBieSBkZWZpbmluZwotICogQ09ORklHX1NZU1RFTUFDRSB0byB0dXJuIG9uIHN1cHBvcnQsIGFuZCBDRkdfU1lTVEVNQUNFX0JBU0UKKyAqIENPTkZJR19TWVNURU1BQ0UgdG8gdHVybiBvbiBzdXBwb3J0LCBhbmQgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRQogICogdG8gc2V0IHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIGRldmljZS4gVGhpcyBjb2RlIGN1cnJlbnRseQogICogYXNzdW1lcyB0aGF0IHRoZSBjaGlwIGlzIGNvbm5lY3RlZCB2aWEgYSBieXRlLXdpZGUgYnVzLgogICoKQEAgLTQ3LDI1ICs0NywyNSBAQAogLyoKICAqIFRoZSBhY2VfcmVhZHcgYW5kIHdyaXRldyBmdW5jdGlvbnMgcmVhZC93cml0ZSAxNmJpdCB3b3JkcywgYnV0IHRoZQogICogb2Zmc2V0IHZhbHVlIGlzIHRoZSBCWVRFIG9mZnNldCBhcyBtb3N0IHVzZWQgaW4gdGhlIFhpbGlueAotICogZGF0YXNoZWV0IGZvciB0aGUgU3lzdGVtQUNFIGNoaXAuIFRoZSBDRkdfU1lTVEVNQUNFX0JBU0UgaXMgZGVmaW5lZAorICogZGF0YXNoZWV0IGZvciB0aGUgU3lzdGVtQUNFIGNoaXAuIFRoZSBDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFIGlzIGRlZmluZWQKICAqIHRvIGJlIHRoZSBiYXNlIGFkZHJlc3MgZm9yIHRoZSBjaGlwLCB1c3VhbGx5IGluIHRoZSBsb2NhbAogICogcGVyaXBoZXJhbCBidXMuCiAgKi8KLSNpZiAoQ0ZHX1NZU1RFTUFDRV9XSURUSCA9PSA4KQorI2lmIChDT05GSUdfU1lTX1NZU1RFTUFDRV9XSURUSCA9PSA4KQogI2lmICFkZWZpbmVkKF9fQklHX0VORElBTikKLSNkZWZpbmUgYWNlX3JlYWR3KG9mZikgKChyZWFkYihDRkdfU1lTVEVNQUNFX0JBU0Urb2ZmKTw8OCkgfCBcCi0JCQkocmVhZGIoQ0ZHX1NZU1RFTUFDRV9CQVNFK29mZisxKSkpCi0jZGVmaW5lIGFjZV93cml0ZXcodmFsLCBvZmYpIHt3cml0ZWIodmFsPj44LCBDRkdfU1lTVEVNQUNFX0JBU0Urb2ZmKTsgXAotCQkJICAgICAgd3JpdGViKHZhbCwgQ0ZHX1NZU1RFTUFDRV9CQVNFK29mZisxKTt9CisjZGVmaW5lIGFjZV9yZWFkdyhvZmYpICgocmVhZGIoQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRStvZmYpPDw4KSB8IFwKKwkJCShyZWFkYihDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFK29mZisxKSkpCisjZGVmaW5lIGFjZV93cml0ZXcodmFsLCBvZmYpIHt3cml0ZWIodmFsPj44LCBDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFK29mZik7IFwKKwkJCSAgICAgIHdyaXRlYih2YWwsIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0Urb2ZmKzEpO30KICNlbHNlCi0jZGVmaW5lIGFjZV9yZWFkdyhvZmYpICgocmVhZGIoQ0ZHX1NZU1RFTUFDRV9CQVNFK29mZikpIHwgXAotCQkJKHJlYWRiKENGR19TWVNURU1BQ0VfQkFTRStvZmYrMSk8PDgpKQotI2RlZmluZSBhY2Vfd3JpdGV3KHZhbCwgb2ZmKSB7d3JpdGViKHZhbCwgQ0ZHX1NZU1RFTUFDRV9CQVNFK29mZik7IFwKLQkJCSAgICAgIHdyaXRlYih2YWw+PjgsIENGR19TWVNURU1BQ0VfQkFTRStvZmYrMSk7fQorI2RlZmluZSBhY2VfcmVhZHcob2ZmKSAoKHJlYWRiKENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0Urb2ZmKSkgfCBcCisJCQkocmVhZGIoQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRStvZmYrMSk8PDgpKQorI2RlZmluZSBhY2Vfd3JpdGV3KHZhbCwgb2ZmKSB7d3JpdGViKHZhbCwgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRStvZmYpOyBcCisJCQkgICAgICB3cml0ZWIodmFsPj44LCBDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFK29mZisxKTt9CiAjZW5kaWYKICNlbHNlCi0jZGVmaW5lIGFjZV9yZWFkdyhvZmYpIChpbjE2KENGR19TWVNURU1BQ0VfQkFTRStvZmYpKQotI2RlZmluZSBhY2Vfd3JpdGV3KHZhbCwgb2ZmKSAob3V0MTYoQ0ZHX1NZU1RFTUFDRV9CQVNFK29mZix2YWwpKQorI2RlZmluZSBhY2VfcmVhZHcob2ZmKSAoaW4xNihDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFK29mZikpCisjZGVmaW5lIGFjZV93cml0ZXcodmFsLCBvZmYpIChvdXQxNihDT05GSUdfU1lTX1NZU1RFTUFDRV9CQVNFK29mZix2YWwpKQogI2VuZGlmCiAKIC8qICovCkBAIC0xMjAsNyArMTIwLDcgQEAKIAkJLyoKIAkJICogRW5zdXJlIHRoZSBjb3JyZWN0IGJ1cyBtb2RlICg4LzE2IGJpdHMpIGdldHMgZW5hYmxlZAogCQkgKi8KLQkJYWNlX3dyaXRldyhDRkdfU1lTVEVNQUNFX1dJRFRIID09IDggPyAwIDogMHgwMDAxLCAwKTsKKwkJYWNlX3dyaXRldyhDT05GSUdfU1lTX1NZU1RFTUFDRV9XSURUSCA9PSA4ID8gMCA6IDB4MDAwMSwgMCk7CiAKIAkJaW5pdF9wYXJ0KCZzeXN0ZW1hY2VfZGV2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9NYWtlZmlsZSBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKaW5kZXggN2Y3ZDNkYi4uNTkzMDJmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCkBAIC0zNSw2ICszNSw3IEBACiBDT0JKUy0kKENPTkZJR19EVFRfRFMxNjIxKSArPSBkczE2MjEubwogQ09CSlMtJChDT05GSUdfRFRUX0RTMTcyMikgKz0gZHMxNzIyLm8KIENPQkpTLSQoQ09ORklHX0RUVF9EUzE3NzUpICs9IGRzMTc3NS5vCitDT0JKUy0kKENPTkZJR19EVFRfTE02MykgKz0gbG02My5vCiBDT0JKUy0kKENPTkZJR19EVFRfTE03MykgKz0gbG03My5vCiBDT0JKUy0kKENPTkZJR19EVFRfTE03NSkgKz0gbG03NS5vCiBDT0JKUy0kKENPTkZJR19EVFRfTE04MSkgKz0gbG04MS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FkbTEwMjEuYyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyMS5jCmluZGV4IGI3OTFlYzAuLmQ3NTNlOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYWRtMTAyMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyMS5jCkBAIC04MSw3ICs4MSw3IEBACiAJfQogZHR0X2NmZ190OwogCi1kdHRfY2ZnX3QgZHR0Y2ZnW10gPSBDRkdfRFRUX0FETTEwMjE7CitkdHRfY2ZnX3QgZHR0Y2ZnW10gPSBDT05GSUdfU1lTX0RUVF9BRE0xMDIxOwogCiBpbnQKIGR0dF9yZWFkIChpbnQgc2Vuc29yLCBpbnQgcmVnKQpAQCAtMTc0LDcgKzE3NCw3IEBACiAJY29uc3QgY2hhciAqY29uc3QgaGVhZGVyID0gIkRUVDogICAiOwogCiAJLyogc3dpdGNoIHRvIGNvcnJlY3QgSTJDIGJ1cyAqLwotCUkyQ19TRVRfQlVTKENGR19EVFRfQlVTX05VTSk7CisJSTJDX1NFVF9CVVMoQ09ORklHX1NZU19EVFRfQlVTX05VTSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHNlbnNvcnMpOyBpKyspIHsKIAkJaWYgKF9kdHRfaW5pdChzZW5zb3JzW2ldKSAhPSAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9kczE2MjEuYyBiL2RyaXZlcnMvaHdtb24vZHMxNjIxLmMKaW5kZXggNTIzZjhiZS4uZDE1YTA4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9kczE2MjEuYworKysgYi9kcml2ZXJzL2h3bW9uL2RzMTYyMS5jCkBAIC0xMjUsNyArMTI1LDcgQEAKICAgICAvKgogICAgICAqIFNldHVwIEhpZ2ggVGVtcC4KICAgICAgKi8KLSAgICB2YWwgPSAoKENGR19EVFRfTUFYX1RFTVAgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKKyAgICB2YWwgPSAoKENPTkZJR19TWVNfRFRUX01BWF9URU1QICogMikgPDwgNykgJiAweGZmODA7CiAgICAgaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9URU1QX0hJR0gsIHZhbCkgIT0gMCkKIAlyZXR1cm4gMTsKICAgICB1ZGVsYXkoNTAwMDApOwkJCQkvKiBNYXggNTBtcyAqLwpAQCAtMTMzLDcgKzEzMyw3IEBACiAgICAgLyoKICAgICAgKiBTZXR1cCBMb3cgVGVtcCAtIGh5c3RlcmVzaXMuCiAgICAgICovCi0gICAgdmFsID0gKCgoQ0ZHX0RUVF9NQVhfVEVNUCAtIENGR19EVFRfSFlTVEVSRVNJUykgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKKyAgICB2YWwgPSAoKChDT05GSUdfU1lTX0RUVF9NQVhfVEVNUCAtIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMpICogMikgPDwgNykgJiAweGZmODA7CiAgICAgaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9URU1QX0xPVywgdmFsKSAhPSAwKQogCXJldHVybiAxOwogICAgIHVkZWxheSg1MDAwMCk7CQkJCS8qIE1heCA1MG1zICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2RzMTc3NS5jIGIvZHJpdmVycy9od21vbi9kczE3NzUuYwppbmRleCA2YTRkOGU1Li44MGZiMjZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2RzMTc3NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vZHMxNzc1LmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxpMmMuaD4KICNpbmNsdWRlIDxkdHQuaD4KIAotI2RlZmluZSBEVFRfSTJDX0RFVl9DT0RFCUNGR19JMkNfRFRUX0FERFIgLyogRGFsbGFzIFNlbWkncyBEUzE3NzUgZGV2aWNlIGNvZGUgKi8KKyNkZWZpbmUgRFRUX0kyQ19ERVZfQ09ERQlDT05GSUdfU1lTX0kyQ19EVFRfQUREUiAvKiBEYWxsYXMgU2VtaSdzIERTMTc3NSBkZXZpY2UgY29kZSAqLwogI2RlZmluZSBEVFRfUkVBRF9URU1QCQkweDAKICNkZWZpbmUgRFRUX0NPTkZJRwkJMHgxCiAjZGVmaW5lIERUVF9URU1QX0hZU1QJCTB4MgpAQCAtMTA1LDcgKzEwNSw3IEBACiAJLyoKIAkgKiBTZXR1cCBIaWdoIFRlbXAKIAkgKi8KLQl2YWwgPSAoKENGR19EVFRfTUFYX1RFTVAgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKKwl2YWwgPSAoKENPTkZJR19TWVNfRFRUX01BWF9URU1QICogMikgPDwgNykgJiAweGZmODA7CiAJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9URU1QX09TLCB2YWwpICE9IDApCiAJCXJldHVybiAxOwogCXVkZWxheSg1MDAwMCk7CQkJLyogTWF4IDUwbXMgKi8KQEAgLTExMyw3ICsxMTMsNyBAQAogCS8qCiAJICogU2V0dXAgTG93IFRlbXAgLSBoeXN0ZXJlc2lzCiAJICovCi0JdmFsID0gKCgoQ0ZHX0RUVF9NQVhfVEVNUCAtIENGR19EVFRfSFlTVEVSRVNJUykgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKKwl2YWwgPSAoKChDT05GSUdfU1lTX0RUVF9NQVhfVEVNUCAtIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMpICogMikgPDwgNykgJiAweGZmODA7CiAJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9URU1QX0hZU1QsIHZhbCkgIT0gMCkKIAkJcmV0dXJuIDE7CiAJdWRlbGF5KDUwMDAwKTsJCQkvKiBNYXggNTBtcyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTYzLmMgYi9kcml2ZXJzL2h3bW9uL2xtNjMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzYxNmUxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9od21vbi9sbTYzLmMKQEAgLTAsMCArMSwxNzQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDctMjAwOAorICogRGlyayBFaWJhY2gsICBHdW50ZXJtYW5uICYgRHJ1bmNrIEdtYkgsIGVpYmFjaEBnZHN5cy5kZQorICogYmFzZWQgb24gbG03NS5jIGJ5IEJpbGwgSHVudGVyCisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworLyoKKyAqIE5hdGlvbmFsIExNNjMgVGVtcGVyYXR1cmUgU2Vuc29yCisgKi8KKworI2luY2x1ZGUgPGNvbW1vbi5oPgorI2luY2x1ZGUgPGkyYy5oPgorI2luY2x1ZGUgPGR0dC5oPgorCisjZGVmaW5lIERUVF9JMkNfREVWX0NPREUgMHg0QwkvKiBOYXRpb25hbCBMTTYzIGRldmljZSAqLworCisjZGVmaW5lIERUVF9SRUFEX1RFTVBfUk1UX01TQgkweDAxCisjZGVmaW5lIERUVF9DT05GSUcJCTB4MDMKKyNkZWZpbmUgRFRUX1JFQURfVEVNUF9STVRfTFNCCTB4MTAKKyNkZWZpbmUgRFRUX1RBQ0hMSU1fTFNCCQkweDQ4CisjZGVmaW5lIERUVF9UQUNITElNX01TQgkJMHg0OQorI2RlZmluZSBEVFRfRkFOX0NPTkZJRwkJMHg0QQorI2RlZmluZSBEVFRfUFdNX0ZSRVEJCTB4NEQKKyNkZWZpbmUgRFRUX1BXTV9MT09LVVBfQkFTRQkweDUwCisKK3N0cnVjdCBwd21fbG9va3VwX2VudHJ5IHsKKwl1OCB0ZW1wOworCXU4IHB3bTsKK307CisKKy8qCisgKiBEZXZpY2UgY29kZQorICovCisKK2ludCBkdHRfcmVhZChpbnQgc2Vuc29yLCBpbnQgcmVnKQoreworCWludCBkbGVuOworCXVjaGFyIGRhdGFbMl07CisKKwkvKgorCSAqIENhbGN1bGF0ZSBzZW5zb3IgYWRkcmVzcyBhbmQgcmVnaXN0ZXIuCisJICovCisJc2Vuc29yID0gRFRUX0kyQ19ERVZfQ09ERTsJLyogYWRkcmVzcyBvZiBsbTYzIGlzIG5vdCBhZGp1c3RhYmxlICovCisKKwlkbGVuID0gMTsKKworCS8qCisJICogTm93IHRyeSB0byByZWFkIHRoZSByZWdpc3Rlci4KKwkgKi8KKwlpZiAoaTJjX3JlYWQoc2Vuc29yLCByZWcsIDEsIGRhdGEsIGRsZW4pICE9IDApCisJCXJldHVybiAtMTsKKworCXJldHVybiAoaW50KWRhdGFbMF07Cit9CQkJCS8qIGR0dF9yZWFkKCkgKi8KKworaW50IGR0dF93cml0ZShpbnQgc2Vuc29yLCBpbnQgcmVnLCBpbnQgdmFsKQoreworCWludCBkbGVuOworCXVjaGFyIGRhdGFbMl07CisKKwkvKgorCSAqIENhbGN1bGF0ZSBzZW5zb3IgYWRkcmVzcyBhbmQgcmVnaXN0ZXIuCisJICovCisJc2Vuc29yID0gRFRUX0kyQ19ERVZfQ09ERTsJLyogYWRkcmVzcyBvZiBsbTYzIGlzIG5vdCBhZGp1c3RhYmxlICovCisKKwlkbGVuID0gMTsKKwlkYXRhWzBdID0gKGNoYXIpKHZhbCAmIDB4ZmYpOworCisJLyoKKwkgKiBXcml0ZSB2YWx1ZSB0byByZWdpc3Rlci4KKwkgKi8KKwlpZiAoaTJjX3dyaXRlKHNlbnNvciwgcmVnLCAxLCBkYXRhLCBkbGVuKSAhPSAwKQorCQlyZXR1cm4gMTsKKworCXJldHVybiAwOworfQkJCQkvKiBkdHRfd3JpdGUoKSAqLworCitzdGF0aWMgaW50IF9kdHRfaW5pdChpbnQgc2Vuc29yKQoreworCWludCBpOworCWludCB2YWw7CisKKwlzdHJ1Y3QgcHdtX2xvb2t1cF9lbnRyeSBwd21fbG9va3VwW10gPSBDT05GSUdfRFRUX1BXTV9MT09LVVBUQUJMRTsKKworCS8qCisJICogU2V0IFBXTSBGcmVxdWVuY3kgdG8gMi41JSByZXNvbHV0aW9uCisJICovCisJdmFsID0gMjA7CisJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9QV01fRlJFUSwgdmFsKSAhPSAwKQorCQlyZXR1cm4gMTsKKworCS8qCisJICogU2V0IFRhY2hvbWV0ZXIgTGltaXQKKwkgKi8KKwl2YWwgPSBDT05GSUdfRFRUX1RBQ0hfTElNSVQ7CisJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9UQUNITElNX0xTQiwgdmFsICYgMHhmZikgIT0gMCkKKwkJcmV0dXJuIDE7CisJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9UQUNITElNX01TQiwgKHZhbCA+PiA4KSAmIDB4ZmYpICE9IDApCisJCXJldHVybiAxOworCisJLyoKKwkgKiBTZXR1cCBQV00gTG9va3VwLVRhYmxlCisJICovCisJZm9yIChpID0gMDsgaSA8IHNpemVvZihwd21fbG9va3VwKSAvIHNpemVvZihzdHJ1Y3QgcHdtX2xvb2t1cF9lbnRyeSk7CisJICAgICBpKyspIHsKKwkJaW50IGFkZHJlc3MgPSBEVFRfUFdNX0xPT0tVUF9CQVNFICsgMiAqIGk7CisJCXZhbCA9IHB3bV9sb29rdXBbaV0udGVtcDsKKwkJaWYgKGR0dF93cml0ZShzZW5zb3IsIGFkZHJlc3MsIHZhbCkgIT0gMCkKKwkJCXJldHVybiAxOworCQl2YWwgPSBwd21fbG9va3VwW2ldLnB3bTsKKwkJaWYgKGR0dF93cml0ZShzZW5zb3IsIGFkZHJlc3MgKyAxLCB2YWwpICE9IDApCisJCQlyZXR1cm4gMTsKKwl9CisKKwkvKgorCSAqIEVuYWJsZSBQV00gTG9va3VwLVRhYmxlLCBQV00gQ2xvY2sgMzYwIGtIeiwgVGFjaG9tZXRlciBNb2RlIDIKKwkgKi8KKwl2YWwgPSAweDAyOworCWlmIChkdHRfd3JpdGUoc2Vuc29yLCBEVFRfRkFOX0NPTkZJRywgdmFsKSAhPSAwKQorCQlyZXR1cm4gMTsKKworCS8qCisJICogRW5hYmxlIFRhY2ggaW5wdXQKKwkgKi8KKwl2YWwgPSBkdHRfcmVhZChzZW5zb3IsIERUVF9DT05GSUcpIHwgMHgwNDsKKwlpZiAoZHR0X3dyaXRlKHNlbnNvciwgRFRUX0NPTkZJRywgdmFsKSAhPSAwKQorCQlyZXR1cm4gMTsKKworCXJldHVybiAwOworfQorCitpbnQgZHR0X2dldF90ZW1wKGludCBzZW5zb3IpCit7CisJczE2IHRlbXAgPSAoZHR0X3JlYWQoc2Vuc29yLCBEVFRfUkVBRF9URU1QX1JNVF9NU0IpIDw8IDgpCisJICAgIHwgKGR0dF9yZWFkKHNlbnNvciwgRFRUX1JFQURfVEVNUF9STVRfTFNCKSk7CisKKwkvKiBJZ25vcmUgTFNCIGZvciBub3csIFUtQm9vdCBvbmx5IHByaW50cyBuYXR1cmFsIG51bWJlcnMgKi8KKwlyZXR1cm4gdGVtcCA+PiA4OworfQorCitpbnQgZHR0X2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBjaGFyIHNlbnNvcnNbXSA9IENPTkZJR19EVFRfU0VOU09SUzsKKwljb25zdCBjaGFyICpjb25zdCBoZWFkZXIgPSAiRFRUOiAgICI7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHNlbnNvcnMpOyBpKyspIHsKKwkJaWYgKF9kdHRfaW5pdChzZW5zb3JzW2ldKSAhPSAwKQorCQkJcHJpbnRmKCIlcyVkIEZBSUxFRCBJTklUXG4iLCBoZWFkZXIsIGkgKyAxKTsKKwkJZWxzZQorCQkJcHJpbnRmKCIlcyVkIGlzICVpIENcbiIsIGhlYWRlciwgaSArIDEsCisJCQkgICAgICAgZHR0X2dldF90ZW1wKHNlbnNvcnNbaV0pKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG03My5jIGIvZHJpdmVycy9od21vbi9sbTczLmMKaW5kZXggZGQyNDY4My4uN2I1ZDg5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTczLmMKKysrIGIvZHJpdmVycy9od21vbi9sbTczLmMKQEAgLTEyNCwxMSArMTI0LDExIEBACiAJLyoKIAkgKiBTZXR1cCBUSElHSCAodXBwZXItbGltaXQpIGFuZCBUTE9XIChsb3dlci1saW1pdCkgcmVnaXN0ZXJzCiAJICovCi0JdmFsID0gQ0ZHX0RUVF9NQVhfVEVNUCA8PCA3OworCXZhbCA9IENPTkZJR19TWVNfRFRUX01BWF9URU1QIDw8IDc7CiAJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9URU1QX0hJR0gsIHZhbCkpCiAJCXJldHVybiAtMTsKIAotCXZhbCA9IENGR19EVFRfTUlOX1RFTVAgPDwgNzsKKwl2YWwgPSBDT05GSUdfU1lTX0RUVF9NSU5fVEVNUCA8PCA3OwogCWlmIChkdHRfd3JpdGUoc2Vuc29yLCBEVFRfVEVNUF9MT1csIHZhbCkpCiAJCXJldHVybiAtMTsKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTc1LmMgYi9kcml2ZXJzL2h3bW9uL2xtNzUuYwppbmRleCA2NzcwY2RkLi44MTE5ODIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2xtNzUuYworKysgYi9kcml2ZXJzL2h3bW9uL2xtNzUuYwpAQCAtMzIsOCArMzIsOCBAQAogLyoKICAqIERldmljZSBjb2RlCiAgKi8KLSNpZiBkZWZpbmVkKENGR19JMkNfRFRUX0FERFIpCi0jZGVmaW5lIERUVF9JMkNfREVWX0NPREUgQ0ZHX0kyQ19EVFRfQUREUgorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfRFRUX0FERFIpCisjZGVmaW5lIERUVF9JMkNfREVWX0NPREUgQ09ORklHX1NZU19JMkNfRFRUX0FERFIKICNlbHNlCiAjZGVmaW5lIERUVF9JMkNfREVWX0NPREUgMHg0OAkJCS8qIE9OIFNlbWkncyBMTTc1IGRldmljZSAqLwogI2VuZGlmCkBAIC00NCwxNTkgKzQ0LDE0MSBAQAogCiBpbnQgZHR0X3JlYWQoaW50IHNlbnNvciwgaW50IHJlZykKIHsKLSAgICBpbnQgZGxlbjsKLSAgICB1Y2hhciBkYXRhWzJdOworCWludCBkbGVuOworCXVjaGFyIGRhdGFbMl07CiAKICNpZmRlZiBDT05GSUdfRFRUX0FENzQxNAotICAgIC8qCi0gICAgICogT24gQUQ3NDE0IHRoZSBmaXJzdCB2YWx1ZSB1cG9uIGJvb3R1cCBpcyBub3QgcmVhZCBjb3JyZWN0bHkuCi0gICAgICogVGhpcyBpcyBtb3N0IGxpa2VseSBiZWNhdXNlIG9mIHRoZSA4MDBtcyB1cGRhdGUgdGltZSBvZiB0aGUKLSAgICAgKiB0ZW1wIHJlZ2lzdGVyIGluIG5vcm1hbCB1cGRhdGUgbW9kZS4gVG8gZ2V0IGN1cnJlbnQgdmFsdWVzCi0gICAgICogZWFjaCB0aW1lIHdlIGlzc3VlIHRoZSAiZHR0IiBjb21tYW5kIGluY2x1ZGluZyB1cG9uIHBvd2VydXAKLSAgICAgKiB3ZSBzd2l0Y2ggaW50byBvbmUtc2hvcnQgbW9kZS4KLSAgICAgKgotICAgICAqIElzc3VlIG9uZS1zaG90IG1vZGUgY29tbWFuZAotICAgICAqLwotICAgIGR0dF93cml0ZShzZW5zb3IsIERUVF9DT05GSUcsIDB4NjQpOworCS8qCisJICogT24gQUQ3NDE0IHRoZSBmaXJzdCB2YWx1ZSB1cG9uIGJvb3R1cCBpcyBub3QgcmVhZCBjb3JyZWN0bHkuCisJICogVGhpcyBpcyBtb3N0IGxpa2VseSBiZWNhdXNlIG9mIHRoZSA4MDBtcyB1cGRhdGUgdGltZSBvZiB0aGUKKwkgKiB0ZW1wIHJlZ2lzdGVyIGluIG5vcm1hbCB1cGRhdGUgbW9kZS4gVG8gZ2V0IGN1cnJlbnQgdmFsdWVzCisJICogZWFjaCB0aW1lIHdlIGlzc3VlIHRoZSAiZHR0IiBjb21tYW5kIGluY2x1ZGluZyB1cG9uIHBvd2VydXAKKwkgKiB3ZSBzd2l0Y2ggaW50byBvbmUtc2hvcnQgbW9kZS4KKwkgKgorCSAqIElzc3VlIG9uZS1zaG90IG1vZGUgY29tbWFuZAorCSAqLworCWR0dF93cml0ZShzZW5zb3IsIERUVF9DT05GSUcsIDB4NjQpOwogI2VuZGlmCiAKLSAgICAvKgotICAgICAqIFZhbGlkYXRlICdyZWcnIHBhcmFtCi0gICAgICovCi0gICAgaWYoKHJlZyA8IDApIHx8IChyZWcgPiAzKSkKLQlyZXR1cm4gLTE7CisJLyogVmFsaWRhdGUgJ3JlZycgcGFyYW0gKi8KKwlpZigocmVnIDwgMCkgfHwgKHJlZyA+IDMpKQorCQlyZXR1cm4gLTE7CiAKLSAgICAvKgotICAgICAqIENhbGN1bGF0ZSBzZW5zb3IgYWRkcmVzcyBhbmQgcmVnaXN0ZXIuCi0gICAgICovCi0gICAgc2Vuc29yID0gRFRUX0kyQ19ERVZfQ09ERSArIChzZW5zb3IgJiAweDA3KTsgLyogY2FsY3VsYXRlIGFkZHJlc3Mgb2YgbG03NSAqLworCS8qIENhbGN1bGF0ZSBzZW5zb3IgYWRkcmVzcyBhbmQgcmVnaXN0ZXIuICovCisJc2Vuc29yID0gRFRUX0kyQ19ERVZfQ09ERSArIChzZW5zb3IgJiAweDA3KTsKIAotICAgIC8qCi0gICAgICogUHJlcGFyZSB0byBoYW5kbGUgMiBieXRlIHJlc3VsdC4KLSAgICAgKi8KLSAgICBpZiAoKHJlZyA9PSBEVFRfUkVBRF9URU1QKSB8fAotCShyZWcgPT0gRFRUX1RFTVBfSFlTVCkgfHwKLQkocmVnID09IERUVF9URU1QX1NFVCkpCi0JZGxlbiA9IDI7Ci0gICAgZWxzZQotCWRsZW4gPSAxOwotCi0gICAgLyoKLSAgICAgKiBOb3cgdHJ5IHRvIHJlYWQgdGhlIHJlZ2lzdGVyLgotICAgICAqLwotICAgIGlmIChpMmNfcmVhZChzZW5zb3IsIHJlZywgMSwgZGF0YSwgZGxlbikgIT0gMCkKLQlyZXR1cm4gLTE7CisJLyogUHJlcGFyZSB0byBoYW5kbGUgMiBieXRlIHJlc3VsdC4gKi8KKwlpZiAoKHJlZyA9PSBEVFRfUkVBRF9URU1QKSB8fAorCQkocmVnID09IERUVF9URU1QX0hZU1QpIHx8CisJCShyZWcgPT0gRFRUX1RFTVBfU0VUKSkKKwkJCWRsZW4gPSAyOworCWVsc2UKKwkJZGxlbiA9IDE7CiAKLSAgICAvKgotICAgICAqIEhhbmRsZSAyIGJ5dGUgcmVzdWx0LgotICAgICAqLwotICAgIGlmIChkbGVuID09IDIpCi0JcmV0dXJuICgoaW50KSgoc2hvcnQpZGF0YVsxXSArICgoKHNob3J0KWRhdGFbMF0pIDw8IDgpKSk7CisJLyogTm93IHRyeSB0byByZWFkIHRoZSByZWdpc3Rlci4gKi8KKwlpZiAoaTJjX3JlYWQoc2Vuc29yLCByZWcsIDEsIGRhdGEsIGRsZW4pICE9IDApCisJCXJldHVybiAtMTsKIAorCS8qIEhhbmRsZSAyIGJ5dGUgcmVzdWx0LiAqLworCWlmIChkbGVuID09IDIpCisJCXJldHVybiAoKGludCkoKHNob3J0KWRhdGFbMV0gKyAoKChzaG9ydClkYXRhWzBdKSA8PCA4KSkpOwogCi0gICAgcmV0dXJuIChpbnQpZGF0YVswXTsKKwlyZXR1cm4gKGludClkYXRhWzBdOwogfSAvKiBkdHRfcmVhZCgpICovCiAKIAogaW50IGR0dF93cml0ZShpbnQgc2Vuc29yLCBpbnQgcmVnLCBpbnQgdmFsKQogewotICAgIGludCBkbGVuOwotICAgIHVjaGFyIGRhdGFbMl07CisJaW50IGRsZW47CisJdWNoYXIgZGF0YVsyXTsKIAotICAgIC8qCi0gICAgICogVmFsaWRhdGUgJ3JlZycgcGFyYW0KLSAgICAgKi8KLSAgICBpZiAoKHJlZyA8IDApIHx8IChyZWcgPiAzKSkKLQlyZXR1cm4gMTsKKwkvKiBWYWxpZGF0ZSAncmVnJyBwYXJhbSAqLworCWlmICgocmVnIDwgMCkgfHwgKHJlZyA+IDMpKQorCQlyZXR1cm4gMTsKIAotICAgIC8qCi0gICAgICogQ2FsY3VsYXRlIHNlbnNvciBhZGRyZXNzIGFuZCByZWdpc3Rlci4KLSAgICAgKi8KLSAgICBzZW5zb3IgPSBEVFRfSTJDX0RFVl9DT0RFICsgKHNlbnNvciAmIDB4MDcpOyAvKiBjYWxjdWxhdGUgYWRkcmVzcyBvZiBsbTc1ICovCisJLyogQ2FsY3VsYXRlIHNlbnNvciBhZGRyZXNzIGFuZCByZWdpc3Rlci4gKi8KKwlzZW5zb3IgPSBEVFRfSTJDX0RFVl9DT0RFICsgKHNlbnNvciAmIDB4MDcpOwogCi0gICAgLyoKLSAgICAgKiBIYW5kbGUgMiBieXRlIHZhbHVlcy4KLSAgICAgKi8KLSAgICBpZiAoKHJlZyA9PSBEVFRfUkVBRF9URU1QKSB8fAotCShyZWcgPT0gRFRUX1RFTVBfSFlTVCkgfHwKLQkocmVnID09IERUVF9URU1QX1NFVCkpIHsKLQlkbGVuID0gMjsKLQlkYXRhWzBdID0gKGNoYXIpKCh2YWwgPj4gOCkgJiAweGZmKTsJLyogTVNCIGZpcnN0ICovCi0JZGF0YVsxXSA9IChjaGFyKSh2YWwgJiAweGZmKTsKLSAgICB9IGVsc2UgewotCWRsZW4gPSAxOwotCWRhdGFbMF0gPSAoY2hhcikodmFsICYgMHhmZik7Ci0gICAgfQorCS8qIEhhbmRsZSAyIGJ5dGUgdmFsdWVzLiAqLworCWlmICgocmVnID09IERUVF9SRUFEX1RFTVApIHx8CisJCShyZWcgPT0gRFRUX1RFTVBfSFlTVCkgfHwKKwkJKHJlZyA9PSBEVFRfVEVNUF9TRVQpKSB7CisJCQlkbGVuID0gMjsKKwkJZGF0YVswXSA9IChjaGFyKSgodmFsID4+IDgpICYgMHhmZik7CS8qIE1TQiBmaXJzdCAqLworCQlkYXRhWzFdID0gKGNoYXIpKHZhbCAmIDB4ZmYpOworCX0gZWxzZSB7CisJCWRsZW4gPSAxOworCQlkYXRhWzBdID0gKGNoYXIpKHZhbCAmIDB4ZmYpOworCX0KIAotICAgIC8qCi0gICAgICogV3JpdGUgdmFsdWUgdG8gcmVnaXN0ZXIuCi0gICAgICovCi0gICAgaWYgKGkyY193cml0ZShzZW5zb3IsIHJlZywgMSwgZGF0YSwgZGxlbikgIT0gMCkKLQlyZXR1cm4gMTsKKwkvKiBXcml0ZSB2YWx1ZSB0byByZWdpc3Rlci4gKi8KKwlpZiAoaTJjX3dyaXRlKHNlbnNvciwgcmVnLCAxLCBkYXRhLCBkbGVuKSAhPSAwKQorCQlyZXR1cm4gMTsKIAotICAgIHJldHVybiAwOworCXJldHVybiAwOwogfSAvKiBkdHRfd3JpdGUoKSAqLwogCiAKIHN0YXRpYyBpbnQgX2R0dF9pbml0KGludCBzZW5zb3IpCiB7Ci0gICAgaW50IHZhbDsKKwlpbnQgdmFsOwogCi0gICAgLyoKLSAgICAgKiBTZXR1cCBUU0VUICggdHJpcCBwb2ludCApIHJlZ2lzdGVyCi0gICAgICovCi0gICAgdmFsID0gKChDRkdfRFRUX01BWF9URU1QICogMikgPDwgNykgJiAweGZmODA7IC8qIHRyaXAgKi8KLSAgICBpZiAoZHR0X3dyaXRlKHNlbnNvciwgRFRUX1RFTVBfU0VULCB2YWwpICE9IDApCi0JcmV0dXJuIDE7CisJLyogU2V0dXAgVFNFVCAoIHRyaXAgcG9pbnQgKSByZWdpc3RlciAqLworCXZhbCA9ICgoQ09ORklHX1NZU19EVFRfTUFYX1RFTVAgKiAyKSA8PCA3KSAmIDB4ZmY4MDsgLyogdHJpcCAqLworCWlmIChkdHRfd3JpdGUoc2Vuc29yLCBEVFRfVEVNUF9TRVQsIHZhbCkgIT0gMCkKKwkJcmV0dXJuIDE7CiAKLSAgICAvKgotICAgICAqIFNldHVwIFRIWVNUICggdW50cmlwIHBvaW50ICkgcmVnaXN0ZXIgLSBIeXN0ZXJlc2lzCi0gICAgICovCi0gICAgdmFsID0gKCgoQ0ZHX0RUVF9NQVhfVEVNUCAtIENGR19EVFRfSFlTVEVSRVNJUykgKiAyKSA8PCA3KSAmIDB4ZmY4MDsKLSAgICBpZiAoZHR0X3dyaXRlKHNlbnNvciwgRFRUX1RFTVBfSFlTVCwgdmFsKSAhPSAwKQotCXJldHVybiAxOworCS8qIFNldHVwIFRIWVNUICggdW50cmlwIHBvaW50ICkgcmVnaXN0ZXIgLSBIeXN0ZXJlc2lzICovCisJdmFsID0gKCgoQ09ORklHX1NZU19EVFRfTUFYX1RFTVAgLSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTKSAqIDIpIDw8IDcpICYgMHhmZjgwOworCWlmIChkdHRfd3JpdGUoc2Vuc29yLCBEVFRfVEVNUF9IWVNULCB2YWwpICE9IDApCisJCXJldHVybiAxOwogCi0gICAgLyoKLSAgICAgKiBTZXR1cCBjb25maWd1cmF0b24gcmVnaXN0ZXIKLSAgICAgKi8KKwkvKiBTZXR1cCBjb25maWd1cmF0b24gcmVnaXN0ZXIgKi8KICNpZmRlZiBDT05GSUdfRFRUX0FENzQxNAotICAgIC8qIGNvbmZpZyA9IGFsZXJ0IGFjdGl2ZSBsb3cgYW5kIGRpc2FibGVkICovCi0gICAgdmFsID0gMHg2MDsKKwkvKiBjb25maWcgPSBhbGVydCBhY3RpdmUgbG93IGFuZCBkaXNhYmxlZCAqLworCXZhbCA9IDB4NjA7CiAjZWxzZQotICAgIC8qIGNvbmZpZyA9IDYgc2FtcGxlIGludGVncmF0aW9uLCBpbnQgbW9kZSwgYWN0aXZlIGxvdywgYW5kIGVuYWJsZSAqLwotICAgIHZhbCA9IDB4MTg7CisJLyogY29uZmlnID0gNiBzYW1wbGUgaW50ZWdyYXRpb24sIGludCBtb2RlLCBhY3RpdmUgbG93LCBhbmQgZW5hYmxlICovCisJdmFsID0gMHgxODsKICNlbmRpZgotICAgIGlmIChkdHRfd3JpdGUoc2Vuc29yLCBEVFRfQ09ORklHLCB2YWwpICE9IDApCi0JcmV0dXJuIDE7CisJaWYgKGR0dF93cml0ZShzZW5zb3IsIERUVF9DT05GSUcsIHZhbCkgIT0gMCkKKwkJcmV0dXJuIDE7CiAKLSAgICByZXR1cm4gMDsKKwlyZXR1cm4gMDsKIH0gLyogX2R0dF9pbml0KCkgKi8KIAogCiBpbnQgZHR0X2luaXQgKHZvaWQpCiB7Ci0gICAgaW50IGk7Ci0gICAgdW5zaWduZWQgY2hhciBzZW5zb3JzW10gPSBDT05GSUdfRFRUX1NFTlNPUlM7Ci0gICAgY29uc3QgY2hhciAqY29uc3QgaGVhZGVyID0gIkRUVDogICAiOworCWludCBpOworCXVuc2lnbmVkIGNoYXIgc2Vuc29yc1tdID0gQ09ORklHX0RUVF9TRU5TT1JTOworCWNvbnN0IGNoYXIgKmNvbnN0IGhlYWRlciA9ICJEVFQ6ICAgIjsKKwlpbnQgb2xkX2J1czsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc2Vuc29ycyk7IGkrKykgeworCS8qIHN3aXRjaCB0byBjb3JyZWN0IEkyQyBidXMgKi8KKwlvbGRfYnVzID0gSTJDX0dFVF9CVVMoKTsKKwlJMkNfU0VUX0JVUyhDT05GSUdfU1lTX0RUVF9CVVNfTlVNKTsKKworCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc2Vuc29ycyk7IGkrKykgewogCWlmIChfZHR0X2luaXQoc2Vuc29yc1tpXSkgIT0gMCkKLQkgICAgcHJpbnRmKCIlcyVkIEZBSUxFRCBJTklUXG4iLCBoZWFkZXIsIGkrMSk7CisJCXByaW50ZigiJXMlZCBGQUlMRUQgSU5JVFxuIiwgaGVhZGVyLCBpKzEpOwogCWVsc2UKLQkgICAgcHJpbnRmKCIlcyVkIGlzICVpIENcbiIsIGhlYWRlciwgaSsxLAotCQkgICBkdHRfZ2V0X3RlbXAoc2Vuc29yc1tpXSkpOwotICAgIH0KKwkJcHJpbnRmKCIlcyVkIGlzICVpIENcbiIsIGhlYWRlciwgaSsxLAorCQlkdHRfZ2V0X3RlbXAoc2Vuc29yc1tpXSkpOworCX0KKwkvKiBzd2l0Y2ggYmFjayB0byBvcmlnaW5hbCBJMkMgYnVzICovCisJSTJDX1NFVF9CVVMob2xkX2J1cyk7CiAKLSAgICByZXR1cm4gKDApOworCXJldHVybiAoMCk7CiB9IC8qIGR0dF9pbml0KCkgKi8KIAogaW50IGR0dF9nZXRfdGVtcChpbnQgc2Vuc29yKQogewotICAgIGludCBjb25zdCByZXQgPSBkdHRfcmVhZChzZW5zb3IsIERUVF9SRUFEX1RFTVApOworCWludCBjb25zdCByZXQgPSBkdHRfcmVhZChzZW5zb3IsIERUVF9SRUFEX1RFTVApOwogCi0gICAgaWYgKHJldCA8IDApIHsKLQlwcmludGYoIkRUVCB0ZW1wZXJhdHVyZSByZWFkIGZhaWxlZC5cbiIpOwotCXJldHVybiAwOwotICAgIH0KLSAgICByZXR1cm4gKGludCkoKGludDE2X3QpIHJldCAvIDI1Nik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRmKCJEVFQgdGVtcGVyYXR1cmUgcmVhZCBmYWlsZWQuXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiAoaW50KSgoaW50MTZfdCkgcmV0IC8gMjU2KTsKIH0gLyogZHR0X2dldF90ZW1wKCkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2ZzbF9pMmMuYyBiL2RyaXZlcnMvaTJjL2ZzbF9pMmMuYwppbmRleCAyNjQ1NTNkLi4yODFhODhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9mc2xfaTJjLmMKKysrIGIvZHJpdmVycy9pMmMvZnNsX2kyYy5jCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2ZzbF9pMmMuaD4JLyogSFcgZGVmaW5pdGlvbnMgKi8KIAotI2RlZmluZSBJMkNfVElNRU9VVAkoQ0ZHX0haIC8gNCkKKyNkZWZpbmUgSTJDX1RJTUVPVVQJKENPTkZJR19TWVNfSFogLyA0KQogCiAjZGVmaW5lIEkyQ19SRUFEX0JJVCAgMQogI2RlZmluZSBJMkNfV1JJVEVfQklUIDAKQEAgLTM4LDE4ICszOCwxOCBAQAogICogcnVucyBmcm9tIFJPTSwgYW5kIHdlIGNhbid0IHN3aXRjaCBidXNlcyBiZWNhdXNlIHdlIGNhbid0IG1vZGlmeQogICogdGhlIGdsb2JhbCB2YXJpYWJsZXMuCiAgKi8KLSNpZmRlZiBDRkdfU1BEX0JVU19OVU0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19udW0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCJkYXRhIikpKSA9IENGR19TUERfQlVTX05VTTsKKyNpZmRlZiBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCitzdGF0aWMgdW5zaWduZWQgaW50IGkyY19idXNfbnVtIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiZGF0YSIpKSkgPSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNOwogI2Vsc2UKIHN0YXRpYyB1bnNpZ25lZCBpbnQgaTJjX2J1c19udW0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCJkYXRhIikpKSA9IDA7CiAjZW5kaWYKIAotc3RhdGljIHVuc2lnbmVkIGludCBpMmNfYnVzX3NwZWVkWzJdID0ge0NGR19JMkNfU1BFRUQsIENGR19JMkNfU1BFRUR9Oworc3RhdGljIHVuc2lnbmVkIGludCBpMmNfYnVzX3NwZWVkWzJdID0ge0NPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TUEVFRH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZnNsX2kyYyAqaTJjX2RldlsyXSA9IHsKLQkoc3RydWN0IGZzbF9pMmMgKikgKENGR19JTU1SICsgQ0ZHX0kyQ19PRkZTRVQpLAotI2lmZGVmIENGR19JMkMyX09GRlNFVAotCShzdHJ1Y3QgZnNsX2kyYyAqKSAoQ0ZHX0lNTVIgKyBDRkdfSTJDMl9PRkZTRVQpCisJKHN0cnVjdCBmc2xfaTJjICopIChDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX0kyQ19PRkZTRVQpLAorI2lmZGVmIENPTkZJR19TWVNfSTJDMl9PRkZTRVQKKwkoc3RydWN0IGZzbF9pMmMgKikgKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfSTJDMl9PRkZTRVQpCiAjZW5kaWYKIH07CiAKQEAgLTE3Niw3ICsxNzYsNyBAQAogCXN0cnVjdCBmc2xfaTJjICpkZXY7CiAJdW5zaWduZWQgaW50IHRlbXA7CiAKLQlkZXYgPSAoc3RydWN0IGZzbF9pMmMgKikgKENGR19JTU1SICsgQ0ZHX0kyQ19PRkZTRVQpOworCWRldiA9IChzdHJ1Y3QgZnNsX2kyYyAqKSAoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19JMkNfT0ZGU0VUKTsKIAogCXdyaXRlYigwLCAmZGV2LT5jcik7CQkJLyogc3RvcCBJMkMgY29udHJvbGxlciAqLwogCXVkZWxheSg1KTsJCQkJLyogbGV0IGl0IHNodXRkb3duIGluIHBlYWNlICovCkBAIC0xODcsOCArMTg3LDggQEAKIAl3cml0ZWIoMHgwLCAmZGV2LT5zcik7CQkJLyogY2xlYXIgc3RhdHVzIHJlZ2lzdGVyICovCiAJd3JpdGViKEkyQ19DUl9NRU4sICZkZXYtPmNyKTsJCS8qIHN0YXJ0IEkyQyBjb250cm9sbGVyICovCiAKLSNpZmRlZglDRkdfSTJDMl9PRkZTRVQKLQlkZXYgPSAoc3RydWN0IGZzbF9pMmMgKikgKENGR19JTU1SICsgQ0ZHX0kyQzJfT0ZGU0VUKTsKKyNpZmRlZglDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCisJZGV2ID0gKHN0cnVjdCBmc2xfaTJjICopIChDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUKTsKIAogCXdyaXRlYigwLCAmZGV2LT5jcik7CQkJLyogc3RvcCBJMkMgY29udHJvbGxlciAqLwogCXVkZWxheSg1KTsJCQkJLyogbGV0IGl0IHNodXRkb3duIGluIHBlYWNlICovCkBAIC0zODYsNyArMzg2LDcgQEAKIAogaW50IGkyY19zZXRfYnVzX251bSh1bnNpZ25lZCBpbnQgYnVzKQogewotI2lmZGVmIENGR19JMkMyX09GRlNFVAorI2lmZGVmIENPTkZJR19TWVNfSTJDMl9PRkZTRVQKIAlpZiAoYnVzID4gMSkgewogI2Vsc2UKIAlpZiAoYnVzID4gMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvbXhjX2kyYy5jIGIvZHJpdmVycy9pMmMvbXhjX2kyYy5jCmluZGV4IDFmNmJhMWYuLmVlZGFkMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL214Y19pMmMuYworKysgYi9kcml2ZXJzL2kyYy9teGNfaTJjLmMKQEAgLTQ3LDE0ICs0NywxNCBAQAogI2RlZmluZSBJMlNSX0lJRgkoMSA8PCAxKQogI2RlZmluZSBJMlNSX1JYX05PX0FLCSgxIDw8IDApCiAKLSNpZmRlZiBDRkdfSTJDX01YMzFfUE9SVDEKKyNpZmRlZiBDT05GSUdfU1lTX0kyQ19NWDMxX1BPUlQxCiAjZGVmaW5lIEkyQ19CQVNFCTB4NDNmODAwMDAKLSNlbGlmIGRlZmluZWQgKENGR19JMkNfTVgzMV9QT1JUMikKKyNlbGlmIGRlZmluZWQgKENPTkZJR19TWVNfSTJDX01YMzFfUE9SVDIpCiAjZGVmaW5lIEkyQ19CQVNFCTB4NDNmOTgwMDAKLSNlbGlmIGRlZmluZWQgKENGR19JMkNfTVgzMV9QT1JUMykKKyNlbGlmIGRlZmluZWQgKENPTkZJR19TWVNfSTJDX01YMzFfUE9SVDMpCiAjZGVmaW5lIEkyQ19CQVNFCTB4NDNmODQwMDAKICNlbHNlCi0jZXJyb3IgImRlZmluZSBDRkdfSTJDX01YMzFfUE9SVHggdG8gdXNlIHRoZSBteDMxIEkyQyBkcml2ZXIiCisjZXJyb3IgImRlZmluZSBDT05GSUdfU1lTX0kyQ19NWDMxX1BPUlR4IHRvIHVzZSB0aGUgbXgzMSBJMkMgZHJpdmVyIgogI2VuZGlmCiAKICNpZmRlZiBERUJVRwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvb21hcDE1MTBfaTJjLmMgYi9kcml2ZXJzL2kyYy9vbWFwMTUxMF9pMmMuYwppbmRleCAzODg5NTFkLi5hNGU2MjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9vbWFwMTUxMF9pMmMuYworKysgYi9kcml2ZXJzL2kyYy9vbWFwMTUxMF9pMmMuYwpAQCAtMjA1LDcgKzIwNSw3IEBACiAJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAJCWlmIChpMmNfcmVhZF9ieXRlIChjaGlwLCBhZGRyICsgaSwgJmJ1ZmZlcltpXSkpIHsKIAkJCXByaW50ZiAoIkkyQyByZWFkOiBJL08gZXJyb3JcbiIpOwotCQkJaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCQkJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJCQlyZXR1cm4gMTsKIAkJfQogCX0KQEAgLTIzMCw3ICsyMzAsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogCQlpZiAoaTJjX3dyaXRlX2J5dGUgKGNoaXAsIGFkZHIgKyBpLCBidWZmZXJbaV0pKSB7CiAJCQlwcmludGYgKCJJMkMgcmVhZDogSS9PIGVycm9yXG4iKTsKLQkJCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwkJCWkyY19pbml0IChDT05GSUdfU1lTX0kyQ19TUEVFRCwgQ09ORklHX1NZU19JMkNfU0xBVkUpOwogCQkJcmV0dXJuIDE7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9vbWFwMjR4eF9pMmMuYyBiL2RyaXZlcnMvaTJjL29tYXAyNHh4X2kyYy5jCmluZGV4IGQxNmNmYjEuLjEzNGRjY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL29tYXAyNHh4X2kyYy5jCisrKyBiL2RyaXZlcnMvaTJjL29tYXAyNHh4X2kyYy5jCkBAIC0yNTIsNyArMjUyLDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKIAkJaWYgKGkyY19yZWFkX2J5dGUgKGNoaXAsIGFkZHIgKyBpLCAmYnVmZmVyW2ldKSkgewogCQkJcHJpbnRmICgiSTJDIHJlYWQ6IEkvTyBlcnJvclxuIik7Ci0JCQlpMmNfaW5pdCAoQ0ZHX0kyQ19TUEVFRCwgQ0ZHX0kyQ19TTEFWRSk7CisJCQlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAkJCXJldHVybiAxOwogCQl9CiAJfQpAQCAtMjc3LDcgKzI3Nyw3IEBACiAJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAJCWlmIChpMmNfd3JpdGVfYnl0ZSAoY2hpcCwgYWRkciArIGksIGJ1ZmZlcltpXSkpIHsKIAkJCXByaW50ZiAoIkkyQyByZWFkOiBJL08gZXJyb3JcbiIpOwotCQkJaTJjX2luaXQgKENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCQkJaTJjX2luaXQgKENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJCQlyZXR1cm4gMTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL3NvZnRfaTJjLmMgYi9kcml2ZXJzL2kyYy9zb2Z0X2kyYy5jCmluZGV4IDIzZGIyZWUuLmViZTYwZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL3NvZnRfaTJjLmMKKysrIGIvZHJpdmVycy9pMmMvc29mdF9pMmMuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2lmZGVmCUNPTkZJR19NUEM4MjYwCQkJLyogb25seSB2YWxpZCBmb3IgTVBDODI2MCAqLwogI2luY2x1ZGUgPGlvcG9ydHMuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KICNlbmRpZgogI2lmZGVmCUNPTkZJR19BVDkxUk05MjAwCQkvKiBuZWVkIHRoaXMgZm9yIHRoZSBhdDkxcm05MjAwICovCiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0zOSw2ICs0MCw5IEBACiAjaWZkZWYgQ09ORklHX0xQQzIyOTIKICNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgogI2VuZGlmCisjaWZkZWYJQ09ORklHX01QQzg2NgkJCS8qIG9ubHkgdmFsaWQgZm9yIE1QQzg2NiAqLworI2luY2x1ZGUgPGFzbS9pby5oPgorI2VuZGlmCiAjaW5jbHVkZSA8aTJjLmg+CiAKIC8qICNkZWZpbmUJREVCVUdfSTJDCSovCkBAIC02OCwxNyArNzIsMjMgQEAKICNkZWZpbmUgUFJJTlREKGZtdCxhcmdzLi4uKQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKENPTkZJR19JMkNfTVVMVElfQlVTKQorc3RhdGljIHVuc2lnbmVkIGludCBpMmNfYnVzX251bSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoImRhdGEiKSkpID0gMDsKKyNlbmRpZiAvKiBDT05GSUdfSTJDX01VTFRJX0JVUyAqLworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMb2NhbCBmdW5jdGlvbnMKICAqLworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQpCiBzdGF0aWMgdm9pZCAgc2VuZF9yZXNldAkodm9pZCk7CisjZW5kaWYKIHN0YXRpYyB2b2lkICBzZW5kX3N0YXJ0CSh2b2lkKTsKIHN0YXRpYyB2b2lkICBzZW5kX3N0b3AJKHZvaWQpOwogc3RhdGljIHZvaWQgIHNlbmRfYWNrCShpbnQpOwogc3RhdGljIGludCAgIHdyaXRlX2J5dGUJKHVjaGFyIGJ5dGUpOwogc3RhdGljIHVjaGFyIHJlYWRfYnl0ZQkoaW50KTsKIAotCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRCkKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlbmQgYSByZXNldCBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mIDkgY2xvY2tzIHdpdGggdGhlIGRhdGEgc2lnbmFsIGhpZ2gKICAqIHRvIGNsb2NrIGFueSBjb25mdXNlZCBkZXZpY2UgYmFjayBpbnRvIGFuIGlkbGUgc3RhdGUuICBBbHNvIHNlbmQgYQpAQCAtODYsMTIgKzk2LDcgQEAKICAqLwogc3RhdGljIHZvaWQgc2VuZF9yZXNldCh2b2lkKQogewotI2lmZGVmCUNPTkZJR19NUEM4MjYwCi0Jdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIEkyQ19QT1JUKTsKLSNlbmRpZgotI2lmZGVmCUNPTkZJR184eHgKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLSNlbmRpZgorCUkyQ19TT0ZUX0RFQ0xBUkFUSU9OUwkvKiBpbnRlbnRpb25hbCB3aXRob3V0ICc7JyAqLwogCWludCBqOwogCiAJSTJDX1NDTCgxKTsKQEAgLTExMSwxOCArMTE2LDE0IEBACiAJc2VuZF9zdG9wKCk7CiAJSTJDX1RSSVNUQVRFOwogfQorI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNUQVJUOiBIaWdoIC0+IExvdyBvbiBTREEgd2hpbGUgU0NMIGlzIEhpZ2gKICAqLwogc3RhdGljIHZvaWQgc2VuZF9zdGFydCh2b2lkKQogewotI2lmZGVmCUNPTkZJR19NUEM4MjYwCi0Jdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIEkyQ19QT1JUKTsKLSNlbmRpZgotI2lmZGVmCUNPTkZJR184eHgKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLSNlbmRpZgorCUkyQ19TT0ZUX0RFQ0xBUkFUSU9OUwkvKiBpbnRlbnRpb25hbCB3aXRob3V0ICc7JyAqLwogCiAJSTJDX0RFTEFZOwogCUkyQ19TREEoMSk7CkBAIC0xMzksMTIgKzE0MCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIHNlbmRfc3RvcCh2b2lkKQogewotI2lmZGVmCUNPTkZJR19NUEM4MjYwCi0Jdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIEkyQ19QT1JUKTsKLSNlbmRpZgotI2lmZGVmCUNPTkZJR184eHgKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLSNlbmRpZgorCUkyQ19TT0ZUX0RFQ0xBUkFUSU9OUwkvKiBpbnRlbnRpb25hbCB3aXRob3V0ICc7JyAqLwogCiAJSTJDX1NDTCgwKTsKIAlJMkNfREVMQVk7CkBAIC0xNjQsMTIgKzE2MCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIHNlbmRfYWNrKGludCBhY2spCiB7Ci0jaWZkZWYJQ09ORklHX01QQzgyNjAKLQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDRkdfSU1NUiwgSTJDX1BPUlQpOwotI2VuZGlmCi0jaWZkZWYJQ09ORklHXzh4eAotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotI2VuZGlmCisJSTJDX1NPRlRfREVDTEFSQVRJT05TCS8qIGludGVudGlvbmFsIHdpdGhvdXQgJzsnICovCiAKIAlJMkNfU0NMKDApOwogCUkyQ19ERUxBWTsKQEAgLTE4OSwxMiArMTgwLDcgQEAKICAqLwogc3RhdGljIGludCB3cml0ZV9ieXRlKHVjaGFyIGRhdGEpCiB7Ci0jaWZkZWYJQ09ORklHX01QQzgyNjAKLQl2b2xhdGlsZSBpb3BvcnRfdCAqaW9wID0gaW9wb3J0X2FkZHIoKGltbWFwX3QgKilDRkdfSU1NUiwgSTJDX1BPUlQpOwotI2VuZGlmCi0jaWZkZWYJQ09ORklHXzh4eAotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOwotI2VuZGlmCisJSTJDX1NPRlRfREVDTEFSQVRJT05TCS8qIGludGVudGlvbmFsIHdpdGhvdXQgJzsnICovCiAJaW50IGo7CiAJaW50IG5hY2s7CiAKQEAgLTIzMCw2ICsyMTYsNTEgQEAKIAlyZXR1cm4obmFjayk7CS8qIG5vdCBhIG5hY2sgaXMgYW4gYWNrICovCiB9CiAKKyNpZiBkZWZpbmVkKENPTkZJR19JMkNfTVVMVElfQlVTKQorLyoKKyAqIEZ1bmN0aW9ucyBmb3IgbXVsdGlwbGUgSTJDIGJ1cyBoYW5kbGluZworICovCit1bnNpZ25lZCBpbnQgaTJjX2dldF9idXNfbnVtKHZvaWQpCit7CisJcmV0dXJuIGkyY19idXNfbnVtOworfQorCitpbnQgaTJjX3NldF9idXNfbnVtKHVuc2lnbmVkIGludCBidXMpCit7CisjaWYgZGVmaW5lZChDT05GSUdfSTJDX01VWCkKKwlpZiAoYnVzIDwgQ09ORklHX1NZU19NQVhfSTJDX0JVUykgeworCQlpMmNfYnVzX251bSA9IGJ1czsKKwl9IGVsc2UgeworCQlpbnQJcmV0OworCisJCXJldCA9IGkyeF9tdXhfc2VsZWN0X211eChidXMpOworCQlpZiAocmV0ID09IDApCisJCQlpMmNfYnVzX251bSA9IGJ1czsKKwkJZWxzZQorCQkJcmV0dXJuIHJldDsKKwl9CisjZWxzZQorCWlmIChidXMgPj0gQ09ORklHX1NZU19NQVhfSTJDX0JVUykKKwkJcmV0dXJuIC0xOworCWkyY19idXNfbnVtID0gYnVzOworI2VuZGlmCisJcmV0dXJuIDA7Cit9CisKKy8qIFRPRE86IGFkZCAxMDAvNDAwayBzd2l0Y2hpbmcgKi8KK3Vuc2lnbmVkIGludCBpMmNfZ2V0X2J1c19zcGVlZCh2b2lkKQoreworCXJldHVybiBDT05GSUdfU1lTX0kyQ19TUEVFRDsKK30KKworaW50IGkyY19zZXRfYnVzX3NwZWVkKHVuc2lnbmVkIGludCBzcGVlZCkKK3sKKwlpZiAoc3BlZWQgIT0gQ09ORklHX1NZU19JMkNfU1BFRUQpCisJCXJldHVybiAtMTsKKworCXJldHVybiAwOworfQorI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIGlmIGFjayA9PSBJMkNfQUNLLCBBQ0sgdGhlIGJ5dGUgc28gY2FuIGNvbnRpbnVlIHJlYWRpbmcsIGVsc2UKQEAgLTIzNywxMiArMjY4LDcgQEAKICAqLwogc3RhdGljIHVjaGFyIHJlYWRfYnl0ZShpbnQgYWNrKQogewotI2lmZGVmCUNPTkZJR19NUEM4MjYwCi0Jdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ0ZHX0lNTVIsIEkyQ19QT1JUKTsKLSNlbmRpZgotI2lmZGVmCUNPTkZJR184eHgKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKLSNlbmRpZgorCUkyQ19TT0ZUX0RFQ0xBUkFUSU9OUwkvKiBpbnRlbnRpb25hbCB3aXRob3V0ICc7JyAqLwogCWludCAgZGF0YTsKIAlpbnQgIGo7CiAKQEAgLTI3NSw2ICszMDEsMTIgQEAKICAqLwogdm9pZCBpMmNfaW5pdCAoaW50IHNwZWVkLCBpbnQgc2xhdmVhZGRyKQogeworI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfSU5JVF9CT0FSRCkKKwkvKiBjYWxsIGJvYXJkIHNwZWNpZmljIGkyYyBidXMgcmVzZXQgcm91dGluZSBiZWZvcmUgYWNjZXNzaW5nIHRoZSAgICovCisJLyogZW52aXJvbm1lbnQsIHdoaWNoIG1pZ2h0IGJlIGluIGEgY2hpcCBvbiB0aGF0IGJ1cy4gRm9yIGRldGFpbHMgICAqLworCS8qIGFib3V0IHRoaXMgcHJvYmxlbSBzZWUgZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMuICAgICAgICAgICAgICAgICAgKi8KKwlpMmNfaW5pdF9ib2FyZCgpOworI2Vsc2UKIAkvKgogCSAqIFdBUk5JTkc6IERvIE5PVCBzYXZlIHNwZWVkIGluIGEgc3RhdGljIHZhcmlhYmxlOiBpZiB0aGUKIAkgKiBJMkMgcm91dGluZXMgYXJlIGNhbGxlZCBiZWZvcmUgUkFNIGlzIGluaXRpYWxpemVkICh0byByZWFkCkBAIC0yODIsNiArMzE0LDcgQEAKIAkgKiBzeXN0ZW0gd2lsbCBjcmFzaC4KIAkgKi8KIAlzZW5kX3Jlc2V0ICgpOworI2VuZGlmCiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMxMyw3ICszNDYsNyBAQAogCVBSSU5URCgiaTJjX3JlYWQ6IGNoaXAgJTAyWCBhZGRyICUwMlggYWxlbiAlZCBidWZmZXIgJXAgbGVuICVkXG4iLAogCQljaGlwLCBhZGRyLCBhbGVuLCBidWZmZXIsIGxlbik7CiAKLSNpZmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjaWZkZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKIAkvKgogCSAqIEVFUFJPTSBjaGlwcyB0aGF0IGltcGxlbWVudCAiYWRkcmVzcyBvdmVyZmxvdyIgYXJlIG9uZXMKIAkgKiBsaWtlIENhdGFseXN0IDI0V0MwNC8wOC8xNiB3aGljaCBoYXMgOS8xMC8xMSBiaXRzIG9mCkBAIC0zMjUsNyArMzU4LDcgQEAKIAkgKiBzdGlsbCBiZSBvbmUgYnl0ZSBiZWNhdXNlIHRoZSBleHRyYSBhZGRyZXNzIGJpdHMgYXJlCiAJICogaGlkZGVuIGluIHRoZSBjaGlwIGFkZHJlc3MuCiAJICovCi0JY2hpcCB8PSAoKGFkZHIgPj4gKGFsZW4gKiA4KSkgJiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKKwljaGlwIHw9ICgoYWRkciA+PiAoYWxlbiAqIDgpKSAmIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XKTsKIAogCVBSSU5URCgiaTJjX3JlYWQ6IGZpeCBhZGRyX292ZXJmbG93OiBjaGlwICUwMlggYWRkciAlMDJYXG4iLAogCQljaGlwLCBhZGRyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL3RzaTEwOF9pMmMuYyBiL2RyaXZlcnMvaTJjL3RzaTEwOF9pMmMuYwppbmRleCA2OTVlMzkzLi5mZGE4MjJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy90c2kxMDhfaTJjLmMKKysrIGIvZHJpdmVycy9pMmMvdHNpMTA4X2kyYy5jCkBAIC02MCwxNCArNjAsMTQgQEAKIAkJY2hhbl9vZmZzZXQgPSBUU0kxMDhfSTJDX1NEUkFNX09GRlNFVDsKIAogCS8qIENoZWNrIGlmIEkyQyBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MgKi8KLQl0ZW1wID0gKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBjaGFuX29mZnNldCArIEkyQ19DTlRSTDIpOworCXRlbXAgPSAqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBjaGFuX29mZnNldCArIEkyQ19DTlRSTDIpOwogCiAJaWYgKDAgPT0gKHRlbXAgJiAoSTJDX0NOVFJMMl9SRF9TVEFUVVMgfCBJMkNfQ05UUkwyX1dSX1NUQVRVUyB8CiAJCQkgIEkyQ19DTlRSTDJfU1RBUlQpKSkgewogCQkvKiBTZXQgZGV2aWNlIGFkZHJlc3MgYW5kIG9wZXJhdGlvbiAocmVhZCA9IDApICovCiAJCXRlbXAgPSAoYnl0ZV9hZGRyIDw8IDE2KSB8ICgoY2hpcF9hZGRyICYgMHgwNykgPDwgOCkgfAogCQkgICAgKChjaGlwX2FkZHIgPj4gMykgJiAweDBGKTsKLQkJKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBjaGFuX29mZnNldCArIEkyQ19DTlRSTDEpID0KKwkJKih1MzIgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgY2hhbl9vZmZzZXQgKyBJMkNfQ05UUkwxKSA9CiAJCSAgICB0ZW1wOwogCiAJCS8qIElzc3VlIHRoZSByZWFkIGNvbW1hbmQKQEAgLTc1LDEzICs3NSwxMyBAQAogCQkgKiAoc2l6ZSA9IDEgYnl0ZSwgbGFuZSA9IDApCiAJCSAqLwogCi0JCSoodTMyICopIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgY2hhbl9vZmZzZXQgKyBJMkNfQ05UUkwyKSA9CisJCSoodTMyICopIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIGNoYW5fb2Zmc2V0ICsgSTJDX0NOVFJMMikgPQogCQkgICAgKEkyQ19DTlRSTDJfU1RBUlQpOwogCiAJCS8qIFdhaXQgdW50aWwgb3BlcmF0aW9uIGNvbXBsZXRlZCAqLwogCQlkbyB7CiAJCQkvKiBSZWFkIEkyQyBvcGVyYXRpb24gc3RhdHVzICovCi0JCQl0ZW1wID0gKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBjaGFuX29mZnNldCArIEkyQ19DTlRSTDIpOworCQkJdGVtcCA9ICoodTMyICopIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIGNoYW5fb2Zmc2V0ICsgSTJDX0NOVFJMMik7CiAKIAkJCWlmICgwID09ICh0ZW1wICYgKEkyQ19DTlRSTDJfUkRfU1RBVFVTIHwgSTJDX0NOVFJMMl9TVEFSVCkpKSB7CiAJCQkJaWYgKDAgPT0gKHRlbXAgJgpAQCAtOTAsNyArOTAsNyBAQAogCQkJCSAgICApIHsKIAkJCQkJb3Bfc3RhdHVzID0gVFNJMTA4X0kyQ19TVUNDRVNTOwogCi0JCQkJCXRlbXAgPSAqKHUzMiAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArCisJCQkJCXRlbXAgPSAqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQkJCQkJCSBjaGFuX29mZnNldCArCiAJCQkJCQkJIEkyQ19SRF9EQVRBKTsKIApAQCAtMTcyLDI1ICsxNzIsMjUgQEAKIAl1MzIgb3Bfc3RhdHVzID0gVFNJMTA4X0kyQ19USU1FT1VUX0VSUjsKIAogCS8qIENoZWNrIGlmIEkyQyBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MgKi8KLQl0ZW1wID0gKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSTJDX09GRlNFVCArIEkyQ19DTlRSTDIpOworCXRlbXAgPSAqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSTJDX09GRlNFVCArIEkyQ19DTlRSTDIpOwogCiAJaWYgKDAgPT0gKHRlbXAgJiAoSTJDX0NOVFJMMl9SRF9TVEFUVVMgfCBJMkNfQ05UUkwyX1dSX1NUQVRVUyB8IEkyQ19DTlRSTDJfU1RBUlQpKSkgewogCQkvKiBQbGFjZSBkYXRhIGludG8gdGhlIEkyQyBUeCBSZWdpc3RlciAqLwotCQkqKHUzMiAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9JMkNfT0ZGU0VUICsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0kyQ19PRkZTRVQgKwogCQkJICBJMkNfVFhfREFUQSkgPSAodTMyKSAqIGJ1ZmZlcjsKIAogCQkvKiBTZXQgZGV2aWNlIGFkZHJlc3MgYW5kIG9wZXJhdGlvbiAgKi8KIAkJdGVtcCA9CiAJCSAgICBJMkNfQ05UUkwxX0kyQ1dSSVRFIHwgKGJ5dGVfYWRkciA8PCAxNikgfAogCQkgICAgKChjaGlwX2FkZHIgJiAweDA3KSA8PCA4KSB8ICgoY2hpcF9hZGRyID4+IDMpICYgMHgwRik7Ci0JCSoodTMyICopIChDRkdfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0kyQ19PRkZTRVQgKworCQkqKHUzMiAqKSAoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSTJDX09GRlNFVCArCiAJCQkgIEkyQ19DTlRSTDEpID0gdGVtcDsKIAogCQkvKiBJc3N1ZSB0aGUgd3JpdGUgY29tbWFuZCAoYXQgdGhpcyBtb21lbnQgYWxsIG90aGVyIHBhcmFtZXRlcnMKIAkJICogYXJlIDAgKHNpemUgPSAxIGJ5dGUsIGxhbmUgPSAwKQogCQkgKi8KIAotCQkqKHUzMiAqKSAoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9JMkNfT0ZGU0VUICsKKwkJKih1MzIgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsgVFNJMTA4X0kyQ19PRkZTRVQgKwogCQkJICBJMkNfQ05UUkwyKSA9IChJMkNfQ05UUkwyX1NUQVJUKTsKIAogCQlvcF9zdGF0dXMgPSBUU0kxMDhfSTJDX1RJTUVPVVRfRVJSOwpAQCAtMTk4LDcgKzE5OCw3IEBACiAJCS8qIFdhaXQgdW50aWwgb3BlcmF0aW9uIGNvbXBsZXRlZCAqLwogCQlkbyB7CiAJCQkvKiBSZWFkIEkyQyBvcGVyYXRpb24gc3RhdHVzICovCi0JCQl0ZW1wID0gKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKyBUU0kxMDhfSTJDX09GRlNFVCArIEkyQ19DTlRSTDIpOworCQkJdGVtcCA9ICoodTMyICopIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArIFRTSTEwOF9JMkNfT0ZGU0VUICsgSTJDX0NOVFJMMik7CiAKIAkJCWlmICgwID09ICh0ZW1wICYgKEkyQ19DTlRSTDJfV1JfU1RBVFVTIHwgSTJDX0NOVFJMMl9TVEFSVCkpKSB7CiAJCQkJaWYgKDAgPT0gKHRlbXAgJgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9pODA0Mi5jIGIvZHJpdmVycy9pbnB1dC9pODA0Mi5jCmluZGV4IGQxNTI3NjguLjU4MDk0YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvaTgwNDIuYworKysgYi9kcml2ZXJzL2lucHV0L2k4MDQyLmMKQEAgLTQxLDcgKzQxLDcgQEAKIAogI2lmZGVmIENPTkZJR19DT05TT0xFX0NVUlNPUgogZXh0ZXJuIHZvaWQgY29uc29sZV9jdXJzb3IgKGludCBzdGF0ZSk7Ci1zdGF0aWMgaW50IGJsaW5rQ291bnQgPSBDRkdfQ09OU09MRV9CTElOS19DT1VOVDsKK3N0YXRpYyBpbnQgYmxpbmtDb3VudCA9IENPTkZJR19TWVNfQ09OU09MRV9CTElOS19DT1VOVDsKIHN0YXRpYyBpbnQgY3Vyc29yX3N0YXRlID0gMDsKICNlbmRpZgogCkBAIC0zNjgsNyArMzY4LDcgQEAKICAgICB7CiAJY3Vyc29yX3N0YXRlIF49IDE7CiAJY29uc29sZV9jdXJzb3IgKGN1cnNvcl9zdGF0ZSk7Ci0JYmxpbmtDb3VudCA9IENGR19DT05TT0xFX0JMSU5LX0NPVU5UOworCWJsaW5rQ291bnQgPSBDT05GSUdfU1lTX0NPTlNPTEVfQkxJTktfQ09VTlQ7CiAJdWRlbGF5ICgxMCk7CiAgICAgfQogI2VuZGlmCkBAIC00MDksNyArNDA5LDcgQEAKIAkgICAgewogCQljdXJzb3Jfc3RhdGUgXj0gMTsKIAkJY29uc29sZV9jdXJzb3IgKGN1cnNvcl9zdGF0ZSk7Ci0JCWJsaW5rQ291bnQgPSBDRkdfQ09OU09MRV9CTElOS19DT1VOVDsKKwkJYmxpbmtDb3VudCA9IENPTkZJR19TWVNfQ09OU09MRV9CTElOS19DT1VOVDsKIAkgICAgfQogCSAgICB1ZGVsYXkgKDEwKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC5jIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC5jCmluZGV4IGE2MzRkNzYuLjUxMmI5ZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQuYworKysgYi9kcml2ZXJzL2lucHV0L2tleWJvYXJkLmMKQEAgLTI1OCwxMiArMjU4LDEyIEBACiAgKiBJbml0CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaWZkZWYgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKKyNpZmRlZiBDT05GSUdfU1lTX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUKIGV4dGVybiBpbnQgb3ZlcndyaXRlX2NvbnNvbGUgKHZvaWQpOwogI2RlZmluZSBPVkVSV1JJVEVfQ09OU09MRSBvdmVyd3JpdGVfY29uc29sZSAoKQogI2Vsc2UKICNkZWZpbmUgT1ZFUldSSVRFX0NPTlNPTEUgMAotI2VuZGlmIC8qIENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FICovCisjZW5kaWYgLyogQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FICovCiAKIGludCBrYmRfaW5pdCAodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvcHMyc2VyLmMgYi9kcml2ZXJzL2lucHV0L3BzMnNlci5jCmluZGV4IDQ4MGZmYTIuLjFhZjNmZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvcHMyc2VyLmMKKysrIGIvZHJpdmVycy9pbnB1dC9wczJzZXIuYwpAQCAtMTgsNyArMTgsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KICNpbmNsdWRlIDxwczJtdWx0Lmg+Ci0jaWYgZGVmaW5lZChDRkdfTlMxNjU1MCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODV4eCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODV4eCkKICNpbmNsdWRlIDxuczE2NTUwLmg+CiAjZW5kaWYKIApAQCAtNTEsOSArNTEsOSBAQAogICAgICAgZGVmaW5lZChDT05GSUdfTVBDODU0OCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODU1NSkKIAogI2lmIENPTkZJR19QUzJTRVJJQUwgPT0gMQotI2RlZmluZSBDT01fQkFTRSAoQ0ZHX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT01fQkFTRSAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKICNlbGlmIENPTkZJR19QUzJTRVJJQUwgPT0gMgotI2RlZmluZSBDT01fQkFTRSAoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT01fQkFTRSAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKICNlbHNlCiAjZXJyb3IgQ09ORklHX1BTMlNFUklBTCBtdXN0IGJlIGluIDEgLi4uIDIKICNlbmRpZgpAQCAtODgsNyArODgsNyBAQAogCS8qIHNlbGVjdCBjbG9jayBzb3VyY2VzICovCiAjaWYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKIAlwc2MtPnBzY19jbG9ja19zZWxlY3QgPSAweGRkMDA7Ci0JYmFzZWNsayA9IChDRkdfTVBDNVhYWF9DTEtJTiArIDE2KSAvIDMyOworCWJhc2VjbGsgPSAoQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOICsgMTYpIC8gMzI7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQogCXBzYy0+cHNjX2Nsb2NrX3NlbGVjdCA9IDA7CiAJYmFzZWNsayA9IChnZC0+aXBiX2NsayArIDE2KSAvIDMyOwpAQCAtMTI5LDggKzEyOSw4IEBACiAKIAljb21fcG9ydC0+aWVyID0gMHgwMDsKIAljb21fcG9ydC0+bGNyID0gTENSX0JLU0UgfCBMQ1JfOE4xOwotCWNvbV9wb3J0LT5kbGwgPSAoQ0ZHX05TMTY1NTBfQ0xLIC8gMTYgLyBQUzJTRVJfQkFVRCkgJiAweGZmOwotCWNvbV9wb3J0LT5kbG0gPSAoKENGR19OUzE2NTUwX0NMSyAvIDE2IC8gUFMyU0VSX0JBVUQpID4+IDgpICYgMHhmZjsKKwljb21fcG9ydC0+ZGxsID0gKENPTkZJR19TWVNfTlMxNjU1MF9DTEsgLyAxNiAvIFBTMlNFUl9CQVVEKSAmIDB4ZmY7CisJY29tX3BvcnQtPmRsbSA9ICgoQ09ORklHX1NZU19OUzE2NTUwX0NMSyAvIDE2IC8gUFMyU0VSX0JBVUQpID4+IDgpICYgMHhmZjsKIAljb21fcG9ydC0+bGNyID0gTENSXzhOMTsKIAljb21fcG9ydC0+bWNyID0gKE1DUl9EVFIgfCBNQ1JfUlRTKTsKIAljb21fcG9ydC0+ZmNyID0gKEZDUl9GSUZPX0VOIHwgRkNSX1JYU1IgfCBGQ1JfVFhTUik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvZnNsX2xhdy5jIGIvZHJpdmVycy9taXNjL2ZzbF9sYXcuYwppbmRleCAyZTk0NjE0Li40NGM5ZTkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvZnNsX2xhdy5jCisrKyBiL2RyaXZlcnMvbWlzYy9mc2xfbGF3LmMKQEAgLTQ2LDEyICs0NiwxMyBAQAogCiB2b2lkIHNldF9sYXcodTggaWR4LCBwaHlzX2FkZHJfdCBhZGRyLCBlbnVtIGxhd19zaXplIHN6LCBlbnVtIGxhd190cmd0X2lmIGlkKQogewotCXZvbGF0aWxlIHUzMiAqYmFzZSA9ICh2b2xhdGlsZSB1MzIgKikoQ0ZHX0lNTVIgKyAweGMwOCk7CisJdm9sYXRpbGUgdTMyICpiYXNlID0gKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX0lNTVIgKyAweGMwOCk7CiAJdm9sYXRpbGUgdTMyICpsYXdiYXIgPSBiYXNlICsgOCAqIGlkeDsKIAl2b2xhdGlsZSB1MzIgKmxhd2FyID0gYmFzZSArIDggKiBpZHggKyAyOwogCiAJZ2QtPnVzZWRfbGF3cyB8PSAoMSA8PCBpZHgpOwogCisJb3V0X2JlMzIobGF3YXIsIDApOwogCW91dF9iZTMyKGxhd2JhciwgYWRkciA+PiAxMik7CiAJb3V0X2JlMzIobGF3YXIsIExBV0FSX0VOIHwgKCh1MzIpaWQgPDwgMjApIHwgKHUzMilzeik7CiAKQEAgLTkxLDcgKzkyLDcgQEAKIAogdm9pZCBkaXNhYmxlX2xhdyh1OCBpZHgpCiB7Ci0Jdm9sYXRpbGUgdTMyICpiYXNlID0gKHZvbGF0aWxlIHUzMiAqKShDRkdfSU1NUiArIDB4YzA4KTsKKwl2b2xhdGlsZSB1MzIgKmJhc2UgPSAodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfSU1NUiArIDB4YzA4KTsKIAl2b2xhdGlsZSB1MzIgKmxhd2JhciA9IGJhc2UgKyA4ICogaWR4OwogCXZvbGF0aWxlIHUzMiAqbGF3YXIgPSBiYXNlICsgOCAqIGlkeCArIDI7CiAKQEAgLTEwNSw3ICsxMDYsNyBAQAogCiB2b2lkIHByaW50X2xhd3Modm9pZCkKIHsKLQl2b2xhdGlsZSB1MzIgKmJhc2UgPSAodm9sYXRpbGUgdTMyICopKENGR19JTU1SICsgMHhjMDgpOworCXZvbGF0aWxlIHUzMiAqYmFzZSA9ICh2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19JTU1SICsgMHhjMDgpOwogCXZvbGF0aWxlIHUzMiAqbGF3YmFyID0gYmFzZTsKIAl2b2xhdGlsZSB1MzIgKmxhd2FyID0gYmFzZSArIDI7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvbnM4NzMwOC5jIGIvZHJpdmVycy9taXNjL25zODczMDguYwppbmRleCA2NjQyYzJlLi45MTMwYTFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvbnM4NzMwOC5jCisrKyBiL2RyaXZlcnMvbWlzYy9uczg3MzA4LmMKQEAgLTI3LDcgKzI3LDcgQEAKIAogdm9pZCBpbml0aWFsaXNlX25zODczMDggKHZvaWQpCiB7Ci0jaWZkZWYgQ0ZHX05TODczMDhfUFMyTU9ECisjaWZkZWYgQ09ORklHX1NZU19OUzg3MzA4X1BTMk1PRAogCXVuc2lnbmVkIGNoYXIgZGF0YTsKIAogCS8qCkBAIC0zOCw4MCArMzgsODAgQEAKIAl3cml0ZV9wbnBfY29uZmlnKFNVUE9FUklPX0NPTkYxLCBkYXRhKTsKICNlbmRpZgogCi0jaWYgKENGR19OUzg3MzA4X0RFVlMgJiBDRkdfTlM4NzMwOF9LQkMxKQotCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9LQkMxLCBDRkdfTlM4NzMwOF9LQkMxX0JBU0UpOworI2lmIChDT05GSUdfU1lTX05TODczMDhfREVWUyAmIENPTkZJR19TWVNfTlM4NzMwOF9LQkMxKQorCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9LQkMxLCBDT05GSUdfU1lTX05TODczMDhfS0JDMV9CQVNFKTsKIAl3cml0ZV9wbnBfY29uZmlnKExVTl9DT05GSUdfUkVHLCAwKTsKIAl3cml0ZV9wbnBfY29uZmlnKENCQVNFX0hJR0gsIDB4MDApOwogCXdyaXRlX3BucF9jb25maWcoQ0JBU0VfTE9XLCAweDY0KTsKICNlbmRpZgogCi0jaWYgKENGR19OUzg3MzA4X0RFVlMgJiBDRkdfTlM4NzMwOF9NT1VTRSkKKyNpZiAoQ09ORklHX1NZU19OUzg3MzA4X0RFVlMgJiBDT05GSUdfU1lTX05TODczMDhfTU9VU0UpCiAJUE5QX0FDVElWQVRFX0RFVklDRShMREVWX01PVVNFKTsKICNlbmRpZgogCi0jaWYgKENGR19OUzg3MzA4X0RFVlMgJiBDRkdfTlM4NzMwOF9SVENfQVBDKQotCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9SVENfQVBDLCBDRkdfTlM4NzMwOF9SVENfQkFTRSk7CisjaWYgKENPTkZJR19TWVNfTlM4NzMwOF9ERVZTICYgQ09ORklHX1NZU19OUzg3MzA4X1JUQ19BUEMpCisJUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX1JUQ19BUEMsIENPTkZJR19TWVNfTlM4NzMwOF9SVENfQkFTRSk7CiAjZW5kaWYKIAotI2lmIChDRkdfTlM4NzMwOF9ERVZTICYgQ0ZHX05TODczMDhfRkRDKQotCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9GREMsIENGR19OUzg3MzA4X0ZEQ19CQVNFKTsKKyNpZiAoQ09ORklHX1NZU19OUzg3MzA4X0RFVlMgJiBDT05GSUdfU1lTX05TODczMDhfRkRDKQorCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9GREMsIENPTkZJR19TWVNfTlM4NzMwOF9GRENfQkFTRSk7CiAJd3JpdGVfcG5wX2NvbmZpZyhMVU5fQ09ORklHX1JFRywgMHg0MCk7CiAjZW5kaWYKIAotI2lmIChDRkdfTlM4NzMwOF9ERVZTICYgQ0ZHX05TODczMDhfUkFSUCkKLQlQTlBfU0VUX0RFVklDRV9CQVNFKExERVZfUEFSUCwgQ0ZHX05TODczMDhfTFBUX0JBU0UpOworI2lmIChDT05GSUdfU1lTX05TODczMDhfREVWUyAmIENPTkZJR19TWVNfTlM4NzMwOF9SQVJQKQorCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9QQVJQLCBDT05GSUdfU1lTX05TODczMDhfTFBUX0JBU0UpOwogI2VuZGlmCiAKLSNpZiAoQ0ZHX05TODczMDhfREVWUyAmIENGR19OUzg3MzA4X1VBUlQxKQotCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9VQVJUMSwgQ0ZHX05TODczMDhfVUFSVDFfQkFTRSk7CisjaWYgKENPTkZJR19TWVNfTlM4NzMwOF9ERVZTICYgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxKQorCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9VQVJUMSwgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxX0JBU0UpOwogI2VuZGlmCiAKLSNpZiAoQ0ZHX05TODczMDhfREVWUyAmIENGR19OUzg3MzA4X1VBUlQyKQotCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9VQVJUMiwgQ0ZHX05TODczMDhfVUFSVDJfQkFTRSk7CisjaWYgKENPTkZJR19TWVNfTlM4NzMwOF9ERVZTICYgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyKQorCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9VQVJUMiwgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyX0JBU0UpOwogI2VuZGlmCiAKLSNpZiAoQ0ZHX05TODczMDhfREVWUyAmIENGR19OUzg3MzA4X0dQSU8pCi0JUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX0dQSU8sIENGR19OUzg3MzA4X0dQSU9fQkFTRSk7CisjaWYgKENPTkZJR19TWVNfTlM4NzMwOF9ERVZTICYgQ09ORklHX1NZU19OUzg3MzA4X0dQSU8pCisJUE5QX1NFVF9ERVZJQ0VfQkFTRShMREVWX0dQSU8sIENPTkZJR19TWVNfTlM4NzMwOF9HUElPX0JBU0UpOwogI2VuZGlmCiAKLSNpZiAoQ0ZHX05TODczMDhfREVWUyAmIENGR19OUzg3MzA4X1BPV1JNQU4pCi0jaWZuZGVmIENGR19OUzg3MzA4X1BXTUFOX0JBU0UKKyNpZiAoQ09ORklHX1NZU19OUzg3MzA4X0RFVlMgJiBDT05GSUdfU1lTX05TODczMDhfUE9XUk1BTikKKyNpZm5kZWYgQ09ORklHX1NZU19OUzg3MzA4X1BXTUFOX0JBU0UKIAlQTlBfQUNUSVZBVEVfREVWSUNFKExERVZfUE9XUk1BTik7CiAjZWxzZQotCVBOUF9TRVRfREVWSUNFX0JBU0UoTERFVl9QT1dSTUFOLCBDRkdfTlM4NzMwOF9QV01BTl9CQVNFKTsKKwlQTlBfU0VUX0RFVklDRV9CQVNFKExERVZfUE9XUk1BTiwgQ09ORklHX1NZU19OUzg3MzA4X1BXTUFOX0JBU0UpOwogCiAJLyoKIAkgKiBFbmFibGUgYWxsIHVuaXRzCiAJICovCi0Jd3JpdGVfcG1fcmVnKENGR19OUzg3MzA4X1BXTUFOX0JBU0UsIFBXTV9GRVIxLCAweDdkKTsKLQl3cml0ZV9wbV9yZWcoQ0ZHX05TODczMDhfUFdNQU5fQkFTRSwgUFdNX0ZFUjIsIDB4ODcpOworCXdyaXRlX3BtX3JlZyhDT05GSUdfU1lTX05TODczMDhfUFdNQU5fQkFTRSwgUFdNX0ZFUjEsIDB4N2QpOworCXdyaXRlX3BtX3JlZyhDT05GSUdfU1lTX05TODczMDhfUFdNQU5fQkFTRSwgUFdNX0ZFUjIsIDB4ODcpOwogCi0jaWZkZWYgQ0ZHX05TODczMDhfUE1DMQotCXdyaXRlX3BtX3JlZyhDRkdfTlM4NzMwOF9QV01BTl9CQVNFLCBQV01fUE1DMSwgQ0ZHX05TODczMDhfUE1DMSk7CisjaWZkZWYgQ09ORklHX1NZU19OUzg3MzA4X1BNQzEKKwl3cml0ZV9wbV9yZWcoQ09ORklHX1NZU19OUzg3MzA4X1BXTUFOX0JBU0UsIFBXTV9QTUMxLCBDT05GSUdfU1lTX05TODczMDhfUE1DMSk7CiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzg3MzA4X1BNQzIKLQl3cml0ZV9wbV9yZWcoQ0ZHX05TODczMDhfUFdNQU5fQkFTRSwgUFdNX1BNQzIsIENGR19OUzg3MzA4X1BNQzIpOworI2lmZGVmIENPTkZJR19TWVNfTlM4NzMwOF9QTUMyCisJd3JpdGVfcG1fcmVnKENPTkZJR19TWVNfTlM4NzMwOF9QV01BTl9CQVNFLCBQV01fUE1DMiwgQ09ORklHX1NZU19OUzg3MzA4X1BNQzIpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfTlM4NzMwOF9QTUMzCi0Jd3JpdGVfcG1fcmVnKENGR19OUzg3MzA4X1BXTUFOX0JBU0UsIFBXTV9QTUMzLCBDRkdfTlM4NzMwOF9QTUMzKTsKKyNpZmRlZiBDT05GSUdfU1lTX05TODczMDhfUE1DMworCXdyaXRlX3BtX3JlZyhDT05GSUdfU1lTX05TODczMDhfUFdNQU5fQkFTRSwgUFdNX1BNQzMsIENPTkZJR19TWVNfTlM4NzMwOF9QTUMzKTsKICNlbmRpZgogI2VuZGlmCiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzg3MzA4X0NTMF9CQVNFCi0JUE5QX1BHQ1NfQ1NMSU5FX0JBU0UoMCwgQ0ZHX05TODczMDhfQ1MwX0JBU0UpOwotCVBOUF9QR0NTX0NTTElORV9DT05GKDAsIENGR19OUzg3MzA4X0NTMF9DT05GKTsKKyNpZmRlZiBDT05GSUdfU1lTX05TODczMDhfQ1MwX0JBU0UKKwlQTlBfUEdDU19DU0xJTkVfQkFTRSgwLCBDT05GSUdfU1lTX05TODczMDhfQ1MwX0JBU0UpOworCVBOUF9QR0NTX0NTTElORV9DT05GKDAsIENPTkZJR19TWVNfTlM4NzMwOF9DUzBfQ09ORik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzg3MzA4X0NTMV9CQVNFCi0JUE5QX1BHQ1NfQ1NMSU5FX0JBU0UoMSwgQ0ZHX05TODczMDhfQ1MxX0JBU0UpOwotCVBOUF9QR0NTX0NTTElORV9DT05GKDEsIENGR19OUzg3MzA4X0NTMV9DT05GKTsKKyNpZmRlZiBDT05GSUdfU1lTX05TODczMDhfQ1MxX0JBU0UKKwlQTlBfUEdDU19DU0xJTkVfQkFTRSgxLCBDT05GSUdfU1lTX05TODczMDhfQ1MxX0JBU0UpOworCVBOUF9QR0NTX0NTTElORV9DT05GKDEsIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQ09ORik7CiAjZW5kaWYKIAotI2lmZGVmIENGR19OUzg3MzA4X0NTMl9CQVNFCi0JUE5QX1BHQ1NfQ1NMSU5FX0JBU0UoMiwgQ0ZHX05TODczMDhfQ1MyX0JBU0UpOwotCVBOUF9QR0NTX0NTTElORV9DT05GKDIsIENGR19OUzg3MzA4X0NTMl9DT05GKTsKKyNpZmRlZiBDT05GSUdfU1lTX05TODczMDhfQ1MyX0JBU0UKKwlQTlBfUEdDU19DU0xJTkVfQkFTRSgyLCBDT05GSUdfU1lTX05TODczMDhfQ1MyX0JBU0UpOworCVBOUF9QR0NTX0NTTElORV9DT05GKDIsIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQ09ORik7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2F0bWVsX21jaS5jIGIvZHJpdmVycy9tbWMvYXRtZWxfbWNpLmMKaW5kZXggYTE1MTQ4OC4uM2FhOTJmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvYXRtZWxfbWNpLmMKKysrIGIvZHJpdmVycy9tbWMvYXRtZWxfbWNpLmMKQEAgLTM4LDE2ICszOCwxNiBAQAogI2RlZmluZSBwcl9kZWJ1ZyguLi4pIGRvIHsgfSB3aGlsZSgwKQogI2VuZGlmCiAKLSNpZm5kZWYgQ0ZHX01NQ19DTEtfT0QKLSNkZWZpbmUgQ0ZHX01NQ19DTEtfT0QJCTE1MDAwMAorI2lmbmRlZiBDT05GSUdfU1lTX01NQ19DTEtfT0QKKyNkZWZpbmUgQ09ORklHX1NZU19NTUNfQ0xLX09ECQkxNTAwMDAKICNlbmRpZgogCi0jaWZuZGVmIENGR19NTUNfQ0xLX1BQCi0jZGVmaW5lIENGR19NTUNfQ0xLX1BQCQk1MDAwMDAwCisjaWZuZGVmIENPTkZJR19TWVNfTU1DX0NMS19QUAorI2RlZmluZSBDT05GSUdfU1lTX01NQ19DTEtfUFAJCTUwMDAwMDAKICNlbmRpZgogCi0jaWZuZGVmIENGR19NTUNfT1BfQ09ORAotI2RlZmluZSBDRkdfTU1DX09QX0NPTkQJCTB4MDAxMDAwMDAKKyNpZm5kZWYgQ09ORklHX1NZU19NTUNfT1BfQ09ORAorI2RlZmluZSBDT05GSUdfU1lTX01NQ19PUF9DT05ECQkweDAwMTAwMDAwCiAjZW5kaWYKIAogI2RlZmluZSBNTUNfREVGQVVMVF9CTEtMRU4JNTEyCkBAIC0zNDksNyArMzQ5LDcgQEAKIAogCW1tY19pZGxlX2NhcmRzKCk7CiAJZm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykgewotCQlyZXQgPSBtbWNfYWNtZChTRF9DTURfQVBQX1NFTkRfT1BfQ09ORCwgQ0ZHX01NQ19PUF9DT05ELAorCQlyZXQgPSBtbWNfYWNtZChTRF9DTURfQVBQX1NFTkRfT1BfQ09ORCwgQ09ORklHX1NZU19NTUNfT1BfQ09ORCwKIAkJCSAgICAgICByZXNwLCBSMyB8IE5JRCk7CiAJCWlmIChyZXQgfHwgKHJlc3BbMF0gJiAweDgwMDAwMDAwKSkKIAkJCWJyZWFrOwpAQCAtMzg1LDcgKzM4NSw3IEBACiAKIAltbWNfaWRsZV9jYXJkcygpOwogCWZvciAoaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKLQkJcmV0ID0gbW1jX2NtZChNTUNfQ01EX1NFTkRfT1BfQ09ORCwgQ0ZHX01NQ19PUF9DT05ELCByZXNwLAorCQlyZXQgPSBtbWNfY21kKE1NQ19DTURfU0VORF9PUF9DT05ELCBDT05GSUdfU1lTX01NQ19PUF9DT05ELCByZXNwLAogCQkJICAgICAgUjMgfCBOSUQgfCBPUEVOX0RSQUlOKTsKIAkJaWYgKHJldCB8fCAocmVzcFswXSAmIDB4ODAwMDAwMDApKQogCQkJYnJlYWs7CkBAIC00MzQsNyArNDM0LDcgQEAKIAl0aW1lb3V0X2Nsa3MgPSBjc2QtPm5zYWMgKiAxMDA7CiAKIAl0aW1lb3V0X2Nsa3MgKz0gKCgodGltZW91dF9ucyArIDkpIC8gMTApCi0JCQkgKiAoKENGR19NTUNfQ0xLX1BQICsgOTk5OTkpIC8gMTAwMDAwKSArIDk5OTkpIC8gMTAwMDA7CisJCQkgKiAoKENPTkZJR19TWVNfTU1DX0NMS19QUCArIDk5OTk5KSAvIDEwMDAwMCkgKyA5OTk5KSAvIDEwMDAwOwogCWlmICghbW1jX2NhcmRfaXNfc2QpCiAJCXRpbWVvdXRfY2xrcyAqPSAxMDsKIAllbHNlCkBAIC00NzUsNyArNDc1LDcgQEAKIAltbWNpX3dyaXRlbChDUiwgTU1DSV9CSVQoTUNJRU4pKTsKIAltbWNpX3dyaXRlbChEVE9SLCAweDVmKTsKIAltbWNpX3dyaXRlbChJRFIsIH4wVUwpOwotCW1jaV9zZXRfbW9kZShDRkdfTU1DX0NMS19PRCwgTU1DX0RFRkFVTFRfQkxLTEVOKTsKKwltY2lfc2V0X21vZGUoQ09ORklHX1NZU19NTUNfQ0xLX09ELCBNTUNfREVGQVVMVF9CTEtMRU4pOwogCiAJbW1jX2NhcmRfaXNfc2QgPSAwOwogCkBAIC01MjAsNyArNTIwLDcgQEAKIAltbWNfYmxrZGV2LmJsa3N6ID0gNTEyOwogCW1tY19ibGtkZXYubGJhID0gKGNzZC5jX3NpemUgKyAxKSAqICgxIDw8IChjc2QuY19zaXplX211bHQgKyAyKSk7CiAKLQltY2lfc2V0X21vZGUoQ0ZHX01NQ19DTEtfUFAsIG1tY19ibGtkZXYuYmxrc3opOworCW1jaV9zZXRfbW9kZShDT05GSUdfU1lTX01NQ19DTEtfUFAsIG1tY19ibGtkZXYuYmxrc3opOwogCiAjaWYgMAogCWlmIChmYXRfcmVnaXN0ZXJfZGV2aWNlKCZtbWNfYmxrZGV2LCAxKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2NmaV9mbGFzaC5jIGIvZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMKaW5kZXggN2JmZGM0My4uYzQwYmY2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMKKysrIGIvZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMKQEAgLTU3LDEyICs1NywxMiBAQAogICogQU1EL1NwYW5zaW9uIEFwcGxpY2F0aW9uIE5vdGU6IE1pZ3JhdGlvbiBmcm9tIFNpbmdsZS1ieXRlIHRvIFRocmVlLWJ5dGUKICAqICAgRGV2aWNlIElEcywgUHVibGljYXRpb24gTnVtYmVyIDI1NTM4IFJldmlzaW9uIEEsIE5vdmVtYmVyIDgsIDIwMDEKICAqCi0gKiBEZWZpbmUgQ0ZHX1dSSVRFX1NXQVBQRURfREFUQSwgaWYgeW91IGhhdmUgdG8gc3dhcCB0aGUgQnl0ZXMgYmV0d2VlbgorICogRGVmaW5lIENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBLCBpZiB5b3UgaGF2ZSB0byBzd2FwIHRoZSBCeXRlcyBiZXR3ZWVuCiAgKiByZWFkaW5nIGFuZCB3cml0aW5nIC4uLiAoeWVzIHRoZXJlIGlzIHN1Y2ggYSBIYXJkd2FyZSkuCiAgKi8KIAotI2lmbmRlZiBDRkdfRkxBU0hfQkFOS1NfTElTVAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7IENGR19GTEFTSF9CQVNFIH0KKyNpZm5kZWYgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAjZW5kaWYKIAogI2RlZmluZSBGTEFTSF9DTURfQ0ZJCQkJMHg5OApAQCAtMTQzLDcgKzE0Myw3IEBACiAjZGVmaW5lIENGSV9DTURTRVRfU1NUCQkJMjU4CiAjZGVmaW5lIENGSV9DTURTRVRfSU5URUxfUFJPR19SRUdJT05TCTUxMgogCi0jaWZkZWYgQ0ZHX0ZMQVNIX0NGSV9BTURfUkVTRVQgLyogbmVlZGVkIGZvciBTVE1fSURfMjlXMzIwREIgb24gVUMxMDAgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQgLyogbmVlZGVkIGZvciBTVE1fSURfMjlXMzIwREIgb24gVUMxMDAgKi8KICMgdW5kZWYgIEZMQVNIX0NNRF9SRVNFVAogIyBkZWZpbmUgRkxBU0hfQ01EX1JFU0VUCUFNRF9DTURfUkVTRVQgLyogdXNlIEFNRC1SZXNldCBpbnN0ZWFkICovCiAjZW5kaWYKQEAgLTE1OSwxMSArMTU5LDExIEBACiAKIHN0YXRpYyB1aW50IGZsYXNoX29mZnNldF9jZmlbMl0gPSB7IEZMQVNIX09GRlNFVF9DRkksIEZMQVNIX09GRlNFVF9DRklfQUxUIH07CiAKLS8qIHVzZSBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVCBpZiBkZWZpbmVkICovCi0jaWZkZWYgQ0ZHX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QKLSMgZGVmaW5lIENGSV9NQVhfRkxBU0hfQkFOS1MJQ0ZHX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QKKy8qIHVzZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QgaWYgZGVmaW5lZCAqLworI2lmZGVmIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAorIyBkZWZpbmUgQ0ZJX01BWF9GTEFTSF9CQU5LUwlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QKICNlbHNlCi0jIGRlZmluZSBDRklfTUFYX0ZMQVNIX0JBTktTCUNGR19NQVhfRkxBU0hfQkFOS1MKKyMgZGVmaW5lIENGSV9NQVhfRkxBU0hfQkFOS1MJQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MKICNlbmRpZgogCiBmbGFzaF9pbmZvX3QgZmxhc2hfaW5mb1tDRklfTUFYX0ZMQVNIX0JBTktTXTsJLyogRkxBU0ggY2hpcHMgaW5mbyAqLwpAQCAtMTcxLDggKzE3MSw4IEBACiAvKgogICogQ2hlY2sgaWYgY2hpcCB3aWR0aCBpcyBkZWZpbmVkLiBJZiBub3QsIHN0YXJ0IGRldGVjdGluZyB3aXRoIDhiaXQuCiAgKi8KLSNpZm5kZWYgQ0ZHX0ZMQVNIX0NGSV9XSURUSAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV84QklUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV84QklUCiAjZW5kaWYKIAogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGZsYXNoX3NlY3RfdDsKQEAgLTI1NSwyMCArMjU1LDIwIEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkgfHwgZGVmaW5lZChDT05GSUdfRU5WX0FERFJfUkVEVU5EKSB8fCAoQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRSkKKyNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpIHx8IGRlZmluZWQoQ09ORklHX0VOVl9BRERSX1JFRFVORCkgfHwgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKIHN0YXRpYyBmbGFzaF9pbmZvX3QgKmZsYXNoX2dldF9pbmZvKHVsb25nIGJhc2UpCiB7CiAJaW50IGk7CiAJZmxhc2hfaW5mb190ICogaW5mbyA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKIAkJaW5mbyA9ICYgZmxhc2hfaW5mb1tpXTsKIAkJaWYgKGluZm8tPnNpemUgJiYgaW5mby0+c3RhcnRbMF0gPD0gYmFzZSAmJgogCQkgICAgYmFzZSA8PSBpbmZvLT5zdGFydFswXSArIGluZm8tPnNpemUgLSAxKQogCQkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIGkgPT0gQ0ZHX01BWF9GTEFTSF9CQU5LUyA/IDAgOiBpbmZvOworCXJldHVybiBpID09IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTID8gMCA6IGluZm87CiB9CiAjZW5kaWYKIApAQCAtMzA5LDcgKzMwOSw3IEBACiAJaW50IGk7CiAJaW50IGN3b3JkX29mZnNldDsKIAlpbnQgY3Bfb2Zmc2V0OwotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSB8fCBkZWZpbmVkKENGR19XUklURV9TV0FQUEVEX0RBVEEpCisjaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pIHx8IGRlZmluZWQoQ09ORklHX1NZU19XUklURV9TV0FQUEVEX0RBVEEpCiAJdTMyIGNtZF9sZSA9IGNwdV90b19sZTMyKGNtZCk7CiAjZW5kaWYKIAl1Y2hhciB2YWw7CkBAIC0zMTcsNyArMzE3LDcgQEAKIAogCWZvciAoaSA9IGluZm8tPnBvcnR3aWR0aDsgaSA+IDA7IGktLSl7CiAJCWN3b3JkX29mZnNldCA9IChpbmZvLT5wb3J0d2lkdGgtaSklaW5mby0+Y2hpcHdpZHRoOwotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSB8fCBkZWZpbmVkKENGR19XUklURV9TV0FQUEVEX0RBVEEpCisjaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU4pIHx8IGRlZmluZWQoQ09ORklHX1NZU19XUklURV9TV0FQUEVEX0RBVEEpCiAJCWNwX29mZnNldCA9IGluZm8tPnBvcnR3aWR0aCAtIGk7CiAJCXZhbCA9ICooKHVjaGFyKikmY21kX2xlICsgY3dvcmRfb2Zmc2V0KTsKICNlbHNlCkBAIC0zNzQsNyArMzc0LDcgQEAKIAl1Y2hhciByZXR2YWw7CiAKIAljcCA9IGZsYXNoX21hcCAoaW5mbywgMCwgb2Zmc2V0KTsKLSNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikgfHwgZGVmaW5lZChDRkdfV1JJVEVfU1dBUFBFRF9EQVRBKQorI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBKQogCXJldHZhbCA9IGZsYXNoX3JlYWQ4KGNwKTsKICNlbHNlCiAJcmV0dmFsID0gZmxhc2hfcmVhZDgoY3AgKyBpbmZvLT5wb3J0d2lkdGggLSAxKTsKQEAgLTQxOSw3ICs0MTksNyBAQAogCQlkZWJ1ZyAoImFkZHJbJXhdID0gMHgleFxuIiwgeCwgZmxhc2hfcmVhZDgoYWRkciArIHgpKTsKIAl9CiAjZW5kaWYKLSNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikgfHwgZGVmaW5lZChDRkdfV1JJVEVfU1dBUFBFRF9EQVRBKQorI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSB8fCBkZWZpbmVkKENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBKQogCXJldHZhbCA9ICgoZmxhc2hfcmVhZDgoYWRkcikgPDwgMTYpIHwKIAkJICAoZmxhc2hfcmVhZDgoYWRkciArIGluZm8tPnBvcnR3aWR0aCkgPDwgMjQpIHwKIAkJICAoZmxhc2hfcmVhZDgoYWRkciArIDIgKiBpbmZvLT5wb3J0d2lkdGgpKSB8CkBAIC02NDYsOCArNjQ2LDggQEAKIHsKIAl1bG9uZyBzdGFydDsKIAotI2lmIENGR19IWiAhPSAxMDAwCi0JdG91dCAqPSBDRkdfSFovMTAwMDsKKyNpZiBDT05GSUdfU1lTX0haICE9IDEwMDAKKwl0b3V0ICo9IENPTkZJR19TWVNfSFovMTAwMDsKICNlbmRpZgogCiAJLyogV2FpdCBmb3IgY29tbWFuZCBjb21wbGV0aW9uICovCkBAIC03MTYsNyArNzE2LDcgQEAKICAqLwogc3RhdGljIHZvaWQgZmxhc2hfYWRkX2J5dGUgKGZsYXNoX2luZm9fdCAqIGluZm8sIGNmaXdvcmRfdCAqIGN3b3JkLCB1Y2hhciBjKQogewotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChDRkdfV1JJVEVfU1dBUFBFRF9EQVRBKQorI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX1dSSVRFX1NXQVBQRURfREFUQSkKIAl1bnNpZ25lZCBzaG9ydAl3OwogCXVuc2lnbmVkIGludAlsOwogCXVuc2lnbmVkIGxvbmcgbG9uZyBsbDsKQEAgLTcyNyw3ICs3MjcsNyBAQAogCQljd29yZC0+YyA9IGM7CiAJCWJyZWFrOwogCWNhc2UgRkxBU0hfQ0ZJXzE2QklUOgotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChDRkdfV1JJVEVfU1dBUFBFRF9EQVRBKQorI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX1dSSVRFX1NXQVBQRURfREFUQSkKIAkJdyA9IGM7CiAJCXcgPDw9IDg7CiAJCWN3b3JkLT53ID0gKGN3b3JkLT53ID4+IDgpIHwgdzsKQEAgLTczNiw3ICs3MzYsNyBAQAogI2VuZGlmCiAJCWJyZWFrOwogCWNhc2UgRkxBU0hfQ0ZJXzMyQklUOgotI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChDRkdfV1JJVEVfU1dBUFBFRF9EQVRBKQorI2lmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX1dSSVRFX1NXQVBQRURfREFUQSkKIAkJbCA9IGM7CiAJCWwgPDw9IDI0OwogCQljd29yZC0+bCA9IChjd29yZC0+bCA+PiA4KSB8IGw7CkBAIC03NDUsNyArNzQ1LDcgQEAKICNlbmRpZgogCQlicmVhazsKIAljYXNlIEZMQVNIX0NGSV82NEJJVDoKLSNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikgJiYgIWRlZmluZWQoQ0ZHX1dSSVRFX1NXQVBQRURfREFUQSkKKyNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikgJiYgIWRlZmluZWQoQ09ORklHX1NZU19XUklURV9TV0FQUEVEX0RBVEEpCiAJCWxsID0gYzsKIAkJbGwgPDw9IDU2OwogCQljd29yZC0+bGwgPSAoY3dvcmQtPmxsID4+IDgpIHwgbGw7CkBAIC04NTAsNyArODUwLDcgQEAKIAkJCQkJaW5mby0+d3JpdGVfdG91dCwgIndyaXRlIik7CiB9CiAKLSNpZmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCiBzdGF0aWMgaW50IGZsYXNoX3dyaXRlX2NmaWJ1ZmZlciAoZmxhc2hfaW5mb190ICogaW5mbywgdWxvbmcgZGVzdCwgdWNoYXIgKiBjcCwKIAkJCQkgIGludCBsZW4pCkBAIC0xMDI0LDcgKzEwMjQsNyBAQAogCXVubWFwX3BoeXNtZW0oZHN0LCBsZW4pOwogCXJldHVybiByZXRjb2RlOwogfQotI2VuZGlmIC8qIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTE3Myw3ICsxMTczLDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+c2VjdG9yX2NvdW50OyArK2kpIHsKIAkJaWYgKChpICUgNSkgPT0gMCkKIAkJCXByaW50ZiAoIlxuIik7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAkJaW50IGs7CiAJCWludCBzaXplOwogCQlpbnQgZXJhc2VkOwpAQCAtMTE5OCw3ICsxMTk4LDcgQEAKIAkJCWluZm8tPnN0YXJ0W2ldLAogCQkJZXJhc2VkID8gJ0UnIDogJyAnLAogCQkJaW5mby0+cHJvdGVjdFtpXSA/ICJSTyIgOiAiICAiKTsKLSNlbHNlCS8qICEgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8gKi8KKyNlbHNlCS8qICEgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPICovCiAJCXByaW50ZiAoIiAgJTA4bFggICAlcyAiLAogCQkJaW5mby0+c3RhcnRbaV0sCiAJCQlpbmZvLT5wcm90ZWN0W2ldID8gIlJPIiA6ICIgICIpOwpAQCAtMTI0Miw3ICsxMjQyLDcgQEAKIAlpbnQgYWxuOwogCWNmaXdvcmRfdCBjd29yZDsKIAlpbnQgaSwgcmM7Ci0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAlpbnQgYnVmZmVyZWRfc2l6ZTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19GTEFTSF9TSE9XX1BST0dSRVNTCkBAIC0xMjg2LDcgKzEyODYsNyBAQAogCX0KIAogCS8qIGhhbmRsZSB0aGUgYWxpZ25lZCBwYXJ0ICovCi0jaWZkZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAlidWZmZXJlZF9zaXplID0gKGluZm8tPnBvcnR3aWR0aCAvIGluZm8tPmNoaXB3aWR0aCk7CiAJYnVmZmVyZWRfc2l6ZSAqPSBpbmZvLT5idWZmZXJfc2l6ZTsKIAl3aGlsZSAoY250ID49IGluZm8tPnBvcnR3aWR0aCkgewpAQCAtMTMyNiw3ICsxMzI2LDcgQEAKIAkJY250IC09IGluZm8tPnBvcnR3aWR0aDsKIAkJRkxBU0hfU0hPV19QUk9HUkVTUyhzY2FsZSwgZG90cywgZGlnaXQsIGluZm8tPnBvcnR3aWR0aCk7CiAJfQotI2VuZGlmIC8qIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCiAKIAlpZiAoY250ID09IDApIHsKIAkJcmV0dXJuICgwKTsKQEAgLTEzNTAsNyArMTM1MCw3IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAKIGludCBmbGFzaF9yZWFsX3Byb3RlY3QgKGZsYXNoX2luZm9fdCAqIGluZm8sIGxvbmcgc2VjdG9yLCBpbnQgcHJvdCkKIHsKQEAgLTE0NTcsNyArMTQ1Nyw3IEBACiAJZmxhc2hfdW5tYXAoaW5mbywgMCwgRkxBU0hfT0ZGU0VUX0lOVEVMX1BST1RFQ1RJT04sIHNyYyk7CiB9CiAKLSNlbmRpZiAvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgZXJhc2UgcmVnaW9ucyBpbiB0aGUgQ0ZJIFFSWSBzdHJ1Y3R1cmUuCkBAIC0xNTAxLDcgKzE1MDEsNyBAQAogCWNtZHNldF9pbnRlbF9yZWFkX2plZGVjX2lkcyhpbmZvKTsKIAlmbGFzaF93cml0ZV9jbWQoaW5mbywgMCwgaW5mby0+Y2ZpX29mZnNldCwgRkxBU0hfQ01EX0NGSSk7CiAKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCS8qIHJlYWQgbGVnYWN5IGxvY2svdW5sb2NrIGJpdCBmcm9tIGludGVsIGZsYXNoICovCiAJaWYgKGluZm8tPmV4dF9hZGRyKSB7CiAJCWluZm8tPmxlZ2FjeV91bmxvY2sgPSBmbGFzaF9yZWFkX3VjaGFyIChpbmZvLApAQCAtMTcxNyw3ICsxNzE3LDcgQEAKIHsKIAlkZWJ1ZyAoImZsYXNoIGRldGVjdCBjZmlcbiIpOwogCi0JZm9yIChpbmZvLT5wb3J0d2lkdGggPSBDRkdfRkxBU0hfQ0ZJX1dJRFRIOworCWZvciAoaW5mby0+cG9ydHdpZHRoID0gQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEg7CiAJICAgICBpbmZvLT5wb3J0d2lkdGggPD0gRkxBU0hfQ0ZJXzY0QklUOyBpbmZvLT5wb3J0d2lkdGggPDw9IDEpIHsKIAkJZm9yIChpbmZvLT5jaGlwd2lkdGggPSBGTEFTSF9DRklfQlk4OwogCQkgICAgIGluZm8tPmNoaXB3aWR0aCA8PSBpbmZvLT5wb3J0d2lkdGg7CkBAIC0xNzkzLDcgKzE3OTMsNyBAQAogCiAJaW5mby0+ZXh0X2FkZHIgPSAwOwogCWluZm8tPmNmaV92ZXJzaW9uID0gMDsKLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCWluZm8tPmxlZ2FjeV91bmxvY2sgPSAwOwogI2VuZGlmCiAKQEAgLTE4ODIsNyArMTg4Miw3IEBACiAJCQlkZWJ1ZyAoImVyYXNlX3JlZ2lvbl9jb3VudCA9ICVkIGVyYXNlX3JlZ2lvbl9zaXplID0gJWRcbiIsCiAJCQkJZXJhc2VfcmVnaW9uX2NvdW50LCBlcmFzZV9yZWdpb25fc2l6ZSk7CiAJCQlmb3IgKGogPSAwOyBqIDwgZXJhc2VfcmVnaW9uX2NvdW50OyBqKyspIHsKLQkJCQlpZiAoc2VjdF9jbnQgPj0gQ0ZHX01BWF9GTEFTSF9TRUNUKSB7CisJCQkJaWYgKHNlY3RfY250ID49IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJCQkJcHJpbnRmKCJFUlJPUjogdG9vIG1hbnkgZmxhc2ggc2VjdG9yc1xuIik7CiAJCQkJCWJyZWFrOwogCQkJCX0KQEAgLTE5NDcsNDEgKzE5NDcsNDEgQEAKIHsKIAl1bnNpZ25lZCBsb25nIHNpemUgPSAwOwogCWludCBpOwotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1QpCiAJc3RydWN0IGFwbF9zIHsKIAkJdWxvbmcgc3RhcnQ7CiAJCXVsb25nIHNpemU7Ci0JfSBhcGxbXSA9IENGR19GTEFTSF9BVVRPUFJPVEVDVF9MSVNUOworCX0gYXBsW10gPSBDT05GSUdfU1lTX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1Q7CiAjZW5kaWYKIAotI2lmZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAJY2hhciAqcyA9IGdldGVudigidW5sb2NrIik7CiAjZW5kaWYKIAotI2RlZmluZSBCQU5LX0JBU0UoaSkJKCgodW5zaWduZWQgbG9uZyBbQ0ZJX01BWF9GTEFTSF9CQU5LU10pQ0ZHX0ZMQVNIX0JBTktTX0xJU1QpW2ldKQorI2RlZmluZSBCQU5LX0JBU0UoaSkJKCgodW5zaWduZWQgbG9uZyBbQ0ZJX01BWF9GTEFTSF9CQU5LU10pQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUKVtpXSkKIAogCS8qIEluaXQ6IG5vIEZMQVNIZXMga25vd24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAKIAkJaWYgKCFmbGFzaF9kZXRlY3RfbGVnYWN5IChCQU5LX0JBU0UoaSksIGkpKQogCQkJZmxhc2hfZ2V0X3NpemUgKEJBTktfQkFTRShpKSwgaSk7CiAJCXNpemUgKz0gZmxhc2hfaW5mb1tpXS5zaXplOwogCQlpZiAoZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9PSBGTEFTSF9VTktOT1dOKSB7Ci0jaWZuZGVmIENGR19GTEFTSF9RVUlFVF9URVNUCisjaWZuZGVmIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAogCQkJcHJpbnRmICgiIyMgVW5rbm93biBGTEFTSCBvbiBCYW5rICVkICIKIAkJCQkiLSBTaXplID0gMHglMDhseCA9ICVsZCBNQlxuIiwKIAkJCQlpKzEsIGZsYXNoX2luZm9baV0uc2l6ZSwKIAkJCQlmbGFzaF9pbmZvW2ldLnNpemUgPDwgMjApOwotI2VuZGlmIC8qIENGR19GTEFTSF9RVUlFVF9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUICovCiAJCX0KLSNpZmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCQllbHNlIGlmICgocyAhPSBOVUxMKSAmJiAoc3RyY21wKHMsICJ5ZXMiKSA9PSAwKSkgewogCQkJLyoKIAkJCSAqIE9ubHkgdGhlIFUtQm9vdCBpbWFnZSBhbmQgaXQncyBlbnZpcm9ubWVudAogCQkJICogaXMgcHJvdGVjdGVkLCBhbGwgb3RoZXIgc2VjdG9ycyBhcmUKIAkJCSAqIHVucHJvdGVjdGVkICh1bmxvY2tlZCkgaWYgZmxhc2ggaGFyZHdhcmUKLQkJCSAqIHByb3RlY3Rpb24gaXMgdXNlZCAoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisJCQkgKiBwcm90ZWN0aW9uIGlzIHVzZWQgKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJCSAqIGFuZCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgInVubG9jayIgaXMKIAkJCSAqIHNldCB0byAieWVzIi4KIAkJCSAqLwpAQCAtMjAyMiwxNSArMjAyMiwxNSBAQAogCQkJCQkgICAgICAgJmZsYXNoX2luZm9baV0pOwogCQkJfQogCQl9Ci0jZW5kaWYgLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAl9CiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwotI2lmIChDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFKQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAJZmxhc2hfcHJvdGVjdCAoRkxBR19QUk9URUNUX1NFVCwKLQkJICAgICAgIENGR19NT05JVE9SX0JBU0UsCi0JCSAgICAgICBDRkdfTU9OSVRPUl9CQVNFICsgbW9uaXRvcl9mbGFzaF9sZW4gIC0gMSwKLQkJICAgICAgIGZsYXNoX2dldF9pbmZvKENGR19NT05JVE9SX0JBU0UpKTsKKwkJICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLAorCQkgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBtb25pdG9yX2ZsYXNoX2xlbiAgLSAxLAorCQkgICAgICAgZmxhc2hfZ2V0X2luZm8oQ09ORklHX1NZU19NT05JVE9SX0JBU0UpKTsKICNlbmRpZgogCiAJLyogRW52aXJvbm1lbnQgcHJvdGVjdGlvbiBPTiBieSBkZWZhdWx0ICovCkBAIC0yMDQ5LDcgKzIwNDksNyBAQAogCQkgICAgICAgZmxhc2hfZ2V0X2luZm8oQ09ORklHX0VOVl9BRERSX1JFRFVORCkpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9BVVRPUFJPVEVDVF9MSVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9BVVRPUFJPVEVDVF9MSVNUKQogCWZvciAoaSA9IDA7IGkgPCAoc2l6ZW9mKGFwbCkgLyBzaXplb2Yoc3RydWN0IGFwbF9zKSk7IGkrKykgewogCQlkZWJ1ZygiYXV0b3Byb3RlY3RpbmcgZnJvbSAlMDh4IHRvICUwOHhcbiIsCiAJCSAgICAgIGFwbFtpXS5zdGFydCwgYXBsW2ldLnN0YXJ0ICsgYXBsW2ldLnNpemUgLSAxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2RhdGFmbGFzaC5jIGIvZHJpdmVycy9tdGQvZGF0YWZsYXNoLmMKaW5kZXggMDQ5ZGE2OS4uMjAxZTUxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvZGF0YWZsYXNoLmMKKysrIGIvZHJpdmVycy9tdGQvZGF0YWZsYXNoLmMKQEAgLTQwLDEyICs0MCwxMiBAQAogCWludCBkZmNvZGU7CiAJaW50IHBhcnQ7CiAJaW50IGxhc3RfcGFydDsKLQlpbnQgZm91bmRbQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1NdOworCWludCBmb3VuZFtDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1NdOwogCXVuc2lnbmVkIGNoYXIgcHJvdGVjdGVkOwogCiAJQVQ5MUZfU3BpSW5pdCAoKTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKSB7CiAJCWZvdW5kW2ldID0gMDsKIAkJZGF0YWZsYXNoX2luZm9baV0uRGVzYy5zdGF0ZSA9IElETEU7CiAJCWRhdGFmbGFzaF9pbmZvW2ldLmlkID0gMDsKQEAgLTE3OSw3ICsxNzksNyBAQAogCXVuc2lnbmVkIGNoYXIgc1szMl07CS8qIFdpbGwgZml0IGEgbG9uZyBpbnQgaW4gaGV4ICovCiAJdW5zaWduZWQgbG9uZyBzdGFydDsKIAotCWZvciAoaSA9IDAsIHBhcnQ9IDA7IGkgPCBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMCwgcGFydD0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKSB7CiAJCWZvcihqID0gMDsgajxOQl9EQVRBRkxBU0hfQVJFQTsgaisrKSB7CiAJCQllbnYgPSBhcmVhX2xpc3RbcGFydF0uc2V0ZW52OwogCQkJLyogU2V0IHRoZSBlbnZpcm9ubWVudCBhY2NvcmRpbmcgdG8gdGhlIGxhYmVsLi4uKi8KQEAgLTE5OCw3ICsxOTgsNyBAQAogewogCWludCBpLCBqOwogCi0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTOyBpKyspIHsKIAkJaWYgKGRhdGFmbGFzaF9pbmZvW2ldLmlkICE9IDApIHsKIAkJCXByaW50ZigiRGF0YUZsYXNoOiIpOwogCQkJc3dpdGNoIChkYXRhZmxhc2hfaW5mb1tpXS5pZCkgewpAQCAtMjU4LDcgKzI1OCw3IEBACiAJY2hhciBhZGRyX3ZhbGlkID0gMDsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1M7IGkrKykKIAkJaWYgKCBkYXRhZmxhc2hfaW5mb1tpXS5pZAogCQkJJiYgKCgoKGludCkgKmFkZHIpICYgMHhGRjAwMDAwMCkgPT0KIAkJCWRhdGFmbGFzaF9pbmZvW2ldLmxvZ2ljYWxfYWRkcmVzcykpIHsKQEAgLTI4NCw3ICsyODQsNyBAQAogCWludCBhZGRyX3ZhbGlkID0gMDsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUzsgaSsrKSB7CiAJCWlmICgoKChpbnQpIGFkZHIpICYgMHhGRjAwMDAwMCkgPT0KIAkJCWRhdGFmbGFzaF9pbmZvW2ldLmxvZ2ljYWxfYWRkcmVzcykgewogCQkJYWRkcl92YWxpZCA9IDE7CkBAIC0zNDksNyArMzQ5LDcgQEAKIAlpbnQgaSxqLCBhcmVhMSwgYXJlYTIsIGFkZHJfdmFsaWQgPSAwOwogCiAJLyogZmluZCBkYXRhZmxhc2ggKi8KLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1M7IGkrKykgewogCQlpZiAoKCgoaW50KSBzdGFydF9hZGRyKSAmIDB4RjAwMDAwMDApID09CiAJCQlkYXRhZmxhc2hfaW5mb1tpXS5sb2dpY2FsX2FkZHJlc3MpIHsKIAkJCQlhZGRyX3ZhbGlkID0gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL2plZGVjX2ZsYXNoLmMgYi9kcml2ZXJzL210ZC9qZWRlY19mbGFzaC5jCmluZGV4IDAyMDY0N2EuLjIyNmUxZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL2plZGVjX2ZsYXNoLmMKKysrIGIvZHJpdmVycy9tdGQvamVkZWNfZmxhc2guYwpAQCAtMTcwLDcgKzE3MCw3IEBACiAjZGVmaW5lIFNJWkVfOE1pQiAgIDIzCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kX2ZsYXNoX2luZm8gamVkZWNfdGFibGVbXSA9IHsKLSNpZmRlZiBDRkdfRkxBU0hfTEVHQUNZXzI1Nkt4OAorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfTEVHQUNZXzI1Nkt4OAogCXsKIAkJLm1mcl9pZAkJPSBNQU5VRkFDVFVSRVJfU1NULAogCQkuZGV2X2lkCQk9IFNTVDM5TEYwMjAsCkBAIC0xODYsNyArMTg2LDcgQEAKIAkJfQogCX0sCiAjZW5kaWYKLSNpZmRlZiBDRkdfRkxBU0hfTEVHQUNZXzUxMkt4OAorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfTEVHQUNZXzUxMkt4OAogCXsKIAkJLm1mcl9pZAkJPSBNQU5VRkFDVFVSRVJfQU1ELAogCQkuZGV2X2lkCQk9IEFNMjlMVjA0MEIsCkBAIC0yMTYsNyArMjE2LDcgQEAKIAkJfQogCX0sCiAjZW5kaWYKLSNpZmRlZiBDRkdfRkxBU0hfTEVHQUNZXzUxMkt4MTYKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0xFR0FDWV81MTJLeDE2CiAJewogCQkubWZyX2lkCQk9IE1BTlVGQUNUVVJFUl9BTUQsCiAJCS5kZXZfaWQJCT0gQU0yOUxWNDAwQkIsCkBAIC0zMDcsNyArMzA3LDcgQEAKIAkJZGVidWcgKCJlcmFzZV9yZWdpb25fY291bnQgPSAlZCBlcmFzZV9yZWdpb25fc2l6ZSA9ICVkXG4iLAogCQkgICAgICAgZXJhc2VfcmVnaW9uX2NvdW50LCBlcmFzZV9yZWdpb25fc2l6ZSk7CiAJCWZvciAoaiA9IDA7IGogPCBlcmFzZV9yZWdpb25fY291bnQ7IGorKykgewotCQkJaWYgKHNlY3RfY250ID49IENGR19NQVhfRkxBU0hfU0VDVCkgeworCQkJaWYgKHNlY3RfY250ID49IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QpIHsKIAkJCQlwcmludGYoIkVSUk9SOiB0b28gbWFueSBmbGFzaCBzZWN0b3JzXG4iKTsKIAkJCQlicmVhazsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvZnNsX2VsYmNfbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9mc2xfZWxiY19uYW5kLmMKaW5kZXggNDM1MTgyNC4uN2RkYTZjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9mc2xfZWxiY19uYW5kLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9mc2xfZWxiY19uYW5kLmMKQEAgLTY5Myw3ICs2OTMsNyBAQAogCiBzdGF0aWMgdm9pZCBmc2xfZWxiY19jdHJsX2luaXQodm9pZCkKIHsKLQlpbW1hcF90ICppbSA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAogCWVsYmNfY3RybCA9IGt6YWxsb2Moc2l6ZW9mKCplbGJjX2N0cmwpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWVsYmNfY3RybCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9uYW5kLmMKaW5kZXggNzFhMGU0Yi4uZWViMTlmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9uYW5kLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9uYW5kLmMKQEAgLTI0LDE1ICsyNCwxNSBAQAogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG5hbmQuaD4KIAotI2lmbmRlZiBDRkdfTkFORF9CQVNFX0xJU1QKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUIHsgQ0ZHX05BTkRfQkFTRSB9CisjaWZuZGVmIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVCB7IENPTkZJR19TWVNfTkFORF9CQVNFIH0KICNlbmRpZgogCiBpbnQgbmFuZF9jdXJyX2RldmljZSA9IC0xOwotbmFuZF9pbmZvX3QgbmFuZF9pbmZvW0NGR19NQVhfTkFORF9ERVZJQ0VdOworbmFuZF9pbmZvX3QgbmFuZF9pbmZvW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXTsKIAotc3RhdGljIHN0cnVjdCBuYW5kX2NoaXAgbmFuZF9jaGlwW0NGR19NQVhfTkFORF9ERVZJQ0VdOwotc3RhdGljIHVsb25nIGJhc2VfYWRkcmVzc1tDRkdfTUFYX05BTkRfREVWSUNFXSA9IENGR19OQU5EX0JBU0VfTElTVDsKK3N0YXRpYyBzdHJ1Y3QgbmFuZF9jaGlwIG5hbmRfY2hpcFtDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRV07CitzdGF0aWMgdWxvbmcgYmFzZV9hZGRyZXNzW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXSA9IENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1Q7CiAKIHN0YXRpYyBjb25zdCBjaGFyIGRlZmF1bHRfbmFuZF9uYW1lW10gPSAibmFuZCI7CiAKQEAgLTYxLDcgKzYxLDcgQEAKIHsKIAlpbnQgaTsKIAl1bnNpZ25lZCBpbnQgc2l6ZSA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IENGR19NQVhfTkFORF9ERVZJQ0U7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRTsgaSsrKSB7CiAJCW5hbmRfaW5pdF9jaGlwKCZuYW5kX2luZm9baV0sICZuYW5kX2NoaXBbaV0sIGJhc2VfYWRkcmVzc1tpXSk7CiAJCXNpemUgKz0gbmFuZF9pbmZvW2ldLnNpemUgLyAxMDI0OwogCQlpZiAobmFuZF9jdXJyX2RldmljZSA9PSAtMSkKQEAgLTY5LDcgKzY5LDcgQEAKIAl9CiAJcHJpbnRmKCIldSBNaUJcbiIsIHNpemUgLyAxMDI0KTsKIAotI2lmZGVmIENGR19OQU5EX1NFTEVDVF9ERVZJQ0UKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfU0VMRUNUX0RFVklDRQogCS8qCiAJICogU2VsZWN0IHRoZSBjaGlwIGluIHRoZSBib2FyZC9jcHUgc3BlY2lmaWMgZHJpdmVyCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL25hbmRfYmFzZS5jIGIvZHJpdmVycy9tdGQvbmFuZC9uYW5kX2Jhc2UuYwppbmRleCAwOTEzYmI4Li5mZTM0YTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL25hbmRfYmFzZS5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvbmFuZF9iYXNlLmMKQEAgLTQ5Miw3ICs0OTIsNyBAQAogdm9pZCBuYW5kX3dhaXRfcmVhZHkoc3RydWN0IG10ZF9pbmZvICptdGQpCiB7CiAJc3RydWN0IG5hbmRfY2hpcCAqY2hpcCA9IG10ZC0+cHJpdjsKLQl1MzIgdGltZW8gPSAoQ0ZHX0haICogMjApIC8gMTAwMDsKKwl1MzIgdGltZW8gPSAoQ09ORklHX1NZU19IWiAqIDIwKSAvIDEwMDA7CiAKIAlyZXNldF90aW1lcigpOwogCkBAIC04MzEsOSArODMxLDkgQEAKIAlpbnQgc3RhdGUgPSB0aGlzLT5zdGF0ZTsKIAogCWlmIChzdGF0ZSA9PSBGTF9FUkFTSU5HKQotCQl0aW1lbyA9IChDRkdfSFogKiA0MDApIC8gMTAwMDsKKwkJdGltZW8gPSAoQ09ORklHX1NZU19IWiAqIDQwMCkgLyAxMDAwOwogCWVsc2UKLQkJdGltZW8gPSAoQ0ZHX0haICogMjApIC8gMTAwMDsKKwkJdGltZW8gPSAoQ09ORklHX1NZU19IWiAqIDIwKSAvIDEwMDA7CiAKIAlpZiAoKHN0YXRlID09IEZMX0VSQVNJTkcpICYmICh0aGlzLT5vcHRpb25zICYgTkFORF9JU19BTkQpKQogCQl0aGlzLT5jbWRmdW5jKG10ZCwgTkFORF9DTURfU1RBVFVTX01VTFRJLCAtMSwgLTEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9zM2M2NHh4LmMgYi9kcml2ZXJzL210ZC9uYW5kL3MzYzY0eHguYwppbmRleCAxNTlmZTc2Li5lZGFmNTVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3MzYzY0eHguYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3MzYzY0eHguYwpAQCAtMTQxLDcgKzE0MSw3IEBACiAJcmV0dXJuICEhKHJlYWRsKE5GU1RBVCkgJiBORlNUQVRfUm5CKTsKIH0KIAotI2lmZGVmIENGR19TM0NfTkFORF9IV0VDQworI2lmZGVmIENPTkZJR19TWVNfUzNDX05BTkRfSFdFQ0MKIC8qCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgZW5jb2RpbmcgZWNjIGNvZGVzIHRvIHJlYWR5IGVjYyBlbmdpbmUuCiAgKiBXcml0dGVuIGJ5IGpzZ29vZApAQCAtMjU2LDcgKzI1Niw3IEBACiAKIAlyZXR1cm4gcmV0OwogfQotI2VuZGlmIC8qIENGR19TM0NfTkFORF9IV0VDQyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUzNDX05BTkRfSFdFQ0MgKi8KIAogLyoKICAqIEJvYXJkLXNwZWNpZmljIE5BTkQgaW5pdGlhbGl6YXRpb24uIFRoZSBmb2xsb3dpbmcgbWVtYmVycyBvZiB0aGUKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCW5hbmQtPnJlYWRfYnVmCQk9IG5hbmRfcmVhZF9idWY7CiAjZW5kaWYKIAotI2lmZGVmIENGR19TM0NfTkFORF9IV0VDQworI2lmZGVmIENPTkZJR19TWVNfUzNDX05BTkRfSFdFQ0MKIAluYW5kLT5lY2MuaHdjdGwJCT0gczNjX25hbmRfZW5hYmxlX2h3ZWNjOwogCW5hbmQtPmVjYy5jYWxjdWxhdGUJPSBzM2NfbmFuZF9jYWxjdWxhdGVfZWNjOwogCW5hbmQtPmVjYy5jb3JyZWN0CT0gczNjX25hbmRfY29ycmVjdF9kYXRhOwpAQCAtMzA3LDExICszMDcsMTEgQEAKIAkgKiBib2FyZCBvbmUgZGF5LCBpdCB3aWxsIGdldCBtb3JlIGNvbXBsaWNhdGVkLi4uCiAJICovCiAJbmFuZC0+ZWNjLm1vZGUJCT0gTkFORF9FQ0NfSFc7Ci0JbmFuZC0+ZWNjLnNpemUJCT0gQ0ZHX05BTkRfRUNDU0laRTsKLQluYW5kLT5lY2MuYnl0ZXMJCT0gQ0ZHX05BTkRfRUNDQllURVM7CisJbmFuZC0+ZWNjLnNpemUJCT0gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkU7CisJbmFuZC0+ZWNjLmJ5dGVzCQk9IENPTkZJR19TWVNfTkFORF9FQ0NCWVRFUzsKICNlbHNlCiAJbmFuZC0+ZWNjLm1vZGUJCT0gTkFORF9FQ0NfU09GVDsKLSNlbmRpZiAvKiAhIENGR19TM0NfTkFORF9IV0VDQyAqLworI2VuZGlmIC8qICEgQ09ORklHX1NZU19TM0NfTkFORF9IV0VDQyAqLwogCiAJbmFuZC0+cHJpdgkJPSBuYW5kX2NzICsgY2hpcF9uKys7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmRfbGVnYWN5L25hbmRfbGVnYWN5LmMgYi9kcml2ZXJzL210ZC9uYW5kX2xlZ2FjeS9uYW5kX2xlZ2FjeS5jCmluZGV4IGJmNTU2NWEuLjQwN2U5MDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmRfbGVnYWN5L25hbmRfbGVnYWN5LmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZF9sZWdhY3kvbmFuZF9sZWdhY3kuYwpAQCAtNjYsNyArNjYsNyBAQAogCWludCBlY2N2YWxpZF9wb3M7CiB9IG9vYl9jb25maWcgPSB7IHswfSwgMCwgMH07CiAKLXN0cnVjdCBuYW5kX2NoaXAgbmFuZF9kZXZfZGVzY1tDRkdfTUFYX05BTkRfREVWSUNFXSA9IHt7MH19Oworc3RydWN0IG5hbmRfY2hpcCBuYW5kX2Rldl9kZXNjW0NPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFXSA9IHt7MH19OwogCiBpbnQgY3Vycl9kZXZpY2UgPSAtMTsgLyogQ3VycmVudCBOQU5EIERldmljZSAqLwogCkBAIC05ODIsNyArOTgyLDcgQEAKICNpZmRlZiBDT05GSUdfT01BUDE1MTAKIAlhcmNoZmxhc2h3cCgwLDApOwogI2VuZGlmCi0jaWZkZWYgQ0ZHX05BTkRfV1AKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfV1AKIAlOQU5EX1dQX09GRigpOwogI2VuZGlmCiAKQEAgLTEwMzYsNyArMTAzNiw3IEBACiAjaWZkZWYgQ09ORklHX09NQVAxNTEwCiAJYXJjaGZsYXNod3AoMCwxKTsKICNlbmRpZgotI2lmZGVmIENGR19OQU5EX1dQCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX1dQCiAJTkFORF9XUF9PTigpOwogI2VuZGlmCiAKQEAgLTEyMzUsNyArMTIzNSw3IEBACiAjaWZkZWYgQ09ORklHX09NQVAxNTEwCiAJYXJjaGZsYXNod3AoMCwwKTsKICNlbmRpZgotI2lmZGVmIENGR19OQU5EX1dQCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX1dQCiAJTkFORF9XUF9PRkYoKTsKICNlbmRpZgogICAgIE5BTkRfRU5BQkxFX0NFKG5hbmQpOyAgLyogc2V0IHBpbiBsb3cgKi8KQEAgLTEzMjEsNyArMTMyMSw3IEBACiAjaWZkZWYgQ09ORklHX09NQVAxNTEwCiAJYXJjaGZsYXNod3AoMCwxKTsKICNlbmRpZgotI2lmZGVmIENGR19OQU5EX1dQCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX1dQCiAJTkFORF9XUF9PTigpOwogI2VuZGlmCiAKQEAgLTEzNTgsNyArMTM1OCw3IEBACiAjZW5kaWYKIAlvb2JfY29uZmlnLmJhZGJsb2NrX3BvcyA9IDU7CiAKLQlmb3IgKGk9MDsgaTxDRkdfTUFYX05BTkRfREVWSUNFOyBpKyspIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRTsgaSsrKSB7CiAJCWlmIChuYW5kX2Rldl9kZXNjW2ldLkNoaXBJRCA9PSBOQU5EX0NoaXBJRF9VTktOT1dOKSB7CiAJCQluYW5kID0gJm5hbmRfZGV2X2Rlc2NbaV07CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL29uZW5hbmQvb25lbmFuZF91Ym9vdC5jIGIvZHJpdmVycy9tdGQvb25lbmFuZC9vbmVuYW5kX3Vib290LmMKaW5kZXggZDYxNDQ1MC4uMDgwODJmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvb25lbmFuZC9vbmVuYW5kX3Vib290LmMKKysrIGIvZHJpdmVycy9tdGQvb25lbmFuZC9vbmVuYW5kX3Vib290LmMKQEAgLTI2LDcgKzI2LDcgQEAKIAltZW1zZXQoJm9uZW5hbmRfbXRkLCAwLCBzaXplb2Yoc3RydWN0IG10ZF9pbmZvKSk7CiAJbWVtc2V0KCZvbmVuYW5kX2NoaXAsIDAsIHNpemVvZihzdHJ1Y3Qgb25lbmFuZF9jaGlwKSk7CiAKLQlvbmVuYW5kX2NoaXAuYmFzZSA9ICh2b2lkICopIENGR19PTkVOQU5EX0JBU0U7CisJb25lbmFuZF9jaGlwLmJhc2UgPSAodm9pZCAqKSBDT05GSUdfU1lTX09ORU5BTkRfQkFTRTsKIAlvbmVuYW5kX210ZC5wcml2ID0gJm9uZW5hbmRfY2hpcDsKIAogCW9uZW5hbmRfc2Nhbigmb25lbmFuZF9tdGQsIDEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpL3NwaV9mbGFzaF9pbnRlcm5hbC5oIGIvZHJpdmVycy9tdGQvc3BpL3NwaV9mbGFzaF9pbnRlcm5hbC5oCmluZGV4IGU1Zjc1OGUuLjc1ZjU5MDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3NwaS9zcGlfZmxhc2hfaW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL210ZC9zcGkvc3BpX2ZsYXNoX2ludGVybmFsLmgKQEAgLTUsOSArNSw5IEBACiAgKi8KIAogLyogQ29tbW9uIHBhcmFtZXRlcnMgKi8KLSNkZWZpbmUgU1BJX0ZMQVNIX1BST0dfVElNRU9VVAkJKCgxMCAqIENGR19IWikgLyAxMDAwKQotI2RlZmluZSBTUElfRkxBU0hfUEFHRV9FUkFTRV9USU1FT1VUCSgoNTAgKiBDRkdfSFopIC8gMTAwMCkKLSNkZWZpbmUgU1BJX0ZMQVNIX1NFQ1RPUl9FUkFTRV9USU1FT1VUCSgxMCAqIENGR19IWikKKyNkZWZpbmUgU1BJX0ZMQVNIX1BST0dfVElNRU9VVAkJKCgxMCAqIENPTkZJR19TWVNfSFopIC8gMTAwMCkKKyNkZWZpbmUgU1BJX0ZMQVNIX1BBR0VfRVJBU0VfVElNRU9VVAkoKDUwICogQ09ORklHX1NZU19IWikgLyAxMDAwKQorI2RlZmluZSBTUElfRkxBU0hfU0VDVE9SX0VSQVNFX1RJTUVPVVQJKDEwICogQ09ORklHX1NZU19IWikKIAogLyogQ29tbW9uIGNvbW1hbmRzICovCiAjZGVmaW5lIENNRF9SRUFEX0lECQkJMHg5ZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpL3N0bWljcm8uYyBiL2RyaXZlcnMvbXRkL3NwaS9zdG1pY3JvLmMKaW5kZXggYzk5OWIxMi4uYjhiODM1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvc3BpL3N0bWljcm8uYworKysgYi9kcml2ZXJzL210ZC9zcGkvc3RtaWNyby5jCkBAIC0yOTUsNyArMjk1LDcgQEAKIAkJfQogCiAJCS8qIFVwIHRvIDIgc2Vjb25kcyAqLwotCQlyZXQgPSBzdG1pY3JvX3dhaXRfcmVhZHkoZmxhc2gsIDIgKiBDRkdfSFopOworCQlyZXQgPSBzdG1pY3JvX3dhaXRfcmVhZHkoZmxhc2gsIDIgKiBDT05GSUdfU1lTX0haKTsKIAkJaWYgKHJldCA8IDApIHsKIAkJCWRlYnVnKCJTRjogU1RNaWNybyBwYWdlIGVyYXNlIHRpbWVkIG91dFxuIik7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JjbTU3MHguYyBiL2RyaXZlcnMvbmV0L2JjbTU3MHguYwppbmRleCA2YjI4Yjk1Li4xODU3NjRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9iY201NzB4LmMKKysrIGIvZHJpdmVycy9uZXQvYmNtNTcweC5jCkBAIC00MzksOSArNDM5LDkgQEAKIAkvKiBTZXR1cCB0aW1lciBkZWxheXMgKi8KIAlpZiAoVDNfQVNJQ19SRVYgKHBEZXZpY2UtPkNoaXBSZXZJZCkgPT0gVDNfQVNJQ19SRVZfNTcwMSkgewogCQlwRGV2aWNlLT5Vc2VUYWdnZWRTdGF0dXMgPSBUUlVFOwotCQlwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsID0gQ0ZHX0haOworCQlwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsID0gQ09ORklHX1NZU19IWjsKIAl9IGVsc2UgewotCQlwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsID0gQ0ZHX0haIC8gNTA7CisJCXBVbURldmljZS0+dGltZXJfaW50ZXJ2YWwgPSBDT05GSUdfU1lTX0haIC8gNTA7CiAJfQogCiAJLyogR3JhYiBuYW1lIC4uLi4gKi8KQEAgLTQ1OCwxNSArNDU4LDE1IEBACiAJcFVtRGV2aWNlLT5yeF9sYXN0X2NudCA9IHBVbURldmljZS0+dHhfbGFzdF9jbnQgPSAwOwogCiAJLyogZGVsYXkgZm9yIDQgc2Vjb25kcyAqLwotCXBVbURldmljZS0+ZGVsYXllZF9saW5rX2luZCA9ICg0ICogQ0ZHX0haKSAvIHBVbURldmljZS0+dGltZXJfaW50ZXJ2YWw7CisJcFVtRGV2aWNlLT5kZWxheWVkX2xpbmtfaW5kID0gKDQgKiBDT05GSUdfU1lTX0haKSAvIHBVbURldmljZS0+dGltZXJfaW50ZXJ2YWw7CiAKLQlwVW1EZXZpY2UtPmFkYXB0aXZlX2V4cGlyeSA9IENGR19IWiAvIHBVbURldmljZS0+dGltZXJfaW50ZXJ2YWw7CisJcFVtRGV2aWNlLT5hZGFwdGl2ZV9leHBpcnkgPSBDT05GSUdfU1lTX0haIC8gcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbDsKIAogCS8qIFNvbWV0aW1lcyB3ZSBnZXQgc3B1cmlvdXMgaW50cy4gYWZ0ZXIgcmVzZXQgd2hlbiBsaW5rIGlzIGRvd24uICovCiAJLyogVGhpcyBmaWVsZCB0ZWxscyB0aGUgaXNyIHRvIHNlcnZpY2UgdGhlIGludC4gZXZlbiBpZiB0aGVyZSBpcyAqLwogCS8qIG5vIHN0YXR1cyBibG9jayB1cGRhdGUuICovCiAJcFVtRGV2aWNlLT5hZGFwdGVyX2p1c3RfaW5pdGVkID0KLQkgICAgKDMgKiBDRkdfSFopIC8gcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbDsKKwkgICAgKDMgKiBDT05GSUdfU1lTX0haKSAvIHBVbURldmljZS0+dGltZXJfaW50ZXJ2YWw7CiAKIAkvKiBJbml0aWFsaXplIDU3MHggKi8KIAlpZiAoTE1fSW5pdGlhbGl6ZUFkYXB0ZXIgKHBEZXZpY2UpICE9IExNX1NUQVRVU19TVUNDRVNTKSB7CkBAIC0xMDQ2LDkgKzEwNDYsOSBAQAogCiAJaWYgKFQzX0FTSUNfUkVWIChwRGV2aWNlLT5DaGlwUmV2SWQpID09IFQzX0FTSUNfUkVWXzU3MDEpIHsKIAkJcERldmljZS0+VXNlVGFnZ2VkU3RhdHVzID0gVFJVRTsKLQkJcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbCA9IENGR19IWjsKKwkJcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbCA9IENPTkZJR19TWVNfSFo7CiAJfSBlbHNlIHsKLQkJcFVtRGV2aWNlLT50aW1lcl9pbnRlcnZhbCA9IENGR19IWiAvIDUwOworCQlwVW1EZXZpY2UtPnRpbWVyX2ludGVydmFsID0gQ09ORklHX1NZU19IWiAvIDUwOwogCX0KIAogCXBEZXZpY2UtPlR4UGFja2V0RGVzY0NudCA9IHR4X3BrdF9kZXNjX2NudFtpbmRleF07CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9iZmluX21hYy5jIGIvZHJpdmVycy9uZXQvYmZpbl9tYWMuYwppbmRleCBjNWU3NGI4Li41MDRmZDEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9iZmluX21hYy5jCisrKyBiL2RyaXZlcnMvbmV0L2JmaW5fbWFjLmMKQEAgLTQ2Niw3ICs0NjYsNyBAQAogCXJldHVybiBidWY7CiB9CiAKLSNpZiBkZWZpbmVkKENPTkZJR19QT1NUKSAmJiBkZWZpbmVkKENGR19QT1NUX0VUSEVSKQorI2lmIGRlZmluZWQoQ09ORklHX1BPU1QpICYmIGRlZmluZWQoQ09ORklHX1NZU19QT1NUX0VUSEVSKQogaW50IGV0aGVyX3Bvc3RfdGVzdChpbnQgZmxhZ3MpCiB7CiAJdWNoYXIgYnVmWzY0XTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2NzODkwMC5jIGIvZHJpdmVycy9uZXQvY3M4OTAwLmMKaW5kZXggYWUxOTgzYS4uMzVhOWJhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY3M4OTAwLmMKKysrIGIvZHJpdmVycy9uZXQvY3M4OTAwLmMKQEAgLTkwLDcgKzkwLDcgQEAKIAl1ZGVsYXkgKDIwMDAwMCk7CiAJLyogV2FpdCB1bnRpbCB0aGUgY2hpcCBpcyByZXNldCAqLwogCi0JdG1vID0gZ2V0X3RpbWVyICgwKSArIDEgKiBDRkdfSFo7CisJdG1vID0gZ2V0X3RpbWVyICgwKSArIDEgKiBDT05GSUdfU1lTX0haOwogCXdoaWxlICgoKCh1cyA9IGdldF9yZWdfaW5pdF9idXMgKFBQX1NlbGZTVEFUKSkgJiBQUF9TZWxmU1RBVF9Jbml0RCkgPT0gMCkKIAkJICAgJiYgdG1vIDwgZ2V0X3RpbWVyICgwKSkKIAkJLypOT1AqLzsKQEAgLTI0NCw3ICsyNDQsNyBAQAogI2lmZGVmIERFQlVHCiAJCXByaW50ZiAoImNzOiB1bmFibGUgdG8gc2VuZCBwYWNrZXQ7IHJldHJ5aW5nLi4uXG4iKTsKICNlbmRpZgotCQlmb3IgKHRtbyA9IGdldF90aW1lciAoMCkgKyA1ICogQ0ZHX0haOyBnZXRfdGltZXIgKDApIDwgdG1vOykKKwkJZm9yICh0bW8gPSBnZXRfdGltZXIgKDApICsgNSAqIENPTkZJR19TWVNfSFo7IGdldF90aW1lciAoMCkgPCB0bW87KQogCQkJLypOT1AqLzsKIAkJZXRoX3Jlc2V0ICgpOwogCQlldGhfcmVnaW5pdCAoKTsKQEAgLTI1Nyw3ICsyNTcsNyBAQAogCQlDUzg5MDBfUlREQVRBID0gKmFkZHIrKzsKIAogCS8qIHdhaXQgZm9yIHRyYW5zZmVyIHRvIHN1Y2NlZWQgKi8KLQl0bW8gPSBnZXRfdGltZXIgKDApICsgNSAqIENGR19IWjsKKwl0bW8gPSBnZXRfdGltZXIgKDApICsgNSAqIENPTkZJR19TWVNfSFo7CiAJd2hpbGUgKChzID0gZ2V0X3JlZyAoUFBfVEVSKSAmIH4weDFGKSA9PSAwKSB7CiAJCWlmIChnZXRfdGltZXIgKDApID49IHRtbykKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZG05MDAweC5jIGIvZHJpdmVycy9uZXQvZG05MDAweC5jCmluZGV4IDNhNjFiODAuLmZmYjczOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RtOTAwMHguYworKysgYi9kcml2ZXJzL25ldC9kbTkwMDB4LmMKQEAgLTQ0Nyw3ICs0NDcsNyBAQAogCURNOTAwMF9pb3coRE05MDAwX1RDUiwgVENSX1RYUkVRKTsgLyogQ2xlYXJlZCBhZnRlciBUWCBjb21wbGV0ZSAqLwogCiAJLyogd2FpdCBmb3IgZW5kIG9mIHRyYW5zbWlzc2lvbiAqLwotCXRtbyA9IGdldF90aW1lcigwKSArIDUgKiBDRkdfSFo7CisJdG1vID0gZ2V0X3RpbWVyKDApICsgNSAqIENPTkZJR19TWVNfSFo7CiAJd2hpbGUgKCAhKERNOTAwMF9pb3IoRE05MDAwX05TUikgJiAoTlNSX1RYMUVORCB8IE5TUl9UWDJFTkQpKSB8fAogCQkhKERNOTAwMF9pb3IoRE05MDAwX0lTUikgJiBJTVJfUFRNKSApIHsKIAkJaWYgKGdldF90aW1lcigwKSA+PSB0bW8pIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2VlcHJvMTAwLmMgYi9kcml2ZXJzL25ldC9lZXBybzEwMC5jCmluZGV4IGQ2NTM5YzAuLjljMDZiMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2VlcHJvMTAwLmMKKysrIGIvZHJpdmVycy9uZXQvZWVwcm8xMDAuYwpAQCAtMTk0LDE0ICsxOTQsMTQgQEAKIAl1bnNpZ25lZCBjaGFyIHBhcmFtc1swXTsKIH07CiAKLSNkZWZpbmUgQ0ZHX0NNRF9FTAkJMHg4MDAwCi0jZGVmaW5lIENGR19DTURfU1VTUEVORAkJMHg0MDAwCi0jZGVmaW5lIENGR19DTURfSU5UCQkweDIwMDAKLSNkZWZpbmUgQ0ZHX0NNRF9JQVMJCTB4MDAwMQkvKiBpbmRpdmlkdWFsIGFkZHJlc3Mgc2V0dXAgKi8KLSNkZWZpbmUgQ0ZHX0NNRF9DT05GSUdVUkUJMHgwMDAyCS8qIGNvbmZpZ3VyZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNRF9FTAkJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ01EX1NVU1BFTkQJCTB4NDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NNRF9JTlQJCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NNRF9JQVMJCTB4MDAwMQkvKiBpbmRpdmlkdWFsIGFkZHJlc3Mgc2V0dXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTURfQ09ORklHVVJFCTB4MDAwMgkvKiBjb25maWd1cmUgKi8KIAotI2RlZmluZSBDRkdfU1RBVFVTX0MJCTB4ODAwMAotI2RlZmluZSBDRkdfU1RBVFVTX09LCQkweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFUVVNfQwkJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1RBVFVTX09LCQkweDIwMDAKIAogCS8qIE1pc2MuCiAJICovCkBAIC01MjksNyArNTI5LDcgQEAKIAl0eF9uZXh0ID0gKCh0eF9uZXh0ICsgMSkgJSBOVU1fVFhfREVTQyk7CiAKIAljZmdfY21kID0gKHN0cnVjdCBkZXNjcmlwdG9yICopICZ0eF9yaW5nW3R4X2N1cl07Ci0JY2ZnX2NtZC0+Y29tbWFuZCA9IGNwdV90b19sZTE2ICgoQ0ZHX0NNRF9TVVNQRU5EIHwgQ0ZHX0NNRF9DT05GSUdVUkUpKTsKKwljZmdfY21kLT5jb21tYW5kID0gY3B1X3RvX2xlMTYgKChDT05GSUdfU1lTX0NNRF9TVVNQRU5EIHwgQ09ORklHX1NZU19DTURfQ09ORklHVVJFKSk7CiAJY2ZnX2NtZC0+c3RhdHVzID0gMDsKIAljZmdfY21kLT5saW5rID0gY3B1X3RvX2xlMzIgKHBoeXNfdG9fYnVzICgodTMyKSAmIHR4X3JpbmdbdHhfbmV4dF0pKTsKIApAQCAtNTM3LDcgKzUzNyw3IEBACiAJCQlzaXplb2YgKGk4MjU1OF9jb25maWdfY21kKSk7CiAKIAlpZiAoIXdhaXRfZm9yX2VlcHJvMTAwIChkZXYpKSB7Ci0JCXByaW50ZiAoIkVycm9yLS0tQ0ZHX0NNRF9DT05GSUdVUkU6IENhbiBub3QgcmVzZXQgZXRoZXJuZXQgY29udHJvbGxlci5cbiIpOworCQlwcmludGYgKCJFcnJvci0tLUNPTkZJR19TWVNfQ01EX0NPTkZJR1VSRTogQ2FuIG5vdCByZXNldCBldGhlcm5ldCBjb250cm9sbGVyLlxuIik7CiAJCWdvdG8gRG9uZTsKIAl9CiAKQEAgLTU0NSw3ICs1NDUsNyBAQAogCU9VVFcgKGRldiwgU0NCX00gfCBDVV9TVEFSVCwgU0NCQ21kKTsKIAogCWZvciAoaSA9IDA7Ci0JICAgICAhKGxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSAmIENGR19TVEFUVVNfQyk7CisJICAgICAhKGxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSAmIENPTkZJR19TWVNfU1RBVFVTX0MpOwogCSAgICAgaSsrKSB7CiAJCWlmIChpID49IFRPVVRfTE9PUCkgewogCQkJcHJpbnRmICgiJXM6IFR4IGVycm9yIGJ1ZmZlciBub3QgcmVhZHlcbiIsIGRldi0+bmFtZSk7CkBAIC01NTMsNyArNTUzLDcgQEAKIAkJfQogCX0KIAotCWlmICghKGxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSAmIENGR19TVEFUVVNfT0spKSB7CisJaWYgKCEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ09ORklHX1NZU19TVEFUVVNfT0spKSB7CiAJCXByaW50ZiAoIlRYIGVycm9yIHN0YXR1cyA9IDB4JTA4WFxuIiwKIAkJCWxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSk7CiAJCWdvdG8gRG9uZTsKQEAgLTU2NSw3ICs1NjUsNyBAQAogCXR4X25leHQgPSAoKHR4X25leHQgKyAxKSAlIE5VTV9UWF9ERVNDKTsKIAogCWlhc19jbWQgPSAoc3RydWN0IGRlc2NyaXB0b3IgKikgJnR4X3JpbmdbdHhfY3VyXTsKLQlpYXNfY21kLT5jb21tYW5kID0gY3B1X3RvX2xlMTYgKChDRkdfQ01EX1NVU1BFTkQgfCBDRkdfQ01EX0lBUykpOworCWlhc19jbWQtPmNvbW1hbmQgPSBjcHVfdG9fbGUxNiAoKENPTkZJR19TWVNfQ01EX1NVU1BFTkQgfCBDT05GSUdfU1lTX0NNRF9JQVMpKTsKIAlpYXNfY21kLT5zdGF0dXMgPSAwOwogCWlhc19jbWQtPmxpbmsgPSBjcHVfdG9fbGUzMiAocGh5c190b19idXMgKCh1MzIpICYgdHhfcmluZ1t0eF9uZXh0XSkpOwogCkBAIC01ODEsNyArNTgxLDcgQEAKIAlPVVRMIChkZXYsIHBoeXNfdG9fYnVzICgodTMyKSAmIHR4X3JpbmdbdHhfY3VyXSksIFNDQlBvaW50ZXIpOwogCU9VVFcgKGRldiwgU0NCX00gfCBDVV9TVEFSVCwgU0NCQ21kKTsKIAotCWZvciAoaSA9IDA7ICEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ0ZHX1NUQVRVU19DKTsKKwlmb3IgKGkgPSAwOyAhKGxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSAmIENPTkZJR19TWVNfU1RBVFVTX0MpOwogCQkgaSsrKSB7CiAJCWlmIChpID49IFRPVVRfTE9PUCkgewogCQkJcHJpbnRmICgiJXM6IFR4IGVycm9yIGJ1ZmZlciBub3QgcmVhZHlcbiIsCkBAIC01OTAsNyArNTkwLDcgQEAKIAkJfQogCX0KIAotCWlmICghKGxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSAmIENGR19TVEFUVVNfT0spKSB7CisJaWYgKCEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ09ORklHX1NZU19TVEFUVVNfT0spKSB7CiAJCXByaW50ZiAoIlRYIGVycm9yIHN0YXR1cyA9IDB4JTA4WFxuIiwKIAkJCWxlMTZfdG9fY3B1ICh0eF9yaW5nW3R4X2N1cl0uc3RhdHVzKSk7CiAJCWdvdG8gRG9uZTsKQEAgLTY0MCw3ICs2NDAsNyBAQAogCU9VVEwgKGRldiwgcGh5c190b19idXMgKCh1MzIpICYgdHhfcmluZ1t0eF9jdXJdKSwgU0NCUG9pbnRlcik7CiAJT1VUVyAoZGV2LCBTQ0JfTSB8IENVX1NUQVJULCBTQ0JDbWQpOwogCi0JZm9yIChpID0gMDsgIShsZTE2X3RvX2NwdSAodHhfcmluZ1t0eF9jdXJdLnN0YXR1cykgJiBDRkdfU1RBVFVTX0MpOworCWZvciAoaSA9IDA7ICEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ09ORklHX1NZU19TVEFUVVNfQyk7CiAJCSBpKyspIHsKIAkJaWYgKGkgPj0gVE9VVF9MT09QKSB7CiAJCQlwcmludGYgKCIlczogVHggZXJyb3IgYnVmZmVyIG5vdCByZWFkeVxuIiwgZGV2LT5uYW1lKTsKQEAgLTY0OCw3ICs2NDgsNyBAQAogCQl9CiAJfQogCi0JaWYgKCEobGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpICYgQ0ZHX1NUQVRVU19PSykpIHsKKwlpZiAoIShsZTE2X3RvX2NwdSAodHhfcmluZ1t0eF9jdXJdLnN0YXR1cykgJiBDT05GSUdfU1lTX1NUQVRVU19PSykpIHsKIAkJcHJpbnRmICgiVFggZXJyb3Igc3RhdHVzID0gMHglMDhYXG4iLAogCQkJbGUxNl90b19jcHUgKHR4X3JpbmdbdHhfY3VyXS5zdGF0dXMpKTsKIAkJZ290byBEb25lOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZnNsX21jZG1hZmVjLmMgYi9kcml2ZXJzL25ldC9mc2xfbWNkbWFmZWMuYwppbmRleCA1OTUyNGE1Li5kMDU2MDEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9mc2xfbWNkbWFmZWMuYworKysgYi9kcml2ZXJzL25ldC9mc2xfbWNkbWFmZWMuYwpAQCAtNTYsMTIgKzU2LDEyIEBACiBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsKIAogc3RydWN0IGZlY19pbmZvX2RtYSBmZWNfaW5mb1tdID0gewotI2lmZGVmIENGR19GRUMwX0lPQkFTRQorI2lmZGVmIENPTkZJR19TWVNfRkVDMF9JT0JBU0UKIAl7CiAJIDAsCQkJLyogaW5kZXggKi8KLQkgQ0ZHX0ZFQzBfSU9CQVNFLAkvKiBpbyBiYXNlICovCi0JIENGR19GRUMwX1BJTk1VWCwJLyogZ3BpbyBwaW4gbXV4aW5nICovCi0JIENGR19GRUMwX01JSUJBU0UsCS8qIG1paSBiYXNlICovCisJIENPTkZJR19TWVNfRkVDMF9JT0JBU0UsCS8qIGlvIGJhc2UgKi8KKwkgQ09ORklHX1NZU19GRUMwX1BJTk1VWCwJLyogZ3BpbyBwaW4gbXV4aW5nICovCisJIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFLAkvKiBtaWkgYmFzZSAqLwogCSAtMSwJCQkvKiBwaHlfYWRkciAqLwogCSAwLAkJCS8qIGR1cGxleCBhbmQgc3BlZWQgKi8KIAkgMCwJCQkvKiBwaHkgbmFtZSAqLwpAQCAtODMsMTcgKzgzLDE3IEBACiAJIDAsCQkJLyogY2xlYW5UYmROdW0gKi8KIAkgfSwKICNlbmRpZgotI2lmZGVmIENGR19GRUMxX0lPQkFTRQorI2lmZGVmIENPTkZJR19TWVNfRkVDMV9JT0JBU0UKIAl7CiAJIDEsCQkJLyogaW5kZXggKi8KLQkgQ0ZHX0ZFQzFfSU9CQVNFLAkvKiBpbyBiYXNlICovCi0JIENGR19GRUMxX1BJTk1VWCwJLyogZ3BpbyBwaW4gbXV4aW5nICovCi0JIENGR19GRUMxX01JSUJBU0UsCS8qIG1paSBiYXNlICovCisJIENPTkZJR19TWVNfRkVDMV9JT0JBU0UsCS8qIGlvIGJhc2UgKi8KKwkgQ09ORklHX1NZU19GRUMxX1BJTk1VWCwJLyogZ3BpbyBwaW4gbXV4aW5nICovCisJIENPTkZJR19TWVNfRkVDMV9NSUlCQVNFLAkvKiBtaWkgYmFzZSAqLwogCSAtMSwJCQkvKiBwaHlfYWRkciAqLwogCSAwLAkJCS8qIGR1cGxleCBhbmQgc3BlZWQgKi8KIAkgMCwJCQkvKiBwaHkgbmFtZSAqLwogCSAwLAkJCS8qIHBoeSBuYW1lIGluaXQgKi8KLSNpZmRlZiBDRkdfRE1BX1VTRV9JTlRTUkFNCisjaWZkZWYgQ09ORklHX1NZU19ETUFfVVNFX0lOVFNSQU0KIAkgKGNiZF90ICopREJVRl9MRU5HVEgsCS8qIFJYIEJEICovCiAjZWxzZQogCSAwLAkJCS8qIFJYIEJEICovCkBAIC0yMDMsNyArMjAzLDcgQEAKIAltaWlwaHlfcmVhZChkZXYtPm5hbWUsIGluZm8tPnBoeV9hZGRyLCBQSFlfQk1TUiwgJnBoeVN0YXR1cyk7CiAKIAkvKiBwcm9jZXNzIGFsbCB0aGUgY29uc3VtZWQgVEJEcyAqLwotCXdoaWxlIChpbmZvLT5jbGVhblRiZE51bSA8IENGR19UWF9FVEhfQlVGRkVSKSB7CisJd2hpbGUgKGluZm8tPmNsZWFuVGJkTnVtIDwgQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSKSB7CiAJCXBVc2VkVGJkID0gJmluZm8tPnR4YmRbaW5mby0+dXNlZFRiZElkeF07CiAJCWlmIChwVXNlZFRiZC0+Y2JkX3NjICYgQkRfRU5FVF9UWF9SRUFEWSkgewogI2lmZGVmIEVUX0RFQlVHCkBAIC0yMTQsMTQgKzIxNCwxNCBAQAogCQl9CiAKIAkJLyogY2xlYW4gdGhpcyBidWZmZXIgZGVzY3JpcHRvciAqLwotCQlpZiAoaW5mby0+dXNlZFRiZElkeCA9PSAoQ0ZHX1RYX0VUSF9CVUZGRVIgLSAxKSkKKwkJaWYgKGluZm8tPnVzZWRUYmRJZHggPT0gKENPTkZJR19TWVNfVFhfRVRIX0JVRkZFUiAtIDEpKQogCQkJcFVzZWRUYmQtPmNiZF9zYyA9IEJEX0VORVRfVFhfV1JBUDsKIAkJZWxzZQogCQkJcFVzZWRUYmQtPmNiZF9zYyA9IDA7CiAKIAkJLyogdXBkYXRlIHNvbWUgaW5kZWNlcyBmb3IgYSBjb3JyZWN0IGhhbmRsaW5nIG9mIHRoZSBUQkQgcmluZyAqLwogCQlpbmZvLT5jbGVhblRiZE51bSsrOwotCQlpbmZvLT51c2VkVGJkSWR4ID0gKGluZm8tPnVzZWRUYmRJZHggKyAxKSAlIENGR19UWF9FVEhfQlVGRkVSOworCQlpbmZvLT51c2VkVGJkSWR4ID0gKGluZm8tPnVzZWRUYmRJZHggKyAxKSAlIENPTkZJR19TWVNfVFhfRVRIX0JVRkZFUjsKIAl9CiAKIAkvKiBDaGVjayBmb3IgdmFsaWQgbGVuZ3RoIG9mIGRhdGEuICovCkBAIC0yNDAsNyArMjQwLDcgQEAKIAlwVGJkLT5jYmRfZGF0bGVuID0gbGVuZ3RoOwogCXBUYmQtPmNiZF9idWZhZGRyID0gKHUzMikgcGFja2V0OwogCXBUYmQtPmNiZF9zYyB8PSBCRF9FTkVUX1RYX0xBU1QgfCBCRF9FTkVUX1RYX1RDIHwgQkRfRU5FVF9UWF9SRUFEWTsKLQlpbmZvLT50eElkeCA9IChpbmZvLT50eElkeCArIDEpICUgQ0ZHX1RYX0VUSF9CVUZGRVI7CisJaW5mby0+dHhJZHggPSAoaW5mby0+dHhJZHggKyAxKSAlIENPTkZJR19TWVNfVFhfRVRIX0JVRkZFUjsKIAogCS8qIEVuYWJsZSBETUEgdHJhbnNtaXQgdGFzayAqLwogCU1DRF9jb250aW5EbWEoaW5mby0+dHhUYXNrKTsKQEAgLTM3OSwxNSArMzc5LDE1IEBACiAJZmVjX2hhbHQoZGV2KTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9NSUkpIHx8IGRlZmluZWQgKENPTkZJR19NSUkpIHx8IFwKLQlkZWZpbmVkIChDRkdfRElTQ09WRVJfUEhZKQorCWRlZmluZWQgKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogCiAJbWlpX2luaXQoKTsKIAogCXNldF9mZWNfZHVwbGV4X3NwZWVkKGZlY3AsIGJkLCBpbmZvLT5kdXBfc3BkKTsKICNlbHNlCi0jaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKyNpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKIAlzZXRfZmVjX2R1cGxleF9zcGVlZChmZWNwLCBiZCwgKEZFQ0RVUExFWCA8PCAxNikgfCBGRUNTUEVFRCk7Ci0jZW5kaWYJCQkJLyogaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfQ01EX01JSSB8fCBDT05GSUdfTUlJICovCiAKIAkvKiBXZSB1c2Ugc3RyaWN0bHkgcG9sbGluZyBtb2RlIG9ubHkgKi8KQEAgLTM5Nyw3ICszOTcsNyBAQAogCWZlY3AtPmVpciA9IDB4ZmZmZmZmZmY7CiAKIAkvKiBTZXQgc3RhdGlvbiBhZGRyZXNzICAgKi8KLQlpZiAoKHUzMikgZmVjcCA9PSBDRkdfRkVDMF9JT0JBU0UpIHsKKwlpZiAoKHUzMikgZmVjcCA9PSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFKSB7CiAJCWZlY19zZXRfaHdhZGRyKGZlY3AsIGJkLT5iaV9lbmV0YWRkcik7CiAJfSBlbHNlIHsKIAkJZmVjX3NldF9od2FkZHIoZmVjcCwgYmQtPmJpX2VuZXQxYWRkcik7CkBAIC00MjEsMTUgKzQyMSwxNSBAQAogCiAJLyogU2V0dXAgRXRoZXJuZXQgVHJhbnNtaXR0ZXIgQnVmZmVyIERlc2NyaXB0b3JzICgxMy4xNC4yNC4xOSkKIAkgKiBTZXR0aW5nczogICAgTGFzdCwgVHggQ1JDICovCi0JZm9yIChpID0gMDsgaSA8IENGR19UWF9FVEhfQlVGRkVSOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSOyBpKyspIHsKIAkJaW5mby0+dHhiZFtpXS5jYmRfc2MgPSAwOwogCQlpbmZvLT50eGJkW2ldLmNiZF9kYXRsZW4gPSAwOwogCQlpbmZvLT50eGJkW2ldLmNiZF9idWZhZGRyID0gKHVpbnQpICgmaW5mby0+dHhidWZbMF0pOwogCX0KLQlpbmZvLT50eGJkW0NGR19UWF9FVEhfQlVGRkVSIC0gMV0uY2JkX3NjIHw9IEJEX0VORVRfVFhfV1JBUDsKKwlpbmZvLT50eGJkW0NPTkZJR19TWVNfVFhfRVRIX0JVRkZFUiAtIDFdLmNiZF9zYyB8PSBCRF9FTkVUX1RYX1dSQVA7CiAKIAlpbmZvLT51c2VkVGJkSWR4ID0gMDsKLQlpbmZvLT5jbGVhblRiZE51bSA9IENGR19UWF9FVEhfQlVGRkVSOworCWluZm8tPmNsZWFuVGJkTnVtID0gQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSOwogCiAJLyogU2V0IFJ4IEZJRk8gYWxhcm0gYW5kIGdyYW51bGFyaXR5IHZhbHVlICovCiAJZmVjcC0+cmZjciA9IDB4MGMwMDAwMDA7CkBAIC01MTYsMTQgKzUxNiwxNCBAQAogewogCXN0cnVjdCBldGhfZGV2aWNlICpkZXY7CiAJaW50IGk7Ci0jaWZkZWYgQ0ZHX0RNQV9VU0VfSU5UU1JBTQotCXUzMiB0bXAgPSBDRkdfSU5UU1JBTSArIDB4MjAwMDsKKyNpZmRlZiBDT05GSUdfU1lTX0RNQV9VU0VfSU5UU1JBTQorCXUzMiB0bXAgPSBDT05GSUdfU1lTX0lOVFNSQU0gKyAweDIwMDA7CiAjZW5kaWYKIAogCWZvciAoaSA9IDA7IGkgPCBzaXplb2YoZmVjX2luZm8pIC8gc2l6ZW9mKGZlY19pbmZvWzBdKTsgaSsrKSB7CiAKIAkJZGV2ID0KLQkJICAgIChzdHJ1Y3QgZXRoX2RldmljZSAqKW1lbWFsaWduKENGR19DQUNIRUxJTkVfU0laRSwKKwkJICAgIChzdHJ1Y3QgZXRoX2RldmljZSAqKW1lbWFsaWduKENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUsCiAJCQkJCQkgIHNpemVvZiAqZGV2KTsKIAkJaWYgKGRldiA9PSBOVUxMKQogCQkJaGFuZygpOwpAQCAtNTM5LDcgKzUzOSw3IEBACiAJCWRldi0+cmVjdiA9IGZlY19yZWN2OwogCiAJCS8qIHNldHVwIFJlY2VpdmUgYW5kIFRyYW5zbWl0IGJ1ZmZlciBkZXNjcmlwdG9yICovCi0jaWZkZWYgQ0ZHX0RNQV9VU0VfSU5UU1JBTQorI2lmZGVmIENPTkZJR19TWVNfRE1BX1VTRV9JTlRTUkFNCiAJCWZlY19pbmZvW2ldLnJ4YmQgPSAoY2JkX3QgKikoKHUzMilmZWNfaW5mb1tpXS5yeGJkICsgdG1wKTsKIAkJdG1wID0gKHUzMilmZWNfaW5mb1tpXS5yeGJkOwogCQlmZWNfaW5mb1tpXS50eGJkID0KQEAgLTU0OCwxNyArNTQ4LDE3IEBACiAJCXRtcCA9ICh1MzIpZmVjX2luZm9baV0udHhiZDsKIAkJZmVjX2luZm9baV0udHhidWYgPQogCQkgICAgKGNoYXIgKikoKHUzMilmZWNfaW5mb1tpXS50eGJ1ZiArIHRtcCArCi0JCSAgICAoQ0ZHX1RYX0VUSF9CVUZGRVIgKiBzaXplb2YoY2JkX3QpKSk7CisJCSAgICAoQ09ORklHX1NZU19UWF9FVEhfQlVGRkVSICogc2l6ZW9mKGNiZF90KSkpOwogCQl0bXAgPSAodTMyKWZlY19pbmZvW2ldLnR4YnVmOwogI2Vsc2UKIAkJZmVjX2luZm9baV0ucnhiZCA9Ci0JCSAgICAoY2JkX3QgKikgbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLAorCQkgICAgKGNiZF90ICopIG1lbWFsaWduKENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUsCiAJCQkJICAgICAgIChQS1RCVUZTUlggKiBzaXplb2YoY2JkX3QpKSk7CiAJCWZlY19pbmZvW2ldLnR4YmQgPQotCQkgICAgKGNiZF90ICopIG1lbWFsaWduKENGR19DQUNIRUxJTkVfU0laRSwKLQkJCQkgICAgICAgKENGR19UWF9FVEhfQlVGRkVSICogc2l6ZW9mKGNiZF90KSkpOworCQkgICAgKGNiZF90ICopIG1lbWFsaWduKENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUsCisJCQkJICAgICAgIChDT05GSUdfU1lTX1RYX0VUSF9CVUZGRVIgKiBzaXplb2YoY2JkX3QpKSk7CiAJCWZlY19pbmZvW2ldLnR4YnVmID0KLQkJICAgIChjaGFyICopbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLCBEQlVGX0xFTkdUSCk7CisJCSAgICAoY2hhciAqKW1lbWFsaWduKENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUsIERCVUZfTEVOR1RIKTsKICNlbmRpZgogCiAjaWZkZWYgRVRfREVCVUcKQEAgLTU2Niw3ICs1NjYsNyBAQAogCQkgICAgICAgKGludClmZWNfaW5mb1tpXS5yeGJkLCAoaW50KWZlY19pbmZvW2ldLnR4YmQpOwogI2VuZGlmCiAKLQkJZmVjX2luZm9baV0ucGh5X25hbWUgPSAoY2hhciAqKW1lbWFsaWduKENGR19DQUNIRUxJTkVfU0laRSwgMzIpOworCQlmZWNfaW5mb1tpXS5waHlfbmFtZSA9IChjaGFyICopbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwgMzIpOwogCiAJCWV0aF9yZWdpc3RlcihkZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9sYW45MWM5Ni5jIGIvZHJpdmVycy9uZXQvbGFuOTFjOTYuYwppbmRleCBjMjNhNDAwLi4zMThiZGY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9sYW45MWM5Ni5jCisrKyBiL2RyaXZlcnMvbmV0L2xhbjkxYzk2LmMKQEAgLTI2Nyw3ICsyNjcsNyBAQAogCiBzdGF0aWMgaW50IHBvbGw0aW50IChieXRlIG1hc2ssIGludCB0aW1lb3V0KQogewotCWludCB0bW8gPSBnZXRfdGltZXIgKDApICsgdGltZW91dCAqIENGR19IWjsKKwlpbnQgdG1vID0gZ2V0X3RpbWVyICgwKSArIHRpbWVvdXQgKiBDT05GSUdfU1lTX0haOwogCWludCBpc190aW1lb3V0ID0gMDsKIAl3b3JkIG9sZF9iYW5rID0gU01DX2ludyAoTEFOOTFDOTZfQkFOS19TRUxFQ1QpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWNiLmMgYi9kcml2ZXJzL25ldC9tYWNiLmMKaW5kZXggMDhiZWJmNy4uOThlOGM3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjYi5jCisrKyBiL2RyaXZlcnMvbmV0L21hY2IuYwpAQCAtMjgsNyArMjgsNyBAQAogICogYWxsb2NhdGUgb3VyIG93biwgYnV0IHdlIG5lZWQgb25lIHN1Y2ggYnVmZmVyIGluIGNhc2UgYSBwYWNrZXQKICAqIHdyYXBzIGFyb3VuZCB0aGUgRE1BIHJpbmcgc28gdGhhdCB3ZSBoYXZlIHRvIGNvcHkgaXQuCiAgKgotICogVGhlcmVmb3JlLCBkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIgdG8gMSBpbiB0aGUgYm9hcmQtc3BlY2lmaWMKKyAqIFRoZXJlZm9yZSwgZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUiB0byAxIGluIHRoZSBib2FyZC1zcGVjaWZpYwogICogY29uZmlndXJhdGlvbiBoZWFkZXIuICBUaGlzIHdheSwgdGhlIGNvcmUgYWxsb2NhdGVzIG9uZSBSWCBidWZmZXIKICAqIGFuZCBvbmUgVFggYnVmZmVyLCBlYWNoIG9mIHdoaWNoIGNhbiBob2xkIGEgZXRoZXJuZXQgcGFja2V0IG9mCiAgKiBtYXhpbXVtIHNpemUuCkBAIC01MiwxMSArNTIsMTEgQEAKIAogI2RlZmluZSBiYXJyaWVyKCkgYXNtIHZvbGF0aWxlKCIiIDo6OiAibWVtb3J5IikKIAotI2RlZmluZSBDRkdfTUFDQl9SWF9CVUZGRVJfU0laRQkJNDA5NgotI2RlZmluZSBDRkdfTUFDQl9SWF9SSU5HX1NJWkUJCShDRkdfTUFDQl9SWF9CVUZGRVJfU0laRSAvIDEyOCkKLSNkZWZpbmUgQ0ZHX01BQ0JfVFhfUklOR19TSVpFCQkxNgotI2RlZmluZSBDRkdfTUFDQl9UWF9USU1FT1VUCQkxMDAwCi0jZGVmaW5lIENGR19NQUNCX0FVVE9ORUdfVElNRU9VVAk1MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFDQl9SWF9CVUZGRVJfU0laRQkJNDA5NgorI2RlZmluZSBDT05GSUdfU1lTX01BQ0JfUlhfUklOR19TSVpFCQkoQ09ORklHX1NZU19NQUNCX1JYX0JVRkZFUl9TSVpFIC8gMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX01BQ0JfVFhfUklOR19TSVpFCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX01BQ0JfVFhfVElNRU9VVAkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BQ0JfQVVUT05FR19USU1FT1VUCTUwMDAwMDAKIAogc3RydWN0IG1hY2JfZG1hX2Rlc2MgewogCXUzMglhZGRyOwpAQCAtMTc4LDcgKzE3OCw3IEBACiAKIAljdHJsID0gbGVuZ3RoICYgVFhCVUZfRlJNTEVOX01BU0s7CiAJY3RybCB8PSBUWEJVRl9GUkFNRV9FTkQ7Ci0JaWYgKHR4X2hlYWQgPT0gKENGR19NQUNCX1RYX1JJTkdfU0laRSAtIDEpKSB7CisJaWYgKHR4X2hlYWQgPT0gKENPTkZJR19TWVNfTUFDQl9UWF9SSU5HX1NJWkUgLSAxKSkgewogCQljdHJsIHw9IFRYQlVGX1dSQVA7CiAJCW1hY2ItPnR4X2hlYWQgPSAwOwogCX0gZWxzZQpAQCAtMTkzLDcgKzE5Myw3IEBACiAJICogSSBndWVzcyB0aGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBuZXR3b3JraW5nIGNvcmUgbWF5CiAJICogcmUtdXNlIHRoZSB0cmFuc21pdCBidWZmZXIgYXMgc29vbiBhcyB3ZSByZXR1cm4uLi4KIAkgKi8KLQlmb3IgKGkgPSAwOyBpIDw9IENGR19NQUNCX1RYX1RJTUVPVVQ7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPD0gQ09ORklHX1NZU19NQUNCX1RYX1RJTUVPVVQ7IGkrKykgewogCQliYXJyaWVyKCk7CiAJCWN0cmwgPSBtYWNiLT50eF9yaW5nW3R4X2hlYWRdLmN0cmw7CiAJCWlmIChjdHJsICYgVFhCVUZfVVNFRCkKQEAgLTIwMyw3ICsyMDMsNyBAQAogCiAJZG1hX3VubWFwX3NpbmdsZShwYWNrZXQsIGxlbmd0aCwgcGFkZHIpOwogCi0JaWYgKGkgPD0gQ0ZHX01BQ0JfVFhfVElNRU9VVCkgeworCWlmIChpIDw9IENPTkZJR19TWVNfTUFDQl9UWF9USU1FT1VUKSB7CiAJCWlmIChjdHJsICYgVFhCVUZfVU5ERVJSVU4pCiAJCQlwcmludGYoIiVzOiBUWCB1bmRlcnJ1blxuIiwgbmV0ZGV2LT5uYW1lKTsKIAkJaWYgKGN0cmwgJiBUWEJVRl9FWEhBVVNURUQpCkBAIC0yMjYsNyArMjI2LDcgQEAKIAl3aGlsZSAoaSA+IG5ld190YWlsKSB7CiAJCW1hY2ItPnJ4X3JpbmdbaV0uYWRkciAmPSB+UlhBRERSX1VTRUQ7CiAJCWkrKzsKLQkJaWYgKGkgPiBDRkdfTUFDQl9SWF9SSU5HX1NJWkUpCisJCWlmIChpID4gQ09ORklHX1NZU19NQUNCX1JYX1JJTkdfU0laRSkKIAkJCWkgPSAwOwogCX0KIApAQCAtMjY1LDcgKzI2NSw3IEBACiAJCQlpZiAod3JhcHBlZCkgewogCQkJCXVuc2lnbmVkIGludCBoZWFkbGVuLCB0YWlsbGVuOwogCi0JCQkJaGVhZGxlbiA9IDEyOCAqIChDRkdfTUFDQl9SWF9SSU5HX1NJWkUKKwkJCQloZWFkbGVuID0gMTI4ICogKENPTkZJR19TWVNfTUFDQl9SWF9SSU5HX1NJWkUKIAkJCQkJCSAtIG1hY2ItPnJ4X3RhaWwpOwogCQkJCXRhaWxsZW4gPSBsZW5ndGggLSBoZWFkbGVuOwogCQkJCW1lbWNweSgodm9pZCAqKU5ldFJ4UGFja2V0c1swXSwKQEAgLTI3NiwxMSArMjc2LDExIEBACiAJCQl9CiAKIAkJCU5ldFJlY2VpdmUoYnVmZmVyLCBsZW5ndGgpOwotCQkJaWYgKCsrcnhfdGFpbCA+PSBDRkdfTUFDQl9SWF9SSU5HX1NJWkUpCisJCQlpZiAoKytyeF90YWlsID49IENPTkZJR19TWVNfTUFDQl9SWF9SSU5HX1NJWkUpCiAJCQkJcnhfdGFpbCA9IDA7CiAJCQlyZWNsYWltX3J4X2J1ZmZlcnMobWFjYiwgcnhfdGFpbCk7CiAJCX0gZWxzZSB7Ci0JCQlpZiAoKytyeF90YWlsID49IENGR19NQUNCX1JYX1JJTkdfU0laRSkgeworCQkJaWYgKCsrcnhfdGFpbCA+PSBDT05GSUdfU1lTX01BQ0JfUlhfUklOR19TSVpFKSB7CiAJCQkJd3JhcHBlZCA9IDE7CiAJCQkJcnhfdGFpbCA9IDA7CiAJCQl9CkBAIC0zMDMsNyArMzAzLDcgQEAKIAltYWNiX21kaW9fd3JpdGUobWFjYiwgTUlJX0JNQ1IsIChCTUNSX0FORU5BQkxFCiAJCQkJCSB8IEJNQ1JfQU5SRVNUQVJUKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQ0ZHX01BQ0JfQVVUT05FR19USU1FT1VUIC8gMTAwOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQUNCX0FVVE9ORUdfVElNRU9VVCAvIDEwMDsgaSsrKSB7CiAJCXN0YXR1cyA9IG1hY2JfbWRpb19yZWFkKG1hY2IsIE1JSV9CTVNSKTsKIAkJaWYgKHN0YXR1cyAmIEJNU1JfQU5FR0NPTVBMRVRFKQogCQkJYnJlYWs7CkBAIC0zMzcsNyArMzM3LDcgQEAKIAkJLyogVHJ5IHRvIHJlLW5lZ290aWF0ZSBpZiB3ZSBkb24ndCBoYXZlIGxpbmsgYWxyZWFkeS4gKi8KIAkJbWFjYl9waHlfcmVzZXQobWFjYik7CiAKLQkJZm9yIChpID0gMDsgaSA8IENGR19NQUNCX0FVVE9ORUdfVElNRU9VVCAvIDEwMDsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX01BQ0JfQVVUT05FR19USU1FT1VUIC8gMTAwOyBpKyspIHsKIAkJCXN0YXR1cyA9IG1hY2JfbWRpb19yZWFkKG1hY2IsIE1JSV9CTVNSKTsKIAkJCWlmIChzdGF0dXMgJiBCTVNSX0xTVEFUVVMpCiAJCQkJYnJlYWs7CkBAIC0zODgsMTYgKzM4OCwxNiBAQAogCiAJLyogaW5pdGlhbGl6ZSBETUEgZGVzY3JpcHRvcnMgKi8KIAlwYWRkciA9IG1hY2ItPnJ4X2J1ZmZlcl9kbWE7Ci0JZm9yIChpID0gMDsgaSA8IENGR19NQUNCX1JYX1JJTkdfU0laRTsgaSsrKSB7Ci0JCWlmIChpID09IChDRkdfTUFDQl9SWF9SSU5HX1NJWkUgLSAxKSkKKwlmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQUNCX1JYX1JJTkdfU0laRTsgaSsrKSB7CisJCWlmIChpID09IChDT05GSUdfU1lTX01BQ0JfUlhfUklOR19TSVpFIC0gMSkpCiAJCQlwYWRkciB8PSBSWEFERFJfV1JBUDsKIAkJbWFjYi0+cnhfcmluZ1tpXS5hZGRyID0gcGFkZHI7CiAJCW1hY2ItPnJ4X3JpbmdbaV0uY3RybCA9IDA7CiAJCXBhZGRyICs9IDEyODsKIAl9Ci0JZm9yIChpID0gMDsgaSA8IENGR19NQUNCX1RYX1JJTkdfU0laRTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IENPTkZJR19TWVNfTUFDQl9UWF9SSU5HX1NJWkU7IGkrKykgewogCQltYWNiLT50eF9yaW5nW2ldLmFkZHIgPSAwOwotCQlpZiAoaSA9PSAoQ0ZHX01BQ0JfVFhfUklOR19TSVpFIC0gMSkpCisJCWlmIChpID09IChDT05GSUdfU1lTX01BQ0JfVFhfUklOR19TSVpFIC0gMSkpCiAJCQltYWNiLT50eF9yaW5nW2ldLmN0cmwgPSBUWEJVRl9VU0VEIHwgVFhCVUZfV1JBUDsKIAkJZWxzZQogCQkJbWFjYi0+dHhfcmluZ1tpXS5jdHJsID0gVFhCVUZfVVNFRDsKQEAgLTQ3MywxMiArNDczLDEyIEBACiAKIAluZXRkZXYgPSAmbWFjYi0+bmV0ZGV2OwogCi0JbWFjYi0+cnhfYnVmZmVyID0gZG1hX2FsbG9jX2NvaGVyZW50KENGR19NQUNCX1JYX0JVRkZFUl9TSVpFLAorCW1hY2ItPnJ4X2J1ZmZlciA9IGRtYV9hbGxvY19jb2hlcmVudChDT05GSUdfU1lTX01BQ0JfUlhfQlVGRkVSX1NJWkUsCiAJCQkJCSAgICAgJm1hY2ItPnJ4X2J1ZmZlcl9kbWEpOwotCW1hY2ItPnJ4X3JpbmcgPSBkbWFfYWxsb2NfY29oZXJlbnQoQ0ZHX01BQ0JfUlhfUklOR19TSVpFCisJbWFjYi0+cnhfcmluZyA9IGRtYV9hbGxvY19jb2hlcmVudChDT05GSUdfU1lTX01BQ0JfUlhfUklOR19TSVpFCiAJCQkJCSAgICogc2l6ZW9mKHN0cnVjdCBtYWNiX2RtYV9kZXNjKSwKIAkJCQkJICAgJm1hY2ItPnJ4X3JpbmdfZG1hKTsKLQltYWNiLT50eF9yaW5nID0gZG1hX2FsbG9jX2NvaGVyZW50KENGR19NQUNCX1RYX1JJTkdfU0laRQorCW1hY2ItPnR4X3JpbmcgPSBkbWFfYWxsb2NfY29oZXJlbnQoQ09ORklHX1NZU19NQUNCX1RYX1JJTkdfU0laRQogCQkJCQkgICAqIHNpemVvZihzdHJ1Y3QgbWFjYl9kbWFfZGVzYyksCiAJCQkJCSAgICZtYWNiLT50eF9yaW5nX2RtYSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21jZmZlYy5jIGIvZHJpdmVycy9uZXQvbWNmZmVjLmMKaW5kZXggZjkzY2Y1OS4uYzAwNDc0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWNmZmVjLmMKKysrIGIvZHJpdmVycy9uZXQvbWNmZmVjLmMKQEAgLTUxLDEyICs1MSwxMiBAQAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKIHN0cnVjdCBmZWNfaW5mb19zIGZlY19pbmZvW10gPSB7Ci0jaWZkZWYgQ0ZHX0ZFQzBfSU9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19GRUMwX0lPQkFTRQogCXsKIAkgMCwJCQkvKiBpbmRleCAqLwotCSBDRkdfRkVDMF9JT0JBU0UsCS8qIGlvIGJhc2UgKi8KLQkgQ0ZHX0ZFQzBfUElOTVVYLAkvKiBncGlvIHBpbiBtdXhpbmcgKi8KLQkgQ0ZHX0ZFQzBfTUlJQkFTRSwJLyogbWlpIGJhc2UgKi8KKwkgQ09ORklHX1NZU19GRUMwX0lPQkFTRSwJLyogaW8gYmFzZSAqLworCSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYLAkvKiBncGlvIHBpbiBtdXhpbmcgKi8KKwkgQ09ORklHX1NZU19GRUMwX01JSUJBU0UsCS8qIG1paSBiYXNlICovCiAJIC0xLAkJCS8qIHBoeV9hZGRyICovCiAJIDAsCQkJLyogZHVwbGV4IGFuZCBzcGVlZCAqLwogCSAwLAkJCS8qIHBoeSBuYW1lICovCkBAIC03MCwxNyArNzAsMTcgQEAKIAkgKHN0cnVjdCBmZWNfaW5mb19zICopLTEsCiAJIH0sCiAjZW5kaWYKLSNpZmRlZiBDRkdfRkVDMV9JT0JBU0UKKyNpZmRlZiBDT05GSUdfU1lTX0ZFQzFfSU9CQVNFCiAJewogCSAxLAkJCS8qIGluZGV4ICovCi0JIENGR19GRUMxX0lPQkFTRSwJLyogaW8gYmFzZSAqLwotCSBDRkdfRkVDMV9QSU5NVVgsCS8qIGdwaW8gcGluIG11eGluZyAqLwotCSBDRkdfRkVDMV9NSUlCQVNFLAkvKiBtaWkgYmFzZSAqLworCSBDT05GSUdfU1lTX0ZFQzFfSU9CQVNFLAkvKiBpbyBiYXNlICovCisJIENPTkZJR19TWVNfRkVDMV9QSU5NVVgsCS8qIGdwaW8gcGluIG11eGluZyAqLworCSBDT05GSUdfU1lTX0ZFQzFfTUlJQkFTRSwJLyogbWlpIGJhc2UgKi8KIAkgLTEsCQkJLyogcGh5X2FkZHIgKi8KIAkgMCwJCQkvKiBkdXBsZXggYW5kIHNwZWVkICovCiAJIDAsCQkJLyogcGh5IG5hbWUgKi8KIAkgMCwJCQkvKiBwaHkgbmFtZSBpbml0ICovCi0jaWZkZWYgQ0ZHX0ZFQ19CVUZfVVNFX1NSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0ZFQ19CVUZfVVNFX1NSQU0KIAkgKGNiZF90ICopREJVRl9MRU5HVEgsCS8qIFJYIEJEICovCiAjZWxzZQogCSAwLAkJCS8qIFJYIEJEICovCkBAIC0xMDMsNyArMTAzLDcgQEAKIAogZXh0ZXJuIGludCBmZWNwaW5fc2V0Y2xlYXIoc3RydWN0IGV0aF9kZXZpY2UgKmRldiwgaW50IHNldGNsZWFyKTsKIAotI2lmZGVmIENGR19ESVNDT1ZFUl9QSFkKKyNpZmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogZXh0ZXJuIHZvaWQgX19taWlfaW5pdCh2b2lkKTsKIGV4dGVybiB1aW50IG1paV9zZW5kKHVpbnQgbWlpX2NtZCk7CiBleHRlcm4gaW50IG1paV9kaXNjb3Zlcl9waHkoc3RydWN0IGV0aF9kZXZpY2UgKmRldik7CkBAIC0xNzUsNyArMTc1LDcgQEAKIAkvKiBBY3RpdmF0ZSB0cmFuc21pdCBCdWZmZXIgRGVzY3JpcHRvciBwb2xsaW5nICovCiAJZmVjcC0+dGRhciA9IDB4MDEwMDAwMDA7CS8qIERlc2NyaXB0b3IgcG9sbGluZyBhY3RpdmUgICAgKi8KIAotI2lmbmRlZiBDRkdfRkVDX0JVRl9VU0VfU1JBTQorI2lmbmRlZiBDT05GSUdfU1lTX0ZFQ19CVUZfVVNFX1NSQU0KIAkvKgogCSAqIEZFQyB1bmFibGUgdG8gaW5pdGlhbCB0cmFuc21pdCBkYXRhIHBhY2tldC4KIAkgKiBBIG5vcCB3aWxsIGVuc3VyZSB0aGUgZGVzY3JpcHRvciBwb2xsaW5nIGFjdGl2ZSBjb21wbGV0ZWQuCkBAIC0xODcsNyArMTg3LDcgQEAKIAogI2VuZGlmCiAKLSNpZmRlZiBDRkdfVU5JRllfQ0FDSEUKKyNpZmRlZiBDT05GSUdfU1lTX1VOSUZZX0NBQ0hFCiAJaWNhY2hlX2ludmFsaWQoKTsKICNlbmRpZgogCkBAIC0yMjIsOSArMjIyLDkgQEAKIAlpbnQgbGVuZ3RoOwogCiAJZm9yICg7OykgewotI2lmbmRlZiBDRkdfRkVDX0JVRl9VU0VfU1JBTQorI2lmbmRlZiBDT05GSUdfU1lTX0ZFQ19CVUZfVVNFX1NSQU0KICNlbmRpZgotI2lmZGVmIENGR19VTklGWV9DQUNIRQorI2lmZGVmIENPTkZJR19TWVNfVU5JRllfQ0FDSEUKIAkJaWNhY2hlX2ludmFsaWQoKTsKICNlbmRpZgogCQkvKiBzZWN0aW9uIDE2LjkuMjMuMiAqLwpAQCAtNDM1LDE1ICs0MzUsMTUgQEAKIAlmZWNfcmVzZXQoZGV2KTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9NSUkpIHx8IGRlZmluZWQgKENPTkZJR19NSUkpIHx8IFwKLQlkZWZpbmVkIChDRkdfRElTQ09WRVJfUEhZKQorCWRlZmluZWQgKENPTkZJR19TWVNfRElTQ09WRVJfUEhZKQogCiAJbWlpX2luaXQoKTsKIAogCXNldEZlY0R1cGxleFNwZWVkKGZlY3AsIGJkLCBpbmZvLT5kdXBfc3BkKTsKICNlbHNlCi0jaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKyNpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKIAlzZXRGZWNEdXBsZXhTcGVlZChmZWNwLCBiZCwgKEZFQ0RVUExFWCA8PCAxNikgfCBGRUNTUEVFRCk7Ci0jZW5kaWYJCQkJLyogaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkgKi8KKyNlbmRpZgkJCQkvKiBpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfQ01EX01JSSB8fCBDT05GSUdfTUlJICovCiAKIAkvKiBXZSB1c2Ugc3RyaWN0bHkgcG9sbGluZyBtb2RlIG9ubHkgKi8KQEAgLTQ1Myw5ICs0NTMsOSBAQAogCWZlY3AtPmVpciA9IDB4ZmZmZmZmZmY7CiAKIAkvKiBTZXQgc3RhdGlvbiBhZGRyZXNzICAgKi8KLQlpZiAoKHUzMikgZmVjcCA9PSBDRkdfRkVDMF9JT0JBU0UpIHsKLSNpZmRlZiBDRkdfRkVDMV9JT0JBU0UKLQkJdm9sYXRpbGUgZmVjX3QgKmZlY3AxID0gKGZlY190ICopIChDRkdfRkVDMV9JT0JBU0UpOworCWlmICgodTMyKSBmZWNwID09IENPTkZJR19TWVNfRkVDMF9JT0JBU0UpIHsKKyNpZmRlZiBDT05GSUdfU1lTX0ZFQzFfSU9CQVNFCisJCXZvbGF0aWxlIGZlY190ICpmZWNwMSA9IChmZWNfdCAqKSAoQ09ORklHX1NZU19GRUMxX0lPQkFTRSk7CiAJCWVhID0gJmJkLT5iaV9lbmV0MWFkZHJbMF07CiAJCWZlY3AxLT5wYWxyID0KIAkJICAgIChlYVswXSA8PCAyNCkgfCAoZWFbMV0gPDwgMTYpIHwgKGVhWzJdIDw8IDgpIHwgKGVhWzNdKTsKQEAgLTQ2NiwxNCArNDY2LDE0IEBACiAJCSAgICAoZWFbMF0gPDwgMjQpIHwgKGVhWzFdIDw8IDE2KSB8IChlYVsyXSA8PCA4KSB8IChlYVszXSk7CiAJCWZlY3AtPnBhdXIgPSAoZWFbNF0gPDwgMjQpIHwgKGVhWzVdIDw8IDE2KTsKIAl9IGVsc2UgewotI2lmZGVmIENGR19GRUMwX0lPQkFTRQotCQl2b2xhdGlsZSBmZWNfdCAqZmVjcDAgPSAoZmVjX3QgKikgKENGR19GRUMwX0lPQkFTRSk7CisjaWZkZWYgQ09ORklHX1NZU19GRUMwX0lPQkFTRQorCQl2b2xhdGlsZSBmZWNfdCAqZmVjcDAgPSAoZmVjX3QgKikgKENPTkZJR19TWVNfRkVDMF9JT0JBU0UpOwogCQllYSA9ICZiZC0+YmlfZW5ldGFkZHJbMF07CiAJCWZlY3AwLT5wYWxyID0KIAkJICAgIChlYVswXSA8PCAyNCkgfCAoZWFbMV0gPDwgMTYpIHwgKGVhWzJdIDw8IDgpIHwgKGVhWzNdKTsKIAkJZmVjcDAtPnBhdXIgPSAoZWFbNF0gPDwgMjQpIHwgKGVhWzVdIDw8IDE2KTsKICNlbmRpZgotI2lmZGVmIENGR19GRUMxX0lPQkFTRQorI2lmZGVmIENPTkZJR19TWVNfRkVDMV9JT0JBU0UKIAkJZWEgPSAmYmQtPmJpX2VuZXQxYWRkclswXTsKIAkJZmVjcC0+cGFsciA9CiAJCSAgICAoZWFbMF0gPDwgMjQpIHwgKGVhWzFdIDw8IDE2KSB8IChlYVsyXSA8PCA4KSB8IChlYVszXSk7CkBAIC01NjgsMTQgKzU2OCwxNCBAQAogewogCXN0cnVjdCBldGhfZGV2aWNlICpkZXY7CiAJaW50IGk7Ci0jaWZkZWYgQ0ZHX0ZFQ19CVUZfVVNFX1NSQU0KLQl1MzIgdG1wID0gQ0ZHX0lOSVRfUkFNX0FERFIgKyAweDEwMDA7CisjaWZkZWYgQ09ORklHX1NZU19GRUNfQlVGX1VTRV9TUkFNCisJdTMyIHRtcCA9IENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDB4MTAwMDsKICNlbmRpZgogCiAJZm9yIChpID0gMDsgaSA8IHNpemVvZihmZWNfaW5mbykgLyBzaXplb2YoZmVjX2luZm9bMF0pOyBpKyspIHsKIAogCQlkZXYgPQotCQkgICAgKHN0cnVjdCBldGhfZGV2aWNlICopbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLAorCQkgICAgKHN0cnVjdCBldGhfZGV2aWNlICopbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwKIAkJCQkJCSAgc2l6ZW9mICpkZXYpOwogCQlpZiAoZGV2ID09IE5VTEwpCiAJCQloYW5nKCk7CkBAIC01OTEsNyArNTkxLDcgQEAKIAkJZGV2LT5yZWN2ID0gZmVjX3JlY3Y7CiAKIAkJLyogc2V0dXAgUmVjZWl2ZSBhbmQgVHJhbnNtaXQgYnVmZmVyIGRlc2NyaXB0b3IgKi8KLSNpZmRlZiBDRkdfRkVDX0JVRl9VU0VfU1JBTQorI2lmZGVmIENPTkZJR19TWVNfRkVDX0JVRl9VU0VfU1JBTQogCQlmZWNfaW5mb1tpXS5yeGJkID0gKGNiZF90ICopKCh1MzIpZmVjX2luZm9baV0ucnhiZCArIHRtcCk7CiAJCXRtcCA9ICh1MzIpZmVjX2luZm9baV0ucnhiZDsKIAkJZmVjX2luZm9baV0udHhiZCA9CkBAIC02MDAsMTcgKzYwMCwxNyBAQAogCQl0bXAgPSAodTMyKWZlY19pbmZvW2ldLnR4YmQ7CiAJCWZlY19pbmZvW2ldLnR4YnVmID0KIAkJICAgIChjaGFyICopKCh1MzIpZmVjX2luZm9baV0udHhidWYgKyB0bXAgKwotCQkgICAgKENGR19UWF9FVEhfQlVGRkVSICogc2l6ZW9mKGNiZF90KSkpOworCQkgICAgKENPTkZJR19TWVNfVFhfRVRIX0JVRkZFUiAqIHNpemVvZihjYmRfdCkpKTsKIAkJdG1wID0gKHUzMilmZWNfaW5mb1tpXS50eGJ1ZjsKICNlbHNlCiAJCWZlY19pbmZvW2ldLnJ4YmQgPQotCQkgICAgKGNiZF90ICopIG1lbWFsaWduKENGR19DQUNIRUxJTkVfU0laRSwKKwkJICAgIChjYmRfdCAqKSBtZW1hbGlnbihDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFLAogCQkJCSAgICAgICAoUEtUQlVGU1JYICogc2l6ZW9mKGNiZF90KSkpOwogCQlmZWNfaW5mb1tpXS50eGJkID0KLQkJICAgIChjYmRfdCAqKSBtZW1hbGlnbihDRkdfQ0FDSEVMSU5FX1NJWkUsCisJCSAgICAoY2JkX3QgKikgbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwKIAkJCQkgICAgICAgKFRYX0JVRl9DTlQgKiBzaXplb2YoY2JkX3QpKSk7CiAJCWZlY19pbmZvW2ldLnR4YnVmID0KLQkJICAgIChjaGFyICopbWVtYWxpZ24oQ0ZHX0NBQ0hFTElORV9TSVpFLCBEQlVGX0xFTkdUSCk7CisJCSAgICAoY2hhciAqKW1lbWFsaWduKENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUsIERCVUZfTEVOR1RIKTsKICNlbmRpZgogCiAjaWZkZWYgRVRfREVCVUcKQEAgLTYxOCw3ICs2MTgsNyBAQAogCQkgICAgICAgKGludClmZWNfaW5mb1tpXS5yeGJkLCAoaW50KWZlY19pbmZvW2ldLnR4YmQpOwogI2VuZGlmCiAKLQkJZmVjX2luZm9baV0ucGh5X25hbWUgPSAoY2hhciAqKW1lbWFsaWduKENGR19DQUNIRUxJTkVfU0laRSwgMzIpOworCQlmZWNfaW5mb1tpXS5waHlfbmFtZSA9IChjaGFyICopbWVtYWxpZ24oQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSwgMzIpOwogCiAJCWV0aF9yZWdpc3RlcihkZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZTIwMDBfYmFzZS5jIGIvZHJpdmVycy9uZXQvbmUyMDAwX2Jhc2UuYwppbmRleCA0YTA3NzA4Li5mOTNmOTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9uZTIwMDBfYmFzZS5jCisrKyBiL2RyaXZlcnMvbmV0L25lMjAwMF9iYXNlLmMKQEAgLTc0MCw3ICs3NDAsNyBAQAogCXBrZXkgPSAtMTsKIAogCWRwODM5MDJhX3NlbmQoKHU4ICopIHBhY2tldCwgbGVuZ3RoLCA2NjYpOwotCXRtbyA9IGdldF90aW1lciAoMCkgKyBUT1VUICogQ0ZHX0haOworCXRtbyA9IGdldF90aW1lciAoMCkgKyBUT1VUICogQ09ORklHX1NZU19IWjsKIAl3aGlsZSgxKSB7CiAJCWRwODM5MDJhX3BvbGwoKTsKIAkJaWYgKHBrZXkgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldGFybV9ldGguYyBiL2RyaXZlcnMvbmV0L25ldGFybV9ldGguYwppbmRleCBjMDExODA5Li5jOWUzMjRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9uZXRhcm1fZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvbmV0YXJtX2V0aC5jCkBAIC01Niw3ICs1Niw3IEBACiAJaW50IG1paV9hZGRyOwogCiAJLyogU2VsZWN0IHJlZ2lzdGVyICovCi0JbWlpX2FkZHIgPSBDRkdfRVRIX1BIWV9BRERSICsgcmVnOworCW1paV9hZGRyID0gQ09ORklHX1NZU19FVEhfUEhZX0FERFIgKyByZWc7CiAJU0VUX0VBRERSIChORVRBUk1fRVRIX01JSV9BRERSLCBtaWlfYWRkcik7CiAJLyogV3JpdGUgdmFsdWUgKi8KIAlTRVRfRUFERFIgKE5FVEFSTV9FVEhfTUlJX1dSSVRFLCB2YWx1ZSk7CkBAIC02OCw3ICs2OCw3IEBACiAJaW50IG1paV9hZGRyLCB2YWw7CiAKIAkvKiBTZWxlY3QgcmVnaXN0ZXIgKi8KLQltaWlfYWRkciA9IENGR19FVEhfUEhZX0FERFIgKyByZWc7CisJbWlpX2FkZHIgPSBDT05GSUdfU1lTX0VUSF9QSFlfQUREUiArIHJlZzsKIAlTRVRfRUFERFIgKE5FVEFSTV9FVEhfTUlJX0FERFIsIG1paV9hZGRyKTsKIAkvKiBkbyBvbmUgbWFuYWdlbWVudCBjeWNsZSAqLwogCVNFVF9FQUREUiAoTkVUQVJNX0VUSF9NSUlfQ01ELApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbnM3NTIwX2V0aC5jIGIvZHJpdmVycy9uZXQvbnM3NTIwX2V0aC5jCmluZGV4IGUxOWMyMjMuLmMyODcyNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25zNzUyMF9ldGguYworKysgYi9kcml2ZXJzL25ldC9uczc1MjBfZXRoLmMKQEAgLTg2LDggKzg2LDggQEAKICMgZGVmaW5lIEFTU0VSVChleHByLCBmdW5jKQogI2VuZGlmCQkJCS8qIERFQlVHICovCiAKLSNkZWZpbmUgTlM3NTIwX01JSV9ORUdfREVMQVkJCSg1KkNGR19IWikJLyogaW4gcyAqLwotI2RlZmluZSBUWF9USU1FT1VUCQkJKDUqQ0ZHX0haKQkvKiBpbiBzICovCisjZGVmaW5lIE5TNzUyMF9NSUlfTkVHX0RFTEFZCQkoNSpDT05GSUdfU1lTX0haKQkvKiBpbiBzICovCisjZGVmaW5lIFRYX1RJTUVPVVQJCQkoNSpDT05GSUdfU1lTX0haKQkvKiBpbiBzICovCiAjZGVmaW5lIFJYX1NUQUxMX1dPUktBUk9VTkRfQ05UIDEwMAogCiBzdGF0aWMgaW50IG5zNzUyMF9ldGhfcmVzZXQodm9pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uczk3NTBfZXRoLmMgYi9kcml2ZXJzL25ldC9uczk3NTBfZXRoLmMKaW5kZXggY2FkZTgzMS4uZDQ5MDFiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbnM5NzUwX2V0aC5jCisrKyBiL2RyaXZlcnMvbmV0L25zOTc1MF9ldGguYwpAQCAtOTAsOCArOTAsOCBAQAogIyBkZWZpbmUgQVNTRVJUKGV4cHIsIGZ1bmMpCiAjZW5kaWYgLyogREVCVUcgKi8KIAotI2RlZmluZSBOUzk3NTBfTUlJX05FR19ERUxBWQkJKDUqQ0ZHX0haKSAvKiBpbiBzICovCi0jZGVmaW5lIFRYX1RJTUVPVVQJCQkoNSpDRkdfSFopIC8qIGluIHMgKi8KKyNkZWZpbmUgTlM5NzUwX01JSV9ORUdfREVMQVkJCSg1KkNPTkZJR19TWVNfSFopIC8qIGluIHMgKi8KKyNkZWZpbmUgVFhfVElNRU9VVAkJCSg1KkNPTkZJR19TWVNfSFopIC8qIGluIHMgKi8KIAogLyogQFRPRE8gbW92ZSBpdCB0byBlZXByb20uaCAqLwogI2RlZmluZSBGU19FRVBST01fQVVUT05FR19NQVNLCQkweDcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9taWlwaHliYi5jIGIvZHJpdmVycy9uZXQvcGh5L21paXBoeWJiLmMKaW5kZXggNjQ0NjAxMi4uZTNjMTYzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L21paXBoeWJiLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21paXBoeWJiLmMKQEAgLTM5LDcgKzM5LDcgQEAKIHsKIAlpbnQgajsJCQkvKiBjb3VudGVyICovCiAjaWYgIShkZWZpbmVkKENPTkZJR19FUDgyNDgpIHx8IGRlZmluZWQoQ09ORklHX0VQODJYWE0pKQotCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoKGltbWFwX3QgKikgQ0ZHX0lNTVIsIE1ESU9fUE9SVCk7CisJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCk7CiAjZW5kaWYKIAogCS8qCkBAIC0xMjQsNyArMTI0LDcgQEAKIAlzaG9ydCByZHJlZzsJCS8qIHJlZ2lzdGVyIHdvcmtpbmcgdmFsdWUgKi8KIAlpbnQgajsJCQkvKiBjb3VudGVyICovCiAjaWYgIShkZWZpbmVkKENPTkZJR19FUDgyNDgpIHx8IGRlZmluZWQoQ09ORklHX0VQODJYWE0pKQotCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoKGltbWFwX3QgKikgQ0ZHX0lNTVIsIE1ESU9fUE9SVCk7CisJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCk7CiAjZW5kaWYKIAogCW1paXBoeV9wcmUgKDEsIGFkZHIsIHJlZyk7CkBAIC0xOTEsNyArMTkxLDcgQEAKIHsKIAlpbnQgajsJCQkvKiBjb3VudGVyICovCiAjaWYgIShkZWZpbmVkKENPTkZJR19FUDgyNDgpIHx8IGRlZmluZWQoQ09ORklHX0VQODJYWE0pKQotCXZvbGF0aWxlIGlvcG9ydF90ICppb3AgPSBpb3BvcnRfYWRkciAoKGltbWFwX3QgKikgQ0ZHX0lNTVIsIE1ESU9fUE9SVCk7CisJdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyICgoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIsIE1ESU9fUE9SVCk7CiAjZW5kaWYKIAogCW1paXBoeV9wcmUgKDAsIGFkZHIsIHJlZyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zazk4bGluL2gvc2tkcnYxc3QuaCBiL2RyaXZlcnMvbmV0L3NrOThsaW4vaC9za2RydjFzdC5oCmluZGV4IGFmMzRkN2IuLjhkMzcyYjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NrOThsaW4vaC9za2RydjFzdC5oCisrKyBiL2RyaXZlcnMvbmV0L3NrOThsaW4vaC9za2RydjFzdC5oCkBAIC0xNzQsNyArMTc0LDcgQEAKICNpZiAwCiAjZGVmaW5lIFNLX1RJQ0tTX1BFUl9TRUMJSFoKICNlbHNlCi0jZGVmaW5lIFNLX1RJQ0tTX1BFUl9TRUMJQ0ZHX0haCisjZGVmaW5lIFNLX1RJQ0tTX1BFUl9TRUMJQ09ORklHX1NZU19IWgogI2VuZGlmCiAKICNkZWZpbmUJU0tfTUVNX01BUFBFRF9JTwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2s5OGxpbi9oL3NrZ2Vody5oIGIvZHJpdmVycy9uZXQvc2s5OGxpbi9oL3NrZ2Vody5oCmluZGV4IDUyZGM4M2YuLjhhYWQ0NDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NrOThsaW4vaC9za2dlaHcuaAorKysgYi9kcml2ZXJzL25ldC9zazk4bGluL2gvc2tnZWh3LmgKQEAgLTExMDcsMTAgKzExMDcsMTAgQEAKIC8qCVZhbHVlcyBvZiBjb25uZWN0b3IgYW5kIFBNRCB0eXBlIGNvbXBseSB0byBTeXNLb25uZWN0IGludGVybmFsIHN0ZCAqLwogCiAvKglCMl9NQUNfQ0ZHCSA4IGJpdAlNQUMgQ29uZmlndXJhdGlvbiAvIENoaXAgUmV2aXNpb24gKi8KLSNkZWZpbmUgQ0ZHX0NISVBfUl9NU0sJKDB4Zjw8NCkJLyogQml0IDcuLiA0OiBDaGlwIFJldmlzaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0hJUF9SX01TSwkoMHhmPDw0KQkvKiBCaXQgNy4uIDQ6IENoaXAgUmV2aXNpb24gKi8KIAkJCQkJCQkJCS8qIEJpdCAzLi4gMjoJcmVzZXJ2ZWQgKi8KLSNkZWZpbmUgQ0ZHX0RJU19NMl9DTEsJQklUXzFTCQkvKiBEaXNhYmxlIENsb2NrIGZvciAybmQgTUFDICovCi0jZGVmaW5lIENGR19TTkdfTUFDCQlCSVRfMFMJCS8qIE1BQyBDb25maWc6IDA9MiBNQUNzIC8gMT0xIE1BQyovCisjZGVmaW5lIENPTkZJR19TWVNfRElTX00yX0NMSwlCSVRfMVMJCS8qIERpc2FibGUgQ2xvY2sgZm9yIDJuZCBNQUMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TTkdfTUFDCQlCSVRfMFMJCS8qIE1BQyBDb25maWc6IDA9MiBNQUNzIC8gMT0xIE1BQyovCiAKIC8qCUIyX0NISVBfSUQJIDggYml0CUNoaXAgSWRlbnRpZmljYXRpb24gTnVtYmVyICovCiAjZGVmaW5lIENISVBfSURfR0VORVNJUwkweDBhCQkvKiBDaGlwIElEIGZvciBHRU5FU0lTICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zazk4bGluL3NrZ2Vpbml0LmMgYi9kcml2ZXJzL25ldC9zazk4bGluL3NrZ2Vpbml0LmMKaW5kZXggYWI3NDBjNy4uZGY2M2YyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc2s5OGxpbi9za2dlaW5pdC5jCisrKyBiL2RyaXZlcnMvbmV0L3NrOThsaW4vc2tnZWluaXQuYwpAQCAtMTg4MiwxMCArMTg4MiwxMCBAQAogCiAJLyogcmVhZCBudW1iZXIgb2YgTUFDcyAqLwogCVNLX0lOOChJb0MsIEIyX01BQ19DRkcsICZCeXRlKTsKLQlwQUMtPkdJbmkuR0lNYWNzRm91bmQgPSAoQnl0ZSAmIENGR19TTkdfTUFDKSA/IDEgOiAyOworCXBBQy0+R0luaS5HSU1hY3NGb3VuZCA9IChCeXRlICYgQ09ORklHX1NZU19TTkdfTUFDKSA/IDEgOiAyOwogCiAJLyogZ2V0IENoaXAgUmV2aXNpb24gTnVtYmVyICovCi0JcEFDLT5HSW5pLkdJQ2hpcFJldiA9IChTS19VOCkoKEJ5dGUgJiBDRkdfQ0hJUF9SX01TSykgPj4gNCk7CisJcEFDLT5HSW5pLkdJQ2hpcFJldiA9IChTS19VOCkoKEJ5dGUgJiBDT05GSUdfU1lTX0NISVBfUl9NU0spID4+IDQpOwogCiAJLyogZ2V0IGRpZmYuIFBDSSBwYXJhbWV0ZXJzICovCiAJU0tfSU4xNihJb0MsIEIwX0NUU1QsICZDdHJsU3RhdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zazk4bGluL3UtYm9vdF9jb21wYXQuaCBiL2RyaXZlcnMvbmV0L3NrOThsaW4vdS1ib290X2NvbXBhdC5oCmluZGV4IDFlMzg1ZjguLmNhZGY0MDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NrOThsaW4vdS1ib290X2NvbXBhdC5oCisrKyBiL2RyaXZlcnMvbmV0L3NrOThsaW4vdS1ib290X2NvbXBhdC5oCkBAIC01NCw3ICs1NCw3IEBACiAjZGVmaW5lIEVBR0FJTgkJCQkyCiAjZGVmaW5lIEVCVVNZCQkJCTMKIAotI2RlZmluZSBIWgkJCQlDRkdfSFoKKyNkZWZpbmUgSFoJCQkJQ09ORklHX1NZU19IWgogCiAKICNkZWZpbmUgcHJpbnRrCQkJCXByaW50ZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc21jOTExMTEuYyBiL2RyaXZlcnMvbmV0L3NtYzkxMTExLmMKaW5kZXggZThiMjM1Yi4uODJhYmIwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc21jOTExMTEuYworKysgYi9kcml2ZXJzL25ldC9zbWM5MTExMS5jCkBAIC0zODMsNyArMzgzLDcgQEAKIAogc3RhdGljIGludCBwb2xsNGludCAoYnl0ZSBtYXNrLCBpbnQgdGltZW91dCkKIHsKLQlpbnQgdG1vID0gZ2V0X3RpbWVyICgwKSArIHRpbWVvdXQgKiBDRkdfSFo7CisJaW50IHRtbyA9IGdldF90aW1lciAoMCkgKyB0aW1lb3V0ICogQ09ORklHX1NZU19IWjsKIAlpbnQgaXNfdGltZW91dCA9IDA7CiAJd29yZCBvbGRfYmFuayA9IFNNQ19pbncgKEJTUl9SRUcpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90c2VjLmMgYi9kcml2ZXJzL25ldC90c2VjLmMKaW5kZXggZTM0MDc2Zi4uZDdkYTA4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHNlYy5jCisrKyBiL2RyaXZlcnMvbmV0L3RzZWMuYwpAQCAtMzA1LDggKzMwNSw4IEBACiAJdm9sYXRpbGUgdHNlY190ICpyZWdzID0gcHJpdi0+cmVnczsKIAogCS8qIEFzc2lnbiBhIFBoeXNpY2FsIGFkZHJlc3MgdG8gdGhlIFRCSSAqLwotCXJlZ3MtPnRiaXBhID0gQ0ZHX1RCSVBBX1ZBTFVFOwotCXBoeXJlZ3MtPnRiaXBhID0gQ0ZHX1RCSVBBX1ZBTFVFOworCXJlZ3MtPnRiaXBhID0gQ09ORklHX1NZU19UQklQQV9WQUxVRTsKKwlwaHlyZWdzLT50YmlwYSA9IENPTkZJR19TWVNfVEJJUEFfVkFMVUU7CiAJYXNtKCJzeW5jIik7CiAKIAkvKiBSZXNldCBNSUkgKGR1ZSB0byBuZXcgYWRkcmVzc2VzKSAqLwpAQCAtMTM1NywxMSArMTM1NywxMSBAQAogCQkJCS8qIE92ZXJyaWRlIFBIWSBjb25maWcgc2V0dGluZ3MgKi8KIAkJCQkvKiBDb25maWd1cmUgc29tZSBiYXNpYyBzdHVmZiAqLwogCQkJCXtNSUlNX0NPTlRST0wsIE1JSU1fQ09OVFJPTF9JTklULCAmbWlpX2NyX2luaXR9LAotI2lmZGVmIENGR19WU0M4NjAxX1NLRVdGSVgKKyNpZmRlZiBDT05GSUdfU1lTX1ZTQzg2MDFfU0tFV0ZJWAogCQkJCXtNSUlNX1ZTQzg2MDFfRVBIWV9DT04sTUlJTV9WU0M4NjAxX0VQSFlfQ09OX0lOSVRfU0tFVyxOVUxMfSwKLSNpZiBkZWZpbmVkKENGR19WU0M4NjAxX1NLRVdfVFgpICYmIGRlZmluZWQoQ0ZHX1ZTQzg2MDFfU0tFV19SWCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfVlNDODYwMV9TS0VXX1RYKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfVlNDODYwMV9TS0VXX1JYKQogCQkJCXtNSUlNX0VYVF9QQUdFX0FDQ0VTUywxLE5VTEx9LAotI2RlZmluZSBWU0M4MTAxX1NLRVcJKENGR19WU0M4NjAxX1NLRVdfVFg8PDE0KXwoQ0ZHX1ZTQzg2MDFfU0tFV19SWDw8MTIpCisjZGVmaW5lIFZTQzgxMDFfU0tFVwkoQ09ORklHX1NZU19WU0M4NjAxX1NLRVdfVFg8PDE0KXwoQ09ORklHX1NZU19WU0M4NjAxX1NLRVdfUlg8PDEyKQogCQkJCXtNSUlNX1ZTQzg2MDFfU0tFV19DVFJMLFZTQzgxMDFfU0tFVyxOVUxMfSwKIAkJCQl7TUlJTV9FWFRfUEFHRV9BQ0NFU1MsMCxOVUxMfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdHNpMTA4X2V0aC5jIGIvZHJpdmVycy9uZXQvdHNpMTA4X2V0aC5jCmluZGV4IDUwZmE3NjUuLjA3OTM1NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RzaTEwOF9ldGguYworKysgYi9kcml2ZXJzL25ldC90c2kxMDhfZXRoLmMKQEAgLTU0LDcgKzU0LDcgQEAKICNkZWZpbmUgUlhfUFJJTlRfRVJST1JTCiAjZGVmaW5lIFRYX1BSSU5UX0VSUk9SUwogCi0jZGVmaW5lIEVUSF9CQVNFCShDRkdfVFNJMTA4X0NTUl9CQVNFICsgMHg2MDAwKQorI2RlZmluZSBFVEhfQkFTRQkoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKyAweDYwMDApCiAKICNkZWZpbmUgRVRIX1BPUlRfT0ZGU0VUCTB4NDAwCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZzYzczODUuYyBiL2RyaXZlcnMvbmV0L3ZzYzczODUuYwppbmRleCA0ZTcyNTlmLi5hZGE0MmM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92c2M3Mzg1LmMKKysrIGIvZHJpdmVycy9uZXQvdnNjNzM4NS5jCkBAIC0zNSwxMyArMzUsMTMgQEAKIAl1OCAqZncgPSBmaXJtd2FyZTsKIAl1bnNpZ25lZCBpbnQgaTsKIAotCXUzMiAqZ2xvcmVzZXQgPSAodTMyICopIChDRkdfVlNDNzM4NV9CQVNFICsgMHgxYzA1MCk7Ci0JdTMyICppY3B1X2N0cmwgPSAodTMyICopIChDRkdfVlNDNzM4NV9CQVNFICsgMHgxYzA0MCk7Ci0JdTMyICppY3B1X2FkZHIgPSAodTMyICopIChDRkdfVlNDNzM4NV9CQVNFICsgMHgxYzA0NCk7Ci0JdTMyICppY3B1X2RhdGEgPSAodTMyICopIChDRkdfVlNDNzM4NV9CQVNFICsgMHgxYzA0OCk7Ci0JdTMyICppY3B1X3JvbV9tYXAgPSAodTMyICopIChDRkdfVlNDNzM4NV9CQVNFICsgMHgxYzA3MCk7CisJdTMyICpnbG9yZXNldCA9ICh1MzIgKikgKENPTkZJR19TWVNfVlNDNzM4NV9CQVNFICsgMHgxYzA1MCk7CisJdTMyICppY3B1X2N0cmwgPSAodTMyICopIChDT05GSUdfU1lTX1ZTQzczODVfQkFTRSArIDB4MWMwNDApOworCXUzMiAqaWNwdV9hZGRyID0gKHUzMiAqKSAoQ09ORklHX1NZU19WU0M3Mzg1X0JBU0UgKyAweDFjMDQ0KTsKKwl1MzIgKmljcHVfZGF0YSA9ICh1MzIgKikgKENPTkZJR19TWVNfVlNDNzM4NV9CQVNFICsgMHgxYzA0OCk7CisJdTMyICppY3B1X3JvbV9tYXAgPSAodTMyICopIChDT05GSUdfU1lTX1ZTQzczODVfQkFTRSArIDB4MWMwNzApOwogI2lmZGVmIERFQlVHCi0JdTMyICpjaGlwaWQgPSAodTMyICopIChDRkdfVlNDNzM4NV9CQVNFICsgMHgxYzA2MCk7CisJdTMyICpjaGlwaWQgPSAodTMyICopIChDT05GSUdfU1lTX1ZTQzczODVfQkFTRSArIDB4MWMwNjApOwogI2VuZGlmCiAKIAlvdXRfYmUzMihnbG9yZXNldCwgMyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2kuYyBiL2RyaXZlcnMvcGNpL3BjaS5jCmluZGV4IGI1ZWVhODkuLjQxNzgwZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3BjaS5jCisrKyBiL2RyaXZlcnMvcGNpL3BjaS5jCkBAIC0xNTcsNyArMTU3LDcgQEAKIAogCWZvciAoaG9zZSA9IGhvc2VfaGVhZDsgaG9zZTsgaG9zZSA9IGhvc2UtPm5leHQpCiAJewotI2lmZGVmIENGR19TQ1NJX1NDQU5fQlVTX1JFVkVSU0UKKyNpZmRlZiBDT05GSUdfU1lTX1NDU0lfU0NBTl9CVVNfUkVWRVJTRQogCQlmb3IgKGJ1cyA9IGhvc2UtPmxhc3RfYnVzbm87IGJ1cyA+PSBob3NlLT5maXJzdF9idXNubzsgYnVzLS0pCiAjZWxzZQogCQlmb3IgKGJ1cyA9IGhvc2UtPmZpcnN0X2J1c25vOyBidXMgPD0gaG9zZS0+bGFzdF9idXNubzsgYnVzKyspCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2lfYXV0by5jIGIvZHJpdmVycy9wY2kvcGNpX2F1dG8uYwppbmRleCAyYWNmOWJmLi4zODQ0MzU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2lfYXV0by5jCisrKyBiL2RyaXZlcnMvcGNpL3BjaV9hdXRvLmMKQEAgLTI2LDkgKzI2LDkgQEAKIAogI2RlZmluZQlQQ0lBVVRPX0lERV9NT0RFX01BU0sJCTB4MDUKIAotLyogdGhlIHVzZXIgY2FuIGRlZmluZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRSB0byBhdm9pZCBwcm9ibGVtcyAqLwotI2lmbmRlZiBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRQotI2RlZmluZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRQk4CisvKiB0aGUgdXNlciBjYW4gZGVmaW5lIENPTkZJR19TWVNfUENJX0NBQ0hFX0xJTkVfU0laRSB0byBhdm9pZCBwcm9ibGVtcyAqLworI2lmbmRlZiBDT05GSUdfU1lTX1BDSV9DQUNIRV9MSU5FX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFCTgKICNlbmRpZgogCiAvKgpAQCAtMTU0LDcgKzE1NCw3IEBACiAKIAlwY2lfaG9zZV93cml0ZV9jb25maWdfZHdvcmQoaG9zZSwgZGV2LCBQQ0lfQ09NTUFORCwgY21kc3RhdCk7CiAJcGNpX2hvc2Vfd3JpdGVfY29uZmlnX2J5dGUoaG9zZSwgZGV2LCBQQ0lfQ0FDSEVfTElORV9TSVpFLAotCQlDRkdfUENJX0NBQ0hFX0xJTkVfU0laRSk7CisJCUNPTkZJR19TWVNfUENJX0NBQ0hFX0xJTkVfU0laRSk7CiAJcGNpX2hvc2Vfd3JpdGVfY29uZmlnX2J5dGUoaG9zZSwgZGV2LCBQQ0lfTEFURU5DWV9USU1FUiwgMHg4MCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3RzaTEwOF9wY2kuYyBiL2RyaXZlcnMvcGNpL3RzaTEwOF9wY2kuYwppbmRleCBlZGQ2MTRmLi5kMTUzZmM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS90c2kxMDhfcGNpLmMKKysrIGIvZHJpdmVycy9wY2kvdHNpMTA4X3BjaS5jCkBAIC00NywzMiArNDcsMzIgQEAKIAkgKiByZXF1ZXN0cy4KIAkgKi8KIAkvKiBSZWFkIFBCIEVycm9yIExvZyBSZWdpc3RlcnMgKi8KLQllcnJfc3RhdCA9ICoodm9sYXRpbGUgdTMyICopKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCWVycl9zdGF0ID0gKih2b2xhdGlsZSB1MzIgKikoQ09ORklHX1NZU19UU0kxMDhfQ1NSX0JBU0UgKwogCQkJCSAgICAgVFNJMTA4X1BCX1JFR19PRkZTRVQgKyBQQl9FUlJDUyk7Ci0JZXJyX2FkZHIgPSAqKHZvbGF0aWxlIHUzMiAqKShDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwllcnJfYWRkciA9ICoodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJCQkgICAgIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfQUVSUik7CiAJaWYgKGVycl9zdGF0ICYgUEJfRVJSQ1NfRVMpIHsKIAkJLyogQ2xlYXIgUENJL1ggYnVzIGVycm9ycyBpZiBhcHBsaWNhYmxlICovCi0JCWlmICgoZXJyX2FkZHIgJiAweEZGMDAwMDAwKSA9PSBDRkdfUENJX0NGR19CQVNFKSB7CisJCWlmICgoZXJyX2FkZHIgJiAweEZGMDAwMDAwKSA9PSBDT05GSUdfU1lTX1BDSV9DRkdfQkFTRSkgewogCQkJLyogQ2xlYXIgZXJyb3IgZmxhZyAqLwotCQkJKih1MzIgKikgKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCQkJKih1MzIgKikgKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJCQkgIFRTSTEwOF9QQl9SRUdfT0ZGU0VUICsgUEJfRVJSQ1MpID0KIAkJCSAgICBQQl9FUlJDU19FUzsKIAogCQkJLyogQ2xlYXIgcmVhZCBlcnJvciByZXBvcnRlZCBpbiBQQl9JU1IgKi8KLQkJCSoodTMyICopIChDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwkJCSoodTMyICopIChDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArCiAJCQkJICBUU0kxMDhfUEJfUkVHX09GRlNFVCArIFBCX0lTUikgPQogCQkJICAgIFBCX0lTUl9QQlNfUkRfRVJSOwogCiAJCS8qIENsZWFyIGVycm9ycyByZXBvcnRlZCBieSBQQ0kgQ1NSIChOb3JtYWxseSBNYXN0ZXIgQWJvcnQpICovCi0JCQlwY2lfc3RhdCA9ICoodm9sYXRpbGUgdTMyICopKENGR19UU0kxMDhfQ1NSX0JBU0UgKworCQkJcGNpX3N0YXQgPSAqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArCiAJCQkJCQkgICAgIFRTSTEwOF9QQ0lfUkVHX09GRlNFVCArCiAJCQkJCQkgICAgIFBDSV9DU1IpOwotCQkJKih2b2xhdGlsZSB1MzIgKikoQ0ZHX1RTSTEwOF9DU1JfQkFTRSArCisJCQkqKHZvbGF0aWxlIHUzMiAqKShDT05GSUdfU1lTX1RTSTEwOF9DU1JfQkFTRSArCiAJCQkJCSAgVFNJMTA4X1BDSV9SRUdfT0ZGU0VUICsgUENJX0NTUikgPQogCQkJICAgIHBjaV9zdGF0OwogCi0JCQkqKHZvbGF0aWxlIHUzMiAqKShDRkdfVFNJMTA4X0NTUl9CQVNFICsKKwkJCSoodm9sYXRpbGUgdTMyICopKENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFICsKIAkJCQkJICBUU0kxMDhfUENJX1JFR19PRkZTRVQgKwogCQkJCQkgIFBDSV9JUlBfU1RBVCkgPSBQQ0lfSVJQX1NUQVRfUF9DU1I7CiAJCX0KQEAgLTEwMiw4ICsxMDIsOCBAQAogc3RhdGljIGludCB0c2kxMDhfcmVhZF9jb25maWdfZHdvcmQgKHN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSwKIAkJCQkgICAgcGNpX2Rldl90IGRldiwgaW50IG9mZnNldCwgdTMyICogdmFsdWUpCiB7Ci0JZGV2ICY9IChDRkdfUENJX0NGR19TSVpFIC0gMSk7Ci0JZGV2IHw9IChDRkdfUENJX0NGR19CQVNFIHwgKG9mZnNldCAmIDB4ZmMpKTsKKwlkZXYgJj0gKENPTkZJR19TWVNfUENJX0NGR19TSVpFIC0gMSk7CisJZGV2IHw9IChDT05GSUdfU1lTX1BDSV9DRkdfQkFTRSB8IChvZmZzZXQgJiAweGZjKSk7CiAJKnZhbHVlID0gX19nZXRfcGNpX2NvbmZpZ19kd29yZChkZXYpOwogCWlmICgweEZGRkZGRkZGID09ICp2YWx1ZSkKIAkJdHNpMTA4X2NsZWFyX3BjaV9lcnJvciAoKTsKQEAgLTExMyw4ICsxMTMsOCBAQAogc3RhdGljIGludCB0c2kxMDhfd3JpdGVfY29uZmlnX2R3b3JkIChzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UsCiAJCQkJICAgICBwY2lfZGV2X3QgZGV2LCBpbnQgb2Zmc2V0LCB1MzIgdmFsdWUpCiB7Ci0JZGV2ICY9IChDRkdfUENJX0NGR19TSVpFIC0gMSk7Ci0JZGV2IHw9IChDRkdfUENJX0NGR19CQVNFIHwgKG9mZnNldCAmIDB4ZmMpKTsKKwlkZXYgJj0gKENPTkZJR19TWVNfUENJX0NGR19TSVpFIC0gMSk7CisJZGV2IHw9IChDT05GSUdfU1lTX1BDSV9DRkdfQkFTRSB8IChvZmZzZXQgJiAweGZjKSk7CiAKIAlvdXRfbGUzMiAoKHZvbGF0aWxlIHVuc2lnbmVkICopZGV2LCB2YWx1ZSk7CiAKQEAgLTEyOSwxOSArMTI5LDE5IEBACiAJaG9zZS0+bGFzdF9idXNubyA9IDB4ZmY7CiAKIAlwY2lfc2V0X3JlZ2lvbiAoaG9zZS0+cmVnaW9ucyArIDAsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9CVVMsCi0JCSAgICAgICBDRkdfUENJX01FTU9SWV9QSFlTLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1PUllfU0laRSwgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMsCisJCSAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSwgUENJX1JFR0lPTl9NRU0gfCBQQ0lfUkVHSU9OX01FTU9SWSk7CiAKIAkvKiBQQ0kgbWVtb3J5IHNwYWNlICovCiAJcGNpX3NldF9yZWdpb24gKGhvc2UtPnJlZ2lvbnMgKyAxLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1fQlVTLAotCQkgICAgICAgQ0ZHX1BDSV9NRU1fUEhZUywgQ0ZHX1BDSV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOworCQkgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNX0JVUywKKwkJICAgICAgIENPTkZJR19TWVNfUENJX01FTV9QSFlTLCBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSwgUENJX1JFR0lPTl9NRU0pOwogCiAJLyogUENJIEkvTyBzcGFjZSAqLwogCXBjaV9zZXRfcmVnaW9uIChob3NlLT5yZWdpb25zICsgMiwKLQkJICAgICAgIENGR19QQ0lfSU9fQlVTLAotCQkgICAgICAgQ0ZHX1BDSV9JT19QSFlTLCBDRkdfUENJX0lPX1NJWkUsIFBDSV9SRUdJT05fSU8pOworCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fQlVTLAorCQkgICAgICAgQ09ORklHX1NZU19QQ0lfSU9fUEhZUywgQ09ORklHX1NZU19QQ0lfSU9fU0laRSwgUENJX1JFR0lPTl9JTyk7CiAKIAlob3NlLT5yZWdpb25fY291bnQgPSAzOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS93ODNjNTUzZi5jIGIvZHJpdmVycy9wY2kvdzgzYzU1M2YuYwppbmRleCBkNzM1NWE0Li44NTYxNDIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS93ODNjNTUzZi5jCisrKyBiL2RyaXZlcnMvcGNpL3c4M2M1NTNmLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAkJCW91dF9iZTE2KCh1MTYqKSAoYWRkciksKHZhbCkpOyB1ZGVsYXkoMSk7IFwKIAkJCX0gd2hpbGUgKDApCiAKLWV4dGVybiB1aW50IGlkZV9idXNfb2Zmc2V0W0NGR19JREVfTUFYQlVTXTsKK2V4dGVybiB1aW50IGlkZV9idXNfb2Zmc2V0W0NPTkZJR19TWVNfSURFX01BWEJVU107CiAKIHZvaWQgaW5pdGlhbGlzZV9waWModm9pZCk7CiB2b2lkIGluaXRpYWxpc2VfZG1hKHZvaWQpOwpAQCAtMTA1LDcgKzEwNSw3IEBACiAKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2YnVzZm4sIFBDSV9CQVNFX0FERFJFU1NfMCwgJmlkZV9idXNfb2Zmc2V0WzBdKTsKIAlpZGVfYnVzX29mZnNldFswXSAmPSB+MTsKLSNpZiBDRkdfSURFX01BWEJVUyA+IDEKKyNpZiBDT05GSUdfU1lTX0lERV9NQVhCVVMgPiAxCiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldmJ1c2ZuLCBQQ0lfQkFTRV9BRERSRVNTXzIsICZpZGVfYnVzX29mZnNldFsxXSk7CiAJaWRlX2J1c19vZmZzZXRbMV0gJj0gfjE7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2k4MjM2NS5jIGIvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKaW5kZXggMWUyNDMxZS4uMWJjYjNhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKKysrIGIvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKQEAgLTkwOSw4ICs5MDksOCBAQAogCW1lbS5tYXAgPSAwOwogCW1lbS5mbGFncyA9IE1BUF9BVFRSSUIgfCBNQVBfQUNUSVZFOwogCW1lbS5zcGVlZCA9IDMwMDsKLQltZW0uc3lzX3N0YXJ0ID0gQ0ZHX1BDTUNJQV9NRU1fQUREUjsKLQltZW0uc3lzX3N0b3AgPSBDRkdfUENNQ0lBX01FTV9BRERSICsgQ0ZHX1BDTUNJQV9NRU1fU0laRSAtIDE7CisJbWVtLnN5c19zdGFydCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOworCW1lbS5zeXNfc3RvcCA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSICsgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgLSAxOwogCW1lbS5jYXJkX3N0YXJ0ID0gMDsKIAlpMzY1X3NldF9tZW1fbWFwICgmc29ja2V0LCAmbWVtKTsKIApAQCAtOTE4LDggKzkxOCw4IEBACiAJbWVtLm1hcCA9IDE7CiAJbWVtLmZsYWdzID0gTUFQX0FDVElWRTsKIAltZW0uc3BlZWQgPSAzMDA7Ci0JbWVtLnN5c19zdGFydCA9IENGR19QQ01DSUFfTUVNX0FERFIgKyBDRkdfUENNQ0lBX01FTV9TSVpFOwotCW1lbS5zeXNfc3RvcCA9IENGR19QQ01DSUFfTUVNX0FERFIgKyAoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUpIC0gMTsKKwltZW0uc3lzX3N0YXJ0ID0gQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIgKyBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRTsKKwltZW0uc3lzX3N0b3AgPSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUiArICgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUpIC0gMTsKIAltZW0uY2FyZF9zdGFydCA9IDA7CiAJaTM2NV9zZXRfbWVtX21hcCAoJnNvY2tldCwgJm1lbSk7CiAKQEAgLTk4OCw4ICs5ODgsOCBAQAogewogCXVfaW50IHRtcFsyXTsKIAl1X2ludCAqbWVtID0gKHZvaWQgKikgc29ja2V0LmNiX3BoeXM7Ci0JdV9jaGFyICpjaXMgPSAodm9pZCAqKSBDRkdfUENNQ0lBX01FTV9BRERSOwotCXVfY2hhciAqaWRlID0gKHZvaWQgKikgKENGR19BVEFfQkFTRV9BRERSICsgQ0ZHX0FUQV9SRUdfT0ZGU0VUKTsKKwl1X2NoYXIgKmNpcyA9ICh2b2lkICopIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOworCXVfY2hhciAqaWRlID0gKHZvaWQgKikgKENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiArIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQpOwogCiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXYsIDB4MDAsIHRtcCArIDApOwogCXBjaV9yZWFkX2NvbmZpZ19kd29yZCAoZGV2LCAweDgwLCB0bXAgKyAxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL21hcnVidW5fcGNtY2lhLmMgYi9kcml2ZXJzL3BjbWNpYS9tYXJ1YnVuX3BjbWNpYS5jCmluZGV4IGQwNzViYTMuLmY3MTVkZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL21hcnVidW5fcGNtY2lhLmMKKysrIGIvZHJpdmVycy9wY21jaWEvbWFydWJ1bl9wY21jaWEuYwpAQCAtMzgsMjAgKzM4LDIwIEBACiAjaWYgZGVmaW5lZChDT05GSUdfUENNQ0lBKQogCiAvKiBNUi1TSFBDLTAxIHJlZ2lzdGVyICovCi0jZGVmaW5lIE1SU0hQQ19NT0RFCShDRkdfTUFSVUJVTl9NUlNIUEMgKyA0KQotI2RlZmluZSBNUlNIUENfT1BUSU9OICAgKENGR19NQVJVQlVOX01SU0hQQyArIDYpCi0jZGVmaW5lIE1SU0hQQ19DU1IgICAgICAoQ0ZHX01BUlVCVU5fTVJTSFBDICsgOCkKLSNkZWZpbmUgTVJTSFBDX0lTUiAgICAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAxMCkKLSNkZWZpbmUgTVJTSFBDX0lDUiAgICAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAxMikKLSNkZWZpbmUgTVJTSFBDX0NQV0NSICAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAxNCkKLSNkZWZpbmUgTVJTSFBDX01XMENSMSAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAxNikKLSNkZWZpbmUgTVJTSFBDX01XMUNSMSAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAxOCkKLSNkZWZpbmUgTVJTSFBDX0lPV0NSMSAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAyMCkKLSNkZWZpbmUgTVJTSFBDX01XMENSMiAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAyMikKLSNkZWZpbmUgTVJTSFBDX01XMUNSMiAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAyNCkKLSNkZWZpbmUgTVJTSFBDX0lPV0NSMiAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAyNikKLSNkZWZpbmUgTVJTSFBDX0NEQ1IgICAgIChDRkdfTUFSVUJVTl9NUlNIUEMgKyAyOCkKLSNkZWZpbmUgTVJTSFBDX1BDSUNfSU5GTyAoQ0ZHX01BUlVCVU5fTVJTSFBDICsgMzApCisjZGVmaW5lIE1SU0hQQ19NT0RFCShDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgNCkKKyNkZWZpbmUgTVJTSFBDX09QVElPTiAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgNikKKyNkZWZpbmUgTVJTSFBDX0NTUiAgICAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgOCkKKyNkZWZpbmUgTVJTSFBDX0lTUiAgICAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgMTApCisjZGVmaW5lIE1SU0hQQ19JQ1IgICAgICAoQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQyArIDEyKQorI2RlZmluZSBNUlNIUENfQ1BXQ1IgICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyAxNCkKKyNkZWZpbmUgTVJTSFBDX01XMENSMSAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgMTYpCisjZGVmaW5lIE1SU0hQQ19NVzFDUjEgICAoQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQyArIDE4KQorI2RlZmluZSBNUlNIUENfSU9XQ1IxICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyAyMCkKKyNkZWZpbmUgTVJTSFBDX01XMENSMiAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgMjIpCisjZGVmaW5lIE1SU0hQQ19NVzFDUjIgICAoQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQyArIDI0KQorI2RlZmluZSBNUlNIUENfSU9XQ1IyICAgKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyAyNikKKyNkZWZpbmUgTVJTSFBDX0NEQ1IgICAgIChDT05GSUdfU1lTX01BUlVCVU5fTVJTSFBDICsgMjgpCisjZGVmaW5lIE1SU0hQQ19QQ0lDX0lORk8gKENPTkZJR19TWVNfTUFSVUJVTl9NUlNIUEMgKyAzMCkKIAogaW50IHBjbWNpYV9vbiAodm9pZCkKIHsKQEAgLTk4LDggKzk4LDggQEAKIAogCW91dHcoMHgwMDAwLE1SU0hQQ19JU1IpOwogCW91dHcoMHgyMDAwLE1SU0hQQ19JQ1IpOwotCW91dGIoMHgwMCwoQ0ZHX01BUlVCVU5fTVcyICsgMHgyMDYpKTsKLQlvdXRiKDB4NDIsKENGR19NQVJVQlVOX01XMiArIDB4MjAwKSk7CisJb3V0YigweDAwLChDT05GSUdfU1lTX01BUlVCVU5fTVcyICsgMHgyMDYpKTsKKwlvdXRiKDB4NDIsKENPTkZJR19TWVNfTUFSVUJVTl9NVzIgKyAweDIwMCkpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9tcGM4eHhfcGNtY2lhLmMgYi9kcml2ZXJzL3BjbWNpYS9tcGM4eHhfcGNtY2lhLmMKaW5kZXggMTQ0NzdhNC4uOTVlYTVlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvbXBjOHh4X3BjbWNpYS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL21wYzh4eF9wY21jaWEuYwpAQCAtMzQsOCArMzQsOCBAQAogCiAvKiBsb29rIHVwIHRhYmxlIGZvciBwZ2NyeCByZWdpc3RlcnMgKi8KIHVfaW50ICpwY21jaWFfcGdjcnhbMl0gPSB7Ci0JJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGdjcmEsCi0JJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGdjcmIsCisJJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYS5wY21jX3BnY3JhLAorCSYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEucGNtY19wZ2NyYiwKIH07CiAKIC8qCkBAIC02NiwxMSArNjYsMTEgQEAKICNlbmRpZgogCiAjaWYJZGVmaW5lZChDT05GSUdfTFdNT04pIHx8IGRlZmluZWQoQ09ORklHX05TQ1UpCi0jZGVmaW5lCUNGR19QQ01DSUFfVElNSU5HCSgJUENNQ0lBX1NIVCg5KQlcCisjZGVmaW5lCUNPTkZJR19TWVNfUENNQ0lBX1RJTUlORwkoCVBDTUNJQV9TSFQoOSkJXAogCQkJCXwJUENNQ0lBX1NTVCgzKQlcCiAJCQkJfAlQQ01DSUFfU0woMTIpKQogI2Vsc2UKLSNkZWZpbmUJQ0ZHX1BDTUNJQV9USU1JTkcJKAlQQ01DSUFfU0hUKDIpCVwKKyNkZWZpbmUJQ09ORklHX1NZU19QQ01DSUFfVElNSU5HCSgJUENNQ0lBX1NIVCgyKQlcCiAJCQkJfAlQQ01DSUFfU1NUKDQpCVwKIAkJCQl8CVBDTUNJQV9TTCg5KSkKICNlbmRpZgpAQCAtODgsMTIgKzg4LDEyIEBACiAJZGVidWcgKCJFbmFibGUgUENNQ0lBICIgUENNQ0lBX1NMT1RfTVNHICJcbiIpOwogCiAJLyogaW50aWFsaXplIHRoZSBmaXhlZCBtZW1vcnkgd2luZG93cyAqLwotCXdpbiA9IChwY21jaWFfd2luX3QgKikoJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGJyMCk7Ci0JYmFzZSA9IENGR19QQ01DSUFfTUVNX0FERFI7CisJd2luID0gKHBjbWNpYV93aW5fdCAqKSgmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGJyMCk7CisJYmFzZSA9IENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSOwogCi0JaWYoKHJlZyA9IG04eHhfZ2V0X2dyYXljb2RlKENGR19QQ01DSUFfTUVNX1NJWkUpKSA9PSAtMSkgeworCWlmKChyZWcgPSBtOHh4X2dldF9ncmF5Y29kZShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSkpID09IC0xKSB7CiAJCXByaW50ZiAoIkNhbm5vdCBzZXQgd2luZG93IHNpemUgdG8gMHglMDh4XG4iLAotCQkJQ0ZHX1BDTUNJQV9NRU1fU0laRSk7CisJCQlDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSk7CiAJCXJldHVybiAoMSk7CiAJfQogCkBAIC0xMjUsNyArMTI1LDcgQEAKIAkJCQl8CVBDTUNJQV9QUlNfQVRUUgogCQkJCXwJc2xvdGJpdAogCQkJCXwJUENNQ0lBX1BWCi0JCQkJfAlDRkdfUENNQ0lBX1RJTUlORyApOworCQkJCXwJQ09ORklHX1NZU19QQ01DSUFfVElNSU5HICk7CiAJCQlicmVhazsKIAkJfQogCQljYXNlIDU6CkBAIC0xMzUsNyArMTM1LDcgQEAKIAkJCQl8CVBDTUNJQV9QUlNfSU8KIAkJCQl8CXNsb3RiaXQKIAkJCQl8CVBDTUNJQV9QVgotCQkJCXwJQ0ZHX1BDTUNJQV9USU1JTkcgKTsKKwkJCQl8CUNPTkZJR19TWVNfUENNQ0lBX1RJTUlORyApOwogCQkJYnJlYWs7CiAJCX0KIAkJY2FzZSA2OgpAQCAtMTQ1LDcgKzE0NSw3IEBACiAJCQkJfAlQQ01DSUFfUFJTX0lPCiAJCQkJfAlzbG90Yml0CiAJCQkJfAlQQ01DSUFfUFYKLQkJCQl8CUNGR19QQ01DSUFfVElNSU5HICk7CisJCQkJfAlDT05GSUdfU1lTX1BDTUNJQV9USU1JTkcgKTsKIAkJCWJyZWFrOwogCQl9CiAjZW5kaWYJLyogQ09ORklHX0lERV84eHhfUENDQVJEICovCkBAIC0xNTcsNyArMTU3LDcgQEAKIAkJCQl8CVBDTUNJQV9QUlNfSU8KIAkJCQl8CXNsb3RiaXQKIAkJCQl8CVBDTUNJQV9QVgotCQkJCXwJQ0ZHX1BDTUNJQV9USU1JTkcgKTsKKwkJCQl8CUNPTkZJR19TWVNfUENNQ0lBX1RJTUlORyApOwogCQkJYnJlYWs7CiAJCX0KICNlbmRpZgkvKiBDT05GSUdfSE1JMTAgKi8KQEAgLTE2OCw3ICsxNjgsNyBAQAogCiAJCWRlYnVnICgiTWVtV2luICVkOiBQQlIgMHglMDhsWCAgUE9SICUwOGxYXG4iLAogCQkgICAgICAgaSwgd2luLT5iciwgd2luLT5vcik7Ci0JCWJhc2UgKz0gQ0ZHX1BDTUNJQV9NRU1fU0laRTsKKwkJYmFzZSArPSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRTsKIAkJKyt3aW47CiAJfQogCkBAIC0xOTgsMTQgKzE5OCwxNCBAQAogCXByaW50ZiAoIkRpc2FibGUgUENNQ0lBICIgUENNQ0lBX1NMT1RfTVNHICJcbiIpOwogCiAJLyogY2xlYXIgaW50ZXJydXB0IHN0YXRlLCBhbmQgZGlzYWJsZSBpbnRlcnJ1cHRzICovCi0JKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wc2NyID0gIFBDTUNJQV9NQVNLKF9zbG90Xyk7Ci0JKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wZXIgJj0gflBDTUNJQV9NQVNLKF9zbG90Xyk7CisJKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcHNjciA9ICBQQ01DSUFfTUFTSyhfc2xvdF8pOworCSgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYS5wY21jX3BlciAmPSB+UENNQ0lBX01BU0soX3Nsb3RfKTsKIAogCS8qIHR1cm4gb2ZmIGludGVycnVwdCBhbmQgZGlzYWJsZSBDeE9FICovCiAJUENNQ0lBX1BHQ1JYKF9zbG90XykgPSBfX01ZX1BDTUNJQV9HQ1JYX0NYT0U7CiAKIAkvKiB0dXJuIG9mZiBtZW1vcnkgd2luZG93cyAqLwotCXdpbiA9IChwY21jaWFfd2luX3QgKikoJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGJyMCk7CisJd2luID0gKHBjbWNpYV93aW5fdCAqKSgmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGJyMCk7CiAKIAlmb3IgKGk9MDsgaTxQQ01DSUFfTUVNX1dJTl9OTzsgKytpKSB7CiAJCS8qIGRpc2FibGUgbWVtb3J5IHdpbmRvdyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvcHhhX3BjbWNpYS5jIGIvZHJpdmVycy9wY21jaWEvcHhhX3BjbWNpYS5jCmluZGV4IDExZDg1OTAuLmQwNmFiNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3B4YV9wY21jaWEuYworKysgYi9kcml2ZXJzL3BjbWNpYS9weGFfcGNtY2lhLmMKQEAgLTEzLDEyICsxMywxMiBAQAogaW50IHBjbWNpYV9vbiAodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgcmVnX2FycltdID0gewotCQkweDQ4MDAwMDI4LCBDRkdfTUNNRU0wX1ZBTCwKLQkJMHg0ODAwMDAyYywgQ0ZHX01DTUVNMV9WQUwsCi0JCTB4NDgwMDAwMzAsIENGR19NQ0FUVDBfVkFMLAotCQkweDQ4MDAwMDM0LCBDRkdfTUNBVFQxX1ZBTCwKLQkJMHg0ODAwMDAzOCwgQ0ZHX01DSU8wX1ZBTCwKLQkJMHg0ODAwMDAzYywgQ0ZHX01DSU8xX1ZBTCwKKwkJMHg0ODAwMDAyOCwgQ09ORklHX1NZU19NQ01FTTBfVkFMLAorCQkweDQ4MDAwMDJjLCBDT05GSUdfU1lTX01DTUVNMV9WQUwsCisJCTB4NDgwMDAwMzAsIENPTkZJR19TWVNfTUNBVFQwX1ZBTCwKKwkJMHg0ODAwMDAzNCwgQ09ORklHX1NZU19NQ0FUVDFfVkFMLAorCQkweDQ4MDAwMDM4LCBDT05GSUdfU1lTX01DSU8wX1ZBTCwKKwkJMHg0ODAwMDAzYywgQ09ORklHX1NZU19NQ0lPMV9WQUwsCiAKIAkJMCwgMAogCX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS90aV9wY2kxNDEwYS5jIGIvZHJpdmVycy9wY21jaWEvdGlfcGNpMTQxMGEuYwppbmRleCBjODc2ZDBjLi42YWI5NzU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS90aV9wY2kxNDEwYS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3RpX3BjaTE0MTBhLmMKQEAgLTg4LDggKzg4LDggQEAKIAogaW50IGRvX3Bpbml0KGNtZF90YmxfdCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotI2lmbmRlZiBDRkdfRklSU1RfUENNQ0lBX0JVUwotIyBkZWZpbmUgQ0ZHX0ZJUlNUX1BDTUNJQV9CVVMgMAorI2lmbmRlZiBDT05GSUdfU1lTX0ZJUlNUX1BDTUNJQV9CVVMKKyMgZGVmaW5lIENPTkZJR19TWVNfRklSU1RfUENNQ0lBX0JVUyAwCiAjZW5kaWYKIAogCWludCByY29kZSA9IDA7CkBAIC05OSw3ICs5OSw3IEBACiAJCXJldHVybiAxOwogCX0KIAlpZiAoc3RyY21wKGFyZ3ZbMV0sIm9uIikgPT0gMCkgewotCQlyY29kZSA9IHBjbWNpYV9vbihDRkdfRklSU1RfUENNQ0lBX0JVUyk7CisJCXJjb2RlID0gcGNtY2lhX29uKENPTkZJR19TWVNfRklSU1RfUENNQ0lBX0JVUyk7CiAJfSBlbHNlIGlmIChzdHJjbXAoYXJndlsxXSwib2ZmIikgPT0gMCkgewogCQlyY29kZSA9IHBjbWNpYV9vZmYoKTsKIAl9IGVsc2UgewpAQCAtMTQ4LDExICsxNDgsMTEgQEAKIAkJZGVidWcoIkVuYWJsZSBQQ01DSUEgVGkgUENJMTQxMEFcbiIpOwogCX0KIAotCXBjbWNpYV9jaXNfcHRyID0gQ0ZHX1BDTUNJQV9DSVNfV0lOOwotCWNpc19sZW4gPSBDRkdfUENNQ0lBX0NJU19XSU5fU0laRTsKKwlwY21jaWFfY2lzX3B0ciA9IENPTkZJR19TWVNfUENNQ0lBX0NJU19XSU47CisJY2lzX2xlbiA9IENPTkZJR19TWVNfUENNQ0lBX0NJU19XSU5fU0laRTsKIAotCWlvX2Jhc2UgPSBDRkdfUENNQ0lBX0lPX1dJTjsKLQlpb19sZW4gPSBDRkdfUENNQ0lBX0lPX1dJTl9TSVpFOworCWlvX2Jhc2UgPSBDT05GSUdfU1lTX1BDTUNJQV9JT19XSU47CisJaW9fbGVuID0gQ09ORklHX1NZU19QQ01DSUFfSU9fV0lOX1NJWkU7CiAKIAkvKgogCSAqIFNldHVwIHRoZSBQQ0kgZGV2aWNlLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvdHFtOHh4X3BjbWNpYS5jIGIvZHJpdmVycy9wY21jaWEvdHFtOHh4X3BjbWNpYS5jCmluZGV4IGNjOTgwYzIuLjZiYThiNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3RxbTh4eF9wY21jaWEuYworKysgYi9kcml2ZXJzL3BjbWNpYS90cW04eHhfcGNtY2lhLmMKQEAgLTQwLDcgKzQwLDcgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIHBvd2VyX2NvbmZpZyhpbnQgc2xvdCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAkvKgogCSAqIENvbmZpZ3VyZSBQb3J0IEIgIHBpbnMgZm9yCiAJICogNSBWb2x0cyBFbmFibGUgYW5kIDMgVm9sdHMgZW5hYmxlCkBAIC01MCwyMSArNTAsMjEgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIHBvd2VyX29mZihpbnQgc2xvdCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAkvKiByZW1vdmUgYWxsIHBvd2VyICovCiAJaW1tYXAtPmltX2NwbS5jcF9wYmRhdCB8PSAweDAwMDAwMzAwOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcG93ZXJfb25fNV8wKGludCBzbG90KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWltbWFwLT5pbV9jcG0uY3BfcGJkYXQgJj0gfigweDAwMDAxMDApOwogCWltbWFwLT5pbV9jcG0uY3BfcGJkaXIgfD0gMHgwMDAwMDMwMDsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHBvd2VyX29uXzNfMyhpbnQgc2xvdCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAlpbW1hcC0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oMHgwMDAwMjAwKTsKIAlpbW1hcC0+aW1fY3BtLmNwX3BiZGlyIHw9IDB4MDAwMDAzMDA7CiB9CkBAIC05Nyw3ICs5Nyw3IEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb3dlcl9jb25maWcoaW50IHNsb3QpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJLyoKIAkqIENvbmZpZ3VyZSBQb3J0IEMgcGlucyBmb3IKIAkqIDUgVm9sdHMgRW5hYmxlIGFuZCAzIFZvbHRzIGVuYWJsZQpAQCAtMTA4LDIwICsxMDgsMjAgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIHBvd2VyX29mZihpbnQgc2xvdCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAlpbW1hcC0+aW1faW9wb3J0LmlvcF9wY2RhdCAmPSB+KDB4MDAwMiB8IDB4MDAwNCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb3dlcl9vbl81XzAoaW50IHNsb3QpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAJaW1tYXAtPmltX2lvcG9ydC5pb3BfcGNkYXQgfD0gMHgwMDA0OwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BjZGlyIHw9ICgweDAwMDIgfCAweDAwMDQpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcG93ZXJfb25fM18zKGludCBzbG90KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCWltbWFwLT5pbV9pb3BvcnQuaW9wX3BjZGF0IHw9IDB4MDAwMjsKIAlpbW1hcC0+aW1faW9wb3J0LmlvcF9wY2RpciB8PSAoMHgwMDAyIHwgMHgwMDA0KTsKIH0KQEAgLTEzMiwxNCArMTMyLDE0IEBACiBzdGF0aWMgaW5saW5lIGludCBjaGVja19jYXJkX2lzX2Fic2VudChpbnQgc2xvdCkKIHsKIAl2b2xhdGlsZSBwY21jb25mOHh4X3QgKnBjbXAgPQotCQkocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwkJKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogCXJldHVybiBwY21wLT5wY21jX3BpcHIgJiAoMHgxMDAwMDAwMCA+PiAoc2xvdCA8PCA0KSk7CiB9CiAjZWxzZQogc3RhdGljIGlubGluZSBpbnQgY2hlY2tfY2FyZF9pc19hYnNlbnQoaW50IHNsb3QpCiB7CiAJdm9sYXRpbGUgcGNtY29uZjh4eF90ICpwY21wID0KLQkJKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhKSk7CisJCShwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9wY21jaWEpKTsKIAlyZXR1cm4gcGNtcC0+cGNtY19waXByICYgKDB4MTgwMDAwMDAgPj4gKHNsb3QgPDwgNCkpOwogfQogI2VuZGlmCkBAIC0xNTMsOSArMTUzLDkgQEAKIGludCBwY21jaWFfaGFyZHdhcmVfZW5hYmxlKGludCBzbG90KQogewogCXZvbGF0aWxlIHBjbWNvbmY4eHhfdCAqcGNtcCA9Ci0JCShwY21jb25mOHh4X3QgKikoJigoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX3BjbWNpYSkpOworCQkocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhKSk7CiAJdm9sYXRpbGUgc3lzY29uZjh4eF90ICpzeXNwID0KLQkJKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fc2l1X2NvbmYpKTsKKwkJKHN5c2NvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3NpdV9jb25mKSk7CiAJdWludCByZWcsIG1hc2s7CiAKIAlkZWJ1ZyAoImhhcmR3YXJlX2VuYWJsZTogIiBQQ01DSUFfQk9BUkRfTVNHICIgU2xvdCAlY1xuIiwgJ0EnK3Nsb3QpOwpAQCAtMjcxLDcgKzI3MSw3IEBACiAJdV9sb25nIHJlZzsKICMgaWZkZWYgREVCVUcKIAl2b2xhdGlsZSBwY21jb25mOHh4X3QgKnBjbXAgPQotCQkocGNtY29uZjh4eF90ICopKCYoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEpKTsKKwkJKHBjbWNvbmY4eHhfdCAqKSgmKCgoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYSkpOwogIyBlbmRpZgogCiAJZGVidWcgKCJ2b2x0YWdlX3NldDogIiBQQ01DSUFfQk9BUkRfTVNHCmRpZmYgLS1naXQgYS9kcml2ZXJzL3FlL3VlYy5jIGIvZHJpdmVycy9xZS91ZWMuYwppbmRleCAzNDRjNjQ5Li5lZDdlZDY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3FlL3VlYy5jCisrKyBiL2RyaXZlcnMvcWUvdWVjLmMKQEAgLTM0LDEyICszNCwxMiBAQAogI2lmZGVmIENPTkZJR19VRUNfRVRIMQogc3RhdGljIHVlY19pbmZvX3QgZXRoMV91ZWNfaW5mbyA9IHsKIAkudWZfaW5mbwkJPSB7Ci0JCS51Y2NfbnVtCT0gQ0ZHX1VFQzFfVUNDX05VTSwKLQkJLnJ4X2Nsb2NrCT0gQ0ZHX1VFQzFfUlhfQ0xLLAotCQkudHhfY2xvY2sJPSBDRkdfVUVDMV9UWF9DTEssCi0JCS5ldGhfdHlwZQk9IENGR19VRUMxX0VUSF9UWVBFLAorCQkudWNjX251bQk9IENPTkZJR19TWVNfVUVDMV9VQ0NfTlVNLAorCQkucnhfY2xvY2sJPSBDT05GSUdfU1lTX1VFQzFfUlhfQ0xLLAorCQkudHhfY2xvY2sJPSBDT05GSUdfU1lTX1VFQzFfVFhfQ0xLLAorCQkuZXRoX3R5cGUJPSBDT05GSUdfU1lTX1VFQzFfRVRIX1RZUEUsCiAJfSwKLSNpZiAoQ0ZHX1VFQzFfRVRIX1RZUEUgPT0gRkFTVF9FVEgpCisjaWYgKENPTkZJR19TWVNfVUVDMV9FVEhfVFlQRSA9PSBGQVNUX0VUSCkKIAkubnVtX3RocmVhZHNfdHgJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCiAJLm51bV90aHJlYWRzX3J4CQk9IFVFQ19OVU1fT0ZfVEhSRUFEU18xLAogI2Vsc2UKQEAgLTUwLDE5ICs1MCwxOSBAQAogCS5yaXNjUngJCQk9IFFFX1JJU0NfQUxMT0NBVElPTl9SSVNDMV9BTkRfUklTQzIsCiAJLnR4X2JkX3JpbmdfbGVuCQk9IDE2LAogCS5yeF9iZF9yaW5nX2xlbgkJPSAxNiwKLQkucGh5X2FkZHJlc3MJCT0gQ0ZHX1VFQzFfUEhZX0FERFIsCi0JLmVuZXRfaW50ZXJmYWNlCQk9IENGR19VRUMxX0lOVEVSRkFDRV9NT0RFLAorCS5waHlfYWRkcmVzcwkJPSBDT05GSUdfU1lTX1VFQzFfUEhZX0FERFIsCisJLmVuZXRfaW50ZXJmYWNlCQk9IENPTkZJR19TWVNfVUVDMV9JTlRFUkZBQ0VfTU9ERSwKIH07CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfVUVDX0VUSDIKIHN0YXRpYyB1ZWNfaW5mb190IGV0aDJfdWVjX2luZm8gPSB7CiAJLnVmX2luZm8JCT0gewotCQkudWNjX251bQk9IENGR19VRUMyX1VDQ19OVU0sCi0JCS5yeF9jbG9jawk9IENGR19VRUMyX1JYX0NMSywKLQkJLnR4X2Nsb2NrCT0gQ0ZHX1VFQzJfVFhfQ0xLLAotCQkuZXRoX3R5cGUJPSBDRkdfVUVDMl9FVEhfVFlQRSwKKwkJLnVjY19udW0JPSBDT05GSUdfU1lTX1VFQzJfVUNDX05VTSwKKwkJLnJ4X2Nsb2NrCT0gQ09ORklHX1NZU19VRUMyX1JYX0NMSywKKwkJLnR4X2Nsb2NrCT0gQ09ORklHX1NZU19VRUMyX1RYX0NMSywKKwkJLmV0aF90eXBlCT0gQ09ORklHX1NZU19VRUMyX0VUSF9UWVBFLAogCX0sCi0jaWYgKENGR19VRUMyX0VUSF9UWVBFID09IEZBU1RfRVRIKQorI2lmIChDT05GSUdfU1lTX1VFQzJfRVRIX1RZUEUgPT0gRkFTVF9FVEgpCiAJLm51bV90aHJlYWRzX3R4CQk9IFVFQ19OVU1fT0ZfVEhSRUFEU18xLAogCS5udW1fdGhyZWFkc19yeAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKICNlbHNlCkBAIC03MywxOSArNzMsMTkgQEAKIAkucmlzY1J4CQkJPSBRRV9SSVNDX0FMTE9DQVRJT05fUklTQzFfQU5EX1JJU0MyLAogCS50eF9iZF9yaW5nX2xlbgkJPSAxNiwKIAkucnhfYmRfcmluZ19sZW4JCT0gMTYsCi0JLnBoeV9hZGRyZXNzCQk9IENGR19VRUMyX1BIWV9BRERSLAotCS5lbmV0X2ludGVyZmFjZQkJPSBDRkdfVUVDMl9JTlRFUkZBQ0VfTU9ERSwKKwkucGh5X2FkZHJlc3MJCT0gQ09ORklHX1NZU19VRUMyX1BIWV9BRERSLAorCS5lbmV0X2ludGVyZmFjZQkJPSBDT05GSUdfU1lTX1VFQzJfSU5URVJGQUNFX01PREUsCiB9OwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1VFQ19FVEgzCiBzdGF0aWMgdWVjX2luZm9fdCBldGgzX3VlY19pbmZvID0gewogCS51Zl9pbmZvCQk9IHsKLQkJLnVjY19udW0JPSBDRkdfVUVDM19VQ0NfTlVNLAotCQkucnhfY2xvY2sJPSBDRkdfVUVDM19SWF9DTEssCi0JCS50eF9jbG9jawk9IENGR19VRUMzX1RYX0NMSywKLQkJLmV0aF90eXBlCT0gQ0ZHX1VFQzNfRVRIX1RZUEUsCisJCS51Y2NfbnVtCT0gQ09ORklHX1NZU19VRUMzX1VDQ19OVU0sCisJCS5yeF9jbG9jawk9IENPTkZJR19TWVNfVUVDM19SWF9DTEssCisJCS50eF9jbG9jawk9IENPTkZJR19TWVNfVUVDM19UWF9DTEssCisJCS5ldGhfdHlwZQk9IENPTkZJR19TWVNfVUVDM19FVEhfVFlQRSwKIAl9LAotI2lmIChDRkdfVUVDM19FVEhfVFlQRSA9PSBGQVNUX0VUSCkKKyNpZiAoQ09ORklHX1NZU19VRUMzX0VUSF9UWVBFID09IEZBU1RfRVRIKQogCS5udW1fdGhyZWFkc190eAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKIAkubnVtX3RocmVhZHNfcngJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCiAjZWxzZQpAQCAtOTYsMTkgKzk2LDE5IEBACiAJLnJpc2NSeAkJCT0gUUVfUklTQ19BTExPQ0FUSU9OX1JJU0MxX0FORF9SSVNDMiwKIAkudHhfYmRfcmluZ19sZW4JCT0gMTYsCiAJLnJ4X2JkX3JpbmdfbGVuCQk9IDE2LAotCS5waHlfYWRkcmVzcwkJPSBDRkdfVUVDM19QSFlfQUREUiwKLQkuZW5ldF9pbnRlcmZhY2UJCT0gQ0ZHX1VFQzNfSU5URVJGQUNFX01PREUsCisJLnBoeV9hZGRyZXNzCQk9IENPTkZJR19TWVNfVUVDM19QSFlfQUREUiwKKwkuZW5ldF9pbnRlcmZhY2UJCT0gQ09ORklHX1NZU19VRUMzX0lOVEVSRkFDRV9NT0RFLAogfTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19VRUNfRVRINAogc3RhdGljIHVlY19pbmZvX3QgZXRoNF91ZWNfaW5mbyA9IHsKIAkudWZfaW5mbwkJPSB7Ci0JCS51Y2NfbnVtCT0gQ0ZHX1VFQzRfVUNDX05VTSwKLQkJLnJ4X2Nsb2NrCT0gQ0ZHX1VFQzRfUlhfQ0xLLAotCQkudHhfY2xvY2sJPSBDRkdfVUVDNF9UWF9DTEssCi0JCS5ldGhfdHlwZQk9IENGR19VRUM0X0VUSF9UWVBFLAorCQkudWNjX251bQk9IENPTkZJR19TWVNfVUVDNF9VQ0NfTlVNLAorCQkucnhfY2xvY2sJPSBDT05GSUdfU1lTX1VFQzRfUlhfQ0xLLAorCQkudHhfY2xvY2sJPSBDT05GSUdfU1lTX1VFQzRfVFhfQ0xLLAorCQkuZXRoX3R5cGUJPSBDT05GSUdfU1lTX1VFQzRfRVRIX1RZUEUsCiAJfSwKLSNpZiAoQ0ZHX1VFQzRfRVRIX1RZUEUgPT0gRkFTVF9FVEgpCisjaWYgKENPTkZJR19TWVNfVUVDNF9FVEhfVFlQRSA9PSBGQVNUX0VUSCkKIAkubnVtX3RocmVhZHNfdHgJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCiAJLm51bV90aHJlYWRzX3J4CQk9IFVFQ19OVU1fT0ZfVEhSRUFEU18xLAogI2Vsc2UKQEAgLTExOSwxMiArMTE5LDU4IEBACiAJLnJpc2NSeAkJCT0gUUVfUklTQ19BTExPQ0FUSU9OX1JJU0MxX0FORF9SSVNDMiwKIAkudHhfYmRfcmluZ19sZW4JCT0gMTYsCiAJLnJ4X2JkX3JpbmdfbGVuCQk9IDE2LAotCS5waHlfYWRkcmVzcwkJPSBDRkdfVUVDNF9QSFlfQUREUiwKLQkuZW5ldF9pbnRlcmZhY2UJCT0gQ0ZHX1VFQzRfSU5URVJGQUNFX01PREUsCisJLnBoeV9hZGRyZXNzCQk9IENPTkZJR19TWVNfVUVDNF9QSFlfQUREUiwKKwkuZW5ldF9pbnRlcmZhY2UJCT0gQ09ORklHX1NZU19VRUM0X0lOVEVSRkFDRV9NT0RFLAogfTsKICNlbmRpZgorI2lmZGVmIENPTkZJR19VRUNfRVRINQorc3RhdGljIHVlY19pbmZvX3QgZXRoNV91ZWNfaW5mbyA9IHsKKwkudWZfaW5mbwkJPSB7CisJCS51Y2NfbnVtCT0gQ09ORklHX1NZU19VRUM1X1VDQ19OVU0sCisJCS5yeF9jbG9jawk9IENPTkZJR19TWVNfVUVDNV9SWF9DTEssCisJCS50eF9jbG9jawk9IENPTkZJR19TWVNfVUVDNV9UWF9DTEssCisJCS5ldGhfdHlwZQk9IENPTkZJR19TWVNfVUVDNV9FVEhfVFlQRSwKKwl9LAorI2lmIChDT05GSUdfU1lTX1VFQzVfRVRIX1RZUEUgPT0gRkFTVF9FVEgpCisJLm51bV90aHJlYWRzX3R4CQk9IFVFQ19OVU1fT0ZfVEhSRUFEU18xLAorCS5udW1fdGhyZWFkc19yeAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKKyNlbHNlCisJLm51bV90aHJlYWRzX3R4CQk9IFVFQ19OVU1fT0ZfVEhSRUFEU180LAorCS5udW1fdGhyZWFkc19yeAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfNCwKKyNlbmRpZgorCS5yaXNjVHgJCQk9IFFFX1JJU0NfQUxMT0NBVElPTl9SSVNDMV9BTkRfUklTQzIsCisJLnJpc2NSeAkJCT0gUUVfUklTQ19BTExPQ0FUSU9OX1JJU0MxX0FORF9SSVNDMiwKKwkudHhfYmRfcmluZ19sZW4JCT0gMTYsCisJLnJ4X2JkX3JpbmdfbGVuCQk9IDE2LAorCS5waHlfYWRkcmVzcwkJPSBDT05GSUdfU1lTX1VFQzVfUEhZX0FERFIsCisJLmVuZXRfaW50ZXJmYWNlCQk9IENPTkZJR19TWVNfVUVDNV9JTlRFUkZBQ0VfTU9ERSwKK307CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfVUVDX0VUSDYKK3N0YXRpYyB1ZWNfaW5mb190IGV0aDZfdWVjX2luZm8gPSB7CisJLnVmX2luZm8JCT0geworCQkudWNjX251bQk9IENPTkZJR19TWVNfVUVDNl9VQ0NfTlVNLAorCQkucnhfY2xvY2sJPSBDT05GSUdfU1lTX1VFQzZfUlhfQ0xLLAorCQkudHhfY2xvY2sJPSBDT05GSUdfU1lTX1VFQzZfVFhfQ0xLLAorCQkuZXRoX3R5cGUJPSBDT05GSUdfU1lTX1VFQzZfRVRIX1RZUEUsCisJfSwKKyNpZiAoQ09ORklHX1NZU19VRUM2X0VUSF9UWVBFID09IEZBU1RfRVRIKQorCS5udW1fdGhyZWFkc190eAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfMSwKKwkubnVtX3RocmVhZHNfcngJCT0gVUVDX05VTV9PRl9USFJFQURTXzEsCisjZWxzZQorCS5udW1fdGhyZWFkc190eAkJPSBVRUNfTlVNX09GX1RIUkVBRFNfNCwKKwkubnVtX3RocmVhZHNfcngJCT0gVUVDX05VTV9PRl9USFJFQURTXzQsCisjZW5kaWYKKwkucmlzY1R4CQkJPSBRRV9SSVNDX0FMTE9DQVRJT05fUklTQzFfQU5EX1JJU0MyLAorCS5yaXNjUngJCQk9IFFFX1JJU0NfQUxMT0NBVElPTl9SSVNDMV9BTkRfUklTQzIsCisJLnR4X2JkX3JpbmdfbGVuCQk9IDE2LAorCS5yeF9iZF9yaW5nX2xlbgkJPSAxNiwKKwkucGh5X2FkZHJlc3MJCT0gQ09ORklHX1NZU19VRUM2X1BIWV9BRERSLAorCS5lbmV0X2ludGVyZmFjZQkJPSBDT05GSUdfU1lTX1VFQzZfSU5URVJGQUNFX01PREUsCit9OworI2VuZGlmCiAKLSNkZWZpbmUgTUFYQ09OVFJPTExFUlMJKDQpCisjZGVmaW5lIE1BWENPTlRST0xMRVJTCSg2KQogCiBzdGF0aWMgc3RydWN0IGV0aF9kZXZpY2UgKmRldmxpc3RbTUFYQ09OVFJPTExFUlNdOwogCkBAIC00MjQsNiArNDcwLDcgQEAKIAkJCXVwc21yIHw9IChVUFNNUl9SUE0gfCBVUFNNUl9UQklNKTsKIAkJCWJyZWFrOwogCQljYXNlIEVORVRfMTAwMF9SR01JSV9SWElEOgorCQljYXNlIEVORVRfMTAwMF9SR01JSV9JRDoKIAkJY2FzZSBFTkVUXzEwMDBfUkdNSUk6CiAJCQltYWNjZmcyIHw9IE1BQ0NGRzJfSU5URVJGQUNFX01PREVfQllURTsKIAkJCXVwc21yIHw9IFVQU01SX1JQTTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcWUvdWVjLmggYi9kcml2ZXJzL3FlL3VlYy5oCmluZGV4IGUzNTdhOTIuLjBiNjQ0OTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcWUvdWVjLmgKKysrIGIvZHJpdmVycy9xZS91ZWMuaApAQCAtNjQyLDYgKzY0Miw3IEBACiAJRU5FVF8xMDBfUkdNSUksCiAJRU5FVF8xMDAwX0dNSUksCiAJRU5FVF8xMDAwX1JHTUlJLAorCUVORVRfMTAwMF9SR01JSV9JRCwKIAlFTkVUXzEwMDBfUkdNSUlfUlhJRCwKIAlFTkVUXzEwMDBfVEJJLAogCUVORVRfMTAwMF9SVEJJCmRpZmYgLS1naXQgYS9kcml2ZXJzL3FlL3VlY19waHkuYyBiL2RyaXZlcnMvcWUvdWVjX3BoeS5jCmluZGV4IDE4NjkyMmUuLjIyNDNkM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcWUvdWVjX3BoeS5jCisrKyBiL2RyaXZlcnMvcWUvdWVjX3BoeS5jCkBAIC0zNzYsNiArMzc2LDI5IEBACiAJIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IG1hcnZlbGxfaW5pdChzdHJ1Y3QgdWVjX21paV9pbmZvICptaWlfaW5mbykKK3sKKwlzdHJ1Y3QgZXRoX2RldmljZSAqZWRldiA9IG1paV9pbmZvLT5kZXY7CisJdWVjX3ByaXZhdGVfdCAqdWVjID0gZWRldi0+cHJpdjsKKworCWlmICh1ZWMtPnVlY19pbmZvLT5lbmV0X2ludGVyZmFjZSA9PSBFTkVUXzEwMDBfUkdNSUlfSUQpIHsKKwkJaW50IHRlbXA7CisKKwkJdGVtcCA9IHBoeV9yZWFkKG1paV9pbmZvLCBNSUlfTTExMTFfUEhZX0VYVF9DUik7CisJCXRlbXAgfD0gKE1JSV9NMTExMV9SWF9ERUxBWSB8IE1JSV9NMTExMV9UWF9ERUxBWSk7CisJCXBoeV93cml0ZShtaWlfaW5mbywgTUlJX00xMTExX1BIWV9FWFRfQ1IsIHRlbXApOworCisJCXRlbXAgPSBwaHlfcmVhZChtaWlfaW5mbywgTUlJX00xMTExX1BIWV9FWFRfU1IpOworCQl0ZW1wICY9IH5NSUlfTTExMTFfSFdDRkdfTU9ERV9NQVNLOworCQl0ZW1wIHw9IE1JSV9NMTExMV9IV0NGR19NT0RFX1JHTUlJOworCQlwaHlfd3JpdGUobWlpX2luZm8sIE1JSV9NMTExMV9QSFlfRVhUX1NSLCB0ZW1wKTsKKworCQlwaHlfd3JpdGUobWlpX2luZm8sIFBIWV9CTUNSLCBQSFlfQk1DUl9SRVNFVCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgbWFydmVsbF9yZWFkX3N0YXR1cyAoc3RydWN0IHVlY19taWlfaW5mbyAqbWlpX2luZm8pCiB7CiAJdTE2IHN0YXR1czsKQEAgLTUzOCw2ICs1NjEsNyBAQAogCS5waHlfaWRfbWFzayA9IDB4ZmZmZmZmMDAsCiAJLm5hbWUgPSAiTWFydmVsbCA4OEUxMXgxIiwKIAkuZmVhdHVyZXMgPSBNSUlfR0JJVF9GRUFUVVJFUywKKwkuaW5pdCA9ICZtYXJ2ZWxsX2luaXQsCiAJLmNvbmZpZ19hbmVnID0gJm1hcnZlbGxfY29uZmlnX2FuZWcsCiAJLnJlYWRfc3RhdHVzID0gJm1hcnZlbGxfcmVhZF9zdGF0dXMsCiAJLmFja19pbnRlcnJ1cHQgPSAmbWFydmVsbF9hY2tfaW50ZXJydXB0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9xZS91ZWNfcGh5LmggYi9kcml2ZXJzL3FlL3VlY19waHkuaAppbmRleCA2Zjc2OWZiLi43YWMxZmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3FlL3VlY19waHkuaAorKysgYi9kcml2ZXJzL3FlL3VlY19waHkuaApAQCAtNzcsNiArNzcsMTQgQEAKICNkZWZpbmUgTUlJX00xMDExX0lNQVNLX0lOSVQJCTB4NjQwMAogI2RlZmluZSBNSUlfTTEwMTFfSU1BU0tfQ0xFQVIJCTB4MDAwMAogCisvKiA4OEUxMTExIFBIWSBSZWdpc3RlciAqLworI2RlZmluZSBNSUlfTTExMTFfUEhZX0VYVF9DUiAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgTUlJX00xMTExX1JYX0RFTEFZICAgICAgICAgICAgICAweDgwCisjZGVmaW5lIE1JSV9NMTExMV9UWF9ERUxBWSAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1JSV9NMTExMV9QSFlfRVhUX1NSICAgICAgICAgICAgMHgxYgorI2RlZmluZSBNSUlfTTExMTFfSFdDRkdfTU9ERV9NQVNLICAgICAgIDB4ZgorI2RlZmluZSBNSUlfTTExMTFfSFdDRkdfTU9ERV9SR01JSSAgICAgIDB4YgorCiAjZGVmaW5lIE1JSV9ETTkxNjFfU0NSCQkJMHgxMAogI2RlZmluZSBNSUlfRE05MTYxX1NDUl9JTklUCQkweDA2MTAKICNkZWZpbmUgTUlJX0RNOTE2MV9TQ1JfUk1JSV9JTklUCTB4MDcxMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvZHMxMzA2LmMgYi9kcml2ZXJzL3J0Yy9kczEzMDYuYwppbmRleCAwM2M0MDg5Li43NWY4OGE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9kczEzMDYuYworKysgYi9kcml2ZXJzL3J0Yy9kczEzMDYuYwpAQCAtODYsNyArODYsNyBAQAogLyogcmVhZCBjbG9jayB0aW1lIGZyb20gRFMxMzA2IGFuZCByZXR1cm4gaXQgaW4gKnRtcCAqLwogaW50IHJ0Y19nZXQgKHN0cnVjdCBydGNfdGltZSAqdG1wKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdW5zaWduZWQgY2hhciBzcGlfYnl0ZTsJLyogRGF0YSBCeXRlICovCiAKIAlpbml0X3NwaSAoKTsJCS8qIHNldCBwb3J0IEIgZm9yIHNvZnR3YXJlIFNQSSAqLwpAQCAtMTQzLDcgKzE0Myw3IEBACiAvKiBzZXQgY2xvY2sgdGltZSBpbiBEUzEzMDYgUlRDIGFuZCBpbiBNUEM4eHggUlRDICovCiBpbnQgcnRjX3NldCAoc3RydWN0IHJ0Y190aW1lICp0bXApCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCWluaXRfc3BpICgpOwkJLyogc2V0IHBvcnQgQiBmb3Igc29mdHdhcmUgU1BJICovCiAKQEAgLTIxOCw3ICsyMTgsNyBAQAogLyogSW5pdGlhbGl6ZSBQb3J0IEIgZm9yIHNvZnR3YXJlIFNQSSAqLwogc3RhdGljIHZvaWQgaW5pdF9zcGkgKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogCS8qIEZvcmNlIG91dHB1dCBwaW5zIHRvIGJlZ2luIGF0IGxvZ2ljIDAgKi8KIAlpbW1hcC0+aW1fY3BtLmNwX3BiZGF0ICY9IH4oUEJfU1BJX0NFIHwgUEJfU1BJTU9TSSB8IFBCX1NQSVNDSyk7CkBAIC0yMzUsNyArMjM1LDcgQEAKIC8qIE5PVEU6IHNvZnRfc3BpX3NlbmQoKSBhc3N1bWVzIHRoYXQgdGhlIEkvTyBsaW5lcyBhcmUgY29uZmlndXJlZCBhbHJlYWR5ICovCiBzdGF0aWMgdm9pZCBzb2Z0X3NwaV9zZW5kICh1bnNpZ25lZCBjaGFyIG4pCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1bnNpZ25lZCBjaGFyIGJpdHBvczsJLyogYml0IHBvc2l0aW9uIHRvIHJlY2VpdmUgKi8KIAl1bnNpZ25lZCBjaGFyIGk7CS8qIExvb3AgQ29udHJvbCAqLwogCkBAIC0yNjQsNyArMjY0LDcgQEAKIC8qIE5PVEU6IHNvZnRfc3BpX3JlYWQoKSBhc3N1bWVzIHRoYXQgdGhlIEkvTyBsaW5lcyBhcmUgY29uZmlndXJlZCBhbHJlYWR5ICovCiBzdGF0aWMgdW5zaWduZWQgY2hhciBzb2Z0X3NwaV9yZWFkICh2b2lkKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAl1bnNpZ25lZCBjaGFyIHNwaV9ieXRlID0gMDsJLyogUmV0dXJuIHZhbHVlLCBhc3N1bWUgc3VjY2VzcyAqLwogCXVuc2lnbmVkIGNoYXIgYml0cG9zOwkvKiBiaXQgcG9zaXRpb24gdG8gcmVjZWl2ZSAqLwpAQCAtMzE0LDcgKzMxNCw3IEBACiAJICogc3RlcCBqdXN0IG9uY2UuCiAJICovCiAJaWYgKCFzbGF2ZSkgewotCQlzbGF2ZSA9IHNwaV9zZXR1cF9zbGF2ZSgwLCBDRkdfU1BJX1JUQ19ERVZJRCwgNjAwMDAwLAorCQlzbGF2ZSA9IHNwaV9zZXR1cF9zbGF2ZSgwLCBDT05GSUdfU1lTX1NQSV9SVENfREVWSUQsIDYwMDAwMCwKIAkJCQlTUElfTU9ERV8zIHwgU1BJX0NTX0hJR0gpOwogCQlpZiAoIXNsYXZlKQogCQkJcmV0dXJuOwpAQCAtMzc3LDcgKzM3Nyw3IEBACiB7CiAJLyogQXNzdW1pbmcgVmNjID0gMi4wViAobG93ZXN0IHNwZWVkKSAqLwogCWlmICghc2xhdmUpIHsKLQkJc2xhdmUgPSBzcGlfc2V0dXBfc2xhdmUoMCwgQ0ZHX1NQSV9SVENfREVWSUQsIDYwMDAwMCwKKwkJc2xhdmUgPSBzcGlfc2V0dXBfc2xhdmUoMCwgQ09ORklHX1NZU19TUElfUlRDX0RFVklELCA2MDAwMDAsCiAJCQkJU1BJX01PREVfMyB8IFNQSV9DU19ISUdIKTsKIAkJaWYgKCFzbGF2ZSkKIAkJCXJldHVybjsKQEAgLTQwOCw3ICs0MDgsNyBAQAogewogCS8qIEFzc3VtaW5nIFZjYyA9IDIuMFYgKGxvd2VzdCBzcGVlZCkgKi8KIAlpZiAoIXNsYXZlKSB7Ci0JCXNsYXZlID0gc3BpX3NldHVwX3NsYXZlKDAsIENGR19TUElfUlRDX0RFVklELCA2MDAwMDAsCisJCXNsYXZlID0gc3BpX3NldHVwX3NsYXZlKDAsIENPTkZJR19TWVNfU1BJX1JUQ19ERVZJRCwgNjAwMDAwLAogCQkJCVNQSV9NT0RFXzMgfCBTUElfQ1NfSElHSCk7CiAJCWlmICghc2xhdmUpCiAJCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9kczEzMDcuYyBiL2RyaXZlcnMvcnRjL2RzMTMwNy5jCmluZGV4IGFmYzRiNzguLjA2NTBkOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2RzMTMwNy5jCisrKyBiL2RyaXZlcnMvcnRjL2RzMTMwNy5jCkBAIC00NywxMSArNDcsMTEgQEAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWZuZGVmIENGR19JMkNfUlRDX0FERFIKLSMgZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2lmbmRlZiBDT05GSUdfU1lTX0kyQ19SVENfQUREUgorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19SVENfRFMxMzA3KSAmJiAoQ0ZHX0kyQ19TUEVFRCA+IDEwMDAwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19SVENfRFMxMzA3KSAmJiAoQ09ORklHX1NZU19JMkNfU1BFRUQgPiAxMDAwMDApCiAjIGVycm9yIFRoZSBEUzEzMDcgaXMgc3BlY2lmaWVkIG9ubHkgdXAgdG8gMTAwa0h6IQogI2VuZGlmCiAKQEAgLTE4NywxMyArMTg3LDEzIEBACiBzdGF0aWMKIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuIChpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZykpOworCXJldHVybiAoaTJjX3JlZ19yZWFkIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnKSk7CiB9CiAKIAogc3RhdGljIHZvaWQgcnRjX3dyaXRlICh1Y2hhciByZWcsIHVjaGFyIHZhbCkKIHsKLQlpMmNfcmVnX3dyaXRlIChDRkdfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CisJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGJjZDJiaW4gKHVjaGFyIG4pCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9kczEzMzcuYyBiL2RyaXZlcnMvcnRjL2RzMTMzNy5jCmluZGV4IDUwOWY4MWYuLjU4ZTM5NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2RzMTMzNy5jCisrKyBiL2RyaXZlcnMvcnRjL2RzMTMzNy5jCkBAIC0xNjAsMTAgKzE2MCwxMCBAQAogICogU1FXL0lOVEIqIHBpbiBhbmQgcHJvZ3JhbSBpdCBmb3IgMzIsNzY4IEh6IG91dHB1dC4gTm90ZSB0aGF0CiAgKiBhY2NvcmRpbmcgdG8gdGhlIGRhdGFzaGVldCwgdHVybmluZyBvbiB0aGUgc3F1YXJlIHdhdmUgb3V0cHV0CiAgKiBpbmNyZWFzZXMgdGhlIGN1cnJlbnQgZHJhaW4gb24gdGhlIGJhY2t1cCBiYXR0ZXJ5IGZyb20gYWJvdXQKLSAqIDYwMCBuQSB0byAydUEuIERlZmluZSBDRkdfUlRDX0RTMTMzN19OT09TQyBpZiB5b3Ugd2lzaCB0byB0dXJuCisgKiA2MDAgbkEgdG8gMnVBLiBEZWZpbmUgQ09ORklHX1NZU19SVENfRFMxMzM3X05PT1NDIGlmIHlvdSB3aXNoIHRvIHR1cm4KICAqIG9mZiB0aGUgT1NDIG91dHB1dC4KICAqLwotI2lmZGVmIENGR19SVENfRFMxMzM3X05PT1NDCisjaWZkZWYgQ09ORklHX1NZU19SVENfRFMxMzM3X05PT1NDCiAgI2RlZmluZSBSVENfRFMxMzM3X1JFU0VUX1ZBTCBcCiAJKFJUQ19DVExfQklUX0lOVENOIHwgUlRDX0NUTF9CSVRfUlMxIHwgUlRDX0NUTF9CSVRfUlMyKQogI2Vsc2UKQEAgLTE4MiwxMyArMTgyLDEzIEBACiBzdGF0aWMKIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuIChpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZykpOworCXJldHVybiAoaTJjX3JlZ19yZWFkIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnKSk7CiB9CiAKIAogc3RhdGljIHZvaWQgcnRjX3dyaXRlICh1Y2hhciByZWcsIHVjaGFyIHZhbCkKIHsKLQlpMmNfcmVnX3dyaXRlIChDRkdfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CisJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGJjZDJiaW4gKHVjaGFyIG4pCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9kczEzNzQuYyBiL2RyaXZlcnMvcnRjL2RzMTM3NC5jCmluZGV4IDc5YTNkNzMuLmQ2MWEyMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2RzMTM3NC5jCisrKyBiL2RyaXZlcnMvcnRjL2RzMTM3NC5jCkBAIC00OCwxMSArNDgsMTEgQEAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jaWZuZGVmIENGR19JMkNfUlRDX0FERFIKLSMgZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2lmbmRlZiBDT05GSUdfU1lTX0kyQ19SVENfQUREUgorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19SVENfRFMxMzc0KSAmJiAoQ0ZHX0kyQ19TUEVFRCA+IDQwMDAwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19SVENfRFMxMzc0KSAmJiAoQ09ORklHX1NZU19JMkNfU1BFRUQgPiA0MDAwMDApCiAjIGVycm9yIFRoZSBEUzEzNzQgaXMgc3BlY2lmaWVkIHVwIHRvIDQwMGtIeiBpbiBmYXN0IG1vZGUhCiAjZW5kaWYKIApAQCAtMjM5LDIyICsyMzksMjIgQEAKICAqLwogc3RhdGljIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuIChpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZykpOworCXJldHVybiAoaTJjX3JlZ19yZWFkIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0Y193cml0ZSAodWNoYXIgcmVnLCB1Y2hhciB2YWwsIGJvb2xlYW5fdCBzZXQpCiB7CiAJaWYgKHNldCA9PSBUUlVFKSB7Ci0JCXZhbCB8PSBpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZyk7Ci0JCWkyY19yZWdfd3JpdGUgKENGR19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKKwkJdmFsIHw9IGkyY19yZWdfcmVhZCAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZyk7CisJCWkyY19yZWdfd3JpdGUgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CiAJfSBlbHNlIHsKLQkJdmFsID0gaTJjX3JlZ19yZWFkIChDRkdfSTJDX1JUQ19BRERSLCByZWcpICYgfnZhbDsKLQkJaTJjX3JlZ193cml0ZSAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOworCQl2YWwgPSBpMmNfcmVnX3JlYWQgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcpICYgfnZhbDsKKwkJaTJjX3JlZ193cml0ZSAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKIAl9CiB9CiAKIHN0YXRpYyB2b2lkIHJ0Y193cml0ZV9yYXcgKHVjaGFyIHJlZywgdWNoYXIgdmFsKQogewotCQlpMmNfcmVnX3dyaXRlIChDRkdfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CisJCWkyY19yZWdfd3JpdGUgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL2RzMTU1Ni5jIGIvZHJpdmVycy9ydGMvZHMxNTU2LmMKaW5kZXggNzU3NDYyNi4uNzYzZDIyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvZHMxNTU2LmMKKysrIGIvZHJpdmVycy9ydGMvZHMxNTU2LmMKQEAgLTQzLDcgKzQzLDcgQEAKIHN0YXRpYyB1Y2hhciBiaW4yYmNkICAgKHVuc2lnbmVkIGludCBuKTsKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluKHVjaGFyIGMpOwogCi0jZGVmaW5lIFJUQ19CQVNFCQkoIENGR19OVlJBTV9TSVpFICsgQ0ZHX05WUkFNX0JBU0VfQUREUiApCisjZGVmaW5lIFJUQ19CQVNFCQkoIENPTkZJR19TWVNfTlZSQU1fU0laRSArIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICkKIAogI2RlZmluZSBSVENfWUVBUgkJKCBSVENfQkFTRSArIDB4ZiApCiAjZGVmaW5lIFJUQ19NT05USAkJKCBSVENfQkFTRSArIDB4ZSApCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9kczE2NHguYyBiL2RyaXZlcnMvcnRjL2RzMTY0eC5jCmluZGV4IDAwNDk0YjMuLjFlOTY2NzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2RzMTY0eC5jCisrKyBiL2RyaXZlcnMvcnRjL2RzMTY0eC5jCkBAIC00OSw3ICs0OSw3IEBACiAvKgogICogRFMxNjR4IHJlZ2lzdGVycyBsYXlvdXQKICAqLwotI2RlZmluZSBSVENfQkFTRQkJKCBDRkdfTlZSQU1fQkFTRV9BRERSICsgQ0ZHX05WUkFNX1NJWkUgKQorI2RlZmluZSBSVENfQkFTRQkJKCBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiArIENPTkZJR19TWVNfTlZSQU1fU0laRSApCiAKICNkZWZpbmUgUlRDX1lFQVIJCSggUlRDX0JBU0UgKyAweDA3ICkKICNkZWZpbmUgUlRDX01PTlRICQkoIFJUQ19CQVNFICsgMHgwNiApCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9kczE3NHguYyBiL2RyaXZlcnMvcnRjL2RzMTc0eC5jCmluZGV4IDQzZTZhYjcuLjczOGQxMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2RzMTc0eC5jCisrKyBiL2RyaXZlcnMvcnRjL2RzMTc0eC5jCkBAIC00MCw3ICs0MCw3IEBACiBzdGF0aWMgdWNoYXIgYmluMmJjZCAgICh1bnNpZ25lZCBpbnQgbik7CiBzdGF0aWMgdW5zaWduZWQgYmNkMmJpbih1Y2hhciBjKTsKIAotI2RlZmluZSBSVENfQkFTRQkJKCBDRkdfTlZSQU1fU0laRSArIENGR19OVlJBTV9CQVNFX0FERFIgKQorI2RlZmluZSBSVENfQkFTRQkJKCBDT05GSUdfU1lTX05WUkFNX1NJWkUgKyBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiApCiAKICNkZWZpbmUgUlRDX1lFQVIJCSggUlRDX0JBU0UgKyA3ICkKICNkZWZpbmUgUlRDX01PTlRICQkoIFJUQ19CQVNFICsgNiApCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9kczMyMzEuYyBiL2RyaXZlcnMvcnRjL2RzMzIzMS5jCmluZGV4IGRhOGEzZTYuLmVmMDMzNTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2RzMzIzMS5jCisrKyBiL2RyaXZlcnMvcnRjL2RzMzIzMS5jCkBAIC0xNzcsMTMgKzE3NywxMyBAQAogc3RhdGljCiB1Y2hhciBydGNfcmVhZCAodWNoYXIgcmVnKQogewotCXJldHVybiAoaTJjX3JlZ19yZWFkIChDRkdfSTJDX1JUQ19BRERSLCByZWcpKTsKKwlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZykpOwogfQogCiAKIHN0YXRpYyB2b2lkIHJ0Y193cml0ZSAodWNoYXIgcmVnLCB1Y2hhciB2YWwpCiB7Ci0JaTJjX3JlZ193cml0ZSAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOworCWkyY19yZWdfd3JpdGUgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluICh1Y2hhciBuKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvaXNsMTIwOC5jIGIvZHJpdmVycy9ydGMvaXNsMTIwOC5jCmluZGV4IDg3ZjA2Y2MuLjcxZjYzZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2lzbDEyMDguYworKysgYi9kcml2ZXJzL3J0Yy9pc2wxMjA4LmMKQEAgLTE1MywxMiArMTUzLDEyIEBACiAKIHN0YXRpYyB1Y2hhciBydGNfcmVhZCAodWNoYXIgcmVnKQogewotCXJldHVybiAoaTJjX3JlZ19yZWFkIChDRkdfSTJDX1JUQ19BRERSLCByZWcpKTsKKwlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZykpOwogfQogCiBzdGF0aWMgdm9pZCBydGNfd3JpdGUgKHVjaGFyIHJlZywgdWNoYXIgdmFsKQogewotCWkyY19yZWdfd3JpdGUgKENGR19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKKwlpMmNfcmVnX3dyaXRlIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgYmNkMmJpbiAodWNoYXIgbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL200MXQxMS5jIGIvZHJpdmVycy9ydGMvbTQxdDExLmMKaW5kZXggMGE5YjEyZS4uM2E3N2MxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvbTQxdDExLmMKKysrIGIvZHJpdmVycy9ydGMvbTQxdDExLmMKQEAgLTM1LDE1ICszNSwxNSBAQAogCWlzIHdoYXQgc2hvdWxkIGJlIGRvbmUuCiAKICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEgMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSIDB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIgMHg2OAogI2lmIDAKLSNkZWZpbmUgQ0ZHX000MVQxMV9FWFRfQ0VOVFVSWV9EQVRBCisjZGVmaW5lIENPTkZJR19TWVNfTTQxVDExX0VYVF9DRU5UVVJZX0RBVEEKICNlbHNlCi0jZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSIDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NNDFUMTFfQkFTRV9ZRUFSIDIwMDAKICNlbmRpZgogKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0kyQ19SVENfQUREUikgJiYgZGVmaW5lZChDT05GSUdfQ01EX0RBVEUpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0kyQ19SVENfQUREUikgJiYgZGVmaW5lZChDT05GSUdfQ01EX0RBVEUpCiAKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluICh1Y2hhciBuKQogewpAQCAtNzUsNyArNzUsNyBAQAogI2RlZmluZSBSVENfQ09OVFJPTF9BRERSICAgMHg3CiAKIAotI2lmbmRlZiBDRkdfTTQxVDExX0VYVF9DRU5UVVJZX0RBVEEKKyNpZm5kZWYgQ09ORklHX1NZU19NNDFUMTFfRVhUX0NFTlRVUllfREFUQQogCiAjZGVmaW5lIFJFR19DTlQgICAgICAgICAgICAoUlRDX1JFR19DTlQrMSkKIApAQCAtODMsOCArODMsOCBAQAogICB5b3Ugb25seSBnZXQgMDAtOTkgZm9yIHRoZSB5ZWFyIHdlIHdpbGwgYXN1bWUgeW91CiAgIHdhbnQgZnJvbSB0aGUgeWVhciAyMDAwIGlmIHlvdSBkb24ndCBzZXQgdGhlIGNvbmZpZwogKi8KLSNpZm5kZWYgQ0ZHX000MVQxMV9CQVNFX1lFQVIKLSNkZWZpbmUgQ0ZHX000MVQxMV9CQVNFX1lFQVIgMjAwMAorI2lmbmRlZiBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIKKyNkZWZpbmUgQ09ORklHX1NZU19NNDFUMTFfQkFTRV9ZRUFSIDIwMDAKICNlbmRpZgogCiAjZWxzZQpAQCAtMTAxLDcgKzEwMSw3IEBACiAJaW50IHJlbCA9IDA7CiAJdWNoYXIgZGF0YVtSVENfUkVHX0NOVF07CiAKLQlpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCBSVENfU0VDX0FERFIsIDEsIGRhdGEsIFJUQ19SRUdfQ05UKTsKKwlpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgUlRDX1NFQ19BRERSLCAxLCBkYXRhLCBSVENfUkVHX0NOVCk7CiAKIAlpZiggZGF0YVtSVENfU0VDX0FERFJdICYgMHg4MCApewogCQlwcmludGYoICJtNDF0MTEgUlRDIENsb2NrIHN0b3BwZWQhISFcbiIgKTsKQEAgLTExMiwxNCArMTEyLDE0IEBACiAJdG1wLT50bV9ob3VyID0gYmNkMmJpbiAoZGF0YVtSVENfSE9VUl9BRERSXSAmIDB4M0YpOwogCXRtcC0+dG1fbWRheSA9IGJjZDJiaW4gKGRhdGFbUlRDX0RBVEVfQUREUl0gJiAweDNGKTsKIAl0bXAtPnRtX21vbiAgPSBiY2QyYmluIChkYXRhW1JUQ19NT05USF9BRERSXSYgMHgxRik7Ci0jaWZuZGVmIENGR19NNDFUMTFfRVhUX0NFTlRVUllfREFUQQotCXRtcC0+dG1feWVhciA9IENGR19NNDFUMTFfQkFTRV9ZRUFSCisjaWZuZGVmIENPTkZJR19TWVNfTTQxVDExX0VYVF9DRU5UVVJZX0RBVEEKKwl0bXAtPnRtX3llYXIgPSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIKIAkJKyBiY2QyYmluKGRhdGFbUlRDX1lFQVJTX0FERFJdKQogCQkrICgoZGF0YVtSVENfSE9VUl9BRERSXSYweDQwKSA/IDEwMCA6IDApOwogI2Vsc2UKIAl7CiAJCXVuc2lnbmVkIGNoYXIgY2VudDsKLQkJaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgTTQxVDExX1lFQVJfREFUQSwgMSwgJmNlbnQsIE00MVQxMV9ZRUFSX1NJWkUpOworCQlpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgTTQxVDExX1lFQVJfREFUQSwgMSwgJmNlbnQsIE00MVQxMV9ZRUFSX1NJWkUpOwogCQlpZiggIShkYXRhW1JUQ19IT1VSX0FERFJdICYgMHg4MCkgKXsKIAkJCXByaW50ZiggIm00MXQxMSBSVEM6IGNhbm4ndCBrZWVwIHRyYWNrIG9mIHllYXJzIHdpdGhvdXQgQ0VCIHNldFxuIiApOwogCQkJcmVsID0gLTE7CkBAIC0xMjcsNyArMTI3LDcgQEAKIAkJaWYoIChjZW50ICYgMHgxKSAhPSAoKGRhdGFbUlRDX0hPVVJfQUREUl0mMHg0MCk+PjcpICl7CiAJCQkvKmNlbnR1cnkgZmxpcCBzdG9yZSBvZmYgbmV3IHllYXIqLwogCQkJY2VudCArPSAxOwotCQkJaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIE00MVQxMV9ZRUFSX0RBVEEsIDEsICZjZW50LCBNNDFUMTFfWUVBUl9TSVpFKTsKKwkJCWkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgTTQxVDExX1lFQVJfREFUQSwgMSwgJmNlbnQsIE00MVQxMV9ZRUFSX1NJWkUpOwogCQl9CiAJCXRtcC0+dG1feWVhciA9KChpbnQpY2VudCoxMDApK2JjZDJiaW4oZGF0YVtSVENfWUVBUlNfQUREUl0pOwogCX0KQEAgLTE2MSwyMSArMTYxLDIxIEBACiAJZGF0YVtSVENfSE9VUl9BRERSXSAgIHw9IDB4ODA7Lyp3ZSB3aWxsIGFsd2F5cyB1c2UgQ0VCKi8KIAogCWRhdGFbUlRDX1lFQVJTX0FERFJdICA9IGJpbjJiY2QodG1wLT50bV95ZWFyJTEwMCk7LypzYW1lIHRoaW5nIGVpdGhlciB3YXkqLwotI2lmbmRlZiBDRkdfTTQxVDExX0VYVF9DRU5UVVJZX0RBVEEKLQlpZiggKCh0bXAtPnRtX3llYXIgLSBDRkdfTTQxVDExX0JBU0VfWUVBUikgPiAyMDApIHx8Ci0JICAgICh0bXAtPnRtX3llYXIgPCBDRkdfTTQxVDExX0JBU0VfWUVBUikgKXsKKyNpZm5kZWYgQ09ORklHX1NZU19NNDFUMTFfRVhUX0NFTlRVUllfREFUQQorCWlmKCAoKHRtcC0+dG1feWVhciAtIENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUikgPiAyMDApIHx8CisJICAgICh0bXAtPnRtX3llYXIgPCBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIpICl7CiAJCXByaW50ZiggIm00MXQxMSBSVEMgc2V0dGluZyB5ZWFyIG91dCBvZiByYW5nZSEhbmVlZCByZWNvbXBpbGVcbiIgKTsKIAl9Ci0JZGF0YVtSVENfSE9VUl9BRERSXSB8PSAodG1wLT50bV95ZWFyIC0gQ0ZHX000MVQxMV9CQVNFX1lFQVIpID4gMTAwID8gMHg0MCA6IDA7CisJZGF0YVtSVENfSE9VUl9BRERSXSB8PSAodG1wLT50bV95ZWFyIC0gQ09ORklHX1NZU19NNDFUMTFfQkFTRV9ZRUFSKSA+IDEwMCA/IDB4NDAgOiAwOwogI2Vsc2UKIAl7CiAJCXVuc2lnbmVkIGNoYXIgY2VudDsKIAkJY2VudCA9IHRtcC0+dG1feWVhciA/IHRtcC0+dG1feWVhciAvIDEwMCA6IDA7CiAJCWRhdGFbUlRDX0hPVVJfQUREUl0gfD0gKGNlbnQgJiAweDEpID8gMHg0MCA6IDA7Ci0JCWkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCBNNDFUMTFfWUVBUl9EQVRBLCAxLCAmY2VudCwgTTQxVDExX1lFQVJfU0laRSk7CisJCWkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgTTQxVDExX1lFQVJfREFUQSwgMSwgJmNlbnQsIE00MVQxMV9ZRUFSX1NJWkUpOwogCX0KICNlbmRpZgotCWkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCBSVENfU0VDX0FERFIsIDEsIGRhdGEsIFJUQ19SRUdfQ05UKTsKKwlpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIFJUQ19TRUNfQUREUiwgMSwgZGF0YSwgUlRDX1JFR19DTlQpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xODQsMTMgKzE4NCwxMyBAQAogewogCXVuc2lnbmVkIGNoYXIgdmFsOwogCS8qIGNsZWFyIGFsbCBjb250cm9sICYgc3RhdHVzIHJlZ2lzdGVycyAqLwotCWkyY19yZWFkKENGR19JMkNfUlRDX0FERFIsIFJUQ19TRUNfQUREUiwgMSwgJnZhbCwgMSk7CisJaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIFJUQ19TRUNfQUREUiwgMSwgJnZhbCwgMSk7CiAJdmFsID0gdmFsICYgMHg3RjsvKm1ha2Ugc3VyZSB3ZSBhcmUgcnVubmluZyovCi0JaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIFJUQ19TRUNfQUREUiwgMSwgJnZhbCwgUlRDX1JFR19DTlQpOworCWkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgUlRDX1NFQ19BRERSLCAxLCAmdmFsLCBSVENfUkVHX0NOVCk7CiAKLQlpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCBSVENfQ09OVFJPTF9BRERSLCAxLCAmdmFsLCAxKTsKKwlpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgUlRDX0NPTlRST0xfQUREUiwgMSwgJnZhbCwgMSk7CiAJdmFsID0gdmFsICYgMHgzRjsvKnR1cm4gb2ZmIGZyZXEgdGVzdCBrZWVwIGNhbGlicmF0aW9uKi8KLQlpMmNfd3JpdGUoQ0ZHX0kyQ19SVENfQUREUiwgUlRDX0NPTlRST0xfQUREUiwgMSwgJnZhbCwgMSk7CisJaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBSVENfQ09OVFJPTF9BRERSLCAxLCAmdmFsLCAxKTsKIH0KIAogaW50IHJ0Y19zdG9yZShpbnQgYWRkciwgdW5zaWduZWQgY2hhciogZGF0YSwgaW50IHNpemUpCkBAIC0xOTgsMTIgKzE5OCwxMiBAQAogCS8qZG9uJ3QgbGV0IHRoaW5ncyB3cmFwIG9udG8gdGhlIHRpbWUgb24gYSB3cml0ZSovCiAJaWYoIChhZGRyK3NpemUpID49IE00MVQxMV9TVE9SQUdFX1NaICkKIAkJcmV0dXJuIDE7Ci0JcmV0dXJuIGkyY193cml0ZSggQ0ZHX0kyQ19SVENfQUREUiwgUkVHX0NOVCthZGRyLCAxLCBkYXRhLCBzaXplICk7CisJcmV0dXJuIGkyY193cml0ZSggQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIFJFR19DTlQrYWRkciwgMSwgZGF0YSwgc2l6ZSApOwogfQogCiBpbnQgcnRjX3JlY2FsbChpbnQgYWRkciwgdW5zaWduZWQgY2hhciogZGF0YSwgaW50IHNpemUpCiB7Ci0JcmV0dXJuIGkyY19yZWFkKCBDRkdfSTJDX1JUQ19BRERSLCBSRUdfQ05UK2FkZHIsIDEsIGRhdGEsIHNpemUgKTsKKwlyZXR1cm4gaTJjX3JlYWQoIENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBSRUdfQ05UK2FkZHIsIDEsIGRhdGEsIHNpemUgKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9tNDF0NjAuYyBiL2RyaXZlcnMvcnRjL200MXQ2MC5jCmluZGV4IDcxYmZjMzIuLmUzNGE1ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL200MXQ2MC5jCisrKyBiL2RyaXZlcnMvcnRjL200MXQ2MC5jCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8cnRjLmg+CiAjaW5jbHVkZSA8aTJjLmg+CiAKLSNpZiBkZWZpbmVkKENGR19JMkNfUlRDX0FERFIpICYmIGRlZmluZWQoQ09ORklHX0NNRF9EQVRFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIpICYmIGRlZmluZWQoQ09ORklHX0NNRF9EQVRFKQogCiBzdGF0aWMgdW5zaWduZWQgYmNkMmJpbih1Y2hhciBuKQogewpAQCAtODUsNyArODUsNyBAQAogewogCXVjaGFyIGRhdGFbOF07CiAKLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMSwgZGF0YSwgc2l6ZW9mKGRhdGEpKSkgeworCWlmIChpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMSwgZGF0YSwgc2l6ZW9mKGRhdGEpKSkgewogCQlwcmludGYoIkkyQyByZWFkIGZhaWxlZCBpbiBydGNfZHVtcCgpXG4iKTsKIAkJcmV0dXJuOwogCX0KQEAgLTExNCw3ICsxMTQsNyBAQAogCXVjaGFyIG1pbiwgZGF0ZSwgbW9udGgsIHllYXJzOwogCiAJcnRjX2R1bXAoImJlZ2luIHZhbGlkYXRlIik7Ci0JaWYgKGkyY19yZWFkKENGR19JMkNfUlRDX0FERFIsIDAsIDEsIGRhdGEsIHNpemVvZihkYXRhKSkpIHsKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDEsIGRhdGEsIHNpemVvZihkYXRhKSkpIHsKIAkJcHJpbnRmKCJJMkMgcmVhZCBmYWlsZWQgaW4gcnRjX3ZhbGlkYXRlKClcbiIpOwogCQlyZXR1cm4gMDsKIAl9CkBAIC0xMjUsNyArMTI1LDcgQEAKIAlpZiAoMHgwMCAhPSAoZGF0YVtSVENfQ1RSTF0gJiAweDgwKSkgewogCQlwcmludGYoIk00MVQ2MCBSVEMgY2xvY2sgbG9zdCBwb3dlci5cbiIpOwogCQlkYXRhW1JUQ19TRUNdID0gMHg4MDsKLQkJaWYgKGkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCBSVENfU0VDLCAxLCBkYXRhLCAxKSkgeworCQlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCBSVENfU0VDLCAxLCBkYXRhLCAxKSkgewogCQkJcHJpbnRmKCJJMkMgd3JpdGUgZmFpbGVkIGluIHJ0Y192YWxpZGF0ZSgpXG4iKTsKIAkJCXJldHVybiAwOwogCQl9CkBAIC0xNjEsNyArMTYxLDcgQEAKIAkJZGF0YVtSVENfWUVBUl0gPSAweDAwOwogCQlkYXRhW1JUQ19DVFJMXSAmPSAweDdGOwkvKiByZXNldCBPVVQgYml0ICovCiAKLQkJaWYgKGkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCAwLCAxLCBkYXRhLCBzaXplb2YoZGF0YSkpKSB7CisJCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDEsIGRhdGEsIHNpemVvZihkYXRhKSkpIHsKIAkJCXByaW50ZigiSTJDIHdyaXRlIGZhaWxlZCBpbiBydGNfdmFsaWRhdGUoKVxuIik7CiAJCQlyZXR1cm4gMDsKIAkJfQpAQCAtMjEyLDcgKzIxMiw3IEBACiAJZGF0YVtSVENfWUVBUl0gPSBiaW4yYmNkKHRtcC0+dG1feWVhciAlIDEwMCk7CiAJZGF0YVtSVENfTU9OVEhdIHw9IHllYXIyY2IodG1wLT50bV95ZWFyKSA8PCA2OwogCWRhdGFbUlRDX0RBWV0gPSBiaW4yYmNkKHRtcC0+dG1fd2RheSArIDEpICYgMHgwNzsKLQlpZiAoaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIDAsIDEsIGRhdGEsIFJUQ19SRUdfQ05UKSkgeworCWlmIChpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDEsIGRhdGEsIFJUQ19SRUdfQ05UKSkgewogCQlwcmludGYoIkkyQyB3cml0ZSBmYWlsZWQgaW4gcnRjX3NldCgpXG4iKTsKIAkJcmV0dXJuIC0xOwogCX0KQEAgLTI1NSwxMCArMjU1LDEwIEBACiAJICogVHVybiBvZmYgZnJlcXVlbmN5IHRlc3QuCiAJICovCiAJZGF0YVtSVENfQ1RSTF0gJj0gMHhCRjsKLQlpZiAoaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIFJUQ19DVFJMLCAxLCBkYXRhICsgUlRDX0NUUkwsIDEpKSB7CisJaWYgKGkyY193cml0ZShDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgUlRDX0NUUkwsIDEsIGRhdGEgKyBSVENfQ1RSTCwgMSkpIHsKIAkJcHJpbnRmKCJJMkMgd3JpdGUgZmFpbGVkIGluIHJ0Y19yZXNldCgpXG4iKTsKIAkJcmV0dXJuOwogCX0KIAlydGNfZHVtcCgiZW5kIHJlc2V0Iik7CiB9Ci0jZW5kaWYgLyogQ09ORklHX1JUQ19NNDFUNjAgJiYgQ0ZHX0kyQ19SVENfQUREUiAmJiBDT05GSUdfQ01EX0RBVEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUlRDX000MVQ2MCAmJiBDT05GSUdfU1lTX0kyQ19SVENfQUREUiAmJiBDT05GSUdfQ01EX0RBVEUgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL200MXQ2Mi5jIGIvZHJpdmVycy9ydGMvbTQxdDYyLmMKaW5kZXggOWI3Yzg0YS4uY2ZlODRmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvbTQxdDYyLmMKKysrIGIvZHJpdmVycy9ydGMvbTQxdDYyLmMKQEAgLTY4LDcgKzY4LDcgQEAKIHsKIAl1OCBidWZbTTQxVDYyX0RBVEVUSU1FX1JFR19TSVpFXTsKIAotCWkyY19yZWFkKENGR19JMkNfUlRDX0FERFIsIDAsIDEsIGJ1ZiwgTTQxVDYyX0RBVEVUSU1FX1JFR19TSVpFKTsKKwlpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMSwgYnVmLCBNNDFUNjJfREFURVRJTUVfUkVHX1NJWkUpOwogCiAJZGVidWcoIiVzOiByYXcgcmVhZCBkYXRhIC0gc2VjPSUwMngsIG1pbj0lMDJ4LCBocj0lMDJ4LCAiCiAJICAgICAgIm1kYXk9JTAyeCwgbW9uPSUwMngsIHllYXI9JTAyeCwgd2RheT0lMDJ4LCB5Mms9JTAyeFxuIiwKQEAgLTEwNCw3ICsxMDQsNyBAQAogCSAgICAgIHRtLT50bV95ZWFyLCB0bS0+dG1fbW9uLCB0bS0+dG1fbWRheSwgdG0tPnRtX3dkYXksCiAJICAgICAgdG0tPnRtX2hvdXIsIHRtLT50bV9taW4sIHRtLT50bV9zZWMpOwogCi0JaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMSwgYnVmLCBNNDFUNjJfREFURVRJTUVfUkVHX1NJWkUpOworCWkyY19yZWFkKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAxLCBidWYsIE00MVQ2Ml9EQVRFVElNRV9SRUdfU0laRSk7CiAKIAkvKiBNZXJnZSB0aW1lLWRhdGEgYW5kIHJlZ2lzdGVyIGZsYWdzIGludG8gYnVmWzAuLjddICovCiAJYnVmW000MVQ2Ml9SRUdfU1NFQ10gPSAwOwpAQCAtMTIzLDcgKzEyMyw3IEBACiAJLyogYXNzdW1lIDIwWVkgbm90IDE5WVkgKi8KIAlidWZbTTQxVDYyX1JFR19ZRUFSXSA9IEJJTjJCQ0QodG0tPnRtX3llYXIgJSAxMDApOwogCi0JaWYgKGkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCAwLCAxLCBidWYsIE00MVQ2Ml9EQVRFVElNRV9SRUdfU0laRSkpIHsKKwlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAxLCBidWYsIE00MVQ2Ml9EQVRFVElNRV9SRUdfU0laRSkpIHsKIAkJcHJpbnRmKCJJMkMgd3JpdGUgZmFpbGVkIGluICVzKClcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC0xOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL200OHQzNWF4LmMgYi9kcml2ZXJzL3J0Yy9tNDh0MzVheC5jCmluZGV4IGUxOWI4MWIuLjE0ODJlZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL200OHQzNWF4LmMKKysrIGIvZHJpdmVycy9ydGMvbTQ4dDM1YXguYwpAQCAtMTQ3LDE0ICsxNDcsMTQgQEAKIHsKIAl1Y2hhciB2YWw7CiAJdmFsID0gKih1bnNpZ25lZCBjaGFyICopCi0JCSgoQ0ZHX05WUkFNX0JBU0VfQUREUiArIENGR19OVlJBTV9TSVpFIC0gOCkgKyByZWcpOworCQkoKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgQ09ORklHX1NZU19OVlJBTV9TSVpFIC0gOCkgKyByZWcpOwogCXJldHVybiB2YWw7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0Y193cml0ZSAodWNoYXIgcmVnLCB1Y2hhciB2YWwpCiB7CiAJKih1bnNpZ25lZCBjaGFyICopCi0JCSgoQ0ZHX05WUkFNX0JBU0VfQUREUiArIENGR19OVlJBTV9TSVpFIC0gOCkgKyByZWcpID0gdmFsOworCQkoKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgQ09ORklHX1NZU19OVlJBTV9TSVpFIC0gOCkgKyByZWcpID0gdmFsOwogfQogCiBzdGF0aWMgdW5zaWduZWQgYmNkMmJpbiAodWNoYXIgbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL21heDY5MDAuYyBiL2RyaXZlcnMvcnRjL21heDY5MDAuYwppbmRleCA3NThkN2I3Li43Yzk5YzVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9tYXg2OTAwLmMKKysrIGIvZHJpdmVycy9ydGMvbWF4NjkwMC5jCkBAIC0zNCwyMCArMzQsMjAgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9EQVRFKQogCi0jaWZuZGVmCUNGR19JMkNfUlRDX0FERFIKLSNkZWZpbmUJQ0ZHX0kyQ19SVENfQUREUgkweDUwCisjaWZuZGVmCUNPTkZJR19TWVNfSTJDX1JUQ19BRERSCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTAKICNlbmRpZgogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIHN0YXRpYyB1Y2hhciBydGNfcmVhZCAodWNoYXIgcmVnKQogewotCXJldHVybiAoaTJjX3JlZ19yZWFkIChDRkdfSTJDX1JUQ19BRERSLCByZWcpKTsKKwlyZXR1cm4gKGkyY19yZWdfcmVhZCAoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZykpOwogfQogCiBzdGF0aWMgdm9pZCBydGNfd3JpdGUgKHVjaGFyIHJlZywgdWNoYXIgdmFsKQogewotCWkyY19yZWdfd3JpdGUgKENGR19JMkNfUlRDX0FERFIsIHJlZywgdmFsKTsKKwlpMmNfcmVnX3dyaXRlIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOwogCXVkZWxheSgyNTAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvbWMxNDY4MTguYyBiL2RyaXZlcnMvcnRjL21jMTQ2ODE4LmMKaW5kZXggMTIyNTQ1NC4uMzg0ODRjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvbWMxNDY4MTguYworKysgYi9kcml2ZXJzL3J0Yy9tYzE0NjgxOC5jCkBAIC0zOCw3ICszOCw3IEBACiBzdGF0aWMgdWNoYXIgYmluMmJjZCAgICh1bnNpZ25lZCBpbnQgbik7CiBzdGF0aWMgdW5zaWduZWQgYmNkMmJpbih1Y2hhciBjKTsKIAotI2RlZmluZSBSVENfUE9SVF9NQzE0NjgxOAlDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyArICAweDcwCisjZGVmaW5lIFJUQ19QT1JUX01DMTQ2ODE4CUNPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyArICAweDcwCiAjZGVmaW5lIFJUQ19TRUNPTkRTCQkweDAwCiAjZGVmaW5lIFJUQ19TRUNPTkRTX0FMQVJNCTB4MDEKICNkZWZpbmUgUlRDX01JTlVURVMJCTB4MDIKQEAgLTE0MSwxOCArMTQxLDE4IEBACiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2lmZGVmIENGR19SVENfUkVHX0JBU0VfQUREUgorI2lmZGVmIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIKIC8qCiAgKiB1c2UgZGlyZWN0IG1lbW9yeSBhY2Nlc3MKICAqLwogc3RhdGljIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuKGluOChDRkdfUlRDX1JFR19CQVNFX0FERFIrcmVnKSk7CisJcmV0dXJuKGluOChDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSK3JlZykpOwogfQogCiBzdGF0aWMgdm9pZCBydGNfd3JpdGUgKHVjaGFyIHJlZywgdWNoYXIgdmFsKQogewotCW91dDgoQ0ZHX1JUQ19SRUdfQkFTRV9BRERSK3JlZywgdmFsKTsKKwlvdXQ4KENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIrcmVnLCB2YWwpOwogfQogI2Vsc2UKIHN0YXRpYyB1Y2hhciBydGNfcmVhZCAodWNoYXIgcmVnKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvbWNmcnRjLmMgYi9kcml2ZXJzL3J0Yy9tY2ZydGMuYwppbmRleCBjMmFmMTk3Li45NzljNDY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9tY2ZydGMuYworKysgYi9kcml2ZXJzL3J0Yy9tY2ZydGMuYwpAQCAtMzIsNyArMzIsNyBAQAogCiAjdW5kZWYgUlRDX0RFQlVHCiAKLSNpZm5kZWYgQ0ZHX01DRlJUQ19CQVNFCisjaWZuZGVmIENPTkZJR19TWVNfTUNGUlRDX0JBU0UKICNlcnJvciBSVENfQkFTRSBpcyBub3QgZGVmaW5lZCEKICNlbmRpZgogCkBAIC00MSw3ICs0MSw3IEBACiAKIGludCBydGNfZ2V0KHN0cnVjdCBydGNfdGltZSAqdG1wKQogewotCXZvbGF0aWxlIHJ0Y190ICpydGMgPSAocnRjX3QgKikgKENGR19NQ0ZSVENfQkFTRSk7CisJdm9sYXRpbGUgcnRjX3QgKnJ0YyA9IChydGNfdCAqKSAoQ09ORklHX1NZU19NQ0ZSVENfQkFTRSk7CiAKIAlpbnQgcnRjX2RheXMsIHJ0Y19ocnMsIHJ0Y19taW5zOwogCWludCB0aW07CkBAIC03MCw3ICs3MCw3IEBACiAKIGludCBydGNfc2V0KHN0cnVjdCBydGNfdGltZSAqdG1wKQogewotCXZvbGF0aWxlIHJ0Y190ICpydGMgPSAocnRjX3QgKikgKENGR19NQ0ZSVENfQkFTRSk7CisJdm9sYXRpbGUgcnRjX3QgKnJ0YyA9IChydGNfdCAqKSAoQ09ORklHX1NZU19NQ0ZSVENfQkFTRSk7CiAKIAlzdGF0aWMgaW50IG1vbnRoX2RheXNbMTJdID0gewogCQkzMSwgMjgsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxCkBAIC0xMTIsNyArMTEyLDcgQEAKIAogdm9pZCBydGNfcmVzZXQodm9pZCkKIHsKLQl2b2xhdGlsZSBydGNfdCAqcnRjID0gKHJ0Y190ICopIChDRkdfTUNGUlRDX0JBU0UpOworCXZvbGF0aWxlIHJ0Y190ICpydGMgPSAocnRjX3QgKikgKENPTkZJR19TWVNfTUNGUlRDX0JBU0UpOwogCiAJaWYgKChydGMtPmNyICYgUlRDX0NSX0VOKSA9PSAwKSB7CiAJCXByaW50ZigicmVhbC10aW1lLWNsb2NrIHdhcyBzdG9wcGVkLiBOb3cgc3RhcnRpbmcuLi5cbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvbXBjNXh4eC5jIGIvZHJpdmVycy9ydGMvbXBjNXh4eC5jCmluZGV4IDYyMzFiOWIuLmVjMGIwZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL21wYzV4eHguYworKysgYi9kcml2ZXJzL3J0Yy9tcGM1eHh4LmMKQEAgLTU3LDcgKzU3LDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBydGNfZ2V0IChzdHJ1Y3QgcnRjX3RpbWUgKnRtcCkKIHsKLQlSVEM1MjAwCSpydGMgPSAoUlRDNTIwMCAqKSAoQ0ZHX01CQVIrMHg4MDApOworCVJUQzUyMDAJKnJ0YyA9IChSVEM1MjAwICopIChDT05GSUdfU1lTX01CQVIrMHg4MDApOwogCXVsb25nIHRpbWUsIGRhdGUsIHRpbWUyOwogCiAJLyogcmVhZCB0d2ljZSB0byBhdm9pZCBnZXR0aW5nIGEgZnVubnkgdGltZSB3aGVuIHRoZSBzZWNvbmQgaXMganVzdCBjaGFuZ2luZyAqLwpAQCAtOTAsNyArOTAsNyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IHJ0Y19zZXQgKHN0cnVjdCBydGNfdGltZSAqdG1wKQogewotCVJUQzUyMDAJKnJ0YyA9IChSVEM1MjAwICopIChDRkdfTUJBUisweDgwMCk7CisJUlRDNTIwMAkqcnRjID0gKFJUQzUyMDAgKikgKENPTkZJR19TWVNfTUJBUisweDgwMCk7CiAJdWxvbmcgdGltZSwgZGF0ZSwgeWVhcjsKIAogCWRlYnVnICggIlNldCBEQVRFOiAlNGQtJTAyZC0lMDJkICh3ZGF5PSVkKSAgVElNRTogJTJkOiUwMmQ6JTAyZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL21wYzh4eC5jIGIvZHJpdmVycy9ydGMvbXBjOHh4LmMKaW5kZXggMmJiYzVkMy4uMWMyNGU1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvbXBjOHh4LmMKKysrIGIvZHJpdmVycy9ydGMvbXBjOHh4LmMKQEAgLTM3LDcgKzM3LDcgQEAKIAogaW50IHJ0Y19nZXQgKHN0cnVjdCBydGNfdGltZSAqdG1wKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyB0aW07CiAKIAl0aW0gPSBpbW1yLT5pbV9zaXQuc2l0X3J0YzsKQEAgLTUzLDcgKzUzLDcgQEAKIAogaW50IHJ0Y19zZXQgKHN0cnVjdCBydGNfdGltZSAqdG1wKQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKIAl1bG9uZyB0aW07CiAKIAlkZWJ1ZyAoICJTZXQgREFURTogJTRkLSUwMmQtJTAyZCAod2RheT0lZCkgIFRJTUU6ICUyZDolMDJkOiUwMmRcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9wY2Y4NTYzLmMgYi9kcml2ZXJzL3J0Yy9wY2Y4NTYzLmMKaW5kZXggMmZlMWUzNy4uY2Q5ZmI2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcGNmODU2My5jCisrKyBiL2RyaXZlcnMvcnRjL3BjZjg1NjMuYwpAQCAtMTI5LDEyICsxMjksMTIgQEAKIAogc3RhdGljIHVjaGFyIHJ0Y19yZWFkICh1Y2hhciByZWcpCiB7Ci0JcmV0dXJuIChpMmNfcmVnX3JlYWQgKENGR19JMkNfUlRDX0FERFIsIHJlZykpOworCXJldHVybiAoaTJjX3JlZ19yZWFkIChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgcmVnKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0Y193cml0ZSAodWNoYXIgcmVnLCB1Y2hhciB2YWwpCiB7Ci0JaTJjX3JlZ193cml0ZSAoQ0ZHX0kyQ19SVENfQUREUiwgcmVnLCB2YWwpOworCWkyY19yZWdfd3JpdGUgKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCByZWcsIHZhbCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBiY2QyYmluICh1Y2hhciBuKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcGwwMzEuYyBiL2RyaXZlcnMvcnRjL3BsMDMxLmMKaW5kZXggNmMxZTliZC4uOGIyYjE3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcGwwMzEuYworKysgYi9kcml2ZXJzL3J0Yy9wbDAzMS5jCkBAIC0yOSw4ICsyOSw4IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfREFURSkKIAotI2lmbmRlZiBDRkdfUlRDX1BMMDMxX0JBU0UKLSNlcnJvciBDRkdfUlRDX1BMMDMxX0JBU0UgaXMgbm90IGRlZmluZWQhCisjaWZuZGVmIENPTkZJR19TWVNfUlRDX1BMMDMxX0JBU0UKKyNlcnJvciBDT05GSUdfU1lTX1JUQ19QTDAzMV9CQVNFIGlzIG5vdCBkZWZpbmVkIQogI2VuZGlmCiAKIC8qCkBAIC00OCw5ICs0OCw5IEBACiAjZGVmaW5lIFJUQ19DUl9TVEFSVAkoMSA8PCAwKQogCiAjZGVmaW5lCVJUQ19XUklURV9SRUcoYWRkciwgdmFsKSBcCi0JCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoQ0ZHX1JUQ19QTDAzMV9CQVNFICsgKGFkZHIpKSA9ICh2YWwpKQorCQkJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopKENPTkZJR19TWVNfUlRDX1BMMDMxX0JBU0UgKyAoYWRkcikpID0gKHZhbCkpCiAjZGVmaW5lCVJUQ19SRUFEX1JFRyhhZGRyKQlcCi0JCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikoQ0ZHX1JUQ19QTDAzMV9CQVNFICsgKGFkZHIpKSkKKwkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKShDT05GSUdfU1lTX1JUQ19QTDAzMV9CQVNFICsgKGFkZHIpKSkKIAogc3RhdGljIGludCBwbDAzMV9pbml0dGVkID0gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnM1YzM3Mi5jIGIvZHJpdmVycy9ydGMvcnM1YzM3Mi5jCmluZGV4IDgyZGQ5NjkuLmQ2Y2Q3YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3JzNWMzNzIuYworKysgYi9kcml2ZXJzL3J0Yy9yczVjMzcyLmMKQEAgLTUwLDggKzUwLDggQEAKICNkZWZpbmUgcnRjX2RlYnVnIDAJLyogZ2NjIHdpbGwgcmVtb3ZlIGFsbCB0aGUgZGVidWcgY29kZSBmb3IgdXMgKi8KICNlbmRpZgogCi0jaWZuZGVmIENGR19JMkNfUlRDX0FERFIKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAweDMyCisjaWZuZGVmIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSIDB4MzIKICNlbmRpZgogCiAjZGVmaW5lIFJTNUMzNzJfUkFNX1NJWkUgMHgxMApAQCAtNzcsNyArNzcsNyBAQAogewogCWludCByZXQ7CiAKLQlyZXQgPSBpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCAwLCAwLCBidWYsIGxlbik7CisJcmV0ID0gaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgbGVuKTsKIAlpZiAocmV0ICE9IDApIHsKIAkJcHJpbnRmKCIlczogZmFpbGVkIHRvIHJlYWRcbiIsIF9fRlVOQ1RJT05fXyk7CiAJCXJldHVybiByZXQ7CkBAIC0xMTcsNyArMTE3LDcgQEAKIAlidWZbMTRdID0gMDsgLyogcmVnLiAxMyAqLwogCWJ1ZlsxNV0gPSAwOyAvKiByZWcuIDE0ICovCiAJYnVmWzE2XSA9IFVTRV8yNEhPVVJfTU9ERTsgLyogcmVnLiAxNSAqLwotCXJldCA9IGkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCAwLCAwLCBidWYsIFJTNUMzNzJfUkFNX1NJWkUrMSk7CisJcmV0ID0gaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAwLCBidWYsIFJTNUMzNzJfUkFNX1NJWkUrMSk7CiAJaWYgKHJldCAhPSAwKSB7CiAJCXByaW50ZigiJXM6IGZhaWxlZFxuIiwgX19GVU5DVElPTl9fKTsKIAkJcmV0dXJuOwpAQCAtMjE4LDcgKzIxOCw3IEBACiAJbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKGJ1ZikpOwogCiAJLyogb25seSByZWFkIHJlZ2lzdGVyIDE1ICovCi0JcmV0ID0gaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgMCwgMCwgYnVmLCAxKTsKKwlyZXQgPSBpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgMCwgMCwgYnVmLCAxKTsKIAogCWlmIChyZXQgPT0gMCkgewogCQkvKiBuZWVkIHRvIHNhdmUgcmVnaXN0ZXIgMTUgKi8KQEAgLTI0Nyw3ICsyNDcsNyBAQAogCQkJcHJpbnRmKCJXQVJOSU5HOiB5ZWFyIHNob3VsZCBiZSBiZXR3ZWVuIDE5NzAgYW5kIDIwNjkhXG4iKTsKIAkJYnVmWzddID0gYmluMmJjZCh0bXAtPnRtX3llYXIgJSAxMDApOwogCi0JCXJldCA9IGkyY193cml0ZShDRkdfSTJDX1JUQ19BRERSLCAwLCAwLCBidWYsIDgpOworCQlyZXQgPSBpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgOCk7CiAJCWlmIChyZXQgIT0gMCkgewogCQkJcHJpbnRmKCJyczVjMzcyX3NldF9kYXRldGltZSgpLCBpMmNfbWFzdGVyX3NlbmQoKSByZXR1cm5lZCAlZFxuIixyZXQpOwogCQkJcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcng4MDI1LmMgYi9kcml2ZXJzL3J0Yy9yeDgwMjUuYwppbmRleCA5ZjRjZTJmLi5kYTg3Mzk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9yeDgwMjUuYworKysgYi9kcml2ZXJzL3J0Yy9yeDgwMjUuYwpAQCAtNDIsOCArNDIsOCBAQAogI2VuZGlmCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZm5kZWYgQ0ZHX0kyQ19SVENfQUREUgotIyBkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDMyCisjaWZuZGVmIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDMyCiAjZW5kaWYKIAogLyoKQEAgLTEwMiw3ICsxMDIsNyBAQAogCXVjaGFyIHNlYywgbWluLCBob3VyLCBtZGF5LCB3ZGF5LCBtb24sIHllYXIsIGN0bDI7CiAJdWNoYXIgYnVmWzE2XTsKIAotCWlmIChpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCAwLCAwLCBidWYsIDE2KSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgMTYpKQogCQlwcmludGYoIkVycm9yIHJlYWRpbmcgZnJvbSBSVENcbiIpOwogCiAJc2VjID0gcnRjX3JlYWQoUlRDX1NFQ19SRUdfQUREUik7CkBAIC0xODksNyArMTg5LDcgQEAKIAl1Y2hhciBidWZbMTZdOwogCXVjaGFyIGN0bDI7CiAKLQlpZiAoaTJjX3JlYWQoQ0ZHX0kyQ19SVENfQUREUiwgMCwgICAgMCwgICBidWYsIDE2KSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIDAsICAgIDAsICAgYnVmLCAxNikpCiAJCXByaW50ZigiRXJyb3IgcmVhZGluZyBmcm9tIFJUQ1xuIik7CiAKIAljdGwyID0gcnRjX3JlYWQoUlRDX0NUTDJfUkVHX0FERFIpOwpAQCAtMjIxLDcgKzIyMSw3IEBACiAJdWNoYXIgYnVmWzJdOwogCWJ1ZlswXSA9IHJlZyA8PCA0OwogCWJ1ZlsxXSA9IHZhbDsKLQlpZiAoaTJjX3dyaXRlKENGR19JMkNfUlRDX0FERFIsIDAsIDAsIGJ1ZiwgMikgIT0gMCkKKwlpZiAoaTJjX3dyaXRlKENPTkZJR19TWVNfSTJDX1JUQ19BRERSLCAwLCAwLCBidWYsIDIpICE9IDApCiAJCXByaW50ZigiRXJyb3Igd3JpdGluZyB0byBSVENcbiIpOwogCiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy94MTIwNS5jIGIvZHJpdmVycy9ydGMveDEyMDUuYwppbmRleCA3YTNiNTE0Li41NjExNWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy94MTIwNS5jCisrKyBiL2RyaXZlcnMvcnRjL3gxMjA1LmMKQEAgLTk2LDcgKzk2LDcgQEAKIAogc3RhdGljIHZvaWQgcnRjX3dyaXRlKGludCByZWcsIHU4IHZhbCkKIHsKLQlpMmNfd3JpdGUoQ0ZHX0kyQ19SVENfQUREUiwgcmVnLCAyLCAmdmFsLCAxKTsKKwlpMmNfd3JpdGUoQ09ORklHX1NZU19JMkNfUlRDX0FERFIsIHJlZywgMiwgJnZhbCwgMSk7CiB9CiAKIC8qCkBAIC0xMDgsNyArMTA4LDcgQEAKIHsKIAl1OCBidWZbOF07CiAKLQlpMmNfcmVhZChDRkdfSTJDX1JUQ19BRERSLCBYMTIwNV9DQ1JfQkFTRSwgMiwgYnVmLCA4KTsKKwlpMmNfcmVhZChDT05GSUdfU1lTX0kyQ19SVENfQUREUiwgWDEyMDVfQ0NSX0JBU0UsIDIsIGJ1ZiwgOCk7CiAKIAlkZWJ1ZygiJXM6IHJhdyByZWFkIGRhdGEgLSBzZWM9JTAyeCwgbWluPSUwMngsIGhyPSUwMngsICIKIAkgICAgICAibWRheT0lMDJ4LCBtb249JTAyeCwgeWVhcj0lMDJ4LCB3ZGF5PSUwMngsIHkyaz0lMDJ4XG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvbWNmdWFydC5jIGIvZHJpdmVycy9zZXJpYWwvbWNmdWFydC5jCmluZGV4IGExZmNkMDUuLmUwNGZjMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL21jZnVhcnQuYworKysgYi9kcml2ZXJzL3NlcmlhbC9tY2Z1YXJ0LmMKQEAgLTQxLDcgKzQxLDcgQEAKIAl2b2xhdGlsZSB1YXJ0X3QgKnVhcnQ7CiAJdTMyIGNvdW50ZXI7CiAKLQl1YXJ0ID0gKHZvbGF0aWxlIHVhcnRfdCAqKShDRkdfVUFSVF9CQVNFKTsKKwl1YXJ0ID0gKHZvbGF0aWxlIHVhcnRfdCAqKShDT05GSUdfU1lTX1VBUlRfQkFTRSk7CiAKIAl1YXJ0X3BvcnRfY29uZigpOwogCkBAIC03Niw3ICs3Niw3IEBACiAKIHZvaWQgc2VyaWFsX3B1dGMoY29uc3QgY2hhciBjKQogewotCXZvbGF0aWxlIHVhcnRfdCAqdWFydCA9ICh2b2xhdGlsZSB1YXJ0X3QgKikoQ0ZHX1VBUlRfQkFTRSk7CisJdm9sYXRpbGUgdWFydF90ICp1YXJ0ID0gKHZvbGF0aWxlIHVhcnRfdCAqKShDT05GSUdfU1lTX1VBUlRfQkFTRSk7CiAKIAlpZiAoYyA9PSAnXG4nKQogCQlzZXJpYWxfcHV0YygnXHInKTsKQEAgLTk2LDcgKzk2LDcgQEAKIAogaW50IHNlcmlhbF9nZXRjKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdWFydF90ICp1YXJ0ID0gKHZvbGF0aWxlIHVhcnRfdCAqKShDRkdfVUFSVF9CQVNFKTsKKwl2b2xhdGlsZSB1YXJ0X3QgKnVhcnQgPSAodm9sYXRpbGUgdWFydF90ICopKENPTkZJR19TWVNfVUFSVF9CQVNFKTsKIAogCS8qIFdhaXQgZm9yIGEgY2hhcmFjdGVyIHRvIGFycml2ZS4gKi8KIAl3aGlsZSAoISh1YXJ0LT51c3IgJiBVQVJUX1VTUl9SWFJEWSkpIDsKQEAgLTEwNSwxNCArMTA1LDE0IEBACiAKIGludCBzZXJpYWxfdHN0Yyh2b2lkKQogewotCXZvbGF0aWxlIHVhcnRfdCAqdWFydCA9ICh2b2xhdGlsZSB1YXJ0X3QgKikoQ0ZHX1VBUlRfQkFTRSk7CisJdm9sYXRpbGUgdWFydF90ICp1YXJ0ID0gKHZvbGF0aWxlIHVhcnRfdCAqKShDT05GSUdfU1lTX1VBUlRfQkFTRSk7CiAKIAlyZXR1cm4gKHVhcnQtPnVzciAmIFVBUlRfVVNSX1JYUkRZKTsKIH0KIAogdm9pZCBzZXJpYWxfc2V0YnJnKHZvaWQpCiB7Ci0Jdm9sYXRpbGUgdWFydF90ICp1YXJ0ID0gKHZvbGF0aWxlIHVhcnRfdCAqKShDRkdfVUFSVF9CQVNFKTsKKwl2b2xhdGlsZSB1YXJ0X3QgKnVhcnQgPSAodm9sYXRpbGUgdWFydF90ICopKENPTkZJR19TWVNfVUFSVF9CQVNFKTsKIAl1MzIgY291bnRlcjsKIAogCWNvdW50ZXIgPSAoKGdkLT5idXNfY2xrIC8gZ2QtPmJhdWRyYXRlKSkgPj4gNTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL25zMTY1NTAuYyBiL2RyaXZlcnMvc2VyaWFsL25zMTY1NTAuYwppbmRleCA2YjNmNjBlLi45M2MyMjQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC9uczE2NTUwLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvbnMxNjU1MC5jCkBAIC0xLDEyICsxLDEyIEBACiAvKgogICogQ09NMSBOUzE2NTUwIHN1cHBvcnQKICAqIG9yaWdpbmFsbHkgZnJvbSBsaW51eCBzb3VyY2UgKGFyY2gvcHBjL2Jvb3QvbnMxNjU1MC5jKQotICogbW9kaWZpZWQgdG8gdXNlIENGR19JU0FfTUVNIGFuZCBuZXcgZGVmaW5lcworICogbW9kaWZpZWQgdG8gdXNlIENPTkZJR19TWVNfSVNBX01FTSBhbmQgbmV3IGRlZmluZXMKICAqLwogCiAjaW5jbHVkZSA8Y29uZmlnLmg+CiAKLSNpZmRlZiBDRkdfTlMxNjU1MAorI2lmZGVmIENPTkZJR19TWVNfTlMxNjU1MAogCiAjaW5jbHVkZSA8bnMxNjU1MC5oPgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zZXJpYWwuYyBiL2RyaXZlcnMvc2VyaWFsL3NlcmlhbC5jCmluZGV4IGIzNjFlZWYuLmJjZTc1NDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbC5jCisrKyBiL2RyaXZlcnMvc2VyaWFsL3NlcmlhbC5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmZGVmIENGR19OUzE2NTUwX1NFUklBTAorI2lmZGVmIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAogI2luY2x1ZGUgPG5zMTY1NTAuaD4KICNpZmRlZiBDT05GSUdfTlM4NzMwOApAQCAtNDgsMTMgKzQ4LDEzIEBACiAjZXJyb3IJIkludmFsaWQgY29uc29sZSBpbmRleCB2YWx1ZS4iCiAjZW5kaWYKIAotI2lmIENPTkZJR19DT05TX0lOREVYID09IDEgJiYgIWRlZmluZWQoQ0ZHX05TMTY1NTBfQ09NMSkKKyNpZiBDT05GSUdfQ09OU19JTkRFWCA9PSAxICYmICFkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00xKQogI2Vycm9yCSJDb25zb2xlIHBvcnQgMSBkZWZpbmVkIGJ1dCBub3QgY29uZmlndXJlZC4iCi0jZWxpZiBDT05GSUdfQ09OU19JTkRFWCA9PSAyICYmICFkZWZpbmVkKENGR19OUzE2NTUwX0NPTTIpCisjZWxpZiBDT05GSUdfQ09OU19JTkRFWCA9PSAyICYmICFkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00yKQogI2Vycm9yCSJDb25zb2xlIHBvcnQgMiBkZWZpbmVkIGJ1dCBub3QgY29uZmlndXJlZC4iCi0jZWxpZiBDT05GSUdfQ09OU19JTkRFWCA9PSAzICYmICFkZWZpbmVkKENGR19OUzE2NTUwX0NPTTMpCisjZWxpZiBDT05GSUdfQ09OU19JTkRFWCA9PSAzICYmICFkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT00zKQogI2Vycm9yCSJDb25zb2xlIHBvcnQgMyBkZWZpbmVkIGJ1dCBub3QgY29uZmlndXJlZC4iCi0jZWxpZiBDT05GSUdfQ09OU19JTkRFWCA9PSA0ICYmICFkZWZpbmVkKENGR19OUzE2NTUwX0NPTTQpCisjZWxpZiBDT05GSUdfQ09OU19JTkRFWCA9PSA0ICYmICFkZWZpbmVkKENPTkZJR19TWVNfTlMxNjU1MF9DT000KQogI2Vycm9yCSJDb25zb2xlIHBvcnQgNCBkZWZpbmVkIGJ1dCBub3QgY29uZmlndXJlZC4iCiAjZW5kaWYKIApAQCAtNjIsMjMgKzYyLDIzIEBACiAgKgkgdGhlIGFycmF5IGlzIDAgYmFzZWQuCiAgKi8KIHN0YXRpYyBOUzE2NTUwX3Qgc2VyaWFsX3BvcnRzWzRdID0gewotI2lmZGVmIENGR19OUzE2NTUwX0NPTTEKLQkoTlMxNjU1MF90KUNGR19OUzE2NTUwX0NPTTEsCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEKKwkoTlMxNjU1MF90KUNPTkZJR19TWVNfTlMxNjU1MF9DT00xLAogI2Vsc2UKIAlOVUxMLAogI2VuZGlmCi0jaWZkZWYgQ0ZHX05TMTY1NTBfQ09NMgotCShOUzE2NTUwX3QpQ0ZHX05TMTY1NTBfQ09NMiwKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgorCShOUzE2NTUwX3QpQ09ORklHX1NZU19OUzE2NTUwX0NPTTIsCiAjZWxzZQogCU5VTEwsCiAjZW5kaWYKLSNpZmRlZiBDRkdfTlMxNjU1MF9DT00zCi0JKE5TMTY1NTBfdClDRkdfTlMxNjU1MF9DT00zLAorI2lmZGVmIENPTkZJR19TWVNfTlMxNjU1MF9DT00zCisJKE5TMTY1NTBfdClDT05GSUdfU1lTX05TMTY1NTBfQ09NMywKICNlbHNlCiAJTlVMTCwKICNlbmRpZgotI2lmZGVmIENGR19OUzE2NTUwX0NPTTQKLQkoTlMxNjU1MF90KUNGR19OUzE2NTUwX0NPTTQKKyNpZmRlZiBDT05GSUdfU1lTX05TMTY1NTBfQ09NNAorCShOUzE2NTUwX3QpQ09ORklHX1NZU19OUzE2NTUwX0NPTTQKICNlbHNlCiAJTlVMTAogI2VuZGlmCkBAIC0xMjYsNyArMTI2LDcgQEAKIHsKICNpZmRlZiBDT05GSUdfT01BUDE1MTAKIAkvKiBJZiBjYW4ndCBjbGVhbmx5IGNsb2NrIDExNTIwMCBzZXQgZGl2IHRvIDEgKi8KLQlpZiAoKENGR19OUzE2NTUwX0NMSyA9PSAxMjAwMDAwMCkgJiYgKGdkLT5iYXVkcmF0ZSA9PSAxMTUyMDApKSB7CisJaWYgKChDT05GSUdfU1lTX05TMTY1NTBfQ0xLID09IDEyMDAwMDAwKSAmJiAoZ2QtPmJhdWRyYXRlID09IDExNTIwMCkpIHsKIAkJcG9ydC0+b3NjXzEybV9zZWwgPSBPU0NfMTJNX1NFTDsJLyogZW5hYmxlIDYuNSAqIGRpdmlzb3IgKi8KIAkJcmV0dXJuICgxKTsJCQkJLyogcmV0dXJuIDEgZm9yIGJhc2UgZGl2aXNvciAqLwogCX0KQEAgLTEzNCw3ICsxMzQsNyBAQAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX09NQVAxNjEwCiAJLyogSWYgY2FuJ3QgY2xlYW5seSBjbG9jayAxMTUyMDAgc2V0IGRpdiB0byAxICovCi0JaWYgKChDRkdfTlMxNjU1MF9DTEsgPT0gNDgwMDAwMDApICYmIChnZC0+YmF1ZHJhdGUgPT0gMTE1MjAwKSkgeworCWlmICgoQ09ORklHX1NZU19OUzE2NTUwX0NMSyA9PSA0ODAwMDAwMCkgJiYgKGdkLT5iYXVkcmF0ZSA9PSAxMTUyMDApKSB7CiAJCXJldHVybiAoMjYpOwkJLyogcmV0dXJuIDI2IGZvciBiYXNlIGRpdmlzb3IgKi8KIAl9CiAjZW5kaWYKQEAgLTE0NiwxMSArMTQ2LDExIEBACiAjZW5kaWYKIAogCS8qIENvbXB1dGUgZGl2aXNvciB2YWx1ZS4gTm9ybWFsbHksIHdlIHNob3VsZCBzaW1wbHkgcmV0dXJuOgotCSAqICAgQ0ZHX05TMTY1NTBfQ0xLKSAvIE1PREVfWF9ESVYgLyBnZC0+YmF1ZHJhdGUKKwkgKiAgIENPTkZJR19TWVNfTlMxNjU1MF9DTEspIC8gTU9ERV9YX0RJViAvIGdkLT5iYXVkcmF0ZQogCSAqIGJ1dCB3ZSBuZWVkIHRvIHJvdW5kIHRoYXQgdmFsdWUgYnkgYWRkaW5nIDAuNS4KIAkgKiBSb3VuZGluZyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBhdCBoaWdoIGJhdWQgcmF0ZXMuCiAJICovCi0JcmV0dXJuIChDRkdfTlMxNjU1MF9DTEsgKyAoZ2QtPmJhdWRyYXRlICogKE1PREVfWF9ESVYgLyAyKSkpIC8KKwlyZXR1cm4gKENPTkZJR19TWVNfTlMxNjU1MF9DTEsgKyAoZ2QtPmJhdWRyYXRlICogKE1PREVfWF9ESVYgLyAyKSkpIC8KIAkJKE1PREVfWF9ESVYgKiBnZC0+YmF1ZHJhdGUpOwogfQogCkBAIC0xNjMsMTkgKzE2MywxOSBAQAogCWluaXRpYWxpc2VfbnM4NzMwOCgpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfTlMxNjU1MF9DT00xCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEKIAljbG9ja19kaXZpc29yID0gY2FsY19kaXZpc29yKHNlcmlhbF9wb3J0c1swXSk7CiAJTlMxNjU1MF9pbml0KHNlcmlhbF9wb3J0c1swXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfTlMxNjU1MF9DT00yCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIKIAljbG9ja19kaXZpc29yID0gY2FsY19kaXZpc29yKHNlcmlhbF9wb3J0c1sxXSk7CiAJTlMxNjU1MF9pbml0KHNlcmlhbF9wb3J0c1sxXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfTlMxNjU1MF9DT00zCisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwX0NPTTMKIAljbG9ja19kaXZpc29yID0gY2FsY19kaXZpc29yKHNlcmlhbF9wb3J0c1syXSk7CiAJTlMxNjU1MF9pbml0KHNlcmlhbF9wb3J0c1syXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKLSNpZmRlZiBDRkdfTlMxNjU1MF9DT000CisjaWZkZWYgQ09ORklHX1NZU19OUzE2NTUwX0NPTTQKIAljbG9ja19kaXZpc29yID0gY2FsY19kaXZpc29yKHNlcmlhbF9wb3J0c1szXSk7CiAJTlMxNjU1MF9pbml0KHNlcmlhbF9wb3J0c1szXSwgY2xvY2tfZGl2aXNvcik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL21wYzh4eHhfc3BpLmMgYi9kcml2ZXJzL3NwaS9tcGM4eHh4X3NwaS5jCmluZGV4IDllYWY5ODYuLmM0YjM2ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL21wYzh4eHhfc3BpLmMKKysrIGIvZHJpdmVycy9zcGkvbXBjOHh4eF9zcGkuYwpAQCAtNjcsNyArNjcsNyBAQAogCiB2b2lkIHNwaV9pbml0KHZvaWQpCiB7Ci0Jdm9sYXRpbGUgc3BpOHh4eF90ICpzcGkgPSAmKChpbW1hcF90ICopIChDRkdfSU1NUikpLT5zcGk7CisJdm9sYXRpbGUgc3BpOHh4eF90ICpzcGkgPSAmKChpbW1hcF90ICopIChDT05GSUdfU1lTX0lNTVIpKS0+c3BpOwogCiAJLyoKIAkgKiBTUEkgcGlucyBvbiB0aGUgTVBDODN4eCBhcmUgbm90IG11eGVkLCBzbyBhbGwgd2UgZG8gaXMgaW5pdGlhbGl6ZQpAQCAtOTQsNyArOTQsNyBAQAogaW50IHNwaV94ZmVyKHN0cnVjdCBzcGlfc2xhdmUgKnNsYXZlLCB1bnNpZ25lZCBpbnQgYml0bGVuLCBjb25zdCB2b2lkICpkb3V0LAogCQl2b2lkICpkaW4sIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7Ci0Jdm9sYXRpbGUgc3BpOHh4eF90ICpzcGkgPSAmKChpbW1hcF90ICopIChDRkdfSU1NUikpLT5zcGk7CisJdm9sYXRpbGUgc3BpOHh4eF90ICpzcGkgPSAmKChpbW1hcF90ICopIChDT05GSUdfU1lTX0lNTVIpKS0+c3BpOwogCXVuc2lnbmVkIGludCB0bXBkb3V0LCB0bXBkaW4sIGV2ZW50OwogCWludCBudW1CbGtzID0gYml0bGVuIC8gMzIgKyAoYml0bGVuICUgMzIgPyAxIDogMCk7CiAJaW50IHRtLCBpc1JlYWQgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc29mdF9zcGkuYyBiL2RyaXZlcnMvc3BpL3NvZnRfc3BpLmMKaW5kZXggMjViNTg5YS4uMTNkZjhjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc29mdF9zcGkuYworKysgYi9kcml2ZXJzL3NwaS9zb2Z0X3NwaS5jCkBAIC01OSw3ICs1OSw3IEBACiB2b2lkIHNwaV9pbml0ICh2b2lkKQogewogI2lmZGVmCVNQSV9JTklUCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SOwogCiAJU1BJX0lOSVQ7CiAjZW5kaWYKQEAgLTk1LDggKzk1LDggQEAKIAogaW50IHNwaV9jbGFpbV9idXMoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUpCiB7Ci0jaWZkZWYgQ0ZHX0lNTVIKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDRkdfSU1NUjsKKyNpZmRlZiBDT05GSUdfU1lTX0lNTVIKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CiAjZW5kaWYKIAlzdHJ1Y3Qgc29mdF9zcGlfc2xhdmUgKnNzID0gdG9fc29mdF9zcGkoc2xhdmUpOwogCkBAIC0xMzIsOCArMTMyLDggQEAKIGludCAgc3BpX3hmZXIoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUsIHVuc2lnbmVkIGludCBiaXRsZW4sCiAJCWNvbnN0IHZvaWQgKmRvdXQsIHZvaWQgKmRpbiwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKLSNpZmRlZiBDRkdfSU1NUgotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNGR19JTU1SOworI2lmZGVmIENPTkZJR19TWVNfSU1NUgorCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUjsKICNlbmRpZgogCXN0cnVjdCBzb2Z0X3NwaV9zbGF2ZSAqc3MgPSB0b19zb2Z0X3NwaShzbGF2ZSk7CiAJdWNoYXIJCXRtcGRpbiAgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2w4MTFfdXNiLmMgYi9kcml2ZXJzL3VzYi9zbDgxMV91c2IuYwppbmRleCAxNTljYzI1Li40OGYxZWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zbDgxMV91c2IuYworKysgYi9kcml2ZXJzL3VzYi9zbDgxMV91c2IuYwpAQCAtMTExLDcgKzExMSw3IEBACiAKIGludCB1c2JfaW5pdF9rdXA0eCAodm9pZCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIG1lbWN0bDh4eF90ICptZW1jdGwgPSAmaW1tYXAtPmltX21lbWN0bDsKIAlpbnQgaTsKIAl1bnNpZ25lZCBjaGFyIHRtcDsKQEAgLTI2NSw3ICsyNjUsNyBAQAogCiAJCXNsODExX3dyaXRlKFNMODExX0NUUkxfQSwgY3RybCk7CiAJCXdoaWxlICghKHNsODExX3JlYWQoU0w4MTFfSU5UUlNUUykgJiBTTDgxMV9JTlRSX0RPTkVfQSkpIHsKLQkJCWlmICg1KkNGR19IWiA8IGdldF90aW1lcih0aW1lX3N0YXJ0KSkgeworCQkJaWYgKDUqQ09ORklHX1NZU19IWiA8IGdldF90aW1lcih0aW1lX3N0YXJ0KSkgewogCQkJCXByaW50ZigiVVNCIHRyYW5zbWl0IHRpbWVkIG91dFxuIik7CiAJCQkJcmV0dXJuIC1VU0JfU1RfQ1JDX0VSUjsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYl9vaGNpLmMgYi9kcml2ZXJzL3VzYi91c2Jfb2hjaS5jCmluZGV4IGRhMTFlY2IuLmMxYWFjMzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3VzYl9vaGNpLmMKKysrIGIvZHJpdmVycy91c2IvdXNiX29oY2kuYwpAQCAtNzMsNyArNzMsNyBAQAogICAgIGRlZmluZWQoQ09ORklHXzQ0MEVQKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfUENJX09IQ0kpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR19NUEM1MjAwKSB8fCBcCi0gICAgZGVmaW5lZChDRkdfT0hDSV9VU0VfTlBTKQorICAgIGRlZmluZWQoQ09ORklHX1NZU19PSENJX1VTRV9OUFMpCiAjIGRlZmluZSBPSENJX1VTRV9OUFMJCS8qIGZvcmNlIE5vUG93ZXJTd2l0Y2hpbmcgbW9kZSAqLwogI2VuZGlmCiAKQEAgLTg5LDEzICs4OSwxMyBAQAogLyoKICAqIGUuZy4gUENJIGNvbnRyb2xsZXJzIG5lZWQgdGhpcwogICovCi0jaWZkZWYgQ0ZHX09IQ0lfU1dBUF9SRUdfQUNDRVNTCisjaWZkZWYgQ09ORklHX1NZU19PSENJX1NXQVBfUkVHX0FDQ0VTUwogIyBkZWZpbmUgcmVhZGwoYSkgX19zd2FwXzMyKCooKHZvbGF0aWxlIHUzMiAqKShhKSkpCiAjIGRlZmluZSB3cml0ZWwoYSwgYikgKCooKHZvbGF0aWxlIHUzMiAqKShiKSkgPSBfX3N3YXBfMzIoKHZvbGF0aWxlIHUzMilhKSkKICNlbHNlCiAjIGRlZmluZSByZWFkbChhKSAoKigodm9sYXRpbGUgdTMyICopKGEpKSkKICMgZGVmaW5lIHdyaXRlbChhLCBiKSAoKigodm9sYXRpbGUgdTMyICopKGIpKSA9ICgodm9sYXRpbGUgdTMyKWEpKQotI2VuZGlmIC8qIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUyAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MgKi8KIAogI2RlZmluZSBtaW5fdCh0eXBlLHgseSkgKHsgdHlwZSBfX3ggPSAoeCk7IHR5cGUgX195ID0gKHkpOyBfX3ggPCBfX3kgPyBfX3g6IF9feTsgfSkKIApAQCAtMTI5LDEzICsxMjksMTMgQEAKICNkZWZpbmUgaW5mbyhmb3JtYXQsIGFyZy4uLikgZG8ge30gd2hpbGUoMCkKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX09IQ0lfQkVfQ09OVFJPTExFUgorI2lmZGVmIENPTkZJR19TWVNfT0hDSV9CRV9DT05UUk9MTEVSCiAjIGRlZmluZSBtMTZfc3dhcCh4KSBjcHVfdG9fYmUxNih4KQogIyBkZWZpbmUgbTMyX3N3YXAoeCkgY3B1X3RvX2JlMzIoeCkKICNlbHNlCiAjIGRlZmluZSBtMTZfc3dhcCh4KSBjcHVfdG9fbGUxNih4KQogIyBkZWZpbmUgbTMyX3N3YXAoeCkgY3B1X3RvX2xlMzIoeCkKLSNlbmRpZiAvKiBDRkdfT0hDSV9CRV9DT05UUk9MTEVSICovCisjZW5kaWYgLyogQ09ORklHX1NZU19PSENJX0JFX0NPTlRST0xMRVIgKi8KIAogLyogZ2xvYmFsIG9oY2lfdCAqLwogc3RhdGljIG9oY2lfdCBnb2hjaTsKQEAgLTE4MTksMTMgKzE4MTksMTMgQEAKIAlwY2lfZGV2X3QgcGRldjsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCisjaWZkZWYgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAogCS8qIGNwdSBkZXBlbmRhbnQgaW5pdCAqLwogCWlmKHVzYl9jcHVfaW5pdCgpKQogCQlyZXR1cm4gLTE7CiAjZW5kaWYKIAotI2lmZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCisjaWZkZWYgQ09ORklHX1NZU19VU0JfT0hDSV9CT0FSRF9JTklUCiAJLyogIGJvYXJkIGRlcGVuZGFudCBpbml0ICovCiAJaWYodXNiX2JvYXJkX2luaXQoKSkKIAkJcmV0dXJuIC0xOwpAQCAtMTg3MywyMSArMTg3MywyMSBAQAogCX0gZWxzZQogCQlyZXR1cm4gLTE7CiAjZWxzZQotCWdvaGNpLnJlZ3MgPSAoc3RydWN0IG9oY2lfcmVncyAqKUNGR19VU0JfT0hDSV9SRUdTX0JBU0U7CisJZ29oY2kucmVncyA9IChzdHJ1Y3Qgb2hjaV9yZWdzICopQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0U7CiAjZW5kaWYKIAogCWdvaGNpLmZsYWdzID0gMDsKLQlnb2hjaS5zbG90X25hbWUgPSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FOworCWdvaGNpLnNsb3RfbmFtZSA9IENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FOwogCiAJaWYgKGhjX3Jlc2V0ICgmZ29oY2kpIDwgMCkgewogCQloY19yZWxlYXNlX29oY2kgKCZnb2hjaSk7CiAJCWVyciAoImNhbid0IHJlc2V0IHVzYi0lcyIsIGdvaGNpLnNsb3RfbmFtZSk7Ci0jaWZkZWYgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKIAkJLyogYm9hcmQgZGVwZW5kYW50IGNsZWFudXAgKi8KIAkJdXNiX2JvYXJkX2luaXRfZmFpbCgpOwogI2VuZGlmCiAKLSNpZmRlZiBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCiAJCS8qIGNwdSBkZXBlbmRhbnQgY2xlYW51cCAqLwogCQl1c2JfY3B1X2luaXRfZmFpbCgpOwogI2VuZGlmCkBAIC0xOTAxLDEyICsxOTAxLDEyIEBACiAJCWVyciAoImNhbid0IHN0YXJ0IHVzYi0lcyIsIGdvaGNpLnNsb3RfbmFtZSk7CiAJCWhjX3JlbGVhc2Vfb2hjaSAoJmdvaGNpKTsKIAkJLyogSW5pdGlhbGl6YXRpb24gZmFpbGVkICovCi0jaWZkZWYgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKIAkJLyogYm9hcmQgZGVwZW5kYW50IGNsZWFudXAgKi8KIAkJdXNiX2JvYXJkX3N0b3AoKTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCisjaWZkZWYgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAogCQkvKiBjcHUgZGVwZW5kYW50IGNsZWFudXAgKi8KIAkJdXNiX2NwdV9zdG9wKCk7CiAjZW5kaWYKQEAgLTE5MzIsMTMgKzE5MzIsMTMgQEAKIAkvKiBjYWxsIGhjX3JlbGVhc2Vfb2hjaSgpIGhlcmUgPyAqLwogCWhjX3Jlc2V0ICgmZ29oY2kpOwogCi0jaWZkZWYgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQKKyNpZmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKIAkvKiBib2FyZCBkZXBlbmRhbnQgY2xlYW51cCAqLwogCWlmKHVzYl9ib2FyZF9zdG9wKCkpCiAJCXJldHVybiAtMTsKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCisjaWZkZWYgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAogCS8qIGNwdSBkZXBlbmRhbnQgY2xlYW51cCAqLwogCWlmKHVzYl9jcHVfc3RvcCgpKQogCQlyZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi91c2Jfb2hjaS5oIGIvZHJpdmVycy91c2IvdXNiX29oY2kuaAppbmRleCA3YTA0YmY1Li5jMWFmNTQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi91c2Jfb2hjaS5oCisrKyBiL2RyaXZlcnMvdXNiL3VzYl9vaGNpLmgKQEAgLTE1NSw4ICsxNTUsOCBAQAogLyoKICAqIE1heGltdW0gbnVtYmVyIG9mIHJvb3QgaHViIHBvcnRzLgogICovCi0jaWZuZGVmIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwotIyBlcnJvciAiQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTIHVuZGVmaW5lZCEiCisjaWZuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMKKyMgZXJyb3IgIkNPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgdW5kZWZpbmVkISIKICNlbmRpZgogCiAvKgpAQCAtMTkxLDcgKzE5MSw3IEBACiAJCV9fdTMyCWE7CiAJCV9fdTMyCWI7CiAJCV9fdTMyCXN0YXR1czsKLQkJX191MzIJcG9ydHN0YXR1c1tDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFNdOworCQlfX3UzMglwb3J0c3RhdHVzW0NPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFNdOwogCX0gcm9vdGh1YjsKIH0gX19hdHRyaWJ1dGUoKGFsaWduZWQoMzIpKSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYmRjb3JlX21wYzh4eC5jIGIvZHJpdmVycy91c2IvdXNiZGNvcmVfbXBjOHh4LmMKaW5kZXggMTIyNzkzYy4uZmEwMjAwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvdXNiZGNvcmVfbXBjOHh4LmMKKysrIGIvZHJpdmVycy91c2IvdXNiZGNvcmVfbXBjOHh4LmMKQEAgLTEzMyw3ICsxMzMsNyBAQAogaW50IHVkY19pbml0ICh2b2lkKQogewogCS8qIEluaXQgdmFyaW91cyBwb2ludGVycyAqLwotCWltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwlpbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCWNwID0gKGNwbTh4eF90ICopICYgKGltbXItPmltX2NwbSk7CiAJdXNiX3BhcmFtcCA9ICh1c2JfcHJhbV90ICopICYgKGNwLT5jcF9kcGFyYW1bUFJPRkZfVVNCXSk7CiAJdXNicCA9ICh1c2JfdCAqKSAmIChjcC0+Y3Bfc2NjWzBdKTsKQEAgLTc1Miw3ICs3NTIsNyBAQAogc3RhdGljIHZvaWQgbXBjOHh4X3VkY19hZHZhbmNlX3J4ICh2b2xhdGlsZSBjYmRfdCAqKiByeF9jYmRwLCBpbnQgZXBpZCkKIHsKIAlpZiAoKCpyeF9jYmRwKS0+Y2JkX3NjICYgUlhfQkRfVykgewotCQkqcnhfY2JkcCA9ICh2b2xhdGlsZSBjYmRfdCAqKSAoZW5kcG9pbnRzW2VwaWRdLT5yYmFzZSArIENGR19JTU1SKTsKKwkJKnJ4X2NiZHAgPSAodm9sYXRpbGUgY2JkX3QgKikgKGVuZHBvaW50c1tlcGlkXS0+cmJhc2UgKyBDT05GSUdfU1lTX0lNTVIpOwogCiAJfSBlbHNlIHsKIAkJKCpyeF9jYmRwKSsrOwpAQCAtNzgwLDcgKzc4MCw3IEBACiAJdXNicC0+dXNjb20gPSAweDQwIHwgMDsKIAogCS8qIHJlc2V0IHJpbmcgKi8KLQl0eF9jYmRwID0gKGNiZF90ICopIChlbmRwb2ludHNbZXBpZF0tPnRicHRyICsgQ0ZHX0lNTVIpOworCXR4X2NiZHAgPSAoY2JkX3QgKikgKGVuZHBvaW50c1tlcGlkXS0+dGJwdHIgKyBDT05GSUdfU1lTX0lNTVIpOwogCXR4X2NiZHAtPmNiZF9zYyA9IChUWF9CRF9JIHwgVFhfQkRfVyk7CiAKIApAQCAtODg2LDcgKzg4Niw3IEBACiAJfQogCiAJZXAgPSBlcGktPmVuZHBvaW50X2FkZHJlc3MgJiAweDAzOwotCXR4X2NiZHAgPSAoY2JkX3QgKikgKGVuZHBvaW50c1tlcF0tPnRicHRyICsgQ0ZHX0lNTVIpOworCXR4X2NiZHAgPSAoY2JkX3QgKikgKGVuZHBvaW50c1tlcF0tPnRicHRyICsgQ09ORklHX1NZU19JTU1SKTsKIAogCWlmICh0eF9jYmRwLT5jYmRfc2MgJiBUWF9CRF9SIHx8IHVzYnAtPnVzYmVyICYgVVNCX0VfVFhCKSB7CiAJCW1wYzh4eF91ZGNfZmx1c2hfdHhfZmlmbyAoZXApOwpAQCAtOTAzLDcgKzkwMyw3IEBACiAJCQlyZXR1cm4gLTE7CiAJCX0KIAotCQl0eF9jYmRwID0gKGNiZF90ICopIChlbmRwb2ludHNbZXBdLT50YnB0ciArIENGR19JTU1SKTsKKwkJdHhfY2JkcCA9IChjYmRfdCAqKSAoZW5kcG9pbnRzW2VwXS0+dGJwdHIgKyBDT05GSUdfU1lTX0lNTVIpOwogCQl3aGlsZSAodHhfY2JkcC0+Y2JkX3NjICYgVFhfQkRfUikgewogCQl9OwogCQl0eF9jYmRwLT5jYmRfc2MgPSAodHhfY2JkcC0+Y2JkX3NjICYgVFhfQkRfVyk7CkBAIC0xMTg3LDEwICsxMTg3LDEwIEBACiAJCQkJICAgdm9sYXRpbGUgY3BtOHh4X3QgKiBjcCkKIHsKIAotI2lmIGRlZmluZWQoQ0ZHX1VTQl9FWFRDX0NMSykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX0VYVENfQ0xLKQogCiAJLyogVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCBhIDQ4TUh6IGNyeXN0YWwgb24gQ0xLNiAqLwotCXN3aXRjaCAoQ0ZHX1VTQl9FWFRDX0NMSykgeworCXN3aXRjaCAoQ09ORklHX1NZU19VU0JfRVhUQ19DTEspIHsKIAljYXNlIDE6CiAJCWltbXItPmltX2lvcG9ydC5pb3BfcGFwYXIgfD0gMHgwMTAwOwogCQlpbW1yLT5pbV9pb3BvcnQuaW9wX3BhZGlyICY9IH4weDAxMDA7CkBAIC0xMjE2LDcgKzEyMTYsNyBAQAogCQlicmVhazsKIAl9CiAKLSNlbGlmIGRlZmluZWQoQ0ZHX1VTQl9CUkdDTEspCisjZWxpZiBkZWZpbmVkKENPTkZJR19TWVNfVVNCX0JSR0NMSykKIAogCS8qIFRoaXMgaGFzIGJlZW4gdGVzdGVkIHdpdGggYnJnY2xrID09IDUwTUh6ICovCiAJaW50IGRpdmlzb3IgPSAwOwpAQCAtMTIzMyw3ICsxMjMzLDcgQEAKIAlkaXZpc29yID0gKGdkLT5jcHVfY2xrIC8gNDgwMDAwMDBMKSAtIDE7CiAJY3AtPmNwX3NpY3IgJj0gfjB4MDAwMDAwM0Y7CiAKLQlzd2l0Y2ggKENGR19VU0JfQlJHQ0xLKSB7CisJc3dpdGNoIChDT05GSUdfU1lTX1VTQl9CUkdDTEspIHsKIAljYXNlIDE6CiAJCWNwLT5jcF9icmdjMSB8PSAoZGl2aXNvciB8IENQTV9CUkdfRU4pOwogCQljcC0+Y3Bfc2ljciAmPSB+MHgyRjsKQEAgLTEyNTYsNyArMTI1Niw3IEBACiAJfQogCiAjZWxzZQotI2Vycm9yICJDRkdfVVNCX0VYVENfQ0xLIG9yIENGR19VU0JfQlJHQ0xLIG11c3QgYmUgZGVmaW5lZCIKKyNlcnJvciAiQ09ORklHX1NZU19VU0JfRVhUQ19DTEsgb3IgQ09ORklHX1NZU19VU0JfQlJHQ0xLIG11c3QgYmUgZGVmaW5lZCIKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2F0aV9yYWRlb25fZmIuYyBiL2RyaXZlcnMvdmlkZW8vYXRpX3JhZGVvbl9mYi5jCmluZGV4IDY1MDM4MGIuLjllYmIwYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vYXRpX3JhZGVvbl9mYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vYXRpX3JhZGVvbl9mYi5jCkBAIC02NTMsNyArNjUzLDcgQEAKIAogCXRtcCA9IDA7CiAKLQl2aWRlb21vZGUgPSBDRkdfREVGQVVMVF9WSURFT19NT0RFOworCXZpZGVvbW9kZSA9IENPTkZJR19TWVNfREVGQVVMVF9WSURFT19NT0RFOwogCS8qIGdldCB2aWRlbyBtb2RlIHZpYSBlbnZpcm9ubWVudCAqLwogCWlmICgocGVudiA9IGdldGVudiAoInZpZGVvbW9kZSIpKSAhPSBOVUxMKSB7CiAJCS8qIGRlY2VpZGUgaWYgaXQgaXMgYSBzdHJpbmcgKi8KQEAgLTY3Miw3ICs2NzIsNyBAQAogCQkJCWJyZWFrOwogCQl9CiAJCWlmIChpID09IFZFU0FfTU9ERVNfQ09VTlQpIHsKLQkJCXByaW50ZiAoIm5vIFZFU0EgTW9kZSBmb3VuZCwgc3dpdGNoaW5nIHRvIG1vZGUgMHgleCAiLCBDRkdfREVGQVVMVF9WSURFT19NT0RFKTsKKwkJCXByaW50ZiAoIm5vIFZFU0EgTW9kZSBmb3VuZCwgc3dpdGNoaW5nIHRvIG1vZGUgMHgleCAiLCBDT05GSUdfU1lTX0RFRkFVTFRfVklERU9fTU9ERSk7CiAJCQlpID0gMDsKIAkJfQogCQlyZXNfbW9kZSA9IChzdHJ1Y3QgY3RmYl9yZXNfbW9kZXMgKikgJnJlc19tb2RlX2luaXRbdmVzYV9tb2Rlc1tpXS5yZXNpbmRleF07CkBAIC03MzIsNyArNzMyLDcgQEAKIAkJYnJlYWs7CiAJfQogCi0JcEdELT5pc2FCYXNlID0gQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1M7CisJcEdELT5pc2FCYXNlID0gQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTOwogCXBHRC0+cGNpQmFzZSA9IHJpbmZvLT5mYl9iYXNlX3BoeXM7CiAJcEdELT5mcmFtZUFkcnMgPSByaW5mby0+ZmJfYmFzZV9waHlzOwogCXBHRC0+bWVtU2l6ZSA9IDY0ICogMTAyNCAqIDEwMjQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2NmYl9jb25zb2xlLmMgYi9kcml2ZXJzL3ZpZGVvL2NmYl9jb25zb2xlLmMKaW5kZXggZmU0MThmMS4uNzc5YWE0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9jZmJfY29uc29sZS5jCisrKyBiL2RyaXZlcnMvdmlkZW8vY2ZiX2NvbnNvbGUuYwpAQCAtNjEsNyArNjEsNyBAQAogCiAgQ09ORklHX0NPTlNPTEVfQ1VSU09SCSAgICAgLSBvbi9vZmYgZHJhd2luZyBjdXJzb3IgaXMgZG9uZSB3aXRoIGRlbGF5CiAJCQkgICAgICAgbG9vcCBpbiBWSURFT19UU1RDX0ZDVCAoaTgwNDIpCi0gQ0ZHX0NPTlNPTEVfQkxJTktfQ09VTlQgICAgIC0gdmFsdWUgZm9yIGRlbGF5IGxvb3AgLSBibGluayByYXRlCisgQ09ORklHX1NZU19DT05TT0xFX0JMSU5LX0NPVU5UICAgICAtIHZhbHVlIGZvciBkZWxheSBsb29wIC0gYmxpbmsgcmF0ZQogIENPTkZJR19DT05TT0xFX1RJTUUJICAgICAtIGRpc3BsYXkgdGltZS9kYXRlIGluIHVwcGVyIHJpZ2h0IGNvcm5lciwKIAkJCSAgICAgICBuZWVkcyBDT05GSUdfQ01EX0RBVEUgYW5kIENPTkZJR19DT05TT0xFX0NVUlNPUgogIENPTkZJR19WSURFT19MT0dPCSAgICAgLSBkaXNwbGF5IExpbnV4IExvZ28gaW4gdXBwZXIgbGVmdCBjb3JuZXIKQEAgLTgyNCwxOSArODI0LDE5IEBACiAJCS8qCiAJCSAqIENvdWxkIGJlIGEgZ3ppcHBlZCBibXAgaW1hZ2UsIHRyeSB0byBkZWNyb21wcmVzcy4uLgogCQkgKi8KLQkJbGVuID0gQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkU7Ci0JCWRzdCA9IG1hbGxvYyhDRkdfVklERU9fTE9HT19NQVhfU0laRSk7CisJCWxlbiA9IENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRTsKKwkJZHN0ID0gbWFsbG9jKENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSk7CiAJCWlmIChkc3QgPT0gTlVMTCkgewogCQkJcHJpbnRmKCJFcnJvcjogbWFsbG9jIGluIGd1bnppcCBmYWlsZWQhXG4iKTsKIAkJCXJldHVybigxKTsKIAkJfQotCQlpZiAoZ3VuemlwKGRzdCwgQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkUsICh1Y2hhciAqKWJtcF9pbWFnZSwgJmxlbikgIT0gMCkgeworCQlpZiAoZ3VuemlwKGRzdCwgQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFLCAodWNoYXIgKilibXBfaW1hZ2UsICZsZW4pICE9IDApIHsKIAkJCXByaW50ZiAoIkVycm9yOiBubyB2YWxpZCBibXAgb3IgYm1wLmd6IGltYWdlIGF0ICVseFxuIiwgYm1wX2ltYWdlKTsKIAkJCWZyZWUoZHN0KTsKIAkJCXJldHVybiAxOwogCQl9Ci0JCWlmIChsZW4gPT0gQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkUpIHsKLQkJCXByaW50ZigiSW1hZ2UgY291bGQgYmUgdHJ1bmNhdGVkIChpbmNyZWFzZSBDRkdfVklERU9fTE9HT19NQVhfU0laRSkhXG4iKTsKKwkJaWYgKGxlbiA9PSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUpIHsKKwkJCXByaW50ZigiSW1hZ2UgY291bGQgYmUgdHJ1bmNhdGVkIChpbmNyZWFzZSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUpIVxuIik7CiAJCX0KIAogCQkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9jdDY5MDAwLmMgYi9kcml2ZXJzL3ZpZGVvL2N0NjkwMDAuYwppbmRleCBjYWU2NjJlLi5hZTIxOWNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2N0NjkwMDAuYworKysgYi9kcml2ZXJzL3ZpZGVvL2N0NjkwMDAuYwpAQCAtMTEwNyw3ICsxMTA3LDcgQEAKIAkJcEdELT5nZGZJbmRleCA9IEdERl8yNEJJVF84ODhSR0I7CiAJCWJyZWFrOwogCX0KLQlwR0QtPmlzYUJhc2UgPSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUzsKKwlwR0QtPmlzYUJhc2UgPSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1M7CiAJcEdELT5wY2lCYXNlID0gcGNpX21lbV9iYXNlOwogCXBHRC0+ZnJhbWVBZHJzID0gcGNpX21lbV9iYXNlOwogCXBHRC0+bWVtU2l6ZSA9IGNoaXBzX3BhcmFtLT5tYXhfbWVtOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9tYjg2Mnh4LmMgYi9kcml2ZXJzL3ZpZGVvL21iODYyeHguYwppbmRleCBkNDdjYjAzLi4yMmE4NWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL21iODYyeHguYworKysgYi9kcml2ZXJzL3ZpZGVvL21iODYyeHguYwpAQCAtMzU4LDcgKzM1OCw3IEBACiAjZW5kaWYKIAogI2lmIChkZWZpbmVkKENPTkZJR19MV01PTjUpIHx8IFwKLSAgICAgZGVmaW5lZChDT05GSUdfU09DUkFURVMpKSAmJiAhKENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1lTTU9OKQorICAgICBkZWZpbmVkKENPTkZJR19TT0NSQVRFUykpICYmICEoQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1lTTU9OKQogCS8qIExhbXAgb24gKi8KIAlib2FyZF9iYWNrbGlnaHRfc3dpdGNoICgxKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9zbWlMeW54RU0uYyBiL2RyaXZlcnMvdmlkZW8vc21pTHlueEVNLmMKaW5kZXggMzkwZGQ1Ni4uNTliNDNlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9zbWlMeW54RU0uYworKysgYi9kcml2ZXJzL3ZpZGVvL3NtaUx5bnhFTS5jCkBAIC01OTYsNyArNTk2LDcgQEAKIAogCXRtcCA9IDA7CiAKLQl2aWRlb21vZGUgPSBDRkdfREVGQVVMVF9WSURFT19NT0RFOworCXZpZGVvbW9kZSA9IENPTkZJR19TWVNfREVGQVVMVF9WSURFT19NT0RFOwogCS8qIGdldCB2aWRlbyBtb2RlIHZpYSBlbnZpcm9ubWVudCAqLwogCWlmICgocGVudiA9IGdldGVudiAoInZpZGVvbW9kZSIpKSAhPSBOVUxMKSB7CiAJCS8qIGRlY2VpZGUgaWYgaXQgaXMgYSBzdHJpbmcgKi8KQEAgLTYxNSw3ICs2MTUsNyBAQAogCQkJCWJyZWFrOwogCQl9CiAJCWlmIChpID09IFZFU0FfTU9ERVNfQ09VTlQpIHsKLQkJCXByaW50ZiAoIm5vIFZFU0EgTW9kZSBmb3VuZCwgc3dpdGNoaW5nIHRvIG1vZGUgMHgleCAiLCBDRkdfREVGQVVMVF9WSURFT19NT0RFKTsKKwkJCXByaW50ZiAoIm5vIFZFU0EgTW9kZSBmb3VuZCwgc3dpdGNoaW5nIHRvIG1vZGUgMHgleCAiLCBDT05GSUdfU1lTX0RFRkFVTFRfVklERU9fTU9ERSk7CiAJCQlpID0gMDsKIAkJfQogCQlyZXNfbW9kZSA9CkBAIC02NjksNyArNjY5LDcgQEAKIAkJYnJlYWs7CiAJfQogCi0JcEdELT5pc2FCYXNlID0gQ0ZHX0lTQV9JTzsKKwlwR0QtPmlzYUJhc2UgPSBDT05GSUdfU1lTX0lTQV9JTzsKIAlwR0QtPnBjaUJhc2UgPSBwY2lfbWVtX2Jhc2U7CiAJcEdELT5kcHJCYXNlID0gKHBjaV9tZW1fYmFzZSArIDB4NDAwMDAwICsgMHg4MDAwKTsKIAlwR0QtPnZwckJhc2UgPSAocGNpX21lbV9iYXNlICsgMHg0MDAwMDAgKyAweGMwMDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby92aWRlb21vZGVzLmMgYi9kcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuYwppbmRleCBjODFlNWJjLi5kMjdjZTFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuYworKysgYi9kcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuYwpAQCAtMjMsNyArMjMsNyBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgIEdldCBQYXJhbWV0ZXJzIGZvciB0aGUgdmlkZW8gbW9kZToKLSAgVGhlIGRlZmF1bHQgdmlkZW8gbW9kZSBjYW4gYmUgZGVmaW5lZCBpbiBDRkdfREVGQVVMVF9WSURFT19NT0RFLgorICBUaGUgZGVmYXVsdCB2aWRlbyBtb2RlIGNhbiBiZSBkZWZpbmVkIGluIENPTkZJR19TWVNfREVGQVVMVF9WSURFT19NT0RFLgogICBJZiB1bmRlZmluZWQsIGRlZmF1bHQgdmlkZW8gbW9kZSBpcyBzZXQgdG8gMHgzMDEKICAgUGFyYW1ldGVycyBjYW4gYmUgc2V0IHZpYSB0aGUgdmFyaWFibGUgInZpZGVvbW9kZSIgaW4gdGhlIGVudmlyb25tZW50LgogICAyIGRpZmVyZW50IHdheXMgYXJlIHBvc3NpYmxlOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby92aWRlb21vZGVzLmggYi9kcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuaAppbmRleCBlMmRmZmU3Li4wZDdjMzM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuaAorKysgYi9kcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuaApAQCAtMjIsOCArMjIsOCBAQAogICovCiAKIAotI2lmbmRlZiBDRkdfREVGQVVMVF9WSURFT19NT0RFCi0jZGVmaW5lIENGR19ERUZBVUxUX1ZJREVPX01PREUJMHgzMDEKKyNpZm5kZWYgQ09ORklHX1NZU19ERUZBVUxUX1ZJREVPX01PREUKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX1ZJREVPX01PREUJMHgzMDEKICNlbmRpZgogCiAvKiBTb21lIG1vZGUgZGVmaW5pdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2V4YW1wbGVzL21lbV90b19tZW1faWRtYTJpbnRyLmMgYi9leGFtcGxlcy9tZW1fdG9fbWVtX2lkbWEyaW50ci5jCmluZGV4IDNmZjI4MDQuLjE1Nzc5ZDAgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL21lbV90b19tZW1faWRtYTJpbnRyLmMKKysrIGIvZXhhbXBsZXMvbWVtX3RvX21lbV9pZG1hMmludHIuYwpAQCAtMzksOCArMzksOCBAQAogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAjZWxzZQkJCQkJLyogU3RhbmRhbG9uZSBhcHAgb2YgUFBDQm9vdCAqLwogI2RlZmluZSBXQVRDSERPR19SRVNFVCgpIHsJCQkJCQlcCi0JCQkqKHVzaG9ydCAqKShDRkdfSU1NUiArIDB4MTAwMEUpID0gMHg1NTZjOwlcCi0JCQkqKHVzaG9ydCAqKShDRkdfSU1NUiArIDB4MTAwMEUpID0gMHhhYTM5OwlcCisJCQkqKHVzaG9ydCAqKShDT05GSUdfU1lTX0lNTVIgKyAweDEwMDBFKSA9IDB4NTU2YzsJXAorCQkJKih1c2hvcnQgKikoQ09ORklHX1NZU19JTU1SICsgMHgxMDAwRSkgPSAweGFhMzk7CVwKIAkJfQogI2VuZGlmCS8qIFNUQU5EQUxPTkUgKi8KIApAQCAtMTU2LDcgKzE1Niw3IEBACiB9IHByYW1faWRtYV90OwogCiAKLXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7Cit2b2xhdGlsZSBpbW1hcF90ICppbW1hcCA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIHZvbGF0aWxlIGliZF90ICpiZGY7CiB2b2xhdGlsZSBwcmFtX2lkbWFfdCAqcGlwdHI7CiAKQEAgLTM0OCw3ICszNDgsNyBAQAogCiB1aW50IGRwYWxsb2MgKHVpbnQgc2l6ZSwgdWludCBhbGlnbikKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl1aW50IHJldGxvYzsKIAl1aW50IGFsaWduX21hc2ssIG9mZjsKIAl1aW50IHNhdmViYXNlOwpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvdGVzdF9idXJzdC5jIGIvZXhhbXBsZXMvdGVzdF9idXJzdC5jCmluZGV4IGQ4YzVlZDQuLjcxMDljMDkgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL3Rlc3RfYnVyc3QuYworKysgYi9leGFtcGxlcy90ZXN0X2J1cnN0LmMKQEAgLTUwLDE5ICs1MCwxOSBAQAogLyogRGVmaW5lIEdQSU8gcG9ydHMgdG8gc2lnbmFsIHN0YXJ0IG9mIGJ1cnN0IHRyYW5zZmVycyBhbmQgZXJyb3JzICovCiAjaWZkZWYgQ09ORklHX0xXTU9OCiAvKiBVc2UgUEQuOCB0byBzaWduYWwgc3RhcnQgb2YgYnVyc3QgdHJhbnNmZXJzICovCi0jZGVmaW5lIEdQSU8xX0RBVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KQorI2RlZmluZSBHUElPMV9EQVQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpCiAjZGVmaW5lIEdQSU8xX0JJVAkweDAwODAKIC8qIENvbmZpZ3VyZSBQRC44IGFzIGdlbmVyYWwgcHVycG9zZSBvdXRwdXQgKi8KICNkZWZpbmUgR1BJTzFfSU5JVCBcCi0JKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkcGFyICY9IH5HUElPMV9CSVQ7IFwKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXIgfD0gIEdQSU8xX0JJVDsKKwkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkcGFyICY9IH5HUElPMV9CSVQ7IFwKKwkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGlyIHw9ICBHUElPMV9CSVQ7CiAvKiBVc2UgUEQuOSB0byBzaWduYWwgZXJyb3IgKi8KLSNkZWZpbmUgR1BJTzJfREFUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpCisjZGVmaW5lIEdQSU8yX0RBVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkKICNkZWZpbmUgR1BJTzJfQklUCTB4MDA0MAogLyogQ29uZmlndXJlIFBELjkgYXMgZ2VuZXJhbCBwdXJwb3NlIG91dHB1dCAqLwogI2RlZmluZSBHUElPMl9JTklUIFwKLQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRwYXIgJj0gfkdQSU8yX0JJVDsgXAotCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpciB8PSAgR1BJTzJfQklUOworCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRwYXIgJj0gfkdQSU8yX0JJVDsgXAorCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXIgfD0gIEdQSU8yX0JJVDsKICNlbmRpZiAvKiBDT05GSUdfTFdNT04gKi8KIAogCmRpZmYgLS1naXQgYS9mcy9qZmZzMi9qZmZzMl8xcGFzcy5jIGIvZnMvamZmczIvamZmczJfMXBhc3MuYwppbmRleCA1N2Y1NTgyLi4wMTc3MjY4IDEwMDY0NAotLS0gYS9mcy9qZmZzMi9qZmZzMl8xcGFzcy5jCisrKyBiL2ZzL2pmZnMyL2pmZnMyXzFwYXNzLmMKQEAgLTkyLDcgKzkyLDcgQEAKICAqIC0gaW1wbGVtZW50ZWQgZnJhZ21lbnQgc29ydGluZyB0byBlbnN1cmUgdGhhdCB0aGUgbmV3ZXN0IGRhdGEgaXMgY29waWVkCiAgKiAgIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBjb3BpZXMgb2YgZnJhZ21lbnRzIGZvciBhIGNlcnRhaW4gZmlsZSBvZmZzZXQuCiAgKgotICogVGhlIGZyYWdtZW50IHNvcnRpbmcgZmVhdHVyZSBtdXN0IGJlIGVuYWJsZWQgYnkgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTLgorICogVGhlIGZyYWdtZW50IHNvcnRpbmcgZmVhdHVyZSBtdXN0IGJlIGVuYWJsZWQgYnkgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUy4KICAqIFNvcnRpbmcgaXMgZG9uZSB3aGlsZSBhZGRpbmcgZnJhZ21lbnRzIHRvIHRoZSBsaXN0cywgd2hpY2ggaXMgbW9yZSBvciBsZXNzIGEKICAqIGJ1YmJsZSBzb3J0LiBUaGlzIHRha2VzIGEgbG90IG9mIHRpbWUsIGFuZCBpcyBtb3N0IHByb2JhYmx5IG5vdCBhbiBpc3N1ZSBpZgogICogdGhlIGJvb3QgZmlsZXN5c3RlbSBpcyBhbHdheXMgbW91bnRlZCByZWFkb25seS4KQEAgLTU0NCw3ICs1NDQsNyBAQAogaW5zZXJ0X25vZGUoc3RydWN0IGJfbGlzdCAqbGlzdCwgdTMyIG9mZnNldCkKIHsKIAlzdHJ1Y3QgYl9ub2RlICpuZXc7Ci0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCXN0cnVjdCBiX25vZGUgKmIsICpwcmV2OwogI2VuZGlmCiAKQEAgLTU1NCw3ICs1NTQsNyBAQAogCX0KIAluZXctPm9mZnNldCA9IG9mZnNldDsKIAotI2lmZGVmIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2lmZGVmIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKIAlpZiAobGlzdC0+bGlzdFRhaWwgIT0gTlVMTCAmJiBsaXN0LT5saXN0Q29tcGFyZShuZXcsIGxpc3QtPmxpc3RUYWlsKSkKIAkJcHJldiA9IGxpc3QtPmxpc3RUYWlsOwogCWVsc2UgaWYgKGxpc3QtPmxpc3RMYXN0ICE9IE5VTEwgJiYgbGlzdC0+bGlzdENvbXBhcmUobmV3LCBsaXN0LT5saXN0TGFzdCkpCkBAIC01OTEsNyArNTkxLDcgQEAKIAlyZXR1cm4gbmV3OwogfQogCi0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogLyogU29ydCBkYXRhIGVudHJpZXMgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb24gbGFzdCwgc28gdGhhdCBpZiB0aGVyZQogICogaXMgb3ZlcmxhcHBpbmcgZGF0YSB0aGUgbGF0ZXN0IHZlcnNpb24gd2lsbCBiZSB1c2VkLgogICovCkBAIC02OTQsNyArNjk0LDcgQEAKIAkJcEwgPSAoc3RydWN0IGJfbGlzdHMgKilwYXJ0LT5qZmZzMl9wcml2OwogCiAJCW1lbXNldChwTCwgMCwgc2l6ZW9mKCpwTCkpOwotI2lmZGVmIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2lmZGVmIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKIAkJcEwtPmRpci5saXN0Q29tcGFyZSA9IGNvbXBhcmVfZGlyZW50czsKIAkJcEwtPmZyYWcubGlzdENvbXBhcmUgPSBjb21wYXJlX2lub2RlczsKICNlbmRpZgpAQCAtNzE1LDcgKzcxNSw3IEBACiAJbG9uZyByZXQ7CiAJaW50IGk7CiAJdTMyIGNvdW50ZXIgPSAwOwotI2lmZGVmIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2lmZGVmIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKIAkvKiBGaW5kIGZpbGUgc2l6ZSBiZWZvcmUgbG9hZGluZyBhbnkgZGF0YSwgc28gZnJhZ21lbnRzIHRoYXQKIAkgKiBzdGFydCBwYXN0IHRoZSBlbmQgb2YgZmlsZSBjYW4gYmUgaWdub3JlZC4gQSBmcmFnbWVudAogCSAqIHRoYXQgaXMgcGFydGlhbGx5IGluIHRoZSBmaWxlIGlzIGxvYWRlZCwgc28gZXh0cmEgZGF0YSBtYXkKQEAgLTc1Myw3ICs3NTMsNyBAQAogCQkJcHV0TGFiZWxlZFdvcmQoInJlYWRfaW5vZGU6IGZsYWdzID0gIiwgak5vZGUtPmZsYWdzKTsKICNlbmRpZgogCi0jaWZuZGVmIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2lmbmRlZiBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAJCQkvKiBnZXQgYWN0dWFsIGZpbGUgbGVuZ3RoIGZyb20gdGhlIG5ld2VzdCBub2RlICovCiAJCQlpZiAoak5vZGUtPnZlcnNpb24gPj0gbGF0ZXN0VmVyc2lvbikgewogCQkJCXRvdGFsU2l6ZSA9IGpOb2RlLT5pc2l6ZTsKZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL2pmZnMyX25hbmRfMXBhc3MuYyBiL2ZzL2pmZnMyL2pmZnMyX25hbmRfMXBhc3MuYwppbmRleCBlMjg4ZDVhLi42ZWI2NzQ1IDEwMDY0NAotLS0gYS9mcy9qZmZzMi9qZmZzMl9uYW5kXzFwYXNzLmMKKysrIGIvZnMvamZmczIvamZmczJfbmFuZF8xcGFzcy5jCkBAIC05Niw3ICs5Niw3IEBACiBzdGF0aWMgc3RydWN0IGJfbm9kZSAqCiBpbnNlcnRfbm9kZShzdHJ1Y3QgYl9saXN0ICpsaXN0LCBzdHJ1Y3QgYl9ub2RlICpuZXcpCiB7Ci0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCXN0cnVjdCBiX25vZGUgKmIsICpwcmV2OwogCiAJaWYgKGxpc3QtPmxpc3RUYWlsICE9IE5VTEwgJiYgbGlzdC0+bGlzdENvbXBhcmUobmV3LCBsaXN0LT5saXN0VGFpbCkpCkBAIC0xNzMsNyArMTczLDcgQEAKIAlyZXR1cm4gaW5zZXJ0X25vZGUobGlzdCwgKHN0cnVjdCBiX25vZGUgKiluZXcpOwogfQogCi0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogLyogU29ydCBkYXRhIGVudHJpZXMgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb24gbGFzdCwgc28gdGhhdCBpZiB0aGVyZQogICogaXMgb3ZlcmxhcHBpbmcgZGF0YSB0aGUgbGF0ZXN0IHZlcnNpb24gd2lsbCBiZSB1c2VkLgogICovCkBAIC0yNTAsNyArMjUwLDcgQEAKIAkJcEwgPSAoc3RydWN0IGJfbGlzdHMgKilwYXJ0LT5qZmZzMl9wcml2OwogCiAJCW1lbXNldChwTCwgMCwgc2l6ZW9mKCpwTCkpOwotI2lmZGVmIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2lmZGVmIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKIAkJcEwtPmRpci5saXN0Q29tcGFyZSA9IGNvbXBhcmVfZGlyZW50czsKIAkJcEwtPmZyYWcubGlzdENvbXBhcmUgPSBjb21wYXJlX2lub2RlczsKICNlbmRpZgpAQCAtMjY4LDcgKzI2OCw3IEBACiAJdTMyIGxhdGVzdFZlcnNpb24gPSAwOwogCWxvbmcgcmV0OwogCi0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCS8qIEZpbmQgZmlsZSBzaXplIGJlZm9yZSBsb2FkaW5nIGFueSBkYXRhLCBzbyBmcmFnbWVudHMgdGhhdAogCSAqIHN0YXJ0IHBhc3QgdGhlIGVuZCBvZiBmaWxlIGNhbiBiZSBpZ25vcmVkLiBBIGZyYWdtZW50CiAJICogdGhhdCBpcyBwYXJ0aWFsbHkgaW4gdGhlIGZpbGUgaXMgbG9hZGVkLCBzbyBleHRyYSBkYXRhIG1heQpAQCAtMjkwLDcgKzI5MCw3IEBACiAJZm9yIChqTm9kZSA9IChzdHJ1Y3QgYl9pbm9kZSAqKXBMLT5mcmFnLmxpc3RIZWFkOyBqTm9kZTsgak5vZGUgPSBqTm9kZS0+bmV4dCkgewogCQlpZiAoKGlubyAhPSBqTm9kZS0+aW5vKSkKIAkJCWNvbnRpbnVlOwotI2lmbmRlZiBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNpZm5kZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCQkvKiBnZXQgYWN0dWFsIGZpbGUgbGVuZ3RoIGZyb20gdGhlIG5ld2VzdCBub2RlICovCiAJCWlmIChqTm9kZS0+dmVyc2lvbiA+PSBsYXRlc3RWZXJzaW9uKSB7CiAJCQl0b3RhbFNpemUgPSBqTm9kZS0+aXNpemU7CmRpZmYgLS1naXQgYS9mcy9qZmZzMi9qZmZzMl9wcml2YXRlLmggYi9mcy9qZmZzMi9qZmZzMl9wcml2YXRlLmgKaW5kZXggNDZlZDY0NC4uOTc0NTc2MiAxMDA2NDQKLS0tIGEvZnMvamZmczIvamZmczJfcHJpdmF0ZS5oCisrKyBiL2ZzL2pmZnMyL2pmZnMyX3ByaXZhdGUuaApAQCAtMTIsNyArMTIsNyBAQAogc3RydWN0IGJfbGlzdCB7CiAJc3RydWN0IGJfbm9kZSAqbGlzdFRhaWw7CiAJc3RydWN0IGJfbm9kZSAqbGlzdEhlYWQ7Ci0jaWZkZWYgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjaWZkZWYgQ09ORklHX1NZU19KRkZTMl9TT1JUX0ZSQUdNRU5UUwogCXN0cnVjdCBiX25vZGUgKmxpc3RMYXN0OwogCWludCAoKmxpc3RDb21wYXJlKShzdHJ1Y3QgYl9ub2RlICpuZXcsIHN0cnVjdCBiX25vZGUgKm5vZGUpOwogCXUzMiBsaXN0TG9vcHM7CmRpZmYgLS1naXQgYS9pbmNsdWRlLzR4eF9pMmMuaCBiL2luY2x1ZGUvNHh4X2kyYy5oCmluZGV4IDJkZjRmYmQuLmYwZTc3MmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvNHh4X2kyYy5oCisrKyBiL2luY2x1ZGUvNHh4X2kyYy5oCkBAIC00MywxMCArNDMsMTAgQEAKICNpZiBkZWZpbmVkKENPTkZJR180NDBFUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1IpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ2MEVYKSB8fCBkZWZpbmVkKENPTkZJR180NjBHVCkKLSNkZWZpbmUgSTJDX0JBU0VfQUREUgkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA3MDAgKyBJMkNfQlVTX09GRlMpCisjZGVmaW5lIEkyQ19CQVNFX0FERFIJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCArIEkyQ19CVVNfT0ZGUykKICNlbGlmIGRlZmluZWQoQ09ORklHXzQ0MCkgfHwgZGVmaW5lZChDT05GSUdfNDA1RVgpCiAvKiBhbGwgcmVtYWluaW5nIDQ0MCB2YXJpYW50cyAqLwotI2RlZmluZSBJMkNfQkFTRV9BRERSCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDQwMCArIEkyQ19CVVNfT0ZGUykKKyNkZWZpbmUgSTJDX0JBU0VfQUREUgkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNDAwICsgSTJDX0JVU19PRkZTKQogI2Vsc2UKIC8qIGFsbCA0MDUgdmFyaWFudHMgKi8KICNkZWZpbmUgSTJDX0JBU0VfQUREUgkoMHhFRjYwMDUwMCArIEkyQ19CVVNfT0ZGUykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWx0ZXJhLmggYi9pbmNsdWRlL2FsdGVyYS5oCmluZGV4IGMwM2ZlODcuLjQ0YTFlZTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYWx0ZXJhLmgKKysrIGIvaW5jbHVkZS9hbHRlcmEuaApAQCAtMjksMTkgKzI5LDE5IEBACiAKIC8qIEFsdGVyYSBNb2RlbCBkZWZpbml0aW9ucwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX0FDRVgxSwkJQ0ZHX0ZQR0FfREVWKCAweDEgKQotI2RlZmluZSBDRkdfQ1lDTE9OMgkJQ0ZHX0ZQR0FfREVWKCAweDIgKQotI2RlZmluZSBDRkdfU1RSQVRJWF9JSQkJQ0ZHX0ZQR0FfREVWKCAweDQgKQorI2RlZmluZSBDT05GSUdfU1lTX0FDRVgxSwkJQ09ORklHX1NZU19GUEdBX0RFViggMHgxICkKKyNkZWZpbmUgQ09ORklHX1NZU19DWUNMT04yCQlDT05GSUdfU1lTX0ZQR0FfREVWKCAweDIgKQorI2RlZmluZSBDT05GSUdfU1lTX1NUUkFUSVhfSUkJCUNPTkZJR19TWVNfRlBHQV9ERVYoIDB4NCApCiAKLSNkZWZpbmUgQ0ZHX0FMVEVSQV9BQ0VYMUsJKENGR19GUEdBX0FMVEVSQSB8IENGR19BQ0VYMUspCi0jZGVmaW5lIENGR19BTFRFUkFfQ1lDTE9OMgkoQ0ZHX0ZQR0FfQUxURVJBIHwgQ0ZHX0NZQ0xPTjIpCi0jZGVmaW5lIENGR19BTFRFUkFfU1RSQVRJWF9JSQkoQ0ZHX0ZQR0FfQUxURVJBIHwgQ0ZHX1NUUkFUSVhfSUkpCisjZGVmaW5lIENPTkZJR19TWVNfQUxURVJBX0FDRVgxSwkoQ09ORklHX1NZU19GUEdBX0FMVEVSQSB8IENPTkZJR19TWVNfQUNFWDFLKQorI2RlZmluZSBDT05GSUdfU1lTX0FMVEVSQV9DWUNMT04yCShDT05GSUdfU1lTX0ZQR0FfQUxURVJBIHwgQ09ORklHX1NZU19DWUNMT04yKQorI2RlZmluZSBDT05GSUdfU1lTX0FMVEVSQV9TVFJBVElYX0lJCShDT05GSUdfU1lTX0ZQR0FfQUxURVJBIHwgQ09ORklHX1NZU19TVFJBVElYX0lJKQogLyogQWRkIG5ldyBtb2RlbHMgaGVyZSAqLwogCiAvKiBBbHRlcmEgSW50ZXJmYWNlIGRlZmluaXRpb25zCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfQUxURVJBX0lGX1BTCUNGR19GUEdBX0lGKCAweDEgKQkvKiBwYXNzaXZlIHNlcmlhbCAqLwotI2RlZmluZSBDRkdfQUxURVJBX0lGX0ZQUAlDRkdfRlBHQV9JRiggMHgyICkJLyogZmFzdCBwYXNzaXZlIHBhcmFsbGVsICovCisjZGVmaW5lIENPTkZJR19TWVNfQUxURVJBX0lGX1BTCUNPTkZJR19TWVNfRlBHQV9JRiggMHgxICkJLyogcGFzc2l2ZSBzZXJpYWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRFUkFfSUZfRlBQCUNPTkZJR19TWVNfRlBHQV9JRiggMHgyICkJLyogZmFzdCBwYXNzaXZlIHBhcmFsbGVsICovCiAvKiBBZGQgbmV3IGludGVyZmFjZXMgaGVyZSAqLwogCiB0eXBlZGVmIGVudW0gewkJCQkvKiB0eXBlZGVmIEFsdGVyYV9pZmFjZSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hcGlfcHVibGljLmggYi9pbmNsdWRlL2FwaV9wdWJsaWMuaAppbmRleCA1YjBjMDllLi5kMzE2NGY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FwaV9wdWJsaWMuaAorKysgYi9pbmNsdWRlL2FwaV9wdWJsaWMuaApAQCAtMTEwLDggKzExMCw4IEBACiAJaW50CQkJbXJfbm87CS8qIG51bWJlciBvZiBtZW1vcnkgcmVnaW9ucyAqLwogfTsKIAotI3VuZGVmIENGR182NEJJVF9MQkEKLSNpZmRlZiBDRkdfNjRCSVRfTEJBCisjdW5kZWYgQ09ORklHX1NZU182NEJJVF9MQkEKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX0xCQQogdHlwZWRlZgl1X2ludDY0X3QgbGJhc2l6ZV90OwogI2Vsc2UKIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsYmFzaXplX3Q7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1kYXZpbmNpL25hbmRfZGVmcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZGF2aW5jaS9uYW5kX2RlZnMuaAppbmRleCA2MTliZDQ3Li4xODdkM2MzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1kYXZpbmNpL25hbmRfZGVmcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWRhdmluY2kvbmFuZF9kZWZzLmgKQEAgLTMxLDkgKzMxLDkgQEAKICNkZWZpbmUJTUFTS19DTEUJMHgxMAogI2RlZmluZQlNQVNLX0FMRQkweDBhCiAKLSNkZWZpbmUgTkFORF9DRTBDTEUJKCh2b2xhdGlsZSB1X2ludDhfdCAqKShDRkdfTkFORF9CQVNFICsgMHgxMCkpCi0jZGVmaW5lIE5BTkRfQ0UwQUxFCSgodm9sYXRpbGUgdV9pbnQ4X3QgKikoQ0ZHX05BTkRfQkFTRSArIDB4MGEpKQotI2RlZmluZSBOQU5EX0NFMERBVEEJKCh2b2xhdGlsZSB1X2ludDhfdCAqKUNGR19OQU5EX0JBU0UpCisjZGVmaW5lIE5BTkRfQ0UwQ0xFCSgodm9sYXRpbGUgdV9pbnQ4X3QgKikoQ09ORklHX1NZU19OQU5EX0JBU0UgKyAweDEwKSkKKyNkZWZpbmUgTkFORF9DRTBBTEUJKCh2b2xhdGlsZSB1X2ludDhfdCAqKShDT05GSUdfU1lTX05BTkRfQkFTRSArIDB4MGEpKQorI2RlZmluZSBOQU5EX0NFMERBVEEJKCh2b2xhdGlsZSB1X2ludDhfdCAqKUNPTkZJR19TWVNfTkFORF9CQVNFKQogCiB0eXBlZGVmIHN0cnVjdCAgewogCXVfaW50MzJfdAlOUkNTUjsKQEAgLTg5LDcgKzg5LDcgQEAKICNkZWZpbmUgTkFORF9SRUFEX0VORAkJMHgzMAogI2RlZmluZSBOQU5EX1NUQVRVUwkJMHg3MAogCi0jaWZkZWYgQ0ZHX05BTkRfSFdfRUNDCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0hXX0VDQwogI2RlZmluZSBOQU5EX0VjY19QMWUJCSgxIDw8IDApCiAjZGVmaW5lIE5BTkRfRWNjX1AyZQkJKDEgPDwgMSkKICNkZWZpbmUgTkFORF9FY2NfUDRlCQkoMSA8PCAyKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcDI0eHgvbWVtLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwMjR4eC9tZW0uaAppbmRleCBjODFmMWM0Li40MmU4YWIyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwMjR4eC9tZW0uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwMjR4eC9tZW0uaApAQCAtMTAzLDcgKzEwMyw3IEBACiAKIC8qIEdQTUMgc2V0dGluZ3MgKi8KICNpZmRlZiBQUkNNX0NPTkZJR19JSQkgICAgIC8qIEwzIGF0IDEwME1IeiAqLwotIyBpZmRlZiBDRkdfTkFORF9CT09UCisjIGlmZGVmIENPTkZJR19TWVNfTkFORF9CT09UCiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzFfMCAgIDB4MAogIyAgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUcyXzAgICAweDAwMTQxNDAwCiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzNfMCAgIDB4MDAxNDE0MDAKQEAgLTExNiw3ICsxMTYsNyBAQAogIyAgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUczXzAgICAweDAwMDUwNTAyCiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzRfMCAgIDB4MEMwNjBDMDYKICMgIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHNV8wICAgMHgwMTEzMUYxRgotIyBlbmRpZiAvKiBlbmRpZiBDRkdfTkFORF9CT09UICovCisjIGVuZGlmIC8qIGVuZGlmIENPTkZJR19TWVNfTkFORF9CT09UICovCiAjIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHN18wCSAgKDB4MDAwMDBDNDB8KEg0X0NTMF9CQVNFID4+IDI0KSkKICMgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUcxXzEJICAweDAwMDExMDAwCiAjIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHMl8xCSAgMHgwMDFGMUYwMApAQCAtMTI4LDcgKzEyOCw3IEBACiAjZW5kaWYgLyogZW5kaWYgUFJDTV9DT05GSUdfSUkgKi8KIAogI2lmZGVmIFBSQ01fQ09ORklHX0lJSQkvKiBMMyBhdCAxMzNNSHogKi8KLSMgaWZkZWYgQ0ZHX05BTkRfQk9PVAorIyBpZmRlZiBDT05GSUdfU1lTX05BTkRfQk9PVAogIyAgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUcxXzAgICAweDAKICMgIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHMl8wICAgMHgwMDE0MTQwMAogIyAgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUczXzAgICAweDAwMTQxNDAwCkBAIC0xNDIsNyArMTQyLDcgQEAKICMgIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHNF8wICAgMHgxMDA4MTAwOAogIyAgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUc1XzAgICAweDAxMTMxRjFGCiAjICBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzZfMCAgIDB4MDAwMDA0YzQKLSMgZW5kaWYgLyogZW5kaWYgQ0ZHX05BTkRfQk9PVCAqLworIyBlbmRpZiAvKiBlbmRpZiBDT05GSUdfU1lTX05BTkRfQk9PVCAqLwogIyBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzdfMAkgICgweDAwMDAwQzQwfChINF9DUzBfQkFTRSA+PiAyNCkpCiAjIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHMV8xCSAgMHgwMDAxMTAwMAogIyBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzJfMQkgIDB4MDAxZjFmMDEKQEAgLTE1MSw2ICsxNTEsNiBAQAogIyBkZWZpbmUgSDRfMjRYWF9HUE1DX0NPTkZJRzVfMQkgIDB4MDQxZjFGMUYKICMgZGVmaW5lIEg0XzI0WFhfR1BNQ19DT05GSUc2XzEJICAweDAwMDAwNEM0CiAjIGRlZmluZSBINF8yNFhYX0dQTUNfQ09ORklHN18xCSAgKDB4MDAwMDBGNDB8KEg0X0NTMV9CQVNFID4+IDI0KSkKLSNlbmRpZiAvKiBlbmRpZiBDRkdfUFJDTV9JSUkgKi8KKyNlbmRpZiAvKiBlbmRpZiBDT05GSUdfU1lTX1BSQ01fSUlJICovCiAKICNlbmRpZiAvKiBlbmRpZiBfT01BUDI0WFhfTUVNX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLWFybS9nbG9iYWxfZGF0YS5oCmluZGV4IGY0MTliNDIuLjVjNTZjZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9nbG9iYWxfZGF0YS5oCkBAIC0zMCw3ICszMCw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiAKIHR5cGVkZWYJc3RydWN0CWdsb2JhbF9kYXRhIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwNzAweC9jbGsuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwNzAweC9jbGsuaAppbmRleCBlOWE0ZmU0Li43ODE3NTcyMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXA3MDB4L2Nsay5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwNzAweC9jbGsuaApAQCAtMjUsMjYgKzI1LDI2IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvY2hpcC1mZWF0dXJlcy5oPgogCiAjaWZkZWYgQ09ORklHX1BMTAotI2RlZmluZSBNQUlOX0NMS19SQVRFICgoQ0ZHX09TQzBfSFogLyBDRkdfUExMMF9ESVYpICogQ0ZHX1BMTDBfTVVMKQorI2RlZmluZSBNQUlOX0NMS19SQVRFICgoQ09ORklHX1NZU19PU0MwX0haIC8gQ09ORklHX1NZU19QTEwwX0RJVikgKiBDT05GSUdfU1lTX1BMTDBfTVVMKQogI2Vsc2UKLSNkZWZpbmUgTUFJTl9DTEtfUkFURSAoQ0ZHX09TQzBfSFopCisjZGVmaW5lIE1BSU5fQ0xLX1JBVEUgKENPTkZJR19TWVNfT1NDMF9IWikKICNlbmRpZgogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X2NwdV9jbGtfcmF0ZSh2b2lkKQogewotCXJldHVybiBNQUlOX0NMS19SQVRFID4+IENGR19DTEtESVZfQ1BVOworCXJldHVybiBNQUlOX0NMS19SQVRFID4+IENPTkZJR19TWVNfQ0xLRElWX0NQVTsKIH0KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfaHNiX2Nsa19yYXRlKHZvaWQpCiB7Ci0JcmV0dXJuIE1BSU5fQ0xLX1JBVEUgPj4gQ0ZHX0NMS0RJVl9IU0I7CisJcmV0dXJuIE1BSU5fQ0xLX1JBVEUgPj4gQ09ORklHX1NZU19DTEtESVZfSFNCOwogfQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGdldF9wYmFfY2xrX3JhdGUodm9pZCkKIHsKLQlyZXR1cm4gTUFJTl9DTEtfUkFURSA+PiBDRkdfQ0xLRElWX1BCQTsKKwlyZXR1cm4gTUFJTl9DTEtfUkFURSA+PiBDT05GSUdfU1lTX0NMS0RJVl9QQkE7CiB9CiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X3BiYl9jbGtfcmF0ZSh2b2lkKQogewotCXJldHVybiBNQUlOX0NMS19SQVRFID4+IENGR19DTEtESVZfUEJCOworCXJldHVybiBNQUlOX0NMS19SQVRFID4+IENPTkZJR19TWVNfQ0xLRElWX1BCQjsKIH0KIAogLyogQWNjZXNzb3JzIGZvciBzcGVjaWZpYyBkZXZpY2VzLiBNb3JlIHdpbGwgYmUgYWRkZWQgYXMgbmVlZGVkLiAqLwpAQCAtODUsNiArODUsNiBAQAogZXh0ZXJuIHZvaWQgZ2Nsa19pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWspKTsKIAogLyogQm9hcmQgY29kZSBtYXkgbmVlZCB0aGUgU0RSQU0gYmFzZSBjbG9jayBhcyBhIGNvbXBpbGUtdGltZSBjb25zdGFudCAqLwotI2RlZmluZSBTRFJBTUNfQlVTX0haCShNQUlOX0NMS19SQVRFID4+IENGR19DTEtESVZfSFNCKQorI2RlZmluZSBTRFJBTUNfQlVTX0haCShNQUlOX0NMS19SQVRFID4+IENPTkZJR19TWVNfQ0xLRElWX0hTQikKIAogI2VuZGlmIC8qIF9fQVNNX0FWUjMyX0FSQ0hfQ0xLX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL2dsb2JhbF9kYXRhLmgKaW5kZXggNzVlNzVjYy4uOTdhNmM2MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvZ2xvYmFsX2RhdGEuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9nbG9iYWxfZGF0YS5oCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiAKIHR5cGVkZWYJc3RydWN0CWdsb2JhbF9kYXRhIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL2JsYWNrZmluLWNvbmZpZy1wb3N0LmggYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9ibGFja2Zpbi1jb25maWctcG9zdC5oCmluZGV4IDZhMWZmYTEuLjBhYjY4YWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL2JsYWNrZmluLWNvbmZpZy1wb3N0LmgKKysrIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vYmxhY2tmaW4tY29uZmlnLXBvc3QuaApAQCAtMTAsNyArMTAsNyBAQAogI2RlZmluZSBfX0FTTV9CTEFDS0ZJTl9DT05GSUdfUE9TVF9IX18KIAogLyogQ2hlY2sgdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgZml0cyBpbiBleHRlcm5hbCBSQU0gKi8KLSNpZiAoKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pID4gQ0ZHX01BWF9SQU1fU0laRSkKKyNpZiAoKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikgPiBDT05GSUdfU1lTX01BWF9SQU1fU0laRSkKICMgZXJyb3IgTWVtb3J5IE1hcCBkb2VzIG5vdCBmaXQgaW50byBjb25maWd1cmF0aW9uCiAjZW5kaWYKIApAQCAtMjAsOCArMjAsOCBAQAogI2VuZGlmCiAKIC8qIE1ha2Ugc3VyZSB0aGUgc3RydWN0dXJlIGlzIHByb3Blcmx5IGFsaWduZWQgKi8KLSNpZiAoKENGR19HQkxfREFUQV9BRERSICYgLTQpICE9IENGR19HQkxfREFUQV9BRERSKQotIyBlcnJvciBDRkdfR0JMX0RBVEFfQUREUjogbXVzdCBiZSA0IGJ5dGUgYWxpZ25lZAorI2lmICgoQ09ORklHX1NZU19HQkxfREFUQV9BRERSICYgLTQpICE9IENPTkZJR19TWVNfR0JMX0RBVEFfQUREUikKKyMgZXJyb3IgQ09ORklHX1NZU19HQkxfREFUQV9BRERSOiBtdXN0IGJlIDQgYnl0ZSBhbGlnbmVkCiAjZW5kaWYKIAogLyogU2V0IGRlZmF1bHQgQ09ORklHX1ZDT19IWiBpZiBuZWVkIGJlICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9ibGFja2Zpbi1jb25maWctcHJlLmggYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9ibGFja2Zpbi1jb25maWctcHJlLmgKaW5kZXggZjJjNDRmNy4uNTQxY2I3NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vYmxhY2tmaW4tY29uZmlnLXByZS5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL2JsYWNrZmluLWNvbmZpZy1wcmUuaApAQCAtMTUsMTAgKzE1LDEwIEBACiAjZGVmaW5lIEFSUkFZX1NJWkUoeCkgKHNpemVvZih4KSAvIHNpemVvZigoeClbMF0pKQogCiAvKiBDb25maWd1cmFibGUgQmxhY2tmaW4tc3BlY2lmaWMgbW9uaXRvciBjb21tYW5kcyAqLwotI2RlZmluZSBDRkdfQkZJTl9DTURfQk9PVExEUiAgICAgMHgwMQotI2RlZmluZSBDRkdfQkZJTl9DTURfQ1BMQklORk8gICAgMHgwMgotI2RlZmluZSBDRkdfQkZJTl9DTURfT1RQICAgICAgICAgMHgwNAotI2RlZmluZSBDRkdfQkZJTl9DTURfQ0FDSEVfRFVNUCAgMHgwOAorI2RlZmluZSBDT05GSUdfU1lTX0JGSU5fQ01EX0JPT1RMRFIgICAgIDB4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19CRklOX0NNRF9DUExCSU5GTyAgICAweDAyCisjZGVmaW5lIENPTkZJR19TWVNfQkZJTl9DTURfT1RQICAgICAgICAgMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX0JGSU5fQ01EX0NBQ0hFX0RVTVAgIDB4MDgKIAogLyogQm9vdG1vZGUgZGVmaW5lcyAtLSB5b3VyIGNvbmZpZyBuZWVkcyB0byBzZWxlY3QgdGhpcyB2aWEgQkZJTl9CT09UX01PREUuCiAgKiBEZXBlbmRpbmcgb24geW91ciBjcHUsIHNvbWUgb2YgdGhlc2UgbWF5IG5vdCBiZSB2YWxpZCwgY2hlY2sgeW91ciBIUk0uCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9nbG9iYWxfZGF0YS5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vZ2xvYmFsX2RhdGEuaAppbmRleCAyZjQwODcwLi41Yzk5MDNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL2dsb2JhbF9kYXRhLmgKQEAgLTM1LDcgKzM1LDcgQEAKICAqIGdsb2JhbCB2YXJpYWJsZXMgZHVyaW5nIHN5c3RlbSBpbml0aWFsaXphdGlvbiAodW50aWwgd2UgaGF2ZSBzZXQKICAqIHVwIHRoZSBtZW1vcnkgY29udHJvbGxlciBzbyB0aGF0IHdlIGNhbiB1c2UgUkFNKS4KICAqCi0gKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDRkdfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQorICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCiAgKi8KIHR5cGVkZWYgc3RydWN0IGdsb2JhbF9kYXRhIHsKIAliZF90ICpiZDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWkzODYvZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLWkzODYvZ2xvYmFsX2RhdGEuaAppbmRleCBjYzMwNjg5Li4zYWJiZjFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1pMzg2L2dsb2JhbF9kYXRhLmgKKysrIGIvaW5jbHVkZS9hc20taTM4Ni9nbG9iYWxfZGF0YS5oCkBAIC0zMCw3ICszMCw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiAKIHR5cGVkZWYJc3RydWN0IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLW02OGsvZ2xvYmFsX2RhdGEuaAppbmRleCAxODc2MThkLi40MTNjMjAwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1tNjhrL2dsb2JhbF9kYXRhLmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9nbG9iYWxfZGF0YS5oCkBAIC0zMCw3ICszMCw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiAKIHR5cGVkZWYJc3RydWN0CWdsb2JhbF9kYXRhIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXAuaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXAuaAppbmRleCBiMDgxNGYxLi5jY2Q3YzJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwLmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcC5oCkBAIC0zMCw4NCArMzAsODQgQEAKICNpbmNsdWRlIDxhc20vaW1tYXBfNTIyN3guaD4KICNpbmNsdWRlIDxhc20vbTUyMjd4Lmg+CiAKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4NDAwMCkpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4NDAwMCkpCiAKLSNkZWZpbmUgQ0ZHX01DRlJUQ19CQVNFCQkoTU1BUF9SVEMpCisjZGVmaW5lIENPTkZJR19TWVNfTUNGUlRDX0JBU0UJCShNTUFQX1JUQykKIAogI2lmZGVmIENPTkZJR19MQ0QKLSNkZWZpbmUJQ0ZHX0xDRF9CQVNFCQkoTU1BUF9MQ0QpCisjZGVmaW5lCUNPTkZJR19TWVNfTENEX0JBU0UJCShNTUFQX0xDRCkKICNlbmRpZgogCiAvKiBUaW1lciAqLwogI2lmZGVmIENPTkZJR19NQ0ZUTVIKLSNkZWZpbmUgQ0ZHX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKLSNkZWZpbmUgQ0ZHX1RNUl9CQVNFCQkoTU1BUF9EVE1SMSkKLSNkZWZpbmUgQ0ZHX1RNUlBORF9SRUcJCSgoKHZvbGF0aWxlIGludDBfdCAqKShDRkdfSU5UUl9CQVNFKSktPmlwcmgwKQotI2RlZmluZSBDRkdfVE1SSU5UUl9OTwkJKElOVDBfSElfRFRNUjEpCi0jZGVmaW5lIENGR19UTVJJTlRSX01BU0sJKElOVENfSVBSSF9JTlQzMykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUEVORAkoQ0ZHX1RNUklOVFJfTUFTSykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUFJJCQkoNikKLSNkZWZpbmUgQ0ZHX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDEwMDAwMDApIC0gMSkgPDwgOCkKKyNkZWZpbmUgQ09ORklHX1NZU19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SX0JBU0UJCShNTUFQX0RUTVIxKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUlBORF9SRUcJCSgoKHZvbGF0aWxlIGludDBfdCAqKShDT05GSUdfU1lTX0lOVFJfQkFTRSkpLT5pcHJoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX05PCQkoSU5UMF9ISV9EVE1SMSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX01BU0sJKElOVENfSVBSSF9JTlQzMykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BFTkQJKENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUFJJCQkoNikKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19NQ0ZQSVQKLSNkZWZpbmUgQ0ZHX1VERUxBWV9CQVNFCQkoTU1BUF9QSVQwKQotI2RlZmluZSBDRkdfUElUX0JBU0UJCShNTUFQX1BJVDEpCi0jZGVmaW5lIENGR19QSVRfUFJFU0NBTEUJKDYpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX1BJVDApCisjZGVmaW5lIENPTkZJR19TWVNfUElUX0JBU0UJCShNTUFQX1BJVDEpCisjZGVmaW5lIENPTkZJR19TWVNfUElUX1BSRVNDQUxFCSg2KQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCi0jZGVmaW5lIENGR19OVU1fSVJRUwkJKDEyOCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQorI2RlZmluZSBDT05GSUdfU1lTX05VTV9JUlFTCQkoMTI4KQogI2VuZGlmCQkJCS8qIENPTkZJR19NNTIyNzcgKi8KIAogI2lmZGVmIENPTkZJR19NNTIzNQogI2luY2x1ZGUgPGFzbS9pbW1hcF81MjM1Lmg+CiAjaW5jbHVkZSA8YXNtL201MjM1Lmg+CiAKLSNkZWZpbmUgQ0ZHX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMpCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDQwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwKSkKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjMpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pcHJsMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlQwX0xPX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkxfSU5UMjIpCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKDB4MUUpCQkvKiBMZXZlbCBtdXN0IGluY2x1ZGUgaW5vcmRlciB0byB3b3JrICovCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aXBybDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKElOVDBfTE9fRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkxfSU5UMjIpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDB4MUUpCQkvKiBMZXZlbCBtdXN0IGluY2x1ZGUgaW5vcmRlciB0byB3b3JrICovCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTUNGUElUCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfUElUMCkKLSNkZWZpbmUgQ0ZHX1BJVF9CQVNFCQkoTU1BUF9QSVQxKQotI2RlZmluZSBDRkdfUElUX1BSRVNDQUxFCSg2KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9QSVQwKQorI2RlZmluZSBDT05GSUdfU1lTX1BJVF9CQVNFCQkoTU1BUF9QSVQxKQorI2RlZmluZSBDT05GSUdfU1lTX1BJVF9QUkVTQ0FMRQkoNikKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSgxMjgpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDEyOCkKICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyMzUgKi8KIAogI2lmZGVmIENPTkZJR19NNTI0OQogI2luY2x1ZGUgPGFzbS9pbW1hcF81MjQ5Lmg+CiAjaW5jbHVkZSA8YXNtL201MjQ5Lmg+CiAKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4NDApKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwKSkKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSg2NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSX0JBU0UJCShNTUFQX0lOVEMpCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSg2NCkKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjEpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkobWJhcl9yZWFkTG9uZyhNQ0ZTSU1fSVBSKSkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCSgzMSkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoMHgwMDAwMDQwMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUEVORAkoQ0ZHX1RNUklOVFJfTUFTSykKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfUFJJCQkoTUNGU0lNX0lDUl9BVVRPVkVDIHwgTUNGU0lNX0lDUl9MRVZFTDcgfCBNQ0ZTSU1fSUNSX1BSSTMpCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAyMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkobWJhcl9yZWFkTG9uZyhNQ0ZTSU1fSVBSKSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX05PCQkoMzEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCSgweDAwMDAwNDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUEVORAkoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QUkkJCShNQ0ZTSU1fSUNSX0FVVE9WRUMgfCBNQ0ZTSU1fSUNSX0xFVkVMNyB8IE1DRlNJTV9JQ1JfUFJJMykKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAyMDAwMDAwKSAtIDEpIDw8IDgpCiAjZW5kaWYKICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyNDkgKi8KIApAQCAtMTE2LDIxICsxMTYsMjEgQEAKICNpbmNsdWRlIDxhc20vbTUyNDkuaD4KICNpbmNsdWRlIDxhc20vbTUyNTMuaD4KIAotI2RlZmluZSBDRkdfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDRkdfVUFSVF9QT1JUICogMHg0MCkpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4NDApKQogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMpCi0jZGVmaW5lIENGR19OVU1fSVJRUwkJKDY0KQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQykKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDY0KQogCiAvKiBUaW1lciAqLwogI2lmZGVmIENPTkZJR19NQ0ZUTVIKLSNkZWZpbmUgQ0ZHX1VERUxBWV9CQVNFCQkoTU1BUF9EVE1SMCkKLSNkZWZpbmUgQ0ZHX1RNUl9CQVNFCQkoTU1BUF9EVE1SMSkKLSNkZWZpbmUgQ0ZHX1RNUlBORF9SRUcJCShtYmFyX3JlYWRMb25nKE1DRlNJTV9JUFIpKQotI2RlZmluZSBDRkdfVE1SSU5UUl9OTwkJKDI3KQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCSgweDAwMDAwNDAwKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCShNQ0ZTSU1fSUNSX0FVVE9WRUMgfCBNQ0ZTSU1fSUNSX0xFVkVMMyB8IE1DRlNJTV9JQ1JfUFJJMykKLSNkZWZpbmUgQ0ZHX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDIwMDAwMDApIC0gMSkgPDwgOCkKKyNkZWZpbmUgQ09ORklHX1NZU19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SX0JBU0UJCShNTUFQX0RUTVIxKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUlBORF9SRUcJCShtYmFyX3JlYWRMb25nKE1DRlNJTV9JUFIpKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCSgyNykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX01BU0sJKDB4MDAwMDA0MDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKE1DRlNJTV9JQ1JfQVVUT1ZFQyB8IE1DRlNJTV9JQ1JfTEVWRUwzIHwgTUNGU0lNX0lDUl9QUkkzKQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1BSRVNDQUxFUgkoKChnZC0+YnVzX2NsayAvIDIwMDAwMDApIC0gMSkgPDwgOCkKICNlbmRpZgogI2VuZGlmCQkJCS8qIENPTkZJR19NNTI1MyAqLwogCkBAIC0xMzgsNDUgKzEzOCw0NSBAQAogI2luY2x1ZGUgPGFzbS9pbW1hcF81MjcxLmg+CiAjaW5jbHVkZSA8YXNtL201MjcxLmg+CiAKLSNkZWZpbmUgQ0ZHX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMpCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDQwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ09ORklHX1NZU19VQVJUX1BPUlQgKiAweDQwKSkKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjMpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pcHJsMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlQwX0xPX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkxfSU5UMjIpCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKDApCQkvKiBMZXZlbCBtdXN0IGluY2x1ZGUgaW5vcmRlciB0byB3b3JrICovCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aXBybDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKElOVDBfTE9fRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkxfSU5UMjIpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDApCQkvKiBMZXZlbCBtdXN0IGluY2x1ZGUgaW5vcmRlciB0byB3b3JrICovCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCi0jZGVmaW5lIENGR19OVU1fSVJRUwkJKDEyOCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQorI2RlZmluZSBDT05GSUdfU1lTX05VTV9JUlFTCQkoMTI4KQogI2VuZGlmCQkJCS8qIENPTkZJR19NNTI3MSAqLwogCiAjaWZkZWYgQ09ORklHX001MjcyCiAjaW5jbHVkZSA8YXNtL2ltbWFwXzUyNzIuaD4KICNpbmNsdWRlIDxhc20vbTUyNzIuaD4KIAotI2RlZmluZSBDRkdfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQykKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4NDApKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4NDApKQogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMpCi0jZGVmaW5lIENGR19OVU1fSVJRUwkJKDY0KQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQykKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDY0KQogCiAvKiBUaW1lciAqLwogI2lmZGVmIENPTkZJR19NQ0ZUTVIKLSNkZWZpbmUgQ0ZHX1VERUxBWV9CQVNFCQkoTU1BUF9UTVIwKQotI2RlZmluZSBDRkdfVE1SX0JBU0UJCShNTUFQX1RNUjMpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnRjdHJsX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pbnRfaXNyKQotI2RlZmluZSBDRkdfVE1SSU5UUl9OTwkJKElOVF9UTVIzKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCShJTlRfSVNSX0lOVDI0KQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECSgwKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCShJTlRfSUNSMV9UTVIzUEkgfCBJTlRfSUNSMV9UTVIzSVBMKDUpKQotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9UTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9UTVIzKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUlBORF9SRUcJCSgoKHZvbGF0aWxlIGludGN0cmxfdCAqKShDT05GSUdfU1lTX0lOVFJfQkFTRSkpLT5pbnRfaXNyKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlRfVE1SMykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX01BU0sJKElOVF9JU1JfSU5UMjQpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUFJJCQkoSU5UX0lDUjFfVE1SM1BJIHwgSU5UX0lDUjFfVE1SM0lQTCg1KSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCiAjZW5kaWYKICNlbmRpZgkJCQkvKiBDT05GSUdfTTUyNzIgKi8KIApAQCAtMTg0LDIzICsxODQsMjMgQEAKICNpbmNsdWRlIDxhc20vaW1tYXBfNTI3NS5oPgogI2luY2x1ZGUgPGFzbS9tNTI3NS5oPgogCi0jZGVmaW5lIENGR19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDMCkKLSNkZWZpbmUgQ0ZHX0ZFQzFfSU9CQVNFCQkoTU1BUF9GRUMxKQotI2RlZmluZSBDRkdfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDRkdfVUFSVF9QT1JUICogMHg0MCkpCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQzApCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMV9JT0JBU0UJCShNTUFQX0ZFQzEpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4NDApKQogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSgxOTIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDE5MikKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjMpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pcHJsMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlQwX0xPX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkxfSU5UMjIpCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKDB4MUUpCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aXBybDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKElOVDBfTE9fRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkxfSU5UMjIpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDB4MUUpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAjZW5kaWYJCQkJLyogQ09ORklHX001Mjc1ICovCiAKQEAgLTIwOCwyMiArMjA4LDIyIEBACiAjaW5jbHVkZSA8YXNtL2ltbWFwXzUyODIuaD4KICNpbmNsdWRlIDxhc20vbTUyODIuaD4KIAotI2RlZmluZSBDRkdfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQykKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4NDApKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4NDApKQogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSgxMjgpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDEyOCkKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjMpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pcHJsMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlQwX0xPX0RUTVIzKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCSgxIDw8IElOVDBfTE9fRFRNUjMpCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKDB4MUUpCQkvKiBMZXZlbCBtdXN0IGluY2x1ZGUgaW5vcmRlciB0byB3b3JrICovCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aXBybDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKElOVDBfTE9fRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCSgxIDw8IElOVDBfTE9fRFRNUjMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDB4MUUpCQkvKiBMZXZlbCBtdXN0IGluY2x1ZGUgaW5vcmRlciB0byB3b3JrICovCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAjZW5kaWYJCQkJLyogQ09ORklHX001MjgyICovCiAKQEAgLTIzMSw3MSArMjMxLDcxIEBACiAjaW5jbHVkZSA8YXNtL2ltbWFwXzUzMjkuaD4KICNpbmNsdWRlIDxhc20vbTUzMjkuaD4KIAotI2RlZmluZSBDRkdfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQykKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4NDAwMCkpCi0jZGVmaW5lIENGR19NQ0ZSVENfQkFTRQkJKE1NQVBfUlRDKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4NDAwMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUNGUlRDX0JBU0UJCShNTUFQX1JUQykKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjEpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pcHJoMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlQwX0hJX0RUTVIxKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UMzMpCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKDYpCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aXByaDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKElOVDBfSElfRFRNUjEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UMzMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDYpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTUNGUElUCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfUElUMCkKLSNkZWZpbmUgQ0ZHX1BJVF9CQVNFCQkoTU1BUF9QSVQxKQotI2RlZmluZSBDRkdfUElUX1BSRVNDQUxFCSg2KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9QSVQwKQorI2RlZmluZSBDT05GSUdfU1lTX1BJVF9CQVNFCQkoTU1BUF9QSVQxKQorI2RlZmluZSBDT05GSUdfU1lTX1BJVF9QUkVTQ0FMRQkoNikKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSgxMjgpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDEyOCkKICNlbmRpZgkJCQkvKiBDT05GSUdfTTUzMjkgJiYgQ09ORklHX001MzczICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19NNTQ0NTEpIHx8IGRlZmluZWQoQ09ORklHX001NDQ1NSkKICNpbmNsdWRlIDxhc20vaW1tYXBfNTQ0NXguaD4KICNpbmNsdWRlIDxhc20vbTU0NDV4Lmg+CiAKLSNkZWZpbmUgQ0ZHX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMwKQogI2lmIGRlZmluZWQoQ09ORklHX001NDQ1NUVWQikKLSNkZWZpbmUgQ0ZHX0ZFQzFfSU9CQVNFCQkoTU1BUF9GRUMxKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzFfSU9CQVNFCQkoTU1BUF9GRUMxKQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4NDAwMCkpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4NDAwMCkpCiAKLSNkZWZpbmUgQ0ZHX01DRlJUQ19CQVNFCQkoTU1BUF9SVEMpCisjZGVmaW5lIENPTkZJR19TWVNfTUNGUlRDX0JBU0UJCShNTUFQX1JUQykKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfTUNGVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfRFRNUjApCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfRFRNUjEpCi0jZGVmaW5lIENGR19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ0ZHX0lOVFJfQkFTRSkpLT5pcHJoMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTk8JCShJTlQwX0hJX0RUTVIxKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UMzMpCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKDYpCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKCgoZ2QtPmJ1c19jbGsgLyAxMDAwMDAwKSAtIDEpIDw8IDgpCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX0RUTVIwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUl9CQVNFCQkoTU1BUF9EVE1SMSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aXByaDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKElOVDBfSElfRFRNUjEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UMzMpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDYpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCSgoKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkgLSAxKSA8PCA4KQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTUNGUElUCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfUElUMCkKLSNkZWZpbmUgQ0ZHX1BJVF9CQVNFCQkoTU1BUF9QSVQxKQotI2RlZmluZSBDRkdfUElUX1BSRVNDQUxFCSg2KQorI2RlZmluZSBDT05GSUdfU1lTX1VERUxBWV9CQVNFCQkoTU1BUF9QSVQwKQorI2RlZmluZSBDT05GSUdfU1lTX1BJVF9CQVNFCQkoTU1BUF9QSVQxKQorI2RlZmluZSBDT05GSUdfU1lTX1BJVF9QUkVTQ0FMRQkoNikKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSgxMjgpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDEyOCkKIAogI2lmZGVmIENPTkZJR19QQ0kKLSNkZWZpbmUgQ0ZHX1BDSV9CQVIwCQkoQ0ZHX01CQVIpCi0jZGVmaW5lIENGR19QQ0lfQkFSNQkJKENGR19TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfUENJX1RCQVRSMAkJKENGR19NQkFSKQotI2RlZmluZSBDRkdfUENJX1RCQVRSNQkJKENGR19TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVIwCQkoQ09ORklHX1NZU19NQkFSKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVI1CQkoQ09ORklHX1NZU19TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQkFUUjAJCShDT05GSUdfU1lTX01CQVIpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RCQVRSNQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKICNlbmRpZgogI2VuZGlmCQkJCS8qIENPTkZJR19NNTQ0NTEgfHwgQ09ORklHX001NDQ1NSAqLwogCkBAIC0zMDQsOCArMzA0LDggQEAKICNpbmNsdWRlIDxhc20vbTU0N3hfOHguaD4KIAogI2lmZGVmIENPTkZJR19GU0xETUFGRUMKLSNkZWZpbmUgQ0ZHX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMwKQotI2RlZmluZSBDRkdfRkVDMV9JT0JBU0UJCShNTUFQX0ZFQzEpCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMF9JT0JBU0UJCShNTUFQX0ZFQzApCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMV9JT0JBU0UJCShNTUFQX0ZFQzEpCiAKICNkZWZpbmUgRkVDMF9SWF9UQVNLCQkwCiAjZGVmaW5lIEZFQzBfVFhfVEFTSwkJMQpAQCAtMzIxLDI3ICszMjEsMjcgQEAKICNkZWZpbmUgRkVDMV9UWF9JTklUCQkzMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKE1NQVBfVUFSVDAgKyAoQ0ZHX1VBUlRfUE9SVCAqIDB4MTAwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENPTkZJR19TWVNfVUFSVF9QT1JUICogMHgxMDApKQogCiAjaWZkZWYgQ09ORklHX1NMVFRNUgotI2RlZmluZSBDRkdfVURFTEFZX0JBU0UJCShNTUFQX1NMVDEpCi0jZGVmaW5lIENGR19UTVJfQkFTRQkJKE1NQVBfU0xUMCkKLSNkZWZpbmUgQ0ZHX1RNUlBORF9SRUcJCSgoKHZvbGF0aWxlIGludDBfdCAqKShDRkdfSU5UUl9CQVNFKSktPmlwcmgwKQotI2RlZmluZSBDRkdfVE1SSU5UUl9OTwkJKElOVDBfSElfU0xUMCkKLSNkZWZpbmUgQ0ZHX1RNUklOVFJfTUFTSwkoSU5UQ19JUFJIX0lOVDU0KQotI2RlZmluZSBDRkdfVE1SSU5UUl9QRU5ECShDRkdfVE1SSU5UUl9NQVNLKQotI2RlZmluZSBDRkdfVE1SSU5UUl9QUkkJCSgweDFFKQotI2RlZmluZSBDRkdfVElNRVJfUFJFU0NBTEVSCShnZC0+YnVzX2NsayAvIDEwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfVURFTEFZX0JBU0UJCShNTUFQX1NMVDEpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SX0JBU0UJCShNTUFQX1NMVDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENPTkZJR19TWVNfSU5UUl9CQVNFKSktPmlwcmgwKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfTk8JCShJTlQwX0hJX1NMVDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UNTQpCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9QRU5ECShDT05GSUdfU1lTX1RNUklOVFJfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BSSQkJKDB4MUUpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfUFJFU0NBTEVSCShnZC0+YnVzX2NsayAvIDEwMDAwMDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKLSNkZWZpbmUgQ0ZHX05VTV9JUlFTCQkoMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJfQkFTRQkJKE1NQVBfSU5UQzApCisjZGVmaW5lIENPTkZJR19TWVNfTlVNX0lSUVMJCSgxMjgpCiAKICNpZmRlZiBDT05GSUdfUENJCi0jZGVmaW5lIENGR19QQ0lfQkFSMAkJKDB4NDAwMDAwMDApCi0jZGVmaW5lIENGR19QQ0lfQkFSMQkJKENGR19TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfUENJX1RCQVRSMAkJKENGR19NQkFSKQotI2RlZmluZSBDRkdfUENJX1RCQVRSMQkJKENGR19TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVIwCQkoMHg0MDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFSMQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEJBVFIwCQkoQ09ORklHX1NZU19NQkFSKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQkFUUjEJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UpCiAjZW5kaWYKICNlbmRpZgkJCQkvKiBDT05GSUdfTTU0N3ggKi8KIApAQCAtMzUwLDggKzM1MCw4IEBACiAjaW5jbHVkZSA8YXNtL201NDd4Xzh4Lmg+CiAKICNpZmRlZiBDT05GSUdfRlNMRE1BRkVDCi0jZGVmaW5lIENGR19GRUMwX0lPQkFTRQkJKE1NQVBfRkVDMCkKLSNkZWZpbmUgQ0ZHX0ZFQzFfSU9CQVNFCQkoTU1BUF9GRUMxKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCQkoTU1BUF9GRUMwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzFfSU9CQVNFCQkoTU1BUF9GRUMxKQogCiAjZGVmaW5lIEZFQzBfUlhfVEFTSwkJMAogI2RlZmluZSBGRUMwX1RYX1RBU0sJCTEKQEAgLTM2NywyOCArMzY3LDI4IEBACiAjZGVmaW5lIEZFQzFfVFhfSU5JVAkJMzEKICNlbmRpZgogCi0jZGVmaW5lIENGR19VQVJUX0JBU0UJCShNTUFQX1VBUlQwICsgKENGR19VQVJUX1BPUlQgKiAweDEwMCkpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9CQVNFCQkoTU1BUF9VQVJUMCArIChDT05GSUdfU1lTX1VBUlRfUE9SVCAqIDB4MTAwKSkKIAogLyogVGltZXIgKi8KICNpZmRlZiBDT05GSUdfU0xUVE1SCi0jZGVmaW5lIENGR19VREVMQVlfQkFTRQkJKE1NQVBfU0xUMSkKLSNkZWZpbmUgQ0ZHX1RNUl9CQVNFCQkoTU1BUF9TTFQwKQotI2RlZmluZSBDRkdfVE1SUE5EX1JFRwkJKCgodm9sYXRpbGUgaW50MF90ICopKENGR19JTlRSX0JBU0UpKS0+aXByaDApCi0jZGVmaW5lIENGR19UTVJJTlRSX05PCQkoSU5UMF9ISV9TTFQwKQotI2RlZmluZSBDRkdfVE1SSU5UUl9NQVNLCShJTlRDX0lQUkhfSU5UNTQpCi0jZGVmaW5lIENGR19UTVJJTlRSX1BFTkQJKENGR19UTVJJTlRSX01BU0spCi0jZGVmaW5lIENGR19UTVJJTlRSX1BSSQkJKDB4MUUpCi0jZGVmaW5lIENGR19USU1FUl9QUkVTQ0FMRVIJKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VREVMQVlfQkFTRQkJKE1NQVBfU0xUMSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJfQkFTRQkJKE1NQVBfU0xUMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJQTkRfUkVHCQkoKCh2b2xhdGlsZSBpbnQwX3QgKikoQ09ORklHX1NZU19JTlRSX0JBU0UpKS0+aXByaDApCisjZGVmaW5lIENPTkZJR19TWVNfVE1SSU5UUl9OTwkJKElOVDBfSElfU0xUMCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX01BU0sJKElOVENfSVBSSF9JTlQ1NCkKKyNkZWZpbmUgQ09ORklHX1NZU19UTVJJTlRSX1BFTkQJKENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKQorI2RlZmluZSBDT05GSUdfU1lTX1RNUklOVFJfUFJJCQkoMHgxRSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUl9QUkVTQ0FMRVIJKGdkLT5idXNfY2xrIC8gMTAwMDAwMCkKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTlRSX0JBU0UJCShNTUFQX0lOVEMwKQotI2RlZmluZSBDRkdfTlVNX0lSUVMJCSgxMjgpCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUl9CQVNFCQkoTU1BUF9JTlRDMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVU1fSVJRUwkJKDEyOCkKIAogI2lmZGVmIENPTkZJR19QQ0kKLSNkZWZpbmUgQ0ZHX1BDSV9CQVIwCQkoQ0ZHX01CQVIpCi0jZGVmaW5lIENGR19QQ0lfQkFSMQkJKENGR19TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfUENJX1RCQVRSMAkJKENGR19NQkFSKQotI2RlZmluZSBDRkdfUENJX1RCQVRSMQkJKENGR19TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVIwCQkoQ09ORklHX1NZU19NQkFSKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVIxCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQkFUUjAJCShDT05GSUdfU1lTX01CQVIpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RCQVRSMQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKICNlbmRpZgogI2VuZGlmCQkJCS8qIENPTkZJR19NNTQ4eCAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyMjd4LmggYi9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyMjd4LmgKaW5kZXggMWQxZTZmMS4uODNkYTNkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjI3eC5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTIyN3guaApAQCAtMjcsNDQgKzI3LDQ0IEBACiAjZGVmaW5lIF9fSU1NQVBfNTIyN1hfXwogCiAvKiBNb2R1bGUgQmFzZSBBZGRyZXNzZXMgKi8KLSNkZWZpbmUgTU1BUF9TQ00xCShDRkdfTUJBUiArIDB4MDAwMDAwMDApCi0jZGVmaW5lIE1NQVBfWEJTCShDRkdfTUJBUiArIDB4MDAwMDQwMDApCi0jZGVmaW5lIE1NQVBfRkJDUwkoQ0ZHX01CQVIgKyAweDAwMDA4MDAwKQotI2RlZmluZSBNTUFQX0NBTgkoQ0ZHX01CQVIgKyAweDAwMDIwMDAwKQotI2RlZmluZSBNTUFQX1JUQwkoQ0ZHX01CQVIgKyAweDAwMDNDMDAwKQotI2RlZmluZSBNTUFQX1NDTTIJKENGR19NQkFSICsgMHgwMDA0MDAxMCkKLSNkZWZpbmUgTU1BUF9TQ00zCShDRkdfTUJBUiArIDB4MDAwNDAwNzApCi0jZGVmaW5lIE1NQVBfRURNQQkoQ0ZHX01CQVIgKyAweDAwMDQ0MDAwKQotI2RlZmluZSBNTUFQX0lOVEMwCShDRkdfTUJBUiArIDB4MDAwNDgwMDApCi0jZGVmaW5lIE1NQVBfSU5UQzEJKENGR19NQkFSICsgMHgwMDA0QzAwMCkKLSNkZWZpbmUgTU1BUF9JQUNLCShDRkdfTUJBUiArIDB4MDAwNTQwMDApCi0jZGVmaW5lIE1NQVBfSTJDCShDRkdfTUJBUiArIDB4MDAwNTgwMDApCi0jZGVmaW5lIE1NQVBfRFNQSQkoQ0ZHX01CQVIgKyAweDAwMDVDMDAwKQotI2RlZmluZSBNTUFQX1VBUlQwCShDRkdfTUJBUiArIDB4MDAwNjAwMDApCi0jZGVmaW5lIE1NQVBfVUFSVDEJKENGR19NQkFSICsgMHgwMDA2NDAwMCkKLSNkZWZpbmUgTU1BUF9VQVJUMgkoQ0ZHX01CQVIgKyAweDAwMDY4MDAwKQotI2RlZmluZSBNTUFQX0RUTVIwCShDRkdfTUJBUiArIDB4MDAwNzAwMDApCi0jZGVmaW5lIE1NQVBfRFRNUjEJKENGR19NQkFSICsgMHgwMDA3NDAwMCkKLSNkZWZpbmUgTU1BUF9EVE1SMgkoQ0ZHX01CQVIgKyAweDAwMDc4MDAwKQotI2RlZmluZSBNTUFQX0RUTVIzCShDRkdfTUJBUiArIDB4MDAwN0MwMDApCi0jZGVmaW5lIE1NQVBfUElUMAkoQ0ZHX01CQVIgKyAweDAwMDgwMDAwKQotI2RlZmluZSBNTUFQX1BJVDEJKENGR19NQkFSICsgMHgwMDA4NDAwMCkKLSNkZWZpbmUgTU1BUF9QV00JKENGR19NQkFSICsgMHgwMDA5MDAwMCkKLSNkZWZpbmUgTU1BUF9FUE9SVAkoQ0ZHX01CQVIgKyAweDAwMDk0MDAwKQotI2RlZmluZSBNTUFQX1JDTQkoQ0ZHX01CQVIgKyAweDAwMEEwMDAwKQotI2RlZmluZSBNTUFQX0NDTQkoQ0ZHX01CQVIgKyAweDAwMEEwMDA0KQotI2RlZmluZSBNTUFQX0dQSU8JKENGR19NQkFSICsgMHgwMDBBNDAwMCkKLSNkZWZpbmUgTU1BUF9BREMJKENGR19NQkFSICsgMHgwMDBBODAwMCkKLSNkZWZpbmUgTU1BUF9MQ0QJKENGR19NQkFSICsgMHgwMDBBQzAwMCkKLSNkZWZpbmUgTU1BUF9MQ0RfQkdMVVQJKENGR19NQkFSICsgMHgwMDBBQzgwMCkKLSNkZWZpbmUgTU1BUF9MQ0RfR1dMVVQJKENGR19NQkFSICsgMHgwMDBBQ0MwMCkKLSNkZWZpbmUgTU1BUF9VU0JIVwkoQ0ZHX01CQVIgKyAweDAwMEIwMDAwKQotI2RlZmluZSBNTUFQX1VTQkNBUFMJKENGR19NQkFSICsgMHgwMDBCMDEwMCkKLSNkZWZpbmUgTU1BUF9VU0JFSENJCShDRkdfTUJBUiArIDB4MDAwQjAxNDApCi0jZGVmaW5lIE1NQVBfVVNCT1RHCShDRkdfTUJBUiArIDB4MDAwQjAxQTApCi0jZGVmaW5lIE1NQVBfU0RSQU0JKENGR19NQkFSICsgMHgwMDBCODAwMCkKLSNkZWZpbmUgTU1BUF9TU0kJKENGR19NQkFSICsgMHgwMDBCQzAwMCkKLSNkZWZpbmUgTU1BUF9QTEwJKENGR19NQkFSICsgMHgwMDBDMDAwMCkKKyNkZWZpbmUgTU1BUF9TQ00xCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDAwKQorI2RlZmluZSBNTUFQX1hCUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwNDAwMCkKKyNkZWZpbmUgTU1BUF9GQkNTCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4MDAwKQorI2RlZmluZSBNTUFQX0NBTgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAyMDAwMCkKKyNkZWZpbmUgTU1BUF9SVEMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwM0MwMDApCisjZGVmaW5lIE1NQVBfU0NNMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA0MDAxMCkKKyNkZWZpbmUgTU1BUF9TQ00zCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDQwMDcwKQorI2RlZmluZSBNTUFQX0VETUEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNDQwMDApCisjZGVmaW5lIE1NQVBfSU5UQzAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNDgwMDApCisjZGVmaW5lIE1NQVBfSU5UQzEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNEMwMDApCisjZGVmaW5lIE1NQVBfSUFDSwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA1NDAwMCkKKyNkZWZpbmUgTU1BUF9JMkMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwNTgwMDApCisjZGVmaW5lIE1NQVBfRFNQSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA1QzAwMCkKKyNkZWZpbmUgTU1BUF9VQVJUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA2MDAwMCkKKyNkZWZpbmUgTU1BUF9VQVJUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA2NDAwMCkKKyNkZWZpbmUgTU1BUF9VQVJUMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA2ODAwMCkKKyNkZWZpbmUgTU1BUF9EVE1SMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA3MDAwMCkKKyNkZWZpbmUgTU1BUF9EVE1SMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA3NDAwMCkKKyNkZWZpbmUgTU1BUF9EVE1SMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA3ODAwMCkKKyNkZWZpbmUgTU1BUF9EVE1SMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDA3QzAwMCkKKyNkZWZpbmUgTU1BUF9QSVQwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDgwMDAwKQorI2RlZmluZSBNTUFQX1BJVDEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwODQwMDApCisjZGVmaW5lIE1NQVBfUFdNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDkwMDAwKQorI2RlZmluZSBNTUFQX0VQT1JUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDk0MDAwKQorI2RlZmluZSBNTUFQX1JDTQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBBMDAwMCkKKyNkZWZpbmUgTU1BUF9DQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQTAwMDQpCisjZGVmaW5lIE1NQVBfR1BJTwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBBNDAwMCkKKyNkZWZpbmUgTU1BUF9BREMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQTgwMDApCisjZGVmaW5lIE1NQVBfTENECShDT05GSUdfU1lTX01CQVIgKyAweDAwMEFDMDAwKQorI2RlZmluZSBNTUFQX0xDRF9CR0xVVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBBQzgwMCkKKyNkZWZpbmUgTU1BUF9MQ0RfR1dMVVQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQUNDMDApCisjZGVmaW5lIE1NQVBfVVNCSFcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQjAwMDApCisjZGVmaW5lIE1NQVBfVVNCQ0FQUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBCMDEwMCkKKyNkZWZpbmUgTU1BUF9VU0JFSENJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMEIwMTQwKQorI2RlZmluZSBNTUFQX1VTQk9URwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBCMDFBMCkKKyNkZWZpbmUgTU1BUF9TRFJBTQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDBCODAwMCkKKyNkZWZpbmUgTU1BUF9TU0kJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwQkMwMDApCisjZGVmaW5lIE1NQVBfUExMCShDT05GSUdfU1lTX01CQVIgKyAweDAwMEMwMDAwKQogCiAjaW5jbHVkZSA8YXNtL2NvbGRmaXJlL2Nyb3NzYmFyLmg+CiAjaW5jbHVkZSA8YXNtL2NvbGRmaXJlL2RzcGkuaD4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTIzNS5oIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjM1LmgKaW5kZXggNGEwMzQ1MC4uM2VmMDMyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjM1LmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjM1LmgKQEAgLTI2LDQyICsyNiw0MiBAQAogI2lmbmRlZiBfX0lNTUFQXzUyMzVfXwogI2RlZmluZSBfX0lNTUFQXzUyMzVfXwogCi0jZGVmaW5lIE1NQVBfU0NNCShDRkdfTUJBUiArIDB4MDAwMDAwMDApCi0jZGVmaW5lIE1NQVBfU0RSQU0JKENGR19NQkFSICsgMHgwMDAwMDA0MCkKLSNkZWZpbmUgTU1BUF9GQkNTCShDRkdfTUJBUiArIDB4MDAwMDAwODApCi0jZGVmaW5lIE1NQVBfRE1BMAkoQ0ZHX01CQVIgKyAweDAwMDAwMTAwKQotI2RlZmluZSBNTUFQX0RNQTEJKENGR19NQkFSICsgMHgwMDAwMDExMCkKLSNkZWZpbmUgTU1BUF9ETUEyCShDRkdfTUJBUiArIDB4MDAwMDAxMjApCi0jZGVmaW5lIE1NQVBfRE1BMwkoQ0ZHX01CQVIgKyAweDAwMDAwMTMwKQotI2RlZmluZSBNTUFQX1VBUlQwCShDRkdfTUJBUiArIDB4MDAwMDAyMDApCi0jZGVmaW5lIE1NQVBfVUFSVDEJKENGR19NQkFSICsgMHgwMDAwMDI0MCkKLSNkZWZpbmUgTU1BUF9VQVJUMgkoQ0ZHX01CQVIgKyAweDAwMDAwMjgwKQotI2RlZmluZSBNTUFQX0kyQwkoQ0ZHX01CQVIgKyAweDAwMDAwMzAwKQotI2RlZmluZSBNTUFQX1FTUEkJKENGR19NQkFSICsgMHgwMDAwMDM0MCkKLSNkZWZpbmUgTU1BUF9EVE1SMAkoQ0ZHX01CQVIgKyAweDAwMDAwNDAwKQotI2RlZmluZSBNTUFQX0RUTVIxCShDRkdfTUJBUiArIDB4MDAwMDA0NDApCi0jZGVmaW5lIE1NQVBfRFRNUjIJKENGR19NQkFSICsgMHgwMDAwMDQ4MCkKLSNkZWZpbmUgTU1BUF9EVE1SMwkoQ0ZHX01CQVIgKyAweDAwMDAwNEMwKQotI2RlZmluZSBNTUFQX0lOVEMwCShDRkdfTUJBUiArIDB4MDAwMDBDMDApCi0jZGVmaW5lIE1NQVBfSU5UQzEJKENGR19NQkFSICsgMHgwMDAwMEQwMCkKLSNkZWZpbmUgTU1BUF9JTlRDQUNLCShDRkdfTUJBUiArIDB4MDAwMDBGMDApCi0jZGVmaW5lIE1NQVBfRkVDCShDRkdfTUJBUiArIDB4MDAwMDEwMDApCi0jZGVmaW5lIE1NQVBfRkVDRklGTwkoQ0ZHX01CQVIgKyAweDAwMDAxNDAwKQotI2RlZmluZSBNTUFQX0dQSU8JKENGR19NQkFSICsgMHgwMDEwMDAwMCkKLSNkZWZpbmUgTU1BUF9DQ00JKENGR19NQkFSICsgMHgwMDExMDAwMCkKLSNkZWZpbmUgTU1BUF9QTEwJKENGR19NQkFSICsgMHgwMDEyMDAwMCkKLSNkZWZpbmUgTU1BUF9FUE9SVAkoQ0ZHX01CQVIgKyAweDAwMTMwMDAwKQotI2RlZmluZSBNTUFQX1dET0cJKENGR19NQkFSICsgMHgwMDE0MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQwCShDRkdfTUJBUiArIDB4MDAxNTAwMDApCi0jZGVmaW5lIE1NQVBfUElUMQkoQ0ZHX01CQVIgKyAweDAwMTYwMDAwKQotI2RlZmluZSBNTUFQX1BJVDIJKENGR19NQkFSICsgMHgwMDE3MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQzCShDRkdfTUJBUiArIDB4MDAxODAwMDApCi0jZGVmaW5lIE1NQVBfTURIQQkoQ0ZHX01CQVIgKyAweDAwMTkwMDAwKQotI2RlZmluZSBNTUFQX1JORwkoQ0ZHX01CQVIgKyAweDAwMUEwMDAwKQotI2RlZmluZSBNTUFQX1NLSEEJKENGR19NQkFSICsgMHgwMDFCMDAwMCkKLSNkZWZpbmUgTU1BUF9DQU4xCShDRkdfTUJBUiArIDB4MDAxQzAwMDApCi0jZGVmaW5lIE1NQVBfRVRQVQkoQ0ZHX01CQVIgKyAweDAwMUQwMDAwKQotI2RlZmluZSBNTUFQX0NBTjIJKENGR19NQkFSICsgMHgwMDFGMDAwMCkKKyNkZWZpbmUgTU1BUF9TQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwMDApCisjZGVmaW5lIE1NQVBfU0RSQU0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwNDApCisjZGVmaW5lIE1NQVBfRkJDUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDA4MCkKKyNkZWZpbmUgTU1BUF9ETUEwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTAwKQorI2RlZmluZSBNTUFQX0RNQTEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxMTApCisjZGVmaW5lIE1NQVBfRE1BMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEyMCkKKyNkZWZpbmUgTU1BUF9ETUEzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTMwKQorI2RlZmluZSBNTUFQX1VBUlQwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjAwKQorI2RlZmluZSBNTUFQX1VBUlQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjQwKQorI2RlZmluZSBNTUFQX1VBUlQyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjgwKQorI2RlZmluZSBNTUFQX0kyQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDMwMCkKKyNkZWZpbmUgTU1BUF9RU1BJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMzQwKQorI2RlZmluZSBNTUFQX0RUTVIwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDAwKQorI2RlZmluZSBNTUFQX0RUTVIxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDQwKQorI2RlZmluZSBNTUFQX0RUTVIyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDgwKQorI2RlZmluZSBNTUFQX0RUTVIzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNEMwKQorI2RlZmluZSBNTUFQX0lOVEMwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQzAwKQorI2RlZmluZSBNTUFQX0lOVEMxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRDAwKQorI2RlZmluZSBNTUFQX0lOVENBQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBGMDApCisjZGVmaW5lIE1NQVBfRkVDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxMDAwKQorI2RlZmluZSBNTUFQX0ZFQ0ZJRk8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDE0MDApCisjZGVmaW5lIE1NQVBfR1BJTwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEwMDAwMCkKKyNkZWZpbmUgTU1BUF9DQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMTAwMDApCisjZGVmaW5lIE1NQVBfUExMCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTIwMDAwKQorI2RlZmluZSBNTUFQX0VQT1JUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTMwMDAwKQorI2RlZmluZSBNTUFQX1dET0cJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNDAwMDApCisjZGVmaW5lIE1NQVBfUElUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE1MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTYwMDAwKQorI2RlZmluZSBNTUFQX1BJVDIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNzAwMDApCisjZGVmaW5lIE1NQVBfUElUMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE4MDAwMCkKKyNkZWZpbmUgTU1BUF9NREhBCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTkwMDAwKQorI2RlZmluZSBNTUFQX1JORwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFBMDAwMCkKKyNkZWZpbmUgTU1BUF9TS0hBCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUIwMDAwKQorI2RlZmluZSBNTUFQX0NBTjEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxQzAwMDApCisjZGVmaW5lIE1NQVBfRVRQVQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFEMDAwMCkKKyNkZWZpbmUgTU1BUF9DQU4yCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUYwMDAwKQogCiAvKiBTeXN0ZW0gQ29udHJvbCBNb2R1bGUgcmVnaXN0ZXIgKi8KIHR5cGVkZWYgc3RydWN0IHNjbV9jdHJsIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI0OS5oIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjQ5LmgKaW5kZXggNmM2ZmJjYy4uNmI1N2JhNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjQ5LmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjQ5LmgKQEAgLTI1LDExICsyNSwxMSBAQAogI2lmbmRlZiBfX0lNTUFQXzUyNDlfXwogI2RlZmluZSBfX0lNTUFQXzUyNDlfXwogCi0jZGVmaW5lIE1NQVBfSU5UQwkJKENGR19NQkFSICsgMHgwMDAwMDA0MCkKLSNkZWZpbmUgTU1BUF9EVE1SMAkJKENGR19NQkFSICsgMHgwMDAwMDE0MCkKLSNkZWZpbmUgTU1BUF9EVE1SMQkJKENGR19NQkFSICsgMHgwMDAwMDE4MCkKLSNkZWZpbmUgTU1BUF9VQVJUMAkJKENGR19NQkFSICsgMHgwMDAwMDFDMCkKLSNkZWZpbmUgTU1BUF9VQVJUMQkJKENGR19NQkFSICsgMHgwMDAwMDIwMCkKLSNkZWZpbmUgTU1BUF9RU1BJCQkoQ0ZHX01CQVIgKyAweDAwMDAwNDAwKQorI2RlZmluZSBNTUFQX0lOVEMJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDQwKQorI2RlZmluZSBNTUFQX0RUTVIwCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDE0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMQkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxODApCisjZGVmaW5lIE1NQVBfVUFSVDAJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMUMwKQorI2RlZmluZSBNTUFQX1VBUlQxCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDIwMCkKKyNkZWZpbmUgTU1BUF9RU1BJCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQwMCkKIAogI2VuZGlmCQkJCS8qIF9fSU1NQVBfNTI0OV9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2ltbWFwXzUyNTMuaCBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI1My5oCmluZGV4IGFhZmJkZDAuLjRlM2E0ODEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI1My5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI1My5oCkBAIC0yNiwxOCArMjYsMTggQEAKICNpZm5kZWYgX19JTU1BUF81MjQ5X18KICNkZWZpbmUgX19JTU1BUF81MjQ5X18KIAotI2RlZmluZSBNTUFQX0lOVEMJCShDRkdfTUJBUiArIDB4MDAwMDAwNDApCi0jZGVmaW5lIE1NQVBfRFRNUjAJCShDRkdfTUJBUiArIDB4MDAwMDAxNDApCi0jZGVmaW5lIE1NQVBfRFRNUjEJCShDRkdfTUJBUiArIDB4MDAwMDAxODApCi0jZGVmaW5lIE1NQVBfVUFSVDAJCShDRkdfTUJBUiArIDB4MDAwMDAxQzApCi0jZGVmaW5lIE1NQVBfVUFSVDEJCShDRkdfTUJBUiArIDB4MDAwMDAyMDApCi0jZGVmaW5lIE1NQVBfSTJDMAkJKENGR19NQkFSICsgMHgwMDAwMDI4MCkKLSNkZWZpbmUgTU1BUF9RU1BJCQkoQ0ZHX01CQVIgKyAweDAwMDAwNDAwKQotI2RlZmluZSBNTUFQX0NBTjAJCShDRkdfTUJBUiArIDB4MDAwMTAwMDApCi0jZGVmaW5lIE1NQVBfQ0FOMQkJKENGR19NQkFSICsgMHgwMDAxMTAwMCkKKyNkZWZpbmUgTU1BUF9JTlRDCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDA0MCkKKyNkZWZpbmUgTU1BUF9EVE1SMAkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxNDApCisjZGVmaW5lIE1NQVBfRFRNUjEJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTgwKQorI2RlZmluZSBNTUFQX1VBUlQwCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDFDMCkKKyNkZWZpbmUgTU1BUF9VQVJUMQkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAyMDApCisjZGVmaW5lIE1NQVBfSTJDMAkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAyODApCisjZGVmaW5lIE1NQVBfUVNQSQkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA0MDApCisjZGVmaW5lIE1NQVBfQ0FOMAkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMTAwMDApCisjZGVmaW5lIE1NQVBfQ0FOMQkJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMTEwMDApCiAKLSNkZWZpbmUgTU1BUF9JMkMxCQkoQ0ZHX01CQVIyICsgMHgwMDAwMDQ0MCkKLSNkZWZpbmUgTU1BUF9VQVJUMgkJKENGR19NQkFSMiArIDB4MDAwMDBDMDApCisjZGVmaW5lIE1NQVBfSTJDMQkJKENPTkZJR19TWVNfTUJBUjIgKyAweDAwMDAwNDQwKQorI2RlZmluZSBNTUFQX1VBUlQyCQkoQ09ORklHX1NZU19NQkFSMiArIDB4MDAwMDBDMDApCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQVRBIE1vZHVsZSAoQVRBQykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3MS5oIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjcxLmgKaW5kZXggZDlkYzAxNS4uNDYyZDVmMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjcxLmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjcxLmgKQEAgLTI2LDQyICsyNiw0MiBAQAogI2lmbmRlZiBfX0lNTUFQXzUyNzFfXwogI2RlZmluZSBfX0lNTUFQXzUyNzFfXwogCi0jZGVmaW5lIE1NQVBfU0NNCShDRkdfTUJBUiArIDB4MDAwMDAwMDApCi0jZGVmaW5lIE1NQVBfU0RSQU0JKENGR19NQkFSICsgMHgwMDAwMDA0MCkKLSNkZWZpbmUgTU1BUF9GQkNTCShDRkdfTUJBUiArIDB4MDAwMDAwODApCi0jZGVmaW5lIE1NQVBfRE1BMAkoQ0ZHX01CQVIgKyAweDAwMDAwMTAwKQotI2RlZmluZSBNTUFQX0RNQTEJKENGR19NQkFSICsgMHgwMDAwMDExMCkKLSNkZWZpbmUgTU1BUF9ETUEyCShDRkdfTUJBUiArIDB4MDAwMDAxMjApCi0jZGVmaW5lIE1NQVBfRE1BMwkoQ0ZHX01CQVIgKyAweDAwMDAwMTMwKQotI2RlZmluZSBNTUFQX1VBUlQwCShDRkdfTUJBUiArIDB4MDAwMDAyMDApCi0jZGVmaW5lIE1NQVBfVUFSVDEJKENGR19NQkFSICsgMHgwMDAwMDI0MCkKLSNkZWZpbmUgTU1BUF9VQVJUMgkoQ0ZHX01CQVIgKyAweDAwMDAwMjgwKQotI2RlZmluZSBNTUFQX0kyQwkoQ0ZHX01CQVIgKyAweDAwMDAwMzAwKQotI2RlZmluZSBNTUFQX1FTUEkJKENGR19NQkFSICsgMHgwMDAwMDM0MCkKLSNkZWZpbmUgTU1BUF9EVE1SMAkoQ0ZHX01CQVIgKyAweDAwMDAwNDAwKQotI2RlZmluZSBNTUFQX0RUTVIxCShDRkdfTUJBUiArIDB4MDAwMDA0NDApCi0jZGVmaW5lIE1NQVBfRFRNUjIJKENGR19NQkFSICsgMHgwMDAwMDQ4MCkKLSNkZWZpbmUgTU1BUF9EVE1SMwkoQ0ZHX01CQVIgKyAweDAwMDAwNEMwKQotI2RlZmluZSBNTUFQX0lOVEMwCShDRkdfTUJBUiArIDB4MDAwMDBDMDApCi0jZGVmaW5lIE1NQVBfSU5UQzEJKENGR19NQkFSICsgMHgwMDAwMEQwMCkKLSNkZWZpbmUgTU1BUF9JTlRDQUNLCShDRkdfTUJBUiArIDB4MDAwMDBGMDApCi0jZGVmaW5lIE1NQVBfRkVDCShDRkdfTUJBUiArIDB4MDAwMDEwMDApCi0jZGVmaW5lIE1NQVBfRkVDRklGTwkoQ0ZHX01CQVIgKyAweDAwMDAxNDAwKQotI2RlZmluZSBNTUFQX0dQSU8JKENGR19NQkFSICsgMHgwMDEwMDAwMCkKLSNkZWZpbmUgTU1BUF9DQ00JKENGR19NQkFSICsgMHgwMDExMDAwMCkKLSNkZWZpbmUgTU1BUF9QTEwJKENGR19NQkFSICsgMHgwMDEyMDAwMCkKLSNkZWZpbmUgTU1BUF9FUE9SVAkoQ0ZHX01CQVIgKyAweDAwMTMwMDAwKQotI2RlZmluZSBNTUFQX1dET0cJKENGR19NQkFSICsgMHgwMDE0MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQwCShDRkdfTUJBUiArIDB4MDAxNTAwMDApCi0jZGVmaW5lIE1NQVBfUElUMQkoQ0ZHX01CQVIgKyAweDAwMTYwMDAwKQotI2RlZmluZSBNTUFQX1BJVDIJKENGR19NQkFSICsgMHgwMDE3MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQzCShDRkdfTUJBUiArIDB4MDAxODAwMDApCi0jZGVmaW5lIE1NQVBfTURIQQkoQ0ZHX01CQVIgKyAweDAwMTkwMDAwKQotI2RlZmluZSBNTUFQX1JORwkoQ0ZHX01CQVIgKyAweDAwMUEwMDAwKQotI2RlZmluZSBNTUFQX1NLSEEJKENGR19NQkFSICsgMHgwMDFCMDAwMCkKLSNkZWZpbmUgTU1BUF9DQU4xCShDRkdfTUJBUiArIDB4MDAxQzAwMDApCi0jZGVmaW5lIE1NQVBfRVRQVQkoQ0ZHX01CQVIgKyAweDAwMUQwMDAwKQotI2RlZmluZSBNTUFQX0NBTjIJKENGR19NQkFSICsgMHgwMDFGMDAwMCkKKyNkZWZpbmUgTU1BUF9TQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwMDApCisjZGVmaW5lIE1NQVBfU0RSQU0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwNDApCisjZGVmaW5lIE1NQVBfRkJDUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDA4MCkKKyNkZWZpbmUgTU1BUF9ETUEwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTAwKQorI2RlZmluZSBNTUFQX0RNQTEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxMTApCisjZGVmaW5lIE1NQVBfRE1BMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEyMCkKKyNkZWZpbmUgTU1BUF9ETUEzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTMwKQorI2RlZmluZSBNTUFQX1VBUlQwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjAwKQorI2RlZmluZSBNTUFQX1VBUlQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjQwKQorI2RlZmluZSBNTUFQX1VBUlQyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjgwKQorI2RlZmluZSBNTUFQX0kyQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDMwMCkKKyNkZWZpbmUgTU1BUF9RU1BJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMzQwKQorI2RlZmluZSBNTUFQX0RUTVIwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDAwKQorI2RlZmluZSBNTUFQX0RUTVIxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDQwKQorI2RlZmluZSBNTUFQX0RUTVIyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDgwKQorI2RlZmluZSBNTUFQX0RUTVIzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNEMwKQorI2RlZmluZSBNTUFQX0lOVEMwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQzAwKQorI2RlZmluZSBNTUFQX0lOVEMxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRDAwKQorI2RlZmluZSBNTUFQX0lOVENBQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBGMDApCisjZGVmaW5lIE1NQVBfRkVDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxMDAwKQorI2RlZmluZSBNTUFQX0ZFQ0ZJRk8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDE0MDApCisjZGVmaW5lIE1NQVBfR1BJTwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEwMDAwMCkKKyNkZWZpbmUgTU1BUF9DQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMTAwMDApCisjZGVmaW5lIE1NQVBfUExMCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTIwMDAwKQorI2RlZmluZSBNTUFQX0VQT1JUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTMwMDAwKQorI2RlZmluZSBNTUFQX1dET0cJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNDAwMDApCisjZGVmaW5lIE1NQVBfUElUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE1MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTYwMDAwKQorI2RlZmluZSBNTUFQX1BJVDIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNzAwMDApCisjZGVmaW5lIE1NQVBfUElUMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE4MDAwMCkKKyNkZWZpbmUgTU1BUF9NREhBCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTkwMDAwKQorI2RlZmluZSBNTUFQX1JORwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFBMDAwMCkKKyNkZWZpbmUgTU1BUF9TS0hBCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUIwMDAwKQorI2RlZmluZSBNTUFQX0NBTjEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxQzAwMDApCisjZGVmaW5lIE1NQVBfRVRQVQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFEMDAwMCkKKyNkZWZpbmUgTU1BUF9DQU4yCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUYwMDAwKQogCiAvKiBJbnRlcnJ1cHQgbW9kdWxlIHJlZ2lzdGVycyAqLwogdHlwZWRlZiBzdHJ1Y3QgaW50MF9jdHJsIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3Mi5oIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjcyLmgKaW5kZXggMmViYjE0MC4uYjEwNjI4OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjcyLmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjcyLmgKQEAgLTI1LDI0ICsyNSwyNCBAQAogI2lmbmRlZiBfX0lNTUFQXzUyNzJfXwogI2RlZmluZSBfX0lNTUFQXzUyNzJfXwogCi0jZGVmaW5lIE1NQVBfQ0ZHCShDRkdfTUJBUiArIDB4MDAwMDAwMDApCi0jZGVmaW5lIE1NQVBfSU5UQwkoQ0ZHX01CQVIgKyAweDAwMDAwMDIwKQotI2RlZmluZSBNTUFQX0ZCQ1MJKENGR19NQkFSICsgMHgwMDAwMDA0MCkKLSNkZWZpbmUgTU1BUF9HUElPCShDRkdfTUJBUiArIDB4MDAwMDAwODApCi0jZGVmaW5lIE1NQVBfUVNQSQkoQ0ZHX01CQVIgKyAweDAwMDAwMEEwKQotI2RlZmluZSBNTUFQX1BXTQkoQ0ZHX01CQVIgKyAweDAwMDAwMEMwKQotI2RlZmluZSBNTUFQX0RNQTAJKENGR19NQkFSICsgMHgwMDAwMDBFMCkKLSNkZWZpbmUgTU1BUF9VQVJUMAkoQ0ZHX01CQVIgKyAweDAwMDAwMTAwKQotI2RlZmluZSBNTUFQX1VBUlQxCShDRkdfTUJBUiArIDB4MDAwMDAxNDApCi0jZGVmaW5lIE1NQVBfU0RSQU0JKENGR19NQkFSICsgMHgwMDAwMDE4MCkKLSNkZWZpbmUgTU1BUF9UTVIwCShDRkdfTUJBUiArIDB4MDAwMDAyMDApCi0jZGVmaW5lIE1NQVBfVE1SMQkoQ0ZHX01CQVIgKyAweDAwMDAwMjIwKQotI2RlZmluZSBNTUFQX1RNUjIJKENGR19NQkFSICsgMHgwMDAwMDI0MCkKLSNkZWZpbmUgTU1BUF9UTVIzCShDRkdfTUJBUiArIDB4MDAwMDAyNjApCi0jZGVmaW5lIE1NQVBfV0RPRwkoQ0ZHX01CQVIgKyAweDAwMDAwMjgwKQotI2RlZmluZSBNTUFQX1BMSUMJKENGR19NQkFSICsgMHgwMDAwMDMwMCkKLSNkZWZpbmUgTU1BUF9GRUMJKENGR19NQkFSICsgMHgwMDAwMDg0MCkKLSNkZWZpbmUgTU1BUF9VU0IJKENGR19NQkFSICsgMHgwMDAwMTAwMCkKKyNkZWZpbmUgTU1BUF9DRkcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwMDApCisjZGVmaW5lIE1NQVBfSU5UQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDAyMCkKKyNkZWZpbmUgTU1BUF9GQkNTCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDQwKQorI2RlZmluZSBNTUFQX0dQSU8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwODApCisjZGVmaW5lIE1NQVBfUVNQSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDBBMCkKKyNkZWZpbmUgTU1BUF9QV00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwQzApCisjZGVmaW5lIE1NQVBfRE1BMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDBFMCkKKyNkZWZpbmUgTU1BUF9VQVJUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEwMCkKKyNkZWZpbmUgTU1BUF9VQVJUMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDE0MCkKKyNkZWZpbmUgTU1BUF9TRFJBTQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDE4MCkKKyNkZWZpbmUgTU1BUF9UTVIwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjAwKQorI2RlZmluZSBNTUFQX1RNUjEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAyMjApCisjZGVmaW5lIE1NQVBfVE1SMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDI0MCkKKyNkZWZpbmUgTU1BUF9UTVIzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjYwKQorI2RlZmluZSBNTUFQX1dET0cJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAyODApCisjZGVmaW5lIE1NQVBfUExJQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDMwMCkKKyNkZWZpbmUgTU1BUF9GRUMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA4NDApCisjZGVmaW5lIE1NQVBfVVNCCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxMDAwKQogCiAvKiBTeXN0ZW0gY29uZmlndXJhdGlvbiByZWdpc3RlcnMgKi8KIHR5cGVkZWYgc3RydWN0IHN5c19jdHJsIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI3NS5oIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81Mjc1LmgKaW5kZXggNzc0ODY2ZS4uNDk1MDEwYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81Mjc1LmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81Mjc1LmgKQEAgLTI3LDQ0ICsyNyw0NCBAQAogI2lmbmRlZiBfX0lNTUFQXzUyNzVfXwogI2RlZmluZSBfX0lNTUFQXzUyNzVfXwogCi0jZGVmaW5lIE1NQVBfU0NNCShDRkdfTUJBUiArIDB4MDAwMDAwMDApCi0jZGVmaW5lIE1NQVBfU0RSQU0JKENGR19NQkFSICsgMHgwMDAwMDA0MCkKLSNkZWZpbmUgTU1BUF9GQkNTCShDRkdfTUJBUiArIDB4MDAwMDAwODApCi0jZGVmaW5lIE1NQVBfRE1BMAkoQ0ZHX01CQVIgKyAweDAwMDAwMTAwKQotI2RlZmluZSBNTUFQX0RNQTEJKENGR19NQkFSICsgMHgwMDAwMDExMCkKLSNkZWZpbmUgTU1BUF9ETUEyCShDRkdfTUJBUiArIDB4MDAwMDAxMjApCi0jZGVmaW5lIE1NQVBfRE1BMwkoQ0ZHX01CQVIgKyAweDAwMDAwMTMwKQotI2RlZmluZSBNTUFQX1VBUlQwCShDRkdfTUJBUiArIDB4MDAwMDAyMDApCi0jZGVmaW5lIE1NQVBfVUFSVDEJKENGR19NQkFSICsgMHgwMDAwMDI0MCkKLSNkZWZpbmUgTU1BUF9VQVJUMgkoQ0ZHX01CQVIgKyAweDAwMDAwMjgwKQotI2RlZmluZSBNTUFQX0kyQwkoQ0ZHX01CQVIgKyAweDAwMDAwMzAwKQotI2RlZmluZSBNTUFQX1FTUEkJKENGR19NQkFSICsgMHgwMDAwMDM0MCkKLSNkZWZpbmUgTU1BUF9EVE1SMAkoQ0ZHX01CQVIgKyAweDAwMDAwNDAwKQotI2RlZmluZSBNTUFQX0RUTVIxCShDRkdfTUJBUiArIDB4MDAwMDA0NDApCi0jZGVmaW5lIE1NQVBfRFRNUjIJKENGR19NQkFSICsgMHgwMDAwMDQ4MCkKLSNkZWZpbmUgTU1BUF9EVE1SMwkoQ0ZHX01CQVIgKyAweDAwMDAwNEMwKQotI2RlZmluZSBNTUFQX0lOVEMwCShDRkdfTUJBUiArIDB4MDAwMDBDMDApCi0jZGVmaW5lIE1NQVBfSU5UQzEJKENGR19NQkFSICsgMHgwMDAwMEQwMCkKLSNkZWZpbmUgTU1BUF9JTlRDQUNLCShDRkdfTUJBUiArIDB4MDAwMDBGMDApCi0jZGVmaW5lIE1NQVBfRkVDMAkoQ0ZHX01CQVIgKyAweDAwMDAxMDAwKQotI2RlZmluZSBNTUFQX0ZFQzBGSUZPCShDRkdfTUJBUiArIDB4MDAwMDE0MDApCi0jZGVmaW5lIE1NQVBfRkVDMQkoQ0ZHX01CQVIgKyAweDAwMDAxODAwKQotI2RlZmluZSBNTUFQX0ZFQzFGSUZPCShDRkdfTUJBUiArIDB4MDAwMDFDMDApCi0jZGVmaW5lIE1NQVBfR1BJTwkoQ0ZHX01CQVIgKyAweDAwMTAwMDAwKQotI2RlZmluZSBNTUFQX1JDTQkoQ0ZHX01CQVIgKyAweDAwMTEwMDAwKQotI2RlZmluZSBNTUFQX0NDTQkoQ0ZHX01CQVIgKyAweDAwMTEwMDA0KQotI2RlZmluZSBNTUFQX1BMTAkoQ0ZHX01CQVIgKyAweDAwMTIwMDAwKQotI2RlZmluZSBNTUFQX0VQT1JUCShDRkdfTUJBUiArIDB4MDAxMzAwMDApCi0jZGVmaW5lIE1NQVBfV0RPRwkoQ0ZHX01CQVIgKyAweDAwMTQwMDAwKQotI2RlZmluZSBNTUFQX1BJVDAJKENGR19NQkFSICsgMHgwMDE1MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQxCShDRkdfTUJBUiArIDB4MDAxNjAwMDApCi0jZGVmaW5lIE1NQVBfUElUMgkoQ0ZHX01CQVIgKyAweDAwMTcwMDAwKQotI2RlZmluZSBNTUFQX1BJVDMJKENGR19NQkFSICsgMHgwMDE4MDAwMCkKLSNkZWZpbmUgTU1BUF9NREhBCShDRkdfTUJBUiArIDB4MDAxOTAwMDApCi0jZGVmaW5lIE1NQVBfUk5HCShDRkdfTUJBUiArIDB4MDAxQTAwMDApCi0jZGVmaW5lIE1NQVBfU0tIQQkoQ0ZHX01CQVIgKyAweDAwMUIwMDAwKQotI2RlZmluZSBNTUFQX1VTQgkoQ0ZHX01CQVIgKyAweDAwMUMwMDAwKQotI2RlZmluZSBNTUFQX1BXTTAJKENGR19NQkFSICsgMHgwMDFEMDAwMCkKKyNkZWZpbmUgTU1BUF9TQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwMDApCisjZGVmaW5lIE1NQVBfU0RSQU0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwNDApCisjZGVmaW5lIE1NQVBfRkJDUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDA4MCkKKyNkZWZpbmUgTU1BUF9ETUEwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTAwKQorI2RlZmluZSBNTUFQX0RNQTEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxMTApCisjZGVmaW5lIE1NQVBfRE1BMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDEyMCkKKyNkZWZpbmUgTU1BUF9ETUEzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTMwKQorI2RlZmluZSBNTUFQX1VBUlQwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjAwKQorI2RlZmluZSBNTUFQX1VBUlQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjQwKQorI2RlZmluZSBNTUFQX1VBUlQyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjgwKQorI2RlZmluZSBNTUFQX0kyQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDMwMCkKKyNkZWZpbmUgTU1BUF9RU1BJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMzQwKQorI2RlZmluZSBNTUFQX0RUTVIwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDAwKQorI2RlZmluZSBNTUFQX0RUTVIxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDQwKQorI2RlZmluZSBNTUFQX0RUTVIyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDgwKQorI2RlZmluZSBNTUFQX0RUTVIzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNEMwKQorI2RlZmluZSBNTUFQX0lOVEMwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQzAwKQorI2RlZmluZSBNTUFQX0lOVEMxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRDAwKQorI2RlZmluZSBNTUFQX0lOVENBQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBGMDApCisjZGVmaW5lIE1NQVBfRkVDMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMTAwMCkKKyNkZWZpbmUgTU1BUF9GRUMwRklGTwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMTQwMCkKKyNkZWZpbmUgTU1BUF9GRUMxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxODAwKQorI2RlZmluZSBNTUFQX0ZFQzFGSUZPCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxQzAwKQorI2RlZmluZSBNTUFQX0dQSU8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMDAwMDApCisjZGVmaW5lIE1NQVBfUkNNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTEwMDAwKQorI2RlZmluZSBNTUFQX0NDTQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDExMDAwNCkKKyNkZWZpbmUgTU1BUF9QTEwJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMjAwMDApCisjZGVmaW5lIE1NQVBfRVBPUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMzAwMDApCisjZGVmaW5lIE1NQVBfV0RPRwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE0MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTUwMDAwKQorI2RlZmluZSBNTUFQX1BJVDEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNjAwMDApCisjZGVmaW5lIE1NQVBfUElUMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE3MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTgwMDAwKQorI2RlZmluZSBNTUFQX01ESEEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxOTAwMDApCisjZGVmaW5lIE1NQVBfUk5HCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUEwMDAwKQorI2RlZmluZSBNTUFQX1NLSEEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxQjAwMDApCisjZGVmaW5lIE1NQVBfVVNCCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUMwMDAwKQorI2RlZmluZSBNTUFQX1BXTTAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxRDAwMDApCiAKIC8qIFN5c3RlbSBjb25maWd1cmF0aW9uIHJlZ2lzdGVycwogKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI4Mi5oIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81MjgyLmgKaW5kZXggZTgyOTYwYS4uZTk2NDYzYmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI4Mi5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTI4Mi5oCkBAIC0yNSw0MiArMjUsNDIgQEAKICNpZm5kZWYgX19JTU1BUF81MjgyX18KICNkZWZpbmUgX19JTU1BUF81MjgyX18KIAotI2RlZmluZSBNTUFQX1NDTQkoQ0ZHX01CQVIgKyAweDAwMDAwMDAwKQotI2RlZmluZSBNTUFQX1NEUkFNQwkoQ0ZHX01CQVIgKyAweDAwMDAwMDQwKQotI2RlZmluZSBNTUFQX0ZCQ1MJKENGR19NQkFSICsgMHgwMDAwMDA4MCkKLSNkZWZpbmUgTU1BUF9ETUEwCShDRkdfTUJBUiArIDB4MDAwMDAxMDApCi0jZGVmaW5lIE1NQVBfRE1BMQkoQ0ZHX01CQVIgKyAweDAwMDAwMTQwKQotI2RlZmluZSBNTUFQX0RNQTIJKENGR19NQkFSICsgMHgwMDAwMDE4MCkKLSNkZWZpbmUgTU1BUF9ETUEzCShDRkdfTUJBUiArIDB4MDAwMDAxQzApCi0jZGVmaW5lIE1NQVBfVUFSVDAJKENGR19NQkFSICsgMHgwMDAwMDIwMCkKLSNkZWZpbmUgTU1BUF9VQVJUMQkoQ0ZHX01CQVIgKyAweDAwMDAwMjQwKQotI2RlZmluZSBNTUFQX1VBUlQyCShDRkdfTUJBUiArIDB4MDAwMDAyODApCi0jZGVmaW5lIE1NQVBfSTJDCShDRkdfTUJBUiArIDB4MDAwMDAzMDApCi0jZGVmaW5lIE1NQVBfUVNQSQkoQ0ZHX01CQVIgKyAweDAwMDAwMzQwKQotI2RlZmluZSBNTUFQX0RUTVIwCShDRkdfTUJBUiArIDB4MDAwMDA0MDApCi0jZGVmaW5lIE1NQVBfRFRNUjEJKENGR19NQkFSICsgMHgwMDAwMDQ0MCkKLSNkZWZpbmUgTU1BUF9EVE1SMgkoQ0ZHX01CQVIgKyAweDAwMDAwNDgwKQotI2RlZmluZSBNTUFQX0RUTVIzCShDRkdfTUJBUiArIDB4MDAwMDA0QzApCi0jZGVmaW5lIE1NQVBfSU5UQzAJKENGR19NQkFSICsgMHgwMDAwMEMwMCkKLSNkZWZpbmUgTU1BUF9JTlRDMQkoQ0ZHX01CQVIgKyAweDAwMDAwRDAwKQotI2RlZmluZSBNTUFQX0lOVENBQ0sJKENGR19NQkFSICsgMHgwMDAwMEYwMCkKLSNkZWZpbmUgTU1BUF9GRUMJKENGR19NQkFSICsgMHgwMDAwMTAwMCkKLSNkZWZpbmUgTU1BUF9GRUNGSUZPCShDRkdfTUJBUiArIDB4MDAwMDE0MDApCi0jZGVmaW5lIE1NQVBfR1BJTwkoQ0ZHX01CQVIgKyAweDAwMTAwMDAwKQotI2RlZmluZSBNTUFQX0NDTQkoQ0ZHX01CQVIgKyAweDAwMTEwMDAwKQotI2RlZmluZSBNTUFQX1BMTAkoQ0ZHX01CQVIgKyAweDAwMTIwMDAwKQotI2RlZmluZSBNTUFQX0VQT1JUCShDRkdfTUJBUiArIDB4MDAxMzAwMDApCi0jZGVmaW5lIE1NQVBfV0RPRwkoQ0ZHX01CQVIgKyAweDAwMTQwMDAwKQotI2RlZmluZSBNTUFQX1BJVDAJKENGR19NQkFSICsgMHgwMDE1MDAwMCkKLSNkZWZpbmUgTU1BUF9QSVQxCShDRkdfTUJBUiArIDB4MDAxNjAwMDApCi0jZGVmaW5lIE1NQVBfUElUMgkoQ0ZHX01CQVIgKyAweDAwMTcwMDAwKQotI2RlZmluZSBNTUFQX1BJVDMJKENGR19NQkFSICsgMHgwMDE4MDAwMCkKLSNkZWZpbmUgTU1BUF9RQURDCShDRkdfTUJBUiArIDB4MDAxOTAwMDApCi0jZGVmaW5lIE1NQVBfR1BUTVJBCShDRkdfTUJBUiArIDB4MDAxQTAwMDApCi0jZGVmaW5lIE1NQVBfR1BUTVJCCShDRkdfTUJBUiArIDB4MDAxQjAwMDApCi0jZGVmaW5lIE1NQVBfQ0FOCShDRkdfTUJBUiArIDB4MDAxQzAwMDApCi0jZGVmaW5lIE1NQVBfQ0ZNQwkoQ0ZHX01CQVIgKyAweDAwMUQwMDAwKQotI2RlZmluZSBNTUFQX0NGTU1FTQkoQ0ZHX01CQVIgKyAweDA0MDAwMDAwKQorI2RlZmluZSBNTUFQX1NDTQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDAwMCkKKyNkZWZpbmUgTU1BUF9TRFJBTUMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAwNDApCisjZGVmaW5lIE1NQVBfRkJDUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDA4MCkKKyNkZWZpbmUgTU1BUF9ETUEwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTAwKQorI2RlZmluZSBNTUFQX0RNQTEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxNDApCisjZGVmaW5lIE1NQVBfRE1BMgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDE4MCkKKyNkZWZpbmUgTU1BUF9ETUEzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMUMwKQorI2RlZmluZSBNTUFQX1VBUlQwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjAwKQorI2RlZmluZSBNTUFQX1VBUlQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjQwKQorI2RlZmluZSBNTUFQX1VBUlQyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMjgwKQorI2RlZmluZSBNTUFQX0kyQwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDMwMCkKKyNkZWZpbmUgTU1BUF9RU1BJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMzQwKQorI2RlZmluZSBNTUFQX0RUTVIwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDAwKQorI2RlZmluZSBNTUFQX0RUTVIxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDQwKQorI2RlZmluZSBNTUFQX0RUTVIyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNDgwKQorI2RlZmluZSBNTUFQX0RUTVIzCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNEMwKQorI2RlZmluZSBNTUFQX0lOVEMwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQzAwKQorI2RlZmluZSBNTUFQX0lOVEMxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwRDAwKQorI2RlZmluZSBNTUFQX0lOVENBQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBGMDApCisjZGVmaW5lIE1NQVBfRkVDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAxMDAwKQorI2RlZmluZSBNTUFQX0ZFQ0ZJRk8JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDE0MDApCisjZGVmaW5lIE1NQVBfR1BJTwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEwMDAwMCkKKyNkZWZpbmUgTU1BUF9DQ00JKENPTkZJR19TWVNfTUJBUiArIDB4MDAxMTAwMDApCisjZGVmaW5lIE1NQVBfUExMCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTIwMDAwKQorI2RlZmluZSBNTUFQX0VQT1JUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTMwMDAwKQorI2RlZmluZSBNTUFQX1dET0cJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNDAwMDApCisjZGVmaW5lIE1NQVBfUElUMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE1MDAwMCkKKyNkZWZpbmUgTU1BUF9QSVQxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTYwMDAwKQorI2RlZmluZSBNTUFQX1BJVDIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxNzAwMDApCisjZGVmaW5lIE1NQVBfUElUMwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE4MDAwMCkKKyNkZWZpbmUgTU1BUF9RQURDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTkwMDAwKQorI2RlZmluZSBNTUFQX0dQVE1SQQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDFBMDAwMCkKKyNkZWZpbmUgTU1BUF9HUFRNUkIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxQjAwMDApCisjZGVmaW5lIE1NQVBfQ0FOCShDT05GSUdfU1lTX01CQVIgKyAweDAwMUMwMDAwKQorI2RlZmluZSBNTUFQX0NGTUMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAxRDAwMDApCisjZGVmaW5lIE1NQVBfQ0ZNTUVNCShDT05GSUdfU1lTX01CQVIgKyAweDA0MDAwMDAwKQogCiAvKiBTeXN0ZW0gQ29udHJvbCBNb2R1bGUgKi8KIHR5cGVkZWYgc3RydWN0IHNjbV9jdHJsIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW02OGsvaW1tYXBfNTQ3eF84eC5oIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81NDd4Xzh4LmgKaW5kZXggNTRlZjQwZi4uYzIyMTkzNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81NDd4Xzh4LmgKKysrIGIvaW5jbHVkZS9hc20tbTY4ay9pbW1hcF81NDd4Xzh4LmgKQEAgLTI2LDM2ICsyNiwzNiBAQAogI2lmbmRlZiBfX0lNTUFQXzU0N3hfOHhfXwogI2RlZmluZSBfX0lNTUFQXzU0N3hfOHhfXwogCi0jZGVmaW5lIE1NQVBfU0lVCShDRkdfTUJBUiArIDB4MDAwMDAwMDApCi0jZGVmaW5lIE1NQVBfU0RSQU0JKENGR19NQkFSICsgMHgwMDAwMDEwMCkKLSNkZWZpbmUgTU1BUF9YQVJCCShDRkdfTUJBUiArIDB4MDAwMDAyNDApCi0jZGVmaW5lIE1NQVBfRkJDUwkoQ0ZHX01CQVIgKyAweDAwMDAwNTAwKQotI2RlZmluZSBNTUFQX0lOVEMwCShDRkdfTUJBUiArIDB4MDAwMDA3MDApCi0jZGVmaW5lIE1NQVBfR1BUTVIJKENGR19NQkFSICsgMHgwMDAwMDgwMCkKLSNkZWZpbmUgTU1BUF9TTFQwCShDRkdfTUJBUiArIDB4MDAwMDA5MDApCi0jZGVmaW5lIE1NQVBfU0xUMQkoQ0ZHX01CQVIgKyAweDAwMDAwOTEwKQotI2RlZmluZSBNTUFQX0dQSU8JKENGR19NQkFSICsgMHgwMDAwMEEwMCkKLSNkZWZpbmUgTU1BUF9QQ0kJKENGR19NQkFSICsgMHgwMDAwMEIwMCkKLSNkZWZpbmUgTU1BUF9QQ0lBUkIJKENGR19NQkFSICsgMHgwMDAwMEMwMCkKLSNkZWZpbmUgTU1BUF9FWFRETUEJKENGR19NQkFSICsgMHgwMDAwMEQwMCkKLSNkZWZpbmUgTU1BUF9FUE9SVAkoQ0ZHX01CQVIgKyAweDAwMDAwRjAwKQotI2RlZmluZSBNTUFQX0NUTQkoQ0ZHX01CQVIgKyAweDAwMDA3RjAwKQotI2RlZmluZSBNTUFQX01DRE1BCShDRkdfTUJBUiArIDB4MDAwMDgwMDApCi0jZGVmaW5lIE1NQVBfU0NQQ0kJKENGR19NQkFSICsgMHgwMDAwODQwMCkKLSNkZWZpbmUgTU1BUF9VQVJUMAkoQ0ZHX01CQVIgKyAweDAwMDA4NjAwKQotI2RlZmluZSBNTUFQX1VBUlQxCShDRkdfTUJBUiArIDB4MDAwMDg3MDApCi0jZGVmaW5lIE1NQVBfVUFSVDIJKENGR19NQkFSICsgMHgwMDAwODgwMCkKLSNkZWZpbmUgTU1BUF9VQVJUMwkoQ0ZHX01CQVIgKyAweDAwMDA4OTAwKQotI2RlZmluZSBNTUFQX0RTUEkJKENGR19NQkFSICsgMHgwMDAwOEEwMCkKLSNkZWZpbmUgTU1BUF9JMkMJKENGR19NQkFSICsgMHgwMDAwOEYwMCkKLSNkZWZpbmUgTU1BUF9GRUMwCShDRkdfTUJBUiArIDB4MDAwMDkwMDApCi0jZGVmaW5lIE1NQVBfRkVDMQkoQ0ZHX01CQVIgKyAweDAwMDA5ODAwKQotI2RlZmluZSBNTUFQX0NBTjAJKENGR19NQkFSICsgMHgwMDAwQTAwMCkKLSNkZWZpbmUgTU1BUF9DQU4xCShDRkdfTUJBUiArIDB4MDAwMEE4MDApCi0jZGVmaW5lIE1NQVBfVVNCRAkoQ0ZHX01CQVIgKyAweDAwMDBCMDAwKQotI2RlZmluZSBNTUFQX1NSQU0JKENGR19NQkFSICsgMHgwMDAxMDAwMCkKLSNkZWZpbmUgTU1BUF9TUkFNQ0ZHCShDRkdfTUJBUiArIDB4MDAwMUZGMDApCi0jZGVmaW5lIE1NQVBfU0VDCShDRkdfTUJBUiArIDB4MDAwMjAwMDApCisjZGVmaW5lIE1NQVBfU0lVCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDAwKQorI2RlZmluZSBNTUFQX1NEUkFNCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMTAwKQorI2RlZmluZSBNTUFQX1hBUkIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAyNDApCisjZGVmaW5lIE1NQVBfRkJDUwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDUwMCkKKyNkZWZpbmUgTU1BUF9JTlRDMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDcwMCkKKyNkZWZpbmUgTU1BUF9HUFRNUgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDgwMCkKKyNkZWZpbmUgTU1BUF9TTFQwCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwOTAwKQorI2RlZmluZSBNTUFQX1NMVDEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA5MTApCisjZGVmaW5lIE1NQVBfR1BJTwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEEwMCkKKyNkZWZpbmUgTU1BUF9QQ0kJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBCMDApCisjZGVmaW5lIE1NQVBfUENJQVJCCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQzAwKQorI2RlZmluZSBNTUFQX0VYVERNQQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEQwMCkKKyNkZWZpbmUgTU1BUF9FUE9SVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMEYwMCkKKyNkZWZpbmUgTU1BUF9DVE0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDdGMDApCisjZGVmaW5lIE1NQVBfTUNETUEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDgwMDApCisjZGVmaW5lIE1NQVBfU0NQQ0kJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDg0MDApCisjZGVmaW5lIE1NQVBfVUFSVDAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDg2MDApCisjZGVmaW5lIE1NQVBfVUFSVDEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDg3MDApCisjZGVmaW5lIE1NQVBfVUFSVDIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDg4MDApCisjZGVmaW5lIE1NQVBfVUFSVDMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDg5MDApCisjZGVmaW5lIE1NQVBfRFNQSQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwOEEwMCkKKyNkZWZpbmUgTU1BUF9JMkMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDhGMDApCisjZGVmaW5lIE1NQVBfRkVDMAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwOTAwMCkKKyNkZWZpbmUgTU1BUF9GRUMxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA5ODAwKQorI2RlZmluZSBNTUFQX0NBTjAJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMEEwMDApCisjZGVmaW5lIE1NQVBfQ0FOMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwQTgwMCkKKyNkZWZpbmUgTU1BUF9VU0JECShDT05GSUdfU1lTX01CQVIgKyAweDAwMDBCMDAwKQorI2RlZmluZSBNTUFQX1NSQU0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMTAwMDApCisjZGVmaW5lIE1NQVBfU1JBTUNGRwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAxRkYwMCkKKyNkZWZpbmUgTU1BUF9TRUMJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMjAwMDApCiAKICNpbmNsdWRlIDxhc20vY29sZGZpcmUvZmxleGJ1cy5oPgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL201MjQ5LmggYi9pbmNsdWRlL2FzbS1tNjhrL201MjQ5LmgKaW5kZXggZmFjZjBjOS4uZmViNjc1YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9tNTI0OS5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvbTUyNDkuaApAQCAtMzEsMTQgKzMxLDE0IEBACiAvKgogICogdXNlZnVsIGRlZmluaXRpb25zIGZvciByZWFkaW5nL3dyaXRpbmcgTUJBUiBvZmZzZXQgbWVtb3J5CiAgKi8KLSNkZWZpbmUgbWJhcl9yZWFkTG9uZyh4KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIChDRkdfTUJBUiArIHgpKQotI2RlZmluZSBtYmFyX3dyaXRlTG9uZyh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKENGR19NQkFSICsgeCkpID0geQotI2RlZmluZSBtYmFyX3dyaXRlU2hvcnQoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSAoQ0ZHX01CQVIgKyB4KSkgPSB5Ci0jZGVmaW5lIG1iYXJfd3JpdGVCeXRlKHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKSAoQ0ZHX01CQVIgKyB4KSkgPSB5Ci0jZGVmaW5lIG1iYXIyX3JlYWRMb25nKHgpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKENGR19NQkFSMiArIHgpKQotI2RlZmluZSBtYmFyMl93cml0ZUxvbmcoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIChDRkdfTUJBUjIgKyB4KSkgPSB5Ci0jZGVmaW5lIG1iYXIyX3dyaXRlU2hvcnQoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSAoQ0ZHX01CQVIyICsgeCkpID0geQotI2RlZmluZSBtYmFyMl93cml0ZUJ5dGUoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopIChDRkdfTUJBUjIgKyB4KSkgPSB5CisjZGVmaW5lIG1iYXJfcmVhZExvbmcoeCkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSICsgeCkpCisjZGVmaW5lIG1iYXJfd3JpdGVMb25nKHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSICsgeCkpID0geQorI2RlZmluZSBtYmFyX3dyaXRlU2hvcnQoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSAoQ09ORklHX1NZU19NQkFSICsgeCkpID0geQorI2RlZmluZSBtYmFyX3dyaXRlQnl0ZSh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKSA9IHkKKyNkZWZpbmUgbWJhcjJfcmVhZExvbmcoeCkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSMiArIHgpKQorI2RlZmluZSBtYmFyMl93cml0ZUxvbmcoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIChDT05GSUdfU1lTX01CQVIyICsgeCkpID0geQorI2RlZmluZSBtYmFyMl93cml0ZVNob3J0KHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgKENPTkZJR19TWVNfTUJBUjIgKyB4KSkgPSB5CisjZGVmaW5lIG1iYXIyX3dyaXRlQnl0ZSh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfTUJBUjIgKyB4KSkgPSB5CiAKIC8qCiAgKiBTaXplIG9mIGludGVybmFsIFJBTQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbTY4ay9tNTI3MS5oIGIvaW5jbHVkZS9hc20tbTY4ay9tNTI3MS5oCmluZGV4IGJlMzQzOTguLjAwMGYwYTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW02OGsvbTUyNzEuaAorKysgYi9pbmNsdWRlL2FzbS1tNjhrL201MjcxLmgKQEAgLTI4LDEyICsyOCwxMiBAQAogI2lmbmRlZglfTUNGNTI3MV9IXwogI2RlZmluZQlfTUNGNTI3MV9IXwogCi0jZGVmaW5lIG1iYXJfcmVhZExvbmcoeCkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ0ZHX01CQVIgKyB4KSkKLSNkZWZpbmUgbWJhcl9yZWFkU2hvcnQoeCkJKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgKENGR19NQkFSICsgeCkpCi0jZGVmaW5lIG1iYXJfcmVhZEJ5dGUoeCkJKigodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKSAoQ0ZHX01CQVIgKyB4KSkKLSNkZWZpbmUgbWJhcl93cml0ZUxvbmcoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBsb25nICopIChDRkdfTUJBUiArIHgpKSA9IHkKLSNkZWZpbmUgbWJhcl93cml0ZVNob3J0KHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgKENGR19NQkFSICsgeCkpID0geQotI2RlZmluZSBtYmFyX3dyaXRlQnl0ZSh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENGR19NQkFSICsgeCkpID0geQorI2RlZmluZSBtYmFyX3JlYWRMb25nKHgpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKQorI2RlZmluZSBtYmFyX3JlYWRTaG9ydCh4KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSAoQ09ORklHX1NZU19NQkFSICsgeCkpCisjZGVmaW5lIG1iYXJfcmVhZEJ5dGUoeCkJKigodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKSAoQ09ORklHX1NZU19NQkFSICsgeCkpCisjZGVmaW5lIG1iYXJfd3JpdGVMb25nKHgseSkJKigodm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSICsgeCkpID0geQorI2RlZmluZSBtYmFyX3dyaXRlU2hvcnQoeCx5KQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSAoQ09ORklHX1NZU19NQkFSICsgeCkpID0geQorI2RlZmluZSBtYmFyX3dyaXRlQnl0ZSh4LHkpCSooKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikgKENPTkZJR19TWVNfTUJBUiArIHgpKSA9IHkKIAogI2RlZmluZSBNQ0ZfRk1QTExfU1lOQ1IJCQkJMHgxMjAwMDAKICNkZWZpbmUgTUNGX0ZNUExMX1NZTlNSCQkJCTB4MTIwMDA0CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL201MjgyLmggYi9pbmNsdWRlL2FzbS1tNjhrL201MjgyLmgKaW5kZXggZjZhNmIwNC4uNzcyYzdlMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbTY4ay9tNTI4Mi5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvbTUyODIuaApAQCAtMTI1LDExMiArMTI1LDExMiBAQAogCiAvKiBHZW5lcmFsIFB1cnBvc2UgSS9PIE1vZHVsZSBHUElPICovCiAKLSNkZWZpbmUgTUNGR1BJT19QT1JUQQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMDApKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRCCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwMSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDAyKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JURAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMDMpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRFCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwNCkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEYJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDA1KSkKLSNkZWZpbmUgTUNGR1BJT19QT1JURwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMDYpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRICQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAwNykpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEoJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDA4KSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUREQJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDA5KSkKLSNkZWZpbmUgTUNGR1BJT19QT1JURUgJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDBBKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JURUwJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDBCKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUQVMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDBDKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUUVMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDBEKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUU0QJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDBFKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUVEMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDBGKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUVEQJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDEwKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUVUEJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDExKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUQQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDAwKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUQgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDAxKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUQwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDAyKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDAzKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDA0KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDA1KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDA2KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUSAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDA3KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUSgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDA4KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUREQJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwOSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEVICQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMEEpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRFTAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDBCKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUQVMJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwQykpCisjZGVmaW5lIE1DRkdQSU9fUE9SVFFTCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMEQpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRTRAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDBFKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUVEMJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAwRikpCisjZGVmaW5lIE1DRkdQSU9fUE9SVFRECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMTApKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRVQQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDExKSkKIAotI2RlZmluZSBNQ0ZHUElPX0REUkEJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDE0KSkKLSNkZWZpbmUgTUNGR1BJT19ERFJCCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxNSkpCi0jZGVmaW5lIE1DRkdQSU9fRERSQwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMTYpKQotI2RlZmluZSBNQ0ZHUElPX0REUkQJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDE3KSkKLSNkZWZpbmUgTUNGR1BJT19ERFJFCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxOCkpCi0jZGVmaW5lIE1DRkdQSU9fRERSRgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMTkpKQotI2RlZmluZSBNQ0ZHUElPX0REUkcJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDFBKSkKLSNkZWZpbmUgTUNGR1BJT19ERFJICQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxQikpCi0jZGVmaW5lIE1DRkdQSU9fRERSSgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMUMpKQotI2RlZmluZSBNQ0ZHUElPX0REUkRECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAxRCkpCi0jZGVmaW5lIE1DRkdQSU9fRERSRUgJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDFFKSkKLSNkZWZpbmUgTUNGR1BJT19ERFJFTAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMUYpKQotI2RlZmluZSBNQ0ZHUElPX0REUkFTCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyMCkpCi0jZGVmaW5lIE1DRkdQSU9fRERSUVMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDIxKSkKLSNkZWZpbmUgTUNGR1BJT19ERFJTRAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMjIpKQotI2RlZmluZSBNQ0ZHUElPX0REUlRDCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyMykpCi0jZGVmaW5lIE1DRkdQSU9fRERSVEQJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDI0KSkKLSNkZWZpbmUgTUNGR1BJT19ERFJVQQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMjUpKQorI2RlZmluZSBNQ0ZHUElPX0REUkEJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAxNCkpCisjZGVmaW5lIE1DRkdQSU9fRERSQgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDE1KSkKKyNkZWZpbmUgTUNGR1BJT19ERFJDCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMTYpKQorI2RlZmluZSBNQ0ZHUElPX0REUkQJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAxNykpCisjZGVmaW5lIE1DRkdQSU9fRERSRQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDE4KSkKKyNkZWZpbmUgTUNGR1BJT19ERFJGCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMTkpKQorI2RlZmluZSBNQ0ZHUElPX0REUkcJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAxQSkpCisjZGVmaW5lIE1DRkdQSU9fRERSSAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDFCKSkKKyNkZWZpbmUgTUNGR1BJT19ERFJKCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMUMpKQorI2RlZmluZSBNQ0ZHUElPX0REUkRECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMUQpKQorI2RlZmluZSBNQ0ZHUElPX0REUkVICQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMUUpKQorI2RlZmluZSBNQ0ZHUElPX0REUkVMCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMUYpKQorI2RlZmluZSBNQ0ZHUElPX0REUkFTCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjApKQorI2RlZmluZSBNQ0ZHUElPX0REUlFTCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjEpKQorI2RlZmluZSBNQ0ZHUElPX0REUlNECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjIpKQorI2RlZmluZSBNQ0ZHUElPX0REUlRDCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjMpKQorI2RlZmluZSBNQ0ZHUElPX0REUlRECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjQpKQorI2RlZmluZSBNQ0ZHUElPX0REUlVBCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjUpKQogCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEFQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyOCkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEJQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyOSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVENQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyQSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVERQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyQikpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEVQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyQykpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEZQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyRCkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEdQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyRSkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEhQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyRikpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEpQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzMCkpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEREUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzEpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRFSFAJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDMyKSkKLSNkZWZpbmUgTUNGR1BJT19QT1JURUxQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzMykpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVEFTUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzQpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRRU1AJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDM1KSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUU0RQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzNikpCi0jZGVmaW5lIE1DRkdQSU9fUE9SVFRDUAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzcpKQotI2RlZmluZSBNQ0ZHUElPX1BPUlRURFAJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDM4KSkKLSNkZWZpbmUgTUNGR1BJT19QT1JUVUFQCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzOSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEFQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjgpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRCUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDI5KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUQ1AJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyQSkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVERQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMkIpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRFUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDJDKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURlAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyRCkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEdQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMkUpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRIUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDJGKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUSlAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzMCkpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEREUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDMxKSkKKyNkZWZpbmUgTUNGR1BJT19QT1JURUhQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMzIpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRFTFAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzMykpCisjZGVmaW5lIE1DRkdQSU9fUE9SVEFTUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM0KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUUVNQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMzUpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRTRFAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzNikpCisjZGVmaW5lIE1DRkdQSU9fUE9SVFRDUAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM3KSkKKyNkZWZpbmUgTUNGR1BJT19QT1JUVERQCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMzgpKQorI2RlZmluZSBNQ0ZHUElPX1BPUlRVQVAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzOSkpCiAKLSNkZWZpbmUgTUNGR1BJT19TRVRBCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyOCkpCi0jZGVmaW5lIE1DRkdQSU9fU0VUQgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMjkpKQotI2RlZmluZSBNQ0ZHUElPX1NFVEMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDJBKSkKLSNkZWZpbmUgTUNGR1BJT19TRVRECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyQikpCi0jZGVmaW5lIE1DRkdQSU9fU0VURQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkMpKQotI2RlZmluZSBNQ0ZHUElPX1NFVEYJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDJEKSkKLSNkZWZpbmUgTUNGR1BJT19TRVRHCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAyRSkpCi0jZGVmaW5lIE1DRkdQSU9fU0VUSAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMkYpKQotI2RlZmluZSBNQ0ZHUElPX1NFVEoJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDMwKSkKLSNkZWZpbmUgTUNGR1BJT19TRVRERAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzEpKQotI2RlZmluZSBNQ0ZHUElPX1NFVEVICQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzMikpCi0jZGVmaW5lIE1DRkdQSU9fU0VURUwJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDMzKSkKLSNkZWZpbmUgTUNGR1BJT19TRVRBUwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzQpKQotI2RlZmluZSBNQ0ZHUElPX1NFVFFTCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzNSkpCi0jZGVmaW5lIE1DRkdQSU9fU0VUU0QJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDM2KSkKLSNkZWZpbmUgTUNGR1BJT19TRVRUQwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwMzcpKQotI2RlZmluZSBNQ0ZHUElPX1NFVFRECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzOCkpCi0jZGVmaW5lIE1DRkdQSU9fU0VUVUEJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDM5KSkKKyNkZWZpbmUgTUNGR1BJT19TRVRBCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMjgpKQorI2RlZmluZSBNQ0ZHUElPX1NFVEIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyOSkpCisjZGVmaW5lIE1DRkdQSU9fU0VUQwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDJBKSkKKyNkZWZpbmUgTUNGR1BJT19TRVRECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMkIpKQorI2RlZmluZSBNQ0ZHUElPX1NFVEUJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyQykpCisjZGVmaW5lIE1DRkdQSU9fU0VURgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDJEKSkKKyNkZWZpbmUgTUNGR1BJT19TRVRHCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwMkUpKQorI2RlZmluZSBNQ0ZHUElPX1NFVEgJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAyRikpCisjZGVmaW5lIE1DRkdQSU9fU0VUSgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDMwKSkKKyNkZWZpbmUgTUNGR1BJT19TRVRERAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDMxKSkKKyNkZWZpbmUgTUNGR1BJT19TRVRFSAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDMyKSkKKyNkZWZpbmUgTUNGR1BJT19TRVRFTAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDMzKSkKKyNkZWZpbmUgTUNGR1BJT19TRVRBUwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM0KSkKKyNkZWZpbmUgTUNGR1BJT19TRVRRUwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM1KSkKKyNkZWZpbmUgTUNGR1BJT19TRVRTRAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM2KSkKKyNkZWZpbmUgTUNGR1BJT19TRVRUQwkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM3KSkKKyNkZWZpbmUgTUNGR1BJT19TRVRURAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM4KSkKKyNkZWZpbmUgTUNGR1BJT19TRVRVQQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDM5KSkKIAotI2RlZmluZSBNQ0ZHUElPX0NMUkEJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDNDKSkKLSNkZWZpbmUgTUNGR1BJT19DTFJCCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDAzRCkpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSQwkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwM0UpKQotI2RlZmluZSBNQ0ZHUElPX0NMUkQJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDNGKSkKLSNkZWZpbmUgTUNGR1BJT19DTFJFCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0MCkpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSRgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNDEpKQotI2RlZmluZSBNQ0ZHUElPX0NMUkcJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDQyKSkKLSNkZWZpbmUgTUNGR1BJT19DTFJICQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0MykpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSSgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNDQpKQotI2RlZmluZSBNQ0ZHUElPX0NMUkRECQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0NSkpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSRUgJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDQ2KSkKLSNkZWZpbmUgTUNGR1BJT19DTFJFTAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNDcpKQotI2RlZmluZSBNQ0ZHUElPX0NMUkFTCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0OCkpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSUVMJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDQ5KSkKLSNkZWZpbmUgTUNGR1BJT19DTFJTRAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNEEpKQotI2RlZmluZSBNQ0ZHUElPX0NMUlRDCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA0QikpCi0jZGVmaW5lIE1DRkdQSU9fQ0xSVEQJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDRDKSkKLSNkZWZpbmUgTUNGR1BJT19DTFJVQQkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNEQpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkEJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzQykpCisjZGVmaW5lIE1DRkdQSU9fQ0xSQgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDNEKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJDCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwM0UpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkQJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDAzRikpCisjZGVmaW5lIE1DRkdQSU9fQ0xSRQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQwKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJGCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNDEpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkcJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA0MikpCisjZGVmaW5lIE1DRkdQSU9fQ0xSSAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDQzKSkKKyNkZWZpbmUgTUNGR1BJT19DTFJKCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNDQpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkRECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNDUpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkVICQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNDYpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkVMCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNDcpKQorI2RlZmluZSBNQ0ZHUElPX0NMUkFTCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNDgpKQorI2RlZmluZSBNQ0ZHUElPX0NMUlFTCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNDkpKQorI2RlZmluZSBNQ0ZHUElPX0NMUlNECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNEEpKQorI2RlZmluZSBNQ0ZHUElPX0NMUlRDCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNEIpKQorI2RlZmluZSBNQ0ZHUElPX0NMUlRECQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNEMpKQorI2RlZmluZSBNQ0ZHUElPX0NMUlVBCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNEQpKQogCi0jZGVmaW5lIE1DRkdQSU9fUEJDRFBBUgkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA1MCkpCi0jZGVmaW5lIE1DRkdQSU9fUEZQQVIJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTAwMDUxKSkKLSNkZWZpbmUgTUNGR1BJT19QRVBBUgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxMDAwNTIpKQotI2RlZmluZSBNQ0ZHUElPX1BKUEFSCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA1NCkpCi0jZGVmaW5lIE1DRkdQSU9fUFNEUEFSCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDEwMDA1NSkpCi0jZGVmaW5lIE1DRkdQSU9fUEFTUEFSCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDEwMDA1NikpCi0jZGVmaW5lIE1DRkdQSU9fUEVITFBBUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNTgpKQotI2RlZmluZSBNQ0ZHUElPX1BRU1BBUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNTkpKQotI2RlZmluZSBNQ0ZHUElPX1BUQ1BBUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNUEpKQotI2RlZmluZSBNQ0ZHUElPX1BURFBBUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNUIpKQotI2RlZmluZSBNQ0ZHUElPX1BVQVBBUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgxMDAwNUMpKQorI2RlZmluZSBNQ0ZHUElPX1BCQ0RQQVIJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDUwKSkKKyNkZWZpbmUgTUNGR1BJT19QRlBBUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDUxKSkKKyNkZWZpbmUgTUNGR1BJT19QRVBBUgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MTAwMDUyKSkKKyNkZWZpbmUgTUNGR1BJT19QSlBBUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDU0KSkKKyNkZWZpbmUgTUNGR1BJT19QU0RQQVIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA1NSkpCisjZGVmaW5lIE1DRkdQSU9fUEFTUEFSCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxMDAwNTYpKQorI2RlZmluZSBNQ0ZHUElPX1BFSExQQVIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA1OCkpCisjZGVmaW5lIE1DRkdQSU9fUFFTUEFSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNTkpKQorI2RlZmluZSBNQ0ZHUElPX1BUQ1BBUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MTAwMDVBKSkKKyNkZWZpbmUgTUNGR1BJT19QVERQQVIJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDEwMDA1QikpCisjZGVmaW5lIE1DRkdQSU9fUFVBUEFSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMDAwNUMpKQogCiAvKiBCaXQgbGV2ZWwgZGVmaW5pdGlvbnMgYW5kIG1hY3JvcyAqLwogI2RlZmluZSBNQ0ZHUElPX1BPUlQ3CQkJKDB4ODApCkBAIC0zMjcsMjUgKzMyNywyNSBAQAogCiAvKiBTeXN0ZW0gQ29ucm9sIE1vZHVsZSBTQ00gKi8KIAotI2RlZmluZSBNQ0ZTQ01fUkFNQkFSCQkoKih2dV9sb25nICopIChDRkdfTUJBUisweDAwMDAwMDA4KSkKLSNkZWZpbmUgTUNGU0NNX0NSU1IJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MDAwMDAwMTApKQotI2RlZmluZSBNQ0ZTQ01fQ1dDUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAxMSkpCi0jZGVmaW5lIE1DRlNDTV9MUElDUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAxMikpCi0jZGVmaW5lIE1DRlNDTV9DV1NSCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDEzKSkKKyNkZWZpbmUgTUNGU0NNX1JBTUJBUgkJKCoodnVfbG9uZyAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMDgpKQorI2RlZmluZSBNQ0ZTQ01fQ1JTUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMTApKQorI2RlZmluZSBNQ0ZTQ01fQ1dDUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMTEpKQorI2RlZmluZSBNQ0ZTQ01fTFBJQ1IJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDEyKSkKKyNkZWZpbmUgTUNGU0NNX0NXU1IJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDEzKSkKIAotI2RlZmluZSBNQ0ZTQ01fTVBBUksJCSgqKHZ1X2xvbmcgKikgKENGR19NQkFSKzB4MDAwMDAwMUMpKQotI2RlZmluZSBNQ0ZTQ01fTVBSCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDIwKSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1IwCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDI0KSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1IxCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDI1KSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1IyCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDI2KSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1IzCQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDI3KSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1I0CQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDI4KSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1I1CQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDJBKSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1I2CQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDJCKSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1I3CQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDJDKSkKLSNkZWZpbmUgTUNGU0NNX1BBQ1I4CQkoKih2dV9jaGFyICopIChDRkdfTUJBUisweDAwMDAwMDJFKSkKLSNkZWZpbmUgTUNGU0NNX0dQQUNSMAkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDAwMDAzMCkpCi0jZGVmaW5lIE1DRlNDTV9HUEFDUjEJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MDAwMDAwMzEpKQorI2RlZmluZSBNQ0ZTQ01fTVBBUksJCSgqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDFDKSkKKyNkZWZpbmUgTUNGU0NNX01QUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMjApKQorI2RlZmluZSBNQ0ZTQ01fUEFDUjAJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDI0KSkKKyNkZWZpbmUgTUNGU0NNX1BBQ1IxCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAyNSkpCisjZGVmaW5lIE1DRlNDTV9QQUNSMgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMjYpKQorI2RlZmluZSBNQ0ZTQ01fUEFDUjMJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDI3KSkKKyNkZWZpbmUgTUNGU0NNX1BBQ1I0CQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAyOCkpCisjZGVmaW5lIE1DRlNDTV9QQUNSNQkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMkEpKQorI2RlZmluZSBNQ0ZTQ01fUEFDUjYJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDJCKSkKKyNkZWZpbmUgTUNGU0NNX1BBQ1I3CQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAyQykpCisjZGVmaW5lIE1DRlNDTV9QQUNSOAkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwMkUpKQorI2RlZmluZSBNQ0ZTQ01fR1BBQ1IwCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDAzMCkpCisjZGVmaW5lIE1DRlNDTV9HUEFDUjEJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDMxKSkKIAogI2RlZmluZSBNQ0ZTQ01fQ1JTUl9FWFQJCSgweDgwKQogI2RlZmluZSBNQ0ZTQ01fQ1JTUl9DV0RSCSgweDIwKQpAQCAtMzU0LDggKzM1NCw4IEBACiAKIC8qIFJlc2V0IENvbnRyb2xsZXIgTW9kdWxlIFJDTSAqLwogCi0jZGVmaW5lIE1DRlJFU0VUX1JDUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDExMDAwMCkpCi0jZGVmaW5lIE1DRlJFU0VUX1JTUgkJKCoodnVfY2hhciAqKSAoQ0ZHX01CQVIrMHgwMDExMDAwMSkpCisjZGVmaW5lIE1DRlJFU0VUX1JDUgkJKCoodnVfY2hhciAqKSAoQ09ORklHX1NZU19NQkFSKzB4MDAxMTAwMDApKQorI2RlZmluZSBNQ0ZSRVNFVF9SU1IJCSgqKHZ1X2NoYXIgKikgKENPTkZJR19TWVNfTUJBUisweDAwMTEwMDAxKSkKIAogI2RlZmluZSBNQ0ZSRVNFVF9SQ1JfU09GVFJTVAkoMHg4MCkKICNkZWZpbmUgTUNGUkVTRVRfUkNSX0ZSQ1JTVE9VVAkoMHg0MCkKQEAgLTM3Nyw5ICszNzcsOSBAQAogCiAvKiBDaGlwIENvbmZpZ3VyYXRpb24gTW9kdWxlIENDTSAqLwogCi0jZGVmaW5lIE1DRkNDTV9DQ1IJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAxMTAwMDQpKQotI2RlZmluZSBNQ0ZDQ01fUkNPTgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDExMDAwOCkpCi0jZGVmaW5lIE1DRkNDTV9DSVIJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAxMTAwMEEpKQorI2RlZmluZSBNQ0ZDQ01fQ0NSCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDExMDAwNCkpCisjZGVmaW5lIE1DRkNDTV9SQ09OCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDExMDAwOCkpCisjZGVmaW5lIE1DRkNDTV9DSVIJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDAwMTEwMDBBKSkKIAogLyogQml0IGxldmVsIGRlZmluaXRpb25zIGFuZCBtYWNyb3MgKi8KICNkZWZpbmUgTUNGQ0NNX0NDUl9MT0FECQkoMHg4MDAwKQpAQCAtMzk0LDE4ICszOTQsMTggQEAKIAogLyogQ2xvY2sgTW9kdWxlICovCiAKLSNkZWZpbmUgTUNGQ0xPQ0tfU1lOQ1IJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MTIwMDAwKSkKLSNkZWZpbmUgTUNGQ0xPQ0tfU1lOU1IJCSgqKHZ1X2NoYXIgKikgKENGR19NQkFSKzB4MTIwMDAyKSkKKyNkZWZpbmUgTUNGQ0xPQ0tfU1lOQ1IJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDEyMDAwMCkpCisjZGVmaW5lIE1DRkNMT0NLX1NZTlNSCQkoKih2dV9jaGFyICopIChDT05GSUdfU1lTX01CQVIrMHgxMjAwMDIpKQogCiAjZGVmaW5lIE1DRkNMT0NLX1NZTkNSX01GRCh4KQkoKCh4KSYweDAwMDcpPDwxMikKICNkZWZpbmUgTUNGQ0xPQ0tfU1lOQ1JfUkZEKHgpCSgoKHgpJjB4MDAwNyk8PDgpCiAjZGVmaW5lIE1DRkNMT0NLX1NZTlNSX0xPQ0sJMHgwOAogCi0jZGVmaW5lIE1DRlNEUkFNQ19EQ1IJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAwMDAwNDApKQotI2RlZmluZSBNQ0ZTRFJBTUNfREFDUjAJCSgqKHZ1X2xvbmcgKikgKENGR19NQkFSKzB4MDAwMDAwNDgpKQotI2RlZmluZSBNQ0ZTRFJBTUNfRE1SMAkJKCoodnVfbG9uZyAqKSAoQ0ZHX01CQVIrMHgwMDAwMDA0YykpCi0jZGVmaW5lIE1DRlNEUkFNQ19EQUNSMQkJKCoodnVfbG9uZyAqKSAoQ0ZHX01CQVIrMHgwMDAwMDA1MCkpCi0jZGVmaW5lIE1DRlNEUkFNQ19ETVIxCQkoKih2dV9sb25nICopIChDRkdfTUJBUisweDAwMDAwMDU0KSkKKyNkZWZpbmUgTUNGU0RSQU1DX0RDUgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwNDApKQorI2RlZmluZSBNQ0ZTRFJBTUNfREFDUjAJCSgqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDQ4KSkKKyNkZWZpbmUgTUNGU0RSQU1DX0RNUjAJCSgqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDRjKSkKKyNkZWZpbmUgTUNGU0RSQU1DX0RBQ1IxCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA1MCkpCisjZGVmaW5lIE1DRlNEUkFNQ19ETVIxCQkoKih2dV9sb25nICopIChDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA1NCkpCiAKICNkZWZpbmUgTUNGU0RSQU1DX0RDUl9OQU0JKDB4MjAwMCkKICNkZWZpbmUgTUNGU0RSQU1DX0RDUl9DT0MJKDB4MTAwMCkKQEAgLTQzNSwyNCArNDM1LDI0IEBACiAjZGVmaW5lIE1DRlNEUkFNQ19ETVJfVUQJKDB4MDAwMDAwMDIpCiAjZGVmaW5lIE1DRlNEUkFNQ19ETVJfVgkJKDB4MDAwMDAwMDEpCiAKLSNkZWZpbmUgTUNGV1RNX1dDUgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDE0MDAwMCkpCi0jZGVmaW5lIE1DRldUTV9XTVIJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAxNDAwMDIpKQotI2RlZmluZSBNQ0ZXVE1fV0NOVFIJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MDAxNDAwMDQpKQotI2RlZmluZSBNQ0ZXVE1fV1NSCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDAwMTQwMDA2KSkKKyNkZWZpbmUgTUNGV1RNX1dDUgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAxNDAwMDApKQorI2RlZmluZSBNQ0ZXVE1fV01SCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDE0MDAwMikpCisjZGVmaW5lIE1DRldUTV9XQ05UUgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAxNDAwMDQpKQorI2RlZmluZSBNQ0ZXVE1fV1NSCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDE0MDAwNikpCiAKIC8qICBDaGlwIFNFTEVDVCBNb2R1bGUgQ1NNICovCi0jZGVmaW5lIE1DRkNTTV9DU0FSMAkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDAwMDA4MCkpCi0jZGVmaW5lIE1DRkNTTV9DU01SMAkJKCoodnVfbG9uZyAqKSAoQ0ZHX01CQVIrMHgwMDAwMDA4NCkpCi0jZGVmaW5lIE1DRkNTTV9DU0NSMAkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDAwMDA4YSkpCi0jZGVmaW5lIE1DRkNTTV9DU0FSMQkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDAwMDA4QykpCi0jZGVmaW5lIE1DRkNTTV9DU01SMQkJKCoodnVfbG9uZyAqKSAoQ0ZHX01CQVIrMHgwMDAwMDA5MCkpCi0jZGVmaW5lIE1DRkNTTV9DU0NSMQkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDAwMDA5NikpCi0jZGVmaW5lIE1DRkNTTV9DU0FSMgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDAwMDA5OCkpCi0jZGVmaW5lIE1DRkNTTV9DU01SMgkJKCoodnVfbG9uZyAqKSAoQ0ZHX01CQVIrMHgwMDAwMDA5QykpCi0jZGVmaW5lIE1DRkNTTV9DU0NSMgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDAwMDBBMikpCi0jZGVmaW5lIE1DRkNTTV9DU0FSMwkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDAwMDBBNCkpCi0jZGVmaW5lIE1DRkNTTV9DU01SMwkJKCoodnVfbG9uZyAqKSAoQ0ZHX01CQVIrMHgwMDAwMDBBOCkpCi0jZGVmaW5lIE1DRkNTTV9DU0NSMwkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgwMDAwMDBBRSkpCisjZGVmaW5lIE1DRkNTTV9DU0FSMAkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwODApKQorI2RlZmluZSBNQ0ZDU01fQ1NNUjAJCSgqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDg0KSkKKyNkZWZpbmUgTUNGQ1NNX0NTQ1IwCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA4YSkpCisjZGVmaW5lIE1DRkNTTV9DU0FSMQkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwOEMpKQorI2RlZmluZSBNQ0ZDU01fQ1NNUjEJCSgqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDkwKSkKKyNkZWZpbmUgTUNGQ1NNX0NTQ1IxCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDAwMDA5NikpCisjZGVmaW5lIE1DRkNTTV9DU0FSMgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwOTgpKQorI2RlZmluZSBNQ0ZDU01fQ1NNUjIJCSgqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMDlDKSkKKyNkZWZpbmUgTUNGQ1NNX0NTQ1IyCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDAwMDBBMikpCisjZGVmaW5lIE1DRkNTTV9DU0FSMwkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MDAwMDAwQTQpKQorI2RlZmluZSBNQ0ZDU01fQ1NNUjMJCSgqKHZ1X2xvbmcgKikgKENPTkZJR19TWVNfTUJBUisweDAwMDAwMEE4KSkKKyNkZWZpbmUgTUNGQ1NNX0NTQ1IzCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgwMDAwMDBBRSkpCiAKICNkZWZpbmUgTUNGQ1NNX0NTTVJfQkFNKHgpCSgoeCkgJiAweEZGRkYwMDAwKQogI2RlZmluZSBNQ0ZDU01fQ1NNUl9XUAkJKDE8PDgpCkBAIC00NjcsNTEgKzQ2Nyw1MSBAQAogKiBHZW5lcmFsIFB1cnBvc2UgVGltZXIgKEdQVCkgTW9kdWxlCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgTUNGR1BUQV9HUFRJT1MJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMDApKQotI2RlZmluZSBNQ0ZHUFRBX0dQVENGT1JDCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMDEpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVE9DM00JCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMDIpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVE9DM0QJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMDMpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVENOVAkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQTAwMDQpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVFNDUjEJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMDYpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVFRPVgkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFBMDAwOCkpCi0jZGVmaW5lIE1DRkdQVEFfR1BUQ1RMMQkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFBMDAwOSkpCi0jZGVmaW5lIE1DRkdQVEFfR1BUQ1RMMgkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFBMDAwQikpCi0jZGVmaW5lIE1DRkdQVEFfR1BUSUUJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMEMpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVFNDUjIJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMEQpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVEZMRzEJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMEUpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVEZMRzIJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMEYpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVEMwCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDFBMDAxMCkpCi0jZGVmaW5lIE1DRkdQVEFfR1BUQzEJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MUEwMDEyKSkKLSNkZWZpbmUgTUNGR1BUQV9HUFRDMgkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQTAwMTQpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVEMzCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDFBMDAxNikpCi0jZGVmaW5lIE1DRkdQVEFfR1BUUEFDVEwJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFBMDAxOCkpCi0jZGVmaW5lIE1DRkdQVEFfR1BUUEFGTEcJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFBMDAxOSkpCi0jZGVmaW5lIE1DRkdQVEFfR1BUUEFDTlQJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQTAwMUEpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVFBPUlQJCSgqKHZ1X2NoYXIgKikoQ0ZHX01CQVIrMHgxQTAwMUQpKQotI2RlZmluZSBNQ0ZHUFRBX0dQVEREUgkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFBMDAxRSkpCisjZGVmaW5lIE1DRkdQVEFfR1BUSU9TCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwMCkpCisjZGVmaW5lIE1DRkdQVEFfR1BUQ0ZPUkMJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMDEpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVE9DM00JCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDAyKSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRPQzNECQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwMykpCisjZGVmaW5lIE1DRkdQVEFfR1BUQ05UCQkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMDQpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVFNDUjEJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDA2KSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRUT1YJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDA4KSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRDVEwxCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwOSkpCisjZGVmaW5lIE1DRkdQVEFfR1BUQ1RMMgkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMEIpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVElFCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwQykpCisjZGVmaW5lIE1DRkdQVEFfR1BUU0NSMgkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMEQpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVEZMRzEJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDBFKSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRGTEcyCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFBMDAwRikpCisjZGVmaW5lIE1DRkdQVEFfR1BUQzAJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFBMDAxMCkpCisjZGVmaW5lIE1DRkdQVEFfR1BUQzEJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFBMDAxMikpCisjZGVmaW5lIE1DRkdQVEFfR1BUQzIJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFBMDAxNCkpCisjZGVmaW5lIE1DRkdQVEFfR1BUQzMJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFBMDAxNikpCisjZGVmaW5lIE1DRkdQVEFfR1BUUEFDVEwJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMTgpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVFBBRkxHCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDE5KSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRQQUNOVAkoKih2dV9zaG9ydCAqKShDT05GSUdfU1lTX01CQVIrMHgxQTAwMUEpKQorI2RlZmluZSBNQ0ZHUFRBX0dQVFBPUlQJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDFEKSkKKyNkZWZpbmUgTUNGR1BUQV9HUFRERFIJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUEwMDFFKSkKIAotI2RlZmluZSBNQ0ZHUFRCX0dQVElPUwkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwMCkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUQ0ZPUkMJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwMSkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUT0MzTQkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwMikpCi0jZGVmaW5lIE1DRkdQVEJfR1BUT0MzRAkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwMykpCi0jZGVmaW5lIE1DRkdQVEJfR1BUQ05UCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDFCMDAwNCkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUU0NSMQkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwNikpCi0jZGVmaW5lIE1DRkdQVEJfR1BUVE9WCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUIwMDA4KSkKLSNkZWZpbmUgTUNGR1BUQl9HUFRDVEwxCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUIwMDA5KSkKLSNkZWZpbmUgTUNGR1BUQl9HUFRDVEwyCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUIwMDBCKSkKLSNkZWZpbmUgTUNGR1BUQl9HUFRJRQkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwQykpCi0jZGVmaW5lIE1DRkdQVEJfR1BUU0NSMgkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwRCkpCi0jZGVmaW5lIE1DRkdQVEJfR1BURkxHMQkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwRSkpCi0jZGVmaW5lIE1DRkdQVEJfR1BURkxHMgkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAwRikpCi0jZGVmaW5lIE1DRkdQVEJfR1BUQzAJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MUIwMDEwKSkKLSNkZWZpbmUgTUNGR1BUQl9HUFRDMQkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxQjAwMTIpKQotI2RlZmluZSBNQ0ZHUFRCX0dQVEMyCQkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDFCMDAxNCkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUQzMJCSgqKHZ1X3Nob3J0ICopKENGR19NQkFSKzB4MUIwMDE2KSkKLSNkZWZpbmUgTUNGR1BUQl9HUFRQQUNUTAkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUIwMDE4KSkKLSNkZWZpbmUgTUNGR1BUQl9HUFRQQUZMRwkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUIwMDE5KSkKLSNkZWZpbmUgTUNGR1BUQl9HUFRQQUNOVAkoKih2dV9zaG9ydCAqKShDRkdfTUJBUisweDFCMDAxQSkpCi0jZGVmaW5lIE1DRkdQVEJfR1BUUE9SVAkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFCMDAxRCkpCi0jZGVmaW5lIE1DRkdQVEJfR1BURERSCQkoKih2dV9jaGFyICopKENGR19NQkFSKzB4MUIwMDFFKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRJT1MJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDAwKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRDRk9SQwkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwMSkpCisjZGVmaW5lIE1DRkdQVEJfR1BUT0MzTQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMDIpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVE9DM0QJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDAzKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRDTlQJCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwNCkpCisjZGVmaW5lIE1DRkdQVEJfR1BUU0NSMQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMDYpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVFRPVgkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMDgpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVENUTDEJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDA5KSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRDVEwyCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwQikpCisjZGVmaW5lIE1DRkdQVEJfR1BUSUUJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDBDKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRTQ1IyCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAwRCkpCisjZGVmaW5lIE1DRkdQVEJfR1BURkxHMQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMEUpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVEZMRzIJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDBGKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRDMAkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDEwKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRDMQkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDEyKSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRDMgkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDE0KSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRDMwkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MUIwMDE2KSkKKyNkZWZpbmUgTUNGR1BUQl9HUFRQQUNUTAkoKih2dV9jaGFyICopKENPTkZJR19TWVNfTUJBUisweDFCMDAxOCkpCisjZGVmaW5lIE1DRkdQVEJfR1BUUEFGTEcJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMTkpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVFBBQ05UCSgqKHZ1X3Nob3J0ICopKENPTkZJR19TWVNfTUJBUisweDFCMDAxQSkpCisjZGVmaW5lIE1DRkdQVEJfR1BUUE9SVAkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMUQpKQorI2RlZmluZSBNQ0ZHUFRCX0dQVEREUgkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxQjAwMUUpKQogCiAvKiBCaXQgbGV2ZWwgZGVmaW5pdGlvbnMgYW5kIG1hY3JvcyAqLwogI2RlZmluZSBNQ0ZHUFRfR1BUSU9TX0lPUzMJCSgweDA4KQpAQCAtNTk2LDcgKzU5Niw3IEBACiAKIC8qIENvbGRmaXJlIEZsYXNoIE1vZHVsZSBDRk0gKi8KIAotI2RlZmluZSBNQ0ZDRk1fTUNSCQkJKCoodnVfc2hvcnQgKikoQ0ZHX01CQVIrMHgxRDAwMDApKQorI2RlZmluZSBNQ0ZDRk1fTUNSCQkJKCoodnVfc2hvcnQgKikoQ09ORklHX1NZU19NQkFSKzB4MUQwMDAwKSkKICNkZWZpbmUgTUNGQ0ZNX01DUl9MT0NLCQkJKDB4MDQwMCkKICNkZWZpbmUgTUNGQ0ZNX01DUl9QVklFCQkJKDB4MDIwMCkKICNkZWZpbmUgTUNGQ0ZNX01DUl9BRUlFCQkJKDB4MDEwMCkKQEAgLTYwNCwyMyArNjA0LDIzIEBACiAjZGVmaW5lIE1DRkNGTV9NQ1JfQ0NJRQkJCSgweDAwNDApCiAjZGVmaW5lIE1DRkNGTV9NQ1JfS0VZQUNDCQkoMHgwMDIwKQogCi0jZGVmaW5lIE1DRkNGTV9DTEtECQkJKCoodnVfY2hhciAqKShDRkdfTUJBUisweDFEMDAwMikpCisjZGVmaW5lIE1DRkNGTV9DTEtECQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX01CQVIrMHgxRDAwMDIpKQogCi0jZGVmaW5lIE1DRkNGTV9TRUMJCQkoKih2dV9sb25nKikgKENGR19NQkFSKzB4MUQwMDA4KSkKKyNkZWZpbmUgTUNGQ0ZNX1NFQwkJCSgqKHZ1X2xvbmcqKSAoQ09ORklHX1NZU19NQkFSKzB4MUQwMDA4KSkKICNkZWZpbmUgTUNGQ0ZNX1NFQ19LRVlFTgkJKDB4ODAwMDAwMDApCiAjZGVmaW5lIE1DRkNGTV9TRUNfU0VDU1RBVAkJKDB4NDAwMDAwMDApCiAKLSNkZWZpbmUgTUNGQ0ZNX1BST1QJCQkoKih2dV9sb25nKikgKENGR19NQkFSKzB4MUQwMDEwKSkKLSNkZWZpbmUgTUNGQ0ZNX1NBQ0MJCQkoKih2dV9sb25nKikgKENGR19NQkFSKzB4MUQwMDE0KSkKLSNkZWZpbmUgTUNGQ0ZNX0RBQ0MJCQkoKih2dV9sb25nKikgKENGR19NQkFSKzB4MUQwMDE4KSkKLSNkZWZpbmUgTUNGQ0ZNX1VTVEFUCQkJKCoodnVfY2hhciopIChDRkdfTUJBUisweDFEMDAyMCkpCisjZGVmaW5lIE1DRkNGTV9QUk9UCQkJKCoodnVfbG9uZyopIChDT05GSUdfU1lTX01CQVIrMHgxRDAwMTApKQorI2RlZmluZSBNQ0ZDRk1fU0FDQwkJCSgqKHZ1X2xvbmcqKSAoQ09ORklHX1NZU19NQkFSKzB4MUQwMDE0KSkKKyNkZWZpbmUgTUNGQ0ZNX0RBQ0MJCQkoKih2dV9sb25nKikgKENPTkZJR19TWVNfTUJBUisweDFEMDAxOCkpCisjZGVmaW5lIE1DRkNGTV9VU1RBVAkJCSgqKHZ1X2NoYXIqKSAoQ09ORklHX1NZU19NQkFSKzB4MUQwMDIwKSkKICNkZWZpbmUgTUNGQ0ZNX1VTVEFUX0NCRUlGCQkweDgwCiAjZGVmaW5lIE1DRkNGTV9VU1RBVF9DQ0lGCQkweDQwCiAjZGVmaW5lIE1DRkNGTV9VU1RBVF9QVklPTAkJMHgyMAogI2RlZmluZSBNQ0ZDRk1fVVNUQVRfQUNDRVJSCQkweDEwCiAjZGVmaW5lIE1DRkNGTV9VU1RBVF9CTEFOSwkJMHgwNAogCi0jZGVmaW5lIE1DRkNGTV9DTUQJCQkoKih2dV9jaGFyKikgKENGR19NQkFSKzB4MUQwMDI0KSkKKyNkZWZpbmUgTUNGQ0ZNX0NNRAkJCSgqKHZ1X2NoYXIqKSAoQ09ORklHX1NZU19NQkFSKzB4MUQwMDI0KSkKICNkZWZpbmUgTUNGQ0ZNX0NNRF9FUlNWRVIJCTB4MDUKICNkZWZpbmUgTUNGQ0ZNX0NNRF9QR0VSU1ZFUgkJMHgwNgogI2RlZmluZSBNQ0ZDRk1fQ01EX1BHTQkJCTB4MjAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pY3JvYmxhemUvZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLW1pY3JvYmxhemUvZ2xvYmFsX2RhdGEuaAppbmRleCAwMTNjNTZhLi4zZjQ5YzM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taWNyb2JsYXplL2dsb2JhbF9kYXRhLmgKKysrIGIvaW5jbHVkZS9hc20tbWljcm9ibGF6ZS9nbG9iYWxfZGF0YS5oCkBAIC0zMSw3ICszMSw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiAKIHR5cGVkZWYJc3RydWN0CWdsb2JhbF9kYXRhIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLW1pcHMvZ2xvYmFsX2RhdGEuaAppbmRleCA3Y2YyYTAwLi5iMmM0ODkxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL2dsb2JhbF9kYXRhLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9nbG9iYWxfZGF0YS5oCkBAIC0zMyw3ICszMyw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiAKIHR5cGVkZWYJc3RydWN0CWdsb2JhbF9kYXRhIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy80eHhfcGNpZS5oIGIvaW5jbHVkZS9hc20tcHBjLzR4eF9wY2llLmgKaW5kZXggYTdjZjFlOC4uYTBlODhkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjLzR4eF9wY2llLmgKKysrIGIvaW5jbHVkZS9hc20tcHBjLzR4eF9wY2llLmgKQEAgLTE4LDkgKzE4LDkgQEAKICNkZWZpbmUgRENSTl9TRFIwX0NGR0RBVEEJMHgwMGYKIAogI2lmIGRlZmluZWQoQ09ORklHXzQ0MFNQRSkKLSNkZWZpbmUgQ0ZHX1BDSUVfTlJfUE9SVFMJMworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfTlJfUE9SVFMJMwogCi0jZGVmaW5lIENGR19QQ0lFX0FERFJfSElHSAkweDAwMDAwMDBkCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9BRERSX0hJR0gJMHgwMDAwMDAwZAogCiAjZGVmaW5lIERDUk5fUENJRTBfQkFTRQkJMHgxMDAKICNkZWZpbmUgRENSTl9QQ0lFMV9CQVNFCQkweDEyMApAQCAtMzIsOSArMzIsOSBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR180NjBFWCkgfHwgZGVmaW5lZChDT05GSUdfNDYwR1QpCi0jZGVmaW5lIENGR19QQ0lFX05SX1BPUlRTCTIKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTCTIKIAotI2RlZmluZSBDRkdfUENJRV9BRERSX0hJR0gJMHgwMDAwMDAwZAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfQUREUl9ISUdICTB4MDAwMDAwMGQKIAogI2RlZmluZSBEQ1JOX1BDSUUwX0JBU0UJCTB4MTAwCiAjZGVmaW5lIERDUk5fUENJRTFfQkFTRQkJMHgxMjAKQEAgLTQ0LDkgKzQ0LDkgQEAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfNDA1RVgpCi0jZGVmaW5lIENGR19QQ0lFX05SX1BPUlRTCTIKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX05SX1BPUlRTCTIKIAotI2RlZmluZSBDRkdfUENJRV9BRERSX0hJR0gJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfQUREUl9ISUdICTB4MDAwMDAwMDAKIAogI2RlZmluZQlEQ1JOX1BDSUUwX0JBU0UJCTB4MDQwCiAjZGVmaW5lCURDUk5fUENJRTFfQkFTRQkJMHgwNjAKQEAgLTQwNiw3ICs0MDYsNyBAQAogCQlyZXR1cm4gUENJRTBfU0RSOwogCWNhc2UgMToKIAkJcmV0dXJuIFBDSUUxX1NEUjsKLSNpZiBDRkdfUENJRV9OUl9QT1JUUyA+IDIKKyNpZiBDT05GSUdfU1lTX1BDSUVfTlJfUE9SVFMgPiAyCiAJY2FzZSAyOgogCQlyZXR1cm4gUENJRTJfU0RSOwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvY2FjaGUuaCBiL2luY2x1ZGUvYXNtLXBwYy9jYWNoZS5oCmluZGV4IDlkOWI5NzEuLjcyNTJiZTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBwYy9jYWNoZS5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy9jYWNoZS5oCkBAIC0xOSwxMCArMTksMTAgQEAKICNkZWZpbmUgTDFfQ0FDSEVfQllURVMgICAgICAgICAgKDEgPDwgTDFfQ0FDSEVfU0hJRlQpCiAKIC8qCi0gKiBGb3IgY29tcGF0aWJpbGl0eSByZWFzb25zIHN1cHBvcnQgdGhlIENGR19DQUNIRUxJTkVfU0laRSB0b28KKyAqIEZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMgc3VwcG9ydCB0aGUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSB0b28KICAqLwotI2lmbmRlZiBDRkdfQ0FDSEVMSU5FX1NJWkUKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCUwxX0NBQ0hFX0JZVEVTCisjaWZuZGVmIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQlMMV9DQUNIRV9CWVRFUwogI2VuZGlmCiAKICNkZWZpbmUJTDFfQ0FDSEVfQUxJR04oeCkgICAgICAgKCgoeCkrKEwxX0NBQ0hFX0JZVEVTLTEpKSZ+KEwxX0NBQ0hFX0JZVEVTLTEpKQpAQCAtNDQsOSArNDQsMTAgQEAKIGV4dGVybiB2b2lkIGludmFsaWRhdGVfZGNhY2hlX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc3RvcCk7CiBleHRlcm4gdm9pZCBmbHVzaF9kY2FjaGUodm9pZCk7CiBleHRlcm4gdm9pZCBpbnZhbGlkYXRlX2RjYWNoZSh2b2lkKTsKLSNpZmRlZiBDRkdfSU5JVF9SQU1fTE9DSworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pY2FjaGUodm9pZCk7CisjaWZkZWYgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiBleHRlcm4gdm9pZCB1bmxvY2tfcmFtX2luX2NhY2hlKHZvaWQpOwotI2VuZGlmIC8qIENGR19JTklUX1JBTV9MT0NLICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JTklUX1JBTV9MT0NLICovCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAKIC8qIHByZXAgcmVnaXN0ZXJzIGZvciBMMiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2NwbV84MjYwLmggYi9pbmNsdWRlL2FzbS1wcGMvY3BtXzgyNjAuaAppbmRleCAyYTk3NzRhLi43ZTA2OTQwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvY3BtXzgyNjAuaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvY3BtXzgyNjAuaApAQCAtMTQxLDE2ICsxNDEsMTYgQEAKIAogLyogUGFyYW1ldGVyIFJBTSBvZmZzZXRzIGZyb20gdGhlIGJhc2UuCiAqLwotI2lmbmRlZiBDRkdfQ1BNX1BPU1RfV09SRF9BRERSCisjaWZuZGVmIENPTkZJR19TWVNfQ1BNX1BPU1RfV09SRF9BRERSCiAjZGVmaW5lIENQTV9QT1NUX1dPUkRfQUREUiAgICAgIDB4ODBGQwkvKiBzdGVhbCBhIGxvbmcgYXQgdGhlIGVuZCBvZiBTQ0MxICovCiAjZWxzZQotI2RlZmluZSBDUE1fUE9TVF9XT1JEX0FERFIJQ0ZHX0NQTV9QT1NUX1dPUkRfQUREUgorI2RlZmluZSBDUE1fUE9TVF9XT1JEX0FERFIJQ09ORklHX1NZU19DUE1fUE9TVF9XT1JEX0FERFIKICNlbmRpZgogCi0jaWZuZGVmIENGR19DUE1fQk9PVENPVU5UX0FERFIKKyNpZm5kZWYgQ09ORklHX1NZU19DUE1fQk9PVENPVU5UX0FERFIKICNkZWZpbmUgQ1BNX0JPT1RDT1VOVF9BRERSCShDUE1fUE9TVF9XT1JEX0FERFIgLSAyKnNpemVvZih1bG9uZykpCiAjZWxzZQotI2RlZmluZSBDUE1fQk9PVENPVU5UX0FERFIJQ0ZHX0NQTV9CT09UQ09VTlRfQUREUgorI2RlZmluZSBDUE1fQk9PVENPVU5UX0FERFIJQ09ORklHX1NZU19DUE1fQk9PVENPVU5UX0FERFIKICNlbmRpZgogCiAjZGVmaW5lIFBST0ZGX1NDQzEJCSgodWludCkweDgwMDApCmRpZmYgLS1naXQgYS9jcHUvbXBjOHh4eC9kZHIvZGRyMV8yX2RpbW1fcGFyYW1zLmggYi9pbmNsdWRlL2FzbS1wcGMvZnNsX2Rkcl9kaW1tX3BhcmFtcy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBjcHUvbXBjOHh4eC9kZHIvZGRyMV8yX2RpbW1fcGFyYW1zLmgKcmVuYW1lIHRvIGluY2x1ZGUvYXNtLXBwYy9mc2xfZGRyX2RpbW1fcGFyYW1zLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy9mc2xfZGRyX3NkcmFtLmggYi9pbmNsdWRlL2FzbS1wcGMvZnNsX2Rkcl9zZHJhbS5oCmluZGV4IDhhZGRlMzQuLmMxZWE3Y2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBwYy9mc2xfZGRyX3NkcmFtLmgKKysrIGIvaW5jbHVkZS9hc20tcHBjL2ZzbF9kZHJfc2RyYW0uaApAQCAtMzYsNiArMzYsMTggQEAKIHR5cGVkZWYgZGRyM19zcGRfZWVwcm9tX3QgZ2VuZXJpY19zcGRfZWVwcm9tX3Q7CiAjZW5kaWYKIAorLyogZGVmaW5lIGJhbmsoY2hpcCBzZWxlY3QpIGludGVybGVhdmluZyBtb2RlICovCisjZGVmaW5lIEZTTF9ERFJfQ1MwX0NTMQkJCTB4NDAKKyNkZWZpbmUgRlNMX0REUl9DUzJfQ1MzCQkJMHgyMAorI2RlZmluZSBGU0xfRERSX0NTMF9DUzFfQU5EX0NTMl9DUzMJKEZTTF9ERFJfQ1MwX0NTMSB8IEZTTF9ERFJfQ1MyX0NTMykKKyNkZWZpbmUgRlNMX0REUl9DUzBfQ1MxX0NTMl9DUzMJCShGU0xfRERSX0NTMF9DUzFfQU5EX0NTMl9DUzMgfCAweDA0KQorCisvKiBkZWZpbmUgbWVtb3J5IGNvbnRyb2xsZXIgaW50ZXJsZWF2aW5nIG1vZGUgKi8KKyNkZWZpbmUgRlNMX0REUl9DQUNIRV9MSU5FX0lOVEVSTEVBVklORwkweDAKKyNkZWZpbmUgRlNMX0REUl9QQUdFX0lOVEVSTEVBVklORwkweDEKKyNkZWZpbmUgRlNMX0REUl9CQU5LX0lOVEVSTEVBVklORwkweDIKKyNkZWZpbmUgRlNMX0REUl9TVVBFUkJBTktfSU5URVJMRUFWSU5HCTB4MworCiAvKiBSZWNvcmQgb2YgcmVnaXN0ZXIgdmFsdWVzIGNvbXB1dGVkICovCiB0eXBlZGVmIHN0cnVjdCBmc2xfZGRyX2NmZ19yZWdzX3MgewogCXN0cnVjdCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvZ2xvYmFsX2RhdGEuaCBiL2luY2x1ZGUvYXNtLXBwYy9nbG9iYWxfZGF0YS5oCmluZGV4IDQzMzFhMTUuLmFhZGUwOTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBwYy9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy9nbG9iYWxfZGF0YS5oCkBAIC0zMyw3ICszMyw3IEBACiAgKiBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gKHVudGlsIHdlIGhhdmUgc2V0CiAgKiB1cCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gdXNlIFJBTSkuCiAgKgotICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ0ZHX0dCTF9EQVRBX1NJWkUgPiBzaXplb2YoZ2RfdCkKKyAqIEtlZXAgaXQgKlNNQUxMKiBhbmQgcmVtZW1iZXIgdG8gc2V0IENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQogICovCiAKIHR5cGVkZWYJc3RydWN0CWdsb2JhbF9kYXRhIHsKQEAgLTEyOSwxNCArMTI5LDE0IEBACiAJdW5zaWduZWQgbG9uZwllbnZfYWRkcjsJLyogQWRkcmVzcyAgb2YgRW52aXJvbm1lbnQgc3RydWN0CSovCiAJdW5zaWduZWQgbG9uZwllbnZfdmFsaWQ7CS8qIENoZWNrc3VtIG9mIEVudmlyb25tZW50IHZhbGlkPwkqLwogCXVuc2lnbmVkIGxvbmcJaGF2ZV9jb25zb2xlOwkvKiBzZXJpYWxfaW5pdCgpIHdhcyBjYWxsZWQJCSovCi0jaWYgZGVmaW5lZChDRkdfQUxMT0NfRFBSQU0pIHx8IGRlZmluZWQoQ09ORklHX0NQTTIpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0FMTE9DX0RQUkFNKSB8fCBkZWZpbmVkKENPTkZJR19DUE0yKQogCXVuc2lnbmVkIGludAlkcF9hbGxvY19iYXNlOwogCXVuc2lnbmVkIGludAlkcF9hbGxvY190b3A7CiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR180eHgpCiAJdTMyICB1YXJ0X2NsazsKICNlbmRpZiAvKiBDT05GSUdfNHh4ICovCi0jaWYgZGVmaW5lZChDRkdfR1RfNjQyNngpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0dUXzY0MjZ4KQogCXVuc2lnbmVkIGludAltaXJyb3JfaGFja1sxNl07CiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19BMzAwMCkJfHwgXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzg1eHguaCBiL2luY2x1ZGUvYXNtLXBwYy9pbW1hcF84NXh4LmgKaW5kZXggNTBjOWRkZS4uMjM5OTI0MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzg1eHguaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvaW1tYXBfODV4eC5oCkBAIC0xNTc5LDcgKzE1NzksNyBAQAogI2RlZmluZSBNUEM4NXh4X1BPUkRFVlNSX1JJT19ERVZfSUQJMHgwMDAwMDAwNwogCXVpbnQJcG9yZGJnbXNyOwkvKiAweGUwMDEwIC0gUE9SIGRlYnVnIG1vZGUgc3RhdHVzIHJlZ2lzdGVyICovCiAJdWludAlwb3JkZXZzcjI7CS8qIDB4ZTAwMTQgLSBQT1IgSS9PIGRldmljZSBzdGF0dXMgcmVnc2l0ZXIgMiAqLwotI2RlZmluZSBNUEM4NXh4X1BPUkRFVlNSMl9TRUNfQ0ZHCTB4MDAwMDAwMjAKKyNkZWZpbmUgTVBDODV4eF9QT1JERVZTUjJfU0VDX0NGRwkweDAwMDAwMDgwCiAJY2hhcglyZXMxWzhdOwogCXVpbnQJZ3Bwb3JjcjsJLyogMHhlMDAyMCAtIEdlbmVyYWwtcHVycG9zZSBQT1IgY29uZmlndXJhdGlvbiByZWdpc3RlciAqLwogCWNoYXIJcmVzMlsxMl07CkBAIC0xNjQ3LDM3ICsxNjQ3LDM3IEBACiAKICNkZWZpbmUgUE9SREVWU1JfUENJCSgweDAwODAwMDAwKQkvKiBQQ0kgTW9kZSAqLwogCi0jZGVmaW5lIENGR19NUEM4NXh4X0dVVFNfT0ZGU0VUCSgweEUwMDAwKQotI2RlZmluZSBDRkdfTVBDODV4eF9HVVRTX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfR1VUU19PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X0VDTV9PRkZTRVQJKDB4MDAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfRUNNX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfRUNNX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfRERSX09GRlNFVAkoMHgyMDAwKQotI2RlZmluZSBDRkdfTVBDODV4eF9ERFJfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9ERFJfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9ERFIyX09GRlNFVAkoMHg2MDAwKQotI2RlZmluZSBDRkdfTVBDODV4eF9ERFIyX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfRERSMl9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X0xCQ19PRkZTRVQJKDB4NTAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfTEJDX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfTEJDX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfUENJWF9PRkZTRVQJKDB4ODAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfUENJWF9BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X1BDSVhfT0ZGU0VUKQotI2RlZmluZSBDRkdfTVBDODV4eF9QQ0lYMl9PRkZTRVQJKDB4OTAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfUENJWDJfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9QQ0lYMl9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X1NBVEExX09GRlNFVAkoMHgxODAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfU0FUQTFfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9TQVRBMV9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X1NBVEEyX09GRlNFVAkoMHgxOTAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfU0FUQTJfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9TQVRBMl9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X0wyX09GRlNFVAkoMHgyMDAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfTDJfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9MMl9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X0RNQV9PRkZTRVQJKDB4MjEwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X0RNQV9BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X0RNQV9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X0VTREhDX09GRlNFVAkoMHgyZTAwMCkKLSNkZWZpbmUgQ0ZHX01QQzg1eHhfRVNESENfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODV4eF9FU0RIQ19PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X1BJQ19PRkZTRVQJKDB4NDAwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X1BJQ19BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X1BJQ19PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X0NQTV9PRkZTRVQJKDB4ODAwMDApCi0jZGVmaW5lIENGR19NUEM4NXh4X0NQTV9BRERSCShDRkdfSU1NUiArIENGR19NUEM4NXh4X0NQTV9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X1NFUkRFUzFfT0ZGU0VUCSgweEUzMDAwKQotI2RlZmluZSBDRkdfTVBDODV4eF9TRVJERVMxX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfU0VSREVTMl9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4NXh4X1NFUkRFUzJfT0ZGU0VUCSgweEUzMTAwKQotI2RlZmluZSBDRkdfTVBDODV4eF9TRVJERVMyX0FERFIJKENGR19JTU1SICsgQ0ZHX01QQzg1eHhfU0VSREVTMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9HVVRTX09GRlNFVAkoMHhFMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X0dVVFNfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfRUNNX09GRlNFVAkoMHgwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfRUNNX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9FQ01fT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfRERSX09GRlNFVAkoMHgyMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfRERSX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9ERFJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfRERSMl9PRkZTRVQJKDB4NjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0REUjJfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X0REUjJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfTEJDX09GRlNFVAkoMHg1MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfTEJDX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9MQkNfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfUENJWF9PRkZTRVQJKDB4ODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1BDSVhfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X1BDSVhfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfUENJWDJfT0ZGU0VUCSgweDkwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9QQ0lYMl9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfUENJWDJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfU0FUQTFfT0ZGU0VUCSgweDE4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfU0FUQTFfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X1NBVEExX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1NBVEEyX09GRlNFVAkoMHgxOTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1NBVEEyX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9TQVRBMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9MMl9PRkZTRVQJKDB4MjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9MMl9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfTDJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfRE1BX09GRlNFVAkoMHgyMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0RNQV9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfRE1BX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0VTREhDX09GRlNFVAkoMHgyZTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0VTREhDX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9FU0RIQ19PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9QSUNfT0ZGU0VUCSgweDQwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfUElDX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODV4eF9QSUNfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX09GRlNFVAkoMHg4MDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1NFUkRFUzFfT0ZGU0VUCSgweEUzMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01QQzg1eHhfU0VSREVTMV9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg1eHhfU0VSREVTMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODV4eF9TRVJERVMyX09GRlNFVAkoMHhFMzEwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4NXh4X1NFUkRFUzJfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19NUEM4NXh4X1NFUkRFUzJfT0ZGU0VUKQogCiAjZW5kaWYgLypfX0lNTUFQXzg1eHhfXyovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvaW1tYXBfODZ4eC5oIGIvaW5jbHVkZS9hc20tcHBjL2ltbWFwXzg2eHguaAppbmRleCAwM2EyNWM3Li5kZjI4YzBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvaW1tYXBfODZ4eC5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy9pbW1hcF84Nnh4LmgKQEAgLTEzNDgsOSArMTM0OCw5IEBACiAKIGV4dGVybiBpbW1hcF90ICAqaW1tcjsKIAotI2RlZmluZSBDRkdfTVBDODZ4eF9ERFJfT0ZGU0VUCSgweDIwMDApCi0jZGVmaW5lIENGR19NUEM4Nnh4X0REUl9BRERSCShDRkdfSU1NUiArIENGR19NUEM4Nnh4X0REUl9PRkZTRVQpCi0jZGVmaW5lIENGR19NUEM4Nnh4X0REUjJfT0ZGU0VUCSgweDYwMDApCi0jZGVmaW5lIENGR19NUEM4Nnh4X0REUjJfQUREUgkoQ0ZHX0lNTVIgKyBDRkdfTVBDODZ4eF9ERFIyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4Nnh4X0REUl9PRkZTRVQJKDB4MjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4Nnh4X0REUl9BRERSCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX01QQzg2eHhfRERSX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4Nnh4X0REUjJfT0ZGU0VUCSgweDYwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODZ4eF9ERFIyX0FERFIJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfTVBDODZ4eF9ERFIyX09GRlNFVCkKIAogI2VuZGlmIC8qX19JTU1BUF84Nnh4X18qLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2lvcGluXzgyNjAuaCBiL2luY2x1ZGUvYXNtLXBwYy9pb3Bpbl84MjYwLmgKaW5kZXggMjFlZDhjMi4uNjE5ZjNhOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcHBjL2lvcGluXzgyNjAuaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvaW9waW5fODI2MC5oCkBAIC0yNiwxNDAgKzI2LDE0MCBAQAogZXh0ZXJuIF9faW5saW5lX18gdm9pZAogaW9waW5fc2V0X2hpZ2goaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRhdGE7CisgICAgdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkYXRhOwogICAgIGRhdHBbaW9waW4tPnBvcnQgKiA4XSB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9sb3coaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRhdGE7CisgICAgdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkYXRhOwogICAgIGRhdHBbaW9waW4tPnBvcnQgKiA4XSAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50CiBpb3Bpbl9pc19oaWdoKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkYXRhOworICAgIHZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGF0YTsKICAgICByZXR1cm4gKGRhdHBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50CiBpb3Bpbl9pc19sb3coaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRhdGE7CisgICAgdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkYXRhOwogICAgIHJldHVybiAoKGRhdHBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9vdXQoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRpcmE7CisgICAgdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkaXJhOwogICAgIGRpcnBbaW9waW4tPnBvcnQgKiA4XSB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9pbihpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGlyYTsKKyAgICB2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRpcmE7CiAgICAgZGlycFtpb3Bpbi0+cG9ydCAqIDhdICY9IH4oMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQKIGlvcGluX2lzX291dChpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGlyYTsKKyAgICB2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRpcmE7CiAgICAgcmV0dXJuIChkaXJwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludAogaW9waW5faXNfaW4oaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRpcmE7CisgICAgdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkaXJhOwogICAgIHJldHVybiAoKGRpcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9vZHIoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcG9kcmE7CisgICAgdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BvZHJhOwogICAgIG9kcnBbaW9waW4tPnBvcnQgKiA4XSB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQKIGlvcGluX3NldF9hY3QoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcG9kcmE7CisgICAgdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BvZHJhOwogICAgIG9kcnBbaW9waW4tPnBvcnQgKiA4XSAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50CiBpb3Bpbl9pc19vZHIoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcG9kcmE7CisgICAgdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BvZHJhOwogICAgIHJldHVybiAob2RycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQKIGlvcGluX2lzX2FjdChpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpvZHJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wb2RyYTsKKyAgICB2b2xhdGlsZSB1aW50ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcG9kcmE7CiAgICAgcmV0dXJuICgob2RycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZAogaW9waW5fc2V0X2RlZChpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wcGFyYTsKKyAgICB2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcHBhcmE7CiAgICAgcGFycFtpb3Bpbi0+cG9ydCAqIDhdIHw9ICgxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZAogaW9waW5fc2V0X2dlbihpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wcGFyYTsKKyAgICB2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcHBhcmE7CiAgICAgcGFycFtpb3Bpbi0+cG9ydCAqIDhdICY9IH4oMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQKIGlvcGluX2lzX2RlZChpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wcGFyYTsKKyAgICB2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcHBhcmE7CiAgICAgcmV0dXJuIChwYXJwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludAogaW9waW5faXNfZ2VuKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BwYXJhOworICAgIHZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wcGFyYTsKICAgICByZXR1cm4gKChwYXJwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkCiBpb3Bpbl9zZXRfb3B0Mihpb3Bpbl90ICppb3BpbikKIHsKLSAgICB2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wc29yYTsKKyAgICB2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcHNvcmE7CiAgICAgc29ycFtpb3Bpbi0+cG9ydCAqIDhdIHw9ICgxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZAogaW9waW5fc2V0X29wdDEoaW9waW5fdCAqaW9waW4pCiB7Ci0gICAgdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcHNvcmE7CisgICAgdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bzb3JhOwogICAgIHNvcnBbaW9waW4tPnBvcnQgKiA4XSAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50CiBpb3Bpbl9pc19vcHQyKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bzb3JhOworICAgIHZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wc29yYTsKICAgICByZXR1cm4gKHNvcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50CiBpb3Bpbl9pc19vcHQxKGlvcGluX3QgKmlvcGluKQogewotICAgIHZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bzb3JhOworICAgIHZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wc29yYTsKICAgICByZXR1cm4gKChzb3JwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvaW9waW5fODV4eC5oIGIvaW5jbHVkZS9hc20tcHBjL2lvcGluXzg1eHguaAppbmRleCBkYWRkYjU1Li4wZjA3YmEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvaW9waW5fODV4eC5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy9pb3Bpbl84NXh4LmgKQEAgLTIzLDEyMSArMjMsMTIxIEBACiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQgaW9waW5fc2V0X2hpZ2ggKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRhdGE7CisJdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGF0YTsKIAlkYXRwW2lvcGluLT5wb3J0ICogOF0gfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9sb3cgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRhdGE7CisJdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGF0YTsKIAlkYXRwW2lvcGluLT5wb3J0ICogOF0gJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludCBpb3Bpbl9pc19oaWdoIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkYXRhOworCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRhdGE7CiAJcmV0dXJuIChkYXRwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludCBpb3Bpbl9pc19sb3cgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRhdGE7CisJdm9sYXRpbGUgdWludCAqZGF0cCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGF0YTsKIAlyZXR1cm4gKChkYXRwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9vdXQgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRpcmE7CisJdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGlyYTsKIAlkaXJwW2lvcGluLT5wb3J0ICogOF0gfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9pbiAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGlyYTsKKwl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkaXJhOwogCWRpcnBbaW9waW4tPnBvcnQgKiA4XSAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50IGlvcGluX2lzX291dCAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGlyYTsKKwl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBkaXJhOwogCXJldHVybiAoZGlycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQgaW9waW5faXNfaW4gKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpkaXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucGRpcmE7CisJdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wZGlyYTsKIAlyZXR1cm4gKChkaXJwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9vZHIgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpvZHJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucG9kcmE7CisJdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wb2RyYTsKIAlvZHJwW2lvcGluLT5wb3J0ICogOF0gfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB2b2lkIGlvcGluX3NldF9hY3QgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpvZHJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucG9kcmE7CisJdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wb2RyYTsKIAlvZHJwW2lvcGluLT5wb3J0ICogOF0gJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludCBpb3Bpbl9pc19vZHIgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpvZHJwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucG9kcmE7CisJdm9sYXRpbGUgdWludCAqb2RycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wb2RyYTsKIAlyZXR1cm4gKG9kcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50IGlvcGluX2lzX2FjdCAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKm9kcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wb2RyYTsKKwl2b2xhdGlsZSB1aW50ICpvZHJwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBvZHJhOwogCXJldHVybiAoKG9kcnBbaW9waW4tPnBvcnQgKiA4XSA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQgaW9waW5fc2V0X2RlZCAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wcGFyYTsKKwl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBwYXJhOwogCXBhcnBbaW9waW4tPnBvcnQgKiA4XSB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQgaW9waW5fc2V0X2dlbiAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wcGFyYTsKKwl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBwYXJhOwogCXBhcnBbaW9waW4tPnBvcnQgKiA4XSAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogfQogCiBleHRlcm4gX19pbmxpbmVfXyB1aW50IGlvcGluX2lzX2RlZCAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wcGFyYTsKKwl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBwYXJhOwogCXJldHVybiAocGFycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHVpbnQgaW9waW5faXNfZ2VuIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBwYXJhOworCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHBhcmE7CiAJcmV0dXJuICgocGFycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdm9pZCBpb3Bpbl9zZXRfb3B0MiAoaW9waW5fdCAqIGlvcGluKQogewotCXZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChjY3NyX2NwbV90ICopIENGR19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wc29yYTsKKwl2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoY2Nzcl9jcG1fdCAqKSBDT05GSUdfU1lTX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBzb3JhOwogCXNvcnBbaW9waW4tPnBvcnQgKiA4XSB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiB9CiAKIGV4dGVybiBfX2lubGluZV9fIHZvaWQgaW9waW5fc2V0X29wdDEgKGlvcGluX3QgKiBpb3BpbikKIHsKLQl2b2xhdGlsZSB1aW50ICpzb3JwID0gJigoY2Nzcl9jcG1fdCAqKSBDRkdfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHNvcmE7CisJdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGNjc3JfY3BtX3QgKikgQ09ORklHX1NZU19NUEM4NXh4X0NQTV9BRERSKS0+aW1fY3BtX2lvcC5wc29yYTsKIAlzb3JwW2lvcGluLT5wb3J0ICogOF0gJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludCBpb3Bpbl9pc19vcHQyIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBzb3JhOworCXZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHNvcmE7CiAJcmV0dXJuIChzb3JwW2lvcGluLT5wb3J0ICogOF0gPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIH0KIAogZXh0ZXJuIF9faW5saW5lX18gdWludCBpb3Bpbl9pc19vcHQxIChpb3Bpbl90ICogaW9waW4pCiB7Ci0Jdm9sYXRpbGUgdWludCAqc29ycCA9ICYoKGNjc3JfY3BtX3QgKikgQ0ZHX01QQzg1eHhfQ1BNX0FERFIpLT5pbV9jcG1faW9wLnBzb3JhOworCXZvbGF0aWxlIHVpbnQgKnNvcnAgPSAmKChjY3NyX2NwbV90ICopIENPTkZJR19TWVNfTVBDODV4eF9DUE1fQUREUiktPmltX2NwbV9pb3AucHNvcmE7CiAJcmV0dXJuICgoc29ycFtpb3Bpbi0+cG9ydCAqIDhdID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcHBjL2lvcGluXzh4eC5oIGIvaW5jbHVkZS9hc20tcHBjL2lvcGluXzh4eC5oCmluZGV4IDE5NDZlYjIuLjNhMmE2ODIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBwYy9pb3Bpbl84eHguaAorKysgYi9pbmNsdWRlL2FzbS1wcGMvaW9waW5fOHh4LmgKQEAgLTQ2LDE2ICs0NiwxNiBAQAogaW9waW5fc2V0X2hpZ2goaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRBKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0OwogCQkqZGF0cCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0OworCQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdDsKIAkJKmRhdHAgfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdDsKKwkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQ7CiAJCSpkYXRwIHw9ICgxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlREKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0OwogCQkqZGF0cCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtNjQsMTYgKzY0LDE2IEBACiBpb3Bpbl9zZXRfbG93KGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0OworCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRhdDsKIAkJKmRhdHAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQ7CisJCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0OwogCQkqZGF0cCAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdDsKKwkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQ7CiAJCSpkYXRwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0OworCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdDsKIAkJKmRhdHAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC04MiwxNiArODIsMTYgQEAKIGlvcGluX2lzX2hpZ2goaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRBKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0OwogCQlyZXR1cm4gKCpkYXRwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0OworCQl2b2xhdGlsZSB1aW50ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdDsKIAkJcmV0dXJuICgqZGF0cCA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdDsKKwkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQ7CiAJCXJldHVybiAoKmRhdHAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlREKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQ7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGF0cCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0OwogCQlyZXR1cm4gKCpkYXRwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfQogCXJldHVybiAwOwpAQCAtMTAxLDE2ICsxMDEsMTYgQEAKIGlvcGluX2lzX2xvdyhpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRhdDsKKwkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQ7CiAJCXJldHVybiAoKCpkYXRwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQ7CisJCXZvbGF0aWxlIHVpbnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0OwogCQlyZXR1cm4gKCgqZGF0cCA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0OworCQl2b2xhdGlsZSB1c2hvcnQgKmRhdHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdDsKIAkJcmV0dXJuICgoKmRhdHAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdDsKKwkJdm9sYXRpbGUgdXNob3J0ICpkYXRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQ7CiAJCXJldHVybiAoKCpkYXRwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0xMjAsMTYgKzEyMCwxNiBAQAogaW9waW5fc2V0X291dChpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkaXI7CiAJCSpkaXJwIHw9ICgxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkaXI7CisJCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyOwogCQkqZGlycCB8PSAoMSA8PCAoMzEgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGlyOworCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RpcjsKIAkJKmRpcnAgfD0gKDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXI7CiAJCSpkaXJwIHw9ICgxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0xMzgsMTYgKzEzOCwxNiBAQAogaW9waW5fc2V0X2luKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGlyOworCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRpcjsKIAkJKmRpcnAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkaXI7CisJCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyOwogCQkqZGlycCAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkaXI7CiAJCSpkaXJwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGlyOworCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpcjsKIAkJKmRpcnAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0xNTYsMTYgKzE1NiwxNiBAQAogaW9waW5faXNfb3V0KGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGlyOworCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRpcjsKIAkJcmV0dXJuICgqZGlycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEIpIHsKLQkJdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRpcjsKKwkJdm9sYXRpbGUgdWludCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkaXI7CiAJCXJldHVybiAoKmRpcnAgPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkaXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqZGlycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGlyOwogCQlyZXR1cm4gKCpkaXJwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGlyOworCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpcjsKIAkJcmV0dXJuICgqZGlycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTE3NSwxNiArMTc1LDE2IEBACiBpb3Bpbl9pc19pbihpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYWRpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkaXI7CiAJCXJldHVybiAoKCpkaXJwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkaXI7CisJCXZvbGF0aWxlIHVpbnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGlyOwogCQlyZXR1cm4gKCgqZGlycCA+PiAoMzEgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGlyOworCQl2b2xhdGlsZSB1c2hvcnQgKmRpcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RpcjsKIAkJcmV0dXJuICgoKmRpcnAgPj4gKDE1IC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEQpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRpcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpkaXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkaXI7CiAJCXJldHVybiAoKCpkaXJwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0xOTQsMTAgKzE5NCwxMCBAQAogaW9waW5fc2V0X29kcihpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYW9kcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFvZHI7CiAJCSpvZHJwIHw9ICgxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYm9kcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYm9kcjsKIAkJKm9kcnAgfD0gKDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogCX0KIH0KQEAgLTIwNiwxMCArMjA2LDEwIEBACiBpb3Bpbl9zZXRfYWN0KGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bhb2RyOworCQl2b2xhdGlsZSB1c2hvcnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYW9kcjsKIAkJKm9kcnAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYm9kcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYm9kcjsKIAkJKm9kcnAgJj0gfigxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0yMTgsMTAgKzIxOCwxMCBAQAogaW9waW5faXNfb2RyKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bhb2RyOworCQl2b2xhdGlsZSB1c2hvcnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYW9kcjsKIAkJcmV0dXJuICgqb2RycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEIpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3Bib2RyOworCQl2b2xhdGlsZSB1c2hvcnQgKm9kcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3Bib2RyOwogCQlyZXR1cm4gKCpvZHJwID4+ICgzMSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfQogCXJldHVybiAwOwpAQCAtMjMxLDEwICsyMzEsMTAgQEAKIGlvcGluX2lzX2FjdChpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEEpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYW9kcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFvZHI7CiAJCXJldHVybiAoKCpvZHJwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqb2RycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYm9kcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpvZHJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYm9kcjsKIAkJcmV0dXJuICgoKm9kcnAgPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTI0NCwxNiArMjQ0LDE2IEBACiBpb3Bpbl9zZXRfZGVkKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYXBhcjsKIAkJKnBhcnAgfD0gKDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEIpIHsKLQkJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYnBhcjsKKwkJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXI7CiAJCSpwYXJwIHw9ICgxIDw8ICgzMSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNwYXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjcGFyOwogCQkqcGFycCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhcjsKIAkJKnBhcnAgfD0gKDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0KIH0KQEAgLTI2MiwxNiArMjYyLDE2IEBACiBpb3Bpbl9zZXRfZ2VuKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYXBhcjsKIAkJKnBhcnAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRCKSB7Ci0JCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXI7CisJCXZvbGF0aWxlIHVpbnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BicGFyOwogCQkqcGFycCAmPSB+KDEgPDwgKDMxIC0gaW9waW4tPnBpbikpOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3BhcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNwYXI7CiAJCSpwYXJwICY9IH4oMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhcjsKIAkJKnBhcnAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0yODAsMTYgKzI4MCwxNiBAQAogaW9waW5faXNfZGVkKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQSkgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wYXBhcjsKIAkJcmV0dXJuICgqcGFycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEIpIHsKLQkJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYnBhcjsKKwkJdm9sYXRpbGUgdWludCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJwYXI7CiAJCXJldHVybiAoKnBhcnAgPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRDKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNwYXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjcGFyOwogCQlyZXR1cm4gKCpwYXJwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JURCkgewotCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkcGFyOworCQl2b2xhdGlsZSB1c2hvcnQgKnBhcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZHBhcjsKIAkJcmV0dXJuICgqcGFycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTI5OSwxNiArMjk5LDE2IEBACiBpb3Bpbl9pc19nZW4oaW9waW5fdCAqaW9waW4pCiB7CiAJaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlRBKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFwYXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhcGFyOwogCQlyZXR1cm4gKCgqcGFycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfSBlbHNlIGlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQikgewotCQl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BicGFyOworCQl2b2xhdGlsZSB1aW50ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYnBhcjsKIAkJcmV0dXJuICgoKnBhcnAgPj4gKDMxIC0gaW9waW4tPnBpbikpICYgMSkgXiAxOwogCX0gZWxzZSBpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3BhcjsKKwkJdm9sYXRpbGUgdXNob3J0ICpwYXJwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNwYXI7CiAJCXJldHVybiAoKCpwYXJwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9IGVsc2UgaWYgKGlvcGluLT5wb3J0ID09IElPUElOX1BPUlREKSB7Ci0JCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRwYXI7CisJCXZvbGF0aWxlIHVzaG9ydCAqcGFycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkcGFyOwogCQlyZXR1cm4gKCgqcGFycCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxKSBeIDE7CiAJfQogCXJldHVybiAwOwpAQCAtMzE4LDcgKzMxOCw3IEBACiBpb3Bpbl9zZXRfb3B0Mihpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpzb3JwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3NvOworCQl2b2xhdGlsZSB1c2hvcnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3NvOwogCQkqc29ycCB8PSAoMSA8PCAoMTUgLSBpb3Bpbi0+cGluKSk7CiAJfQogfQpAQCAtMzI3LDcgKzMyNyw3IEBACiBpb3Bpbl9zZXRfb3B0MShpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpzb3JwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3NvOworCQl2b2xhdGlsZSB1c2hvcnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3NvOwogCQkqc29ycCAmPSB+KDEgPDwgKDE1IC0gaW9waW4tPnBpbikpOwogCX0KIH0KQEAgLTMzNiw3ICszMzYsNyBAQAogaW9waW5faXNfb3B0Mihpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICpzb3JwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3NvOworCQl2b2xhdGlsZSB1c2hvcnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY3NvOwogCQlyZXR1cm4gKCpzb3JwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDE7CiAJfQogCXJldHVybiAwOwpAQCAtMzQ2LDcgKzM0Niw3IEBACiBpb3Bpbl9pc19vcHQxKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKnNvcnAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bjc287CisJCXZvbGF0aWxlIHVzaG9ydCAqc29ycCA9ICYoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3Bjc287CiAJCXJldHVybiAoKCpzb3JwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0zNTYsNyArMzU2LDcgQEAKIGlvcGluX3NldF9mYWxsZWRnZShpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICppbnRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2ludDsKKwkJdm9sYXRpbGUgdXNob3J0ICppbnRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNpbnQ7CiAJCSppbnRwIHw9ICgxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0zNjUsNyArMzY1LDcgQEAKIGlvcGluX3NldF9hbnllZGdlKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKmludHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjaW50OworCQl2b2xhdGlsZSB1c2hvcnQgKmludHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2ludDsKIAkJKmludHAgJj0gfigxIDw8ICgxNSAtIGlvcGluLT5waW4pKTsKIAl9CiB9CkBAIC0zNzQsNyArMzc0LDcgQEAKIGlvcGluX2lzX2ZhbGxlZGdlKGlvcGluX3QgKmlvcGluKQogewogCWlmIChpb3Bpbi0+cG9ydCA9PSBJT1BJTl9QT1JUQykgewotCQl2b2xhdGlsZSB1c2hvcnQgKmludHAgPSAmKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjaW50OworCQl2b2xhdGlsZSB1c2hvcnQgKmludHAgPSAmKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2ludDsKIAkJcmV0dXJuICgqaW50cCA+PiAoMTUgLSBpb3Bpbi0+cGluKSkgJiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTM4NCw3ICszODQsNyBAQAogaW9waW5faXNfYW55ZWRnZShpb3Bpbl90ICppb3BpbikKIHsKIAlpZiAoaW9waW4tPnBvcnQgPT0gSU9QSU5fUE9SVEMpIHsKLQkJdm9sYXRpbGUgdXNob3J0ICppbnRwID0gJigoaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2ludDsKKwkJdm9sYXRpbGUgdXNob3J0ICppbnRwID0gJigoaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNpbnQ7CiAJCXJldHVybiAoKCppbnRwID4+ICgxNSAtIGlvcGluLT5waW4pKSAmIDEpIF4gMTsKIAl9CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wcGMvc3RhdHVzX2xlZC5oIGIvaW5jbHVkZS9hc20tcHBjL3N0YXR1c19sZWQuaAppbmRleCBlYjgxZjM3Li4wMzc1NzA5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvc3RhdHVzX2xlZC5oCisrKyBiL2luY2x1ZGUvYXNtLXBwYy9zdGF0dXNfbGVkLmgKQEAgLTI0LDcgKzI0LDcgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIF9fbGVkX2luaXQgKGxlZF9pZF90IG1hc2ssIGludCBzdGF0ZSkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAogI2lmZGVmIFNUQVRVU19MRURfUEFSCiAJaW1tci0+U1RBVFVTX0xFRF9QQVIgJj0gfm1hc2s7CkBAIC01MSwxMiArNTEsMTIgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIF9fbGVkX3RvZ2dsZSAobGVkX2lkX3QgbWFzaykKIHsKLQkoKGltbWFwX3QgKikgQ0ZHX0lNTVIpLT5TVEFUVVNfTEVEX0RBVCBePSBtYXNrOworCSgoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVIpLT5TVEFUVVNfTEVEX0RBVCBePSBtYXNrOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX19sZWRfc2V0IChsZWRfaWRfdCBtYXNrLCBpbnQgc3RhdGUpCiB7Ci0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKICNpZiAoU1RBVFVTX0xFRF9BQ1RJVkUgPT0gMCkKIAlpZiAoc3RhdGUgPT0gU1RBVFVTX0xFRF9PTikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBwYy91LWJvb3QuaCBiL2luY2x1ZGUvYXNtLXBwYy91LWJvb3QuaAppbmRleCA1NGFjMDFkLi43NDUxOTA1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wcGMvdS1ib290LmgKKysrIGIvaW5jbHVkZS9hc20tcHBjL3UtYm9vdC5oCkBAIC0xMTEsNiArMTExLDEyIEBACiAjaWZkZWYgQ09ORklHX0hBU19FVEgzCiAJdW5zaWduZWQgY2hhciAgIGJpX2VuZXQzYWRkcls2XTsKICNlbmRpZgorI2lmZGVmIENPTkZJR19IQVNfRVRINAorCXVuc2lnbmVkIGNoYXIgICBiaV9lbmV0NGFkZHJbNl07CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfSEFTX0VUSDUKKwl1bnNpZ25lZCBjaGFyICAgYmlfZW5ldDVhZGRyWzZdOworI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR180MDVHUCkgfHwgZGVmaW5lZChDT05GSUdfNDA1RVApIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180MDVFWikgfHwgZGVmaW5lZChDT05GSUdfNDQwR1gpIHx8IFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXNwYXJjL2FzbW1hY3JvLmggYi9pbmNsdWRlL2FzbS1zcGFyYy9hc21tYWNyby5oCmluZGV4IDBjNGNlZmQuLmFlYjg3ZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXNwYXJjL2FzbW1hY3JvLmgKKysrIGIvaW5jbHVkZS9hc20tc3BhcmMvYXNtbWFjcm8uaApAQCAtMzMsOCArMzMsOCBAQAogICogYy1jb2RlIGNhbiBiZSBjYWxsZWQuCiAgKi8KICNkZWZpbmUgU0FWRV9BTExfSEVBRCBcCi0Jc2V0aGkJJWhpKHRyYXBfc2V0dXArKENGR19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSksICVsNDsgXAotCWptcGwJJWw0ICsgJWxvKHRyYXBfc2V0dXArKENGR19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSksICVsNjsKKwlzZXRoaQklaGkodHJhcF9zZXR1cCsoQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSksICVsNDsgXAorCWptcGwJJWw0ICsgJWxvKHRyYXBfc2V0dXArKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpLCAlbDY7CiAjZGVmaW5lIFNBVkVfQUxMIFwKIAlTQVZFX0FMTF9IRUFEIFwKIAlub3A7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zcGFyYy9nbG9iYWxfZGF0YS5oIGIvaW5jbHVkZS9hc20tc3BhcmMvZ2xvYmFsX2RhdGEuaAppbmRleCBlZWIzNWQwLi5kZWEyODU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zcGFyYy9nbG9iYWxfZGF0YS5oCisrKyBiL2luY2x1ZGUvYXNtLXNwYXJjL2dsb2JhbF9kYXRhLmgKQEAgLTM2LDcgKzM2LDcgQEAKICAqIGdsb2JhbCB2YXJpYWJsZXMgZHVyaW5nIHN5c3RlbSBpbml0aWFsaXphdGlvbiAodW50aWwgd2UgaGF2ZSBzZXQKICAqIHVwIHRoZSBtZW1vcnkgY29udHJvbGxlciBzbyB0aGF0IHdlIGNhbiB1c2UgUkFNKS4KICAqCi0gKiBLZWVwIGl0ICpTTUFMTCogYW5kIHJlbWVtYmVyIHRvIHNldCBDRkdfR0JMX0RBVEFfU0laRSA+IHNpemVvZihnZF90KQorICogS2VlcCBpdCAqU01BTEwqIGFuZCByZW1lbWJlciB0byBzZXQgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFID4gc2l6ZW9mKGdkX3QpCiAgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgZ2xvYmFsX2RhdGEgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tc3BhcmMvaW8uaCBiL2luY2x1ZGUvYXNtLXNwYXJjL2lvLmgKaW5kZXggZWRlMGIxYS4uNWY4ZDA1YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tc3BhcmMvaW8uaAorKysgYi9pbmNsdWRlL2FzbS1zcGFyYy9pby5oCkBAIC0zMiw3ICszMiw3IEBACiAgKiBvdmVyIGFuZCBvdmVyIGFnYWluIHJlc3VsdGluZyBpbiBhIGhhbmcgKHVudGlsIGFuIElSUSBpZiBsdWNreSkKICAqCiAgKi8KLSNpZm5kZWYgQ0ZHX0hBU19OT19DQUNIRQorI2lmbmRlZiBDT05GSUdfU1lTX0hBU19OT19DQUNIRQogI2RlZmluZSBSRUFEX0JZVEUodmFyKSAgU1BBUkNfTk9DQUNIRV9SRUFEX0JZVEUoKHVuc2lnbmVkIGludCkodmFyKSkKICNkZWZpbmUgUkVBRF9IV09SRCh2YXIpIFNQQVJDX05PQ0FDSEVfUkVBRF9IV09SRCgodW5zaWduZWQgaW50KSh2YXIpKQogI2RlZmluZSBSRUFEX1dPUkQodmFyKSAgU1BBUkNfTk9DQUNIRV9SRUFEKCh1bnNpZ25lZCBpbnQpKHZhcikpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2F0YS5oIGIvaW5jbHVkZS9hdGEuaAppbmRleCAyMzk2NzY5Li5iNTE0NzVkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2F0YS5oCisrKyBiL2luY2x1ZGUvYXRhLmgKQEAgLTM5LDEzICszOSwxMyBAQAogICogOC1iaXQgKHJlZ2lzdGVyKSBhbmQgMTYtYml0IChkYXRhKSBhY2Nlc3NlcyBtaWdodCB1c2UgZGlmZmVyZW50CiAgKiBhZGRyZXNzIHNwYWNlcy4gVGhpcyBpcyBpbXBsZW1lbnRlZCBieSB0aGUgZm9sbG93aW5nIGRlZmluaXRpb25zLgogICovCi0jaWZuZGVmIENGR19BVEFfU1RSSURFCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCTEKKyNpZm5kZWYgQ09ORklHX1NZU19BVEFfU1RSSURFCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkxCiAjZW5kaWYKIAotI2RlZmluZSBBVEFfSU9fREFUQSh4KQkoQ0ZHX0FUQV9EQVRBX09GRlNFVCsoKHgpICogQ0ZHX0FUQV9TVFJJREUpKQotI2RlZmluZSBBVEFfSU9fUkVHKHgpCShDRkdfQVRBX1JFR19PRkZTRVQgKygoeCkgKiBDRkdfQVRBX1NUUklERSkpCi0jZGVmaW5lIEFUQV9JT19BTFQoeCkJKENGR19BVEFfQUxUX09GRlNFVCArKCh4KSAqIENGR19BVEFfU1RSSURFKSkKKyNkZWZpbmUgQVRBX0lPX0RBVEEoeCkJKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKygoeCkgKiBDT05GSUdfU1lTX0FUQV9TVFJJREUpKQorI2RlZmluZSBBVEFfSU9fUkVHKHgpCShDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUICsoKHgpICogQ09ORklHX1NZU19BVEFfU1RSSURFKSkKKyNkZWZpbmUgQVRBX0lPX0FMVCh4KQkoQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCArKCh4KSAqIENPTkZJR19TWVNfQVRBX1NUUklERSkpCiAKIC8qCiAgKiBJL08gUmVnaXN0ZXIgRGVzY3JpcHRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbW1hbmQuaCBiL2luY2x1ZGUvY29tbWFuZC5oCmluZGV4IGY5MjM4M2QuLmE4YTE1M2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29tbWFuZC5oCisrKyBiL2luY2x1ZGUvY29tbWFuZC5oCkBAIC00NSw3ICs0NSw3IEBACiAJCQkJCS8qIEltcGxlbWVudGF0aW9uIGZ1bmN0aW9uCSovCiAJaW50CQkoKmNtZCkoc3RydWN0IGNtZF90YmxfcyAqLCBpbnQsIGludCwgY2hhciAqW10pOwogCWNoYXIJCSp1c2FnZTsJCS8qIFVzYWdlIG1lc3NhZ2UJKHNob3J0KQkqLwotI2lmZGVmCUNGR19MT05HSEVMUAorI2lmZGVmCUNPTkZJR19TWVNfTE9OR0hFTFAKIAljaGFyCQkqaGVscDsJCS8qIEhlbHAgIG1lc3NhZ2UJKGxvbmcpCSovCiAjZW5kaWYKICNpZmRlZiBDT05GSUdfQVVUT19DT01QTEVURQpAQCAtNjIsNiArNjIsNyBAQAogCiAvKiBjb21tb24vY29tbWFuZC5jICovCiBjbWRfdGJsX3QgKmZpbmRfY21kKGNvbnN0IGNoYXIgKmNtZCk7CitjbWRfdGJsX3QgKmZpbmRfY21kX3RibCAoY29uc3QgY2hhciAqY21kLCBjbWRfdGJsX3QgKnRhYmxlLCBpbnQgdGFibGVfbGVuKTsKIAogI2lmZGVmIENPTkZJR19BVVRPX0NPTVBMRVRFCiBleHRlcm4gdm9pZCBpbnN0YWxsX2F1dG9fY29tcGxldGUodm9pZCk7CkBAIC05NywxNiArOTgsMjIgQEAKIAogI2RlZmluZSBTdHJ1Y3RfU2VjdGlvbiAgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCxzZWN0aW9uICgiLnVfYm9vdF9jbWQiKSkpCiAKLSNpZmRlZiAgQ0ZHX0xPTkdIRUxQCisjaWZkZWYgIENPTkZJR19TWVNfTE9OR0hFTFAKIAogI2RlZmluZSBVX0JPT1RfQ01EKG5hbWUsbWF4YXJncyxyZXAsY21kLHVzYWdlLGhlbHApIFwKIGNtZF90YmxfdCBfX3VfYm9vdF9jbWRfIyNuYW1lIFN0cnVjdF9TZWN0aW9uID0geyNuYW1lLCBtYXhhcmdzLCByZXAsIGNtZCwgdXNhZ2UsIGhlbHB9CiAKKyNkZWZpbmUgVV9CT09UX0NNRF9NS0VOVChuYW1lLG1heGFyZ3MscmVwLGNtZCx1c2FnZSxoZWxwKSBcCit7I25hbWUsIG1heGFyZ3MsIHJlcCwgY21kLCB1c2FnZSwgaGVscH0KKwogI2Vsc2UJLyogbm8gbG9uZyBoZWxwIGluZm8gKi8KIAogI2RlZmluZSBVX0JPT1RfQ01EKG5hbWUsbWF4YXJncyxyZXAsY21kLHVzYWdlLGhlbHApIFwKIGNtZF90YmxfdCBfX3VfYm9vdF9jbWRfIyNuYW1lIFN0cnVjdF9TZWN0aW9uID0geyNuYW1lLCBtYXhhcmdzLCByZXAsIGNtZCwgdXNhZ2V9CiAKLSNlbmRpZgkvKiBDRkdfTE9OR0hFTFAgKi8KKyNkZWZpbmUgVV9CT09UX0NNRF9NS0VOVChuYW1lLG1heGFyZ3MscmVwLGNtZCx1c2FnZSxoZWxwKSBcCit7I25hbWUsIG1heGFyZ3MsIHJlcCwgY21kLCB1c2FnZX0KKworI2VuZGlmCS8qIENPTkZJR19TWVNfTE9OR0hFTFAgKi8KIAogI2VuZGlmCS8qIF9fQ09NTUFORF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbW1vbi5oIGIvaW5jbHVkZS9jb21tb24uaAppbmRleCAzM2M2ZTEwLi5lNjU5MDQ0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvY29tbW9uLmgKQEAgLTI3NiwxMCArMjc2LDEwIEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkgJiYgKGRlZmluZWQoQ09ORklHXzQ0MCkgfHwgZGVmaW5lZChDT05GSUdfNDA1RVgpKQotIyAgIGlmIGRlZmluZWQoQ0ZHX1BDSV9UQVJHRVRfSU5JVCkKKyMgICBpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUKQogCXZvaWQJcGNpX3RhcmdldF9pbml0CSAgICAgKHN0cnVjdCBwY2lfY29udHJvbGxlciAqKTsKICMgICBlbmRpZgotIyAgIGlmIGRlZmluZWQoQ0ZHX1BDSV9NQVNURVJfSU5JVCkKKyMgICBpZiBkZWZpbmVkKENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUKQogCXZvaWQJcGNpX21hc3Rlcl9pbml0CSAgICAgKHN0cnVjdCBwY2lfY29udHJvbGxlciAqKTsKICMgICBlbmRpZgogICAgIGludAkgICAgaXNfcGNpX2hvc3QJCShzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKik7CkBAIC0zMjIsMTEgKzMyMiwxMSBAQAogICogU2V0IHRoaXMgdXAgcmVnYXJkbGVzcyBvZiBib2FyZAogICogdHlwZSwgdG8gcHJldmVudCBlcnJvcnMuCiAgKi8KLSNpZiBkZWZpbmVkKENPTkZJR19TUEkpIHx8ICFkZWZpbmVkKENGR19JMkNfRUVQUk9NX0FERFIpCi0jIGRlZmluZSBDRkdfREVGX0VFUFJPTV9BRERSIDAKKyNpZiBkZWZpbmVkKENPTkZJR19TUEkpIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKQorIyBkZWZpbmUgQ09ORklHX1NZU19ERUZfRUVQUk9NX0FERFIgMAogI2Vsc2UKLSMgZGVmaW5lIENGR19ERUZfRUVQUk9NX0FERFIgQ0ZHX0kyQ19FRVBST01fQUREUgotI2VuZGlmIC8qIENPTkZJR19TUEkgfHwgIWRlZmluZWQoQ0ZHX0kyQ19FRVBST01fQUREUikgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfREVGX0VFUFJPTV9BRERSIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCisjZW5kaWYgLyogQ09ORklHX1NQSSB8fCAhZGVmaW5lZChDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUikgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1NQSSkKIGV4dGVybiB2b2lkIHNwaV9pbml0X2YgKHZvaWQpOwpAQCAtMzc2LDkgKzM3Niw5IEBACiBpbnQgYm9hcmRfZWFybHlfaW5pdF9yICh2b2lkKTsKIHZvaWQgYm9hcmRfcG93ZXJvZmYgKHZvaWQpOwogCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCiBpbnQgdGVzdGRyYW0odm9pZCk7Ci0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUICovCiAKIC8qICQoQ1BVKS9zdGFydC5TICovCiAjaWYgZGVmaW5lZChDT05GSUdfNXh4KSB8fCBcCkBAIC02MDgsNyArNjA4LDcgQEAKIAogLyogbGliX2dlbmVyaWMvdnNwcmludGYuYyAqLwogdWxvbmcJc2ltcGxlX3N0cnRvdWwoY29uc3QgY2hhciAqY3AsY2hhciAqKmVuZHAsdW5zaWduZWQgaW50IGJhc2UpOwotI2lmZGVmIENGR182NEJJVF9WU1BSSU5URgorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYKIHVuc2lnbmVkIGxvbmcgbG9uZwlzaW1wbGVfc3RydG91bGwoY29uc3QgY2hhciAqY3AsY2hhciAqKmVuZHAsdW5zaWduZWQgaW50IGJhc2UpOwogI2VuZGlmCiBsb25nCXNpbXBsZV9zdHJ0b2woY29uc3QgY2hhciAqY3AsY2hhciAqKmVuZHAsdW5zaWduZWQgaW50IGJhc2UpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tcHJvYy5oIGIvaW5jbHVkZS9jb21tcHJvYy5oCmluZGV4IDBhNGU4MTcuLjEyZGVjZmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29tbXByb2MuaAorKysgYi9pbmNsdWRlL2NvbW1wcm9jLmgKQEAgLTYyLDcgKzYyLDcgQEAKICAqIGFzIGRhdGEgcmFtIGZvciBidWZmZXIgZGVzY3JpcHRvcnMsIHdoaWNoIGlzIGFsbCB3ZSB1c2UgcmlnaHQgbm93LgogICogQ3VycmVudGx5IHRoZSBmaXJzdCA1MTIgYW5kIGxhc3QgMjU2IGJ5dGVzIGFyZSB1c2VkIGZvciBtaWNyb2NvZGUuCiAgKi8KLSNpZmRlZiAgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAogI2RlZmluZSBDUE1fREFUQU9OTFlfQkFTRQkoKHVpbnQpMHgwODAwKQogI2RlZmluZSBDUE1fREFUQU9OTFlfU0laRQkoKHVpbnQpMHgwNzAwKQpAQCAtODEsMTYgKzgxLDE2IEBACiAKICNlbmRpZgogCi0jaWZuZGVmIENGR19DUE1fUE9TVF9XT1JEX0FERFIKKyNpZm5kZWYgQ09ORklHX1NZU19DUE1fUE9TVF9XT1JEX0FERFIKICNkZWZpbmUgQ1BNX1BPU1RfV09SRF9BRERSCTB4MDdGQwogI2Vsc2UKLSNkZWZpbmUgQ1BNX1BPU1RfV09SRF9BRERSCUNGR19DUE1fUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ1BNX1BPU1RfV09SRF9BRERSCUNPTkZJR19TWVNfQ1BNX1BPU1RfV09SRF9BRERSCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfQ1BNX0JPT1RDT1VOVF9BRERSCisjaWZuZGVmIENPTkZJR19TWVNfQ1BNX0JPT1RDT1VOVF9BRERSCiAjZGVmaW5lIENQTV9CT09UQ09VTlRfQUREUgkoQ1BNX1BPU1RfV09SRF9BRERSIC0gMipzaXplb2YodWxvbmcpKQogI2Vsc2UKLSNkZWZpbmUgQ1BNX0JPT1RDT1VOVF9BRERSCUNGR19DUE1fQk9PVENPVU5UX0FERFIKKyNkZWZpbmUgQ1BNX0JPT1RDT1VOVF9BRERSCUNPTkZJR19TWVNfQ1BNX0JPT1RDT1VOVF9BRERSCiAjZW5kaWYKIAogI2RlZmluZSBCRF9JSUNfU1RBUlQJKCh1aW50KSAweDA0MDApIC8qIDwtIHBsZWFzZSB1c2UgQ1BNX0kyQ19CQVNFICEhICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQTMwMDAuaCBiL2luY2x1ZGUvY29uZmlncy9BMzAwMC5oCmluZGV4IGNlZTU1NjAuLjZkODg3MGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BMzAwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BMzAwMC5oCkBAIC00OCw3ICs0OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAKQEAgLTcxLDE2ICs3MSwxNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI3VuZGVmIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJBMzAwMD4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyN1bmRlZiBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJBMzAwMD4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwk4CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgwMDQwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJOAkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDA0MDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtODgsOCArODgsOCBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTExOCw2NCArMTE4LDY0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMF9QUkVMSU0JCTB4RkYwMDAwMDAJLyogRkxBU0ggYmFuayBvbiBSQ1MjMCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTFfUFJFTElNCQkweEZGMDAwMDAwCS8qIEZMQVNIIGJhbmsgb24gUkNTIzEgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlDRkdfRkxBU0hfQkFTRTBfUFJFTElNCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LUwkJCXsgQ0ZHX0ZMQVNIX0JBU0UwX1BSRUxJTSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTBfUFJFTElNCQkweEZGMDAwMDAwCS8qIEZMQVNIIGJhbmsgb24gUkNTIzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMV9QUkVMSU0JCTB4RkYwMDAwMDAJLyogRkxBU0ggYmFuayBvbiBSQ1MjMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTCQkJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTSB9CiAKIC8qIGV2ZW4gdGhvdWdoIEZMQVNIUF9CQVNFIGlzIEZGODAwMDAwLCB3aXRoIDRNQiBpcyBSQ1MwLCB0aGUKICAqIHJlc2V0IHZlY3RvciBpcyBhY3R1YWxseSBsb2NhdGVkIGF0IEZGQjAwMTAwLCBidXQgdGhlIDgyNDUKICAqIHRha2VzIGNhcmUgb2YgdXMuCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIAkvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uCiAJICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHgwNDAwMDAwMAkvKiAwIC4uIDEyOCBNQiBvZiAoUylEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4MDQwMDAwMDAJLyogMCAuLiAxMjggTUIgb2YgKFMpRFJBTSAqLwogCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0VVTUJfQUREUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ2MDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCiAKLS8qICNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkgICBURVhUX0JBU0UgKi8KLS8qI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAyNTYqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisvKiAjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCSAgIFRFWFRfQkFTRSAqLworLyojZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAyNTYqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIAogLyoKQEAgLTE4Niw0MSArMTg2LDQxIEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzMzMzMzMwkvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsICovCi0jZGVmaW5lIENGR19IWgkJICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgMTAwMAogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuCiAJICovCi0jZGVmaW5lIENGR19ST01OQUwJICAgIDcKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgMTEKLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRQkgICAgMHgzCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCSAgICA3CisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCSAgICAxMQorI2RlZmluZSBDT05GSUdfU1lTX0RCVVNfU0laRQkgICAgMHgzCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMi4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1RTV0FJVAkgICAgMHg1CQkgICAgLyogVHJhbnNhY3Rpb24gU3RhcnQgV2FpdCBTdGF0ZXMgdGltZXIgKi8KLSNkZWZpbmUgQ0ZHX1JFRklOVAkgICAgMHg0MDAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJRklYTUU6IHdhcyAwdDQzMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19UU1dBSVQJICAgIDB4NQkJICAgIC8qIFRyYW5zYWN0aW9uIFN0YXJ0IFdhaXQgU3RhdGVzIHRpbWVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCSAgICAweDQwMAkgICAgLyogUmVmcmVzaCBpbnRlcnZhbAlGSVhNRTogd2FzIDB0NDMwCQkqLwogCiAJLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkgICAgMTIxCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMTIxCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkgICAgOAkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkgICAgOAkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjQuCiAJICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkgICAgMwkgICAgLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsIEZJWE1FOiB3YXMgMgkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJICAgIDUJICAgIC8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbCBGSVhNRTogd2FzIDUJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkgICAgMwkJLyogRklYTUUgd2FzIDIgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUICAzCSAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCSovCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQotI2RlZmluZSBDRkdfRVhUUk9NCSAgICAxCi0jZGVmaW5lIENGR19SRUdESU1NCSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJICAgIDMJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbCBGSVhNRTogd2FzIDIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsIEZJWE1FOiB3YXMgNQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkgICAgMwkJLyogRklYTUUgd2FzIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMwkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JICAgIDAKIAotI2RlZmluZSBDRkdfUEdNQVgJICAgIDB4MzIgLyogaG93IGxvbmcgdGhlIDgyNDAgcmVhdGlucyB0aGUgY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5IEZJWE1FOiB3YXMgMHgzMiovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJICAgIDB4MzIgLyogaG93IGxvbmcgdGhlIDgyNDAgcmVhdGlucyB0aGUgY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5IEZJWE1FOiB3YXMgMHgzMiovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0RTQ0QJMHgyMAkvKiBTRFJBTSBkYXRhIGluIHNhbXBsZSBjbG9jayBkZWxheSAtIG5vdGUgYm90dG9tIDMgYml0cyBNVVNUIGJlIDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9EU0NECTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkgLSBub3RlIGJvdHRvbSAzIGJpdHMgTVVTVCBiZSAwICovCiAKIC8qIE1lbW9yeSBiYW5rIHNldHRpbmdzLgogICogT25seSBiaXRzIDIwLTI5IGFyZSBhY3R1YWxseSB1c2VkIGZyb20gdGhlc2UgdmFsZXMgdG8gc2V0IHRoZQpAQCAtMjI5LDY5ICsyMjksNjkgQEAKICAqIGFkZHJlc3MuIFJlZmVyIHRvIHRoZSBNUEM4MjQwIGJvb2suCiAgKi8KIAotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkgICAgKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFICAgIDEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJICAgIChDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRSAgICAwCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJICAgIDB4ZmYKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCSAgICAweGZmCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCiAKIAkvKiBXYXJpbmluZzogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBVLUJvb3QgY29kZS4KQEAgLTMwNSw5ICszMDUsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQURDSU9QLmggYi9pbmNsdWRlL2NvbmZpZ3MvQURDSU9QLmgKaW5kZXggY2M3ZWRkYy4uZDgzMDNmMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FEQ0lPUC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BRENJT1AuaApAQCAtNTAsNyArNTAsNyBAQAogI3VuZGVmCUNPTkZJR19CT09UQVJHUwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtODIsOTEgKzgyLDkxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MGYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDAwZGYwMDAwIC8qIGluc2lkZSBvZiBTRFJBTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MGYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHgwQUE5CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgwNTU2CS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHgwQUE5CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MDU1NgkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDIJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAwCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwNAkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAyCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDAJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwNAkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAxIC8qIFVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEJLyogdXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHgxMDAwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4MTAwMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDA0MDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLwotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSICAgICAoQ0ZHX05WUkFNX0JBU0VfQUREUisweDc4MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUisweDc4MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLwogCiAjZWxzZSAvKiBVc2UgRkxBU0ggZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogCkBAIC0xODgsOCArMTg4LDggQEAKIAogI2RlZmluZSBDT05GSUdfVFVMSVAKIAotI2RlZmluZSBDRkdfRVRIX0RFVl9GTgkgICAgIDB4MDAwMAotI2RlZmluZSBDRkdfRVRIX0lPQkFTRQkgICAgIDB4MGZmZjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfREVWX0ZOCSAgICAgMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0lPQkFTRQkgICAgIDB4MGZmZjAwMDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQUROUEVTQzEuaCBiL2luY2x1ZGUvY29uZmlncy9BRE5QRVNDMS5oCmluZGV4IDliODRkMWYuLmU2MWEzZTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BRE5QRVNDMS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BRE5QRVNDMS5oCkBAIC0zNCw3ICszNCw3IEBACiAjaWYJZGVmaW5lZChDT05GSUdfTklPU19CQVNFXzMyKQogI2luY2x1ZGUgPGNvbmZpZ3MvQUROUEVTQzFfYmFzZV8zMi5oPgogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCByaWdodCBOSU9TIENQVSBjb25maWd1cmF0aW9uCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIHJpZ2h0IE5JT1MgQ1BVIGNvbmZpZ3VyYXRpb24KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDIsMzYgKzQyLDM2IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfTklPUwkJMQkJLyogTklPUy0zMiBjb3JlCQkqLwogI2RlZmluZQlDT05GSUdfQUROUEVTQzEJCTEJCS8qIFNTViBBRE5QL0VTQzEgYm9hcmQJKi8KLSNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQlDRkdfTklPU19DUFVfQ0xLLyogNTAgTUh6IGNvcmUgY2xvY2sJKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkJLyogMSBtc2VjIHRpbWUgdGljawkqLwotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgorI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCUNPTkZJR19TWVNfTklPU19DUFVfQ0xLLyogNTAgTUh6IGNvcmUgY2xvY2sJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIDEgbXNlYyB0aW1lIHRpY2sJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCiAjZGVmaW5lCUNPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBlbmFibGUgZWFybHkgYm9hcmQtc3BlYy4gaW5pdCovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQVNFIEFERFJFU1NFUyAvIFNJWkUgKEZsYXNoLCBTUkFNLCBTRFJBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9TRFJBTV9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRSAhPSAwKQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfTklPU19DUFVfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJQ0ZHX05JT1NfQ1BVX1NEUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgU0RSQU0gaW4gTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGFueSBTRFJBTSBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCi0jaWYJZGVmaW5lZChDRkdfTklPU19DUFVfU1JBTV9CQVNFKSAmJiBkZWZpbmVkKENGR19OSU9TX0NQVV9TUkFNX1NJWkUpCisjaWYJZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRSkKIAotI2RlZmluZQlDRkdfU1JBTV9CQVNFCQlDRkdfTklPU19DUFVfU1JBTV9CQVNFCi0jZGVmaW5lCUNGR19TUkFNX1NJWkUJCUNGR19OSU9TX0NQVV9TUkFNX1NJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19TUkFNX0JBU0UJCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfU1JBTV9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRQogCiAjZWxzZQogCi0jdW5kZWYJQ0ZHX1NSQU1fQkFTRQotI3VuZGVmCUNGR19TUkFNX1NJWkUKKyN1bmRlZglDT05GSUdfU1lTX1NSQU1fQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfU1JBTV9TSVpFCiAKICNlbmRpZgogCi0jZGVmaW5lIENGR19WRUNUX0JBU0UJCUNGR19OSU9TX0NQVV9WRUNfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1ZFQ1RfQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUVNT1JZIE9SR0FOSVpBVElPTiAtIEZvciB0aGUgbW9zdCBwYXJ0LCB5b3UgY2FuIHB1dCB0aGluZ3MgcHJldHR5CkBAIC04NSw0NCArODUsNDQgQEAKICAqCS1HbG9iYWwgZGF0YSBpcyBwbGFjZWQgYmVsb3cgdGhlIGhlYXAuCiAgKgktVGhlIHN0YWNrIGlzIHBsYWNlZCBiZWxvdyBnbG9iYWwgZGF0YSAoJmdyb3dzIGRvd24pLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NT05JVE9SX0JBU0UgLSBDRkdfTUFMTE9DX0xFTikKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX01BTExPQ19CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQCQlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX01BTExPQ19CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1AJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCAoQU0yOUxWMDY1RCkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9GTEFTSF9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfTklPU19DUFVfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplCSovCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYW55IEZsYXNoIG1lbW9yeSBpbiBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYW55IEZsYXNoIG1lbW9yeSBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRU5WSVJPTk1FTlQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9GTEFTSF9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQkJLyogRW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KIAogLyogTWVtIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KICNpZglkZWZpbmVkKENPTkZJR19OSU9TX0JBU0VfMzIpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCB0aGUgZW52aXJvbm1lbnQgYmFzZSBhZGRyZXNzIENPTkZJR19FTlZfQUREUgorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCB0aGUgZW52aXJvbm1lbnQgYmFzZSBhZGRyZXNzIENPTkZJR19FTlZfQUREUgogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCkBAIC0xMzYsMjYgKzEzNiwyNiBAQAogICogTklPUyBBUFBMSUNBVElPTiBDT0RFIEJBU0UgQVJFQQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZgkoKENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSkgPT0gMHgxMDUwMDAwKQotI2RlZmluZQlDRkdfQUROUEVTQzFfVVBEQVRFX0xPQURfQUREUgkiMHgyMDAwMTAwIgotI2RlZmluZSBDRkdfQUROUEVTQzFfTklPU19BUFBMX0VOVFJZCSIweDEwNTAwMDAiCi0jZGVmaW5lIENGR19BRE5QRVNDMV9OSU9TX0FQUExfSURFTlQJIjB4MTA1MDAwYyIKLSNkZWZpbmUJQ0ZHX0FETlBFU0MxX05JT1NfQVBQTF9FTkQJIjB4MTFmZmZmZiIKLSNkZWZpbmUgQ0ZHX0FETlBFU0MxX0ZJTEVTWVNURU1fQkFTRQkiMHgxMjAwMDAwIgotI2RlZmluZQlDRkdfQUROUEVTQzFfRklMRVNZU1RFTV9FTkQJIjB4MTdmZmZmZiIKKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9VUERBVEVfTE9BRF9BRERSCSIweDIwMDAxMDAiCisjZGVmaW5lIENPTkZJR19TWVNfQUROUEVTQzFfTklPU19BUFBMX0VOVFJZCSIweDEwNTAwMDAiCisjZGVmaW5lIENPTkZJR19TWVNfQUROUEVTQzFfTklPU19BUFBMX0lERU5UCSIweDEwNTAwMGMiCisjZGVmaW5lCUNPTkZJR19TWVNfQUROUEVTQzFfTklPU19BUFBMX0VORAkiMHgxMWZmZmZmIgorI2RlZmluZSBDT05GSUdfU1lTX0FETlBFU0MxX0ZJTEVTWVNURU1fQkFTRQkiMHgxMjAwMDAwIgorI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX0ZJTEVTWVNURU1fRU5ECSIweDE3ZmZmZmYiCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IG1pc3NpbmcgcmlnaHQgYXBwbC5jb2RlIGJhc2UgY29uZmlndXJhdGlvbiwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogbWlzc2luZyByaWdodCBhcHBsLmNvZGUgYmFzZSBjb25maWd1cmF0aW9uLCBleHBhbmQgeW91ciBjb25maWcuaAogI2VuZGlmCi0jZGVmaW5lIENGR19BRE5QRVNDMV9OSU9TX0lERU5USUZJRVIJIk5pb3MiCisjZGVmaW5lIENPTkZJR19TWVNfQUROUEVTQzFfTklPU19JREVOVElGSUVSCSJOaW9zIgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQk9PVCBFTlZJUk9OTUVOVAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZmRlZglDT05GSUdfRE5QRVZBMgkJCS8qIEROUC9FVkEyIGJhc2UgYm9hcmQgKi8KLSNkZWZpbmUJQ0ZHX0FETlBFU0MxX1NMRURfQk9PVF9PRkYJInNsZWQgYm9vdCBvZmY7ICIKLSNkZWZpbmUJQ0ZHX0FETlBFU0MxX1NMRURfUkVEX0JMSU5LCSJzbGVkIHJlZCBibGluazsgIgorI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX1NMRURfQk9PVF9PRkYJInNsZWQgYm9vdCBvZmY7ICIKKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1JFRF9CTElOSwkic2xlZCByZWQgYmxpbms7ICIKICNlbHNlCi0jZGVmaW5lCUNGR19BRE5QRVNDMV9TTEVEX0JPT1RfT0ZGCi0jZGVmaW5lCUNGR19BRE5QRVNDMV9TTEVEX1JFRF9CTElOSworI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX1NMRURfQk9PVF9PRkYKKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1JFRF9CTElOSwogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX0JPT1RERUxBWQk1CkBAIC0xNjMsMTAgKzE2MywxMCBAQAogCSJpZiBpdGVzdC5zICokYXBwbF9pZGVudF9hZGRyID09IFwiJGFwcGxfaWRlbnRfc3RyXCI7ICIJCVwKIAkidGhlbiAiCQkJCQkJCQlcCiAJCSJ3ZCBvZmY7ICIJCQkJCQlcCi0JCUNGR19BRE5QRVNDMV9TTEVEX0JPT1RfT0ZGCQkJCVwKKwkJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX0JPT1RfT0ZGCQkJCVwKIAkJImdvICRhcHBsX2VudHJ5X2FkZHI7ICIJCQkJCVwKIAkiZWxzZSAiCQkJCQkJCQlcCi0JCUNGR19BRE5QRVNDMV9TTEVEX1JFRF9CTElOSwkJCQlcCisJCUNPTkZJR19TWVNfQUROUEVTQzFfU0xFRF9SRURfQkxJTksJCQkJXAogCQkiZWNobyAqKiogbWlzc2luZyBcIiRhcHBsX2lkZW50X3N0clwiIGF0ICRhcHBsX2lkZW50X2FkZHI7ICJcCiAJCSJlY2hvICoqKiBpbnZhbGlkIGFwcGxpY2F0aW9uIGF0ICRhcHBsX2VudHJ5X2FkZHI7ICIJXAogCQkiZWNobyAqKiogc3RvcCBib290dXAuLi47ICIJCQkJXApAQCAtMTc2LDQ1ICsxNzYsNDUgQEAKICAqIEVYVFJBIEVOVklST05NRU5UCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmZGVmCUNPTkZJR19ETlBFVkEyCQkJLyogRE5QL0VWQTIgYmFzZSBib2FyZCAqLwotI2RlZmluZQlDRkdfQUROUEVTQzFfU0xFRF9ZRUxMT19PTgkic2xlZCB5ZWxsb3cgb247ICIKLSNkZWZpbmUJQ0ZHX0FETlBFU0MxX1NMRURfWUVMTE9fT0ZGCSJzbGVkIHllbGxvdyBvZmY7ICIKKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1lFTExPX09OCSJzbGVkIHllbGxvdyBvbjsgIgorI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX1NMRURfWUVMTE9fT0ZGCSJzbGVkIHllbGxvdyBvZmY7ICIKICNlbHNlCi0jZGVmaW5lCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09OCi0jZGVmaW5lCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09GRgorI2RlZmluZQlDT05GSUdfU1lTX0FETlBFU0MxX1NMRURfWUVMTE9fT04KKyNkZWZpbmUJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1lFTExPX09GRgogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAogCSJ1cGRhdGVfYWxsb3dlZD0wXDAiCQkJCQkJXAotCSJ1cGRhdGVfbG9hZF9hZGRyPSIJQ0ZHX0FETlBFU0MxX1VQREFURV9MT0FEX0FERFIJIlwwIglcCi0JImFwcGxfZW50cnlfYWRkcj0iCUNGR19BRE5QRVNDMV9OSU9TX0FQUExfRU5UUlkJIlwwIglcCi0JImFwcGxfZW5kX2FkZHI9IglDRkdfQUROUEVTQzFfTklPU19BUFBMX0VORAkiXDAiCVwKLQkiYXBwbF9pZGVudF9hZGRyPSIJQ0ZHX0FETlBFU0MxX05JT1NfQVBQTF9JREVOVAkiXDAiCVwKLQkiYXBwbF9pZGVudF9zdHI9IglDRkdfQUROUEVTQzFfTklPU19JREVOVElGSUVSCSJcMCIJXAorCSJ1cGRhdGVfbG9hZF9hZGRyPSIJQ09ORklHX1NZU19BRE5QRVNDMV9VUERBVEVfTE9BRF9BRERSCSJcMCIJXAorCSJhcHBsX2VudHJ5X2FkZHI9IglDT05GSUdfU1lTX0FETlBFU0MxX05JT1NfQVBQTF9FTlRSWQkiXDAiCVwKKwkiYXBwbF9lbmRfYWRkcj0iCUNPTkZJR19TWVNfQUROUEVTQzFfTklPU19BUFBMX0VORAkiXDAiCVwKKwkiYXBwbF9pZGVudF9hZGRyPSIJQ09ORklHX1NZU19BRE5QRVNDMV9OSU9TX0FQUExfSURFTlQJIlwwIglcCisJImFwcGxfaWRlbnRfc3RyPSIJQ09ORklHX1NZU19BRE5QRVNDMV9OSU9TX0lERU5USUZJRVIJIlwwIglcCiAJImFwcGxfbmFtZT1BRE5QRVNDMS9iYXNlMzIvbGludXguYmluXDAiCQkJCVwKIAkiYXBwbF91cGRhdGU9IgkJCQkJCQlcCiAJCSJpZiBpdGVzdC5iICR1cGRhdGVfYWxsb3dlZCAhPSAwOyAiCQkJXAogCQkidGhlbiAiCQkJCQkJCVwKLQkJCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09OCQkJXAorCQkJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1lFTExPX09OCQkJXAogCQkJInRmdHAgJHVwZGF0ZV9sb2FkX2FkZHIgJGFwcGxfbmFtZTsgIgkJXAogCQkJInByb3RlY3Qgb2ZmICRhcHBsX2VudHJ5X2FkZHIgJGFwcGxfZW5kX2FkZHI7ICIJXAogCQkJImVyYSAkYXBwbF9lbnRyeV9hZGRyICRhcHBsX2VuZF9hZGRyOyAiCQlcCiAJCQkiY3AuYiAkdXBkYXRlX2xvYWRfYWRkciAkYXBwbF9lbnRyeV9hZGRyICRmaWxlc2l6ZTsgIlwKLQkJCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09GRgkJCVwKKwkJCUNPTkZJR19TWVNfQUROUEVTQzFfU0xFRF9ZRUxMT19PRkYJCQlcCiAJCSJlbHNlICIJCQkJCQkJXAogCQkJImVjaG8gKioqIHVwZGF0ZSBub3QgYWxsb3dlZCAodXBkYXRlX2FsbG93ZWQ9JHVwZGF0ZV9hbGxvd2VkKTsgIlwKIAkJImZpXDAiCQkJCQkJCVwKLQkiZnNfYmFzZV9hZGRyPSIJCUNGR19BRE5QRVNDMV9GSUxFU1lTVEVNX0JBU0UJIlwwIglcCi0JImZzX2VuZF9hZGRyPSIJCUNGR19BRE5QRVNDMV9GSUxFU1lTVEVNX0VORAkiXDAiCVwKKwkiZnNfYmFzZV9hZGRyPSIJCUNPTkZJR19TWVNfQUROUEVTQzFfRklMRVNZU1RFTV9CQVNFCSJcMCIJXAorCSJmc19lbmRfYWRkcj0iCQlDT05GSUdfU1lTX0FETlBFU0MxX0ZJTEVTWVNURU1fRU5ECSJcMCIJXAogCSJmc19uYW1lPUFETlBFU0MxL2Jhc2UzMi9yb21mcy5pbWdcMCIJCQkJXAogCSJmc191cGRhdGU9IgkJCQkJCQlcCiAJCSJpZiBpdGVzdC5iICR1cGRhdGVfYWxsb3dlZCAhPSAwOyAiCQkJXAogCQkidGhlbiAiCQkJCQkJCVwKLQkJCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09OCQkJXAorCQkJQ09ORklHX1NZU19BRE5QRVNDMV9TTEVEX1lFTExPX09OCQkJXAogCQkJInRmdHAgJHVwZGF0ZV9sb2FkX2FkZHIgJGZzX25hbWU7ICIJCVwKIAkJCSJwcm90ZWN0IG9mZiAkZnNfYmFzZV9hZGRyICRmc19lbmRfYWRkcjsgIglcCiAJCQkiZXJhICRmc19iYXNlX2FkZHIgJGZzX2VuZF9hZGRyOyAiCQlcCiAJCQkiY3AuYiAkdXBkYXRlX2xvYWRfYWRkciAkZnNfYmFzZV9hZGRyICRmaWxlc2l6ZTsgIlwKLQkJCUNGR19BRE5QRVNDMV9TTEVEX1lFTExPX09GRgkJCVwKKwkJCUNPTkZJR19TWVNfQUROUEVTQzFfU0xFRF9ZRUxMT19PRkYJCQlcCiAJCSJlbHNlICIJCQkJCQkJXAogCQkJImVjaG8gKioqIHVwZGF0ZSBub3QgYWxsb3dlZCAodXBkYXRlX2FsbG93ZWQ9JHVwZGF0ZV9hbGxvd2VkKTsgIlwKIAkJImZpXDAiCQkJCQkJCVwKQEAgLTIyMiw3ICsyMjIsNyBAQAogCSJ1Ym9vdF9sb2FkbnJ1bj0iCQkJCQkJXAogCQkiaWYgcGluZyAkc2VydmVyaXA7ICIJCQkJCVwKIAkJInRoZW4gIgkJCQkJCQlcCi0JCQlDRkdfQUROUEVTQzFfU0xFRF9ZRUxMT19PTgkJCVwKKwkJCUNPTkZJR19TWVNfQUROUEVTQzFfU0xFRF9ZRUxMT19PTgkJCVwKIAkJCSJ0ZnRwICR1cGRhdGVfbG9hZF9hZGRyICR1Ym9vdF9uYW1lOyAiCQlcCiAJCQkid2Qgb2ZmOyAiCQkJCQlcCiAJCQkiZ28gJHVwZGF0ZV9sb2FkX2FkZHI7ICIJCQlcCkBAIC0yMzQsOTIgKzIzNCw5MiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENPTlNPTEUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9VQVJUX05VTVMgIT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUX05VTVMgIT0gMCkKIAotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCUNGR19OSU9TX0NQVV9VQVJUMCAvKiAxc3QgVUFSVCBpcyBDb25zLiAqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfQ09OU09MRQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwIC8qIDFzdCBVQVJUIGlzIENvbnMuICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSICE9IDApCi0jZGVmaW5lIENGR19OSU9TX0ZJWEVEQkFVRAkxCQkgICAvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLwotI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCUNGR19OSU9TX0NQVV9VQVJUMF9CUgorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSICE9IDApCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJICAgLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KKyNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSCiAjZWxzZQotI3VuZGVmCUNGR19OSU9TX0ZJWEVEQkFVRAorI3VuZGVmCUNPTkZJR19TWVNfTklPU19GSVhFREJBVUQKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGF0IGxlYXN0IG9uZSBVQVJUIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgVUFSVCBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVElNRVIgRk9SIFRJTUVCQVNFIC0tIE5pb3MgZG9lc24ndCBoYXZlIHRoZSBlcXVpdmFsZW50IG9mIHBwYyAgUElULAogICogc28gYW4gYXZhbG9uIGJ1cyB0aW1lciBpcyByZXF1aXJlZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUl9OVU1TICE9IDApICYmIGRlZmluZWQoQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVJfTlVNUyAhPSAwKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUikKIAotI2lmCShDRkdfTklPU19DUFVfVElDS19USU1FUiA9PSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMCkKIAotI2RlZmluZSBDRkdfTklPU19UTVJCQVNFCUNGR19OSU9TX0NQVV9USU1FUjAgLyogVElNRVIwIGFzIHRpY2sJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SSVJRCQlDRkdfTklPU19DUFVfVElNRVIwX0lSUQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMCAvKiBUSU1FUjAgYXMgdGljawkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SSVJRCQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEKIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIwX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMF9QRVIgPj0gQ0ZHX0haKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKENGR19OSU9TX0NQVV9USU1FUjBfUEVSIC8gQ0ZHX0haKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9QRVIgPj0gQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ0ZHX0haCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHVzZSBhIHRpbWVyIHBlcmlvZGUgZ3JlYXRlciB0aGFuIENPTkZJR19TWVNfSFoKICNlbmRpZgogCi0jdW5kZWYJQ0ZHX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KIAotI2VsaWYJKENGR19OSU9TX0NQVV9USU1FUjBfRlAgPT0gMCkJCSAgICAvKiB2YXJpYWJsZSBwZXJpb2QgKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLwogCi0jaWYJKENGR19IWiA8PSAxMDAwKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKDEwMDAgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfSFogPD0gMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoMTAwMCAvIENPTkZJR19TWVNfSFopCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNvcnJ5LCBDRkdfSFogaGF2ZSB0byBiZSBsZXNzIHRoYW4gMTAwMAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzb3JyeSwgQ09ORklHX1NZU19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ0ZHX0haKQorI2RlZmluZQlDT05GSUdfU1lTX05JT1NfVE1SQ05UCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENPTkZJR19TWVNfSFopCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gZGVmaW5lIENGR19OSU9TX0NQVV9USU1FUjBfRlAgY29ycmVjdAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAgY29ycmVjdAogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfVElDS19USU1FUiA9PSAxKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUiA9PSAxKQogCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJQ0ZHX05JT1NfQ1BVX1RJTUVSMSAvKiBUSU1FUjEgYXMgdGljawkqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCUNGR19OSU9TX0NQVV9USU1FUjFfSVJRCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxIC8qIFRJTUVSMSBhcyB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJJUlEJCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0lSUQogCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMSkJCSAgICAvKiBmaXhlZCBwZXJpb2QgKi8KKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMSkJCSAgICAvKiBmaXhlZCBwZXJpb2QgKi8KIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIxX1BFUiA+PSBDRkdfSFopCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9QRVIgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX1BFUiA+PSBDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9QRVIgLyBDT05GSUdfU1lTX0haKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byB1c2UgYSB0aW1lciBwZXJpb2RlIGdyZWF0ZXIgdGhhbiBDRkdfSFoKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ09ORklHX1NZU19IWgogI2VuZGlmCiAKLSN1bmRlZglDRkdfTklPU19UTVJDTlQJLyogbm8gcHJlbG9hZGFibGUgY291bnRlciB2YWx1ZSAqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19UTVJDTlQJLyogbm8gcHJlbG9hZGFibGUgY291bnRlciB2YWx1ZSAqLwogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0ZQID09IDApCQkgICAgLyogdmFyaWFibGUgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX0haIDw9IDEwMDApCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkoMTAwMCAvIENGR19IWikKKyNpZgkoQ09ORklHX1NZU19IWiA8PSAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCSgxMDAwIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogc29ycnksIENGR19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNvcnJ5LCBDT05GSUdfU1lTX0haIGhhdmUgdG8gYmUgbGVzcyB0aGFuIDEwMDAKICNlbmRpZgogCi0jZGVmaW5lCUNGR19OSU9TX1RNUkNOVAkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBDRkdfSFopCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ09ORklHX1NZU19IWikKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUCBjb3JyZWN0CisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIGRlZmluZSBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9GUCBjb3JyZWN0CiAjZW5kaWYKIAotI2VuZGlmCS8qIENGR19OSU9TX0NQVV9USUNLX1RJTUVSICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSICovCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFRJTUVSIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgVElNRVIgaW4gTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMzMCw1MyArMzMwLDUzIEBACiAjaWZkZWYJQ09ORklHX0hXX1dBVENIRE9HCiAKIC8qIE1BWDgyMyBzdXBlcnZpc29yIC0tIHdhdGNoZG9nIGVuYWJsZSBwb3J0IGF0OiAqLwotI2lmCShDRkdfTklPU19DUFVfV0RFTkFfUElPID09IDApCi0jZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNGR19OSU9TX0NQVV9QSU8wCS8qIFBJTzAJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dERU5BX1BJTyA9PSAxKQotI2RlZmluZQlDT05GSUdfSFdfV0RFTkFfQkFTRQlDRkdfTklPU19DUFVfUElPMQkvKiBQSU8xCQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XREVOQV9QSU8gPT0gMikKLSNkZWZpbmUJQ09ORklHX0hXX1dERU5BX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzIJLyogUElPMgkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RFTkFfUElPID09IDMpCi0jZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNGR19OSU9TX0NQVV9QSU8zCS8qIFBJTzMJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dERU5BX1BJTyA9PSA0KQotI2RlZmluZQlDT05GSUdfSFdfV0RFTkFfQkFTRQlDRkdfTklPU19DUFVfUElPNAkvKiBQSU80CQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XREVOQV9QSU8gPT0gNSkKLSNkZWZpbmUJQ09ORklHX0hXX1dERU5BX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzUJLyogUElPNQkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RFTkFfUElPID09IDYpCi0jZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNGR19OSU9TX0NQVV9QSU82CS8qIFBJTzYJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dERU5BX1BJTyA9PSA3KQotI2RlZmluZQlDT05GSUdfSFdfV0RFTkFfQkFTRQlDRkdfTklPU19DUFVfUElPNwkvKiBQSU83CQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XREVOQV9QSU8gPT0gOCkKLSNkZWZpbmUJQ09ORklHX0hXX1dERU5BX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzgJLyogUElPOAkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RFTkFfUElPID09IDkpCi0jZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNGR19OSU9TX0NQVV9QSU85CS8qIFBJTzkJCSovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDApCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPMAkvKiBQSU8wCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDEpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPMQkvKiBQSU8xCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDIpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPMgkvKiBQSU8yCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDMpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPMwkvKiBQSU8zCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDQpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPNAkvKiBQSU80CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDUpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPNQkvKiBQSU81CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDYpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPNgkvKiBQSU82CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDcpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPNwkvKiBQSU83CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDgpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPOAkvKiBQSU84CQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfV0RFTkFfUElPID09IDkpCisjZGVmaW5lCUNPTkZJR19IV19XREVOQV9CQVNFCUNPTkZJR19TWVNfTklPU19DUFVfUElPOQkvKiBQSU85CQkqLwogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgV0RFTkFfUElPIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgV0RFTkFfUElPIGluIE5JT1MgQ1BVIGNvbmZpZwogI2VuZGlmCiAKIC8qIE1BWDgyMyBzdXBlcnZpc29yIC0tIHdhdGNoZG9nIHRyaWdnZXIgcG9ydCBhdDogKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAwKQotI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDRkdfTklPU19DUFVfUElPMAkvKiBQSU8wCQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XRFRPR19QSU8gPT0gMSkKLSNkZWZpbmUJQ09ORklHX0hXX1dEVE9HX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzEJLyogUElPMQkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RUT0dfUElPID09IDIpCi0jZGVmaW5lCUNPTkZJR19IV19XRFRPR19CQVNFCUNGR19OSU9TX0NQVV9QSU8yCS8qIFBJTzIJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAzKQotI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDRkdfTklPU19DUFVfUElPMwkvKiBQSU8zCQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XRFRPR19QSU8gPT0gNCkKLSNkZWZpbmUJQ09ORklHX0hXX1dEVE9HX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzQJLyogUElPNAkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RUT0dfUElPID09IDUpCi0jZGVmaW5lCUNPTkZJR19IV19XRFRPR19CQVNFCUNGR19OSU9TX0NQVV9QSU81CS8qIFBJTzUJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA2KQotI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDRkdfTklPU19DUFVfUElPNgkvKiBQSU82CQkqLwotI2VsaWYJKENGR19OSU9TX0NQVV9XRFRPR19QSU8gPT0gNykKLSNkZWZpbmUJQ09ORklHX0hXX1dEVE9HX0JBU0UJQ0ZHX05JT1NfQ1BVX1BJTzcJLyogUElPNwkJKi8KLSNlbGlmCShDRkdfTklPU19DUFVfV0RUT0dfUElPID09IDgpCi0jZGVmaW5lCUNPTkZJR19IV19XRFRPR19CQVNFCUNGR19OSU9TX0NQVV9QSU84CS8qIFBJTzgJCSovCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA5KQotI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDRkdfTklPU19DUFVfUElPOQkvKiBQSU85CQkqLworI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAwKQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAJLyogUElPMAkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAxKQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEJLyogUElPMQkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAyKQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIJLyogUElPMgkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSAzKQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMJLyogUElPMwkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA0KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzQJLyogUElPNAkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA1KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzUJLyogUElPNQkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA2KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzYJLyogUElPNgkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA3KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzcJLyogUElPNwkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA4KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzgJLyogUElPOAkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTyA9PSA5KQorI2RlZmluZQlDT05GSUdfSFdfV0RUT0dfQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzkJLyogUElPOQkJKi8KICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFdEVE9HX1BJTyBpbiBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFdEVE9HX1BJTyBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAjaWYJZGVmaW5lZChDT05GSUdfTklPU19CQVNFXzMyKQkJLyogTklPUyBDUFUgc3BlY2lmaWNzCSovCkBAIC0zODQsNyArMzg0LDcgQEAKICNkZWZpbmUJQ09ORklHX0hXX1dEVE9HX0JJVAkJMAkvKiBXRCB0cmlnZ2VyIEAgQml0IDAJKi8KICNkZWZpbmUJQ09ORklHX0hXX1dEUE9SVF9XUk9OTFkJMQkvKiBlYWNoIFdEIHBvcnQgd3Ivb25seSovCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IG1pc3Npbmcgd2F0Y2hkb2cgYml0IGNvbmZpZ3VyYXRpb24sIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IG1pc3Npbmcgd2F0Y2hkb2cgYml0IGNvbmZpZ3VyYXRpb24sIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAjZW5kaWYKIAogI2VuZGlmCS8qIENPTkZJR19IV19XQVRDSERPRyAqLwpAQCAtMzkyLDE0ICszOTIsMTQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTRVJJQUwgUEVSSVBIQVJFTCBJTlRFUkZBQ0UKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9TUElfTlVNUyA9PSAxKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1NQSV9OVU1TID09IDEpCiAKICNkZWZpbmUJQ09ORklHX05JT1NfU1BJCQkxCQkvKiBTUEkgc3VwcG9ydCBhY3RpdmUJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfU1BJQkFTRQlDRkdfTklPU19DUFVfU1BJMAotI2RlZmluZQlDRkdfTklPU19TUElCSVRTCUNGR19OSU9TX0NQVV9TUEkwX0JJVFMKKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX1NQSUJBU0UJQ09ORklHX1NZU19OSU9TX0NQVV9TUEkwCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19TUElCSVRTCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMF9CSVRTCiAKICNkZWZpbmUJQ09ORklHX1JUQ19EUzEzMDYJMQkvKiBEYWxsYXMgMTMwNiByZWFsIHRpbWUgY2xvY2sJKi8KLSNkZWZpbmUgQ0ZHX1NQSV9SVENfREVWSUQJMAkvKiAgICAgICAgYXMgMXN0IFNQSSBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfUlRDX0RFVklECTAJLyogICAgICAgIGFzIDFzdCBTUEkgZGV2aWNlCSovCiAKICNlbHNlCiAjdW5kZWYJQ09ORklHX05JT1NfU1BJCQkJCS8qIE5PIFNQSSBzdXBwb3J0CSovCkBAIC00MDgsMjkgKzQwOCwyOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV0aGVybmV0IC0tIG5lZWRzIHdvcmshCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfTEFOX05VTVMgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUyA9PSAxKQogCi0jaWYJKENGR19OSU9TX0NQVV9MQU4wX1RZUEUgPT0gMCkJCS8qIExBTjkxQzExMQkJKi8KKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX1RZUEUgPT0gMCkJCS8qIExBTjkxQzExMQkJKi8KIAogI2RlZmluZQlDT05GSUdfRFJJVkVSX1NNQzkxMTExCQkJLyogVXNpbmcgU01DOTFjMTExCSovCiAjdW5kZWYJQ09ORklHX1NNQzkxMTExX0VYVF9QSFkJCQkvKiBJbnRlcm5hbCBQSFkJCSovCi0jZGVmaW5lCUNPTkZJR19TTUM5MTExMV9CQVNFCShDRkdfTklPU19DUFVfTEFOMF9CQVNFICsgQ0ZHX05JT1NfQ1BVX0xBTjBfT0ZGUykKKyNkZWZpbmUJQ09ORklHX1NNQzkxMTExX0JBU0UJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMpCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVyA9PSAzMikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCiAjZGVmaW5lCUNPTkZJR19TTUNfVVNFXzMyX0JJVAkxCiAjZWxzZQkvKiBubyAqLwogI3VuZGVmCUNPTkZJR19TTUNfVVNFXzMyX0JJVAogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfTEFOMF9UWVBFID09IDEpCQkvKiBDUzg5MDBBCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9UWVBFID09IDEpCQkvKiBDUzg5MDBBCQkqLwogCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCS8qICEhISBDUzg5MDAgaXMgX19ub3RfXyB0ZXN0ZWQgb24gTklPUyAhISEgKi8KIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lCUNPTkZJR19EUklWRVJfQ1M4OTAwCQkJLyogVXNpbmcgQ1M4OTAwCQkqLwotI2RlZmluZQlDUzg5MDBfQkFTRQkJKENGR19OSU9TX0NQVV9MQU4wX0JBU0UgKyBDRkdfTklPU19DUFVfTEFOMF9PRkZTKQorI2RlZmluZQlDUzg5MDBfQkFTRQkJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMpCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVyA9PSAzMikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCiAjdW5kZWYJQ1M4OTAwX0JVUzE2CiAjZGVmaW5lCUNTODkwMF9CVVMzMgkJMQogI2Vsc2UJLyogbm8gKi8KQEAgLTQzOSw3ICs0MzksNyBAQAogI2VuZGlmCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogaW52YWxpZCBMQU4wIGNoaXAgdHlwZSwgY2hlY2sgeW91ciBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogaW52YWxpZCBMQU4wIGNoaXAgdHlwZSwgY2hlY2sgeW91ciBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19FVEhBRERSCQkwMjo4MDphZToyMDo2MDo2ZgpAQCAtNDQ4LDgwICs0NDgsODAgQEAKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxOTIuMTY4LjE2MS44NQogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGp1c3Qgb25lIExBTiBvbmx5IG9yIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGp1c3Qgb25lIExBTiBvbmx5IG9yIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNUQVRVUyBMRURzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfUElPX05VTVMgIT0gMCkgJiYgZGVmaW5lZChDRkdfTklPU19DUFVfTEVEX1BJTykKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAhPSAwKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTykKIAotI2lmCShDRkdfTklPU19DUFVfTEVEX1BJTyA9PSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gMCkKIAotI2RlZmluZQlTVEFUVVNfTEVEX0JBU0UJCQlDRkdfTklPU19DUFVfUElPMAotI2RlZmluZQlTVEFUVVNfTEVEX0JJVFMJCQlDRkdfTklPU19DUFVfUElPMF9CSVRTCisjZGVmaW5lCVNUQVRVU19MRURfQkFTRQkJCUNPTkZJR19TWVNfTklPU19DUFVfUElPMAorI2RlZmluZQlTVEFUVVNfTEVEX0JJVFMJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfQklUUwogI2RlZmluZQlTVEFUVVNfTEVEX0FDVElWRQkJMSAvKiBMRUQgb24gZm9yIGJpdCA9PSAxICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJTzBfVFlQRSA9PSAxKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfVFlQRSA9PSAxKQogI2RlZmluZQlTVEFUVVNfTEVEX1dST05MWQkJMQogI2Vsc2UKICN1bmRlZglTVEFUVVNfTEVEX1dST05MWQogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfTEVEX1BJTyA9PSAxKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTyA9PSAxKQogCi0jZGVmaW5lCVNUQVRVU19MRURfQkFTRQkJCUNGR19OSU9TX0NQVV9QSU8xCi0jZGVmaW5lCVNUQVRVU19MRURfQklUUwkJCUNGR19OSU9TX0NQVV9QSU8xX0JJVFMKKyNkZWZpbmUJU1RBVFVTX0xFRF9CQVNFCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCisjZGVmaW5lCVNUQVRVU19MRURfQklUUwkJCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9CSVRTCiAjZGVmaW5lCVNUQVRVU19MRURfQUNUSVZFCQkxIC8qIExFRCBvbiBmb3IgYml0ID09IDEgKi8KIAotI2lmCShDRkdfTklPU19DUFVfUElPMV9UWVBFID09IDEpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfUElPMV9UWVBFID09IDEpCiAjZGVmaW5lCVNUQVRVU19MRURfV1JPTkxZCQkxCiAjZWxzZQogI3VuZGVmCVNUQVRVU19MRURfV1JPTkxZCiAjZW5kaWYKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDIpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDIpCiAKLSNkZWZpbmUJU1RBVFVTX0xFRF9CQVNFCQkJQ0ZHX05JT1NfQ1BVX1BJTzIKLSNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ0ZHX05JT1NfQ1BVX1BJTzJfQklUUworI2RlZmluZQlTVEFUVVNfTEVEX0JBU0UJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIKKyNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0JJVFMKICNkZWZpbmUJU1RBVFVTX0xFRF9BQ1RJVkUJCTEgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9XUk9OTFkJCTEKICNlbHNlCiAjdW5kZWYJU1RBVFVTX0xFRF9XUk9OTFkKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzMgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPMyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzQgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzUgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzYgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzcgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzggbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzkgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDRkdfTklPU19DUFVfTEVEX1BJTyBpbiByaWdodCBjYXNlCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gaW4gcmlnaHQgY2FzZQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1NUQVRVU19MRUQJCTEgLyogZW5hYmxlIHN0YXR1cyBsZWQgZHJpdmVyICovCkBAIC01MjksMzkgKzUyOSwzOSBAQAogI2RlZmluZQlTVEFUVVNfTEVEX0JJVAkJCSgxIDw8IDApCS8qIExFRFswXSAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1NUQVRFCQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVF9TVEFURQkJU1RBVFVTX0xFRF9PRkYKLSNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDRkdfSFogLyAyKQkvKiBjYS4gMSBIeiAqLworI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRAkJKENPTkZJR19TWVNfSFogLyAyKQkvKiBjYS4gMSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX0JPT1QJCQkwCQkvKiBib290IExFRCAqLwogCiAjaWYJKFNUQVRVU19MRURfQklUUyA+IDEpCiAjZGVmaW5lCVNUQVRVU19MRURfQklUMQkJCSgxIDw8IDEpCS8qIExFRFsxXSAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1NUQVRFMQkJU1RBVFVTX0xFRF9PRkYKLSNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QxCQkoQ0ZHX0haIC8gMTApCS8qIGNhLiA1IEh6ICovCisjZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMQkJKENPTkZJR19TWVNfSFogLyAxMCkJLyogY2EuIDUgSHogKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9SRUQJCQkxCQkvKiBmYWlsIExFRCAqLwogI2VuZGlmCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMikKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQyCQkJKDEgPDwgMikJLyogTEVEWzJdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUyCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDIJCShDRkdfSFogLyAyKQkvKiBjYS4gMSBIeiAqLworI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDIJCShDT05GSUdfU1lTX0haIC8gMikJLyogY2EuIDEgSHogKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9ZRUxMT1cJCTIJCS8qIGluZm8gTEVEICovCiAjZW5kaWYKIAogI2lmCShTVEFUVVNfTEVEX0JJVFMgPiAzKQogI2RlZmluZQlTVEFUVVNfTEVEX0JJVDMJCQkoMSA8PCAzKQkvKiBMRURbM10gKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9TVEFURTMJCVNUQVRVU19MRURfT0ZGCi0jZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMwkJKENGR19IWiAvIDIpCS8qIGNhLiAxIEh6ICovCisjZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMwkJKENPTkZJR19TWVNfSFogLyAyKQkvKiBjYS4gMSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX0dSRUVOCQkzCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNkZWZpbmUJU1RBVFVTX0xFRF9QQVIJCQkxIC8qIG1ha2VzIHN0YXR1c19sZWQuaCBoYXBweSAqLwogCi0jZW5kaWYJLyogQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGlhZ25vc3RpY3MgLyBQb3dlciBPbiBTZWxmIFRlc3RzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZQlDT05GSUdfUE9TVAkJCUNGR19QT1NUX1JUQwotI2RlZmluZQlDRkdfTklPU19QT1NUX1dPUkRfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lCUNPTkZJR19QT1NUCQkJQ09ORklHX1NZU19QT1NUX1JUQworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfUE9TVF9XT1JEX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC01OTUsNyArNTk1LDcgQEAKICN1bmRlZiBDT05GSUdfQ01EX05GUwogI3VuZGVmIENPTkZJR19DTURfWElNRwogCi0jaWYgKENGR19OSU9TX0NQVV9TUElfTlVNUyA9PSAxKQorI2lmIChDT05GSUdfU1lTX05JT1NfQ1BVX1NQSV9OVU1TID09IDEpCiAjZGVmaW5lIENPTkZJR19DTURfREFURQogI2RlZmluZSBDT05GSUdfQ01EX1NQSQogI2VuZGlmCkBAIC02MTAsNjIgKzYxMCw2MiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCTEJICAgIC8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCSAgICAvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCiAJCQkJCSAgICAgICB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiQUROUEVTQzEgPiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQk2NAkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJBRE5QRVNDMSA+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJNjQJICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSJbXT4gIgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIltdPiAiCiAjZW5kaWYKIAogLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNpZgkoQ0ZHX1NSQU1fU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX1NSQU1fU0laRSAhPSAwKQogCiAvKiBkZWZhdWx0IGluIFNSQU0gKi8KLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJQ0ZHX1NSQU1fQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX1NZU19TUkFNX0JBU0UKIAotI2VsaWYJKENGR19TRFJBTV9TSVpFICE9IDApCisjZWxpZgkoQ09ORklHX1NZU19TRFJBTV9TSVpFICE9IDApCiAKIC8qIGRlZmF1bHQgaW4gU0RSQU0gKi8KLSNpZgkoQ0ZHX1NEUkFNX0JBU0UgPT0gQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFKQorI2lmCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgPT0gQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRSkKICNpZiAxCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIENGR19OSU9TX0NQVV9WRUNfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFKQogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFICsgMHg0MDAwMDApCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg0MDAwMDApCiAjZW5kaWYKICNlbHNlCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNlbmRpZgogCiAjZWxzZQotI3VuZGVmCUNGR19MT0FEX0FERFIJCS8qIGZvcmNlIGVycm9yIGJyZWFrICovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEX0FERFIJCS8qIGZvcmNlIGVycm9yIGJyZWFrICovCiAjZW5kaWYKIAogLyogTUVNIHRlc3QgYXJlYSAqLwotI2lmCShDRkdfU0RSQU1fU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX1NEUkFNX1NJWkUgIT0gMCkKIAogLyogU0RSQU0gYmVnaW4gdG8gc3RhY2sgYXJlYSAoMU1CIHN0YWNrKSAqLwotI2lmCShDRkdfU0RSQU1fQkFTRSA9PSBDRkdfTklPU19DUFVfVkVDX0JBU0UpCisjaWYJKENPTkZJR19TWVNfU0RSQU1fQkFTRSA9PSBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFKQogI2lmIDAKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJKENGR19TRFJBTV9CQVNFICsgQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUpCiAjZWxzZQotI2RlZmluZQlDRkdfTUVNVEVTVF9TVEFSVAkoQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMDAwMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMDAwMCkKICNlbmRpZgogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQotI2RlZmluZQlDRkdfTUVNVEVTVF9FTkQJCShDRkdfSU5JVF9TUCAtICgxMDI0ICogMTAyNCkpCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19JTklUX1NQIC0gKDEwMjQgKiAxMDI0KSkKIAogI2Vsc2UKLSN1bmRlZglDRkdfTUVNVEVTVF9TVEFSVAkvKiBmb3JjZSBlcnJvciBicmVhayAqLwotI3VuZGVmCUNGR19NRU1URVNUX0VORAorI3VuZGVmCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkvKiBmb3JjZSBlcnJvciBicmVhayAqLworI3VuZGVmCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FETlBFU0MxX2Jhc2VfMzIuaCBiL2luY2x1ZGUvY29uZmlncy9BRE5QRVNDMV9iYXNlXzMyLmgKaW5kZXggYzg0MjhiNC4uMWZlOGQwOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FETlBFU0MxX2Jhc2VfMzIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQUROUEVTQzFfYmFzZV8zMi5oCkBAIC0zMCw0MDIgKzMwLDQwMiBAQAogICogSGVyZSB3ZSBtdXN0IGRlZmluZSBDUFUgZGVwZW5kZW5jaWVzLiBBbnkgdW5zdXBwb3J0ZWQgb3B0aW9uIGhhdmUgdG8KICAqIGJlIHVuZGVmaW5lZCBvciBkZWZpbmVkIHdpdGggemVybywgZXhhbXBsZSBDUFUgd2l0aG91dCBkYXRhIGNhY2hlIC8gT0NJOgogICoKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lDQUNIRQk0MDk2Ci0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9EQ0FDSEUJMAotICoJI3VuZGVmCUNGR19OSU9TX0NQVV9PQ0lfQkFTRQotICoJI3VuZGVmCUNGR19OSU9TX0NQVV9PQ0lfU0laRQorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lDQUNIRQk0MDk2CisgKgkjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCTAKKyAqCSN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFCisgKgkjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQogICovCiAKIC8qIENQVSBjb3JlICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DTEsJNTAwMDAwMDAJLyogTklPUyBDUFUgY2xvY2sJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lDQUNIRQkoMCkJCS8qIGluc3RydWN0aW9uIGNhY2hlCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9EQ0FDSEUJKDApCQkvKiBkYXRhIGNhY2hlCQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUkVHX05VTVMJNTEyCQkvKiBudW1iZXIgb2YgcmVnaXN0ZXIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX01VTAkwCQkvKiAxNngxNiBNVUw6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0xLCTUwMDAwMDAwCS8qIE5JT1MgQ1BVIGNsb2NrCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSUNBQ0hFCSgwKQkJLyogaW5zdHJ1Y3Rpb24gY2FjaGUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9EQ0FDSEUJKDApCQkvKiBkYXRhIGNhY2hlCQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JFR19OVU1TCTUxMgkJLyogbnVtYmVyIG9mIHJlZ2lzdGVyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTVVMCTAJCS8qIDE2eDE2IE1VTDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX01TVEVQCTEJCS8qIDE2eDE2IE1TVEVQOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX01TVEVQCTEJCS8qIDE2eDE2IE1TVEVQOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1RBQ0sJMHgwMzAwMDAwMAkvKiBzdGFjayB0b3AJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX0JBU0UJMHgwMjAwMDAwMAkvKiBJUlEgdmVjdG9ycwlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9WRUNfU0laRQkyNTYJCS8qCQlzaXplCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9WRUNfTlVNUwk2NAkJLyoJCW51bWJlcnMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JTVF9WRUNUCTB4MDAwMDAwMDAJLyogUkVTRVQgdmVjdG9yCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0RCR19DT1JFCTAJCS8qIENQVSBkZWJ1ZzoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TVEFDSwkweDAzMDAwMDAwCS8qIHN0YWNrIHRvcAlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVkVDX0JBU0UJMHgwMjAwMDAwMAkvKiBJUlEgdmVjdG9ycwlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUJMjU2CQkvKgkJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19OVU1TCTY0CQkvKgkJbnVtYmVycwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JTVF9WRUNUCTB4MDAwMDAwMDAJLyogUkVTRVQgdmVjdG9yCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9EQkdfQ09SRQkwCQkvKiBDUFUgZGVidWc6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIFRoZSBvZmZzZXQgYWRkcmVzcyBpbiBmbGFzaCB0byBjaGVjayBmb3IgdGhlIE5pb3Mgc2lnbmF0dXJlICJOaSIuCiAgKiAoc2VlIEdNX0ZsYXNoRXhlYyBpbiBnZXJtc19tb25pdG9yLnMpICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9FWEVTX09GRlMJMHgwQworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0VYRVNfT0ZGUwkweDBDCiAKIC8qIG9uLWNoaXAgZXh0ZW5zaW9ucyAqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9SQU1fQkFTRQkJCS8qIG9uIGNoaXAgUkFNCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUkFNX1NJWkUJCQkvKiA2NCBLQglzaXplCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fQkFTRQkJCS8qIG9uIGNoaXAgUkFNCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9TSVpFCQkJLyogNjQgS0IJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9ST01fQkFTRQkweDAwMDAwMDAwCS8qIG9uIGNoaXAgUk9NCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCSgyICogMTAyNCkJLyogIDIgS0IJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9CQVNFCTB4MDAwMDAwMDAJLyogb24gY2hpcCBST00JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9TSVpFCSgyICogMTAyNCkJLyogIDIgS0IJc2l6ZQkqLwogCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX09DSV9CQVNFCQkJLyogT0NJIGNvcmUJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9PQ0lfU0laRQkJCS8qCQlzaXplCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfQkFTRQkJCS8qIE9DSSBjb3JlCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9TSVpFCQkJLyoJCXNpemUJKi8KIAogLyogdGltZXIgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSX05VTVMJMQkJLyogbnVtYmVyIG9mIHRpbWVyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVJfTlVNUwkxCQkvKiBudW1iZXIgb2YgdGltZXIJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwCTB4MDAwMDA4NDAJLyogVElNRVIwCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9JUlEJMTYJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9QRVIJMTAwMAkJLyogIHBlcmlvZGUJdXNlYwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX0FSCTAJCS8qICBhbHdheXMgcnVuOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMAkweDAwMDAwODQwCS8qIFRJTUVSMAlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0lSUQkxNgkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9QRVIJMTAwMAkJLyogIHBlcmlvZGUJdXNlYwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9BUgkwCQkvKiAgYWx3YXlzIHJ1bjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9GUAkwCQkvKiAgZml4ZWQgcGVyOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9GUAkwCQkvKiAgZml4ZWQgcGVyOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX1NTCTEJCS8qICBzbmFwaG90OglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9TUwkxCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogc2VyaWFsIGkvbyAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVF9OVU1TCTIJCS8qIG51bWJlciBvZiB1YXJ0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUwkyCQkvKiBudW1iZXIgb2YgdWFydHMJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDAJMHgwMDAwMDgwMAkvKiBVQVJUMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9JUlEJMTcJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfREIJOAkJLyogIGRhdGEgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfU0IJMQkJLyogIHN0b3AgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDAJMHgwMDAwMDgwMAkvKiBVQVJUMAlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRCTE3CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfQlIJMTE1MjAwCQkvKiAgYmF1ZHJhdGUJdmFyKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfREIJOAkJLyogIGRhdGEgYml0CQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9QQQkwCQkvKiAgcGFyaXR5CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlvZGQoMSkJKi8KIAkJCQkJCS8qCQlldmVuKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9IUwkxCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0hTCTEJCS8qICBoYW5kc2hha2U6CW5vKDApCSovCiAJCQkJCQkvKgkJY3J0cygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfRU9QCTAJCS8qICBlb3AgcmVnOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDEJMHgwMDAwMDgyMAkvKiBVQVJUMQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMV9JUlEJMTgJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfREIJOAkJLyogIGRhdGEgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfU0IJMQkJLyogIHN0b3AgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDEJMHgwMDAwMDgyMAkvKiBVQVJUMQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfSVJRCTE4CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfQlIJMTE1MjAwCQkvKiAgYmF1ZHJhdGUJdmFyKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfREIJOAkJLyogIGRhdGEgYml0CQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9QQQkwCQkvKiAgcGFyaXR5CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlvZGQoMSkJKi8KIAkJCQkJCS8qCQlldmVuKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMV9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0hTCTAJCS8qICBoYW5kc2hha2U6CW5vKDApCSovCiAJCQkJCQkvKgkJY3J0cygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfRU9QCTAJCS8qICBlb3AgcmVnOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogc2VyaWFsIHBlcmlwaGVyYWwgaS9vICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUElfTlVNUwkxCQkvKiBudW1iZXIgb2Ygc3BpcwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NQSV9OVU1TCTEJCS8qIG51bWJlciBvZiBzcGlzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NQSTAJMHgwMDAwMDhjMAkvKiBTUEkwCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUEkwX0lSUQkyNQkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1BJMF9CSVRTCTE2CQkvKiAgZGF0YSBiaXQJCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUEkwX01BCTEJCS8qICBpcyBtYXN0ZXI6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMAkweDAwMDAwOGMwCS8qIFNQSTAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TUEkwX0lSUQkyNQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NQSTBfQklUUwkxNgkJLyogIGRhdGEgYml0CQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NQSTBfTUEJMQkJLyogIGlzIG1hc3RlcjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NQSTBfU0xOCTEJCS8qICBudW0gc2xhdmVzCQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1BJMF9UQ0xLCTI1MDAwMAkJLyogIGNsb2NrIChIeikJCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUEkwX1RERUxBWSAyCQkvKiAgZGVsYXkgKHVzZWMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUEkwX0ZCCTAJCS8qICBmaXJzdCBiaXQJbXNiKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMF9TTE4JMQkJLyogIG51bSBzbGF2ZXMJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMF9UQ0xLCTI1MDAwMAkJLyogIGNsb2NrIChIeikJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1BJMF9UREVMQVkgMgkJLyogIGRlbGF5ICh1c2VjKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NQSTBfRkIJMAkJLyogIGZpcnN0IGJpdAltc2IoMCkJKi8KIAkJCQkJCS8qCQlsc2IoMSkJKi8KIAogLyogcGFyYWxsZWwgaS9vICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU9fTlVNUwkxNAkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMJMTQJCS8qIG51bWJlciBvZiBwYXJwb3J0cwkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wCTB4MDAwMDA4NjAJLyogUElPMAkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8wX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0JJVFMJOAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfVFlQRQkwCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAJMHgwMDAwMDg2MAkvKiBQSU8wCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9CSVRTCTgJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMQkweDAwMDAwODcwCS8qIFBJTzEJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPMV9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9CSVRTCTgJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCTB4MDAwMDA4NzAJLyogUElPMQkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfQklUUwk4CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfVFlQRQkwCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzIJMHgwMDAwMDg4MAkvKiBQSU8yCQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzJfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfQklUUwk0CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMgkweDAwMDAwODgwCS8qIFBJTzIJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0JJVFMJNAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zCTB4MDAwMDA4OTAJLyogUElPMwkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8zX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMJMHgwMDAwMDg5MAkvKiBQSU8zCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMwkweDAwMDAwODkwCS8qIFBJTzMJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPM19JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zCTB4MDAwMDA4OTAJLyogUElPMwkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzQJMHgwMDAwMDhhMAkvKiBQSU80CQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzRfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNAkweDAwMDAwOGEwCS8qIFBJTzQJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU80X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81CTB4MDAwMDA4YjAJLyogUElPNQkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU81X0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzUJMHgwMDAwMDhiMAkvKiBQSU81CQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNgkweDAwMDAwOTAwCS8qIFBJTzYJCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfSVJRCTIwCQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzYJMHgwMDAwMDkwMAkvKiBQSU82CQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9JUlEJMjAJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfSVRZUEUJMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9JVFlQRQkxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83CTB4MDAwMDA5MTAJLyogUElPNwkJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19JUlEJMzEJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNwkweDAwMDAwOTEwCS8qIFBJTzcJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0lSUQkzMQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83X0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19FREdFCTIJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19JVFlQRQkxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0lUWVBFCTEJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzgJMHgwMDAwMDkyMAkvKiBQSU84CQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU84X0lSUQkzMgkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPOF9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU84X1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU84CTB4MDAwMDA5MjAJLyogUElPOAkJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzhfSVJRCTMyCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOF9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOF9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzhfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzhfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPOF9FREdFCTIJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU84X0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU84X0lUWVBFCTEJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzhfSVRZUEUJMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPOQkweDAwMDAwOTMwCS8qIFBJTzkJCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzlfSVJRCTMzCQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU85X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzlfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzkJMHgwMDAwMDkzMAkvKiBQSU85CQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOV9JUlEJMzMJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU85X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU85X1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPOV9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOV9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU85X0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzlfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzlfSVRZUEUJMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPOV9JVFlQRQkxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMAkweDAwMDAwOTQwCS8qIFBJTzEwCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEwX0lSUQkzNAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTBfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTBfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEwCTB4MDAwMDA5NDAJLyogUElPMTAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEwX0lSUQkzNAkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEwX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMF9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEwX0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMF9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMF9FREdFCTIJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMF9FREdFCTIJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTBfSVRZUEUgMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTBfSVRZUEUgMQkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTEJMHgwMDAwMDk1MAkvKiBQSU8xMQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMV9JUlEJMzUJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzExX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzExX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMQkweDAwMDAwOTUwCS8qIFBJTzExCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMV9JUlEJMzUJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMV9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTFfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMV9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTFfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTFfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTFfRURHRQkyCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzExX0lUWVBFIDEJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzExX0lUWVBFIDEJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEyCTB4MDAwMDA5NjAJLyogUElPMTIJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTJfSVJRCTM2CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMl9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMl9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTIJMHgwMDAwMDk2MAkvKiBQSU8xMglhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTJfSVJRCTM2CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTJfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEyX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTJfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEyX0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEyX0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEyX0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMl9JVFlQRSAxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMl9JVFlQRSAxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xMwkweDAwMDAwOTcwCS8qIFBJTzExMwlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xM19JUlEJMzcJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEzX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEzX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xMwkweDAwMDAwOTcwCS8qIFBJTzExMwlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTNfSVJRCTM3CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMTNfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEzX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMTNfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEzX0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzEzX0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEzX0VER0UJMgkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xM19JVFlQRSAxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xM19JVFlQRSAxCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCiAvKiBJREUgaS9mICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JREVfTlVNUwkyCQkvKiBudW1iZXIgb2YgSURFIGNvbnRyLgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lERV9OVU1TCTIJCS8qIG51bWJlciBvZiBJREUgY29udHIuCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lERTAJMHgwMDAwMTAwMAkvKiBJREUwCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JREUwX0lSUQkzNgkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lERTAJMHgwMDAwMTAwMAkvKiBJREUwCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSURFMF9JUlEJMzYJCS8qCQlJUlEJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfSURFMQkweDAwMDAxMDIwCS8qIElERTEJCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lERTFfSVJRCTM3CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSURFMQkweDAwMDAxMDIwCS8qIElERTEJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JREUxX0lSUQkzNwkJLyoJCUlSUQkqLwogCiAvKiBtZW1vcnkgYWNjZXNzaWJpbGl0eSAqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9TUkFNX0JBU0UJCQkvKiBib2FyZCBTUkFNCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfU1JBTV9TSVpFCQkJLyogIDEgTUIJc2l6ZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCQkJLyogYm9hcmQgU1JBTQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUJCQkvKiAgMSBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UJMHgwMjAwMDAwMAkvKiBib2FyZCBTRFJBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TRFJBTV9TSVpFCSgxNioxMDI0KjEwMjQpCS8qIDE2IE1CCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCTB4MDIwMDAwMDAJLyogYm9hcmQgU0RSQU0JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUJKDE2KjEwMjQqMTAyNCkJLyogMTYgTUIJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9GTEFTSF9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgRmxhc2gJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRkxBU0hfU0laRQkoOCoxMDI0KjEwMjQpCS8qICA4IE1CCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgRmxhc2gJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUJKDgqMTAyNCoxMDI0KQkvKiAgOCBNQglzaXplCSovCiAKIC8qIExBTiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOX05VTVMJMQkJLyogbnVtYmVyIG9mIExBTiBpL2YJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUwkxCQkvKiBudW1iZXIgb2YgTEFOIGkvZgkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX0JBU0UJMHgwMDAxMDAwMAkvKiBMQU4wCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX09GRlMJKDApCQkvKgkJb2Zmc2V0CSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX0lSUQkyMAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9CVVNXCTE2CQkvKgkgICAgICAgIGJ1c3dpZHRoKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTjBfVFlQRQkwCQkvKglzbWM5MTExMSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfQkFTRQkweDAwMDEwMDAwCS8qIExBTjAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMJKDApCQkvKgkJb2Zmc2V0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9JUlEJMjAJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cJMTYJCS8qCSAgICAgICAgYnVzd2lkdGgqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfVFlQRQkwCQkvKglzbWM5MTExMSgwKQkqLwogCQkJCQkJLyoJY3M4OTAwKDEpCSovCiAJCQkJCQkvKiBleDoJb3Blbm1hYygyKQkqLwogCQkJCQkJLyogZXg6CWFsdGVyYW1hYygzKQkqLwogCiAvKiBleHRlcm5hbCBleHRlbnNpb24gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NTMF9CQVNFCTB4NDAwMDAwMDAJLyogYm9hcmQgRVhUMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DUzBfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ1MwX0JBU0UJMHg0MDAwMDAwMAkvKiBib2FyZCBFWFQwCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DUzBfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NTMV9CQVNFCTB4NDEwMDAwMDAJLyogYm9hcmQgRVhUMQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DUzFfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ1MxX0JBU0UJMHg0MTAwMDAwMAkvKiBib2FyZCBFWFQxCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DUzFfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NTMl9CQVNFCTB4NDIwMDAwMDAJLyogYm9hcmQgRVhUMglhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DUzJfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ1MyX0JBU0UJMHg0MjAwMDAwMAkvKiBib2FyZCBFWFQyCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DUzJfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NTM19CQVNFCTB4NDMwMDAwMDAJLyogYm9hcmQgRVhUMwlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9DUzNfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ1MzX0JBU0UJMHg0MzAwMDAwMAkvKiBib2FyZCBFWFQzCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DUzNfU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAgbWF4LiAxNiBNQglzaXplCSovCiAKIC8qIHN5bWJvbGljIHJlZGVmaW5pdGlvbiAodW5kZWYsIGlmIG5vdCBwcmVzZW50KSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElDS19USU1FUgkJMAkvKiBUSU1FUjA6IHRpY2sgKG5lZWRlZCkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9VU0VSX1RJTUVSCQkJLyogVElNRVJ4OiB1c2VycyBjaG9pY2UJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSCQkwCS8qIFRJTUVSMDogdGljayAobmVlZGVkKSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9VU0VSX1RJTUVSCQkJLyogVElNRVJ4OiB1c2VycyBjaG9pY2UJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUE9SVEFfUElPCQkwCS8qIFBJTzA6IFBvcnQgQQkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BPUlRCX1BJTwkJMQkvKiBQSU8xOiBQb3J0IEQJCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QT1JUQ19QSU8JCTIJLyogUElPMjogUG9ydCBDCQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUkNNX1BJTwkJMwkvKiBQSU8zOiBSQ00ganVtcGVyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9XREVOQV9QSU8JCTQJLyogUElPNDogd2F0Y2hkb2cgZW5hYmxlKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1dEVE9HX1BJTwkJNQkvKiBQSU81OiB3YXRjaGRvZyB0cmlnZy4qLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BPUlRBX1BJTwkJMAkvKiBQSU8wOiBQb3J0IEEJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUE9SVEJfUElPCQkxCS8qIFBJTzE6IFBvcnQgRAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QT1JUQ19QSU8JCTIJLyogUElPMjogUG9ydCBDCQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JDTV9QSU8JCTMJLyogUElPMzogUkNNIGp1bXBlcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1dERU5BX1BJTwkJNAkvKiBQSU80OiB3YXRjaGRvZyBlbmFibGUqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1dEVE9HX1BJTwkJNQkvKiBQSU81OiB3YXRjaGRvZyB0cmlnZy4qLwogCiAvKiBQSU94OiBMRUQgYmFyICovCiAjaWZkZWYJQ09ORklHX0ROUEVWQTIJCQkvKiBETlAvRVZBMiBiYXNlIGJvYXJkICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MRURfUElPCQlDRkdfTklPU19DUFVfUE9SVEFfUElPCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTwkJQ09ORklHX1NZU19OSU9TX0NQVV9QT1JUQV9QSU8KICNlbHNlCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX0xFRF9QSU8JCQkvKiBubyBMRUQgYmFyCQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfTEVEX1BJTwkJCS8qIG5vIExFRCBiYXIJCSovCiAjZW5kaWYKIAogI2VuZGlmCS8qIF9fQ09ORklHX0FETlBFU0MxX0JBU0VfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FEUzg2MC5oIGIvaW5jbHVkZS9jb25maWdzL0FEUzg2MC5oCmluZGV4IGY2NzdiOWMuLjY4OGU3N2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BRFM4NjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQURTODYwLmgKQEAgLTI3LDEyICsyNywxMiBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCS8qIENvbnNvbGUgYmF1ZHJhdGUgKi8KIAogI2lmIDAKLSNkZWZpbmUgQ0ZHXzhYWF9GQUNUCQkxNTI2CS8qIDMyLjc2OCBrSHogY3J5c3RhbCBvbiBYVEFML0VYVEFMICovCisjZGVmaW5lIENPTkZJR19TWVNfOFhYX0ZBQ1QJCTE1MjYJLyogMzIuNzY4IGtIeiBjcnlzdGFsIG9uIFhUQUwvRVhUQUwgKi8KICNlbHNlCi0jZGVmaW5lIENGR184WFhfRkFDVAkJMTIJLyogNCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU184WFhfRkFDVAkJMTIJLyogNCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QTFBSQ1IgICgoKENGR184WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUiAgKCgoQ09ORklHX1NZU184WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAogCQlQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKICNkZWZpbmUgQ09ORklHX0RSQU1fNTBNSFoJCTEKQEAgLTUzLDYgKzUzLDYgQEAKIAogI2luY2x1ZGUgIi4uLy4uL2JvYXJkL2ZhZHMvZmFkcy5oIgogCi0jZGVmaW5lIENGR19QQ19JREVfUkVTRVQJKCh1c2hvcnQpMHgwMDA4KSAgICAvKiBQQyAxMgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX0lERV9SRVNFVAkoKHVzaG9ydCkweDAwMDgpICAgIC8qIFBDIDEyCSovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQU1YODYwLmggYi9pbmNsdWRlL2NvbmZpZ3MvQU1YODYwLmgKaW5kZXggMzQzMTIzYi4uNmUyOTA3ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FNWDg2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BTVg4NjAuaApAQCAtMTAxLDI1ICsxMDEsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMzAsMzEgKzEzMCwzMSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBVLUJvb3QgZm9yIEFNWCBib2FyZCBzdXBwb3J0cyB0d28gdHlwZXMgb2YgbWVtb3J5IGV4dGVuc2lvbgpAQCAtMTg2LDE4ICsxODYsMTggQEAKICAqIChDT05GSUdfQU1YX1JBTV9FWFQpCiAgKi8KICNpZmRlZiBDT05GSUdfQU1YX1JBTV9FWFQKLSMgZGVmaW5lCUNGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyMgZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAjZWxzZQotIyBkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkoNCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworIyBkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJKDQgPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMDYsOSArMjA2LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE4LDEwICsyMTgsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyOSwyOCArMjI5LDI4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHNldCB0aGUgUExMLCB0aGUgbG93LXBvd2VyIG1vZGVzIGFuZCB0aGUgcmVzZXQgY29udHJvbCAoMTUtMjkpCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAogCQkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYwLDkgKzI2MCw5IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlN8U0NDUl9DT00wMHxTQ0NSX0RGU1lOQzAwfFNDQ1JfREZCUkcwMHxTQ0NSX0RGTkwwMDB8U0NDUl9ERk5IMDAwfFNDQ1JfREZMQ0QwMDB8U0NDUl9ERkFMQ0QwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCU3xTQ0NSX0NPTTAwfFNDQ1JfREZTWU5DMDB8U0NDUl9ERkJSRzAwfFNDQ1JfREZOTDAwMHxTQ0NSX0RGTkgwMDB8U0NDUl9ERkxDRDAwMHxTQ0NSX0RGQUxDRDAwKQogCi0jZGVmaW5lIENGR19ERVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNzUsMjcgKzI3NSwyNyBAQAogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHg2MDAwMDAwMAkvKiBGTEFTSCBiYW5rICMxCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkMwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkMwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMCwgVFJMWCA9IDEsIENTTlQgPSAxLCBTQ1kgPSAzLCBFSFRSID0gMAkqLwogLyoJCQkJIDB4MDAwMDA4MDAJMHgwMDAwMDQwMCAweDAwMDAwMTAwIDB4MDAwMDAwMzAgICAgIDB4MDAwMDAwMDQgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzVfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhGRkMwMDk1NAkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCTB4NDAwMDAwMDEJLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JMHhGRkMwMDk1NAkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweDQwMDAwMDAxCS8qIFJlYWwgdmFsdWVzIGZvciB0aGUgYm9hcmQgKi8KIAogI2lmbmRlZiBDT05GSUdfQU1YX1JBTV9FWFQKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCTB4RkZDMDA5NTQJLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkweDYwMDAwMDAxCS8qIFJlYWwgdmFsdWVzIGZvciB0aGUgYm9hcmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCTB4RkZDMDA5NTQJLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JMHg2MDAwMDAwMQkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCiAjZW5kaWYKIAogLyogRFNQICgiR2x1ZSIpIFhpbGlueCAqLwotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkweEZGRkY4MDAwCS8qIDMya0IsIDE1IHdhaXRzLCBjcyBhZnRlciBhZGRyLCBubyBidXJzdHMgKi8KLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JMHg2MDAwMDQwMQkvKiB1c2UgR1BDTSBmb3IgQ1MgZ2VuZXJhdGlvbiwgOCBiaXQgcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JMHhGRkZGODAwMAkvKiAzMmtCLCAxNSB3YWl0cywgY3MgYWZ0ZXIgYWRkciwgbm8gYnVyc3RzICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkweDYwMDAwNDAxCS8qIHVzZSBHUENNIGZvciBDUyBnZW5lcmF0aW9uLCA4IGJpdCBwb3J0ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FQMTAwMC5oIGIvaW5jbHVkZS9jb25maWdzL0FQMTAwMC5oCmluZGV4IDYzZDQwMDMuLmVjOTgyYmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BUDEwMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQVAxMDAwLmgKQEAgLTI5LDE2ICsyOSwxNiBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0kJMQogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUiAxCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSIwPiAiCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSIDEJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSIwPiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2RlZmluZSBDT05GSUdfQ09NTUFORF9FRElUCTEKICNkZWZpbmUgQ09ORklHX0NPTU1BTkRfSElTVE9SWQkxCiAjZGVmaW5lIENPTkZJR19DT01QTEVURV9BRERSRVNTRVMgMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTlZSQU0KICN1bmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC02Miw3ICs2Miw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJImNvbnNvbGU9dHR5UzAsNTc2MDAiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogCiAvKgpAQCAtOTYsODIgKzk2LDgyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotLyogdXN1YWxseTogKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFKzQrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisvKiB1c3VhbGx5OiAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFKzQrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkxCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogNCAuLi4gMTYgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiA0IC4uLiAxNiBNQiBpbiBEUkFNCSovCiAKIC8qCi0gKiBJZiBDRkdfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KLSAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDRkdfQkFTRV9CQVVEIHZhbHVlLgorICogSWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KKyAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDT05GSUdfU1lTX0JBU0VfQkFVRCB2YWx1ZS4KICAqIFRoZSBMaW51eCBCQVNFX0JBVUQgZGVmaW5lIHNob3VsZCBtYXRjaCB0aGlzIGNvbmZpZ3VyYXRpb24uCiAgKiAgICBiYXNlQmF1ZCA9IGNwdUNsb2NrLyh1YXJ0RGl2aXNvcioxNikKLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKICAqIHNldCBMaW51eCBCQVNFX0JBVUQgdG8gNDAzMjAwLgogICovCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI3VuZGVmCUNGR180MDVfVUFSVF9FUlJBVEFfNTkJCS8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZglDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkJLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTQwMDAwMDAwCi0jZGVmaW5lIENGR19EVUFSVF9DSEFOCQkwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKDB4NEMwMDAwMDAgKyAweDEwMDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKDB4NEM4MDAwMDAgKyAweDEwMDApCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTQKLSNkZWZpbmUgQ0ZHX05TMTY1NTAJCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjEJCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJNDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9DSEFOCQkwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCSgweDRDMDAwMDAwICsgMHgxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoMHg0QzgwMDAwMCArIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTQKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9DSEFOMQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfQ0hBTjIJCTAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogICAgIHszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKLSNkZWZpbmUgQ0ZHX1BST0dGTEFTSF9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DT05GRkxBU0hfQkFTRQkweDI0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPR0ZMQVNIX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ09ORkZMQVNIX0JBU0UJMHgyNDAwMDAwMAogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JICAgICovCiAKIC8qIEJFRyBFTlZJUk9OTkVNRU5UIEZMQVNIICovCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMTgzLDEzICsxODMsMTMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmMDAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCTB4MWZmOAkJLyogTlZSQU0gc2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTB4MWZmOAkJLyogTlZSQU0gc2l6ZQkqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9OVlJBTQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkJLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgXAotICAgIChDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCisgICAgKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLwogI2VuZGlmCiAKIC8qCkBAIC0xOTgsNyArMTk4LDcgQEAKICAqIEJSMC8xIGFuZCBPUjAvMSAoRkxBU0gpCiAgKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTAJCS8qIEZMQVNIIGJhbmsgIzEJKi8KIAogLyogQ29uZmlndXJhdGlvbiBQb3J0IGxvY2F0aW9uICovCkBAIC0yMDgsMTEgKzIwOCwxMSBAQAogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwICAvKiBpbnNpZGUgb2YgU0RSQU0JCQkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAgIC8qIGluc2lkZSBvZiBTRFJBTQkJCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgU2VyaWFsIFByZXNlbmNlIERldGVjdCBFRVBST00gYWRkcmVzcwpAQCAtMjM1LDE1ICsyMzUsMTUgQEAKIAogLyogSkZGUzIgc3R1ZmYgKi8KIAotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCTEKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkxCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfRTEwMDAKIAotI2RlZmluZSBDRkdfRVRIX0RFVl9GTgkJMHgwODAwCi0jZGVmaW5lIENGR19FVEhfSU9CQVNFCQkweDMxMDAwMDAwCi0jZGVmaW5lIENGR19FVEhfTUVNQkFTRQkJMHgzMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9ERVZfRk4JCTB4MDgwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9JT0JBU0UJCTB4MzEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfTUVNQkFTRQkJMHgzMjAwMDAwMAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FQQzQwNS5oIGIvaW5jbHVkZS9jb25maWdzL0FQQzQwNS5oCmluZGV4IDRkNmI3YWMuLjc0NTM1MTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BUEM0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQVBDNDA1LmgKQEAgLTUyLDE0ICs1MiwxNCBAQAogCiAjdW5kZWYJQ09ORklHX0JPT1RBUkdTCiAKLSNkZWZpbmUgQ0ZHX1VTQl9MT0FEX0NPTU1BTkQJImZhdGxvYWQgdXNiIDAgMjAwMDAwIHBJbWFnZTsiCQlcCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0xPQURfQ09NTUFORAkiZmF0bG9hZCB1c2IgMCAyMDAwMDAgcEltYWdlOyIJCVwKIAkJCQkiZmF0bG9hZCB1c2IgMCAzMDAwMDAgcEltYWdlLmluaXRyZCIKLSNkZWZpbmUgQ0ZHX1VTQl9TRUxGX0NPTU1BTkQJInVzYiBzdGFydDtydW4gdXNiX2xvYWQ7dXNiIHN0b3A7IglcCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX1NFTEZfQ09NTUFORAkidXNiIHN0YXJ0O3J1biB1c2JfbG9hZDt1c2Igc3RvcDsiCVwKIAkJCQkicnVuIHJhbWFyZ3MgYWRkaXAgYWRkY29uIHVzYmFyZ3M7IglcCiAJCQkJImJvb3RtIDIwMDAwMCAzMDAwMDAiCi0jZGVmaW5lIENGR19VU0JfQVJHUwkJInNldGVudiBib290YXJncyAkKGJvb3RhcmdzKSB1c2Jib290PTEiCi0jZGVmaW5lIENGR19CT09UTElNSVQJCSIzIgotI2RlZmluZSBDRkdfQUxUX0JPT1RDT01NQU5ECSJydW4gdXNiX3NlbGY7cmVzZXQiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0FSR1MJCSJzZXRlbnYgYm9vdGFyZ3MgJChib290YXJncykgdXNiYm9vdD0xIgorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RMSU1JVAkJIjMiCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX0JPT1RDT01NQU5ECSJydW4gdXNiX3NlbGY7cmVzZXQiCiAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkiaG9zdG5hbWU9YWJnNDA1XDAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtODgsMTggKzg4LDE4IEBACiAJIm5ldG1hc2s9MjU1LjI1NS4wLjBcMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkic2VydmVyaXA9MTAuMC4wLjE5MFwwIgkJCQkJCVwKIAkic3BsYXNoaW1hZ2U9ZmZlODAwMDBcMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCSJ1c2JfbG9hZD0iQ0ZHX1VTQl9MT0FEX0NPTU1BTkQiXDAiCQkJCVwKLQkidXNiX3NlbGY9IkNGR19VU0JfU0VMRl9DT01NQU5EIlwwIgkJCQlcCi0JInVzYmFyZ3M9IkNGR19VU0JfQVJHUyJcMCIJCQkJCVwKLQkiYm9vdGxpbWl0PSJDRkdfQk9PVExJTUlUIlwwIgkJCQkJXAotCSJhbHRib290Y21kPSJDRkdfQUxUX0JPT1RDT01NQU5EIlwwIgkJCQlcCisJInVzYl9sb2FkPSJDT05GSUdfU1lTX1VTQl9MT0FEX0NPTU1BTkQiXDAiCQkJCVwKKwkidXNiX3NlbGY9IkNPTkZJR19TWVNfVVNCX1NFTEZfQ09NTUFORCJcMCIJCQkJXAorCSJ1c2JhcmdzPSJDT05GSUdfU1lTX1VTQl9BUkdTIlwwIgkJCQkJXAorCSJib290bGltaXQ9IkNPTkZJR19TWVNfQk9PVExJTUlUIlwwIgkJCQkJXAorCSJhbHRib290Y21kPSJDT05GSUdfU1lTX0FMVF9CT09UQ09NTUFORCJcMCIJCQkJXAogCSIiCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGY7cmVzZXQiCiAKICNkZWZpbmUgQ09ORklHX0VUSEFERFIJCTAwOjAyOjI3OjhlOjAwOjAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICN1bmRlZiAgQ09ORklHX0hBU19FVEgxCkBAIC0xNDgsNDQgKzE0OCw0NCBAQAogI3VuZGVmICBDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZCAqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIERTMTY4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcyAqLwogCiAjZGVmaW5lIENPTkZJR19TRFJBTV9CQU5LMAkxCS8qIGluaXQgb25ib2FyZCBTRFJBTSBiYW5rIDAgKi8KIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZSAqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgICAgMTQ3NDU2MDAgLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jayAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyAgICAxNDc0NTYwMCAvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICAgKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICBcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCkBAIC0yMDAsNyArMjAwLDcgQEAKIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQkxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qCiAgKiBQQ0kgc3R1ZmYKQEAgLTIxNiwxNSArMjE2LDE1IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHByaW50IHBjaSBkZXZpY2VzIEAgc3RhcnR1cCAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFIDEKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweGZjMDAwMDAxICAgICAgLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ZmMwMDAwMDEgICAgICAvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyoKICAqIElERS9BVEEgc3R1ZmYKQEAgLTIzMywzMiArMjMzLDMyIEBACiAjdW5kZWYgIENPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkICovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZCAqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcyAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUykgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2VzcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4RkZGODAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyKjEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAyTUIgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweEZGRjgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyKjEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAyTUIgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0LiBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXQuIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KQEAgLTI2NywyNiArMjY3LDI2IEBACiBleHRlcm4gaW50IGZsYXNoX2JhbmtzOwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJZmxhc2hfYmFua3MgLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCWZsYXNoX2JhbmtzIC8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgKi8KIAkJCQkJICAgIC8qIHVwZGF0ZWQgaW4gYm9hcmRfZWFybHlfaW5pdF9yICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUIDIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbiAqLwotI2RlZmluZSBDRkdfRkxBU0hfQVVUT1BST1RFQ1RfTElTVCB7IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NfREVURUNUIDIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1QgeyBcCiAJCQkJezB4ZmUwMDAwMDAsIDB4NTAwMDAwfSwgXAogCQkJCXsweGZmZTgwMDAwLCAweDE4MDAwMH0gXAogCQkJCX0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IFwKLQkJCQlDRkdfRkxBU0hfQkFTRSwgXAotCQkJCUNGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCBcCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IFwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIFwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCBcCiAJCQkJfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKgogICogRW52aXJvbm1lbnQgVmFyaWFibGUgc2V0dXAKQEAgLTI5NywzMCArMjk3LDMwIEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCS8qIGFsbG93IG92ZXJ3cml0aW5nIHZlbmRvciB2YXJzICovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkvKiBOVlJBTSBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkvKiBOVlJBTSBzaXplICovCiAKIC8qCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzICovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzICovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdAk0IGJpdHMgb2YgdGhlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi8KLSNkZWZpbmUgRkxBU0gwX0JBICAgICAgIChDRkdfRkxBU0hfQkFTRSArIENGR19GTEFTSF9JTkNSRU1FTlQpIC8qIEZMQVNIIDAgQkEgKi8KLSNkZWZpbmUgRkxBU0gxX0JBICAgICAgIENGR19GTEFTSF9CQVNFICAgICAgLyogRkxBU0ggMSBCYXNlIEFkZHJlc3MgICAgICAgICAgKi8KKyNkZWZpbmUgRkxBU0gwX0JBICAgICAgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCkgLyogRkxBU0ggMCBCQSAqLworI2RlZmluZSBGTEFTSDFfQkEgICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgLyogRkxBU0ggMSBCYXNlIEFkZHJlc3MgICAgICAgICAgKi8KICNkZWZpbmUgQ0FOX0JBICAgICAgICAgIDB4RjAwMDAwMDAgICAgICAgICAgLyogQ0FOIEJhc2UgQWRkcmVzcyAgICAgICAgICAgICAgKi8KICNkZWZpbmUgRFVBUlQwX0JBICAgICAgIDB4RjAwMDA0MDAgICAgICAgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzICAgICAgICAgICAgKi8KICNkZWZpbmUgRFVBUlQxX0JBICAgICAgIDB4RjAwMDA0MDggICAgICAgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzICAgICAgICAgICAgKi8KQEAgLTMzMyw5NyArMzMzLDk3IEBACiAjZGVmaW5lIFBDTUNJQTJfQkEgICAgICAweDI4MDAwMDAwICAgICAgICAgIC8qIFBDTUNJQSBTbG90IDIgQmFzZSBBZGRyZXNzICAgICovCiAjZGVmaW5lIFZHQV9CQSAgICAgICAgICAweEYxMDAwMDAwICAgICAgICAgIC8qIEVwc29uIFZHQSBCYXNlIEFkZHJlc3MgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRV9BRERSICAgICAgRlBHQV9CQSAgICAgLyogRlBHQSBpbnRlcm5hbCBCYXNlIEFkZHJlc3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUiAgICAgIEZQR0FfQkEgICAgIC8qIEZQR0EgaW50ZXJuYWwgQmFzZSBBZGRyZXNzICAgICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUCAgIDB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUiAgIEZMQVNIMF9CQSB8IDB4OUEwMDAgLyogQkFTPTB4RkYwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUF9IV1JFVjggQ0ZHX0VCQ19QQjBBUAotI2RlZmluZSBDRkdfRUJDX1BCMENSX0hXUkVWOCBGTEFTSDFfQkEgfCAweEJBMDAwIC8qIEJTPTMyTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAgICAweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSICAgRkxBU0gwX0JBIHwgMHg5QTAwMCAvKiBCQVM9MHhGRjAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUF9IV1JFVjggQ09ORklHX1NZU19FQkNfUEIwQVAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1JfSFdSRVY4IEZMQVNIMV9CQSB8IDB4QkEwMDAgLyogQlM9MzJNQiAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAgICAweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICBGTEFTSDFfQkEgfCAweDlBMDAwIC8qIEJBUz0weEZFMCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQICAgMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUiAgIEZMQVNIMV9CQSB8IDB4OUEwMDAgLyogQkFTPTB4RkUwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCwgMSwgUlRDLCBEdWFydCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQICAgMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgQ0FOX0JBIHwgMHgxODAwMCAgICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgIDB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IgICBDQU5fQkEgfCAweDE4MDAwICAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgICovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENvbXBhY3RGbGFzaCBJREUsIEZQR0EgaW50ZXJuYWwpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUCAgIDB4MDEwMDU5QzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUiAgIENGX0JBIHwgMHgxQTAwMCAgICAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAgICAweDAxMDA1OUMwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSICAgQ0ZfQkEgfCAweDFBMDAwICAgICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChQQ01DSUEgU2xvdCAxKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAgICAweDA1MDAwN0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IgICBQQ01DSUExX0JBIHwgMHhGQTAwMCAvKkJBUz0weDIwMCxCUz0xMjhNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUCAgIDB4MDUwMDA3QzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IgICBQQ01DSUExX0JBIHwgMHhGQTAwMCAvKkJBUz0weDIwMCxCUz0xMjhNQixCVT1SL1csQlc9MTZiaXQqLwogCiAvKiBNZW1vcnkgQmFuayA1IChFcHNvbiBWR0EpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAgICAweDAzODA1MzgwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0wICovCi0jZGVmaW5lIENGR19FQkNfUEI1Q1IgICBWR0FfQkEgfCAweDVBMDAwICAgIC8qIEJBUz0weEYxMCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQICAgMHgwMzgwNTM4MCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUiAgIFZHQV9CQSB8IDB4NUEwMDAgICAgLyogQkFTPTB4RjEwLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgNiAoUENNQ0lBIFNsb3QgMikgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQICAgMHgwNTAwMDdDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkNSICAgUENNQ0lBMl9CQSB8IDB4RkEwMDAgLypCQVM9MHgyODAsQlM9MTI4TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2QVAgICAweDA1MDAwN0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkNSICAgUENNQ0lBMl9CQSB8IDB4RkEwMDAgLypCQVM9MHgyODAsQlM9MTI4TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyoKICAqIEZQR0Egc3R1ZmYKICAqLwogCiAvKiBGUEdBIGludGVybmFsIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTCAgICAgICAgICAgMHgwMDgKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTDIgICAgICAgICAgMHgwMGEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkwgICAgICAgICAgIDB4MDA4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMMiAgICAgICAgICAweDAwYQogCiAvKiBGUEdBIENvbnRyb2wgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQgIDB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9DVFJMX1dESSAgICAgICAweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTF9QUzJfUkVTRVQgMHgwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX1JFU0VUICAweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfV0RJICAgICAgIDB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9QUzJfUkVTRVQgMHgwMDIwCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIgICAgICAgMSAgICAgICAgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUgICAgICAgODAqMTAyNCAgICAgLyogODBrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yICAgICAgIDEgICAgICAgICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRSAgICAgICA4MCoxMDI0ICAgICAvKiA4MGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHICAgICAgICAgICAgMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLICAgICAgICAgICAgMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQSAgICAgICAgICAgMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVCAgICAgICAgICAgMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORSAgICAgICAgICAgMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRyAgICAgICAgICAgIDB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsgICAgICAgICAgICAweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQSAgICAgICAgICAgMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQgICAgICAgICAgIDB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FICAgICAgICAgICAweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLwogCiAvKgogICogTENEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDRF9CSUdfTUVNCQkoVkdBX0JBICsgMHgyMDAwMDApIC8qIFMxRDEzODA2IE1lbSBCYXNlICovCi0jZGVmaW5lIENGR19MQ0RfQklHX1JFRwkJVkdBX0JBIC8qIFMxRDEzODA2IFJlZyBCYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEX0JJR19NRU0JCShWR0FfQkEgKyAweDIwMDAwMCkgLyogUzFEMTM4MDYgTWVtIEJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQ0RfQklHX1JFRwkJVkdBX0JBIC8qIFMxRDEzODA2IFJlZyBCYXNlICovCiAKICNkZWZpbmUgQ09ORklHX0xDRF9CSUcJCTIgLyogRXBzb24gUzFEMTM4MDYgdXNlZCAqLwogCiAvKiBJbWFnZSBpbmZvcm1hdGlvbi4uLiAqLwogI2RlZmluZSBDT05GSUdfTENEX1VTRUQJCUNPTkZJR19MQ0RfQklHCiAKLSNkZWZpbmUgQ0ZHX0xDRF9NRU0JCUNGR19MQ0RfQklHX01FTQotI2RlZmluZSBDRkdfTENEX1JFRwkJQ0ZHX0xDRF9CSUdfUkVHCisjZGVmaW5lIENPTkZJR19TWVNfTENEX01FTQkJQ09ORklHX1NZU19MQ0RfQklHX01FTQorI2RlZmluZSBDT05GSUdfU1lTX0xDRF9SRUcJCUNPTkZJR19TWVNfTENEX0JJR19SRUcKIAotI2RlZmluZSBDRkdfVklERU9fTE9HT19NQVhfU0laRSAoMSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFICgxIDw8IDIwKQogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHJlc2VydmVkIGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAvKiByZXNlcnZlZCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIC8qIHJlc2VydmUgc29tZSBtZW1vcnkgZm9yIEJPT1QgbGltaXQgaW5mbyAqLwotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19HQkxfREFUQV9PRkZTRVQgLSAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAxNikKIAogI2lmZGVmIENPTkZJR19CT09UQ09VTlRfTElNSVQgLyogcmVzZXJ2ZSAyIHdvcmQgZm9yIGJvb3Rjb3VudCBsaW1pdCAqLwotI2RlZmluZSBDRkdfQk9PVENPVU5UX0FERFIgKENGR19HQkxfREFUQV9PRkZTRVQgLSA4KQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDT1VOVF9BRERSIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDgpCiAjZW5kaWYKIAogLyoKQEAgLTQzOSwxMCArNDM5LDEwIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwkxCiAjZGVmaW5lIENPTkZJR19QQ0lfT0hDSQkJMQotI2RlZmluZSBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MgMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgMTUKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkib2hjaV9wY2kiCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MgMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTIDE1CisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJvaGNpX3BjaSIKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQgMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQgMQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FSNDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvQVI0MDUuaAppbmRleCAxOGNhMTIyLi44NjQ3NzRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQVI0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQVI0MDUuaApAQCAtNjUsNyArNjUsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtMTAyLDM5ICsxMDIsMzkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfTVhfQ1lDTElDICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBtZGMvbXdjIGNvbW1hbmRzICAgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTE0NzQ1NjAwIC8qIHVzZSBleHRlcm5hbCBzZXJpYWwgY2xvY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCTE0NzQ1NjAwIC8qIHVzZSBleHRlcm5hbCBzZXJpYWwgY2xvY2sJKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCkBAIC0xNTcsNTMgKzE1Nyw1MyBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfQk9PVERFTEFZCTAJLyogZW5hYmxlIHBjaSBib290ZGVsYXkgdmFyaWFibGUqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDMJLyogUENJIERldmljZSBJRDogQVJJU1RPNDA1CSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZmMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZmMDAwMDEJLyogMU1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDMJLyogUENJIERldmljZSBJRDogQVJJU1RPNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmZjAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmYwMDAwMQkvKiAxTUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkZGQjAwMDAJLyogQWRkcmVzcyBvZiBFbnZpcm9ubWVudCBTZWN0b3IqLwpAQCAtMjI2LDM5ICsyMjYsMzkgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChDQU4wLCAxLCAyLCAzKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHgwMTAwMDM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTAwMDM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoRXhwZW5zaW9uIEJ1cykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDAyODAgIC8qIGRpc2FibGUgUmVhZHksIEJFTT0wCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMTE4MDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDAwMjgwICAvKiBkaXNhYmxlIFJlYWR5LCBCRU09MAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoMTY1NTIpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwMDM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwMDM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNCAoRlBHQSByZWdzKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJMHgwMTAwNTM4MCAgLyogZW5hYmxlIFJlYWR5LCBCRU09MAkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkJMHhGMDMxQzAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9MzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDEwMDUzODAgIC8qIGVuYWJsZSBSZWFkeSwgQkVNPTAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkweEYwMzFDMDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz0zMmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA1IChGbGFzaCBCYW5rIDEvRFVNTVkpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1QVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiB1c2UgZGF0YSBjYWNoZQkJICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQVNINDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvQVNINDA1LmgKaW5kZXggOWIwOGFmNS4uYmNjODVlZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FTSDQwNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BU0g0MDUuaApAQCAtNTEsNyArNTEsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI3VuZGVmICBDT05GSUdfSEFTX0VUSDEKQEAgLTkyLDc0ICs5Miw3NCBAQAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIERTMTY4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogI3VuZGVmCUNPTkZJR19VQVJUMV9DT05TT0xFCQkvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUJKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFIDEJLyogaW5jbHVkZSB2ZXJzaW9uIGVudiB2YXJpYWJsZSAqLwogCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAgICAgICAgICAxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQogCi0jZGVmaW5lIENGR19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JIDEgICAgICAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUVVJRVQgICAgICAgICAgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE3Niw1OCArMTc2LDU4IEBACiAKICN1bmRlZglDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCSAgICAvKiB1c2UgZm9yIEpGRlMyICovCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzgsMjQgKzIzOCwyNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NzAwCS8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNzAsMjEgKzI3MCwyMSBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLS8qI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkgIDB4MDgwNTU4ODAgIC9YWFgqIFRXVD0xNixDU049MSxPRU49MSxXQk49MSxXQkY9MSxUSD00LFNPUj0xICovCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisvKiNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCSAgMHgwODA1NTg4MCAgL1hYWCogVFdUPTE2LENTTj0xLE9FTj0xLFdCTj0xLFdCRj0xLFRIPTQsU09SPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoOCBCaXQgUGVyaXBoZXJhbDogQ0FOLCBVQVJULCBSVEMpIGluaXRpYWxpemF0aW9uCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKDE2IEJpdCBQZXJpcGhlcmFsOiBGUEdBIGludGVybmFsLCBkaWcuIElPKSBpbml0aWFsaXphdGlvbgkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogI2RlZmluZSBDQU5fQkEJCTB4RjAwMDAwMDAJICAgIC8qIENBTiBCYXNlIEFkZHJlc3MJCQkqLwogI2RlZmluZSBEVUFSVDBfQkEJMHhGMDAwMDQwMAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwpAQCAtMjkyLDM2ICsyOTIsMzYgQEAKICNkZWZpbmUgRFVBUlQyX0JBCTB4RjAwMDA0MTAJICAgIC8qIERVQVJUIEJhc2UgQWRkcmVzcwkJKi8KICNkZWZpbmUgRFVBUlQzX0JBCTB4RjAwMDA0MTgJICAgIC8qIERVQVJUIEJhc2UgQWRkcmVzcwkJKi8KICNkZWZpbmUgUlRDX0JBCQkweEYwMDAwNTAwCSAgICAvKiBSVEMgQmFzZSBBZGRyZXNzCQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkweEY0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCTB4RjQwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtMzM1LDE1ICszMzUsMTUgQEAKICAqIEdQSU8wWzI4LTI5XSAtIFVBUlQxIGRhdGEgc2lnbmFsIGlucHV0L291dHB1dAogICogR1BJTzBbMzAtMzFdIC0gRU1BQzAgYW5kIEVNQUMxIHJlamVjdCBwYWNrZXQgaW5wdXRzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4NDAwMDA1NTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NQotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEY3RkUwMDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4RjdGRTAwMTQKIAotI2RlZmluZSBDRkdfRFVBUlRfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9SU1QJCSgweDgwMDAwMDAwID4+IDE0KQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9BVFVNODU0OC5oIGIvaW5jbHVkZS9jb25maWdzL0FUVU04NTQ4LmgKaW5kZXggOGVmZWEwMC4uMjQ1MGFkYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0FUVU04NTQ4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0FUVU04NTQ4LmgKQEAgLTc5LDIzICs3OSwyMyBAQAogCiAjZGVmaW5lIENPTkZJR19DTURfU0RSQU0JCTEJLyogU0RSQU0gRElNTSBTUEQgaW5mbyBwcmludG91dCAqLwogI2RlZmluZSBDT05GSUdfRU5BQkxFXzM2QklUX1BIWVMJMQotI3VuZGVmCUNGR19EUkFNX1RFU1QKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCiAjZGVmaW5lIFBDSV9TUEVFRAkJMzMzMzMwMDAgICAgICAgIC8qIENQTEQgY3VycmVubHR5IGRvZXMgbm90IGhhdmUgUENJIHNldHVwIGluZm8gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkoQ0ZHX0NDU1JCQVIrMHg4MDAwKQotI2RlZmluZSBDRkdfUENJMl9BRERSCShDRkdfQ0NTUkJBUisweDkwMDApCi0jZGVmaW5lIENGR19QQ0lFMV9BRERSCShDRkdfQ0NTUkJBUisweGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfQUREUgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHhhMDAwKQogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIyCkBAIC0xMDcsOCArMTA3LDggQEAKICNkZWZpbmUgQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDT05UUk9MTEVSCS8qIEREUiBjb250cm9sbGVyIG9yIERNQT8gKi8KICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKQEAgLTExOSwxNSArMTE5LDE1IEBACiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUwkweDUxCS8qIENUTFIgMCBESU1NIDAgKi8KIAogLyogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCTEwMjQJCS8qIEREUiBpcyAxMDI0TUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCS8qIDAtMTAyNCAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAwMDEwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18wCTB4MDAyNjA4MDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDM4MzU1MzIyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJMHgwMzkwNDhjNwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJMHhjMjAwMDAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCTB4MDAwMDA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA1MTUwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkxMDI0CQkvKiBERFIgaXMgMTAyNE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMGYJLyogMC0xMDI0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDAwMDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjYwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzgzNTUzMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMzkwNDhjNworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJMHgwMDAwMDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA1MTUwMTAwCiAjZGVmaW5lIEREUl9TRFJBTV9DRkcJMHg0MzAwMDAwMAogCiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKQEAgLTE2NCw2MyArMTY0LDYzIEBACiAgKiAxMTExIDEwMDAgMDAwMCAwMDAwIDAwMDAgMTExMCAwMTEwIDAxMDEgPSBmODAwMEU2NSAgICBPUngKICAqLwogCi0jZGVmaW5lIENGR19CT09UX0JMT0NLCQkweGY4MDAwMDAwCS8qIGJvb3QgVExCIGJsb2NrICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfQk9PVF9CTE9DSwkvKiBzdGFydCBvZiBGTEFTSCAxMjhNICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CTE9DSwkJMHhmODAwMDAwMAkvKiBib290IFRMQiBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQk9PVF9CTE9DSwkvKiBzdGFydCBvZiBGTEFTSCAxMjhNICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZjgwMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGY4MDAxMDAxCiAKLSNkZWZpbmUJQ0ZHX09SMF9QUkVMSU0JCTB4ZjgwMDBFNjUKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGY4MDAwRTY1CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk1MTIwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTgwMDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTUxMjAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTgwMDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgICAgMQotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJICAgICAgICAgICAxCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJICAgICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAvKgogICogRmxhc2ggb24gdGhlIExvY2FsQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19DQUNIRV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgY2FjaGVhYmxlCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19DQUNIRV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgY2FjaGVhYmxlCSAqLwogCiAvKiBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19JTklUX0wyX0FERFIJMHhmOGY4MDAwMAkvKiByZWxvY2F0ZSBib290IEwyU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfTDJfQUREUgkweGY4ZjgwMDAwCS8qIHJlbG9jYXRlIGJvb3QgTDJTUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMjMzLDQxICsyMzMsNDEgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU3Ci0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIE1lbW9yeSBzcGFjZSBpcyBtYXBwZWQgMS0xLCBidXQgSS9PIHNwYWNlIG11c3Qgc3RhcnQgZnJvbSAwLgogICovCi0jZGVmaW5lIENGR19QQ0lfUEhZUwkJMHg4MDAwMDAwMAkvKiAxRyBQQ0kgVExCICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BIWVMJCTB4ODAwMDAwMDAJLyogMUcgUENJIFRMQiAqLwogCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCiAjaWZkZWYgQ09ORklHX1BDSTIKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX0JBU0UJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9NRU1fUEhZUwlDRkdfUENJMl9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1BIWVMJMHhlMjgwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMJMHhlMjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19QQ0lFMQotI2RlZmluZSBDRkdfUENJRTFfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfTUVNX1BIWVMJQ0ZHX1BDSUUxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fUEhZUwkweGUzMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogICAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSUUxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fUEhZUwkweGUzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fU0laRQkweDAwMTAwMDAwCS8qICAgMU0gKi8KICNlbmRpZgogCiAKQEAgLTI4OCw5ICsyODgsOSBAQAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtMzM0LDEyICszMzQsMTIgQEAKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTM2OSwyNSArMzY5LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0FkZGVyLmggYi9pbmNsdWRlL2NvbmZpZ3MvQWRkZXIuaAppbmRleCBmY2FjNjQ3Li5lNGQzMGExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQWRkZXIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQWRkZXIuaApAQCAtNDEsMTggKzQxLDE4IEBACiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogCiAjaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMSkgfHwgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMikKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICNkZWZpbmUgRkVDX0VORVQKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfT05fRkVDIHx8IENPTkZJR19FVEhFUl9PTl9GRUMyICovCiAKICNkZWZpbmUgQ09ORklHXzh4eF9PU0NMSwkJMTAwMDAwMDAgLyogMTAgTUh6IG9zY2lsbGF0b3Igb24gRVhUQ0xLICovCiAjZGVmaW5lIENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQJNTAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAogI2lmZGVmIENPTkZJR19NUEM4NTJUCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJNTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAkJNTAwMDAwMDAKICNlbHNlCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAogI2VuZGlmIC8qIENPTkZJR19NUEM4NTJUICovCiAKIApAQCAtODYsMjggKzg2LDI4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogI3VuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogI3VuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIERlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIERlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogUkFNIGNvbmZpZ3VyYXRpb24gKG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBtdXN0IGJlIHplcm8pCisgKiBSQU0gY29uZmlndXJhdGlvbiAobm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBtdXN0IGJlIHplcm8pCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01BWF9TSVpFCTB4MDEwMDAwMDAJLyogVXAgdG8gMTYgTWJ5dGUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01BWF9TSVpFCTB4MDEwMDAwMDAJLyogVXAgdG8gMTYgTWJ5dGUJCSovCiAKLSNkZWZpbmUgQ0ZHX01BTVIJCTB4MDAwMDIxMTQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCQkweDAwMDAyMTE0CiAKIC8qCiAgKiA0MDk2CVVwIHRvIDQwOTYgU0RSQU0gcm93cwpAQCAtMTE2LDk2ICsxMTYsOTYgQEAKICAqIDQJTnVtYmVyIG9mIHJlZnJlc2ggY3ljbGVzIHBlciBwZXJpb2QKICAqIDY0CVJlZnJlc2ggY3ljbGUgaW4gbXMgcGVyIG51bWJlciBvZiByb3dzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCQkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDUwMDAwMAkvKiAxIC4uLiA1IE1CIGluIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNTAwMDAwCS8qIDEgLi4uIDUgTUIgaW4gU0RSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgICAqLwogI2lmZGVmIENPTkZJR19CWklQMgotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1MDAgPDwgMTApCS8qIFJlc2VydmUgfjIuNSBNQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjUwMCA8PCAxMCkJLyogUmVzZXJ2ZSB+Mi41IE1CIGZvciBtYWxsb2MoKSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgICovCiAjZW5kaWYgLyogQ09ORklHX0JaSVAyICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIG9yZ2FuaXNhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAvKiBFbnZpcm9ubWVudCBpcyBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJCS8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweEZGMDAwNzc0Ci0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4RkYwMDA3NzQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVikKIAotI2RlZmluZQlDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyNkZWZpbmUJQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzCiAgKi8KICNpZmRlZiBDT05GSUdfV0FUQ0hET0cKLSNkZWZpbmUgQ0ZHX1NZUENSCQkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FICB8IFwKIAkJCQkgU1lQQ1JfU1dGICB8IFNZUENSX1NXRSB8IFNZUENSX1NXUkkgfCBcCiAJCQkJIFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSAgfCBcCiAJCQkJIFNZUENSX1NXRiAgfCBTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJKFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfREJHQzExKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkJKFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfREJHQzExKQogCiAvKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCQkoVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCQkoVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQogCiAvKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCQkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgKi8KLS8qICNkZWZpbmUgQ0ZHX1BMUFJDUgkJUExQUkNSX1RFWFBTICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQlQTFBSQ1JfVEVYUFMgKi8KIAogLyogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlciAqLwogI2RlZmluZSBTQ0NSX01BU0sJCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCQlTQ0NSX1JUU0VMCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJU0NDUl9SVFNFTAogCi0jZGVmaW5lIENGR19ERVIJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IGNoaXBzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBjaGlwcwkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQWRkZXJVU0IuaCBiL2luY2x1ZGUvY29uZmlncy9BZGRlclVTQi5oCmluZGV4IGE0ZjdmOWEuLmU0YzFjOWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9BZGRlclVTQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BZGRlclVTQi5oCkBAIC0zMSw5ICszMSw5IEBACiAKICNkZWZpbmUgQ09ORklHX1VTQl9ERVZJQ0UJCS8qIEluY2x1ZGUgVURDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfVVNCX1RUWQkJCS8qIEJpbmQgdGhlIFRUWSBkcml2ZXIgdG8gVURDICovCi0jZGVmaW5lIENGR19VU0JfRVhUQ19DTEsgMHgwMgkJLyogT3NjaWxsYXRvciBvbiBFWFRDX0NMSyAyICovCi0jZGVmaW5lIENGR19VU0JfQlJHX0NMSwkweDA0CQkvKiBvciB1c2UgQmF1ZCByYXRlIGdlbmVyYXRvciAweDA0ICovCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkJLyogQ29uc29sZSBpcyBpbiBlbnYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfRVhUQ19DTEsgMHgwMgkJLyogT3NjaWxsYXRvciBvbiBFWFRDX0NMSyAyICovCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0JSR19DTEsJMHgwNAkJLyogb3IgdXNlIEJhdWQgcmF0ZSBnZW5lcmF0b3IgMHgwNCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCQkvKiBDb25zb2xlIGlzIGluIGVudiAqLwogCiAvKiBJZiB5b3UgaGF2ZSBhIFVTQi1JRiBhc3NpZ25lZCBWZW5kb3JJRCB0aGVuIHlvdSBtYXkgd2lzaCB0byBkZWZpbmUKICAqIHlvdXIgb3duIHZlbmRvciBzcGVjaWZpYyB2YWx1ZXMgZWl0aGVyIGluIEJvYXJkTmFtZS5oIG9yIGRpcmVjdGx5IGluCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQWxhc2thODIyMC5oIGIvaW5jbHVkZS9jb25maWdzL0FsYXNrYTgyMjAuaAppbmRleCA0MzFlZDRlLi4yNTgxZmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQWxhc2thODIyMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9BbGFza2E4MjIwLmgKQEAgLTM1LDggKzM1LDggQEAKIAogLyogSW5wdXQgY2xvY2sgcnVubmluZyBhdCAzME1oeiwgcmVhZCBIaWQxIGZvciB0aGUgQ1BVIG11bHRpcGxpZXIgdG8KICAgIGRldGVybWluZSB0aGUgQ1BVIHNwZWVkLiAqLwotI2RlZmluZSBDRkdfTVBDODIyMF9DTEtJTgkzMDAwMDAwMC8qIC4uLiBydW5uaW5nIGF0IDMwTUh6ICovCi0jZGVmaW5lIENGR19NUEM4MjIwX1NZU1BMTF9WQ09fTVVMVElQTElFUiAxNiAvKiBWQ08gbXVsdGlwbGllciBjYW4ndCBiZSByZWFkIGZyb20gYW55IHJlZ2lzdGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9DTEtJTgkzMDAwMDAwMC8qIC4uLiBydW5uaW5nIGF0IDMwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9TWVNQTExfVkNPX01VTFRJUExJRVIgMTYgLyogVkNPIG11bHRpcGxpZXIgY2FuJ3QgYmUgcmVhZCBmcm9tIGFueSByZWdpc3RlciAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJKi8KQEAgLTUzLDE2ICs1MywxNiBAQAogCiAjaWZkZWYgQ09ORklHX0VYVFVBUlRfQ09OU09MRQogIyAgIGRlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotIyAgIGRlZmluZSBDRkdfTlMxNjU1MAotIyAgIGRlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAxCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DUExEX0JBU0UgKyAweDEwMDgpCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX0NMSwkxODQzMjAwMAorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DUExEX0JBU0UgKyAweDEwMDgpCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJMTg0MzIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCSAgICAvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2RlZmluZSBDT05GSUdfVElNRVNUQU1QCQkJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogCkBAIC0xMjAsMTA0ICsxMjAsMTA0IEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTEKIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUyCS8qIDEwMTEwMDB4YiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MgkvKiAxMDExMDAweGIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKIC8qCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkyNTYKICovCiAKLS8qIElmIENGR19BTURfQk9PVCBpcyBkZWZpbmVkLCB0aGUgdGhlIHN5c3RlbSB3aWxsIGJvb3QgZnJvbSBBTUQuCisvKiBJZiBDT05GSUdfU1lTX0FNRF9CT09UIGlzIGRlZmluZWQsIHRoZSB0aGUgc3lzdGVtIHdpbGwgYm9vdCBmcm9tIEFNRC4KICAgIGVsc2UgdW5kZWZpbmVkIGl0IHdpbGwgYm9vdCBmcm9tIEludGVsIFN0cmF0YSBmbGFzaCAqLwotI2RlZmluZSBDRkdfQU1EX0JPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19BTURfQk9PVAkJMQogCiAvKgogICogRmxleGJ1cyBDaGlwc2VsZWN0IGNvbmZpZ3VyYXRpb24KICAqLwotI2lmIGRlZmluZWQgKENGR19BTURfQk9PVCkKLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweGZmZjAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9DVFJMCQkweDAwM2YwZDQwCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19BTURfQk9PVCkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHhmZmYwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDAwODAwMDAgIC8qIDUxMiBLQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DVFJMCQkweDAwM2YwZDQwCiAKLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweGZlMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAxMDAwMDAwICAvKiAxNiBNQiAqLwotI2RlZmluZSBDRkdfQ1MxX0NUUkwJCTB4MDAzZjE1NDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHhmZTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX01BU0sJCTB4MDEwMDAwMDAgIC8qIDE2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAzZjE1NDAKICNlbHNlCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJMHhmZjAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMTAwMDAwMCAgLyogMTYgTUIgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9DVFJMCQkweDAwM2YxNTQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJCTB4ZmYwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAxMDAwMDAwICAvKiAxNiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DVFJMCQkweDAwM2YxNTQwCiAKLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweGZlMDgKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwM2YwZDQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0JBU0UJCTB4ZmUwOAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkweDAwMDgwMDAwICAvKiA1MTIgS0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ1RSTAkJMHgwMDNmMGQ0MAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0NTMl9CQVNFCQkweGYxMDAKLSNkZWZpbmUgQ0ZHX0NTMl9NQVNLCQkweDAwMDQwMDAwCi0jZGVmaW5lIENGR19DUzJfQ1RSTAkJMHgwMDNmMTE0MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9CQVNFCQkweGYxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfTUFTSwkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DVFJMCQkweDAwM2YxMTQwCiAKLSNkZWZpbmUgQ0ZHX0NTM19CQVNFCQkweGYyMDAKLSNkZWZpbmUgQ0ZHX0NTM19NQVNLCQkweDAwMDQwMDAwCi0jZGVmaW5lIENGR19DUzNfQ1RSTAkJMHgwMDNmMTEwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19CQVNFCQkweGYyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfTUFTSwkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19DVFJMCQkweDAwM2YxMTAwCiAKIAotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UJCShDRkdfQ1MwX0JBU0UgPDwgMTYpCi0jZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJKENGR19DUzFfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJKENPTkZJR19TWVNfQ1MwX0JBU0UgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UJCShDT05GSUdfU1lTX0NTMV9CQVNFIDw8IDE2KQogCi0jaWYgZGVmaW5lZCAoQ0ZHX0FNRF9CT09UKQotI2RlZmluZSBDRkdfQU1EX0JBU0UJCUNGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfSU5URUxfQkFTRQkJQ0ZHX0ZMQVNIMV9CQVNFICsgMHhmMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19BTURfQkFTRQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCisjZGVmaW5lIENPTkZJR19TWVNfQU1EX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRFTF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgMHhmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0FNRF9CQVNFCiAjZWxzZQotI2RlZmluZSBDRkdfSU5URUxfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFICsgMHhmMDAwMDAKLSNkZWZpbmUgQ0ZHX0FNRF9CQVNFCQlDRkdfRkxBU0gxX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19JTlRFTF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5URUxfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIDB4ZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQU1EX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gxX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0lOVEVMX0JBU0UKICNlbmRpZgogCi0jZGVmaW5lIENGR19DUExEX0JBU0UJCShDRkdfQ1MyX0JBU0UgPDwgMTYpCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCShDRkdfQ1MzX0JBU0UgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFCQkoQ09ORklHX1NZU19DUzJfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCShDT05GSUdfU1lTX0NTM19CQVNFIDw8IDE2KQogCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkJLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwogCiAjZGVmaW5lIFBIWVNfQU1EX1NFQ1RfU0laRQkweDAwMDEwMDAwIC8qICA2NCBLQiBzZWN0b3JzICh4MikgKi8KICNkZWZpbmUgUEhZU19JTlRFTF9TRUNUX1NJWkUJMHgwMDAyMDAwMCAvKiAxMjggS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2lmIGRlZmluZWQgKENGR19BTURfQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIMF9CQVNFICsgQ0ZHX0NTMF9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQorI2lmIGRlZmluZWQgKENPTkZJR19TWVNfQU1EX0JPT1QpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyBDT05GSUdfU1lTX0NTMF9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCVBIWVNfQU1EX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlQSFlTX0FNRF9TRUNUX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVjFfQUREUgkJKENGR19GTEFTSDFfQkFTRSArIENGR19DUzFfTUFTSyAtIFBIWVNfSU5URUxfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ09ORklHX1NZU19GTEFTSDFfQkFTRSArIENPTkZJR19TWVNfQ1MxX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVjFfU0laRQkJUEhZU19JTlRFTF9TRUNUX1NJWkUKICNkZWZpbmUgQ09ORklHX0VOVjFfU0VDVF9TSVpFCVBIWVNfSU5URUxfU0VDVF9TSVpFCiAjZWxzZQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0gwX0JBU0UgKyBDRkdfQ1MwX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIENPTkZJR19TWVNfQ1MwX01BU0sgLSBQSFlTX0lOVEVMX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlQSFlTX0lOVEVMX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlQSFlTX0lOVEVMX1NFQ1RfU0laRQotI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ0ZHX0ZMQVNIMV9CQVNFICsgQ0ZHX0NTMV9NQVNLIC0gUEhZU19BTURfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ09ORklHX1NZU19GTEFTSDFfQkFTRSArIENPTkZJR19TWVNfQ1MxX01BU0sgLSBQSFlTX0FNRF9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlYxX1NJWkUJCVBIWVNfQU1EX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WMV9TRUNUX1NJWkUJUEhZU19BTURfU0VDVF9TSVpFCiAjZW5kaWYKQEAgLTIzOCwzNyArMjM4LDM3IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfU1JBTV9CQVNFCQkoQ0ZHX01CQVIgKyAweDIwMDAwKQotI2RlZmluZSBDRkdfU1JBTV9TSVpFCQkweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9CQVNFCQkoQ09ORklHX1NZU19NQkFSICsgMHgyMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4ODAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19NQkFSICsgMHgyMDAwMCkKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfTUJBUiArIDB4MjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qIFNEUkFNIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1RPVEFMX0JBTktTCQkyCi0jZGVmaW5lIENGR19TRFJBTV9TUERfSTJDX0FERFIJCTB4NTEJCS8qIDdiaXQgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NQRF9TSVpFCQkweDQwCi0jZGVmaW5lIENGR19TRFJBTV9DQVNfTEFURU5DWQkJNAkJLyogKENMPTIpeDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9UT1RBTF9CQU5LUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NQRF9JMkNfQUREUgkJMHg1MQkJLyogN2JpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NQRF9TSVpFCQkweDQwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1kJCTQJCS8qIChDTD0yKXgyICovCiAKIC8qIFNEUkFNIGRyaXZlIHN0cmVuZ3RoIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19TRFJBTV9EUklWRV9TVFJFTkdUSAkoKERSSVZFX1NUUkVOR1RIX0xPVyAgPDwgU0RSQU1EU19TQkVfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RSSVZFX1NUUkVOR1RICSgoRFJJVkVfU1RSRU5HVEhfTE9XICA8PCBTRFJBTURTX1NCRV9TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfSElHSCA8PCBTRFJBTURTX1NCQ19TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfTE9XICA8PCBTRFJBTURTX1NCQV9TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfT0ZGICA8PCBTRFJBTURTX1NCU19TSElGVCkgfCBcCkBAIC0yODUsMzQgKzI4NSwzNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMCAgLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMCAgLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCSAgICAvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCSAgICAvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjIwIENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODIyMCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1ICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1ICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9BbWlnYU9uZUczU0UuaCBiL2luY2x1ZGUvY29uZmlncy9BbWlnYU9uZUczU0UuaAppbmRleCBhNmU5MjI4Li5iNzFkYTFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQW1pZ2FPbmVHM1NFLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0FtaWdhT25lRzNTRS5oCkBAIC01MCw3ICs1MCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgkJLyogY2xvY2tzIHBhc3NlZCB0byBMaW51eCBpbiBIeiAqLwogCkBAIC0xMDAsNTIgKzEwMCw1MiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiXSAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIl0gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0vKiAjdW5kZWYgQ0ZHX0hVU0hfUEFSU0VSICovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKy8qICN1bmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCiAvKiBQcmludCBCdWZmZXIgU2l6ZQogICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQogCi0jZGVmaW5lIENGR19NQVhBUkdTCTY0CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgwMDUwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTY0CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgwMDUwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJICAgIDB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX01BWF9TSVpFICAweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9NQVhfU0laRSAgMHgwMDA4MDAwMAogLyogTWF4aW11bSBhbW91bnQgb2YgUkFNLgogICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHg4MDAwMDAwMAkvKiAyRwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4ODAwMDAwMDAJLyogMkcJCQkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoNzY4IDw8IDEwKSAvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDI1MDAgPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoNzY4IDw8IDEwKSAvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgyNTAwIDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX1NEUkFNX0JBU0UgJiYgXAotICAgIENGR19NT05JVE9SX0JBU0UgPCBDRkdfU0RSQU1fQkFTRSArIENGR19NQVhfUkFNX1NJWkUKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiYgXAorICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmIENGR19SQU1CT09UCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCkBAIC0xNTQsODggKzE1NCw4OCBAQAogLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhCiAgKi8KIC8qIEhKRjogdXNlZCB0byBiZSAweDQwMDAwMCAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg4MDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogCiAvKgogICogVGVtcG9yYXJ5IGJ1ZmZlciBmb3Igc2VyaWFsIGRhdGEgdW50aWwgdGhlIHJlYWwgc2VyaWFsIGRyaXZlcgogICogaXMgaW5pdGlhbGlzZWQgKG1lbXRlc3Qgd2lsbCBkZXN0cm95IHRoaXMgYnVmZmVyKQogICovCi0jZGVmaW5lIENGR19TQ09OU09MRV9BRERSICAgICBDRkdfSU5JVF9SQU1fQUREUgotI2RlZmluZSBDRkdfU0NPTlNPTEVfU0laRSAgICAgMHgwMDAyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NPTlNPTEVfQUREUiAgICAgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfU0NPTlNPTEVfU0laRSAgICAgMHgwMDAyMDAwCiAKIC8qIFNEUkFNIDAgLSAyNTZNQgogICovCiAKLS8qSEpGOiAjZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDBVIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQwVSovCisvKkhKRjogI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF80TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQwVSovCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAkgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMFUJICAgICAgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMEwgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJICAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJICAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogLyogUENJIFJhbmdlCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQxTAkgKDB4ODAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDFVCSAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDFMCSAoMHg4MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJICgweDgwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSAoMHg4MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAvKiBISkY6Ci0jZGVmaW5lIENGR19JQkFUMUwgKChDRkdfU0RSQU1fQkFTRStDRkdfSU5JVF9SQU1fQUREUikgfCBCQVRMX1BQX1JXKQotI2RlZmluZSBDRkdfSUJBVDFVICgoQ0ZHX1NEUkFNX0JBU0UrQ0ZHX0lOSVRfUkFNX0FERFIpIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgKChDRkdfU0RSQU1fQkFTRStDRkdfSU5JVF9SQU1fQUREUiArIDB4MjAwMDApIHwgQkFUTF9QUF9SVyApCi0jZGVmaW5lIENGR19EQkFUMVUgKChDRkdfU0RSQU1fQkFTRStDRkdfSU5JVF9SQU1fQUREUiArIDB4MjAwMDApIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICgoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUikgfCBCQVRMX1BQX1JXKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAoKENPTkZJR19TWVNfU0RSQU1fQkFTRStDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIpIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICgoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDB4MjAwMDApIHwgQkFUTF9QUF9SVyApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICgoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIDB4MjAwMDApIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAqLwogCiAvKiBJbml0IFJBTSBpbiB0aGUgQ1BVIERDYWNoZSAobm8gYmFja2luZyBtZW1vcnkpCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQyTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMlUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIC8qIFRoaXMgdXNlZCB0byBiZSBjb21tZW50ZWQgb3V0ICovCi0jZGVmaW5lIENGR19JQkFUMkwJICBDRkdfREJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSAgQ09ORklHX1NZU19EQkFUMkwKIC8qIFRoaXMgaGVyZSB0b28gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyVQkgIENGR19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJICBDT05GSUdfU1lTX0RCQVQyVQogCiAKIC8qIEkvTyBhbmQgUENJIG1lbW9yeSBhdCAweGYwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQzTAkoMHhmMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UJKDB4ZjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJKDB4ZjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQkoMHhmMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4ZjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4ZjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4ZjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweGYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwogICogKGFkZHJlc3MgbWFwcGluZ3MsIHJlZ2lzdGVyIGluaXRpYWwgdmFsdWVzLCBldGMuKQogICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAotI2RlZmluZSBDRkdfQlVTX0haCTEzMzAwMDAwMCAvKiBidXMgc3BlZWQgLSAxMDAgbWh6CQkqLwotI2RlZmluZSBDRkdfQ1BVX0NMSwkxMzMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JVU19DTEsJMTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJMTMzMDAwMDAwIC8qIGJ1cyBzcGVlZCAtIDEwMCBtaHoJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX0NMSwkxMzMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCTEzMzAwMDAwMAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgaW4gb25lIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBpcyBzdG9yZWQgaW4gTlZSQU0uCkBAIC0yNDcsMjIgKzI0NywyMiBAQAogCQkJCQkgICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMDAJICAgLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQuIFNlZSBjb21tZW50IGFib3ZlICovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCTEgLyogc3RkaW4vc3Rkb3V0L3N0ZGVyciBhcmUgaW4gZW52aXJvbm1lbnQgKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfT1ZFUldSSVRFX1JPVVRJTkUJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCTEgLyogc3RkaW4vc3Rkb3V0L3N0ZGVyciBhcmUgaW4gZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKICAqIEwyIGNhY2hlCiAgKi8KLSNkZWZpbmUgQ0ZHX0wyCisjZGVmaW5lIENPTkZJR19TWVNfTDIKICNkZWZpbmUgTDJfSU5JVAkgIChMMkNSX0wyU0laXzJNIHwgTDJDUl9MMkNMS18zIHwgTDJDUl9MMlJBTV9CVVJTVCB8IFwKIAkJICAgTDJDUl9MMk9IXzUgfCBMMkNSX0wyQ1RMIHwgTDJDUl9MMldUKQogI2RlZmluZSBMMl9FTkFCTEUgKEwyX0lOSVQgfCBMMkNSX0wyRSkKQEAgLTI4MSwyNiArMjgxLDI2IEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfQVRBUEkJCTEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTIKLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJNAorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTQKICNkZWZpbmUgQ09ORklHX0lTT19QQVJUSVRJT04JMQogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4RkUwMDAwMDAgIC8qIHdhczogdmlhX2dldF9iYXNlX2FkZHIoKSAqLwotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MUYwCi0jZGVmaW5lIENGR19BVEFfSURFMV9PRkZTRVQJMHgxNzAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RkUwMDAwMDAgIC8qIHdhczogdmlhX2dldF9iYXNlX2FkZHIoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDFGMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVAkweDE3MAogCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMAotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkJKi8KIAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfMjAwMAotI3VuZGVmIENGR19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMAorI3VuZGVmIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFJUQwpAQCAtMzExLDE2ICszMTEsMTYgQEAKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAweEZFMDAwM0Y4Ci0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgMHhGRTAwMDJGOAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAweEZFMDAwM0Y4CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yIDB4RkUwMDAyRjgKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAxCiAKIC8qIGJhc2UgYWRkcmVzcyBmb3IgSVNBIEkvTwogICovCi0jZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTIDB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIDB4RkUwMDAwMDAKIAogLyogSVNBIEludGVycnVwdCBzdHVmZiAodGFrZW4gZnJvbSBKV0wpICovCiAKQEAgLTM0Niw3ICszNDYsNyBAQAogICovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUCiAKIC8qICNkZWZpbmUgQ09ORklHX0VUSEFERFIJMDA6MDk6RDI6MTA6MDA6NzYgKi8KQEAgLTM2Myw3ICszNjMsNyBAQAogI2RlZmluZSBDT05GSUdfVVNCX1VIQ0kJCTEKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCTEKICNkZWZpbmUgQ09ORklHX1VTQl9LRVlCT0FSRAkxCi0jZGVmaW5lIENGR19ERVZJQ0VfREVSRUdJU1RFUgkxIC8qIG5lZWRlZCBieSBDT05GSUdfVVNCX0tFWUJPQVJEICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIJMSAvKiBuZWVkZWQgYnkgQ09ORklHX1VTQl9LRVlCT0FSRCAqLwogCiAvKgogICogQXV0b2Jvb3Qgc3R1ZmYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9CMi5oIGIvaW5jbHVkZS9jb25maWdzL0IyLmgKaW5kZXggYTdjYjNlMi4uYzc3ZWExZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0IyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0IyLmgKQEAgLTQ4LDEwICs0OCwxMCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTEwMjQJCS8qIDEwMjQgYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQgKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTA2LDI0ICsxMDYsMjQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MEM0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEM4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDBDNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDBjNzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDBjNzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJCTEwMDAJCS8qIDEga0h6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkJMTAwMAkJLyogMSBrSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTQ2LDcgKzE0Niw3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDQwMDAwMCAvKiA0IE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCkBAIC0xNTQsMjQgKzE1NCwyNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudCBWYXJpYWJsZSBzZXR1cApAQCAtMTgzLDIzICsxODMsMjMgQEAKICAqIEkyQyBFRVBST00gKFNUTTI0QzAyVzYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweEE4CS8qIEVFUFJPTSBTVE0yNEMwMlc2CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4QTgJLyogRUVQUk9NIFNUTTI0QzAyVzYJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotLyojZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNyovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyogRmxhc2ggYmFua3MgSkZGUzIgc2hvdWxkIHVzZSAqLwogLyoKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksgICAgMAotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCTIKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUyAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkyCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTICAgICAxCiAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0JBQjd4eC5oIGIvaW5jbHVkZS9jb25maWdzL0JBQjd4eC5oCmluZGV4IGJmYmRhNTIuLjE5MTBiMzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9CQUI3eHguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQkFCN3h4LmgKQEAgLTYzLDcgKzYzLDcgQEAKICAgICAiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8gICAgICAgMCAgICAgICAvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRSAgICAgICAgICAgLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICAgICAgICAgICAvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC05Myw4ICs5Myw4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiPT4gIiAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogLyoKICAqIGNob29zZSBiZXR3ZWVuIENPTTEgYW5kIENPTTIgYXMgc2VyaWFsIGNvbnNvbGUKQEAgLTEwMiwxMDUgKzEwMiwxMDUgQEAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgICAgMQogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDEwMjQgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAxMDI0ICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICAgICAgICBDRkdfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgICAgICAgICAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTICAgICAgICAgICAgIDE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUgICAgICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgIDB4MDAwMDAwMDAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAgICAgMHgwNDAwMDAwMCAgLyogMCAuLi4gNjQgTUIgaW4gRFJBTSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDAwMDAwMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHgwNDAwMDAwMCAgLyogMCAuLi4gNjQgTUIgaW4gRFJBTSAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgICAgICAgIDB4MTAwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAgICAweDEwMDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAgICAqLwogCi0jZGVmaW5lIENGR19IWiAgICAgICAgICAgICAgICAgIDEwMDAgICAgICAgIC8qIGRlYy4gZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgICAgICAgMTAwMCAgICAgICAgLyogZGVjLiBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCiAgKiAoYWRkcmVzcyBtYXBwaW5ncywgcmVnaXN0ZXIgaW5pdGlhbCB2YWx1ZXMsIGV0Yy4pCiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIAogLyoKICAqIENob29zZSB0aGUgYWRkcmVzcyBtYXBwaW5nIHNjaGVtZSBmb3IgdGhlIE1QQzEwNiBtZW0gY29udHJvbGxlci4KICAqIERlZmF1bHQgaXMgbWFwcGluZyBCIChDSFJQKSwgc2V0IHRoaXMgZGVmaW5lIHRvIGNob29zZSBtYXBwaW5nIEEgKFBSZVApLgogICovCi0jZGVmaW5lIENGR19BRERSRVNTX01BUF9BCi0jaWZkZWYgIENGR19BRERSRVNTX01BUF9BCisjZGVmaW5lIENPTkZJR19TWVNfQUREUkVTU19NQVBfQQorI2lmZGVmICBDT05GSUdfU1lTX0FERFJFU1NfTUFQX0EKIAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMgICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRSAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUyAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSAgICAgMHg4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JVUyAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUyAgICAgICAgMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFICAgICAgICAweDNmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTICAgICAgICAweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFICAgICAgICAweDNmMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fQlVTICAgICAgICAgMAotI2RlZmluZSBDRkdfSVNBX01FTV9QSFlTICAgICAgICAwCi0jZGVmaW5lIENGR19JU0FfTUVNX1NJWkUgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX0JVUyAgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1BIWVMgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1NJWkUgICAgICAgIDAKIAotI2RlZmluZSBDRkdfUENJX0lPX0JVUyAgICAgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19QSFlTICAgICAgICAgMHg4MTAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUgICAgICAgICAweDAxMDAwMDAwLUNGR19QQ0lfSU9fQlVTCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX0JVUyAgICAgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAgICAgICAgIDB4ODEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRSAgICAgICAgIDB4MDEwMDAwMDAtQ09ORklHX1NZU19QQ0lfSU9fQlVTCiAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19CVVMgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPX1BIWVMgICAgICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU9fU0laRSAgICAgICAgIDB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQlVTICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fUEhZUyAgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fU0laRSAgICAgICAgIDB4MDA4MDAwMDAKIAogI2Vsc2UKIAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRSAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUyAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSAgICAgMHg0MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JVUyAgICAgICAgIDB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUyAgICAgICAgMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFICAgICAgICAweDdkMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMgICAgICAgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTICAgICAgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFICAgICAgICAweDdkMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fQlVTICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX01FTV9QSFlTICAgICAgICAweGZkMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfTUVNX1NJWkUgICAgICAgIDB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX0JVUyAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1BIWVMgICAgICAgIDB4ZmQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX1NJWkUgICAgICAgIDB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfUENJX0lPX0JVUyAgICAgICAgICAweDAwODAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUyAgICAgICAgIDB4ZmU4MDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFICAgICAgICAgMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CVVMgICAgICAgICAgMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19QSFlTICAgICAgICAgMHhmZTgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFICAgICAgICAgMHgwMDQwMDAwMAogCi0jZGVmaW5lIENGR19JU0FfSU9fQlVTICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19QSFlTICAgICAgICAgMHhmZTAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPX1NJWkUgICAgICAgICAweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JVUyAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX1BIWVMgICAgICAgICAweGZlMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX1NJWkUgICAgICAgICAweDAwODAwMDAwCiAKLSNlbmRpZiAvKkNGR19BRERSRVNTX01BUF9BICovCisjZW5kaWYgLypDT05GSUdfU1lTX0FERFJFU1NfTUFQX0EgKi8KIAotI2RlZmluZSBDRkdfNjBYX1BDSV9NRU1fT0ZGU0VUICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfNjBYX1BDSV9NRU1fT0ZGU0VUICAweDAwMDAwMDAwCiAKIC8qIGRyaXZlciBkZWZpbmVzIEZEQyxJREUsLi4uICovCi0jZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTIENGR19JU0FfSU9fUEhZUwotI2RlZmluZSBDRkdfSVNBX0lPICAgICAgICAgICAgICBDRkdfSVNBX0lPX1BIWVMKLSNkZWZpbmUgQ0ZHXzYwWF9QQ0lfSU9fT0ZGU0VUICAgQ0ZHX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyBDT05GSUdfU1lTX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPICAgICAgICAgICAgICBDT05GSUdfU1lTX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfNjBYX1BDSV9JT19PRkZTRVQgICBDT05GSUdfU1lTX0lTQV9JT19QSFlTCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRSAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIDB4ZmZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIDB4ZmZmMDAwMDAKIAogLyoKICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAgIDB4MDBmZDAwMDAgIC8qIGFib3ZlIHRoZSBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgICAweDQwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgNjQgICAgICAgICAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgICAgIENGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAgIDB4MDBmZDAwMDAgIC8qIGFib3ZlIHRoZSBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgICAgMHg0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgICA2NCAgICAgICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBGbGFzaCBtYXBwaW5nL29yZ2FuaXphdGlvbiBvbiB0aGUgTVBDMTB4LgpAQCAtMjA4LDExICsyMDgsMTEgQEAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNICAgICAgMHhmZjgwMDAwMAogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0gICAgICAweGZmYzAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMiAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgICAgNjcgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAyICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgICAgNjcgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgICAgMTIwMDAwICAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgICA1MDAgICAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCAgICAxMjAwMDAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgICA1MDAgICAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCkBAIC0yMzQsMzYgKzIzNCwzNiBAQAogI2RlZmluZSBNVERQQVJUU19ERUZBVUxUCSJtdGRwYXJ0cz1iYWI3eHgtMDotKGpmZnMyKSIKICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAgQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOICAgICAgICAgMHg0MDAwMCAgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAgICAgMHgyMDAwMCAgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCi0jdW5kZWYgIENGR19NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTiAgICAgICAgIDB4NDAwMDAgICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgICAgICAweDIwMDAwICAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19NRU1URVNUCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gICAgIDEgICAgICAgICAgIC8qIHVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRSAgICAgICAgICAweDFmZjAgICAgICAvKiBOVlJBTSBzaXplICg4a0IpLCB3ZSBtdXN0IHByb3RlY3QgdGhlIGNsb2NrIGRhdGEgKDE2IGJ5dGVzKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUgICAgICAgICAgMHgxZmYwICAgICAgLyogTlZSQU0gc2l6ZSAoOGtCKSwgd2UgbXVzdCBwcm90ZWN0IHRoZSBjbG9jayBkYXRhICgxNiBieXRlcykgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgICAgICAgMHg0MDAgICAgICAgLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICgxa0IpICovCiAvKgogICogV2Ugc3RvcmUgdGhlIGVudmlyb25tZW50IGFuZCBhbiBpbWFnZSBvZiByZXZpc2lvbiBlZXByb20gaW4gdGhlIHVwcGVyIHBhcnQgb2YgdGhlIE5WUkFNLiBUaHVzLAogICogdXNlciBhcHBsaWNhdGlvbnMgY2FuIHVzZSB0aGUgcmVtYWluaW5nIHNwYWNlIGZvciBvdGhlciBwdXJwb3Nlcy4KICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoQ0ZHX05WUkFNX1NJWkUgKzB4MTAgLTB4ODAwKQotI2RlZmluZSBDRkdfTlZfU1JPTV9DT1BZX0FERFIgICAoQ0ZHX05WUkFNX1NJWkUgKzB4MTAgLTB4NDAwKQotI2RlZmluZSBDRkdfTlZSQU1fQUNDRVNTX1JPVVRJTkUgICAgICAgICAgICAvKiBUaGlzIGJvYXJkIG5lZWRzIGEgc3BlY2lhbCByb3V0aW5lIHRvIGFjY2VzcyB0aGUgTlZSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NST01fU0laRSAgICAgICAgICAgMHgxMDAgICAgICAgLyogc2hhZG93IG9mIHJldmlzaW9uIGluZm8gaXMgaW4gbnZyYW0gKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgICAgKENPTkZJR19TWVNfTlZSQU1fU0laRSArMHgxMCAtMHg4MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlZfU1JPTV9DT1BZX0FERFIgICAoQ09ORklHX1NZU19OVlJBTV9TSVpFICsweDEwIC0weDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORSAgICAgICAgICAgIC8qIFRoaXMgYm9hcmQgbmVlZHMgYSBzcGVjaWFsIHJvdXRpbmUgdG8gYWNjZXNzIHRoZSBOVlJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NST01fU0laRSAgICAgICAgICAgMHgxMDAgICAgICAgLyogc2hhZG93IG9mIHJldmlzaW9uIGluZm8gaXMgaW4gbnZyYW0gKi8KIAogLyoKICAqIFNlcmlhbCBkZXZpY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLICAgICAgICAgMTg0MzIwMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX0lTQV9JTyArIENGR19OUzg3MzA4X1VBUlQxX0JBU0UpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgICAgICAgIChDRkdfSVNBX0lPICsgQ0ZHX05TODczMDhfVUFSVDJfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyAgICAgICAgIDE4NDMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX0lTQV9JTyArIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiAgICAgICAgKENPTkZJR19TWVNfSVNBX0lPICsgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyX0JBU0UpCiAKIC8qCiAgKiBQQ0kgc3R1ZmYKQEAgLTI4NCw3ICsyODQsNyBAQAogI2RlZmluZSBDT05GSUdfQ09OU09MRV9USU1FCiAjZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8KICNkZWZpbmUgQ09ORklHX0NPTlNPTEVfQ1VSU09SCi0jZGVmaW5lIENGR19DT05TT0xFX0JMSU5LX0NPVU5UICAgICAgICAgMzAwMDAgICAgLyogYXBwcm94LiAyIEhaICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9CTElOS19DT1VOVCAgICAgICAgIDMwMDAwICAgIC8qIGFwcHJveC4gMiBIWiAqLwogCiAvKgogICogSURFL1NDU0kgZ2xvYmFscwpAQCAtMzAyLDE1ICszMDIsMTUgQEAKICAqIEFUQVBJIFN1cHBvcnQgKGV4cGVyaW1lbnRhbCkKICAqLwogI2RlZmluZSBDT05GSUdfQVRBUEkKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICAgICAgLyogbWF4LiAyIElERSBidXNzZXMgICAgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UgICAgICAgKENGR19JREVfTUFYQlVTKjIpICAgICAgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICAgICAgLyogbWF4LiAyIElERSBidXNzZXMgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFICAgICAgIChDT05GSUdfU1lTX0lERV9NQVhCVVMqMikgICAgICAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIgICAgICAgQ0ZHXzYwWF9QQ0lfSU9fT0ZGU0VUICAgLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQgICAgIDB4MUYwICAgICAgICAgICAgICAgICAgIC8qIGRlZmF1bHQgaWRlMCBvZmZzdGUgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVCAgICAgMHgxNzAgICAgICAgICAgICAgICAgICAgLyogZGVmYXVsdCBpZGUxIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUICAgICAwICAgICAgICAgICAgICAgICAgICAgICAvKiBkYXRhIHJlZyBvZmZzZXQgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgLyogcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQgICAgICAweDIwMCAgICAgICAgICAgICAgICAgICAvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiAgICAgICBDT05GSUdfU1lTXzYwWF9QQ0lfSU9fT0ZGU0VUICAgLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUICAgICAweDFGMCAgICAgICAgICAgICAgICAgICAvKiBkZWZhdWx0IGlkZTAgb2Zmc3RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUICAgICAweDE3MCAgICAgICAgICAgICAgICAgICAvKiBkZWZhdWx0IGlkZTEgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUICAgICAwICAgICAgICAgICAgICAgICAgICAgICAvKiBkYXRhIHJlZyBvZmZzZXQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVCAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlZyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCAgICAgIDB4MjAwICAgICAgICAgICAgICAgICAgIC8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KIAogI2RlZmluZSBBVEFfUkVTRVRfVElNRSAgICAgICAgICAoYXRhX3Jlc2V0X3RpbWUpCiAKQEAgLTMyMiwxMSArMzIyLDExIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1NDU0lfU1lNNTNDOFhYCiAjZGVmaW5lIENPTkZJR19TQ1NJX0RFVl9JRCAgICAgIChzY3NpX2Rldl9pZCkgICAgICAgICAgIC8qIDg3NSBvciA4NjAgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfU1lNNTNDOFhYX0NDRiAgKHNjc2lfc3ltNTNjOHh4X2NjZikgICAgLyogdmFsdWUgZm9yIG5vbmUgNDAgbWh6IGNsb2NrcyAqLwotI2RlZmluZSBDRkdfU0NTSV9NQVhfTFVOICAgICAgICA4ICAgICAgICAgICAgICAgICAgICAgICAvKiBudW1iZXIgb2Ygc3VwcG9ydGVkIExVTnMgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQgICAgKHNjc2lfbWF4X3Njc2lfaWQpICAgICAgLyogbWF4IFNDU0kgSUQgKDAtNikgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0RFVklDRSAgICAgKDE1ICogQ0ZHX1NDU0lfTUFYX0xVTikgLyogbWF4LiBUYXJnZXQgZGV2aWNlcyAqLwotI2RlZmluZSBDRkdfU0NTSV9TUElOX1VQX1RJTUUgICAoc2NzaV9yZXNldF90aW1lKQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfU1lNNTNDOFhYX0NDRiAgKHNjc2lfc3ltNTNjOHh4X2NjZikgICAgLyogdmFsdWUgZm9yIG5vbmUgNDAgbWh6IGNsb2NrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTiAgICAgICAgOCAgICAgICAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIHN1cHBvcnRlZCBMVU5zICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCAgICAoc2NzaV9tYXhfc2NzaV9pZCkgICAgICAvKiBtYXggU0NTSSBJRCAoMC02KSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRSAgICAgKDE1ICogQ09ORklHX1NZU19TQ1NJX01BWF9MVU4pIC8qIG1heC4gVGFyZ2V0IGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX1NQSU5fVVBfVElNRSAgIChzY3NpX3Jlc2V0X3RpbWUpCiAKIC8qCiAgKiBQYXJ0aW9uIHN1cHBwb3J0CkBAIC0zMzksNDAgKzMzOSw0MCBAQAogICogV2luYm9uZCBDb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX1dJTkJPTkRfODNDNTUzICAgICAgMSAgICAgICAgICAgICAgICAgICAgICAgLyogaGFzIGEgd2luYm9uZCBicmlkZ2UgKi8KLSNkZWZpbmUgQ0ZHX1VTRV9XSU5CT05EX0lERSAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgLyogdXNlIHdpbmJvbmQgODNjNTUzIGludGVybmFsIGlkZSAqLwotI2RlZmluZSBDRkdfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgICAgMHg4MDAwNTgwMCAgICAgICAgICAvKiBwY2ktaXNhIGJyaWRnZSBjb25maWcgYWRkciAqLwotI2RlZmluZSBDRkdfV0lOQk9ORF9JREVfQ0ZHX0FERFIgICAgMHg4MDAwNTkwMCAgICAgICAgICAvKiBpZGUgY29uZmlnIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfV0lOQk9ORF9JREUgICAgIDAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVzZSB3aW5ib25kIDgzYzU1MyBpbnRlcm5hbCBpZGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19XSU5CT05EX0lTQV9DRkdfQUREUiAgICAweDgwMDA1ODAwICAgICAgICAgIC8qIHBjaS1pc2EgYnJpZGdlIGNvbmZpZyBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfV0lOQk9ORF9JREVfQ0ZHX0FERFIgICAgMHg4MDAwNTkwMCAgICAgICAgICAvKiBpZGUgY29uZmlnIGFkZHIgKi8KIAogLyoKICAqIE5TODczMDggQ29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19OUzg3MzA4ICAgICAgICAgICAgICAgICAgICAvKiBOYXQgU2VtaSBzdXBlci1pbyBjbnRyIG9uIElTQSBidXMgKi8KLSNkZWZpbmUgQ0ZHX05TODczMDhfQkFERFJfMTAgICAgMQotI2RlZmluZSBDRkdfTlM4NzMwOF9ERVZTICAgICAgICAoQ0ZHX05TODczMDhfVUFSVDEgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfVUFSVDIgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfS0JDMSAgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfTU9VU0UgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfRkRDICAgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfUkFSUCAgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfR1BJTyAgICB8IFwKLQkJCQkgQ0ZHX05TODczMDhfUE9XUk1BTiB8IFwKLQkJCQkgQ0ZHX05TODczMDhfUlRDX0FQQyApCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9CQUREUl8xMCAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9ERVZTICAgICAgICAoQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxICAgfCBcCisJCQkJIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMiAgIHwgXAorCQkJCSBDT05GSUdfU1lTX05TODczMDhfS0JDMSAgICB8IFwKKwkJCQkgQ09ORklHX1NZU19OUzg3MzA4X01PVVNFICAgfCBcCisJCQkJIENPTkZJR19TWVNfTlM4NzMwOF9GREMgICAgIHwgXAorCQkJCSBDT05GSUdfU1lTX05TODczMDhfUkFSUCAgICB8IFwKKwkJCQkgQ09ORklHX1NZU19OUzg3MzA4X0dQSU8gICAgfCBcCisJCQkJIENPTkZJR19TWVNfTlM4NzMwOF9QT1dSTUFOIHwgXAorCQkJCSBDT05GSUdfU1lTX05TODczMDhfUlRDX0FQQyApCiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfUFMyTU9ECi0jZGVmaW5lIENGR19OUzg3MzA4X0dQSU9fQkFTRSAgIDB4MDIyMAotI2RlZmluZSBDRkdfTlM4NzMwOF9QV01BTl9CQVNFICAweDA0NjAKLSNkZWZpbmUgQ0ZHX05TODczMDhfUE1DMiAgICAgICAgMHgwMCAgICAgICAgLyogU3VwZXJJL08gY2xvY2sgc291cmNlIGlzIDI0TUh6IHZpYSBYMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfUFMyTU9ECisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9HUElPX0JBU0UgICAweDAyMjAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X1BXTUFOX0JBU0UgIDB4MDQ2MAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfUE1DMiAgICAgICAgMHgwMCAgICAgICAgLyogU3VwZXJJL08gY2xvY2sgc291cmNlIGlzIDI0TUh6IHZpYSBYMSAqLwogCiAvKgogICogc2V0IHVwIHRoZSBOVlJBTSBhY2Nlc3MgcmVnaXN0ZXJzCiAgKiBOVlJBTSdzIGNvbnRyb2xsZWQgYnkgdGhlIGNvbmZpZ3VyYWJsZSBDUyBsaW5lIGZyb20gdGhlIDg3MzA4CiAgKi8KLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MwX0JBU0UgICAgMHgwMDc2Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMF9DT05GICAgIDB4NDAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MxX0JBU0UgICAgMHgwMDcwCi0jZGVmaW5lIENGR19OUzg3MzA4X0NTMV9DT05GICAgIDB4MUMKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MyX0JBU0UgICAgMHgwMDcxCi0jZGVmaW5lIENGR19OUzg3MzA4X0NTMl9DT05GICAgIDB4MUMKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMF9CQVNFICAgIDB4MDA3NgorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MwX0NPTkYgICAgMHg0MAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MxX0JBU0UgICAgMHgwMDcwCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQ09ORiAgICAweDFDCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQkFTRSAgICAweDAwNzEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMl9DT05GICAgIDB4MUMKIAogI2RlZmluZSBDT05GSUdfUlRDX01LNDhUNTkKIApAQCAtMzgxLDUxICszODEsNTEgQEAKICAqLwogI2lmIDEKIAotI2RlZmluZSBDRkdfSUJBVDBMIDAKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAwCi0jZGVmaW5lIENGR19EQkFUMEwgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVIENPTkZJR19TWVNfSUJBVDFVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAwCi0jZGVmaW5lIENGR19JQkFUMVUgMAotI2RlZmluZSBDRkdfREJBVDFMIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSBDT05GSUdfU1lTX0lCQVQxVQogCi0jZGVmaW5lIENGR19JQkFUMkwgMAotI2RlZmluZSBDRkdfSUJBVDJVIDAKLSNkZWZpbmUgQ0ZHX0RCQVQyTCBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgQ09ORklHX1NZU19JQkFUMlUKIAotI2RlZmluZSBDRkdfSUJBVDNMIDAKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAwCi0jZGVmaW5lIENGR19EQkFUM0wgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIENPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVIENPTkZJR19TWVNfSUJBVDNVCiAKICNlbHNlCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9SVykKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9SVykKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBhZGRyZXNzIHJhbmdlIGZvciBmbGFzaGVzICovCi0jZGVmaW5lIENGR19JQkFUMUwgKENGR19GTEFTSF9CQVNFIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDFVIChDRkdfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVIENPTkZJR19TWVNfSUJBVDFVCiAKIC8qIElTQSBJTyBzcGFjZSAqLwotI2RlZmluZSBDRkdfSUJBVDJMIChDRkdfSVNBX0lPIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVIChDRkdfSVNBX0lPIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQyTCBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAoQ09ORklHX1NZU19JU0FfSU8gfCBCQVRMX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIChDT05GSUdfU1lTX0lTQV9JTyB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIENPTkZJR19TWVNfSUJBVDJVCiAKIC8qIElTQSBtZW1vcnkgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTCAoQ0ZHX0lTQV9NRU0gfCBCQVRMX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgKENGR19JU0FfTUVNIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQzTCBDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAoQ09ORklHX1NZU19JU0FfTUVNIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAoQ09ORklHX1NZU19JU0FfTUVNIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgQ09ORklHX1NZU19JQkFUM1UKIAogI2VuZGlmCiAKQEAgLTQzNiwzNSArNDM2LDM1IEBACiBleHRlcm4gIHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGJhYjd4eF9nZXRfYnVzX2ZyZXEgKHZvaWQpOwogZXh0ZXJuICB1bnNpZ25lZCBsb25nICAgICAgICAgICBiYWI3eHhfZ2V0X2djbGtfZnJlcSAodm9pZCk7CiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0JVU19IWiAgICAgICAgICAgICAgYmFiN3h4X2dldF9idXNfZnJlcSgpCi0jZGVmaW5lIENGR19CVVNfQ0xLICAgICAgICAgICAgIENGR19CVVNfSFoKLSNkZWZpbmUgQ0ZHX0NQVV9DTEsgICAgICAgICAgICAgYmFiN3h4X2dldF9nY2xrX2ZyZXEoKQorI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWiAgICAgICAgICAgICAgYmFiN3h4X2dldF9idXNfZnJlcSgpCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSyAgICAgICAgICAgICBDT05GSUdfU1lTX0JVU19IWgorI2RlZmluZSBDT05GSUdfU1lTX0NQVV9DTEsgICAgICAgICAgICAgYmFiN3h4X2dldF9nY2xrX2ZyZXEoKQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICAgICAoOCA8PCAyMCkgICAgICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1ogICAgICAgICAgICg4IDw8IDIwKSAgICAgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgICAgMzIgICAgLyogRm9yIGFsbCBNUEM3NHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgICAgICAgMzIgICAgLyogRm9yIGFsbCBNUEM3NHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVCAgICAgICAgNSAgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVCAgICAgICAgNSAgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBMMiBDYWNoZSBDb25maWd1cmF0aW9uIGlzIGJvYXJkIHNwZWNpZmljIGZvciBCQUI3NDAvQkFCNzUwCiAgKiBJbml0IHZhbHVlcyByZWFkIGZyb20gcmV2aXNpb24gc3JvbS4KICAqLwotI3VuZGVmICBDRkdfTDIKKyN1bmRlZiAgQ09ORklHX1NZU19MMgogI2RlZmluZSBMMl9JTklUICAgICAoTDJDUl9MMlNJWl9ITSB8IEwyQ1JfTDJDTEtfMyB8IEwyQ1JfTDJSQU1fQlVSU1QgfCBcCiAJCSAgICAgTDJDUl9MMk9IXzUgICB8IEwyQ1JfTDJDVEwgICB8IEwyQ1JfTDJXVCkKICNkZWZpbmUgTDJfRU5BQkxFICAgKEwyX0lOSVQgfCBMMkNSX0wyRSkKIAotI2RlZmluZSBDRkdfTDJfQkFCN3h4CisjZGVmaW5lIENPTkZJR19TWVNfTDJfQkFCN3h4CiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0JDMzQ1MC5oIGIvaW5jbHVkZS9jb25maWdzL0JDMzQ1MC5oCmluZGV4IDdmZDY0OTAuLjI4YmU4ZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9CQzM0NTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQkMzNDUwLmgKQEAgLTU2LDcgKzU2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JDMzQ1MF9GUAkxCS8qICArIGVuYWJsZSBGUCBPL1AJCSAgICAqLwogI3VuZGVmIENPTkZJR19CQzM0NTBfQ1JUCQkvKiAgKyBlbmFibGUgQ1JUIE8vUCAoRGVidWcgb25seSEpICAqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkgICAgKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CQkgICAgKi8KQEAgLTY4LDcgKzY4LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEJCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzCQkqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCiAgKiBBVC1QUy8yIE11bHRpcGxleGVyCkBAIC03Nyw3ICs3Nyw3IEBACiAjIGRlZmluZSBDT05GSUdfUFMyS0JECQkJLyogQVQtUFMvMiBLZXlib2FyZAkJKi8KICMgZGVmaW5lIENPTkZJR19QUzJNVUxUCQkJLyogLi4gb24gUFMvMiBNdWx0aXBsZXhlcgkqLwogIyBkZWZpbmUgQ09ORklHX1BTMlNFUklBTAk2CQkvKiAuLiBvbiBQU0M2CQkqLwotIyBkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENGR19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCisjIGRlZmluZSBDT05GSUdfUFMyTVVMVF9ERUxBWQkoQ09ORklHX1NZU19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCiAjIGRlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCiAjZW5kaWYgLyogQ09ORklHX0JDMzQ1MF9QUzIgKi8KIApAQCAtMTAxLDcgKzEwMSw3IEBACiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAvKiNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCVhYWCAtIEZJWE1FOiBjb25mbGljdHMgd2hlbiBDT05GSUdfTUlJIGlzIGVuYWJsZWQgKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCQkxCiAKIC8qCkBAIC0xMTYsNyArMTE2LDcgQEAKICMgZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8JLyogZGlzcGxheSBCb2FyZC9EZXZpY2UtSW5mb3MgKi8KICMgZGVmaW5lIENPTkZJR19WSURFT19TV19DVVJTT1IKICMgZGVmaW5lIENPTkZJR19TUExBU0hfU0NSRUVOCi0jIGRlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyMgZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYKIAogLyoKICAqIFBhcnRpdGlvbnMKQEAgLTEzNiw5ICsxMzYsOSBAQAogLyoKICAqIFBPU1Qgc3VwcG9ydAogICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKIAogI2lmZGVmIENPTkZJR19QT1NUCiAvKiBwcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHBvc3Rfd29yZCBhdCBlbmQgb2Ygb24tY2hpcCBTUkFNICovCkBAIC0yMDgsNyArMjA4LDcgQEAKICNkZWZpbmUgQ09ORklHX1RJTUVTVEFNUAkJLyogZGlzcGxheSBpbWFnZSB0aW1lc3RhbXBzICovCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkMwMDAwMDApCQkvKiBCb290IGxvdyAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKgpAQCAtMjY4LDI0ICsyNjgsMjQgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCiAvKgogICogUENJIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uCiAgKgogICogQWN0dWFsbHkgYSBQQ0kgQ2xvY2sgb2YgNjYgTUh6IGlzIG9ubHkgc2V0IChpbiBjcHVfaW5pdC5jKSBpZgotICogQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLIGlzIGRlZmluZWQuIFRoaXMgaXMgYmVjYXVzZSBhIFBDSSBDbG9jaworICogQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sKICAqICBvZiA2NiBNSHogeWV0IGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIGEgSVBCIEJ1cyBDbG9jayBvZiA2NiBNSHouCiAgKi8KLSNpZiBkZWZpbmVkKENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSykKLSMgZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjIGRlZmluZSBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLwogI2VuZGlmCiAKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMiAqLwogCiAvKgogICogSTJDIGNsb2NrIGZyZXF1ZW5jeQpAQCAtMjkzLDExICsyOTMsMTEgQEAKICAqIFBsZWFzZSBub3RpY2UsIHRoYXQgdGhlIHJlc3VsdGluZyBjbG9jayBmcmVxdWVuY3kgY291bGQgZGlmZmVyIGZyb20gdGhlCiAgKiBjb25maWd1cmVkIHZhbHVlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIEkyQyBjbG9jayBpcyBkZXJpdmVkIGZyb20gc3lzdGVtCiAgKiBjbG9jayBvdmVyIGEgZnJlcXVlbmN5IGRpdmlkZXIgd2l0aCBvbmx5IGEgZmV3IGRpdmlkZXIgdmFsdWVzLiBVLWJvb3QKLSAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ0ZHX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAorICogY2FsY3VsYXRlcyB0aGUgYmVzdCBhcHByb3hpbWF0aW9uIGZvciBDT05GSUdfU1lTX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAogICogYXBwcm94aW1hdGlvbiBhbGx3YXlzIGxpZXMgYmVsb3cgdGhlIGNvbmZpZ3VyZWQgdmFsdWUsIG5ldmVyIGFib3ZlLgogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbiBmb3IgScKyQyBFRVBST00gTTI0QzMyCkBAIC0zMDUsMTcgKzMwNSwxNyBAQAogICoKICAqIFRoZSBUUU01MjAwIG1vZHVsZSBtYXkgaG9sZCBhbiBFRVBST00gYXQgYWRkcmVzcyAweDUwLgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKFRRTSkgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAoVFFNKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTcwCiAKIC8qCiAgKiBSVEMgY29uZmlndXJhdGlvbgogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX0JDMzQ1MF9EUzEzNDApICYmICFkZWZpbmVkIChDT05GSUdfQkMzNDUwX0RTMzIzMSkKICMgZGVmaW5lIENPTkZJR19SVENfTTQxVDExCTEKLSMgZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogI2Vsc2UKICMgZGVmaW5lIENPTkZJR19SVENfTVBDNTIwMAkxCS8qIHVzZSBNUEM1MjAwIGludGVybmFsIFJUQyAqLwogIyBkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgpAQCAtMzI0LDI2ICszMjQsMjYgQEAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRSAvKiAweEZDMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJVEVYVF9CQVNFIC8qIDB4RkMwMDAwMDAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgaWYgbm8gbW9kdWxlIHZhcmlhbnQgaXMgc3BlemlmaWVkICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfQk9PVENTX1NUQVJUIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jdW5kZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkvKiBub3Qgc3VwcG9ydGVkIHlldCBmb3IgQU1EICovCiAKLSNpZiAhZGVmaW5lZChDRkdfTE9XQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwNzYwMDAwICsgMHgwMDgwMDAwMCkKLSNlbHNlCS8qIENGR19MT1dCT09UICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKLSNlbmRpZgkvKiBDRkdfTE9XQk9PVCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKIC8qIER5bmFtaWMgTVREIHBhcnRpdGlvbiBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19KRkZTMl9DTURMSU5FCkBAIC0zNjcsMzEgKzM2NywzMSBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSMgZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQorIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSMgZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCiAjZW5kaWYgLypDT05GSUdfUE9TVCovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIEJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBCeXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApIC8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKSAvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtNDI2LDM4ICs0MjYsMzggQEAKICAqICBJMkM6ICAgIENBTjEgLyBJwrJDMgkJICBbMHggYnh4eHh4eHhdCiAgKi8KICNpZmRlZiBDT05GSUdfQkMzNDUwX0FDOTcKLSMgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHhiMTUwMjEyNAorIyBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHhiMTUwMjEyNAogI2Vsc2UgLyogUFNDMj1VQVJUMiAqLwotIyBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweGIxNTAyMTQ0CisjIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweGIxNTAyMTQ0CiAjZW5kaWYKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbm8gb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJnLiBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBubyBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZy4gQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QJCQkJLyogRW5hYmxlIGFuIGFsdGVybmF0aXZlLCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QJCQkJLyogRW5hYmxlIGFuIGFsdGVybmF0aXZlLCAgICovCiAJCQkJCQkvKiAgbW9yZSBleHRlbnNpdmUgbWVtIHRlc3QgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkgICAgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWMgZnJlcTogMW1zIHRpY2tzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjIGZyZXE6IDFtcyB0aWNrcwkgICAgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAgICAqLwogI2VuZGlmCiAKIC8qCkBAIC00NjksMjIgKzQ2OSwyMiBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jIGRlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotIyBkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjIGRlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyMgZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jIGRlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jIGRlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorIyBkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jaWZkZWYgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKLSMgZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwCS8qIGZvciBwY2lfY2xrCT0gNjYgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKKyMgZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA4REYzMAkvKiBmb3IgcGNpX2Nsawk9IDY2IE1IeiAqLwogI2Vsc2UKLSMgZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwCS8qIGZvciBwY2lfY2xrID0gMzMgTUh6CSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwCS8qIGZvciBwY2lfY2xrID0gMzMgTUh6CSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogLyogYXV0b21hdGljIGNvbmZpZ3VyYXRpb24gb2YgY2hpcCBzZWxlY3RzICovCiAjaWZkZWYgQ09ORklHX1RRTTUyMDAKQEAgLTQ5Niw5ICs0OTYsOSBAQAogICogZm9yIFNEUkFNIGF1dG9zaXppbmcuCiAgKi8KICNpZmRlZiBDT05GSUdfVFFNNTIwMAotIyBkZWZpbmUgQ0ZHX0NTMl9TVEFSVAkJMHhFNTAwMDAwMAotIyBkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDEwMDAwMAkvKiAxIE1CeXRlICovCi0jIGRlZmluZSBDRkdfQ1MyX0NGRwkJMHgwMDA0RDkzMAorIyBkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MTAwMDAwCS8qIDEgTUJ5dGUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NGRwkJMHgwMDA0RDkzMAogI2VuZGlmIC8qIENPTkZJR19UUU01MjAwICovCiAKIC8qCkBAIC01MDcsMTcgKzUwNywxNyBAQAogICovCiAjaWZkZWYgQ09ORklHX1RRTTUyMDAKICMgZGVmaW5lIFNNNTAxX0ZCX0JBU0UJCTB4RTAwMDAwMDAKLSMgZGVmaW5lIENGR19DUzFfU1RBUlQJCShTTTUwMV9GQl9CQVNFKQotIyBkZWZpbmUgQ0ZHX0NTMV9TSVpFCQkweDQwMDAwMDAJLyogNjQgTUJ5dGUgKi8KLSMgZGVmaW5lIENGR19DUzFfQ0ZHCQkweDhGNDhGRjcwCi0jIGRlZmluZSBTTTUwMV9NTUlPX0JBU0UJQ0ZHX0NTMV9TVEFSVCArIDB4MDNFMDAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkoU001MDFfRkJfQkFTRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NJWkUJCTB4NDAwMDAwMAkvKiA2NCBNQnl0ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDhGNDhGRjcwCisjIGRlZmluZSBTTTUwMV9NTUlPX0JBU0UJQ09ORklHX1NZU19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCiAjZW5kaWYgLyogQ09ORklHX1RRTTUyMDAgKi8KIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzExCS8qIDEgZGVhZCBjeWNsZSBmb3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzExCS8qIDEgZGVhZCBjeWNsZSBmb3IJKi8KIAkJCQkJCS8qICBmbGFzaCBhbmQgU001MDEJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qCiAgKiBVU0Igc3R1ZmYKQEAgLTUzNiwyMyArNTM2LDIzIEBACiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgICAgICBzdXBwb3J0ZWQgKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9CTVcuaCBiL2luY2x1ZGUvY29uZmlncy9CTVcuaAppbmRleCBkNWEzOThkLi4yNGZmYjAwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQk1XLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0JNVy5oCkBAIC01MiwxOCArNTIsMTggQEAKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfQ0xPQ0tTX0lOX01IWgkxCS8qIGNsb2NrcyBwYXNzc2VkIHRvIExpbnV4IGluIE1IegkqLwogCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdG0gRkY4MjAwMDAiCS8qIGF1dG9ib290IGNvbW1hbmQJKi8KICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAKLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFICAgICAgMSAvKiBPbmx5IHVzZSBPbmJvYXJkIFRTT1AtMTZNQiBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRSAgICAgIDEgLyogT25seSB1c2UgT25ib2FyZCBUU09QLTE2TUIgZGV2aWNlICovCiAjZGVmaW5lIERPQ19QQVNTSVZFX1BST0JFICAgICAgIDEKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAgICAgMQotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfTUlMTEVOTklVTSAxCi0jZGVmaW5lIENGR19ET0NfU0hPUlRfVElNRU9VVCAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMCAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTSAxCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQgICAgMQogCiAKIC8qCkBAIC05Niw2NiArOTYsNjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+IgkgICAgICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+IgkgICAgICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCiAvKiBQcmludCBCdWZmZXIgU2l6ZQogICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQogCi0jZGVmaW5lIENGR19NQVhBUkdTCTgJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJOAkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMF9QUkVMSU0gICAgICAweEZGRjAwMDAwICAgICAgLyogRkxBU0ggYmFuayBvbiBSQ1MjMCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTFfUFJFTElNICAgICAgMHhGRjgwMDAwMCAgICAgIC8qIEZMQVNIIGJhbmsgb24gUkNTIzEgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgIENGR19NT05JVE9SX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTCQl7IENGR19GTEFTSF9CQVNFMF9QUkVMSU0gLCBDRkdfRkxBU0hfQkFTRTFfUFJFTElNIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMF9QUkVMSU0gICAgICAweEZGRjAwMDAwICAgICAgLyogRkxBU0ggYmFuayBvbiBSQ1MjMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UxX1BSRUxJTSAgICAgIDB4RkY4MDAwMDAgICAgICAvKiBGTEFTSCBiYW5rIG9uIFJDUyMxICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LUwkJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTSAsIENPTkZJR19TWVNfRkxBU0hfQkFTRTFfUFJFTElNIH0KIAogLyogZXZlbiB0aG91Z2ggRkxBU0hQX0JBU0UgaXMgRkY4MDAwMDAsIHdpdGggNE1CIGlzIFJDUzAsIHRoZQogICogcmVzZXQgdmVjdG9yIGlzIGFjdHVhbGx5IGxvY2F0ZWQgYXQgRkZCMDAxMDAsIGJ1dCB0aGUgODI0NQogICogdGFrZXMgY2FyZSBvZiB1cy4KICAqLwotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJICAgIDB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJICAgIDB4RkMwMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoMjA0OCA8PCAxMCkgLyogUmVzZXJ2ZSAyTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKDIwNDggPDwgMTApIC8qIFJlc2VydmUgMk1CIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgIDB4MDQwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIAkvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uCiAJICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHgwNDAwMDAwMAkvKiAwIC4uIDY0IE1CIG9mIChTKURSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgwNDAwMDAwMAkvKiAwIC4uIDY0IE1CIG9mIChTKURSQU0gKi8KIAogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQotI3VuZGVmIENGR19SQU1CT09UCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSIENGR19TRFJBTV9CQVNFICsgQ0ZHX01PTklUT1JfTEVOCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAweDJGMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgIENGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSIENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAweDJGMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjUsNDMgKzE2NSw0MyBAQAogICovCiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMwMDAwMDAJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwotI2RlZmluZSBDRkdfSFoJCSAgICAgMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgIDEwMDAKIAotI2RlZmluZSBDRkdfRVRIX0RFVl9GTgkgICAgIDB4NzgwMAotI2RlZmluZSBDRkdfRVRIX0lPQkFTRQkgICAgIDB4MDAxMDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfREVWX0ZOCSAgICAgMHg3ODAwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0lPQkFTRQkgICAgIDB4MDAxMDQwMDAKIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IxLgogCSAqLwotI2RlZmluZSBDRkdfUk9NTkFMCSAgICAweGYKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgMHgxZgotI2RlZmluZSBDRkdfREJVU19TSVpFICAgICAgIDB4MworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkgICAgMHhmCisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCSAgICAweDFmCisjZGVmaW5lIENPTkZJR19TWVNfREJVU19TSVpFICAgICAgIDB4MwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAJICovCi0jZGVmaW5lIENGR19UU1dBSVQJICAgIDB4NQkJICAgIC8qIFRyYW5zYWN0aW9uIFN0YXJ0IFdhaXQgU3RhdGVzIHRpbWVyICovCi0jZGVmaW5lIENGR19SRUZJTlQJICAgIDB4NDAwCSAgICAvKiBSZWZyZXNoIGludGVydmFsCUZJWE1FOiB3YXMgMHQ0MzAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVFNXQUlUCSAgICAweDUJCSAgICAvKiBUcmFuc2FjdGlvbiBTdGFydCBXYWl0IFN0YXRlcyB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkgICAgMHg0MDAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJRklYTUU6IHdhcyAwdDQzMAkJKi8KIAogCS8qIEJ1cnN0IFRvIFByZWNoYXJnZS4gQml0cyBvZiB0aGlzIHZhbHVlIGdvIHRvIE1DQ1IzIGFuZCBNQ0NSNC4KIAkgKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJICAgIDAJCS8qIEZJWE1FOiB3YXMgMTkyICovCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMAkJLyogRklYTUU6IHdhcyAxOTIgKi8KIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLgogCSAqLwotI2RlZmluZSBDRkdfUkVGUkVDCSAgICAyCSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCSAgICAyCSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsICovCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSNC4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCSAgICAyCSAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwgRklYTUU6IHdhcyAyCSovCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsIEZJWE1FOiB3YXMgNQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQgIDMJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeSAqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTiAzCSAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoICovCi0jZGVmaW5lIENGR19BQ1RPUlcJICAgIDB4YQkJLyogRklYTUUgd2FzIDIgKi8KLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAxCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJICAgIDIJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbCBGSVhNRTogd2FzIDIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsIEZJWE1FOiB3YXMgNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUICAzCSAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkgICAgMAkgICAgLyogU0RNT0RFIHdyYXAgdHlwZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTiAzCSAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCSAgICAweGEJCS8qIEZJWE1FIHdhcyAyICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKIAotI2RlZmluZSBDRkdfUEdNQVggICAgICAgICAgIDB4MCAvKiBob3cgbG9uZyB0aGUgODI0MCByZWF0aW5zIHRoZSBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkgRklYTUU6IHdhcyAweDMyKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWCAgICAgICAgICAgMHgwIC8qIGhvdyBsb25nIHRoZSA4MjQwIHJlYXRpbnMgdGhlIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeSBGSVhNRTogd2FzIDB4MzIqLwogCi0jZGVmaW5lIENGR19TRFJBTV9EU0NECTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkgLSBub3RlIGJvdHRvbSAzIGJpdHMgTVVTVCBiZSAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFNDRAkweDIwCS8qIFNEUkFNIGRhdGEgaW4gc2FtcGxlIGNsb2NrIGRlbGF5IC0gbm90ZSBib3R0b20gMyBiaXRzIE1VU1QgYmUgMCAqLwogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5ncy4KICAqIE9ubHkgYml0cyAyMC0yOSBhcmUgYWN0dWFsbHkgdXNlZCBmcm9tIHRoZXNlIHZhbGVzIHRvIHNldCB0aGUKQEAgLTIxMCwzMiArMjEwLDMyIEBACiAgKiBhZGRyZXNzLiBSZWZlciB0byB0aGUgTVBDODI0MCBib29rLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJICAgIChDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRSAgICAxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECSAgICAoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUgICAgMAogCi0jZGVmaW5lIENGR19PRENSCSAgICAweGZmCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkgICAgMHhmZgogCiAjZGVmaW5lIENPTkZJR19QQ0kgICAgICAgICAgICAgIDEgLyogSW5jbHVkZSBQQ0kgc3VwcG9ydCAqLwogI3VuZGVmIENPTkZJR19QQ0lfUE5QCkBAIC0yNDgsNDIgKzI0OCw0MiBAQAogI2luY2x1ZGUgIi4uL2JvYXJkL2Jtdy9ibXcuaCIKIAogLyogQkFUIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKDB4NzAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMVUgICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoMHg3MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTAJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTAJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyICBmbGFzaCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogLyoKICAqIFdhcmluaW5nOiBlbnZpcm9ubWVudCBpcyBub3QgRU1CRURERUQgaW4gdGhlIFUtQm9vdCBjb2RlLgpAQCAtMjkxLDcgKzI5MSw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTSAgICAgIDEKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUgICAgIDEKLSNkZWZpbmUgQ0ZHX05WUkFNX0FDQ0VTU19ST1VUSU5FIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORSAxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHg3YzAwNDAwMCAvKiByaWdodCBhdCB0aGUgc3RhcnQgb2YgTlZSQU0gICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxZmYwCS8qIFNpemUgb2YgdGhlIEVudmlyb25tZW50IC0gOEsJICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyAqLwpAQCAtMjk5LDkgKzI5OSw5IEBACiAvKgogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NBTkJULmggYi9pbmNsdWRlL2NvbmZpZ3MvQ0FOQlQuaAppbmRleCBiZTU4ODM4Li5lM2U2ZTc1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ0FOQlQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ0FOQlQuaApAQCAtNTAsNyArNTAsNyBAQAogCSJib290bSBmZmUwMDAwMCBmZmU4MDAwMCIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1BDSV9QTlAJCQkvKiBubyBwY2kgcGx1Zy1hbmQtcGxheQkJKi8KIApAQCAtODQsNzQgKzg0LDc0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkxNDc0NTYwMCAvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkxNDc0NTYwMCAvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrCSovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGRTAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkUwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogVXNlIEZMQVNIIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIApAQCAtMTczLDEzICsxNzMsMTMgQEAKICAqIEkyQyBFRVBST00gKENBVDI0V0MwOCkgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBieXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIGJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTE5NSwyOSArMTk1LDI5IEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoQ0FOL1VTQikgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDEwMDUzQzAgIC8qIGVuYWJsZSBSZWFkeSwgQkVNPTEJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDEwMDUzQzAgIC8qIGVuYWJsZSBSZWFkeSwgQkVNPTEJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKE1pc2MtSU8vTEVEcykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDAwMDA0YzAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDAwMDA0YzAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMTE4MDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENBTiBGZWF0dXJlcykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4ODAwMDAwNDAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAyMUMwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPTMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDgwMDAwMDQwICAvKiBubyBSZWFkeSwgQkVNPTEJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDIxQzAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9MzJiaXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwMGVmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MGYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDAwZWYwMDAwIC8qIGluc2lkZSBvZiBTRFJBTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MGYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9DQVRjZW50ZXIuaCBiL2luY2x1ZGUvY29uZmlncy9DQVRjZW50ZXIuaAppbmRleCA2OTQ2ODcxLi5hNDRmM2UxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ0FUY2VudGVyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0NBVGNlbnRlci5oCkBAIC02Myw3ICs2Myw3IEBACiAjZGVmaW5lIF9fRElTQUJMRV9NQUNISU5FX0VYQ0VQVElPTl9fCiAKICNpZmRlZiBfX0RFQlVHX1NUQVJUX0ZST01fU1JBTV9fCi0jZGVmaW5lIENGR19EVU1NWV9GTEFTSF9TSVpFCQkxMDI0KjEwMjQqNAorI2RlZmluZSBDT05GSUdfU1lTX0RVTU1ZX0ZMQVNIX1NJWkUJCTEwMjQqMTAyNCo0CiAjZW5kaWYKIAogLyoKQEAgLTEwMiw3ICsxMDIsNyBAQAogI2RlZmluZSBDT05GSUdfRVRIMUFERFIgMDA6NTA6QzI6MUU6QUY6RkQKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAKICN1bmRlZiBDT05GSUdfRVhUX1BIWQpAQCAtMTUyLDUwICsxNTIsNTAgQEAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIAogI2RlZmluZSBDT05GSUdfUlRDX01DMTQ2ODE4CQkvKiBEUzE2ODUgaXMgTUMxNDY4MTggY29tcGF0aWJsZSovCi0jZGVmaW5lIENGR19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCiAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCTEJLyogaW5pdCBvbmJvYXJkIFNEUkFNIGJhbmsgMAkqLwogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkJLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJCTY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKQEAgLTIwMywxMyArMjAzLDEzIEBACiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkQwX0JBU0UgMHhGRjQwMDAwMAotI2RlZmluZSBDRkdfTkFORDFfQkFTRSAweEZGMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EMF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9CQVNFIDB4RkY0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9CQVNFIDB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVAl7IENPTkZJR19TWVNfTkFORDBfQkFTRSB9CiAjZGVmaW5lIE5BTkRfQklHX0RFTEFZX1VTCTI1CiAKIC8qIEZvciBDQVRjZW50ZXIgdGhlcmUgaXMgb25seSBOQU5EIG9uIHRoZSBtb2R1bGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLwogI2RlZmluZSBTRUNUT1JTSVpFIDUxMgogI2RlZmluZSBOQU5EX05PX1JCCiAKQEAgLTIyMSwyNiArMjIxLDI2IEBACiAjZGVmaW5lIE5BTkRfTUFYX0ZMT09SUyAxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTIDEKIAotI2RlZmluZSBDRkdfTkFORDBfQ0UgICgweDgwMDAwMDAwID4+IDEpCSAvKiBvdXIgQ0UgaXMgR1BJTzEgKi8KLSNkZWZpbmUgQ0ZHX05BTkQwX0NMRSAoMHg4MDAwMDAwMCA+PiAyKQkgLyogb3VyIENMRSBpcyBHUElPMiAqLwotI2RlZmluZSBDRkdfTkFORDBfQUxFICgweDgwMDAwMDAwID4+IDMpCSAvKiBvdXIgQUxFIGlzIEdQSU8zICovCi0jZGVmaW5lIENGR19OQU5EMF9SRFkgKDB4ODAwMDAwMDAgPj4gNCkJIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9DRSAgKDB4ODAwMDAwMDAgPj4gMSkJIC8qIG91ciBDRSBpcyBHUElPMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0NMRSAoMHg4MDAwMDAwMCA+PiAyKQkgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0FMRSAoMHg4MDAwMDAwMCA+PiAzKQkgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX1JEWSAoMHg4MDAwMDAwMCA+PiA0KQkgLyogb3VyIFJEWSBpcyBHUElPNCAqLwogCi0jZGVmaW5lIENGR19OQU5EMV9DRSAgKDB4ODAwMDAwMDAgPj4gMTQpICAvKiBvdXIgQ0UgaXMgR1BJTzE0ICovCi0jZGVmaW5lIENGR19OQU5EMV9DTEUgKDB4ODAwMDAwMDAgPj4gMTUpICAvKiBvdXIgQ0xFIGlzIEdQSU8xNSAqLwotI2RlZmluZSBDRkdfTkFORDFfQUxFICgweDgwMDAwMDAwID4+IDE2KSAgLyogb3VyIEFMRSBpcyBHUElPMTYgKi8KLSNkZWZpbmUgQ0ZHX05BTkQxX1JEWSAoMHg4MDAwMDAwMCA+PiAzMSkgIC8qIG91ciBSRFkgaXMgR1BJTzMxICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQ0UgICgweDgwMDAwMDAwID4+IDE0KSAgLyogb3VyIENFIGlzIEdQSU8xNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX0NMRSAoMHg4MDAwMDAwMCA+PiAxNSkgIC8qIG91ciBDTEUgaXMgR1BJTzE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQUxFICgweDgwMDAwMDAwID4+IDE2KSAgLyogb3VyIEFMRSBpcyBHUElPMTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9SRFkgKDB4ODAwMDAwMDAgPj4gMzEpICAvKiBvdXIgUkRZIGlzIEdQSU8zMSAqLwogCiAKICNkZWZpbmUgTUFDUk9fTkFORF9ESVNBQkxFX0NFKG5hbmRwdHIpIGRvIFwKIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSBcCiAJeyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQwX0NFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDBfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkQwX0NFKTsgXAogCQlicmVhazsgXAotCSAgICBjYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EMV9DRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMV9DRSk7IFwKIAkJYnJlYWs7IFwKIAl9IFwKIH0gd2hpbGUoMCkKQEAgLTI0OSwxMSArMjQ5LDExIEBACiB7IFwKIAlzd2l0Y2goKHVuc2lnbmVkIGxvbmcpbmFuZHB0cikgXAogCXsgXAotCSAgICBjYXNlIENGR19OQU5EMF9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDBfQ0UpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQwX0NFKTsgXAogCQlicmVhazsgXAotCSAgICBjYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDFfQ0UpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMV9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQxX0NFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQpAQCAtMjYyLDExICsyNjIsMTEgQEAKIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSBcCiAJeyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EMF9BTEUpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQwX0FMRSk7IFwKIAkJYnJlYWs7IFwKLQkgICAgY2FzZSBDRkdfTkFORDFfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX05BTkQxX0FMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORDFfQUxFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQpAQCAtMjc1LDExICsyNzUsMTEgQEAKIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSBcCiAJeyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQwX0FMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMF9BTEUpOyBcCiAJCWJyZWFrOyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQxX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQxX0FMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMV9BTEUpOyBcCiAJCWJyZWFrOyBcCiAJfSBcCiB9IHdoaWxlKDApCkBAIC0yODgsMjIgKzI4OCwyMiBAQAogeyBcCiAJc3dpdGNoKCh1bnNpZ25lZCBsb25nKW5hbmRwdHIpIFwKIAl7IFwKLQkgICAgY2FzZSBDRkdfTkFORDBfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX05BTkQwX0NMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORDBfQ0xFKTsgXAogCQlicmVhazsgXAotCSAgICBjYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDFfQ0xFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDFfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EMV9DTEUpOyBcCiAJCWJyZWFrOyBcCiAJfSBcCiB9IHdoaWxlKDApCiAKICNkZWZpbmUgTUFDUk9fTkFORF9DVExfU0VUQ0xFKG5hbmRwdHIpIGRvIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSB7IFwKLQljYXNlIENGR19OQU5EMF9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EMF9DTEUpOyBcCisJY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMF9DTEUpOyBcCiAJCWJyZWFrOyBcCi0JY2FzZSBDRkdfTkFORDFfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfTkFORDFfQ0xFKTsgXAorCWNhc2UgQ09ORklHX1NZU19OQU5EMV9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORDFfQ0xFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQpAQCAtMzM5LDU2ICszMzksNTYgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CS8qIFBDSSBWZW5kb3IgSUQ6IElCTQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAJLyogUENJIERldmljZSBJRDogLS0tCSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogUENJIFZlbmRvciBJRDogSUJNCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAJLyogUENJIERldmljZSBJRDogLS0tCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwogCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogI2VuZGlmCS8qIE5vIFBDSSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50IFZhcmlhYmxlIHNldHVwCkBAIC0zOTksMzUgKzM5OSwzNSBAQAogI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECTB4RkZGRkEwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkweDIwMDAKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0vKiNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ki8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworLyojZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkxNjM4NAkvKiBGb3IgQU1DQyA0MDUgQ1BVcywgb2xkZXIgNDA1IHBwYydzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTE2Mzg0CS8qIEZvciBBTUNDIDQwNSBDUFVzLCBvbGRlciA0MDUgcHBjJ3MJKi8KIAkJCQkJLyogaGF2ZSBvbmx5IDhrQiwgMTZrQiBpcyBzYXZlIGhlcmUJKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIC4uLgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogLi4uCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpAQCAtNDQzLDIxICs0NDMsMjEgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDAsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChFeHRlcm5hbCBTUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KIC8qIFNpbmNlIHRoaXMgbXVzdCByZXBsYWNlIE5PUiBGbGFzaCwgd2UgdXNlIHRoZSBzYW1lIHNldHRpbmdzIGZvciBDUzAJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyIChGbGFzaCBCYW5rIDEsIE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEZGNDU4MDAwICAvKiBCQVM9MHhGRjQsQlM9NE1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEZGNDU4MDAwICAvKiBCQVM9MHhGRjQsQlM9NE1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKEZsYXNoIEJhbmsgMiwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RkYwNTgwMDAgIC8qIEJBUz0weEZGMCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RkYwNTgwMDAgIC8qIEJBUz0weEZGMCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogI2lmZGVmIENPTkZJR19QUENIQU1FTEVPTl9TTUk3MTIKIC8qCkBAIC00NzEsNjYgKzQ3MSw2NiBAQAogI2RlZmluZSBDT05GSUdfQ09OU09MRV9FWFRSQV9JTkZPCiAjZGVmaW5lIENPTkZJR19WR0FfQVNfU0lOR0xFX0RFVklDRQogLyogVGhpcyBpcyB0aGUgYmFzZSBhZGRyZXNzIChvbiA0MDVFUC1zaWRlKSB1c2VkIHRvIGdlbmVyYXRlIEkvTyBhY2Nlc3NlcyBvbiBQQ0kgYnVzICovCi0jZGVmaW5lIENGR19JU0FfSU8gMHhFODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAweEU4MDAwMDAwCiAvKiBzZWUgYWxzbyBkcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuYyAqLwotI2RlZmluZSBDRkdfREVGQVVMVF9WSURFT19NT0RFIDB4MzAzCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9WSURFT19NT0RFIDB4MzAzCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCiAvKiBGUEdBIGludGVybmFsIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERQkJMHgwMAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVMJCTB4MDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFMJCTB4MDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfTE9XCQkweDA2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDAJMHgxMAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwX0xPVwkweDEyCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDEJMHgxNAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxX0xPVwkweDE2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDIJMHgxOAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyX0xPVwkweDFhCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDMJMHgxYwotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzX0xPVwkweDFlCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFCQkweDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVMJCTB4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19MT1cJCTB4MDYKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDAJMHgxMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMQkweDE0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAxX0xPVwkweDE2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyCTB4MTgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDJfTE9XCTB4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDMJMHgxYworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQogCiAvKiBGUEdBIE1vZGUgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfQ0ZfUkVTRVQJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19JUlFfQ0xFQVIgIDB4MTAwMAotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0NMRUFSCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9DRl9SRVNFVAkweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfQ0xFQVIJMHgyMDAwCiAKIC8qIEZQR0EgU3RhdHVzIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMAkweDAwMDEKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDEJMHgwMDAyCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAyCTB4MDAwNAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRkxBU0gJMHgwMDA4Ci0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19UU19JUlEJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMAkweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAxCTB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDIJMHgwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRkxBU0gJMHgwMDA4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfVFNfSVJRCTB4MTAwMAogCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJCS8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93CSovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTEyOCoxMDI0CS8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgkxCQkvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQJLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMAkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAJLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KQkqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwCS8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpCSovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAJLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KQkqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwCS8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMAkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwCS8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAJLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAJLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMAkvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTU0NSwxNCArNTQ1LDE0IEBACiAgKiBHUElPMFszMF0JLSBFTUFDMCBpbnB1dAogICogR1BJTzBbMzFdCS0gRU1BQzEgcmVqZWN0IHBhY2tldCBhcyBvdXRwdXQKICAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKLS8qI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJMHgxNTU1NTQ0NSovCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NAotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEY3RkY4MDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAorLyojZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJMHgxNTU1NTQ0NSovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUgkJMHhGN0ZGODAxNAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTc2MCwxNyArNzYwLDE3IEBACiAvKiBNb2RlbCBISSAqLwogI2RlZmluZSBQTExNUjBfREVGQVVMVAlQUENIQU1FTEVPTl9QTExNUjBfMzMzXzExMV8zN181NV81NQogI2RlZmluZSBQTExNUjFfREVGQVVMVAlQUENIQU1FTEVPTl9QTExNUjFfMzMzXzExMV8zN181NV81NQotI2RlZmluZSBDRkdfT1BCX0ZSRVEJNTU1NTU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19PUEJfRlJFUQk1NTU1NTU1NQogLyogTW9kZWwgTUUgKi8KICNlbGlmIChDT05GSUdfUFBDSEFNRUxFT05fTU9EVUxFX01PREVMID09IENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfTUUpCiAjZGVmaW5lIFBMTE1SMF9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMF8yNjZfMTMzXzMzXzY2XzMzCiAjZGVmaW5lIFBMTE1SMV9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMV8yNjZfMTMzXzMzXzY2XzMzCi0jZGVmaW5lIENGR19PUEJfRlJFUQk2NjY2NjY2NgorI2RlZmluZSBDT05GSUdfU1lTX09QQl9GUkVRCTY2NjY2NjY2CiAjZWxzZQogLyogTW9kZWwgQkEgKGRlZmF1bHQpICovCiAjZGVmaW5lIFBMTE1SMF9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMF8xMzNfMTMzXzMzXzY2XzMzCiAjZGVmaW5lIFBMTE1SMV9ERUZBVUxUCVBQQ0hBTUVMRU9OX1BMTE1SMV8xMzNfMTMzXzMzXzY2XzMzCi0jZGVmaW5lIENGR19PUEJfRlJFUQk2NjY2NjY2NgorI2RlZmluZSBDT05GSUdfU1lTX09QQl9GUkVRCTY2NjY2NjY2CiAjZW5kaWYKIAogI2VuZGlmIC8qIENPTkZJR19OT19TRVJJQUxfRUVQUk9NICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ0NNLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ0NNLmgKaW5kZXggNDM1ZThlYy4uZDFjMjkzZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NDTS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DQ00uaApAQCAtNjUsNyArNjUsNyBAQAogCQkJCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lCUNPTkZJR19XQVRDSERPRwkJMQkvKiB3YXRjaGRvZyBlbmFibGVkCQkqLwogCkBAIC04Niw5ICs4Niw5IEBACiAgKiBmYXIgZW5vdWdoIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGFyZWEgKGFzIHdlbGwgYXMgZnJvbSB0aGUKICAqIHN0YWNrIHBvaW50ZXIpLgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotI2RlZmluZSBDRkdfU1BJX0lOSVRfT0ZGU0VUCQkweEIwMAorI2RlZmluZSBDT05GSUdfU1lTX1NQSV9JTklUX09GRlNFVAkJMHhCMDAKIAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDMyLWJ5dGUgcGFnZSBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDMyLWJ5dGUgcGFnZSBzaXplCSovCiAKIAogI2RlZmluZSBDT05GSUdfTUFDX1BBUlRJVElPTgkJLyogbm9kIHVzZWQgeWV0CQkJKi8KQEAgLTEyMCw0NiArMTIwLDQ2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogLyogRXRoZXJuZXQgaGFyZHdhcmUgY29uZmlndXJhdGlvbiBkb25lIHVzaW5nIHBvcnQgcGlucyAqLwotI2RlZmluZSBDRkdfUEFfRVRIX1JFU0VUCTB4MDIwMAkJLyogUEEgIDYJKi8KLSNkZWZpbmUgQ0ZHX1BBX0VUSF9NRERJUwkweDQwMDAJCS8qIFBBICAxCSovCi0jZGVmaW5lIENGR19QQl9FVEhfUE9XRVJET1dOCTB4MDAwMDA4MDAJLyogUEIgMjAJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9DRkcxCQkweDAwMDAwNDAwCS8qIFBCIDIxCSovCi0jZGVmaW5lIENGR19QQl9FVEhfQ0ZHMgkJMHgwMDAwMDIwMAkvKiBQQiAyMgkqLwotI2RlZmluZSBDRkdfUEJfRVRIX0NGRzMJCTB4MDAwMDAxMDAJLyogUEIgMjMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQV9FVEhfUkVTRVQJMHgwMjAwCQkvKiBQQSAgNgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BBX0VUSF9NRERJUwkweDQwMDAJCS8qIFBBICAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTgkweDAwMDAwODAwCS8qIFBCIDIwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX0NGRzEJCTB4MDAwMDA0MDAJLyogUEIgMjEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMgkJMHgwMDAwMDIwMAkvKiBQQiAyMgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9DRkczCQkweDAwMDAwMTAwCS8qIFBCIDIzCSovCiAKIC8qIEV0aGVybmV0IHNldHRpbmdzOgogICogTURJTyBub3QgZGlzYWJsZWQsIGF1dG9uZWdvdGlhdGlvbiwgMTAvMTAwTWJwcywgaGFsZi9mdWxsIGR1cGxleAogICovCi0jZGVmaW5lIENGR19FVEhfTURESVNfVkFMVUUJMAotI2RlZmluZSBDRkdfRVRIX0NGRzFfVkFMVUUJMQotI2RlZmluZSBDRkdfRVRIX0NGRzJfVkFMVUUJMQotI2RlZmluZSBDRkdfRVRIX0NGRzNfVkFMVUUJMQorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9NRERJU19WQUxVRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0NGRzFfVkFMVUUJMQorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9DRkcyX1ZBTFVFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfQ0ZHM19WQUxVRQkxCiAKIC8qIFBVTUEgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfUENfUFVNQV9QUk9HCTB4MDIwMAkJLyogUEMgIDYgICAgICAgICovCi0jZGVmaW5lIENGR19QQ19QVU1BX0RPTkUJMHgwMDA4CQkvKiBQQyAxMgkqLwotI2RlZmluZSBDRkdfUENfUFVNQV9JTklUCTB4MDAwNAkJLyogUEMgMTMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19QVU1BX1BST0cJMHgwMjAwCQkvKiBQQyAgNiAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19QVU1BX0RPTkUJMHgwMDA4CQkvKiBQQyAxMgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX1BVTUFfSU5JVAkweDAwMDQJCS8qIFBDIDEzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjksNTIgKzE2OSw1MiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgYWNjZXNzZWQgdG8gcmVzZXQgdGhlIGJvYXJkIC0gbXVzdCBub3QgYmUgbWFwcGVkL2Fzc2lnbmVkCiAgKi8KLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRUZGRkZGRgorI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRUZGRkZGRgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCiAjaWYgZGVmaW5lZChERUJVRykKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2lmIDEKIC8qIFN0YXJ0IHBvcnQgd2l0aCBlbnZpcm9ubWVudCBpbiBmbGFzaDsgc3dpdGNoIHRvIFNQSSBFRVBST00gbGF0ZXIgKi8KQEAgLTIzNSwxNSArMjM1LDE1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wJCQkJMTEtOQpAQCAtMjUyLDEwICsyNTIsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJCQkJICBTWVBDUl9TV1ApCiAjZW5kaWYKIApAQCAtMjY0LDI3ICsyNjQsMjcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5NSwxMCArMjk1LDEwIEBACiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KICNpZmRlZglDQ01fODBNSHoJLyogZm9yIDgwIE1Ieiwgd2UgdXNlIGEgMTYgTUh6IGNsb2NrICogNSAqLwotI2RlZmluZSBDRkdfUExQUkNSCQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAogCQkoICg1LTEpPDxQTFBSQ1JfTUZfU0hJRlQgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgKQogI2Vsc2UJCQkvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKICNlbmRpZgkvKiBDQ01fODBNSHogKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzA5LDEyICszMDksMTIgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKICNpZmRlZglDQ01fODBNSHoJLyogZm9yIDgwIE1Ieiwgd2UgdXNlIGEgMTYgTUh6IGNsb2NrICogNSAqLwotI2RlZmluZSBDRkdfU0NDUgkoLyogU0NDUl9UQlMgIHwgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKC8qIFNDQ1JfVEJTICB8ICovIFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogI2Vsc2UJCQkvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0zMjUsMTQgKzMyNSwxNCBAQAogICogSW50ZXJydXB0IExldmVscwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19DUE1fSU5URVJSVVBUCTEzCS8qIFNJVV9MRVZFTDYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUE1fSU5URVJSVVBUCTEzCS8qIFNJVV9MRVZFTDYJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNDcsMjAgKzM0NywyMCBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfNV9DTEsgfCBPUl9FSFRSKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMiBhbmQgT1IyIChTRFJBTSkKQEAgLTM3MSwxOCArMzcxLDE4IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIEJSMyBhbmQgT1IzIChDQU4gQ29udHJvbGxlcikKICAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKIAogLyoKQEAgLTQwOSw4ICs0MDksOCBAQAogI2RlZmluZSBQVU1BX0NPTkZfQlJfUkVBRAkoKFBVTUFfQ09ORl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKICNkZWZpbmUgUFVNQV9DT05GX09SX1JFQUQJKFBVTUFfQ09ORl9PUl9BTSB8IFBVTUFfQ09ORl9SRUFEX1RJTUlORykKIAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJUFVNQV9DT05GX0JSX1JFQUQKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCVBVTUFfQ09ORl9PUl9SRUFECisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJUFVNQV9DT05GX0JSX1JFQUQKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCQlQVU1BX0NPTkZfT1JfUkVBRAogCiAvKgogICogQlI1L09SNTogUFVNQTogU01BIEJ1cyA4IEJpdApAQCAtNDIwLDggKzQyMCw4IEBACiAjZGVmaW5lIFBVTUFfU01BOF9PUl9BTQkJMHhGRkUwMDAwMAkvKiAyIE1CICovCiAjZGVmaW5lIFBVTUFfU01BOF9USU1JTkcJKE9SX0JJIHwgT1JfU0NZXzBfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJKChQVU1BX1NNQThfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCShQVU1BX1NNQThfT1JfQU0gfCBQVU1BX1NNQThfVElNSU5HIHwgT1JfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkoKFBVTUFfU01BOF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCShQVU1BX1NNQThfT1JfQU0gfCBQVU1BX1NNQThfVElNSU5HIHwgT1JfU0VUQSkKIAogLyoKICAqIEJSNi9PUjY6IFBVTUE6IFNNQSBCdXMgMTYgQml0CkBAIC00MzEsOCArNDMxLDggQEAKICNkZWZpbmUgUFVNQV9TTUExNl9PUl9BTQkweEZGRTAwMDAwCS8qIDIgTUIgKi8KICNkZWZpbmUgUFVNQV9TTUExNl9USU1JTkcJKE9SX0JJIHwgT1JfU0NZXzBfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJKChQVU1BX1NNQTE2X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJKFBVTUFfU01BMTZfT1JfQU0gfCBQVU1BX1NNQTE2X1RJTUlORyB8IE9SX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJKChQVU1BX1NNQTE2X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JCShQVU1BX1NNQTE2X09SX0FNIHwgUFVNQV9TTUExNl9USU1JTkcgfCBPUl9TRVRBKQogCiAvKgogICogQlI3L09SNzogUFVNQTogZXh0ZXJuYWwgRmxhc2gKQEAgLTQ0Miw4ICs0NDIsOCBAQAogI2RlZmluZSBQVU1BX0ZMQVNIX09SX0FNCTB4RkUwMDAwMDAJLyogMzIgTUIgKi8KICNkZWZpbmUgUFVNQV9GTEFTSF9USU1JTkcJKE9SX0JJIHwgT1JfU0NZXzBfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJKChQVU1BX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJKFBVTUFfRkxBU0hfT1JfQU0gfCBQVU1BX0ZMQVNIX1RJTUlORyB8IE9SX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJKChQVU1BX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCShQVU1BX0ZMQVNIX09SX0FNIHwgUFVNQV9GTEFTSF9USU1JTkcgfCBPUl9TRVRBKQogCiAKIC8qCkBAIC00NTEsMjYgKzQ1MSwyNiBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ01TNzAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ01TNzAwLmgKaW5kZXggOWFlYzc0Ni4uZDU4ZjUwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NNUzcwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DTVM3MDAuaApAQCAtNTAsNyArNTAsNyBAQAogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjdW5kZWYgIENPTkZJR19IQVNfRVRIMQpAQCAtOTksNzQgKzk5LDc0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKICNkZWZpbmUJQ09ORklHX1VBUlQxX0NPTlNPTEUJCS8qIGRlZmluZSBmb3IgdWFydDEgYXMgY29uc29sZQkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVEMgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzNwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkRfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkRfQkFTRSB9CiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTICAgICAgICAgIDEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxICAgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfQklHX0RFTEFZX1VTCTI1CiAKLSNkZWZpbmUgQ0ZHX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCi0jZGVmaW5lIENGR19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLwotI2RlZmluZSBDRkdfTkFORF9DTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAyKSAgIC8qIG91ciBDTEUgaXMgR1BJTzIgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DRSAgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAxKSAgIC8qIG91ciBDRSBpcyBHUElPMSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAzKSAgIC8qIG91ciBBTEUgaXMgR1BJTzMgKi8KIAotI2RlZmluZSBDRkdfTkFORF9TS0lQX0JBRF9ET1RfSSAxICAgICAgIC8qICIuaSIgcmVhZCBza2lwcyBiYWQgYmxvY2tzICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUVVJRVQgICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9RVUlFVCAgICAgICAgICAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTgzLDY2ICsxODMsNjYgQEAKIAogI3VuZGVmCUNPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZDMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAkgICAgLyogdXNlIGZvciBKRkZTMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgRkxBU0hfQkFTRTBfUFJFTElNKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBGTEFTSF9CQVNFMF9QUkVMSU0pCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbHNlCi0jIHVuZGVmIENGR19SQU1CT09UCisjIHVuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1Nyw2NiArMjU3LDY2IEBACiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCi0jZGVmaW5lIENGR19FRVBST01fV1JFTiAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1JFTiAgICAgICAgIDEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfUExEX0JBU0UgICAgICAgICAgICAweGYwMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJICAgICAgICAweEY0MDAwMDAwICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QTERfQkFTRSAgICAgICAgICAgIDB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJICAgICAgICAweEY0MDAwMDAwICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcwkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxLCBOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGNDAxODAwMCAgLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGNDAxODAwMCAgLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyICg4IEJpdCBQZXJpcGhlcmFsOiBDQU4sIFVBUlQsIFJUQykgaW5pdGlhbGl6YXRpb24JCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1hDOTVYTAkJMQkgICAgLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkgICAgLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1hDOTVYTAkJMQkgICAgLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBDUExEICAgICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEpUQUcgVE1TIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogdW51c2VkIChwcGMgaW5wdXQpCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogSlRBRyBUREktPlRETyBwaW4gKHBwYyBpbnB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEpUQUcgVERPLT5UREkgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiB1bnVzZWQgKHBwYyBpbnB1dCkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogSlRBRyBUREktPlRETyBwaW4gKHBwYyBpbnB1dCkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JICAxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTMzNCwxNiArMzM0LDE2IEBACiAvKiBHUElPIE91dHB1dDoJCU9TUj0wMCwgSVNSPTAwLCBUU1I9MDAsIFRDUj0xICovCiAvKiBBbHQuIEZ1bnRpb24gSW5wdXQ6CU9TUj0wMCwgSVNSPTAxLCBUU1I9MDAsIFRDUj0wICovCiAvKiBBbHQuIEZ1bnRpb24gT3V0cHV0OiBPU1I9MDEsIElTUj0wMCwgVFNSPTAwLCBUQ1I9MSAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg0MDAwMDUwMCAgLyoJMCAuLi4gMTUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNDAwMDA0NSAgLyogMTYgLi4uIDMxICovCi0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwICAvKgkwIC4uLiAxNSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMCAgLyogMTYgLi4uIDMxICovCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4RjdGRTAwMTQgIC8qCTAgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg0MDAwMDUwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwICAvKiAxNiAuLi4gMzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNDAwMDA0NSAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwICAvKiAxNiAuLi4gMzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4RjdGRTAwMTQgIC8qCTAgLi4uIDMxICovCiAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUAkJKDB4ODAwMDAwMDAgPj4gOCkgICAgLyogR1BJTzggKi8KLSNkZWZpbmUgQ0ZHX1BMRF9SRVNFVAkJKDB4ODAwMDAwMDAgPj4gMTIpICAgLyogR1BJTzEyICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dQCQkoMHg4MDAwMDAwMCA+PiA4KSAgICAvKiBHUElPOCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BMRF9SRVNFVAkJKDB4ODAwMDAwMDAgPj4gMTIpICAgLyogR1BJTzEyICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQQzQ1LmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDNDUuaAppbmRleCBhMzM4YWYwLi45MWQyNjJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDNDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDNDUuaApAQCAtNDgsNyArNDgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCSJlY2hvO2VjaG8gVHlwZSBcXFwicnVuIGZsYXNoX25mc1xcXCIgdG8gbW91bnQgcm9vdCBmaWxlc3lzdGVtIG92ZXIgTkZTO2VjaG8iCiAKQEAgLTg5LDYwICs4OSw2MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKICNpZiAxCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwogI2VuZGlmCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PVF9ST00pCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkJMHhGQ0UwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkJMHhGQ0UwMDAwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAogLyogTWF4aW11bSBhbW91bnQgb2YgUkFNLgogICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDEwMDAwMDAwCiAKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLSN1bmRlZiBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogCkBAIC0xNTIsNDggKzE1Miw0OCBAQAogCiAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEKICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19FVU1CX0FERFIgKyAweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19FVU1CX0FERFIgKyAweDQ2MDApCi0jZGVmaW5lIERVQVJUX0RDUgkJKENGR19FVU1CX0FERFIgKyAweDQ1MTEpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQorI2RlZmluZSBEVUFSVF9EQ1IJCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUxMSkKIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTEKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1OAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTIwMyw0OCArMjAzLDQ4IEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMDAwMDAwCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4KICAqLwotI2RlZmluZSBDRkdfUk9NTkFMCQkwCi0jZGVmaW5lIENGR19ST01GQUwJCTgKKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJCTgKIAotI2RlZmluZSBDRkdfQkFOSzBfUk9XCQkwCS8qIFNEUkFNIGJhbmsgNy0wIHJvdyBhZGRyZXNzICovCi0jZGVmaW5lIENGR19CQU5LMV9ST1cJCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1JPVwkJMAotI2RlZmluZSBDRkdfQkFOSzNfUk9XCQkwCi0jZGVmaW5lIENGR19CQU5LNF9ST1cJCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1JPVwkJMAotI2RlZmluZSBDRkdfQkFOSzZfUk9XCQkwCi0jZGVmaW5lIENGR19CQU5LN19ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9ST1cJCTAJLyogU0RSQU0gYmFuayA3LTAgcm93IGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9ST1cJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19ST1cJCTAKIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfUkVGSU5UCQkweDJlYworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkJMHgyZWMKIAogLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogICovCi0jZGVmaW5lIENGR19CU1RPUFJFCQkxNjAKKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCQkxNjAKIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjMuCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJMgkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLwotI2RlZmluZSBDRkdfUkRMQVQJCTAJLyogRGF0YSBsYXRhbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQkyCS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJCTAJLyogRGF0YSBsYXRhbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgogICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMgkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQJMgkvKiBTRE1PREUgQ0FTIGxhdGFuY3kJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoCQkJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMgotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTQkJMAotI2RlZmluZSBDRkdfUkVHRElNTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCQkyCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTIJLyogU0RNT0RFIENBUyBsYXRhbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JCTAKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3MuCiAgKiBPbmx5IGJpdHMgMjAtMjkgYXJlIGFjdHVhbGx5IHVzZWQgZnJvbSB0aGVzZSB2YWxlcyB0byBzZXQgdGhlCkBAIC0yNTMsNzkgKzI1Myw3OSBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDAgYm9vay4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECQkoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUJMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkJKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFCTAKIAotI2RlZmluZSBDRkdfT0RDUgkJMHhmZgotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCQkweGZmCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KIAkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5CSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGRldGFpbHMJCSovCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RkMwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEZDMDAwMDAwIHwgQkFUVV9CTF82NE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgICgweEZDMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAgKDB4RkMwMDAwMDAgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwgIENGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVSAgQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVICBDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wgIENGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVSAgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAgQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgIENPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVICBDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAgQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgIENPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTM5CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCiAjZGVmaW5lIElOVEVMX0lEXzI4RjE2MEYzVAkweDg4RjM4OEYzCS8qICAxNk0gPSAxTSB4IDE2IHRvcCBib290IHNlY3RvcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIAkvKiBXYXJpbmluZzogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBwcGNib290IGNvZGUuCiAJICogSXQncyBzdG9yZWQgaW4gZmxhc2ggc2VwYXJhdGVseS4KIAkgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkgICAgMQogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg3RjgwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4N0Y4MDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBTaXplIG9mIHRoZSBFbnZpcm9ubWVudAkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZwkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDgwMDAgLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0zMzMsOSArMzMzLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpAQCAtNDcyLDcgKzQ3Miw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCS8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQJCSovCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLwogCiAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHg4MjAwMDAwMAogI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUgkweDgyMDAwMDAwCkBAIC00ODYsOCArNDg2LDggQEAKIAogI2RlZmluZSBDT05GSUdfSTgyMzY1CiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUglQQ01DSUFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJUENNQ0lBX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCTB4MTAwMAogCiAjZGVmaW5lIENPTkZJR19QQ01DSUFfU0xPVF9BCiAKQEAgLTUwMiwyMCArNTAyLDIwIEBACiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIElERSBub3Qgc3VwcG9ydGVkCSovCiAjZGVmaW5lCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIElERSBpcyAgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCUNGR19QQ01DSUFfTUVNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDQwMCkKIAogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTJEUC5oIGIvaW5jbHVkZS9jb25maWdzL0NQQ0kyRFAuaAppbmRleCAyMDhmMWEyLi4zMjg3NzM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTJEUC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUENJMkRQLmgKQEAgLTQ5LDcgKzQ5LDcgQEAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTg1LDQ2ICs4NSw0NiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAjZGVmaW5lIENPTkZJR19VQVJUMV9DT05TT0xFICAgICAgICAgICAgLyogZGVmaW5lIGZvciB1YXJ0MSBhcyBjb25zb2xlICAqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwogCkBAIC0xMzIsNyArMTMyLDcgQEAKIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRSAxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTUzLDUyICsxNTMsNTIgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX0JPT1RERUxBWSAgICAwICAgICAgIC8qIGVuYWJsZSBwY2kgYm9vdGRlbGF5IHZhcmlhYmxlKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDBiICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTJEUCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MDI4MAkvKiBQQ0kgQ2xhc3MgQ29kZTogTmV0d29yay9PdGhlciovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwYiAgLyogUENJIERldmljZSBJRDogQ1BDSS0yRFAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUgICAgICAgMHgwMjgwCS8qIFBDSSBDbGFzcyBDb2RlOiBOZXR3b3JrL090aGVyKi8KIAotI2RlZmluZSBDRkdfUENJX1BUTTFMQSAgKGJkLT5iaV9tZW1zdGFydCkgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZWYwMDAwMDAJLyogcG9pbnQgdG8gaW50ZXJuYWwgcmVncyArIFBCMC8xICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmMDAwMDAxICAgICAgLyogMTZNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQSAgKGJkLT5iaV9tZW1zdGFydCkgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZWYwMDAwMDAJLyogcG9pbnQgdG8gaW50ZXJuYWwgcmVncyArIFBCMC8xICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHhmZjAwMDAwMSAgICAgIC8qIDE2TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQkvKiB1c2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMAkvKiBlbnZpcm9ubWVudCBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgRUVQUk9NICovCkBAIC0yMDgsMTkgKzIwOCwxOSBAQAogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAotI2RlZmluZSBDRkdfRUVQUk9NX1dSRU4gICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dSRU4gICAgICAgICAxCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjM1LDM1ICsyMzUsMzUgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAyIChQQjApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAzMDA0NTgwICAvKiBUV1Q9NixXQk49MSxUSD0yLFJFPTEsU09SPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhFRjAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMzAwNDU4MCAgLyogVFdUPTYsV0JOPTEsVEg9MixSRT0xLFNPUj0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEVGMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKFBCMSkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMzAwNDU4MCAgLyogVFdUPTYsV0JOPTEsVEg9MixSRT0xLFNPUj0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RUYxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDMwMDQ1ODAgIC8qIFRXVD02LFdCTj0xLFRIPTIsUkU9MSxTT1I9MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhFRjExODAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9OGJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBHUElPIGRlZmluaXRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUAkJKDB4ODAwMDAwMDAgPj4gMTMpICAgLyogR1BJTzEzICovCi0jZGVmaW5lIENGR19TRUxGX1JTVAkJKDB4ODAwMDAwMDAgPj4gMTQpICAgLyogR1BJTzE0ICovCi0jZGVmaW5lIENGR19QQl9MRUQJCSgweDgwMDAwMDAwID4+IDE2KSAgIC8qIEdQSU8xNiAqLwotI2RlZmluZSBDRkdfSU5UQV9GQUtFCQkoMHg4MDAwMDAwMCA+PiAyMykgICAvKiBHUElPMjMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1AJCSgweDgwMDAwMDAwID4+IDEzKSAgIC8qIEdQSU8xMyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NFTEZfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkgICAvKiBHUElPMTQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9MRUQJCSgweDgwMDAwMDAwID4+IDE2KSAgIC8qIEdQSU8xNiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOVEFfRkFLRQkJKDB4ODAwMDAwMDAgPj4gMjMpICAgLyogR1BJTzIzICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9DUENJNDA1LmgKaW5kZXggMmU5NDhmNS4uMzQ5M2Q3NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNS5oCkBAIC01MCw3ICs1MCw3IEBACiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC05OSw0MyArOTksNDMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwogCkBAIC0xNjAsMTYgKzE2MCwxNiBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfQk9PVERFTEFZICAgIDAgICAgICAgLyogZW5hYmxlIHBjaSBib290ZGVsYXkgdmFyaWFibGUqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUgIC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1ICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQyIDB4MDQwNiAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNS1BICAgICovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQSAgKGJkLT5iaV9tZW1zdGFydCkgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUyAgMHhmZmMwMDAwMSAgICAgIC8qIDRNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQyIDB4MDQwNiAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNS1BICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAoYmQtPmJpX21lbXN0YXJ0KSAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHhmZmMwMDAwMSAgICAgIC8qIDRNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCkBAIC0xNzksNTggKzE3OSw1OCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogbm8gcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIgICAgIChDRkdfTlZSQU1fQkFTRV9BRERSKzB4NjkwMCkgLyogVnhXb3JrcyBldGgtYWRkciovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUisweDY5MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLwogCiAjaWYgMSAvKiBVc2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM5LDcgKzIzOSw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkvKiB1c2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KIAogI2Vsc2UgLyogVXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAKQEAgLTI1MywxNyArMjUzLDE3IEBACiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMDgpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI3OSw1NCArMjc5LDU0IEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEZGODVBMDAwICAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCwgMSwgMiwgQ29kZXN3aXRjaCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENvbXBhY3RGbGFzaCBJREUpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChOVlJBTSkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAxMDA1MjgwICAvKiBUV1Q9MixXQk49MSxXQkY9MSxUSD0xLFNPUj0xCSovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDEwMDUyODAgIC8qIFRXVD0yLFdCTj0xLFdCRj0xLFRIPTEsU09SPTEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNSAoUXVhcnQpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkJMHgwNDAwNUI4MCAgLyogVFdUPTgsV0JOPTEsV0JGPTEsVEg9NSxSRT0xLFNPUj0xKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUgkJMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUAkJMHgwNDAwNUI4MCAgLyogVFdUPTgsV0JOPTEsV0JGPTEsVEg9NSxSRT0xLFNPUj0xKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IJCTB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDQwMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDgwMDAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwNDAwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDgwMDAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAjaWYgMSAvKiB0ZXN0LW9ubHkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDUyLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNTIuaAppbmRleCAxOTlmNTc3Li43MzRhYjk1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNTIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNTIuaApAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtMTA2LDQ1ICsxMDYsNDUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogCkBAIC0xNTQsNyArMTU0LDcgQEAKIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRSAxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTc1LDE2ICsxNzUsMTYgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX0JPT1RERUxBWSAgICAwICAgICAgIC8qIGVuYWJsZSBwY2kgYm9vdGRlbGF5IHZhcmlhYmxlKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEMiAweDA0MDYgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUtQSAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIChiZC0+YmlfbWVtc3RhcnQpIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQSAgMHhmZmMwMDAwMCAgICAgIC8qIHBvaW50IHRvIGZsYXNoICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUgIC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1ICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEMiAweDA0MDYgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUtQSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUgICAgICAgMHgwYjIwICAvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQSAgKGJkLT5iaV9tZW1zdGFydCkgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMTk0LDMzICsxOTQsMzMgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIG5vIGxlZCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAKQEAgLTIyOCwyNCArMjI4LDI0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjaWYgMCAvKiBVc2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU0LDcgKzI1NCw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkvKiB1c2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDBmZjgJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS0oQ09ORklHX0VOVl9TSVpFKzgpKQkvKiBFbnYJKi8KKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLShDT05GSUdfRU5WX1NJWkUrOCkpCS8qIEVudgkqLwogCiAjZWxzZSAvKiBVc2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIApAQCAtMjY0LDI1ICsyNjQsMjUgQEAKIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIgICAgIChDRkdfTlZSQU1fQkFTRV9BRERSKzB4NjkwMCkgLyogVnhXb3JrcyBldGgtYWRkciovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUisweDY5MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI5OCw4OCArMjk4LDg4IEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEZGODVBMDAwICAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCwgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCi0jZGVmaW5lIENGR19MRURfQUREUgkJMHhGMDAwMDM4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0FERFIJCTB4RjAwMDAzODAKIAogLyogTWVtb3J5IEJhbmsgMyAoQ29tcGFjdEZsYXNoIElERSkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAxMUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjAxMUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKE5WUkFNL1JUQykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0vKiNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJICAweDAxODA1MjgwICAvICogVFdUPTMsV0JOPTEsV0JGPTEsVEg9MSxTT1I9MQkgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAxODA1NjgwICAvKiBUV1Q9MyxXQk49MSxXQkY9MSxUSD0zLFNPUj0xCSovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkJICAweDAxODA1MjgwICAvICogVFdUPTMsV0JOPTEsV0JGPTEsVEg9MSxTT1I9MQkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkJMHgwMTgwNTY4MCAgLyogVFdUPTMsV0JOPTEsV0JGPTEsVEg9MyxTT1I9MQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayA1IChvcHRpb25hbCBRdWFydCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkJMHgwNDAwNUI4MCAgLyogVFdUPTgsV0JOPTEsV0JGPTEsVEg9NSxSRT0xLFNPUj0xKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVDUgkJMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUAkJMHgwNDAwNUI4MCAgLyogVFdUPTgsV0JOPTEsV0JGPTEsVEg9NSxSRT0xLFNPUj0xKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1Q1IJCTB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNiAoRlBHQSBpbnRlcm5hbCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI2QVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkNSCQkweEYwNDFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwotI2RlZmluZSBDRkdfRlBHQV9CQVNFX0FERFIJMHhGMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkNSCQkweEYwNDFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSCTB4RjA0MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCiAvKiBGUEdBIGludGVybmFsIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERQkJMHgwMAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVMJCTB4MDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFMJCTB4MDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfTE9XCQkweDA2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDAJMHgxMAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwX0xPVwkweDEyCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDEJMHgxNAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxX0xPVwkweDE2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDIJMHgxOAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyX0xPVwkweDFhCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDMJMHgxYwotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzX0xPVwkweDFlCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFCQkweDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVMJCTB4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19MT1cJCTB4MDYKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDAJMHgxMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMQkweDE0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAxX0xPVwkweDE2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyCTB4MTgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDJfTE9XCTB4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDMJMHgxYworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQogCiAvKiBGUEdBIE1vZGUgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfQ0ZfUkVTRVQJICAgIDB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9NT0RFX0RVQVJUX1JFU0VUICAgMHgwMDAyCi0jZGVmaW5lIENGR19GUEdBX01PREVfRU5BQkxFX09VVFBVVCAweDAwMDQgICAgIC8qIG9ubHkgc2V0IG9uIENQQ0ktNDA1IFZlciAzICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19JUlFfQ0xFQVIgIDB4MTAwMAotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0NMRUFSCSAgICAweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfQ0ZfUkVTRVQJICAgIDB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVCAgIDB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9FTkFCTEVfT1VUUFVUIDB4MDAwNCAgICAgLyogb25seSBzZXQgb24gQ1BDSS00MDUgVmVyIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfQ0xFQVIJICAgIDB4MjAwMAogCiAvKiBGUEdBIFN0YXR1cyBSZWcgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDAJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAxCTB4MDAwMgotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMgkweDAwMDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0ZMQVNICTB4MDAwOAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfVFNfSVJRCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDAJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMQkweDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAyCTB4MDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0ZMQVNICTB4MDAwOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX1RTX0lSUQkweDEwMDAKIAotI2RlZmluZSBDRkdfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzE1ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTMTUgICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCi0jZGVmaW5lIENGR19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLwogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMCAgLyogdXNlIGRhdGEgY2FjaGUJCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNUFCLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNUFCLmgKaW5kZXggY2Q4YTY1Yi4uNDdhZDg5ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDVBQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUENJNDA1QUIuaApAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAogI3VuZGVmCUNPTkZJR19MT0FEU19FQ0hPCQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTEwNiw0MyArMTA2LDQzIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KIApAQCAtMTUwLDcgKzE1MCw3IEBACiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE3MSwxNiArMTcxLDE2IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkJMAkvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRDIgMHgwNDA2IC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1LUEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIChiZC0+YmlfbWVtc3RhcnQpIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUJLyogUENJIERldmljZSBJRDogQ1BDSS00MDUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEMiAweDA0MDYgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUtQQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAoYmQtPmJpX21lbXN0YXJ0KSAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgKH4oYmQtPmJpX21lbXNpemUgLSAxKSB8IDEpIC8qIG1lbXNpemUsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCkBAIC0xOTAsMzMgKzE5MCwzMyBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEYwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogI2RlZmluZSBDT05GSUdfT0ZfTElCRkRUCiAjZGVmaW5lIENPTkZJR19PRl9CT0FSRF9TRVRVUApAQCAtMjI0LDQxICsyMjQsNDEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBFRVBST00gKENBVDI0V0MzMikgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJjIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MzMgkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMzIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDEKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TICAgMSAgICAgICAvKiBtb3JlIHRoYW4gb25lIGVlcHJvbSB1c2VkISAgICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDUJLyogVGhlIENhdGFseXN0IENBVDI0V0MzMiBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TICAgMSAgICAgICAvKiBtb3JlIHRoYW4gb25lIGVlcHJvbSB1c2VkISAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMzIgaGFzCSovCiAJCQkJCS8qIDMyIGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA1IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qIFVzZSBFRVBST00gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogCkBAIC0yNjcsOSArMjY3LDkgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMAkvKiAyMDQ4IGJ5dGVzIG1heSBiZSB1c2VkIGZvciBlbnYgdmFycyovCiAJCQkJICAgLyogdG90YWwgc2l6ZSBvZiBhIENBVDI0V0MzMiBpcyA0MDk2IGJ5dGVzICovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUiAgICAgKENGR19OVlJBTV9CQVNFX0FERFIrMHg2OTAwKSAvKiBWeFdvcmtzIGV0aC1hZGRyKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUiAgICAgKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSKzB4NjkwMCkgLyogVnhXb3JrcyBldGgtYWRkciovCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjg1LDkyICsyODUsOTIgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEZGODVBMDAwICAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAyIChDQU4wLCAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KLSNkZWZpbmUgQ0ZHX0xFRF9BRERSCQkweEYwMDAwMzgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQUREUgkJMHhGMDAwMDM4MAogCiAvKiBNZW1vcnkgQmFuayAzIChDb21wYWN0Rmxhc2ggSURFKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDExQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgNCAoTlZSQU0vUlRDKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLS8qI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkgIDB4MDE4MDUyODAgIC8gKiBUV1Q9MyxXQk49MSxXQkY9MSxUSD0xLFNPUj0xCSAgICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJCTB4MDE4MDU2ODAgIC8qIFRXVD0zLFdCTj0xLFdCRj0xLFRIPTMsU09SPTEJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworLyojZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkgIDB4MDE4MDUyODAgIC8gKiBUV1Q9MyxXQk49MSxXQkY9MSxUSD0xLFNPUj0xCSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDAxODA1NjgwICAvKiBUV1Q9MyxXQk49MSxXQkY9MSxUSD0zLFNPUj0xCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkweEYwMjE4MDAwICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDUgKG9wdGlvbmFsIFF1YXJ0KSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNUFQCQkweDA0MDA1QjgwICAvKiBUV1Q9OCxXQk49MSxXQkY9MSxUSD01LFJFPTEsU09SPTEqLwotI2RlZmluZSBDRkdfRUJDX1BCNUNSCQkweEYwMzE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQCQkweDA0MDA1QjgwICAvKiBUV1Q9OCxXQk49MSxXQkY9MSxUSD01LFJFPTEsU09SPTEqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUgkJMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayA2IChGUEdBIGludGVybmFsKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEI2Q1IJCTB4RjA0MUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCi0jZGVmaW5lIENGR19GUEdBX0JBU0VfQUREUgkweEYwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2Q1IJCTB4RjA0MUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIJMHhGMDQwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KIC8qIEZQR0EgaW50ZXJuYWwgcmVncyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFCQkweDAwCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVUwkJMHgwMgotI2RlZmluZSBDRkdfRlBHQV9UUwkJMHgwNAotI2RlZmluZSBDRkdfRlBHQV9UU19MT1cJCTB4MDYKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMAkweDEwCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDBfTE9XCTB4MTIKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMQkweDE0Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDFfTE9XCTB4MTYKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMgkweDE4Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDJfTE9XCTB4MWEKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMwkweDFjCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDNfTE9XCTB4MWUKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREUJCTB4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVUwkJMHgwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFMJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0xPVwkJMHgwNgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMAkweDEwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAwX0xPVwkweDEyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAxCTB4MTQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDFfTE9XCTB4MTYKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDIJMHgxOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMl9MT1cJMHgxYQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMwkweDFjCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAzX0xPVwkweDFlCiAKIC8qIEZQR0EgTW9kZSBSZWcgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9DRl9SRVNFVAkgICAgMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX01PREVfRFVBUlRfUkVTRVQgICAweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9FTkFCTEVfT1VUUFVUIDB4MDAwNCAgICAgLyogb25seSBzZXQgb24gQ1BDSS00MDUgVmVyIDMgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV8xV0lSRV9ESVIgICAgIDB4MDEwMCAgICAgLyogZGlyPTEgLT4gb3V0cHV0ICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfU0lNX09LX0RJUiAgICAweDAyMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9URVNUUklHX0ZBSUxfRElSIDB4MDQwMAotI2RlZmluZSBDRkdfRlBHQV9NT0RFXzFXSVJFICAgICAgICAgMHgxMDAwCi0jZGVmaW5lIENGR19GUEdBX01PREVfU0lNX09LICAgICAgICAweDIwMDAgICAgIC8qIHdpcmVkLW9yIG5ldCBmcm9tIGFsbCBkZXZpY2VzICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfVEVTVFJJR19GQUlMICAweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfQ0ZfUkVTRVQJICAgIDB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVCAgIDB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9FTkFCTEVfT1VUUFVUIDB4MDAwNCAgICAgLyogb25seSBzZXQgb24gQ1BDSS00MDUgVmVyIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfMVdJUkVfRElSICAgICAweDAxMDAgICAgIC8qIGRpcj0xIC0+IG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9TSU1fT0tfRElSICAgIDB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9URVNUUklHX0ZBSUxfRElSIDB4MDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV8xV0lSRSAgICAgICAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9TSU1fT0sgICAgICAgIDB4MjAwMCAgICAgLyogd2lyZWQtb3IgbmV0IGZyb20gYWxsIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVEVTVFJJR19GQUlMICAweDQwMDAKIAogLyogRlBHQSBTdGF0dXMgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAwICAgIDB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMSAgICAweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDIgICAgMHgwMDA0Ci0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19GTEFTSCAgIDB4MDAwOAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfMVdJUkUgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX1NJTV9PSyAgMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMCAgICAweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAxICAgIDB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDIgICAgMHgwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRkxBU0ggICAweDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU18xV0lSRSAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX1NJTV9PSyAgMHgyMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTMzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlMzMCAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiB1c2UgZGF0YSBjYWNoZQkJICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDVEVC5oIGIvaW5jbHVkZS9jb25maWdzL0NQQ0k0MDVEVC5oCmluZGV4IGM2N2U1MWMuLjRlOTRkZmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9DUENJNDA1RFQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTQwNURULmgKQEAgLTUxLDcgKzUxLDcgQEAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTEwNyw0NSArMTA3LDQ1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkxICAgICAgIC8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0ICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KIApAQCAtMTYxLDcgKzE2MSw3IEBACiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE4MiwxNiArMTgyLDE2IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkgICAgMCAgICAgICAvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRDIgMHgwNDA2IC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1LUEgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUgICAgICAgMHgwYjIwICAvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBICAoYmQtPmJpX21lbXN0YXJ0KSAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAofihiZC0+YmlfbWVtc2l6ZSAtIDEpIHwgMSkgLyogbWVtc2l6ZSwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRDIgMHgwNDA2IC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1LUEgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEgIChiZC0+YmlfbWVtc3RhcnQpIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TICAofihiZC0+YmlfbWVtc2l6ZSAtIDEpIHwgMSkgLyogbWVtc2l6ZSwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQSAgMHhmZmMwMDAwMCAgICAgIC8qIHBvaW50IHRvIGZsYXNoICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYKQEAgLTIwMSw1NCArMjAxLDU0IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkxCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogVXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1Nyw3ICsyNTcsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEJLyogdXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgwZmY4CQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtKENPTkZJR19FTlZfU0laRSs4KSkJLyogRW52CSovCisJKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS0oQ09ORklHX0VOVl9TSVpFKzgpKQkvKiBFbnYJKi8KIAogI2Vsc2UgLyogVXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAKQEAgLTI2NywyNSArMjY3LDI1IEBACiAJCQkJICAgLyogdG90YWwgc2l6ZSBvZiBhIENBVDI0V0MxNiBpcyAyMDQ4IGJ5dGVzICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLwotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSICAgICAoQ0ZHX05WUkFNX0JBU0VfQUREUisweDY5MDApIC8qIFZ4V29ya3MgZXRoLWFkZHIqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSICAgICAoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrMHg2OTAwKSAvKiBWeFdvcmtzIGV0aC1hZGRyKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMDEsODggKzMwMSw4OCBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKENBTjAsIDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwotI2RlZmluZSBDRkdfTEVEX0FERFIJCTB4RjAwMDAzODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xFRF9BRERSCQkweEYwMDAwMzgwCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENvbXBhY3RGbGFzaCBJREUpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChOVlJBTS9SVEMpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotLyojZGVmaW5lIENGR19FQkNfUEI0QVAJCSAgMHgwMTgwNTI4MCAgLyAqIFRXVD0zLFdCTj0xLFdCRj0xLFRIPTEsU09SPTEJICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJMHgwMTgwNTY4MCAgLyogVFdUPTMsV0JOPTEsV0JGPTEsVEg9MyxTT1I9MQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCQkweEYwMjE4MDAwICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCSAgMHgwMTgwNTI4MCAgLyAqIFRXVD0zLFdCTj0xLFdCRj0xLFRIPTEsU09SPTEJICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDE4MDU2ODAgIC8qIFRXVD0zLFdCTj0xLFdCRj0xLFRIPTMsU09SPTEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNSAob3B0aW9uYWwgUXVhcnQpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAJCTB4MDQwMDVCODAgIC8qIFRXVD04LFdCTj0xLFdCRj0xLFRIPTUsUkU9MSxTT1I9MSovCi0jZGVmaW5lIENGR19FQkNfUEI1Q1IJCTB4RjAzMTgwMDAgIC8qIEJBUz0weEYwMyxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1QVAJCTB4MDQwMDVCODAgIC8qIFRXVD04LFdCTj0xLFdCRj0xLFRIPTUsUkU9MSxTT1I9MSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSCQkweEYwMzE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDYgKEZQR0EgaW50ZXJuYWwpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZDUgkJMHhGMDQxQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRV9BRERSCTB4RjA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2QVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZDUgkJMHhGMDQxQTAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUgkweEYwNDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKICAqLwogLyogRlBHQSBpbnRlcm5hbCByZWdzICovCi0jZGVmaW5lIENGR19GUEdBX01PREUJCTB4MDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTCQkweDAyCi0jZGVmaW5lIENGR19GUEdBX1RTCQkweDA0Ci0jZGVmaW5lIENGR19GUEdBX1RTX0xPVwkJMHgwNgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwCTB4MTAKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxCTB4MTQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMV9MT1cJMHgxNgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyCTB4MTgKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMl9MT1cJMHgxYQotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzCTB4MWMKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERQkJMHgwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTCQkweDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UUwkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfTE9XCQkweDA2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAwCTB4MTAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDBfTE9XCTB4MTIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDEJMHgxNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMV9MT1cJMHgxNgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMgkweDE4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyX0xPVwkweDFhCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAzCTB4MWMKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDNfTE9XCTB4MWUKIAogLyogRlBHQSBNb2RlIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFX0NGX1JFU0VUCSAgICAweDAwMDEKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9EVUFSVF9SRVNFVCAgIDB4MDAwMgotI2RlZmluZSBDRkdfRlBHQV9NT0RFX0VOQUJMRV9PVVRQVVQgMHgwMDA0ICAgICAvKiBvbmx5IHNldCBvbiBDUENJLTQwNSBWZXIgMyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0lSUV9FTkFCTEUgMHgwMTAwCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19DTEVBUgkgICAgMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX0NGX1JFU0VUCSAgICAweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfRFVBUlRfUkVTRVQgICAweDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfRU5BQkxFX09VVFBVVCAweDAwMDQgICAgIC8qIG9ubHkgc2V0IG9uIENQQ0ktNDA1IFZlciAzICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0lSUV9FTkFCTEUgMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0lSUV9DTEVBUiAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0NMRUFSCSAgICAweDIwMDAKIAogLyogRlBHQSBTdGF0dXMgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAwCTB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMQkweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDIJMHgwMDA0Ci0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19GTEFTSAkweDAwMDgKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX1RTX0lSUQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAwCTB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDEJMHgwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMgkweDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19GTEFTSAkweDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19UU19JUlEJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkgICAgLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlMxNSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzE1ICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiB1c2UgZGF0YSBjYWNoZQkJICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTc1MC5oIGIvaW5jbHVkZS9jb25maWdzL0NQQ0k3NTAuaAppbmRleCA0NmY4MGQxLi44NDk0ZmFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSTc1MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUENJNzUwLmgKQEAgLTY4LDE4ICs2OCwxOCBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfUFJFX0lOSVQKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCiAKLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJDUENJNzUwIgorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJDUENJNzUwIgogI2RlZmluZSBDT05GSUdfSURFTlRfU1RSSU5HCSJNYXJ2ZWxsIDY0MzYwICsgSUJNNzUwRlgiCiAKLS8qI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKKy8qI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUgMQogCiAvKiBEZWZpbmUgd2hpY2ggRVRIIHBvcnQgd2lsbCBiZSB1c2VkIGZvciBjb25uZWN0aW5nIHRoZSBuZXR3b3JrICovCi0jZGVmaW5lIENGR19FVEhfUE9SVAkJRVRIXzAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfUE9SVAkJRVRIXzAKIAogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBsZXQgeW91IHNlbGVjdCB3aGF0IHNlcmlhbCB5b3Ugd2FudCB0byB1c2UKQEAgLTg3LDcgKzg3LDcgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogdG8gdXNlIHRoZSBEVUFSVCwgdW5kZWYgQ09ORklHX01QU0MuCSBJZiB5b3UgaGF2ZSBoYWNrZWQgYSBzZXJpYWwKLSAqIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLCBjaGFuZ2UgdGhlIENGR19EVUFSVCBwb3J0IGZyb20gMQorICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMQogICogdG8gMCBiZWxvdy4KICAqCiAgKiB0byB1c2UgdGhlIE1QU0MsICNkZWZpbmUgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSB3aXJlZCB1cCBhbm90aGVyCkBAIC0xMzAsNyArMTMwLDcgQEAKIAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjdW5kZWYJQ09ORklHX0FMVElWRUMJCQkvKiB1bmRlZiB0byBkaXNhYmxlCQkqLwpAQCAtMTc1LDc1ICsxNzUsNzUgQEAKICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfVklERU9fTE9HTwogI2RlZmluZSBDT05GSUdfSTgwNDJfS0JECi0jZGVmaW5lIENGR19JU0FfSU8gMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAwCiAjZW5kaWYKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTgwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECTgwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdCAqLwogCi0jZGVmaW5lIENGR19HVF9EVUFMX0NQVQkJCS8qIGFsc28gZm9yIEpUQUcgZXZlbiB3aXRoIG9uZSBjcHUgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HVF9EVUFMX0NQVQkJCS8qIGFsc28gZm9yIEpUQUcgZXZlbiB3aXRoIG9uZSBjcHUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotLyojZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAqLwkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0vKiNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwKi8JLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwotLyojZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN2MwMDAwMCovCS8qIDQgLi4uIDEyNCBNQiBpbiBEUkFNICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAqLwkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMCovCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwKi8JLyogNCAuLi4gMTI0IE1CIGluIERSQU0gKi8KIAogLyoKLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVAogICogRFJBTSB0ZXN0cwotICogICBDRkdfRFJBTV9URVNUIC0gZW5hYmxlcyB0aGUgZm9sbG93aW5nIHRlc3RzLgorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVCAtIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0ZXN0cy4KICAqCi0gKiAgIENGR19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCBmb3Igc2hvcnRlZCBvciBvcGVuIGRhdGEgbGluZXMKKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCBmb3Igc2hvcnRlZCBvciBvcGVuIGRhdGEgbGluZXMKICAqCQkJICBFbnZpcm9ubWVudCB2YXJpYWJsZSAndGVzdF9kcmFtX2RhdGEnIG11c3QgYmUKICAqCQkJICBzZXQgdG8gJ3knLgotICogICBDRkdfRFJBTV9URVNUX0RBVEEgLSBFbmFibGVzIHRlc3QgdG8gdmVyaWZ5IHRoYXQgZWFjaCB3b3JkIGlzIHVuaXF1ZWx5CisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgLSBFbmFibGVzIHRlc3QgdG8gdmVyaWZ5IHRoYXQgZWFjaCB3b3JkIGlzIHVuaXF1ZWx5CiAgKgkJCSAgYWRkcmVzc2FibGUuIEVudmlyb25tZW50IHZhcmlhYmxlCiAgKgkJCSAgJ3Rlc3RfZHJhbV9hZGRyZXNzJyBtdXN0IGJlIHNldCB0byAneScuCi0gKiAgIENGR19EUkFNX1RFU1RfV0FMSyAtIEVuYWJsZXMgdGVzdCBhIDY0LWJpdCB3YWxraW5nIG9uZXMgcGF0dGVybiB0ZXN0LgorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLIC0gRW5hYmxlcyB0ZXN0IGEgNjQtYml0IHdhbGtpbmcgb25lcyBwYXR0ZXJuIHRlc3QuCiAgKgkJCSAgVGhpcyB0ZXN0IHRha2VzIGFib3V0IDYgbWludXRlcyB0byB0ZXN0IDY0IE1CLgogICoJCQkgIEVudmlyb25tZW50IHZhcmlhYmxlICd0ZXN0X2RyYW1fd2FsaycgbXVzdCBiZQogICoJCQkgIHNldCB0byAneScuCiAgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotLyojZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMCovCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwCS8qIDQgLi4uIDEyNCBNQiBpbiBEUkFNICovCi0jZGVmaW5lIENGR19EUkFNX1RFU1RfREFUQQotI2RlZmluZSBDRkdfRFJBTV9URVNUX0FERFJFU1MKLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVF9XQUxLCi0jZW5kaWYgLyogQ0ZHX0RSQU1fVEVTVCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVAorI2lmIGRlZmluZWQoQ09ORklHX1NZU19EUkFNX1RFU1QpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMCovCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwN2MwMDAwMAkvKiA0IC4uLiAxMjQgTUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUX0FERFJFU1MKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSworI2VuZGlmIC8qIENPTkZJR19TWVNfRFJBTV9URVNUICovCiAKICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfTUVNTUFQCQkvKiBhdCB0aGUgZW5kIG9mIHRoZSBib290cHJvY2VzcyBzaG93IHRoZSBtZW1vcnkgbWFwICovCi0jdW5kZWYgQ0ZHX0RJU1BMQVlfRElNTV9TUERfQ09OVEVOVAkvKiBzaG93IFNQRCBjb250ZW50IGR1cmluZyBib290ICovCisjdW5kZWYgQ09ORklHX1NZU19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQJLyogc2hvdyBTUEQgY29udGVudCBkdXJpbmcgYm9vdCAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcyAqLwotI2RlZmluZSBDRkdfQlVTX0haCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAoQ1BVID0gNSpCdXMgPSA2NjZNSHopCQkqLwotI2RlZmluZSBDRkdfQlVTX0NMSwkJQ0ZHX0JVU19IWgorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJCTEzMzAwMDAwMAkvKiAxMzMgTUh6IChDUFUgPSA1KkJ1cyA9IDY2Nk1IeikJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSwkJQ09ORklHX1NZU19CVVNfSFoKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKLSNkZWZpbmUgQ0ZHX1RDTEsJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RDTEsJCTEzMzAwMDAwMAogCi0vKiNkZWZpbmUgQ0ZHXzc1MEZYX0hJRDAJCTB4ODAwMGMwODQqLwotI2RlZmluZSBDRkdfNzUwRlhfSElEMAkJMHg4MDAwODQ4NAotI2RlZmluZSBDRkdfNzUwRlhfSElEMQkJMHg1NDgwMDAwMAotI2RlZmluZSBDRkdfNzUwRlhfSElEMgkJMHgwMDAwMDAwMAorLyojZGVmaW5lIENPTkZJR19TWVNfNzUwRlhfSElEMAkJMHg4MDAwYzA4NCovCisjZGVmaW5lIENPTkZJR19TWVNfNzUwRlhfSElEMAkJMHg4MDAwODQ4NAorI2RlZmluZSBDT05GSUdfU1lTXzc1MEZYX0hJRDEJCTB4NTQ4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU183NTBGWF9ISUQyCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjU2LDYzICsyNTYsNjMgQEAKICAqLwogCiAgLyoKLSAqIFdoZW4gbG9ja2luZyBkYXRhIGluIGNhY2hlIHlvdSBzaG91bGQgcG9pbnQgdGhlIENGR19JTklUX1JBTV9BRERSRVNTCisgKiBXaGVuIGxvY2tpbmcgZGF0YSBpbiBjYWNoZSB5b3Ugc2hvdWxkIHBvaW50IHRoZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJFU1MKICAqIFRvIGFuIHVudXNlZCBtZW1vcnkgcmVnaW9uLiBUaGUgc3RhY2sgd2lsbCByZW1haW4gaW4gY2FjaGUgdW50aWwgUkFNCiAgKiBpcyBpbml0aWFsaXplZAogKi8KLSN1bmRlZgkgIENGR19JTklUX1JBTV9MT0NLCi0vKiAjZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAqLyAvKiB1bnVzZWQgbWVtb3J5IHJlZ2lvbiAqLwotLyogI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGZiYTAwMDAwKi8gLyogdW51c2VkIG1lbW9yeSByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhmMTA4MDAwMCAvKiB1bnVzZWQgbWVtb3J5IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjdW5kZWYJICBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKy8qICNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAqLyAvKiB1bnVzZWQgbWVtb3J5IHJlZ2lvbiAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhmYmEwMDAwMCovIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGYxMDgwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAjZGVmaW5lIFJFTE9DQVRFX0lOVEVSTkFMX1JBTV9BRERSCiAjaWZkZWYgUkVMT0NBVEVfSU5URVJOQUxfUkFNX0FERFIKLS8qI2RlZmluZSBDRkdfSU5URVJOQUxfUkFNX0FERFIgMHhmYmEwMDAwMCovCi0jZGVmaW5lIENGR19JTlRFUk5BTF9SQU1fQUREUgkweGYxMDgwMDAwCisvKiNkZWZpbmUgQ09ORklHX1NZU19JTlRFUk5BTF9SQU1fQUREUiAweGZiYTAwMDAwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTlRFUk5BTF9SQU1fQUREUgkweGYxMDgwMDAwCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAvKiBEdW1taWVzIGZvciBCQVQgNC03ICovCi0jZGVmaW5lIENGR19TRFJBTTFfQkFTRQkJMHgxMDAwMDAwMAkvKiBlYWNoIDI1NiBNQnl0ZSAqLwotI2RlZmluZSBDRkdfU0RSQU0yX0JBU0UJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNM19CQVNFCQkweDMwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTRfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweGZmZjAwMDAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX0JBU0UJCTB4MTAwMDAwMDAJLyogZWFjaCAyNTYgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTJfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNM19CQVNFCQkweDMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU00X0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCSAgIC8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCSAgIC8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCSAgIC8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwIC8qIHN0YXJ0IG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTQJICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkweDAxMDAwMDAwIC8qIHNpemUgb2YgIGZsYXNoIGJhbmsJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICB7IENGR19GTEFTSF9CQVNFLAkJCQkgICBcCi0JCQkJQ0ZHX0ZMQVNIX0JBU0UgKyAxKkNGR19GTEFTSF9JTkNSRU1FTlQsCSAgIFwKLQkJCQlDRkdfRkxBU0hfQkFTRSArIDIqQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCwJICAgXAotCQkJCUNGR19GTEFTSF9CQVNFICsgMypDRkdfRkxBU0hfSU5DUkVNRU5UIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JMQkgICAvKiBzaG93IGlmIGJhbmsgaXMgZW1wdHkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCSAgIC8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkgICAvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZjMDAwMDAwIC8qIHN0YXJ0IG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwk0CSAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAgLyogc2l6ZSBvZiAgZmxhc2ggYmFuawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCAgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsCQkJCSAgIFwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAxKkNPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5ULAkgICBcCisJCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMipDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVCwJICAgXAorCQkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIDMqQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JMQkgICAvKiBzaG93IGlmIGJhbmsgaXMgZW1wdHkJCSovCiAKIC8qIGFyZWFzIHRvIG1hcCBkaWZmZXJlbnQgdGhpbmdzIHdpdGggdGhlIEdUIGluIHBoeXNpY2FsIHNwYWNlICovCi0jZGVmaW5lIENGR19EUkFNX0JBTktTCQk0CisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQU5LUwkJNAogCiAvKiBXaGF0IHRvIHB1dCBpbiB0aGUgYmF0cy4gKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCiAKQEAgLTMyNiwzNyArMzI2LDM3IEBACiAvKiBEYXRhIGZsYXNoIG9uIGV4dGVybmFsIGRldmljZSBtb2R1bGUJCSAgICAgICAqLwogLyogQm9vdCBmbGFzaCBvbiBleHRlcm5hbCBkZXZpY2UgbW9kdWxlCQkgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KLSNkZWZpbmUJIENGR19DUENJNzUwX1JFU0VUX0FERFIgMHgxNDAwMDAwMAkJCQkvKiBBZnRlciBwb3dlciBvbiBSZXNldCB0aGUgQ1BDSTc1MCBpcyBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUJIENPTkZJR19TWVNfQ1BDSTc1MF9SRVNFVF9BRERSIDB4MTQwMDAwMDAJCQkJLyogQWZ0ZXIgcG93ZXIgb24gUmVzZXQgdGhlIENQQ0k3NTAgaXMgaGVyZSAqLwogCiAjdW5kZWYJTUFSVkVMX1NUQU5EQVJEX0NGRwogI2lmbmRlZgkJTUFSVkVMX1NUQU5EQVJEX0NGRwogLyorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKi8KLSNkZWZpbmUgQ0ZHX0dUX1JFR1MJCTB4ZjEwMDAwMDAJCQkJLyogR1QgUmVnaXN0ZXJzIHdpbGwgYmUgbWFwcGVkIGhlcmUgKi8KLS8qI2RlZmluZSBDRkdfREVWX0JBU0UJCTB4ZmMwMDAwMDAqLwkJCQkvKiBHVCBEZXZpY2VzIENTIHN0YXJ0IGhlcmUgKi8KLSNkZWZpbmUgQ0ZHX0lOVF9TUkFNX0JBU0UJMHhmMTA4MDAwMAkJCQkvKiBHVCBvZmZlcnMgMjU2ayBpbnRlcm5hbCBmYXN0IFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HVF9SRUdTCQkweGYxMDAwMDAwCQkJCS8qIEdUIFJlZ2lzdGVycyB3aWxsIGJlIG1hcHBlZCBoZXJlICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19ERVZfQkFTRQkJMHhmYzAwMDAwMCovCQkJCS8qIEdUIERldmljZXMgQ1Mgc3RhcnQgaGVyZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOVF9TUkFNX0JBU0UJMHhmMTA4MDAwMAkJCQkvKiBHVCBvZmZlcnMgMjU2ayBpbnRlcm5hbCBmYXN0IFNSQU0gKi8KIAotI2RlZmluZSBDRkdfQk9PVF9TUEFDRQkJMHhmZjAwMDAwMAkJCQkvKiBCT09UX0NTMCBmbGFzaCAwICAgICovCi0jZGVmaW5lIENGR19ERVYwX1NQQUNFCQkweGZjMDAwMDAwCQkJCS8qIERFVl9DUzAgZmxhc2ggMSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjFfU1BBQ0UJCTB4ZmQwMDAwMDAJCQkJLyogREVWX0NTMSBmbGFzaCAyICAgICAqLwotI2RlZmluZSBDRkdfREVWMl9TUEFDRQkJMHhmZTAwMDAwMAkJCQkvKiBERVZfQ1MyIGZsYXNoIDMgICAgICovCi0jZGVmaW5lIENGR19ERVYzX1NQQUNFCQkweGYwMDAwMDAwCQkJCS8qIERFVl9DUzMgbnZyYW0vY2FuICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NQQUNFCQkweGZmMDAwMDAwCQkJCS8qIEJPT1RfQ1MwIGZsYXNoIDAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1NQQUNFCQkweGZjMDAwMDAwCQkJCS8qIERFVl9DUzAgZmxhc2ggMSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NQQUNFCQkweGZkMDAwMDAwCQkJCS8qIERFVl9DUzEgZmxhc2ggMiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NQQUNFCQkweGZlMDAwMDAwCQkJCS8qIERFVl9DUzIgZmxhc2ggMyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NQQUNFCQkweGYwMDAwMDAwCQkJCS8qIERFVl9DUzMgbnZyYW0vY2FuICAgKi8KIAotI2RlZmluZSBDRkdfQk9PVF9TSVpFCQlfMTZNCQkJCQkvKiBjcGNpNzUwIGZsYXNoIDAgICAgICovCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjFfU0laRQkJXzE2TQkJCQkJLyogY3BjaTc1MCBmbGFzaCAyICAgICAqLwotI2RlZmluZSBDRkdfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBjcGNpNzUwIGZsYXNoIDMgICAgICovCi0jZGVmaW5lIENGR19ERVYzX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgbnZyYW0vY2FuICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMCAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgZmxhc2ggMyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NJWkUJCV8xNk0JCQkJCS8qIGNwY2k3NTAgbnZyYW0vY2FuICAgKi8KIAogLyorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKi8KICNlbmRpZgogCiAvKiBSZXNldCB2YWx1ZXMgZm9yIFBvcnQgYmVoYXZpb3IgKDhiaXQvIDMyYml0LCBldGMuKSBvbmx5IGNvcnJlY3RlZCBieSBkZXZpY2Ugd2lkdGggKi8KLSNkZWZpbmUgQ0ZHX0RFVjBfUEFSCQkweDhGREZGRkZGCQkJCS8qIDE2IGJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfREVWMV9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCi0jZGVmaW5lIENGR19ERVYyX1BBUgkJMHg4RkRGRkZGRgkJCQkvKiAxNiBiaXQgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0RFVjNfUEFSCQkweDhGQ0ZGRkZGCQkJCS8qIG52cmFtL2NhbgkqLwotI2RlZmluZSBDRkdfQk9PVF9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19QQVIJCTB4OEZDRkZGRkYJCQkJLyogbnZyYW0vY2FuCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9QQVIJCTB4OEZERkZGRkYJCQkJLyogMTYgYml0IGZsYXNoICovCiAKIAkvKiAgIGMJICA0ICAgIGEgICAgICA4CSAgICAyCSAgNCAgICAxICAgICAgYwkJKi8KIAkvKiAzMyAyMnwyMjIyfDIyIDIyfDExMSAxfDExIDExfDEgMSAgfAkgIHwJCSovCkBAIC0zNjYsMTggKzM2NiwxOCBAQAogCiAKIC8qIE1QUCBDb250cm9sIE1WNjQzNjAgQXBwZW5kaXggUCBQLiA2MzIqLwotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMAkweDAwMDAyMjIyCS8qCQkJCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzEJMHgxMTExMDAwMAkvKgkJCQkgICAgICovCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4MTExMTExMTEJLyoJCQkJICAgICAqLwotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMwkweDAwMDAxMTExCS8qCQkJCSAgICAgKi8KLS8qICNkZWZpbmUgQ0ZHX1NFUklBTF9QT1JUX01VWAkweDAwMDAwMTAyKi8JLyoJCQkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHgwMDAwMjIyMgkvKgkJCQkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMQkweDExMTEwMDAwCS8qCQkJCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yCTB4MTExMTExMTEJLyoJCQkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgwMDAwMTExMQkvKgkJCQkgICAgICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMX1BPUlRfTVVYCTB4MDAwMDAxMDIqLwkvKgkJCQkgICAgICovCiAKIAotI2RlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHhmZmZmZmZmZgkvKiAxMTExIDExMTEgMTExMSAxMTExIDExMTEgMTExMSAxMTExIDExMTEqLworI2RlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4ZmZmZmZmZmYJLyogMTExMSAxMTExIDExMTEgMTExMSAxMTExIDExMTEgMTExMSAxMTExKi8KIAogLyogc2V0dXAgbmV3IGNvbmZpZ192YWx1ZSBmb3IgTVY2NDM2MCBERFItUkFNIFRvX2RvICEhICovCi0vKiMgZGVmaW5lIENGR19TRFJBTV9DT05GSUcJMHhkOGUxODIwMCovCS8qIDB4NDQ4ICovCi0vKiMgZGVmaW5lIENGR19TRFJBTV9DT05GSUcJMHhkOGUxNDQwMCovCS8qIDB4MTQwMCAqLworLyojIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NPTkZJRwkweGQ4ZTE4MjAwKi8JLyogMHg0NDggKi8KKy8qIyBkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DT05GSUcJMHhkOGUxNDQwMCovCS8qIDB4MTQwMCAqLwogCQkJCS8qIEdCIGhhcyBoaWdoIHByaW8uCiAJCQkJICAgaWRtYSBoYXMgbG93IHByaW8KIAkJCQkgICBNUFNDIGhhcyBsb3cgcHJpbwpAQCAtMzkzLDcgKzM5Myw3IEBACiAJCQkJICAgdmlydHVhbCBpbnRlcmxlYXZpbmcgZW5hYmxlICovCiAJCQkJLyogMTUgMTQgMTM6MCAqLwogCQkJCS8qIDAgIDEJIDB4NDAwICovCi0jIGRlZmluZSBDRkdfU0RSQU1fQ09ORklHCTB4NTgyMDA0MDAJLyogMHgxNDAwICBjb3BpZWQgZnJvbSBEaW5rMzIgYnp3LiBWeFdvcmtzKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ09ORklHCTB4NTgyMDA0MDAJLyogMHgxNDAwICBjb3BpZWQgZnJvbSBEaW5rMzIgYnp3LiBWeFdvcmtzKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MTEsMzEgKzQxMSwzMSBAQAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBkZXZpY2VzIG9uIGJ1cwkJKi8KIAogLyogUENJIE1FTU9SWSBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQogCi0jZGVmaW5lIENGR19QQ0kwXzBfTUVNX1NQQUNFCShDRkdfUENJMF9NRU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UJKENGR19QQ0kxX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UpCiAKIC8qIFBDSSBJL08gTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KIAotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRQkoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0UJKENGR19QQ0kxX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TUEFDRQkoQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMV9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyAoQ0ZHX1BDSTBfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIChDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSkKIAogI2lmIGRlZmluZWQgKENPTkZJR183NTBDWCkKLSNkZWZpbmUgQ0ZHX1BDSV9JRFNFTCAweDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSURTRUwgMHgwCiAjZWxzZQotI2RlZmluZSBDRkdfUENJX0lEU0VMIDB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSURTRUwgMHgzMAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ0NywxNiArNDQ3LDE2IEBACiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIG5vIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAkJLyogY2hlY2sgZm9yIHVuaXRzCQkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkyCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIJCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjIpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMAotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVAkwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ2OSwyOCArNDY5LDI4IEBACiAgKi8KIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMFUgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQwVSBDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVIENPTkZJR19TWVNfSUJBVDBVCiAKIC8qIGluaXQgcmFtICovCi0jZGVmaW5lIENGR19JQkFUMUwgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8yNTZLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzI1NksgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBQQ0kwLCBQQ0kxIGluIG9uZSBCQVQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTCBCQVRMX05PX0FDQ0VTUwotI2RlZmluZSBDRkdfSUJBVDJVIENGR19EQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCBCQVRMX05PX0FDQ0VTUworI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSBDT05GSUdfU1lTX0RCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBHVCByZWdzLCBib290cm9tLCBhbGwgdGhlIGRldmljZXMsIFBDSSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcpCi0jZGVmaW5lIENGR19JQkFUM1UgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCi0jZGVmaW5lIENGR19EQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVSBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVIENPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiA3NTBGWCBJQkFUIGFuZCBEQkFUIHBhaXJzIChUb19kbzogZGVmaW5lIHJlZ2lucyBmb3IgSShEKUJBVDQgLSBJKEQpQkFUNykKQEAgLTUwMSw1MiArNTAxLDUyIEBACiAvKiNkZWZpbmUgU0VUVVBfSElHSF9CQVRTX0ZYNzUwKi8JCS8qIGluaXRpYWxpemUgQkFUUyA0LTcgKi8KIAogI2lmZGVmIFNFVFVQX0hJR0hfQkFUU19GWDc1MAotI2RlZmluZSBDRkdfSUJBVDRMIChDRkdfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUNFUgKENGR19TRFJBTTFfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDRMIChDRkdfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVIENGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwgKENPTkZJR19TWVNfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVIChDT05GSUdfU1lTX1NEUkFNMV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMIChDT05GSUdfU1lTX1NEUkFNMV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUgQ09ORklHX1NZU19JQkFUNFUKIAogLyogSUJBVDUgYW5kIERCQVQ1ICovCi0jZGVmaW5lIENGR19JQkFUNUwgKENGR19TRFJBTTJfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VSAoQ0ZHX1NEUkFNMl9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNUwgKENGR19TRFJBTTJfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNVUgQ0ZHX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1TCAoQ09ORklHX1NZU19TRFJBTTJfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUgKENPTkZJR19TWVNfU0RSQU0yX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwgKENPTkZJR19TWVNfU0RSQU0yX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VSBDT05GSUdfU1lTX0lCQVQ1VQogCiAvKiBJQkFUNiBhbmQgREJBVDYgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TCAoQ0ZHX1NEUkFNM19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDZVIChDRkdfU0RSQU0zX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TCAoQ0ZHX1NEUkFNM19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ2VSBDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMIChDT05GSUdfU1lTX1NEUkFNM19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VSAoQ09ORklHX1NZU19TRFJBTTNfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TCAoQ09ORklHX1NZU19TRFJBTTNfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVIENPTkZJR19TWVNfSUJBVDZVCiAKIC8qIElCQVQ3IGFuZCBEQkFUNyAqLwotI2RlZmluZSBDRkdfSUJBVDdMIChDRkdfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUN1UgKENGR19TRFJBTTRfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMIChDRkdfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDdVIENGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UgQ09ORklHX1NZU19JQkFUN1UKIAogI2Vsc2UJCS8qIHNldCBlbSBvdXQgb2YgcmFuZ2UgZm9yIExpbnV4ICEhISEhISEhISEhICovCi0jZGVmaW5lIENGR19JQkFUNEwgKENGR19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VSAoQ0ZHX1NEUkFNNF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNEwgKENGR19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNFUgQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TCAoQ09ORklHX1NZU19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VSBDT05GSUdfU1lTX0lCQVQ0VQogCiAvKiBJQkFUNSBhbmQgREJBVDUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TCAoQ0ZHX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDVVIChDRkdfU0RSQU00X0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ1TCAoQ0ZHX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ1VSBDRkdfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VSAoQ09ORklHX1NZU19TRFJBTTRfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TCAoQ09ORklHX1NZU19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVIENPTkZJR19TWVNfSUJBVDRVCiAKIC8qIElCQVQ2IGFuZCBEQkFUNiAqLwotI2RlZmluZSBDRkdfSUJBVDZMIChDRkdfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUNlUgKENGR19TRFJBTTRfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDZMIChDRkdfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDZVIENGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMIChDT05GSUdfU1lTX1NEUkFNNF9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUgQ09ORklHX1NZU19JQkFUNFUKIAogLyogSUJBVDcgYW5kIERCQVQ3ICovCi0jZGVmaW5lIENGR19JQkFUN0wgKENGR19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VSAoQ0ZHX1NEUkFNNF9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUN0wgKENGR19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUN1UgQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TCAoQ09ORklHX1NZU19TRFJBTTRfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wgKENPTkZJR19TWVNfU0RSQU00X0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VSBDT05GSUdfU1lTX0lCQVQ0VQogCiAjZW5kaWYKIC8qIEZJWE1FOiBpbmdvIGVuZDogZGlzYWJsZSBCQVRzIGZvciBMaW51eCBLZXJuZWwgKi8KQEAgLTU2MCw0MiArNTYwLDQyIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDg8PDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19CT09UX0ZMQVNIX1dJRFRICTIJLyogMTYgYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9GTEFTSF9XSURUSAkyCS8qIDE2IGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBMb2NrIChpbiBtcykgKi8KIAogI2lmIDAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRkY3ODAwMCAvKiBNYXJ2ZWxsIDgtQml0IEJvb3RmbGFzaCBsYXN0IHNlY3RvciAqLwotLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJICAgKENGR19GTEFTSF9CQVNFK0NGR19NT05JVE9SX0xFTi1DT05GSUdfRU5WX1NFQ1RfU0laRSkgKi8KKy8qICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCSAgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi1DT05GSUdfRU5WX1NFQ1RfU0laRSkgKi8KICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogdXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAyMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4MDUwCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHgwNTAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MjAwCS8qIGVudmlyb25tZW50IHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBFRVBST00gKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDYwMAkvKiAyMDQ4IGJ5dGVzIG1heSBiZSB1c2VkIGZvciBlbnYgdmFycyovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUgkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS0weDQwKQorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtMHg0MCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMJCSAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYwMyw4ICs2MDMsOCBAQAogICogbG9vayBpbiBpbmNsdWRlL21wYzc0eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KIAotLyojZGVmaW5lIENGR19MMiovCi0jdW5kZWYgQ0ZHX0wyCisvKiNkZWZpbmUgQ09ORklHX1NZU19MMiovCisjdW5kZWYgQ09ORklHX1NZU19MMgogCiAvKiAgICAjaWZkZWYgQ09ORklHXzc1MENYKi8KICNpZiBkZWZpbmVkIChDT05GSUdfNzUwQ1gpIHx8IGRlZmluZWQgKENPTkZJR183NTBGWCkKQEAgLTYyNCw2ICs2MjQsNiBAQAogI2RlZmluZSBCT09URkxBR19DT0xECTB4MDEJCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JMHgwMgkJLyogU29mdHdhcmUgcmVib290CQkgICAgKi8KIAotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQJMQorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCTEKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9DUENJSVNFUjQuaCBiL2luY2x1ZGUvY29uZmlncy9DUENJSVNFUjQuaAppbmRleCBkN2U5NzM5Li4yZDYwZWJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BDSUlTRVI0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0NQQ0lJU0VSNC5oCkBAIC00OCw3ICs0OCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdG0gZmZmMDAwMDAiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTkyLDMzICs5MiwzMyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJMTg0MzIwMAkgLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jawkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJMTg0MzIwMAkgLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jawkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKQEAgLTEzNSw2OSArMTM1LDY5IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAJCQkJCS8qIHJlc291cmNlIGNvbmZpZ3VyYXRpb24JKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA0CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktSVNFUjQJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHhmZjAwMDAwMQkvKiAxNk1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZlMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZlMDAwMDEJLyogMk1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDQJLyogUENJIERldmljZSBJRDogQ1BDSS1JU0VSNAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmYwMDAwMDEJLyogMTZNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZlMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmZTAwMDAxCS8qIDJNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBFRVBST00gKENBVDI0V0MwOCkgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA0IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQkvKiB1c2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJzICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMAkvKiBlbnZpcm9ubWVudCBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgRUVQUk9NICovCkBAIC0yMTgsMzAgKzIxOCwzMCBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKFVhcnQgOGJpdCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDEwMDA0ODAgIC8qIFRXVD0yLFRIPTIsbm8gUmVhZHksQkVNPTAsU09SPTEJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTAwMDQ4MCAgLyogVFdUPTIsVEg9MixubyBSZWFkeSxCRU09MCxTT1I9MQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyIChVYXJ0IDMyYml0KSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMDAwMDRjMCAgLyogbm8gUmVhZHksIEJFTT0xCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDExQzAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDAwMDA0YzAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMTFDMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0zMmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAzIChGUEdBIFJlc2V0KSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwMDRDMCAgLyogbm8gUmVhZHksIEJFTT0xCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDIxQTAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDA0QzAgIC8qIG5vIFJlYWR5LCBCRU09MQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMjFBMDAwICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTCTcJLyogdXNlIGNzICMgNyBmb3IgZGF0YSBjYWNoZSBtZW1vcnkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIHVzZSBkYXRhIGNhY2hlCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1BVODYuaCBiL2luY2x1ZGUvY29uZmlncy9DUFU4Ni5oCmluZGV4IDVmNGUwYzcuLmNmMjFmZDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9DUFU4Ni5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUFU4Ni5oCkBAIC04MywxMCArODMsMTAgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEyKQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCiAKQEAgLTk2LDEwICs5NiwxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX09OX0ZDQywgQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTEyNSw4ICsxMjUsOCBAQAogICovCiAjZGVmaW5lCUNPTkZJR19TT0ZUX0kyQwkJCS8qIFNvZnR3YXJlIEkyQyBzdXBwb3J0IGVuYWJsZWQJKi8KIAotIyBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSMgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgogICovCkBAIC0xNDEsNyArMTQxLDcgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTQ5LDE3ICsxNDksMTcgQEAKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTg5LDE1NiArMTg5LDE1NiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTIDB4RkZGMDAxMDAJLyogImJhZCIgYWRkcmVzcwkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19SRVNFVF9BRERSRVNTIDB4RkZGMDAxMDAJLyogImJhZCIgYWRkcmVzcwkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RST01fU0laRQkweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBPdGhlciBhcmVhcyB0byBiZSBtYXBwZWQKICAqLwogCiAvKiBDUzM6IER1YWwgcG9ydGVkIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0RQU1JBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19EUFNSQU1fU0laRQkJMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RQU1JBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFBTUkFNX1NJWkUJCTB4MDAwMjAwMDAKIAogLyogQ1M0OiBEaXNrT25DaGlwICovCi0jZGVmaW5lIENGR19ET0NfQkFTRQkJMHhGNDAwMDAwMAotI2RlZmluZSBDRkdfRE9DX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfQkFTRQkJMHhGNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSVpFCQkweDAwMTAwMDAwCiAKIC8qIENTNTogRkRDMzdDNzggY29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfRkRDMzdDNzhfQkFTRQkweEYxMDAwMDAwCi0jZGVmaW5lIENGR19GREMzN0M3OF9TSVpFCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GREMzN0M3OF9CQVNFCTB4RjEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GREMzN0M3OF9TSVpFCTB4MDAxMDAwMDAKIAogLyogQ1M2OiBCb2FyZCBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQkNSU19CQVNFCQkweEYyMDAwMDAwCi0jZGVmaW5lIENGR19CQ1JTX1NJWkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1JTX0JBU0UJCTB4RjIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1JTX1NJWkUJCTB4MDAwMTAwMDAKIAogLyogQ1M3OiBWTUUgRXh0ZW5kZWQgQWNjZXNzIFJhbmdlICovCi0jZGVmaW5lIENGR19WTUVFQVJfQkFTRQkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfVk1FRUFSX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVFQVJfQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZNRUVBUl9TSVpFCQkweDAxMDAwMDAwCiAKIC8qIENTODogVk1FIFN0YW5kYXJkIEFjY2VzcyBSYW5nZSAqLwotI2RlZmluZSBDRkdfVk1FU0FSX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX1ZNRVNBUl9TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVk1FU0FSX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVTQVJfU0laRQkJMHgwMTAwMDAwMAogCiAvKiBDUzk6IFZNRSBTaG9ydCBJL08gQWNjZXNzIFJhbmdlICovCi0jZGVmaW5lIENGR19WTUVTSU9BUl9CQVNFCTB4RkQwMDAwMDAKLSNkZWZpbmUgQ0ZHX1ZNRVNJT0FSX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZNRVNJT0FSX0JBU0UJMHhGRDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZNRVNJT0FSX1NJWkUJMHgwMTAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19CT09UX1JPTSkKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TIHwgXAogCQkJCSBIUkNXX0JQUzAxIHwgSFJDV19DUzEwUEMwMSkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUyB8IEhSQ1dfQ1MxMFBDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMgfCBIUkNXX0NTMTBQQzAxKQogI2VuZGlmCiAKIC8qIG5vIHNsYXZlcyBzbyBqdXN0IGZpbGwgd2l0aCB6ZXJvcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKgotICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDRkdfU0RSQU1fQkFTRS4KKyAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFLgogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9NQVhfU0laRQkweDA4MDAwMDAwCS8qIG1heC4gMTI4IE1CCQkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NQVhfU0laRQkweDA4MDAwMDAwCS8qIG1heC4gMTI4IE1CCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogI2lmIDAKIC8qIGVudmlyb25tZW50IGlzIGluIEZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2lmZGVmIENPTkZJR19CT09UX1JPTQotIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrMHg3MDAwMCkKKyMgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSsweDcwMDAwKQogIyBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAwCiAjIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZW5kaWYKICNlbHNlCiAvKiBlbnZpcm9ubWVudCBpcyBpbiBFRVBST00gKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTgJLyogRUVQUk9NIFgyNEMxNgkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU4CS8qIEVFUFJPTSBYMjRDMTYJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIiAgICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQk1MTIKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoMjA0OCAtIDUxMikKICNlbmRpZgpAQCAtMzU1LDkgKzM1NSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAgICAgICAgICAgICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM3MCwzMCArMzcwLDMwIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxcCiAJCQkgSElEMF9EQ0l8SElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgKEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMICAoSElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICBSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUiAgICAgICAgIFJNUl9DU1JFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjZGVmaW5lIEJDUl9BUEQwMQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkJLyogODI2MCBtb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9CQkR8U0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgICAgICAoU0lVTUNSX0JCRHxTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8XAogCQkJIFNJVU1DUl9DUzEwUEMwMXxTSVVNQ1JfQkNUTEMxMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDAzLDEwICs0MDMsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtNDE2LDcgKzQxNiw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTQyNCwzMyArNDI0LDMzIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgU0NDUl9ERkJSRzAxCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgU0NDUl9ERkJSRzAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKLSNkZWZpbmUgQ0ZHX01JTl9BTV9NQVNLCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSU5fQU1fTUFTSwkweEMwMDAwMDAwCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNUFRQUiAtIE1lbW9yeSBSZWZyZXNoIFRpbWVyIFByZXNjYWxlciBSZWdpc3RlciAgICAgICAgICAgICAgMTAtMTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHgxRjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHgxRjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBTUlQgLSBSZWZyZXNoIFRpbWVyIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC0xNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19QU1JUICAgICAgICAweDBmCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAgICAgMHgwZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQU1JUIC0gU0RSQU0gTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAtMTAKQEAgLTQ1OSwxMiArNDU5LDEyIEBACiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDgtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOENPTAkoQ0ZHX01JTl9BTV9NQVNLCQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl84Q09MCShDT05GSUdfU1lTX01JTl9BTV9NQVNLCQl8XAogCQkJIE9SeFNfQlBEXzQJCQl8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BOQkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzhDT0wJKFBTRE1SX1NEQU1fQTEzX0lTX0E1CQl8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzhDT0wJKFBTRE1SX1NEQU1fQTEzX0lTX0E1CQl8XAogCQkJIFBTRE1SX0JTTUFfQTE0X0ExNgkJfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0ExMAkJfFwKIAkJCSBQU0RNUl9SRlJDXzdfQ0xLCQl8XApAQCAtNDc2LDEyICs0NzYsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl85Q09MCShDRkdfTUlOX0FNX01BU0sJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzlDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E3CQl8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVJfOUNPTAkoUFNETVJfU0RBTV9BMTRfSVNfQTUJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOUNPTAkoUFNETVJfU0RBTV9BMTRfSVNfQTUJCXxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1CQl8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTkJCXxcCiAJCQkgUFNETVJfUkZSQ183X0NMSwkJfFwKQEAgLTUwMiwxNyArNTAyLDE3IEBACiAgKgogICovCiAKLSNkZWZpbmUgQ0ZHX01SU19PRkZTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUlNfT0ZGUwkweDAwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfQk9PVF9ST00KIC8qIEJhbmsgMCAtIEJvb3QgUk9NCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAogCQkJIEJSeF9QU184ICAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoUDJTWl9UT19BTShDRkdfQk9PVFJPTV9TSVpFKSAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19CT09UUk9NX1NJWkUpICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTUyMCwxMiArNTIwLDEyIEBACiAKIC8qIEJhbmsgMSAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTUzNCwxMiArNTM0LDEyIEBACiAjZWxzZSAvKiBDT05GSUdfQk9PVF9ST00gKi8KIC8qIEJhbmsgMCAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTU0NywxMiArNTQ3LDEyIEBACiAKIC8qIEJhbmsgMSAtIEJvb3QgUk9NCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAogCQkJIEJSeF9QU184ICAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNICAoUDJTWl9UT19BTShDRkdfQk9PVFJPTV9TSVpFKSAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19CT09UUk9NX1NJWkUpICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV8zX0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTU2MywyNSArNTYzLDI1IEBACiAKIC8qIEJhbmsgMiAtIDYweCBidXMgU0RSQU0KICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCSBDRkdfT1IyXzlDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCSBDT05GSUdfU1lTX09SMl85Q09MCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SCSBDRkdfUFNETVJfOUNPTAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJIENPTkZJR19TWVNfUFNETVJfOUNPTAorI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAvKiBCYW5rIDMgLSBEdWFsIFBvcnRlZCBTUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0gICgoQ0ZHX0RQU1JBTV9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNICAoKENPTkZJR19TWVNfRFBTUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18xNiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjNfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRFBTUkFNX1NJWkUpICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19EUFNSQU1fU0laRSkgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV81X0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTU4OSw0NyArNTg5LDQ3IEBACiAKIC8qIEJhbmsgNCAtIERpc2tPbkNoaXAKICAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgKChDRkdfRE9DX0JBU0UgJiBCUnhfQkFfTVNLKSAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICgoQ09ORklHX1NZU19ET0NfQkFTRSAmIEJSeF9CQV9NU0spICAgIHxcCiAJCQkgQlJ4X1BTXzggICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19ET0NfU0laRSkgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0RPQ19TSVpFKSAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjIgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzVfQ0xLICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFVfRUhUUl84SURMRSkKIAogLyogQmFuayA1IC0gRkRDMzdDNzggY29udHJvbGxlcgogICovCi0jZGVmaW5lIENGR19CUjVfUFJFTElNICAoKENGR19GREMzN0M3OF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNICAoKENPTkZJR19TWVNfRkRDMzdDNzhfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzggICAgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRkRDMzdDNzhfU0laRSkgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0ZEQzM3Qzc4X1NJWkUpICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMiAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV84X0NMSyAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFVfRUhUUl84SURMRSkKIAogLyogQmFuayA2IC0gQm9hcmQgY29udHJvbCByZWdpc3RlcnMKICAqLwotI2RlZmluZSBDRkdfQlI2X1BSRUxJTSAgKChDRkdfQkNSU19CQVNFICYgQlJ4X0JBX01TSykgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0gICgoQ09ORklHX1NZU19CQ1JTX0JBU0UgJiBCUnhfQkFfTVNLKSAgIHxcCiAJCQkgQlJ4X1BTXzggICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19CQ1JTX1NJWkUpICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0JDUlNfU0laRSkgICAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzVfQ0xLKQogCiAvKiBCYW5rIDcgLSBWTUUgRXh0ZW5kZWQgQWNjZXNzIFJhbmdlCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0gICgoQ0ZHX1ZNRUVBUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNICAoKENPTkZJR19TWVNfVk1FRUFSX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18zMiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjdfUFJFTElNICAoUDJTWl9UT19BTShDRkdfVk1FRUFSX1NJWkUpICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19WTUVFQVJfU0laRSkgICAgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV81X0NMSyAgICAgICAgICAgICAgICAgfFwKQEAgLTYzNywxMiArNjM3LDEyIEBACiAKIC8qIEJhbmsgOCAtIFZNRSBTdGFuZGFyZCBBY2Nlc3MgUmFuZ2UKICAqLwotI2RlZmluZSBDRkdfQlI4X1BSRUxJTSAgKChDRkdfVk1FU0FSX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSOF9QUkVMSU0gICgoQ09ORklHX1NZU19WTUVTQVJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzE2ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SOF9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19WTUVTQVJfU0laRSkgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjhfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX1ZNRVNBUl9TSVpFKSAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzVfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNjUwLDEyICs2NTAsMTIgQEAKIAogLyogQmFuayA5IC0gVk1FIFNob3J0IEkvTyBBY2Nlc3MgUmFuZ2UKICAqLwotI2RlZmluZSBDRkdfQlI5X1BSRUxJTSAgKChDRkdfVk1FU0lPQVJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI5X1BSRUxJTSAgKChDT05GSUdfU1lTX1ZNRVNJT0FSX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18xNiAgICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I5X1BSRUxJTSAgKFAyU1pfVE9fQU0oQ0ZHX1ZNRVNJT0FSX1NJWkUpICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I5X1BSRUxJTSAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19WTUVTSU9BUl9TSVpFKSAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMSAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhHX1NDWV81X0NMSyAgICAgICAgICAgICAgICAgICB8XApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0NQVTg3LmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1BVODcuaAppbmRleCBlMDg3NjI0Li40ODkzNzhhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvQ1BVODcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvQ1BVODcuaApAQCAtODcsMTAgKzg3LDEwIEBACiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzF8Q01YRkNSX1JGMUNTX01TS3xDTVhGQ1JfVEYxQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExfENNWEZDUl9URjFDU19DTEsxMikKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExfENNWEZDUl9URjFDU19DTEsxMikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQogCkBAIC0xMDAsMTAgKzEwMCwxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX09OX0ZDQywgQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTEyOSw4ICsxMjksOCBAQAogICovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJCS8qIFNvZnR3YXJlIEkyQyBzdXBwb3J0IGVuYWJsZWQgKi8KIAotIyBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSMgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgogICovCkBAIC0xNDUsNyArMTQ1LDcgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTUzLDE3ICsxNTMsMTcgQEAKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTk2LDI3ICsxOTYsMjcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAweEZGRjAwMTAwCS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweEZGRjAwMTAwCS8qICJiYWQiIGFkZHJlc3MJCSovCiAKICNkZWZpbmUgQ09ORklHX0xPT1BXCiAKQEAgLTIyNSwxMzUgKzIyNSwxMzUgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RST01fU0laRQkweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzUJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogT3RoZXIgYXJlYXMgdG8gYmUgbWFwcGVkCiAgKi8KIAogLyogQ1MzOiBEdWFsIHBvcnRlZCBTUkFNICovCi0jZGVmaW5lIENGR19EUFNSQU1fQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRFBTUkFNX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUFNSQU1fQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RQU1JBTV9TSVpFCQkweDAwMTAwMDAwCiAKIC8qIENTNDogRGlza09uQ2hpcCAqLwotI2RlZmluZSBDRkdfRE9DX0JBU0UJCTB4RjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TSVpFCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX0JBU0UJCTB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU0laRQkJMHgwMDEwMDAwMAogCiAvKiBDUzU6IEZEQzM3Qzc4IGNvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZEQzM3Qzc4X0JBU0UJMHhGMTAwMDAwMAotI2RlZmluZSBDRkdfRkRDMzdDNzhfU0laRQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkRDMzdDNzhfQkFTRQkweEYxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkRDMzdDNzhfU0laRQkweDAwMTAwMDAwCiAKIC8qIENTNjogQm9hcmQgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX0JDUlNfQkFTRQkJMHhGMjAwMDAwMAotI2RlZmluZSBDRkdfQkNSU19TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSU19CQVNFCQkweEYyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSU19TSVpFCQkweDAwMDEwMDAwCiAKIC8qIENTNzogVk1FIEV4dGVuZGVkIEFjY2VzcyBSYW5nZSAqLwotI2RlZmluZSBDRkdfVk1FRUFSX0JBU0UJCTB4NjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1ZNRUVBUl9TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVk1FRUFSX0JBU0UJCTB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVFQVJfU0laRQkJMHgwMTAwMDAwMAogCiAvKiBDUzg6IFZNRSBTdGFuZGFyZCBBY2Nlc3MgUmFuZ2UgKi8KLSNkZWZpbmUgQ0ZHX1ZNRVNBUl9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19WTUVTQVJfU0laRQkJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZNRVNBUl9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVk1FU0FSX1NJWkUJCTB4MDEwMDAwMDAKIAogLyogQ1M5OiBWTUUgU2hvcnQgSS9PIEFjY2VzcyBSYW5nZSAqLwotI2RlZmluZSBDRkdfVk1FU0lPQVJfQkFTRQkweEZEMDAwMDAwCi0jZGVmaW5lIENGR19WTUVTSU9BUl9TSVpFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVTSU9BUl9CQVNFCTB4RkQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19WTUVTSU9BUl9TSVpFCTB4MDEwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKgotICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ0ZHXyoKKyAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENPTkZJR19TWVNfKgogICogZGVmaW5lcyBmb3IgdGhlIHZhcmlvdXMgcmVnaXN0ZXJzIGFmZmVjdGVkIGJ5IHRoZSBIUkNXIGUuZy4gY2hhbmdpbmcKLSAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDRkdfU0lVTUNSLgorICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENPTkZJR19TWVNfU0lVTUNSLgogICovCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PVF9ST00pCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUyB8IFwKIAkJCQkgSFJDV19CUFMwMSB8IEhSQ1dfQ1MxMFBDMDEpCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTAwIHwgSFJDV19CTVMgfCBIUkNXX0NTMTBQQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TIHwgSFJDV19DUzEwUEMwMSkKICNlbmRpZgogCiAvKiBubyBzbGF2ZXMgc28ganVzdCBmaWxsIHdpdGggemVyb3MgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqCi0gKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENGR19TRFJBTV9CQVNFLgorICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UuCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjaWZkZWYJQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfUENJX1BOUAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CQkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KICNlbmRpZgogCiAjaWYgMAogLyogZW52aXJvbm1lbnQgaXMgaW4gRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjaWZkZWYgQ09ORklHX0JPT1RfUk9NCi0jIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSsweDcwMDAwKQorIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4NzAwMDApCiAjIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMDAKICMgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAKICNlbmRpZgogI2Vsc2UKIC8qIGVudmlyb25tZW50IGlzIGluIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1OAkvKiBFRVBST00gWDI0QzE2CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTgJLyogRUVQUk9NIFgyNEMxNgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTUxMgogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCSgyMDQ4IC0gNTEyKQogI2VuZGlmCkBAIC0zNzAsOSArMzcwLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM4NSwzMCArMzg1LDMwIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfFwKIAkJCSBISUQwX0RDSXxISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCShISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQyCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCShISUQwX0lGRU18SElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIJCQkJCSA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIJCVJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQlSTVJfQ1NSRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbgkJCQkJIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2RlZmluZSBCQ1JfQVBEMDEJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJKEJDUl9BUEQwMXxCQ1JfRVRNfEJDUl9MRVRNKQkvKiA4MjYwIG1vZGUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uCQkJCSA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0JCRHxTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0JCRHxTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8XAogCQkJIFNJVU1DUl9DUzEwUEMwMXxTSVVNQ1JfQkNUTEMxMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDE4LDEwICs0MTgsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtNDMxLDcgKzQzMSw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkgNC00MgpAQCAtNDM5LDIyICs0MzksMjIgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wJCQkJCSA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUglTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCVNDQ1JfREZCUkcwMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24JCQkJMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCTAKIAotI2RlZmluZSBDRkdfTUlOX0FNX01BU0sgMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JTl9BTV9NQVNLIDB4QzAwMDAwMDAKIAogLyoKICAqIHdlIHVzZSB0aGUgc2FtZSB2YWx1ZXMgZm9yIDMyIE1CLCAxMjggTUIgYW5kIDI1NiBNQiBTRFJBTQpAQCAtNDY1LDEzICs0NjUsMTMgQEAKICAqIE1QVFBSIC0gTWVtb3J5IFJlZnJlc2ggVGltZXIgUHJlc2NhbGVyIFJlZ2lzdGVyCQkxMC0xOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NUFRQUgkweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkweDIwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUFNSVCAtIFJlZnJlc2ggVGltZXIgUmVnaXN0ZXIJCQkJMTAtMTYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUFNSVAkweDE2CisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkweDE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBTUlQgLSBTRFJBTSBNb2RlIFJlZ2lzdGVyCQkJCQkxMC0xMApAQCAtNDgwLDEyICs0ODAsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOC1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl84Q09MCShDRkdfTUlOX0FNX01BU0sJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzhDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E5CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfUFNETVJfOENPTAkoUFNETVJfU0RBTV9BMTNfSVNfQTUJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOENPTAkoUFNETVJfU0RBTV9BMTNfSVNfQTUJCXxcCiAJCQkgUFNETVJfQlNNQV9BMTRfQTE2CQl8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTEwCQl8XAogCQkJIFBTRE1SX1JGUkNfN19DTEsJCXxcCkBAIC00OTcsMTIgKzQ5NywxMiBAQAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA5LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IyXzlDT0wJKENGR19NSU5fQU1fTUFTSwkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfOUNPTAkoQ09ORklHX1NZU19NSU5fQU1fTUFTSwkJfFwKIAkJCSBPUnhTX0JQRF80CQkJfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTcJCXxcCiAJCQkgT1J4U19OVU1SXzEzKQogCi0jZGVmaW5lIENGR19QU0RNUl85Q09MCShQU0RNUl9TREFNX0ExNF9JU19BNQkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl85Q09MCShQU0RNUl9TREFNX0ExNF9JU19BNQkJfFwKIAkJCSBQU0RNUl9CU01BX0ExM19BMTUJCXxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOQkJfFwKIAkJCSBQU0RNUl9SRlJDXzdfQ0xLCQl8XApAQCAtNTE0LDEyICs1MTQsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgMTAtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfMTBDT0wJKENGR19NSU5fQU1fTUFTSwkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfMTBDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E0CQl8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVJfMTBDT0wJKFBTRE1SX1BCSQkJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfMTBDT0wJKFBTRE1SX1BCSQkJCXxcCiAJCQkgUFNETVJfU0RBTV9BMTdfSVNfQTUJCXxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1CQl8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTYJCXxcCkBAIC01NDEsMTcgKzU0MSwxNyBAQAogICoKICAqLwogCi0jZGVmaW5lIENGR19NUlNfT0ZGUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVJTX09GRlMJMHgwMDAwMDAwMAogCiAjaWZkZWYgQ09ORklHX0JPT1RfUk9NCiAvKiBCYW5rIDAgLSBCb290IFJPTQogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoQ0ZHX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19CT09UUk9NX0JBU0UgJiBCUnhfQkFfTVNLKXxcCiAJCQkgQlJ4X1BTXzgJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENGR19CT09UUk9NX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0JPT1RST01fU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTU1OSwxMiArNTU5LDEyIEBACiAKIC8qIEJhbmsgMSAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTU3MywxMiArNTczLDEyIEBACiAjZWxzZSAvKiBDT05GSUdfQk9PVF9ST00gKi8KIC8qIEJhbmsgMCAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTU4NiwxMiArNTg2LDEyIEBACiAKIC8qIEJhbmsgMSAtIEJvb3QgUk9NCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChDRkdfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChDT05GSUdfU1lTX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKIAkJCSBCUnhfUFNfOAkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKFAyU1pfVE9fQU0oQ0ZHX0JPT1RST01fU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfQk9PVFJPTV9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtNjAyLDI1ICs2MDIsMjUgQEAKIAogLyogQmFuayAyIC0gNjB4IGJ1cyBTRFJBTQogICovCi0jaWZuZGVmIENGR19SQU1CT09UCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCSBCUnhfUFNfNjQJCQl8XAogCQkJIEJSeF9NU19TRFJBTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkgQ0ZHX09SMl84Q09MCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkgQ09ORklHX1NZU19PUjJfOENPTAogCi0jZGVmaW5lIENGR19QU0RNUgkgQ0ZHX1BTRE1SXzhDT0wKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCSBDT05GSUdfU1lTX1BTRE1SXzhDT0wKKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogLyogQmFuayAzIC0gRHVhbCBQb3J0ZWQgU1JBTQogICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoQ0ZHX0RQU1JBTV9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoQ09ORklHX1NZU19EUFNSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzE2CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRFBTUkFNX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0RQU1JBTV9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfN19DTEsJCQl8XApAQCAtNjI4LDEyICs2MjgsMTIgQEAKIAogLyogQmFuayA0IC0gRGlza09uQ2hpcAogICovCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCSgoQ0ZHX0RPQ19CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoQ09ORklHX1NZU19ET0NfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzgJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCShQMlNaX1RPX0FNKENGR19ET0NfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRE9DX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYyCQkJfFwKIAkJCSBPUnhHX1NDWV85X0NMSwkJCXxcCkBAIC02NDEsMzUgKzY0MSwzNSBAQAogCiAvKiBCYW5rIDUgLSBGREMzN0M3OCBjb250cm9sbGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JKChDRkdfRkRDMzdDNzhfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoKENPTkZJR19TWVNfRkRDMzdDNzhfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzgJCQkgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCSAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRkRDMzdDNzhfU0laRSkJICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GREMzN0M3OF9TSVpFKQkgIHxcCiAJCQkgT1J4R19BQ1NfRElWMgkJCSAgfFwKIAkJCSBPUnhHX1NDWV8xMF9DTEsJCSAgfFwKIAkJCSBPUnhVX0VIVFJfOElETEUpCiAKIC8qIEJhbmsgNiAtIEJvYXJkIGNvbnRyb2wgcmVnaXN0ZXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JKChDRkdfQkNSU19CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCSgoQ09ORklHX1NZU19CQ1JTX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJIEJSeF9QU184CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfQkNSU19TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19CQ1JTX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX1NDWV83X0NMSykKIAogLyogQmFuayA3IC0gVk1FIEV4dGVuZGVkIEFjY2VzcyBSYW5nZQogICovCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCSgoQ0ZHX1ZNRUVBUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCSgoQ09ORklHX1NZU19WTUVFQVJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzMyCQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfVk1FRUFSX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX1ZNRUVBUl9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfN19DTEsJCQl8XApAQCAtNjc3LDEyICs2NzcsMTIgQEAKIAogLyogQmFuayA4IC0gVk1FIFN0YW5kYXJkIEFjY2VzcyBSYW5nZQogICovCi0jZGVmaW5lIENGR19CUjhfUFJFTElNCSgoQ0ZHX1ZNRVNBUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjhfUFJFTElNCSgoQ09ORklHX1NZU19WTUVTQVJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzE2CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I4X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfVk1FU0FSX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I4X1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX1ZNRVNBUl9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfN19DTEsJCQl8XApAQCAtNjkwLDEyICs2OTAsMTIgQEAKIAogLyogQmFuayA5IC0gVk1FIFNob3J0IEkvTyBBY2Nlc3MgUmFuZ2UKICAqLwotI2RlZmluZSBDRkdfQlI5X1BSRUxJTQkoKENGR19WTUVTSU9BUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjlfUFJFTElNCSgoQ09ORklHX1NZU19WTUVTSU9BUl9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMTYJCQkgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCSAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I5X1BSRUxJTQkoUDJTWl9UT19BTShDRkdfVk1FU0lPQVJfU0laRSkJICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SOV9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19WTUVTSU9BUl9TSVpFKQkgIHxcCiAJCQkgT1J4R19DU05UCQkJICB8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQkgIHxcCiAJCQkgT1J4R19TQ1lfN19DTEsJCQkgIHxcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1JBWUwxLmggYi9pbmNsdWRlL2NvbmZpZ3MvQ1JBWUwxLmgKaW5kZXggNDYzOWQzMC4uMTEyMmQwMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0NSQVlMMS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DUkFZTDEuaApAQCAtNTMsNyArNTMsNyBAQAogCiAvKiBCb290Y21kIGlzIG92ZXJyaWRkZW4gYnkgdGhlIGJvb3RzY3JpcHQgaW4gYm9hcmQvY3JheS9MMQogICovCi0jZGVmaW5lCUNGR19BVVRPTE9BRAkJIm5vIgorI2RlZmluZQlDT05GSUdfU1lTX0FVVE9MT0FECQkibm8iCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiZGhjcCIKIAogLyoKQEAgLTYzLDE1ICs2MywxNSBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQyAgICAgICAgIDEJCS8qIGhhcmR3YXJlIHN1cHBvcnQgZm9yIGkyYyAqLwogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJCTEKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJICAgIDQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJICAgIDB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAgICAgMHg1NwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkgICAgNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJICAgIDB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKICNkZWZpbmUgQ09ORklHX0lERU5UX1NUUklORyAgICAgIkNyYXkgTDEiCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFICAgICAxCi0jZGVmaW5lCUNGR19IWgkJICAgICAgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJICAgICAgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkJIj4gIgogI2RlZmluZSBDT05GSUdfQVVUT1NDUklQVAkJMQogCiAKQEAgLTEyMyw1MCArMTIzLDUwIEBACiAgKiBmcm9tIHRoZSBEQ1IgYW55d2F5LCBzbyBpdHMga2luZGEtdGllZCB0byB0aGUgYWJvdmUgcmVmLiBjbG9jayB3aGljaCBpbiB0dXJuCiAgKiBkcml2ZXMgdGhlIHN5c3RlbSBjbG9jay4KICAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVEICAgICAgIDQwMzIyNQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQgICAgICAgNDAzMjI1CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCQkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkJCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJCQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KIAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIHdoZXJlIHRvIGxvYWQgd2hhdCB3ZSBnZXQgZnJvbSBURlRQICovCi0jZGVmaW5lIENGR19URlRQX0xPQURBRERSCUNGR19MT0FEX0FERFIKLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCi0jZGVmaW5lIENGR19EUkFNX1RFU1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIHdoZXJlIHRvIGxvYWQgd2hhdCB3ZSBnZXQgZnJvbSBURlRQICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9MT0FEQUREUglDT05GSUdfU1lTX0xPQURfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCQkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZDMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCiAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCSAxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSA2NAkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUIDEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUIDUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCSAxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkgNjQJCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUIDUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qIEJFRyBFTlZJUk9OTkVNRU5UIEZMQVNIOiBuZWVkcyB0byBiZSBhIHdob2xlIEZsYXNoU2VjdG9yICAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgzYzgwMDAKQEAgLTE3NywxOSArMTc3LDE5IEBACiAvKiBNZW1vcnkgdGVzdHM6IFUtQk9PVCByZWxvY2F0ZXMgaXRzZWxmIHRvIHRoZSB0b3Agb2YgUmFtLCBzbyBpdHMgYXQKICAqIDMybWVnLSgxMjhrK3NvbWVfbWFsbG9jX3NwYWNlK2NvcHktb2YtRU5WIHNlY3RvcikuLgogICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkzMgkJLyogbWVncyBvZiByYW0gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgyMDAwICAvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTMyCQkvKiBtZWdzIG9mIHJhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgyMDAwICAvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiAqLwogCQkJCQkJCQkJLyogdGhlIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKi8KIAkJCQkJCQkJCS8qIHRvIHRoZSBlbmQgb2YgdGhlIERSQU0gICovCiAJCQkJCQkJCQkvKiBsZXNzIG1vbml0b3IgYW5kIG1hbGxvYyBhcmVhICovCi0jZGVmaW5lIENGR19TVEFDS19VU0FHRQkJMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiAxMjhrIGZvciBtYWxsb2Mgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX01FTV9FTkRfVVNBR0UJKCBDRkdfTU9OSVRPUl9MRU4gXAotCQkJCSsgQ0ZHX01BTExPQ19MRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1VTQUdFCQkweDEwMDAwIC8qIFJlc2VydmUgNjRrIGZvciB0aGUgc3RhY2sgdXNhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiAxMjhrIGZvciBtYWxsb2Mgc3BhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFCSggQ09ORklHX1NZU19NT05JVE9SX0xFTiBcCisJCQkJKyBDT05GSUdfU1lTX01BTExPQ19MRU4gXAogCQkJCSsgQ09ORklHX0VOVl9TRUNUX1NJWkUgXAotCQkJCSsgQ0ZHX1NUQUNLX1VTQUdFICkKKwkJCQkrIENPTkZJR19TWVNfU1RBQ0tfVVNBR0UgKQogCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQgLSBDRkdfTUVNX0VORF9VU0FHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0IC0gQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFKQogLyogRU5EIEVOVklST05ORU1FTlQgRkxBU0ggKi8KIAogLyoKQEAgLTE5OCw3ICsxOTgsNyBAQAogICogQlIwLzEgYW5kIE9SMC8xIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwNiwyMyArMjA2LDIzIEBACiAgKi8KICNpZiAxCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZWxzZQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUJLyogRW5kIG9mIE9uIENoaXAgU1JBTQkgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkvKiBFbmQgb2YgT24gQ2hpcCBTUkFNCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvQ1U4MjQuaCBiL2luY2x1ZGUvY29uZmlncy9DVTgyNC5oCmluZGV4IGE0MGRmNzYuLjRhM2YyYmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9DVTgyNC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9DVTgyNC5oCkBAIC00OCw3ICs0OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG87ZWNobyBUeXBlIFxcXCJydW4gZmxhc2hfbmZzXFxcIiB0byBtb3VudCByb290IGZpbGVzeXN0ZW0gb3ZlciBORlM7ZWNobyIKIApAQCAtODMsNTQgKzgzLDU0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAogI2lmIDEKLSNkZWZpbmUJQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCiAjZW5kaWYKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogLyogUHJpbnQgQnVmZmVyIFNpemUKICAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKIAotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4RkYwMDAwMDAKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJICAgIDB4RkNFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJICAgIDB4RkNFMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkgICAgMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCiAJLyogTWF4aW11bSBhbW91bnQgb2YgUkFNLgogCSAqLwotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFICAgIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgxMDAwMDAwMAogCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIApAQCAtMTQwLDI0ICsxNDAsMjQgQEAKIAogCS8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YQogCSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgIDEyOAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQk0CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQk0CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkoMTQ3NDU2MDAgLyAyKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkoMTQ3NDU2MDAgLyAyKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhGRTgwMDA4MAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCTB4RkU4MDAwQzAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhGRTgwMDA4MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkweEZFODAwMEMwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY3LDM1ICsxNjcsMzUgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMDAwMDAwCi0jZGVmaW5lIENGR19IWgkJICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgMTAwMAogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuCiAJICovCi0jZGVmaW5lIENGR19ST01OQUwJICAgIDAKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgNworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkgICAgNwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAJICovCi0jZGVmaW5lIENGR19SRUZJTlQJICAgIDQzMAkgICAgLyogUmVmcmVzaCBpbnRlcnZhbAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCSAgICA0MzAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJCQkqLwogCiAJLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkgICAgMTkyCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMTkyCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkgICAgMgkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfUkRMQVQJICAgIDMJICAgIC8qIERhdGEgbGF0YW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkgICAgMgkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCSAgICAzCSAgICAvKiBEYXRhIGxhdGFuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJICAgIDIJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJICAgIDUJICAgIC8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQgIDIJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTiAyCSAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoCQkqLwotI2RlZmluZSBDRkdfQUNUT1JXCSAgICAyCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCSAgICAyCSAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgIDIJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkgICAgMAkgICAgLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOIDIJICAgIC8qIFNETU9ERSBCdXJzdCBsZW5ndGgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCSAgICAyCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3MuCiAgKiBPbmx5IGJpdHMgMjAtMjkgYXJlIGFjdHVhbGx5IHVzZWQgZnJvbSB0aGVzZSB2YWxlcyB0byBzZXQgdGhlCkBAIC0yMDQsNjkgKzIwNCw2OSBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDAgYm9vay4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECSAgICAoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUgICAgMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkgICAgKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFICAgIDAKIAotI2RlZmluZSBDRkdfT0RDUgkgICAgMHhmZgorI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJICAgIDB4ZmYKIAotI2RlZmluZSBDRkdfSUJBVDBMICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDNMICAoMHhGQzAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAgKDB4RkMwMDAwMDAgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAgKDB4RkMwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVICAoMHhGQzAwMDAwMCB8IEJBVFVfQkxfNjRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzOQkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgaW4gb25lIGJhbmsJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIAkvKiBXYXJpbmluZzogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBVLUJvb3QgY29kZS4KIAkgKiBJdCdzIHN0b3JlZCBpbiBmbGFzaCBzZXBhcmF0ZWx5LgpAQCAtMjg1LDkgKzI4NSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKQEAgLTMxMCwxMSArMzEwLDExIEBACiAjZGVmaW5lIENPTkZJR19UVUxJUAogI2RlZmluZSBDT05GSUdfVFVMSVBfVVNFX0lPCiAKLSNkZWZpbmUgQ0ZHX0VUSF9ERVZfRk4JICAgICAweDc4MDAKLSNkZWZpbmUgQ0ZHX0VUSF9JT0JBU0UJICAgICAweDAwMTA0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0RFVl9GTgkgICAgIDB4NzgwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9JT0JBU0UJICAgICAweDAwMTA0MDAwCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCTB4MDAxMDQwMDAKICNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJMHg4MDAwMDAwMAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9EQVNBX1NJTS5oIGIvaW5jbHVkZS9jb25maWdzL0RBU0FfU0lNLmgKaW5kZXggM2RkZjFiZi4uNjE3MDRkMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RBU0FfU0lNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RBU0FfU0lNLmgKQEAgLTUwLDcgKzUwLDcgQEAKICN1bmRlZglDT05GSUdfQk9PVEFSR1MKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTc4LDg0ICs3OCw4NCBAQAogI2lmIDAgLyogRG9lcyBub3QgYXBwZWFyIHRvIGJlIHVzZWQ/ISAgSWYgaXQgaXMgdXNlZCwgbmVlZHMgdG8gYmUgZml4ZWQgKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkJLyogU29mdHdhcmUgSTJDIHN1cHBvcnQgZW5hYmxlZCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MDBkZjAwMDAgLyogaW5zaWRlIG9mIFNEUkFNCQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDBmMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAvKiBpbnNpZGUgb2YgU0RSQU0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDBmMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4MEFBOQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MDU1NgkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4MEFBOQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDA1NTYJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAyCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMAkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDQJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMgkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAwCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDQJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDAxMDAwMAkvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCkBAIC0xNzcsMTAgKzE3NywxMCBAQAogCiAjZGVmaW5lIENPTkZJR19UVUxJUAogCi0jZGVmaW5lIENGR19FVEhfREVWX0ZOCSAgICAgMHgwMDAwCi0jZGVmaW5lIENGR19FVEhfSU9CQVNFCSAgICAgMHgwZmZmMDAwMAotI2RlZmluZSBDRkdfUENJOTA1NF9ERVZfRk4gICAweDA4MDAKLSNkZWZpbmUgQ0ZHX1BDSTkwNTRfSU9CQVNFICAgMHgwZWZmMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9ERVZfRk4JICAgICAweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfSU9CQVNFCSAgICAgMHgwZmZmMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTkwNTRfREVWX0ZOICAgMHgwODAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJOTA1NF9JT0JBU0UgICAweDBlZmYwMDAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RCNjQzNjAuaCBiL2luY2x1ZGUvY29uZmlncy9EQjY0MzYwLmgKaW5kZXggMGVkZDUxYS4uZGFlZDkzNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RCNjQzNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREI2NDM2MC5oCkBAIC0xMzIsMTMgKzEzMiwxMyBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IgICAgIC8qIGluaXRpYWxpemUgdGhlIGljYWNoZSBMMSAqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCiAKLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJEQjY0MzYwIgorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJEQjY0MzYwIgogI2RlZmluZSBDT05GSUdfSURFTlRfU1RSSU5HCSJNYXJ2ZWxsIERCNjQzNjAgKDEuMSkiCiAKLS8qI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIgKi8KLSN1bmRlZiBDRkdfSFVTSF9QQVJTRVIKKy8qI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCisjdW5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgbGV0IHlvdSBzZWxlY3Qgd2hhdCBzZXJpYWwgeW91IHdhbnQgdG8gdXNlCkBAIC0xNDYsNyArMTQ2LDcgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogdG8gdXNlIHRoZSBEVUFSVCwgdW5kZWYgQ09ORklHX01QU0MuCSBJZiB5b3UgaGF2ZSBoYWNrZWQgYSBzZXJpYWwKLSAqIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLCBjaGFuZ2UgdGhlIENGR19EVUFSVCBwb3J0IGZyb20gMQorICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMQogICogdG8gMCBiZWxvdy4KICAqCiAgKiB0byB1c2UgdGhlIE1QU0MsICNkZWZpbmUgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSB3aXJlZCB1cCBhbm90aGVyCkBAIC0yMTAsNyArMjEwLDcgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjdW5kZWYJQ09ORklHX0FMVElWRUMJCQkvKiB1bmRlZiB0byBkaXNhYmxlCQkqLwpAQCAtMjY1LDc0ICsyNjUsNzQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAk0MDAwMAkJLyogSTJDIHNwZWVkIGRlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAk0MDAwMAkJLyogSTJDIHNwZWVkIGRlZmF1bHQgKi8KIAotLyogI2RlZmluZSBDRkdfR1RfRFVBTF9DUFUJIGFsc28gZm9yIEpUQUcgZXZlbiB3aXRoIG9uZSBjcHUgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19HVF9EVUFMX0NQVQkgYWxzbyBmb3IgSlRBRyBldmVuIHdpdGggb25lIGNwdSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0vKiNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkgbWVtdGVzdCB3b3JrcyBvbgkqLwotLyojZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkgNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwotLyojZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN2MwMDAwMAkgNCAuLi4gMTI0IE1CIGluIERSQU0JKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkgbWVtdGVzdCB3b3JrcyBvbgkqLworLyojZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwCSA0IC4uLiAxMjQgTUIgaW4gRFJBTQkqLwogCiAvKgotI2RlZmluZSBDRkdfRFJBTV9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCiAgKiBEUkFNIHRlc3RzCi0gKiAgIENGR19EUkFNX1RFU1QgLSBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdGVzdHMuCisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUIC0gZW5hYmxlcyB0aGUgZm9sbG93aW5nIHRlc3RzLgogICoKLSAqICAgQ0ZHX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IGZvciBzaG9ydGVkIG9yIG9wZW4gZGF0YSBsaW5lcworICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IGZvciBzaG9ydGVkIG9yIG9wZW4gZGF0YSBsaW5lcwogICoJCQkgIEVudmlyb25tZW50IHZhcmlhYmxlICd0ZXN0X2RyYW1fZGF0YScgbXVzdCBiZQogICoJCQkgIHNldCB0byAneScuCi0gKiAgIENGR19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCB0byB2ZXJpZnkgdGhhdCBlYWNoIHdvcmQgaXMgdW5pcXVlbHkKKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQSAtIEVuYWJsZXMgdGVzdCB0byB2ZXJpZnkgdGhhdCBlYWNoIHdvcmQgaXMgdW5pcXVlbHkKICAqCQkJICBhZGRyZXNzYWJsZS4gRW52aXJvbm1lbnQgdmFyaWFibGUKICAqCQkJICAndGVzdF9kcmFtX2FkZHJlc3MnIG11c3QgYmUgc2V0IHRvICd5Jy4KLSAqICAgQ0ZHX0RSQU1fVEVTVF9XQUxLIC0gRW5hYmxlcyB0ZXN0IGEgNjQtYml0IHdhbGtpbmcgb25lcyBwYXR0ZXJuIHRlc3QuCisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsgLSBFbmFibGVzIHRlc3QgYSA2NC1iaXQgd2Fsa2luZyBvbmVzIHBhdHRlcm4gdGVzdC4KICAqCQkJICBUaGlzIHRlc3QgdGFrZXMgYWJvdXQgNiBtaW51dGVzIHRvIHRlc3QgNjQgTUIuCiAgKgkJCSAgRW52aXJvbm1lbnQgdmFyaWFibGUgJ3Rlc3RfZHJhbV93YWxrJyBtdXN0IGJlCiAgKgkJCSAgc2V0IHRvICd5Jy4KICAqLwotI2RlZmluZSBDRkdfRFJBTV9URVNUCi0jaWYgZGVmaW5lZChDRkdfRFJBTV9URVNUKQotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0vKiAjZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkgNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDdjMDAwMDAJLyogNCAuLi4gMTI0IE1CIGluIERSQU0gKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVF9EQVRBCi0jZGVmaW5lIENGR19EUkFNX1RFU1RfQUREUkVTUwotI2RlZmluZSBDRkdfRFJBTV9URVNUX1dBTEsKLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkgNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwCS8qIDQgLi4uIDEyNCBNQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1RfQUREUkVTUworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAogI3VuZGVmIENPTkZJR19ESVNQTEFZX01FTU1BUAkJLyogYXQgdGhlIGVuZCBvZiB0aGUgYm9vdHByb2Nlc3Mgc2hvdyB0aGUgbWVtb3J5IG1hcCAqLwotI3VuZGVmIENGR19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQJLyogc2hvdyBTUEQgY29udGVudCBkdXJpbmcgYm9vdCAqLworI3VuZGVmIENPTkZJR19TWVNfRElTUExBWV9ESU1NX1NQRF9DT05URU5UCS8qIHNob3cgU1BEIGNvbnRlbnQgZHVyaW5nIGJvb3QgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwNDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwNDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3IgZnJlcTogMW1zIHRpY2tzICovCiAvKnJvbmVuIC0gdGhpcyB0aGUgU3lzIGNsb2NrIChjcHUgYnVzLGludGVybmFsIGRyYW0gYW5kIFNEUkFNKSAqLwotI2RlZmluZSBDRkdfQlVTX0haCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAoQ1BVID0gNSpCdXMgPSA2NjZNSHopCQkqLwotI2RlZmluZSBDRkdfQlVTX0NMSwkJQ0ZHX0JVU19IWgorI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWgkJMTMzMDAwMDAwCS8qIDEzMyBNSHogKENQVSA9IDUqQnVzID0gNjY2TUh6KQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCQlDT05GSUdfU1lTX0JVU19IWgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfTE9QIDcgLyogZGVmaW5lIHRoZSBTRFJBTSBjeWNsZSBjb3VudCAqLwotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCA1MCAvKiBmb3IgNDAwTUhaIC0+IDUuMCBucywgZm9yIDEzM01IWiAtPiA3LjUwIG5zICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX0xPUCA3IC8qIGRlZmluZSB0aGUgU0RSQU0gY3ljbGUgY291bnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QIDUwIC8qIGZvciA0MDBNSFogLT4gNS4wIG5zLCBmb3IgMTMzTUhaIC0+IDcuNTAgbnMgKi8KIAogLypyb25lbiAtIHRoaXMgaXMgdGhlIFRjbGsgKE1WNjQzNjAgY29yZSkgKi8KLSNkZWZpbmUgQ0ZHX1RDTEsJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RDTEsJCTEzMzAwMDAwMAogCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR183NTBGWF9ISUQwCQkweDgwMDBjMDg0Ci0jZGVmaW5lIENGR183NTBGWF9ISUQxCQkweDU0ODAwMDAwCi0jZGVmaW5lIENGR183NTBGWF9ISUQyCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfNzUwRlhfSElEMAkJMHg4MDAwYzA4NAorI2RlZmluZSBDT05GSUdfU1lTXzc1MEZYX0hJRDEJCTB4NTQ4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU183NTBGWF9ISUQyCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMzQ1LDUxICszNDUsNTEgQEAKICAqLwogCiAvKgotICogV2hlbiBsb2NraW5nIGRhdGEgaW4gY2FjaGUgeW91IHNob3VsZCBwb2ludCB0aGUgQ0ZHX0lOSVRfUkFNX0FERFJFU1MKKyAqIFdoZW4gbG9ja2luZyBkYXRhIGluIGNhY2hlIHlvdSBzaG91bGQgcG9pbnQgdGhlIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkVTUwogICogVG8gYW4gdW51c2VkIG1lbW9yeSByZWdpb24uIFRoZSBzdGFjayB3aWxsIHJlbWFpbiBpbiBjYWNoZSB1bnRpbCBSQU0KICAqIGlzIGluaXRpYWxpemVkCiAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAjZGVmaW5lIFJFTE9DQVRFX0lOVEVSTkFMX1JBTV9BRERSCiAjaWZkZWYgUkVMT0NBVEVfSU5URVJOQUxfUkFNX0FERFIKLQkjZGVmaW5lIENGR19JTlRFUk5BTF9SQU1fQUREUgkweGY4MDAwMDAwCisJI2RlZmluZSBDT05GSUdfU1lTX0lOVEVSTkFMX1JBTV9BRERSCTB4ZjgwMDAwMDAKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKIC8qIER1bW1pZXMgZm9yIEJBVCA0LTcgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlICovCi0jZGVmaW5lIENGR19TRFJBTTJfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0zX0JBU0UJCTB4MzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNNF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0yX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTNfQkFTRQkJMHgzMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNNF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCTB4ZmZmMDAwMDAKIAotI2RlZmluZSBDRkdfREZMX0JPT1RDU19CQVNFCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERkxfQk9PVENTX0JBU0UJMHhmZjgwMDAwMAogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCQkvKiB3ZSB3aWxsIHVzZSB1cCB0byAyNTZNIG1lbW9yeSBmb3IgY2F1c2Ugd2UgYXJlIHNob3J0IG9mIEJBVFMqLwogCiAjZGVmaW5lIEJSSURHRV9SRUdfQkFTRV9CT09UTSAweGZiZTAwMDAwIC8qIHRoaXMgcGFyYW1hdGVycyBhcmUgdXNlZCB3aGVuIGJvb3RpbmcgdGhlIGxpbnV4IGtlcm5lbCAqLwogI2RlZmluZSBVQVJUX0JBU0VfQk9PVE0JICAgICAgMHhmYmIwMDAwMCAvKiBpbiBvcmRlciB0byBiZSBzeW5jIHdpdGggdGhlIGtlcm5lbCBwYXJhbWV0ZXJzLiAqLwogI2RlZmluZSBQQ0kwX0lPX0JBU0VfQk9PVE0gICAgMHhmZDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCQkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCQkweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCiAKIC8qIGFyZWFzIHRvIG1hcCBkaWZmZXJlbnQgdGhpbmdzIHdpdGggdGhlIEdUIGluIHBoeXNpY2FsIHNwYWNlICovCi0jZGVmaW5lIENGR19EUkFNX0JBTktTCQk0CisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQU5LUwkJNAogCiAvKiBXaGF0IHRvIHB1dCBpbiB0aGUgYmF0cy4gKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCiAKQEAgLTQwMywzMCArNDAzLDMwIEBACiAvKiBEYXRhIGZsYXNoIG9uIGV4dGVybmFsIGRldmljZSBtb2R1bGUJCSAgICAqLwogLyogQm9vdCBmbGFzaCBvbiBleHRlcm5hbCBkZXZpY2UgbW9kdWxlCQkgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KLSNkZWZpbmUJIENGR19EQjY0MzYwX1JFU0VUX0FERFIgMHgxNDAwMDAwMAkJCQkvKiBBZnRlciBwb3dlciBvbiBSZXNldCB0aGUgREI2NDM2MCBpcyBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUJIENPTkZJR19TWVNfREI2NDM2MF9SRVNFVF9BRERSIDB4MTQwMDAwMDAJCQkJLyogQWZ0ZXIgcG93ZXIgb24gUmVzZXQgdGhlIERCNjQzNjAgaXMgaGVyZSAqLwogCiAvKisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysqLwotI2RlZmluZSBDRkdfR1RfUkVHUwkJMHhmMTAwMDAwMAkJCQkvKiBHVCBSZWdpc3RlcnMgd2lsbCBiZSBtYXBwZWQgaGVyZSAqLwotI2RlZmluZSBDRkdfREVWX0JBU0UJCTB4ZmMwMDAwMDAJCQkJLyogR1QgRGV2aWNlcyBDUyBzdGFydCBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfUkVHUwkJMHhmMTAwMDAwMAkJCQkvKiBHVCBSZWdpc3RlcnMgd2lsbCBiZSBtYXBwZWQgaGVyZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVl9CQVNFCQkweGZjMDAwMDAwCQkJCS8qIEdUIERldmljZXMgQ1Mgc3RhcnQgaGVyZSAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NQQUNFCQlDRkdfREVWX0JBU0UJCQkJLyogREVWX0NTMCBkZXZpY2UgbW9kdWwgc3JhbSAqLwotI2RlZmluZSBDRkdfREVWMV9TUEFDRQkJKENGR19ERVYwX1NQQUNFICsgQ0ZHX0RFVjBfU0laRSkJLyogREVWX0NTMSBkZXZpY2UgbW9kdWwgcmVhbCB0aW1lIGNsb2NrIChydGMpICovCi0jZGVmaW5lIENGR19ERVYyX1NQQUNFCQkoQ0ZHX0RFVjFfU1BBQ0UgKyBDRkdfREVWMV9TSVpFKQkvKiBERVZfQ1MyIGRldmljZSBtb2R1bCBkb3ViZWwgdWFydCAoZHVhcnQpICovCi0jZGVmaW5lIENGR19ERVYzX1NQQUNFCQkoQ0ZHX0RFVjJfU1BBQ0UgKyBDRkdfREVWMl9TSVpFKQkvKiBERVZfQ1MzIGRldmljZSBtb2R1bCBsYXJnZSBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfU1BBQ0UJCUNPTkZJR19TWVNfREVWX0JBU0UJCQkJLyogREVWX0NTMCBkZXZpY2UgbW9kdWwgc3JhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjBfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjBfU0laRSkJLyogREVWX0NTMSBkZXZpY2UgbW9kdWwgcmVhbCB0aW1lIGNsb2NrIChydGMpICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TUEFDRQkJKENPTkZJR19TWVNfREVWMV9TUEFDRSArIENPTkZJR19TWVNfREVWMV9TSVpFKQkvKiBERVZfQ1MyIGRldmljZSBtb2R1bCBkb3ViZWwgdWFydCAoZHVhcnQpICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19TUEFDRQkJKENPTkZJR19TWVNfREVWMl9TUEFDRSArIENPTkZJR19TWVNfREVWMl9TSVpFKQkvKiBERVZfQ1MzIGRldmljZSBtb2R1bCBsYXJnZSBmbGFzaCAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCSBfOE0JCQkJCS8qIGRiNjQzNjAgc3JhbQkgQCAweGZjMDAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMV9TSVpFCQkgXzhNCQkJCQkvKiBkYjY0MzYwIHJ0YwkgQCAweGZjODAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBkYjY0MzYwIGR1YXJ0IEAgMHhmZDAwLjAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjNfU0laRQkJXzE2TQkJCQkJLyogZGI2NDM2MCBmbGFzaCBAIDB4ZmUwMC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TSVpFCQkgXzhNCQkJCQkvKiBkYjY0MzYwIHNyYW0JIEAgMHhmYzAwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NJWkUJCSBfOE0JCQkJCS8qIGRiNjQzNjAgcnRjCSBAIDB4ZmM4MC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBkYjY0MzYwIGR1YXJ0IEAgMHhmZDAwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NJWkUJCV8xNk0JCQkJCS8qIGRiNjQzNjAgZmxhc2ggQCAweGZlMDAuMDAwMCAqLwogLyorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKi8KIAogLyogUmVzZXQgdmFsdWVzIGZvciBQb3J0IGJlaGF2aW9yICg4Yml0LyAzMmJpdCwgZXRjLikgb25seSBjb3JyZWN0ZWQgYnkgZGV2aWNlIHdpZHRoICovCi0jZGVmaW5lIENGR19ERVYwX1BBUgkJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCAgc3JhbSAqLwotI2RlZmluZSBDRkdfREVWMV9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdAkgcnRjICovCi0jZGVmaW5lIENGR19ERVYyX1BBUgkJMHg4RkNGRkZGRgkJCQkvKiA4Qml0IGR1YXJ0ICovCi0jZGVmaW5lIENGR184QklUX0JPT1RfUEFSCTB4OEZDRkZGRkYJCQkJLyogOEJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfMzJCSVRfQk9PVF9QQVIJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfUEFSCQkweDhGRUZGRkZGCQkJCS8qIDMyQml0ICBzcmFtICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdAkgcnRjICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdCBkdWFydCAqLworI2RlZmluZSBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIJMHg4RkNGRkZGRgkJCQkvKiA4Qml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCBmbGFzaCAqLwogCiAJLyogICBjCSAgNCAgICBhICAgICAgOAkgICAgMgkgIDQgICAgMSAgICAgIGMJCSovCiAJLyogMzMgMjJ8MjIyMnwyMiAyMnwxMTEgMXwxMSAxMXwxIDEgIHwJICB8CQkqLwpAQCAtNDM2LDI4ICs0MzYsMjggQEAKIAogCiAvKiByb25lbiAtIHVwZGF0ZSBNUFAgQ29udHJvbCBNVjY0MzYwKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHgwMjIyMjIyMgotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMQkweDExMzMzMDExCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4NDA0MzExMTEKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzMJMHgwMDAwMDA0NAorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHgwMjIyMjIyMgorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEJMHgxMTMzMzAxMQorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIJMHg0MDQzMTExMQorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgwMDAwMDA0NAogCi0vKiMgZGVmaW5lIENGR19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkgMD1oaVoJMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KKy8qIyBkZWZpbmUgQ09ORklHX1NZU19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkgMD1oaVoJMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KIAogCi0jIGRlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgyYzYwMDAwMAkvKiAxMTExIDEwMDEgMDAwMCAxMTExIDExMDAgMDAwMCAwMDAwIDAwMDAqLworIyBkZWZpbmUgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTAkweDJjNjAwMDAwCS8qIDExMTEgMTAwMSAwMDAwIDExMTEgMTEwMCAwMDAwIDAwMDAgMDAwMCovCiAJCQkJCQkJLyogZ3BwWzMxXQkJZ3BwWzMwXQkJZ3BwWzI5XQkJZ3BwWzI4XSAqLwogCQkJCS8qIGdwcFsyN10JCQlncHBbMjRdKi8KIAkJCQkJCQkvKiBncHBbMTk6MTRdICovCiAKIC8qIHNldHVwIG5ldyBjb25maWdfdmFsdWUgZm9yIE1WNjQzNjAgRERSLVJBTSAhISAqLwotIyBkZWZpbmUgQ0ZHX1NEUkFNX0NPTkZJRwkweDU4MjAwNDAwCS8qIDB4MTQwMCAgY29waWVkIGZyb20gRGluazMyIGJ6dy4gVnhXb3JrcyovCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NPTkZJRwkweDU4MjAwNDAwCS8qIDB4MTQwMCAgY29waWVkIGZyb20gRGluazMyIGJ6dy4gVnhXb3JrcyovCiAKLSNkZWZpbmUgQ0ZHX0RVQVJUX0lPCQlDRkdfREVWMl9TUEFDRQotI2RlZmluZSBDRkdfRFVBUlRfQ0hBTgkJMQkJLyogY2hhbm5lbCB0byB1c2UgZm9yIGNvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjEKLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjIKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9JTwkJQ09ORklHX1NZU19ERVYyX1NQQUNFCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfQ0hBTgkJMQkJLyogY2hhbm5lbCB0byB1c2UgZm9yIGNvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0NIQU4xCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCi0jZGVmaW5lIFNSQU1fQkFTRQkJQ0ZHX0RFVjBfU1BBQ0UKKyNkZWZpbmUgU1JBTV9CQVNFCQlDT05GSUdfU1lTX0RFVjBfU1BBQ0UKICNkZWZpbmUgU1JBTV9TSVpFCQkweDAwMTAwMDAwCQkvKiAxIE1CIG9mIHNyYW0gKi8KIAogCkBAIC00NzYsMjkgKzQ3NiwyOSBAQAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCQkvKiByb25lbiAtIFN1cHBvcnQgZm9yIEludGVsIDgyNTU3LzgyNTU5LzgyNTU5RVIgY2hpcHMgKi8KIAogLyogUENJIE1FTU9SWSBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQogCi0jZGVmaW5lIENGR19QQ0kwXzBfTUVNX1NQQUNFCShDRkdfUENJMF9NRU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UJKENGR19QQ0kxX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UpCiAKIC8qIFBDSSBJL08gTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KIAotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRQkoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJCShDRkdfUENJMF9JT19CQVNFKSAvKiByb25lbiB3ZSB3YW50IHBoeT1idXMgMHgwMDAwMDAwMCAqLwotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRQkoQ0ZHX1BDSTFfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJCShDRkdfUENJMV9JT19CQVNFKSAvKiByb25lbiB3ZSB3YW50IHBoeT1idXMgMHgwMDAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCShDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSkgLyogcm9uZW4gd2Ugd2FudCBwaHk9YnVzIDB4MDAwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UpIC8qIHJvbmVuIHdlIHdhbnQgcGh5PWJ1cyAweDAwMDAwMDAwICovCiAKICNpZiBkZWZpbmVkIChDT05GSUdfNzUwQ1gpCi0jZGVmaW5lIENGR19QQ0lfSURTRUwgMHgwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BDSV9JRFNFTCAweDMwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MzAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIEJBVCBtYXBwaW5ncwpAQCAtNTEwLDI4ICs1MTAsMjggQEAKICAqLwogCiAvKiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSUJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgQ09ORklHX1NZU19JQkFUMFUKIAogLyogaW5pdCByYW0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzI1NksgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVICBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMjU2SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgIENPTkZJR19TWVNfSUJBVDFVCiAKIC8qIFBDSTAsIFBDSTEgaW4gb25lIEJBVCAqLwotI2RlZmluZSBDRkdfSUJBVDJMIEJBVExfTk9fQUNDRVNTCi0jZGVmaW5lIENGR19JQkFUMlUgQ0ZHX0RCQVQyVQotI2RlZmluZSBDRkdfREJBVDJMIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMIEJBVExfTk9fQUNDRVNTCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIENPTkZJR19TWVNfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEdUIHJlZ3MsIGJvb3Ryb20sIGFsbCB0aGUgZGV2aWNlcywgUENJIEkvTyAqLwotI2RlZmluZSBDRkdfSUJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgQ09ORklHX1NZU19JQkFUM1UKIAogLyogSTJDIGFkZHJlc3NlcyBmb3IgdGhlIHR3byBESU1NIFNQRCBjaGlwcyAqLwogI2RlZmluZSBESU1NMF9JMkNfQUREUgkweDU2CkBAIC01NDIsMzUgKzU0MiwzNSBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoODw8MjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0VYVFJBX0ZMQVNIX0RFVklDRQlERVZJQ0UzIC8qIGV4dHJhIGZsYXNoIGF0IGRldmljZSAzICovCi0jZGVmaW5lIENGR19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLwotI2RlZmluZSBDRkdfQk9PVF9GTEFTSF9XSURUSAkxCS8qIDggYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFCURFVklDRTMgLyogZXh0cmEgZmxhc2ggYXQgZGV2aWNlIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfRkxBU0hfV0lEVEgJMQkvKiA4IGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgICAweEZGRjc4MDAwIC8qIE1hcnZlbGwgOC1CaXQgQm9vdGZsYXNoIGxhc3Qgc2VjdG9yICovCi0vKiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLworLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTc4LDcgKzU3OCw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvbXBjNzR4eC5oIGZvciB0aGUgZGVmaW5lcyB1c2VkIGhlcmUKICAqLwogCi0jZGVmaW5lIENGR19MMgorI2RlZmluZSBDT05GSUdfU1lTX0wyCiAKIAogI2lmIGRlZmluZWQgKENPTkZJR183NTBDWCkgfHwgZGVmaW5lZCAoQ09ORklHXzc1MEZYKQpAQCAtNjAyLDYgKzYwMiw2IEBACiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQkJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCQkvKiBTb2Z0d2FyZSByZWJvb3QJCSAgICAqLwogCi0jZGVmaW5lIENGR19CT0FSRF9BU01fSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQJMQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RCNjQ0NjAuaCBiL2luY2x1ZGUvY29uZmlncy9EQjY0NDYwLmgKaW5kZXggMzA2MTVhNC4uNjA0ZmQ0NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RCNjQ0NjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREI2NDQ2MC5oCkBAIC03MCwxMyArNzAsMTMgQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SICAgICAvKiBpbml0aWFsaXplIHRoZSBpY2FjaGUgTDEgKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgogCi0jZGVmaW5lIENGR19CT0FSRF9OQU1FCQkiREI2NDQ2MCIKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9OQU1FCQkiREI2NDQ2MCIKICNkZWZpbmUgQ09ORklHX0lERU5UX1NUUklORwkiTWFydmVsbCBEQjY0NDYwICgxLjApIgogCi0vKiNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSICovCi0jdW5kZWYgQ0ZHX0hVU0hfUEFSU0VSCisvKiNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUiAqLworI3VuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKIAotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGxldCB5b3Ugc2VsZWN0IHdoYXQgc2VyaWFsIHlvdSB3YW50IHRvIHVzZQpAQCAtODQsNyArODQsNyBAQAogICoKICAqIHdoYXQgdG8gZG86CiAgKiB0byB1c2UgdGhlIERVQVJULCB1bmRlZiBDT05GSUdfTVBTQy4JIElmIHlvdSBoYXZlIGhhY2tlZCBhIHNlcmlhbAotICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ0ZHX0RVQVJUIHBvcnQgZnJvbSAxCisgKiBjYWJsZSBvbnRvIHRoZSBzZWNvbmQgRFVBUlQgY2hhbm5lbCwgY2hhbmdlIHRoZSBDT05GSUdfU1lTX0RVQVJUIHBvcnQgZnJvbSAxCiAgKiB0byAwIGJlbG93LgogICoKICAqIHRvIHVzZSB0aGUgTVBTQywgI2RlZmluZSBDT05GSUdfTVBTQy4gIElmIHlvdSBoYXZlIHdpcmVkIHVwIGFub3RoZXIKQEAgLTE0OCw3ICsxNDgsNyBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMAkvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KICN1bmRlZglDT05GSUdfQUxUSVZFQwkJCS8qIHVuZGVmIHRvIGRpc2FibGUJCSovCkBAIC0yMDMsNzQgKzIwMyw3NCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECTQwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdCAqLwogCi0vKiAjZGVmaW5lIENGR19HVF9EVUFMX0NQVQkgYWxzbyBmb3IgSlRBRyBldmVuIHdpdGggb25lIGNwdSAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0dUX0RVQUxfQ1BVCSBhbHNvIGZvciBKVEFHIGV2ZW4gd2l0aCBvbmUgY3B1ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLS8qI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCSBtZW10ZXN0IHdvcmtzIG9uCSovCi0vKiNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCSA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCi0vKiNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3YzAwMDAwCSA0IC4uLiAxMjQgTUIgaW4gRFJBTQkqLworLyojZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCSBtZW10ZXN0IHdvcmtzIG9uCSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkgNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworLyojZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdjMDAwMDAJIDQgLi4uIDEyNCBNQiBpbiBEUkFNCSovCiAKIC8qCi0jZGVmaW5lIENGR19EUkFNX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1QKICAqIERSQU0gdGVzdHMKLSAqICAgQ0ZHX0RSQU1fVEVTVCAtIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0ZXN0cy4KKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1QgLSBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdGVzdHMuCiAgKgotICogICBDRkdfRFJBTV9URVNUX0RBVEEgLSBFbmFibGVzIHRlc3QgZm9yIHNob3J0ZWQgb3Igb3BlbiBkYXRhIGxpbmVzCisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUX0RBVEEgLSBFbmFibGVzIHRlc3QgZm9yIHNob3J0ZWQgb3Igb3BlbiBkYXRhIGxpbmVzCiAgKgkJCSAgRW52aXJvbm1lbnQgdmFyaWFibGUgJ3Rlc3RfZHJhbV9kYXRhJyBtdXN0IGJlCiAgKgkJCSAgc2V0IHRvICd5Jy4KLSAqICAgQ0ZHX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IHRvIHZlcmlmeSB0aGF0IGVhY2ggd29yZCBpcyB1bmlxdWVseQorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IHRvIHZlcmlmeSB0aGF0IGVhY2ggd29yZCBpcyB1bmlxdWVseQogICoJCQkgIGFkZHJlc3NhYmxlLiBFbnZpcm9ubWVudCB2YXJpYWJsZQogICoJCQkgICd0ZXN0X2RyYW1fYWRkcmVzcycgbXVzdCBiZSBzZXQgdG8gJ3knLgotICogICBDRkdfRFJBTV9URVNUX1dBTEsgLSBFbmFibGVzIHRlc3QgYSA2NC1iaXQgd2Fsa2luZyBvbmVzIHBhdHRlcm4gdGVzdC4KKyAqICAgQ09ORklHX1NZU19EUkFNX1RFU1RfV0FMSyAtIEVuYWJsZXMgdGVzdCBhIDY0LWJpdCB3YWxraW5nIG9uZXMgcGF0dGVybiB0ZXN0LgogICoJCQkgIFRoaXMgdGVzdCB0YWtlcyBhYm91dCA2IG1pbnV0ZXMgdG8gdGVzdCA2NCBNQi4KICAqCQkJICBFbnZpcm9ubWVudCB2YXJpYWJsZSAndGVzdF9kcmFtX3dhbGsnIG11c3QgYmUKICAqCQkJICBzZXQgdG8gJ3knLgogICovCi0jZGVmaW5lIENGR19EUkFNX1RFU1QKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLS8qICNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCSA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN2MwMDAwMAkvKiA0IC4uLiAxMjQgTUIgaW4gRFJBTSAqLwotI2RlZmluZSBDRkdfRFJBTV9URVNUX0RBVEEKLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVF9BRERSRVNTCi0jZGVmaW5lIENGR19EUkFNX1RFU1RfV0FMSwotI2VuZGlmIC8qIENGR19EUkFNX1RFU1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1QKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworLyogI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCSA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdjMDAwMDAJLyogNCAuLi4gMTI0IE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVCAqLwogCiAjdW5kZWYgQ09ORklHX0RJU1BMQVlfTUVNTUFQCQkvKiBhdCB0aGUgZW5kIG9mIHRoZSBib290cHJvY2VzcyBzaG93IHRoZSBtZW1vcnkgbWFwICovCi0jdW5kZWYgQ0ZHX0RJU1BMQVlfRElNTV9TUERfQ09OVEVOVAkvKiBzaG93IFNQRCBjb250ZW50IGR1cmluZyBib290ICovCisjdW5kZWYgQ09ORklHX1NZU19ESVNQTEFZX0RJTU1fU1BEX0NPTlRFTlQJLyogc2hvdyBTUEQgY29udGVudCBkdXJpbmcgYm9vdCAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KIC8qcm9uZW4gLSB0aGlzIHRoZSBTeXMgY2xvY2sgKGNwdSBidXMsaW50ZXJuYWwgZHJhbSBhbmQgU0RSQU0pICovCi0jZGVmaW5lIENGR19CVVNfSFoJCTEzMzAwMDAwMAkvKiAxMzMgTUh6IChDUFUgPSA1KkJ1cyA9IDY2Nk1IeikJCSovCi0jZGVmaW5lIENGR19CVVNfQ0xLCQlDRkdfQlVTX0haCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAoQ1BVID0gNSpCdXMgPSA2NjZNSHopCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsJCUNPTkZJR19TWVNfQlVTX0haCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1AgNyAvKiBkZWZpbmUgdGhlIFNEUkFNIGN5Y2xlIGNvdW50ICovCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ1lDTEVfQ09VTlRfUk9QIDUwIC8qIGZvciAyMDBNSFogLT4gNS4wIG5zLCAxNjZNSFogLT4gNi4wLCAxMzNNSFogLT4gNy41MCBucyAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DWUNMRV9DT1VOVF9MT1AgNyAvKiBkZWZpbmUgdGhlIFNEUkFNIGN5Y2xlIGNvdW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NZQ0xFX0NPVU5UX1JPUCA1MCAvKiBmb3IgMjAwTUhaIC0+IDUuMCBucywgMTY2TUhaIC0+IDYuMCwgMTMzTUhaIC0+IDcuNTAgbnMgKi8KIAogLypyb25lbiAtIHRoaXMgaXMgdGhlIFRjbGsgKE1WNjQ0NjAgY29yZSkgKi8KLSNkZWZpbmUgQ0ZHX1RDTEsJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RDTEsJCTEzMzAwMDAwMAogCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR183NTBGWF9ISUQwCQkweDgwMDBjMDg0Ci0jZGVmaW5lIENGR183NTBGWF9ISUQxCQkweDU0ODAwMDAwCi0jZGVmaW5lIENGR183NTBGWF9ISUQyCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfNzUwRlhfSElEMAkJMHg4MDAwYzA4NAorI2RlZmluZSBDT05GSUdfU1lTXzc1MEZYX0hJRDEJCTB4NTQ4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU183NTBGWF9ISUQyCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjgzLDUxICsyODMsNTEgQEAKICAqLwogCiAvKgotICogV2hlbiBsb2NraW5nIGRhdGEgaW4gY2FjaGUgeW91IHNob3VsZCBwb2ludCB0aGUgQ0ZHX0lOSVRfUkFNX0FERFJFU1MKKyAqIFdoZW4gbG9ja2luZyBkYXRhIGluIGNhY2hlIHlvdSBzaG91bGQgcG9pbnQgdGhlIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUkVTUwogICogVG8gYW4gdW51c2VkIG1lbW9yeSByZWdpb24uIFRoZSBzdGFjayB3aWxsIHJlbWFpbiBpbiBjYWNoZSB1bnRpbCBSQU0KICAqIGlzIGluaXRpYWxpemVkCiAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwIC8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAjZGVmaW5lIFJFTE9DQVRFX0lOVEVSTkFMX1JBTV9BRERSCiAjaWZkZWYgUkVMT0NBVEVfSU5URVJOQUxfUkFNX0FERFIKLQkjZGVmaW5lIENGR19JTlRFUk5BTF9SQU1fQUREUgkweGY4MDAwMDAwCisJI2RlZmluZSBDT05GSUdfU1lTX0lOVEVSTkFMX1JBTV9BRERSCTB4ZjgwMDAwMDAKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKIC8qIER1bW1pZXMgZm9yIEJBVCA0LTcgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlICovCi0jZGVmaW5lIENGR19TRFJBTTJfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0zX0JBU0UJCTB4MzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNNF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9CQVNFCQkweDEwMDAwMDAwCS8qIGVhY2ggMjU2IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0yX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTNfQkFTRQkJMHgzMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNNF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCTB4ZmZmMDAwMDAKIAotI2RlZmluZSBDRkdfREZMX0JPT1RDU19CQVNFCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERkxfQk9PVENTX0JBU0UJMHhmZjgwMDAwMAogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCQkvKiB3ZSB3aWxsIHVzZSB1cCB0byAyNTZNIG1lbW9yeSBmb3IgY2F1c2Ugd2UgYXJlIHNob3J0IG9mIEJBVFMqLwogCiAjZGVmaW5lIEJSSURHRV9SRUdfQkFTRV9CT09UTSAweGZiZTAwMDAwIC8qIHRoaXMgcGFyYW1hdGVycyBhcmUgdXNlZCB3aGVuIGJvb3RpbmcgdGhlIGxpbnV4IGtlcm5lbCAqLwogI2RlZmluZSBVQVJUX0JBU0VfQk9PVE0JICAgICAgMHhmYmIwMDAwMCAvKiBpbiBvcmRlciB0byBiZSBzeW5jIHdpdGggdGhlIGtlcm5lbCBwYXJhbWV0ZXJzLiAqLwogI2RlZmluZSBQQ0kwX0lPX0JBU0VfQk9PVE0gICAgMHhmZDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCQkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCQkweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCiAKIC8qIGFyZWFzIHRvIG1hcCBkaWZmZXJlbnQgdGhpbmdzIHdpdGggdGhlIEdUIGluIHBoeXNpY2FsIHNwYWNlICovCi0jZGVmaW5lIENGR19EUkFNX0JBTktTCQk0CisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQU5LUwkJNAogCiAvKiBXaGF0IHRvIHB1dCBpbiB0aGUgYmF0cy4gKi8KLSNkZWZpbmUgQ0ZHX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCiAKQEAgLTM0MSwzMCArMzQxLDMwIEBACiAvKiBEYXRhIGZsYXNoIG9uIGV4dGVybmFsIGRldmljZSBtb2R1bGUJCSAgICAqLwogLyogQm9vdCBmbGFzaCBvbiBleHRlcm5hbCBkZXZpY2UgbW9kdWxlCQkgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KLSNkZWZpbmUJIENGR19EQjY0NDYwX1JFU0VUX0FERFIgMHgxNDAwMDAwMAkJCQkvKiBBZnRlciBwb3dlciBvbiBSZXNldCB0aGUgREI2NDQ2MCBpcyBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJCQkJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUJIENPTkZJR19TWVNfREI2NDQ2MF9SRVNFVF9BRERSIDB4MTQwMDAwMDAJCQkJLyogQWZ0ZXIgcG93ZXIgb24gUmVzZXQgdGhlIERCNjQ0NjAgaXMgaGVyZSAqLwogCiAvKisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysqLwotI2RlZmluZSBDRkdfR1RfUkVHUwkJMHhmMTAwMDAwMAkJCQkvKiBHVCBSZWdpc3RlcnMgd2lsbCBiZSBtYXBwZWQgaGVyZSAqLwotI2RlZmluZSBDRkdfREVWX0JBU0UJCTB4ZmMwMDAwMDAJCQkJLyogR1QgRGV2aWNlcyBDUyBzdGFydCBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfUkVHUwkJMHhmMTAwMDAwMAkJCQkvKiBHVCBSZWdpc3RlcnMgd2lsbCBiZSBtYXBwZWQgaGVyZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVl9CQVNFCQkweGZjMDAwMDAwCQkJCS8qIEdUIERldmljZXMgQ1Mgc3RhcnQgaGVyZSAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NQQUNFCQlDRkdfREVWX0JBU0UJCQkJLyogREVWX0NTMCBkZXZpY2UgbW9kdWwgc3JhbSAqLwotI2RlZmluZSBDRkdfREVWMV9TUEFDRQkJKENGR19ERVYwX1NQQUNFICsgQ0ZHX0RFVjBfU0laRSkJLyogREVWX0NTMSBkZXZpY2UgbW9kdWwgcmVhbCB0aW1lIGNsb2NrIChydGMpICovCi0jZGVmaW5lIENGR19ERVYyX1NQQUNFCQkoQ0ZHX0RFVjFfU1BBQ0UgKyBDRkdfREVWMV9TSVpFKQkvKiBERVZfQ1MyIGRldmljZSBtb2R1bCBkb3ViZWwgdWFydCAoZHVhcnQpICovCi0jZGVmaW5lIENGR19ERVYzX1NQQUNFCQkoQ0ZHX0RFVjJfU1BBQ0UgKyBDRkdfREVWMl9TSVpFKQkvKiBERVZfQ1MzIGRldmljZSBtb2R1bCBsYXJnZSBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfU1BBQ0UJCUNPTkZJR19TWVNfREVWX0JBU0UJCQkJLyogREVWX0NTMCBkZXZpY2UgbW9kdWwgc3JhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjBfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjBfU0laRSkJLyogREVWX0NTMSBkZXZpY2UgbW9kdWwgcmVhbCB0aW1lIGNsb2NrIChydGMpICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TUEFDRQkJKENPTkZJR19TWVNfREVWMV9TUEFDRSArIENPTkZJR19TWVNfREVWMV9TSVpFKQkvKiBERVZfQ1MyIGRldmljZSBtb2R1bCBkb3ViZWwgdWFydCAoZHVhcnQpICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19TUEFDRQkJKENPTkZJR19TWVNfREVWMl9TUEFDRSArIENPTkZJR19TWVNfREVWMl9TSVpFKQkvKiBERVZfQ1MzIGRldmljZSBtb2R1bCBsYXJnZSBmbGFzaCAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCSBfOE0JCQkJCS8qIGRiNjQ0NjAgc3JhbQkgQCAweGZjMDAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMV9TSVpFCQkgXzhNCQkJCQkvKiBkYjY0NDYwIHJ0YwkgQCAweGZjODAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBkYjY0NDYwIGR1YXJ0IEAgMHhmZDAwLjAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjNfU0laRQkJXzE2TQkJCQkJLyogZGI2NDQ2MCBmbGFzaCBAIDB4ZmUwMC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TSVpFCQkgXzhNCQkJCQkvKiBkYjY0NDYwIHNyYW0JIEAgMHhmYzAwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NJWkUJCSBfOE0JCQkJCS8qIGRiNjQ0NjAgcnRjCSBAIDB4ZmM4MC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TSVpFCQlfMTZNCQkJCQkvKiBkYjY0NDYwIGR1YXJ0IEAgMHhmZDAwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NJWkUJCV8xNk0JCQkJCS8qIGRiNjQ0NjAgZmxhc2ggQCAweGZlMDAuMDAwMCAqLwogLyorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKi8KIAogLyogUmVzZXQgdmFsdWVzIGZvciBQb3J0IGJlaGF2aW9yICg4Yml0LyAzMmJpdCwgZXRjLikgb25seSBjb3JyZWN0ZWQgYnkgZGV2aWNlIHdpZHRoICovCi0jZGVmaW5lIENGR19ERVYwX1BBUgkJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCAgc3JhbSAqLwotI2RlZmluZSBDRkdfREVWMV9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdAkgcnRjICovCi0jZGVmaW5lIENGR19ERVYyX1BBUgkJMHg4RkNGRkZGRgkJCQkvKiA4Qml0IGR1YXJ0ICovCi0jZGVmaW5lIENGR184QklUX0JPT1RfUEFSCTB4OEZDRkZGRkYJCQkJLyogOEJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfMzJCSVRfQk9PVF9QQVIJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfUEFSCQkweDhGRUZGRkZGCQkJCS8qIDMyQml0ICBzcmFtICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdAkgcnRjICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9QQVIJCTB4OEZDRkZGRkYJCQkJLyogOEJpdCBkdWFydCAqLworI2RlZmluZSBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIJMHg4RkNGRkZGRgkJCQkvKiA4Qml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfMzJCSVRfQk9PVF9QQVIJMHg4RkVGRkZGRgkJCQkvKiAzMkJpdCBmbGFzaCAqLwogCiAJLyogICBjCSAgNCAgICBhICAgICAgOAkgICAgMgkgIDQgICAgMSAgICAgIGMJCSovCiAJLyogMzMgMjJ8MjIyMnwyMiAyMnwxMTEgMXwxMSAxMXwxIDEgIHwJICB8CQkqLwpAQCAtMzc0LDI4ICszNzQsMjggQEAKIAogCiAvKiByb25lbiAtIHVwZGF0ZSBNUFAgQ29udHJvbCBNVjY0NDYwKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHgwMjIyMjIyMgotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMQkweDExMzMzMDExCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4NDA0MzExMTEKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzMJMHgwMDAwMDA0NAorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHgwMjIyMjIyMgorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEJMHgxMTMzMzAxMQorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIJMHg0MDQzMTExMQorI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgwMDAwMDA0NAogCi0vKiMgZGVmaW5lIENGR19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkgMD1oaVoJMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KKy8qIyBkZWZpbmUgQ09ORklHX1NZU19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkgMD1oaVoJMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KIAogCi0jIGRlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgyYzYwMDAwMAkvKiAxMTExIDEwMDEgMDAwMCAxMTExIDExMDAgMDAwMCAwMDAwIDAwMDAqLworIyBkZWZpbmUgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTAkweDJjNjAwMDAwCS8qIDExMTEgMTAwMSAwMDAwIDExMTEgMTEwMCAwMDAwIDAwMDAgMDAwMCovCiAJCQkJCQkJLyogZ3BwWzMxXQkJZ3BwWzMwXQkJZ3BwWzI5XQkJZ3BwWzI4XSAqLwogCQkJCS8qIGdwcFsyN10JCQlncHBbMjRdKi8KIAkJCQkJCQkvKiBncHBbMTk6MTRdICovCiAKIC8qIHNldHVwIG5ldyBjb25maWdfdmFsdWUgZm9yIE1WNjQ0NjAgRERSLVJBTSAhISAqLwotIyBkZWZpbmUgQ0ZHX1NEUkFNX0NPTkZJRwkweDU4MjAwNDAwCS8qIDB4MTQwMCAgY29waWVkIGZyb20gRGluazMyIGJ6dy4gVnhXb3JrcyovCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NPTkZJRwkweDU4MjAwNDAwCS8qIDB4MTQwMCAgY29waWVkIGZyb20gRGluazMyIGJ6dy4gVnhXb3JrcyovCiAKLSNkZWZpbmUgQ0ZHX0RVQVJUX0lPCQlDRkdfREVWMl9TUEFDRQotI2RlZmluZSBDRkdfRFVBUlRfQ0hBTgkJMQkJLyogY2hhbm5lbCB0byB1c2UgZm9yIGNvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjEKLSNkZWZpbmUgQ0ZHX0lOSVRfQ0hBTjIKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9JTwkJQ09ORklHX1NZU19ERVYyX1NQQUNFCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfQ0hBTgkJMQkJLyogY2hhbm5lbCB0byB1c2UgZm9yIGNvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0NIQU4xCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9DSEFOMgogCi0jZGVmaW5lIFNSQU1fQkFTRQkJQ0ZHX0RFVjBfU1BBQ0UKKyNkZWZpbmUgU1JBTV9CQVNFCQlDT05GSUdfU1lTX0RFVjBfU1BBQ0UKICNkZWZpbmUgU1JBTV9TSVpFCQkweDAwMTAwMDAwCQkvKiAxIE1CIG9mIHNyYW0gKi8KIAogCkBAIC00MTQsMjkgKzQxNCwyOSBAQAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCQkvKiByb25lbiAtIFN1cHBvcnQgZm9yIEludGVsIDgyNTU3LzgyNTU5LzgyNTU5RVIgY2hpcHMgKi8KIAogLyogUENJIE1FTU9SWSBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQogCi0jZGVmaW5lIENGR19QQ0kwXzBfTUVNX1NQQUNFCShDRkdfUENJMF9NRU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UJKENGR19QQ0kxX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UpCiAKIC8qIFBDSSBJL08gTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KIAotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRQkoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJCShDRkdfUENJMF9JT19CQVNFKSAvKiByb25lbiB3ZSB3YW50IHBoeT1idXMgMHgwMDAwMDAwMCAqLwotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRQkoQ0ZHX1BDSTFfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0VfUENJCShDRkdfUENJMV9JT19CQVNFKSAvKiByb25lbiB3ZSB3YW50IHBoeT1idXMgMHgwMDAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCShDT05GSUdfU1lTX1BDSTBfSU9fQkFTRSkgLyogcm9uZW4gd2Ugd2FudCBwaHk9YnVzIDB4MDAwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkoQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UpIC8qIHJvbmVuIHdlIHdhbnQgcGh5PWJ1cyAweDAwMDAwMDAwICovCiAKICNpZiBkZWZpbmVkIChDT05GSUdfNzUwQ1gpCi0jZGVmaW5lIENGR19QQ0lfSURTRUwgMHgwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BDSV9JRFNFTCAweDMwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lEU0VMIDB4MzAKICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIEJBVCBtYXBwaW5ncwpAQCAtNDQ4LDI4ICs0NDgsMjggQEAKICAqLwogCiAvKiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSUJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgQ09ORklHX1NZU19JQkFUMFUKIAogLyogaW5pdCByYW0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzI1NksgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVICBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMjU2SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgIENPTkZJR19TWVNfSUJBVDFVCiAKIC8qIFBDSTAsIFBDSTEgaW4gb25lIEJBVCAqLwotI2RlZmluZSBDRkdfSUJBVDJMIEJBVExfTk9fQUNDRVNTCi0jZGVmaW5lIENGR19JQkFUMlUgQ0ZHX0RCQVQyVQotI2RlZmluZSBDRkdfREJBVDJMIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMIEJBVExfTk9fQUNDRVNTCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIENPTkZJR19TWVNfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEdUIHJlZ3MsIGJvb3Ryb20sIGFsbCB0aGUgZGV2aWNlcywgUENJIEkvTyAqLwotI2RlZmluZSBDRkdfSUJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgQ09ORklHX1NZU19JQkFUM1UKIAogLyogSTJDIGFkZHJlc3NlcyBmb3IgdGhlIHR3byBESU1NIFNQRCBjaGlwcyAqLwogI2RlZmluZSBESU1NMF9JMkNfQUREUgkweDU2CkBAIC00ODAsMzUgKzQ4MCwzNSBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoODw8MjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0VYVFJBX0ZMQVNIX0RFVklDRQlERVZJQ0UzIC8qIGV4dHJhIGZsYXNoIGF0IGRldmljZSAzICovCi0jZGVmaW5lIENGR19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLwotI2RlZmluZSBDRkdfQk9PVF9GTEFTSF9XSURUSAkxCS8qIDggYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFCURFVklDRTMgLyogZXh0cmEgZmxhc2ggYXQgZGV2aWNlIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfRkxBU0hfV0lEVEgJMQkvKiA4IGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIExvY2sgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgICAweEZGRjc4MDAwIC8qIE1hcnZlbGwgOC1CaXQgQm9vdGZsYXNoIGxhc3Qgc2VjdG9yICovCi0vKiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLworLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTE2LDcgKzUxNiw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvbXBjNzR4eC5oIGZvciB0aGUgZGVmaW5lcyB1c2VkIGhlcmUKICAqLwogCi0jZGVmaW5lIENGR19MMgorI2RlZmluZSBDT05GSUdfU1lTX0wyCiAKIAogI2lmIGRlZmluZWQgKENPTkZJR183NTBDWCkgfHwgZGVmaW5lZCAoQ09ORklHXzc1MEZYKQpAQCAtNTQwLDYgKzU0MCw2IEBACiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQkJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCQkvKiBTb2Z0d2FyZSByZWJvb3QJCSAgICAqLwogCi0jZGVmaW5lIENGR19CT0FSRF9BU01fSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQJMQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RLMUMyMC5oIGIvaW5jbHVkZS9jb25maWdzL0RLMUMyMC5oCmluZGV4IDNlMWZjMGEuLjZmZGM1NjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ESzFDMjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREsxQzIwLmgKQEAgLTQwLDcgKzQwLDcgQEAKICNlbGlmCWRlZmluZWQoQ09ORklHX05JT1NfU1RBTkRBUkRfMzIpCiAjaW5jbHVkZSA8Y29uZmlncy9ESzFDMjBfc3RhbmRhcmRfMzIuaD4KICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgcmlnaHQgTklPUyBDUFUgY29uZmlndXJhdGlvbgorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCByaWdodCBOSU9TIENQVSBjb25maWd1cmF0aW9uCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ4LDI2ICs0OCwyNiBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX05JT1MJCTEJCS8qIE5JT1MtMzIgY29yZQkJKi8KICNkZWZpbmUJQ09ORklHX0RLMUMyMAkJMQkJLyogQ3ljbG9uZSBESy0xQzIwIGJvYXJkKi8KLSNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQlDRkdfTklPU19DUFVfQ0xLLyogNTAgTUh6IGNvcmUgY2xvY2sJKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkJLyogMSBtc2VjIHRpbWUgdGljawkqLwotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgorI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCUNPTkZJR19TWVNfTklPU19DUFVfQ0xLLyogNTAgTUh6IGNvcmUgY2xvY2sJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIDEgbXNlYyB0aW1lIHRpY2sJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCiAjZGVmaW5lCUNPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBlbmFibGUgZWFybHkgYm9hcmQtc3BlYy4gaW5pdCovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQVNFIEFERFJFU1NFUyAvIFNJWkUgKEZsYXNoLCBTUkFNLCBTRFJBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9TRFJBTV9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fU0laRSAhPSAwKQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfTklPU19DUFVfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJQ0ZHX05JT1NfQ1BVX1NEUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgU0RSQU0gaW4gTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGFueSBTRFJBTSBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCUNGR19OSU9TX0NQVV9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkJQ0ZHX05JT1NfQ1BVX1NSQU1fU0laRQotI2RlZmluZSBDRkdfVkVDVF9CQVNFCQlDRkdfTklPU19DUFVfVkVDX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1ZFQ1RfQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUVNT1JZIE9SR0FOSVpBVElPTiAtIEZvciB0aGUgbW9zdCBwYXJ0LCB5b3UgY2FuIHB1dCB0aGluZ3MgcHJldHR5CkBAIC04MCwzOSArODAsMzkgQEAKICAqCS1HbG9iYWwgZGF0YSBpcyBwbGFjZWQgYmVsb3cgdGhlIGhlYXAuCiAgKgktVGhlIHN0YWNrIGlzIHBsYWNlZCBiZWxvdyBnbG9iYWwgZGF0YSAoJmdyb3dzIGRvd24pLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NT05JVE9SX0JBU0UgLSBDRkdfTUFMTE9DX0xFTikKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX01BTExPQ19CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQCQlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfU1lTX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX01BTExPQ19CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1AJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCAoQU0yOUxWMDY1RCkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9GTEFTSF9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfTklPU19DUFVfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQlDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZQkqLwogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGFueSBGbGFzaCBtZW1vcnkgaW4gTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGFueSBGbGFzaCBtZW1vcnkgaW4gTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVOVklST05NRU5UCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUgIT0gMCkKIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEJCS8qIEVudmlyb25tZW50IGluIGZsYXNoICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ0ZHX0ZMQVNIX0JBU0UJLyogTWVtIGFkZHIgb2YgZW52CSovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIE1lbSBhZGRyIG9mIGVudgkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCSg2NCAqIDEwMjQpCS8qIDY0IEtCeXRlICgxIHNlY3RvcikJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJCQkvKiBTZXJpYWwvZXRoIGNoYW5nZSBPayAqLwogCkBAIC0xMjMsMTIwICsxMjMsMTIwIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ09OU09MRQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUyAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUyAhPSAwKQogCi0jZGVmaW5lIENGR19OSU9TX0NPTlNPTEUJQ0ZHX05JT1NfQ1BVX1VBUlQwIC8qIDFzdCBVQVJUIGlzIENvbnMuICovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDAgLyogMXN0IFVBUlQgaXMgQ29ucy4gKi8KIAotI2lmCShDRkdfTklPU19DUFVfVUFSVDBfQlIgIT0gMCkKLSNkZWZpbmUgQ0ZHX05JT1NfRklYRURCQVVECTEJCSAgIC8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCi0jZGVmaW5lIENPTkZJR19CQVVEUkFURQkJQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfQlIgIT0gMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0ZJWEVEQkFVRAkxCQkgICAvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLworI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfQlIKICNlbHNlCi0jdW5kZWYJQ0ZHX05JT1NfRklYRURCQVVECisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0ZJWEVEQkFVRAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFVBUlQgaW4gTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGF0IGxlYXN0IG9uZSBVQVJUIGluIE5JT1MgQ1BVIGNvbmZpZwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUSU1FUiBGT1IgVElNRUJBU0UgLS0gTmlvcyBkb2Vzbid0IGhhdmUgdGhlIGVxdWl2YWxlbnQgb2YgcHBjICBQSVQsCiAgKiBzbyBhbiBhdmFsb24gYnVzIHRpbWVyIGlzIHJlcXVpcmVkLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSX05VTVMgIT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUl9OVU1TICE9IDApCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSID09IDApCiAKLSNkZWZpbmUgQ0ZHX05JT1NfVE1SQkFTRQlDRkdfTklPU19DUFVfVElNRVIwIC8qIFRJTUVSMCBhcyB0aWNrCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUklSUQkJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9JUlEKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUkJBU0UJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAgLyogVElNRVIwIGFzIHRpY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUklSUQkJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfSVJRCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMF9GUCA9PSAxKQkJICAgIC8qIGZpeGVkIHBlcmlvZCAqLworI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9GUCA9PSAxKQkJICAgIC8qIGZpeGVkIHBlcmlvZCAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUjBfUEVSID49IENGR19IWikKLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCShDRkdfTklPU19DUFVfVElNRVIwX1BFUiAvIENGR19IWikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSID49IENPTkZJR19TWVNfSFopCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJNUwkJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX1BFUiAvIENPTkZJR19TWVNfSFopCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHVzZSBhIHRpbWVyIHBlcmlvZGUgZ3JlYXRlciB0aGFuIENGR19IWgorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byB1c2UgYSB0aW1lciBwZXJpb2RlIGdyZWF0ZXIgdGhhbiBDT05GSUdfU1lTX0haCiAjZW5kaWYKIAotI3VuZGVmCUNGR19OSU9TX1RNUkNOVAkvKiBubyBwcmVsb2FkYWJsZSBjb3VudGVyIHZhbHVlICovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX1RNUkNOVAkvKiBubyBwcmVsb2FkYWJsZSBjb3VudGVyIHZhbHVlICovCiAKLSNlbGlmCShDRkdfTklPU19DUFVfVElNRVIwX0ZQID09IDApCQkgICAgLyogdmFyaWFibGUgcGVyaW9kICovCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAgPT0gMCkJCSAgICAvKiB2YXJpYWJsZSBwZXJpb2QgKi8KIAotI2lmCShDRkdfSFogPD0gMTAwMCkKLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCSgxMDAwIC8gQ0ZHX0haKQorI2lmCShDT05GSUdfU1lTX0haIDw9IDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJNUwkJKDEwMDAgLyBDT05GSUdfU1lTX0haKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzb3JyeSwgQ0ZHX0haIGhhdmUgdG8gYmUgbGVzcyB0aGFuIDEwMDAKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc29ycnksIENPTkZJR19TWVNfSFogaGF2ZSB0byBiZSBsZXNzIHRoYW4gMTAwMAogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX05JT1NfVE1SQ05UCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENGR19IWikKKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX1RNUkNOVAkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBDT05GSUdfU1lTX0haKQogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIGRlZmluZSBDRkdfTklPU19DUFVfVElNRVIwX0ZQIGNvcnJlY3QKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gZGVmaW5lIENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0ZQIGNvcnJlY3QKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMSkKIAotI2RlZmluZSBDRkdfTklPU19UTVJCQVNFCUNGR19OSU9TX0NQVV9USU1FUjEgLyogVElNRVIxIGFzIHRpY2sJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SSVJRCQlDRkdfTklPU19DUFVfVElNRVIxX0lSUQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMSAvKiBUSU1FUjEgYXMgdGljawkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SSVJRCQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9JUlEKIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIxX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9QRVIgPj0gQ0ZHX0haKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKENGR19OSU9TX0NQVV9USU1FUjFfUEVSIC8gQ0ZHX0haKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9QRVIgPj0gQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfUEVSIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ0ZHX0haCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHVzZSBhIHRpbWVyIHBlcmlvZGUgZ3JlYXRlciB0aGFuIENPTkZJR19TWVNfSFoKICNlbmRpZgogCi0jdW5kZWYJQ0ZHX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KIAotI2VsaWYJKENGR19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMCkJCSAgICAvKiB2YXJpYWJsZSBwZXJpb2QgKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLwogCi0jaWYJKENGR19IWiA8PSAxMDAwKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKDEwMDAgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfSFogPD0gMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoMTAwMCAvIENPTkZJR19TWVNfSFopCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNvcnJ5LCBDRkdfSFogaGF2ZSB0byBiZSBsZXNzIHRoYW4gMTAwMAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzb3JyeSwgQ09ORklHX1NZU19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ0ZHX0haKQorI2RlZmluZQlDT05GSUdfU1lTX05JT1NfVE1SQ05UCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENPTkZJR19TWVNfSFopCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gZGVmaW5lIENGR19OSU9TX0NQVV9USU1FUjFfRlAgY29ycmVjdAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfRlAgY29ycmVjdAogI2VuZGlmCiAKLSNlbmRpZgkvKiBDRkdfTklPU19DUFVfVElDS19USU1FUiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUiAqLwogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGF0IGxlYXN0IG9uZSBUSU1FUiBpbiBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFRJTUVSIGluIE5JT1MgQ1BVIGNvbmZpZwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFdGhlcm5ldAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTl9OVU1TID09IDEpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOX05VTVMgPT0gMSkKIAotI2lmCShDRkdfTklPU19DUFVfTEFOMF9UWVBFID09IDApCQkvKiBMQU45MUMxMTEJCSovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9UWVBFID09IDApCQkvKiBMQU45MUMxMTEJCSovCiAKICNkZWZpbmUJQ09ORklHX0RSSVZFUl9TTUM5MTExMQkJCS8qIFVzaW5nIFNNQzkxYzExMQkqLwogI3VuZGVmCUNPTkZJR19TTUM5MTExMV9FWFRfUEhZCQkJLyogSW50ZXJuYWwgUEhZCQkqLwotI2RlZmluZQlDT05GSUdfU01DOTExMTFfQkFTRQkoQ0ZHX05JT1NfQ1BVX0xBTjBfQkFTRSArIENGR19OSU9TX0NQVV9MQU4wX09GRlMpCisjZGVmaW5lCUNPTkZJR19TTUM5MTExMV9CQVNFCShDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfQkFTRSArIENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9PRkZTKQogCi0jaWYJKENGR19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CVVNXID09IDMyKQogI2RlZmluZQlDT05GSUdfU01DX1VTRV8zMl9CSVQJMQogI2Vsc2UJLyogbm8gKi8KICN1bmRlZglDT05GSUdfU01DX1VTRV8zMl9CSVQKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfVFlQRSA9PSAxKQkJLyogQ1M4OTAwQQkJKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfVFlQRSA9PSAxKQkJLyogQ1M4OTAwQQkJKi8KIAogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAkvKiAhISEgQ1M4OTAwIGlzIF9fbm90X18gdGVzdGVkIG9uIE5JT1MgISEhICovCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZQlDT05GSUdfRFJJVkVSX0NTODkwMAkJCS8qIFVzaW5nIENTODkwMAkJKi8KLSNkZWZpbmUJQ1M4OTAwX0JBU0UJCShDRkdfTklPU19DUFVfTEFOMF9CQVNFICsgQ0ZHX05JT1NfQ1BVX0xBTjBfT0ZGUykKKyNkZWZpbmUJQ1M4OTAwX0JBU0UJCShDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfQkFTRSArIENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9PRkZTKQogCi0jaWYJKENGR19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CVVNXID09IDMyKQogI3VuZGVmCUNTODkwMF9CVVMxNgogI2RlZmluZQlDUzg5MDBfQlVTMzIJCTEKICNlbHNlCS8qIG5vICovCkBAIC0yNDUsNyArMjQ1LDcgQEAKICNlbmRpZgogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IGludmFsaWQgTEFOMCBjaGlwIHR5cGUsIGNoZWNrIHlvdXIgTklPUyBDUFUgY29uZmlnCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IGludmFsaWQgTEFOMCBjaGlwIHR5cGUsIGNoZWNrIHlvdXIgTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRVRIQUREUgkJMDg6MDA6M2U6MjY6MGE6NWIKQEAgLTI1NCw2NCArMjU0LDY0IEBACiAjZGVmaW5lIENPTkZJR19TRVJWRVJJUAkJMTkyLjE2OC4yLjE2CiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAganVzdCBvbmUgTEFOIG9ubHkgb3IgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAganVzdCBvbmUgTEFOIG9ubHkgb3IgZXhwYW5kIHlvdXIgY29uZmlnLmgKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1RBVFVTIExFRHMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9QSU9fTlVNUyAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1BJT19OVU1TICE9IDApCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDApCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzdGF0dXMgTEVEcyBhdCBQSU8wIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzAgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDEpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDEpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzdGF0dXMgTEVEcyBhdCBQSU8xIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzEgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDIpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDIpCiAKLSNkZWZpbmUJU1RBVFVTX0xFRF9CQVNFCQkJQ0ZHX05JT1NfQ1BVX1BJTzIKLSNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ0ZHX05JT1NfQ1BVX1BJTzJfQklUUworI2RlZmluZQlTVEFUVVNfTEVEX0JBU0UJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIKKyNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0JJVFMKICNkZWZpbmUJU1RBVFVTX0xFRF9BQ1RJVkUJCTEgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9XUk9OTFkJCTEKICNlbHNlCiAjdW5kZWYJU1RBVFVTX0xFRF9XUk9OTFkKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzMgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPMyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzQgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzUgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzYgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzcgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzggbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzkgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDRkdfTklPU19DUFVfTEVEX1BJTyBpbiByaWdodCBjYXNlCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gaW4gcmlnaHQgY2FzZQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1NUQVRVU19MRUQJCTEgLyogZW5hYmxlIHN0YXR1cyBsZWQgZHJpdmVyICovCkBAIC0zMTksODkgKzMxOSw4OSBAQAogI2RlZmluZQlTVEFUVVNfTEVEX0JJVAkJCSgxIDw8IDApCS8qIExFRFswXSAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1NUQVRFCQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVF9TVEFURQkJU1RBVFVTX0xFRF9PRkYKLSNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDRkdfSFogLyAxMCkJLyogY2EuIDEgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDT05GSUdfU1lTX0haIC8gMTApCS8qIGNhLiAxIEh6ICovCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVAkJCTAJCS8qIGJvb3QgTEVEICovCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQxCQkJKDEgPDwgMSkJLyogTEVEWzFdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUxCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDEJCShDRkdfSFogLyA1MCkJLyogY2EuIDUgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QxCQkoQ09ORklHX1NZU19IWiAvIDUwKQkvKiBjYS4gNSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1JFRAkJCTEJCS8qIGZhaWwgTEVEICovCiAjZW5kaWYKIAogI2lmCShTVEFUVVNfTEVEX0JJVFMgPiAyKQogI2RlZmluZQlTVEFUVVNfTEVEX0JJVDIJCQkoMSA8PCAyKQkvKiBMRURbMl0gKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9TVEFURTIJCVNUQVRVU19MRURfT0ZGCi0jZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMgkJKENGR19IWiAvIDEwKQkvKiBjYS4gMSBIeiAqLworI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDIJCShDT05GSUdfU1lTX0haIC8gMTApCS8qIGNhLiAxIEh6ICovCiAjZGVmaW5lCVNUQVRVU19MRURfWUVMTE9XCQkyCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMykKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQzCQkJKDEgPDwgMykJLyogTEVEWzNdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUzCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDMJCShDRkdfSFogLyAxMCkJLyogY2EuIDEgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QzCQkoQ09ORklHX1NZU19IWiAvIDEwKQkvKiBjYS4gMSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX0dSRUVOCQkzCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNkZWZpbmUJU1RBVFVTX0xFRF9QQVIJCQkxIC8qIG1ha2VzIHN0YXR1c19sZWQuaCBoYXBweSAqLwogCi0jZW5kaWYJLyogQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0VWRU4gU0VHTUVOVCBMRUQgRElTUExBWQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICE9IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMgIT0gMCkKIAotI2lmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDApCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDApCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSAxKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDEpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSAyKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDIpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPMiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSAzKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDMpCiAKLSNkZWZpbmUJU0VWRU5TRUdfQkFTRQkJCUNGR19OSU9TX0NQVV9QSU8zCi0jZGVmaW5lCVNFVkVOU0VHX0JJVFMJCQlDRkdfTklPU19DUFVfUElPM19CSVRTCisjZGVmaW5lCVNFVkVOU0VHX0JBU0UJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMKKyNkZWZpbmUJU0VWRU5TRUdfQklUUwkJCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19CSVRTCiAjZGVmaW5lCVNFVkVOU0VHX0FDVElWRQkJCTAgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9QSU8zX1RZUEUgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX1RZUEUgPT0gMSkKICNkZWZpbmUJU0VWRU5TRUdfV1JPTkxZCQkJMQogI2Vsc2UKICN1bmRlZglTRVZFTlNFR19XUk9OTFkKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA0KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDQpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA1KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDUpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA2KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDYpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA3KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDcpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA4KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDgpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTyA9PSA5KQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDkpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzZXZlbiBzZWdtZW50IGRpc3BsYXkgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPIGluIHJpZ2h0IGNhc2UKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0IENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPIGluIHJpZ2h0IGNhc2UKICNlbmRpZgogCiAjZGVmaW5lCUNPTkZJR19TRVZFTlNFRwkJCTEgLyogZW5hYmxlIHNldmVuIHNlZ21lbnQgbGVkIGRyaXZlciAqLwpAQCAtNDM1LDcgKzQzNSw3IEBACiAjZGVmaW5lCVNFVkVOU0VHX0RJR0lUX0cJCSgxIDw8IDApIC8qIGJpdCAwIGlzIHNlZ21lbnQgRyAqLwogI2RlZmluZQlTRVZFTlNFR19ESUdJVF9EUAkJKDEgPDwgNykgLyogYml0IDcgaXMgZGVjaW1hbCBwb2ludCAqLwogCi0jZW5kaWYJLyogQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQVNNSSAtIEFjdGl2ZSBTZXJpYWwgTWVtb3J5IEludGVyZmFjZS4KQEAgLTQ0NCw3ICs0NDQsNyBAQAogICogaXMgbG9hZGVkIHZpYSBKVEFHIG9yIEFTTUkuIFBsZWFzZSBzZWUgZG9jL1JFQURNRS5kazFjMjAgZm9yIGRldGFpbHMuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfTklPU19BU01JCQkJICAgLyogRW5hYmxlIEFTTUkJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfQVNNSUJBU0UJQ0ZHX05JT1NfQ1BVX0FTTUkwIC8qIEFTTUkgYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19BU01JQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUkwIC8qIEFTTUkgYmFzZSBhZGRyZXNzCSovCiAKIAogLyoKQEAgLTQ4NSwyMSArNDg1LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9JREUpCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAkJCS8qIEltcGxlbWVudCBpZF9wcmVpbml0CSovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCQkvKiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJCS8qIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCQkvKiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHgwMDkyMGEwMAkvKiBJREUvQVRBIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAkJLyogSURFMCBvZmZzZXQJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDQwCQkvKiBEYXRhIElPIG9mZnNldAkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDQwCQkvKiBSZWdpc3RlciBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAkJLyogQWx0ZXJuYXRlIHJlZyBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAkJLyogV2lkdGggYmV0d2l4IGFkZHJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweDAwOTIwYTAwCS8qIElERS9BVEEgYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAkJLyogSURFMCBvZmZzZXQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDA0MAkJLyogRGF0YSBJTyBvZmZzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwNDAJCS8qIFJlZ2lzdGVyIG9mZnNldAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAkJLyogQWx0ZXJuYXRlIHJlZyBvZmZzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFICAgICAgICAgIDQJCS8qIFdpZHRoIGJldHdpeCBhZGRycwkqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogCiAvKiBCb2FyZC1zcGVjaWZpYyBjZiByZWdzICovCi0jZGVmaW5lIENGR19DRl9QUkVTRU5UCQkweDAwOTIwOWIwCS8qIENGIFByZXNlbnQgUElPIGJhc2UJKi8KLSNkZWZpbmUgQ0ZHX0NGX1BPV0VSCQkweDAwOTIwOWMwCS8qIENGIFBvd2VyIEZFVCBQSU8gYmFzZSovCi0jZGVmaW5lIENGR19DRl9BVEFTRUwJCTB4MDA5MjA5ZDAJLyogQ0YgQVRBU0VMIFBJTyBiYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0ZfUFJFU0VOVAkJMHgwMDkyMDliMAkvKiBDRiBQcmVzZW50IFBJTyBiYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0ZfUE9XRVIJCTB4MDA5MjA5YzAJLyogQ0YgUG93ZXIgRkVUIFBJTyBiYXNlKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DRl9BVEFTRUwJCTB4MDA5MjA5ZDAJLyogQ0YgQVRBU0VMIFBJTyBiYXNlCSovCiAKICNlbmRpZgogCkBAIC01MTMsMjUgKzUxMywyNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiREsxQzIwID4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkRLMUMyMCA+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jaWYJKENGR19TUkFNX1NJWkUgIT0gMCkKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJQ0ZHX1NSQU1fQkFTRQkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2lmCShDT05GSUdfU1lTX1NSQU1fU0laRSAhPSAwKQorI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX1NZU19TUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KICNlbHNlCi0jdW5kZWYJQ0ZHX0xPQURfQUREUgorI3VuZGVmCUNPTkZJR19TWVNfTE9BRF9BRERSCiAjZW5kaWYKIAotI2lmCShDRkdfU0RSQU1fU0laRSAhPSAwKQotI2RlZmluZQlDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRQkvKiBTRFJBTSB0aWwgc3RhY2sgYXJlYSAqLwotI2RlZmluZQlDRkdfTUVNVEVTVF9FTkQJCShDRkdfSU5JVF9TUCAtICgxMDI0ICogMTAyNCkpIC8qIDFNQiBzdGFjayAqLworI2lmCShDT05GSUdfU1lTX1NEUkFNX1NJWkUgIT0gMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBTRFJBTSB0aWwgc3RhY2sgYXJlYSAqLworI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19JTklUX1NQIC0gKDEwMjQgKiAxMDI0KSkgLyogMU1CIHN0YWNrICovCiAjZWxzZQotI3VuZGVmCUNGR19NRU1URVNUX1NUQVJUCi0jdW5kZWYJQ0ZHX01FTVRFU1RfRU5ECisjdW5kZWYJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCisjdW5kZWYJQ09ORklHX1NZU19NRU1URVNUX0VORAogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvREsxQzIwX3NhZmVfMzIuaCBiL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc2FmZV8zMi5oCmluZGV4IGE0ODNlODcuLjg2ZTQ4NjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc2FmZV8zMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc2FmZV8zMi5oCkBAIC0yOSw2ICsyOSw2IEBACiAgKgogICogISEhIFRPRE8gISEhIFRPRE8gISEhCiAgKi8KLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBESzFDMjBfc2FmZV8zMiBoYXZlIHRvIGJlIGRlZmluZWQgKHVzZSBESzFDMjBfc3RhbmRhcmRfMzIgYXMgdGVtcGxhdGUpCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IERLMUMyMF9zYWZlXzMyIGhhdmUgdG8gYmUgZGVmaW5lZCAodXNlIERLMUMyMF9zdGFuZGFyZF8zMiBhcyB0ZW1wbGF0ZSkKIAogI2VuZGlmCS8qIF9fQ09ORklHX0RLMUMyMF9TQUZFXzMyX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc3RhbmRhcmRfMzIuaCBiL2luY2x1ZGUvY29uZmlncy9ESzFDMjBfc3RhbmRhcmRfMzIuaAppbmRleCBlZDA4MTIxLi5jMDhhYWFlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvREsxQzIwX3N0YW5kYXJkXzMyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RLMUMyMF9zdGFuZGFyZF8zMi5oCkBAIC0zMCwyNTAgKzMwLDI1MCBAQAogICogSGVyZSB3ZSBtdXN0IGRlZmluZSBDUFUgZGVwZW5kZW5jaWVzLiBBbnkgdW5zdXBwb3J0ZWQgb3B0aW9uIGhhdmUgdG8KICAqIGJlIGRlZmluZWQgd2l0aCB6ZXJvLCBleGFtcGxlIENQVSB3aXRob3V0IGRhdGEgY2FjaGUgLyBPQ0k6CiAgKgotICoJI2RlZmluZQlDRkdfTklPU19DUFVfSUNBQ0hFCTQwOTYKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0RDQUNIRQkwCi0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9PQ0lfQkFTRQkwCi0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9PQ0lfU0laRQkwCisgKgkjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSUNBQ0hFCTQwOTYKKyAqCSNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9EQ0FDSEUJMAorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9CQVNFCTAKKyAqCSNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQkwCiAgKi8KIAogLyogQ1BVIGNvcmUgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NMSwk1MDAwMDAwMAkvKiBOSU9TIENQVSBjbG9jawkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfSUNBQ0hFCSg0ICogMTAyNCkJLyogaW5zdHJ1Y3Rpb24gY2FjaGUJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0RDQUNIRQkoNCAqIDEwMjQpCS8qIGRhdGEgY2FjaGUJCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SRUdfTlVNUwkyNTYJCS8qIG51bWJlciBvZiByZWdpc3RlcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTVVMCTAJCS8qIDE2eDE2IE1VTDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DTEsJNTAwMDAwMDAJLyogTklPUyBDUFUgY2xvY2sJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJKDQgKiAxMDI0KQkvKiBpbnN0cnVjdGlvbiBjYWNoZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkoNCAqIDEwMjQpCS8qIGRhdGEgY2FjaGUJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUkVHX05VTVMJMjU2CQkvKiBudW1iZXIgb2YgcmVnaXN0ZXIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9NVUwJMAkJLyogMTZ4MTYgTVVMOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTVNURVAJMQkJLyogMTZ4MTYgTVNURVA6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTVNURVAJMQkJLyogMTZ4MTYgTVNURVA6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TVEFDSwkweDAwOGZmZjAwCS8qIHN0YWNrIHRvcAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9WRUNfQkFTRQkweDAwOGZmZjAwCS8qIElSUSB2ZWN0b3JzCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFCTI1NgkJLyoJCXNpemUJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1ZFQ19OVU1TCTY0CQkvKgkJbnVtYmVycwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUlNUX1ZFQ1QJMHgwMDkyMDAwMAkvKiBSRVNFVCB2ZWN0b3IJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfREJHX0NPUkUJMAkJLyogQ1BVIGRlYnVnOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NUQUNLCTB4MDA4ZmZmMDAJLyogc3RhY2sgdG9wCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfQkFTRQkweDAwOGZmZjAwCS8qIElSUSB2ZWN0b3JzCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfU0laRQkyNTYJCS8qCQlzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVkVDX05VTVMJNjQJCS8qCQludW1iZXJzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUlNUX1ZFQ1QJMHgwMDkyMDAwMAkvKiBSRVNFVCB2ZWN0b3IJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0RCR19DT1JFCTAJCS8qIENQVSBkZWJ1ZzoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogb24tY2hpcCBleHRlbnNpb25zICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SQU1fQkFTRQkwCQkvKiBvbiBjaGlwIFJBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SQU1fU0laRQkwCQkvKgkJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9CQVNFCTAJCS8qIG9uIGNoaXAgUkFNCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fU0laRQkwCQkvKgkJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9ST01fQkFTRQkweDAwOTIwMDAwCS8qIG9uIGNoaXAgUk9NCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JPTV9TSVpFCSgyICogMTAyNCkJLyogIDIgS0IJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9CQVNFCTB4MDA5MjAwMDAJLyogb24gY2hpcCBST00JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JPTV9TSVpFCSgyICogMTAyNCkJLyogIDIgS0IJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9PQ0lfQkFTRQkweDAwOTIwODAwCS8qIE9DSSBjb3JlCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9TSVpFCTI1NgkJLyoJCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfQkFTRQkweDAwOTIwODAwCS8qIE9DSSBjb3JlCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQkyNTYJCS8qCQlzaXplCSovCiAKIC8qIHRpbWVyICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUl9OVU1TCTIJCS8qIG51bWJlciBvZiB0aW1lcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSX05VTVMJMgkJLyogbnVtYmVyIG9mIHRpbWVyCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMAkweDAwOTIwOTQwCS8qIFRJTUVSMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfSVJRCTE2CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfUEVSCTEwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9BUgkwCQkvKiAgYWx3YXlzIHJ1bjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAJMHgwMDkyMDk0MAkvKiBUSU1FUjAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEJMTYJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSCTEwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfQVIJMAkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfRlAJMAkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAJMAkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9TUwkxCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfU1MJMQkJLyogIHNuYXBob3Q6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMQkweDAwOTIwOWUwCS8qIFRJTUVSMQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjFfSVJRCTUwCQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjFfUEVSCTEwMDAwCQkvKiAgcGVyaW9kZQl1c2VjCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjFfQVIJMQkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxCTB4MDA5MjA5ZTAJLyogVElNRVIxCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfSVJRCTUwCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX1BFUgkxMDAwMAkJLyogIHBlcmlvZGUJdXNlYwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9BUgkxCQkvKiAgYWx3YXlzIHJ1bjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUAkxCQkvKiAgZml4ZWQgcGVyOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9GUAkxCQkvKiAgZml4ZWQgcGVyOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIxX1NTCTAJCS8qICBzbmFwaG90OglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9TUwkwCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogc2VyaWFsIGkvbyAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVF9OVU1TCTEJCS8qIG51bWJlciBvZiB1YXJ0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUwkxCQkvKiBudW1iZXIgb2YgdWFydHMJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDAJMHgwMDkyMDkwMAkvKiBVQVJUMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9JUlEJMjUJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfREIJOAkJLyogIGRhdGEgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfU0IJMQkJLyogIHN0b3AgYml0CQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDAJMHgwMDkyMDkwMAkvKiBVQVJUMAlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfSVJRCTI1CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfQlIJMTE1MjAwCQkvKiAgYmF1ZHJhdGUJdmFyKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfREIJOAkJLyogIGRhdGEgYml0CQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9QQQkwCQkvKiAgcGFyaXR5CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlvZGQoMSkJKi8KIAkJCQkJCS8qCQlldmVuKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0hTCTAJCS8qICBoYW5kc2hha2U6CW5vKDApCSovCiAJCQkJCQkvKgkJY3J0cygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfRU9QCTAJCS8qICBlb3AgcmVnOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KIAogLyogcGFyYWxsZWwgaS9vICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU9fTlVNUwk4CQkvKiBudW1iZXIgb2YgcGFycG9ydHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUwk4CQkvKiBudW1iZXIgb2YgcGFycG9ydHMJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMAkweDAwOTIwOTYwCS8qIFBJTzAJCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfSVJRCTQwCQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0JJVFMJNAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzAJMHgwMDkyMDk2MAkvKiBQSU8wCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9JUlEJNDAJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0JJVFMJNAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9DQVAJMQkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0VER0UJMwkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfRURHRQkzCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfSVRZUEUJMgkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9JVFlQRQkyCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xCTB4MDA5MjA5NzAJLyogUElPMQkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8xX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0JJVFMJMTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xCTB4MDA5MjA5NzAJLyogUElPMQkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfQklUUwkxMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yCTB4MDA5MjA5ODAJLyogUElPMgkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8yX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX0JJVFMJOAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIJMHgwMDkyMDk4MAkvKiBQSU8yCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9CSVRTCTgJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMwkweDAwOTIwOTkwCS8qIFBJTzMJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPM19JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19CSVRTCTE2CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMwkweDAwOTIwOTkwCS8qIFBJTzMJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0JJVFMJMTYJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNAkweDAwOTIwOWEwCS8qIFBJTzQJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPNF9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU80X1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80CTB4MDA5MjA5YTAJLyogUElPNAkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfVFlQRQkwCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU80X0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzUJMHgwMDkyMDliMAkvKiBQSU81CQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0lSUQkzNQkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81CTB4MDA5MjA5YjAJLyogUElPNQkJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVJRCTM1CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9FREdFCTMJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0VER0UJMwkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0lUWVBFCTIJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfSVRZUEUJMgkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNgkweDAwOTIwOWMwCS8qIFBJTzYJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPNl9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82CTB4MDA5MjA5YzAJLyogUElPNgkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzcJMHgwMDkyMDlkMAkvKiBQSU83CQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzdfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNwkweDAwOTIwOWQwCS8qIFBJTzcJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCiAvKiBJREUgaS9mICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JREVfTlVNUwkxCQkvKiBudW1iZXIgb2YgSURFIGNvbnRyLgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfSURFMAkweDAwOTIwYTAwCS8qIElERTAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JREVfTlVNUwkxCQkvKiBudW1iZXIgb2YgSURFIGNvbnRyLgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lERTAJMHgwMDkyMGEwMAkvKiBJREUwCQlhZGRyCSovCiAKIC8qIGFjdGl2ZSBzZXJpYWwgbWVtb3J5IGkvZiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQVNNSV9OVU1TCTEJCS8qIG51bWJlciBvZiBBU01JCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9BU01JMAkweDAwOTIwYjAwCS8qIEFTTUkwCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0FTTUkwX0lSUQk0NQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUlfTlVNUwkxCQkvKiBudW1iZXIgb2YgQVNNSQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUkwCTB4MDA5MjBiMDAJLyogQVNNSTAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0FTTUkwX0lSUQk0NQkJLyoJCUlSUQkqLwogCiAvKiBtZW1vcnkgYWNjZXNzaWJpbGl0eSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1JBTV9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgU1JBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUkFNX1NJWkUJKDEwMjQgKiAxMDI0KQkvKiAgMSBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgU1JBTQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCSgxMDI0ICogMTAyNCkJLyogIDEgTUIJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TRFJBTV9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgU0RSQU0JYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU0RSQU1fU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fQkFTRQkweDAxMDAwMDAwCS8qIGJvYXJkIFNEUkFNCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9TSVpFCSgxNioxMDI0KjEwMjQpCS8qIDE2IE1CCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfRkxBU0hfQkFTRQkweDAwMDAwMDAwCS8qIGJvYXJkIEZsYXNoCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUJKDgqMTAyNCoxMDI0KQkvKiAgOCBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQkweDAwMDAwMDAwCS8qIGJvYXJkIEZsYXNoCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCSg4KjEwMjQqMTAyNCkJLyogIDggTUIJc2l6ZQkqLwogCiAvKiBMQU4gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTl9OVU1TCTEJCS8qIG51bWJlciBvZiBMQU4gaS9mCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOX05VTVMJMQkJLyogbnVtYmVyIG9mIExBTiBpL2YJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9CQVNFCTB4MDA5MTAwMDAJLyogTEFOMAkJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9PRkZTCTB4MDMwMAkJLyoJCW9mZnNldAkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9JUlEJMzAJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVwkzMgkJLyoJICAgICAgICBidXN3aWR0aCovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX1RZUEUJMAkJLyoJc21jOTExMTEoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UJMHgwMDkxMDAwMAkvKiBMQU4wCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9PRkZTCTB4MDMwMAkJLyoJCW9mZnNldAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfSVJRCTMwCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CVVNXCTMyCQkvKgkgICAgICAgIGJ1c3dpZHRoKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX1RZUEUJMAkJLyoJc21jOTExMTEoMCkJKi8KIAkJCQkJCS8qCWNzODkwMCgxKQkqLwogCQkJCQkJLyogZXg6CWFsdGVyYW1hYygyKQkqLwogCiAvKiBzeW1ib2xpYyByZWRlZmluaXRpb24gKHVuZGVmLCBpZiBub3QgcHJlc2VudCkgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJCTAJLyogVElNRVIwOiB1c2VycyBjaG9pY2UJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJCTEJLyogVElNRVIxOiB0aWNrIChuZWVkZWQpKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VU0VSX1RJTUVSCQkwCS8qIFRJTUVSMDogdXNlcnMgY2hvaWNlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUgkJMQkvKiBUSU1FUjE6IHRpY2sgKG5lZWRlZCkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9CVVRUT05fUElPCQkwCS8qIFBJTzA6IGJ1dHRvbnMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xDRF9QSU8JCTEJLyogUElPMTogQVNDSUkgTENECSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MRURfUElPCQkyCS8qIFBJTzI6IExFRCBiYXIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkzCS8qIFBJTzM6IDctc2VnLiBkaXNwbGF5CSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SRUNPTkZfUElPCQk0CS8qIFBJTzQ6IHJlY29uZiBwaW4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JNQkvKiBQSU81OiBDRiBwcmVzZW50IElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQ0ZQT1dFUl9QSU8JNgkvKiBQSU82OiBDRiBwb3dlci9zdy4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGQVRBU0VMX1BJTwk3CS8qIFBJTzc6IENGIEFUQSBzZWxlY3QJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9CVVRUT05fUElPCQkwCS8qIFBJTzA6IGJ1dHRvbnMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCQkxCS8qIFBJTzE6IEFTQ0lJIExDRAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JCTIJLyogUElPMjogTEVEIGJhcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkzCS8qIFBJTzM6IDctc2VnLiBkaXNwbGF5CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkJNAkvKiBQSU80OiByZWNvbmYgcGluCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQUkVTRU5UX1BJTwk1CS8qIFBJTzU6IENGIHByZXNlbnQgSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8JNgkvKiBQSU82OiBDRiBwb3dlci9zdy4JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8JNwkvKiBQSU83OiBDRiBBVEEgc2VsZWN0CSovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19ESzFDMjBfU1RBTkRBUkRfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RLMVMxMC5oIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMC5oCmluZGV4IDEyZDRlNmIuLjFkMDMxZjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ESzFTMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREsxUzEwLmgKQEAgLTM4LDcgKzM4LDcgQEAKICNlbGlmCWRlZmluZWQoQ09ORklHX05JT1NfTVRYX0xES18yMCkKICNpbmNsdWRlIDxjb25maWdzL0RLMVMxMF9tdHhfbGRrXzIwLmg+CiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIHJpZ2h0IE5JT1MgQ1BVIGNvbmZpZ3VyYXRpb24KKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgcmlnaHQgTklPUyBDUFUgY29uZmlndXJhdGlvbgogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NiwzNiArNDYsMzYgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lIENPTkZJR19OSU9TCQkxCQkvKiBOSU9TLTMyIGNvcmUJCSovCiAjZGVmaW5lCUNPTkZJR19ESzFTMTAJCTEJCS8qIFN0cmF0aXggREstMVMxMCBib2FyZCovCi0jZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJQ0ZHX05JT1NfQ1BVX0NMSy8qIDUwIE1IeiBjb3JlIGNsb2NrCSovCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJCS8qIDEgbXNlYyB0aW1lIHRpY2sJKi8KLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQlDT05GSUdfU1lTX05JT1NfQ1BVX0NMSy8qIDUwIE1IeiBjb3JlIGNsb2NrCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiAxIG1zZWMgdGltZSB0aWNrCSovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgogI2RlZmluZQlDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJLyogZW5hYmxlIGVhcmx5IGJvYXJkLXNwZWMuIGluaXQqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkFTRSBBRERSRVNTRVMgLyBTSVpFIChGbGFzaCwgU1JBTSwgU0RSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfU0RSQU1fU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUgIT0gMCkKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCUNGR19OSU9TX0NQVV9TRFJBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9TSVpFCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYW55IFNEUkFNIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgU0RSQU0gaW4gTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAotI2lmCWRlZmluZWQoQ0ZHX05JT1NfQ1BVX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDRkdfTklPU19DUFVfU1JBTV9TSVpFKQorI2lmCWRlZmluZWQoQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1NSQU1fQkFTRQkJQ0ZHX05JT1NfQ1BVX1NSQU1fQkFTRQotI2RlZmluZQlDRkdfU1JBTV9TSVpFCQlDRkdfTklPU19DUFVfU1JBTV9TSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfU1JBTV9CQVNFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1NSQU1fQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX1NSQU1fU0laRQkJQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUKIAogI2Vsc2UKIAotI3VuZGVmCUNGR19TUkFNX0JBU0UKLSN1bmRlZglDRkdfU1JBTV9TSVpFCisjdW5kZWYJQ09ORklHX1NZU19TUkFNX0JBU0UKKyN1bmRlZglDT05GSUdfU1lTX1NSQU1fU0laRQogCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfVkVDVF9CQVNFCQlDRkdfTklPU19DUFVfVkVDX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19WRUNUX0JBU0UJCUNPTkZJR19TWVNfTklPU19DUFVfVkVDX0JBU0UKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBPUkdBTklaQVRJT04gLSBGb3IgdGhlIG1vc3QgcGFydCwgeW91IGNhbiBwdXQgdGhpbmdzIHByZXR0eQpAQCAtODgsNDUgKzg4LDQ1IEBACiAgKgktR2xvYmFsIGRhdGEgaXMgcGxhY2VkIGJlbG93IHRoZSBoZWFwLgogICoJLVRoZSBzdGFjayBpcyBwbGFjZWQgYmVsb3cgZ2xvYmFsIGRhdGEgKCZncm93cyBkb3duKS4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2awkJKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBHbG9iYWwgZGF0YSBzaXplIHJzdmQqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBHbG9iYWwgZGF0YSBzaXplIHJzdmQqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19NQUxMT0NfQkFTRSAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUAkJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfQkFTRQkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19NQUxMT0NfQkFTRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQCQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggKEFNMjlMVjA2NUQpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfRkxBU0hfU0laRSAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUgIT0gMCkKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX05JT1NfQ1BVX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCUNGR19OSU9TX0NQVV9GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4ICMgb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgRmxhc2ggbWVtb3J5IGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhbnkgRmxhc2ggbWVtb3J5IGluIE5JT1MgQ1BVIGNvbmZpZwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFTlZJUk9OTUVOVAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUgIT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFICE9IDApCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCQkvKiBFbnZpcm9ubWVudCBpbiBmbGFzaCAqLwogCiAjaWYJZGVmaW5lZChDT05GSUdfTklPU19TVEFOREFSRF8zMikKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDRkdfRkxBU0hfQkFTRQkvKiBNZW0gYWRkciBvZiBlbnYJKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogTWVtIGFkZHIgb2YgZW52CSovCiAjZWxpZglkZWZpbmVkKENPTkZJR19OSU9TX01UWF9MREtfMjApCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCB0aGUgZW52aXJvbm1lbnQgYmFzZSBhZGRyZXNzIENPTkZJR19FTlZfQUREUgorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCB0aGUgZW52aXJvbm1lbnQgYmFzZSBhZGRyZXNzIENPTkZJR19FTlZfQUREUgogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCkBAIC0xMzksMTIxICsxMzksMTIxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ09OU09MRQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUyAhPSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlRfTlVNUyAhPSAwKQogCi0jZGVmaW5lIENGR19OSU9TX0NPTlNPTEUJQ0ZHX05JT1NfQ1BVX1VBUlQwIC8qIDFzdCBVQVJUIGlzIENvbnMuICovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDAgLyogMXN0IFVBUlQgaXMgQ29ucy4gKi8KICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkgLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1VBUlQwX0JSICE9IDApCi0jZGVmaW5lIENGR19OSU9TX0ZJWEVEQkFVRAkxCQkgICAvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLwotI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCUNGR19OSU9TX0NQVV9VQVJUMF9CUgorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSICE9IDApCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJICAgLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KKyNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSCiAjZWxzZQotI3VuZGVmCUNGR19OSU9TX0ZJWEVEQkFVRAorI3VuZGVmCUNPTkZJR19TWVNfTklPU19GSVhFREJBVUQKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldHVwIGF0IGxlYXN0IG9uZSBVQVJUIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgVUFSVCBpbiBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVElNRVIgRk9SIFRJTUVCQVNFIC0tIE5pb3MgZG9lc24ndCBoYXZlIHRoZSBlcXVpdmFsZW50IG9mIHBwYyAgUElULAogICogc28gYW4gYXZhbG9uIGJ1cyB0aW1lciBpcyByZXF1aXJlZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUl9OVU1TICE9IDApICYmIGRlZmluZWQoQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIpCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVJfTlVNUyAhPSAwKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUikKIAotI2lmCShDRkdfTklPU19DUFVfVElDS19USU1FUiA9PSAwKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJQ0tfVElNRVIgPT0gMCkKIAotI2RlZmluZSBDRkdfTklPU19UTVJCQVNFCUNGR19OSU9TX0NQVV9USU1FUjAgLyogVElNRVIwIGFzIHRpY2sJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SSVJRCQlDRkdfTklPU19DUFVfVElNRVIwX0lSUQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQkFTRQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMCAvKiBUSU1FUjAgYXMgdGljawkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SSVJRCQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEKIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIwX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0ZQID09IDEpCQkgICAgLyogZml4ZWQgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMF9QRVIgPj0gQ0ZHX0haKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKENGR19OSU9TX0NQVV9USU1FUjBfUEVSIC8gQ0ZHX0haKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9QRVIgPj0gQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ0ZHX0haCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHVzZSBhIHRpbWVyIHBlcmlvZGUgZ3JlYXRlciB0aGFuIENPTkZJR19TWVNfSFoKICNlbmRpZgogCi0jdW5kZWYJQ0ZHX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfVE1SQ05UCS8qIG5vIHByZWxvYWRhYmxlIGNvdW50ZXIgdmFsdWUgKi8KIAotI2VsaWYJKENGR19OSU9TX0NQVV9USU1FUjBfRlAgPT0gMCkJCSAgICAvKiB2YXJpYWJsZSBwZXJpb2QgKi8KKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLwogCi0jaWYJKENGR19IWiA8PSAxMDAwKQotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJKDEwMDAgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfSFogPD0gMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkoMTAwMCAvIENPTkZJR19TWVNfSFopCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNvcnJ5LCBDRkdfSFogaGF2ZSB0byBiZSBsZXNzIHRoYW4gMTAwMAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiBzb3JyeSwgQ09ORklHX1NZU19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ0ZHX0haKQorI2RlZmluZQlDT05GSUdfU1lTX05JT1NfVE1SQ05UCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENPTkZJR19TWVNfSFopCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gZGVmaW5lIENGR19OSU9TX0NQVV9USU1FUjBfRlAgY29ycmVjdAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAgY29ycmVjdAogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfVElDS19USU1FUiA9PSAxKQorI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUiA9PSAxKQogCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJQ0ZHX05JT1NfQ1BVX1RJTUVSMSAvKiBUSU1FUjEgYXMgdGljawkqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCUNGR19OSU9TX0NQVV9USU1FUjFfSVJRCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxIC8qIFRJTUVSMSBhcyB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJJUlEJCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0lSUQogCi0jaWYJKENGR19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMSkJCSAgICAvKiBmaXhlZCBwZXJpb2QgKi8KKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfRlAgPT0gMSkJCSAgICAvKiBmaXhlZCBwZXJpb2QgKi8KIAotI2lmCShDRkdfTklPU19DUFVfVElNRVIxX1BFUiA+PSBDRkdfSFopCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9QRVIgLyBDRkdfSFopCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX1BFUiA+PSBDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCShDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9QRVIgLyBDT05GSUdfU1lTX0haKQogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byB1c2UgYSB0aW1lciBwZXJpb2RlIGdyZWF0ZXIgdGhhbiBDRkdfSFoKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogeW91IGhhdmUgdG8gdXNlIGEgdGltZXIgcGVyaW9kZSBncmVhdGVyIHRoYW4gQ09ORklHX1NZU19IWgogI2VuZGlmCiAKLSN1bmRlZglDRkdfTklPU19UTVJDTlQJLyogbm8gcHJlbG9hZGFibGUgY291bnRlciB2YWx1ZSAqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19UTVJDTlQJLyogbm8gcHJlbG9hZGFibGUgY291bnRlciB2YWx1ZSAqLwogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUCA9PSAwKQkJICAgIC8qIHZhcmlhYmxlIHBlcmlvZCAqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0ZQID09IDApCQkgICAgLyogdmFyaWFibGUgcGVyaW9kICovCiAKLSNpZgkoQ0ZHX0haIDw9IDEwMDApCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkoMTAwMCAvIENGR19IWikKKyNpZgkoQ09ORklHX1NZU19IWiA8PSAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCSgxMDAwIC8gQ09ORklHX1NZU19IWikKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogc29ycnksIENGR19IWiBoYXZlIHRvIGJlIGxlc3MgdGhhbiAxMDAwCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNvcnJ5LCBDT05GSUdfU1lTX0haIGhhdmUgdG8gYmUgbGVzcyB0aGFuIDEwMDAKICNlbmRpZgogCi0jZGVmaW5lCUNGR19OSU9TX1RNUkNOVAkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBDRkdfSFopCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19UTVJDTlQJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gQ09ORklHX1NZU19IWikKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBkZWZpbmUgQ0ZHX05JT1NfQ1BVX1RJTUVSMV9GUCBjb3JyZWN0CisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIGRlZmluZSBDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9GUCBjb3JyZWN0CiAjZW5kaWYKIAotI2VuZGlmCS8qIENGR19OSU9TX0NQVV9USUNLX1RJTUVSICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9USUNLX1RJTUVSICovCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0dXAgYXQgbGVhc3Qgb25lIFRJTUVSIGluIE5JT1MgQ1BVIGNvbmZpZworI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBhdCBsZWFzdCBvbmUgVElNRVIgaW4gTklPUyBDUFUgY29uZmlnCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV0aGVybmV0IC0tIG5lZWRzIHdvcmshCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2lmCShDRkdfTklPU19DUFVfTEFOX05VTVMgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUyA9PSAxKQogCi0jaWYJKENGR19OSU9TX0NQVV9MQU4wX1RZUEUgPT0gMCkJCS8qIExBTjkxQzExMQkJKi8KKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX1RZUEUgPT0gMCkJCS8qIExBTjkxQzExMQkJKi8KIAogI2RlZmluZQlDT05GSUdfRFJJVkVSX1NNQzkxMTExCQkJLyogVXNpbmcgU01DOTFjMTExCSovCiAjdW5kZWYJQ09ORklHX1NNQzkxMTExX0VYVF9QSFkJCQkvKiBJbnRlcm5hbCBQSFkJCSovCi0jZGVmaW5lCUNPTkZJR19TTUM5MTExMV9CQVNFCShDRkdfTklPU19DUFVfTEFOMF9CQVNFICsgQ0ZHX05JT1NfQ1BVX0xBTjBfT0ZGUykKKyNkZWZpbmUJQ09ORklHX1NNQzkxMTExX0JBU0UJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMpCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVyA9PSAzMikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCiAjZGVmaW5lCUNPTkZJR19TTUNfVVNFXzMyX0JJVAkxCiAjZWxzZQkvKiBubyAqLwogI3VuZGVmCUNPTkZJR19TTUNfVVNFXzMyX0JJVAogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfTEFOMF9UWVBFID09IDEpCQkvKiBDUzg5MDBBCQkqLworI2VsaWYJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9UWVBFID09IDEpCQkvKiBDUzg5MDBBCQkqLwogCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCS8qICEhISBDUzg5MDAgaXMgX19ub3RfXyB0ZXN0ZWQgb24gTklPUyAhISEgKi8KIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lCUNPTkZJR19EUklWRVJfQ1M4OTAwCQkJLyogVXNpbmcgQ1M4OTAwCQkqLwotI2RlZmluZQlDUzg5MDBfQkFTRQkJKENGR19OSU9TX0NQVV9MQU4wX0JBU0UgKyBDRkdfTklPU19DUFVfTEFOMF9PRkZTKQorI2RlZmluZQlDUzg5MDBfQkFTRQkJKENPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMpCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVyA9PSAzMikKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cgPT0gMzIpCiAjdW5kZWYJQ1M4OTAwX0JVUzE2CiAjZGVmaW5lCUNTODkwMF9CVVMzMgkJMQogI2Vsc2UJLyogbm8gKi8KQEAgLTI2Miw3ICsyNjIsNyBAQAogI2VuZGlmCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogaW52YWxpZCBMQU4wIGNoaXAgdHlwZSwgY2hlY2sgeW91ciBOSU9TIENQVSBjb25maWcKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogaW52YWxpZCBMQU4wIGNoaXAgdHlwZSwgY2hlY2sgeW91ciBOSU9TIENQVSBjb25maWcKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19FVEhBRERSCQkwODowMDozZToyNjowYTo1YgpAQCAtMjcxLDY0ICsyNzEsNjQgQEAKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxOTIuMTY4LjIuMTYKIAogI2Vsc2UKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBqdXN0IG9uZSBMQU4gb25seSBvciBleHBhbmQgeW91ciBjb25maWcuaAorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXR1cCBqdXN0IG9uZSBMQU4gb25seSBvciBleHBhbmQgeW91ciBjb25maWcuaAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTVEFUVVMgTEVEcwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICE9IDApICYmIGRlZmluZWQoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8pCisjaWYJKENPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMgIT0gMCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8pCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDApCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzdGF0dXMgTEVEcyBhdCBQSU8wIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzAgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDEpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDEpCiAKLSNlcnJvciAqKiogQ0ZHX0VSUk9SOiBzdGF0dXMgTEVEcyBhdCBQSU8xIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzEgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKIAotI2VsaWYJKENGR19OSU9TX0NQVV9MRURfUElPID09IDIpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPID09IDIpCiAKLSNkZWZpbmUJU1RBVFVTX0xFRF9CQVNFCQkJQ0ZHX05JT1NfQ1BVX1BJTzIKLSNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ0ZHX05JT1NfQ1BVX1BJTzJfQklUUworI2RlZmluZQlTVEFUVVNfTEVEX0JBU0UJCQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzIKKyNkZWZpbmUJU1RBVFVTX0xFRF9CSVRTCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0JJVFMKICNkZWZpbmUJU1RBVFVTX0xFRF9BQ1RJVkUJCTEgLyogTEVEIG9uIGZvciBiaXQgPT0gMSAqLwogCi0jaWYJKENGR19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX1RZUEUgPT0gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9XUk9OTFkJCTEKICNlbHNlCiAjdW5kZWYJU1RBVFVTX0xFRF9XUk9OTFkKICNlbmRpZgogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gMykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzMgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPMyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzQgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzUgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzYgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNiBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gNykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzcgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPNyBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzggbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOCBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCi0jZWxpZgkoQ0ZHX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKKyNlbGlmCShDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gPT0gOSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHN0YXR1cyBMRURzIGF0IFBJTzkgbm90IHN1cHBvcnRlZCwgZXhwYW5kIHlvdXIgY29uZmlnLmgKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogc3RhdHVzIExFRHMgYXQgUElPOSBub3Qgc3VwcG9ydGVkLCBleHBhbmQgeW91ciBjb25maWcuaAogCiAjZWxzZQotI2Vycm9yICoqKiBDRkdfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDRkdfTklPU19DUFVfTEVEX1BJTyBpbiByaWdodCBjYXNlCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHlvdSBoYXZlIHRvIHNldCBDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8gaW4gcmlnaHQgY2FzZQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1NUQVRVU19MRUQJCTEgLyogZW5hYmxlIHN0YXR1cyBsZWQgZHJpdmVyICovCkBAIC0zMzYsODkgKzMzNiw4OSBAQAogI2RlZmluZQlTVEFUVVNfTEVEX0JJVAkJCSgxIDw8IDApCS8qIExFRFswXSAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1NUQVRFCQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVF9TVEFURQkJU1RBVFVTX0xFRF9PRkYKLSNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDRkdfSFogLyAxMCkJLyogY2EuIDEgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QJCShDT05GSUdfU1lTX0haIC8gMTApCS8qIGNhLiAxIEh6ICovCiAjZGVmaW5lCVNUQVRVU19MRURfQk9PVAkJCTAJCS8qIGJvb3QgTEVEICovCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMSkKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQxCQkJKDEgPDwgMSkJLyogTEVEWzFdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUxCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDEJCShDRkdfSFogLyA1MCkJLyogY2EuIDUgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QxCQkoQ09ORklHX1NZU19IWiAvIDUwKQkvKiBjYS4gNSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX1JFRAkJCTEJCS8qIGZhaWwgTEVEICovCiAjZW5kaWYKIAogI2lmCShTVEFUVVNfTEVEX0JJVFMgPiAyKQogI2RlZmluZQlTVEFUVVNfTEVEX0JJVDIJCQkoMSA8PCAyKQkvKiBMRURbMl0gKi8KICNkZWZpbmUJU1RBVFVTX0xFRF9TVEFURTIJCVNUQVRVU19MRURfT0ZGCi0jZGVmaW5lCVNUQVRVU19MRURfUEVSSU9EMgkJKENGR19IWiAvIDEwKQkvKiBjYS4gMSBIeiAqLworI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDIJCShDT05GSUdfU1lTX0haIC8gMTApCS8qIGNhLiAxIEh6ICovCiAjZGVmaW5lCVNUQVRVU19MRURfWUVMTE9XCQkyCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNpZgkoU1RBVFVTX0xFRF9CSVRTID4gMykKICNkZWZpbmUJU1RBVFVTX0xFRF9CSVQzCQkJKDEgPDwgMykJLyogTEVEWzNdICovCiAjZGVmaW5lCVNUQVRVU19MRURfU1RBVEUzCQlTVEFUVVNfTEVEX09GRgotI2RlZmluZQlTVEFUVVNfTEVEX1BFUklPRDMJCShDRkdfSFogLyAxMCkJLyogY2EuIDEgSHogKi8KKyNkZWZpbmUJU1RBVFVTX0xFRF9QRVJJT0QzCQkoQ09ORklHX1NZU19IWiAvIDEwKQkvKiBjYS4gMSBIeiAqLwogI2RlZmluZQlTVEFUVVNfTEVEX0dSRUVOCQkzCQkvKiBpbmZvIExFRCAqLwogI2VuZGlmCiAKICNkZWZpbmUJU1RBVFVTX0xFRF9QQVIJCQkxIC8qIG1ha2VzIHN0YXR1c19sZWQuaCBoYXBweSAqLwogCi0jZW5kaWYJLyogQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICovCisjZW5kaWYJLyogQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0VWRU4gU0VHTUVOVCBMRUQgRElTUExBWQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJT19OVU1TICE9IDApICYmIGRlZmluZWQoQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTykKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9QSU9fTlVNUyAhPSAwKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPKQogCi0jaWYJKENGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMCkKKyNpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8wIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8wIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDEpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8xIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8xIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDIpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8yIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU8yIG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDMpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gMykKIAotI2RlZmluZQlTRVZFTlNFR19CQVNFCQkJQ0ZHX05JT1NfQ1BVX1BJTzMKLSNkZWZpbmUJU0VWRU5TRUdfQklUUwkJCUNGR19OSU9TX0NQVV9QSU8zX0JJVFMKKyNkZWZpbmUJU0VWRU5TRUdfQkFTRQkJCUNPTkZJR19TWVNfTklPU19DUFVfUElPMworI2RlZmluZQlTRVZFTlNFR19CSVRTCQkJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0JJVFMKICNkZWZpbmUJU0VWRU5TRUdfQUNUSVZFCQkJMCAvKiBMRUQgb24gZm9yIGJpdCA9PSAxICovCiAKLSNpZgkoQ0ZHX05JT1NfQ1BVX1BJTzNfVFlQRSA9PSAxKQorI2lmCShDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfVFlQRSA9PSAxKQogI2RlZmluZQlTRVZFTlNFR19XUk9OTFkJCQkxCiAjZWxzZQogI3VuZGVmCVNFVkVOU0VHX1dST05MWQogI2VuZGlmCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDQpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gNCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU80IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU80IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDUpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gNSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU81IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU81IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDYpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gNikKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU82IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU82IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDcpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gNykKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU83IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU83IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDgpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gOCkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU84IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU84IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKLSNlbGlmCShDRkdfTklPU19DUFVfU0VWRU5TRUdfUElPID09IDkpCisjZWxpZgkoQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gPT0gOSkKIAotI2Vycm9yICoqKiBDRkdfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU85IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCisjZXJyb3IgKioqIENPTkZJR19TWVNfRVJST1I6IHNldmVuIHNlZ21lbnQgZGlzcGxheSBhdCBQSU85IG5vdCBzdXBwb3J0ZWQsIGV4cGFuZCB5b3VyIGNvbmZpZy5oCiAKICNlbHNlCi0jZXJyb3IgKioqIENGR19FUlJPUjogeW91IGhhdmUgdG8gc2V0IENGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8gaW4gcmlnaHQgY2FzZQorI2Vycm9yICoqKiBDT05GSUdfU1lTX0VSUk9SOiB5b3UgaGF2ZSB0byBzZXQgQ09ORklHX1NZU19OSU9TX0NQVV9TRVZFTlNFR19QSU8gaW4gcmlnaHQgY2FzZQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1NFVkVOU0VHCQkJMSAvKiBlbmFibGUgc2V2ZW4gc2VnbWVudCBsZWQgZHJpdmVyICovCkBAIC00NTIsNyArNDUyLDcgQEAKICNkZWZpbmUJU0VWRU5TRUdfRElHSVRfRwkJKDEgPDwgMCkgLyogYml0IDAgaXMgc2VnbWVudCBHICovCiAjZGVmaW5lCVNFVkVOU0VHX0RJR0lUX0RQCQkoMSA8PCA3KSAvKiBiaXQgNyBpcyBkZWNpbWFsIHBvaW50ICovCiAKLSNlbmRpZgkvKiBDRkdfTklPU19DUFVfUElPX05VTVMgKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX05JT1NfQ1BVX1BJT19OVU1TICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC00OTYsNDggKzQ5Niw0OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiREsxUzEwID4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkRLMVMxMCA+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCiAvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2lmCShDRkdfU1JBTV9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfU1JBTV9TSVpFICE9IDApCiAKIC8qIGRlZmF1bHQgaW4gU1JBTSAqLwotI2RlZmluZQlDRkdfTE9BRF9BRERSCQlDRkdfU1JBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NSQU1fQkFTRQogCi0jZWxpZgkoQ0ZHX1NEUkFNX1NJWkUgIT0gMCkKKyNlbGlmCShDT05GSUdfU1lTX1NEUkFNX1NJWkUgIT0gMCkKIAogLyogZGVmYXVsdCBpbiBTRFJBTSAqLwotI2lmCShDRkdfU0RSQU1fQkFTRSA9PSBDRkdfTklPU19DUFVfVkVDX0JBU0UpCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIENGR19OSU9TX0NQVV9WRUNfU0laRSkKKyNpZgkoQ09ORklHX1NZU19TRFJBTV9CQVNFID09IENPTkZJR19TWVNfTklPU19DUFVfVkVDX0JBU0UpCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfU0laRSkKICNlbHNlCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNlbmRpZgogCiAjZWxzZQotI3VuZGVmCUNGR19MT0FEX0FERFIJCS8qIGZvcmNlIGVycm9yIGJyZWFrICovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEX0FERFIJCS8qIGZvcmNlIGVycm9yIGJyZWFrICovCiAjZW5kaWYKIAogCiAvKiBNRU0gdGVzdCBhcmVhICovCi0jaWYJKENGR19TRFJBTV9TSVpFICE9IDApCisjaWYJKENPTkZJR19TWVNfU0RSQU1fU0laRSAhPSAwKQogCiAvKiBTRFJBTSBiZWdpbiB0byBzdGFjayBhcmVhICgxTUIgc3RhY2spICovCi0jaWYJKENGR19TRFJBTV9CQVNFID09IENGR19OSU9TX0NQVV9WRUNfQkFTRSkKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJKENGR19TRFJBTV9CQVNFICsgQ0ZHX05JT1NfQ1BVX1ZFQ19TSVpFKQotI2RlZmluZQlDRkdfTUVNVEVTVF9FTkQJCShDRkdfSU5JVF9TUCAtICgxMDI0ICogMTAyNCkpCisjaWYJKENPTkZJR19TWVNfU0RSQU1fQkFTRSA9PSBDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFKQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfTklPU19DUFVfVkVDX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX0lOSVRfU1AgLSAoMTAyNCAqIDEwMjQpKQogI2VuZGlmCiAKICNlbHNlCi0jdW5kZWYJQ0ZHX01FTVRFU1RfU1RBUlQJLyogZm9yY2UgZXJyb3IgYnJlYWsgKi8KLSN1bmRlZglDRkdfTUVNVEVTVF9FTkQKKyN1bmRlZglDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJLyogZm9yY2UgZXJyb3IgYnJlYWsgKi8KKyN1bmRlZglDT05GSUdfU1lTX01FTVRFU1RfRU5ECiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ESzFTMTBfbXR4X2xka18yMC5oIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9tdHhfbGRrXzIwLmgKaW5kZXggMDExNTY5OS4uODdhOGE1NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9tdHhfbGRrXzIwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9tdHhfbGRrXzIwLmgKQEAgLTMwLDE1OCArMzAsMTU4IEBACiAgKiBIZXJlIHdlIG11c3QgZGVmaW5lIENQVSBkZXBlbmRlbmNpZXMuIEFueSB1bnN1cHBvcnRlZCBvcHRpb24gaGF2ZSB0bwogICogYmUgZGVmaW5lZCB3aXRoIHplcm8sIGV4YW1wbGUgQ1BVIHdpdGhvdXQgZGF0YSBjYWNoZSAvIE9DSToKICAqCi0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9JQ0FDSEUJNDA5NgotICoJI2RlZmluZQlDRkdfTklPU19DUFVfRENBQ0hFCTAKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9CQVNFCTAKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9TSVpFCTAKKyAqCSNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJNDA5NgorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkwCisgKgkjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UJMAorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9TSVpFCTAKICAqLwogCiAvKiBDUFUgY29yZSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQ0xLCTc1MDAwMDAwCS8qIE5JT1MgQ1BVIGNsb2NrCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JQ0FDSEUJKDApCQkvKiBpbnN0cnVjdGlvbiBjYWNoZQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRENBQ0hFCSgwKQkJLyogZGF0YSBjYWNoZQkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JFR19OVU1TCTUxMgkJLyogbnVtYmVyIG9mIHJlZ2lzdGVyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9NVUwJMAkJLyogMTZ4MTYgTVVMOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0NMSwk3NTAwMDAwMAkvKiBOSU9TIENQVSBjbG9jawkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lDQUNIRQkoMCkJCS8qIGluc3RydWN0aW9uIGNhY2hlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSgwKQkJLyogZGF0YSBjYWNoZQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SRUdfTlVNUwk1MTIJCS8qIG51bWJlciBvZiByZWdpc3RlcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX01VTAkwCQkvKiAxNngxNiBNVUw6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9NU1RFUAkxCQkvKiAxNngxNiBNU1RFUDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9NU1RFUAkxCQkvKiAxNngxNiBNU1RFUDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NUQUNLCTB4MDIwMDAwMDAJLyogc3RhY2sgdG9wCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCTB4MDEwMDAwMDAJLyogSVJRIHZlY3RvcnMJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX1NJWkUJMjU2CQkvKgkJc2l6ZQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX05VTVMJNjQJCS8qCQludW1iZXJzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SU1RfVkVDVAkweDAwMDAwMDAwCS8qIFJFU0VUIHZlY3RvcglhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkwCQkvKiBDUFUgZGVidWc6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sJMHgwMjAwMDAwMAkvKiBzdGFjayB0b3AJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFCTB4MDEwMDAwMDAJLyogSVJRIHZlY3RvcnMJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCTI1NgkJLyoJCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfTlVNUwk2NAkJLyoJCW51bWJlcnMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVAkweDAwMDAwMDAwCS8qIFJFU0VUIHZlY3RvcglhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfREJHX0NPUkUJMAkJLyogQ1BVIGRlYnVnOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwogCiAvKiBUaGUgb2Zmc2V0IGFkZHJlc3MgaW4gZmxhc2ggdG8gY2hlY2sgZm9yIHRoZSBOaW9zIHNpZ25hdHVyZSAiTmkiLgogICogKHNlZSBHTV9GbGFzaEV4ZWMgaW4gZ2VybXNfbW9uaXRvci5zKSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRVhFU19PRkZTCTB4MEMKKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9FWEVTX09GRlMJMHgwQwogCiAvKiBvbi1jaGlwIGV4dGVuc2lvbnMgKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUkFNX0JBU0UJCQkvKiBvbiBjaGlwIFJBTQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1JBTV9TSVpFCQkJLyogNjQgS0IJc2l6ZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUkFNX0JBU0UJCQkvKiBvbiBjaGlwIFJBTQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9SQU1fU0laRQkJCS8qIDY0IEtCCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUk9NX0JBU0UJMHgwMDAwMDAwMAkvKiBvbiBjaGlwIFJPTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9ST01fU0laRQkoMiAqIDEwMjQpCS8qICAyIEtCCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQkweDAwMDAwMDAwCS8qIG9uIGNoaXAgUk9NCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9ST01fU0laRQkoMiAqIDEwMjQpCS8qICAyIEtCCXNpemUJKi8KIAotI3VuZGVmCUNGR19OSU9TX0NQVV9PQ0lfQkFTRQkJCS8qIE9DSSBjb3JlCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfT0NJX1NJWkUJCQkvKgkJc2l6ZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UJCQkvKiBPQ0kgY29yZQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9PQ0lfU0laRQkJCS8qCQlzaXplCSovCiAKIC8qIHRpbWVyICovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUl9OVU1TCTEJCS8qIG51bWJlciBvZiB0aW1lcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSX05VTVMJMQkJLyogbnVtYmVyIG9mIHRpbWVyCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMAkweDAwMDAwODQwCS8qIFRJTUVSMAlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfSVJRCTE2CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfUEVSCTEwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9BUgkwCQkvKiAgYWx3YXlzIHJ1bjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjAJMHgwMDAwMDg0MAkvKiBUSU1FUjAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMF9JUlEJMTYJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfUEVSCTEwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfQVIJMAkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfRlAJMAkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfRlAJMAkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMF9TUwkxCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfU1MJMQkJLyogIHNuYXBob3Q6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIHNlcmlhbCBpL28gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUwkyCQkvKiBudW1iZXIgb2YgdWFydHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUX05VTVMJMgkJLyogbnVtYmVyIG9mIHVhcnRzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwCTB4MDAwMDA4MDAJLyogVUFSVDAJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfSVJRCTE3CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9CUgkxMTUyMDAJCS8qICBiYXVkcmF0ZQl2YXIoMCkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX1NCCTIJCS8qICBzdG9wIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX1BBCTAJCS8qICBwYXJpdHkJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwCTB4MDAwMDA4MDAJLyogVUFSVDAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0lSUQkxNwkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9TQgkyCQkvKiAgc3RvcCBiaXQJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCiAJCQkJCQkvKgkJb2RkKDEpCSovCiAJCQkJCQkvKgkJZXZlbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfSFMJMAkJLyogIGhhbmRzaGFrZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLwogCQkJCQkJLyoJCWNydHMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9FT1AJMAkJLyogIGVvcCByZWc6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxCTB4MDAwMDA4YTAJLyogVUFSVDEJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfSVJRCTE4CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMV9CUgkxMTUyMDAJCS8qICBiYXVkcmF0ZQl2YXIoMCkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX1BBCTAJCS8qICBwYXJpdHkJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxCTB4MDAwMDA4YTAJLyogVUFSVDEJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0lSUQkxOAkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQxX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9TQgkxCQkvKiAgc3RvcCBiaXQJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDFfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCiAJCQkJCQkvKgkJb2RkKDEpCSovCiAJCQkJCQkvKgkJZXZlbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDFfSFMJMAkJLyogIGhhbmRzaGFrZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLwogCQkJCQkJLyoJCWNydHMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQxX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMV9FT1AJMAkJLyogIGVvcCByZWc6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIHBhcmFsbGVsIGkvbyAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPX05VTVMJMgkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMJMgkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzAJMHgwMDAwMDg2MAkvKiBQSU8wCQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzBfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMAkweDAwMDAwODYwCS8qIFBJTzAJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xCTB4MDAwMDA4NzAJLyogUElPMQkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU8xX0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0JJVFMJNAkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzEJMHgwMDAwMDg3MAkvKiBQSU8xCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9CSVRTCTQJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAogLyogSURFIGkvZiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfSURFX05VTVMJMQkJLyogbnVtYmVyIG9mIElERSBjb250ci4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lERTAJMHgwMDAwMDkwMAkvKiBJREUwCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JREUwX0lSUQkyNQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lERV9OVU1TCTEJCS8qIG51bWJlciBvZiBJREUgY29udHIuCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSURFMAkweDAwMDAwOTAwCS8qIElERTAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JREUwX0lSUQkyNQkJLyoJCUlSUQkqLwogCiAvKiBtZW1vcnkgYWNjZXNzaWJpbGl0eSAqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9TUkFNX0JBU0UJCQkvKiBib2FyZCBTUkFNCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfU1JBTV9TSVpFCQkJLyogIDEgTUIJc2l6ZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCQkJLyogYm9hcmQgU1JBTQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9TUkFNX1NJWkUJCQkvKiAgMSBNQglzaXplCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NEUkFNX0JBU0UJMHgwMTAwMDAwMAkvKiBib2FyZCBTRFJBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TRFJBTV9TSVpFCSgxNioxMDI0KjEwMjQpCS8qIDE2IE1CCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgU0RSQU0JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NEUkFNX1NJWkUJKDE2KjEwMjQqMTAyNCkJLyogMTYgTUIJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9GTEFTSF9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgRmxhc2gJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRkxBU0hfU0laRQkoOCoxMDI0KjEwMjQpCS8qICA4IE1CCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgRmxhc2gJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0ZMQVNIX1NJWkUJKDgqMTAyNCoxMDI0KQkvKiAgOCBNQglzaXplCSovCiAKIC8qIExBTiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOX05VTVMJMQkJLyogbnVtYmVyIG9mIExBTiBpL2YJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU5fTlVNUwkxCQkvKiBudW1iZXIgb2YgTEFOIGkvZgkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX0JBU0UJMHgwMDAxMDAwMAkvKiBMQU4wCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX09GRlMJMHgwMzAwCQkvKgkJb2Zmc2V0CSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX0lSUQkyMAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9CVVNXCTMyCQkvKgkgICAgICAgIGJ1c3dpZHRoKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTjBfVFlQRQkwCQkvKglzbWM5MTExMSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfQkFTRQkweDAwMDEwMDAwCS8qIExBTjAJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX09GRlMJMHgwMzAwCQkvKgkJb2Zmc2V0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9JUlEJMjAJCS8qCQlJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JVU1cJMzIJCS8qCSAgICAgICAgYnVzd2lkdGgqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfVFlQRQkwCQkvKglzbWM5MTExMSgwKQkqLwogCQkJCQkJLyoJY3M4OTAwKDEpCSovCiAJCQkJCQkvKiBleDoJb3Blbm1hYygyKQkqLwogCQkJCQkJLyogZXg6CWFsdGVyYW1hYygzKQkqLwogCiAvKiBzeW1ib2xpYyByZWRlZmluaXRpb24gKHVuZGVmLCBpZiBub3QgcHJlc2VudCkgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJCTAJLyogVElNRVIwOiB0aWNrIChuZWVkZWQpKi8KLSN1bmRlZglDRkdfTklPU19DUFVfVVNFUl9USU1FUgkJCS8qIFRJTUVSeDogdXNlcnMgY2hvaWNlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUgkJMAkvKiBUSU1FUjA6IHRpY2sgKG5lZWRlZCkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfVVNFUl9USU1FUgkJCS8qIFRJTUVSeDogdXNlcnMgY2hvaWNlCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGUE9XRVJfUElPCTAJLyogUElPMDogQ0YgcG93ZXIvc3cuCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9CVVRUT05fUElPCQkxCS8qIFBJTzE6IGJ1dHRvbnMJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfTENEX1BJTwkJCS8qIFBJT3g6IEFTQ0lJIExDRAkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9MRURfUElPCQkJLyogUElPeDogTEVEIGJhcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9TRVZFTlNFR19QSU8JCS8qIFBJT3g6IDctc2VnLiBkaXNwbGF5CSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1JFQ09ORl9QSU8JCQkvKiBQSU94OiByZWNvbmYgcGluCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JCS8qIFBJT3g6IENGIHByZXNlbnQgSVJRCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX0NGQVRBU0VMX1BJTwkJLyogUElPeDogQ0YgQVRBIHNlbGVjdAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0NGUE9XRVJfUElPCTAJLyogUElPMDogQ0YgcG93ZXIvc3cuCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQlVUVE9OX1BJTwkJMQkvKiBQSU8xOiBidXR0b25zCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCQkJLyogUElPeDogQVNDSUkgTENECSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9MRURfUElPCQkJLyogUElPeDogTEVEIGJhcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfU0VWRU5TRUdfUElPCQkvKiBQSU94OiA3LXNlZy4gZGlzcGxheQkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkJCS8qIFBJT3g6IHJlY29uZiBwaW4JKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JCS8qIFBJT3g6IENGIHByZXNlbnQgSVJRCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8JCS8qIFBJT3g6IENGIEFUQSBzZWxlY3QJKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0RLMVMxMF9NVFhfTERLXzIwX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ESzFTMTBfc2FmZV8zMi5oIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zYWZlXzMyLmgKaW5kZXggODU0MWExMS4uY2VkNGVmMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zYWZlXzMyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zYWZlXzMyLmgKQEAgLTI5LDYgKzI5LDYgQEAKICAqCiAgKiAhISEgVE9ETyAhISEgVE9ETyAhISEKICAqLwotI2Vycm9yICoqKiBDRkdfRVJST1I6IERLMVMxMF9zYWZlXzMyIGhhdmUgdG8gYmUgZGVmaW5lZCAodXNlIERLMVMxMF9zdGFuZGFyZF8zMiBhcyB0ZW1wbGF0ZSkKKyNlcnJvciAqKiogQ09ORklHX1NZU19FUlJPUjogREsxUzEwX3NhZmVfMzIgaGF2ZSB0byBiZSBkZWZpbmVkICh1c2UgREsxUzEwX3N0YW5kYXJkXzMyIGFzIHRlbXBsYXRlKQogCiAjZW5kaWYJLyogX19DT05GSUdfREsxUzEwX1NBRkVfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zdGFuZGFyZF8zMi5oIGIvaW5jbHVkZS9jb25maWdzL0RLMVMxMF9zdGFuZGFyZF8zMi5oCmluZGV4IGI4M2MzMTUuLmU2Y2NhZjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ESzFTMTBfc3RhbmRhcmRfMzIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvREsxUzEwX3N0YW5kYXJkXzMyLmgKQEAgLTMwLDI0NSArMzAsMjQ1IEBACiAgKiBIZXJlIHdlIG11c3QgZGVmaW5lIENQVSBkZXBlbmRlbmNpZXMuIEFueSB1bnN1cHBvcnRlZCBvcHRpb24gaGF2ZSB0bwogICogYmUgZGVmaW5lZCB3aXRoIHplcm8sIGV4YW1wbGUgQ1BVIHdpdGhvdXQgZGF0YSBjYWNoZSAvIE9DSToKICAqCi0gKgkjZGVmaW5lCUNGR19OSU9TX0NQVV9JQ0FDSEUJNDA5NgotICoJI2RlZmluZQlDRkdfTklPU19DUFVfRENBQ0hFCTAKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9CQVNFCTAKLSAqCSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX09DSV9TSVpFCTAKKyAqCSNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JQ0FDSEUJNDA5NgorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0RDQUNIRQkwCisgKgkjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UJMAorICoJI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX09DSV9TSVpFCTAKICAqLwogCiAvKiBDUFUgY29yZSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQ0xLCTUwMDAwMDAwCS8qIE5JT1MgQ1BVIGNsb2NrCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9JQ0FDSEUJKDQgKiAxMDI0KQkvKiBpbnN0cnVjdGlvbiBjYWNoZQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfRENBQ0hFCSg0ICogMTAyNCkJLyogZGF0YSBjYWNoZQkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JFR19OVU1TCTI1NgkJLyogbnVtYmVyIG9mIHJlZ2lzdGVyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9NVUwJMAkJLyogMTZ4MTYgTVVMOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0NMSwk1MDAwMDAwMAkvKiBOSU9TIENQVSBjbG9jawkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0lDQUNIRQkoNCAqIDEwMjQpCS8qIGluc3RydWN0aW9uIGNhY2hlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRENBQ0hFCSg0ICogMTAyNCkJLyogZGF0YSBjYWNoZQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SRUdfTlVNUwkyNTYJCS8qIG51bWJlciBvZiByZWdpc3RlcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX01VTAkwCQkvKiAxNngxNiBNVUw6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9NU1RFUAkxCQkvKiAxNngxNiBNU1RFUDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9NU1RFUAkxCQkvKiAxNngxNiBNU1RFUDoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NUQUNLCTB4MDA4ZmZmMDAJLyogc3RhY2sgdG9wCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1ZFQ19CQVNFCTB4MDA4ZmZmMDAJLyogSVJRIHZlY3RvcnMJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX1NJWkUJMjU2CQkvKgkJc2l6ZQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVkVDX05VTVMJNjQJCS8qCQludW1iZXJzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SU1RfVkVDVAkweDAwOTIwMDAwCS8qIFJFU0VUIHZlY3RvcglhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9EQkdfQ09SRQkwCQkvKiBDUFUgZGVidWc6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1RBQ0sJMHgwMDhmZmYwMAkvKiBzdGFjayB0b3AJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19CQVNFCTB4MDA4ZmZmMDAJLyogSVJRIHZlY3RvcnMJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1ZFQ19TSVpFCTI1NgkJLyoJCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9WRUNfTlVNUwk2NAkJLyoJCW51bWJlcnMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9SU1RfVkVDVAkweDAwOTIwMDAwCS8qIFJFU0VUIHZlY3RvcglhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfREJHX0NPUkUJMAkJLyogQ1BVIGRlYnVnOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwogCiAvKiBvbi1jaGlwIGV4dGVuc2lvbnMgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1JBTV9CQVNFCTB4MDA5MDAwMDAJLyogb24gY2hpcCBSQU0JYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUkFNX1NJWkUJKDY0ICogMTAyNCkJLyogNjQgS0IJc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9CQVNFCTB4MDA5MDAwMDAJLyogb24gY2hpcCBSQU0JYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1JBTV9TSVpFCSg2NCAqIDEwMjQpCS8qIDY0IEtCCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUk9NX0JBU0UJMHgwMDkyMDAwMAkvKiBvbiBjaGlwIFJPTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9ST01fU0laRQkoMiAqIDEwMjQpCS8qICAyIEtCCXNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9ST01fQkFTRQkweDAwOTIwMDAwCS8qIG9uIGNoaXAgUk9NCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9ST01fU0laRQkoMiAqIDEwMjQpCS8qICAyIEtCCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfT0NJX0JBU0UJMHgwMDkyMDgwMAkvKiBPQ0kgY29yZQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9PQ0lfU0laRQkyNTYJCS8qCQlzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX0JBU0UJMHgwMDkyMDgwMAkvKiBPQ0kgY29yZQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfT0NJX1NJWkUJMjU2CQkvKgkJc2l6ZQkqLwogCiAvKiB0aW1lciAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVJfTlVNUwkyCQkvKiBudW1iZXIgb2YgdGltZXIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUl9OVU1TCTIJCS8qIG51bWJlciBvZiB0aW1lcgkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjAJMHgwMDkyMDk0MAkvKiBUSU1FUjAJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX0lSUQkxNgkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX1BFUgkxMDAwCQkvKiAgcGVyaW9kZQl1c2VjCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfQVIJMAkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwCTB4MDA5MjA5NDAJLyogVElNRVIwCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjBfSVJRCTE2CQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX1BFUgkxMDAwCQkvKiAgcGVyaW9kZQl1c2VjCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0FSCTAJCS8qICBhbHdheXMgcnVuOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIwX0ZQCTAJCS8qICBmaXhlZCBwZXI6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX0ZQCTAJCS8qICBmaXhlZCBwZXI6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjBfU1MJMQkJLyogIHNuYXBob3Q6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIwX1NTCTEJCS8qICBzbmFwaG90OglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjEJMHgwMDkyMDllMAkvKiBUSU1FUjEJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIxX0lSUQk1MAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIxX1BFUgkxMDAwMAkJLyogIHBlcmlvZGUJdXNlYwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVElNRVIxX0FSCTEJCS8qICBhbHdheXMgcnVuOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMQkweDAwOTIwOWUwCS8qIFRJTUVSMQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElNRVIxX0lSUQk1MAkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1RJTUVSMV9QRVIJMTAwMDAJCS8qICBwZXJpb2RlCXVzZWMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfQVIJMQkJLyogIGFsd2F5cyBydW46CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9USU1FUjFfRlAJMQkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfRlAJMQkJLyogIGZpeGVkIHBlcjoJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJTUVSMV9TUwkwCQkvKiAgc25hcGhvdDoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9USU1FUjFfU1MJMAkJLyogIHNuYXBob3Q6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIHNlcmlhbCBpL28gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlRfTlVNUwkxCQkvKiBudW1iZXIgb2YgdWFydHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUX05VTVMJMQkJLyogbnVtYmVyIG9mIHVhcnRzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwCTB4MDA5MjA5MDAJLyogVUFSVDAJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfSVJRCTI1CQkvKgkJSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9VQVJUMF9CUgkxMTUyMDAJCS8qICBiYXVkcmF0ZQl2YXIoMCkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX1NCCTEJCS8qICBzdG9wIGJpdAkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX1BBCTAJCS8qICBwYXJpdHkJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwCTB4MDA5MjA5MDAJLyogVUFSVDAJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0lSUQkyNQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0JSCTExNTIwMAkJLyogIGJhdWRyYXRlCXZhcigwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1VBUlQwX0RCCTgJCS8qICBkYXRhIGJpdAkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9TQgkxCQkvKiAgc3RvcCBiaXQJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVUFSVDBfUEEJMAkJLyogIHBhcml0eQlub25lKDApCSovCiAJCQkJCQkvKgkJb2RkKDEpCSovCiAJCQkJCQkvKgkJZXZlbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfVUFSVDBfSFMJMAkJLyogIGhhbmRzaGFrZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9IUwkwCQkvKiAgaGFuZHNoYWtlOglubygwKQkqLwogCQkJCQkJLyoJCWNydHMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VBUlQwX0VPUAkwCQkvKiAgZW9wIHJlZzoJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VQVJUMF9FT1AJMAkJLyogIGVvcCByZWc6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCiAKIC8qIHBhcmFsbGVsIGkvbyAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPX05VTVMJOAkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPX05VTVMJOAkJLyogbnVtYmVyIG9mIHBhcnBvcnRzCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzAJMHgwMDkyMDk2MAkvKiBQSU8wCQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0lSUQk0MAkJLyoJCUlSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9CSVRTCTQJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX1RZUEUJMgkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wCTB4MDA5MjA5NjAJLyogUElPMAkJYWRkcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVJRCTQwCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9CSVRTCTQJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMF9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzBfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfQ0FQCTEJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMF9FREdFCTMJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8wX0VER0UJMwkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8wX0lUWVBFCTIJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzBfSVRZUEUJMgkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMQkweDAwOTIwOTcwCS8qIFBJTzEJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPMV9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9CSVRTCTExCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMQkweDAwOTIwOTcwCS8qIFBJTzEJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0JJVFMJMTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMV9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzFfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMV9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8xX0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8xX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzFfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMgkweDAwOTIwOTgwCS8qIFBJTzIJCWFkZHIJKi8KLSN1bmRlZglDRkdfTklPU19DUFVfUElPMl9JUlEJCQkvKgkJdy9vIElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9CSVRTCTgJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yCTB4MDA5MjA5ODAJLyogUElPMgkJYWRkcgkqLworI3VuZGVmCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9JUlEJCQkvKgkJdy9vIElSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfQklUUwk4CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzJfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8yX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzJfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPMl9FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPMl9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8yX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzMJMHgwMDkyMDk5MAkvKiBQSU8zCQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzNfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfQklUUwkxNgkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzMJMHgwMDkyMDk5MAkvKiBQSU8zCQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19CSVRTCTE2CQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzNfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU8zX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0NBUAkwCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzNfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPM19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPM19JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU8zX0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzQJMHgwMDkyMDlhMAkvKiBQSU80CQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzRfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9UWVBFCTAJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNAkweDAwOTIwOWEwCS8qIFBJTzQJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU80X1RZUEUJMAkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU80X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzRfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzRfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNF9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81CTB4MDA5MjA5YjAJLyogUElPNQkJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9JUlEJMzUJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9UWVBFCTIJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNQkweDAwOTIwOWIwCS8qIFBJTzUJCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0lSUQkzNQkJLyoJCUlSUQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzVfVFlQRQkyCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLwogCQkJCQkJLyoJCW91dCgxKQkqLwogCQkJCQkJLyoJCWluKDIpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU81X0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0NBUAkxCQkvKiAgY2FwdHVyZToJbm8oMCkJKi8KIAkJCQkJCS8qCQl5ZXMoMSkJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzVfRURHRQkzCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNV9FREdFCTMJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlmYWxsKDEpCSovCiAJCQkJCQkvKgkJcmlzZSgyKQkqLwogCQkJCQkJLyoJCWFueSgzKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNV9JVFlQRQkyCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU81X0lUWVBFCTIJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWxldmVsKDEpKi8KIAkJCQkJCS8qCQllZGdlKDIpCSovCiAKLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzYJMHgwMDkyMDljMAkvKiBQSU82CQlhZGRyCSovCi0jdW5kZWYJQ0ZHX05JT1NfQ1BVX1BJTzZfSVJRCQkJLyoJCXcvbyBJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfQklUUwkxCQkvKiAgbnVtYmVyICBvZiAgYml0cwkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNgkweDAwOTIwOWMwCS8qIFBJTzYJCWFkZHIJKi8KKyN1bmRlZglDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfSVJRCQkJLyoJCXcvbyBJUlEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU82X1RZUEUJMQkJLyogIGlvIHR5cGU6CXRyaXMoMCkJKi8KIAkJCQkJCS8qCQlvdXQoMSkJKi8KIAkJCQkJCS8qCQlpbigyKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPNl9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9DQVAJMAkJLyogIGNhcHR1cmU6CW5vKDApCSovCiAJCQkJCQkvKgkJeWVzKDEpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU82X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzZfRURHRQkwCQkvKiAgZWRnZSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJZmFsbCgxKQkqLwogCQkJCQkJLyoJCXJpc2UoMikJKi8KIAkJCQkJCS8qCQlhbnkoMykJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzZfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPNl9JVFlQRQkwCQkvKiAgSVJRIHR5cGU6CW5vbmUoMCkJKi8KIAkJCQkJCS8qCQlsZXZlbCgxKSovCiAJCQkJCQkvKgkJZWRnZSgyKQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83CTB4MDA5MjA5ZDAJLyogUElPNwkJYWRkcgkqLwotI3VuZGVmCUNGR19OSU9TX0NQVV9QSU83X0lSUQkJCS8qCQl3L28gSVJRCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83X0JJVFMJMQkJLyogIG51bWJlciAgb2YgIGJpdHMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfVFlQRQkxCQkvKiAgaW8gdHlwZToJdHJpcygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzcJMHgwMDkyMDlkMAkvKiBQSU83CQlhZGRyCSovCisjdW5kZWYJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0lSUQkJCS8qCQl3L28gSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19CSVRTCTEJCS8qICBudW1iZXIgIG9mICBiaXRzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUElPN19UWVBFCTEJCS8qICBpbyB0eXBlOgl0cmlzKDApCSovCiAJCQkJCQkvKgkJb3V0KDEpCSovCiAJCQkJCQkvKgkJaW4oMikJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1BJTzdfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfQ0FQCTAJCS8qICBjYXB0dXJlOglubygwKQkqLwogCQkJCQkJLyoJCXllcygxKQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfUElPN19FREdFCTAJCS8qICBlZGdlIHR5cGU6CW5vbmUoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9QSU83X0VER0UJMAkJLyogIGVkZ2UgdHlwZToJbm9uZSgwKQkqLwogCQkJCQkJLyoJCWZhbGwoMSkJKi8KIAkJCQkJCS8qCQlyaXNlKDIpCSovCiAJCQkJCQkvKgkJYW55KDMpCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9QSU83X0lUWVBFCTAJCS8qICBJUlEgdHlwZToJbm9uZSgwKQkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1BJTzdfSVRZUEUJMAkJLyogIElSUSB0eXBlOglub25lKDApCSovCiAJCQkJCQkvKgkJbGV2ZWwoMSkqLwogCQkJCQkJLyoJCWVkZ2UoMikJKi8KIAogLyogSURFIGkvZiAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfSURFX05VTVMJMQkJLyogbnVtYmVyIG9mIElERSBjb250ci4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0lERTAJMHgwMDkyMGEwMAkvKiBJREUwCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfSURFX05VTVMJMQkJLyogbnVtYmVyIG9mIElERSBjb250ci4JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9JREUwCTB4MDA5MjBhMDAJLyogSURFMAkJYWRkcgkqLwogCiAvKiBtZW1vcnkgYWNjZXNzaWJpbGl0eSAqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU1JBTV9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgU1JBTQlhZGRyCSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TUkFNX1NJWkUJKDEwMjQgKiAxMDI0KQkvKiAgMSBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9CQVNFCTB4MDA4MDAwMDAJLyogYm9hcmQgU1JBTQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU1JBTV9TSVpFCSgxMDI0ICogMTAyNCkJLyogIDEgTUIJc2l6ZQkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9TRFJBTV9CQVNFCTB4MDEwMDAwMDAJLyogYm9hcmQgU0RSQU0JYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfU0RSQU1fU0laRQkoMTYqMTAyNCoxMDI0KQkvKiAxNiBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfU0RSQU1fQkFTRQkweDAxMDAwMDAwCS8qIGJvYXJkIFNEUkFNCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9TRFJBTV9TSVpFCSgxNioxMDI0KjEwMjQpCS8qIDE2IE1CCXNpemUJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfRkxBU0hfQkFTRQkweDAwMDAwMDAwCS8qIGJvYXJkIEZsYXNoCWFkZHIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0ZMQVNIX1NJWkUJKDgqMTAyNCoxMDI0KQkvKiAgOCBNQglzaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfRkxBU0hfQkFTRQkweDAwMDAwMDAwCS8qIGJvYXJkIEZsYXNoCWFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9GTEFTSF9TSVpFCSg4KjEwMjQqMTAyNCkJLyogIDggTUIJc2l6ZQkqLwogCiAvKiBMQU4gKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTl9OVU1TCTEJCS8qIG51bWJlciBvZiBMQU4gaS9mCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOX05VTVMJMQkJLyogbnVtYmVyIG9mIExBTiBpL2YJKi8KIAotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9CQVNFCTB4MDA5MTAwMDAJLyogTEFOMAkJYWRkcgkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9PRkZTCTB4MDMwMAkJLyoJCW9mZnNldAkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfTEFOMF9JUlEJMzAJCS8qCQlJUlEJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xBTjBfQlVTVwkzMgkJLyoJICAgICAgICBidXN3aWR0aCovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MQU4wX1RZUEUJMAkJLyoJc21jOTExMTEoMCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX0JBU0UJMHgwMDkxMDAwMAkvKiBMQU4wCQlhZGRyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9PRkZTCTB4MDMwMAkJLyoJCW9mZnNldAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xBTjBfSVJRCTMwCQkvKgkJSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfTEFOMF9CVVNXCTMyCQkvKgkgICAgICAgIGJ1c3dpZHRoKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQU4wX1RZUEUJMAkJLyoJc21jOTExMTEoMCkJKi8KIAkJCQkJCS8qCWNzODkwMCgxKQkqLwogCQkJCQkJLyogZXg6CWFsdGVyYW1hYygyKQkqLwogCiAvKiBzeW1ib2xpYyByZWRlZmluaXRpb24gKHVuZGVmLCBpZiBub3QgcHJlc2VudCkgKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1VTRVJfVElNRVIJCTAJLyogVElNRVIwOiB1c2VycyBjaG9pY2UJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1RJQ0tfVElNRVIJCTEJLyogVElNRVIxOiB0aWNrIChuZWVkZWQpKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9VU0VSX1RJTUVSCQkwCS8qIFRJTUVSMDogdXNlcnMgY2hvaWNlCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfVElDS19USU1FUgkJMQkvKiBUSU1FUjE6IHRpY2sgKG5lZWRlZCkqLwogCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9CVVRUT05fUElPCQkwCS8qIFBJTzA6IGJ1dHRvbnMJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0xDRF9QSU8JCTEJLyogUElPMTogQVNDSUkgTENECSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9MRURfUElPCQkyCS8qIFBJTzI6IExFRCBiYXIJKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkzCS8qIFBJTzM6IDctc2VnLiBkaXNwbGF5CSovCi0jZGVmaW5lCUNGR19OSU9TX0NQVV9SRUNPTkZfUElPCQk0CS8qIFBJTzQ6IHJlY29uZiBwaW4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGUFJFU0VOVF9QSU8JNQkvKiBQSU81OiBDRiBwcmVzZW50IElSUQkqLwotI2RlZmluZQlDRkdfTklPU19DUFVfQ0ZQT1dFUl9QSU8JNgkvKiBQSU82OiBDRiBwb3dlci9zdy4JKi8KLSNkZWZpbmUJQ0ZHX05JT1NfQ1BVX0NGQVRBU0VMX1BJTwk3CS8qIFBJTzc6IENGIEFUQSBzZWxlY3QJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9CVVRUT05fUElPCQkwCS8qIFBJTzA6IGJ1dHRvbnMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9MQ0RfUElPCQkxCS8qIFBJTzE6IEFTQ0lJIExDRAkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX0xFRF9QSU8JCTIJLyogUElPMjogTEVEIGJhcgkqLworI2RlZmluZQlDT05GSUdfU1lTX05JT1NfQ1BVX1NFVkVOU0VHX1BJTwkzCS8qIFBJTzM6IDctc2VnLiBkaXNwbGF5CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfUkVDT05GX1BJTwkJNAkvKiBQSU80OiByZWNvbmYgcGluCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQUkVTRU5UX1BJTwk1CS8qIFBJTzU6IENGIHByZXNlbnQgSVJRCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTklPU19DUFVfQ0ZQT1dFUl9QSU8JNgkvKiBQSU82OiBDRiBwb3dlci9zdy4JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19OSU9TX0NQVV9DRkFUQVNFTF9QSU8JNwkvKiBQSU83OiBDRiBBVEEgc2VsZWN0CSovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19ESzFTMTBfU1RBTkRBUkRfMzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RQNDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvRFA0MDUuaAppbmRleCBkZjliYzdhLi4wZmY0ZjdkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRFA0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRFA0MDUuaApAQCAtNTAsNyArNTAsNyBAQAogCiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC04Miw3ICs4Miw3IEBACiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19NQzE0NjgxOAkJLyogRFMxNjg1IGlzIE1DMTQ2ODE4IGNvbXBhdGlibGUqLwotI2RlZmluZSBDRkdfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzCQkqLwogCiAjZGVmaW5lIENPTkZJR19TRFJBTV9CQU5LMAkxCS8qIGluaXQgb25ib2FyZCBTRFJBTSBiYW5rIDAJKi8KIApAQCAtOTEsNTAgKzkxLDUwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKICN1bmRlZglDT05GSUdfVUFSVDFfQ09OU09MRQkJLyogZGVmaW5lIGZvciB1YXJ0MSBhcyBjb25zb2xlCSovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRSAxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTUxLDY2ICsxNTEsNjYgQEAKIAogI3VuZGVmCUNPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZDMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAkgICAgLyogdXNlIGZvciBKRkZTMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgRkxBU0hfQkFTRTBfUFJFTElNKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBGTEFTSF9CQVNFMF9QUkVMSU0pCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbHNlCi0jIHVuZGVmIENGR19SQU1CT09UCisjIHVuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyMSwyNCArMjIxLDI0IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg3MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogCQkJCSAgIC8qIHRvdGFsIHNpemUgb2YgYSBDQVQyNFdDMTYgaXMgMjA0OCBieXRlcyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMjQ4LDQ3ICsyNDgsNDcgQEAKICNkZWZpbmUgUlRDX0JBCQkweEYwMDAwNTAwCSAgICAvKiBSVEMgQmFzZSBBZGRyZXNzCQkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEsIE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEY0MDE4MDAwICAvKiBCQVM9MHhGNDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEY0MDE4MDAwICAvKiBCQVM9MHhGNDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAjZW5kaWYKIAogLyogTWVtb3J5IEJhbmsgMiAoOCBCaXQgUGVyaXBoZXJhbDogQ0FOLCBVQVJULCBSVEMpIGluaXRpYWxpemF0aW9uCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKICAqLwotI2RlZmluZSBDRkdfRlBHQV9YQzk1WEwJCTEJICAgIC8qIHVzaW5nIFhpbGlueCBYQzk1WEwgQ1BMRAkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBDUExEICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9YQzk1WEwJCTEJICAgIC8qIHVzaW5nIFhpbGlueCBYQzk1WEwgQ1BMRAkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgQ1BMRCAgICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBKVEFHIFRNUyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEpUQUcgVENLIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEpUQUcgVERPLT5UREkgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIHVudXNlZCAocHBjIGlucHV0KQkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEpUQUcgVERJLT5URE8gcGluIChwcGMgaW5wdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEpUQUcgVE1TIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEpUQUcgVENLIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogdW51c2VkIChwcGMgaW5wdXQpCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEpUQUcgVERJLT5URE8gcGluIChwcGMgaW5wdXQpICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC0zMDYsMTMgKzMwNiwxMyBAQAogLyogR1BJTyBPdXRwdXQ6CQlPU1I9MDAsIElTUj0wMCwgVFNSPTAwLCBUQ1I9MSAqLwogLyogQWx0LiBGdW50aW9uIElucHV0OglPU1I9MDAsIElTUj0wMSwgVFNSPTAwLCBUQ1I9MCAqLwogLyogQWx0LiBGdW50aW9uIE91dHB1dDogT1NSPTAxLCBJU1I9MDAsIFRTUj0wMCwgVENSPTEgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4NDAwMDA1NDAgIC8qCTAgLi4uIDE1ICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDAwMDAwMTEwICAvKiAxNiAuLi4gMzEgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwICAvKgkwIC4uLiAxNSAqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTQwMDAwNDUgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEY3RkUwMDE0ICAvKgkwIC4uLiAzMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4NDAwMDA1NDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHgwMDAwMDExMCAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTQwMDAwNDUgIC8qIDE2IC4uLiAzMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMCAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEY3RkUwMDE0ICAvKgkwIC4uLiAzMSAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9EVTQwNS5oIGIvaW5jbHVkZS9jb25maWdzL0RVNDA1LmgKaW5kZXggYjkzZTJhOC4uOTM5ZTIxNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0RVNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0RVNDA1LmgKQEAgLTUyLDcgKzUyLDcgQEAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTg4LDQ0ICs4OCw0NCBAQAogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIEJRMzI4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwMDgwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDAwODAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwICAvKiB1c2UgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMCAgLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jawkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE0NCwxNCArMTQ0LDE0IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkJMAkvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNAkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLUlTRVI0CSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmYwMDAwMDEJLyogMTZNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmZTAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmZTAwMDAxCS8qIDJNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA0CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktSVNFUjQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZmMDAwMDAxCS8qIDE2TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmZTAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmUwMDAwMQkvKiAyTUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCkBAIC0xNjEsNzAgKzE2MSw3MCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogbm8gcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMDgpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogdXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDAJLyogZW52aXJvbm1lbnQgc3RhcnRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEVFUFJPTSAqLwpAQCAtMjU2LDM2ICsyNTYsMzYgQEAKICNkZWZpbmUgRlBHQV9NT0RFX1JFRwkoRFVBUlRfQkErMHg4MCkJICAgIC8qIEZQR0EgTW9kZSBSZWdpc3RlcgkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJRkxBU0gwX0JBIHwgMHg1QTAwMCAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCUZMQVNIMF9CQSB8IDB4NUEwMDAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJRkxBU0gxX0JBIHwgMHg1QTAwMCAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCUZMQVNIMV9CQSB8IDB4NUEwMDAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUglDQU5fQkEgfCAweDE4MDAwICAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUglDQU5fQkEgfCAweDE4MDAwICAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoRFVBUlQpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkweDAxMDA1M0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJRFVBUlRfQkEgfCAweDE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJRFVBUlRfQkEgfCAweDE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKENvbXBhY3RGbGFzaCBJREUpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCUNGX0JBIHwgMHgxQTAwMAkgICAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUglDRl9CQSB8IDB4MUEwMDAJICAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDUgKFNSQU0pIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkweDAxMDA1M0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEI1Q1IJU1JBTV9CQSB8IDB4MUEwMDAgICAvKiBCQVM9MHhGMDIsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUAkweDAxMDA1M0MwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSCVNSQU1fQkEgfCAweDFBMDAwICAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgNiAoRFVSQUcgQnVzIElPIFNwYWNlKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZDUglEVVJBR19JT19CQSB8IDB4MTgwMDAgLyogQkFTPTB4RjA0LEJTPTFNQixCVT1SL1csQlc9OGJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkFQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2Q1IJRFVSQUdfSU9fQkEgfCAweDE4MDAwIC8qIEJBUz0weEYwNCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQqLwogCiAvKiBNZW1vcnkgQmFuayA3IChEVVJBRyBCdXMgTWVtIFNwYWNlKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCN0FQCTB4MDEwMDUzQzAgICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjdDUglEVVJBR19NRU1fQkEgfCAweDE4MDAwIC8qIEJBUz0weEYwNSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI3QVAJMHgwMTAwNTNDMCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjdDUglEVVJBR19NRU1fQkEgfCAweDE4MDAwIC8qIEJBUz0weEYwNSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTMsMTcgKzI5MywxNyBAQAogICovCiAKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0RVNDQwLmggYi9pbmNsdWRlL2NvbmZpZ3MvRFU0NDAuaAppbmRleCBjNDA4ZTQzLi41MDhhMGNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRFU0NDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRFU0NDAuaApAQCAtNDUsNTIgKzQ1LDUyIEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoOCA8PCAyMCkJLyogUmVzZXJ2ZSA4IE1CIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDggPDwgMjApCS8qIFJlc2VydmUgOCBNQiBmb3IgbWFsbG9jKCkgICovCiAKLSNkZWZpbmUgQ0ZHX0JPT1RfQkFTRV9BRERSCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19OQU5EMF9BRERSCQkweGQwMDAwMDAwICAgICAgLyogTkFORCBGbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX05BTkQxX0FERFIJCTB4ZDAxMDAwMDAgICAgICAvKiBOQU5EIEZsYXNoCQkqLwotI2RlZmluZSBDRkdfT0NNX0JBU0UJCTB4ZTAwMTAwMDAgICAgICAvKiBvY20JCQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZTAwMDAwMDAgICAgICAvKiBJbnRlcm5hbCBQQ0kgcmVncwkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMQlDRkdfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UyCUNGR19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTMJQ0ZHX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT0JBU0UgICAgICAgICAgMHhlODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmMwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDBfQUREUgkJMHhkMDAwMDAwMCAgICAgIC8qIE5BTkQgRmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQUREUgkJMHhkMDEwMDAwMCAgICAgIC8qIE5BTkQgRmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0JBU0UJCTB4ZTAwMTAwMDAgICAgICAvKiBvY20JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGUwMDAwMDAwICAgICAgLyogSW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzCUNPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT0JBU0UgICAgICAgICAgMHhlODAwMDAwMAogCiAKIC8qIERvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UgKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KIAotI2RlZmluZSBDRkdfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9IT1NUCQkweGUwMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfREVWSUNFCQkweGUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0hPU1QJCTB4ZTAwMDA0MDAKIAogLyoKICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlcgogICovCiAvKiA0NDBFUHgvNDQwR1J4IGhhdmUgMTZLQiBvZiBpbnRlcm5hbCBTUkFNLCBzbyBubyBuZWVkIGZvciBELUNhY2hlCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9PQ00JMQkJLyogT0NNIGFzIGluaXQgcmFtCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fQkFTRQkvKiBPQ00JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX09DTQkxCQkvKiBPQ00gYXMgaW5pdCByYW0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0JBU0UJLyogT0NNCQkJKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJICAgICAxCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qCkBAIC0xMDQsMTAgKzEwNCwxMCBAQAogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTl9BTElHTgogI2RlZmluZSBDT05GSUdfVklERU9fQk1QX0daSVAgICAgICAgICAgICAgIC8qIGd6aXAgY29tcHJlc3NlZCBibXAgaW1hZ2VzICovCi0jZGVmaW5lIENGR19WSURFT19MT0dPX01BWF9TSVpFICg0IDw8IDIwKSAgLyogZm9yIGRlY29tcHJlc3NlZCBpbWcgKi8KLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfVklERU9fTU9ERSAweDMxYSAgICAgICAvKiAxMjgweDEwMjQsMTZicHAgKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCi0jZGVmaW5lIENGR19JU0FfSU8gQ0ZHX1BDSV9JT0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFICg0IDw8IDIwKSAgLyogZm9yIGRlY29tcHJlc3NlZCBpbWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX1ZJREVPX01PREUgMHgzMWEgICAgICAgLyogMTI4MHgxMDI0LDE2YnBwICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8gQ09ORklHX1NZU19QQ0lfSU9CQVNFCiAKIC8qCiAgKiBFbnZpcm9ubWVudApAQCAtMTE3LDI3ICsxMTcsMjcgQEAKIC8qCiAgKiBGTEFTSCByZWxhdGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgKi8KIC8qIENGSV9GTEFTSF9QUk9URUNUSU9OIG1ha2UgZmxhc2hfcHJvdGVjdCBoYW5nIHNvbWV0aW1lcyAtPiBkaXNhYmxlZCAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwIC8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvciAgICAgICAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DRkdfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAgICovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTU0LDkgKzE1NCw5IEBACiAvKgogICogRERSIFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX01CWVRFU19TRFJBTSAgICAgICAgKDEwMjQpCS8qIDUxMiBNaUIgICAgICBUT0RPOiByZW1vdmUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfU0RSQU0gICAgICAgICgxMDI0KQkvKiA1MTIgTWlCICAgICAgVE9ETzogcmVtb3ZlICAgICovCiAjZGVmaW5lIENPTkZJR19ERFJfREFUQV9FWUUJCS8qIHVzZSBERFIyIG9wdGltaXphdGlvbiAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTV9UT1BfSElERSAgICAgICAgKDQgPDwgMTApIC8qIGRvbid0IHVzZSBsYXN0IDRrYnl0ZXMgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX1RPUF9ISURFICAgICAgICAoNCA8PCAxMCkgLyogZG9uJ3QgdXNlIGxhc3QgNGtieXRlcyAgICAgKi8KIAkJCQkJLyogNDQwRVB4IGVycmF0YSBDSElQIDExICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTQkJLyogVXNlIFNQRCBFRVBST00gZm9yIHNldHVwICAgICAqLwogI2RlZmluZSBDT05GSUdfRERSX0VDQwkJCS8qIFVzZSBFQ0Mgd2hlbiBhdmFpbGFibGUgICAgICAgKi8KQEAgLTE2OCwyNiArMTY4LDI2IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgICAgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkgICAgICAgICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUgICAgIDEKICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMgICAgMQogCi0jZGVmaW5lIENGR19TUERfQlVTX05VTSAgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTSAgICAgICAgIDAKICNkZWZpbmUgSUlDMV9NQ1AzMDIxX0FERFIJMHg0ZAogI2RlZmluZSBJSUMxX1VTQjI1MDdfQUREUgkweDJjCiAjaWZkZWYgQ09ORklHX0kyQ19NVUxUSV9CVVMKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgICAge3sxLCBJSUMxX1VTQjI1MDdfQUREUn19CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7ezEsIElJQzFfVVNCMjUwN19BRERSfX0KICNlbmRpZgotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU0Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVyAweDAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XIDB4MDEKIAotI2RlZmluZSBDRkdfRUVQUk9NX1dSRU4gICAgICAgICAxCi0jZGVmaW5lIENGR19JMkNfQk9PVF9FRVBST01fQUREUiAweDUyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dSRU4gICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0JPT1RfRUVQUk9NX0FERFIgMHg1MgogCiAvKgogICogc3RhbmRhcmQgZHR0IHNlbnNvciBjb25maWd1cmF0aW9uIC0gYm90dG9tIGJpdCB3aWxsIGRldGVybWluZSBsb2NhbCBvcgpAQCAtMjA3LDEzICsyMDcsMTMgQEAKICAqIC0gcmVtb3RlIHRlbXAgc2Vuc29yIGVuYWJsZWQsIG1pbiBzZXQgdG8gMCBkZWcsIG1heCBzZXQgdG8gNzAgZGVnCiAgKi8KICNkZWZpbmUgQ09ORklHX0RUVF9BRE0xMDIxCi0jZGVmaW5lIENGR19EVFRfQURNMTAyMQkJeyB7IDB4NGMsIDB4MDIsIDAsIDEsIDcwLCAwLCAxLCA3MCwgMH0gfQorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9BRE0xMDIxCQl7IHsgMHg0YywgMHgwMiwgMCwgMSwgNzAsIDAsIDEsIDcwLCAwfSB9CiAKIC8qCiAgKiBSVEMgc3R1ZmYKICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzOAotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogCiAjdW5kZWYJQ09ORklHX0JPT1RBUkdTCiAKQEAgLTI0Nyw3ICsyNDcsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzCSovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIGludCBkdTQ0MF9waHlfYWRkcihpbnQgZGV2bnVtKTsKQEAgLTI2MSw3ICsyNjEsNyBAQAogI3VuZGVmIENPTkZJR19QSFlfR0lHRQkJCS8qIG5vIEdiRSBkZXRlY3Rpb24JCSovCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTI4CiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQkJMQkvKiBhZGQgc3VwcG9ydCBmb3IgImV0aDFhZGRyIgkqLwpAQCAtMjcyLDEyICsyNzIsMTIgQEAKICAqLwogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCiAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQotI2RlZmluZSBDRkdfT0hDSV9CRV9DT05UUk9MTEVSCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9CRV9DT05UUk9MTEVSCiAKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQlDRkdfVVNCX0hPU1QKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkiZHU0NDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJQ09ORklHX1NZU19VU0JfSE9TVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkiZHU0NDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKIAogLyogQ29tbWVudCB0aGlzIG91dCB0byBlbmFibGUgVVNCIDEuMSBkZXZpY2UgKi8KICNkZWZpbmUgVVNCXzJfMF9ERVZJQ0UKQEAgLTMxNywyNSArMzE3LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICAgIENGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4M2YwMDAwMDAgLyogNCAuLi4gPCAxR0IgRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDNmMDAwMDAwIC8qIDQgLi4uIDwgMUdCIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTM1NSw2NSArMzU1LDY1IEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyAobm90KSBwY2kgcGx1Zy1hbmQtcGxheSAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgICAgMHg4MDAwMDAwMCAvKiBQQ0lhZGRyIG1hcHBlZCB0byBDRkdfUENJX01FTUJBU0UqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAotI2RlZmluZSBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCi0jZGVmaW5lIENGR19GTEFTSAkJQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0NQTERfQkFTRQkJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfQ1BMRF9SQU5HRQkgICAgICAgIDB4MDAwMDAwMTAKLSNkZWZpbmUgQ0ZHX0RVTUVNX0JBU0UJCTB4QzAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0RVTUVNX1JBTkdFCQkweDAwMTAwMDAwCi0jZGVmaW5lIENGR19EVUlPX0JBU0UJCTB4QzAyMDAwMDAKLSNkZWZpbmUgQ0ZHX0RVSU9fUkFOR0UJICAgICAgICAweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFCQkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9SQU5HRQkgICAgICAgIDB4MDAwMDAwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19EVU1FTV9CQVNFCQkweEMwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFVNRU1fUkFOR0UJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EVUlPX0JBU0UJCTB4QzAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EVUlPX1JBTkdFCSAgICAgICAgMHgwMDAxMDAwMAogCi0jZGVmaW5lIENGR19OQU5EMF9DUwkJMgkJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3ggKi8KLSNkZWZpbmUgQ0ZHX05BTkQxX0NTCQkzCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0NTCQkyCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX0NTCQkzCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLwogLyogTWVtb3J5IEJhbmsgMCAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDA0MDE3MjAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfRkxBU0hfQkFTRSB8IDB4ZGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDA0MDE3MjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHhkYTAwMCkKIAogLyogTWVtb3J5IEJhbmsgMSAoQ1BMRCwgMTYgYnl0ZXMgbmVlZGVkLCBidXQgMU1CIGlzIG1pbmltdW0pICovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKENGR19DUExEX0JBU0UgfCAweDE4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJKENPTkZJR19TWVNfQ1BMRF9CQVNFIHwgMHgxODAwMCkKIAogLyogTWVtb3J5IEJhbmsgMiAoTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX05BTkQwX0FERFIgfCAweDFjMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfTkFORDBfQUREUiB8IDB4MWMwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDMgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJKENGR19OQU5EMV9BRERSIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX05BTkQxX0FERFIgfCAweDFjMDAwKQogCiAvKiBNZW1vcnkgQmFuayA0IChEVU1FTSwgMU1CKSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAxODA1M2MwCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCShDRkdfRFVNRU1fQkFTRSB8IDB4MTgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDAxODA1M2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkoQ09ORklHX1NZU19EVU1FTV9CQVNFIHwgMHgxODAwMCkKIAogLyogTWVtb3J5IEJhbmsgNSAoRFVJTywgNjRLQiBuZWVkZWQsIGJ1dCAxTUIgaXMgbWluaW11bSkgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkJMHgwMTgwNTNjMAotI2RlZmluZSBDRkdfRUJDX1BCNUNSCQkoQ0ZHX0RVSU9fQkFTRSB8IDB4MTgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQCQkweDAxODA1M2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSCQkoQ09ORklHX1NZU19EVUlPX0JBU0UgfCAweDE4MDAwKQogCiAvKgogICogTkFORCBGTEFTSAogICovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMgotI2RlZmluZSBOQU5EX01BWF9DSElQUwkJQ0ZHX01BWF9OQU5EX0RFVklDRQotI2RlZmluZSBDRkdfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXtDRkdfTkFORDBfQUREUiArIENGR19OQU5EMF9DUywgXAotCQkJCSBDRkdfTkFORDFfQUREUiArIENGR19OQU5EMV9DU30KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMgorI2RlZmluZSBOQU5EX01BWF9DSElQUwkJQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXtDT05GSUdfU1lTX05BTkQwX0FERFIgKyBDT05GSUdfU1lTX05BTkQwX0NTLCBcCisJCQkJIENPTkZJR19TWVNfTkFORDFfQUREUiArIENPTkZJR19TWVNfTkFORDFfQ1N9CiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0VCK01DRi1FVjEyMy5oIGIvaW5jbHVkZS9jb25maWdzL0VCK01DRi1FVjEyMy5oCmluZGV4IDcyZjdiM2YuLjg3NmVjMjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FQitNQ0YtRVYxMjMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRUIrTUNGLUVWMTIzLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2RlZmluZSAgQ09ORklHX0VCX01DRl9FVjEyMwogCi0jdW5kZWYgQ0ZHX0hBTFRfQkVGT1JfUkFNX0pVTVAKKyN1bmRlZiBDT05GSUdfU1lTX0hBTFRfQkVGT1JfUkFNX0pVTVAKIAogLyoKICAqIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zIChlYXN5IHRvIGNoYW5nZSkKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFIDk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZglDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0JLyogZGVmaW5lIGlmIG1vbml0b3IgaXMgc3RhcnRlZCBmcm9tIGEgcHJlLWxvYWRlciAqLwogCkBAIC05MSwyMiArOTEsMjIgQEAKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTUNGRkVDCkBAIC0xMTksMTQ2ICsxMTksMTQ2IEBACiAjZW5kaWYJCQkJLyogQ09ORklHX01DRkZFQyAqLwogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQotI2RlZmluZSBDRkdfUFJPTVBUCQkiXG5FVjEyMyBVLUJvb3Q+ICIKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlxuRVYxMjMgVS1Cb290PiAiCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDQwMDAwMAotLyojZGVmaW5lIENGR19EUkFNX1RFU1QJCTEgKi8KLSN1bmRlZiBDRkdfRFJBTV9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDQwMDAwMAorLyojZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCQkxICovCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QKIAogLyogQ2xvY2sgYW5kIFBMTCBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAwMDAwCi0jZGVmaW5lCUNGR19DTEsJCQk1ODk4MjQwMCAgICAgICAvKiA5LDgzMDRNSHogKiA2ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0NMSwkJCTU4OTgyNDAwICAgICAgIC8qIDksODMwNE1IeiAqIDYgKi8KIAogLyogUExMIENvbmZpZ3VyYXRpb246IEV4dCBDbG9jayAqIDYgKHNlZSB0YWJsZSA5LTQgb2YgTUNGIHVzZXIgbWFudWFsKSAqLwogCi0jZGVmaW5lIENGR19NRkQJCQkweDAxCS8qIFBMTCBNdWx0aXBsaWNhdGlvbiBGYWN0b3IgRGV2aWRlciAqLwotI2RlZmluZSBDRkdfUkZECQkJMHgwMAkvKiBQTEwgUmVkdWNlIEZyZWN1ZW5jeSBEZXZpZGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTUZECQkJMHgwMQkvKiBQTEwgTXVsdGlwbGljYXRpb24gRmFjdG9yIERldmlkZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRkQJCQkweDAwCS8qIFBMTCBSZWR1Y2UgRnJlY3VlbmN5IERldmlkZXIgKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCiAgKiAoYWRkcmVzcyBtYXBwaW5ncywgcmVnaXN0ZXIgaW5pdGlhbCB2YWx1ZXMsIGV0Yy4pCiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwotI2RlZmluZQlDRkdfTUJBUgkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgICAweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFMQkJMHgwMDAwMDAwMAotI2RlZmluZQlDRkdfU0RSQU1fU0laRTEJCTE2CQkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRTEJCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9TSVpFMQkJMTYJCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KIAogLyoKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UwCQlDRkdfU0RSQU1fQkFTRTErQ0ZHX1NEUkFNX1NJWkUxKjEwMjQqMTAyNAotI2RlZmluZQlDRkdfU0RSQU1fU0laRTAJCTE2CSovCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFMAkJQ09ORklHX1NZU19TRFJBTV9CQVNFMStDT05GSUdfU1lTX1NEUkFNX1NJWkUxKjEwMjQqMTAyNAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUwCQkxNgkqLwkvKiBTRFJBTSBzaXplIGluIE1CICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19TRFJBTV9CQVNFMQotI2RlZmluZQlDRkdfU0RSQU1fU0laRQkJQ0ZHX1NEUkFNX1NJWkUxCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19TRFJBTV9CQVNFMQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUJCUNPTkZJR19TWVNfU0RSQU1fU0laRTEKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkUwMDAwMAotI2RlZmluZQlDRkdfSU5UX0ZMQVNIX0JBU0UJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfSU5UX0ZMQVNIX0VOQUJMRQkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkUwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRfRkxBU0hfRU5BQkxFCTB4MjEKIAogLyogSWYgTTUyODIgcG9ydCBpcyBmdWxseSBpbXBsZW1lbnRlZCB0aGUgbW9uaXRvciBiYXNlIHdpbGwgYmUgYmVoaW5kCiAgKiB0aGUgdmVjdG9yIHRhYmxlLiAqLwotI2lmIChURVhUX0JBU0UgIT0gIENGR19JTlRfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoVEVYVF9CQVNFICsgMHg0MDApCisjaWYgKFRFWFRfQkFTRSAhPSAgQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKFRFWFRfQkFTRSArIDB4NDAwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoVEVYVF9CQVNFICsgMHg0MTgpIC8qIDI0IEJ5dGUgZm9yIENGTS1Db25maWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKFRFWFRfQkFTRSArIDB4NDE4KSAvKiAyNCBCeXRlIGZvciBDRk0tQ29uZmlnICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9TRUNUCTM1Ci0jZGVmaW5lCUNGR19NQVhfRkxBU0hfQkFOS1MJMgotI2RlZmluZQlDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMDAwMDAwMAotI2RlZmluZQlDRkdfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZQlDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTM1CisjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKICAqLwogCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQkyKjEwMjQqMTAyNAotI2RlZmluZSBDRkdfQ1MwX1dJRFRICQkxNgotI2RlZmluZSBDRkdfQ1MwX1JPCQkwCi0jZGVmaW5lIENGR19DUzBfV1MJCTYKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCTIqMTAyNCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1dJRFRICQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9STwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9XUwkJNgogCi0jZGVmaW5lIENGR19DUzNfQkFTRQkJMHhFMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MzX1NJWkUJCTEqMTAyNCoxMDI0Ci0jZGVmaW5lIENGR19DUzNfV0lEVEgJCTE2Ci0jZGVmaW5lIENGR19DUzNfUk8JCTAKLSNkZWZpbmUgQ0ZHX0NTM19XUwkJNgorI2RlZmluZSBDT05GSUdfU1lTX0NTM19CQVNFCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NJWkUJCTEqMTAyNCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1dJRFRICQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NTM19STwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19XUwkJNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQb3J0IGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfUEFDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEEgRFszMToyNF0gKi8KLSNkZWZpbmUgQ0ZHX1BBRERSCQkweDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BBREFUCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQUNOVAkJMHgwMDAwMDAwCS8qIFBvcnQgQSBEWzMxOjI0XSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BBRERSCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQURBVAkJMHgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BCQ05UCQkweDAwMDAwMDAJLyogUG9ydCBCIERbMjM6MTZdICovCi0jZGVmaW5lIENGR19QQkREUgkJMHgwMDAwMDAwCi0jZGVmaW5lIENGR19QQkRBVAkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEJDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEIgRFsyMzoxNl0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQkREUgkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEJEQVQJCTB4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0NOVAkJMHgwMDAwMDAwCS8qIFBvcnQgQyBEWzE1OjA4XSAqLwotI2RlZmluZSBDRkdfUENERFIJCTB4MDAwMDAwMAotI2RlZmluZSBDRkdfUENEQVQJCTB4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDQ05UCQkweDAwMDAwMDAJLyogUG9ydCBDIERbMTU6MDhdICovCisjZGVmaW5lIENPTkZJR19TWVNfUENERFIJCTB4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDREFUCQkweDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUERDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEQgRFswNzowMF0gKi8KLSNkZWZpbmUgQ0ZHX1BDRERSCQkweDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDREFUCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QRENOVAkJMHgwMDAwMDAwCS8qIFBvcnQgRCBEWzA3OjAwXSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDRERSCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0RBVAkJMHgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BFSExQQVIJCTB4QzAKLSNkZWZpbmUgQ0ZHX1BVQVBBUgkJMHgwRgkJLyogVUEwLi5VQTMgPSBVYXJ0IDAgKzEgKi8KLSNkZWZpbmUgQ0ZHX0REUlVBCQkweDA1Ci0jZGVmaW5lIENGR19QSlBBUgkJMHhGRgorI2RlZmluZSBDT05GSUdfU1lTX1BFSExQQVIJCTB4QzAKKyNkZWZpbmUgQ09ORklHX1NZU19QVUFQQVIJCTB4MEYJCS8qIFVBMC4uVUEzID0gVWFydCAwICsxICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSVUEJCTB4MDUKKyNkZWZpbmUgQ09ORklHX1NZU19QSlBBUgkJMHhGRgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDQ00gY29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUJQ0ZHX0NDTV9TSVoJCTAKKyNkZWZpbmUJQ09ORklHX1NZU19DQ01fU0laCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNlbmRpZgkvKiBfQ09ORklHX001MjgyRVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FTFBQQy5oIGIvaW5jbHVkZS9jb25maWdzL0VMUFBDLmgKaW5kZXggMDhlM2Q3MS4uNzkzOTI2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VMUFBDLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VMUFBDLmgKQEAgLTYzLDcgKzYzLDcgQEAKICAgICAiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8gICAgICAgMCAgICAgICAvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRSAgICAgICAgICAgLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFICAgICAgICAgICAvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC04OCw4ICs4OCw4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiPT4gIiAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogLyoKICAqIGNob29zZSBiZXR3ZWVuIENPTTEgYW5kIENPTTIgYXMgc2VyaWFsIGNvbnNvbGUKQEAgLTk3LDcyICs5Nyw3MiBAQAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgICAxCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgMTAyNCAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDEwMjQgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAgICAgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTICAgICAgICAgICAgIDE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRSAgICAgICAgICAgIENGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgICAgICAgICAgICAgIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDAwMDAwMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweDA0MDAwMDAwICAvKiAwIC4uLiA2NCBNQiBpbiBEUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgICAgICAweDAwMDAwMDAwICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweDA0MDAwMDAwICAvKiAwIC4uLiA2NCBNQiBpbiBEUkFNICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgICAgICAgMHgxMDAwMDAwICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgICAgICAgIDB4MTAwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICAgICovCiAKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgICAgICAgMTAwMCAgICAgICAgLyogZGVjLiBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAxMDAwICAgICAgICAvKiBkZWMuIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKICAqIChhZGRyZXNzIG1hcHBpbmdzLCByZWdpc3RlciBpbml0aWFsIHZhbHVlcywgZXRjLikKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCi0jZGVmaW5lIENGR19CT0FSRF9BU01fSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgogCiAvKgogICogQWRkcmVzcyBtYXBwaW5nIHNjaGVtZSBmb3IgdGhlIE1QQzEwNyBtZW0gY29udHJvbGxlciBpcyBtYXBwaW5nIEIgKENIUlApCiAgKi8KLSN1bmRlZiAgQ0ZHX0FERFJFU1NfTUFQX0EKKyN1bmRlZiAgQ09ORklHX1NZU19BRERSRVNTX01BUF9BCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUyAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUgICAgIDB4NDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUENJX01FTV9CVVMgICAgICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMgICAgICAgIDB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRSAgICAgICAgMHg3ZDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQlVTICAgICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyAgICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSAgICAgICAgMHg3ZDAwMDAwMAogCi0jZGVmaW5lIENGR19JU0FfTUVNX0JVUyAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fUEhZUyAgICAgICAgMHhmZDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX01FTV9TSVpFICAgICAgICAweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTV9CVVMgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTV9QSFlTICAgICAgICAweGZkMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTV9TSVpFICAgICAgICAweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19CVVMgICAgICAgICAgMHgwMDgwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1BIWVMgICAgICAgICAweGZlODAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fU0laRSAgICAgICAgIDB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTICAgICAgICAgIDB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fUEhZUyAgICAgICAgIDB4ZmU4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRSAgICAgICAgIDB4MDA0MDAwMDAKIAotI2RlZmluZSBDRkdfSVNBX0lPX0JVUyAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU9fUEhZUyAgICAgICAgIDB4ZmUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19TSVpFICAgICAgICAgMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CVVMgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19QSFlTICAgICAgICAgMHhmZTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19TSVpFICAgICAgICAgMHgwMDgwMDAwMAogCiAvKiBkcml2ZXIgZGVmaW5lcyBGREMsSURFLC4uLiAqLwotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyBDRkdfSVNBX0lPX1BIWVMKLSNkZWZpbmUgQ0ZHX0lTQV9JTyAgICAgICAgICAgICAgQ0ZHX0lTQV9JT19QSFlTCi0jZGVmaW5lIENGR182MFhfUENJX0lPX09GRlNFVCAgIENGR19JU0FfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgQ09ORklHX1NZU19JU0FfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAgICAgICAgICAgICAgQ09ORklHX1NZU19JU0FfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTXzYwWF9QQ0lfSU9fT0ZGU0VUICAgQ09ORklHX1NZU19JU0FfSU9fUEhZUwogCiAvKgogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgICAgICAgICAgMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19VU1JfTEVEX0JBU0UgICAgICAgIDB4NzgwMDAwMDAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0UgICAgICAgICAgMHhmZjAwMDAwMAotI2RlZmluZSBDRkdfVUFSVF9CQVNFICAgICAgICAgICAweGZmNDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIDB4ZmZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU1JfTEVEX0JBU0UgICAgICAgIDB4NzgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFICAgICAgICAgIDB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX0JBU0UgICAgICAgICAgIDB4ZmY0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIDB4ZmZmMDAwMDAKIAogI2RlZmluZSBNUEMxMDdfRVVNQl9BRERSICAgICAgICAweGZjZTAwMDAwCiAjZGVmaW5lIE1QQzEwN19FVU1CX1BJICAgICAgICAgIDB4ZmNlNDEwOTAKQEAgLTE3MywxMSArMTczLDExIEBACiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgICAgMHgwMGZkMDAwMCAgLyogYWJvdmUgdGhlIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAgIDB4NDAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgICA2NCAgICAgICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgMHgwMGZkMDAwMCAgLyogYWJvdmUgdGhlIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgICAweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgIDY0ICAgICAgICAgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgICAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEZsYXNoIG1hcHBpbmcvb3JnYW5pemF0aW9uIG9uIHRoZSBNUEMxMHguCkBAIC0xODUsMTEgKzE4NSwxMSBAQAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0gICAgICAweGZmODAwMDAwCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTSAgICAgIDB4ZmZjMDAwMDAKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAyICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICA2NyAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAgIDIgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgICA2NyAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgICAxMjAwMDAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICAgIDUwMCAgICAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAgIDEyMDAwMCAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAgIDUwMCAgICAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMKQEAgLTIwOSwzMyArMjA5LDMzIEBACiAjZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJIm10ZHBhcnRzPWVscHBjLTA6LShqZmZzMiksZWxwcGMtMTotKHVzZXIpIgogKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgICAgICBDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4gICAgICAgICAweDQwMDAwICAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTiAgICAgICAgICAweDIwMDAwICAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KLSN1bmRlZiAgQ0ZHX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOICAgICAgICAgMHg0MDAwMCAgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgICAgIDB4MjAwMDAgICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI3VuZGVmICBDT05GSUdfU1lTX01FTVRFU1QKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTSAgICAgMSAgICAgICAgICAgLyogdXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJzICovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFICAgICAgICAgIDB4ODAwICAgICAgIC8qIE5WUkFNIHNpemUgKDJrQikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFICAgICAgICAgIDB4ODAwICAgICAgIC8qIE5WUkFNIHNpemUgKDJrQikgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgICAgICAgMHg0MDAgICAgICAgLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICgxa0IpICovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgICAgIDB4MAogI2RlZmluZSBDT05GSUdfRU5WX01BUF9BRFJTICAgICAgICAweGZmMDAwMDAwCi0jZGVmaW5lIENGR19OVl9TUk9NX0NPUFlfQUREUiAgIChDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NJWkUpCi0jZGVmaW5lIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORSAgICAgICAgICAgIC8qIG9ubHkgYnl0ZSBhY2NzZXNzIGFsb3dlZCAqLwotI2RlZmluZSBDRkdfU1JPTV9TSVpFICAgICAgICAgICAweDEwMCAgICAgICAvKiBzaGFkb3cgb2YgcmV2aXNpb24gaW5mbyBpcyBpbiBudnJhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX05WX1NST01fQ09QWV9BRERSICAgKENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORSAgICAgICAgICAgIC8qIG9ubHkgYnl0ZSBhY2NzZXNzIGFsb3dlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NST01fU0laRSAgICAgICAgICAgMHgxMDAgICAgICAgLyogc2hhZG93IG9mIHJldmlzaW9uIGluZm8gaXMgaW4gbnZyYW0gKi8KIAogLyoKICAqIFNlcmlhbCBkZXZpY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLICAgICAgICAgMjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAgICAgKENGR19VQVJUX0JBU0UgKyAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yICAgICAgICAoQ0ZHX1VBUlRfQkFTRSArIDgpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgICAgICAgICAyNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgKENPTkZJR19TWVNfVUFSVF9CQVNFICsgMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgICAgICAgIChDT05GSUdfU1lTX1VBUlRfQkFTRSArIDgpCiAKIC8qCiAgKiBQQ0kgc3R1ZmYKQEAgLTI2Myw3NCArMjYzLDc0IEBACiAgKi8KICNpZiAxCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAwCi0jZGVmaW5lIENGR19JQkFUMFUgMAotI2RlZmluZSBDRkdfREJBVDBMIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQwVSBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQxVQogCi0jZGVmaW5lIENGR19JQkFUMUwgMAotI2RlZmluZSBDRkdfSUJBVDFVIDAKLSNkZWZpbmUgQ0ZHX0RCQVQxTCBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVIDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgQ09ORklHX1NZU19JQkFUMVUKIAotI2RlZmluZSBDRkdfSUJBVDJMIDAKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAwCi0jZGVmaW5lIENGR19EQkFUMkwgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVIENGR19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIENPTkZJR19TWVNfSUJBVDJVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAwCi0jZGVmaW5lIENGR19JQkFUM1UgMAotI2RlZmluZSBDRkdfREJBVDNMIENGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVSBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMIDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSBDT05GSUdfU1lTX0lCQVQzVQogCiAjZWxzZQogCiAvKiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSUJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUlcpCi0jZGVmaW5lIENGR19JQkFUMFUgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUlcpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgQ09ORklHX1NZU19JQkFUMVUKIAogLyogYWRkcmVzcyByYW5nZSBmb3IgZmxhc2hlcyAqLwotI2RlZmluZSBDRkdfSUJBVDFMIChDRkdfRkxBU0hfQkFTRSB8IEJBVExfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDFMIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSBDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBJU0EgSU8gc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTCAoQ0ZHX0lTQV9JTyB8IEJBVExfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAoQ0ZHX0lTQV9JTyB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMkwgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVIENGR19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgKENPTkZJR19TWVNfSVNBX0lPIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAoQ09ORklHX1NZU19JU0FfSU8gfCBCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCBDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSBDT05GSUdfU1lTX0lCQVQyVQogCiAvKiBJU0EgbWVtb3J5IHNwYWNlICovCi0jZGVmaW5lIENGR19JQkFUM0wgKENGR19JU0FfTUVNIHwgQkFUTF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVIChDRkdfSVNBX01FTSB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUM0wgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgKENPTkZJR19TWVNfSVNBX01FTSB8IEJBVExfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgKENPTkZJR19TWVNfSVNBX01FTSB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIENPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVIENPTkZJR19TWVNfSUJBVDNVCiAKICNlbmRpZgogCiAvKgogICogU3BlZWQgc2V0dGluZ3MgYXJlIGJvYXJkIHNwZWNpZmljCiAgKi8KLSNkZWZpbmUgQ0ZHX0JVU19IWiAgICAgICAgICAgICAgMTAwMDAwMDAwCi0jZGVmaW5lIENGR19DUFVfQ0xLICAgICAgICAgICAgIDQwMDAwMDAwMAotI2RlZmluZSBDRkdfQlVTX0NMSyAgICAgICAgICAgICBDRkdfQlVTX0haCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haICAgICAgICAgICAgICAxMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfQ0xLICAgICAgICAgICAgIDQwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsgICAgICAgICAgICAgQ09ORklHX1NZU19CVVNfSFoKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWiAgICAgICAgICAgKDggPDwgMjApICAgICAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICAgICAoOCA8PCAyMCkgICAgICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgICAgICAgIDMyICAgIC8qIEZvciBhbGwgTVBDNzR4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgICAgICAgIDMyICAgIC8qIEZvciBhbGwgTVBDNzR4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQgICAgICAgIDUgICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQgICAgICAgIDUgICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgpAQCAtMzM4LDcgKzMzOCw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvNzR4eF83eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KIAotI2RlZmluZSBDRkdfTDIKKyNkZWZpbmUgQ09ORklHX1NZU19MMgogCiAjaWYgMQogI2RlZmluZSBMMl9JTklUICAgICAwICAgICAgIC8qIGNwdSA3NTAgQ1hlKi8KQEAgLTM1OCw3ICszNTgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkgICAgICAgIC8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfRUVQUk8xMDBfU1JPTV9XUklURQogCiAjZW5kaWYgICAgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0VMUFQ4NjAuaCBiL2luY2x1ZGUvY29uZmlncy9FTFBUODYwLmgKaW5kZXggYzZhM2I4Yi4uZmY1OGVhOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VMUFQ4NjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRUxQVDg2MC5oCkBAIC05Nyw3ICs5Nyw3IEBACiAjZGVmaW5lIENPTkZJR19SVENfRFMxNjR4CTEJLyogUlRDIGlzIGEgRGFsbGFzIERTMTY0NgkqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJICBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCSAgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyoKQEAgLTExMiwyNSArMTEyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAiTEVPWF9lbHB0ODYwOiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVCAgICAgIkxFT1hfZWxwdDg2MDogIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jICBkZWZpbmUgQ0ZHX0NCU0laRQkgMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJICAxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCSAgQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJICAxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkgIENPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIEVudmlyb25tZW50IFZhcmlhYmxlcyBhbmQgU3RvcmFnZXMKQEAgLTE0Miw3ICsxNDIsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEgICAgICAvKiBFbnZpcm9ubWVudCBpcyBpbiBGTEFTSAkqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMCAgIC8qIGNvbnNvbGUgYmF1ZHJhdGUgPSA5NjAwIGJwcwkqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfRVRIQUREUgkJMDA6MDE6Nzc6MDA6NjA6NDAKICNkZWZpbmUgQ09ORklHX0lQQUREUgkJMTkyLjE2OC4wLjMwCkBAIC0xNjAsNTggKzE2MCw1OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFCQkweDAzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFCQkweDAzMDAwMDAwCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjICBpZiBkZWZpbmVkKERFQlVHKQotIyAgICBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgzMjAgPDwgMTApICAvKiBSZXNlcnZlIDMyMCBrQiBmb3IgTW9uaXRvciAgKi8KKyMgICAgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDMyMCA8PCAxMCkgIC8qIFJlc2VydmUgMzIwIGtCIGZvciBNb25pdG9yICAqLwogIyAgZWxzZQotIyAgICBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgyNTYgPDwgMTApICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgKi8KKyMgICAgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDI1NiA8PCAxMCkgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAqLwogIyAgZW5kaWYKICNlbHNlCiAjICBpZiBkZWZpbmVkKERFQlVHKQotIyAgICBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgyNTYgPDwgMTApICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgKi8KKyMgICAgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDI1NiA8PCAxMCkgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAqLwogIyAgZWxzZQotIyAgICBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgxOTIgPDwgMTApICAvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAgKi8KKyMgICAgZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDE5MiA8PCAxMCkgIC8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICAqLwogIyAgZW5kaWYKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjICBkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJMHgxMDAwMCAvKiBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IgICAgKi8KQEAgLTIyMSwyMiArMjIxLDIyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCUNGR19OVlJBTV9CQVNFIC8qIEJhc2UgYWRkcmVzcyBvZiBOVlJBTSBhcmVhICovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoKDEyOCoxMDI0KS04KSAvKiBjbG9jayByZWdzIHJlc2lkZW50IGluIHRoZSAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUglDT05GSUdfU1lTX05WUkFNX0JBU0UgLyogQmFzZSBhZGRyZXNzIG9mIE5WUkFNIGFyZWEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoKDEyOCoxMDI0KS04KSAvKiBjbG9jayByZWdzIHJlc2lkZW50IGluIHRoZSAqLwogCQkJCQkgICAgICAgLyogICA4IHRvcCBOVlJBTSBsb2NhdGlvbnMgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9OVlJBTSkKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCUNGR19OVlJBTV9CQVNFIC8qIEJhc2UgYWRkcmVzcyBvZiBOVlJBTSBhcmVhICovCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDT05GSUdfU1lTX05WUkFNX0JBU0UgLyogQmFzZSBhZGRyZXNzIG9mIE5WUkFNIGFyZWEgKi8KICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkgICAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCSA0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCSA0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgICAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0NiwxMCArMjQ2LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotIyAgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVAkgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjICBkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVAkgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiAjZWxzZQotIyAgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVAkgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjICBkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVAkgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkJCQkgICBTWVBDUl9TV1ApCiAjZW5kaWYKIApAQCAtMjU4LDE0ICsyNTgsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwpAQCAtMjczLDE0ICsyNzMsMTQgQEAKICAqIE9uY2UtcGVyLVNlY29uZCBJbnRlcnJ1cHQsIEFsYXJtIEludGVycnVwdCwgUlRDIGZyZWV6aW5nIGVuYWJsZWQsIFJUQwogICogIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yODgsNyArMjg4LDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCAtIGxlYXZlIFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdW5jaGFuZ2VkICEKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yOTcsNyArMjk3LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCSBTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzA4LDkgKzMwOCw5IEBACiAgKgogICovCiAjaWZkZWYgREVCVUcKLSMgIGRlZmluZSBDRkdfREVSCQkweEZGRTc0MDBGCS8qIERlYnVnIEVuYWJsZSBSZWdpc3RlciAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfREVSCQkweEZGRTc0MDBGCS8qIERlYnVnIEVuYWJsZSBSZWdpc3RlciAqLwogI2Vsc2UKLSMgIGRlZmluZSBDRkdfREVSCQkwCisjICBkZWZpbmUgQ09ORklHX1NZU19ERVIJCTAKICNlbmRpZgogCiAvKgpAQCAtMzIwLDY4ICszMjAsNjggQEAKICAqIEJSMCBhbmQgT1IwIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSAgKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSAgKi8KIAogLyogdXNlZCB0byByZS1tYXAgRkxBU0ggYm90aCB3aGVuIHN0YXJ0aW5nIGZyb20gU1JBTSBvciBGTEFTSDoKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkYwMDAwMDAJLyogMTYgTUIgYmV0d2VlbiBlYWNoIENTeCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGMDAwMDAwCS8qIDE2IE1CIGJldHdlZW4gZWFjaCBDU3ggKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAwLCBTQ1kgPSA4LCBFSFRSID0gMAkgICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYyIHwgT1JfQkkgfCBPUl9TQ1lfOF9DTEspCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMiB8IE9SX0JJIHwgT1JfU0NZXzhfQ0xLKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCiAgKgogICovCi0jZGVmaW5lIFNEUkFNX0JBU0UxX1BSRUxJTQlDRkdfU0RSQU1fQkFTRQkvKiBTRFJBTSBiYW5rICMwCSovCisjZGVmaW5lIFNEUkFNX0JBU0UxX1BSRUxJTQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogU0RSQU0gYmFuayAjMAkqLwogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwMjAwMDAwMAkvKiAzMiBNQiBNQVggZm9yIENTMQkqLwogCiAvKiBTRFJBTSB0aW1pbmc6CQkJCQkJCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKCgyICogQ0ZHX1BSRUxJTV9PUl9BTSkgfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKCgyICogQ09ORklHX1NZU19QUkVMSU1fT1JfQU0pIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKgogICogQlIyIGFuZCBPUjIgKE5WUkFNKQogICoKICAqLwotI2RlZmluZSBOVlJBTV9CQVNFMV9QUkVMSU0JQ0ZHX05WUkFNX0JBU0UJLyogTlZSQU0gYmFuayAjMAkqLworI2RlZmluZSBOVlJBTV9CQVNFMV9QUkVMSU0JQ09ORklHX1NZU19OVlJBTV9CQVNFCS8qIE5WUkFNIGJhbmsgIzAJKi8KICNkZWZpbmUgTlZSQU1fTUFYX1NJWkUJCTB4MDAwMjAwMDAJLyogMTI4IEtCIE1BWCBmb3IgQ1MyCSovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4RkZGODAxNjAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChOVlJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4RkZGODAxNjAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoTlZSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJCTk3ICAgICAvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJOTcgICAgIC8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IeiAqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJICAvKiBzZXR0aW5nIGZvciAyIGJhbmtzICovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCSAgLyogc2V0dGluZyBmb3IgMSBiYW5rCSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJICAvKiBzZXR0aW5nIGZvciAyIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkgIC8qIHNldHRpbmcgZm9yIDEgYmFuawkgKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJICAvKiBzZXR0aW5nIGZvciAyIGJhbmtzICovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CSAgLyogc2V0dGluZyBmb3IgMSBiYW5rCSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkgIC8qIHNldHRpbmcgZm9yIDIgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CSAgLyogc2V0dGluZyBmb3IgMSBiYW5rCSAqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfCBcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfCBcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8IFwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8IFwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRVAxQzIwLmggYi9pbmNsdWRlL2NvbmZpZ3MvRVAxQzIwLmgKaW5kZXggOTBlMzYzNy4uYTA5MDRkNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VQMUMyMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9FUDFDMjAuaApAQCAtMzAsMjkgKzMwLDI5IEBACiAjZGVmaW5lIENPTkZJR19FUDFDMjAJCTEJCS8qIEVQMUMyMCBib2FyZAkJKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQk1MDAwMDAwMAkvKiA1MCBNSHogY29yZSBjbGsJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUgkJMHgwMDAwMDAwMAkvKiBIYXJkLXJlc2V0IGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYQ0VQVElPTl9BRERSCTB4MDEwMDAwMjAJLyogRXhjZXB0aW9uIGVudHJ5IHBvaW50Ki8KLSNkZWZpbmUgQ0ZHX05JT1NfU1lTSURfQkFTRQkweDAyMTIwOGI4CS8qIFN5c3RlbSBpZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUgkJMHgwMDAwMDAwMAkvKiBIYXJkLXJlc2V0IGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWENFUFRJT05fQUREUgkweDAxMDAwMDIwCS8qIEV4Y2VwdGlvbiBlbnRyeSBwb2ludCovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19TWVNJRF9CQVNFCTB4MDIxMjA4YjgJLyogU3lzdGVtIGlkIGFkZHJlc3MJKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCS8qIGVuYWJsZSBlYXJseSBib2FyZC1zcGVjLiBpbml0Ki8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENBQ0hFIC0tIHRoZSBmb2xsb3dpbmcgd2lsbCBzdXBwb3J0IElJL3MgYW5kIElJL2YuIFRoZSBJSS9zIGRvZXMgbm90CiAgKiBoYXZlIGRjYWNoZSwgc28gdGhlIGNhY2hlIGluc3RydWN0aW9ucyB3aWxsIGJlaGF2ZSBhcyBOT1BzLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lDQUNIRV9TSVpFCQk0MDk2CQkvKiA0IEtCeXRlIHRvdGFsCSovCi0jZGVmaW5lIENGR19JQ0FDSEVMSU5FX1NJWkUJMzIJCS8qIDMyIGJ5dGVzL2xpbmUJKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkyMDQ4CQkvKiAyIEtCeXRlIChJSS9mKQkqLwotI2RlZmluZSBDRkdfRENBQ0hFTElORV9TSVpFCTQJCS8qIDQgYnl0ZXMvbGluZSAoSUkvZikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfU0laRQkJNDA5NgkJLyogNCBLQnl0ZSB0b3RhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRUxJTkVfU0laRQkzMgkJLyogMzIgYnl0ZXMvbGluZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkyMDQ4CQkvKiAyIEtCeXRlIChJSS9mKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRUxJTkVfU0laRQk0CQkvKiA0IGJ5dGVzL2xpbmUgKElJL2YpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNRU1PUlkgQkFTRSBBRERSRVNTRVMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCS8qIEZMQVNIIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMTAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTB4MDEwMDAwMDAJLyogMTYgTUJ5dGUJCSovCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCTB4MDIwMDAwMDAJLyogU1JBTSBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkJMHgwMDEwMDAwMAkvKiAxIE1CIChvbmx5IDFNIG1hcHBlZCkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4MDIwMDAwMDAJLyogU1JBTSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4MDAxMDAwMDAJLyogMSBNQiAob25seSAxTSBtYXBwZWQpKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBPUkdBTklaQVRJT04KQEAgLTYxLDI3ICs2MSwyNyBAQAogICoJLUdsb2JhbCBkYXRhIGlzIHBsYWNlZCBiZWxvdyB0aGUgaGVhcC4KICAqCS1UaGUgc3RhY2sgaXMgcGxhY2VkIGJlbG93IGdsb2JhbCBkYXRhICgmZ3Jvd3MgZG93bikuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDEyOGsJCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMTI4awkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfTUFMTE9DX0JBU0UgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1AJCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUAkJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIChBTTI5TFYwNjVEKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDRkdfTU9OSVRPUl9MRU4gYWJvdmUKLSAqIENGR19SRVNFVF9BRERSLCBzaW5jZSB3ZSBhc3N1bWUgdGhlIG1vbml0b3IgaXMgc3RvcmVkIGF0IHRoZQorICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFib3ZlCisgKiBDT05GSUdfU1lTX1JFU0VUX0FERFIsIHNpbmNlIHdlIGFzc3VtZSB0aGUgbW9uaXRvciBpcyBzdG9yZWQgYXQgdGhlCiAgKiByZXNldCBhZGRyZXNzLCBubz8gVGhpcyB3aWxsIGtlZXAgdGhlIGVudmlyb25tZW50IGluIHVzZXIgcmVnaW9uCiAgKiBvZiBmbGFzaC4gTk9URTogdGhlIG1vbml0b3IgbGVuZ3RoIG11c3QgYmUgbXVsdGlwbGUgb2Ygc2VjdG9yIHNpemUKICAqICh3aGljaCBpcyBjb21tb24gcHJhY3RpY2UpLgpAQCAtODksMzAgKzg5LDMwIEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQkJLyogRW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCQkJLyogU2VyaWFsIGNoYW5nZSBPawkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19SRVNFVF9BRERSICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfUkVTRVRfQUREUiArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDT05TT0xFCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NPTlNPTEVfSlRBRykKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAyMTIwOGIwCS8qIEpUQUcgVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDhiMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCTB4MDIxMjA4NDAJLyogVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDg0MAkvKiBVQVJUIGJhc2UgYWRkcgkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIEluaXRpYWwgYmF1ZHJhdGUJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMH0JLyogSXQncyBmaXhlZCA7LSkJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBFUENTIERldmljZSAtLSB3bmUgQ0ZHX05JT1NfRVBDU0JBU0UgaXMgZGVmaW5lZCBjb2RlL2NvbW1hbmRzIGZvcgorICogRVBDUyBEZXZpY2UgLS0gd25lIENPTkZJR19TWVNfTklPU19FUENTQkFTRSBpcyBkZWZpbmVkIGNvZGUvY29tbWFuZHMgZm9yCiAgKiBlcGNzIGRldmljZSBhY2Nlc3MgaXMgZW5hYmxlZC4gVGhlIGJhc2UgYWRkcmVzcyBpcyB0aGUgZXBjcwogICogX3JlZ2lzdGVyXyBiYXNlIGFkZHJlc3MsIE5PVCBUSEUgQUREUkVTUyBPRiBUSEUgTUVNT1JZIEJMT0NLLgogICogVGhlIHJlZ2lzdGVyIGJhc2UgaXMgY3VycmVudGx5IGF0IG9mZnNldCAweDYwMCBmcm9tIHRoZSBtZW1vcnkgYmFzZS4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX0VQQ1NCQVNFCTB4MDIxMDAyMDAJLyogRVBDUyByZWdpc3RlciBiYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19FUENTQkFTRQkweDAyMTAwMjAwCS8qIEVQQ1MgcmVnaXN0ZXIgYmFzZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogREVCVUcKQEAgLTEyNiwyMyArMTI2LDIzIEBACiAgKiByZWdpc3RlcnMsIHdlIGNhbiBzbG93IGl0IGRvd24gdG8gMTAgbXNlYyB1c2luZyBUTVJDTlQuIElmIHRoZSBkZWZhdWx0CiAgKiBwZXJpb2QgaXMgYWNjZXB0YWJsZSwgVE1SQ05UIGNhbiBiZSBsZWZ0IHVuZGVmaW5lZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJMHgwMjEyMDgyMAkvKiBUaWNrIHRpbWVyIGJhc2UgYWRkciAqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCTMJCS8qIFRpbWVyIElSUSBudW0JKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkNOVCAoQ0ZHX05JT1NfVE1STVMgKiAoQ09ORklHX1NZU19DTEtfRlJFUS8xMDAwKSkKLSNkZWZpbmUgQ0ZHX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ0ZHX05JT1NfVE1SQ05UICsgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCTB4MDIxMjA4MjAJLyogVGljayB0aW1lciBiYXNlIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUklSUQkJMwkJLyogVGltZXIgSVJRIG51bQkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJDTlQgKENPTkZJR19TWVNfTklPU19UTVJNUyAqIChDT05GSUdfU1lTX0NMS19GUkVRLzEwMDApKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ09ORklHX1NZU19OSU9TX1RNUkNOVCArIDEpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1RBVFVTIExFRCAtLSBQcm92aWRlcyBhIHNpbXBsZSBibGlua2luZyBsZWQuIEZvciBOaW9zMiBlYWNoIGJvYXJkCiAgKiBtdXN0IGltcGxlbWVudCBpdHMgb3duIGxlZCByb3V0aW5lcyAtLSBsZWRzIGFyZSwgYWZ0ZXIgYWxsLAogICogYm9hcmQtc3BlY2lmaWMsIG5vPwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xFRFBJT19BRERSCQkweDAyMTIwODcwCS8qIExFRCBQSU8gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEVEUElPX0FERFIJCTB4MDIxMjA4NzAJLyogTEVEIFBJTyBiYXNlIGFkZHIJKi8KICNkZWZpbmUgQ09ORklHX1NUQVRVU19MRUQJCQkvKiBFbmFibGUgc3RhdHVzIGRyaXZlciAqLwogCiAjZGVmaW5lIFNUQVRVU19MRURfQklUCQkxCQkvKiBCaXQtMCBvbiBQSU8JCSovCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJMQkJLyogQmxpbmtpbmcJCSovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSg1MDAvQ0ZHX05JT1NfVE1STVMpIC8qIEV2ZXJ5IDUwMCBtc2VjCSovCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSg1MDAvQ09ORklHX1NZU19OSU9TX1RNUk1TKSAvKiBFdmVyeSA1MDAgbXNlYwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRVRIRVJORVQgLS0gVGhlIGhlYWRlciBmaWxlIGZvciB0aGUgU01DOTExMTEgZHJpdmVyIGh1cnRzIG15IGV5ZXMgLi4uCkBAIC0xOTQsMTcgKzE5NCwxNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiBQcm92aWRlIGV4dGVuZGVkIGhlbHAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT0+ICIJCS8qIENvbW1hbmQgcHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gYnVmIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBNYXggY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IGFyZyBidWYgc2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgYnVmIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJQ0ZHX1NEUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UJLyogU3RhcnQgYWRkciBmb3IgdGVzdAkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCUNGR19JTklUX1NQIC0gMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIFByb3ZpZGUgZXh0ZW5kZWQgaGVscCovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT0+ICIJCS8qIENvbW1hbmQgcHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIGJ1ZiBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIE1heCBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBhcmcgYnVmIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IGJ1ZiBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBTdGFydCBhZGRyIGZvciB0ZXN0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCUNPTkZJR19TWVNfSU5JVF9TUCAtIDB4MDAwMjAwMDAKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0VQMVMxMC5oIGIvaW5jbHVkZS9jb25maWdzL0VQMVMxMC5oCmluZGV4IGFlOTQwOWYuLjYzYTBkM2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FUDFTMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRVAxUzEwLmgKQEAgLTMwLDI4ICszMCwyOCBAQAogI2RlZmluZSBDT05GSUdfRVAxUzEwCQkxCQkvKiBFUDFTMTAgYm9hcmQJCSovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNTAwMDAwMDAJLyogNTAgTUh6IGNvcmUgY2xrCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFIJCTB4MDAwMDAwMDAJLyogSGFyZC1yZXNldCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FWENFUFRJT05fQUREUgkweDAxMDAwMDIwCS8qIEV4Y2VwdGlvbiBlbnRyeSBwb2ludCovCi0jZGVmaW5lIENGR19OSU9TX1NZU0lEX0JBU0UJMHgwMjEyMDhiOAkvKiBTeXN0ZW0gaWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFIJCTB4MDAwMDAwMDAJLyogSGFyZC1yZXNldCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhDRVBUSU9OX0FERFIJMHgwMTAwMDAyMAkvKiBFeGNlcHRpb24gZW50cnkgcG9pbnQqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRQkweDAyMTIwOGI4CS8qIFN5c3RlbSBpZCBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDQUNIRSAtLSB0aGUgZm9sbG93aW5nIHdpbGwgc3VwcG9ydCBJSS9zIGFuZCBJSS9mLiBUaGUgSUkvcyBkb2VzIG5vdAogICogaGF2ZSBkY2FjaGUsIHNvIHRoZSBjYWNoZSBpbnN0cnVjdGlvbnMgd2lsbCBiZWhhdmUgYXMgTk9Qcy4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJNDA5NgkJLyogNCBLQnl0ZSB0b3RhbAkqLwotI2RlZmluZSBDRkdfSUNBQ0hFTElORV9TSVpFCTMyCQkvKiAzMiBieXRlcy9saW5lCSovCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJMjA0OAkJLyogMiBLQnl0ZSAoSUkvZikJKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRUxJTkVfU0laRQk0CQkvKiA0IGJ5dGVzL2xpbmUgKElJL2YpCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUJCTQwOTYJCS8qIDQgS0J5dGUgdG90YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVMSU5FX1NJWkUJMzIJCS8qIDMyIGJ5dGVzL2xpbmUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJMjA0OAkJLyogMiBLQnl0ZSAoSUkvZikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUJNAkJLyogNCBieXRlcy9saW5lIChJSS9mKQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUVNT1JZIEJBU0UgQUREUkVTU0VTCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAJLyogOCBNQnl0ZQkJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CeXRlCQkqLwotI2RlZmluZSBDRkdfU1JBTV9CQVNFCQkweDAyMDAwMDAwCS8qIFNSQU0gYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19TUkFNX1NJWkUJCTB4MDAxMDAwMDAJLyogMSBNQgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwCS8qIDggTUJ5dGUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMTAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJMHgwMjAwMDAwMAkvKiBTUkFNIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fU0laRQkJMHgwMDEwMDAwMAkvKiAxIE1CCQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBPUkdBTklaQVRJT04KQEAgLTYwLDI2ICs2MCwyNiBAQAogICoJLUdsb2JhbCBkYXRhIGlzIHBsYWNlZCBiZWxvdyB0aGUgaGVhcC4KICAqCS1UaGUgc3RhY2sgaXMgcGxhY2VkIGJlbG93IGdsb2JhbCBkYXRhICgmZ3Jvd3MgZG93bikuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmsJCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAyNTYqMTAyNCkgLyogMjU2ayBoZWFwICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDI1NioxMDI0KSAvKiAyNTZrIGhlYXAgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19NQUxMT0NfQkFTRSAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUAkJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfQkFTRQkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19NQUxMT0NfQkFTRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQCQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggKEFNMjlMVjA2NUQpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJCS8qIEVyYXNlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDRkdfTU9OSVRPUl9MRU4gYWJvdmUKLSAqIENGR19GTEFTSF9CQVNFLCBzaW5jZSB3ZSBhc3N1bWUgdGhhdCB1LWJvb3QgaXMgc3RvcmVkIGF0IHRoZSBib3R0b20KKyAqIEVOVklST05NRU5UIC0tIFB1dCBlbnZpcm9ubWVudCBpbiBzZWN0b3IgQ09ORklHX1NZU19NT05JVE9SX0xFTiBhYm92ZQorICogQ09ORklHX1NZU19GTEFTSF9CQVNFLCBzaW5jZSB3ZSBhc3N1bWUgdGhhdCB1LWJvb3QgaXMgc3RvcmVkIGF0IHRoZSBib3R0b20KICAqIG9mIGZsYXNoIG1lbW9yeS4gVGhpcyB3aWxsIGtlZXAgdGhlIGVudmlyb25tZW50IGluIHVzZXIgcmVnaW9uCiAgKiBvZiBmbGFzaC4gTk9URTogdGhlIG1vbml0b3IgbGVuZ3RoIG11c3QgYmUgbXVsdGlwbGUgb2Ygc2VjdG9yIHNpemUKICAqICh3aGljaCBpcyBjb21tb24gcHJhY3RpY2UpLgpAQCAtODcsMjcgKzg3LDI3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQkJLyogRW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCQkJLyogU2VyaWFsIGNoYW5nZSBPawkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDT05TT0xFCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NPTlNPTEVfSlRBRykKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAyMTIwOGIwCS8qIEpUQUcgVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDhiMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCTB4MDIxMjA4NDAJLyogVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMjEyMDg0MAkvKiBVQVJUIGJhc2UgYWRkcgkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIEluaXRpYWwgYmF1ZHJhdGUJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMH0JLyogSXQncyBmaXhlZCA7LSkJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFUENTIERldmljZSAtLSBOb25lIGZvciBzdHJhdGl4LgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZiBDRkdfTklPU19FUENTQkFTRQorI3VuZGVmIENPTkZJR19TWVNfTklPU19FUENTQkFTRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogREVCVUcKQEAgLTEyMSwyMiArMTIxLDIyIEBACiAgKiByZWdpc3RlcnMsIHdlIGNhbiBzbG93IGl0IGRvd24gdG8gMTAgbXNlYyB1c2luZyBUTVJDTlQuIElmIHRoZSBkZWZhdWx0CiAgKiBwZXJpb2QgaXMgYWNjZXB0YWJsZSwgVE1SQ05UIGNhbiBiZSBsZWZ0IHVuZGVmaW5lZC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkJBU0UJMHgwMjEyMDgyMAkvKiBUaWNrIHRpbWVyIGJhc2UgYWRkciAqLwotI2RlZmluZSBDRkdfTklPU19UTVJJUlEJCTMJCS8qIFRpbWVyIElSUSBudW0JKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUkNOVCAoQ0ZHX05JT1NfVE1STVMgKiAoQ09ORklHX1NZU19DTEtfRlJFUS8xMDAwKSkKLSNkZWZpbmUgQ0ZHX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ0ZHX05JT1NfVE1SQ05UICsgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJCQVNFCTB4MDIxMjA4MjAJLyogVGljayB0aW1lciBiYXNlIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUklSUQkJMwkJLyogVGltZXIgSVJRIG51bQkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1STVMJCTEwCQkvKiAxMCBtc2VjIHBlciB0aWNrCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJDTlQgKENPTkZJR19TWVNfTklPU19UTVJNUyAqIChDT05GSUdfU1lTX0NMS19GUkVRLzEwMDApKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkoQ09ORklHX1NZU19DTEtfRlJFUS8oQ09ORklHX1NZU19OSU9TX1RNUkNOVCArIDEpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1RBVFVTIExFRCAtLSBQcm92aWRlcyBhIHNpbXBsZSBibGlua2luZyBsZWQuIEZvciBOaW9zMiBlYWNoIGJvYXJkCiAgKiBtdXN0IGltcGxlbWVudCBpdHMgb3duIGxlZCByb3V0aW5lcyAtLSBzaW5jZSBsZWRzIGFyZSBib2FyZC1zcGVjaWZpYy4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MRURQSU9fQUREUgkJMHgwMjEyMDg3MAkvKiBMRUQgUElPIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0xFRFBJT19BRERSCQkweDAyMTIwODcwCS8qIExFRCBQSU8gYmFzZSBhZGRyCSovCiAjZGVmaW5lIENPTkZJR19TVEFUVVNfTEVECQkJLyogRW5hYmxlIHN0YXR1cyBkcml2ZXIgKi8KIAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVAkJMQkJLyogQml0LTAgb24gUElPCQkqLwogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFCTEJCS8qIEJsaW5raW5nCQkqLwotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoNTAwL0NGR19OSU9TX1RNUk1TKSAvKiBFdmVyeSA1MDAgbXNlYwkqLworI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoNTAwL0NPTkZJR19TWVNfTklPU19UTVJNUykgLyogRXZlcnkgNTAwIG1zZWMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVUSEVSTkVUIC0tIFRoZSBoZWFkZXIgZmlsZSBmb3IgdGhlIFNNQzkxMTExIGRyaXZlciBodXJ0cyBteSBleWVzIC4uLgpAQCAtMTg3LDE3ICsxODcsMTcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNSVNDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogUHJvdmlkZSBleHRlbmRlZCBoZWxwKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj09PiAiCQkvKiBDb21tYW5kIHByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIGJ1ZiBzaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogTWF4IGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBhcmcgYnVmIHNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IGJ1ZiBzaXplICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCUNGR19TRFJBTV9CQVNFCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFCS8qIFN0YXJ0IGFkZHIgZm9yIHRlc3QJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlDRkdfSU5JVF9TUCAtIDB4MDAwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiBQcm92aWRlIGV4dGVuZGVkIGhlbHAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj09PiAiCQkvKiBDb21tYW5kIHByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBidWYgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBNYXggY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgYXJnIGJ1ZiBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBidWYgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogU3RhcnQgYWRkciBmb3IgdGVzdAkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQlDT05GSUdfU1lTX0lOSVRfU1AgLSAweDAwMDIwMDAwCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FUDFTNDAuaCBiL2luY2x1ZGUvY29uZmlncy9FUDFTNDAuaAppbmRleCA5NWFlMTQ3Li4zNmUxZjgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRVAxUzQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VQMVM0MC5oCkBAIC0zMCwyOCArMzAsMjggQEAKICNkZWZpbmUgQ09ORklHX0VQMVM0MAkJMQkJLyogRVAxUzQwIGJvYXJkCQkqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTUwMDAwMDAwCS8qIDUwIE1IeiBjb3JlIGNsawkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSCQkweDAwMDAwMDAwCS8qIEhhcmQtcmVzZXQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhDRVBUSU9OX0FERFIJMHgwMTAwMDAyMAkvKiBFeGNlcHRpb24gZW50cnkgcG9pbnQqLwotI2RlZmluZSBDRkdfTklPU19TWVNJRF9CQVNFCTB4MDIxMjA4YjgJLyogU3lzdGVtIGlkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSCQkweDAwMDAwMDAwCS8qIEhhcmQtcmVzZXQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYQ0VQVElPTl9BRERSCTB4MDEwMDAwMjAJLyogRXhjZXB0aW9uIGVudHJ5IHBvaW50Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1NZU0lEX0JBU0UJMHgwMjEyMDhiOAkvKiBTeXN0ZW0gaWQgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ0FDSEUgLS0gdGhlIGZvbGxvd2luZyB3aWxsIHN1cHBvcnQgSUkvcyBhbmQgSUkvZi4gVGhlIElJL3MgZG9lcyBub3QKICAqIGhhdmUgZGNhY2hlLCBzbyB0aGUgY2FjaGUgaW5zdHJ1Y3Rpb25zIHdpbGwgYmVoYXZlIGFzIE5PUHMuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTQwOTYJCS8qIDQgS0J5dGUgdG90YWwJKi8KLSNkZWZpbmUgQ0ZHX0lDQUNIRUxJTkVfU0laRQkzMgkJLyogMzIgYnl0ZXMvbGluZQkqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTIwNDgJCS8qIDIgS0J5dGUgKElJL2YpCSovCi0jZGVmaW5lIENGR19EQ0FDSEVMSU5FX1NJWkUJNAkJLyogNCBieXRlcy9saW5lIChJSS9mKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQk0MDk2CQkvKiA0IEtCeXRlIHRvdGFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFTElORV9TSVpFCTMyCQkvKiAzMiBieXRlcy9saW5lCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTIwNDgJCS8qIDIgS0J5dGUgKElJL2YpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFTElORV9TSVpFCTQJCS8qIDQgYnl0ZXMvbGluZSAoSUkvZikJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBCQVNFIEFERFJFU1NFUwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCS8qIDggTUJ5dGUJCSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAxMDAwMDAwCS8qIFNEUkFNIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJMHgwMjAwMDAwMAkvKiBTUkFNIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfU1JBTV9TSVpFCQkweDAwMTAwMDAwCS8qIDEgTUIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4MDIwMDAwMDAJLyogU1JBTSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4MDAxMDAwMDAJLyogMSBNQgkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNRU1PUlkgT1JHQU5JWkFUSU9OCkBAIC02MCwyNiArNjAsMjYgQEAKICAqCS1HbG9iYWwgZGF0YSBpcyBwbGFjZWQgYmVsb3cgdGhlIGhlYXAuCiAgKgktVGhlIHN0YWNrIGlzIHBsYWNlZCBiZWxvdyBnbG9iYWwgZGF0YSAoJmdyb3dzIGRvd24pLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIEdsb2JhbCBkYXRhIHNpemUgcnN2ZCovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMjU2KjEwMjQpIC8qIDI1NmsgaGVhcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTZrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBHbG9iYWwgZGF0YSBzaXplIHJzdmQqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAyNTYqMTAyNCkgLyogMjU2ayBoZWFwICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfTUFMTE9DX0JBU0UgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1AJCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUAkJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIChBTTI5TFYwNjVEKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkJLyogRXJhc2UgdGltZW91dCAobXNlYykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIEVOVklST05NRU5UIC0tIFB1dCBlbnZpcm9ubWVudCBpbiBzZWN0b3IgQ0ZHX01PTklUT1JfTEVOIGFib3ZlCi0gKiBDRkdfRkxBU0hfQkFTRSwgc2luY2Ugd2UgYXNzdW1lIHRoYXQgdS1ib290IGlzIHN0b3JlZCBhdCB0aGUgYm90dG9tCisgKiBFTlZJUk9OTUVOVCAtLSBQdXQgZW52aXJvbm1lbnQgaW4gc2VjdG9yIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gYWJvdmUKKyAqIENPTkZJR19TWVNfRkxBU0hfQkFTRSwgc2luY2Ugd2UgYXNzdW1lIHRoYXQgdS1ib290IGlzIHN0b3JlZCBhdCB0aGUgYm90dG9tCiAgKiBvZiBmbGFzaCBtZW1vcnkuIFRoaXMgd2lsbCBrZWVwIHRoZSBlbnZpcm9ubWVudCBpbiB1c2VyIHJlZ2lvbgogICogb2YgZmxhc2guIE5PVEU6IHRoZSBtb25pdG9yIGxlbmd0aCBtdXN0IGJlIG11bHRpcGxlIG9mIHNlY3RvciBzaXplCiAgKiAod2hpY2ggaXMgY29tbW9uIHByYWN0aWNlKS4KQEAgLTg3LDI3ICs4NywyNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEJCS8qIEVudmlyb25tZW50IGluIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDY0ICogMTAyNCkJLyogNjQgS0J5dGUgKDEgc2VjdG9yKQkqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkJCS8qIFNlcmlhbCBjaGFuZ2UgT2sJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ09OU09MRQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DT05TT0xFX0pUQUcpCi0jZGVmaW5lIENGR19OSU9TX0NPTlNPTEUJMHgwMjEyMDhiMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCTB4MDIxMjA4YjAJLyogSlRBRyBVQVJUIGJhc2UgYWRkcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAyMTIwODQwCS8qIFVBUlQgYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19DT05TT0xFCTB4MDIxMjA4NDAJLyogVUFSVCBiYXNlIGFkZHIJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19OSU9TX0ZJWEVEQkFVRAkxCQkvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCQkvKiBJbml0aWFsIGJhdWRyYXRlCSovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7MTE1MjAwfQkvKiBJdCdzIGZpeGVkIDstKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCQkvKiBTdXBwcmVzcyBjb25zb2xlIGluZm8qLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCQkvKiBTdXBwcmVzcyBjb25zb2xlIGluZm8qLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRVBDUyBEZXZpY2UgLS0gTm9uZSBmb3Igc3RyYXRpeC4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jdW5kZWYgQ0ZHX05JT1NfRVBDU0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX05JT1NfRVBDU0JBU0UKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERFQlVHCkBAIC0xMjEsMjIgKzEyMSwyMiBAQAogICogcmVnaXN0ZXJzLCB3ZSBjYW4gc2xvdyBpdCBkb3duIHRvIDEwIG1zZWMgdXNpbmcgVE1SQ05ULiBJZiB0aGUgZGVmYXVsdAogICogcGVyaW9kIGlzIGFjY2VwdGFibGUsIFRNUkNOVCBjYW4gYmUgbGVmdCB1bmRlZmluZWQuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTklPU19UTVJCQVNFCTB4MDIxMjA4MjAJLyogVGljayB0aW1lciBiYXNlIGFkZHIgKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SSVJRCQkzCQkvKiBUaW1lciBJUlEgbnVtCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUk1TCQkxMAkJLyogMTAgbXNlYyBwZXIgdGljawkqLwotI2RlZmluZSBDRkdfTklPU19UTVJDTlQgKENGR19OSU9TX1RNUk1TICogKENPTkZJR19TWVNfQ0xLX0ZSRVEvMTAwMCkpCi0jZGVmaW5lIENGR19IWgkJKENPTkZJR19TWVNfQ0xLX0ZSRVEvKENGR19OSU9TX1RNUkNOVCArIDEpKQorI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQkFTRQkweDAyMTIwODIwCS8qIFRpY2sgdGltZXIgYmFzZSBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJJUlEJCTMJCS8qIFRpbWVyIElSUSBudW0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUk1TCQkxMAkJLyogMTAgbXNlYyBwZXIgdGljawkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SQ05UIChDT05GSUdfU1lTX05JT1NfVE1STVMgKiAoQ09ORklHX1NZU19DTEtfRlJFUS8xMDAwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJKENPTkZJR19TWVNfQ0xLX0ZSRVEvKENPTkZJR19TWVNfTklPU19UTVJDTlQgKyAxKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNUQVRVUyBMRUQgLS0gUHJvdmlkZXMgYSBzaW1wbGUgYmxpbmtpbmcgbGVkLiBGb3IgTmlvczIgZWFjaCBib2FyZAogICogbXVzdCBpbXBsZW1lbnQgaXRzIG93biBsZWQgcm91dGluZXMgLS0gc2luY2UgbGVkcyBhcmUgYm9hcmQtc3BlY2lmaWMuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTEVEUElPX0FERFIJCTB4MDIxMjA4NzAJLyogTEVEIFBJTyBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MRURQSU9fQUREUgkJMHgwMjEyMDg3MAkvKiBMRUQgUElPIGJhc2UgYWRkcgkqLwogI2RlZmluZSBDT05GSUdfU1RBVFVTX0xFRAkJCS8qIEVuYWJsZSBzdGF0dXMgZHJpdmVyICovCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTEJCS8qIEJpdC0wIG9uIFBJTwkJKi8KICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQkxCQkvKiBCbGlua2luZwkJKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDUwMC9DRkdfTklPU19UTVJNUykgLyogRXZlcnkgNTAwIG1zZWMJKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDUwMC9DT05GSUdfU1lTX05JT1NfVE1STVMpIC8qIEV2ZXJ5IDUwMCBtc2VjCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFVEhFUk5FVCAtLSBUaGUgaGVhZGVyIGZpbGUgZm9yIHRoZSBTTUM5MTExMSBkcml2ZXIgaHVydHMgbXkgZXllcyAuLi4KQEAgLTE4NywxNyArMTg3LDE3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUlTQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIFByb3ZpZGUgZXh0ZW5kZWQgaGVscCovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PT4gIgkJLyogQ29tbWFuZCBwcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBidWYgc2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIE1heCBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgYXJnIGJ1ZiBzaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBidWYgc2l6ZSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlDRkdfU0RSQU1fQkFTRQkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRQkvKiBTdGFydCBhZGRyIGZvciB0ZXN0CSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJQ0ZHX0lOSVRfU1AgLSAweDAwMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogUHJvdmlkZSBleHRlbmRlZCBoZWxwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PT4gIgkJLyogQ29tbWFuZCBwcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gYnVmIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogTWF4IGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IGFyZyBidWYgc2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgYnVmIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIFN0YXJ0IGFkZHIgZm9yIHRlc3QJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJQ09ORklHX1NZU19JTklUX1NQIC0gMHgwMDAyMDAwMAogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRVA4OHguaCBiL2luY2x1ZGUvY29uZmlncy9FUDg4eC5oCmluZGV4IDEwNmNjNmYuLmUxYzYwOTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FUDg4eC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9FUDg4eC5oCkBAIC00MSwxNSArNDEsMTUgQEAKICNkZWZpbmUJQ09ORklHX0VUSEVSX09OX0ZFQzEJCQkvKiBFbmFibGUgRXRoZXJuZXQgb24gRkVDMQkqLwogI2RlZmluZQlDT05GSUdfRVRIRVJfT05fRkVDMgkJCS8qIEVuYWJsZSBFdGhlcm5ldCBvbiBGRUMyCSovCiAjaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMSkgfHwgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMikKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICNkZWZpbmUgRkVDX0VORVQKICNlbmRpZiAvKiBDT05GSUdfRkVDX0VORVQgKi8KIAogI2RlZmluZSBDT05GSUdfOHh4X09TQ0xLCQkxMDAwMDAwMCAvKiAxMCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgKi8KICNkZWZpbmUgQ09ORklHXzh4eF9DUFVDTEtfREVGQVVMVAkxMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAKIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTgxLDI4ICs4MSwyOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIFJBTSBjb25maWd1cmF0aW9uIChub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgbXVzdCBiZSB6ZXJvKQorICogUkFNIGNvbmZpZ3VyYXRpb24gKG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgbXVzdCBiZSB6ZXJvKQogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9NQVhfU0laRQkweDA4MDAwMDAwCS8qIFVwIHRvIDEyOCBNYnl0ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTUFYX1NJWkUJMHgwODAwMDAwMAkvKiBVcCB0byAxMjggTWJ5dGUJCSovCiAKLSNkZWZpbmUgQ0ZHX01BTVIJCTB4MDA4MDUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCQkweDAwODA1MDAwCiAKIC8qCiAgKiA0MDk2CVVwIHRvIDQwOTYgU0RSQU0gcm93cwpAQCAtMTExLDk5ICsxMTEsOTkgQEAKICAqIDQJTnVtYmVyIG9mIHJlZnJlc2ggY3ljbGVzIHBlciBwZXJpb2QKICAqIDY0CVJlZnJlc2ggY3ljbGUgaW4gbXMgcGVyIG51bWJlciBvZiByb3dzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCQkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDUwMDAwMAkvKiAxIC4uLiA1IE1CIGluIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNTAwMDAwCS8qIDEgLi4uIDUgTUIgaW4gU0RSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgICAqLwogI2lmZGVmIENPTkZJR19CWklQMgotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgfjQgTUIgZm9yIG1hbGxvYygpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSB+NCBNQiBmb3IgbWFsbG9jKCkgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgICovCiAjZW5kaWYgLyogQ09ORklHX0JaSVAyICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIG9yZ2FuaXNhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJCS8qIE1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkJLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAvKiBFbnZpcm9ubWVudCBpcyBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJCS8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGQzAwMDE2MAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgQlJfUFNfMzIgfCBCUl9NU19HUENNIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZDMDAwMTYwCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJSX1BTXzMyIHwgQlJfTVNfR1BDTSB8IEJSX1YpCiAKLSNkZWZpbmUJQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lCUNPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNTUgogICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweEZGMDAwNUIwCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkoMHhGQTAwMDAwMCB8QlJfUFNfMTYgfCBCUl9NU19HUENNIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweEZGMDAwNUIwCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJKDB4RkEwMDAwMDAgfEJSX1BTXzE2IHwgQlJfTVNfR1BDTSB8IEJSX1YpCiAKLSNkZWZpbmUgQ0ZHX0JDU1IJCTB4RkE0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkweEZBNDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXAgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggIC8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ29uZmlndXJhdGlvbiByZWdpc3RlcnMKICAqLwogI2lmZGVmIENPTkZJR19XQVRDSERPRwotI2RlZmluZSBDRkdfU1lQQ1IJCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgIHwgXAogCQkJCSBTWVBDUl9TV0YgIHwgU1lQQ1JfU1dFIHwgU1lQQ1JfU1dSSSB8IFwKIAkJCQkgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCQkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FICB8IFwKIAkJCQkgU1lQQ1JfU1dGICB8IFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIAotI2RlZmluZSBDRkdfU0lVTUNSCQkoU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9EQkdDMTEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkoU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9EQkdDMTEpCiAKIC8qIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfVEJTQ1IJCShUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJCShUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCiAKIC8qIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAqLwotI2RlZmluZSBDRkdfUElTQ1IJCVBJU0NSX1BTCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJCVBJU0NSX1BTCiAKIC8qIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgKi8KICNkZWZpbmUgU0NDUl9NQVNLCQlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkJU0NDUl9SVFNFTAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCVNDQ1JfUlRTRUwKIAotI2RlZmluZSBDRkdfREVSCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBjaGlwcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggY2hpcHMJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0VSSUMuaCBiL2luY2x1ZGUvY29uZmlncy9FUklDLmgKaW5kZXggYzNjN2FhNC4uYzA1OTQ1YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VSSUMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRVJJQy5oCkBAIC01NCwxMyArNTQsMTMgQEAKICNlbmRpZgkJCQkJLyogdG90YWwgc2l6ZSBvZiBhIFgxMjQwIGlzIDIwNDggYnl0ZXMgKi8KIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTcJLyogWDEyNDAgaGFzIHR3byBJMkMgc2xhdmUgYWRkcmVzc2VzLCBvbmUgZm9yIEVFUFJPTSAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCS8qIGFkZHJlc3MgbGVuZ3RoIGZvciB0aGUgZWVwcm9tICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTcJLyogWDEyNDAgaGFzIHR3byBJMkMgc2xhdmUgYWRkcmVzc2VzLCBvbmUgZm9yIEVFUFJPTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBhZGRyZXNzIGxlbmd0aCBmb3IgdGhlIGVlcHJvbSAqLwogI2RlZmluZSBDT05GSUdfSTJDX1JUQwkJMQkvKiB3ZSBoYXZlIGEgWGljb3IgWDEyNDAgUlRDICovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2RgkvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG9uZSBmb3IgUlRDICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NkYJLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBvbmUgZm9yIFJUQyAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI3VuZGVmIENPTkZJR19FTlZfSVNfSU5fTlZSQU0KQEAgLTkxLDcgKzkxLDcgQEAKIAkJCQkiaXA9MTkyLjE2OC4xLjIyOjE5Mi4xNjguMS4yIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMQkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC0xMjIsMzEgKzEyMiwzMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI3VuZGVmCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjdW5kZWYJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCSBDRkdfRVhUX1NFUklBTF9DTE9DSwkgMTQzMTgxODAKKyNkZWZpbmUJIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgMTQzMTgxODAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE2MSwxNCArMTYxLDE0IEBACiAjdW5kZWYgIENPTkZJR19QQ0lfUE5QCQkJLyogbm8gcGNpIHBsdWctYW5kLXBsYXkgICAgICAgICAqLwogCQkJCQkvKiByZXNvdXJjZSBjb25maWd1cmF0aW9uICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxNzQzCS8qIFBDSSBWZW5kb3IgSUQ6IFBlcHBlcmNvbiBBRwkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUJLyogUENJIERldmljZSBJRDogNDA1R1AJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4RkZGQzAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4RkZGRkYwMDEJLyogNGtCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxNzQzCS8qIFBDSSBWZW5kb3IgSUQ6IFBlcHBlcmNvbiBBRwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IDQwNUdQCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHhGRkZDMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4RkZGRkYwMDEJLyogNGtCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKQEAgLTIyNCwyMSArMjI0LDIxIEBACiAjZGVmaW5lIENTN19BUAkweDAyODE1NDgwIC8qIFdUPTEsIE9FTj0weDEsV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0wLCAqLwogI2RlZmluZSBDUzdfQ1IJMHhGMDYxODAwMCAvKiBCQVM9MHhGMDEsQlM9KDFNQiksQlU9MHgzKFIvVyksIEJXPSg4IGJpdHMpICovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX1JFR19CQVNFX0FERFIJIDB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAoMHhGMDAwMDAwMCArIDB4N0Y4KQotI2RlZmluZSBDRkdfQURDX1JFR19CQVNFX0FERFIJIDB4RjAxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BIWVJFU19SRUdfQkFTRV9BRERSIDB4RjAyMDAwMDAKLSNkZWZpbmUgQ0ZHX1BSU05UMV9SRUdfQkFTRV9BRERSIDB4RjAzMDAwMDAKLSNkZWZpbmUgQ0ZHX1BSU05UMl9SRUdfQkFTRV9BRERSIDB4RjA0MDAwMDAKLSNkZWZpbmUgQ0ZHX0xFRDBfUkVHX0JBU0VfQUREUgkgMHhGMDUwMDAwMAotI2RlZmluZSBDRkdfTEVEMV9SRUdfQkFTRV9BRERSCSAweEYwNjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fUkVHX0JBU0VfQUREUgkgMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JUQ19SRUdfQkFTRV9BRERSCSAoMHhGMDAwMDAwMCArIDB4N0Y4KQorI2RlZmluZSBDT05GSUdfU1lTX0FEQ19SRUdfQkFTRV9BRERSCSAweEYwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEhZUkVTX1JFR19CQVNFX0FERFIgMHhGMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BSU05UMV9SRUdfQkFTRV9BRERSIDB4RjAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUlNOVDJfUkVHX0JBU0VfQUREUiAweEYwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEVEMF9SRUdfQkFTRV9BRERSCSAweEYwNTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEVEMV9SRUdfQkFTRV9BRERSCSAweEYwNjAwMDAwCiAKIAogLyogIFNEUkFNIENPTkZJRyAqLwotI2RlZmluZSBDRkdfU0RSQU1fTUFOVUFMTFkgICAgMQotI2RlZmluZSBDRkdfU0RSQU1fU0lOR0xFX0JBTksgMQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01BTlVBTExZICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSU5HTEVfQkFOSyAxCiAKLSNpZmRlZiBDRkdfU0RSQU1fTUFOVUFMTFkKKyNpZmRlZiBDT05GSUdfU1lTX1NEUkFNX01BTlVBTExZCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXQgTUIwQ0YgZm9yIGJhbmsgMC4gKDAtMzJNQikgQWRkcmVzcyBNb2RlIDQgc2luY2UgMTJ4OCgyKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTI0Niw3ICsyNDYsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IE1CMUNGIGZvciBiYW5rIDEuICgzMk1CLTY0TUIpIEFkZHJlc3MgTW9kZSA0IHNpbmNlIDEyeDgoMikKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jaWZkZWYgQ0ZHX1NEUkFNX1NJTkdMRV9CQU5LCisjaWZkZWYgQ09ORklHX1NZU19TRFJBTV9TSU5HTEVfQkFOSwogI2RlZmluZSBNQjFDRgkweDAgLyogIDBNQiBAIDMyTUIgKi8KICNlbHNlCiAjZGVmaW5lIE1CMUNGCTB4MDIwNjIwMDEgLyogIDMyTUIgQCAzMk1CICovCkBAIC0yNjUsMzcgKzI2NSwzNyBAQAogI2RlZmluZSBTRFRSXzY2ICAgICAweDAwODU0MDA2CS8qIG9yaWcgVS1Cb290LXdhbGxudXQgc2F5cyAweDAwODU0MDA2ICovCiAjZGVmaW5lIFJUUl82NiAgICAgIDB4MDNmOAogCi0jZW5kaWYgICAvKiBDRkdfU0RSQU1fTUFOVUFMTFkgKi8KKyNlbmRpZiAgIC8qIENPTkZJR19TWVNfU0RSQU1fTUFOVUFMTFkgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMzIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgICAgICAvKiA4IE1CeXRlIEZsYXNoICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkZFMDAwMCAgICAgIC8qIGxhc3QgMTI4a0J5dGUgd2l0aGluIEZsYXNoICovCi0vKiNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkqLwkvKiBSZXNlcnZlIDE5NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgICAgICAvKiA4IE1CeXRlIEZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4RkZGRTAwMDAgICAgICAvKiBsYXN0IDEyOGtCeXRlIHdpdGhpbiBGbGFzaCAqLworLyojZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KSovCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIXzE2QklUCQkxCS8qIFJvbSAxNiBiaXQgZGF0YSBidXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIXzE2QklUCQkxCS8qIFJvbSAxNiBiaXQgZGF0YSBidXMJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyogQkVHIEVOVklST05ORU1FTlQgRkxBU0ggKi8KICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0zMDUsOSArMzA1LDkgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgICAgMHhmZmZhMDAwMAogI2Vsc2UgIC8qIGZvcmNlIEVOViB0byBiZSBlbWJlZGRlZCAqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCSgyICogMTAyNCkgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgMmsgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgICAgKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NJWkUgLSAweDEwKSAvKiBsZXQgc3BhY2UgZm9yIHJlc2V0IHZlY3RvciAqLwotLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoQ0ZHX01PTklUT1JfQkFTRSkqLwotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVCAgICAgICAgICAoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgICAgIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NJWkUgLSAweDEwKSAvKiBsZXQgc3BhY2UgZm9yIHJlc2V0IHZlY3RvciAqLworLyogI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UpKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQgICAgICAgICAgKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkKICNlbmRpZgogCiAjZW5kaWYKQEAgLTMxNSwxMyArMzE1LDEzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCUNGR19OVlJBTV9SRUdfQkFTRV9BRERSCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHg3RjgJCS8qIE5WUkFNIHNpemUgMmtCeXRlIC0gOCBCeXRlIGZvciBSVEMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJQ09ORklHX1NZU19OVlJBTV9SRUdfQkFTRV9BRERSCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTB4N0Y4CQkvKiBOVlJBTSBzaXplIDJrQnl0ZSAtIDggQnl0ZSBmb3IgUlRDICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg3RjgJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KICNlbmRpZgogCiAvKgpAQCAtMzQwLDExICszNDAsMTEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAgLyogaW5zaWRlIG9mIFNEUkFNCQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDBmMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgwMGRmMDAwMCAgLyogaW5zaWRlIG9mIFNEUkFNCQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgwZjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIFNlcmlhbCBQcmVzZW5jZSBEZXRlY3QgRUVQUk9NIGFkZHJlc3MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FU1RFRU0xOTJFLmggYi9pbmNsdWRlL2NvbmZpZ3MvRVNURUVNMTkyRS5oCmluZGV4IDAyNTM5ZTIuLjExYTg2MmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FU1RFRU0xOTJFLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VTVEVFTTE5MkUuaApAQCAtNDQsNyArNDQsNyBAQAogCiAjZGVmaW5lIE1QQzhYWF9GQUNUCTEwCQkvKiBNdWx0aXBseSBieSAxMAkJKi8KICNkZWZpbmUgTVBDOFhYX1hJTgk0OTE1MjAwCS8qIDQuOTE1MjAwIE1IeiBpbgktID8/PyAtIFhYWAkqLwotI2RlZmluZSBDRkdfUExQUkNSX01GCSgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSX01GCSgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApCiAjZGVmaW5lIE1QQzhYWF9IWiAoKE1QQzhYWF9YSU4pICogKE1QQzhYWF9GQUNUKSkgLyogNDksMTUyLDAwMCBIegkqLwogCiAjZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRCU1QQzhYWF9IWgkvKiBGb3JjZSBpdCAtIGRvbnQgbWVhc3VyZSBpdCAqLwpAQCAtNjYsNyArNjYsNyBAQAogICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTg2LDIyICs4NiwyMiBAQAogI2luY2x1ZGUgPGNvbmZpZ19jbWRfZGVmYXVsdC5oPgogCiAKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIkJPT1Q6ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwk4CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSJCT09UOiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwk4CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtMTEyLDQ3ICsxMTIsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKIAogICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmZGVmCURFQlVHCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNjAsNyArMTYwLDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNZUENSIC0gU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbAkJCQkxMS05CkBAIC0xNjgsMjEgKzE2OCwyMSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkxMS02CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkgLyogREJHQzAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpIC8qIERCR0MwMCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCiAKIC8qIChUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikgKi8KIApAQCAtMTkyLDcgKzE5Miw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTIwMCw3ICsyMDAsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKENGR19QTFBSQ1JfTUYgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShDT05GSUdfU1lTX1BMUFJDUl9NRiB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTIwOSw3ICsyMDksNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTIxOSwyNSArMjE5LDI1IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JTlRFUlJVUFQJU0lVX0xFVkVMNgorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JTlRFUlJVUFQJU0lVX0xFVkVMNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAotLyojZGVmaW5lIENGR19ERVIJMHgwMjAwMjAwMCAqLworLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCisvKiNkZWZpbmUgQ09ORklHX1NZU19ERVIJMHgwMjAwMjAwMCAqLwogCiAKIC8qCkBAIC0yNTMsMjEgKzI1MywyMSBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJMHgwMDAwMDE2MAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkweDAwMDAwMTYwCiAJCQkJLyooT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzVfQ0xLIHwgT1JfRUhUUikgKi8KIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCTB4ODAwMDAxNjAgICAgIC8qKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKSovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKCBGTEFTSF9CQVNFMF9QUkVMSU0gfCAweDAwMDAwODAxICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJMHg4MDAwMDE2MCAgICAgLyooQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoIEZMQVNIX0JBU0UwX1BSRUxJTSB8IDB4MDAwMDA4MDEgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoIEZMQVNIX0JBU0UxX1BSRUxJTSB8IDB4MDAwMDA4MDEgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoIEZMQVNIX0JBU0UxX1BSRUxJTSB8IDB4MDAwMDA4MDEgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTI3OCwxMyArMjc4LDEzIEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDAyMDAwMDAwCS8qIG1heCAzMiBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCTB4RkMwMDBFMDAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKFNEUkFNX0JBU0UyX1BSRUxJTSB8IDB4MDAwMDAwODEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkweEZDMDAwRTAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoU0RSQU1fQkFTRTJfUFJFTElNIHwgMHgwMDAwMDA4MSkKIAotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoU0RSQU1fQkFTRTNfUFJFTElNIHwgMHgwMDAwMDA4MSkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKFNEUkFNX0JBU0UzX1BSRUxJTSB8IDB4MDAwMDAwODEpCiAKIAogLyoKQEAgLTI5MiwyMyArMjkyLDIzIEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJMHgxODgwMzExMgotI2RlZmluZSBDRkdfTUFNUl85Q09MCTB4MTg4MDMxMTIJLyogc2FtZSBhcyA4IGNvbHVtbiBiZWNhdXNlIGl0cyBqdXN0IGVhc2llciB0byBwb3J0IHdpdGgqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkweDE4ODAzMTEyCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCTB4MTg4MDMxMTIJLyogc2FtZSBhcyA4IGNvbHVtbiBiZWNhdXNlIGl0cyBqdXN0IGVhc2llciB0byBwb3J0IHdpdGgqLwogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRVRYMDk0LmggYi9pbmNsdWRlL2NvbmZpZ3MvRVRYMDk0LmgKaW5kZXggYWRmNzljNy4uYzM2ZjJiYjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9FVFgwOTQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRVRYMDk0LmgKQEAgLTc2LDcgKzc2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5EIENPTkZJR19SQU1CT09UQ09NTUFORAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfV0FUQ0hET0cJCTEJLyogd2F0Y2hkb2cgZW5hYmxlZAkJKi8KIApAQCAtMTAyLDI1ICsxMDIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEzMCw0NiArMTMwLDQ2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmZGVmCURFQlVHCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjaWZkZWYgQ09ORklHX0ZMQVNIXzE2QklUCkBAIC0xODMsMTYgKzE4MywxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDIsMTAgKzIwMiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYJLyogQ09ORklHX1dBVENIRE9HICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxMywyNyArMjEzLDI3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjQxLDcgKzI0MSw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQgLSBsZWF2ZSBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHVuY2hhbmdlZCAhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjUwLDcgKzI1MCw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMjYwLDIxICsyNjAsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yODksMjYgKzI4OSwyNiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMSwgQ1NOVCA9IDAsIFNDWSA9IDIsIEVIVFIgPSAwCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggICAgKE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIICAgIChPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJICAgICAgIE9SX1NDWV8yX0NMSyB8IE9SX1RSTFggKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAKICNpZmRlZiBDT05GSUdfRkxBU0hfMTZCSVQJLyogMTYgYml0IGRhdGEgcG9ydCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMTYpCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNikKICNlbHNlCQkJCS8qIDMyIGJpdCBkYXRhIHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViB8IEJSX1BTXzMyKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMzIpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMzIpCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfMzIpCiAjZW5kaWYJLyogQ09ORklHX0ZMQVNIXzE2QklUICovCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zMTksMzkgKzMxOSwzOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTIzCQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkyMwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzFYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfMVgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FVkI2NDI2MC5oIGIvaW5jbHVkZS9jb25maWdzL0VWQjY0MjYwLmgKaW5kZXggZjk4ODMxZS4uYmY0MWMxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VWQjY0MjYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VWQjY0MjYwLmgKQEAgLTQwLDcgKzQwLDcgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19FVkI2NDI2MAkJMQkvKiB0aGlzIGlzIGFuIEVWQjY0MjYwIGJvYXJkCSovCi0jZGVmaW5lIENGR19HVF82NDI2eCAgICAgICAgR1RfNjQyNjAgLyogd2l0aCBhIDY0MjYwIHN5c3RlbSBjb250cm9sbGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfNjQyNnggICAgICAgIEdUXzY0MjYwIC8qIHdpdGggYSA2NDI2MCBzeXN0ZW0gY29udHJvbGxlciAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMzg0MDAJLyogY29uc29sZSBiYXVkcmF0ZSA9IDM4NDAwCSovCiAKQEAgLTUyLDEzICs1MiwxMyBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEKIAogI2lmbmRlZiBDT05GSUdfRVZCNjQyNjBfNzUwQ1gKLSNkZWZpbmUgQ0ZHX0JPQVJEX05BTUUJCSJFVkI2NDI2MCIKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9OQU1FCQkiRVZCNjQyNjAiCiAjZWxzZQotI2RlZmluZSBDRkdfQk9BUkRfTkFNRSAgICAgICAgICJFVkI2NDI2MC03NTBDWCIKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9OQU1FICAgICAgICAgIkVWQjY0MjYwLTc1MENYIgogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBsZXQgeW91IHNlbGVjdCB3aGF0IHNlcmlhbCB5b3Ugd2FudCB0byB1c2UKQEAgLTY2LDcgKzY2LDcgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogdG8gdXNlIHRoZSBEVUFSVCwgdW5kZWYgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSBoYWNrZWQgYSBzZXJpYWwKLSAqIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLCBjaGFuZ2UgdGhlIENGR19EVUFSVCBwb3J0IGZyb20gMQorICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMQogICogdG8gMCBiZWxvdy4KICAqCiAgKiB0byB1c2UgdGhlIE1QU0MsICNkZWZpbmUgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSB3aXJlZCB1cCBhbm90aGVyCkBAIC05OCw3ICs5OCw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZQlDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlcwkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjdW5kZWYJQ09ORklHX0FMVElWRUMgICAgICAgICAgICAgICAgICAvKiB1bmRlZiB0byBkaXNhYmxlICAgICAgICAgICAgICovCkBAIC0xMjQsMzEgKzEyNCwzMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcwkqLwotI2RlZmluZSBDRkdfQlVTX0haCQkxMDAwMDAwMDAJLyogMTAwIE1IegkJKi8KLSNkZWZpbmUgQ0ZHX0JVU19DTEsJCUNGR19CVVNfSFoKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3IgZnJlcTogMW1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haCQkxMDAwMDAwMDAJLyogMTAwIE1IegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCQlDT05GSUdfU1lTX0JVU19IWgogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2lmZGVmIENPTkZJR19FVkI2NDI2MF83NTBDWAogI2RlZmluZSBDT05GSUdfNzUwQ1gKLSNkZWZpbmUgQ0ZHX0JST0tFTl9DTDIKKyNkZWZpbmUgQ09ORklHX1NZU19CUk9LRU5fQ0wyCiAjZW5kaWYKIAogLyoKQEAgLTE2MCw1MSArMTYwLDUxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZjAwMDAwCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLwogCiAvKiBhcmVhcyB0byBtYXAgZGlmZmVyZW50IHRoaW5ncyB3aXRoIHRoZSBHVCBpbiBwaHlzaWNhbCBzcGFjZSAqLwotI2RlZmluZSBDRkdfRFJBTV9CQU5LUwkJNAotI2RlZmluZSBDRkdfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBTktTCQk0CisjZGVmaW5lIENPTkZJR19TWVNfREZMX0dUX1JFR1MJCTB4MTQwMDAwMDAJLyogYm9vdCB0aW1lIEdUX1JFR1MgKi8KIAogLyogV2hhdCB0byBwdXQgaW4gdGhlIGJhdHMuICovCi0jZGVmaW5lIENGR19NSVNDX1JFR0lPTl9CQVNFCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFCTB4ZjAwMDAwMDAKIAogLyogUGVyaXBoZXJhbCBEZXZpY2Ugc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfR1RfUkVHUwkJMHhmODAwMDAwMAotI2RlZmluZSBDRkdfREVWX0JBU0UJCTB4ZmMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HVF9SRUdTCQkweGY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVWX0JBU0UJCTB4ZmMwMDAwMDAKIAotI2RlZmluZSBDRkdfREVWMF9TUEFDRQkJQ0ZHX0RFVl9CQVNFCi0jZGVmaW5lIENGR19ERVYxX1NQQUNFCQkoQ0ZHX0RFVjBfU1BBQ0UgKyBDRkdfREVWMF9TSVpFKQotI2RlZmluZSBDRkdfREVWMl9TUEFDRQkJKENGR19ERVYxX1NQQUNFICsgQ0ZHX0RFVjFfU0laRSkKLSNkZWZpbmUgQ0ZHX0RFVjNfU1BBQ0UJCShDRkdfREVWMl9TUEFDRSArIENGR19ERVYyX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfREVWMF9TUEFDRQkJQ09ORklHX1NZU19ERVZfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0RFVjFfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjBfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjBfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NQQUNFCQkoQ09ORklHX1NZU19ERVYxX1NQQUNFICsgQ09ORklHX1NZU19ERVYxX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19TUEFDRQkJKENPTkZJR19TWVNfREVWMl9TUEFDRSArIENPTkZJR19TWVNfREVWMl9TSVpFKQogCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCSBfOE0gLyogZXZiNjQyNjAgc3JhbSAgQCAweGZjMDAuMDAwMCAqLwotI2RlZmluZSBDRkdfREVWMV9TSVpFCQkgXzhNIC8qIGV2YjY0MjYwIHJ0YyAgIEAgMHhmYzgwLjAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjJfU0laRQkJXzE2TSAvKiBldmI2NDI2MCBkdWFydCBAIDB4ZmQwMC4wMDAwICovCi0jZGVmaW5lIENGR19ERVYzX1NJWkUJCV8xNk0gLyogZXZiNjQyNjAgZmxhc2ggQCAweGZlMDAuMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfU0laRQkJIF84TSAvKiBldmI2NDI2MCBzcmFtICBAIDB4ZmMwMC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9TSVpFCQkgXzhNIC8qIGV2YjY0MjYwIHJ0YyAgIEAgMHhmYzgwLjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NJWkUJCV8xNk0gLyogZXZiNjQyNjAgZHVhcnQgQCAweGZkMDAuMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjNfU0laRQkJXzE2TSAvKiBldmI2NDI2MCBmbGFzaCBAIDB4ZmUwMC4wMDAwICovCiAKLSNkZWZpbmUgQ0ZHX0RFVjBfUEFSCQkweDIwMjA1MDkzCi0jZGVmaW5lIENGR19ERVYxX1BBUgkJMHhjZmNmZmZmZgotI2RlZmluZSBDRkdfREVWMl9QQVIJCTB4YzAwNTliZDQKLSNkZWZpbmUgQ0ZHXzhCSVRfQk9PVF9QQVIJMHhjMDBiNWU3YwotI2RlZmluZSBDRkdfMzJCSVRfQk9PVF9QQVIJMHhjNGE4MjQxYworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfUEFSCQkweDIwMjA1MDkzCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9QQVIJCTB4Y2ZjZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1BBUgkJMHhjMDA1OWJkNAorI2RlZmluZSBDT05GSUdfU1lTXzhCSVRfQk9PVF9QQVIJMHhjMDBiNWU3YworI2RlZmluZSBDT05GSUdfU1lTXzMyQklUX0JPT1RfUEFSCTB4YzRhODI0MWMKIAkvKiAgIGMgICAgNCAgICBhICAgICAgOCAgICAgMiAgICAgNCAgICAxICAgICAgYwkJKi8KIAkvKiAzMyAyMnwyMjIyfDIyIDIyfDExMSAxfDExIDExfDEgMSAgfCAgICB8CQkqLwogCS8qIDEwIDk4fDc2NTR8MzIgMTB8OTg3IDZ8NTQgMzJ8MSAwOTh8NyA2NTR8MyAyMTAJKi8KQEAgLTIxMiwxOSArMjEyLDE5IEBACiAJLyogIDN8IDB8Li4uLiAuLnwgMnwgNCB8ICAwIHwgIDQgfCAgOCAgfCAgMyAgfCA0CSovCiAKICNpZiAwIC8qIFdyb25nPz8gTlRMICovCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8wCTB4NTM1NDE3MTcJLyogSW5pdEFjdCBFT1RbNF0gREJ1cnN0IFRDRW5bMV0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wCTB4NTM1NDE3MTcJLyogSW5pdEFjdCBFT1RbNF0gREJ1cnN0IFRDRW5bMV0gKi8KIAkJCQkJCS8qIERNQUFja1sxOjBdIEdOVDBbMTowXSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHg1MzU0Nzc3NwkvKiBJbml0QWN0IEVPVFs0XSBEQnVyc3QgVENFblsxXSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHg1MzU0Nzc3NwkvKiBJbml0QWN0IEVPVFs0XSBEQnVyc3QgVENFblsxXSAqLwogCQkJCQkJLyogUkVRMFsxOjBdIEdOVDBbMTowXSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8xCTB4NDQwMDk5MTEJLyogVENFbls0XSBUQ1RjbnRbNF0gR1BQWzEzOjEyXSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEJMHg0NDAwOTkxMQkvKiBUQ0VuWzRdIFRDVGNudFs0XSBHUFBbMTM6MTJdICovCiAJCQkJCQkvKiBETUFSZXFbNF0gRE1BQWNrWzRdIFdETk1JIFdERSAqLwogI2lmIDAgLyogV3Jvbmc/PyBOVEwgKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzIJMHg0MDA5MTgxOAkvKiBUQ1RjbnRbMF0gR1BQWzIyOjIxXSBCQ2xrSW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yCTB4NDAwOTE4MTgJLyogVENUY250WzBdIEdQUFsyMjoyMV0gQkNsa0luICovCiAJCQkJCQkvKiBETUFBY2tbMTowXSBHTlQxWzE6MF0gKi8KICNlbHNlCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4NDAwOTg4ODgJLyogVENUY250WzBdICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMgkweDQwMDk4ODg4CS8qIFRDVGNudFswXSAqLwogCQkJCQkJLyogR1BQWzIyXSAoUlMyMzJJbnRCIG9yIFBDSTFJbnQpICovCiAJCQkJCQkvKiBHUFBbMjFdIChSUzMyM0ludEEpICovCiAJCQkJCQkvKiBCQ2xrSW4gKi8KQEAgLTIzMiwxMCArMjMyLDEwIEBACiAjZW5kaWYKIAogI2lmIDAgLyogV3Jvbmc/PyBOVEwgKi8KLSMgZGVmaW5lIENGR19NUFBfQ09OVFJPTF8zCTB4MDAwOTAwNjYJLyogR1BQWzMxOjI5XSBCQ2xrT3V0MCAqLworIyBkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zCTB4MDAwOTAwNjYJLyogR1BQWzMxOjI5XSBCQ2xrT3V0MCAqLwogCQkJCQkJLyogR1BQWzI3OjI2XSBJbnRbMTowXSAqLwogI2Vsc2UKLSMgZGVmaW5lIENGR19NUFBfQ09OVFJPTF8zCTB4MjIwOTAwNjYgICAgICAvKiBNUkVRIE1HTlQgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMwkweDIyMDkwMDY2ICAgICAgLyogTVJFUSBNR05UICovCiAJCQkJCQkvKiBHUFBbMjldICAgIChQQ0kxSW50KSAqLwogCQkJCQkJLyogQkNsa091dDAgKi8KIAkJCQkJCS8qIEdQUFsyN10gICAgKFBDSTBJbnQpICovCkBAIC0yNDMsMTcgKzI0MywxNyBAQAogCQkJCQkJLyogQ1BVSW50WzI1OjI0XSAqLwogI2VuZGlmCiAKLSMgZGVmaW5lIENGR19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMDEwMgkvKiAwPWhpWiAgMT1NUFNDMCAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMX1BPUlRfTVVYCTB4MDAwMDAxMDIJLyogMD1oaVogIDE9TVBTQzAgMj1FVEggMCBhbmQgMiBSTUlJICovCiAKICNpZiAwIC8qIFdyb25nPz8gLSBOVEwgKi8KLSMgZGVmaW5lIENGR19HUFBfTEVWRUxfQ09OVFJPTAkweDAwMDAwMmM2CisjIGRlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4MDAwMDAyYzYKICNlbHNlCi0jIGRlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgyYzYwMDAwMAkvKiAwMDEwIDExMDAgMDExMCAwMDAwICovCisjIGRlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4MmM2MDAwMDAJLyogMDAxMCAxMTAwIDAxMTAgMDAwMCAqLwogCQkJCQkJLyogZ3BwWzI5XSAqLwogCQkJCQkJLyogZ3BwWzI3OjI2XSAqLwogCQkJCQkJLyogZ3BwWzIyOjIxXSAqLwogCi0jIGRlZmluZSBDRkdfU0RSQU1fQ09ORklHCTB4ZDhlMTgyMDAJLyogMHg0NDggKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ09ORklHCTB4ZDhlMTgyMDAJLyogMHg0NDggKi8KIAkJCQkvKiBpZG1hcyB1c2UgYnVmZmVyIDEsMQogCQkJCSAgIGNvbW0gdXNlIGJ1ZmZlciAwCiAJCQkJICAgcGNpIHVzZSBidWZmZXIgMSwxCkBAIC0yNzAsMTIgKzI3MCwxMiBAQAogCQkJCS8qIDEgIDAgIDB4MjAwICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRFVBUlRfSU8JCUNGR19ERVYyX1NQQUNFCi0jZGVmaW5lIENGR19EVUFSVF9DSEFOCQkxCQkvKiBjaGFubmVsIHRvIHVzZSBmb3IgY29uc29sZSAqLwotI2RlZmluZSBDRkdfSU5JVF9DSEFOMQotI2RlZmluZSBDRkdfSU5JVF9DSEFOMgorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0lPCQlDT05GSUdfU1lTX0RFVjJfU1BBQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9DSEFOCQkxCQkvKiBjaGFubmVsIHRvIHVzZSBmb3IgY29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfQ0hBTjEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0NIQU4yCiAKLSNkZWZpbmUgU1JBTV9CQVNFCQlDRkdfREVWMF9TUEFDRQorI2RlZmluZSBTUkFNX0JBU0UJCUNPTkZJR19TWVNfREVWMF9TUEFDRQogI2RlZmluZSBTUkFNX1NJWkUJCTB4MDAxMDAwMDAJCS8qIDEgTUIgb2Ygc3JhbSAqLwogCiAKQEAgLTI5MywzNyArMjkzLDM3IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QICAgICAgICAgICAgICAgICAgLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgICAgICAgICAqLwogCiAvKiBQQ0kgTUVNT1JZIE1BUCBzZWN0aW9uICovCi0jZGVmaW5lIENGR19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTBfTUVNX1NJWkUJXzEyOE0KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4ODAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQlfMTI4TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCV8xMjhNCiAKLSNkZWZpbmUgQ0ZHX1BDSTBfMF9NRU1fU1BBQ0UJKENGR19QQ0kwX01FTV9CQVNFKQotI2RlZmluZSBDRkdfUENJMV8wX01FTV9TUEFDRQkoQ0ZHX1BDSTFfTUVNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF8wX01FTV9TUEFDRQkoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSkKIAogCiAvKiBQQ0kgSS9PIE1BUCBzZWN0aW9uICovCi0jZGVmaW5lIENGR19QQ0kwX0lPX0JBU0UJMHhmYTAwMDAwMAotI2RlZmluZSBDRkdfUENJMF9JT19TSVpFCV8xNk0KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TSVpFCV8xNk0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHhmYjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQlfMTZNCiAKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0UJKENGR19QQ0kwX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFCShDRkdfUENJMV9JT19CQVNFKQotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQktNAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJLTQKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTM2ODY0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMzY4NjQwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19EVUFSVF9JTyArIDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19EVUFSVF9JTyArIDB4MjApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0RVQVJUX0lPICsgMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfRFVBUlRfSU8gKyAweDIwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgQkFUIG1hcHBpbmdzCkBAIC0zMzUsMzIgKzMzNSwzMiBAQAogICovCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19JQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDBVIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSBDT05GSUdfU1lTX0lCQVQwVQogCiAvKiBpbml0IHJhbSAqLwotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKIAogLyogUENJMCwgUENJMSBpbiBvbmUgQkFUICovCi0jZGVmaW5lIENGR19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKLSNkZWZpbmUgQ0ZHX0lCQVQyVSBDRkdfREJBVDJVCi0jZGVmaW5lIENGR19EQkFUMkwgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgQkFUTF9OT19BQ0NFU1MKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgQ09ORklHX1NZU19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogR1QgcmVncywgYm9vdHJvbSwgYWxsIHRoZSBkZXZpY2VzLCBQQ0kgSS9PICovCi0jZGVmaW5lIENGR19JQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQotI2RlZmluZSBDRkdfSUJBVDNVIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQotI2RlZmluZSBDRkdfREJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSBDT05GSUdfU1lTX0lCQVQzVQogCiAvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKGZvciBjb21wYXRhYmlsaXR5KSBkZWZhdWx0cyAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4N0YKIAogLyogSTJDIGFkZHJlc3NlcyBmb3IgdGhlIHR3byBESU1NIFNQRCBjaGlwcyAqLwogI2lmbmRlZiBDT05GSUdfRVZCNjQyNjBfNzUwQ1gKQEAgLTM3NiwzMiArMzc2LDMyIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4PDwyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDg8PDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRVhUUkFfRkxBU0hfREVWSUNFCURFVklDRTMJLyogZXh0cmEgZmxhc2ggYXQgZGV2aWNlIDMgKi8KLSNkZWZpbmUgQ0ZHX0VYVFJBX0ZMQVNIX1dJRFRICTQJLyogMzIgYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFCURFVklDRTMJLyogZXh0cmEgZmxhc2ggYXQgZGV2aWNlIDMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRSQV9GTEFTSF9XSURUSAk0CS8qIDMyIGJpdCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX01PTklUT1JfTEVOLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA5LDcgKzQwOSw3IEBACiAgKiBsb29rIGluIGluY2x1ZGUvNzR4eF83eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KIAotI2RlZmluZSBDRkdfTDIKKyNkZWZpbmUgQ09ORklHX1NZU19MMgogCiAjaWZkZWYgQ09ORklHXzc1MENYCiAjZGVmaW5lIEwyX0lOSVQJCTAKQEAgLTQyOCw3ICs0MjgsNyBAQAogI2RlZmluZQlCT09URkxBR19DT0xECTB4MDEJCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JMHgwMgkJLyogU29mdHdhcmUgcmVib290CQkgICAgKi8KIAotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQgICAgICAxCiAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9FWEJJVEdFTi5oIGIvaW5jbHVkZS9jb25maWdzL0VYQklUR0VOLmgKaW5kZXggNWJhMTcwNi4uOWY1ZDNjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0VYQklUR0VOLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0VYQklUR0VOLmgKQEAgLTQzLDggKzQzLDggQEAKIAogLyogSTJDIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwCS8qIEkyQyBzcGVlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyZXNzCQkqLwogCiAvKiBlbnZpcm9ubWVudCBpcyBpbiBFRVBST00gKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00gICAgMQpAQCAtNTIsMTEgKzUyLDExIEBACiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9OVlJBTQogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1NiAgICAvKiAxMDEwMTEwICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIDgtYml0IGludGVybmFsIGFkZHJlc3NpbmcgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkxCS8qIC4uLiBhbmQgMSBiaXQgaW4gSTJDIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwkvKiA0IGJ5dGVzIHBlciBwYWdlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk0MAkvKiB3cml0ZSB0YWtlcyB1cCB0byA0MCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDU2ICAgIC8qIDEwMTAxMTAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIDgtYml0IGludGVybmFsIGFkZHJlc3NpbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMQkvKiAuLi4gYW5kIDEgYml0IGluIEkyQyBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCS8qIDQgYnl0ZXMgcGVyIHBhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk0MAkvKiB3cml0ZSB0YWtlcyB1cCB0byA0MCBtc2VjICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQk0CS8qIE9mZnNldCBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkzNTAJLyogdGhhdCBpcyAzNTAgYnl0ZXMgb25seSEJKi8KICNlbmRpZgpAQCAtNzcsNyArNzcsNyBAQAogCQkJCSJyYW09MTI4TSBkZWJ1ZyIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTAJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtMTAzLDM3ICsxMDMsMzcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCiAvKiBVQVJUIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECQk2OTEyMDAKIAogLyogRGVmYXVsdCBiYXVkIHJhdGUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICBcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTQ5LDI4ICsxNDksMjggQEAKICN1bmRlZiAgQ09ORklHX0lERV9MRUQgICAgICAgICAgICAgICAgICAvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQgICAgICovCiAjdW5kZWYgIENPTkZJR19JREVfUkVTRVQgICAgICAgICAgICAgICAgLyogbm8gcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQgICAqLwogCi0jZGVmaW5lCUNGR19LRVlfUkVHX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lCUNGR19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKLSNkZWZpbmUJQ0ZHX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0lSX1JFR19CQVNFX0FERFIJMHhGMDIwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRQkJMHhGRkY4MDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUJCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDFfU0laRQkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQlDRkdfRkxBU0gwX1NJWkUKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UJCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRQkJMHgwMDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJQ09ORklHX1NZU19GTEFTSDBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfUkFNU1RBUlQKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1TVEFSVAogI2VuZGlmCiAKIC8qCkBAIC0xNzgsMTUgKzE3OCwxNSBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJNQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJNQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDA2MDAwMCAvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgU2VjdG9yICAgICAgKi8KQEAgLTE5NSwxNSArMTk1LDE1IEBACiAjZW5kaWYKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24vc2l6ZSAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKIC8qIEdsb2JhbCBpbmZvIGFuZCBpbml0aWFsIHN0YWNrICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBvbi1jaGlwIFNSQU0JKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2Ygb24tY2hpcCBTUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRkFEUzgyMy5oIGIvaW5jbHVkZS9jb25maWdzL0ZBRFM4MjMuaAppbmRleCBhYmY1MWVmLi5jYjc1OTYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRkFEUzgyMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9GQURTODIzLmgKQEAgLTE4LDE0ICsxOCwxNCBAQAogICogMDAwMDAwMDAgLT4gbm5ubm5ubm4gOiBzZHJhbS9kcmFtIHNldHVwIGJ5IFUtQm9vdAogKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJMHhmZjAyMDAwMAotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJMHgxMDAwMAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkweDEwMDAwCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCi0jZGVmaW5lCUNGR19TRFJBTV9TSVpFCQkoNDw8MjApIC8qIHN0YW5kYXJkIEZBRFMgaGFzIDRNICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAyODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJMHhmZjAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJMHhlMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX1NJWkUJCSg0PDwyMCkgLyogc3RhbmRhcmQgRkFEUyBoYXMgNE0gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMjgwMDAwMAogI2RlZmluZSBCQ1NSX0FERFIJCSgodWludCkgMHhmZjAxMDAwMCkKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4MDI4MDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCkBAIC00Myw4ICs0Myw4IEBACiAKICNkZWZpbmUgQ09ORklHX1ZJREVPCQkxCS8qIFRvIGVuYWJsZSB2aWRlbyBjb250cm9sbGVyIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIFRvIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qI2RlZmluZSBDT05GSUdfUENNQ0lBCQkxCS8gKiBUbyBlbmFibGUgUENNQ0lBIHN1cHBvcnQgKi8KIApAQCAtODIsNyArODIsNyBAQAogI2Vsc2UKICNkZWZpbmUgTVBDOFhYX0ZBQ1QJMTAJCQkvKiBNdWx0aXBseSBieSAxMCAqLwogI2RlZmluZSBNUEM4WFhfWElOCTUwMDAwMDAJCQkvKiA1IE1IeiBpbiAqLwotI2RlZmluZSBDRkdfUExQUkNSX01GCShNUEM4WFhfRkFDVC0xKSA8PCAyMAkvKiBGcm9tIDAgdG8gNDA5NSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUl9NRgkoTVBDOFhYX0ZBQ1QtMSkgPDwgMjAJLyogRnJvbSAwIHRvIDQwOTUgKi8KICNlbmRpZgogI2RlZmluZSBNUEM4WFhfSFogKChNUEM4WFhfWElOKSAqIChNUEM4WFhfRkFDVCkpCiAKQEAgLTEzNCwyNSArMTM0LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIjo+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIjo+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiAwIC4uLiAxNiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiAwIC4uLiAxNiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTYyLDU4ICsxNjIsNTggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICogQWxzbyBOT1RFIHRoYXQgaXQgZG9lc24ndCBtZWFuIFNEUkFNIC0gaXQgbWVhbnMgTUVNT1JZLgogICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KICNpZiAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwNDAwMDAJLyogT2Zmc2V0IG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjIzLDEwICsyMjMsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzNCwyMSArMjM0LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKQEAgLTI1Niw3ICsyNTYsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIgICoKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8IENGR19QTFBSQ1JfTUYpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgfCBDT05GSUdfU1lTX1BMUFJDUl9NRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI2NSw3ICsyNjUsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgICAgKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgIChTQ0NSX1RCUyAgICAgfCBcCiAJCQkJU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkJU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkJU0NDUl9ERkFMQ0QwMCkKQEAgLTI3NSw3ICsyNzUsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkwCiAKIC8qIEJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgODYwIHN0YXJ0cyB1cCBhbmQgYXNzaWducyBDUzAgdGhlCiAqIGVudGlyZSBhZGRyZXNzIHNwYWNlLCB3ZSBoYXZlIHRvIHNldCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIKQEAgLTI5NiwyMCArMjk2LDIwIEBACiAKICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFuayAjMQkqLwogCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGRTAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGRTAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDEwLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAwCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkgICAvKiAxIE1ieXRlIHVudGlsIGRldGVjdGVkIGFuZCBvbmx5IDEgTWJ5dGUgaXMgbmVlZGVkKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyogQkNTUnggLSBCb2FyZCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkweGZmZmY4MTEwCQkJCQkJCQkJLyogNjRLYnl0ZSBhZGRyZXNzIHNwYWNlICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQkNTUl9BRERSKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JMHhmZmZmODExMAkJCQkJCQkJCS8qIDY0S2J5dGUgYWRkcmVzcyBzcGFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChCQ1NSX0FERFIpIHwgQlJfViApCiAKIAogLyoKQEAgLTMxNywzMCArMzE3LDMwIEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIAotI2RlZmluZSBDRkdfTUFNUgkJMHgxM2EwMTExNAorI2RlZmluZSBDT05GSUdfU1lTX01BTVIJCTB4MTNhMDExMTQKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwogICoKQEAgLTQ3Nyw2ICs0NzcsNiBAQAogI2RlZmluZSBQQ01DSUFfU0xPVF9BIDEKICNlbmRpZgogCi0jZGVmaW5lIENGR19EQVVHSFRFUkJPQVJECisjZGVmaW5lIENPTkZJR19TWVNfREFVR0hURVJCT0FSRAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0ZBRFM4NTBTQVIuaCBiL2luY2x1ZGUvY29uZmlncy9GQURTODUwU0FSLmgKaW5kZXggZDYxNzg2OC4uODQxODdmYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0ZBRFM4NTBTQVIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRkFEUzg1MFNBUi5oCkBAIC04MCwyNSArODAsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSN1bmRlZglDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIjo+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI6PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDgwMDAwMAkvKiAwIC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwODAwMDAwCS8qIDAgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEwOCw2MiArMTA4LDYyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICogQWxzbyBOT1RFIHRoYXQgaXQgZG9lc24ndCBtZWFuIFNEUkFNIC0gaXQgbWVhbnMgTUVNT1JZLgogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lCUNGR19TRFJBTV9TSVpFCQkoNDw8MjApIC8qIHN0YW5kYXJkIEZBRFMgaGFzIDRNICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAyODAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fU0laRQkJKDQ8PDIwKSAvKiBzdGFuZGFyZCBGQURTIGhhcyA0TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDI4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KICNpZiAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwNDAwMDAJLyogT2Zmc2V0IG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTczLDEwICsxNzMsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4NCwyMSArMTg0LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKQEAgLTIwNiw3ICsyMDYsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIgICoKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCAyMCkgfCBcCiAJCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTYsNyArMjE2LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSICAgICAgIChTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAoU0NDUl9UQlMgICAgIHwgXAogCQkJCVNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJCVNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJCVNDQ1JfREZBTENEMDApCkBAIC0yMjYsNyArMjI2LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0yNTAsMjAgKzI1MCwyMCBAQAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHgwMjgwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweDAwMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzEJKi8KIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkUwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkUwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMCwgVFJMWCA9IDEsIENTTlQgPSAxLCBTQ1kgPSAzLCBFSFRSID0gMAkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKSAgIC8qIDEgTWJ5dGUgdW50aWwgZGV0ZWN0ZWQgYW5kIG9ubHkgMSBNYnl0ZSBpcyBuZWVkZWQqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qIEJDU1J4IC0gQm9hcmQgQ29udHJvbCBhbmQgU3RhdHVzIFJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JMHhmZmZmODExMAkJCQkJCQkJCS8qIDY0S2J5dGUgYWRkcmVzcyBzcGFjZSAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEJDU1JfQUREUikgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCTB4ZmZmZjgxMTAJCQkJCQkJCQkvKiA2NEtieXRlIGFkZHJlc3Mgc3BhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoQkNTUl9BRERSKSB8IEJSX1YgKQogCiAKIC8qCkBAIC0yNzEsMzAgKzI3MSwzMCBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKLSNkZWZpbmUgQ0ZHX01BTVIJCTB4MTNhMDExMTQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCQkweDEzYTAxMTE0CiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKICAqCkBAIC00MjEsNiArNDIxLDYgQEAKICNkZWZpbmUgUENNQ0lBX1NMT1RfQSAxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfREFVR0hURVJCT0FSRAorI2RlZmluZSBDT05GSUdfU1lTX0RBVUdIVEVSQk9BUkQKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9GQURTODYwVC5oIGIvaW5jbHVkZS9jb25maWdzL0ZBRFM4NjBULmgKaW5kZXggMzgyOTVjNC4uZGNiMGMzOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0ZBRFM4NjBULmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0ZBRFM4NjBULmgKQEAgLTI3LDEyICsyNywxMiBAQAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwogCiAjaWYgMCAvKiBvbGQgRkFEUyAqLwotIyBkZWZpbmUgQ0ZHXzhYWF9GQUNUCQkxMgkvKiA0IE1IeiBvc2NpbGxhdG9yIG9uIEVYVENMSyAqLworIyBkZWZpbmUgQ09ORklHX1NZU184WFhfRkFDVAkJMTIJLyogNCBNSHogb3NjaWxsYXRvciBvbiBFWFRDTEsgKi8KICNlbHNlIC8qIG5ldyBGQURTICovCi0jIGRlZmluZSBDRkdfOFhYX0ZBQ1QJCTEwCS8qIDUgTUh6IG9zY2lsbGF0b3Igb24gRVhUQ0xLICovCisjIGRlZmluZSBDT05GSUdfU1lTXzhYWF9GQUNUCQkxMAkvKiA1IE1IeiBvc2NpbGxhdG9yIG9uIEVYVENMSyAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BMUFJDUiAgKCgoQ0ZHXzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSICAoKChDT05GSUdfU1lTXzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCiAJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogI2RlZmluZSBDT05GSUdfRFJBTV81ME1IWgkJMQpAQCAtNDUsMTIgKzQ1LDEyIEBACiAgKiBUaGVzZSB2YWx1ZXMgZml0IG91ciBGQURTODYwVCAuLi4KICAqIFRoZSAiZGVmYXVsdCIgYmVoYXZpb3VyIHdpdGggMU1ieXRlIGluaXRpYWwgZG9lc24ndCB3b3JrIGZvciB1cyEKICAqLwotI3VuZGVmIENGR19PUjBfUFJFTElNCi0jdW5kZWYgQ0ZHX0JSMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHgwRkZDMDBEMzQgLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweDAyODAwMDAxICAvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjdW5kZWYgQ09ORklHX1NZU19PUjBfUFJFTElNCisjdW5kZWYgQ09ORklHX1NZU19CUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweDBGRkMwMEQzNCAvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweDAyODAwMDAxICAvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfREFVR0hURVJCT0FSRCAvKiBGQURTIGhhcyBwcm9jZXNzb3Itc3BlY2lmaWMgZGF1Z2h0ZXJib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RBVUdIVEVSQk9BUkQgLyogRkFEUyBoYXMgcHJvY2Vzc29yLXNwZWNpZmljIGRhdWdodGVyYm9hcmQgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9GTEFHQURNLmggYi9pbmNsdWRlL2NvbmZpZ3MvRkxBR0FETS5oCmluZGV4IDUyYjVhYjQuLjFlZjgwNjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9GTEFHQURNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0ZMQUdBRE0uaApAQCAtNTcsNyArNTcsNyBAQAogI2VuZGlmIC8qIDB8MSovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKiNkZWZpbmUJQ09ORklHX1dBVENIRE9HKi8JLyogd2F0Y2hkb2cgZW5hYmxlZAkJKi8KICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KQEAgLTkyLDI1ICs5MiwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiRUVHPiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIkVFRz4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4NDAwNDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwNDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEyMCw0MyArMTIwLDQzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogLyogVGhpcyBpcyBhIGxpdGxlYml0IHdhc3RlZnVsLCBidXQgb25lIHNlY3RvciBpcyAxMjhrYiBhbmQgd2UgaGF2ZSB0bwpAQCAtMTY5LDkgKzE2OSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4MSw5ICsxODEsOSBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZmRlZiBDT05GSUdfV0FUQ0hET0cKLSNkZWZpbmUgQ0ZHX1NZUENSIChTWVBDUl9TV1RDIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dFIHwgU1lQQ1JfU1dSSSB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAoU1lQQ1JfU1dUQyB8IFNZUENSX1NXRiB8IFNZUENSX1NXRSB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTkxLDI5ICsxOTEsMjkgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1BSRV9TSVVNQ1IgKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfTVBSRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVfU0lVTUNSIChTSVVNQ1JfREJHQzExIHwgU0lVTUNSX01QUkUgfCBcCiAJCQkJCQkJU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9HQjVFKQotI2RlZmluZSBDRkdfU0lVTUNSIChDRkdfUFJFX1NJVU1DUiB8IFNJVU1DUl9ETEspCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSIChDT05GSUdfU1lTX1BSRV9TSVVNQ1IgfCBTSVVNQ1JfRExLKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yMjIsNyArMjIyLDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0IG1pbHRpcGxpZXIgb2YgMHgwMGIgaS5lLiBvcGVyYXRpb24gY2xvY2sgaXMKICAqIDRNSHogKiAoMHgwMGIrMSkgPSA0TUh6ICogMTIgPSAgNDhNSHoKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCSgweDAwYjAwMDAwIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoMHgwMGIwMDAwMCB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTIzMSwxMSArMjMxLDExIEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKCBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCi0jZGVmaW5lIENGR19ERVIgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbiB0aGUgRmxhZ2EgRE0gd2UgaGF2ZToKQEAgLTI1MCw3ICsyNTAsNyBAQAogICogdW50b3VjaGVkLgogKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTiAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAwCiAKICNkZWZpbmUgRkxBU0hfQkFTRTAJCTB4NDAwMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCkBAIC0yNTgsMTUgKzI1OCwxNSBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19PUl9BTQkJMHhmZjAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX09SX0FUTQkJMHgwMDAwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX0FNCQkweGZmMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX09SX0FUTQkJMHgwMDAwNjAwMAogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDEwLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYIHwgT1JfRUhUUiApCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19PUl9BTSB8IENGR19PUl9BVE0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19PUl9BTSB8IENPTkZJR19TWVNfT1JfQVRNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qCiAgKiBCUjIgYW5kIE9SMiAoU0RSQU0pCkBAIC0yNzYsMTggKzI3NiwxOCBAQAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkoIDB4MDAwMDA4MDAgKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoIDB4MDAwMDA4MDAgKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0pCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfQlIyCQkJQ0ZHX0JSMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX09SMgkJCUNGR19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIyCQkJQ09ORklHX1NZU19CUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkJQ09ORklHX1NZU19PUjJfUFJFTElNCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCi0jZGVmaW5lIENGR19NQU1SXzQ4X1NEUiAoQ0ZHX01BTVJfUFRBIHwJIE1BTVJfV0xGQV8xWCB8IE1BTVJfUkxGQV8xWCAgXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfNDhfU0RSIChDT05GSUdfU1lTX01BTVJfUFRBIHwJIE1BTVJfV0xGQV8xWCB8IE1BTVJfUkxGQV8xWCAgXAogCQkJCQl8IE1BTVJfRzBDTEFfQTExKQogCiAvKgpAQCAtMjk1LDcgKzI5NSw3IEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTB4MEYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkweDBGMDAwMDAwCiAKIC8qCiAgICAqIEJSNCBhbmQgT1I0IChEU1AxKQpAQCAtMzA2LDggKzMwNiw4IEBACiAqLwogI2RlZmluZSBEU1BfQkFTRSAweDgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX09SNCAoIE9SX0FNX01TSyB8IE9SX0NTTlRfU0FNIHwgT1JfQkkgfCBPUl9HNUxTKQotI2RlZmluZSBDRkdfQlI0ICggKERTUF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNCAoIE9SX0FNX01TSyB8IE9SX0NTTlRfU0FNIHwgT1JfQkkgfCBPUl9HNUxTKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNCAoIChEU1BfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX1VQTUIgfCBCUl9WICkKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvRlBTODUwTC5oIGIvaW5jbHVkZS9jb25maWdzL0ZQUzg1MEwuaAppbmRleCBjOWQ2YzkxLi4wODQwOGUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRlBTODUwTC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9GUFM4NTBMLmgKQEAgLTgwLDcgKzgwLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTI0LDMyICsxMjQsMzIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTU5LDQ3ICsxNTksNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIwOSw3ICsyMDksNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTIyOCwxNiArMjI4LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0NywxMCArMjQ3LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTgsMjcgKzI1OCwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI4Niw3ICsyODYsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI5NSw3ICsyOTUsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTMwNSwyMSArMzA1LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzM0LDIyICszMzQsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzYwLDEzICszNjAsMTMgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgpAQCAtMzk1LDM0ICszOTUsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9GUFM4NjBMLmggYi9pbmNsdWRlL2NvbmZpZ3MvRlBTODYwTC5oCmluZGV4IGJmMjBhMGQuLmU1ZjNiNjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9GUFM4NjBMLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0ZQUzg2MEwuaApAQCAtODAsNyArODAsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMjQsMzIgKzEyNCwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNTksNDcgKzE1OSw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjA5LDcgKzIwOSw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjI4LDE2ICsyMjgsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ3LDEwICsyNDcsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1OCwyNyArMjU4LDI3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjg2LDcgKzI4Niw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQgLSBsZWF2ZSBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHVuY2hhbmdlZCAhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjk1LDcgKzI5NSw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzA1LDIxICszMDUsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMzQsMjIgKzMzNCwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zNjAsMTMgKzM2MCwxMyBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCkBAIC0zOTUsMzQgKzM5NSwzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0cyMDAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvRzIwMDAuaAppbmRleCBmNDNkMGM1Li40MzQxZjAyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvRzIwMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvRzIwMDAuaApAQCAtNzYsNyArNzYsNyBAQAogCSIiCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIG5ldF9uZnMiCiAKLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKIApAQCAtMTI0LDUzICsxMjQsNTMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogI3VuZGVmCUNPTkZJR19VQVJUMV9DT05TT0xFCQkvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUJKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMJLyogYXV0b2Jvb3QgYWZ0ZXIgMyBzZWNvbmRzCSovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogYWRkaW5nIEV0aGVybmV0IHNldHRpbmc6ICBGVFMgT1VJIDAwOjExOjBCICovCkBAIC0xODgsMTQgKzE4OCwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzM3Ci0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkJKi8KICNkZWZpbmUgU0VDVE9SU0laRSA1MTIKIAogI2RlZmluZSBBRERSX0NPTFVNTiAxCkBAIC0yMDYsMTggKzIwNiwxOCBAQAogI2RlZmluZSBOQU5EX01BWF9GTE9PUlMgMQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAxCiAKLSNkZWZpbmUgQ0ZHX05BTkRfQ0UgICgweDgwMDAwMDAwID4+IDEpCS8qIG91ciBDRSBpcyBHUElPMSAqLwotI2RlZmluZSBDRkdfTkFORF9DTEUgKDB4ODAwMDAwMDAgPj4gMikJLyogb3VyIENMRSBpcyBHUElPMiAqLwotI2RlZmluZSBDRkdfTkFORF9BTEUgKDB4ODAwMDAwMDAgPj4gMykJLyogb3VyIEFMRSBpcyBHUElPMyAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgKDB4ODAwMDAwMDAgPj4gNCkJLyogb3VyIFJEWSBpcyBHUElPNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICgweDgwMDAwMDAwID4+IDEpCS8qIG91ciBDRSBpcyBHUElPMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0xFICgweDgwMDAwMDAwID4+IDIpCS8qIG91ciBDTEUgaXMgR1BJTzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0FMRSAoMHg4MDAwMDAwMCA+PiAzKQkvKiBvdXIgQUxFIGlzIEdQSU8zICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgKDB4ODAwMDAwMDAgPj4gNCkJLyogb3VyIFJEWSBpcyBHUElPNCAqLwogCi0jZGVmaW5lIE5BTkRfRElTQUJMRV9DRShuYW5kKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EX0NFKTt9IHdoaWxlKDApCi0jZGVmaW5lIE5BTkRfRU5BQkxFX0NFKG5hbmQpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EX0NFKTt9IHdoaWxlKDApCi0jZGVmaW5lIE5BTkRfQ1RMX0NMUkFMRShuYW5kcHRyKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORF9BTEUpO30gd2hpbGUoMCkKLSNkZWZpbmUgTkFORF9DVExfU0VUQUxFKG5hbmRwdHIpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkRfQUxFKTt9IHdoaWxlKDApCi0jZGVmaW5lIE5BTkRfQ1RMX0NMUkNMRShuYW5kcHRyKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORF9DTEUpO30gd2hpbGUoMCkKLSNkZWZpbmUgTkFORF9DVExfU0VUQ0xFKG5hbmRwdHIpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkRfQ0xFKTt9IHdoaWxlKDApCi0jZGVmaW5lIE5BTkRfV0FJVF9SRUFEWShuYW5kKSB3aGlsZSAoIShpbjMyKEdQSU8wX0lSKSAmIENGR19OQU5EX1JEWSkpCisjZGVmaW5lIE5BTkRfRElTQUJMRV9DRShuYW5kKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORF9DRSk7fSB3aGlsZSgwKQorI2RlZmluZSBOQU5EX0VOQUJMRV9DRShuYW5kKSBkbyB7IG91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkRfQ0UpO30gd2hpbGUoMCkKKyNkZWZpbmUgTkFORF9DVExfQ0xSQUxFKG5hbmRwdHIpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORF9BTEUpO30gd2hpbGUoMCkKKyNkZWZpbmUgTkFORF9DVExfU0VUQUxFKG5hbmRwdHIpIGRvIHsgb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EX0FMRSk7fSB3aGlsZSgwKQorI2RlZmluZSBOQU5EX0NUTF9DTFJDTEUobmFuZHB0cikgZG8geyBvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EX0NMRSk7fSB3aGlsZSgwKQorI2RlZmluZSBOQU5EX0NUTF9TRVRDTEUobmFuZHB0cikgZG8geyBvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkRfQ0xFKTt9IHdoaWxlKDApCisjZGVmaW5lIE5BTkRfV0FJVF9SRUFEWShuYW5kKSB3aGlsZSAoIShpbjMyKEdQSU8wX0lSKSAmIENPTkZJR19TWVNfTkFORF9SRFkpKQogCiAjZGVmaW5lIFdSSVRFX05BTkRfQ09NTUFORChkLCBhZHIpIGRveyAqKHZvbGF0aWxlIF9fdTggKikoKHVuc2lnbmVkIGxvbmcpYWRyKSA9IChfX3U4KShkKTsgfSB3aGlsZSgwKQogI2RlZmluZSBXUklURV9OQU5EX0FERFJFU1MoZCwgYWRyKSBkb3sgKih2b2xhdGlsZSBfX3U4ICopKCh1bnNpZ25lZCBsb25nKWFkcikgPSAoX191OCkoZCk7IH0gd2hpbGUoMCkKQEAgLTI0Miw1OCArMjQyLDU4IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UgMSAvKiBkb24ndCBza2lwIGhvc3QgYnJpZGdlIGNvbmZpZyovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweGZjMDAwMDAxICAgICAgLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ZmMwMDAwMDEgICAgICAvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAjaWYgMCAvKiBBUEM0MDUgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI3VuZGVmIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiBkb24ndCB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwIC8qIHRlc3Qtb25seS4uLiovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMCAvKiB0ZXN0LW9ubHkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJLyogZG9uJ3QgdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwIC8qIHRlc3Qtb25seS4uLiovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAgLyogdGVzdC1vbmx5ICovCiAjZWxzZSAvKiBHMjAwMCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jdW5kZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qIGRvbid0IHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCSovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgLyogdGVzdC1vbmx5Li4uKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkweDAxMDAwMDAwIC8qIHRlc3Qtb25seSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiBkb24ndCB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgLyogdGVzdC1vbmx5Li4uKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMCAvKiB0ZXN0LW9ubHkgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPICAgICAgICAgICAgLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTyAgICAgICAgICAgIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LICAgIDAgICAgICAgICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUyAgICAgMSAgICAgICAgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyB1LWJvb3QgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LICAgIDAgICAgICAgICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MgICAgIDEgICAgICAgICAgIC8qICEgc2Vjb25kIGJhbmsgY29udGFpbnMgdS1ib290ICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50IFZhcmlhYmxlIHNldHVwCkBAIC0zMTYsNjIgKzMxNiw2MiBAQAogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjRXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyNFdDMDgJCSovCiAvKiBDQVQyNFdDMDgvMTYuLi4gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEludGVsIFN0cmF0YSBGbGFzaCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUCAgIDB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUiAgIDB4RkY4N0EwMDAgICAgICAgICAgLyogQkFTPTB4RkY4LEJTPTA4TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAgICAweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSICAgMHhGRjg3QTAwMCAgICAgICAgICAvKiBCQVM9MHhGRjgsQlM9MDhNQixCVT1SL1csQlc9MTZiaXQqLwogCiAvKiBNZW1vcnkgQmFuayAxICggUG93ZXIgVEFVKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICovCi0vKiAjZGVmaW5lIENGR19FQkNfUEIxQVAgICAgICAgICAgIDB4MDQwNDEwMDAgKi8KLS8qICNkZWZpbmUgQ0ZHX0VCQ19QQjFDUiAgICAgICAgICAgMHhGMDAxODAwMCAgICovICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKKy8qICNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAgICAgICAgIDB4MDQwNDEwMDAgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAgICAgICAgIDB4RjAwMTgwMDAgICAqLyAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKIAogLyogTWVtb3J5IEJhbmsgMiAoSW50ZWwgRmxhc2gpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKIAogLyogTWVtb3J5IEJhbmsgMyAoTkFORCkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQICAgICAgICAgICAweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IgICAgICAgICAgIDB4RjQwQjgwMDAgIC8qYWRkciAweEY0MCwgQlM9MzJNLEJVPVIvVywgQlc9OGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUCAgICAgICAgICAgMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUiAgICAgICAgICAgMHhGNDBCODAwMCAgLyphZGRyIDB4RjQwLCBCUz0zMk0sQlU9Ui9XLCBCVz04Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKEZQR0EgcmVncykgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUCAgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRUJDX1BCNENSICAgICAgICAgICAweDAwMDAwMDAwICAvKiBsZWF2ZSBpdCBibGFuayAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IgICAgICAgICAgIDB4MDAwMDAwMDAgIC8qIGxlYXZlIGl0IGJsYW5rICAqLwogCi0jZGVmaW5lIENGR19OQU5EX0JBU0UgICAweEY0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFICAgMHhGNDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtMzg3LDEzICszODcsMTMgQEAKICAqCiAgKiBmb2xsb3dpbmcgR1BJTyBzZXR0aW5nIGNoYW5nZWQgZm9yIEcyMDAwMCwgMDgwMzA0CiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkggICAgICAgICAgMHg0MDAwNTU1NQotI2RlZmluZSBDRkdfR1BJTzBfT1NSTCAgICAgICAgICAweDQwMDAwMTEwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxSCAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMICAgICAgICAgMHgxNTU1NTQ0NQotI2RlZmluZSBDRkdfR1BJTzBfVFNSSCAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RDUiAgICAgICAgICAgMHhGN0ZGODAxNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkggICAgICAgICAgMHg0MDAwNTU1NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwgICAgICAgICAgMHg0MDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFIICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMICAgICAgICAgMHgxNTU1NTQ0NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkggICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUiAgICAgICAgICAgMHhGN0ZGODAxNAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9HRU44NjBULmggYi9pbmNsdWRlL2NvbmZpZ3MvR0VOODYwVC5oCmluZGV4IDE2MjczNDQuLmEzOTlkMjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9HRU44NjBULmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0dFTjg2MFQuaApAQCAtNjQsNyArNjQsNyBAQAogLyoKICAqIFNldCBhbGxvd2FibGUgY29uc29sZSBiYXVkIHJhdGVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwJCVwKIAkJCQkJICAxOTIwMCwJXAogCQkJCQkgIDM4NDAwLAlcCiAJCQkJCSAgNTc2MDAsCVwKQEAgLTc0LDcgKzc0LDcgQEAKIC8qCiAgKiBQcmludCBjb25zb2xlIGluZm9ybWF0aW9uCiAgKi8KLSN1bmRlZgkgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAorI3VuZGVmCSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAogCiAvKgogICogU2V0IHRoZSBhdXRvYm9vdCBkZWxheSBpbiBzZWNvbmRzLiAgQSBkZWxheSBvZiAtMSBkaXNhYmxlcyBhdXRvYm9vdApAQCAtMTAxLDEyICsxMDEsMTIgQEAKICAqIGZvciBkb3dubG9hZHMKICAqLwogI3VuZGVmCUNPTkZJR19MT0FEU19FQ0hPCi0jZGVmaW5lCUNGR19MT0FEU19CQVVEX0NIQU5HRQorI2RlZmluZQlDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAKIC8qCiAgKiBTZXQgZGVmYXVsdCBsb2FkIGFkZHJlc3MgZm9yIHRmdHAgbmV0d29yayBkb3dubG9hZHMKICAqLwotI2RlZmluZQlDRkdfVEZUUF9MT0FEQUREUgkJCQkweDAxMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfVEZUUF9MT0FEQUREUgkJCQkweDAxMDAwMDAwCiAKIC8qCiAgKiBUdXJuIG9mZiB0aGUgd2F0Y2hkb2cgdGltZXIKQEAgLTEyNyw3ICsxMjcsNyBAQAogICogUmVzZXQgYWRkcmVzcy4gV2UgcGljayBhbiBhZGRyZXNzIHN1Y2ggdGhhdCB3aGVuIGFuIGluc3RydWN0aW9uCiAgKiBpcyBleGVjdXRlZCBhdCB0aGF0IGFkZHJlc3MsIGEgbWFjaGluZSBjaGVjayBleGNlcHRpb24gb2NjdXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJCQkJKCh1bG9uZykgLTEpCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkJCQkoKHVsb25nKSAtMSkKIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTE0NSw3ICsxNDUsNyBAQAogICogTUlJIGFkZHJlc3MgaXMgaGFyZHdpcmVkIG9uIHRoZSBib2FyZCB0byB6ZXJvLgogICovCiAjZGVmaW5lIENPTkZJR19GRUNfRU5FVAotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZGVmaW5lIENPTkZJR19NSUkKICNkZWZpbmUgQ09ORklHX01JSV9JTklUCQkJMQogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCQkwCkBAIC0xNjIsMTAgKzE2MiwxMCBAQAogICogVGhpcyBib2FyZCBoYXMgYSAzMiBraWJpYnl0ZSBFRVBST00gKEF0bWVsIEFUMjRDMjU2KSBjb25uZWN0ZWQgdG8KICAqIHRoZSBNUEM4NjBUIEkyQyBpbnRlcmZhY2UuCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJCQkweDUwCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCQk2CQkvKiA2NCBieXRlIHBhZ2VzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTIJCS8qIDEwIG1TIHcvIDIwJSBtYXJnaW4JKi8KLSNkZWZpbmUJQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCQkyCQkvKiBuZWVkIDE2IGJpdCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkJCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCQk2CQkvKiA2NCBieXRlIHBhZ2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEyCQkvKiAxMCBtUyB3LyAyMCUgbWFyZ2luCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJCTIJCS8qIG5lZWQgMTYgYml0IGFkZHJlc3MJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9FRVBST01fU0laRQkJCQkoMzIgKiAxMDI0KQogCiAvKgpAQCAtMTc1LDggKzE3NSw4IEBACiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJCQkJLyogQml0LWJhbmdlZCBJMkMJCQkqLwogCiAjaWZkZWYgQ09ORklHX0hBUkRfSTJDCi0jZGVmaW5lCUNGR19JMkNfU1BFRUQJCTEwMDAwMAkJCS8qIGNsb2NrIHNwZWVkIGluIEh6CQkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCQkJLyogSTJDIHNsYXZlIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJCQkvKiBjbG9jayBzcGVlZCBpbiBIegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUJCQkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCkBAIC0yMDgsNyArMjA4LDcgQEAKICAqIGxlbmd0aCBvZiB0aW1lLCBzbyB3ZSB1c2UgYW4gZXh0ZXJuYWwgUlRDIG9uIHRoZSBJMkMgYnVzIGluc3RlYWQuCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJCQkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkJCTB4NjgKIAogI2Vsc2UKIC8qCkBAIC0yMjAsMTEgKzIyMCwxMSBAQAogLyoKICAqIFBvd2VyIE9uIFNlbGYgVGVzdCBzdXBwb3J0CiAgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCQkgICggQ0ZHX1BPU1RfQ0FDSEUJCXwgXAotCQkJCQkJCQlDRkdfUE9TVF9NRU1PUlkJCXwgXAotCQkJCQkJCQlDRkdfUE9TVF9DUFUJCXwgXAotCQkJCQkJCQlDRkdfUE9TVF9VQVJUCQl8IFwKLQkJCQkJCQkJQ0ZHX1BPU1RfU1BSICkKKyNkZWZpbmUgQ09ORklHX1BPU1QJCQkgICggQ09ORklHX1NZU19QT1NUX0NBQ0hFCQl8IFwKKwkJCQkJCQkJQ09ORklHX1NZU19QT1NUX01FTU9SWQkJfCBcCisJCQkJCQkJCUNPTkZJR19TWVNfUE9TVF9DUFUJCXwgXAorCQkJCQkJCQlDT05GSUdfU1lTX1BPU1RfVUFSVAkJfCBcCisJCQkJCQkJCUNPTkZJR19TWVNfUE9TVF9TUFIgKQogCiAKIC8qCkBAIC0yNzcsNyArMjc3LDcgQEAKICNkZWZpbmUgQ09ORklHX0ZQR0EKICNkZWZpbmUgQ09ORklHX0ZQR0FfWElMSU5YCiAjZGVmaW5lIENPTkZJR19GUEdBX1ZJUlRFWDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJPR19GRUVEQkFDSworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSwogCiAKICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCkBAIC0yODUsNjQgKzI4NSw2NCBAQAogLyoKICAqIFZlcmJvc2UgaGVscCBmcm9tIGNvbW1hbmQgbW9uaXRvci4KICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAogI2lmICFkZWZpbmVkKENPTkZJR19TQykKLSNkZWZpbmUJQ0ZHX1BST01QVAkJCSJCMj4gIgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJCSJCMj4gIgogI2Vsc2UKLSNkZWZpbmUJQ0ZHX1BST01QVAkJCSJTQz4gIgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJCSJTQz4gIgogI2VuZGlmCiAKIAogLyoKICAqIFVzZSB0aGUgImh1c2giIGNvbW1hbmQgcGFyc2VyCiAgKi8KLSNkZWZpbmUJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogLyoKICAqIFNldCBidWZmZXIgc2l6ZSBmb3IgY29uc29sZSBJL08KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkJMTAyNAorI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJCTEwMjQKICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCQkyNTYKKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKICNlbmRpZgogCiAvKgogICogUHJpbnQgYnVmZmVyIHNpemUKICAqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKIAogLyoKICAqIE1heGltdW0gbnVtYmVyIG9mIGFyZ3VtZW50cyB0aGF0IGEgY29tbWFuZCBjYW4gYWNjZXB0CiAgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCQkxNgorI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCQkxNgogCiAvKgogICogQm9vdCBhcmd1bWVudCBidWZmZXIgc2l6ZQogICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQogCiAvKgogICogRGVmYXVsdCBtZW1vcnkgdGVzdCByYW5nZQogICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCAgKyAoMTI4ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgKyAoMTI4ICogMTAyNCkpCiAKIC8qCiAgKiBTZWxlY3QgdGhlIG1vcmUgZnVsbC1mZWF0dXJlZCBtZW1vcnkgdGVzdAogICovCi0jZGVmaW5lCUNGR19BTFRfTUVNVEVTVAorI2RlZmluZQlDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKIC8qCiAgKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwogICovCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDEwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDEwMDAwMDAKIAogLyoKICAqIFNldCBkZWNyZW1lbnRlciBmcmVxdWVuY3kgKDEgbXMgdGlja3MpCiAgKi8KLSNkZWZpbmUJQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBEZXZpY2UgbWVtb3J5IG1hcCAoYWZ0ZXIgU0RSQU0gcmVtYXAgdG8gMHgwKToKQEAgLTM2Myw3ICszNjMsNyBAQAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIGFuZCBibG9jayBzaXplcwogICovCi0jZGVmaW5lIENGR19JTU1SCQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCQkweEZGMDAwMDAwCiAKICNkZWZpbmUgU0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKICNkZWZpbmUgU0RSQU1fU0laRQkJCSg2NCAqIDEwMjQgKiAxMDI0KQpAQCAtMzg2LDI3ICszODYsMjcgQEAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCQlDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECQkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkJKi8KLSNkZWZpbmUJQ0ZHX0lOSVRfREFUQV9TSVpFCQk2NAkvKiAjIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCQkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19JTklUX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCQlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECQkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX0RBVEFfU0laRQkJNjQJLyogIyBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfSU5JVF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJCVNEUkFNX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkJU0RSQU1fQkFTRQogCiAvKgogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlGTEFTSF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJRkxBU0hfU0laRQotI2RlZmluZSBDRkdfRkxBU0hfU0VDVF9TSVpFCQkoMTI4ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlGTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCUZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TRUNUX1NJWkUJCSgxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMjgKIAogLyoKICAqIFRoZSB0aW1lb3V0IHZhbHVlcyBhcmUgZm9yIGFuIGVudGlyZSBjaGlwIGFuZCBhcmUgaW4gbWlsbGlzZWNvbmRzLgpAQCAtNDE1LDIwICs0MTUsMjAgQEAKICAqIGNhc2UgVkNDIGFuZCB0ZW1wIGFmdGVyIDEwMEsgcHJvZ3JhbW1pbmcgY3ljbGVzLiAgSXQgd29ya3Mgb3V0CiAgKiB0byAyODAgbWludXRlcyAobWlnaHQgYXMgd2VsbCBiZSBmb3JldmVyKS4KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoQ0ZHX01BWF9GTEFTSF9TRUNUICogNTAwMCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKENGR19NQVhfRkxBU0hfU0VDVCAqIDEyOCAqIDEwMjQgKiAxKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgKiA1MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgKiAxMjggKiAxMDI0ICogMSkKIAogLyoKICAqIEFsbG93IGRpcmVjdCB3cml0ZXMgdG8gRkxBU0ggZnJvbSB0ZnRwIHRyYW5zZmVycyAoKiogZGFuZ2Vyb3VzICoqKQogICovCi0jZGVmaW5lCUNGR19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZQlDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiAKIC8qCiAgKiBSZXNlcnZlIG1lbW9yeSBmb3IgVS1Cb290LgogICovCi0jZGVmaW5lIENGR19NQVhfVUJPT1RfU0VDVFMJCTQKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkJKENGR19NQVhfVUJPT1RfU0VDVFMgKiBDRkdfRkxBU0hfU0VDVF9TSVpFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9VQk9PVF9TRUNUUwkJNAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkJKENPTkZJR19TWVNfTUFYX1VCT09UX1NFQ1RTICogQ09ORklHX1NZU19GTEFTSF9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAogLyoKICAqIFNlbGVjdCBlbnZpcm9ubWVudCBwbGFjZW1lbnQuICBOT1RFIHRoYXQgdS1ib290LmxkcyBtdXN0CkBAIC00NDIsNyArNDQyLDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCQkoQ09ORklHX0VOVl9FRVBST01fU0laRSAtICg4ICogMTAyNCkpCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDEwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJCUNGR19GTEFTSF9TRUNUX1NJWkUKKyNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0VDVF9TSVpFCiAKIC8qCiAgKiBUaGlzIHVsdGltYXRlbHkgZ2V0cyBwYXNzZWQgcmlnaHQgaW50byB0aGUgbGlua2VyIHNjcmlwdCwgc28gd2UgaGF2ZSB0bwpAQCAtNDU0LDIxICs0NTQsMjEgQEAKIC8qCiAgKiBSZXNlcnZlIG1lbW9yeSBmb3IgbWFsbG9jKCkKICAqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQogCiAvKgogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJCTQJLyogbG9nIGJhc2UgMiBvZiBhYm92ZSB2YWx1ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJCTQJLyogbG9nIGJhc2UgMiBvZiBhYm92ZSB2YWx1ZQkJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDc5LDcgKzQ3OSw3IEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKCBTWVBDUl9TV1RDCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCSggU1lQQ1JfU1dUQwl8IFwKIAkJCQkJICBTWVBDUl9CTVQJfCBcCiAJCQkJCSAgU1lQQ1JfQk1FCXwgXAogCQkJCQkgIFNZUENSX1NXRgl8IFwKQEAgLTQ4OCw3ICs0ODgsNyBAQAogCQkJCQkgIFNZUENSX1NXUAkJICBcCiAJCQkJCSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoIFNZUENSX1NXVEMJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKCBTWVBDUl9TV1RDCXwgXAogCQkJCQkgIFNZUENSX0JNVAl8IFwKIAkJCQkJICBTWVBDUl9CTUUJfCBcCiAJCQkJCSAgU1lQQ1JfU1dGCXwgXApAQCAtNTAxLDcgKzUwMSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXQgZGVidWcgcGluIG11eCwgZW5hYmxlIFNQS1JPVVQgYW5kIEdQTEI1Ki4KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCSggU0lVTUNSX0RCR0MxMSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKCBTSVVNQ1JfREJHQzExIHwgXAogCQkJCQkgIFNJVU1DUl9EQlBDMTEgfCBcCiAJCQkJCSAgU0lVTUNSX01MUkMxMQl8IFwKIAkJCQkJICBTSVVNQ1JfR0I1RQkgIFwKQEAgLTUxMiw3ICs1MTIsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6ZSBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCSggVEJTQ1JfUkVGQSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoIFRCU0NSX1JFRkEgfCBcCiAJCQkJCSAgVEJTQ1JfUkVGQiB8IFwKIAkJCQkJICBUQlNDUl9UQkYJICAgXAogCQkJCQkpCkBAIC01MjEsNyArNTIxLDcgQEAKICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJCVVNIDExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCSggUlRDU0NfU0VDCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCSggUlRDU0NfU0VDCXwgXAogCQkJCQkgIFJUQ1NDX0FMUiB8IFwKIAkJCQkJICBSVENTQ19SVEYgfCBcCiAJCQkJCSAgUlRDU0NfUlRFCSAgXApAQCAtNTMyLDcgKzUzMiw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoIFBJU0NSX1BTCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoIFBJU0NSX1BTCQl8IFwKIAkJCQkJICBQSVNDUl9QSVRGCSAgXAogCQkJCQkpCiAKQEAgLTU0Miw3ICs1NDIsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0LiBTZXQgTUYgZm9yIDE6MjoxIG1vZGUuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoICgoMHgxIDw8IFBMUFJDUl9NRl9TSElGVCkgJiBQTFBSQ1JfTUZfTVNLKQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCAoKDB4MSA8PCBQTFBSQ1JfTUZfU0hJRlQpICYgUExQUkNSX01GX01TSykJfCBcCiAJCQkJCSAgUExQUkNSX1NQTFNTCXwgXAogCQkJCQkgIFBMUFJDUl9URVhQUwl8IFwKIAkJCQkJICBQTFBSQ1JfVE1JU1QJICBcCkBAIC01NTcsNyArNTU3LDcgQEAKICNkZWZpbmUgU0NDUl9NQVNLICAgU0NDUl9FQkRGMTEKIAogI2lmICFkZWZpbmVkKENPTkZJR19TQykKLSNkZWZpbmUgQ0ZHX1NDQ1IJKCBTQ0NSX1RCUwkJCXwJLyogdGltZWJhc2UgPSBHQ0xLLzIJKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKCBTQ0NSX1RCUwkJCXwJLyogdGltZWJhc2UgPSBHQ0xLLzIJKi8gXAogCQkJCQkgIFNDQ1JfQ09NMDAJCXwJLyogZnVsbCBzdHJlbmd0aCBDTEtPVVQJKi8gXAogCQkJCQkgIFNDQ1JfREZTWU5DMDAJfAkvKiBTWU5DTEsgLyAxIChub3JtYWwpCSovIFwKIAkJCQkJICBTQ0NSX0RGQlJHMDAJCXwJLyogQlJHQ0xLIC8gMSAobm9ybWFsKQkqLyBcCkBAIC01NjUsNyArNTY1LDcgQEAKIAkJCQkJICBTQ0NSX0RGTkgwMDAJCSAgXAogCQkJCQkpCiAjZWxzZQotI2RlZmluZSBDRkdfU0NDUgkoIFNDQ1JfVEJTCQkJfAkvKiB0aW1lYmFzZSA9IEdDTEsvMgkqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoIFNDQ1JfVEJTCQkJfAkvKiB0aW1lYmFzZSA9IEdDTEsvMgkqLyBcCiAJCQkJCSAgU0NDUl9DT00wMAkJfAkvKiBmdWxsIHN0cmVuZ3RoIENMS09VVAkqLyBcCiAJCQkJCSAgU0NDUl9ERlNZTkMwMAl8CS8qIFNZTkNMSyAvIDEgKG5vcm1hbCkJKi8gXAogCQkJCQkgIFNDQ1JfREZCUkcwMAkJfAkvKiBCUkdDTEsgLyAxIChub3JtYWwpCSovIFwKQEAgLTU4MSw3ICs1ODEsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWFzayBhbGwgZXZlbnRzIHRoYXQgY2FuIGNhdXNlIGVudHJ5IGludG8gZGVidWcgbW9kZQogICovCi0jZGVmaW5lIENGR19ERVIJCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCQkwCiAKIC8qCiAgKiBJbml0aWFsaXplIE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNTkzLDEzICs1OTMsMTMgQEAKIC8qCiAgKiBGbGFzaCBhZGRyZXNzIG1hc2sKICAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4ZmUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhmZTAwMDAwMAogCiAvKgogICogRkxBU0ggdGltaW5nOgogICogMzMgTWh6IGJ1cyB3aXRoIEFDUyA9IDExLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAxCiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoIE9SX0NTTlRfU0FNCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoIE9SX0NTTlRfU0FNCXwgXAogCQkJCQkJCSAgT1JfQUNTX0RJVjIJfCBcCiAJCQkJCQkJICBPUl9CSQkJCXwgXAogCQkJCQkJCSAgT1JfU0NZXzJfQ0xLCXwgXApAQCAtNjA3LDExICs2MDcsMTEgQEAKIAkJCQkJCQkgIE9SX0VIVFIJCSAgXAogCQkJCQkJCSkKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoIENGR19QUkVMSU1fT1JfQU0JCXwgXAotCQkJCQkJICBDRkdfT1JfVElNSU5HX0ZMQVNICSAgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKCBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkJfCBcCisJCQkJCQkgIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICSAgXAogCQkJCQkJKQogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSggKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoIChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spCXwgXAogCQkJCQkJICBCUl9NU19HUENNCQkJCQkJfCBcCiAJCQkJCQkgIEJSX1BTXzgJCQkJCQkJfCBcCiAJCQkJCQkgIEJSX1YJCQkJCQkJCSAgXApAQCAtNjIwLDEyICs2MjAsMTIgQEAKIC8qCiAgKiBTRFJBTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMV9BTQkweGZjMDAwMDAwCi0jZGVmaW5lIENGR19PUjEJCSggKENGR19PUjFfQU0gJiBPUl9BTV9NU0spCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9BTQkweGZjMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IxCQkoIChDT05GSUdfU1lTX09SMV9BTSAmIE9SX0FNX01TSykJfCBcCiAJCQkJCSAgT1JfQ1NOVF9TQU0JCQkJICBcCiAJCQkJCSkKIAotI2RlZmluZSBDRkdfQlIxCQkoIChTRFJBTV9CQVNFICYgQlJfQkFfTVNLKQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjEJCSggKFNEUkFNX0JBU0UgJiBCUl9CQV9NU0spCXwgXAogCQkJCQkgIEJSX01TX1VQTUEJCQkJfCBcCiAJCQkJCSAgQlJfUFNfMzIJCQkJCXwgXAogCQkJCQkgIEJSX1YJCQkJCQkgIFwKQEAgLTYzNSwxNyArNjM1LDE3IEBACiAgKiBSZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIHVTIHF1YWQgYnVyc3RzKSBmb3Igb25lIGJhbmsKICAqIG9mIDI1NiBNQml0IFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CiAKIC8qCiAgKiBQZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCBAIDMzIE1IeiBzeXN0ZW0gY2xvY2sKICAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk2NAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSggKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSggKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpCXwgXAogCQkJCQkJICBNQU1SX1BUQUUJCQkJfCBcCiAJCQkJCQkgIE1BTVJfQU1BX1RZUEVfMQkJCXwgXAogCQkJCQkJICBNQU1SX0RTQV8xX0NZQ0wJCQl8IFwKQEAgLTY2MCw3ICs2NjAsNyBAQAogICogMzMgTUh6IGJ1cyB3aXRoIFRSTFg9MSwgQUNTPTExLCBDU05UPTEsIEVCREY9MSwgU0NZPTIsIEVIVFI9MSwKICAqIG5vIGJ1cnN0LgogICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCSggKDB4ZmZmZjAwMDAgJiBPUl9BTV9NU0spCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKCAoMHhmZmZmMDAwMCAmIE9SX0FNX01TSykJfCBcCiAJCQkJCQkgIE9SX0NTTlRfU0FNCQkJCXwgXAogCQkJCQkJICBPUl9BQ1NfRElWMgkJCQl8IFwKIAkJCQkJCSAgT1JfQkkJCQkJCQl8IFwKQEAgLTY2OSw3ICs2NjksNyBAQAogCQkJCQkJICBPUl9FSFRSCQkJCQkgIFwKIAkJCQkJCSkKIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoIChET0NfQkFTRSAmIEJSX0JBX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoIChET0NfQkFTRSAmIEJSX0JBX01TSykJfCBcCiAJCQkJCQkgIEJSX1BTXzgJCQkJCXwgXAogCQkJCQkJICBCUl9NU19HUENNCQkJCXwgXAogCQkJCQkJICBCUl9WCQkJCQkJICBcCkBAIC02ODMsMTIgKzY4MywxMiBAQAogICogdGhlIGN5Y2xlIHdpbGwgc3RpbGwgY29tcGxldGUgZXZlbiBpZiB0aGVyZSBpcyBhIGNvbmZpZ3VyYXRpb24KICAqIGVycm9yIHRoYXQgcHJldmVudHMgVEEgZnJvbSBhc3NlcnRpbmcgb24gRlBHQSBhY2Nlc3NzLgogICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCSggKDB4ZmMwMDAwMDAgJiBPUl9BTV9NU0spICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCSggKDB4ZmMwMDAwMDAgJiBPUl9BTV9NU0spICB8IFwKIAkJCQkJCSAgT1JfU0NZXzE1X0NMSwkJCQl8IFwKIAkJCQkJCSAgT1JfQkkJCQkJCSAgXAogCQkJCQkJKQogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSggKEZQR0FfQkFTRSAmIEJSX0JBX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoIChGUEdBX0JBU0UgJiBCUl9CQV9NU0spCXwgXAogCQkJCQkJICBCUl9QU18zMgkJCQkJfCBcCiAJCQkJCQkgIEJSX01TX0dQQ00JCQkJfCBcCiAJCQkJCQkgIEJSX1YJCQkJCQkgIFwKQEAgLTY5OCwxMiArNjk4LDEyIEBACiAgKiAzMyBNSHogYnVzLCBVUE1CLCBubyBidXJzdC4gRG8gbm90IGFzc2VydCBHUExCNSBvbiBmYWxsaW5nIGVkZ2UKICAqIG9mIEdDTEsxXzUwCiAgKi8KLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JKCAoMHhmZmZmMDAwMCAmIE9SX0FNX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoICgweGZmZmYwMDAwICYgT1JfQU1fTVNLKQl8IFwKIAkJCQkJCSAgT1JfRzVMUwkJCQkJCXwgXAogCQkJCQkJICBPUl9CSQkJCQkJCQkgIFwKIAkJCQkJCSkKIAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkoIChTRUxFQ1RNQVBfQkFTRSAmIEJSX0JBX01TSykJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkoIChTRUxFQ1RNQVBfQkFTRSAmIEJSX0JBX01TSykJfCBcCiAJCQkJCQkgIEJSX1BTXzgJCQkJCQl8IFwKIAkJCQkJCSAgQlJfTVNfVVBNQgkJCQkJfCBcCiAJCQkJCQkgIEJSX1YJCQkJCQkJICBcCkBAIC03MTcsNyArNzE3LDcgQEAKICAqIHRoZSBjeWNsZSB3aWxsIHN0aWxsIGNvbXBsZXRlIGV2ZW4gaWYgdGhlcmUgaXMgYSBjb25maWd1cmF0aW9uCiAgKiBlcnJvciB0aGF0IHByZXZlbnRzIFRBIGZyb20gYXNzZXJ0aW5nIG9uIEZQR0EgYWNjZXNzcy4KICAqLwotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoICgweGZmZmYwMDAwICYgT1JfQU1fTVNLKSAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkoICgweGZmZmYwMDAwICYgT1JfQU1fTVNLKSAgfCBcCiAJCQkJCQkgIE9SX1NDWV8xNV9DTEsJCQkJfCBcCiAJCQkJCQkgIE9SX0VIVFIJCQkJCXwgXAogCQkJCQkJICBPUl9UUkxYCQkJCQl8IFwKQEAgLTcyNSw3ICs3MjUsNyBAQAogCQkJCQkJICBPUl9CSQkJCQkJCSAgXAogCQkJCQkJKQogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCSggKE0xNTUzX0JBU0UgJiBCUl9CQV9NU0spCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JKCAoTTE1NTNfQkFTRSAmIEJSX0JBX01TSykJfCBcCiAJCQkJCQkgIEJSX1BTXzE2CQkJCQl8IFwKIAkJCQkJCSAgQlJfTVNfR1BDTQkJCQl8IFwKIAkJCQkJCSAgQlJfVgkJCQkJCSAgXApAQCAtNzQxLDEwICs3NDEsMTAgQEAKICAqIERpc2sgT24gQ2hpcCAobWlsbGVuaXVtKSBjb25maWd1cmF0aW9uCiAgKi8KICNpZiAhZGVmaW5lZChDT05GSUdfU0MpCi0jZGVmaW5lIENGR19NQVhfRE9DX0RFVklDRQkxCi0jdW5kZWYJQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KLSN1bmRlZglDRkdfRE9DX1BBU1NJVkVfUFJPQkUKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCisjdW5kZWYJQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQorI3VuZGVmCUNPTkZJR19TWVNfRE9DX1BBU1NJVkVfUFJPQkUKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0dFTklFVFYuaCBiL2luY2x1ZGUvY29uZmlncy9HRU5JRVRWLmgKaW5kZXggYjZjYzE3Yi4uZmFkZDgzMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0dFTklFVFYuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvR0VOSUVUVi5oCkBAIC00MSwxOSArNDEsMTkgQEAKICNkZWZpbmUJQ09ORklHX0VUSEFERFIJCTA4OjAwOjIyOjUwOjcwOjYzCS8qIEV0aGVybmV0IGFkZHJlc3MgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBPdmVyd3JpdGUgdGhlIGVudmlyb25tZW50ICovCiAKLSNkZWZpbmUgQ0ZHX0FMTE9DX0RQUkFNCQkJLyogVXNlIGR5bmFtaWMgRFBSQU0gYWxsb2NhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCQkJLyogVXNlIGR5bmFtaWMgRFBSQU0gYWxsb2NhdGlvbiAqLwogCi0jZGVmaW5lIENGR19BVVRPTE9BRAkJIm4iCS8qIE5vIGF1dG9sb2FkICovCisjZGVmaW5lIENPTkZJR19TWVNfQVVUT0xPQUQJCSJuIgkvKiBObyBhdXRvbG9hZCAqLwogCiAvKiNkZWZpbmUgQ09ORklHX1ZJREVPCQkxCS8gIFRvIGVuYWJsZSB0aGUgdmlkZW8gaW5pdGlhbGl6YXRpb24gKi8KIC8qI2RlZmluZSBDT05GSUdfVklERU9fQUREUgkweDAwMjAwMDAwICovCiAvKiNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCTEJLyAgSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogLyojZGVmaW5lIENPTkZJR19QQ01DSUEJCTEJLyAgVG8gZW5hYmxlIHRoZSBQQ01DSUEgaW5pdGlhbGl6YXRpb24gKi8KIAotLyojZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkweGZmMDIwMDAwICovCi0vKiNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCTB4MTAwMDAgKi8KLS8qI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCTB4ZTAwMDAwMDAgKi8KLS8qI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCTB4MTAwMDAgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCTB4ZmYwMjAwMDAgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCTB4MTAwMDAgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkweGUwMDAwMDAwICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJMHgxMDAwMCAqLwogCiAvKiBWaWRlbyByZWxhdGVkICovCiAKQEAgLTg0LDcgKzg0LDcgQEAKICNkZWZpbmUgTVBDOFhYX1hJTgk1MDAwMDAwCQkJLyogNCBNSHogY2xvY2sJCSovCiAKICNkZWZpbmUgTVBDOFhYX0haCSgoTVBDOFhYX1hJTikgKiAoTVBDOFhYX0ZBQ1QpKQotI2RlZmluZSBDRkdfUExQUkNSX01GCSgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSX01GCSgoTVBDOFhYX0ZBQ1QtMSkgPDwgMjApCiAjZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRCU1QQzhYWF9IWgkvKiBGb3JjZSBpdCAtIGRvbnQgbWVhc3VyZSBpdCAqLwogCiAjZGVmaW5lCUNPTkZJR19DTE9DS1NfSU5fTUhaCTEJLyogY2xvY2tzIHBhc3NzZWQgdG8gTGludXggaW4gTUh6ICovCkBAIC0xMjQsMjUgKzEyNCwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI6PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI6PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJOAkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTgJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwODAwMDAwCS8qIDAgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA4MDAwMDAJLyogMCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTUyLDQ5ICsxNTIsNDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICogQWxzbyBOT1RFIHRoYXQgaXQgZG9lc24ndCBtZWFuIFNEUkFNIC0gaXQgbWVhbnMgTUVNT1JZLgogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAyODAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgodWludCkoOCAqIDEwMjQgKiAxMDI0KSkJLyogbWF4IDhNYnl0ZSAqLwogI2lmIDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgxMDAwMAkvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgU2VjdG9yCQkqLwpAQCAtMjA1LDkgKzIwNSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxNywxMCArMjE3LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMjgsMjMgKzIyOCwyMyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMTApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCTE1LTMwCkBAIC0yNTIsOSArMjUyLDkgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyICAqCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCAtIGxlYXZlIFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdW5jaGFuZ2VkICEKICAqCi0gKiAjZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyAqICNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgfCBDRkdfUExQUkNSX01GKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUIHwgQ09ORklHX1NZU19QTFBSQ1JfTUYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yNjMsNyArMjYzLDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSICAgICAgIChTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAoU0NDUl9UQlMgICAgIHwgXAogCQkJCVNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJCVNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJCVNDQ1JfREZBTENEMDApCkBAIC0yNzMsNyArMjczLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0yOTEsMjIgKzI5MSwyMiBAQAogCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweDAyODAwMDAwCS8qIEZMQVNIIGJhbmsgIzAJCSovCiAKLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAoNTEyS2IpICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAoNTEyS2IpICovCiAKIC8qIEZMQVNIIHRpbWluZyAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKIAkJCQlPUl9TQ1lfMTVfQ0xLIHwgT1JfVFJMWCApCiAKLS8qI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQkJLyogMHhmZmY4MGZmNCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfOCkJLyogMHgwMjgwMDQwMSAqLworLyojZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCQkvKiAweGZmZjgwZmY0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfOCkJLyogMHgwMjgwMDQwMSAqLwogCiAvKgogICogQlIxLzIgYW5kIE9SMS8yIChTRFJBTSkKICovCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiA2NE1iIGJhbmsgKi8KICNkZWZpbmUgU0RSQU1fQkFTRTFfUFJFTElNCTB4MDAwMDAwMDAJLyogRmlyc3QgYmFuayAqLwpAQCAtMzE3LDE3ICszMTcsMTcgQEAKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUJNUl9QVEIJCTB4NWQJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01CTVJfUFRCCQkweDVkCQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsgICAgICAgIE1QVFBSX1BUUF9ESVYzMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsgICAgICAgIE1QVFBSX1BUUF9ESVYzMgogLyoKICAqIE1CTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01CTVJfOENPTAkoKENGR19NQk1SX1BUQiA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01CTVJfOENPTAkoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSB8IFwKIAkJCU1BTVJfRzBDTEFfQTExIHwgTUFNUl9STEZBXzFYIHwgTUFNUl9XTEZBXzFYIFwKIAkJCXwgTUFNUl9UTEZBXzRYKQkvKiAweDVkODAyMTE0ICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9HVEguaCBiL2luY2x1ZGUvY29uZmlncy9HVEguaAppbmRleCAxOGJiYmMzLi5jMmNmODUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvR1RILmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0dUSC5oCkBAIC04OCwxMSArODgsMTEgQEAKICNpZiAxCiAjZGVmaW5lCUNPTkZJR19TQ0MxX0VORVQJMQkvKiB1c2UgU0NDMSBldGhlcm5ldCAqLwogI3VuZGVmCUNPTkZJR19GRUNfRU5FVAkJCS8qIGRpc2FibGUgRkVDIGV0aGVybmV0ICAqLwotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZWxzZQogI3VuZGVmCUNPTkZJR19TQ0MxX0VORVQJCS8qIGRpc2FibGUgU0NDMSBldGhlcm5ldCAqLwogI2RlZmluZQlDT05GSUdfRkVDX0VORVQJCTEJLyogdXNlIEZFQyBldGhlcm5ldCAgKi8KLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfU0NDMV9FTkVUKSAmJiBkZWZpbmVkKENPTkZJR19GRUNfRU5FVCkKICNlcnJvciBCb3RoIENPTkZJR19TQ0MxX0VORVQgYW5kIENPTkZJR19GRUNfRU5FVCBjb25maWd1cmVkCkBAIC0xMjIsMjUgKzEyMiwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4iCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KIAogLyogRGVmYXVsdCBsb2NhdGlvbiB0byBsb2FkIGRhdGEgZnJvbSBuZXQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNTAsNDkgKzE1MCw0OSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ODAwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCiAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIFRFWFRfQkFTRQogCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSCAxCiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9FRVBST00KQEAgLTIwNCw5ICsyMDQsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTYsMTAgKzIxNiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjI3LDE0ICsyMjcsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKQEAgLTI0MiwyMiArMjQyLDIyIEBACiAgKi8KIAogLypGSVhNRSBkb250IHVzZSBmb3Igbm93ICovCi0vKiNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KLS8qI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1JURikgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19SVEYpICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIC8qIFBJVEUgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkxNS0zMAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogc2V0IHRoZSBQTEwsIHRoZSBsb3ctcG93ZXIgbW9kZXMgYW5kIHRoZSByZXNldCBjb250cm9sICgxNS0yOSkKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCSgoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCiAJCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjksMTQgKzI2OSwxNCBAQAogCiAvKiBGSVhNRSBjaGVjayB2YWx1ZXMgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCU3xTQ0NSX1JUU0VMfFNDQ1JfQ09NMDB8U0NDUl9ERlNZTkMwMHxTQ0NSX0RGQlJHMDB8U0NDUl9ERk5MMDAwfFNDQ1JfREZOSDAwMHxTQ0NSX0RGTENEMDAwfFNDQ1JfREZBTENEMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlN8U0NDUl9SVFNFTHxTQ0NSX0NPTTAwfFNDQ1JfREZTWU5DMDB8U0NDUl9ERkJSRzAwfFNDQ1JfREZOTDAwMHxTQ0NSX0RGTkgwMDB8U0NDUl9ERkxDRDAwMHxTQ0NSX0RGQUxDRDAwKQogCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0yOTMsMjIgKzI5MywyMiBAQAogICovCiAvKiB0aGUgb3RoZXIgQ1M6cyBhcmUgZGV0ZXJtaW5lZCBieSBsb29raW5nIGF0IHBhcmFtZXRlcnMgaW4gQkNTUnggKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4RkY4MDAwMDAJLyogNCBNQiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweEZGODAwMDAwCS8qIDQgTUIgT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKICNkZWZpbmUgRlBHQV8yX0JBU0UgMHg5MDAwMDAwMAogI2RlZmluZSBGUEdBXzNfQkFTRSAweDk4MDAwMDAwCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTAsIFRSTFggPSAxLCBDU05UID0gMSwgU0NZID0gMywgRUhUUiA9IDAJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNiApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkgICAvKiAxIE1ieXRlIHVudGlsIGRldGVjdGVkIGFuZCBvbmx5IDEgTWJ5dGUgaXMgbmVlZGVkKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNiApCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMzQxLDMxICszNDEsMzEgQEAKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EgMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogI2RlZmluZSBDT05GSUdfSURFXzh4eF9QQ0NBUkQgICAgICAgMSAgICAgICAvKiBVc2UgSURFIHdpdGggUEMgQ2FyZCBBZGFwdGVyICovCiAjdW5kZWYgIENPTkZJR19JREVfOHh4X0RJUkVDVCAgICAgICAgICAgICAgIC8qIERpcmVjdCBJREUgICAgbm90IHN1cHBvcnRlZCAgKi8KICN1bmRlZiAgQ09ORklHX0lERV9MRUQgICAgICAgICAgICAgICAgICAvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQgICovCiAjdW5kZWYgIENPTkZJR19JREVfUkVTRVQgICAgICAgICAgICAgICAgLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkICAqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTICAgICAgICAgIDEgICAgICAgLyogbWF4LiAxIElERSBidXMgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRSAgICAgICAxICAgICAgIC8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTICAgICAgICAgIDEgICAgICAgLyogbWF4LiAxIElERSBidXMgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UgICAgICAgMSAgICAgICAvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVCAgICAgMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSICAgICAgIENGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQgICAgIDB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgICAgICAgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08gICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUICAgICAoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCAgICAgKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAgICAgKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgICAgICAoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUICAgICAgMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQgICAgICAweDAxMDAKIAogI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUSAgIE1QQzhYWF9IWiAgICAgICAvKiBGb3JjZSBpdCAtIGRvbnQgbWVhc3VyZSBpdCAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSEg0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9ISDQwNS5oCmluZGV4IDUyYmFhZTAuLjFlN2NjMTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ISDQwNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ISDQwNS5oCkBAIC02Miw3ICs2Miw3IEBACiAJInBjaWNvbmZpZ2hvc3Q9MVwwIgkJCQkJCVwKIAkiIgogCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjdW5kZWYgIENPTkZJR19IQVNfRVRIMQpAQCAtOTMsMTAgKzkzLDEwIEBACiAjZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8KICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgogI2RlZmluZSBDT05GSUdfVklERU9fQk1QX0daSVAJCS8qIGd6aXAgY29tcHJlc3NlZCBibXAgaW1hZ2VzCSovCi0jZGVmaW5lIENGR19WSURFT19MT0dPX01BWF9TSVpFCSgyIDw8IDIwKQkvKiBmb3IgZGVjb21wcmVzc2VkIGltZyAqLworI2RlZmluZSBDT05GSUdfU1lTX1ZJREVPX0xPR09fTUFYX1NJWkUJKDIgPDwgMjApCS8qIGZvciBkZWNvbXByZXNzZWQgaW1nICovCiAKICNlbmRpZiAvKiBDT05GSUdfVklERU8gKi8KIApAQCAtMTQ5LDc2ICsxNDksNzYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWICAgICAgMSAgICAgICAvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYgICAgICAxICAgICAgIC8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UgICAgICAgKi8KIAotI3VuZGVmICBDRkdfQ09OU09MRV9JTkZPX1FVSUVUICAgICAgICAgIC8qIHByaW50IGNvbnNvbGUgQCBzdGFydHVwCSovCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUICAgICAgICAgIC8qIHByaW50IGNvbnNvbGUgQCBzdGFydHVwCSovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfRVhUX1NFUklBTF9DTE9DSyAgICAgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkgICAvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OSAgICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQgICAgICAgNjkxMjAwCisjdW5kZWYgIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyAgICAgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5ICAgLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRCAgICAgICA2OTEyMDAKICNkZWZpbmUgQ09ORklHX1VBUlQxX0NPTlNPTEUgICAgICAgICAgICAvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUgICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUJMSAgICAgICAvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYgICAgICAvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNiAgICAgIC8qIHVzZSAxNiByeCBidWZmZXIgb24gNDA1IGVtYWMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzgKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAgICAgICAgICAxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQogCi0jZGVmaW5lIENGR19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JIDEgICAgICAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUVVJRVQgICAgICAgICAgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTIzNywxNSArMjM3LDE1IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UgMSAvKiBkb24ndCBza2lwIGhvc3QgYnJpZGdlIGNvbmZpZyovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweGZjMDAwMDAxICAgICAgLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ZmMwMDAwMDEgICAgICAvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMjU1LDY2ICsyNTUsNjYgQEAKICN1bmRlZiAgQ09ORklHX0lERV9MRUQgICAgICAgICAgICAgICAgICAvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQgICAgICovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lCUNGR19JREVfTUFYQlVTCSAgICAgICAgMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUJQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JREVfTUFYQlVTCSAgICAgICAgMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lCUNGR19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKLSNkZWZpbmUJQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lCUNGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLworI2RlZmluZQlDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkMwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBzaG9ydCAgLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkgICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAgICAgICAgICAweDU1NTUgIC8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJBQUEgIC8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgc2hvcnQgIC8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1NSAgLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEgICAgICAgICAweDJBQUEgIC8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICAqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwICAgICAgICAgMHgwMDAwICAvKiAwIGlzIHN0YW5kYXJkICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxICAgICAgICAgMHgwMDAxICAvKiAxIGlzIHN0YW5kYXJkICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyICAgICAgICAgMHgwMDAyICAvKiAyIGlzIHN0YW5kYXJkICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMCAgICAgICAgIDB4MDAwMCAgLyogMCBpcyBzdGFuZGFyZCAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEgICAgICAgICAweDAwMDEgIC8qIDEgaXMgc3RhbmRhcmQgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyICAgICAgICAgMHgwMDAyICAvKiAyIGlzIHN0YW5kYXJkICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTyAgICAgICAgICAgIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8gICAgICAgICAgICAvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LICAgIDAgICAgICAgICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUyAgICAgMSAgICAgICAgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LICAgIDAgICAgICAgICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MgICAgIDEgICAgICAgICAgIC8qICEgc2Vjb25kIGJhbmsgY29udGFpbnMgVS1Cb290ICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0IDw8IDIwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0IDw8IDIwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IEZMQVNIX0JBU0UwX1BSRUxJTSkKLSMgZGVmaW5lIENGR19SQU1CT09UCQkxCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgRkxBU0hfQkFTRTBfUFJFTElNKQorIyBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZWxzZQotIyB1bmRlZiBDRkdfUkFNQk9PVAorIyB1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjUsNDEgKzMyNSw0MSBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgICAgICAweDcwMCAgIC8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjQwODAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHg4MDAwCQkgICAgICAgIC8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4RjQwODAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTB4ODAwMAkJICAgICAgICAvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICNpZiAwIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCiAjZWxzZQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjRXQzA4CQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1dSRU4gICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI0V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1JFTiAgICAgICAgIDEKIAogI2lmIDEgLyogdGVzdC1vbmx5ICovCiAvKiBDQVQyNFdDMDgvMTYuLi4gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QJNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCiAjZWxzZQogLyogQ0FUMjRXQzMyLzY0Li4uICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTIJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTIJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiICAgICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMzIgaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDUJLyogVGhlIENhdGFseXN0IENBVDI0V0MzMiBoYXMJKi8KIAkJCQkJLyogMzIgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0CTUgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMzY3LDM3ICszNjcsMzcgQEAKIAogI2RlZmluZSBDQU5fQkEgICAgICAgICAgMHhGMDAwMDAwMCAgICAgICAgICAvKiBDQU4gQmFzZSBBZGRyZXNzICAgICAgICAgICAgICAgICAqLwogI2RlZmluZSBMQ0RfQkEgICAgICAgICAgMHhGMTAwMDAwMCAgICAgICAgICAvKiBFcHNvbiBMQ0QgQmFzZSBBZGRyZXNzICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFICAgMHhGNDAwMDAwMCAgICAgICAgICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcyAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRSAgMHhGNDA4MDAwMCAgICAgICAgICAvKiBOVlJBTSBCYXNlIEFkZHJlc3MgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRSAgIDB4RjQwMDAwMDAgICAgICAgICAgLyogTkFORCBGTEFTSCBCYXNlIEFkZHJlc3MgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFICAweEY0MDgwMDAwICAgICAgICAgIC8qIE5WUkFNIEJhc2UgQWRkcmVzcyAgICAgICAgICAgICAgICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUCAgICAgICAgICAgMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSICAgICAgICAgICAweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUCAgICAgICAgICAgMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUiAgICAgICAgICAgMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxLCBOQU5ELUZMQVNIICYgTlZSQU0pIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgICAgICAgICAweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAgICAgICAgIDB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQICAgICAgICAgICAweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSICAgICAgICAgICAweEY0MDE4MDAwICAvKiBCQVM9MHhGNDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLwogCiAvKiBNZW1vcnkgQmFuayAyICg4IEJpdCBQZXJpcGhlcmFsOiBDQU4sIFVBUlQsIFJUQykgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAgICAgICAgICAgIDB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgICAgICAgICAweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgICAgICAgICAgMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSICAgICAgICAgICAweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLwogCiAvKiBNZW1vcnkgQmFuayAzICgxNiBCaXQgUGVyaXBoZXJhbDogRlBHQSBpbnRlcm5hbCwgZGlnLiBJTykgaW5pdGlhbGl6YXRpb24gICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAgICAgICAgICAgIDB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSICAgICAgICAgICAweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUCAgICAgICAgICAgMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSICAgICAgICAgICAweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA0IChFcHNvbiBMQ0QpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAgICAweDAzODA1MzgwICAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0wICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IgICBMQ0RfQkEgfCAweDdBMDAwICAgIC8qIEJBUz0weEYxMCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQICAgMHgwMzgwNTM4MCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUiAgIExDRF9CQSB8IDB4N0EwMDAgICAgLyogQkFTPTB4RjEwLEJTPThNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTENEIFNldHVwCiAgKi8KIAotI2RlZmluZSBDRkdfTENEX0JJR19NRU0gICAgICAgICAweEYxMjAwMDAwICAvKiBFcHNvbiBTMUQxMzgwNiBNZW0gQmFzZSBBZGRyZXNzICAqLwotI2RlZmluZSBDRkdfTENEX0JJR19SRUcgICAgICAgICAweEYxMDAwMDAwICAvKiBFcHNvbiBTMUQxMzgwNiBSZWcgQmFzZSBBZGRyZXNzICAqLwotI2RlZmluZSBDRkdfTENEX1NNQUxMX01FTSAgICAgICAweEYxNDAwMDAwICAvKiBFcHNvbiBTMUQxMzcwNCBNZW0gQmFzZSBBZGRyZXNzICAqLwotI2RlZmluZSBDRkdfTENEX1NNQUxMX1JFRyAgICAgICAweEYxNDBGRkUwICAvKiBFcHNvbiBTMUQxMzcwNCBSZWcgQmFzZSBBZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xDRF9CSUdfTUVNICAgICAgICAgMHhGMTIwMDAwMCAgLyogRXBzb24gUzFEMTM4MDYgTWVtIEJhc2UgQWRkcmVzcyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQ0RfQklHX1JFRyAgICAgICAgIDB4RjEwMDAwMDAgIC8qIEVwc29uIFMxRDEzODA2IFJlZyBCYXNlIEFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEX1NNQUxMX01FTSAgICAgICAweEYxNDAwMDAwICAvKiBFcHNvbiBTMUQxMzcwNCBNZW0gQmFzZSBBZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xDRF9TTUFMTF9SRUcgICAgICAgMHhGMTQwRkZFMCAgLyogRXBzb24gUzFEMTM3MDQgUmVnIEJhc2UgQWRkcmVzcyAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVW5pdmVyc2FsIEludGVycnVwdCBDb250cm9sbGVyIChVSUMpIFNldHVwCkBAIC00MDYsMzAgKzQwNiwzMCBAQAogLyoKICAqIGRlZmluZSBVSUNfRVhUMCAuLi4gVUlDX0VYVDYgaWYgZXh0ZXJuYWwgaW50ZXJydXB0IGlzIGFjdGl2ZSBoaWdoCiAgKi8KLSNkZWZpbmUgQ0ZHX1VJQzBfUE9MQVJJVFkgICAgICAgKDB4RkZGRkZGODAgfCBVSUNfTUFTSyhWRUNOVU1fRUlSUTYpKQorI2RlZmluZSBDT05GSUdfU1lTX1VJQzBfUE9MQVJJVFkgICAgICAgKDB4RkZGRkZGODAgfCBVSUNfTUFTSyhWRUNOVU1fRUlSUTYpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KIAotI2RlZmluZSBDRkdfRlBHQV9CQVNFX0FERFIgMHhGMDEwMDEwMCAgICAgICAvKiBGUEdBIGludGVybmFsIEJhc2UgQWRkcmVzcyAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRV9BRERSIDB4RjAxMDAxMDAgICAgICAgLyogRlBHQSBpbnRlcm5hbCBCYXNlIEFkZHJlc3MgICAgICAgKi8KIAogLyogRlBHQSBpbnRlcm5hbCByZWdzICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkwgICAgICAgICAgIDB4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMICAgICAgICAgICAweDAwMAogCiAvKiBGUEdBIENvbnRyb2wgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfUkVWMCAgICAgIDB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9DVFJMX1JFVjEgICAgICAweDAwMDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTF9WR0EwX0JMICAgMHgwMDA0Ci0jZGVmaW5lIENGR19GUEdBX0NUUkxfVkdBMF9CTF9NT0RFIDB4MDAwOAotI2RlZmluZSBDRkdfRlBHQV9DVFJMX0NGX1JFU0VUICAweDAwNDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQ1RSTF9QUzJfUFdSICAgMHgwMDgwCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfQ0ZfUFdSTiAgIDB4MDEwMCAgICAgIC8qIGxvdyBhY3RpdmUgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfQ0ZfQlVTX0VOIDB4MDIwMAotI2RlZmluZSBDRkdfRlBHQV9DVFJMX0xDRF9DTEsgICAweDcwMDAgICAgICAvKiBNYXNrIGZvciBsY2QgY2xvY2sgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9DVFJMX09XX0VOQUJMRSAweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfUkVWMCAgICAgIDB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9SRVYxICAgICAgMHgwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX1ZHQTBfQkwgICAweDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfVkdBMF9CTF9NT0RFIDB4MDAwOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ1RSTF9DRl9SRVNFVCAgMHgwMDQwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX1BTMl9QV1IgICAweDAwODAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUFdSTiAgIDB4MDEwMCAgICAgIC8qIGxvdyBhY3RpdmUgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX0NGX0JVU19FTiAweDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfTENEX0NMSyAgIDB4NzAwMCAgICAgIC8qIE1hc2sgZm9yIGxjZCBjbG9jayAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX09XX0VOQUJMRSAweDgwMDAKIAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfQ0ZfREVURUNUIDB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0NGX0RFVEVDVCAweDgwMDAKIAogI2RlZmluZSBMQ0RfQ0xLX09GRiAgICAgICAgICAgICAweDAwMDAgICAgICAvKiBPZmYgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogI2RlZmluZSBMQ0RfQ0xLXzAyMDgzICAgICAgICAgICAweDEwMDAgICAgICAvKiAyLjA4MyBNSHogICAgICAgICAgICAgICAgICAgICAqLwpAQCAtNDQwLDMxICs0NDAsMzEgQEAKICNkZWZpbmUgTENEX0NMS18xMjUwMCAgICAgICAgICAgMHg2MDAwICAgICAgLyogMTIuNTAgTUh6ICAgICAgICAgICAgICAgICAgICAgKi8KICNkZWZpbmUgTENEX0NMS18yNTAwMCAgICAgICAgICAgMHg3MDAwICAgICAgLyogMjUuMDAgTUh6ICAgICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfRlBHQV9TUEFSVEFOMiAgICAgICAxICAgICAgICAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRSAgICAgICAxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIgICAgICAgMSAgICAgICAgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFICAgICAgIDEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcgICAgICAgICAgICAweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsgICAgICAgICAgICAweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBICAgICAgICAgICAweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUICAgICAgICAgICAweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FICAgICAgICAgICAweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHICAgICAgICAgICAgMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSyAgICAgICAgICAgIDB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBICAgICAgICAgICAweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVCAgICAgICAgICAgMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUgICAgICAgICAgIDB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gICAgICAgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTQ3OCwxOSArNDc4LDE5IEBACiAgKiBHUElPMFsyOC0yOV0gLSBVQVJUMSBkYXRhIHNpZ25hbCBpbnB1dC9vdXRwdXQKICAqIEdQSU8wWzMwLTMxXSAtIEVNQUMwIGFuZCBFTUFDMSByZWplY3QgcGFja2V0IGlucHV0cwogICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JICQkweDQwMDAwNTUwCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDAwMDAwMTEwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RDUgkJMHhGN0ZFMDAxNworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4NDAwMDA1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEY3RkUwMDE3CiAKLSNkZWZpbmUgQ0ZHX0xDRF9FTkRJQU4JCSgweDgwMDAwMDAwID4+IDcpCi0jZGVmaW5lIENGR19FRVBST01fV1AJCSgweDgwMDAwMDAwID4+IDgpICAgLyogR1BJTzggKi8KLSNkZWZpbmUgQ0ZHX1RPVUNIX1JTVAkJKDB4ODAwMDAwMDAgPj4gOSkgICAvKiBHUElPOSAqLwotI2RlZmluZSBDRkdfTENEMF9SU1QJCSgweDgwMDAwMDAwID4+IDMwKQotI2RlZmluZSBDRkdfTENEMV9SU1QJCSgweDgwMDAwMDAwID4+IDMxKQorI2RlZmluZSBDT05GSUdfU1lTX0xDRF9FTkRJQU4JCSgweDgwMDAwMDAwID4+IDcpCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dQCQkoMHg4MDAwMDAwMCA+PiA4KSAgIC8qIEdQSU84ICovCisjZGVmaW5lIENPTkZJR19TWVNfVE9VQ0hfUlNUCQkoMHg4MDAwMDAwMCA+PiA5KSAgIC8qIEdQSU85ICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEMF9SU1QJCSgweDgwMDAwMDAwID4+IDMwKQorI2RlZmluZSBDT05GSUdfU1lTX0xDRDFfUlNUCQkoMHg4MDAwMDAwMCA+PiAzMSkKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSElEREVOX0RSQUdPTi5oIGIvaW5jbHVkZS9jb25maWdzL0hJRERFTl9EUkFHT04uaAppbmRleCBjOGMwNDA5Li5mNjc3N2I5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSElEREVOX0RSQUdPTi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ISURERU5fRFJBR09OLmgKQEAgLTc3LDE0ICs3NywxNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC05NSw3ICs5NSw3IEBACiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJCS8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4CQkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgJCS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLwogCiAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHg4MDAwMDAwMAogI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUgkweDgwMDAwMDAwCkBAIC0xMTQsNTMgKzExNCw1MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDAyMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCiAjaWYgZGVmaW5lZCAoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgwMDA5MDAwMAotI2RlZmluZSBDRkdfUkFNQk9PVAkJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDAwMDkwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZFMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSgyICogMTAyNCAqIDEwMjQpCS8qIFVuaXR5IGhhcyBvbmJvYXJkIDFNQnl0ZSBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoMiAqIDEwMjQgKiAxMDI0KQkvKiBVbml0eSBoYXMgb25ib2FyZCAxTUJ5dGUgZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMDA0MDAwCS8qIE9mZnNldCBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDAwMDAyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCQkweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU0JCTB4RkQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JTwkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9NRU0JCTB4RkQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU8JCTB4RkUwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfUkFOR0VfQkFTRQkweEZGRTAwMDAwCS8qIGZsYXNoIG1lbW9yeSBhZGRyZXNzIHJhbmdlCSovCi0jZGVmaW5lIENGR19GTEFTSF9SQU5HRV9TSVpFCTB4MDAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SQU5HRV9CQVNFCTB4RkZFMDAwMDAJLyogZmxhc2ggbWVtb3J5IGFkZHJlc3MgcmFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SQU5HRV9TSVpFCTB4MDAyMDAwMDAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZFMDAwMDAJLyogcHJvY2Vzc29yIGJvYXJkIGZsYXNoCSovCiAKIC8qCkBAIC0xNzIsOCArMTcyLDggQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogI2Vycm9yICJTb2Z0IEkyQyBpcyBub3QgY29uZmlndXJlZCBwcm9wZXJseS4gIFBsZWFzZSByZXZpZXchIgpAQCAtMTg4LDEzICsxODgsMTMgQEAKICNkZWZpbmUgSTJDX0RFTEFZCQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogI2VuZGlmIC8qIENPTkZJR19TT0ZUX0kyQyAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NwkJLyogRUVQUk9NIElTMjRDMDIJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lIENGR19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQpAQCAtMjAyLDEyICsyMDIsMTIgQEAKIAogCiAjZGVmaW5lIENPTkZJR19XSU5CT05EXzgzQzU1MwkxCS8qaGFzIGEgd2luYm9uZCBicmlkZ2UJCQkqLwotI2RlZmluZSBDRkdfVVNFX1dJTkJPTkRfSURFCTAJLyp1c2Ugd2luYm9uZCA4M2M1NTMgaW50ZXJuYWwgSURFIGN0cmxyICovCi0jZGVmaW5lIENGR19XSU5CT05EX0lTQV9DRkdfQUREUiAgICAweDgwMDA1ODAwCS8qcGNpLWlzYSBicmlkZ2UgY29uZmlnIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1dJTkJPTkRfSURFX0NGR19BRERSICAgIDB4ODAwMDU5MDAJLyppZGUgY29uZmlnIGFkZHIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX1dJTkJPTkRfSURFCTAJLyp1c2Ugd2luYm9uZCA4M2M1NTMgaW50ZXJuYWwgSURFIGN0cmxyICovCisjZGVmaW5lIENPTkZJR19TWVNfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgICAgMHg4MDAwNTgwMAkvKnBjaS1pc2EgYnJpZGdlIGNvbmZpZyBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfV0lOQk9ORF9JREVfQ0ZHX0FERFIgICAgMHg4MDAwNTkwMAkvKmlkZSBjb25maWcgYWRkcgkJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KIAogLyogVE9ETzogQ2hhbmdlIHRoaXMgdG8gVklBNjg2QSAqLwogCkBAIC0yMTYsNDAgKzIxNiw0MCBAQAogICovCiAjZGVmaW5lIENPTkZJR19OUzg3MzA4CQkJLyogTmF0IFNlbWkgc3VwZXItaW8gY29udHJvbGxlciBvbiBJU0EgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQkFERFJfMTAJMQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQkFERFJfMTAJMQogCi0jZGVmaW5lIENGR19OUzg3MzA4X0RFVlMJKCBDRkdfTlM4NzMwOF9VQVJUMSAgIHwgXAotCQkJCSAgQ0ZHX05TODczMDhfVUFSVDIgICB8IFwKLQkJCQkgIENGR19OUzg3MzA4X1BPV1JNQU4gfCBcCi0JCQkJICBDRkdfTlM4NzMwOF9SVENfQVBDICkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0RFVlMJKCBDT05GSUdfU1lTX05TODczMDhfVUFSVDEgICB8IFwKKwkJCQkgIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMiAgIHwgXAorCQkJCSAgQ09ORklHX1NZU19OUzg3MzA4X1BPV1JNQU4gfCBcCisJCQkJICBDT05GSUdfU1lTX05TODczMDhfUlRDX0FQQyApCiAKLSN1bmRlZglDRkdfTlM4NzMwOF9QUzJNT0QKKyN1bmRlZglDT05GSUdfU1lTX05TODczMDhfUFMyTU9ECiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MwX0JBU0UJMHgwMDc2Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMF9DT05GCTB4MzAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MxX0JBU0UJMHgwMDc1Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMV9DT05GCTB4MzAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MyX0JBU0UJMHgwMDc0Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMl9DT05GCTB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMF9CQVNFCTB4MDA3NgorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MwX0NPTkYJMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MxX0JBU0UJMHgwMDc1CisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQ09ORgkweDMwCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQkFTRQkweDAwNzQKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMl9DT05GCTB4MzAKIAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAogI2lmIChDT05GSUdfQ09OU19JTkRFWCA+IDIpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJQ09ORklHX0RSQU1fU1BFRUQqMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlDT05GSUdfRFJBTV9TUEVFRCoxMDAwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTE4NDMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMTg0MzIwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0lTQV9JTyArIENGR19OUzg3MzA4X1VBUlQxX0JBU0UpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JU0FfSU8gKyBDRkdfTlM4NzMwOF9VQVJUMl9CQVNFKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00zCShDRkdfRVVNQl9BRERSICsgMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT000CShDRkdfRVVNQl9BRERSICsgMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JU0FfSU8gKyBDT05GSUdfU1lTX05TODczMDhfVUFSVDFfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSVNBX0lPICsgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00zCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTQJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTI1OSwyNyArMjU5LDI3IEBACiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMzMzMzMzMJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwogCi0jZGVmaW5lIENGR19ST01OQUwJCTcJLypyb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KLSNkZWZpbmUgQ0ZHX1JPTUZBTAkJMTEJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkJNwkvKnJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkJMTEJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLwogCi0jZGVmaW5lIENGR19SRUZJTlQJNDMwCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAk0MzAJLyogbm8gb2YgY2xvY2sgY3ljbGVzIGJldHdlZW4gQ0JSIHJlZnJlc2ggY3ljbGVzICovCiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGZvciBTRFJBTSBvbmx5Ki8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJMTIxCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJOAkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLwotI2RlZmluZSBDRkdfUkRMQVQJCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCTEyMQkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UsIHNldHMgb3BlbiBwYWdlIGludGVydmFsICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQk4CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTMJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTgkyCS8qIE9CU09MRVRFISAgU0RNT0RFIEJ1cnN0IGxlbmd0aCAyPTQsIDM9OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMgkvKiBPQlNPTEVURSEgIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQotI2RlZmluZSBDRkdfRVhUUk9NIDEKLSNkZWZpbmUgQ0ZHX1JFR0RJTU0gMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRST00gMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0gMAogCiAKIC8qIG1lbW9yeSBiYW5rIHNldHRpbmdzKi8KQEAgLTI4OSw5MyArMjg5LDkzIEBACiAgKiBiaXRzIHdpbGwgYmUgc2V0IHRvIDB4MDAwMDAgZm9yIGEgc3RhcnQgYWRkcmVzcywgb3IgMHhmZmZmZiBmb3IgYW4KICAqIGVuZCBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJCShDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECQkoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUJMAogLyoKICAqIE1lbW9yeSBiYW5rIGVuYWJsZSBiaXRtYXNrLCBzcGVjaWZ5aW5nIHdoaWNoIG9mIHRoZSBiYW5rcyBkZWZpbmVkIGFib3ZlCiAgYXJlIGFjdHVhbGx5IHByZXNlbnQuIE1TQiBpcyBmb3IgYmFuayAjNywgTFNCIGlzIGZvciBiYW5rICMwLgogICovCi0jZGVmaW5lIENGR19CQU5LX0VOQUJMRQkJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTktfRU5BQkxFCQkweDAxCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLworI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJCTB4ZmYJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzLAkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBiaXQgZGVmaW5pdGlvbnMJKi8KLSNkZWZpbmUgQ0ZHX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KIAkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5CSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGRldGFpbHMJCSovCiAKIC8qIFNEUkFNIDAgLSAyNTZNQiAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBzdGFjayBpbiBEQ0FDSEUgQCAxR0IgKG5vIGJhY2tpbmcgbWVtKSAqLwogI2lmIGRlZmluZWQoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoMHg0MDAwMDAwMCB8IEJBVExfUFBfMDAgKQotI2RlZmluZSBDRkdfSUJBVDFVCSgweDQwMDAwMDAwIHwgQkFUVV9CTF8xMjhLICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKDB4NDAwMDAwMDAgfCBCQVRMX1BQXzAwICkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKDB4NDAwMDAwMDAgfCBCQVRVX0JMXzEyOEsgKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbmRpZgogCiAvKiBQQ0kgbWVtb3J5ICovCi0jZGVmaW5lIENGR19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEZsYXNoLCBjb25maWcgYWRkcnMsIGV0YyAqLwotI2RlZmluZSBDRkdfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkzNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0hNSTEwLmggYi9pbmNsdWRlL2NvbmZpZ3MvSE1JMTAuaAppbmRleCBjNThjYjhjLi42YzhlODFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSE1JMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSE1JMTAuaApAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBDT05GSUdfUFMyS0JECQkJLyogQVQtUFMvMiBLZXlib2FyZAkJKi8KICNkZWZpbmUgQ09ORklHX1BTMk1VTFQJCQkvKiAuLiBvbiBQUy8yIE11bHRpcGxleGVyCSovCiAjZGVmaW5lIENPTkZJR19QUzJTRVJJQUwJMgkvKiAuLiBvbiBDT00zCQkJKi8KLSNkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENGR19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCisjZGVmaW5lIENPTkZJR19QUzJNVUxUX0RFTEFZCShDT05GSUdfU1lTX0haLzIpCS8qIEluaXRpYWwgZGVsYXkJKi8KIAogI2RlZmluZSBDT05GSUdfQk9PVENPVU5UX0xJTUlUCiAKQEAgLTg4LDE0ICs4OCwxNCBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJICAxCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwCS8qIDQwIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwCS8qIDQwIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKIC8qIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uICovCiAjZGVmaW5lIFBCX1NDTAkJMHgwMDAwMDAyMAkvKiBQQiAyNiAqLwpAQCAtMTMxLDcgKzEzMSw3IEBACiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCiAKICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcJCS8qIFVzZSBkczEzMzcgcnRjIHZpYSBpMmMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAweDY4CQkvKiBhdCBhZGRyZXNzIDB4NjgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSIDB4NjgJCS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KIAogCiAvKgpAQCAtMTU2LDMzICsxNTYsMzMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjaWYgMAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KICNlbmRpZgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xOTIsNDcgKzE5Miw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTI0NSwxNiArMjQ1LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUJICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplCSAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2NCwxMCArMjY0LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzYsOSArMjc2LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYgQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjg2LDIwICsyODYsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0zMDksNyArMzA5LDcgQEAKICAqCiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzE4LDcgKzMxOCw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzI3LDE0ICszMjcsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDEwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDEwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MTAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzEwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MTAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKICNkZWZpbmUgUENNQ0lBX01FTV9XSU5fTk8JNQogI2RlZmluZSBOU0NVX09FX0lOVgkJMQkJLyogUENNQ0lBX0dDUlhfQ1hPRSBpcyBpbnZlcnRlZCAqLwogCkBAIC0zNTEsMjggKzM1MSwyOCBAQAogI2RlZmluZSBDT05GSUdfSURFX0xFRAkJMQkvKiBMRUQgICBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzg3LDIyICszODcsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtNDEzLDE5ICs0MTMsMTkgQEAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmIENPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUgQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDU2LDM0ICs0NTYsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9IVUI0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9IVUI0MDUuaAppbmRleCAyYTYxZTc3Li4zZTU4NDI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSFVCNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0hVQjQwNS5oCkBAIC01Miw3ICs1Miw3IEBACiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTkyLDUwICs5Miw1MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAjdW5kZWYJQ09ORklHX1VBUlQxX0NPTlNPTEUJCS8qIGRlZmluZSBmb3IgdWFydDEgYXMgY29uc29sZQkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKiBFdGhlcm5ldCBzdHVmZiAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURSAvKiBMZXQgdGhlIHVzZXIgdG8gY2hhbmdlIHRoZSBFdGhlcm5ldCBNQUMgYWRkcmVzc2VzICovCkBAIC0xNDcsMTggKzE0NywxOCBAQAogICogTkFORC1GTEFTSCBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogI2RlZmluZSBOQU5EX01BWF9DSElQUyAgICAgICAgICAxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQogCi0jZGVmaW5lIENGR19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLwotI2RlZmluZSBDRkdfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRFkgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiA0KSAgIC8qIG91ciBSRFkgaXMgR1BJTzQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NLSVBfQkFEX0RPVF9JIDEgICAgICAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUVVJRVQgICAgICAgICAgMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE3NSw1OCArMTc1LDU4IEBACiAKICN1bmRlZglDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCSAgICAvKiB1c2UgZm9yIEpGRlMyICovCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQkgICAgLyogISBzZWNvbmQgYmFuayBjb250YWlucyBVLUJvb3QgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzcsMjQgKzIzNywyNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NzAwCS8qIDIwNDggYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KIAkJCQkgICAvKiB0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMjQyCQkJLyogTlZSQU0gc2l6ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNjksNTcgKzI2OSw1NyBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLS8qI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkgIDB4MDgwNTU4ODAgIC9YWFgqIFRXVD0xNixDU049MSxPRU49MSxXQk49MSxXQkY9MSxUSD00LFNPUj0xICovCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisvKiNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCSAgMHgwODA1NTg4MCAgL1hYWCogVFdUPTE2LENTTj0xLE9FTj0xLFdCTj0xLFdCRj0xLFRIPTQsU09SPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjQwMTgwMDAgIC8qIEJBUz0weEY0MCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoOCBCaXQgUGVyaXBoZXJhbDogVUFSVCkgaW5pdGlhbGl6YXRpb24JCQkqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAjZW5kaWYKIAogI2RlZmluZSBEVUFSVDBfQkEJMHhGMDAwMDAwMAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBEVUFSVDFfQkEJMHhGMDAwMDAwOAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBEVUFSVDJfQkEJMHhGMDAwMDAxMAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBEVUFSVDNfQkEJMHhGMDAwMDAxOAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCTB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJMHhGNDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC0zMzMsMTkgKzMzMywxOSBAQAogICogR1BJTzBbMjgtMjldIC0gVUFSVDEgZGF0YSBzaWduYWwgaW5wdXQvb3V0cHV0CiAgKiBHUElPMFszMC0zMV0gLSBFTUFDMCBhbmQgRU1BQzEgcmVqZWN0IHBhY2tldCBpbnB1dHMKICAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1Ci0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4RjdGRTAwMTQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JICQkweDQwMDAwNTUwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUgkJMHhGN0ZFMDAxNAogCi0jZGVmaW5lIENGR19EVUFSVF9SU1QgICAgICAgICAgICgweDgwMDAwMDAwID4+IDE0KQotI2RlZmluZSBDRkdfVUFSVDJfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA1KQotI2RlZmluZSBDRkdfVUFSVDNfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA2KQotI2RlZmluZSBDRkdfVUFSVDRfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA3KQotI2RlZmluZSBDRkdfVUFSVDVfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA4KQorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX1JTVCAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMTQpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVDJfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA1KQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlQzX1JTMjMyICAgICAgICAgKDB4ODAwMDAwMDAgPj4gNikKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUNF9SUzIzMiAgICAgICAgICgweDgwMDAwMDAwID4+IDcpCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVDVfUlMyMzIgICAgICAgICAoMHg4MDAwMDAwMCA+PiA4KQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9JQUQyMTAuaCBiL2luY2x1ZGUvY29uZmlncy9JQUQyMTAuaAppbmRleCBhNDk0NGYxLi5jYTQ4OGM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvSUFEMjEwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0lBRDIxMC5oCkBAIC05NywxMiArOTcsMTIgQEAKICMgdW5kZWYgIENPTkZJR19TQ0MxX0VORVQJCS8qIGRpc2FibGUgU0NDMSBldGhlcm5ldCAqLwogIyBkZWZpbmUgQ09ORklHX0ZFQ19FTkVUICAgIDEJLyogdXNlIEZFQyBldGhlcm5ldCAgKi8KICMgZGVmaW5lIENPTkZJR19NSUkgICAgICAgICAxCi0jIGRlZmluZSBDRkdfRElTQ09WRVJfUEhZICAgMQorIyBkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgICAxCiAjIGRlZmluZSBDT05GSUdfRkVDX1VUT1BJQSAgMQogIyBkZWZpbmUgQ09ORklHX0VUSEFERFIgICAgIDA4OjAwOjA2OjI2OkEyOjZECiAjIGRlZmluZSBDT05GSUdfSVBBRERSICAgICAgMTkyLjE2OC4yOC4xMjgKICMgZGVmaW5lIENPTkZJR19TRVJWRVJJUCAgICAxMzkuMTAuMTM3LjEzOAotIyBkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWSAgIDEKKyMgZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICAgMQogCiAjZGVmaW5lIENPTkZJR19NQUNfUEFSVElUSU9OCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCkBAIC0xMTAsOSArMTEwLDkgQEAKIC8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCiAjdW5kZWYgIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgICAgKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkICAgICAgICAgICAgICAgKi8KLSMgZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCi0jIGRlZmluZSBDRkdfSTJDX1NMQVZFCQkweERECi0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4REQKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgogICovCkBAIC0xNDUsMjUgKzE0NSwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAKIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE3Myw1MiArMTczLDUyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwODAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSg0ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggMTZNYnl0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDA4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKCh1aW50KSg0ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggMTZNYnl0ZSAqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAogI2lmIGRlZmluZWQoREVCVUcpCi0jIGRlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjIGRlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSMgZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyMgZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKIAotIyBkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotIyBkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworIyBkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjIGRlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCkBAIC0yMjcsOSArMjI3LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM5LDEwICsyMzksMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1MCwyOCArMjUwLDI4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHNldCB0aGUgUExMLCB0aGUgbG93LXBvd2VyIG1vZGVzIGFuZCB0aGUgcmVzZXQgY29udHJvbCAoMTUtMjkpCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAogCQkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjgyLDcgKzI4Miw3IEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTCXwgU0NDUl9DT00wMAl8IFNDQ1JfREZTWU5DMDAJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMJfCBTQ0NSX0NPTTAwCXwgU0NDUl9ERlNZTkMwMAl8IFwKIAkJCSBTQ0NSX0RGQlJHMDAJfCBTQ0NSX0RGTkwwMDAJfCBTQ0NSX0RGTkgwMDAJfCBcCiAJCQkgU0NDUl9ERkxDRDAwMAl8U0NDUl9ERkFMQ0QwMAkpCiAKQEAgLTI5MSw3ICsyOTEsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiArMHgwOUM0ID0+IERSUVAgPSAxMCAoSURNQSByZXF1ZXN0cyBoYXZlIGxvd2VzdCBwcmlvcml0eSkgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgMHgwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAweDAwMjAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIHN0dWZmCkBAIC0zMDUsNyArMzA1LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0zMjEsMjIgKzMyMSwyMiBAQAogICogQlIwIGFuZCBPUjAgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCiAKIC8qIHVzZWQgdG8gcmUtbWFwIEZMQVNIIGJvdGggd2hlbiBzdGFydGluZyBmcm9tIFNSQU0gb3IgRkxBU0g6CiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweEY4MDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RjgwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4RjgwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RjgwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzoKICBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzQ3LDI1ICszNDcsMjUgQEAKIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgT1JfQUNTX0RJVjQpCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgT1JfQUNTX0RJVjQpCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkxMjQJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgNjQgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJMTI0CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDY0IE1IegkqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCSAgICAgICAgTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkgICAgICAgIE1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKLSNkZWZpbmUgQ0ZHX01BTVIJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV84WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0lDVTg2Mi5oIGIvaW5jbHVkZS9jb25maWdzL0lDVTg2Mi5oCmluZGV4IDBmZjdmYTkuLjkxNzEzNWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9JQ1U4NjIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSUNVODYyLmgKQEAgLTk1LDkgKzk1LDkgQEAKICNkZWZpbmUJQ09ORklHX0ZFQ19FTkVUCQkxCS8qIHVzZSBGRUMgZXRoZXJuZXQgICovCiAjZGVmaW5lCUNPTkZJR19NSUkJCTEKICNpZiAxCi0jZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkJMQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQkxCiAjZWxzZQotI3VuZGVmCUNGR19ESVNDT1ZFUl9QSFkKKyN1bmRlZglDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX01BQ19QQVJUSVRJT04KQEAgLTEwNiwxMCArMTA2LDEwIEBACiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmICBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSMgZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCi0jIGRlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCi0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSMgZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KICAqLwpAQCAtMTI2LDggKzEyNiw4IEBACiAJCQllbHNlICAgIGltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+UEJfU0NMCiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogCi0jZGVmaW5lIENGR19FRVBST01fWDQwNDMwCQkvKiBVc2UgYSBYaWNvciBYNDA0MzAgRUVQUk9NCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTICA0CS8qIDE2IGJ5dGVzIHBhZ2Ugd3JpdGUgbW9kZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9YNDA0MzAJCS8qIFVzZSBhIFhpY29yIFg0MDQzMCBFRVBST00JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTICA0CS8qIDE2IGJ5dGVzIHBhZ2Ugd3JpdGUgbW9kZQkqLwogCiAjZGVmaW5lCUNPTkZJR19SVENfTVBDOHh4CQkvKiB1c2UgaW50ZXJuYWwgUlRDIG9mIE1QQzh4eAkqLwogCkBAIC0xNTAsMjUgKzE1MCwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAKIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE3OCw1NSArMTc4LDU1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSgxNiAqIDEwMjQgKiAxMDI0KSkJLyogbWF4IDE2TWJ5dGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgodWludCkoMTYgKiAxMDI0ICogMTAyNCkpCS8qIG1heCAxNk1ieXRlICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCiAjaWYgMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0yMzQsMTQgKzIzNCwxNCBAQAogCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBzZWN0b3IJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVXNlZCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTEsMTAgKzI1MSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYyLDI4ICsyNjIsMjggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkxNS0zMAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogc2V0IHRoZSBQTEwsIHRoZSBsb3ctcG93ZXIgbW9kZXMgYW5kIHRoZSByZXNldCBjb250cm9sICgxNS0yOSkKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCSgoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfAlcCiAJCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTQsMTIgKzI5NCwxMiBAQAogICovCiAjaWZkZWYgQ09ORklHXzEwME1IegkvKiBmb3IgMTAwIE1IeiwgZXh0ZXJuYWwgYnVzIGlzIGhhbGYgQ1BVIGNsb2NrICovCiAjZGVmaW5lIFNDQ1JfTUFTSwkwCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUwl8IFNDQ1JfQ09NMDAJfCBTQ0NSX0RGU1lOQzAwCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTCXwgU0NDUl9DT00wMAl8IFNDQ1JfREZTWU5DMDAJfCBcCiAJCQkgU0NDUl9ERkJSRzAwCXwgU0NDUl9ERk5MMDAwCXwgU0NDUl9ERk5IMDAwCXwgXAogCQkJIFNDQ1JfREZMQ0QwMDAJfFNDQ1JfREZBTENEMDAJfCBTQ0NSX0VCREYwMSkKICNlbHNlCQkJLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTCXwgU0NDUl9DT00wMAl8IFNDQ1JfREZTWU5DMDAJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMJfCBTQ0NSX0NPTTAwCXwgU0NDUl9ERlNZTkMwMAl8IFwKIAkJCSBTQ0NSX0RGQlJHMDAJfCBTQ0NSX0RGTkwwMDAJfCBTQ0NSX0RGTkgwMDAJfCBcCiAJCQkgU0NDUl9ERkxDRDAwMAl8U0NDUl9ERkFMQ0QwMAkpCiAjZW5kaWYJLyogQ09ORklHXzEwME1IeiAqLwpAQCAtMzA5LDIwICszMDksMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogLyogKzB4MDlDNCA9PiBEUlFQID0gMTAgKElETUEgcmVxdWVzdHMgaGF2ZSBsb3dlc3QgcHJpb3JpdHkpICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDAyMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMDIwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBQb3dlciBTd2l0Y2gKQEAgLTM1NiwyMSArMzU2LDIxIEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzc4LDcgKzM3OCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCTAKIAogLyogQmVjYXVzZSBvZiB0aGUgd2F5IHRoZSA4NjAgc3RhcnRzIHVwIGFuZCBhc3NpZ25zIENTMCB0aGUKICogZW50aXJlIGFkZHJlc3Mgc3BhY2UsIHdlIGhhdmUgdG8gc2V0IHRoZSBtZW1vcnkgY29udHJvbGxlcgpAQCAtMzk3LDE2ICszOTcsMTYgQEAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4NDAwMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHgwCQkvKiBGTEFTSCBiYW5rICMxCSovCiAKLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTAsIFRSTFggPSAxLCBDU05UID0gMSwgU0NZID0gMywgRUhUUiA9IDAJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhGRjAwMDk1NAkJLyogUmVhbCB2YWx1ZXMgZm9yIHRoZSBib2FyZCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweDQwMDAwMDAxCQkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweEZGMDAwOTU0CQkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweDQwMDAwMDAxCQkvKiBSZWFsIHZhbHVlcyBmb3IgdGhlIGJvYXJkICovCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCkBAIC00MTQsNDAgKzQxNCw0MCBAQAogI2RlZmluZSBTRFJBTV9CQVNFMV9QUkVMSU0JMHgwMDAwMDAwMAkvKiBTRFJBTSBiYW5rCQkqLwogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDA4MDAJLyogQklIIGlzIG5vdCBzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMDgwMAkvKiBCSUggaXMgbm90IHNldAkqLwogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSkKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJOTcJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTk3CS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCi0jZGVmaW5lIENGR19NQU1SCQkweDEzYTAxMTE0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkJMHgxM2EwMTExNAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0lEUzgyNDcuaCBiL2luY2x1ZGUvY29uZmlncy9JRFM4MjQ3LmgKaW5kZXggNGQwMzk3Yy4uYTYxMGFjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0lEUzgyNDcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSURTODI0Ny5oCkBAIC03Myw4ICs3Myw4IEBACiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmICBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgpAQCAtOTEsMTAgKzkxLDEwIEBACiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogCiAjaWYgMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogI2RlZmluZSBDT05GSUdfSTJDX1gKICNlbmRpZgpAQCAtMTA4LDE3ICsxMDgsMTcgQEAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLICAgICAgICAgMTQ3NDU2MDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyAgICAgICAgIDE0NzQ1NjAwCiAKLSNkZWZpbmUJQ0ZHX1VBUlRfQkFTRQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19VQVJUX1NJWkUJMHgxMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1VBUlRfQkFTRQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9TSVpFCTB4MTAwMDAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX1VBUlRfQkFTRSArIDB4ODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX1VBUlRfQkFTRSArIDB4ODAwMCkKIAogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0xNTQsMTcgKzE1NCwxNyBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMHxDTVhGQ1JfVEYxQ1NfQ0xLOSkKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzEwfENNWEZDUl9URjFDU19DTEs5KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogCiAvKiBzeXN0ZW0gY2xvY2sgcmF0ZSAoQ0xLSU4pIC0gZXF1YWwgdG8gdGhlIDYweCBhbmQgbG9jYWwgYnVzIHNwZWVkICovCiAjZGVmaW5lIENPTkZJR184MjYwX0NMS0lOCTY2NjY2NjY2CS8qIGluIEh6ICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTE4MCw3ICsxODAsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVFBfQk9PVEZJTEVTSVpFCiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJCTB4NTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NTEKIAogLyoKICAqIENvbW1hbmQgbGluZSBjb25maWd1cmF0aW9uLgpAQCAtMTk3LDYyICsxOTcsNjIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1ogICAgICAgICg4IDw8IDIwKSAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUgICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICAgICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IDB4RkY4MDAwMDAgfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVAkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IDB4RkY4MDAwMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QJMQogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgbWFpbiBGTEFTSCBiZSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1CeXRlcyk/IFRoaXMgbXVzdCBjb250YWluIFRFWFRfQkFTRSBmcm9tIGJvYXJkL2lkczgyNDcvY29uZmlnLm1rCiAgKiBUaGUgbWFpbiBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkIHRvICpDUzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFIDB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9TSVpFIDgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRSAweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgOAogCiAvKiBGbGFzaCBiYW5rIHNpemUgKGZvciBwcmVsaW1pbmFyeSBzZXR0aW5ncykKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRSBDRkdfRkxBU0gwX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFIENPTkZJR19TWVNfRkxBU0gwX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCiAvKiBFbnZpcm9ubWVudCBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrMHg2MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4NjAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAKQEAgLTI2Myw5ICsyNjMsOSBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQotI2RlZmluZSBDRkdfTkFORDBfQkFTRSAweEUxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDBfQkFTRSAweEUxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRSAgICAgMSAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UgICAgIDEgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgICAgICAgICAgICovCiAjZGVmaW5lIFNFQ1RPUlNJWkUgNTEyCiAjZGVmaW5lIE5BTkRfTk9fUkIKIApAQCAtMzI2LDQ3ICszMjYsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJKEhSQ1dfQlBTMDEgfCBIUkNXX0JNUyB8IEhSQ1dfSVNCMTAwIHwgSFJDV19BUFBDMTAgfCBIUkNXX01PRENLX0gxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShIUkNXX0JQUzAxIHwgSFJDV19CTVMgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQVBQQzEwIHwgSFJDV19NT0RDS19IMTAwMCkKIAogLyogbm8gc2xhdmVzIHNvIGp1c3QgZmlsbCB3aXRoIHplcm9zICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqCi0gKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENGR19TRFJBTV9CQVNFCisgKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRQogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTM4MCw5ICszODAsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zOTYsMjggKzM5NiwyOCBAQAogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQgICAoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgMAotI2RlZmluZSBDRkdfSElEMiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0kpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SICAgICAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IgICAgICAoU0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwfFNJVU1DUl9CQ1RMQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAgICAgIChTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8U0lVTUNSX0JDVExDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNZUENSIC0gU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0zNQpAQCAtNDI2LDEwICs0MjYsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtNDM5LDcgKzQzOSw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTQ0NywyMCArNDQ3LDIwIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgKDB4MDAwMDAwMjggfCBTQ0NSX0RGQlJHMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgKDB4MDAwMDAwMjggfCBTQ0NSX0RGQlJHMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNDc5LDYwICs0NzksNjAgQEAKIC8qIE1pbmltdW0gbWFzayB0byBzZXBhcmF0ZSBwcmVsaW1pbmFyeQogICogYWRkcmVzcyByYW5nZXMgZm9yIENTWzA6Ml0KICAqLwotI2RlZmluZSBDRkdfR0xPQkFMX1NEUkFNX0xJTUlUCSgzMjw8MjApCS8qIGxlc3MgdGhhbiAzMiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVAkoMzI8PDIwKQkvKiBsZXNzIHRoYW4gMzIgTUIgKi8KIAotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHg2NjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHg2NjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgZm9yIE1vZGUgUmVnaXN0ZXIgU2V0IChNUlMpIGNvbW1hbmQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAxMTAKIAogCiAvKiBCYW5rIDAgLSBGTEFTSAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSBCUnhfUFNfOCAgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAgKE1FR19UT19BTShDRkdfRkxBU0hfU0laRSkgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgIHxcCiAJCQkgT1J4R19TQ1lfNl9DTEsgICAgICAgICAgICAgICAgICkKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogLyogQmFuayAxIC0gTkFORCBGbGFzaAogKi8KLSNkZWZpbmUJQ0ZHX05BTkRfQkFTRQkJQ0ZHX05BTkQwX0JBU0UKLSNkZWZpbmUJQ0ZHX05BTkRfU0laRQkJMHg4MDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTkFORF9CQVNFCQlDT05GSUdfU1lTX05BTkQwX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19OQU5EX1NJWkUJCTB4ODAwMAogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfTkFORAkweDAwMDAzNgorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19OQU5ECTB4MDAwMDM2CiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX05BTkRfQkFTRSAmIEJSeF9CQV9NU0spIHwgQlJ4X1BTXzggfCBCUnhfTVNfR1BDTV9QIHwgQlJ4X1YgICkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19OQU5EX1NJWkUpIHwgQ0ZHX09SX1RJTUlOR19OQU5EICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfTkFORF9CQVNFICYgQlJ4X0JBX01TSykgfCBCUnhfUFNfOCB8IEJSeF9NU19HUENNX1AgfCBCUnhfViAgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0gIChQMlNaX1RPX0FNKENPTkZJR19TWVNfTkFORF9TSVpFKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX05BTkQgKQogI2VuZGlmCiAKIC8qIEJhbmsgMiAtIDYweCBidXMgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfUFNSVCAgICAgICAgMHgyMAotI2RlZmluZSBDRkdfTFNSVCAgICAgICAgMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQgICAgICAgIDB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUICAgICAgICAweDIwCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0gICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU18zMiAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCUNGR19PUjIKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCUNPTkZJR19TWVNfT1IyCiAKIAogLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzCiAqLwotI2RlZmluZSBDRkdfT1IyICAgICgofihDRkdfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjIgICAgKCh+KENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTkJCXxcCiAJCQkgT1J4U19OVU1SXzEyKQogCi0jZGVmaW5lIENGR19QU0RNUiAgKFBTRE1SX1NEQU1fQTE0X0lTX0E1IHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIgIChQU0RNUl9TREFNX0ExNF9JU19BNSB8XAogCQkJIFBTRE1SX0JTTUFfQTE1X0ExNyAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0ExMAkJfFwKIAkJCSBQU0RNUl9SRlJDXzVfQ0xLICAgICAgICAgICAgICAgfFwKQEAgLTU0Niw3ICs1NDYsNyBAQAogLyogQmFuayAzIC0gVUFSVAogKi8KIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTSAgKChDRkdfVUFSVF9CQVNFICYgQlJ4X0JBX01TSykgfCBCUnhfUFNfOCB8IEJSeF9NU19HUENNX1AgfCBCUnhfViAgKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTSAgKCgoLUNGR19VQVJUX1NJWkUpICYgT1J4R19BTV9NU0spIHwgT1J4R19DU05UIHwgT1J4R19TQ1lfMV9DTEsgfCBPUnhHX1RSTFggKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0gICgoQ09ORklHX1NZU19VQVJUX0JBU0UgJiBCUnhfQkFfTVNLKSB8IEJSeF9QU184IHwgQlJ4X01TX0dQQ01fUCB8IEJSeF9WICApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTSAgKCgoLUNPTkZJR19TWVNfVUFSVF9TSVpFKSAmIE9SeEdfQU1fTVNLKSB8IE9SeEdfQ1NOVCB8IE9SeEdfU0NZXzFfQ0xLIHwgT1J4R19UUkxYICkKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9JUDg2MC5oIGIvaW5jbHVkZS9jb25maWdzL0lQODYwLmgKaW5kZXggYzBiZjM2Ny4uYjljNTcxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0lQODYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0lQODYwLmgKQEAgLTUyLDcgKzUyLDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTc3LDE0ICs3NywxNCBAQAogI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KIAogCi0jIGRlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAotIyBkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQotIyBkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBYMjRDMTYJCSovCi0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIGJ5dGVzIG9mIGFkZHJlc3MJCSovCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBYMjRDMTYJCSovCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBieXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKQEAgLTExMSwyNyArMTExLDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNDEsNTAgKzE0MSw1MCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYxMDAwMDAwCS8qIE5vbi1zdGFuZGFyZCB2YWx1ZSEhCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMTAwMDAwMAkvKiBOb24tc3RhbmRhcmQgdmFsdWUhIQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDEwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MTAwMDAwMDAKICNpZmRlZglERUJVRwotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQogI2lmIDAgLyogbmVlZCBtb3JlIHNwYWNlIGZvciBJMkMgdGVzdHMgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQogI2VuZGlmCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyNAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjdW5kZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI3VuZGVmCUNPTkZJR19FTlZfSVNfSU5fTlZSQU0KQEAgLTIwNSw5ICsyMDUsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTgsMTAgKzIxOCwxMCBAQAogICogKzB4MDAwNAogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyOSw3ICsyMjksNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogKzB4MDAwMCA9PiAweDgwNjAwODAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0VBUkIgICB8IFNJVU1DUl9FQVJQMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9FQVJCICAgfCBTSVVNQ1JfRUFSUDAgfCBcCiAJCQkgU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9NTFJDMTApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0Nyw3ICsyNDcsNyBAQAogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqICsweDAyMDAgPT4gMHgwMEMyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKQEAgLTI1NSw3ICsyNTUsNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqICsweDAyNDAgPT4gMHgwMDgyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjY0LDcgKzI2NCw3IEBACiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgIQogICovCiAvKiArMHgwMjg2ID0+IHdhczogMHgwMDAwRDAwMCAqLwotI2RlZmluZSBDRkdfUExQUkNSCQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAogCQkoCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8CVwKIAkJCS8qUExQUkNSX0NTUkN8Ki8gUExQUkNSX0xQTV9OT1JNQUwgfAkJXAogCQkJUExQUkNSX0NTUiAgIHwgUExQUkNSX0xPTFJFIC8qfFBMUFJDUl9GSU9QRCovCVwKQEAgLTI3Nyw3ICsyNzcsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAJfCAgIFNDQ1JfVEJTCSAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMAl8ICAgU0NDUl9UQlMJICB8CVwKIAkJCSBTQ0NSX1JURElWCXwgICBTQ0NSX1JUU0VMCSAgfAlcCiAJCQkgLypTQ0NSX0NSUUVOfCovICAvKlNDQ1JfUFJRRU58Ki8JXAogCQkJIFNDQ1JfRUJERjAwCXwgICBTQ0NSX0RGU1lOQzAwIHwJXApAQCAtMjg5LDcgKzI4OSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qICsweDAyMjAgPT4gMHgwMEMzICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5NywyMCArMjk3LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qICsweDA5QzQgPT4gVElNRVA9MSAqLwotI2RlZmluZSBDRkdfUkNDUiAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSIDB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTURTIC0gUklTQyBNaWNyb2NvZGUgRGV2ZWxvcG1lbnQgU3VwcG9ydCBDb250cm9sIFJlZ2lzdGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNRFMgMAorI2RlZmluZSBDT05GSUdfU1lTX1JNRFMgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERVIgLSBEZWJ1ZyBFdmVudCBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTMyMiw5ICszMjIsOSBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkweEMzCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJMHhDMwogCi0jZGVmaW5lIENGR19NQU1SCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVIJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKgpAQCAtMzM3LDE4ICszMzcsMTggQEAKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwogLyogYWxsb3cgZm9yIG1heCA4IE1CIG9mIEZsYXNoICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV82X0NMSykKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV82X0NMSykKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQogLyogMTYgYml0LCBiYW5rIHZhbGlkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JQ0ZHX0JSMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JQ09ORklHX1NZU19CUjBfUFJFTElNCiAKIC8qCiAgKiBCUjIvT1IyIC0gU0RSQU0KQEAgLTM1OSw0NiArMzU5LDQ2IEBACiAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIFNEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX09SMgkJKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCi0jZGVmaW5lIENGR19CUjIJCSgoU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjIJCSgoU0RSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBCUjMvT1IzIC0gU1JBTSAoMTYgYml0KQogICovCiAjZGVmaW5lCVNSQU1fQkFTRQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19PUjMJCTB4RkZGMDAxMzAJCS8qIEJJL1NDWSA9IDUvVFJMWCAoaW50ZXJuYWwpICovCi0jZGVmaW5lIENGR19CUjMJCSgoU1JBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKLSNkZWZpbmUgU1JBTV9TSVpFCSgxICsgKH4oQ0ZHX09SMyAmIEJSX0JBX01TSykpKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQlDRkdfT1IzCQkJLyogTWFrZSBzdXJlIHRvIG1hcCBlYXJseSAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQlDRkdfQlIzCQkJLyogaW4gY2FzZSBpdCdzIHVzZWQgZm9yIEVOViAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMwkJMHhGRkYwMDEzMAkJLyogQkkvU0NZID0gNS9UUkxYIChpbnRlcm5hbCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjMJCSgoU1JBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgU1JBTV9TSVpFCSgxICsgKH4oQ09ORklHX1NZU19PUjMgJiBCUl9CQV9NU0spKSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IzCQkJLyogTWFrZSBzdXJlIHRvIG1hcCBlYXJseSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JQ09ORklHX1NZU19CUjMJCQkvKiBpbiBjYXNlIGl0J3MgdXNlZCBmb3IgRU5WICovCiAKIC8qCiAgKiBCUjQvT1I0IC0gQm9hcmQgQ29udHJvbCAmIFN0YXR1cyAoOCBiaXQpCiAgKi8KICNkZWZpbmUJQkNTUl9CQVNFCTB4RkMwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNAkJMHhGRkZGMDEyMAkJLyogQkkgKGludGVybmFsKSAqLwotI2RlZmluZSBDRkdfQlI0CQkoKEJDU1JfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjQJCTB4RkZGRjAxMjAJCS8qIEJJIChpbnRlcm5hbCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjQJCSgoQkNTUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQogCiAvKgogICogQlI1L09SNSAtIElQIFNsb3QgQS9CICgxNiBiaXQpCiAgKi8KICNkZWZpbmUJSVBfU0xPVF9CQVNFCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNQkJMHhGRTAwMDEwQwkJLyogU0VUQS9UUkxYL0JJLyBTQ1k9MCAoZXh0ZXJuYWwpICovCi0jZGVmaW5lIENGR19CUjUJCSgoSVBfU0xPVF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjUJCTB4RkUwMDAxMEMJCS8qIFNFVEEvVFJMWC9CSS8gU0NZPTAgKGV4dGVybmFsKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNQkJKChJUF9TTE9UX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQogCiAvKgogICogQlI2L09SNiAtIFZNRSBTVEQgICgxNiBiaXQpCiAgKi8KICNkZWZpbmUJVk1FX1NURF9CQVNFCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNgkJMHhGRjAwMDEwQwkJLyogU0VUQS9UUkxYL0JJL1NDWT0wICAoZXh0ZXJuYWwpICovCi0jZGVmaW5lIENGR19CUjYJCSgoVk1FX1NURF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjYJCTB4RkYwMDAxMEMJCS8qIFNFVEEvVFJMWC9CSS9TQ1k9MCAgKGV4dGVybmFsKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNgkJKChWTUVfU1REX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQogCiAvKgogICogQlI3L09SNyAtIFNIT1JUIEkvTyArIFJUQyArIElBQ0sgICgxNiBiaXQpCiAgKi8KICNkZWZpbmUgVk1FX1NIT1JUX0JBU0UJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfT1I3CQkweEZGMDAwMTBDCQkvKiBTRVRBL1RSTFgvQkkvIFNDWT0wIChleHRlcm5hbCkgKi8KLSNkZWZpbmUgQ0ZHX0JSNwkJKChWTUVfU0hPUlRfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I3CQkweEZGMDAwMTBDCQkvKiBTRVRBL1RSTFgvQkkvIFNDWT0wIChleHRlcm5hbCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjcJCSgoVk1FX1NIT1JUX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCb2FyZCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaW9uOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0lQSEFTRTQ1MzkuaCBiL2luY2x1ZGUvY29uZmlncy9JUEhBU0U0NTM5LmgKaW5kZXggMzFmYmYzMi4uM2NiNmNmNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0lQSEFTRTQ1MzkuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSVBIQVNFNDUzOS5oCkBAIC04MCwxMCArODAsMTAgQEAKICAqIC0gU2VsZWN0IGJ1cyBmb3IgYmQvYnVmZmVycyAoc2VlIDI4LTEzKQogICogLSBIYWxmIGR1cGxleAogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzMgfCBDTVhGQ1JfUkYzQ1NfTVNLIHwgQ01YRkNSX1RGM0NTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNCB8IENNWEZDUl9URjNDU19DTEsxNikKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMyB8IENNWEZDUl9SRjNDU19NU0sgfCBDTVhGQ1JfVEYzQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNCB8IENNWEZDUl9URjNDU19DTEsxNikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZgkvKiBDT05GSUdfRVRIRVJfT05fRkNDLCBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMTEwLDggKzExMCw4IEBACiAgKi8KICN1bmRlZiAgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KQEAgLTE1MiwzMCArMTUyLDMwIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCiAjZGVmaW5lIENPTkZJR19DTE9DS1NfSU5fTUhaCTEJLyogY2xvY2tzIHBhc3NlZCB0byBMaW51eCBpbiBNSHogKi8KIAkJCQkJLyogZm9yIHZlcnNpb25zIDwgMi40LjUtcHJlNQkgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4MDQ0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4MDQ0MDAwMDAKIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJMQkvKiBXZSBuZWVkIG1pc2NfaW5pdF9yKCkJKi8KIApAQCAtMTg0LDcwICsxODQsNzAgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uIChTZXR1cCBieSB0aGUKLSAqIHN0YXJ0dXAgY29kZSkuIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAuCisgKiBzdGFydHVwIGNvZGUpLiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMC4KICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKSAgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApICAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0laRQkoQ0ZHX01BWF9GTEFTSF9TRUNUICogMHgxMDAwMCkJLyogNCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TSVpFCShDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICogMHgxMDAwMCkJLyogNCBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKIC8qIEVudmlyb25tZW50IGluIEZMQVNILCB0aGVyZSBpcyBsaXR0bGUgc3BhY2UgbGVmdCBpbiBTZXJpYWwgRUVQUk9NICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgxMDAwMCkgLyogMi4gc2VjdG9yICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MTAwMDApIC8qIDIuIHNlY3RvciAqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgKCAoIEhSQ1dfQlBTMDEgfCBIUkNXX0VCTSApCQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSICggKCBIUkNXX0JQUzAxIHwgSFJDV19FQk0gKQkJfFwKIAkJCSAgKCBIUkNXX0wyQ1BDMTAgfCBIUkNXX0lTQjExMCApCXxcCiAJCQkgICggSFJDV19NTVIxMSB8IEhSQ1dfQVBQQzEwICkJCXxcCiAJCQkgICggSFJDV19DUzEwUEMwMSB8IEhSQ1dfTU9EQ0tfSDAxMDEgKQkgXAogCQkJKSAvKiAweDE0ODYzMjQ1ICovCiAKIC8qIG5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNSAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3IDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwIC8qIFdlIGtlZXAgb3JpZ2luYWwgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwIC8qIFdlIGtlZXAgb3JpZ2luYWwgdmFsdWUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMjYxLDkgKzI2MSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyICAgICAvKiBGb3IgTVBDODI2MCBDUFUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIgICAgIC8qIEZvciBNUEM4MjYwIENQVQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNSAgICAgIC8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1ICAgICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzMsMjkgKzI3MywyOSBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCiAJCQkgSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkoSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMgkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkoSElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyCQkJCQkgNS01CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwotI2RlZmluZSBDRkdfUk1SCQlSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJUk1SX0NTUkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24JCQkJCSA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUgkJMHhBMDFDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJMHhBMDFDMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24JCQkJIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCTBYNDIwNUMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJMFg0MjA1QzAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wJCQkJIDQtMzUKQEAgLTMwNCwxMCArMzA0LDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1B8U1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQKQogI2VuZGlmIC8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC0zMTcsNyArMzE3LDcgQEAKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCSA0LTQyCkBAIC0zMjUsMjAgKzMyNSwyMCBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbAkJCQkJIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW5zdXJlIERGQlJHIGlzIERpdmlkZSBieSAxNgogICovCi0jZGVmaW5lIENGR19TQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uCQkJCTEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNDksMTMgKzM0OSwxMyBAQAogICogIDEJNjB4CVNEUkFNCTY0IGJpdAlTRFJBTQogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spIHwgMHgwODAxKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkweEZGODAwODgyCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSB8IDB4MDA0MSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JMHhGODAwMkNEMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSB8IDB4MDgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCTB4RkY4MDA4ODIKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgfCAweDAwNDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkweEY4MDAyQ0QwCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SCTB4NDA0QTI0MUEKLSNkZWZpbmUgQ0ZHX01QVFBSCTB4MDAwMDc0MDAKLSNkZWZpbmUgQ0ZHX1BTUlQJMHgwMDAwMDAwNworI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCTB4NDA0QTI0MUEKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkweDAwMDA3NDAwCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkweDAwMDAwMDA3CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSVNQQU4uaCBiL2luY2x1ZGUvY29uZmlncy9JU1BBTi5oCmluZGV4IDhiNmYzY2UuLjZlYjQ2NmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9JU1BBTi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9JU1BBTi5oCkBAIC02OSwxNCArNjksMTQgQEAKIAogI2lmIENPTkZJR19FVEhFUl9JTkRFWCA9PSAzCiAKLSNkZWZpbmUgQ0ZHX1BIWV9BRERSCQkwCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNCB8IENNWEZDUl9URjNDU19DTEsxNikKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCQkoQ01YRkNSX0ZDMyB8IENNWEZDUl9SRjNDU19NU0sgfCBDTVhGQ1JfVEYzQ1NfTVNLKQorI2RlZmluZSBDT05GSUdfU1lTX1BIWV9BRERSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYzQ1NfQ0xLMTQgfCBDTVhGQ1JfVEYzQ1NfQ0xLMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJCShDTVhGQ1JfRkMzIHwgQ01YRkNSX1JGM0NTX01TSyB8IENNWEZDUl9URjNDU19NU0spCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfSU5ERVggPT0gMyAqLwogCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNkZWZpbmUgQ09ORklHX01JSQkJCQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19CSVRCQU5HTUlJCQkJLyogQml0LWJhbmcgTUlJIFBIWSBtYW5hZ2VtZW50CSovCkBAIC04NSwxOCArODUsMTggQEAKICAqLwogI2RlZmluZSBNRElPX1BPUlQJCTMJCS8qIFBvcnQgRCAqLwogCi0jZGVmaW5lIENGR19NRElPX1BJTgkJMHgwMDA0MDAwMAkvKiBQRDEzICovCi0jZGVmaW5lIENGR19NRENfUElOCQkweDAwMDgwMDAwCS8qIFBEMTIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRElPX1BJTgkJMHgwMDA0MDAwMAkvKiBQRDEzICovCisjZGVmaW5lIENPTkZJR19TWVNfTURDX1BJTgkJMHgwMDA4MDAwMAkvKiBQRDEyICovCiAKLSNkZWZpbmUgTURJT19BQ1RJVkUJCShpb3AtPnBkaXIgfD0gIENGR19NRElPX1BJTikKLSNkZWZpbmUgTURJT19UUklTVEFURQkJKGlvcC0+cGRpciAmPSB+Q0ZHX01ESU9fUElOKQotI2RlZmluZSBNRElPX1JFQUQJCSgoaW9wLT5wZGF0ICYgIENGR19NRElPX1BJTikgIT0gMCkKKyNkZWZpbmUgTURJT19BQ1RJVkUJCShpb3AtPnBkaXIgfD0gIENPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fVFJJU1RBVEUJCShpb3AtPnBkaXIgJj0gfkNPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fUkVBRAkJKChpb3AtPnBkYXQgJiAgQ09ORklHX1NZU19NRElPX1BJTikgIT0gMCkKIAotI2RlZmluZSBNRElPKGJpdCkJCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDRkdfTURJT19QSU47IFwKLQkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01ESU9fUElOCisjZGVmaW5lIE1ESU8oYml0KQkJaWYoYml0KSBpb3AtPnBkYXQgfD0gIENPTkZJR19TWVNfTURJT19QSU47IFwKKwkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRElPX1BJTgogCi0jZGVmaW5lIE1EQyhiaXQpCQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01EQ19QSU47IFwKLQkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01EQ19QSU4KKyNkZWZpbmUgTURDKGJpdCkJCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDT05GSUdfU1lTX01EQ19QSU47IFwKKwkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRENfUElOCiAKICNkZWZpbmUgTUlJREVMQVkJCXVkZWxheSgxKQogCkBAIC0xMzgsMjUgKzEzOCwyNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qICN1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDNCMDAwMDAJLyogMSAuLi4gNTkgTUIgaW4gU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDNCMDAwMDAJLyogMSAuLi4gNTkgTUIgaW4gU0RSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJCS8qIFdlIG5lZWQgbWlzY19pbml0X3IoKQkqLwogCkBAIC0xNjUsNzAgKzE2NSw3MCBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICAgKi8KICNpZmRlZiBDT05GSUdfQlpJUDIKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkgICAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjggS0IgZm9yIG1hbGxvYygpICAqLwogI2VuZGlmIC8qIENPTkZJR19CWklQMiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE0MgkJLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggbnVtIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE0MgkJLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAvKiBFbnZpcm9ubWVudCBpcyBpbiBmbGFzaCwgdGhlcmUgaXMgbGl0dGxlIHNwYWNlIGxlZnQgaW4gU2VyaWFsIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJCS8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19FTlZfQUREUiArIENPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIElmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBJZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwogLyogMHgxNjg2QjI0NSAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgKEhSQ1dfRUJNICAgICAgfCBIUkNXX0JQUzAxICAgICAgIHwgSFJDV19DSVAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUiAoSFJDV19FQk0gICAgICB8IEhSQ1dfQlBTMDEgICAgICAgfCBIUkNXX0NJUCAgICB8XAogCQkJIEhSQ1dfTDJDUEMxMCAgfCBIUkNXX0lTQjExMCAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBIUkNXX0JNUyAgICAgIHwgSFJDV19NTVIxMSAgICAgICB8IEhSQ1dfQVBQQzEwIHxcCiAJCQkgSFJDV19DUzEwUEMwMSB8IEhSQ1dfTU9EQ0tfSDAxMDEgICAgICAgICAgICAgICAgXAogCQkJKQogLyogTm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMyAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjBGMDAwMDAKLSNpZmRlZiBDRkdfUkVWX0IKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUgkweEZGMDAwMDAwCi0jZW5kaWYgLyogQ0ZHX1JFVl9CICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMEYwMDAwMAorI2lmZGVmIENPTkZJR19TWVNfUkVWX0IKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX0lNTVIJMHhGRjAwMDAwMAorI2VuZGlmIC8qIENPTkZJR19TWVNfUkVWX0IgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC0yNDEsNyArMjQxLDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBISUR4IC0gSGFyZHdhcmUgSW1wbGVtZW50YXRpb24tZGVwZW5kZW50IFJlZ2lzdGVycwkJMi0xMQpAQCAtMjUwLDI5ICsyNTAsMjkgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCiAJCQkJSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkoSElEMF9JQ0V8SElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgkJCQkJIDUtNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUgkJCVJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJUk1SX0NTUkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24JCQkJCSA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUgkJCTB4QTAxQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCQkweEEwMUMwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJCTB4NDIyNTAwMDAvKiAweDQyMDVDMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDQyMjUwMDAwLyogMHg0MjA1QzAwMCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wJCQkJIDQtMzUKQEAgLTI4MSwxMCArMjgxLDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCQlTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCQlTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtMjk0LDcgKzI5NCw3IEBACiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCSA0LTQyCkBAIC0zMDIsMjAgKzMwMiwyMCBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sCQkJCQkgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnN1cmUgREZCUkcgaXMgRGl2aWRlIGJ5IDE2CiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJCVNDQ1JfREZCUkcwMQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCVNDQ1JfREZCUkcwMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24JCQkJMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzI2LDMxICszMjYsMzEgQEAKICAqICAxCTYweAlTRFJBTQk2NCBiaXQgICAgICAgICAgICAgICAgICAgICAgICAgIFNEUkFNCiAgKiAgMglMb2NhbAlTRFJBTQkzMiBiaXQJICAgICAgICAgICAgICAgICAgICAgICAgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfVVNFX0ZJUk1XQVJFCS8qIElmIGRlZmluZWQgLSBkbyBub3QgaW5pdGlhbGlzZSBtZW1vcnkKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfRklSTVdBUkUJLyogSWYgZGVmaW5lZCAtIGRvIG5vdCBpbml0aWFsaXNlIG1lbW9yeQogCQkJCSAgIGNvbnRyb2xsZXIsIHJlbHkgb24gaW5pdGlhbGlzYXRpb24KIAkJCQkgICBwZXJmb3JtZWQgYnkgdGhlIEludGVycGhhc2UgYm9vdCBmaXJtd2FyZS4KIAkJCQkgKi8KIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRTAwMDg4MgotI2lmZGVmIENGR19SRVZfQgotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgQlJ4X1BTXzggIHwgQlJ4X1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhGRTAwMDg4MgorI2lmZGVmIENPTkZJR19TWVNfUkVWX0IKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJ4X1BTXzggIHwgQlJ4X1YpCiAjZWxzZSAgLyogUmV2LiBEICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCUnhfUFNfMTYgfCBCUnhfVikKLSNlbmRpZiAvKiBDRkdfUkVWX0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJ4X1BTXzE2IHwgQlJ4X1YpCisjZW5kaWYgLyogQ09ORklHX1NZU19SRVZfQiAqLwogCi0jZGVmaW5lIENGR19NUFRQUgkJMHg3RjAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4N0YwMAogCiAvKiBQbGVhc2Ugbm90ZSB0aGF0IDYweCBTRFJBTSBNVVNUIHN0YXJ0IGF0IDAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzYweF9CUgkJMHgwMDAwMDA0MQotI2RlZmluZSBDRkdfNjB4X09SCQkweEYwMDAyQ0QwCi0jZGVmaW5lIENGR19QU0RNUgkJMHgwMDQ5OTI5QQotI2RlZmluZSBDRkdfUFNSVAkJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU182MHhfQlIJCTB4MDAwMDAwNDEKKyNkZWZpbmUgQ09ORklHX1NZU182MHhfT1IJCTB4RjAwMDJDRDAKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkJMHgwMDQ5OTI5QQorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJCTB4MDcKIAotI2RlZmluZSBDRkdfTFNEUkFNX0JBU0UJCTB4RjcwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xPQ19CUgkJMHgwMDAwMTg2MQotI2RlZmluZSBDRkdfTE9DX09SCQkweEZGODAzMjgwCi0jZGVmaW5lIENGR19MU0RNUgkJMHg4Mjg1QTU1MgotI2RlZmluZSBDRkdfTFNSVAkJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0xTRFJBTV9CQVNFCQkweEY3MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9DX0JSCQkweDAwMDAxODYxCisjZGVmaW5lIENPTkZJR19TWVNfTE9DX09SCQkweEZGODAzMjgwCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVIJCTB4ODI4NUE1NTIKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUCQkweDA3CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSVZNTDI0LmggYi9pbmNsdWRlL2NvbmZpZ3MvSVZNTDI0LmgKaW5kZXggNmE0MjJjOC4uY2QxMDBkZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0lWTUwyNC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9JVk1MMjQuaApAQCAtNjYsNyArNjYsNyBAQAogCQkJCSJuZnNhZGRycz0xMC4wLjAuOTk6MTAuMC4wLjIiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTk2LDM2ICs5NiwzNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTVNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLworI2RlZmluZQlDT05GSUdfU1lTX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLwogCi0jZGVmaW5lIENGR19QQl8xMlZfRU5BQkxFCTB4MDAwMDIwMDAJCS8qIFBCIDE4CSovCi0jZGVmaW5lIENGR19QQl9JTE9DS19TV0lUQ0gJMHgwMDAwNDAwMAkJLyogUEIgMTcJKi8KLSNkZWZpbmUgQ0ZHX1BCX1NEUkFNX0NMS0UJMHgwMDAwODAwMAkJLyogUEIgMTYJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9QT1dFUkRPV04JMHgwMDAxMDAwMAkJLyogUEIgMTUJKi8KLSNkZWZpbmUgQ0ZHX1BCX0lERV9NT1RPUgkweDAwMDIwMDAwCQkvKiBQQiAxNAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCXzEyVl9FTkFCTEUJMHgwMDAwMjAwMAkJLyogUEIgMTgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9JTE9DS19TV0lUQ0gJMHgwMDAwNDAwMAkJLyogUEIgMTcJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9TRFJBTV9DTEtFCTB4MDAwMDgwMDAJCS8qIFBCIDE2CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX1BPV0VSRE9XTgkweDAwMDEwMDAwCQkvKiBQQiAxNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0lERV9NT1RPUgkweDAwMDIwMDAwCQkvKiBQQiAxNAkqLwogCi0jZGVmaW5lIENGR19QQ19FVEhfUkVTRVQJKCh1c2hvcnQpMHgwMDEwKQkvKiBQQyAxMQkqLwotI2RlZmluZSBDRkdfUENfSURFX1JFU0VUCSgodXNob3J0KTB4MDAyMCkJLyogUEMgMTAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ19FVEhfUkVTRVQJKCh1c2hvcnQpMHgwMDEwKQkvKiBQQyAxMQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX0lERV9SRVNFVAkoKHVzaG9ydCkweDAwMjApCS8qIFBDIDEwCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMzUsNTQgKzEzNSw1NCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwIC8qIHdhczogMHhGRjAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAgLyogd2FzOiAweEZGMDAwMDAwICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8xNk0pCi0jIGRlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjIGRlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8zMk0pCi0jIGRlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MzAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjIGRlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF82NE0pCi0jIGRlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MzAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjIGRlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCiAjaWZkZWYJREVCVUcKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4N0EwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE5MCw5ICsxOTAsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDQsMTggKzIwNCwxOCBAQAogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQogCiAjIGlmIGRlZmluZWQgKENPTkZJR19JVk1MMjRfMTZNKQotIyAgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyMgIGRlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjIGVsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8zMk0pCi0jICBkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorIyAgZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUCkKICMgZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNTDI0XzY0TSkKLSMgIGRlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjICBkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dQKQogIyBlbmRpZgogCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjI1LDIxICsyMjUsMjEgQEAKICAqLwogLyogRUFSQiwgREJHQyBhbmQgREJQQyBhcmUgaW5pdGlhbGlzZWQgYnkgdGhlIEhDVyAqLwogLyogPT4gMHgwMDAwMDBDMCAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfQlNDIHwgU0lVTUNSX0dCNUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfQlNDIHwgU0lVTUNSX0dCNUUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNDgsNyArMjQ4LDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0LCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciAhCiAgKi8KIC8qIDB4MDBCMEMwQzAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKAkoMTEgPDwgUExQUkNSX01GX1NISUZUKSB8CQkJXAogCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgLypQTFBSQ1JfVE1JU1R8Ki8JXAogCQkJLypQTFBSQ1JfQ1NSQ3wqLyBQTFBSQ1JfTFBNX05PUk1BTCB8CQlcCkBAIC0yNjMsNyArMjYzLDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIC8qIDB4MDE4MDAwMTQgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDEJfCAvKlNDQ1JfVEJTfCovCQlcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMQl8IC8qU0NDUl9UQlN8Ki8JCVwKIAkJCSBTQ0NSX1JURElWCXwgICBTQ0NSX1JUU0VMCSAgfAlcCiAJCQkgLypTQ0NSX0NSUUVOfCovICAvKlNDQ1JfUFJRRU58Ki8JXAogCQkJIFNDQ1JfRUJERjAwCXwgICBTQ0NSX0RGU1lOQzAwIHwJXApAQCAtMjc2LDcgKzI3Niw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qIDB4MDBDMyAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yODQsMzQgKzI4NCwzNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiBUSU1FUD0yICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNRFMgLSBSSVNDIE1pY3JvY29kZSBEZXZlbG9wbWVudCBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1EUyAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1EUyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBJbnRlcnJ1cHQgTGV2ZWxzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMzIwLDIzICszMjAsMjMgQEAKICNkZWZpbmUgQ09ORklHX0lERV84eHhfRElSRUNUCTEJLyogUENNQ0lBIGludGVyZmFjZSByZXF1aXJlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBUaGUgSVZNTDI0IGhhcyBvbmx5IDEgSURFIGJ1cyovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogICAgLi4uIGFuZCBvbmx5IDEgSURFIGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogVGhlIElWTUwyNCBoYXMgb25seSAxIElERSBidXMqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiAgICAuLi4gYW5kIG9ubHkgMSBJREUgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGRTEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI3VuZGVmCUNGR19BVEFfSURFMV9PRkZTRVQJCS8qIG9ubHkgb25lIElERSBidXMgYXZhaWxhYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEZFMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI3VuZGVmCUNPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCQkvKiBvbmx5IG9uZSBJREUgYnVzIGF2YWlsYWJsZQkqLwogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDgwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwODAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzUxLDE4ICszNTEsMTggQEAKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwogLyogRVBST01zIGFyZSA1MTJrYiAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4RkZGODAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9TQ1lfNV9DTEsgfCBPUl9FSFRSKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfU0NZXzVfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCSggQ0ZHX1JFTUFQX09SX0FNIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IFwKLQkJCQlDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCi0JCQkJQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKCBDT05GSUdfU1lTX1JFTUFQX09SX0FNIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IFwKKwkJCQlDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCisJCQkJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAvKiAxNiBiaXQsIGJhbmsgdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qCiAgKiBCUjEvT1IxIC0gRUxJQyBTQUNDTyBiYW5rICBAIDB4RkUwMDAwMDAKQEAgLTM3Myw5ICszNzMsOSBAQAogI2RlZmluZSBFTElDX1NBQ0NPX09SX0FNCTB4RkZGRjgwMDAKICNkZWZpbmUgRUxJQ19TQUNDT19USU1JTkcJKE9SX1NDWV8yX0NMSyB8IE9SX1RSTFggfCBPUl9FSFRSKQogCi0jZGVmaW5lIENGR19PUjEJKEVMSUNfU0FDQ09fT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxCShFTElDX1NBQ0NPX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJRUxJQ19TQUNDT19USU1JTkcpCi0jZGVmaW5lIENGR19CUjEJKChFTElDX1NBQ0NPX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMQkoKEVMSUNfU0FDQ09fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKIC8qCiAgKiBCUjIvT1IyIC0gRUxJQyBFUElDIGJhbmsgICBAIDB4RkUwMDgwMDAKQEAgLTM4Niw5ICszODYsOSBAQAogI2RlZmluZSBFTElDX0VQSUNfT1JfQU0JCTB4RkZGRjgwMDAKICNkZWZpbmUgRUxJQ19FUElDX1RJTUlORwkoT1JfU0NZXzJfQ0xLIHwgT1JfVFJMWCB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMiAoRUxJQ19FUElDX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMiAoRUxJQ19FUElDX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAogCQkJRUxJQ19FUElDX1RJTUlORykKLSNkZWZpbmUgQ0ZHX0JSMgkoKEVMSUNfRVBJQ19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjIJKChFTElDX0VQSUNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKIC8qCiAgKiBCUjMvT1IzOiBTRFJBTQpAQCAtNDAxLDggKzQwMSw4IEBACiAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIFNEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfRzVMUyB8IFNEUkFNX1RJTUlORyApCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCShTRFJBTV9QUkVMSU1fT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0c1TFMgfCBTRFJBTV9USU1JTkcgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogCiAvKgogICogQlI0L09SNCAtIEhETEMgQWRkcmVzcwpAQCAtNDEzLDggKzQxMyw4IEBACiAjZGVmaW5lIEhETENfQUREUl9PUl9BTQkJMHhGRkZGODAwMAogI2RlZmluZSBIRExDX0FERFJfVElNSU5HCU9SX1NDWV8xX0NMSwogCi0jZGVmaW5lIENGR19PUjQJKEhETENfQUREUl9PUl9BTSB8IE9SX0JJIHwgSERMQ19BRERSX1RJTUlORykKLSNkZWZpbmUgQ0ZHX0JSNAkoKEhETENfQUREUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9XUCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNAkoSERMQ19BRERSX09SX0FNIHwgT1JfQkkgfCBIRExDX0FERFJfVElNSU5HKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNAkoKEhETENfQUREUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9XUCB8IEJSX1YgKQogCiAvKgogICogQlI1L09SNTogU0hBUkMgQURTUC0yMTY1TApAQCAtNDI1LDI5ICs0MjUsMjkgQEAKICNkZWZpbmUgU0hBUkNfT1JfQU0JCTB4RkZDMDAwMDAKICNkZWZpbmUgU0hBUkNfVElNSU5HCQlPUl9TQ1lfMF9DTEsKIAotI2RlZmluZSBDRkdfT1I1CShTSEFSQ19PUl9BTSB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBTSEFSQ19USU1JTkcgKQotI2RlZmluZSBDRkdfQlI1CSgoU0hBUkNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjUJKFNIQVJDX09SX0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFNIQVJDX1RJTUlORyApCisjZGVmaW5lIENPTkZJR19TWVNfQlI1CSgoU0hBUkNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUJNUl9QVEIJMjA0CisjZGVmaW5lIENPTkZJR19TWVNfTUJNUl9QVEIJMjA0CiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8xNk0pCi0jIGRlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjIGRlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF8zMk0pCi0jIGRlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjIGRlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTUwyNF82NE0pCi0jIGRlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KICNlbmRpZgogCiAKQEAgLTQ1NywxNyArNDU3LDE3IEBACiAKICNpZiBkZWZpbmVkIChDT05GSUdfSVZNTDI0XzE2TSkKICAvKiA4IGNvbHVtbiBTRFJBTSAqLwotIyBkZWZpbmUgQ0ZHX01CTVJfOENPTAkoKENGR19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAorIyBkZWZpbmUgQ09ORklHX1NZU19NQk1SXzhDT0wJKChDT05GSUdfU1lTX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSAgfCBcCiAJCQkgTUJNUl9BTUJfVFlQRV8wIHwgTUJNUl9EU0JfMV9DWUNMIHwgTUJNUl9HMENMQl9BMTEgfAlcCiAJCQkgTUJNUl9STEZCXzFYCSB8IE1CTVJfV0xGQl8xWAkgICB8IE1CTVJfVExGQl80WCkKICNlbGlmIGRlZmluZWQgKENPTkZJR19JVk1MMjRfMzJNKQogLyogMTI4IE1CaXQgU0RSQU0gKi8KLSMgZGVmaW5lIENGR19NQk1SXzhDT0wJKChDRkdfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKKyMgZGVmaW5lIENPTkZJR19TWVNfTUJNUl84Q09MCSgoQ09ORklHX1NZU19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAogCQkJIE1CTVJfQU1CX1RZUEVfMSB8IE1CTVJfRFNCXzFfQ1lDTCB8IE1CTVJfRzBDTEJfQTEwIHwJXAogCQkJIE1CTVJfUkxGQl8xWAkgfCBNQk1SX1dMRkJfMVgJICAgfCBNQk1SX1RMRkJfNFgpCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNTDI0XzY0TSkKIC8qIDEyOCBNQml0IFNEUkFNICovCi0jIGRlZmluZSBDRkdfTUJNUl84Q09MCSgoQ0ZHX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSAgfCBcCisjIGRlZmluZSBDT05GSUdfU1lTX01CTVJfOENPTAkoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKIAkJCSBNQk1SX0FNQl9UWVBFXzEgfCBNQk1SX0RTQl8xX0NZQ0wgfCBNQk1SX0cwQ0xCX0ExMCB8CVwKIAkJCSBNQk1SX1JMRkJfMVgJIHwgTUJNUl9XTEZCXzFYCSAgIHwgTUJNUl9UTEZCXzRYKQogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvSVZNUzguaCBiL2luY2x1ZGUvY29uZmlncy9JVk1TOC5oCmluZGV4IDU0NDc3ZWUuLjEyNWNiNGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9JVk1TOC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9JVk1TOC5oCkBAIC02Niw3ICs2Niw3IEBACiAJCQkJIm5mc2FkZHJzPTEwLjAuMC45OToxMC4wLjAuMiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtOTUsMzQgKzk1LDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCiAKLSNkZWZpbmUgQ0ZHX1BCX1NEUkFNX0NMS0UJMHgwMDAwODAwMAkJLyogUEIgMTYJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9QT1dFUkRPV04JMHgwMDAxMDAwMAkJLyogUEIgMTUJKi8KLSNkZWZpbmUgQ0ZHX1BCX0lERV9NT1RPUgkweDAwMDIwMDAwCQkvKiBQQiAxNAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX1NEUkFNX0NMS0UJMHgwMDAwODAwMAkJLyogUEIgMTYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOCTB4MDAwMTAwMDAJCS8qIFBCIDE1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfSURFX01PVE9SCTB4MDAwMjAwMDAJCS8qIFBCIDE0CSovCiAKLSNkZWZpbmUgQ0ZHX1BDX0VUSF9SRVNFVAkoKHVzaG9ydCkweDAwMTApCS8qIFBDIDExCSovCi0jZGVmaW5lIENGR19QQ19JREVfUkVTRVQJKCh1c2hvcnQpMHgwMDIwKQkvKiBQQyAxMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX0VUSF9SRVNFVAkoKHVzaG9ydCkweDAwMTApCS8qIFBDIDExCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENfSURFX1JFU0VUCSgodXNob3J0KTB4MDAyMCkJLyogUEMgMTAJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEzMiw1MyArMTMyLDUzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAgLyogd2FzOiAweEZGMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMCAvKiB3YXM6IDB4RkYwMDAwMDAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCiAjaWYgZGVmaW5lZCAoQ09ORklHX0lWTVM4XzE2TSkKLSMgZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyMgZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfMzJNKQotIyBkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworIyBkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KICNlbGlmIGRlZmluZWQgKENPTkZJR19JVk1TOF82NE0pCi0jIGRlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MzAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjIGRlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCiAjaWZkZWYJREVCVUcKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4N0EwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE4Niw5ICsxODYsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTksMTcgKzE5OSwxNyBAQAogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCiAjIGlmIGRlZmluZWQgKENPTkZJR19JVk1TOF8xNk0pCi0jICAgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyMgICBkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogIyAgZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfMzJNKQotIyAgIGRlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjICAgZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUCkKICMgIGVsaWYgZGVmaW5lZCAoQ09ORklHX0lWTVM4XzY0TSkKLSMgICBkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorIyAgIGRlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1ApCiAjICBlbmRpZgogI2Vsc2UKLSMgZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyMgZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE5LDIxICsyMTksMjEgQEAKICAqLwogLyogRUFSQiwgREJHQyBhbmQgREJQQyBhcmUgaW5pdGlhbGlzZWQgYnkgdGhlIEhDVyAqLwogLyogPT4gMHgwMDAwMDBDMCAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfQlNDIHwgU0lVTUNSX0dCNUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfQlNDIHwgU0lVTUNSX0dCNUUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNDIsNyArMjQyLDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0LCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciAhCiAgKi8KIC8qIDB4MDBCMEMwQzAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKAkoMTEgPDwgUExQUkNSX01GX1NISUZUKSB8CQkJXAogCQkJUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgLypQTFBSQ1JfVE1JU1R8Ki8JXAogCQkJLypQTFBSQ1JfQ1NSQ3wqLyBQTFBSQ1JfTFBNX05PUk1BTCB8CQlcCkBAIC0yNTcsNyArMjU3LDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIC8qIDB4MDE4MDAwMTQgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDEJfCAvKlNDQ1JfVEJTfCovCQlcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMQl8IC8qU0NDUl9UQlN8Ki8JCVwKIAkJCSBTQ0NSX1JURElWCXwgICBTQ0NSX1JUU0VMCSAgfAlcCiAJCQkgLypTQ0NSX0NSUUVOfCovICAvKlNDQ1JfUFJRRU58Ki8JXAogCQkJIFNDQ1JfRUJERjAwCXwgICBTQ0NSX0RGU1lOQzAwIHwJXApAQCAtMjcwLDcgKzI3MCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qIDB4MDBDMyAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzgsMzQgKzI3OCwzNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiBUSU1FUD0yICovCi0jZGVmaW5lIENGR19SQ0NSIDB4MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgMHgwMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNRFMgLSBSSVNDIE1pY3JvY29kZSBEZXZlbG9wbWVudCBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1EUyAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1EUyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBJbnRlcnJ1cHQgTGV2ZWxzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQJMTMJLyogU0lVX0xFVkVMNgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZgpAQCAtMzE0LDIzICszMTQsMjMgQEAKICNkZWZpbmUgQ09ORklHX0lERV84eHhfRElSRUNUCTEJLyogUENNQ0lBIGludGVyZmFjZSByZXF1aXJlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBUaGUgSVZNUzggaGFzIG9ubHkgMSBJREUgYnVzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogICAgLi4uIGFuZCBvbmx5IDEgSURFIGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogVGhlIElWTVM4IGhhcyBvbmx5IDEgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiAgICAuLi4gYW5kIG9ubHkgMSBJREUgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGRTEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI3VuZGVmCUNGR19BVEFfSURFMV9PRkZTRVQJCS8qIG9ubHkgb25lIElERSBidXMgYXZhaWxhYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEZFMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI3VuZGVmCUNPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCQkvKiBvbmx5IG9uZSBJREUgYnVzIGF2YWlsYWJsZQkqLwogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDgwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwODAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzQ1LDE3ICszNDUsMTcgQEAKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwogLyogRVBST01zIGFyZSA1MTJrYiAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4RkZGODAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICSgvKiBPUl9DU05UX1NBTSB8ICovIE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICSgvKiBPUl9DU05UX1NBTSB8ICovIE9SX0FDU19ESVY0IHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKIC8qIDE2IGJpdCwgYmFuayB2YWxpZCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKIAogLyoKICAqIEJSMS9PUjEgLSBFTElDIFNBQ0NPIGJhbmsgIEAgMHhGRTAwMDAwMApAQCAtMzY2LDggKzM2Niw4IEBACiAjZGVmaW5lIEVMSUNfU0FDQ09fT1JfQU0JMHhGRkZGODAwMAogI2RlZmluZSBFTElDX1NBQ0NPX1RJTUlORwkweDAwMDAwRjI2CiAKLSNkZWZpbmUgQ0ZHX09SMQkoRUxJQ19TQUNDT19PUl9BTSB8IEVMSUNfU0FDQ09fVElNSU5HKQotI2RlZmluZSBDRkdfQlIxCSgoRUxJQ19TQUNDT19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjEJKEVMSUNfU0FDQ09fT1JfQU0gfCBFTElDX1NBQ0NPX1RJTUlORykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjEJKChFTElDX1NBQ0NPX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAvKgogICogQlIyL09SMiAtIEVMSUMgRVBJQyBiYW5rICAgQCAweEZFMDA4MDAwCkBAIC0zNzgsOCArMzc4LDggQEAKICNkZWZpbmUgRUxJQ19FUElDX09SX0FNCQkweEZGRkY4MDAwCiAjZGVmaW5lIEVMSUNfRVBJQ19USU1JTkcJMHgwMDAwMEYyNgogCi0jZGVmaW5lIENGR19PUjIgKEVMSUNfRVBJQ19PUl9BTSB8IEVMSUNfRVBJQ19USU1JTkcpCi0jZGVmaW5lIENGR19CUjIJKChFTElDX0VQSUNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyIChFTElDX0VQSUNfT1JfQU0gfCBFTElDX0VQSUNfVElNSU5HKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMgkoKEVMSUNfRVBJQ19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKIAogLyoKICAqIEJSMy9PUjM6IFNEUkFNCkBAIC0zOTIsOCArMzkyLDggQEAKIAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgU0RSQU0gKi8KIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfViApCiAKIC8qCiAgKiBCUjQvT1I0OiBub3QgdXNlZApAQCAtNDA4LDI4ICs0MDgsMjggQEAKICNkZWZpbmUgU0hBUkNfT1JfQU0JCTB4RkZDMDAwMDAKICNkZWZpbmUgU0hBUkNfVElNSU5HCQkweDAwMDAwNzAwCiAKLSNkZWZpbmUgQ0ZHX09SNQkoU0hBUkNfT1JfQU0gfCBTSEFSQ19USU1JTkcgKQotI2RlZmluZSBDRkdfQlI1CSgoU0hBUkNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjUJKFNIQVJDX09SX0FNIHwgU0hBUkNfVElNSU5HICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjUJKChTSEFSQ19CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQk1SX1BUQgkyMDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SX1BUQgkyMDQKIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCiAjaWYgZGVmaW5lZCAoQ09ORklHX0lWTVM4XzE2TSkKLSAjZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfMzJNKQotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfNjRNKQotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogI2VuZGlmCiAKIApAQCAtNDM5LDE3ICs0MzksMTcgQEAKIAogI2lmIGRlZmluZWQgKENPTkZJR19JVk1TOF8xNk0pCiAgLyogOCBjb2x1bW4gU0RSQU0gKi8KLSMgZGVmaW5lIENGR19NQk1SXzhDT0wJKChDRkdfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKKyMgZGVmaW5lIENPTkZJR19TWVNfTUJNUl84Q09MCSgoQ09ORklHX1NZU19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAogCQkJIE1CTVJfQU1CX1RZUEVfMCB8IE1CTVJfRFNCXzFfQ1lDTCB8IE1CTVJfRzBDTEJfQTExIHwJXAogCQkJIE1CTVJfUkxGQl8xWAkgfCBNQk1SX1dMRkJfMVgJICAgfCBNQk1SX1RMRkJfNFgpCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfSVZNUzhfMzJNKQogLyogMTI4IE1CaXQgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01CTVJfOENPTAkoKENGR19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01CTVJfOENPTAkoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKIAkJCSBNQk1SX0FNQl9UWVBFXzEgfCBNQk1SX0RTQl8xX0NZQ0wgfCBNQk1SX0cwQ0xCX0ExMCB8CVwKIAkJCSBNQk1SX1JMRkJfMVgJIHwgTUJNUl9XTEZCXzFYCSAgIHwgTUJNUl9UTEZCXzRYKQogI2VsaWYgZGVmaW5lZCAoQ09ORklHX0lWTVM4XzY0TSkKIC8qIDEyOCBNQml0IFNEUkFNICovCi0jZGVmaW5lIENGR19NQk1SXzhDT0wJKChDRkdfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SXzhDT0wJKChDT05GSUdfU1lTX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSAgfCBcCiAJCQkgTUJNUl9BTUJfVFlQRV8xIHwgTUJNUl9EU0JfMV9DWUNMIHwgTUJNUl9HMENMQl9BMTAgfAlcCiAJCQkgTUJNUl9STEZCXzFYCSB8IE1CTVJfV0xGQl8xWAkgICB8IE1CTVJfVExGQl80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0ljZUN1YmUuaCBiL2luY2x1ZGUvY29uZmlncy9JY2VDdWJlLmgKaW5kZXggYTcwNWFjMS4uZjhjOTRlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL0ljZUN1YmUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSWNlQ3ViZS5oCkBAIC0zMiw3ICszMiw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1eHh4CQkxCS8qIFRoaXMgaXMgYW4gTVBDNXh4eCBDUFUgKi8KICNkZWZpbmUgQ09ORklHX0lDRUNVQkUJCTEJLyogLi4uIG9uIEljZUN1YmUgYm9hcmQgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTQ0LDcgKzQ0LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAKICNpZmRlZiBDT05GSUdfTVBDNTIwMAkvKiBNUEM1MTAwIFBDSSBpcyBub3Qgc3VwcG9ydGVkIHlldC4gKi8KQEAgLTY5LDEyICs2OSwxMiBAQAogI2RlZmluZSBDT05GSUdfUENJX0lPX1NJWkUJMHgwMTAwMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1hMQl9QSVBFTElOSU5HCTEKKyNkZWZpbmUgQ09ORklHX1NZU19YTEJfUElQRUxJTklORwkxCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19NSUkJCTEKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNkZWZpbmUgQ09ORklHX05TODM4MlgJCTEKIAogI2Vsc2UKQEAgLTg5LDEyICs4OSwxMiBAQAogLyogVVNCICovCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCi0jZGVmaW5lIENGR19PSENJX0JFX0NPTlRST0xMRVIKLSN1bmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCU1QQzVYWFhfVVNCCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJIm1wYzUyMDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfQkVfQ09OVFJPTExFUgorI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJTVBDNVhYWF9VU0IKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJIm1wYzUyMDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKQEAgLTEyNywxNSArMTI3LDE1IEBACiAKIAogI2lmIChURVhUX0JBU0UgPT0gMHhGRjAwMDAwMCkJCS8qIEJvb3QgbG93IHdpdGggMTYgTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJICAgICAgICAxCi0jICAgZGVmaW5lIENGR19MT1dCT09UMTYJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJICAgICAgICAxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDE2CTEKICNlbmRpZgogI2lmIChURVhUX0JBU0UgPT0gMHhGRjgwMDAwMCkJCS8qIEJvb3QgbG93IHdpdGggIDggTUIgRmxhc2ggKi8KICNpZiBkZWZpbmVkKENPTkZJR19MSVRFNTIwMEIpCi0jICAgZXJyb3IgQ0ZHX0xPV0JPT1QwOCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgTGl0ZTUyMDBCCisjICAgZXJyb3IgQ09ORklHX1NZU19MT1dCT09UMDggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIExpdGU1MjAwQgogI2Vsc2UKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJICAgICAgICAxCi0jICAgZGVmaW5lIENGR19MT1dCT09UMDgJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJICAgICAgICAxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDA4CTEKICNlbmRpZgogI2VuZGlmCiAKQEAgLTE3NCw5ICsxNzQsOSBAQAogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTElURTUyMDBCKQotI2RlZmluZSBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogI2Vsc2UKLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KICNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19NUEM1MjAwICovCiAKQEAgLTE5Myw2MiArMTkzLDYyIEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0xJVEU1MjAwQikKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKLSNpZiAhZGVmaW5lZChDRkdfTE9XQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAxNzYwMDAwICsgMHgwMDgwMDAwMCkKLSNlbHNlCS8qIENGR19MT1dCT09UICovCi0jaWYgZGVmaW5lZChDRkdfTE9XQk9PVDA4KQotIyBlcnJvciBDRkdfTE9XQk9PVDA4IGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBMaXRlNTIwMEIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMTc2MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVDA4KQorIyBlcnJvciBDT05GSUdfU1lTX0xPV0JPT1QwOCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgTGl0ZTUyMDBCCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19MT1dCT09UMTYpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMTA2MDAwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVDE2KQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAxMDYwMDAwKQogI2VuZGlmCi0jZW5kaWYgLyogQ0ZHX0xPV0JPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KICNlbHNlIC8qICFDT05GSUdfTElURTUyMDBCIChJY2VDdWJlKSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCi0jaWYgIWRlZmluZWQoQ0ZHX0xPV0JPT1QpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDc0MDAwMCArIDB4MDA4MDAwMDApCi0jZWxzZQkvKiBDRkdfTE9XQk9PVCAqLwotI2lmIGRlZmluZWQoQ0ZHX0xPV0JPT1QwOCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDQwMDAwICsgMHgwMDgwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDc0MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVDA4KQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDQwMDAwICsgMHgwMDgwMDAwMCkKICNlbmRpZgotI2lmIGRlZmluZWQoQ0ZHX0xPV0JPT1QxNikKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDQwMDAwKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19MT1dCT09UMTYpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwNDAwMDApCiAjZW5kaWYKLSNlbmRpZgkvKiBDRkdfTE9XQk9PVCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfTE9XQk9PVCAqLwogI2VuZGlmIC8qIENPTkZJR19MSVRFNTIwMEIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCiAKICN1bmRlZiBDT05GSUdfRkxBU0hfMTZCSVQJLyogRmxhc2ggaXMgOC1iaXQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0xJVEU1MjAwQikKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7Q0ZHX0NTMV9TVEFSVCxDRkdfQ1MwX1NUQVJUfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJe0NPTkZJR19TWVNfQ1MxX1NUQVJULENPTkZJR19TWVNfQ1MwX1NUQVJUfQogI2VuZGlmCiAKIApAQCAtMjY3LDI3ICsyNjcsMjcgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0zMDYsODIgKzMwNiw4MiBAQAogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KICNpZmRlZiBDT05GSUdfTVBDNTIwMF9ERFIKLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDkwMDAwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OTAwMDAwMDQKICNlbHNlCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgxMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDEwMDAwMDA0CiAjZW5kaWYKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19MSVRFNTIwMEIpCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzFfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MDAwNDc4MDAKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUpCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfQ1MwX1NUQVJUCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDc4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDAwMDQ3ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19GTEFTSF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19DUzBfU1RBUlQKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAogI2Vsc2UgLyogSWNlQ3ViZSBha2EgTGl0ZTUyMDAgKi8KICNpZmRlZiBDT05GSUdfTVBDNTIwMF9ERFIKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCShDRkdfQ1MxX1NUQVJUICsgQ0ZHX0NTMV9TSVpFKQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCTB4MDA4MDAwMDAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFCQkweDAwODAwMDAwCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDAwMDQ3ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCShDT05GSUdfU1lTX0NTMV9TVEFSVCArIENPTkZJR19TWVNfQ1MxX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MDAwNDc4MDAKIAogI2Vsc2UgLyogIUNPTkZJR19NUEM1MjAwX0REUiAqLwogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMQotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKICNlbmRpZiAvKiBDT05GSUdfTVBDNTIwMF9ERFIgKi8KICNlbmRpZiAvKkNPTkZJR19MSVRFNTIwMEIgKi8KIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVVNCIHN0dWZmCkBAIC00MDMsMjQgKzQwMywyNCBAQAogI2RlZmluZQlDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUgICAgICAgICAgNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUgICAgICAgICAgNAogCiAjZGVmaW5lIENPTkZJR19BVEFQSSAgICAgICAgICAgIDEKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0pTRS5oIGIvaW5jbHVkZS9jb25maWdzL0pTRS5oCmluZGV4IGI0NTcyNzIuLjUwOGI1YzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9KU0UuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvSlNFLmgKQEAgLTQxLDI4ICs0MSwyOCBAQAogICAvKiAuLi4gd2l0aCBhIDMzTUh6IE9TQy4gY29ubmVjdGVkIHRvIHRoZSBTeXNDTEsgaW5wdXQgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwogICAvKiAuLi4gd2l0aCBvbi1jaGlwIG1lbW9yeSBoZXJlICg0S0J5dGVzKSAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUiAweEY0MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFIDB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSIDB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIDB4MDAwMDEwMDAKICAgLyogRG8gbm90IHNldCB1cCBsb2NrZWQgZGNhY2hlIGFzIGluaXQgcmFtLiAqLwotI3VuZGVmIENGR19JTklUX0RDQUNIRV9DUworI3VuZGVmIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MKIAogICAvKiBNYXAgdGhlIFN5c3RlbUFDRSBjaGlwIChDUyMxKSBoZXJlLiAoTXVzdCBiZSBhIG11bHRpcGxlIG9mIDFNZWcpICovCiAjZGVmaW5lIENPTkZJR19TWVNURU1BQ0UgMQotI2RlZmluZSBDRkdfU1lTVEVNQUNFX0JBU0UgMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfU1lTVEVNQUNFX1dJRFRIIDgKKyNkZWZpbmUgQ09ORklHX1NZU19TWVNURU1BQ0VfQkFTRSAweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1lTVEVNQUNFX1dJRFRIIDgKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04gMQogCiAgIC8qIFVzZSB0aGUgT24tQ2hpcC1NZW1vcnkgKE9DTSkgYXMgYSB0ZW1wb3Jhcnkgc3RhY2sgZm9yIHRoZSBzdGFydHVwIGNvZGUuICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gMQogICAvKiAuLi4gcGxhY2UgSU5JVCBSQU0gaW4gdGhlIE9DTSBhZGRyZXNzICovCi0jIGRlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUgorIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgogICAvKiAuLi4gZ2l2ZSBpdCB0aGUgd2hvbGUgaW5pdCByYW0gKi8KLSMgZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUKKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQogICAvKiAuLi4gU2hhdmUgYSBiaXQgb2ZmIHRoZSBlbmQgZm9yIGdsb2JhbCBkYXRhICovCi0jIGRlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKLSMgZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKKyMgZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKICAgLyogLi4uIGFuZCBwbGFjZSB0aGUgc3RhY2sgcG9pbnRlciBhdCB0aGUgdG9wIG9mIHdoYXQncyBsZWZ0LiAqLwotIyBkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogICAvKiBFbmFibGUgYm9hcmRfcHJlX2luaXQgZnVuY3Rpb24gKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX1BSRV9JTklUCTEKQEAgLTcyLDcgKzcyLDcgQEAKICAgLyogRGlzYWJsZSBjYWxsIHRvIHBvc3RfaW5pdF9mOiBsYXRlIGluaXQgZnVuY3Rpb24uICovCiAjdW5kZWYgQ09ORklHX1BPU1QKICAgLyogRW5hYmxlIERSQU0gdGVzdC4gKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVCAxCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUIDEKICAgLyogRW5hYmxlIG1pc2NfaW5pdF9yIGZ1bmN0aW9uLiAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IgMQogCkBAIC04MywxNCArODMsMTQgQEAKICN1bmRlZglDT05GSUdfRU5WX0lTX05PV0hFUkUKIAogICAvKiBUaGlzIGlzIHRoZSA3Yml0IGFkZHJlc3Mgb2YgdGhlIGRldmljZSwgbm90IGluY2x1ZGluZyBQLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSIDB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgMHg1MAogICAvKiBBZnRlciB0aGUgZGV2aWNlIGFkZHJlc3MsIG5lZWQgb25lIG1vcmUgYWRkcmVzcyBieXRlLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAgIC8qIFRoZSBFRVBST00gaXMgNTEyIGJ5dGVzLiAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1NJWkUgNTEyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1NJWkUgNTEyCiAgIC8qIFRoZSBFRVBST00gY2FuIGRvIDE2Ynl0ZSAoIDEgPDwgNCApIHBhZ2Ugd3JpdGVzLiAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAgIC8qIFB1dCB0aGUgZW52aXJvbm1lbnQgaW4gdGhlIHNlY29uZCBoYWxmLiAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkweDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQk1MTIKQEAgLTEzMCw3ICsxMzAsNyBAQAogCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkxCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTE3MSw1MiArMTcxLDUyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAogLyoKLSAqIElmIENGR19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgotICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENGR19CQVNFX0JBVUQgdmFsdWUuCisgKiBJZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgorICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENPTkZJR19TWVNfQkFTRV9CQVVEIHZhbHVlLgogICogVGhlIExpbnV4IEJBU0VfQkFVRCBkZWZpbmUgc2hvdWxkIG1hdGNoIHRoaXMgY29uZmlndXJhdGlvbi4KICAqICAgIGJhc2VCYXVkID0gY3B1Q2xvY2svKHVhcnREaXZpc29yKjE2KQotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAogICogc2V0IExpbnV4IEJBU0VfQkFVRCB0byA0MDMyMDAuCiAgKi8KLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jdW5kZWYJQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OQkgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZglDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzIsMTQgKzIzMiwxNCBAQAogI3VuZGVmCUNPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAJCQkJCS8qIHJlc291cmNlIGNvbmZpZ3VyYXRpb24JKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAJLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMAkvKiBQQ0kgVmVuZG9yIElEOiB0by1kbyEhIQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3MKQEAgLTI0OCwzNiArMjQ4LDM2IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiBubyByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19LRVlfUkVHX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lIENGR19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lSX1JFR19CQVNFX0FERFIJMHhGMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRjgwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjg1LDcgKzI4NSw3IEBACiAgKiBCUjAvMSBhbmQgT1IwLzEgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkwCQkvKiBGTEFTSCBiYW5rICMxCSovCiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0tBUkVGLmggYi9pbmNsdWRlL2NvbmZpZ3MvS0FSRUYuaAppbmRleCBlZWIzOTI0Li40MDMwODFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvS0FSRUYuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvS0FSRUYuaApAQCAtNDMsNyArNDMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJICAgICAvKiBDYWxsIGJvYXJkX3ByZV9pbml0CSovCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfRgkgIDEJICAgICAvKiBDYWxsIGJvYXJkIG1pc2NfaW5pdF9mCSovCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkgIDEJICAgICAvKiBDYWxsIGJvYXJkIG1pc2NfaW5pdF9yCSovCi0jdW5kZWYJQ0ZHX0RSQU1fVEVTVAkJCSAgICAgLyogRGlzYWJsZS10YWtlcyBsb25nIHRpbWUhKi8KKyN1bmRlZglDT05GSUdfU1lTX0RSQU1fVEVTVAkJCSAgICAgLyogRGlzYWJsZS10YWtlcyBsb25nIHRpbWUhKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkgIDY2NjY2NjY2ICAgLyogZXh0ZXJuYWwgZnJlcSB0byBwbGwJKi8KIAogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNIDEKQEAgLTU1LDM4ICs1NSwzOCBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAgICAweDAwMDAwMDAwICAgIC8qIF9tdXN0XyBiZSAwCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgICAgMHhmZmY4MDAwMCAgICAvKiBzdGFydCBvZiBGTEFTSAkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAweGZmZjgwMDAwICAgIC8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAgICAweDgwMDAwMDAwICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UgICAgMHhlMDAwMDAwMCAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkgICAgICAgMHhjMDAwMDAwMCAgICAvKiBpbnRlcm5hbCBTUkFNCQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJICAgICAgIDB4ZDAwMDAwMDAgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAgICAweDAwMDAwMDAwICAgIC8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgICAgIDB4ZmZmODAwMDAgICAgLyogc3RhcnQgb2YgRkxBU0gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgIDB4ZmZmODAwMDAgICAgLyogc3RhcnQgb2YgbW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAgICAweDgwMDAwMDAwICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICAgIDB4ZTAwMDAwMDAgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCSAgICAgICAweGMwMDAwMDAwICAgIC8qIGludGVybmFsIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgICAgIDB4ZDAwMDAwMDAgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQotI2RlZmluZSBDRkdfS0FSRUZfRlBHQV9CQVNFICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MjAwMDAwKQotI2RlZmluZSBDRkdfT0ZFTV9GUEdBX0JBU0UgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4NDAwMDAwKQotI2RlZmluZSBDRkdfQk1FMzJfQkFTRQkgICAgICAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDg1MDAwMDApCi0jZGVmaW5lIENGR19HUElPX0JBU0UJICAgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNzAwKQorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAgIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfS0FSRUZfRlBHQV9CQVNFICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODIwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19PRkVNX0ZQR0FfQkFTRSAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4NDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JNRTMyX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODUwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKIAogLyogSGVyZSBmb3IgY29tcGxldGVuZXNzICovCi0jZGVmaW5lIENGR19PRkVNQUNfQkFTRQkgICAgICAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDg2MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfT0ZFTUFDX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODYwMDAwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAgICAxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSICAgICBDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgQ0ZHX0lTUkFNX0JBU0UgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgyMDAwCSAgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgIDEyOAkgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAgICAgQ09ORklHX1NZU19JU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgQ09ORklHX1NZU19JU1JBTV9CQVNFIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDIwMDAJICAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgIDEyOAkgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSICAgIChDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSICAgIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAgICgyNTYgKiAxMDI0KSAgIC8qIFJzcnYgMjU2a0IgZm9yIE1vbgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgICAoMTI4ICogMTAyNCkgICAvKiBSc3J2IDEyOGtCIGZvciBtYWxsb2MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgICAoMjU2ICogMTAyNCkgICAvKiBSc3J2IDI1NmtCIGZvciBNb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAgICgxMjggKiAxMDI0KSAgIC8qIFJzcnYgMTI4a0IgZm9yIG1hbGxvYwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydApAQCAtOTUsNyArOTUsNyBAQAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJICAgMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJICAgICAgOTYwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwNSwyMSArMTA1LDIxIEBACiAgKiBUaGUgRFMxNzQzIGNvZGUgYXNzdW1lcyB0aGlzIGNvbmRpdGlvbiAoaS5lLiAtLSBpdCBhc3N1bWVzIHRoZSBiYXNlCiAgKiBhZGRyZXNzIGZvciB0aGUgUlRDIHJlZ2lzdGVycyBpczoKICAqCi0gKglDRkdfTlZSQU1fQkFTRV9BRERSICsgQ0ZHX05WUkFNX1NJWkUKKyAqCUNPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgQ09ORklHX1NZU19OVlJBTV9TSVpFCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJICAgICAgKDB4MjAwMCAtIDgpICAgLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCSAgICAgICgweDIwMDAgLSA4KSAgIC8qIE5WUkFNIHNpemUoOGspLSBSVEMgcmVncyovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxNzR4ICAgICAxCQkgICAgIC8qIERTMTc0MyBSVEMJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAxCQkgICAgIC8qIG51bWJlciBvZiBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgIDgJCSAgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgMQkJICAgICAvKiBudW1iZXIgb2YgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgOAkJICAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UJKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgMTIwMDAwCSAgICAgLyogRmxhc2ggRXJhc2UgVE8gKGluIG1zKQkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgIDUwMAkgICAgIC8qIEZsYXNoIFdyaXRlIFRPKGluIG1zKQkgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCAgMTIwMDAwCSAgICAgLyogRmxhc2ggRXJhc2UgVE8gKGluIG1zKQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICA1MDAJICAgICAvKiBGbGFzaCBXcml0ZSBUTyhpbiBtcykJICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQpAQCAtMTMyLDkgKzEzMiw5IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJICAgICAgMQkJICAgICAvKiBJMkMgaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCSAgICAgLyogSTJDICFiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECSAgICAgIDQwMDAwMAkgICAgIC8qIEkyQyBzcGVlZCA0MDBrSHoJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkgICAgICAweDdGCSAgICAgLyogSTJDIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgIHsweDY5fQkgICAgIC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECSAgICAgIDQwMDAwMAkgICAgIC8qIEkyQyBzcGVlZCA0MDBrSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJICAgICAgMHg3RgkgICAgIC8qIEkyQyBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgezB4Njl9CSAgICAgLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KICNkZWZpbmUgQ09ORklHX0kyQ19CVVMxCSAgICAgIDEJCSAgICAgLyogSW5jbHVkZSBpMmMgYnVzIDEgc3VwcAkqLwogCiAKQEAgLTE0NywxMiArMTQ3LDEyIEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFICAxCQkgICAgIC8qIGFsbG93IGVudiBvdmVyd3JpdGUJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJICAgICAgMHgxMDAwCSAgICAgLyogU2l6ZSBvZiBFbnYgdmFycwkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJICAgICAgKENGR19OVlJBTV9CQVNFX0FERFIpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgICAoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIpCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWSAgICAgIDUJCSAgICAvKiA1IHNlY29uZCBhdXRvYm9vdCAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPICAgICAxCQkgICAgIC8qIGVjaG8gb24gZm9yIHNlcmlhbCBkbmxkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRSAxCQkgICAgIC8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFIDEJCSAgICAgLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5ldHdvcmtpbmcKQEAgLTE3NSw3ICsxNzUsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUTUFTSwkgICAgICAyNTUuMjU1LjAuMAogI2RlZmluZSBDT05GSUdfRVRIQUREUgkgICAgICAwMDowMDowMDowMDowMDowMCAvKiBObyBFTUFDIDAgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfRVRIMUFERFIJICAgICAgMDA6MDA6MDA6MDA6MDA6MDAgLyogTm8gRU1BQyAxIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIgICAgIDMyCSAgICAgLyogI2V0aCByeCBidWZmICYgZGVzY3JzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUiAgICAgMzIJICAgICAvKiAjZXRoIHJ4IGJ1ZmYgJiBkZXNjcnMJKi8KIAogCiAvKgpAQCAtMjEyLDMzICsyMTIsMzMgQEAKIAogLyogSW5jbHVkZSBhdXRvIGNvbXBsZXRlIHdpdGggdGFicyAqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURSAxCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAkgICAgIDEJICAgICAvKiB1c2UgcmVhbCBtZW1vcnkgdGVzdAkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAkgICAgIDEJICAgICAvKiB1c2UgcmVhbCBtZW1vcnkgdGVzdAkgKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJICAgICAgIkthUmVmRGVzPT4gIiAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkgICAgICAiS2FSZWZEZXM9PiAiICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCSAgICAgICAxCSAgICAgLyogSFVTSCBmb3IgZXh0J2QgY2xpCSovCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgICAgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCSAgICAgICAxCSAgICAgLyogSFVTSCBmb3IgZXh0J2QgY2xpCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICAgICI+ICIKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDb25zb2xlIEJ1ZmZlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAxMDI0CSAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgMTAyNAkgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgIDI1NgkgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgIDI1NgkgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogCQkJCQkgICAgIC8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCSAgICAgIDE2CSAgICAgLyogbWF4IG51bWJlciBvZiBjbWQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJICAgICAgQ0ZHX0NCU0laRSAgICAgLyogQm9vdCBBcmcgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCSAgICAgIDE2CSAgICAgLyogbWF4IG51bWJlciBvZiBjbWQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCSAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAgICAvKiBCb290IEFyZyBCdWZmZXIgU2l6ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgVGVzdAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgIDB4MDQwMDAwMAkgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAgIDB4MEMwMDAwMAkgICAgIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAweDA0MDAwMDAJICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJICAgICAgMHgwQzAwMDAwCSAgICAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDb21wYWN0IEZsYXNoIChpbiB0cnVlIElERSBtb2RlKQpAQCAtMjQ3LDE2ICsyNDcsMTYgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIG5vIGxlZCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkgLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCSAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDEwMDAwMCAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkgLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkgLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MTAwMDAwIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwogCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQkyCSAvKiBEaXJlY3RseSBjb25uZWN0ZWQgQ0YsIG5lZWRzIGEgc3RyaWRlCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMgkgLyogRGlyZWN0bHkgY29ubmVjdGVkIENGLCBuZWVkcyBhIHN0cmlkZQogCQkJCQkgICAgdG8gZ2V0IHRvIHRoZSBjb3JyZWN0IG9mZnNldCAqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTiAgMQkJICAgICAvKiBJbmNsdWRlIGRvcyBwYXJ0aXRpb24JKi8KIApAQCAtMjY3LDIwICsyNjcsMjAgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCSAgICAgLyogaW5jbHVkZSBwY2kgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCSAgICAgLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCSAgICAgLyogc2hvdyBwY2kgZGV2aWNlcwkqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFICAgICAgKENGR19QQ0lfTUVNQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgICAoQ09ORklHX1NZU19QQ0lfTUVNQkFTRSkKIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCSAgICAgLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCQkgICAgIC8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTdCQQkgICAgIC8qIFNhbmRidXJzdCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJICAgICAvKiBXaGF0ZXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxN0JBCSAgICAgLyogU2FuZGJ1cnN0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJICAgICAvKiBXaGF0ZXZlciAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC0yOTksMTAgKzI5OSwxMCBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkgICAgIC8qIHdhdGNoZG9nIGRpc2FibGVkCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJICAgICAgMHg4MDAwMDAwCSAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkgICAgICAxCQkgICAgIC8qIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCSAgICAgIDB4ODAwMDAwMAkgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCSAgICAgIDEJCSAgICAgLyogdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKi8KIAotI2RlZmluZSBDRkdfSFoJCSAgICAgIDEwMAkgICAgIC8qIGRlY3IgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAxMDAJICAgICAvKiBkZWNyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0tVUDRLLmggYi9pbmNsdWRlL2NvbmZpZ3MvS1VQNEsuaAppbmRleCA2Zjk5YzFiLi5hODI5OTg0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvS1VQNEsuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvS1VQNEsuaApAQCAtODEsNyArODEsNyBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX0YJMQogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfV0FUQ0hET0cJMQkJLyogd2F0Y2hkb2cgZW5hYmxlZAkJKi8KIApAQCAtMTA5LDggKzEwOSw4IEBACiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZQlDT05GSUdfU09GVF9JMkMgICAgICAgICAxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKIC8qCkBAIC0xMzUsMjAgKzEzNSwyMCBAQAogICogSTJDIENvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19JMkNfUElDSU9fQUREUgkweDIxCS8qIFBDRjg1NzQgSU8gRXhwYW5kZXIJCQkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NTEJLyogUENGODU2MyBSVEMJCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElDSU9fQUREUgkweDIxCS8qIFBDRjg1NzQgSU8gRXhwYW5kZXIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCS8qIFBDRjg1NjMgUlRDCQkJCSovCiAKIAogLyogTGlzdCBvZiBJMkMgYWRkcmVzc2VzIHRvIGJlIHZlcmlmaWVkIGJ5IFBPU1QgKi8KIAotI2RlZmluZSBJMkNfQUREUl9MSVNUCXtDRkdfSTJDX1BJQ0lPX0FERFIsCVwKLQkJCUNGR19JMkNfUlRDX0FERFIsCVwKKyNkZWZpbmUgSTJDX0FERFJfTElTVAl7Q09ORklHX1NZU19JMkNfUElDSU9fQUREUiwJXAorCQkJQ09ORklHX1NZU19JMkNfUlRDX0FERFIsCVwKIAkJCX0KIAogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwkJLyogdXNlIFBoaWxpcHMgUENGODU2MyBSVEMJKi8KIAotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZGVmaW5lIENPTkZJR19NSUkKIAogI2lmIDAKQEAgLTE2MSw5ICsxNjEsOSBAQAogI2lmIDEKIC8qIFBPU1Qgc3VwcG9ydCAqLwogCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9SVEMJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQykKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfUlRDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDKQogI2VuZGlmCiAKIApAQCAtMTg2LDI3ICsxODYsMjcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDJDMDAwMDAJLyogNCAuLi4gNDQgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwMkMwMDAwMAkvKiA0IC4uLiA0NCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVCAxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUIDEKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMTYsNDMgKzIxNiw0MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwIC8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yNjgsMTYgKzI2OCwxNiBAQAogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwogI2lmIDEKLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDBGMDAwMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAxMDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDRCMjY1MDBECS8qICdLJlA8Q1I+JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDBGMDAwMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMTAwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NEIyNjUwMEQJLyogJ0smUDxDUj4nICovCiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjg3LDEwICsyODcsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgMCAmJiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykgICAgICAgLyogS1VQIHVzZXMgZXh0ZXJuYWwgVFBTMzcwNSBXRCAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTgsMjcgKzI5OCwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTMyOCw3ICszMjgsNyBAQAogICoKICAqIElmIHRoaXMgaXMgYSA4MCBNSHogQ1BVLCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byA1ICg1KjE2PTgwKSEKICAqLwotI2RlZmluZSBDRkdfUExQUkNSICggKDUtMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSICggKDUtMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMzcsNyArMzM3LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjAwCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgIFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzUxLDE0ICszNTEsMTQgQEAKIC8qIEtVUDRLIHVzZSBib3RoIHNsb3RzLCBTTE9UX0EgYXMgInByaW1hcnkiLiAqLwogI2RlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQSAxCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogI2RlZmluZSBQQ01DSUFfU09DS0VUU19OTyAyCiAjZGVmaW5lIFBDTUNJQV9NRU1fV0lOX05PIDgKQEAgLTM3MywyMyArMzczLDIzIEBACiAjZGVmaW5lIENPTkZJR19JREVfTEVECQkxCS8qIExFRAkgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMgotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQk0CisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJNAogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfSURFMV9PRkZTRVQJKDQgKiBDRkdfUENNQ0lBX01FTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVAkoNCAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFKQogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM5Nyw3ICszOTcsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTQxMCwyMiArNDEwLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfMl9DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAogCiAvKgpAQCAtNDU1LDExICs0NTUsMTEgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAjaWYgICBkZWZpbmVkKENPTkZJR184ME1IeikKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkxNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMTU2CiAjZWxpZiBkZWZpbmVkKENPTkZJR182Nk1IeikKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkxMjkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMTI5CiAjZWxzZQkJLyogICA1MCBNSHogKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgOTgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDk4CiAjZW5kaWYJLypDT05GSUdfPz9NSHogKi8KIAogLyoKQEAgLTQ2NywxNSArNDY3LDE1IEBACiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFIgMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAweDQwMAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfTUFNUiAweDgwODAyMTE0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUiAweDgwODAyMTE0CiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL0tVUDRYLmggYi9pbmNsdWRlL2NvbmZpZ3MvS1VQNFguaAppbmRleCBhNzFiZTBmLi5iZTZkZmRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvS1VQNFguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvS1VQNFguaApAQCAtNTAsMTEgKzUwLDExIEBACiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX1RZUEVTCTEJLyogc3VwcG9ydCBib2FyZCB0eXBlcwkJCSovCiAKLSNkZWZpbmUgQ0ZHXzhYWF9GQUNUCQk4CS8qIE11bHRpcGx5IGJ5IDgJCQkqLwotI2RlZmluZSBDRkdfOFhYX1hJTgkJMTYwMDAwMDAJLyogMTYgTUh6IGluCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU184WFhfRkFDVAkJOAkvKiBNdWx0aXBseSBieSA4CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU184WFhfWElOCQkxNjAwMDAwMAkvKiAxNiBNSHogaW4JCQkqLwogCiAKLSNkZWZpbmUgTVBDOFhYX0haICgoQ0ZHXzhYWF9YSU4pICogKENGR184WFhfRkFDVCkpCisjZGVmaW5lIE1QQzhYWF9IWiAoKENPTkZJR19TWVNfOFhYX1hJTikgKiAoQ09ORklHX1NZU184WFhfRkFDVCkpCiAKIC8qIHNob3VsZCBBTFdBWVMgZGVmaW5lIHRoaXMsIG1lYXN1cmVfZ2NsayBpbiBzcGVlZC5jIGlzIHVucmVsaWFibGUgKi8KIC8qIGluIGdlbmVyYWwsIHdlIGFsd2F5cyBrbm93IHRoaXMgZm9yIEZBRFMrbmV3IEFEUyBhbnl3YXkgKi8KQEAgLTkxLDcgKzkxLDcgQEAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9GCTEKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUJQ09ORklHX1dBVENIRE9HCQkxCS8qIHdhdGNoZG9nIGVuYWJsZWQJCSovCiAKQEAgLTExOCw4ICsxMTgsOCBAQAogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUJQ09ORklHX1NPRlRfSTJDICAgICAgICAgMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAvKgpAQCAtMTQ0LDIwICsxNDQsMjAgQEAKICAqIEkyQyBDb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfSTJDX1BJQ0lPX0FERFIJMHgyMQkvKiBQQ0Y4NTc0IElPIEV4cGFuZGVyCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDUxCS8qIFBDRjg1NjMgUlRDCQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BJQ0lPX0FERFIJMHgyMQkvKiBQQ0Y4NTc0IElPIEV4cGFuZGVyCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg1MQkvKiBQQ0Y4NTYzIFJUQwkJCQkqLwogCiAKIC8qIExpc3Qgb2YgSTJDIGFkZHJlc3NlcyB0byBiZSB2ZXJpZmllZCBieSBQT1NUICovCiAKLSNkZWZpbmUgSTJDX0FERFJfTElTVAl7Q0ZHX0kyQ19QSUNJT19BRERSLAlcCi0JCQlDRkdfSTJDX1JUQ19BRERSLAlcCisjZGVmaW5lIEkyQ19BRERSX0xJU1QJe0NPTkZJR19TWVNfSTJDX1BJQ0lPX0FERFIsCVwKKwkJCUNPTkZJR19TWVNfSTJDX1JUQ19BRERSLAlcCiAJCQl9CiAKIAogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMJCS8qIHVzZSBQaGlsaXBzIFBDRjg1NjMgUlRDCSovCiAKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJCiAKICNpZiAwCkBAIC0xNzIsOSArMTcyLDkgQEAKICNpZiAxCiAvKiBQT1NUIHN1cHBvcnQgKi8KIAotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfUlRDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9JMkMpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1JUQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKICNlbmRpZgogCiAKQEAgLTE5OSwyNiArMTk5LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDAzQzAwMDAwCS8qIDQgLi4uIDYwIE1CIGluIERSQU0JKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDNDMDAwMDAJLyogNCAuLi4gNjAgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUIDEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQgMQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTIyOCw0MyArMjI4LDQzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxOQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwIC8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yODAsMTYgKzI4MCwxNiBAQAogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwogI2lmIDEKLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDBGMDAwMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAxMDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDRCMjY1MDBECS8qICdLJlA8Q1I+JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDBGMDAwMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMTAwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NEIyNjUwMEQJLyogJ0smUDxDUj4nICovCiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjk5LDEwICsyOTksMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgMCAmJiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykgICAgICAgLyogS1VQIHVzZXMgZXh0ZXJuYWwgVFBTMzcwNSBXRCAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMTAsMTQgKzMxMCwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjUsNyArMzI1LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMzMsNyArMzMzLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHNldCB0aGUgUExMLCB0aGUgbG93LXBvd2VyIG1vZGVzIGFuZCB0aGUgcmVzZXQgY29udHJvbCAoMTUtMjkpCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKENGR184WFhfRkFDVCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKChDT05GSUdfU1lTXzhYWF9GQUNUIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwJXAogCQkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUykKIAogCkBAIC0zNDQsNyArMzQ0LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjAwCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgIFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzU4LDE0ICszNTgsMTQgQEAKIC8qIEtVUDRLIHVzZSBib3RoIHNsb3RzLCBTTE9UX0EgYXMgInByaW1hcnkiLiAqLwogI2RlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQSAxCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogI2RlZmluZSBQQ01DSUFfU09DS0VUU19OTyAxCiAjZGVmaW5lIFBDTUNJQV9NRU1fV0lOX05PIDgKQEAgLTM4MCwyMyArMzgwLDIzIEBACiAjZGVmaW5lIENPTkZJR19JREVfTEVECQkJMSAgIC8qIExFRCAgIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMgorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTIKIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCSg0ICogQ0ZHX1BDTUNJQV9NRU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJKDQgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSkKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MDQsNyArNDA0LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUiAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC00MTcsMzAgKzQxNywzMCBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzJfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKIAotI2RlZmluZSBDRkdfTVBUUFIgMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAweDQwMAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfTUFNUiAweDgwODAyMTE0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUiAweDgwODAyMTE0CiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9MQU5URUMuaCBiL2luY2x1ZGUvY29uZmlncy9MQU5URUMuaAppbmRleCA4YjdiMWUxLi5mMTRkOTQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTEFOVEVDLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL0xBTlRFQy5oCkBAIC02OCw3ICs2OCw3IEBACiAJInNldGVudiBib290YXJncyByb290PS9kZXYvcmFtIHBhbmljPTU7Ym9vdG0gNDAwNDAwMDAgNDAwQTAwMDAiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTExOSwyNSArMTE5LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE0Nyw0MyArMTQ3LDQzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTkyLDkgKzE5Miw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwNCwxMCArMjA0LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTUsNyArMjE1LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0RMSykKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9ETEspCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsb2NrIFNldHRpbmcgLSBIYXMgdGhlIExhbnRlYyBib2FyZCBhIDMya0h6IGNsb2NrID8/PyBbWFhYXQpAQCAtMjI4LDIwICsyMjgsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNTIsNyArMjUyLDcgQEAKICAqIElmIHRoaXMgaXMgYSA4MCBNSHogQ1BVLCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byA1ICg1KjE2PTgwKSEKICAqLwogCQkJLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yNjIsNyArMjYyLDcgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKIAkJCS8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTI3Miw3ICsyNzIsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI4NywyMCArMjg3LDIwIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZyAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIICAgICAoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIICAgICAoT1JfQ1NOVF9TQU0gIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1I1X1JFTUFQICAgQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTSAgQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0gICgoRkxBU0hfQkFTRTVfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9SRU1BUCAgIENPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTSAgQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTSAgKChGTEFTSF9CQVNFNV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzEwLDMyICszMTAsMzIgQEAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUgICAgICAgICAgMHgwNDAwMDAwMCAgICAgIC8qIG1heCA2NCBNQiBwZXIgYmFuayAgICovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzCQkJCQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNICAgICAoT1JfQ1NOVF9TQU0pCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICAgICAoT1JfQ1NOVF9TQU0pCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0gIChDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjNfUFJFTElNICAoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTSAgKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0gICgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wgXAotCQkJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSAgICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTCBcCisJCQkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSAgICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWCAgICB8IE1BTVJfV0xGQV8xWCAgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL001MjI3N0VWQi5oIGIvaW5jbHVkZS9jb25maWdzL001MjI3N0VWQi5oCmluZGV4IDdmMjRjNGUuLmI2MjI2YzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTIyNzdFVkIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTTUyMjc3RVZCLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX001MjI3N0VWQgkvKiBNNTIyNzdFVkIgYm9hcmQgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwogCkBAIC03NSw4ICs3NSw4IEBACiAKICNkZWZpbmUgQ09ORklHX0hPU1ROQU1FCQlNNTIyNzdFVkIKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJXAotCSJpbnBjbGs9IiBNS19TVFIoQ0ZHX0lOUFVUX0NMS1NSQykgIlwwIglcCi0JImxvYWRhZGRyPSIgTUtfU1RSKENGR19MT0FEX0FERFIpICJcMCIJXAorCSJpbnBjbGs9IiBNS19TVFIoQ09ORklHX1NZU19JTlBVVF9DTEtTUkMpICJcMCIJXAorCSJsb2FkYWRkcj0iIE1LX1NUUihDT05GSUdfU1lTX0xPQURfQUREUikgIlwwIglcCiAJInUtYm9vdD11LWJvb3QuYmluXDAiCQkJXAogCSJsb2FkPXRmdHAgJHtsb2FkYWRkcikgJHt1LWJvb3R9XDAiCVwKIAkidXBkPXJ1biBsb2FkOyBydW4gcHJvZ1wwIgkJXApAQCAtMTAyLDE0ICsxMDIsMTQgQEAKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KICNkZWZpbmUgQ09ORklHX01BQ19QQVJUSVRJT04KICNkZWZpbmUgQ09ORklHX0lTT19QQVJUSVRJT04KLSNkZWZpbmUgQ0ZHX1VTQl9FSENJX1JFR1NfQkFTRQkJMHhGQzBCMDAwMAotI2RlZmluZSBDRkdfVVNCX0VIQ0lfQ1BVX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfRUhDSV9SRUdTX0JBU0UJCTB4RkMwQjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfRUhDSV9DUFVfSU5JVAogI2VuZGlmCiAKIC8qIFJlYWx0aW1lIGNsb2NrICovCiAjZGVmaW5lIENPTkZJR19NQ0ZSVEMKICN1bmRlZiBSVENfREVCVUcKLSNkZWZpbmUgQ0ZHX1JUQ19PU0NJTExBVE9SCSgzMiAqIENGR19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUgkoMzIgKiBDT05GSUdfU1lTX0haKQogCiAvKiBUaW1lciAqLwogI2RlZmluZSBDT05GSUdfTUNGVE1SCkBAIC0xMTksMzUgKzExOSwzNSBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDU4MDAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4NTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX01CQVIKIAogLyogSW5wdXQsIFBDSSwgRmxleGJ1cywgYW5kIFZDTyAqLwogI2RlZmluZSBDT05GSUdfRVhUUkFfQ0xPQ0sKIAotI2RlZmluZSBDRkdfSU5QVVRfQ0xLU1JDCTE2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDCTE2MDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX1BSQU0JCTUxMgkvKiA1MTIgS0IgKi8KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiLT4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiLT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDApCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCi0jZGVmaW5lIENGR19NQkFSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGQzAwMDAwMAogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE1OCwzNiArMTU4LDM2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9DVFJMCTB4MjEKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKSAtIDE2KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC0gMTYpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTY0CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzEJCTB4NDM3MTE2MzAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzIJCTB4NTY2NzAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NUUkwJCTB4RTEwOTIwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VNT0QJCTB4ODE4MTAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01PREUJCTB4MDBDRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJNjQJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzEJCTB4NDM3MTE2MzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcyCQkweDU2NjcwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RSTAkJMHhFMTA5MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VNT0QJCTB4ODE4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NT0RFCQkweDAwQ0QwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSgoQ0ZHX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSgoQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMykgPDwgMjApCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMCkKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTE5OSwyMSArMTk5LDIxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0NTMF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRQkJQ0ZHX0NTMF9CQVNFCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJQ09ORklHX1NZU19DUzBfQkFTRQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDgwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4ODAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNpZmRlZiBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIAogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MTAwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAjZW5kaWYKIAogLyoKQEAgLTIyMywxMyArMjIzLDEzIEBACiAjaWZkZWYgQ09ORklHX0NNRF9KRkZTMgogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5vcjAiCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCSgweDAxMDAwMDAwIC0gMHg0MDAwMCkKLSMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ0ZHX0ZMQVNIMF9CQVNFICsgMHg0MDAwMCkKKyMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIDB4NDAwMDApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKQEAgLTI0Myw4ICsyNDMsOCBAQAogICogQ1M1IC0gQXZhaWxhYmxlCiAgKi8KIAotI2RlZmluZSBDRkdfQ1MwX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDAwRkYwMDAxCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDAwMUZBMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDBGRjAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDAwMUZBMAogCiAjZW5kaWYJCQkJLyogX001MjI3N0VWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyMzVFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTIzNUVWQi5oCmluZGV4IGYzNTJkYjEuLmU2Yzg3ZWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTIzNUVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTIzNUVWQi5oCkBAIC0zOCw5ICszOCw5IEBACiAjZGVmaW5lIENPTkZJR19NNTIzNQkJLyogZGVmaW5lIHByb2Nlc3NvciB0eXBlICovCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cKICNkZWZpbmUgQ09ORklHX1dBVENIRE9HX1RJTUVPVVQJNTAwMAkvKiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcywgbWF4IHRpbWVvdXQgaXMgNi43MXNlYyAqLwpAQCAtNzgsMjIgKzc4LDIyIEBACiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgogCiAvKiBUaW1lciAqLwpAQCAtMTA0LDEzICsxMDQsMTMgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBodyBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDAwMzAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9SRUcJKGdwaW8tPnBhcl9xc3BpKQotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9DTFIJfihHUElPX1BBUl9GRUNJMkNfU0NMX01BU0sgfCBHUElPX1BBUl9GRUNJMkNfU0RBX01BU0spCi0jZGVmaW5lIENGR19JMkNfUElOTVVYX1NFVAkoR1BJT19QQVJfRkVDSTJDX1NDTF9JMkNTQ0wgfCBHUElPX1BBUl9GRUNJMkNfU0RBX0kyQ1NEQSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgwMDAwMDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfUkVHCShncGlvLT5wYXJfcXNwaSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElOTVVYX0NMUgl+KEdQSU9fUEFSX0ZFQ0kyQ19TQ0xfTUFTSyB8IEdQSU9fUEFSX0ZFQ0kyQ19TREFfTUFTSykKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElOTVVYX1NFVAkoR1BJT19QQVJfRkVDSTJDX1NDTF9JMkNTQ0wgfCBHUElPX1BBUl9GRUNJMkNfU0RBX0kyQ1NEQSkKIAogLyogdGhpcyBtdXN0IGJlIGluY2x1ZGVkIEFGVEVSIHRoZSBkZWZpbml0aW9uIG9mIENPTkZJR19DT01NQU5EUyAoaWYgYW55KSAqLwogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTEJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzICovCkBAIC0xMzgsMjUgKzEzOCwyNSBAQAogCSIiCiAKICNkZWZpbmUgQ09ORklHX1BSQU0JCTUxMgkvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0tHREIpCi0jCWRlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSMJZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFKzB4MjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFKzB4MjAwMDApCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZSBDRkdfQ0xLCQkJNzUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NQVV9DTEsJCUNGR19DTEsgKiAyCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJNzUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfQ0xLCQlDT05GSUdfU1lTX0NMSyAqIDIKIAotI2RlZmluZSBDRkdfTUJBUgkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjYsMjkgKzE2NiwyOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0NUUkwJMHgyMQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSAtIDB4MTApCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAtIDB4MTApCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTE2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMTYJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFICsgMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoKENGR19TRFJBTV9TSVpFIC0gMykgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoKENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDMpIDw8IDIwKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCkBAIC0xOTYsMjYgKzE5NiwyNiBAQAogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSQogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4ODAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHg4MDAwMDAJLyogTWF4IHNpemUgdGhhdCB0aGUgYm9hcmQgbWlnaHQgaGF2ZSAqLwogI2lmZGVmIE5PUkZMQVNIX1BTMzJCSVQKLSMJZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzMyQklUCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMzJCSVQKICNlbHNlCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCiAjZW5kaWYKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKENGR19DUzBfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoQ09ORklHX1NZU19DUzBfQkFTRSA8PCAxNikKIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTIzNSw3ICsyMzUsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENoaXBzZWxlY3QgYmFuayBkZWZpbml0aW9ucwpAQCAtMjUxLDEzICsyNTEsMTMgQEAKICAqIENTNyAtIEF2YWlsYWJsZQogICovCiAjaWZkZWYgTk9SRkxBU0hfUFMzMkJJVAotIwlkZWZpbmUgQ0ZHX0NTMF9CQVNFCTB4RkZDMAotIwlkZWZpbmUgQ0ZHX0NTMF9NQVNLCTB4MDAzZjAwMDEKLSMJZGVmaW5lIENGR19DUzBfQ1RSTAkweDFEMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJMHhGRkMwCisjCWRlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCTB4MDAzZjAwMDEKKyMJZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJMHgxRDAwCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX0NTMF9CQVNFCTB4RkZFMAotIwlkZWZpbmUgQ0ZHX0NTMF9NQVNLCTB4MDAxZjAwMDEKLSMJZGVmaW5lIENGR19DUzBfQ1RSTAkweDFEODAKKyMJZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJMHhGRkUwCisjCWRlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCTB4MDAxZjAwMDEKKyMJZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJMHgxRDgwCiAjZW5kaWYKIAogI2VuZGlmCQkJCS8qIF9NNTMyOUVWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNDlFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTI0OUVWQi5oCmluZGV4IDQ1MjVlMmQuLjg2OTllZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTI0OUVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI0OUVWQi5oCkBAIC00MCw5ICs0MCw5IEBACiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmICBDT05GSUdfV0FUQ0hET0cKIApAQCAtNjIsMzggKzYyLDM4IEBACiAjaW5jbHVkZSA8Y29uZmlnX2NtZF9kZWZhdWx0Lmg+CiAjdW5kZWYgQ09ORklHX0NNRF9ORVQKIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cAkqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkxCS8qIGFkZCBhdXRvY29tcGxldGlvbiBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19MT09QVwkJMQkvKiBlbmFibGUgbG9vcHcgY29tbWFuZAkqLwogI2RlZmluZSBDT05GSUdfTVhfQ1lDTElDCTEJLyogZW5hYmxlIG1kYy9td2MgY29tbWFuZHMJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogLyoKICAqIENsb2NrIGNvbmZpZ3VyYXRpb246IGVuYWJsZSBvbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMKICAqLwogCi0jdW5kZWYgIENGR19QTExfQllQQVNTCQkJCS8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLwotI2RlZmluZSBDRkdfRkFTVF9DTEsJCTEJCS8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLwotI2RlZmluZQlDRkdfQ0xLCQkJMTMyMDI1NjAwCS8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLworI3VuZGVmICBDT05GSUdfU1lTX1BMTF9CWVBBU1MJCQkJLyogYnlwYXNzIFBMTCBmb3IgdGVzdCBwdXJwb3NlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkFTVF9DTEsJCTEJCS8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NMSwkJCTEzMjAyNTYwMAkvKiBNQ0Y1MjQ5IGNhbiBydW4gYXQgMTQwTUh6ICAgKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMDEsMTcgKzEwMSwxNyBAQAogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKi8KIAotI2RlZmluZSBDRkdfTUJBUgkJMHgxMDAwMDAwMAkvKiBSZWdpc3RlciBCYXNlIEFkZHJzICovCi0jZGVmaW5lCUNGR19NQkFSMgkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4MTAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLworI2RlZmluZQlDT05GSUdfU1lTX01CQVIyCQkweDgwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwCS8qIEFkZHJlc3Mgb2YgRW52aXJvbm1lbnQgU2VjdG9yKi8KQEAgLTEyMSw3NCArMTIxLDc0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYJCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCShDRkdfQ1NBUjAgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTE2CQkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKENPTkZJR19TWVNfQ1NBUjAgPDwgMTYpCiAKICNpZiAwIC8qIHRlc3Qtb25seSAqLwogI2RlZmluZSBDT05GSUdfUFJBTQkJNTEyIC8qIHRlc3Qtb25seSBmb3IgU0RSQU0gcHJvYmxlbSEhISEhISEhISEhISEhISEhISEhICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMSAqIDEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAxIE1CIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEgKiAxMDI0KjEwMjQpCS8qIFJlc2VydmUgMSBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSQogCiAjCWRlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCi0jCWRlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jCWRlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KLSMJZGVmaW5lIENGR19GTEFTSF9DSEVDS1NVTQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9CisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MTAwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyMJZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKICAqLwogCiAvKiBDUzAgLSBBTUQgRmxhc2gsIGFkZHJlc3MgMHhmZmMwMDAwMCAqLwotI2RlZmluZQlDRkdfQ1NBUjAJCTB4ZmZlMAotI2RlZmluZQlDRkdfQ1NDUjAJCTB4MTk4MAkJLyogV1M9MDExMCwgQUE9MSwgUFM9MTAgICAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NTQVIwCQkweGZmZTAKKyNkZWZpbmUJQ09ORklHX1NZU19DU0NSMAkJMHgxOTgwCQkvKiBXUz0wMTEwLCBBQT0xLCBQUz0xMCAgICAgICAgICovCiAvKiogTm90ZTogVGhlcmUgaXMgYSBDU01SMC9EUkFNIHZlY3RvciBwcm9ibGVtLCBuZWVkIHRvIGRpc2FibGUgQy9JICoqKi8KLSNkZWZpbmUJQ0ZHX0NTTVIwCQkweDAwM2YwMDIxCS8qIDRNQiwgQUE9MCwgV1A9MCwgQy9JPTEsIFY9MSAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DU01SMAkJMHgwMDNmMDAyMQkvKiA0TUIsIEFBPTAsIFdQPTAsIEMvST0xLCBWPTEgICovCiAKIC8qIENTMSAtIEZQR0EsIGFkZHJlc3MgMHhlMDAwMDAwMCAqLwotI2RlZmluZQlDRkdfQ1NBUjEJCTB4ZTAwMAotI2RlZmluZQlDRkdfQ1NDUjEJCTB4MGQ4MAkJLyogV1M9MDAxMSwgQUE9MSwgUFM9MTAgICAgICAgICAqLwotI2RlZmluZQlDRkdfQ1NNUjEJCTB4MDAwMTAwMDEJLyogMTI4a0IsIEFBPTAsIFdQPTAsIEMvST0wLCBWPTEqLworI2RlZmluZQlDT05GSUdfU1lTX0NTQVIxCQkweGUwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DU0NSMQkJMHgwZDgwCQkvKiBXUz0wMDExLCBBQT0xLCBQUz0xMCAgICAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NNUjEJCTB4MDAwMTAwMDEJLyogMTI4a0IsIEFBPTAsIFdQPTAsIEMvST0wLCBWPTEqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQb3J0IGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZQlDRkdfR1BJT19GVU5DCQkweDAwMDAwMDA4CS8qIFNldCBncGlvIHBpbnM6IG5vbmUgICAgICAgICAgKi8KLSNkZWZpbmUJQ0ZHX0dQSU8xX0ZVTkMJCTB4MDBkZjAwZjAJLyogMzYtMzkoU1dJVENIKSw0OC01MihGUEdBcyksNTQqLwotI2RlZmluZQlDRkdfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICAgICAgICovCi0jZGVmaW5lCUNGR19HUElPMV9FTgkJMHgwMGM3MDAwMAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICAgICAgICovCi0jZGVmaW5lCUNGR19HUElPX09VVAkJMHgwMDAwMDAwOAkvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCi0jZGVmaW5lCUNGR19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfTEVECQkweDAwNDAwMDAwCS8qIHVzZXIgbGVkICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HUElPX0ZVTkMJCTB4MDAwMDAwMDgJLyogU2V0IGdwaW8gcGluczogbm9uZSAgICAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU8xX0ZVTkMJCTB4MDBkZjAwZjAJLyogMzYtMzkoU1dJVENIKSw0OC01MihGUEdBcyksNTQqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fRU4JCTB4MDAwMDAwMDgJLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU8xX0VOCQkweDAwYzcwMDAwCS8qIFNldCBncGlvIG91dHB1dCBlbmFibGUgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HUElPX09VVAkJMHgwMDAwMDAwOAkvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCisjZGVmaW5lCUNPTkZJR19TWVNfR1BJTzFfT1VUCQkweDAwYzcwMDAwCS8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9MRUQJCTB4MDA0MDAwMDAJLyogdXNlciBsZWQgICAgICAgICAgICAgICAgICAgICAqLwogCiAjZW5kaWYJLyogTTUyNDkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTI1M0RFTU8uaCBiL2luY2x1ZGUvY29uZmlncy9NNTI1M0RFTU8uaAppbmRleCA4ZDliZmEzLi4zYTVjMTJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNTNERU1PLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001MjUzREVNTy5oCkBAIC0zMSw5ICszMSw5IEBACiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJLyogZGlzYWJsZSB3YXRjaGRvZyAqLwogCkBAIC00Nyw3ICs0Nyw3IEBACiAjCWRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAKICMJZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2Vsc2UKLSMJZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg0MDAwKQorIwlkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwKQogIwlkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwCiAjCWRlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNlbmRpZgpAQCAtNzUsMjIgKzc1LDIyIEBACiAjCWRlZmluZSBDT05GSUdfQVRBUEkKICMJdW5kZWYgQ09ORklHX0xCQTQ4CiAKLSMJZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCi0jCWRlZmluZSBDRkdfSURFX01BWERFVklDRQkyCisjCWRlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEKKyMJZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCiAKLSMJZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCShDRkdfTUJBUjIgKyAweDgwMCkKLSMJZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMAorIwlkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCShDT05GSUdfU1lTX01CQVIyICsgMHg4MDApCisjCWRlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkwCiAKLSMJZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCi0jCWRlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotIwlkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4QzAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCi0jCWRlZmluZSBDRkdfQVRBX1NUUklERQkJNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjCWRlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4QTAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHhDMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLwogIwlkZWZpbmUgX0lPX0JBU0UJCQkwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRFJJVkVSX0RNOTAwMAogI2lmZGVmIENPTkZJR19EUklWRVJfRE05MDAwCi0jCWRlZmluZSBDT05GSUdfRE05MDAwX0JBU0UJKChDRkdfQ1NBUjEgPDwgMTYpIHwgMHgzMDApCisjCWRlZmluZSBDT05GSUdfRE05MDAwX0JBU0UJKChDT05GSUdfU1lTX0NTQVIxIDw8IDE2KSB8IDB4MzAwKQogIwlkZWZpbmUgRE05MDAwX0lPCQlDT05GSUdfRE05MDAwX0JBU0UKICMJZGVmaW5lIERNOTAwMF9EQVRBCQkoQ09ORklHX0RNOTAwMF9CQVNFICsgNCkKICMJdW5kZWYgQ09ORklHX0RNOTAwMF9ERUJVRwpAQCAtMTA0LDcgKzEwNCw3IEBACiAKICMJZGVmaW5lIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCVwKIAkJIm5ldGRldj1ldGgwXDAiCQkJCVwKLQkJImlucGNsaz0iIE1LX1NUUihDRkdfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKKwkJImlucGNsaz0iIE1LX1NUUihDT05GSUdfU1lTX0lOUFVUX0NMS1NSQykgIlwwIglcCiAJCSJsb2FkYWRkcj0xMDAwMFwwIgkJCVwKIAkJInUtYm9vdD11LWJvb3QuYmluXDAiCQkJXAogCQkibG9hZD10ZnRwICR7bG9hZGFkZHIpICR7dS1ib290fVwwIglcCkBAIC0xMjEsNDEgKzEyMSw0MSBAQAogLyogSTJDICovCiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaHcgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDAwMjgwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9SRUcJKCoodTMyICopIChDRkdfTUJBUisweDE5QykpCi0jZGVmaW5lIENGR19JMkNfUElOTVVYX0NMUgkoMHhGRkZGRTdGRikKLSNkZWZpbmUgQ0ZHX0kyQ19QSU5NVVhfU0VUCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDAwMDAwMjgwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BJTk1VWF9SRUcJKCoodTMyICopIChDT05GSUdfU1lTX01CQVIrMHgxOUMpKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfQ0xSCSgweEZGRkZFN0ZGKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QSU5NVVhfU0VUCSgwKQogCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMJZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4NDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgzODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCi0jdW5kZWYgQ0ZHX1BMTF9CWVBBU1MJCS8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLwotI2RlZmluZSBDRkdfRkFTVF9DTEsKLSNpZmRlZiBDRkdfRkFTVF9DTEsKLSMJZGVmaW5lIENGR19QTExDUgkweDEyNDNFMDU0Ci0jCWRlZmluZSBDRkdfQ0xLCQkxNDAwMDAwMDAKKyN1bmRlZiBDT05GSUdfU1lTX1BMTF9CWVBBU1MJCS8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZBU1RfQ0xLCisjaWZkZWYgQ09ORklHX1NZU19GQVNUX0NMSworIwlkZWZpbmUgQ09ORklHX1NZU19QTExDUgkweDEyNDNFMDU0CisjCWRlZmluZSBDT05GSUdfU1lTX0NMSwkJMTQwMDAwMDAwCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX1BMTENSCTB4MTM1YTQxNDAKLSMJZGVmaW5lIENGR19DTEsJCTcwMDAwMDAwCisjCWRlZmluZSBDT05GSUdfU1lTX1BMTENSCTB4MTM1YTQxNDAKKyMJZGVmaW5lIENPTkZJR19TWVNfQ0xLCQk3MDAwMDAwMAogI2VuZGlmCiAKIC8qCkBAIC0xNjQsMTAwICsxNjQsMTAwIEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX01CQVIyCQkweDgwMDAwMDAwCS8qIE1vZHVsZSBCYXNlIEFkZHJzIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSMgkJMHg4MDAwMDAwMAkvKiBNb2R1bGUgQmFzZSBBZGRycyAyICovCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNgkvKiBTRFJBTSBzaXplIGluIE1CICovCiAKICNpZmRlZiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KLSMJZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgyMDAwMAorIwlkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgyMDAwMAogI2Vsc2UKLSMJZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCisjCWRlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkoNjQqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHg0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JKDY0KjEwMjQpCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoQ0ZHX0NTQVIwIDw8IDE2KQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTIwNDgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoQ09ORklHX1NZU19DU0FSMCA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTIwNDgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCiAKICNkZWZpbmUgRkxBU0hfU1NUNjQwMUIJCTB4MjAwCiAjZGVmaW5lIFNTVF9JRF94RjY0MDFCCQkweDIzNkQyMzZECiAKLSN1bmRlZiBDRkdfRkxBU0hfQ0ZJCi0jaWZkZWYgQ0ZHX0ZMQVNIX0NGSQorI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIC8qCiAgKiBVbmFibGUgdG8gdXNlIENGSSBkcml2ZXIsIGR1ZSB0byBpbmNvbXBhdGlibGUgc2VjdG9yIGVyYXNlIGNvbW1hbmQgYnkgU1NULgogICogQW1kL0F0bWVsIHVzZSAweDMwIGZvciBzZWN0b3IgZXJhc2UsIFNTVCB1c2UgMHg1MC4KICAqIDB4MzAgaXMgYmxvY2sgZXJhc2UgaW4gU1NUCiAgKi8KICMJZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSMJZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDgwMDAwMAotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHg4MDAwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kKICNlbHNlCi0jCWRlZmluZSBDRkdfU1NUX1NFQ1QJCTIwNDgKLSMJZGVmaW5lIENGR19TU1RfU0VDVFNaCQkweDEwMDAKLSMJZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAorIwlkZWZpbmUgQ09ORklHX1NZU19TU1RfU0VDVAkJMjA0OAorIwlkZWZpbmUgQ09ORklHX1NZU19TU1RfU0VDVFNaCQkweDEwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAKICNlbmRpZgogCiAvKiBDYWNoZSBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qIFBvcnQgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRkVDSTJDCQkweEYwCisjZGVmaW5lIENPTkZJR19TWVNfRkVDSTJDCQkweEYwCiAKLSNkZWZpbmUgQ0ZHX0NTQVIwCQkweEZGODAKLSNkZWZpbmUgQ0ZHX0NTTVIwCQkweDAwN0YwMDIxCi0jZGVmaW5lIENGR19DU0NSMAkJMHgxRDgwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NBUjAJCTB4RkY4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTTVIwCQkweDAwN0YwMDIxCisjZGVmaW5lIENPTkZJR19TWVNfQ1NDUjAJCTB4MUQ4MAogCi0jZGVmaW5lIENGR19DU0FSMSAgICAgICAgICAgICAgIDB4RTAwMAotI2RlZmluZSBDRkdfQ1NNUjEgICAgICAgICAgICAgICAweDAwMDAwMDAxCi0jZGVmaW5lIENGR19DU0NSMSAgICAgICAgICAgICAgIDB4M0REOAorI2RlZmluZSBDT05GSUdfU1lTX0NTQVIxICAgICAgICAgICAgICAgMHhFMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NNUjEgICAgICAgICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1NDUjEgICAgICAgICAgICAgICAweDNERDgKIAotI2RlZmluZSBDRkdfQ1NBUjIJCTAKLSNkZWZpbmUgQ0ZHX0NTTVIyCQkwCi0jZGVmaW5lIENGR19DU0NSMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTQVIyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NNUjIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSMgkJMAogCi0jZGVmaW5lIENGR19DU0FSMwkJMAotI2RlZmluZSBDRkdfQ1NNUjMJCTAKLSNkZWZpbmUgQ0ZHX0NTQ1IzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NBUjMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU01SMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTQ1IzCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBvcnQgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19HUElPX0ZVTkMJCTB4MDAwMDAwMDgJLyogU2V0IGdwaW8gcGluczogbm9uZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfRlVOQwkJMHgwMGRmMDBmMAkvKiAzNi0zOShTV0lUQ0gpLDQ4LTUyKEZQR0FzKSw1NCAqLwotI2RlZmluZSBDRkdfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19HUElPMV9FTgkJMHgwMGM3MDAwMAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19HUElPX09VVAkJMHgwMDAwMDAwOAkvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCi0jZGVmaW5lIENGR19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfTEVECQkweDAwNDAwMDAwCS8qIHVzZXIgbGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19GVU5DCQkweDAwMDAwMDA4CS8qIFNldCBncGlvIHBpbnM6IG5vbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9GVU5DCQkweDAwZGYwMGYwCS8qIDM2LTM5KFNXSVRDSCksNDgtNTIoRlBHQXMpLDU0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfRU4JCTB4MDBjNzAwMDAJLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fT1VUCQkweDAwMDAwMDA4CS8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRAkJMHgwMDQwMDAwMAkvKiB1c2VyIGxlZCAqLwogCiAjZW5kaWYJCQkJLyogX001MjUzREVNT19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNTNFVkJFLmggYi9pbmNsdWRlL2NvbmZpZ3MvTTUyNTNFVkJFLmgKaW5kZXggZjU4Zjg5Yy4uYzJjZDYyYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL001MjUzRVZCRS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI1M0VWQkUuaApAQCAtMzEsOSArMzEsOSBAQAogI2RlZmluZSBDT05GSUdfTUNGVE1SCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCS8qIGRpc2FibGUgd2F0Y2hkb2cgKi8KIApAQCAtODEsNDUgKzgxLDQ1IEBACiAjZGVmaW5lIENPTkZJR19BVEFQSQogI3VuZGVmIENPTkZJR19MQkE0OAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJKENGR19NQkFSMiArIDB4ODAwKQotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCShDT05GSUdfU1lTX01CQVIyICsgMHg4MDApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4QTAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHhDMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTQJLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4QzAJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLwogI2RlZmluZSBfSU9fQkFTRQkJMAogCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgzODAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSN1bmRlZiBDRkdfUExMX0JZUEFTUwkJLyogYnlwYXNzIFBMTCBmb3IgdGVzdCBwdXJwb3NlICovCi0jZGVmaW5lIENGR19GQVNUX0NMSwotI2lmZGVmIENGR19GQVNUX0NMSwotIwlkZWZpbmUgQ0ZHX1BMTENSCTB4MTI0M0UwNTQKLSMJZGVmaW5lIENGR19DTEsJCTE0MDAwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfUExMX0JZUEFTUwkJLyogYnlwYXNzIFBMTCBmb3IgdGVzdCBwdXJwb3NlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkFTVF9DTEsKKyNpZmRlZiBDT05GSUdfU1lTX0ZBU1RfQ0xLCisjCWRlZmluZSBDT05GSUdfU1lTX1BMTENSCTB4MTI0M0UwNTQKKyMJZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkxNDAwMDAwMDAKICNlbHNlCi0jCWRlZmluZSBDRkdfUExMQ1IJMHgxMzVhNDE0MAotIwlkZWZpbmUgQ0ZHX0NMSwkJNzAwMDAwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfUExMQ1IJMHgxMzVhNDE0MAorIwlkZWZpbmUgQ09ORklHX1NZU19DTEsJCTcwMDAwMDAwCiAjZW5kaWYKIAogLyoKQEAgLTEyOCw4NSArMTI4LDg1IEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX01CQVIyCQkweDgwMDAwMDAwCS8qIE1vZHVsZSBCYXNlIEFkZHJzIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSMgkJMHg4MDAwMDAwMAkvKiBNb2R1bGUgQmFzZSBBZGRycyAyICovCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJOAkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTgJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwogCiAjaWZkZWYgQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDIwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkoNjQqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHg0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JKDY0KjEwMjQpCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyogUG9ydCBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GRUNJMkMJCTB4RjAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUNJMkMJCTB4RjAKIAotI2RlZmluZSBDRkdfQ1NBUjAJCTB4RkZFMAotI2RlZmluZSBDRkdfQ1NNUjAJCTB4MDAxRjAwMjEKLSNkZWZpbmUgQ0ZHX0NTQ1IwCQkweDFEODAKKyNkZWZpbmUgQ09ORklHX1NZU19DU0FSMAkJMHhGRkUwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NNUjAJCTB4MDAxRjAwMjEKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSMAkJMHgxRDgwCiAKLSNkZWZpbmUgQ0ZHX0NTQVIxCQkwCi0jZGVmaW5lIENGR19DU01SMQkJMAotI2RlZmluZSBDRkdfQ1NDUjEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU0FSMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTTVIxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NDUjEJCTAKIAotI2RlZmluZSBDRkdfQ1NBUjIJCTAKLSNkZWZpbmUgQ0ZHX0NTTVIyCQkwCi0jZGVmaW5lIENGR19DU0NSMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTQVIyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NNUjIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSMgkJMAogCi0jZGVmaW5lIENGR19DU0FSMwkJMAotI2RlZmluZSBDRkdfQ1NNUjMJCTAKLSNkZWZpbmUgQ0ZHX0NTQ1IzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NBUjMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DU01SMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTQ1IzCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBvcnQgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19HUElPX0ZVTkMJCTB4MDAwMDAwMDgJLyogU2V0IGdwaW8gcGluczogbm9uZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfRlVOQwkJMHgwMGRmMDBmMAkvKiAzNi0zOShTV0lUQ0gpLDQ4LTUyKEZQR0FzKSw1NCAqLwotI2RlZmluZSBDRkdfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19HUElPMV9FTgkJMHgwMGM3MDAwMAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCi0jZGVmaW5lIENGR19HUElPX09VVAkJMHgwMDAwMDAwOAkvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCi0jZGVmaW5lIENGR19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLwotI2RlZmluZSBDRkdfR1BJTzFfTEVECQkweDAwNDAwMDAwCS8qIHVzZXIgbGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19GVU5DCQkweDAwMDAwMDA4CS8qIFNldCBncGlvIHBpbnM6IG5vbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9GVU5DCQkweDAwZGYwMGYwCS8qIDM2LTM5KFNXSVRDSCksNDgtNTIoRlBHQXMpLDU0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19FTgkJMHgwMDAwMDAwOAkvKiBTZXQgZ3BpbyBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfRU4JCTB4MDBjNzAwMDAJLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fT1VUCQkweDAwMDAwMDA4CS8qIFNldCBvdXRwdXRzIHRvIGRlZmF1bHQgc3RhdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9PVVQJCTB4MDBjNzAwMDAJLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0xFRAkJMHgwMDQwMDAwMAkvKiB1c2VyIGxlZCAqLwogCiAjZW5kaWYJCQkJLyogX001MjUzRVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTI3MUVWQi5oIGIvaW5jbHVkZS9jb25maWdzL001MjcxRVZCLmgKaW5kZXggODQ0Yjc0Zi4uN2RkZWI1NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL001MjcxRVZCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001MjcxRVZCLmgKQEAgLTQxLDkgKzQxLDkgQEAKICNkZWZpbmUgQ09ORklHX01DRlRNUgogCiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQogCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkvKiBkaXNhYmxlIHdhdGNoZG9nICovCiAKQEAgLTU3LDcgKzU3LDcgQEAKICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtODksMzIgKzg5LDMyIEBACiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgogCiAvKiBJMkMgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBodyBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDAwMzAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDAwMDAwMzAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwogI2RlZmluZSBDT05GSUdfQk9PVEZJTEUJCSJ1LWJvb3QuYmluIgpAQCAtMTQxLDI1ICsxNDEsMjUgQEAKIAkic2F2ZVwwIgkJCQlcCiAJIiIKIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4NDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgzODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMDAwMAotI2RlZmluZSBDRkdfQ0xLCQkJMTAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJMTAwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY3LDU2ICsxNjcsNTYgQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4NDAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLwogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMTYJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNgkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAogCiAjaWZkZWYJQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDIwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkoNjQqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHg0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JKDY0KjEwMjQpCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTExCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MjAwMDAwCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyogUG9ydCBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GRUNJMkMJCTB4RjAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUNJMkMJCTB4RjAKIAogI2VuZGlmCQkJCS8qIF9NNTI3MUVWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNzJDMy5oIGIvaW5jbHVkZS9jb25maWdzL001MjcyQzMuaAppbmRleCAzNWYwNDhlLi43NzlkMzczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNzJDMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI3MkMzLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX01DRlRNUgogCiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQogCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCiAjZGVmaW5lIENPTkZJR19XQVRDSERPR19USU1FT1VUIDEwMDAwCS8qIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzICovCkBAIC05MiwyMiArOTIsMjIgQEAKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTUNGRkVDCkBAIC0xMzIsMTA4ICsxMzIsMTA4IEBACiAJInNhdmVcMCIJCQkJXAogCSIiCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDM4MDAwMAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQk2NjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NMSwkJCTY2MDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwogICogKGFkZHJlc3MgbWFwcGluZ3MsIHJlZ2lzdGVyIGluaXRpYWwgdmFsdWVzLCBldGMuKQogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4MTAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLwotI2RlZmluZSBDRkdfU0NSCQkJMHgwMDAzCi0jZGVmaW5lIENGR19TUFIJCQkweGZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ1IJCQkweDAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19TUFIJCQkweGZmZmYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQk0CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZlMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJNAkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAogCiAjaWZkZWYJQ09ORklHX01PTklUT1JfSVNfSU5fUkFNCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDIwMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoQ0ZHX1NEUkFNX0JBU0UgKyAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgPDwgMjApKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTExCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhGRkUwMDIwMQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRkUwMDAxNAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHgzMDAwMDAwMQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhGRkY4MDAwMAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJMHgwMDAwMDcwMQotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJMHhGRkMwMDA3QworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4RkZFMDAyMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGRTAwMDE0CisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweDMwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJMHgwMDAwMDcwMQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCTB4RkZDMDAwN0MKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUG9ydCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX1BBQ05UCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQUREUgkJMHgwMDAwCi0jZGVmaW5lIENGR19QQURBVAkJMHgwMDAwCi0jZGVmaW5lIENGR19QQkNOVAkJMHg1NTU1NDE1NQkvKiBFdGhlcm5ldC9VQVJUIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX1BCRERSCQkweDAwMDAKLSNkZWZpbmUgQ0ZHX1BCREFUCQkweDAwMDAKLSNkZWZpbmUgQ0ZHX1BEQ05UCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEFDTlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQUREUgkJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEFEQVQJCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCQ05UCQkweDU1NTU0MTU1CS8qIEV0aGVybmV0L1VBUlQgY29uZmlndXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCRERSCQkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQkRBVAkJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUERDTlQJCTB4MDAwMDAwMDAKICNlbmRpZgkJCQkvKiBfTTUyNzJDM19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyNzVFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTI3NUVWQi5oCmluZGV4IGIwZWY0MWUuLjFmMzUzOWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTI3NUVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI3NUVWQi5oCkBAIC00NCw5ICs0NCw5IEBACiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTkwLDIyICs5MCwyMiBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4Ci0jZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgotI2RlZmluZSBDRkdfRkVDMF9QSU5NVVgJCTAKLSNkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQlDRkdfRkVDMF9JT0JBU0UKLSNkZWZpbmUgQ0ZHX0ZFQzFfUElOTVVYCQkwCi0jZGVmaW5lIENGR19GRUMxX01JSUJBU0UJQ0ZHX0ZFQzFfSU9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyNkZWZpbmUgQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMV9QSU5NVVgJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMxX01JSUJBU0UJQ09ORklHX1NZU19GRUMxX0lPQkFTRQogI2RlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCTUwMDAwCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotI2lmbmRlZiBDRkdfRElTQ09WRVJfUEhZCisvKiBJZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLworI2lmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBGRUNEVVBMRVgJCUZVTEwKICNkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogI2Vsc2UKLSNpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorI2lmbmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KICNlbmRpZgogI2VuZGlmCiAjZW5kaWYKQEAgLTExNCw0MCArMTE0LDQwIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaHcgc3VwcG9ydCAqLwogI3VuZGVmIENPTkZJR19TT0ZUX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDAwMzAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9SRUcJKGdwaW9fcmVnLT5wYXJfZmVjaTJjKQotI2RlZmluZSBDRkdfSTJDX1BJTk1VWF9DTFIJKDB4RkZGMCkKLSNkZWZpbmUgQ0ZHX0kyQ19QSU5NVVhfU0VUCSgweDAwMEYpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MDAwMDAzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX01CQVIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElOTVVYX1JFRwkoZ3Bpb19yZWctPnBhcl9mZWNpMmMpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BJTk1VWF9DTFIJKDB4RkZGMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUElOTVVYX1NFVAkoMHgwMDBGKQogCiAjaWZkZWYgQ09ORklHX01DRkZFQwogI2RlZmluZSBDT05GSUdfRVRIQUREUgkJMDA6MDY6M2I6MDE6NDE6NTUKICNkZWZpbmUgQ09ORklHX0VUSDFBRERSCQkwMDowZTowYzpiYzplNTo2MAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KIAogI2lmIChDT05GSUdfQ01EX0tHREIpCi0jCWRlZmluZSBDRkdfQ0JTSVpFCTEwMjQKKyMJZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQKICNlbHNlCi0jCWRlZmluZSBDRkdfQ0JTSVpFCTI1NgorIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdG0gZmZlNDAwMDAiCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4NDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgzODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZSBDRkdfQ0xLCQkJMTUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJMTUwMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTU1LDczICsxNTUsNzMgQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweDQwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEwMDAJLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMDAwCS8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkxNgkvKiBTRFJBTSBzaXplIGluIE1CICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTE2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCiAKICNpZmRlZiBDT05GSUdfTU9OSVRPUl9JU19JTl9SQU0KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MjAwMDAKICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMCkKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbiA/PwogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIG1tYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBtbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTExCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgyMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBiYW5rIGRlZmluaXRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0FSMF9QUkVMSU0JCShDRkdfRkxBU0hfQkFTRSA+PiAxNikKLSNkZWZpbmUgQ0ZHX0NSMF9QUkVMSU0JCTB4MTk4MAotI2RlZmluZSBDRkdfTVIwX1BSRUxJTQkJMHgwMDFGMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0FSMF9QUkVMSU0JCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgPj4gMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ1IwX1BSRUxJTQkJMHgxOTgwCisjZGVmaW5lIENPTkZJR19TWVNfTVIwX1BSRUxJTQkJMHgwMDFGMDAwMQogCi0jZGVmaW5lIENGR19BUjFfUFJFTElNCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0NSMV9QUkVMSU0JCTB4MTkwMAotI2RlZmluZSBDRkdfTVIxX1BSRUxJTQkJMHgwMDA3MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0FSMV9QUkVMSU0JCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NSMV9QUkVMSU0JCTB4MTkwMAorI2RlZmluZSBDT05GSUdfU1lTX01SMV9QUkVMSU0JCTB4MDAwNzAwMDEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUG9ydCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZFQ0kyQwkJMHgwRkEwCisjZGVmaW5lIENPTkZJR19TWVNfRkVDSTJDCQkweDBGQTAKIAogI2VuZGlmCS8qIF9NNTI3NUVWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUyODJFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTI4MkVWQi5oCmluZGV4IDFiYzg3N2EuLmE4YTI2NTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTI4MkVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTI4MkVWQi5oCkBAIC0zOSw5ICszOSw5IEBACiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmCUNPTkZJR19NT05JVE9SX0lTX0lOX1JBTQkvKiBkZWZpbmUgaWYgbW9uaXRvciBpcyBzdGFydGVkIGZyb20gYSBwcmUtbG9hZGVyICovCiAKQEAgLTc2LDIyICs3NiwyMiBAQAogIwlkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJMQogIwlkZWZpbmUgQ09ORklHX01JSQkJMQogIwlkZWZpbmUgQ09ORklHX01JSV9JTklUCQkxCi0jCWRlZmluZSBDRkdfRElTQ09WRVJfUEhZCi0jCWRlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4Ci0jCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCisjCWRlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOAorIwlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogCi0jCWRlZmluZSBDRkdfRkVDMF9QSU5NVVgJCTAKLSMJZGVmaW5lIENGR19GRUMwX01JSUJBU0UJCUNGR19GRUMwX0lPQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJMAorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMwX01JSUJBU0UJCUNPTkZJR19TWVNfRkVDMF9JT0JBU0UKICMJZGVmaW5lIE1DRkZFQ19UT1VUX0xPT1AJCTUwMDAwCi0vKiBJZiBDRkdfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCi0jCWlmbmRlZiBDRkdfRElTQ09WRVJfUEhZCisvKiBJZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLworIwlpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKICMJCWRlZmluZSBGRUNEVVBMRVgJRlVMTAogIwkJZGVmaW5lIEZFQ1NQRUVECQlfMTAwQkFTRVQKICMJZWxzZQotIwkJaWZuZGVmIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgotIwkJCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCWlmbmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQkJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KICMJCWVuZGlmCi0jCWVuZGlmCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworIwllbmRpZgkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKQEAgLTExNywxMzUgKzExNywxMzUgQEAKIAkic2F2ZVwwIgkJCQlcCiAJIiIKIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiLT4gIgotI2RlZmluZQlDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSItPiAiCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKLSNkZWZpbmUJQ0ZHX0NMSwkJCTY0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ0xLCQkJNjQwMDAwMDAKIAogLyogUExMIENvbmZpZ3VyYXRpb246IEV4dCBDbG9jayAqIDYgKHNlZSB0YWJsZSA5LTQgb2YgTUNGIHVzZXIgbWFudWFsKSAqLwogCi0jZGVmaW5lIENGR19NRkQJCQkweDAyCS8qIFBMTCBNdWx0aXBsaWNhdGlvbiBGYWN0b3IgRGV2aWRlciAqLwotI2RlZmluZSBDRkdfUkZECQkJMHgwMAkvKiBQTEwgUmVkdWNlIEZyZWN1ZW5jeSBEZXZpZGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTUZECQkJMHgwMgkvKiBQTEwgTXVsdGlwbGljYXRpb24gRmFjdG9yIERldmlkZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRkQJCQkweDAwCS8qIFBMTCBSZWR1Y2UgRnJlY3VlbmN5IERldmlkZXIgKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCiAgKiAoYWRkcmVzcyBtYXBwaW5ncywgcmVnaXN0ZXIgaW5pdGlhbCB2YWx1ZXMsIGV0Yy4pCiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwotI2RlZmluZQlDRkdfTUJBUgkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01CQVIJCTB4NDAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX1NEUkFNX1NJWkUJCTE2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZlMDAwMDAKLSNkZWZpbmUJQ0ZHX0lOVF9GTEFTSF9CQVNFCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOVF9GTEFTSF9FTkFCTEUJMHgyMQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNgkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0lOVF9GTEFTSF9CQVNFCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRfRkxBU0hfRU5BQkxFCTB4MjEKIAogLyogSWYgTTUyODIgcG9ydCBpcyBmdWxseSBpbXBsZW1lbnRlZCB0aGUgbW9uaXRvciBiYXNlIHdpbGwgYmUgYmVoaW5kCiAgKiB0aGUgdmVjdG9yIHRhYmxlLiAqLwotI2lmIChURVhUX0JBU0UgIT0gQ0ZHX0lOVF9GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2lmIChURVhUX0JBU0UgIT0gQ09ORklHX1NZU19JTlRfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoVEVYVF9CQVNFICsgMHg0MTgpCS8qIDI0IEJ5dGUgZm9yIENGTS1Db25maWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKFRFWFRfQkFTRSArIDB4NDE4KQkvKiAyNCBCeXRlIGZvciBDRk0tQ29uZmlnICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoQ0ZHX1NEUkFNX0JBU0UgKyAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgPDwgMjApKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jaWZkZWYgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAKICMJZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSMJZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDEwMDAwMDAJLyogTWF4IHNpemUgdGhhdCB0aGUgYm9hcmQgbWlnaHQgaGF2ZSAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgYmFuayBkZWZpbml0aW9ucwogICovCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQkyKjEwMjQqMTAyNAotI2RlZmluZSBDRkdfQ1MwX1dJRFRICQkxNgotI2RlZmluZSBDRkdfQ1MwX1JPCQkwCi0jZGVmaW5lIENGR19DUzBfV1MJCTYKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCTIqMTAyNCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1dJRFRICQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9STwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9XUwkJNgogLyoKLSNkZWZpbmUgQ0ZHX0NTM19CQVNFCQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19DUzNfU0laRQkJMSoxMDI0KjEwMjQKLSNkZWZpbmUgQ0ZHX0NTM19XSURUSAkJMTYKLSNkZWZpbmUgQ0ZHX0NTM19STwkJMAotI2RlZmluZSBDRkdfQ1MzX1dTCQk2CisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0JBU0UJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU0laRQkJMSoxMDI0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfV0lEVEgJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1JPCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1dTCQk2CiAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUG9ydCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX1BBQ05UCQkweDAwMDAwMDAJLyogUG9ydCBBIERbMzE6MjRdICovCi0jZGVmaW5lIENGR19QQUREUgkJMHgwMDAwMDAwCi0jZGVmaW5lIENGR19QQURBVAkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEFDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEEgRFszMToyNF0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQUREUgkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEFEQVQJCTB4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QQkNOVAkJMHgwMDAwMDAwCS8qIFBvcnQgQiBEWzIzOjE2XSAqLwotI2RlZmluZSBDRkdfUEJERFIJCTB4MDAwMDAwMAotI2RlZmluZSBDRkdfUEJEQVQJCTB4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCQ05UCQkweDAwMDAwMDAJLyogUG9ydCBCIERbMjM6MTZdICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJERFIJCTB4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCREFUCQkweDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUENDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEMgRFsxNTowOF0gKi8KLSNkZWZpbmUgQ0ZHX1BDRERSCQkweDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDREFUCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0NOVAkJMHgwMDAwMDAwCS8qIFBvcnQgQyBEWzE1OjA4XSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDRERSCQkweDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0RBVAkJMHgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BEQ05UCQkweDAwMDAwMDAJLyogUG9ydCBEIERbMDc6MDBdICovCi0jZGVmaW5lIENGR19QQ0REUgkJMHgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0RBVAkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUERDTlQJCTB4MDAwMDAwMAkvKiBQb3J0IEQgRFswNzowMF0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0REUgkJMHgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENEQVQJCTB4MDAwMDAwMAogCi0jZGVmaW5lIENGR19QRUhMUEFSCQkweEMwCi0jZGVmaW5lIENGR19QVUFQQVIJCTB4MEYJLyogVUEwLi5VQTMgPSBVYXJ0IDAgKzEgKi8KLSNkZWZpbmUgQ0ZHX0REUlVBCQkweDA1Ci0jZGVmaW5lIENGR19QSlBBUgkJMHhGRgorI2RlZmluZSBDT05GSUdfU1lTX1BFSExQQVIJCTB4QzAKKyNkZWZpbmUgQ09ORklHX1NZU19QVUFQQVIJCTB4MEYJLyogVUEwLi5VQTMgPSBVYXJ0IDAgKzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJVQQkJMHgwNQorI2RlZmluZSBDT05GSUdfU1lTX1BKUEFSCQkweEZGCiAKICNlbmRpZgkJCQkvKiBfQ09ORklHX001MjgyRVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTMyOUVWQi5oIGIvaW5jbHVkZS9jb25maWdzL001MzI5RVZCLmgKaW5kZXggM2E4ZTQ5YS4uYzIwNzk0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL001MzI5RVZCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001MzI5RVZCLmgKQEAgLTM4LDkgKzM4LDkgQEAKICNkZWZpbmUgQ09ORklHX001MzI5CQkvKiBkZWZpbmUgcHJvY2Vzc29yIHR5cGUgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwogI2RlZmluZSBDT05GSUdfV0FUQ0hET0dfVElNRU9VVAk1MDAwCS8qIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLCBtYXggdGltZW91dCBpcyA2Ljcxc2VjICovCkBAIC02NCwyOSArNjQsMjkgQEAKICMgICAgICBkZWZpbmUgQ09ORklHX0NNRF9OQU5ECiAjZW5kaWYKIAotI2RlZmluZSBDRkdfVU5JRllfQ0FDSEUKKyNkZWZpbmUgQ09ORklHX1NZU19VTklGWV9DQUNIRQogCiAjZGVmaW5lIENPTkZJR19NQ0ZGRUMKICNpZmRlZiBDT05GSUdfTUNGRkVDCiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzBfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19NQ0ZSVEMKQEAgLTEwMCwxMCArMTAwLDEwIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGh3IHN1cHBvcnQgKi8KICN1bmRlZiBDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDU4MDAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDU4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwogI2RlZmluZSBDT05GSUdfVURQX0NIRUNLU1VNCkBAIC0xMzEsMjcgKzEzMSwyNyBAQAogCSIiCiAKICNkZWZpbmUgQ09ORklHX1BSQU0JCTUxMgkvKiA1MTIgS0IgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmZGVmIENPTkZJR19DTURfS0dEQgotIwlkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4NDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDQwMDEwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZSBDRkdfQ0xLCQkJODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NQVV9DTEsJCUNGR19DTEsgKiAzCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLCQkJODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfQ0xLCQlDT05GSUdfU1lTX0NMSyAqIDMKIAotI2RlZmluZSBDRkdfTUJBUgkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RkMwMDAwMDAKIAotI2RlZmluZSBDRkdfTEFUQ0hfQUREUgkJKENGR19DUzFfQkFTRSArIDB4ODAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTEFUQ0hfQUREUgkJKENPTkZJR19TWVNfQ1MxX0JBU0UgKyAweDgwMDAwKQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2MSw2OSArMTYxLDY5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9DVFJMCTB4MjIxCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkgLSAweDEwKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIyMQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKSAtIDB4MTApCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTMyCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzEJCTB4NTM3MjI3MzAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzIJCTB4NTY2NzAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NUUkwJCTB4RTEwOTIwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01PREUJCTB4MDE4RDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMzIJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzEJCTB4NTM3MjI3MzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcyCQkweDU2NjcwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RSTAkJMHhFMTA5MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSgoQ0ZHX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSgoQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMykgPDwgMjApCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMCkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCiAKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gPz8KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoQ0ZHX1NEUkFNX0JBU0UgKyAoQ0ZHX1NEUkFNX1NJWkUgPDwgMjApKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIChDT05GSUdfU1lTX1NEUkFNX1NJWkUgPDwgMjApKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jaWZkZWYgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjCWRlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJMHg4MDAwMDAJLyogTWF4IHNpemUgdGhhdCB0aGUgYm9hcmQgbWlnaHQgaGF2ZSAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDgwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyMJZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwogI2VuZGlmCiAKICNpZmRlZiBOQU5ERkxBU0hfU0laRQotIwlkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCi0jCWRlZmluZSBDRkdfTkFORF9CQVNFCQlDRkdfQ1MyX0JBU0UKLSMJZGVmaW5lIENGR19OQU5EX1NJWkUJCTEKLSMJZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UgfQorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQorIwlkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCUNPTkZJR19TWVNfQ1MyX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfTkFORF9TSVpFCQkxCisjCWRlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgfQogIwlkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKICMJZGVmaW5lIE5BTkRfQUxMT1dfRVJBU0VfQUxMCTEKICMJZGVmaW5lIENPTkZJR19KRkZTMl9OQU5ECTEKICMJZGVmaW5lIENPTkZJR19KRkZTMl9ERVYJCSJuYW5kMCIKLSMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX1NJWkUJKENGR19DUzJfTUFTSyAmIH4xKQorIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfU0laRQkoQ09ORklHX1NZU19DUzJfTUFTSyAmIH4xKQogIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfT0ZGU0VUCTB4MDAwMDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfQ1MwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0NTMF9CQVNFCiAKIC8qIENvbmZpZ3VyYXRpb24gZm9yIGVudmlyb25tZW50CiAgKiBFbnZpcm9ubWVudCBpcyBlbWJlZGRlZCBpbiB1LWJvb3QgaW4gdGhlIHNlY29uZCBzZWN0b3Igb2YgdGhlIGZsYXNoCkBAIC0yMzYsNyArMjM2LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDaGlwc2VsZWN0IGJhbmsgZGVmaW5pdGlvbnMKQEAgLTI0OSwxOCArMjQ5LDE4IEBACiAgKiBDUzQgLSBBdmFpbGFibGUKICAqIENTNSAtIEF2YWlsYWJsZQogICovCi0jZGVmaW5lIENGR19DUzBfQkFTRQkJMAotI2RlZmluZSBDRkdfQ1MwX01BU0sJCTB4MDA3ZjAwMDEKLSNkZWZpbmUgQ0ZHX0NTMF9DVFJMCQkweDAwMDAxZmEwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0JBU0UJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfTUFTSwkJMHgwMDdmMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9DVFJMCQkweDAwMDAxZmEwCiAKLSNkZWZpbmUgQ0ZHX0NTMV9CQVNFCQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfTUFTSwkJMHgwMDFmMDAwMQotI2RlZmluZSBDRkdfQ1MxX0NUUkwJCTB4MDAyQTM3ODAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkweDAwMWYwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAyQTM3ODAKIAogI2lmZGVmIE5BTkRGTEFTSF9TSVpFCi0jZGVmaW5lIENGR19DUzJfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX01BU0sJCSgoTkFOREZMQVNIX1NJWkUgPDwgMjApIHwgMSkKLSNkZWZpbmUgQ0ZHX0NTMl9DVFJMCQkweDAwMDAxZjYwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0JBU0UJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfTUFTSwkJKChOQU5ERkxBU0hfU0laRSA8PCAyMCkgfCAxKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DVFJMCQkweDAwMDAxZjYwCiAjZW5kaWYKIAogI2VuZGlmCQkJCS8qIF9NNTMyOUVWQl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTTUzNzNFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTM3M0VWQi5oCmluZGV4IDM0Njk4ZWUuLmExYmMzMmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTM3M0VWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NNTM3M0VWQi5oCkBAIC0zOCw5ICszOCw5IEBACiAjZGVmaW5lIENPTkZJR19NNTM3MwkJLyogZGVmaW5lIHByb2Nlc3NvciB0eXBlICovCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cKICNkZWZpbmUgQ09ORklHX1dBVENIRE9HX1RJTUVPVVQJMzM2MAkvKiB0aW1lb3V0IGluIG1zLCBtYXggaXMgMy4zNiBzZWMgKi8KQEAgLTY0LDI5ICs2NCwyOSBAQAogIyAgICAgIGRlZmluZSBDT05GSUdfQ01EX05BTkQKICNlbmRpZgogCi0jZGVmaW5lIENGR19VTklGWV9DQUNIRQorI2RlZmluZSBDT05GSUdfU1lTX1VOSUZZX0NBQ0hFCiAKICNkZWZpbmUgQ09ORklHX01DRkZFQwogI2lmZGVmIENPTkZJR19NQ0ZGRUMKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX01DRlJUQwpAQCAtMTAwLDEwICsxMDAsMTAgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBodyBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDU4MDAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDU4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwogI2RlZmluZSBDT05GSUdfVURQX0NIRUNLU1VNCkBAIC0xMjAsNyArMTIwLDcgQEAKICNkZWZpbmUgQ09ORklHX0hPU1ROQU1FCQlNNTM3M0VWQgogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCQlcCiAJIm5ldGRldj1ldGgwXDAiCQkJXAotCSJsb2FkYWRkcj0iIE1LX1NUUihDRkdfTE9BRF9BRERSKSAiXDAiCVwKKwkibG9hZGFkZHI9IiBNS19TVFIoQ09ORklHX1NZU19MT0FEX0FERFIpICJcMCIJXAogCSJ1LWJvb3Q9dS1ib290LmJpblwwIglcCiAJImxvYWQ9dGZ0cCAke2xvYWRhZGRyKSAke3UtYm9vdH1cMCIJXAogCSJ1cGQ9cnVuIGxvYWQ7IHJ1biBwcm9nXDAiCVwKQEAgLTEzMSwyNyArMTMxLDI3IEBACiAJIiIKIAogI2RlZmluZSBDT05GSUdfUFJBTQkJNTEyCS8qIDUxMiBLQiAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiLT4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiLT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogCiAjaWZkZWYgQ09ORklHX0NNRF9LR0RCCi0jCWRlZmluZSBDRkdfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jCWRlZmluZSBDRkdfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMTAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQk4MDAwMDAwMAotI2RlZmluZSBDRkdfQ1BVX0NMSwkJQ0ZHX0NMSyAqIDMKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEsJCQk4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NQVV9DTEsJCUNPTkZJR19TWVNfQ0xLICogMwogCi0jZGVmaW5lIENGR19NQkFSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19MQVRDSF9BRERSCQkoQ0ZHX0NTMV9CQVNFICsgMHg4MDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQVRDSF9BRERSCQkoQ09ORklHX1NZU19DUzFfQkFTRSArIDB4ODAwMDApCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTYxLDY5ICsxNjEsNjkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0NUUkwJMHgyMjEKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKSAtIDB4MTApCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9DVFJMCTB4MjIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC0gMHgxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMzIJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMQkJMHg1MzcyMjczMAotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMgkJMHg1NjY3MDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQ1RSTAkJMHhFMTA5MjAwMAotI2RlZmluZSBDRkdfU0RSQU1fRU1PRAkJMHg0MDAxMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fTU9ERQkJMHgwMThEMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkzMgkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0ZHMQkJMHg1MzcyMjczMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzIJCTB4NTY2NzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DVFJMCQkweEUxMDkyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRU1PRAkJMHg0MDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX01PREUJCTB4MDE4RDAwMDAKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRSArIDB4NDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKChDRkdfU0RSQU1fU0laRSAtIDMpIDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKChDT05GSUdfU1lTX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KIAotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbiA/PwogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCShDRkdfU0RSQU1fQkFTRSArIChDRkdfU0RSQU1fU0laRSA8PCAyMCkpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKENPTkZJR19TWVNfU0RSQU1fU0laRSA8PCAyMCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNpZmRlZiBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKICMJZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSMJZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDgwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4ODAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAjZW5kaWYKIAogI2lmZGVmIE5BTkRGTEFTSF9TSVpFCi0jCWRlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKLSMJZGVmaW5lIENGR19OQU5EX0JBU0UJCUNGR19DUzJfQkFTRQotIwlkZWZpbmUgQ0ZHX05BTkRfU0laRQkJMQotIwlkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkRfQkFTRSB9CisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCisjCWRlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJQ09ORklHX1NZU19DUzJfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NJWkUJCTEKKyMJZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkRfQkFTRSB9CiAjCWRlZmluZSBOQU5EX01BWF9DSElQUwkJMQogIwlkZWZpbmUgTkFORF9BTExPV19FUkFTRV9BTEwJMQogIwlkZWZpbmUgQ09ORklHX0pGRlMyX05BTkQJMQogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5hbmQwIgotIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfU0laRQkoQ0ZHX0NTMl9NQVNLICYgfjEpCisjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCShDT05GSUdfU1lTX0NTMl9NQVNLICYgfjEpCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJMHgwMDAwMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19DUzBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTIzNiw3ICsyMzYsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENoaXBzZWxlY3QgYmFuayBkZWZpbml0aW9ucwpAQCAtMjQ5LDE4ICsyNDksMTggQEAKICAqIENTNCAtIEF2YWlsYWJsZQogICogQ1M1IC0gQXZhaWxhYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMDdmMDAwMQotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAwMDFmYTAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAwN2YwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAwMDFmYTAKIAotI2RlZmluZSBDRkdfQ1MxX0JBU0UJCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkweDAwMWYwMDAxCi0jZGVmaW5lIENGR19DUzFfQ1RSTAkJMHgwMDJBMzc4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9CQVNFCQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX01BU0sJCTB4MDAxZjAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ1RSTAkJMHgwMDJBMzc4MAogCiAjaWZkZWYgTkFOREZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMl9CQVNFCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19DUzJfTUFTSwkJKChOQU5ERkxBU0hfU0laRSA8PCAyMCkgfCAxKQotI2RlZmluZSBDRkdfQ1MyX0NUUkwJCTB4MDAwMDFmNjAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9NQVNLCQkoKE5BTkRGTEFTSF9TSVpFIDw8IDIwKSB8IDEpCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NUUkwJCTB4MDAwMDFmNjAKICNlbmRpZgogCiAjZW5kaWYJCQkJLyogX001MzczRVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTQ0NTFFVkIuaCBiL2luY2x1ZGUvY29uZmlncy9NNTQ0NTFFVkIuaAppbmRleCAwM2QyMWJlLi40NWY3MDE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTTU0NDUxRVZCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001NDQ1MUVWQi5oCkBAIC0zOSw5ICszOSw5IEBACiAjZGVmaW5lIENPTkZJR19NNTQ0NTFFVkIJLyogTTU0NDUxRVZCIGJvYXJkICovCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cKIApAQCAtODQsMTIgKzg0LDEyIEBACiAjCWRlZmluZSBDT05GSUdfTkVUX01VTFRJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJCQkxCiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgKLSMJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwlkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKKyMJZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CisjCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAKLSMJZGVmaW5lIENGR19GRUMwX1BJTk1VWAkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCUNGR19GRUMwX0lPQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMwX1BJTk1VWAkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QIDUwMDAwCiAKICMJZGVmaW5lIENPTkZJR19CT09UREVMQVkJMQkvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMgKi8KQEAgLTEwMiwyOSArMTAyLDI5IEBACiAjCWRlZmluZSBDT05GSUdfR0FURVdBWUlQCQkxOTIuMTYyLjEuMQogIwlkZWZpbmUgQ09ORklHX09WRVJXUklURV9FVEhBRERSX09OQ0UKIAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0hPU1ROQU1FCQlNNTQ0NTFFVkIKLSNpZmRlZiBDRkdfU1RNSUNST19CT09UCisjaWZkZWYgQ09ORklHX1NZU19TVE1JQ1JPX0JPT1QKIC8qIFNUIE1pY3JvIHNlcmlhbCBmbGFzaCAqLwotI2RlZmluZQlDRkdfTE9BRF9BRERSMgkJMHg0MDAxMDAwNworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUjIJCTB4NDAwMTAwMDcKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQlcCi0JImlucGNsaz0iIE1LX1NUUihDRkdfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKKwkiaW5wY2xrPSIgTUtfU1RSKENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKIAkibG9hZGFkZHI9MHg0MDAxMDAwMFwwIgkJCVwKIAkic2JmaGRyPXNiZmhkci5iaW5cMCIJCQlcCiAJInVib290PXUtYm9vdC5iaW5cMCIJCQlcCiAJImxvYWQ9dGZ0cCAke2xvYWRhZGRyfSAke3NiZmhkcn07IglcCi0JInRmdHAgIiBNS19TVFIoQ0ZHX0xPQURfQUREUjIpICIgJHt1Ym9vdH0gXDAiCVwKKwkidGZ0cCAiIE1LX1NUUihDT05GSUdfU1lTX0xPQURfQUREUjIpICIgJHt1Ym9vdH0gXDAiCVwKIAkidXBkPXJ1biBsb2FkOyBydW4gcHJvZ1wwIgkJXAogCSJwcm9nPXNmIHByb2JlIDA6MSAxMDAwMCAxOyIJCVwKIAkic2YgZXJhc2UgMCAzMDAwMDsiCQkJXApAQCAtMTMyLDE2ICsxMzIsMTYgQEAKIAkic2F2ZVwwIgkJCQlcCiAJIiIKICNlbHNlCi0jZGVmaW5lIENGR19VQk9PVF9FTkQJMHgzRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX1VCT09UX0VORAkweDNGRkZGCiAjZGVmaW5lIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCVwKIAkibmV0ZGV2PWV0aDBcMCIJCQkJXAotCSJpbnBjbGs9IiBNS19TVFIoQ0ZHX0lOUFVUX0NMS1NSQykgIlwwIglcCisJImlucGNsaz0iIE1LX1NUUihDT05GSUdfU1lTX0lOUFVUX0NMS1NSQykgIlwwIglcCiAJImxvYWRhZGRyPTQwMDEwMDAwXDAiCQkJXAogCSJ1LWJvb3Q9dS1ib290LmJpblwwIgkJCVwKIAkibG9hZD10ZnRwICR7bG9hZGFkZHIpICR7dS1ib290fVwwIglcCiAJInVwZD1ydW4gbG9hZDsgcnVuIHByb2dcMCIJCVwKLQkicHJvZz1wcm90IG9mZiAwICIgTUtfU1RSKENGR19VQk9PVF9FTkQpCVwKLQkiOyBlcmEgMCAiIE1LX1NUUihDRkdfVUJPT1RfRU5EKSAiIDsiCVwKKwkicHJvZz1wcm90IG9mZiAwICIgTUtfU1RSKENPTkZJR19TWVNfVUJPT1RfRU5EKQlcCisJIjsgZXJhIDAgIiBNS19TVFIoQ09ORklHX1NZU19VQk9PVF9FTkQpICIgOyIJXAogCSJjcC5iICR7bG9hZGFkZHJ9IDAgJHtmaWxlc2l6ZX07IglcCiAJInNhdmVcMCIJCQkJXAogCSIiCkBAIC0xNTAsNyArMTUwLDcgQEAKIC8qIFJlYWx0aW1lIGNsb2NrICovCiAjZGVmaW5lIENPTkZJR19NQ0ZSVEMKICN1bmRlZiBSVENfREVCVUcKLSNkZWZpbmUgQ0ZHX1JUQ19PU0NJTExBVE9SCSgzMiAqIENGR19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19SVENfT1NDSUxMQVRPUgkoMzIgKiBDT05GSUdfU1lTX0haKQogCiAvKiBUaW1lciAqLwogI2RlZmluZSBDT05GSUdfTUNGVE1SCkBAIC0xNjAsMjIgKzE2MCwyMiBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDU4MDAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4NTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX01CQVIKIAogLyogRFNQSSBhbmQgU2VyaWFsIEZsYXNoICovCiAjZGVmaW5lIENPTkZJR19DRl9EU1BJCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfRkxBU0gKICNkZWZpbmUgQ09ORklHX0hBUkRfU1BJCi0jZGVmaW5lIENGR19TRVJfRkxBU0hfQkFTRQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19TQkZIRFJfU0laRQkJMHg3CisjZGVmaW5lIENPTkZJR19TWVNfU0VSX0ZMQVNIX0JBU0UJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NCRkhEUl9TSVpFCQkweDcKICNpZmRlZiBDT05GSUdfQ01EX1NQSQogIwlkZWZpbmUgQ09ORklHX1NQSV9GTEFTSAogIwlkZWZpbmUgQ09ORklHX1NQSV9GTEFTSF9TVE1JQ1JPCiAKLSMJZGVmaW5lIENGR19EU1BJX0RDVEFSMAkJKERTUElfRENUQVJfVFJTWig3KSB8IFwKKyMJZGVmaW5lIENPTkZJR19TWVNfRFNQSV9EQ1RBUjAJCShEU1BJX0RDVEFSX1RSU1ooNykgfCBcCiAJCQkJCSBEU1BJX0RDVEFSX0NQT0wgfCBcCiAJCQkJCSBEU1BJX0RDVEFSX0NQSEEgfCBcCiAJCQkJCSBEU1BJX0RDVEFSX1BDU1NDS18xQ0xLIHwgXApAQCAtMTkzLDIzICsxOTMsMjMgQEAKIAogI2RlZmluZSBDT05GSUdfUFJBTQkJMjA0OAkvKiAyMDQ4IEtCICovCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMCkKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEZDMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjIwLDM5ICsyMjAsMzkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0NUUkwJMHgyMjEKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKSAtIDMyKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAotI2RlZmluZSBDRkdfU0JGSERSX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9DVFJMCTB4MjIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19TQkZIRFJfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gMzIpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkxMjgJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMQkJMHgzMzYzM0YzMAotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMgkJMHg1NzY3MDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQ1RSTAkJMHhFMjBEMkMwMAotI2RlZmluZSBDRkdfU0RSQU1fRU1PRAkJMHg4MDgxMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fTU9ERQkJMHgwMDhEMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fRFJWX1NUUkVOR1RICTB4NDQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMTI4CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcxCQkweDMzNjMzRjMwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0ZHMgkJMHg1NzY3MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NUUkwJCTB4RTIwRDJDMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9FTU9ECQkweDgwODEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTU9ERQkJMHgwMDhEMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RSVl9TVFJFTkdUSAkweDQ0CiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSgoQ0ZHX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSgoQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMykgPDwgMjApCiAKICNpZmRlZiBDT05GSUdfQ0ZfU0JGCi0jCWRlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UgKyAweDQwMCkKKyMJZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UgKyAweDQwMCkKICNlbHNlCi0jCWRlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorIwlkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogI2VuZGlmCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKQEAgLTI2MCw3ICsyNjAsNyBAQAogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyogQ29uZmlndXJhdGlvbiBmb3IgZW52aXJvbm1lbnQKICAqIEVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHUtYm9vdCBpbiB0aGUgc2Vjb25kIHNlY3RvciBvZiB0aGUgZmxhc2gKQEAgLTI3Myw3ICsyNzMsNyBAQAogIwlkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogI2Vsc2UKICMJZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotIwlkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMDApCisjCWRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDApCiAjCWRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAKICNlbmRpZgogI3VuZGVmIENPTkZJR19FTlZfT1ZFUldSSVRFCkBAIC0yODIsMjggKzI4MiwyOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNpZmRlZiBDRkdfU1RNSUNST19CT09UCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX1NFUl9GTEFTSF9CQVNFCi0jCWRlZmluZSBDRkdfRkxBU0gwX0JBU0UJCUNGR19TRVJfRkxBU0hfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFCQlDRkdfQ1MwX0JBU0UKKyNpZmRlZiBDT05GSUdfU1lTX1NUTUlDUk9fQk9PVAorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX1NFUl9GTEFTSF9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCQlDT05GSUdfU1lTX1NFUl9GTEFTSF9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFCQlDT05GSUdfU1lTX0NTMF9CQVNFCiAjZW5kaWYKLSNpZmRlZiBDRkdfU1BBTlNJT05fQk9PVAotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19DUzBfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFCQlDRkdfQ1MwX0JBU0UKLSMJZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJQ0ZHX1NFUl9GTEFTSF9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19TUEFOU0lPTl9CT09UCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UJCUNPTkZJR19TWVNfU0VSX0ZMQVNIX0JBU0UKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNpZmRlZiBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIAogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MTAwMDAwMAkvKiBNYXggc2l6ZSB0aGF0IHRoZSBib2FyZCBtaWdodCBoYXZlICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCi0jCWRlZmluZSBDRkdfRkxBU0hfQ0hFQ0tTVU0KLSMJZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0NTMF9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0NTMF9CQVNFIH0KIAogI2VuZGlmCiAKQEAgLTMxMSwyMSArMzExLDIxIEBACiAgKiBUaGlzIGlzIHNldHRpbmcgZm9yIEpGRlMyIHN1cHBvcnQgaW4gdS1ib290LgogICogTk9URTogRW5hYmxlIENPTkZJR19DTURfSkZGUzIgZm9yIEpGRlMyIHN1cHBvcnQuCiAgKi8KLSNpZmRlZiBDRkdfU1BBTlNJT05fQk9PVAorI2lmZGVmIENPTkZJR19TWVNfU1BBTlNJT05fQk9PVAogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5vcjAiCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCTB4MDEwMDAwMDAKLSMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ0ZHX0ZMQVNIMF9CQVNFICsgMHg1MDAwMDApCisjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyAweDUwMDAwMCkKICNlbmRpZgotI2lmZGVmIENGR19TVE1JQ1JPX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX1NUTUlDUk9fQk9PVAogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5vcjAiCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCTB4MDEwMDAwMDAKLSMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ0ZHX0ZMQVNIMF9CQVNFICsgMHg1MDAwMDApCisjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJKENPTkZJR19TWVNfRkxBU0gwX0JBU0UgKyAweDUwMDAwMCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgYmFuayBkZWZpbml0aW9ucwpAQCAtMzQwLDEwICszNDAsMTAgQEAKICAqLwogCiAgLyogU1BBTlNJT04gRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMDdGMDAwMQotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAwMDExODAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAwN0YwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAwMDExODAKIAotI2RlZmluZSBDRkdfU1BBTlNJT05fQkFTRQlDRkdfQ1MwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TUEFOU0lPTl9CQVNFCUNPTkZJR19TWVNfQ1MwX0JBU0UKIAogI2VuZGlmCQkJCS8qIF9NNTQ0NTFFVkJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL001NDQ1NUVWQi5oIGIvaW5jbHVkZS9jb25maWdzL001NDQ1NUVWQi5oCmluZGV4IDk1MTMyNzkuLjEwMWRjZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NNTQ0NTVFVkIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTTU0NDU1RVZCLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX001NDQ1NUVWQgkvKiBNNTQ0NTVFVkIgYm9hcmQgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwogCkBAIC04OCwxNCArODgsMTQgQEAKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCTAKLSMJZGVmaW5lIENGR19GRUMxX1BJTk1VWAkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCUNGR19GRUMwX0lPQkFTRQotIwlkZWZpbmUgQ0ZHX0ZFQzFfTUlJQkFTRQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJMAorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMxX1BJTk1VWAkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzFfTUlJQkFTRQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QIDUwMDAwCiAjCWRlZmluZSBDT05GSUdfSEFTX0VUSDEKIApAQCAtMTEwLDI5ICsxMTAsMjkgQEAKICMJZGVmaW5lIENPTkZJR19HQVRFV0FZSVAJCTE5Mi4xNjIuMS4xCiAjCWRlZmluZSBDT05GSUdfT1ZFUldSSVRFX0VUSEFERFJfT05DRQogCi0vKiBJZiBDRkdfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCi0jCWlmbmRlZiBDRkdfRElTQ09WRVJfUEhZCisvKiBJZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLworIwlpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKICMJCWRlZmluZSBGRUNEVVBMRVgJRlVMTAogIwkJZGVmaW5lIEZFQ1NQRUVECQlfMTAwQkFTRVQKICMJZWxzZQotIwkJaWZuZGVmIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgotIwkJCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCWlmbmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQkJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KICMJCWVuZGlmCi0jCWVuZGlmCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworIwllbmRpZgkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfSE9TVE5BTUUJCU01NDQ1NUVWQgotI2lmZGVmIENGR19TVE1JQ1JPX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX1NUTUlDUk9fQk9PVAogLyogU1QgTWljcm8gc2VyaWFsIGZsYXNoICovCi0jZGVmaW5lCUNGR19MT0FEX0FERFIyCQkweDQwMDEwMDEzCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSMgkJMHg0MDAxMDAxMwogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQlcCiAJIm5ldGRldj1ldGgwXDAiCQkJCVwKLQkiaW5wY2xrPSIgTUtfU1RSKENGR19JTlBVVF9DTEtTUkMpICJcMCIJXAorCSJpbnBjbGs9IiBNS19TVFIoQ09ORklHX1NZU19JTlBVVF9DTEtTUkMpICJcMCIJXAogCSJsb2FkYWRkcj0weDQwMDEwMDAwXDAiCQkJXAogCSJzYmZoZHI9c2JmaGRyLmJpblwwIgkJCVwKIAkidWJvb3Q9dS1ib290LmJpblwwIgkJCVwKIAkibG9hZD10ZnRwICR7bG9hZGFkZHJ9ICR7c2JmaGRyfTsiCVwKLQkidGZ0cCAiIE1LX1NUUihDRkdfTE9BRF9BRERSMikgIiAke3Vib290fSBcMCIJXAorCSJ0ZnRwICIgTUtfU1RSKENPTkZJR19TWVNfTE9BRF9BRERSMikgIiAke3Vib290fSBcMCIJXAogCSJ1cGQ9cnVuIGxvYWQ7IHJ1biBwcm9nXDAiCQlcCiAJInByb2c9c2YgcHJvYmUgMDoxIDEwMDAwIDE7IgkJXAogCSJzZiBlcmFzZSAwIDMwMDAwOyIJCQlcCkBAIC0xNDEsMjMgKzE0MSwyMyBAQAogCSIiCiAjZWxzZQogLyogQXRtZWwgYW5kIEludGVsICovCi0jaWZkZWYgQ0ZHX0FUTUVMX0JPT1QKLSMJZGVmaW5lIENGR19VQk9PVF9FTkQJMHgwNDAzRkZGRgotI2VsaWYgZGVmaW5lZChDRkdfSU5URUxfQk9PVCkKLSMJZGVmaW5lIENGR19VQk9PVF9FTkQJMHgzRkZGRgorI2lmZGVmIENPTkZJR19TWVNfQVRNRUxfQk9PVAorIwlkZWZpbmUgQ09ORklHX1NZU19VQk9PVF9FTkQJMHgwNDAzRkZGRgorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOVEVMX0JPT1QpCisjCWRlZmluZSBDT05GSUdfU1lTX1VCT09UX0VORAkweDNGRkZGCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQlcCi0JImlucGNsaz0iIE1LX1NUUihDRkdfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKKwkiaW5wY2xrPSIgTUtfU1RSKENPTkZJR19TWVNfSU5QVVRfQ0xLU1JDKSAiXDAiCVwKIAkibG9hZGFkZHI9MHg0MDAxMDAwMFwwIgkJCVwKIAkidWJvb3Q9dS1ib290LmJpblwwIgkJCVwKIAkibG9hZD10ZnRwICR7bG9hZGFkZHJ9ICR7dWJvb3R9XDAiCVwKIAkidXBkPXJ1biBsb2FkOyBydW4gcHJvZ1wwIgkJXAotCSJwcm9nPXByb3Qgb2ZmICIgTUtfU1RSKENGR19GTEFTSF9CQVNFKQlcCi0JIiAiIE1LX1NUUihDRkdfVUJPT1RfRU5EKSAiOyIJCVwKLQkiZXJhICIgTUtfU1RSKENGR19GTEFTSF9CQVNFKSAiICIJXAotCU1LX1NUUihDRkdfVUJPT1RfRU5EKSAiOyIJCVwKLQkiY3AuYiAke2xvYWRhZGRyfSAiIE1LX1NUUihDRkdfRkxBU0hfQkFTRSkJXAorCSJwcm9nPXByb3Qgb2ZmICIgTUtfU1RSKENPTkZJR19TWVNfRkxBU0hfQkFTRSkJXAorCSIgIiBNS19TVFIoQ09ORklHX1NZU19VQk9PVF9FTkQpICI7IgkJXAorCSJlcmEgIiBNS19TVFIoQ09ORklHX1NZU19GTEFTSF9CQVNFKSAiICIJXAorCU1LX1NUUihDT05GSUdfU1lTX1VCT09UX0VORCkgIjsiCQlcCisJImNwLmIgJHtsb2FkYWRkcn0gIiBNS19TVFIoQ09ORklHX1NZU19GTEFTSF9CQVNFKQlcCiAJIiAke2ZpbGVzaXplfTsgc2F2ZVwwIgkJCVwKIAkiIgogI2VuZGlmCkBAIC0xNzAsMjIgKzE3MCwyMiBAQAogI2RlZmluZSBDT05GSUdfQVRBUEkKICN1bmRlZiBDT05GSUdfTEJBNDgKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkyCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4QTAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHhBMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHhDMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgICAgICAgICAgICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQk0CS8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweEEwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweEEwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHhDMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAgICAgICAgICAgICAgICAgKi8KICNkZWZpbmUgX0lPX0JBU0UJCTAKIAogLyogUmVhbHRpbWUgY2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX01DRlJUQwogI3VuZGVmIFJUQ19ERUJVRwotI2RlZmluZSBDRkdfUlRDX09TQ0lMTEFUT1IJKDMyICogQ0ZHX0haKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ19PU0NJTExBVE9SCSgzMiAqIENPTkZJR19TWVNfSFopCiAKIC8qIFRpbWVyICovCiAjZGVmaW5lIENPTkZJR19NQ0ZUTVIKQEAgLTE5NSwyMSArMTk1LDIxIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4NTgwMDAKLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19NQkFSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHg1ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfTUJBUgogCiAvKiBEU1BJIGFuZCBTZXJpYWwgRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0NGX0RTUEkKICNkZWZpbmUgQ09ORklHX0hBUkRfU1BJCi0jZGVmaW5lIENGR19TRVJfRkxBU0hfQkFTRQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19TQkZIRFJfU0laRQkJMHgxMworI2RlZmluZSBDT05GSUdfU1lTX1NFUl9GTEFTSF9CQVNFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQkZIRFJfU0laRQkJMHgxMwogI2lmZGVmIENPTkZJR19DTURfU1BJCiAjCWRlZmluZSBDT05GSUdfU1BJX0ZMQVNICiAjCWRlZmluZSBDT05GSUdfU1BJX0ZMQVNIX1NUTUlDUk8KIAotIwlkZWZpbmUgQ0ZHX0RTUElfRENUQVIwCQkoRFNQSV9EQ1RBUl9UUlNaKDcpIHwgXAorIwlkZWZpbmUgQ09ORklHX1NZU19EU1BJX0RDVEFSMAkJKERTUElfRENUQVJfVFJTWig3KSB8IFwKIAkJCQkJIERTUElfRENUQVJfQ1BPTCB8IFwKIAkJCQkJIERTUElfRENUQVJfQ1BIQSB8IFwKIAkJCQkJIERTUElfRENUQVJfUENTU0NLXzFDTEsgfCBcCkBAIC0yMjgsMjcgKzIyOCwyNyBAQAogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJMQogI2RlZmluZSBDT05GSUdfUENJQVVUT19TS0lQX0hPU1RfQlJJREdFCTEKIAotI2RlZmluZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRQk0CisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NBQ0hFX0xJTkVfU0laRQk0CiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQlVTCQkweEEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMJQ0ZHX1BDSV9NRU1fQlVTCi0jZGVmaW5lIENGR19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQlVTCQkweEEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCUNPTkZJR19TWVNfUENJX01FTV9CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lfSU9fQlVTCQkweEIxMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJQ0ZHX1BDSV9JT19CVVMKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX0JVUwkJMHhCMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19QSFlTCQlDT05GSUdfU1lTX1BDSV9JT19CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX0JVUwkJMHhCMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX0NGR19QSFlTCUNGR19QQ0lfQ0ZHX0JVUwotI2RlZmluZSBDRkdfUENJX0NGR19TSVpFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0ZHX0JVUwkJMHhCMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfUEhZUwlDT05GSUdfU1lTX1BDSV9DRkdfQlVTCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NGR19TSVpFCTB4MDEwMDAwMDAKICNlbmRpZgogCiAvKiBGUEdBIC0gU3BhcnRhbiAyICovCiAvKiBleHBlcmltZW50Ci0jZGVmaW5lIENPTkZJR19GUEdBCQlDRkdfU1BBUlRBTjMKKyNkZWZpbmUgQ09ORklHX0ZQR0EJCUNPTkZJR19TWVNfU1BBUlRBTjMKICNkZWZpbmUgQ09ORklHX0ZQR0FfQ09VTlQJMQotI2RlZmluZSBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCi0jZGVmaW5lIENGR19GUEdBX0NIRUNLX0NUUkxDCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DSEVDS19DVFJMQwogKi8KIAogLyogSW5wdXQsIFBDSSwgRmxleGJ1cywgYW5kIFZDTyAqLwpAQCAtMjU2LDIzICsyNTYsMjMgQEAKIAogI2RlZmluZSBDT05GSUdfUFJBTQkJMjA0OAkvKiAyMDQ4IEtCICovCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIi0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIi0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMCkKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEZDMDAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjgzLDQwICsyODMsNDAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0NUUkwJMHgyMjEKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCSgoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKSAtIDMyKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAotI2RlZmluZSBDRkdfU0JGSERSX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9DVFJMCTB4MjIxCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCSgoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19TQkZIRFJfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gMzIpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFMQkJMHg0ODAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMjU2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzEJCTB4NjUzMTE2MTAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NGRzIJCTB4NTk2NzAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NUUkwJCTB4RUEwQjIwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX01PREUJCTB4MDAwMTAwMzMKLSNkZWZpbmUgQ0ZHX1NEUkFNX0RSVl9TVFJFTkdUSAkweEFBCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UxCQkweDQ4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMjU2CS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcxCQkweDY1MzExNjEwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0ZHMgkJMHg1OTY3MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NUUkwJCTB4RUEwQjIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9FTU9ECQkweDQwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTU9ERQkJMHgwMDAxMDAzMworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RSVl9TVFJFTkdUSAkweEFBCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UgKyAweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSgoQ0ZHX1NEUkFNX1NJWkUgLSAzKSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSgoQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMykgPDwgMjApCiAKICNpZmRlZiBDT05GSUdfQ0ZfU0JGCi0jCWRlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UgKyAweDQwMCkKKyMJZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShURVhUX0JBU0UgKyAweDQwMCkKICNlbHNlCi0jCWRlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorIwlkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogI2VuZGlmCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTY0KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKQEAgLTMyNCw3ICszMjQsNyBAQAogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyoKICAqIENvbmZpZ3VyYXRpb24gZm9yIGVudmlyb25tZW50CkBAIC0zNDIsNDkgKzM0Miw0OSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNpZmRlZiBDRkdfU1RNSUNST19CT09UCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX1NFUl9GTEFTSF9CQVNFCi0jCWRlZmluZSBDRkdfRkxBU0gwX0JBU0UJCUNGR19TRVJfRkxBU0hfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFCQlDRkdfQ1MwX0JBU0UKLSMJZGVmaW5lIENGR19GTEFTSDJfQkFTRQkJQ0ZHX0NTMV9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19TVE1JQ1JPX0JPT1QKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19TRVJfRkxBU0hfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJQ09ORklHX1NZU19TRVJfRkxBU0hfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRQkJQ09ORklHX1NZU19DUzBfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDJfQkFTRQkJQ09ORklHX1NZU19DUzFfQkFTRQogIwlkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MzAwMDAKICMJZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjCWRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZW5kaWYKLSNpZmRlZiBDRkdfQVRNRUxfQk9PVAotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19DUzBfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFCQlDRkdfQ1MwX0JBU0UKLSMJZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJQ0ZHX0NTMV9CQVNFCi0jCWRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwMCkKKyNpZmRlZiBDT05GSUdfU1lTX0FUTUVMX0JPT1QKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19DUzBfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJQ09ORklHX1NZU19DUzBfQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRQkJQ09ORklHX1NZU19DUzFfQkFTRQorIwlkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwKQogIwlkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwCiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5URUxfQk9PVAotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19DUzBfQkFTRQotIwlkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFCQlDRkdfQ1MwX0JBU0UKLSMJZGVmaW5lIENGR19GTEFTSDFfQkFTRQkJQ0ZHX0NTMV9CQVNFCi0jCWRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwMDApCisjaWZkZWYgQ09ORklHX1NZU19JTlRFTF9CT09UCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UJCUNPTkZJR19TWVNfQ1MxX0JBU0UKKyMJZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwMDApCiAjCWRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogIwlkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NGSQogCiAjCWRlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMJZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19DUzBfQkFTRSwgQ0ZHX0NTMV9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgxMDAwMDAwCS8qIE1heCBzaXplIHRoYXQgdGhlIGJvYXJkIG1pZ2h0IGhhdmUgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV84QklUCisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEzNwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfQ1MwX0JBU0UsIENPTkZJR19TWVNfQ1MxX0JBU0UgfQogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kKIAogI2lmZGVmIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCi0jCWRlZmluZSBDRkdfQVRNRUxfUkVHSU9OCQk0Ci0jCWRlZmluZSBDRkdfQVRNRUxfVE9UQUxTRUNUCTExCi0jCWRlZmluZSBDRkdfQVRNRUxfU0VDVAkJezEsIDIsIDEsIDd9Ci0jCWRlZmluZSBDRkdfQVRNRUxfU0VDVFNaCQl7MHg0MDAwLCAweDIwMDAsIDB4ODAwMCwgMHgxMDAwMH0KKyMJZGVmaW5lIENPTkZJR19TWVNfQVRNRUxfUkVHSU9OCQk0CisjCWRlZmluZSBDT05GSUdfU1lTX0FUTUVMX1RPVEFMU0VDVAkxMQorIwlkZWZpbmUgQ09ORklHX1NZU19BVE1FTF9TRUNUCQl7MSwgMiwgMSwgN30KKyMJZGVmaW5lIENPTkZJR19TWVNfQVRNRUxfU0VDVFNaCQl7MHg0MDAwLCAweDIwMDAsIDB4ODAwMCwgMHgxMDAwMH0KICNlbmRpZgogI2VuZGlmCiAKQEAgLTM5NiwyNCArMzk2LDI0IEBACiAjaWZkZWYgQ0ZfU1RNSUNST19CT09UCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfREVWCQkibm9yMSIKICMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX1NJWkUJMHgwMTAwMDAwMAotIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfT0ZGU0VUCShDRkdfRkxBU0gyX0JBU0UgKyAweDUwMDAwMCkKKyMJZGVmaW5lIENPTkZJR19KRkZTMl9QQVJUX09GRlNFVAkoQ09ORklHX1NZU19GTEFTSDJfQkFTRSArIDB4NTAwMDAwKQogI2VuZGlmCi0jaWZkZWYgQ0ZHX0FUTUVMX0JPT1QKKyNpZmRlZiBDT05GSUdfU1lTX0FUTUVMX0JPT1QKICMJZGVmaW5lIENPTkZJR19KRkZTMl9ERVYJCSJub3IxIgogIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfU0laRQkweDAxMDAwMDAwCi0jCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJKENGR19GTEFTSDFfQkFTRSArIDB4NTAwMDAwKQorIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfT0ZGU0VUCShDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgMHg1MDAwMDApCiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5URUxfQk9PVAorI2lmZGVmIENPTkZJR19TWVNfSU5URUxfQk9PVAogIwlkZWZpbmUgQ09ORklHX0pGRlMyX0RFVgkJIm5vcjAiCiAjCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9TSVpFCSgweDAxMDAwMDAwIC0gMHg1MDAwMDApCi0jCWRlZmluZSBDT05GSUdfSkZGUzJfUEFSVF9PRkZTRVQJKENGR19GTEFTSDBfQkFTRSArIDB4NTAwMDAwKQorIwlkZWZpbmUgQ09ORklHX0pGRlMyX1BBUlRfT0ZGU0VUCShDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICsgMHg1MDAwMDApCiAjZW5kaWYKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgYmFuayBkZWZpbml0aW9ucwpAQCAtNDI3LDM4ICs0MjcsMzggQEAKICAqIENTNSAtIEF2YWlsYWJsZQogICovCiAKLSNpZiBkZWZpbmVkKENGR19BVE1FTF9CT09UKSB8fCBkZWZpbmVkKENGR19TVE1JQ1JPX0JPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0FUTUVMX0JPT1QpIHx8IGRlZmluZWQoQ09ORklHX1NZU19TVE1JQ1JPX0JPT1QpCiAgLyogQXRtZWwgRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweDA0MDAwMDAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJMHgwMDA3MDAwMQotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAwMDExNDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9NQVNLCQkweDAwMDcwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAwMDExNDAKIC8qIEludGVsIEZsYXNoICovCi0jZGVmaW5lIENGR19DUzFfQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX01BU0sJCTB4MDFGRjAwMDEKLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMDAwRDYwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfTUFTSwkJMHgwMUZGMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DVFJMCQkweDAwMDAwRDYwCiAKLSNkZWZpbmUgQ0ZHX0FUTUVMX0JBU0UJCUNGR19DUzBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0FUTUVMX0JBU0UJCUNPTkZJR19TWVNfQ1MwX0JBU0UKICNlbHNlCiAvKiBJbnRlbCBGbGFzaCAqLwotI2RlZmluZSBDRkdfQ1MwX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDAxRkYwMDAxCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDAwMEQ2MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDFGRjAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDAwMEQ2MAogIC8qIEF0bWVsIEZsYXNoICovCi0jZGVmaW5lIENGR19DUzFfQkFTRQkJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX01BU0sJCTB4MDAwNzAwMDEKLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMDAxMTQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0JBU0UJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfTUFTSwkJMHgwMDA3MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DVFJMCQkweDAwMDAxMTQwCiAKLSNkZWZpbmUgQ0ZHX0FUTUVMX0JBU0UJCUNGR19DUzFfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0FUTUVMX0JBU0UJCUNPTkZJR19TWVNfQ1MxX0JBU0UKICNlbmRpZgogCiAvKiBDUExEICovCi0jZGVmaW5lIENGR19DUzJfQkFTRQkJMHgwODAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX01BU0sJCTB4MDAwNzAwMDEKLSNkZWZpbmUgQ0ZHX0NTMl9DVFJMCQkweDAwM2YxMTQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0JBU0UJCTB4MDgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfTUFTSwkJMHgwMDA3MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DVFJMCQkweDAwM2YxMTQwCiAKIC8qIEZQR0EgKi8KLSNkZWZpbmUgQ0ZHX0NTM19CQVNFCQkweDA5MDAwMDAwCi0jZGVmaW5lIENGR19DUzNfTUFTSwkJMHgwMDA3MDAwMQotI2RlZmluZSBDRkdfQ1MzX0NUUkwJCTB4MDAwMDAwMjAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfQkFTRQkJMHgwOTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19NQVNLCQkweDAwMDcwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NUUkwJCTB4MDAwMDAwMjAKIAogI2VuZGlmCQkJCS8qIF9NNTQ0NTVFVkJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL001NDc1RVZCLmggYi9pbmNsdWRlL2NvbmZpZ3MvTTU0NzVFVkIuaAppbmRleCAzN2IxYzYwLi5lNDhkZTE1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTTU0NzVFVkIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTTU0NzVFVkIuaApAQCAtMzksOSArMzksOSBAQAogI2RlZmluZSBDT05GSUdfTTU0NzUJCS8qIGRlZmluZSBwcm9jZXNzb3IgdHlwZSAqLwogCiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19IV19XQVRDSERPRwogI2RlZmluZSBDT05GSUdfV0FUQ0hET0dfVElNRU9VVAk1MDAwCS8qIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLCBtYXggdGltZW91dCBpcyA2Ljcxc2VjICovCkBAIC03MiwyNyArNzIsMjcgQEAKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQogIwlkZWZpbmUgQ09ORklHX0hBU19FVEgxCiAKLSMJZGVmaW5lIENGR19ETUFfVVNFX0lOVFNSQU0JMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMzIKLSMJZGVmaW5lIENGR19UWF9FVEhfQlVGRkVSCTQ4Ci0jCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJZGVmaW5lIENPTkZJR19TWVNfRE1BX1VTRV9JTlRTUkFNCTEKKyMJZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCisjCWRlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIKKyMJZGVmaW5lIENPTkZJR19TWVNfVFhfRVRIX0JVRkZFUgk0OAorIwlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogCi0jCWRlZmluZSBDRkdfRkVDMF9QSU5NVVgJCTAKLSMJZGVmaW5lIENGR19GRUMwX01JSUJBU0UJCUNGR19GRUMwX0lPQkFTRQotIwlkZWZpbmUgQ0ZHX0ZFQzFfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMV9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzFfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzFfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQogCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogCiAjCWRlZmluZSBDT05GSUdfRVRIQUREUgkwMDplMDowYzpiYzplNTo2MAogIwlkZWZpbmUgQ09ORklHX0VUSDFBRERSCTAwOmUwOjBjOmJjOmU1OjYxCkBAIC0xMTQsMjEgKzExNCwyMSBAQAogIwlkZWZpbmUgQ09ORklHX1BDSV9PSENJCiAjCWRlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgogCi0jCXVuZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCi0jCXVuZGVmIENGR19VU0JfT0hDSV9DUFVfSU5JVAotIwlkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1Ci0jCWRlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCQkiaXNwMTU2MSIKLSMJZGVmaW5lIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUworIwl1bmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKKyMJdW5kZWYgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAorIwlkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorIwlkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJCSJpc3AxNTYxIgorIwlkZWZpbmUgQ09ORklHX1NZU19PSENJX1NXQVBfUkVHX0FDQ0VTUwogI2VuZGlmCiAKIC8qIEkyQyAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGh3IHN1cHBvcnQgKi8KICN1bmRlZiBDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTgwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MDAwMDhGMDAKLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19NQkFSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MDAwMDhGMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX01CQVIKIAogLyogUENJICovCiAjaWZkZWYgQ09ORklHX0NNRF9QQ0kKQEAgLTEzNiwxOSArMTM2LDE5IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkxCiAjZGVmaW5lIENPTkZJR19QQ0lBVVRPX1NLSVBfSE9TVF9CUklER0UJMQogCi0jZGVmaW5lIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFCTgKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFCTgKIAotI2RlZmluZSBDRkdfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CVVMKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JVUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19CVVMJCTB4NzEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19QSFlTCQlDRkdfUENJX0lPX0JVUwotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTCQkweDcxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCUNPTkZJR19TWVNfUENJX0lPX0JVUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9DRkdfQlVTCQkweDcwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX1BIWVMJQ0ZHX1BDSV9DRkdfQlVTCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfQlVTCQkweDcwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NGR19QSFlTCUNPTkZJR19TWVNfUENJX0NGR19CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0ZHX1NJWkUJMHgwMTAwMDAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwpAQCAtMTc3LDI5ICsxNzcsMjkgQEAKIAkiIgogCiAjZGVmaW5lIENPTkZJR19QUkFNCQk1MTIJLyogNTEyIEtCICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSItPiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSItPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZmRlZiBDT05GSUdfQ01EX0tHREIKLSMJZGVmaW5lIENGR19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSMJZGVmaW5lIENGR19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAwMTAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQlDRkdfQlVTQ0xLCi0jZGVmaW5lIENGR19DUFVfQ0xLCQlDRkdfQ0xLICogMgorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NMSwkJCUNPTkZJR19TWVNfQlVTQ0xLCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX0NMSwkJQ09ORklHX1NZU19DTEsgKiAyCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOVFNSQU0JCShDRkdfTUJBUiArIDB4MTAwMDApCi0jZGVmaW5lIENGR19JTlRTUkFNU1oJCTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRTUkFNCQkoQ09ORklHX1NZU19NQkFSICsgMHgxMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRTUkFNU1oJCTB4ODAwMAogCi0vKiNkZWZpbmUgQ0ZHX0xBVENIX0FERFIJCShDRkdfQ1MxX0JBU0UgKyAweDgwMDAwKSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19MQVRDSF9BRERSCQkoQ09ORklHX1NZU19DUzFfQkFTRSArIDB4ODAwMDApKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMDksNjggKzIwOSw2OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEYyMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQ1RSTAkweDIxCi0jZGVmaW5lIENGR19JTklUX1JBTTFfQUREUgkoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9SQU1fRU5EKQotI2RlZmluZSBDRkdfSU5JVF9SQU0xX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTTFfQ1RSTAkweDIxCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkgLSAweDEwKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhGMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU0xX0FERFIJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNMV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNMV9DVFJMCTB4MjEKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkgLSAweDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9DRkcxCQkweDczNzExNjMwCi0jZGVmaW5lIENGR19TRFJBTV9DRkcyCQkweDQ2NzcwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9DVFJMCQkweEUxMEIwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9FTU9ECQkweDQwMDEwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9EUlZTVFJFTkdUSAkweDAwMDAwMkFBCi0jaWZkZWYgQ0ZHX0RSQU1TWjEKLSMJZGVmaW5lIENGR19TRFJBTV9TSVpFCShDRkdfRFJBTVNaICsgQ0ZHX0RSQU1TWjEpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzEJCTB4NzM3MTE2MzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcyCQkweDQ2NzcwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RSTAkJMHhFMTBCMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFJWU1RSRU5HVEgJMHgwMDAwMDJBQQorI2lmZGVmIENPTkZJR19TWVNfRFJBTVNaMQorIwlkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCShDT05GSUdfU1lTX0RSQU1TWiArIENPTkZJR19TWVNfRFJBTVNaMSkKICNlbHNlCi0jCWRlZmluZSBDRkdfU0RSQU1fU0laRQlDRkdfRFJBTVNaCisjCWRlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJQ09ORklHX1NZU19EUkFNU1oKICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFICsgMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoKENGR19TRFJBTV9TSVpFIC0gMykgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoKENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDMpIDw8IDIwKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKLSMJZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoQ0ZHX0NTMF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCShDT05GSUdfU1lTX0NTMF9CQVNFKQogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jCWRlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KLSMJZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCi0jaWZkZWYgQ0ZHX05PUjFTWgotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJKChDRkdfTk9SMVNaICsgQ0ZHX0JPT1RTWikgPDwgMjApCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19DUzBfQkFTRSwgQ0ZHX0NTMV9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX05PUjFTWgorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKENPTkZJR19TWVNfTk9SMVNaICsgQ09ORklHX1NZU19CT09UU1opIDw8IDIwKQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19DUzBfQkFTRSwgQ09ORklHX1NZU19DUzFfQkFTRSB9CiAjZWxzZQotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJKENGR19CT09UU1ogPDwgMjApCisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCShDT05GSUdfU1lTX0JPT1RTWiA8PCAyMCkKICNlbmRpZgogI2VuZGlmCiAKQEAgLTI4NSw3ICsyODUsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENoaXBzZWxlY3QgYmFuayBkZWZpbml0aW9ucwpAQCAtMjk4LDE0ICsyOTgsMTQgQEAKICAqIENTNCAtIEF2YWlsYWJsZQogICogQ1M1IC0gQXZhaWxhYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJKCgoQ0ZHX0JPT1RTWiA8PCAyMCkgLSAxKSAmIDB4RkZGRjAwMDEpCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDEwMTk4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCSgoKENPTkZJR19TWVNfQk9PVFNaIDw8IDIwKSAtIDEpICYgMHhGRkZGMDAwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDEwMTk4MAogCi0jaWZkZWYgQ0ZHX05PUjFTWgotI2RlZmluZSBDRkdfQ1MxX0JBU0UJCTB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkoKChDRkdfTk9SMVNaIDw8IDIwKSAtIDEpICYgMHhGRkZGMDAwMSkKLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMTAxRDgwCisjaWZkZWYgQ09ORklHX1NZU19OT1IxU1oKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkoKChDT05GSUdfU1lTX05PUjFTWiA8PCAyMCkgLSAxKSAmIDB4RkZGRjAwMDEpCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAxMDFEODAKICNlbmRpZgogCiAjZW5kaWYJCQkJLyogX001NDc1RVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NNTQ4NUVWQi5oIGIvaW5jbHVkZS9jb25maWdzL001NDg1RVZCLmgKaW5kZXggNDgyMTM2ZS4uMjhiZjBhZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL001NDg1RVZCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL001NDg1RVZCLmgKQEAgLTM5LDkgKzM5LDkgQEAKICNkZWZpbmUgQ09ORklHX001NDg1CQkvKiBkZWZpbmUgcHJvY2Vzc29yIHR5cGUgKi8KIAogI2RlZmluZSBDT05GSUdfTUNGVUFSVAotI2RlZmluZSBDRkdfVUFSVF9QT1JUCQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUX1BPUlQJCSgwKQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfSFdfV0FUQ0hET0cKICNkZWZpbmUgQ09ORklHX1dBVENIRE9HX1RJTUVPVVQJNTAwMAkvKiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcywgbWF4IHRpbWVvdXQgaXMgNi43MXNlYyAqLwpAQCAtNzIsMjcgKzcyLDI3IEBACiAjCWRlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKICMJZGVmaW5lIENPTkZJR19IQVNfRVRIMQogCi0jCWRlZmluZSBDRkdfRE1BX1VTRV9JTlRTUkFNCTEKLSMJZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSMJZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTMyCi0jCWRlZmluZSBDRkdfVFhfRVRIX0JVRkZFUgk0OAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RNQV9VU0VfSU5UU1JBTQkxCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTMyCisjCWRlZmluZSBDT05GSUdfU1lTX1RYX0VUSF9CVUZGRVIJNDgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKLSMJZGVmaW5lIENGR19GRUMxX1BJTk1VWAkJMAotIwlkZWZpbmUgQ0ZHX0ZFQzFfTUlJQkFTRQkJQ0ZHX0ZFQzBfSU9CQVNFCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfUElOTVVYCQkwCisjCWRlZmluZSBDT05GSUdfU1lTX0ZFQzBfTUlJQkFTRQkJQ09ORklHX1NZU19GRUMwX0lPQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMxX1BJTk1VWAkJMAorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMxX01JSUJBU0UJCUNPTkZJR19TWVNfRkVDMF9JT0JBU0UKIAogIwlkZWZpbmUgTUNGRkVDX1RPVVRfTE9PUAkJNTAwMDAKLS8qIElmIENGR19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KLSMJaWZuZGVmIENGR19ESVNDT1ZFUl9QSFkKKy8qIElmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCisjCWlmbmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogIwkJZGVmaW5lIEZFQ0RVUExFWAlGVUxMCiAjCQlkZWZpbmUgRkVDU1BFRUQJCV8xMDBCQVNFVAogIwllbHNlCi0jCQlpZm5kZWYgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCi0jCQkJZGVmaW5lIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJaWZuZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCQlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogIwkJZW5kaWYKLSMJZW5kaWYJCQkvKiBDRkdfRElTQ09WRVJfUEhZICovCisjCWVuZGlmCQkJLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgKi8KIAogIwlkZWZpbmUgQ09ORklHX0VUSEFERFIJMDA6ZTA6MGM6YmM6ZTU6NjAKICMJZGVmaW5lIENPTkZJR19FVEgxQUREUgkwMDplMDowYzpiYzplNTo2MQpAQCAtMTEyLDIwICsxMTIsMjAgQEAKICMJCWRlZmluZSBDT05GSUdfQ01EX1BDSQogIwllbmRpZgogLyojCWRlZmluZSBDT05GSUdfUENJX09IQ0kqLwotIwlkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQkJMHg4MDA0MTAwMAotIwlkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1Ci0jCWRlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCQkiaXNwMTU2MSIKLSMJZGVmaW5lIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUworIwlkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4ODAwNDEwMDAKKyMJZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKKyMJZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkiaXNwMTU2MSIKKyMJZGVmaW5lIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MKICNlbmRpZgogCiAvKiBJMkMgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBodyBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDAwMDA4RjAwCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfTUJBUgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDAwMDA4RjAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19NQkFSCiAKIC8qIFBDSSAqLwogI2lmZGVmIENPTkZJR19DTURfUENJCkBAIC0xMzMsMTcgKzEzMywxNyBAQAogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJMQogI2RlZmluZSBDT05GSUdfUENJQVVUT19TS0lQX0hPU1RfQlJJREdFCTEKIAotI2RlZmluZSBDRkdfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CVVMKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JVUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19CVVMJCTB4NzEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19QSFlTCQlDRkdfUENJX0lPX0JVUwotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTCQkweDcxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCUNPTkZJR19TWVNfUENJX0lPX0JVUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9DRkdfQlVTCQkweDcwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX1BIWVMJQ0ZHX1BDSV9DRkdfQlVTCi0jZGVmaW5lIENGR19QQ0lfQ0ZHX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfQlVTCQkweDcwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NGR19QSFlTCUNPTkZJR19TWVNfUENJX0NGR19CVVMKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0ZHX1NJWkUJMHgwMTAwMDAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwpAQCAtMTYzLDI5ICsxNjMsMjkgQEAKIAkiIgogCiAjZGVmaW5lIENPTkZJR19QUkFNCQk1MTIJLyogNTEyIEtCICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSItPiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSItPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZmRlZiBDT05GSUdfQ01EX0tHREIKLSMJZGVmaW5lIENGR19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworIwlkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSMJZGVmaW5lIENGR19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjCWRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAwMTAwMDAKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCi0jZGVmaW5lIENGR19DTEsJCQlDRkdfQlVTQ0xLCi0jZGVmaW5lIENGR19DUFVfQ0xLCQlDRkdfQ0xLICogMgorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NMSwkJCUNPTkZJR19TWVNfQlVTQ0xLCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX0NMSwkJQ09ORklHX1NZU19DTEsgKiAyCiAKLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOVFNSQU0JCShDRkdfTUJBUiArIDB4MTAwMDApCi0jZGVmaW5lIENGR19JTlRTUkFNU1oJCTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRTUkFNCQkoQ09ORklHX1NZU19NQkFSICsgMHgxMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRTUkFNU1oJCTB4ODAwMAogCi0vKiNkZWZpbmUgQ0ZHX0xBVENIX0FERFIJCShDRkdfQ1MxX0JBU0UgKyAweDgwMDAwKSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19MQVRDSF9BRERSCQkoQ09ORklHX1NZU19DUzFfQkFTRSArIDB4ODAwMDApKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xOTUsNjggKzE5NSw2OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEYyMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQ1RSTAkweDIxCi0jZGVmaW5lIENGR19JTklUX1JBTTFfQUREUgkoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfSU5JVF9SQU1fRU5EKQotI2RlZmluZSBDRkdfSU5JVF9SQU0xX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTTFfQ1RSTAkweDIxCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkgLSAweDEwKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhGMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQ1RSTAkweDIxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU0xX0FERFIJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNMV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNMV9DVFJMCTB4MjEKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkgLSAweDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9DRkcxCQkweDczNzExNjMwCi0jZGVmaW5lIENGR19TRFJBTV9DRkcyCQkweDQ2NzcwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9DVFJMCQkweEUxMEIwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9FTU9ECQkweDQwMDEwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9EUlZTVFJFTkdUSAkweDAwMDAwMkFBCi0jaWZkZWYgQ0ZHX0RSQU1TWjEKLSMJZGVmaW5lIENGR19TRFJBTV9TSVpFCShDRkdfRFJBTVNaICsgQ0ZHX0RSQU1TWjEpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzEJCTB4NzM3MTE2MzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcyCQkweDQ2NzcwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ1RSTAkJMHhFMTBCMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VNT0QJCTB4NDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9NT0RFCQkweDAxOEQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFJWU1RSRU5HVEgJMHgwMDAwMDJBQQorI2lmZGVmIENPTkZJR19TWVNfRFJBTVNaMQorIwlkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCShDT05GSUdfU1lTX0RSQU1TWiArIENPTkZJR19TWVNfRFJBTVNaMSkKICNlbHNlCi0jCWRlZmluZSBDRkdfU0RSQU1fU0laRQlDRkdfRFJBTVNaCisjCWRlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJQ09ORklHX1NZU19EUkFNU1oKICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFICsgMHg0MDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoKENGR19TRFJBTV9TSVpFIC0gMykgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoKENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDMpIDw8IDIwKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFICsgMHg0MDApCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgk2NCoxMDI0Ci0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKENGR19TRFJBTV9CQVNFICsgKENGR19TRFJBTV9TSVpFIDw8IDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAoQ09ORklHX1NZU19TRFJBTV9TSVpFIDw8IDIwKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2lmZGVmIENGR19GTEFTSF9DRkkKLSMJZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoQ0ZHX0NTMF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2lmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCShDT05GSUdfU1lTX0NTMF9CQVNFKQogIwlkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotIwlkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKLSMJZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jCWRlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KLSMJZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCi0jaWZkZWYgQ0ZHX05PUjFTWgotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJKChDRkdfTk9SMVNaICsgQ0ZHX0JPT1RTWikgPDwgMjApCi0jCWRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19DUzBfQkFTRSwgQ0ZHX0NTMV9CQVNFIH0KKyMJZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNpZmRlZiBDT05GSUdfU1lTX05PUjFTWgorIwlkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoKENPTkZJR19TWVNfTk9SMVNaICsgQ09ORklHX1NZU19CT09UU1opIDw8IDIwKQorIwlkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19DUzBfQkFTRSwgQ09ORklHX1NZU19DUzFfQkFTRSB9CiAjZWxzZQotIwlkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jCWRlZmluZSBDRkdfRkxBU0hfU0laRQkJKENGR19CT09UU1ogPDwgMjApCisjCWRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjCWRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCShDT05GSUdfU1lTX0JPT1RTWiA8PCAyMCkKICNlbmRpZgogI2VuZGlmCiAKQEAgLTI3MSw3ICsyNzEsNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENoaXBzZWxlY3QgYmFuayBkZWZpbml0aW9ucwpAQCAtMjg0LDE0ICsyODQsMTQgQEAKICAqIENTNCAtIEF2YWlsYWJsZQogICogQ1M1IC0gQXZhaWxhYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19DUzBfTUFTSwkJKCgoQ0ZHX0JPT1RTWiA8PCAyMCkgLSAxKSAmIDB4RkZGRjAwMDEpCi0jZGVmaW5lIENGR19DUzBfQ1RSTAkJMHgwMDEwMTk4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCSgoKENPTkZJR19TWVNfQk9PVFNaIDw8IDIwKSAtIDEpICYgMHhGRkZGMDAwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQ1RSTAkJMHgwMDEwMTk4MAogCi0jaWZkZWYgQ0ZHX05PUjFTWgotI2RlZmluZSBDRkdfQ1MxX0JBU0UJCTB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9NQVNLCQkoKChDRkdfTk9SMVNaIDw8IDIwKSAtIDEpICYgMHhGRkZGMDAwMSkKLSNkZWZpbmUgQ0ZHX0NTMV9DVFJMCQkweDAwMTAxRDgwCisjaWZkZWYgQ09ORklHX1NZU19OT1IxU1oKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9NQVNLCQkoKChDT05GSUdfU1lTX05PUjFTWiA8PCAyMCkgLSAxKSAmIDB4RkZGRjAwMDEpCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAxMDFEODAKICNlbmRpZgogCiAjZW5kaWYJCQkJLyogX001NDg1RVZCX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NQlguaCBiL2luY2x1ZGUvY29uZmlncy9NQlguaAppbmRleCBmZWQ0ZDczLi41ZjdjN2E4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTUJYLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01CWC5oCkBAIC02Nyw3ICs2Nyw3IEBACiAJCQkJIm5mc2FkZHJzPTEwLjAuMC45OToxMC4wLjAuMiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRSAgIC8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UgICAvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC05NiwyOSArOTYsMjkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiBIdXNoIHBhcnNlIGZvciBVLUJvb3QJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogSHVzaCBwYXJzZSBmb3IgVS1Cb290CSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEyOSw2MiArMTI5LDYyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQaHlzaWNhbCBtZW1vcnkgbWFwIGFzIGRlZmluZWQgYnkgdGhlIE1CWCBQR00KICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGQTIwMDAwMCAvKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0UJCTB4RkEwMDAwMDAgLyogTlZSQU0JCQkgICAgICovCi0jZGVmaW5lIENGR19OVlJBTV9PUgkJMHhmZmUwMDAwMCAvKiB3L28gc3BlZWQgZGVwZW5kZW50IGZsYWdzISEgICAgKi8KLSNkZWZpbmUgQ0ZHX0NTUl9CQVNFCQkweEZBMTAwMDAwIC8qIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVycwkgICAgICovCi0jZGVmaW5lIENGR19QQ0lNRU1fQkFTRQkJMHg4MDAwMDAwMCAvKiBQQ0kgSS9PIGFuZCBNZW1vcnkgU3BhY2VzCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSU1FTV9PUgkJMHhBMDAwMDEwOAotI2RlZmluZSBDRkdfUENJQlJJREdFX0JBU0UJMHhGQTIxMDAwMCAvKiBQQ0ktQnVzIEJyaWRnZSBSZWdpc3RlcnMJICAgICAqLwotI2RlZmluZSBDRkdfUENJQlJJREdFX09SCTB4RkZGRjAxMDgKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZBMjAwMDAwIC8qIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0UJCTB4RkEwMDAwMDAgLyogTlZSQU0JCQkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fT1IJCTB4ZmZlMDAwMDAgLyogdy9vIHNwZWVkIGRlcGVuZGVudCBmbGFncyEhICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1NSX0JBU0UJCTB4RkExMDAwMDAgLyogQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXJzCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNRU1fQkFTRQkJMHg4MDAwMDAwMCAvKiBQQ0kgSS9PIGFuZCBNZW1vcnkgU3BhY2VzCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNRU1fT1IJCTB4QTAwMDAxMDgKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lCUklER0VfQkFTRQkweEZBMjEwMDAwIC8qIFBDSS1CdXMgQnJpZGdlIFJlZ2lzdGVycwkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJQlJJREdFX09SCTB4RkZGRjAxMDgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9WUERfU0laRQkyNTYgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgdnBkIGJ1ZmZlciAqLwotI2RlZmluZSBDRkdfSU5JVF9WUERfT0ZGU0VUCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX0lOSVRfVlBEX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX0lOSVRfVlBEX09GRlNFVC04KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1ZQRF9TSVpFCTI1NiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciB2cGQgYnVmZmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIENPTkZJR19TWVNfSU5JVF9WUERfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1ZQRF9PRkZTRVQtOCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogT2Zmc2V0IGluIERQTUVNIHdoZXJlIHdlIGtlZXAgdGhlIFZQRCBkYXRhCiAgKi8KLSNkZWZpbmUgQ0ZHX0RQUkFNVlBECQkoQ0ZHX0lOSVRfVlBEX09GRlNFVCAtIDB4MjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EUFJBTVZQRAkJKENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUIC0gMHgyMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCiAjaWZkZWYJREVCVUcKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jdW5kZWYJQ0ZHX01PTklUT1JfQkFTRQkvKiAweDIwMDAwMAkgICB0byBydW4gVS1Cb290IGZyb20gUkFNICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI3VuZGVmCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCS8qIDB4MjAwMDAwCSAgIHRvIHJ1biBVLUJvb3QgZnJvbSBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIENvbmZpZ3VyYXRpb24KQEAgLTE5NCwxNSArMTk0LDE1IEBACiAgKiBhY2Nlc3MgdGhlIE5WUkFNIGF0IHRoZSBvZmZzZXQgMHgxMDAwLgogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkvKiB0dXJuIG9uIE5WUkFNIGVudiBmZWF0dXJlICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19OVlJBTV9CQVNFICsgMHgxMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX05WUkFNX0JBU0UgKyAweDEwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjEyLDEwICsyMTIsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyMywyMiArMjIzLDIyIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0vKiAjZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfRFBDIHwgU0lVTUNSX01MUkMxMCB8IFNJVU1DUl9TRU1FKSAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NTFJDMTEgfCBTSVVNQ1JfU0VNRSB8IFNJVU1DUl9CU0MgKQorLyogI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EUEMgfCBTSVVNQ1JfTUxSQzEwIHwgU0lVTUNSX1NFTUUpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NTFJDMTEgfCBTSVVNQ1JfU0VNRSB8IFNJVU1DUl9CU0MgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjQ2LDcgKzI0Niw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQgLSBsZWF2ZSBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHVuY2hhbmdlZCAhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjU1LDIzICsyNTUsMjMgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCShTQ0NSX1JURElWIHwgU0NDUl9SVFNFTCkKLSNkZWZpbmUgQ0ZHX1NDQ1IJU0NDUl9UQlMKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCVNDQ1JfVEJTCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCi0jZGVmaW5lIENGR19QQ01DSUFfSU5URVJSVVBUCVNJVV9MRVZFTDYKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU5URVJSVVBUCVNJVV9MRVZFTDYKIAogI2RlZmluZSBDT05GSUdfUENNQ0lBX1NMT1RfQQkxCiAKQEAgLTI4NywyOCArMjg3LDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQJIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVidWcgRW50cnkgTW9kZQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NQlg4NjBULmggYi9pbmNsdWRlL2NvbmZpZ3MvTUJYODYwVC5oCmluZGV4IGNjMDUxMTEuLjRjYjNhNjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NQlg4NjBULmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01CWDg2MFQuaApAQCAtNTYsMjEgKzU2LDIxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jdW5kZWYJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI6PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjdW5kZWYJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIjo+IgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC04MCw2MSArODAsNjEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJCTB4RkZBMDAwMDAKLSNkZWZpbmUgQ0ZHX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQotI2RlZmluZSBDRkdfTlZSQU1fQkFTRQkJMHhGQTAwMDAwMCAvKiBOVlJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX09SCQkweGZmZTAwMDAwIC8qIHcvbyBzcGVlZCBkZXBlbmRlbnQgZmxhZ3MhISAgICAqLwotI2RlZmluZSBDRkdfQ1NSX0JBU0UJCTB4RkExMDAwMDAgLyogQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXJzICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lNRU1fQkFTRQkJMHg4MDAwMDAwMCAvKiBQQ0kgSS9PIGFuZCBNZW1vcnkgU3BhY2VzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSU1FTV9PUgkJMHhBMDAwMDEwOAotI2RlZmluZSBDRkdfUENJQlJJREdFX0JBU0UJMHhGQTIxMDAwMCAvKiBQQ0ktQnVzIEJyaWRnZSBSZWdpc3RlcnMgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUJSSURHRV9PUgkweEZGRkYwMTA4CisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJCTB4RkZBMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFCQkweEZBMDAwMDAwIC8qIE5WUkFNICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX09SCQkweGZmZTAwMDAwIC8qIHcvbyBzcGVlZCBkZXBlbmRlbnQgZmxhZ3MhISAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTUl9CQVNFCQkweEZBMTAwMDAwIC8qIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVycyAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSU1FTV9CQVNFCQkweDgwMDAwMDAwIC8qIFBDSSBJL08gYW5kIE1lbW9yeSBTcGFjZXMgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSU1FTV9PUgkJMHhBMDAwMDEwOAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUJSSURHRV9CQVNFCTB4RkEyMTAwMDAgLyogUENJLUJ1cyBCcmlkZ2UgUmVnaXN0ZXJzICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJQlJJREdFX09SCTB4RkZGRjAxMDgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9WUERfU0laRQkyNTYgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgdnBkIGJ1ZmZlciAqLwotI2RlZmluZSBDRkdfSU5JVF9WUERfT0ZGU0VUCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX0lOSVRfVlBEX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAkoQ0ZHX0lOSVRfVlBEX09GRlNFVC04KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MmYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1ZQRF9TSVpFCTI1NiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciB2cGQgYnVmZmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIENPTkZJR19TWVNfSU5JVF9WUERfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1ZQRF9PRkZTRVQtOCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogT2Zmc2V0IGluIERQTUVNIHdoZXJlIHdlIGtlZXAgdGhlIFZQRCBkYXRhCiAgKi8KLSNkZWZpbmUgQ0ZHX0RQUkFNVlBECQkoQ0ZHX0lOSVRfVlBEX09GRlNFVCAtIDB4MjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EUFJBTVZQRAkJKENPTkZJR19TWVNfSU5JVF9WUERfT0ZGU0VUIC0gMHgyMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCiAvKjB4RkUwMDAwMDAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfSFdJTkZPX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIENGR19IV0lORk9fTEVOKQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIENPTkZJR19TWVNfSFdJTkZPX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJNAkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwk0CS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gQ29uZmlndXJhdGlvbgpAQCAtMTQ0LDE1ICsxNDQsMTUgQEAKICAqIGFjY2VzcyB0aGUgTlZSQU0gYXQgdGhlIG9mZnNldCAweDEwMDAuCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCS8qIHR1cm4gb24gTlZSQU0gZW52IGZlYXR1cmUgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX05WUkFNX0JBU0UgKyAweDEwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTlZSQU1fQkFTRSArIDB4MTAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjIsMTAgKzE2MiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTczLDIxICsxNzMsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EUEMgfCBTSVVNQ1JfTUxSQzEwIHwgU0lVTUNSX1NFTUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NTFJDMTAgfCBTSVVNQ1JfU0VNRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGIHwgUElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTE5NSw3ICsxOTUsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0IC0gbGVhdmUgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB1bmNoYW5nZWQgIQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTIwNCwxNCArMjA0LDE0IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwkoU0NDUl9SVERJViB8IFNDQ1JfUlRTRUwpCi0jZGVmaW5lIENGR19TQ0NSCVNDQ1JfVEJTCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUglTQ0NSX1RCUwogCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZQogKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0yMzUsMjAgKzIzNSwyMCBAQAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRTAwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweEZGMDEwMDAwCS8qIEZMQVNIIGJhbmsgIzAJKi8KIAotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRkYwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRkYwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMCwgVFJMWCA9IDEsIENTTlQgPSAxLCBTQ1kgPSAzLCBFSFRSID0gMAkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoMHhGRjgwMDAwMCB8IE9SX0NTTlRfU0FNIHwgT1JfQkkgfCBPUl9TQ1lfM19DTEspICAgLyogMSBNYnl0ZSB1bnRpbCBkZXRlY3RlZCBhbmQgb25seSAxIE1ieXRlIGlzIG5lZWRlZCovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgweEZFMDAwMDAwIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKDB4RkY4MDAwMDAgfCBPUl9DU05UX1NBTSB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLKSAgIC8qIDEgTWJ5dGUgdW50aWwgZGV0ZWN0ZWQgYW5kIG9ubHkgMSBNYnl0ZSBpcyBuZWVkZWQqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKDB4RkUwMDAwMDAgfCBCUl9WICkKIAogLyogQkNTUnggLSBCb2FyZCBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkweEZGQzAwMDAwIHwgT1JfQUNTX0RJVjQKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKDB4MDAwMDAwMDAgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkweEZGQzAwMDAwIHwgT1JfQUNTX0RJVjQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgweDAwMDAwMDAwIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAKIC8qCkBAIC0yNTYsMzAgKzI1NiwzMCBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKLSNkZWZpbmUgQ0ZHX01BTVIJCTB4MTM4MjEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SCQkweDEzODIxMDAwCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKICAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTUVUUk9CT1guaCBiL2luY2x1ZGUvY29uZmlncy9NRVRST0JPWC5oCmluZGV4IDE2ZDIzNjMuLmMwZGRkNDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NRVRST0JPWC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NRVRST0JPWC5oCkBAIC0xMDksNyArMTA5LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCSAgICAgLyogQ2FsbCBib2FyZF9wcmVfaW5pdAkqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX0YJICAxCSAgICAgLyogQ2FsbCBib2FyZCBtaXNjX2luaXRfZgkqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJICAxCSAgICAgLyogQ2FsbCBib2FyZCBtaXNjX2luaXRfcgkqLwotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkgICAgIC8qIERpc2FibGUtdGFrZXMgbG9uZyB0aW1lISovCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkgICAgIC8qIERpc2FibGUtdGFrZXMgbG9uZyB0aW1lISovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJICA2NjY2NjY2NiAgIC8qIGV4dGVybmFsIGZyZXEgdG8gcGxsCSovCiAKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTSAxCkBAIC0xMjEsMzQgKzEyMSwzNCBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAgICAweDAwMDAwMDAwICAgIC8qIF9tdXN0XyBiZSAwCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgICAgMHhmZmY4MDAwMCAgICAvKiBzdGFydCBvZiBGTEFTSAkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAweGZmZjgwMDAwICAgIC8qIHN0YXJ0IG9mIG1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAgICAweDgwMDAwMDAwICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UgICAgMHhlMDAwMDAwMCAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkgICAgICAgMHhjMDAwMDAwMCAgICAvKiBpbnRlcm5hbCBTUkFNCQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJICAgICAgIDB4ZDAwMDAwMDAgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAgICAweDAwMDAwMDAwICAgIC8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgICAgIDB4ZmZmODAwMDAgICAgLyogc3RhcnQgb2YgRkxBU0gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgIDB4ZmZmODAwMDAgICAgLyogc3RhcnQgb2YgbW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAgICAweDgwMDAwMDAwICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICAgIDB4ZTAwMDAwMDAgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCSAgICAgICAweGMwMDAwMDAwICAgIC8qIGludGVybmFsIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgICAgIDB4ZDAwMDAwMDAgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQotI2RlZmluZSBDRkdfRlBHQV9CQVNFCSAgICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODIwMDAwMCkKLSNkZWZpbmUgQ0ZHX0JNRTMyX0JBU0UJICAgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4NTAwMDAwKQotI2RlZmluZSBDRkdfR1BJT19CQVNFCSAgICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkgICAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MjAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JNRTMyX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODUwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JBU0UJICAgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAgICAxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSICAgICBDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgQ0ZHX0lTUkFNX0JBU0UgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgyMDAwCSAgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgIDEyOAkgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAgICAgQ09ORklHX1NZU19JU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgQ09ORklHX1NZU19JU1JBTV9CQVNFIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDIwMDAJICAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgIDEyOAkgICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSICAgIChDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSICAgIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAgICgyNTYgKiAxMDI0KSAgIC8qIFJzcnYgMjU2a0IgZm9yIE1vbgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgICAoMTI4ICogMTAyNCkgICAvKiBSc3J2IDEyOGtCIGZvciBtYWxsb2MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgICAoMjU2ICogMTAyNCkgICAvKiBSc3J2IDI1NmtCIGZvciBNb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAgICgxMjggKiAxMDI0KSAgIC8qIFJzcnYgMTI4a0IgZm9yIG1hbGxvYwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydApAQCAtMTU3LDcgKzE1Nyw3IEBACiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkgICAxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkgICAgICA5NjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTY3LDIxICsxNjcsMjEgQEAKICAqIFRoZSBEUzE3NDMgY29kZSBhc3N1bWVzIHRoaXMgY29uZGl0aW9uIChpLmUuIC0tIGl0IGFzc3VtZXMgdGhlIGJhc2UKICAqIGFkZHJlc3MgZm9yIHRoZSBSVEMgcmVnaXN0ZXJzIGlzOgogICoKLSAqCUNGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fU0laRQorICoJQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1NJWkUKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkgICAgICAoMHgyMDAwIC0gOCkgICAvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJICAgICAgKDB4MjAwMCAtIDgpICAgLyogTlZSQU0gc2l6ZSg4ayktIFJUQyByZWdzKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzE3NHggICAgIDEJCSAgICAgLyogRFMxNzQzIFJUQwkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgIDEJCSAgICAgLyogbnVtYmVyIG9mIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgOAkJICAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAxCQkgICAgIC8qIG51bWJlciBvZiBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICA4CQkgICAgIC8qIHNlY3RvcnMgcGVyIGRldmljZQkqLwogCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICAxMjAwMDAJICAgICAvKiBGbGFzaCBFcmFzZSBUTyAoaW4gbXMpCSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgNTAwCSAgICAgLyogRmxhc2ggV3JpdGUgVE8oaW4gbXMpCSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAxMjAwMDAJICAgICAvKiBGbGFzaCBFcmFzZSBUTyAoaW4gbXMpCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgIDUwMAkgICAgIC8qIEZsYXNoIFdyaXRlIFRPKGluIG1zKQkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCkBAIC0xOTQsOSArMTk0LDkgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkgICAgICAxCQkgICAgIC8qIEkyQyBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJICAgICAvKiBJMkMgIWJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJICAgICAgNDAwMDAwCSAgICAgLyogSTJDIHNwZWVkIDQwMGtIegkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCSAgICAgIDB4N0YJICAgICAvKiBJMkMgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTICAgICAgezB4Njl9CSAgICAgLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJICAgICAgNDAwMDAwCSAgICAgLyogSTJDIHNwZWVkIDQwMGtIegkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkgICAgICAweDdGCSAgICAgLyogSTJDIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgICAgICB7MHg2OX0JICAgICAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwogI2RlZmluZSBDT05GSUdfSTJDX0JVUzEJICAgICAgMQkJICAgICAvKiBJbmNsdWRlIGkyYyBidXMgMSBzdXBwCSovCiAKIApAQCAtMjA5LDE0ICsyMDksMTQgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUgIDEJCSAgICAgLyogYWxsb3cgZW52IG92ZXJ3cml0ZQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkgICAgICAweDEwMDAJICAgICAvKiBTaXplIG9mIEVudiB2YXJzCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkgICAgICAoQ0ZHX05WUkFNX0JBU0VfQUREUikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCSAgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUikKIAogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJICAgICAgImNvbnNvbGU9dHR5UzAsOTYwMCByb290PS9kZXYvbmZzIHJ3IG5mc3Jvb3Q9JHNlcnZlcmlwOi9ob21lL21ldHJvYm94MCBuZnNhZGRycz0kaXBhZGRyOjo6OjpldGgwOm5vbmUgIgogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQgICAgInRmdHAgODAwMDAwMCBwSW1hZ2UubWV0cm9ib3g7Ym9vdG0gODAwMDAwMCIKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWSAgICAgIDUJCSAgICAvKiBkaXNhYmxlIGF1dG9ib290ICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8gICAgIDEJCSAgICAgLyogZWNobyBvbiBmb3Igc2VyaWFsIGRubGQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFIDEJCSAgICAgLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UgMQkJICAgICAvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTmV0d29ya2luZwpAQCAtMjM5LDcgKzIzOSw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRNQVNLCSAgICAgIDI1NS4yNTUuMC4wCiAjZGVmaW5lIENPTkZJR19FVEhBRERSCSAgICAgIDAwOjAwOjAwOjAwOjAwOjAwIC8qIE5vIEVNQUMgMCBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19FVEgxQUREUgkgICAgICAwMDowMDowMDowMDowMDowMCAvKiBObyBFTUFDIDEgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUiAgICAgMzIJICAgICAvKiAjZXRoIHJ4IGJ1ZmYgJiBkZXNjcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSICAgICAzMgkgICAgIC8qICNldGggcnggYnVmZiAmIGRlc2NycwkqLwogCiAKIC8qCkBAIC0yNzcsMzMgKzI3NywzMyBAQAogLyogSW5jbHVkZSBhdXRvIGNvbXBsZXRlIHdpdGggdGFicyAqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURSAxCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFIDEKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCSAgICAgMQkgICAgIC8qIHVzZSByZWFsIG1lbW9yeSB0ZXN0CSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCSAgICAgMQkgICAgIC8qIHVzZSByZWFsIG1lbW9yeSB0ZXN0CSAqLwogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCSAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkgICAgICAiTWV0cm9Cb3g9PiAiICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICJNZXRyb0JveD0+ICIgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJICAgICAgIDEJICAgICAvKiBIVVNIIGZvciBleHQnZCBjbGkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAgICAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJICAgICAgIDEJICAgICAvKiBIVVNIIGZvciBleHQnZCBjbGkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgICAgIj4gIgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENvbnNvbGUgQnVmZmVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgIDEwMjQJICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAxMDI0CSAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgMjU2CSAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgMjU2CSAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAJCQkJCSAgICAgLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJICAgICAgMTYJICAgICAvKiBtYXggbnVtYmVyIG9mIGNtZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICBDRkdfQ0JTSVpFICAgICAvKiBCb290IEFyZyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJICAgICAgMTYJICAgICAvKiBtYXggbnVtYmVyIG9mIGNtZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgQ09ORklHX1NZU19DQlNJWkUgICAgIC8qIEJvb3QgQXJnIEJ1ZmZlciBTaXplCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBUZXN0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgICAgMHgwNDAwMDAwCSAgICAgLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgICAgMHgwQzAwMDAwCSAgICAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgIDB4MDQwMDAwMAkgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkgICAgICAweDBDMDAwMDAJICAgICAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENvbXBhY3QgRmxhc2ggKGluIHRydWUgSURFIG1vZGUpCkBAIC0zMTIsMTYgKzMxMiwxNiBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAKICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCSAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwMDAJIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MTAwMDAwIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCSAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCSAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgxMDAwMDAgLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTIJIC8qIERpcmVjdGx5IGNvbm5lY3RlZCBDRiwgbmVlZHMgYSBzdHJpZGUKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFCQkyCSAvKiBEaXJlY3RseSBjb25uZWN0ZWQgQ0YsIG5lZWRzIGEgc3RyaWRlCiAJCQkJCSAgICB0byBnZXQgdG8gdGhlIGNvcnJlY3Qgb2Zmc2V0ICovCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OICAxCQkgICAgIC8qIEluY2x1ZGUgZG9zIHBhcnRpdGlvbgkqLwogCkBAIC0zMzIsMjAgKzMzMiwyMCBAQAogI2RlZmluZSBDT05GSUdfUENJCQkJICAgICAvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJICAgICAvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheQkqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJICAgICAvKiBzaG93IHBjaSBkZXZpY2VzCSovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgICAoQ0ZHX1BDSV9NRU1CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAgIChDT05GSUdfU1lTX1BDSV9NRU1CQVNFKQogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAkJICAgICAvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQJCSAgICAgLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxN0JBCSAgICAgLyogU2FuZGJ1cnN0ICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkgICAgIC8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDE3QkEJICAgICAvKiBTYW5kYnVyc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkgICAgIC8qIFdoYXRldmVyICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTM2NCwxMCArMzY0LDEwIEBACiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJCSAgICAgLyogd2F0Y2hkb2cgZGlzYWJsZWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkgICAgICAweDgwMDAwMDAJICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCSAgICAgIDEJCSAgICAgLyogdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJICAgICAgMHg4MDAwMDAwCSAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JICAgICAgMQkJICAgICAvKiB1c2UgZXh0ZW5kZWQgYm9hcmRfaW5mbyAqLwogCi0jZGVmaW5lIENGR19IWgkJICAgICAgMTAwCSAgICAgLyogZGVjciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgIDEwMAkgICAgIC8qIGRlY3IgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTUhQQy5oIGIvaW5jbHVkZS9jb25maWdzL01IUEMuaAppbmRleCBhNzkwMWU1Li44ZTdmOWNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTUhQQy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NSFBDLmgKQEAgLTYzLDcgKzYzLDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAjZGVmaW5lIENPTkZJR19SVENfTVBDOHh4CQkvKiB1c2UgaW50ZXJuYWwgUlRDIG9mIE1QQzh4eAkqLwpAQCAtODksMTQgKzg5LDE0IEBACiAJCQllbHNlCWltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+UEJfU0NMCiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCQk1MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkJMHhGRQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEVFUFJPTSBYMjRDMDQJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIGJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkJNTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEVFUFJPTSBYMjRDMDQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQkvKiBieXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCiAjZGVmaW5lIExDRF9WSURFT19BRERSCQkoU0RSQU1fTUFYX1NJWkUtU0RSQU1fUkVTX1NJWkUpCiAjZGVmaW5lIExDRF9WSURFT19TSVpFCQlTRFJBTV9SRVNfU0laRQkvKiAyTUIgKi8KQEAgLTE0MiwyNSArMTQyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTcxLDI5ICsxNzEsMjkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBoeXNpY2FsIG1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMCAvKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwIC8qIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmUwMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jdW5kZWYJQ0ZHX01PTklUT1JfQkFTRQkJICAgIC8qIHRvIHJ1biBVLUJvb3QgZnJvbSBSQU0gKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4NDAwMDAJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjdW5kZWYJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCSAgICAvKiB0byBydW4gVS1Cb290IGZyb20gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpAQCAtMjE4LDI2ICsyMTgsMjYgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcC0gZm9yIExpbnV4CSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwLSBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCUNGR19NT05JVE9SX0xFTiAvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4gLyogT2Zmc2V0IG9mIEVudmlyb25tZW50ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMCAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ3LDEwICsyNDcsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXUCkKICNlbmRpZgogCkBAIC0yNTksMjcgKzI1OSwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfU0VNRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9TRU1FKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMi0xOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTAsNyArMjkwLDcgQEAKICNkZWZpbmUgTVBDOFhYX1NQRUVECTUwMDAwMDAwTAogI2RlZmluZSBNUEM4WFhfWElOCTUwMDAwMDBMICAgICAgLyogcmVmIGNsayAqLwogI2RlZmluZSBNUEM4WFhfRkFDVAkoTVBDOFhYX1NQRUVEL01QQzhYWF9YSU4pCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgUExQUkNSX01GX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgUExQUkNSX01GX1NISUZUKSB8IFwKIAkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzAxLDcgKzMwMSw3IEBACiAgKi8KIAogI2RlZmluZSBTQ0NSX01BU0sJKFNDQ1JfUlRESVYgfCBTQ0NSX1JUU0VMKSAgICAgLyogU0NDUl9FQkRGMTEgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTIHwgU0NDUl9ERkxDRDAwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyB8IFNDQ1JfREZMQ0QwMDEpCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzEwLDggKzMxMCw4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaAogICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkweEMwCi0jZGVmaW5lIENGR19NQU1SCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSB8IE1BTVJfUFRBRSB8IE1BTVJfRzBDTEFfQTExIHwgTUFNUl9UTEZBX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkweEMwCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpIHwgTUFNUl9QVEFFIHwgTUFNUl9HMENMQV9BMTEgfCBNQU1SX1RMRkFfTVNLKQogCiAvKgogICogQlIwIGFuZCBPUjAgKEZMQVNIKSB1c2VkIHRvIHJlLW1hcCBGTEFTSApAQCAtMzIwLDE0ICszMjAsMTQgQEAKIC8qIGFsbG93IGZvciBtYXggOCBNQiBvZiBGbGFzaCAqLwogI2RlZmluZSBGTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzAqLwogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRTAwMDAwMAkvKiBGTEFTSCBiYW5rICMwKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweEZGODAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gfCBPUl9CSSB8IE9SX1NDWV84X0NMSykgLyogKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV82X0NMSykqLworI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gfCBPUl9CSSB8IE9SX1NDWV84X0NMSykgLyogKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IE9SX1NDWV82X0NMSykqLwogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX01TX0dQQ00gfCBCUl9WICkKIAogLyoKICAqIEJSMSBhbmQgT1IxIChTRFJBTSkKQEAgLTMzNyw0NiArMzM3LDQ2IEBACiAjZGVmaW5lIFNEUkFNX1JFU19TSVpFCQkweDAwMjAwMDAwCS8qIDIgTUIgZm9yIGZyYW1lYnVmZmVyICovCiAKIC8qIFNEUkFNIHRpbWluZzogZHJpdmUgR1BMNSBoaWdoIG9uIGZpcnN0IGN5Y2xlICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JKE9SX0c1TFMpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCShPUl9HNUxTKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCSgofihTRFJBTV9NQVhfU0laRSkrMSl8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoKH4oU0RSQU1fTUFYX1NJWkUpKzEpfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvT1IyIC0gRElNTQogICovCi0jZGVmaW5lIENGR19PUjIJCShPUl9BQ1NfRElWNCkKLSNkZWZpbmUgQ0ZHX0JSMgkJKEJSX01TX1VQTUEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkoT1JfQUNTX0RJVjQpCisjZGVmaW5lIENPTkZJR19TWVNfQlIyCQkoQlJfTVNfVVBNQSkKIAogLyoKICAqIEJSMy9PUjMgLSBESU1NCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMwkJKE9SX0FDU19ESVY0KQotI2RlZmluZSBDRkdfQlIzCQkoQlJfTVNfVVBNQSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjMJCShPUl9BQ1NfRElWNCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjMJCShCUl9NU19VUE1BKQogCiAvKgogICogQlI0L09SNAogICovCi0jZGVmaW5lIENGR19PUjQJCTAKLSNkZWZpbmUgQ0ZHX0JSNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNAkJMAogCiAvKgogICogQlI1L09SNQogICovCi0jZGVmaW5lIENGR19PUjUJCTAKLSNkZWZpbmUgQ0ZHX0JSNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNQkJMAogCiAvKgogICogQlI2L09SNgogICovCi0jZGVmaW5lIENGR19PUjYJCTAKLSNkZWZpbmUgQ0ZHX0JSNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNgkJMAogCiAvKgogICogQlI3L09SNwogICovCi0jZGVmaW5lIENGR19PUjcJCTAKLSNkZWZpbmUgQ0ZHX0JSNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNwkJMAogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM4NCw3ICszODQsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NSVA0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9NSVA0MDUuaAppbmRleCAyOGIzODAyLi43ZGNmMTg1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTUlQNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01JUDQwNS5oCkBAIC05MCw4ICs5MCw4IEBACiAKICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCiAKLSNkZWZpbmUJIENGR19IVVNIX1BBUlNFUgotI2RlZmluZQkgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lCSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEkyQyBTdHVmZjoKICAqIHRoZSBNSVA0MDUgaXMgZXF1aXBlZCB3aXRoIGFuIEF0bWVsIDI0QzEyOC8yNTYgRUVQUk9NIGF0IGFkZHJlc3MKQEAgLTEwMCwxNyArMTAwLDE3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MwkvKiBFRVBST00gMjRDMTI4LzI1NgkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUzCS8qIEVFUFJPTSAyNEMxMjgvMjU2CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIgICAgKi8KLSN1bmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogVGhlIEF0bWVsIDI0QzEyOC8yNTYgaGFzCSovCisjdW5kZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogVGhlIEF0bWVsIDI0QzEyOC8yNTYgaGFzCSovCiAJCQkJCS8qIDY0IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdAk2IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogdXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwpAQCAtMTQyLDU0ICsxNDIsNTQgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIGRlZmluZXMgaWYgdGhlIGNvbnNvbGUgaXMgc3RvcmVkIGluIHRoZSBlbnZpcm9ubWVudAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCS8qIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgaW4gZXZpcm9ubWVudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCS8qIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgaW4gZXZpcm9ubWVudCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogZGVmaW5lcyBpZiBhbiBvdmVyd3JpdGVfY29uc29sZSBmdW5jdGlvbiBleGlzdHMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogZGVmaW5lcyBpZiB0aGUgb3ZlcndyaXRlX2NvbnNvbGUgc2hvdWxkIGJlIHN0b3JlZCBpbiB0aGUKICAqIGVudmlyb25tZW50CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jdW5kZWYgQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQorI3VuZGVmIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogbG9hZHMgY29uZmlnCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogMSAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDEgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVEICAgICAgIDkxNjY2NworI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQgICAgICAgOTE2NjY3CiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMjAzLDQwICsyMDMsNDAgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9IT1NUIFBDSV9IT1NUX0ZPUkNFCS8qIGNvbmZpZ3VyZSBhcyBwY2ktaG9zdAkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwogCQkJCQkvKiByZXNvdXJjZSBjb25maWd1cmF0aW9uCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMAkvKiBQQ0kgVmVuZG9yIElEOiB0by1kbyEhIQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAJLyogUENJIERldmljZSBJRDogdG8tZG8hISEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAJLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMAkvKiBQQ0kgRGV2aWNlIElEOiB0by1kbyEhIQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlIDEwMjQga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZSAxMDI0IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpAQCAtMjY5LDEwICsyNjksMTAgQEAKICAqIFBPU1QgQ29uZmlndXJhdGlvbgogICovCiAjaWYgMCAvKiBlbmFibGUgdGhpcyBpZiBQT1NUIGlzIGRlc2lyZWQgKGlzIHN1cHBvcnRlZCBidXQgbm90IGVuYWJsZWQpICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZCXwgXAotCQkJCSBDRkdfUE9TVF9DUFUJCXwgXAotCQkJCSBDRkdfUE9TVF9SVEMJCXwgXAotCQkJCSBDRkdfUE9TVF9JMkMpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkJfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9SVEMJCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDKQogCiAjZW5kaWYKIC8qCkBAIC0yOTcsMjIgKzI5NywyMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBPbiBDaGlwIFNSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNICAgICAgMQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUJLyogRW5kIG9mIE9uIENoaXAgU1JBTQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkvKiBpbnNpZGUgb2YgT24gQ2hpcCBTUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkvKiBFbmQgb2YgT24gQ2hpcCBTUkFNCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAvKiByZXNlcnZlIHNvbWUgbWVtb3J5IGZvciBQT1NUIGFuZCBCT09UIGxpbWl0IGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMzIpCiAKICNpZmRlZiAgQ09ORklHX1BPU1QJCS8qIHJlc2VydmUgb25lIHdvcmQgZm9yIFBPU1QgSW5mbyAqLwotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSA0KQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDQpCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19CT09UQ09VTlRfTElNSVQgLyogcmVzZXJ2ZSAyIHdvcmQgZm9yIGJvb3Rjb3VudCBsaW1pdCAqLwotI2RlZmluZSBDRkdfQk9PVENPVU5UX0FERFIgKENGR19HQkxfREFUQV9PRkZTRVQgLSAxMikKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ09VTlRfQUREUiAoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAxMikKICNlbmRpZgogCiAvKgpAQCAtMzI3LDcgKzMyNyw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEV4dGVybmFsIHBlcmlwaGVyYWwgYmFzZSBhZGRyZXNzCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19JU0FfSU9fQkFTRV9BRERSRVNTIDB4RTgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIDB4RTgwMDAwMDAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBMYXN0IFN0YWdlIEluaXQKQEAgLTM1MCwxOSArMzUwLDE5IEBACiAgKiBJREUvQVRBIHN0dWZmCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2lmIGRlZmluZWQoQ09ORklHX01JUDQwNVQpCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxICAgLyogTUlQNDA1VCBoYXMgb25seSBvbmUgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEgICAvKiBNSVA0MDVUIGhhcyBvbmx5IG9uZSBJREUgYnVzCSovCiAjZWxzZQotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMUYwCQkvKiBpZGUwIG9mZnN0ZSAqLwotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTB4MDE3MAkJLyogaWRlMSBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkwCQkvKiBkYXRhIHJlZyBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTAJCS8qIHJlZyBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MjAwCQkvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDFGMAkJLyogaWRlMCBvZmZzdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJMHgwMTcwCQkvKiBpZGUxIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCQkvKiBkYXRhIHJlZyBvZmZzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkwCQkvKiByZWcgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgyMDAJCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KIAogI3VuZGVmCUNPTkZJR19JREVfOHh4X0RJUkVDVCAgICAgIC8qIG5vIHBjbWNpYSBpbnRlcmZhY2UgcmVxdWlyZWQgKi8KICN1bmRlZglDT05GSUdfSURFX0xFRAkgICAgICAgLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkICAgICAqLwpAQCAtMzg0LDEwICszODQsMTAgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLwotI2RlZmluZSBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogS2V5Ym9hcmQgc3VwcG9ydAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTQxMyw3ICs0MTMsNyBAQAogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKIAogLyogRW5hYmxlIG5lZWRlZCBoZWxwZXIgZnVuY3Rpb25zICovCi0jZGVmaW5lIENGR19ERVZJQ0VfREVSRUdJU1RFUgkJLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUgkJLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KICNlbmRpZgogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogRGVidWcgc3VwcG9ydApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01MMi5oIGIvaW5jbHVkZS9jb25maWdzL01MMi5oCmluZGV4IDExMzIzZGIuLjE5MDIzOTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NTDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTUwyLmgKQEAgLTczLDcgKzczLDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyoKQEAgLTExMSw3NyArMTExLDc3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAogLyoKLSAqIElmIENGR19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgotICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENGR19CQVNFX0JBVUQgdmFsdWUuCisgKiBJZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgorICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENPTkZJR19TWVNfQkFTRV9CQVVEIHZhbHVlLgogICogVGhlIExpbnV4IEJBU0VfQkFVRCBkZWZpbmUgc2hvdWxkIG1hdGNoIHRoaXMgY29uZmlndXJhdGlvbi4KICAqICAgIGJhc2VCYXVkID0gY3B1Q2xvY2svKHVhcnREaXZpc29yKjE2KQotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAogICogc2V0IExpbnV4IEJBU0VfQkFVRCB0byA0MDMyMDAuCiAgKi8KLSN1bmRlZiAgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgICAgICAgICAgIC8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI3VuZGVmICBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5ICAgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyN1bmRlZiAgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLICAgICAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZiAgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkgICAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLwogCi0jZGVmaW5lIENGR19CQVNFX0JBVUQgICAgICAgKDMxMjUwMDAqMTYpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyBDRkdfQkFTRV9CQVVECi0jZGVmaW5lIENGR19EVUFSVF9DSEFOCQkwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhhMDAwMTAwMwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCTB4YTAwMTEwMDMKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgLTQKLSNkZWZpbmUgQ0ZHX05TMTY1NTAgMQotI2RlZmluZSBDRkdfSU5JVF9DSEFOMQkgMQotI2RlZmluZSBDRkdfSU5JVF9DSEFOMgkgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRCAgICAgICAoMzEyNTAwMCoxNikKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyBDT05GSUdfU1lTX0JBU0VfQkFVRAorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0NIQU4JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhhMDAwMTAwMworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkweGEwMDExMDAzCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAtNAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAgMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfQ0hBTjEJIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0NIQU4yCSAxCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDE4MDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgxODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTk2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKiBCRUcgRU5WSVJPTk5FTUVOVCBGTEFTSCAqLwogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKQEAgLTE5MywxMyArMTkzLDEzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZjAwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkweDFmZjgJCS8qIE5WUkFNIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkweDFmZjgJCS8qIE5WUkFNIHNpemUJKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTlZSQU0KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KICNlbmRpZgogCiAvKgpAQCAtMjA4LDcgKzIwOCw3IEBACiAgKiBCUjAvMSBhbmQgT1IwLzEgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkwCQkvKiBGTEFTSCBiYW5rICMxCSovCiAKIApAQCAtMjE5LDExICsyMTksMTEgQEAKICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgICAweDgwMDAwMCAgLyogaW5zaWRlIG9mIFNEUkFNICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgICAgMHgyMDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgMHg4MDAwMDAgIC8qIGluc2lkZSBvZiBTRFJBTSAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgICAweDIwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEVFUFJPTSBhZGRyZXNzCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTU9VU1NFLmggYi9pbmNsdWRlL2NvbmZpZ3MvTU9VU1NFLmgKaW5kZXggYjY5Y2VkNi4uOTg2NTkwYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01PVVNTRS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NT1VTU0UuaApAQCAtNDgsNyArNDgsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDODI0WCAgICAgIDEKICNkZWZpbmUgQ09ORklHX01QQzgyNDAgICAgICAxCiAjZGVmaW5lIENPTkZJR19NT1VTU0UgICAgICAgMQotI2RlZmluZSBDRkdfQUREUl9NQVBfQiAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19BRERSX01BUF9CICAgICAgMQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgIDEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFICAgICA5NjAwCiAjaWYgMQpAQCAtODgsNzUgKzg4LDc1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jdW5kZWYgQ0ZHX0xPTkdIRUxQICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAgIj0+IiAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAyNTYgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgIDggICAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0xPTkdIRUxQICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVCAgICAgICI9PiIgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgIDI1NiAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgIDggICAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KIAotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgQ0ZHX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgMHgwMDEwMDAwMCAgLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFICAgIENPTkZJR19TWVNfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgMHgwMDEwMDAwMCAgLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRSAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFICAgICAgMHgwMDAwMDAwMAogCiAjaWZkZWYgREVCVUcKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBDRkdfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFCiAjZW5kaWYKIAogI2lmZGVmIERFQlVHCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTiAgICAgKDQgPDwgMjApCS8qIGxvdHMgb2YgbWVtIC4uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOICAgICAoNCA8PCAyMCkJLyogbG90cyBvZiBtZW0gLi4uICovCiAjZWxzZQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4gICAgICg1MTIgPDwgMTApCS8qIDUxMksgUExDQyBib290cm9tICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gICAgICg1MTIgPDwgMTApCS8qIDUxMksgUExDQyBib290cm9tICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAoMiooNDA5NiA8PCAxMCkpICAgIC8qIDIqNDA5NmtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgKDIqKDQwOTYgPDwgMTApKSAgICAvKiAyKjQwOTZrQiBmb3IgbWFsbG9jKCkgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTSAgICovCiAKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSICAgICAgIDB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIgICAgICAgMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19JU0FfTUVNICAgICAgICAgMHhGRDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPICAgICAgICAgIDB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNICAgICAgICAgMHhGRDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAgICAgICAgICAweEZFMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAweEZGRjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFICAgICAgKCh1aW50KSg1MTIgKiAxMDI0KSkKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgIDB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFICAgICAgKCh1aW50KSg1MTIgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0gIDB4RkZGMDAwMDAgIC8qIDUxMksgUExDQyBGTEFTSC9BTTI5RjA0MCovCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1NJWkUgICAgMHg4MDAwMCAgICAgLyogNTEySyAqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0gIDB4RkZFMTAwMDAgIC8qIEFNRCAyOUxWMTYwREIKIAkJCQkJICAgMU1CIC0gNjRLIEZMQVNIMCBTRUcgPTk2MEsKIAkJCQkJICAgKHNpemU9MHhmMDAwMCkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkxODQzMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkxODQzMjAwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhGRkUwODA4MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweEZGRTA4MDgwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgQ0ZHX1NEUkFNX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgIDB4MkYwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgIDY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgMHgyRjAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgIDY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjcsMjQgKzE2NywyNCBAQAogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMDAwMDAwCS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwgKi8KICNkZWZpbmUgQ09ORklHX1BMTF9QQ0lfVE9fTUVNX01VTFRJUExJRVIgIDIKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgICAgMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgICAgMTAwMAogCi0jZGVmaW5lIENGR19FVEhfREVWX0ZOICAgICAgIDB4MDAKLSNkZWZpbmUgQ0ZHX0VUSF9JT0JBU0UgICAgICAgMHgwMDEwNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9ERVZfRk4gICAgICAgMHgwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9JT0JBU0UgICAgICAgMHgwMDEwNDAwMAogCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JPTU5BTCAgICAgICAgICA4Ci0jZGVmaW5lIENGR19ST01GQUwgICAgICAgICAgOAorI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTCAgICAgICAgICA4CisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMICAgICAgICAgIDgKIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IyLgogCSAqLwotI2RlZmluZSBDRkdfUkVGSU5UICAgICAgICAgIDB4ZjUgICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVCAgICAgICAgICAweGY1ICAgICAvKiBSZWZyZXNoIGludGVydmFsICAgICAgICAgICAgICAgKi8KIAogCS8qIEJ1cnN0IFRvIFByZWNoYXJnZS4gQml0cyBvZiB0aGlzIHZhbHVlIGdvIHRvIE1DQ1IzIGFuZCBNQ0NSNC4KIAkgKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUgICAgICAgICAweDc5CisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRSAgICAgICAgIDB4NzkKIAogI2lmZGVmIElOQ0xVREVfRUNDCiAjZGVmaW5lIFVTRV9FQ0MJCQkJMQpAQCAtMTk1LDE4ICsxOTUsMTggQEAKIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLgogCSAqLwotI2RlZmluZSBDRkdfUkVGUkVDICAgICAgICAgIDggICAgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAgICovCi0jZGVmaW5lIENGR19SRExBVCAgICAgICAgICAgKDQrVVNFX0VDQykgICAvKiBEYXRhIGxhdGFuY3kgZnJvbSByZWFkIGNvbW1hbmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMgICAgICAgICAgOCAgICAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRExBVCAgICAgICAgICAgKDQrVVNFX0VDQykgICAvKiBEYXRhIGxhdGFuY3kgZnJvbSByZWFkIGNvbW1hbmQgKi8KIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QgICAgICAgIDMgICAgICAgLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsICovCi0jZGVmaW5lIENGR19BQ1RUT1BSRSAgICAgICAgNSAgICAgICAvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUICAzICAgICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeSAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAgICAgIDAgICAgICAgLyogU0RNT0RFIHdyYXAgdHlwZSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4gMiAgICAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVyAgICAgICAgICAyCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgKDEtVVNFX0VDQykKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVCAgICAgICAgMyAgICAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRSAgICAgICAgNSAgICAgICAvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMyAgICAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUCAgICAgMCAgICAgICAvKiBTRE1PREUgd3JhcCB0eXBlICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4gMiAgICAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcgICAgICAgICAgMgorI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAoMS1VU0VfRUNDKQogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5ncy4KICAqIE9ubHkgYml0cyAyMC0yOSBhcmUgYWN0dWFsbHkgdXNlZCBmcm9tIHRoZXNlIHZhbGVzIHRvIHNldCB0aGUKQEAgLTIxNCw3MSArMjE0LDcxIEBACiAgKiAyMCBiaXRzIHdpbGwgYmUgMHgwMDAwMCBmb3IgYSBzdGFydCBhZGRyZXNzLCBvciAweGZmZmZmIGZvciBhbiBlbmQKICAqIGFkZHJlc3MuIFJlZmVyIHRvIHRoZSBNUEM4MjQwIGJvb2suCiAgKi8KLSNkZWZpbmUgQ0ZHX1JBTV9TSVpFICAgICAgICAweDA0MDAwMDAwICAvKiA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX1NJWkUgICAgICAgIDB4MDQwMDAwMDAgIC8qIDY0TUIgKi8KIAogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVCAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5EICAgICAgIChDRkdfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFICAgIDEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUICAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQgICAgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVCAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORCAgICAgICAoQ09ORklHX1NZU19SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFICAgIDAKIAotI2RlZmluZSBDRkdfT0RDUiAgICAgICAgICAgIDB4N2YKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSICAgICAgICAgICAgMHg3ZgogCiAKLSNkZWZpbmUgQ0ZHX1BHTUFYICAgICAgICAgICAweDMyIC8qIGhvdyBsb25nIHRoZSA4MjQwIHJlYXRpbnMgdGhlIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeQorI2RlZmluZSBDT05GSUdfU1lTX1BHTUFYICAgICAgICAgICAweDMyIC8qIGhvdyBsb25nIHRoZSA4MjQwIHJlYXRpbnMgdGhlIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeQogCQkJCSAgICBzZWUgODI0MCBib29rIGZvciBkZXRhaWxzKi8KICNkZWZpbmUgUENJX01FTV9TUEFDRTFfU1RBUlQJMHg4MDAwMDAwMAogI2RlZmluZSBQQ0lfTUVNX1NQQUNFMl9TVEFSVAkweGZkMDAwMDAwCiAKIC8qIElCQVQvREJBVCBDb25maWd1cmF0aW9uICovCiAvKiBSYW06IDY0TUIsIHN0YXJ0cyBhdCBhZGRyZXNzLTAsIHIvdyBpbnN0cnVjdGlvbi9kYXRhICovCi0jZGVmaW5lIENGR19JQkFUMFUgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDBMICAgICAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDBVICAgICAgQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDBMICAgICAgQ0ZHX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAgICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVICAgICAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgICAgICBDT05GSUdfU1lTX0lCQVQwTAogCiAvKiBNUExEL1BvcnQtWCBJL08gU3BhY2UgOiBkYXRhIGFuZCBpbnN0cnVjdGlvbiByZWFkL3dyaXRlLCAgY2FjaGUtaW5oaWJpdCAqLwotI2RlZmluZSBDRkdfSUJBVDFVICAgICAgKFBPUlRYX0RFVl9CQVNFIHwgQkFUVV9CTF8xMjhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAgICAgKFBPUlRYX0RFVl9CQVNFIHwgQkFUVV9CTF8xMjhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjaWYgMAotI2RlZmluZSBDRkdfSUJBVDFMICAgICAgKFBPUlRYX0RFVl9CQVNFIHwgQkFUTF9QUF8xMCAgfCBCQVRMX01FTUNPSEVSRU5DRSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgICAgIChQT1JUWF9ERVZfQkFTRSB8IEJBVExfUFBfMTAgIHwgQkFUTF9NRU1DT0hFUkVOQ0UgfFwKIAkJCSBCQVRMX1dSSVRFVEhST1VHSCB8IEJBVExfQ0FDSEVJTkhJQklUKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgICAgIChQT1JUWF9ERVZfQkFTRSB8IEJBVExfUFBfMTAgfEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgICAgIChQT1JUWF9ERVZfQkFTRSB8IEJBVExfUFBfMTAgfEJBVExfQ0FDSEVJTkhJQklUKQogI2VuZGlmCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKIAogLyogUENJIE1lbW9yeSByZWdpb24gMTogMHg4WFhYX1hYWFggUENJIE1lbSBzcGFjZTogRVVNQkFSLCBldGMgLSAxNk1CICovCi0jZGVmaW5lIENGR19JQkFUMlUJKFBDSV9NRU1fU1BBQ0UxX1NUQVJUfEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKFBDSV9NRU1fU1BBQ0UxX1NUQVJUfEJBVExfUFBfMTAgfCBCQVRMX0dVQVJERURTVE9SQUdFfEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfREJBVDJVICAgICAgQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDJMICAgICAgQ0ZHX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoUENJX01FTV9TUEFDRTFfU1RBUlR8QkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKFBDSV9NRU1fU1BBQ0UxX1NUQVJUfEJBVExfUFBfMTAgfCBCQVRMX0dVQVJERURTVE9SQUdFfEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAgICAgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMICAgICAgQ09ORklHX1NZU19JQkFUMkwKIAogLyogUENJIE1lbW9yeSByZWdpb24gMjogUENJIERldmljZXMgaW4gMHhGRCBzcGFjZSAqLwotI2RlZmluZSBDRkdfSUJBVDNVCShQQ0lfTUVNX1NQQUNFMl9TVEFSVHxCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDNMCShQQ0lfTUVNX1NQQUNFMl9TVEFSVHxCQVRMX1BQXzEwIHwgQkFUTF9HVUFSREVEU1RPUkFHRSB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfREJBVDNVICAgICAgQ0ZHX0lCQVQzVQotI2RlZmluZSBDRkdfREJBVDNMICAgICAgQ0ZHX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoUENJX01FTV9TUEFDRTJfU1RBUlR8QkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKFBDSV9NRU1fU1BBQ0UyX1NUQVJUfEJBVExfUFBfMTAgfCBCQVRMX0dVQVJERURTVE9SQUdFIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVICAgICAgQ09ORklHX1NZU19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgICAgICBDT05GSUdfU1lTX0lCQVQzTAogCiAKIC8qCkBAIC0yODYsMTYgKzI4NiwxNiBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICg4IDw8IDIwKSAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1ogICAgICAgKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAzICAgICAgIC8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICA2NCAgICAgIC8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMyAgICAgICAvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDY0ICAgICAgLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgICAgMTIwMDAwICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgICAgNTAwICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUICAgIDEyMDAwMCAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgICA1MDAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAqLwogCiAjaWYgMAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICSAgICAxCkBAIC0zMTAsNyArMzEwLDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgIDE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgIDE2CiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MjYwQURTLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2MEFEUy5oCmluZGV4IDc2M2FkNGMuLjQyZmJlOTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4MjYwQURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgyNjBBRFMuaApAQCAtNTIsMjQgKzUyLDI0IEBACiAgKiBGaWd1cmUgb3V0IGlmIHdlIGFyZSBib290aW5nIGxvdyB2aWEgZmxhc2ggSFJDVyBvciBoaWdoIHZpYSB0aGUgQkNTUi4KICAqLwogI2lmIChURVhUX0JBU0UgIT0gMHhGRkYwMDAwMCkJCS8qIEJvb3QgbG93IChmbGFzaCBIUkNXKSAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKiBBRFMgZmxhdm91cnMgKi8KLSNkZWZpbmUgQ0ZHXzgyNjBBRFMJCTEJLyogTVBDODI2MEFEUyAqLwotI2RlZmluZSBDRkdfODI2NkFEUwkJMgkvKiBNUEM4MjY2QURTICovCi0jZGVmaW5lIENGR19QUTJGQURTCQkzCS8qIFBRMkZBRFMtWlUgb3IgUFEyRkFEUy1WUiAqLwotI2RlZmluZSBDRkdfODI3MkFEUwkJNAkvKiBNUEM4MjcyQURTICovCisjZGVmaW5lIENPTkZJR19TWVNfODI2MEFEUwkJMQkvKiBNUEM4MjYwQURTICovCisjZGVmaW5lIENPTkZJR19TWVNfODI2NkFEUwkJMgkvKiBNUEM4MjY2QURTICovCisjZGVmaW5lIENPTkZJR19TWVNfUFEyRkFEUwkJMwkvKiBQUTJGQURTLVpVIG9yIFBRMkZBRFMtVlIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU184MjcyQURTCQk0CS8qIE1QQzgyNzJBRFMgKi8KIAogI2lmbmRlZiBDT05GSUdfQURTVFlQRQotI2RlZmluZSBDT05GSUdfQURTVFlQRQkJQ0ZHXzgyNjBBRFMKKyNkZWZpbmUgQ09ORklHX0FEU1RZUEUJCUNPTkZJR19TWVNfODI2MEFEUwogI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFICovCiAKLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUworI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUwogI2RlZmluZSBDT05GSUdfTVBDODI3MgkJMQogI2Vsc2UKICNkZWZpbmUgQ09ORklHX01QQzgyNjAJCTEKLSNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUyAqLworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUyAqLwogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBDYWxsIGJvYXJkX2Vhcmx5X2luaXRfZgkqLwogCkBAIC0xMTMsMjYgKzExMywyNiBAQAogCiAjaWYgICBDT05GSUdfRVRIRVJfSU5ERVggPT0gMQogCi0jIGRlZmluZSBDRkdfUEhZX0FERFIJCTAKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMSB8IENNWEZDUl9URjFDU19DTEsxMCkKLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMSB8IENNWEZDUl9SRjFDU19NU0sgfCBDTVhGQ1JfVEYxQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19QSFlfQUREUgkJMAorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMSB8IENNWEZDUl9URjFDU19DTEsxMCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzEgfCBDTVhGQ1JfUkYxQ1NfTVNLIHwgQ01YRkNSX1RGMUNTX01TSykKIAogI2VsaWYgQ09ORklHX0VUSEVSX0lOREVYID09IDIKIAotI2lmIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTCS8qIFJ4Q0xLIGlzIENMSzE1LCBUeENMSyBpcyBDTEsxNiAqLwotIyBkZWZpbmUgQ0ZHX1BIWV9BRERSCQkzCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTYpCisjaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTCS8qIFJ4Q0xLIGlzIENMSzE1LCBUeENMSyBpcyBDTEsxNiAqLworIyBkZWZpbmUgQ09ORklHX1NZU19QSFlfQUREUgkJMworIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxNSB8IENNWEZDUl9URjJDU19DTEsxNikKICNlbHNlCQkJCQkvKiBSeENMSyBpcyBDTEsxMywgVHhDTEsgaXMgQ0xLMTQgKi8KLSMgZGVmaW5lIENGR19QSFlfQUREUgkJMAotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTICovCisjIGRlZmluZSBDT05GSUdfU1lTX1BIWV9BRERSCQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQorI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUyAqLwogCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKIAogI2VuZGlmCS8qIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCQkvKiBCRHMgYW5kIGJ1ZmZlcnMgb24gNjB4IGJ1cyAqLwotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpICAvKiBGdWxsIGR1cGxleCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAJCS8qIEJEcyBhbmQgYnVmZmVycyBvbiA2MHggYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpICAvKiBGdWxsIGR1cGxleCAqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19CSVRCQU5HTUlJCQkvKiBiaXQtYmFuZyBNSUkgUEhZIG1hbmFnZW1lbnQJKi8KQEAgLTE0MSwzOSArMTQxLDM5IEBACiAgKi8KICNkZWZpbmUgTURJT19QT1JUCTIJCS8qIFBvcnQgQyAqLwogCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKLSNkZWZpbmUgQ0ZHX01ESU9fUElOCTB4MDAwMDIwMDAJLyogUEMxOCAqLwotI2RlZmluZSBDRkdfTURDX1BJTgkweDAwMDAxMDAwCS8qIFBDMTkgKi8KKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKKyNkZWZpbmUgQ09ORklHX1NZU19NRElPX1BJTgkweDAwMDAyMDAwCS8qIFBDMTggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRENfUElOCTB4MDAwMDEwMDAJLyogUEMxOSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01ESU9fUElOCTB4MDA0MDAwMDAJLyogUEM5CSovCi0jZGVmaW5lIENGR19NRENfUElOCTB4MDAyMDAwMDAJLyogUEMxMCAqLwotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTICovCisjZGVmaW5lIENPTkZJR19TWVNfTURJT19QSU4JMHgwMDQwMDAwMAkvKiBQQzkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRENfUElOCTB4MDAyMDAwMDAJLyogUEMxMCAqLworI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUyAqLwogCi0jZGVmaW5lIE1ESU9fQUNUSVZFCShpb3AtPnBkaXIgfD0gIENGR19NRElPX1BJTikKLSNkZWZpbmUgTURJT19UUklTVEFURQkoaW9wLT5wZGlyICY9IH5DRkdfTURJT19QSU4pCi0jZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICBDRkdfTURJT19QSU4pICE9IDApCisjZGVmaW5lIE1ESU9fQUNUSVZFCShpb3AtPnBkaXIgfD0gIENPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fVFJJU1RBVEUJKGlvcC0+cGRpciAmPSB+Q09ORklHX1NZU19NRElPX1BJTikKKyNkZWZpbmUgTURJT19SRUFECSgoaW9wLT5wZGF0ICYgIENPTkZJR19TWVNfTURJT19QSU4pICE9IDApCiAKLSNkZWZpbmUgTURJTyhiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDRkdfTURJT19QSU47IFwKLQkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DRkdfTURJT19QSU4KKyNkZWZpbmUgTURJTyhiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDT05GSUdfU1lTX01ESU9fUElOOyBcCisJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRElPX1BJTgogCi0jZGVmaW5lIE1EQyhiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDRkdfTURDX1BJTjsgXAotCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNGR19NRENfUElOCisjZGVmaW5lIE1EQyhiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDT05GSUdfU1lTX01EQ19QSU47IFwKKwkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DT05GSUdfU1lTX01EQ19QSU4KIAogI2RlZmluZSBNSUlERUxBWQl1ZGVsYXkoMSkKIAogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MgKi8KIAotI2lmIENPTkZJR19BRFNUWVBFID49IENGR19QUTJGQURTCisjaWYgQ09ORklHX0FEU1RZUEUgPj0gQ09ORklHX1NZU19QUTJGQURTCiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00JLyogT24gbmV3IGJvYXJkcywgU0RSQU0gaXMgc29sZGVyZWQgKi8KICNlbHNlCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBUbyBlbmFibGUgSTJDIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKICNpZiBkZWZpbmVkKENPTkZJR19TUERfRUVQUk9NKSAmJiAhZGVmaW5lZChDT05GSUdfU1BEX0FERFIpCiAjZGVmaW5lIENPTkZJR19TUERfQUREUgkJMHg1MAogI2VuZGlmCi0jZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPj0gQ0ZHX1BRMkZBRFMgKi8KKyNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA+PSBDT05GSUdfU1lTX1BRMkZBRFMgKi8KIAogLypQQ0kqLwogI2lmZGVmIENPTkZJR19NUEM4MjcyCkBAIC0xODgsNyArMTg4LDcgQEAKICNlbmRpZgogCiAjaWZuZGVmIENPTkZJR184MjYwX0NMS0lOCi0jaWYgQ09ORklHX0FEU1RZUEUgPj0gQ0ZHX1BRMkZBRFMKKyNpZiBDT05GSUdfQURTVFlQRSA+PSBDT05GSUdfU1lTX1BRMkZBRFMKICNkZWZpbmUgQ09ORklHXzgyNjBfQ0xLSU4JMTAwMDAwMDAwCS8qIGluIEh6ICovCiAjZWxzZQogI2RlZmluZSBDT05GSUdfODI2MF9DTEtJTgk2NjAwMDAwMAkvKiBpbiBIeiAqLwpAQCAtMjM3LDExICsyMzcsMTEgQEAKIAogI3VuZGVmIENPTkZJR19DTURfWElNRwogCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKICAgICAjdW5kZWYgQ09ORklHX0NNRF9TRFJBTQogICAgICN1bmRlZiBDT05GSUdfQ01EX0kyQwogCi0jZWxpZiBDT05GSUdfQURTVFlQRSA+PSBDRkdfUFEyRkFEUworI2VsaWYgQ09ORklHX0FEU1RZUEUgPj0gQ09ORklHX1NZU19QUTJGQURTCiAgICAgI3VuZGVmIENPTkZJR19DTURfU0RSQU0KICAgICAjdW5kZWYgQ09ORklHX0NNRF9JMkMKICAgICAjdW5kZWYgQ09ORklHX0NNRF9QQ0kKQEAgLTI0OSw3ICsyNDksNyBAQAogI2Vsc2UKICAgICAjdW5kZWYgQ09ORklHX0NNRF9QQ0kKIAotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID49IENGR19QUTJGQURTICovCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPj0gQ09ORklHX1NZU19QUTJGQURTICovCiAKIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJCS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcyAqLwpAQCAtMjcwLDM3ICsyNzAsMzcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjgwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTMyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCkBAIC0zMDksMjAgKzMwOSwyMCBAQAogICovCiAjZGVmaW5lIE1URElEU19ERUZBVUxUCQkibm9yMD1tcGM4MjYwYWRzLTAiCiAjZGVmaW5lIE1URFBBUlRTX0RFRkFVTFQJIm10ZHBhcnRzPW1wYzgyNjBhZHMtMDotQDFtKGpmZnMyKSIKLSNkZWZpbmUgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKIAogLyogdGhpcyBpcyBzdHVmZiBjYW1lIG91dCBvZiB0aGUgTW90b3JvbGEgZG9jcyAqLwotI2lmbmRlZiBDRkdfTE9XQk9PVAotI2RlZmluZSBDRkdfREVGQVVMVF9JTU1SCTB4MEYwMTAwMDAKKyNpZm5kZWYgQ09ORklHX1NZU19MT1dCT09UCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9JTU1SCTB4MEYwMTAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1NSCQkweEY0NTAwMDAwCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKLSNkZWZpbmUgQ0ZHX1BDSV9JTlQJCTB4RjgyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGNDUwMDAwMAorI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JTlQJCTB4RjgyMDAwMDAKICNlbmRpZgotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTFNEUkFNX0JBU0UJCTB4RkQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTFNEUkFNX0JBU0UJCTB4RkQwMDAwMDAKIAogI2RlZmluZSBSUzIzMkVOXzEJCTB4MDIwMDAwMDIKICNkZWZpbmUgUlMyMzJFTl8yCQkweDAxMDAwMDAxCkBAIC0zMzIsMTI3ICszMzIsMTI3IEBACiAjZGVmaW5lIEZFVEgyX1JTVAkJMHgwODAwMDAwMAogI2RlZmluZSBCQ1NSX1BDSV9NT0RFCQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2lmZGVmIENGR19MT1dCT09UCisjaWZkZWYgQ09ORklHX1NZU19MT1dCT09UCiAvKiBQUTJGQURTIGZsYXNoIEhSQ1cgPSAweDBFQjRCNjQ1ICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUiAoICAgKCBIUkNXX0JQUzExIHwgSFJDV19DSVAgKQkJCSAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSICggICAoIEhSQ1dfQlBTMTEgfCBIUkNXX0NJUCApCQkJICAgIHxcCiAJCQkgICAgKCBIUkNXX0wyQ1BDMTAgfCBIUkNXX0RQUEMxMSB8IEhSQ1dfSVNCMTAwICkgICAgfFwKIAkJCSAgICAoIEhSQ1dfQk1TIHwgSFJDV19NTVIxMSB8IEhSQ1dfTEJQQzAxIHwgSFJDV19BUFBDMTAgKSB8XAogCQkJICAgICggSFJDV19DUzEwUEMwMSB8IEhSQ1dfTU9EQ0tfSDAxMDEgKQkgICAgIFwKIAkJCSkKICNlbHNlCiAvKiBQUTJGQURTIEJDU1IgSFJDVyA9IDB4MENCMjM2NDUgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSICggICAoIEhSQ1dfQlBTMTEgfCBIUkNXX0NJUCApCQkJICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIgKCAgICggSFJDV19CUFMxMSB8IEhSQ1dfQ0lQICkJCQkgICAgfFwKIAkJCSAgICAoIEhSQ1dfTDJDUEMxMCB8IEhSQ1dfRFBQQzEwIHwgSFJDV19JU0IwMTAgKSAgICB8XAogCQkJICAgICggSFJDV19CTVMgfCBIUkNXX0FQUEMxMCApCQkJICAgIHxcCiAJCQkgICAgKCBIUkNXX01PRENLX0gwMTAxICkJCQkgICAgIFwKIAkJCSkKICNlbmRpZgogLyogbm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMyAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNSAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNiAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcgMAogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogI2lmZGVmIENPTkZJR19CWklQMgotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKQkqLwogI2VuZGlmIC8qIENPTkZJR19CWklQMiAqLwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNlbHNlCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUgKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFICkKIAotI2RlZmluZSBDRkdfSElEMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCTAKIAotI2RlZmluZSBDRkdfU1lQQ1IJCTB4RkZGRkZGQzMKLSNkZWZpbmUgQ0ZHX0JDUgkJCTB4MTAwQzAwMDAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJMHgwQTIwMDAwMAotI2RlZmluZSBDRkdfU0NDUgkJU0NDUl9ERkJSRzAxCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweDAwMDAxODAxKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRjgwMDg3NgotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJKENGR19CQ1NSIHwgMHgwMDAwMTgwMSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4RkZGRjgwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJMHhGRkZGRkZDMworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJCTB4MTAwQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCTB4MEEyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQlTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwMDAwMTgwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGODAwODc2CisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJKENPTkZJR19TWVNfQkNTUiB8IDB4MDAwMDE4MDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhGRkZGODAxMAogCiAvKldlIG5lZWQgdG8gY29uZmlndXJlIGNoaXAgc2VsZWN0IHRvIHVzZSBDUExEIFBDSSBJQyBvbiBNUEM4MjcyQURTKi8KIAotI2lmIENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCShDRkdfUENJX0lOVCB8IDB4MTgwMSkJLyogUENJIGludGVycnVwdCBjb250cm9sbGVyICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCTB4RkZGRjgwMTAKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCShDT05GSUdfU1lTX1BDSV9JTlQgfCAweDE4MDEpCS8qIFBDSSBpbnRlcnJ1cHQgY29udHJvbGxlciAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JMHhGRkZGODAxMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1JNUgkJCVJNUl9DU1JFCi0jZGVmaW5lIENGR19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCi0jZGVmaW5lIENGR19QSVNDUgkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCi0jZGVmaW5lIENGR19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJCTAKIAotI2lmIChDT05GSUdfQURTVFlQRSA9PSBDRkdfODI2NkFEUykgfHwgKENPTkZJR19BRFNUWVBFID09IENGR184MjcyQURTKQotI3VuZGVmIENGR19MU0RSQU1fQkFTRQkJLyogTm8gbG9jYWwgYnVzIFNEUkFNIG9uIHRoZXNlIGJvYXJkcyAqLwotI2VuZGlmIC8qIENPTkZJR19BRFNUWVBFID09IENGR184MjY2QURTICovCisjaWYgKENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI2NkFEUykgfHwgKENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUykKKyN1bmRlZiBDT05GSUdfU1lTX0xTRFJBTV9CQVNFCQkvKiBObyBsb2NhbCBidXMgU0RSQU0gb24gdGhlc2UgYm9hcmRzICovCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjY2QURTICovCiAKLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUwotI2RlZmluZSBDRkdfT1IyCQkJMHhGRTAwMkVDMAotI2RlZmluZSBDRkdfUFNETVIJCTB4ODI0QjM2QTMKLSNkZWZpbmUgQ0ZHX1BTUlQJCTB4MTMKLSNkZWZpbmUgQ0ZHX0xTRE1SCQkweDgyODczN0EzCi0jZGVmaW5lIENGR19MU1JUCQkweDEzCi0jZGVmaW5lIENGR19NUFRQUgkJMHgyODAwCi0jZWxpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUwotI2RlZmluZSBDRkdfT1IyCQkJMHhGQzAwMkNDMAotI2RlZmluZSBDRkdfUFNETVIJCTB4ODM0RTI0QTMKLSNkZWZpbmUgQ0ZHX1BTUlQJCTB4MTMKLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDI4MDAKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTX1BRMkZBRFMKKyNkZWZpbmUgQ09ORklHX1NZU19PUjIJCQkweEZFMDAyRUMwCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJCTB4ODI0QjM2QTMKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkweDEzCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVIJCTB4ODI4NzM3QTMKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUCQkweDEzCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MjgwMAorI2VsaWYgQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU184MjcyQURTCisjZGVmaW5lIENPTkZJR19TWVNfT1IyCQkJMHhGQzAwMkNDMAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCQkweDgzNEUyNEEzCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkJMHgxMworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkweDI4MDAKICNlbHNlCi0jZGVmaW5lIENGR19PUjIJCQkweEZGMDAwQ0EwCi0jZGVmaW5lIENGR19QU0RNUgkJMHgwMTZFQjQ1MgotI2RlZmluZSBDRkdfUFNSVAkJMHgyMQotI2RlZmluZSBDRkdfTFNETVIJCTB4MDA4NkE1MjIKLSNkZWZpbmUgQ0ZHX0xTUlQJCTB4MjEKLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDE5MDAKLSNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDRkdfUFEyRkFEUyAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMgkJCTB4RkYwMDBDQTAKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkJMHgwMTZFQjQ1MgorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJCTB4MjEKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RNUgkJMHgwMDg2QTUyMgorI2RlZmluZSBDT05GSUdfU1lTX0xTUlQJCTB4MjEKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkJMHgxOTAwCisjZW5kaWYgLyogQ09ORklHX0FEU1RZUEUgPT0gQ09ORklHX1NZU19QUTJGQURTICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwNDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwNDQwMDAwMAogCi0jaWYgQ09ORklHX0FEU1RZUEUgPT0gQ0ZHXzgyNzJBRFMKKyNpZiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfU1lTXzgyNzJBRFMKIAogLyogUENJIE1lbW9yeSBtYXAgKGlmIGRpZmZlcmVudCBmcm9tIGRlZmF1bHQgbWFwICovCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9MT0NBTAlDRkdfU0RSQU1fQkFTRQkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fQlVTCQkweDAwMDAwMDAwCQkvKiBQQ0kgYmFzZSAqLwotI2RlZmluZSBDRkdfUElDTVIwX01BU0tfQVRUUklCCShQSUNNUl9NQVNLXzUxMk1CIHwgUElDTVJfRU5BQkxFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUwkJMHgwMDAwMDAwMAkJLyogUENJIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSUNNUjBfTUFTS19BVFRSSUIJKFBJQ01SX01BU0tfNTEyTUIgfCBQSUNNUl9FTkFCTEUgfCBcCiAJCQkJIFBJQ01SX1BSRUZFVENIX0VOKQogCiAvKgpAQCAtNDY4LDExICs0NjgsMTEgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX0xPQ0FMCTB4ODAwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX0JVUwkweDgwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUJQ0ZHX0NQVV9QQ0lfTUVNX1NUQVJUCVBDSV9NU1RSX01FTV9MT0NBTAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMCAgICAgICAgICAvKiA1MTJNQiAqLwotI2RlZmluZSBDRkdfUE9DTVIwX01BU0tfQVRUUklCCShQT0NNUl9NQVNLXzUxMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUFJFRkVUQ0hfRU4pCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0xPQ0FMCTB4ODAwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9CVVMJMHg4MDAwMDAwMCAgICAgICAgICAvKiBQQ0kgYmFzZSAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ1BVX1BDSV9NRU1fU1RBUlQJUENJX01TVFJfTUVNX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMCAgICAgICAgICAvKiA1MTJNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPQ01SMF9NQVNLX0FUVFJJQgkoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSB8IFBPQ01SX1BSRUZFVENIX0VOKQogCiAvKgogICogTWFzdGVyIHdpbmRvdyB0aGF0IGFsbG93cyB0aGUgQ1BVIHRvIGFjY2VzcyBQQ0kgTWVtb3J5IChub24tcHJlZmV0Y2gpLgpAQCAtNDgwLDExICs0ODAsMTEgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNSU9fTE9DQUwgICAgMHhBMDAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19CVVMgICAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUgQ0ZHX0NQVV9QQ0lfTUVNSU9fU1RBUlQgICAgIFBDSV9NU1RSX01FTUlPX0xPQ0FMCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19TSVpFICAgICAweDIwMDAwMDAwICAgICAgICAgIC8qIDUxMk1CICovCi0jZGVmaW5lIENGR19QT0NNUjFfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19MT0NBTCAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19CVVMgICAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfUENJX01FTUlPX1NUQVJUICAgICBQQ0lfTVNUUl9NRU1JT19MT0NBTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX1NJWkUgICAgIDB4MjAwMDAwMDAgICAgICAgICAgLyogNTEyTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT0NNUjFfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKIAogLyoKICAqIE1hc3RlciB3aW5kb3cgdGhhdCBhbGxvd3MgdGhlIENQVSB0byBhY2Nlc3MgUENJIElPIHNwYWNlLgpAQCAtNDkyLDIzICs0OTIsMjMgQEAKICAqIGluIHRoZSBicmlkZ2UuCiAgKi8KIAotI2RlZmluZSBDRkdfUENJX01TVFJfSU9fTE9DQUwgICAgICAgMHhGNjAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9JT19CVVMgICAgICAgICAweDAwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUgQ0ZHX0NQVV9QQ0lfSU9fU1RBUlQgICAgICAgIFBDSV9NU1RSX0lPX0xPQ0FMCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9JT19TSVpFICAgICAgICAweDAyMDAwMDAwICAgICAgICAgIC8qIDY0TUIgKi8KLSNkZWZpbmUgQ0ZHX1BPQ01SMl9NQVNLX0FUVFJJQiAgICAgIChQT0NNUl9NQVNLXzMyTUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QQ0lfSU8pCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fTE9DQUwgICAgICAgMHhGNjAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fQlVTICAgICAgICAgMHgwMDAwMDAwMCAgICAgICAgICAvKiBQQ0kgYmFzZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX1BDSV9JT19TVEFSVCAgICAgICAgUENJX01TVFJfSU9fTE9DQUwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9JT19TSVpFICAgICAgICAweDAyMDAwMDAwICAgICAgICAgIC8qIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT0NNUjJfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS18zMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUENJX0lPKQogCiAKIC8qIFBDSUJSMCAtIGZvciBQQ0kgSU8qLwotI2RlZmluZSBDRkdfUENJX01TVFIwX0xPQ0FMCQlDRkdfUENJX01TVFJfSU9fTE9DQUwJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSU1TSzBfTUFTSwkJfihDRkdfUENJX01TVFJfSU9fU0laRSAtIDFVKQkvKiBTaXplIG9mIHdpbmRvdyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSMF9MT0NBTAkJQ09ORklHX1NZU19QQ0lfTVNUUl9JT19MT0NBTAkJLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSU1TSzBfTUFTSwkJfihDT05GSUdfU1lTX1BDSV9NU1RSX0lPX1NJWkUgLSAxVSkJLyogU2l6ZSBvZiB3aW5kb3cgKi8KIC8qIFBDSUJSMSAtIHByZWZldGNoIGFuZCBub24tcHJlZmV0Y2ggcmVnaW9ucyBqb2luZWQgdG9nZXRoZXIgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSMV9MT0NBTAkJQ0ZHX1BDSV9NU1RSX01FTV9MT0NBTAotI2RlZmluZSBDRkdfUENJTVNLMV9NQVNLCQl+KENGR19QQ0lfTVNUUl9NRU1fU0laRSArIENGR19QQ0lfTVNUUl9NRU1JT19TSVpFIC0gMVUpCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFIxX0xPQ0FMCQlDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9MT0NBTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSU1TSzFfTUFTSwkJfihDT05GSUdfU1lTX1BDSV9NU1RSX01FTV9TSVpFICsgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19TSVpFIC0gMVUpCiAKICNlbmRpZiAvKiBDT05GSUdfQURTVFlQRSA9PSBDT05GSUdfODI3MkFEUyovCiAKLSNpZiBDT05GSUdfQURTVFlQRSA9PSBDRkdfODI3MkFEUworI2lmIENPTkZJR19BRFNUWVBFID09IENPTkZJR19TWVNfODI3MkFEUwogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2NkFEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgyNjZBRFMuaAppbmRleCAyNmM2ZmJlLi5mZTFjYzE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODI2NkFEUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MjY2QURTLmgKQEAgLTM2LDcgKzM2LDcgQEAKICAgICEhICBUbyBtYWtlIGl0IHdvcmsgZm9yIHRoZSBkZWZhdWx0LCB0aGUgVEVYVF9CQVNFIGRlZmluZSBpbgkgICAgICAhIQogICAgISEgIGJvYXJkL21wYzgyNjZhZHMvY29uZmlnLm1rIG11c3QgYmUgY2hhbmdlZCBmcm9tIDB4ZmUwMDAwMDAgdG8gICEhCiAgICAhISAgMHhmZmYwMDAwMAkJCQkJCSAgICAgICEhCi0gICAhISAgVGhlIENGR19IUkNXX01BU1RFUiBkZWZpbmUgYmVsb3cgbXVzdCBhbHNvIGJlIGNoYW5nZWQgdG8gbWF0Y2ggISEKKyAgICEhICBUaGUgQ09ORklHX1NZU19IUkNXX01BU1RFUiBkZWZpbmUgYmVsb3cgbXVzdCBhbHNvIGJlIGNoYW5nZWQgdG8gbWF0Y2ggISEKICAgICEhCQkJCQkJCQkgICAgICAhIQogICAgISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhCiAgKi8KQEAgLTExNSwxOCArMTE1LDE4IEBACiAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMgKHNlZSAyOC0xMykKICAqIC0gSGFsZiBkdXBsZXgKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKIAogI2VuZGlmCS8qIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCiAvKiBvdGhlciBvcHRpb25zICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBUbyBlbmFibGUgSTJDIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKIAogLyogUENJICovCiAjZGVmaW5lIENPTkZJR19QQ0kKQEAgLTIxOCw0NyArMjE4LDQ3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgkJLyogY2xvY2tzIHBhc3NzZWQgdG8gTGludXggaW4gTUh6ICovCiAJCQkJCS8qIGZvciB2ZXJzaW9ucyA8IDIuNC41LXByZTUJKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKICNkZWZpbmUgRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTMyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJODAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qIHRoaXMgaXMgc3R1ZmYgY2FtZSBvdXQgb2YgdGhlIE1vdG9yb2xhIGRvY3MgKi8KIC8qIE9ubHkgY2hhbmdlIHRoaXMgaWYgeW91IGFsc28gY2hhbmdlIHRoZSBIYXJkd2FyZSBjb25maWd1cmF0aW9uIFdvcmQgKi8KLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUgkweDBGMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9JTU1SCTB4MEYwMTAwMDAKIAogLyogU2V0IElNTVIgdG8gMHhGMDAwMDAwMCBvciBhYm92ZSB0byBib290IExpbnV4ICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfQkNTUgkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lOVAkJMHhGODIwMDAwMAkvKiBQQ0kgaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JTlQJCTB4RjgyMDAwMDAJLyogUENJIGludGVycnVwdCBjb250cm9sbGVyICovCiAKIC8qIERlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNIHRvIGFsbG93IHVzZSBvZiBTRFJBTXMgbGFyZ2VyIHRoYW4gMjU2TUJ5dGVzCiAgKi8KQEAgLTI2Nyw4ICsyNjcsOCBAQAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSBESU1NIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8gIFRoaXMgd2lsbCBub3JtYWxseSBhdXRvLWNvbmZpZ3VyZSB2aWEgdGhlIFNQRC4KICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUgMTYKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFIDE2CiAKICNkZWZpbmUgU0RSQU1fU1BEX0FERFIgMHg1MAogCkBAIC0yOTUsMTIgKzI5NSwxMiBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCkBAIC0zMTQsMTMgKzMxNCwxMyBAQAogICogICAgIC0gQmFjay10by1iYWNrIHBhZ2UgbW9kZQogICogICAgIC0gSW50ZXJuYWwgYmFuayBpbnRlcmxlYXZpbmcgd2l0aGluIHNhdmUgZGV2aWNlIGVuYWJsZWQKICAqLwotI2lmIChDRkdfU0RSQU1fU0laRSA9PSA2NCkKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKE1FR19UT19BTShDRkdfU0RSQU1fU0laRSkJfFwKKyNpZiAoQ09ORklHX1NZU19TRFJBTV9TSVpFID09IDY0KQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNX1NJWkUpCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E4CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKLSNlbGlmIChDRkdfU0RSQU1fU0laRSA9PSAxNikKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKDB4RkYwMDBDODApCisjZWxpZiAoQ09ORklHX1NZU19TRFJBTV9TSVpFID09IDE2KQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKDB4RkYwMDBDODApCiAjZWxzZQogI2Vycm9yICJJTlZBTElEIFNEUkFNIENPTkZJR1VSQVRJT04iCiAjZW5kaWYKQEAgLTMzMSw3ICszMzEsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKLSNpZiAoQ0ZHX1NEUkFNX1NJWkUgPT0gNjQpCisjaWYgKENPTkZJR19TWVNfU0RSQU1fU0laRSA9PSA2NCkKIC8qIFdpdGggYSA2NCBNQiBESU1NLCB0aGUgUFNETVIgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKICAqICAgICAtIEJhbmsgQmFzZWQgSW50ZXJsZWF2aW5nLApAQCAtMzQ5LDcgKzM0OSw3IEBACiAgKiAgICAgLSBlYXJsaWVzdCB0aW1pbmcgZm9yIFBSRUNIQVJHRSBhZnRlciBsYXN0IGRhdGEgd2FzIHdyaXR0ZW4gaXMgMSBjbG9jaywKICAqICAgICAtIENBUyBMYXRlbmN5IGlzIDIuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJKFBTRE1SX1JGRU4JICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNF9JU19BNSB8XAogCQkJIFBTRE1SX0JTTUFfQTE0X0ExNiAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOSAgfFwKQEAgLTM1OSwxMiArMzU5LDEyIEBACiAJCQkgUFNETVJfTERPVE9QUkVfMUMgICAgfFwKIAkJCSBQU0RNUl9XUkNfMUMJICAgICAgfFwKIAkJCSBQU0RNUl9DTF8yKQotI2VsaWYgKENGR19TRFJBTV9TSVpFID09IDE2KQorI2VsaWYgKENPTkZJR19TWVNfU0RSQU1fU0laRSA9PSAxNikKIC8qIFdpdGggYSAxNiBNQiBESU1NLCB0aGUgUFNETVIgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKICAqICAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvdW5kIGluIE1vdG9yb2xhIGRvY3VtZW50YXRpb24KICAqLwotI2RlZmluZSBDRkdfUFNETVIJKDB4MDE2RUI0NTIpCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJKDB4MDE2RUI0NTIpCiAjZWxzZQogI2Vycm9yICJJTlZBTElEIFNEUkFNIENPTkZJR1VSQVRJT04iCiAjZW5kaWYKQEAgLTM3NCwyMiArMzc0LDIyIEBACiAjZGVmaW5lIEZFVEhJRU4JCQkweDA4MDAwMDA4CiAjZGVmaW5lIEZFVEhfUlNUCQkweDA0MDAwMDA0CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyogVXNlIHRoaXMgSFJDVyBmb3IgYm9vdGluZyBmcm9tIGFkZHJlc3MgMHhmZTAwMDAwIChKUDMgaW4gc2V0dGluZyAxLTIpICAqLwogLyogMHgwRUIyQjY0NSAqLwotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgKCggSFJDV19CUFMxMSB8IEhSQ1dfQ0lQICkJCQkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUiAoKCBIUkNXX0JQUzExIHwgSFJDV19DSVAgKQkJCQl8XAogCQkJICggSFJDV19MMkNQQzEwIHwgSFJDV19EUFBDMTEgfCBIUkNXX0lTQjAxMCApCQl8XAogCQkJICggSFJDV19CTVMgfCBIUkNXX01NUjExIHwgSFJDV19MQlBDMDEgfCBIUkNXX0FQUEMxMCApCXxcCiAJCQkgKCBIUkNXX0NTMTBQQzAxIHwgSFJDV19NT0RDS19IMDEwMSApCQkJXAogCQkJKQogCiAvKiBVc2UgdGhpcyBIUkNXIGZvciBib290aW5nIGZyb20gYWRkcmVzcyAweGZmZjAwMDAgKEpQMyBpbiBzZXR0aW5nIDItMykgICovCi0vKiAjZGVmaW5lIENGR19IUkNXX01BU1RFUiAweDBjYjIzNjQ1ICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIgMHgwY2IyMzY0NSAqLwogCiAvKiBUaGlzIHZhbHVlIHNob3VsZCBhY3R1YWxseSBiZSBzaXR1YXRlZCBpbiB0aGUgZmlyc3QgMjU2IGJ5dGVzIG9mIHRoZSBGTEFTSAogCXdoaWNoIG9uIHRoZSBzdGFuZGFyZCBNUEM4MjY2QURTIGJvYXJkIGlzIGF0IGFkZHJlc3MgMHhGRjgwMDAwMApAQCAtNDA2LDM5ICs0MDYsMzkgQEAKICovCiAKIC8qIG5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMiAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNSAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3IDAKIAogI2RlZmluZSBCT09URkxBR19DT0xECTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJICAgICAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICMgIGRlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAKICNlbHNlCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ1MSwyMiArNDUxLDIyIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotLyojZGVmaW5lIENGR19ISUQwX0lOSVQJCTAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkoSElEMF9JQ0UgIHxcCisvKiNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJKEhJRDBfSUNFICB8XAogCQkJIEhJRDBfRENFICB8XAogCQkJIEhJRDBfSUNGSSB8XAogCQkJIEhJRDBfRENJICB8XAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkoSElEMF9JQ0UgfCBISUQwX0lGRU0gfCBISUQwX0FCRSApCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUgKQogCi0jZGVmaW5lIENGR19ISUQyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJMAogCi0jZGVmaW5lIENGR19TWVBDUgkJMHhGRkZGRkZDMwotI2RlZmluZSBDRkdfQkNSCQkJMHgwMDRDMDAwMAotI2RlZmluZSBDRkdfU0lVTUNSCQkweDRFNjRDMDAwCi0jZGVmaW5lIENGR19TQ0NSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCTB4RkZGRkZGQzMKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCQkweDAwNEMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDRFNjRDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJMHgwMDAwMDAwMAogCiAvKglsb2NhbCBidXMgbWVtb3J5IG1hcAogICoKQEAgLTQ4MSwzMSArNDgxLDMxIEBACiAgKgkweEY4MzAwMDAwLTB4RjgzMDdGRkYJIDMyS0IJRUVQUk9NCiAgKgkweEZFMDAwMDAwLTB4RkZGRkZGRkYJIDMyTUIJZmxhc2gKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweEZFMDAxODAxCQkvKiBmbGFzaCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkweEZFMDAwODM2Ci0jZGVmaW5lIENGR19CUjFfUFJFTElNCShDRkdfQkNTUiB8IDB4MTgwMSkJLyogQkNTUiAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkweEZGRkY4MDEwCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCTB4RjgzMDA4MDEJCS8qIEVFUFJPTSAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkweEZGRkY4ODQ2Ci0jZGVmaW5lIENGR19CUjVfUFJFTElNCTB4RjgxMDA4MDEJCS8qIFBNNTM1MCBBVE0gVU5JICovCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCTB4RkZGRjhFMzYKLSNkZWZpbmUgQ0ZHX0JSOF9QUkVMSU0JKENGR19QQ0lfSU5UIHwgMHgxODAxKQkvKiBQQ0kgaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX09SOF9QUkVMSU0JMHhGRkZGODAxMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JMHhGRTAwMTgwMQkJLyogZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCTB4RkUwMDA4MzYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCShDT05GSUdfU1lTX0JDU1IgfCAweDE4MDEpCS8qIEJDU1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCTB4RkZGRjgwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCTB4RjgzMDA4MDEJCS8qIEVFUFJPTSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JMHhGRkZGODg0NgorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JMHhGODEwMDgwMQkJLyogUE01MzUwIEFUTSBVTkkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCTB4RkZGRjhFMzYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjhfUFJFTElNCShDT05GSUdfU1lTX1BDSV9JTlQgfCAweDE4MDEpCS8qIFBDSSBpbnRlcnJ1cHQgY29udHJvbGxlciAqLworI2RlZmluZSBDT05GSUdfU1lTX09SOF9QUkVMSU0JMHhGRkZGODAxMAogCi0jZGVmaW5lIENGR19STVIJCQkweDAwMDEKLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKLSNkZWZpbmUgQ0ZHX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKLSNkZWZpbmUgQ0ZHX1JDQ1IJCTAKLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDAwMDAxOTAwCi0jZGVmaW5lIENGR19QU1JUCQkweDAwMDAwMDIxCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MDAwMDE5MDAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkweDAwMDAwMDIxCiAKIC8qIFRoaXMgYWRkcmVzcyBtdXN0IG5vdCBleGlzdCAqLwotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZDRkZGRjAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZDRkZGRjAwCiAKIC8qIFBDSSBNZW1vcnkgbWFwIChpZiBkaWZmZXJlbnQgZnJvbSBkZWZhdWx0IG1hcCAqLwotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fTE9DQUwJQ0ZHX1NEUkFNX0JBU0UJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0JVUwkJMHgwMDAwMDAwMAkJLyogUENJIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BJQ01SMF9NQVNLX0FUVFJJQgkoUElDTVJfTUFTS181MTJNQiB8IFBJQ01SX0VOQUJMRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTAlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMJCTB4MDAwMDAwMDAJCS8qIFBDSSBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUElDTVIwX01BU0tfQVRUUklCCShQSUNNUl9NQVNLXzUxMk1CIHwgUElDTVJfRU5BQkxFIHwgXAogCQkJCSBQSUNNUl9QUkVGRVRDSF9FTikKIAogLyoKQEAgLTUxNiwxMSArNTE2LDExIEBACiAgKi8KIAogLyogUENJQlIwICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUjBfTE9DQUwJCTB4ODAwMDAwMDAJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSU1TSzBfTUFTSwkJUENJTVNLXzFHQgkJLyogU2l6ZSBvZiB3aW5kb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUjBfTE9DQUwJCTB4ODAwMDAwMDAJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNU0swX01BU0sJCVBDSU1TS18xR0IJCS8qIFNpemUgb2Ygd2luZG93ICovCiAvKiBQQ0lCUjEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSMV9MT0NBTAkJMHhGNDAwMDAwMAkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJTVNLMV9NQVNLCQlQQ0lNU0tfNjRNQgkJLyogU2l6ZSBvZiB3aW5kb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUjFfTE9DQUwJCTB4RjQwMDAwMDAJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNU0sxX01BU0sJCVBDSU1TS182NE1CCQkvKiBTaXplIG9mIHdpbmRvdyAqLwogCiAvKgogICogTWFzdGVyIHdpbmRvdyB0aGF0IGFsbG93cyB0aGUgQ1BVIHRvIGFjY2VzcyBQQ0kgTWVtb3J5IChwcmVmZXRjaCkuCkBAIC01MjgsMTEgKzUyOCwxMSBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1fTE9DQUwJMHg4MDAwMDAwMAkJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX01FTV9CVVMJMHg4MDAwMDAwMAkJCS8qIFBDSSBiYXNlICAgKi8KLSNkZWZpbmUgQ0ZHX0NQVV9QQ0lfTUVNX1NUQVJUCVBDSV9NU1RSX01FTV9MT0NBTAotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMAkJCS8qIDUxMk1CICovCi0jZGVmaW5lIENGR19QT0NNUjBfTUFTS19BVFRSSUIJKFBPQ01SX01BU0tfNTEyTUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QUkVGRVRDSF9FTikKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fTE9DQUwJMHg4MDAwMDAwMAkJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fQlVTCTB4ODAwMDAwMDAJCQkvKiBQQ0kgYmFzZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVX1BDSV9NRU1fU1RBUlQJUENJX01TVFJfTUVNX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX1NJWkUJMHgyMDAwMDAwMAkJCS8qIDUxMk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9DTVIwX01BU0tfQVRUUklCCShQT0NNUl9NQVNLXzUxMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUFJFRkVUQ0hfRU4pCiAKIC8qCiAgKiBNYXN0ZXIgd2luZG93IHRoYXQgYWxsb3dzIHRoZSBDUFUgdG8gYWNjZXNzIFBDSSBNZW1vcnkgKG5vbi1wcmVmZXRjaCkuCkBAIC01NDAsMTEgKzU0MCwxMSBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19MT0NBTCAgICAweEEwMDAwMDAwCQkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX01TVFJfTUVNSU9fQlVTCSAgICAweEEwMDAwMDAwCQkJLyogUENJIGJhc2UgICAqLwotI2RlZmluZSBDRkdfQ1BVX1BDSV9NRU1JT19TVEFSVAkgICAgUENJX01TVFJfTUVNSU9fTE9DQUwKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX01FTUlPX1NJWkUJICAgIDB4MjAwMDAwMDAJCQkvKiA1MTJNQiAqLwotI2RlZmluZSBDRkdfUE9DTVIxX01BU0tfQVRUUklCCSAgICAoUE9DTVJfTUFTS181MTJNQiB8IFBPQ01SX0VOQUJMRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1JT19MT0NBTCAgICAweEEwMDAwMDAwCQkJLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0JVUwkgICAgMHhBMDAwMDAwMAkJCS8qIFBDSSBiYXNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfUENJX01FTUlPX1NUQVJUCSAgICBQQ0lfTVNUUl9NRU1JT19MT0NBTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX1NJWkUJICAgIDB4MjAwMDAwMDAJCQkvKiA1MTJNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPQ01SMV9NQVNLX0FUVFJJQgkgICAgKFBPQ01SX01BU0tfNTEyTUIgfCBQT0NNUl9FTkFCTEUpCiAKIC8qCiAgKiBNYXN0ZXIgd2luZG93IHRoYXQgYWxsb3dzIHRoZSBDUFUgdG8gYWNjZXNzIFBDSSBJTyBzcGFjZS4KQEAgLTU1MiwxMSArNTUyLDExIEBACiAgKiBpbiB0aGUgYnJpZGdlLgogICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX0lPX0xPQ0FMCSAgICAweEY0MDAwMDAwCQkJLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX01TVFJfSU9fQlVTCSAgICAweEY0MDAwMDAwCQkJLyogUENJIGJhc2UgICAqLwotI2RlZmluZSBDRkdfQ1BVX1BDSV9JT19TVEFSVAkgICAgUENJX01TVFJfSU9fTE9DQUwKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX0lPX1NJWkUJICAgIDB4MDQwMDAwMDAJCQkvKiA2NE1CICovCi0jZGVmaW5lIENGR19QT0NNUjJfTUFTS19BVFRSSUIJICAgIChQT0NNUl9NQVNLXzY0TUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QQ0lfSU8pCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fTE9DQUwJICAgIDB4RjQwMDAwMDAJCQkvKiBMb2NhbCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fQlVTCSAgICAweEY0MDAwMDAwCQkJLyogUENJIGJhc2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVV9QQ0lfSU9fU1RBUlQJICAgIFBDSV9NU1RSX0lPX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fU0laRQkgICAgMHgwNDAwMDAwMAkJCS8qIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT0NNUjJfTUFTS19BVFRSSUIJICAgIChQT0NNUl9NQVNLXzY0TUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QQ0lfSU8pCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODMxM0VSREIuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzEzRVJEQi5oCmluZGV4IDMwYzQyNDMuLmZjM2ZhMTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzEzRVJEQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzEzRVJEQi5oCkBAIC00OSw5ICs0OSw5IEBACiAjZGVmaW5lIENPTkZJR19WU0M3Mzg1X0VORVQKICNkZWZpbmUgQ09ORklHX1RTRUMyCiAKLSNpZmRlZiBDRkdfNjZNSFoKKyNpZmRlZiBDT05GSUdfU1lTXzY2TUhaCiAjZGVmaW5lIENPTkZJR184M1hYX0NMS0lOCTY2NjY2NjY3CS8qIGluIEh6ICovCi0jZWxpZiBkZWZpbmVkKENGR18zM01IWikKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU18zM01IWikKICNkZWZpbmUgQ09ORklHXzgzWFhfQ0xLSU4JMzMzMzMzMzMJLyogaW4gSHogKi8KICNlbHNlCiAjZXJyb3IgVW5rbm93biBvc2NpbGxhdG9yIGZyZXF1ZW5jeS4KQEAgLTYxLDIzICs2MSwyMyBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJCS8qIGNhbGwgYm9hcmRfcHJlX2luaXQgKi8KIAotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAogI2lmIGRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCi0jZGVmaW5lIENPTkZJR19ERUZBVUxUX0lNTVIJQ0ZHX0lNTVIKKyNkZWZpbmUgQ09ORklHX0RFRkFVTFRfSU1NUglDT05GSUdfU1lTX0lNTVIKICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDEwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3ZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdmMDAwMDAKIAogLyogRWFybHkgcmV2cyBvZiB0aGlzIGJvYXJkIHdpbGwgbG9jayB1cCBoYXJkIHdoZW4gYXR0ZW1wdGluZwogICogdG8gYWNjZXNzIHRoZSBQTUMgcmVnaXN0ZXJzLCB1bmxlc3MgYSBKVEFHIGRlYnVnZ2VyIGlzCiAgKiBjb25uZWN0ZWQsIG9yIHNvbWUgcmVzaXN0b3IgbW9kaWZpY2F0aW9ucyBhcmUgbWFkZS4KICAqLwotI2RlZmluZSBDRkdfODMxM0VSREJfQlJPS0VOX1BNQyAxCisjZGVmaW5lIENPTkZJR19TWVNfODMxM0VSREJfQlJPS0VOX1BNQyAxCiAKLSNkZWZpbmUgQ0ZHX0FDUl9QSVBFX0RFUAkzCS8qIEFyYml0ZXIgcGlwZWxpbmUgZGVwdGggKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgKDAtNykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUElQRV9ERVAJMwkvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwogCiAvKgogICogRGV2aWNlIGNvbmZpZ3VyYXRpb25zCkBAIC05OCwyMiArOTgsMjIgQEAKIC8qCiAgKiBERFIgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCUNPTkZJR19TWVNfRERSX0JBU0UKIAogLyoKICAqIE1hbnVhbGx5IHNldCB1cCBERFIgcGFyYW1ldGVycywgYXMgdGhpcyBib2FyZCBkb2VzIG5vdAogICogc2VlbSB0byBoYXZlIHRoZSBTUEQgY29ubmVjdGVkIHRvIEkyQy4KICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTEyOAkJLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05GSUcJCSggQ1NDT05GSUdfRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkxMjgJCS8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTkZJRwkJKCBDU0NPTkZJR19FTiBcCiAJCQkJfCAweDAwMDEwMDAwIC8qIFRPRE8gKi8gXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTAgKQogCQkJCS8qIDB4ODAwMTAxMDIgKi8KIAotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkoICggMCA8PCBUSU1JTkdfQ0ZHMF9SV1RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJKCAoIDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUICkgXAogCQkJCXwgKCAwIDw8IFRJTUlOR19DRkcwX1dSVF9TSElGVCApIFwKIAkJCQl8ICggMCA8PCBUSU1JTkdfQ0ZHMF9SUlRfU0hJRlQgKSBcCiAJCQkJfCAoIDAgPDwgVElNSU5HX0NGRzBfV1dUX1NISUZUICkgXApAQCAtMTIyLDcgKzEyMiw3IEBACiAJCQkJfCAoIDggPDwgVElNSU5HX0NGRzBfT0RUX1BEX0VYSVRfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzBfTVJTX0NZQ19TSElGVCApICkKIAkJCQkvKiAweDAwMjIwODAyICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJKCAoIDMgPDwgVElNSU5HX0NGRzFfUFJFVE9BQ1RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCSggKCAzIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUICkgXAogCQkJCXwgKCA4IDw8IFRJTUlOR19DRkcxX0FDVFRPUFJFX1NISUZUICkgXAogCQkJCXwgKCAzIDw8IFRJTUlOR19DRkcxX0FDVFRPUldfU0hJRlQgKSBcCiAJCQkJfCAoIDUgPDwgVElNSU5HX0NGRzFfQ0FTTEFUX1NISUZUICkgXApAQCAtMTMxLDcgKzEzMSw3IEBACiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzFfQUNUVE9BQ1RfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUICkgKQogCQkJCS8qIDB4MzgzNWEzMjIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkoICggMSA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkoICggMSA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUICkgXAogCQkJCXwgKCA1IDw8IFRJTUlOR19DRkcyX0NQT19TSElGVCApIFwKIAkJCQl8ICggMiA8PCBUSU1JTkdfQ0ZHMl9XUl9MQVRfREVMQVlfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzJfUkRfVE9fUFJFX1NISUZUICkgXApAQCAtMTM5LDMwICsxMzksMzAgQEAKIAkJCQl8ICggMyA8PCBUSU1JTkdfQ0ZHMl9DS0VfUExTX1NISUZUICkgXAogCQkJCXwgKCA2IDw8IFRJTUlOR19DRkcyX0ZPVVJfQUNUX1NISUZUKSApCiAJCQkJLyogMHgxMjkwNDhjNiAqLyAvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkoICggMTI5NiA8PCBTRFJBTV9JTlRFUlZBTF9SRUZJTlRfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCSggKCAxMjk2IDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCApIFwKIAkJCQl8ICggMTI4MCA8PCBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUICkgKQogCQkJCS8qIDB4MDUxMDA1MDAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19ERFJfMlRfVElNSU5HKQotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHCQkoIFNEUkFNX0NGR19TUkVOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcJCSggU0RSQU1fQ0ZHX1NSRU4gXAogCQkJCXwgU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfRERSMiBcCiAJCQkJfCBTRFJBTV9DRkdfMlRfRU4gXAogCQkJCXwgU0RSQU1fQ0ZHX0RCV18zMiApCiAjZWxzZQotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHCQkoIFNEUkFNX0NGR19TUkVOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DRkcJCSggU0RSQU1fQ0ZHX1NSRU4gXAogCQkJCXwgU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfRERSMiBcCiAJCQkJfCBTRFJBTV9DRkdfMzJfQkUgKQogCQkJCS8qIDB4NDMwODAwMDAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfU0RSQU1fQ0ZHMgkJMHgwMDQwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NGRzIJCTB4MDA0MDEwMDAKIC8qIHNldCBidXJzdCBsZW5ndGggdG8gOCBmb3IgMzItYml0IGRhdGEgcGF0aCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCSggKCAweDQ0NDggPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCSggKCAweDQ0NDggPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQgKSBcCiAJCQkJfCAoIDB4MDYzMiA8PCBTRFJBTV9NT0RFX1NEX1NISUZUICkgKQogCQkJCS8qIDB4NDQ0ODA2MzIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzIJCTB4ODAwMEMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8yCQkweDgwMDBDMDAwCiAKLSNkZWZpbmUgQ0ZHX0REUl9DTEtfQ05UTAlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DTEtfQ05UTAlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNQogCQkJCS8qMHgwMjAwMDAwMCovCi0jZGVmaW5lIENGR19ERFJDRFJfVkFMVUUJKCBERFJDRFJfRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUl9WQUxVRQkoIEREUkNEUl9FTiBcCiAJCQkJfCBERFJDRFJfUFpfTk9NWiBcCiAJCQkJfCBERFJDRFJfTlpfTk9NWiBcCiAJCQkJfCBERFJDRFJfTV9PRFIgKQpAQCAtMTcwLDg2ICsxNzAsODYgQEAKIC8qCiAgKiBGTEFTSCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogdXNlIHRoZSBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgJCS8qIGZsYXNoIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJCS8qIGRpc3BsYXkgZW1wdHkgc2VjdG9ycyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkJLyogYnVmZmVyIHVwIG11bHRpcGxlIGJ5dGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOAkJLyogZmxhc2ggc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCQkvKiBkaXNwbGF5IGVtcHR5IHNlY3RvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCQkvKiBidWZmZXIgdXAgbXVsdGlwbGUgYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTk9SX0JSX1BSRUxJTQkoQ0ZHX0ZMQVNIX0JBU0UgfAkvKiBmbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX05PUl9CUl9QUkVMSU0JKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8CS8qIGZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCiAJCQkJKDIgPDwgQlJfUFNfU0hJRlQpIHwJLyogMTYgYml0IHBvcnQgc2l6ZSAqLyBcCiAJCQkJQlJfVikJCQkvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfTk9SX09SX1BSRUxJTQkoIDB4RkY4MDAwMDAJCS8qIDggTUJ5dGUgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX05PUl9PUl9QUkVMSU0JKCAweEZGODAwMDAwCQkvKiA4IE1CeXRlICovIFwKIAkJCQl8IE9SX0dQQ01fWEFDUyBcCiAJCQkJfCBPUl9HUENNX1NDWV85IFwKIAkJCQl8IE9SX0dQQ01fRUhUUiBcCiAJCQkJfCBPUl9HUENNX0VBRCApCiAJCQkJLyogMHhGRjAwNkZGNwlUT0RPIFNMT1cgMTYgTUIgZmxhc2ggc2l6ZSAqLwotI2RlZmluZSBDRkdfTEJMQVdCQVIwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiB3aW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxNwkvKiAxNiBNQiB3aW5kb3cgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIHdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxNwkvKiAxNiBNQiB3aW5kb3cgc2l6ZSAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzUJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzUJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEZEMDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogTG9jYWwgQnVzIExDUlIgYW5kIExCQ1IgcmVncwogICovCi0jZGVmaW5lIENGR19MQ1JSCUxDUlJfRUFEQ18xIHwgTENSUl9DTEtESVZfNAotI2RlZmluZSBDRkdfTEJDX0xCQ1IJKCAweDAwMDQwMDAwIC8qIFRPRE8gKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJTENSUl9FQURDXzEgfCBMQ1JSX0NMS0RJVl80CisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJKCAweDAwMDQwMDAwIC8qIFRPRE8gKi8gXAogCQkJfCAoMHhGRiA8PCBMQkNSX0JNVF9TSElGVCkgXAogCQkJfCAweEYgKQkvKiAweDAwMDRmZjBmICovCiAKLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkweDIwMDAwMDAwICAvKlRPRE8gKi8JLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgLypUT0RPICovCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCiAKIC8qIGRyaXZlcnMvbXRkL25hbmQvbmFuZC5jICovCiAjaWZkZWYgQ09ORklHX05BTkRfU1BMCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4RkZGMDAwMDAKICNlbHNlCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4RTI4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4RTI4MDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUKICNkZWZpbmUgQ09ORklHX0NNRF9OQU5EIDEKICNkZWZpbmUgQ09ORklHX05BTkRfRlNMX0VMQkMgMQotI2RlZmluZSBDRkdfTkFORF9CTE9DS19TSVpFIDE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFIDE2Mzg0CiAKLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUgICg1MTIgPDwgMTApCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9EU1QgICAweDAwMTAwMDAwCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TVEFSVCAweDAwMTAwMTAwCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9PRkZTICAxNjM4NAotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfUkVMT0MgMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NJWkUgICg1MTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUICAgMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUIDB4MDAxMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTICAxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1JFTE9DIDB4MDAwMTAwMDAKIAotI2RlZmluZSBDRkdfTkFORF9CUl9QUkVMSU0JKCBDRkdfTkFORF9CQVNFIFwKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTQkoIENPTkZJR19TWVNfTkFORF9CQVNFIFwKIAkJCQl8ICgyPDxCUl9ERUNDX1NISUZUKQkvKiBVc2UgSFcgRUNDICovIFwKIAkJCQl8IEJSX1BTXzgJCS8qIFBvcnQgU2l6ZSA9IDggYml0ICovIFwKIAkJCQl8IEJSX01TX0ZDTQkJLyogTVNFTCA9IEZDTSAqLyBcCiAJCQkJfCBCUl9WICkJCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19OQU5EX09SX1BSRUxJTQkoIDB4RkZGRjgwMDAJCS8qIGxlbmd0aCAzMksgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT1JfUFJFTElNCSggMHhGRkZGODAwMAkJLyogbGVuZ3RoIDMySyAqLyBcCiAJCQkJfCBPUl9GQ01fQ1NDVCBcCiAJCQkJfCBPUl9GQ01fQ1NUIFwKIAkJCQl8IE9SX0ZDTV9DSFQgXApAQCAtMjU5LDM5ICsyNTksMzkgQEAKIAkJCQkvKiAweEZGRkY4Mzk2ICovCiAKICNpZmRlZiBDT05GSUdfTkFORF9VX0JPT1QKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gQ0ZHX05BTkRfQlJfUFJFTElNCi0jZGVmaW5lIENGR19PUjBfUFJFTElNIENGR19OQU5EX09SX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTSBDRkdfTk9SX0JSX1BSRUxJTQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTSBDRkdfTk9SX09SX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gQ09ORklHX1NZU19OQU5EX0JSX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gQ09ORklHX1NZU19OQU5EX09SX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0gQ09ORklHX1NZU19OT1JfQlJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSBDT05GSUdfU1lTX05PUl9PUl9QUkVMSU0KICNlbHNlCi0jZGVmaW5lIENGR19CUjBfUFJFTElNIENGR19OT1JfQlJfUFJFTElNCi0jZGVmaW5lIENGR19PUjBfUFJFTElNIENGR19OT1JfT1JfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNIENGR19OQU5EX0JSX1BSRUxJTQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTSBDRkdfTkFORF9PUl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNIENPTkZJR19TWVNfTk9SX0JSX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gQ09ORklHX1NZU19OT1JfT1JfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTSBDT05GSUdfU1lTX05BTkRfQlJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSBDT05GSUdfU1lTX05BTkRfT1JfUFJFTElNCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfTkFORF9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRQkvKiAzMktCICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19OQU5EX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRQkvKiAzMktCICAqLwogCi0jZGVmaW5lIENGR19OQU5EX0xCTEFXQkFSX1BSRUxJTSBDRkdfTEJMQVdCQVIxX1BSRUxJTQotI2RlZmluZSBDRkdfTkFORF9MQkxBV0FSX1BSRUxJTSBDRkdfTEJMQVdBUjFfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9MQkxBV0JBUl9QUkVMSU0gQ09ORklHX1NZU19MQkxBV0JBUjFfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9MQkxBV0FSX1BSRUxJTSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQogCiAvKiBsb2NhbCBidXMgcmVhZCB3cml0ZSBidWZmZXIgbWFwcGluZyAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhGQTAwMDgwMQkvKiBtYXAgYXQgMHhGQTAwMDAwMCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhGRkZGOEZGNwkvKiAzMmtCICovCi0jZGVmaW5lIENGR19MQkxBV0JBUjNfUFJFTElNCTB4RkEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIzX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHhGQTAwMDgwMQkvKiBtYXAgYXQgMHhGQTAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4RkZGRjhGRjcJLyogMzJrQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSM19QUkVMSU0JMHhGQTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIzX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCiAKIC8qIFZpdGVzc2UgNzM4NSAqLwogCi0jZGVmaW5lIENGR19WU0M3Mzg1X0JBU0UJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZTQzczODVfQkFTRQkweEYwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfVlNDNzM4NV9FTkVUCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDA4MDEJLyogVlNDNzM4NSBCYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmZmZTA5ZmYJLyogVlNDNzM4NSwgMTI4SyBieXRlcyovCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCUNGR19WU0M3Mzg1X0JBU0UvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgVlNDNzM4NSBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxMAkvKiBBY2Nlc3Mgd2luZG93IHNpemUgMTI4SyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjAwMDA4MDEJLyogVlNDNzM4NSBCYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZmZmUwOWZmCS8qIFZTQzczODUsIDEyOEsgYnl0ZXMqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0JQ09ORklHX1NZU19WU0M3Mzg1X0JBU0UvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgVlNDNzM4NSBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTAJLyogQWNjZXNzIHdpbmRvdyBzaXplIDEyOEsgKi8KIAogI2VuZGlmCiAKQEAgLTMwNCw0NyArMzA0LDQ3IEBACiAgKiBTZXJpYWwgUG9ydAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lNTVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JTU1SKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKIAogLyogSTJDICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwogI2RlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUwogI2RlZmluZSBDT05GSUdfSTJDX0NNRF9UUkVFCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXt7MCwweDY5fX0gLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7ezAsMHg2OX19IC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQJCTB4MzEwMAogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMV9NTUlPX0JBU0UJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NTUlPX1BIWVMJQ0ZHX1BDSTFfTU1JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhFMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweEUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3CS8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcJLyogTW90b3JvbGEgKi8KIAogLyoKICAqIFRTRUMKQEAgLTM1Nyw3ICszNTcsNyBAQAogI2lmZGVmIENPTkZJR19UU0VDMQogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKICNkZWZpbmUgQ09ORklHX1RTRUMxX05BTUUJIlRTRUMwIgotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQJMHgyNDAwMAogI2RlZmluZSBUU0VDMV9QSFlfQUREUgkJMHgxYwogI2RlZmluZSBUU0VDMV9GTEFHUwkJVFNFQ19HSUdBQklUCiAjZGVmaW5lIFRTRUMxX1BIWUlEWAkJMApAQCAtMzY2LDcgKzM2Niw3IEBACiAjaWZkZWYgQ09ORklHX1RTRUMyCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogI2RlZmluZSBDT05GSUdfVFNFQzJfTkFNRQkiVFNFQzEiCi0jZGVmaW5lIENGR19UU0VDMl9PRkZTRVQJMHgyNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVAkweDI1MDAwCiAjZGVmaW5lIFRTRUMyX1BIWV9BRERSCQk0CiAjZGVmaW5lIFRTRUMyX0ZMQUdTCQlUU0VDX0dJR0FCSVQKICNkZWZpbmUgVFNFQzJfUEhZSURYCQkwCkBAIC0zODAsNyArMzgwLDcgQEAKICAqIENvbmZpZ3VyZSBvbi1ib2FyZCBSVEMKICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzNwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDY4CiAKIC8qCiAgKiBFbnZpcm9ubWVudApAQCAtMzg4LDI2ICszODgsMjYgQEAKICNpZiBkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkxCiAJI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKDUxMiAqIDEwMjQpCi0JI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlDRkdfTkFORF9CTE9DS19TSVpFCisJI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfRU5WX1NFQ1RfU0laRQogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKIAkjZGVmaW5lIENPTkZJR19FTlZfUkFOR0UJCShDT05GSUdfRU5WX1NFQ1RfU0laRSAqIDQpCiAJI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUICsgQ09ORklHX0VOVl9SQU5HRSkKLSNlbGlmICFkZWZpbmVkKENGR19SQU1CT09UKQorI2VsaWYgIWRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCSNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiA2NEsob25lIHNlY3RvcikgZm9yIGVudiAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZWxzZQogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQzMCw3ICs0MzAsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX0RBVEUKICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkgJiYgIWRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ0MSwzMCArNDQxLDMwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAotI2RlZmluZSBDRkdfUkNXSF9QQ0lIT1NUIDB4ODAwMDAwMDAJLyogUENJSE9TVCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SQ1dIX1BDSUhPU1QgMHg4MDAwMDAwMAkvKiBQQ0lIT1NUICAqLwogCi0jaWZkZWYgQ0ZHXzY2TUhaCisjaWZkZWYgQ09ORklHX1NZU182Nk1IWgogCiAvKiA2Nk1IeiBJTiwgMTMzTUh6IENTQiwgMjY2IEREUiwgMjY2IENPUkUgKi8KIC8qIDB4NjIwNDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAkweDIwMDAwMDAwIC8qIHJlc2VydmVkLCBtdXN0IGJlIHNldCAqLyB8XAogCUhSQ1dMX0REUkNNIHxcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XApAQCAtNDcyLDEzICs0NzIsMTMgQEAKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fMlgxIHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAoQ09ORklHXzgzWFhfQ0xLSU4gKiAyKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIChDT05GSUdfODNYWF9DTEtJTiAqIDIpCiAKLSNlbGlmIGRlZmluZWQoQ0ZHXzMzTUhaKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTXzMzTUhaKQogCiAvKiAzM01IeiBJTiwgMTY1TUh6IENTQiwgMzMwIEREUiwgMzMwIENPUkUgKi8KIC8qIDB4NjUwNDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAkweDIwMDAwMDAwIC8qIHJlc2VydmVkLCBtdXN0IGJlIHNldCAqLyB8XAogCUhSQ1dMX0REUkNNIHxcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XApAQCAtNDg2LDExICs0ODYsMTEgQEAKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fNVgxIHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAoQ09ORklHXzgzWFhfQ0xLSU4gKiA1KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIChDT05GSUdfODNYWF9DTEtJTiAqIDUpCiAKICNlbmRpZgogCi0jZGVmaW5lIENGR19IUkNXX0hJR0hfQkFTRSAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfSElHSF9CQVNFIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCiAJSFJDV0hfQ09SRV9FTkFCTEUgfFwKQEAgLTUwMSw3MiArNTAxLDcyIEBACiAJSFJDV0hfQklHX0VORElBTikKIAogI2lmZGVmIENPTkZJR19OQU5EX1NQTAotI2RlZmluZSBDRkdfSFJDV19ISUdIIChDRkdfSFJDV19ISUdIX0JBU0UgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKENPTkZJR19TWVNfSFJDV19ISUdIX0JBU0UgfFwKIAkJICAgICAgIEhSQ1dIX0ZST01fMFhGRkYwMDEwMCB8XAogCQkgICAgICAgSFJDV0hfUk9NX0xPQ19OQU5EX1NQXzhCSVQgfFwKIAkJICAgICAgIEhSQ1dIX1JMX0VYVF9OQU5EKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hSQ1dfSElHSCAoQ0ZHX0hSQ1dfSElHSF9CQVNFIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChDT05GSUdfU1lTX0hSQ1dfSElHSF9CQVNFIHxcCiAJCSAgICAgICBIUkNXSF9GUk9NXzBYMDAwMDAxMDAgfFwKIAkJICAgICAgIEhSQ1dIX1JPTV9MT0NfTE9DQUxfMTZCSVQgfFwKIAkJICAgICAgIEhSQ1dIX1JMX0VYVF9MRUdBQ1kpCiAjZW5kaWYKIAogLyogU3lzdGVtIElPIENvbmZpZyAqLwotI2RlZmluZSBDRkdfU0lDUkgJKFNJQ1JIX1RTT0JJMSB8IFNJQ1JIX1RTT0JJMikJLyogUkdNSUkgKi8KLSNkZWZpbmUgQ0ZHX1NJQ1JMCVNJQ1JMX1VTQkRSCQkJLyogRW5hYmxlIEludGVybmFsIFVTQiBQaHkgICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkgJKFNJQ1JIX1RTT0JJMSB8IFNJQ1JIX1RTT0JJMikJLyogUkdNSUkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTAlTSUNSTF9VU0JEUgkJCS8qIEVuYWJsZSBJbnRlcm5hbCBVU0IgUGh5ICAqLwogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJKEhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCTB4MDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkoSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSyB8IFwKIAkJCSBISUQwX0VOQUJMRV9EWU5BTUlDX1BPV0VSX01BTkFHTUVOVCkKIAotI2RlZmluZSBDRkdfSElEMiBISUQyX0hCRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgSElEMl9IQkUKIAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFIgQCAweDAwMDAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJIEAgMHg4MDAwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfUENJMV9NRU1fQkFTRSB8IEJBVExfUFBfMTApCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSTIgbm90IHN1cHBvcnRlZCBvbiA4MzEzICovCi0jZGVmaW5lIENGR19JQkFUM0wJKDApCi0jZGVmaW5lIENGR19JQkFUM1UJKDApCi0jZGVmaW5lIENGR19JQkFUNEwJKDApCi0jZGVmaW5lIENGR19JQkFUNFUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCSgwKQogCiAvKiBJTU1SQkFSIEAgMHhFMDAwMDAwMCwgUENJIElPIEAgMHhFMjAwMDAwMCAmIEJDU1IgQCAweEUyNDAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUNUwJKENGR19JTU1SIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogU0RSQU0gQCAweEYwMDAwMDAwLCBzdGFjayBpbiBEQ0FDSEUgMHhGREYwMDAwMCAmIEZMQVNIIEAgMHhGRTAwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDZMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCSgwKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzE1RVJEQi5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzMTVFUkRCLmgKaW5kZXggODNmNjRjNi4uMTIyNTI3MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgzMTVFUkRCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgzMTVFUkRCLmgKQEAgLTQ1LDEzICs0NSwxMyBAQAogICogaWYgQ0xLSU4gaXMgNjYuNjZNSHosIHRoZW4KICAqIENTQiA9IDEzM01IeiwgQ09SRSA9IDQwME1IeiwgRERSQyA9IDI2Nk1IeiwgTEJDID0gMTMzTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMlgxIHxcCiAJSFJDV0xfU1ZDT0RfRElWXzIgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fMlgxIHxcCiAJSFJDV0xfQ09SRV9UT19DU0JfM1gxKQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCiAJSFJDV0hfQ09SRV9FTkFCTEUgfFwKQEAgLTY4LDMxICs2OCwzMSBAQAogLyoKICAqIFN5c3RlbSBJTyBDb25maWcKICAqLwotI2RlZmluZSBDRkdfU0lDUkgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NJQ1JMCQkweDAwMDAwMDAwIC8qIDMuM1YsIG5vIGRlbGF5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTAkJMHgwMDAwMDAwMCAvKiAzLjNWLCBubyBkZWxheSAqLwogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgLyogY2FsbCBib2FyZF9wcmVfaW5pdCAqLwogCiAvKgogICogSU1NUiBuZXcgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhFMDAwMDAwMAogCiAvKgogICogQXJiaXRlciBTZXR1cAogICovCi0jZGVmaW5lIENGR19BQ1JfUElQRV9ERVAJMyAvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoIGlzIDQgKi8KLSNkZWZpbmUgQ0ZHX0FDUl9SUFRDTlQJCTMgLyogQXJiaXRlciByZXBlYXQgY291bnQgaXMgNCAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDRVAJCTMgLyogZVRTRUMgZW1lcmdlbmN5IHByaW9yaXR5IGlzIGhpZ2hlc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUElQRV9ERVAJMyAvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoIGlzIDQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUlBUQ05UCQkzIC8qIEFyYml0ZXIgcmVwZWF0IGNvdW50IGlzIDQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUNFUAkJMyAvKiBlVFNFQyBlbWVyZ2VuY3kgcHJpb3JpdHkgaXMgaGlnaGVzdCAqLwogCiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1Ci0jZGVmaW5lIENGR19ERFJDRFJfVkFMVUUJKCBERFJDRFJfRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJRERSX1NEUkFNX0NMS19DTlRMX0NMS19BREpVU1RfMDUKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJDRFJfVkFMVUUJKCBERFJDRFJfRU4gXAogCQkJCXwgRERSQ0RSX1BaX0xPWiBcCiAJCQkJfCBERFJDRFJfTlpfTE9aIFwKIAkJCQl8IEREUkNEUl9PRFQgXApAQCAtMTAyLDE0ICsxMDIsMTQgQEAKICAqIE1hbnVhbGx5IHNldCB1cCBERFIgcGFyYW1ldGVycwogICogY29uc2lzdCBvZiB0d28gY2hpcHMgSFk1UFMxMjYyMUJGUC1DNCBmcm9tIEhZTklYCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkxMjggLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDA3Ci0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJMTI4IC8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDcKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKIAkJCQl8IDB4MDAwMTAwMDAgIC8qIE9EVF9XUiB0byBDU24gKi8gXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTAgKQogCQkJCS8qIDB4ODAwMTAxMDIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJKCAoIDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCSggKCAwIDw8IFRJTUlOR19DRkcwX1JXVF9TSElGVCApIFwKIAkJCQl8ICggMCA8PCBUSU1JTkdfQ0ZHMF9XUlRfU0hJRlQgKSBcCiAJCQkJfCAoIDAgPDwgVElNSU5HX0NGRzBfUlJUX1NISUZUICkgXAogCQkJCXwgKCAwIDw8IFRJTUlOR19DRkcwX1dXVF9TSElGVCApIFwKQEAgLTExOCw3ICsxMTgsNyBAQAogCQkJCXwgKCA4IDw8IFRJTUlOR19DRkcwX09EVF9QRF9FWElUX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcwX01SU19DWUNfU0hJRlQgKSApCiAJCQkJLyogMHgwMDIyMDgwMiAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCSggKCAzIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkoICggMyA8PCBUSU1JTkdfQ0ZHMV9QUkVUT0FDVF9TSElGVCApIFwKIAkJCQl8ICggOSA8PCBUSU1JTkdfQ0ZHMV9BQ1RUT1BSRV9TSElGVCApIFwKIAkJCQl8ICggMyA8PCBUSU1JTkdfQ0ZHMV9BQ1RUT1JXX1NISUZUICkgXAogCQkJCXwgKCA1IDw8IFRJTUlOR19DRkcxX0NBU0xBVF9TSElGVCApIFwKQEAgLTEyNyw3ICsxMjcsNyBAQAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX0FDVFRPQUNUX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX1dSVE9SRF9TSElGVCApICkKIAkJCQkvKiAweDM5MzU2MjIyICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJKCAoIDEgPDwgVElNSU5HX0NGRzJfQUREX0xBVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJKCAoIDEgPDwgVElNSU5HX0NGRzJfQUREX0xBVF9TSElGVCApIFwKIAkJCQl8ICggNCA8PCBUSU1JTkdfQ0ZHMl9DUE9fU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzJfV1JfTEFUX0RFTEFZX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcyX1JEX1RPX1BSRV9TSElGVCApIFwKQEAgLTEzNSw3MyArMTM1LDczIEBACiAJCQkJfCAoIDMgPDwgVElNSU5HX0NGRzJfQ0tFX1BMU19TSElGVCApIFwKIAkJCQl8ICggNyA8PCBUSU1JTkdfQ0ZHMl9GT1VSX0FDVF9TSElGVCkgKQogCQkJCS8qIDB4MTIxMDQ4YzcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkoICggMHgwMzYwIDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJKCAoIDB4MDM2MCA8PCBTRFJBTV9JTlRFUlZBTF9SRUZJTlRfU0hJRlQgKSBcCiAJCQkJfCAoIDB4MDEwMCA8PCBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUICkgKQogCQkJCS8qIDB4MDM2MDAxMDAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJKCBTRFJBTV9DRkdfU1JFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NGRwkoIFNEUkFNX0NGR19TUkVOIFwKIAkJCQl8IFNEUkFNX0NGR19TRFJBTV9UWVBFX0REUjIgXAogCQkJCXwgU0RSQU1fQ0ZHXzMyX0JFICkKIAkJCQkvKiAweDQzMDgwMDAwICovCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHMgkweDAwNDAxMDAwIC8qIDEgcG9zdGVkIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkoICggMHgwNDQ4IDw8IFNEUkFNX01PREVfRVNEX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAgLyogMSBwb3N0ZWQgcmVmcmVzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkoICggMHgwNDQ4IDw8IFNEUkFNX01PREVfRVNEX1NISUZUICkgXAogCQkJCXwgKCAweDAyMzIgPDwgU0RSQU1fTU9ERV9TRF9TSElGVCApICkKIAkJCQkvKiBPRFQgMTUwb2htIENMPTMsIEFMPTEgb24gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFMgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHgwMDAwMDAwMAogCiAvKgogICogTWVtb3J5IHRlc3QKICAqLwotI3VuZGVmIENGR19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMTQwMDAwCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAxNDAwMDAKIAogLyoKICAqIFRoZSByZXNlcnZlZCBtZW1vcnkKICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmIENGR19SQU1CT09UCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KSAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qCiAgKiBJbml0aWFsIFJBTSBCYXNlIEFkZHJlc3MgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMCAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMCAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4MTAwIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogTG9jYWwgQnVzIENvbmZpZ3VyYXRpb24gJiBDbG9jayBTZXR1cAogICovCi0jZGVmaW5lIENGR19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfMikKLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTENSUgkJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzIpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwNDAwMDAKIAogLyoKICAqIEZMQVNIIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkvKiB1c2UgdGhlIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAgLyogRkxBU0ggYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQk4IC8qIEZMQVNIIHNpemUgaXMgOE0gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAgLyogRkxBU0ggYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOCAvKiBGTEFTSCBzaXplIGlzIDhNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgaC93IEZsYXNoIHByb3RlY3Rpb24uICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTYgLyogOE1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE2IC8qIDhNQiB3aW5kb3cgc2l6ZSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoIENGR19GTEFTSF9CQVNFCS8qIEZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQl8ICgyIDw8IEJSX1BTX1NISUZUKQkvKiAxNiBiaXQgcG9ydCBzaXplICovIFwKIAkJCQl8IEJSX1YgKQkJLyogdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSggKH4oQ0ZHX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSggKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIFwKIAkJCQl8IE9SX1VQTV9YQU0gXAogCQkJCXwgT1JfR1BDTV9DU05UIFwKIAkJCQl8IE9SX0dQQ01fQUNTX0RJVjIgXApAQCAtMjExLDI3ICsyMTEsMjcgQEAKIAkJCQl8IE9SX0dQQ01fRUhUUiBcCiAJCQkJfCBPUl9HUENNX0VBRCApCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxIC8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM1IC8qIDEyNyA2NEtCIHNlY3RvcnMgYW5kIDggOEtCIHRvcCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMSAvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzUgLyogMTI3IDY0S0Igc2VjdG9ycyBhbmQgOCA4S0IgdG9wIHNlY3RvcnMgcGVyIGRldmljZSAqLwogCi0jdW5kZWYgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwIC8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAgLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAgLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAgLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKIC8qCiAgKiBOQU5EIEZsYXNoIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCSggQ0ZHX05BTkRfQkFTRSBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJKCBDT05GSUdfU1lTX05BTkRfQkFTRSBcCiAJCQkJfCAoMjw8QlJfREVDQ19TSElGVCkJLyogVXNlIEhXIEVDQyAqLyBcCiAJCQkJfCBCUl9QU184CQkvKiBQb3J0IFNpemUgPSA4IGJpdCAqLyBcCiAJCQkJfCBCUl9NU19GQ00JCS8qIE1TRUwgPSBGQ00gKi8gXAogCQkJCXwgQlJfViApCQkvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJKCAweEZGRkY4MDAwCQkvKiBsZW5ndGggMzJLICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkoIDB4RkZGRjgwMDAJCS8qIGxlbmd0aCAzMksgKi8gXAogCQkJCXwgT1JfRkNNX0NTQ1QgXAogCQkJCXwgT1JfRkNNX0NTVCBcCiAJCQkJfCBPUl9GQ01fQ0hUIFwKQEAgLTI0MCwyOSArMjQwLDI5IEBACiAJCQkJfCBPUl9GQ01fRUhUUiApCiAJCQkJLyogMHhGRkZGODM5NiAqLwogCi0jZGVmaW5lIENGR19MQkxBV0JBUjFfUFJFTElNCUNGR19OQU5EX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIxX1BSRUxJTQlDT05GSUdfU1lTX05BTkRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCiAKIC8qCiAgKiBTZXJpYWwgUG9ydAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZiBDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIFBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTI3Myw0MCArMjczLDQwIEBACiAvKiBJMkMgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMCAvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDUxfSAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCi0jZGVmaW5lIENGR19JMkMyX09GRlNFVAkJMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAgLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDUxfSAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKIAogLyoKICAqIEJvYXJkIGluZm8gLSByZXZpc2lvbiBhbmQgd2hlcmUgYm9vdCBmcm9tCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19QQ0Y4NTc0QV9BRERSCTB4MzkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUENGODU3NEFfQUREUgkweDM5CiAKIC8qCiAgKiBDb25maWcgb24tYm9hcmQgUlRDCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcJLyogZHMxMzM5IG9uIGJvYXJkLCB1c2UgZHMxMzM3IHJ0YyB2aWEgaTJjICovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OCAvKiBhdCBhZGRyZXNzIDB4NjggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OCAvKiBhdCBhZGRyZXNzIDB4NjggKi8KIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBBZGRyZXNzZXMgYXJlIG1hcHBlZCAxLTEuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMJQ0ZHX1BDSV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJX01NSU9fQkFTRQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTU1JT19QSFlTCUNGR19QQ0lfTU1JT19CQVNFCi0jZGVmaW5lIENGR19QQ0lfTU1JT19TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJX0lPX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19QSFlTCQkweEUwMzAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fU0laRQkJMHgxMDAwMDAgLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFCTB4OTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJX01NSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fUEhZUwkJMHhFMDMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFCQkweDEwMDAwMCAvKiAxTSAqLwogCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9MT0NBTAlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fU0laRQkweDgwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfODNYWF9HRU5FUklDX1BDSQkxIC8qIFVzZSBnZW5lcmljIFBDSSBzZXR1cCAqLwpAQCAtMzE2LDcgKzMxNiw3IEBACiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTk1NwkvKiBGcmVlc2NhbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTk1NwkvKiBGcmVlc2NhbGUgKi8KIAogI2lmbmRlZiBDT05GSUdfTkVUX01VTFRJCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQpAQCAtMzI4LDEwICszMjgsMTAgQEAKICAqIFRTRUMKICAqLwogI2RlZmluZSBDT05GSUdfVFNFQ19FTkVUCS8qIFRTRUMgZXRoZXJuZXQgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMxCQkoQ0ZHX0lNTVIrQ0ZHX1RTRUMxX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX1RTRUMyX09GRlNFVAkweDI1MDAwCi0jZGVmaW5lIENGR19UU0VDMgkJKENGR19JTU1SK0NGR19UU0VDMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMQkJKENPTkZJR19TWVNfSU1NUitDT05GSUdfU1lTX1RTRUMxX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMl9PRkZTRVQJMHgyNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyCQkoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzJfT0ZGU0VUKQogCiAvKgogICogVFNFQyBldGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0zNTcsMTUgKzM1NywxNSBAQAogI2RlZmluZSBDT05GSUdfTElCQVRBCiAjZGVmaW5lIENPTkZJR19GU0xfU0FUQQogCi0jZGVmaW5lIENGR19TQVRBX01BWF9ERVZJQ0UJMgorI2RlZmluZSBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRQkyCiAjZGVmaW5lIENPTkZJR19TQVRBMQotI2RlZmluZSBDRkdfU0FUQTFfT0ZGU0VUCTB4MTgwMDAKLSNkZWZpbmUgQ0ZHX1NBVEExCQkoQ0ZHX0lNTVIgKyBDRkdfU0FUQTFfT0ZGU0VUKQotI2RlZmluZSBDRkdfU0FUQTFfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX09GRlNFVAkweDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTEJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1NBVEExX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMV9GTEFHUwkJRkxBR1NfRE1BCiAjZGVmaW5lIENPTkZJR19TQVRBMgotI2RlZmluZSBDRkdfU0FUQTJfT0ZGU0VUCTB4MTkwMDAKLSNkZWZpbmUgQ0ZHX1NBVEEyCQkoQ0ZHX0lNTVIgKyBDRkdfU0FUQTJfT0ZGU0VUKQotI2RlZmluZSBDRkdfU0FUQTJfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX09GRlNFVAkweDE5MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTIJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1NBVEEyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMl9GTEFHUwkJRkxBR1NfRE1BCiAKICNpZmRlZiBDT05GSUdfRlNMX1NBVEEKICNkZWZpbmUgQ09ORklHX0xCQTQ4CkBAIC0zNzcsMjAgKzM3NywyMCBAQAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAJI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIDY0SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQxMSw3ICs0MTEsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX0RBVEUKICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAgICAgI3VuZGVmIENPTkZJR19DTURfTE9BRFMKICNlbmRpZgpAQCAtNDIzLDM1ICs0MjMsMzUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLQkjZGVmaW5lIENGR19DQlNJWkUJMTAyNCAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNCAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLQkjZGVmaW5lIENGR19DQlNJWkUJMjU2IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogQ29yZSBISUQgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQkweDAwMDAwMDAwMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLIHwgXAogCQkJCSBISUQwX0VOQUJMRV9EWU5BTUlDX1BPV0VSX01BTkFHTUVOVCkKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJSElEMl9IQkUKIAogLyoKICAqIE1NVSBTZXR1cApAQCAtNDU5LDUzICs0NTksNTMgQEAKICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkxCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KIAogLyogRERSOiBjYWNoZSBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8xMjhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMTI4TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQogCiAvKiBJTU1SQkFSLCBQQ0kgSU8gYW5kIE5BTkQ6IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfOE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogRkxBU0g6IGljYWNoZSBjYWNoZWFibGUsIGJ1dCBkY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMkwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfOE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBcCiAJCQlCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQogCiAvKiBTdGFjayBpbiBkY2FjaGU6IGNhY2hlYWJsZSwgbm8gbWVtb3J5IGNvaGVyZW5jZSAqLwotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTApCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyogUENJIE1FTSBzcGFjZTogY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19QQ0lfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNFUJKENGR19QQ0lfTUVNX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQogCiAvKiBQQ0kgTU1JTyBzcGFjZTogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDVMCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJQ09ORklHX1NZU19JQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJQ09ORklHX1NZU19JQkFUNVUKIAotI2RlZmluZSBDRkdfSUJBVDZMCTAKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkwCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkwCi0jZGVmaW5lIENGR19JQkFUN1UJMAotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzIzRVJEQi5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzMjNFUkRCLmgKaW5kZXggYjk1ZjU0ZC4uYzZhYzkxYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgzMjNFUkRCLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgzMjNFUkRCLmgKQEAgLTMyLDcgKzMyLDcgQEAKIC8qCiAgKiBIYXJkd2FyZSBSZXNldCBDb25maWd1cmF0aW9uIFdvcmQKICAqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18yWDEgfFwKIAlIUkNXTF9WQ09fMVgyIHxcCkBAIC00Miw3ICs0Miw3IEBACiAJSFJDV0xfQ0VfUExMX0RJVl8xWDEgfFwKIAlIUkNXTF9DRV9UT19QTExfMVgzKQogCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9FTkFCTEUgfFwKIAlIUkNXSF9DT1JFX0VOQUJMRSB8XApAQCAtNTYsMjkgKzU2LDI5IEBACiAvKgogICogU3lzdGVtIElPIENvbmZpZwogICovCi0jZGVmaW5lIENGR19TSUNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JMCQkweDAwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAKIC8qCiAgKiBJTU1SIG5ldyBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEUwMDAwMDAwCiAKIC8qCiAgKiBTeXN0ZW0gcGVyZm9ybWFuY2UKICAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwotI2RlZmluZSBDRkdfU1BDUl9PUFQJCTEJLyogKDAtMSkgT3B0aW1pemUgdHJhbnNhY3Rpb25zIGJldHdlZW4gIENTQiBhbmQgdGhlIFNFQyBhbmQgUVVJQ0MgRW5naW5lIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgKDAtNykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX09QVAkJMQkvKiAoMC0xKSBPcHRpbWl6ZSB0cmFuc2FjdGlvbnMgYmV0d2VlbiAgQ1NCIGFuZCB0aGUgU0VDIGFuZCBRVUlDQyBFbmdpbmUgYmxvY2sgKi8KIAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUkNEUgkJMHg3MzAwMDAwMgkvKiBERFIgSUkgdm9sdGFnZSBpcyAxLjhWICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUgkJMHg3MzAwMDAwMgkvKiBERFIgSUkgdm9sdGFnZSBpcyAxLjhWICovCiAKICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQogI2lmIGRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCkBAIC04OCwxMiArODgsMTIgQEAKICNlbHNlCiAvKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMKICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTY0CS8qIE1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJNjQJLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKIAkJCQl8IENTQ09ORklHX09EVF9XUl9BQ1MgXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfOSApCiAJCQkJLyogMHg4MDAxMDEwMSAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18wCSggKCAwIDw8IFRJTUlOR19DRkcwX1JXVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJKCAoIDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUICkgXAogCQkJCXwgKCAwIDw8IFRJTUlOR19DRkcwX1dSVF9TSElGVCApIFwKIAkJCQl8ICggMCA8PCBUSU1JTkdfQ0ZHMF9SUlRfU0hJRlQgKSBcCiAJCQkJfCAoIDAgPDwgVElNSU5HX0NGRzBfV1dUX1NISUZUICkgXApAQCAtMTAyLDcgKzEwMiw3IEBACiAJCQkJfCAoIDggPDwgVElNSU5HX0NGRzBfT0RUX1BEX0VYSVRfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzBfTVJTX0NZQ19TSElGVCApICkKIAkJCQkvKiAweDAwMjIwODAyICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJKCAoIDIgPDwgVElNSU5HX0NGRzFfUFJFVE9BQ1RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCSggKCAyIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUICkgXAogCQkJCXwgKCA2IDw8IFRJTUlOR19DRkcxX0FDVFRPUFJFX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX0FDVFRPUldfU0hJRlQgKSBcCiAJCQkJfCAoIDUgPDwgVElNSU5HX0NGRzFfQ0FTTEFUX1NISUZUICkgXApAQCAtMTExLDcgKzExMSw3IEBACiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzFfQUNUVE9BQ1RfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUICkgKQogCQkJCS8qIDB4MjYyNTMyMjIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkoICggMSA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkoICggMSA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUICkgXAogCQkJCXwgKDMxIDw8IFRJTUlOR19DRkcyX0NQT19TSElGVCApIFwKIAkJCQl8ICggMiA8PCBUSU1JTkdfQ0ZHMl9XUl9MQVRfREVMQVlfU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzJfUkRfVE9fUFJFX1NISUZUICkgXApAQCAtMTE5LDk5ICsxMTksOTkgQEAKIAkJCQl8ICggMyA8PCBUSU1JTkdfQ0ZHMl9DS0VfUExTX1NISUZUICkgXAogCQkJCXwgKCA3IDw8IFRJTUlOR19DRkcyX0ZPVVJfQUNUX1NISUZUKSApCiAJCQkJLyogMHgxZjkwNDhjNyAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9DTEtfQ05UTAlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DTlRMCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1CiAJCQkJLyogMHgwMjAwMDAwMCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCSggKCAweDQ0NDggPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQgKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCSggKCAweDQ0NDggPDwgU0RSQU1fTU9ERV9FU0RfU0hJRlQgKSBcCiAJCQkJfCAoIDB4MDIzMiA8PCBTRFJBTV9NT0RFX1NEX1NISUZUICkgKQogCQkJCS8qIDB4NDQ0ODAyMzIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFMgkJMHg4MDAwYzAwMAotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCSggKCA4MDAgPDwgU0RSQU1fSU5URVJWQUxfUkVGSU5UX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHg4MDAwYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkoICggODAwIDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCApIFwKIAkJCQl8ICggMTAwIDw8IFNEUkFNX0lOVEVSVkFMX0JTVE9QUkVfU0hJRlQgKSApCiAJCQkJLyogMHgwMzIwMDA2NCAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDMKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJKCBTRFJBTV9DRkdfU1JFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHCSggU0RSQU1fQ0ZHX1NSRU4gXAogCQkJCXwgU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfRERSMiBcCiAJCQkJfCBTRFJBTV9DRkdfMzJfQkUgKQogCQkJCS8qIDB4NDMwODAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMgkweDAwNDAxMDAwCiAjZW5kaWYKIAogLyoKICAqIE1lbW9yeSB0ZXN0CiAgKi8KLSN1bmRlZiBDRkdfRFJBTV9URVNUCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDMwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwM2YwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfRFJBTV9URVNUCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAzMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAzZjAwMDAwCiAKIC8qCiAgKiBUaGUgcmVzZXJ2ZWQgbWVtb3J5CiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogSW5pdGlhbCBSQU0gQmFzZSBBZGRyZXNzIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEU2MDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb2NhbCBCdXMgQ29uZmlndXJhdGlvbiAmIENsb2NrIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl8yKQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfMikKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTE2CS8qIEZMQVNIIHNpemUgaXMgMTZNICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTE2CS8qIEZMQVNIIHNpemUgaXMgMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgaC93IEZsYXNoIHByb3RlY3Rpb24uICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTgJLyogMzJNQiB3aW5kb3cgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxOAkvKiAzMk1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKENGR19GTEFTSF9CQVNFIHwJLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfAkvKiBGbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAogCQkJKDIgPDwgQlJfUFNfU0hJRlQpIHwJLyogMTYgYml0IHBvcnQgc2l6ZSAqLyBcCiAJCQlCUl9WKQkJCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZlMDA2ZmY3CS8qIDE2TUIgRmxhc2ggc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmUwMDZmZjcJLyogMTZNQiBGbGFzaCBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZiBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSN1bmRlZiBDRkdfTEJfU0RSQU0JCS8qIFRoZSBib2FyZCBoYXMgbm90IFNSREFNIG9uIGxvY2FsIGJ1cyAqLworI3VuZGVmIENPTkZJR19TWVNfTEJfU0RSQU0JCS8qIFRoZSBib2FyZCBoYXMgbm90IFNSREFNIG9uIGxvY2FsIGJ1cyAqLwogCi0jaWZkZWYgQ0ZHX0xCX1NEUkFNCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweEYwMDAwMDAwCS8qIFNEUkFNIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCisjaWZkZWYgQ09ORklHX1NZU19MQl9TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4RjAwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMl9QUkVMSU0JQ0ZHX0xCQ19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxOQkvKiA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTQlDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkJLyogNjRNQiAqLwogCiAvKmxvY2FsIGJ1cyBCUjIsIE9SMiBkZWZpbml0aW9uIGZvciBTRFJBTSBpZiBzb2xkZXJlZCBvbiB0aGUgRVBCIGJvYXJkICovCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0yMjMsMTQgKzIyMywxNCBAQAogICogMCAgICA0ICAgIDggICAgMTIgICAxNiAgIDIwICAgMjQgICAyOAogICogMTExMSAwMDAwIDAwMDAgMDAwMCAwMDAxIDEwMDAgMDExMCAwMDAxID0gZjAwMDE4NjEKICAqCi0gKiBDRkdfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bworICogQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCiAgKiB0aGUgdG9wIDE3IGJpdHMgb2YgQlIyLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JMHhmMDAwMTg2MQkvKlBvcnQgc2l6ZT0zMmJpdCwgTVNFTD1TRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JMHhmMDAwMTg2MQkvKlBvcnQgc2l6ZT0zMmJpdCwgTVNFTD1TRFJBTSAqLwogCiAvKgotICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENGR19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCisgKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCiAgKgogICogRm9yIE9SMiwgbmVlZDoKICAqICAgIDY0TUIgbWFzayBmb3IgQU0sIE9SMlswOjddID0gMTExMSAxMTAwCkBAIC0yNDMsNjggKzI0Myw2OCBAQAogICogMTExMSAxMTAwIDAwMDAgMDAwMCAwMTEwIDEwMDEgMDAwMCAwMDAxID0gZmMwMDY5MDEKICAqLwogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCTB4ZmMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xTUlQJMHgzMjAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkweDIwMDAwMDAwCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJMHgzMjAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJMHgyMDAwMDAwMAkvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiAqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04JMHgwMDYzYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04JMHgwMDYzYjcyMwogCiAvKgogICogU0RSQU0gQ29udHJvbGxlciBjb25maWd1cmF0aW9uIHNlcXVlbmNlLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX01SVykKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTk9STUFMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTCkKIAogI2VuZGlmCiAKIC8qCiAgKiBXaW5kb3dzIHRvIGFjY2VzcyBQSUIgdmlhIGxvY2FsIGJ1cwogICovCi0jZGVmaW5lIENGR19MQkxBV0JBUjNfUFJFTElNCTB4ZjgwMDgwMDAJLyogd2luZG93cyBiYXNlIDB4ZjgwMDgwMDAgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIzX1BSRUxJTQkweDgwMDAwMDBmCS8qIHdpbmRvd3Mgc2l6ZSA2NEtCICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIzX1BSRUxJTQkweGY4MDA4MDAwCS8qIHdpbmRvd3MgYmFzZSAweGY4MDA4MDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjNfUFJFTElNCTB4ODAwMDAwMGYJLyogd2luZG93cyBzaXplIDY0S0IgKi8KIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkgKi8KIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzE2LDMyICszMTYsMzIgQEAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4NTF9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTF9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkweDMwMDAKIAogLyoKICAqIENvbmZpZyBvbi1ib2FyZCBFRVBST00KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTYKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fQkFTRQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fUEhZUwlDRkdfUENJMV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCQkweGQwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJCUNGR19QQ0kxX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkJMHgwNDAwMDAwMAkvKiA2NE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJCTB4ZDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCQkweDA0MDAwMDAwCS8qIDY0TSAqLwogCiAjaWZkZWYgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfUENJX1NLSVBfSE9TVF9CUklER0UKQEAgLTM1MCw3ICszNTAsNyBAQAogCiAjdW5kZWYgQ09ORklHX0VFUFJPMTAwCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklECTB4MTk1NwkvKiBGcmVlc2NhbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklECTB4MTk1NwkvKiBGcmVlc2NhbGUgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtMzY4LDQyICszNjgsNDIgQEAKICNkZWZpbmUgQ09ORklHX1VFQ19FVEgxCQkvKiBFVEgzICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDEKLSNkZWZpbmUgQ0ZHX1VFQzFfVUNDX05VTQkyCS8qIFVDQzMgKi8KLSNkZWZpbmUgQ0ZHX1VFQzFfUlhfQ0xLCQlRRV9DTEs5Ci0jZGVmaW5lIENGR19VRUMxX1RYX0NMSwkJUUVfQ0xLMTAKLSNkZWZpbmUgQ0ZHX1VFQzFfRVRIX1RZUEUJRkFTVF9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzFfUEhZX0FERFIJNAotI2RlZmluZSBDRkdfVUVDMV9JTlRFUkZBQ0VfTU9ERQlFTkVUXzEwMF9NSUkKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1VDQ19OVU0JMgkvKiBVQ0MzICovCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9SWF9DTEsJCVFFX0NMSzkKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1RYX0NMSwkJUUVfQ0xLMTAKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX0VUSF9UWVBFCUZBU1RfRVRICisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9QSFlfQUREUgk0CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9JTlRFUkZBQ0VfTU9ERQlFTkVUXzEwMF9NSUkKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19VRUNfRVRIMgkJLyogRVRINCAqLwogCiAjaWZkZWYgQ09ORklHX1VFQ19FVEgyCi0jZGVmaW5lIENGR19VRUMyX1VDQ19OVU0JMQkvKiBVQ0MyICovCi0jZGVmaW5lIENGR19VRUMyX1JYX0NMSwkJUUVfQ0xLMTYKLSNkZWZpbmUgQ0ZHX1VFQzJfVFhfQ0xLCQlRRV9DTEszCi0jZGVmaW5lIENGR19VRUMyX0VUSF9UWVBFCUZBU1RfRVRICi0jZGVmaW5lIENGR19VRUMyX1BIWV9BRERSCTAKLSNkZWZpbmUgQ0ZHX1VFQzJfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9VQ0NfTlVNCTEJLyogVUNDMiAqLworI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfUlhfQ0xLCQlRRV9DTEsxNgorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfVFhfQ0xLCQlRRV9DTEszCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9FVEhfVFlQRQlGQVNUX0VUSAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfUEhZX0FERFIJMAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCiAjZW5kaWYKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAJI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQyNiw3ICs0MjYsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIAkjZGVmaW5lIENPTkZJR19DTURfUENJCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogCSN1bmRlZiBDT05GSUdfQ01EX0VOVgogCSN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQzNiwzNCArNDM2LDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgKENPTkZJR19DTURfS0dEQikKLQkjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLQkjZGVmaW5lIENGR19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogQ29yZSBISUQgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQkweDAwMDAwMDAwMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSwotI2RlZmluZSBDRkdfSElEMgkJSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTB4MDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSworI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCUhJRDJfSEJFCiAKIC8qCiAgKiBNTVUgU2V0dXAKQEAgLTQ3MSw2NCArNDcxLDY0IEBACiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qIEREUjogY2FjaGUgY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKIAogLyogSU1NUkJBUiAmIFBDSSBJTzogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfSU1NUiB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfSU1NUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF80TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBGTEFTSDogaWNhY2hlIGNhY2hlYWJsZSwgYnV0IGRjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMkwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKIAotI2RlZmluZSBDRkdfSUJBVDNMCSgwKQotI2RlZmluZSBDRkdfSUJBVDNVCSgwKQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyogU3RhY2sgaW4gZGNhY2hlOiBjYWNoZWFibGUsIG5vIG1lbW9yeSBjb2hlcmVuY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDRMCUNGR19JQkFUNEwKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQlDRkdfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCiAKICNpZmRlZiBDT05GSUdfUENJCiAvKiBQQ0kgTUVNIHNwYWNlOiBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNVUJKENGR19QQ0kxX01FTV9QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNUwJQ0ZHX0lCQVQ1TAotI2RlZmluZSBDRkdfREJBVDVVCUNGR19JQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQogLyogUENJIE1NSU8gc3BhY2U6IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoQ0ZHX1BDSTFfTU1JT19QSFlTIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDZVCShDRkdfUENJMV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMCkKLSNkZWZpbmUgQ0ZHX0RCQVQ1TAlDRkdfSUJBVDVMCi0jZGVmaW5lIENGR19EQkFUNVUJQ0ZHX0lCQVQ1VQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQogI2VuZGlmCiAKIC8qIE5vdGhpbmcgaW4gQkFUNyAqLwotI2RlZmluZSBDRkdfSUJBVDdMCSgwKQotI2RlZmluZSBDRkdfSUJBVDdVCSgwKQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC01NTMsOCArNTUzLDggQEAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCQkJCS8qIGFkZCBzdXBwb3J0IGZvciAiZXRoMWFkZHIiICovCiAjZGVmaW5lIENPTkZJR19FVEgxQUREUgkwMDowNDo5ZjplZjowMzowMgogCi0vKiB1c2UgbWFjX3JlYWRfZnJvbV9lZXByb20oKSB0byByZWFkIGV0aGFkZHIgZnJvbSBJMkMgRUVQUk9NIChzZWUgQ0ZHX0kyQ19FRVBST00pICovCi0jZGVmaW5lIENGR19JMkNfTUFDX09GRlNFVAkweDdmMDAJLyogTUFDIGFkZHJlc3Mgb2Zmc2V0IGluIEkyQyBFRVBST00gKi8KKy8qIHVzZSBtYWNfcmVhZF9mcm9tX2VlcHJvbSgpIHRvIHJlYWQgZXRoYWRkciBmcm9tIEkyQyBFRVBST00gKHNlZSBDT05GSUdfU1lTX0kyQ19FRVBST00pICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01BQ19PRkZTRVQJMHg3ZjAwCS8qIE1BQyBhZGRyZXNzIG9mZnNldCBpbiBJMkMgRUVQUk9NICovCiAKICNkZWZpbmUgQ09ORklHX0lQQUREUgkJMTAuMC4wLjIKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxMC4wLjAuMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzgzMlhFTURTLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODMyWEVNRFMuaAppbmRleCA5YTliNTAwLi5iYzU2ZTY4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODMyWEVNRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODMyWEVNRFMuaApAQCAtNDcsNyArNDcsNyBAQAogLyoKICAqIEhhcmR3YXJlIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZAogICovCi0jZGVmaW5lIENGR19IUkNXX0xPVyAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XIChcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzJYMSB8XAogCUhSQ1dMX1ZDT18xWDIgfFwKQEAgLTU4LDcgKzU4LDcgQEAKIAlIUkNXTF9DRV9UT19QTExfMVgzKQogCiAjaWZkZWYgQ09ORklHX1BDSVNMQVZFCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfQUdFTlQgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRElTQUJMRSB8XAogCUhSQ1dIX0NPUkVfRU5BQkxFIHxcCkBAIC02OSw3ICs2OSw3IEBACiAJSFJDV0hfQklHX0VORElBTiB8XAogCUhSQ1dIX0xBTEVfTk9STUFMKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hSQ1dfSElHSCAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfSElHSCAoXAogCUhSQ1dIX1BDSV9IT1NUIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XAogCUhSQ1dIX0NPUkVfRU5BQkxFIHxcCkBAIC04NCw3ICs4NCw3IEBACiAvKgogICogU3lzdGVtIElPIENvbmZpZwogICovCi0jZGVmaW5lIENGR19TSUNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JMCQkweDAwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKQEAgLTkyLDE1ICs5MiwxNSBAQAogLyoKICAqIElNTVIgbmV3IGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUkNEUgkJMHg3MzAwMDAwMgkvKiBERFIgSUkgdm9sdGFnZSBpcyAxLjhWICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUgkJMHg3MzAwMDAwMgkvKiBERFIgSUkgdm9sdGFnZSBpcyAxLjhWICovCiAKICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQogI2lmIGRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCkBAIC0xMTAsMTA2ICsxMTAsMTA2IEBACiAjZWxzZQogLyogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkxMjgJLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODA4NDAxMDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjIwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzOTM1ZDMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MGY5MDQ4Y2EKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NOVEwJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRERSX01PREUJCTB4NDQ0MDAyMzIKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFMgkJMHg4MDAwYzAwMAotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDMyMDAwNjQKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDA3Ci0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHCTB4NDMwODAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJMTI4CS8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDg0MDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjIwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzkzNWQzMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwZjkwNDhjYQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DTlRMCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHg0NDQwMDIzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHg4MDAwYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDAzMjAwMDY0CisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDcKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHCTB4NDMwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMgkweDAwNDAxMDAwCiAjZW5kaWYKIAogLyoKICAqIE1lbW9yeSB0ZXN0CiAgKi8KLSN1bmRlZiBDRkdfRFJBTV9URVNUCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfRFJBTV9URVNUCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwMTAwMDAwCiAKIC8qCiAgKiBUaGUgcmVzZXJ2ZWQgbWVtb3J5CiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogSW5pdGlhbCBSQU0gQmFzZSBBZGRyZXNzIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEU2MDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb2NhbCBCdXMgQ29uZmlndXJhdGlvbiAmIENsb2NrIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl8yKQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfMikKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTE2CS8qIEZMQVNIIHNpemUgaXMgMTZNICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTE2CS8qIEZMQVNIIHNpemUgaXMgMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgaC93IEZsYXNoIHByb3RlY3Rpb24uICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTgJLyogMzJNQiB3aW5kb3cgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxOAkvKiAzMk1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKENGR19GTEFTSF9CQVNFIHwJLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfAkvKiBGbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAogCQkJKDIgPDwgQlJfUFNfU0hJRlQpIHwJLyogMTYgYml0IHBvcnQgc2l6ZSAqLyBcCiAJCQlCUl9WKQkJCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZlMDA2ZmY3CS8qIDE2TUIgRmxhc2ggc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmUwMDZmZjcJLyogMTZNQiBGbGFzaCBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZiBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qCiAgKiBCQ1NSIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfQkNTUgkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfQkNTUgkvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRQkvKiBBY2Nlc3Mgd2luZG93IHNpemUgMzJLICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19CQ1NSCS8qIEFjY2VzcyB3aW5kb3cgYmFzZSBhdCBCQ1NSIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRQkvKiBBY2Nlc3Mgd2luZG93IHNpemUgMzJLICovCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfQkNTUnwweDAwMDAwODAxKQkvKiBQb3J0IHNpemU9OGJpdCwgTVNFTD1HUENNICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweEZGRkZFOWY3CS8qIGxlbmd0aCAzMksgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSfDB4MDAwMDA4MDEpCS8qIFBvcnQgc2l6ZT04Yml0LCBNU0VMPUdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEZGRkZFOWY3CS8qIGxlbmd0aCAzMksgKi8KIAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI3VuZGVmIENGR19MQl9TRFJBTQkJLyogVGhlIGJvYXJkIGhhcyBub3QgU1JEQU0gb24gbG9jYWwgYnVzICovCisjdW5kZWYgQ09ORklHX1NZU19MQl9TRFJBTQkJLyogVGhlIGJvYXJkIGhhcyBub3QgU1JEQU0gb24gbG9jYWwgYnVzICovCiAKLSNpZmRlZiBDRkdfTEJfU0RSQU0KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4RjAwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0xCX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhGMDAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAotI2RlZmluZSBDRkdfTEJMQVdCQVIyX1BSRUxJTQlDRkdfTEJDX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDE5CS8qIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjJfUFJFTElNCUNPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxOQkvKiA2NE1CICovCiAKIC8qbG9jYWwgYnVzIEJSMiwgT1IyIGRlZmluaXRpb24gZm9yIFNEUkFNIGlmIHNvbGRlcmVkIG9uIHRoZSBFUEIgYm9hcmQgKi8KIC8qCiAgKiBCYXNlIFJlZ2lzdGVyIDIgYW5kIE9wdGlvbiBSZWdpc3RlciAyIGNvbmZpZ3VyZSBTRFJBTS4KLSAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENGR19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KKyAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCiAgKgogICogRm9yIEJSMiwgbmVlZDoKICAqICAgIEJhc2UgYWRkcmVzcyBvZiAweGYwMDAwMDAwID0gQlJbMDoxNl0gPSAxMTExIDAwMDAgMDAwMCAwMDAwIDAKQEAgLTIyMSwxNCArMjIxLDE0IEBACiAgKiAwICAgIDQgICAgOCAgICAxMiAgIDE2ICAgMjAgICAyNCAgIDI4CiAgKiAxMTExIDAwMDAgMDAwMCAwMDAwIDAwMDEgMTAwMCAwMTEwIDAwMDEgPSBmMDAwMTg2MQogICoKLSAqIENGR19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCisgKiBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KICAqIHRoZSB0b3AgMTcgYml0cyBvZiBCUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkweGYwMDAxODYxCS8qUG9ydCBzaXplPTMyYml0LCBNU0VMPVNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkweGYwMDAxODYxCS8qUG9ydCBzaXplPTMyYml0LCBNU0VMPVNEUkFNICovCiAKIC8qCi0gKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ0ZHX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KICAqCiAgKiBGb3IgT1IyLCBuZWVkOgogICogICAgNjRNQiBtYXNrIGZvciBBTSwgT1IyWzA6N10gPSAxMTExIDExMDAKQEAgLTI0MSw4MCArMjQxLDgwIEBACiAgKiAxMTExIDExMDAgMDAwMCAwMDAwIDAxMTAgMTAwMSAwMDAwIDAwMDEgPSBmYzAwNjkwMQogICovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JMHhmYzAwNjkwMQogCi0jZGVmaW5lIENGR19MQkNfTFNSVAkweDMyMDAwMDAwCS8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIsIGFib3V0IDZ1cyAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCTB4MjAwMDAwMDAJLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkweDMyMDAwMDAwCS8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIsIGFib3V0IDZ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkweDIwMDAwMDAwCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCiAKIC8qCiAgKiBMU0RNUiBtYXNrcwogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTgkweDAwNjNiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTgkweDAwNjNiNzIzCiAKIC8qCiAgKiBTRFJBTSBDb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gc2VxdWVuY2UuCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfUENIQUxMKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzIJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMwkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTVJXKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzUJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzEJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMgkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzQJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVykKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNQkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMKQogCiAjZW5kaWYKIAogLyoKICAqIFdpbmRvd3MgdG8gYWNjZXNzIFBJQiB2aWEgbG9jYWwgYnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSM19QUkVMSU0JMHhmODAwODAwMAkvKiB3aW5kb3dzIGJhc2UgMHhmODAwODAwMCAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjNfUFJFTElNCTB4ODAwMDAwMGYJLyogd2luZG93cyBzaXplIDY0S0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjNfUFJFTElNCTB4ZjgwMDgwMDAJLyogd2luZG93cyBiYXNlIDB4ZjgwMDgwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSM19QUkVMSU0JMHg4MDAwMDAwZgkvKiB3aW5kb3dzIHNpemUgNjRLQiAqLwogCiAvKgogICogQ1MyIG9uIExvY2FsIEJ1cywgdG8gUElCCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JMHhmODAwODgwMQkvKiBDUzIgYmFzZSBhZGRyZXNzIGF0IDB4ZjgwMDgwMDAgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JMHhmZmZmZTlmNwkvKiBzaXplIDMyS0IsIHBvcnQgc2l6ZSA4Yml0LCBHUENNICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkweGY4MDA4ODAxCS8qIENTMiBiYXNlIGFkZHJlc3MgYXQgMHhmODAwODAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JMHhmZmZmZTlmNwkvKiBzaXplIDMyS0IsIHBvcnQgc2l6ZSA4Yml0LCBHUENNICovCiAKIC8qCiAgKiBDUzMgb24gTG9jYWwgQnVzLCB0byBQSUIKICAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkweGY4MDEwODAxCS8qIENTMyBiYXNlIGFkZHJlc3MgYXQgMHhmODAxMDAwMCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkweGZmZmZlOWY3CS8qIHNpemUgMzJLQiwgcG9ydCBzaXplIDhiaXQsIEdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCTB4ZjgwMTA4MDEJLyogQ1MzIGJhc2UgYWRkcmVzcyBhdCAweGY4MDEwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkweGZmZmZlOWY3CS8qIHNpemUgMzJLQiwgcG9ydCBzaXplIDhiaXQsIEdQQ00gKi8KIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzI2LDM0ICszMjYsMzQgQEAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4NTF9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTF9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkweDMwMDAKIAogLyoKICAqIENvbmZpZyBvbi1ib2FyZCBSVEMKICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTM3NAkJLyogdXNlIGRzMTM3NCBydGMgdmlhIGkyYyAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4ICovCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCUNGR19QQ0lfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX0JBU0UJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01NSU9fUEhZUwlDRkdfUENJX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJMHhFMDMwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCTB4RTAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgxMDAwMDAJLyogMU0gKi8KIAotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fTE9DQUwJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTAlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX1NJWkUJMHg4MDAwMDAwMAogCiAKICNpZmRlZiBDT05GSUdfUENJCkBAIC0zNjMsNyArMzYzLDcgQEAKIAogI3VuZGVmIENPTkZJR19FRVBSTzEwMAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRAkweDE5NTcJLyogRnJlZXNjYWxlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRAkweDE5NTcJLyogRnJlZXNjYWxlICovCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTM4MSw0MiArMzgxLDQyIEBACiAjZGVmaW5lIENPTkZJR19VRUNfRVRIMQkJLyogRVRIMyAqLwogCiAjaWZkZWYgQ09ORklHX1VFQ19FVEgxCi0jZGVmaW5lIENGR19VRUMxX1VDQ19OVU0JMgkvKiBVQ0MzICovCi0jZGVmaW5lIENGR19VRUMxX1JYX0NMSwkJUUVfQ0xLOQotI2RlZmluZSBDRkdfVUVDMV9UWF9DTEsJCVFFX0NMSzEwCi0jZGVmaW5lIENGR19VRUMxX0VUSF9UWVBFCUZBU1RfRVRICi0jZGVmaW5lIENGR19VRUMxX1BIWV9BRERSCTMKLSNkZWZpbmUgQ0ZHX1VFQzFfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9VQ0NfTlVNCTIJLyogVUNDMyAqLworI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfUlhfQ0xLCQlRRV9DTEs5CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9UWF9DTEsJCVFFX0NMSzEwCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9FVEhfVFlQRQlGQVNUX0VUSAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfUEhZX0FERFIJMworI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDIJCS8qIEVUSDQgKi8KIAogI2lmZGVmIENPTkZJR19VRUNfRVRIMgotI2RlZmluZSBDRkdfVUVDMl9VQ0NfTlVNCTMJLyogVUNDNCAqLwotI2RlZmluZSBDRkdfVUVDMl9SWF9DTEsJCVFFX0NMSzcKLSNkZWZpbmUgQ0ZHX1VFQzJfVFhfQ0xLCQlRRV9DTEs4Ci0jZGVmaW5lIENGR19VRUMyX0VUSF9UWVBFCUZBU1RfRVRICi0jZGVmaW5lIENGR19VRUMyX1BIWV9BRERSCTQKLSNkZWZpbmUgQ0ZHX1VFQzJfSU5URVJGQUNFX01PREUJRU5FVF8xMDBfTUlJCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9VQ0NfTlVNCTMJLyogVUNDNCAqLworI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfUlhfQ0xLCQlRRV9DTEs3CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9UWF9DTEsJCVFFX0NMSzgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX0VUSF9UWVBFCUZBU1RfRVRICisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9QSFlfQUREUgk0CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9JTlRFUkZBQ0VfTU9ERQlFTkVUXzEwMF9NSUkKICNlbmRpZgogCiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisJI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDQwLDcgKzQ0MCw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ1MSwzNCArNDUxLDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENvcmUgSElEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQlISUQyX0hCRQogCiAvKgogICogTU1VIFNldHVwCkBAIC00ODcsNjQgKzQ4Nyw2NCBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFI6IGNhY2hlIGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKIC8qIElNTVJCQVIgJiBQQ0kgSU86IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogQkNTUjogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfQkNTUiB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX0JDU1IgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfQkNTUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX0JDU1IgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKIAogLyogRkxBU0g6IGljYWNoZSBjYWNoZWFibGUsIGJ1dCBkY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDNMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkoMCkKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCiAKIC8qIFN0YWNrIGluIGRjYWNoZTogY2FjaGVhYmxlLCBubyBtZW1vcnkgY29oZXJlbmNlICovCi0jZGVmaW5lIENGR19JQkFUNUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ1TAlDRkdfSUJBVDVMCi0jZGVmaW5lIENGR19EQkFUNVUJQ0ZHX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1TAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQogCiAjaWZkZWYgQ09ORklHX1BDSQogLyogUENJIE1FTSBzcGFjZTogY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUNkwJKENGR19QQ0lfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNlUJKENGR19QQ0lfTUVNX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQogLyogUENJIE1NSU8gc3BhY2U6IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkoQ0ZHX1BDSV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkoQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkoQ0ZHX1BDSV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDZMCSgwKQotI2RlZmluZSBDRkdfSUJBVDZVCSgwKQotI2RlZmluZSBDRkdfSUJBVDdMCSgwKQotI2RlZmluZSBDRkdfSUJBVDdVCSgwKQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCi0jZGVmaW5lIENGR19EQkFUN0wJQ0ZHX0lCQVQ3TAotI2RlZmluZSBDRkdfREJBVDdVCUNGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJKDApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzQ5RU1EUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNDlFTURTLmgKaW5kZXggODEzNTI1NC4uYmJkYzIxMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgzNDlFTURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNDlFTURTLmgKQEAgLTY1LDExICs2NSwxMSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJCS8qIGNhbGwgYm9hcmRfcHJlX2luaXQgKi8KIAotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAotI3VuZGVmIENGR19EUkFNX1RFU1QJCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMCAgICAgIC8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfRFJBTV9URVNUCQkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwICAgICAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAogCiAvKgogICogRERSIFNldHVwCkBAIC05MCwxNyArOTAsMTcgQEAKICAqLwogI3VuZGVmIENPTkZJR19ERFJfMzJCSVQKIAotI2RlZmluZSBDRkdfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAogCQkJCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1KQogI3VuZGVmICBDT05GSUdfRERSXzJUX1RJTUlORwogCiAvKgogICogRERSQ0RSIC0gRERSIENvbnRyb2wgRHJpdmVyIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUkNEUl9WQUxVRQkweDgwMDgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRERSQ0RSX1ZBTFVFCTB4ODAwODAwMDEKIAogI2lmIGRlZmluZWQoQ09ORklHX1NQRF9FRVBST00pCiAvKgpAQCAtMTExLDM0ICsxMTEsMzQgQEAKIC8qCiAgKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMKICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTI1NgkJLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJMjU2CQkvKiBNQiAqLwogI2lmIGRlZmluZWQoQ09ORklHX0REUl9JSSkKLSNkZWZpbmUgQ0ZHX0REUkNEUgkJMHg4MDA4MDAwMQotI2RlZmluZSBDRkdfRERSX0NTMl9CTkRTCTB4MDAwMDAwMGYKLSNkZWZpbmUgQ0ZHX0REUl9DUzJfQ09ORklHCTB4ODAzMzAxMDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjIwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzODM1NzMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MmY5MDQ4YzgKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NOVEwJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRERSX01PREUJCTB4NDdkMDA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFMgkJMHg4MDAwYzAwMAotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDNjZjAwODAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJMHg0MzAwMDAwMAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NGRzIJMHgwMDQwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUgkJMHg4MDA4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzJfQk5EUwkweDAwMDAwMDBmCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9DT05GSUcJMHg4MDMzMDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjIwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzgzNTczMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgyZjkwNDhjOAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DTlRMCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHg0N2QwMDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHg4MDAwYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDAzY2YwMDgwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NGRwkweDQzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NGRzIJMHgwMDQwMTAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0REUl9DT05GSUcJCShDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBDU0NPTkZJR19DT0xfQklUXzEwKQotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzYzMzIzMjEKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDAwMDAwODAwCS8qIFA5LTQ1LG1heSBuZWVkIHR1bmluZyAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNDA2MDEwMAkvKiBhdXRvY2hhcmdlLG5vIG9wZW4gcGFnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05GSUcJCShDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBDU0NPTkZJR19DT0xfQklUXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM2MzMyMzIxCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wJCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDQwNjAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl8zMkJJVCkKIC8qIHNldCBidXJzdCBsZW5ndGggdG8gOCBmb3IgMzItYml0IGRhdGEgcGF0aCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjMJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDggYnVyc3QgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MDAwMDAwMjMJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDggYnVyc3QgbGVuICovCiAjZWxzZQogLyogdGhlIGRlZmF1bHQgYnVyc3QgbGVuZ3RoIGlzIDQgLSBmb3IgNjQtYml0IGRhdGEgcGF0aCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDQgYnVyc3QgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MDAwMDAwMjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDQgYnVyc3QgbGVuICovCiAjZW5kaWYKICNlbmRpZgogI2VuZGlmCkBAIC0xNDYsNjQgKzE0Niw2NCBAQAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhGMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhGMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLwogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkzMgkJLyogbWF4IGZsYXNoIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLwotLyogI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTMyCQkvKiBtYXggZmxhc2ggc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwJLyogZmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwJLyogZmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQkoMiA8PCBCUl9QU19TSElGVCkgfAkvKiAxNiBiaXQgcG9ydCBzaXplICovCSBcCiAJCQkJQlJfVikJCQkvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKCh+KENGR19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkoKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKIAkJCQlPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgT1JfR1BDTV9YQUNTIHwgT1JfR1BDTV9TQ1lfMTUgfCBcCiAJCQkJT1JfR1BDTV9UUkxYIHwgT1JfR1BDTV9FSFRSIHwgT1JfR1BDTV9FQUQpCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIHdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE4CS8qIDMyIE1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogd2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE4CS8qIDMyIE1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkJLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmIENGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NSURfRkxBU0hfSlVNUAkweDdGMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NSURfRkxBU0hfSlVNUAkweDdGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmICBDRkdfUkFNQk9PVAorI3VuZGVmICBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAvKgogICogQkNTUiByZWdpc3RlciBvbiBsb2NhbCBidXMgMzJLQiwgOC1iaXQgd2lkZSBmb3IgTURTIGNvbmZpZyByZWcKICAqLwotI2RlZmluZSBDRkdfQkNTUgkJMHhFMjQwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfQkNTUgkJLyogQWNjZXNzIHdpbmRvdyBiYXNlIGF0IEJDU1IgYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjFfUFJFTElNCTB4ODAwMDAwMEUJCS8qIEFjY2VzcyB3aW5kb3cgc2l6ZSAzMksgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfQkNTUnwweDAwMDAwODAxKQkvKiBQb3J0LXNpemU9OGJpdCwgTVNFTD1HUENNICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweEZGRkZFOEYwCQkvKiBsZW5ndGggMzJLICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhFMjQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19CQ1NSCQkvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjFfUFJFTElNCTB4ODAwMDAwMEUJCS8qIEFjY2VzcyB3aW5kb3cgc2l6ZSAzMksgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSfDB4MDAwMDA4MDEpCS8qIFBvcnQtc2l6ZT04Yml0LCBNU0VMPUdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEZGRkZFOEYwCQkvKiBsZW5ndGggMzJLICovCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhGRDAwMDAwMAkJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCQkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyoKICAqIExvY2FsIEJ1cyBMQ1JSIGFuZCBMQkNSIHJlZ3MKQEAgLTIxMSwyMCArMjExLDIwIEBACiAgKiBFeHRlcm5hbCBMb2NhbCBCdXMgcmF0ZSBpcwogICogICAgQ0xLSU4gKiBIUkNXTF9DU0JfVE9fQ0xLSU4gLyBIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEsgLyBMQ1JSX0NMS0RJVgogICovCi0jZGVmaW5lIENGR19MQ1JSCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl80KQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJMHgwMDAwMDAwMAogCiAvKgogICogVGhlIE1QQzgzNHhFQSBNRFMgZm9yIDgzNHhFIHJldjMuMSBtYXkgbm90IGJlIGFzc2VtYmxlZCBTRFJBTSBtZW1vcnkuCi0gKiBpZiBib2FyZCBoYXMgU1JEQU0gb24gbG9jYWwgYnVzLCB5b3UgY2FuIGRlZmluZSBDRkdfTEJfU0RSQU0KKyAqIGlmIGJvYXJkIGhhcyBTUkRBTSBvbiBsb2NhbCBidXMsIHlvdSBjYW4gZGVmaW5lIENPTkZJR19TWVNfTEJfU0RSQU0KICAqLwotI3VuZGVmIENGR19MQl9TRFJBTQorI3VuZGVmIENPTkZJR19TWVNfTEJfU0RSQU0KIAotI2lmZGVmIENGR19MQl9TRFJBTQorI2lmZGVmIENPTkZJR19TWVNfTEJfU0RSQU0KIC8qIExvY2FsIGJ1cyBCUjIsIE9SMiBkZWZpbml0aW9uIGZvciBTRFJBTSBpZiBzb2xkZXJlZCBvbiB0aGUgTURTIGJvYXJkICovCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0yMzYsMTYgKzIzNiwxNiBAQAogICogMCAgICA0ICAgIDggICAgMTIgICAxNiAgIDIwICAgMjQgICAyOAogICogMTExMSAwMDAwIDAwMDAgMDAwMCAwMDAxIDEwMDAgMDExMCAwMDAxID0gRjAwMDE4NjEKICAqCi0gKiBGSVhNRTogQ0ZHX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KKyAqIEZJWE1FOiBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KICAqIEZJWE1FOiB0aGUgdG9wIDE3IGJpdHMgb2YgQlIyLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4RjAwMDE4NjEgLyogUG9ydC1zaXplPTMyYml0LCBNU0VMPVNEUkFNICovCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDE5IC8qIDY0TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4RjAwMDE4NjEgLyogUG9ydC1zaXplPTMyYml0LCBNU0VMPVNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkgLyogNjRNICovCiAKIC8qCi0gKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ0ZHX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KICAqCiAgKiBGb3IgT1IyLCBuZWVkOgogICogICAgNjRNQiBtYXNrIGZvciBBTSwgT1IyWzA6N10gPSAxMTExIDExMDAKQEAgLTI1OCw2NSArMjU4LDY1IEBACiAgKiAxMTExIDExMDAgMDAwMCAwMDAwIDAxMTAgMTAwMSAwMDAwIDAwMDEgPSBGQzAwNjkwMQogICovCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JMHhGQzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JMHhGQzAwNjkwMQogCi0jZGVmaW5lIENGR19MQkNfTFNSVAkweDMyMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIsIGFib3V0IDZ1cyAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkweDMyMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIsIGFib3V0IDZ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCwgMjY2TUh6LzMyICovCiAKIC8qCiAgKiBMU0RNUiBtYXNrcwogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSNQkoMyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjgJKDUgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1QzCSgzIDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDYJKDUgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzMJKDMgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkMyCSgyIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkMzCSgzIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CVUZDTUQJKDEgPDwgKDMxIC0gMjkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjUJKDMgPDwgKDMxIC0gMTYpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSOAkoNSA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUMwkoMyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNgkoNSA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlczCSgzIDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzIJKDIgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkMzCSgzIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JVRkNNRAkoMSA8PCAoMzEgLSAyOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ09NTU9OICAgICggQ0ZHX0xCQ19MU0RNUl9SRkVOICAgICAgICAgICAgXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNglcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1JGQ1I4CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNglcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0FDVFRPUlczCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQkw4CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1dSQzMJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQ0wzCQlcCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiAgICAoIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4gICAgICAgICAgICBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNglcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q2CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlczCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDMwkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCQlcCiAJCQkJKQogCiAvKgogICogU0RSQU0gQ29udHJvbGxlciBjb25maWd1cmF0aW9uIHNlcXVlbmNlLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX01SVykKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTk9STUFMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTCkKICNlbmRpZgogCiAvKgpAQCAtMzI0LDIyICszMjQsMjIgQEAKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgICAgMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX0lNTVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yICAgICAgICAoQ0ZHX0lNTVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yICAgICAgICAoQ09ORklHX1NZU19JTU1SKzB4NDYwMCkKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzUzLDUzICszNTMsNTMgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7ezAsMHg2OX19CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJe3swLDB4Njl9fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKIAogLyogU1BJICovCiAjZGVmaW5lIENPTkZJR19NUEM4WFhYX1NQSQogI3VuZGVmIENPTkZJR19TT0ZUX1NQSQkJCS8qIFNQSSBiaXQtYmFuZ2VkICovCiAKIC8qIEdQSU9zLiAgVXNlZCBhcyBTUEkgY2hpcCBzZWxlY3RzICovCi0jZGVmaW5lIENGR19HUElPMV9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0dQSU8xX0RJUgkJMHhDMDAwMDAwMCAgLyogU1BJIENTIG9uIDAsIExFRCBvbiAxICovCi0jZGVmaW5lIENGR19HUElPMV9EQVQJCTB4QzAwMDAwMDAgIC8qIEJvdGggYXJlIGFjdGl2ZSBMT1cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9ESVIJCTB4QzAwMDAwMDAgIC8qIFNQSSBDUyBvbiAwLCBMRUQgb24gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0RBVAkJMHhDMDAwMDAwMCAgLyogQm90aCBhcmUgYWN0aXZlIExPVyAqLwogCiAvKiBUU0VDICovCi0jZGVmaW5lIENGR19UU0VDMV9PRkZTRVQgMHgyNDAwMAotI2RlZmluZSBDRkdfVFNFQzEgKENGR19JTU1SK0NGR19UU0VDMV9PRkZTRVQpCi0jZGVmaW5lIENGR19UU0VDMl9PRkZTRVQgMHgyNTAwMAotI2RlZmluZSBDRkdfVFNFQzIgKENGR19JTU1SK0NGR19UU0VDMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUIDB4MjQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMSAoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVCAweDI1MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzIgKENPTkZJR19TWVNfSU1NUitDT05GSUdfU1lTX1RTRUMyX09GRlNFVCkKIAogLyogVVNCICovCi0jZGVmaW5lIENGR19VU0VfTVBDODM0WFNZU19VU0JfUEhZCTEgLyogVXNlIFNZUyBib2FyZCBQSFkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfTVBDODM0WFNZU19VU0JfUEhZCTEgLyogVXNlIFNZUyBib2FyZCBQSFkgKi8KIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBBZGRyZXNzZXMgYXJlIG1hcHBlZCAxLTEuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19CQVNFCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19QSFlTCUNGR19QQ0kxX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4RTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFCTB4OTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhFMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX0JBU0UJMHhBMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9NRU1fUEhZUwlDRkdfUENJMl9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMl9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTJfTU1JT19CQVNFCTB4QjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTU1JT19QSFlTCUNGR19QQ0kyX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMl9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4RTIxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweEEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFCTB4QjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMJMHhFMjEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKQEAgLTQyNSw3ICs0MjUsNyBAQAogI2VuZGlmCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTk1NyAgLyogRnJlZXNjYWxlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDE5NTcgIC8qIEZyZWVzY2FsZSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC00NjAsMTQgKzQ2MCwxNCBAQAogICogQ29uZmlndXJlIG9uLWJvYXJkIFJUQwogICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzc0CQkJLyogdXNlIGRzMTM3NCBydGMgdmlhIGkyYwkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4CQkqLwogCiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogCkBAIC00NzYsMTQgKzQ3NiwxNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKICNlbHNlCi0JI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seSAqLwotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIAogLyoKQEAgLTUwOSw3ICs1MDksNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC01MjAsNjAgKzUyMCw2MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKLSNkZWZpbmUgQ0ZHX1JDV0hfUENJSE9TVCAweDgwMDAwMDAwIC8qIFBDSUhPU1QgICovCisjZGVmaW5lIENPTkZJR19TWVNfUkNXSF9QQ0lIT1NUIDB4ODAwMDAwMDAgLyogUENJSE9TVCAgKi8KIAogI2lmIDEgLyo1MjgvMjY0Ki8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYMiB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzJYMSkKICNlbGlmIDAgLyozOTYvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzNYMSkKICNlbGlmIDAgLyoyNjQvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzJYMSkKICNlbGlmIDAgLyoxMzIvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzFYMSkKICNlbGlmIDAgLyoyNjQvMjY0ICovCi0jZGVmaW5lIENGR19IUkNXX0xPVyAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XIChcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0NTQl9UT19DTEtJTiB8XApAQCAtNTgyLDcgKzU4Miw3IEBACiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19QQ0lTTEFWRQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0FHRU5UIHxcCiAJSFJDV0hfNjRfQklUX1BDSSB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9ESVNBQkxFIHxcCkBAIC01OTYsNyArNTk2LDcgQEAKIAlIUkNXSF9UU0VDMk1fSU5fR01JSSApCiAjZWxzZQogI2lmIGRlZmluZWQoUENJXzY0QklUKQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF82NF9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNjA5LDcgKzYwOSw3IEBACiAJSFJDV0hfVFNFQzFNX0lOX0dNSUkgfFwKIAlIUkNXSF9UU0VDMk1fSU5fR01JSSApCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF8zMl9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNjI3LDg1ICs2MjcsODUgQEAKIC8qCiAgKiBTeXN0ZW0gcGVyZm9ybWFuY2UKICAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDMUVQCTMJLyogVFNFQzEgZW1lcmdlbmN5IHByaW9yaXR5ICgwLTMpICovCi0jZGVmaW5lIENGR19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzFDTQkxCS8qIFRTRUMxIGNsb2NrIG1vZGUgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzJDTQkxCS8qIFRTRUMyICYgSTJDMCBjbG9jayBtb2RlICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgKDAtNykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUMxRVAJMwkvKiBUU0VDMSBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMxQ00JMQkvKiBUU0VDMSBjbG9jayBtb2RlICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9UU0VDMkNNCTEJLyogVFNFQzIgJiBJMkMwIGNsb2NrIG1vZGUgKDAtMykgKi8KIAogLyogU3lzdGVtIElPIENvbmZpZyAqLwotI2RlZmluZSBDRkdfU0lDUkggU0lDUkhfVFNPQkkxCi0jZGVmaW5lIENGR19TSUNSTCBTSUNSTF9MRFBfQQorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JIIFNJQ1JIX1RTT0JJMQorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JMIFNJQ1JMX0xEUF9BCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkweDAwMDAwMDAwMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAlISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCTB4MDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAlISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLCiAKLS8qICNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCShcCisvKiAjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJKFwKIAlISUQwX0VOQUJMRV9JTlNUUlVDVElPTl9DQUNIRSB8XAogCUhJRDBfRU5BQkxFX01fQklUIHxcCiAJSElEMF9FTkFCTEVfQUREUkVTU19CUk9BRENBU1QgKSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0hJRDIgSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyIEhJRDJfSEJFCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qIEREUiBAIDB4MDAwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJIEAgMHg4MDAwMDAwMCAqLwogI2lmZGVmIENPTkZJR19QQ0kKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUMUwJKDApCi0jZGVmaW5lIENGR19JQkFUMVUJKDApCi0jZGVmaW5lIENGR19JQkFUMkwJKDApCi0jZGVmaW5lIENGR19JQkFUMlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSgwKQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTVBDODNYWF9QQ0kyCi0jZGVmaW5lIENGR19JQkFUM0wJKENGR19QQ0kyX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDNVCShDRkdfUENJMl9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDRMCShDRkdfUENJMl9NTUlPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfUENJMl9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCShDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDNMCSgwKQotI2RlZmluZSBDRkdfSUJBVDNVCSgwKQotI2RlZmluZSBDRkdfSUJBVDRMCSgwKQotI2RlZmluZSBDRkdfSUJBVDRVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoMCkKICNlbmRpZgogCiAvKiBJTU1SQkFSIEAgMHhFMDAwMDAwMCwgUENJIElPIEAgMHhFMjAwMDAwMCAmIEJDU1IgQCAweEUyNDAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUNUwJKENGR19JTU1SIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX0lNTVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogU0RSQU0gQCAweEYwMDAwMDAwLCBzdGFjayBpbiBEQ0FDSEUgMHhGREYwMDAwMCAmIEZMQVNIIEAgMHhGRTAwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDZMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUN0wJKDApCi0jZGVmaW5lIENGR19JQkFUN1UJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKIAotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTAlDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCi0jZGVmaW5lIENGR19EQkFUNEwJQ0ZHX0lCQVQ0TAotI2RlZmluZSBDRkdfREJBVDRVCUNGR19JQkFUNFUKLSNkZWZpbmUgQ0ZHX0RCQVQ1TAlDRkdfSUJBVDVMCi0jZGVmaW5lIENGR19EQkFUNVUJQ0ZHX0lCQVQ1VQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCi0jZGVmaW5lIENGR19EQkFUN0wJQ0ZHX0lCQVQ3TAotI2RlZmluZSBDRkdfREJBVDdVCUNGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwJQ09ORklHX1NZU19JQkFUNEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJQ09ORklHX1NZU19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJQ09ORklHX1NZU19JQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJQ09ORklHX1NZU19JQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM0OUlUWC5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNDlJVFguaAppbmRleCA4MWVhOWY4Li5mNjMzZjI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM0OUlUWC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzQ5SVRYLmgKQEAgLTU3LDcgKzU3LDcgQEAKICNkZWZpbmUgX19DT05GSUdfSAogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZFMDAwMDAwKQotI2RlZmluZSBDRkdfTE9XQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QKICNlbmRpZgogCiAvKgpAQCAtNjYsNyArNjYsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDODM0WAkJLyogTVBDODM0eCBmYW1pbHkgKDgzNDMsIDgzNDcsIDgzNDkpICovCiAjZGVmaW5lIENPTkZJR19NUEM4MzQ5CQkvKiBNUEM4MzQ5IHNwZWNpZmljICovCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RTAwMDAwMDAJLyogVGhlIElNTVIgaXMgcmVsb2NhdGVkIHRvIGhlcmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEUwMDAwMDAwCS8qIFRoZSBJTU1SIGlzIHJlbG9jYXRlZCB0byBoZXJlICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9GCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgpAQCAtOTUsMjYgKzk1LDI2IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAotI2RlZmluZSBDRkdfU1BEX0JVU19OVU0JCTEJLyogVGhlIEkyQyBidXMgZm9yIFNQRCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkJMQkvKiBUaGUgSTJDIGJ1cyBmb3IgU1BEICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ184NTc0X0FERFIxCTB4MjAJLyogSTJDMSwgUENGODU3NCAqLwotI2RlZmluZSBDRkdfSTJDXzg1NzRfQUREUjIJMHgyMQkvKiBJMkMxLCBQQ0Y4NTc0ICovCi0jZGVmaW5lIENGR19JMkNfODU3NEFfQUREUjEJMHgzOAkvKiBJMkMxLCBQQ0Y4NTc0QSAqLwotI2RlZmluZSBDRkdfSTJDXzg1NzRBX0FERFIyCTB4MzkJLyogSTJDMSwgUENGODU3NEEgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEkyQzAsIEJvYXJkIEVFUFJPTSAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgJLyogSTJDMSwgRFMxMzM5IFJUQyovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDXzg1NzRfQUREUjEJMHgyMAkvKiBJMkMxLCBQQ0Y4NTc0ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDXzg1NzRfQUREUjIJMHgyMQkvKiBJMkMxLCBQQ0Y4NTc0ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDXzg1NzRBX0FERFIxCTB4MzgJLyogSTJDMSwgUENGODU3NEEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfODU3NEFfQUREUjIJMHgzOQkvKiBJMkMxLCBQQ0Y4NTc0QSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEkyQzAsIEJvYXJkIEVFUFJPTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CS8qIEkyQzEsIERTMTMzOSBSVEMqLwogI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MJMHg1MQkvKiBJMkMxLCBERFIgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcmVzc2VzOiAqLwotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXt7MSwgQ0ZHX0kyQ184NTc0X0FERFIxfSwgXAotCQkJCSB7MSwgQ0ZHX0kyQ184NTc0X0FERFIyfSwgXAotCQkJCSB7MSwgQ0ZHX0kyQ184NTc0QV9BRERSMX0sIFwKLQkJCQkgezEsIENGR19JMkNfODU3NEFfQUREUjJ9fQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7ezEsIENPTkZJR19TWVNfSTJDXzg1NzRfQUREUjF9LCBcCisJCQkJIHsxLCBDT05GSUdfU1lTX0kyQ184NTc0X0FERFIyfSwgXAorCQkJCSB7MSwgQ09ORklHX1NZU19JMkNfODU3NEFfQUREUjF9LCBcCisJCQkJIHsxLCBDT05GSUdfU1lTX0kyQ184NTc0QV9BRERSMn19CiAvKiBCaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSA4NTc0W0FdIEkyQyBleHBhbmRlciAqLwogI2RlZmluZSBJMkNfODU3NF9SRVZJU0lPTgkweDAzCS8qIEJvYXJkIHJldmlzaW9uLCAwMD0wLjAsIDAxPTAuMSwgMTA9MS4wICovCiAjZGVmaW5lIEkyQ184NTc0X0NGCQkweDA4CS8qIDE9Q29tcGFjdCBmbGFzaCBhYnNlbnQsIDA9cHJlc2VudCAqLwpAQCAtMTI5LDE1ICsxMjksMTUgQEAKIC8qIENvbXBhY3QgRmxhc2ggKi8KICNpZmRlZiBDT05GSUdfQ09NUEFDVF9GTEFTSAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX0NGX0JBU0UKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTAKLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDIwMAotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJMgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfQ0ZfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMgogCiAjZGVmaW5lIEFUQV9SRVNFVF9USU1FCTEJLyogSWYgYSBDRiBjYXJkIGlzIG5vdCBpbnNlcnRlZCwgdGltZSBvdXQgcXVpY2tseSAqLwogCkBAIC0xNDgsMTQgKzE0OCwxNCBAQAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfODNYWF9ERFJfVVNFU19DUzAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgxMDAwCQkvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTXzgzWFhfRERSX1VTRVNfQ1MwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDEwMDAJCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MjAwMAogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9TU19FTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9TU19FTiB8IFwKIAkJCQlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNzUpCiAKICNpZmRlZiBDT05GSUdfSEFSRF9JMkMKQEAgLTE2MywzNCArMTYzLDM0IEBACiAjZW5kaWYKIAogI2lmbmRlZiBDT05GSUdfU1BEX0VFUFJPTQkvKiBObyBTUEQ/IFRoZW4gbWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzICovCi0gICAgI2RlZmluZSBDRkdfRERSX1NJWkUJMjU2CQkvKiBNYiAqLwotICAgICNkZWZpbmUgQ0ZHX0REUl9DT05GSUcJKENTQ09ORklHX0VOIHwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTApCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCTI1NgkJLyogTWIgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTkZJRwkoQ1NDT05GSUdfRU4gfCBDU0NPTkZJR19ST1dfQklUXzEzIHwgQ1NDT05GSUdfQ09MX0JJVF8xMCkKIAotICAgICNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDI2MjQyMzIxCi0gICAgI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAgIC8qIFA5LTQ1LCBtYXkgbmVlZCB0dW5pbmcgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MjYyNDIzMjEKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAgIC8qIFA5LTQ1LCBtYXkgbmVlZCB0dW5pbmcgKi8KICNlbmRpZgogCiAvKgogICpGbGFzaCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiB1c2UgdGhlIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIDEyNyA2NEtCIHNlY3RvcnMgKyA4IDhLQiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIDEyNyA2NEtCIHNlY3RvcnMgKyA4IDhLQiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKIAogLyogVGhlIElUWCBoYXMgdHdvIGZsYXNoIGNoaXBzLCBidXQgdGhlIElUWC1HUCBoYXMgb25seSBvbmUuICBUbyBzdXBwb3J0IGJvdGgKIGJvYXJkcywgd2Ugc2F5IHdlIGhhdmUgdHdvLCBidXQgZG9uJ3QgZGlzcGxheSBhIG1lc3NhZ2UgaWYgd2UgZmluZCBvbmx5IG9uZS4gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJe0NGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIDB4ODAwMDAwfQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMTYJCS8qIEZMQVNIIHNpemUgaW4gTUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkVfU0hJRlQJNAkJLyogbG9nMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7Q09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDgwMDAwMH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkxNgkJLyogRkxBU0ggc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkVfU0hJRlQJNAkJLyogbG9nMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KIAogLyogVml0ZXNzZSA3Mzg1ICovCiAKQEAgLTIxMCwzNCArMjEwLDM0IEBACiAKIC8qIEZsYXNoICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCShDRkdfRkxBU0hfQkFTRSB8IEJSX1BTXzE2IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSgofihDRkdfRkxBU0hfU0laRSAtIDEpIDw8IDIwKSB8IE9SX1VQTV9YQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJSX1BTXzE2IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkoKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKIAkJCQlPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgT1JfR1BDTV9YQUNTIHwgT1JfR1BDTV9TQ1lfMTUgfCBcCiAJCQkJT1JfR1BDTV9UUkxYIHwgT1JfR1BDTV9FSFRSIHwgT1JfR1BDTV9FQUQpCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JKExCTEFXQVJfRU4gfCAoMHgxMyArIENGR19GTEFTSF9TSVpFX1NISUZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkoTEJMQVdBUl9FTiB8ICgweDEzICsgQ09ORklHX1NZU19GTEFTSF9TSVpFX1NISUZUKSkKIAogLyogVml0ZXNzZSA3Mzg1ICovCiAKLSNkZWZpbmUgQ0ZHX1ZTQzczODVfQkFTRQkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVlNDNzM4NV9CQVNFCTB4RjgwMDAwMDAKIAogI2lmZGVmIENPTkZJR19WU0M3Mzg1X0VORVQKIAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJKENGR19WU0M3Mzg1X0JBU0UgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCShPUl9BTV8xMjhLQiB8IE9SX0dQQ01fQ1NOVCB8IE9SX0dQQ01fWEFDUyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19WU0M3Mzg1X0JBU0UgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkoT1JfQU1fMTI4S0IgfCBPUl9HUENNX0NTTlQgfCBPUl9HUENNX1hBQ1MgfCBcCiAJCQkJT1JfR1BDTV9TQ1lfMTUgfCBPUl9HUENNX1NFVEEgfCBPUl9HUENNX1RSTFggfCBcCiAJCQkJT1JfR1BDTV9FSFRSIHwgT1JfR1BDTV9FQUQpCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMV9QUkVMSU0JQ0ZHX1ZTQzczODVfQkFTRQotI2RlZmluZSBDRkdfTEJMQVdBUjFfUFJFTElNCShMQkxBV0FSX0VOIHwgTEJMQVdBUl8xMjhLQikKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjFfUFJFTElNCUNPTkZJR19TWVNfVlNDNzM4NV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjFfUFJFTElNCShMQkxBV0FSX0VOIHwgTEJMQVdBUl8xMjhLQikKIAogI2VuZGlmCiAKIC8qIExFRCAqLwogCi0jZGVmaW5lIENGR19MRURfQkFTRQkJMHhGOTAwMDAwMAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJKENGR19MRURfQkFTRSB8IEJSX1BTXzggfCBCUl9WKQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJKE9SX0FNXzJNQiB8IE9SX0dQQ01fQ1NOVCB8IE9SX0dQQ01fQUNTX0RJVjIgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0JBU0UJCTB4RjkwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkoQ09ORklHX1NZU19MRURfQkFTRSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCShPUl9BTV8yTUIgfCBPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgXAogCQkJCU9SX0dQQ01fWEFDUyB8IE9SX0dQQ01fU0NZXzkgfCBPUl9HUENNX1RSTFggfCBcCiAJCQkJT1JfR1BDTV9FSFRSIHwgT1JfR1BDTV9FQUQpCiAKQEAgLTI0NSwzOSArMjQ1LDM5IEBACiAKICNpZmRlZiBDT05GSUdfQ09NUEFDVF9GTEFTSAogCi0jZGVmaW5lIENGR19DRl9CQVNFCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0ZfQkFTRQkJMHhGMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkoQ0ZHX0NGX0JBU0UgfCBCUl9QU18xNiB8IEJSX01TX1VQTUEgfCBCUl9WKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJKE9SX1VQTV9BTSB8IE9SX1VQTV9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkoQ09ORklHX1NZU19DRl9CQVNFIHwgQlJfUFNfMTYgfCBCUl9NU19VUE1BIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkoT1JfVVBNX0FNIHwgT1JfVVBNX0JJKQogCi0jZGVmaW5lIENGR19MQkxBV0JBUjNfUFJFTElNCUNGR19DRl9CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSM19QUkVMSU0JKExCTEFXQVJfRU4gfCBMQkxBV0FSXzY0S0IpCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIzX1BSRUxJTQlDT05GSUdfU1lTX0NGX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSM19QUkVMSU0JKExCTEFXQVJfRU4gfCBMQkxBV0FSXzY0S0IpCiAKICNlbmRpZgogCiAvKgogICogVS1Cb290IG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZglDRkdfUkFNQk9PVAorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogTG9jYWwgQnVzIExDUlIgYW5kIExCQ1IgcmVncwpAQCAtMjg1LDMwICsyODUsMzAgQEAKICAqIEV4dGVybmFsIExvY2FsIEJ1cyByYXRlIGlzCiAgKiAgICBDTEtJTiAqIEhSQ1dMX0NTQl9UT19DTEtJTiAvIEhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMSyAvIExDUlJfQ0xLRElWCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCi0jZGVmaW5lIENGR19MQkNfTEJDUgkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTENSUgkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCTB4MzIwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJMHgzMjAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiovCiAKIC8qCiAgKiBTZXJpYWwgUG9ydAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwfQogCiAjZGVmaW5lIENPTkZJR19DT05TT0xFCQl0dHlTMAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SICsgMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfSU1NUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUiArIDB4NDYwMCkKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwogI2RlZmluZSBDT05GSUdfT0ZfTElCRkRUCTEKQEAgLTMyNiwyNiArMzI2LDI2IEBACiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fQkFTRQkoQ0ZHX1BDSTFfTUVNX0JBU0UgKyBDRkdfUENJMV9NRU1fU0laRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19QSFlTCUNGR19QQ0kxX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4RTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAxMDAwMDAwCS8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFICsgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweEUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTZNICovCiAKICNpZmRlZiBDT05GSUdfTVBDODNYWF9QQ0kyCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCShDRkdfUENJMV9NTUlPX0JBU0UgKyBDRkdfUENJMV9NTUlPX1NJWkUpCi0jZGVmaW5lIENGR19QQ0kyX01FTV9QSFlTCUNGR19QQ0kyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kyX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMl9NTUlPX0JBU0UJKENGR19QQ0kyX01FTV9CQVNFICsgQ0ZHX1BDSTJfTUVNX1NJWkUpCi0jZGVmaW5lIENGR19QQ0kyX01NSU9fUEhZUwlDRkdfUENJMl9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTU1JT19TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fUEhZUwkoQ0ZHX1BDSTFfSU9fUEhZUyArIENGR19QQ0kxX0lPX1NJWkUpCi0jZGVmaW5lIENGR19QQ0kyX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFICsgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UJKENPTkZJR19TWVNfUENJMl9NRU1fQkFTRSArIENPTkZJR19TWVNfUENJMl9NRU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMJKENPTkZJR19TWVNfUENJMV9JT19QSFlTICsgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTZNICovCiAjZW5kaWYKIAogI2RlZmluZSBfSU9fQkFTRQkJMHgwMDAwMDAwMAkvKiBwb2ludHMgdG8gUENJIEkvTyBzcGFjZSAqLwpAQCAtMzYwLDcgKzM2MCw3IEBACiAKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKICAgICAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJQ0ZHX1BDSTJfTUVNX0JBU0UKKyAgICAjZGVmaW5lIFBDSV9FTkVUMF9NRU1BRERSCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQogICAgICNkZWZpbmUgUENJX0lEU0VMX05VTUJFUgkweDBmCS8qIElEU0VMID0gQUQxNSAqLwogI2VuZGlmCiAKQEAgLTM4OCw3ICszODgsNyBAQAogI2lmZGVmIENPTkZJR19UU0VDMQogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKICNkZWZpbmUgQ09ORklHX1RTRUMxX05BTUUgICJUU0VDMCIKLSNkZWZpbmUgQ0ZHX1RTRUMxX09GRlNFVAkweDI0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKICNkZWZpbmUgVFNFQzFfUEhZX0FERFIJCTB4MWMJLyogVlNDODIwMSB1c2VzIGFkZHJlc3MgMHgxYyAqLwogI2RlZmluZSBUU0VDMV9QSFlJRFgJCTAKICNkZWZpbmUgVFNFQzFfRkxBR1MJCVRTRUNfR0lHQUJJVApAQCAtMzk3LDcgKzM5Nyw3IEBACiAjaWZkZWYgQ09ORklHX1RTRUMyCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogI2RlZmluZSBDT05GSUdfVFNFQzJfTkFNRSAgIlRTRUMxIgotI2RlZmluZSBDRkdfVFNFQzJfT0ZGU0VUCTB4MjUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMl9PRkZTRVQJMHgyNTAwMAogCiAjZGVmaW5lIFRTRUMyX1BIWV9BRERSCQk0CiAjZGVmaW5lIFRTRUMyX1BIWUlEWAkJMApAQCAtNDEzLDIxICs0MTMsMjEgQEAKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICAgI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIDY0SyAob25lIHNlY3RvcikgZm9yIGVudmlyb25tZW50ICovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworICAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAgICN1bmRlZiAgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQ2OSw0NyArNDY5LDQ3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBDb21tYW5kLWxpbmUgZWRpdGluZyAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19MT0FEQUREUgk1MDAwMDAJLyogZGVmYXVsdCBsb2NhdGlvbiBmb3IgdGZ0cCBhbmQgYm9vdG0gKi8KIAogI2lmZGVmIENPTkZJR19NUEM4MzQ5SVRYCi0jZGVmaW5lIENGR19QUk9NUFQJIk1QQzgzNDlFLW1JVFg+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiTVBDODM0OUUtbUlUWD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCSJNUEM4MzQ5RS1tSVRYLUdQPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIk1QQzgzNDlFLW1JVFgtR1A+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOXzRYMSB8XAogCUhSQ1dMX1ZDT18xWDIgfFwKIAlIUkNXTF9DT1JFX1RPX0NTQl8yWDEpCiAKLSNpZmRlZiBDRkdfTE9XQk9PVAotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjaWZkZWYgQ09ORklHX1NZU19MT1dCT09UCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF8zMl9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNTIyLDcgKzUyMiw3IEBACiAJSFJDV0hfVFNFQzFNX0lOX0dNSUkgfFwKIAlIUkNXSF9UU0VDMk1fSU5fR01JSSApCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF8zMl9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNTM5LDgxICs1MzksODEgQEAKIC8qCiAgKiBTeXN0ZW0gcGVyZm9ybWFuY2UKICAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDMUVQCTMJLyogVFNFQzEgZW1lcmdlbmN5IHByaW9yaXR5ICgwLTMpICovCi0jZGVmaW5lIENGR19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzFDTQkxCS8qIFRTRUMxIGNsb2NrIG1vZGUgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzJDTQkxCS8qIFRTRUMyICYgSTJDMCBjbG9jayBtb2RlICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgKDAtNykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUMxRVAJMwkvKiBUU0VDMSBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUMyRVAJMwkvKiBUU0VDMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMxQ00JMQkvKiBUU0VDMSBjbG9jayBtb2RlICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9UU0VDMkNNCTEJLyogVFNFQzIgJiBJMkMwIGNsb2NrIG1vZGUgKDAtMykgKi8KIAogLyoKICAqIFN5c3RlbSBJTyBDb25maWcKICAqLwotI2RlZmluZSBDRkdfU0lDUkggU0lDUkhfVFNPQkkxCS8qIE5lZWRlZCBmb3IgZ2lnYWJpdCB0byB3b3JrIG9uIFRTRUMgMSAqLwotI2RlZmluZSBDRkdfU0lDUkwgKFNJQ1JMX0xEUF9BIHwgU0lDUkxfVVNCMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSSCBTSUNSSF9UU09CSTEJLyogTmVlZGVkIGZvciBnaWdhYml0IHRvIHdvcmsgb24gVFNFQyAxICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwgKFNJQ1JMX0xEUF9BIHwgU0lDUkxfVVNCMSkKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCTB4MDAwMDAwMDAwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCUNGR19ISUQwX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCUNPTkZJR19TWVNfSElEMF9JTklUCiAKLSNkZWZpbmUgQ0ZHX0hJRDIJSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCUhJRDJfSEJFCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qIEREUiAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJICAqLwogI2lmZGVmIENPTkZJR19QQ0kKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUMUwJMAotI2RlZmluZSBDRkdfSUJBVDFVCTAKLSNkZWZpbmUgQ0ZHX0lCQVQyTAkwCi0jZGVmaW5lIENGR19JQkFUMlUJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkwCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19NUEM4M1hYX1BDSTIKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoQ0ZHX1BDSTJfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19QQ0kyX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19QQ0kyX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUNFUJKENGR19QQ0kyX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCShDT05GSUdfU1lTX1BDSTJfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUM0wJMAotI2RlZmluZSBDRkdfSUJBVDNVCTAKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkwCi0jZGVmaW5lIENGR19JQkFUNFUJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkwCiAjZW5kaWYKIAogLyogSU1NUkJBUiBAIDB4RTAwMDAwMDAsIFBDSSBJTyBAIDB4RTIwMDAwMDAgJiBCQ1NSIEAgMHhFMjQwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDVMCShDRkdfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUNVUJKENGR19JTU1SIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFNEUkFNIEAgMHhGMDAwMDAwMCwgc3RhY2sgaW4gRENBQ0hFIDB4RkRGMDAwMDAgJiBGTEFTSCBAIDB4RkUwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDdMCTAKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJMAogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzYwRU1EUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNjBFTURTLmgKaW5kZXggYmFmZjAzZS4uZWU1MTY0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzgzNjBFTURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzgzNjBFTURTLmgKQEAgLTQ5LDcgKzQ5LDcgQEAKIC8qCiAgKiBIYXJkd2FyZSBSZXNldCBDb25maWd1cmF0aW9uIFdvcmQKICAqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fNFgxIHxcCkBAIC02MCw3ICs2MCw3IEBACiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCiAjaWZkZWYgQ09ORklHX1BDSVNMQVZFCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfQUdFTlQgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRElTQUJMRSB8XAogCUhSQ1dIX1BDSUNLRFJWX0RJU0FCTEUgfFwKQEAgLTcwLDcgKzcwLDcgQEAKIAlIUkNXSF9TV19XQVRDSERPR19ESVNBQkxFIHxcCiAJSFJDV0hfUk9NX0xPQ19MT0NBTF8xNkJJVCkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9FTkFCTEUgfFwKIAlIUkNXSF9QQ0lDS0RSVl9FTkFCTEUgfFwKQEAgLTg0LDggKzg0LDggQEAKIC8qCiAgKiBTeXN0ZW0gSU8gQ29uZmlnCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJQ1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TSUNSTAkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwJCTB4NDAwMDAwMDAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIC8qIGNhbGwgYm9hcmRfcHJlX2luaXQgKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgpAQCAtOTMsMTggKzkzLDE4IEBACiAvKgogICogSU1NUiBuZXcgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhFMDAwMDAwMAogCiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMCShERFJfU0RSQU1fQ0xLX0NOVExfU1NfRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAgLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAogCQkJCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1KQogCi0jZGVmaW5lIENGR184M1hYX0REUl9VU0VTX0NTMAorI2RlZmluZSBDT05GSUdfU1lTXzgzWFhfRERSX1VTRVNfQ1MwCiAKICNkZWZpbmUgQ09ORklHX0REUl9FQ0MJCS8qIHN1cHBvcnQgRERSIEVDQyBmdW5jdGlvbiAqLwogI2RlZmluZSBDT05GSUdfRERSX0VDQ19DTUQJLyogVXNlIEREUiBFQ0MgdXNlciBjb21tYW5kcyAqLwpAQCAtMTEyLDcgKzExMiw3IEBACiAvKgogICogRERSQ0RSIC0gRERSIENvbnRyb2wgRHJpdmVyIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUkNEUl9WQUxVRQkweDgwMDgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRERSQ0RSX1ZBTFVFCTB4ODAwODAwMDEKIAogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTQkvKiBVc2UgU1BEIEVFUFJPTSBmb3IgRERSIHNldHVwICovCiAjaWYgZGVmaW5lZChDT05GSUdfU1BEX0VFUFJPTSkKQEAgLTEyNCwxMjAgKzEyNCwxMjAgQEAKIC8qCiAgKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMKICAqLwotI2RlZmluZSBDRkdfRERSX1NJWkUJCTI1NiAvKiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkyNTYgLyogTUIgKi8KICNpZiBkZWZpbmVkKENPTkZJR19ERFJfSUkpCi0jZGVmaW5lIENGR19ERFJDRFIJCTB4ODAwODAwMDEKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkweDgwMzMwMTAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJMHgwMDIyMDgwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzgzNTczMjIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDJmOTA0OGM4Ci0jZGVmaW5lIENGR19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NMS19DTlRMCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDQ3ZDAwNDMyCi0jZGVmaW5lIENGR19ERFJfTU9ERTIJCTB4ODAwMGMwMDAKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDAzY2YwMDgwCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHCTB4NDMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJDRFIJCTB4ODAwODAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCTB4ODAzMzAxMDIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJMHgwMDIyMDgwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM4MzU3MzIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MmY5MDQ4YzgKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DTEtfQ05UTAkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4NDdkMDA0MzIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERTIJCTB4ODAwMGMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwM2NmMDA4MAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcJMHg0MzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKICNlbHNlCi0jZGVmaW5lIENGR19ERFJfQ09ORklHIChDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBDU0NPTkZJR19DT0xfQklUXzkpCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzNzM0NDMyMSAvKiB0Q0wtdFJDRC10UlAtdFJBUz0yLjUtMy0zLTcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDAwMDAwODAwIC8qIG1heSBuZWVkIHR1bmluZyAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4NDIwMDgwMDAgLyogU2VsZiByZWZyZXNoLDJUIHRpbWluZyAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MjAwMDAxNjIgLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA0NWIwMTAwIC8qIHBhZ2UgbW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05GSUcgKENTQ09ORklHX0VOIHwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfOSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzEJMHgzNzM0NDMyMSAvKiB0Q0wtdFJDRC10UlAtdFJBUz0yLjUtMy0zLTcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMCAvKiBtYXkgbmVlZCB0dW5pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHg0MjAwODAwMCAvKiBTZWxmIHJlZnJlc2gsMlQgdGltaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MjAwMDAxNjIgLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNDViMDEwMCAvKiBwYWdlIG1vZGUgKi8KICNlbmRpZgogI2VuZGlmCiAKIC8qCiAgKiBNZW1vcnkgdGVzdAogICovCi0jdW5kZWYgQ0ZHX0RSQU1fVEVTVAkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMCAvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDAxMDAwMDAKKyN1bmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVAkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAogCiAvKgogICogVGhlIHJlc2VydmVkIG1lbW9yeQogICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UgLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UgLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZglDRkdfUkFNQk9PVAorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLS8qIENGR19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKy8qIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gbXVzdCBiZSBhIG11bHRpcGxlIG9mIENPTkZJR19FTlZfU0VDVF9TSVpFICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyoKICAqIEluaXRpYWwgUkFNIEJhc2UgQWRkcmVzcyBTZXR1cAogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhFNjAwMDAwMCAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhFNjAwMDAwMCAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMCAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHgxMDAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb2NhbCBCdXMgQ29uZmlndXJhdGlvbiAmIENsb2NrIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl80KQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMCAvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTMyIC8qIG1heCBGTEFTSCBzaXplIGlzIDMyTSAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgaC93IEZsYXNoIHByb3RlY3Rpb24uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMCAvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkzMiAvKiBtYXggRkxBU0ggc2l6ZSBpcyAzMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX1NIT1dfUFJPR1JFU1MgNDUgLyogY291bnQgZG93biBmcm9tIDQ1LzU6IDkuLjEgKi8KIAotI2RlZmluZSBDRkdfTEJMQVdCQVIwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRSAvKiBXaW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxOCAvKiAzMk1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE4IC8qIDMyTUIgd2luZG93IHNpemUgKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoQ0ZHX0ZMQVNIX0JBU0UgfCAvKiBGbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IC8qIEZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCiAJCQkoMiA8PCBCUl9QU19TSElGVCkgfCAvKiAxNiBiaXQgcG9ydCBzaXplICovIFwKIAkJCUJSX1YpCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkoKH4oQ0ZHX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgfCBPUl9VUE1fWEFNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSgofihDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgfCBPUl9VUE1fWEFNIHwgXAogCQkJCU9SX0dQQ01fQ1NOVCB8IE9SX0dQQ01fQUNTX0RJVjIgfCBPUl9HUENNX1hBQ1MgfCBPUl9HUENNX1NDWV8xNSB8IFwKIAkJCQlPUl9HUENNX1RSTFggfCBPUl9HUENNX0VIVFIgfCBPUl9HUENNX0VBRCkKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEgLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYgLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxIC8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NiAvKiBtYXggc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qCiAgKiBCQ1NSIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfQkNTUgkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfQkNTUiAvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRiAvKiBBY2Nlc3Mgd2luZG93IHNpemUgNjRLICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19CQ1NSIC8qIEFjY2VzcyB3aW5kb3cgYmFzZSBhdCBCQ1NSIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRiAvKiBBY2Nlc3Mgd2luZG93IHNpemUgNjRLICovCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfQkNTUnwweDAwMDAwODAxKSAvKiBQb3J0IHNpemU9OGJpdCwgTVNFTD1HUENNICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweEZGRkZFOWY3IC8qIGxlbmd0aCAzMksgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSfDB4MDAwMDA4MDEpIC8qIFBvcnQgc2l6ZT04Yml0LCBNU0VMPUdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEZGRkZFOWY3IC8qIGxlbmd0aCAzMksgKi8KIAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhGMDAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4RjAwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCiAKLSNkZWZpbmUgQ0ZHX0xCX1NEUkFNCQkvKiBpZiBib2FyZCBoYXMgU1JEQU0gb24gbG9jYWwgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJfU0RSQU0JCS8qIGlmIGJvYXJkIGhhcyBTUkRBTSBvbiBsb2NhbCBidXMgKi8KIAotI2lmZGVmIENGR19MQl9TRFJBTQotI2RlZmluZSBDRkdfTEJMQVdCQVIyX1BSRUxJTQlDRkdfTEJDX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDE5IC8qIDY0TUIgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0xCX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTQlDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkgLyogNjRNQiAqLwogCiAvKmxvY2FsIGJ1cyBCUjIsIE9SMiBkZWZpbml0aW9uIGZvciBTRFJBTSBpZiBzb2xkZXJlZCBvbiB0aGUgRVBCIGJvYXJkICovCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0yNDksMTQgKzI0OSwxNCBAQAogICogMAk0ICAgIDgJICAxMiAgIDE2ICAgMjAJIDI0ICAgMjgKICAqIDExMTEgMDAwMCAwMDAwIDAwMDAgMDAwMSAxMDAwIDAxMTAgMDAwMSA9IGYwMDAxODYxCiAgKgotICogQ0ZHX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KKyAqIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bwogICogdGhlIHRvcCAxNyBiaXRzIG9mIEJSMi4KICAqLwogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCTB4ZjAwMDE4NjEgLypQb3J0IHNpemU9MzJiaXQsIE1TRUw9U0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCTB4ZjAwMDE4NjEgLypQb3J0IHNpemU9MzJiaXQsIE1TRUw9U0RSQU0gKi8KIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjIsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMApAQCAtMjY5LDgwICsyNjksODAgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkweGZjMDA2OTAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkweGZjMDA2OTAxCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCTB4MzIwMDAwMDAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJMHgyMDAwMDAwMCAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCTB4MzIwMDAwMDAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCTB4MjAwMDAwMDAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KIAogLyoKICAqIExTRE1SIG1hc2tzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwgKDAgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQVJGUlNIICgxIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1NSRlJTSCAoMiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUENIQUxMICg1IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FDVEJOSyAoNiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMICgwIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0ggKDEgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1NSRlJTSCAoMiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMICg1IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BQ1RCTksgKDYgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ09NTU9OCTB4MDA2M2I3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OCTB4MDA2M2I3MjMKIAogLyoKICAqIFNEUkFNIENvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBzZXF1ZW5jZS4KICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzEJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMgkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8zCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfQVJGUlNIKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzQJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNQkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX05PUk1BTCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMQkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzMJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNAkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl81CQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwpCiAKICNlbmRpZgogCiAvKgogICogV2luZG93cyB0byBhY2Nlc3MgUElCIHZpYSBsb2NhbCBidXMKICAqLwotI2RlZmluZSBDRkdfTEJMQVdCQVIzX1BSRUxJTQkweGY4MDEwMDAwIC8qIHdpbmRvd3MgYmFzZSAweGY4MDEwMDAwICovCi0jZGVmaW5lIENGR19MQkxBV0FSM19QUkVMSU0JMHg4MDAwMDAwZSAvKiB3aW5kb3dzIHNpemUgMzJLQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSM19QUkVMSU0JMHhmODAxMDAwMCAvKiB3aW5kb3dzIGJhc2UgMHhmODAxMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIzX1BSRUxJTQkweDgwMDAwMDBlIC8qIHdpbmRvd3Mgc2l6ZSAzMktCICovCiAKIC8qCiAgKiBDUzQgb24gTG9jYWwgQnVzLCB0byBQSUIKICAqLwotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkweGY4MDEwODAxIC8qIENTNCBiYXNlIGFkZHJlc3MgYXQgMHhmODAxMDAwMCAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkweGZmZmZlOWY3IC8qIHNpemUgMzJLQiwgcG9ydCBzaXplIDhiaXQsIEdQQ00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCTB4ZjgwMTA4MDEgLyogQ1M0IGJhc2UgYWRkcmVzcyBhdCAweGY4MDEwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkweGZmZmZlOWY3IC8qIHNpemUgMzJLQiwgcG9ydCBzaXplIDhiaXQsIEdQQ00gKi8KIAogLyoKICAqIENTNSBvbiBMb2NhbCBCdXMsIHRvIFBJQgogICovCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCTB4ZjgwMDg4MDEgLyogQ1M1IGJhc2UgYWRkcmVzcyBhdCAweGY4MDA4MDAwICovCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCTB4ZmZmZmU5ZjcgLyogc2l6ZSAzMktCLCBwb3J0IHNpemUgOGJpdCwgR1BDTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JMHhmODAwODgwMSAvKiBDUzUgYmFzZSBhZGRyZXNzIGF0IDB4ZjgwMDgwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCTB4ZmZmZmU5ZjcgLyogc2l6ZSAzMktCLCBwb3J0IHNpemUgOGJpdCwgR1BDTSAqLwogCiAvKgogICogU2VyaWFsIFBvcnQKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lNTVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JTU1SKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUisweDQ2MDApCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zNTQsMzUgKzM1NCwzNSBAQAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICovCiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg1Mn0gLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJMHgzMDAwCi0jZGVmaW5lIENGR19JMkMyX09GRlNFVCAweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDUyfSAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQgMHgzMTAwCiAKIC8qCiAgKiBDb25maWcgb24tYm9hcmQgUlRDCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzNzQJCS8qIHVzZSBkczEzNzQgcnRjIHZpYSBpMmMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OCAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfTU1JT19CQVNFCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1BIWVMJQ0ZHX1BDSV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1BIWVMJCTB4RTAzMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDEwMDAwMCAvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCUNPTkZJR19TWVNfUENJX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19QSFlTCQkweEUwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1NJWkUJCTB4MTAwMDAwIC8qIDFNICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0xPQ0FMCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9TSVpFCTB4ODAwMDAwMDAKIAogCiAjaWZkZWYgQ09ORklHX1BDSQpAQCAtMzkyLDcgKzM5Miw3IEBACiAKICN1bmRlZiBDT05GSUdfRUVQUk8xMDAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC00MTEsNDMgKzQxMSw0MyBAQAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDEJCS8qIEdFVEgxICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDEKLSNkZWZpbmUgQ0ZHX1VFQzFfVUNDX05VTQkwCS8qIFVDQzEgKi8KLSNkZWZpbmUgQ0ZHX1VFQzFfUlhfQ0xLCQlRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMV9UWF9DTEsJCVFFX0NMSzkKLSNkZWZpbmUgQ0ZHX1VFQzFfRVRIX1RZUEUJR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzFfUEhZX0FERFIJMAotI2RlZmluZSBDRkdfVUVDMV9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfR01JSQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfVUNDX05VTQkwCS8qIFVDQzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1JYX0NMSwkJUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1RYX0NMSwkJUUVfQ0xLOQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfRVRIX1RZUEUJR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1BIWV9BRERSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9HTUlJCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDIJCS8qIEdFVEgyICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDIKLSNkZWZpbmUgQ0ZHX1VFQzJfVUNDX05VTQkxCS8qIFVDQzIgKi8KLSNkZWZpbmUgQ0ZHX1VFQzJfUlhfQ0xLCQlRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMl9UWF9DTEsJCVFFX0NMSzQKLSNkZWZpbmUgQ0ZHX1VFQzJfRVRIX1RZUEUJR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzJfUEhZX0FERFIJMQotI2RlZmluZSBDRkdfVUVDMl9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfR01JSQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfVUNDX05VTQkxCS8qIFVDQzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1JYX0NMSwkJUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1RYX0NMSwkJUUVfQ0xLNAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfRVRIX1RZUEUJR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1BIWV9BRERSCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9HTUlJCiAjZW5kaWYKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisJI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDcyLDcgKzQ3Miw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ4MywzNCArNDgzLDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENvcmUgSElEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQlISUQyX0hCRQogCiAvKgogICogTU1VIFNldHVwCkBAIC01MTksNjUgKzUxOSw2NSBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFI6IGNhY2hlIGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKIC8qIElNTVJCQVIgJiBQQ0kgSU86IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogQkNTUjogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfQkNTUiB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX0JDU1IgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfQkNTUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX0JDU1IgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKIAogLyogRkxBU0g6IGljYWNoZSBjYWNoZWFibGUsIGJ1dCBkY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDNMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCiAKIC8qIExvY2FsIGJ1cyBTRFJBTTogY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19MQkNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkoQ0ZHX0xCQ19TRFJBTV9CQVNFIHwgQkFUVV9CTF82NE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQogCiAvKiBTdGFjayBpbiBkY2FjaGU6IGNhY2hlYWJsZSwgbm8gbWVtb3J5IGNvaGVyZW5jZSAqLwotI2RlZmluZSBDRkdfSUJBVDVMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTApCi0jZGVmaW5lIENGR19JQkFUNVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNUwJQ0ZHX0lCQVQ1TAotI2RlZmluZSBDRkdfREJBVDVVCUNGR19JQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJQ09ORklHX1NZU19JQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJQ09ORklHX1NZU19JQkFUNVUKIAogI2lmZGVmIENPTkZJR19QQ0kKIC8qIFBDSSBNRU0gc3BhY2U6IGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfSUJBVDZMCShDRkdfUENJX01FTV9QSFlTIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCShDRkdfUENJX01FTV9QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKENPTkZJR19TWVNfUENJX01FTV9QSFlTIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKIC8qIFBDSSBNTUlPIHNwYWNlOiBjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUN0wJKENGR19QQ0lfTU1JT19QSFlTIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKENPTkZJR19TWVNfUENJX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCiAJCQlCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUN1UJKENGR19QQ0lfTU1JT19QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUN0wJQ0ZHX0lCQVQ3TAotI2RlZmluZSBDRkdfREJBVDdVCUNGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJKENPTkZJR19TWVNfUENJX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkoMCkKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM2MEVSREsuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzYwRVJESy5oCmluZGV4IGIyZTZiM2IuLmE0ZjI4NjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzYwRVJESy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzYwRVJESy5oCkBAIC00NCwxNCArNDQsMTQgQEAKIC8qCiAgKiBIYXJkd2FyZSBSZXNldCBDb25maWd1cmF0aW9uIFdvcmQKICAqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9DU0JfVE9fQ0xLSU5fTVBDODM2MEVSREsgfFwKIAlIUkNXTF9DT1JFX1RPX0NTQl8yWDEgfFwKIAlIUkNXTF9DRV9UT19QTExfMVgxNSkKIAotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCiAJSFJDV0hfUENJQ0tEUlZfRU5BQkxFIHxcCkBAIC02Nyw4ICs2Nyw4IEBACiAvKgogICogU3lzdGVtIElPIENvbmZpZwogICovCi0jZGVmaW5lIENGR19TSUNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0lDUkwJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JMCQkweDQwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKQEAgLTc2LDE4ICs3NiwxOCBAQAogLyoKICAqIElNTVIgbmV3IGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAogLyoKICAqIEREUiBTZXR1cAogICovCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMCAvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTAkoRERSX1NEUkFNX0NMS19DTlRMX1NTX0VOIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9TU19FTiB8IFwKIAkJCQlERFJfU0RSQU1fQ0xLX0NOVExfQ0xLX0FESlVTVF8wNSkKIAotI2RlZmluZSBDRkdfODNYWF9ERFJfVVNFU19DUzAKKyNkZWZpbmUgQ09ORklHX1NZU184M1hYX0REUl9VU0VTX0NTMAogCiAjZGVmaW5lIENPTkZJR19ERFJfRUNDCQkvKiBzdXBwb3J0IEREUiBFQ0MgZnVuY3Rpb24gKi8KICNkZWZpbmUgQ09ORklHX0REUl9FQ0NfQ01ECS8qIFVzZSBERFIgRUNDIHVzZXIgY29tbWFuZHMgKi8KQEAgLTk1LDcgKzk1LDcgQEAKIC8qCiAgKiBERFJDRFIgLSBERFIgQ29udHJvbCBEcml2ZXIgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfRERSQ0RSX1ZBTFVFCTB4ODAwODAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJDRFJfVkFMVUUJMHg4MDA4MDAwMQogCiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00JLyogRG8gbm90IHVzZSBTUEQgRUVQUk9NIGZvciBERFIgc2V0dXAgKi8KIApAQCAtMTAzLDE5ICsxMDMsMTkgQEAKICAqIE1hbnVhbGx5IHNldCB1cCBERFIgcGFyYW1ldGVycwogICovCiAjZGVmaW5lIENPTkZJR19ERFJfSUkKLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkyNTYgLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkoQ1NDT05GSUdfRU4gfCBDU0NPTkZJR19ST1dfQklUXzEzIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkyNTYgLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCShDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBcCiAJCQkJIENTQ09ORklHX0NPTF9CSVRfMTAgfCBDU0NPTkZJR19PRFRfV1JfQUNTKQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NGRwkoU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfRERSMiB8IFNEUkFNX0NGR19FQ0NfRU4pCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHMgkweDAwMDAxMDAwCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1KQotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCSgoMjU2IDw8IFNEUkFNX0lOVEVSVkFMX0JTVE9QUkVfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcJKFNEUkFNX0NGR19TRFJBTV9UWVBFX0REUjIgfCBTRFJBTV9DRkdfRUNDX0VOKQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0xLX0NOVEwJKEREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1KQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkoKDI1NiA8PCBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUKSB8IFwKIAkJCQkgKDExMTUgPDwgU0RSQU1fSU5URVJWQUxfUkVGSU5UX1NISUZUKSkKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDQ3ODAwNDMyCi0jZGVmaW5lIENGR19ERFJfTU9ERTIJCTB4ODAwMGMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHg0NzgwMDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFMgkJMHg4MDAwYzAwMAogCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJKCgyIDw8IFRJTUlOR19DRkcwX01SU19DWUNfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkoKDIgPDwgVElNSU5HX0NGRzBfTVJTX0NZQ19TSElGVCkgfCBcCiAJCQkJICg5IDw8IFRJTUlOR19DRkcwX09EVF9QRF9FWElUX1NISUZUKSB8IFwKIAkJCQkgKDMgPDwgVElNSU5HX0NGRzBfUFJFX1BEX0VYSVRfU0hJRlQpIHwgXAogCQkJCSAoMyA8PCBUSU1JTkdfQ0ZHMF9BQ1RfUERfRVhJVF9TSElGVCkgfCBcCkBAIC0xMjQsNyArMTI0LDcgQEAKIAkJCQkgKDAgPDwgVElNSU5HX0NGRzBfV1JUX1NISUZUKSB8IFwKIAkJCQkgKDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUKSkKIAotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCSgoICAgICAgVElNSU5HX0NGRzFfQ0FTTEFUXzMwKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzEJKCggICAgICBUSU1JTkdfQ0ZHMV9DQVNMQVRfMzApIHwgXAogCQkJCSAoIDIgPDwgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUKSB8IFwKIAkJCQkgKCAyIDw8IFRJTUlOR19DRkcxX0FDVFRPQUNUX1NISUZUKSB8IFwKIAkJCQkgKCAzIDw8IFRJTUlOR19DRkcxX1dSUkVDX1NISUZUKSB8IFwKQEAgLTEzMyw3ICsxMzMsNyBAQAogCQkJCSAoIDggPDwgVElNSU5HX0NGRzFfQUNUVE9QUkVfU0hJRlQpIHwgXAogCQkJCSAoIDMgPDwgVElNSU5HX0NGRzFfUFJFVE9BQ1RfU0hJRlQpKQogCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJKCg5IDw8IFRJTUlOR19DRkcyX0ZPVVJfQUNUX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJKCg5IDw8IFRJTUlOR19DRkcyX0ZPVVJfQUNUX1NISUZUKSB8IFwKIAkJCQkgKDQgPDwgVElNSU5HX0NGRzJfQ0tFX1BMU19TSElGVCkgfCBcCiAJCQkJICgyIDw8IFRJTUlOR19DRkcyX1dSX0RBVEFfREVMQVlfU0hJRlQpIHwgXAogCQkJCSAoMiA8PCBUSU1JTkdfQ0ZHMl9SRF9UT19QUkVfU0hJRlQpIHwgXApAQCAtMTQxLDExOSArMTQxLDExOSBAQAogCQkJCSAoMCA8PCBUSU1JTkdfQ0ZHMl9BRERfTEFUX1NISUZUKSB8IFwKIAkJCQkgKDAgPDwgVElNSU5HX0NGRzJfQ1BPX1NISUZUKSkKIAotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAogCiAvKgogICogTWVtb3J5IHRlc3QKICAqLwotI3VuZGVmIENGR19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMTAwMDAwCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAxMDAwMDAKIAogLyoKICAqIFRoZSByZXNlcnZlZCBtZW1vcnkKICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGODAwMDAwIC8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UgLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAgLyogRkxBU0ggYmFzZSBhZGRyZXNzICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qCiAgKiBJbml0aWFsIFJBTSBCYXNlIEFkZHJlc3MgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMCAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMCAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4RTYwMDAwMDAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4MTAwIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogTG9jYWwgQnVzIENvbmZpZ3VyYXRpb24gJiBDbG9jayBTZXR1cAogICovCi0jZGVmaW5lIENGR19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfNCkKLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTENSUgkJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKIAogLyoKICAqIEZMQVNIIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkvKiB1c2UgdGhlIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTggLyogbWF4IEZMQVNIIHNpemUgaXMgMzJNICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEgLyogVXNlIGludGVsIEZsYXNoIHByb3RlY3Rpb24uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOCAvKiBtYXggRkxBU0ggc2l6ZSBpcyAzMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEgLyogVXNlIGludGVsIEZsYXNoIHByb3RlY3Rpb24uICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLwotI2RlZmluZSBDRkdfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTggLyogMzJNQiB3aW5kb3cgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFIC8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxOCAvKiAzMk1CIHdpbmRvdyBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKENGR19GTEFTSF9CQVNFIHwgLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAvKiBGbGFzaCBCYXNlIGFkZHJlc3MgKi8gXAogCQkJKDIgPDwgQlJfUFNfU0hJRlQpIHwgLyogMTYgYml0IHBvcnQgc2l6ZSAqLyBcCiAJCQlCUl9WKQkvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKCh+KENGR19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkoKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIHwgT1JfVVBNX1hBTSB8IFwKIAkJCQlPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgXAogCQkJCU9SX0dQQ01fWEFDUyB8IE9SX0dQQ01fU0NZXzE1IHwgXAogCQkJCU9SX0dQQ01fVFJMWCB8IE9SX0dQQ01fRUhUUiB8IE9SX0dQQ01fRUFEKQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMSAvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NiAvKiBtYXggc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEgLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2IC8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIAogLyoKICAqIE5BTkQgZmxhc2ggb24gdGhlIGxvY2FsIGJ1cwogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4NjAwMDAwMDAKICNkZWZpbmUgQ09ORklHX0NNRF9OQU5ECQkxCiAjZGVmaW5lIENPTkZJR19OQU5EX0ZTTF9VUE0JMQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMV9QUkVMSU0JQ0ZHX05BTkRfQkFTRQotI2RlZmluZSBDRkdfTEJMQVdBUjFfUFJFTElNCTB4ODAwMDAwMWIgLyogQWNjZXNzIHdpbmRvdyBzaXplIDRLICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIxX1BSRUxJTQlDT05GSUdfU1lTX05BTkRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDFiIC8qIEFjY2VzcyB3aW5kb3cgc2l6ZSA0SyAqLwogCiAvKiBQb3J0IHNpemUgOCBiaXQsIFVQTUEgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfTkFORF9CQVNFIHwgMHgwMDAwMDg4MSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmMwMDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19OQU5EX0JBU0UgfCAweDAwMDAwODgxKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4ZmMwMDAwMDEKIAogLyoKICAqIEZ1aml0c3UgTUI4NjI3NyAoTUlOVCkgZ3JhcGhpY3MgY29udHJvbGxlcgogICovCi0jZGVmaW5lIENGR19WSURFT19CQVNFCQkweDcwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVklERU9fQkFTRQkJMHg3MDAwMDAwMAogCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCUNGR19WSURFT19CQVNFCi0jZGVmaW5lIENGR19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxOSAvKiBBY2Nlc3Mgd2luZG93IHNpemUgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0JQ09ORklHX1NZU19WSURFT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkgLyogQWNjZXNzIHdpbmRvdyBzaXplIDY0TUIgKi8KIAogLyogUG9ydCBzaXplIDMyIGJpdCwgVVBNQiAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJKENGR19WSURFT19CQVNFIHwgMHgwMDAwMThhMSkgLyogUFM9MTEsIFVQTUIgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDAwMDEgLyogKDY0TUIsIEVBRD0xKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCShDT05GSUdfU1lTX1ZJREVPX0JBU0UgfCAweDAwMDAxOGExKSAvKiBQUz0xMSwgVVBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDAwMDEgLyogKDY0TUIsIEVBRD0xKSAqLwogCiAvKgogICogU2VyaWFsIFBvcnQKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMCx9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0lNTVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfSU1NUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0lNTVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19JTU1SKzB4NDYwMCkKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5ICovCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIFBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTI2NywxMSArMjY3LDExIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXt7MHg1Mn19IC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQgMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7ezB4NTJ9fSAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQgMHgzMTAwCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQpAQCAtMjgwLDE1ICsyODAsMTUgQEAKICNkZWZpbmUgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfODNYWF9HRU5FUklDX1BDSQkxCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19CQVNFCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19QSFlTCUNGR19QQ0kxX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NTUlPX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHhFMDMwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4RTAzMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDEwMDAwMCAvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweEUwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4RTAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAgLyogMU0gKi8KIAogI2lmZGVmIENPTkZJR19QQ0kKIApAQCAtMjk3LDcgKzI5Nyw3IEBACiAKICN1bmRlZiBDT05GSUdfRUVQUk8xMDAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC0zMTUsNDMgKzMxNSw0MyBAQAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDEJCS8qIEdFVEgxICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDEKLSNkZWZpbmUgQ0ZHX1VFQzFfVUNDX05VTQkwCS8qIFVDQzEgKi8KLSNkZWZpbmUgQ0ZHX1VFQzFfUlhfQ0xLCQlRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMV9UWF9DTEsJCVFFX0NMSzkKLSNkZWZpbmUgQ0ZHX1VFQzFfRVRIX1RZUEUJR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzFfUEhZX0FERFIJMgotI2RlZmluZSBDRkdfVUVDMV9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfUkdNSUlfUlhJRAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfVUNDX05VTQkwCS8qIFVDQzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1JYX0NMSwkJUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1RYX0NMSwkJUUVfQ0xLOQorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfRVRIX1RZUEUJR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1BIWV9BRERSCTIKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9SR01JSV9SWElECiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDIJCS8qIEdFVEgyICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDIKLSNkZWZpbmUgQ0ZHX1VFQzJfVUNDX05VTQkxCS8qIFVDQzIgKi8KLSNkZWZpbmUgQ0ZHX1VFQzJfUlhfQ0xLCQlRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMl9UWF9DTEsJCVFFX0NMSzQKLSNkZWZpbmUgQ0ZHX1VFQzJfRVRIX1RZUEUJR0lHQV9FVEgKLSNkZWZpbmUgQ0ZHX1VFQzJfUEhZX0FERFIJNAotI2RlZmluZSBDRkdfVUVDMl9JTlRFUkZBQ0VfTU9ERSBFTkVUXzEwMDBfUkdNSUlfUlhJRAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfVUNDX05VTQkxCS8qIFVDQzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1JYX0NMSwkJUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1RYX0NMSwkJUUVfQ0xLNAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfRVRIX1RZUEUJR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1BIWV9BRERSCTQKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9SR01JSV9SWElECiAjZW5kaWYKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMAotI2Vsc2UgLyogQ0ZHX1JBTUJPT1QgKi8KLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisjZWxzZSAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMzc2LDcgKzM3Niw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfUENJCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTM4NiwzNCArMzg2LDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENvcmUgSElEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQlISUQyX0hCRQogCiAvKgogICogTU1VIFNldHVwCkBAIC00MjIsNjUgKzQyMiw2NSBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFI6IGNhY2hlIGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKIC8qIElNTVJCQVIgJiBQQ0kgSU86IGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lNTVIgfCBCQVRVX0JMXzRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogTkFORDogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfTkFORF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX05BTkRfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8XAogCQkJIEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19OQU5EX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX05BTkRfQkFTRSB8IEJBVFVfQkxfNjRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCiAKIC8qIEZMQVNIOiBpY2FjaGUgY2FjaGVhYmxlLCBidXQgZGNhY2hlLWluaGliaXQgYW5kIGd1YXJkZWQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19GTEFTSF9CQVNFIHwgQkFUVV9CTF8zMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQzTAkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQkFUVV9CTF8zMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBcCiAJCQkgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyogU3RhY2sgaW4gZGNhY2hlOiBjYWNoZWFibGUsIG5vIG1lbW9yeSBjb2hlcmVuY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDRMCUNGR19JQkFUNEwKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQlDRkdfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX1ZJREVPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX1ZJREVPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBcCiAJCQkgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkoQ0ZHX1ZJREVPX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCShDT05GSUdfU1lTX1ZJREVPX0JBU0UgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQogCiAjaWZkZWYgQ09ORklHX1BDSQogLyogUENJIE1FTSBzcGFjZTogY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19JQkFUNkwJKENGR19QQ0kxX01FTV9QSFlTIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCShDRkdfUENJMV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCShDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCShDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKIC8qIFBDSSBNTUlPIHNwYWNlOiBjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUN0wJKENGR19QQ0kxX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCShDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTIHwgQkFUTF9QUF8xMCB8IFwKIAkJCSBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUN1UJKENGR19QQ0kxX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCShDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAjZWxzZSAvKiBDT05GSUdfUENJICovCi0jZGVmaW5lIENGR19JQkFUNkwJKDApCi0jZGVmaW5lIENGR19JQkFUNlUJKDApCi0jZGVmaW5lIENGR19JQkFUN0wJKDApCi0jZGVmaW5lIENGR19JQkFUN1UJKDApCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbmRpZiAvKiBDT05GSUdfUENJICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM3WEVNRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzdYRU1EUy5oCmluZGV4IDI1NmYxNTYuLmFlYjYxYTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4MzdYRU1EUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4MzdYRU1EUy5oCkBAIC00Nyw3ICs0Nyw3IEBACiAgKiBpZiBDTEtJTiBpcyA2Nk1IeiwgdGhlbgogICogQ1NCID0gMzk2TUh6LCBDT1JFID0gNTk0TUh6LCBERFJDID0gMzk2TUh6LCBMQkMgPSAzOTZNSHoKICAqLwotI2RlZmluZSBDRkdfSFJDV19MT1cgKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0xPVyAoXAogCUhSQ1dMX0xDTF9CVVNfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9ERFJfVE9fU0NCX0NMS18xWDEgfFwKIAlIUkNXTF9TVkNPRF9ESVZfMiB8XApAQCAtNTUsNyArNTUsNyBAQAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzFfNVgxKQogCiAjaWZkZWYgQ09ORklHX1BDSVNMQVZFCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfQUdFTlQgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRElTQUJMRSB8XAogCUhSQ1dIX0NPUkVfRU5BQkxFIHxcCkBAIC02OSw3ICs2OSw3IEBACiAJSFJDV0hfQklHX0VORElBTiB8XAogCUhSQ1dIX0xEUF9DTEVBUikKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9FTkFCTEUgfFwKIAlIUkNXSF9DT1JFX0VOQUJMRSB8XApAQCAtODUsMjkgKzg1LDI5IEBACiAjZW5kaWYKIAogLyogQXJiaXRlciBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19BQ1JfUElQRV9ERVAJMwkvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoIGlzIDQgKi8KLSNkZWZpbmUgQ0ZHX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgaXMgNCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9QSVBFX0RFUAkzCS8qIEFyYml0ZXIgcGlwZWxpbmUgZGVwdGggaXMgNCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9SUFRDTlQJCTMJLyogQXJiaXRlciByZXBlYXQgY291bnQgaXMgNCAqLwogCiAvKiBTeXN0ZW0gUHJpb3JpdHkgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfU1BDUl9UU0VDRVAJCTMJLyogZVRTRUMxLzIgZW1lcmdlbmN5IGhhcyBoaWdoZXN0IHByaW9yaXR5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BDUl9UU0VDRVAJCTMJLyogZVRTRUMxLzIgZW1lcmdlbmN5IGhhcyBoaWdoZXN0IHByaW9yaXR5ICovCiAKIC8qCiAgKiBJUCBibG9ja3MgY2xvY2sgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19TQ0NSX1RTRUMxQ00JMQkvKiBDU0I6ZVRTRUMxID0gMToxICovCi0jZGVmaW5lIENGR19TQ0NSX1RTRUMyQ00JMQkvKiBDU0I6ZVRTRUMyID0gMToxICovCi0jZGVmaW5lIENGR19TQ0NSX1NBVEFDTQkJU0NDUl9TQVRBQ01fMgkvKiBDU0I6U0FUQVswOjNdID0gMjoxICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9UU0VDMUNNCTEJLyogQ1NCOmVUU0VDMSA9IDE6MSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDQ1JfVFNFQzJDTQkxCS8qIENTQjplVFNFQzIgPSAxOjEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1NBVEFDTQkJU0NDUl9TQVRBQ01fMgkvKiBDU0I6U0FUQVswOjNdID0gMjoxICovCiAKIC8qCiAgKiBTeXN0ZW0gSU8gQ29uZmlnCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJQ1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TSUNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwJCTB4MDAwMDAwMDAKIAogLyoKICAqIE91dHB1dCBCdWZmZXIgSW1wZWRhbmNlCiAgKi8KLSNkZWZpbmUgQ0ZHX09CSVIJCTB4MzExMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQklSCQkweDMxMTAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAvKiBjYWxsIGJvYXJkX3ByZV9pbml0ICovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKQEAgLTExNSwxNyArMTE1LDE3IEBACiAvKgogICogSU1NUiBuZXcgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhFMDAwMDAwMAogCiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwIC8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5ICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1Ci0jZGVmaW5lIENGR184M1hYX0REUl9VU0VTX0NTMAotI2RlZmluZSBDRkdfRERSQ0RSX1ZBTFVFCTB4ODAwODAwMDEgLyogT0RUIDE1MG9obSBvbiBTb0MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMCAvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMCUREUl9TRFJBTV9DTEtfQ05UTF9DTEtfQURKVVNUXzA1CisjZGVmaW5lIENPTkZJR19TWVNfODNYWF9ERFJfVVNFU19DUzAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJDRFJfVkFMVUUJMHg4MDA4MDAwMSAvKiBPRFQgMTUwb2htIG9uIFNvQyAqLwogCiAjdW5kZWYgQ09ORklHX0REUl9FQ0MJCS8qIHN1cHBvcnQgRERSIEVDQyBmdW5jdGlvbiAqLwogI3VuZGVmIENPTkZJR19ERFJfRUNDX0NNRAkvKiBVc2UgRERSIEVDQyB1c2VyIGNvbW1hbmRzICovCkBAIC0xNDEsMTQgKzE0MSwxNCBAQAogICogV0hJVEUgRUxFQ1RST05JQyBERVNJR05TIC0gVzNIRzY0TTcyRUVVNDAzUEQ0IFNPLURJTU0KICAqIGNvbnNpc3Qgb2YgbmluZSBjaGlwcyBmcm9tIFNBTVNVTkcgSzRUNTEwODNRRS1aQyhMKUQ1CiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQk1MTIgLyogTUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDFmCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJNTEyIC8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMWYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkoIENTQ09ORklHX0VOIFwKIAkJCQl8IDB4MDAwMTAwMDAgIC8qIE9EVF9XUiB0byBDU24gKi8gXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xNCB8IENTQ09ORklHX0NPTF9CSVRfMTAgKQogCQkJCS8qIDB4ODAwMTAyMDIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJKCAoIDAgPDwgVElNSU5HX0NGRzBfUldUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCSggKCAwIDw8IFRJTUlOR19DRkcwX1JXVF9TSElGVCApIFwKIAkJCQl8ICggMCA8PCBUSU1JTkdfQ0ZHMF9XUlRfU0hJRlQgKSBcCiAJCQkJfCAoIDAgPDwgVElNSU5HX0NGRzBfUlJUX1NISUZUICkgXAogCQkJCXwgKCAwIDw8IFRJTUlOR19DRkcwX1dXVF9TSElGVCApIFwKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCQkJCXwgKCA4IDw8IFRJTUlOR19DRkcwX09EVF9QRF9FWElUX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcwX01SU19DWUNfU0hJRlQgKSApCiAJCQkJLyogMHgwMDYyMDgwMiAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCSggKCAzIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUICkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkoICggMyA8PCBUSU1JTkdfQ0ZHMV9QUkVUT0FDVF9TSElGVCApIFwKIAkJCQl8ICggOSA8PCBUSU1JTkdfQ0ZHMV9BQ1RUT1BSRV9TSElGVCApIFwKIAkJCQl8ICggMyA8PCBUSU1JTkdfQ0ZHMV9BQ1RUT1JXX1NISUZUICkgXAogCQkJCXwgKCA1IDw8IFRJTUlOR19DRkcxX0NBU0xBVF9TSElGVCApIFwKQEAgLTE2Niw3ICsxNjYsNyBAQAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX0FDVFRPQUNUX1NISUZUICkgXAogCQkJCXwgKCAyIDw8IFRJTUlOR19DRkcxX1dSVE9SRF9TSElGVCApICkKIAkJCQkvKiAweDM5MzVkMzIyICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJKCAoIDEgPDwgVElNSU5HX0NGRzJfQUREX0xBVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJKCAoIDEgPDwgVElNSU5HX0NGRzJfQUREX0xBVF9TSElGVCApIFwKIAkJCQl8ICggNiA8PCBUSU1JTkdfQ0ZHMl9DUE9fU0hJRlQgKSBcCiAJCQkJfCAoIDIgPDwgVElNSU5HX0NGRzJfV1JfTEFUX0RFTEFZX1NISUZUICkgXAogCQkJCXwgKCA0IDw8IFRJTUlOR19DRkcyX1JEX1RPX1BSRV9TSElGVCApIFwKQEAgLTE3NCw3MCArMTc0LDcwIEBACiAJCQkJfCAoIDMgPDwgVElNSU5HX0NGRzJfQ0tFX1BMU19TSElGVCApIFwKIAkJCQl8ICggOCA8PCBUSU1JTkdfQ0ZHMl9GT1VSX0FDVF9TSElGVCkgKQogCQkJCS8qIDB4MTMxMDg4YzggKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkoICggMHgwM0UwIDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJKCAoIDB4MDNFMCA8PCBTRFJBTV9JTlRFUlZBTF9SRUZJTlRfU0hJRlQgKSBcCiAJCQkJfCAoIDB4MDEwMCA8PCBTRFJBTV9JTlRFUlZBTF9CU1RPUFJFX1NISUZUICkgKQogCQkJCS8qIDB4MDNFMDAxMDAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJMHg0MzAwMDAwMAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NGRzIJMHgwMDAwMTAwMCAvKiAxIHBvc3RlZCByZWZyZXNoICovCi0jZGVmaW5lIENGR19ERFJfTU9ERQkJKCAoIDB4MDQ0OCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCApIFwKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHCTB4NDMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQ0ZHMgkweDAwMDAxMDAwIC8qIDEgcG9zdGVkIHJlZnJlc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJKCAoIDB4MDQ0OCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCApIFwKIAkJCQl8ICggMHgxNDMyIDw8IFNEUkFNX01PREVfU0RfU0hJRlQgKSApCiAJCQkJLyogT0RUIDE1MG9obSBDTD0zLCBBTD0xIG9uIFNEUkFNICovCi0jZGVmaW5lIENGR19ERFJfTU9ERTIJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERTIJCTB4MDAwMDAwMDAKICNlbmRpZgogCiAvKgogICogTWVtb3J5IHRlc3QKICAqLwotI3VuZGVmIENGR19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMTQwMDAwCisjdW5kZWYgQ09ORklHX1NZU19EUkFNX1RFU1QJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAxNDAwMDAKIAogLyoKICAqIFRoZSByZXNlcnZlZCBtZW1vcnkKICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmIENGR19SQU1CT09UCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotLyogQ0ZHX01PTklUT1JfTEVOIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBDT05GSUdfRU5WX1NFQ1RfU0laRSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKgogICogSW5pdGlhbCBSQU0gQmFzZSBBZGRyZXNzIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweEU2MDAwMDAwIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMHgxMDAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweEU2MDAwMDAwIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkweDEwMCAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyoKICAqIExvY2FsIEJ1cyBDb25maWd1cmF0aW9uICYgQ2xvY2sgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfTENSUgkJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzgpCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl84KQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBGTEFTSCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJLyogdXNlIHRoZSBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwIC8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMzIgLyogbWF4IEZMQVNIIHNpemUgaXMgMzJNICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwIC8qIEZMQVNIIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTMyIC8qIG1heCBGTEFTSCBzaXplIGlzIDMyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLwogCi0jZGVmaW5lIENGR19MQkxBV0JBUjBfUFJFTElNCUNGR19GTEFTSF9CQVNFIC8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE4IC8qIDMyTUIgd2luZG93IHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRSAvKiBXaW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTggLyogMzJNQiB3aW5kb3cgc2l6ZSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoIENGR19GTEFTSF9CQVNFCS8qIEZsYXNoIEJhc2UgYWRkcmVzcyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQl8ICgyIDw8IEJSX1BTX1NISUZUKQkvKiAxNiBiaXQgcG9ydCBzaXplICovIFwKIAkJCQl8IEJSX1YgKQkJLyogdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSggKH4oQ0ZHX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSggKH4oQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gMSkgPDwgMjApIFwKIAkJCQl8IE9SX1VQTV9YQU0gXAogCQkJCXwgT1JfR1BDTV9DU05UIFwKIAkJCQl8IE9SX0dQQ01fQUNTX0RJVjIgXApAQCAtMjQ4LDMzICsyNDgsMzMgQEAKIAkJCQl8IE9SX0dQQ01fRUFEICkKIAkJCQkvKiAweEZFMDAwRkY3ICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxIC8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2IC8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMSAvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYgLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLwogCi0jdW5kZWYgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwIC8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAgLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAgLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAgLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKIC8qCiAgKiBCQ1NSIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfQkNTUgkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdCQVIxX1BSRUxJTQlDRkdfQkNTUiAvKiBBY2Nlc3Mgd2luZG93IGJhc2UgYXQgQkNTUiBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRSAvKiBBY2Nlc3Mgd2luZG93IHNpemUgMzJLICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JQ09ORklHX1NZU19CQ1NSIC8qIEFjY2VzcyB3aW5kb3cgYmFzZSBhdCBCQ1NSIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMV9QUkVMSU0JMHg4MDAwMDAwRSAvKiBBY2Nlc3Mgd2luZG93IHNpemUgMzJLICovCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfQkNTUiB8IDB4MDAwMDA4MDEpIC8qIFBvcnQgc2l6ZT04Yml0LCBNU0VMPUdQQ00gKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4RkZGRkU5ZjcgLyogbGVuZ3RoIDMySyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCShDT05GSUdfU1lTX0JDU1IgfCAweDAwMDAwODAxKSAvKiBQb3J0IHNpemU9OGJpdCwgTVNFTD1HUENNICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhGRkZGRTlmNyAvKiBsZW5ndGggMzJLICovCiAKIC8qCiAgKiBOQU5EIEZsYXNoIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCSggQ0ZHX05BTkRfQkFTRSBcCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkoIENPTkZJR19TWVNfTkFORF9CQVNFIFwKIAkJCQl8ICgyPDxCUl9ERUNDX1NISUZUKQkvKiBVc2UgSFcgRUNDICovIFwKIAkJCQl8IEJSX1BTXzgJCS8qIFBvcnQgU2l6ZSA9IDggYml0ICovIFwKIAkJCQl8IEJSX01TX0ZDTQkJLyogTVNFTCA9IEZDTSAqLyBcCiAJCQkJfCBCUl9WICkJCS8qIHZhbGlkICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkoIDB4RkZGRjgwMDAJCS8qIGxlbmd0aCAzMksgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCSggMHhGRkZGODAwMAkJLyogbGVuZ3RoIDMySyAqLyBcCiAJCQkJfCBPUl9GQ01fQ1NDVCBcCiAJCQkJfCBPUl9GQ01fQ1NUIFwKIAkJCQl8IE9SX0ZDTV9DSFQgXApAQCAtMjgzLDI5ICsyODMsMjkgQEAKIAkJCQl8IE9SX0ZDTV9FSFRSICkKIAkJCQkvKiAweEZGRkY4Mzk2ICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSM19QUkVMSU0JQ0ZHX05BTkRfQkFTRQotI2RlZmluZSBDRkdfTEJMQVdBUjNfUFJFTElNCTB4ODAwMDAwMEUJLyogMzJLQiAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjNfUFJFTElNCUNPTkZJR19TWVNfTkFORF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjNfUFJFTElNCTB4ODAwMDAwMEUJLyogMzJLQiAgKi8KIAogLyoKICAqIFNlcmlhbCBQb3J0CiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0lNTVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JTU1SKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogUGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzE3LDM1ICszMTcsMzUgQEAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjdW5kZWYgQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAgLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg1MX0gLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwIC8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg1MX0gLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkMyX09GRlNFVAkJMHgzMTAwCiAKIC8qCiAgKiBDb25maWcgb24tYm9hcmQgUlRDCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzNzQJLyogdXNlIGRzMTM3NCBydGMgdmlhIGkyYyAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjggLyogYXQgYWRkcmVzcyAweDY4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjggLyogYXQgYWRkcmVzcyAweDY4ICovCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCUNGR19QQ0lfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX0JBU0UJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01NSU9fUEhZUwlDRkdfUENJX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJX01NSU9fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJMHhFMDMwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MTAwMDAwIC8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fUEhZUwlDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCTB4RTAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgxMDAwMDAgLyogMU0gKi8KIAotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fTE9DQUwJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9MT0NBTAlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX1NJWkUJMHg4MDAwMDAwMAogCiAjaWZkZWYgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfODNYWF9HRU5FUklDX1BDSQkxIC8qIFVzZSBnZW5lcmljIFBDSSBzZXR1cCAqLwpAQCAtMzU2LDcgKzM1Niw3IEBACiAKICN1bmRlZiBDT05GSUdfRUVQUk8xMDAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxOTU3CS8qIEZyZWVzY2FsZSAqLwogI2VuZGlmIC8qIENPTkZJR19QQ0kgKi8KIAogI2lmbmRlZiBDT05GSUdfTkVUX01VTFRJCkBAIC0zNjcsMTAgKzM2NywxMCBAQAogICogVFNFQwogICovCiAjZGVmaW5lIENPTkZJR19UU0VDX0VORVQJLyogVFNFQyBldGhlcm5ldCBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19UU0VDMV9PRkZTRVQJMHgyNDAwMAotI2RlZmluZSBDRkdfVFNFQzEJCShDRkdfSU1NUitDRkdfVFNFQzFfT0ZGU0VUKQotI2RlZmluZSBDRkdfVFNFQzJfT0ZGU0VUCTB4MjUwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMyCQkoQ0ZHX0lNTVIrQ0ZHX1RTRUMyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQJMHgyNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxCQkoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVAkweDI1MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzIJCShDT05GSUdfU1lTX0lNTVIrQ09ORklHX1NZU19UU0VDMl9PRkZTRVQpCiAKIC8qCiAgKiBUU0VDIGV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTQwMSwxNSArNDAxLDE1IEBACiAjZGVmaW5lIENPTkZJR19MSUJBVEEKICNkZWZpbmUgQ09ORklHX0ZTTF9TQVRBCiAKLSNkZWZpbmUgQ0ZHX1NBVEFfTUFYX0RFVklDRQkyCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFCTIKICNkZWZpbmUgQ09ORklHX1NBVEExCi0jZGVmaW5lIENGR19TQVRBMV9PRkZTRVQJMHgxODAwMAotI2RlZmluZSBDRkdfU0FUQTEJCShDRkdfSU1NUiArIENGR19TQVRBMV9PRkZTRVQpCi0jZGVmaW5lIENGR19TQVRBMV9GTEFHUwkJRkxBR1NfRE1BCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTFfT0ZGU0VUCTB4MTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMQkJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfU0FUQTFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX0ZMQUdTCQlGTEFHU19ETUEKICNkZWZpbmUgQ09ORklHX1NBVEEyCi0jZGVmaW5lIENGR19TQVRBMl9PRkZTRVQJMHgxOTAwMAotI2RlZmluZSBDRkdfU0FUQTIJCShDRkdfSU1NUiArIENGR19TQVRBMl9PRkZTRVQpCi0jZGVmaW5lIENGR19TQVRBMl9GTEFHUwkJRkxBR1NfRE1BCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTJfT0ZGU0VUCTB4MTkwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMgkJKENPTkZJR19TWVNfSU1NUiArIENPTkZJR19TWVNfU0FUQTJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX0ZMQUdTCQlGTEFHU19ETUEKIAogI2lmZGVmIENPTkZJR19GU0xfU0FUQQogI2RlZmluZSBDT05GSUdfTEJBNDgKQEAgLTQyMSwyMCArNDIxLDIwIEBACiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQ1OSw3ICs0NTksNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC00NzEsMzQgKzQ3MSwzNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBDb3JlIEhJRCBTZXR1cAogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTB4MDAwMDAwMDAwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLCi0jZGVmaW5lIENGR19ISUQyCQlISUQyX0hCRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0VOQUJMRV9NQUNISU5FX0NIRUNLCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJSElEMl9IQkUKIAogLyoKICAqIE1NVSBTZXR1cApAQCAtNTA2LDY3ICs1MDYsNjcgQEAKICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkxCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KIAogLyogRERSOiBjYWNoZSBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0xPV0VSCQlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fVVBQRVIJCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTE9XRVIJCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1VQUEVSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkKIAotI2RlZmluZSBDRkdfSUJBVDBMCShDRkdfU0RSQU1fTE9XRVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9MT1dFUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0xPV0VSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9MT1dFUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQogCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19TRFJBTV9VUFBFUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX1NEUkFNX1VQUEVSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfU0RSQU1fVVBQRVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX1NEUkFNX1VQUEVSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCUNPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCiAKIC8qIElNTVJCQVIsIFBDSSBJTyBhbmQgTkFORDogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfSU1NUiB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX0lNTVIgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfSU1NUiB8IEJBVFVfQkxfOE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQyTAlDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF84TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQogCiAvKiBCQ1NSOiBjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUM0wJKENGR19CQ1NSIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfQkNTUiB8IEJBVExfUFBfMTAgfCBcCiAJCQlCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19CQ1NSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKENPTkZJR19TWVNfQkNTUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKiBGTEFTSDogaWNhY2hlIGNhY2hlYWJsZSwgYnV0IGRjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNEwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVCUNGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJQ09ORklHX1NZU19JQkFUNFUKIAogLyogU3RhY2sgaW4gZGNhY2hlOiBjYWNoZWFibGUsIG5vIG1lbW9yeSBjb2hlcmVuY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCUNPTkZJR19TWVNfSUJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCUNPTkZJR19TWVNfSUJBVDVVCiAKICNpZmRlZiBDT05GSUdfUENJCiAvKiBQQ0kgTUVNIHNwYWNlOiBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoQ0ZHX1BDSV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoQ0ZHX1BDSV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKENPTkZJR19TWVNfUENJX01FTV9QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCiAvKiBQQ0kgTU1JTyBzcGFjZTogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDdMCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDdVCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUNkwJKDApCi0jZGVmaW5lIENGR19JQkFUNlUJKDApCi0jZGVmaW5lIENGR19JQkFUN0wJKDApCi0jZGVmaW5lIENGR19JQkFUN1UJKDApCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzgzN1hFUkRCLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODM3WEVSREIuaAppbmRleCA0NjUwYjhkLi5mMjgxYzU5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODM3WEVSREIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODM3WEVSREIuaApAQCAtNTgsNyArNTgsNyBAQAogLyoKICAqIEhhcmR3YXJlIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZAogICovCi0jZGVmaW5lIENGR19IUkNXX0xPVyAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XIChcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX1NWQ09EX0RJVl8yIHxcCkBAIC02Niw3ICs2Niw3IEBACiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCiAjaWZkZWYgQ09ORklHX1BDSVNMQVZFCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfQUdFTlQgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRElTQUJMRSB8XAogCUhSQ1dIX0NPUkVfRU5BQkxFIHxcCkBAIC04MCw3ICs4MCw3IEBACiAJSFJDV0hfQklHX0VORElBTiB8XAogCUhSQ1dIX0xEUF9DTEVBUikKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIX1BDSTFfQVJCSVRFUl9FTkFCTEUgfFwKIAlIUkNXSF9DT1JFX0VOQUJMRSB8XApAQCAtOTUsMzYgKzk1LDM2IEBACiAJSFJDV0hfTERQX0NMRUFSKQogI2VuZGlmCiAKLS8qIFN5c3RlbSBwZXJmb3JtYW5jZSAtIGRlZmluZSB0aGUgdmFsdWUgaS5lLiBDRkdfWFhYCisvKiBTeXN0ZW0gcGVyZm9ybWFuY2UgLSBkZWZpbmUgdGhlIHZhbHVlIGkuZS4gQ09ORklHX1NZU19YWFgKICovCiAKIC8qIEFyYml0ZXIgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfQUNSX1BJUEVfREVQCTMJLyogQXJiaXRlciBwaXBlbGluZSBkZXB0aCAoMC0zKSAqLwotI2RlZmluZSBDRkdfQUNSX1JQVENOVAkJMwkvKiBBcmJpdGVyIHJlcGVhdCBjb3VudCAoMC03KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9QSVBFX0RFUAkzCS8qIEFyYml0ZXIgcGlwZWxpbmUgZGVwdGggKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUlBUQ05UCQkzCS8qIEFyYml0ZXIgcmVwZWF0IGNvdW50ICgwLTcpICovCiAKIC8qIFN5c3RlbSBQcmlvcml0eSBDb250cm9sIFJlZ3NpdGVyICovCi0jZGVmaW5lIENGR19TUENSX1RTRUNFUAkJMwkvKiBlVFNFQzEmMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUENSX1RTRUNFUAkJMwkvKiBlVFNFQzEmMiBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KIAogLyogU3lzdGVtIENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1JfVFNFQzFDTQkxCQkvKiBlVFNFQzEgY2xvY2sgbW9kZSAoMC0zKSAqLwotI2RlZmluZSBDRkdfU0NDUl9UU0VDMkNNCTEJCS8qIGVUU0VDMiBjbG9jayBtb2RlICgwLTMpICovCi0jZGVmaW5lIENGR19TQ0NSX1NBVEFDTQkJU0NDUl9TQVRBQ01fMgkvKiBTQVRBMS00IGNsb2NrIG1vZGUgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMxQ00JMQkJLyogZVRTRUMxIGNsb2NrIG1vZGUgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMyQ00JMQkJLyogZVRTRUMyIGNsb2NrIG1vZGUgKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1NBVEFDTQkJU0NDUl9TQVRBQ01fMgkvKiBTQVRBMS00IGNsb2NrIG1vZGUgKDAtMykgKi8KIAogLyoKICAqIFN5c3RlbSBJTyBDb25maWcKICAqLwotI2RlZmluZSBDRkdfU0lDUkgJCTB4MDgyMDAwMDAKLSNkZWZpbmUgQ0ZHX1NJQ1JMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkgJCTB4MDgyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTAkJMHgwMDAwMDAwMAogCiAvKgogICogT3V0cHV0IEJ1ZmZlciBJbXBlZGFuY2UKICAqLwotI2RlZmluZSBDRkdfT0JJUgkJMHgzMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09CSVIJCTB4MzAxMDAwMDAKIAogLyoKICAqIElNTVIgbmV3IGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RTAwMDAwMDAKIAogLyoKICAqIERldmljZSBjb25maWd1cmF0aW9ucwpAQCAtMTQ1LDEzICsxNDUsMTMgQEAKIC8qCiAgKiBERFIgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfRERSX0JBU0UJCTB4MDAwMDAwMDAgLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwJMHgwMzAwMDAwMAotI2RlZmluZSBDRkdfODNYWF9ERFJfVVNFU19DUzAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMCAvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMCTB4MDMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184M1hYX0REUl9VU0VTX0NTMAogCi0jZGVmaW5lIENGR19ERFJDRFJfVkFMVUUJKEREUkNEUl9ESENfRU4gfCBERFJDRFJfT0RUIHwgRERSQ0RSX1FfRFJOKQorI2RlZmluZSBDT05GSUdfU1lTX0REUkNEUl9WQUxVRQkoRERSQ0RSX0RIQ19FTiB8IEREUkNEUl9PRFQgfCBERFJDRFJfUV9EUk4pCiAKICN1bmRlZiBDT05GSUdfRERSX0VDQwkJLyogc3VwcG9ydCBERFIgRUNDIGZ1bmN0aW9uICovCiAjdW5kZWYgQ09ORklHX0REUl9FQ0NfQ01ECS8qIFVzZSBERFIgRUNDIHVzZXIgY29tbWFuZHMgKi8KQEAgLTE2MSwxMyArMTYxLDEzIEBACiAvKgogICogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkyNTYJCS8qIE1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJKENTQ09ORklHX0VOIHwgQ1NDT05GSUdfT0RUX1dSX0FDUyBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NJWkUJCTI1NgkJLyogTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCShDU0NPTkZJR19FTiB8IENTQ09ORklHX09EVF9XUl9BQ1MgXAogCQkJCXwgQ1NDT05GSUdfUk9XX0JJVF8xMyB8IENTQ09ORklHX0NPTF9CSVRfMTApCiAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJKCgwIDw8IFRJTUlOR19DRkcwX1JXVF9TSElGVCkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCSgoMCA8PCBUSU1JTkdfQ0ZHMF9SV1RfU0hJRlQpIFwKIAkJCQl8ICgwIDw8IFRJTUlOR19DRkcwX1dSVF9TSElGVCkgXAogCQkJCXwgKDAgPDwgVElNSU5HX0NGRzBfUlJUX1NISUZUKSBcCiAJCQkJfCAoMCA8PCBUSU1JTkdfQ0ZHMF9XV1RfU0hJRlQpIFwKQEAgLTE3Nyw3ICsxNzcsNyBAQAogCQkJCXwgKDIgPDwgVElNSU5HX0NGRzBfTVJTX0NZQ19TSElGVCkpCiAJCQkJLyogMHgwMDIyMDgwMiAqLwogCQkJCS8qIDB4MDAyNjA4MDIgKi8gLyogRERSNDAwICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJKCgzIDw8IFRJTUlOR19DRkcxX1BSRVRPQUNUX1NISUZUKSBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCSgoMyA8PCBUSU1JTkdfQ0ZHMV9QUkVUT0FDVF9TSElGVCkgXAogCQkJCXwgKDkgPDwgVElNSU5HX0NGRzFfQUNUVE9QUkVfU0hJRlQpIFwKIAkJCQl8ICgzIDw8IFRJTUlOR19DRkcxX0FDVFRPUldfU0hJRlQpIFwKIAkJCQl8ICg3IDw8IFRJTUlOR19DRkcxX0NBU0xBVF9TSElGVCkgXApAQCAtMTg3LDEyNSArMTg3LDEyNSBAQAogCQkJCXwgKDIgPDwgVElNSU5HX0NGRzFfV1JUT1JEX1NISUZUKSkKIAkJCQkvKiAweDM5MzVkMzIyICovCiAJCQkJLyogMHgzOTM3ZDMyMiAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDI5ODRjYzgKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMjk4NGNjOAogCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJKCgxNTQ1IDw8IFNEUkFNX0lOVEVSVkFMX1JFRklOVF9TSElGVCkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkoKDE1NDUgPDwgU0RSQU1fSU5URVJWQUxfUkVGSU5UX1NISUZUKSBcCiAJCQkJfCAoMjU2IDw8IFNEUkFNX0lOVEVSVkFMX0JTVE9QUkVfU0hJRlQpKQogCQkJCS8qIDB4MDYwOTAxMDAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl8yVF9USU1JTkcpCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHCQkoU0RSQU1fQ0ZHX1NSRU4gXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcJCShTRFJBTV9DRkdfU1JFTiBcCiAJCQkJfCAzIDw8IFNEUkFNX0NGR19TRFJBTV9UWVBFX1NISUZUIFwKIAkJCQl8IFNEUkFNX0NGR18yVF9FTiBcCiAJCQkJfCBTRFJBTV9DRkdfREJXXzMyKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9DRkcJCShTRFJBTV9DRkdfU1JFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NGRwkJKFNEUkFNX0NGR19TUkVOIFwKIAkJCQl8IDMgPDwgU0RSQU1fQ0ZHX1NEUkFNX1RZUEVfU0hJRlQpCiAJCQkJLyogMHg0MzAwMDAwMCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHMgkweDAwMDAxMDAwIC8qIDEgcG9zdGVkIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkoKDB4MDQ0MCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCkgXAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDAwMDEwMDAgLyogMSBwb3N0ZWQgcmVmcmVzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkoKDB4MDQ0MCA8PCBTRFJBTV9NT0RFX0VTRF9TSElGVCkgXAogCQkJCXwgKDB4MDQ0MiA8PCBTRFJBTV9NT0RFX1NEX1NISUZUKSkKIAkJCQkvKiAweDA0NDAwNDQyICovIC8qIEREUjQwMCAqLwotI2RlZmluZSBDRkdfRERSX01PREUyCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUyCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBNZW1vcnkgdGVzdAogICovCi0jdW5kZWYgQ0ZHX0RSQU1fVEVTVAkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMCAvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MGVmNzAwMTAKKyN1bmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVAkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwZWY3MDAxMAogCiAvKgogICogVGhlIHJlc2VydmVkIG1lbW9yeQogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFIC8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFIC8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KSAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiAqIDEwMjQpIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyoKICAqIEluaXRpYWwgUkFNIEJhc2UgQWRkcmVzcyBTZXR1cAogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhFNjAwMDAwMCAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhFNjAwMDAwMCAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMCAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHgxMDAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb2NhbCBCdXMgQ29uZmlndXJhdGlvbiAmIENsb2NrIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0xDUlIJCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl84KQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCQkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfOCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMCAvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTggLyogbWF4IEZMQVNIIHNpemUgaXMgMzJNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMCAvKiBGTEFTSCBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQk4IC8qIG1heCBGTEFTSCBzaXplIGlzIDMyTSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSBoL3cgRmxhc2ggcHJvdGVjdGlvbi4gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCQkvKiBkaXNwbGF5IGVtcHR5IHNlY3RvcnMgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJCS8qIGJ1ZmZlciB1cCBtdWx0aXBsZSBieXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIGgvdyBGbGFzaCBwcm90ZWN0aW9uLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCQkvKiBkaXNwbGF5IGVtcHR5IHNlY3RvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCQkvKiBidWZmZXIgdXAgbXVsdGlwbGUgYnl0ZXMgKi8KIAotI2RlZmluZSBDRkdfTEJMQVdCQVIwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRSAvKiBXaW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxNgkvKiA4IE1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDE2CS8qIDggTUIgd2luZG93IHNpemUgKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgLyogRmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQkoMiA8PCBCUl9QU19TSElGVCkgfCAvKiAxNiBiaXQgcG9ydCBzaXplICovIFwKIAkJCQlCUl9WKSAvKiB2YWxpZCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKDB4RkY4MDAwMDAJCS8qIDggTUJ5dGUgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSgweEZGODAwMDAwCQkvKiA4IE1CeXRlICovIFwKIAkJCQl8IE9SX0dQQ01fWEFDUyBcCiAJCQkJfCBPUl9HUENNX1NDWV85IFwKIAkJCQl8IE9SX0dQQ01fRUhUUiBcCiAJCQkJfCBPUl9HUENNX0VBRCkKIAkJCQkvKiAweEZGODA2RkY3CVRPRE8gU0xPVyA4IE1CIGZsYXNoIHNpemUgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEgLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYgLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxIC8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NiAvKiBtYXggc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAogLyoKICAqIE5BTkQgRmxhc2ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4RTA2MDAwMDAJLyogMHhFMDYwMDAwMCAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJKENGR19OQU5EX0JBU0UgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweEUwNjAwMDAwCS8qIDB4RTA2MDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQ09ORklHX1NZU19OQU5EX0JBU0UgfCBcCiAJCQkJICgyIDw8IEJSX0RFQ0NfU0hJRlQpIHwJLyogVXNlIEhXIEVDQyAqLyBcCiAJCQkJIEJSX1BTXzggfAkJLyogUG9ydCBTaXplID0gOCBiaXQgKi8gXAogCQkJCSBCUl9NU19GQ00gfAkJLyogTVNFTCA9IEZDTSAqLyBcCiAJCQkJIEJSX1YpCQkJLyogdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCSgweEZGRkY4MDAwIHwJCS8qIGxlbmd0aCAzMksgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCSgweEZGRkY4MDAwIHwJCS8qIGxlbmd0aCAzMksgKi8gXAogCQkJCSBPUl9GQ01fQ1NDVCB8IFwKIAkJCQkgT1JfRkNNX0NTVCB8IFwKIAkJCQkgT1JfRkNNX0NIVCB8IFwKIAkJCQkgT1JfRkNNX1NDWV8xIHwgXAogCQkJCSBPUl9GQ01fVFJMWCB8IFwKIAkJCQkgT1JfRkNNX0VIVFIpCi0jZGVmaW5lIENGR19MQkxBV0JBUjFfUFJFTElNCUNGR19OQU5EX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIxX1BSRUxJTQlDT05GSUdfU1lTX05BTkRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQkweDgwMDAwMDBFCS8qIDMyS0IgICovCiAKIC8qIFZpdGVzc2UgNzM4NSAqLwogCi0jZGVmaW5lIENGR19WU0M3Mzg1X0JBU0UJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1ZTQzczODVfQkFTRQkweEYwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfVlNDNzM4NV9FTkVUCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDA4MDEJCS8qIEJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmZmZlMDlmZgkJLyogMTI4SyBieXRlcyovCi0jZGVmaW5lIENGR19MQkxBV0JBUjJfUFJFTElNCUNGR19WU0M3Mzg1X0JBU0UJLyogQWNjZXNzIEJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDEwCQkvKiBBY2Nlc3MgU2l6ZSAxMjhLICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHhmMDAwMDgwMQkJLyogQmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmZmZlMDlmZgkJLyogMTI4SyBieXRlcyovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdCQVIyX1BSRUxJTQlDT05GSUdfU1lTX1ZTQzczODVfQkFTRQkvKiBBY2Nlc3MgQmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIyX1BSRUxJTQkweDgwMDAwMDEwCQkvKiBBY2Nlc3MgU2l6ZSAxMjhLICovCiAKICNlbmRpZgogCkBAIC0zMTQsMTYgKzMxNCwxNiBAQAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JTU1SKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAvKiBTRVJERVMgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9TRVJERVMKQEAgLTMzMSw5ICszMzEsOSBAQAogI2RlZmluZSBDT05GSUdfRlNMX1NFUkRFUzIJMHhlMzEwMAogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIFBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTM0NSw0MiArMzQ1LDQyIEBACiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwIC8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4NTF9IC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMCAvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTF9IC8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQJCTB4MzEwMAogCiAvKgogICogQ29uZmlnIG9uLWJvYXJkIFJUQwogICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzc0CS8qIHVzZSBkczEzNzQgcnRjIHZpYSBpMmMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4IC8qIGF0IGFkZHJlc3MgMHg2OCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4IC8qIGF0IGFkZHJlc3MgMHg2OCAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwlDRkdfUENJX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfTU1JT19CQVNFCTB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1BIWVMJQ0ZHX1BDSV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX1NJWkUJMHgxMDAwMDAwMCAvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1BIWVMJCTB4RTAzMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDEwMDAwMCAvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCUNPTkZJR19TWVNfUENJX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAgLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0lfTU1JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fU0laRQkweDEwMDAwMDAwIC8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19QSFlTCQkweEUwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1NJWkUJCTB4MTAwMDAwIC8qIDFNICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0xPQ0FMCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lfU0xWX01FTV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fTE9DQUwJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NMVl9NRU1fQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU0xWX01FTV9TSVpFCTB4ODAwMDAwMDAKIAogI2lmZGVmIENPTkZJR19QQ0kKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgKi8KIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDE5NTcJLyogRnJlZXNjYWxlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDE5NTcJLyogRnJlZXNjYWxlICovCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCiAvKgpAQCAtMzk2LDcgKzM5Niw3IEBACiAjaWZkZWYgQ09ORklHX1RTRUMxCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMAogI2RlZmluZSBDT05GSUdfVFNFQzFfTkFNRQkJIlRTRUMwIgotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCQkweDI0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUCQkweDI0MDAwCiAjZGVmaW5lIFRTRUMxX1BIWV9BRERSCQkJMgogI2RlZmluZSBUU0VDMV9GTEFHUwkJCShUU0VDX0dJR0FCSVQgfCBUU0VDX1JFRFVDRUQpCiAjZGVmaW5lIFRTRUMxX1BIWUlEWAkJCTAKQEAgLTQwNSw3ICs0MDUsNyBAQAogI2lmZGVmIENPTkZJR19UU0VDMgogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEKICNkZWZpbmUgQ09ORklHX1RTRUMyX05BTUUJCSJUU0VDMSIKLSNkZWZpbmUgQ0ZHX1RTRUMyX09GRlNFVAkJMHgyNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyX09GRlNFVAkJMHgyNTAwMAogI2RlZmluZSBUU0VDMl9QSFlfQUREUgkJCTB4MWMKICNkZWZpbmUgVFNFQzJfRkxBR1MJCQkoVFNFQ19HSUdBQklUIHwgVFNFQ19SRURVQ0VEKQogI2RlZmluZSBUU0VDMl9QSFlJRFgJCQkwCkBAIC00MjIsMTUgKzQyMiwxNSBAQAogI2RlZmluZSBDT05GSUdfTElCQVRBCiAjZGVmaW5lIENPTkZJR19GU0xfU0FUQQogCi0jZGVmaW5lIENGR19TQVRBX01BWF9ERVZJQ0UJMgorI2RlZmluZSBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRQkyCiAjZGVmaW5lIENPTkZJR19TQVRBMQotI2RlZmluZSBDRkdfU0FUQTFfT0ZGU0VUCTB4MTgwMDAKLSNkZWZpbmUgQ0ZHX1NBVEExCQkoQ0ZHX0lNTVIgKyBDRkdfU0FUQTFfT0ZGU0VUKQotI2RlZmluZSBDRkdfU0FUQTFfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX09GRlNFVAkweDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTEJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1NBVEExX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMV9GTEFHUwkJRkxBR1NfRE1BCiAjZGVmaW5lIENPTkZJR19TQVRBMgotI2RlZmluZSBDRkdfU0FUQTJfT0ZGU0VUCTB4MTkwMDAKLSNkZWZpbmUgQ0ZHX1NBVEEyCQkoQ0ZHX0lNTVIgKyBDRkdfU0FUQTJfT0ZGU0VUKQotI2RlZmluZSBDRkdfU0FUQTJfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX09GRlNFVAkweDE5MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQTIJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1NBVEEyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQVRBMl9GTEFHUwkJRkxBR1NfRE1BCiAKICNpZmRlZiBDT05GSUdfRlNMX1NBVEEKICNkZWZpbmUgQ09ORklHX0xCQTQ4CkBAIC00NDIsMjAgKzQ0MiwyMCBAQAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UrQ0ZHX01PTklUT1JfTEVOKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogNjRLIChvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogI2Vsc2UKLQkjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworCSNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLTB4MTAwMCkKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLTB4MTAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDgwLDcgKzQ4MCw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfUENJCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTQ5MiwzNCArNDkyLDM0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2IC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIENvcmUgSElEIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKLSNkZWZpbmUgQ0ZHX0hJRDIJCUhJRDJfSEJFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQlISUQyX0hCRQogCiAvKgogICogTU1VIFNldHVwCkBAIC01MjgsNjcgKzUyOCw2NyBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFI6IGNhY2hlIGNhY2hlYWJsZSAqLwotI2RlZmluZSBDRkdfU0RSQU1fTE9XRVIJCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19TRFJBTV9VUFBFUgkJKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9MT1dFUgkJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVVBQRVIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKQogCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9MT1dFUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkoQ0ZHX1NEUkFNX0xPV0VSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJKENPTkZJR19TWVNfU0RSQU1fTE9XRVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0xPV0VSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1NEUkFNX1VQUEVSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfU0RSQU1fVVBQRVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19TRFJBTV9VUFBFUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfU0RSQU1fVVBQRVIgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogSU1NUkJBUiwgUENJIElPIGFuZCBOQU5EOiBjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19JTU1SIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfSU1NUiB8IEJBVExfUFBfMTAgfCBcCiAJCQlCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19JTU1SIHwgQkFUVV9CTF84TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX0lNTVIgfCBCQVRVX0JMXzhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCiAKIC8qIEwyIFN3aXRjaDogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfVlNDNzM4NV9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfVlNDNzM4NV9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKIAkJCUJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoQ0ZHX1ZTQzczODVfQkFTRSB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX1ZTQzczODVfQkFTRSB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKiBGTEFTSDogaWNhY2hlIGNhY2hlYWJsZSwgYnV0IGRjYWNoZS1pbmhpYml0IGFuZCBndWFyZGVkICovCi0jZGVmaW5lIENGR19JQkFUNEwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNEwJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVCUNGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJQ09ORklHX1NZU19JQkFUNFUKIAogLyogU3RhY2sgaW4gZGNhY2hlOiBjYWNoZWFibGUsIG5vIG1lbW9yeSBjb2hlcmVuY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCUNPTkZJR19TWVNfSUJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCUNPTkZJR19TWVNfSUJBVDVVCiAKICNpZmRlZiBDT05GSUdfUENJCiAvKiBQQ0kgTUVNIHNwYWNlOiBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoQ0ZHX1BDSV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQkoQ0ZHX1BDSV9NRU1fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUyB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKENPTkZJR19TWVNfUENJX01FTV9QSFlTIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCiAvKiBQQ0kgTU1JTyBzcGFjZTogY2FjaGUtaW5oaWJpdCBhbmQgZ3VhcmRlZCAqLwotI2RlZmluZSBDRkdfSUJBVDdMCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVExfUFBfMTAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRMX1BQXzEwIHwgXAogCQkJQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDdVCShDRkdfUENJX01NSU9fUEhZUyB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCShDT05GSUdfU1lTX1BDSV9NTUlPX1BIWVMgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUNkwJKDApCi0jZGVmaW5lIENGR19JQkFUNlUJKDApCi0jZGVmaW5lIENGR19JQkFUN0wJKDApCi0jZGVmaW5lIENGR19JQkFUN1UJKDApCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1MzZEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg1MzZEUy5oCmluZGV4IGI1MDRhZGQuLjM4YmUxMGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTM2RFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODUzNkRTLmgKQEAgLTczLDIzICs3MywyMyBAQAogCiAjZGVmaW5lIENPTkZJR19FTkFCTEVfMzZCSVRfUEhZUwkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg3ZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4N2ZmZmZmZmYKICNkZWZpbmUgQ09ORklHX1BBTklDX0hBTkcJLyogZG8gbm90IHJlc2V0IGJvYXJkIG9uIHBhbmljICovCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZmZlMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZmZlMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkJKENGR19DQ1NSQkFSKzB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUxX0FERFIJCShDRkdfQ0NTUkJBUisweGEwMDApCi0jZGVmaW5lIENGR19QQ0lFMl9BRERSCQkoQ0ZHX0NDU1JCQVIrMHg5MDAwKQotI2RlZmluZSBDRkdfUENJRTNfQUREUgkJKENGR19DQ1NSQkFSKzB4YjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHhhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg5MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHhiMDAwKQogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIyCkBAIC0xMDEsOCArMTAxLDggQEAKICN1bmRlZiBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTEwLDM3ICsxMTAsMzcgQEAKIAogLyogSTJDIGFkZHJlc3NlcyBvZiBTUEQgRUVQUk9NcyAqLwogI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MJMHg1MQkvKiBDVExSIDAgRElNTSAwICovCi0jZGVmaW5lIENGR19TUERfQlVTX05VTQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCQkxCiAKIC8qIFRoZXNlIGFyZSB1c2VkIHdoZW4gRERSIGRvZXNuJ3QgdXNlIFNQRC4gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTI1NgkJLyogRERSIGlzIDI1Nk1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAxRgotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAxMDEwMgkvKiBFbmFibGUsIG5vIGludGVybGVhdmluZyAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjYwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzOTM1ZDMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MTQ5MDRjYzgKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzEJCTB4MDA0ODA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzIJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA2MTgwMTAwCi0jZGVmaW5lIENGR19ERFJfREFUQV9JTklUCTB4ZGVhZGJlZWYKLSNkZWZpbmUgQ0ZHX0REUl9DTEtfQ1RSTAkweDAzODAwMDAwCi0jZGVmaW5lIENGR19ERFJfT0NEX0NUUkwJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX09DRF9TVEFUVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4QzMwMDgwMDAJLyogVHlwZSA9IEREUjIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MMgkweDA0NDAwMDEwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMjU2CQkvKiBERFIgaXMgMjU2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAxRgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCTB4ODAwMTAxMDIJLyogRW5hYmxlLCBubyBpbnRlcmxlYXZpbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjYwODAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzkzNWQzMjIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgxNDkwNGNjOAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFXzEJCTB4MDA0ODA0MzIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8yCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDYxODAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfREFUQV9JTklUCTB4ZGVhZGJlZWYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0xLX0NUUkwJMHgwMzgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9PQ0RfQ1RSTAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX09DRF9TVEFUVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MCQkweEMzMDA4MDAwCS8qIFR5cGUgPSBERFIyICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wyCTB4MDQ0MDAwMTAKIAotI2RlZmluZSBDRkdfRERSX0VSUl9JTlRfRU4JMHgwMDAwMDAwZAotI2RlZmluZSBDRkdfRERSX0VSUl9ESVMJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9TQkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfRVJSX0lOVF9FTgkweDAwMDAwMDBkCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0VSUl9ESVMJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0JFCQkweDAwMDEwMDAwCiAKIC8qIEZJWE1FOiBOb3QgdXNlZCBpbiBmaXhlZF9zZHJhbSBmdW5jdGlvbiAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjIKLSNkZWZpbmUgQ0ZHX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ1MyX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwotI2RlZmluZSBDRkdfRERSX0NTM19CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzRfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCi0jZGVmaW5lIENGR19ERFJfQ1M1X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkweDAwMDAwMDIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMV9CTkRTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MyX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzNfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTNF9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1M1X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwogCiAvKiBNYWtlIHN1cmUgcmVxdWlyZWQgb3B0aW9ucyBhcmUgc2V0ICovCiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCkBAIC0xNzIsMzggKzE3MiwzOCBAQAogLyoKICAqIExvY2FsIEJ1cyBEZWZpbml0aW9ucwogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGUwMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDEyOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGUwMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDEyOE0gKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhlODAwMTAwMQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmODAwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZTgwMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGY4MDAwZmY3CiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZTAwMDEwMDEKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZjgwMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGUwMDAxMDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmODAwMGZmNwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXtDRkdfRkxBU0hfQkFTRSArIDB4ODAwMDAwMCwgQ0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7Q09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg4MDAwMDAwLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAogI2RlZmluZSBDT05GSUdfRkxBU0hfU0hPV19QUk9HUkVTUyA0NSAvKiBjb3VudCBkb3duIGZyb20gNDUvNTogOS4uMSAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMDI0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMDI0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9BTURfQ0hFQ0tfRFE3CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FNRF9DSEVDS19EUTcKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCS8qIGNhbGwgYm9hcmRfZWFybHlfaW5pdF9yIGZ1bmN0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX0ZTTF9QSVhJUwkxCS8qIHVzZSBjb21tb24gUElYSVMgY29kZSAqLwogI2RlZmluZSBQSVhJU19CQVNFCTB4ZmZkZjAwMDAJLyogUElYSVMgcmVnaXN0ZXJzICovCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKFBJWElTX0JBU0UgfCAweDA4MDEpCS8qIHBvcnQgc2l6ZSA4Yml0ICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweGZmZmZlZmY3CS8qIDMyS0IgYnV0IG9ubHkgNGsgbWFwcGVkICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoUElYSVNfQkFTRSB8IDB4MDgwMSkJLyogcG9ydCBzaXplIDhiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZmZmZlZmY3CS8qIDMyS0IgYnV0IG9ubHkgNGsgbWFwcGVkICovCiAKICNkZWZpbmUgUElYSVNfSUQJCTB4MAkvKiBCb2FyZCBJRCBhdCBvZmZzZXQgMCAqLwogI2RlZmluZSBQSVhJU19WRVIJCTB4MQkvKiBCb2FyZCB2ZXJzaW9uIGF0IG9mZnNldCAxICovCkBAIC0yMzUsMjAgKzIzNSwyMCBAQAogLyogb2xkIHBpeGlzIHJlZmVyZW5jZWQgbmFtZXMgKi8KICNkZWZpbmUgUElYSVNfVkNMS0gJCTB4MTkJLyogVkVMQSBWQ0xLSCByZWdpc3RlciAqLwogI2RlZmluZSBQSVhJU19WQ0xLTAkJMHgxQQkvKiBWRUxBIFZDTEtMIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19QSVhJU19WQk9PVF9NQVNLCTB4YzAKKyNkZWZpbmUgQ09ORklHX1NZU19QSVhJU19WQk9PVF9NQVNLCTB4YzAKIAogLyogZGVmaW5lIHRvIHVzZSBMMSBhcyBpbml0aWFsIHN0YWNrICovCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZmZkMDAwMDAJLyogSW5pdGlhbCBMMSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgwMDAwNDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhmZmQwMDAwMAkvKiBJbml0aWFsIEwxIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgwMDAwNDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAtIGNvbnRyb2xsZWQgb24gYm9hcmQgd2l0aCBqdW1wZXIgSjgKICAqIG9wZW4gLSBpbmRleCAyCkBAIC0yNTYsMjEgKzI1NiwyMSBAQAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTI4MCw4ICsyODAsOCBAQAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAJCTEKICNkZWZpbmUgQ09ORklHX09GX1NURE9VVF9WSUFfQUxJQVMJMQogCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCQkxCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkJMQogCiAKIC8qCkBAIC0yOTIsMjIgKzI5MiwyMiBAQAogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgKi8KICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7ezAsIDB4Mjl9fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCi0jZGVmaW5lIENGR19JMkMyX09GRlNFVAkJMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXt7MCwgMHgyOX19CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMl9PRkZTRVQJCTB4MzEwMAogCiAvKgogICogSTJDMiBFRVBST00KICAqLwogI2RlZmluZSBDT05GSUdfSURfRUVQUk9NCiAjaWZkZWYgQ09ORklHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9OWElECisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9OWElECiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU3Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9CVVNfTlVNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9CVVNfTlVNCTEKIAogLyoKICAqIEdlbmVyYWwgUENJCkBAIC0zMTUsNDAgKzMxNSw0MCBAQAogICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhmZmMwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZmZjMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAxLCBTbG90IDEsIHRndGlkIDEsIEJhc2UgYWRkcmVzcyBhMDAwICovCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fQkFTRQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fUEhZUwlDRkdfUENJRTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TSAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19QSFlTCTB4ZmZjMTAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMJMHhmZmMxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAyLCBTbG90IDIsIHRndGlkIDIsIEJhc2UgYWRkcmVzcyA5MDAwICovCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fQkFTRQkweDk4MDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fUEhZUwlDRkdfUENJRTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUyX01FTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TSAqLwotI2RlZmluZSBDRkdfUENJRTJfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9JT19QSFlTCTB4ZmZjMjAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRQkweDk4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX01FTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMJMHhmZmMyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAzLCBkaXJlY3QgdG8gdWxpLCB0Z3RpZCAzLCBCYXNlIGFkZHJlc3MgODAwMCAqLwotI2RlZmluZSBDRkdfUENJRTNfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTNfTUVNX1BIWVMJQ0ZHX1BDSUUzX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFM19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUzX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTNfSU9fUEhZUwkweGZmYzMwMDAwCi0jZGVmaW5lIENGR19QQ0lFM19JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19QSFlTCTB4ZmZjMzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKQEAgLTM1NiwxMCArMzU2LDEwIEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgKi8KIAogLypQQ0lFIHZpZGVvIGNhcmQgdXNlZCovCi0jZGVmaW5lIFZJREVPX0lPX09GRlNFVAkJQ0ZHX1BDSUUzX0lPX1BIWVMKKyNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCQlDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMKIAogLypQQ0kgdmlkZW8gY2FyZCB1c2VkKi8KLS8qI2RlZmluZSBWSURFT19JT19PRkZTRVQJQ0ZHX1BDSTFfSU9fUEhZUyovCisvKiNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCUNPTkZJR19TWVNfUENJMV9JT19QSFlTKi8KIAogLyogdmlkZW8gKi8KICNkZWZpbmUgQ09ORklHX1ZJREVPCkBAIC0zNzIsNyArMzcyLDcgQEAKICNkZWZpbmUgQ09ORklHX0FUSV9SQURFT05fRkIKICNkZWZpbmUgQ09ORklHX1ZJREVPX0xPR08KIC8qI2RlZmluZSBDT05GSUdfQ09OU09MRV9DVVJTT1IqLwotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyBDRkdfUENJRTNfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgQ09ORklHX1NZU19QQ0lFM19JT19QSFlTCiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19FRVBSTzEwMApAQCAtMzg2LDggKzM4Niw4IEBACiAjZW5kaWYKIAogI2lmbmRlZiBDT05GSUdfUENJX1BOUAotCSNkZWZpbmUgUENJX0VORVQwX0lPQUREUglDRkdfUENJMV9JT19CQVNFCi0JI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUglDRkdfUENJMV9JT19CQVNFCisJI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisJI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUglDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQogCSNkZWZpbmUgUENJX0lEU0VMX05VTUJFUgkweDExCS8qIElEU0VMID0gQUQxMSAqLwogI2VuZGlmCiAKQEAgLTM5OSwxMyArMzk5LDEzIEBACiAjZGVmaW5lIENPTkZJR19MSUJBVEEKICNkZWZpbmUgQ09ORklHX0ZTTF9TQVRBCiAKLSNkZWZpbmUgQ0ZHX1NBVEFfTUFYX0RFVklDRQkyCisjZGVmaW5lIENPTkZJR19TWVNfU0FUQV9NQVhfREVWSUNFCTIKICNkZWZpbmUgQ09ORklHX1NBVEExCi0jZGVmaW5lIENGR19TQVRBMQkJQ0ZHX01QQzg1eHhfU0FUQTFfQUREUgotI2RlZmluZSBDRkdfU0FUQTFfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExCQlDT05GSUdfU1lTX01QQzg1eHhfU0FUQTFfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX1NBVEExX0ZMQUdTCQlGTEFHU19ETUEKICNkZWZpbmUgQ09ORklHX1NBVEEyCi0jZGVmaW5lIENGR19TQVRBMgkJQ0ZHX01QQzg1eHhfU0FUQTJfQUREUgotI2RlZmluZSBDRkdfU0FUQTJfRkxBR1MJCUZMQUdTX0RNQQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyCQlDT05GSUdfU1lTX01QQzg1eHhfU0FUQTJfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX1NBVEEyX0ZMQUdTCQlGTEFHU19ETUEKIAogI2lmZGVmIENPTkZJR19GU0xfU0FUQQogI2RlZmluZSBDT05GSUdfTEJBNDgKQEAgLTQyNyw2ICs0MjcsOSBAQAogI2RlZmluZSBDT05GSUdfVFNFQzMJMQogI2RlZmluZSBDT05GSUdfVFNFQzNfTkFNRQkiZVRTRUMzIgogCisjZGVmaW5lIENPTkZJR19GU0xfU0dNSUlfUklTRVIJMQorI2RlZmluZSBTR01JSV9SSVNFUl9QSFlfT0ZGU0VUCTB4MWMKKwogI2RlZmluZSBUU0VDMV9QSFlfQUREUgkJMQkvKiBUU0VDMSAtPiBQSFkxICovCiAjZGVmaW5lIFRTRUMzX1BIWV9BRERSCQkwCS8qIFRTRUMzIC0+IFBIWTAgKi8KIApAQCAtNDQ2LDE2ICs0NDksMTYgQEAKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+IDB4ZmZmODAwMDAKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+IDB4ZmZmODAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweGZmZjgwMDAwCiAjZWxzZQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg2MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDYwMDAwKQogI2VuZGlmCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyAob25lIHNlY3RvcikgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQ29tbWFuZCBsaW5lIGNvbmZpZ3VyYXRpb24uCkBAIC00NjcsNiArNDcwLDggQEAKICNkZWZpbmUgQ09ORklHX0NNRF9JMkMKICNkZWZpbmUgQ09ORklHX0NNRF9NSUkKICNkZWZpbmUgQ09ORklHX0NNRF9FTEYKKyNkZWZpbmUgQ09ORklHX0NNRF9JUlEKKyNkZWZpbmUgQ09ORklHX0NNRF9TRVRFWFBSCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAjZGVmaW5lIENPTkZJR19DTURfUENJCkBAIC00NzksMjYgKzQ4NCwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTQwQURTLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEFEUy5oCmluZGV4IDBmNWY4MzQuLjVhMTQ5NjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTQwQURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NDBBRFMuaApAQCAtODAsMTggKzgwLDE4IEBACiAjZGVmaW5lIENPTkZJR19CVEIJCQkvKiB0b2dnbGUgYnJhbmNoIHByZWRpdGlvbiAqLwogI2RlZmluZSBDT05GSUdfQUREUl9TVFJFQU1JTkcJCS8qIHRvZ2dsZSBhZGRyIHN0cmVhbWluZyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIxCkBAIC0xMDEsOCArMTAxLDggQEAKIAogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQogI2RlZmluZSBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUgkxCkBAIC0xMTIsNDIgKzExMiw0MiBAQAogI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MJMHg1MQkvKiBDVExSIDAgRElNTSAwICovCiAKIC8qIFRoZXNlIGFyZSB1c2VkIHdoZW4gRERSIGRvZXNuJ3QgdXNlIFNQRC4gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJMTI4CQkvKiBERFIgaXMgMTI4TUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQk5EUwkweDAwMDAwMDA3CS8qIDAtMTI4TUIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODAwMDAwMDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDM3MzQ0MzIxCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMAkvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MCQkweGMyMDAwMDAwCS8qIHVuYnVmZmVyZWQsbm8gRFlOX1BXUiAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwNjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA1MjAwMTAwCS8qIGF1dG9jaGFyZ2Usbm8gb3BlbiBwYWdlICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkxMjgJCS8qIEREUiBpcyAxMjhNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUwkweDAwMDAwMDA3CS8qIDAtMTI4TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4MzczNDQzMjEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMAkvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHhjMjAwMDAwMAkvKiB1bmJ1ZmZlcmVkLG5vIERZTl9QV1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwMDAwMDA2MgkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA1MjAwMTAwCS8qIGF1dG9jaGFyZ2Usbm8gb3BlbiBwYWdlICovCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAxNk0gKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZmYwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAxNk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZmMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdCAqLwogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZmMDA2ZmY3CS8qIDE2TUIgRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmMDA2ZmY3CS8qIDE2TUIgRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYgIENGR19SQU1CT09UCisjdW5kZWYgIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogI3VuZGVmIENPTkZJR19DTE9DS1NfSU5fTUhaCiAKQEAgLTE1OCw3ICsxNTgsNyBAQAogCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0xNzAsMTQgKzE3MCwxNCBAQAogICogMCAgICA0ICAgIDggICAgMTIgICAxNiAgIDIwICAgMjQgICAyOAogICogMTExMSAwMDAwIDAwMDAgMDAwMCAwMDAxIDEwMDAgMDExMCAwMDAxID0gZjAwMDE4NjEKICAqCi0gKiBGSVhNRTogQ0ZHX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KKyAqIEZJWE1FOiBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KICAqIEZJWE1FOiB0aGUgdG9wIDE3IGJpdHMgb2YgQlIyLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweGYwMDAxODYxCiAKIC8qCi0gKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ0ZHX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KICAqCiAgKiBGb3IgT1IyLCBuZWVkOgogICogICAgNjRNQiBtYXNrIGZvciBBTSwgT1IyWzA6N10gPSAxMTExIDExMDAKQEAgLTE5MCwxMDMgKzE5MCwxMDMgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNCAgICAvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjUJKDMgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1QzCSgzIDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlczCSgzIDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDMgkoMiA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlVGQ01ECSgxIDw8ICgzMSAtIDI5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1I1CSgzIDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1QzCSgzIDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzMJKDMgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDMgkoMiA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CVUZDTUQJKDEgPDwgKDMxIC0gMjkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTgkoIENGR19MQkNfTFNETVJfQlNNQTE1MTYJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkNSNQkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDMJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXMwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0JMOAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9XUkMyCQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0NMMwkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkVOCQlcCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTgkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1I1CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDMJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzMJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkMyCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JCVwKIAkJCQkpCiAKIC8qCiAgKiBTRFJBTSBDb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gc2VxdWVuY2UuCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfUENIQUxMKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzIJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMwkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTVJXKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzUJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzEJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMgkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzQJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVykKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNQkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMKQogCiAKIC8qCiAgKiAzMktCLCA4LWJpdCB3aWRlIGZvciBBRFMgY29uZmlnIHJlZwogICovCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAgICAgICAgIDB4ZjgwMDA4MDEKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCTB4ZmZmZmUxZjEKLSNkZWZpbmUgQ0ZHX0JDU1IJCShDRkdfQlI0X1BSRUxJTSAmIDB4ZmZmZjgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgICAgICAgICAweGY4MDAwODAxCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMHhmZmZmZTFmMQorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJCShDT05GSUdfU1lTX0JSNF9QUkVMSU0gJiAweGZmZmY4MDAwKQogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEgICAgICAgIChDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgICAgICAgIChDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMjk0LDggKzI5NCw4IEBACiAjZGVmaW5lIENPTkZJR19PRl9CT0FSRF9TRVRVUAkJMQogI2RlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUwkxCiAKLSNkZWZpbmUgQ0ZHXzY0QklUX1ZTUFJJTlRGCTEKLSNkZWZpbmUgQ0ZHXzY0QklUX1NUUlRPVUwJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCTEKIAogLyoKICAqIEkyQwpAQCAtMzAzLDI2ICszMDMsMjYgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgICAgezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAvKiBSYXBpZElPIE1NVSAqLwotI2RlZmluZSBDRkdfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAJLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19SSU9fTUVNX1BIWVMJQ0ZHX1JJT19NRU1fQkFTRQotI2RlZmluZSBDRkdfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fUEhZUwlDT05GSUdfU1lTX1JJT19NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDEyOE0gKi8KIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgc3BhY2UgaXMgbWFwcGVkIDEtMSwgYnV0IEkvTyBzcGFjZSBtdXN0IHN0YXJ0IGZyb20gMC4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDEwMDAwMAkvKiAxTSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogCkBAIC0zMzksNyArMzM5LDcgQEAKICNlbmRpZgogCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTM4MCwyMCArMzgwLDIwIEBACiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLSAgI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogCiAvKgpAQCAtNDEzLDEyICs0MTMsMTQgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9QSU5HCiAjZGVmaW5lIENPTkZJR19DTURfSTJDCiAjZGVmaW5lIENPTkZJR19DTURfRUxGCisjZGVmaW5lIENPTkZJR19DTURfSVJRCisjZGVmaW5lIENPTkZJR19DTURfU0VURVhQUgogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC00MjksMjggKzQzMSwyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDBFVkFMLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEVWQUwuaAppbmRleCBlZTRmNDFmLi40NmExNDFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEVWQUwuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MEVWQUwuaApAQCAtNjYsOSArNjYsOSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9QUkVfSU5JVAkxCSAgICAvKiBDYWxsIGJvYXJkX3ByZV9pbml0CSovCiAKLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJICAgIC8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkgICAgLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19UU0VDX0VORVQpCiAjZXJyb3IgIllvdSBjYW4gb25seSB1c2UgZWl0aGVyIFBDSSBFdGhlcm5ldCBDYXJkIG9yIFRTRUMgRXRoZXJuZXQsIG5vdCBib3RoLiIKQEAgLTc4LDQyICs3OCw0MiBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUgkqLwogCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkyNTYgICAgICAgICAgICAgLyogRERSIGlzIG5vdyAyNTZNQiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkyNTYgICAgICAgICAgICAgLyogRERSIGlzIG5vdyAyNTZNQiAgICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZmMwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGZjMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCiAjZWxzZQotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UgICAgICAweGYwMDAwMDAwICAgICAgLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSAgICAgIDB4ZjAwMDAwMDAgICAgICAvKiBMb2NhbGJ1cyBTRFJBTSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDBNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgME1CCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIDB4ZjgwMDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCAgMTZNICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgICAgICAgICAweGY4MDAxODAxICAgICAgLyogcG9ydCBzaXplIDMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICAweGY4MDAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggIDE2TSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAgICAgICAgIDB4ZjgwMDE4MDEgICAgICAvKiBwb3J0IHNpemUgMzJiaXQgKi8KICNlbHNlIC8qIEJvb3QgZnJvbSByZWFsIEZsYXNoICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmODAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDhNICAgICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZmODAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmY4MDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggOE0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZmODAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdAkqLwogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX09SMF9QUkVMSU0JCTB4ZmY4MDZmNjcJLyogOE1CIEZsYXNoCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmODA2ZjY3CS8qIDhNQiBGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogLyogRERSIFNldHVwICovCkBAIC0xMjcsOCArMTI3LDggQEAKICN1bmRlZiBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQpAQCAtMTQxLDU3ICsxNDEsNTcgQEAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAvKiBsb2NhbCBidXMgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTSAgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0CS8qIGxvY2FsIGJ1cyBmcmVxIGRpdmlkZXIqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkweDI4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMgkJMHgwODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCTB4MDg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkweDE4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNQkJMHg0MDYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZjMDA2OTAxCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQJLyogbG9jYWwgYnVzIGZyZXEgZGl2aWRlciovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkweDI4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCTB4MDg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJMHgwODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkweDE4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCTB4NDA2MWI3MjMKIAogI2lmIGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0gICAgICAgICAgMHhmODAwMDgwMSAgICAgIC8qIDMyS0IsIDgtYml0IHdpZGUgZm9yIEFEUyBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgICAgICAgICAweGY4MDAwODAxICAgICAgLyogMzJLQiwgOC1iaXQgd2lkZSBmb3IgQURTIGNvbmZpZyByZWcgKi8KICNlbHNlCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAgICAgICAgIDB4ZjgwMDA4MDEgICAgICAvKiAzMktCLCA4LWJpdCB3aWRlIGZvciBBRFMgY29uZmlnIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0gICAgICAgICAgMHhmODAwMDgwMSAgICAgIC8qIDMyS0IsIDgtYml0IHdpZGUgZm9yIEFEUyBjb25maWcgcmVnICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gICAgICAgICAgMHhmZmZmZTFmMQotI2RlZmluZSBDRkdfQkNTUiAgICAgICAgICAgICAgICAoQ0ZHX0JSNF9QUkVMSU0gJiAweGZmZmY4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0gICAgICAgICAgMHhmZmZmZTFmMQorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IgICAgICAgICAgICAgICAgKENPTkZJR19TWVNfQlI0X1BSRUxJTSAmIDB4ZmZmZjgwMDApCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAgICAgKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMiAgICAgICAgKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMjAwLDE2ICsyMDAsMTYgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyogR2VuZXJhbCBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19CQVNFICAgICAgICAgMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9QSFlTCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19CQVNFICAgICAgICAgMHhlMjAwMDAwMAogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCkBAIC0yMjIsOCArMjIyLDggQEAKICNkZWZpbmUgUENJX0lEU0VMX05VTUJFUiAgICAgIDB4MGMJLypzbG90MC0+MyhJRFNFTCk9MTItPjE1Ki8KICNlbmRpZgogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAxICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwOAogI2VsaWYgZGVmaW5lZChDT05GSUdfVFNFQ19FTkVUKQogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJKi8KQEAgLTI1NCwyMSArMjU0LDIxIEBACiAjZW5kaWYKIAogLyogRW52aXJvbm1lbnQgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjaWYgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQogI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgxMDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2Vsc2UKLS8qICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxICovCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93CSovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEgKi8JLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5CSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKQEAgLTI3Nyw3ICsyNzcsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMJLyogLTEgZGlzYWJsZSBhdXRvYm9vdCAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyoKQEAgLTMwMSw3ICszMDEsNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkgfHwgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKSB8fCBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAgICAgI3VuZGVmIENPTkZJR19DTURfTE9BRFMKICNlbmRpZgpAQCAtMzEyLDI1ICszMTIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAweDIwMDAwMDAgICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiTVBDODU0MEVWQUw9PiAiLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgMHgyMDAwMDAwICAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJNUEM4NTQwRVZBTD0+ICIvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDFDRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTQxQ0RTLmgKaW5kZXggNmE0MDBmNS4uZWVkZTI2YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDFDRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0MUNEUy5oCkBAIC02NCwxNyArNjQsMTcgQEAKICNkZWZpbmUgQ09ORklHX0JUQgkJCSAgICAvKiB0b2dnbGUgYnJhbmNoIHByZWRpdGlvbiAqLwogI2RlZmluZSBDT05GSUdfQUREUl9TVFJFQU1JTkcJCSAgICAvKiB0b2dnbGUgYWRkciBzdHJlYW1pbmcgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjEKQEAgLTg0LDggKzg0LDggQEAKIAogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQogI2RlZmluZSBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUgkxCkBAIC0xMzcsMzcgKzEzNywzNyBAQAogICogMTExMSAxMTExIDEwMDAgMDAwMCAwMTEwIDExMTAgMDExMCAwMTAxID0gZmY4MDZlNjUgICAgT1J4CiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCA4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggOE0gKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZjgwMTAwMQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmZjAwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmY4MDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGZmMDAxMDAxCiAKLSNkZWZpbmUJQ0ZHX09SMF9QUkVMSU0JCTB4ZmY4MDZlNjUKLSNkZWZpbmUJQ0ZHX09SMV9QUkVMSU0JCTB4ZmY4MDZlNjUKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmODA2ZTY1CisjZGVmaW5lCUNPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmZjgwNmU2NQogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsweGZmODAwMDAwLCBDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7MHhmZjgwMDAwMCwgQ09ORklHX1NZU19GTEFTSF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAogLyoKICAqIEJhc2UgUmVnaXN0ZXIgMiBhbmQgT3B0aW9uIFJlZ2lzdGVyIDIgY29uZmlndXJlIFNEUkFNLgotICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgorICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KICAqCiAgKiBGb3IgQlIyLCBuZWVkOgogICogICAgQmFzZSBhZGRyZXNzIG9mIDB4ZjAwMDAwMDAgPSBCUlswOjE2XSA9IDExMTEgMDAwMCAwMDAwIDAwMDAgMApAQCAtMTc5LDE0ICsxNzksMTQgQEAKICAqIDAgICAgNCAgICA4ICAgIDEyICAgMTYgICAyMCAgIDI0ICAgMjgKICAqIDExMTEgMDAwMCAwMDAwIDAwMDAgMDAwMSAxMDAwIDAxMTAgMDAwMSA9IGYwMDAxODYxCiAgKgotICogRklYTUU6IENGR19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCisgKiBGSVhNRTogQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSBzaG91bGQgYmUgbWFza2VkIGFuZCBPUidlZCBpbnRvCiAgKiBGSVhNRTogdGhlIHRvcCAxNyBiaXRzIG9mIEJSMi4KICAqLwogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAgICAgICAgIDB4ZjAwMDE4NjEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAgICAgICAgIDB4ZjAwMDE4NjEKIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjIsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMApAQCAtMTk5LDM1ICsxOTksMzUgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDAwMDAwMDAwICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwICAgIC8qIExCIGNvbmZpZyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgwMDAwMDAwMCAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KIAogLyoKICAqIExTRE1SIG1hc2tzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1NSRlJTSAkoMiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUENIQUxMCSg1IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQogCiAvKgogICogQ29tbW9uIHNldHRpbmdzIGZvciBhbGwgTG9jYWwgQnVzIFNEUkFNIGNvbW1hbmRzLgpAQCAtMjM1LDEzICsyMzUsMTMgQEAKICAqICAgICAgICAgICAgICAgICAgb3IgQlNNQTE2MTcgKGZvciBDUFUgMS4wKSAob2xkKQogICogaXMgT1InZWQgaW4gdG9vLgogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ09NTU9OCSggQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CVwKLQkJCQl8IENGR19MQkNfTFNETVJfQUNUVE9SVzcJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CTDgJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfV1JDNAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9DTDMJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUkZFTgkJXAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04JKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSMTYJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0NMMwkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkJXAogCQkJCSkKIAogLyoKQEAgLTI3NywzOSArMjc3LDM5IEBACiAjZGVmaW5lIENPTkZJR19GU0xfQ0FETVVTCiAKICNkZWZpbmUgQ0FETVVTX0JBU0VfQUREUiAweGY4MDAwMDAwCi0jZGVmaW5lIENGR19CUjNfUFJFTElNICAgMHhmODAwMDgwMQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTSAgIDB4ZmZmMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNICAgMHhmODAwMDgwMQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0gICAweGZmZjAwZmY3CiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDIKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFICAgIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAgICAgKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMiAgICAgICAgKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zMTcsOCArMzE3LDggQEAKICNkZWZpbmUgQ09ORklHX09GX0JPQVJEX1NFVFVQCQkxCiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0zMjYsMzUgKzMyNiwzNSBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUyAgICAgICAgezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfSURfRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0NDSUQKLSNkZWZpbmUgQ0ZHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSICAgICAweDU3Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0NDSUQKKyNkZWZpbmUgQ09ORklHX1NZU19JRF9FRVBST00KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIKIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgc3BhY2UgaXMgbWFwcGVkIDEtMSwgYnV0IEkvTyBzcGFjZSBtdXN0IHN0YXJ0IGZyb20gMC4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDEwMDAwMAkvKiAxTSAqLwogCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4ZTIxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUwkweGUyMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19TSVpFCTB4MTAwMDAwCS8qIDFNICovCiAKICNpZmRlZiBDT05GSUdfTEVHQUNZCiAjZGVmaW5lIEJSSURHRV9JRCAxNwpAQCAtMzc0LDcgKzM3NCw3IEBACiAjdW5kZWYgQ09ORklHX1RVTElQCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtNDA2LDEyICs0MDYsMTIgQEAKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQzMSw2ICs0MzEsOCBAQAogI2RlZmluZSBDT05GSUdfQ01EX0kyQwogI2RlZmluZSBDT05GSUdfQ01EX01JSQogI2RlZmluZSBDT05GSUdfQ01EX0VMRgorI2RlZmluZSBDT05GSUdfQ01EX0lSUQorI2RlZmluZSBDT05GSUdfQ01EX1NFVEVYUFIKIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKICAgICAjZGVmaW5lIENPTkZJR19DTURfUENJCkBAIC00NDIsMjYgKzQ0NCwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTQ0RFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTQ0RFMuaAppbmRleCBiNjUwODc0Li4wOTg3NDQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0NERTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NDREUy5oCkBAIC03MiwyMyArNzIsMjMgQEAKICAqLwogI2RlZmluZSBDT05GSUdfRU5BQkxFXzM2QklUX1BIWVMJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAjZGVmaW5lIENPTkZJR19QQU5JQ19IQU5HCS8qIGRvIG5vdCByZXNldCBib2FyZCBvbiBwYW5pYyAqLwogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCi0jZGVmaW5lIENGR19QQ0kxX0FERFIJCShDRkdfQ0NTUkJBUisweDgwMDApCi0jZGVmaW5lIENGR19QQ0lFMV9BRERSCQkoQ0ZHX0NDU1JCQVIrMHhhMDAwKQotI2RlZmluZSBDRkdfUENJRTJfQUREUgkJKENGR19DQ1NSQkFSKzB4OTAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUzX0FERFIJCShDRkdfQ0NTUkJBUisweGIwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9BRERSCQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4ODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9BRERSCQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4YTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9BRERSCQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19BRERSCQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4YjAwMCkKIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMgpAQCAtOTksOCArOTksOCBAQAogI3VuZGVmIENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQ09OVFJPTExFUgkvKiBERFIgY29udHJvbGxlciBvciBETUE/ICovCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19WRVJZX0JJR19SQU0KIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCkBAIC0xNDUsMzkgKzE0NSwzOSBAQAogLyoKICAqIExvY2FsIEJ1cyBEZWZpbml0aW9ucwogICovCi0jZGVmaW5lIENGR19CT09UX0JMT0NLCQkweGZjMDAwMDAwCS8qIGJvb3QgVExCICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CTE9DSwkJMHhmYzAwMDAwMAkvKiBib290IFRMQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmODAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDhNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjgwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCA4TSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZmODAxMDAxCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweGZlODAxMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhmZjgwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZmU4MDEwMDEKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmZjgwNmU2NQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhmZjgwNmU2NQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmY4MDZlNjUKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGZmODA2ZTY1CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJe0NGR19GTEFTSF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJe0NPTkZJR19TWVNfRkxBU0hfQkFTRX0KIAotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfU0hPV19QUk9HUkVTUyA0NSAvKiBjb3VudCBkb3duIGZyb20gNDUvNTogOS4uMSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCi0jZGVmaW5lIENGR19MQkNfTk9OQ0FDSEVfQkFTRQkweGY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX05PTkNBQ0hFX0JBU0UJMHhmODAwMDAwMAogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweGY4MjAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdCAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmZmYwNmZmNwkvKiAxTUIgQ29tcGFjdCBGbGFzaCBhcmVhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweGY4MjAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmZmMDZmZjcJLyogMU1CIENvbXBhY3QgRmxhc2ggYXJlYSovCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4ZjgxMDA4MDEJLyogcG9ydCBzaXplIDhiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4ZmZmMDZmZjcJLyogMU1CIFBJWElTIGFyZWEqLworI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4ZjgxMDA4MDEJLyogcG9ydCBzaXplIDhiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZmZjA2ZmY3CS8qIDFNQiBQSVhJUyBhcmVhKi8KIAogI2RlZmluZSBDT05GSUdfRlNMX1BJWElTCTEJLyogdXNlIGNvbW1vbiBQSVhJUyBjb2RlICovCiAjZGVmaW5lIFBJWElTX0JBU0UJMHhmODEwMDAwMAkvKiBQSVhJUyByZWdpc3RlcnMgKi8KQEAgLTE5NywyNiArMTk3LDI4IEBACiAjZGVmaW5lIFBJWElTX1ZDTEtICQkweDE5CS8qIFZFTEEgVkNMS0ggcmVnaXN0ZXIgKi8KICNkZWZpbmUgUElYSVNfVkNMS0wJCTB4MUEJLyogVkVMQSBWQ0xLTCByZWdpc3RlciAqLwogI2RlZmluZSBQSVhJU19WU1BFRUQyCQkweDFkCS8qIFZFTEEgVlNwZWVkIDIgKi8KLSNkZWZpbmUgQ0ZHX1BJWElTX1ZCT09UX01BU0sJMHg0MCAgICAvKiBSZXNldCBhbHRiYW5rIG1hc2sqLworI2RlZmluZSBDT05GSUdfU1lTX1BJWElTX1ZCT09UX01BU0sJMHg0MCAgICAvKiBSZXNldCBhbHRiYW5rIG1hc2sqLwogI2RlZmluZSBQSVhJU19WU1BFRUQyX1RTRUMxU0VSCTB4MgogI2RlZmluZSBQSVhJU19WU1BFRUQyX1RTRUMzU0VSCTB4MQogI2RlZmluZSBQSVhJU19WQ0ZHRU4xX1RTRUMxU0VSCTB4MjAKICNkZWZpbmUgUElYSVNfVkNGR0VOMV9UU0VDM1NFUgkweDQwCisjZGVmaW5lIFBJWElTX1ZTUEVFRDJfTUFTSwkoUElYSVNfVlNQRUVEMl9UU0VDMVNFUnxQSVhJU19WU1BFRUQyX1RTRUMzU0VSKQorI2RlZmluZSBQSVhJU19WQ0ZHRU4xX01BU0sJKFBJWElTX1ZDRkdFTjFfVFNFQzFTRVJ8UElYSVNfVkNGR0VOMV9UU0VDM1NFUikKIAogCiAvKiBkZWZpbmUgdG8gdXNlIEwxIGFzIGluaXRpYWwgc3RhY2sgKi8KICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLICAgICAgMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgIDB4ZjQwMTAwMDAgICAgICAvKiBJbml0aWFsIEwxIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgICAweDAwMDA0MDAwICAgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAweGY0MDEwMDAwICAgICAgLyogSW5pdGlhbCBMMSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgIDB4MDAwMDQwMDAgICAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0IC0gY29udHJvbGxlZCBvbiBib2FyZCB3aXRoIGp1bXBlciBKOAogICogb3BlbiAtIGluZGV4IDIKQEAgLTIyNCwyMSArMjI2LDIxIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0yNDYsNzIgKzI0OCw3MiBAQAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAJCTEKICNkZWZpbmUgQ09ORklHX09GX1NURE9VVF9WSUFfQUxJQVMJMQogCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCQkxCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkJMQogCiAvKiBJMkMgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMxMDAKIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgc3BhY2UgaXMgbWFwcGVkIDEtMSwgYnV0IEkvTyBzcGFjZSBtdXN0IHN0YXJ0IGZyb20gMC4KICAqLwotI2RlZmluZSBDRkdfUENJRV9QSFlTCQkweDgwMDAwMDAwCS8qIDFHIFBDSUUgVExCICovCi0jZGVmaW5lIENGR19QQ0lfUEhZUwkJMHhjMDAwMDAwMAkvKiA1MTJNIFBDSSBUTEIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX1BIWVMJCTB4ODAwMDAwMDAJLyogMUcgUENJRSBUTEIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUEhZUwkJMHhjMDAwMDAwMAkvKiA1MTJNIFBDSSBUTEIgKi8KIAotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweGMwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUxMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhlMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDAwMDEwMDAwCS8qIDY0ayAqLwogCiAvKiBQQ0kgdmlldyBvZiBTeXN0ZW0gTWVtb3J5ICovCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAogCiAvKiBjb250cm9sbGVyIDIsIFNsb3QgMSwgdGd0aWQgMSwgQmFzZSBhZGRyZXNzIDkwMDAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUUyX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX01FTV9QSFlTCUNGR19QQ0lFMl9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJRTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0lFMl9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX1BIWVMJMHhlMTAxMDAwMAotI2RlZmluZSBDRkdfUENJRTJfSU9fU0laRQkweDAwMDEwMDAwCS8qIDY0ayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSUUyX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfSU9fUEhZUwkweGUxMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfSU9fU0laRQkweDAwMDEwMDAwCS8qIDY0ayAqLwogCiAvKiBjb250cm9sbGVyIDEsIFNsb3QgMix0Z3RpZCAyLCBCYXNlIGFkZHJlc3MgYTAwMCAqLwotI2RlZmluZSBDRkdfUENJRTFfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfTUVNX1BIWVMJQ0ZHX1BDSUUxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fUEhZUwkweGUxMDIwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTCTB4ZTEwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFCTB4MDAwMTAwMDAJLyogNjRrICovCiAKIC8qIGNvbnRyb2xsZXIgMywgZGlyZWN0IHRvIHVsaSwgdGd0aWQgMywgQmFzZSBhZGRyZXNzIGIwMDAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUUzX01FTV9CQVNFCTB4YjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUzX01FTV9QSFlTCUNGR19QQ0lFM19NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJRTNfTUVNX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwotI2RlZmluZSBDRkdfUENJRTNfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFM19JT19QSFlTCTB4YjAxMDAwMDAJLyogcmV1c2UgbWVtIExBVyAqLwotI2RlZmluZSBDRkdfUENJRTNfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCi0jZGVmaW5lIENGR19QQ0lFM19NRU1fQkFTRTIJMHhiMDIwMDAwMAotI2RlZmluZSBDRkdfUENJRTNfTUVNX1BIWVMyCUNGR19QQ0lFM19NRU1fQkFTRTIKLSNkZWZpbmUgQ0ZHX1BDSUUzX01FTV9TSVpFMgkweDAwMjAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UJMHhiMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTNfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19NRU1fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfSU9fUEhZUwkweGIwMTAwMDAwCS8qIHJldXNlIG1lbSBMQVcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRTIJMHhiMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9QSFlTMglDT05GSUdfU1lTX1BDSUUzX01FTV9CQVNFMgorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9TSVpFMgkweDAwMjAwMDAwCS8qIDFNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKIC8qUENJRSB2aWRlbyBjYXJkIHVzZWQqLwotI2RlZmluZSBWSURFT19JT19PRkZTRVQJCUNGR19QQ0lFMl9JT19QSFlTCisjZGVmaW5lIFZJREVPX0lPX09GRlNFVAkJQ09ORklHX1NZU19QQ0lFMl9JT19QSFlTCiAKIC8qUENJIHZpZGVvIGNhcmQgdXNlZCovCi0vKiNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCUNGR19QQ0kxX0lPX1BIWVMqLworLyojZGVmaW5lIFZJREVPX0lPX09GRlNFVAlDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyovCiAKIC8qIHZpZGVvICovCiAjZGVmaW5lIENPTkZJR19WSURFTwpAQCAtMzI0LDcgKzMyNiw3IEBACiAjZGVmaW5lIENPTkZJR19BVElfUkFERU9OX0ZCCiAjZGVmaW5lIENPTkZJR19WSURFT19MT0dPCiAvKiNkZWZpbmUgQ09ORklHX0NPTlNPTEVfQ1VSU09SKi8KLSNkZWZpbmUgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgVklERU9fSU9fT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyBWSURFT19JT19PRkZTRVQKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkKQEAgLTM0MSw4ICszNDMsOCBAQAogI2VuZGlmCiAKICNpZm5kZWYgQ09ORklHX1BDSV9QTlAKLQkjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJQ0ZHX1BDSTFfSU9fQkFTRQotCSNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJQ0ZHX1BDSTFfSU9fQkFTRQorCSNkZWZpbmUgUENJX0VORVQwX0lPQUREUglDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQorCSNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UKIAkjZGVmaW5lIFBDSV9JRFNFTF9OVU1CRVIJMHgxMQkvKiBJRFNFTCA9IEFEMTEgKi8KICNlbmRpZgogCkBAIC0zNTIsMTAgKzM1NCwxMCBAQAogCiAjaWZkZWYgQ09ORklHX1NDU0lfQUhDSQogI2RlZmluZSBDT05GSUdfU0FUQV9VTEk1Mjg4Ci0jZGVmaW5lIENGR19TQ1NJX01BWF9TQ1NJX0lECTQKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0xVTgkxCi0jZGVmaW5lIENGR19TQ1NJX01BWF9ERVZJQ0UJKENGR19TQ1NJX01BWF9TQ1NJX0lEICogQ0ZHX1NDU0lfTUFYX0xVTikKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYREVWSUNFCUNGR19TQ1NJX01BWF9ERVZJQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lECTQKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9MVU4JMQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQkoQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lEICogQ09ORklHX1NZU19TQ1NJX01BWF9MVU4pCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhERVZJQ0UJQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UKICNlbmRpZiAvKiBTQ1NDSSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwpAQCAtMzc0LDYgKzM3Niw3IEBACiAjZGVmaW5lIENPTkZJR19UU0VDMwkxCiAjZGVmaW5lIENPTkZJR19UU0VDM19OQU1FCSJlVFNFQzMiCiAKKyNkZWZpbmUgQ09ORklHX1BJWElTX1NHTUlJX0NNRAogI2RlZmluZSBDT05GSUdfRlNMX1NHTUlJX1JJU0VSCTEKICNkZWZpbmUgU0dNSUlfUklTRVJfUEhZX09GRlNFVAkweDFjCiAKQEAgLTM5NSwxNiArMzk4LDE2IEBACiAgKiBFbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2lmIENGR19NT05JVE9SX0JBU0UgPiAweGZmZjgwMDAwCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPiAweGZmZjgwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhmZmY4MDAwMAogI2Vsc2UKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NzAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg3MDAwMCkKICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIDY0SyAob25lIHNlY3RvcikgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDI0LDYgKzQyNyw4IEBACiAjZGVmaW5lIENPTkZJR19DTURfSTJDCiAjZGVmaW5lIENPTkZJR19DTURfTUlJCiAjZGVmaW5lIENPTkZJR19DTURfRUxGCisjZGVmaW5lIENPTkZJR19DTURfSVJRCisjZGVmaW5lIENPTkZJR19DTURfU0VURVhQUgogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKQEAgLTQzOSwyNiArNDQ0LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBDb21tYW5kLWxpbmUgZWRpdGluZyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDhDRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTQ4Q0RTLmgKaW5kZXggNjhiYzEwNi4uODkyYzUyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg1NDhDRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU0OENEUy5oCkBAIC03NiwyMSArNzYsMjEgQEAKICAqLwogI2RlZmluZSBDT05GSUdfRU5BQkxFXzM2QklUX1BIWVMJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkoQ0ZHX0NDU1JCQVIrMHg4MDAwKQotI2RlZmluZSBDRkdfUENJMl9BRERSCShDRkdfQ0NTUkJBUisweDkwMDApCi0jZGVmaW5lIENGR19QQ0lFMV9BRERSCShDRkdfQ0NTUkJBUisweGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfQUREUgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHhhMDAwKQogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIyCkBAIC0xMDIsOCArMTAyLDggQEAKICN1bmRlZiBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCiAjZGVmaW5lIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCTEKQEAgLTE1Myw0MyArMTUzLDQzIEBACiAgKiAxMTExIDExMTEgMTAwMCAwMDAwIDAxMTAgMTExMCAwMTEwIDAxMDEgPSBmZjgwNmU2NQkgT1J4CiAgKi8KIAotI2RlZmluZSBDRkdfQk9PVF9CTE9DSwkJMHhmZjAwMDAwMAkvKiBib290IFRMQiBibG9jayAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0JPT1RfQkxPQ0sJLyogc3RhcnQgb2YgRkxBU0ggMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CTE9DSwkJMHhmZjAwMDAwMAkvKiBib290IFRMQiBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQk9PVF9CTE9DSwkvKiBzdGFydCBvZiBGTEFTSCAxNk0gKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZjgwMTAwMQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmZjAwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmY4MDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGZmMDAxMDAxCiAKLSNkZWZpbmUJQ0ZHX09SMF9QUkVMSU0JCTB4ZmY4MDZlNjUKLSNkZWZpbmUJQ0ZHX09SMV9QUkVMSU0JCTB4ZmY4MDZlNjUKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmODA2ZTY1CisjZGVmaW5lCUNPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmZjgwNmU2NQogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsweGZmODAwMDAwLCBDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7MHhmZjgwMDAwMCwgQ09ORklHX1NZU19GTEFTSF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAKIC8qCiAgKiBTRFJBTSBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19DQUNIRV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19MQkNfQ0FDSEVfU0laRQk2NAotI2RlZmluZSBDRkdfTEJDX05PTkNBQ0hFX0JBU0UJMHhmODAwMDAwMAkvKiBMb2NhbGJ1cyBub24tY2FjaGVhYmxlICovCi0jZGVmaW5lIENGR19MQkNfTk9OQ0FDSEVfU0laRQk2NAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19DQUNIRV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgY2FjaGVhYmxlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0NBQ0hFX1NJWkUJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTk9OQ0FDSEVfQkFTRQkweGY4MDAwMDAwCS8qIExvY2FsYnVzIG5vbi1jYWNoZWFibGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTk9OQ0FDSEVfU0laRQk2NAogCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQlDRkdfTEJDX0NBQ0hFX0JBU0UJLyogTG9jYWxidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCUNPTkZJR19TWVNfTEJDX0NBQ0hFX0JBU0UJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KIAogLyoKICAqIEJhc2UgUmVnaXN0ZXIgMiBhbmQgT3B0aW9uIFJlZ2lzdGVyIDIgY29uZmlndXJlIFNEUkFNLgotICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ0ZHX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgorICogVGhlIFNEUkFNIGJhc2UgYWRkcmVzcywgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KICAqCiAgKiBGb3IgQlIyLCBuZWVkOgogICogICAgQmFzZSBhZGRyZXNzIG9mIDB4ZjAwMDAwMDAgPSBCUlswOjE2XSA9IDExMTEgMDAwMCAwMDAwIDAwMDAgMApAQCAtMjAxLDE0ICsyMDEsMTQgQEAKICAqIDAJNCAgICA4CSAgMTIgICAxNiAgIDIwCSAyNCAgIDI4CiAgKiAxMTExIDAwMDAgMDAwMCAwMDAwIDAwMDEgMTAwMCAwMTEwIDAwMDEgPSBmMDAwMTg2MQogICoKLSAqIEZJWE1FOiBDRkdfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bworICogRklYTUU6IENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bwogICogRklYTUU6IHRoZSB0b3AgMTcgYml0cyBvZiBCUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhmMDAwMTg2MQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEKIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjIsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMApAQCAtMjIxLDM1ICsyMjEsMzUgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQJLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAkvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MDAwMDAwMDAJLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNAkvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAkvKiBMQiBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAJLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgwMDAwMDAwMAkvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKIC8qCiAgKiBDb21tb24gc2V0dGluZ3MgZm9yIGFsbCBMb2NhbCBCdXMgU0RSQU0gY29tbWFuZHMuCkBAIC0yNTcsMTMgKzI1NywxMyBAQAogICoJCSAgICBvciBCU01BMTYxNyAoZm9yIENQVSAxLjApIChvbGQpCiAgKiBpcyBPUidlZCBpbiB0b28uCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04JKCBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0JMOAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9XUkM0CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0NMMwkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkVOCQlcCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTgkoIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCQlcCiAJCQkJKQogCiAvKgpAQCAtMjk5LDQxICsyOTksNDEgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9DQURNVVMKIAogI2RlZmluZSBDQURNVVNfQkFTRV9BRERSIDB4ZjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JIDB4ZjgwMDA4MDEKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JIDB4ZmZmMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSAweGY4MDAwODAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkgMHhmZmYwMGZmNwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfTDJfQUREUgkweGY4ZjgwMDAwCS8qIHJlbG9jYXRlIGJvb3QgTDJTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9MMl9BRERSCTB4ZjhmODAwMDAJLyogcmVsb2NhdGUgYm9vdCBMMlNSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMgogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zNDEsOCArMzQxLDggQEAKICNkZWZpbmUgQ09ORklHX09GX0JPQVJEX1NFVFVQCQkxCiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0zNTAsNTUgKzM1MCw1NSBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qIEVFUFJPTSAqLwogI2RlZmluZSBDT05GSUdfSURfRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0NDSUQKLSNkZWZpbmUgQ0ZHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSICAgICAweDU3Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0NDSUQKKyNkZWZpbmUgQ09ORklHX1NZU19JRF9FRVBST00KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIKIAogLyoKICAqIEdlbmVyYWwgUENJCiAgKiBNZW1vcnkgc3BhY2UgaXMgbWFwcGVkIDEtMSwgYnV0IEkvTyBzcGFjZSBtdXN0IHN0YXJ0IGZyb20gMC4KICAqLwotI2RlZmluZSBDRkdfUENJX1BIWVMJCTB4ODAwMDAwMDAJLyogMUcgUENJIFRMQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QSFlTCQkweDgwMDAwMDAwCS8qIDFHIFBDSSBUTEIgKi8KIAotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogI2lmZGVmIENPTkZJR19QQ0kyCi0jZGVmaW5lIENGR19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1BIWVMJQ0ZHX1BDSTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19QSFlTCTB4ZTI4MDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19QSFlTCTB4ZTI4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUENJRTEKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9QSFlTCUNGR19QQ0lFMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJRTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0lFMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1BIWVMJMHhlMzAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fU0laRQkweDAwMTAwMDAwCS8qICAgMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMJMHhlMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAgIDFNICovCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19SSU8KIC8qCiAgKiBSYXBpZElPIE1NVQogICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfTEVHQUNZCkBAIC00MjAsOSArNDIwLDkgQEAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCiAKQEAgLTQ2NywxMiArNDY3LDEyIEBACiAgKiBFbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIDI1Nksob25lIHNlY3RvcikgZm9yIGVudiAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC00OTIsNiArNDkyLDggQEAKICNkZWZpbmUgQ09ORklHX0NNRF9JMkMKICNkZWZpbmUgQ09ORklHX0NNRF9NSUkKICNkZWZpbmUgQ09ORklHX0NNRF9FTEYKKyNkZWZpbmUgQ09ORklHX0NNRF9JUlEKKyNkZWZpbmUgQ09ORklHX0NNRF9TRVRFWFBSCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQpAQCAtNTAzLDI2ICs1MDUsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIENvbW1hbmQtbGluZSBlZGl0aW5nICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU1NUNEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NTVDRFMuaAppbmRleCBhYjRiYzg2Li40MTg3MGYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU1NUNEUy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTU1Q0RTLmgKQEAgLTY0LDE3ICs2NCwxNyBAQAogI2RlZmluZSBDT05GSUdfQlRCCQkJICAgIC8qIHRvZ2dsZSBicmFuY2ggcHJlZGl0aW9uICovCiAjZGVmaW5lIENPTkZJR19BRERSX1NUUkVBTUlORwkJICAgIC8qIHRvZ2dsZSBhZGRyIHN0cmVhbWluZyAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIgKi8KIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMQpAQCAtODQsOCArODQsOCBAQAogCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCiAjZGVmaW5lIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCTEKQEAgLTEzNSwzNyArMTM1LDM3IEBACiAgKiAxMTExIDExMTEgMTAwMCAwMDAwIDAxMTAgMTExMCAwMTEwIDAxMDEgPSBmZjgwNmU2NSAgICBPUngKICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDhNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCA4TSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZmODAxMDAxCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweGZmMDAxMDAxCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhmZjgwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZmYwMDEwMDEKIAotI2RlZmluZQlDRkdfT1IwX1BSRUxJTQkJMHhmZjgwNmU2NQotI2RlZmluZQlDRkdfT1IxX1BSRUxJTQkJMHhmZjgwNmU2NQorI2RlZmluZQlDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmY4MDZlNjUKKyNkZWZpbmUJQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGZmODA2ZTY1CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJezB4ZmY4MDAwMDAsIENGR19GTEFTSF9CQVNFfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsweGZmODAwMDAwLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKIAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLwogCiAvKgogICogQmFzZSBSZWdpc3RlciAyIGFuZCBPcHRpb24gUmVnaXN0ZXIgMiBjb25maWd1cmUgU0RSQU0uCi0gKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDRkdfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCisgKiBUaGUgU0RSQU0gYmFzZSBhZGRyZXNzLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFLCBpcyAweGYwMDAwMDAwLgogICoKICAqIEZvciBCUjIsIG5lZWQ6CiAgKiAgICBCYXNlIGFkZHJlc3Mgb2YgMHhmMDAwMDAwMCA9IEJSWzA6MTZdID0gMTExMSAwMDAwIDAwMDAgMDAwMCAwCkBAIC0xNzcsMTQgKzE3NywxNCBAQAogICogMCAgICA0ICAgIDggICAgMTIgICAxNiAgIDIwICAgMjQgICAyOAogICogMTExMSAwMDAwIDAwMDAgMDAwMCAwMDAxIDEwMDAgMDExMCAwMDAxID0gZjAwMDE4NjEKICAqCi0gKiBGSVhNRTogQ0ZHX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KKyAqIEZJWE1FOiBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFIHNob3VsZCBiZSBtYXNrZWQgYW5kIE9SJ2VkIGludG8KICAqIEZJWE1FOiB0aGUgdG9wIDE3IGJpdHMgb2YgQlIyLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0gICAgICAgICAgMHhmMDAwMTg2MQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0gICAgICAgICAgMHhmMDAwMTg2MQogCiAvKgotICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENGR19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCisgKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRSwgaXMgNjQuCiAgKgogICogRm9yIE9SMiwgbmVlZDoKICAqICAgIDY0TUIgbWFzayBmb3IgQU0sIE9SMlswOjddID0gMTExMSAxMTAwCkBAIC0xOTcsMzUgKzE5NywzNSBAQAogICogMTExMSAxMTAwIDAwMDAgMDAwMCAwMTEwIDEwMDEgMDAwMCAwMDAxID0gZmMwMDY5MDEKICAqLwogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweGZjMDA2OTAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQogCi0jZGVmaW5lIENGR19MQkNfTENSUgkJMHgwMDAzMDAwNCAgICAvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDAwMDAwICAgIC8qIExCIGNvbmZpZyByZWcgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCQkweDIwMDAwMDAwICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MDAwMDAwMDAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCQkweDIwMDAwMDAwICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCQkweDAwMDAwMDAwICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKIC8qCiAgKiBDb21tb24gc2V0dGluZ3MgZm9yIGFsbCBMb2NhbCBCdXMgU0RSQU0gY29tbWFuZHMuCkBAIC0yMzMsMTMgKzIzMywxMyBAQAogICogICAgICAgICAgICAgICAgICBvciBCU01BMTYxNyAoZm9yIENQVSAxLjApIChvbGQpCiAgKiBpcyBPUidlZCBpbiB0b28uCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04JKCBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0JMOAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9XUkM0CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0NMMwkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkVOCQlcCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTgkoIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCQlcCiAJCQkJKQogCiAvKgpAQCAtMjc1LDM5ICsyNzUsMzkgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9DQURNVVMKIAogI2RlZmluZSBDQURNVVNfQkFTRV9BRERSIDB4ZjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0gICAweGY4MDAwODAxCi0jZGVmaW5lIENGR19PUjNfUFJFTElNICAgMHhmZmYwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0gICAweGY4MDAwODAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTSAgIDB4ZmZmMDBmZjcKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMgogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgICAgMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTMxNSw4ICszMTUsOCBAQAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAJCTEKICNkZWZpbmUgQ09ORklHX09GX1NURE9VVF9WSUFfQUxJQVMJMQogCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkxCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAkxCiAKIC8qCiAgKiBJMkMKQEAgLTMyNCwzNSArMzI0LDM1IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyogRUVQUk9NICovCiAjZGVmaW5lIENPTkZJR19JRF9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQ0NJRAotI2RlZmluZSBDRkdfSURfRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIgICAgIDB4NTcKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQ0NJRAorI2RlZmluZSBDT05GSUdfU1lTX0lEX0VFUFJPTQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAgICAgMHg1NworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAotI2RlZmluZSBDRkdfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX01FTV9QSFlTCUNGR19QQ0kyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fUEhZUwkweGUyMTAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUwkweGUyMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogI2lmZGVmIENPTkZJR19MRUdBQ1kKICNkZWZpbmUgQlJJREdFX0lEIDE3CkBAIC0zNzIsNyArMzcyLDcgQEAKICN1bmRlZiBDT05GSUdfVFVMSVAKIAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtNDA0LDEyICs0MDQsMTIgQEAKICAqIEVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTQyOSw2ICs0MjksOCBAQAogI2RlZmluZSBDT05GSUdfQ01EX0kyQwogI2RlZmluZSBDT05GSUdfQ01EX01JSQogI2RlZmluZSBDT05GSUdfQ01EX0VMRgorI2RlZmluZSBDT05GSUdfQ01EX0lSUQorI2RlZmluZSBDT05GSUdfQ01EX1NFVEVYUFIKIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKICAgICAjZGVmaW5lIENPTkZJR19DTURfUENJCkBAIC00NDAsMjYgKzQ0MiwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTYwQURTLmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU2MEFEUy5oCmluZGV4IDJiZDg3MjQuLjBkM2E1MDAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTYwQURTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NjBBRFMuaApAQCAtNzQsMjAgKzc0LDIwIEBACiAjZGVmaW5lIENPTkZJR19CVEIJCQkvKiB0b2dnbGUgYnJhbmNoIHByZWRpdGlvbiAqLwogI2RlZmluZSBDT05GSUdfQUREUl9TVFJFQU1JTkcJCS8qIHRvZ2dsZSBhZGRyIHN0cmVhbWluZyAqLwogCi0jZGVmaW5lIENGR19JTklUX0RCQ1IgREJDUl9JRE0JCS8qIEVuYWJsZSBEZWJ1ZyBFeGNlcHRpb25zICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQkNSIERCQ1JfSURNCQkvKiBFbmFibGUgRGVidWcgRXhjZXB0aW9ucyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIxCkBAIC05Nyw4ICs5Nyw4IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTA4LDQyICsxMDgsNDIgQEAKICNkZWZpbmUgU1BEX0VFUFJPTV9BRERSRVNTCTB4NTEJLyogQ1RMUiAwIERJTU0gMCAqLwogCiAvKiBUaGVzZSBhcmUgdXNlZCB3aGVuIEREUiBkb2Vzbid0IHVzZSBTUEQuICAqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkxMjgJCS8qIEREUiBpcyAxMjhNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDcJLyogMC0xMjhNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAwMDAwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzczNDQzMjEKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDAwMDAwODAwCS8qIFA5LTQ1LG1heSBuZWVkIHR1bmluZyAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCi0jZGVmaW5lIENGR19ERFJfTU9ERQkJMHgwMDAwMDA2MgkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSAqLwotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDUyMDAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCTEyOAkJLyogRERSIGlzIDEyOE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMDcJLyogMC0xMjhNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCTB4ODAwMDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzEJMHgzNzM0NDMyMQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkweDAwMDAwODAwCS8qIFA5LTQ1LG1heSBuZWVkIHR1bmluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MCQkweGMyMDAwMDAwCS8qIHVuYnVmZmVyZWQsbm8gRFlOX1BXUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkweDAwMDAwMDYyCS8qIERMTCxub3JtYWwsc2VxLDQvMi41ICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDUyMDAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KIAogLyoKICAqIFNEUkFNIG9uIHRoZSBMb2NhbCBCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDE2TSAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZjAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmYwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0ICovCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4ZmYwMDZmZjcJLyogMTZNQiBGbGFzaCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmYwMDZmZjcJLyogMTZNQiBGbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyN1bmRlZiAgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKIApAQCAtMTU0LDcgKzE1NCw3IEBACiAKIC8qCiAgKiBCYXNlIFJlZ2lzdGVyIDIgYW5kIE9wdGlvbiBSZWdpc3RlciAyIGNvbmZpZ3VyZSBTRFJBTS4KLSAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENGR19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KKyAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCiAgKgogICogRm9yIEJSMiwgbmVlZDoKICAqICAgIEJhc2UgYWRkcmVzcyBvZiAweGYwMDAwMDAwID0gQlJbMDoxNl0gPSAxMTExIDAwMDAgMDAwMCAwMDAwIDAKQEAgLTE2NiwxNCArMTY2LDE0IEBACiAgKiAwICAgIDQgICAgOCAgICAxMiAgIDE2ICAgMjAgICAyNCAgIDI4CiAgKiAxMTExIDAwMDAgMDAwMCAwMDAwIDAwMDEgMTAwMCAwMTEwIDAwMDEgPSBmMDAwMTg2MQogICoKLSAqIEZJWE1FOiBDRkdfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bworICogRklYTUU6IENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bwogICogRklYTUU6IHRoZSB0b3AgMTcgYml0cyBvZiBCUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhmMDAwMTg2MQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjAwMDE4NjEKIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjIsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMApAQCAtMTg2LDg0ICsxODYsODQgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IGZjMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNCAgICAvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjUJKDMgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1QzCSgzIDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlczCSgzIDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDMgkoMiA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfV1JDNAkoMCA8PCAoMzEgLSAyNykpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlVGQ01ECSgxIDw8ICgzMSAtIDI5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1I1CSgzIDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1QzCSgzIDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzMJKDMgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDMgkoMiA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CVUZDTUQJKDEgPDwgKDMxIC0gMjkpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTgkoIENGR19MQkNfTFNETVJfQlNNQTE1MTYJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkNSNQkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDMJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXMwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0JMOAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9XUkMyCQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0NMMwkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkVOCQlcCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTgkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1I1CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDMJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzMJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkMyCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JCVwKIAkJCQkpCiAKIC8qCiAgKiBTRFJBTSBDb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gc2VxdWVuY2UuCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfUENIQUxMKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzIJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMwkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTVJXKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzUJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzEJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMgkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzQJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVykKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNQkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMKQogCiAKIC8qCiAgKiAzMktCLCA4LWJpdCB3aWRlIGZvciBBRFMgY29uZmlnIHJlZwogICovCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAgICAgICAgIDB4ZjgwMDA4MDEKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCTB4ZmZmZmUxZjEKLSNkZWZpbmUgQ0ZHX0JDU1IJCShDRkdfQlI0X1BSRUxJTSAmIDB4ZmZmZjgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgICAgICAgICAweGY4MDAwODAxCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMHhmZmZmZTFmMQorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJCShDT05GSUdfU1lTX0JSNF9QUkVMSU0gJiAweGZmZmY4MDAwKQogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX09OX1NDQwkvKiBkZWZpbmUgaWYgY29uc29sZSBvbiBTQ0MgKi8KQEAgLTI3MiwxMyArMjcyLDEzIEBACiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTI4Niw4ICsyODYsOCBAQAogI2RlZmluZSBDT05GSUdfT0ZfQk9BUkRfU0VUVVAJCTEKICNkZWZpbmUgQ09ORklHX09GX1NURE9VVF9WSUFfQUxJQVMJMQogCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkxCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAkxCiAKIC8qCiAgKiBJMkMKQEAgLTI5NSwyNiArMjk1LDI2IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyogUmFwaWRJTyBNTVUgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUklPX01FTV9QSFlTCUNGR19SSU9fTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDEyOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1BIWVMJQ09ORklHX1NZU19SSU9fTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogTWVtb3J5IHNwYWNlIGlzIG1hcHBlZCAxLTEsIGJ1dCBJL08gc3BhY2UgbXVzdCBzdGFydCBmcm9tIDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAJLyogMU0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIApAQCAtMzMxLDcgKzMzMSw3IEBACiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC0zNzMsMTAgKzM3MywxMCBAQAogICAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMKICAgICogLSBGdWxsIGR1cGxleAogICAgKi8KLSAgI2RlZmluZSBDRkdfQ01YRkNSX01BU0sgICAgICAgKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKLSAgI2RlZmluZSBDRkdfQ01YRkNSX1ZBTFVFICAgICAgKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKLSAgI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUgICAgMAotICAjZGVmaW5lIENGR19GQ0NfUFNNUiAgICAgICAgICAoRkNDX1BTTVJfRkRFKQorICAjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sgICAgICAgKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyAgI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRSAgICAgIChDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisgICNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRSAgICAwCisgICNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUiAgICAgICAgICAoRkNDX1BTTVJfRkRFKQogICAjZGVmaW5lIEZFVEgyX1JTVAkJMHgwMQogI2VsaWYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQogICAvKiBuZWVkIG1vcmUgZGVmaW5pdGlvbnMgaGVyZSBmb3IgRkUzICovCkBAIC00MTEsMjAgKzQxMSwyMCBAQAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogICAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogMjU2SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisgICNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLwogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seSAqLwotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC00NDMsNiArNDQzLDggQEAKICNkZWZpbmUgQ09ORklHX0NNRF9QSU5HCiAjZGVmaW5lIENPTkZJR19DTURfSTJDCiAjZGVmaW5lIENPTkZJR19DTURfRUxGCisjZGVmaW5lIENPTkZJR19DTURfSVJRCisjZGVmaW5lIENPTkZJR19DTURfU0VURVhQUgogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKQEAgLTQ1Miw3ICs0NTQsNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9NSUkKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC00NjMsMjggKzQ2NSwyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg1NjhNRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTY4TURTLmgKaW5kZXggODA2OTdhNS4uYmEyZjE1MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg1NjhNRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODU2OE1EUy5oCkBAIC03MCwyMCArNzAsMjAgQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEJLyogQ2FsbCBib2FyZF9wcmVfaW5pdCAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUiAgICAgICAgICAgKENGR19DQ1NSQkFSKzB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUxX0FERFIgICAgICAgICAgKENGR19DQ1NSQkFSKzB4YTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0FERFIgICAgICAgICAgIChDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0FERFIgICAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweGEwMDApCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjIKQEAgLTk1LDggKzk1LDggQEAKIAogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCiAjZGVmaW5lIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCTEKQEAgLTE0NSw3MCArMTQ1LDcwIEBACiAgKiAwICAgIDQgICAgOCAgICAxMiAgIDE2ICAgMjAgICAyNCAgIDI4CiAgKiAxMTExIDExMTEgMTAwMCAwMDAwIDAxMTAgMTExMCAwMTEwIDAxMDEgPSBmZjgwNmU2NSAgICBPUngKICAqLwotI2RlZmluZSBDRkdfQkNTUl9CQVNFCQkweGY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUl9CQVNFCQkweGY4MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmUwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggMzJNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZTAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAzMk0gKi8KIAogLypDaGlwIHNlbGVjdCAwIC0gRmxhc2gqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZTAwMTAwMQotI2RlZmluZQlDRkdfT1IwX1BSRUxJTQkJMHhmZTAwNmZmNworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmUwMDEwMDEKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZlMDA2ZmY3CiAKIC8qQ2hpcCBzbGVsZWN0IDEgLSBCQ1NSKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZjgwMDA4MDEKLSNkZWZpbmUJQ0ZHX09SMV9QUkVMSU0JCTB4ZmZmZmU5ZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGY4MDAwODAxCisjZGVmaW5lCUNPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmZmZmZTlmNwogCi0vKiNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJezB4ZmY4MDAwMDAsIENGR19GTEFTSF9CQVNFfSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQk1MTIJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJezB4ZmY4MDAwMDAsIENPTkZJR19TWVNfRkxBU0hfQkFTRX0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQk1MTIJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogCiAvKgogICogU0RSQU0gb24gdGhlIExvY2FsQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0JICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQk2NAkJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQk2NAkJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCiAKIAogLypDaGlwIHNlbGVjdCAyIC0gU0RSQU0qLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgICAgIDB4ZjAwMDE4NjEKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAgICAgMHhmMDAwMTg2MQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDY5MDEKIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQJLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAkvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MDAwMDAwMDAJLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNAkvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAkvKiBMQiBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAJLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgwMDAwMDAwMAkvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLwogCiAvKgogICogTFNETVIgbWFza3MKICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJKDcgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTYxNwkoNCA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkoNyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CSg3IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzYJKDYgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKIC8qCiAgKiBDb21tb24gc2V0dGluZ3MgZm9yIGFsbCBMb2NhbCBCdXMgU0RSQU0gY29tbWFuZHMuCkBAIC0yMTYsMTMgKzIxNiwxMyBAQAogICogICAgICAgICAgICAgICAgICBvciBCU01BMTYxNyAoZm9yIENQVSAxLjApIChvbGQpCiAgKiBpcyBPUidlZCBpbiB0b28uCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04JKCBDRkdfTEJDX0xTRE1SX1JGQ1IxNgkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDcJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXNwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0JMOAkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9XUkM0CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0NMMwkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9SRkVOCQlcCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTgkoIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1IxNgkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc3CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDNAkJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkVOCQlcCiAJCQkJKQogCiAvKgpAQCAtMjU0LDQ2ICsyNTQsNDYgQEAKICAqIDAgICAgNCAgICA4ICAgIDEyICAgMTYgICAyMCAgIDI0ICAgMjgKICAqIDExMTEgMTExMSAxMTExIDAwMDAgMDAwMCAxMTExIDExMTEgMDExMSA9IGZmZjAwZmY3CiAgKi8KLSNkZWZpbmUgQ0ZHX0JDU1IgKDB4ZjgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUiAoMHhmODAwMDAwMCkKIAogLypDaGlwIHNsZWxlY3QgNCAtIFBJQiovCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAgMHhmODAwODgwMQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTSAgIDB4ZmZmZmU5ZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNICAgMHhmODAwODgwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0gICAweGZmZmZlOWY3CiAKIC8qQ2hpcCBzZWxlY3QgNSAtIFBJQiovCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCSAweGY4MDEwODAxCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCSAweGZmZmY2OWY3CisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkgMHhmODAxMDgwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JIDB4ZmZmZjY5ZjcKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkJMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgICAgMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzAxLDggKzMwMSw4IEBACiAjZGVmaW5lIENPTkZJR19PRl9CT0FSRF9TRVRVUAkJMQogI2RlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUwkxCiAKLSNkZWZpbmUgQ0ZHXzY0QklUX1ZTUFJJTlRGCTEKLSNkZWZpbmUgQ0ZHXzY0QklUX1NUUlRPVUwJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1ZTUFJJTlRGCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9TVFJUT1VMCTEKIAogLyoKICAqIEkyQwpAQCAtMzEyLDMyICszMTIsMzIgQEAKICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLwogI2RlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUwogI2RlZmluZSBDT05GSUdfSTJDX0NNRF9UUkVFCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUyCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgICAge3swLDB4Njl9fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCi0jZGVmaW5lIENGR19JMkMyX09GRlNFVAkJMHgzMTAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgICAgICAgIHt7MCwweDY5fX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkMyX09GRlNFVAkJMHgzMTAwCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogTWVtb3J5IEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4gSS9PIGlzIG1hcHBlZCBmcm9tIDAKICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDgwMDAwMAkvKiA4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDA4MDAwMDAJLyogOE0gKi8KIAotI2RlZmluZSBDRkdfUENJRTFfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfTUVNX1BIWVMJQ0ZHX1BDSUUxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fUEhZUwkweGUyODAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19TSVpFCTB4MDA4MDAwMDAJLyogOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMJMHhlMjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgwMDgwMDAwMAkvKiA4TSAqLwogCi0jZGVmaW5lIENGR19TUklPX01FTV9CQVNFCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUklPX01FTV9CQVNFCTB4YzAwMDAwMDAKIAogI2lmZGVmIENPTkZJR19RRQogLyoKQEAgLTM1NywyMyArMzU3LDIzIEBACiAjZGVmaW5lIENPTkZJR19VRUNfRVRIMSAgICAgICAgIC8qIEdFVEgxICovCiAKICNpZmRlZiBDT05GSUdfVUVDX0VUSDEKLSNkZWZpbmUgQ0ZHX1VFQzFfVUNDX05VTSAgICAgICAgMCAgICAgICAvKiBVQ0MxICovCi0jZGVmaW5lIENGR19VRUMxX1JYX0NMSyAgICAgICAgIFFFX0NMS19OT05FCi0jZGVmaW5lIENGR19VRUMxX1RYX0NMSyAgICAgICAgIFFFX0NMSzE2Ci0jZGVmaW5lIENGR19VRUMxX0VUSF9UWVBFICAgICAgIEdJR0FfRVRICi0jZGVmaW5lIENGR19VRUMxX1BIWV9BRERSICAgICAgIDcKLSNkZWZpbmUgQ0ZHX1VFQzFfSU5URVJGQUNFX01PREUgRU5FVF8xMDAwX0dNSUkKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1VDQ19OVU0gICAgICAgIDAgICAgICAgLyogVUNDMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfUlhfQ0xLICAgICAgICAgUUVfQ0xLX05PTkUKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMxX1RYX0NMSyAgICAgICAgIFFFX0NMSzE2CisjZGVmaW5lIENPTkZJR19TWVNfVUVDMV9FVEhfVFlQRSAgICAgICBHSUdBX0VUSAorI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfUEhZX0FERFIgICAgICAgNworI2RlZmluZSBDT05GSUdfU1lTX1VFQzFfSU5URVJGQUNFX01PREUgRU5FVF8xMDAwX1JHTUlJX0lECiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfVUVDX0VUSDIgICAgICAgICAvKiBHRVRIMiAqLwogCiAjaWZkZWYgQ09ORklHX1VFQ19FVEgyCi0jZGVmaW5lIENGR19VRUMyX1VDQ19OVU0gICAgICAgIDEgICAgICAgLyogVUNDMiAqLwotI2RlZmluZSBDRkdfVUVDMl9SWF9DTEsgICAgICAgICBRRV9DTEtfTk9ORQotI2RlZmluZSBDRkdfVUVDMl9UWF9DTEsgICAgICAgICBRRV9DTEsxNgotI2RlZmluZSBDRkdfVUVDMl9FVEhfVFlQRSAgICAgICBHSUdBX0VUSAotI2RlZmluZSBDRkdfVUVDMl9QSFlfQUREUiAgICAgICAxCi0jZGVmaW5lIENGR19VRUMyX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9HTUlJCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9VQ0NfTlVNICAgICAgICAxICAgICAgIC8qIFVDQzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1JYX0NMSyAgICAgICAgIFFFX0NMS19OT05FCisjZGVmaW5lIENPTkZJR19TWVNfVUVDMl9UWF9DTEsgICAgICAgICBRRV9DTEsxNgorI2RlZmluZSBDT05GSUdfU1lTX1VFQzJfRVRIX1RZUEUgICAgICAgR0lHQV9FVEgKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX1BIWV9BRERSICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19VRUMyX0lOVEVSRkFDRV9NT0RFIEVORVRfMTAwMF9SR01JSV9JRAogI2VuZGlmCiAjZW5kaWYgLyogQ09ORklHX1FFICovCiAKQEAgLTM4NiwxMiArMzg2LDEyIEBACiAjdW5kZWYgQ09ORklHX1RVTElQCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRSAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUyAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRSAgICAgMHg4MDAwMDAwMAogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC00MjUsMTIgKzQyNSwxMiBAQAogICogRW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAKIC8qCkBAIC00NTEsNiArNDUxLDggQEAKICNkZWZpbmUgQ09ORklHX0NNRF9JMkMKICNkZWZpbmUgQ09ORklHX0NNRF9NSUkKICNkZWZpbmUgQ09ORklHX0NNRF9FTEYKKyNkZWZpbmUgQ09ORklHX0NNRF9JUlEKKyNkZWZpbmUgQ09ORklHX0NNRF9TRVRFWFBSCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQpAQCAtNDYyLDI2ICs0NjQsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIENvbW1hbmQtbGluZSBlZGl0aW5nICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NTcyRFMuaCBiL2luY2x1ZGUvY29uZmlncy9NUEM4NTcyRFMuaAppbmRleCA0MTE0YTQyLi41Njg4NTg5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODU3MkRTLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg1NzJEUy5oCkBAIC02MSw3ICs2MSw3IEBACiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQlnZXRfYm9hcmRfc3lzX2NsaygwKSAvKiBzeXNjbGsgZm9yIE1QQzg1eHggKi8KICNkZWZpbmUgQ09ORklHX0REUl9DTEtfRlJFUQlnZXRfYm9hcmRfZGRyX2NsaygwKSAvKiBkZHJjbGsgZm9yIE1QQzg1eHggKi8KLSNkZWZpbmUgQ09ORklHX0lDUzMwN19SRUZDTEtfSFoJMzMzMzMzMzMgIC8qIElDUzMwNyBjbG9jayBjaGlwIHJlZiBmcmVxICovCisjZGVmaW5lIENPTkZJR19JQ1MzMDdfUkVGQ0xLX0haCTMzMzMzMDAwICAvKiBJQ1MzMDcgY2xvY2sgY2hpcCByZWYgZnJlcSAqLwogI2RlZmluZSBDT05GSUdfR0VUX0NMS19GUk9NX0lDUzMwNwkgIC8qIGRlY29kZSBzeXNjbGsgYW5kIGRkcmNsayBmcmVxCiAJCQkJCSAgICAgZnJvbSBJQ1MzMDcgaW5zdGVhZCBvZiBzd2l0Y2hlcyAqLwogCkBAIC03NCwyMiArNzQsMjIgQEAKIAogI2RlZmluZSBDT05GSUdfRU5BQkxFXzM2QklUX1BIWVMJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4N2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDdmZmZmZmZmCiAjZGVmaW5lIENPTkZJR19QQU5JQ19IQU5HCS8qIGRvIG5vdCByZXNldCBib2FyZCBvbiBwYW5pYyAqLwogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGZmZTAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGZmZTAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCi0jZGVmaW5lIENGR19QQ0lFM19BRERSCQkoQ0ZHX0NDU1JCQVIrMHg4MDAwKQotI2RlZmluZSBDRkdfUENJRTJfQUREUgkJKENGR19DQ1NSQkFSKzB4OTAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUxX0FERFIJCShDRkdfQ0NTUkJBUisweGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDkwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweGEwMDApCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjIKQEAgLTEwMCw0OSArMTAwLDQ5IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkyCiAjZGVmaW5lIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCTEKICNkZWZpbmUgQ09ORklHX0NISVBfU0VMRUNUU19QRVJfQ1RSTAkyCiAKIC8qIEkyQyBhZGRyZXNzZXMgb2YgU1BEIEVFUFJPTXMgKi8KLSNkZWZpbmUgQ0ZHX1NQRF9CVVNfTlVNCQkxCS8qIFNQRCBFRVBST01TIGxvY2F0ZSBvbiBJMkMgYnVzIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkJMQkvKiBTUEQgRUVQUk9NUyBsb2NhdGUgb24gSTJDIGJ1cyAxICovCiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUzEJMHg1MQkvKiBDVExSIDAgRElNTSAwICovCiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUzIJMHg1MgkvKiBDVExSIDEgRElNTSAwICovCiAKIC8qIFRoZXNlIGFyZSB1c2VkIHdoZW4gRERSIGRvZXNuJ3QgdXNlIFNQRC4gICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkyNTYJCS8qIEREUiBpcyAyNTZNQiAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMUYKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCTB4ODAwMTAxMDIJLyogRW5hYmxlLCBubyBpbnRlcmxlYXZpbmcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJMHgwMDI2MDgwMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18xCTB4MzkzNWQzMjIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMgkweDE0OTA0Y2M4Ci0jZGVmaW5lIENGR19ERFJfTU9ERV8xCQkweDAwNDgwNDMyCi0jZGVmaW5lIENGR19ERFJfTU9ERV8yCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNjE4MDEwMAotI2RlZmluZSBDRkdfRERSX0RBVEFfSU5JVAkweGRlYWRiZWVmCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NUUkwJMHgwMzgwMDAwMAotI2RlZmluZSBDRkdfRERSX09DRF9DVFJMCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9PQ0RfU1RBVFVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MCQkweEMzMDA4MDAwCS8qIFR5cGUgPSBERFIyICovCi0jZGVmaW5lIENGR19ERFJfQ09OVFJPTDIJMHgwNDQwMDAxMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTI1NgkJLyogRERSIGlzIDI1Nk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMUYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDEwMTAyCS8qIEVuYWJsZSwgbm8gaW50ZXJsZWF2aW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJMHgwMDI2MDgwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM5MzVkMzIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MTQ5MDRjYzgKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8xCQkweDAwNDgwNDMyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREVfMgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA2MTgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0RBVEFfSU5JVAkweGRlYWRiZWVmCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DVFJMCTB4MDM4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfT0NEX0NUUkwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9PQ0RfU1RBVFVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHhDMzAwODAwMAkvKiBUeXBlID0gRERSMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MMgkweDA0NDAwMDEwCiAKLSNkZWZpbmUgQ0ZHX0REUl9FUlJfSU5UX0VOCTB4MDAwMDAwMGQKLSNkZWZpbmUgQ0ZHX0REUl9FUlJfRElTCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfU0JFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0VSUl9JTlRfRU4JMHgwMDAwMDAwZAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9FUlJfRElTCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NCRQkJMHgwMDAxMDAwMAogCiAvKgogICogRklYTUU6IE5vdCB1c2VkIGluIGZpeGVkX3NkcmFtIGZ1bmN0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDAwMDAwMDIyCi0jZGVmaW5lIENGR19ERFJfQ1MxX0JORFMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NTMl9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzNfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCi0jZGVmaW5lIENGR19ERFJfQ1M0X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwotI2RlZmluZSBDRkdfRERSX0NTNV9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwMDAwMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MzX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzRfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTNV9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KIAogLyoKICAqIE1ha2Ugc3VyZSByZXF1aXJlZCBvcHRpb25zIGFyZSBzZXQKQEAgLTE3NSwzOCArMTc1LDM4IEBACiAvKgogICogTG9jYWwgQnVzIERlZmluaXRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZTAwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZTAwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggMTI4TSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGU4MDAxMDAxCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGY4MDAwZmY3CisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhlODAwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZjgwMDBmZjcKIAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhlMDAwMTAwMQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhmODAwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZTAwMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGY4MDAwZmY3CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJe0NGR19GTEFTSF9CQVNFICsgMHg4MDAwMDAwLCBDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXtDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDgwMDAwMDAsIENPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCiAjZGVmaW5lIENPTkZJR19GTEFTSF9TSE9XX1BST0dSRVNTIDQ1IC8qIGNvdW50IGRvd24gZnJvbSA0NS81OiA5Li4xICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCQkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FNRF9DSEVDS19EUTcKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQU1EX0NIRUNLX0RRNwogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IJLyogY2FsbCBib2FyZF9lYXJseV9pbml0X3IgZnVuY3Rpb24gKi8KIAogI2RlZmluZSBDT05GSUdfRlNMX1BJWElTCTEJLyogdXNlIGNvbW1vbiBQSVhJUyBjb2RlICovCiAjZGVmaW5lIFBJWElTX0JBU0UJMHhmZmRmMDAwMAkvKiBQSVhJUyByZWdpc3RlcnMgKi8KIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoUElYSVNfQkFTRSB8IDB4MDgwMSkJLyogcG9ydCBzaXplIDhiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4ZmZmZmVmZjcJLyogMzJLQiBidXQgb25seSA0ayBtYXBwZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCShQSVhJU19CQVNFIHwgMHgwODAxKQkvKiBwb3J0IHNpemUgOGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmZmZmVmZjcJLyogMzJLQiBidXQgb25seSA0ayBtYXBwZWQgKi8KIAogI2RlZmluZSBQSVhJU19JRAkJMHgwCS8qIEJvYXJkIElEIGF0IG9mZnNldCAwICovCiAjZGVmaW5lIFBJWElTX1ZFUgkJMHgxCS8qIEJvYXJkIHZlcnNpb24gYXQgb2Zmc2V0IDEgKi8KQEAgLTIzOCwyMCArMjM4LDM2IEBACiAvKiBvbGQgcGl4aXMgcmVmZXJlbmNlZCBuYW1lcyAqLwogI2RlZmluZSBQSVhJU19WQ0xLSAkJMHgxOQkvKiBWRUxBIFZDTEtIIHJlZ2lzdGVyICovCiAjZGVmaW5lIFBJWElTX1ZDTEtMCQkweDFBCS8qIFZFTEEgVkNMS0wgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1BJWElTX1ZCT09UX01BU0sJMHhjMAorI2RlZmluZSBDT05GSUdfU1lTX1BJWElTX1ZCT09UX01BU0sJMHhjMAorI2RlZmluZSBQSVhJU19WU1BFRUQyX1RTRUMxU0VSCTB4OAorI2RlZmluZSBQSVhJU19WU1BFRUQyX1RTRUMyU0VSCTB4NAorI2RlZmluZSBQSVhJU19WU1BFRUQyX1RTRUMzU0VSCTB4MgorI2RlZmluZSBQSVhJU19WU1BFRUQyX1RTRUM0U0VSCTB4MQorI2RlZmluZSBQSVhJU19WQ0ZHRU4xX1RTRUMxU0VSCTB4MjAKKyNkZWZpbmUgUElYSVNfVkNGR0VOMV9UU0VDMlNFUgkweDIwCisjZGVmaW5lIFBJWElTX1ZDRkdFTjFfVFNFQzNTRVIJMHgyMAorI2RlZmluZSBQSVhJU19WQ0ZHRU4xX1RTRUM0U0VSCTB4MjAKKyNkZWZpbmUgUElYSVNfVlNQRUVEMl9NQVNLCShQSVhJU19WU1BFRUQyX1RTRUMxU0VSIFwKKwkJCQkJfCBQSVhJU19WU1BFRUQyX1RTRUMyU0VSIFwKKwkJCQkJfCBQSVhJU19WU1BFRUQyX1RTRUMzU0VSIFwKKwkJCQkJfCBQSVhJU19WU1BFRUQyX1RTRUM0U0VSKQorI2RlZmluZSBQSVhJU19WQ0ZHRU4xX01BU0sJKFBJWElTX1ZDRkdFTjFfVFNFQzFTRVIgXAorCQkJCQl8IFBJWElTX1ZDRkdFTjFfVFNFQzJTRVIgXAorCQkJCQl8IFBJWElTX1ZDRkdFTjFfVFNFQzNTRVIgXAorCQkJCQl8IFBJWElTX1ZDRkdFTjFfVFNFQzRTRVIpCiAKIC8qIGRlZmluZSB0byB1c2UgTDEgYXMgaW5pdGlhbCBzdGFjayAqLwogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGZmZDAwMDAwCS8qIEluaXRpYWwgTDEgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MDAwMDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZmZkMDAwMDAJLyogSW5pdGlhbCBMMSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MDAwMDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgLSBjb250cm9sbGVkIG9uIGJvYXJkIHdpdGgganVtcGVyIEo4CiAgKiBvcGVuIC0gaW5kZXggMgpAQCAtMjU5LDIxICsyNzUsMjEgQEAKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qCkBAIC0yODMsOCArMjk5LDggQEAKICNkZWZpbmUgQ09ORklHX09GX0JPQVJEX1NFVFVQCQkxCiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKiBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19GSVQJCTEKQEAgLTI5NiwyMyArMzEyLDIzIEBACiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkvKiBJMkMgYml0LWJhbmdlZCAqLwogI2RlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUwogI2RlZmluZSBDT05GSUdfSTJDX0NNRF9UUkVFCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU3Ci0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7ezAsMHgyOX19LyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXt7MCwweDI5fX0vKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKIAogLyoKICAqIEkyQzIgRUVQUk9NCiAgKi8KICNkZWZpbmUgQ09ORklHX0lEX0VFUFJPTQogI2lmZGVmIENPTkZJR19JRF9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fTlhJRAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fTlhJRAogI2VuZGlmCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fQlVTX05VTQkxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTcKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fQlVTX05VTQkxCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQpAQCAtMzIwLDM4ICszMzYsMzggQEAKICAqLwogCiAvKiBQQ0kgdmlldyBvZiBTeXN0ZW0gTWVtb3J5ICovCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAogCiAvKiBjb250cm9sbGVyIDMsIGRpcmVjdCB0byB1bGksIHRndGlkIDMsIEJhc2UgYWRkcmVzcyA4MDAwICovCi0jZGVmaW5lIENGR19QQ0lFM19NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFM19NRU1fUEhZUwlDRkdfUENJRTNfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUzX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJRTNfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFM19JT19QSFlTCTB4ZmZjMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUzX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTNfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFM19NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX0lPX1BIWVMJMHhmZmMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUzX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAyLCBTbG90IDIsIHRndGlkIDIsIEJhc2UgYWRkcmVzcyA5MDAwICovCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fUEhZUwlDRkdfUENJRTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJRTJfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9JT19QSFlTCTB4ZmZjMTAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMJMHhmZmMxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogLyogY29udHJvbGxlciAxLCBTbG90IDEsIHRndGlkIDEsIEJhc2UgYWRkcmVzcyBhMDAwICovCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fQkFTRQkweGMwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fUEhZUwlDRkdfUENJRTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19QSFlTCTB4ZmZjMjAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMJMHhmZmMyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgwMDAxMDAwMAkvKiA2NGsgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIAogLypQQ0lFIHZpZGVvIGNhcmQgdXNlZCovCi0jZGVmaW5lIFZJREVPX0lPX09GRlNFVAkJQ0ZHX1BDSUUxX0lPX1BIWVMKKyNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCQlDT05GSUdfU1lTX1BDSUUxX0lPX1BIWVMKIAogLyogdmlkZW8gKi8KICNkZWZpbmUgQ09ORklHX1ZJREVPCkBAIC0zNjQsNyArMzgwLDcgQEAKICNkZWZpbmUgQ09ORklHX0FUSV9SQURFT05fRkIKICNkZWZpbmUgQ09ORklHX1ZJREVPX0xPR08KIC8qI2RlZmluZSBDT05GSUdfQ09OU09MRV9DVVJTT1IqLwotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyBWSURFT19JT19PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIFZJREVPX0lPX09GRlNFVAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQpAQCAtMzgxLDggKzM5Nyw4IEBACiAjZW5kaWYKIAogI2lmbmRlZiBDT05GSUdfUENJX1BOUAotCSNkZWZpbmUgUENJX0VORVQwX0lPQUREUglDRkdfUENJRTNfSU9fQkFTRQotCSNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJQ0ZHX1BDSUUzX0lPX0JBU0UKKwkjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJQ09ORklHX1NZU19QQ0lFM19JT19CQVNFCisJI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUglDT05GSUdfU1lTX1BDSUUzX0lPX0JBU0UKIAkjZGVmaW5lIFBDSV9JRFNFTF9OVU1CRVIJMHgxMQkvKiBJRFNFTCA9IEFEMTEgKi8KICNlbmRpZgogCkBAIC0zOTIsMTAgKzQwOCwxMCBAQAogCiAjaWZkZWYgQ09ORklHX1NDU0lfQUhDSQogI2RlZmluZSBDT05GSUdfU0FUQV9VTEk1Mjg4Ci0jZGVmaW5lIENGR19TQ1NJX01BWF9TQ1NJX0lECTQKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0xVTgkxCi0jZGVmaW5lIENGR19TQ1NJX01BWF9ERVZJQ0UJKENGR19TQ1NJX01BWF9TQ1NJX0lEICogQ0ZHX1NDU0lfTUFYX0xVTikKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYREVWSUNFCUNGR19TQ1NJX01BWF9ERVZJQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lECTQKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9MVU4JMQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQkoQ09ORklHX1NZU19TQ1NJX01BWF9TQ1NJX0lEICogQ09ORklHX1NZU19TQ1NJX01BWF9MVU4pCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhERVZJQ0UJQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UKICNlbmRpZiAvKiBTQ1NJICovCiAKICNlbmRpZgkvKiBDT05GSUdfUENJICovCkBAIC00MTgsNiArNDM0LDE0IEBACiAjZGVmaW5lIENPTkZJR19UU0VDNAkxCiAjZGVmaW5lIENPTkZJR19UU0VDNF9OQU1FCSJlVFNFQzQiCiAKKyNkZWZpbmUgQ09ORklHX1BJWElTX1NHTUlJX0NNRAorI2RlZmluZSBDT05GSUdfRlNMX1NHTUlJX1JJU0VSCTEKKyNkZWZpbmUgU0dNSUlfUklTRVJfUEhZX09GRlNFVAkweDFjCisKKyNpZmRlZiBDT05GSUdfRlNMX1NHTUlJX1JJU0VSCisjZGVmaW5lIENPTkZJR19TWVNfVEJJUEFfVkFMVUUJCTB4MTAgLyogYXZvaWQgY29uZmxpY3Qgd2l0aCBlVFNFQzQgcGFkZHIgKi8KKyNlbmRpZgorCiAjZGVmaW5lIFRTRUMxX1BIWV9BRERSCQkwCiAjZGVmaW5lIFRTRUMyX1BIWV9BRERSCQkxCiAjZGVmaW5lIFRTRUMzX1BIWV9BRERSCQkyCkBAIC00NDIsMTYgKzQ2NiwxNiBAQAogICogRW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID4gMHhmZmY4MDAwMAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID4gMHhmZmY4MDAwMAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4ZmZmODAwMDAKICNlbHNlCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDcwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NzAwMDApCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMCAvKiAxMjhLIChvbmUgc2VjdG9yKSAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIC8qCiAgKiBDb21tYW5kIGxpbmUgY29uZmlndXJhdGlvbi4KQEAgLTQ2Myw2ICs0ODcsOCBAQAogI2RlZmluZSBDT05GSUdfQ01EX0kyQwogI2RlZmluZSBDT05GSUdfQ01EX01JSQogI2RlZmluZSBDT05GSUdfQ01EX0VMRgorI2RlZmluZSBDT05GSUdfQ01EX0lSUQorI2RlZmluZSBDT05GSUdfQ01EX1NFVEVYUFIKIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKQEAgLTQ3NywyNiArNTAzLDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBDb21tYW5kLWxpbmUgZWRpdGluZyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtNTQ3LDYgKzU3Myw3IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkxMTUyMDAKIAogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCVwKKyAibWVtY3RsX2ludGx2X2N0bD0yXDAiCQkJCQkJXAogICJuZXRkZXY9ZXRoMFwwIgkJCQkJCVwKICAidWJvb3Q9IiBNS19TVFIoQ09ORklHX1VCT09UUEFUSCkgIlwwIgkJCQlcCiAgInRmdHBmbGFzaD10ZnRwYm9vdCAkbG9hZGFkZHIgJHVib290OyAiCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg2MTBIUENELmggYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODYxMEhQQ0QuaAppbmRleCA0ZWVlMjFjLi42NzhlMWUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTVBDODYxMEhQQ0QuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODYxMEhQQ0QuaApAQCAtMzEsMTAgKzMxLDEwIEBACiAjZW5kaWYKIAogI2lmZGVmIFJVTl9ESUFHCi0jZGVmaW5lIENGR19ESUFHX0FERFIJCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ESUFHX0FERFIJCTB4ZmY4MDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKIAogI2RlZmluZSBDT05GSUdfUENJCQkxCS8qIEVuYWJsZSBQQ0kvUENJRSovCiAjZGVmaW5lIENPTkZJR19QQ0kxCQkxCS8qIFBDSSBjb250cm9sZXIgMSAqLwpAQCAtNTIsNyArNTIsNyBAQAogLyoKICAqIEwyQ1Igc2V0dXAgLS0gbWFrZSBzdXJlIHRoaXMgaXMgcmlnaHQgZm9yIHlvdXIgYm9hcmQhCiAgKi8KLSNkZWZpbmUgQ0ZHX0wyCisjZGVmaW5lIENPTkZJR19TWVNfTDIKICNkZWZpbmUgTDJfSU5JVAkJMAogI2RlZmluZSBMMl9FTkFCTEUJKEwyQ1JfTDJFIHwweDAwMTAwMDAwICkKIApAQCAtNjMsMjIgKzYzLDIyIEBACiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJMQkvKiBDYWxsIGJvYXJkX3ByZV9pbml0ICovCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkJKENGR19DQ1NSQkFSKzB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUxX0FERFIJCShDRkdfQ0NTUkJBUisweGEwMDApCi0jZGVmaW5lIENGR19QQ0lFMl9BRERSCQkoQ0ZHX0NDU1JCQVIrMHg5MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDkwMDApCiAKLSNkZWZpbmUgQ0ZHX0RJVV9BRERSCQkoQ0ZHX0NDU1JCQVIrMHgyYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19ESVVfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDJjMDAwKQogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIyCkBAIC04OSw4ICs4OSw4IEBACiAjZGVmaW5lIENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQ09OVFJPTExFUgkvKiBERFIgY29udHJvbGxlciBvciBETUE/ICovCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgTVBDODZ4eF9ERFJfU0RSQU1fQ0xLX0NOVEwKQEAgLTEwMiw2NCArMTAyLDY0IEBACiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUzEJMHg1MQkvKiBDVExSIDAgRElNTSAwICovCiAKIC8qIFRoZXNlIGFyZSB1c2VkIHdoZW4gRERSIGRvZXNuJ3QgdXNlIFNQRC4gICovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCTI1NgkJLyogRERSIGlzIDI1Nk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkyNTYJCS8qIEREUiBpcyAyNTZNQiAqLwogCiAjaWYgMCAvKiBUT0RPICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwRgotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAxMDIwMgkvKiBFbmFibGUsIG5vIGludGVybGVhdmluZyAqLwotI2RlZmluZSBDRkdfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjYwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgzOTM1ZDMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MTQ5MDRjYzgKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzEJCTB4MDA0ODA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9NT0RFXzIJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkweDA2MTgwMTAwCi0jZGVmaW5lIENGR19ERFJfREFUQV9JTklUCTB4ZGVhZGJlZWYKLSNkZWZpbmUgQ0ZHX0REUl9DTEtfQ1RSTAkweDAzODAwMDAwCi0jZGVmaW5lIENGR19ERFJfT0NEX0NUUkwJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX09DRF9TVEFUVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NPTlRST0wJCTB4ZTMwMDgwMDAJLyogVHlwZSA9IEREUjIgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MMgkweDA0NDAwMDEwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9CTkRTCTB4MDAwMDAwMEYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDEwMjAyCS8qIEVuYWJsZSwgbm8gaW50ZXJsZWF2aW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJMHgwMDI2MDgwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM5MzVkMzIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MTQ5MDRjYzgKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8xCQkweDAwNDgwNDMyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREVfMgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA2MTgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0RBVEFfSU5JVAkweGRlYWRiZWVmCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DVFJMCTB4MDM4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfT0NEX0NUUkwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9PQ0RfU1RBVFVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHhlMzAwODAwMAkvKiBUeXBlID0gRERSMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MMgkweDA0NDAwMDEwCiAKLSNkZWZpbmUgQ0ZHX0REUl9FUlJfSU5UX0VOCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9FUlJfRElTCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfU0JFCQkweDAwMGYwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0VSUl9JTlRfRU4JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9FUlJfRElTCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NCRQkJMHgwMDBmMDAwMAogCiAvKgogICogRklYTUU6IE5vdCB1c2VkIGluIGZpeGVkX3NkcmFtIGZ1bmN0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9NT0RFCQkweDAwMDAwMDIyCi0jZGVmaW5lIENGR19ERFJfQ1MxX0JORFMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0NTMl9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzNfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCi0jZGVmaW5lIENGR19ERFJfQ1M0X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwotI2RlZmluZSBDRkdfRERSX0NTNV9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERQkJMHgwMDAwMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MzX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzRfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTNV9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KICNlbmRpZgogCiAKICNkZWZpbmUgQ09ORklHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9OWElECisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9OWElECiAjZGVmaW5lIENPTkZJR19JRF9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAgICAgMHg1NwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICAgICAweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmMDAwMDAwMCAvKiBzdGFydCBvZiBGTEFTSCAxMjhNICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMgkJMHhmODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZjAwMDAwMDAgLyogc3RhcnQgb2YgRkxBU0ggMTI4TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UyCQkweGY4MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1Qge0NGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRTJ9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7Q09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UyfQogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGY4MDAxMDAxIC8qIHBvcnQgc2l6ZSAxNmJpdCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmODAwNmU2NSAvKiAxMjhNQiBOT1IgRmxhc2gqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZjgwMDEwMDEgLyogcG9ydCBzaXplIDE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmODAwNmU2NSAvKiAxMjhNQiBOT1IgRmxhc2gqLwogCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweGYwMDAxMDAxIC8qIHBvcnQgc2l6ZSAxNmJpdCAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhmODAwNmU2NSAvKiAxMjhNQiBQcm9tamV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhmMDAwMTAwMSAvKiBwb3J0IHNpemUgMTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGY4MDA2ZTY1IC8qIDEyOE1CIFByb21qZXQgKi8KICNpZiAwIC8qIFRPRE8gKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZjAwMDAwMDAgLyogMjU2TUIgTkFORCBGbGFzaCAtIGJhbmsgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGYwMDAwMDAwIC8qIDI1Nk1CIE5BTkQgRmxhc2ggLSBiYW5rIDEgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhlODAwMDgwMSAvKiBwb3J0IHNpemUgOGJpdCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhmZmYwNmZmNyAvKiAxTUIgUElYSVMgYXJlYSovCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHhlODAwMDgwMSAvKiBwb3J0IHNpemUgOGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmZmMDZmZjcgLyogMU1CIFBJWElTIGFyZWEqLwogCiAKICNkZWZpbmUgQ09ORklHX0ZTTF9QSVhJUwkxCS8qIHVzZSBjb21tb24gUElYSVMgY29kZSAqLwpAQCAtMTc5LDY3ICsxNzksNjcgQEAKICNkZWZpbmUgUElYSVNfVlNQRUVEMQkJMHgxOAkvKiBWRUxBIFZTcGVlZCAxICovCiAjZGVmaW5lIFBJWElTX1ZDTEtICQkweDE5CS8qIFZFTEEgVkNMS0ggcmVnaXN0ZXIgKi8KICNkZWZpbmUgUElYSVNfVkNMS0wJCTB4MUEJLyogVkVMQSBWQ0xLTCByZWdpc3RlciAqLwotI2RlZmluZSBDRkdfUElYSVNfVkJPT1RfTUFTSwkweDBDICAgIC8qIFJlc2V0IGFsdGJhbmsgbWFzayovCisjZGVmaW5lIENPTkZJR19TWVNfUElYSVNfVkJPT1RfTUFTSwkweDBDICAgIC8qIFJlc2V0IGFsdGJhbmsgbWFzayovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEwMjQJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMDI0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCTI1NgogI2VuZGlmCiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jaWZuZGVmIENGR19JTklUX1JBTV9MT0NLCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2lmbmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhlNDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIgS0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDYgKiAxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIgS0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg2ICogMTAyNCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTI1Myw4ICsyNTMsOCBAQAogLyogbWF4aW11bSBzaXplIG9mIHRoZSBmbGF0IHRyZWUgKDhLKSAqLwogI2RlZmluZSBPRl9GTEFUX1RSRUVfTUFYX1NJWkUJODE5MgogCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkxCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAkxCiAKIC8qCiAgKiBJMkMKQEAgLTI2Miw0NiArMjYyLDQ2IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4ZTEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCTB4ZTEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCiAvKiBQQ0kgdmlldyBvZiBTeXN0ZW0gTWVtb3J5ICovCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAogCiAvKiBGb3IgUlRMODEzOSAqLwogI2RlZmluZSBLU0VHMUFERFIoeCkJKHt1MzIgX3ggPSBsZTMyX3RvX2NwdSgqKHUzMiAqKSh4KSk7ICgmX3gpOyB9KQogI2RlZmluZSBfSU9fQkFTRQkJMHgwMDAwMDAwMAogCiAvKiBjb250cm9sbGVyIDEsIEJhc2UgYWRkcmVzcyAweGEwMDAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9CQVNFCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9QSFlTCUNGR19QQ0lFMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJRTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCi0jZGVmaW5lIENGR19QQ0lFMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1BIWVMJMHhlMzAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTCTB4ZTMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogLyogY29udHJvbGxlciAyLCBCYXNlIEFkZHJlc3MgMHg5MDAwICovCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fQkFTRQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9NRU1fUEhZUwlDRkdfUENJRTJfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUyX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJRTJfSU9fQkFTRQkweDAwMDAwMDAwCS8qIHJldXNlIG1lbSBMQVcgKi8KLSNkZWZpbmUgQ0ZHX1BDSUUyX0lPX1BIWVMJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9JT19CQVNFCTB4MDAwMDAwMDAJLyogcmV1c2UgbWVtIExBVyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLwogCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCkBAIC0zMjQsMTEgKzMyNCwxMSBAQAogI2RlZmluZSBDT05GSUdfUENJX09IQ0kJCTEKICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwkJMQogI2RlZmluZSBDT05GSUdfVVNCX0tFWUJPQVJECTEKLSNkZWZpbmUgQ0ZHX0RFVklDRV9ERVJFR0lTVEVSCi0jZGVmaW5lIENGR19VU0JfRVZFTlRfUE9MTAkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJIm9oY2lfcGNpIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgMTUKLSNkZWZpbmUgQ0ZHX09IQ0lfU1dBUF9SRUdfQUNDRVNTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9FVkVOVF9QT0xMCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJIm9oY2lfcGNpIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTIDE1CisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MJMQogCiAjaWYgIWRlZmluZWQoQ09ORklHX1BDSV9QTlApCiAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHhlMDAwMDAwMApAQCAtMzQxLDEwICszNDEsMTAgQEAKIAogI2lmZGVmIENPTkZJR19TQ1NJX0FIQ0kKICNkZWZpbmUgQ09ORklHX1NBVEFfVUxJNTI4OAotI2RlZmluZSBDRkdfU0NTSV9NQVhfU0NTSV9JRAk0Ci0jZGVmaW5lIENGR19TQ1NJX01BWF9MVU4JMQotI2RlZmluZSBDRkdfU0NTSV9NQVhfREVWSUNFCShDRkdfU0NTSV9NQVhfU0NTSV9JRCAqIENGR19TQ1NJX01BWF9MVU4pCi0jZGVmaW5lIENGR19TQ1NJX01BWERFVklDRQlDRkdfU0NTSV9NQVhfREVWSUNFCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRAk0CisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UJKENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCAqIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOKQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYREVWSUNFCUNPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFCiAjZW5kaWYKIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KQEAgLTM1MywxMCArMzUzLDEwIEBACiAgKiBCQVQwCQkyRwlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAgKiAweDAwMDBfMDAwMAkyRwlERFIKICAqLwotI2RlZmluZSBDRkdfREJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMFUJKEJBVFVfQkxfMkcgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFICkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQlDRkdfREJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCShCQVRVX0JMXzJHIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQlDT05GSUdfU1lTX0RCQVQwVQogCiAvKgogICogQkFUMQkJMUcJQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCkBAIC0zNjUsMjIgKzM2NSwyMiBAQAogICogMHg5MDAwXzAwMDAJMjU2TQlQQ0ktRXhwcmVzcyAyIE1lbW9yeQogICovCiAKLSNkZWZpbmUgQ0ZHX0RCQVQxTAkoQ0ZHX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIFwKIAkJCXwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQxVQkoQ0ZHX1BDSTFfTUVNX1BIWVMgfCBCQVRVX0JMXzFHIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19QQ0kxX01FTV9QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDFVCUNGR19EQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyB8IEJBVFVfQkxfMUcgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJQ09ORklHX1NZU19EQkFUMVUKIAogLyoKICAqIEJBVDIJCTE2TQlDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKICAqIDB4ZTEwMF8wMDAwCTFNCVBDSS0xIEkvTwogICovCiAKLSNkZWZpbmUgQ0ZHX0RCQVQyTAkoQ0ZHX1BDSTFfSU9fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCShDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCBcCiAJCQl8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUJKENGR19QQ0kxX0lPX1BIWVMgfCBCQVRVX0JMXzE2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfUENJMV9JT19QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVCUNGR19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJKENPTkZJR19TWVNfUENJMV9JT19QSFlTIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJKENPTkZJR19TWVNfUENJMV9JT19QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQlDT05GSUdfU1lTX0RCQVQyVQogCiAvKgogICogQkFUMwkJMzJNCUNhY2hlLWluaGliaXRlZCwgZ3VhcmRlZApAQCAtMzg4LDY4ICszODgsNjggQEAKICAqIDB4ZTMwMF8wMDAwCTFNCVBDSS1FeHByZXNzIDEgSS9PCiAgKi8KIAotI2RlZmluZSBDRkdfREJBVDNMCShDRkdfUENJRTJfSU9fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCShDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAogCQkJfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVCShDRkdfUENJRTJfSU9fUEhZUyB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUM0wJKENGR19QQ0lFMl9JT19QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCUNGR19EQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJKENPTkZJR19TWVNfUENJRTJfSU9fUEhZUyB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX1BDSUUyX0lPX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCUNPTkZJR19TWVNfREJBVDNVCiAKIC8qCiAgKiBCQVQ0CQk0TQlDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKICAqIDB4ZTAwMF8wMDAwCTRNCUNDU1IKICAqLwotI2RlZmluZSBDRkdfREJBVDRMCShDRkdfQ0NTUkJBUiB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCShDT05GSUdfU1lTX0NDU1JCQVIgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAogCQkJfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVCShDRkdfQ0NTUkJBUiB8IEJBVFVfQkxfMU0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoQ0ZHX0NDU1JCQVIgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUNFUJQ0ZHX0RCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQkoQ09ORklHX1NZU19DQ1NSQkFSIHwgQkFUVV9CTF8xTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19DQ1NSQkFSIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQlDT05GSUdfU1lTX0RCQVQ0VQogCiAvKgogICogQkFUNQkJMTI4SwlDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAgKiAweGU0MDBfMDAwMAkxMjhLCUluaXQgUkFNIGZvciBzdGFjayBpbiB0aGUgQ1BVIERDYWNoZSAobm8gYmFja2luZyBtZW1vcnkpCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQ1TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUNVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNUwJQ0ZHX0RCQVQ1TAotI2RlZmluZSBDRkdfSUJBVDVVCUNGR19EQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1TAlDT05GSUdfU1lTX0RCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQlDT05GSUdfU1lTX0RCQVQ1VQogCiAvKgogICogQkFUNgkJMjU2TQlDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKICAqIDB4ZjAwMF8wMDAwCTI1Nk0JRkxBU0gKICAqLwotI2RlZmluZSBDRkdfREJBVDZMCShDRkdfRkxBU0hfQkFTRQkgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAkoQ09ORklHX1NZU19GTEFTSF9CQVNFCSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCBcCiAJCQl8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNlUJKENGR19GTEFTSF9CQVNFCSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDZMCShDRkdfRkxBU0hfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQlDRkdfREJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UJIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCUNPTkZJR19TWVNfREJBVDZVCiAKIC8qCiAgKiBCQVQ3CQk0TQlDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKICAqIDB4ZTgwMF8wMDAwCTRNCVBJWElTCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQ3TAkoUElYSVNfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCShQSVhJU19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIFwKIAkJCXwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQkoUElYSVNfQkFTRSB8IEJBVFVfQkxfMU0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkoUElYSVNfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQlDRkdfREJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCShQSVhJU19CQVNFIHwgQkFUVV9CTF8xTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkoUElYSVNfQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJQ09ORklHX1NZU19EQkFUN1UKIAogCiAvKgogICogRW52aXJvbm1lbnQKICAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiAxMjZrIChvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAKIC8qCkBAIC00NzAsNyArNDcwLDcgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9JMkMKICNkZWZpbmUgQ09ORklHX0NNRF9NSUkKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICNlbmRpZgogCkBAIC00ODMsNyArNDgzLDcgQEAKIAogCiAjZGVmaW5lIENPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGVuYWJsZWQgKi8KLSNkZWZpbmUgQ0ZHX1dBVENIRE9HX0ZSRVEJNTAwMAkvKiBGZWVkIGludGVydmFsLCA1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX1dBVENIRE9HX0ZSRVEJNTAwMAkvKiBGZWVkIGludGVydmFsLCA1cyAqLwogCiAvKkRJVSBDb25maWd1cmF0aW9uKi8KICNkZWZpbmUgRElVX0NPTk5FQ1RfVE9fRFZJCQkvKiBESVUgY29udHJvbGxlciBjb25uZWN0cyB0byBEVkkgZW5jb2RlciovCkBAIC00OTEsMjggKzQ5MSwyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORyAgICAgICAgICAvKiBDb21tYW5kLWxpbmUgZWRpdGluZyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9NUEM4NjQxSFBDTi5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg2NDFIUENOLmgKaW5kZXggZmM1NWZlYi4uZTU3MTBjMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01QQzg2NDFIUENOLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL01QQzg2NDFIUENOLmgKQEAgLTQwLDEwICs0MCwxMCBAQAogI2RlZmluZSBDT05GSUdfTElOVVhfUkVTRVRfVkVDCTB4MTAwCS8qIFJlc2V0IHZlY3RvciB1c2VkIGJ5IExpbnV4ICovCiAKICNpZmRlZiBSVU5fRElBRwotI2RlZmluZSBDRkdfRElBR19BRERSCSAgICAgMHhmZjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RJQUdfQUREUgkgICAgIDB4ZmY4MDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgIDB4ZmZmMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgIDB4ZmZmMDAxMDAKIAogI2RlZmluZSBDT05GSUdfUENJCQkxCS8qIEVuYWJsZSBQQ0kvUENJRSAqLwogI2RlZmluZSBDT05GSUdfUENJMQkJMQkvKiBQQ0lFIGNvbnRyb2xlciAxIChVTEkgYnJpZGdlKSAqLwpAQCAtNjEsNyArNjEsNyBAQAogLyoKICAqIEwyQ1Igc2V0dXAgLS0gbWFrZSBzdXJlIHRoaXMgaXMgcmlnaHQgZm9yIHlvdXIgYm9hcmQhCiAgKi8KLSNkZWZpbmUgQ0ZHX0wyCisjZGVmaW5lIENPTkZJR19TWVNfTDIKICNkZWZpbmUgTDJfSU5JVAkJMAogI2RlZmluZSBMMl9FTkFCTEUJKEwyQ1JfTDJFKQogCkBAIC03NCwxOSArNzQsMTkgQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEJLyogQ2FsbCBib2FyZF9wcmVfaW5pdCAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhmODAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhmODAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkJKENGR19DQ1NSQkFSKzB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSTJfQUREUgkJKENGR19DQ1NSQkFSKzB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDkwMDApCiAKIC8qCiAgKiBERFIgU2V0dXAKQEAgLTk5LDggKzk5LDggQEAKICNkZWZpbmUgQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDT05UUk9MTEVSCS8qIEREUiBjb250cm9sbGVyIG9yIERNQT8gKi8KICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19WRVJZX0JJR19SQU0KIAogI2RlZmluZSBNUEM4Nnh4X0REUl9TRFJBTV9DTEtfQ05UTApAQCAtMTIxLDM5ICsxMjEsMzkgQEAKIC8qCiAgKiBUaGVzZSBhcmUgdXNlZCB3aGVuIEREUiBkb2Vzbid0IHVzZSBTUEQuCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTI1NgkJLyogRERSIGlzIDI1Nk1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwRgotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAxMDEwMiAgICAgIC8qIEVuYWJsZSwgbm8gaW50ZXJsZWF2aW5nICovCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX1RJTUlOR18wCTB4MDAyNjA4MDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDM5MzU3MzIyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJMHgxNDkwNGNjOAotI2RlZmluZSBDRkdfRERSX01PREVfMQkJMHgwMDQ4MDQzMgotI2RlZmluZSBDRkdfRERSX01PREVfMgkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDYwOTAxMDAKLSNkZWZpbmUgQ0ZHX0REUl9EQVRBX0lOSVQJMHhkZWFkYmVlZgotI2RlZmluZSBDRkdfRERSX0NMS19DVFJMCTB4MDM4MDAwMDAKLSNkZWZpbmUgQ0ZHX0REUl9PQ0RfQ1RSTAkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfT0NEX1NUQVRVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ09OVFJPTAkJMHhlMzAwODAwMAkvKiBUeXBlID0gRERSMiAqLwotI2RlZmluZSBDRkdfRERSX0NPTlRST0wyCTB4MDQ0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkyNTYJCS8qIEREUiBpcyAyNTZNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUwkweDAwMDAwMDBGCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMF9DT05GSUcJMHg4MDAxMDEwMiAgICAgIC8qIEVuYWJsZSwgbm8gaW50ZXJsZWF2aW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzAJMHgwMDI2MDgwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM5MzU3MzIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MTQ5MDRjYzgKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8xCQkweDAwNDgwNDMyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREVfMgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA2MDkwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0RBVEFfSU5JVAkweGRlYWRiZWVmCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DVFJMCTB4MDM4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfT0NEX0NUUkwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9PQ0RfU1RBVFVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkJMHhlMzAwODAwMAkvKiBUeXBlID0gRERSMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05UUk9MMgkweDA0NDAwMDAwCiAKIC8qCiAgKiBGSVhNRTogTm90IHVzZWQgaW4gZml4ZWRfc2RyYW0gZnVuY3Rpb24KICAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjIKLSNkZWZpbmUgQ0ZHX0REUl9DUzFfQk5EUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ1MyX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwotI2RlZmluZSBDRkdfRERSX0NTM19CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DUzRfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCi0jZGVmaW5lIENGR19ERFJfQ1M1X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkweDAwMDAwMDIyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMV9CTkRTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MyX0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzNfQk5EUwkweDAwMDAwRkZGCS8qIE5vdCBkb25lICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTNF9CTkRTCTB4MDAwMDBGRkYJLyogTm90IGRvbmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1M1X0JORFMJMHgwMDAwMEZGRgkvKiBOb3QgZG9uZSAqLwogCiAKICNkZWZpbmUgQ09ORklHX0lEX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9OWElECisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9OWElECiAjZGVmaW5lIENPTkZJR19JRF9FRVBST00KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUiAgICAgMHg1NwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSICAgICAweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAKIC8qCiAgKiBJbiBNUEM4NjQxSFBDTiwgYWxsb2NhdGUgMTZNQiBmbGFzaCBzcGFjZXMgYXQgZmUwMDAwMDAgYW5kIGZmMDAwMDAwLgpAQCAtMTY3LDIyICsxNjcsMjIgQEAKICAqCiAgKiBOb3RlIHRoYXQsIG9uIHN3aXRjaGluZyB0aGUgYm9vdCBsb2NhdGlvbiwgZmVmMDAwMDAgYmVjb21lcyBmZmYwMDAwMC4KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZTgwMDAwMCAgICAgLyogc3RhcnQgb2YgRkxBU0ggMzJNICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFMgkJMHhmZjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmU4MDAwMDAgICAgIC8qIHN0YXJ0IG9mIEZMQVNIIDMyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UyCQkweGZmODAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1Qge0NGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRTJ9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7Q09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UyfQogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZmMDAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdCAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmZjAwNmZmNwkvKiAxNk1CIEJvb3QgRmxhc2ggYXJlYSovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhmZjAwMTAwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZmMDA2ZmY3CS8qIDE2TUIgQm9vdCBGbGFzaCBhcmVhKi8KIAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmZTAwMTAwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmYwMDZmZjcJLyogMTZNQiBBbHRlcm5hdGUgQm9vdCBGbGFzaCBhcmVhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGZlMDAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4ZmYwMDZmZjcJLyogMTZNQiBBbHRlcm5hdGUgQm9vdCBGbGFzaCBhcmVhKi8KIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhmODIwMTAwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmZmMDZmZjcJLyogMU1CIENvbXBhY3QgRmxhc2ggYXJlYSovCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHhmODIwMTAwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZmZjA2ZmY3CS8qIDFNQiBDb21wYWN0IEZsYXNoIGFyZWEqLwogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkweGY4MTAwODAxCS8qIHBvcnQgc2l6ZSA4Yml0ICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweGZmZjA2ZmY3CS8qIDFNQiBQSVhJUyBhcmVhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkweGY4MTAwODAxCS8qIHBvcnQgc2l6ZSA4Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJMHhmZmYwNmZmNwkvKiAxTUIgUElYSVMgYXJlYSovCiAKIAogI2RlZmluZSBDT05GSUdfRlNMX1BJWElTCTEJLyogdXNlIGNvbW1vbiBQSVhJUyBjb2RlICovCkBAIC0yMDEsNjcgKzIwMSw2NyBAQAogI2RlZmluZSBQSVhJU19WU1BFRUQxCQkweDE4CS8qIFZFTEEgVlNwZWVkIDEgKi8KICNkZWZpbmUgUElYSVNfVkNMS0gJCTB4MTkJLyogVkVMQSBWQ0xLSCByZWdpc3RlciAqLwogI2RlZmluZSBQSVhJU19WQ0xLTAkJMHgxQQkvKiBWRUxBIFZDTEtMIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19QSVhJU19WQk9PVF9NQVNLCTB4NDAJLyogUmVzZXQgYWx0YmFuayBtYXNrKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSVhJU19WQk9PVF9NQVNLCTB4NDAJLyogUmVzZXQgYWx0YmFuayBtYXNrKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCTI1NgogI2VuZGlmCiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jaWZuZGVmIENGR19JTklUX1JBTV9MT0NLCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MGZkMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2lmbmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MGZkMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhmODQwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGY4NDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMjcyLDggKzI3Miw4IEBACiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAogCi0jZGVmaW5lIENGR182NEJJVF9WU1BSSU5URgkxCi0jZGVmaW5lIENGR182NEJJVF9TVFJUT1VMCTEKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfU1RSVE9VTAkxCiAKIC8qCiAgKiBJMkMKQEAgLTI4MSw1MCArMjgxLDUwIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMTAwCiAKIC8qCiAgKiBSYXBpZElPIE1NVQogICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fUEhZUwlDRkdfUklPX01FTV9CQVNFCi0jZGVmaW5lIENGR19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAJLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9QSFlTCUNPTkZJR19TWVNfUklPX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogMTI4TSAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKIAogLyogRm9yIFJUTDgxMzkgKi8KICNkZWZpbmUgS1NFRzFBRERSKHgpCQkoe3UzMiBfeD1sZTMyX3RvX2NwdSgqKHUzMiAqKSh4KSk7ICgmX3gpO30pCiAjZGVmaW5lIF9JT19CQVNFCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9NRU1fUEhZUwlDRkdfUENJMl9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1BIWVMJMHhlMzAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMJMHhlMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwogCi0jdW5kZWYgQ0ZHX1NDU0lfU0NBTl9CVVNfUkVWRVJTRQorI3VuZGVmIENPTkZJR19TWVNfU0NTSV9TQ0FOX0JVU19SRVZFUlNFCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5ICovCkBAIC0zNDAsMTEgKzM0MCwxMSBAQAogI2RlZmluZSBDT05GSUdfUENJX09IQ0kJCQkxCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJCTEKICNkZWZpbmUgQ09ORklHX1VTQl9LRVlCT0FSRAkJMQotI2RlZmluZSBDRkdfREVWSUNFX0RFUkVHSVNURVIKLSNkZWZpbmUgQ0ZHX1VTQl9FVkVOVF9QT0xMCQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJCSJvaGNpX3BjaSIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1Ci0jZGVmaW5lIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUwkxCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfRVZFTlRfUE9MTAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkJIm9oY2lfcGNpIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9TV0FQX1JFR19BQ0NFU1MJMQogCiAjaWYgIWRlZmluZWQoQ09ORklHX1BDSV9QTlApCiAgICAgI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCTB4ZTAwMDAwMDAKQEAgLTM1MywxMCArMzUzLDEwIEBACiAjZW5kaWYKIAogLypQQ0lFIHZpZGVvIGNhcmQgdXNlZCovCi0jZGVmaW5lIFZJREVPX0lPX09GRlNFVAkJQ0ZHX1BDSTJfSU9fUEhZUworI2RlZmluZSBWSURFT19JT19PRkZTRVQJCUNPTkZJR19TWVNfUENJMl9JT19QSFlTCiAKIC8qUENJIHZpZGVvIGNhcmQgdXNlZCovCi0vKiNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCUNGR19QQ0kxX0lPX1BIWVMqLworLyojZGVmaW5lIFZJREVPX0lPX09GRlNFVAlDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyovCiAKIC8qIHZpZGVvICovCiAjZGVmaW5lIENPTkZJR19WSURFTwpAQCAtMzY5LDcgKzM2OSw3IEBACiAjZGVmaW5lIENPTkZJR19BVElfUkFERU9OX0ZCCiAjZGVmaW5lIENPTkZJR19WSURFT19MT0dPCiAvKiNkZWZpbmUgQ09ORklHX0NPTlNPTEVfQ1VSU09SKi8KLSNkZWZpbmUgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgQ0ZHX1BDSTJfSU9fUEhZUworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgQ09ORklHX1NZU19QQ0kyX0lPX1BIWVMKICNlbmRpZgogCiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwpAQCAtMzc5LDEwICszNzksMTAgQEAKIAogI2lmZGVmIENPTkZJR19TQ1NJX0FIQ0kKICNkZWZpbmUgQ09ORklHX1NBVEFfVUxJNTI4OAotI2RlZmluZSBDRkdfU0NTSV9NQVhfU0NTSV9JRAk0Ci0jZGVmaW5lIENGR19TQ1NJX01BWF9MVU4JMQotI2RlZmluZSBDRkdfU0NTSV9NQVhfREVWSUNFCShDRkdfU0NTSV9NQVhfU0NTSV9JRCAqIENGR19TQ1NJX01BWF9MVU4pCi0jZGVmaW5lIENGR19TQ1NJX01BWERFVklDRQlDRkdfU0NTSV9NQVhfREVWSUNFCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRAk0CisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UJKENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCAqIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOKQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYREVWSUNFCUNPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTVBDODZYWF9QQ0kyCkBAIC00MjcsMTAgKzQyNywxMCBAQAogICogQkFUMAkJMkcgICAgIENhY2hlYWJsZSwgbm9uLWd1YXJkZWQKICAqIDB4MDAwMF8wMDAwCTJHICAgICBERFIKICAqLwotI2RlZmluZSBDRkdfREJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMFUJKEJBVFVfQkxfMkcgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFICkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQlDRkdfREJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCShCQVRVX0JMXzJHIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQlDT05GSUdfU1lTX0RCQVQwVQogCiAvKgogICogQkFUMQkJMUcgICAgIENhY2hlLWluaGliaXRlZCwgZ3VhcmRlZApAQCAtNDM4LDMxICs0MzgsMzEgQEAKICAqIDB4YTAwMF8wMDAwCTUxMk0gICBQQ0ktRXhwcmVzcyAyIE1lbW9yeQogICoJQ2hhbmdlZCBpdCBmb3Igb3BlcmF0aW5nIGZyb20gMHhkMDAwMDAwMAogICovCi0jZGVmaW5lIENGR19EQkFUMUwJKCBDRkdfUENJMV9NRU1fUEhZUyB8IEJBVExfUFBfUlcgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAkoIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUyB8IEJBVExfUFBfUlcgXAogCQkJfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMVUJKENGR19QQ0kxX01FTV9QSFlTIHwgQkFUVV9CTF8xRyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfUENJMV9NRU1fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQlDRkdfREJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCShDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRVX0JMXzFHIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCUNPTkZJR19TWVNfREJBVDFVCiAKIC8qCiAgKiBCQVQyCQk1MTJNICAgQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGMwMDBfMDAwMAk1MTJNICAgUmFwaWRJTyBNZW1vcnkKICAqLwotI2RlZmluZSBDRkdfREJBVDJMCShDRkdfUklPX01FTV9QSFlTIHwgQkFUTF9QUF9SVyBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCShDT05GSUdfU1lTX1JJT19NRU1fUEhZUyB8IEJBVExfUFBfUlcgXAogCQkJfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUJKENGR19SSU9fTUVNX1BIWVMgfCBCQVRVX0JMXzUxMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoQ0ZHX1JJT19NRU1fUEhZUyB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQlDRkdfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCShDT05GSUdfU1lTX1JJT19NRU1fUEhZUyB8IEJBVFVfQkxfNTEyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoQ09ORklHX1NZU19SSU9fTUVNX1BIWVMgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCUNPTkZJR19TWVNfREJBVDJVCiAKIC8qCiAgKiBCQVQzCQk0TSAgICAgQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGY4MDBfMDAwMAk0TSAgICAgQ0NTUgogICovCi0jZGVmaW5lIENGR19EQkFUM0wJKCBDRkdfQ0NTUkJBUiB8IEJBVExfUFBfUlcgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkoIENPTkZJR19TWVNfQ0NTUkJBUiB8IEJBVExfUFBfUlcgXAogCQkJfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UJKENGR19DQ1NSQkFSIHwgQkFUVV9CTF80TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfQ0NTUkJBUiB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQlDRkdfREJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCShDT05GSUdfU1lTX0NDU1JCQVIgfCBCQVRVX0JMXzRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX0NDU1JCQVIgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCUNPTkZJR19TWVNfREJBVDNVCiAKIC8qCiAgKiBCQVQ0CQkzMk0gICAgQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCkBAIC00NzAsNTIgKzQ3MCw1MiBAQAogICogMHhlMzAwXzAwMDAJMTZNICAgIFBDSS1FeHByZXNzIDIgSS8wCiAgKiAgICBOb3RlIHRoYXQgdGhpcyBpcyBhdCAweGUwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQ0TAkoIENGR19QQ0kxX0lPX1BIWVMgfCBCQVRMX1BQX1JXIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwJKCBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyB8IEJBVExfUFBfUlcgXAogCQkJfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNFUJKENGR19QQ0kxX0lPX1BIWVMgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDRMCShDRkdfUENJMV9JT19QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDRVCUNGR19EQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJKENPTkZJR19TWVNfUENJMV9JT19QSFlTIHwgQkFUVV9CTF8zMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfUENJMV9JT19QSFlTIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQlDT05GSUdfU1lTX0RCQVQ0VQogCiAvKgogICogQkFUNQkJMTI4SyAgIENhY2hlYWJsZSwgbm9uLWd1YXJkZWQKICAqIDB4ZTQwMV8wMDAwCTEyOEsgICBJbml0IFJBTSBmb3Igc3RhY2sgaW4gdGhlIENQVSBEQ2FjaGUgKG5vIGJhY2tpbmcgbWVtb3J5KQogICovCi0jZGVmaW5lIENGR19EQkFUNUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDVVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDVMCUNGR19EQkFUNUwKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQlDRkdfREJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJQ09ORklHX1NZU19EQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJQ09ORklHX1NZU19EQkFUNVUKIAogLyoKICAqIEJBVDYJCTMyTSAgICBDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKICAqIDB4ZmUwMF8wMDAwCTMyTSAgICBGTEFTSAogICovCi0jZGVmaW5lIENGR19EQkFUNkwJKChDRkdfRkxBU0hfQkFTRSAmIDB4ZmUwMDAwMDApIHwgQkFUTF9QUF9SVyBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCkgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDZVCSgoQ0ZHX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNkwJKChDRkdfRkxBU0hfQkFTRSAmIDB4ZmUwMDAwMDApIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDZVCUNGR19EQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZMCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCkgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCUNPTkZJR19TWVNfREJBVDZVCiAKLSNkZWZpbmUgQ0ZHX0RCQVQ3TCAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19EQkFUN1UgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSUJBVDdMIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lCQVQ3VSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TCAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVIDB4MDAwMDAwMDAKIAogLyoKICAqIEVudmlyb25tZW50CiAgKi8KLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAgICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSAgICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDYwMDAwKQorICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDYwMDAwKQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJCTB4MTAwMDAJLyogNjRLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICAgICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5ICovCi0gICAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAgICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogCiAvKgpAQCAtNTM2LDcgKzUzNiw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfSTJDCiAjZGVmaW5lIENPTkZJR19DTURfUkVHSU5GTwogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICNlbmRpZgogCkBAIC01NTMsMjggKzU1MywyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkJLyogQ29tbWFuZC1saW5lIGVkaXRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg2eEFEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg2eEFEUy5oCmluZGV4IDIzM2E4ZDEuLjg1YzY4OTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4NnhBRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODZ4QURTLmgKQEAgLTM1LDE1ICszNSwxNSBAQAogCiAjZGVmaW5lIENPTkZJR184eHhfT1NDTEsJCTEwMDAwMDAwIC8qIDEwTUh6IG9zY2lsbGF0b3Igb24gRVhUQ0xLICAqLwogI2RlZmluZSBDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUCTUwMDAwMDAwCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01JTgkJNDAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUFYCQk4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQk0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYCQk4MDAwMDAwMAogCiAjZGVmaW5lIENPTkZJR19EUkFNXzUwTUhaICAgICAgIDEKICNkZWZpbmUgQ09ORklHX1NEUkFNXzUwTUhaICAgICAgMQogCiAjaW5jbHVkZSAiLi4vLi4vYm9hcmQvZmFkcy9mYWRzLmgiCiAKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCTB4RkZGRjgxMTAJLyogNjRLYnl0ZSBhZGRyZXNzIHNwYWNlICovCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkoQ0ZHX1BIWURFVl9BRERSIHwgQlJfUFNfOCB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJMHhGRkZGODExMAkvKiA2NEtieXRlIGFkZHJlc3Mgc3BhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkoQ09ORklHX1NZU19QSFlERVZfQUREUiB8IEJSX1BTXzggfCBCUl9WKQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01QQzg4NUFEUy5oIGIvaW5jbHVkZS9jb25maWdzL01QQzg4NUFEUy5oCmluZGV4IGY0ZDE4NDIuLjhmZmMxYjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NUEM4ODVBRFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVBDODg1QURTLmgKQEAgLTIyLDE1ICsyMiwxNSBAQAogCiAjZGVmaW5lIENPTkZJR184eHhfT1NDTEsJCTEwMDAwMDAwIC8qIDEwIE1IeiBvc2NpbGxhdG9yIG9uIEVYVENMSyAgKi8KICNkZWZpbmUgQ09ORklHXzh4eF9DUFVDTEtfREVGQVVMVAk1MDAwMDAwMAotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NSU4JCTQwMDAwMDAwCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4JCTQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAogCiAjZGVmaW5lIENPTkZJR19TRFJBTV81ME1IWiAgICAgIDEKIAogI2luY2x1ZGUgIi4uLy4uL2JvYXJkL2ZhZHMvZmFkcy5oIgogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkweEZGRkY4MTEwCS8qIDY0S2J5dGUgYWRkcmVzcyBzcGFjZSAqLwotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJKENGR19QSFlERVZfQUREUiB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTB4RkZGRjgxMTAJLyogNjRLYnl0ZSBhZGRyZXNzIHNwYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJKENPTkZJR19TWVNfUEhZREVWX0FERFIgfCBCUl9QU184IHwgQlJfVikKIAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01VU0VOS0kuaCBiL2luY2x1ZGUvY29uZmlncy9NVVNFTktJLmgKaW5kZXggODhkODA3Mi4uZWM5ZTFlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01VU0VOS0kuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVVTRU5LSS5oCkBAIC00OCw3ICs0OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAKQEAgLTcxLDE2ICs3MSwxNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI3VuZGVmIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI3VuZGVmIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCiAvKiBQcmludCBCdWZmZXIgU2l6ZQogICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJOAkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTgJCS8qIE1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTEwMiw2MyArMTAyLDYzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTBfUFJFTElNICAgICAgMHhGRjgwMDAwMCAgICAgIC8qIEZMQVNIIGJhbmsgb24gUkNTIzAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UxX1BSRUxJTSAgICAgIDB4RkYwMDAwMDAgICAgICAvKiBGTEFTSCBiYW5rIG9uIFJDUyMxICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICBDRkdfRkxBU0hfQkFTRTBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTBfUFJFTElNICAgICAgMHhGRjgwMDAwMCAgICAgIC8qIEZMQVNIIGJhbmsgb24gUkNTIzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMV9QUkVMSU0gICAgICAweEZGMDAwMDAwICAgICAgLyogRkxBU0ggYmFuayBvbiBSQ1MjMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgIENPTkZJR19TWVNfRkxBU0hfQkFTRTBfUFJFTElNCiAKIC8qIGV2ZW4gdGhvdWdoIEZMQVNIUF9CQVNFIGlzIEZGODAwMDAwLCB3aXRoIDRNQiBpcyBSQ1MwLCB0aGUKICAqIHJlc2V0IHZlY3RvciBpcyBhY3R1YWxseSBsb2NhdGVkIGF0IEZGQjAwMTAwLCBidXQgdGhlIDgyNDUKICAqIHRha2VzIGNhcmUgb2YgdXMuCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCSAgICAweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIAkvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0uCiAJICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHgwODAwMDAwMAkvKiAwIC4uIDEyOCBNQiBvZiAoUylEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4MDgwMDAwMDAJLyogMCAuLiAxMjggTUIgb2YgKFMpRFJBTSAqLwogCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0VVTUJfQUREUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ2MDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCiAKLS8qICNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAgVEVYVF9CQVNFICovCi0vKiNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgMjU2Ki8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjgKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorLyogI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICAgICAgVEVYVF9CQVNFICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgIDI1NiovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogCiAvKgpAQCAtMTY5LDQxICsxNjksNDEgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMzMzMzMzCS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwgKi8KLSNkZWZpbmUgQ0ZHX0haCQkgICAgIDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAxMDAwCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JPTU5BTAkgICAgNwotI2RlZmluZSBDRkdfUk9NRkFMCSAgICAxMQotI2RlZmluZSBDRkdfREJVU19TSVpFICAgICAgIDB4MworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkgICAgNworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkgICAgMTEKKyNkZWZpbmUgQ09ORklHX1NZU19EQlVTX1NJWkUgICAgICAgMHgzCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMi4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1RTV0FJVAkgICAgMHg1CQkgICAgLyogVHJhbnNhY3Rpb24gU3RhcnQgV2FpdCBTdGF0ZXMgdGltZXIgKi8KLSNkZWZpbmUgQ0ZHX1JFRklOVAkgICAgMHg0MDAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJRklYTUU6IHdhcyAwdDQzMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19UU1dBSVQJICAgIDB4NQkJICAgIC8qIFRyYW5zYWN0aW9uIFN0YXJ0IFdhaXQgU3RhdGVzIHRpbWVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCSAgICAweDQwMAkgICAgLyogUmVmcmVzaCBpbnRlcnZhbAlGSVhNRTogd2FzIDB0NDMwCQkqLwogCiAJLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkgICAgMTIxCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMTIxCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkgICAgOAkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkgICAgOAkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCAqLwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjQuCiAJICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkgICAgMwkgICAgLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsIEZJWE1FOiB3YXMgMgkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJICAgIDUJICAgIC8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbCBGSVhNRTogd2FzIDUJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkgICAgMwkJLyogRklYTUUgd2FzIDIgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUICAzCSAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCSovCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQotI2RlZmluZSBDRkdfRVhUUk9NCSAgICAxCi0jZGVmaW5lIENGR19SRUdESU1NCSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJICAgIDMJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbCBGSVhNRTogd2FzIDIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsIEZJWE1FOiB3YXMgNQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkgICAgMwkJLyogRklYTUUgd2FzIDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVCAgMwkgICAgLyogU0RNT0RFIENBUyBsYXRhbmN5ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JICAgIDAKIAotI2RlZmluZSBDRkdfUEdNQVggICAgICAgICAgIDB4MzIgLyogaG93IGxvbmcgdGhlIDgyNDAgcmVhdGlucyB0aGUgY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5IEZJWE1FOiB3YXMgMHgzMiovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVggICAgICAgICAgIDB4MzIgLyogaG93IGxvbmcgdGhlIDgyNDAgcmVhdGlucyB0aGUgY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5IEZJWE1FOiB3YXMgMHgzMiovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0RTQ0QJMHgyMAkvKiBTRFJBTSBkYXRhIGluIHNhbXBsZSBjbG9jayBkZWxheSAtIG5vdGUgYm90dG9tIDMgYml0cyBNVVNUIGJlIDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9EU0NECTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkgLSBub3RlIGJvdHRvbSAzIGJpdHMgTVVTVCBiZSAwICovCiAKIC8qIE1lbW9yeSBiYW5rIHNldHRpbmdzLgogICogT25seSBiaXRzIDIwLTI5IGFyZSBhY3R1YWxseSB1c2VkIGZyb20gdGhlc2UgdmFsZXMgdG8gc2V0IHRoZQpAQCAtMjEyLDY5ICsyMTIsNjkgQEAKICAqIGFkZHJlc3MuIFJlZmVyIHRvIHRoZSBNUEM4MjQwIGJvb2suCiAgKi8KIAotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkgICAgKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFICAgIDEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJICAgIChDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRSAgICAwCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJICAgIDB4ZmYKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCSAgICAweGZmCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAgKDB4ODAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgICgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIHBlciBmbGFzaAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIHBlciBmbGFzaAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogCiAJLyogV2FyaW5pbmc6IGVudmlyb25tZW50IGlzIG5vdCBFTUJFRERFRCBpbiB0aGUgVS1Cb290IGNvZGUuCkBAIC0yODgsOSArMjg4LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01WQkNfUC5oIGIvaW5jbHVkZS9jb25maWdzL01WQkNfUC5oCmluZGV4IDIxNDc1ZmIuLmNkOTEwZWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NVkJDX1AuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVZCQ19QLmgKQEAgLTMyLDIxICszMiwyMSBAQAogI2RlZmluZSBDT05GSUdfTVBDNXh4eAkxCiAjZGVmaW5lIENPTkZJR19NUEM1MjAwIAkxCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCTEKIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmZGVmIENPTkZJR19DTURfS0dEQgotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXs5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7OTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDB9CiAKICNkZWZpbmUgQ09ORklHX1BDSQkJMQogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJMQpAQCAtNjEsNyArNjEsNyBAQAogI2RlZmluZSBDT05GSUdfUENJX0lPX1BIWVMJQ09ORklHX1BDSV9JT19CVVMKICNkZWZpbmUgQ09ORklHX1BDSV9JT19TSVpFCTB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfWExCX1BJUEVMSU5JTkcJMQorI2RlZmluZSBDT05GSUdfU1lTX1hMQl9QSVBFTElOSU5HCTEKICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkxCiAKICNkZWZpbmUgTVZfQ0kJCQltdkJsdWVDT1VHQVItUApAQCAtMTkwLDMzICsxOTAsMzMgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCi0jZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCisjZGVmaW5lIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KICN1bmRlZiAJQ09ORklHX0ZMQVNIXzE2QklUCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9BTURfUkVTRVQgMQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQgMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk1MDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk1MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYKIAotI2RlZmluZSBDRkdfTE9XQk9PVAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAotI3VuZGVmCUNGR19GTEFTSF9QUk9URUNUSU9OCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweEZGRkUwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwMApAQCAtMjI3LDI2ICsyMjcsMjYgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0vKiBDRkdfTU9OSVRPUl9MRU4gbXVzdCBiZSBhIG11bHRpcGxlIG9mIENPTkZJR19FTlZfU0VDVF9TSVpFICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQorLyogQ09ORklHX1NZU19NT05JVE9SX0xFTiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yNjMsNTIgKzI2Myw1MiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgCSI+ICIKLSN1bmRlZiAJQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyIAkiPiAiCisjdW5kZWYgCUNPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCiAjaWZkZWYgQ09ORklHX0NNRF9LR0RCCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQKICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwODAwMDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAyZjAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCiAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAyMDAwMDAwCiAvKiBkZWZhdWx0IGxvY2F0aW9uIGZvciB0ZnRwIGFuZCBib290bSAqLwogI2RlZmluZSBDT05GSUdfTE9BREFERFIgCTB4MDAyMDAwMDAKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDIwMDAwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MjAwMDAwMDQKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCQkoSElEMF9JQ0UgfCBISUQwX0lDRkkpCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJKEhJRDBfSUNFIHwgSElEMF9JQ0ZJKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAwCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNDc4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwZjAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzAzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwZjAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMwMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4MDAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4MDAwMDAxMDAKIAogI3VuZGVmIEZQR0FfREVCVUcKLSN1bmRlZiBDRkdfRlBHQV9QUk9HX0ZFRURCQUNLCi0jZGVmaW5lIENPTkZJR19GUEdBCQlDRkdfQUxURVJBX0NZQ0xPTjIKKyN1bmRlZiBDT05GSUdfU1lTX0ZQR0FfUFJPR19GRUVEQkFDSworI2RlZmluZSBDT05GSUdfRlBHQQkJQ09ORklHX1NZU19BTFRFUkFfQ1lDTE9OMgogI2RlZmluZSBDT05GSUdfRlBHQV9BTFRFUkEJMQogI2RlZmluZSBDT05GSUdfRlBHQV9DWUNMT04yCTEKICNkZWZpbmUgQ09ORklHX0ZQR0FfQ09VTlQJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01WQkxNNy5oIGIvaW5jbHVkZS9jb25maWdzL01WQkxNNy5oCmluZGV4IGVjMzZmNTUuLmJjMmQ4MjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NVkJMTTcuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVZCTE03LmgKQEAgLTM3LDcgKzM3LDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzgzNFgJMQogI2RlZmluZSBDT05GSUdfTVBDODM0MwkxCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEUwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfODNYWF9HRU5FUklDX1BDSQpAQCAtNTQsOTQgKzU0LDk0IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAotI2RlZmluZSBDRkdfSTJDMl9PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBERFIgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfRERSX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJQ0ZHX0REUl9CQVNFCi0jZGVmaW5lIENGR184M1hYX0REUl9VU0VTX0NTMAkxCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCSg2MDw8MjApCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKDcwPDwyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfODNYWF9ERFJfVVNFU19DUzAJMQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKDYwPDwyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKDcwPDwyMCkKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMCShERFJfU0RSQU1fQ0xLX0NOVExfU1NfRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMCShERFJfU0RSQU1fQ0xLX0NOVExfU1NfRU4gfCBcCiAJCQkJRERSX1NEUkFNX0NMS19DTlRMX0NMS19BREpVU1RfMDUKIAotI2RlZmluZSBDRkdfRERSX1NJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQkyNTYKIAogLyogSEMsIDc1T2htLCBERFItSUksIERSUSAqLwotI2RlZmluZSBDRkdfRERSQ0RSCQkweDgwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRERSQ0RSCQkweDgwMDAwMDAxCiAvKiBFTiwgT0RUX1dSLCAzQkEsIDE0cm93LCAxMGNvbCAqLwotI2RlZmluZSBDRkdfRERSX0NTMF9DT05GSUcJMHg4MDAxNDEwMgotI2RlZmluZSBDRkdfRERSX0NTMV9DT05GSUcJMHgwCi0jZGVmaW5lIENGR19ERFJfQ1MyX0NPTkZJRwkweDAKLSNkZWZpbmUgQ0ZHX0REUl9DUzNfQ09ORklHCTB4MAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQ09ORklHCTB4ODAwMTQxMDIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MxX0NPTkZJRwkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MyX0NPTkZJRwkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MzX0NPTkZJRwkweDAKIAotI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMGYKLSNkZWZpbmUgQ0ZHX0REUl9DUzFfQk5EUwkweDAKLSNkZWZpbmUgQ0ZHX0REUl9DUzJfQk5EUwkweDAKLSNkZWZpbmUgQ0ZHX0REUl9DUzNfQk5EUwkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzFfQk5EUwkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MyX0JORFMJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTM19CTkRTCTB4MAogCi0jZGVmaW5lIENGR19ERFJfQ0xLX0NOVEwJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DTEtfQ05UTAkweDAyMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMAkweDAwMjYwODAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHgyNjI1YjIyMQotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MWY5ODIwYzcKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18wCTB4MDAyNjA4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzEJMHgyNjI1YjIyMQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkweDFmOTgyMGM3CisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18zCTB4MDAwMDAwMDAKIAogLyogfk1FTV9FTiwgU1JFTiwgRERSLUlJLCAzMl9CRSAqLwotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NGRwkweDQzMDgwMDAwCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQ0ZHMgkweDAwNDAxMDAwCi0jZGVmaW5lIENGR19ERFJfSU5URVJWQUwJMHgwNDA2MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcJMHg0MzA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9DRkcyCTB4MDA0MDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNDA2MDEwMAogCi0jZGVmaW5lIENGR19ERFJfTU9ERQkJMHgwNzhlMDIzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkweDA3OGUwMjMyCiAKIC8qIEZsYXNoICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkVfU0hJRlQJMwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkVfU0hJRlQJMworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCUl9QU18xNiB8IEJSX1YpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkoKH4oQ0ZHX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgfCBPUl9VUE1fWEFNIHwgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJfUFNfMTYgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSgofihDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSAxKSA8PCAyMCkgfCBPUl9VUE1fWEFNIHwgIFwKIAkJCQlPUl9HUENNX0NTTlQgfCBPUl9HUENNX0FDU19ESVYyIHwgT1JfR1BDTV9YQUNTfFwKIAkJCQlPUl9HUENNX1NDWV8xNSB8IE9SX0dQQ01fVFJMWCB8IE9SX0dQQ01fRUhUUiB8IFwKIAkJCQlPUl9HUENNX0VBRCkKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0xCTEFXQVIwX1BSRUxJTQkoTEJMQVdBUl9FTiB8ICgweDEzICsgQ0ZHX0ZMQVNIX1NJWkVfU0hJRlQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjBfUFJFTElNCShMQkxBV0FSX0VOIHwgKDB4MTMgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkVfU0hJRlQpKQogCiAvKgogICogVS1Cb290IG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSN1bmRlZglDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhGRDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhGRDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4MTAwCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4MTAwCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0vKiBDRkdfTU9OSVRPUl9MRU4gbXVzdCBiZSBhIG11bHRpcGxlIG9mIENPTkZJR19FTlZfU0VDVF9TSVpFICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkKKy8qIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gbXVzdCBiZSBhIG11bHRpcGxlIG9mIENPTkZJR19FTlZfU0VDVF9TSVpFICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KQogCiAvKgogICogTG9jYWwgQnVzIExDUlIgYW5kIExCQ1IgcmVncwpAQCAtMTQ5LDMyICsxNDksMzIgQEAKICAqIEV4dGVybmFsIExvY2FsIEJ1cyByYXRlIGlzCiAgKiAgQ0xLSU4gKiBIUkNXTF9DU0JfVE9fQ0xLSU4gLyBIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEsgLyBMQ1JSX0NMS0RJVgogICovCi0jZGVmaW5lIENGR19MQ1JSCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl80KQotI2RlZmluZSBDRkdfTEJDX0xCQ1IJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xDUlIJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzQpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJMHgwMDAwMDAwMAogCiAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyLCBhYm91dCA2dXMgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCTB4MzIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkweDMyMDAwMDAwCiAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkweDIwMDAwMDAwCiAKIC8qCiAgKiBTZXJpYWwgUG9ydAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgMTE1MjAwfQogCiAjZGVmaW5lIENPTkZJR19DT05TT0xFCQl0dHlTMAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SICsgMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfSU1NUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUiArIDB4NDYwMCkKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwogI2RlZmluZSBDT05GSUdfT0ZfTElCRkRUCQkxCkBAIC0xODUsMTUgKzE4NSwxNSBAQAogLyoKICAqIFBDSQogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NTUlPX0JBU0UJKENGR19QQ0kxX01FTV9CQVNFICsgQ0ZHX1BDSTFfTUVNX1NJWkUpCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fUEhZUwlDRkdfUENJMV9NTUlPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTU1JT19TSVpFCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhFMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgKyBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX1BIWVMJQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19TSVpFCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweEUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDEwMDAwMDAKIAogI2RlZmluZSBfSU9fQkFTRQkJMHgwMDAwMDAwMAogCkBAIC0yMDcsOSArMjA3LDkgQEAKIAogLyogVFNFQyAqLwogI2RlZmluZSBDT05GSUdfR01JSQotI2RlZmluZSBDRkdfVlNDODYwMV9TS0VXRklYCi0jZGVmaW5lCUNGR19WU0M4NjAxX1NLRVdfVFgJMwotI2RlZmluZQlDRkdfVlNDODYwMV9TS0VXX1JYCTMKKyNkZWZpbmUgQ09ORklHX1NZU19WU0M4NjAxX1NLRVdGSVgKKyNkZWZpbmUJQ09ORklHX1NZU19WU0M4NjAxX1NLRVdfVFgJMworI2RlZmluZQlDT05GSUdfU1lTX1ZTQzg2MDFfU0tFV19SWAkzCiAKICNkZWZpbmUgQ09ORklHX1RTRUMxCiAjZGVmaW5lIENPTkZJR19UU0VDMgpAQCAtMjE3LDggKzIxNyw4IEBACiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMAogI2RlZmluZSBDT05GSUdfVFNFQzFfTkFNRQkiVFNFQzAiCiAjZGVmaW5lIENPTkZJR19GRUMxX1BIWV9OT1JYRVJSCi0jZGVmaW5lIENGR19UU0VDMV9PRkZTRVQJMHgyNDAwMAotI2RlZmluZSBDRkdfVFNFQzEJCShDRkdfSU1NUitDRkdfVFNFQzFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxX09GRlNFVAkweDI0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzEJCShDT05GSUdfU1lTX0lNTVIrQ09ORklHX1NZU19UU0VDMV9PRkZTRVQpCiAjZGVmaW5lIFRTRUMxX1BIWV9BRERSCQkweDEwCiAjZGVmaW5lIFRTRUMxX1BIWUlEWAkJMAogI2RlZmluZSBUU0VDMV9GTEFHUwkJKFRTRUNfR0lHQUJJVHxUU0VDX1JFRFVDRUQpCkBAIC0yMjYsOCArMjI2LDggQEAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCiAjZGVmaW5lIENPTkZJR19UU0VDMl9OQU1FICAJIlRTRUMxIgogI2RlZmluZSBDT05GSUdfRkVDMl9QSFlfTk9SWEVSUgotI2RlZmluZSBDRkdfVFNFQzJfT0ZGU0VUCTB4MjUwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMyIAkJKENGR19JTU1SK0NGR19UU0VDMl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzJfT0ZGU0VUCTB4MjUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMiAJCShDT05GSUdfU1lTX0lNTVIrQ09ORklHX1NZU19UU0VDMl9PRkZTRVQpCiAjZGVmaW5lIFRTRUMyX1BIWV9BRERSCQkweDExCiAjZGVmaW5lIFRTRUMyX1BIWUlEWAkJMAogI2RlZmluZSBUU0VDMl9GTEFHUwkJKFRTRUNfR0lHQUJJVHxUU0VDX1JFRFVDRUQpCkBAIC0yNTIsNyArMjUyLDcgQEAKIC8qCiAgKiBFbnZpcm9ubWVudAogICovCi0jdW5kZWYgIENGR19GTEFTSF9QUk9URUNUSU9OCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQpAQCAtMjYzLDcgKzI2Myw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQgCUNPTkZJR19FTlZfU0laRQogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAKIC8qCiAgKiBDb21tYW5kIGxpbmUgY29uZmlndXJhdGlvbi4KQEAgLTI4NiwxMDIgKzI4NiwxMDIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogCiAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAKIC8qIGRlZmF1bHQgbG9jYXRpb24gZm9yIHRmdHAgYW5kIGJvb3RtICovCiAjZGVmaW5lIENPTkZJR19MT0FEQUREUgkweDIwMDAwMAogCi0jZGVmaW5lIENGR19QUk9NUFQJIm12QkwtTTc+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIm12QkwtTTc+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CiAKLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQotI2RlZmluZSBDRkdfSFoJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XCTB4MAotI2RlZmluZSBDRkdfSFJDV19ISUdICTB4MAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XCTB4MAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfSElHSAkweDAKIAogLyoKICAqIFN5c3RlbSBwZXJmb3JtYW5jZQogICovCi0jZGVmaW5lIENGR19BQ1JfUElQRV9ERVAJMwkvKiBBcmJpdGVyIHBpcGVsaW5lIGRlcHRoICgwLTMpICovCi0jZGVmaW5lIENGR19BQ1JfUlBUQ05UCQkzCS8qIEFyYml0ZXIgcmVwZWF0IGNvdW50ICgwLTcpICovCi0jZGVmaW5lIENGR19TUENSX1RTRUMxRVAJMwkvKiBUU0VDMSBlbWVyZ2VuY3kgcHJpb3JpdHkgKDAtMykgKi8KLSNkZWZpbmUgQ0ZHX1NQQ1JfVFNFQzJFUAkzCS8qIFRTRUMyIGVtZXJnZW5jeSBwcmlvcml0eSAoMC0zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDUl9QSVBFX0RFUAkzCS8qIEFyYml0ZXIgcGlwZWxpbmUgZGVwdGggKDAtMykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1JfUlBUQ05UCQkzCS8qIEFyYml0ZXIgcmVwZWF0IGNvdW50ICgwLTcpICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BDUl9UU0VDMUVQCTMJLyogVFNFQzEgZW1lcmdlbmN5IHByaW9yaXR5ICgwLTMpICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BDUl9UU0VDMkVQCTMJLyogVFNFQzIgZW1lcmdlbmN5IHByaW9yaXR5ICgwLTMpICovCiAKIC8qIGNsb2NraW5nICovCi0jZGVmaW5lIENGR19TQ0NSX0VOQ0NNCQkwCi0jZGVmaW5lIENGR19TQ0NSX1VTQk1QSENNCTAKLSNkZWZpbmUJQ0ZHX1NDQ1JfVVNCRFJDTQkyCi0jZGVmaW5lIENGR19TQ0NSX1RTRUMxQ00JMQotI2RlZmluZSBDRkdfU0NDUl9UU0VDMkNNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX0VOQ0NNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUl9VU0JNUEhDTQkwCisjZGVmaW5lCUNPTkZJR19TWVNfU0NDUl9VU0JEUkNNCTIKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSX1RTRUMxQ00JMQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1JfVFNFQzJDTQkxCiAKLSNkZWZpbmUgQ0ZHX1NJQ1JICTB4MWZmZjgwMDMKLSNkZWZpbmUgQ0ZHX1NJQ1JMCShTSUNSTF9MRFBfQSB8IFNJQ1JMX1VTQjEgfCBTSUNSTF9VU0IwKQorI2RlZmluZSBDT05GSUdfU1lTX1NJQ1JICTB4MWZmZjgwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTAkoU0lDUkxfTERQX0EgfCBTSUNSTF9VU0IxIHwgU0lDUkxfVVNCMCkKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCTB4MDAwMDAwMDAwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCUNGR19ISUQwX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCUNPTkZJR19TWVNfSElEMF9JTklUCiAKLSNkZWZpbmUgQ0ZHX0hJRDIJSElEMl9IQkUKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCUhJRDJfSEJFCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQogCiAvKiBERFIgICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSSAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUMkwJKENGR19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8XAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHxcCiAJCQkJQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoQ0ZHX1BDSTFfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIG5vIFBDSTIgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTAkwCi0jZGVmaW5lIENGR19JQkFUM1UJMAotI2RlZmluZSBDRkdfSUJBVDRMCTAKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCTAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVCTAKIAogLyogSU1NUkJBUiBAIDB4RTAwMDAwMDAsIFBDSSBJTyBAIDB4RTIwMDAwMDAgJiBCQ1NSIEAgMHhFMjQwMDAwMCAqLwotI2RlZmluZSBDRkdfSUJBVDVMCShDRkdfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IFwKIAkJCQlCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfSU1NUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkoQ09ORklHX1NZU19JTU1SIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIHN0YWNrIGluIERDQUNIRSAweEZERjAwMDAwICYgRkxBU0ggQCAweEZGODAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUNkwJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNlUJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkwCi0jZGVmaW5lIENGR19JQkFUN1UJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNlUJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkwCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQotI2RlZmluZSBDRkdfREJBVDRMCUNGR19JQkFUNEwKLSNkZWZpbmUgQ0ZHX0RCQVQ0VQlDRkdfSUJBVDRVCi0jZGVmaW5lIENGR19EQkFUNUwJQ0ZHX0lCQVQ1TAotI2RlZmluZSBDRkdfREJBVDVVCUNGR19JQkFUNVUKLSNkZWZpbmUgQ0ZHX0RCQVQ2TAlDRkdfSUJBVDZMCi0jZGVmaW5lIENGR19EQkFUNlUJQ0ZHX0lCQVQ2VQotI2RlZmluZSBDRkdfREJBVDdMCUNGR19JQkFUN0wKLSNkZWZpbmUgQ0ZHX0RCQVQ3VQlDRkdfSUJBVDdVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCUNPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCUNPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMCUNPTkZJR19TWVNfSUJBVDRMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCUNPTkZJR19TWVNfSUJBVDRVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVMCUNPTkZJR19TWVNfSUJBVDVMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVCUNPTkZJR19TWVNfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCUNPTkZJR19TWVNfSUJBVDZMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCUNPTkZJR19TWVNfSUJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdMCUNPTkZJR19TWVNfSUJBVDdMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCUNPTkZJR19TWVNfSUJBVDdVCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtNDc1LDcgKzQ3NSw3IEBACiAJIiIKIAogI2RlZmluZSBDT05GSUdfRlBHQV9DT1VOVAkxCi0jZGVmaW5lIENPTkZJR19GUEdBCQlDRkdfQUxURVJBX0NZQ0xPTjIKKyNkZWZpbmUgQ09ORklHX0ZQR0EJCUNPTkZJR19TWVNfQUxURVJBX0NZQ0xPTjIKICNkZWZpbmUgQ09ORklHX0ZQR0FfQUxURVJBCiAjZGVmaW5lIENPTkZJR19GUEdBX0NZQ0xPTjIKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01WQkxVRS5oIGIvaW5jbHVkZS9jb25maWdzL01WQkxVRS5oCmluZGV4IDI1MThkYmUuLjMxYjlmMDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9NVkJMVUUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVZCTFVFLmgKQEAgLTYzLDcgKzYzLDcgQEAKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogI2RlZmluZSBDT05GSUdfQk9PVF9SRVRSWV9USU1FCS0xCkBAIC0xMTcsMTQgKzExNywxNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCQkqLwogCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIG5mc2Jvb3QiCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJCSJyb290PS9kZXYvbXRkYmxvY2s1IHJvIHJvb3Rmc3R5cGU9amZmczIiCkBAIC0xNjgsNTQgKzE2OCw1NCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAweEZGRjAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgIDB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCi0jZGVmaW5lIENGR19FVU1CX0FERFIJICAgIDB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkgICAgMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTiAgICAgMHgwMDEwMDAwMAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTiAgICAgICg1MTIgPDwgMTApIC8qIFJlc2VydmUgc29tZSBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gICAgIDB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgKDUxMiA8PCAxMCkgLyogUmVzZXJ2ZSBzb21lIGtCIGZvciBtYWxsb2MoKSAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECSAgICAweDAwODAwMDAwCS8qIDFNIC4uLiA4TSBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJICAgIDB4MDA4MDAwMDAJLyogMU0gLi4uIDhNIGluIERSQU0JCSovCiAKIC8qIE1heGltdW0gYW1vdW50IG9mIFJBTS4gICovCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUgICAgMHgxMDAwMDAwMAkvKiAwIC4uIDI1Nk1CIG9mIChTKURSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgxMDAwMDAwMAkvKiAwIC4uIDI1Nk1CIG9mIChTKURSQU0gKi8KIAogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfRkxBU0hfQkFTRQotI3VuZGVmIENGR19SQU1CT09UCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19JU0FfSU8gICAgICAweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPICAgICAgMHhGRTAwMDAwMAogCiAvKgogICogc2VyaWFsIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLICAgICBnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyAgICAgZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMSAgICAoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMiAgICAoQ0ZHX0VVTUJfQUREUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgICAgKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMiAgICAoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ2MDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgIDEyOAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTIyNSwzNSArMjI1LDM1IEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzAwMDAwMAotI2RlZmluZSBDRkdfSFoJCQkgMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCSAxMDAwMAogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4gICovCi0jZGVmaW5lIENGR19ST01OQUwgICAgICA3Ci0jZGVmaW5lIENGR19ST01GQUwgICAgICAxMQorI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTCAgICAgIDcKKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwgICAgICAxMQogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMi4gICovCi0jZGVmaW5lIENGR19UU1dBSVQgICAgICAweDUKLSNkZWZpbmUgQ0ZHX1JFRklOVCAgICAgIDQzMAorI2RlZmluZSBDT05GSUdfU1lTX1RTV0FJVCAgICAgIDB4NQorI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVCAgICAgIDQzMAogCiAvKiBCdXJzdCBUbyBQcmVjaGFyZ2UuIEJpdHMgb2YgdGhpcyB2YWx1ZSBnbyB0byBNQ0NSMyBhbmQgTUNDUjQuICAqLwotI2RlZmluZSBDRkdfQlNUT1BSRSAgICAgMTIxCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRSAgICAgMTIxCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLiAgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQyAgICAgIDgKKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMgICAgICA4CiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LiAgKi8KLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUICAgIDMKLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFICAgIDUKLSNkZWZpbmUgQ0ZHX0FDVE9SVyAgICAgIDMKLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUICAzCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQotI2RlZmluZSBDRkdfRVhUUk9NICAgICAgMQotI2RlZmluZSBDRkdfUkVHRElNTSAgICAgMAotI2RlZmluZSBDRkdfREJVU19TSVpFMiAgMQotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAgMAorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUICAgIDMKKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRSAgICA1CisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXICAgICAgMworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUICAzCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRST00gICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfUkVHRElNTSAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0RCVVNfU0laRTIgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUCAwCiAKLSNkZWZpbmUgQ0ZHX1BHTUFYICAgICAgIDB4MzIKLSNkZWZpbmUgQ0ZHX1NEUkFNX0RTQ0QgIDB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWCAgICAgICAweDMyCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRFNDRCAgMHgyMAogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5ncy4KICAqIE9ubHkgYml0cyAyMC0yOSBhcmUgYWN0dWFsbHkgdXNlZCBmcm9tIHRoZXNlIHZhbGVzIHRvIHNldCB0aGUKQEAgLTI2Miw3MCArMjYyLDcwIEBACiAgKiBhZGRyZXNzLiBSZWZlciB0byB0aGUgTVBDODI0MCBib29rLgogICovCiAKLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJICAgIChDRkdfTUFYX1JBTV9TSVpFIC0gMSkKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRSAgICAxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVCAgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5EICAgICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVCAgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5EICAgICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVCAgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5EICAgICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVCAgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5EICAgICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVCAgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5EICAgICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVCAgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5EICAgICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVCAgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5EICAgICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJICAgIChDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVCAgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORCAgICAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFICAgIDAKIAotI2RlZmluZSBDRkdfT0RDUgkgICAgMHhmZgorI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJICAgIDB4ZmYKIAotI2RlZmluZSBDRkdfSUJBVDBMICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAgKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgICgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAgKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDBMICBDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUgIENGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVICBDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwgIENGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAgQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMICBDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UgIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgIENPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVICBDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgIENPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMICBDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAgQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgIENPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVICBDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSAgICAoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSN1bmRlZiAgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTYzCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2gJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTYzCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2gJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAogCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtMzM3LDkgKzMzNyw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01WUzEuaCBiL2luY2x1ZGUvY29uZmlncy9NVlMxLmgKaW5kZXggZGE4MjMxYy4uYjAzNjEyNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL01WUzEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTVZTMS5oCkBAIC01OCw3ICs1OCw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZC9lbmFibGVkCSovCiAKQEAgLTEwMCwzMSArMTAwLDMxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jdW5kZWYJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiBIdXNoIHBhcnNlIGZvciBVLUJvb3QgPz8gKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIEh1c2ggcGFyc2UgZm9yIFUtQm9vdCA/PyAqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTEzNCw0NSArMTM0LDQ1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKGZvciBBTUQzMjBEQiBjaGlwKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAoZm9yIEFNRDMyMERCIGNoaXApCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogCkBAIC0xODMsOSArMTgzLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTk1LDEwICsxOTUsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUiAgIChTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJICAgICBTWVBDUl9TV0UJfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IgICAoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgIChTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwNiwyNyArMjA2LDI3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IgIChTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yMzUsNyArMjM1LDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKgogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI0NCw3ICsyNDQsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTI1NCwxNCArMjU0LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTI3NCwzMCArMjc0LDMwIEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQJIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkwCS8qIG1heC4gbm8uIG9mIElERSBidXNlcwkJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTAJLyogbWF4LiBuby4gb2YgZHJpdmVzIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMAkvKiBtYXguIG5vLiBvZiBJREUgYnVzZXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMAkvKiBtYXguIG5vLiBvZiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzEyLDMzICszMTIsMzMgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCiAvKiA1MCBNSHogQ1BVIC0gNTAgTUh6IGJ1czogQUNTID0gMDAsIFRSTFggPSAxLCBDU05UID0gMSwgU0NZID0gMiwgRUhUUiA9IDEgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfMl9DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCiAvKgotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzVfQ0xLIHwgT1JfRUhUUikKICovCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKICNpZmRlZiBDT05GSUdfTVZTXzE2QklUX0ZMQVNICi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCiAjZW5kaWYKIAotI3VuZGVmIENGR19PUjFfUkVNQVAKLSN1bmRlZiBDRkdfT1IxX1BSRUxJTQotI3VuZGVmIENGR19CUjFfUFJFTElNCisjdW5kZWYgQ09ORklHX1NZU19PUjFfUkVNQVAKKyN1bmRlZiBDT05GSUdfU1lTX09SMV9QUkVMSU0KKyN1bmRlZiBDT05GSUdfU1lTX0JSMV9QUkVMSU0KIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQogICoKQEAgLTM0OCwxMyArMzQ4LDEzIEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAotI3VuZGVmIENGR19PUjNfUFJFTElNCi0jdW5kZWYgQ0ZHX0JSM19QUkVMSU0KKyN1bmRlZiBDT05GSUdfU1lTX09SM19QUkVMSU0KKyN1bmRlZiBDT05GSUdfU1lTX0JSM19QUkVMSU0KIAogCiAvKgpAQCAtMzgzLDI2ICszODMsMjYgQEAKICAqIDY2IE1oeiA9PiA2Ni4wMDAuMDAwIC8gRGl2aWRlciA9IDEyOQogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgOTgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDk4CiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTcgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL01pZ29SLmggYi9pbmNsdWRlL2NvbmZpZ3MvTWlnb1IuaAppbmRleCA3ZDkwZTE2Li5lMTcxZjc2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTWlnb1IuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTWlnb1IuaApAQCAtNTgsOTAgKzU4LDkwIEBACiAjZGVmaW5lIE1JR09fUl9GTEFTSF9CQVNFXzEJKDB4QTAwMDAwMDApCiAjZGVmaW5lIE1JR09fUl9GTEFTSF9CQU5LX1NJWkUJKDY0ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIEJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlICovCi0jZGVmaW5lIENGR19QQlNJWkUJCTI1NgkJLyogQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0ICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IGFyZ3MgYWNjZXB0ZWQgZm9yIG1vbml0b3IgY29tbWFuZHMgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCTUxMgkJLyogQnVmZmVyIHNpemUgZm9yIEJvb3QgQXJndW1lbnRzIHBhc3NlZCB0byBrZXJuZWwgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCTI1NgkJLyogQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJNTEyCQkvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgcGFzc2VkIHRvIGtlcm5lbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLwogCiAvKiBTQ0lGICovCiAjZGVmaW5lIENPTkZJR19TQ0lGX0NPTlNPTEUJMQogI2RlZmluZSBDT05GSUdfQ09OU19TQ0lGMAkxCi0jdW5kZWYgIENGR19DT05TT0xFX0lORk9fUVVJRVQJLyogU3VwcHJlc3MgZGlzcGxheSBvZiBjb25zb2xlCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCS8qIFN1cHByZXNzIGRpc3BsYXkgb2YgY29uc29sZQogCQkJCQkJCQkgICBpbmZvcm1hdGlvbiBhdCBib290ICovCi0jdW5kZWYgIENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCi0jdW5kZWYgIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUKKyN1bmRlZiAgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJKE1JR09fUl9TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCShNSUdPX1JfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKIAogLyogRW5hYmxlIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUsIG1lbW9yeSB0ZXN0ICovCi0jdW5kZWYgIENGR19BTFRfTUVNVEVTVAorI3VuZGVmICBDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAvKiBTY3JhdGNoIGFkZHJlc3MgdXNlZCBieSB0aGUgYWx0ZXJuYXRlIG1lbW9yeSB0ZXN0ICovCi0jdW5kZWYgIENGR19NRU1URVNUX1NDUkFUQ0gKKyN1bmRlZiAgQ09ORklHX1NZU19NRU1URVNUX1NDUkFUQ0gKIAogLyogRW5hYmxlIHRlbXBvcmFyeSBiYXVkcmF0ZSBjaGFuZ2Ugd2hpbGUgc2VyaWFsIGRvd25sb2FkICovCi0jdW5kZWYgIENGR19MT0FEU19CQVVEX0NIQU5HRQorI3VuZGVmICBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJKE1JR09fUl9TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJKE1JR09fUl9TRFJBTV9CQVNFKQogLyogbWF5YmUgbW9yZSwgYnV0IGlmIHNvIHUtYm9vdCBkb2Vzbid0IGtub3cgYWJvdXQgaXQuLi4gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJKDY0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkoNjQgKiAxMDI0ICogMTAyNCkKIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzIGZvciBzY3JpcHRzID8hPyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCShDRkdfU0RSQU1fQkFTRSArIDE2ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAxNiAqIDEwMjQgKiAxMDI0KQogCiAvKiBBZGRyZXNzIG9mIHUtYm9vdCBpbWFnZSBpbiBGbGFzaCAoTk9UIHJ1biB0aW1lIGFkZHJlc3MgaW4gU0RSQU0pID8hPyAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShNSUdPX1JfRkxBU0hfQkFTRV8xKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoTUlHT19SX0ZMQVNIX0JBU0VfMSkKIC8qIE1vbml0b3Igc2l6ZSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JKDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDEyOCAqIDEwMjQpCiAvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoMjU2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSgyNTYgKiAxMDI0KQogLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCSgyNTYpCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCSgyNTYpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4ICogMTAyNCAqIDEwMjQpCiAKIC8qIEZMQVNIICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCiAvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAvKiBQaHlzaWNhbCBzdGFydCBhZGRyZXNzIG9mIEZsYXNoIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkoTUlHT19SX0ZMQVNIX0JBU0VfMSkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCShNSUdPX1JfRkxBU0hfQkFTRV8xKQogLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIGVhY2ggRmxhc2ggY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCiAKIC8qIGlmIHlvdSB1c2UgYWxsIE5PUiBGbGFzaCAsIHlvdSBjaGFuZ2UgZGlwLXN3aXRjaC4gUGxlYXNlIHNlZSBNSUdPX1IwMSBNYW51YWwuICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFICsgKDAgKiBNSUdPX1JfRkxBU0hfQkFOS19TSVpFKSB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDAgKiBNSUdPX1JfRkxBU0hfQkFOS19TSVpFKSB9CiAKIC8qIFRpbWVvdXQgZm9yIEZsYXNoIGVyYXNlIG9wZXJhdGlvbnMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMyAqIDEwMDApCiAvKiBUaW1lb3V0IGZvciBGbGFzaCB3cml0ZSBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDMgKiAxMDAwKQogLyogVGltZW91dCBmb3IgRmxhc2ggc2V0IHNlY3RvciBsb2NrIGJpdCBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCSgzICogMTAwMCkKIC8qIFRpbWVvdXQgZm9yIEZsYXNoIGNsZWFyIGxvY2sgYml0IG9wZXJhdGlvbnMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCSgzICogMTAwMCkKIAogLyogVXNlIGhhcmR3YXJlIGZsYXNoIHNlY3RvcnMgcHJvdGVjdGlvbiBpbnN0ZWFkIG9mIFUtQm9vdCBzb2Z0d2FyZSBwcm90ZWN0aW9uICovCi0jdW5kZWYgIENGR19GTEFTSF9QUk9URUNUSU9OCi0jdW5kZWYgIENGR19ESVJFQ1RfRkxBU0hfVEZUUAorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KKyN1bmRlZiAgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAvKiBFTlYgc2V0dGluZyAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDEyOCAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTikKLS8qIE9mZnNldCBvZiBlbnYgRmxhc2ggc2VjdG9yIHJlbGF0aXZlIHRvIENGR19GTEFTSF9CQVNFICovCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisvKiBPZmZzZXQgb2YgZW52IEZsYXNoIHNlY3RvciByZWxhdGl2ZSB0byBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0VDVF9TSVpFKQogCiAvKiBCb2FyZCBDbG9jayAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMzMzMzMzCiAjZGVmaW5lIFRNVV9DTEtfRElWSURFUgkJKDQpCS8qIDQgKGRlZmF1bHQpLCAxNiwgNjQsIDI1NiBvciAxMDI0ICovCi0jZGVmaW5lIENGR19IWgkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gVE1VX0NMS19ESVZJREVSKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCiAKICNlbmRpZgkvKiBfX01JR09fUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTkM2NTAuaCBiL2luY2x1ZGUvY29uZmlncy9OQzY1MC5oCmluZGV4IDNlNjRhN2UuLjQyM2NhNzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9OQzY1MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9OQzY1MC5oCkBAIC01NSwxNSArNTUsMTUgQEAKIC8qCiAgKiAxNSBNSHogLSBDUFUgbWluaW11bSBjbG9jawogICovCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01JTgkJMTUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01JTgkJMTUwMDAwMDAKIAogLyoKICAqIDEzMyBNSHogLSBDUFUgbWF4aW11bSBjbG9jawogICovCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAogCi0jZGVmaW5lIENGR19NRUFTVVJFX0NQVUNMSwotI2RlZmluZSBDRkdfOFhYX1hJTgkJCUNPTkZJR184eHhfT1NDTEsKKyNkZWZpbmUgQ09ORklHX1NZU19NRUFTVVJFX0NQVUNMSworI2RlZmluZSBDT05GSUdfU1lTXzhYWF9YSU4JCQlDT05GSUdfOHh4X09TQ0xLCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkJNQkvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMJKi8KICNkZWZpbmUgQ09ORklHX0FVVE9CT09UX0tFWUVECkBAIC05OSwxNCArOTksMTQgQEAKICNkZWZpbmUJQ09ORklHX0ZFQ19FTkVUCQkxCS8qIHVzZSBGRUMgZXRoZXJuZXQgICovCiAjZGVmaW5lIEZFQ19FTkVUCiAjZGVmaW5lIENPTkZJR19NSUkKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQkxCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCTEKIAogCiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwogI3VuZGVmICBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIDEwMCBrSHoJCQkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdmCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogMTAwIGtIegkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdmCiAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgpAQCAtMTQxLDcgKzE0MSw3IEBACiAjZGVmaW5lCUkyQ19UUklTVEFURQl7IF9fSTJDX0RJUiAmPSB+U0RBOyB9CiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJCTB4NTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NTEKIAogCiAvKgpAQCAtMTYyLDI1ICsxNjIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMAkvKiAxIC4uLiA0IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xOTAsNDYgKzE5MCw0NiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUl9TSVpFCQkoKHVpbnQpKDY0ICogMTAyNCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0yNDEsMTUgKzI0MSwxNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgogICogTkFORCBmbGFzaCBzdXBwb3J0CiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU5LDMxICsyNTksMzEgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkJMTEtNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjkyLDcgKzI5Miw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMAl8IFNDQ1JfREZTWU5DMDAJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMAl8IFNDQ1JfREZTWU5DMDAJfCBcCiAJCQkgU0NDUl9ERkJSRzAwCXwgU0NDUl9ERk5MMDAwCXwgU0NDUl9ERk5IMDAwCXwgXAogCQkJIFNDQ1JfREZMQ0QwMDAJfCBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMDEsNyArMzAxLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTMxMSwyOSArMzExLDI5IEBACiAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4NDAwMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IERlZmF1bHQgdmFsdWUgb2YgT1IwIGFmdGVyIHJlc2V0ICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19NU0sgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19NU0sgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzE1X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKIAogLyoKICAqIEJSMiBhbmQgT1IyIChOQU5EIEZsYXNoKSAtIGFkZHJlc3NlZCB0aHJvdWdoIFVQTUIgb24gcmV2IDEKICAqIHJldjIgb25seSB1c2VzIHRoZSBjaGlwc2VsZWN0CiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJMHg1MDAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9TSVpFCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkweDUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TSVpFCQkweDA0MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19OQU5ECShPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX05BTkQJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzE1X0NMSyB8IE9SX0VIVFIgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAoKENGR19OQU5EX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICApCi0jZGVmaW5lIENGR19PUjJfUFJFTElNICAoKCgtQ0ZHX05BTkRfU0laRSkgJiBPUl9BTV9NU0spIHwgT1JfQkkgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0gICgoQ09ORklHX1NZU19OQU5EX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTSAgKCgoLUNPTkZJR19TWVNfTkFORF9TSVpFKSAmIE9SX0FNX01TSykgfCBPUl9CSSApCiAKIC8qCiAgKiBCUjMgYW5kIE9SMyAoU0RSQU0pCkBAIC0zNDQsNDEgKzM0NCw0MSBAQAogIC8qCiAgICogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkKICAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0pCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0pCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfVikKIAogLyoKICAqIEJSNCBhbmQgT1I0IChDUExEKQogICovCi0jZGVmaW5lIENGR19DUExEX0JBU0UgICAgICAgICAgIDB4ODAwMDAwMDAgICAgICAvKiBDUExEICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQ1BMRF9TSVpFICAgICAgICAgICAweDEwMDAwICAgICAgICAgLyogb25seSAxNiB1c2VkICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX0JBU0UgICAgICAgICAgIDB4ODAwMDAwMDAgICAgICAvKiBDUExEICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTERfU0laRSAgICAgICAgICAgMHgxMDAwMCAgICAgICAgIC8qIG9ubHkgMTYgdXNlZCAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19DUExECShPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0NQTEQJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzFfQ0xLKQogCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAoKENGR19DUExEX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTSAgKCgoLUNGR19DUExEX1NJWkUpICYgT1JfQU1fTVNLKSB8IENGR19PUl9USU1JTkdfQ1BMRCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNICAoKENPTkZJR19TWVNfQ1BMRF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNICAoKCgtQ09ORklHX1NZU19DUExEX1NJWkUpICYgT1JfQU1fTVNLKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0NQTEQpCiAKIC8qCiAgKiBCUjUgYW5kIE9SNSAoU1JBTSkKICAqLwotI2RlZmluZSBDRkdfU1JBTV9CQVNFCQkweDYwMDAwMDAwCi0jZGVmaW5lIENGR19TUkFNX1NJWkUJCTB4MDAwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4MDAwODAwMDAKIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NSQU0JKE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU1JBTQkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfMTVfQ0xLIHwgT1JfRUhUUiB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0gICgoQ0ZHX1NSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCi0jZGVmaW5lIENGR19PUjVfUFJFTElNICAoKCgtQ0ZHX1NSQU1fU0laRSkgJiBPUl9BTV9NU0spIHwgQ0ZHX09SX1RJTUlOR19TUkFNKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0gICgoQ09ORklHX1NZU19TUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0gICgoKC1DT05GSUdfU1lTX1NSQU1fU0laRSkgJiBPUl9BTV9NU0spIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU1JBTSkKIAogI2lmIGRlZmluZWQoQ09ORklHX0NQODUwKQogLyoKICAqICBCUjYgYW5kIE9SNiAoRFBSQU0pIC0gb25seSBvbiBDUDg1MAogICovCi0jZGVmaW5lIENGR19PUjZfUFJFTElNICAgICAgICAgIDB4ZmZmZjgxNzAKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0gICAgICAgICAgMHhhMDAwMDQwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0gICAgICAgICAgMHhmZmZmODE3MAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0gICAgICAgICAgMHhhMDAwMDQwMQogI2RlZmluZSBEUFJBTV9CQVNFX0FERFIgICAgICAgICAweGEwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SICAgICAgMQpAQCAtMzkxLDMxICszOTEsMzEgQEAKICAqIDQgICAgTnVtYmVyIG9mIHJlZnJlc2ggY3ljbGVzIHBlciBwZXJpb2QKICAqIDY0ICAgUmVmcmVzaCBjeWNsZSBpbiBtcyBwZXIgbnVtYmVyIG9mIHJvd3MKICAqLwotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJCSgoNDA5NiAqIDY0ICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkJKCg0MDk2ICogNjQgKiAxMDAwKSAvICg0ICogNjQpKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJMzkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMzkKIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFIHwgXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwgXAogCQkJIE1BTVJfUkxGQV8xWCAgICB8IE1BTVJfV0xGQV8xWCAgICB8IE1BTVJfVExGQV80WCkKLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSB8IFwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8IFwKIAkJCSBNQU1SX1JMRkFfMVggICAgfCBNQU1SX1dMRkFfMVggICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTQyMyw3ICs0MjMsNyBAQAogICogTUJNUiBzZXR0aW5ncyBmb3IgTkFORCBmbGFzaAogICovCiAKLSNkZWZpbmUgQ0ZHX01CTVJfTkFORCAoIE1CTVJfV0xGQl81WCApCisjZGVmaW5lIENPTkZJR19TWVNfTUJNUl9OQU5EICggTUJNUl9XTEZCXzVYICkKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTkVUUEhPTkUuaCBiL2luY2x1ZGUvY29uZmlncy9ORVRQSE9ORS5oCmluZGV4IDdjYzYzNjQuLmExNDdhZmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ORVRQSE9ORS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ORVRQSE9ORS5oCkBAIC03Myw3ICs3Myw3IEBACiAKICNkZWZpbmUgQ09ORklHX0FVVE9TQ1JJUFQKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMAkvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC05OSw3ICs5OSw3IEBACiAKICNkZWZpbmUJQ09ORklHX05FVF9NVUxUSQkxCS8qIHRoZSBvbmx5IHdheSB0byBnZXQgdGhlIEZFQyBpbiAqLwogI2RlZmluZQlGRUNfRU5FVAkJMQkvKiBldGguYyBuZWVkcyBpdCB0aGF0IHdheS4uLiAqLwotI3VuZGVmIENGR19ESVNDT1ZFUl9QSFkKKyN1bmRlZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogI2RlZmluZSBDT05GSUdfTUlJCQkxCiAjZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQogI2RlZmluZSBDT05GSUdfUk1JSQkJMQkvKiB1c2UgUk1JSSBpbnRlcmZhY2UgKi8KQEAgLTEzMywyOSArMTMzLDI5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2NSw3NCArMTY1LDc0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAjaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMgotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTQJCTB4NDAwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFNAkJMHg0MDA4MDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4ODAwMDAwMDAKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAjaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCiAjZWxpZiBDT05GSUdfTkVUUEhPTkVfVkVSU0lPTiA9PSAyCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogCi0jZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg2MDAwMCkKKyNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg2MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAKIAotI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDRkdfRkxBU0hfQkFTRSArIDB4NzAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NzAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJQ09ORklHX0VOVl9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQyLDEwICsyNDIsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1NCw5ICsyNTQsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY0LDIwICsyNjQsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTAsMjcgKzI5MCwyNyBAQAogI2lmIENPTkZJR19YSU4gPT0gMTAwMDAwMDAKIAogI2lmIE1QQzhYWF9IWiA9PSAxMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDEyIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDAgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDEwMDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMCA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTAgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMyA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gMjUwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDIgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMyA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoNCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNzUwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDE1IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDAgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2Vsc2UKQEAgLTMyMCwxNSArMzIwLDE1IEBACiAjZWxpZiBDT05GSUdfWElOID09IDUwMDAwMDAwCiAKICNpZiBNUEM4WFhfSFogPT0gMTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgwIDw8IFBMUFJDUl9TX1NISUZUKSB8ICgxMiA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICg0IDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSAxMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDYgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMiA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gIDY2NjY2NjY2Ci0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgxIDw8IFBMUFJDUl9TX1NISUZUKSB8ICg4IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDIgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2Vsc2UKQEAgLTM1MywxMiArMzUzLDEyIEBACiAKICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAjaWYgTVBDOFhYX0haID4gNjY2NjY2NjYKLSNkZWZpbmUgQ0ZHX1NDQ1IJKC8qIFNDQ1JfVEJTCXwgKi8gU0NDUl9DUlFFTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUwl8ICovIFNDQ1JfQ1JRRU4gfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCB8IFNDQ1JfRUJERjAxKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NDQ1IJKC8qIFNDQ1JfVEJTCXwgKi8gU0NDUl9DUlFFTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUwl8ICovIFNDQ1JfQ1JRRU4gfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTM2OSw4ICszNjksOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzg0LDIzICszODQsMjMgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAjaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMgogCiAjZGVmaW5lIEZMQVNIX0JBU0U0X1BSRUxJTQkweDQwMDgwMDAwCS8qIEZMQVNIIGJhbmsgIzEJKi8KIAotI2RlZmluZSBDRkdfT1I0X1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkoKEZMQVNIX0JBU0U0X1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkoKEZMQVNIX0JBU0U0X1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKICNlbmRpZgogCkBAIC00MTIsMTAgKzQxMiwxMCBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJKDI1NiA8PCAyMCkJLyogbWF4IDI1Nk1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JKE9SX0NTTlRfU0FNIHwgT1JfRzVMUykKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JKE9SX0NTTlRfU0FNIHwgT1JfRzVMUykKIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oU0RSQU1fTUFYX1NJWkUgLSAxKSkgfCBDRkdfT1JfVElNSU5HX1NEUkFNKQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfUFNfMzIgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKCgweEZGRkZGRkZGTFUgJiB+KFNEUkFNX01BWF9TSVpFIC0gMSkpIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0pCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1CIHwgQlJfUFNfMzIgfCBCUl9WKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgpAQCAtNDQ4LDM0ICs0NDgsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgMjM0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCSAyMzQKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC01MDEsMTIgKzUwMSwxMiBAQAogCiAvKiBOQU5EICovCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQlOQU5EX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCU5BTkRfQkFTRQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfRUNDX0pGRlMyCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX1VOU0FGRQogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAKICNkZWZpbmUgU0VDVE9SU0laRQkJNTEyCiAjZGVmaW5lIEFERFJfQ09MVU1OCQkxCkBAIC01MTksMzkgKzUxOSwzOSBAQAogLyogQUxFID0gUEQxNywgQ0xFID0gUEUxOCwgQ0UgPSBQRTIwLCBGX1JZX0JZID0gUEUzMSAqLwogI2RlZmluZSBOQU5EX0RJU0FCTEVfQ0UobmFuZCkgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpIHw9ICAoMSA8PCAoMzEgLSAyMCkpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpIHw9ICAoMSA8PCAoMzEgLSAyMCkpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfRU5BQkxFX0NFKG5hbmQpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSAmPSB+KDEgPDwgKDMxIC0gMjApKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSAmPSB+KDEgPDwgKDMxIC0gMjApKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9DTFJBTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpICY9IH4oMSA8PCAoMzEgLSAxNykpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpICY9IH4oMSA8PCAoMzEgLSAxNykpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX1NFVEFMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgfD0gICgxIDw8ICgzMSAtIDE3KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgfD0gICgxIDw8ICgzMSAtIDE3KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfQ0xSQ0xFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSAmPSB+KDEgPDwgKDMxIC0gMTgpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSAmPSB+KDEgPDwgKDMxIC0gMTgpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9TRVRDTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpIHw9ICAoMSA8PCAoMzEgLSAxOCkpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpIHw9ICAoMSA8PCAoMzEgLSAxOCkpOyBcCiAJfSB3aGlsZSgwKQogCiAjaWYgQ09ORklHX05FVFBIT05FX1ZFUlNJT04gPT0gMQogI2RlZmluZSBOQU5EX1dBSVRfUkVBRFkobmFuZCkgXAogCWRvIHsgXAogCQlpbnQgX3RyaWVzID0gMDsgXAotCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0ICYgKDEgPDwgKDMxIC0gMzEpKSkgPT0gMCkgXAorCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCAmICgxIDw8ICgzMSAtIDMxKSkpID09IDApIFwKIAkJCWlmICgrK190cmllcyA+IDEwMDAwMCkgXAogCQkJCWJyZWFrOyBcCiAJfSB3aGlsZSAoMCkKQEAgLTU1OSw3ICs1NTksNyBAQAogI2RlZmluZSBOQU5EX1dBSVRfUkVBRFkobmFuZCkgXAogCWRvIHsgXAogCQlpbnQgX3RyaWVzID0gMDsgXAotCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmICgxIDw8ICgxNSAtIDE1KSkpID09IDApIFwKKwkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgKDEgPDwgKDE1IC0gMTUpKSkgPT0gMCkgXAogCQkJaWYgKCsrX3RyaWVzID4gMTAwMDAwKSBcCiAJCQkJYnJlYWs7IFwKIAl9IHdoaWxlICgwKQpAQCAtNTg1LDggKzU4NSw4IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2RlZmluZSBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9OQU5EX1RGVFAKKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZSBDT05GSUdfU1lTX0RJUkVDVF9OQU5EX1RGVFAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC01OTYsNyArNTk2LDcgQEAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwODAJCS8qIGJpdCAyNCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMAkJLyogTEVEIG9uIGZvciBiaXQgPT0gMAkqLwpAQCAtNjExLDE1ICs2MTEsMTUgQEAKIAogI2RlZmluZSBfX2xlZF90b2dnbGUoX21zaykgXAogCWRvIHsgXAotCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCBePSAoX21zayk7IFwKKwkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0IF49IChfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9zZXQoX21zaywgX3N0KSBcCiAJZG8geyBcCiAJCWlmICgoX3N0KSkgXAotCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgfD0gKF9tc2spOyBcCisJCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgfD0gKF9tc2spOyBcCiAJCWVsc2UgXAotCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgJj0gfihfbXNrKTsgXAorCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0ICY9IH4oX21zayk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgX19sZWRfaW5pdChtc2ssIHN0KSBfX2xlZF9zZXQobXNrLCBzdCkKQEAgLTc1OSwyNiArNzU5LDI2IEBACiAKIC8qIHNlcmlhbCBpbnRlcmZhY2luZyBtYWNyb3MgKi8KIAotI2RlZmluZSBTRUQxNTZYX1NQSV9SWERfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCisjZGVmaW5lIFNFRDE1NlhfU1BJX1JYRF9QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCiAjZGVmaW5lIFNFRDE1NlhfU1BJX1JYRF9NQVNLCTB4MDAwMDAwMDgKIAotI2RlZmluZSBTRUQxNTZYX1NQSV9UWERfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCisjZGVmaW5lIFNFRDE1NlhfU1BJX1RYRF9QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCiAjZGVmaW5lIFNFRDE1NlhfU1BJX1RYRF9NQVNLCTB4MDAwMDAwMDQKIAotI2RlZmluZSBTRUQxNTZYX1NQSV9DTEtfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCisjZGVmaW5lIFNFRDE1NlhfU1BJX0NMS19QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCiAjZGVmaW5lIFNFRDE1NlhfU1BJX0NMS19NQVNLCTB4MDAwMDAwMDIKIAotI2RlZmluZSBTRUQxNTZYX0NTX1BPUlQJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKKyNkZWZpbmUgU0VEMTU2WF9DU19QT1JUCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQogI2RlZmluZSBTRUQxNTZYX0NTX01BU0sJCTB4MDAwMDAwMTAKIAotI2RlZmluZSBTRUQxNTZYX0EwX1BPUlQJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpCisjZGVmaW5lIFNFRDE1NlhfQTBfUE9SVAkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpCiAjZGVmaW5lIFNFRDE1NlhfQTBfTUFTSwkJMHgwMDIwCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkJMQotI2RlZmluZSBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQkxCi0jZGVmaW5lIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCTEKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTc5MSw3ICs3OTEsNyBAQAogCiAvKiBwaG9uZSBjb25zb2xlIGNvbmZpZ3VyYXRpb24gKi8KIAotI2RlZmluZSBQSE9ORV9DT05TT0xFX1BPTExfSFoJCShDRkdfSFovMjAwKQkvKiBwb2xsIGV2ZXJ5IDVtcyAqLworI2RlZmluZSBQSE9ORV9DT05TT0xFX1BPTExfSFoJCShDT05GSUdfU1lTX0haLzIwMCkJLyogcG9sbCBldmVyeSA1bXMgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ORVRUQS5oIGIvaW5jbHVkZS9jb25maWdzL05FVFRBLmgKaW5kZXggODA1YjgyYS4uNjM4MTBiMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL05FVFRBLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL05FVFRBLmgKQEAgLTcwLDcgKzcwLDcgQEAKIAkiYm9vdG0iCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMAkvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogI2RlZmluZSBDT05GSUdfSFdfV0FUQ0hET0cKQEAgLTk1LDcgKzk1LDcgQEAKIAogI2RlZmluZQlDT05GSUdfTkVUX01VTFRJCTEJLyogdGhlIG9ubHkgd2F5IHRvIGdldCB0aGUgRkVDIGluICovCiAjZGVmaW5lCUZFQ19FTkVUCQkxCS8qIGV0aC5jIG5lZWRzIGl0IHRoYXQgd2F5Li4uICovCi0jdW5kZWYgIENGR19ESVNDT1ZFUl9QSFkJCS8qIGRvIG5vdCBkaXNjb3ZlciBwaHlzICovCisjdW5kZWYgIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCQkvKiBkbyBub3QgZGlzY292ZXIgcGh5cyAqLwogI2RlZmluZSBDT05GSUdfTUlJCQkxCiAjZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQogI2RlZmluZSBDT05GSUdfUk1JSQkJMQkvKiB1c2UgUk1JSSBpbnRlcmZhY2UgKi8KQEAgLTExNyw5ICsxMTcsOSBAQAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCS8qIGFsbG93IG1vZGlmaWNhdGlvbiBvZiB2ZW5kb3IgcGFyYW1zICovCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DT0RFQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRFNQCSAgICkKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DT0RFQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0RTUAkgICApCiAKIAogLyoKQEAgLTE0NiwyOSArMTQ2LDI5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE3OCw2NSArMTc4LDY1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAKLSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDYwMDAwKQorI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDYwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENGR19GTEFTSF9CQVNFICsgMHg3MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg3MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECTAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDYsMTAgKzI0NiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU4LDkgKzI1OCw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjgsMjAgKzI2OCwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5NCwyNyArMjk0LDI3IEBACiAjaWYgQ09ORklHX1hJTiA9PSAxMDAwMDAwMAogCiAjaWYgTVBDOFhYX0haID09IDEyMDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMCA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTIgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gMTAwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgwIDw8IFBMUFJDUl9TX1NISUZUKSB8ICgxMCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSA1MDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoOCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgzIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSAyNTAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMiA8PCBQTFBSQ1JfU19TSElGVCkgfCAoOCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgzIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSA0MDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoOCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICg0IDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSA3NTAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTUgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxzZQpAQCAtMzI0LDE5ICszMjQsMTkgQEAKICNlbGlmIENPTkZJR19YSU4gPT0gNTAwMDAwMDAKIAogI2lmIE1QQzhYWF9IWiA9PSAxMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDEyIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDQgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDEwMDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMCA8PCBQTFBSQ1JfU19TSElGVCkgfCAoNiA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgyIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSAgODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoNCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gIDUwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgxIDw8IFBMUFJDUl9TX1NISUZUKSB8ICg2IDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDIgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2Vsc2UKQEAgLTM2MSwxMiArMzYxLDEyIEBACiAKICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAjaWYgTVBDOFhYX0haID4gNjY2NjY2NjYKLSNkZWZpbmUgQ0ZHX1NDQ1IJKC8qIFNDQ1JfVEJTCXwgKi8gU0NDUl9DUlFFTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUwl8ICovIFNDQ1JfQ1JRRU4gfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMTExIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCB8IFNDQ1JfRUJERjAxKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NDQ1IJKC8qIFNDQ1JfVEJTCXwgKi8gU0NDUl9DUlFFTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUwl8ICovIFNDQ1JfQ1JRRU4gfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMTExIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTM3Nyw4ICszNzcsOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzkyLDE1ICszOTIsMTUgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAvKgogICogQlIzIGFuZCBPUjMgKFNEUkFNKQpAQCAtNDEwLDEwICs0MTAsMTAgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCSgyNTYgPDwgMjApCS8qIG1heCAyNTZNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCShPUl9DU05UX1NBTSB8IE9SX0c1TFMpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCShPUl9DU05UX1NBTSB8IE9SX0c1TFMpCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKCgweEZGRkZGRkZGTFUgJiB+KFNEUkFNX01BWF9TSVpFIC0gMSkpIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSkKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1BTXzMyIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCSgoMHhGRkZGRkZGRkxVICYgfihTRFJBTV9NQVhfU0laRSAtIDEpKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1BTXzMyIHwgQlJfVikKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKQEAgLTQ0NywxMyArNDQ3LDEzIEBACiAgKi8KIAogI2lmICAgTVBDOFhYX0haID09IDEyMDAwMDAwMAotI2RlZmluZSBDRkdfTUFNUl9QVEEJCSAyMzQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDIzNAogI2VsaWYgTVBDOFhYX0haID09IDEwMDAwMDAwMAotI2RlZmluZSBDRkdfTUFNUl9QVEEJCSAxOTUKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDE5NQogI2VsaWYgTVBDOFhYX0haID09ICA4MDAwMDAwMAotI2RlZmluZSBDRkdfTUFNUl9QVEEJCSAxNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDE1NgogI2VsaWYgTVBDOFhYX0haID09ICA1MDAwMDAwMAotI2RlZmluZSBDRkdfTUFNUl9QVEEJCSAgOTgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJICA5OAogI2Vsc2UKICNlcnJvciBVbmtub3duIGZyZXF1ZW5jeQogI2VuZGlmCkBAIC00NjQsMjcgKzQ2NCwyNyBAQAogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIAogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTYyMCwxMSArNjIwLDExIEBACiAKIC8qIE5BTkQgKi8KICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCQlOQU5EX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCQlOQU5EX0JBU0UKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVU5TQUZFCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkJMQogLyogI2RlZmluZSBOQU5EX05PX1JCICovCiAKICNkZWZpbmUgU0VDVE9SU0laRQkJNTEyCkBAIC02MzgsMzggKzYzOCwzOCBAQAogLyogQUxFID0gUEQzLCBDTEUgPSBQRDQsIENFID0gUEQ1LCBGX1JZX0JZID0gUEMxMyAqLwogI2RlZmluZSBOQU5EX0RJU0FCTEVfQ0UobmFuZCkgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSB8PSAgKDEgPDwgKDE1IC0gNSkpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSB8PSAgKDEgPDwgKDE1IC0gNSkpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfRU5BQkxFX0NFKG5hbmQpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgJj0gfigxIDw8ICgxNSAtIDUpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgJj0gfigxIDw8ICgxNSAtIDUpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9DTFJBTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSAmPSB+KDEgPDwgKDE1IC0gMykpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSAmPSB+KDEgPDwgKDE1IC0gMykpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX1NFVEFMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpIHw9ICAoMSA8PCAoMTUgLSAzKSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpIHw9ICAoMSA8PCAoMTUgLSAzKSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfQ0xSQ0xFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgJj0gfigxIDw8ICgxNSAtIDQpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgJj0gfigxIDw8ICgxNSAtIDQpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9TRVRDTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSB8PSAgKDEgPDwgKDE1IC0gNCkpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSB8PSAgKDEgPDwgKDE1IC0gNCkpOyBcCiAJfSB3aGlsZSgwKQogCiAjaWZuZGVmIE5BTkRfTk9fUkIKICNkZWZpbmUgTkFORF9XQUlUX1JFQURZKG5hbmQpIFwKIAlkbyB7IFwKLQkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJiAoMSA8PCAoMTUgLSAxMykpKSA9PSAwKSB7IFwKKwkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgKDEgPDwgKDE1IC0gMTMpKSkgPT0gMCkgeyBcCiAJCQlXQVRDSERPR19SRVNFVCgpOyBcCiAJCX0gXAogCX0gd2hpbGUgKDApCkBAIC03MTgsOCArNzE4LDggQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIENGR19ESVJFQ1RfRkxBU0hfVEZUUAotI2RlZmluZSBDRkdfRElSRUNUX05BTkRfVEZUUAorI2RlZmluZSBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lIENPTkZJR19TWVNfRElSRUNUX05BTkRfVEZUUAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTcyOSwxNCArNzI5LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC03NDksMjEgKzc0OSwyMSBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKICNkZWZpbmUgQ09ORklHX01BQ19QQVJUSVRJT04KICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ORVRUQTIuaCBiL2luY2x1ZGUvY29uZmlncy9ORVRUQTIuaAppbmRleCA2ODdkYjFkLi42MWM1NTQ3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTkVUVEEyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL05FVFRBMi5oCkBAIC03Myw3ICs3Myw3IEBACiAKICNkZWZpbmUgQ09ORklHX0FVVE9TQ1JJUFQKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMAkvKiBlY2hvIG9mZiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMDAsNyArMTAwLDcgQEAKIAogI2RlZmluZQlDT05GSUdfTkVUX01VTFRJCTEJLyogdGhlIG9ubHkgd2F5IHRvIGdldCB0aGUgRkVDIGluICovCiAjZGVmaW5lCUZFQ19FTkVUCQkxCS8qIGV0aC5jIG5lZWRzIGl0IHRoYXQgd2F5Li4uICovCi0jdW5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI3VuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZGVmaW5lIENPTkZJR19NSUkJCTEKICNkZWZpbmUgQ09ORklHX01JSV9JTklUCQkxCiAjZGVmaW5lIENPTkZJR19STUlJCQkxCS8qIHVzZSBSTUlJIGludGVyZmFjZSAqLwpAQCAtMTM0LDI5ICsxMzQsMjkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNzAwMDAwCS8qIDMgLi4uIDcgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMzAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNzAwMDAwCS8qIDMgLi4uIDcgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY2LDc0ICsxNjYsNzQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MzAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MzAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCiAjaWYgZGVmaW5lZChERUJVRykKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KICNpZiBDT05GSUdfTkVUVEEyX1ZFUlNJT04gPT0gMgotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTQJCTB4NDAwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFNAkJMHg0MDA4MDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4ODAwMDAwMDAKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAjaWYgQ09ORklHX05FVFRBMl9WRVJTSU9OID09IDEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwogI2VsaWYgQ09ORklHX05FVFRBMl9WRVJTSU9OID09IDIKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAKLSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDYwMDAwKQorI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDYwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENGR19GTEFTSF9CQVNFICsgMHg3MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg3MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECTAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDMsMTAgKzI0MywxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU1LDkgKzI1NSw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjUsMjAgKzI2NSwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5MSwyNyArMjkxLDI3IEBACiAjaWYgQ09ORklHX1hJTiA9PSAxMDAwMDAwMAogCiAjaWYgTVBDOFhYX0haID09IDEyMDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMCA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTIgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gMTAwMDAwMDAwCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAogCQkJICgwIDw8IFBMUFJDUl9TX1NISUZUKSB8ICgxMCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSA1MDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoOCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgzIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSAyNTAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMiA8PCBQTFBSQ1JfU19TSElGVCkgfCAoOCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgzIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSA0MDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoOCA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICg0IDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSA3NTAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTUgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxzZQpAQCAtMzIxLDE1ICszMjEsMTUgQEAKICNlbGlmIENPTkZJR19YSU4gPT0gNTAwMDAwMDAKIAogI2lmIE1QQzhYWF9IWiA9PSAxMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDAgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDEyIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDQgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2VsaWYgTVBDOFhYX0haID09IDEwMDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMCA8PCBQTFBSQ1JfU19TSElGVCkgfCAoNiA8PCBQTFBSQ1JfTUZJX1NISUZUKSB8ICgyIDw8IFBMUFJDUl9QREZfU0hJRlQpIHwgXAogCQkJIFBMUFJDUl9URVhQUykKICNlbGlmIE1QQzhYWF9IWiA9PSAgNjY2NjY2NjYKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgwIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDAgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDggPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMiA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxzZQpAQCAtMzU0LDEyICszNTQsMTIgQEAKIAogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKICNpZiBNUEM4WFhfSFogPiA2NjY2NjY2NgotI2RlZmluZSBDRkdfU0NDUgkoLyogU0NDUl9UQlMgICAgIHwgKi8gU0NDUl9DUlFFTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUyAgICAgfCAqLyBTQ0NSX0NSUUVOIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDAgfCBTQ0NSX0VCREYwMSkKICNlbHNlCi0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUyAgICAgfCAqLyBTQ0NSX0NSUUVOIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKC8qIFNDQ1JfVEJTICAgICB8ICovIFNDQ1JfQ1JRRU4gfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTM3MCw4ICszNzAsOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzg1LDIzICszODUsMjMgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAjaWYgQ09ORklHX05FVFRBMl9WRVJTSU9OID09IDIKIAogI2RlZmluZSBGTEFTSF9CQVNFNF9QUkVMSU0JMHg0MDA4MDAwMAkvKiBGTEFTSCBiYW5rICMxCSovCiAKLSNkZWZpbmUgQ0ZHX09SNF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JKChGTEFTSF9CQVNFNF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JKChGTEFTSF9CQVNFNF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAjZW5kaWYKIApAQCAtNDEzLDEwICs0MTMsMTAgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCSgyNTYgPDwgMjApCS8qIG1heCAyNTZNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCShPUl9DU05UX1NBTSB8IE9SX0c1TFMpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCShPUl9DU05UX1NBTSB8IE9SX0c1TFMpCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKCgweEZGRkZGRkZGTFUgJiB+KFNEUkFNX01BWF9TSVpFIC0gMSkpIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSkKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1BTXzMyIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCSgoMHhGRkZGRkZGRkxVICYgfihTRFJBTV9NQVhfU0laRSAtIDEpKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1BTXzMyIHwgQlJfVikKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKQEAgLTQ0OSwzNCArNDQ5LDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJIDIzNAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCQkgMjM0CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApAQCAtNTAyLDEyICs1MDIsMTIgQEAKIAogLyogTkFORCAqLwogI2RlZmluZSBDT05GSUdfTkFORF9MRUdBQ1kKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJTkFORF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQlOQU5EX0JBU0UKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX0VDQ19KRkZTMgogI2RlZmluZSBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9VTlNBRkUKIAotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogCiAjZGVmaW5lIFNFQ1RPUlNJWkUJCTUxMgogI2RlZmluZSBBRERSX0NPTFVNTgkJMQpAQCAtNTIwLDM5ICs1MjAsMzkgQEAKIC8qIEFMRSA9IFBEMTcsIENMRSA9IFBFMTgsIENFID0gUEUyMCwgRl9SWV9CWSA9IFBFMzEgKi8KICNkZWZpbmUgTkFORF9ESVNBQkxFX0NFKG5hbmQpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMjApKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMjApKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0VOQUJMRV9DRShuYW5kKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDIwKSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDIwKSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfQ0xSQUxFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSAmPSB+KDEgPDwgKDMxIC0gMTcpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSAmPSB+KDEgPDwgKDMxIC0gMTcpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9TRVRBTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpIHw9ICAoMSA8PCAoMzEgLSAxNykpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQpIHw9ICAoMSA8PCAoMzEgLSAxNykpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX0NMUkNMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDE4KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCkgJj0gfigxIDw8ICgzMSAtIDE4KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfU0VUQ0xFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMTgpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0KSB8PSAgKDEgPDwgKDMxIC0gMTgpKTsgXAogCX0gd2hpbGUoMCkKIAogI2lmIENPTkZJR19ORVRUQTJfVkVSU0lPTiA9PSAxCiAjZGVmaW5lIE5BTkRfV0FJVF9SRUFEWShuYW5kKSBcCiAJZG8geyBcCiAJCWludCBfdHJpZXMgPSAwOyBcCi0JCXdoaWxlICgoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgJiAoMSA8PCAoMzEgLSAzMSkpKSA9PSAwKSBcCisJCXdoaWxlICgoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0ICYgKDEgPDwgKDMxIC0gMzEpKSkgPT0gMCkgXAogCQkJaWYgKCsrX3RyaWVzID4gMTAwMDAwKSBcCiAJCQkJYnJlYWs7IFwKIAl9IHdoaWxlICgwKQpAQCAtNTYwLDcgKzU2MCw3IEBACiAjZGVmaW5lIE5BTkRfV0FJVF9SRUFEWShuYW5kKSBcCiAJZG8geyBcCiAJCWludCBfdHJpZXMgPSAwOyBcCi0JCXdoaWxlICgoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgKDEgPDwgKDE1IC0gMTUpKSkgPT0gMCkgXAorCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJiAoMSA8PCAoMTUgLSAxNSkpKSA9PSAwKSBcCiAJCQlpZiAoKytfdHJpZXMgPiAxMDAwMDApIFwKIAkJCQlicmVhazsgXAogCX0gd2hpbGUgKDApCkBAIC01ODYsOCArNTg2LDggQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIENGR19ESVJFQ1RfRkxBU0hfVEZUUAotI2RlZmluZSBDRkdfRElSRUNUX05BTkRfVEZUUAorI2RlZmluZSBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lIENPTkZJR19TWVNfRElSRUNUX05BTkRfVEZUUAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTU5Nyw3ICs1OTcsNyBAQAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDAwMDA4MAkJLyogYml0IDI0ICovCiAjZW5kaWYKIAotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogI2RlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkwCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAwCSovCkBAIC02MTIsMTUgKzYxMiwxNSBAQAogCiAjZGVmaW5lIF9fbGVkX3RvZ2dsZShfbXNrKSBcCiAJZG8geyBcCi0JCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BlZGF0IF49IChfbXNrKTsgXAorCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgXj0gKF9tc2spOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIF9fbGVkX3NldChfbXNrLCBfc3QpIFwKIAlkbyB7IFwKIAkJaWYgKChfc3QpKSBcCi0JCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCB8PSAoX21zayk7IFwKKwkJCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wZWRhdCB8PSAoX21zayk7IFwKIAkJZWxzZSBcCi0JCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wZWRhdCAmPSB+KF9tc2spOyBcCisJCQkoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGVkYXQgJj0gfihfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9pbml0KG1zaywgc3QpIF9fbGVkX3NldChtc2ssIHN0KQpAQCAtNzM0LDkgKzczNCw5IEBACiAKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkJMQotI2RlZmluZSBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQkxCi0jZGVmaW5lIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCTEKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ORVRWSUEuaCBiL2luY2x1ZGUvY29uZmlncy9ORVRWSUEuaAppbmRleCBlNTUwMDMwLi44N2M5MjBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvTkVUVklBLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL05FVFZJQS5oCkBAIC02OSw3ICs2OSw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTAJLyogZWNobyBvZmYgZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTE3LDI1ICsxMTcsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDcwMDAwMAkvKiAzIC4uLiA3IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE0NSw2NSArMTQ1LDY1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAKLSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDYwMDAwKQorI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDYwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENGR19GTEFTSF9CQVNFICsgMHg3MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg3MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECTAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTMsMTAgKzIxMywxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjI1LDkgKzIyNSw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9GUkMpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQykKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzUsMjAgKzIzNSwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI2OCwxNiArMjY4LDE2IEBACiAKICNpZiBDT05GSUdfOHh4X0dDTEtfRlJFUSA9PSA1MDAwMDAwMAogCi0jZGVmaW5lIENGR19QTFBSQ1IJKCAoKDUgLSAxKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoICgoNSAtIDEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKICNlbGlmIENPTkZJR184eHhfR0NMS19GUkVRID09IDgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoICgoOCAtIDEpIDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSggKCg4IC0gMSkgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCB8IFNDQ1JfRUJERjAxKQpAQCAtMjg5LDggKzI4OSw4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0vKiNkZWZpbmUJQ0ZHX0RFUgkweDIwMDIwMDBGKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisvKiNkZWZpbmUJQ09ORklHX1NZU19ERVIJMHgyMDAyMDAwRiovCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMDQsMTUgKzMwNCwxNSBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgT1JfU0NZXzVfQ0xLIHwgT1JfVFJMWCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0JJIHwgT1JfU0NZXzVfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKIC8qCiAgKiBCUjMgYW5kIE9SMyAoU0RSQU0pCkBAIC0zMjIsMjcgKzMyMiwyNyBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0gfCBPUl9HNUxTKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0gfCBPUl9HNUxTKQogCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCSgoMHhGRkZGRkZGRkxVICYgfihTRFJBTV9NQVhfU0laRSAtIDEpKSB8IENGR19PUl9USU1JTkdfU0RSQU0pCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9QU18zMiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oU0RSQU1fTUFYX1NJWkUgLSAxKSkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9QU18zMiB8IEJSX1YpCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTIwOAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTIwOAogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApAQCAtMzgxLDExICszODEsMTEgQEAKICNpZiBkZWZpbmVkKENPTkZJR19ORVRWSUFfVkVSU0lPTikgJiYgQ09ORklHX05FVFZJQV9WRVJTSU9OID49IDIKIAogI2RlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDAwMDAwMQkJLyogYml0IDMxICovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjZGVmaW5lIFNUQVRVU19MRURfQklUMQkJMHgwMDAwMDAwMgkJLyogYml0IDMwICovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoQ0ZHX0haIC8gMikKKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCShDT05GSUdfU1lTX0haIC8gMikKICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJU1RBVFVTX0xFRF9PRkYKIAogI2RlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkwCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAwCSovCkBAIC00MDAsMTAgKzQwMCwxMCBAQAogI2lmIGRlZmluZWQoQ09ORklHX05FVFZJQV9WRVJTSU9OKSAmJiBDT05GSUdfTkVUVklBX1ZFUlNJT04gPj0gMgogCiAvKiBOQU5EICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCQlOQU5EX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCQlOQU5EX0JBU0UKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX0VDQ19KRkZTMgogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJCTEKIAogI2RlZmluZSBTRUNUT1JTSVpFCQk1MTIKICNkZWZpbmUgQUREUl9DT0xVTU4JCTEKQEAgLTQxNSwzNyArNDE1LDM3IEBACiAKICNkZWZpbmUgTkFORF9ESVNBQkxFX0NFKG5hbmQpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gIDB4MDA0MDsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gIDB4MDA0MDsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0VOQUJMRV9DRShuYW5kKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4weDAwNDA7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4weDAwNDA7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfQ0xSQUxFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgJj0gfjB4MDEwMDsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgJj0gfjB4MDEwMDsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9TRVRBTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSB8PSAgMHgwMTAwOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KSB8PSAgMHgwMTAwOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX0NMUkNMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4weDAwODA7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGRkYXQpICY9IH4weDAwODA7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfU0VUQ0xFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gIDB4MDA4MDsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wZGRhdCkgfD0gIDB4MDA4MDsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX1dBSVRfUkVBRFkobmFuZCkgXAogCWRvIHsgXAotCQl3aGlsZSAoKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmIDB4MTAwKSA9PSAwKSBcCisJCXdoaWxlICgoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCAmIDB4MTAwKSA9PSAwKSBcCiAJCQk7IFwKIAl9IHdoaWxlICgwKQogCkBAIC01MTksMTYgKzUxOSwxNiBAQAogfQogCiAvKiBNQVgzMTAwIGNvbnNvbGUgKi8KLSNkZWZpbmUgTUFYMzEwMF9TUElfUlhEX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQorI2RlZmluZSBNQVgzMTAwX1NQSV9SWERfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KQogI2RlZmluZSBNQVgzMTAwX1NQSV9SWERfQklUCTB4MDAwMDAwMDgKIAotI2RlZmluZSBNQVgzMTAwX1NQSV9UWERfUE9SVAkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCisjZGVmaW5lIE1BWDMxMDBfU1BJX1RYRF9QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpCiAjZGVmaW5lIE1BWDMxMDBfU1BJX1RYRF9CSVQJMHgwMDAwMDAwNAogCi0jZGVmaW5lIE1BWDMxMDBfU1BJX0NMS19QT1JUCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKKyNkZWZpbmUgTUFYMzEwMF9TUElfQ0xLX1BPUlQJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2NwbS5jcF9wYmRhdCkKICNkZWZpbmUgTUFYMzEwMF9TUElfQ0xLX0JJVAkweDAwMDAwMDAyCiAKLSNkZWZpbmUgTUFYMzEwMF9DU19QT1JUCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KQorI2RlZmluZSBNQVgzMTAwX0NTX1BPUlQJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BkZGF0KQogI2RlZmluZSBNQVgzMTAwX0NTX0JJVAkJMHgwMDEwCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL05TQ1UuaCBiL2luY2x1ZGUvY29uZmlncy9OU0NVLmgKaW5kZXggZTI5N2M4NC4uNmFiZDNmMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL05TQ1UuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvTlNDVS5oCkBAIC04Myw3ICs4Myw3IEBACiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkgIDEKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTI5LDMzICsxMjksMzMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkKICovCi0jZGVmaW5lCUNGR19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZQlDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjUsNDcgKzE2NSw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjE1LDIxICsyMTUsMjEgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzksMTAgKzIzOSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjUxLDkgKzI1MSw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2MSwyMCArMjYxLDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjgyLDcgKzI4Miw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yOTEsNyArMjkxLDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMDMsMTQgKzMwMywxNCBAQAogLyogTlNDVSB1c2UgYm90aCBzbG90cywgU0xPVF9BIGFzICJwcmltYXJ5Ii4gKi8KICNkZWZpbmUJQ09ORklHX1BDTUNJQV9TTE9UX0EgMQogCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAjZGVmaW5lIFBDTUNJQV9NRU1fV0lOX05PCTggLyogb3ZlcnJpZGUgZGVmYXVsdCA0IGluIHBjbWNpYS5oICovCiAjZGVmaW5lCVBDTUNJQV9TT0NLRVRTX05PCTIgLyogd2UgaGF2ZSB0d28gc29ja2V0cyAqLwogI3VuZGVmCU5TQ1VfT0VfSU5WCQkvKiBQQ01DSUFfR0NSWF9DWE9FIHdhcyBpbnZlcnRlZCBvbiBlYXJseSBib2FyZHMgKi8KQEAgLTMyNiwyOSArMzI2LDI5IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMgkvKiBtYXguIDIgSURFIGJ1c2VzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQk0CS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyCS8qIG1heC4gMiBJREUgYnVzZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQk0CS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCSg0ICogQ0ZHX1BDTUNJQV9NRU1fU0laRSkgLyogc3RhcnRzIEAgNHRoIHdpbmRvdyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJKDQgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSkgLyogc3RhcnRzIEAgNHRoIHdpbmRvdyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM2MywyMiArMzYzLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM4OSwyOCArMzg5LDI4IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKICNpZmRlZglDT05GSUdfSVNQMTM2Ml9VU0IKLSNkZWZpbmUJQ0ZHX0lTUDEzNjJfQkFTRQkweEQwMDAwMDAwCS8qIElTUDEzNjIgbWFwcGVkIGF0IDB4RDAwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lTUDEzNjJfT1JfQU0JMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjVfSVNQMTM2MgkJKENGR19JU1AxMzYyX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfSVNQMTM2Ml9CQVNFCTB4RDAwMDAwMDAJLyogSVNQMTM2MiBtYXBwZWQgYXQgMHhEMDAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lTUDEzNjJfT1JfQU0JMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X0lTUDEzNjIJCShDT05GSUdfU1lTX0lTUDEzNjJfT1JfQU0gfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfQUNTX0RJVjIgICAgICAgfCBPUl9CSSAgICAgICB8IE9SX1NDWV81X0NMSykKLSNkZWZpbmUgQ0ZHX0JSNV9JU1AxMzYyCQkoKENGR19JU1AxMzYyX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9JU1AxMzYyCQkoKENPTkZJR19TWVNfSVNQMTM2Ml9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkgQlJfUFNfMTYgICAgICAgICAgfCBCUl9NU19HUENNIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0lTUDEzNjJfVVNCICovCiAKQEAgLTQ0MSwzNCArNDQxLDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvTlg4MjMuaCBiL2luY2x1ZGUvY29uZmlncy9OWDgyMy5oCmluZGV4IDFmNGMzMjkuLjkxODIyMjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9OWDgyMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9OWDgyMy5oCkBAIC01Myw3ICs1Myw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdG0gNDAwZTAwMDAiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkLCBmb3Igbm93CSAgICAqLwogI2RlZmluZSBDT05GSUdfQVVUT1NDUklQVAogCkBAIC04MSwyNSArODEsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMDksNjQgKzEwOSw2NCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSB4RU1CRUQKICNpZmRlZglFTUJFRAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwCS8qIEZJWE1FIEhvdyBiaWcgd2hlbiBlbWJlZGRlZD8/ICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ0ZHX01PTklUT1JfQkFTRQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4NDAwMjAwMDAJLyogYWJzb2x1dGUgYWRkcmVzcyBmb3Igbm93ICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAwIC8qIDhLIG91Y2gsIHRoaXMgbWF5IGxhdGVyIGJlICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfU05fQkFTRQkweDQwMDFmZmYwCS8qIHByb2dyYW1tZXIgYXV0b21hZ2ljYWxseSBwdXRzICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9TTl9TRUNUT1IJMHg0MDAwMDAwMAkvKiBhIHNlcmlhbCBudW1iZXIgaGVyZQkJICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9TTl9CWVRFUwk4CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU05fQkFTRQkweDQwMDFmZmYwCS8qIHByb2dyYW1tZXIgYXV0b21hZ2ljYWxseSBwdXRzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU05fU0VDVE9SCTB4NDAwMDAwMDAJLyogYSBzZXJpYWwgbnVtYmVyIGhlcmUJCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NOX0JZVEVTCTgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICAgICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTc2LDEwICsxNzYsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4NywyNyArMTg3LDI3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMi0xNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMi0xOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTEyLTIzCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJNS03CkBAIC0yMTgsOCArMjE4LDggQEAKICNkZWZpbmUgTVBDOFhYX1NQRUVECTY2NjY2NjY2TAogI2RlZmluZSBNUEM4WFhfWElOCTMyNzY4CS8qIDMyLjc2OCBrSHogY3J5c3RhbCAqLwogI2RlZmluZSBNUEM4WFhfRkFDVAkJKE1QQzhYWF9TUEVFRC9NUEM4WFhfWElOKQotI2RlZmluZSBDRkdfUExQUkNSX01GICAoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJKENGR19QTFBSQ1JfTUYgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSX01GICAoKE1QQzhYWF9GQUNULTEpIDw8IFBMUFJDUl9NRl9TSElGVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCShDT05GSUdfU1lTX1BMUFJDUl9NRiB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJNS0zCkBAIC0yMjgsNyArMjI4LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0yMzgsNyArMjM4LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI1MiwxNiArMjUyLDE2IEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMDAsIFRSTFggPSAwLCBDU05UID0gMSwgU0NZID0gOCwgRUhUUiA9IDAJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV84X0NMSyApCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qCiAgKiBCUjEvMiBhbmQgT1IxLzIgKFNEUkFNKQpAQCAtMjcxLDEyICsyNzEsMTIgQEAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBkcml2ZSBHUEw1IGhpZ2ggb24gZmlyc3QgY3ljbGUgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkoT1JfRzVMUyB8IE9SX0NTTlRfU0FNKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoT1JfRzVMUyB8IE9SX0NTTlRfU0FNKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JQ0ZHX09SMV9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JQ09ORklHX1NZU19PUjFfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qIElPIGFuZCBtZW1vcnkgbWFwcGVkIHN0dWZmICovCiAjZGVmaW5lIE5YODIzX0lPX09SX0FNCQkweEZGRkYwMDAwCS8qIG1hc2sgZm9yIElPIGFkZHJlc3NlcyAqLwpAQCAtMjkyLDI0ICsyOTIsMjQgQEAKICAqLwogI2RlZmluZSBHUE9VVF9CQVNFCShOWDgyM19JT19CQVNFICsgR1BPVVRfT0ZGU0VUKQogI2RlZmluZSBHUE9VVF9USU1JTkcJKE9SX0NTTlRfU0FNIHwgT1JfVFJMWCB8IE9SX0JJKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoTlg4MjNfSU9fT1JfQU0gfCBHUE9VVF9USU1JTkcpCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCShHUE9VVF9CQVNFIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCShOWDgyM19JT19PUl9BTSB8IEdQT1VUX1RJTUlORykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCShHUE9VVF9CQVNFIHwgQlJfVikKIAogLyoKICAqIEJSNCBhbmQgT1I0IChRVUFSVCkKICAqLwogI2RlZmluZSBRVUFSVF9CQVNFCShOWDgyM19JT19CQVNFICsgUVVBUlRfT0ZGU0VUKQogI2RlZmluZSBRVUFSVF9USU1JTkcJKE9SX0FDU19ESVY0IHwgT1JfU0NZXzNfQ0xLIHwgT1JfQ1NOVF9TQU0gfCBPUl9UUkxYKQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkoTlg4MjNfSU9fT1JfQU0gfCBRVUFSVF9USU1JTkcgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JKFFVQVJUX0JBU0UgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCShOWDgyM19JT19PUl9BTSB8IFFVQVJUX1RJTUlORyB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JKFFVQVJUX0JBU0UgfCBCUl9QU184IHwgQlJfVikKIAogLyoKICAqIEJSNSBhbmQgT1I1IChWaWRlbyBEQUMpCiAgKi8KICNkZWZpbmUgVklEQUNfQkFTRQkoTlg4MjNfSU9fQkFTRSArIFZJREFDX09GRlNFVCkKICNkZWZpbmUgVklEQUNfVElNSU5HCShPUl9BQ1NfRElWNCB8IE9SX1NDWV8zX0NMSyB8IE9SX0NTTlRfU0FNIHwgT1JfRUhUUikKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JKE5YODIzX0lPX09SX0FNIHwgVklEQUNfVElNSU5HIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCShWSURBQ19CQVNFIHwgQlJfUFNfOCB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkoTlg4MjNfSU9fT1JfQU0gfCBWSURBQ19USU1JTkcgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCShWSURBQ19CQVNFIHwgQlJfUFNfOCB8IEJSX1YpCiAKIC8qCiAgKiBCUjYgYW5kIE9SNiAoQ1BMRCkKQEAgLTMxNyw0MiArMzE3LDQyIEBACiAgKi8KICNkZWZpbmUgQ1BMRF9CQVNFCShOWDgyM19JT19CQVNFICsgQ1BMRF9PRkZTRVQpCiAjZGVmaW5lIENQTERfVElNSU5HCShPUl9BQ1NfRElWNCB8IE9SX1NDWV8zX0NMSyB8IE9SX0NTTlRfU0FNIHwgT1JfRUhUUikKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JKE5YODIzX0lPX09SX0FNIHwgQ1BMRF9USU1JTkcgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JKENQTERfQkFTRSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCShOWDgyM19JT19PUl9BTSB8IENQTERfVElNSU5HIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkoQ1BMRF9CQVNFIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAvKgogICogQlI3IGFuZCBPUjcgKFNFRDEzODYpCiAgKiBGSVhNRSB0aW1pbmcgbm90IHZlcmlmaWVkIGZvciBTRUQgY29udHJvbGxlcgogICovCiAjZGVmaW5lIFNFRDEzODZfQkFTRQkweEY3MDAwMDAwCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCSgweEZGMDAwMDAwIHwgT1JfQkkgfCBPUl9TRVRBKQotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkoU0VEMTM4Nl9CQVNFIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjdfUFJFTElNCSgweEZGMDAwMDAwIHwgT1JfQkkgfCBPUl9TRVRBKQorI2RlZmluZSBDT05GSUdfU1lTX0JSN19QUkVMSU0JKFNFRDEzODZfQkFTRSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHogICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHogICAqLwogCiAvKiByZWZyZXNoIHJhdGUgMTUuNiB1cyAoPSA2NCBtcyAvIDRLID0gNjIuNCAvIHF1YWQgYnVyc3RzKSBmb3IgPD0gMTI4IE1CaXQJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYgLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMiAvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2IC8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyIC8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2IC8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNiAvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL09DUlRDLmggYi9pbmNsdWRlL2NvbmZpZ3MvT0NSVEMuaAppbmRleCAxNGRhYmRjLi5mZjExZGY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvT0NSVEMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvT0NSVEMuaApAQCAtNDgsNyArNDgsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQgImdvIGZmZjAwMTAwIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC04NywzNSArODcsMzUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCkBAIC0xMzYsNjYgKzEzNiw2NiBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfQk9PVERFTEFZCTEJLyogZW5hYmxlIHBjaSBib290ZGVsYXkgdmFyaWFibGUqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MTAJLyogUENJIERldmljZSBJRDogT0NSVEMJCSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDEwCS8qIFBDSSBEZXZpY2UgSUQ6IE9DUlRDCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZEMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjaWYgMCAvKiBVc2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCS8qIHVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFycwkqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1ZYV09SS1NfT0ZGUwkweDY5MDAJCS8qIE9mZnNldCBmb3IgVnhXb3JrcyBldGgtYWRkcgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9WWFdPUktTX09GRlMJMHg2OTAwCQkvKiBPZmZzZXQgZm9yIFZ4V29ya3MgZXRoLWFkZHIJKi8KIAogI2Vsc2UgLyogVXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAKQEAgLTIwOSwxNyArMjA5LDE3IEBACiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMDgpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTIzNSw2MiArMjM1LDYyIEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEZGODVBMDAwICAvKiBCQVM9MHhGRjgsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoUExEIC0gRlBHQS1ib290KSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAyMDE1NDgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMjAxNTQ4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KIAkJCQkJICAgIC8qIFdCTj0weDEsV0JGPTB4MSxUSD0weDIsUkU9MHgwLFNPUj0weDEsQkVNPTB4MCxQRU49MHgwKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAzIChQTEQgLSBPU0wpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAyMDE1NDgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMjAxNTQ4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KIAkJCQkJICAgIC8qIFdCTj0weDEsV0JGPTB4MSxUSD0weDIsUkU9MHgwLFNPUj0weDEsQkVNPTB4MCxQRU49MHgwKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDExODAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDExODAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayA0IChTcGFydGFuMiAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MSxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCTB4RjIwOUMwMDAgIC8qIEJBUz0weEYyMCxCUz0xNk1CLEJVPVIvVyxCVz0zMmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkweEYyMDlDMDAwICAvKiBCQVM9MHhGMjAsQlM9MTZNQixCVT1SL1csQlc9MzJiaXQqLwogCiAvKiBNZW1vcnkgQmFuayA1IChTcGFydGFuMiAyKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjVBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MSxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEI1Q1IJCTB4RjMwOUMwMDAgIC8qIEJBUz0weEYzMCxCUz0xNk1CLEJVPVIvVyxCVz0zMmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSCQkweEYzMDlDMDAwICAvKiBCQVM9MHhGMzAsQlM9MTZNQixCVT1SL1csQlc9MzJiaXQqLwogCiAvKiBNZW1vcnkgQmFuayA2IChWaXJ0ZXggMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI2QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLwogCQkJCQkgICAgLyogV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0weDEsU09SPTB4MSxCRU09MHgwLFBFTj0weDAqLwotI2RlZmluZSBDRkdfRUJDX1BCNkNSCQkweEY0MDlBMDAwICAvKiBCQVM9MHhGNDAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZDUgkJMHhGNDA5QTAwMCAgLyogQkFTPTB4RjQwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyogTWVtb3J5IEJhbmsgNyAoVmlydGV4IDIpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCN0FQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjdBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KIAkJCQkJICAgIC8qIFdCTj0weDEsV0JGPTB4MSxUSD0weDIsUkU9MHgxLFNPUj0weDEsQkVNPTB4MCxQRU49MHgwKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjdDUgkJMHhGNTA5QTAwMCAgLyogQkFTPTB4RjUwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI3Q1IJCTB4RjUwOUEwMDAgIC8qIEJBUz0weEY1MCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCiAKIAotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1ZYV09SS1NfTUFDX1BUUgkweDAwMDAwMDAwCS8qIFBhc3MgRXRoZXJuZXQgTUFDIHRvIFZ4V29ya3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwogCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JICAxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9PUlNHLmggYi9pbmNsdWRlL2NvbmZpZ3MvT1JTRy5oCmluZGV4IDI4OWJiYTUuLmE2MzVmY2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9PUlNHLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL09SU0cuaApAQCAtNDgsNyArNDgsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQgImdvIGZmZjAwMTAwIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC04NywzNSArODcsMzUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogCkBAIC0xMzQsNjYgKzEzNCw2NiBAQAogCiAjdW5kZWYJQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHByaW50IHBjaSBkZXZpY2VzIEAgc3RhcnR1cAkqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MTEJLyogUENJIERldmljZSBJRDogT1JTRwkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHhmYzAwMDAwMQkvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MTEJLyogUENJIERldmljZSBJRDogT1JTRwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHhmYzAwMDAwMQkvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogVXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5WUkFNIG9yZ2FuaXphdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQkvKiB1c2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcnMJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgzMioxMDI0KQkJLyogTlZSQU0gc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDIwMDAwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkJLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzCSovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJXAotCShDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCi0jZGVmaW5lIENGR19OVlJBTV9WWFdPUktTX09GRlMJMHg2OTAwCQkvKiBPZmZzZXQgZm9yIFZ4V29ya3MgZXRoLWFkZHIJKi8KKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fVlhXT1JLU19PRkZTCTB4NjkwMAkJLyogT2Zmc2V0IGZvciBWeFdvcmtzIGV0aC1hZGRyCSovCiAKICNlbHNlIC8qIFVzZSBFRVBST00gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogCkBAIC0yMDcsMTcgKzIwNywxNyBAQAogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzA4KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yMzMsNjIgKzIzMyw2MiBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RkY4NUEwMDAgIC8qIEJBUz0weEZGOCxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKFBMRCAtIEZQR0EtYm9vdCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMjAxNTQ4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDIwMTU0ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MCxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoUExEIC0gT1NMKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMjAxNTQ4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDIwMTU0ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MCxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjAxMTgwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgNCAoU3BhcnRhbjIgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLwogCQkJCQkgICAgLyogV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0weDEsU09SPTB4MSxCRU09MHgwLFBFTj0weDAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCQkweEYyMDlDMDAwICAvKiBCQVM9MHhGMjAsQlM9MTZNQixCVT1SL1csQlc9MzJiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUgkJMHhGMjA5QzAwMCAgLyogQkFTPTB4RjIwLEJTPTE2TUIsQlU9Ui9XLEJXPTMyYml0Ki8KIAogLyogTWVtb3J5IEJhbmsgNSAoU3BhcnRhbjIgMikgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLwogCQkJCQkgICAgLyogV0JOPTB4MSxXQkY9MHgxLFRIPTB4MixSRT0weDEsU09SPTB4MSxCRU09MHgwLFBFTj0weDAqLwotI2RlZmluZSBDRkdfRUJDX1BCNUNSCQkweEYzMDlDMDAwICAvKiBCQVM9MHhGMzAsQlM9MTZNQixCVT1SL1csQlc9MzJiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUgkJMHhGMzA5QzAwMCAgLyogQkFTPTB4RjMwLEJTPTE2TUIsQlU9Ui9XLEJXPTMyYml0Ki8KIAogLyogTWVtb3J5IEJhbmsgNiAoVmlydGV4IDEpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCNkFQCQkweDAyMDE1NTgwICAvKiBCTUU9MHgwLFRXVD0weDA0LENTTj0weDAsT0VOPTB4MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KIAkJCQkJICAgIC8qIFdCTj0weDEsV0JGPTB4MSxUSD0weDIsUkU9MHgxLFNPUj0weDEsQkVNPTB4MCxQRU49MHgwKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZDUgkJMHhGNDA5QTAwMCAgLyogQkFTPTB4RjQwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2Q1IJCTB4RjQwOUEwMDAgIC8qIEJBUz0weEY0MCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCiAKIC8qIE1lbW9yeSBCYW5rIDcgKFZpcnRleCAyKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjdBUAkJMHgwMjAxNTU4MCAgLyogQk1FPTB4MCxUV1Q9MHgwNCxDU049MHgwLE9FTj0weDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI3QVAJCTB4MDIwMTU1ODAgIC8qIEJNRT0weDAsVFdUPTB4MDQsQ1NOPTB4MCxPRU49MHgxICovCiAJCQkJCSAgICAvKiBXQk49MHgxLFdCRj0weDEsVEg9MHgyLFJFPTB4MSxTT1I9MHgxLEJFTT0weDAsUEVOPTB4MCovCi0jZGVmaW5lIENGR19FQkNfUEI3Q1IJCTB4RjUwOUEwMDAgIC8qIEJBUz0weEY1MCxCUz0xNk1CLEJVPVIvVyxCVz0xNmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCN0NSCQkweEY1MDlBMDAwICAvKiBCQVM9MHhGNTAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLwogCiAKLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUgkweDAwMDAwMDAwCS8qIFBhc3MgRXRoZXJuZXQgTUFDIHRvIFZ4V29ya3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WWFdPUktTX01BQ19QVFIJMHgwMDAwMDAwMAkvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KIAogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvT1hDLmggYi9pbmNsdWRlL2NvbmZpZ3MvT1hDLmgKaW5kZXggMmNjYWY0Ny4uMTA0YzIzZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL09YQy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9PWEMuaApAQCAtNDksNyArNDksNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC03MiwxNCArNzIsMTQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCTEJCS8qIGNhbGwgbWlzY19pbml0X3IoKSBvbiBpbml0CSovCiAKQEAgLTk1LDggKzk1LDggQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJ0ZnRwIDB4MTAwMDAgOyBib290ZWxmIDB4MTAwMDAiCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMTAKIAotI2RlZmluZSBDRkdfT1hDX0dFTkVSQVRFX0lQCTEJCS8qIEdlbmVyYXRlIElQIGF1dG9tYXRpY2FsbHkJKi8KLSNkZWZpbmUgQ0ZHX09YQ19JUE1BU0sJCTB4MEEwMDAwMDAJLyogMTAuMC4wLngJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09YQ19HRU5FUkFURV9JUAkxCQkvKiBHZW5lcmF0ZSBJUCBhdXRvbWF0aWNhbGx5CSovCisjZGVmaW5lIENPTkZJR19TWVNfT1hDX0lQTUFTSwkJMHgwQTAwMDAwMAkvKiAxMC4wLjAueAkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTA3LDcgKzEwNyw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCQkvKiBNdWx0aSBldGhlcm5ldCBjYXJkcyBzdXBwb3J0ICovCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkJCS8qIEV0aGVybmV0IEV4cHJlc3MgUFJPIDEwMAkqLwotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KIAogI2RlZmluZSBQQ0lfRU5FVDBfSU9BRERSCTB4ODAwMDAwMDAKICNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJMHg4MDAwMDAwMApAQCAtMTE4LDYzICsxMTgsNjMgQEAKICAqIEZMQVNICiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfUFJFTElNQkFTRQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoMC1mbGFzaF9pbmZvWzBdLnNpemUpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJFTElNQkFTRQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKDAtZmxhc2hfaW5mb1swXS5zaXplKQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTMyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTMyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkFNCiAgKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFCTB4MTAwMDAwMDAKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9QUkVMSU1CQVNFKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX1BSRUxJTUJBU0UpCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbHNlCi0jIHVuZGVmIENGR19SQU1CT09UCisjIHVuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBtYXBwaW5nCiAgKi8KIAotI2RlZmluZSBDRkdfQ1BMRF9CQVNFCQkweGZmMDAwMDAwCS8qIENQTEQgcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19DUExEX1dBVENIRE9HCShDRkdfQ1BMRF9CQVNFKQkJCS8qIFdhdGNoZG9nICovCi0jZGVmaW5lIENGR19DUExEX1JFU0VUCQkoQ0ZHX0NQTERfQkFTRSArIDB4MDQwMDAwKQkvKiBNaW5vciByZXNldHMgKi8KLSNkZWZpbmUgQ0ZHX1VBUlRfQkFTRQkJKENGR19DUExEX0JBU0UgKyAweDcwMDAwMCkJLyogZGVidWcgVUFSVCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTERfQkFTRQkJMHhmZjAwMDAwMAkvKiBDUExEIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTERfV0FUQ0hET0cJKENPTkZJR19TWVNfQ1BMRF9CQVNFKQkJCS8qIFdhdGNoZG9nICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9SRVNFVAkJKENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHgwNDAwMDApCS8qIE1pbm9yIHJlc2V0cyAqLworI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfQkFTRQkJKENPTkZJR19TWVNfQ1BMRF9CQVNFICsgMHg3MDAwMDApCS8qIGRlYnVnIFVBUlQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJLTQKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkxODQzMjAwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJQ0ZHX1VBUlRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJLTQKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMTg0MzIwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQlDT05GSUdfU1lTX1VBUlRfQkFTRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgQnVzCkBAIC0xODIsMTIgKzE4MiwxMiBAQAogCiAjZGVmaW5lIENPTkZJR19JMkMJCTEJCS8qIEkyQyBzdXBwb3J0IG9uIC4uLiAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIC4uLiBoYXJkd2FyZSBvbmUgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgkJLyogSTJDIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCQkvKiBJMkMgc2xhdmUgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19JMkNfRVhQQU5ERVIwX0FERFIJMHgyMAkJLyogUENGODU3NCBleHBhbmRlciAwIGFkZHJlcnIgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FWFBBTkRFUjFfQUREUgkweDIxCQkvKiBQQ0Y4NTc0IGV4cGFuZGVyIDEgYWRkcmVyciAqLwotI2RlZmluZSBDRkdfSTJDX0VYUEFOREVSMl9BRERSCTB4MjYJCS8qIFBDRjg1NzQgZXhwYW5kZXIgMiBhZGRyZXJyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VYUEFOREVSMF9BRERSCTB4MjAJCS8qIFBDRjg1NzQgZXhwYW5kZXIgMCBhZGRyZXJyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VYUEFOREVSMV9BRERSCTB4MjEJCS8qIFBDRjg1NzQgZXhwYW5kZXIgMSBhZGRyZXJyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VYUEFOREVSMl9BRERSCTB4MjYJCS8qIFBDRjg1NzQgZXhwYW5kZXIgMiBhZGRyZXJyICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC0yMDgsMzAgKzIwOCwzMCBAQAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzAwMDAwMAkvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsICovCiAjZGVmaW5lIENPTkZJR19QTExfUENJX1RPX01FTV9NVUxUSVBMSUVSICAyCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkJMHhGQzAwMDAwMAogCiAvKiBNQ0NSMSAqLwotI2RlZmluZSBDRkdfUk9NTkFMCQkwCS8qIHJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLwotI2RlZmluZSBDRkdfUk9NRkFMCQkxOQkvKiByb20vZmxhc2ggYWNjZXNzIHRpbWUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCQkwCS8qIHJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkJMTkJLyogcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkqLwogCiAvKiBNQ0NSMiAqLwotI2RlZmluZSBDRkdfQVNSSVNFCQkxNQkvKiBBU1JJU0U9MTUgY2xvY2tzCQkJKi8KLSNkZWZpbmUgQ0ZHX0FTRkFMTAkJMwkvKiBBU0ZBTEw9MyBjbG9ja3MJCQkqLwotI2RlZmluZSBDRkdfUkVGSU5UCQkxMDAwCS8qIFJFRklOVD0xMDAwIGNsb2NrcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVNSSVNFCQkxNQkvKiBBU1JJU0U9MTUgY2xvY2tzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BU0ZBTEwJCTMJLyogQVNGQUxMPTMgY2xvY2tzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQJCTEwMDAJLyogUkVGSU5UPTEwMDAgY2xvY2tzCQkJKi8KIAogLyogTUNDUjMgKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJCTB4MzVjCS8qIEJ1cnN0IFRvIFByZWNoYXJnZQkJCSovCi0jZGVmaW5lIENGR19SRUZSRUMJCTcJLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkJKi8KLSNkZWZpbmUgQ0ZHX1JETEFUCQk0CS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJCTB4MzVjCS8qIEJ1cnN0IFRvIFByZWNoYXJnZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQk3CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCiAKIC8qIE1DQ1I0ICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMgkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkyCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTgkzCS8qIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTIJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkyCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTgkzCS8qIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQogCiAvKiBtZW1vcnkgYmFuayBzZXR0aW5ncyovCiAvKgpAQCAtMjQwLDgwICsyNDAsODAgQEAKICAqIGJpdHMgd2lsbCBiZSBzZXQgdG8gMHgwMDAwMCBmb3IgYSBzdGFydCBhZGRyZXNzLCBvciAweGZmZmZmIGZvciBhbgogICogZW5kIGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkJKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRQkwCiAvKgogICogTWVtb3J5IGJhbmsgZW5hYmxlIGJpdG1hc2ssIHNwZWNpZnlpbmcgd2hpY2ggb2YgdGhlIGJhbmtzIGRlZmluZWQgYWJvdmUKICBhcmUgYWN0dWFsbHkgcHJlc2VudC4gTVNCIGlzIGZvciBiYW5rICM3LCBMU0IgaXMgZm9yIGJhbmsgIzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTktfRU5BQkxFCQkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOS19FTkFCTEUJCTB4MDEKIAotI2RlZmluZSBDRkdfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGJpdCBkZWZpbml0aW9ucwkqLwotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLwogCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgZGV0YWlscwkJKi8KIAogLyogU0RSQU0gMCAtIDI1Nk1CICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIHN0YWNrIGluIERDQUNIRSBAIDFHQiAobm8gYmFja2luZyBtZW0pICovCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogRmxhc2gsIGNvbmZpZyBhZGRycywgZXRjICovCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUDNHNC5oIGIvaW5jbHVkZS9jb25maWdzL1AzRzQuaAppbmRleCA4MTUwMDkxLi45NzEzMzhhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUDNHNC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QM0c0LmgKQEAgLTQwLDcgKzQwLDcgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19QM0c0CQkxCS8qIHRoaXMgaXMgYSBQM0c0ICBib2FyZAkqLwotI2RlZmluZSBDRkdfR1RfNjQyNnggICAgICAgIEdUXzY0MjYwIC8qIHdpdGggYSA2NDI2MCBzeXN0ZW0gY29udHJvbGxlciAqLworI2RlZmluZSBDT05GSUdfU1lTX0dUXzY0MjZ4ICAgICAgICBHVF82NDI2MCAvKiB3aXRoIGEgNjQyNjAgc3lzdGVtIGNvbnRyb2xsZXIgKi8KIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiBjb25zb2xlIGJhdWRyYXRlID0gMTE1MjAwCSovCiAKQEAgLTUxLDEwICs1MSwxMCBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJMQogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEKIAotI2RlZmluZSBDRkdfQk9BUkRfTkFNRQkJIlAzRzQiCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfTkFNRQkJIlAzRzQiCiAKLSN1bmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgbGV0IHlvdSBzZWxlY3Qgd2hhdCBzZXJpYWwgeW91IHdhbnQgdG8gdXNlCkBAIC0xMTUsNyArMTE1LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkwCS8qIGVjaG8gb2ZmIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogI3VuZGVmCUNPTkZJR19BTFRJVkVDICAgICAgICAgICAgICAgICAgLyogdW5kZWYgdG8gZGlzYWJsZSAgICAgICAgICAgICAqLwpAQCAtMTUxLDI3ICsxNTEsMjcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDAwMzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MJKi8KLSNkZWZpbmUgQ0ZHX0JVU19IWgkJMTMzMDAwMDAwCS8qIDEzMyBNSHoJCSovCi0jZGVmaW5lIENGR19CVVNfQ0xLCQlDRkdfQlVTX0haCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWgkJMTMzMDAwMDAwCS8qIDEzMyBNSHoJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSwkJQ09ORklHX1NZU19CVVNfSFoKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIAogLyoKQEAgLTE4Myw2MyArMTgzLDYzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KIAogLyogYXJlYXMgdG8gbWFwIGRpZmZlcmVudCB0aGluZ3Mgd2l0aCB0aGUgR1QgaW4gcGh5c2ljYWwgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX0RGTF9HVF9SRUdTCQkweDE0MDAwMDAwCS8qIGJvb3QgdGltZSBHVF9SRUdTICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0RGTF9HVF9SRUdTCQkweDE0MDAwMDAwCS8qIGJvb3QgdGltZSBHVF9SRUdTICovCiAKIC8qIFdoYXQgdG8gcHV0IGluIHRoZSBiYXRzLiAqLwotI2RlZmluZSBDRkdfTUlTQ19SRUdJT05fQkFTRQkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRQkweGYwMDAwMDAwCiAKIC8qIFBlcmlwaGVyYWwgRGV2aWNlIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX0dUX1JFR1MJCTB4ZjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFVl9CQVNFCQkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1RfUkVHUwkJMHhmODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFVl9CQVNFCQkweGZmMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RFVjBfU1BBQ0UJCUNGR19ERVZfQkFTRQotI2RlZmluZSBDRkdfREVWMV9TUEFDRQkJKENGR19ERVYwX1NQQUNFICsgQ0ZHX0RFVjBfU0laRSkKLSNkZWZpbmUgQ0ZHX0RFVjJfU1BBQ0UJCShDRkdfREVWMV9TUEFDRSArIENGR19ERVYxX1NJWkUpCi0jZGVmaW5lIENGR19ERVYzX1NQQUNFCQkoQ0ZHX0RFVjJfU1BBQ0UgKyBDRkdfREVWMl9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfU1BBQ0UJCUNPTkZJR19TWVNfREVWX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NQQUNFCQkoQ09ORklHX1NZU19ERVYwX1NQQUNFICsgQ09ORklHX1NZU19ERVYwX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TUEFDRQkJKENPTkZJR19TWVNfREVWMV9TUEFDRSArIENPTkZJR19TWVNfREVWMV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0RFVjNfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjJfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjJfU0laRSkKIAotI2RlZmluZSBDRkdfREVWMF9TSVpFCQkgXzhNIC8qIEZsYXNoIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX0RFVjFfU0laRQkJIDAgICAvKiB1bnVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0RFVjJfU0laRQkJIDAgICAvKiB1bnVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0RFVjNfU0laRQkJIDAgICAvKiB1bnVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1NJWkUJCSBfOE0gLyogRmxhc2ggYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjFfU0laRQkJIDAgICAvKiB1bnVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYyX1NJWkUJCSAwICAgLyogdW51c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWM19TSVpFCQkgMCAgIC8qIHVudXNlZCAqLwogCi0jZGVmaW5lIENGR18xNkJJVF9CT09UX1BBUgkweGMwMWI1ZTdjCi0jZGVmaW5lIENGR19ERVYwX1BBUgkJQ0ZHXzE2QklUX0JPT1RfUEFSCisjZGVmaW5lIENPTkZJR19TWVNfMTZCSVRfQk9PVF9QQVIJMHhjMDFiNWU3YworI2RlZmluZSBDT05GSUdfU1lTX0RFVjBfUEFSCQlDT05GSUdfU1lTXzE2QklUX0JPT1RfUEFSCiAKICNpZiAwIC8qIFdyb25nPz8gTlRMICovCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8wCTB4NTM1NDE3MTcJLyogSW5pdEFjdCBFT1RbNF0gREJ1cnN0IFRDRW5bMV0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wCTB4NTM1NDE3MTcJLyogSW5pdEFjdCBFT1RbNF0gREJ1cnN0IFRDRW5bMV0gKi8KIAkJCQkJCS8qIERNQUFja1sxOjBdIEdOVDBbMTowXSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzAJMHg1MzU0Nzc3NwkvKiBJbml0QWN0IEVPVFs0XSBEQnVyc3QgVENFblsxXSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHg1MzU0Nzc3NwkvKiBJbml0QWN0IEVPVFs0XSBEQnVyc3QgVENFblsxXSAqLwogCQkJCQkJLyogUkVRMFsxOjBdIEdOVDBbMTowXSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8xCTB4NDQwMDk5MTEJLyogVENFbls0XSBUQ1RjbnRbNF0gR1BQWzEzOjEyXSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzEJMHg0NDAwOTkxMQkvKiBUQ0VuWzRdIFRDVGNudFs0XSBHUFBbMTM6MTJdICovCiAJCQkJCQkvKiBETUFSZXFbNF0gRE1BQWNrWzRdIFdETk1JIFdERSAqLwogI2lmIDAgLyogV3Jvbmc/PyBOVEwgKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzIJMHg0MDA5MTgxOAkvKiBUQ1RjbnRbMF0gR1BQWzIyOjIxXSBCQ2xrSW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yCTB4NDAwOTE4MTgJLyogVENUY250WzBdIEdQUFsyMjoyMV0gQkNsa0luICovCiAJCQkJCQkvKiBETUFBY2tbMTowXSBHTlQxWzE6MF0gKi8KICNlbHNlCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8yCTB4NDAwOTg4ODgJLyogVENUY250WzBdICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMgkweDQwMDk4ODg4CS8qIFRDVGNudFswXSAqLwogCQkJCQkJLyogR1BQWzIyXSAoUlMyMzJJbnRCIG9yIFBDSTFJbnQpICovCiAJCQkJCQkvKiBHUFBbMjFdIChSUzMyM0ludEEpICovCiAJCQkJCQkvKiBCQ2xrSW4gKi8KQEAgLTI0NywxMCArMjQ3LDEwIEBACiAjZW5kaWYKIAogI2lmIDAgLyogV3Jvbmc/PyBOVEwgKi8KLSMgZGVmaW5lIENGR19NUFBfQ09OVFJPTF8zCTB4MDAwOTAwNjYJLyogR1BQWzMxOjI5XSBCQ2xrT3V0MCAqLworIyBkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zCTB4MDAwOTAwNjYJLyogR1BQWzMxOjI5XSBCQ2xrT3V0MCAqLwogCQkJCQkJLyogR1BQWzI3OjI2XSBJbnRbMTowXSAqLwogI2Vsc2UKLSMgZGVmaW5lIENGR19NUFBfQ09OVFJPTF8zCTB4MjIwOTAwNjYgICAgICAvKiBNUkVRIE1HTlQgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfTVBQX0NPTlRST0xfMwkweDIyMDkwMDY2ICAgICAgLyogTVJFUSBNR05UICovCiAJCQkJCQkvKiBHUFBbMjldICAgIChQQ0kxSW50KSAqLwogCQkJCQkJLyogQkNsa091dDAgKi8KIAkJCQkJCS8qIEdQUFsyN10gICAgKFBDSTBJbnQpICovCkBAIC0yNTgsMTcgKzI1OCwxNyBAQAogCQkJCQkJLyogQ1BVSW50WzI1OjI0XSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1NFUklBTF9QT1JUX01VWAkweDAwMDAxMTAyCS8qIDExPU1QU0MxL01QU0MwIDAyPUVUSCAwIGFuZCAyIFJNSUkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMTEwMgkvKiAxMT1NUFNDMS9NUFNDMCAwMj1FVEggMCBhbmQgMiBSTUlJICovCiAKICNpZiAwIC8qIFdyb25nPz8gLSBOVEwgKi8KLSMgZGVmaW5lIENGR19HUFBfTEVWRUxfQ09OVFJPTAkweDAwMDAwMmM2CisjIGRlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4MDAwMDAyYzYKICNlbHNlCi0jIGRlZmluZSBDRkdfR1BQX0xFVkVMX0NPTlRST0wJMHgyYzYwMDAwMAkvKiAwMDEwIDExMDAgMDExMCAwMDAwICovCisjIGRlZmluZSBDT05GSUdfU1lTX0dQUF9MRVZFTF9DT05UUk9MCTB4MmM2MDAwMDAJLyogMDAxMCAxMTAwIDAxMTAgMDAwMCAqLwogCQkJCQkJLyogZ3BwWzI5XSAqLwogCQkJCQkJLyogZ3BwWzI3OjI2XSAqLwogCQkJCQkJLyogZ3BwWzIyOjIxXSAqLwogCi0jIGRlZmluZSBDRkdfU0RSQU1fQ09ORklHCTB4ZDhlMTgyMDAJLyogMHg0NDggKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ09ORklHCTB4ZDhlMTgyMDAJLyogMHg0NDggKi8KIAkJCQkvKiBpZG1hcyB1c2UgYnVmZmVyIDEsMQogCQkJCSAgIGNvbW0gdXNlIGJ1ZmZlciAwCiAJCQkJICAgcGNpIHVzZSBidWZmZXIgMSwxCkBAIC0yODYsMTMgKzI4NiwxMyBAQAogI2VuZGlmCiAKICNpZiAwCi0jZGVmaW5lIENGR19EVUFSVF9JTwkJQ0ZHX0RFVjJfU1BBQ0UKLSNkZWZpbmUgQ0ZHX0RVQVJUX0NIQU4JCTEJCS8qIGNoYW5uZWwgdG8gdXNlIGZvciBjb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfSU8JCUNPTkZJR19TWVNfREVWMl9TUEFDRQorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0NIQU4JCTEJCS8qIGNoYW5uZWwgdG8gdXNlIGZvciBjb25zb2xlICovCiAjZW5kaWYKLSN1bmRlZiBDRkdfSU5JVF9DSEFOMQotI3VuZGVmIENGR19JTklUX0NIQU4yCisjdW5kZWYgQ09ORklHX1NZU19JTklUX0NIQU4xCisjdW5kZWYgQ09ORklHX1NZU19JTklUX0NIQU4yCiAjaWYgMAotI2RlZmluZSBTUkFNX0JBU0UJCUNGR19ERVYwX1NQQUNFCisjZGVmaW5lIFNSQU1fQkFTRQkJQ09ORklHX1NZU19ERVYwX1NQQUNFCiAjZGVmaW5lIFNSQU1fU0laRQkJMHgwMDEwMDAwMAkJLyogMSBNQiBvZiBzcmFtICovCiAjZW5kaWYKIApAQCAtMzExLDI0ICszMTEsMjQgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAgICAgICAgICAgICAgICAgICAvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheSAgICAgICAgICovCiAKIC8qIFBDSSBNRU1PUlkgTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMF9NRU1fU0laRQlfMTI4TQotI2RlZmluZSBDRkdfUENJMF8wX01FTV9TUEFDRQkoQ0ZHX1BDSTBfTUVNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9NRU1fU0laRQlfMTI4TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKIAotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxXzBfTUVNX1NQQUNFCShDRkdfUENJMV9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFKQogCiAvKiBQQ0kgSS9PIE1BUCBzZWN0aW9uICovCi0jZGVmaW5lIENGR19QQ0kwX0lPX0JBU0UJMHhmYTAwMDAwMAotI2RlZmluZSBDRkdfUENJMF9JT19TSVpFCV8xNk0KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0UJKENGR19QQ0kwX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFCShDRkdfUENJMV9JT19CQVNFKQotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBCQVQgbWFwcGluZ3MKQEAgLTM0MCwzMiArMzQwLDMyIEBACiAgKi8KIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMFUgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQwVSBDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVIENPTkZJR19TWVNfSUJBVDBVCiAKIC8qIGluaXQgcmFtICovCi0jZGVmaW5lIENGR19JQkFUMUwgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBQQ0kwLCBQQ0kxIGluIG9uZSBCQVQgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTCBCQVRMX05PX0FDQ0VTUwotI2RlZmluZSBDRkdfSUJBVDJVIENGR19EQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCBCQVRMX05PX0FDQ0VTUworI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSBDT05GSUdfU1lTX0RCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBHVCByZWdzLCBib290cm9tLCBhbGwgdGhlIGRldmljZXMsIFBDSSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcpCi0jZGVmaW5lIENGR19JQkFUM1UgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCi0jZGVmaW5lIENGR19EQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVSBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVIENPTkZJR19TWVNfSUJBVDNVCiAKIC8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAoZm9yIGNvbXBhdGFiaWxpdHkpIGRlZmF1bHRzICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJNDAwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAk0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJMHg3RgogCiAvKiBJMkMgYWRkcmVzc2VzIGZvciB0aGUgdHdvIERJTU0gU1BEIGNoaXBzICovCiAjaWZuZGVmIENPTkZJR19FVkI2NDI2MF83NTBDWApAQCAtMzgxLDIxICszODEsMjEgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDg8PDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoODw8MjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19FWFRSQV9GTEFTSF9ERVZJQ0UJQk9PVF9ERVZJQ0UKLSNkZWZpbmUgQ0ZHX0VYVFJBX0ZMQVNIX1dJRFRICTIJLyogMTYgYml0ICovCi0jZGVmaW5lIENGR19CT09UX0ZMQVNIX1dJRFRICTIJLyogMTYgYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfREVWSUNFCUJPT1RfREVWSUNFCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfV0lEVEgJMgkvKiAxNiBiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX0ZMQVNIX1dJRFRICTIJLyogMTYgYml0ICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHgxMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCkBAIC00MDUsOSArNDA1LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMJCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MTUsNyArNDE1LDcgQEAKICAqIGxvb2sgaW4gaW5jbHVkZS83NHh4Xzd4eC5oIGZvciB0aGUgZGVmaW5lcyB1c2VkIGhlcmUKICAqLwogCi0jZGVmaW5lIENGR19MMgorI2RlZmluZSBDT05GSUdfU1lTX0wyCiAKICNkZWZpbmUgTDJfSU5JVAkJKEwyQ1JfTDJTSVpfMk0gfCBMMkNSX0wyQ0xLXzMgfCBMMkNSX0wyUkFNX0JVUlNUIHwgXAogCQkJIEwyQ1JfTDJPSF81IHwgTDJDUl9MMkNUTCB8IEwyQ1JfTDJXVCkKQEAgLTQzMCw3ICs0MzAsNyBAQAogI2RlZmluZQlCT09URkxBR19DT0xECTB4MDEJCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JMHgwMgkJLyogU29mdHdhcmUgcmVib290CQkgICAgKi8KIAotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQgICAgICAxCiAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QQVRJLmggYi9pbmNsdWRlL2NvbmZpZ3MvUEFUSS5oCmluZGV4IDQyYjE1NWUuLjlkODBjZTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QQVRJLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BBVEkuaApAQCAtODcsMjggKzg3LDI4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkvKiBzdGRpbiwgc3Rkb3V0IGFuZCBzdGRlcnIgYXJlIGluIGV2aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkvKiBzdGRpbiwgc3Rkb3V0IGFuZCBzdGRlcnIgYXJlIGluIGV2aXJvbm1lbnQgKi8KICNkZWZpbmUgQ09ORklHX1BSRUJPT1QKIAotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJwYXRpPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJInBhdGk9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CSAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAxMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBBMDAwMDAJLyogMTAgTUIgaW4gU1JBTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDEwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBBMDAwMDAJLyogMTAgTUIgaW4gU1JBTQkJCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBEZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAxMjUwMDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMTI1MDAwMCB9CiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMjMsNDEgKzEyMyw0MSBAQAogLyoKICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgKFRoaXMgaXMgbm90IHRoZSBJTU1SIGNvbnRlbnQpCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4MDFDMDAwMDAJCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbnRlcm5hbCBtZW1vcnkgbWFwICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHgwMUMwMDAwMAkJLyogUGh5c2ljYWwgc3RhcnQgYWRyZXNzIG9mIGludGVybmFsIG1lbW9yeSBtYXAgKi8KIAogLyoKICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfSU1NUiArIDB4MDAzZjk4MDApCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbnRlcm5hbCBNUEM1NTUgd3JpdGFibGUgUkFNICovCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJKENGR19JTU1SICsgMHgwMDNmZmZmZikJLyogUGh5c2ljYWwgZW5kIGFkcmVzcyBvZiBpbnRlcm5hbCBNUEM1NTUgdXNlZCBSQU0gYXJlYQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQkxMjgJCQkvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGdsb2JhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0lOSVRfUkFNX0FERFIpIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpIC8qIE9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgcmFtICovCi0jZGVmaW5lCUNGR19JTklUX1NQX0FERFIJKENGR19JTU1SICsgMHgwM2ZhMDAwKQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW5pdGFsIHN0YWNrICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19JTU1SICsgMHgwMDNmOTgwMCkJLyogUGh5c2ljYWwgc3RhcnQgYWRyZXNzIG9mIGludGVybmFsIE1QQzU1NSB3cml0YWJsZSBSQU0gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJKENPTkZJR19TWVNfSU1NUiArIDB4MDAzZmZmZmYpCS8qIFBoeXNpY2FsIGVuZCBhZHJlc3Mgb2YgaW50ZXJuYWwgTVBDNTU1IHVzZWQgUkFNIGFyZWEJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJCS8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZ2xvYmFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUikgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC8qIE9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgcmFtICovCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9BRERSCShDT05GSUdfU1lTX0lNTVIgKyAweDAzZmEwMDApCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbml0YWwgc3RhY2sgKi8KIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBNb25pdG9yIHdvbid0IGNoYW5nZSBtZW1vcnkgbWFwCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZDMDAwMDAJLyogRXh0ZXJuYWwgZmxhc2ggKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIE1vbml0b3Igd29uJ3QgY2hhbmdlIG1lbW9yeSBtYXAJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZDMDAwMDAJLyogRXh0ZXJuYWwgZmxhc2ggKi8KICNkZWZpbmUgUENJX0JBU0UJCTB4MDMwMDAwMDAJLyogUENJIEJhc2UgKENTMikgKi8KICNkZWZpbmUgUENJX0NPTkZJR19CQVNFCQkweDA0MDAwMDAwCS8qIFBDSSAmIFBMRCAgKENTMykgKi8KICNkZWZpbmUgUExEX0NPTkZJR19CQVNFCQkweDA0MDAxMDAwCS8qIFBMRCAgKENTMykgKi8KIAotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCTB4RkZGMDAwMDAKLS8qIENGR19GTEFTSF9CQVNFCSovIC8qIFRFWFRfQkFTRSBpcyBkZWZpbmVkIGluIHRoZSBib2FyZCBjb25maWcubWsgZmlsZS4JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRkYwMDAwMAorLyogQ09ORklHX1NZU19GTEFTSF9CQVNFCSovIC8qIFRFWFRfQkFTRSBpcyBkZWZpbmVkIGluIHRoZSBib2FyZCBjb25maWcubWsgZmlsZS4JKi8KIAkJCQkJCS8qIFRoaXMgYWRyZXNzIGlzIGdpdmVuIHRvIHRoZSBsaW5rZXIgd2l0aCAtVHRleHQgdG8JKi8KIAkJCQkJCS8qIGxvY2F0ZSB0aGUgdGV4dCBzZWN0aW9uIGF0IHRoaXMgYWRyZXNzLgkJKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkJCQkqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCQkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCQkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCQkJCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJKFBMRF9DT05GSUdfQkFTRSArIDB4MTApCSAvKiBBZHJlc3Mgd2hpY2ggY2F1c2VzIHJlc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkoUExEX0NPTkZJR19CQVNFICsgMHgxMCkJIC8qIEFkcmVzcyB3aGljaCBjYXVzZXMgcmVzZXQgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkJKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjYsMTAgKzE2NiwxMCBAQAogICoKICAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEJCS8qIE1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEyOAkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTE4MDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk2MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEJCS8qIE1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMjgJCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTgwMDAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk2MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRUVQUk9NCkBAIC0xODEsMTQgKzE4MSwxNCBAQAogI3VuZGVmICBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjaWZkZWYJQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MDAwMDIwMDAJCS8qIFNldCB3aG9sZSBzZWN0b3IgYXMgZW52CQkqLwotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKCgwIC0gQ0ZHX0ZMQVNIX0JBU0UpIC0gQ09ORklHX0VOVl9TSVpFKQkJLyogRW52aXJvbm1lbnQgc3RhcnRzIGF0IHRoaXMgYWRyZXNzCSovCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoKDAgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpIC0gQ09ORklHX0VOVl9TSVpFKQkJLyogRW52aXJvbm1lbnQgc3RhcnRzIGF0IHRoaXMgYWRyZXNzCSovCiAjZW5kaWYKIAogCiAjZGVmaW5lIENPTkZJR19TUEkJCTEKLSNkZWZpbmUgQ0ZHX1NQSV9DU19VU0VECTB4MDkgLyogQ1MwIGFuZCBDUzMgYXJlIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX1NQSV9DU19CQVNFCTB4MDggLyogQ1MzIGlzIGFjdGl2ZSBsb3cgKi8KLSNkZWZpbmUgQ0ZHX1NQSV9DU19BQ1QJMHgwMCAvKiBDUzMgaXMgYWN0aXZlIGxvdyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQSV9DU19VU0VECTB4MDkgLyogQ1MwIGFuZCBDUzMgYXJlIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfQ1NfQkFTRQkweDA4IC8qIENTMyBpcyBhY3RpdmUgbG93ICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX0NTX0FDVAkweDAwIC8qIENTMyBpcyBhY3RpdmUgbG93ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wKICAqIFNZUENSIGNhbiBvbmx5IGJlIHdyaXR0ZW4gb25jZSBhZnRlciByZXNldCEKQEAgLTE5NywxMCArMTk3LDEwIEBACiAgKi8KICN1bmRlZiBDT05GSUdfV0FUQ0hET0cKICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV1ApCiAjZW5kaWYJLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTIwOSwxNCArMjA5LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgpAQCAtMjI1LDcgKzIyNSw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYwMAotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgU0NDUl9SVERJViAgICB8IFNDQ1JfUlRTRUwgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgU0NDUl9SVERJViAgICB8IFNDQ1JfUlRTRUwgICAgfCBcCiAJCQkgU0NDUl9DT00wMSAgIHwgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzMsNyArMjMzLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERhdGEgc2hvdyBjeWNsZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfRUFSQiB8IFNJVU1DUl9HUEMwMSB8IFNJVU1DUl9NTFJDMTEpIC8qIERpc2FibGUgZGF0YSBzaG93IGN5Y2xlCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0VBUkIgfCBTSVVNQ1JfR1BDMDEgfCBTSVVNQ1JfTUxSQzExKSAvKiBEaXNhYmxlIGRhdGEgc2hvdyBjeWNsZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIKQEAgLTI0MSw0NyArMjQxLDQ3IEBACiAgKiBTZXQgYWxsIGJpdHMgdG8gNDAgTWh6CiAgKgogICovCi0jZGVmaW5lIENGR19PU0NfQ0xLCSgodWludCk0MDAwMDAwKQkJLyogT3NjaWxsYXRvciBjbG9jayBpcyA0TUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfT1NDX0NMSwkoKHVpbnQpNDAwMDAwMCkJCS8qIE9zY2lsbGF0b3IgY2xvY2sgaXMgNE1IegkqLwogCiAKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX01GXzkgfCBQTFBSQ1JfRElWRl8wKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX01GXzkgfCBQTFBSQ1JfRElWRl8wKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVTUNSIC0gVUlNQiBNb2R1bGUgQ29uZmlndXJhdGlvbiBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfVU1DUgkoVU1DUl9GU1BFRUQpCQkvKiBJTUIgY2xvY2sgc2FtZSBhcyBVLWJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX1VNQ1IJKFVNQ1JfRlNQRUVEKQkJLyogSU1CIGNsb2NrIHNhbWUgYXMgVS1idXMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSUNUUkwgLSBJLUJ1cyBTdXBwb3J0IENvbnRyb2wgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSUNUUkwJKElDVFJMX0lTQ1RfU0VSXzcpCS8qIFRha2Ugb3V0IG9mIHNlcmlhbGl6ZWQgbW9kZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lDVFJMCShJQ1RSTF9JU0NUX1NFUl83KQkvKiBUYWtlIG91dCBvZiBzZXJpYWxpemVkIG1vZGUJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVVNJVSAtIE1lbW9yeSBDb250cm9sbGVyIFJlZ2lzdGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCShDRkdfRkxBU0hfQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX1BTXzE2IHwgQlJfU0VUQSkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSgweGZmYzAwMDAwKSAvKiBTQ1kgaXMgbm90IHVzZWQgaWYgZXh0ZXJuYWwgVEEgaXMgc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX1BTXzE2IHwgQlJfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkoMHhmZmMwMDAwMCkgLyogU0NZIGlzIG5vdCB1c2VkIGlmIGV4dGVybmFsIFRBIGlzIHNldCAqLwogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShDRkdfU0RSQU1fQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX1BTXzMyIHwgQlJfU0VUQSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCShPUl9BRERSX01LX0ZGKSAvKiBTQ1kgaXMgbm90IHVzZWQgaWYgZXh0ZXJuYWwgVEEgaXMgc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX1BTXzMyIHwgQlJfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkoT1JfQUREUl9NS19GRikgLyogU0NZIGlzIG5vdCB1c2VkIGlmIGV4dGVybmFsIFRBIGlzIHNldCAqLwogLyogUENJICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkoUENJX0JBU0UgfCBCUl9WIHwgQlJfUFNfMzIgfCBCUl9TRVRBKQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJKE9SX0FERFJfTUtfRkYpCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJKFBDSV9CQVNFIHwgQlJfViB8IEJSX1BTXzMyIHwgQlJfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkoT1JfQUREUl9NS19GRikKIC8qIGNvbmZpZyByZWdpc3RlcnM6ICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkoUENJX0NPTkZJR19CQVNFIHwgQlJfViB8IEJSX0JJIHwgQlJfUFNfMzIgfCBCUl9TRVRBKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJKDB4ZmZmZjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJKFBDSV9DT05GSUdfQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX1BTXzMyIHwgQlJfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkoMHhmZmZmMDAwMCkKIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogV2UgZG9uJ3QgcmVhbGlnbiB0aGUgZmxhc2gJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBXZSBkb24ndCByZWFsaWduIHRoZSBmbGFzaAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERVIgLSBUaW1lciBEZWNyZW1lbnRlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbGlzZSB0byB6ZXJvCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCQkweDAwMDAwMDAwCiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QQ0k0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9QQ0k0MDUuaAppbmRleCBiMGNhNWE4Li5iNTVlMzgzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUENJNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BDSTQwNS5oCkBAIC02MSw3ICs2MSw3IEBACiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC0xMDEsNDMgKzEwMSw0MyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECSAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI3VuZGVmIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKQEAgLTE1OCw2MSArMTU4LDYxIEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHByaW50IHBjaSBkZXZpY2VzIEAgc3RhcnR1cAkqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDcJLyogUENJIERldmljZSBJRDogUENJLTQwNQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDAyODAJLyogUENJIENsYXNzIENvZGU6IE5ldHdvcmsvT3RoZXIqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZmMDAwMDAxCS8qIDE2TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA3CS8qIFBDSSBEZXZpY2UgSUQ6IFBDSS00MDUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFCTB4MDI4MAkvKiBQQ0kgQ2xhc3MgQ29kZTogTmV0d29yay9PdGhlciovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHhmZjAwMDAwMQkvKiAxNk1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAjaWYgMCAvKiB0ZXN0LW9ubHkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhlZjYwMDAwMAkvKiBwb2ludCB0byBpbnRlcm5hbCByZWdzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZlMDAwMDEJLyogMk1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHhlZjYwMDAwMAkvKiBwb2ludCB0byBpbnRlcm5hbCByZWdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmZTAwMDAxCS8qIDJNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGRDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogVXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyMSw3ICsyMjEsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEJLyogdXNlIE5WUkFNIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgwZmY4CQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtKENPTkZJR19FTlZfU0laRSs4KSkJLyogRW52CSovCisJKENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSK0NPTkZJR19TWVNfTlZSQU1fU0laRS0oQ09ORklHX0VOVl9TSVpFKzgpKQkvKiBFbnYJKi8KIAogI2Vsc2UgLyogVXNlIEVFUFJPTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAKQEAgLTIzMSwyNCArMjMxLDI0IEBACiAJCQkJICAgLyogdG90YWwgc2l6ZSBvZiBhIENBVDI0V0MwOCBpcyAxMDI0IGJ5dGVzICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZjAyMDAwMDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJKDMyKjEwMjQpCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweGYwMjAwMDAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJCS8qIE5WUkFNIHNpemUJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBFRVBST00gKENBVDI0V0MxNikgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJjIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA0IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjYzLDg4ICsyNjMsODggQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDApIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChOVlJBTS9SVEMpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDAxMDA1MjgwICAvKiBUV1Q9MixXQk49MSxXQkY9MSxUSD0xLFNPUj0xCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDEwMDUyODAgIC8qIFRXVD0yLFdCTj0xLFdCRj0xLFRIPTEsU09SPTEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4RjAyMTgwMDAgIC8qIEJBUz0weEYwMixCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCwgMSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotLyojZGVmaW5lIENGR19FQkNfUEIyQVAJCSAgMHgwMzgwNTZDMCAgLyAqIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJICAweDAzODA1NkMwICAvICogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKEZQR0EgaW50ZXJuYWwpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDQxQzAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MzJiaXQgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRV9BRERSCTB4RjA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDQxQzAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9MzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0VfQUREUgkweEYwNDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKICAqLwogLyogRlBHQSBpbnRlcm5hbCByZWdzICovCi0jZGVmaW5lIENGR19GUEdBX01PREUJCTB4MDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTCQkweDAyCi0jZGVmaW5lIENGR19GUEdBX1RTCQkweDA0Ci0jZGVmaW5lIENGR19GUEdBX1RTX0xPVwkJMHgwNgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwCTB4MTAKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxCTB4MTQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMV9MT1cJMHgxNgotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyCTB4MTgKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQMl9MT1cJMHgxYQotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzCTB4MWMKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERQkJMHgwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTCQkweDAyCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UUwkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfTE9XCQkweDA2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAwCTB4MTAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDBfTE9XCTB4MTIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDEJMHgxNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMV9MT1cJMHgxNgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMgkweDE4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyX0xPVwkweDFhCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAzCTB4MWMKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDNfTE9XCTB4MWUKIAogLyogRlBHQSBNb2RlIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9NT0RFX0NGX1JFU0VUCTB4MDAwMQotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0lSUV9FTkFCTEUgMHgwMTAwCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19DTEVBUgkweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfQ0ZfUkVTRVQJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0lSUV9FTkFCTEUgMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0lSUV9DTEVBUiAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFX1RTX0NMRUFSCTB4MjAwMAogCiAvKiBGUEdBIFN0YXR1cyBSZWcgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDAJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAxCTB4MDAwMgotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMgkweDAwMDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0ZMQVNICTB4MDAwOAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfVFNfSVJRCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDAJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMQkweDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAyCTB4MDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0ZMQVNICTB4MDAwOAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX1RTX0lSUQkweDEwMDAKIAotI2RlZmluZSBDRkdfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzE1ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTMTUgICovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkJMHgwMDQwMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDgwMDAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgwMjAwMDAwMCAgLyogRlBHQSBjbGsgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCQkweDAwNDAwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDgwMDAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KIC8qIG5ldyBJTklUIGFuZCBET05FIHBpbnMgc2luY2UgYm9hcmQgcmV2aXNpb24gMS4yIChmb3IgUFBDNDA1R1ByIHN1cHBvcnQpICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVF9WMTIJMHgwMDAwODAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORV9WMTIJMHgwMDAxMDAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVRfVjEyCTB4MDAwMDgwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FX1YxMgkweDAwMDEwMDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KICNpZiAwIC8qIHRlc3Qtb25seSAqLwotI2RlZmluZSBDRkdfSU5JVF9EQ0FDSEVfQ1MJNwkvKiB1c2UgY3MgIyA3IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiB1c2UgZGF0YSBjYWNoZQkJICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwk3CS8qIHVzZSBjcyAjIDcgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwICAvKiB1c2UgZGF0YSBjYWNoZQkJICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZWxzZQogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1BDSTU0NDEuaCBiL2luY2x1ZGUvY29uZmlncy9QQ0k1NDQxLmgKaW5kZXggYjg4YTE3My4uNDgxZTMzNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BDSTU0NDEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUENJNTQ0MS5oCkBAIC0zMCwyNyArMzAsMjcgQEAKICNkZWZpbmUJQ09ORklHX1BDSTU0NDEJCTEJCS8qIFBDSS01NDQxIGJvYXJkCSovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNTAwMDAwMDAJLyogNTAgTUh6IGNvcmUgY2xrCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFIJCTB4MDAwMDAwMDAJLyogSGFyZC1yZXNldCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FWENFUFRJT05fQUREUgkweDAxMDAwMDIwCS8qIEV4Y2VwdGlvbiBlbnRyeSBwb2ludCovCi0jZGVmaW5lIENGR19OSU9TX1NZU0lEX0JBU0UJMHgwMDkyMDgyOAkvKiBTeXN0ZW0gaWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFIJCTB4MDAwMDAwMDAJLyogSGFyZC1yZXNldCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhDRVBUSU9OX0FERFIJMHgwMTAwMDAyMAkvKiBFeGNlcHRpb24gZW50cnkgcG9pbnQqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfU1lTSURfQkFTRQkweDAwOTIwODI4CS8qIFN5c3RlbSBpZCBhZGRyZXNzCSovCiAjZGVmaW5lCUNPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBlbmFibGUgZWFybHkgYm9hcmQtc3BlYy4gaW5pdCovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDQUNIRSAtLSB0aGUgZm9sbG93aW5nIHdpbGwgc3VwcG9ydCBJSS9zIGFuZCBJSS9mLiBUaGUgSUkvcyBkb2VzIG5vdAogICogaGF2ZSBkY2FjaGUsIHNvIHRoZSBjYWNoZSBpbnN0cnVjdGlvbnMgd2lsbCBiZWhhdmUgYXMgTk9Qcy4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJNDA5NgkJLyogNCBLQnl0ZSB0b3RhbAkqLwotI2RlZmluZSBDRkdfSUNBQ0hFTElORV9TSVpFCTMyCQkvKiAzMiBieXRlcy9saW5lCSovCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJMjA0OAkJLyogMiBLQnl0ZSAoSUkvZikJKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRUxJTkVfU0laRQk0CQkvKiA0IGJ5dGVzL2xpbmUgKElJL2YpCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUJCTQwOTYJCS8qIDQgS0J5dGUgdG90YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVMSU5FX1NJWkUJMzIJCS8qIDMyIGJ5dGVzL2xpbmUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJMjA0OAkJLyogMiBLQnl0ZSAoSUkvZikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUJNAkJLyogNCBieXRlcy9saW5lIChJSS9mKQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUVNT1JZIEJBU0UgQUREUkVTU0VTCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAJLyogOCBNQnl0ZQkJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiA4IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDEwMDAwMDAJLyogU0RSQU0gYmFzZSBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBPUkdBTklaQVRJT04KQEAgLTU5LDI3ICs1OSwyNyBAQAogICoJLUdsb2JhbCBkYXRhIGlzIHBsYWNlZCBiZWxvdyB0aGUgaGVhcC4KICAqCS1UaGUgc3RhY2sgaXMgcGxhY2VkIGJlbG93IGdsb2JhbCBkYXRhICgmZ3Jvd3MgZG93bikuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOGsJCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4awkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogR2xvYmFsIGRhdGEgc2l6ZSByc3ZkKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENGR19NQUxMT0NfTEVOKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfTUFMTE9DX0JBU0UgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1AJCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUAkJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIChBTTI5TFYwNjVEKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBNYXggIyBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIE1heCAjIHNlY3RzIHBlciBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCQkvKiBFcmFzZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwCQkvKiBXcml0ZSB0aW1lb3V0IChtc2VjKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDRkdfTU9OSVRPUl9MRU4gYWJvdmUKLSAqIENGR19SRVNFVF9BRERSLCBzaW5jZSB3ZSBhc3N1bWUgdGhlIG1vbml0b3IgaXMgc3RvcmVkIGF0IHRoZQorICogRU5WSVJPTk1FTlQgLS0gUHV0IGVudmlyb25tZW50IGluIHNlY3RvciBDT05GSUdfU1lTX01PTklUT1JfTEVOIGFib3ZlCisgKiBDT05GSUdfU1lTX1JFU0VUX0FERFIsIHNpbmNlIHdlIGFzc3VtZSB0aGUgbW9uaXRvciBpcyBzdG9yZWQgYXQgdGhlCiAgKiByZXNldCBhZGRyZXNzLCBubz8gVGhpcyB3aWxsIGtlZXAgdGhlIGVudmlyb25tZW50IGluIHVzZXIgcmVnaW9uCiAgKiBvZiBmbGFzaC4gTk9URTogdGhlIG1vbml0b3IgbGVuZ3RoIG11c3QgYmUgbXVsdGlwbGUgb2Ygc2VjdG9yIHNpemUKICAqICh3aGljaCBpcyBjb21tb24gcHJhY3RpY2UpLgpAQCAtODcsMjIgKzg3LDIyIEBACiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQkJLyogRW52aXJvbm1lbnQgaW4gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQkvKiA2NCBLQnl0ZSAoMSBzZWN0b3IpCSovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCQkJLyogU2VyaWFsIGNoYW5nZSBPawkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19SRVNFVF9BRERSICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfUkVTRVRfQUREUiArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDT05TT0xFCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NPTlNPTEVfSlRBRykKLSNkZWZpbmUgQ0ZHX05JT1NfQ09OU09MRQkweDAwOTIwODIwCS8qIEpUQUcgVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMDkyMDgyMAkvKiBKVEFHIFVBUlQgYmFzZSBhZGRyCSovCiAjZWxzZQotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCTB4MDA5MjA4YTAJLyogVUFSVCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0NPTlNPTEUJMHgwMDkyMDhhMAkvKiBVQVJUIGJhc2UgYWRkcgkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05JT1NfRklYRURCQVVECTEJCS8qIEJhdWRyYXRlIGlzIGZpeGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19GSVhFREJBVUQJMQkJLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIEluaXRpYWwgYmF1ZHJhdGUJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDB9CS8qIEl0J3MgZml4ZWQgOy0pCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMH0JLyogSXQncyBmaXhlZCA7LSkJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJCS8qIFN1cHByZXNzIGNvbnNvbGUgaW5mbyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERUJVRwpAQCAtMTE2LDExICsxMTYsMTEgQEAKICAqIHJlZ2lzdGVycywgd2UgY2FuIHNsb3cgaXQgZG93biB0byAxMCBtc2VjIHVzaW5nIFRNUkNOVC4gSWYgdGhlIGRlZmF1bHQKICAqIHBlcmlvZCBpcyBhY2NlcHRhYmxlLCBUTVJDTlQgY2FuIGJlIGxlZnQgdW5kZWZpbmVkLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SQkFTRQkweDAwOTIwODYwCS8qIFRpY2sgdGltZXIgYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19OSU9TX1RNUklSUQkJMwkJLyogVGltZXIgSVJRIG51bQkqLwotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJMTAJCS8qIDEwIG1zZWMgcGVyIHRpY2sJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SQ05UCShDRkdfTklPU19UTVJNUyAqIChDT05GSUdfU1lTX0NMS19GUkVRLzEwMDApKQotI2RlZmluZQlDRkdfSFoJCShDT05GSUdfU1lTX0NMS19GUkVRLyhDRkdfTklPU19UTVJDTlQgKyAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUkJBU0UJMHgwMDkyMDg2MAkvKiBUaWNrIHRpbWVyIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SSVJRCQkzCQkvKiBUaW1lciBJUlEgbnVtCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJNUwkJMTAJCS8qIDEwIG1zZWMgcGVyIHRpY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUkNOVAkoQ09ORklHX1NZU19OSU9TX1RNUk1TICogKENPTkZJR19TWVNfQ0xLX0ZSRVEvMTAwMCkpCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCShDT05GSUdfU1lTX0NMS19GUkVRLyhDT05GSUdfU1lTX05JT1NfVE1SQ05UICsgMSkpCiAKIAogLyoKQEAgLTE1MiwxNCArMTUyLDE0IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUlTQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIFByb3ZpZGUgZXh0ZW5kZWQgaGVscCovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PT4gIgkJLyogQ29tbWFuZCBwcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBidWYgc2l6ZQkqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIE1heCBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgYXJnIGJ1ZiBzaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBidWYgc2l6ZQkqLwotI2RlZmluZQlDRkdfTE9BRF9BRERSCQlDRkdfU0RSQU1fQkFTRQkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRQkvKiBTdGFydCBhZGRyIGZvciB0ZXN0CSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJQ0ZHX0lOSVRfU1AgLSAweDAwMDIwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogUHJvdmlkZSBleHRlbmRlZCBoZWxwKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PT4gIgkJLyogQ29tbWFuZCBwcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gYnVmIHNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogTWF4IGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IGFyZyBidWYgc2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgYnVmIHNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIFN0YXJ0IGFkZHIgZm9yIHRlc3QJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJQ09ORklHX1NZU19JTklUX1NQIC0gMHgwMDAyMDAwMAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1BDSVBQQzIuaCBiL2luY2x1ZGUvY29uZmlncy9QQ0lQUEMyLmgKaW5kZXggMDQ4ZTg5Ni4uNTk1MWQwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BDSVBQQzIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUENJUFBDMi5oCkBAIC00OCw3ICs0OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJCSIiCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQpAQCAtODksNTEgKzg5LDUxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAogLyogUHJpbnQgQnVmZmVyIFNpemUKICAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKIAotI2RlZmluZQlDRkdfTUFYQVJHUwk2NAkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwk2NAkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweEZGRjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9NQVhfU0laRSAgMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTUFYX1NJWkUgIDB4MDAxMDAwMDAKIC8qIE1heGltdW0gYW1vdW50IG9mIFJBTS4KICAqLwotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFICAgIDB4MjAwMDAwMDAgIC8qIDUxMk1iCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgyMDAwMDAwMCAgLyogNTEyTWIJCQkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19TRFJBTV9CQVNFICYmIFwKLSAgICBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX1NEUkFNX0JBU0UgKyBDRkdfTUFYX1JBTV9TSVpFCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPj0gQ09ORklHX1NZU19TRFJBTV9CQVNFICYmIFwKKyAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSN1bmRlZiBDRkdfUkFNQk9PVAorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkgICAgMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCkBAIC0xNDEsNTQgKzE0MSw1NCBAQAogCiAvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEKICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgIDEyOAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDgwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgIENGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgICAgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKIAogLyoKICAqIFRlbXBvcmFyeSBidWZmZXIgZm9yIHNlcmlhbCBkYXRhIHVudGlsIHRoZSByZWFsIHNlcmlhbCBkcml2ZXIKICAqIGlzIGluaXRpYWxpc2VkIChtZW10ZXN0IHdpbGwgZGVzdHJveSB0aGlzIGJ1ZmZlcikKICAqLwotI2RlZmluZSBDRkdfU0NPTlNPTEVfQUREUiAgICAgQ0ZHX0lOSVRfUkFNX0FERFIKLSNkZWZpbmUgQ0ZHX1NDT05TT0xFX1NJWkUgICAgIDB4MDAwMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NDT05TT0xFX0FERFIgICAgIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX1NDT05TT0xFX1NJWkUgICAgIDB4MDAwMjAwMAogCiAvKiBTRFJBTSAwIC0gMjU2TUIKICAqLwotI2RlZmluZSBDRkdfREJBVDBMCSAgICAgIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0RCQVQwVQkgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCSAgICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCSAgICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBcCiAJCQkgICAgICAgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAvKiBTRFJBTSAxIC0gMjU2TUIKICAqLwotI2RlZmluZSBDRkdfREJBVDFMCSAgICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJICAgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKSB8IFwKIAkJCSAgICAgICBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMVUJICAgICAgKChDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDApIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQkgICAgICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDApIHwgXAogCQkJICAgICAgIEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBJbml0IFJBTSBpbiB0aGUgQ1BVIERDYWNoZSAobm8gYmFja2luZyBtZW1vcnkpCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQyTAkgICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCSAgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBcCiAJCQkgICAgICAgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDJVCSAgICAgIChDRkdfSU5JVF9SQU1fQUREUiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJICAgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IFwKIAkJCSAgICAgICBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogSS9PIGFuZCBQQ0kgbWVtb3J5IGF0IDB4ZjAwMDAwMDAKICAqLwotI2RlZmluZSBDRkdfREJBVDNMCSAgICAgICgweGYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfREJBVDNVCSAgICAgICgweGYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCSAgICAgICgweGYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQkgICAgICAoMHhmMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUMEwJICAgICAgQ0ZHX0RCQVQwTAotI2RlZmluZSBDRkdfSUJBVDBVCSAgICAgIENGR19EQkFUMFUKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkgICAgICBDRkdfREJBVDFMCi0jZGVmaW5lIENGR19JQkFUMVUJICAgICAgQ0ZHX0RCQVQxVQotI2RlZmluZSBDRkdfSUJBVDJMCSAgICAgIENGR19EQkFUMkwKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkgICAgICBDRkdfREJBVDJVCi0jZGVmaW5lIENGR19JQkFUM0wJICAgICAgQ0ZHX0RCQVQzTAotI2RlZmluZSBDRkdfSUJBVDNVCSAgICAgIENGR19EQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJICAgICAgQ09ORklHX1NZU19EQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUJICAgICAgQ09ORklHX1NZU19EQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJICAgICAgQ09ORklHX1NZU19EQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJICAgICAgQ09ORklHX1NZU19EQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwJICAgICAgQ09ORklHX1NZU19EQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJICAgICAgQ09ORklHX1NZU19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJICAgICAgQ09ORklHX1NZU19EQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJICAgICAgQ09ORklHX1NZU19EQkFUM1UKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xOTYsNDggKzE5Niw0OCBAQAogICogWW91IHNob3VsZCBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBpZiB5b3UgbWFrZSBjaGFuZ2VzIGhlcmUuCiAgKiBGb3IgdGhlIGRldGFpbCBkZXNjcmlwdGlvbiByZWZlciB0byB0aGUgUENJUFBDMiB1c2VyJ3MgbWFudWFsLgogICovCi0jZGVmaW5lIENGR19IWgkJICAgICAgMTAwMAotI2RlZmluZSBDRkdfQlVTX0haICAgICAgICAgICAgMTAwMDAwMDAwIC8qIGJ1cyBzcGVlZCAtIDEwMCBtaHogICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NQVV9DTEsJICAgICAgMzAwMDAwMDAwCi0jZGVmaW5lIENGR19CVVNfQ0xLCSAgICAgIDEwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haICAgICAgICAgICAgMTAwMDAwMDAwIC8qIGJ1cyBzcGVlZCAtIDEwMCBtaHogICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVfQ0xLCSAgICAgIDMwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsJICAgICAgMTAwMDAwMDAwCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJICAgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxNgkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgaW4gb25lIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE2CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuawkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKgogICogTm90ZTogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBVLUJvb3QgY29kZS4KICAqIEl0J3Mgc3RvcmVkIGluIGZsYXNoIHNlcGFyYXRlbHkuCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg3MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg3MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAgLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKgogICogTDIgY2FjaGUKICAqLwotI3VuZGVmIENGR19MMgorI3VuZGVmIENPTkZJR19TWVNfTDIKICNkZWZpbmUgTDJfSU5JVCAgIChMMkNSX0wyU0laXzJNIHwgTDJDUl9MMkNMS18zIHwgTDJDUl9MMlJBTV9CVVJTVCB8IFwKIAkJICAgTDJDUl9MMk9IXzUgfCBMMkNSX0wyQ1RMIHwgTDJDUl9MMldUKQogI2RlZmluZSBMMl9FTkFCTEUgKEwyX0lOSVQgfCBMMkNSX0wyRSkKQEAgLTI1NCwxMCArMjU0LDEwIEBACiAgKiBEaXNrLU9uLUNoaXAgY29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJCSovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSN1bmRlZiBDRkdfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUXzIwMDAKKyN1bmRlZiBDT05GSUdfU1lTX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBSVEMgbTQ4dDU5CkBAIC0yNjksNyArMjY5LDcgQEAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJCS8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KIAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19UVUxJUAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1BDSVBQQzYuaCBiL2luY2x1ZGUvY29uZmlncy9QQ0lQUEM2LmgKaW5kZXggYWNhYWI3Zi4uYTY4M2E4ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BDSVBQQzYuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUENJUFBDNi5oCkBAIC00OCw3ICs0OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJCSIiCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQpAQCAtOTEsNTEgKzkxLDUxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAogLyogUHJpbnQgQnVmZmVyIFNpemUKICAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKIAotI2RlZmluZSBDRkdfTUFYQVJHUwk2NAkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwk2NAkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MDAxMDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweEZGRjAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9NQVhfU0laRSAgMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTUFYX1NJWkUgIDB4MDAxMDAwMDAKIC8qIE1heGltdW0gYW1vdW50IG9mIFJBTS4KICAqLwotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFICAgIDB4MjAwMDAwMDAJLyogNTEyTWIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRSAgICAweDIwMDAwMDAwCS8qIDUxMk1iCQkJKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA+PSBDRkdfU0RSQU1fQkFTRSAmJiBcCi0gICAgQ0ZHX01PTklUT1JfQkFTRSA8IENGR19TRFJBTV9CQVNFICsgQ0ZHX01BWF9SQU1fU0laRQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfU0RSQU1fQkFTRSAmJiBcCisgICAgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX01BWF9SQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYgQ0ZHX1JBTUJPT1QKKyN1bmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECSAgICAweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQpAQCAtMTQzLDU0ICsxNDMsNTQgQEAKIAogLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhCiAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAxMjgKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHg4MDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgIDB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCiAKIC8qCiAgKiBUZW1wb3JhcnkgYnVmZmVyIGZvciBzZXJpYWwgZGF0YSB1bnRpbCB0aGUgcmVhbCBzZXJpYWwgZHJpdmVyCiAgKiBpcyBpbml0aWFsaXNlZCAobWVtdGVzdCB3aWxsIGRlc3Ryb3kgdGhpcyBidWZmZXIpCiAgKi8KLSNkZWZpbmUgQ0ZHX1NDT05TT0xFX0FERFIgICAgIENGR19JTklUX1JBTV9BRERSCi0jZGVmaW5lIENGR19TQ09OU09MRV9TSVpFICAgICAweDAwMDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ09OU09MRV9BRERSICAgICBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19TQ09OU09MRV9TSVpFICAgICAweDAwMDIwMDAKIAogLyogU0RSQU0gMCAtIDI1Nk1CCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQwTAkgICAgICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMFUJICAgICAgKENGR19TRFJBTV9CQVNFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAkgICAgICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQkgICAgICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgXAogCQkJICAgICAgIEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogLyogU0RSQU0gMSAtIDI1Nk1CCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQxTAkgICAgICAoKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCSAgICAgICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCkgfCBcCiAJCQkgICAgICAgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfREJBVDFVCSAgICAgICgoQ0ZHX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJICAgICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwKSB8IFwKIAkJCSAgICAgICBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogSW5pdCBSQU0gaW4gdGhlIENQVSBEQ2FjaGUgKG5vIGJhY2tpbmcgbWVtb3J5KQogICovCi0jZGVmaW5lIENGR19EQkFUMkwJICAgICAgKENGR19JTklUX1JBTV9BRERSIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAkgICAgICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgXAogCQkJICAgICAgIEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVQkgICAgICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCSAgICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBcCiAJCQkgICAgICAgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEkvTyBhbmQgUENJIG1lbW9yeSBhdCAweGYwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQzTAkgICAgICAoMHhmMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0RCQVQzVQkgICAgICAoMHhmMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkgICAgICAoMHhmMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJICAgICAgKDB4ZjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDBMCSAgICAgIENGR19EQkFUMEwKLSNkZWZpbmUgQ0ZHX0lCQVQwVQkgICAgICBDRkdfREJBVDBVCi0jZGVmaW5lIENGR19JQkFUMUwJICAgICAgQ0ZHX0RCQVQxTAotI2RlZmluZSBDRkdfSUJBVDFVCSAgICAgIENGR19EQkFUMVUKLSNkZWZpbmUgQ0ZHX0lCQVQyTAkgICAgICBDRkdfREJBVDJMCi0jZGVmaW5lIENGR19JQkFUMlUJICAgICAgQ0ZHX0RCQVQyVQotI2RlZmluZSBDRkdfSUJBVDNMCSAgICAgIENGR19EQkFUM0wKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkgICAgICBDRkdfREJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCSAgICAgIENPTkZJR19TWVNfREJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCSAgICAgIENPTkZJR19TWVNfREJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSAgICAgIENPTkZJR19TWVNfREJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCSAgICAgIENPTkZJR19TWVNfREJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSAgICAgIENPTkZJR19TWVNfREJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCSAgICAgIENPTkZJR19TWVNfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSAgICAgIENPTkZJR19TWVNfREJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSAgICAgIENPTkZJR19TWVNfREJBVDNVCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTk4LDQ4ICsxOTgsNDggQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICogRm9yIHRoZSBkZXRhaWwgZGVzY3JpcHRpb24gcmVmZXIgdG8gdGhlIFBDSVBQQzIgdXNlcidzIG1hbnVhbC4KICAqLwotI2RlZmluZSBDRkdfSFoJCSAgICAgIDEwMDAKLSNkZWZpbmUgQ0ZHX0JVU19IWgkgICAgICAxMDAwMDAwMDAgLyogYnVzIHNwZWVkIC0gMTAwIG1oegkJKi8KLSNkZWZpbmUgQ0ZHX0NQVV9DTEsJICAgICAgMzAwMDAwMDAwCi0jZGVmaW5lIENGR19CVVNfQ0xLCSAgICAgIDEwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haCSAgICAgIDEwMDAwMDAwMCAvKiBidXMgc3BlZWQgLSAxMDAgbWh6CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVV9DTEsJICAgICAgMzAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSwkgICAgICAxMDAwMDAwMDAKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgICAoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkgICAgICAoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE2CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTYJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qCiAgKiBOb3RlOiBlbnZpcm9ubWVudCBpcyBub3QgRU1CRURERUQgaW4gdGhlIFUtQm9vdCBjb2RlLgogICogSXQncyBzdG9yZWQgaW4gZmxhc2ggc2VwYXJhdGVseS4KICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDcwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDcwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBTaXplIG9mIHRoZSBFbnZpcm9ubWVudAkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMCAvKiBTaXplIG9mIHRoZSBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qCiAgKiBMMiBjYWNoZQogICovCi0jdW5kZWYgQ0ZHX0wyCisjdW5kZWYgQ09ORklHX1NZU19MMgogI2RlZmluZSBMMl9JTklUCSAgKEwyQ1JfTDJTSVpfMk0gfCBMMkNSX0wyQ0xLXzMgfCBMMkNSX0wyUkFNX0JVUlNUIHwgXAogCQkgICBMMkNSX0wyT0hfNSB8IEwyQ1JfTDJDVEwgfCBMMkNSX0wyV1QpCiAjZGVmaW5lIEwyX0VOQUJMRSAoTDJfSU5JVCB8IEwyQ1JfTDJFKQpAQCAtMjU2LDEwICsyNTYsMTAgQEAKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9ET0NfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcwkJKi8KIAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfMjAwMAotI3VuZGVmIENGR19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMAorI3VuZGVmIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFJUQyBtNDh0NTkKQEAgLTI3MSwxNyArMjcxLDE3IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCS8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KIAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19UVUxJUAogCiAKICNkZWZpbmUgQ09ORklHX1NDU0lfU1lNNTNDOFhYCiAjZGVmaW5lIENPTkZJR19TQ1NJX0RFVl9JRAkweDAwMEIJLyogNTNjODk2ICovCi0jZGVmaW5lIENGR19TQ1NJX01BWF9MVU4JOAkvKiBudW1iZXIgb2Ygc3VwcG9ydGVkIExVTnMgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX1NDU0lfSUQJMTUJLyogbWF4aW11bSBTQ1NJIElEICgwLi42KSAqLwotI2RlZmluZSBDRkdfU0NTSV9NQVhfREVWSUNFCUNGR19TQ1NJX01BWF9TQ1NJX0lEICogQ0ZHX1NDU0lfTUFYX0xVTiAvKiBtYXhpbXVtIFRhcmdldCBkZXZpY2VzICovCi0jZGVmaW5lIENGR19TQ1NJX1NQSU5fVVBfVElNRQkyCi0jZGVmaW5lIENGR19TQ1NJX1NDQU5fQlVTX1JFVkVSU0UgMAorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTgk4CS8qIG51bWJlciBvZiBzdXBwb3J0ZWQgTFVOcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQJMTUJLyogbWF4aW11bSBTQ1NJIElEICgwLi42KSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0RFVklDRQlDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQgKiBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTiAvKiBtYXhpbXVtIFRhcmdldCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9TUElOX1VQX1RJTUUJMgorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfU0NBTl9CVVNfUkVWRVJTRSAwCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCiAjZGVmaW5lIENPTkZJR19NQUNfUEFSVElUSU9OCiAjZGVmaW5lIENPTkZJR19JU09fUEFSVElUSU9OCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUElQNDA1LmggYi9pbmNsdWRlL2NvbmZpZ3MvUElQNDA1LmgKaW5kZXggNmU4ZDdhZC4uMjk2Njk3OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BJUDQwNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QSVA0MDUuaApAQCAtNzksOCArNzksOCBAQAogCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQogCi0jZGVmaW5lCSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZQkgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQkgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBJMkMgU3R1ZmY6CiAgKiB0aGUgUElQNDA1IGlzIGVxdWlwZWQgd2l0aCBhbiBBdG1lbCAyNEMxMjgvMjU2IEVFUFJPTSBhdCBhZGRyZXNzCkBAIC05MCwyMCArOTAsMjAgQEAKICAqIFRoZSBBdG1lbCBFRVBST00gdXNlcyAxNkJpdCBhZGRyZXNzaW5nLgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJjIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUzCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTSAgICAxICAgICAgIC8qIHVzZSBFRVBST00gZm9yIGVudmlyb25tZW50IHZhcnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQgICAgICAgICAgMHgwMDAgICAvKiBlbnZpcm9ubWVudCBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgRUVQUk9NICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRSAgICAgICAgICAgIDB4ODAwICAgLyogMiBrQnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzICovCiAKLSN1bmRlZiBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogVGhlIEF0bWVsIDI0QzEyOC8yNTYgaGFzCSovCisjdW5kZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogVGhlIEF0bWVsIDI0QzEyOC8yNTYgaGFzCSovCiAJCQkJCS8qIDY0IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdAk2IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMzQsNTQgKzEzNCw1NCBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogZGVmaW5lcyBpZiB0aGUgY29uc29sZSBpcyBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJLyogc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGFyZSBpbiBldmlyb25tZW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYJLyogc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGFyZSBpbiBldmlyb25tZW50ICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBkZWZpbmVzIGlmIGFuIG92ZXJ3cml0ZV9jb25zb2xlIGZ1bmN0aW9uIGV4aXN0cwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBkZWZpbmVzIGlmIHRoZSBvdmVyd3JpdGVfY29uc29sZSBzaG91bGQgYmUgc3RvcmVkIGluIHRoZQogICogZW52aXJvbm1lbnQKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSN1bmRlZiBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCisjdW5kZWYgQ09ORklHX1NZU19DT05TT0xFX0VOVl9PVkVSV1JJVEUKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBsb2FkcyBjb25maWcKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiAxIC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogMSAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQgICAgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRCAgICAgICA2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTE5NSw0MCArMTk1LDQwIEBACiAjZGVmaW5lIENPTkZJR19QQ0lfSE9TVCBQQ0lfSE9TVF9GT1JDRQkvKiBjb25maWd1cmUgYXMgcGNpLWhvc3QJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkvKiBwY2kgcGx1Zy1hbmQtcGxheQkJKi8KIAkJCQkJLyogcmVzb3VyY2UgY29uZmlndXJhdGlvbgkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAJLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgwMDAwCS8qIFBDSSBWZW5kb3IgSUQ6IHRvLWRvISEhCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAJLyogUENJIERldmljZSBJRDogdG8tZG8hISEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweDgwMDAwMDAxCS8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRjgwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZSAxMDI0IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCS8qIFJlc2VydmUgMTAyNCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNDgsMTQgKzI0OCwxNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBPbiBDaGlwIFNSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIJLyogaW5zaWRlIG9mIE9uIENoaXAgU1JBTSAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFCS8qIEVuZCBvZiBPbiBDaGlwIFNSQU0JICAgICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSCS8qIGluc2lkZSBvZiBPbiBDaGlwIFNSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCS8qIEVuZCBvZiBPbiBDaGlwIFNSQU0JICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTI2OSw3ICsyNjksNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBFeHRlcm5hbCBwZXJpcGhlcmFsIGJhc2UgYWRkcmVzcwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyAweEU4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyAweEU4MDAwMDAwCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogTGFzdCBTdGFnZSBJbml0CkBAIC0yODksMTUgKzI4OSwxNSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogSURFL0FUQSBzdHVmZgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTIgICAvKiBtYXguIDIgSURFIGJ1c3NlcwkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIgICAvKiBtYXguIDIgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMUYwCS8qIGlkZTAgb2Zmc3RlICovCi0jZGVmaW5lIENGR19BVEFfSURFMV9PRkZTRVQJMHgwMTcwCS8qIGlkZTEgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMAkvKiBkYXRhIHJlZyBvZmZzZXQJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTAJLyogcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgyMDAJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19JU0FfSU9fQkFTRV9BRERSRVNTIC8qIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAxRjAJLyogaWRlMCBvZmZzdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJMHgwMTcwCS8qIGlkZTEgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTAJLyogZGF0YSByZWcgb2Zmc2V0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMAkvKiByZWcgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgyMDAJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLwogCiAjdW5kZWYJQ09ORklHX0lERV84eHhfRElSRUNUCQkvKiBubyBwY21jaWEgaW50ZXJmYWNlIHJlcXVpcmVkICovCiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KQEAgLTMxNCwxOCArMzE0LDE4IEBACiAgKiBTQ1NJIHN1cHBvcnQgKGV4cGVyaW1lbnRhbCkgb25seSBTWU01M0M4eHggc3VwcG9ydGVkCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBDT05GSUdfU0NTSV9TWU01M0M4WFgKLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0xVTgk4CS8qIG51bWJlciBvZiBzdXBwb3J0ZWQgTFVOcyAqLwotI2RlZmluZSBDRkdfU0NTSV9NQVhfU0NTSV9JRAk3CS8qIG1heGltdW0gU0NTSSBJRCAoMC4uNikgKi8KLSNkZWZpbmUgQ0ZHX1NDU0lfTUFYX0RFVklDRQlDRkdfU0NTSV9NQVhfU0NTSV9JRCAqIENGR19TQ1NJX01BWF9MVU4gLyogbWF4aW11bSBUYXJnZXQgZGV2aWNlcyAqLwotI2RlZmluZSBDRkdfU0NTSV9TUElOX1VQX1RJTUUJMgorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX0xVTgk4CS8qIG51bWJlciBvZiBzdXBwb3J0ZWQgTFVOcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYX1NDU0lfSUQJNwkvKiBtYXhpbXVtIFNDU0kgSUQgKDAuLjYpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFCUNPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCAqIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOIC8qIG1heGltdW0gVGFyZ2V0IGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX1NQSU5fVVBfVElNRQkyCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLwotI2RlZmluZSBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBESVNLIFBhcnRpdGlvbiBzdXBwb3J0CkBAIC0zNTksNyArMzU5LDcgQEAKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCiAKIC8qIEVuYWJsZSBuZWVkZWQgaGVscGVyIGZ1bmN0aW9ucyAqLwotI2RlZmluZSBDRkdfREVWSUNFX0RFUkVHSVNURVIJCS8qIG5lZWRzIGRldmljZV9kZXJlZ2lzdGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX0RFUkVHSVNURVIJCS8qIG5lZWRzIGRldmljZV9kZXJlZ2lzdGVyICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIERlYnVnIHN1cHBvcnQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QSzFDMjAuaCBiL2luY2x1ZGUvY29uZmlncy9QSzFDMjAuaAppbmRleCA1ZDJiYzJmLi41YjFmY2ZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUEsxQzIwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BLMUMyMC5oCkBAIC0zMCwyOSArMzAsMjkgQEAKICNkZWZpbmUgQ09ORklHX1BLMUMyMAkJMQkJLyogUEsxQzIwIGJvYXJkCQkqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTUwMDAwMDAwCS8qIDUwIE1IeiBjb3JlIGNsawkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSCQkweDAwMDAwMDAwCS8qIEhhcmQtcmVzZXQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhDRVBUSU9OX0FERFIJMHgwMTAwMDAyMAkvKiBFeGNlcHRpb24gZW50cnkgcG9pbnQqLwotI2RlZmluZSBDRkdfTklPU19TWVNJRF9CQVNFCTB4MDIxMjA4YjgJLyogU3lzdGVtIGlkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSCQkweDAwMDAwMDAwCS8qIEhhcmQtcmVzZXQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYQ0VQVElPTl9BRERSCTB4MDEwMDAwMjAJLyogRXhjZXB0aW9uIGVudHJ5IHBvaW50Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1NZU0lEX0JBU0UJMHgwMjEyMDhiOAkvKiBTeXN0ZW0gaWQgYWRkcmVzcwkqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJLyogZW5hYmxlIGVhcmx5IGJvYXJkLXNwZWMuIGluaXQqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ0FDSEUgLS0gdGhlIGZvbGxvd2luZyB3aWxsIHN1cHBvcnQgSUkvcyBhbmQgSUkvZi4gVGhlIElJL3MgZG9lcyBub3QKICAqIGhhdmUgZGNhY2hlLCBzbyB0aGUgY2FjaGUgaW5zdHJ1Y3Rpb25zIHdpbGwgYmVoYXZlIGFzIE5PUHMuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTQwOTYJCS8qIDQgS0J5dGUgdG90YWwJKi8KLSNkZWZpbmUgQ0ZHX0lDQUNIRUxJTkVfU0laRQkzMgkJLyogMzIgYnl0ZXMvbGluZQkqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTIwNDgJCS8qIDIgS0J5dGUgKElJL2YpCSovCi0jZGVmaW5lIENGR19EQ0FDSEVMSU5FX1NJWkUJNAkJLyogNCBieXRlcy9saW5lIChJSS9mKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQk0MDk2CQkvKiA0IEtCeXRlIHRvdGFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFTElORV9TSVpFCTMyCQkvKiAzMiBieXRlcy9saW5lCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTIwNDgJCS8qIDIgS0J5dGUgKElJL2YpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFTElORV9TSVpFCTQJCS8qIDQgYnl0ZXMvbGluZSAoSUkvZikJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1FTU9SWSBCQVNFIEFERFJFU1NFUwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRkxBU0ggYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCS8qIDggTUJ5dGUJCSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAxMDAwMDAwCS8qIFNEUkFNIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAkvKiAxNiBNQnl0ZQkJKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJMHgwMjAwMDAwMAkvKiBTUkFNIGJhc2UgYWRkcgkqLwotI2RlZmluZSBDRkdfU1JBTV9TSVpFCQkweDAwMTAwMDAwCS8qIDEgTUIgKG9ubHkgMU0gbWFwcGVkKSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAkvKiBGTEFTSCBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwCS8qIDggTUJ5dGUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMTAwMDAwMAkvKiBTRFJBTSBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CeXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJMHgwMjAwMDAwMAkvKiBTUkFNIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fU0laRQkJMHgwMDEwMDAwMAkvKiAxIE1CIChvbmx5IDFNIG1hcHBlZCkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUVNT1JZIE9SR0FOSVpBVElPTgpAQCAtNjEsMjcgKzYxLDI3IEBACiAgKgktR2xvYmFsIGRhdGEgaXMgcGxhY2VkIGJlbG93IHRoZSBoZWFwLgogICoJLVRoZSBzdGFjayBpcyBwbGFjZWQgYmVsb3cgZ2xvYmFsIGRhdGEgKCZncm93cyBkb3duKS4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMTI4awkJKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBHbG9iYWwgZGF0YSBzaXplIHJzdmQqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjhrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBHbG9iYWwgZGF0YSBzaXplIHJzdmQqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19NQUxMT0NfQkFTRSAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUAkJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfQkFTRQkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19NQUxMT0NfQkFTRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQCQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggKEFNMjlMVjA2NUQpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBNYXggIyBzZWN0cyBwZXIgYmFuayAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIE1heCAjIG9mIGZsYXNoIGJhbmtzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJCS8qIEVyYXNlIHRpbWVvdXQgKG1zZWMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMAkJLyogV3JpdGUgdGltZW91dCAobXNlYykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogTWF4ICMgc2VjdHMgcGVyIGJhbmsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4ICMgb2YgZmxhc2ggYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJCS8qIEVyYXNlIHRpbWVvdXQgKG1zZWMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAJCS8qIFdyaXRlIHRpbWVvdXQgKG1zZWMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBFTlZJUk9OTUVOVCAtLSBQdXQgZW52aXJvbm1lbnQgaW4gc2VjdG9yIENGR19NT05JVE9SX0xFTiBhYm92ZQotICogQ0ZHX1JFU0VUX0FERFIsIHNpbmNlIHdlIGFzc3VtZSB0aGUgbW9uaXRvciBpcyBzdG9yZWQgYXQgdGhlCisgKiBFTlZJUk9OTUVOVCAtLSBQdXQgZW52aXJvbm1lbnQgaW4gc2VjdG9yIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gYWJvdmUKKyAqIENPTkZJR19TWVNfUkVTRVRfQUREUiwgc2luY2Ugd2UgYXNzdW1lIHRoZSBtb25pdG9yIGlzIHN0b3JlZCBhdCB0aGUKICAqIHJlc2V0IGFkZHJlc3MsIG5vPyBUaGlzIHdpbGwga2VlcCB0aGUgZW52aXJvbm1lbnQgaW4gdXNlciByZWdpb24KICAqIG9mIGZsYXNoLiBOT1RFOiB0aGUgbW9uaXRvciBsZW5ndGggbXVzdCBiZSBtdWx0aXBsZSBvZiBzZWN0b3Igc2l6ZQogICogKHdoaWNoIGlzIGNvbW1vbiBwcmFjdGljZSkuCkBAIC04OSwzMCArODksMzAgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCQkvKiBFbnZpcm9ubWVudCBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCSg2NCAqIDEwMjQpCS8qIDY0IEtCeXRlICgxIHNlY3RvcikJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJCQkvKiBTZXJpYWwgY2hhbmdlIE9rCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX1JFU0VUX0FERFIgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19SRVNFVF9BRERSICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENPTlNPTEUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ09OU09MRV9KVEFHKQotI2RlZmluZSBDRkdfTklPU19DT05TT0xFCTB4MDIxMjA4YjAJLyogSlRBRyBVQVJUIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfQ09OU09MRQkweDAyMTIwOGIwCS8qIEpUQUcgVUFSVCBiYXNlIGFkZHIJKi8KICNlbHNlCi0jZGVmaW5lIENGR19OSU9TX0NPTlNPTEUJMHgwMjEyMDg0MAkvKiBVQVJUIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfQ09OU09MRQkweDAyMTIwODQwCS8qIFVBUlQgYmFzZSBhZGRyCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTklPU19GSVhFREJBVUQJMQkJLyogQmF1ZHJhdGUgaXMgZml4ZWQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0ZJWEVEQkFVRAkxCQkvKiBCYXVkcmF0ZSBpcyBmaXhlZAkqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkJLyogSW5pdGlhbCBiYXVkcmF0ZQkqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezExNTIwMH0JLyogSXQncyBmaXhlZCA7LSkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7MTE1MjAwfQkvKiBJdCdzIGZpeGVkIDstKQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkJLyogU3VwcHJlc3MgY29uc29sZSBpbmZvKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkJLyogU3VwcHJlc3MgY29uc29sZSBpbmZvKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIEVQQ1MgRGV2aWNlIC0tIHduZSBDRkdfTklPU19FUENTQkFTRSBpcyBkZWZpbmVkIGNvZGUvY29tbWFuZHMgZm9yCisgKiBFUENTIERldmljZSAtLSB3bmUgQ09ORklHX1NZU19OSU9TX0VQQ1NCQVNFIGlzIGRlZmluZWQgY29kZS9jb21tYW5kcyBmb3IKICAqIGVwY3MgZGV2aWNlIGFjY2VzcyBpcyBlbmFibGVkLiBUaGUgYmFzZSBhZGRyZXNzIGlzIHRoZSBlcGNzCiAgKiBfcmVnaXN0ZXJfIGJhc2UgYWRkcmVzcywgTk9UIFRIRSBBRERSRVNTIE9GIFRIRSBNRU1PUlkgQkxPQ0suCiAgKiBUaGUgcmVnaXN0ZXIgYmFzZSBpcyBjdXJyZW50bHkgYXQgb2Zmc2V0IDB4NjAwIGZyb20gdGhlIG1lbW9yeSBiYXNlLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX05JT1NfRVBDU0JBU0UJMHgwMjEwMDIwMAkvKiBFUENTIHJlZ2lzdGVyIGJhc2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX0VQQ1NCQVNFCTB4MDIxMDAyMDAJLyogRVBDUyByZWdpc3RlciBiYXNlCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERUJVRwpAQCAtMTI2LDIzICsxMjYsMjMgQEAKICAqIHJlZ2lzdGVycywgd2UgY2FuIHNsb3cgaXQgZG93biB0byAxMCBtc2VjIHVzaW5nIFRNUkNOVC4gSWYgdGhlIGRlZmF1bHQKICAqIHBlcmlvZCBpcyBhY2NlcHRhYmxlLCBUTVJDTlQgY2FuIGJlIGxlZnQgdW5kZWZpbmVkLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SQkFTRQkweDAyMTIwODIwCS8qIFRpY2sgdGltZXIgYmFzZSBhZGRyICovCi0jZGVmaW5lIENGR19OSU9TX1RNUklSUQkJMwkJLyogVGltZXIgSVJRIG51bQkqLwotI2RlZmluZSBDRkdfTklPU19UTVJNUwkJMTAJCS8qIDEwIG1zZWMgcGVyIHRpY2sJKi8KLSNkZWZpbmUgQ0ZHX05JT1NfVE1SQ05UIChDRkdfTklPU19UTVJNUyAqIChDT05GSUdfU1lTX0NMS19GUkVRLzEwMDApKQotI2RlZmluZSBDRkdfSFoJCShDT05GSUdfU1lTX0NMS19GUkVRLyhDRkdfTklPU19UTVJDTlQgKyAxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUkJBU0UJMHgwMjEyMDgyMAkvKiBUaWNrIHRpbWVyIGJhc2UgYWRkciAqLworI2RlZmluZSBDT05GSUdfU1lTX05JT1NfVE1SSVJRCQkzCQkvKiBUaW1lciBJUlEgbnVtCSovCisjZGVmaW5lIENPTkZJR19TWVNfTklPU19UTVJNUwkJMTAJCS8qIDEwIG1zZWMgcGVyIHRpY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OSU9TX1RNUkNOVCAoQ09ORklHX1NZU19OSU9TX1RNUk1TICogKENPTkZJR19TWVNfQ0xLX0ZSRVEvMTAwMCkpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCShDT05GSUdfU1lTX0NMS19GUkVRLyhDT05GSUdfU1lTX05JT1NfVE1SQ05UICsgMSkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTVEFUVVMgTEVEIC0tIFByb3ZpZGVzIGEgc2ltcGxlIGJsaW5raW5nIGxlZC4gRm9yIE5pb3MyIGVhY2ggYm9hcmQKICAqIG11c3QgaW1wbGVtZW50IGl0cyBvd24gbGVkIHJvdXRpbmVzIC0tIGxlZHMgYXJlLCBhZnRlciBhbGwsCiAgKiBib2FyZC1zcGVjaWZpYywgbm8/CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTEVEUElPX0FERFIJCTB4MDIxMjA4NzAJLyogTEVEIFBJTyBiYXNlIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MRURQSU9fQUREUgkJMHgwMjEyMDg3MAkvKiBMRUQgUElPIGJhc2UgYWRkcgkqLwogI2RlZmluZSBDT05GSUdfU1RBVFVTX0xFRAkJCS8qIEVuYWJsZSBzdGF0dXMgZHJpdmVyICovCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTEJCS8qIEJpdC0wIG9uIFBJTwkJKi8KICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQkxCQkvKiBCbGlua2luZwkJKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDUwMC9DRkdfTklPU19UTVJNUykgLyogRXZlcnkgNTAwIG1zZWMJKi8KKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDUwMC9DT05GSUdfU1lTX05JT1NfVE1STVMpIC8qIEV2ZXJ5IDUwMCBtc2VjCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFVEhFUk5FVCAtLSBUaGUgaGVhZGVyIGZpbGUgZm9yIHRoZSBTTUM5MTExMSBkcml2ZXIgaHVydHMgbXkgZXllcyAuLi4KQEAgLTE5NiwyMSArMTk2LDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9JREUpCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAkJCS8qIEltcGxlbWVudCBpZF9wcmVpbml0CSovCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCQkvKiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJCS8qIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCQkvKiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHgwMDkwMDgwMAkvKiBBVEEgYmFzZSBhZGRyCSovCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCQkvKiBJREUwIG9mZnNldAkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwNDAJCS8qIERhdGEgSU8gb2Zmc2V0CSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwNDAJCS8qIFJlZ2lzdGVyIG9mZnNldAkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCQkvKiBBbHRlcm5hdGUgcmVnIG9mZnNldAkqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERSAgICAgICAgICA0CQkvKiBXaWR0aCBiZXR3aXggYWRkcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4MDA5MDA4MDAJLyogQVRBIGJhc2UgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAJCS8qIElERTAgb2Zmc2V0CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwNDAJCS8qIERhdGEgSU8gb2Zmc2V0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDQwCQkvKiBSZWdpc3RlciBvZmZzZXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAJCS8qIEFsdGVybmF0ZSByZWcgb2Zmc2V0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICA0CQkvKiBXaWR0aCBiZXR3aXggYWRkcnMJKi8KICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KIAogLyogQm9hcmQtc3BlY2lmaWMgY2YgcmVncyAqLwotI2RlZmluZSBDRkdfQ0ZfUFJFU0VOVAkJMHgwMDkwMDg4MAkvKiBDRiBQcmVzZW50IFBJTyBiYXNlCSovCi0jZGVmaW5lIENGR19DRl9QT1dFUgkJMHgwMDkwMDg5MAkvKiBDRiBQb3dlciBGRVQgUElPIGJhc2UqLwotI2RlZmluZSBDRkdfQ0ZfQVRBU0VMCQkweDAwOTAwOGEwCS8qIENGIEFUQVNFTCBQSU8gYmFzZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NGX1BSRVNFTlQJCTB4MDA5MDA4ODAJLyogQ0YgUHJlc2VudCBQSU8gYmFzZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NGX1BPV0VSCQkweDAwOTAwODkwCS8qIENGIFBvd2VyIEZFVCBQSU8gYmFzZSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0ZfQVRBU0VMCQkweDAwOTAwOGEwCS8qIENGIEFUQVNFTCBQSU8gYmFzZQkqLwogCiAjZW5kaWYKIApAQCAtMjE4LDIzICsyMTgsMjMgQEAKICAqIEpGRlMyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9KRkZTMikKLSNkZWZpbmUgQ0ZHX0pGRlNfQ1VTVE9NX1BBUlQJCQkvKiBib2FyZCBkZWZpbmVkIHBhcnQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTX0NVU1RPTV9QQVJUCQkJLyogYm9hcmQgZGVmaW5lZCBwYXJ0CSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1JU0MKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiBQcm92aWRlIGV4dGVuZGVkIGhlbHAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT0+ICIJCS8qIENvbW1hbmQgcHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gYnVmIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBNYXggY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IGFyZyBidWYgc2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgYnVmIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJQ0ZHX1NEUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJQ0ZHX1NEUkFNX0JBU0UJLyogU3RhcnQgYWRkciBmb3IgdGVzdAkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCUNGR19JTklUX1NQIC0gMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIFByb3ZpZGUgZXh0ZW5kZWQgaGVscCovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT0+ICIJCS8qIENvbW1hbmQgcHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIGJ1ZiBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIE1heCBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBhcmcgYnVmIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IGJ1ZiBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBTdGFydCBhZGRyIGZvciB0ZXN0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCUNPTkZJR19TWVNfSU5JVF9TUCAtIDB4MDAwMjAwMDAKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1BMVTQwNS5oIGIvaW5jbHVkZS9jb25maWdzL1BMVTQwNS5oCmluZGV4IDMzN2NiZmIuLjY3NWRiZTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QTFU0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUExVNDA1LmgKQEAgLTQ5LDcgKzQ5LDcgQEAKIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI3VuZGVmICBDT05GSUdfSEFTX0VUSDEKQEAgLTEwMyw1MyArMTAzLDUzIEBACiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19NQzE0NjgxOAkJLyogRFMxNjg1IGlzIE1DMTQ2ODE4IGNvbXBhdGlibGUqLwotI2RlZmluZSBDRkdfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzCQkqLwogCiAjZGVmaW5lIENPTkZJR19TRFJBTV9CQU5LMAkxCS8qIGluaXQgb25ib2FyZCBTRFJBTSBiYW5rIDAJKi8KIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECSAgICA2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAjdW5kZWYJQ09ORklHX1VBUlQxX0NPTlNPTEUJCS8qIGRlZmluZSBmb3IgdWFydDEgYXMgY29uc29sZQkqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KQEAgLTE2NiwyMyArMTY2LDIzIEBACiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKgogICogTkFORC1GTEFTSCBzdHVmZgogICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7Q0ZHX05BTkRfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVAl7Q09ORklHX1NZU19OQU5EX0JBU0V9CiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTICAgICAgICAgIDEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxICAgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfQklHX0RFTEFZX1VTCTI1CiAKLSNkZWZpbmUgQ0ZHX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCi0jZGVmaW5lIENGR19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLwotI2RlZmluZSBDRkdfTkFORF9DTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAyKSAgIC8qIG91ciBDTEUgaXMgR1BJTzIgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DRSAgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAxKSAgIC8qIG91ciBDRSBpcyBHUElPMSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAzKSAgIC8qIG91ciBBTEUgaXMgR1BJTzMgKi8KIAotI2RlZmluZSBDRkdfTkFORF9TS0lQX0JBRF9ET1RfSSAxICAgICAgIC8qICIuaSIgcmVhZCBza2lwcyBiYWQgYmxvY2tzICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUVVJRVQgICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9RVUlFVCAgICAgICAgICAxCiAKIC8qCiAgKiBQQ0kgc3R1ZmYKQEAgLTIwMCwxNSArMjAwLDE1IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UgMSAvKiBkb24ndCBza2lwIGhvc3QgYnJpZGdlIGNvbmZpZyovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDBiMjAgIC8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweGY4MDAwMDAxICAgICAgLyogMTI4TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUyAgMHhmZmMwMDAwMSAgICAgIC8qIDRNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDgwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNSAgLyogUENJIERldmljZSBJRDogQ1BDSS00MDUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUgICAgICAgMHgwYjIwICAvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQSAgMHgwMDAwMDAwMCAgICAgIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TICAweGY4MDAwMDAxICAgICAgLyogMTI4TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHhmZmMwMDAwMSAgICAgIC8qIDRNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA4MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogCiAvKgogICogSURFL0FUQSBzdHVmZgpAQCAtMjE3LDU4ICsyMTcsNTggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIG5vIGxlZCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkJLyogbWF4LiAxIElERSBidXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCQkvKiBtYXguIDEgSURFIGJ1c3NlcwkqLwogLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMSkKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEYwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3MgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweEZGQzAwMDAwIC8qIEZMQVNIIGJhbmsgIzAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpICovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyIGZvciBmbGFzaCBjb25maWcgY3ljbGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkciBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHIgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMgKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZCAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3IgKi8KIAogLyoKICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkEwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmUgMzg0a0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgzODQgKiAxMDI0KQkvKiBSZXNlcnZlIDM4NGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0ICogMTAyNCkJLyogUmVzZXJ2ZSAzODRrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgzODQgKiAxMDI0KQkvKiBSZXNlcnZlIDM4NGtCIGZvciBtYWxsb2MoKSAqLwogCiAvKgogICogRW52aXJvbm1lbnQgVmFyaWFibGUgc2V0dXAKQEAgLTI4MSwyMCArMjgxLDIwIEBACiAgKiBJMkMgRUVQUk9NICgyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSAyNFdDMTYgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUkVOICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSAyNFdDMTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1JFTiAgICAgICAgIDEKIAogLyogMjRXQzE2ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiICAgICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSAyNFdDMTYgaGFzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgMjRXQzE2IGhhcyAgICovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nICovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMzA0LDY5ICszMDQsNjkgQEAKICNkZWZpbmUgRFVBUlQxX0JBCTB4RjAwMDA0MDgJICAgIC8qIERVQVJUIEJhc2UgQWRkcmVzcyAgICAgICAqLwogI2RlZmluZSBSVENfQkEJCTB4RjAwMDA1MDAJICAgIC8qIFJUQyBCYXNlIEFkZHJlc3MgICAgICAgICAqLwogI2RlZmluZSBWR0FfQkEJCTB4RjEwMDAwMDAJICAgIC8qIEVwc29uIFZHQSBCYXNlIEFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCTB4RjQwMDAwMDAJICAgIC8qIE5BTkQgRkxBU0ggQmFzZSBBZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkweEY0MDAwMDAwCSAgICAvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcyAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uICovCiAvKiBUV1Q9MTYsQ1NOPTEsT0VOPTEsV0JOPTEsV0JGPTEsVEg9NCxTT1I9MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCiAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwCiAKIC8qIE1lbW9yeSBCYW5rIDEgKEZsYXNoIEJhbmsgMSwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAogLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdCAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEY0MDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEY0MDE4MDAwCiAKIC8qIE1lbW9yeSBCYW5rIDIgKDggQml0IFBlcmlwaGVyYWw6IENBTiwgVUFSVCwgUlRDKSBpbml0aWFsaXphdGlvbiAqLwogLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDEwMDUzQzAKIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDAxODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDAxODAwMAogCiAvKiBNZW1vcnkgQmFuayAzICgxNiBCaXQgUGVyaXBoZXJhbDogRlBHQSBpbnRlcm5hbCwgZGlnLiBJTykgaW5pdGlhbGl6YXRpb24gKi8KIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDAxMDA1M0MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxMDA1M0MwCiAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEYwMTFBMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMTFBMDAwCiAKIC8qCiAgKiBGUEdBIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRV9BRERSIDB4RjAxMDAxMDAJICAgIC8qIEZQR0EgaW50ZXJuYWwgQmFzZSBBZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgMHhGMDEwMDEwMAkgICAgLyogRlBHQSBpbnRlcm5hbCBCYXNlIEFkZHJlc3MgKi8KIAogLyogRlBHQSBpbnRlcm5hbCByZWdzICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkwJCTB4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMCQkweDAwMAogCiAvKiBGUEdBIENvbnRyb2wgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfV0RJCTB4MDAwMgotI2RlZmluZSBDRkdfRlBHQV9DVFJMX1BTMl9SRVNFVCAweDAwMjAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUkVTRVQJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX1dESQkweDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfUFMyX1JFU0VUIDB4MDAyMAogCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMCAgLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KSAqLwogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JICAxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAgKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKgogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtMzgwLDE2ICszODAsMTYgQEAKICAqIEdQSU8wWzI4LTI5XSAtIFVBUlQxIGRhdGEgc2lnbmFsIGlucHV0L291dHB1dAogICogR1BJTzBbMzAtMzFdIC0gRU1BQzAgYW5kIEVNQUMxIHJlamVjdCBwYWNrZXQgaW5wdXRzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4MDAwMDA1NTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NQotI2RlZmluZSBDRkdfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweDc3RkUwMDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHgwMDAwMDU1MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4NzdGRTAwMTQKIAotI2RlZmluZSBDRkdfRFVBUlRfUlNUCQkoMHg4MDAwMDAwMCA+PiAxNCkKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUAkJKDB4ODAwMDAwMDAgPj4gMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9SU1QJCSgweDgwMDAwMDAwID4+IDE0KQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9XUAkJKDB4ODAwMDAwMDAgPj4gMCkKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC00MjEsOSArNDIxLDkgQEAKICAqLwogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCTEKICNkZWZpbmUgQ09ORklHX1BDSV9PSENJCQkxCi0jZGVmaW5lIENGR19PSENJX1NXQVBfUkVHX0FDQ0VTUyAxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUyAxNQotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCSJvaGNpX3BjaSIKKyNkZWZpbmUgQ09ORklHX1NZU19PSENJX1NXQVBfUkVHX0FDQ0VTUyAxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMgMTUKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJIm9oY2lfcGNpIgogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJMQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1BNNTIwLmggYi9pbmNsdWRlL2NvbmZpZ3MvUE01MjAuaAppbmRleCAyNjc2ZDdkLi5lMjUwZTAzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUE01MjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUE01MjAuaApAQCAtMzMsNyArMzMsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDNXh4eAkJMQkvKiBUaGlzIGlzIGFuIE1QQzV4eHggQ1BVICovCiAjZGVmaW5lIENPTkZJR19QTTUyMAkJMQkvKiAuLi4gb24gUE01MjAgYm9hcmQgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzM01IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzNNSHogKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIApAQCAtNDcsNyArNDcsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDMSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAJLyogLi4uIGF0IDk2MDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogCiAjaWZkZWYgQ09ORklHX01QQzUyMDAJLyogTVBDNTEwMCBQQ0kgaXMgbm90IHN1cHBvcnRlZCB5ZXQuICovCkBAIC03Miw3ICs3Miw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfTUlJCQkxCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAkJMQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjdW5kZWYgIENPTkZJR19OUzgzODJYCiAKICNlbmRpZgpAQCAtMTYxLDQyICsxNjEsNDIgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KICNlbmRpZgogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1OAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkJMHg1MQogCiAvKgogICogRGlzay1Pbi1DaGlwIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19ET0NfU0hPUlRfVElNRU9VVAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJKi8KIAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfMjAwMAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQotI2RlZmluZSBDRkdfRE9DX0JBU0UJCTB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TSVpFCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfQkFTRQkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSVpFCQkweDAwMTAwMDAwCiAKICNpZiBkZWZpbmVkKENPTkZJR19CT09UX1JPTSkKIC8qCkBAIC0yMDgsMTAgKzIwOCwxMCBAQAogICogICAgICAgICAgICAgICAweEZEMDAwMDAwIGZvciAxNiBNQgogICogICAgICAgICAgICAgICAweEZEODAwMDAwIGZvciAgOCBNQgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZBMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDA0MDAwMDAwCi0jZGVmaW5lIENGR19CT09UUk9NX0JBU0UJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZBMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RST01fQkFTRQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFJPTV9TSVpFCTB4MDAwODAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoMHhGREYwMDAwMCArIDB4NDAwMDApCiAjZWxzZQogLyoKQEAgLTIyMywxOSArMjIzLDE5IEBACiAgKiAgICAgICAgICAgICAgIDB4RkYwMDAwMDAgZm9yIDE2IE1CCiAgKiAgICAgICAgICAgICAgIDB4RkY4MDAwMDAgZm9yICA4IE1CCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwNDAwMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgweEZGRjAwMDAwICsgMHg0MDAwMCkKICNlbmRpZgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwNDAwMDAgLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwogCkBAIC0yNTMsMjcgKzI1MywyNyBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI4OCw2OSArMjg4LDY5IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDEwMDAwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MTAwMDAwMDQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19CT09UX1JPTSkKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfQk9PVFJPTV9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0JPT1RST01fU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfQk9PVFJPTV9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0JPT1RST01fU0laRQotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDAwMDRGRjAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfQk9PVFJPTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfQk9PVFJPTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19CT09UUk9NX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19CT09UUk9NX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDAwMDRGRjAwCiAjZWxzZQotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNEZGMDAKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQlDRkdfRE9DX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFCQlDRkdfRE9DX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MDAwNDc4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNEZGMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCUNPTkZJR19TWVNfRE9DX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJQ09ORklHX1NZU19ET0NfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MDAwNDc4MDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKQEAgLTM3MiwyMyArMzcyLDIzIEBACiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFICAgICAgICAgIDQKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFICAgICAgICAgIDQKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTTgyNi5oIGIvaW5jbHVkZS9jb25maWdzL1BNODI2LmgKaW5kZXggZjYyNTM2MS4uYjU4ZjUyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BNODI2LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BNODI2LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZm5kZWYgX19DT05GSUdfSAogI2RlZmluZSBfX0NPTkZJR19ICiAKLSN1bmRlZiBDRkdfUkFNQk9PVAorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCiAvKgogICogSGlnaCBMZXZlbCBDb25maWd1cmF0aW9uIE9wdGlvbnMKQEAgLTU1LDggKzU1LDggQEAKIC8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCiAjdW5kZWYgIENPTkZJR19IQVJEX0kyQwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jIGRlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAotIyBkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCiAgKi8KQEAgLTcyLDcgKzcyLDcgQEAKIAogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg1MQogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTExNywyNSArMTE3LDI1IEBACiAgKiAtIFR4LUNMSyBpcyBDTEsxMAogICovCiAjZGVmaW5lCUNPTkZJR19FVEhFUl9PTl9GQ0MxCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sxCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sxCShDTVhGQ1JfRkMxfENNWEZDUl9SRjFDU19NU0t8Q01YRkNSX1RGMUNTX01TSykKICNpZm5kZWYgQ09ORklHX0RCX0NSODI2X0ozMHhfT04KLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEwKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEwKQogI2Vsc2UKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUxCShDTVhGQ1JfUkYxQ1NfQ0xLMTF8Q01YRkNSX1RGMUNTX0NMSzEyKQogI2VuZGlmCiAvKgogICogLSBSeC1DTEsgaXMgQ0xLMTUKICAqIC0gVHgtQ0xLIGlzIENMSzE0CiAgKi8KICNkZWZpbmUJQ09ORklHX0VUSEVSX09OX0ZDQzIKLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSzIJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMgkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCiAvKgogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAvKiBzeXN0ZW0gY2xvY2sgcmF0ZSAoQ0xLSU4pIC0gZXF1YWwgdG8gdGhlIDYweCBhbmQgbG9jYWwgYnVzIHNwZWVkICovCiAjZGVmaW5lIENPTkZJR184MjYwX0NMS0lOCTY0MDAwMDAwCS8qIGluIEh6ICovCkBAIC0xNDcsNyArMTQ3LDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xODYsODggKzE4Niw4OCBAQAogICogRGlzay1Pbi1DaGlwIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19ET0NfU0hPUlRfVElNRU9VVAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJKi8KIAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfMjAwMAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUXzIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1ogICAgICAgICg4IDw8IDIwKSAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGbGFzaCBhbmQgQm9vdCBST00gbWFwcGluZwogICovCiAjaWZkZWYgQ09ORklHX0ZMQVNIXzMyTUIKLSNkZWZpbmUJQ0ZHX0ZMQVNIMF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19GTEFTSDBfU0laRQkJMHgwMjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0gwX1NJWkUJCTB4MDIwMDAwMDAKICNlbHNlCi0jZGVmaW5lCUNGR19GTEFTSDBfQkFTRQkJMHhGRjAwMDAwMAotI2RlZmluZQlDRkdfRkxBU0gwX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCQkweDAwODAwMDAwCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX0JPT1RST01fQkFTRQkweEZGODAwMDAwCi0jZGVmaW5lCUNGR19CT09UUk9NX1NJWkUJMHgwMDA4MDAwMAotI2RlZmluZSBDRkdfRE9DX0JBU0UJCTB4RkY4MDAwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TSVpFCQkweDAwMTAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVFJPTV9CQVNFCTB4RkY4MDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19CT09UUk9NX1NJWkUJMHgwMDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NJWkUJCTB4MDAxMDAwMDAKIAogLyogRmxhc2ggYmFuayBzaXplIChmb3IgcHJlbGltaW5hcnkgc2V0dGluZ3MpCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUgQ0ZHX0ZMQVNIMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwogI2lmZGVmIENPTkZJR19GTEFTSF8zMk1CCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzUJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEzNQkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAjZWxzZQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KIAogI2lmIDAKIC8qIFN0YXJ0IHBvcnQgd2l0aCBlbnZpcm9ubWVudCBpbiBmbGFzaDsgc3dpdGNoIHRvIEVFUFJPTSBsYXRlciAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCiAjZWxzZQogLyogRmluYWwgdmVyc2lvbjogZW52aXJvbm1lbnQgaW4gRUVQUk9NICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU4Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQk1MTIKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoMjA0OCAtIDUxMikKICNlbmRpZgpAQCAtMjc1LDYxICsyNzUsNjEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0JPT1RfUk9NKQotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCShIUkNXX0JQUzAxIHwgSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TKQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19CUFMwMSB8IEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUykKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUykKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUykKICNlbmRpZgogCiAvKiBubyBzbGF2ZXMgc28ganVzdCBmaWxsIHdpdGggemVyb3MgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICoKLSAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ0ZHX1NEUkFNX0JBU0UsIGxvY2FsIFNEUkFNCisgKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSwgbG9jYWwgU0RSQU0KICAqIGlzIG1hcHBlZCBhdCBTRFJBTV9CQVNFMl9QUkVMSU0uCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjaWZkZWYJQ09ORklHX1BDSQogI2RlZmluZSBDT05GSUdfUENJX1BOUAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZW5kaWYKIAogLyoKQEAgLTM0NCw5ICszNDQsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1OSwxNyArMzU5LDE3IEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCiAJCQkJSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMICAoSElEMF9JQ0V8SElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICBSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUiAgICAgICAgIFJNUl9DU1JFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0yNQpAQCAtMzc3LDE2ICszNzcsMTYgQEAKICAqLwogCiAjZGVmaW5lIEJDUl9BUEQwMSAgICAgICAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1IgICAgICAgICAoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pICAgIC8qIDgyNjAgbW9kZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JDUiAgICAgICAgIChCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkgICAgLyogODI2MCBtb2RlICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaWYgMAotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8U0lVTUNSX0NTMTBQQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwfFNJVU1DUl9DUzEwUEMwMSkKICNlbHNlCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0FQUEMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0FQUEMxMCkKICNlbmRpZgogCiAKQEAgLTM5NywxMCArMzk3LDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTQxMCw3ICs0MTAsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sICAgICAgICAgICAgICAgICA0LTQyCkBAIC00MTgsMTkgKzQxOCwxOSBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgICAgICAgKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgICAgICAgKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgICAgIChTQ0NSX0RGQlJHMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgKFNDQ1JfREZCUkcwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgICAgICAgIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC00NDQsMzQgKzQ0NCwzNCBAQAogCiAJLyogSW5pdGlhbGl6ZSBTRFJBTSBvbiBsb2NhbCBidXMKIAkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0xPQ0FMX1NEUkFNCiAKIAogLyogTWluaW11bSBtYXNrIHRvIHNlcGFyYXRlIHByZWxpbWluYXJ5CiAgKiBhZGRyZXNzIHJhbmdlcyBmb3IgQ1NbMDoyXQogICovCi0jZGVmaW5lIENGR19NSU5fQU1fTUFTSwkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUlOX0FNX01BU0sJMHhDMDAwMDAwMAogCiAvKgogICogd2UgdXNlIHRoZSBzYW1lIHZhbHVlcyBmb3IgMzIgTUIgYW5kIDEyOCBNQiBTRFJBTQogICogcmVmcmVzaCByYXRlID0gNy43MyB1UyAoNjQgTUh6IEJ1cyBDbG9jaykKICAqLwotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHgyMDAwCi0jZGVmaW5lIENGR19QU1JUICAgICAgICAweDBFCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAgICAgMHgwRQogCi0jZGVmaW5lIENGR19NUlNfT0ZGUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVJTX09GRlMJMHgwMDAwMDAwMAogCiAKICNpZiBkZWZpbmVkKENPTkZJR19CT09UX1JPTSkKIC8qCiAgKiBCYW5rIDAgLSBCb290IFJPTSAoOCBiaXQgd2lkZSkKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKENGR19CT09UUk9NX0JBU0UgJiBCUnhfQkFfTVNLKXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAogCQkJIEJSeF9QU184CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfQk9PVFJPTV9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19CT09UUk9NX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYxCQkJfFwKIAkJCSBPUnhHX1NDWV8zX0NMSwkJCXxcCkBAIC00ODEsMTIgKzQ4MSwxMiBAQAogLyoKICAqIEJhbmsgMSAtIEZsYXNoICg2NCBiaXQgd2lkZSkKICAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCSBCUnhfUFNfNjQJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENGR19GTEFTSF9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfM19DTEsJCQl8XApAQCAtNDk4LDEyICs0OTgsMTIgQEAKIC8qCiAgKiBCYW5rIDAgLSBGbGFzaCAoNjQgYml0IHdpZGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNICAoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0ZMQVNIX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMSAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19TQ1lfM19DTEsgICAgICAgICAgICAgICAgIHxcCkBAIC01MTMsMTIgKzUxMywxMiBAQAogLyoKICAqIEJhbmsgMSAtIERpc2stT24tQ2hpcAogICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQ0ZHX0RPQ19CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoQ09ORklHX1NZU19ET0NfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzgJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENGR19ET0NfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRE9DX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYxCQkJfFwKIAkJCSBPUnhHX1NDWV8zX0NMSwkJCXxcCkBAIC01MzAsMjAgKzUzMCwyMCBAQAogLyogQmFuayAyIC0gU0RSQU0KICAqLwogCi0jaWZuZGVmIENGR19SQU1CT09UCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAoKENGR19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0gICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX1AgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDgtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOENPTCAgICAoQ0ZHX01JTl9BTV9NQVNLCSAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfOENPTCAgICAoQ09ORklHX1NZU19NSU5fQU1fTUFTSwkgICAgICAgIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E5ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEyKQogCi0jZGVmaW5lIENGR19QU0RNUl84Q09MICAoUFNETVJfU0RBTV9BMTNfSVNfQTUgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOENPTCAgKFBTRE1SX1NEQU1fQTEzX0lTX0E1ICAgICAgICAgICB8XAogCQkJIFBTRE1SX0JTTUFfQTE0X0ExNiAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTEwICAgICAgICAgICB8XAogCQkJIFBTRE1SX1JGUkNfN19DTEsgICAgICAgICAgICAgICB8XApAQCAtNTU1LDEyICs1NTUsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl85Q09MICAgIChDRkdfTUlOX0FNX01BU0sgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfOUNPTCAgICAoQ09ORklHX1NZU19NSU5fQU1fTUFTSyAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BNyAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVJfOUNPTCAgKFBTRE1SX1NEQU1fQTE0X0lTX0E1ICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzlDT0wgIChQU0RNUl9TREFNX0ExNF9JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExM19BMTUgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0E5ICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9SRlJDXzdfQ0xLICAgICAgICAgICAgICAgfFwKQEAgLTU3MCw5ICs1NzAsOSBAQAogCQkJIFBTRE1SX1dSQ18xQyAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX0NMXzIpCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0gICBDRkdfT1IyXzlDT0wKLSNkZWZpbmUgQ0ZHX1BTRE1SICAgICAgICBDRkdfUFNETVJfOUNPTAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0gICBDT05GSUdfU1lTX09SMl85Q09MCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIgICAgICAgIENPTkZJR19TWVNfUFNETVJfOUNPTAogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTTgyOC5oIGIvaW5jbHVkZS9jb25maWdzL1BNODI4LmgKaW5kZXggZjQzN2QyMS4uOTZjODZmNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BNODI4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BNODI4LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZm5kZWYgX19DT05GSUdfSAogI2RlZmluZSBfX0NPTkZJR19ICiAKLSN1bmRlZiBDRkdfUkFNQk9PVAorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCiAvKgogICogSGlnaCBMZXZlbCBDb25maWd1cmF0aW9uIE9wdGlvbnMKQEAgLTU1LDggKzU1LDggQEAKIC8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSMgZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCi0jIGRlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KICAqLwpAQCAtNzIsNyArNzIsNyBAQAogCiAKICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDUxCiAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgpAQCAtMTE3LDI1ICsxMTcsMjUgQEAKICAqIC0gVHgtQ0xLIGlzIENMSzEwCiAgKi8KICNkZWZpbmUgQ09ORklHX0VUSEVSX09OX0ZDQzEKLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSzEJKENNWEZDUl9GQzF8Q01YRkNSX1JGMUNTX01TS3xDTVhGQ1JfVEYxQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSzEJKENNWEZDUl9GQzF8Q01YRkNSX1JGMUNTX01TS3xDTVhGQ1JfVEYxQ1NfTVNLKQogI2lmbmRlZiBDT05GSUdfREJfQ1I4MjZfSjMweF9PTgotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTEJKENNWEZDUl9SRjFDU19DTEsxMXxDTVhGQ1JfVEYxQ1NfQ0xLMTApCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTEJKENNWEZDUl9SRjFDU19DTEsxMXxDTVhGQ1JfVEYxQ1NfQ0xLMTApCiAjZWxzZQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTEJKENNWEZDUl9SRjFDU19DTEsxMXxDTVhGQ1JfVEYxQ1NfQ0xLMTIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTEJKENNWEZDUl9SRjFDU19DTEsxMXxDTVhGQ1JfVEYxQ1NfQ0xLMTIpCiAjZW5kaWYKIC8qCiAgKiAtIFJ4LUNMSyBpcyBDTEsxNQogICogLSBUeC1DTEsgaXMgQ0xLMTQKICAqLwogI2RlZmluZSBDT05GSUdfRVRIRVJfT05fRkNDMgotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMgkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMgkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0syCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMgkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKIC8qCiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKIC8qIHN5c3RlbSBjbG9jayByYXRlIChDTEtJTikgLSBlcXVhbCB0byB0aGUgNjB4IGFuZCBsb2NhbCBidXMgc3BlZWQgKi8KICNkZWZpbmUgQ09ORklHXzgyNjBfQ0xLSU4JMTAwMDAwMDAwCS8qIGluIEh6ICovCkBAIC0xNDcsNyArMTQ3LDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xODUsODIgKzE4NSw4MiBAQAogICovCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQogCi0jZGVmaW5lIENGR19ET0NfU0hPUlRfVElNRU9VVAotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJKi8KIAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfMjAwMAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUXzIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJICAgICAoOCA8PCAyMCkJICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSAgICAgKDggPDwgMjApCSAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGbGFzaCBhbmQgQm9vdCBST00gbWFwcGluZwogICovCiAKLSNkZWZpbmUgQ0ZHX0JPT1RST01fQkFTRQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19CT09UUk9NX1NJWkUJMHgwMDA4MDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9TSVpFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19ET0NfQkFTRQkJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfRE9DX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUk9NX0JBU0UJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RST01fU0laRQkweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NJWkUJCTB4MDAxMDAwMDAKIAogCiAvKiBGbGFzaCBiYW5rIHNpemUgKGZvciBwcmVsaW1pbmFyeSBzZXR0aW5ncykKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRSBDRkdfRkxBU0gwX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFIENPTkZJR19TWVNfRkxBU0gwX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzUJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogI2lmIDAKIC8qIFN0YXJ0IHBvcnQgd2l0aCBlbnZpcm9ubWVudCBpbiBmbGFzaDsgc3dpdGNoIHRvIEVFUFJPTSBsYXRlciAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCiAjZWxzZQogLyogRmluYWwgdmVyc2lvbjogZW52aXJvbm1lbnQgaW4gRUVQUk9NICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU4Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQk1MTIKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoMjA0OCAtIDUxMikKICNlbmRpZgpAQCAtMjY4LDYxICsyNjgsNjEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0JPT1RfUk9NKQotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCShIUkNXX0JQUzAxIHwgSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TKQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19CUFMwMSB8IEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUykKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUykKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMDAgfCBIUkNXX0JNUykKICNlbmRpZgogCiAvKiBubyBzbGF2ZXMgc28ganVzdCBmaWxsIHdpdGggemVyb3MgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqCi0gKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENGR19TRFJBTV9CQVNFLCBsb2NhbCBTRFJBTQorICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UsIGxvY2FsIFNEUkFNCiAgKiBpcyBtYXBwZWQgYXQgU0RSQU1fQkFTRTJfUFJFTElNLgogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogI2lmZGVmCUNPTkZJR19QQ0kKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgJCS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOAkJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCiAjZW5kaWYKIAogLyoKQEAgLTMzNyw5ICszMzcsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNTIsMTcgKzM1MiwxNyBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCiAJCQkJSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkoSElEMF9JQ0V8SElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMgkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkoSElEMF9JQ0V8SElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyCQkJCQkgNS01CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwotI2RlZmluZSBDRkdfUk1SCQlSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJUk1SX0NTUkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24JCQkJCSA0LTI1CkBAIC0zNzAsMTYgKzM3MCwxNiBAQAogICovCiAKICNkZWZpbmUgQkNSX0FQRDAxCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JDUgkJKEJDUl9BUEQwMXxCQ1JfRVRNfEJDUl9MRVRNKQkvKiA4MjYwIG1vZGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCShCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkJLyogODI2MCBtb2RlICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaWYgMAotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTB8U0lVTUNSX0NTMTBQQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwfFNJVU1DUl9DUzEwUEMwMSkKICNlbHNlCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0FQUEMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0FQUEMxMCkKICNlbmRpZgogCiAKQEAgLTM5MCwxMCArMzkwLDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTQwMyw3ICs0MDMsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQwkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJIDQtNDIKQEAgLTQxMSwxOSArNDExLDE5IEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sCQkJCQkgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfREZCUkcwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0RGQlJHMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbgkJCQkxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IJMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTQzNywzNCArNDM3LDM0IEBACiAKIAkvKiBJbml0aWFsaXplIFNEUkFNIG9uIGxvY2FsIGJ1cwogCSAqLwotI2RlZmluZSBDRkdfSU5JVF9MT0NBTF9TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0KIAogCiAvKiBNaW5pbXVtIG1hc2sgdG8gc2VwYXJhdGUgcHJlbGltaW5hcnkKICAqIGFkZHJlc3MgcmFuZ2VzIGZvciBDU1swOjJdCiAgKi8KLSNkZWZpbmUgQ0ZHX01JTl9BTV9NQVNLIDB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSU5fQU1fTUFTSyAweEMwMDAwMDAwCiAKIC8qCiAgKiB3ZSB1c2UgdGhlIHNhbWUgdmFsdWVzIGZvciAzMiBNQiBhbmQgMTI4IE1CIFNEUkFNCiAgKiByZWZyZXNoIHJhdGUgPSA3LjY4IHVTICgxMDAgTUh6IEJ1cyBDbG9jaykKICAqLwotI2RlZmluZSBDRkdfTVBUUFIJMHgyMDAwCi0jZGVmaW5lIENGR19QU1JUCTB4MTYKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCTB4MTYKIAotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAwMDAKIAogCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PVF9ST00pCiAvKgogICogQmFuayAwIC0gQm9vdCBST00gKDggYml0IHdpZGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfQk9PVFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0JPT1RST01fQkFTRSAmIEJSeF9CQV9NU0spfFwKIAkJCSBCUnhfUFNfOAkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKFAyU1pfVE9fQU0oQ0ZHX0JPT1RST01fU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfQk9PVFJPTV9TSVpFKQl8XAogCQkJIE9SeEdfQ1NOVAkJCXxcCiAJCQkgT1J4R19BQ1NfRElWMQkJCXxcCiAJCQkgT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtNDc0LDEyICs0NzQsMTIgQEAKIC8qCiAgKiBCYW5rIDEgLSBGbGFzaCAoNjQgYml0IHdpZGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShDRkdfRkxBU0hfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTQ5MSwxMiArNDkxLDEyIEBACiAvKgogICogQmFuayAwIC0gRmxhc2ggKDY0IGJpdCB3aWRlKQogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJIEJSeF9QU182NAkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKFAyU1pfVE9fQU0oQ0ZHX0ZMQVNIX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShDT05GSUdfU1lTX0ZMQVNIX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYxCQkJfFwKIAkJCSBPUnhHX1NDWV81X0NMSwkJCXxcCkBAIC01MDYsMTIgKzUwNiwxMiBAQAogLyoKICAqIEJhbmsgMSAtIERpc2stT24tQ2hpcAogICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQ0ZHX0RPQ19CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoQ09ORklHX1NZU19ET0NfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzgJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENGR19ET0NfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfRE9DX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYxCQkJfFwKIAkJCSBPUnhHX1NDWV81X0NMSwkJCXxcCkBAIC01MjMsMjAgKzUyMywyMCBAQAogLyogQmFuayAyIC0gU0RSQU0KICAqLwogCi0jaWZuZGVmIENGR19SQU1CT09UCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCSBCUnhfUFNfNjQJCQl8XAogCQkJIEJSeF9NU19TRFJBTV9QCQkJfFwKIAkJCSBCUnhfVikKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOC1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl84Q09MCShDRkdfTUlOX0FNX01BU0sJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzhDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E5CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfUFNETVJfOENPTAkoUFNETVJfU0RBTV9BMTNfSVNfQTUJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOENPTAkoUFNETVJfU0RBTV9BMTNfSVNfQTUJCXxcCiAJCQkgUFNETVJfQlNNQV9BMTRfQTE2CQl8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTEwCQl8XAogCQkJIFBTRE1SX1JGUkNfN19DTEsJCXxcCkBAIC01NDgsMTIgKzU0OCwxMiBAQAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA5LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IyXzlDT0wJKENGR19NSU5fQU1fTUFTSwkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfOUNPTAkoQ09ORklHX1NZU19NSU5fQU1fTUFTSwkJfFwKIAkJCSBPUnhTX0JQRF80CQkJfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTcJCXxcCiAJCQkgT1J4U19OVU1SXzEzKQogCi0jZGVmaW5lIENGR19QU0RNUl85Q09MCShQU0RNUl9TREFNX0ExNF9JU19BNQkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl85Q09MCShQU0RNUl9TREFNX0ExNF9JU19BNQkJfFwKIAkJCSBQU0RNUl9CU01BX0ExM19BMTUJCXxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOQkJfFwKIAkJCSBQU0RNUl9SRlJDXzdfQ0xLCQl8XApAQCAtNTYzLDkgKzU2Myw5IEBACiAJCQkgUFNETVJfV1JDXzFDCQkJfFwKIAkJCSBQU0RNUl9DTF8yKQogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCSBDRkdfT1IyXzlDT0wKLSNkZWZpbmUgQ0ZHX1BTRE1SCSBDRkdfUFNETVJfOUNPTAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JIENPTkZJR19TWVNfT1IyXzlDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkgQ09ORklHX1NZU19QU0RNUl85Q09MCiAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1BNODU0LmggYi9pbmNsdWRlL2NvbmZpZ3MvUE04NTQuaAppbmRleCAxYmVlZTBmLi5jM2E3ZjgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUE04NTQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUE04NTQuaApAQCAtNzUsMTkgKzc1LDE5IEBACiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkxCS8qIENhbGwgYm9hcmRfcHJlX2luaXQgKi8KIAotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAJLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKIAogLyogRERSIFNldHVwICovCkBAIC0xMDAsOCArMTAwLDggQEAKIAogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQpAQCAtMTEyLDg1ICsxMTIsODUgQEAKICNkZWZpbmUgU1BEX0VFUFJPTV9BRERSRVNTCTB4NTgJLyogQ1RMUiAwIERJTU0gMCAqLwogCiAvKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJMjU2CQkvKiBERFIgaXMgMjU2IE1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgkvKiAwLTI1Nk1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkweDgwMDAwMTAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHg0NzQ0NDMyMQotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCi0jZGVmaW5lIENGR19ERFJfQ09OVFJPTAkweGMyMDA4MDAwCS8qIHVuYnVmZmVyZWQsbm8gRFlOX1BXUiAqLwotI2RlZmluZSBDRkdfRERSX01PREUJMHgwMDAwMDA2MgkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSAqLwotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDQ1YjAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCTI1NgkJLyogRERSIGlzIDI1NiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCS8qIDAtMjU2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDAwMTAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4NDc0NDQzMjEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMAkvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkweGMyMDA4MDAwCS8qIHVuYnVmZmVyZWQsbm8gRFlOX1BXUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCTB4MDAwMDAwNjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNDViMDEwMAkvKiBhdXRvY2hhcmdlLG5vIG9wZW4gcGFnZSAqLwogCiAvKgogICogU0RSQU0gb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQkwCQkvKiBMQkMgU0RSQU0gaXMgMCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQkwCQkvKiBMQkMgU0RSQU0gaXMgMCBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCS8qIHN0YXJ0IG9mIDMyIE1CIEZMQVNIICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZlMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmUwMDAwMDAJLyogc3RhcnQgb2YgMzIgTUIgRkxBU0ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZlMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdCAqLwogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZlMDA2ZjY3CS8qIDMyIE1CIEZsYXNoICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJCS8qIHNlY3RvcnMgcGVyIGRldmljZSAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmUwMDZmNjcJLyogMzIgTUIgRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAvKgogICogTG9jYWwgQnVzIERlZmluaXRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLwotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCQkweDIwMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KIAogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4ZTQwMTAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTE5OSw0MCArMTk5LDQwIEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTgKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJCTB4NTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NTEKIAogLyogUmFwaWRJTyBNTVUgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUklPX01FTV9QSFlTCUNGR19SSU9fTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDEyOE0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1BIWVMJQ09ORklHX1NZU19SSU9fTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCUNGR19QQ0kxX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDEwMDAwMDAJLyogMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MTAwMDAwMAkvKiAxNk0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIApAQCAtMjUwLDcgKzI1MCw3IEBACiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3CS8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcJLyogTW90b3JvbGEgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtMjkyLDIwICsyOTIsMjAgQEAKIC8qCiAgKiBFbnZpcm9ubWVudAogICovCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDgwMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHg4MDAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwIC8qIDI1Nksob25lIHNlY3RvcikgZm9yIGVudiAqLwogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotICAjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworICAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAKIC8qCkBAIC0zMzIsNyArMzMyLDcgQEAKICAgICAjZGVmaW5lIENPTkZJR19DTURfUENJCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAgICAgI3VuZGVmIENPTkZJR19DTURfTE9BRFMKICNlbmRpZgpAQCAtMzQzLDIwICszNDMsMjAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogI2RlZmluZSBDT05GSUdfTE9PUFcKIAogLyoKQEAgLTM2NCw3ICszNjQsNyBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTTg1Ni5oIGIvaW5jbHVkZS9jb25maWdzL1BNODU2LmgKaW5kZXggOWQ1MzViNi4uYjNiY2YyMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1BNODU2LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BNODU2LmgKQEAgLTc2LDIxICs3NiwyMSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YJMQkvKiBDYWxsIGJvYXJkX3ByZV9pbml0ICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfREJDUiBEQkNSX0lETQkJLyogRW5hYmxlIERlYnVnIEV4Y2VwdGlvbnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RCQ1IgREJDUl9JRE0JCS8qIEVuYWJsZSBEZWJ1ZyBFeGNlcHRpb25zICovCiAKLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyN1bmRlZglDT05GSUdfU1lTX0RSQU1fVEVTVAkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogCiAvKgogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCi0jZGVmaW5lIENGR19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGUwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUiAqLwogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIxCkBAIC0xMDIsOCArMTAyLDggQEAKIAogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQpAQCAtMTE0LDQyICsxMTQsNDIgQEAKICNkZWZpbmUgU1BEX0VFUFJPTV9BRERSRVNTCTB4NTgJLyogQ1RMUiAwIERJTU0gMCAqLwogCiAvKiBNYW51YWxseSBzZXQgdXAgRERSIHBhcmFtZXRlcnMgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJMjU2CQkvKiBERFIgaXMgMjU2IE1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwZgkvKiAwLTI1Nk1CICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkweDgwMDAwMTAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzEJMHg0NzQ0NDMyMQotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCi0jZGVmaW5lIENGR19ERFJfQ09OVFJPTAkweGMyMDA4MDAwCS8qIHVuYnVmZmVyZWQsbm8gRFlOX1BXUiAqLwotI2RlZmluZSBDRkdfRERSX01PREUJMHgwMDAwMDA2MgkvKiBETEwsbm9ybWFsLHNlcSw0LzIuNSAqLwotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDQ1YjAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCTI1NgkJLyogRERSIGlzIDI1NiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzBfQk5EUwkweDAwMDAwMDBmCS8qIDAtMjU2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDAwMTAyCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18xCTB4NDc0NDQzMjEKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMAkvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ09OVFJPTAkweGMyMDA4MDAwCS8qIHVuYnVmZmVyZWQsbm8gRFlOX1BXUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCTB4MDAwMDAwNjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfSU5URVJWQUwJMHgwNDViMDEwMAkvKiBhdXRvY2hhcmdlLG5vIG9wZW4gcGFnZSAqLwogCiAvKgogICogU0RSQU0gb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQkwCQkvKiBMQkMgU0RSQU0gaXMgMCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4ZjAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQkwCQkvKiBMQkMgU0RSQU0gaXMgMCBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDMyTSAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZTAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZlMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIIDMyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmUwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0ICovCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4ZmUwMDZmNjcJLyogMzJNQiBGbGFzaCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweGZlMDA2ZjY3CS8qIDMyTUIgRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmICBDRkdfUkFNQk9PVAorI3VuZGVmICBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCkBAIC0xNTgsMzYgKzE1OCwzNiBAQAogICogTG9jYWwgQnVzIERlZmluaXRpb25zCiAgKi8KIAotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnICovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwNCAgICAvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwqLwogCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpICAgIC8qIFJlc2VydmUgNTEyIGtCIGZvciBNb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KIAogLyogU2VyaWFsIFBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfT05fU0NDCS8qIGRlZmluZSBpZiBjb25zb2xlIG9uIFNDQyAqLwogI3VuZGVmICBDT05GSUdfQ09OU19OT05FCS8qIGRlZmluZSBpZiBjb25zb2xlIG9uIHNvbWV0aGluZyBlbHNlICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAgIDEgIC8qIHdoaWNoIHNlcmlhbCBjaGFubmVsIGZvciBjb25zb2xlICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwxMTUyMDB9CiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMTk2LDQwICsxOTYsNDAgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUyAgICAgICAgezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgICAgICAgIHsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDU4Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDU4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCiAKIC8qCiAgKiBSVEMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDUxCiAKIC8qIFJhcGlkSU8gTU1VICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fUEhZUwlDRkdfUklPX01FTV9CQVNFCi0jZGVmaW5lIENGR19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAJLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9QSFlTCUNPTkZJR19TWVNfUklPX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogMTI4TSAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwlDRkdfUENJMV9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAwCS8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwlDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDEwMDAwMDAJLyogMTZNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKQEAgLTI0Niw3ICsyNDYsNyBAQAogI2VuZGlmCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NyAgLyogTW90b3JvbGEgKi8KIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KIApAQCAtMjg0LDI4ICsyODQsMjggQEAKICAgICogLSBGdWxsIGR1cGxleAogICovCiAjZGVmaW5lIENPTkZJR19FVEhFUl9PTl9GQ0MzCi0jZGVmaW5lIENGR19DTVhGQ1JfTUFTSzMJKENNWEZDUl9GQzMgfCBDTVhGQ1JfUkYzQ1NfTVNLIHwgQ01YRkNSX1RGM0NTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTMJKENNWEZDUl9SRjNDU19DTEsxNSB8IENNWEZDUl9URjNDU19DTEsxNCkKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMwkoQ01YRkNSX0ZDMyB8IENNWEZDUl9SRjNDU19NU0sgfCBDTVhGQ1JfVEYzQ1NfTVNLKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTMJKENNWEZDUl9SRjNDU19DTEsxNSB8IENNWEZDUl9URjNDU19DTEsxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUpCiAKIC8qCiAgKiBFbnZpcm9ubWVudAogICovCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDgwMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHg4MDAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIDI1Nksob25lIHNlY3RvcikgZm9yIGVudiAqLwogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotICAjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdyAqLworICAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAKIC8qCkBAIC0zMzEsNyArMzMxLDcgQEAKICAgICAjZGVmaW5lIENPTkZJR19DTURfUENJCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAgICAgI3VuZGVmIENPTkZJR19DTURfTE9BRFMKICNlbmRpZgpAQCAtMzQyLDIwICszNDIsMjAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogI2RlZmluZSBDT05GSUdfTE9PUFcKIAogLyoKQEAgLTM2Myw3ICszNjMsNyBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTUM0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9QTUM0MDUuaAppbmRleCA0YTQyNTczLi4xMmU2M2I3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUE1DNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BNQzQwNS5oCkBAIC01MSw3ICs1MSw3IEBACiAjZGVmaW5lIENPTkZJR19QUkVCT09UICAgICAgICAgICAgICAgICAgLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgICAgICAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjdW5kZWYgIENPTkZJR19IQVNfRVRIMQpAQCAtOTcsNTIgKzk3LDUyIEBACiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19NQzE0NjgxOCAgICAgICAgICAgICAvKiBEUzE2ODUgaXMgTUMxNDY4MTggY29tcGF0aWJsZSovCi0jZGVmaW5lIENGR19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENfUkVHX0JBU0VfQUREUgkgMHhGMDAwMDUwMCAvKiBSVEMgQmFzZSBBZGRyZXNzICAgICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwogCkBAIC0xNTAsNyArMTUwLDcgQEAKIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRSAxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTcxLDU3ICsxNzEsNTcgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX0JPT1RERUxBWSAgICAwICAgICAgIC8qIGVuYWJsZSBwY2kgYm9vdGRlbGF5IHZhcmlhYmxlKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSURfTk9OTU9OQVJDSCAweDA0MDggIC8qIFBDSSBEZXZpY2UgSUQ6IE5vbi1Nb25hcmNoICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEX01PTkFSQ0ggMHgwNDA5ICAgICAvKiBQQ0kgRGV2aWNlIElEOiBNb25hcmNoICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIHBtYzQwNV9wY2lfc3Vic3lzX2RldmljZWlkKCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRSAgLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSURfTk9OTU9OQVJDSCAweDA0MDggIC8qIFBDSSBEZXZpY2UgSUQ6IE5vbi1Nb25hcmNoICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRF9NT05BUkNIIDB4MDQwOSAgICAgLyogUENJIERldmljZSBJRDogTW9uYXJjaCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgcG1jNDA1X3BjaV9zdWJzeXNfZGV2aWNlaWQoKQogCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUgICAgICAgMHgwYjIwICAvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIChiZC0+YmlfbWVtc3RhcnQpIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMgICh+KGJkLT5iaV9tZW1zaXplIC0gMSkgfCAxKSAvKiBtZW1zaXplLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEgIChiZC0+YmlfbWVtc3RhcnQpIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TICAofihiZC0+YmlfbWVtc2l6ZSAtIDEpIHwgMSkgLyogbWVtc2l6ZSwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCiAjaWYgMQotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGVmMDAwMDAwCS8qIHBvaW50IHRvIGludGVybmFsIHJlZ3MgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMgIDB4ZmYwMDAwMDEgICAgICAvKiAxNk1CLCBlbmFibGUgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHhlZjAwMDAwMAkvKiBwb2ludCB0byBpbnRlcm5hbCByZWdzICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHhmZjAwMDAwMSAgICAgIC8qIDE2TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogI2Vsc2UgLyogb2xkIG1hcHBpbmcgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweGZmYzAwMDAxICAgICAgLyogNE1CLCBlbmFibGUgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweGZmYzAwMDAwICAgICAgLyogcG9pbnQgdG8gZmxhc2ggICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KICNlbmRpZgogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweEZGRkMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkgICAgICAgICAxICAgICAgIC8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJICAgICAgICAgMSAgICAgICAvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUiAgMSAgICAgICAvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gIDEgICAgICAgLyogZG9uJ3QgdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24gICAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgIC8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgMiAgICAgICAvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCB9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICAxMjggICAgIC8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICAxICAgICAgIC8qIGRvbid0IHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgMiAgICAgICAvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgIDEyOCAgICAgLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMgLSBzZWNvbmQgYmFuayBjb250YWlucyB1LWJvb3QKQEAgLTI0OSwyNCArMjQ5LDI0IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogCQkJCSAgIC8qIHRvdGFsIHNpemUgb2YgYSBDQVQyNFdDMTYgaXMgMjA0OCBieXRlcyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMjc4LDYzICsyNzgsNjMgQEAKICNkZWZpbmUgTlZSQU1fQkEgICAgICAgIDB4RjAyMDAwMDAgICAgICAgICAgLyogTlZSQU0gQmFzZSBBZGRyZXNzICAgICAgICAgICAgICAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJRkxBU0gwX0JBIHwgMHg5QTAwMCAvKiBCQVM9MHhGRjAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCUZMQVNIMF9CQSB8IDB4OUEwMDAgLyogQkFTPTB4RkYwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJRkxBU0gxX0JBIHwgMHg5QTAwMCAvKiBCQVM9MHhGRTAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCUZMQVNIMV9CQSB8IDB4OUEwMDAgLyogQkFTPTB4RkUwLEJTPTE2TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KIAogLyogTWVtb3J5IEJhbmsgMiAoQ0FOMCwgMSwgUlRDKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkweDAzMDAwNDQwICAgLyogVFdUPTUsVEg9MixDU049MCxPRU49MCxXQk49MCxXQkY9MCAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJQ0FOX0JBIHwgMHgxODAwMCAgICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCTB4MDMwMDA0NDAgICAvKiBUV1Q9NSxUSD0yLENTTj0wLE9FTj0wLFdCTj0wLFdCRj0wICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJQ0FOX0JBIHwgMHgxODAwMCAgICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgLT4gdW51c2VkICovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKE5WUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkweDAzMDAwNDQwICAgLyogVFdUPTUsVEg9MixDU049MCxPRU49MCxXQk49MCxXQkY9MCAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJTlZSQU1fQkEgfCAweDE4MDAwICAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJMHgwMzAwMDQ0MCAgIC8qIFRXVD01LFRIPTIsQ1NOPTAsT0VOPTAsV0JOPTAsV0JGPTAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUglOVlJBTV9CQSB8IDB4MTgwMDAgICAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfWEM5NVhMCQkxCSAgICAvKiB1c2luZyBYaWxpbnggWEM5NVhMIENQTEQJICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgQ1BMRCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfWEM5NVhMCQkxCSAgICAvKiB1c2luZyBYaWxpbnggWEM5NVhMIENQTEQJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkgICAgLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQgICAgKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBKVEFHIFRDSyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiB1bnVzZWQgKHBwYyBpbnB1dCkJICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBKVEFHIFRESS0+VERPIHBpbiAocHBjIGlucHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBKVEFHIFRNUyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBKVEFHIFRDSyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIHVudXNlZCAocHBjIGlucHV0KQkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBKVEFHIFRESS0+VERPIHBpbiAocHBjIGlucHV0KSAqLwogCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIJMHgwMDAwMDAwMAkvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBHUElPcwogICovCi0jZGVmaW5lIENGR19OT05NT05BUkNICQkoMHg4MDAwMDAwMCA+PiAxNCkgICAvKiBHUElPMjQgKi8KLSNkZWZpbmUgQ0ZHX1hFUkVBRFkJCSgweDgwMDAwMDAwID4+IDE1KSAgIC8qIEdQSU8xNSAqLwotI2RlZmluZSBDRkdfSU5UQV9GQUtFCQkoMHg4MDAwMDAwMCA+PiAxOSkgICAvKiBHUElPMTkgKi8KLSNkZWZpbmUgQ0ZHX1NFTEZfUlNUCQkoMHg4MDAwMDAwMCA+PiAyMSkgICAvKiBHUElPMjEgKi8KLSNkZWZpbmUgQ0ZHX1JFVjFfMgkJKDB4ODAwMDAwMDAgPj4gMjMpICAgLyogR1BJTzIzICovCisjZGVmaW5lIENPTkZJR19TWVNfTk9OTU9OQVJDSAkJKDB4ODAwMDAwMDAgPj4gMTQpICAgLyogR1BJTzI0ICovCisjZGVmaW5lIENPTkZJR19TWVNfWEVSRUFEWQkJKDB4ODAwMDAwMDAgPj4gMTUpICAgLyogR1BJTzE1ICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5UQV9GQUtFCQkoMHg4MDAwMDAwMCA+PiAxOSkgICAvKiBHUElPMTkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRUxGX1JTVAkJKDB4ODAwMDAwMDAgPj4gMjEpICAgLyogR1BJTzIxICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVWMV8yCQkoMHg4MDAwMDAwMCA+PiAyMykgICAvKiBHUElPMjMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTUM0NDAuaCBiL2luY2x1ZGUvY29uZmlncy9QTUM0NDAuaAppbmRleCA5NjM5ODdlLi44NTM0MmE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUE1DNDQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BNQzQ0MC5oCkBAIC01Miw1MyArNTIsNTMgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzODQgICogMTAyNCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgzODQgICogMTAyNCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpICAqLwogCiAjZGVmaW5lIENPTkZJR19QUkFNCQkwCS8qIHVzZSBwcmFtIHZhcmlhYmxlIHRvIG92ZXJ3cml0ZSAqLwogCi0jZGVmaW5lIENGR19CT09UX0JBU0VfQUREUgkweGYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwICAgICAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgICAgICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19OQU5EX0FERFIJCTB4ZDAwMDAwMDAJLyogTkFORCBGbGFzaCAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX09DTV9CQVNFCQkweGUwMDEwMDAwCS8qIG9jbSAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCUNGR19PQ01fQkFTRQotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZTAwMDAwMDAJLyogSW50ZXJuYWwgUENJIHJlZ3MgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5ICAgICovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTEJQ0ZHX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMglDRkdfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UzCUNGR19QQ0lfTUVNQkFTRTIgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNU0laRQkJMHg4MDAwMDAwMAkvKiAyR0IhICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUREUgkJMHhkMDAwMDAwMAkvKiBOQU5EIEZsYXNoICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9CQVNFCQkweGUwMDEwMDAwCS8qIG9jbSAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUglDT05GSUdfU1lTX09DTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJCTB4ZTAwMDAwMDAJLyogSW50ZXJuYWwgUENJIHJlZ3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzCUNPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1TSVpFCQkweDgwMDAwMDAwCS8qIDJHQiEgKi8KIAogLyogRG9uJ3QgY2hhbmdlIGVpdGhlciBvZiB0aGVzZSAqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UJMHhlZjYwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyAqLwogCi0jZGVmaW5lIENGR19VU0IyRDBfQkFTRQkJMHhlMDAwMDEwMAotI2RlZmluZSBDRkdfVVNCX0RFVklDRQkJMHhlMDAwMDAwMAotI2RlZmluZSBDRkdfVVNCX0hPU1QJCTB4ZTAwMDA0MDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRTAJCTB4ZWYwMDAwMDAJLyogMzIgYml0ICovCi0jZGVmaW5lIENGR19GUEdBX0JBU0UxCQkweGVmMTAwMDAwCS8qIDE2IGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1VTQjJEMF9CQVNFCQkweGUwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0RFVklDRQkJMHhlMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9IT1NUCQkweGUwMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFMAkJMHhlZjAwMDAwMAkvKiAzMiBiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UxCQkweGVmMTAwMDAwCS8qIDE2IGJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKiA0NDBFUHgvNDQwR1J4IGhhdmUgMTZLQiBvZiBpbnRlcm5hbCBTUkFNLCBzbyBubyBuZWVkIGZvciBELUNhY2hlCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fQkFTRQkvKiBPQ00gICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0JBU0UJLyogT0NNICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJKDQgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJCTEKICN1bmRlZiBDT05GSUdfVUFSVDFfQ09OU09MRQkvKiBjb25zb2xlIG9uIGZyb250IHBhbmVsICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQkJCQkJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQkJCQkJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTksMjYgKzExOSwyNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAgICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yICAgICAgICAgICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ0ZHX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DT05GSUdfU1lTX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgICAgICovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTcwLDM0ICsxNzAsMzQgQEAKICAqIHRoZSBOQU5EIGNvbnRyb2xsZXIuCXNyIC0gMjAwNi0wOC0yNQogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX05BTkRfVV9CT09UKQotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TUkMJMHhmZmZmZjAwMAkvKiBTUEwgbG9jYXRpb24gICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfRFNUCShDRkdfT0NNX0JBU0UgKyAoMTIgPDwgMTApKSAvKiBDb3B5IFNQTCBoZXJlICAgICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9EU1QJMHgwMTAwMDAwMAkvKiBMb2FkIE5VQiB0byB0aGlzIGFkZHIgICAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TVEFSVAlDRkdfTkFORF9VX0JPT1RfRFNUIC8qIFN0YXJ0IE5VQiBmcm9tIHRoaXMgYWRkciAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9ERUxUQQkoQ0ZHX05BTkRfQk9PVF9TUExfU1JDIC0gQ0ZHX05BTkRfQk9PVF9TUExfRFNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDCTB4ZmZmZmYwMDAJLyogU1BMIGxvY2F0aW9uICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU0laRQkoNCA8PCAxMCkJLyogU1BMIHNpemUgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUCShDT05GSUdfU1lTX09DTV9CQVNFICsgKDEyIDw8IDEwKSkgLyogQ29weSBTUEwgaGVyZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVAkweDAxMDAwMDAwCS8qIExvYWQgTlVCIHRvIHRoaXMgYWRkciAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TVEFSVAlDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVCAvKiBTdGFydCBOVUIgZnJvbSB0aGlzIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RFTFRBCShDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDIC0gQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RTVCkKIAogLyoKICAqIERlZmluZSB0aGUgcGFydGl0aW9uaW5nIG9mIHRoZSBOQU5EIGNoaXAgKG9ubHkgUkFNIFUtQm9vdCBpcyBuZWVkZWQgaGVyZSkKICAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfT0ZGUwkoMTYgPDwgMTApCS8qIE9mZnNldCB0byBSQU0gVS1Cb290IGltYWdlICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUJKDM4NCA8PCAxMCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMJKDE2IDw8IDEwKQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU0laRQkoMzg0IDw8IDEwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UgICAgICovCiAKIC8qCiAgKiBOb3cgdGhlIE5BTkQgY2hpcCBoYXMgdG8gYmUgZGVmaW5lZCAobm8gYXV0b2RldGVjdGlvbiB1c2VkISkKICAqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX1NJWkUJNTEyCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkxPQ0tfU0laRQkoMTYgPDwgMTApIC8qIE5BTkQgY2hpcCBibG9jayBzaXplICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9DT1VOVAkzMgkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudCAgICAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JBRF9CTE9DS19QT1MJNQkvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyICovCi0jdW5kZWYgQ0ZHX05BTkRfNF9BRERSX0NZQ0xFCQkvKiBObyBmb3VydGggYWRkciB1c2VkICg8PTMyTUIpICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUJNTEyCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUJKDE2IDw8IDEwKSAvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX0NPVU5UCTMyCS8qIE5BTkQgY2hpcCBwYWdlIGNvdW50ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBRF9CTE9DS19QT1MJNQkvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyICovCisjdW5kZWYgQ09ORklHX1NZU19OQU5EXzRfQUREUl9DWUNMRQkJLyogTm8gZm91cnRoIGFkZHIgdXNlZCAoPD0zMk1CKSAqLwogCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NJWkUJMjU2Ci0jZGVmaW5lIENGR19OQU5EX0VDQ0JZVEVTCTMKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU1RFUFMJKENGR19OQU5EX1BBR0VfU0laRSAvIENGR19OQU5EX0VDQ1NJWkUpCi0jZGVmaW5lIENGR19OQU5EX09PQlNJWkUJMTYKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDVE9UQUwJKENGR19OQU5EX0VDQ0JZVEVTICogQ0ZHX05BTkRfRUNDU1RFUFMpCi0jZGVmaW5lIENGR19OQU5EX0VDQ1BPUwkJezAsIDEsIDIsIDMsIDYsIDd9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NTSVpFCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDQllURVMJMworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFMJKENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUgLyBDT05GSUdfU1lTX05BTkRfRUNDU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX09PQlNJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1RPVEFMCShDT05GSUdfU1lTX05BTkRfRUNDQllURVMgKiBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFMpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NQT1MJCXswLCAxLCAyLCAzLCA2LCA3fQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05BTkQKQEAgLTIwNSwxNSArMjA1LDE1IEBACiAgKiBGb3IgTkFORCBib290aW5nIHRoZSBlbnZpcm9ubWVudCBpcyBlbWJlZGRlZCBpbiB0aGUgVS1Cb290IGltYWdlLiBQbGVhc2UgdGFrZQogICogbG9vayBhdCB0aGUgZmlsZSBib2FyZC9hbWNjL3NlcXVvaWEvdS1ib290LW5hbmQubGRzIGZvciBkZXRhaWxzLgogICovCi0jZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ0ZHX05BTkRfQkxPQ0tfU0laRQotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENGR19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUICsgQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01CWVRFU19TRFJBTQkoMjU2KQkvKiAyNTZNQiAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNCSgyNTYpCS8qIDI1Nk1CICAgICAgICAgICAgICAgICAgICAgICAgKi8KICNpZiAhZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKICNkZWZpbmUgQ09ORklHX0REUl9EQVRBX0VZRQkvKiB1c2UgRERSMiBvcHRpbWl6YXRpb24gICAgICAgICovCiAjZW5kaWYKQEAgLTIyMywyMiArMjIzLDIyIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAgICAqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJLyogSTJDIGJpdC1iYW5nZWQgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUJMQogI2RlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUwkxCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDU0Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1NAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDAxCiAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUkVOCQkJMQotI2RlZmluZSBDRkdfSTJDX0JPT1RfRUVQUk9NX0FERFIJMHg1MgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9XUkVOCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19CT09UX0VFUFJPTV9BRERSCTB4NTIKIAogLyoKICAqIHN0YW5kYXJkIGR0dCBzZW5zb3IgY29uZmlndXJhdGlvbiAtIGJvdHRvbSBiaXQgd2lsbCBkZXRlcm1pbmUgbG9jYWwgb3IKQEAgLTI1OCw3ICsyNTgsNyBAQAogICogLSByZW1vdGUgdGVtcCBzZW5zb3IgZW5hYmxlZCwgbWluIHNldCB0byAwIGRlZywgbWF4IHNldCB0byA3MCBkZWcKICAqLwogI2RlZmluZSBDT05GSUdfRFRUX0FETTEwMjEKLSNkZWZpbmUgQ0ZHX0RUVF9BRE0xMDIxCQl7IHsgMHg0YywgMHgwMiwgMCwgMSwgNzAsIDAsIDEsIDcwLCAwfSB9CisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0FETTEwMjEJCXsgeyAweDRjLCAweDAyLCAwLCAxLCA3MCwgMCwgMSwgNzAsIDB9IH0KIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkJLyogZW5hYmxlIHByZWJvb3QgdmFyaWFibGUgKi8KIApAQCAtMjY2LDEyICsyNjYsMTIgQEAKIAogLyogU2V0dXAgc29tZSBib2FyZCBzcGVjaWZpYyB2YWx1ZXMgZm9yIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogI2RlZmluZSBDT05GSUdfSE9TVE5BTUUJCXBtYzQ0MAotI2RlZmluZSBDRkdfQk9PVEZJTEUJCSJib290ZmlsZT0vdGZ0cGJvb3QvcG1jNDQwL3VJbWFnZVwwIgotI2RlZmluZSBDRkdfUk9PVFBBVEgJCSJyb290cGF0aD0vb3B0L2VsZGtfNDEwL3BwY180eHhcMCIKKyNkZWZpbmUgQ09ORklHX1NZU19CT09URklMRQkJImJvb3RmaWxlPS90ZnRwYm9vdC9wbWM0NDAvdUltYWdlXDAiCisjZGVmaW5lIENPTkZJR19TWVNfUk9PVFBBVEgJCSJyb290cGF0aD0vb3B0L2VsZGtfNDEwL3BwY180eHhcMCIKIAogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCQlcCi0JQ0ZHX0JPT1RGSUxFCQkJCQkJCVwKLQlDRkdfUk9PVFBBVEgJCQkJCQkJXAorCUNPTkZJR19TWVNfQk9PVEZJTEUJCQkJCQkJXAorCUNPTkZJR19TWVNfUk9PVFBBVEgJCQkJCQkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQkJCQlcCiAJImV0aHJvdGF0ZT1ub1wwIgkJCQkJCVwKIAkibmZzYXJncz1zZXRlbnYgYm9vdGFyZ3Mgcm9vdD0vZGV2L25mcyBydyAiCQkJXApAQCAtMjk3LDcgKzI5Nyw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwkvKiBhdXRvYm9vdCBhZnRlciAzIHNlY29uZHMgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAgICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfSUJNX0VNQUM0X1Y0CTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQgICAgICAgICAgICovCkBAIC0zMDYsNyArMzA2LDcgQEAKICNkZWZpbmUgQ09ORklHX1BIWV9HSUdFCQkxCS8qIEluY2x1ZGUgR2JFIHNwZWVkL2R1cGxleCBkZXRlY3Rpb24gKi8KIAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEJCTEJLyogYWRkIHN1cHBvcnQgZm9yICJldGgxYWRkciIgICAqLwpAQCAtMzE2LDEzICszMTYsMTMgQEAKIC8qIFVTQiAqLwogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCiAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQotI2RlZmluZSBDRkdfT0hDSV9CRV9DT05UUk9MTEVSCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9CRV9DT05UUk9MTEVSCiAKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQgMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCUNGR19VU0JfSE9TVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCSJwcGM0NDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQgMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJQ09ORklHX1NZU19VU0JfSE9TVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkicHBjNDQwIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CiAKIC8qIENvbW1lbnQgdGhpcyBvdXQgdG8gZW5hYmxlIFVTQiAxLjEgZGV2aWNlICovCiAjZGVmaW5lIFVTQl8yXzBfREVWSUNFCkBAIC0zNTYsMTYgKzM1NiwxNiBAQAogI2RlZmluZSBDT05GSUdfQ01EX1NEUkFNCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSB8CVwKLQkJCQkgQ0ZHX1BPU1RfQ1BVICAgIHwJXAotCQkJCSBDRkdfUE9TVF9VQVJUICAgfAlcCi0JCQkJIENGR19QT1NUX0kyQyAgICB8CVwKLQkJCQkgQ0ZHX1BPU1RfQ0FDSEUgIHwJXAotCQkJCSBDRkdfUE9TVF9GUFUgICAgfAlcCi0JCQkJIENGR19QT1NUX0VUSEVSICB8CVwKLQkJCQkgQ0ZHX1BPU1RfU1BSKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgfAlcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUgICAgfAlcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VQVJUICAgfAlcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMgICAgfAlcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DQUNIRSAgfAlcCisJCQkJIENPTkZJR19TWVNfUE9TVF9GUFUgICAgfAlcCisJCQkJIENPTkZJR19TWVNfUE9TVF9FVEhFUiAgfAlcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TUFIpCiAKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKIAogLyogZXNkIGV4cGVjdHMgcHJhbSBhdCBlbmQgb2YgcGh5c2ljYWwgbWVtb3J5LgogICogU28gbm8gbG9nYnVmZmVyIGF0IHRoZSBtb21lbnQuCkBAIC0zNzMsMzMgKzM3MywzMyBAQAogI2lmIDAKICNkZWZpbmUgQ09ORklHX0xPR0JVRkZFUgogI2VuZGlmCi0jZGVmaW5lIENGR19QT1NUX0NBQ0hFX0FERFIJMHgxMDAwMDAwMAkvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0NBQ0hFX0FERFIJMHgxMDAwMDAwMAkvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcyAgICAgKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCS8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KIAogI2RlZmluZSBDT05GSUdfU1VQUE9SVF9WRkFUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0gICAgICAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAgICAgICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeSAgICAgKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXCQkxCS8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTQxOSwyNyArNDE5LDI3IEBACiAvKiBHZW5lcmFsIFBDSSAqLwogI2RlZmluZSBDT05GSUdfUENJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0ICAgICAgICAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkvKiBkbyAobm90KSBwY2kgcGx1Zy1hbmQtcGxheSAgICovCi0jZGVmaW5lIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFCTAJLyogdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBQTlAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DQUNIRV9MSU5FX1NJWkUJMAkvKiB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIFBOUCAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRQkweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRQkweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQKLSNkZWZpbmUgQ0ZHX1BDSV9NQVNURVJfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVAogCiAvKiBQQ0kgaWRlbnRpZmljYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfSURfTk9OTU9OQVJDSCAweDA0NDEJLyogUENJIERldmljZSBJRDogTm9uLU1vbmFyY2ggKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfSURfTU9OQVJDSCAweDA0NDAJLyogUENJIERldmljZSBJRDogTW9uYXJjaCAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERV9OT05NT05BUkNICVBDSV9DTEFTU19QUk9DRVNTT1JfUE9XRVJQQwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERV9NT05BUkNICVBDSV9DTEFTU19CUklER0VfSE9TVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEX05PTk1PTkFSQ0ggMHgwNDQxCS8qIFBDSSBEZXZpY2UgSUQ6IE5vbi1Nb25hcmNoICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19JRF9NT05BUkNIIDB4MDQ0MAkvKiBQQ0kgRGV2aWNlIElEOiBNb25hcmNoICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERV9OT05NT05BUkNICVBDSV9DTEFTU19QUk9DRVNTT1JfUE9XRVJQQworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREVfTU9OQVJDSAlQQ0lfQ0xBU1NfQlJJREdFX0hPU1QKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZQR0Egc3R1ZmYKQEAgLTQ1OCw0MiArNDU4LDQyIEBACiAgKiBPbiBTZXF1b2lhIENTMCBhbmQgQ1MzIGFyZSBzd2l0Y2hlZCB3aGVuIGNvbmZpZ3VyaW5nIGZvciBOQU5EIGJvb3RpbmcKICAqLwogI2lmICFkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkgJiYgIWRlZmluZWQoQ09ORklHX05BTkRfU1BMKQotI2RlZmluZSBDRkdfTkFORF9DUwkJMgkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMgkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAgICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMzAxNzIwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMzAxNzIwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4ZGEwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDIgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19OQU5EX0FERFIgfCAweDFjMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfTkFORF9BRERSIHwgMHgxYzAwMCkKICNlbHNlCi0jZGVmaW5lIENGR19OQU5EX0NTCQkwCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NTCQkwCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4ICAgKi8KIC8qIE1lbW9yeSBCYW5rIDIgKE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMzAxNzIwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMzAxNzIwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4ZGEwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDAgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJKENGR19OQU5EX0FERFIgfCAweDFjMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMTgwMDNjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfTkFORF9BRERSIHwgMHgxYzAwMCkKICNlbmRpZgogCiAvKiBNZW1vcnkgQmFuayA0IChGUEdBIC8gMzJCaXQpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJCTB4MDM4NDBmNDAJLyogQk1FPTAsVFdUPTcsQ1NOPTEsVEg9NyxSRT0xLFNPUj0wLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCShDRkdfRlBHQV9CQVNFMCB8IDB4MWMwMDApCS8qIEJTPTFNLEJVPVIvVyxCVz0zMmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkJMHgwMzg0MGY0MAkvKiBCTUU9MCxUV1Q9NyxDU049MSxUSD03LFJFPTEsU09SPTAsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IJCShDT05GSUdfU1lTX0ZQR0FfQkFTRTAgfCAweDFjMDAwKQkvKiBCUz0xTSxCVT1SL1csQlc9MzJiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgNSAoRlBHQSAvIDE2Qml0KSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCNUFQCQkweDAzODQwZjQwCS8qIEJNRT0wLFRXVD0zLENTTj0xLFRIPTAsUkU9MSxTT1I9MCxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNUNSCQkoQ0ZHX0ZQR0FfQkFTRTEgfCAweDFhMDAwKQkvKiBCUz0xTSxCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI1QVAJCTB4MDM4NDBmNDAJLyogQk1FPTAsVFdUPTMsQ1NOPTEsVEg9MCxSRT0xLFNPUj0wLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSCQkoQ09ORklHX1NZU19GUEdBX0JBU0UxIHwgMHgxYTAwMCkJLyogQlM9MU0sQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5BTkQgRkxBU0gKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCShDRkdfTkFORF9BRERSICsgQ0ZHX05BTkRfQ1MpCi0jZGVmaW5lIENGR19OQU5EX1NFTEVDVF9ERVZJQ0UJMSAvKiBuYW5kIGRyaXZlciBzdXBwb3J0cyBtdXRpcGwuIGNoaXBzICovCi0jZGVmaW5lIENGR19OQU5EX1FVSUVUX1RFU1QJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJKENPTkZJR19TWVNfTkFORF9BRERSICsgQ09ORklHX1NZU19OQU5EX0NTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0VMRUNUX0RFVklDRQkxIC8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1FVSUVUX1RFU1QJMQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9QTjYyLmggYi9pbmNsdWRlL2NvbmZpZ3MvUE42Mi5oCmluZGV4IDE5MmNiZDQuLjJjMDc3NGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QTjYyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1BONjIuaApAQCAtOTksMTQgKzk5LDE0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19QUkFNCQkxMDI0CQkvKiByZXNlcnZlIDEgTUIgcHJvdGVjdGVkIFJBTQkqLwogCkBAIC0xMzksNTAgKzEzOSw1MCBAQAogLyoKICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKIAotI3VuZGVmCUNGR19SQU1CT09UCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCi0vKiNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgMjU2Ki8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CisvKiNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgIDI1NiovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogCi0jZGVmaW5lIENGR19OT19GTEFTSAkJMQkJLyogVGhlcmUgaXMgbm8gRkxBU0ggbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJCS8qIFRoZXJlIGlzIG5vIEZMQVNIIG1lbW9yeQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwMDQwMDAJLyogT2Zmc2V0IG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MDAwMDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDFmMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDQwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMWYwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCiAvKgogICogU2VyaWFsIHBvcnQgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTE4NDMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMTg0MzIwMAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHhmZjgwMDAwOAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhmZjgwMDAwOAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkweGZmODAwMDAwCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTkzLDMwICsxOTMsMzAgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMzMzMzMzMJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwogI2RlZmluZSBDT05GSUdfUExMX1BDSV9UT19NRU1fTVVMVElQTElFUiAgMwogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJCTB4RkNFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJCTB4RkNFMDAwMDAKIAogLyogTUNDUjEgKi8KLSNkZWZpbmUgQ0ZHX1JPTU5BTAkJMwkvKiByb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KLSNkZWZpbmUgQ0ZHX1JPTUZBTAkJNwkvKiByb20vZmxhc2ggYWNjZXNzIHRpbWUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCQkzCS8qIHJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkJNwkvKiByb20vZmxhc2ggYWNjZXNzIHRpbWUJCSovCiAKIC8qIE1DQ1IyICovCi0jZGVmaW5lIENGR19BU1JJU0UJCTYJLyogQVNSSVNFIGluIGNsb2NrcwkJCSovCi0jZGVmaW5lIENGR19BU0ZBTEwJCTEyCS8qIEFTRkFMTCBpbiBjbG9ja3MJCQkqLwotI2RlZmluZSBDRkdfUkVGSU5UCQk1NjAwCS8qIFJFRklOVCBpbiBjbG9ja3MJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FTUklTRQkJNgkvKiBBU1JJU0UgaW4gY2xvY2tzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BU0ZBTEwJCTEyCS8qIEFTRkFMTCBpbiBjbG9ja3MJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkJNTYwMAkvKiBSRUZJTlQgaW4gY2xvY2tzCQkJKi8KIAogLyogTUNDUjMgKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJCTB4M2NmCS8qIEJ1cnN0IFRvIFByZWNoYXJnZQkJCSovCi0jZGVmaW5lIENGR19SRUZSRUMJCTIJLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkJKi8KLSNkZWZpbmUgQ0ZHX1JETEFUCQkzCS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJCTB4M2NmCS8qIEJ1cnN0IFRvIFByZWNoYXJnZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQkyCS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJCTMJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCiAKIC8qIE1DQ1I0ICovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMQkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQkzCS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkyCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkyCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgV3JhcCB0eXBlCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTgkyCS8qIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTEJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJCTMJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkyCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMgkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSBXcmFwIHR5cGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTgkyCS8qIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQogCiAvKiBNZW1vcnkgYmFuayBzZXR0aW5nczoKICAqCkBAIC0yMjUsODAgKzIyNSw4MCBAQAogICogYml0cyB3aWxsIGJlIHNldCB0byAweDAwMDAwIGZvciBhIHN0YXJ0IGFkZHJlc3MsIG9yIDB4ZmZmZmYgZm9yIGFuCiAgKiBlbmQgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECQkoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUJMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkJKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFCTAKIAogLyoKICAqIE1lbW9yeSBiYW5rIGVuYWJsZSBiaXRtYXNrLCBzcGVjaWZ5aW5nIHdoaWNoIG9mIHRoZSBiYW5rcyBkZWZpbmVkIGFib3ZlCiAgKiBhcmUgYWN0dWFsbHkgcHJlc2VudC4gTVNCIGlzIGZvciBiYW5rICM3LCBMU0IgaXMgZm9yIGJhbmsgIzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTktfRU5BQkxFCQkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOS19FTkFCTEUJCTB4MDEKIAotI2RlZmluZSBDRkdfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGJpdCBkZWZpbml0aW9ucwkqLwotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLwogCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgZGV0YWlscwkJKi8KIAogLyogU0RSQU0gMCAtIDI1Nk1CICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJIG1lbW9yeSBzcGFjZSAqLwotI2RlZmluZSBDRkdfSUJBVDJMCSgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBDb25maWcgYWRkcnMsIGV0YyAqLwotI2RlZmluZSBDRkdfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCSgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUFBDaGFtZWxlb25FVkIuaCBiL2luY2x1ZGUvY29uZmlncy9QUENoYW1lbGVvbkVWQi5oCmluZGV4IGQ5ZDg3MDYuLmU2NmY4ZWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QUENoYW1lbGVvbkVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QUENoYW1lbGVvbkVWQi5oCkBAIC02Myw3ICs2Myw3IEBACiAjZGVmaW5lIF9fRElTQUJMRV9NQUNISU5FX0VYQ0VQVElPTl9fCiAKICNpZmRlZiBfX0RFQlVHX1NUQVJUX0ZST01fU1JBTV9fCi0jZGVmaW5lIENGR19EVU1NWV9GTEFTSF9TSVpFCQkxMDI0KjEwMjQqNAorI2RlZmluZSBDT05GSUdfU1lTX0RVTU1ZX0ZMQVNIX1NJWkUJCTEwMjQqMTAyNCo0CiAjZW5kaWYKIAogLyoKQEAgLTk5LDcgKzk5LDcgQEAKICNkZWZpbmUgQ09ORklHX0VUSDFBRERSIDAwOjUwOmMyOjFlOmFmOmZkCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmIENPTkZJR19FWFRfUEhZCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQpAQCAtMTQ4LDggKzE0OCw4IEBACiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEJMQkvKiB1c2VzIGEgTTQxVDAwIFJUQwkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4Ci0jZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIJMTkwMAogCiAvKgogICogU0RSQU0gY29uZmlndXJhdGlvbiAocGxlYXNlIHNlZSBjcHUvcHBjL3NkcmFtLltjaF0pCkBAIC0xNTcsNTIgKzE1Nyw1MiBAQAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qIFNEUkFNIHRpbWluZ3MgdXNlZCBpbiBkYXRhc2hlZXQgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NMICAgICAgICAgICAgMgotI2RlZmluZSBDRkdfU0RSQU1fdFJQICAgICAgICAgICAyMAotI2RlZmluZSBDRkdfU0RSQU1fdFJDICAgICAgICAgICA2NQotI2RlZmluZSBDRkdfU0RSQU1fdFJDRCAgICAgICAgICAyMAotI3VuZGVmICBDRkdfU0RSQU1fdFJGQworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NMICAgICAgICAgICAgMgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSUCAgICAgICAgICAgMjAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV90UkMgICAgICAgICAgIDY1CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJDRCAgICAgICAgICAyMAorI3VuZGVmICBDT05GSUdfU1lTX1NEUkFNX3RSRkMKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlCSovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCQkvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLwotI2RlZmluZSBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECQk2OTEyMDAKKyN1bmRlZglDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJNjkxMjAwCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KIApAQCAtMjE3LDMzICsyMTcsMzMgQEAKICAqLwogI2RlZmluZSBQUENIQU1FTE9OX05BTkRfVElNRVJfSEFDSwogCi0jZGVmaW5lIENGR19OQU5EMF9CQVNFIDB4RkY0MDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkQxX0JBU0UgMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9CQVNFX0xJU1QJeyBDRkdfTkFORDBfQkFTRSwgQ0ZHX05BTkQxX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0JBU0UgMHhGRjQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX0JBU0UgMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EMF9CQVNFLCBDT05GSUdfU1lTX05BTkQxX0JBU0UgfQogI2RlZmluZSBOQU5EX0JJR19ERUxBWV9VUwkyNQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTIJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMgkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTIDEKIAotI2RlZmluZSBDRkdfTkFORDBfQ0UgICgweDgwMDAwMDAwID4+IDEpCSAvKiBvdXIgQ0UgaXMgR1BJTzEgKi8KLSNkZWZpbmUgQ0ZHX05BTkQwX1JEWSAoMHg4MDAwMDAwMCA+PiA0KQkgLyogb3VyIFJEWSBpcyBHUElPNCAqLwotI2RlZmluZSBDRkdfTkFORDBfQ0xFICgweDgwMDAwMDAwID4+IDIpCSAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCi0jZGVmaW5lIENGR19OQU5EMF9BTEUgKDB4ODAwMDAwMDAgPj4gMykJIC8qIG91ciBBTEUgaXMgR1BJTzMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9DRSAgKDB4ODAwMDAwMDAgPj4gMSkJIC8qIG91ciBDRSBpcyBHUElPMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX1JEWSAoMHg4MDAwMDAwMCA+PiA0KQkgLyogb3VyIFJEWSBpcyBHUElPNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0NMRSAoMHg4MDAwMDAwMCA+PiAyKQkgLyogb3VyIENMRSBpcyBHUElPMiAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0FMRSAoMHg4MDAwMDAwMCA+PiAzKQkgLyogb3VyIEFMRSBpcyBHUElPMyAqLwogCi0jZGVmaW5lIENGR19OQU5EMV9DRSAgKDB4ODAwMDAwMDAgPj4gMTQpICAvKiBvdXIgQ0UgaXMgR1BJTzE0ICovCi0jZGVmaW5lIENGR19OQU5EMV9SRFkgKDB4ODAwMDAwMDAgPj4gMzEpICAvKiBvdXIgUkRZIGlzIEdQSU8zMSAqLwotI2RlZmluZSBDRkdfTkFORDFfQ0xFICgweDgwMDAwMDAwID4+IDE1KSAgLyogb3VyIENMRSBpcyBHUElPMTUgKi8KLSNkZWZpbmUgQ0ZHX05BTkQxX0FMRSAoMHg4MDAwMDAwMCA+PiAxNikgIC8qIG91ciBBTEUgaXMgR1BJTzE2ICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQ0UgICgweDgwMDAwMDAwID4+IDE0KSAgLyogb3VyIENFIGlzIEdQSU8xNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX1JEWSAoMHg4MDAwMDAwMCA+PiAzMSkgIC8qIG91ciBSRFkgaXMgR1BJTzMxICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDFfQ0xFICgweDgwMDAwMDAwID4+IDE1KSAgLyogb3VyIENMRSBpcyBHUElPMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9BTEUgKDB4ODAwMDAwMDAgPj4gMTYpICAvKiBvdXIgQUxFIGlzIEdQSU8xNiAqLwogCiAjZGVmaW5lIE1BQ1JPX05BTkRfRElTQUJMRV9DRShuYW5kcHRyKSBkbyBcCiB7IFwKIAlzd2l0Y2goKHVuc2lnbmVkIGxvbmcpbmFuZHB0cikgXAogCXsgXAotCSAgICBjYXNlIENGR19OQU5EMF9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EMF9DRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQwX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ09ORklHX1NZU19OQU5EMF9DRSk7IFwKIAkJYnJlYWs7IFwKLQkgICAgY2FzZSBDRkdfTkFORDFfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfTkFORDFfQ0UpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMV9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORDFfQ0UpOyBcCiAJCWJyZWFrOyBcCiAJfSBcCiB9IHdoaWxlKDApCkBAIC0yNTIsMTEgKzI1MiwxMSBAQAogeyBcCiAJc3dpdGNoKCh1bnNpZ25lZCBsb25nKW5hbmRwdHIpIFwKIAl7IFwKLQkgICAgY2FzZSBDRkdfTkFORDBfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX05BTkQwX0NFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDBfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EMF9DRSk7IFwKIAkJYnJlYWs7IFwKLQkgICAgY2FzZSBDRkdfTkFORDFfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX05BTkQxX0NFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDFfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EMV9DRSk7IFwKIAkJYnJlYWs7IFwKIAl9IFwKIH0gd2hpbGUoMCkKQEAgLTI2NSwxMSArMjY1LDExIEBACiB7IFwKIAlzd2l0Y2goKHVuc2lnbmVkIGxvbmcpbmFuZHB0cikgXAogCXsgXAotCSAgICBjYXNlIENGR19OQU5EMF9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DRkdfTkFORDBfQUxFKTsgXAorCSAgICBjYXNlIENPTkZJR19TWVNfTkFORDBfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q09ORklHX1NZU19OQU5EMF9BTEUpOyBcCiAJCWJyZWFrOyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQxX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EMV9BTEUpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMV9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQxX0FMRSk7IFwKIAkJYnJlYWs7IFwKIAl9IFwKIH0gd2hpbGUoMCkKQEAgLTI3OCwxMSArMjc4LDExIEBACiB7IFwKIAlzd2l0Y2goKHVuc2lnbmVkIGxvbmcpbmFuZHB0cikgXAogCXsgXAotCSAgICBjYXNlIENGR19OQU5EMF9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EMF9BTEUpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORDBfQUxFKTsgXAogCQlicmVhazsgXAotCSAgICBjYXNlIENGR19OQU5EMV9CQVNFOiBcCi0JCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENGR19OQU5EMV9BTEUpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMV9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORDFfQUxFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQpAQCAtMjkxLDIyICsyOTEsMjIgQEAKIHsgXAogCXN3aXRjaCgodW5zaWduZWQgbG9uZyluYW5kcHRyKSBcCiAJeyBcCi0JICAgIGNhc2UgQ0ZHX05BTkQwX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNGR19OQU5EMF9DTEUpOyBcCisJICAgIGNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSAmIH5DT05GSUdfU1lTX05BTkQwX0NMRSk7IFwKIAkJYnJlYWs7IFwKLQkgICAgY2FzZSBDRkdfTkFORDFfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgJiB+Q0ZHX05BTkQxX0NMRSk7IFwKKwkgICAgY2FzZSBDT05GSUdfU1lTX05BTkQxX0JBU0U6IFwKKwkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpICYgfkNPTkZJR19TWVNfTkFORDFfQ0xFKTsgXAogCQlicmVhazsgXAogCX0gXAogfSB3aGlsZSgwKQogCiAjZGVmaW5lIE1BQ1JPX05BTkRfQ1RMX1NFVENMRShuYW5kcHRyKSBkbyB7IFwKIAlzd2l0Y2goKHVuc2lnbmVkIGxvbmcpbmFuZHB0cikgeyBcCi0JY2FzZSBDRkdfTkFORDBfQkFTRTogXAotCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDRkdfTkFORDBfQ0xFKTsgXAorCWNhc2UgQ09ORklHX1NZU19OQU5EMF9CQVNFOiBcCisJCW91dDMyKEdQSU8wX09SLCBpbjMyKEdQSU8wX09SKSB8IENPTkZJR19TWVNfTkFORDBfQ0xFKTsgXAogCQlicmVhazsgXAotCWNhc2UgQ0ZHX05BTkQxX0JBU0U6IFwKLQkJb3V0MzIoR1BJTzBfT1IsIGluMzIoR1BJTzBfT1IpIHwgQ0ZHX05BTkQxX0NMRSk7IFwKKwljYXNlIENPTkZJR19TWVNfTkFORDFfQkFTRTogXAorCQlvdXQzMihHUElPMF9PUiwgaW4zMihHUElPMF9PUikgfCBDT05GSUdfU1lTX05BTkQxX0NMRSk7IFwKIAkJYnJlYWs7IFwKIAl9IFwKIH0gd2hpbGUoMCkKQEAgLTM1Miw2NSArMzUyLDY1IEBACiAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHByaW50IHBjaSBkZXZpY2VzIEAgc3RhcnR1cAkqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkvKiBQQ0kgVmVuZG9yIElEOiBJQk0JKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IC0tLQkqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CS8qIFBDSSBWZW5kb3IgSUQ6IElCTQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwCS8qIFBDSSBEZXZpY2UgSUQ6IC0tLQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KIAotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHhmYzAwMDAwMQkvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHhmZmMwMDAwMAkvKiBwb2ludCB0byBmbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAKIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAvKgotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCiAqLwogCiAvKiBSZXNlcnZlIDMyMCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZCMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDMyMCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZCMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDMyMCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudCBWYXJpYWJsZSBzZXR1cApAQCAtNDI5LDI5ICs0MjksMjkgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkweEZGRkZBMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJMHgyMDAwCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNlbmRpZgkvKiBFTlZJUk9OTUVOVF9JTl9FRVBST00gKi8KIAogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLS8qI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisvKiNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNyovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA0IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNDY2LDIxICs0NjYsMjEgQEAKICAqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDAsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChFeHRlcm5hbCBTUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KIC8qIFNpbmNlIHRoaXMgbXVzdCByZXBsYWNlIE5PUiBGbGFzaCwgd2UgdXNlIHRoZSBzYW1lIHNldHRpbmdzIGZvciBDUzAJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGRjg1QTAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyIChGbGFzaCBCYW5rIDEsIE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEZGNDU4MDAwICAvKiBCQVM9MHhGRjQsQlM9NE1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkweEZGNDU4MDAwICAvKiBCQVM9MHhGRjQsQlM9NE1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKEZsYXNoIEJhbmsgMiwgTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RkYwNTgwMDAgIC8qIEJBUz0weEZGMCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4OTIwMTU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RkYwNTgwMDAgIC8qIEJBUz0weEZGMCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogI2lmZGVmIENPTkZJR19QUENIQU1FTEVPTl9TTUk3MTIKIC8qCkBAIC00OTQsNjYgKzQ5NCw2NiBAQAogI2RlZmluZSBDT05GSUdfQ09OU09MRV9FWFRSQV9JTkZPCiAjZGVmaW5lIENPTkZJR19WR0FfQVNfU0lOR0xFX0RFVklDRQogLyogVGhpcyBpcyB0aGUgYmFzZSBhZGRyZXNzIChvbiA0MDVFUC1zaWRlKSB1c2VkIHRvIGdlbmVyYXRlIEkvTyBhY2Nlc3NlcyBvbiBQQ0kgYnVzICovCi0jZGVmaW5lIENGR19JU0FfSU8gMHhFODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTyAweEU4MDAwMDAwCiAvKiBzZWUgYWxzbyBkcml2ZXJzL3ZpZGVvL3ZpZGVvbW9kZXMuYyAqLwotI2RlZmluZSBDRkdfREVGQVVMVF9WSURFT19NT0RFIDB4MzAzCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9WSURFT19NT0RFIDB4MzAzCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCiAvKiBGUEdBIGludGVybmFsIHJlZ3MgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERQkJMHgwMAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVMJCTB4MDIKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFMJCTB4MDQKLSNkZWZpbmUgQ0ZHX0ZQR0FfVFNfTE9XCQkweDA2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDAJMHgxMAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAwX0xPVwkweDEyCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDEJMHgxNAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAxX0xPVwkweDE2Ci0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDIJMHgxOAotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAyX0xPVwkweDFhCi0jZGVmaW5lIENGR19GUEdBX1RTX0NBUDMJMHgxYwotI2RlZmluZSBDRkdfRlBHQV9UU19DQVAzX0xPVwkweDFlCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NT0RFCQkweDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVMJCTB4MDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19MT1cJCTB4MDYKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDAJMHgxMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMF9MT1cJMHgxMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQMQkweDE0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAxX0xPVwkweDE2CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9UU19DQVAyCTB4MTgKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDJfTE9XCTB4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1RTX0NBUDMJMHgxYworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfVFNfQ0FQM19MT1cJMHgxZQogCiAvKiBGUEdBIE1vZGUgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX01PREVfQ0ZfUkVTRVQJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfTU9ERV9UU19JUlFfQ0xFQVIgIDB4MTAwMAotI2RlZmluZSBDRkdfRlBHQV9NT0RFX1RTX0NMRUFSCTB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTU9ERV9DRl9SRVNFVAkweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0VOQUJMRSAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfSVJRX0NMRUFSICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01PREVfVFNfQ0xFQVIJMHgyMDAwCiAKIC8qIEZQR0EgU3RhdHVzIFJlZyAqLwotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRElQMAkweDAwMDEKLSNkZWZpbmUgQ0ZHX0ZQR0FfU1RBVFVTX0RJUDEJMHgwMDAyCi0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19ESVAyCTB4MDAwNAotI2RlZmluZSBDRkdfRlBHQV9TVEFUVVNfRkxBU0gJMHgwMDA4Ci0jZGVmaW5lIENGR19GUEdBX1NUQVRVU19UU19JUlEJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRElQMAkweDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NUQVRVU19ESVAxCTB4MDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1RBVFVTX0RJUDIJMHgwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfRkxBU0gJMHgwMDA4CisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TVEFUVVNfVFNfSVJRCTB4MTAwMAogCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJCS8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93CSAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkxMjgqMTAyNAkvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU1BBUlRBTjIJMQkJLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cJICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkxMjgqMTAyNAkvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwCS8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0NMSwkJMHgwMjAwMDAwMAkvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpCSAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwCS8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpCSAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDEwMDAwCS8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkJICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAJLyogRlBHQSBkb25lIHBpbiAocHBjIGlucHV0KQkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BSRwkJMHgwNDAwMDAwMAkvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwCS8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkJICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwCS8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMAkvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgwMDAwODAwMAkvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpCSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC01NjgsMTQgKzU2OCwxNCBAQAogICogR1BJTzBbMzBdCS0gRU1BQzAgaW5wdXQKICAqIEdQSU8wWzMxXQktIEVNQUMxIHJlamVjdCBwYWNrZXQgYXMgb3V0cHV0CiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkgJCTB4NDAwMDA1NTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCi0vKiNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMCTB4MTU1NTU0NDUqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDQKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RDUgkJMHhGN0ZGODAxNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4NDAwMDA1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKKy8qI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCTB4MTU1NTU0NDUqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4RjdGRjgwMTQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC03ODMsMTcgKzc4MywxNyBAQAogLyogTW9kZWwgSEkgKi8KICNkZWZpbmUgUExMTVIwX0RFRkFVTFQJUFBDSEFNRUxFT05fUExMTVIwXzMzM18xMTFfMzdfNTVfNTUKICNkZWZpbmUgUExMTVIxX0RFRkFVTFQJUFBDSEFNRUxFT05fUExMTVIxXzMzM18xMTFfMzdfNTVfNTUKLSNkZWZpbmUgQ0ZHX09QQl9GUkVRCTU1NTU1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfT1BCX0ZSRVEJNTU1NTU1NTUKIC8qIE1vZGVsIE1FICovCiAjZWxpZiAoQ09ORklHX1BQQ0hBTUVMRU9OX01PRFVMRV9NT0RFTCA9PSBDT05GSUdfUFBDSEFNRUxFT05fTU9EVUxFX01FKQogI2RlZmluZSBQTExNUjBfREVGQVVMVAlQUENIQU1FTEVPTl9QTExNUjBfMjY2XzEzM18zM182Nl8zMwogI2RlZmluZSBQTExNUjFfREVGQVVMVAlQUENIQU1FTEVPTl9QTExNUjFfMjY2XzEzM18zM182Nl8zMwotI2RlZmluZSBDRkdfT1BCX0ZSRVEJNjY2NjY2NjYKKyNkZWZpbmUgQ09ORklHX1NZU19PUEJfRlJFUQk2NjY2NjY2NgogI2Vsc2UKIC8qIE1vZGVsIEJBIChkZWZhdWx0KSAqLwogI2RlZmluZSBQTExNUjBfREVGQVVMVAlQUENIQU1FTEVPTl9QTExNUjBfMTMzXzEzM18zM182Nl8zMwogI2RlZmluZSBQTExNUjFfREVGQVVMVAlQUENIQU1FTEVPTl9QTExNUjFfMTMzXzEzM18zM182Nl8zMwotI2RlZmluZSBDRkdfT1BCX0ZSRVEJNjY2NjY2NjYKKyNkZWZpbmUgQ09ORklHX1NZU19PUEJfRlJFUQk2NjY2NjY2NgogI2VuZGlmCiAKICNlbmRpZiAvKiBDT05GSUdfTk9fU0VSSUFMX0VFUFJPTSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1FTODIzLmggYi9pbmNsdWRlL2NvbmZpZ3MvUVM4MjMuaAppbmRleCAyNTg2MDU4Li40YWMzMWIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUVM4MjMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUVM4MjMuaApAQCAtMzUsMTQgKzM1LDE0IEBACiAjZGVmaW5lIF9fQ09ORklHX0gKIAogLyogdmFyaW91cyBkZWJ1ZyBzZXR0aW5ncyAqLwotI3VuZGVmIENGR19ERVZJQ0VfTlVMTERFVgkJLyogbnVsbCBkZXZpY2UgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCQkvKiBudWxsIGRldmljZSAqLwogI3VuZGVmIENPTkZJR19TSUxFTlRfQ09OU09MRQkJLyogc2lsZW50IGNvbnNvbGUgKi8KLSN1bmRlZiBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCQkvKiBzaWxlbnQgY29uc29sZSA/ICovCisjdW5kZWYgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJCS8qIHNpbGVudCBjb25zb2xlID8gKi8KICN1bmRlZiBERUJVR19GTEFTSAkJCS8qIGRlYnVnIGZsYXNoIGNvZGUgKi8KICN1bmRlZiBGTEFTSF9ERUJVRwkJCS8qIGRlYnVnIGZhc2ggY29kZSAqLwogI3VuZGVmIERFQlVHX0VOVgkJCS8qIGRlYnVnIGVudmlyb25tZW50IGNvZGUgKi8KIAotI2RlZmluZSBDRkdfRElSRUNUX0ZMQVNIX1RGVFAJMQkvKiBhbGxvdyBkaXJlY3QgdGZ0cCB0byBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCTEJLyogYWxsb3cgZGlyZWN0IHRmdHAgdG8gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBhbGxvdyBvdmVyd3JpdGUgTUFDIGFkZHJlc3MgKi8KIAogLyoKQEAgLTE4Myw3ICsxODMsNyBAQAogI2VuZGlmIC8qIENPTkZJR19GTEFTSF84TUIgKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI3VuZGVmIENGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjdW5kZWYgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQgKi8KICN1bmRlZiBDT05GSUdfU1RBVFVTX0xFRAkJLyogU3RhdHVzIExFRCBkaXNhYmxlZCAqLwogI3VuZGVmIENPTkZJR19DQU5fRFJJVkVSCQkvKiBDQU4gRHJpdmVyIHN1cHBvcnQgZGlzYWJsZWQgKi8KQEAgLTIzMSwyOSArMjMxLDI5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICovCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3MgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yNjQsNTYgKzI2NCw1NiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAJLyogQWxsb3cgYW4gOE1ieXRlIHdpbmRvdyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCS8qIEFsbG93IGFuIDhNYnl0ZSB3aW5kb3cgKi8KIAogI2RlZmluZSBGTEFTSF9CQVNFMF80TV9QUkVMSU0JMHhGRkMwMDAwMAkvKiBCYXNlIGZvciA0TSBGbGFzaCAqLwogI2RlZmluZSBGTEFTSF9CQVNFMF84TV9QUkVMSU0JMHhGRjgwMDAwMAkvKiBCYXNlIGZvciA4TSBGbGFzaCAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweEZGRjAwMDAwCS8qIFUtYm9vdCBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4RkZGMDAwMDAJLyogVS1ib290IGxvY2F0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUT0RPIGZsYXNoIHBhcmFtZXRlcnMKICAqIEZMQVNIIG9yZ2FuaXphdGlvbiBmb3IgSW50ZWwgU3RyYXRhZmxhc2gKICAqLwotI3VuZGVmICBDRkdfRkxBU0hfMTZCSVQJCQkJLyogMzItYml0IHdpZGUgZmxhc2ggbWVtb3J5ICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF8xNkJJVAkJCQkvKiAzMi1iaXQgd2lkZSBmbGFzaCBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkJLyogRm9yIGFsbCBNUEM4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CQkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjQsMzQgKzMyNCwzNCBAQAogICovCiAKICNpZmRlZiBDT05GSUdfV0FUQ0hET0cKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dFIHwgU1lQQ1JfU1dSSSB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXRSB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1JJIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dSSSB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24gMTEtNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9ETEsgfCBTSVVNQ1JfRFBDIHwgU0lVTUNSX01QUkUgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0dCNUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRExLIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NUFJFIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9HQjVFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wgMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyIDExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlciAxNS0zMApAQCAtMzYxLDM2ICszNjEsMzYgQEAKIC8qIE1GIChNdWx0aXBsaWNhdGlvbiBGYWN0b3Igb2YgU1BMTCkgKi8KIC8qIFNldHMgdGhlIFFTODIzIHRvIHNwZWNpZmllZCBjbG9jayBmcm9tIDMyS0h6IGNsb2NrIGF0IEVYVEFMLiAqLwogI2RlZmluZSB2UExQUkNSX01GCSgoQ09ORklHX0NMT0NLX01VTFQrMSkgPDwgMjApCi0jZGVmaW5lIENGR19QTFBSQ1IJKHZQTFBSQ1JfTUYgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgfCBQTFBSQ1JfTE9MUkUpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSh2UExQUkNSX01GIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUIHwgUExQUkNSX0xPTFJFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfMTZNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzMzTUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS181ME1IWikKLSNkZWZpbmUgQ0ZHX1NDQ1IJCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAwIHwgU0NDUl9ERkJSRzAwKQotI2RlZmluZSBDRkdfQlJHQ0xLX1BSRVNDQUxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMCB8IFNDQ1JfREZCUkcwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUkdDTEtfUFJFU0NBTEUJMQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTE9DS182Nk1IWikKLSNkZWZpbmUgQ0ZHX1NDQ1IJCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAwIHwgU0NDUl9ERkJSRzAxKQotI2RlZmluZSBDRkdfQlJHQ0xLX1BSRVNDQUxFCTQKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMCB8IFNDQ1JfREZCUkcwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUkdDTEtfUFJFU0NBTEUJNAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTE9DS184ME1IWikKLSNkZWZpbmUgQ0ZHX1NDQ1IJCShTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxIHwgU0NDUl9ERkJSRzAxKQotI2RlZmluZSBDRkdfQlJHQ0xLX1BSRVNDQUxFCTQKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMSB8IFNDQ1JfREZCUkcwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUkdDTEtfUFJFU0NBTEUJNAogI2VuZGlmCiAKLSNkZWZpbmUgU0NDUl9NQVNLCQlDRkdfU0NDUgorI2RlZmluZSBTQ0NSX01BU0sJCUNPTkZJR19TWVNfU0NDUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWJ1ZyBFbmFibGUgUmVnaXN0ZXIKICAqIDB4NzNFNjdDMEYgLSBBbGwgaW50ZXJydXB0cyBoYW5kbGVkIGJ5IEJETQogICogMHgwMDgyNDAwMSAtIE9ubHkgaW50ZXJydXB0cyBuZWVkZWQgYnkgTVdEZWJ1Zy5leGUgaGFuZGxlZCBieSBCRE0KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNkZWZpbmUgQ0ZHX0RFUgkJCTB4NzNFNjdDMEYKLSNkZWZpbmUgQ0ZHX0RFUgkJCTB4MDA4MjQwMEYKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCQkweDczRTY3QzBGCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMHgwMDgyNDAwRgogCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIFByb2dyYW0gdGhlIERlYnVnIEVuYWJsZSBSZWdpc3RlciAoREVSKS4gVGhpcyByZWdpc3RlciBwcm92aWRlcyB0aGUgdXNlcgpAQCAtNDAwLDcgKzQwMCw3IEBACiAgIyBNUEM4NjAgVXNlciBNYW51YWwgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhpcyByZWdpc3Rlci4KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8KLSNkZWZpbmUgQ0ZHX0RFUgkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1lbW9yeSBDb250cm9sbGVyIEluaXRpYWxpemF0aW9uIENvbnN0YW50cwpAQCAtNDExLDggKzQxMSw4IEBACiAgKiBCUjAgYW5kIE9SMCAoQU1EIGR1YWwgRkxBU0ggZGV2aWNlcykKICAqIEJhc2UgYWRkcmVzcyA9IDB4RkZGMF8wMDAwIC0gMHhGRkY3X0ZGRkYgKEFmdGVyIHJlbG9jYXRpb24pCiAgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICiAKIC8qCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MjQsNyArNDI0LDcgQEAKIC8qIEJBIChCYXNlIEFkZHJlc3MpID0gMHhGRjgwKzBiIGZvciBhIHRvdGFsIG9mIDE3IGJpdHMuIDE3IGJpdCBiYXNlIGFkZHIgKi8KIC8qICAgICAgICAgICAgICAgICAgICAgcmVwcmVzZW50cyBhIG1pbnVtdW0gMzJLIGJsb2NrIHNpemUuICovCiAjZGVmaW5lIHZCUjBfQkEJCQkoKDB4RkY4MCA8PCAxNikgKyAoMCA8PCAxNSkpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkodkJSMF9CQSB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKHZCUjBfQkEgfCBCUl9WKQogCiAvKiBBTSAoQWRkcmVzcyBNYXNrKSA9IDB4RkY4MCswYiA9IFdlJ3ZlIG1hc2tlZCB0aGUgdXBwZXIgOSBiaXRzICAgICAgICAqLwogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBkZWZpbmVzIGEgOCBNYnl0ZSBtZW1vcnkgYmxvY2suICovCkBAIC00MzIsMTggKzQzMiwxOCBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNTBNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzgwTUhaKQogLyogIDAxMDEgPSBBZGQgYSA1IGNsb2NrIGN5Y2xlIHdhaXQgc3RhdGUgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSh2T1IwX0FNIHwgT1JfQ1NOVF9TQU0gfCAwUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzVfQ0xLKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSh2T1IwX0FNIHwgT1JfQ1NOVF9TQU0gfCAwUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzVfQ0xLKQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTE9DS18zM01IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNjZNSFopCiAvKiAgMDAxMSA9IEFkZCBhIDMgY2xvY2sgY3ljbGUgd2FpdCBzdGF0ZSAqLwogLyogIDI5LjhucyBjbG9jayAqICgzICsgMikgPSAxNDlucyBjeWNsZSB0aW1lICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkodk9SMF9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSykKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkodk9SMF9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSykKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfMTZNSFopCiAvKiAgMDAxMCA9IEFkZCBhIDIgY2xvY2sgY3ljbGUgd2FpdCBzdGF0ZSAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKHZPUjBfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfMl9DTEspCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJKHZPUjBfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfMl9DTEspCiAjZW5kaWYKIAogLyoKQEAgLTQ2Myw4ICs0NjMsOCBAQAogICovCiAjZGVmaW5lIHZPUjFfQU0JCQkoKDB4RjgwMCA8PCAxNikgKyAoMCA8PCAxNSkpCiAjZGVmaW5lIHZCUjFfQkEJCQkoKDB4MDAwMCA8PCAxNikgKyAoMCA8PCAxNSkpCi0jZGVmaW5lIENGR19PUjEJCQkodk9SMV9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjEJCQkodkJSMV9CQSB8IEJSX01TX1VQTUEgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMQkJCSh2T1IxX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjEJCQkodkJSMV9CQSB8IEJSX01TX1VQTUEgfCBCUl9WKQogCiAvKiBNYWNoaW5lIEEgTW9kZSBSZWdpc3RlciAqLwogCkBAIC00OTIsMTIgKzQ5MiwxMiBAQAogCiAvKiBGb3IgYm9hcmRzIHdpdGggMTZNIG9mIFNEUkFNICovCiAjZGVmaW5lIFNEUkFNXzE2TV9NQVhfU0laRQkweDAxMDAwMDAwCS8qIG1heCAxNk1CIFNEUkFNICovCi0jZGVmaW5lIENGR18xNk1fTUFNUgkJKHZNQU1SX1BUQSB8IE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzJfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHxcCisjZGVmaW5lIENPTkZJR19TWVNfMTZNX01BTVIJCSh2TUFNUl9QVEEgfCBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8yX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8XAogTUFNUl9STEZBXzFYIHwgTUFNUl9XTEZBXzFYIHwgTUFNUl9UTEZBXzRYKQogCiAvKiBGb3IgYm9hcmRzIHdpdGggMzJNIG9mIFNEUkFNICovCiAjZGVmaW5lIFNEUkFNXzMyTV9NQVhfU0laRQkweDAyMDAwMDAwCS8qIG1heCAzMk1CIFNEUkFNICovCi0jZGVmaW5lIENGR18zMk1fTUFNUgkJKHZNQU1SX1BUQSB8IE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzJfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHxcCisjZGVmaW5lIENPTkZJR19TWVNfMzJNX01BTVIJCSh2TUFNUl9QVEEgfCBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8yX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8XAogTUFNUl9STEZBXzFYIHwgTUFNUl9XTEZBXzFYIHwgTUFNUl9UTEZBXzRYKQogCiAKQEAgLTUwNSwxMiArNTA1LDEyIEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19DTE9DS182Nk1IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfODBNSFopCiAvKiBEaXZpZGUgYnkgMzIgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDAyCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MDIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfMTZNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzMzTUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS181ME1IWikKIC8qIERpdmlkZSBieSAxNiAqLwotI2RlZmluZSBDRkdfTVBUUFIJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkJMHgwNAogI2VuZGlmCiAKIC8qCkBAIC01MTgsMjQgKzUxOCwyNCBAQAogICogQmFzZSBhZGRyZXNzID0gMHhGMDIwXzAwMDAgLSAweEYwMjBfMEZGRgogICoKICAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhGMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweEYwMjAwMDAwCiAKIC8qCiAgKiBCUjMgYW5kIE9SMyAoRXh0ZXJuYWwgQnVzIENTMykKICAqIEJhc2UgYWRkcmVzcyA9IDB4RjAzMF8wMDAwIC0gMHhGMDMwXzBGRkYKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4RjAzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHhGMDMwMDAwMAogCiAvKgogICogQlI0IGFuZCBPUjQgKEV4dGVybmFsIEJ1cyBDUzMpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwNDBfMDAwMCAtIDB4RjA0MF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCQkweEYwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JCTB4RjA0MDAwMDAKIAogCiAvKgpAQCAtNTQzLDI0ICs1NDMsMjQgQEAKICAqIEJhc2UgYWRkcmVzcyA9IDB4RjA1MF8wMDAwIC0gMHhGMDUwXzBGRkYKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCTB4RjA1MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJMHhGMDUwMDAwMAogCiAvKgogICogQlI2IGFuZCBPUjYgKFVudXNlZCkKICAqIEJhc2UgYWRkcmVzcyA9IDB4RjA2MF8wMDAwIC0gMHhGMDYwXzBGRkYKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCTB4RjA2MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJMHhGMDYwMDAwMAogCiAvKgogICogQlI3IGFuZCBPUjcgKFVudXNlZCkKICAqIEJhc2UgYWRkcmVzcyA9IDB4RjA3MF8wMDAwIC0gMHhGMDcwXzBGRkYKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX09SN19QUkVMSU0JCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0JCTB4RjA3MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjdfUFJFTElNCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJMHhGMDcwMDAwMAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9RUzg1MC5oIGIvaW5jbHVkZS9jb25maWdzL1FTODUwLmgKaW5kZXggODdhMTg0Yi4uNjVmNDFlNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1FTODUwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1FTODUwLmgKQEAgLTM1LDE0ICszNSwxNCBAQAogI2RlZmluZSBfX0NPTkZJR19ICiAKIC8qIHZhcmlvdXMgZGVidWcgc2V0dGluZ3MgKi8KLSN1bmRlZiBDRkdfREVWSUNFX05VTExERVYJCS8qIG51bGwgZGV2aWNlICovCisjdW5kZWYgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkJLyogbnVsbCBkZXZpY2UgKi8KICN1bmRlZiBDT05GSUdfU0lMRU5UX0NPTlNPTEUJCS8qIHNpbGVudCBjb25zb2xlICovCi0jdW5kZWYgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkJLyogc2lsZW50IGNvbnNvbGUgPyAqLworI3VuZGVmIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCQkvKiBzaWxlbnQgY29uc29sZSA/ICovCiAjdW5kZWYgREVCVUdfRkxBU0gJCQkvKiBkZWJ1ZyBmbGFzaCBjb2RlICovCiAjdW5kZWYgRkxBU0hfREVCVUcJCQkvKiBkZWJ1ZyBmYXNoIGNvZGUgKi8KICN1bmRlZiBERUJVR19FTlYJCQkvKiBkZWJ1ZyBlbnZpcm9ubWVudCBjb2RlICovCiAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCTEJLyogYWxsb3cgZGlyZWN0IHRmdHAgdG8gZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAkxCS8qIGFsbG93IGRpcmVjdCB0ZnRwIHRvIGZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEJLyogYWxsb3cgb3ZlcndyaXRlIE1BQyBhZGRyZXNzICovCiAKIC8qCkBAIC0xODMsNyArMTgzLDcgQEAKICNlbmRpZiAvKiBDT05GSUdfRkxBU0hfOE1CICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSN1bmRlZiBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI3VuZGVmIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkICovCiAjdW5kZWYgQ09ORklHX1NUQVRVU19MRUQJCS8qIFN0YXR1cyBMRUQgZGlzYWJsZWQgKi8KICN1bmRlZiBDT05GSUdfQ0FOX0RSSVZFUgkJLyogQ0FOIERyaXZlciBzdXBwb3J0IGRpc2FibGVkICovCkBAIC0yMzEsMjkgKzIzMSwyOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAqLwotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjY0LDU2ICsyNjQsNTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGODAwMDAwCS8qIEFsbG93IGFuIDhNYnl0ZSB3aW5kb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAkvKiBBbGxvdyBhbiA4TWJ5dGUgd2luZG93ICovCiAKICNkZWZpbmUgRkxBU0hfQkFTRTBfNE1fUFJFTElNCTB4RkZDMDAwMDAJLyogQmFzZSBmb3IgNE0gRmxhc2ggKi8KICNkZWZpbmUgRkxBU0hfQkFTRTBfOE1fUFJFTElNCTB4RkY4MDAwMDAJLyogQmFzZSBmb3IgOE0gRmxhc2ggKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkYwMDAwMAkvKiBVLWJvb3QgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweEZGRjAwMDAwCS8qIFUtYm9vdCBsb2NhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVE9ETyBmbGFzaCBwYXJhbWV0ZXJzCiAgKiBGTEFTSCBvcmdhbml6YXRpb24gZm9yIEludGVsIFN0cmF0YWZsYXNoCiAgKi8KLSN1bmRlZiAgQ0ZHX0ZMQVNIXzE2QklUCQkJCS8qIDMyLWJpdCB3aWRlIGZsYXNoIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfMTZCSVQJCQkJLyogMzItYml0IHdpZGUgZmxhc2ggbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJCS8qIEZvciBhbGwgTVBDOHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkJLyogRm9yIGFsbCBNUEM4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJCS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJCS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzI0LDM0ICszMjQsMzQgQEAKICAqLwogCiAjaWZkZWYgQ09ORklHX1dBVENIRE9HCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXRSB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV0UgfCBTWVBDUl9TV1JJIHwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dSSSB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uIDExLTYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRExLIHwgU0lVTUNSX0RQQyB8IFNJVU1DUl9NUFJFIHwgU0lVTUNSX01MUkMwMSB8IFNJVU1DUl9HQjVFKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RMSyB8IFNJVU1DUl9EUEMgfCBTSVVNQ1JfTVBSRSB8IFNJVU1DUl9NTFJDMDEgfCBTSVVNQ1JfR0I1RSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sIDExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlciAxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIgMTUtMzAKQEAgLTM2MSwzNiArMzYxLDM2IEBACiAvKiBNRiAoTXVsdGlwbGljYXRpb24gRmFjdG9yIG9mIFNQTEwpICovCiAvKiBTZXRzIHRoZSBRUzg1MCB0byBzcGVjaWZpZWQgY2xvY2sgZnJvbSAzMktIeiBjbG9jayBhdCBFWFRBTC4gKi8KICNkZWZpbmUgdlBMUFJDUl9NRgkoKENPTkZJR19DTE9DS19NVUxUKzEpIDw8IDIwKQotI2RlZmluZSBDRkdfUExQUkNSCSh2UExQUkNSX01GIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUIHwgUExQUkNSX0xPTFJFKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkodlBMUFJDUl9NRiB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8IFBMUFJDUl9MT0xSRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzE2TUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS18zM01IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNTBNSFopCi0jZGVmaW5lIENGR19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMCB8IFNDQ1JfREZCUkcwMCkKLSNkZWZpbmUgQ0ZHX0JSR0NMS19QUkVTQ0FMRQkxCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDAgfCBTQ0NSX0RGQlJHMDApCisjZGVmaW5lIENPTkZJR19TWVNfQlJHQ0xLX1BSRVNDQUxFCTEKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNjZNSFopCi0jZGVmaW5lIENGR19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMCB8IFNDQ1JfREZCUkcwMSkKLSNkZWZpbmUgQ0ZHX0JSR0NMS19QUkVTQ0FMRQk0CisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDAgfCBTQ0NSX0RGQlJHMDEpCisjZGVmaW5lIENPTkZJR19TWVNfQlJHQ0xLX1BSRVNDQUxFCTQKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfODBNSFopCi0jZGVmaW5lIENGR19TQ0NSCQkoU0NDUl9UQlMgfCBTQ0NSX0VCREYwMSB8IFNDQ1JfREZCUkcwMSkKLSNkZWZpbmUgQ0ZHX0JSR0NMS19QUkVTQ0FMRQk0CisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkJKFNDQ1JfVEJTIHwgU0NDUl9FQkRGMDEgfCBTQ0NSX0RGQlJHMDEpCisjZGVmaW5lIENPTkZJR19TWVNfQlJHQ0xLX1BSRVNDQUxFCTQKICNlbmRpZgogCi0jZGVmaW5lIFNDQ1JfTUFTSwkJQ0ZHX1NDQ1IKKyNkZWZpbmUgU0NDUl9NQVNLCQlDT05GSUdfU1lTX1NDQ1IKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVidWcgRW5hYmxlIFJlZ2lzdGVyCiAgKiAweDczRTY3QzBGIC0gQWxsIGludGVycnVwdHMgaGFuZGxlZCBieSBCRE0KICAqIDB4MDA4MjQwMDEgLSBPbmx5IGludGVycnVwdHMgbmVlZGVkIGJ5IE1XRGVidWcuZXhlIGhhbmRsZWQgYnkgQkRNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jZGVmaW5lIENGR19ERVIJCQkweDczRTY3QzBGCi0jZGVmaW5lIENGR19ERVIJCQkweDAwODI0MDBGCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMHg3M0U2N0MwRgorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCTB4MDA4MjQwMEYKIAogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBQcm9ncmFtIHRoZSBEZWJ1ZyBFbmFibGUgUmVnaXN0ZXIgKERFUikuIFRoaXMgcmVnaXN0ZXIgcHJvdmlkZXMgdGhlIHVzZXIKQEAgLTQwMCw3ICs0MDAsNyBAQAogICMgTVBDODYwIFVzZXIgTWFudWFsIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoaXMgcmVnaXN0ZXIuCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCi0jZGVmaW5lIENGR19ERVIJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgQ29udHJvbGxlciBJbml0aWFsaXphdGlvbiBDb25zdGFudHMKQEAgLTQxMSw4ICs0MTEsOCBAQAogICogQlIwIGFuZCBPUjAgKEFNRCBkdWFsIEZMQVNIIGRldmljZXMpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEZGRjBfMDAwMCAtIDB4RkZGN19GRkZGIChBZnRlciByZWxvY2F0aW9uKQogICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAogCiAvKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDI0LDcgKzQyNCw3IEBACiAvKiBCQSAoQmFzZSBBZGRyZXNzKSA9IDB4RkY4MCswYiBmb3IgYSB0b3RhbCBvZiAxNyBiaXRzLiAxNyBiaXQgYmFzZSBhZGRyICovCiAvKiAgICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudHMgYSBtaW51bXVtIDMySyBibG9jayBzaXplLiAqLwogI2RlZmluZSB2QlIwX0JBCQkJKCgweEZGODAgPDwgMTYpICsgKDAgPDwgMTUpKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKHZCUjBfQkEgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCSh2QlIwX0JBIHwgQlJfVikKIAogLyogQU0gKEFkZHJlc3MgTWFzaykgPSAweEZGODArMGIgPSBXZSd2ZSBtYXNrZWQgdGhlIHVwcGVyIDkgYml0cyAgICAgICAgKi8KIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggZGVmaW5lcyBhIDggTWJ5dGUgbWVtb3J5IGJsb2NrLiAqLwpAQCAtNDMyLDE4ICs0MzIsMTggQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzUwTUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS184ME1IWikKIC8qICAwMTAxID0gQWRkIGEgNSBjbG9jayBjeWNsZSB3YWl0IHN0YXRlICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkodk9SMF9BTSB8IE9SX0NTTlRfU0FNIHwgMFJfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV81X0NMSykKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkodk9SMF9BTSB8IE9SX0NTTlRfU0FNIHwgMFJfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV81X0NMSykKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfMzNNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzY2TUhaKQogLyogIDAwMTEgPSBBZGQgYSAzIGNsb2NrIGN5Y2xlIHdhaXQgc3RhdGUgKi8KIC8qICAyOS44bnMgY2xvY2sgKiAoMyArIDIpID0gMTQ5bnMgY3ljbGUgdGltZSAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKHZPUjBfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEspCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJKHZPUjBfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfM19DTEspCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzE2TUhaKQogLyogIDAwMTAgPSBBZGQgYSAyIGNsb2NrIGN5Y2xlIHdhaXQgc3RhdGUgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCSh2T1IwX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzJfQ0xLKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCSh2T1IwX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzJfQ0xLKQogI2VuZGlmCiAKIC8qCkBAIC00NjMsOCArNDYzLDggQEAKICAqLwogI2RlZmluZSB2T1IxX0FNCQkJKCgweEY4MDAgPDwgMTYpICsgKDAgPDwgMTUpKQogI2RlZmluZSB2QlIxX0JBCQkJKCgweDAwMDAgPDwgMTYpICsgKDAgPDwgMTUpKQotI2RlZmluZSBDRkdfT1IxCQkJKHZPUjFfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIxCQkJKHZCUjFfQkEgfCBCUl9NU19VUE1BIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjEJCQkodk9SMV9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIxCQkJKHZCUjFfQkEgfCBCUl9NU19VUE1BIHwgQlJfVikKIAogLyogTWFjaGluZSBBIE1vZGUgUmVnaXN0ZXIgKi8KIApAQCAtNDkyLDEyICs0OTIsMTIgQEAKIAogLyogRm9yIGJvYXJkcyB3aXRoIDE2TSBvZiBTRFJBTSAqLwogI2RlZmluZSBTRFJBTV8xNk1fTUFYX1NJWkUJMHgwMTAwMDAwMAkvKiBtYXggMTZNQiBTRFJBTSAqLwotI2RlZmluZSBDRkdfMTZNX01BTVIJCSh2TUFNUl9QVEEgfCBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8yX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8XAorI2RlZmluZSBDT05GSUdfU1lTXzE2TV9NQU1SCQkodk1BTVJfUFRBIHwgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMl9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfFwKIE1BTVJfUkxGQV8xWCB8IE1BTVJfV0xGQV8xWCB8IE1BTVJfVExGQV80WCkKIAogLyogRm9yIGJvYXJkcyB3aXRoIDMyTSBvZiBTRFJBTSAqLwogI2RlZmluZSBTRFJBTV8zMk1fTUFYX1NJWkUJMHgwMjAwMDAwMAkvKiBtYXggMzJNQiBTRFJBTSAqLwotI2RlZmluZSBDRkdfMzJNX01BTVIJCSh2TUFNUl9QVEEgfCBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8yX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8XAorI2RlZmluZSBDT05GSUdfU1lTXzMyTV9NQU1SCQkodk1BTVJfUFRBIHwgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMl9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfFwKIE1BTVJfUkxGQV8xWCB8IE1BTVJfV0xGQV8xWCB8IE1BTVJfVExGQV80WCkKIAogCkBAIC01MDUsMTIgKzUwNSwxMiBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNjZNSFopIHx8IGRlZmluZWQoQ09ORklHX0NMT0NLXzgwTUhaKQogLyogRGl2aWRlIGJ5IDMyICovCi0jZGVmaW5lIENGR19NUFRQUgkJMHgwMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkweDAyCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NMT0NLXzE2TUhaKSB8fCBkZWZpbmVkKENPTkZJR19DTE9DS18zM01IWikgfHwgZGVmaW5lZChDT05GSUdfQ0xPQ0tfNTBNSFopCiAvKiBEaXZpZGUgYnkgMTYgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MDQKICNlbmRpZgogCiAvKgpAQCAtNTE4LDI0ICs1MTgsMjQgQEAKICAqIEJhc2UgYWRkcmVzcyA9IDB4RjAyMF8wMDAwIC0gMHhGMDIwXzBGRkYKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4RjAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHhGMDIwMDAwMAogCiAvKgogICogQlIzIGFuZCBPUjMgKEV4dGVybmFsIEJ1cyBDUzMpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwMzBfMDAwMCAtIDB4RjAzMF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkweEYwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4RjAzMDAwMDAKIAogLyoKICAqIEJSNCBhbmQgT1I0IChFeHRlcm5hbCBCdXMgQ1MzKQogICogQmFzZSBhZGRyZXNzID0gMHhGMDQwXzAwMDAgLSAweEYwNDBfMEZGRgogICoKICAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJMHhGMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkweEYwNDAwMDAwCiAKIAogLyoKQEAgLTU0MywyNCArNTQzLDI0IEBACiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwNTBfMDAwMCAtIDB4RjA1MF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkweEYwNTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCTB4RjA1MDAwMDAKIAogLyoKICAqIEJSNiBhbmQgT1I2IChVbnVzZWQpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwNjBfMDAwMCAtIDB4RjA2MF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjZfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjZfUFJFTElNCQkweEYwNjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCTB4RjA2MDAwMDAKIAogLyoKICAqIEJSNyBhbmQgT1I3IChVbnVzZWQpCiAgKiBCYXNlIGFkZHJlc3MgPSAweEYwNzBfMDAwMCAtIDB4RjA3MF8wRkZGCiAgKgogICovCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCQkweEZGRjAwMDAwCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkweEYwNzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSN19QUkVMSU0JCTB4RjA3MDAwMDAKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUVM4NjBULmggYi9pbmNsdWRlL2NvbmZpZ3MvUVM4NjBULmgKaW5kZXggNTRkYmMzMC4uNzA1ZDM3NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1FTODYwVC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9RUzg2MFQuaApAQCAtMzUsMTQgKzM1LDE0IEBACiAjZGVmaW5lIF9fQ09ORklHX0gKIAogLyogdmFyaW91cyBkZWJ1ZyBzZXR0aW5ncyAqLwotI3VuZGVmIENGR19ERVZJQ0VfTlVMTERFVgkJLyogbnVsbCBkZXZpY2UgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCQkvKiBudWxsIGRldmljZSAqLwogI3VuZGVmIENPTkZJR19TSUxFTlRfQ09OU09MRQkJLyogc2lsZW50IGNvbnNvbGUgKi8KLSN1bmRlZiBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCQkvKiBzaWxlbnQgY29uc29sZSA/ICovCisjdW5kZWYgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJCS8qIHNpbGVudCBjb25zb2xlID8gKi8KICN1bmRlZiBERUJVR19GTEFTSAkJCS8qIGRlYnVnIGZsYXNoIGNvZGUgKi8KICN1bmRlZiBGTEFTSF9ERUJVRwkJCS8qIGRlYnVnIGZhc2ggY29kZSAqLwogI3VuZGVmIERFQlVHX0VOVgkJCS8qIGRlYnVnIGVudmlyb25tZW50IGNvZGUgKi8KIAotI2RlZmluZSBDRkdfRElSRUNUX0ZMQVNIX1RGVFAJMQkvKiBhbGxvdyBkaXJlY3QgdGZ0cCB0byBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCTEJLyogYWxsb3cgZGlyZWN0IHRmdHAgdG8gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBhbGxvdyBvdmVyd3JpdGUgTUFDIGFkZHJlc3MgKi8KIAogCkBAIC01OCw3ICs1OCw3IEBACiAjZGVmaW5lIENPTkZJR19NSUkKICNkZWZpbmUgRkVDX0lOVEVSUlVQVAkJU0lVX0xFVkVMMQogI3VuZGVmIENPTkZJR19TQ0MxX0VORVQJCQkvKiBTQ0MxIDEwQmFzZVQgZXRoZXJuZXQgKi8KLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQogCiAjdW5kZWYgQ09ORklHXzh4eF9DT05TX1NNQzEKICNkZWZpbmUgQ09ORklHXzh4eF9DT05TX1NNQzIJMQkvKiBDb25zb2xlIGlzIG9uIFNNQyAqLwpAQCAtODMsNyArODMsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI3VuZGVmIENGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjdW5kZWYgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZCAqLwogCkBAIC0xMzksMzAgKzEzOSwzMCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAogLyogVE9ETyAtIHNpemU/ICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTcyLDU1ICsxNzIsNTUgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qIFRPRE8gZmxhc2ggcGFyYW1ldGVycyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uIGZvciBJbnRlbCBTdHJhdGFmbGFzaAogICovCi0jZGVmaW5lIENGR19GTEFTSF8xNkJJVAkJMQkJLyogMTYtYml0IHdpZGUgZmxhc2ggbWVtb3J5ICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF8xNkJJVAkJMQkJLyogMTYtYml0IHdpZGUgZmxhc2ggbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKICN1bmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJCS8qIEZvciBhbGwgTVBDOHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkJLyogRm9yIGFsbCBNUEM4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJCS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJCS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjMwLDQ3ICsyMzAsNDcgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoMHhGRkZGRkY4OCB8IFNZUENSX1NXRSB8IFNZUENSX1NXUkkpCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKDB4RkZGRkZGODggfCBTWVBDUl9TV0UgfCBTWVBDUl9TV1JJKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCTB4RkZGRkZGODgKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkweEZGRkZGRjg4CiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uIDExLTYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCTB4MDA2MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJMHgwMDYyMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wgMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJMHgwMEMzCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJMHgwMEMzCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlciAxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUElTQ1IJMHgwMDgyCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJMHgwMDgyCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlciAxNS0zMAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJMHgwMDkwRDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkweDAwOTBEMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCTB4MDIwMDAwMDAKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzgsOSArMjc4LDkgQEAKICAqIDB4NzNFNjdDMEYgLSBBbGwgaW50ZXJydXB0cyBoYW5kbGVkIGJ5IEJETQogICogMHgwMDgyNDAwMSAtIE9ubHkgaW50ZXJydXB0cyBuZWVkZWQgYnkgTVdEZWJ1Zy5leGUgaGFuZGxlZCBieSBCRE0KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNkZWZpbmUgQ0ZHX0RFUgkJCTB4NzNFNjdDMEYKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJCQkweDczRTY3QzBGCiAqLwotI2RlZmluZSBDRkdfREVSCQkJMHgwMDgyNDAwRgorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCTB4MDA4MjQwMEYKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTIsMTIgKzI5MiwxMiBAQAogICogQlIwIGFuZCBPUjAgKEFNRCA1MTJLIFNvY2tldGVkIEZMQVNIKQogICogQmFzZSBhZGRyZXNzID0gMHhGRkYwXzAwMDAgLSAweEZGRjdfRkZGRiAoQWZ0ZXIgcmVsb2NhdGlvbikKICAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0KKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gKIAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkYwMDAwMQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRkY4MEQ0MgotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhGRkYwMDQwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4RkZGODBENDIKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweEZGRjAwNDAxCiAKIAogLyoKQEAgLTMwNiwxMCArMzA2LDEwIEBACiAgKi8KIAogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHhEMDAwMDAwMAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhGRjgwMEQ0MgotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhEMDAwMDgwMQotLyogI2RlZmluZSBDRkdfT1IxCQkweEZGODAwRDQyICovCi0vKiAjZGVmaW5lIENGR19CUjEJCTB4RDAwMDA4MDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEZGODAwRDQyCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhEMDAwMDgwMQorLyogI2RlZmluZSBDT05GSUdfU1lTX09SMQkJMHhGRjgwMEQ0MiAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0JSMQkJMHhEMDAwMDgwMSAqLwogCiAKIC8qCkBAIC0zMjcsMTUgKzMyNywxNSBAQAogCiAvKiBGb3IgYm9hcmRzIHdpdGggMTZNIG9mIFNEUkFNICovCiAjZGVmaW5lIFNEUkFNXzE2TV9NQVhfU0laRQkweDAxMDAwMDAwCS8qIG1heCAxNk1CIFNEUkFNICovCi0jZGVmaW5lIENGR18xNk1fTUJNUgkJMHgxODgwMjExNAkvKiBNZW0gUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfMTZNX01CTVIJCTB4MTg4MDIxMTQJLyogTWVtIFBlcmlvZGljIFRpbWVyIFByZXNjYWxlciAqLwogCiAvKiBGb3IgYm9hcmRzIHdpdGggNjRNIG9mIFNEUkFNICovCiAjZGVmaW5lIFNEUkFNXzY0TV9NQVhfU0laRQkweDA0MDAwMDAwCS8qIG1heCA2NE1CIFNEUkFNICovCiAvKiBUT0RPIC0gZGV0ZXJtaW5lIHJlYWwgdmFsdWUgKi8KLSNkZWZpbmUgQ0ZHXzY0TV9NQk1SCQkweDE4ODAyMTE0CS8qIE1lbSBQZXJpb2QgVGltZXIgUHJlc2NhbGVyICovCisjZGVmaW5lIENPTkZJR19TWVNfNjRNX01CTVIJCTB4MTg4MDIxMTQJLyogTWVtIFBlcmlvZCBUaW1lciBQcmVzY2FsZXIgKi8KIAotI2RlZmluZSBDRkdfT1IyCQkJKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORykKLSNkZWZpbmUgQ0ZHX0JSMgkJCShTRFJBTV9CQVNFIHwgMHgwMDAwMDBDMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjIJCQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMgkJCShTRFJBTV9CQVNFIHwgMHgwMDAwMDBDMSkKIAogCiAvKgpAQCAtMzQ3LDEwICszNDcsMTAgQEAKICAqCiAgKi8KIAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhGRkMwMERGNgotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhEMTAwMDQwMQotLyogI2RlZmluZSBDRkdfT1IzCQkweEZGQzAwREY2ICovCi0vKiAjZGVmaW5lIENGR19CUjMJCTB4RDEwMDA0MDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweEZGQzAwREY2CisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHhEMTAwMDQwMQorLyogI2RlZmluZSBDT05GSUdfU1lTX09SMwkJMHhGRkMwMERGNiAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0JSMwkJMHhEMTAwMDQwMSAqLwogCiAKIC8qCkBAIC0zNTksMTAgKzM1OSwxMCBAQAogICoKICAqLwogCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCQkweEUwMDAwMDAwCi0vKiAjZGVmaW5lIENGR19PUjQJCTB4RkYwMDAwMDAgKi8KLS8qICNkZWZpbmUgQ0ZHX0JSNAkJMHhFMDAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkweEUwMDAwMDAwCisvKiAjZGVmaW5lIENPTkZJR19TWVNfT1I0CQkweEZGMDAwMDAwICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfQlI0CQkweEUwMDAwMDAwICovCiAKIAogLyoKQEAgLTM3MSwxMCArMzcxLDEwIEBACiAgKgogICovCiAKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCTB4RTQwMDAwMDAKLS8qICNkZWZpbmUgQ0ZHX09SNQkJMHhGRjAwMDAwMCAqLwotLyogI2RlZmluZSBDRkdfQlI1CQkweEU0MDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCTB4RTQwMDAwMDAKKy8qICNkZWZpbmUgQ09ORklHX1NZU19PUjUJCTB4RkYwMDAwMDAgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19CUjUJCTB4RTQwMDAwMDAgKi8KIAogCiAvKgpAQCAtMzgzLDEwICszODMsMTAgQEAKICAqCiAgKi8KIAotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJMHhFODAwMDAwMAotLyogI2RlZmluZSBDRkdfT1I2CQkweEZGMDAwMDAwICovCi0vKiAjZGVmaW5lIENGR19CUjYJCTB4RTgwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJMHhFODAwMDAwMAorLyogI2RlZmluZSBDT05GSUdfU1lTX09SNgkJMHhGRjAwMDAwMCAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0JSNgkJMHhFODAwMDAwMCAqLwogCiAKIC8qCkBAIC0zOTUsMTAgKzM5NSwxMCBAQAogICoKICAqLwogCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkweEU4MDAwMDAwCi0vKiAjZGVmaW5lIENGR19PUjcJCTB4RkYwMDAwMDAgKi8KLS8qICNkZWZpbmUgQ0ZHX0JSNwkJMHhFODAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCQkweEU4MDAwMDAwCisvKiAjZGVmaW5lIENPTkZJR19TWVNfT1I3CQkweEZGMDAwMDAwICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfQlI3CQkweEU4MDAwMDAwICovCiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9SMzYwTVBJLmggYi9pbmNsdWRlL2NvbmZpZ3MvUjM2ME1QSS5oCmluZGV4IDAwMWFjMWMuLmJhYjQ0NjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9SMzYwTVBJLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1IzNjBNUEkuaApAQCAtNzEsNyArNzEsNyBAQAogI2RlZmluZQlDT05GSUdfU0NDMl9FTkVUCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lCUNPTkZJR19NSVNDX0lOSVRfUgkJLyogaGF2ZSBtaXNjX2luaXRfcigpIGZ1bmN0aW9uCSovCiAKQEAgLTk1LDggKzk1LDggQEAKIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogVG8gSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogI3VuZGVmIENPTkZJR19TT1JUX0kyQwkJCS8qIFRvIEkyQyB3aXRoIHNvZnR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDcwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDcwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCkBAIC0xMTQsOSArMTE0LDkgQEAKIAkJCQllbHNlICAgIGltbXItPmltX2NwbS5jcF9wYmRhdCAmPSB+UEJfU0NMCiAjZGVmaW5lIEkyQ19ERUxBWQkJdWRlbGF5KDUwKQogCi0jZGVmaW5lIENGR19JMkNfTENEX0FERFIJMHg4CS8qIExDRCBDb250cm9sICovCi0jZGVmaW5lIENGR19JMkNfS0VZX0FERFIJMHg5CS8qIEtleWJvYXJkIGNvcHJvY2Vzc29yICovCi0jZGVmaW5lIENGR19JMkNfVEVNX0FERFIJMHg0OQkvKiBUZW1wZXJhdHVyZSBTZW5zb3JzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0xDRF9BRERSCTB4OAkvKiBMQ0QgQ29udHJvbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19LRVlfQUREUgkweDkJLyogS2V5Ym9hcmQgY29wcm9jZXNzb3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfVEVNX0FERFIJMHg0OQkvKiBUZW1wZXJhdHVyZSBTZW5zb3JzICovCiAKIAogLyoKQEAgLTEzOSwyOCArMTM5LDI4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIHdlIG5lZWQgdGhlIG51bGwgZGV2aWNlCSovCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkxCS8qIG11c3Qgc2V0IGNvbnNvbGUgZnJvbSBlbnYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIHdlIG5lZWQgdGhlIG51bGwgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYJMQkvKiBtdXN0IHNldCBjb25zb2xlIGZyb20gZW52CSovCiAKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCkBAIC0xODcsNjAgKzE4Nyw2MCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKICNpZiBkZWZpbmVkKERFQlVHKQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwCS8qIE9mZnNldCBvZiBFbnZpcm9ubWVudAkJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IHNlY3RvcgkqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBVc2VkIFNpemUgb2YgRW52aXJvbm1lbnQgc2VjdG9yCSovCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1MCwxMCArMjUwLDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjEsMjcgKzI2MSwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5MiwxMCArMjkyLDEwIEBACiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KICNpZmRlZglDT05GSUdfODBNSHoJLyogZm9yIDgwIE1Ieiwgd2UgdXNlIGEgMTYgTUh6IGNsb2NrICogNSAqLwotI2RlZmluZSBDRkdfUExQUkNSCQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAogCQkoICg1LTEpPDxQTFBSQ1JfTUZfU0hJRlQgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgKQogI2Vsc2UJCQkvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKICNlbmRpZgkvKiBDT05GSUdfODBNSHogKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzA1LDcgKzMwNSw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzE1LDE0ICszMTUsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzM2LDIxICszMzYsMjEgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1OCw3ICszNTgsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3MiwxNyArMzcyLDE3IEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkYwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkYwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgfCBPUl9TQ1lfN19DTEsgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxIHwgT1JfU0NZXzdfQ0xLIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIAogLyoKQEAgLTM5MiwyMyArMzkyLDIzIEBACiAjZGVmaW5lIFNEUkFNX0JBU0UyX1BSRUxJTQkweDAwMDAwMDAwCS8qIFNEUkFNIGJhbmsgIzAJKi8KICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUjJfQU0JMHhGODAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1IyX0FNCTB4RjgwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JKE9SX0FDU19ESVYxICB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkoT1JfQUNTX0RJVjEgIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8wX0NMSyB8IE9SX0c1TFMpCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1IyX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUjJfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qCiAgKiBCUjMgYW5kIE9SMyAoQ0FOIENvbnRyb2xsZXIpCiAgKi8KICNpZmRlZiBDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIGJhc2UgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrICovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBiYXNlIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHxPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCSBCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDQwLDExICs0NDAsMTEgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAjaWYgICBkZWZpbmVkKENPTkZJR184ME1IeikKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkxNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMTU2CiAjZWxpZiBkZWZpbmVkKENPTkZJR182Nk1IeikKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkxMjkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMTI5CiAjZWxzZQkJLyogICA1MCBNSHogKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgOTgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJIDk4CiAjZW5kaWYJLypDT05GSUdfPz9NSHogKi8KIAogLyoKQEAgLTQ1MiwyNiArNDUyLDI2IEBACiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9SQkM4MjMuaCBiL2luY2x1ZGUvY29uZmlncy9SQkM4MjMuaAppbmRleCBhZWMyMDRiLi4yODAxNzVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUkJDODIzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1JCQzgyMy5oCkBAIC03MSw3ICs3MSw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC05NSwxMiArOTUsMTIgQEAKICN1bmRlZglDT05GSUdfUlRDX01QQzh4eAkJLyogZG9uJ3QgdXNlIGludGVybmFsIFJUQyBvZiBNUEM4eHggKG5vIGJhdHRlcnkpCSovCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQgNDAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRSAweGZlCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUklURV9CSVRTCQk0Ci0jZGVmaW5lIENGR19FRVBST01fV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQgNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUgMHhmZQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fV1JJVEVfQklUUwkJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9XUklURV9ERUxBWV9NUwkxMAogCiAvKgogICogQ29tbWFuZCBsaW5lIGNvbmZpZ3VyYXRpb24uCkBAIC0xMzMsMjUgKzEzMywyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2MSw0NyArMTYxLDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkYwMDAwMAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDEwMDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMTAsOSArMjEwLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjIyLDEzICsyMjIsMTMgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKIC8qCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICovCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXUkkgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV1JJIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzNiwyNyArMjM2LDI3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMCB8IFNJVU1DUl9GUkMpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDAgfCBTSVVNQ1JfRlJDKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNjksNyArMjY5LDcgQEAKIC8qCiAgKiBmb3IgNDggTUh6LCB3ZSB1c2UgYSA0IE1IeiBjbG9jayAqIDEyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKCAoMTItMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9MT0xSRSApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3OSw3ICsyNzksNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfUlRESVYgICB8IFNDQ1JfUlRTRUwgICAgfCBTQ0NSX0NSUUVOICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfUlRESVYgICB8IFNDQ1JfUlRTRUwgICAgfCBTQ0NSX0NSUUVOICAgIHwgXAogCQkgICAgICAgICBTQ0NSX1BSUUVOICAgfCBTQ0NSX0VCREYwMCAgIHwgXAogCQkgICAgICAgICBTQ0NSX0NPTTAxICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMSB8IFwKQEAgLTI5MSwxNCArMjkxLDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMxMSwzOSArMzExLDM5IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogI2VuZGlmCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIERpc2stT24tQ2hpcCBjb25maWd1cmF0aW9uCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfTUFYX0RPQ19ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIERPQyBkZXZpY2VzCQkqLwotI2RlZmluZSBDRkdfRE9DX1NIT1JUX1RJTUVPVVQKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUXzIwMDAKLSNkZWZpbmUgQ0ZHX0RPQ19TVVBQT1JUX01JTExFTk5JVU0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRE9DX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NIT1JUX1RJTUVPVVQKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF8yMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzU4LDE4ICszNTgsMTggQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkZGODAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkZGODAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMDAsIFRSTFggPSAwLCBDU05UID0gMSwgU0NZID0gNywgRUhUUiA9IDEJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAgKE9SX0FDU19ESVYxIHwgT1JfQkkgfCBPUl9TQ1lfN19DTEsgfCBPUl9FSFRSKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCAgKE9SX0FDU19ESVYxIHwgT1JfQkkgfCBPUl9TQ1lfN19DTEsgfCBPUl9FSFRSKQogCi0jZGVmaW5lIENGR19PUl9USU1JTkdfTVNZUyAgIChPUl9BQ1NfRElWMSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19NU1lTICAgKE9SX0FDU19ESVYxIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX01TWVMpCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19NU1lTKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IFwKIAkJICAgICAgICAgIEJSX1BTXzggfCBCUl9WKQogCiAvKgpAQCAtMzgyLDM2ICszODIsMzYgQEAKIC8qCiAgKiBTRFJBTSB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkoT1JfQ1NOVF9TQU0pCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCShPUl9DU05UX1NBTSkKIAotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkofihTRFJBTV9NQVhfU0laRS0xKSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkoKFNEUkFNX0JBU0U0X1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkofihTRFJBTV9NQVhfU0laRS0xKSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoU0RSQU1fQkFTRTRfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJMTg3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDQ4IE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTE4NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciA0OCBNSHoJKi8KIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1JQWENsYXNzaWMuaCBiL2luY2x1ZGUvY29uZmlncy9SUFhDbGFzc2ljLmgKaW5kZXggNGZhMjFiOC4uMTYyZWYwOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1JQWENsYXNzaWMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUlBYQ2xhc3NpYy5oCkBAIC01MCw3ICs1MCw3IEBACiAvKiBEZWZpbmUgQ09ORklHX0ZFQ19FTkVUIHRvIHVzZSBGYXN0IGV0aGVybmV0IGluc3RlYWQgb2YgZXRoZXJuZXQgb24gU0NDMSAgICovCiAjZGVmaW5lIENPTkZJR19GRUNfRU5FVAogI2lmZGVmIENPTkZJR19GRUNfRU5FVAotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICAgICAgICAxCiAjZGVmaW5lIENPTkZJR19NSUkgICAgICAgICAgICAgIDEKICNlbmRpZiAvKiBDT05GSUdfRkVDX0VORVQgKi8KIApAQCAtODQsNyArODQsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTEyLDI2ICsxMTIsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHg4MDAwMDAwMAotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHg4MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNDEsMTUgKzE0MSwxNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZBMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGQTIwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgQ29uZmlndXJhdGlvbgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjZGVmaW5lIENPTkZJR19JMkMgICAgICAgICAgICAgIDEKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRCAgICAgICAgICAgNTAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRSAgICAgICAgICAgMHgzNAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRCAgICAgICAgICAgNTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUgICAgICAgICAgIDB4MzQKIAogCiAvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLwpAQCAtMTY5LDU0ICsxNjksNTQgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKIAotIyBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSMgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4MzQKLSMgZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gWDI0QzE2CQkqLwotIyBkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBieXRlcyBvZiBhZGRyZXNzCQkqLworIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHgzNAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gWDI0QzE2CQkqLworIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogYnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiICAgICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDMwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJMHhGRjAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCTB4RkYwMDAwMDAKIAogI2lmIGRlZmluZWQoREVCVUcpIHx8IGRlZmluZWQgKENPTkZJR19WSURFT19TRUQxMzgwNikgfHwgZGVmaW5lZChDT05GSUdfQ01EX0lERSkKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRjAwMDAwMAotLyolJSUgI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFICovCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRjAwMDAwMAorLyolJSUgI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2lmIDAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0yMzIsOSArMjMyLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQzLDcgKzI0Myw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dQKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTEsMjggKzI1MSwyOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfTUxSQzEwKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX01MUkMxMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLS8qJSUlI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKSAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8ICBSVENTQ19BTFIgfCBSVENTQ19SVEUpCisvKiUlJSNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpICovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8ICBSVENTQ19BTFIgfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjgzLDcgKzI4Myw3IEBACiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KIC8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoICg0IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSggKDQgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9TUExTUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI5MywyMSArMjkzLDIxIEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjAwCiAvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwIHwgU0NDUl9UQlMpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCB8IFNDQ1JfVEJTKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzIwLDI5ICszMjAsMjkgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyogI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisvKiAjZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM1MSwxMyArMzUxLDEzIEBACiAgKi8KIAogI2RlZmluZSBGTEFTSF9CQVNFX1BSRUxJTQkweEZFMDAwMDAwCS8qIEZMQVNIIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZFMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZFMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDAsIFRSTFggPSAwLCBDU05UID0gMCwgU0NZID0gNCwgRVRIUiA9IDAsIEJJSCA9IDEgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAoT1JfU0NZXzRfQ0xLIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIChPUl9TQ1lfNF9DTEsgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WKQogCiAvKgogICogQlIxIGFuZCBPUjEgKFNEUkFNKQpAQCAtMzY3LDE2ICszNjcsMTYgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDEwMDAwMDAJLyogbWF4IDE2IE1CICovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEUwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwRTAwCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyogUlBYTElURSBtZW0gc2V0dGluZyAqLwotI2RlZmluZQlDRkdfQlIzX1BSRUxJTQkweEZBNDAwMDAxCQkvKiBCQ1NSICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCTB4ZmY3Zjg5NzAKLSNkZWZpbmUJQ0ZHX0JSNF9QUkVMSU0JMHhGQTAwMDQwMQkJLyogTlZSQU0mU1JBTSAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkweEZGRjgwOTcwCisjZGVmaW5lCUNPTkZJR19TWVNfQlIzX1BSRUxJTQkweEZBNDAwMDAxCQkvKiBCQ1NSICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkweGZmN2Y4OTcwCisjZGVmaW5lCUNPTkZJR19TWVNfQlI0X1BSRUxJTQkweEZBMDAwNDAxCQkvKiBOVlJBTSZTUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkweEZGRjgwOTcwCiAKIC8qIEVDQ1ggQ1Mgc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICNkZWZpbmUgU0VEMTM4MDZfT1IgICAgICAgICAgICAgMHhGRkMwMDEwOCAgICAgLyogLSA0IE1vCkBAIC00MjUsMTkgKzQyNSwxOSBAQAogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQk1OAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTU4CiAKIC8qCiAgKiBSZWZyZXNoIGNsb2NrIFByZXNjYWxhcgogICovCi0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWOAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVY4CiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDEwIGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl8xMENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzEwQ09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzIgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMiB8CVwKIAkJCSBNQU1SX0dQTF9BNERJUyB8IE1BTVJfUkxGQV80WCB8IE1BTVJfV0xGQV8zWCB8IE1BTVJfVExGQV8xNlgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9SUFhsaXRlLmggYi9pbmNsdWRlL2NvbmZpZ3MvUlBYbGl0ZS5oCmluZGV4IDI4NzA2NTkuLmRkOTEzNGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9SUFhsaXRlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1JQWGxpdGUuaApAQCAtNTcsNyArNTcsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX0JaSVAyCQkvKiBJbmNsdWRlIHN1cHBvcnQgZm9yIGJ6aXAyIGNvbXByZXNzZWQgaW1hZ2VzICAqLwogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwpAQCAtODEsMjcgKzgxLDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgwOTkwMDAwMAogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMTEsMzAgKzExMSwzMCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZBMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGQTIwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNpZmRlZiBDT05GSUdfQlpJUDIKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIH40IE1CIGZvciBtYWxsb2MoKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgfjQgTUIgZm9yIG1hbGxvYygpICAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjggS0IgZm9yIG1hbGxvYygpICAqLwogI2VuZGlmIC8qIENPTkZJR19CWklQMiAqLwogCiAvKgpAQCAtMTQyLDMxICsxNDIsMzEgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE5CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE5CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZQlDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyNkZWZpbmUJQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIFdlIHVzZSBvbmUgY29tcGxldGUgc2VjdG9yCQkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNzYsMTAgKzE3NiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCAweDAwMDAwNjAwIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgMHgwMDAwMDYwMCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODcsMjggKzE4NywyOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfTUxSQzEwKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX01MUkMxMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLS8qJSUlI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKSAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX1JURSkKKy8qJSUlI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTIxOSw3ICsyMTksNyBAQAogICogSWYgdGhpcyBpcyBhIDgwIE1IeiBDUFUsIHNldCBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHRvIDUgKDUqMTY9ODApIQogICovCiAvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKCAoNSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTICkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCAoNSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1RFWFBTICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTIyOSwyMSArMjI5LDIxIEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjAwCiAvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTExIHwgU0NDUl9UQlMpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00xMSB8IFNDQ1JfVEJTKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMjU2LDI5ICsyNTYsMjkgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjg3LDEzICsyODcsMTMgQEAKICAqLwogCiAjZGVmaW5lIEZMQVNIX0JBU0VfUFJFTElNCTB4RkUwMDAwMDAJLyogRkxBU0ggYmFzZSAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkUwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkUwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMCwgVFJMWCA9IDAsIENTTlQgPSAwLCBTQ1kgPSA0LCBFVEhSID0gMCwgQklIID0gMSAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIIChPUl9TQ1lfNF9DTEsgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggKE9SX1NDWV80X0NMSyB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YpCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCkBAIC0zMDMsMzUgKzMwMywzNSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwMTAwMDAwMAkvKiBtYXggMTYgTUIgKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwRTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBFMDAKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKiBSUFhMSVRFIG1lbSBzZXR0aW5nICovCi0jZGVmaW5lCUNGR19CUjNfUFJFTElNCTB4RkE0MDAwMDEJCS8qIEJDU1IgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JMHhGRkZGODkxMAotI2RlZmluZQlDRkdfQlI0X1BSRUxJTQkweEZBMDAwNDAxCQkvKiBOVlJBTSZTUkFNICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCTB4RkZGRTA5NzAKKyNkZWZpbmUJQ09ORklHX1NZU19CUjNfUFJFTElNCTB4RkE0MDAwMDEJCS8qIEJDU1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCTB4RkZGRjg5MTAKKyNkZWZpbmUJQ09ORklHX1NZU19CUjRfUFJFTElNCTB4RkEwMDA0MDEJCS8qIE5WUkFNJlNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCTB4RkZGRTA5NzAKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJNTgKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk1OAogCiAvKgogICogUmVmcmVzaCBjbG9jayBQcmVzY2FsYXIKICAqLwotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjgKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWOAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiAxMCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfMTBDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl8xMENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8yIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTIgfAlcCiAJCQkgTUFNUl9HUExfQTRESVMgfCBNQU1SX1JMRkFfNFggfCBNQU1SX1dMRkFfM1ggfCBNQU1SX1RMRkFfMTZYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUlBYbGl0ZV9EVy5oIGIvaW5jbHVkZS9jb25maWdzL1JQWGxpdGVfRFcuaAppbmRleCA2ZTcyZTk2Li5hNTkwNTNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUlBYbGl0ZV9EVy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9SUFhsaXRlX0RXLmgKQEAgLTExMiw3ICsxMTIsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KICN1bmRlZglDT05GSUdfU1RBVFVTX0xFRAkJLyogZGlzdHVyYnMgZGlzcGxheS4gU3RhdHVzIExFRCBkaXNhYmxlZC4gKi8KIApAQCAtMTQ4LDggKzE0OCw4IEBACiAKIAogLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAkgICAgLyogdXNlIGZvciBKRkZTMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLwogCiAjZGVmaW5lIENPTkZJR19ORVRDT05TT0xFCiAKQEAgLTE1OCwyNSArMTU4LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJ1LWJvb3Q+IgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkidS1ib290PiIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xODYsNDggKzE4Niw0OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZBMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGQTIwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAogCiAjaWYgZGVmaW5lZChERUJVRykgfHwgZGVmaW5lZChDT05GSUdfQ01EX0lERSkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvciAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2lmZGVmCUNPTkZJR19FTlZfSVNfSU5fTlZSQU0KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweEZBMDAwMTAwCkBAIC0yMzgsMTQgKzIzOCwxNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4ODAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogI2VuZGlmCS8qIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkoKHVsb25nKSgoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jbGtyc3QucmVzKSkpCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkoKHVsb25nKSgoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY2xrcnN0LnJlcykpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1NSwxMCArMjU1LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IDB4MDAwMDA2MDAgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCAweDAwMDAwNjAwIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCS8qIFdlIGNhbiBnZXQgU1lQQ1I6IDB4RkZGRjA2ODkuICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2NiwxNCArMjY2LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9NTFJDMTApCSAgICAgICAvKiBTSVVNQ1I6MHgwMDAwMDgwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX01MUkMxMCkJICAgICAgIC8qIFNJVU1DUjoweDAwMDAwODAwICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJIDE2LWJpdAkJCSAxMi0xNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCiAvKiBUQlNDUjogMHgwMEMzIFtTQU1dICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI4MSw3ICsyODEsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogW1JUQyBlbmFibGVkIGJ1dCBub3Qgc3RvcHBlZCBvbiBGUlpdCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDICAgIChSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEUpIC8qIFJUQ1NDOjB4MDBDMQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDICAgIChSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEUpIC8qIFJUQ1NDOjB4MDBDMQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgMTYtYml0CQkgMTItMjMKQEAgLTI4OSw3ICsyODksNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqIFtQZXJpb2RpYyB0aW1lciBlbmFibGVkLFBlcmlvZGljIHRpbWVyIGludGVycnVwdCBkaXNhYmxlLiBdCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpICAvKiBQSVNDUjoweDAwODMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkgIC8qIFBJU0NSOjB4MDA4MwkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCTMyLWJpdAkgNS03CkBAIC0yOTksOSArMjk5LDkgQEAKICAqLwogLyogdXAgdG8gNjQgTUh6IHdlIHVzZSBhIDE6MiBjbG9jayAqLwogI2lmIGRlZmluZWQoUlBYbGl0ZV82NE1IeikKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoICg3IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfVEVYUFMgKSAgIC8qUExQUkNSOiAweDAwNzAwMDAwLiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoICg3IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfVEVYUFMgKSAgIC8qUExQUkNSOiAweDAwNzAwMDAwLiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoICg1IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfVEVYUFMgKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoICg1IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfVEVYUFMgKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMxMywyMyArMzEzLDIzIEBACiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYwMAogLyogVXAgdG8gNDhNSHogc3lzdGVtIGNsb2NrLCB3ZSB1c2UgMToxIFNZU1RFTS9CVVMgcmF0aW8gKi8KICNpZiBkZWZpbmVkKFJQWGxpdGVfNjRNSHopCi0jZGVmaW5lIENGR19TQ0NSCSggU0NDUl9UQlMgfCBTQ0NSX0VCREYwMSApICAvKiAlJSVTQ0NSOjB4MDIwMjAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSggU0NDUl9UQlMgfCBTQ0NSX0VCREYwMSApICAvKiAlJSVTQ0NSOjB4MDIwMjAwMDAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19TQ0NSCSggU0NDUl9UQlMgfCBTQ0NSX0VCREYwMCApICAvKiAlJSVTQ0NSOjB4MDIwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSggU0NDUl9UQlMgfCBTQ0NSX0VCREYwMCApICAvKiAlJSVTQ0NSOjB4MDIwMDAwMDAgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zNDEsMjIgKzM0MSwyMiBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVECSBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKLSNkZWZpbmUJCUNGR19ERVIJCTAKKyNkZWZpbmUJCUNPTkZJR19TWVNfREVSCQkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzY0LDEyICszNjQsMTIgQEAKICAqIEJSMCBhbmQgT1IwIChGTEFTSCkKICAqLwogI2RlZmluZSBGTEFTSF9CQVNFX1BSRUxJTQkweEZDMDAwMDAwCS8qIEZMQVNIIGJhc2UJKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZDMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZDMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDAsIFRSTFggPSAwLCBDU05UID0gMCwgU0NZID0gOCwgRVRIUiA9IDAsIEJJSCA9IDEgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAoT1JfU0NZXzhfQ0xLIHwgT1JfQkkpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCAoT1JfU0NZXzhfQ0xLIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfVikKIAogLyoKICAqIEJSMSBhbmQgT1IxIChTRFJBTSkKQEAgLTM3OSw0MCArMzc5LDQwIEBACiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCQkweDA4MDAwMDAwCS8qIG1heCAxMjggTUIgaW4gc3lzdGVtICovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEUwMAotI2RlZmluZSBDRkdfT1JfQU1fU0RSQU0JCSgtKFNEUkFNX01BWF9TSVpFICYgT1JfQU1fTVNLKSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKCBDRkdfT1JfQU1fU0RSQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBFMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9BTV9TRFJBTQkJKC0oU0RSQU1fTUFYX1NJWkUgJiBPUl9BTV9NU0spKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKCBDT05GSUdfU1lTX09SX0FNX1NEUkFNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qIFJQWGxpdGUgbWVtIHNldHRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JMHhGQTQwMDAwMQkJLyogQkNTUiAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkweEZGN0Y4OTAwCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCTB4RkEwMDA0MDEJCS8qIE5WUkFNJlNSQU0gKi8KLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JMHhGRkZFMDA0MAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JMHhGQTQwMDAwMQkJLyogQkNTUiAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JMHhGRjdGODkwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JMHhGQTAwMDQwMQkJLyogTlZSQU0mU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JMHhGRkZFMDA0MAogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwogI2lmIGRlZmluZWQoUlBYbGl0ZV82NE1IeikKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTMyCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJMzIKICNlbHNlCi0jZGVmaW5lIENGR19NQU1SX1BUQQkyMAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTIwCiAjZW5kaWYKIAogLyoKICAqIFJlZnJlc2ggY2xvY2sgUHJlc2NhbGFyCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYyCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJTVBUUFJfUFRQX0RJVjIKIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTCAgKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wgICgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFIHwgXAogCQkJTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTApCi0vKiBDRkdfTUFNUl85Q09MOjB4MjA5MDQwMDAgQCA2NE1IeiAqLworLyogQ09ORklHX1NZU19NQU1SXzlDT0w6MHgyMDkwNDAwMCBAIDY0TUh6ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1JQWHN1cGVyLmggYi9pbmNsdWRlL2NvbmZpZ3MvUlBYc3VwZXIuaAppbmRleCBlODA1MjEzLi5lOTdlZjk1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvUlBYc3VwZXIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvUlBYc3VwZXIuaApAQCAtOCw3ICs4LDcgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBmb3IgdGhlIEFZLVJldmlzaW9uIHdoaWNoIGRvZXMgbm90IHVzZSB0aGUgSFJDVyAqLwotI2RlZmluZSBDRkdfREVGQVVMVF9JTU1SCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX0lNTVIJMHgwMDAxMDAwMAogCiAvKiBXaGF0IGlzIHRoZSBvc2NpbGxhdG9yJ3MgKFVYMikgZnJlcXVlbmN5IGluIEh6PyAqLwogI2RlZmluZSBDT05GSUdfODI2MF9DTEtJTiAgKDY2ICogMTAwMCAqIDEwMDApCkBAIC0xNiw3ICsxNiw3IEBACiAvKiBIb3cgaXMgc3dpdGNoIFMyIHNldD8gV2UgcmVhbGx5IG9ubHkgd2FudCB0aGUgTU9EQ0tbMS0zXSBiaXRzLCBzbwogICogb25seSB0aGUgMyBsZWFzdCBzaWduaWZpY2FudCBiaXRzIGFyZSBpbXBvcnRhbnQuCiAqLwotI2RlZmluZSBDRkdfU0JDX1MyICAweDA0CisjZGVmaW5lIENPTkZJR19TWVNfU0JDX1MyICAweDA0CiAKIC8qIFdoYXQgc2hvdWxkIE1PRENLX0ggYmU/IEl0IGlzIGRlcGVuZGVudCBvbiB0aGUgb3NjaWxsYXRvcgogICogZnJlcXVlbmN5LCBNT0RDS1sxLTNdLCBhbmQgZGVzaXJlZCBDUE0gYW5kIGNvcmUgZnJlcXVlbmNpZXMuCkBAIC0yOCw0NSArMjgsNDUgQEAKICAqIDB4NSAgICAgICAweDUgICAgICAgICA2NiAgICAgMTMzICAgIDEzMwogICogMHg1ICAgICAgIDB4NyAgICAgICAgIDY2ICAgICAxMzMgICAgMjAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NCQ19NT0RDS19IIDB4MDYKKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfTU9EQ0tfSCAweDA2CiAKLSNkZWZpbmUgQ0ZHX1NCQ19CT09UX0xPVyAxCS8qIG9ubHkgZm9yIEhSQ1cgKi8KLSN1bmRlZiBDRkdfU0JDX0JPT1RfTE9XCisjZGVmaW5lIENPTkZJR19TWVNfU0JDX0JPT1RfTE9XIDEJLyogb25seSBmb3IgSFJDVyAqLworI3VuZGVmIENPTkZJR19TWVNfU0JDX0JPT1RfTE9XCiAKIC8qIFdoYXQgc2hvdWxkIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIG1haW4gRkxBU0ggYmUgYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNQnl0ZXMpPyBUaGlzIG11c3QgY29udGFpbiBURVhUX0JBU0UgZnJvbSBib2FyZC9zYmM4MjYwL2NvbmZpZy5tawogICogVGhlIG1haW4gRkxBU0ggaXMgd2hpY2hldmVyIGlzIGNvbm5lY3RlZCB0byAqQ1MwLiBVLUJvb3QgZXhwZWN0cwogICogdGhpcyB0byBiZSB0aGUgU0lNTS4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgMTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRSAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgMTYKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgc2Vjb25kYXJ5IEZMQVNIIGJlIGFuZCBob3cgYmlnCiAgKiBpcyBpdCAoaW4gTWJ5dGVzKT8gVGhlIHNlY29uZGFyeSBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkCiAgKiB0byAqQ1M2LiBVLUJvb3QgZXhwZWN0cyB0aGlzIHRvIGJlIHRoZSBvbiBib2FyZCBGTEFTSC4gSWYgeW91IGRvbid0CiAgKiB3YW50IGl0IGVuYWJsZWQsIGRvbid0IGRlZmluZSB0aGVzZSBjb25zdGFudHMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFIDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9TSVpFIDAKLSN1bmRlZiBDRkdfRkxBU0gxX0JBU0UKLSN1bmRlZiBDRkdfRkxBU0gxX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRSAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX1NJWkUgMAorI3VuZGVmIENPTkZJR19TWVNfRkxBU0gxX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIMV9TSVpFCiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gRElNTSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/CiAqLwotI2RlZmluZSBDRkdfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX1NJWkUgNjQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfQkFTRSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1NJWkUgNjQKIAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSBESU1NIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8KICovCi0jZGVmaW5lIENGR19TRFJBTTFfQkFTRSAweDA0MDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTFfU0laRSAzMgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9CQVNFIDB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTFfU0laRSAzMgogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBMRURzIGFuZCBzd2l0Y2ggUzA/CiAgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGVtIGVuYWJsZWQsIGRvbid0IGRlZmluZSB0aGlzLgogICovCi0jZGVmaW5lIENGR19MRURfQkFTRSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0JBU0UgMHgwMDAwMDAwMAogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTEwNiwxOSArMTA2LDE5IEBACiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgSGFsZiBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzN8Q01YRkNSX1JGM0NTX01TS3xDTVhGQ1JfVEYzQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGM0NTX0NMSzE1fENNWEZDUl9URjNDU19DTEsxNikKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0vKiNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikgKi8KLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJMAorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDM3xDTVhGQ1JfUkYzQ1NfTVNLfENNWEZDUl9URjNDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGM0NTX0NMSzE1fENNWEZDUl9URjNDU19DTEsxNikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorLyojZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJMAogCiAjZWxzZSAvKiBDT05GSUdfRVRIRVJfSU5ERVggKi8KICMgZXJyb3IgIm9uIFJQWCBTdXBlciBldGhlcm5ldCBtdXN0IGJlIEZDQzMiCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX0lOREVYICovCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDICAgICAgICAgMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAKIC8qIERlZmluZSB0aGlzIHRvIHJlc2VydmUgYW4gZW50aXJlIEZMQVNIIHNlY3RvciAoMjU2IEtCKSBmb3IKQEAgLTE0NCwxMCArMTQ0LDEwIEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkgICAgICAgIC0xCiAKIC8qIHVuZGVmIHRoaXMgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKIAogLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAgICAgICAgICAiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVCAgICAgICAgICAgICAgIj0+ICIKIAogCiAvKgpAQCAtMTczLDEwICsxNzMsMTAgQEAKIAogCiAvKiBXaGVyZSBkbyB0aGUgaW50ZXJuYWwgcmVnaXN0ZXJzIGxpdmU/ICovCi0jZGVmaW5lIENGR19JTU1SICAgICAgICAgICAgICAgMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIgICAgICAgICAgICAgICAweEYwMDAwMDAwCiAKIC8qIFdoZXJlIGRvIHRoZSBvbiBib2FyZCByZWdpc3RlcnMgKENTNCkgbGl2ZT8gKi8KLSNkZWZpbmUgQ0ZHX1JFR1NfQkFTRSAgICAgICAgICAweEZBMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVHU19CQVNFICAgICAgICAgIDB4RkEwMDAwMDAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMTk0LDI4ICsxOTQsMjggQEAKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDEwMjQgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAxMDI0ICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KICNlbHNlCi0jICBkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2VuZGlmCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUgICAgICAgIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIAotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICA4ICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgOCAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KIAotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICBDRkdfQ0JTSVpFICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFICAgICAgQ09ORklHX1NZU19DQlNJWkUgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgMHgwNDAwMDAwMCAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgIDB4MDYwMDAwMDAgICAvKiA2NC05NiBNQiBpbiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgMHgwNDAwMDAwMCAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAweDA2MDAwMDAwICAgLyogNjQtOTYgTUIgaW4gU0RSQU0gKi8KIAogI2RlZmluZQlDT05GSUdfQ0xPQ0tTX0lOX01IWgkxCS8qIGNsb2NrcyBwYXNzc2VkIHRvIExpbnV4IGluIE1IeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgIDB4MTAwMDAwICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSFogICAgICAgICAgICAxMDAwICAgICAgICAgLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgICAgMHgxMDAwMDAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAxMDAwICAgICAgICAgLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTIyMywxMDYgKzIyMywxMDYgQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFICAgIENGR19TRFJBTTBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgICAgQ09ORklHX1NZU19TRFJBTTBfQkFTRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqLwotI2lmIGRlZmluZWQoQ0ZHX1NCQ19CT09UX0xPVykKLSMgIGRlZmluZSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19TQkNfQk9PVF9MT1cpCisjICBkZWZpbmUgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCiAjZWxzZQotIyAgZGVmaW5lICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKDApCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfU0JDX0JPT1RfTE9XKSAqLworIyAgZGVmaW5lICBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MgICgwKQorI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19TQkNfQk9PVF9MT1cpICovCiAKLS8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDRkdfSU1NUiAqLwotI2RlZmluZSBDRkdfU0JDX0hSQ1dfSU1NUiAoICgoQ0ZHX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfFwKLQkJCSAgICAoKENGR19JTU1SICYgMHgwMTAwMDAwMCkgPj4gNykgIHxcCi0JCQkgICAgKChDRkdfSU1NUiAmIDB4MDAxMDAwMDApID4+IDQpICkKKy8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDT05GSUdfU1lTX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfSFJDV19JTU1SICggKChDT05GSUdfU1lTX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfFwKKwkJCSAgICAoKENPTkZJR19TWVNfSU1NUiAmIDB4MDEwMDAwMDApID4+IDcpICB8XAorCQkJICAgICgoQ09ORklHX1NZU19JTU1SICYgMHgwMDEwMDAwMCkgPj4gNCkgKQogCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUiAoSFJDV19CUFMxMSAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIgKEhSQ1dfQlBTMTEgICAgICAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEhSQ1dfRFBQQzExICAgICAgICAgICAgICAgICAgICAgICAgICB8XAotCQkJIENGR19TQkNfSFJDV19JTU1SICAgICAgICAgICAgICAgICAgICB8XAorCQkJIENPTkZJR19TWVNfU0JDX0hSQ1dfSU1NUiAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBIUkNXX01NUjAwICAgICAgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBIUkNXX0xCUEMxMSAgICAgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBIUkNXX0FQUEMxMCAgICAgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBIUkNXX0NTMTBQQzAwICAgICAgICAgICAgICAgICAgICAgICAgfFwKLQkJCSAoQ0ZHX1NCQ19NT0RDS19IICYgSFJDV19NT0RDS19IMTExMSkgfFwKLQkJCSBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUykKKwkJCSAoQ09ORklHX1NZU19TQkNfTU9EQ0tfSCAmIEhSQ1dfTU9EQ0tfSDExMTEpIHxcCisJCQkgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTKQogCiAvKiBubyBzbGF2ZXMgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0IDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1IDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2IDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMSAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNCAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgICAgQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgICAgMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAgICAvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgICAweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAgICAvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCi0gKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENGR19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4KKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENPTkZJR19TWVNfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAgKENGR19GTEFTSDBfQkFTRSArIDB4MDBGMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgICAoQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIDB4MDBGMDAwMDApCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOICAgICAgKDI1NiA8PCAxMCkgICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAgKDEyOCA8PCAxMCkgICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTiAgICAgICgyNTYgPDwgMTApICAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgICAoMTI4IDw8IDEwKSAgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAgICAgICAgKDggPDwgMjApICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAxICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgIDcxICAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgIDEgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgIDcxICAgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICA4MDAwICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgIDEgICAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgIDgwMDAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgIDEgICAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0ggIDEKIAogIyAgaWZkZWYgQ09ORklHX0VOVl9JTl9PV05fU0VDVAotIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgIChDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKyMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogIyAgICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUgIDB4NDAwMDAKICMgIGVsc2UKLSMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKyMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogIyAgICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgIDB4MTAwMCAgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFICAweDEwMDAwIC8qIHNlZSBSRUFETUUgLSBlbnYgc2VjdCByZWFsIHNpemUgKi8KICMgIGVuZGlmIC8qIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QgKi8KICNlbHNlCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTSAgMQotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgIChDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgICAweDIwMAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQgICAgIDUgICAgIC8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQgICAgIDUgICAgIC8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzM1LDMwICszMzUsMzAgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQgICAoLypISUQwX0lDRSAgfCovXAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgICgvKkhJRDBfSUNFICB8Ki9cCiAJCQkgLypISUQwX0RDRSAgfCovXAogCQkJIEhJRDBfSUNGSSB8XAogCQkJIEhJRDBfRENJICB8XAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMICAoLypISUQwX0lDRSAgfCovXAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwgICgvKkhJRDBfSUNFICB8Ki9cCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUgIHxcCiAJCQkgSElEMF9FTUNQKQotI2RlZmluZSBDRkdfSElEMiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SICAgICAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSICAgICAgICAgKEJDUl9FQk0gICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JDUiAgICAgICAgIChCQ1JfRUJNICAgfFwKIAkJCSBCQ1JfUExEUCAgfFwKIAkJCSBCQ1JfRUFWICAgfFwKIAkJCSBCQ1JfTlBRTTApCkBAIC0zNjgsNyArMzY4LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIENGR19TSVVNQ1IgICAgICAoU0lVTUNSX0wyQ1BDMDEgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgICAgICAoU0lVTUNSX0wyQ1BDMDEgfFwKIAkJCSBTSVVNQ1JfQVBQQzEwICB8XAogCQkJIFNJVU1DUl9DUzEwUEMwMSkKIApAQCAtMzc5LDcgKzM3OSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDIHxcCiAJCQkgU1lQQ1JfQk1UICB8XAogCQkJIFNZUENSX1BCTUUgfFwKIAkJCSBTWVBDUl9MQk1FIHxcCkBAIC0zOTIsNyArMzkyLDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQyB8XAogCQkJIFRNQ05UU0NfQUxSIHxcCiAJCQkgVE1DTlRTQ19UQ0YgfFwKIAkJCSBUTUNOVFNDX1RDRSkKQEAgLTQwMyw3ICs0MDMsNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgICAgICAgKFBJU0NSX1BTICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSICAgICAgIChQSVNDUl9QUyAgfFwKIAkJCSBQSVNDUl9QVEYgfFwKIAkJCSBQSVNDUl9QVEUpCiAKQEAgLTQxMSwxMyArNDExLDEzIEBACiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TQ0NSICAgICAgICAoU0NDUl9ERkJSRzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IgICAgICAgIChTQ0NSX0RGQlJHMDEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNDQxLDEzICs0NDEsMTMgQEAKIC8qIEJhbmsgMCAtIEZMQVNICiAgKgogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSDBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfNjQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfREVDQ19OT05FICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAgKE1FR19UT19BTShDRkdfRkxBU0gwX1NJWkUpICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSDBfU0laRSkgICAgIHxcCiAJCQkgT1J4R19DU05UICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMSAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19TQ1lfNl9DTEsgICAgICAgICAgICAgICAgIHxcCkBAIC00NTYsNDggKzQ1Niw0OCBAQAogLyogQmFuayAxIC0gU0RSQU0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNICAoTUVHX1RPX0FNKENGR19TRFJBTTBfU0laRSkgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSAgKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNMF9TSVpFKSAgICAgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTggICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTIgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX0lCSUQpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SICAgICAgIDB4MDE0REE0MTIKLSNkZWZpbmUgQ0ZHX1BTUlQJMHg3OQorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SICAgICAgIDB4MDE0REE0MTIKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCTB4NzkKIAogCiAvKiBCYW5rIDIgLSBTRFJBTQogICoKICAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgKChDRkdfU0RSQU0xX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0gICgoQ09ORklHX1NZU19TRFJBTTFfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzMyICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX0wgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX1NEUkFNMV9TSVpFKSAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfU0RSQU0xX1NJWkUpICAgICB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BOSAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfTFNETVIgICAgICAgMHgwMTY5QTUxMgotI2RlZmluZSBDRkdfTFNSVAkweDc5CisjZGVmaW5lIENPTkZJR19TWVNfTFNETVIgICAgICAgMHgwMTY5QTUxMgorI2RlZmluZSBDT05GSUdfU1lTX0xTUlQJMHg3OQogCi0jZGVmaW5lIENGR19NUFRQUgkoMHgwODAwICYgTVBUUFJfUFRQX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkoMHgwODAwICYgTVBUUFJfUFRQX01TSykKIAogLyogQmFuayA0IC0gT24gYm9hcmQgcmVnaXN0ZXJzCiAgKgogICovCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAgKChDRkdfUkVHU19CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgICgoQ09ORklHX1NZU19SRUdTX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSAgIEJSeF9QU184ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSAgIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgfFwKIAkJCSAgIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjRfUFJFTElNICAgIChPUnhHX0FNX01TSyAgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNICAgIChPUnhHX0FNX01TSyAgICAgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICB8XAogCQkJICAgT1J4R19BQ1NfRElWMSAgICAgICAgICAgICAgIHxcCiAJCQkgICBPUnhHX1NDWV81X0NMSyAgICAgICAgICAgICAgfFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9SUnZpc2lvbi5oIGIvaW5jbHVkZS9jb25maWdzL1JSdmlzaW9uLmgKaW5kZXggNTQxZDU4Ni4uNmVjNWJlMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1JSdmlzaW9uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1JSdmlzaW9uLmgKQEAgLTg0LDcgKzg0LDcgQEAKIAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMjEsOCArMTIxLDggQEAKICN1bmRlZglDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jIGRlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAkvKiA1MCBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotIyBkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCS8qIDUwIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAvKgpAQCAtMTYwLDI1ICsxNjAsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTg4LDQ0ICsxODgsNDQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyA9IG1zICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgxMjAqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMSAqIENGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgxMjAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgxICogQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjM1LDE0ICsyMzUsMTQgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTIsMTAgKzI1MiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY0LDkgKzI2NCw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3NCwyMCArMjc0LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYgfCBQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjk3LDcgKzI5Nyw3IEBACiAgKi8KIAogLyogZm9yIDY0IE1Ieiwgd2UgdXNlIGEgMTYgTUh6IGNsb2NrICogNCAqLwotI2RlZmluZSBDRkdfUExQUkNSICggKDQtMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSICggKDQtMSk8PFBMUFJDUl9NRl9TSElGVCB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMDYsNyArMzA2LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUyAgfCAqLyBTQ0NSX1JUU0VMIHwgU0NDUl9SVERJViAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUyAgfCAqLyBTQ0NSX1JUU0VMIHwgU0NDUl9SVERJViAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMzE2LDE0ICszMTYsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzM2LDI5ICszMzYsMjkgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIJMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIJMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzcyLDE5ICszNzIsMTkgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwogLyogNjYgTUh6IENQVSAtIDY2IE1IeiBidXM6IEFDUyA9IDAwLCBUUkxYID0gMSwgQ1NOVCA9IDEsIFNDWSA9IDMsIEVIVFIgPSAxICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzk1LDE5ICszOTUsMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUJQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDM3LDMzICs0MzcsMzMgQEAKICAqIDY2IE1oeiA9PiA2Ni4wMDAuMDAwIC8gRGl2aWRlciA9IDEyOQogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkxMjkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJMTI5CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9SYXR0bGVyLmggYi9pbmNsdWRlL2NvbmZpZ3MvUmF0dGxlci5oCmluZGV4IDZlYzUyZTYuLjAxZDBkNWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9SYXR0bGVyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1JhdHRsZXIuaApAQCAtNzgsMTAgKzc4LDEwIEBACiAgKiAtIEJEcy9idWZmZXJzIG9uIDYweCBidXMKICAqIC0gRnVsbCBkdXBsZXgKICAqLwotI2RlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzEgfCBDTVhGQ1JfUkYxQ1NfTVNLIHwgQ01YRkNSX1RGMUNTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExIHwgQ01YRkNSX1RGMUNTX0NMSzEwKQotI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzEgfCBDTVhGQ1JfUkYxQ1NfTVNLIHwgQ01YRkNSX1RGMUNTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMSB8IENNWEZDUl9URjFDU19DTEsxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbGlmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKIApAQCAtOTAsMTAgKzkwLDEwIEBACiAgKiAtIEJEcy9idWZmZXJzIG9uIDYweCBidXMKICAqIC0gRnVsbCBkdXBsZXgKICAqLwotI2RlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzE1IHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxNSB8IENNWEZDUl9URjJDU19DTEsxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMTYzLDM5ICsxNjMsMzkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUJQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lCUNPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9KRkZTMikKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwlDRkdfTUFYX0ZMQVNIX0JBTktTCi0jZGVmaW5lIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCkBAIC0yMTYsODMgKzIxNiw4MyBAQAogKi8KICNlbmRpZiAvKiBDT05GSUdfQ01EX0pGRlMyICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZW5kaWYgLyogQ09ORklHX0VOVl9JU19JTl9GTEFTSCAqLwogCi0jZGVmaW5lIENGR19ERUZBVUxUX0lNTVIJMHhGRjAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUgkweEZGMDEwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMzIKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JSCQkoQ0ZHX1NEUkFNX0JBU0UgfCAweDAwMDAwMDQxKQotI2RlZmluZSBDRkdfU0RSQU1fT1IJCTB4RkUwMDJFQzAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IDB4MDAwMDAwNDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fT1IJCTB4RkUwMDJFQzAKIAotI2RlZmluZSBDRkdfQkNTUgkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJCTB4RkMwMDAwMDAKIAogLyogSGFyZCByZXNldCBjb25maWd1cmF0aW9uIHdvcmQgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkweDBBMDY4NzVBIC8qIE5vdCB1c2VkIC0gcHJvdmlkZWQgYnkgRlBHQSAqLworI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkweDBBMDY4NzVBIC8qIE5vdCB1c2VkIC0gcHJvdmlkZWQgYnkgRlBHQSAqLwogLyogTm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdCAgICAgICAgICAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUpCiAKLSNkZWZpbmUgQ0ZHX0hJRDIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQkwCiAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJMHgwRTA0QzAwMAotI2RlZmluZSBDRkdfU1lQQ1IJCTB4RkZGRkZGQzMKLSNkZWZpbmUgQ0ZHX0JDUgkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NDQ1IJCVNDQ1JfREZCUkcwMQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkJMHgwRTA0QzAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkweEZGRkZGRkMzCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCVNDQ1JfREZCUkcwMQogCi0jZGVmaW5lIENGR19STVIJCQlSTVJfQ1NSRQotI2RlZmluZSBDRkdfVE1DTlRTQwkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQotI2RlZmluZSBDRkdfUElTQ1IJCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQotI2RlZmluZSBDRkdfUkNDUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJCVJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCQkwCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SCQkweDgyNDlBNDUyCi0jZGVmaW5lIENGR19QU1JUCQkweDFGCi0jZGVmaW5lIENGR19NUFRQUgkJMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJCTB4ODI0OUE0NTIKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkweDFGCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4MjAwMAogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweDAwMDAxMDAxKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRjAwMUVENgotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJKENGR19CQ1NSIHwgMHgwMDAwMDgwMSkKLSNkZWZpbmUgQ0ZHX09SN19QUkVMSU0JCTB4RkZGRjg3RjYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHgwMDAwMTAwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGMDAxRUQ2CisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJKENPTkZJR19TWVNfQkNTUiB8IDB4MDAwMDA4MDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkJMHhGRkZGODdGNgogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4QzAwMDAwMDAKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9TQkM4NTQwLmggYi9pbmNsdWRlL2NvbmZpZ3MvU0JDODU0MC5oCmluZGV4IDJjZjc1ZTMuLjQ4YzkzMzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9TQkM4NTQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1NCQzg1NDAuaApAQCAtNzksOSArNzksOSBAQAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkgICAgLyogQ2FsbCBib2FyZF9lYXJseV9pbml0X2YJKi8KIAotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkgICAgLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMCAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkgICAgLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAgIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogI2lmIChkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX1RTRUNfRU5FVCkgfHwgXAogICAgICBkZWZpbmVkKENPTkZJR19QQ0kpICYmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgfHwgXApAQCAtOTMsMTcgKzkzLDE3IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KIAogI2lmIFhYWAotICAjZGVmaW5lIENGR19DQ1NSQkFSCQkweGZkZjAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCisgICNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSCQkweGZkZjAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCiAjZWxzZQotICAjZGVmaW5lIENGR19DQ1NSQkFSCQkweGZmNzAwMDAwCS8qIGRlZmF1bHQgQ0NTUkJBUgkqLworICAjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhmZjcwMDAwMAkvKiBkZWZhdWx0IENDU1JCQVIJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9QSFlTCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQlDT05GSUdfU1lTX0NDU1JCQVIJLyogUFFJSSB1c2VzIENPTkZJR19TWVNfSU1NUgkqLwogCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQk1MTIJCS8qIEREUiBpcyA1MTJNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTUxMgkJLyogRERSIGlzIDUxMk1CICovCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjEKQEAgLTEyMCw4ICsxMjAsOCBAQAogI3VuZGVmIENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQ09OVFJPTExFUgkvKiBERFIgY29udHJvbGxlciBvciBETUE/ICovCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19WRVJZX0JJR19SQU0KIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCkBAIC0xMzQsNjkgKzEzNCw2OSBAQAogI3VuZGVmIENPTkZJR19DTE9DS1NfSU5fTUhaCiAKICNpZiBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0gICNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZmMwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSAgI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkweGY4MDAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggOE0gICovCi0gICNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JMHhmODAwMDgwMSAgICAgIC8qIHBvcnQgc2l6ZSA4Yml0ICovCi0gICNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhmODAwMGZmNwkvKiA4TUIgRmxhc2gJCSovCisgICNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGZjMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisgICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCTB4ZjgwMDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCA4TSAgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JMHhmODAwMDgwMSAgICAgIC8qIHBvcnQgc2l6ZSA4Yml0ICovCisgICNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCTB4ZjgwMDBmZjcJLyogOE1CIEZsYXNoCQkqLwogI2Vsc2UgLyogQm9vdCBmcm9tIHJlYWwgRmxhc2ggKi8KLSAgI2RlZmluZSBDRkdfTEJDX1NEUkFNX0JBU0UJMHhmODAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLwotICAjZGVmaW5lIENGR19GTEFTSF9CQVNFCTB4ZmY4MDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCA4TSAgICAqLwotICAjZGVmaW5lIENGR19CUjBfUFJFTElNCTB4ZmY4MDA4MDEgICAgICAvKiBwb3J0IHNpemUgOGJpdCAgICAgICovCi0gICNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JMHhmZjgwMGZmNwkvKiA4TUIgRmxhc2gJCSovCisgICNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGY4MDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisgICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCTB4ZmY4MDAwMDAgICAgICAvKiBzdGFydCBvZiBGTEFTSCA4TSAgICAqLworICAjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkweGZmODAwODAxICAgICAgLyogcG9ydCBzaXplIDhiaXQgICAgICAqLworICAjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweGZmODAwZmY3CS8qIDhNQiBGbGFzaAkJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CCSovCiAKIC8qIGxvY2FsIGJ1cyBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhlNDAwMTgwMQkvKiA2NE0sIDMyLWJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhmYzAwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZTQwMDE4MDEJLyogNjRNLCAzMi1iaXQgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGZjMDAwZmY3CiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4MDAwMDAwMDAJLyogQ1MyIG5vdCB1c2VkICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHgwMDAwMDAwMAkvKiBDUzIgbm90IHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4ZjAwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTQkqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhmYzAwMGNjMQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTB4ZjAwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCTB4ZmMwMDBjYzEKIAogI2lmIGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKLSAgI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkweGY0MDAxODYxCS8qIDY0TSBsb2NhbGJ1cyBTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkweGY0MDAxODYxCS8qIDY0TSBsb2NhbGJ1cyBTRFJBTSAqLwogI2Vsc2UKLSAgI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkweGY4MDAxODYxCS8qIDY0TSBsb2NhbGJ1cyBTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkweGY4MDAxODYxCS8qIDY0TSBsb2NhbGJ1cyBTRFJBTSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkweGZjMDAwY2MxCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMHhmYzAwMGNjMQogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkweGZjMDAwODAxCS8qIDE2TSBDUzUgbWlzYyBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJMHhmYzAwMDgwMQkvKiAxNk0gQ1M1IG1pc2MgZGV2aWNlcyAqLwogI2lmIDEKLSAgI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkweGZmMDAwZmY3CisgICNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCTB4ZmYwMDBmZjcKICNlbHNlCi0gICNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JMHhmZjAwMDBmMAorICAjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkweGZmMDAwMGYwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJMHhlMDAwMTgwMQkvKiA2NE0sIDMyLWJpdCBmbGFzaCAqLwotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJMHhmYzAwMGZmNwotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDIJLyogbG9jYWwgYnVzIGZyZXEJKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJMHgyODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzIJCTB4MDg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8zCQkweDA4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJMHgxODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzUJCTB4NDA2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCQkweGUwMDAxODAxCS8qIDY0TSwgMzItYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMHhmYzAwMGZmNworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ1JSCQkweDAwMDMwMDAyCS8qIGxvY2FsIGJ1cyBmcmVxCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19NUlRQUgkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8xCQkweDI4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzIJCTB4MDg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMwkJMHgwODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl80CQkweDE4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzUJCTB4NDA2MWI3MjMKIAogLyoganVzdCBoaWphY2sgdGhlIE1PVCBCQ1NSIGRlZiBmb3IgU0JDODU2MCBtaXNjIGRldmljZXMgKi8KLSNkZWZpbmUgQ0ZHX0JDU1IJCSgoQ0ZHX0JSNV9QUkVMSU0gJiAweGZmMDAwMDAwKXwweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJCSgoQ09ORklHX1NZU19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCl8MHgwMDQwMDAwMCkKIC8qIHRoZSBzaXplIG9mIENTNSBuZWVkcyB0byBiZSA+PSAxNk0gZm9yIFRMQiBhbmQgTEFXIHNldHVwcyAqLwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjdW5kZWYgIENPTkZJR19DT05TX09OX1NDQwkJCS8qIGRlZmluZSBpZiBjb25zb2xlIG9uIFNDQyAqLwpAQCAtMjA0LDMzICsyMDQsMzMgQEAKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogI2lmIDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkxODQzMjAwIC8qIGdldF9idXNfZnJlcSgwKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkxODQzMjAwIC8qIGdldF9idXNfZnJlcSgwKSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkyNjQwMDAwMDAgLyogZ2V0X2J1c19mcmVxKDApICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTI2NDAwMDAwMCAvKiBnZXRfYnVzX2ZyZXEoMCkgKi8KICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCiAjaWYgMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCSgoQ0ZHX0JSNV9QUkVMSU0gJiAweGZmMDAwMDAwKSsweDAwNzAwMDAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCSgoQ0ZHX0JSNV9QUkVMSU0gJiAweGZmMDAwMDAwKSsweDAwODAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoKENPTkZJR19TWVNfQlI1X1BSRUxJTSAmIDB4ZmYwMDAwMDApKzB4MDA3MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCSgoQ09ORklHX1NZU19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCkrMHgwMDgwMDAwMCkKICNlbHNlCiAvKiBTQkM4NTQwIHVzZXMgaW50ZXJuYWwgQ09NTSBjb250cm9sbGVyICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKChDRkdfQ0NTUkJBUiAmIDB4ZmZmMDAwMDApKzB4MDAwMDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKChDRkdfQ0NTUkJBUiAmIDB4ZmZmMDAwMDApKzB4MDAwMDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCSgoQ09ORklHX1NZU19DQ1NSQkFSICYgMHhmZmYwMDAwMCkrMHgwMDAwNDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKChDT05GSUdfU1lTX0NDU1JCQVIgJiAweGZmZjAwMDAwKSsweDAwMDA0NjAwKQogI2VuZGlmCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTIzOSwxNCArMjM5LDE0IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkvKiBVc2UgRlNMIGNvbW1vbiBJMkMgZHJpdmVyICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQkFTRQkweEMwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1BIWVMJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFCTB4MTAwMDAwMDAKIAogI2lmIGRlZmluZWQoQ09ORklHX1RTRUNfRU5FVCkJCS8qIFRTRUMgRXRoZXJuZXQgcG9ydCAqLwogCkBAIC0yNzMsMTAgKzI3MywxMCBAQAogICAgICAqIC0gU2VsZWN0IGJ1cyBmb3IgYmQvYnVmZmVycwogICAgICAqIC0gRnVsbCBkdXBsZXgKICAgICAgKi8KLSAgICAjZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQotICAgICNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotICAgICNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSAgICAjZGVmaW5lIENGR19GQ0NfUFNNUgkoRkNDX1BTTVJfRkRFKQorICAgICNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQorICAgICNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkoRkNDX1BTTVJfRkRFKQogCiAgICNlbGlmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMykKICAgICAvKiBuZWVkIG1vcmUgZGVmaW5pdGlvbnMgaGVyZSBmb3IgRkUzICovCkBAIC0zMDYsNDYgKzMwNiw0NiBAQAogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyCQkqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAgICAvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAgICAvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyMDAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyMDAwMDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMDAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvcgkqLwogCiAjaWYgMAogLyogWFhYIFRoaXMgZG9lc24ndCB3b3JrIGFuZCBJIGRvbid0IHdhbnQgdG8gZml4IGl0ICovCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSAgI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyAgI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0gICN1bmRlZiAgQ0ZHX1JBTUJPT1QKKyAgI3VuZGVmICBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogI2VuZGlmCiAKIC8qIEVudmlyb25tZW50ICovCi0jaWYgIWRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAjaWYgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCi0gICAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFICsgMHgxMDAwMDApCisgICAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MTAwMDAwKQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCTB4MjAwMAogICAjZWxzZQogICAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAgICAgI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwIC8qIDEyOEsob25lIHNlY3RvcikgZm9yIGVudiAqLwotICAgICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfTU9OSVRPUl9CQVNFIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCisgICAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAgICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJMHgyMDAwIC8qIENPTkZJR19FTlZfU0VDVF9TSVpFICovCiAgICNlbmRpZgogI2Vsc2UKLSAgI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cJKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93CSovCiAgICNkZWZpbmUgQ09ORklHX0VOVl9JU19OT1dIRVJFCTEJLyogU3RvcmUgRU5WIGluIG1lbW9yeSBvbmx5CSovCi0gICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogI2VuZGlmCiAKQEAgLTM1NSw3ICszNTUsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJLyogLTEgZGlzYWJsZSBhdXRvYm9vdCAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIAogLyoKQEAgLTM4Myw3ICszODMsNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9NSUkKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC0zOTQsMjUgKzM5NCwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiU0JDODU0MD0+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJTQkM4NTQwPT4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0gICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotICAjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvU0NNLmggYi9pbmNsdWRlL2NvbmZpZ3MvU0NNLmgKaW5kZXggNTBjZjQ5OS4uYzZmYjA3NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1NDTS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9TQ00uaApAQCAtNzUsOCArNzUsOCBAQAogLyogZW5hYmxlIEkyQyBhbmQgc2VsZWN0IHRoZSBoYXJkd2FyZS9zb2Z0d2FyZSBkcml2ZXIgKi8KICN1bmRlZiAgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KQEAgLTkyLDEwICs5MiwxMCBAQAogCQkJZWxzZSAgICBpb3AtPnBkYXQgJj0gfjB4MDAwMjAwMDAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSg1KQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKICNkZWZpbmUgQ09ORklHX0kyQ19YCiAKQEAgLTE1MSwxMCArMTUxLDEwIEBACiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzF8Q01YRkNSX1JGMUNTX01TS3xDTVhGQ1JfVEYxQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzEyfENNWEZDUl9URjFDU19DTEsxMSkKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzEyfENNWEZDUl9URjFDU19DTEsxMSkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQogCkBAIC0xNjQsMTAgKzE2NCwxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzN8Q01YRkNSX1JGM0NTX01TS3xDTVhGQ1JfVEYzQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX09OX0ZDQywgQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTE4Niw3ICsxODYsNyBAQAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTIxNCwyNyArMjE0LDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUIDB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MgMHhGRkZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgMHhGRkZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogaGF2ZSBtaXNjX2luaXRfcigpIGZ1bmN0aW9uCSovCiAKQEAgLTI0MywzNSArMjQzLDM1IEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1ogICAgICAgICg4IDw8IDIwKSAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAKIC8qIFdoYXQgc2hvdWxkIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIG1haW4gRkxBU0ggYmUgYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNQnl0ZXMpPyBUaGlzIG11c3QgY29udGFpbiBURVhUX0JBU0UgZnJvbSBib2FyZC90cW04MjYwL2NvbmZpZy5tawogICogVGhlIG1haW4gRkxBU0ggaXMgd2hpY2hldmVyIGlzIGNvbm5lY3RlZCB0byAqQ1MwLgogICovCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRSAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDFfQkFTRSAweDYwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRSAzMgotI2RlZmluZSBDRkdfRkxBU0gxX1NJWkUgMzIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRSAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UgMHg2MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFIDMyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX1NJWkUgMzIKIAogLyogRmxhc2ggYmFuayBzaXplIChmb3IgcHJlbGltaW5hcnkgc2V0dGluZ3MpCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUgQ0ZHX0ZMQVNIMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KIAogI2lmIDAKIC8qIFN0YXJ0IHBvcnQgd2l0aCBlbnZpcm9ubWVudCBpbiBmbGFzaDsgc3dpdGNoIHRvIEVFUFJPTSBsYXRlciAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCiAjZWxzZQpAQCAtMjg0LDYzICsyODQsNjMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICoKLSAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENGR18qCisgKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDT05GSUdfU1lTXyoKICAqIGRlZmluZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBhZmZlY3RlZCBieSB0aGUgSFJDVyBlLmcuIGNoYW5naW5nCi0gKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ0ZHX1NJVU1DUi4KKyAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDT05GSUdfU1lTX1NJVU1DUi4KICAqLwogI2lmIGRlZmluZWQoQ09ORklHXzI2Nk1IeikKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjExMSB8IEhSQ1dfQk1TIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjExMSB8IEhSQ1dfQk1TIHwgXAogCQkJCQkJCSAgICAgIEhSQ1dfTU9EQ0tfSDAxMTEpCiAjZWxpZiBkZWZpbmVkKENPTkZJR18zMDBNSHopCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUyB8IFwKIAkJCQkJCQkgICAgICBIUkNXX01PRENLX0gwMTEwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjExMSB8IEhSQ1dfQk1TKQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjExMSB8IEhSQ1dfQk1TKQogI2VuZGlmCiAKIC8qIG5vIHNsYXZlcyBzbyBqdXN0IGZpbGwgd2l0aCB6ZXJvcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKgotICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDRkdfU0RSQU1fQkFTRSwgbG9jYWwgU0RSQU0KKyAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFLCBsb2NhbCBTRFJBTQogICogaXMgbWFwcGVkIGF0IFNEUkFNX0JBU0UyX1BSRUxJTS4KICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC0zNTQsMTYgKzM1NCwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNzYsMjggKzM3NiwyOCBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAogCQkJCUhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwgIChISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQyICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgKEhJRDBfSUZFTXxISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS01CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwotI2RlZmluZSBDRkdfUk1SICAgICAgICAgUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19STVIgICAgICAgICBSTVJfQ1NSRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogI2lmZGVmCUNPTkZJR19CVVNNT0RFXzYweAotI2RlZmluZSBDRkdfQkNSICAgICAgICAgKEJDUl9FQk18QkNSX0wyQ3xCQ1JfTEVUTXxcCisjZGVmaW5lIENPTkZJR19TWVNfQkNSICAgICAgICAgKEJDUl9FQk18QkNSX0wyQ3xCQ1JfTEVUTXxcCiAJCQkgQkNSX05QUU0wfEJDUl9OUFFNMXxCQ1JfTlBRTTIpCS8qIDYweCBtb2RlICAqLwogI2Vsc2UKICNkZWZpbmUgQkNSX0FQRDAxCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JDUgkJKEJDUl9BUEQwMXxCQ1JfRVRNfEJDUl9MRVRNKQkvKiA4MjYwIG1vZGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCShCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkJLyogODI2MCBtb2RlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA1LDkgKzQwNSw5IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNpZiAwCi0jZGVmaW5lIENGR19TSVVNQ1IgICAgICAoU0lVTUNSX0RQUEMxMHxTSVVNQ1JfQVBQQzEwKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAgICAgIChTSVVNQ1JfRFBQQzEwfFNJVU1DUl9BUFBDMTApCiAjZWxzZQotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9EUFBDMDB8U0lVTUNSX0FQUEMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgICAgICAoU0lVTUNSX0RQUEMwMHxTSVVNQ1JfQVBQQzEwKQogI2VuZGlmCiAKIApAQCAtNDE4LDEwICs0MTgsMTAgQEAKICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtNDMxLDcgKzQzMSw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTQzOSwyMCArNDM5LDIwIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgICAgICAgIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC00NjcsMTcgKzQ2NywxNyBAQAogCiAJLyogSW5pdGlhbGl6ZSBTRFJBTSBvbiBsb2NhbCBidXMKIAkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0xPQ0FMX1NEUkFNCiAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJMHgwODAwMDAwMAkvKiBtYXguIDEyOCBNQgkJKi8KIAogLyogTWluaW11bSBtYXNrIHRvIHNlcGFyYXRlIHByZWxpbWluYXJ5CiAgKiBhZGRyZXNzIHJhbmdlcyBmb3IgQ1NbMDoyXQogICovCi0jZGVmaW5lIENGR19HTE9CQUxfU0RSQU1fTElNSVQJKDUxMjw8MjApCS8qIGxlc3MgdGhhbiA1MTIgTUIgKi8KLSNkZWZpbmUgQ0ZHX0xPQ0FMX1NEUkFNX0xJTUlUCSgxMjg8PDIwKQkvKiBsZXNzIHRoYW4gMTI4IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlUCSg1MTI8PDIwKQkvKiBsZXNzIHRoYW4gNTEyIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9DQUxfU0RSQU1fTElNSVQJKDEyODw8MjApCS8qIGxlc3MgdGhhbiAxMjggTUIgKi8KIAotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHg0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHg0MDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgZm9yIE1vZGUgUmVnaXN0ZXIgU2V0IChNUlMpIGNvbW1hbmQKQEAgLTQ5NCwxNyArNDk0LDE3IEBACiAgKiAgU2V0dGluZ3M6ICAgICAgICAgICAgICB8ICAwICB8ICAwICAgIDAgIHwgIDAgIDEgIDAgIHwgIDAgIHwgICAwICAxICAwICAgIHwKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAxMTAKIAogCiAvKiBCYW5rIDAgLSBGTEFTSAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSBCUnhfUFNfNjQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAgKE1FR19UT19BTShDRkdfRkxBU0hfU0laRSkgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgIHxcCiAJCQkgT1J4R19DU05UICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMSAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19TQ1lfM19DTEsgICAgICAgICAgICAgICAgIHxcCkBAIC01MTcsMjUgKzUxNywyNSBAQAogCiAvKiBCYW5rIDEgLSA2MHggYnVzIFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTUlQgICAgICAgIDB4MjAKLSNkZWZpbmUgQ0ZHX0xTUlQgICAgICAgIDB4MjAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUICAgICAgICAweDIwCisjZGVmaW5lIENPTkZJR19TWVNfTFNSVCAgICAgICAgMHgyMAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjFfOENPTAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjFfOENPTAogCiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDgtY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjFfOENPTCAgICAoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxXzhDT0wgICAgKCh+KENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTcgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzhDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl84Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTVfSVNfQTUgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQlNNQV9BMTJfQTE0ICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BOCAgICAgICAgICAgIHxcCkBAIC01NDksMTIgKzU0OSwxMiBAQAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA5LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IxXzlDT0wgICAgKCh+KENGR19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMV85Q09MICAgICgofihDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E1ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEzKQogCi0jZGVmaW5lIENGR19QU0RNUl85Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOUNPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE2X0lTX0E1ICAgICAgICAgICB8XAogCQkJIFBTRE1SX0JTTUFfQTEyX0ExNCAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTcgICAgICAgICAgICB8XApAQCAtNTY4LDI0ICs1NjgsMjQgQEAKIAogLyogQmFuayAyIC0gTG9jYWwgYnVzIFNEUkFNCiAgKi8KLSNpZmRlZiBDRkdfSU5JVF9MT0NBTF9TRFJBTQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTSAgKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUnhfQkFfTVNLKSB8XAorI2lmZGVmIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0gICgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMzIgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfU0RSQU1fTCAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQlDRkdfT1IyXzhDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCUNPTkZJR19TWVNfT1IyXzhDT0wKIAogI2RlZmluZSBTRFJBTV9CQVNFMl9QUkVMSU0JMHg4MDAwMDAwMAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA4LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IyXzhDT0wgICAgKCh+KENGR19MT0NBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzhDT0wgICAgKCh+KENPTkZJR19TWVNfTE9DQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BOCAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfTFNETVJfOENPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0xTRE1SXzhDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNV9JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExM19BMTUgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E5ICAgICAgICAgICAgfFwKQEAgLTU5OSwxMiArNTk5LDEyIEBACiAKIAkvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMgZm9yIDktY29sdW1uIGNoaXBzCiAJICovCi0jZGVmaW5lIENGR19PUjJfOUNPTCAgICAoKH4oQ0ZHX0xPQ0FMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfOUNPTCAgICAoKH4oQ09ORklHX1NZU19MT0NBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E2ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEzKQogCi0jZGVmaW5lIENGR19MU0RNUl85Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVJfOUNPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE2X0lTX0E1ICAgICAgICAgICB8XAogCQkJIFBTRE1SX0JTTUFfQTEzX0ExNSAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTggICAgICAgICAgICB8XApAQCAtNjE2LDUzICs2MTYsNTMgQEAKIAkJCSBQU0RNUl9XUkNfMkMgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9DTF8yKQogCi0jZW5kaWYgLyogQ0ZHX0lOSVRfTE9DQUxfU0RSQU0gKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0gKi8KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKLSNkZWZpbmUgQ0ZHX0NBTjBfQkFTRQkJMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfQ0FOMV9CQVNFCQkweGMwMDA4MDAwCi0jZGVmaW5lIENGR19GSU9YX0JBU0UJCTB4YzAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0ZET0hNX0JBU0UJCTB4YzAwMTgwMDAKLSNkZWZpbmUgQ0ZHX0VYVFBST01fQkFTRQkweGMyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOMF9CQVNFCQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOMV9CQVNFCQkweGMwMDA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRklPWF9CQVNFCQkweGMwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkRPSE1fQkFTRQkJMHhjMDAxODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VYVFBST01fQkFTRQkweGMyMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0NBTl9TSVpFCQkweDAwMDAwMTAwCi0jZGVmaW5lIENGR19GSU9YX1NJWkUJCTB4MDAwMDAwMjAKLSNkZWZpbmUgQ0ZHX0ZET0hNX1NJWkUJCTB4MDAwMDIwMDAKLSNkZWZpbmUgQ0ZHX0VYVFBST01fQkFOS19TSVpFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fU0laRQkJMHgwMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZJT1hfU0laRQkJMHgwMDAwMDAyMAorI2RlZmluZSBDT05GSUdfU1lTX0ZET0hNX1NJWkUJCTB4MDAwMDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRQUk9NX0JBTktfU0laRQkweDAxMDAwMDAwCiAKICNkZWZpbmUgRVhUX0VFUFJPTV9NQVhfRkxBU0hfQkFOS1MJMHgwMgogCiAvKiBDUzMgLSBDQU4gMAogICovCi0jZGVmaW5lIENGR19DQU4wX0JSMyAgICgoQ0ZHX0NBTjBfQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOMF9CUjMgICAoKENPTkZJR19TWVNfQ0FOMF9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCUJSeF9QU184CQkJfFwKIAkJCUJSeF9NU19VUE1BCQkJfFwKIAkJCUJSeF9WKQogCi0jZGVmaW5lIENGR19DQU4wX09SMyAgIChQMlNaX1RPX0FNKENGR19DQU5fU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU4wX09SMyAgIChQMlNaX1RPX0FNKENPTkZJR19TWVNfQ0FOX1NJWkUpCXxcCiAJCQlPUnhVX0JJCQkJCXxcCiAJCQlPUnhVX0VIVFJfNElETEUpCiAKIC8qIENTNCAtIENBTiAxCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBTjFfQlI0ICAgKChDRkdfQ0FOMV9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU4xX0JSNCAgICgoQ09ORklHX1NZU19DQU4xX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJQlJ4X1BTXzgJCQl8XAogCQkJQlJ4X01TX1VQTUEJCQl8XAogCQkJQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0NBTjFfT1I0ICAgKFAyU1pfVE9fQU0oQ0ZHX0NBTl9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0NBTjFfT1I0ICAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19DQU5fU0laRSkJfFwKIAkJCU9SeFVfQkkJCQkJfFwKIAkJCU9SeFVfRUhUUl80SURMRSkKIAogLyogQ1M1IC0gRXh0ZW5kZWQgUFJPTSAoMTZNQiBvcHRpb25hbCkKICAqLwotI2RlZmluZSBDRkdfRVhUUFJPTV9CUjUgKChDRkdfRVhUUFJPTV9CQVNFICYgQlJ4X0JBX01TSyl8XAorI2RlZmluZSBDT05GSUdfU1lTX0VYVFBST01fQlI1ICgoQ09ORklHX1NZU19FWFRQUk9NX0JBU0UgJiBCUnhfQkFfTVNLKXxcCiAJCQlCUnhfUFNfMzIJCQl8XAogCQkJQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQlCUnhfVikKIAotI2RlZmluZSBDRkdfRVhUUFJPTV9PUjUgKFAyU1pfVE9fQU0oQ0ZHX0VYVFBST01fQkFOS19TSVpFKXxcCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUFJPTV9PUjUgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19FWFRQUk9NX0JBTktfU0laRSl8XAogCQkJT1J4R19DU05UCQkJfFwKIAkJCU9SeEdfQUNTX0RJVjQJCQl8XAogCQkJT1J4R19TQ1lfNV9DTEsJCQl8XApAQCAtNjcwLDEzICs2NzAsMTMgQEAKIAogLyogQ1M2IC0gRXh0ZW5kZWQgUFJPTSAoMTZNQiBvcHRpb25hbCkKICAqLwotI2RlZmluZSBDRkdfRVhUUFJPTV9CUjYgKCgoQ0ZHX0VYVFBST01fQkFTRSArIFwKLQkJCUNGR19FWFRQUk9NX0JBTktfU0laRSkgJiBCUnhfQkFfTVNLKXxcCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUFJPTV9CUjYgKCgoQ09ORklHX1NZU19FWFRQUk9NX0JBU0UgKyBcCisJCQlDT05GSUdfU1lTX0VYVFBST01fQkFOS19TSVpFKSAmIEJSeF9CQV9NU0spfFwKIAkJCUJSeF9QU18zMgkJCXxcCiAJCQlCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCUJSeF9WKQogCi0jZGVmaW5lIENGR19FWFRQUk9NX09SNiAoUDJTWl9UT19BTShDRkdfRVhUUFJPTV9CQU5LX1NJWkUpfFwKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRQUk9NX09SNiAoUDJTWl9UT19BTShDT05GSUdfU1lTX0VYVFBST01fQkFOS19TSVpFKXxcCiAJCQlPUnhHX0NTTlQJCQl8XAogCQkJT1J4R19BQ1NfRElWNAkJCXxcCiAJCQlPUnhHX1NDWV81X0NMSwkJCXxcCkBAIC02ODQsMzcgKzY4NCwzNyBAQAogCiAvKiBDUzcgLSBGUEdBIEZJT1g6IEdsdWUgTG9naWMKICAqLwotI2RlZmluZSBDRkdfRklPWF9CUjcgICAoKENGR19GSU9YX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0ZJT1hfQlI3ICAgKChDT05GSUdfU1lTX0ZJT1hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQlCUnhfUFNfMzIJCQl8XAogCQkJQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQlCUnhfVikKIAotI2RlZmluZSBDRkdfRklPWF9PUjcgICAoUDJTWl9UT19BTShDRkdfRklPWF9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0ZJT1hfT1I3ICAgKFAyU1pfVE9fQU0oQ09ORklHX1NZU19GSU9YX1NJWkUpCXxcCiAJCQlPUnhHX0FDU19ESVY0CQkJfFwKIAkJCU9SeEdfU0NZXzVfQ0xLCQkJfFwKIAkJCU9SeEdfVFJMWCkKIAogLyogQ1M4IC0gRlBHQSBET0ggTWFzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZET0hNX0JSOCAgKChDRkdfRkRPSE1fQkFTRSAmIEJSeF9CQV9NU0spCXxcCisjZGVmaW5lIENPTkZJR19TWVNfRkRPSE1fQlI4ICAoKENPTkZJR19TWVNfRkRPSE1fQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQlCUnhfUFNfMTYJCQl8XAogCQkJQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQlCUnhfVikKIAotI2RlZmluZSBDRkdfRkRPSE1fT1I4ICAoUDJTWl9UT19BTShDRkdfRkRPSE1fU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19GRE9ITV9PUjggIChQMlNaX1RPX0FNKENPTkZJR19TWVNfRkRPSE1fU0laRSkJfFwKIAkJCU9SeEdfQUNTX0RJVjQJCQl8XAogCQkJT1J4R19TQ1lfNV9DTEsJCQl8XAogCQkJT1J4R19UUkxYKQogCiAKIC8qIEZQR0EgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfUERfRklPWF9QUk9HCSgxIDw8ICgzMS0gNSkpCS8qIFBEICA1ICovCi0jZGVmaW5lIENGR19QRF9GSU9YX0RPTkUJKDEgPDwgKDMxLTI4KSkJLyogUEQgMjggKi8KLSNkZWZpbmUgQ0ZHX1BEX0ZJT1hfSU5JVAkoMSA8PCAoMzEtMjkpKQkvKiBQRCAyOSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BEX0ZJT1hfUFJPRwkoMSA8PCAoMzEtIDUpKQkvKiBQRCAgNSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BEX0ZJT1hfRE9ORQkoMSA8PCAoMzEtMjgpKQkvKiBQRCAyOCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BEX0ZJT1hfSU5JVAkoMSA8PCAoMzEtMjkpKQkvKiBQRCAyOSAqLwogCi0jZGVmaW5lIENGR19QRF9GRE9ITV9QUk9HCSgxIDw8ICgzMS0gNCkpCS8qIFBEICA0ICovCi0jZGVmaW5lIENGR19QRF9GRE9ITV9ET05FCSgxIDw8ICgzMS0yNikpCS8qIFBEIDI2ICovCi0jZGVmaW5lIENGR19QRF9GRE9ITV9JTklUCSgxIDw8ICgzMS0yNykpCS8qIFBEIDI3ICovCisjZGVmaW5lIENPTkZJR19TWVNfUERfRkRPSE1fUFJPRwkoMSA8PCAoMzEtIDQpKQkvKiBQRCAgNCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BEX0ZET0hNX0RPTkUJKDEgPDwgKDMxLTI2KSkJLyogUEQgMjYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRF9GRE9ITV9JTklUCSgxIDw8ICgzMS0yNykpCS8qIFBEIDI3ICovCiAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9TTDgyNDUuaCBiL2luY2x1ZGUvY29uZmlncy9TTDgyNDUuaAppbmRleCA4OWQxNDYxLi44NzZkODgyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvU0w4MjQ1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1NMODI0NS5oCkBAIC00Nyw3ICs0Nyw3IEBACiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKIApAQCAtNzQsNzAgKzc0LDcwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jdW5kZWYgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjdW5kZWYgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkzMgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDA0MDAwMDAJLyogRGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTMyCQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgwMDQwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UwX1BSRUxJTQkweEZGODAwMDAwCS8qIEZMQVNIIGJhbmsgb24gUkNTIzAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19GTEFTSF9CQVNFMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTCQl7IENGR19GTEFTSF9CQVNFMF9QUkVMSU0gfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTQkweEZGODAwMDAwCS8qIEZMQVNIIGJhbmsgb24gUkNTIzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTCQl7IENPTkZJR19TWVNfRkxBU0hfQkFTRTBfUFJFTElNIH0KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJICAgIDB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJICAgIDB4RkMwMDAwMDAKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkgICAgMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAogCS8qIE1heGltdW0gYW1vdW50IG9mIFJBTS4KIAkgKi8KLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRSAgICAweDEwMDAwMDAwCS8qIDAgLi4gMjU2IE1CIG9mIChTKURSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgxMDAwMDAwMAkvKiAwIC4uIDI1NiBNQiBvZiAoUylEUkFNICovCiAKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLSN1bmRlZiBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfRVVNQl9BRERSICsgMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ1MDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjgKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTQ3LDQwICsxNDcsNDAgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDY2NjY2NjY2CS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwgKi8KLSNkZWZpbmUgQ0ZHX0haCQkgICAgIDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAxMDAwCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMS4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JPTU5BTAkgICAgMAotI2RlZmluZSBDRkdfUk9NRkFMCSAgICA3Ci0jZGVmaW5lIENGR19CQU5LMF9ST1cgICAgICAgMgorI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkgICAgNworI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1JPVyAgICAgICAyCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMi4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRklOVAkgICAgMHg0MDAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJRklYTUU6IHdhcyAwdDQzMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQJICAgIDB4NDAwCSAgICAvKiBSZWZyZXNoIGludGVydmFsCUZJWE1FOiB3YXMgMHQ0MzAJCSovCiAKIAkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UuIEJpdHMgb2YgdGhpcyB2YWx1ZSBnbyB0byBNQ0NSMyBhbmQgTUNDUjQuCiAJICovCi0jZGVmaW5lIENGR19CU1RPUFJFCSAgICAxOTIKKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCSAgICAxOTIKIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLgogCSAqLwotI2RlZmluZSBDRkdfUkVGUkVDCSAgICAyCSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCSAgICAyCSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsICovCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSNC4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCSAgICAyCSAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCSAgICA1CSAgICAvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkgICAgMyAgICAgICAvKiBGSVhNRSB3YXMgMiAqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQgIDMJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeSAqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUJKi8KLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAxCi0jZGVmaW5lIENGR19FWFRST00JICAgIDEKLSNkZWZpbmUgQ0ZHX1JFR0RJTU0JICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkgICAgMgkgICAgLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJICAgIDUJICAgIC8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkgICAgMyAgICAgICAvKiBGSVhNRSB3YXMgMiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUICAzCSAgICAvKiBTRE1PREUgQ0FTIGxhdGFuY3kgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkgICAgMAkgICAgLyogU0RNT0RFIHdyYXAgdHlwZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAxCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUk9NCSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfUkVHRElNTQkgICAgMAogCi0jZGVmaW5lIENGR19PRENSCQkweGZmCS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcywJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCQkweGZmCS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcywJKi8KIAkJCQkJLyogc2VlIDgyNDUgYm9vayBmb3IgYml0IGRlZmluaXRpb25zCSovCi0jZGVmaW5lIENGR19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0NSByZXRhaW5zIHRoZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQ1IHJldGFpbnMgdGhlCSovCiAJCQkJCS8qIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeQkqLwogCQkJCQkvKiBzZWUgODI0NSBib29rIGZvciBkZXRhaWxzCQkqLwogCkBAIC0xOTEsNjcgKzE5MSw2NyBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDAgYm9vay4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECSAgICAoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUgICAgMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkgICAgKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFICAgIDAKIAotI2RlZmluZSBDRkdfSUJBVDBMICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDNMICAoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAgKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgICgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVSAgKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDBMICBDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUgIENGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVICBDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwgIENGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAgQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMICBDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UgIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgIENPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVICBDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgIENPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMICBDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAgQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgIENPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVICBDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSAgICAoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkzNQkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzNQkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCiAKIAkvKiBXYXJpbmluZzogZW52aXJvbm1lbnQgaXMgbm90IEVNQkVEREVEIGluIHRoZSBVLUJvb3QgY29kZS4KQEAgLTI2NSw5ICsyNjUsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvU004NTAuaCBiL2luY2x1ZGUvY29uZmlncy9TTTg1MC5oCmluZGV4IGM4OTZiNTguLjRjNDY5ZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9TTTg1MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9TTTg1MC5oCkBAIC02MCw3ICs2MCw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC05MywyNSArOTMsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKSAmJiBkZWZpbmVkKEtHREJfREVCVUcpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMjEsNTAgKzEyMSw1MCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKICNpZiBkZWZpbmVkKERFQlVHKQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTc1LDE2ICsxNzUsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTk0LDEwICsxOTQsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwNiw5ICsyMDYsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZiBDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTYsMjAgKzIxNiwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI0MCwxMCArMjQwLDEwIEBACiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KICNpZmRlZiBUUU04eHhMXzgwTUh6CS8qIGZvciA4MCBNSHosIHdlIHVzZSBhIDE2IE1IeiBjbG9jayAqIDUgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKCAoNS0xKTw8UExQUkNSX01GX1NISUZUIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUICkKICNlbHNlCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKICNlbmRpZgkvKiBUUU04eHhMXzgwTUh6ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1NCwxMiArMjU0LDEyIEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAjaWZkZWYgVFFNOHh4TF84ME1IegkvKiBmb3IgODAgTUh6LCB3ZSB1c2UgYSAxNiBNSHogY2xvY2sgKiA1ICovCi0jZGVmaW5lIENGR19TQ0NSCSgvKiBTQ0NSX1RCUyAgfCAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMgIHwgKi8gXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAjZWxzZQkJCS8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX1RCUyAgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTI3MCwyMSArMjcwLDIxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjk5LDIwICsyOTksMjAgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzVfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzIzLDE5ICszMjMsMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUgQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtMzQ0LDI2ICszNDQsMjYgQEAKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTcJCS8qIHN0YXJ0IHdpdGggZGl2aWRlciBmb3IgMTAwIE1IegkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1NNTjQyLmggYi9pbmNsdWRlL2NvbmZpZ3MvU01ONDIuaAppbmRleCA0NWZlMTRiLi40NWU2YTU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvU01ONDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvU01ONDIuaApAQCAtNDksOCArNDksOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC04MCwxMyArODAsMTMgQEAKICN1bmRlZglDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIC8qIHRoaXMgd291bGQgYmUgMHhBRSBpZiBFMCwgRTEgYW5kIEUyIHdlcmUgcHVsbGVkIGhpZ2ggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhBMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCSgweEEwID4+IDEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDIgLyogMTYgYml0IGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNiAvKiA2NCBieXRlcyBwZXIgd3JpdGUgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDIwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweEEwID4+IDEpCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyIC8qIDE2IGJpdCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA2IC8qIDY0IGJ5dGVzIHBlciB3cml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDIwCiAvKiBub3QgdXNlZCBidXQgcmVxdWlyZWQgYnkgZGV2aWNlcy5jICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQgMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQgMTAwMDAKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogLyoKQEAgLTEyOSwyNiArMTI5LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIlNNTjQyICMgIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJTTU40MiAjICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODE4MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODMwMDAwMDAJLyogMjQgTUIgaW4gU1JBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg4MTgwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODMwMDAwMDAJLyogMjQgTUIgaW4gU1JBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAJCQkJCQkvKiBmb3IgdUNsaW51eCBpbWcgaXMgaGVyZSovCiAKLSNkZWZpbmUgQ0ZHX1NZU19DTEtfRlJFUQk1ODk4MjQwMAkvKiBIeiAqLwotI2RlZmluZQlDRkdfSFoJCQkyMDQ4CQkvKiBkZWNyZW1lbnRlciBmcmVxIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfU1lTX0NMS19GUkVRCTU4OTgyNDAwCS8qIEh6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkyMDQ4CQkvKiBkZWNyZW1lbnRlciBmcmVxIGluIEh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE3NywyMyArMTc3LDIzIEBACiAgKi8KIAogLyoKLSAqIFRoZSBmaXJzdCBlbnRyeSBpbiBDRkdfRkxBU0hfQkFOS1NfTElTVCBpcyBhIGR1bW15LCBidXQgaXQgbXVzdCBiZSBwcmVzZW50LgorICogVGhlIGZpcnN0IGVudHJ5IGluIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCBpcyBhIGR1bW15LCBidXQgaXQgbXVzdCBiZSBwcmVzZW50LgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgMCwgUEhZU19GTEFTSF8xIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkJMHg1NTUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkJMHgyQUEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTYzODQJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgMCwgUEhZU19GTEFTSF8xIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJCTB4NTU1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCQkweDJBQQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTYzODQJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4ICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAvKiBUaGUgRW52aXJvbm1lbnQgU2VjdG9yIGlzIGluIHRoZSBDUFUtaW50ZXJuYWwgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkwCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDNDMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMCAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1NQRDgyM1RTLmggYi9pbmNsdWRlL2NvbmZpZ3MvU1BEODIzVFMuaAppbmRleCA5MjlhNGI2Li45MjAxMzQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvU1BEODIzVFMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvU1BEODIzVFMuaApAQCAtNTUsNyArNTUsNyBAQAogCQkJCSJuZnNhZGRycz0xMC4wLjAuOTk6MTAuMC4wLjIiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTk0LDI5ICs5NCwyOSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTVNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLwogCi0jZGVmaW5lIENGR19QQ19JREVfUkVTRVQJKCh1c2hvcnQpMHgwMDA4KQkvKiBQQyAxMgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDX0lERV9SRVNFVAkoKHVzaG9ydCkweDAwMDgpCS8qIFBDIDEyCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMjYsNDYgKzEyNiw0NiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwIC8qIHdhczogMHhGRjAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAgLyogd2FzOiAweEZGMDAwMDAwICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAogI2lmZGVmCURFQlVHCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkwCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMAkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE3Myw5ICsxNzMsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODUsMTAgKzE4NSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTk3LDIxICsxOTcsMjEgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KIC8qIDB4MDAwMDAwNDAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAwIHwgU0lVTUNSX0dCNUUpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDAgfCBTSVVNQ1JfR0I1RSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTIyMCw3ICsyMjAsNyBAQAogICogaW50ZXJydXB0IHN0YXR1cyBiaXQsIHNldCBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yICEKICAqLwogLyogMHgwMGIwYzBjMCAqLwotI2RlZmluZSBDRkdfUExQUkNSCQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAogCQkoCSgxMSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJCQlcCiAJCQlQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCAvKlBMUFJDUl9UTUlTVHwqLyBcCiAJCQkvKlBMUFJDUl9DU1JDfCovIFBMUFJDUl9MUE1fTk9STUFMIHwJCVwKQEAgLTIzNSw3ICsyMzUsNyBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogLyogMHgwMTgwMDAxNCAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMAl8IC8qU0NDUl9UQlN8Ki8JCVwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwCXwgLypTQ0NSX1RCU3wqLwkJXAogCQkJIFNDQ1JfUlRESVYJfCAgIFNDQ1JfUlRTRUwJICB8CVwKIAkJCSAvKlNDQ1JfQ1JRRU58Ki8gIC8qU0NDUl9QUlFFTnwqLwlcCiAJCQkgU0NDUl9FQkRGMDAJfCAgIFNDQ1JfREZTWU5DMDAgfAlcCkBAIC0yNDgsNyArMjQ4LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogLyogMHgwMEMzICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1Niw0NiArMjU2LDQ2IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qIFRJTUVQPTIgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgMHgwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAweDAyMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1EUyAtIFJJU0MgTWljcm9jb2RlIERldmVsb3BtZW50IFN1cHBvcnQgQ29udHJvbCBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STURTIDAKKyNkZWZpbmUgQ09ORklHX1NZU19STURTIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0RTUiAtIFNETUEgU3RhdHVzIFJlZ2lzdGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEU1IgKCh1X2NoYXIpMHg4MykKKyNkZWZpbmUgQ09ORklHX1NZU19TRFNSICgodV9jaGFyKTB4ODMpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNETVIgLSBTRE1BIE1hc2sgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0RNUiAoKHVfY2hhcikweDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NETVIgKCh1X2NoYXIpMHgwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqIEludGVycnVwdCBMZXZlbHMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQ1BNX0lOVEVSUlVQVAkxMwkvKiBTSVVfTEVWRUw2CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNX0lOVEVSUlVQVAkxMwkvKiBTSVVfTEVWRUw2CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCkBAIC0zMDUsMjMgKzMwNSwyMyBAQAogI2RlZmluZSBDT05GSUdfSURFX0xFRAkJMQkvKiBMRUQgICBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMgkvKiBtYXguIDIgSURFIGJ1c3NlcwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJKENGR19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkyCS8qIG1heC4gMiBJREUgYnVzc2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhGRTEwMDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUCTB4MEMwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHhGRTEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJMHgwQzAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDAwODAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTB4MDA4MAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUiAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMzcsMjIgKzMzNywyMiBAQAogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCiAvKiBFUFJPTXMgYXJlIDUxMmtiICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHhGRkY4MDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZGRjgwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweEZGRjgwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZGRjgwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDExLCBUUkxYID0gMCwgQ1NOVCA9IDEsIFNDWSA9IDUsIEVIVFIgPSAxCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKC8qIE9SX0NTTlRfU0FNIHwgKi8gT1JfQUNTX0RJVjQgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKC8qIE9SX0NTTlRfU0FNIHwgKi8gT1JfQUNTX0RJVjQgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzVfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQogLyogMTYgYml0LCBiYW5rIHZhbGlkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCiAvKiAxNiBiaXQsIGJhbmsgdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qCiAgKiBCUjItNSBhbmQgT1IyLTUgKFNSQU0vU0RSQU0vUEVSOC9TSEFSQykKQEAgLTM3Myw0NCArMzczLDQ0IEBACiAKIC8qIFNSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NSQU0JMHgwMDAwMEQ0MgkvKiBTUkFNLVRpbWluZyAqLwotI2RlZmluZSBDRkdfT1IyIChTUkFNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMiAoKFNSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TUkFNCTB4MDAwMDBENDIJLyogU1JBTS1UaW1pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjIgKFNSQU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjIgKChTUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAJLyogU0RSQU0tVGltaW5nICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCShTRFJBTV9QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCS8qIFNEUkFNLVRpbWluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX1BFUjgJMHgwMDAwMEYzMgkvKiBQRVI4LVRpbWluZyAqLwotI2RlZmluZSBDRkdfT1I0IChQRVI4X09SX0FNIHwgQ0ZHX09SX1RJTUlOR19QRVI4ICkKLSNkZWZpbmUgQ0ZHX0JSNCAoKFBFUjhfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1BFUjgJMHgwMDAwMEYzMgkvKiBQRVI4LVRpbWluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNCAoUEVSOF9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1BFUjggKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNCAoKFBFUjhfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TSEFSQwkweDAwMDAwNzAwCS8qIFNIQVJDLVRpbWluZyAqLwotI2RlZmluZSBDRkdfT1I1IChTSEFSQ19PUl9BTSB8IENGR19PUl9USU1JTkdfU0hBUkMgKQotI2RlZmluZSBDRkdfQlI1ICgoU0hBUkNfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0hBUkMJMHgwMDAwMDcwMAkvKiBTSEFSQy1UaW1pbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjUgKFNIQVJDX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0hBUkMgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNSAoKFNIQVJDX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9NU19VUE1BIHwgQlJfViApCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQk1SX1BUQgkyMDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SX1BUQgkyMDQKIAogLyogcmVmcmVzaCByYXRlIDE1LjYgdXMgKD0gNjQgbXMgLyA0SyA9IDYyLjQgLyBxdWFkIGJ1cnN0cykgZm9yIDw9IDEyOCBNQml0CSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1CTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01CTVJfOENPTAkoKENGR19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01CTVJfOENPTAkoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpICB8IFwKIAkJCSBNQk1SX0FNQl9UWVBFXzAgfCBNQk1SX0RTQl8xX0NZQ0wgfCBNQk1SX0cwQ0xCX0ExMSB8CVwKIAkJCSBNQk1SX1JMRkJfMVgJIHwgTUJNUl9XTEZCXzFYCSAgIHwgTUJNUl9UTEZCXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvU1gxLmggYi9pbmNsdWRlL2NvbmZpZ3MvU1gxLmgKaW5kZXggZmY0ZTFhMC4uZmQxYTNiZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1NYMS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9TWDEuaApAQCAtNDYsOCArNDYsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC01NiwxMSArNTYsMTEgQEAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJKC00KQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCShDT05GSUdfU1lTX0NMS19GUkVRKQkvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJCS8qIHVhcnQxLCBibHVldG9vdGggdWFydCBvbiBoZWxlbiAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJKC00KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkoQ09ORklHX1NZU19DTEtfRlJFUSkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhmZmZiMDAwMAkJLyogdWFydDEsIGJsdWV0b290aCB1YXJ0IG9uIGhlbGVuICovCiAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgpAQCAtODIsOCArODIsOCBAQAogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMQogI2RlZmluZSBDT05GSUdfRFJJVkVSX09NQVAxNTEwX0kyQwogCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCkBAIC05MSw3ICs5MSw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIAogLyoKQEAgLTEyMSwyNiArMTIxLDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlNYMSMgIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJTWDEjICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIFRoZSAxNTEwIGhhcyAzIHRpbWVycywgdGhleSBjYW4gYmUgZHJpdmVuIGJ5IHRoZSBSZWZDbGsgKDEyTWh6KSBvciBieSBEUExMMS4KICAqIFRoaXMgdGltZSBpcyBmdXJ0aGVyIHN1YmRpdmlkZWQgYnkgYSBsb2NhbCBkaXZpc29yLgogICovCi0jZGVmaW5lIENGR19USU1FUkJBU0UJMHhGRkZFQzUwMAkgICAgLyogdXNlIHRpbWVyIDEgKi8KLSNkZWZpbmUgQ0ZHX1BWVAkJNwkJICAgIC8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLwotI2RlZmluZSBDRkdfSFoJCQkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENGR19QVlQpKQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkweEZGRkVDNTAwCSAgICAvKiB1c2UgdGltZXIgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BWVAkJNwkJICAgIC8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDT05GSUdfU1lTX1BWVCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNjMsMzYgKzE2MywzNiBAQAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIXzIJCTB4MDQwMDAwMDAgLyogRmxhc2ggQmFuayAjMiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJKDE2IDw8IDEwKSAvKiAxNiBNQiAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkoMTI4KjEwMjQpIC8qIFNpemUgb2YgYSBzZWN0b3IgKDEyOGtCKSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBQSFlTX0ZMQVNIX1NFQ1RfU0laRSkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCS8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJUEhZU19GTEFTSF9TRUNUX1NJWkUJLyogUmVzZXJ2ZSAxIHNlY3RvciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0laRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgUEhZU19GTEFTSF9TRUNUX1NJWkUpIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCVBIWVNfRkxBU0hfU0VDVF9TSVpFCS8qIFJlc2VydmUgMSBzZWN0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBQSFlTX0ZMQVNIX1NJWkUgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBkcml2ZXIgc2V0dXAKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIGRyaXZlcnMvbXRkL2NmaV9mbGFzaC5jICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogVXNlIGhhcmR3YXJlIHNlY3RvciBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIFVzZSBidWZmZXJlZCB3cml0ZXMgKH4xMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlQSFlTX0ZMQVNIX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19FTlZfU0VDVF9TSVpFIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCSggQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiApIC8qIEVudmlyb25tZW50IGFmdGVyIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJKCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gKSAvKiBFbnZpcm9ubWVudCBhZnRlciBNb25pdG9yICovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECTB4MjAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9TWE5JODU1VC5oIGIvaW5jbHVkZS9jb25maWdzL1NYTkk4NTVULmgKaW5kZXggMGNjNGZlNC4uN2ZjNDU1YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1NYTkk4NTVULmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1NYTkk4NTVULmgKQEAgLTk0LDcgKzk0LDcgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9pb3BvcnQuaW9wX3BhZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDgwMDAJCS8qIExFRCAwIGlzIG9uIFBBLjAgKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSgoQ0ZHX0haIC8gMikgLyA1KQkvKiBibGluayBhdCA1IEh6ICovCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoKENPTkZJR19TWVNfSFogLyAyKSAvIDUpCS8qIGJsaW5rIGF0IDUgSHogKi8KICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkwCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAwCSovCkBAIC0xMzYsMTUgKzEzNiwxNSBAQAogCQkJZWxzZSAgICBpbW1yLT5pbV9jcG0uY3BfcGJkYXQgJj0gflBCX1NDTAogI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KIAotIyBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNTAwMDAKLSMgZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKLSMgZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBBdG1lbCAyNEM2NAkJCSovCi0jIGRlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIHR3byBieXRlIGFkZHJlc3MJCSovCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEF0bWVsIDI0QzY0CQkJKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIHR3byBieXRlIGFkZHJlc3MJCSovCiAKICNkZWZpbmUJQ09ORklHX0ZFQ19FTkVUCQkxCS8qIHVzZSBGRUMgZXRoZXJuZXQgICovCiAjZGVmaW5lCUNPTkZJR19NSUkJCTEKIAotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAKIAogLyoKQEAgLTE2Nyw3ICsxNjcsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX0RBVEUKIAogCi0jZGVmaW5lIENGR19KRkZTMl9TT1JUX0ZSQUdNRU5UUworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCkBAIC0xOTcsNyArMTk3LDcgQEAKIC8qIE5BTkQgZmxhc2ggc3VwcG9ydCAqLwogI2RlZmluZSBDT05GSUdfTkFORF9MRUdBQ1kKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX0VDQ19KRkZTMgotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkqLwogI2RlZmluZSBTRUNUT1JTSVpFIDUxMgogCiAjZGVmaW5lIEFERFJfQ09MVU1OIDEKQEAgLTIxMCw3ICsyMTAsNyBAQAogCiAvKiBERkJVU1kgaXMgYXZhaWxhYmxlIG9uIFBvcnQgQywgYml0IDEyOyAwIGlmIGJ1c3kgKi8KICNkZWZpbmUgTkFORF9XQUlUX1JFQURZKG5hbmQpCVwKLQl3aGlsZSAoISgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQgJiAweDAwMDgpKTsKKwl3aGlsZSAoISgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0ICYgMHgwMDA4KSk7CiAjZGVmaW5lIFdSSVRFX05BTkRfQ09NTUFORChkLCBhZHIpIFdSSVRFX05BTkQoKGQpLCAoYWRyKSkKICNkZWZpbmUgV1JJVEVfTkFORF9BRERSRVNTKGQsIGFkcikgV1JJVEVfTkFORCgoZCksIChhZHIpKQogI2RlZmluZSBXUklURV9OQU5EKGQsIGFkcikJXApAQCAtMjM2LDI1ICsyMzYsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBhIGxpdHRsZSBtZW1vcnkgKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+IgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIGEgbGl0dGxlIG1lbW9yeSAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+IgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNDAwMDAwCS8qIDEgLi4uIDQgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAKIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTI2NCw2NSArMjY0LDY1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lNTVJfU0laRQkJKCh1aW50KSg2NCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SX1NJWkUJCSgodWludCkoNjQgKiAxMDI0KSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZQlDRkdfU1JBTV9CQVNFCQkweEY0MDAwMDAwCi0jZGVmaW5lCUNGR19TUkFNX1NJWkUJCTB4MDQwMDAwMDAJLyogYXV0b3NpemUgdXAgdG8gNjRNYnl0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4RjQwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TUkFNX1NJWkUJCTB4MDQwMDAwMDAJLyogYXV0b3NpemUgdXAgdG8gNjRNYnl0ZSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoKHVpbnQpKDggKiAxMDI0ICogMTAyNCkpCS8qIG1heCA4TWJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKCh1aW50KSg4ICogMTAyNCAqIDEwMjQpKQkvKiBtYXggOE1ieXRlICovCiAKLSNkZWZpbmUgQ0ZHX0RGTEFTSF9CQVNFCQkweGZmMDIwMDAwIC8qIERpc2tPbkNoaXAgb3IgTkFORCBGTEFTSCAqLwotI2RlZmluZSBDRkdfREZMQVNIX1NJWkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERkxBU0hfQkFTRQkJMHhmZjAyMDAwMCAvKiBEaXNrT25DaGlwIG9yIE5BTkQgRkxBU0ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERkxBU0hfU0laRQkJMHgwMDAxMDAwMAogCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCTB4RkYxMDAwMDAJLyogWGlsaW54IEZQR0EgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJPRwkJMHhGRjEzMDAwMAkvKiBQcm9ncmFtbWluZyBhZGRyZXNzICovCi0jZGVmaW5lIENGR19GUEdBX1NJWkUJCTB4MDAwNDAwMDAJLyogMjU2S2lCIHVzYWJsZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkJMHhGRjEwMDAwMAkvKiBYaWxpbnggRlBHQSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJPRwkJMHhGRjEzMDAwMAkvKiBQcm9ncmFtbWluZyBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TSVpFCQkweDAwMDQwMDAwCS8qIDI1NktpQiB1c2FibGUgKi8KIAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCiAvKiBJbnRlbCAyOEY2NDAgaGFzIDEzNSwgMTI3IDY0SyBzZWN0b3JzIGluIDhNQiwgKyA4IG1vcmUgZm9yIDhLIGJvb3QgYmxvY2tzLgogICogQU1EIDI5TFY2NDEgaGFzIDEyOCA2NEsgc2VjdG9ycyBpbiA4TUIKICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM1CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzMyLDEwICszMzIsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM0MywyOCArMzQzLDI4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJMTUtMzAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHNldCB0aGUgUExMLCB0aGUgbG93LXBvd2VyIG1vZGVzIGFuZCB0aGUgcmVzZXQgY29udHJvbCAoMTUtMjkpCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKChNUEM4WFhfRkFDVC0xKSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJXAogCQkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzc0LDE0ICszNzQsMTQgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX1RCU3xTQ0NSX0NPTTAwfFNDQ1JfREZTWU5DMDB8U0NDUl9ERkJSRzAwfFNDQ1JfREZOTDAwMHxTQ0NSX0RGTkgwMDB8U0NDUl9ERkxDRDAwMHxTQ0NSX0RGQUxDRDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTfFNDQ1JfQ09NMDB8U0NDUl9ERlNZTkMwMHxTQ0NSX0RGQlJHMDB8U0NDUl9ERk5MMDAwfFNDQ1JfREZOSDAwMHxTQ0NSX0RGTENEMDAwfFNDQ1JfREZBTENEMDApCiAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCQkwCiAKIC8qIEJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgODYwIHN0YXJ0cyB1cCBhbmQgYXNzaWducyBDUzAgdGhlCiAgKiBlbnRpcmUgYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0byBzZXQgdGhlIG1lbW9yeSBjb250cm9sbGVyCkBAIC0zOTgsNDcgKzM5OCw0NyBAQAogICogQlIwIGFuZCBPUjAgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUjBfQU0JMHhGQzAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1IwX0FNCTB4RkMwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTAsIFRSTFggPSAxLCBDU05UID0gMSwgU0NZID0gMywgRUhUUiA9IDAJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjQgfCBPUl9CSSB8IE9SX1NDWV8zX0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9BQ1NfRElWNCB8IE9SX0JJIHwgT1JfU0NZXzNfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUjBfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SMF9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQogCiAjZGVmaW5lIENPTkZJR19GTEFTSF8xNkJJVAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKENGR19GTEFTSF9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qIG5lZWQgdG8gbG9jay91bmxvY2sgc2VjdG9ycyBpbiBoYXJkd2FyZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCS8qIG5lZWQgdG8gbG9jay91bmxvY2sgc2VjdG9ycyBpbiBoYXJkd2FyZSAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQlIxIGFuZCBPUjEgKEZQR0EpCiAgKiBUaGVzZSBwcmVsaW1pbmFyeSB2YWx1ZXMgYXJlIGFsc28gdGhlIGZpbmFsIHZhbHVlcy4KICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZQR0EgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GUEdBIFwKIAkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfRElWMiB8IE9SX0JJIHwgT1JfU0NZXzRfQ0xLIHwgT1JfRUhUUiB8IE9SX1RSTFgpCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoQ0ZHX0ZQR0FfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCSgoKC1DRkdfRlBHQV9TSVpFKSAmIE9SX0FNX01TSykgfCBDRkdfT1JfVElNSU5HX0ZQR0EpCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKENPTkZJR19TWVNfRlBHQV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCSgoKC1DT05GSUdfU1lTX0ZQR0FfU0laRSkgJiBPUl9BTV9NU0spIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRlBHQSkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEJSNCBhbmQgT1I0IChkYXRhIGZsYXNoKQogICogVGhlc2UgcHJlbGltaW5hcnkgdmFsdWVzIGFyZSBhbHNvIHRoZSBmaW5hbCB2YWx1ZXMuCiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19ERkxBU0ggXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19ERkxBU0ggXAogCShPUl9DU05UX1NBTSB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfMl9DTEsgfCBPUl9FSFRSIHwgT1JfVFJMWCkKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JKChDRkdfREZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkoKCgtQ0ZHX0RGTEFTSF9TSVpFKSAmIE9SX0FNX01TSykgfCBDRkdfT1JfVElNSU5HX0RGTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoQ09ORklHX1NZU19ERkxBU0hfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoKCgtQ09ORklHX1NZU19ERkxBU0hfU0laRSkgJiBPUl9BTV9NU0spIHwgQ09ORklHX1NZU19PUl9USU1JTkdfREZMQVNIKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQlI1LzYgYW5kIE9SNS82IChEdWFsIFVBUlQpCiAgKi8KLSNkZWZpbmUgQ0ZHX0RVQVJUX1NJWkUJMHg4MDAwCS8qIDMySyB3aW5kb3csIG9ubHkgdXNlcyA4IGJ5dGVzICovCi0jZGVmaW5lIENGR19EVUFSVEFfQkFTRQkweGZmMDEwMDAwCi0jZGVmaW5lIENGR19EVUFSVEJfQkFTRQkweGZmMDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRfU0laRQkweDgwMDAJLyogMzJLIHdpbmRvdywgb25seSB1c2VzIDggYnl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVEFfQkFTRQkweGZmMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFVBUlRCX0JBU0UJMHhmZjAxODAwMAogCiAjZGVmaW5lIERVQVJUX01CTVIJMAotI2RlZmluZSBEVUFSVF9PUl9WQUxVRSAoT1JNQVNLKENGR19EVUFSVF9TSVpFKSB8IE9SX0c1TFN8IE9SX0JJKQorI2RlZmluZSBEVUFSVF9PUl9WQUxVRSAoT1JNQVNLKENPTkZJR19TWVNfRFVBUlRfU0laRSkgfCBPUl9HNUxTfCBPUl9CSSkKICNkZWZpbmUgRFVBUlRfQlJfVkFMVUUgKEJSX01TX1VQTUIgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgRFVBUlRfQlI1X1ZBTFVFICgoQ0ZHX0RVQVJUQV9CQVNFICYgQlJfQkFfTVNLICkgfCBEVUFSVF9CUl9WQUxVRSkKLSNkZWZpbmUgRFVBUlRfQlI2X1ZBTFVFICgoQ0ZHX0RVQVJUQl9CQVNFICYgQlJfQkFfTVNLICkgfCBEVUFSVF9CUl9WQUxVRSkKKyNkZWZpbmUgRFVBUlRfQlI1X1ZBTFVFICgoQ09ORklHX1NZU19EVUFSVEFfQkFTRSAmIEJSX0JBX01TSyApIHwgRFVBUlRfQlJfVkFMVUUpCisjZGVmaW5lIERVQVJUX0JSNl9WQUxVRSAoKENPTkZJR19TWVNfRFVBUlRCX0JBU0UgJiBCUl9CQV9NU0sgKSB8IERVQVJUX0JSX1ZBTFVFKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9TYW5kcG9pbnQ4MjQwLmggYi9pbmNsdWRlL2NvbmZpZ3MvU2FuZHBvaW50ODI0MC5oCmluZGV4IDk4OThhOGIuLjEyNWI5YTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9TYW5kcG9pbnQ4MjQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1NhbmRwb2ludDgyNDAuaApAQCAtMTEwLDE0ICsxMTAsMTQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTI5LDcgKzEyOSw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCQkvKiBNdWx0aSBldGhlcm5ldCBjYXJkcyBzdXBwb3J0ICovCiAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogCiAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHg4MDAwMDAwMAogI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUgkweDgwMDAwMDAwCkBAIC0xNDAsNTggKzE0MCw1OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDEwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCiAjaWYgZGVmaW5lZCAoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgwMDA5MDAwMAotI2RlZmluZSBDRkdfUkFNQk9PVAkJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDAwMDkwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCi0vKiNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgMjU2Ki8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CisvKiNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgIDI1NiovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAKICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkoNTEyICogMTAyNCkJLyogc2FuZHBvaW50IGhhcyB0aW55IGVlcHJvbQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSg1MTIgKiAxMDI0KQkvKiBzYW5kcG9pbnQgaGFzIHRpbnkgZWVwcm9tCSovCiAjZWxzZQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKDEwMjQgKiAxMDI0KQkvKiBVbml0eSBoYXMgb25ib2FyZCAxTUJ5dGUgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoMTAyNCAqIDEwMjQpCS8qIFVuaXR5IGhhcyBvbmJvYXJkIDFNQnl0ZSBmbGFzaCAqLwogI2VuZGlmCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgwMDAwNDAwMAkvKiBPZmZzZXQgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgwMDAwMjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwNDAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkJMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19JU0FfTUVNCQkweEZEMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU8JCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNCQkweEZEMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPCQkweEZFMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JBTkdFX0JBU0UJMHhGRjAwMDAwMAkvKiBmbGFzaCBtZW1vcnkgYWRkcmVzcyByYW5nZQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkFOR0VfU0laRQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkFOR0VfQkFTRQkweEZGMDAwMDAwCS8qIGZsYXNoIG1lbW9yeSBhZGRyZXNzIHJhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkFOR0VfU0laRQkweDAxMDAwMDAwCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweEZGRjAwMDAwCS8qIHNhbmRwb2ludCBmbGFzaAkJKi8KICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTB4RkYwMDAwMDAJLyogUE1DIG9uYm9hcmQgZmxhc2gJCSovCiAKQEAgLTIwNCw4ICsyMDQsOCBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCiAjdW5kZWYgIENPTkZJR19TT0ZUX0kyQwkJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogI2Vycm9yICJTb2Z0IEkyQyBpcyBub3QgY29uZmlndXJlZCBwcm9wZXJseS4gIFBsZWFzZSByZXZpZXchIgpAQCAtMjIxLDE0ICsyMjEsMTQgQEAKICNlbmRpZiAvKiBDT05GSUdfU09GVF9JMkMgKi8KIAogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NwkJLyogRUVQUk9NIElTMjRDMDIJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMJLyogd3JpdGUgcGFnZSBzaXplCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogdGFrZXMgdXAgdG8gMTAgbXNlYwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NwkJLyogRUVQUk9NIElTMjRDMDIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwkvKiB3cml0ZSBwYWdlIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogdGFrZXMgdXAgdG8gMTAgbXNlYwkJKi8KIAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lIENGR19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gLCBGTEFTSF9CQVNFMV9QUkVMSU0gfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gLCBGTEFTSF9CQVNFMV9QUkVMSU0gfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQpAQCAtMjM2LDQ2ICsyMzYsNDYgQEAKIAogCiAjZGVmaW5lIENPTkZJR19XSU5CT05EXzgzQzU1MwkxCS8qaGFzIGEgd2luYm9uZCBicmlkZ2UJCQkqLwotI2RlZmluZSBDRkdfVVNFX1dJTkJPTkRfSURFCTAJLyp1c2Ugd2luYm9uZCA4M2M1NTMgaW50ZXJuYWwgSURFIGN0cmxyICovCi0jZGVmaW5lIENGR19XSU5CT05EX0lTQV9DRkdfQUREUiAgICAweDgwMDA1ODAwCS8qcGNpLWlzYSBicmlkZ2UgY29uZmlnIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX1dJTkJPTkRfSURFX0NGR19BRERSICAgIDB4ODAwMDU5MDAJLyppZGUgY29uZmlnIGFkZHIJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX1dJTkJPTkRfSURFCTAJLyp1c2Ugd2luYm9uZCA4M2M1NTMgaW50ZXJuYWwgSURFIGN0cmxyICovCisjZGVmaW5lIENPTkZJR19TWVNfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgICAgMHg4MDAwNTgwMAkvKnBjaS1pc2EgYnJpZGdlIGNvbmZpZyBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfV0lOQk9ORF9JREVfQ0ZHX0FERFIgICAgMHg4MDAwNTkwMAkvKmlkZSBjb25maWcgYWRkcgkJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KIAogLyoKICAqIE5TODczMDggQ29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19OUzg3MzA4CQkJLyogTmF0IFNlbWkgc3VwZXItaW8gY29udHJvbGxlciBvbiBJU0EgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQkFERFJfMTAJMQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQkFERFJfMTAJMQogCi0jZGVmaW5lIENGR19OUzg3MzA4X0RFVlMJKCBDRkdfTlM4NzMwOF9VQVJUMSAgIHwgXAotCQkJCSAgQ0ZHX05TODczMDhfVUFSVDIgICB8IFwKLQkJCQkgIENGR19OUzg3MzA4X1BPV1JNQU4gfCBcCi0JCQkJICBDRkdfTlM4NzMwOF9SVENfQVBDICkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0RFVlMJKCBDT05GSUdfU1lTX05TODczMDhfVUFSVDEgICB8IFwKKwkJCQkgIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMiAgIHwgXAorCQkJCSAgQ09ORklHX1NZU19OUzg3MzA4X1BPV1JNQU4gfCBcCisJCQkJICBDT05GSUdfU1lTX05TODczMDhfUlRDX0FQQyApCiAKLSN1bmRlZiAgQ0ZHX05TODczMDhfUFMyTU9ECisjdW5kZWYgIENPTkZJR19TWVNfTlM4NzMwOF9QUzJNT0QKIAotI2RlZmluZSBDRkdfTlM4NzMwOF9DUzBfQkFTRQkweDAwNzYKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MwX0NPTkYJMHgzMAotI2RlZmluZSBDRkdfTlM4NzMwOF9DUzFfQkFTRQkweDAwNzUKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MxX0NPTkYJMHgzMAotI2RlZmluZSBDRkdfTlM4NzMwOF9DUzJfQkFTRQkweDAwNzQKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MyX0NPTkYJMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MwX0JBU0UJMHgwMDc2CisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzBfQ09ORgkweDMwCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQkFTRQkweDAwNzUKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMV9DT05GCTB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMl9CQVNFCTB4MDA3NAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MyX0NPTkYJMHgzMAogCiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMTg0MzIwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkxODQzMjAwCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0lTQV9JTyArIENGR19OUzg3MzA4X1VBUlQxX0JBU0UpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19JU0FfSU8gKyBDRkdfTlM4NzMwOF9VQVJUMl9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JU0FfSU8gKyBDT05GSUdfU1lTX05TODczMDhfVUFSVDFfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSVNBX0lPICsgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyX0JBU0UpCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMjg2LDIzICsyODYsMjMgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMwMDAwMDAJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwogI2RlZmluZSBDT05GSUdfUExMX1BDSV9UT19NRU1fTVVMVElQTElFUiAgMQogCi0jZGVmaW5lIENGR19ST01OQUwJCTcJLypyb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KLSNkZWZpbmUgQ0ZHX1JPTUZBTAkJMTEJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkJNwkvKnJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkJMTEJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLwogCi0jZGVmaW5lIENGR19SRUZJTlQJNDMwCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAk0MzAJLyogbm8gb2YgY2xvY2sgY3ljbGVzIGJldHdlZW4gQ0JSIHJlZnJlc2ggY3ljbGVzICovCiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGZvciBTRFJBTSBvbmx5Ki8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJMTIxCS8qIEJ1cnN0IFRvIFByZWNoYXJnZSwgc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkJOAkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLwotI2RlZmluZSBDRkdfUkRMQVQJCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCi0jZGVmaW5lIENGR19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTgkyCS8qIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkxMjEJLyogQnVyc3QgVG8gUHJlY2hhcmdlLCBzZXRzIG9wZW4gcGFnZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkJOAkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCQk0CS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCQkzCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkJMwkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLwogCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQogCiAvKiBtZW1vcnkgYmFuayBzZXR0aW5ncyovCiAvKgpAQCAtMzExLDkzICszMTEsOTMgQEAKICAqIGJpdHMgd2lsbCBiZSBzZXQgdG8gMHgwMDAwMCBmb3IgYSBzdGFydCBhZGRyZXNzLCBvciAweGZmZmZmIGZvciBhbgogICogZW5kIGFkZHJlc3MKICAqLwotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkJKENGR19NQVhfUkFNX1NJWkUgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksxX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzJfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzNfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNF9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzVfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LN19FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkQJCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRQkwCiAvKgogICogTWVtb3J5IGJhbmsgZW5hYmxlIGJpdG1hc2ssIHNwZWNpZnlpbmcgd2hpY2ggb2YgdGhlIGJhbmtzIGRlZmluZWQgYWJvdmUKICBhcmUgYWN0dWFsbHkgcHJlc2VudC4gTVNCIGlzIGZvciBiYW5rICM3LCBMU0IgaXMgZm9yIGJhbmsgIzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTktfRU5BQkxFCQkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOS19FTkFCTEUJCTB4MDEKIAotI2RlZmluZSBDRkdfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGJpdCBkZWZpbml0aW9ucwkqLwotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLwogCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgZGV0YWlscwkJKi8KIAogLyogU0RSQU0gMCAtIDI1Nk1CICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIHN0YWNrIGluIERDQUNIRSBAIDFHQiAobm8gYmFja2luZyBtZW0pICovCiAjaWYgZGVmaW5lZChVU0VfRElOSzMyKQotI2RlZmluZSBDRkdfSUJBVDFMCSgweDQwMDAwMDAwIHwgQkFUTF9QUF8wMCApCi0jZGVmaW5lIENGR19JQkFUMVUJKDB4NDAwMDAwMDAgfCBCQVRVX0JMXzEyOEsgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoMHg0MDAwMDAwMCB8IEJBVExfUFBfMDAgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoMHg0MDAwMDAwMCB8IEJBVFVfQkxfMTI4SyApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogI2VuZGlmCiAKIC8qIFBDSSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogRmxhc2gsIGNvbmZpZyBhZGRycywgZXRjICovCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTIwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTIwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1NhbmRwb2ludDgyNDUuaCBiL2luY2x1ZGUvY29uZmlncy9TYW5kcG9pbnQ4MjQ1LmgKaW5kZXggNDE4MzVmMC4uOGNiOTIwZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1NhbmRwb2ludDgyNDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvU2FuZHBvaW50ODI0NS5oCkBAIC03OCwxNCArNzgsMTQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtOTcsNyArOTcsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCQkJLyogTXVsdGkgZXRoZXJuZXQgY2FyZHMgc3VwcG9ydCAqLwogCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNkZWZpbmUgQ09ORklHX05BVFNFTUkKICNkZWZpbmUgQ09ORklHX05TODM4MlgKIApAQCAtMTEwLDU4ICsxMTAsNTggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJMHgxMDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAogI2lmIGRlZmluZWQgKFVTRV9ESU5LMzIpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MDAwOTAwMDAKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgwMDA5MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogI2Vsc2UKLSN1bmRlZglDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyN1bmRlZglDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKIAotLyojZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgIDI1NiovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorLyojZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAyNTYqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjAwMDAwCiAjaWYgMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKDUxMiAqIDEwMjQpCS8qIHNhbmRwb2ludCBoYXMgdGlueSBlZXByb20JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoNTEyICogMTAyNCkJLyogc2FuZHBvaW50IGhhcyB0aW55IGVlcHJvbQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSgxMDI0ICogMTAyNCkJLyogVW5pdHkgaGFzIG9uYm9hcmQgMU1CeXRlIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJKDEwMjQgKiAxMDI0KQkvKiBVbml0eSBoYXMgb25ib2FyZCAxTUJ5dGUgZmxhc2ggKi8KICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwMDQwMDAJLyogT2Zmc2V0IG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MDAwMDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwNDAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLwogCi0jZGVmaW5lIENGR19FVU1CX0FERFIJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJCTB4RkMwMDAwMDAKIAotI2RlZmluZSBDRkdfSVNBX01FTQkJMHhGRDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTQkJMHhGRDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTwkJMHhGRTAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9SQU5HRV9CQVNFCTB4RkYwMDAwMDAJLyogZmxhc2ggbWVtb3J5IGFkZHJlc3MgcmFuZ2UJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JBTkdFX1NJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JBTkdFX0JBU0UJMHhGRjAwMDAwMAkvKiBmbGFzaCBtZW1vcnkgYWRkcmVzcyByYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JBTkdFX1NJWkUJMHgwMTAwMDAwMAogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkYwMDAwMAkvKiBzYW5kcG9pbnQgZmxhc2gJCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweEZGMDAwMDAwCS8qIFBNQyBvbmJvYXJkIGZsYXNoCQkqLwogCkBAIC0xNzQsOCArMTc0LDggQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwogI3VuZGVmICBDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKICNlcnJvciAiU29mdCBJMkMgaXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuICBQbGVhc2UgcmV2aWV3ISIKQEAgLTE5MCwxMyArMTkwLDEzIEBACiAjZGVmaW5lIEkyQ19ERUxBWQkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KICNlbmRpZiAvKiBDT05GSUdfU09GVF9JMkMgKi8KIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU3CQkvKiBFRVBST00gSVMyNEMwMgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1MJCXsgRkxBU0hfQkFTRTBfUFJFTElNICwgRkxBU0hfQkFTRTFfUFJFTElNIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1MJCXsgRkxBU0hfQkFTRTBfUFJFTElNICwgRkxBU0hfQkFTRTFfUFJFTElNIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKQEAgLTIwNCw1MiArMjA0LDUyIEBACiAKIAogI2RlZmluZSBDT05GSUdfV0lOQk9ORF84M0M1NTMJMQkvKmhhcyBhIHdpbmJvbmQgYnJpZGdlCQkJKi8KLSNkZWZpbmUgQ0ZHX1VTRV9XSU5CT05EX0lERQkwCS8qdXNlIHdpbmJvbmQgODNjNTUzIGludGVybmFsIElERSBjdHJsciAqLwotI2RlZmluZSBDRkdfV0lOQk9ORF9JU0FfQ0ZHX0FERFIgICAgMHg4MDAwNTgwMAkvKnBjaS1pc2EgYnJpZGdlIGNvbmZpZyBhZGRyCSovCi0jZGVmaW5lIENGR19XSU5CT05EX0lERV9DRkdfQUREUiAgICAweDgwMDA1OTAwCS8qaWRlIGNvbmZpZyBhZGRyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1VTRV9XSU5CT05EX0lERQkwCS8qdXNlIHdpbmJvbmQgODNjNTUzIGludGVybmFsIElERSBjdHJsciAqLworI2RlZmluZSBDT05GSUdfU1lTX1dJTkJPTkRfSVNBX0NGR19BRERSICAgIDB4ODAwMDU4MDAJLypwY2ktaXNhIGJyaWRnZSBjb25maWcgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1dJTkJPTkRfSURFX0NGR19BRERSICAgIDB4ODAwMDU5MDAJLyppZGUgY29uZmlnIGFkZHIJCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTIgICAvKiBtYXguIDIgSURFIGJ1c3NlcwkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIgICAvKiBtYXguIDIgSURFIGJ1c3NlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKIC8qCiAgKiBOUzg3MzA4IENvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfTlM4NzMwOAkJCS8qIE5hdCBTZW1pIHN1cGVyLWlvIGNvbnRyb2xsZXIgb24gSVNBIGJ1cyAqLwogCi0jZGVmaW5lIENGR19OUzg3MzA4X0JBRERSXzEwCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0JBRERSXzEwCTEKIAotI2RlZmluZSBDRkdfTlM4NzMwOF9ERVZTCSggQ0ZHX05TODczMDhfVUFSVDEgICB8IFwKLQkJCQkgIENGR19OUzg3MzA4X1VBUlQyICAgfCBcCi0JCQkJICBDRkdfTlM4NzMwOF9QT1dSTUFOIHwgXAotCQkJCSAgQ0ZHX05TODczMDhfUlRDX0FQQyApCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9ERVZTCSggQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxICAgfCBcCisJCQkJICBDT05GSUdfU1lTX05TODczMDhfVUFSVDIgICB8IFwKKwkJCQkgIENPTkZJR19TWVNfTlM4NzMwOF9QT1dSTUFOIHwgXAorCQkJCSAgQ09ORklHX1NZU19OUzg3MzA4X1JUQ19BUEMgKQogCi0jdW5kZWYgIENGR19OUzg3MzA4X1BTMk1PRAorI3VuZGVmICBDT05GSUdfU1lTX05TODczMDhfUFMyTU9ECiAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MwX0JBU0UJMHgwMDc2Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMF9DT05GCTB4MzAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MxX0JBU0UJMHgwMDc1Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMV9DT05GCTB4MzAKLSNkZWZpbmUgQ0ZHX05TODczMDhfQ1MyX0JBU0UJMHgwMDc0Ci0jZGVmaW5lIENGR19OUzg3MzA4X0NTMl9DT05GCTB4MzAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMF9CQVNFCTB4MDA3NgorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MwX0NPTkYJMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfQ1MxX0JBU0UJMHgwMDc1CisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzFfQ09ORgkweDMwCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9DUzJfQkFTRQkweDAwNzQKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0NTMl9DT05GCTB4MzAKIAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAogI2lmIChDT05GSUdfQ09OU19JTkRFWCA+IDIpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAgICAgICAgIENPTkZJR19EUkFNX1NQRUVEKjEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyAgICAgICAgIENPTkZJR19EUkFNX1NQRUVEKjEwMDAwMDAKICNlbHNlCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAgICAgICAgIDE4NDMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSyAgICAgICAgIDE4NDMyMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JU0FfSU8gKyBDRkdfTlM4NzMwOF9VQVJUMV9CQVNFKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfSVNBX0lPICsgQ0ZHX05TODczMDhfVUFSVDJfQkFTRSkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMwkoQ0ZHX0VVTUJfQUREUiArIDB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NNAkoQ0ZHX0VVTUJfQUREUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSVNBX0lPICsgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0lTQV9JTyArIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMl9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMwkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT000CShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDYwMCkKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yNTksMjcgKzI1OSwyNyBAQAogCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEgIDMzMzMzMzMzCS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwgKi8KIAotI2RlZmluZSBDRkdfUk9NTkFMCQk3CS8qcm9tL2ZsYXNoIG5leHQgYWNjZXNzIHRpbWUJCSovCi0jZGVmaW5lIENGR19ST01GQUwJCTExCS8qcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJCTcJLypyb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ST01GQUwJCTExCS8qcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkJKi8KIAotI2RlZmluZSBDRkdfUkVGSU5UCTQzMAkvKiBubyBvZiBjbG9jayBjeWNsZXMgYmV0d2VlbiBDQlIgcmVmcmVzaCBjeWNsZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUZJTlQJNDMwCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLwogCiAvKiB0aGUgZm9sbG93aW5nIGFyZSBmb3IgU0RSQU0gb25seSovCi0jZGVmaW5lIENGR19CU1RPUFJFCTEyMQkvKiBCdXJzdCBUbyBQcmVjaGFyZ2UsIHNldHMgb3BlbiBwYWdlIGludGVydmFsICovCi0jZGVmaW5lIENGR19SRUZSRUMJCTgJLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkJKi8KLSNkZWZpbmUgQ0ZHX1JETEFUCQk0CS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJCTMJLyogUHJlY2hhcmdlIHRvIGFjdGl2YXRlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkJNQkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMwkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkxMjEJLyogQnVyc3QgVG8gUHJlY2hhcmdlLCBzZXRzIG9wZW4gcGFnZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkJOAkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCQk0CS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCQkzCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkJMwkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KICNpZiAwCi0jZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4JMgkvKiBPQlNPTEVURSEgIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOCTIJLyogT0JTT0xFVEUhICBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTSAxCi0jZGVmaW5lIENGR19SRUdESU1NIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUk9NIDEKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdESU1NIDAKIAogCiAvKiBtZW1vcnkgYmFuayBzZXR0aW5ncyovCkBAIC0yODksOTMgKzI4OSw5MyBAQAogICogYml0cyB3aWxsIGJlIHNldCB0byAweDAwMDAwIGZvciBhIHN0YXJ0IGFkZHJlc3MsIG9yIDB4ZmZmZmYgZm9yIGFuCiAgKiBlbmQgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECQkoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUJMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkJKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFCTAKIC8qCiAgKiBNZW1vcnkgYmFuayBlbmFibGUgYml0bWFzaywgc3BlY2lmeWluZyB3aGljaCBvZiB0aGUgYmFua3MgZGVmaW5lZCBhYm92ZQogIGFyZSBhY3R1YWxseSBwcmVzZW50LiBNU0IgaXMgZm9yIGJhbmsgIzcsIExTQiBpcyBmb3IgYmFuayAjMC4KICAqLwotI2RlZmluZSBDRkdfQkFOS19FTkFCTEUJCTB4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LX0VOQUJMRQkJMHgwMQogCi0jZGVmaW5lIENGR19PRENSCQkweGZmCS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcywJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCQkweGZmCS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcywJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgYml0IGRlZmluaXRpb25zCSovCi0jZGVmaW5lIENGR19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCiAJCQkJCS8qIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeQkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBkZXRhaWxzCQkqLwogCiAvKiBTRFJBTSAwIC0gMjU2TUIgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogc3RhY2sgaW4gRENBQ0hFIEAgMUdCIChubyBiYWNraW5nIG1lbSkgKi8KICNpZiBkZWZpbmVkKFVTRV9ESU5LMzIpCi0jZGVmaW5lIENGR19JQkFUMUwJKDB4NDAwMDAwMDAgfCBCQVRMX1BQXzAwICkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoMHg0MDAwMDAwMCB8IEJBVFVfQkxfMTI4SyApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSgweDQwMDAwMDAwIHwgQkFUTF9QUF8wMCApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCSgweDQwMDAwMDAwIHwgQkFUVV9CTF8xMjhLICkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjZW5kaWYKIAogLyogUENJIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfSUJBVDJMCSgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBGbGFzaCwgY29uZmlnIGFkZHJzLCBldGMgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTAlDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCUNPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCUNPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjAJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjAJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVEFTUkVHLmggYi9pbmNsdWRlL2NvbmZpZ3MvVEFTUkVHLmgKaW5kZXggZDI3YTU0ZS4uMThmZmJmZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RBU1JFRy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UQVNSRUcuaApAQCAtNDYsOSArNDYsOSBAQAogI2RlZmluZSBDT05GSUdfTUNGVE1SCiAKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxOTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIHsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KIAogI3VuZGVmICBDT05GSUdfV0FUQ0hET0cKIApAQCAtNzgsNTEgKzc4LDUxIEBACiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkxCS8qIGRvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX01YX0NZQ0xJQyAgICAgICAgMSAgICAgICAvKiBlbmFibGUgbWRjL213YyBjb21tYW5kcyAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkgICAgICAgIDB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCSAgICAgICAgMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogLyoKICAqIENsb2NrIGNvbmZpZ3VyYXRpb246IGVuYWJsZSBvbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMKICAqLwogCiAjaWYgMCAvKiB0aGlzIHNldHRpbmcgd2lsbCBydW4gdGhlIGNwdSBhdCAxMU1IeiAqLwotI2RlZmluZSBDRkdfUExMX0JZUEFTUyAgICAgICAgICAxICAgICAgICAgICAgICAgIC8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLwotI3VuZGVmICBDRkdfRkFTVF9DTEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLwotI2RlZmluZSBDRkdfQ0xLCQkgICAgICAgIDExMjg5NjAwICAgICAgICAgLyogUExMIGJ5cGFzcyAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUExMX0JZUEFTUyAgICAgICAgICAxICAgICAgICAgICAgICAgIC8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLworI3VuZGVmICBDT05GSUdfU1lTX0ZBU1RfQ0xLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNQ0Y1MjQ5IGNhbiBydW4gYXQgMTQwTUh6ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTEsJCSAgICAgICAgMTEyODk2MDAgICAgICAgICAvKiBQTEwgYnlwYXNzICAgICAgICAgICAgICAgICAgKi8KICNlbmRpZgogCiAjaWYgMCAvKiB0aGlzIHNldHRpbmcgd2lsbCBydW4gdGhlIGNwdSBhdCA3ME1IeiAqLwotI3VuZGVmICBDRkdfUExMX0JZUEFTUyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLwotI3VuZGVmICBDRkdfRkFTVF9DTEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLwotI2RlZmluZSBDRkdfQ0xLCQkgICAgICAgIDcyMTg1MDE4ICAgICAgICAgLyogVGhlIG5leHQgbG93ZXIgc3BlZWQgICAgICAgICovCisjdW5kZWYgIENPTkZJR19TWVNfUExMX0JZUEFTUyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJ5cGFzcyBQTEwgZm9yIHRlc3QgcHVycG9zZSAqLworI3VuZGVmICBDT05GSUdfU1lTX0ZBU1RfQ0xLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNQ0Y1MjQ5IGNhbiBydW4gYXQgMTQwTUh6ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTEsJCSAgICAgICAgNzIxODUwMTggICAgICAgICAvKiBUaGUgbmV4dCBsb3dlciBzcGVlZCAgICAgICAgKi8KICNlbmRpZgogCiAjaWYgMSAvKiB0aGlzIHNldHRpbmcgd2lsbCBydW4gdGhlIGNwdSBhdCAxNDBNSHogKi8KLSN1bmRlZiAgQ0ZHX1BMTF9CWVBBU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBieXBhc3MgUExMIGZvciB0ZXN0IHB1cnBvc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZBU1RfQ0xLICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAvKiBNQ0Y1MjQ5IGNhbiBydW4gYXQgMTQwTUh6ICAgKi8KLSNkZWZpbmUJQ0ZHX0NMSwkJICAgICAgICAxMzIwMjU2MDAgICAgICAgIC8qIE1DRjUyNDkgY2FuIHJ1biBhdCAxNDBNSHogICAqLworI3VuZGVmICBDT05GSUdfU1lTX1BMTF9CWVBBU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBieXBhc3MgUExMIGZvciB0ZXN0IHB1cnBvc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GQVNUX0NMSyAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgLyogTUNGNTI0OSBjYW4gcnVuIGF0IDE0ME1IeiAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0xLCQkgICAgICAgIDEzMjAyNTYwMCAgICAgICAgLyogTUNGNTI0OSBjYW4gcnVuIGF0IDE0ME1IeiAgICovCiAjZW5kaWYKIAogLyoKQEAgLTEzMSwzNCArMTMxLDM0IEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19NQkFSCQkweDEwMDAwMDAwCS8qIFJlZ2lzdGVyIEJhc2UgQWRkcnMgKi8KLSNkZWZpbmUJQ0ZHX01CQVIyCSAgICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4MTAwMDAwMDAJLyogUmVnaXN0ZXIgQmFzZSBBZGRycyAqLworI2RlZmluZQlDT05GSUdfU1lTX01CQVIyCSAgICAgICAgMHg4MDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLwogI2RlZmluZQlDT05GSUdfU09GVF9JMkMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzMyCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MzMgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMzIgaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDUJLyogVGhlIENhdGFseXN0IENBVDI0V0MzMiBoYXMJKi8KIAkJCQkJLyogMzIgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDUgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogI2lmIGRlZmluZWQgKENPTkZJR19TT0ZUX0kyQykKICNpZiAwIC8qIHB1c2gtcHVsbCAqLwogI2RlZmluZQlTREEJICAgICAgICAweDAwODAwMDAwCiAjZGVmaW5lCVNDTAkgICAgICAgIDB4MDAwMDAwMDgKLSNkZWZpbmUgRElSMCAgICAgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPX0VOKSkKLSNkZWZpbmUgRElSMSAgICAgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPMV9FTikpCi0jZGVmaW5lIE9VVDAJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENGR19NQkFSMitNQ0ZTSU1fR1BJT19PVVQpKQotI2RlZmluZSBPVVQxCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDRkdfTUJBUjIrTUNGU0lNX0dQSU8xX09VVCkpCi0jZGVmaW5lIElOMAkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPX1JFQUQpKQotI2RlZmluZSBJTjEJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENGR19NQkFSMitNQ0ZTSU1fR1BJTzFfUkVBRCkpCisjZGVmaW5lIERJUjAgICAgICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU9fRU4pKQorI2RlZmluZSBESVIxICAgICAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDT05GSUdfU1lTX01CQVIyK01DRlNJTV9HUElPMV9FTikpCisjZGVmaW5lIE9VVDAJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU9fT1VUKSkKKyNkZWZpbmUgT1VUMQkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ09ORklHX1NZU19NQkFSMitNQ0ZTSU1fR1BJTzFfT1VUKSkKKyNkZWZpbmUgSU4wCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDT05GSUdfU1lTX01CQVIyK01DRlNJTV9HUElPX1JFQUQpKQorI2RlZmluZSBJTjEJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU8xX1JFQUQpKQogI2RlZmluZQlJMkNfSU5JVAl7T1VUMXw9U0RBO09VVDB8PVNDTDt9CiAjZGVmaW5lCUkyQ19SRUFECSgoSU4xJlNEQSk/MTowKQogI2RlZmluZQlJMkNfU0RBKHgpCXtpZih4KU9VVDF8PVNEQTtlbHNlIE9VVDEmPX5TREE7fQpAQCAtMTY5LDEyICsxNjksMTIgQEAKICNlbHNlIC8qIG9wZW4tY29sbGVjdG9yICovCiAjZGVmaW5lCVNEQQkgICAgICAgIDB4MDA4MDAwMDAKICNkZWZpbmUJU0NMCSAgICAgICAgMHgwMDAwMDAwOAotI2RlZmluZSBESVIwICAgICAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDRkdfTUJBUjIrTUNGU0lNX0dQSU9fRU4pKQotI2RlZmluZSBESVIxICAgICAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDRkdfTUJBUjIrTUNGU0lNX0dQSU8xX0VOKSkKLSNkZWZpbmUgT1VUMAkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPX09VVCkpCi0jZGVmaW5lIE9VVDEJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENGR19NQkFSMitNQ0ZTSU1fR1BJTzFfT1VUKSkKLSNkZWZpbmUgSU4wCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDRkdfTUJBUjIrTUNGU0lNX0dQSU9fUkVBRCkpCi0jZGVmaW5lIElOMQkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ0ZHX01CQVIyK01DRlNJTV9HUElPMV9SRUFEKSkKKyNkZWZpbmUgRElSMCAgICAgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ09ORklHX1NZU19NQkFSMitNQ0ZTSU1fR1BJT19FTikpCisjZGVmaW5lIERJUjEgICAgICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU8xX0VOKSkKKyNkZWZpbmUgT1VUMAkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ09ORklHX1NZU19NQkFSMitNQ0ZTSU1fR1BJT19PVVQpKQorI2RlZmluZSBPVVQxCSAgICAgICAgKigodm9sYXRpbGUgdWxvbmcqKShDT05GSUdfU1lTX01CQVIyK01DRlNJTV9HUElPMV9PVVQpKQorI2RlZmluZSBJTjAJICAgICAgICAqKCh2b2xhdGlsZSB1bG9uZyopKENPTkZJR19TWVNfTUJBUjIrTUNGU0lNX0dQSU9fUkVBRCkpCisjZGVmaW5lIElOMQkgICAgICAgICooKHZvbGF0aWxlIHVsb25nKikoQ09ORklHX1NZU19NQkFSMitNQ0ZTSU1fR1BJTzFfUkVBRCkpCiAjZGVmaW5lCUkyQ19JTklUCXtESVIxJj1+U0RBO0RJUjAmPX5TQ0w7T1VUMSY9flNEQTtPVVQwJj1+U0NMO30KICNkZWZpbmUJSTJDX1JFQUQJKChJTjEmU0RBKT8xOjApCiAjZGVmaW5lCUkyQ19TREEoeCkJe2lmKHgpRElSMSY9flNEQTtlbHNlIERJUjF8PVNEQTt9CkBAIC0xODgsMTEgKzE4OCwxMSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRkM0MDAwMAkvKiBBZGRyZXNzIG9mIEVudmlyb25tZW50IFNlY3RvciovCkBAIC0yMDIsOTQgKzIwMiw5NCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTE2CQkvKiBTRFJBTSBzaXplIGluIE1CICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmYzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTE2CQkvKiBTRFJBTSBzaXplIGluIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmMwMDAwMAogCiAjaWYgMCAvKiB0ZXN0LW9ubHkgKi8KICNkZWZpbmUgQ09ORklHX1BSQU0gICAgICAgICAgICAgNTEyIC8qIHRlc3Qtb25seSBmb3IgU0RSQU0gcHJvYmxlbSEhISEhISEhISEhISEhISEhISEhICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMSAqIDEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAxIE1CIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEgKiAxMDI0KjEwMjQpCS8qIFJlc2VydmUgMSBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNZW1vcnkgYmFuayBkZWZpbml0aW9ucwogICovCiAKIC8qIENTMCAtIEFNRCBGbGFzaCwgYWRkcmVzcyAweGZmYzAwMDAwICovCi0jZGVmaW5lCUNGR19DU0FSMCAgICAgICAgICAgICAgIDB4ZmZjMAotI2RlZmluZQlDRkdfQ1NDUjAgICAgICAgICAgICAgICAweDE5ODAgICAgICAgICAgLyogV1M9MDExMCwgQUE9MSwgUFM9MTAgICAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NTQVIwICAgICAgICAgICAgICAgMHhmZmMwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NDUjAgICAgICAgICAgICAgICAweDE5ODAgICAgICAgICAgLyogV1M9MDExMCwgQUE9MSwgUFM9MTAgICAgICAgICAqLwogLyoqIE5vdGU6IFRoZXJlIGlzIGEgQ1NNUjAvRFJBTSB2ZWN0b3IgcHJvYmxlbSwgbmVlZCB0byBkaXNhYmxlIEMvSSAqKiovCi0jZGVmaW5lCUNGR19DU01SMCAgICAgICAgICAgICAgIDB4MDAzZjAwMjEgICAgICAvKiA0TUIsIEFBPTAsIFdQPTAsIEMvST0xLCBWPTEgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NNUjAgICAgICAgICAgICAgICAweDAwM2YwMDIxICAgICAgLyogNE1CLCBBQT0wLCBXUD0wLCBDL0k9MSwgVj0xICAqLwogCiAvKiBDUzEgLSBGUEdBLCBhZGRyZXNzIDB4ZTAwMDAwMDAgKi8KLSNkZWZpbmUJQ0ZHX0NTQVIxICAgICAgICAgICAgICAgMHhlMDAwCi0jZGVmaW5lCUNGR19DU0NSMSAgICAgICAgICAgICAgIDB4MGQ4MCAgICAgICAgICAvKiBXUz0wMDExLCBBQT0xLCBQUz0xMCAgICAgICAgICovCi0jZGVmaW5lCUNGR19DU01SMSAgICAgICAgICAgICAgIDB4MDAwMTAwMDEgICAgICAvKiAxMjhrQiwgQUE9MCwgV1A9MCwgQy9JPTAsIFY9MSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NBUjEgICAgICAgICAgICAgICAweGUwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DU0NSMSAgICAgICAgICAgICAgIDB4MGQ4MCAgICAgICAgICAvKiBXUz0wMDExLCBBQT0xLCBQUz0xMCAgICAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NNUjEgICAgICAgICAgICAgICAweDAwMDEwMDAxICAgICAgLyogMTI4a0IsIEFBPTAsIFdQPTAsIEMvST0wLCBWPTEqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQb3J0IGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZQlDRkdfR1BJT19GVU5DICAgICAgICAgICAweDAwMDAwMDA4ICAgICAgLyogU2V0IGdwaW8gcGluczogbm9uZSAgICAgICAgICAqLwotI2RlZmluZQlDRkdfR1BJTzFfRlVOQyAgICAgICAgICAweDAwZGYwMGYwICAgICAgLyogMzYtMzkoU1dJVENIKSw0OC01MihGUEdBcyksNTQqLwotI2RlZmluZQlDRkdfR1BJT19FTiAgICAgICAgICAgICAweDAwMDAwMDA4ICAgICAgLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAgICAgICAqLwotI2RlZmluZQlDRkdfR1BJTzFfRU4gICAgICAgICAgICAweDAwYzcwMDAwICAgICAgLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAgICAgICAqLwotI2RlZmluZQlDRkdfR1BJT19PVVQgICAgICAgICAgICAweDAwMDAwMDA4ICAgICAgLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLwotI2RlZmluZQlDRkdfR1BJTzFfT1VUICAgICAgICAgICAweDAwYzcwMDAwICAgICAgLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fRlVOQyAgICAgICAgICAgMHgwMDAwMDAwOCAgICAgIC8qIFNldCBncGlvIHBpbnM6IG5vbmUgICAgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HUElPMV9GVU5DICAgICAgICAgIDB4MDBkZjAwZjAgICAgICAvKiAzNi0zOShTV0lUQ0gpLDQ4LTUyKEZQR0FzKSw1NCovCisjZGVmaW5lCUNPTkZJR19TWVNfR1BJT19FTiAgICAgICAgICAgICAweDAwMDAwMDA4ICAgICAgLyogU2V0IGdwaW8gb3V0cHV0IGVuYWJsZSAgICAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0dQSU8xX0VOICAgICAgICAgICAgMHgwMGM3MDAwMCAgICAgIC8qIFNldCBncGlvIG91dHB1dCBlbmFibGUgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HUElPX09VVCAgICAgICAgICAgIDB4MDAwMDAwMDggICAgICAvKiBTZXQgb3V0cHV0cyB0byBkZWZhdWx0IHN0YXRlICovCisjZGVmaW5lCUNPTkZJR19TWVNfR1BJTzFfT1VUICAgICAgICAgICAweDAwYzcwMDAwICAgICAgLyogU2V0IG91dHB1dHMgdG8gZGVmYXVsdCBzdGF0ZSAqLwogCi0jZGVmaW5lIENGR19HUElPMV9MRUQgICAgICAgICAgIDB4MDA0MDAwMDAgICAgICAvKiB1c2VyIGxlZCAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfTEVEICAgICAgICAgICAweDAwNDAwMDAwICAgICAgLyogdXNlciBsZWQgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJNTEyKjEwMjQgICAgLyogNTEya0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTMjAwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQk1MTIqMTAyNCAgICAvKiA1MTJrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlMyMDAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDAwMDEwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDAwNDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDAwMjAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwODAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAxMDAwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDAwMTAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDAwNDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAwMDIwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDA4MDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAxMDAwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKICNlbmRpZgkvKiBfVEFTUkVHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UQjUyMDAuaCBiL2luY2x1ZGUvY29uZmlncy9UQjUyMDAuaAppbmRleCBlNGUxMzY3Li42MDEwMjQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVEI1MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RCNTIwMC5oCkBAIC0zNyw3ICszNyw3IEBACiAjZGVmaW5lIENPTkZJR19UUU01MjAwCQkxCS8qIC4uLiBvbiBUUU01MjAwIG1vZHVsZSAqLwogI2RlZmluZSBDT05GSUdfVEI1MjAwCQkxCS8qIC4uLiBvbiBhIFRCNTIwMCBiYXNlIGJvYXJkICovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCkBAIC01MSw3ICs1MSw3IEBACiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkJMQkvKiBzdXBwb3J0IG11bHRpcGxlIGNvbnNvbGVzICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRTIJNgkvKiBzZWNvbmQgY29uc29sZSBpcyBvbiBQU0M2ICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKICAqIFZpZGVvIGNvbnNvbGUKQEAgLTY2LDcgKzY2LDcgQEAKICNkZWZpbmUgQ09ORklHX0NPTlNPTEVfRVhUUkFfSU5GTwogI2RlZmluZSBDT05GSUdfVklERU9fU1dfQ1VSU09SCiAjZGVmaW5lIENPTkZJR19TUExBU0hfU0NSRUVOCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCiAjZW5kaWYKIAogLyogUGFydGl0aW9ucyAqLwpAQCAtNzksOSArNzksOSBAQAogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKIAogI2lmZGVmIENPTkZJR19QT1NUCiAvKiBwcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHBvc3Rfd29yZCBhdCBlbmQgb2Ygb24tY2hpcCBTUkFNICovCkBAIC0xMzMsNyArMTMzLDcgQEAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkJLyogZGlzcGxheSBpbWFnZSB0aW1lc3RhbXBzICovCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkMwMDAwMDApCQkvKiBCb290IGxvdyAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKgpAQCAtMjAwLDI0ICsyMDAsMjQgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCi0jaWYgZGVmaW5lZChDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLKQogLyoKICAqIFBDSSBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbgogICoKICAqIEFjdHVhbGx5IGEgUENJIENsb2NrIG9mIDY2IE1IeiBpcyBvbmx5IHNldCAoaW4gY3B1X2luaXQuYykgaWYKLSAqIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sKKyAqIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCiAgKiBvZiA2NiBNSHogeWV0IGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIGEgSVBCIEJ1cyBDbG9jayBvZiA2NiBNSHouCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCQkvKiBkZWZpbmUgZm9yIDY2TUh6IHNwZWVkICovCiAjZW5kaWYKIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyICovCiAKIC8qCiAgKiBJMkMgY2xvY2sgZnJlcXVlbmN5CkBAIC0yMjUsMTEgKzIyNSwxMSBAQAogICogUGxlYXNlIG5vdGljZSwgdGhhdCB0aGUgcmVzdWx0aW5nIGNsb2NrIGZyZXF1ZW5jeSBjb3VsZCBkaWZmZXIgZnJvbSB0aGUKICAqIGNvbmZpZ3VyZWQgdmFsdWUuIFRoaXMgaXMgYmVjYXVzZSB0aGUgSTJDIGNsb2NrIGlzIGRlcml2ZWQgZnJvbSBzeXN0ZW0KICAqIGNsb2NrIG92ZXIgYSBmcmVxdWVuY3kgZGl2aWRlciB3aXRoIG9ubHkgYSBmZXcgZGl2aWRlciB2YWx1ZXMuIFUtYm9vdAotICogY2FsY3VsYXRlcyB0aGUgYmVzdCBhcHByb3hpbWF0aW9uIGZvciBDRkdfSTJDX1NQRUVELiBIb3dldmVyIHRoZSBjYWxjdWxhdGVkCisgKiBjYWxjdWxhdGVzIHRoZSBiZXN0IGFwcHJveGltYXRpb24gZm9yIENPTkZJR19TWVNfSTJDX1NQRUVELiBIb3dldmVyIHRoZSBjYWxjdWxhdGVkCiAgKiBhcHByb3hpbWF0aW9uIGFsbHdheXMgbGllcyBiZWxvdyB0aGUgY29uZmlndXJlZCB2YWx1ZSwgbmV2ZXIgYWJvdmUuCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uIGZvciBvbmJvYXJkIEVFUFJPTSBNMjRDMzIgKE0yNEM2NCBzaG91bGQgd29yawpAQCAtMjM3LDQxICsyMzcsNDEgQEAKICAqIEVFUFJPTSAoMjRDNjQpIGlzIG9uIHRoZSBzYW1lIEkyQyBhZGRyZXNzIChidXQgb24gb3RoZXIgSTJDIGJ1cyksIHNvIHRoZQogICogc2FtZSBjb25maWd1cmF0aW9uIGNvdWxkIGJlIHVzZWQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKIAogLyogTGlzdCBvZiBJMkMgYWRkcmVzc2VzIHRvIGJlIHZlcmlmaWVkIGJ5IFBPU1QgKi8KICN1bmRlZiBJMkNfQUREUl9MSVNUCi0jZGVmaW5lIEkyQ19BRERSX0xJU1QJewlDRkdfSTJDX0VFUFJPTV9BRERSLAlcCi0JCQkJQ0ZHX0kyQ19SVENfQUREUiwJXAotCQkJCUNGR19JMkNfU0xBVkUgfQorI2RlZmluZSBJMkNfQUREUl9MSVNUCXsJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19SVENfQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1NMQVZFIH0KIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJVEVYVF9CQVNFIC8qIDB4RkMwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlURVhUX0JBU0UgLyogMHhGQzAwMDAwMCAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0JPT1RDU19TVEFSVCB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfQk9PVENTX1NUQVJUIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCiAKLSNpZiAhZGVmaW5lZChDRkdfTE9XQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwNzYwMDAwICsgMHgwMDgwMDAwMCkKLSNlbHNlCS8qIENGR19MT1dCT09UICovCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19MT1dCT09UKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwNzYwMDAwICsgMHgwMDgwMDAwMCkKKyNlbHNlCS8qIENPTkZJR19TWVNfTE9XQk9PVCAqLwogI2lmIGRlZmluZWQoQ09ORklHX1RRTTUyMDBfQikKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDgwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDgwMDAwKQogI2Vsc2UKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDYwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDYwMDAwKQogI2VuZGlmIC8qIENPTkZJR19UUU01MjAwX0IgKi8KLSNlbmRpZgkvKiBDRkdfTE9XQk9PVCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2VuZGlmCS8qIENPTkZJR19TWVNfTE9XQk9PVCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKIAkJCQkJICAgKD0gY2hpcCBzZWxlY3RzKSAqLwogCiAvKiBEeW5hbWljIE1URCBwYXJ0aXRpb24gc3VwcG9ydCAqLwpAQCAtMzA5LDM2ICszMDksMzYgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgT04tQ2hpcCBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQogI2lmZGVmIENPTkZJR19QT1NUCiAvKiBwcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHBvc3Rfd29yZCBhdCBlbmQgb2Ygb24tY2hpcCBTUkFNICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCiAjZWxzZQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCiAjZW5kaWYKIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX1RRTTUyMDBfQikKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmIC8qIENPTkZJR19UUU01MjAwX0IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0IDw8IDEwKQkvKiBSZXNlcnZlIDEwMjQga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEwMjQgPDwgMTApCS8qIFJlc2VydmUgMTAyNCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0zNzksNDUgKzM3OSw0NSBAQAogICogICBHUElPIG9uIFBTQzZfMyBpcyB1c2VkIGluIHBvc3RfaG90a2V5c19wcmVzc2VkKCkgdG8gZW5hYmxlIGV4dGVuZGVkIFBPU1QKICAqICAgdGVzdHMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDgxNTAwMTE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4ODE1MDAxMTQKIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEJMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKLSNkZWZpbmUgQ0ZHX000MVQxMV9CQVNFX1lFQVIJMTkwMCAgICAvKiBiZWNhdXNlIExpbnV4IHVzZXMgdGhlIHNhbWUgYmFzZQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUgkxOTAwICAgIC8qIGJlY2F1c2UgTGludXggdXNlcyB0aGUgc2FtZSBiYXNlCiAJCQkJCSAgIHllYXIgKi8KIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKiBFbmFibGUgYW4gYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdCAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qCiAgKiBFbmFibGUgbG9vcHcgY29tbWFuZC4KQEAgLTQyOCwyMiArNDI4LDIyIEBACiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jaWZkZWYgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwOERGMzAgLyogZm9yIHBjaV9jbGsgID0gNjYgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNERGMzAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAjZGVmaW5lIENPTkZJR19MQVNUX1NUQUdFX0lOSVQKIApAQCAtNDUxLDI0ICs0NTEsMjQgQEAKICAqIFNSQU0gLSBEbyBub3QgbWFwIGJlbG93IDIgR0IgaW4gYWRkcmVzcyBzcGFjZSwgYmVjYXVzZSB0aGlzIGFyZWEgaXMgdXNlZAogICogZm9yIFNEUkFNIGF1dG9zaXppbmcuCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9TVEFSVAkJMHhFNTAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX1NJWkUJCTB4MTAwMDAwCS8qIDEgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9DRkcJCTB4MDAwNEQ5MzAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU0laRQkJMHgxMDAwMDAJLyogMSBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DRkcJCTB4MDAwNEQ5MzAKIAogLyoKICAqIEdyYWZpYyBjb250cm9sbGVyIC0gRG8gbm90IG1hcCBiZWxvdyAyIEdCIGluIGFkZHJlc3Mgc3BhY2UsIGJlY2F1c2UgdGhpcwogICogYXJlYSBpcyB1c2VkIGZvciBTRFJBTSBhdXRvc2l6aW5nLgogICovCiAjZGVmaW5lIFNNNTAxX0ZCX0JBU0UJCTB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJKFNNNTAxX0ZCX0JBU0UpCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHg0MDAwMDAwCS8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDhGNDhGRjcwCi0jZGVmaW5lIFNNNTAxX01NSU9fQkFTRQkJQ0ZHX0NTMV9TVEFSVCArIDB4MDNFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCShTTTUwMV9GQl9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDQwMDAwMDAJLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDhGNDhGRjcwCisjZGVmaW5lIFNNNTAxX01NSU9fQkFTRQkJQ09ORklHX1NZU19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMxMQkvKiAxIGRlYWQgY3ljbGUgZm9yIGZsYXNoIGFuZCBTTTUwMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMTEJLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTQiBzdHVmZgpAQCAtNDkwLDIzICs0OTAsMjMgQEAKICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCQkJCQkJICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9USzg4NUQuaCBiL2luY2x1ZGUvY29uZmlncy9USzg4NUQuaAppbmRleCAyZWZjMTBhLi4xNGZmNjJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVEs4ODVELmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RLODg1RC5oCkBAIC00MSw4ICs0MSw4IEBACiAjZGVmaW5lIENPTkZJR19USzg4NUQJCTEJLyogLi4uaW4gYSBUSzg4NUQgYmFzZSBib2FyZAkqLwogCiAjZGVmaW5lIENPTkZJR184eHhfT1NDTEsJCTEwMDAwMDAwCS8qICAxMCBNSHogLSBQTEwgaW5wdXQgY2xvY2sJKi8KLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUlOCQkxNTAwMDAwMAkvKiAgMTUgTUh6IC0gQ1BVIG1pbmltdW0gY2xvY2sJKi8KLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAtIENQVSBtYXhpbXVtIGNsb2NrCSovCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4JCTE1MDAwMDAwCS8qICAxNSBNSHogLSBDUFUgbWluaW11bSBjbG9jawkqLworI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAtIENQVSBtYXhpbXVtIGNsb2NrCSovCiAjZGVmaW5lIENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQJNjYwMDAwMDAJLyogIDY2IE1IeiAtIENQVSBkZWZhdWx0IGNsb2NrCSovCiAJCQkJCQkvKiAoaXQgd2lsbCBiZSB1c2VkIGlmIHRoZXJlIGlzIG5vCSovCiAJCQkJCQkvKiAnY3B1Y2xrJyB2YXJpYWJsZSB3aXRoIHZhbGlkIHZhbHVlKQkqLwpAQCAtOTIsNyArOTIsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMDQsOCArMTA0LDggQEAKICN1bmRlZglDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAvKgpAQCAtMTI1LDEzICsxMjUsMTMgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSgyKQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAjZW5kaWYJLyogQ09ORklHX1NPRlRfSTJDICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVQyNEM/PwkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCQkvKiB0d28gYnl0ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIEVFUFJPTSBBVDI0Qz8/CSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCQkvKiB0d28gYnl0ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogIyBkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcgMQotIyBkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAweDY4CisjIGRlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUiAweDY4CiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC0xNzAsMzQgKzE3MCwzNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMzAwMDAwCS8qIDEgLi4uIDMgTUIgaW4gRFJBTQkqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QJCQkJLyogYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMzAwMDAwCS8qIDEgLi4uIDMgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkJCS8qIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUKIAkJCQkJCSAgIG1lbW9yeSB0ZXN0LiovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIEVuYWJsZSBsb29wdyBjb21tYW5kLgpAQCAtMjEyLDQ3ICsyMTIsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwIC8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yNjYsMTYgKzI2NiwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplCSAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZQkgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yODUsMTAgKzI4NSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjk3LDkgKzI5Nyw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmIENPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMwNywxNCArMzA3LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMjMsNyArMzIzLDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMzIsMTQgKzMzMiwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zNTIsMjggKzM1MiwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVECSBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUiAwCisjZGVmaW5lIENPTkZJR19TWVNfREVSIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zODgsMjIgKzM4OCwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOiBEZWZhdWx0IHZhbHVlIG9mIE9SMCBhZnRlciByZXNldAogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX01TSyB8IE9SX0JJIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfTVNLIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV82X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTQxNCwxOSArNDE0LDE5IEBACiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCQkoMjU2IDw8IDIwKQkvKiBtYXggMjU2IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmIENPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUgQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDM3LDQ4ICs0MzcsNDggQEAKICAqIDQJTnVtYmVyIG9mIHJlZnJlc2ggY3ljbGVzIHBlciBwZXJpb2QKICAqIDY0CVJlZnJlc2ggY3ljbGUgaW4gbXMgcGVyIG51bWJlciBvZiByb3dzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDY0ICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCiAKIC8qCiAgKiBQZXJpb2RpYyB0aW1lciAoTUFNUltQVHhdKSBmb3IgNCAqIDcuOCB1cyByZWZyZXNoICg9IDMxLjIgdXMgcGVyIHF1YWQpCiAgKgogICogICAgICAgICAgICAgICAgICAgICAgICBDUFVjbG9jayhNSHopICogMzEuMgotICogQ0ZHX01BTVJfUFRBID0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgIHdpdGggREZCUkcgPSAwCisgKiBDT05GSUdfU1lTX01BTVJfUFRBID0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgIHdpdGggREZCUkcgPSAwCiAgKiAgICAgICAgICAgICAgICAyXigyKlNDQ1JbREZCUkddKSAqIE1QVFBSX1BUUF9ESVYxNgogICoKLSAqIENQVSBjbG9jayA9ICAxNSBNSHo6ICBDRkdfTUFNUl9QVEEgPSAgMjkgICAtPiAgNCAqIDcuNzMgdXMKLSAqIENQVSBjbG9jayA9ICA1MCBNSHo6ICBDRkdfTUFNUl9QVEEgPSAgOTcgICAtPiAgNCAqIDcuNzYgdXMKLSAqIENQVSBjbG9jayA9ICA2NiBNSHo6ICBDRkdfTUFNUl9QVEEgPSAxMjggICAtPiAgNCAqIDcuNzUgdXMKLSAqIENQVSBjbG9jayA9IDEzMyBNSHo6ICBDRkdfTUFNUl9QVEEgPSAyNTUgICAtPiAgNCAqIDcuNjcgdXMKKyAqIENQVSBjbG9jayA9ICAxNSBNSHo6ICBDT05GSUdfU1lTX01BTVJfUFRBID0gIDI5ICAgLT4gIDQgKiA3LjczIHVzCisgKiBDUFUgY2xvY2sgPSAgNTAgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9ICA5NyAgIC0+ICA0ICogNy43NiB1cworICogQ1BVIGNsb2NrID0gIDY2IE1IejogIENPTkZJR19TWVNfTUFNUl9QVEEgPSAxMjggICAtPiAgNCAqIDcuNzUgdXMKKyAqIENQVSBjbG9jayA9IDEzMyBNSHo6ICBDT05GSUdfU1lTX01BTVJfUFRBID0gMjU1ICAgLT4gIDQgKiA3LjY3IHVzCiAgKgogICogVmFsdWUgOTcgaXMgZm9yIDQgKiA3LjggdXMgYXQgNTAgTUh6LiBTbyB0aGUgcmVmcmVzaCBjeWNsZSByZXF1aXJlbWVudCB3aWxsCiAgKiBiZSBtZXQgYWxzbyBpbiB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLCBpLmUuIGlmIGVudmlyb25tZW50IHZhcmlhYmxlCiAgKiAnY3B1Y2xrJyBpcyBub3Qgc2V0LgogICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCTEyOAogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlciBSZWdpc3RlciAoTVBUUFIpIHZhbHVlcy4KICAqLwogLyogNCAqIDcuOCB1cyByZWZyZXNoICg9IDMxLjIgdXMgcGVyIHF1YWQpIGF0IDUwIE1IeiBhbmQgUFRBID0gOTcgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CiAvKiA0ICogMy45IHVzIHJlZnJlc2ggKD0gMTUuNiB1cyBwZXIgcXVhZCkgYXQgNTAgTUh6IGFuZCBQVEEgPSA5NyAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiAxMCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfMTBDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl8xMENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8yIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BOSAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApAQCAtNDk5LDEyICs0OTksMTIgQEAKIAogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUCQkxIC8qIEhhdmUgdG8gY29uZmlndXJlIFBIWXMgZm9yIExpbnV4ICovCiAKLS8qIENGR19ESVNDT1ZFUl9QSFkgb25seSB3b3JrcyB3aXRoIEZFQyBpZiBvbmx5IG9uZSBpbnRlcmZhY2UgaXMgZW5hYmxlZCAqLworLyogQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgb25seSB3b3JrcyB3aXRoIEZFQyBpZiBvbmx5IG9uZSBpbnRlcmZhY2UgaXMgZW5hYmxlZCAqLwogI2lmICghZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkVDMSkgfHwgIWRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZFQzIpKQotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfRElTQ09WRVJfUEhZCisjaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAvKiBQSFkgYWRkcmVzc2VzIC0gaGFyZCB3aXJlZCBpbiBoYXJkd2FyZSAqLwogI2RlZmluZSBDT05GSUdfRkVDMV9QSFkJMQogI2RlZmluZSBDT05GSUdfRkVDMl9QSFkJMgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RPUDUyMDAuaCBiL2luY2x1ZGUvY29uZmlncy9UT1A1MjAwLmgKaW5kZXggMzgxODM2OC4uMDQ2OTQ4ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RPUDUyMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVE9QNTIwMC5oCkBAIC00NSw3ICs0NSw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1MjAwCQkxCS8qIE1vcmUgZXhhY3RseSBhIE1QQzUyMDAgKi8KICNkZWZpbmUgQ09ORklHX1RPUDUyMDAJCTEJLyogLi4uIG9uIFRPUDUyMDAgYm9hcmQgLSB3ZSBuZWVkIHRoaXMgZm9yIEZFQy5DICovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCkBAIC01Nyw3ICs1Nyw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAkvKiAuLi4gYXQgOTYwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAKICNpZiBkZWZpbmVkIChDT05GSUdfRVZBTDUyMDApIHx8IGRlZmluZWQgKENPTkZJR19MSVRFNTIwMCkKQEAgLTEzOSw4ICsxMzksOCBAQAogICogTVVTVCBiZSBsb3cgYm9vdCAtIEhJR0hCT09UIGlzIG5vdCBzdXBwb3J0ZWQgYW55bW9yZQogICovCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZGMDAwMDAwKQkJLyogQm9vdCBsb3cgd2l0aCAxNiBNQiBGbGFzaCAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQotIyAgIGRlZmluZSBDRkdfTE9XQk9PVDE2CTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDE2CTEKICNlbHNlCiAjICAgZXJyb3IgIlRFWFRfQkFTRSBtdXN0IGJlIDB4ZmYwMDAwMDAiCiAjZW5kaWYKQEAgLTE3OCw3ICsxNzgsNyBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI3VuZGVmIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCiAvKgogICogSTJDIGNvbmZpZ3VyYXRpb24KQEAgLTE4NiwxMSArMTg2LDExIEBACiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTcwCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgotI2RlZmluZSBDRkdfRUVQUk9NX1NJWkUgMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1NJWkUgMHgyMDAwCiAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCkBAIC0yMDEsMTEgKzIwMSwxMSBAQAogI2lmIGRlZmluZWQgKENPTkZJR19TT0ZUX0kyQykKICMgIGRlZmluZSBTREEwCQkJMHg0MAogIyAgZGVmaW5lIFNDTDAJCQkweDgwCi0jICBkZWZpbmUgR1BJT0UwCQkqKCh2b2xhdGlsZSB1Y2hhciopKENGR19NQkFSKzB4MGMwMCkpCi0jICBkZWZpbmUgRERSMAkJCSooKHZvbGF0aWxlIHVjaGFyKikoQ0ZHX01CQVIrMHgwYzA4KSkKLSMgIGRlZmluZSBEVk8wCQkJKigodm9sYXRpbGUgdWNoYXIqKShDRkdfTUJBUisweDBjMGMpKQotIyAgZGVmaW5lIERWSTAJCQkqKCh2b2xhdGlsZSB1Y2hhciopKENGR19NQkFSKzB4MGMyMCkpCi0jICBkZWZpbmUgT0RFMAkJCSooKHZvbGF0aWxlIHVjaGFyKikoQ0ZHX01CQVIrMHgwYzA0KSkKKyMgIGRlZmluZSBHUElPRTAJCSooKHZvbGF0aWxlIHVjaGFyKikoQ09ORklHX1NZU19NQkFSKzB4MGMwMCkpCisjICBkZWZpbmUgRERSMAkJCSooKHZvbGF0aWxlIHVjaGFyKikoQ09ORklHX1NZU19NQkFSKzB4MGMwOCkpCisjICBkZWZpbmUgRFZPMAkJCSooKHZvbGF0aWxlIHVjaGFyKikoQ09ORklHX1NZU19NQkFSKzB4MGMwYykpCisjICBkZWZpbmUgRFZJMAkJCSooKHZvbGF0aWxlIHVjaGFyKikoQ09ORklHX1NZU19NQkFSKzB4MGMyMCkpCisjICBkZWZpbmUgT0RFMAkJCSooKHZvbGF0aWxlIHVjaGFyKikoQ09ORklHX1NZU19NQkFSKzB4MGMwNCkpCiAjICBkZWZpbmUgSTJDX0lOSVQJCXtHUElPRTB8PShTREEwfFNDTDApO09ERTB8PShTREEwfFNDTDApO0RWTzB8PShTREEwfFNDTDApO0REUjB8PShTREEwfFNDTDApO30KICMgIGRlZmluZSBJMkNfUkVBRAkJKChEVkkwJlNEQTApPzE6MCkKICMgIGRlZmluZSBJMkNfU0RBKHgpCXtpZih4KURWTzB8PVNEQTA7ZWxzZSBEVk8wJj1+U0RBMDt9CkBAIC0yMTMsMzIgKzIxMywzMiBAQAogIyAgZGVmaW5lIEkyQ19ERUxBWQkJe3VkZWxheSg1KTt9CiAjICBkZWZpbmUgSTJDX0FDVElWRQl7RERSMHw9U0RBMDt9CiAjICBkZWZpbmUgSTJDX1RSSVNUQVRFCXtERFIwJj1+U0RBMDt9Ci0jICBkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCi0jICBkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSIDB4NTcKLSNkZWZpbmUgQ0ZHX0kyQ19GQUNUX0FERFIJMHg1NworIyAgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAKKyMgIGRlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0ZBQ1RfQUREUgkweDU3CiAjZW5kaWYKIAogI2lmIGRlZmluZWQgKENPTkZJR19IQVJEX0kyQykKLSMgIGRlZmluZSBDRkdfSTJDX01PRFVMRQkyCQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwotIyAgZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiAxMDAga0h6ICovCi0jICBkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSIDB4NTQKLSNkZWZpbmUgQ0ZHX0kyQ19GQUNUX0FERFIJMHg1NAorIyAgZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkyCQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogMTAwIGtIeiAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSIDB4NTQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRkFDVF9BRERSCTB4NTQKICNlbmRpZgogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbiwgZXhwZWN0IG9uZSAxNiBNZWdhYnl0ZSBCYW5rIGF0IG1vc3QKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDApCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCiAKICN1bmRlZiBDT05GSUdfRkxBU0hfMTZCSVQJLyogRmxhc2ggaXMgOC1iaXQgKi8KIApAQCAtMjQ3LDI1ICsyNDcsMjUgQEAKICAqLwogI2lmIDAKIC8qIDJ4IE1UNDhMQzE2TTE2QTIgLSA3LjAgbnMgU0RSQU1TID0gNjQgTWVnYUJ5dGVzIFRvdGFsICovCi0jZGVmaW5lCUNGR19EUkFNX0REUgkJMAotI2RlZmluZSBDRkdfRFJBTV9FTU9ERQkJMAotI2RlZmluZSBDRkdfRFJBTV9NT0RFCQkweDAwOEQKLSNkZWZpbmUgQ0ZHX0RSQU1fQ09OVFJPTAkweDUxNEYwMDAwCi0jZGVmaW5lIENGR19EUkFNX0NPTkZJRzEJMHhDMjIzM0EwMAotI2RlZmluZSBDRkdfRFJBTV9DT05GSUcyCTB4ODhCNzAwMDQKLSNkZWZpbmUJQ0ZHX0RSQU1fVEFQX0RFTAkweDA4Ci0jZGVmaW5lIENGR19EUkFNX1JBTV9TSVpFCTB4MTkKKyNkZWZpbmUJQ09ORklHX1NZU19EUkFNX0REUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fRU1PREUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX01PREUJCTB4MDA4RAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQ09OVFJPTAkweDUxNEYwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9DT05GSUcxCTB4QzIyMzNBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0NPTkZJRzIJMHg4OEI3MDAwNAorI2RlZmluZQlDT05GSUdfU1lTX0RSQU1fVEFQX0RFTAkweDA4CisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9SQU1fU0laRQkweDE5CiAjZW5kaWYKICNpZiAxCiAvKiAyeCBNVDQ4TEMxNk0xNkEyIC0gNy41IG5zIFNEUkFNUyA9IDY0IE1lZ2FCeXRlcyBUb3RhbCAqLwotI2RlZmluZQlDRkdfRFJBTV9ERFIJCTAKLSNkZWZpbmUgQ0ZHX0RSQU1fRU1PREUJCTAKLSNkZWZpbmUgQ0ZHX0RSQU1fTU9ERQkJMHgwMENECi0jZGVmaW5lIENGR19EUkFNX0NPTlRST0wJMHg1MTRGMDAwMAotI2RlZmluZSBDRkdfRFJBTV9DT05GSUcxCTB4RDIzMzNBMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fQ09ORklHMgkweDhBRDcwMDA0Ci0jZGVmaW5lCUNGR19EUkFNX1RBUF9ERUwJMHgwOAotI2RlZmluZSBDRkdfRFJBTV9SQU1fU0laRQkweDE5CisjZGVmaW5lCUNPTkZJR19TWVNfRFJBTV9ERFIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0VNT0RFCQkwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9NT0RFCQkweDAwQ0QKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0NPTlRST0wJMHg1MTRGMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQ09ORklHMQkweEQyMzMzQTAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9DT05GSUcyCTB4OEFENzAwMDQKKyNkZWZpbmUJQ09ORklHX1NZU19EUkFNX1RBUF9ERUwJMHgwOAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fUkFNX1NJWkUJMHgxOQogI2VuZGlmCiAKIC8qCkBAIC0yNzgsMzUgKzI3OCwzNSBAQAogLyoKICAqIFZQRCBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19GQUNUX09GRlNFVAkJMHgxODAwCi0jZGVmaW5lIENGR19GQUNUX1NJWkUJCTB4MDgwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZBQ1RfT0ZGU0VUCQkweDE4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GQUNUX1NJWkUJCTB4MDgwMAogCiAvKgogICogTWVtb3J5IG1hcAogICoKICAqIFdhcm5pbmchISEgd2l0aCB0aGUgY3VycmVudCBCZXN0Q29tbSBUYXNrLCBNQkFSIE1VU1QgQkUgc2V0IHRvIDB4ZjAwMDAwMDAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJCTB4ZjAwMDAwMDAJLyogRE8gTk9UIENIQU5HRSB0aGlzICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCQkweGYwMDAwMDAwCS8qIERPIE5PVCBDSEFOR0UgdGhpcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0zMjEsMzIgKzMyMSwzMiBAQAogICogUENJIGRpc2FibGVkCiAgKiBFdGhlcm5ldCAxMDAgd2l0aCBNRAogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMDA1ODA0NAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDAwMDU4MDQ0CiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDFmMDAwMDAJLyogMSAuLi4gMzEgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDFmMDAwMDAJLyogMSAuLi4gMzEgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIApAQCAtMzU0LDEyICszNTQsMTIgQEAKICAgI2RlZmluZSBDT05GSUdfUlRDX01LNDhUNTkJMQkvKiB1c2UgTTQ4VDA4IG9uIEVWQUw1MjAwICovCiAgICNkZWZpbmUgUlRDKHJlZykJCSgweGYwMDEwMDAwK3JlZykKICAgLyogc2V0dXAgQ1MyIGZvciBNNDhUMDguIE11c3QgTUFQIDY0a0IgKi8KLSAgI2RlZmluZSBDRkdfQ1MyX1NUQVJUCVJUQygwKQotICAjZGVmaW5lIENGR19DUzJfU0laRQkweDEwMDAwCisgICNkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJUlRDKDApCisgICNkZWZpbmUgQ09ORklHX1NZU19DUzJfU0laRQkweDEwMDAwCiAgIC8qIHNldHVwIENTMiBjb25maWd1cmF0aW9uIHJlZ2lzdGVyOiAqLwogICAvKiBXYWl0UCA9IDAsIFdhaXRYID0gNCwgTVg9MCwgQUw9MSwgQUE9MSwgQ0U9MSAqLwogICAvKiBBUz0yLCBEUz0wLCBCYW5rPTAsIFdUeXA9MCwgV1M9MCwgUlM9MCwgV089MCwgUk89MCAqLwotICAjZGVmaW5lIENGR19DUzJfQ0ZHCTB4MDAwNDc4MDAKKyAgI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DRkcJMHgwMDA0NzgwMAogI2Vsc2UKICAgI2RlZmluZSBDT05GSUdfUlRDX01QQzUyMDAJMQkvKiB1c2UgaW50ZXJuYWwgTVBDNTIwMCBSVEMgKi8KICNlbmRpZgpAQCAtMzY3LDE5ICszNjcsMTkgQEAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMQotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweDdmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweDdmMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgU3VwcG9ydHMgSURFIGhhcmRkaXNrCkBAIC0zOTQsMjMgKzM5NCwyMyBAQAogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEKICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1YykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVjKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFICAgICAgICAgIDQKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFICAgICAgICAgIDQKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UT1A4NjAuaCBiL2luY2x1ZGUvY29uZmlncy9UT1A4NjAuaAppbmRleCBiMjcwODMyLi44YzJiZWZiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVE9QODYwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RPUDg2MC5oCkBAIC02MCw3ICs2MCw3IEBACiAgKiBDTE9DSyBzZXR0aW5ncwogICovCiAjZGVmaW5lCUNPTkZJR19TWVNDTEsJNDkxNTIwMDAKLSNkZWZpbmUJQ0ZHX1hUQUwJCTMyNzY4CisjZGVmaW5lCUNPTkZJR19TWVNfWFRBTAkJMzI3NjgKICNkZWZpbmUJQ09ORklHX0VCREYJCTEKICNkZWZpbmUJQ09ORklHX0NPTQkJMwogI2RlZmluZQlDT05GSUdfUlRDX01QQzh4eApAQCAtNjgsMzIgKzY4LDMyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQaHlzaWNhbCBtZW1vcnkgbWFwIGFzIGRlZmluZWQgYnkgRU1LCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAJLyogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlciAqLwotI2RlZmluZQlDRkdfRkxBU0hfQkFTRQkweDgwMDAwMDAwCS8qIEZMQVNIIGluIGZpbmFsIG1hcHBpbmcgKi8KLSNkZWZpbmUJQ0ZHX0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIERSQU0gaW4gZmluYWwgbWFwcGluZyAqLwotI2RlZmluZQlDRkdfRkxBU0hfTUFYCTB4MDA0MDAwMDAJLyogbWF4IEZMQVNIIHRvIGV4cGVjdCAqLwotI2RlZmluZQlDRkdfRFJBTV9NQVgJMHgwMTAwMDAwMAkvKiBtYXggRFJBTSB0byBleHBlY3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCS8qIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9CQVNFCTB4ODAwMDAwMDAJLyogRkxBU0ggaW4gZmluYWwgbWFwcGluZyAqLworI2RlZmluZQlDT05GSUdfU1lTX0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIERSQU0gaW4gZmluYWwgbWFwcGluZyAqLworI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX01BWAkweDAwNDAwMDAwCS8qIG1heCBGTEFTSCB0byBleHBlY3QgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19EUkFNX01BWAkweDAxMDAwMDAwCS8qIG1heCBEUkFNIHRvIGV4cGVjdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBkZXJpdmVkIHZhbHVlcwogICovCi0jZGVmaW5lCUNGR19NRgkJCShDT05GSUdfU1lTQ0xLL0NGR19YVEFMKQotI2RlZmluZQlDRkdfQ1BVQ0xPQ0sJQ09ORklHX1NZU0NMSwotI2RlZmluZQlDRkdfQlJHQ0xPQ0sJQ09ORklHX1NZU0NMSwotI2RlZmluZQlDRkdfQlVTQ0xPQ0sJKENPTkZJR19TWVNDTEsgPj4gQ09ORklHX0VCREYpCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZQlDT05GSUdfU1lTX01GCQkJKENPTkZJR19TWVNDTEsvQ09ORklHX1NZU19YVEFMKQorI2RlZmluZQlDT05GSUdfU1lTX0NQVUNMT0NLCUNPTkZJR19TWVNDTEsKKyNkZWZpbmUJQ09ORklHX1NZU19CUkdDTE9DSwlDT05GSUdfU1lTQ0xLCisjZGVmaW5lCUNPTkZJR19TWVNfQlVTQ0xPQ0sJKENPTkZJR19TWVNDTEsgPj4gQ09ORklHX0VCREYpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KICNkZWZpbmUJQ09ORklHXzh4eF9HQ0xLX0ZSRVEJQ09ORklHX1NZU0NMSwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZQlDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQ0ZJCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENvbW1hbmQgaW50ZXJwcmV0ZXIKQEAgLTEwNSw3ICsxMDUsNyBAQAogLyoKICAqIEFsbG93IHBhcnRpYWwgY29tbWFuZHMgdG8gYmUgbWF0Y2hlZCB0byB1bmlxdWVuZXNzLgogICovCi0jZGVmaW5lIENGR19NQVRDSF9QQVJUSUFMX0NNRAorI2RlZmluZSBDT05GSUdfU1lTX01BVENIX1BBUlRJQUxfQ01ECiAKIAogLyoKQEAgLTEyNiwzNCArMTI2LDM0IEBACiAKIAogI2RlZmluZQlDT05GSUdfQVVUT1NDUklQVAkJMQotI2RlZmluZQlDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQorI2RlZmluZQlDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEKICN1bmRlZglDT05GSUdfTE9BRFNfRUNITwkJCS8qIE5PIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwogCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogSHVzaCBwYXJzZSBmb3IgVS1Cb290CSovCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIEh1c2ggcGFyc2UgZm9yIFUtQm9vdAkqLwogCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0gI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisgI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0gI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IFRlc3QgQ29tbWFuZAogICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50IGhhbmRsZXIKQEAgLTE2MywxNiArMTYzLDE2IEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogdHVybiBvbiBFRVBST00gZW52IGZlYXR1cmUgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MTAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MDcwMAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSIDB4NTcKLSNkZWZpbmUgQ0ZHX0ZBQ1RfT0ZGU0VUCQkweDE4MDAKLSNkZWZpbmUgQ0ZHX0ZBQ1RfU0laRQkJMHgwODAwCi0jZGVmaW5lIENGR19JMkNfRkFDVF9BRERSCTB4NTcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCi0jZGVmaW5lIENGR19FRVBST01fU0laRSAweDIwMDAKLSNkZWZpbmUJQ0ZHX0kyQ19TUEVFRAkxMDAwMDAKLSNkZWZpbmUJQ0ZHX0kyQ19TTEFWRQkweEZFCi0jZGVmaW5lCUNGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAweDU3CisjZGVmaW5lIENPTkZJR19TWVNfRkFDVF9PRkZTRVQJCTB4MTgwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZBQ1RfU0laRQkJMHgwODAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0ZBQ1RfQUREUgkweDU3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1NJWkUgMHgyMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECTEwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TTEFWRQkweEZFCisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTIKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCiAKQEAgLTE5NSw3ICsxOTUsNyBAQAogI2RlZmluZQlJMkNfVFJJU1RBVEUJeyBfX0kyQ19ESVIgJj0gflNEQTsgfQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBkZWZpbmVzIHdlIG5lZWQgdG8gZ2V0IEZFQyBydW5uaW5nCkBAIC0yMDMsNyArMjAzLDcgQEAKICNkZWZpbmUJQ09ORklHX05FVF9NVUxUSQkxCS8qIHRoZSBvbmx5IHdheSB0byBnZXQgdGhlIEZFQyBpbiAqLwogI2RlZmluZSBDT05GSUdfRkVDX0VORVQJCTEJLyogRXRoZXJuZXQgb25seSB2aWEgRkVDCSovCiAjZGVmaW5lCUZFQ19FTkVUCQkxCS8qIGV0aC5jIG5lZWRzIGl0IHRoYXQgd2F5Li4uICovCi0jZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkJMQorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQkxCiAjZGVmaW5lIENPTkZJR19NSUkJCTEKICNkZWZpbmUgQ09ORklHX01JSV9JTklUCQkxCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMzEKQEAgLTIxMSwzNSArMjExLDM1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBhZHJlc3NlcwogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg4MDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyZjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1ZQRF9TSVpFCTI1NiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciB2cGQgYnVmZmVyICovCi0jZGVmaW5lIENGR19JTklUX1ZQRF9PRkZTRVQJKENGR19HQkxfREFUQV9PRkZTRVQgLSBDRkdfSU5JVF9WUERfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCShDRkdfSU5JVF9WUERfT0ZGU0VULTgpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyZjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfVlBEX1NJWkUJMjU2IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIHZwZCBidWZmZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1ZQRF9PRkZTRVQJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gQ09ORklHX1NZU19JTklUX1ZQRF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfVlBEX09GRlNFVC04KQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qIEludGVycnVwdCBsZXZlbCBhc3NpZ25tZW50cy4KQEAgLTI1OSw3ICsyNTksNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAJCQkJCS8qIHVzZWQgaW4gc3RhcnQuUyAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCQkJCQkvKiB1c2VkIGluIHN0YXJ0LlMgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjc5LDcgKzI3OSw3IEBACiAgKgkxCUZJT1BECTAJCQlGb3JjZSBJL08gcHVsbCBkb3duCiAgKgk1CTAJCTAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1RFWFBTIHwgKChDRkdfTUYtMSk8PDIwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9URVhQUyB8ICgoQ09ORklHX1NZU19NRi0xKTw8MjApKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wJCQkJMTEtOQpAQCAtMjk2LDEwICsyOTYsMTAgQEAKICAqCTEJU1dQCQkwLzEJCQlTb2Z0d2FyZSB3YXRjaGRvZyBwcmVzY2FsZSAoMT0vMjA0OCkKICAqLwogI2lmIGRlZmluZWQgKENPTkZJR19XQVRDSERPRykKLSAjZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyAjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSAjZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRikKKyAjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzI4LDIxICszMjgsMjEgQEAKICAqCTEJQjNERAkwCQkJQmFuayAzIGRvdWJsZSBkcml2ZQogICoJNAkwCQkwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX01MUkMxMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9NTFJDMTEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURiB8IFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGIHwgUElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzY3LDkgKzM2Nyw5IEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCTAKICNpZmRlZiBDT05GSUdfRUJERgotICNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMTEgfCBTQ0NSX1RCUyB8IFNDQ1JfRUJERjAxKQorICNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTExIHwgU0NDUl9UQlMgfCBTQ0NSX0VCREYwMSkKICNlbHNlCi0gI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00xMSB8IFNDQ1JfVEJTKQorICNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTExIHwgU0NDUl9UQlMpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzc4LDkgKzM3OCw5IEBACiAgKiBQcmVsaW1pbmFyeSBWYWx1ZXMKICAqLwogLyogRkxBU0ggdGltaW5nOiBDU05UPTEgQUNTPTEwIEJJSD0xIFNDWT00IFNFVEE9MCBUTFJYPTEgRUhUUj0xCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfNF9DTEsgfCBPUl9UUkxYIHwgT1JfRUhUUikKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKC1DRkdfRkxBU0hfTUFYIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKENGR19GTEFTSF9CQVNFIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVY0IHwgT1JfQkkgfCBPUl9TQ1lfNF9DTEsgfCBPUl9UUkxYIHwgT1JfRUhUUikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCSgtQ09ORklHX1NZU19GTEFTSF9NQVggfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCUl9QU18xNiB8IEJSX1YgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBtaXNjCkBAIC00MjgsMTUgKzQyOCwxNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmYXVsdHMgZm9yIEF1dG9zY3JpcHQKICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lCUNGR19URlRQX0xPQURBRERSCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19URlRQX0xPQURBRERSCTB4MDAxMDAwMDAKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU01MjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNNTIwMC5oCmluZGV4IDJjYzIxNWEuLmRiN2Y1MWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU01MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTUyMDAuaApAQCAtNDIsNyArNDIsNyBAQAogI2RlZmluZSBDT05GSUdfU1RLNTJYWAkJMQkvKiAuLi4gb24gYSBTVEs1MlhYIGJvYXJkCQkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6CQkqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6CQkqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0gJKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJCQkqLwpAQCAtNTQsMTEgKzU0LDExIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxCQkJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMJCQkqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAjZGVmaW5lIENPTkZJR19CT09UQ09VTlRfTElNSVQJMQogCiAjaWZkZWYgQ09ORklHX0ZPMzAwCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkJMQkvKiBlbmFibGUgbnVsbCBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkJMQkvKiBlbmFibGUgbnVsbCBkZXZpY2UgKi8KICNkZWZpbmUgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkxCS8qIGVuYWJsZSBzaWxlbnQgc3RhcnR1cCAqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEJLyogdXNlZCB0byBkZXRlY3QgUzEgc3dpdGNoIHBvc2l0aW9uICovCiAjZGVmaW5lIENPTkZJR19VU0JfQklOX0ZJWFVQCQkxCS8qIGZvciBhIGJ1Z2d5IFVTQiBkZXZpY2UgKi8KQEAgLTc1LDcgKzc1LDcgQEAKICNkZWZpbmUgQ09ORklHX1BTMktCRAkJCS8qIEFULVBTLzIgS2V5Ym9hcmQJCSovCiAjZGVmaW5lIENPTkZJR19QUzJNVUxUCQkJLyogLi4gb24gUFMvMiBNdWx0aXBsZXhlcgkqLwogI2RlZmluZSBDT05GSUdfUFMyU0VSSUFMCTYJLyogLi4gb24gUFNDNgkJCSovCi0jZGVmaW5lIENPTkZJR19QUzJNVUxUX0RFTEFZCShDRkdfSFovMikJLyogSW5pdGlhbCBkZWxheQkqLworI2RlZmluZSBDT05GSUdfUFMyTVVMVF9ERUxBWQkoQ09ORklHX1NZU19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKICNlbmRpZiAvKiBDT05GSUdfU1RLNTJYWCAqLwogCkBAIC05OSw3ICs5OSw3IEBACiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAkJMQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCQkxCiAjZW5kaWYJLyogQ09ORklHX1NUSzUyWFggKi8KIApAQCAtMTIyLDcgKzEyMiw3IEBACiAjZGVmaW5lIENPTkZJR19WR0FfQVNfU0lOR0xFX0RFVklDRQogI2RlZmluZSBDT05GSUdfVklERU9fU1dfQ1VSU09SCiAjZGVmaW5lIENPTkZJR19TUExBU0hfU0NSRUVOCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCiAjZW5kaWYgLyogI2lmbmRlZiBDT05GSUdfVFFNNTIwMFMgKi8KIAogCkBAIC0xMzQsMjQgKzEzNCwyNCBAQAogLyogVVNCICovCiAjaWYgZGVmaW5lZChDT05GSUdfU1RLNTJYWCkgfHwgZGVmaW5lZChDT05GSUdfRk8zMDApCiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcKLSNkZWZpbmUgQ0ZHX09IQ0lfQkVfQ09OVFJPTExFUgorI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfQkVfQ09OVFJPTExFUgogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKICNkZWZpbmUgQ09ORklHX0NNRF9GQVQKICNkZWZpbmUgQ09ORklHX0NNRF9VU0IKIAotI3VuZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCU1QQzVYWFhfVVNCCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJIm1wYzUyMDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCU1QQzVYWFhfVVNCCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJtcGM1MjAwIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CiAKICNlbmRpZgogCiAjaWZuZGVmIENPTkZJR19DQU01MjAwCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9JMkMpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDKQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUE9TVApAQCAtMjE1LDcgKzIxNSw3IEBACiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIGRpc3BsYXkgaW1hZ2UgdGltZXN0YW1wcyAqLwogCiAjaWYgKFRFWFRfQkFTRSAhPSAweEZGRjAwMDAwKQotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQkvKiBCb290IGxvdyAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEJLyogQm9vdCBsb3cgKi8KICNlbmRpZgogCiAvKgpAQCAtMjI5LDcgKzIyOSw3IEBACiAKICN1bmRlZglDT05GSUdfQk9PVEFSR1MKIAotI2lmIGRlZmluZWQoQ09ORklHX1RRTTUyMDBfQikgJiYgIWRlZmluZWQoQ0ZHX0xPV0JPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfVFFNNTIwMF9CKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX0xPV0JPT1QpCiAjIGRlZmluZSBFTlZfVVBEVAkJCQkJCQlcCiAJInVwZGF0ZT1wcm90ZWN0IG9mZiBGRkYwMDAwMCArJHtmaWxlc2l6ZX07IgkJCVwKIAkJImVyYXNlIEZGRjAwMDAwICske2ZpbGVzaXplfTsiCQkJCVwKQEAgLTMwNywxNyArMzA3LDE3IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLKSAmJiAhZGVmaW5lZChDT05GSUdfQ0FNNTIwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEspICYmICFkZWZpbmVkKENPTkZJR19DQU01MjAwKQogLyoKICAqIFBDSSBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbgogICoKICAqIEFjdHVhbGx5IGEgUENJIENsb2NrIG9mIDY2IE1IeiBpcyBvbmx5IHNldCAoaW4gY3B1X2luaXQuYykgaWYKLSAqIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sgb2YKKyAqIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrIG9mCiAgKiA2NiBNSHogeWV0IGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIGEgSVBCIEJ1cyBDbG9jayBvZiA2NiBNSHouCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLwogI2VuZGlmCiAKIC8qCkBAIC0zMjUsOSArMzI1LDkgQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogI2lmZGVmIENPTkZJR19UUU01MjAwX1JFVjEwMAotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBmb3IgcmV2LiAxMDAgYm9hcmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkxCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIGZvciByZXYuIDEwMCBib2FyZCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgZm9yIGFsbCBvdGhlciByZXZzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMiBmb3IgYWxsIG90aGVyIHJldnMgKi8KICNlbmRpZgogCiAvKgpAQCAtMzM2LDExICszMzYsMTEgQEAKICAqIFBsZWFzZSBub3RpY2UsIHRoYXQgdGhlIHJlc3VsdGluZyBjbG9jayBmcmVxdWVuY3kgY291bGQgZGlmZmVyIGZyb20gdGhlCiAgKiBjb25maWd1cmVkIHZhbHVlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIEkyQyBjbG9jayBpcyBkZXJpdmVkIGZyb20gc3lzdGVtCiAgKiBjbG9jayBvdmVyIGEgZnJlcXVlbmN5IGRpdmlkZXIgd2l0aCBvbmx5IGEgZmV3IGRpdmlkZXIgdmFsdWVzLiBVLWJvb3QKLSAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ0ZHX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAorICogY2FsY3VsYXRlcyB0aGUgYmVzdCBhcHByb3hpbWF0aW9uIGZvciBDT05GSUdfU1lTX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAogICogYXBwcm94aW1hdGlvbiBhbGx3YXlzIGxpZXMgYmVsb3cgdGhlIGNvbmZpZ3VyZWQgdmFsdWUsIG5ldmVyIGFib3ZlLgogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbiBmb3Igb25ib2FyZCBFRVBST00gTTI0QzMyIChNMjRDNjQgc2hvdWxkIHdvcmsKQEAgLTM0OCw2MiArMzQ4LDYyIEBACiAgKiBFRVBST00gKDI0QzY0KSBpcyBvbiB0aGUgc2FtZSBJMkMgYWRkcmVzcyAoYnV0IG9uIG90aGVyIEkyQyBidXMpLCBzbyB0aGUKICAqIHNhbWUgY29uZmlndXJhdGlvbiBjb3VsZCBiZSB1c2VkLgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCiAKIC8qCiAgKiBIVy1Nb25pdG9yIGNvbmZpZ3VyYXRpb24gb24gTWluaS1GQVAKICAqLwogI2lmIGRlZmluZWQgKENPTkZJR19NSU5JRkFQKQotI2RlZmluZSBDRkdfSTJDX0hXTU9OX0FERFIJCTB4MkMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfSFdNT05fQUREUgkJMHgyQwogI2VuZGlmCiAKIC8qIExpc3Qgb2YgSTJDIGFkZHJlc3NlcyB0byBiZSB2ZXJpZmllZCBieSBQT1NUICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX01JTklGQVApCiAjdW5kZWYgSTJDX0FERFJfTElTVAotI2RlZmluZSBJMkNfQUREUl9MSVNUCXsJQ0ZHX0kyQ19FRVBST01fQUREUiwJXAotCQkJCUNGR19JMkNfSFdNT05fQUREUiwJXAotCQkJCUNGR19JMkNfU0xBVkUgfQorI2RlZmluZSBJMkNfQUREUl9MSVNUCXsJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19IV01PTl9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfU0xBVkUgfQogI2VuZGlmCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCiAKICNpZiBkZWZpbmVkKENPTkZJR19DQU01MjAwKSAmJiBkZWZpbmVkKENPTkZJR19DQU01MjAwX05JT1NGTEFTSCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBpbnQgLyogbWFpbiBmbGFzaCBkZXZpY2Ugd2l0aCAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBpbnQgLyogbWFpbiBmbGFzaCBkZXZpY2Ugd2l0aCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBCi0jZGVmaW5lIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCTEJLyogTklPUyBmbGFzaCBpcyBhIDE2Yml0IGRldmljZSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFVgkxCS8qIE5JT1MgZmxhc2ggaXMgYSAxNmJpdCBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgKICNlbHNlCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0JPT1RDU19TVEFSVCB9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfQk9PVENTX1NUQVJUIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQogCiAjaWYgZGVmaW5lZCAoQ09ORklHX0NBTTUyMDApCi0jIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwNDAwMDApCisjIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDQwMDAwKQogI2VsaWYgZGVmaW5lZChDT05GSUdfVFFNNTIwMF9CKQotIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDgwMDAwKQorIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA4MDAwMCkKICNlbHNlCi0jIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwNjAwMDApCisjIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDYwMDAwKQogI2VuZGlmCiAKIC8qIER5bmFtaWMgTVREIHBhcnRpdGlvbiBzdXBwb3J0ICovCkBAIC00MTIsNyArNDEyLDcgQEAKIAogI2lmZGVmIENPTkZJR19TVEs1MlhYCiAjIGlmIGRlZmluZWQoQ09ORklHX1RRTTUyMDBfQikKLSMgIGlmIGRlZmluZWQoQ0ZHX0xPV0JPT1QpCisjICBpZiBkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKICMgICBkZWZpbmUgTVREUEFSVFNfREVGQVVMVAkibXRkcGFydHM9VFFNNTIwMC0wOjFtKGZpcm13YXJlKSwiCVwKIAkJCQkJCSIyNTZrKGR0YiksIgkJXAogCQkJCQkJIjIzMDRrKGtlcm5lbCksIglcCkBAIC00MjcsNyArNDI3LDcgQEAKIAkJCQkJCSI4bShtaXNjKSwiCQlcCiAJCQkJCQkiMTVtKGJpZy1mcyksIgkJXAogCQkJCQkJIjFtKGZpcm13YXJlKSIKLSMgIGVuZGlmIC8qIENGR19MT1dCT09UICovCisjICBlbmRpZiAvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KICMgZWxzZQkvKiAhQ09ORklHX1RRTTUyMDBfQiAqLwogIyAgIGRlZmluZSBNVERQQVJUU19ERUZBVUxUCSJtdGRwYXJ0cz1UUU01MjAwLTA6NjQwayhmaXJtd2FyZSksIglcCiAJCQkJCQkiMTI4ayhkdGIpLCIJCVwKQEAgLTQ2OSwzOSArNDY5LDM5IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIE9OLUNoaXAgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKICNpZiBkZWZpbmVkIChDT05GSUdfQ0FNNTIwMCkKLSMgZGVmaW5lIENGR19NT05JVE9SX0xFTgkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworIyBkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2VsaWYgZGVmaW5lZChDT05GSUdfVFFNNTIwMF9CKQotIyBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCisjIGRlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotIyBkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yCSovCisjIGRlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgPDwgMTApCS8qIFJlc2VydmUgMTAyNCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCA8PCAxMCkJLyogUmVzZXJ2ZSAxMDI0IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTU1NSwyMyArNTU1LDIzIEBACiAgKgkgMTAwIC0+IFVBUlQgKG9uIGFsbCBib2FyZHMpLgogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX01JTklGQVApCi0jIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4OTEwMDAwMDQKKyMgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OTEwMDAwMDQKICNlbGlmIGRlZmluZWQgKENPTkZJR19TVEs1MlhYKQogIyBpZiBkZWZpbmVkIChDT05GSUdfU1RLNTJYWF9SRVYxMDApCi0jICBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDgxNTAwMDE0CisjICBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg4MTUwMDAxNAogIyBlbHNlIC8qIFNUSzUyeHggUkVWMjAwIGFuZCBhYm92ZSAqLwogIyAgaWYgZGVmaW5lZCAoQ09ORklHX1RRTTUyMDBfUkVWMTAwKQogIyAgIGVycm9yIFRRTTUyMDAgUkVWMTAwIG5vdCBzdXBwb3J0ZWQgb24gU1RLNTJYWCBSRVYyMDAgb3IgYWJvdmUKICMgIGVsc2UvKiBUUU01MjAwIFJFVjIwMCBhbmQgYWJvdmUgKi8KLSMgICBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDkxNTAwNDA0CisjICAgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OTE1MDA0MDQKICMgIGVuZGlmCiAjIGVuZGlmCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfRk8zMDApCi0jIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4OTE1MDJjMjQKKyMgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OTE1MDJjMjQKICNlbGlmIGRlZmluZWQgKENPTkZJR19DQU01MjAwKQotIyBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDgwNTBBNDQ0CisjIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDgwNTBBNDQ0CiAjZWxzZSAgLyogVE1RNTIwMCBJbmJldHJpZWJuYWhtZS1Cb2FyZCAqLwotIyBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDgxMDAwMDA0CisjIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDgxMDAwMDA0CiAjZW5kaWYKIAogLyoKQEAgLTU3OSw4ICs1NzksOCBAQAogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX1NUSzUyWFgpICYmICFkZWZpbmVkIChDT05GSUdfU1RLNTJYWF9SRVYxMDApCiAjIGRlZmluZSBDT05GSUdfUlRDX000MVQxMSAxCi0jIGRlZmluZSBDRkdfSTJDX1JUQ19BRERSIDB4NjgKLSMgZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAgICAgLyogYmVjYXVzZSBMaW51eCB1c2VzIHRoZSBzYW1lIGJhc2UKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSIDB4NjgKKyMgZGVmaW5lIENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUgkxOTAwICAgIC8qIGJlY2F1c2UgTGludXggdXNlcyB0aGUgc2FtZSBiYXNlCiAJCQkJCSAgIHllYXIgKi8KICNlbHNlCiAjIGRlZmluZSBDT05GSUdfUlRDX01QQzUyMDAJMQkvKiB1c2UgaW50ZXJuYWwgTVBDNTIwMCBSVEMgKi8KQEAgLTU4OSwzNiArNTg5LDM2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCiAvKiBFbmFibGUgYW4gYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdCAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qCiAgKiBFbmFibGUgbG9vcHcgY29tbWFuZC4KQEAgLTYyOSwyMiArNjI5LDIyIEBACiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jaWZkZWYgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwOERGMzAgLyogZm9yIHBjaV9jbGsgID0gNjYgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNERGMzAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAjZGVmaW5lIENPTkZJR19MQVNUX1NUQUdFX0lOSVQKIApAQCAtNjUyLDM0ICs2NTIsMzQgQEAKICAqIFNSQU0gLSBEbyBub3QgbWFwIGJlbG93IDIgR0IgaW4gYWRkcmVzcyBzcGFjZSwgYmVjYXVzZSB0aGlzIGFyZWEgaXMgdXNlZAogICogZm9yIFNEUkFNIGF1dG9zaXppbmcuCiAgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9TVEFSVAkJMHhFNTAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX1NJWkUJCTB4MTAwMDAwCS8qIDEgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9DRkcJCTB4MDAwNEQ5MzAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU0laRQkJMHgxMDAwMDAJLyogMSBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DRkcJCTB4MDAwNEQ5MzAKIAogLyoKICAqIEdyYWZpYyBjb250cm9sbGVyIC0gRG8gbm90IG1hcCBiZWxvdyAyIEdCIGluIGFkZHJlc3Mgc3BhY2UsIGJlY2F1c2UgdGhpcwogICogYXJlYSBpcyB1c2VkIGZvciBTRFJBTSBhdXRvc2l6aW5nLgogICovCiAjZGVmaW5lIFNNNTAxX0ZCX0JBU0UJCTB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJKFNNNTAxX0ZCX0JBU0UpCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHg0MDAwMDAwCS8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDhGNDhGRjcwCi0jZGVmaW5lIFNNNTAxX01NSU9fQkFTRQkJQ0ZHX0NTMV9TVEFSVCArIDB4MDNFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCShTTTUwMV9GQl9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDQwMDAwMDAJLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDhGNDhGRjcwCisjZGVmaW5lIFNNNTAxX01NSU9fQkFTRQkJQ09ORklHX1NZU19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMxMQkvKiAxIGRlYWQgY3ljbGUgZm9yIGZsYXNoIGFuZCBTTTUwMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMTEJLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NBTTUyMDApCi0jZGVmaW5lIENGR19DUzRfU1RBUlQJCTB4QjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTNF9TSVpFCQkweDAwMDEwMDAwCi0jZGVmaW5lIENGR19DUzRfQ0ZHCQkweDAxMDE5QzEwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M0X1NUQVJUCQkweEIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M0X1NJWkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzRfQ0ZHCQkweDAxMDE5QzEwCiAKLSNkZWZpbmUgQ0ZHX0NTNV9TVEFSVAkJMHhEMDAwMDAwMAotI2RlZmluZSBDRkdfQ1M1X1NJWkUJCTB4MDEyMDgwMDAKLSNkZWZpbmUgQ0ZHX0NTNV9DRkcJCTB4MTQxNEJGMTAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzVfU1RBUlQJCTB4RDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzVfU0laRQkJMHgwMTIwODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNV9DRkcJCTB4MTQxNEJGMTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVVNCIHN0dWZmCkBAIC03MDEsMjQgKzcwMSwyNCBAQAogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKENGR19BVEFfREFUQV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKIAogLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMJCQkJCQkgICAgICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQk0CisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAogCiAvKiBTdXBwb3J0IEFUQVBJIGRldmljZXMgKi8KICNkZWZpbmUgQ09ORklHX0FUQVBJICAgICAgICAgICAgMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTgyM0wuaCBiL2luY2x1ZGUvY29uZmlncy9UUU04MjNMLmgKaW5kZXggZGM0NTgyZi4uMjIzMjY5ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTgyM0wuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODIzTC5oCkBAIC04Niw3ICs4Niw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEzOCwzMiArMTM4LDMyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE3Myw0NyArMTczLDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMjMsNyArMjIzLDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIE1ha2Ugc3VyZSB0byByZW1hcCBmbGFzaGVzIGNvcnJlY3RseSAqLwogCkBAIC0yNDIsMTYgKzI0MiwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjEsMTAgKzI2MSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjczLDkgKzI3Myw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI4MywyMCArMjgzLDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMzA0LDcgKzMwNCw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMTMsNyArMzEzLDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMjIsMTQgKzMyMiwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zNDIsMjggKzM0MiwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzc4LDIyICszNzgsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtNDA0LDE5ICs0MDQsMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUJQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDQ3LDM0ICs0NDcsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04MjNNLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODIzTS5oCmluZGV4IDdlYTczNDIuLmFlZDVkNWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04MjNNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTgyM00uaApAQCAtODQsNyArODQsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMzMsMzIgKzEzMywzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjgsNDcgKzE2OCw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4NDAwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIxOSw3ICsyMTksNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjM4LDE2ICsyMzgsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU3LDEwICsyNTcsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2OSw5ICsyNjksOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzksMjAgKzI3OSwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTMwMCw3ICszMDAsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzA5LDcgKzMwOSw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzE4LDE0ICszMTgsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzM4LDI4ICszMzgsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3NCwyMiArMzc0LDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTQwMCwxOSArNDAwLDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQ0MywzNCArNDQzLDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODI2MC5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTgyNjAuaAppbmRleCAyZDU0ZDIzLi41NGY0YjMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODI2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04MjYwLmgKQEAgLTkzLDggKzkzLDggQEAKIC8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCiAjdW5kZWYgIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCkBAIC0xMjYsMTAgKzEyNiwxMCBAQAogI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAjZGVmaW5lIENPTkZJR19JMkNfWAogCkBAIC0xODMsNyArMTgzLDcgQEAKICAqICAtIFJYIGNsayBpcyBDTEsxMQogICogIC0gVFggY2xrIGlzIENMSzEyCiAgKi8KLSMgZGVmaW5lIENGR19DTVhTQ1JfVkFMVUUJKENNWFNDUl9SUzFDU19DTEsxMSB8IENNWFNDUl9UUzFDU19DTEsxMikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YU0NSX1ZBTFVFCShDTVhTQ1JfUlMxQ1NfQ0xLMTEgfCBDTVhTQ1JfVFMxQ1NfQ0xLMTIpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQogCkBAIC0xOTMsMTAgKzE5MywxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX09OX0ZDQywgQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTIxMyw3ICsyMTMsNyBAQAogI2VuZGlmCS8qIENPTkZJR19NUEM4MjU1ICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTI0NSw2OSArMjQ1LDY5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MgMHhGRkZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgMHhGRkZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAgICAgICAgKDggPDwgMjApICAgICAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogCiAvKiBXaGF0IHNob3VsZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBtYWluIEZMQVNIIGJlIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTUJ5dGVzKT8gVGhpcyBtdXN0IGNvbnRhaW4gVEVYVF9CQVNFIGZyb20gYm9hcmQvdHFtODI2MC9jb25maWcubWsKICAqIFRoZSBtYWluIEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQgdG8gKkNTMC4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxX0JBU0UgMHg2MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgMzIKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9TSVpFIDMyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9CQVNFIDB4NjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRSAzMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9TSVpFIDMyCiAKIC8qIEZsYXNoIGJhbmsgc2l6ZSAoZm9yIHByZWxpbWluYXJ5IHNldHRpbmdzKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFIENGR19GTEFTSDBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgQ09ORklHX1NZU19GTEFTSDBfU0laRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCiAKICNpZiAwCiAvKiBTdGFydCBwb3J0IHdpdGggZW52aXJvbm1lbnQgaW4gZmxhc2g7IHN3aXRjaCB0byBFRVBST00gbGF0ZXIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFKzB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSsweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAogI2Vsc2UKQEAgLTMyMCw2NyArMzIwLDY3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KICNkZWZpbmUJX19IUkNXX19BTExfXwkJKEhSQ1dfQ0lQIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUykKIAogI2lmIGRlZmluZWQoQ09ORklHX01QQzgyNTUpIHx8IGRlZmluZWQoQ09ORklHX01QQzgyNjUpCi0jICBkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fIHwgSFJDV19NT0RDS19IMDExMSkKKyMgIGRlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fIHwgSFJDV19NT0RDS19IMDExMSkKICNlbHNlCS8qICEgTVBDODI1NSAmJiAhTVBDODI2NSAqLwogIyBpZiBkZWZpbmVkKENPTkZJR18yNjZNSHopCi0jICBkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fIHwgSFJDV19NT0RDS19IMDExMSkKKyMgIGRlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fIHwgSFJDV19NT0RDS19IMDExMSkKICMgZWxpZiBkZWZpbmVkKENPTkZJR18zMDBNSHopCi0jICBkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fIHwgSFJDV19NT0RDS19IMDExMCkKKyMgIGRlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fIHwgSFJDV19NT0RDS19IMDExMCkKICMgZWxzZQotIyAgZGVmaW5lIENGR19IUkNXX01BU1RFUgkoX19IUkNXX19BTExfXykKKyMgIGRlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCShfX0hSQ1dfX0FMTF9fKQogIyBlbmRpZgogI2VuZGlmCS8qIENPTkZJR19NUEM4MjU1ICovCiAKIC8qIG5vIHNsYXZlcyBzbyBqdXN0IGZpbGwgd2l0aCB6ZXJvcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4IC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKgotICogNjB4IFNEUkFNIGlzIG1hcHBlZCBhdCBDRkdfU0RSQU1fQkFTRSwgbG9jYWwgU0RSQU0KKyAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFLCBsb2NhbCBTRFJBTQogICogaXMgbWFwcGVkIGF0IFNEUkFNX0JBU0UyX1BSRUxJTS4KICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC0zOTQsOSArMzk0LDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA5LDI4ICs0MDksMjggQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQgICAoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQgICAoSElEMF9JQ0V8SElEMF9EQ0V8SElEMF9JQ0ZJfEhJRDBfRENJfFwKIAkJCQlISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMICAoSElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwgIChISUQwX0lGRU18SElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMiAgICAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUtNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUiAgICAgICAgIFJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SICAgICAgICAgUk1SX0NTUkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNpZmRlZglDT05GSUdfQlVTTU9ERV82MHgKLSNkZWZpbmUgQ0ZHX0JDUiAgICAgICAgIChCQ1JfRUJNfEJDUl9MMkN8QkNSX0xFVE18XAorI2RlZmluZSBDT05GSUdfU1lTX0JDUiAgICAgICAgIChCQ1JfRUJNfEJDUl9MMkN8QkNSX0xFVE18XAogCQkJIEJDUl9OUFFNMHxCQ1JfTlBRTTF8QkNSX05QUU0yKQkvKiA2MHggbW9kZSAgKi8KICNlbHNlCiAjZGVmaW5lIEJDUl9BUEQwMQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkJLyogODI2MCBtb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQzOCw5ICs0MzgsOSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaWYgMAotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0FQUEMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgICAgICAoU0lVTUNSX0RQUEMxMHxTSVVNQ1JfQVBQQzEwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NJVU1DUiAgICAgIChTSVVNQ1JfRFBQQzAwfFNJVU1DUl9BUFBDMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAgICAgKFNJVU1DUl9EUFBDMDB8U0lVTUNSX0FQUEMxMCkKICNlbmRpZgogCiAKQEAgLTQ1MSwxMCArNDUxLDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTQ2NCw3ICs0NjQsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sICAgICAgICAgICAgICAgICA0LTQyCkBAIC00NzIsMjAgKzQ3MiwyMCBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgICAgICAgKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgICAgICAgKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnN1cmUgREZCUkcgaXMgRGl2aWRlIGJ5IDE2CiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgICAgICAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNTAwLDE3ICs1MDAsMTcgQEAKIAogCS8qIEluaXRpYWxpemUgU0RSQU0gb24gbG9jYWwgYnVzCiAJICovCi0jZGVmaW5lIENGR19JTklUX0xPQ0FMX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTQogCiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCiAKIC8qIE1pbmltdW0gbWFzayB0byBzZXBhcmF0ZSBwcmVsaW1pbmFyeQogICogYWRkcmVzcyByYW5nZXMgZm9yIENTWzA6Ml0KICAqLwotI2RlZmluZSBDRkdfR0xPQkFMX1NEUkFNX0xJTUlUCSg1MTI8PDIwKQkvKiBsZXNzIHRoYW4gNTEyIE1CICovCi0jZGVmaW5lIENGR19MT0NBTF9TRFJBTV9MSU1JVAkoMTI4PDwyMCkJLyogbGVzcyB0aGFuIDEyOCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVAkoNTEyPDwyMCkJLyogbGVzcyB0aGFuIDUxMiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQ0FMX1NEUkFNX0xJTUlUCSgxMjg8PDIwKQkvKiBsZXNzIHRoYW4gMTI4IE1CICovCiAKLSNkZWZpbmUgQ0ZHX01QVFBSICAgICAgIDB4NDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSICAgICAgIDB4NDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBBZGRyZXNzIGZvciBNb2RlIFJlZ2lzdGVyIFNldCAoTVJTKSBjb21tYW5kCkBAIC01MjcsMTcgKzUyNywxNyBAQAogICogIFNldHRpbmdzOiAgICAgICAgICAgICAgfCAgMCAgfCAgMCAgICAwICB8ICAwICAxICAwICB8ICAwICB8ICAgMCAgMSAgMCAgICB8CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX01SU19PRkZTCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19NUlNfT0ZGUwkweDAwMDAwMTEwCiAKIAogLyogQmFuayAwIC0gRkxBU0gKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gICgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX0ZMQVNIX1NJWkUpICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRSkgICAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzNfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNTUwLDI1ICs1NTAsMjUgQEAKIAogLyogQmFuayAxIC0gNjB4IGJ1cyBTRFJBTQogICovCi0jZGVmaW5lIENGR19QU1JUICAgICAgICAweDIwCi0jZGVmaW5lIENGR19MU1JUICAgICAgICAweDIwCi0jaWZuZGVmIENGR19SQU1CT09UCi0jZGVmaW5lIENGR19CUjFfUFJFTElNICAoKENGR19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAgICAgMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX0xTUlQgICAgICAgIDB4MjAKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTSAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSBCUnhfUFNfNjQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfU0RSQU1fUCAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IxXzhDT0wKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IxXzhDT0wKIAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA4LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IxXzhDT0wgICAgKCh+KENGR19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMV84Q09MICAgICgofihDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E3ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEyKQogCi0jZGVmaW5lIENGR19QU0RNUl84Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOENPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE1X0lTX0E1ICAgICAgICAgICB8XAogCQkJIFBTRE1SX0JTTUFfQTEyX0ExNCAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTggICAgICAgICAgICB8XApAQCAtNTgyLDEyICs1ODIsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMV85Q09MICAgICgofihDRkdfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfOUNPTCAgICAoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNSAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVJfOUNPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SXzlDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNl9JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExMl9BMTQgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E3ICAgICAgICAgICAgfFwKQEAgLTYwMSwyNCArNjAxLDI0IEBACiAKIC8qIEJhbmsgMiAtIExvY2FsIGJ1cyBTRFJBTQogICovCi0jaWZkZWYgQ0ZHX0lOSVRfTE9DQUxfU0RSQU0KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0gICgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJ4X0JBX01TSykgfFwKKyNpZmRlZiBDT05GSUdfU1lTX0lOSVRfTE9DQUxfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzMyICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX0wgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JQ0ZHX09SMl84Q09MCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQlDT05GSUdfU1lTX09SMl84Q09MCiAKICNkZWZpbmUgU0RSQU1fQkFTRTJfUFJFTElNCTB4ODAwMDAwMDAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOC1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl84Q09MICAgICgofihDRkdfTE9DQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl84Q09MICAgICgofihDT05GSUdfU1lTX0xPQ0FMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTggICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX0xTRE1SXzhDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19MU0RNUl84Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTVfSVNfQTUgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1ICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BOSAgICAgICAgICAgIHxcCkBAIC02MzIsMTIgKzYzMiwxMiBAQAogCiAJLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA5LWNvbHVtbiBjaGlwcwogCSAqLwotI2RlZmluZSBDRkdfT1IyXzlDT0wgICAgKCh+KENGR19MT0NBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzlDT0wgICAgKCh+KENPTkZJR19TWVNfTE9DQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNiAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfTFNETVJfOUNPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0xTRE1SXzlDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExNl9JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExM19BMTUgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E4ICAgICAgICAgICAgfFwKQEAgLTY0OSw4ICs2NDksOCBAQAogCQkJIFBTRE1SX1dSQ18yQyAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX0NMXzIpCiAKLSNlbmRpZiAvKiBDRkdfSU5JVF9MT0NBTF9TRFJBTSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfSU5JVF9MT0NBTF9TRFJBTSAqLwogCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04MjcyLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODI3Mi5oCmluZGV4IDA3MjYwOGMuLjE5MTVhNzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04MjcyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTgyNzIuaApAQCAtOTcsOCArOTcsOCBAQAogLyogZW5hYmxlIEkyQyBhbmQgc2VsZWN0IHRoZSBoYXJkd2FyZS9zb2Z0d2FyZSBkcml2ZXIgKi8KICN1bmRlZiAgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KQEAgLTExNiwyMSArMTE2LDIxIEBACiAjZGVmaW5lIENPTkZJR19JMkNfWAogCiAvKiBFRVBST00gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMJCTEJLyogbW9yZSB0aGFuIG9uZSBlZXByb20gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCQkxCS8qIG1vcmUgdGhhbiBvbmUgZWVwcm9tICovCiAKIC8qIEkyQyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcJCS8qIFVzZSBkczEzMzcgcnRjIHZpYSBpMmMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAkvKiBhdCBhZGRyZXNzIDB4NjgJCSovCiAKIC8qIEkyQyBTWVNNT04gKExNNzUpICovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkJLyogT04gU2VtaSdzIExNNzUJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQkJLyogU2Vuc29yIGFkZHJlc3NlcwkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCTcwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCS0zMAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCTMKIAogI2Vsc2UKICN1bmRlZiBDT05GSUdfSEFSRF9JMkMKQEAgLTE3Niw5ICsxNzYsOSBAQAogICogKE9uIFRRTTgyNzIgZWl0aGVyIFNDQzEgb3IgRkNDMiBtYXkgYmUgY2hvc2VuOiBTQ0MxIGlzIGhhcmR3aXJlZCB0byB0aGUKICAqIFguMjkgY29ubmVjdG9yLCBhbmQgRkNDMiBpcyBoYXJkd2lyZWQgdG8gdGhlIFguMSBjb25uZWN0b3IpCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZDQ19FVEhFUk5FVAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19FVEhFUk5FVAogCi0jaWYgZGVmaW5lZChDRkdfRkNDX0VUSEVSTkVUKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GQ0NfRVRIRVJORVQpCiAjdW5kZWYJQ09ORklHX0VUSEVSX09OX1NDQwkJLyogZGVmaW5lIGlmIGV0aGVyIG9uIFNDQyAgICAgICAqLwogI2RlZmluZQlDT05GSUdfRVRIRVJfT05fRkNDCQkvKiBkZWZpbmUgaWYgZXRoZXIgb24gRkNDICAgICAgICovCiAjdW5kZWYJQ09ORklHX0VUSEVSX05PTkUJCS8qIGRlZmluZSBpZiBldGhlciBvbiBzb21ldGhpbmcgZWxzZSAqLwpAQCAtMTk2LDcgKzE5Niw3IEBACiAgKiAgLSBSWCBjbGsgaXMgQ0xLMTEKICAqICAtIFRYIGNsayBpcyBDTEsxMgogICovCi0jIGRlZmluZSBDRkdfQ01YU0NSX1ZBTFVFCShDTVhTQ1JfUlMxQ1NfQ0xLMTEgfCBDTVhTQ1JfVFMxQ1NfQ0xLMTIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWFNDUl9WQUxVRQkoQ01YU0NSX1JTMUNTX0NMSzExIHwgQ01YU0NSX1RTMUNTX0NMSzEyKQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpICYmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKIApAQCAtMjA2LDEwICsyMDYsMTAgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MsIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCkBAIC0yMjEsMzUgKzIyMSwzNSBAQAogI2RlZmluZSBNRElPX1BPUlQJMgkJLyogUG9ydCBDICovCiAKICNpZiBTVEs4Mnh4XzE1MAotI2RlZmluZSBDRkdfTURJT19QSU4JMHgwMDAwODAwMAkvKiBQQzE2ICovCi0jZGVmaW5lIENGR19NRENfUElOCTB4MDAwMDQwMDAJLyogUEMxNyAqLworI2RlZmluZSBDT05GSUdfU1lTX01ESU9fUElOCTB4MDAwMDgwMDAJLyogUEMxNiAqLworI2RlZmluZSBDT05GSUdfU1lTX01EQ19QSU4JMHgwMDAwNDAwMAkvKiBQQzE3ICovCiAjZW5kaWYKIAogI2lmIFNUSzgyeHhfMTAwCi0jZGVmaW5lIENGR19NRElPX1BJTgkweDAwMDAwMDAyCS8qIFBDMzAgKi8KLSNkZWZpbmUgQ0ZHX01EQ19QSU4JMHgwMDAwMDAwMQkvKiBQQzMxICovCisjZGVmaW5lIENPTkZJR19TWVNfTURJT19QSU4JMHgwMDAwMDAwMgkvKiBQQzMwICovCisjZGVmaW5lIENPTkZJR19TWVNfTURDX1BJTgkweDAwMDAwMDAxCS8qIFBDMzEgKi8KICNlbmRpZgogCiAjaWYgMQotI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICBDRkdfTURJT19QSU4pCi0jZGVmaW5lIE1ESU9fVFJJU1RBVEUJKGlvcC0+cGRpciAmPSB+Q0ZHX01ESU9fUElOKQotI2RlZmluZSBNRElPX1JFQUQJKChpb3AtPnBkYXQgJiAgQ0ZHX01ESU9fUElOKSAhPSAwKQorI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICBDT05GSUdfU1lTX01ESU9fUElOKQorI2RlZmluZSBNRElPX1RSSVNUQVRFCShpb3AtPnBkaXIgJj0gfkNPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICBDT05GSUdfU1lTX01ESU9fUElOKSAhPSAwKQogCi0jZGVmaW5lIE1ESU8oYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01ESU9fUElOOyBcCi0JCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01ESU9fUElOCisjZGVmaW5lIE1ESU8oYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ09ORklHX1NZU19NRElPX1BJTjsgXAorCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNPTkZJR19TWVNfTURJT19QSU4KIAotI2RlZmluZSBNREMoYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01EQ19QSU47IFwKLQkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DRkdfTURDX1BJTgorI2RlZmluZSBNREMoYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ09ORklHX1NZU19NRENfUElOOyBcCisJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRENfUElOCiAjZWxzZQotI2RlZmluZSBNRElPX0FDVElWRQkoe3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkaXI7IHRtcCB8PSAgQ0ZHX01ESU9fUElOOyBpb3AtPnBkaXIgPSB0bXA7fSkKLSNkZWZpbmUgTURJT19UUklTVEFURQkoe3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkaXI7IHRtcCAmPSB+Q0ZHX01ESU9fUElOOyBpb3AtPnBkaXIgPSB0bXA7fSkKLSNkZWZpbmUgTURJT19SRUFECSgoaW9wLT5wZGF0ICYgIENGR19NRElPX1BJTikgIT0gMCkKKyNkZWZpbmUgTURJT19BQ1RJVkUJKHt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGlyOyB0bXAgfD0gIENPTkZJR19TWVNfTURJT19QSU47IGlvcC0+cGRpciA9IHRtcDt9KQorI2RlZmluZSBNRElPX1RSSVNUQVRFCSh7dW5zaWduZWQgbG9uZyB0bXA7IHRtcCA9IGlvcC0+cGRpcjsgdG1wICY9IH5DT05GSUdfU1lTX01ESU9fUElOOyBpb3AtPnBkaXIgPSB0bXA7fSkKKyNkZWZpbmUgTURJT19SRUFECSgoaW9wLT5wZGF0ICYgIENPTkZJR19TWVNfTURJT19QSU4pICE9IDApCiAKLSNkZWZpbmUgTURJTyhiaXQpCWlmKGJpdCkge3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkYXQ7IHRtcCB8PSAgQ0ZHX01ESU9fUElOOyBpb3AtPnBkYXQgPSB0bXA7fVwKLQkJCWVsc2UJe3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkYXQ7IHRtcCAmPSB+Q0ZHX01ESU9fUElOOyBpb3AtPnBkYXQgPSB0bXA7fQorI2RlZmluZSBNRElPKGJpdCkJaWYoYml0KSB7dW5zaWduZWQgbG9uZyB0bXA7IHRtcCA9IGlvcC0+cGRhdDsgdG1wIHw9ICBDT05GSUdfU1lTX01ESU9fUElOOyBpb3AtPnBkYXQgPSB0bXA7fVwKKwkJCWVsc2UJe3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkYXQ7IHRtcCAmPSB+Q09ORklHX1NZU19NRElPX1BJTjsgaW9wLT5wZGF0ID0gdG1wO30KIAotI2RlZmluZSBNREMoYml0KQlpZihiaXQpIHt1bnNpZ25lZCBsb25nIHRtcDsgdG1wID0gaW9wLT5wZGF0OyB0bXAgfD0gIENGR19NRENfUElOOyBpb3AtPnBkYXQgPSB0bXA7fVwKLQkJCWVsc2UJe3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkYXQ7IHRtcCAmPSB+Q0ZHX01EQ19QSU47IGlvcC0+cGRhdCA9IHRtcDt9CisjZGVmaW5lIE1EQyhiaXQpCWlmKGJpdCkge3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkYXQ7IHRtcCB8PSAgQ09ORklHX1NZU19NRENfUElOOyBpb3AtPnBkYXQgPSB0bXA7fVwKKwkJCWVsc2UJe3Vuc2lnbmVkIGxvbmcgdG1wOyB0bXAgPSBpb3AtPnBkYXQ7IHRtcCAmPSB+Q09ORklHX1NZU19NRENfUElOOyBpb3AtPnBkYXQgPSB0bXA7fQogI2VuZGlmCiAKICNkZWZpbmUgTUlJREVMQVkJdWRlbGF5KDEpCkBAIC0yNTksNyArMjU5LDcgQEAKICNkZWZpbmUgQ09ORklHXzgyNjBfQ0xLSU4JNjY2NjY2NjYJLyogaW4gSHogKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMzAwLDU2ICszMDAsNTYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjaWYgMAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCTB4MzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCTB4MzAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUyAweDQwMDAwMTA0CS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweDQwMDAwMTA0CS8qICJiYWQiIGFkZHJlc3MJCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1ogICAgICAgICg4IDw8IDIwKSAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDQU4gc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQ0FOX0JBU0UJMHg1MTAwMDAwMAotI2RlZmluZQlDRkdfQ0FOX1NJWkUJMQotI2RlZmluZSBDRkdfQ0FOX0JSCSgoQ0ZHX0NBTl9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fQkFTRQkweDUxMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX0NBTl9CUgkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJIEJSeF9QU184CQkJfFwKIAkJCSBCUnhfTVNfVVBNQwkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX0NBTl9PUgkoTUVHX1RPX0FNKENGR19DQU5fU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1IJKE1FR19UT19BTShDT05GSUdfU1lTX0NBTl9TSVpFKQl8XAogCQkJIE9SeFVfQkkpCiAKIApAQCAtMzU3LDMxICszNTcsMzEgQEAKICAqIGl0IChpbiBNQnl0ZXMpPyBUaGlzIG11c3QgY29udGFpbiBURVhUX0JBU0UgZnJvbSBib2FyZC90cW04MjcyL2NvbmZpZy5tawogICogVGhlIG1haW4gRkxBU0ggaXMgd2hpY2hldmVyIGlzIGNvbm5lY3RlZCB0byAqQ1MwLgogICovCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRSAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRSAzMgkvKiAzMiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRSAzMgkvKiAzMiBNQiAqLwogCiAvKiBGbGFzaCBiYW5rIHNpemUgKGZvciBwcmVsaW1pbmFyeSBzZXR0aW5ncykKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRSBDRkdfRkxBU0gwX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFIENPTkZJR19TWVNfRkxBU0gwX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiBmbGFzaCBpcyBDRkkgY29tcGF0LgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBmbGFzaCBpcyBDRkkgY29tcGF0LgkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaCovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCi0jZGVmaW5lIENGR19VUERBVEVfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1VQREFURV9GTEFTSF9TSVpFCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TSVpFKQpAQCAtMzg5LDE0ICszODksMTQgQEAKIAogLyogV2hlcmUgaXMgdGhlIEhhcmR3YXJlaW5mb3JtYXRpb24gQmxvY2sgKGZyb20gTW9uaXRvciBTb3VyY2VzKSAqLwogI2RlZmluZSBNT05fUkVTX0xFTkdUSAkJKDB4MDAwM0ZDMDApCi0jZGVmaW5lIEhXSUJfSU5GT19TVEFSVF9BRERSICAgIChDRkdfRkxBU0hfQkFTRSArIE1PTl9SRVNfTEVOR1RIKQorI2RlZmluZSBIV0lCX0lORk9fU1RBUlRfQUREUiAgICAoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgTU9OX1JFU19MRU5HVEgpCiAjZGVmaW5lIEhXSUJfSU5GT19MRU4gICAgICAgICAgIDUxMgotI2RlZmluZSBDSUJfSU5GT19TVEFSVF9BRERSICAgICAoQ0ZHX0ZMQVNIX0JBU0UgKyBNT05fUkVTX0xFTkdUSCArIEhXSUJfSU5GT19MRU4pCisjZGVmaW5lIENJQl9JTkZPX1NUQVJUX0FERFIgICAgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBNT05fUkVTX0xFTkdUSCArIEhXSUJfSU5GT19MRU4pCiAjZGVmaW5lIENJQl9JTkZPX0xFTiAgICAgICAgICAgIDUxMgogCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4M2ZjMDAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDYwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4M2ZjMDAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA2MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5ELUZMQVNIIHN0dWZmCkBAIC00MDQsMzIgKzQwNCwzMiBAQAogICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05BTkQpCiAKLSNkZWZpbmUgQ0ZHX05BTkRfQ1NfRElTVAkJMHg4MAotI2RlZmluZSBDRkdfTkFORF9VUE1fV1JJVEVfQ01EX09GUwkweDIwCi0jZGVmaW5lIENGR19OQU5EX1VQTV9XUklURV9BRERSX09GUwkweDQwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DU19ESVNUCQkweDgwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VUE1fV1JJVEVfQ01EX09GUwkweDIwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VUE1fV1JJVEVfQUREUl9PRlMJMHg0MAogCi0jZGVmaW5lIENGR19OQU5EX0JSCSgoQ0ZHX05BTkQwX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQlIJKChDT05GSUdfU1lTX05BTkQwX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAogCQkJIEJSeF9QU184CQkJfFwKIAkJCSBCUnhfTVNfVVBNQgkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX05BTkRfT1IJKE1FR19UT19BTShDRkdfTkFORF9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT1IJKE1FR19UT19BTShDT05GSUdfU1lTX05BTkRfU0laRSkJfFwKIAkJCSBPUnhVX0JJCQkJfFwKIAkJCSBPUnhVX0VIVFJfOElETEUpCiAKLSNkZWZpbmUgQ0ZHX05BTkRfU0laRQkxCi0jZGVmaW5lIENGR19OQU5EMF9CQVNFIDB4NTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkQxX0JBU0UgKENGR19OQU5EMF9CQVNFICsgQ0ZHX05BTkRfQ1NfRElTVCkKLSNkZWZpbmUgQ0ZHX05BTkQyX0JBU0UgKENGR19OQU5EMV9CQVNFICsgQ0ZHX05BTkRfQ1NfRElTVCkKLSNkZWZpbmUgQ0ZHX05BTkQzX0JBU0UgKENGR19OQU5EMl9CQVNFICsgQ0ZHX05BTkRfQ1NfRElTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkQwX0JBU0UgMHg1MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkQxX0JBU0UgKENPTkZJR19TWVNfTkFORDBfQkFTRSArIENPTkZJR19TWVNfTkFORF9DU19ESVNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkQyX0JBU0UgKENPTkZJR19TWVNfTkFORDFfQkFTRSArIENPTkZJR19TWVNfTkFORF9DU19ESVNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkQzX0JBU0UgKENPTkZJR19TWVNfTkFORDJfQkFTRSArIENPTkZJR19TWVNfTkFORF9DU19ESVNUKQogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UgICAgIDQgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFICAgICA0ICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICAgICAgICAgICAqLwogI2RlZmluZSBOQU5EX01BWF9DSElQUyAxCiAKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUIHsgQ0ZHX05BTkQwX0JBU0UsIFwKLQkJCSAgICAgQ0ZHX05BTkQxX0JBU0UsIFwKLQkJCSAgICAgQ0ZHX05BTkQyX0JBU0UsIFwKLQkJCSAgICAgQ0ZHX05BTkQzX0JBU0UsIFwKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVCB7IENPTkZJR19TWVNfTkFORDBfQkFTRSwgXAorCQkJICAgICBDT05GSUdfU1lTX05BTkQxX0JBU0UsIFwKKwkJCSAgICAgQ09ORklHX1NZU19OQU5EMl9CQVNFLCBcCisJCQkgICAgIENPTkZJR19TWVNfTkFORDNfQkFTRSwgXAogCQkJICAgfQogCiAjZGVmaW5lIFdSSVRFX05BTkQoZCwgYWRyKSBkb3sgKih2b2xhdGlsZSBfX3U4ICopKCh1bnNpZ25lZCBsb25nKShhZHIpKSA9IChfX3U4KWQ7IH0gd2hpbGUoMCkKQEAgLTQ0Nyw1OCArNDQ3LDU4IEBACiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBDYWxsIGJvYXJkX2Vhcmx5X2luaXRfZgkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CQkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KICNpZiAwCiAjZGVmaW5lCV9fSFJDV19fQUxMX18JCShIUkNXX0NJUCB8IEhSQ1dfSVNCMTExIHwgSFJDV19CTVMpCiAKLSMgIGRlZmluZSBDRkdfSFJDV19NQVNURVIJKF9fSFJDV19fQUxMX18gfCBIUkNXX01PRENLX0gwMTExKQorIyAgZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJKF9fSFJDV19fQUxMX18gfCBIUkNXX01PRENLX0gwMTExKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCShIUkNXX0JQUzExIHwgSFJDV19JU0IxMTEgfCBIUkNXX0JNUyB8IEhSQ1dfTU9EQ0tfSDAxMTEpCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJKEhSQ1dfQlBTMTEgfCBIUkNXX0lTQjExMSB8IEhSQ1dfQk1TIHwgSFJDV19NT0RDS19IMDExMSkKICNlbmRpZgogCiAvKiBubyBzbGF2ZXMgc28ganVzdCBmaWxsIHdpdGggemVyb3MgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTUxMSw5ICs1MTEsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01MjYsMzUgKzUyNiwzNSBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgIChISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAogCQkJCUhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwgIChISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQyICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgKEhJRDBfSUZFTXxISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS01CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwotI2RlZmluZSBDRkdfUk1SICAgICAgICAgUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19STVIgICAgICAgICBSTVJfQ1NSRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSXzYweCAgICAgICAgIChCQ1JfRUJNfEJDUl9OUFFNMHxCQ1JfTlBRTTIpCS8qIDYweCBtb2RlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JDUl82MHggICAgICAgICAoQkNSX0VCTXxCQ1JfTlBRTTB8QkNSX05QUU0yKQkvKiA2MHggbW9kZSAgKi8KICNkZWZpbmUgQkNSX0FQRDAxCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JDUl9TSU5HTEUJCShCQ1JfQVBEMDF8QkNSX0VUTSkJLyogODI2MCBtb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNSX1NJTkdMRQkJKEJDUl9BUEQwMXxCQ1JfRVRNKQkvKiA4MjYwIG1vZGUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19CT0FSRF9HRVRfQ1BVX0NMS19GKQotI2RlZmluZSBDRkdfU0lVTUNSX0xPVwkJKFNJVU1DUl9EUFBDMDApCi0jZGVmaW5lIENGR19TSVVNQ1JfSElHSAkJKFNJVU1DUl9EUFBDMDAgfCBTSVVNQ1JfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUl9MT1cJCShTSVVNQ1JfRFBQQzAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUl9ISUdICQkoU0lVTUNSX0RQUEMwMCB8IFNJVU1DUl9BQkUpCiAjZWxzZQotI2RlZmluZSBDRkdfU0lVTUNSCQkoU0lVTUNSX0RQUEMwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCShTSVVNQ1JfRFBQQzAwKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTU2NCwxMCArNTY0LDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTU3Nyw3ICs1NzcsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sICAgICAgICAgICAgICAgICA0LTQyCkBAIC01ODUsMjAgKzU4NSwyMCBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgICAgICAgKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgICAgICAgKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnN1cmUgREZCUkcgaXMgRGl2aWRlIGJ5IDE2CiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgICAgIFNDQ1JfREZCUkcwMQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IgICAgICAgIFNDQ1JfREZCUkcwMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAgICAgICAgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTYxNCwxNiArNjE0LDE2IEBACiAKIC8qIEluaXRpYWxpemUgU0RSQU0KIAkgKi8KLSN1bmRlZiBDRkdfSU5JVF9MT0NBTF9TRFJBTQkJLyogTm8gU0RSQU0gb24gTG9jYWwgQnVzICovCisjdW5kZWYgQ09ORklHX1NZU19JTklUX0xPQ0FMX1NEUkFNCQkvKiBObyBTRFJBTSBvbiBMb2NhbCBCdXMgKi8KIAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkweDIwMDAwMDAwCS8qIG1heC4gNTEyIE1CCQkqLwogCiAvKiBNaW5pbXVtIG1hc2sgdG8gc2VwYXJhdGUgcHJlbGltaW5hcnkKICAqIGFkZHJlc3MgcmFuZ2VzIGZvciBDU1swOjJdCiAgKi8KLSNkZWZpbmUgQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVAkoNTEyPDwyMCkJLyogbGVzcyB0aGFuIDUxMiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVAkoNTEyPDwyMCkJLyogbGVzcyB0aGFuIDUxMiBNQiAqLwogCi0jZGVmaW5lIENGR19NUFRQUiAgICAgICAweDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAgICAgICAweDQwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQWRkcmVzcyBmb3IgTW9kZSBSZWdpc3RlciBTZXQgKE1SUykgY29tbWFuZApAQCAtNjQwLDE2ICs2NDAsMTYgQEAKICAqICBTZXR0aW5nczogICAgICAgICAgICAgIHwgIDAgIHwgIDAgICAgMCAgfCAgMCAgMSAgMCAgfCAgMCAgfCAgIDAgIDEgIDAgICAgfAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NUlNfT0ZGUwkweDAwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfTVJTX09GRlMJMHgwMDAwMDExMAogCiAvKiBCYW5rIDAgLSBGTEFTSAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSBCUnhfUFNfMzIgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAgKE1FR19UT19BTShDRkdfRkxBU0hfU0laRSkgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSF9TSVpFKSAgICAgIHxcCiAJCQkgT1J4R19DU05UICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWNCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4R19TQ1lfOF9DTEsgICAgICAgICAgICAgICAgIHxcCkBAIC02NjEsMjUgKzY2MSwyNSBAQAogCiAvKiBCYW5rIDEgLSA2MHggYnVzIFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTUlQgICAgICAgIDB4MjAJLyogTG93IFZhbHVlICovCi0vKiAjZGVmaW5lIENGR19QU1JUICAgICAgICAweDEwCSBGYXN0IFZhbHVlICovCi0jZGVmaW5lIENGR19MU1JUICAgICAgICAweDIwCS8qIExvY2FsIEJ1cyAqLwotI2lmbmRlZiBDRkdfUkFNQk9PVAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTSAgKChDRkdfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQgICAgICAgIDB4MjAJLyogTG93IFZhbHVlICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAgICAgMHgxMAkgRmFzdCBWYWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xTUlQgICAgICAgIDB4MjAJLyogTG9jYWwgQnVzICovCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0gICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX1AgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMV84Q09MCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMV84Q09MCiAKIC8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOC1jb2x1bW4gY2hpcHMKICAqLwotI2RlZmluZSBDRkdfT1IxXzhDT0wgICAgKCh+KENGR19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMV84Q09MICAgICgofihDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfNCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E3ICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19OVU1SXzEyKQogCi0jZGVmaW5lIENGR19QU0RNUl84Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfOENPTCAgKFBTRE1SX1BCSSAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE1X0lTX0E1ICAgICAgICAgICB8XAogCQkJIFBTRE1SX0JTTUFfQTEyX0ExNCAgICAgICAgICAgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTFfQTggICAgICAgICAgICB8XApAQCAtNjk1LDEyICs2OTUsMTIgQEAKIAogLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzIGZvciA5LWNvbHVtbiBjaGlwcwogICovCi0jZGVmaW5lIENGR19PUjFfOUNPTCAgICAoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxXzlDT0wgICAgKCh+KENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTUgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTMpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzlDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl85Q09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTZfSVNfQTUgICAgICAgICAgIHxcCiAJCQkgUFNETVJfQlNNQV9BMTJfQTE0ICAgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMV9BNyAgICAgICAgICAgIHxcCkBAIC03MTMsMTIgKzcxMywxMiBAQAogCQkJIFBTRE1SX0JVRkNNRAkJCXxcCiAJCQkgUFNETVJfQ0xfMikKIAotI2RlZmluZSBDRkdfT1IxXzEwQ09MICAgICgofihDRkdfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfMTBDT0wgICAgKCh+KENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlULTEpICYgT1J4U19TREFNX01TSykgfFwKIAkJCSBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTQgICAgICAgICAgICAgfFwKIAkJCSBPUnhTX05VTVJfMTMpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SXzEwQ09MICAoUFNETVJfUEJJICAgICAgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfMTBDT0wgIChQU0RNUl9QQkkgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExN19JU19BNSAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9CU01BX0ExMl9BMTQgICAgICAgICAgICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E0ICAgICAgICAgICAgfFwKQEAgLTc1OSw2ICs3NTksNiBAQAogI2RlZmluZSBQU0RNUl9CVUZDTURfMTAwTUhaXzYwWCAgICAgICAgIDB4MDAwMDAwMDAgIC8qIFBTRE1SW0JVRkNNRF0gYXQgMTAwIE1IeiA2MHggbW9kZSAqLwogI2RlZmluZSBQU0RNUl9CVUZDTURfREVGQVVMVCAgICAgICAgICAgIFBTRE1SX0JVRkNNRF8xMzNNSFpfU0lOR0xFICAvKiBQU0RNUltCVUZDTURdIGRlZmF1bHQgdmFsdWUgKi8KIAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODM0eC5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTgzNHguaAppbmRleCA3YjA2MmY0Li4yOTYxYTFiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODM0eC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04MzR4LmgKQEAgLTM4LDcgKzM4LDcgQEAKICNkZWZpbmUgQ09ORklHX1RRTTgzNFgJCTEJLyogVFFNODM0WCBib2FyZCBzcGVjaWZpYyAqLwogCiAvKiBJTU1SIEJhc2UgQWRkcmVzIFJlZ2lzdGVyLCB1c2UgRnJlZXNjYWxlIGRlZmF1bHQ6IDB4ZmY0MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4ZmY0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweGZmNDAwMDAwCiAKIC8qIFN5c3RlbSBjbG9jay4gUHJpbWFyeSBpbnB1dCBjbG9jayB3aGVuIGluIFBDSSBob3N0IG1vZGUgKi8KICNkZWZpbmUgQ09ORklHXzgzWFhfQ0xLSU4JNjY2NjYwMDAJLyogNjYsNjY2IE1IeiAqLwpAQCAtNTIsNyArNTIsNyBAQAogICogRXh0ZXJuYWwgTG9jYWwgQnVzIHJhdGUgaXMKICAqICAgIENMS0lOICogSFJDV0xfQ1NCX1RPX0NMS0lOIC8gSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLIC8gTENSUl9DTEtESVYKICAqLwotI2RlZmluZSBDRkdfTENSUgkJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzgpCisjZGVmaW5lIENPTkZJR19TWVNfTENSUgkJKExDUlJfREJZUCB8IExDUlJfQ0xLRElWXzgpCiAKIC8qIGJvYXJkIHByZSBpbml0OiBkbyBub3QgY2FsbCwgbm90aGluZyB0byBkbyAqLwogI3VuZGVmIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YKQEAgLTYzLDE0MSArNjMsMTQxIEBACiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJQ0ZHX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQlDT05GSUdfU1lTX0REUl9CQVNFCiAjZGVmaW5lIEREUl9DQVNMQVRfMjUJCQkJLyogQ0FTTEFUIHNldCB0byAyLjUgKi8KICN1bmRlZiBDT05GSUdfRERSX0VDQwkJCQkvKiBvbmx5IGZvciBFQ0MgRERSIG1vZHVsZSAqLwogI3VuZGVmIENPTkZJR19TUERfRUVQUk9NCQkJLyogZG8gbm90IHVzZSBTUEQgRUVQUk9NIGZvciBERFIgc2V0dXAgKi8KIAotI3VuZGVmIENGR19EUkFNX1RFU1QJCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDAxMDAwMDAKKyN1bmRlZiBDT05GSUdfU1lTX0RSQU1fVEVTVAkJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwMTAwMDAwCiAKIC8qCiAgKiBGTEFTSCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogdXNlIHRoZSBDRkkgZHJpdmVyICovCi0jdW5kZWYgQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDgwMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNIICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTgJCS8qIEZMQVNIIHNpemUgaW4gTUIgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg4MDAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOAkJLyogRkxBU0ggc2l6ZSBpbiBNQiAqLwogCiAvKiBidWZmZXJlZCB3cml0ZXMgaW4gdGhlIEFNRCBjaGlwIHNldCBpcyBub3Qgc3VwcG9ydGVkIHlldCAqLwotI3VuZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCiAKIC8qCiAgKiBGTEFTSCBiYW5rIG51bWJlciBkZXRlY3Rpb24KICAqLwogCiAvKgotICogV2hlbiBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVCBpcyBkZWZpbmVkLCB0aGUgYWN0dWFsIG51bWJlciBvZiBGbGFzaAorICogV2hlbiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LU19ERVRFQ1QgaXMgZGVmaW5lZCwgdGhlIGFjdHVhbCBudW1iZXIgb2YgRmxhc2gKICAqIGJhbmtzIGhhcyB0byBiZSBkZXRlcm1pbmVkIGF0IHJ1bnRpbWUgYW5kIHN0b3JlZCBpbiBhIGdsb2FibCB2YXJpYWJsZQotICogdHFtODM0eF9udW1fZmxhc2hfYmFua3MuIFRoZSB2YWx1ZSBvZiBDRkdfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVCBpcyBvbmx5Ci0gKiB1c2VkIGluc3RlYWQgb2YgQ0ZHX01BWF9GTEFTSF9CQU5LUyB0byBhbGxvY2F0ZSB0aGUgYXJyYXkgZmxhc2hfaW5mbywgYW5kCisgKiB0cW04MzR4X251bV9mbGFzaF9iYW5rcy4gVGhlIHZhbHVlIG9mIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTX0RFVEVDVCBpcyBvbmx5CisgKiB1c2VkIGluc3RlYWQgb2YgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgdG8gYWxsb2NhdGUgdGhlIGFycmF5IGZsYXNoX2luZm8sIGFuZAogICogc2hvdWxkIGJlIG1hZGUgc3VmZmljaWVudGx5IGxhcmdlIHRvIGFjY29tb2RhdGUgdGhlIG51bWJlciBvZiBiYW5rcyB0aGF0CiAgKiBtaWdodCBhY3R1YWxseSBiZSBkZXRlY3RlZC4gIFNpbmNlIG1vc3QgKGFsbD8pIEZsYXNoIHJlbGF0ZWQgZnVuY3Rpb25zIHVzZQotICogQ0ZHX01BWF9GTEFTSF9CQU5LUyBhcyB0aGUgbnVtYmVyIG9mIGFjdHVhbCBiYW5rcyBvbiB0aGUgYm9hcmQsIGl0IGlzCisgKiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyBhcyB0aGUgbnVtYmVyIG9mIGFjdHVhbCBiYW5rcyBvbiB0aGUgYm9hcmQsIGl0IGlzCiAgKiBkZWZpbmVkIGFzIHRxbTgzNHhfbnVtX2ZsYXNoX2JhbmtzLgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1NfREVURUNUCTIKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1NfREVURUNUCTIKICNpZm5kZWYgX19BU1NFTUJMWV9fCiBleHRlcm4gaW50IHRxbTgzNHhfbnVtX2ZsYXNoX2JhbmtzOwogI2VuZGlmCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgKHRxbTgzNHhfbnVtX2ZsYXNoX2JhbmtzKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAodHFtODM0eF9udW1fZmxhc2hfYmFua3MpCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQk1MTIJLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQk1MTIJLyogbWF4IHNlY3RvcnMgcGVyIGRldmljZSAqLwogCiAvKiAzMiBiaXQgZGV2aWNlIGF0IDB4ODAwMDAwMDAgdmlhIEdQQ00gKDB4ODAwMF8xODAxKSAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKChDRkdfRkxBU0hfQkFTRSAmIEJSX0JBKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSX0JBKSB8IFwKIAkJCQkJQlJfTVNfR1BDTSB8IEJSX1BTXzMyIHwgQlJfVikKIAogLyogRkxBU0ggdGltaW5nICgweDAwMDBfMGM1NCkgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfR1BDTV9DU05UIHwgT1JfR1BDTV9BQ1NfRElWNCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0dQQ01fQ1NOVCB8IE9SX0dQQ01fQUNTX0RJVjQgfCBcCiAJCQkJCU9SX0dQQ01fU0NZXzUgfCBPUl9HUENNX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweGMwMDAwMDAwCS8qIE9SIGFkZHIgbWFzazogMSBHaUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhjMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2s6IDEgR2lCICovCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCShDRkdfUFJFTElNX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJKENPTkZJR19TWVNfUFJFTElNX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQogCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxRAkvKiAxIEdpQiB3aW5kb3cgc2l6ZSAoMl4oc2l6ZSArIDEpKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIwX1BSRUxJTQkweDgwMDAwMDFECS8qIDEgR2lCIHdpbmRvdyBzaXplICgyXihzaXplICsgMSkpICovCiAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogV2luZG93IGJhc2UgYXQgZmxhc2ggYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIFdpbmRvdyBiYXNlIGF0IGZsYXNoIGJhc2UgKi8KIAogLyogZGlzYWJsZSByZW1haW5pbmcgbWFwcGluZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMV9QUkVMSU0JMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdBUjFfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMV9QUkVMSU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIxX1BSRUxJTQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMl9QUkVMSU0JMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdBUjJfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSMl9QUkVMSU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIyX1BSRUxJTQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSM19QUkVMSU0JMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdBUjNfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSM19QUkVMSU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVIzX1BSRUxJTQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSNF9QUkVMSU0JMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdBUjRfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSNF9QUkVMSU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVI0X1BSRUxJTQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSNV9QUkVMSU0JMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdBUjVfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSNV9QUkVMSU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVI1X1BSRUxJTQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSNl9QUkVMSU0JMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdBUjZfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSNl9QUkVMSU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVI2X1BSRUxJTQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX09SN19QUkVMSU0JCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSN19QUkVMSU0JMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdBUjdfUFJFTElNCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQkFSN19QUkVMSU0JMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCTEFXQVI3X1BSRUxJTQkweDAwMDAwMDAwCiAKIC8qCiAgKiBNb25pdG9yIGNvbmZpZwogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbHNlCi0jdW5kZWYgIENGR19SQU1CT09UCisjdW5kZWYgIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMHgxMDAJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHgxMDAJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLwogCiAvKgogICogU2VyaWFsIFBvcnQKICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYgQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19JTU1SICsgMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfSU1NUiArIDB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfSU1NUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfSU1NUiArIDB4NDYwMCkKIAogLyoKICAqIEkyQwpAQCAtMjA1LDI3ICsyMDUsMjcgQEAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZiBDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCQk0MDAwMDAJLyogSTJDIHNwZWVkOiA0MDBLSHoJCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCQkweDdGCS8qIHNsYXZlIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkJNDAwMDAwCS8qIEkyQyBzcGVlZDogNDAwS0h6CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJCTB4N0YJLyogc2xhdmUgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkJMHgzMDAwCiAKIC8qIEkyQyBFRVBST00sIGNvbmZpZ3VyYXRpb24gZm9yIG9uYm9hcmQgRUVQUk9NcyAyNEMyNTYgYW5kIDI0QzMyICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHgJCQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgkvKiAxNiBiaXQJCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDMyIGJ5dGVzIHBlciB3cml0ZQkJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEyCS8qIDEwbXMgKy8tIDIwJQkJCSovCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwkJMSAgICAgICAvKiBtb3JlIHRoYW4gb25lIGVlcHJvbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHgJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIJLyogMTYgYml0CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogMzIgYnl0ZXMgcGVyIHdyaXRlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEyCS8qIDEwbXMgKy8tIDIwJQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMJCTEgICAgICAgLyogbW9yZSB0aGFuIG9uZSBlZXByb20JCSovCiAKIC8qIEkyQyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcJCQkvKiB1c2UgZHMxMzM3IHJ0YyB2aWEgaTJjCSovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkJMHg2OAkvKiBhdCBhZGRyZXNzIDB4NjgJCSovCiAKIC8qIEkyQyBTWVNNT04gKExNNzUpICovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJCTEJLyogT04gU2VtaSdzIExNNzUJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwkJezB9CS8qIFNlbnNvciBhZGRyZXNzZXMJCSovCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAJCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJCS0zMAotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJCTMKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJCTcwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCQktMzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkJMwogCiAvKgogICogVFNFQwpAQCAtMjMzLDEwICsyMzMsMTAgQEAKICNkZWZpbmUgQ09ORklHX1RTRUNfRU5FVAkJLyogdHNlYyBldGhlcm5ldCBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19NSUkKIAotI2RlZmluZSBDRkdfVFNFQzFfT0ZGU0VUCTB4MjQwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMxCQkoQ0ZHX0lNTVIgKyBDRkdfVFNFQzFfT0ZGU0VUKQotI2RlZmluZSBDRkdfVFNFQzJfT0ZGU0VUCTB4MjUwMDAKLSNkZWZpbmUgQ0ZHX1RTRUMyCQkoQ0ZHX0lNTVIgKyBDRkdfVFNFQzJfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxX09GRlNFVAkweDI0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzEJCShDT05GSUdfU1lTX0lNTVIgKyBDT05GSUdfU1lTX1RTRUMxX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMl9PRkZTRVQJMHgyNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMyCQkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19UU0VDMl9PRkZTRVQpCiAKICNpZiBkZWZpbmVkKENPTkZJR19UU0VDX0VORVQpCiAKQEAgLTI3MiwyNCArMjcyLDI0IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XICAgICAgICAgICAgLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCiAKIC8qIFBDSTEgaG9zdCBicmlkZ2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UgICAgICAgMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUyAgICAgICBDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRSAgICAgICAweDIwMDAwMDAwICAgICAgLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFICAgICAgICAweGUyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMgICAgICAgIENGR19QQ0kxX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRSAgICAgICAgMHgxMDAwMDAwICAgICAgIC8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgICAgICAgMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMgICAgICAgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRSAgICAgICAweDIwMDAwMDAwICAgICAgLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSAgICAgICAgMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUyAgICAgICAgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NJWkUgICAgICAgIDB4MTAwMDAwMCAgICAgICAvKiAxNk0gKi8KIAogI3VuZGVmIENPTkZJR19FRVBSTzEwMAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKICN1bmRlZiBDT05GSUdfVFVMSVAKIAogI2lmICFkZWZpbmVkKENPTkZJR19QQ0lfUE5QKQotCSNkZWZpbmUgUENJX0VORVQwX0lPQUREUglDRkdfUENJMV9JT19CQVNFCi0JI2RlZmluZSBQQ0lfRU5FVDBfTUVNQUREUglDRkdfUENJMV9NRU1fQkFTRQorCSNkZWZpbmUgUENJX0VORVQwX0lPQUREUglDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQorCSNkZWZpbmUgUENJX0VORVQwX01FTUFERFIJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCiAJI2RlZmluZSBQQ0lfSURTRUxfTlVNQkVSCTB4MWMgICAgLyogc2xvdDAgKElEU0VMKSA9IDI4ICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRAkJMHgxOTU3ICAvKiBGcmVlc2NhbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklECQkweDE5NTcgIC8qIEZyZWVzY2FsZSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC0yOTgsMjAgKzI5OCwyMCBAQAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogCSNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotCSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCisJI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCS8qIEZsYXNoIGlzIG5vdCB1c2FibGUgbm93ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkgKi8KLQkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisJI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkJMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMzQwLDcgKzM0MCw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX1BDSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19SQU1CT09UKQogICAgICN1bmRlZiBDT05GSUdfQ01EX0VOVgogICAgICN1bmRlZiBDT05GSUdfQ01EX0xPQURTCiAjZW5kaWYKQEAgLTM0OCwyNiArMzQ4LDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQgKi8KIApAQCAtMzc2LDkgKzM3Niw5IEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOXzRYMSB8XApAQCAtMzg2LDcgKzM4Niw3IEBACiAJSFJDV0xfQ09SRV9UT19DU0JfMlgxKQogCiAjaWYgZGVmaW5lZChQQ0lfNjRCSVQpCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIXzY0X0JJVF9QQ0kgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCkBAIC0zOTksNyArMzk5LDcgQEAKIAlIUkNXSF9UU0VDMU1fSU5fR01JSSB8XAogCUhSQ1dIX1RTRUMyTV9JTl9HTUlJICkKICNlbHNlCi0jZGVmaW5lIENGR19IUkNXX0hJR0ggKFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX0hJR0ggKFwKIAlIUkNXSF9QQ0lfSE9TVCB8XAogCUhSQ1dIXzMyX0JJVF9QQ0kgfFwKIAlIUkNXSF9QQ0kxX0FSQklURVJfRU5BQkxFIHxcCkBAIC00MTQsNjcgKzQxNCw2NyBAQAogI2VuZGlmCiAKIC8qIFN5c3RlbSBJTyBDb25maWcgKi8KLSNkZWZpbmUgQ0ZHX1NJQ1JICVNJQ1JIX1RTT0JJMQotI2RlZmluZSBDRkdfU0lDUkwJU0lDUkxfTERQX0EKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSSAlTSUNSSF9UU09CSTEKKyNkZWZpbmUgQ09ORklHX1NZU19TSUNSTAlTSUNSTF9MRFBfQQogCiAvKiBpLWNhY2hlIGFuZCBkLWNhY2hlIGRpc2FibGVkICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJQ0ZHX0hJRDBfSU5JVAotI2RlZmluZSBDRkdfSElEMglISUQyX0hCRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJQ09ORklHX1NZU19ISUQwX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCUhJRDJfSEJFCiAKICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUwkxCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KIAogLyogRERSIDAgLSA1MTJNICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDEwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBzdGFjayBpbiBEQ0FDSEUgQCA1MTJNIChubyBiYWNraW5nIG1lbSkgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMlUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogUENJICovCiAjaWZkZWYgQ09ORklHX1BDSQotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfUENJMV9NRU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoQ0ZHX1BDSTFfTUVNX0JBU0UgKyAweDEwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDRVCShDRkdfUENJMV9NRU1fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX1BDSTFfSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19JQkFUNVUJKENGR19QQ0kxX0lPX0JBU0UgKyAweDEwMDAwMDAwIHwgQkFUVV9CTF8xNk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFICsgMHgxMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKENPTkZJR19TWVNfUENJMV9JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJKENPTkZJR19TWVNfUENJMV9JT19CQVNFICsgMHgxMDAwMDAwMCB8IEJBVFVfQkxfMTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDNMCSgwKQotI2RlZmluZSBDRkdfSUJBVDNVCSgwKQotI2RlZmluZSBDRkdfSUJBVDRMCSgwKQotI2RlZmluZSBDRkdfSUJBVDRVCSgwKQotI2RlZmluZSBDRkdfSUJBVDVMCSgwKQotI2RlZmluZSBDRkdfSUJBVDVVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNUwJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVVCSgwKQogI2VuZGlmCiAKIC8qIElNTVJCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDZVCShDRkdfSU1NUiB8IEJBVFVfQkxfMU0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKENPTkZJR19TWVNfSU1NUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCShDT05GSUdfU1lTX0lNTVIgfCBCQVRVX0JMXzFNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEZMQVNIICovCi0jZGVmaW5lIENGR19JQkFUN0wJKENGR19GTEFTSF9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkoQ0ZHX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTAlDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCi0jZGVmaW5lIENGR19EQkFUNEwJQ0ZHX0lCQVQ0TAotI2RlZmluZSBDRkdfREJBVDRVCUNGR19JQkFUNFUKLSNkZWZpbmUgQ0ZHX0RCQVQ1TAlDRkdfSUJBVDVMCi0jZGVmaW5lIENGR19EQkFUNVUJQ0ZHX0lCQVQ1VQotI2RlZmluZSBDRkdfREJBVDZMCUNGR19JQkFUNkwKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQlDRkdfSUJBVDZVCi0jZGVmaW5lIENGR19EQkFUN0wJQ0ZHX0lCQVQ3TAotI2RlZmluZSBDRkdfREJBVDdVCUNGR19JQkFUN1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwJQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUJQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJQ09ORklHX1NZU19JQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UJQ09ORklHX1NZU19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwJQ09ORklHX1NZU19JQkFUNEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJQ09ORklHX1NZU19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJQ09ORklHX1NZU19JQkFUNUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJQ09ORklHX1NZU19JQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNkwJQ09ORklHX1NZU19JQkFUNkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUJQ09ORklHX1NZU19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJQ09ORklHX1NZU19JQkFUN0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN1UJQ09ORklHX1NZU19JQkFUN1UKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODUwTC5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTg1MEwuaAppbmRleCA0NzNjMzkwLi40YWE4ZGI4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODUwTC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04NTBMLmgKQEAgLTgwLDcgKzgwLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTIzLDMyICsxMjMsMzIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTU4LDQ3ICsxNTgsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIwOCw3ICsyMDgsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTIyNywxNiArMjI3LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0NiwxMCArMjQ2LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTgsOSArMjU4LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY4LDIwICsyNjgsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yODksNyArMjg5LDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdAogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI5OCw3ICsyOTgsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTMwNywxNCArMzA3LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMyNywyOCArMzI3LDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNjMsMjIgKzM2MywyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zODksMTkgKzM4OSwxOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZQkvKiBDQU4gdXNlcyBDUzMjLCBzbyB3ZSBjYW4gaGF2ZSBvbmx5IG9uZSBTRFJBTSBiYW5rIGFueXdheSAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCkBAIC00MzIsMzQgKzQzMiwzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTg1ME0uaCBiL2luY2x1ZGUvY29uZmlncy9UUU04NTBNLmgKaW5kZXggNGRlNWEzMy4uY2U1ZGNjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTg1ME0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODUwTS5oCkBAIC03OCw3ICs3OCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEyMiwzMiArMTIyLDMyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE1Nyw0NyArMTU3LDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjA4LDcgKzIwOCw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIE1ha2Ugc3VyZSB0byByZW1hcCBmbGFzaGVzIGNvcnJlY3RseSAqLwogCkBAIC0yMjcsMTYgKzIyNywxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDYsMTAgKzI0NiwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU4LDkgKzI1OCw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2OCwyMCArMjY4LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjg5LDcgKzI4OSw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yOTgsNyArMjk4LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMDcsMTQgKzMwNywxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zMjcsMjggKzMyNywyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzYzLDIyICszNjMsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzg5LDE5ICszODksMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUJQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDMyLDM0ICs0MzIsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04NTVMLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODU1TC5oCmluZGV4IDJiYTk0YzguLjAxMmUyMDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04NTVMLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTg1NUwuaApAQCAtODMsNyArODMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMjgsMzIgKzEyOCwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjMsNDcgKzE2Myw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjEzLDcgKzIxMyw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjMyLDE2ICsyMzIsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjUxLDEwICsyNTEsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2Myw5ICsyNjMsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzMsMjAgKzI3MywyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5NCw3ICsyOTQsNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzAzLDcgKzMwMyw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzEyLDE0ICszMTIsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzMyLDI4ICszMzIsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM2OCwyMiArMzY4LDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM5NCwxOSArMzk0LDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQzNywzNCArNDM3LDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODU1TS5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTg1NU0uaAppbmRleCA3Njk5ZDUxLi44NDg4OWVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODU1TS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04NTVNLmgKQEAgLTgzLDcgKzgzLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtOTUsOCArOTUsOCBAQAogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUJQ09ORklHX1NPRlRfSTJDICAgICAgICAgMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk5MzAwMAkvKiA5MyBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAjaWZkZWYgQ09ORklHX1NPRlRfSTJDCiAvKgpAQCAtMTE2LDEyICsxMTYsMTIgQEAKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSgyKQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAjZW5kaWYJLyogQ09ORklHX1NPRlRfSTJDICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVQyNEM2NAkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkyCQkvKiB0d28gYnl0ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIEVFUFJPTSBBVDI0QzY0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkyCQkvKiB0d28gYnl0ZSBhZGRyZXNzCSovCiAjaWYgMAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogdGFrZXMgdXAgdG8gMTAgbXNlYwkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XIDB4MDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cgMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQogI2VuZGlmCiAKIC8qCkBAIC0xNjIsMzIgKzE2MiwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xOTcsNDcgKzE5Nyw0NyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4NDAwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTI0OCw3ICsyNDgsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBNYWtlIHN1cmUgdG8gcmVtYXAgZmxhc2hlcyBjb3JyZWN0bHkgKi8KIApAQCAtMjY3LDE2ICsyNjcsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjg2LDEwICsyODYsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5OCw5ICsyOTgsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMDgsMjAgKzMwOCwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTMyOSw3ICszMjksNyBAQAogICogUmVzZXQgUExMIGxvY2sgc3RhdHVzIHN0aWNreSBiaXQsIHRpbWVyIGV4cGlyZWQgc3RhdHVzIGJpdCBhbmQgdGltZXIKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzM4LDcgKzMzOCw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzQ3LDE0ICszNDcsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzY3LDI4ICszNjcsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTQwMywyMiArNDAzLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfQUNTX0RJVjEgIHwgT1JfVFJMWCB8IE9SX0NTTlRfU0FNIHwgXAogCQkJCSBPUl9TQ1lfM19DTEsgfCBPUl9FSFRSIHwgT1JfQkkpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTQyOSwxOSArNDI5LDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQ3MiwzNCArNDcyLDM0IEBACiAgKiA4MCBNaHogPT4gODAuMDAwLjAwMCAvIERpdmlkZXIgPSAxNTYKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODV4eC5oIGIvaW5jbHVkZS9jb25maWdzL1RRTTg1eHguaAppbmRleCA3ZWNiYjdlLi5iMDVmNDNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVFFNODV4eC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9UUU04NXh4LmgKQEAgLTEwOCwzNCArMTA4LDM0IEBACiAjZGVmaW5lIENPTkZJR19CVEIJCQkvKiB0b2dnbGUgYnJhbmNoIHByZWRpdGlvbgkqLwogI2RlZmluZSBDT05GSUdfQUREUl9TVFJFQU1JTkcJCS8qIHRvZ2dsZSBhZGRyIHN0cmVhbWluZwkqLwogCi0jZGVmaW5lIENGR19JTklUX0RCQ1IgREJDUl9JRE0JCS8qIEVuYWJsZSBEZWJ1ZyBFeGNlcHRpb25zCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQkNSIERCQ1JfSURNCQkvKiBFbmFibGUgRGVidWcgRXhjZXB0aW9ucwkqLwogCi0jdW5kZWYJQ0ZHX0RSQU1fVEVTVAkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lCSovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDEwMDAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDEwMDAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhGRjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhGRjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KICNpZmRlZiBDT05GSUdfVFFNX0JJR0ZMQVNICi0jZGVmaW5lIENGR19DQ1NSQkFSCSAJMHhBMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJIAkweEEwMDAwMDAwCS8qIHJlbG9jYXRlZCBDQ1NSQkFSCSovCiAjZWxzZSAvKiAhQ09ORklHX1RRTV9CSUdGTEFTSCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhFMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4RTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIJKi8KICNlbmRpZiAvKiBDT05GSUdfVFFNX0JJR0ZMQVNIICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX1BIWVMJQ0ZHX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCi0jZGVmaW5lIENGR19JTU1SCQlDRkdfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ0ZHX0lNTVIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkJKENGR19DQ1NSQkFSICsgMHg4MDAwKQotI2RlZmluZSBDRkdfUENJMl9BRERSCQkoQ0ZHX0NDU1JCQVIgKyAweDkwMDApCi0jZGVmaW5lIENGR19QQ0lFMV9BRERSCQkoQ0ZHX0NDU1JCQVIgKyAweGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9BRERSCQkoQ09ORklHX1NZU19DQ1NSQkFSICsgMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUiArIDB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9BRERSCQkoQ09ORklHX1NZU19DQ1NSQkFSICsgMHhhMDAwKQogCiAvKgogICogRERSIFNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQogI2RlZmluZSBDT05GSUdfRElNTV9TTE9UU19QRVJfQ1RMUgkxCkBAIC0xNjUsMTYgKzE2NSwxNiBAQAogICogRmxhc2ggb24gdGhlIExvY2FsIEJ1cwogICovCiAjaWZkZWYgQ09ORklHX1RRTV9CSUdGTEFTSAotI2RlZmluZSBDRkdfRkxBU0gwCQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDEJCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDAJCTB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDEJCTB4QzAwMDAwMDAKICNlbHNlIC8qICFDT05GSUdfVFFNX0JJR0ZMQVNIICovCi0jZGVmaW5lIENGR19GTEFTSDAJCTB4RkMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMQkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMAkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMQkJMHhGODAwMDAwMAogI2VuZGlmIC8qIENPTkZJR19UUU1fQklHRkxBU0ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0gxLCBDRkdfRkxBU0gwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSDEsIENPTkZJR19TWVNfRkxBU0gwIH0KIAotI2RlZmluZSBDRkdfTEJDX0ZMQVNIX0JBU0UJQ0ZHX0ZMQVNIMQkvKiBMb2NhbGJ1cyBmbGFzaCBzdGFydAkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0xCQ19GTEFTSF9CQVNFICAvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19GTEFTSF9CQVNFCUNPTkZJR19TWVNfRkxBU0gxCS8qIExvY2FsYnVzIGZsYXNoIHN0YXJ0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19MQkNfRkxBU0hfQkFTRSAgLyogc3RhcnQgb2YgRkxBU0gJKi8KIAogLyogRGVmYXVsdCBPUnggdGltaW5ncyBhcmUgZm9yIDw9IDQxLjcgTUh6IExvY2FsIEJ1cyBDbG9jay4KICAqCkBAIC0xODMsNyArMTgzLDcgQEAKICAqCiAgKiBGb3Igb3RoZXIgTG9jYWwgQnVzIENsb2NrcyBzZWUgZm9sbG93aW5nIHRhYmxlOgogICoKLSAqIENsb2NrL01IeiAgIENGR19PUnhfUFJFTElNCisgKiBDbG9jay9NSHogICBDT05GSUdfU1lTX09SeF9QUkVMSU0KICAqIDE2NiAgICAgICAgIDB4Li4uLi5DQTUKICAqIDEzMyAgICAgICAgIDB4Li4uLi5DODUKICAqIDEwMCAgICAgICAgIDB4Li4uLi5DNjUKQEAgLTE5Niw1NiArMTk2LDU2IEBACiAgKgogICovCiAjaWZkZWYgQ09ORklHX1RRTV9CSUdGTEFTSAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhFMDAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQJKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4RTAwMDAwNDAJLyogNTEyTUIgRmxhc2gJCSovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweEMwMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdAkqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhFMDAwMDA0MAkvKiA1MTJNQiBGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweEUwMDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4RTAwMDAwNDAJLyogNTEyTUIgRmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJMHhDMDAwMTgwMQkvKiBwb3J0IHNpemUgMzJiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEUwMDAwMDQwCS8qIDUxMk1CIEZsYXNoCQkqLwogI2Vsc2UgLyogIUNPTkZJR19UUU1fQklHRkxBU0ggKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCTB4ZmMwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0CSovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweGZjMDAwMDQwCS8qIDY0TUIgRmxhc2gJCSovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweGY4MDAxODAxCS8qIHBvcnQgc2l6ZSAzMmJpdAkqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhmYzAwMDA0MAkvKiA2NE1CIEZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4ZmMwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhmYzAwMDA0MAkvKiA2NE1CIEZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZjgwMDE4MDEJLyogcG9ydCBzaXplIDMyYml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmYzAwMDA0MAkvKiA2NE1CIEZsYXNoCQkqLwogI2VuZGlmIC8qIENPTkZJR19UUU1fQklHRkxBU0ggKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogZmxhc2ggaXMgQ0ZJIGNvbXBhdC4JCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJLyogZmxhc2ggaXMgQ0ZJIGNvbXBhdC4JCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yCSovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxIC8qIHNwZWVkIHVwIG91dHB1dCB0byBGbGFzaAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEgLyogc3BlZWQgdXAgb3V0cHV0IHRvIEZsYXNoCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG51bWJlciBvZiBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBzZWN0b3JzIHBlciBkZXZpY2UJCSovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbnVtYmVyIG9mIGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBzZWN0b3JzIHBlciBkZXZpY2UJCSovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpCSovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvcgkqLwogCiAvKgogICogTm90ZTogd2hlbiBjaGFuZ2luZyB0aGUgTG9jYWwgQnVzIGNsb2NrIGRpdmlkZXIgeW91IGhhdmUgdG8KLSAqIGNoYW5nZSB0aGUgdGltaW5nIHZhbHVlcyBpbiBDRkdfT1J4X1BSRUxJTS4KKyAqIGNoYW5nZSB0aGUgdGltaW5nIHZhbHVlcyBpbiBDT05GSUdfU1lTX09SeF9QUkVMSU0uCiAgKgogICogTENSUlswMDowM10gQ0xLRElWOiBTeXN0ZW0gKENDQikgY2xvY2sgZGl2aWRlci4gVmFsaWQgdmFsdWVzIGFyZSAyLCA0LCA4LgogICogTENSUlsxNjoxN10gRUFEQyAgOiBFeHRlcm5hbCBhZGRyZXNzIGRlbGF5IGN5Y2xlcy4gSXQgc2hvdWxkIGJlIHNldCB0byAyCiAgKiAgICAgICAgICAgICAgICAgICAgIGZvciBMb2NhbCBCdXMgQ2xvY2sgPiA4My4zIE1Iei4KICAqLwotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDgJLyogTEIgY2xvY2sgcmF0aW8gcmVnCSovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAkvKiBMQiBjb25maWcgcmVnCSovCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MjAwMDAwMDAJLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzYy4qLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ1JSCQkweDAwMDMwMDA4CS8qIExCIGNsb2NrIHJhdGlvIHJlZwkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwCS8qIExCIGNvbmZpZyByZWcJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMAkvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCQkweDIwMDAwMDAwCS8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2MuKi8KIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX0NDU1JCQVIgXAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfQ0NTUkJBUiBcCiAJCQkJICsgMHgwNDAxMDAwMCkJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKH5URVhUX0JBU0UgKyAxKS8qIFJlc2VydmVkIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMzg0ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYwkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoflRFWFRfQkFTRSArIDEpLyogUmVzZXJ2ZWQgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMzg0ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYwkqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI2lmIGRlZmluZWQoQ09ORklHX1RRTTg1NjApCkBAIC0yNTgsMzIgKzI1OCwzMiBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFBTLzIgS2V5Ym9hcmQgKi8KICNkZWZpbmUgQ09ORklHX1BTMktCRAkJCS8qIEFULVBTLzIgS2V5Ym9hcmQJCSovCiAjZGVmaW5lIENPTkZJR19QUzJNVUxUCQkJLyogLi4gb24gUFMvMiBNdWx0aXBsZXhlcgkqLwogI2RlZmluZSBDT05GSUdfUFMyU0VSSUFMCTIJLyogLi4gb24gRFVBUlQyCQkJKi8KLSNkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENGR19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCisjZGVmaW5lIENPTkZJR19QUzJNVUxUX0RFTEFZCShDT05GSUdfU1lTX0haLzIpCS8qIEluaXRpYWwgZGVsYXkJKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgkxCiAKICNlbmRpZiAvKiBDT05GSUdfVFFNODU2MCAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMH0KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KQEAgLTI5MiwxMiArMjkyLDEyIEBACiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAogLyogQ0FOICovCi0jZGVmaW5lIENGR19DQU5fQkFTRQkJKENGR19DQ1NSQkFSIFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fQkFTRQkJKENPTkZJR19TWVNfQ0NTUkJBUiBcCiAJCQkJICsgMHgwMzAwMDAwMCkJLyogQ0FOIGJhc2UgYWRkcmVzcyAgICAgKi8KICNpZmRlZiBDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIEtpQiBhZGRyZXNzIG1hc2sgICovCi0jZGVmaW5lIENGR19PUjJfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX1VQTV9CSSkKLSNkZWZpbmUgQ0ZHX0JSMl9DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkEpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBLaUIgYWRkcmVzcyBtYXNrICAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX1VQTV9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQSkgfCBcCiAJCQkJIEJSX1BTXzggfCBCUl9NU19VUE1DIHwgQlJfVikKICNlbmRpZiAvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCkBAIC0zMDcsNDIgKzMwNyw0MiBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIJKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg0OH0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg0OH0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQkweDMwMDAKIAogLyogSTJDIFJUQyAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzNwkJLyogVXNlIGRzMTMzNyBydGMgdmlhIGkyYwkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KIAogLyogSTJDIEVFUFJPTSAqLwogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uIGZvciBvbmJvYXJkIEVFUFJPTSBNMjRDMzIgKE0yNEM2NCBzaG91bGQgd29yayBhbHNvKS4KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwkJMQkvKiBtb3JlIHRoYW4gb25lIGVlcHJvbQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCQkxCS8qIG1vcmUgdGhhbiBvbmUgZWVwcm9tCSovCiAKIC8qIEkyQyBTWVNNT04gKExNNzUpICovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkJLyogT04gU2VtaSdzIExNNzUJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQkJLyogU2Vuc29yIGFkZHJlc3NlcwkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCTcwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCS0zMAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCTMKIAogI2lmbmRlZiBDT05GSUdfUENJRTEKIC8qIFJhcGlkSU8gTU1VICovCiAjaWZkZWYgQ09ORklHX1RRTV9CSUdGTEFTSAotI2RlZmluZSBDRkdfUklPX01FTV9CQVNFCTB4YjAwMDAwMDAJLyogYmFzZSBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfUklPX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9CQVNFCTB4YjAwMDAwMDAJLyogYmFzZSBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0JCQkqLwogI2Vsc2UgLyogIUNPTkZJR19UUU1fQklHRkxBU0ggKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCS8qIGJhc2UgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNCQkJKi8KICNlbmRpZiAvKiBDT05GSUdfVFFNX0JJR0ZMQVNIICovCi0jZGVmaW5lIENGR19SSU9fTUVNX1BIWVMJQ0ZHX1JJT19NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fUEhZUwlDT05GSUdfU1lTX1JJT19NRU1fQkFTRQogI2VuZGlmIC8qIENPTkZJR19QQ0lFMSAqLwogCiAvKiBOQU5EIEZMQVNIICovCkBAIC0zNTUsMzggKzM1NSwzOCBAQAogI2RlZmluZQlDT05GSUdfTVREX05BTkRfRUNDX0pGRlMyCTEJLyogdXNlIEpGRlMyIEVDQwkqLwogCiAvKiBhZGRyZXNzIGRpc3RhbmNlIGJldHdlZW4gY2hpcCBzZWxlY3RzICovCi0jZGVmaW5lCUNGR19OQU5EX1NFTEVDVF9ERVZJQ0UJMQotI2RlZmluZQlDRkdfTkFORF9DU19ESVNUCTB4MjAwCisjZGVmaW5lCUNPTkZJR19TWVNfTkFORF9TRUxFQ1RfREVWSUNFCTEKKyNkZWZpbmUJQ09ORklHX1NZU19OQU5EX0NTX0RJU1QJMHgyMDAKIAotI2RlZmluZSBDRkdfTkFORF9TSVpFCQkweDgwMDAKLSNkZWZpbmUgQ0ZHX05BTkQwX0JBU0UJCShDRkdfQ0NTUkJBUiArIDB4MDMwMTAwMDApCi0jZGVmaW5lIENGR19OQU5EMV9CQVNFCQkoQ0ZHX05BTkQwX0JBU0UgKyBDRkdfTkFORF9DU19ESVNUKQotI2RlZmluZSBDRkdfTkFORDJfQkFTRQkJKENGR19OQU5EMV9CQVNFICsgQ0ZHX05BTkRfQ1NfRElTVCkKLSNkZWZpbmUgQ0ZHX05BTkQzX0JBU0UJCShDRkdfTkFORDJfQkFTRSArIENGR19OQU5EX0NTX0RJU1QpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TSVpFCQkweDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMF9CQVNFCQkoQ09ORklHX1NZU19DQ1NSQkFSICsgMHgwMzAxMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EMV9CQVNFCQkoQ09ORklHX1NZU19OQU5EMF9CQVNFICsgQ09ORklHX1NZU19OQU5EX0NTX0RJU1QpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDJfQkFTRQkJKENPTkZJR19TWVNfTkFORDFfQkFTRSArIENPTkZJR19TWVNfTkFORF9DU19ESVNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkQzX0JBU0UJCShDT05GSUdfU1lTX05BTkQyX0JBU0UgKyBDT05GSUdfU1lTX05BTkRfQ1NfRElTVCkKIAotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFICAgICAyCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFICAgICAyCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCSovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAKLSNpZiAoQ0ZHX01BWF9OQU5EX0RFVklDRSA9PSAxKQotI2RlZmluZSBDRkdfTkFORF9CQVNFX0xJU1QgeyBDRkdfTkFORDBfQkFTRSB9Ci0jZWxpZiAoQ0ZHX01BWF9OQU5EX0RFVklDRSA9PSAyKQotI2RlZmluZQlDRkdfTkFORF9RVUlFVF9URVNUCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUIHsgQ0ZHX05BTkQwX0JBU0UsIFwKLQkJCSAgICAgQ0ZHX05BTkQxX0JBU0UsIFwKKyNpZiAoQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UgPT0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVCB7IENPTkZJR19TWVNfTkFORDBfQkFTRSB9CisjZWxpZiAoQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UgPT0gMikKKyNkZWZpbmUJQ09ORklHX1NZU19OQU5EX1FVSUVUX1RFU1QJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUIHsgQ09ORklHX1NZU19OQU5EMF9CQVNFLCBcCisJCQkgICAgIENPTkZJR19TWVNfTkFORDFfQkFTRSwgXAogfQotI2VsaWYgKENGR19NQVhfTkFORF9ERVZJQ0UgPT0gNCkKLSNkZWZpbmUJQ0ZHX05BTkRfUVVJRVRfVEVTVAkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVCB7IENGR19OQU5EMF9CQVNFLCBcCi0JCQkgICAgIENGR19OQU5EMV9CQVNFLCBcCi0JCQkgICAgIENGR19OQU5EMl9CQVNFLCBcCi0JCQkgICAgIENGR19OQU5EM19CQVNFLCBcCisjZWxpZiAoQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UgPT0gNCkKKyNkZWZpbmUJQ09ORklHX1NZU19OQU5EX1FVSUVUX1RFU1QJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUIHsgQ09ORklHX1NZU19OQU5EMF9CQVNFLCBcCisJCQkgICAgIENPTkZJR19TWVNfTkFORDFfQkFTRSwgXAorCQkJICAgICBDT05GSUdfU1lTX05BTkQyX0JBU0UsIFwKKwkJCSAgICAgQ09ORklHX1NZU19OQU5EM19CQVNFLCBcCiB9CiAjZW5kaWYKIAogLyogQ1MzIGZvciBOQU5EIEZsYXNoICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkoKENGR19OQU5EMF9CQVNFICYgQlJfQkEpIHwgQlJfUFNfOCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkoKENPTkZJR19TWVNfTkFORDBfQkFTRSAmIEJSX0JBKSB8IEJSX1BTXzggfCBcCiAJCQkJIEJSX01TX1VQTUIgfCBCUl9WKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJKFAyU1pfVE9fQU0oQ0ZHX05BTkRfU0laRSkgfCBPUl9VUE1fQkkpCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJKFAyU1pfVE9fQU0oQ09ORklHX1NZU19OQU5EX1NJWkUpIHwgT1JfVVBNX0JJKQogCiAjZGVmaW5lIE5BTkRfQklHX0RFTEFZX1VTICAgICAgIDI1CS8qIG1heCB0UiBmb3IgU2Ftc3VuZyBkZXZpY2VzCSovCiAKQEAgLTM5NiwxNyArMzk2LDE3IEBACiAgKiBHZW5lcmFsIFBDSQogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkoQ0ZHX0NDU1JCQVIgKyAweDAyMDAwMDAwKQotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCUNGR19QQ0kxX0lPX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDEwMDAwMDAJLyogIDE2TQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCShDT05GSUdfU1lTX0NDU1JCQVIgKyAweDAyMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwlDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDEwMDAwMDAJLyogIDE2TQkJCSovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfUENJRTEKIC8qCkBAIC00MTQsMTcgKzQxNCwxNyBAQAogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCiAjaWZkZWYgQ09ORklHX1RRTV9CSUdGTEFTSAotI2RlZmluZSBDRkdfUENJRTFfTUVNX0JBU0UJMHhiMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfTUVNX1NJWkUJMHgxMDAwMDAwMCAgICAgIC8qIDUxMk0gICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lFMV9JT19CQVNFCTB4YWYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweGIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUJMHgxMDAwMDAwMCAgICAgIC8qIDUxMk0gICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRQkweGFmMDAwMDAwCiAjZWxzZSAvKiAhQ09ORklHX1RRTV9CSUdGTEFTSCAqLwotI2RlZmluZSBDRkdfUENJRTFfTUVNX0JBU0UJMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfTUVNX1NJWkUJMHgyMDAwMDAwMCAgICAgIC8qIDUxMk0gICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lFMV9JT19CQVNFCTB4ZWYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fQkFTRQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX1NJWkUJMHgyMDAwMDAwMCAgICAgIC8qIDUxMk0gICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfSU9fQkFTRQkweGVmMDAwMDAwCiAjZW5kaWYgLyogQ09ORklHX1RRTV9CSUdGTEFTSCAqLwotI2RlZmluZSBDRkdfUENJRTFfTUVNX1BIWVMJQ0ZHX1BDSUUxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0lFMV9JT19QSFlTCUNGR19QQ0lFMV9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0lFMV9JT19TSVpFCTB4MTAwMDAwMCAgICAgICAvKiAxNk0gICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTCUNPTkZJR19TWVNfUENJRTFfSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0lPX1NJWkUJMHgxMDAwMDAwICAgICAgIC8qIDE2TSAgICAgICAgICAgICAgICAgICovCiAjZW5kaWYgLyogQ09ORklHX1BDSUUxICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCkBAIC00MzUsNyArNDM1LDcgQEAKICN1bmRlZiBDT05GSUdfVFVMSVAKIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3CS8qIE1vdG9yb2xhCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTA1NwkvKiBNb3Rvcm9sYQkJCSovCiAKICNlbmRpZiAvKiBDT05GSUdfUENJICovCiAKQEAgLTUyOSwyOSArNTI5LDI5IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpICYmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMSkKICNkZWZpbmUgQ09ORklHX0VUSEVSX09OX0ZDQzEKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMQkoQ01YRkNSX0ZDMSB8IENNWEZDUl9SRjFDU19NU0sgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sxCShDTVhGQ1JfRkMxIHwgQ01YRkNSX1JGMUNTX01TSyB8IFwKIAkJCQkgQ01YRkNSX1RGMUNTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTEJKENNWEZDUl9SRjFDU19DTEsxMSB8IENNWEZDUl9URjFDU19DTEsxMikKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTEJKENNWEZDUl9SRjFDU19DTEsxMSB8IENNWEZDUl9URjFDU19DTEsxMikKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQogI2RlZmluZSBDT05GSUdfRVRIRVJfT05fRkNDMgotI2RlZmluZSBDRkdfQ01YRkNSX01BU0syCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSzIJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgXAogCQkJCSBDTVhGQ1JfVEYyQ1NfTVNLKQotI2RlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMgkoQ01YRkNSX1JGMkNTX0NMSzE2IHwgQ01YRkNSX1RGMkNTX0NMSzEzKQotI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMgkoQ01YRkNSX1JGMkNTX0NMSzE2IHwgQ01YRkNSX1RGMkNTX0NMSzEzKQorI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDMpCiAjZGVmaW5lIENPTkZJR19FVEhFUl9PTl9GQ0MzCi0jZGVmaW5lIENGR19DTVhGQ1JfTUFTSzMJKENNWEZDUl9GQzMgfCBDTVhGQ1JfUkYzQ1NfTVNLIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMwkoQ01YRkNSX0ZDMyB8IENNWEZDUl9SRjNDU19NU0sgfCBcCiAJCQkJIENNWEZDUl9URjNDU19NU0spCi0jZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUzCShDTVhGQ1JfUkYzQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYzQ1NfQ0xLMTQpCi0jZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUzCShDTVhGQ1JfUkYzQ1NfQ0xLMTUgfCBDTVhGQ1JfVEYzQ1NfQ0xLMTQpCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogI2VuZGlmCiAKIC8qCkBAIC01NjQsMTMgKzU2NCwxMyBAQAogI2Vsc2UgLyogIUNPTkZJR19UUU1fRkxBU0hfTl9UWVBFICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyAob25lIHNlY3RvcikgZm9yIGVudgkqLwogI2VuZGlmIC8qIENPTkZJR19UUU1fRkxBU0hfTl9UWVBFICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX0VOVl9BRERSIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRzCSovCiAKQEAgLTYyNiwyOCArNjI2LDI4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIFwKLQkJCSBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikgICAvKiBQcmludCBCdWYgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBcCisJCQkgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KSAgIC8qIFByaW50IEJ1ZiBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcwkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTg2MEwuaCBiL2luY2x1ZGUvY29uZmlncy9UUU04NjBMLmgKaW5kZXggMjNkMGRkNi4uYjY3Y2RjZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTg2MEwuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODYwTC5oCkBAIC04Myw3ICs4Myw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEyNywzMiArMTI3LDMyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2Miw0NyArMTYyLDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMTIsNyArMjEyLDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIE1ha2Ugc3VyZSB0byByZW1hcCBmbGFzaGVzIGNvcnJlY3RseSAqLwogCkBAIC0yMzEsMTYgKzIzMSwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTAsMTAgKzI1MCwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjYyLDkgKzI2Miw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3MiwyMCArMjcyLDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjkzLDcgKzI5Myw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMDIsNyArMzAyLDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMTEsMTQgKzMxMSwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zMzEsMjggKzMzMSwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzY3LDIyICszNjcsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzkzLDE5ICszOTMsMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUJQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDM2LDM0ICs0MzYsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04NjBNLmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODYwTS5oCmluZGV4IGU4ZDJlYzQuLjQ2ODUyZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04NjBNLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTg2ME0uaApAQCAtODMsNyArODMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMjgsMzIgKzEyOCwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjMsNDYgKzE2Myw0NiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMTMsNyArMjEzLDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTIzMiwxNiArMjMyLDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1MSwxMCArMjUxLDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjMsOSArMjYzLDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjczLDIwICsyNzMsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTQsNyArMjk0LDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdAogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTMwMyw3ICszMDMsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTMxMiwxNCArMzEyLDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMzMiwyOCArMzMyLDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNjgsMjIgKzM2OCwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zOTQsMTkgKzM5NCwxOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwODAwMDAwMAkvKiBtYXggMTI4IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUJQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDM3LDM4ICs0MzcsMzggQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk4CisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTk4CiAKIC8qCiAgKiBGb3IgMTYgTUJpdCwgcmVmcmVzaCByYXRlcyBjb3VsZCBiZSAzMS4zIHVzCiAgKiAoPSA2NCBtcyAvIDJLID0gMTI1IC8gcXVhZCBidXJzdHMpLgogICogRm9yIGEgc2ltcGxlciBpbml0aWFsaXphdGlvbiwgMTUuNiB1cyBpcyB1c2VkIGluc3RlYWQuCiAgKgotICogI2RlZmluZSBDRkdfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS18ySwlNUFRQUl9QVFBfRElWNjQJCWZvciAxIGJhbmsKICAqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiAxMCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfMTBDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl8xMENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8yIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BOSAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTg2MkwuaCBiL2luY2x1ZGUvY29uZmlncy9UUU04NjJMLmgKaW5kZXggNzRjODE1Yi4uYTdmY2IxYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTg2MkwuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODYyTC5oCkBAIC04Niw3ICs4Niw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEzMSwzMiArMTMxLDMyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2Niw0NyArMTY2LDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UrZmxhc2hfaW5mb1swXS5zaXplIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg4MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMTYsNyArMjE2LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIE1ha2Ugc3VyZSB0byByZW1hcCBmbGFzaGVzIGNvcnJlY3RseSAqLwogCkBAIC0yMzUsMTYgKzIzNSwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTQsMTAgKzI1NCwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY2LDkgKzI2Niw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3NiwyMCArMjc2LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjk3LDcgKzI5Nyw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMDYsNyArMzA2LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMTUsMTQgKzMxNSwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zMzUsMjggKzMzNSwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzcxLDIyICszNzEsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzk3LDE5ICszOTcsMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUJQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDQxLDM0ICs0NDEsMzQgQEAKICAqIDEwMCBNaHogPT4gMTAwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTk1CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTg2Mk0uaCBiL2luY2x1ZGUvY29uZmlncy9UUU04NjJNLmgKaW5kZXggYTVmYzM4ZC4uYmNmMzdkOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTg2Mk0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODYyTS5oCkBAIC04Niw3ICs4Niw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEzMSwzMiArMTMxLDMyIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE2Niw0NyArMTY2LDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjE3LDcgKzIxNyw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQrQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZQlDRkdfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJCS8qIE1ha2Ugc3VyZSB0byByZW1hcCBmbGFzaGVzIGNvcnJlY3RseSAqLwogCkBAIC0yMzYsMTYgKzIzNiwxNiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZHdhcmUgSW5mb3JtYXRpb24gQmxvY2sKICAqLwotI2RlZmluZSBDRkdfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX09GRlNFVAkweDAwMDNGRkMwCS8qIG9mZnNldCBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZSAgIG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTUsMTAgKzI1NSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY3LDkgKzI2Nyw5IEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbHNlCS8qIHdlIG11c3QgYWN0aXZhdGUgR1BMNSBpbiB0aGUgU0lVTUNSIGZvciBDQU4gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MxMSB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3NywyMCArMjc3LDIwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjk4LDcgKzI5OCw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQKICAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0zMDcsNyArMzA3LDcgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0zMTYsMTQgKzMxNiwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0zMzYsMjggKzMzNiwyOCBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIJMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzcyLDIyICszNzIsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzoKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJIE9SX1NDWV8zX0NMSyB8IE9SX0VIVFIgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCi0jZGVmaW5lIENGR19PUjFfUkVNQVAJQ0ZHX09SMF9SRU1BUAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IwX1BSRUxJTQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIC8qCiAgKiBCUjIvMyBhbmQgT1IyLzMgKFNEUkFNKQpAQCAtMzk4LDE5ICszOTgsMTkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUJQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZQlDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDQyLDM0ICs0NDIsMzQgQEAKICAqIDEwMCBNaHogPT4gMTAwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTk1CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RRTTg2Nk0uaCBiL2luY2x1ZGUvY29uZmlncy9UUU04NjZNLmgKaW5kZXggOWUxNGQ5OS4uODdkYzI2NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1RRTTg2Nk0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODY2TS5oCkBAIC0zNywxNyArMzcsMTcgQEAKICNkZWZpbmUgQ09ORklHX1RRTTg2Nk0JCTEJLyogLi4ub24gYSBUUU04eHhNIG1vZHVsZQkqLwogCiAjZGVmaW5lIENPTkZJR184eHhfT1NDTEsJCTEwMDAwMDAwCS8qICAxMCBNSHogLSBQTEwgaW5wdXQgY2xvY2sJKi8KLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUlOCQkxNTAwMDAwMAkvKiAgMTUgTUh6IC0gQ1BVIG1pbmltdW0gY2xvY2sJKi8KLSNkZWZpbmUgQ0ZHXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAtIENQVSBtYXhpbXVtIGNsb2NrCSovCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4JCTE1MDAwMDAwCS8qICAxNSBNSHogLSBDUFUgbWluaW11bSBjbG9jawkqLworI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUFYCQkxMzMwMDAwMDAJLyogMTMzIE1IeiAtIENQVSBtYXhpbXVtIGNsb2NrCSovCiAjZGVmaW5lIENPTkZJR184eHhfQ1BVQ0xLX0RFRkFVTFQJNTAwMDAwMDAJLyogIDUwIE1IeiAtIENQVSBkZWZhdWx0IGNsb2NrCSovCiAJCQkJCQkvKiAoaXQgd2lsbCBiZSB1c2VkIGlmIHRoZXJlIGlzIG5vCSovCiAJCQkJCQkvKiAnY3B1Y2xrJyB2YXJpYWJsZSB3aXRoIHZhbGlkIHZhbHVlKQkqLwogCi0jdW5kZWYgQ0ZHX01FQVNVUkVfQ1BVQ0xLCQkJLyogTWVhc3VyZSByZWFsIGNwdSBjbG9jawkqLworI3VuZGVmIENPTkZJR19TWVNfTUVBU1VSRV9DUFVDTEsJCQkvKiBNZWFzdXJlIHJlYWwgY3B1IGNsb2NrCSovCiAJCQkJCQkvKiAoZnVuY3Rpb24gbWVhc3VyZV9nY2xrKCkJKi8KIAkJCQkJCS8qIHdpbGwgYmUgY2FsbGVkKQkJKi8KLSNpZmRlZiBDRkdfTUVBU1VSRV9DUFVDTEsKLSNkZWZpbmUgQ0ZHXzhYWF9YSU4JCTEwMDAwMDAwCS8qIG1lYXN1cmVfZ2NsaygpIG5lZWRzIHRoaXMJKi8KKyNpZmRlZiBDT05GSUdfU1lTX01FQVNVUkVfQ1BVQ0xLCisjZGVmaW5lIENPTkZJR19TWVNfOFhYX1hJTgkJMTAwMDAwMDAJLyogbWVhc3VyZV9nY2xrKCkgbmVlZHMgdGhpcwkqLwogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHXzh4eF9DT05TX1NNQzEJMQkvKiBDb25zb2xlIGlzIG9uIFNNQzEJCSovCkBAIC05NSw3ICs5NSw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZsYXNoX3NlbGYiCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTEwNyw4ICsxMDcsOCBAQAogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKIC8qCkBAIC0xMjgsMTAgKzEyOCwxMCBAQAogI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDIpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KICNlbmRpZgkvKiBDT05GSUdfU09GVF9JMkMgKi8KIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIEVFUFJPTSBBVDI0QzI1NgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCQkvKiB0d28gYnl0ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIEVFUFJPTSBBVDI0QzI1NgkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgkJLyogdHdvIGJ5dGUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC0xNzIsMzIgKzE3MiwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMDcsNDYgKzIwNyw0NiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGRjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRkYwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwIC8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yNTcsNyArMjU3LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCtDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTI3NiwxNiArMjc2LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUJICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplCSAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5NSwxMCArMjk1LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMDcsOSArMzA3LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYgQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzE3LDE0ICszMTcsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTMzMyw3ICszMzMsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTM0MiwxNCArMzQyLDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTM2MiwyOCArMzYyLDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQJIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM5OCwyMiArMzk4LDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6IERlZmF1bHQgdmFsdWUgb2YgT1IwIGFmdGVyIHJlc2V0CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gfCBPUl9BQ1NfTVNLIHwgT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSB8IE9SX0FDU19NU0sgfCBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzE1X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTQyNCwxOSArNDI0LDE5IEBACiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCQkoMjU2IDw8IDIwKQkvKiBtYXggMjU2IE1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX1NEUkFNICkKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAjaWZuZGVmIENPTkZJR19DQU5fRFJJVkVSCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCUNGR19PUjJfUFJFTElNCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCUNPTkZJR19TWVNfT1IyX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2Vsc2UJLyogQ0FOIHVzZXMgQ1MzIywgc28gd2UgY2FuIGhhdmUgb25seSBvbmUgU0RSQU0gYmFuayBhbnl3YXkgKi8KLSNkZWZpbmUgQ0ZHX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLwotI2RlZmluZSBDRkdfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KLSNkZWZpbmUgQ0ZHX09SM19DQU4JCShDRkdfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQotI2RlZmluZSBDRkdfQlIzX0NBTgkJKChDRkdfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0NBTl9CQVNFCQkweEMwMDAwMDAwCS8qIENBTiBtYXBwZWQgYXQgMHhDMDAwMDAwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX0NBTgkJKENPTkZJR19TWVNfQ0FOX09SX0FNIHwgT1JfRzVMQSB8IE9SX0JJKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19DQU4JCSgoQ09ORklHX1NZU19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCUJSX1BTXzggfCBCUl9NU19VUE1CIHwgQlJfViApCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIApAQCAtNDQ3LDQ4ICs0NDcsNDggQEAKICAqIDQJTnVtYmVyIG9mIHJlZnJlc2ggY3ljbGVzIHBlciBwZXJpb2QKICAqIDY0CVJlZnJlc2ggY3ljbGUgaW4gbXMgcGVyIG51bWJlciBvZiByb3dzCiAgKi8KLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDY0ICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCiAKIC8qCiAgKiBQZXJpb2RpYyB0aW1lciAoTUFNUltQVHhdKSBmb3IgNCAqIDcuOCB1cyByZWZyZXNoICg9IDMxLjIgdXMgcGVyIHF1YWQpCiAgKgogICogICAgICAgICAgICAgICAgICAgICAgICBDUFVjbG9jayhNSHopICogMzEuMgotICogQ0ZHX01BTVJfUFRBID0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgIHdpdGggREZCUkcgPSAwCisgKiBDT05GSUdfU1lTX01BTVJfUFRBID0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgIHdpdGggREZCUkcgPSAwCiAgKiAgICAgICAgICAgICAgICAyXigyKlNDQ1JbREZCUkddKSAqIE1QVFBSX1BUUF9ESVYxNgogICoKLSAqIENQVSBjbG9jayA9ICAxNSBNSHo6ICBDRkdfTUFNUl9QVEEgPSAgMjkgICAtPiAgNCAqIDcuNzMgdXMKLSAqIENQVSBjbG9jayA9ICA1MCBNSHo6ICBDRkdfTUFNUl9QVEEgPSAgOTcgICAtPiAgNCAqIDcuNzYgdXMKLSAqIENQVSBjbG9jayA9ICA2NiBNSHo6ICBDRkdfTUFNUl9QVEEgPSAxMjggICAtPiAgNCAqIDcuNzUgdXMKLSAqIENQVSBjbG9jayA9IDEzMyBNSHo6ICBDRkdfTUFNUl9QVEEgPSAyNTUgICAtPiAgNCAqIDcuNjcgdXMKKyAqIENQVSBjbG9jayA9ICAxNSBNSHo6ICBDT05GSUdfU1lTX01BTVJfUFRBID0gIDI5ICAgLT4gIDQgKiA3LjczIHVzCisgKiBDUFUgY2xvY2sgPSAgNTAgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9ICA5NyAgIC0+ICA0ICogNy43NiB1cworICogQ1BVIGNsb2NrID0gIDY2IE1IejogIENPTkZJR19TWVNfTUFNUl9QVEEgPSAxMjggICAtPiAgNCAqIDcuNzUgdXMKKyAqIENQVSBjbG9jayA9IDEzMyBNSHo6ICBDT05GSUdfU1lTX01BTVJfUFRBID0gMjU1ICAgLT4gIDQgKiA3LjY3IHVzCiAgKgogICogVmFsdWUgOTcgaXMgZm9yIDQgKiA3LjggdXMgYXQgNTAgTUh6LiBTbyB0aGUgcmVmcmVzaCBjeWNsZSByZXF1aXJlbWVudCB3aWxsCiAgKiBiZSBtZXQgYWxzbyBpbiB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLCBpLmUuIGlmIGVudmlyb25tZW50IHZhcmlhYmxlCiAgKiAnY3B1Y2xrJyBpcyBub3Qgc2V0LgogICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkJOTcKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkJOTcKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIgUmVnaXN0ZXIgKE1QVFBSKSB2YWx1ZXMuCiAgKi8KIC8qIDQgKiA3LjggdXMgcmVmcmVzaCAoPSAzMS4yIHVzIHBlciBxdWFkKSBhdCA1MCBNSHogYW5kIFBUQSA9IDk3ICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgogLyogNCAqIDMuOSB1cyByZWZyZXNoICg9IDE1LjYgdXMgcGVyIHF1YWQpIGF0IDUwIE1IeiBhbmQgUFRBID0gOTcgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogMTAgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzEwQ09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfMTBDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMiB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTkgIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9UUU04ODVELmggYi9pbmNsdWRlL2NvbmZpZ3MvVFFNODg1RC5oCmluZGV4IDY2ZjRhOTguLjk0MmJiZjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9UUU04ODVELmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1RRTTg4NUQuaApAQCAtNDAsOCArNDAsOCBAQAogI2RlZmluZSBDT05GSUdfVFFNODg1RAkJMQkvKiAuLi5vbiBhIFRRTTg4RCBtb2R1bGUJKi8KIAogI2RlZmluZSBDT05GSUdfOHh4X09TQ0xLCQkxMDAwMDAwMAkvKiAgMTAgTUh6IC0gUExMIGlucHV0IGNsb2NrCSovCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01JTgkJMTUwMDAwMDAJLyogIDE1IE1IeiAtIENQVSBtaW5pbXVtIGNsb2NrCSovCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCS8qIDEzMyBNSHogLSBDUFUgbWF4aW11bSBjbG9jawkqLworI2RlZmluZSBDT05GSUdfU1lTXzh4eF9DUFVDTEtfTUlOCQkxNTAwMDAwMAkvKiAgMTUgTUh6IC0gQ1BVIG1pbmltdW0gY2xvY2sJKi8KKyNkZWZpbmUgQ09ORklHX1NZU184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCS8qIDEzMyBNSHogLSBDUFUgbWF4aW11bSBjbG9jawkqLwogI2RlZmluZSBDT05GSUdfOHh4X0NQVUNMS19ERUZBVUxUCTY2MDAwMDAwCS8qICA2NiBNSHogLSBDUFUgZGVmYXVsdCBjbG9jawkqLwogCQkJCQkJLyogKGl0IHdpbGwgYmUgdXNlZCBpZiB0aGVyZSBpcyBubwkqLwogCQkJCQkJLyogJ2NwdWNsaycgdmFyaWFibGUgd2l0aCB2YWxpZCB2YWx1ZSkJKi8KQEAgLTg5LDcgKzg5LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTAxLDggKzEwMSw4IEBACiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJOTMwMDAJLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJOTMwMDAJLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogLyoKQEAgLTEyMiwxMyArMTIyLDEzIEBACiAjZGVmaW5lIEkyQ19ERUxBWQl1ZGVsYXkoMikJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogI2VuZGlmCS8qIENPTkZJR19TT0ZUX0kyQyAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogRUVQUk9NIEFUMjRDPz8JKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMgkJLyogdHdvIGJ5dGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBFRVBST00gQVQyNEM/PwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMgkJLyogdHdvIGJ5dGUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKICMgZGVmaW5lIENPTkZJR19SVENfRFMxMzM3IDEKLSMgZGVmaW5lIENGR19JMkNfUlRDX0FERFIgMHg2OAorIyBkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIgMHg2OAogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTY3LDM0ICsxNjcsMzQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDMwMDAwMAkvKiAxIC4uLiAzIE1CIGluIERSQU0JKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkJCS8qIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDMwMDAwMAkvKiAxIC4uLiAzIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAkJCQkvKiBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlCiAJCQkJCQkgICBtZW1vcnkgdGVzdC4qLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBFbmFibGUgbG9vcHcgY29tbWFuZC4KQEAgLTIwOSw0NyArMjA5LDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMCAvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjYzLDE2ICsyNjMsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmR3YXJlIEluZm9ybWF0aW9uIEJsb2NrCiAgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLwotI2RlZmluZSBDRkdfSFdJTkZPX1NJWkUJCTB4MDAwMDAwNDAJLyogc2l6ZQkgIG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19PRkZTRVQJMHgwMDAzRkZDMAkvKiBvZmZzZXQgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUJICBvZiBIVyBJbmZvIGJsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfSFdJTkZPX01BR0lDCTB4NTQ1MTREMzgJLyogJ1RRTTgnICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjgyLDEwICsyODIsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI5NCw5ICsyOTQsOSBAQAogICogUENNQ0lBIGNvbmZpZy4sIG11bHRpLWZ1bmN0aW9uIHBpbiB0cmktc3RhdGUKICAqLwogI2lmbmRlZiBDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZWxzZQkvKiB3ZSBtdXN0IGFjdGl2YXRlIEdQTDUgaW4gdGhlIFNJVU1DUiBmb3IgQ0FOICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX01MUkMwMSkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMDQsMTQgKzMwNCwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMzIwLDcgKzMyMCw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKIApAQCAtMzI5LDE0ICszMjksMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzQ5LDI4ICszNDksMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRAkgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19ERVIgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzg1LDIyICszODUsMjIgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzogRGVmYXVsdCB2YWx1ZSBvZiBPUjAgYWZ0ZXIgcmVzZXQKICAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSB8IE9SX0FDU19NU0sgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNIHwgT1JfQUNTX01TSyB8IE9SX0JJIHwgXAogCQkJCSBPUl9TQ1lfNl9DTEsgfCBPUl9UUkxYKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC00MTEsMTkgKzQxMSwxOSBAQAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJKDI1NiA8PCAyMCkJLyogbWF4IDI1NiBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZiBDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lIENGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTQzNCw0OCArNDM0LDQ4IEBACiAgKiA0CU51bWJlciBvZiByZWZyZXNoIGN5Y2xlcyBwZXIgcGVyaW9kCiAgKiA2NAlSZWZyZXNoIGN5Y2xlIGluIG1zIHBlciBudW1iZXIgb2Ygcm93cwogICovCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogNjQgKiAxMDAwKSAvICg0ICogNjQpKQogCiAvKgogICogUGVyaW9kaWMgdGltZXIgKE1BTVJbUFR4XSkgZm9yIDQgKiA3LjggdXMgcmVmcmVzaCAoPSAzMS4yIHVzIHBlciBxdWFkKQogICoKICAqICAgICAgICAgICAgICAgICAgICAgICAgQ1BVY2xvY2soTUh6KSAqIDMxLjIKLSAqIENGR19NQU1SX1BUQSA9IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICB3aXRoIERGQlJHID0gMAorICogQ09ORklHX1NZU19NQU1SX1BUQSA9IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICB3aXRoIERGQlJHID0gMAogICogICAgICAgICAgICAgICAgMl4oMipTQ0NSW0RGQlJHXSkgKiBNUFRQUl9QVFBfRElWMTYKICAqCi0gKiBDUFUgY2xvY2sgPSAgMTUgTUh6OiAgQ0ZHX01BTVJfUFRBID0gIDI5ICAgLT4gIDQgKiA3LjczIHVzCi0gKiBDUFUgY2xvY2sgPSAgNTAgTUh6OiAgQ0ZHX01BTVJfUFRBID0gIDk3ICAgLT4gIDQgKiA3Ljc2IHVzCi0gKiBDUFUgY2xvY2sgPSAgNjYgTUh6OiAgQ0ZHX01BTVJfUFRBID0gMTI4ICAgLT4gIDQgKiA3Ljc1IHVzCi0gKiBDUFUgY2xvY2sgPSAxMzMgTUh6OiAgQ0ZHX01BTVJfUFRBID0gMjU1ICAgLT4gIDQgKiA3LjY3IHVzCisgKiBDUFUgY2xvY2sgPSAgMTUgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9ICAyOSAgIC0+ICA0ICogNy43MyB1cworICogQ1BVIGNsb2NrID0gIDUwIE1IejogIENPTkZJR19TWVNfTUFNUl9QVEEgPSAgOTcgICAtPiAgNCAqIDcuNzYgdXMKKyAqIENQVSBjbG9jayA9ICA2NiBNSHo6ICBDT05GSUdfU1lTX01BTVJfUFRBID0gMTI4ICAgLT4gIDQgKiA3Ljc1IHVzCisgKiBDUFUgY2xvY2sgPSAxMzMgTUh6OiAgQ09ORklHX1NZU19NQU1SX1BUQSA9IDI1NSAgIC0+ICA0ICogNy42NyB1cwogICoKICAqIFZhbHVlIDk3IGlzIGZvciA0ICogNy44IHVzIGF0IDUwIE1Iei4gU28gdGhlIHJlZnJlc2ggY3ljbGUgcmVxdWlyZW1lbnQgd2lsbAogICogYmUgbWV0IGFsc28gaW4gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgaS5lLiBpZiBlbnZpcm9ubWVudCB2YXJpYWJsZQogICogJ2NwdWNsaycgaXMgbm90IHNldC4KICAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCQkxMjgKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIgUmVnaXN0ZXIgKE1QVFBSKSB2YWx1ZXMuCiAgKi8KIC8qIDQgKiA3LjggdXMgcmVmcmVzaCAoPSAzMS4yIHVzIHBlciBxdWFkKSBhdCA1MCBNSHogYW5kIFBUQSA9IDk3ICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgogLyogNCAqIDMuOSB1cyByZWZyZXNoICg9IDE1LjYgdXMgcGVyIHF1YWQpIGF0IDUwIE1IeiBhbmQgUFRBID0gOTcgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogMTAgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzEwQ09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfMTBDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMiB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTkgIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKQEAgLTQ5Niw3ICs0OTYsNyBAQAogI2RlZmluZSBDT05GSUdfRVRIRVJfT05fRkVDMgkJLyogLi4uIGZvciBGRUMyICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTUlJKQotI2RlZmluZSBDRkdfRElTQ09WRVJfUEhZCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZGVmaW5lIENPTkZJR19NSUlfSU5JVAkxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1RvdGFsNTIwMC5oIGIvaW5jbHVkZS9jb25maWdzL1RvdGFsNTIwMC5oCmluZGV4IDE5YjNiZTcuLjc1ZDE5ODUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9Ub3RhbDUyMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVG90YWw1MjAwLmgKQEAgLTQzLDcgKzQzLDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzV4eHgJCTEJLyogVGhpcyBpcyBhbiBNUEM1eHh4IENQVSAqLwogI2RlZmluZSBDT05GSUdfVE9UQUw1MjAwCTEJLyogLi4uIG9uIFRvdGFsNTIwMCBib2FyZCAqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJICAgICAqLwpAQCAtNTUsNyArNTUsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkzCS8qIGNvbnNvbGUgaXMgb24gUFNDMyAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qCiAgKiBWaWRlbyBjb25zb2xlCkBAIC05NSw3ICs5NSw3IEBACiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfTUlJCQkxCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAkJMQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCQkxCiAKICNlbHNlCS8qIE1HVDUxMDAgKi8KQEAgLTE0MSw3ICsxNDEsNyBAQAogCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkUwMDAwMDApCQkvKiBCb290IGxvdyAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKgpAQCAtMTgwLDU0ICsxODAsNTQgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSN1bmRlZiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KICNlbmRpZgogCiAvKgogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTcwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTcwCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwogI2lmIENPTkZJR19UT1RBTDUyMDBfUkVWPT0yCi0jICAgZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMwkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICovCi0jICAgZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0NTNV9TVEFSVCwgQ0ZHX0NTNF9TVEFSVCwgQ0ZHX0JPT1RDU19TVEFSVCB9CisjICAgZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTMJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBDT05GSUdfU1lTX0NTNV9TVEFSVCwgQ09ORklHX1NZU19DUzRfU1RBUlQsIENPTkZJR19TWVNfQk9PVENTX1NUQVJUIH0KICNlbHNlCi0jICAgZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICAqLwotIyAgIGRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7IENGR19CT09UQ1NfU1RBUlQgfQorIyAgIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7IENPTkZJR19TWVNfQk9PVENTX1NUQVJUIH0KICNlbmRpZgotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAogI2lmIENPTkZJR19UT1RBTDUyMDBfUkVWPT0xCi0jICAgZGVmaW5lIENGR19GTEFTSF9CQVNFCTB4RkUwMDAwMDAKLSMgICBkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJMHgwMjAwMDAwMAorIyAgIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJMHhGRTAwMDAwMAorIyAgIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJMHgwMjAwMDAwMAogI2VsaWYgQ09ORklHX1RPVEFMNTIwMF9SRVY9PTIKLSMgICBkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJMHhGQTAwMDAwMAotIyAgIGRlZmluZSBDRkdfRkxBU0hfU0laRQkweDA2MDAwMDAwCisjICAgZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkweEZBMDAwMDAwCisjICAgZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkweDA2MDAwMDAwCiAjZW5kaWYgLyogQ09ORklHX1RPVEFMNTIwMF9SRVYgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0xPV0JPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0xPV0JPT1QpCiAjICAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRTA0MDAwMAotI2Vsc2UJLyogQ0ZHX0xPV0JPT1QgKi8KKyNlbHNlCS8qIENPTkZJR19TWVNfTE9XQk9PVCAqLwogIyAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkZGNDAwMDAKLSNlbmRpZgkvKiBDRkdfTE9XQk9PVCAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfTE9XQk9PVCAqLwogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTI0MCwyOSArMjQwLDI5IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAkvKiAgIDY0IGtCICovCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCTB4RjAwMTAwMDAJLyogICA2NCBrQiAqLwotI2RlZmluZSBDRkdfQ1BMRF9CQVNFCQkweEYwMDIwMDAwCS8qICAgNjQga0IgKi8KLSNkZWZpbmUgQ0ZHX0xDRF9CQVNFCQkweEYxMDAwMDAwCS8qIDQwOTYga0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCS8qICAgNjQga0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCTB4RjAwMTAwMDAJLyogICA2NCBrQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTERfQkFTRQkJMHhGMDAyMDAwMAkvKiAgIDY0IGtCICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEX0JBU0UJCTB4RjEwMDAwMDAJLyogNDA5NiBrQiAqLwogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjkzLDMyICsyOTMsMzIgQEAKICAqIFBTQzE6ICByZXNldCBkZWZhdWx0LCBjaGFuZ2VkIGluIEFDJzk3IGRyaXZlciAgICAgICAgICAgICAgICAgMDAwCiAgKgogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMDAwMEMxMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDAwMDAwQzEwCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAKQEAgLTMyNiwxMSArMzI2LDExIEBACiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKICNpZiBkZWZpbmVkIChDT05GSUdfTUdUNTEwMCkKQEAgLTMzOCw0MyArMzM4LDQzIEBACiAjZW5kaWYKIAogI2lmIENPTkZJR19UT1RBTDUyMDBfUkVWPT0xCi0jICAgZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSMgICBkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KLSMgICBkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJMHgwMDA0REYwMAkvKiA0V1MsIE1YLCBBTCwgQ0UsIEFTXzI1LCBEU18zMiAqLwotIyAgIGRlZmluZSBDRkdfQ1MwX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jICAgZGVmaW5lIENGR19DUzBfU0laRQkJMHgwMjAwMDAwMAkvKiAzMiBNQiAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyMgICBkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkweDAyMDAwMDAwCS8qIDMyIE1CICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkweDAwMDRERjAwCS8qIDRXUywgTVgsIEFMLCBDRSwgQVNfMjUsIERTXzMyICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQkweDAyMDAwMDAwCS8qIDMyIE1CICovCiAjZWxzZQotIyAgIGRlZmluZSBDRkdfQk9PVENTX1NUQVJUCShDRkdfQ1M0X1NUQVJUICsgQ0ZHX0NTNF9TSVpFKQotIyAgIGRlZmluZSBDRkdfQk9PVENTX1NJWkUJMHgwMjAwMDAwMAkvKiAzMiBNQiAqLwotIyAgIGRlZmluZSBDRkdfQk9PVENTX0NGRwkweDAwMDRERjAwCS8qIDRXUywgTVgsIEFMLCBDRSwgQVNfMjUsIERTXzMyICovCi0jICAgZGVmaW5lIENGR19DUzRfU1RBUlQJKENGR19DUzVfU1RBUlQgKyBDRkdfQ1M1X1NJWkUpCi0jICAgZGVmaW5lIENGR19DUzRfU0laRQkJMHgwMjAwMDAwMAkvKiAzMiBNQiAqLwotIyAgIGRlZmluZSBDRkdfQ1M0X0NGRwkJMHgwMDA0REYwMAkvKiA0V1MsIE1YLCBBTCwgQ0UsIEFTXzI1LCBEU18zMiAqLwotIyAgIGRlZmluZSBDRkdfQ1M1X1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jICAgZGVmaW5lIENGR19DUzVfU0laRQkJMHgwMjAwMDAwMAkvKiAzMiBNQiAqLwotIyAgIGRlZmluZSBDRkdfQ1M1X0NGRwkJMHgwMDA0REYwMAkvKiA0V1MsIE1YLCBBTCwgQ0UsIEFTXzI1LCBEU18zMiAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAkoQ09ORklHX1NZU19DUzRfU1RBUlQgKyBDT05GSUdfU1lTX0NTNF9TSVpFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCTB4MDAwNERGMDAJLyogNFdTLCBNWCwgQUwsIENFLCBBU18yNSwgRFNfMzIgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzRfU1RBUlQJKENPTkZJR19TWVNfQ1M1X1NUQVJUICsgQ09ORklHX1NZU19DUzVfU0laRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzRfU0laRQkJMHgwMjAwMDAwMAkvKiAzMiBNQiAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0NTNF9DRkcJCTB4MDAwNERGMDAJLyogNFdTLCBNWCwgQUwsIENFLCBBU18yNSwgRFNfMzIgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzVfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1M1X1NJWkUJCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzVfQ0ZHCQkweDAwMDRERjAwCS8qIDRXUywgTVgsIEFMLCBDRSwgQVNfMjUsIERTXzMyICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQlDRkdfRlBHQV9CQVNFCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHgwMDAxMDAwMAkvKiA2NCBrQiAqLwotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHgwMDE5RkYwMAkvKiAyNVdTLCBNWCwgQUwsIEFBLCBDRSwgQVNfMjUsIERTXzMyICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQlDT05GSUdfU1lTX0ZQR0FfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDAwMDEwMDAwCS8qIDY0IGtCICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgwMDE5RkYwMAkvKiAyNVdTLCBNWCwgQUwsIEFBLCBDRSwgQVNfMjUsIERTXzMyICovCiAKLSNkZWZpbmUgQ0ZHX0NTMl9TVEFSVAkJQ0ZHX0xDRF9CQVNFCi0jZGVmaW5lIENGR19DUzJfU0laRQkJMHgwMDQwMDAwMAkvKiA0MDk2IGtCICovCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDAwMzJGRDBDCS8qIDUwV1MsIE1YLCBBTCwgQUEsIENFLCBBU18yNSwgRFNfMTYsIGVuZGlhbiBzd2FwcGluZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMl9TVEFSVAkJQ09ORklHX1NZU19MQ0RfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9TSVpFCQkweDAwNDAwMDAwCS8qIDQwOTYga0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCQkweDAwMzJGRDBDCS8qIDUwV1MsIE1YLCBBTCwgQUEsIENFLCBBU18yNSwgRFNfMTYsIGVuZGlhbiBzd2FwcGluZyAqLwogCiAjaWYgQ09ORklHX1RPVEFMNTIwMF9SRVY9PTEKLSMgICBkZWZpbmUgQ0ZHX0NTM19TVEFSVAlDRkdfQ1BMRF9CQVNFCi0jICAgZGVmaW5lIENGR19DUzNfU0laRQkJMHgwMDAxMDAwMAkvKiA2NCBrQiAqLwotIyAgIGRlZmluZSBDRkdfQ1MzX0NGRwkJMHgwMDBBREYwMAkvKiAxMFdTLCBNWCwgQUwsIENFLCBBU18yNSwgRFNfMzIgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzNfU1RBUlQJQ09ORklHX1NZU19DUExEX0JBU0UKKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzNfU0laRQkJMHgwMDAxMDAwMAkvKiA2NCBrQiAqLworIyAgIGRlZmluZSBDT05GSUdfU1lTX0NTM19DRkcJCTB4MDAwQURGMDAJLyogMTBXUywgTVgsIEFMLCBDRSwgQVNfMjUsIERTXzMyICovCiAjZWxzZQotIyAgIGRlZmluZSBDRkdfQ1MzX1NUQVJUCUNGR19DUExEX0JBU0UKLSMgICBkZWZpbmUgQ0ZHX0NTM19TSVpFCQkweDAwMDEwMDAwCS8qIDY0IGtCICovCi0jICAgZGVmaW5lIENGR19DUzNfQ0ZHCQkweDAwMEFEODAwCS8qIDEwV1MsIE1YLCBBTCwgQ0UsIEFTXzI0LCBEU184ICovCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NUQVJUCUNPTkZJR19TWVNfQ1BMRF9CQVNFCisjICAgZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NJWkUJCTB4MDAwMTAwMDAJLyogNjQga0IgKi8KKyMgICBkZWZpbmUgQ09ORklHX1NZU19DUzNfQ0ZHCQkweDAwMEFEODAwCS8qIDEwV1MsIE1YLCBBTCwgQ0UsIEFTXzI0LCBEU184ICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKQEAgLTM5NiwyMyArMzk2LDIzIEBACiAjZGVmaW5lCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKENGR19BVEFfREFUQV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKIAogLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERSAgICAgICAgICA0CisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICA0CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVkNNQTkuaCBiL2luY2x1ZGUvY29uZmlncy9WQ01BOS5oCmluZGV4IGFlYjY0OWUuLjBiYzJmNjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9WQ01BOS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9WQ01BOS5oCkBAIC03NiwzNSArNzYsMzUgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9CU1AKIAogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEkyQyBzdHVmZjoKICAqIHRoZSBNUEwgVkNNQTkgaXMgZXF1aXBwZWQgd2l0aCBhbiBBVE1FTCAyNEMyNTYgRUVQUk9NIGF0CiAgKiBhZGRyZXNzIDB4NTAgd2l0aCAxNmJpdCBhZGRyZXNzaW5nCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCS8qIHVzZSBFRVBST00gZm9yIGVudmlyb25tZW50IHZhcnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwCS8qIGVudmlyb25tZW50IHN0YXJ0cyBhdCBvZmZzZXQgMCAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4ODAwCS8qIDJLQiBzaG91bGQgYmUgbW9yZSB0aGFuIGVub3VnaCAqLwogCi0jdW5kZWYgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA2CS8qIDY0IGJ5dGVzIHBhZ2Ugd3JpdGUgbW9kZSBvbiAyNEMyNTYgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjdW5kZWYgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogNjQgYnl0ZXMgcGFnZSB3cml0ZSBtb2RlIG9uIDI0QzI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwogLyojZGVmaW5lIENPTkZJR19NQUxMT0NfU0laRQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkJLyogQlVOWklQMiBuZWVkcyBhIGxvdCBvZiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQkvKiBCVU5aSVAyIG5lZWRzIGEgbG90IG9mIFJBTSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTI5LDcgKzEyOSw3IEBACiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCTEKIAogLyogRW5hYmxlIG5lZWRlZCBoZWxwZXIgZnVuY3Rpb25zICovCi0jZGVmaW5lIENGR19ERVZJQ0VfREVSRUdJU1RFUgkJLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUgkJLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogUlRDCkBAIC0xNjAsMjggKzE2MCwyOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJWQ01BOSAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiVkNNQTkgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDMwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDMwRjgwMDAwCS8qIDE1LjUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgzMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzBGODAwMDAJLyogMTUuNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MzA4MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAorI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgzMDgwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKIC8qIHdlIGNvbmZpZ3VyZSBQV00gVGltZXIgNCB0byAxdXMgfiAxTUh6ICovCi0vKiNkZWZpbmUJQ0ZHX0haCQkJMTAwMDAwMCAqLwotI2RlZmluZQlDRkdfSFoJCQkxNTYyNTAwCisvKiNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAwMDAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTE1NjI1MDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKiBzdXBwb3J0IEJaSVAyIGNvbXByZXNzaW9uICovCiAjZGVmaW5lIENPTkZJR19CWklQMgkJMQpAQCAtMjExLDcgKzIxMSw3IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHgzMDAwMDAwMCAvKiBTRFJBTSBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCkBAIC0yMjIsMjEgKzIyMiwyMSBAQAogI2RlZmluZSBDT05GSUdfQU1EX0xWODAwCTEJLyogdW5jb21tZW50IHRoaXMgaWYgeW91IGhhdmUgYSBMVjgwMCBmbGFzaCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNpZmRlZiBDT05GSUdfQU1EX0xWODAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDEwMDAwMCAvKiAxTUIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxOSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwRjAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDBGMDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FNRF9MVjQwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDAwODAwMDAgLyogNTEyS0IgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwNzAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTEpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDA3MDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwogI2VuZGlmCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjaWYgMAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKQEAgLTI0NCw4ICsyNDQsOCBAQAogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCiAKICNkZWZpbmUgTVVMVElfUFVSUE9TRV9TT0NLRVRfQUREUiAweDA4MDAwMDAwCiAKQEAgLTI1NSw3ICsyNTUsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMJCSovCiAjZGVmaW5lIFNFQ1RPUlNJWkUgNTEyCiAKICNkZWZpbmUgQUREUl9DT0xVTU4gMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1ZPSDQwNS5oIGIvaW5jbHVkZS9jb25maWdzL1ZPSDQwNS5oCmluZGV4IDkzZDA0OWYuLmZiMWZlYmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9WT0g0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVk9INDA1LmgKQEAgLTUwLDcgKzUwLDcgQEAKIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBwcmVib290IHZhcmlhYmxlICAgICAgKi8KIAotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI3VuZGVmICBDT05GSUdfSEFTX0VUSDEKQEAgLTk5LDc2ICs5OSw3NiBAQAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIERTMTY4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgICAgICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5ICAgLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkgICAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVEICAgICAgIDY5MTIwMAorI3VuZGVmICBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sgICAgICAgICAgIC8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OSAgIC8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQgICAgICAgNjkxMjAwCiAjZGVmaW5lIENPTkZJR19VQVJUMV9DT05TT0xFICAgICAgICAgICAgLyogZGVmaW5lIGZvciB1YXJ0MSBhcyBjb25zb2xlICAqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgICAgIFwKIAkgNTc2MDAsIDExNTIwMCwgMjMwNDAwLCA0NjA4MDAsIDkyMTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkRfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkRfQkFTRSB9CiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTICAgICAgICAgIDEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxICAgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMSAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfQklHX0RFTEFZX1VTCTI1CiAKLSNkZWZpbmUgQ0ZHX05BTkRfQ0UgICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMSkgICAvKiBvdXIgQ0UgaXMgR1BJTzEgICovCi0jZGVmaW5lIENGR19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLwotI2RlZmluZSBDRkdfTkFORF9DTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAyKSAgIC8qIG91ciBDTEUgaXMgR1BJTzIgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQUxFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMykgICAvKiBvdXIgQUxFIGlzIEdQSU8zICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DRSAgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAxKSAgIC8qIG91ciBDRSBpcyBHUElPMSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1JEWSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDQpICAgLyogb3VyIFJEWSBpcyBHUElPNCAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ0xFICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gMikgICAvKiBvdXIgQ0xFIGlzIEdQSU8yICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAzKSAgIC8qIG91ciBBTEUgaXMgR1BJTzMgKi8KIAotI2RlZmluZSBDRkdfTkFORF9TS0lQX0JBRF9ET1RfSSAxICAgICAgIC8qICIuaSIgcmVhZCBza2lwcyBiYWQgYmxvY2tzICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUVVJRVQgICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0tJUF9CQURfRE9UX0kgMSAgICAgICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9RVUlFVCAgICAgICAgICAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTg3LDE1ICsxODcsMTUgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX0NPTkZJR19IT1NUX0JSSURHRSAxIC8qIGRvbid0IHNraXAgaG9zdCBicmlkZ2UgY29uZmlnKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUgIC8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1ICAvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNSAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQSAgMHgwMDAwMDAwMCAgICAgIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMgIDB4ZmMwMDAwMDEgICAgICAvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQSAgMHhmZmMwMDAwMCAgICAgIC8qIHBvaW50IHRvIGZsYXNoICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMgIDB4ZmZjMDAwMDEgICAgICAvKiA0TUIsIGVuYWJsZSAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFICAvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDA0MDUgIC8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1ICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MGIyMCAgLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgMHhmYzAwMDAwMSAgICAgIC8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEgIDB4ZmZjMDAwMDAgICAgICAvKiBwb2ludCB0byBmbGFzaCAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHhmZmMwMDAwMSAgICAgIC8qIDRNQiwgZW5hYmxlICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCkBAIC0yMDUsNjIgKzIwNSw2MiBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogbm8gbGVkIGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJMQkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkyCQkvKiBtYXguIDIgSURFIGJ1c3NlcwkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMikgLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIJCS8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCi0jZGVmaW5lIENGR19BVEFfSURFMV9PRkZTRVQJMHgwMDEwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweEYwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVAkweDAwMTAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweEZGQzAwMDAwCS8qIEZMQVNIIGJhbmsgIzAJKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgc2hvcnQJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRjgwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMiAqIDEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAyIE1CIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMiAqIDEwMjQqMTAyNCkJLyogUmVzZXJ2ZSAyIE1CIGZvciBtYWxsb2MoKQkqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBGTEFTSF9CQVNFMF9QUkVMSU0pCi0jIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IEZMQVNIX0JBU0UwX1BSRUxJTSkKKyMgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2Vsc2UKLSMgdW5kZWYgQ0ZHX1JBTUJPT1QKKyMgdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjcxLDI3ICsyNzEsMjcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDcwMAkvKiAyMDQ4IGJ5dGVzIG1heSBiZSB1c2VkIGZvciBlbnYgdmFycyovCiAJCQkJICAgLyogdG90YWwgc2l6ZSBvZiBhIENBVDI0V0MxNiBpcyAyMDQ4IGJ5dGVzICovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCTI0MgkJCS8qIE5WUkFNIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4RjAwMDA1MDAJCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTI0MgkJCS8qIE5WUkFNIHNpemUJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBFRVBST00gKENBVDI0V0MxNikgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJjIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI0V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUkVOICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyNFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dSRU4gICAgICAgICAxCiAKIC8qIENBVDI0V0MzMi82NC4uLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNQkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzMyIGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA1CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMzIgaGFzCSovCiAJCQkJCS8qIDMyIGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdCA1IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCkBAIC0zMDIsNzkgKzMwMiw3OSBAQAogI2RlZmluZSBEVUFSVDFfQkEJMHhGMDAwMDQwOAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBSVENfQkEJCTB4RjAwMDA1MDAJICAgIC8qIFJUQyBCYXNlIEFkZHJlc3MJCQkqLwogI2RlZmluZSBWR0FfQkEJCTB4RjEwMDAwMDAJICAgIC8qIEVwc29uIFZHQSBCYXNlIEFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJMHhGNDAwMDAwMAkgICAgLyogTkFORCBGTEFTSCBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCTB4RjQwMDAwMDAJICAgIC8qIE5BTkQgRkxBU0ggQmFzZSBBZGRyZXNzCQkqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDAsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0vKiNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJICAweDA4MDU1ODgwICAvWFhYKiBUV1Q9MTYsQ1NOPTEsT0VOPTEsV0JOPTEsV0JGPTEsVEg9NCxTT1I9MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAorLyojZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkgIDB4MDgwNTU4ODAgIC9YWFgqIFRXVD0xNixDU049MSxPRU49MSxXQk49MSxXQkY9MSxUSD00LFNPUj0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEsIE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweEY0MDE4MDAwICAvKiBCQVM9MHhGNDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkweEY0MDE4MDAwICAvKiBCQVM9MHhGNDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKDggQml0IFBlcmlwaGVyYWw6IENBTiwgVUFSVCwgUlRDKSBpbml0aWFsaXphdGlvbgkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAzICgxNiBCaXQgUGVyaXBoZXJhbDogRlBHQSBpbnRlcm5hbCwgZGlnLiBJTykgaW5pdGlhbGl6YXRpb24JKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAxMUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCTB4RjAxMUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKEVwc29uIFZHQSkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJMHgwMzgwNTM4MCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MCAqLwotI2RlZmluZSBDRkdfRUJDX1BCNENSCVZHQV9CQSB8IDB4N0EwMDAgICAgLyogQkFTPTB4RjEwLEJTPThNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAJMHgwMzgwNTM4MCAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUglWR0FfQkEgfCAweDdBMDAwICAgIC8qIEJBUz0weEYxMCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIExDRCBTZXR1cAogICovCiAKLSNkZWZpbmUgQ0ZHX0xDRF9CSUdfTUVNICAgICAgICAgMHhGMTIwMDAwMCAgLyogRXBzb24gUzFEMTM4MDYgTWVtIEJhc2UgQWRkcmVzcyAgKi8KLSNkZWZpbmUgQ0ZHX0xDRF9CSUdfUkVHICAgICAgICAgMHhGMTAwMDAwMCAgLyogRXBzb24gUzFEMTM4MDYgUmVnIEJhc2UgQWRkcmVzcyAgKi8KLSNkZWZpbmUgQ0ZHX0xDRF9TTUFMTF9NRU0gICAgICAgMHhGMTQwMDAwMCAgLyogRXBzb24gUzFEMTM3MDQgTWVtIEJhc2UgQWRkcmVzcyAgKi8KLSNkZWZpbmUgQ0ZHX0xDRF9TTUFMTF9SRUcgICAgICAgMHhGMTQwRkZFMCAgLyogRXBzb24gUzFEMTM3MDQgUmVnIEJhc2UgQWRkcmVzcyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQ0RfQklHX01FTSAgICAgICAgIDB4RjEyMDAwMDAgIC8qIEVwc29uIFMxRDEzODA2IE1lbSBCYXNlIEFkZHJlc3MgICovCisjZGVmaW5lIENPTkZJR19TWVNfTENEX0JJR19SRUcgICAgICAgICAweEYxMDAwMDAwICAvKiBFcHNvbiBTMUQxMzgwNiBSZWcgQmFzZSBBZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xDRF9TTUFMTF9NRU0gICAgICAgMHhGMTQwMDAwMCAgLyogRXBzb24gUzFEMTM3MDQgTWVtIEJhc2UgQWRkcmVzcyAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQ0RfU01BTExfUkVHICAgICAgIDB4RjE0MEZGRTAgIC8qIEVwc29uIFMxRDEzNzA0IFJlZyBCYXNlIEFkZHJlc3MgICovCiAKLSNkZWZpbmUgQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkUgKDEgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfVklERU9fTE9HT19NQVhfU0laRSAoMSA8PCAyMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgogICovCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRV9BRERSIDB4RjAxMDAxMDAJICAgIC8qIEZQR0EgaW50ZXJuYWwgQmFzZSBBZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFX0FERFIgMHhGMDEwMDEwMAkgICAgLyogRlBHQSBpbnRlcm5hbCBCYXNlIEFkZHJlc3MJKi8KIAogLyogRlBHQSBpbnRlcm5hbCByZWdzICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkwJCTB4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMCQkweDAwMAogCiAvKiBGUEdBIENvbnRyb2wgUmVnICovCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfQ0ZfUkVTRVQJMHgwMDAxCi0jZGVmaW5lIENGR19GUEdBX0NUUkxfV0RJCTB4MDAwMgotI2RlZmluZSBDRkdfRlBHQV9DVFJMX1BTMl9SRVNFVCAweDAwMjAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfQ0ZfUkVTRVQJMHgwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DVFJMX1dESQkweDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NUUkxfUFMyX1JFU0VUIDB4MDAyMAogCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTEyOCoxMDI0ICAgIC8qIDEyOGtCeXRlIGlzIGVub3VnaCBmb3IgWEMyUzUwRSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TUEFSVEFOMgkxCSAgICAvKiB1c2luZyBYaWxpbnggU3BhcnRhbiAyIG5vdyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KIAogLyogRlBHQSBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgwNDAwMDAwMCAgLyogRlBHQSBwcm9ncmFtIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTklUCQkweDAwMDEwMDAwICAvKiBGUEdBIGluaXQgcGluIChwcGMgaW5wdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQ0xLCQkweDAyMDAwMDAwICAvKiBGUEdBIGNsayBwaW4gKHBwYyBvdXRwdXQpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgwMTAwMDAwMCAgLyogRlBHQSBkYXRhIHBpbiAocHBjIG91dHB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FCQkweDAwMDA4MDAwICAvKiBGUEdBIGRvbmUgcGluIChwcGMgaW5wdXQpICAgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtMzg4LDIwICszODgsMjAgQEAKICAqIEdQSU8wWzI4LTI5XSAtIFVBUlQxIGRhdGEgc2lnbmFsIGlucHV0L291dHB1dAogICogR1BJTzBbMzAtMzFdIC0gRU1BQzAgYW5kIEVNQUMxIHJlamVjdCBwYWNrZXQgaW5wdXRzIC0+IEdQSU8KICAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHgwMDAwMDU1MAotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQwCi0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4Nzc3RTAwMTcKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JICQkweDAwMDAwNTUwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUgkJMHg3NzdFMDAxNwogCi0jZGVmaW5lIENGR19EVUFSVF9SU1QJCSgweDgwMDAwMDAwID4+IDE0KQotI2RlZmluZSBDRkdfTENEX0VORElBTgkJKDB4ODAwMDAwMDAgPj4gNykKLSNkZWZpbmUgQ0ZHX0lJQ19PTgkJKDB4ODAwMDAwMDAgPj4gOCkKLSNkZWZpbmUgQ0ZHX0xDRDBfUlNUCQkoMHg4MDAwMDAwMCA+PiAzMCkKLSNkZWZpbmUgQ0ZHX0xDRDFfUlNUCQkoMHg4MDAwMDAwMCA+PiAzMSkKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9XUAkJKDB4ODAwMDAwMDAgPj4gMCkKKyNkZWZpbmUgQ09ORklHX1NZU19EVUFSVF9SU1QJCSgweDgwMDAwMDAwID4+IDE0KQorI2RlZmluZSBDT05GSUdfU1lTX0xDRF9FTkRJQU4JCSgweDgwMDAwMDAwID4+IDcpCisjZGVmaW5lIENPTkZJR19TWVNfSUlDX09OCQkoMHg4MDAwMDAwMCA+PiA4KQorI2RlZmluZSBDT05GSUdfU1lTX0xDRDBfUlNUCQkoMHg4MDAwMDAwMCA+PiAzMCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQ0QxX1JTVAkJKDB4ODAwMDAwMDAgPj4gMzEpCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1dQCQkoMHg4MDAwMDAwMCA+PiAwKQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9WT000MDUuaCBiL2luY2x1ZGUvY29uZmlncy9WT000MDUuaAppbmRleCA1YzE0NzMwLi5iNmUzNTg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVk9NNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL1ZPTTQwNS5oCkBAIC00OCw3ICs0OCw3IEBACiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICN1bmRlZiAgQ09ORklHX0hBU19FVEgxCkBAIC05NSw5NyArOTUsOTcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogI3VuZGVmCUNPTkZJR19VQVJUMV9DT05TT0xFCQkvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUJKi8KIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsICAgICBcCiAJIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCwgNDYwODAwLCA5MjE2MDAgfQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkxCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JMHhGRkMwMDAwMAkvKiBGTEFTSCBiYW5rICMwCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIHNob3J0CS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIC8qCiAgKiBUaGUgZm9sbG93aW5nIGRlZmluZXMgYXJlIGFkZGVkIGZvciBidWdneSBJT1A0ODAgYnl0ZSBpbnRlcmZhY2UuCiAgKiBBbGwgb3RoZXIgYm9hcmRzIHNob3VsZCB1c2UgdGhlIHN0YW5kYXJkIHZhbHVlcyAoQ1BDSTQwNSBldGMuKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQyCQkweDAwMDIJLyogMiBpcyBzdGFuZGFyZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAvKgogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBGTEFTSF9CQVNFMF9QUkVMSU0pCi0jIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IEZMQVNIX0JBU0UwX1BSRUxJTSkKKyMgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2Vsc2UKLSMgdW5kZWYgQ0ZHX1JBTUJPT1QKKyMgdW5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogLyoKQEAgLTE5NiwyNCArMTk2LDI0IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg3MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogCQkJCSAgIC8qIHRvdGFsIHNpemUgb2YgYSBDQVQyNFdDMTYgaXMgMjA0OCBieXRlcyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLwogCiAvKgogICogSTJDIEVFUFJPTSAoQ0FUMjRXQzE2KSBmb3IgZW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMmMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KIAkJCQkJLyogMTYgYnl0ZSBwYWdlIHdyaXRlIG1vZGUgdXNpbmcqLwogCQkJCQkvKiBsYXN0IDQgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwICAgLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KIAogLyoKICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCkBAIC0yMjEsNDEgKzIyMSw0MSBAQAogI2RlZmluZSBDQU5fQkEJCTB4RjAwMDAwMDAJICAgIC8qIENBTiBCYXNlIEFkZHJlc3MJCQkqLwogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDAsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAgIC8qIEJBUz0weEZGQyxCUz00TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGQzVBMDAwICAvKiBCQVM9MHhGRkMsQlM9NE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAyICg4IEJpdCBQZXJpcGhlcmFsOiBDQU4sIFVBUlQsIFJUQykgaW5pdGlhbGl6YXRpb24JCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyoKICAqIEZQR0Egc3R1ZmYKICAqLwotI2RlZmluZSBDRkdfRlBHQV9YQzk1WEwJCTEJICAgIC8qIHVzaW5nIFhpbGlueCBYQzk1WEwgQ1BMRAkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTMyKjEwMjQJICAgIC8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBDUExEICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9YQzk1WEwJCTEJICAgIC8qIHVzaW5nIFhpbGlueCBYQzk1WEwgQ1BMRAkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkzMioxMDI0CSAgICAvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgQ1BMRCAgICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBKVEFHIFRNUyBwaW4gKHBwYyBvdXRwdXQpICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEpUQUcgVENLIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEpUQUcgVERPLT5UREkgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIHVudXNlZCAocHBjIGlucHV0KQkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEpUQUcgVERJLT5URE8gcGluIChwcGMgaW5wdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEpUQUcgVE1TIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEpUQUcgVENLIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogdW51c2VkIChwcGMgaW5wdXQpCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEpUQUcgVERJLT5URE8gcGluIChwcGMgaW5wdXQpICovCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTI3MywxMyArMjczLDEzIEBACiAvKiBHUElPIE91dHB1dDoJCU9TUj0wMCwgSVNSPTAwLCBUU1I9MDAsIFRDUj0xICovCiAvKiBBbHQuIEZ1bnRpb24gSW5wdXQ6CU9TUj0wMCwgSVNSPTAxLCBUU1I9MDAsIFRDUj0wICovCiAvKiBBbHQuIEZ1bnRpb24gT3V0cHV0OiBPU1I9MDEsIElTUj0wMCwgVFNSPTAwLCBUQ1I9MSAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg0MDAwMDUwMCAgLyoJMCAuLi4gMTUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAgIC8qIDE2IC4uLiAzMSAqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAgIC8qCTAgLi4uIDE1ICovCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNDAwMDA0NSAgLyogMTYgLi4uIDMxICovCi0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwICAvKgkwIC4uLiAxNSAqLwotI2RlZmluZSBDRkdfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMCAgLyogMTYgLi4uIDMxICovCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4RjdGRTAwMTQgIC8qCTAgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHg0MDAwMDUwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwICAvKiAxNiAuLi4gMzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNDAwMDA0NSAgLyogMTYgLi4uIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMCAgLyoJMCAuLi4gMTUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwICAvKiAxNiAuLi4gMzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4RjdGRTAwMTQgIC8qCTAgLi4uIDMxICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1ZvVlBOLUdXLmggYi9pbmNsdWRlL2NvbmZpZ3MvVm9WUE4tR1cuaAppbmRleCBmNzJkYTc4Li45ODJmOGQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvVm9WUE4tR1cuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVm9WUE4tR1cuaApAQCAtODIsMTAgKzgyLDEwIEBACiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCQkxCiAKIC8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQorI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UKIAogLyogc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogc2VsZWN0IGV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTEwNywzMiArMTA3LDMyIEBACiAjZGVmaW5lCUNPTkZJR19FVEhFUl9JTkRFWAkJMQogCiAvKiBNYXJ2ZWxsIFN3aXRjaCBTTUkgYmFzZSBhZGRyICovCi0jZGVmaW5lIENGR19QSFlfQUREUgkJCTB4MTAKKyNkZWZpbmUgQ09ORklHX1NZU19QSFlfQUREUgkJCTB4MTAKIAogLyogRkNDMSBSTUlJIFJFRkNMSyBpcyBDTEsxMCAqLwotI2RlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCQlDTVhGQ1JfVEYxQ1NfQ0xLMTAKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCQkJKENNWEZDUl9GQzF8Q01YRkNSX1RGMUNTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJCUNNWEZDUl9URjFDU19DTEsxMAorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCQkJKENNWEZDUl9GQzF8Q01YRkNSX1RGMUNTX01TSykKIAogLyogQkRzIGFuZCBidWZmZXJzIG9uIDYweCBidXMgKi8KLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJCTAKIAogLyogTG9jYWwgUHJvdGVjdCwgRnVsbCBkdXBsZXgsIEZsb3djb250cm9sLCBSTUlJICovCi0jZGVmaW5lIENGR19GQ0NfUFNNUgkJCShGQ0NfUFNNUl9MUEJ8RkNDX1BTTVJfRkRFfFwKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJCShGQ0NfUFNNUl9MUEJ8RkNDX1BTTVJfRkRFfFwKIAkJCQkJIEZDQ19QU01SX0ZDRXxGQ0NfUFNNUl9STUlJKQogCiAvKiBiaXQtYmFuZyBNSUkgUEhZIG1hbmFnZW1lbnQJKi8KICNkZWZpbmUgQ09ORklHX0JJVEJBTkdNSUkKIAogI2RlZmluZSBNRElPX1BPUlQJCQkxCQkvKiBQb3J0IEIgKi8KLSNkZWZpbmUgQ0ZHX01ESU9fUElOCQkJMHgwMDAwMjAwMAkvKiBQQjE4ICovCi0jZGVmaW5lIENGR19NRENfUElOCQkJMHgwMDAwMTAwMAkvKiBQQjE5ICovCi0jZGVmaW5lIE1ESU9fQUNUSVZFCQkJKGlvcC0+cGRpciB8PSAgQ0ZHX01ESU9fUElOKQotI2RlZmluZSBNRElPX1RSSVNUQVRFCQkJKGlvcC0+cGRpciAmPSB+Q0ZHX01ESU9fUElOKQotI2RlZmluZSBNRElPX1JFQUQJCQkoKGlvcC0+cGRhdCAmICBDRkdfTURJT19QSU4pICE9IDApCi0jZGVmaW5lIE1ESU8oYml0KQkJCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDRkdfTURJT19QSU47IFwKLQkJCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNGR19NRElPX1BJTgotI2RlZmluZSBNREMoYml0KQkJCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICBDRkdfTURDX1BJTjsgXAotCQkJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01EQ19QSU4KKyNkZWZpbmUgQ09ORklHX1NZU19NRElPX1BJTgkJCTB4MDAwMDIwMDAJLyogUEIxOCAqLworI2RlZmluZSBDT05GSUdfU1lTX01EQ19QSU4JCQkweDAwMDAxMDAwCS8qIFBCMTkgKi8KKyNkZWZpbmUgTURJT19BQ1RJVkUJCQkoaW9wLT5wZGlyIHw9ICBDT05GSUdfU1lTX01ESU9fUElOKQorI2RlZmluZSBNRElPX1RSSVNUQVRFCQkJKGlvcC0+cGRpciAmPSB+Q09ORklHX1NZU19NRElPX1BJTikKKyNkZWZpbmUgTURJT19SRUFECQkJKChpb3AtPnBkYXQgJiAgQ09ORklHX1NZU19NRElPX1BJTikgIT0gMCkKKyNkZWZpbmUgTURJTyhiaXQpCQkJaWYoYml0KSBpb3AtPnBkYXQgfD0gIENPTkZJR19TWVNfTURJT19QSU47IFwKKwkJCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNPTkZJR19TWVNfTURJT19QSU4KKyNkZWZpbmUgTURDKGJpdCkJCQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ09ORklHX1NZU19NRENfUElOOyBcCisJCQkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DT05GSUdfU1lTX01EQ19QSU4KICNkZWZpbmUgTUlJREVMQVkJCQl1ZGVsYXkoMSkKIAogI2VuZGlmCkBAIC0yMDksNTggKzIwOSw1OCBAQAogICovCiAKIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAorI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCiAKIC8qIG1vbml0b3IgY29tbWFuZCBwcm9tcHQgKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJCSI9PiAiCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkJIj0+ICIKIAogLyogY29uc29sZSBpL28gYnVmZmVyIHNpemUgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJCTEwMjQKKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCQkxMDI0CiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkJMjU2CisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CiAjZW5kaWYKIAogLyogcHJpbnQgYnVmZmVyIHNpemUgKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQogCiAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJCTE2CisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJCTE2CiAKIC8qIGJvb3QgYXJndW1lbnQgYnVmZmVyIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQkJQ09ORklHX1NZU19DQlNJWkUKIAogLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCTB4MDAxMDAwMDAKIC8qIDEgLi4uIDE1IE1CIGluIERSQU0gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJMHgwMGYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJMHgwMGYwMDAwMAogLyogZnVsbCBmZWF0dXJlZCBtZW10ZXN0ICovCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCQkweDAwMTAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkJMHgwMDEwMDAwMAogCiAvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCi0jZGVmaW5lCUNGR19IWgkJCQkxMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkJMTAwMAogCiAvKiBjb25maWd1cmUgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweGZmODAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQk2NAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJCTgKLSN1bmRlZglDRkdfRkxBU0hfMTZCSVQKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJCTI0MDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkJNTAwCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJCTUwMAotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJCTEwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCTB4ZmY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkJOAorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCQkyNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCQk1MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJCTUwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCQkxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAogLyogbW9uaXRvciBpbiBmbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9PRkZTRVQJCTB4MDA3MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX09GRlNFVAkJMHgwMDcwMDAwMAogCiAvKiBlbnZpcm9ubWVudCBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwMjAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDIwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDAwMDIwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCQkweDAwMDIwMDAwCiAKQEAgLTI3MCw1MiArMjcwLDUyIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCQkoOCA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCQkoOCA8PCAyMCkKIAogLyogaGFyZCByZXNldCBjb25maWd1cmF0aW9uIHdvcmRzICovCiAjaWZkZWYJQ09ORklHX0NMS0lOXzY2TUh6Ci0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJCTB4MDQ2NDMwNTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJCTB4MDQ2NDMwNTAKICNlbHNlCiAjZXJyb3IgTk8gSFJDVyBGT1IgMTAwTUhaIFNQRUNJRklFRCAhISEKICNlbmRpZgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCQkweDAwMDAwMDAwCiAKIC8qIGludGVybmFsIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJCTB4RjAwMDAwMDAKIAogLyogZGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJCTB4MjAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkJMTI4Ci0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkJMHgyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCQkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCQkoMzIqMTAyNCoxMDI0KQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfRkxBU0gJCShDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkJMHgwMDAyMDAwMAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCTB4MDAwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCQkoMzIqMTAyNCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9GTEFTSAkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCQkweDAwMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCTB4MDAwMjAwMDAKIAogLyogYm9vdCBmbGFncyAqLwogI2RlZmluZSBCT09URkxBR19DT0xECQkJMHgwMQkvKiBub3JtYWwgcG93ZXItb24gKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJCTB4MDIJLyogc29mdHdhcmUgcmVib290ICovCiAKIC8qIGNhY2hlIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCQkzMiAgICAgIC8qIGZvciBNUEM4MjYwICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJCTMyICAgICAgLyogZm9yIE1QQzgyNjAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAkJNQkvKiBsb2cgYmFzZSAyIG9mIGFib3ZlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCQk1CS8qIGxvZyBiYXNlIDIgb2YgYWJvdmUgKi8KICNlbmRpZgogCiAvKgpAQCAtMzI4LDQzICszMjgsNDMgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCQkoSElEMF9JQ0V8SElEMF9EQ0V8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJCShISUQwX0lDRXxISUQwX0RDRXxcCiAJCQkJCSBISUQwX0lDRkl8SElEMF9EQ0l8SElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJCShISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQyCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCQkoSElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJCQkwCiAKIC8qIFJNUiAtIHJlc2V0IG1vZGUgcmVnaXN0ZXIgLSB0dXJuIG9uIGNoZWNrc3RvcCByZXNldCBlbmFibGUgKi8KLSNkZWZpbmUgQ0ZHX1JNUgkJCQlSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJCQlSTVJfQ1NSRQogCiAvKiBCQ1IgLSBidXMgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfQkNSCQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCQkJMHgwMDAwMDAwMAogCiAvKiBTSVVNQ1IgLSBzaXUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJCTB4NDkwNWMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCQkweDQ5MDVjMDAwCiAKIC8qIFNZUENSIC0gc3lzdGVtIHByb3RlY3Rpb24gY29udHJvbCAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJCQkweGZmZmZmZjg3CisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCQkweGZmZmZmZjg3CiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJCQkweGZmZmZmZjgzCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJCQkweGZmZmZmZjgzCiAjZW5kaWYKIAogLyogVE1DTlRTQyAtIHRpbWUgY291bnRlciBzdGF0dXMgYW5kIGNvbnRyb2wgKi8KIC8qIGNsZWFyIGludGVycnVwdHMgWFhYIGpzZSAqLwotLyojZGVmaW5lIENGR19UTUNOVFNDCQkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSKSAqLwotI2RlZmluZSBDRkdfVE1DTlRTQwkJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxcCisvKiNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCQkJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJCQkoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8XAogCQkJCQkgVE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCiAKIC8qIFBJU0NSIC0gcGVyaW9kaWMgaW50ZXJydXB0IHN0YXR1cyBhbmQgY29udHJvbCAqLwogLyogY2xlYXIgaW50ZXJydXB0cyBYWFgganNlICovCi0vKiNkZWZpbmUgQ0ZHX1BJU0NSCQkJKFBJU0NSX1BTKSAqLwotI2RlZmluZSBDRkdfUElTQ1IJCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKy8qI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkJKFBJU0NSX1BTKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCQkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qIFNDQ1IgLSBzeXN0ZW0gY2xvY2sgY29udHJvbCAqLwotI2RlZmluZSBDRkdfU0NDUgkJCTB4MDAwMDAxYTkKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQkJMHgwMDAwMDFhOQogCiAvKiBSQ0NSIC0gcmlzYyBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkJCTAKIAogLyoKICAqIE1FTU9SWSBNQVAKQEAgLTM3OSwzNyArMzc5LDM3IEBACiAgKiAgeCAgLSBJTU1SICAgICAzODRLQgkJYmFzZT0weGYwMDAwMDAwCiAgKi8KIC8qIFhYWCBqc2UgMTAwTUh6IFRPRE8gKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCQkweGZmODAwODAxCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkJMHhmZjgwMWU0NAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJCTB4MDAwMDAwNDEKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCQkweGZlMDAyZWMwCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJCTB4ZmY4MDA4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkJMHhmZjgwMWU0NAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCQkweDAwMDAwMDQxCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJCTB4ZmUwMDJlYzAKICNpZiAxCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkJMHhmMDEwMTAwMQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJCTB4ZmZmMDBlZjQKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCQkweGYwMjAxMDAxCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCQkJMHhmZmYwMGVmNAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkJCTB4ZjAzMDEwMDEKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCQkweGZmZjAwZWY0Ci0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkJMHhmMDQwMTAwMQotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJCTB4ZmZmMDBlZjQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkJMHhmMDEwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCQkweGZmZjAwZWY0CisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJCTB4ZjAyMDEwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkJMHhmZmYwMGVmNAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JCQkweGYwMzAxMDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJCTB4ZmZmMDBlZjQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkJMHhmMDQwMTAwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCQkweGZmZjAwZWY0CiAjZWxzZQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJCTB4ZjAxMDEwODEKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCQkweGZmZjAwMTA0Ci0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkJMHhmMDIwMTA4MQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJCTB4ZmZmMDAxMDQKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JCQkweGYwMzAxMDgxCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkJMHhmZmYwMDEwNAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJCTB4ZjA0MDEwODEKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCQkweGZmZjAwMTA0CisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJCTB4ZjAxMDEwODEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkJMHhmZmYwMDEwNAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCQkweGYwMjAxMDgxCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJCTB4ZmZmMDAxMDQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkJMHhmMDMwMTA4MQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCQkweGZmZjAwMTA0CisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJCTB4ZjA0MDEwODEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkJMHhmZmYwMDEwNAogI2VuZGlmCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkJMHhmMDUwMDg4MQotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJCTB4ZmZmZjgxMDQKLSNkZWZpbmUgQ0ZHX01QVFBSCQkJMHgyNzAwCi0jZGVmaW5lIENGR19QU0RNUgkJCTB4ODIyYTI0NTIJLyogb3B0aW1hbCAqLwotLyojZGVmaW5lIENGR19QU0RNUgkJCTB4ODIyYTQ4YTMgKi8JLyogcmVsYXhlZCAqLwotI2RlZmluZSBDRkdfUFNSVAkJCTB4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCQkJMHhmMDUwMDg4MQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCQkweGZmZmY4MTA0CisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCQkweDI3MDAKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkJCTB4ODIyYTI0NTIJLyogb3B0aW1hbCAqLworLyojZGVmaW5lIENPTkZJR19TWVNfUFNETVIJCQkweDgyMmE0OGEzICovCS8qIHJlbGF4ZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkJMHgxYQogCiAvKiAiYmFkIiBhZGRyZXNzICovCi0jZGVmaW5lCUNGR19SRVNFVF9BRERSRVNTCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkJMHg0MDAwMDAwMAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1c3T0xNQy5oIGIvaW5jbHVkZS9jb25maWdzL1c3T0xNQy5oCmluZGV4IDZhNTE4ODAuLmU1NDYzNjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9XN09MTUMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvVzdPTE1DLmgKQEAgLTYzLDcgKzYzLDcgQEAKICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxOTIuMTY4LjEuMgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmIENGR19MT0FEU19CQVVEX0NIQU5HRQkJCS8qIGRpc2FsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCQkvKiBkaXNhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkJLyogUEhZIGFkZHJlc3MJCQkqLwpAQCAtMTA0LDM4ICsxMDQsMzggQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiV2F2ZTdPcHRpY3M+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI3VuZGVmICBDRkdfSFVTSF9QQVJTRVIJCQkJLyogTm8gaHVzaCBwYXJzZSBmb3IgVS1Cb290ICAgICAgICovCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICAgICAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiV2F2ZTdPcHRpY3M+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI3VuZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJCS8qIE5vIGh1c2ggcGFyc2UgZm9yIFUtQm9vdCAgICAgICAqLworI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICAgICAiPiAiCiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkJKi8KIAotI3VuZGVmICBDRkdfRVhUX1NFUklBTF9DTE9DSwkJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI2RlZmluZSBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5CQkJLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJMzg0MDAwCisjdW5kZWYgIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkJCS8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECQkzODQwMDAKIAogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7OTYwMH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7OTYwMH0KIAotI2RlZmluZSBDRkdfQ0xLU19JTl9IWgkJMQkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCTEJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkJLyogdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJCS8qIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xNTAsMTQgKzE1MCwxNCBAQAogI2RlZmluZSBDT05GSUdfUENJX0hPU1QJCVBDSV9IT1NUX0FVVE8JLyogc2VsZWN0IHBjaSBob3N0IGZ1bmN0aW9uCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJCS8qIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwogLyogcmVzb3VyY2UgY29uZmlndXJhdGlvbgkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJCS8qIFBDSSBWZW5kb3IgSUQ6IElCTQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMTU2CQkvKiBQQ0kgRGV2aWNlIElEOiA0MDVHUAkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCQkweDgwMDAwMDAxCS8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kJCTB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kJCTB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJCS8qIFBDSSBWZW5kb3IgSUQ6IElCTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDE1NgkJLyogUENJIERldmljZSBJRDogNDA1R1AJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCQkweDgwMDAwMDAxCS8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJCQkweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJCQkweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXQgdXAgdmFsdWVzIGZvciBleHRlcm5hbCBidXMgY29udHJvbGxlcgpAQCAtMTY4LDk0ICsxNjgsOTQgQEAKICN1bmRlZiBDT05GSUdfVVNFX1BFUldFCiAKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNICAgICAgICAxCiAKIC8qIGJhbmsgMCBpcyBib290IGZsYXNoICovCiAvKiBCTUU9MCxUV1Q9NixDU049MSxPRU49MSxXQk49MCxXQkY9MCxUSD0yLFJFPTAsU09SPTAsQkVNPTEsUEVOPTAgKi8KLSNkZWZpbmUgQ0ZHX1c3T19FQkNfUEIwQVAgICAweDAzMDUwNDQwCisjZGVmaW5lIENPTkZJR19TWVNfVzdPX0VCQ19QQjBBUCAgIDB4MDMwNTA0NDAKIC8qIEJBUz0weEZGRSxCUz0weDEoMk1CKSxCVT0weDMoUi9XKSxCVz0weDAoOCBiaXRzKSAqLwotI2RlZmluZSBDRkdfVzdPX0VCQ19QQjBDUiAgIDB4RkZFMzgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19XN09fRUJDX1BCMENSICAgMHhGRkUzODAwMAogCiAvKiBiYW5rIDEgaXMgbWFpbiBmbGFzaCAqLwogLyogQk1FPTAsVFdUPTExLENTTj0xLE9FTj0xLFdCTj0wLFdCRj0wLFRIPTEsUkU9MCxTT1I9MCxCRU09MSxQRU49MCAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgMHgwNTg1MDI0MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUCAgIDB4MDU4NTAyNDAKIC8qIEJBUz0weEYwMCxCUz0weDcoMTI4TUIpLEJVPTB4MyhSL1cpLEJXPTB4MTAoMzIgYml0cykgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUiAgIDB4RjAwRkMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAweEYwMEZDMDAwCiAKIC8qIGJhbmsgMiBpcyBSVEMvTlZSQU0gKi8KIC8qIEJNRT0wLFRXVD02LENTTj0wLE9FTj0wLFdCTj0wLFdCRj0wLFRIPTIsUkU9MCxTT1I9MCxCRU09MSxQRU49MCAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQICAgMHgwMzAwMDQ0MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgIDB4MDMwMDA0NDAKIC8qIEJBUz0weEZDMCxCUz0weDAoMU1CKSxCVT0weDMoUi9XKSxCVz0weDAoOCBiaXRzKSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgMHhGQzAxODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUiAgIDB4RkMwMTgwMDAKIAogLyogYmFuayAzIGlzIEZQR0EgMCAqLwogLyogQk1FPTAsVFdUPTQsQ1NOPTAsT0VOPTAsV0JOPTAsV0JGPTAsVEg9MixSRT0wLFNPUj0wLEJFTT0wLFBFTj0wICovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAgICAweDAyMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQICAgMHgwMjAwMDQwMAogLyogQkFTPTB4RkQwLEJTPTB4MCgxTUIpLEJVPTB4MyhSL1cpLEJXPTB4MSgxNiBiaXRzKSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSICAgMHhGRDAxQTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUiAgIDB4RkQwMUEwMDAKIAogLyogYmFuayA0IGlzIEZQR0EgMSAqLwogLyogQk1FPSxUV1Q9LENTTj0sT0VOPSxXQk49LFdCRj0sVEg9LFJFPSxTT1I9LEJFTT0sUEVOPSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQICAgMHgwMjAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUCAgIDB4MDIwMDA0MDAKIC8qIEJBUz0sQlM9LEJVPTB4MyhSL1cpLEJXPTB4MCg4IGJpdHMpICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IgICAweEZEMTFBMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSICAgMHhGRDExQTAwMAogCiAvKiBiYW5rIDUgaXMgRlBHQSAyICovCiAvKiBCTUU9LFRXVD0sQ1NOPSxPRU49LFdCTj0sV0JGPSxUSD0sUkU9LFNPUj0sQkVNPSxQRU49ICovCi0jZGVmaW5lIENGR19FQkNfUEI1QVAgICAweDAyMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQICAgMHgwMjAwMDQwMAogLyogQkFTPSxCUz0sQlU9MHgzKFIvVyksQlc9MHgxKDE2IGJpdHMpICovCi0jZGVmaW5lIENGR19FQkNfUEI1Q1IgICAweEZEMjFBMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUNSICAgMHhGRDIxQTAwMAogCiAvKiBiYW5rIDYgaXMgdW51c2VkICovCiAvKiBwYjZhcCA9IDAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZBUCAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2QVAgICAweDAwMDAwMDAwCiAvKiBwYjZjciA9IDAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjZDUiAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2Q1IgICAweDAwMDAwMDAwCiAKIC8qIGJhbmsgNyBpcyBMRUQgcmVnaXN0ZXIgKi8KIC8qIEJNRT0wLFRXVD02LENTTj0xLE9FTj0xLFdCTj0wLFdCRj0wLFRIPTIsUkU9MCxTT1I9MCxCRU09MSxQRU49MCAqLwotI2RlZmluZSBDRkdfVzdPX0VCQ19QQjdBUCAgIDB4MDMwNTA0NDAKKyNkZWZpbmUgQ09ORklHX1NZU19XN09fRUJDX1BCN0FQICAgMHgwMzA1MDQ0MAogLyogQkFTPTB4RkUwLEJTPTB4MCgxTUIpLEJVPTB4MyhSL1cpLEJXPTB4MigzMiBiaXRzKSAqLwotI2RlZmluZSBDRkdfVzdPX0VCQ19QQjdDUiAgIDB4RkUwMUMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19XN09fRUJDX1BCN0NSICAgMHhGRTAxQzAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBudW1iZXIgb2Ygc2VjIG9uIDEgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkJLyogbWF4IG51bWJlciBvZiBzZWMgb24gMSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCQkvKiBUaW1lb3V0LCBGbGFzaCBFcmFzZSwgaW4gbXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCQkvKiBUaW1lb3V0LCBGbGFzaCBXcml0ZSwgaW4gbXMJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIHJlYWwgRmxhc2ggcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCQkvKiBUaW1lb3V0LCBGbGFzaCBFcmFzZSwgaW4gbXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCwgRmxhc2ggV3JpdGUsIGluIG1zCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCQkvKiBVc2UgcmVhbCBGbGFzaCBwcm90ZWN0aW9uCSovCiAKICNpZiAxIC8qIFVzZSBOVlJBTSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEJCS8qIHVzZSBOVlJBTSBmb3IgZW52IHZhcnMJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGZjMDAwMDAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCSgzMioxMDI0KQkvKiBOVlJBTSBzaXplCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmYzAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJKDMyKjEwMjQpCS8qIE5WUkFNIHNpemUJCQkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkJLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzCSovCiAvKmRlZmluZSBDT05GSUdfRU5WX0FERFIJCSBcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKSBFbnYgICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ0ZHX05WUkFNX0JBU0VfQUREUgorCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKSBFbnYgICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIKIAogI2Vsc2UgLyogVXNlIEJvb3QgRmxhc2ggZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjcyLDE3ICsyNzIsMTcgQEAKICAqIEkyQyBFRVBST00gKENBVDI0V0MwOCkgZm9yIGVudmlyb25tZW50CiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJjIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogRUVQUk9NIENBVDI4V0MwOAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIiAgICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CS8qIFRoZSBDYXRhbHlzdCBDQVQyNFdDMDggaGFzCSovCiAJCQkJCS8qIDE2IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nKi8KIAkJCQkJLyogbGFzdAk0IGJpdHMgb2YgdGhlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEVFUFJPTSBhZGRyZXNzCiAgKiAodG8gZ2V0IFNEUkFNIHNldHRpbmdzKQpAQCAtMjk2LDE3ICsyOTYsMTcgQEAKICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTB4RjAwMDAwMDAJLyogRkxBU0ggYmFuayAjMQkJKi8KIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIAogLyoKQEAgLTMyNSw3ICszMjUsNyBAQAogLyoKICAqIEZQR0EocykgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GUEdBX0lNQUdFX0xFTgkweDgwMDAwCQkvKiA1MTJLQiBGUEdBIGltYWdlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU1BR0VfTEVOCTB4ODAwMDAJCS8qIDUxMktCIEZQR0EgaW1hZ2UJCSovCiAjZGVmaW5lIENPTkZJR19OVU1fRlBHQVMJMwkJLyogTnVtYmVyIG9mIEZQR0FzIG9uIGJvYXJkCSovCiAjZGVmaW5lIENPTkZJR19NQVhfRlBHQVMJNgkJLyogTWF4aW11bSBudW1iZXIgb2YgRlBHQXMJKi8KICNkZWZpbmUgQ09ORklHX0ZQR0FTX0JBU0UJMHhGRDAwMDAwMEwJLyogQmFzZSBhZGRyZXNzIG9mIEZQR0FzCSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvVzdPTE1HLmggYi9pbmNsdWRlL2NvbmZpZ3MvVzdPTE1HLmgKaW5kZXggYzNiMzlmMi4uMjI2MDMzOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1c3T0xNRy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9XN09MTUcuaApAQCAtNjMsNyArNjMsNyBAQAogI2RlZmluZSBDT05GSUdfU0VSVkVSSVAJCTE5Mi4xNjguMS4yCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkJLyogZGlzYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJCS8qIGRpc2FsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCQkvKiBQSFkgYWRkcmVzcwkJCSovCkBAIC03MSw5ICs3MSw5IEBACiAjZGVmaW5lIENPTkZJR19SVENfTTQ4VDM1QQkxCQkvKiBTVCBFbGVjdHJvbmljcyBNNDggdGltZWtlZXBlciAqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzUgICAgIDEgICAgICAgICAgICAgICAgLyogT04gU2VtaSdzIExNNzUgKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTICB7MiwgNH0gICAgICAgICAgIC8qIFNlbnNvciBhZGRyZXNzZXMgKi8KLSNkZWZpbmUgQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCS0zMAotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCiAKIAogLyoKQEAgLTExMiwzOCArMTEyLDM4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIldhdmU3T3B0aWNzPiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSN1bmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCQkJCS8qIE5vIGh1c2ggcGFyc2UgZm9yIFUtQm9vdCAgICAgICAqLwotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAgICAgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIldhdmU3T3B0aWNzPiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCQkvKiBObyBodXNoIHBhcnNlIGZvciBVLUJvb3QgICAgICAgKi8KKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAgICAgIj4gIgogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JCSovCiAKLSN1bmRlZiAgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OQkJCS8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJCTM4NDAwMAorI3VuZGVmICBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkJCQkvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJMzg0MDAwCiAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezk2MDB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezk2MDB9CiAKLSNkZWZpbmUgQ0ZHX0NMS1NfSU5fSFoJCTEJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTEtTX0lOX0haCQkxCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJCS8qIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCQkvKiB1c2UgZXh0ZW5kZWQgYm9hcmRfaW5mbyAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTU3LDE0ICsxNTcsMTQgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9IT1NUCQlQQ0lfSE9TVF9BVVRPCS8qIHNlbGVjdCBwY2kgaG9zdCBmdW5jdGlvbgkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCQkvKiBwY2kgcGx1Zy1hbmQtcGxheQkJKi8KIC8qIHJlc291cmNlIGNvbmZpZ3VyYXRpb24JKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CQkvKiBQQ0kgVmVuZG9yIElEOiBJQk0JCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDE1NgkJLyogUENJIERldmljZSBJRDogNDA1R1AJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJCQkweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJCQkweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDE0CQkvKiBQQ0kgVmVuZG9yIElEOiBJQk0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAxNTYJCS8qIFBDSSBEZXZpY2UgSUQ6IDQwNUdQCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSQkJMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSQkJMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2V0IHVwIHZhbHVlcyBmb3IgZXh0ZXJuYWwgYnVzIGNvbnRyb2xsZXIKQEAgLTE3NSw5NCArMTc1LDk0IEBACiAjZGVmaW5lIENPTkZJR19VU0VfUEVSV0UgMQogCiAvKiB1c2Ugb24gY2hpcCBtZW1vcnkgKCBPQ00gKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00gICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgICAgICAgMQogCiAvKiBiYW5rIDAgaXMgYm9vdCBmbGFzaCAqLwogLyogQk1FPTAsVFdUPTYsQ1NOPTEsT0VOPTEsV0JOPTAsV0JGPTAsVEg9MixSRT0wLFNPUj0wLEJFTT0xLFBFTj0wICovCi0jZGVmaW5lIENGR19XN09fRUJDX1BCMEFQICAgMHgwMzA1MDQ0MAorI2RlZmluZSBDT05GSUdfU1lTX1c3T19FQkNfUEIwQVAgICAweDAzMDUwNDQwCiAvKiBCQVM9MHhGRkUsQlM9MHgxKDJNQiksQlU9MHgzKFIvVyksQlc9MHgwKDggYml0cykgKi8KLSNkZWZpbmUgQ0ZHX1c3T19FQkNfUEIwQ1IgICAweEZGRTM4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfVzdPX0VCQ19QQjBDUiAgIDB4RkZFMzgwMDAKIAogLyogYmFuayAxIGlzIG1haW4gZmxhc2ggKi8KIC8qIEJNRT0wLFRXVD05LENTTj0xLE9FTj0xLFdCTj0wLFdCRj0wLFRIPTEsUkU9MCxTT1I9MCxCRU09MSxQRU49MCAqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgMHgwNDg1MDI0MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUCAgIDB4MDQ4NTAyNDAKIC8qIEJBUz0weEYwMCxCUz0weDcoMTI4TUIpLEJVPTB4MyhSL1cpLEJXPTB4MTAoMzIgYml0cykgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUiAgIDB4RjAwRkMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAweEYwMEZDMDAwCiAKIC8qIGJhbmsgMiBpcyBSVEMvTlZSQU0gKi8KIC8qIEJNRT0wLFRXVD02LENTTj0wLE9FTj0wLFdCTj0wLFdCRj0wLFRIPTIsUkU9MCxTT1I9MCxCRU09MSxQRU49MCAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQICAgMHgwMzAwMDQ0MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgIDB4MDMwMDA0NDAKIC8qIEJBUz0weEZDMCxCUz0weDAoMU1CKSxCVT0weDMoUi9XKSxCVz0weDAoOCBiaXRzKSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgMHhGQzAxODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUiAgIDB4RkMwMTgwMDAKIAogLyogYmFuayAzIGlzIEZQR0EgMCAqLwogLyogQk1FPTAsVFdUPTQsQ1NOPTAsT0VOPTAsV0JOPTAsV0JGPTAsVEg9MixSRT0wLFNPUj0wLEJFTT0wLFBFTj0wICovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAgICAweDAyMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQICAgMHgwMjAwMDQwMAogLyogQkFTPTB4RkQwLEJTPTB4MCgxTUIpLEJVPTB4MyhSL1cpLEJXPTB4MSgxNiBiaXRzKSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSICAgMHhGRDAxQTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUiAgIDB4RkQwMUEwMDAKIAogLyogYmFuayA0IGlzIFNBTSA4IGJpdCByYW5nZSAqLwogLyogQk1FPSxUV1Q9LENTTj0sT0VOPSxXQk49LFdCRj0sVEg9LFJFPSxTT1I9LEJFTT0sUEVOPSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNEFQICAgMHgwMjg0MDM4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUCAgIDB4MDI4NDAzODAKIC8qIEJBUz0sQlM9LEJVPTB4MyhSL1cpLEJXPTB4MCg4IGJpdHMpICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IgICAweEZFODc4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSICAgMHhGRTg3ODAwMAogCiAvKiBiYW5rIDUgaXMgU0FNIDE2IGJpdCByYW5nZSAqLwogLyogQk1FPTAsVFdUPTEwLENTTj0yLE9FTj0wLFdCTj0wLFdCRj0wLFRIPTYsUkU9MSxTT1I9MSxCRU09MCxQRU49MCAqLwotI2RlZmluZSBDRkdfRUJDX1BCNUFQICAgMHgwNTA0MGQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVBUCAgIDB4MDUwNDBkODAKIC8qIEJBUz0sQlM9LEJVPTB4MyhSL1cpLEJXPTB4MSgxNiBiaXRzKSAqLwotI2RlZmluZSBDRkdfRUJDX1BCNUNSICAgMHhGRDg3QTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUiAgIDB4RkQ4N0EwMDAKIAogLyogYmFuayA2IGlzIHVudXNlZCAqLwogLyogcGI2YXAgPSAwICovCi0jZGVmaW5lIENGR19FQkNfUEI2QVAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkFQICAgMHgwMDAwMDAwMAogLyogcGI2Y3IgPSAwICovCi0jZGVmaW5lIENGR19FQkNfUEI2Q1IgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNkNSICAgMHgwMDAwMDAwMAogCiAvKiBiYW5rIDcgaXMgTEVEIHJlZ2lzdGVyICovCiAvKiBCTUU9MCxUV1Q9NixDU049MSxPRU49MSxXQk49MCxXQkY9MCxUSD0yLFJFPTAsU09SPTAsQkVNPTEsUEVOPTAgKi8KLSNkZWZpbmUgQ0ZHX1c3T19FQkNfUEI3QVAgICAweDAzMDUwNDQwCisjZGVmaW5lIENPTkZJR19TWVNfVzdPX0VCQ19QQjdBUCAgIDB4MDMwNTA0NDAKIC8qIEJBUz0weEZFMCxCUz0weDAoMU1CKSxCVT0weDMoUi9XKSxCVz0weDIoMzIgYml0cykgKi8KLSNkZWZpbmUgQ0ZHX1c3T19FQkNfUEI3Q1IgICAweEZFMDFDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVzdPX0VCQ19QQjdDUiAgIDB4RkUwMUMwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDE5NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CQkvKiBtYXggbnVtYmVyIG9mIHNlYyBvbiAxIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBudW1iZXIgb2Ygc2VjIG9uIDEgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCwgRmxhc2ggRXJhc2UsIGluIG1zCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkJLyogVGltZW91dCwgRmxhc2ggV3JpdGUsIGluIG1zCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJCS8qIFVzZSByZWFsIEZsYXNoIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkJLyogVGltZW91dCwgRmxhc2ggRXJhc2UsIGluIG1zCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQsIEZsYXNoIFdyaXRlLCBpbiBtcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkJLyogVXNlIHJlYWwgRmxhc2ggcHJvdGVjdGlvbgkqLwogCiAjaWYgMSAvKiBVc2UgTlZSQU0gZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCQkvKiB1c2UgTlZSQU0gZm9yIGVudiB2YXJzCSovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmYzAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkoMzIqMTAyNCkJLyogTlZSQU0gc2l6ZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZmMwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCSgzMioxMDI0KQkvKiBOVlJBTSBzaXplCQkJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogLypkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkgXAotCShDRkdfTlZSQU1fQkFTRV9BRERSK0NGR19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkgRW52ICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNGR19OVlJBTV9CQVNFX0FERFIKKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkgRW52ICAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCiAKICNlbHNlIC8qIFVzZSBCb290IEZsYXNoIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3OSwxMyArMjc5LDEzIEBACiAgKiBJMkMgRUVQUk9NIChBVE1FTCAyNEMwNE4pCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCQkvKiBIYXJkd2FyZSBhc3Npc3RlZCBJMkMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIEVFUFJPTSBBVE1FTCAyNEMwNE4JCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIEVFUFJPTSBBVE1FTCAyNEMwNE4JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgU2VyaWFsIFByZXNlbmNlIERldGVjdCBFRVBST00gYWRkcmVzcwogICogKHRvIGdldCBTRFJBTSBzZXR0aW5ncykKQEAgLTI5OSwxNyArMjk5LDE3IEBACiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkweEYwMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzEJCSovCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAKIC8qCkBAIC0zMjgsNyArMzI4LDcgQEAKIC8qCiAgKiBGUEdBKHMpIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRlBHQV9JTUFHRV9MRU4JMHg4MDAwMAkJLyogNTEyS0IgRlBHQSBpbWFnZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0lNQUdFX0xFTgkweDgwMDAwCQkvKiA1MTJLQiBGUEdBIGltYWdlCQkqLwogI2RlZmluZSBDT05GSUdfTlVNX0ZQR0FTCTEJCS8qIE51bWJlciBvZiBGUEdBcyBvbiBib2FyZAkqLwogI2RlZmluZSBDT05GSUdfTUFYX0ZQR0FTCTYJCS8qIE1heGltdW0gbnVtYmVyIG9mIEZQR0FzCSovCiAjZGVmaW5lIENPTkZJR19GUEdBU19CQVNFCTB4RkQwMDAwMDBMCS8qIEJhc2UgYWRkcmVzcyBvZiBGUEdBcwkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1dVSDQwNS5oIGIvaW5jbHVkZS9jb25maWdzL1dVSDQwNS5oCmluZGV4IGFmZTFkYTkuLmVjODE1NjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9XVUg0MDUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvV1VINDA1LmgKQEAgLTUyLDcgKzUyLDcgQEAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QgICAgICAgICAgICAgICAgICAvKiBlbmFibGUgcHJlYm9vdCB2YXJpYWJsZSAgICAgICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkxCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX1BIWV9BRERSCQkwCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTg5LDczICs4OSw3MyBAQAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCiAjZGVmaW5lIENPTkZJR19SVENfTUMxNDY4MTgJCS8qIERTMTY4NSBpcyBNQzE0NjgxOCBjb21wYXRpYmxlKi8KLSNkZWZpbmUgQ0ZHX1JUQ19SRUdfQkFTRV9BRERSCSAweEYwMDAwNTAwIC8qIFJUQyBCYXNlIEFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX1JFR19CQVNFX0FERFIJIDB4RjAwMDA1MDAgLyogUlRDIEJhc2UgQWRkcmVzcwkJKi8KIAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzAJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAwCSovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyN1bmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZQkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQJMQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCTEJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBubyBleHRlcm5hbCBzZXJpYWwgY2xvY2sgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lHTk9SRV80MDVfVUFSVF9FUlJBVEFfNTkJLyogaWdub3JlIHBwYzQwNWdwIGVycmF0YSAjNTkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogI2RlZmluZQlDT05GSUdfVUFSVDFfQ09OU09MRQkJLyogZGVmaW5lIGZvciB1YXJ0MSBhcyBjb25zb2xlCSovCiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgaW5jbHVkZXMgdGhlIHN1cHBvcnRlZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQlcCiAJeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAgICAgXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KIAogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRSAxCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNgkvKiB1c2UgMTYgcnggYnVmZmVyIG9uIDQwNSBlbWFjICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5BTkQtRkxBU0ggc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFX0xJU1QJeyBDRkdfTkFORF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVAl7IENPTkZJR19TWVNfTkFORF9CQVNFIH0KICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMgICAgICAgICAgMQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxICAgICAgICAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KICNkZWZpbmUgTkFORF9CSUdfREVMQVlfVVMJMjUKIAotI2RlZmluZSBDRkdfTkFORF9DRSAgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAxKSAgIC8qIG91ciBDRSBpcyBHUElPMSAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUkRZICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gNCkgICAvKiBvdXIgUkRZIGlzIEdQSU80ICovCi0jZGVmaW5lIENGR19OQU5EX0NMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDIpICAgLyogb3VyIENMRSBpcyBHUElPMiAqLwotI2RlZmluZSBDRkdfTkFORF9BTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAzKSAgIC8qIG91ciBBTEUgaXMgR1BJTzMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NFICAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDEpICAgLyogb3VyIENFIGlzIEdQSU8xICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUkRZICAgICAgICAgICAgKDB4ODAwMDAwMDAgPj4gNCkgICAvKiBvdXIgUkRZIGlzIEdQSU80ICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DTEUgICAgICAgICAgICAoMHg4MDAwMDAwMCA+PiAyKSAgIC8qIG91ciBDTEUgaXMgR1BJTzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0FMRSAgICAgICAgICAgICgweDgwMDAwMDAwID4+IDMpICAgLyogb3VyIEFMRSBpcyBHUElPMyAqLwogCi0jZGVmaW5lIENGR19OQU5EX1NLSVBfQkFEX0RPVF9JICAgICAgMSAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0tJUF9CQURfRE9UX0kgICAgICAxICAvKiAiLmkiIHJlYWQgc2tpcHMgYmFkIGJsb2NrcyAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTcyLDU4ICsxNzIsNTggQEAKIAogI3VuZGVmCUNPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFCTB4MGIyMAkvKiBQQ0kgQ2xhc3MgQ29kZTogUHJvY2Vzc29yL1BQQyovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTJGRQkvKiBQQ0kgVmVuZG9yIElEOiBlc2QgZ21iaAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwNDA1CS8qIFBDSSBEZXZpY2UgSUQ6IENQQ0ktNDA1CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NMQVNTQ09ERQkweDBiMjAJLyogUENJIENsYXNzIENvZGU6IFByb2Nlc3Nvci9QUEMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ZmMwMDAwMDEJLyogNjRNQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweGZmYzAwMDAxCS8qIDRNQiwgZW5hYmxlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRkMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkZDMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBzaG9ydAkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUJLyogMXN0IGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCiAvKgogICogVGhlIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBhZGRlZCBmb3IgYnVnZ3kgSU9QNDgwIGJ5dGUgaW50ZXJmYWNlLgogICogQWxsIG90aGVyIGJvYXJkcyBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKENQQ0k0MDUgZXRjLikKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDAJCTB4MDAwMAkvKiAwIGlzIHN0YW5kYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDEJCTB4MDAwMQkvKiAxIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMgkJMHgwMDAyCS8qIDIgaXMgc3RhbmRhcmQJCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmIDAgLyogdGVzdC1vbmx5ICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAJICAgIC8qIHVzZSBmb3IgSkZGUzIgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAkgICAgLyogdXNlIGZvciBKRkZTMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCSAgICAvKiAhIHNlY29uZCBiYW5rIGNvbnRhaW5zIFUtQm9vdCAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzNCwyNCArMjM0LDI0IEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg3MDAJLyogMjA0OCBieXRlcyBtYXkgYmUgdXNlZCBmb3IgZW52IHZhcnMqLwogCQkJCSAgIC8qIHRvdGFsIHNpemUgb2YgYSBDQVQyNFdDMTYgaXMgMjA0OCBieXRlcyAqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEYwMDAwNTAwCQkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChDQVQyNFdDMTYpIGZvciBlbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyYyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEVFUFJPTSBDQVQyOFdDMDgJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBFRVBST00gQ0FUMjhXQzA4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDQJLyogVGhlIENhdGFseXN0IENBVDI0V0MwOCBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAkvKiBUaGUgQ2F0YWx5c3QgQ0FUMjRXQzA4IGhhcwkqLwogCQkJCQkvKiAxNiBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNCBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI2NiwyMSArMjY2LDIxIEBACiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHg5MjAxNTQ4MAotLyojZGVmaW5lIENGR19FQkNfUEIwQVAJCSAgMHgwODA1NTg4MCAgL1hYWCogVFdUPTE2LENTTj0xLE9FTj0xLFdCTj0xLFdCRj0xLFRIPTQsU09SPTEgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4OTIwMTU0ODAKKy8qI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJICAweDA4MDU1ODgwICAvWFhYKiBUV1Q9MTYsQ1NOPTEsT0VOPTEsV0JOPTEsV0JGPTEsVEg9NCxTT1I9MSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkM1QTAwMCAgLyogQkFTPTB4RkZDLEJTPTRNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxLCBOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGNDAxODAwMCAgLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5MjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGNDAxODAwMCAgLyogQkFTPTB4RjQwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyICg4IEJpdCBQZXJpcGhlcmFsOiBDQU4sIFVBUlQsIFJUQykgaW5pdGlhbGl6YXRpb24JCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkweEYwMDE4MDAwICAvKiBCQVM9MHhGMDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDA1M0MwICAvKiBCV1Q9MixXQk49MSxXQkY9MSxUSD0xLFJFPTEsU09SPTEsQkVNPTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoMTYgQml0IFBlcmlwaGVyYWw6IEZQR0EgaW50ZXJuYWwsIGRpZy4gSU8pIGluaXRpYWxpemF0aW9uCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDEwMDUzQzAgIC8qIEJXVD0yLFdCTj0xLFdCRj0xLFRIPTEsUkU9MSxTT1I9MSxCRU09MSAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkweEYwMTFBMDAwICAvKiBCQVM9MHhGMDEsQlM9MU1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAjZGVmaW5lIENBTl9CQQkJMHhGMDAwMDAwMAkgICAgLyogQ0FOIEJhc2UgQWRkcmVzcwkJCSovCiAjZGVmaW5lIERVQVJUMF9CQQkweEYwMDAwNDAwCSAgICAvKiBEVUFSVCBCYXNlIEFkZHJlc3MJCSovCkBAIC0yODgsMzYgKzI4OCwzNiBAQAogI2RlZmluZSBEVUFSVDJfQkEJMHhGMDAwMDQxMAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBEVUFSVDNfQkEJMHhGMDAwMDQxOAkgICAgLyogRFVBUlQgQmFzZSBBZGRyZXNzCQkqLwogI2RlZmluZSBSVENfQkEJCTB4RjAwMDA1MDAJICAgIC8qIFJUQyBCYXNlIEFkZHJlc3MJCQkqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCTB4RjQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJMHhGNDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGUEdBIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfU1BBUlRBTjIJMQkgICAgLyogdXNpbmcgWGlsaW54IFNwYXJ0YW4gMiBub3cgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfTUFYX1NJWkUJMTI4KjEwMjQgICAgLyogMTI4a0J5dGUgaXMgZW5vdWdoIGZvciBYQzJTNTBFKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCTEJICAgIC8qIHVzaW5nIFhpbGlueCBTcGFydGFuIDIgbm93ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9NQVhfU0laRQkxMjgqMTAyNCAgICAvKiAxMjhrQnl0ZSBpcyBlbm91Z2ggZm9yIFhDMlM1MEUqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUFJHCQkweDA0MDAwMDAwICAvKiBGUEdBIHByb2dyYW0gcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MDEwMDAwMDAgIC8qIEZQR0EgZGF0YSBwaW4gKHBwYyBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0lOSVQJCTB4MDAwMTAwMDAgIC8qIEZQR0EgaW5pdCBwaW4gKHBwYyBpbnB1dCkgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MDQwMDAwMDAgIC8qIEZQR0EgcHJvZ3JhbSBwaW4gKHBwYyBvdXRwdXQpICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MDIwMDAwMDAgIC8qIEZQR0EgY2xrIHBpbiAocHBjIG91dHB1dCkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCQkweDAxMDAwMDAwICAvKiBGUEdBIGRhdGEgcGluIChwcGMgb3V0cHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfSU5JVAkJMHgwMDAxMDAwMCAgLyogRlBHQSBpbml0IHBpbiAocHBjIGlucHV0KSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MDAwMDgwMDAgIC8qIEZQR0EgZG9uZSBwaW4gKHBwYyBpbnB1dCkgICAgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCSAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCSAgMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJTyBzZXR1cCAoUFBDNDA1RVAgc3BlY2lmaWMpCkBAIC0zMzEsMTUgKzMzMSwxNSBAQAogICogR1BJTzBbMjgtMjldIC0gVUFSVDEgZGF0YSBzaWduYWwgaW5wdXQvb3V0cHV0CiAgKiBHUElPMFszMC0zMV0gLSBFTUFDMCBhbmQgRU1BQzEgcmVqZWN0IHBhY2tldCBpbnB1dHMKICAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg0MDAwMDU1MAotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1Ci0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4RjdGRTAwMTQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JICQkweDQwMDAwNTUwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUwJCTB4MTU1NTU0NDUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RDUgkJMHhGN0ZFMDAxNAogCi0jZGVmaW5lIENGR19EVUFSVF9SU1QJCSgweDgwMDAwMDAwID4+IDE0KQorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX1JTVAkJKDB4ODAwMDAwMDAgPj4gMTQpCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL1hQRURJVEUxSy5oIGIvaW5jbHVkZS9jb25maWdzL1hQRURJVEUxSy5oCmluZGV4IGQ1MzNiMTcuLjU2OWJiOTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9YUEVESVRFMUsuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvWFBFRElURTFLLmgKQEAgLTM4LDI5ICszOCwyOSBAQAogI2RlZmluZSBDT05GSUdfNDQwCQkxCiAjZGVmaW5lIENPTkZJR180NDBHWAkJMQkJLyogNDQwIEdYICovCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkJLyogQ2FsbCBib2FyZF9wcmVfaW5pdAkqLwotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkJLyogRGlzYWJsZS10YWtlcyBsb25nIHRpbWUhICovCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkJLyogRGlzYWJsZS10YWtlcyBsb25nIHRpbWUhICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzMzMzMzMzMJLyogZXh0ZXJuYWwgZnJlcSB0byBwbGwgKi8KIAogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9SVEMJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQykKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfUlRDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAJCS8qIF9tdXN0XyBiZSAwCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgMHhmZmY4MDAwMAkJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCQkvKiBfbXVzdF8gYmUgMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweGZmZjgwMDAwCQkvKiBzdGFydCBvZiBGTEFTSAkqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgQ0ZHX0ZMQVNIX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvcgkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJICAgIDB4ODAwMDAwMDAJCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UgMHhlMDAwMDAwMAkJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMgKi8KLSNkZWZpbmUgQ0ZHX0lTUkFNX0JBU0UJICAgIDB4YzAwMDAwMDAJCS8qIGludGVybmFsIFNSQU0JKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCSAgICAweGQwMDAwMDAwCQkvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAweDgwMDAwMDAwCQkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSAweGUwMDAwMDAwCQkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lTUkFNX0JBU0UJICAgIDB4YzAwMDAwMDAJCS8qIGludGVybmFsIFNSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkgICAgMHhkMDAwMDAwMAkJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KIAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX0dQSU9fQkFTRQkgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNzAwKQorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQkFTRQkgICAgKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKIAogI2RlZmluZSBVU1JfTEVEMAkgICAgMHgwMDAwMDA4MAogI2RlZmluZSBVU1JfTEVEMQkgICAgMHgwMDAwMDEwMApAQCAtNzEsMzMgKzcxLDMzIEBACiBleHRlcm4gdW5zaWduZWQgbG9uZyBpbjMyKHVuc2lnbmVkIGludCk7CiBleHRlcm4gdm9pZCBvdXQzMih1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwogCi0jZGVmaW5lIExFRDBfT04oKSBvdXQzMihDRkdfR1BJT19CQVNFLCAoaW4zMihDRkdfR1BJT19CQVNFKSAmIH5VU1JfTEVEMCkpCi0jZGVmaW5lIExFRDFfT04oKSBvdXQzMihDRkdfR1BJT19CQVNFLCAoaW4zMihDRkdfR1BJT19CQVNFKSAmIH5VU1JfTEVEMSkpCi0jZGVmaW5lIExFRDJfT04oKSBvdXQzMihDRkdfR1BJT19CQVNFLCAoaW4zMihDRkdfR1BJT19CQVNFKSAmIH5VU1JfTEVEMikpCi0jZGVmaW5lIExFRDNfT04oKSBvdXQzMihDRkdfR1BJT19CQVNFLCAoaW4zMihDRkdfR1BJT19CQVNFKSAmIH5VU1JfTEVEMykpCisjZGVmaW5lIExFRDBfT04oKSBvdXQzMihDT05GSUdfU1lTX0dQSU9fQkFTRSwgKGluMzIoQ09ORklHX1NZU19HUElPX0JBU0UpICYgflVTUl9MRUQwKSkKKyNkZWZpbmUgTEVEMV9PTigpIG91dDMyKENPTkZJR19TWVNfR1BJT19CQVNFLCAoaW4zMihDT05GSUdfU1lTX0dQSU9fQkFTRSkgJiB+VVNSX0xFRDEpKQorI2RlZmluZSBMRUQyX09OKCkgb3V0MzIoQ09ORklHX1NZU19HUElPX0JBU0UsIChpbjMyKENPTkZJR19TWVNfR1BJT19CQVNFKSAmIH5VU1JfTEVEMikpCisjZGVmaW5lIExFRDNfT04oKSBvdXQzMihDT05GSUdfU1lTX0dQSU9fQkFTRSwgKGluMzIoQ09ORklHX1NZU19HUElPX0JBU0UpICYgflVTUl9MRUQzKSkKIAotI2RlZmluZSBMRUQwX09GRigpIG91dDMyKENGR19HUElPX0JBU0UsIChpbjMyKENGR19HUElPX0JBU0UpIHwgVVNSX0xFRDApKQotI2RlZmluZSBMRUQxX09GRigpIG91dDMyKENGR19HUElPX0JBU0UsIChpbjMyKENGR19HUElPX0JBU0UpIHwgVVNSX0xFRDEpKQotI2RlZmluZSBMRUQyX09GRigpIG91dDMyKENGR19HUElPX0JBU0UsIChpbjMyKENGR19HUElPX0JBU0UpIHwgVVNSX0xFRDIpKQotI2RlZmluZSBMRUQzX09GRigpIG91dDMyKENGR19HUElPX0JBU0UsIChpbjMyKENGR19HUElPX0JBU0UpIHwgVVNSX0xFRDMpKQorI2RlZmluZSBMRUQwX09GRigpIG91dDMyKENPTkZJR19TWVNfR1BJT19CQVNFLCAoaW4zMihDT05GSUdfU1lTX0dQSU9fQkFTRSkgfCBVU1JfTEVEMCkpCisjZGVmaW5lIExFRDFfT0ZGKCkgb3V0MzIoQ09ORklHX1NZU19HUElPX0JBU0UsIChpbjMyKENPTkZJR19TWVNfR1BJT19CQVNFKSB8IFVTUl9MRUQxKSkKKyNkZWZpbmUgTEVEMl9PRkYoKSBvdXQzMihDT05GSUdfU1lTX0dQSU9fQkFTRSwgKGluMzIoQ09ORklHX1NZU19HUElPX0JBU0UpIHwgVVNSX0xFRDIpKQorI2RlZmluZSBMRUQzX09GRigpIG91dDMyKENPTkZJR19TWVNfR1BJT19CQVNFLCAoaW4zMihDT05GSUdfU1lTX0dQSU9fQkFTRSkgfCBVU1JfTEVEMykpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAgMQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUiAgIENGR19JU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgQ0ZHX0lTUkFNX0JBU0UgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAweDIwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgMTI4CQkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLworI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNICAxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAgIENPTkZJR19TWVNfSVNSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICBDT05GSUdfU1lTX0lTUkFNX0JBU0UgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgMHgyMDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAxMjgJCSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUiAgKENGR19HQkxfREFUQV9PRkZTRVQgLSAweDQpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUiAgKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKQEAgLTEwNSw3ICsxMDUsNyBAQAogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogICAgIHszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTUsMjMgKzExNSwyMyBAQAogICogVGhlIERTMTc0MyBjb2RlIGFzc3VtZXMgdGhpcyBjb25kaXRpb24gKGkuZS4gLS0gaXQgYXNzdW1lcyB0aGUgYmFzZQogICogYWRkcmVzcyBmb3IgdGhlIFJUQyByZWdpc3RlcnMgaXM6CiAgKgotICoJQ0ZHX05WUkFNX0JBU0VfQUREUiArIENGR19OVlJBTV9TSVpFCisgKglDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiArIENPTkZJR19TWVNfTlZSQU1fU0laRQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKiBUQlM6CSBYcGVkaXRlIDEwMDAgaGFzIFNUTWljcm8gTTQxVDAwIHZpYSBJSUMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUMTEgMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSIDB4NjgKLSNkZWZpbmUgQ0ZHX000MVQxMV9CQVNFX1lFQVIgMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUiAweDY4CisjZGVmaW5lIENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUiAyMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJICAgIC8qIG51bWJlciBvZiBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTgJCSAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJCSAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLwogCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkgICAgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCkBAIC0xNDQsOSArMTQ0LDkgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkgICAgLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCSAgICAvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdmCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4NTUsMHg1NiwweDU3LDB4NTgsMHg1OSwweDVhLDB4NWIsMHg1YywweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3ZgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg1NSwweDU2LDB4NTcsMHg1OCwweDU5LDB4NWEsMHg1YiwweDVjLDB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC0xNTQsMTAgKzE1NCwxMCBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTSAxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAJICAgIC8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycyAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgxMDAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiB0aGlzIGlzIGFjdHVhbGx5IHRoZSBzZWNvbmQgcGFnZSBvZiB0aGUgZWVwcm9tICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogdGhpcyBpcyBhY3R1YWxseSB0aGUgc2Vjb25kIHBhZ2Ugb2YgdGhlIGVlcHJvbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKICNkZWZpbmUgQ09ORklHX0JPT1RBUkdTCQkicm9vdD0vZGV2L2hkYTEgIgogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJImJvb3RtIGZmYzAwMDAwIiAgICAvKiBhdXRvYm9vdCBjb21tYW5kICovCkBAIC0xNjUsNyArMTY1LDcgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTUlJCQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMAkvKiBQSFkgYWRkcmVzcyBwaHkwIG5vdCBwb3B1bGF0ZWQgKi8KQEAgLTE3NSw3ICsxNzUsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX1BIWV9HSUdFCQkxCS8qIEluY2x1ZGUgR2JFIHNwZWVkL2R1cGxleCBkZXRlY3Rpb24gKi8KICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVCAgICAgICAgMSAgICAgICAvKiByZXNldCBwaHkgdXBvbiBzdGFydHVwICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIgICAzMgkvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2NyaXB0b3JzICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUiAgIDMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KIAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEJCTEJLyogYWRkIHN1cHBvcnQgZm9yICJldGgxYWRkciIJKi8KICNkZWZpbmUgQ09ORklHX0hBU19FVEgyCQkxCS8qIGFkZCBzdXBwb3J0IGZvciAiZXRoMmFkZHIiCSovCkBAIC0yMTQsMjQgKzIxNCwyNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQyLDIwICsyNDIsMjAgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCQkgICAgLyogaW5jbHVkZSBwY2kgc3VwcG9ydAkJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCSAgICAvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCQkgICAgLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkvKiBJQk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyICovCi0jZGVmaW5lIENGR19QQ0lfRk9SQ0VfUENJX0NPTlYgICAgICAgICAgLyogRm9yY2UgUENJIENvbnZlbnRpb25hbCBNb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogSUJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfRk9SQ0VfUENJX0NPTlYgICAgICAgICAgLyogRm9yY2UgUENJIENvbnZlbnRpb25hbCBNb2RlICovCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvWXVrb244MjIwLmggYi9pbmNsdWRlL2NvbmZpZ3MvWXVrb244MjIwLmgKaW5kZXggY2JjMWVkNi4uYzQzOTA2OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL1l1a29uODIyMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ZdWtvbjgyMjAuaApAQCAtMzUsOCArMzUsOCBAQAogCiAvKiBJbnB1dCBjbG9jayBydW5uaW5nIGF0IDMwTWh6LCByZWFkIEhpZDEgZm9yIHRoZSBDUFUgbXVsdGlwbGllciB0bwogICAgZGV0ZXJtaW5lIHRoZSBDUFUgc3BlZWQuICovCi0jZGVmaW5lIENGR19NUEM4MjIwX0NMS0lOCTMwMDAwMDAwLyogLi4uIHJ1bm5pbmcgYXQgMzBNSHogKi8KLSNkZWZpbmUgQ0ZHX01QQzgyMjBfU1lTUExMX1ZDT19NVUxUSVBMSUVSIDE2IC8qIFZDTyBtdWx0aXBsaWVyIGNhbid0IGJlIHJlYWQgZnJvbSBhbnkgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4MjIwX0NMS0lOCTMwMDAwMDAwLyogLi4uIHJ1bm5pbmcgYXQgMzBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4MjIwX1NZU1BMTF9WQ09fTVVMVElQTElFUiAxNiAvKiBWQ08gbXVsdGlwbGllciBjYW4ndCBiZSByZWFkIGZyb20gYW55IHJlZ2lzdGVyICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkqLwpAQCAtNTMsMTYgKzUzLDE2IEBACiAKICNpZmRlZiBDT05GSUdfRVhUVUFSVF9DT05TT0xFCiAjICAgZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKLSMgICBkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jICAgZGVmaW5lIENGR19OUzE2NTUwCi0jICAgZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFIDEKLSMgICBkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NQTERfQkFTRSArIDB4MTAwOCkKLSMgICBkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCTE4NDMyMDAwCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyMgICBkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NQTERfQkFTRSArIDB4MTAwOCkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkxODQzMjAwMAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJICAgIC8qIC4uLiBhdCAxMTUyMDAgYnBzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAjZGVmaW5lIENPTkZJR19USU1FU1RBTVAJCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKQEAgLTEyMCwxMDQgKzEyMCwxMDQgQEAKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMQogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTIJLyogMTAxMTAwMHhiICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTcwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUyCS8qIDEwMTEwMDB4YiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAogLyoKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTI1NgogKi8KIAotLyogSWYgQ0ZHX0FNRF9CT09UIGlzIGRlZmluZWQsIHRoZSB0aGUgc3lzdGVtIHdpbGwgYm9vdCBmcm9tIEFNRC4KKy8qIElmIENPTkZJR19TWVNfQU1EX0JPT1QgaXMgZGVmaW5lZCwgdGhlIHRoZSBzeXN0ZW0gd2lsbCBib290IGZyb20gQU1ELgogICAgZWxzZSB1bmRlZmluZWQgaXQgd2lsbCBib290IGZyb20gSW50ZWwgU3RyYXRhIGZsYXNoICovCi0jZGVmaW5lIENGR19BTURfQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0FNRF9CT09UCQkxCiAKIC8qCiAgKiBGbGV4YnVzIENoaXBzZWxlY3QgY29uZmlndXJhdGlvbgogICovCi0jaWYgZGVmaW5lZCAoQ0ZHX0FNRF9CT09UKQotI2RlZmluZSBDRkdfQ1MwX0JBU0UJCTB4ZmZmMAotI2RlZmluZSBDRkdfQ1MwX01BU0sJCTB4MDAwODAwMDAgIC8qIDUxMiBLQiAqLwotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAzZjBkNDAKKyNpZiBkZWZpbmVkIChDT05GSUdfU1lTX0FNRF9CT09UKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9CQVNFCQkweGZmZjAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfTUFTSwkJMHgwMDA4MDAwMCAgLyogNTEyIEtCICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAzZjBkNDAKIAotI2RlZmluZSBDRkdfQ1MxX0JBU0UJCTB4ZmUwMAotI2RlZmluZSBDRkdfQ1MxX01BU0sJCTB4MDEwMDAwMDAgIC8qIDE2IE1CICovCi0jZGVmaW5lIENGR19DUzFfQ1RSTAkJMHgwMDNmMTU0MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9CQVNFCQkweGZlMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfTUFTSwkJMHgwMTAwMDAwMCAgLyogMTYgTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ1RSTAkJMHgwMDNmMTU0MAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweGZmMDAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDAxMDAwMDAwICAvKiAxNiBNQiAqLwotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAzZjE1NDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHhmZjAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDEwMDAwMDAgIC8qIDE2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAzZjE1NDAKIAotI2RlZmluZSBDRkdfQ1MxX0JBU0UJCTB4ZmUwOAotI2RlZmluZSBDRkdfQ1MxX01BU0sJCTB4MDAwODAwMDAgIC8qIDUxMiBLQiAqLwotI2RlZmluZSBDRkdfQ1MxX0NUUkwJCTB4MDAzZjBkNDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQkFTRQkJMHhmZTA4CisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX01BU0sJCTB4MDAwODAwMDAgIC8qIDUxMiBLQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DVFJMCQkweDAwM2YwZDQwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQ1MyX0JBU0UJCTB4ZjEwMAotI2RlZmluZSBDRkdfQ1MyX01BU0sJCTB4MDAwNDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9DVFJMCQkweDAwM2YxMTQwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0JBU0UJCTB4ZjEwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9NQVNLCQkweDAwMDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NUUkwJCTB4MDAzZjExNDAKIAotI2RlZmluZSBDRkdfQ1MzX0JBU0UJCTB4ZjIwMAotI2RlZmluZSBDRkdfQ1MzX01BU0sJCTB4MDAwNDAwMDAKLSNkZWZpbmUgQ0ZHX0NTM19DVFJMCQkweDAwM2YxMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0JBU0UJCTB4ZjIwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19NQVNLCQkweDAwMDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NUUkwJCTB4MDAzZjExMDAKIAogCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRQkJKENGR19DUzBfQkFTRSA8PCAxNikKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFCQkoQ0ZHX0NTMV9CQVNFIDw8IDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCQkoQ09ORklHX1NZU19DUzBfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRQkJKENPTkZJR19TWVNfQ1MxX0JBU0UgPDwgMTYpCiAKLSNpZiBkZWZpbmVkIChDRkdfQU1EX0JPT1QpCi0jZGVmaW5lIENGR19BTURfQkFTRQkJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19JTlRFTF9CQVNFCQlDRkdfRkxBU0gxX0JBU0UgKyAweGYwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0FNRF9CQVNFCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19BTURfQk9PVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BTURfQkFTRQkJQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVEVMX0JBU0UJCUNPTkZJR19TWVNfRkxBU0gxX0JBU0UgKyAweGYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfQU1EX0JBU0UKICNlbHNlCi0jZGVmaW5lIENGR19JTlRFTF9CQVNFCQlDRkdfRkxBU0gwX0JBU0UgKyAweGYwMDAwMAotI2RlZmluZSBDRkdfQU1EX0JBU0UJCUNGR19GTEFTSDFfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0lOVEVMX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRFTF9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICsgMHhmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BTURfQkFTRQkJQ09ORklHX1NZU19GTEFTSDFfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfSU5URUxfQkFTRQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0NQTERfQkFTRQkJKENGR19DUzJfQkFTRSA8PCAxNikKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkJKENGR19DUzNfQkFTRSA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX0JBU0UJCShDT05GSUdfU1lTX0NTMl9CQVNFIDw8IDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkJKENPTkZJR19TWVNfQ1MzX0JBU0UgPDwgMTYpCiAKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTQJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTQJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCiAKICNkZWZpbmUgUEhZU19BTURfU0VDVF9TSVpFCTB4MDAwMTAwMDAgLyogIDY0IEtCIHNlY3RvcnMgKHgyKSAqLwogI2RlZmluZSBQSFlTX0lOVEVMX1NFQ1RfU0laRQkweDAwMDIwMDAwIC8qIDEyOCBLQiBzZWN0b3JzICh4MikgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jaWYgZGVmaW5lZCAoQ0ZHX0FNRF9CT09UKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0gwX0JBU0UgKyBDRkdfQ1MwX01BU0sgLSBQSFlTX0FNRF9TRUNUX1NJWkUpCisjaWYgZGVmaW5lZCAoQ09ORklHX1NZU19BTURfQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSDBfQkFTRSArIENPTkZJR19TWVNfQ1MwX01BU0sgLSBQSFlTX0FNRF9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJUEhZU19BTURfU0VDVF9TSVpFCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCVBIWVNfQU1EX1NFQ1RfU0laRQotI2RlZmluZSBDT05GSUdfRU5WMV9BRERSCQkoQ0ZHX0ZMQVNIMV9CQVNFICsgQ0ZHX0NTMV9NQVNLIC0gUEhZU19JTlRFTF9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlYxX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgQ09ORklHX1NZU19DUzFfTUFTSyAtIFBIWVNfSU5URUxfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WMV9TSVpFCQlQSFlTX0lOVEVMX1NFQ1RfU0laRQogI2RlZmluZSBDT05GSUdfRU5WMV9TRUNUX1NJWkUJUEhZU19JTlRFTF9TRUNUX1NJWkUKICNlbHNlCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSDBfQkFTRSArIENGR19DUzBfTUFTSyAtIFBIWVNfSU5URUxfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICsgQ09ORklHX1NZU19DUzBfTUFTSyAtIFBIWVNfSU5URUxfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCVBIWVNfSU5URUxfU0VDVF9TSVpFCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCVBIWVNfSU5URUxfU0VDVF9TSVpFCi0jZGVmaW5lIENPTkZJR19FTlYxX0FERFIJCShDRkdfRkxBU0gxX0JBU0UgKyBDRkdfQ1MxX01BU0sgLSBQSFlTX0FNRF9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlYxX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICsgQ09ORklHX1NZU19DUzFfTUFTSyAtIFBIWVNfQU1EX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVjFfU0laRQkJUEhZU19BTURfU0VDVF9TSVpFCiAjZGVmaW5lIENPTkZJR19FTlYxX1NFQ1RfU0laRQlQSFlTX0FNRF9TRUNUX1NJWkUKICNlbmRpZgpAQCAtMjM1LDUxICsyMzUsNTEgQEAKICN1bmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IJMAorI2lmbmRlZiBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkwCiAjZW5kaWYKLSNpZm5kZWYgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJMAorI2lmbmRlZiBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAKICNlbmRpZgotI2lmbmRlZiBDRkdfSkZGUzJfTlVNX0JBTktTCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQorI2lmbmRlZiBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0pGRlMyX0xBU1RfQkFOSyAoQ0ZHX0pGRlMyX0ZJUlNUX0JBTksgKyBDRkdfSkZGUzJfTlVNX0JBTktTIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9MQVNUX0JBTksgKENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSyArIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTIC0gMSkKIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJKENGR19NQkFSICsgMHgyMDAwMCkKLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJKENPTkZJR19TWVNfTUJBUiArIDB4MjAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9TSVpFCQkweDgwMDAKIAogLyogVXNlIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfTUJBUiArIDB4MjAwMDApCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg4MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX01CQVIgKyAweDIwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDgwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKiBTRFJBTSBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19TRFJBTV9UT1RBTF9CQU5LUwkJMgotI2RlZmluZSBDRkdfU0RSQU1fU1BEX0kyQ19BRERSCQkweDUxCQkvKiA3Yml0ICovCi0jZGVmaW5lIENGR19TRFJBTV9TUERfU0laRQkJMHg0MAotI2RlZmluZSBDRkdfU0RSQU1fQ0FTX0xBVEVOQ1kJCTQJCS8qIChDTD0yKXgyICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fVE9UQUxfQkFOS1MJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TUERfSTJDX0FERFIJCTB4NTEJCS8qIDdiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TUERfU0laRQkJMHg0MAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NBU19MQVRFTkNZCQk0CQkvKiAoQ0w9Mil4MiAqLwogCiAvKiBTRFJBTSBkcml2ZSBzdHJlbmd0aCByZWdpc3RlciAqLwotI2RlZmluZSBDRkdfU0RSQU1fRFJJVkVfU1RSRU5HVEgJKChEUklWRV9TVFJFTkdUSF9MT1cgIDw8IFNEUkFNRFNfU0JFX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9EUklWRV9TVFJFTkdUSAkoKERSSVZFX1NUUkVOR1RIX0xPVyAgPDwgU0RSQU1EU19TQkVfU0hJRlQpIHwgXAogCQkJCQkgKERSSVZFX1NUUkVOR1RIX0hJR0ggPDwgU0RSQU1EU19TQkNfU0hJRlQpIHwgXAogCQkJCQkgKERSSVZFX1NUUkVOR1RIX0xPVyAgPDwgU0RSQU1EU19TQkFfU0hJRlQpIHwgXAogCQkJCQkgKERSSVZFX1NUUkVOR1RIX09GRiAgPDwgU0RSQU1EU19TQlNfU0hJRlQpIHwgXApAQCAtMjk2LDMzICsyOTYsMzMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCSAgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCSAgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CSAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CSAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAgIC8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAgIC8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkgICAgLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkgICAgLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODIyMCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyMjAgQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNSAgIC8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNSAgIC8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvWlBDMTkwMC5oIGIvaW5jbHVkZS9jb25maWdzL1pQQzE5MDAuaAppbmRleCA1OWNjYTBiLi45Y2RhM2Y5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvWlBDMTkwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9aUEMxOTAwLmgKQEAgLTczLDEwICs3MywxMCBAQAogICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzIChzZWUgMjgtMTMpCiAgKiAtIEZ1bGwgZHVwbGV4CiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMTQ2LDc5ICsxNDYsNzkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMzgwMDAwMAkvKiAxIC4uLiA1NiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMzgwMDAwMAkvKiAxIC4uLiA1NiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTY0CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTY0CiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xTRFJBTV9CQVNFCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19CQ1NSCQkweEZFQTAwMDAwCi0jZGVmaW5lIENGR19FRVBST00JCTB4RkVCMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMU0lNTV9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xTRFJBTV9CQVNFCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1IJCTB4RkVBMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST00JCTB4RkVCMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTFNJTU1fQkFTRQkJMHhGRjAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTMyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMzIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTFNJTU1fQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTFNJTU1fQkFTRSB9CiAKICNkZWZpbmUgQkNTUl9QQ0lfTU9ERQkJMHgwMQogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qIEhhcmQgcmVzZXQgY29uZmlndXJhdGlvbiB3b3JkICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKEhSQ1dfRUJNIHwgSFJDV19CUFMwMXwgSFJDV19DSVAgICAgICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKEhSQ1dfRUJNIHwgSFJDV19CUFMwMXwgSFJDV19DSVAgICAgICAgICAgfFwKIAkJCQkgSFJDV19MMkNQQzEwIHwgSFJDV19EUFBDMDAgfCBIUkNXX0lTQjEwMCB8XAogCQkJCSBIUkNXX0JNUyB8IEhSQ1dfTEJQQzAwIHwgSFJDV19BUFBDMTAgICAgIHxcCiAJCQkJIEhSQ1dfTU9EQ0tfSDAxMTEgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkJCQkpIC8qIDB4MTY4NDgyMDcgKi8KIC8qIE5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QgICAgICAgICAgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKICNpZiAhZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKSAmJiAhZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX05WUkFNKQogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEKQEAgLTIyNiw1MyArMjI2LDUzIEBACiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2Vsc2UKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRUVQUk9NICsgMHg0MDApCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19FRVBST00gKyAweDQwMCkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAotIyAgZGVmaW5lIENGR19OVlJBTV9BQ0NFU1NfUk9VVElORQorIyAgZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQUNDRVNTX1JPVVRJTkUKICNlbmRpZgogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCQkoSElEMF9JQ0ZJKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkoSElEMF9JQ0ZJKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJMAogCi0jZGVmaW5lIENGR19TSVVNQ1IJCTB4NDIyMDAwMDAKLSNkZWZpbmUgQ0ZHX1NZUENSCQkweEZGRkZGRkMzCi0jZGVmaW5lIENGR19CQ1IJCQkweDkwMDAwMDAwCi0jZGVmaW5lIENGR19TQ0NSCQlTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCTB4NDIyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJMHhGRkZGRkZDMworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJCTB4OTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQlTQ0NSX0RGQlJHMDEKIAotI2RlZmluZSBDRkdfUk1SCQkJUk1SX0NTUkUKLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKLSNkZWZpbmUgQ0ZHX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKLSNkZWZpbmUgQ0ZHX1JDQ1IJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCQlSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkJMAogCi0jZGVmaW5lIENGR19QU0RNUgkJLyogMHg4MzREQTQzQiAqLzB4MDE0REE0M0EKLSNkZWZpbmUgQ0ZHX1BTUlQJCTB4MEYvKiAweDBDICovCi0jZGVmaW5lIENGR19MU0RNUgkJMHgwMDg1QTU2MgotI2RlZmluZSBDRkdfTFNSVAkJMHgwRgotI2RlZmluZSBDRkdfTVBUUFIJCTB4NDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCQkvKiAweDgzNERBNDNCICovMHgwMTREQTQzQQorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJCTB4MEYvKiAweDBDICovCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVIJCTB4MDA4NUE1NjIKKyNkZWZpbmUgQ09ORklHX1NZU19MU1JUCQkweDBGCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIJCTB4NDAwMAogCi0jZGVmaW5lIENGR19QU0RSQU1fQlIJCShDRkdfU0RSQU1fQkFTRSB8IDB4MDAwMDAwNDEpCi0jZGVmaW5lIENGR19QU0RSQU1fT1IJCTB4RkMwMDI4QzAKLSNkZWZpbmUgQ0ZHX0xTRFJBTV9CUgkJKENGR19MU0RSQU1fQkFTRSB8IDB4MDAwMDE4NjEpCi0jZGVmaW5lIENGR19MU0RSQU1fT1IJCTB4RkY4MDM0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RSQU1fQlIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCAweDAwMDAwMDQxKQorI2RlZmluZSBDT05GSUdfU1lTX1BTRFJBTV9PUgkJMHhGQzAwMjhDMAorI2RlZmluZSBDT05GSUdfU1lTX0xTRFJBTV9CUgkJKENPTkZJR19TWVNfTFNEUkFNX0JBU0UgfCAweDAwMDAxODYxKQorI2RlZmluZSBDT05GSUdfU1lTX0xTRFJBTV9PUgkJMHhGRjgwMzQ4MAogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweDAwMDAwODAxKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRkUwMDg1NgotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJKENGR19FRVBST00gfCAweDAwMDAwODAxKQotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkJMHhGRkZGMDNGNgotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJKENGR19GTFNJTU1fQkFTRSB8IDB4MDAwMDE4MDEpCi0jZGVmaW5lIENGR19PUjZfUFJFTElNCQkweEZGMDAwODU2Ci0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkoQ0ZHX0JDU1IgfCAweDAwMDAwODAxKQotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJMHhGRkZGODNGNgorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweDAwMDAwODAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4RkZFMDA4NTYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCQkoQ09ORklHX1NZU19FRVBST00gfCAweDAwMDAwODAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTB4RkZGRjAzRjYKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCQkoQ09ORklHX1NZU19GTFNJTU1fQkFTRSB8IDB4MDAwMDE4MDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMHhGRjAwMDg1NgorI2RlZmluZSBDT05GSUdfU1lTX0JSN19QUkVMSU0JCShDT05GSUdfU1lTX0JDU1IgfCAweDAwMDAwODAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCTB4RkZGRjgzRjYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEMwMDAwMDAwCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvWlVNQS5oIGIvaW5jbHVkZS9jb25maWdzL1pVTUEuaAppbmRleCAxNzA1NTNjLi4wOGM0Y2VkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvWlVNQS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9aVU1BLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZm5kZWYgX19DT05GSUdfSAogI2RlZmluZSBfX0NPTkZJR19ICiAKLSNkZWZpbmUgQ0ZHX0dUXzY0MjZ4ICAgICAgICBHVF82NDI2MCAvKiB3aXRoIGEgNjQyNjAgc3lzdGVtIGNvbnRyb2xsZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HVF82NDI2eCAgICAgICAgR1RfNjQyNjAgLyogd2l0aCBhIDY0MjYwIHN5c3RlbSBjb250cm9sbGVyICovCiAjZGVmaW5lIENPTkZJR19FVEhFUl9QT1JUX01JSQkvKiB1c2UgdHdvIE1JSSBwb3J0cyAqLwogI2RlZmluZSBDT05GSUdfSU5URUxfTFhUOTdYCS8qIEludGVsIExYVDk3WCBwaHkgKi8KIApAQCAtNTIsMTIgKzUyLDEyIEBACiAvKiB3aGljaCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMgdG8gY2FsbCBmb3IgdGhpcyBib2FyZCAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogCi0jZGVmaW5lIENGR19CT0FSRF9OQU1FCQkiWnVtYSBBUHYyIgorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJadW1hIEFQdjIiCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBsZXQgeW91IHNlbGVjdCB3aGF0IHNlcmlhbCB5b3Ugd2FudCB0byB1c2UKQEAgLTY1LDcgKzY1LDcgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogdG8gdXNlIHRoZSBEVUFSVCwgdW5kZWYgQ09ORklHX01QU0MuCSBJZiB5b3UgaGF2ZSBoYWNrZWQgYSBzZXJpYWwKLSAqIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLCBjaGFuZ2UgdGhlIENGR19EVUFSVCBwb3J0IGZyb20gMQorICogY2FibGUgb250byB0aGUgc2Vjb25kIERVQVJUIGNoYW5uZWwsIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMQogICogdG8gMCBiZWxvdy4KICAqCiAgKiB0byB1c2UgdGhlIE1QU0MsICNkZWZpbmUgQ09ORklHX01QU0MuICBJZiB5b3UgaGF2ZSB3aXJlZCB1cCBhbm90aGVyCkBAIC05Niw3ICs5Niw3IEBACiAJIiRuZXRtYXNrOiRob3N0bmFtZTpldGgwOm5vbmUgcGFuaWM9NSAmJiBib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkwCS8qIGVjaG8gb2ZmIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogI3VuZGVmCUNPTkZJR19BTFRJVkVDCQkJLyogdW5kZWYgdG8gZGlzYWJsZQkJKi8KQEAgLTE0NiwyOSArMTQ2LDI5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3IgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyIGZyZXE6IDFtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CVVNfSFoJCTEzMzAwMDAwMAkvKiAxMzMgTUh6CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JVU19IWgkJMTMzMDAwMDAwCS8qIDEzMyBNSHoJCSovCiAKLSNkZWZpbmUgQ0ZHX0JVU19DTEsJCUNGR19CVVNfSFoKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCQlDT05GSUdfU1lTX0JVU19IWgogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNzksNDggKzE3OSw0OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmYwMDAwMAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MgKi8KIAogLyogYXJlYXMgdG8gbWFwIGRpZmZlcmVudCB0aGluZ3Mgd2l0aCB0aGUgR1QgaW4gcGh5c2ljYWwgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fQkFOS1MJCTQKLSNkZWZpbmUgQ0ZHX0RGTF9HVF9SRUdTCQkweDE0MDAwMDAwCS8qIGJvb3QgdGltZSBHVF9SRUdTICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQU5LUwkJNAorI2RlZmluZSBDT05GSUdfU1lTX0RGTF9HVF9SRUdTCQkweDE0MDAwMDAwCS8qIGJvb3QgdGltZSBHVF9SRUdTICovCiAKIC8qIFdoYXQgdG8gcHV0IGluIHRoZSBiYXRzLiAqLwotI2RlZmluZSBDRkdfTUlTQ19SRUdJT05fQkFTRQkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRQkweGYwMDAwMDAwCiAKIC8qIFBlcmlwaGVyYWwgRGV2aWNlIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX0dUX1JFR1MJCTB4ZjgwMDAwMDAJLyogbGF0ZXIgbWFwcGVkIEdUX1JFR1MgKi8KLSNkZWZpbmUgQ0ZHX0RFVl9CQVNFCQkweGYwMDAwMDAwCi0jZGVmaW5lIENGR19ERVYwX1NJWkUJCV82NE0gLyogenVtYSBmbGFzaCBAIDB4ZjAwMC4wMDAwKi8KLSNkZWZpbmUgQ0ZHX0RFVjFfU0laRQkJIF84TSAvKiB6dW1hIElERSAgIEAgMHhmNDAwLjAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0RFVjJfU0laRQkJIF84TSAvKiB1bnVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0RFVjNfU0laRQkJIF84TSAvKiB1bnVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HVF9SRUdTCQkweGY4MDAwMDAwCS8qIGxhdGVyIG1hcHBlZCBHVF9SRUdTICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWX0JBU0UJCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1NJWkUJCV82NE0gLyogenVtYSBmbGFzaCBAIDB4ZjAwMC4wMDAwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1NJWkUJCSBfOE0gLyogenVtYSBJREUgICBAIDB4ZjQwMC4wMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWMl9TSVpFCQkgXzhNIC8qIHVudXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVjNfU0laRQkJIF84TSAvKiB1bnVzZWQgKi8KIAotI2RlZmluZSBDRkdfREVWMF9QQVIJCTB4YzQ5ODI0M2MKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1BBUgkJMHhjNDk4MjQzYwogCS8qICAgICBjICAgIDQgICAgIDkgICAgIDggICAgIDIJICAgIDQgICAgIDMgICAgIGMgKi8KIAkvKiAzMyAyMnwyMjIyfDIyIDIyfDExMSAxfDExIDExfDEgMSAgfAkgICB8ICAgICAgKi8KIAkvKiAxMCA5OHw3NjU0fDMyIDEwfDk4NyA2fDU0IDMyfDEgMDk4fDcgNjU0fDMgMjEwICovCiAJLyogMTF8MDB8MDEwMHwxMCAwMXwxMDB8MCAwMHwxMCAwfDEwMCAwfDAxMSAxfDEwMCAqLwogCS8qICAzfCAwfC4uLi4gLi58IDF8IDQgfCAgMCB8ICA0IHwgICA4IHwgICA3IHwgNCAgKi8KIAotI2RlZmluZSBDRkdfREVWMV9QQVIJCTB4YzAxYjZhYzUKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYxX1BBUgkJMHhjMDFiNmFjNQogCS8qICAgICBjICAgIDAgICAgIDEgICAgIGIgICAgIDYJICAgIGEgICAgIGMgICAgIDUgKi8KIAkvKiAzMyAyMnwyMjIyfDIyIDIyfDExMSAxfDExIDExfDEgMSAgfAkgICB8ICAgICAgKi8KIAkvKiAxMCA5OHw3NjU0fDMyIDEwfDk4NyA2fDU0IDMyfDEgMDk4fDcgNjU0fDMgMjEwICovCkBAIC0yMjgsMTggKzIyOCwxOCBAQAogCS8qICAzfCAwfC4uLi4gLi58IDF8IDUgfCAgNSB8ICA1IHwgICA1IHwgICA4IHwgNSAgKi8KIAogCi0jZGVmaW5lIENGR184QklUX0JPT1RfUEFSCTB4YzAwYjVlN2MKKyNkZWZpbmUgQ09ORklHX1NZU184QklUX0JPT1RfUEFSCTB4YzAwYjVlN2MKIAotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMAkweDAwMDA3Nzc3IC8qIEdQUFs3OjRdIDogUkVRMFsxOjBdIEdOVDBbMTowXSAqLwotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMQkweDAwMDAwMDAwIC8qIEdQUFsxNToxMl0gOiBHUFBbMTE6OF0gKi8KLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzIJMHgwMDAwODg4OCAvKiBHUFBbMjM6MjBdIDogUkVRMVsxOjBdIEdOVDFbMTowXSAqLwotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMwkweDAwMDAwMDAwIC8qIEdQUFszMToyOF0gKGludFszOjBdKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzAJMHgwMDAwNzc3NyAvKiBHUFBbNzo0XSA6IFJFUTBbMTowXSBHTlQwWzE6MF0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8xCTB4MDAwMDAwMDAgLyogR1BQWzE1OjEyXSA6IEdQUFsxMTo4XSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzIJMHgwMDAwODg4OCAvKiBHUFBbMjM6MjBdIDogUkVRMVsxOjBdIEdOVDFbMTowXSAqLworI2RlZmluZSBDT05GSUdfU1lTX01QUF9DT05UUk9MXzMJMHgwMDAwMDAwMCAvKiBHUFBbMzE6MjhdIChpbnRbMzowXSkgKi8KIAkJCQkJICAgLyogR1BQWzI3OjI0XSAoMjcgaXMgaW50NCwgcmVzdCBhcmUgR1BQKSAqLwogCi0jZGVmaW5lIENGR19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMTEwMSAvKiAxMT1NUFNDMS9NUFNDMCAwMT1FVEgsICAwPW9ubHkgTUlJICovCi0jZGVmaW5lIENGR19HUFBfTEVWRUxfQ09OVFJPTAkweGY4MDAwMDAwIC8qIGludGVycnVwdCBpbnB1dHM6IEdQUFszMToyN10gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRVJJQUxfUE9SVF9NVVgJMHgwMDAwMTEwMSAvKiAxMT1NUFNDMS9NUFNDMCAwMT1FVEgsICAwPW9ubHkgTUlJICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BQX0xFVkVMX0NPTlRST0wJMHhmODAwMDAwMCAvKiBpbnRlcnJ1cHQgaW5wdXRzOiBHUFBbMzE6MjddICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0NPTkZJRwkweGU0ZTE4MjAwCS8qIDB4NDQ4ICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ09ORklHCTB4ZTRlMTgyMDAJLyogMHg0NDggKi8KIAkJCQkvKiBpZG1hcyB1c2UgYnVmZmVyIDEsMQogCQkJCSAgIGNvbW0gdXNlIGJ1ZmZlciAxCiAJCQkJICAgcGNpIHVzZSBidWZmZXIgMCwwIChwY2kxLT4wIHBjaTAtPjApCkBAIC0yNTcsMTAgKzI1NywxMCBAQAogCQkJCS8qIDE1IDE0IDEzOjAgKi8KIAkJCQkvKiAxICAwCSAweDIwMCAqLwogCi0jZGVmaW5lIENGR19ERVYwX1NQQUNFCQlDRkdfREVWX0JBU0UKLSNkZWZpbmUgQ0ZHX0RFVjFfU1BBQ0UJCShDRkdfREVWMF9TUEFDRSArIENGR19ERVYwX1NJWkUpCi0jZGVmaW5lIENGR19ERVYyX1NQQUNFCQkoQ0ZHX0RFVjFfU1BBQ0UgKyBDRkdfREVWMV9TSVpFKQotI2RlZmluZSBDRkdfREVWM19TUEFDRQkJKENGR19ERVYyX1NQQUNFICsgQ0ZHX0RFVjJfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYwX1NQQUNFCQlDT05GSUdfU1lTX0RFVl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfREVWMV9TUEFDRQkJKENPTkZJR19TWVNfREVWMF9TUEFDRSArIENPTkZJR19TWVNfREVWMF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0RFVjJfU1BBQ0UJCShDT05GSUdfU1lTX0RFVjFfU1BBQ0UgKyBDT05GSUdfU1lTX0RFVjFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ERVYzX1NQQUNFCQkoQ09ORklHX1NZU19ERVYyX1NQQUNFICsgQ09ORklHX1NZU19ERVYyX1NJWkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMjc1LDI0ICsyNzUsMjQgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheQkJKi8KIAogLyogUENJIE1FTU9SWSBNQVAgc2VjdGlvbiAqLwotI2RlZmluZSBDRkdfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX01FTV9TSVpFCV8xMjhNCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJXzEyOE0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQlfMTI4TQogCi0jZGVmaW5lIENGR19QQ0kwXzBfTUVNX1NQQUNFCShDRkdfUENJMF9NRU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTFfMF9NRU1fU1BBQ0UJKENGR19QQ0kxX01FTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfMF9NRU1fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UpCiAKIC8qIFBDSSBJL08gTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NJWkUJXzE2TQotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZmIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQlfMTZNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19CQVNFCTB4ZmEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCV8xNk0KIAotI2RlZmluZSBDRkdfUENJMF9JT19TUEFDRQkoQ0ZHX1BDSTBfSU9fQkFTRSkKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU1BBQ0UJKENGR19QQ0kxX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TUEFDRQkoQ09ORklHX1NZU19QQ0kwX0lPX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMV9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMwNSw0OSArMzA1LDQ5IEBACiAgKi8KIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMFUgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMEwgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQwVSBDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVIENPTkZJR19TWVNfSUJBVDBVCiAKIC8qIGluaXQgcmFtICovCi0jZGVmaW5lIENGR19JQkFUMUwgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVSAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQogCiAvKiBQQ0kwLCBQQ0kxIG1lbW9yeSBzcGFjZSAoc3RhcnRpbmcgYXQgUENJMCBiYXNlLCBtYXBwZWQgaW4gb25lIEJBVCkgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTCBCQVRMX05PX0FDQ0VTUwotI2RlZmluZSBDRkdfSUJBVDJVIENGR19EQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAoQ0ZHX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDJVIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCBCQVRMX05PX0FDQ0VTUworI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSBDT05GSUdfU1lTX0RCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgKENPTkZJR19TWVNfUENJMF9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBHVCByZWdzLCBib290cm9tLCBhbGwgdGhlIGRldmljZXMsIFBDSSBJL08gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcpCi0jZGVmaW5lIENGR19JQkFUM1UgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUVV9WUyB8IEJBVFVfVlAgfCBCQVRVX0JMXzI1Nk0pCi0jZGVmaW5lIENGR19EQkFUM0wgKENGR19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQzVSBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVIChDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVIENPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4PDwyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDg8PDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkzCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMzAJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTMJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzAJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0VYVFJBX0ZMQVNIX0RFVklDRQlERVZJQ0UwIC8qIGV4dHJhIGZsYXNoIGF0IGRldmljZSAwICovCi0jZGVmaW5lIENGR19FWFRSQV9GTEFTSF9XSURUSAkyCS8qIDE2IGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVFJBX0ZMQVNIX0RFVklDRQlERVZJQ0UwIC8qIGV4dHJhIGZsYXNoIGF0IGRldmljZSAwICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUkFfRkxBU0hfV0lEVEgJMgkvKiAxNiBiaXQgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KQEAgLTM1Nyw5ICszNTcsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgYWxsIE1QQzc0eHggQ1BVcwkJICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMJCSAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM2Nyw3ICszNjcsNyBAQAogICogbG9vayBpbiBpbmNsdWRlLzc0eHhfN3h4LmggZm9yIHRoZSBkZWZpbmVzIHVzZWQgaGVyZQogICovCiAKLSNkZWZpbmUgQ0ZHX0wyCisjZGVmaW5lIENPTkZJR19TWVNfTDIKIAogI2lmZGVmIENPTkZJR183NTBDWAogI2RlZmluZSBMMl9JTklUCQkwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYWNhZGlhLmggYi9pbmNsdWRlL2NvbmZpZ3MvYWNhZGlhLmgKaW5kZXggMjlhOGViNi4uNTJjY2RiNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2FjYWRpYS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hY2FkaWEuaApAQCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgImFtY2MtY29tbW9uLmgiCiAKIC8qIERldGVjdCBBY2FkaWEgUExMIGlucHV0IGNsb2NrIGF1dG9tYXRpY2FsbHkgdmlhIENQTEQgYml0CQkqLwotI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAgICgoaW44KENGR19DUExEX0JBU0UgKyAwKSA9PSAweDBjKSA/IFwKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgICAoKGluOChDT05GSUdfU1lTX0NQTERfQkFTRSArIDApID09IDB4MGMpID8gXAogCQkJCTY2NjY2NjY2IDogMzMzMzMwMDApCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxCQkvKiBDYWxsIGJvYXJkX2Vhcmx5X2luaXRfZiAqLwpAQCAtNjYsMzEgKzY2LDMxIEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NQTERfQkFTRQkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9BRERSCQkweGQwMDAwMDAwCi0jZGVmaW5lIENGR19VU0JfSE9TVAkJMHhlZjYwMzAwMAkvKiBVU0IgT0hDSSAxLjEgY29udHJvbGxlcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX0JBU0UJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0FERFIJCTB4ZDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfSE9TVAkJMHhlZjYwMzAwMAkvKiBVU0IgT0hDSSAxLjEgY29udHJvbGxlcgkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCQkvKiBPQ00gYXMgaW5pdCByYW0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCQkvKiBPQ00gYXMgaW5pdCByYW0JKi8KIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhmODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDQwMDAJCQkvKiAxNksgb2Ygb25jaGlwIFNSQU0JCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSCS8qIGluc2lkZSBvZiBTUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweGY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDQwMDAJCQkvKiAxNksgb2Ygb25jaGlwIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJLyogaW5zaWRlIG9mIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJCS8qIHNpemUgZm9yIGluaXRpYWwgZGF0YQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCQkvKiBzaXplIGZvciBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCQkJLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJCTY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJNjkxMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC0xMDYsMjYgKzEwNiwyNiBAQAogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiAhZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpICYmICFkZWZpbmVkKENPTkZJR19OQU5EX1NQTCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgICAge0NGR19GTEFTSF9CQVNFfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCAgICB7Q09ORklHX1NZU19GTEFTSF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNlbHNlCi0jZGVmaW5lCUNGR19OT19GTEFTSAkJMQkvKiBObyBOT1Igb24gQWNhZGlhIHdoZW4gTkFORC1ib290aW5nCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogTm8gTk9SIG9uIEFjYWRpYSB3aGVuIE5BTkQtYm9vdGluZwkqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAgLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE1MSw2OCArMTUxLDY4IEBACiAgKiBzZXQgdXAuIFdoaWxlIHN0aWxsIHJ1bm5pbmcgZnJvbSBjYWNoZSwgSSBleHBlcmllbmNlZCBwcm9ibGVtcyBhY2Nlc3NpbmcKICAqIHRoZSBOQU5EIGNvbnRyb2xsZXIuCXNyIC0gMjAwNi0wOC0yNQogICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbgkJCSovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfRFNUCShDRkdfT0NNX0RBVEFfQUREUiArICgxNiA8PCAxMCkpIC8qIENvcHkgU1BMIGhlcmUqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyCSovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TVEFSVAlDRkdfTkFORF9VX0JPT1RfRFNUIC8qIFN0YXJ0IE5VQiBmcm9tIHRoaXMgYWRkcgkqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9ERUxUQQkoQ0ZHX05BTkRfQk9PVF9TUExfU1JDIC0gQ0ZHX05BTkRfQk9PVF9TUExfRFNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDCTB4ZmZmZmYwMDAJLyogU1BMIGxvY2F0aW9uCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RTVAkoQ09ORklHX1NZU19PQ01fREFUQV9BRERSICsgKDE2IDw8IDEwKSkgLyogQ29weSBTUEwgaGVyZSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU1RBUlQJQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QgLyogU3RhcnQgTlVCIGZyb20gdGhpcyBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9ERUxUQQkoQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQyAtIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1QpCiAKIC8qCiAgKiBEZWZpbmUgdGhlIHBhcnRpdGlvbmluZyBvZiB0aGUgTkFORCBjaGlwIChvbmx5IFJBTSBVLUJvb3QgaXMgbmVlZGVkIGhlcmUpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX09GRlMJKDE2IDw8IDEwKQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZQkqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU0laRQkoMzg0IDw8IDEwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTCSgxNiA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TSVpFCSgzODQgPDwgMTApCS8qIFNpemUgb2YgUkFNIFUtQm9vdCBpbWFnZQkqLwogCiAvKgogICogTm93IHRoZSBOQU5EIGNoaXAgaGFzIHRvIGJlIGRlZmluZWQgKG5vIGF1dG9kZXRlY3Rpb24gdXNlZCEpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9TSVpFCTUxMgkJLyogTkFORCBjaGlwIHBhZ2Ugc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkxPQ0tfU0laRQkoMTYgPDwgMTApCS8qIE5BTkQgY2hpcCBibG9jayBzaXplCQkqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX0NPVU5UCTMyCQkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudAkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFEX0JMT0NLX1BPUwk1CQkvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyCSovCi0jdW5kZWYgQ0ZHX05BTkRfNF9BRERSX0NZQ0xFCQkJLyogTm8gZm91cnRoIGFkZHIgdXNlZCAoPD0zMk1CKQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFCTUxMgkJLyogTkFORCBjaGlwIHBhZ2Ugc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUJKDE2IDw8IDEwKQkvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfQ09VTlQJMzIJCS8qIE5BTkQgY2hpcCBwYWdlIGNvdW50CQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFEX0JMT0NLX1BPUwk1CQkvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyCSovCisjdW5kZWYgQ09ORklHX1NZU19OQU5EXzRfQUREUl9DWUNMRQkJCS8qIE5vIGZvdXJ0aCBhZGRyIHVzZWQgKDw9MzJNQikJKi8KIAotI2RlZmluZSBDRkdfTkFORF9FQ0NTSVpFCTI1NgotI2RlZmluZSBDRkdfTkFORF9FQ0NCWVRFUwkzCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NURVBTCShDRkdfTkFORF9QQUdFX1NJWkUgLyBDRkdfTkFORF9FQ0NTSVpFKQotI2RlZmluZSBDRkdfTkFORF9PT0JTSVpFCTE2Ci0jZGVmaW5lIENGR19OQU5EX0VDQ1RPVEFMCShDRkdfTkFORF9FQ0NCWVRFUyAqIENGR19OQU5EX0VDQ1NURVBTKQotI2RlZmluZSBDRkdfTkFORF9FQ0NQT1MJCXswLCAxLCAyLCAzLCA2LCA3fQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTCShDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFIC8gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9PT0JTSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NUT1RBTAkoQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTICogQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDUE9TCQl7MCwgMSwgMiwgMywgNiwgN30KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTkFORAogLyoKICAqIEZvciBOQU5EIGJvb3RpbmcgdGhlIGVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHRoZSBVLUJvb3QgaW1hZ2UuIFBsZWFzZSB0YWtlCiAgKiBsb29rIGF0IHRoZSBmaWxlIGJvYXJkL2FtY2Mvc2VxdW9pYS91LWJvb3QtbmFuZC5sZHMgZm9yIGRldGFpbHMuCiAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDRkdfTkFORF9CTE9DS19TSVpFCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ0ZHX05BTkRfVV9CT09UX09GRlMgKyBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMgKyBDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQgKyBDT05GSUdfRU5WX1NJWkUpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkFNIChDUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01CWVRFU19SQU0JCTY0CQkvKiA2NE1CCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfUkFNCQk2NAkJLyogNjRNQgkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAvKiBJMkMgU1lTTU9OIChMTTc1LCBBRDc0MTQgaXMgYWxtb3N0IGNvbXBhdGlibGUpCQkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9MTTc1CQkxCQkvKiBPTiBTZW1pJ3MgTE03NQkqLwogI2RlZmluZSBDT05GSUdfRFRUX0FENzQxNAkxCQkvKiB1c2UgQUQ3NDE0CQkqLwogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJezB9CQkvKiBTZW5zb3IgYWRkcmVzc2VzCSovCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAJNzAKLSNkZWZpbmUgQ0ZHX0RUVF9MT1dfVEVNUAktMzAKLSNkZWZpbmUgQ0ZHX0RUVF9IWVNURVJFU0lTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJMwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFdGhlcm5ldApAQCAtMjYxLDY0ICsyNjEsNjQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5BTkQgRkxBU0gKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCShDRkdfTkFORF9BRERSICsgQ0ZHX05BTkRfQ1MpCi0jZGVmaW5lIENGR19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJKENPTkZJR19TWVNfTkFORF9BRERSICsgQ09ORklHX1NZU19OQU5EX0NTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0VMRUNUX0RFVklDRSAgMQkvKiBuYW5kIGRyaXZlciBzdXBwb3J0cyBtdXRpcGwuIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2lmICFkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkgJiYgIWRlZmluZWQoQ09ORklHX05BTkRfU1BMKQotI2RlZmluZSBDRkdfTkFORF9DUwkJMworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTMKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDMzMzcyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhmZTBiYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMzMzNzIwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhmZTBiYzAwMAogCiAvKiBNZW1vcnkgQmFuayAzIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkoQ0ZHX05BTkRfQUREUiB8IDB4MWMwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxODAwM2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkoQ09ORklHX1NZU19OQU5EX0FERFIgfCAweDFjMDAwKQogCiAvKiBKdXN0IGluaXRpYWwgY29uZmlndXJhdGlvbiBmb3IgQ1JBTS4gV2lsbCBiZSBjaGFuZ2VkIGluIG1lbW9yeS5jIHRvIHN5bmMgbW9kZSovCiAvKiBNZW1vcnkgQmFuayAxIChDUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDMwNDAwYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHgwMDBiYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMzA0MDBjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHgwMDBiYzAwMAogCiAvKiBNZW1vcnkgQmFuayAyIChDUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDMwNDAwYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHgwMjBiYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMzA0MDBjMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHgwMjBiYzAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX05BTkRfQ1MJCTAJCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMAkJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3gJKi8KIC8qIE1lbW9yeSBCYW5rIDAgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX05BTkRfQUREUiB8IDB4MWMwMDApCiAKIC8qCiAgKiBXaGVuIE5BTkQtYm9vdGluZyB0aGUgQ1JBTSBFQkMgc2V0dXAgbXVzdCBiZSBkb25lIGluIHN5bmMgbW9kZSwgc2luY2UgdGhlCiAgKiBOQU5ELVNQTCBhbHJlYWR5IGluaXRpYWxpemVkIHRoZSBDUkFNIGFuZCBFQkMgdG8gc3luYyBtb2RlLgogICovCiAvKiBNZW1vcnkgQmFuayAxIChDUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OUMwMjAxQzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHgwMDBiYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHg5QzAyMDFDMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHgwMDBiYzAwMAogCiAvKiBNZW1vcnkgQmFuayAyIChDUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4OUMwMjAxQzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHgwMjBiYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHg5QzAyMDFDMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHgwMjBiYzAwMAogI2VuZGlmCiAKIC8qIE1lbW9yeSBCYW5rIDQgKENQTEQpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUAkJMHgwNDAwNjAwMAotI2RlZmluZSBDRkdfRUJDX1BCNENSCQkoQ0ZHX0NQTERfQkFTRSB8IDB4MTgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDA0MDA2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkoQ09ORklHX1NZU19DUExEX0JBU0UgfCAweDE4MDAwKQogCi0jZGVmaW5lIENGR19FQkNfQ0ZHCQkweGY4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX0NGRwkJMHhmODQwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBHUElPIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfR1BJT19DUkFNX0NMSwk4Ci0jZGVmaW5lIENGR19HUElPX0NSQU1fV0FJVAk5CQkvKiBHUElPLUluCQkqLwotI2RlZmluZSBDRkdfR1BJT19DUkFNX0FEVgkxMAotI2RlZmluZSBDRkdfR1BJT19DUkFNX0NSRQkoMzIgKyAyMSkJLyogR1BJTy1PdXQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19DUkFNX0NMSwk4CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19DUkFNX1dBSVQJOQkJLyogR1BJTy1JbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0NSQU1fQURWCTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19DUkFNX0NSRQkoMzIgKyAyMSkJLyogR1BJTy1PdXQJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPXzAgc2V0dXAgKFBQQzQwNUVaIHNwZWNpZmljKQpAQCAtMzQwLDEzICszNDAsMTMgQEAKICAqIEdQSU8wWzI4LTMwXQktIFRyYWNlIE91dHB1dHMgLyBQV00gSW5wdXRzCiAgKiBHUElPMFszMV0JLSBQV01fOCBJL08KICAqLwotI2RlZmluZSBDRkdfR1BJTzBfVENSCQkweEMwQTAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9PU1JMCQkweDUwMDA0NDAwCi0jZGVmaW5lIENGR19HUElPMF9PU1JICQkweDAyMDAwMDU1Ci0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgwMDAwMTAwMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwNTUKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkwJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkgJCTB4MDAwMDAwNTUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4QzBBMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDUwMDA0NDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT1NSSAkJMHgwMjAwMDA1NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX0lTUjFMCQkweDAwMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwNTUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDA1NQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgR1BJT18xIHNldHVwIChQUEM0MDVFWiBzcGVjaWZpYykKQEAgLTM2MiwxMiArMzYyLDEyIEBACiAgKiBHUElPMVsxNl0JLSBTUElfU1NfMV9OIE91dHB1dAogICogR1BJTzFbMTctMjBdCS0gVHJhY2UgT3V0cHV0L0V4dGVybmFsIEludGVycnVwdHMgSVJRMCAtIElSUTMgaW5wdXRzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8xX1RDUgkJMHhGRkZGODQxNAotI2RlZmluZSBDRkdfR1BJTzFfT1NSTAkJMHg0MDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzFfT1NSSAkJMHg1NTQ1NTU1NQotI2RlZmluZSBDRkdfR1BJTzFfSVNSMUwJCTB4MTU1NTU0NDUKLSNkZWZpbmUgQ0ZHX0dQSU8xX0lTUjFICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMV9UU1JMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMV9UU1JICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfVENSCQkweEZGRkY4NDE0CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfT1NSTAkJMHg0MDAwMDExMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX09TUkgJCTB4NTU0NTU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMV9JU1IxTAkJMHgxNTU1NTQ0NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX0lTUjFICQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzFfVFNSTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8xX1RTUkgJCTB4MDAwMDAwMDAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hY3R1eDEuaCBiL2luY2x1ZGUvY29uZmlncy9hY3R1eDEuaAppbmRleCBlYzFkNDY5Li5hM2IwNGIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYWN0dXgxLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2FjdHV4MS5oCkBAIC0zOSw3ICszOSw3IEBACiAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0NQVUlORk8JCTEKICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQk9BUkRJTkZPCTEKIAotI2RlZmluZSBDRkdfSVhQNDI1X0NPTlNPTEUJCUlYUDQyNV9VQVJUMgorI2RlZmluZSBDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFCQlJWFA0MjVfVUFSVDIKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkJMTE1MjAwCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJCTMKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KQEAgLTUyLDkgKzUyLDkgQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCQkxMjgKIAogLyogYWxsb3cgdG8gb3ZlcndyaXRlIHNlcmlhbCBhbmQgZXRoYWRkciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQpAQCAtODAsMzAgKzgwLDMwIEBACiAjZW5kaWYKIAogLyogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucyAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiPT4gIgogLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTI1NgogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQkJQ09ORklHX1NZU19DQlNJWkUKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJMHgwMDgwMDAwMAogCiAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgogLyogc3BlYyBzYXlzIDY2LjY2NiBNSHosIGJ1dCBpdCBhcHBlYXJzIHRvIGJlIDMzICovCi0jZGVmaW5lIENGR19IWgkJCQkzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMzMzMzMzMwogCiAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJCTB4MDAwMTAwMDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQkJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLAlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwJXAogCQkJCQkgIDExNTIwMCwgMjMwNDAwIH0KICNkZWZpbmUgQ09ORklHX1NFUklBTF9SVFNfQUNUSVZFCTEKIApAQCAtMTE4LDU1ICsxMTgsNTUgQEAKICNlbmRpZgogCiAvKiBFeHBhbnNpb24gYnVzIHNldHRpbmdzICovCi0jZGVmaW5lIENGR19FWFBfQ1MwCQkJMHhiZDExMzg0MgorI2RlZmluZSBDT05GSUdfU1lTX0VYUF9DUzAJCQkweGJkMTEzODQyCiAKIC8qIFNEUkFNIHNldHRpbmdzICovCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCQkweDAwMDAwMDAwCiAKICNpZiBDT05GSUdfQUNUVVgxXzMyTUIKLSMgZGVmaW5lIENGR19TRFJfQ09ORklHCQkJMHgxOAorIyBkZWZpbmUgQ09ORklHX1NZU19TRFJfQ09ORklHCQkJMHgxOAogIyBkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJCTB4MDIwMDAwMDAKLSMgZGVmaW5lIENGR19TRFJBTV9SRUZSRVNIX0NOVAkJMHg4MWEKLSMgZGVmaW5lIENGR19TRFJfTU9ERV9DT05GSUcJCTB4MQotIyBkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJCTB4MDIwMDAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUkVGUkVTSF9DTlQJCTB4ODFhCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUl9NT0RFX0NPTkZJRwkJMHgxCisjIGRlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJCTB4MDIwMDAwMDAKICNlbHNlIC8qIDE2TUIgU0RSQU0gKi8KLSMgZGVmaW5lIENGR19TRFJfQ09ORklHCQkJMHgzQQorIyBkZWZpbmUgQ09ORklHX1NZU19TRFJfQ09ORklHCQkJMHgzQQogIyBkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJCTB4MDEwMDAwMDAKLSMgZGVmaW5lIENGR19TRFJBTV9SRUZSRVNIX0NOVAkJMHg4MWEKLSMgZGVmaW5lIENGR19TRFJfTU9ERV9DT05GSUcJCTB4MQotIyBkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJCTB4MDEwMDAwMDAKKyMgZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUkVGUkVTSF9DTlQJCTB4ODFhCisjIGRlZmluZSBDT05GSUdfU1lTX1NEUl9NT0RFX0NPTkZJRwkJMHgxCisjIGRlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJCTB4MDEwMDAwMDAKICNlbmRpZgogCiAvKiBGTEFTSCBvcmdhbml6YXRpb24gKi8KICNpZiBDT05GSUdfQUNUVVgxX0ZMQVNIMlgyCi0jIGRlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkyCisjIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMgogLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jIGRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTQwCisjIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQk0MAogIyBkZWZpbmUgUEhZU19GTEFTSF8xCQkJMHg1MDAwMDAwMAogIyBkZWZpbmUgUEhZU19GTEFTSF8yCQkJMHg1MDIwMDAwMAotIyBkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJCXsgUEhZU19GTEFTSF8xLCBQSFlTX0ZMQVNIXzIgfQorIyBkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCQl7IFBIWVNfRkxBU0hfMSwgUEhZU19GTEFTSF8yIH0KICNlbmRpZgogI2lmIENPTkZJR19BQ1RVWDFfRkxBU0gxWDgKLSMgZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKKyMgZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCiAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSMgZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMTQwCisjIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxNDAKICMgZGVmaW5lIFBIWVNfRkxBU0hfMQkJCTB4NTAwMDAwMDAKLSMgZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCQl7IFBIWVNfRkxBU0hfMSB9CisjIGRlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJCXsgUEhZU19GTEFTSF8xIH0KICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkJKDI1NiA8PCAxMCkKIAogLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKIC8qIG5vIGJ5dGUgd3JpdGVzIG9uIElYUDR4eCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICQlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV8xNkJJVAogLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAvKiBFdGhlcm5ldCAqLwogCkBAIC0xODAsNyArMTgwLDcgQEAKIC8qIE1JSSBQSFkgbWFuYWdlbWVudCAqLwogI2RlZmluZSBDT05GSUdfTUlJCQkJMQogLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCQkxNgogI2RlZmluZSBDT05GSUdfUkVTRVRfUEhZX1IJCTEKIAogI2RlZmluZSBDT05GSUdfQ01EX0RIQ1AKQEAgLTE5Niw3ICsxOTYsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVFBfSE9TVE5BTUUKIAogLyogQ2FjaGUgQ29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJCTMyCiAKIC8qCiAgKiBlbnZpcm9ubWVudCBvcmdhbml6YXRpb246CkBAIC0yMDUsNyArMjA1LDcgQEAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDIwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKFBIWVNfRkxBU0hfMSArIDB4NDAwMCkKLSNkZWZpbmUgQ0ZHX1VTRV9QUENFTlYJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCTEKIAogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTIFwKIAkibXRkPUlYUDRYWC1GbGFzaC4wOjI1NmsodWJvb3QpLDY0ayh1Y29kZSksMTE1MmsobGludXgpLC0ocm9vdClcMCIgXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2FjdHV4Mi5oIGIvaW5jbHVkZS9jb25maWdzL2FjdHV4Mi5oCmluZGV4IGEzZjVhNGEuLjdlNmU4ZjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hY3R1eDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYWN0dXgyLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQ1BVSU5GTwkJMQogI2RlZmluZSBDT05GSUdfRElTUExBWV9CT0FSRElORk8JMQogCi0jZGVmaW5lIENGR19JWFA0MjVfQ09OU09MRQkJSVhQNDI1X1VBUlQyCisjZGVmaW5lIENPTkZJR19TWVNfSVhQNDI1X0NPTlNPTEUJCUlYUDQyNV9VQVJUMgogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCQkxMTUyMDAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkJNQogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwpAQCAtNDMsOSArNDMsOSBAQAogI3VuZGVmIENPTkZJR19VU0VfSVJRCiAKIC8qIFNpemUgb2YgbWFsbG9jKCkgcG9vbCAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCQkxMjgKIAogLyogYWxsb3cgdG8gb3ZlcndyaXRlIHNlcmlhbCBhbmQgZXRoYWRkciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQpAQCAtNzEsMzAgKzcxLDMwIEBACiAjZW5kaWYKIAogLyogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucyAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiPT4gIgogLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTI1NgogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQkJQ09ORklHX1NZU19DQlNJWkUKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJMHgwMDgwMDAwMAogCiAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgogLyogc3BlYyBzYXlzIDY2LjY2NiBNSHosIGJ1dCBpdCBhcHBlYXJzIHRvIGJlIDMzICovCi0jZGVmaW5lIENGR19IWgkJCQkzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMzMzMzMzMwogCiAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJCTB4MDAwMTAwMDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQkJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgXAogCQkJCQkgIDExNTIwMCwgMjMwNDAwIH0KICNkZWZpbmUgQ09ORklHX1NFUklBTF9SVFNfQUNUSVZFCTEKIApAQCAtMTA5LDM5ICsxMDksMzkgQEAKICNlbmRpZgogCiAvKiBFeHBhbnNpb24gYnVzIHNldHRpbmdzICovCi0jZGVmaW5lIENGR19FWFBfQ1MwCQkJMHhiZDExMzA0MgorI2RlZmluZSBDT05GSUdfU1lTX0VYUF9DUzAJCQkweGJkMTEzMDQyCiAKIC8qIFNEUkFNIHNldHRpbmdzICovCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCQkweDAwMDAwMDAwCiAKIC8qIDE2TUIgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NEUl9DT05GSUcJCQkweDNBCisjZGVmaW5lIENPTkZJR19TWVNfU0RSX0NPTkZJRwkJCTB4M0EKICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJCTB4MDEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1JFRlJFU0hfQ05UCQkweDgxYQotI2RlZmluZSBDRkdfU0RSX01PREVfQ09ORklHCQkweDEKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SRUZSRVNIX0NOVAkJMHg4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJfTU9ERV9DT05GSUcJCTB4MQorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJCTB4MDEwMDAwMDAKIAogLyogRkxBU0ggb3JnYW5pemF0aW9uICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEKIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTE0MAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxNDAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkJMHg1MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAkJeyBQSFlTX0ZMQVNIXzEgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJCXsgUEhZU19GTEFTSF8xIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkJKDI1NiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJCSgyNTYgPDwgMTApCiAKIC8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCiAvKiBubyBieXRlIHdyaXRlcyBvbiBJWFA0eHggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzE2QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICQlGTEFTSF9DRklfMTZCSVQKIAogLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAvKiBFdGhlcm5ldCAqLwogCkBAIC0xNTUsNyArMTU1LDcgQEAKIC8qIE1JSSBQSFkgbWFuYWdlbWVudCAqLwogI2RlZmluZSBDT05GSUdfTUlJCQkJMQogLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCQkxNgogI2RlZmluZSBDT05GSUdfUkVTRVRfUEhZX1IJCTEKIC8qIGV0aGVybmV0IHN3aXRjaCBjb25uZWN0ZWQgdG8gTUlJIHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX01JSV9FVEhTV0lUQ0gJCTEKQEAgLTE3Myw3ICsxNzMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVFBfSE9TVE5BTUUKIAogLyogQ2FjaGUgQ29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJCTMyCiAKIC8qCiAgKiBlbnZpcm9ubWVudCBvcmdhbml6YXRpb246CkBAIC0xODIsNyArMTgyLDcgQEAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDIwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKFBIWVNfRkxBU0hfMSArIDB4NDAwMCkKLSNkZWZpbmUgQ0ZHX1VTRV9QUENFTlYJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCTEKIAogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCQlcCiAJIm10ZD1JWFA0WFgtRmxhc2guMDoyNTZrKHVib290KSw2NGsodWNvZGUpLDExNTJrKGxpbnV4KSwtKHJvb3QpXDAiIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hY3R1eDMuaCBiL2luY2x1ZGUvY29uZmlncy9hY3R1eDMuaAppbmRleCBmYzJkMDJmLi4zZjQyZWQ0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYWN0dXgzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2FjdHV4My5oCkBAIC0zMiw3ICszMiw3IEBACiAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0NQVUlORk8JCTEKICNkZWZpbmUgQ09ORklHX0RJU1BMQVlfQk9BUkRJTkZPCTEKIAotI2RlZmluZSBDRkdfSVhQNDI1X0NPTlNPTEUJCUlYUDQyNV9VQVJUMgorI2RlZmluZSBDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFCQlJWFA0MjVfVUFSVDIKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkJMTE1MjAwCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJCTMKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KQEAgLTQzLDkgKzQzLDkgQEAKICN1bmRlZiBDT05GSUdfVVNFX0lSUQogCiAvKiBTaXplIG9mIG1hbGxvYygpIHBvb2wgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkJMTI4CiAKIC8qIGFsbG93IHRvIG92ZXJ3cml0ZSBzZXJpYWwgYW5kIGV0aGFkZHIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKQEAgLTY5LDMwICs2OSwzMCBAQAogI2VuZGlmCiAKIC8qIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkJIj0+ICIKIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CiAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJCUNGR19DQlNJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJCUNPTkZJR19TWVNfQ0JTSVpFCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCTB4MDA4MDAwMDAKIAogLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgorI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoKIC8qIHNwZWMgc2F5cyA2Ni42NjYgTUh6LCBidXQgaXQgYXBwZWFycyB0byBiZSAzMyAqLwotI2RlZmluZSBDRkdfSFoJCQkJMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTMzMzMzMzMKIAogLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDAwMDEwMDAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIFwKIAkJCQkJICAxMTUyMDAsIDIzMDQwMCB9CiAjZGVmaW5lIENPTkZJR19TRVJJQUxfUlRTX0FDVElWRQkxCiAKQEAgLTEwOCwzOSArMTA4LDM5IEBACiAjZW5kaWYKIAogLyogRXhwYW5zaW9uIGJ1cyBzZXR0aW5ncyAqLwotI2RlZmluZSBDRkdfRVhQX0NTMAkJCTB4YmQxMTM0NDIKKyNkZWZpbmUgQ09ORklHX1NZU19FWFBfQ1MwCQkJMHhiZDExMzQ0MgogCiAvKiBTRFJBTSBzZXR0aW5ncyAqLwogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkJMQogI2RlZmluZSBQSFlTX1NEUkFNXzEJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkJMHgwMDAwMDAwMAogCiAvKiAxNk1CIFNEUkFNICovCi0jZGVmaW5lIENGR19TRFJfQ09ORklHCQkJMHgzQQorI2RlZmluZSBDT05GSUdfU1lTX1NEUl9DT05GSUcJCQkweDNBCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9SRUZSRVNIX0NOVAkJMHg4MWEKLSNkZWZpbmUgQ0ZHX1NEUl9NT0RFX0NPTkZJRwkJMHgxCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUkVGUkVTSF9DTlQJCTB4ODFhCisjZGVmaW5lIENPTkZJR19TWVNfU0RSX01PREVfQ09ORklHCQkweDEKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCQkweDAxMDAwMDAwCiAKIC8qIEZMQVNIIG9yZ2FuaXphdGlvbiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCiAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkxNDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMTQwCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJCTB4NTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJCXsgUEhZU19GTEFTSF8xIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCQl7IFBIWVNfRkxBU0hfMSB9CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCQkoMjU2IDw8IDEwKQogCiAvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgogLyogbm8gYnl0ZSB3cml0ZXMgb24gSVhQNHh4ICovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV8xNkJJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzE2QklUCiAKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogLyogRXRoZXJuZXQgKi8KIApAQCAtMTU1LDcgKzE1NSw3IEBACiAvKiBNSUkgUEhZIG1hbmFnZW1lbnQgKi8KICNkZWZpbmUgQ09ORklHX01JSQkJCTEKIC8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkJMTYKICNkZWZpbmUgQ09ORklHX1JFU0VUX1BIWV9SCQkxCiAvKiBldGhlcm5ldCBzd2l0Y2ggY29ubmVjdGVkIHRvIE1JSSBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19NSUlfRVRIU1dJVENICQkxCkBAIC0xNzMsNyArMTczLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RQX0hPU1ROQU1FCiAKIC8qIENhY2hlIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCQkzMgogCiAvKgogICogZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uOgpAQCAtMTgyLDcgKzE4Miw3IEBACiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJMHgyMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShQSFlTX0ZMQVNIXzEgKyAweDQwMDApCi0jZGVmaW5lIENGR19VU0VfUFBDRU5WCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkxCiAKICNkZWZpbmUgQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXAogCSJtdGQ9SVhQNFhYLUZsYXNoLjA6MjU2ayh1Ym9vdCksNjRrKHVjb2RlKSwxMTUyayhsaW51eCksLShyb290KVwwIiBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYWN0dXg0LmggYi9pbmNsdWRlL2NvbmZpZ3MvYWN0dXg0LmgKaW5kZXggODNiZDdmNS4uM2NmMWIyMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2FjdHV4NC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hY3R1eDQuaApAQCAtMzIsNyArMzIsNyBAQAogI2RlZmluZSBDT05GSUdfRElTUExBWV9DUFVJTkZPCQkxCiAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0JPQVJESU5GTwkxCiAKLSNkZWZpbmUgQ0ZHX0lYUDQyNV9DT05TT0xFCQlJWFA0MjVfVUFSVDEKKyNkZWZpbmUgQ09ORklHX1NZU19JWFA0MjVfQ09OU09MRQkJSVhQNDI1X1VBUlQxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJCTExNTIwMAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCQkzCiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCkBAIC00Myw5ICs0Myw5IEBACiAjdW5kZWYgQ09ORklHX1VTRV9JUlEKIAogLyogU2l6ZSBvZiBtYWxsb2MoKSBwb29sICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJCTEyOAogCiAvKiBhbGxvdyB0byBvdmVyd3JpdGUgc2VyaWFsIGFuZCBldGhhZGRyICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCkBAIC02OCwzMCArNjgsMzAgQEAKICNlbmRpZgogCiAvKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zICovCi0jZGVmaW5lIENGR19MT05HSEVMUAotI2RlZmluZSBDRkdfUFJPTVBUCQkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSI9PiAiCiAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCQkxNgogLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCQlDRkdfQ0JTSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCQlDT05GSUdfU1lTX0NCU0laRQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQkweDAwNDAwMDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweDAwODAwMDAwCiAKIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoKKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCiAvKiBzcGVjIHNheXMgNjYuNjY2IE1IeiwgYnV0IGl0IGFwcGVhcnMgdG8gYmUgMzMgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJCTMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkzMzMzMzMzCiAKIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJMHgwMDAxMDAwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCBcCiAJCQkJCSAgMTE1MjAwLCAyMzA0MDAgfQogI2RlZmluZSBDT05GSUdfU0VSSUFMX1JUU19BQ1RJVkUJMQogCkBAIC0xMDYsNDQgKzEwNiw0NCBAQAogI2VuZGlmCiAKIC8qIEV4cGFuc2lvbiBidXMgc2V0dGluZ3MgKi8KLSNkZWZpbmUgQ0ZHX0VYUF9DUzAJCQkweGJkMTEzMDAzCisjZGVmaW5lIENPTkZJR19TWVNfRVhQX0NTMAkJCTB4YmQxMTMwMDMKIAogLyogU0RSQU0gc2V0dGluZ3MgKi8KICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJCTEKICNkZWZpbmUgUEhZU19TRFJBTV8xCQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRQkJCTB4MDAwMDAwMDAKIAogLyogMzJNQiBTRFJBTSAqLwotI2RlZmluZSBDRkdfU0RSX0NPTkZJRwkJCTB4MTgKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJfQ09ORklHCQkJMHgxOAogI2RlZmluZSBQSFlTX1NEUkFNXzFfU0laRQkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fUkVGUkVTSF9DTlQJCTB4ODFhCi0jZGVmaW5lIENGR19TRFJfTU9ERV9DT05GSUcJCTB4MQotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfQ05UCQkweDgxYQorI2RlZmluZSBDT05GSUdfU1lTX1NEUl9NT0RFX0NPTkZJRwkJMHgxCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkJMHgwMjAwMDAwMAogCiAvKiBGTEFTSCBvcmdhbml6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMgogLyogbWF4ICMgb2Ygc2VjdG9ycyBwZXIgY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTcwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTcwCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJCTB4NTAwMDAwMDAKICNkZWZpbmUgUEhZU19GTEFTSF8yCQkJMHg1MTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAkJeyBQSFlTX0ZMQVNIXzEsIFBIWVNfRkxBU0hfMiB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAkJeyBQSFlTX0ZMQVNIXzEsIFBIWVNfRkxBU0hfMiB9CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJCSgyNTIgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCQkoMjUyIDw8IDEwKQogCiAvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgogLyogYm9hcmQgcHJvdmlkZXMgaXRzIG93biBmbGFzaF9pbml0IGNvZGUgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kJCTEKIC8qIG5vIGJ5dGUgd3JpdGVzIG9uIElYUDR4eCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICQlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV8xNkJJVAogLyogU1NUIDM5VkYwMjAgZXRjLiBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19GTEFTSF9MRUdBQ1lfMjU2S3g4CTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MRUdBQ1lfMjU2S3g4CTEKIAogLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAvKiBFdGhlcm5ldCAqLwogCkBAIC0xNTgsNyArMTU4LDcgQEAKIC8qIE1JSSBQSFkgbWFuYWdlbWVudCAqLwogI2RlZmluZSBDT05GSUdfTUlJCQkJMQogLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCQkxNgogCiAjZGVmaW5lIENPTkZJR19DTURfREhDUAogI2RlZmluZSBDT05GSUdfQ01EX05FVApAQCAtMTczLDcgKzE3Myw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UUF9IT1NUTkFNRQogCiAvKiBDYWNoZSBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJMzIKIAogLyogZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uOiBvbmUgY29tcGxldGUgNGsgZmxhc2ggc2VjdG9yICovCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hZHM1MTIxLmggYi9pbmNsdWRlL2NvbmZpZ3MvYWRzNTEyMS5oCmluZGV4IGQ2ZjdlMDIuLmJiMzUyNWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hZHM1MTIxLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2FkczUxMjEuaApAQCAtNTksMzEgKzU5LDMxIEBACiAvKiBDT05GSUdfUENJIGlzIGRlZmluZWQgYXQgY29uZmlnIHRpbWUgKi8KIAogI2lmZGVmIENPTkZJR19BRFM1MTIxX1JFVjIKLSNkZWZpbmUgQ0ZHX01QQzUxMlhfQ0xLSU4JNjYwMDAwMDAJLyogaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1MTJYX0NMS0lOCTY2MDAwMDAwCS8qIGluIEh6ICovCiAjZWxzZQotI2RlZmluZSBDRkdfTVBDNTEyWF9DTEtJTgkzMzMzMzMzMwkvKiBpbiBIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzUxMlhfQ0xLSU4JMzMzMzMzMzMJLyogaW4gSHogKi8KICNkZWZpbmUgQ09ORklHX1BDSQogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkJLyogY2FsbCBib2FyZF9lYXJseV9pbml0X2YoKSAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKIAotI2RlZmluZSBDRkdfSU1NUgkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfRElVX0FERFIJCShDRkdfSU1NUisweDIxMDApCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RJVV9BRERSCQkoQ09ORklHX1NZU19JTU1SKzB4MjEwMCkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwICAgICAgLyogbWVtdGVzdCByZWdpb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwICAgICAgLyogbWVtdGVzdCByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAogCiAvKgogICogRERSIFNldHVwIC0gbWFudWFsbHkgc2V0IGFsbCBwYXJhbWV0ZXJzIGFzIHRoZXJlJ3Mgbm8gU1BEIGV0Yy4KICAqLwogI2lmZGVmIENPTkZJR19BRFM1MTIxX1JFVjIKLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkyNTYJCS8qIE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NJWkUJCTI1NgkJLyogTUIgKi8KICNlbHNlCi0jZGVmaW5lIENGR19ERFJfU0laRQkJNTEyCQkvKiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9TSVpFCQk1MTIJCS8qIE1CICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9CQVNFCQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9CQVNFCiAKIC8qIEREUiBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24KICAqCkBAIC0xMzAsMTAyICsxMzAsMTAyIEBACiAgKglbMDQ6MDBdIERSQU0gdFJQQQogICovCiAjaWZkZWYgQ09ORklHX0FEUzUxMjFfUkVWMgotI2RlZmluZSBDRkdfTUREUkNfU1lTX0NGRwkweEY4NjA0QTAwCi0jZGVmaW5lIENGR19NRERSQ19TWVNfQ0ZHX1JVTgkweEU4NjA0QTAwCi0jZGVmaW5lIENGR19NRERSQ19USU1FX0NGRzEJMHg1NEVDMTE2OAotI2RlZmluZSBDRkdfTUREUkNfVElNRV9DRkcyCTB4MzUyMTA4NjQKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19TWVNfQ0ZHCTB4Rjg2MDRBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19TWVNfQ0ZHX1JVTgkweEU4NjA0QTAwCisjZGVmaW5lIENPTkZJR19TWVNfTUREUkNfVElNRV9DRkcxCTB4NTRFQzExNjgKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19USU1FX0NGRzIJMHgzNTIxMDg2NAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01ERFJDX1NZU19DRkcJIDB4RkE4MDRBMDAKLSNkZWZpbmUgQ0ZHX01ERFJDX1NZU19DRkdfUlVOCSAweEVBODA0QTAwCi0jZGVmaW5lIENGR19NRERSQ19USU1FX0NGRzEJIDB4NjhFQzExNjgKLSNkZWZpbmUgQ0ZHX01ERFJDX1RJTUVfQ0ZHMgkgMHgzNDMxMDg2NAorI2RlZmluZSBDT05GSUdfU1lTX01ERFJDX1NZU19DRkcJIDB4RkE4MDRBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19TWVNfQ0ZHX1JVTgkgMHhFQTgwNEEwMAorI2RlZmluZSBDT05GSUdfU1lTX01ERFJDX1RJTUVfQ0ZHMQkgMHg2OEVDMTE2OAorI2RlZmluZSBDT05GSUdfU1lTX01ERFJDX1RJTUVfQ0ZHMgkgMHgzNDMxMDg2NAogI2VuZGlmCi0jZGVmaW5lIENGR19NRERSQ19TWVNfQ0ZHX0VOCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01ERFJDX1RJTUVfQ0ZHMAkweDAwMDAzRDJFCi0jZGVmaW5lIENGR19NRERSQ19USU1FX0NGRzBfUlVOCTB4MDYxODNEMkUKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19TWVNfQ0ZHX0VOCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ19USU1FX0NGRzAJMHgwMDAwM0QyRQorI2RlZmluZSBDT05GSUdfU1lTX01ERFJDX1RJTUVfQ0ZHMF9SVU4JMHgwNjE4M0QyRQogCi0jZGVmaW5lIENGR19NSUNST05fTk9QCQkweDAxMzgwMDAwCi0jZGVmaW5lIENGR19NSUNST05fUENIR19BTEwJMHgwMTEwMDQwMAotI2RlZmluZSBDRkdfTUlDUk9OX0VNMgkJMHgwMTAyMDAwMAotI2RlZmluZSBDRkdfTUlDUk9OX0VNMwkJMHgwMTAzMDAwMAotI2RlZmluZSBDRkdfTUlDUk9OX0VOX0RMTAkweDAxMDEwMDAwCi0jZGVmaW5lIENGR19NSUNST05fUkZTSAkJMHgwMTA4MDAwMAotI2RlZmluZSBDRkdfTUlDUk9OX0lOSVRfREVWX09QCTB4MDEwMDA0MzIKLSNkZWZpbmUgQ0ZHX01JQ1JPTl9PQ0RfREVGQVVMVAkweDAxMDEwNzgwCisjZGVmaW5lIENPTkZJR19TWVNfTUlDUk9OX05PUAkJMHgwMTM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JQ1JPTl9QQ0hHX0FMTAkweDAxMTAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUlDUk9OX0VNMgkJMHgwMTAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JQ1JPTl9FTTMJCTB4MDEwMzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSUNST05fRU5fRExMCTB4MDEwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSUNST05fUkZTSAkJMHgwMTA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JQ1JPTl9JTklUX0RFVl9PUAkweDAxMDAwNDMyCisjZGVmaW5lIENPTkZJR19TWVNfTUlDUk9OX09DRF9ERUZBVUxUCTB4MDEwMTA3ODAKIAogLyogRERSIFByaW9yaXR5IE1hbmFnZXIgQ29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfTUREUkNHUlBfUE1fQ0ZHMQkweDAwMDc3Nzc3Ci0jZGVmaW5lIENGR19NRERSQ0dSUF9QTV9DRkcyCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0hJUFJJT19DRkcJMHgwMDAwMDAwMQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUMF9NVQkweEZGRUVERENDCi0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQwX01MCTB4QkJBQUFBQUEKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDFfTVUJMHg2NjY2NjY2NgotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUMV9NTAkweDU1NTU1NTU1Ci0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQyX01VCTB4NDQ0NDQ0NDQKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDJfTUwJMHg0NDQ0NDQ0NAotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUM19NVQkweDU1NTU1NTU1Ci0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQzX01MCTB4NTU1NTU1NTgKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDRfTVUJMHgxMTExMTExMQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUNF9NTAkweDExMTExMTIyCi0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQwX0FVCTB4YWFhYWFhYWEKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDBfQUwJMHhhYWFhYWFhYQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUMV9BVQkweDY2NjY2NjY2Ci0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQxX0FMCTB4NjY2NjY2NjYKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDJfQVUJMHgxMTExMTExMQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUMl9BTAkweDExMTExMTExCi0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQzX0FVCTB4MTExMTExMTEKLSNkZWZpbmUgQ0ZHX01ERFJDR1JQX0xVVDNfQUwJMHgxMTExMTExMQotI2RlZmluZSBDRkdfTUREUkNHUlBfTFVUNF9BVQkweDExMTExMTExCi0jZGVmaW5lIENGR19NRERSQ0dSUF9MVVQ0X0FMCTB4MTExMTExMTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9QTV9DRkcxCTB4MDAwNzc3NzcKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9QTV9DRkcyCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9ISVBSSU9fQ0ZHCTB4MDAwMDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQwX01VCTB4RkZFRUREQ0MKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQwX01MCTB4QkJBQUFBQUEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQxX01VCTB4NjY2NjY2NjYKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQxX01MCTB4NTU1NTU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQyX01VCTB4NDQ0NDQ0NDQKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQyX01MCTB4NDQ0NDQ0NDQKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQzX01VCTB4NTU1NTU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQzX01MCTB4NTU1NTU1NTgKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQ0X01VCTB4MTExMTExMTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQ0X01MCTB4MTExMTExMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQwX0FVCTB4YWFhYWFhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQwX0FMCTB4YWFhYWFhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQxX0FVCTB4NjY2NjY2NjYKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQxX0FMCTB4NjY2NjY2NjYKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQyX0FVCTB4MTExMTExMTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQyX0FMCTB4MTExMTExMTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQzX0FVCTB4MTExMTExMTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQzX0FMCTB4MTExMTExMTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQ0X0FVCTB4MTExMTExMTEKKyNkZWZpbmUgQ09ORklHX1NZU19NRERSQ0dSUF9MVVQ0X0FMCTB4MTExMTExMTEKIAogLyoKICAqIE5PUiBGTEFTSCBvbiB0aGUgTG9jYWwgQnVzCiAgKi8KICN1bmRlZiBDT05GSUdfQktVUF9GTEFTSAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiB1c2UgdGhlIENvbW1vbiBGbGFzaCBJbnRlcmZhY2UgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiB1c2UgdGhlIENGSSBkcml2ZXIgKi8KICNpZmRlZiBDT05GSUdfQktVUF9GTEFTSAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCS8qIG1heCBmbGFzaCBzaXplIGluIGJ5dGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAkvKiBtYXggZmxhc2ggc2l6ZSBpbiBieXRlcyAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggZmxhc2ggc2l6ZSBpbiBieXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0ggICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IGZsYXNoIHNpemUgaW4gYnl0ZXMgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7Q0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJe0NPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmIENGR19GTEFTSF9DSEVDS1NVTQorI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIAogLyoKICAqIENQTEQgcmVnaXN0ZXJzIGFyZWEgaXMgcmVhbGx5IG9ubHkgMzIgYnl0ZXMgaW4gc2l6ZSwgYnV0IHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBMUAogICogd2luZG93IGlzIDY0S0IKICAqLwotI2RlZmluZSBDRkdfQ1BMRF9CQVNFCQkweDgyMDAwMDAwCi0jZGVmaW5lIENGR19DUExEX1NJWkUJCTB4MDAwMTAwMDAJLyogNjQgS0IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX0JBU0UJCTB4ODIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUExEX1NJWkUJCTB4MDAwMTAwMDAJLyogNjQgS0IgKi8KIAotI2RlZmluZSBDRkdfU1JBTV9CQVNFCQkweDMwMDAwMDAwCi0jZGVmaW5lIENGR19TUkFNX1NJWkUJCTB4MDAwMjAwMDAJLyogMTI4IEtCICovCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9CQVNFCQkweDMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9TSVpFCQkweDAwMDIwMDAwCS8qIDEyOCBLQiAqLwogCi0jZGVmaW5lIENGR19DUzBfQ0ZHCQkweDA1MDU5MzEwCS8qIEFMRSBhY3RpdmUgbG93LCBkYXRhIHNpemUgNGJ5dGVzICovCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDA1MDU5MDEwCS8qIEFMRSBhY3RpdmUgbG93LCBkYXRhIHNpemUgMWJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX0NTX0FMRVRJTUlORwkweDAwMDAwMDA1CS8qIFVzZSBhbHRlcm5hdGl2ZSBDUyB0aW1pbmcgZm9yIENTMCBhbmQgQ1MyICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NGRwkJMHgwNTA1OTMxMAkvKiBBTEUgYWN0aXZlIGxvdywgZGF0YSBzaXplIDRieXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMl9DRkcJCTB4MDUwNTkwMTAJLyogQUxFIGFjdGl2ZSBsb3csIGRhdGEgc2l6ZSAxYnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTX0FMRVRJTUlORwkweDAwMDAwMDA1CS8qIFVzZSBhbHRlcm5hdGl2ZSBDUyB0aW1pbmcgZm9yIENTMCBhbmQgQ1MyICovCiAKIC8qIFVzZSBTUkFNIGZvciBpbml0aWFsIHN0YWNrICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19TUkFNX0JBU0UJCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfU1JBTV9TSVpFCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19TUkFNX0JBU0UJCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19TUkFNX1NJWkUJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMHgxMDAJCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4MTAwCQkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkJLyogU3RhcnQgb2YgbW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJCS8qIFN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCiAjaWZkZWYJQ09ORklHX0ZTTF9ESVVfRkIKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg2ICogMTAyNCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNiAqIDEwMjQgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAjZWxzZQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiAqIDEwMjQpCiAjZW5kaWYKIAogLyoKQEAgLTI0Miw3ICsyNDIsNyBAQAogI2Vycm9yIENPTkZJR19QU0NfQ09OU09MRSBtdXN0IGJlIDMKICNlbmRpZgogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAogI2RlZmluZSBDT05TT0xFX0ZJRk9fVFhfU0laRQlGSUZPQ19QU0MzX1RYX1NJWkUKQEAgLTI1Miw5ICsyNTIsOSBAQAogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMjY1LDE1ICsyNjUsMTUgQEAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICovCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JBU0UJMHhBMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCUNGR19QQ0lfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NTUlPX0JBU0UJKENGR19QQ0lfTUVNX0JBU0UgKyBDRkdfUENJX01FTV9TSVpFKQotI2RlZmluZSBDRkdfUENJX01NSU9fUEhZUwlDRkdfUENJX01NSU9fQkFTRQotI2RlZmluZSBDRkdfUENJX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSV9JT19CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJMHg4NDAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1NJWkUJCTB4MDEwMDAwMDAJLyogMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CQVNFCTB4QTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01NSU9fQkFTRQkoQ09ORklHX1NZU19QQ0lfTUVNX0JBU0UgKyBDT05GSUdfU1lTX1BDSV9NRU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJX01NSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NTUlPX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fUEhZUwkJMHg4NDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCS8qIDE2TSAqLwogCiAKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheSAqLwpAQCAtMjg3LDE5ICsyODcsMTkgQEAKICN1bmRlZiBDT05GSUdfU09GVF9JMkMJCQkvKiBzbyBkaXNhYmxlIGJpdC1iYW5nZWQgSTJDICovCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAjaWYgMAotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXt7MCwweDY5fX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJe3swLDB4Njl9fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwogI2VuZGlmCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCS8qIDE2LWJpdCBFRVBST00gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEF0bWVsOiBBVDI0QzMyQS0xMFRRLTIuNyAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogMTBtcyBvZiBkZWxheSAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDMyLUJ5dGUgUGFnZSBXcml0ZSBNb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgkvKiAxNi1iaXQgRUVQUk9NIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogQXRtZWw6IEFUMjRDMzJBLTEwVFEtMi43ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogMTBtcyBvZiBkZWxheSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiAzMi1CeXRlIFBhZ2UgV3JpdGUgTW9kZSAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMzE1LDE0ICszMTUsMTQgQEAKICAqIENvbmZpZ3VyZSBvbi1ib2FyZCBSVEMKICAqLwogI2RlZmluZSBDT05GSUdfUlRDX000MVQ2MgkJCS8qIHVzZSBNNDFUNjIgcnRjIHZpYSBpMiAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NjgJLyogYXQgYWRkcmVzcyAweDY4CQkqLwogCiAvKgogICogRW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIC8qIFRoaXMgaGFzIHRvIGJlIGEgbXVsdGlwbGUgb2YgdGhlIEZsYXNoIHNlY3RvciBzaXplICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNpZmRlZiBDT05GSUdfQktVUF9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIG9uZSBzZWN0b3IgKDI1NkspIGZvciBlbnYgKi8KQEAgLTMzNSw3ICszMzUsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KIAogI2luY2x1ZGUgPGNvbmZpZ19jbWRfZGVmYXVsdC5oPgogCkBAIC0zNTQsNTAgKzM1NCw1MCBAQAogI2VuZGlmCiAKIC8qCi0gKiBXYXRjaGRvZyB0aW1lb3V0ID0gQ0ZHX1dBVENIRE9HX1ZBTFVFICogNjU1MzYgLyBJUFMgY2xvY2suCi0gKiBGb3IgZXhhbXBsZSwgd2hlbiBJUFMgaXMgc2V0IHRvIDY2TUh6IGFuZCBDRkdfV0FUQ0hET0dfVkFMVUUgaXMgc2V0CisgKiBXYXRjaGRvZyB0aW1lb3V0ID0gQ09ORklHX1NZU19XQVRDSERPR19WQUxVRSAqIDY1NTM2IC8gSVBTIGNsb2NrLgorICogRm9yIGV4YW1wbGUsIHdoZW4gSVBTIGlzIHNldCB0byA2Nk1IeiBhbmQgQ09ORklHX1NZU19XQVRDSERPR19WQUxVRSBpcyBzZXQKICAqIHRvIDB4RkZGRiwgd2F0Y2hkb2cgdGltZW91dHMgYWZ0ZXIgYWJvdXQgNjRzLiBGb3IgZGV0YWlscyByZWZlcgogICogdG8gY2hhcHRlciAzNiBvZiB0aGUgTVBDNTEyMWUgUmVmZXJlbmNlIE1hbnVhbC4KICAqLwogLyogI2RlZmluZSBDT05GSUdfV0FUQ0hET0cgKi8JCS8qIGVuYWJsZSB3YXRjaGRvZyAqLwotI2RlZmluZSBDRkdfV0FUQ0hET0dfVkFMVUUgMHhGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfV0FUQ0hET0dfVkFMVUUgMHhGRkZGCiAKICAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjaWZkZWYgQ09ORklHX0NNRF9LR0RCCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyogQ2FjaGUgQ29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTMyNzY4Ci0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkzMjc2OAorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWZkZWYgQ09ORklHX0NNRF9LR0RCCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKmxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKmxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSwotI2RlZmluZSBDRkdfSElEMglISUQyX0hCRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkweDAwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJSElEMF9FTkFCTEVfTUFDSElORV9DSEVDSworI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJSElEMl9IQkUKIAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYWV2LmggYi9pbmNsdWRlL2NvbmZpZ3MvYWV2LmgKaW5kZXggMmRjYWE1OC4uMmI0ODI2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2Fldi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hZXYuaApAQCAtMzksNyArMzksNyBAQAogI2RlZmluZSBDT05GSUdfU1RLNTJYWAkJMQkvKiAuLi4gb24gYSBTVEs1MlhYIGJhc2UgYm9hcmQgKi8KICNkZWZpbmUgQ09ORklHX1NUSzUyWFhfUkVWMTAwCTEJLyogIGRlZmluZSBmb3IgcmV2aXNpb24gMTAwIGJhc2Vib2FyZHMgKi8KICNkZWZpbmUgQ09ORklHX0FFVkZJRk8JCTEKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCkBAIC01MSw3ICs1MSw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKICAqIFBDSSBNYXBwaW5nOgpAQCAtNzQsNyArNzQsNyBAQAogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCTEKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOCAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfTlM4MzgyWAkJMQogI2VuZGlmCS8qIENPTkZJR19BRVZGSUZPICovCiAKQEAgLTg0LDkgKzg0LDkgQEAKICNkZWZpbmUgQ09ORklHX0lTT19QQVJUSVRJT04KIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQykKIAogI2lmZGVmIENPTkZJR19QT1NUCiAvKiBwcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHBvc3Rfd29yZCBhdCBlbmQgb2Ygb24tY2hpcCBTUkFNICovCkBAIC0xMjksNyArMTI5LDcgQEAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkJLyogZGlzcGxheSBpbWFnZSB0aW1lc3RhbXBzICovCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkMwMDAwMDApCQkvKiBCb290IGxvdyAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZgogCiAvKgpAQCAtMTcyLDE3ICsxNzIsMTcgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCi0jaWYgZGVmaW5lZChDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLKQogLyoKICAqIFBDSSBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbgogICoKICAqIEFjdHVhbGx5IGEgUENJIENsb2NrIG9mIDY2IE1IeiBpcyBvbmx5IHNldCAoaW4gY3B1X2luaXQuYykgaWYKLSAqIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sKKyAqIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCiAgKiBvZiA2NiBNSHogeWV0IGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIGEgSVBCIEJ1cyBDbG9jayBvZiA2NiBNSHouCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLwogI2VuZGlmCiAKIC8qCkBAIC0xOTAsOSArMTkwLDkgQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwogI2lmZGVmIENPTkZJR19UUU01MjAwX1JFVjEwMAotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBmb3IgcmV2LiAxMDAgYm9hcmQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkxCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIGZvciByZXYuIDEwMCBib2FyZCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgZm9yIGFsbCBvdGhlciByZXZzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMiBmb3IgYWxsIG90aGVyIHJldnMgKi8KICNlbmRpZgogCiAvKgpAQCAtMjAxLDExICsyMDEsMTEgQEAKICAqIFBsZWFzZSBub3RpY2UsIHRoYXQgdGhlIHJlc3VsdGluZyBjbG9jayBmcmVxdWVuY3kgY291bGQgZGlmZmVyIGZyb20gdGhlCiAgKiBjb25maWd1cmVkIHZhbHVlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIEkyQyBjbG9jayBpcyBkZXJpdmVkIGZyb20gc3lzdGVtCiAgKiBjbG9jayBvdmVyIGEgZnJlcXVlbmN5IGRpdmlkZXIgd2l0aCBvbmx5IGEgZmV3IGRpdmlkZXIgdmFsdWVzLiBVLWJvb3QKLSAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ0ZHX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAorICogY2FsY3VsYXRlcyB0aGUgYmVzdCBhcHByb3hpbWF0aW9uIGZvciBDT05GSUdfU1lTX0kyQ19TUEVFRC4gSG93ZXZlciB0aGUgY2FsY3VsYXRlZAogICogYXBwcm94aW1hdGlvbiBhbGx3YXlzIGxpZXMgYmVsb3cgdGhlIGNvbmZpZ3VyZWQgdmFsdWUsIG5ldmVyIGFib3ZlLgogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbiBmb3Igb25ib2FyZCBFRVBST00gTTI0QzMyIChNMjRDNjQgc2hvdWxkIHdvcmsKQEAgLTIxMywzNCArMjEzLDM0IEBACiAgKiBFRVBST00gKDI0QzY0KSBpcyBvbiB0aGUgc2FtZSBJMkMgYWRkcmVzcyAoYnV0IG9uIG90aGVyIEkyQyBidXMpLCBzbyB0aGUKICAqIHNhbWUgY29uZmlndXJhdGlvbiBjb3VsZCBiZSB1c2VkLgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRSAvKiAweEZDMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJVEVYVF9CQVNFIC8qIDB4RkMwMDAwMDAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgaWYgbm8gbW9kdWxlIHZhcmlhbnQgaXMgc3BlemlmaWVkICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfQk9PVENTX1NUQVJUIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jdW5kZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0JPT1RDU19TVEFSVCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkvKiBub3Qgc3VwcG9ydGVkIHlldCBmb3IgQU1EICovCiAKLSNpZiAhZGVmaW5lZChDRkdfTE9XQk9PVCkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwNzYwMDAwICsgMHgwMDgwMDAwMCkKLSNlbHNlCS8qIENGR19MT1dCT09UICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKLSNlbmRpZgkvKiBDRkdfTE9XQk9PVCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTE9XQk9PVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCisjZWxzZQkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA2MDAwMCkKKyNlbmRpZgkvKiBDT05GSUdfU1lTX0xPV0JPT1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCiAJCQkJCSAgICg9IGNoaXAgc2VsZWN0cykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKIAogLyoKQEAgLTI1NSwzMiArMjU1LDMyIEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIE9OLUNoaXAgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMzE4LDcgKzMxOCw3IEBACiAgKiAgIEdQSU8gb24gUFNDNl8zIGlzIHVzZWQgaW4gcG9zdF9ob3RrZXlzX3ByZXNzZWQoKSB0byBlbmFibGUgZXh0ZW5kZWQgUE9TVAogICogICB0ZXN0cy4KICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4ODE1MDAwMTQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg4MTUwMDAxNAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KQEAgLTMyOCwzMCArMzI4LDMwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCiAvKiBFbmFibGUgYW4gYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdCAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCkBAIC0zNjMsMjIgKzM2MywyMiBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2lmZGVmIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjaWZkZWYgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA4REYzMCAvKiBmb3IgcGNpX2NsayAgPSA2NiBNSHogKi8KICNlbHNlCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0REYzMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUCiAKQEAgLTM4NiwyMyArMzg2LDIzIEBACiAgKiBTUkFNIC0gRG8gbm90IG1hcCBiZWxvdyAyIEdCIGluIGFkZHJlc3Mgc3BhY2UsIGJlY2F1c2UgdGhpcyBhcmVhIGlzIHVzZWQKICAqIGZvciBTRFJBTSBhdXRvc2l6aW5nLgogICovCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDgwMDAwCQkvKiA1MTIga0J5dGUgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9DRkcJCTB4MDAwNEQ5MzAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU0laRQkJMHg4MDAwMAkJLyogNTEyIGtCeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NGRwkJMHgwMDA0RDkzMAogCiAvKgogICogR3JhZmljIGNvbnRyb2xsZXIgLSBEbyBub3QgbWFwIGJlbG93IDIgR0IgaW4gYWRkcmVzcyBzcGFjZSwgYmVjYXVzZSB0aGlzCiAgKiBhcmVhIGlzIHVzZWQgZm9yIFNEUkFNIGF1dG9zaXppbmcuCiAgKi8KICNkZWZpbmUgU001MDFfRkJfQkFTRSAgICAgICAgICAgMHhFMDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX1NUQVJUICAgICAgICAgICAoU001MDFfRkJfQkFTRSkKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFICAgICAgICAgICAgMHg0MDAwMDAwICAgICAgIC8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19DUzFfQ0ZHICAgICAgICAgICAgIDB4OEY0OEZGNzAKLSNkZWZpbmUgU001MDFfTU1JT19CQVNFICAgICAgICAgQ0ZHX0NTMV9TVEFSVCArIDB4MDNFMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQgICAgICAgICAgIChTTTUwMV9GQl9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFICAgICAgICAgICAgMHg0MDAwMDAwICAgICAgIC8qIDY0IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRyAgICAgICAgICAgICAweDhGNDhGRjcwCisjZGVmaW5lIFNNNTAxX01NSU9fQkFTRSAgICAgICAgIENPTkZJR19TWVNfQ1MxX1NUQVJUICsgMHgwM0UwMDAwMAogCi0jZGVmaW5lIENGR19DU19CVVJTVCAgICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRSAgICAgICAgMHgzMzMzMzMxMSAgICAgIC8qIDEgZGVhZCBjeWNsZSBmb3IgZmxhc2ggYW5kIFNNNTAxICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QgICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFICAgICAgICAweDMzMzMzMzExICAgICAgLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYWxwci5oIGIvaW5jbHVkZS9jb25maWdzL2FscHIuaAppbmRleCA4YzRlYjU5Li4zMTU4NDEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYWxwci5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hbHByLmgKQEAgLTQwLDYzICs0MCw2MyBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZlMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhmZmZjMDAwMAkvKiBzdGFydCBvZiBtb25pdG9yCQkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QQ0lfTUVNU0laRQkJMHg0MDAwMDAwMAkvKiBzaXplIG9mIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UJMHhlMDAwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkJKi8KLSNkZWZpbmUgQ0ZHX0lTUkFNX0JBU0UJCTB4YzAwMDAwMDAJLyogaW50ZXJuYWwgU1JBTQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCQkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UxCUNGR19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTIJQ0ZHX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMwlDRkdfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZlMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4ZmZmYzAwMDAJLyogc3RhcnQgb2YgbW9uaXRvcgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lfTUVNU0laRQkJMHg0MDAwMDAwMAkvKiBzaXplIG9mIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZTAwMDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSVNSQU1fQkFTRQkJMHhjMDAwMDAwMAkvKiBpbnRlcm5hbCBTUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzCUNPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAogCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MzAwMDAwKQotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJICAgIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgzMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIGludGVybmFsIFNSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00gIDEKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIgICBDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgIENGR19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgMHgyMDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgIDEyOAkJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgICBDT05GSUdfU1lTX0lTUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgQ09ORklHX1NZU19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgIDB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgMTI4CQkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkgICAgKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24JKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgICgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkgICAgKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAjZGVmaW5lCUNPTkZJR19VQVJUMV9DT05TT0xFCQkvKiBkZWZpbmUgZm9yIHVhcnQxIGFzIGNvbnNvbGUJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogICAgIHszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICAgICAxCS8qIHVzZSBGTEFTSCBmb3IgZW52aXJvbm1lbnQgdmFycwkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCQkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xMDksNyArMTA5LDcgQEAKICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQkJLyogRG9uJ3QgdXNlIFNQRCBFRVBST00gZm9yIHNldHVwCSovCiAjZGVmaW5lIENPTkZJR19TRFJBTV9CQU5LMAkxCS8qIGluaXQgb25ib2FyZCBERFIgU0RSQU0gYmFuayAwCSovCiAjdW5kZWYgQ09ORklHX1NEUkFNX0VDQwkJCS8qIGVuYWJsZSBFQ0Mgc3VwcG9ydAkJCSovCi0jZGVmaW5lIENGR19TRFJBTV9UQUJMRQl7IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9UQUJMRQl7IFwKIAkJeygyNTYgPDwgMjApLCAxMywgMHgwMDBDNDAwMX0sIC8qIDI1Nk1CIG1vZGUgMywgMTN4MTAoNCkqLyBcCiAJCXsoNjQgPDwgMjApLCAgMTIsIDB4MDAwODIwMDF9fSAvKiA2NE1CIG1vZGUgMiwgMTJ4OSg0KQkqLwogCkBAIC0xMTgsMjEgKzExOCwyMSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NIChQQ0Y4NTk0QykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NAkvKiBFRVBST00gUENGODU5NEMJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NAkvKiBFRVBST00gUENGODU5NEMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiBtYXNrIG9mIGFkZHJlc3MgYml0cyB0aGF0IG92ZXJmbG93IGludG8gdGhlICJFRVBST00gY2hpcCBhZGRyZXNzIgkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwkvKiBUaGUgUGhpbGlwcyBQQ0Y4NTk0QyBoYXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwkvKiBUaGUgUGhpbGlwcyBQQ0Y4NTk0QyBoYXMJKi8KIAkJCQkJLyogOCBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyAqLwogCQkJCQkvKiBsYXN0IDMgYml0cyBvZiB0aGUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNDAgICAvKiBhbmQgdGFrZXMgdXAgdG8gNDAgbXNlYyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTQwICAgLyogYW5kIHRha2VzIHVwIHRvIDQwIG1zZWMgKi8KIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkiZWNobzsiCVwKIAkiZWNobyBUeXBlIFwicnVuIGtlcm5lbHhcIiB0byBib290IHRoZSBzeXN0ZW07IgkJCVwKQEAgLTE5Niw3ICsxOTYsNyBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQpAQCAtMjExLDcgKzIxMSw3IEBACiAjZGVmaW5lIENPTkZJR19QSFlfUkVTRVQJMQkvKiByZXNldCBwaHkgdXBvbiBzdGFydHVwCSovCiAjZGVmaW5lIENPTkZJR19NODhFMTExMV9QSFkJMQkvKiBuZWVkZWQgZm9yIFBIWSBzcGVjaWZpYyBzZXR1cCovCiAjZGVmaW5lIENPTkZJR19QSFlfR0lHRQkJMQkvKiBJbmNsdWRlIEdiRSBzcGVlZC9kdXBsZXggZGV0ZWN0aW9uICovCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KIAogI2RlZmluZSBDT05GSUdfTkVUQ09OU09MRQkJLyogaW5jbHVkZSBOZXRDb25zb2xlIHN1cHBvcnQJKi8KIApAQCAtMjUyLDI1ICsyNTIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QJCTEJLyogRW5hYmxlIG1vcmUgZXh0ZW5zaXZlIG1lbXRlc3QqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QJCTEJLyogRW5hYmxlIG1vcmUgZXh0ZW5zaXZlIG1lbXRlc3QqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCiAjZGVmaW5lIENPTkZJR19MT09QVyAgICAgICAgICAgIDEgICAgICAgLyogZW5hYmxlIGxvb3B3IGNvbW1hbmQgICAgICAgICAqLwpAQCAtMjc4LDcgKzI3OCw3IEBACiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBjaGVjayBmb3Iga2V5cHJlc3Mgb24gYm9vdGRlbGF5PT0wICovCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFCTEJLyogaW5jbHVkZSB2ZXJzaW9uIGVudiB2YXJpYWJsZSAqLwogCi0jZGVmaW5lIENGR180eHhfUkVTRVRfVFlQRQkweDIJLyogdXNlIGNoaXAgcmVzZXQgb24gdGhpcyBib2FyZAkqLworI2RlZmluZSBDT05GSUdfU1lTXzR4eF9SRVNFVF9UWVBFCTB4MgkvKiB1c2UgY2hpcCByZXNldCBvbiB0aGlzIGJvYXJkCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMjg4LDE1ICsyODgsMTUgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkJMSAgICAgICAvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCQkvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCi0jZGVmaW5lIENGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRlBHQSBzdHVmZgpAQCAtMzA0LDggKzMwNCw4IEBACiAjZGVmaW5lIENPTkZJR19GUEdBCiAjZGVmaW5lIENPTkZJR19GUEdBX0FMVEVSQQogI2RlZmluZSBDT05GSUdfRlBHQV9DWUNMT04yCi0jZGVmaW5lIENGR19GUEdBX0NIRUNLX0NUUkxDCi0jZGVmaW5lIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NIRUNLX0NUUkxDCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAjZGVmaW5lIENPTkZJR19GUEdBX0NPVU5UICAgICAgIDEJCS8qIEljaCBoYWJlIDIgLi4uIGFiZXIgaW4KIAkJCQkJUmVpaGUgZ2VzY2hhbHRldCAtPiBzb2xsdGUgZ2VoZW4sCiAJCQkJCWF1ZnBhc3NlbiBtaXQgRGF0YXNpemUgaXN0IGpldHp0CkBAIC0zMTQsNTQgKzMxNCw1NCBAQAogCQkJCQlNb2RlIGVya2xhZXJ0IC4uLiovCiAKIC8qIEZQR0EgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfR1BJT19DTEsJCTE4CS8qIEZQR0EgY2xrIHBpbiAoY3B1IG91dHB1dCkJCSovCi0jZGVmaW5lIENGR19HUElPX0RBVEEJCTE5CS8qIEZQR0EgZGF0YSBwaW4gKGNwdSBvdXRwdXQpCQkqLwotI2RlZmluZSBDRkdfR1BJT19TVEFUVVMJCTIwCS8qIEZQR0Egc3RhdHVzIHBpbiAoY3B1IGlucHV0KQkJKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fQ09ORklHCQkyMQkvKiBGUEdBIENPTkZJRyBwaW4gKGNwdSBvdXRwdXQpCQkqLwotI2RlZmluZSBDRkdfR1BJT19DT05fRE9OCTIyCS8qIEZQR0EgQ09ORklHX0RPTkUgcGluIChjcHUgaW5wdXQpCSovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19DTEsJCTE4CS8qIEZQR0EgY2xrIHBpbiAoY3B1IG91dHB1dCkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQVRBCQkxOQkvKiBGUEdBIGRhdGEgcGluIChjcHUgb3V0cHV0KQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1NUQVRVUwkJMjAJLyogRlBHQSBzdGF0dXMgcGluIChjcHUgaW5wdXQpCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQ09ORklHCQkyMQkvKiBGUEdBIENPTkZJRyBwaW4gKGNwdSBvdXRwdXQpCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQ09OX0RPTgkyMgkvKiBGUEdBIENPTkZJR19ET05FIHBpbiAoY3B1IGlucHV0KQkqLwogCi0jZGVmaW5lIENGR19HUElPX1NFTF9EUFIJMTQJLyogY3B1IG91dHB1dCAqLwotI2RlZmluZSBDRkdfR1BJT19TRUxfQVZSCTE1CS8qIGNwdSBvdXRwdXQgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fUFJPR19FTgkyMwkvKiBjcHUgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TRUxfRFBSCTE0CS8qIGNwdSBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1NFTF9BVlIJMTUJLyogY3B1IG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUFJPR19FTgkyMwkvKiBjcHUgb3V0cHV0ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fU0hVVERPV04JKDB4ODAwMDAwMDAgPj4gNikKLSNkZWZpbmUgQ0ZHX0dQSU9fU1NEX0VNUFRZCSgweDgwMDAwMDAwID4+IDkpCi0jZGVmaW5lIENGR19HUElPX0VSRUFEWQkJKDB4ODAwMDAwMDAgPj4gMjYpCi0jZGVmaW5lIENGR19HUElPX1JFVjAJCSgweDgwMDAwMDAwID4+IDE0KQotI2RlZmluZSBDRkdfR1BJT19SRVYxCQkoMHg4MDAwMDAwMCA+PiAxNSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1NIVVRET1dOCSgweDgwMDAwMDAwID4+IDYpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TU0RfRU1QVFkJKDB4ODAwMDAwMDAgPj4gOSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VSRUFEWQkJKDB4ODAwMDAwMDAgPj4gMjYpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19SRVYwCQkoMHg4MDAwMDAwMCA+PiAxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1JFVjEJCSgweDgwMDAwMDAwID4+IDE1KQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5ELUZMQVNIIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQk0Ci0jZGVmaW5lIE5BTkRfTUFYX0NISVBTCQlDRkdfTUFYX05BTkRfREVWSUNFCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4RjAwMDAwMDAJLyogTkFORCBGTEFTSCBCYXNlIEFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkRfQkFTRSArIDAsIENGR19OQU5EX0JBU0UgKyAyLAlcCi0JCQkJICBDRkdfTkFORF9CQVNFICsgNCwgQ0ZHX05BTkRfQkFTRSArIDYgfQotI2RlZmluZSBDRkdfTkFORF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gTkFORCBmbGFzaAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQk0CisjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQlDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHhGMDAwMDAwMAkvKiBOQU5EIEZMQVNIIEJhc2UgQWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRV9MSVNUCXsgQ09ORklHX1NZU19OQU5EX0JBU0UgKyAwLCBDT05GSUdfU1lTX05BTkRfQkFTRSArIDIsCVwKKwkJCQkgIENPTkZJR19TWVNfTkFORF9CQVNFICsgNCwgQ09ORklHX1NZU19OQU5EX0JBU0UgKyA2IH0KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBOQU5EIGZsYXNoCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0gJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDAsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfRkxBU0ggfCAweDNBMDAwKSAvKiBCUz0yTUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19GTEFTSCB8IDB4M0EwMDApIC8qIEJTPTJNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMSAoTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDE4NDAzODAJLyogVFdUPTMJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkoQ0ZHX05BTkRfQkFTRSB8IDB4MTgwMDApIC8qIEJTPTFNQixCVT1SL1csQlc9OGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMTg0MDM4MAkvKiBUV1Q9MwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkoQ09ORklHX1NZU19OQU5EX0JBU0UgfCAweDE4MDAwKSAvKiBCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2FtY2MtY29tbW9uLmggYi9pbmNsdWRlL2NvbmZpZ3MvYW1jYy1jb21tb24uaAppbmRleCAxZjI3ZDc4Li5mYmE5NmUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYW1jYy1jb21tb24uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYW1jYy1jb21tb24uaApAQCAtMjMsMjQgKzIzLDI0IEBACiAjaWZuZGVmIF9fQU1DQ19DT01NT05fSAogI2RlZmluZSBfX0FNQ0NfQ09NTU9OX0gKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogU3RhcnQgb2YgVS1Cb290CSovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDB4RkZGRkZGRkYgLSBDRkdfTU9OSVRPUl9CQVNFICsgMSkKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxIDw8IDIwKQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIFN0YXJ0IG9mIFUtQm9vdAkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMHhGRkZGRkZGRiAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMSA8PCAyMCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYwkqLwogCiAvKgogICogVUFSVAogICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgIFwKICAgICB7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCiAvKgogICogSTJDCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFdGhlcm5ldC9FTUFDL1BIWQpAQCAtNDksOSArNDksOSBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCiAjZGVmaW5lIENPTkZJR19ORVRDT05TT0xFCQkvKiBpbmNsdWRlIE5ldENvbnNvbGUgc3VwcG9ydAkqLwogI2lmIGRlZmluZWQoQ09ORklHXzQ0MCkKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMzIJLyogbnVtYmVyIG9mIGV0aCByeCBidWZmZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkzMgkvKiBudW1iZXIgb2YgZXRoIHJ4IGJ1ZmZlcnMJKi8KICNlbHNlCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIG51bWJlciBvZiBldGggcnggYnVmZmVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogbnVtYmVyIG9mIGV0aCByeCBidWZmZXJzCSovCiAjZW5kaWYKIAogLyoKQEAgLTc5LDI0ICs3OSwyNCBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQkvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMJKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfQVVUT19DT01QTEVURQkJLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQJKi8KQEAgLTEwNCwxNSArMTA0LDE1IEBACiAjZGVmaW5lIENPTkZJR19NWF9DWUNMSUMJCS8qIGVuYWJsZSBtZGMvbXdjIGNvbW1hbmRzICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGNoZWNrIGZvciBrZXlwcmVzcyBvbiBib290ZGVsYXk9PTAgKi8KICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUgCS8qIGluY2x1ZGUgdmVyc2lvbiBlbnYgdmFyaWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAkJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIC8qCiAgKiBCT09UUCBvcHRpb25zCkBAIC0xMjgsNyArMTI4LDcgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMjQ0LDkgKzI0NCw5IEBACiAKICNkZWZpbmUgQ09ORklHX0FNQ0NfREVGX0VOVl9OT1JfVVBECQkJCQlcCiAJImxvYWQ9dGZ0cCAyMDAwMDAgIiB4c3RyKENPTkZJR19IT1NUTkFNRSkgIi91LWJvb3QuYmluXDAiCVwKLQkidXBkYXRlPXByb3RlY3Qgb2ZmICIgeHN0cihDRkdfTU9OSVRPUl9CQVNFKSAiIEZGRkZGRkZGOyIJXAotCQkiZXJhICIgeHN0cihDRkdfTU9OSVRPUl9CQVNFKSAiIEZGRkZGRkZGOyIJCVwKLQkJImNwLmIgJHtmaWxlYWRkcn0gIiB4c3RyKENGR19NT05JVE9SX0JBU0UpICIgJHtmaWxlc2l6ZX07IiBcCisJInVwZGF0ZT1wcm90ZWN0IG9mZiAiIHhzdHIoQ09ORklHX1NZU19NT05JVE9SX0JBU0UpICIgRkZGRkZGRkY7IglcCisJCSJlcmEgIiB4c3RyKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSAiIEZGRkZGRkZGOyIJCVwKKwkJImNwLmIgJHtmaWxlYWRkcn0gIiB4c3RyKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSAiICR7ZmlsZXNpemV9OyIgXAogCQkic2V0ZW52IGZpbGVzaXplO3NhdmVlbnZcMCIJCQkJXAogCSJ1cGQ9cnVuIGxvYWQgdXBkYXRlXDAiCQkJCQkJXAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXAzMjVyeGEuaCBiL2luY2x1ZGUvY29uZmlncy9hcDMyNXJ4YS5oCmluZGV4IGE2MzEyYjUuLjkxMzRhZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hcDMyNXJ4YS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hcDMyNXJ4YS5oCkBAIC02MywxOSArNjMsMTkgQEAKICNkZWZpbmUgQVAzMjVSWEFfRkxBU0hfQkFOS19TSVpFCSgxMjggKiAxMDI0ICogMTAyNCkKIAogLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCiAvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgogLyogQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0ICovCi0jZGVmaW5lIENGR19QQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJMjU2CiAvKiBtYXggYXJncyBhY2NlcHRlZCBmb3IgbW9uaXRvciBjb21tYW5kcyAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgogLyogQnVmZmVyIHNpemUgZm9yIEJvb3QgQXJndW1lbnRzIHBhc3NlZCB0byBrZXJuZWwgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCTUxMgorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCTUxMgogLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAzODQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAzODQwMCB9CiAKIC8qIFNDSUYgKi8KICNkZWZpbmUgQ09ORklHX1NDSUZfQ09OU09MRSAxCkBAIC04Myw5NCArODMsOTQgQEAKICNkZWZpbmUgQ09ORklHX0NPTlNfU0NJRjUJMQogCiAvKiBTdXBwcmVzcyBkaXNwbGF5IG9mIGNvbnNvbGUgaW5mb3JtYXRpb24gYXQgYm9vdCAqLwotI3VuZGVmICBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCi0jdW5kZWYgIENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCi0jdW5kZWYgIENGR19DT05TT0xFX0VOVl9PVkVSV1JJVEUKKyN1bmRlZiAgQ09ORklHX1NZU19DT05TT0xFX0lORk9fUVVJRVQKKyN1bmRlZiAgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJKEFQMzI1UlhBX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKENGR19NRU1URVNUX1NUQVJUICsgKDYwICogMTAyNCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKEFQMzI1UlhBX1NEUkFNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAoNjAgKiAxMDI0ICogMTAyNCkpCiAKIC8qIEVuYWJsZSBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlLCBtZW1vcnkgdGVzdCAqLwotI3VuZGVmICBDRkdfQUxUX01FTVRFU1QKKyN1bmRlZiAgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogLyogU2NyYXRjaCBhZGRyZXNzIHVzZWQgYnkgdGhlIGFsdGVybmF0ZSBtZW1vcnkgdGVzdCAqLwotI3VuZGVmICBDRkdfTUVNVEVTVF9TQ1JBVENICisjdW5kZWYgIENPTkZJR19TWVNfTUVNVEVTVF9TQ1JBVENICiAKIC8qIEVuYWJsZSB0ZW1wb3JhcnkgYmF1ZHJhdGUgY2hhbmdlIHdoaWxlIHNlcmlhbCBkb3dubG9hZCAqLwotI3VuZGVmICBDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyN1bmRlZiAgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCShBUDMyNVJYQV9TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJKEFQMzI1UlhBX1NEUkFNX0JBU0UpCiAvKiBtYXliZSBtb3JlLCBidXQgaWYgc28gdS1ib290IGRvZXNuJ3Qga25vdyBhYm91dCBpdC4uLiAqLwotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkoMTI4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkoMTI4ICogMTAyNCAqIDEwMjQpCiAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyBmb3Igc2NyaXB0cyA/IT8gKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkoQ0ZHX1NEUkFNX0JBU0UgKyAxNiAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMTYgKiAxMDI0ICogMTAyNCkKIAogLyogQWRkcmVzcyBvZiB1LWJvb3QgaW1hZ2UgaW4gRmxhc2ggKE5PVCBydW4gdGltZSBhZGRyZXNzIGluIFNEUkFNKSA/IT8gKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQVAzMjVSWEFfRkxBU0hfQkFTRV8xKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQVAzMjVSWEFfRkxBU0hfQkFTRV8xKQogLyogTW9uaXRvciBzaXplICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkoMTI4ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoMTI4ICogMTAyNCkKIC8qIFNpemUgb2YgRFJBTSByZXNlcnZlZCBmb3IgbWFsbG9jKCkgdXNlICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JKDI1NiAqIDEwMjQpCiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJKDI1NikKLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJKDI1NikKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggKiAxMDI0ICogMTAyNCkKIAogLyogRkxBU0ggKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgMQotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jdW5kZWYgIENGR19GTEFTSF9RVUlFVF9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAogLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogLyogUGh5c2ljYWwgc3RhcnQgYWRkcmVzcyBvZiBGbGFzaCBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJKEFQMzI1UlhBX0ZMQVNIX0JBU0VfMSkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCShBUDMyNVJYQV9GTEFTSF9CQVNFXzEpCiAvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gZWFjaCBGbGFzaCBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIKIAogLyoKICAqIElERSBzdXBwb3J0CiAgKi8KICNkZWZpbmUgQ09ORklHX0lERV9SRVNFVAkxCi0jZGVmaW5lIENGR19QSU9fTU9ERQkJMQotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBJREUgYnVzICovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJMHhCNDE4MDAwMAotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJMgkvKiAxYml0IHNoaWZ0ICovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgyMDAJLyogZGF0YSByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDIwMAkvKiByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDIxMAkvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUElPX01PREUJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4QjQxODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFCQkyCS8qIDFiaXQgc2hpZnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgyMDAJLyogZGF0YSByZWcgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgyMDAJLyogcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MjEwCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KIAogLyogaWYgeW91IHVzZSBhbGwgTk9SIEZsYXNoICwgeW91IGNoYW5nZSBkaXAtc3dpdGNoLiBQbGVhc2Ugc2VlIE1hbnVhbC4gKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0ZMQVNIX0JBU0UgKyAoMCAqIEFQMzI1UlhBX0ZMQVNIX0JBTktfU0laRSl9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUIHsgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDAgKiBBUDMyNVJYQV9GTEFTSF9CQU5LX1NJWkUpfQogCiAvKiBUaW1lb3V0IGZvciBGbGFzaCBlcmFzZSBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDMgKiAxMDAwKQogLyogVGltZW91dCBmb3IgRmxhc2ggd3JpdGUgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkKIC8qIFRpbWVvdXQgZm9yIEZsYXNoIHNldCBzZWN0b3IgbG9jayBiaXQgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAkoMyAqIDEwMDApCiAvKiBUaW1lb3V0IGZvciBGbGFzaCBjbGVhciBsb2NrIGJpdCBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VTkxPQ0tfVE9VVAkoMyAqIDEwMDApCiAKIC8qCiAgKiBVc2UgaGFyZHdhcmUgZmxhc2ggc2VjdG9ycyBwcm90ZWN0aW9uIGluc3RlYWQKICAqIG9mIFUtQm9vdCBzb2Z0d2FyZSBwcm90ZWN0aW9uCiAgKi8KLSN1bmRlZiAgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KLSN1bmRlZiAgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgorI3VuZGVmICBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiAKIC8qIEVOViBzZXR0aW5nICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoMTI4ICogMTAyNCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoQ09ORklHX0VOVl9TRUNUX1NJWkUpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQotLyogT2Zmc2V0IG9mIGVudiBGbGFzaCBzZWN0b3IgcmVsYXRpdmUgdG8gQ0ZHX0ZMQVNIX0JBU0UgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDRkdfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKy8qIE9mZnNldCBvZiBlbnYgRmxhc2ggc2VjdG9yIHJlbGF0aXZlIHRvIENPTkZJR19TWVNfRkxBU0hfQkFTRSAqLworI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAKIC8qIEJvYXJkIENsb2NrICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzMzMzMzMzMKICNkZWZpbmUgVE1VX0NMS19ESVZJREVSCQkoNCkJLyogNCAoZGVmYXVsdCksIDE2LCA2NCwgMjU2IG9yIDEwMjQgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogI2VuZGlmCS8qIF9fQVAzMjVSWEFfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2Fwb2xsb24uaCBiL2luY2x1ZGUvY29uZmlncy9hcG9sbG9uLmgKaW5kZXggZWRmYWUyNy4uZDcxZWQ0NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2Fwb2xsb24uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXBvbGxvbi5oCkBAIC00MywxNCArNDMsMTQgQEAKIAogLyogQm9vdCBtZXRob2QgKi8KIC8qIHVuY29tbWVudCBpZiB5b3UgdXNlIE5PUiBib290ICovCi0vKiAjZGVmaW5lIENGR19OT1JfQk9PVAkJMSAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX05PUl9CT09UCQkxICovCiAKIC8qIHVuY29tbWVudCBpZiB5b3UgdXNlIE5PUiBvbiBDUzMgKi8KLS8qICNkZWZpbmUgQ0ZHX1VTRV9OT1IJCTEgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19VU0VfTk9SCQkxICovCiAKLSNpZmRlZiBDRkdfTk9SX0JPT1QKLSN1bmRlZiBDRkdfVVNFX05PUgotI2RlZmluZSBDRkdfVVNFX05PUgkJMQorI2lmZGVmIENPTkZJR19TWVNfTk9SX0JPT1QKKyN1bmRlZiBDT05GSUdfU1lTX1VTRV9OT1IKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfTk9SCQkxCiAjZW5kaWYKIAogI2luY2x1ZGUgPGFzbS9hcmNoL29tYXAyNDIwLmg+CS8qIGdldCBjaGlwIGFuZCBib2FyZCBkZWZzICovCkBAIC03Myw4ICs3Myw4IEBACiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUgU1pfMTI4SwkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgU1pfMTI4SykKLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyBTWl8xMjhLKQorI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTkyLDExICs5MiwxMSBAQAogICovCiAjZGVmaW5lCVZfTlMxNjU1MF9DTEsJKDQ4MDAwMDAwKQkvKiA0OE1IeiAoQVBMTDk2LzIpICovCiAKLSNkZWZpbmUJQ0ZHX05TMTY1NTAKLSNkZWZpbmUJQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lCUNGR19OUzE2NTUwX1JFR19TSVpFCSgtNCkKLSNkZWZpbmUJQ0ZHX05TMTY1NTBfQ0xLCVZfTlMxNjU1MF9DTEsJLyogM01IeiAoMS41TUh6KjIpICovCi0jZGVmaW5lCUNGR19OUzE2NTUwX0NPTTEJT01BUDI0MjBfVUFSVDEKKyNkZWZpbmUJQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lCUNPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUJQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCSgtNCkKKyNkZWZpbmUJQ09ORklHX1NZU19OUzE2NTUwX0NMSwlWX05TMTY1NTBfQ0xLCS8qIDNNSHogKDEuNU1IeioyKSAqLworI2RlZmluZQlDT05GSUdfU1lTX05TMTY1NTBfQ09NMQlPTUFQMjQyMF9VQVJUMQogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTEwNyw3ICsxMDcsNyBAQAogI2RlZmluZQlDT05GSUdfRU5WX09WRVJXUklURQogI2RlZmluZQlDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lCUNPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lCUNGR19CQVVEUkFURV9UQUJMRQl7OTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQorI2RlZmluZQlDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXs5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qIHRoaXMgbXVzdCBiZSBpbmNsdWRlZCBBRlRFUiB0aGUgZGVmaW5pdGlvbiBvZiBDT05GSUdfQ09NTUFORFMgKGlmIGFueSkgKi8KICNpbmNsdWRlCTxjb25maWdfY21kX2RlZmF1bHQuaD4KQEAgLTExOCw3ICsxMTgsNyBAQAogCiAjdW5kZWYJQ09ORklHX0NNRF9BVVRPU0NSSVBUCiAKLSNpZm5kZWYJQ0ZHX1VTRV9OT1IKKyNpZm5kZWYJQ09ORklHX1NZU19VU0VfTk9SCiAjIHVuZGVmCUNPTkZJR19DTURfRkxBU0gKICMgdW5kZWYJQ09ORklHX0NNRF9JTUxTCiAjZW5kaWYKQEAgLTE1OCwyMCArMTU4LDIwIEBACiAgKi8KICNkZWZpbmUJVl9QUk9NUFQJIkFwb2xsb24gIyAiCiAKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lCUNGR19QUk9NUFQJVl9QUk9NUFQKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAlWX1BST01QVAorI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19QQlNJWkUJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZQlDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJKE9NQVAyNDIwX1NEUkNfQ1MwKQkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lCUNGR19NRU1URVNUX0VORAkJKE9NQVAyNDIwX1NEUkNfQ1MwK1NaXzMxTSkKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCShPTUFQMjQyMF9TRFJDX0NTMCkJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoT01BUDI0MjBfU0RSQ19DUzArU1pfMzFNKQogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkoT01BUDI0MjBfU0RSQ19DUzApCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCShPTUFQMjQyMF9TRFJDX0NTMCkJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyogVGhlIDI0MjAgaGFzIDEyIEdQIHRpbWVycywgdGhleSBjYW4gYmUgZHJpdmVuIGJ5IHRoZSBTeXNDbGsgKDEyLzEzLzE5LjIpCiAgKiBvciBieSAzMktIeiBjbGssIG9yIGZyb20gZXh0ZXJuYWwgc2lnLiBUaGlzIHJhdGUgaXMgZGl2aWRlZCBieSBhIGxvY2FsCkBAIC0xNzksOSArMTc5LDkgQEAKICAqLwogI2RlZmluZQlWX1BWVAk3CS8qIHVzZSB3aXRoIDEyTUh6LzEyOCAqLwogCi0jZGVmaW5lCUNGR19USU1FUkJBU0UJT01BUDI0MjBfR1BUMgotI2RlZmluZQlDRkdfUFZUCVZfUFZUCS8qIDJeKHB2dCsxKSAqLwotI2RlZmluZQlDRkdfSFoJCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ0ZHX1BWVCkpCisjZGVmaW5lCUNPTkZJR19TWVNfVElNRVJCQVNFCU9NQVAyNDIwX0dQVDIKKyNkZWZpbmUJQ09ORklHX1NZU19QVlQJVl9QVlQJLyogMl4ocHZ0KzEpICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ09ORklHX1NZU19QVlQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMjA1LDI2ICsyMDUsMjYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2lmZGVmCUNGR19VU0VfTk9SCisjaWZkZWYJQ09ORklHX1NZU19VU0VfTk9SCiAvKiBPbmVOQU5EIGJvb3QsIE5PUiBoYXMgQ1MzLCBCdXQgTk9SIGhhcyBDUzAgd2hlbiBOT1IgYm9vdCAqLwotIyBkZWZpbmUJQ0ZHX0ZMQVNIX0JBU0UJCTB4MTgwMDAwMDAKLSMgZGVmaW5lCUNGR19NQVhfRkxBU0hfQkFOS1MJMQotIyBkZWZpbmUJQ0ZHX01BWF9GTEFTSF9TRUNUCTEwMjQKKyMgZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgxODAwMDAwMAorIyBkZWZpbmUJQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQorIyBkZWZpbmUJQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMDI0CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAqIENGSSBGTEFTSCBkcml2ZXIgc2V0dXAKICAqLwotIyBkZWZpbmUJQ0ZHX0ZMQVNIX0NGSQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCisjIGRlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0NGSQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCiAjIGRlZmluZQlDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSBkcml2ZXJzL2NmaV9mbGFzaC5jICovCi0vKiAjZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgKi8gLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCi0jIGRlZmluZQlDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoL3cgc2VjdG9yIHByb3RlY3Rpb24qLworLyogI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAqLyAvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KKyMgZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoL3cgc2VjdG9yIHByb3RlY3Rpb24qLwogCi0jZWxzZQkvKiAhQ0ZHX1VTRV9OT1IgKi8KLSMgZGVmaW5lCUNGR19OT19GTEFTSAkxCi0jZW5kaWYJLyogQ0ZHX1VTRV9OT1IgKi8KKyNlbHNlCS8qICFDT05GSUdfU1lTX1VTRV9OT1IgKi8KKyMgZGVmaW5lCUNPTkZJR19TWVNfTk9fRkxBU0gJMQorI2VuZGlmCS8qIENPTkZJR19TWVNfVVNFX05PUiAqLwogCiAvKiBPbmVOQU5EIGJvb3QsIE9uZU5BTkQgaGFzIENTMCwgTk9SIGJvb3QgT05lTkFORCBoYXMgQ1MyICovCi0jZGVmaW5lCUNGR19PTkVOQU5EX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX09ORU5BTkRfQkFTRQkweDAwMDAwMDAwCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fT05FTkFORAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgwMDAyMDAwMAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXJtYWRpbGxvLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXJtYWRpbGxvLmgKaW5kZXggNjY4YzJjMS4uNWE0Y2VhZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2FybWFkaWxsby5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hcm1hZGlsbG8uaApAQCAtNTAsOCArNTAsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05NSwyNCArOTUsMjQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiQVJNQURJTExPICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJBUk1BRElMTE8gIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgwMDA0MDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwlmb3IgYXJtYWRpbGxvOiBrZXJuZWwgaW1nIGlzIGhlcmUqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDA0MDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwlmb3IgYXJtYWRpbGxvOiBrZXJuZWwgaW1nIGlzIGhlcmUqLwogCi0jZGVmaW5lCUNGR19IWgkJCTIwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDIga0h6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkyMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAyIGtIeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xMzUsMTcgKzEzNSwxNyBAQAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDA0MDAwMDAgLyogNCBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyAweDIwMDAwKQkvKiBBZGRyIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2Fzc2FiZXQuaCBiL2luY2x1ZGUvY29uZmlncy9hc3NhYmV0LmgKaW5kZXggMjg4NjRlYS4uMDI0ZmEyMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2Fzc2FiZXQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXNzYWJldC5oCkBAIC00NSw4ICs0NSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgICAxMjgJLyogc2l6ZSByc3J2ZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTiAgICAgICAgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgICAxMjgJLyogc2l6ZSByc3J2ZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC04NSw3ICs4NSw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJjb25zb2xlPXR0eVNBMCwxMTUyMDBuOCByb290PS9kZXYvbmZzIGlwPWJvb3RwIgogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJImJvb3RwO3RmdHA7Ym9vdG0iCi0jZGVmaW5lIENGR19BVVRPTE9BRCAgICAgICAgICAgICJuIgkvKiBObyBhdXRvbG9hZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FEICAgICAgICAgICAgIm4iCS8qIE5vIGF1dG9sb2FkICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKICNkZWZpbmUgQ09ORklHX0tHREJfQkFVRFJBVEUJMTE1MjAwCS8qIHNwZWVkIHRvIHJ1biBrZ2RiIHNlcmlhbCBwb3J0ICovCkBAIC05NSwyNSArOTUsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJJbnRlbCBBc3NhYmV0ICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiSW50ZWwgQXNzYWJldCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4YzAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YzAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkzNjg2NDAwCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDBhCS8qIHNldCBjb3JlIGNsb2NrIHRvIDIwNk1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMzY4NjQwMAkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MGEJLyogc2V0IGNvcmUgY2xvY2sgdG8gMjA2TUh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTEzOCwyNyArMTM4LDI3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfQkFOS19TSVpFICAgIDB4MDEwMDAwMDAJLyogMTYgTUIgQmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUgICAgMHgwMDA0MDAwMAkvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAgVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTiAgICAgICAgICgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBLQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICAgICAgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gICAgICAgICAoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfUkFNU1RBUlQKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTVNUQVJUCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfRkxBU0hfU0laRSAgICAgICAgICBQSFlTX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSSAgICAgICAgICAgMQkvKiBmbGFzaCBpcyBDRkkgY29uZm9ybWFudCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRSAgICAgICAgICBQSFlTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkgICAgICAgICAgIDEJLyogZmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgICAgICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUiAgICAxCS8qIHVzZSBjb21tb24gY2ZpIGRyaXZlciAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxCS8qIG1heCAjIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCAgICAgMAkvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOAkvKiBtYXggIyBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jdW5kZWYgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgICAgeyBDRkdfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAxCS8qIG1heCAjIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQgICAgIDAJLyogdGhlcmUgaXMgb25seSBvbmUgYmFuayAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgICAgMTI4CS8qIG1heCAjIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUICAgIHsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2F0OTFjYXA5YWRrLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MWNhcDlhZGsuaAppbmRleCBmZDA2MjQ1Li4zMGE3Y2I0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXQ5MWNhcDlhZGsuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MWNhcDlhZGsuaApAQCAtMzEsNyArMzEsNyBAQAogI2RlZmluZSBBVDkxX0NQVV9OQU1FCQkiQVQ5MUNBUDkiCiAjZGVmaW5lIEFUOTFfTUFJTl9DTE9DSwkJMjAwMDAwMDAwCS8qIGZyb20gMTIgTUh6IGNyeXN0YWwgKi8KICNkZWZpbmUgQVQ5MV9NQVNURVJfQ0xPQ0sJMTAwMDAwMDAwCS8qIHBlcmlwaGVyYWwgPSBtYWluIC8gMiAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwMDAwCQkvKiAxdXMgcmVzb2x1dGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMDAwMAkJLyogMXVzIHJlc29sdXRpb24gKi8KIAogI2RlZmluZSBBVDkxX1NMT1dfQ0xPQ0sJCTMyNzY4CS8qIHNsb3cgY2xvY2sgKi8KIApAQCAtNjMsMTAgKzYzLDEwIEBACiAjdW5kZWYgTENEX1RFU1RfUEFUVEVSTgogI2RlZmluZSBDT05GSUdfTENEX0lORk8JCQkxCiAjZGVmaW5lIENPTkZJR19MQ0RfSU5GT19CRUxPV19MT0dPCTEKLSNkZWZpbmUgQ0ZHX1dISVRFX09OX0JMQUNLCQkxCisjZGVmaW5lIENPTkZJR19TWVNfV0hJVEVfT05fQkxBQ0sJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX0xDRAkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTENEX0JHUjU1NQkJMQotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkJMQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogCkBAIC0xMDAsMjYgKzEwMCwyNiBAQAogCiAvKiBEYXRhRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0hBU19EQVRBRkxBU0gJCTEKLSNkZWZpbmUgQ0ZHX1NQSV9XUklURV9UT1VUCQkoNSpDRkdfSFopCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfV1JJVEVfVE9VVAkJKDUqQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogQ1MwICovCiAjZGVmaW5lIEFUOTFfU1BJX0NMSwkJCTE1MDAwMDAwCiAjZGVmaW5lIERBVEFGTEFTSF9UQ1NTCQkJKDB4MWEgPDwgMTYpCiAjZGVmaW5lIERBVEFGTEFTSF9UQ0hTCQkJKDB4MSA8PCAyNCkKIAogLyogTk9SIGZsYXNoICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJMQogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMjU2Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQogCiAvKiBOQU5EIGZsYXNoICovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkJMQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0RCV184CQkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0RCV184CQkJMQogCiAvKiBFdGhlcm5ldCAqLwogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKQEAgLTEzMiwyNiArMTMyLDI2IEBACiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJCTEKICNkZWZpbmUgTElUVExFRU5ESUFOCQkJMQogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgkJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQkJMHgwMDcwMDAwMAkvKiBBVDkxX0JBU0VfVUhQICovCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJCSJhdDkxY2FwOSIKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQkJMHgwMDcwMDAwMAkvKiBBVDkxX0JBU0VfVUhQICovCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkiYXQ5MWNhcDkiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMgogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkweDcyMDAwMDAwCS8qIGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJCTB4NzIwMDAwMDAJLyogbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCVBIWVNfU0RSQU0KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJMHg3M2UwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCVBIWVNfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCTB4NzNlMDAwMDAKIAotI2RlZmluZSBDRkdfVVNFX0RBVEFGTEFTSAkJMQotI3VuZGVmIENGR19VU0VfTk9SRkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfREFUQUZMQVNICQkxCisjdW5kZWYgQ09ORklHX1NZU19VU0VfTk9SRkxBU0gKIAotI2lmZGVmIENGR19VU0VfREFUQUZMQVNICisjaWZkZWYgQ09ORklHX1NZU19VU0VfREFUQUZMQVNICiAKIC8qIGJvb3RzdHJhcCArIHUtYm9vdCArIGVudiArIGxpbnV4IGluIGRhdGFmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSAkxCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyAweDg0MDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIDB4ODQwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4NDIwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MjAwCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiY3AuYiAweEMwMDQyMDAwIDB4NzIwMDAwMDAgMHgyMTAwMDA7IGJvb3RtIgogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJjb25zb2xlPXR0eVMwLDExNTIwMCAiCQkJXApAQCAtMTY0LDcgKzE2NCw3IEBACiAKIC8qIGJvb3RzdHJhcCArIHUtYm9vdCArIGVudiArIGxpbnV4IGluIG5vcmZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShQSFlTX0ZMQVNIXzEgKyAweDgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShQSFlTX0ZMQVNIXzEgKyAweDgwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwCkBAIC0xNzksMjEgKzE3OSwyMSBAQAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7MTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdD4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKIAogI2RlZmluZSBST1VORChBLCBCKQkJKCgoQSkgKyAoQikpICYgfigoQikgLSAxKSkKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJUk9VTkQoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQsIDB4MTAwMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIDEyOCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJUk9VTkQoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQsIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiAxMjggYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDMyKjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2F0OTFybTkyMDBkay5oIGIvaW5jbHVkZS9jb25maWdzL2F0OTFybTkyMDBkay5oCmluZGV4IDAwMGViMGUuLjYzM2EwNTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hdDkxcm05MjAwZGsuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXJtOTIwMGRrLmgKQEAgLTQzLDcgKzQzLDcgQEAKICNkZWZpbmUgQ09ORklHX0lOSVRSRF9UQUcJMQogCiAjaWZuZGVmIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQKLSNkZWZpbmUgQ0ZHX1VTRV9NQUlOX09TQ0lMTEFUT1IJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfTUFJTl9PU0NJTExBVE9SCQkxCiAvKiBmbGFzaCAqLwogI2RlZmluZSBNQ19QVUlBX1ZBTAkweDAwMDAwMDAwCiAjZGVmaW5lIE1DX1BVUF9WQUwJMHgwMDAwMDAwMApAQCAtNzYsOCArNzYsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAxMTUyMDAKIApAQCAtMTE4LDcgKzExOCw3IEBACiAKICNkZWZpbmUgQ09ORklHX05BTkRfTEVHQUNZCiAKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLwogI2RlZmluZSBTRUNUT1JTSVpFIDUxMgogCiAjZGVmaW5lIEFERFJfQ09MVU1OIDEKQEAgLTE1Miw4ICsxNTIsOCBAQAogI2RlZmluZSBQSFlTX1NEUkFNIDB4MjAwMDAwMDAKICNkZWZpbmUgUEhZU19TRFJBTV9TSVpFIDB4MjAwMDAwMCAgLyogMzIgbWVncyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCUNGR19NRU1URVNUX1NUQVJUICsgUEhZU19TRFJBTV9TSVpFIC0gMjYyMTQ0CisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgUEhZU19TRFJBTV9TSVpFIC0gMjYyMTQ0CiAKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9FVEhFUgogI2RlZmluZSBDT05GSUdfTkVUX1JFVFJZX0NPVU5UCQkyMApAQCAtMTY1LDI1ICsxNjUsMjUgQEAKICNkZWZpbmUgREFUQUZMQVNIX1RDSFMJKDB4MSA8PCAyNCkKIAogI2RlZmluZSBDT05GSUdfSEFTX0RBVEFGTEFTSAkJMQotI2RlZmluZSBDRkdfU1BJX1dSSVRFX1RPVVQJCSg1KkNGR19IWikKLSNkZWZpbmUgQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1MJCTIKLSNkZWZpbmUgQ0ZHX01BWF9EQVRBRkxBU0hfUEFHRVMJCTE2Mzg0Ci0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MwICovCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzMJMHhEMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MzICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX1dSSVRFX1RPVVQJCSg1KkNPTkZJR19TWVNfSFopCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfUEFHRVMJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogTG9naWNhbCBhZHJlc3MgZm9yIENTMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMwkweEQwMDAwMDAwCS8qIExvZ2ljYWwgYWRyZXNzIGZvciBDUzMgKi8KIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDEwMDAwMDAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJCTB4MjAwMDAwICAvKiAyIG1lZ3MgbWFpbiBmbGFzaCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMjU2Ci0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCQkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCQkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCQkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICN1bmRlZglDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCQkweDIwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDIwMDAgIC8qIDB4ODAwMCAqLwogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQpAQCAtMTk3LDI3ICsxOTcsMjcgQEAKICNlbmRpZgkvKiBDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSCAqLwogCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMTAwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjEwMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKICNpZmRlZiBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCi0jZGVmaW5lIENGR19CT09UX1NJWkUJCTB4NjAwMCAvKiAyNCBLQnl0ZXMgKi8KLSNkZWZpbmUgQ0ZHX1VfQk9PVF9CQVNFCQkoUEhZU19GTEFTSF8xICsgMHgxMDAwMCkKLSNkZWZpbmUgQ0ZHX1VfQk9PVF9TSVpFCQkweDEwMDAwIC8qIDY0IEtCeXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfU0laRQkJMHg2MDAwIC8qIDI0IEtCeXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1VfQk9PVF9CQVNFCQkoUEhZU19GTEFTSF8xICsgMHgxMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VX0JPT1RfU0laRQkJMHgxMDAwMCAvKiA2NCBLQnl0ZXMgKi8KICNlbHNlCi0jZGVmaW5lIENGR19CT09UX1NJWkUJCTB4MDAgLyogMCBLQnl0ZXMgKi8KLSNkZWZpbmUgQ0ZHX1VfQk9PVF9CQVNFCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX1VfQk9PVF9TSVpFCQkweDYwMDAwIC8qIDM4NCBLQnl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NJWkUJCTB4MDAgLyogMCBLQnl0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VX0JPT1RfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfVV9CT09UX1NJWkUJCTB4NjAwMDAgLyogMzg0IEtCeXRlcyAqLwogI2VuZGlmCS8qIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX0haIDEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLIEFUOTFDX01BU1RFUl9DTE9DSy8yCS8qIEFUOTFDX1RDMF9DTVIgaXMgaW1wbGljaXRseSBzZXQgdG8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWiAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sgQVQ5MUNfTUFTVEVSX0NMT0NLLzIJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLwogCQkJCQkJLyogQVQ5MUNfVENfVElNRVJfRElWMV9DTE9DSyAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDMyKjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2MGVrLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTkyNjBlay5oCmluZGV4IDQxZDFkYTMuLmJlOWE4ZWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2MGVrLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05MjYwZWsuaApAQCAtMzAsNyArMzAsNyBAQAogLyogQVJNIGFzeW5jaHJvbm91cyBjbG9jayAqLwogI2RlZmluZSBBVDkxX01BSU5fQ0xPQ0sJCTE5ODY1NjAwMAkvKiBmcm9tIDE4LjQzMiBNSHogY3J5c3RhbCAqLwogI2RlZmluZSBBVDkxX01BU1RFUl9DTE9DSwk5OTMyODAwMAkvKiBwZXJpcGhlcmFsID0gbWFpbiAvIDIgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMDAwMAkJLyogMXVzIHJlc29sdXRpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAwMDAJCS8qIDF1cyByZXNvbHV0aW9uICovCiAKICNkZWZpbmUgQVQ5MV9TTE9XX0NMT0NLCQkzMjc2OAkvKiBzbG93IGNsb2NrICovCiAKQEAgLTg4LDIyICs4OCwyMiBAQAogCiAvKiBEYXRhRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0hBU19EQVRBRkxBU0gJCTEKLSNkZWZpbmUgQ0ZHX1NQSV9XUklURV9UT1VUCQkoNSpDRkdfSFopCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX0JBTktTCQkyCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBDUzAgKi8KLSNkZWZpbmUgQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMQkweEQwMDAwMDAwCS8qIENTMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUCQkoNSpDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1MJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEJMHhEMDAwMDAwMAkvKiBDUzEgKi8KICNkZWZpbmUgQVQ5MV9TUElfQ0xLCQkJMTUwMDAwMDAKICNkZWZpbmUgREFUQUZMQVNIX1RDU1MJCQkoMHgxYSA8PCAxNikKICNkZWZpbmUgREFUQUZMQVNIX1RDSFMJCQkoMHgxIDw8IDI0KQogCiAvKiBOQU5EIGZsYXNoICovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkJMQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0RCV184CQkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0RCV184CQkJMQogCiAvKiBOT1IgZmxhc2ggLSBubyByZWFsIGZsYXNoIG9uIHRoaXMgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkJMQogCiAvKiBFdGhlcm5ldCAqLwogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKQEAgLTExNiwyOCArMTE2LDI4IEBACiAjZGVmaW5lIENPTkZJR19VU0JfT0hDSV9ORVcJCTEKICNkZWZpbmUgTElUVExFRU5ESUFOCQkJMQogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgkJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQkJMHgwMDUwMDAwMAkvKiBBVDkxU0FNOTI2MF9VSFBfQkFTRSAqLwotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCQkiYXQ5MXNhbTkyNjAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkyCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4MDA1MDAwMDAJLyogQVQ5MVNBTTkyNjBfVUhQX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJCSJhdDkxc2FtOTI2MCIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkyCiAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQkJMQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkweDIyMDAwMDAwCS8qIGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJCTB4MjIwMDAwMDAJLyogbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCVBIWVNfU0RSQU0KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJMHgyM2UwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCVBIWVNfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCTB4MjNlMDAwMDAKIAotI3VuZGVmIENGR19VU0VfREFUQUZMQVNIX0NTMAotI2RlZmluZSBDRkdfVVNFX0RBVEFGTEFTSF9DUzEJCTEKLSN1bmRlZiBDRkdfVVNFX05BTkRGTEFTSAorI3VuZGVmIENPTkZJR19TWVNfVVNFX0RBVEFGTEFTSF9DUzAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfREFUQUZMQVNIX0NTMQkJMQorI3VuZGVmIENPTkZJR19TWVNfVVNFX05BTkRGTEFTSAogCi0jaWZkZWYgQ0ZHX1VTRV9EQVRBRkxBU0hfQ1MwCisjaWZkZWYgQ09ORklHX1NZU19VU0VfREFUQUZMQVNIX0NTMAogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBkYXRhZmxhc2ggb24gQ1MwICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICTEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIDB4ODQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgMHg4NDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MjAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQyMDAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJjcC5iIDB4QzAwNDIwMDAgMHgyMjAwMDAwMCAweDIxMDAwMDsgYm9vdG0iCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJImNvbnNvbGU9dHR5UzAsMTE1MjAwICIJCQlcCkBAIC0xNDUsMTMgKzE0NSwxMyBAQAogCQkJCSJtdGRwYXJ0cz1hdDkxX25hbmQ6LShyb290KSAiCQlcCiAJCQkJInJ3IHJvb3Rmc3R5cGU9amZmczIiCiAKLSNlbGlmIENGR19VU0VfREFUQUZMQVNIX0NTMQorI2VsaWYgQ09ORklHX1NZU19VU0VfREFUQUZMQVNIX0NTMQogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBkYXRhZmxhc2ggb24gQ1MxICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICTEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMSArIDB4ODQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MxICsgMHg4NDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MjAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzEgKyBDT05GSUdfRU5WX09GRlNFVCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQyMDAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJjcC5iIDB4RDAwNDIwMDAgMHgyMjAwMDAwMCAweDIxMDAwMDsgYm9vdG0iCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJImNvbnNvbGU9dHR5UzAsMTE1MjAwICIJCQlcCkBAIC0xNTksNyArMTU5LDcgQEAKIAkJCQkibXRkcGFydHM9YXQ5MV9uYW5kOi0ocm9vdCkgIgkJXAogCQkJCSJydyByb290ZnN0eXBlPWpmZnMyIgogCi0jZWxzZSAvKiBDRkdfVVNFX05BTkRGTEFTSCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19VU0VfTkFOREZMQVNIICovCiAKIC8qIGJvb3RzdHJhcCArIHUtYm9vdCArIGVudiArIGxpbnV4IGluIG5hbmRmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQJMQpAQCAtMTc3LDIxICsxNzcsMjEgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7MTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQogCi0jZGVmaW5lIENGR19QUk9NUFQJCSJVLUJvb3Q+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCiAKICNkZWZpbmUgUk9VTkQoQSwgQikJCSgoKEEpICsgKEIpKSAmIH4oKEIpIC0gMSkpCiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCVJPVU5EKDMgKiBDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCwgMHgxMDAwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogMTI4IGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQlST1VORCgzICogQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQsIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiAxMjggYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDMyKjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05MjYxZWsuaCBiL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2MWVrLmgKaW5kZXggODBjM2IwMy4uYWRkMzFjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05MjYxZWsuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTkyNjFlay5oCkBAIC0zMSw3ICszMSw3IEBACiAjZGVmaW5lIEFUOTFfQ1BVX05BTUUJCSJBVDkxU0FNOTI2MSIKICNkZWZpbmUgQVQ5MV9NQUlOX0NMT0NLCQkxOTg2NTYwMDAJLyogZnJvbSAxOC40MzIgTUh6IGNyeXN0YWwgKi8KICNkZWZpbmUgQVQ5MV9NQVNURVJfQ0xPQ0sJOTkzMjgwMDAJLyogcGVyaXBoZXJhbCA9IG1haW4gLyAyICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAwMDAJCS8qIDF1cyByZXNvbHV0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwMDAwCQkvKiAxdXMgcmVzb2x1dGlvbiAqLwogCiAjZGVmaW5lIEFUOTFfU0xPV19DTE9DSwkJMzI3NjgJLyogc2xvdyBjbG9jayAqLwogCkBAIC02MywxMCArNjMsMTAgQEAKICN1bmRlZiBMQ0RfVEVTVF9QQVRURVJOCiAjZGVmaW5lIENPTkZJR19MQ0RfSU5GTwkJCTEKICNkZWZpbmUgQ09ORklHX0xDRF9JTkZPX0JFTE9XX0xPR08JMQotI2RlZmluZSBDRkdfV0hJVEVfT05fQkxBQ0sJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19XSElURV9PTl9CTEFDSwkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTENECQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9MQ0RfQkdSNTU1CQkxCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCQkxCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCiAKQEAgLTEwMSwyMiArMTAxLDIyIEBACiAKIC8qIERhdGFGbGFzaCAqLwogI2RlZmluZSBDT05GSUdfSEFTX0RBVEFGTEFTSAkJMQotI2RlZmluZSBDRkdfU1BJX1dSSVRFX1RPVVQJCSg1KkNGR19IWikKLSNkZWZpbmUgQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1MJCTIKLSNkZWZpbmUgQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMAkweEMwMDAwMDAwCS8qIENTMCAqLwotI2RlZmluZSBDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MzCTB4RDAwMDAwMDAJLyogQ1MzICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX1dSSVRFX1RPVVQJCSg1KkNPTkZJR19TWVNfSFopCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMAkweEMwMDAwMDAwCS8qIENTMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMwkweEQwMDAwMDAwCS8qIENTMyAqLwogI2RlZmluZSBBVDkxX1NQSV9DTEsJCQkxNTAwMDAwMAogI2RlZmluZSBEQVRBRkxBU0hfVENTUwkJCSgweDFhIDw8IDE2KQogI2RlZmluZSBEQVRBRkxBU0hfVENIUwkJCSgweDEgPDwgMjQpCiAKIC8qIE5BTkQgZmxhc2ggKi8KICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCQkxCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfREJXXzgJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfREJXXzgJCQkxCiAKIC8qIE5PUiBmbGFzaCAtIG5vIHJlYWwgZmxhc2ggb24gdGhpcyBib2FyZCAqLwotI2RlZmluZSBDRkdfTk9fRkxBU0gJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCQkxCiAKIC8qIEV0aGVybmV0ICovCiAjZGVmaW5lIENPTkZJR19EUklWRVJfRE05MDAwCQkxCkBAIC0xMzEsMjcgKzEzMSwyNyBAQAogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCQkxCiAjZGVmaW5lIExJVFRMRUVORElBTgkJCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4MDA1MDAwMDAJLyogQVQ5MVNBTTkyNjFfVUhQX0JBU0UgKi8KLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkJImF0OTFzYW05MjYxIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCQkweDAwNTAwMDAwCS8qIEFUOTFTQU05MjYxX1VIUF9CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkiYXQ5MXNhbTkyNjEiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMgogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJCTEKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJMHgyMjAwMDAwMAkvKiBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDIyMDAwMDAwCS8qIGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4MjNlMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweDIzZTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1VTRV9EQVRBRkxBU0hfQ1MwCQkxCi0jdW5kZWYgQ0ZHX1VTRV9OQU5ERkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfREFUQUZMQVNIX0NTMAkJMQorI3VuZGVmIENPTkZJR19TWVNfVVNFX05BTkRGTEFTSAogCi0jaWZkZWYgQ0ZHX1VTRV9EQVRBRkxBU0hfQ1MwCisjaWZkZWYgQ09ORklHX1NZU19VU0VfREFUQUZMQVNIX0NTMAogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBkYXRhZmxhc2ggb24gQ1MwICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICTEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIDB4ODQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgMHg4NDAwKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MjAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQyMDAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJjcC5iIDB4QzAwNDIwMDAgMHgyMjAwMDAwMCAweDIxMDAwMDsgYm9vdG0iCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJImNvbnNvbGU9dHR5UzAsMTE1MjAwICIJCQlcCkBAIC0xNTksNyArMTU5LDcgQEAKIAkJCQkibXRkcGFydHM9YXQ5MV9uYW5kOi0ocm9vdCkgIgkJXAogCQkJCSJydyByb290ZnN0eXBlPWpmZnMyIgogCi0jZWxzZSAvKiBDRkdfVVNFX05BTkRGTEFTSCAqLworI2Vsc2UgLyogQ09ORklHX1NZU19VU0VfTkFOREZMQVNIICovCiAKIC8qIGJvb3RzdHJhcCArIHUtYm9vdCArIGVudiArIGxpbnV4IGluIG5hbmRmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQJMQpAQCAtMTc3LDIxICsxNzcsMjEgQEAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7MTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQogCi0jZGVmaW5lIENGR19QUk9NUFQJCSJVLUJvb3Q+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCiAKICNkZWZpbmUgUk9VTkQoQSwgQikJCSgoKEEpICsgKEIpKSAmIH4oKEIpIC0gMSkpCiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCVJPVU5EKDMgKiBDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCwgMHgxMDAwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogMTI4IGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQlST1VORCgzICogQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQsIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiAxMjggYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDMyKjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05MjYzZWsuaCBiL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOTI2M2VrLmgKaW5kZXggYjQzNjhlZi4uNTU1Y2I3ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05MjYzZWsuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTkyNjNlay5oCkBAIC0zMSw3ICszMSw3IEBACiAjZGVmaW5lIEFUOTFfQ1BVX05BTUUJCSJBVDkxU0FNOTI2MyIKICNkZWZpbmUgQVQ5MV9NQUlOX0NMT0NLCQkxOTk5MTkwMDAJLyogZnJvbSAxNi4zNjcgTUh6IGNyeXN0YWwgKi8KICNkZWZpbmUgQVQ5MV9NQVNURVJfQ0xPQ0sJOTk5NTk1MDAJLyogcGVyaXBoZXJhbCA9IG1haW4gLyAyICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAwMDAJCS8qIDF1cyByZXNvbHV0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwMDAwCQkvKiAxdXMgcmVzb2x1dGlvbiAqLwogCiAjZGVmaW5lIEFUOTFfU0xPV19DTE9DSwkJMzI3NjgJLyogc2xvdyBjbG9jayAqLwogCkBAIC02MywxMCArNjMsMTAgQEAKICN1bmRlZiBMQ0RfVEVTVF9QQVRURVJOCiAjZGVmaW5lIENPTkZJR19MQ0RfSU5GTwkJCTEKICNkZWZpbmUgQ09ORklHX0xDRF9JTkZPX0JFTE9XX0xPR08JMQotI2RlZmluZSBDRkdfV0hJVEVfT05fQkxBQ0sJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19XSElURV9PTl9CTEFDSwkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTENECQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9MQ0RfQkdSNTU1CQkxCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCQkxCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCiAKQEAgLTEwMSwzMCArMTAxLDMwIEBACiAKIC8qIERhdGFGbGFzaCAqLwogI2RlZmluZSBDT05GSUdfSEFTX0RBVEFGTEFTSAkJMQotI2RlZmluZSBDRkdfU1BJX1dSSVRFX1RPVVQJCSg1KkNGR19IWikKLSNkZWZpbmUgQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1MJCTEKLSNkZWZpbmUgQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMAkweEMwMDAwMDAwCS8qIENTMCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NQSV9XUklURV9UT1VUCQkoNSpDT05GSUdfU1lTX0haKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBDUzAgKi8KICNkZWZpbmUgQVQ5MV9TUElfQ0xLCQkJMTUwMDAwMDAKICNkZWZpbmUgREFUQUZMQVNIX1RDU1MJCQkoMHgxYSA8PCAxNikKICNkZWZpbmUgREFUQUZMQVNIX1RDSFMJCQkoMHgxIDw8IDI0KQogCiAvKiBOT1IgZmxhc2gsIGlmIHBvcHVsYXRlZCAqLwogI2lmIDEKLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkJMQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkxCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCiAjZW5kaWYKIAogLyogTkFORCBmbGFzaCAqLwogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJCTEKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfTkFORF9EQldfOAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9EQldfOAkJCTEKIAogLyogRXRoZXJuZXQgKi8KICNkZWZpbmUgQ09ORklHX01BQ0IJCQkxCkBAIC0xMzcsMjcgKzEzNywyNyBAQAogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCQkxCiAjZGVmaW5lIExJVFRMRUVORElBTgkJCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4MDBhMDAwMDAJLyogQVQ5MVNBTTkyNjNfVUhQX0JBU0UgKi8KLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkJImF0OTFzYW05MjYzIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCQkweDAwYTAwMDAwCS8qIEFUOTFTQU05MjYzX1VIUF9CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCQkiYXQ5MXNhbTkyNjMiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMgogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJCTEKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJMHgyMjAwMDAwMAkvKiBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDIyMDAwMDAwCS8qIGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4MjNlMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweDIzZTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1VTRV9EQVRBRkxBU0gJCTEKLSN1bmRlZiBDRkdfVVNFX05BTkRGTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9EQVRBRkxBU0gJCTEKKyN1bmRlZiBDT05GSUdfU1lTX1VTRV9OQU5ERkxBU0gKIAotI2lmZGVmIENGR19VU0VfREFUQUZMQVNICisjaWZkZWYgQ09ORklHX1NZU19VU0VfREFUQUZMQVNICiAKIC8qIGJvb3RzdHJhcCArIHUtYm9vdCArIGVudiArIGxpbnV4IGluIGRhdGFmbGFzaCBvbiBDUzAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0gJMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgMHg4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyAweDg0MDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQyMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDIwMAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJImNwLmIgMHhDMDA0MjAwMCAweDIyMDAwMDAwIDB4MjEwMDAwOyBib290bSIKICNkZWZpbmUgQ09ORklHX0JPT1RBUkdTCQkiY29uc29sZT10dHlTMCwxMTUyMDAgIiBcCkBAIC0xNjUsNyArMTY1LDcgQEAKIAkJCQkibXRkcGFydHM9YXQ5MV9uYW5kOi0ocm9vdCkgIlwKIAkJCQkicncgcm9vdGZzdHlwZT1qZmZzMiIKIAotI2Vsc2UgLyogQ0ZHX1VTRV9OQU5ERkxBU0ggKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfVVNFX05BTkRGTEFTSCAqLwogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBuYW5kZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECTEKQEAgLTE4MSwyMSArMTgxLDIxIEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQogCiAjZGVmaW5lIFJPVU5EKEEsIEIpCQkoKChBKSArIChCKSkgJiB+KChCKSAtIDEpKQogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQlST1VORCgzICogQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQsIDB4MTAwMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIDEyOCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJUk9VTkQoMyAqIENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0LCAweDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogMTI4IGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOXJsZWsuaCBiL2luY2x1ZGUvY29uZmlncy9hdDkxc2FtOXJsZWsuaAppbmRleCAzMjE2OGRjLi42NDhkNjBlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXQ5MXNhbTlybGVrLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0OTFzYW05cmxlay5oCkBAIC0zMSw3ICszMSw3IEBACiAjZGVmaW5lIEFUOTFfQ1BVX05BTUUJCSJBVDkxU0FNOVJMIgogI2RlZmluZSBBVDkxX01BSU5fQ0xPQ0sJCTIwMDAwMDAwMAkvKiBmcm9tIDEyLjAwMCBNSHogY3J5c3RhbCAqLwogI2RlZmluZSBBVDkxX01BU1RFUl9DTE9DSwkxMDAwMDAwMDAJLyogcGVyaXBoZXJhbCA9IG1haW4gLyAyICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAwMDAJCS8qIDF1cyByZXNvbHV0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwMDAwCQkvKiAxdXMgcmVzb2x1dGlvbiAqLwogCiAjZGVmaW5lIEFUOTFfU0xPV19DTE9DSwkJMzI3NjgJLyogc2xvdyBjbG9jayAqLwogCkBAIC02MywxMCArNjMsMTAgQEAKICN1bmRlZiBMQ0RfVEVTVF9QQVRURVJOCiAjZGVmaW5lIENPTkZJR19MQ0RfSU5GTwkJCTEKICNkZWZpbmUgQ09ORklHX0xDRF9JTkZPX0JFTE9XX0xPR08JMQotI2RlZmluZSBDRkdfV0hJVEVfT05fQkxBQ0sJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19XSElURV9PTl9CTEFDSwkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfTENECQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9MQ0RfUkdCNTY1CQkxCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCQkxCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCiAKQEAgLTkyLDQxICs5Miw0MSBAQAogCiAvKiBEYXRhRmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0hBU19EQVRBRkxBU0gJCTEKLSNkZWZpbmUgQ0ZHX1NQSV9XUklURV9UT1VUCQkoNSpDRkdfSFopCi0jZGVmaW5lIENGR19NQVhfREFUQUZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfV1JJVEVfVE9VVAkJKDUqQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogQ1MwICovCiAjZGVmaW5lIEFUOTFfU1BJX0NMSwkJCTE1MDAwMDAwCiAjZGVmaW5lIERBVEFGTEFTSF9UQ1NTCQkJKDB4MWEgPDwgMTYpCiAjZGVmaW5lIERBVEFGTEFTSF9UQ0hTCQkJKDB4MSA8PCAyNCkKIAogLyogTk9SIGZsYXNoIC0gbm90IHByZXNlbnQgKi8KLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkJMQogCiAvKiBOQU5EIGZsYXNoICovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkJMQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0RCV184CQkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0RCV184CQkJMQogCiAvKiBFdGhlcm5ldCAtIG5vdCBwcmVzZW50ICovCiAKIC8qIFVTQiAtIG5vdCBzdXBwb3J0ZWQgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJMHgyMjAwMDAwMAkvKiBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkweDIyMDAwMDAwCS8qIGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCTB4MjNlMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkweDIzZTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1VTRV9EQVRBRkxBU0gJCTEKLSN1bmRlZiBDRkdfVVNFX05BTkRGTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9EQVRBRkxBU0gJCTEKKyN1bmRlZiBDT05GSUdfU1lTX1VTRV9OQU5ERkxBU0gKIAotI2lmZGVmIENGR19VU0VfREFUQUZMQVNICisjaWZkZWYgQ09ORklHX1NZU19VU0VfREFUQUZMQVNICiAKIC8qIGJvb3RzdHJhcCArIHUtYm9vdCArIGVudiArIGxpbnV4IGluIGRhdGFmbGFzaCBvbiBDUzAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0gJMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgMHg4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyAweDg0MDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQyMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDIwMAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJImNwLmIgMHhDMDA0MjAwMCAweDIyMDAwMDAwIDB4MjEwMDAwOyBib290bSIKICNkZWZpbmUgQ09ORklHX0JPT1RBUkdTCQkiY29uc29sZT10dHlTMCwxMTUyMDAgIiBcCkBAIC0xMzQsNyArMTM0LDcgQEAKIAkJCQkibXRkcGFydHM9YXQ5MV9uYW5kOi0ocm9vdCkgIlwKIAkJCQkicncgcm9vdGZzdHlwZT1qZmZzMiIKIAotI2Vsc2UgLyogQ0ZHX1VTRV9OQU5ERkxBU0ggKi8KKyNlbHNlIC8qIENPTkZJR19TWVNfVVNFX05BTkRGTEFTSCAqLwogCiAvKiBib290c3RyYXAgKyB1LWJvb3QgKyBlbnYgKyBsaW51eCBpbiBuYW5kZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECTEKQEAgLTE1MCwyMSArMTUwLDIxIEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQogCiAjZGVmaW5lIFJPVU5EKEEsIEIpCQkoKChBKSArIChCKSkgJiB+KChCKSAtIDEpKQogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQlST1VORCgzICogQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQsIDB4MTAwMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIDEyOCBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJUk9VTkQoMyAqIENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0LCAweDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogMTI4IGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdGMuaCBiL2luY2x1ZGUvY29uZmlncy9hdGMuaAppbmRleCAwMmVjMjM5Li4yNDAxNWI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXRjLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0Yy5oCkBAIC03OSwxMCArNzksMTAgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSzIJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTIJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0syCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMgkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNkZWZpbmUgQ09ORklHX0VUSEVSX09OX0ZDQzMKIApAQCAtOTIsOCArOTIsOCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIGxvY2FsIEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgSGFsZiBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0szCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUzCShDTVhGQ1JfUkYzQ1NfQ0xLMTV8Q01YRkNSX1RGM0NTX0NMSzE2KQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSzMJKENNWEZDUl9GQzN8Q01YRkNSX1JGM0NTX01TS3xDTVhGQ1JfVEYzQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUzCShDTVhGQ1JfUkYzQ1NfQ0xLMTV8Q01YRkNSX1RGM0NTX0NMSzE2KQogCiAvKiBzeXN0ZW0gY2xvY2sgcmF0ZSAoQ0xLSU4pIC0gZXF1YWwgdG8gdGhlIDYweCBhbmQgbG9jYWwgYnVzIHNwZWVkICovCiAjZGVmaW5lIENPTkZJR184MjYwX0NMS0lOCTY0MDAwMDAwCS8qIGluIEh6ICovCkBAIC0xMjAsNyArMTIwLDcgQEAKICAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogCiAvKgpAQCAtMTUwLDMxICsxNTAsMzEgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MgMHhGRkYwMDEwMAkvKiAiYmFkIiBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgMHhGRkYwMDEwMAkvKiAiYmFkIiBhZGRyZXNzCQkqLwogCi0jZGVmaW5lIENGR19BTExPQ19EUFJBTQorI2RlZmluZSBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTkzLDkyICsxOTMsOTIgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF8xNkJJVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkoSFJDV19DSVAgfCBIUkNXX0lTQjEwMCB8IEhSQ1dfQk1TIHwgXAogCQkJCSBIUkNXX0JQUzEwIHxcCiAJCQkJIEhSQ1dfQVBQQzEwKQogCiAvKiBubyBzbGF2ZXMgc28ganVzdCBmaWxsIHdpdGggemVyb3MgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICoKLSAqIDYweCBTRFJBTSBpcyBtYXBwZWQgYXQgQ0ZHX1NEUkFNX0JBU0UuCisgKiA2MHggU0RSQU0gaXMgbWFwcGVkIGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRS4KICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fTUFYX1NJWkUJMHgwODAwMDAwMAkvKiBtYXguIDEyOCBNQgkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fTUFYX1NJWkUJMHgwODAwMDAwMAkvKiBtYXguIDEyOCBNQgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jIGRlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX1BDSQogI2RlZmluZQlDT05GSUdfUENJX1BOUAotI2RlZmluZQlDRkdfUENJX01TVFJfSU9fQlVTCTB4MDAwMDAwMDAJLyogUENJIGJhc2UgICAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0JVUwkweDAwMDAwMDAwCS8qIFBDSSBiYXNlICAgKi8KIAogI2lmIDEKIC8qIGVudmlyb25tZW50IGlzIGluIEZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrMHgzMDAwMCkKKyMgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSsweDMwMDAwKQogIyBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAwCiAjIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMjA0OAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CS8qIDE2LWJ5dGUgcGFnZSBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CS8qIDE2LWJ5dGUgcGFnZSBzaXplCSovCiAjZW5kaWYKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMjkyLDkgKzI5Miw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUgICAgICAzMiAgICAgIC8qIEZvciBNUEM4MjYwIENQVSAgICAgICAgICAgICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMwNywzMCArMzA3LDMwIEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUICAgKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxcCiAJCQkgSElEMF9EQ0l8SElEMF9JRkVNfEhJRDBfQUJFKQotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgKEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMICAoSElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LTUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHR1cm4gb24gQ2hlY2tzdG9wIFJlc2V0IEVuYWJsZQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICBSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1JNUiAgICAgICAgIFJNUl9DU1JFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjZGVmaW5lIEJDUl9BUEQwMQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfQVBEMDF8QkNSX0VUTXxCQ1JfTEVUTSkJLyogODI2MCBtb2RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0FQRDAxfEJDUl9FVE18QkNSX0xFVE0pCS8qIDgyNjAgbW9kZSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTSVVNQ1IgLSBTSVUgTW9kdWxlIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0lVTUNSICAgICAgKFNJVU1DUl9CQkR8U0lVTUNSX0FQUEMxMHxcCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAgICAgKFNJVU1DUl9CQkR8U0lVTUNSX0FQUEMxMHxcCiAJCQkgU0lVTUNSX0NTMTBQQzAwfFNJVU1DUl9CQ1RMQzEwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNDAsMTAgKzM0MCwxMCBAQAogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1B8U1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSICAgICAgIChTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQKQogI2VuZGlmIC8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC0zNTMsNyArMzUzLDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAgICAgICAgICAgICAgICAgNC00MgpAQCAtMzYxLDMzICszNjEsMzMgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW5zdXJlIERGQlJHIGlzIERpdmlkZSBieSAxNgogICovCi0jZGVmaW5lIENGR19TQ0NSICAgICAgICBTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgICAgICBTQ0NSX0RGQlJHMDEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgICAgICAgIDAKIAotI2RlZmluZSBDRkdfTUlOX0FNX01BU0sJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JTl9BTV9NQVNLCTB4QzAwMDAwMDAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1QVFBSIC0gTWVtb3J5IFJlZnJlc2ggVGltZXIgUHJlc2NhbGVyIFJlZ2lzdGVyICAgICAgICAgICAgICAxMC0xOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NUFRQUiAgICAgICAweDFGMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAgICAgICAweDFGMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUFNSVCAtIFJlZnJlc2ggVGltZXIgUmVnaXN0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLTE2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1BTUlQgICAgICAgIDB4MGYKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUICAgICAgICAweDBmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBTUlQgLSBTRFJBTSBNb2RlIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC0xMApAQCAtMzk2LDEyICszOTYsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOC1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl84Q09MCShDRkdfTUlOX0FNX01BU0sJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzhDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E3CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfUFNETVJfOENPTAkoUFNETVJfUEJJCQkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl84Q09MCShQU0RNUl9QQkkJCQl8XAogCQkJIFBTRE1SX1NEQU1fQTE1X0lTX0E1CQl8XAogCQkJIFBTRE1SX0JTTUFfQTE1X0ExNwkJfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E3CQl8XApAQCAtNDE0LDEyICs0MTQsMTIgQEAKIAogCS8qIFNEUkFNIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgOS1jb2x1bW4gY2hpcHMKIAkgKi8KLSNkZWZpbmUgQ0ZHX09SMl85Q09MCShDRkdfTUlOX0FNX01BU0sJCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IyXzlDT0wJKENPTkZJR19TWVNfTUlOX0FNX01BU0sJCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkxX0E2CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2RlZmluZSBDRkdfUFNETVJfOUNPTAkoUFNETVJfUEJJCQkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUl85Q09MCShQU0RNUl9QQkkJCQl8XAogCQkJIFBTRE1SX1NEQU1fQTE2X0lTX0E1CQl8XAogCQkJIFBTRE1SX0JTTUFfQTE1X0ExNwkJfFwKIAkJCSBQU0RNUl9TREExMF9QQkkxX0E2CQl8XApAQCAtNDQxLDE2ICs0NDEsMTYgQEAKICAqCiAgKi8KIAotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAwMDAKIAogLyogQmFuayAwIC0gRkxBU0gKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgKChDRkdfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gICgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzE2ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gIChQMlNaX1RPX0FNKENGR19GTEFTSF9TSVpFKSAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAoUDJTWl9UT19BTShDT05GSUdfU1lTX0ZMQVNIX1NJWkUpICAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzNfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNDU5LDIzICs0NTksMjMgQEAKIAogLyogQmFuayAyIC0gNjB4IGJ1cyBTRFJBTQogICovCi0jaWZuZGVmIENGR19SQU1CT09UCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAoKENGR19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0gICgoQ09ORklHX1NZU19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX1AgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JIENGR19PUjJfOENPTAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JIENPTkZJR19TWVNfT1IyXzhDT0wKIAotI2RlZmluZSBDRkdfUFNETVIJIENGR19QU0RNUl84Q09MCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkgQ09ORklHX1NZU19QU0RNUl84Q09MCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0gICgoUlRDX0JBU0VfQUREUiAmIEJSeF9CQV9NU0spICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNICAoKFJUQ19CQVNFX0FERFIgJiBCUnhfQkFfTVNLKSAgIHxcCiAJCQkgQlJ4X1BTXzggICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1VQTUEgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gIChPUnhVX0FNX01TSyB8IE9SeFVfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTSAgKE9SeFVfQU1fTVNLIHwgT1J4VV9CSSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIHN0dWZmCkBAIC00ODQsOCArNDg0LDggQEAKICAqLwogI2RlZmluZSBDT05GSUdfSTgyMzY1CiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkweDgxMDAwMDAwCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCTB4ODEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJMHgxMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTQ5OCwyMCArNDk4LDIwIEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQJIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4YTAwMDAwMDAKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgxMDAKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgxMDAKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDEwOAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MTA4CiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXRuZ3cxMDAuaCBiL2luY2x1ZGUvY29uZmlncy9hdG5ndzEwMC5oCmluZGV4IDVjMjg2MzguLjllOTc2MjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hdG5ndzEwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hdG5ndzEwMC5oCkBAIC0zMSw3ICszMSw3IEBACiAjZGVmaW5lIENPTkZJR19BVDMyQVA3MDAwCQkxCiAjZGVmaW5lIENPTkZJR19BVE5HVzEwMAkJCTEKIAotI2RlZmluZSBDRkdfSFoJCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTEwMDAKIAogLyoKICAqIFNldCB1cCB0aGUgUExMIHRvIHJ1biBhdCAxNDAgTUh6LCB0aGUgQ1BVIHRvIHJ1biBhdCB0aGUgUExMCkBAIC0zOSwxNSArMzksMTUgQEAKICAqIGFuZCB0aGUgUEJBIGJ1cyB0byBydW4gYXQgMS80IHRoZSBQTEwgZnJlcXVlbmN5LgogICovCiAjZGVmaW5lIENPTkZJR19QTEwJCQkxCi0jZGVmaW5lIENGR19QT1dFUl9NQU5BR0VSCQkxCi0jZGVmaW5lIENGR19PU0MwX0haCQkJMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMTDBfRElWCQkJMQotI2RlZmluZSBDRkdfUExMMF9NVUwJCQk3Ci0jZGVmaW5lIENGR19QTEwwX1NVUFBSRVNTX0NZQ0xFUwkxNgotI2RlZmluZSBDRkdfQ0xLRElWX0NQVQkJCTAKLSNkZWZpbmUgQ0ZHX0NMS0RJVl9IU0IJCQkxCi0jZGVmaW5lIENGR19DTEtESVZfUEJBCQkJMgotI2RlZmluZSBDRkdfQ0xLRElWX1BCQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QT1dFUl9NQU5BR0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfT1NDMF9IWgkJCTIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9ESVYJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9NVUwJCQk3CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfQ1BVCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9IU0IJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQQkJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJCCQkJMQogCiAvKgogICogVGhlIFBMTE9QVCByZWdpc3RlciBjb250cm9scyB0aGUgUExMIGxpa2UgdGhpczoKQEAgLTU2LDcgKzU2LDcgQEAKICAqCiAgKiBXZSB3YW50IGljcD0xIChkZWZhdWx0KSBhbmQgaXZjbz0wICg4MC0xNjAgTUh6KSBvciBpdmNvPTIgKDE1MC0yNDBNSHopLgogICovCi0jZGVmaW5lIENGR19QTEwwX09QVAkJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX09QVAkJCTB4MDQKIAogI2RlZmluZSBDT05GSUdfVVNBUlQxCQkJMQogCkBAIC0xMjUsOCArMTI1LDggQEAKICNkZWZpbmUgQ09ORklHX0FUTUVMX1VTQVJUCQkxCiAjZGVmaW5lIENPTkZJR19NQUNCCQkJMQogI2RlZmluZSBDT05GSUdfUElPMgkJCTEKLSNkZWZpbmUgQ0ZHX05SX1BJT1MJCQk1Ci0jZGVmaW5lIENGR19IU0RSQU1DCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05SX1BJT1MJCQk1CisjZGVmaW5lIENPTkZJR19TWVNfSFNEUkFNQwkJCTEKICNkZWZpbmUgQ09ORklHX01NQwkJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX01DSQkJMQogI2RlZmluZSBDT05GSUdfQVRNRUxfU1BJCQkxCkBAIC0xMzQsNDggKzEzNCw0OCBAQAogI2RlZmluZSBDT05GSUdfU1BJX0ZMQVNICQkxCiAjZGVmaW5lIENPTkZJR19TUElfRkxBU0hfQVRNRUwJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQk2NTUzNgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9BRERSCQkoQ0ZHX0lOVFJBTV9CQVNFICsgQ0ZHX0lOVFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfQUREUgkJKENPTkZJR19TWVNfSU5UUkFNX0JBU0UgKyBDT05GSUdfU1lTX0lOVFJBTV9TSVpFKQogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQotI2RlZmluZSBDRkdfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQogCiAvKiBBbGxvdyA0TUIgZm9yIHRoZSBrZXJuZWwgcnVuLXRpbWUgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQogCiAvKiBPdGhlciBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRoYXQgc2hvdWxkbid0IGhhdmUgdG8gY2hhbmdlIGFsbCB0aGF0IG9mdGVuICovCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCShDRkdfTUVNVEVTVF9TVEFSVCArIDB4MWYwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIDB4MWYwMDAwMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDAyLmggYi9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDAyLmgKaW5kZXggZmFhN2EwMS4uMjg3MGFkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDIuaApAQCAtMzgsNDAgKzM4LDQwIEBACiAgKiBUaW1lciBjbG9jayBmcmVxdWVuY3kuIFdlJ3JlIHVzaW5nIHRoZSBDUFUtaW50ZXJuYWwgQ09VTlQgcmVnaXN0ZXIKICAqIGZvciB0aGlzLCBzbyB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIENQVSBjb3JlIGNsb2NrIGZyZXF1ZW5jeQogICovCi0jZGVmaW5lIENGR19IWgkJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMTAwMAogCiAvKgogICogU2V0IHVwIHRoZSBQTEwgdG8gcnVuIGF0IDE0MCBNSHosIHRoZSBDUFUgdG8gcnVuIGF0IHRoZSBQTEwKICAqIGZyZXF1ZW5jeSwgdGhlIEhTQiBhbmQgUEJCIGF0IDEvMiwgYW5kIHRoZSBQQkEgdG8gcnVuIGF0IDEvNCB0aGUKICAqIFBMTCBmcmVxdWVuY3kuCi0gKiAoQ0ZHX09TQzBfSFogKiBDRkdfUExMMF9NVUwpIC8gQ0ZHX1BMTDBfRElWID0gUExMIE1IegorICogKENPTkZJR19TWVNfT1NDMF9IWiAqIENPTkZJR19TWVNfUExMMF9NVUwpIC8gQ09ORklHX1NZU19QTEwwX0RJViA9IFBMTCBNSHoKICAqLwogI2RlZmluZSBDT05GSUdfUExMCQkJMQotI2RlZmluZSBDRkdfUE9XRVJfTUFOQUdFUgkJMQotI2RlZmluZSBDRkdfT1NDMF9IWgkJCTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTEwwX0RJVgkJCTEKLSNkZWZpbmUgQ0ZHX1BMTDBfTVVMCQkJNwotI2RlZmluZSBDRkdfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QT1dFUl9NQU5BR0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfT1NDMF9IWgkJCTIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9ESVYJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9NVUwJCQk3CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKIC8qCiAgKiBTZXQgdGhlIENQVSBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9DUFUpID0gQ1BVIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfQ1BVKSA9IENQVSBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX0NQVQkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfQ1BVCQkJMAogLyoKICAqIFNldCB0aGUgSFNCIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX0hTQikgPSBIU0IgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9IU0IpID0gSFNCIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfSFNCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9IU0IJCQkxCiAvKgogICogU2V0IHRoZSBQQkEgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfUEJBKSA9IFBCQSBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX1BCQSkgPSBQQkEgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkEJCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQQkJCTIKIC8qCiAgKiBTZXQgdGhlIFBCQiBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9QQkIpID0gUEJCIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfUEJCKSA9IFBCQiBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX1BCQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJCCQkJMQogCiAvKgogICogVGhlIFBMTE9QVCByZWdpc3RlciBjb250cm9scyB0aGUgUExMIGxpa2UgdGhpczoKQEAgLTgwLDcgKzgwLDcgQEAKICAqCiAgKiBXZSB3YW50IGljcD0xIChkZWZhdWx0KSBhbmQgaXZjbz0wICg4MC0xNjAgTUh6KSBvciBpdmNvPTIgKDE1MC0yNDBNSHopLgogICovCi0jZGVmaW5lIENGR19QTEwwX09QVAkJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX09QVAkJCTB4MDQKIAogI3VuZGVmIENPTkZJR19VU0FSVDAKICNkZWZpbmUgQ09ORklHX1VTQVJUMQkJCTEKQEAgLTE1MCw1NSArMTUwLDU1IEBACiAjZGVmaW5lIENPTkZJR19BVE1FTF9VU0FSVAkJMQogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19OUl9QSU9TCQkJNQotI2RlZmluZSBDRkdfSFNEUkFNQwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUl9QSU9TCQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKIC8qIEV4dGVybmFsIGZsYXNoIG9uIFNUSzEwMDAgKi8KICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQk2NTUzNgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9BRERSCQkoQ0ZHX0lOVFJBTV9CQVNFICsgQ0ZHX0lOVFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfQUREUgkJKENPTkZJR19TWVNfSU5UUkFNX0JBU0UgKyBDT05GSUdfU1lTX0lOVFJBTV9TSVpFKQogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQotI2RlZmluZSBDRkdfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQogCiAvKiBBbGxvdyA0TUIgZm9yIHRoZSBrZXJuZWwgcnVuLXRpbWUgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQogCiAvKiBPdGhlciBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRoYXQgc2hvdWxkbid0IGhhdmUgdG8gY2hhbmdlIGFsbCB0aGF0IG9mdGVuICovCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCShDRkdfTUVNVEVTVF9TVEFSVCArIDB4NzAwMDAwKQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAweDcwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDMuaCBiL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDMuaAppbmRleCBlMzA4NGQ0Li4xZTgwZGM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDAzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwMy5oCkBAIC0zOCw0MCArMzgsNDAgQEAKICAqIFRpbWVyIGNsb2NrIGZyZXF1ZW5jeS4gV2UncmUgdXNpbmcgdGhlIENQVS1pbnRlcm5hbCBDT1VOVCByZWdpc3RlcgogICogZm9yIHRoaXMsIHNvIHRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgQ1BVIGNvcmUgY2xvY2sgZnJlcXVlbmN5CiAgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBTZXQgdXAgdGhlIFBMTCB0byBydW4gYXQgMTQwIE1IeiwgdGhlIENQVSB0byBydW4gYXQgdGhlIFBMTAogICogZnJlcXVlbmN5LCB0aGUgSFNCIGFuZCBQQkIgYXQgMS8yLCBhbmQgdGhlIFBCQSB0byBydW4gYXQgMS80IHRoZQogICogUExMIGZyZXF1ZW5jeS4KLSAqIChDRkdfT1NDMF9IWiAqIENGR19QTEwwX01VTCkgLyBDRkdfUExMMF9ESVYgPSBQTEwgTUh6CisgKiAoQ09ORklHX1NZU19PU0MwX0haICogQ09ORklHX1NZU19QTEwwX01VTCkgLyBDT05GSUdfU1lTX1BMTDBfRElWID0gUExMIE1IegogICovCiAjZGVmaW5lIENPTkZJR19QTEwJCQkxCi0jZGVmaW5lIENGR19QT1dFUl9NQU5BR0VSCQkxCi0jZGVmaW5lIENGR19PU0MwX0haCQkJMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMTDBfRElWCQkJMQotI2RlZmluZSBDRkdfUExMMF9NVUwJCQk3Ci0jZGVmaW5lIENGR19QTEwwX1NVUFBSRVNTX0NZQ0xFUwkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BPV0VSX01BTkFHRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PU0MwX0haCQkJMjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX0RJVgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX01VTAkJCTcKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX1NVUFBSRVNTX0NZQ0xFUwkxNgogLyoKICAqIFNldCB0aGUgQ1BVIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX0NQVSkgPSBDUFUgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9DUFUpID0gQ1BVIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfQ1BVCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9DUFUJCQkwCiAvKgogICogU2V0IHRoZSBIU0IgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfSFNCKSA9IEhTQiBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX0hTQikgPSBIU0IgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9IU0IJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0hTQgkJCTEKIC8qCiAgKiBTZXQgdGhlIFBCQSBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9QQkEpID0gUEJBIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfUEJBKSA9IFBCQSBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX1BCQQkJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJBCQkJMgogLyoKICAqIFNldCB0aGUgUEJCIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX1BCQikgPSBQQkIgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9QQkIpID0gUEJCIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfUEJCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkIJCQkxCiAKIC8qCiAgKiBUaGUgUExMT1BUIHJlZ2lzdGVyIGNvbnRyb2xzIHRoZSBQTEwgbGlrZSB0aGlzOgpAQCAtODAsNyArODAsNyBAQAogICoKICAqIFdlIHdhbnQgaWNwPTEgKGRlZmF1bHQpIGFuZCBpdmNvPTAgKDgwLTE2MCBNSHopIG9yIGl2Y289MiAoMTUwLTI0ME1IeikuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMTDBfT1BUCQkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfT1BUCQkJMHgwNAogCiAjdW5kZWYgQ09ORklHX1VTQVJUMAogI2RlZmluZSBDT05GSUdfVVNBUlQxCQkJMQpAQCAtMTM0LDUzICsxMzQsNTMgQEAKIAogI2RlZmluZSBDT05GSUdfQVRNRUxfVVNBUlQJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19IU0RSQU1DCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKIC8qIEV4dGVybmFsIGZsYXNoIG9uIFNUSzEwMDAgKi8KICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQk2NTUzNgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9BRERSCQkoQ0ZHX0lOVFJBTV9CQVNFICsgQ0ZHX0lOVFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfQUREUgkJKENPTkZJR19TWVNfSU5UUkFNX0JBU0UgKyBDT05GSUdfU1lTX0lOVFJBTV9TSVpFKQogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkoMjU2KjEwMjQpCiAKIC8qIEFsbG93IDRNQiBmb3IgdGhlIGtlcm5lbCBydW4tdGltZSBpbWFnZSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkJKEVCSV9TRFJBTV9CQVNFICsgMHgwMDQwMDAwMCkKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCiAKIC8qIE90aGVyIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0byBjaGFuZ2UgYWxsIHRoYXQgb2Z0ZW4gKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJCSJVLUJvb3Q+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJCTE2Ci0jZGVmaW5lIENGR19QQlNJWkUJCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkJIlUtQm9vdD4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJRUJJX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJKENGR19NRU1URVNUX1NUQVJUICsgMHg3MDAwMDApCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIDB4NzAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwNC5oIGIvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwNC5oCmluZGV4IGM4N2M1YjcuLjBlNGY0MTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDA0LmgKQEAgLTM4LDQwICszOCw0MCBAQAogICogVGltZXIgY2xvY2sgZnJlcXVlbmN5LiBXZSdyZSB1c2luZyB0aGUgQ1BVLWludGVybmFsIENPVU5UIHJlZ2lzdGVyCiAgKiBmb3IgdGhpcywgc28gdGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBDUFUgY29yZSBjbG9jayBmcmVxdWVuY3kKICAqLwotI2RlZmluZSBDRkdfSFoJCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTEwMDAKIAogLyoKICAqIFNldCB1cCB0aGUgUExMIHRvIHJ1biBhdCAxNDAgTUh6LCB0aGUgQ1BVIHRvIHJ1biBhdCB0aGUgUExMCiAgKiBmcmVxdWVuY3ksIHRoZSBIU0IgYW5kIFBCQiBhdCAxLzIsIGFuZCB0aGUgUEJBIHRvIHJ1biBhdCAxLzQgdGhlCiAgKiBQTEwgZnJlcXVlbmN5LgotICogKENGR19PU0MwX0haICogQ0ZHX1BMTDBfTVVMKSAvIENGR19QTEwwX0RJViA9IFBMTCBNSHoKKyAqIChDT05GSUdfU1lTX09TQzBfSFogKiBDT05GSUdfU1lTX1BMTDBfTVVMKSAvIENPTkZJR19TWVNfUExMMF9ESVYgPSBQTEwgTUh6CiAgKi8KICNkZWZpbmUgQ09ORklHX1BMTAkJCTEKLSNkZWZpbmUgQ0ZHX1BPV0VSX01BTkFHRVIJCTEKLSNkZWZpbmUgQ0ZHX09TQzBfSFoJCQkyMDAwMDAwMAotI2RlZmluZSBDRkdfUExMMF9ESVYJCQkxCi0jZGVmaW5lIENGR19QTEwwX01VTAkJCTcKLSNkZWZpbmUgQ0ZHX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUE9XRVJfTUFOQUdFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX09TQzBfSFoJCQkyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfRElWCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfTVVMCQkJNworI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2CiAvKgogICogU2V0IHRoZSBDUFUgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfQ1BVKSA9IENQVSBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX0NQVSkgPSBDUFUgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9DUFUJCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0NQVQkJCTAKIC8qCiAgKiBTZXQgdGhlIEhTQiBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9IU0IpID0gSFNCIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfSFNCKSA9IEhTQiBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX0hTQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfSFNCCQkJMQogLyoKICAqIFNldCB0aGUgUEJBIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX1BCQSkgPSBQQkEgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9QQkEpID0gUEJBIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfUEJBCQkJMgorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkEJCQkyCiAvKgogICogU2V0IHRoZSBQQkIgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfUEJCKSA9IFBCQiBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX1BCQikgPSBQQkIgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkIJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQgkJCTEKIAogLyoKICAqIFRoZSBQTExPUFQgcmVnaXN0ZXIgY29udHJvbHMgdGhlIFBMTCBsaWtlIHRoaXM6CkBAIC04MCw3ICs4MCw3IEBACiAgKgogICogV2Ugd2FudCBpY3A9MSAoZGVmYXVsdCkgYW5kIGl2Y289MCAoODAtMTYwIE1Ieikgb3IgaXZjbz0yICgxNTAtMjQwTUh6KS4KICAqLwotI2RlZmluZSBDRkdfUExMMF9PUFQJCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9PUFQJCQkweDA0CiAKICN1bmRlZiBDT05GSUdfVVNBUlQwCiAjZGVmaW5lIENPTkZJR19VU0FSVDEJCQkxCkBAIC0xMzQsNTMgKzEzNCw1MyBAQAogCiAjZGVmaW5lIENPTkZJR19BVE1FTF9VU0FSVAkJMQogI2RlZmluZSBDT05GSUdfUElPMgkJCTEKLSNkZWZpbmUgQ0ZHX0hTRFJBTUMJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSFNEUkFNQwkJCTEKICNkZWZpbmUgQ09ORklHX01NQwkJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX01DSQkJMQogCi0jZGVmaW5lIENGR19EQ0FDSEVfTElORVNaCQkzMgotI2RlZmluZSBDRkdfSUNBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfTElORVNaCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9MSU5FU1oJCTMyCiAKICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJCTEKIAogLyogRXh0ZXJuYWwgZmxhc2ggb24gU1RLMTAwMCAqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCQkweDgwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMTM1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMTM1CiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogCi0jZGVmaW5lIENGR19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5UUkFNX1NJWkUJCQlJTlRFUk5BTF9TUkFNX1NJWkUKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCQlFQklfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9CQVNFCQkJSU5URVJOQUxfU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUkFNX1NJWkUJCQlJTlRFUk5BTF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJCTY1NTM2Ci0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDRkdfRkxBU0hfQkFTRSArIENGR19GTEFTSF9TSVpFIC0gQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19GTEFTSF9TSVpFIC0gQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lIENGR19JTklUX1NQX0FERFIJCShDRkdfSU5UUkFNX0JBU0UgKyBDRkdfSU5UUkFNX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9BRERSCQkoQ09ORklHX1NZU19JTlRSQU1fQkFTRSArIENPTkZJR19TWVNfSU5UUkFNX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCSgyNTYqMTAyNCkKIAogLyogQWxsb3cgMk1CIGZvciB0aGUga2VybmVsIHJ1bi10aW1lIGltYWdlICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwMjAwMDAwKQotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JCSgxNiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJKEVCSV9TRFJBTV9CQVNFICsgMHgwMDIwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKIAogLyogT3RoZXIgY29uZmlndXJhdGlvbiBzZXR0aW5ncyB0aGF0IHNob3VsZG4ndCBoYXZlIHRvIGNoYW5nZSBhbGwgdGhhdCBvZnRlbiAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkJIlUtQm9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkJMTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiVS1Cb290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyAweDcwMDAwMCkKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkoQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgMHg3MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDA2LmggYi9pbmNsdWRlL2NvbmZpZ3MvYXRzdGsxMDA2LmgKaW5kZXggZmU3YTk5Yi4uYzUzNDU5NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2F0c3RrMTAwNi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9hdHN0azEwMDYuaApAQCAtMzgsNDAgKzM4LDQwIEBACiAgKiBUaW1lciBjbG9jayBmcmVxdWVuY3kuIFdlJ3JlIHVzaW5nIHRoZSBDUFUtaW50ZXJuYWwgQ09VTlQgcmVnaXN0ZXIKICAqIGZvciB0aGlzLCBzbyB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIENQVSBjb3JlIGNsb2NrIGZyZXF1ZW5jeQogICovCi0jZGVmaW5lIENGR19IWgkJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMTAwMAogCiAvKgogICogU2V0IHVwIHRoZSBQTEwgdG8gcnVuIGF0IDE0MCBNSHosIHRoZSBDUFUgdG8gcnVuIGF0IHRoZSBQTEwKICAqIGZyZXF1ZW5jeSwgdGhlIEhTQiBhbmQgUEJCIGF0IDEvMiwgYW5kIHRoZSBQQkEgdG8gcnVuIGF0IDEvNCB0aGUKICAqIFBMTCBmcmVxdWVuY3kuCi0gKiAoQ0ZHX09TQzBfSFogKiBDRkdfUExMMF9NVUwpIC8gQ0ZHX1BMTDBfRElWID0gUExMIE1IegorICogKENPTkZJR19TWVNfT1NDMF9IWiAqIENPTkZJR19TWVNfUExMMF9NVUwpIC8gQ09ORklHX1NZU19QTEwwX0RJViA9IFBMTCBNSHoKICAqLwogI2RlZmluZSBDT05GSUdfUExMCQkJMQotI2RlZmluZSBDRkdfUE9XRVJfTUFOQUdFUgkJMQotI2RlZmluZSBDRkdfT1NDMF9IWgkJCTIwMDAwMDAwCi0jZGVmaW5lIENGR19QTEwwX0RJVgkJCTEKLSNkZWZpbmUgQ0ZHX1BMTDBfTVVMCQkJNwotI2RlZmluZSBDRkdfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QT1dFUl9NQU5BR0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfT1NDMF9IWgkJCTIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9ESVYJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9NVUwJCQk3CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKIC8qCiAgKiBTZXQgdGhlIENQVSBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9DUFUpID0gQ1BVIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfQ1BVKSA9IENQVSBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX0NQVQkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfQ1BVCQkJMAogLyoKICAqIFNldCB0aGUgSFNCIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX0hTQikgPSBIU0IgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9IU0IpID0gSFNCIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfSFNCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9IU0IJCQkxCiAvKgogICogU2V0IHRoZSBQQkEgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfUEJBKSA9IFBCQSBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX1BCQSkgPSBQQkEgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkEJCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQQkJCTIKIC8qCiAgKiBTZXQgdGhlIFBCQiBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9QQkIpID0gUEJCIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfUEJCKSA9IFBCQiBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX1BCQgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJCCQkJMQogCiAvKgogICogVGhlIFBMTE9QVCByZWdpc3RlciBjb250cm9scyB0aGUgUExMIGxpa2UgdGhpczoKQEAgLTgwLDcgKzgwLDcgQEAKICAqCiAgKiBXZSB3YW50IGljcD0xIChkZWZhdWx0KSBhbmQgaXZjbz0wICg4MC0xNjAgTUh6KSBvciBpdmNvPTIgKDE1MC0yNDBNSHopLgogICovCi0jZGVmaW5lIENGR19QTEwwX09QVAkJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX09QVAkJCTB4MDQKIAogI3VuZGVmIENPTkZJR19VU0FSVDAKICNkZWZpbmUgQ09ORklHX1VTQVJUMQkJCTEKQEAgLTE1MCw1NSArMTUwLDU1IEBACiAjZGVmaW5lIENPTkZJR19BVE1FTF9VU0FSVAkJMQogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19OUl9QSU9TCQkJNQotI2RlZmluZSBDRkdfSFNEUkFNQwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUl9QSU9TCQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKIC8qIEV4dGVybmFsIGZsYXNoIG9uIFNUSzEwMDAgKi8KICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQk2NTUzNgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9BRERSCQkoQ0ZHX0lOVFJBTV9CQVNFICsgQ0ZHX0lOVFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfQUREUgkJKENPTkZJR19TWVNfSU5UUkFNX0JBU0UgKyBDT05GSUdfU1lTX0lOVFJBTV9TSVpFKQogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQotI2RlZmluZSBDRkdfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQogCiAvKiBBbGxvdyA0TUIgZm9yIHRoZSBrZXJuZWwgcnVuLXRpbWUgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQogCiAvKiBPdGhlciBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRoYXQgc2hvdWxkbid0IGhhdmUgdG8gY2hhbmdlIGFsbCB0aGF0IG9mdGVuICovCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCShDRkdfTUVNVEVTVF9TVEFSVCArIDB4M2YwMDAwMCkKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQkoQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgMHgzZjAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2JhbWJvby5oIGIvaW5jbHVkZS9jb25maWdzL2JhbWJvby5oCmluZGV4IDc3M2IxNWEuLmYzZmZlMWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9iYW1ib28uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYmFtYm9vLmgKQEAgLTU1LDM3ICs1NSwzNyBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAgICAgMHhmZmYwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAgICAgMHhhMDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UxICAgICAgICBDRkdfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UyICAgICAgICBDRkdfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UzICAgICAgICBDRkdfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgICAgICAweGZmZjAwMDAwCSAgICAvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAgICAgMHhhMDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSAgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UyICAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMgICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAogCiAvKkRvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFICAgICAweGVmNjAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkgICAgICAgIDB4ZTAwMDAwMDAJICAgIC8qIGludGVybmFsIFBDSSByZWdzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgICAgIDB4ZWY2MDAwMDAJICAgIC8qIGludGVybmFsIHBlcmlwaGVyYWxzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkgICAgICAgIDB4ZTAwMDAwMDAJICAgIC8qIGludGVybmFsIFBDSSByZWdzKi8KIC8qRG9uJ3QgY2hhbmdlIGVpdGhlciBvZiB0aGVzZSovCiAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UgICAgICAgICAgMHg1MDAwMDAwMAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19CT09UX0JBU0VfQUREUiAgICAgIDB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfQUREUiAgICAgICAgICAgMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfTkFORDJfQUREUiAgICAgICAgICAweDk0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0RFVklDRSAgICAgICAgICAweDUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICAgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIgICAgICAweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BRERSICAgICAgICAgICAweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDJfQUREUiAgICAgICAgICAweDk0MDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIFNEUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0RDQUNIRQkxCQkvKiBkLWNhY2hlIGFzIGluaXQgcmFtCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJLyogRENhY2hlICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJKDQgPDwgMTApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCTEJCS8qIGQtY2FjaGUgYXMgaW5pdCByYW0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJLyogRENhY2hlICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJMTEwNTkyMDAgLyogdXNlIGV4dGVybmFsIDExLjA1OU1IeiBjbGsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwIC8qIHVzZSBleHRlcm5hbCAxMS4wNTlNSHogY2xrCSovCiAvKiBkZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxICovCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIApAQCAtOTYsNyArOTYsNyBAQAogICogVGhlIERTMTU1OCBjb2RlIGFzc3VtZXMgdGhpcyBjb25kaXRpb24KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkgICAgICAgICgweDIwMDAgLSAweDEwKSAvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkgICAgICAgICgweDIwMDAgLSAweDEwKSAvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MgICAgICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxNTU2CTEJCSAgICAgICAgIC8qIERTMTU1NiBSVEMJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTExMiwyMyArMTEyLDIzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTMJLyogbnVtYmVyIG9mIGJhbmtzCQkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBzZWN0b3JzIHBlciBkZXZpY2UJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCS8qIG51bWJlciBvZiBiYW5rcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIHNlY3RvcnMgcGVyIGRldmljZQkJCSovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAgICAgICAgICAweDU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJhYQotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBjaGFyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAgICAgICAgICAweDU1NQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxICAgICAgICAgMHgyYWEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIGNoYXIKIAotI2RlZmluZSBDRkdfRkxBU0hfMk5EXzE2QklUX0RFViAxCS8qIGJhbWJvbyBoYXMgOCBhbmQgMTZiaXQgZGV2aWNlCSovCi0jZGVmaW5lIENGR19GTEFTSF8yTkRfQUREUiAgICAgIDB4ODc4MDAwMDAgIC8qIGJhbWJvbyBoYXMgOCBhbmQgMTZiaXQgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfMk5EXzE2QklUX0RFViAxCS8qIGJhbWJvbyBoYXMgOCBhbmQgMTZiaXQgZGV2aWNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfMk5EX0FERFIgICAgICAweDg3ODAwMDAwICAvKiBiYW1ib28gaGFzIDggYW5kIDE2Yml0IGRldmljZQkqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DRkdfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE1NCw2MSArMTU0LDYxIEBACiAgKiBzZXQgdXAuIFdoaWxlIHN0aWxsIHJ1bm5pbmcgZnJvbSBjYWNoZSwgSSBleHBlcmllbmNlZCBwcm9ibGVtcyBhY2Nlc3NpbmcKICAqIHRoZSBOQU5EIGNvbnRyb2xsZXIuCXNyIC0gMjAwNi0wOC0yNQogICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbgkJCSovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfRFNUCTB4MDA4MDAwMDAJLyogQ29weSBTUEwgaGVyZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX0RTVAkweDAxMDAwMDAwCS8qIExvYWQgTlVCIHRvIHRoaXMgYWRkcgkqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU1RBUlQJQ0ZHX05BTkRfVV9CT09UX0RTVCAvKiBTdGFydCBOVUIgZnJvbSB0aGlzIGFkZHIJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfREVMVEEJKENGR19OQU5EX0JPT1RfU1BMX1NSQyAtIENGR19OQU5EX0JPT1RfU1BMX0RTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1QJMHgwMDgwMDAwMAkvKiBDb3B5IFNQTCBoZXJlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVAkweDAxMDAwMDAwCS8qIExvYWQgTlVCIHRvIHRoaXMgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUCUNPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUIC8qIFN0YXJ0IE5VQiBmcm9tIHRoaXMgYWRkcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfREVMVEEJKENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMgLSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUKQogCiAvKgogICogRGVmaW5lIHRoZSBwYXJ0aXRpb25pbmcgb2YgdGhlIE5BTkQgY2hpcCAob25seSBSQU0gVS1Cb290IGlzIG5lZWRlZCBoZXJlKQogICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9PRkZTCSgxNiA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUJKDM4NCA8PCAxMCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUwkoMTYgPDwgMTApCS8qIE9mZnNldCB0byBSQU0gVS1Cb290IGltYWdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU0laRQkoMzg0IDw8IDEwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UJKi8KIAogLyoKICAqIE5vdyB0aGUgTkFORCBjaGlwIGhhcyB0byBiZSBkZWZpbmVkIChubyBhdXRvZGV0ZWN0aW9uIHVzZWQhKQogICovCi0jZGVmaW5lIENGR19OQU5EX1BBR0VfU0laRQk1MTIJCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUJCSovCi0jZGVmaW5lIENGR19OQU5EX0JMT0NLX1NJWkUJKDE2IDw8IDEwKQkvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9DT1VOVAkzMgkJLyogTkFORCBjaGlwIHBhZ2UgY291bnQJCSovCi0jZGVmaW5lIENGR19OQU5EX0JBRF9CTE9DS19QT1MJNQkJLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlcgkqLwotI2RlZmluZSBDRkdfTkFORF80X0FERFJfQ1lDTEUJMQkJLyogRm91cnRoIGFkZHIgdXNlZCAoPjMyTUIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUJNTEyCQkvKiBOQU5EIGNoaXAgcGFnZSBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQkoMTYgPDwgMTApCS8qIE5BTkQgY2hpcCBibG9jayBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9DT1VOVAkzMgkJLyogTkFORCBjaGlwIHBhZ2UgY291bnQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQURfQkxPQ0tfUE9TCTUJCS8qIExvY2F0aW9uIG9mIGJhZCBibG9jayBtYXJrZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EXzRfQUREUl9DWUNMRQkxCQkvKiBGb3VydGggYWRkciB1c2VkICg+MzJNQikJKi8KIAotI2RlZmluZSBDRkdfTkFORF9FQ0NTSVpFCTI1NgotI2RlZmluZSBDRkdfTkFORF9FQ0NCWVRFUwkzCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NURVBTCShDRkdfTkFORF9QQUdFX1NJWkUgLyBDRkdfTkFORF9FQ0NTSVpFKQotI2RlZmluZSBDRkdfTkFORF9PT0JTSVpFCTE2Ci0jZGVmaW5lIENGR19OQU5EX0VDQ1RPVEFMCShDRkdfTkFORF9FQ0NCWVRFUyAqIENGR19OQU5EX0VDQ1NURVBTKQotI2RlZmluZSBDRkdfTkFORF9FQ0NQT1MJCXswLCAxLCAyLCAzLCA2LCA3fQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU0laRQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTCShDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFIC8gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9PT0JTSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NUT1RBTAkoQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTICogQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDUE9TCQl7MCwgMSwgMiwgMywgNiwgN30KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTkFORAogLyoKICAqIEZvciBOQU5EIGJvb3RpbmcgdGhlIGVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHRoZSBVLUJvb3QgaW1hZ2UuIFBsZWFzZSB0YWtlCiAgKiBsb29rIGF0IHRoZSBmaWxlIGJvYXJkL2FtY2Mvc2VxdW9pYS91LWJvb3QtbmFuZC5sZHMgZm9yIGRldGFpbHMuCiAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDRkdfTkFORF9CTE9DS19TSVpFCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ0ZHX05BTkRfVV9CT09UX09GRlMgKyBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMgKyBDT05GSUdfRU5WX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQgKyBDT05GSUdfRU5WX1NJWkUpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTkFORCBGTEFTSAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkyCi0jZGVmaW5lIE5BTkRfTUFYX0NISVBTCQlDRkdfTUFYX05BTkRfREVWSUNFCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCShDRkdfTkFORF9BRERSICsgQ0ZHX05BTkRfQ1MpCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EX0JBU0UsIENGR19OQU5EX0FERFIgKyAyIH0KLSNkZWZpbmUgQ0ZHX05BTkRfU0VMRUNUX0RFVklDRSAgMQkvKiBuYW5kIGRyaXZlciBzdXBwb3J0cyBtdXRpcGwuIGNoaXBzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTIKKyNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCUNPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkoQ09ORklHX1NZU19OQU5EX0FERFIgKyBDT05GSUdfU1lTX05BTkRfQ1MpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkRfQkFTRSwgQ09ORklHX1NZU19OQU5EX0FERFIgKyAyIH0KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcwkqLwogCiAjaWYgIWRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCi0jZGVmaW5lIENGR19OQU5EX0NTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX05BTkRfQ1MJCTAJCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMAkJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3gJKi8KIC8qIE1lbW9yeSBCYW5rIDAgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX05BTkRfQUREUiB8IDB4MWMwMDApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE2LDIxICsyMTYsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KICNkZWZpbmUgQ09ORklHX1NQRF9FRVBST00gICAgICAgICAgICAgICAvKiBVc2UgU1BEIEVFUFJPTSBmb3Igc2V0dXAgICAgICAgICAgICAgKi8KICN1bmRlZiBDT05GSUdfRERSX0VDQwkJCS8qIGRvbid0IHVzZSBFQ0MJCQkqLwotI2RlZmluZSBDRkdfU0lNVUxBVEVfU1BEX0VFUFJPTQkweGZmCS8qIHNpbXVsYXRlIHNwZCBlZXByb20gb24gdGhpcyBhZGRyZXNzCSovCi0jZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUwl7Q0ZHX1NJTVVMQVRFX1NQRF9FRVBST00sIDB4NTAsIDB4NTF9Ci0jZGVmaW5lIENGR19NQllURVNfU0RSQU0JKDY0KQkvKiA2NE1CIGZpeGVkIHNpemUgZm9yIGVhcmx5LXNkcmFtLWluaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TSU1VTEFURV9TUERfRUVQUk9NCTB4ZmYJLyogc2ltdWxhdGUgc3BkIGVlcHJvbSBvbiB0aGlzIGFkZHJlc3MJKi8KKyNkZWZpbmUgU1BEX0VFUFJPTV9BRERSRVNTCXtDT05GSUdfU1lTX1NJTVVMQVRFX1NQRF9FRVBST00sIDB4NTAsIDB4NTF9CisjZGVmaW5lIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNCSg2NCkJLyogNjRNQiBmaXhlZCBzaXplIGZvciBlYXJseS1zZHJhbS1pbml0ICovCiAjZGVmaW5lIENPTkZJR19QUk9HX1NEUkFNX1RMQgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwCSAgICAvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMgKi8KQEAgLTI5NywxMyArMjk3LDEzIEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSAgICAgICAgKi8KICN1bmRlZiAgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyAobm90KSBwY2kgcGx1Zy1hbmQtcGxheSAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XICAgICAgICAgICAgLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAotI2RlZmluZSBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyICovCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYmFyY28uaCBiL2luY2x1ZGUvY29uZmlncy9iYXJjby5oCmluZGV4IDlhZmIxMGUuLmUwMGY4NGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9iYXJjby5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9iYXJjby5oCkBAIC0xMDIsMTQgKzEwMiwxNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMjgsNTggKzEyOCw1OCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDAyMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0xPR0JVRkZFUgogI2lmZGVmCUNPTkZJR19MT0dCVUZGRVIKLSNkZWZpbmUgQ0ZHX1NURE9VVF9BRERSCQkweDFGRkMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TVERPVVRfQUREUgkJMHgxRkZDMDAwCiAjZWxzZQotI2RlZmluZSBDRkdfU1RET1VUX0FERFIJCTB4MkI5MDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1RET1VUX0FERFIJCTB4MkI5MDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCiAKICNpZiBkZWZpbmVkIChVU0VfRElOSzMyKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDAwMDkwMDAwCi0jZGVmaW5lIENGR19SQU1CT09UCQkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MDAwOTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKICNlbHNlCi0jdW5kZWYJQ0ZHX1JBTUJPT1QKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMDMwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MDAwMzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCSg4ICogMTAyNCAqIDEwMjQpCS8qIFVuaXR5IGhhcyBvbmJvYXJkIDFNQnl0ZSBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoOCAqIDEwMjQgKiAxMDI0KQkvKiBVbml0eSBoYXMgb25ib2FyZCAxTUJ5dGUgZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMDA0N0E0CS8qIE9mZnNldCBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDAwMDAyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAvKiAjZGVmaW5lIEVOVl9DUkMJCTB4OEJGNkYyNEIJWFhYIC0gRklYTUU6IGdldHMgZGVmaW5lZCBhdXRvbWF0aWNhbGx5ICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCQkweEZERjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCQkweEZERjAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JBTkdFX0JBU0UJMHhGRkMwMDAwMAkvKiBmbGFzaCBtZW1vcnkgYWRkcmVzcyByYW5nZQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkFOR0VfU0laRQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkFOR0VfQkFTRQkweEZGQzAwMDAwCS8qIGZsYXNoIG1lbW9yeSBhZGRyZXNzIHJhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkFOR0VfU0laRQkweDAwNDAwMDAwCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweEZGRjAwMDAwCS8qIHNhbmRwb2ludCBmbGFzaAkJKi8KICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTB4RkYwMDAwMDAJLyogUE1DIG9uYm9hcmQgZmxhc2gJCSovCiAKQEAgLTE5Miw4ICsxOTIsOCBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCiAjdW5kZWYgIENPTkZJR19TT0ZUX0kyQwkJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogI2Vycm9yICJTb2Z0IEkyQyBpcyBub3QgY29uZmlndXJlZCBwcm9wZXJseS4gIFBsZWFzZSByZXZpZXchIgpAQCAtMjA4LDE0ICsyMDgsMTQgQEAKICNkZWZpbmUgSTJDX0RFTEFZCQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogI2VuZGlmIC8qIENPTkZJR19TT0ZUX0kyQyAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NwkJLyogRUVQUk9NIElTMjRDMDIJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lIENGR19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gLCBGTEFTSF9CQVNFMV9QUkVMSU0gfQotI2RlZmluZSBDRkdfREJVU19TSVpFMgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gLCBGTEFTSF9CQVNFMV9QUkVMSU0gfQorI2RlZmluZSBDT05GSUdfU1lTX0RCVVNfU0laRTIJCTEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKQEAgLTIzMywyNCArMjMzLDI0IEBACiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMzMzMzMzMJLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbCAqLwogCi0jZGVmaW5lIENGR19ST01OQUwJCTB4MEYJLypyb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KLSNkZWZpbmUgQ0ZHX1JPTUZBTAkJMHgxRQkvKnJvbS9mbGFzaCBhY2Nlc3MgdGltZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCQkweDBGCS8qcm9tL2ZsYXNoIG5leHQgYWNjZXNzIHRpbWUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCQkweDFFCS8qcm9tL2ZsYXNoIGFjY2VzcyB0aW1lCQkJKi8KIAotI2RlZmluZSBDRkdfUkVGSU5UCTB4OEYJLyogbm8gb2YgY2xvY2sgY3ljbGVzIGJldHdlZW4gQ0JSIHJlZnJlc2ggY3ljbGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCTB4OEYJLyogbm8gb2YgY2xvY2sgY3ljbGVzIGJldHdlZW4gQ0JSIHJlZnJlc2ggY3ljbGVzICovCiAKIC8qIHRoZSBmb2xsb3dpbmcgYXJlIGZvciBTRFJBTSBvbmx5Ki8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJMHgyNUMJLyogQnVyc3QgVG8gUHJlY2hhcmdlLCBzZXRzIG9wZW4gcGFnZSBpbnRlcnZhbCAqLwotI2RlZmluZSBDRkdfUkVGUkVDCQk4CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCi0jZGVmaW5lIENGR19SRExBVAkJNAkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCQkzCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RPUlcJCTIJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJMHgyNUMJLyogQnVyc3QgVG8gUHJlY2hhcmdlLCBzZXRzIG9wZW4gcGFnZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkJOAkvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCQk0CS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCQkzCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCQk1CS8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkJMgkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KIAotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQotI2RlZmluZSBDRkdfRVhUUk9NIDAKLSNkZWZpbmUgQ0ZHX1JFR0RJTU0gMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRST00gMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0gMAogCiAKIC8qIG1lbW9yeSBiYW5rIHNldHRpbmdzKi8KQEAgLTI2MCw5NSArMjYwLDk1IEBACiAgKiBiaXRzIHdpbGwgYmUgc2V0IHRvIDB4MDAwMDAgZm9yIGEgc3RhcnQgYWRkcmVzcywgb3IgMHhmZmZmZiBmb3IgYW4KICAqIGVuZCBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJCTB4MDFGRkZGRkYKLSNkZWZpbmUgQ0ZHX0JBTkswX0VOQUJMRQkxCi0jZGVmaW5lIENGR19CQU5LMV9TVEFSVAkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzFfRU5ECQkweDAyZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJCTB4MDNmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkJMHgwM2ZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCQkweDA0MDAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJCTB4MDRmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkJMHgwNTAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECQkweDA1RkZGRkZGCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJCTB4MDYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkJMHgwNkZGRkZGRgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCQkweDA3MDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJCTB4MDdGRkZGRkYKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkJMHgwODAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECQkweDA4RkZGRkZGCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECQkweDAxRkZGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkJMHgwMmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQJCTB4MDNmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQJCTB4MDNmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX1NUQVJUCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5ECQkweDA0ZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9TVEFSVAkJMHgwNTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VORAkJMHgwNUZGRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQJCTB4MDYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQJCTB4MDZGRkZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X1NUQVJUCQkweDA3MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5ECQkweDA3RkZGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19TVEFSVAkJMHgwODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VORAkJMHgwOEZGRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRQkwCiAvKgogICogTWVtb3J5IGJhbmsgZW5hYmxlIGJpdG1hc2ssIHNwZWNpZnlpbmcgd2hpY2ggb2YgdGhlIGJhbmtzIGRlZmluZWQgYWJvdmUKICBhcmUgYWN0dWFsbHkgcHJlc2VudC4gTVNCIGlzIGZvciBiYW5rICM3LCBMU0IgaXMgZm9yIGJhbmsgIzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTktfRU5BQkxFCQkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOS19FTkFCTEUJCTB4MDEKIAotI2RlZmluZSBDRkdfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhmZgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGJpdCBkZWZpbml0aW9ucwkqLwotI2RlZmluZSBDRkdfUEdNQVgJCTB4MzIJLyogaG93IGxvbmcgdGhlIDgyNDAgcmV0YWlucyB0aGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLwogCQkJCQkvKiBjdXJyZW50bHkgYWNjZXNzZWQgcGFnZSBpbiBtZW1vcnkJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgZGV0YWlscwkJKi8KIAogLyogU0RSQU0gMCAtIDI1Nk1CICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIHN0YWNrIGluIERDQUNIRSBAIDFHQiAobm8gYmFja2luZyBtZW0pICovCiAjaWYgZGVmaW5lZChVU0VfRElOSzMyKQotI2RlZmluZSBDRkdfSUJBVDFMCSgweDQwMDAwMDAwIHwgQkFUTF9QUF8wMCApCi0jZGVmaW5lIENGR19JQkFUMVUJKDB4NDAwMDAwMDAgfCBCQVRVX0JMXzEyOEsgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoMHg0MDAwMDAwMCB8IEJBVExfUFBfMDAgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoMHg0MDAwMDAwMCB8IEJBVFVfQkxfMTI4SyApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDFMCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogI2VuZGlmCiAKIC8qIFBDSSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogRmxhc2gsIGNvbmZpZyBhZGRycywgZXRjICovCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTIwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTIwCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjQwIENQVQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYmY1MzMtZXpraXQuaCBiL2luY2x1ZGUvY29uZmlncy9iZjUzMy1lemtpdC5oCmluZGV4IGIzNWUzNjIuLmU4NzE3MzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9iZjUzMy1lemtpdC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9iZjUzMy1lemtpdC5oCkBAIC0xMCw5ICsxMCw5IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJNTc2MDAKIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKLSNkZWZpbmUgQ0ZHX0FVVE9MT0FECQkibm8iCS8qcmFycGIsIGJvb3RwIG9yIGRoY3AgY29tbWFuZHMgd2lsbCBwZXJmb3JtIG9ubHkgYSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FECQkibm8iCS8qcmFycGIsIGJvb3RwIG9yIGRoY3AgY29tbWFuZHMgd2lsbCBwZXJmb3JtIG9ubHkgYSAqLwogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQogI2RlZmluZSBDT05GSUdfTE9BREFERFIJCTB4MDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJ0ZnRwICQobG9hZGFkZHIpIGxpbnV4IgpAQCAtMjMsNyArMjMsNyBAQAogCiAjaWYgMAogI2RlZmluZQlDT05GSUdfTUlJCi0jZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKKyNkZWZpbmUgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19SVENfQkZJTgkJMQpAQCAtMTA1LDQ4ICsxMDUsNDggQEAKIAogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MgInJvb3Q9L2Rldi9tdGRibG9jazAgaXA9MTkyLjE2OC4wLjE1OjE5Mi4xNjguMC4yOjE5Mi4xNjguMC4xOjI1NS4yNTUuMjU1LjA6ZXpraXQ6ZXRoMDpvZmYgY29uc29sZT10dHlCRjAsNTc2MDAiCiAKLSNkZWZpbmUJQ0ZHX1BST01QVAkJImJmaW4+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJImJmaW4+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSggKENPTkZJR19NRU1fU0laRSAtIDEpICogMTAyNCAqIDEwMjQpCS8qIDEgLi4uIDMxIE1CIGluIERSQU0gKi8KLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgwMTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEwIG1zIHRpY2tzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJKENPTkZJR19NRU1fU0laRSAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSggKENPTkZJR19NRU1fU0laRSAtIDEpICogMTAyNCAqIDEwMjQpCS8qIDEgLi4uIDMxIE1CIGluIERSQU0gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMTAgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkoQ09ORklHX01FTV9TSVpFICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAogCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX01BWF9SQU1fU0laRSAtIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4NDAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfQUREUgkoQ0ZHX01BTExPQ19CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENPTkZJR19TVEFDS0JBU0UJKENGR19HQkxfREFUQV9BRERSICAtIDQpCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4NDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TVEFDS0JBU0UJKENPTkZJR19TWVNfR0JMX0RBVEFfQUREUiAgLSA0KQogCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxX0JBU0UJCTB4MjAyMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMl9CQVNFCQkweDIwMjgwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMwkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNDAJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX0JBU0UJCTB4MjAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDJfQkFTRQkJMHgyMDI4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNDAJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgyMDAyMDAwMAogI2RlZmluZQlDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAKIC8qIEpGRlMgUGFydGl0aW9uIG9mZnNldCBzZXQgICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSwkwCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTCTEKIC8qIDUxMmsgcmVzZXJ2ZWQgZm9yIHUtYm9vdCAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCTExCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SCTExCiAKIAogLyoKQEAgLTE1Nyw3ICsxNTcsNyBAQAogI2RlZmluZSBQT0xMX01PREUJCTEKICNkZWZpbmUgRkxBU0hfVE9UX1NFQ1QJCTQwCiAjZGVmaW5lIEZMQVNIX1NJWkUJCTB4MjIwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDIyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MjIwMDAwCiAKIC8qCiAgKiBJbml0aWFsaXplIFBTRDQyNTYgcmVnaXN0ZXJzIGZvciB1c2luZyBJMkMKQEAgLTE5NywxMCArMTk3LDEwIEBACiAJCQkJfQogI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCi0jZGVmaW5lIENGR19CT09UTV9MRU4JCTB4NDAwMDAwMAkvKiBMYXJnZSBJbWFnZSBMZW5ndGgsIHNldCB0byA2NCBNZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTV9MRU4JCTB4NDAwMDAwMAkvKiBMYXJnZSBJbWFnZSBMZW5ndGgsIHNldCB0byA2NCBNZWcgKi8KIAogI2RlZmluZSBDT05GSUdfRUJJVV9TRFJSQ19WQUwgIDB4Mzk4CiAjZGVmaW5lIENPTkZJR19FQklVX1NER0NUTF9WQUwgMHg5MTExOGQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9iZjUzMy1zdGFtcC5oIGIvaW5jbHVkZS9jb25maWdzL2JmNTMzLXN0YW1wLmgKaW5kZXggNmUxMzhiOC4uNWFkOTlhMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2JmNTMzLXN0YW1wLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2JmNTMzLXN0YW1wLmgKQEAgLTkzLDEzICs5MywxMyBAQAogICogRmxhc2ggc2V0dGluZ3MKICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCi0jZGVmaW5lCUNGR19GTEFTSF9DRklfQU1EX1JFU0VUCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQ0ZJX0FNRF9SRVNFVAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNpZiAoQ09ORklHX0JGSU5fQk9PVF9NT0RFID09IEJGSU5fQk9PVF9TUElfTUFTVEVSKQogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQkxCkBAIC0xMDgsMjkgKzEwOCwyOSBAQAogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgyMDAwNDAwMAotI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19FTlZfQUREUiAtIENGR19GTEFTSF9CQVNFKQorI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkKICNlbmRpZgogCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZQlFTlZfSVNfRU1CRURERUQKIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkzMDAwMAkvKiBUaW1lb3V0IGZvciBDaGlwIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFQkxPQ0tfVE9VVAk1MDAwCS8qIFRpbWVvdXQgZm9yIEJsb2NrIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkzMDAwMAkvKiBUaW1lb3V0IGZvciBDaGlwIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRUJMT0NLX1RPVVQJNTAwMAkvKiBUaW1lb3V0IGZvciBCbG9jayBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkxCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAogLyogSkZGUyBQYXJ0aXRpb24gb2Zmc2V0IHNldCAgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksgMAotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTICAxCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSyAwCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTICAxCiAvKiA1MTJrIHJlc2VydmVkIGZvciB1LWJvb3QgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgkxMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkxMQogCiAvKgogICogZm9sbG93aW5nIHRpbWVvdXRzIHNoYWxsIGJlIHVzZWQgb25jZSB0aGUKICAqIEZsYXNoIHJlYWwgcHJvdGVjdGlvbiBpcyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkxMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBDbGVhciBMb2NrIEJpdHMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KIAogLyoKICAqIFNEUkFNIHNldHRpbmdzICYgbWVtb3J5IG1hcApAQCAtMTQwLDI3ICsxNDAsMjcgQEAKICNkZWZpbmUgQ09ORklHX01FTV9BRERfV0RUSCAgICAgMTEJLyogOCwgOSwgMTAsIDExICAgICovCiAjZGVmaW5lIENPTkZJR19NRU1fTVQ0OExDNjRNNEEyRkJfN0UJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCiAKLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkoQ09ORklHX01FTV9TSVpFICogMTAyNCAqMTAyNCkKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX01BWF9SQU1fU0laRSAtIDB4ODAwMDAgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkoQ09ORklHX01FTV9TSVpFICogMTAyNCAqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMHg4MDAwMCAtIDEpCiAjZGVmaW5lIENPTkZJR19MT0FEQUREUgkJMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCUNPTkZJR19MT0FEQUREUgotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKSAgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4NDAwMAkJLyogUmVzZXJ2ZSAxNmsgZm9yIEdsb2JhbCBEYXRhICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX0xPQURBRERSCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkgICAgIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHg0MDAwCQkvKiBSZXNlcnZlIDE2ayBmb3IgR2xvYmFsIERhdGEgICovCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDEyOCoxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJKENGR19NQVhfUkFNX1NJWkUgLSAweDQwMDAwKQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCi0jZGVmaW5lIENGR19HQkxfREFUQV9BRERSCShDRkdfTUFMTE9DX0JBU0UgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ09ORklHX1NUQUNLQkFTRQkoQ0ZHX0dCTF9EQVRBX0FERFIgIC0gNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDB4NDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9BRERSCShDT05GSUdfU1lTX01BTExPQ19CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1RBQ0tCQVNFCShDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIgIC0gNCkKIAogLyogQ2hlY2sgdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgZml0cyBpbiBTRFJBTSAqLwotI2lmICgoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikgPiBDRkdfTUFYX1JBTV9TSVpFKQorI2lmICgoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKSA+IENPTkZJR19TWVNfTUFYX1JBTV9TSVpFKQogCSNlcnJvciBNZW1vcnkgTWFwIGRvZXMgbm90IGZpdCBpbnRvIGNvbmZpZ3VyYXRpb24KICNlbmRpZgogCkBAIC0xODIsMTAgKzE4MiwxMCBAQAogICogQ29tbWFuZCBzZXR0aW5ncwogICovCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCTEKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCiAKLSNkZWZpbmUgQ0ZHX0FVVE9MT0FECQkibm8iCS8qcmFycGIsIGJvb3RwIG9yIGRoY3AgY29tbWFuZHMgd2lsbCBwZXJmb3JtIG9ubHkgYSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FECQkibm8iCS8qcmFycGIsIGJvb3RwIG9yIGRoY3AgY29tbWFuZHMgd2lsbCBwZXJmb3JtIG9ubHkgYSAqLwogCiAvKiBjb25maWd1cmF0aW9uIGxvb2t1cCBmcm9tIHRoZSBCT09UUC9ESENQIHNlcnZlciwgKi8KIC8qIGJ1dCBub3QgdHJ5IHRvIGxvYWQgYW55IGltYWdlIHVzaW5nIFRGVFAJICAgICovCkBAIC0yNTYsMTggKzI1NiwxOCBAQAogICovCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk1NzYwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZQlDRkdfUFJPTVBUCQkiYmZpbj4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiYmZpbj4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQogCkBAIC0yOTksOCArMjk5LDggQEAKIAkJCQl9CiAjZGVmaW5lIEkyQ19ERUxBWQkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogI2VuZGlmIC8qIENPTkZJR19TT0ZUX0kyQyAqLwogCiAvKgpAQCAtMzIxLDI2ICszMjEsMjYgQEAKICN1bmRlZiAgQ09ORklHX0lERV9MRUQJCQkvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQgKi8KICN1bmRlZiAgQ09ORklHX0lERV9SRVNFVAkJLyogbm8gcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQgKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1c3NlcyAqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoQ0ZHX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXNzZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCShDT05GSUdfU1lTX0lERV9NQVhCVVMqMSkgLyogbWF4LiAxIGRyaXZlcyBwZXIgSURFIGJ1cyAqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4MjAyMDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTB4MjAyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMjAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMDcJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAyMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDA3CS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwogCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMgogI2VuZGlmCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIDFtcyB0aW1lIHRpY2sgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogMW1zIHRpbWUgdGljayAqLwogCi0jZGVmaW5lIENGR19CT09UTV9MRU4JCTB4NDAwMDAwMC8qIExhcmdlIEltYWdlIExlbmd0aCwgc2V0IHRvIDY0IE1lZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNX0xFTgkJMHg0MDAwMDAwLyogTGFyZ2UgSW1hZ2UgTGVuZ3RoLCBzZXQgdG8gNjQgTWVnICovCiAKICNkZWZpbmUgQ09ORklHX1NIT1dfQk9PVF9QUk9HUkVTUyAxCS8qIFNob3cgYm9vdCBwcm9ncmVzcyBvbiBMRURzICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9iZjUzNy1zdGFtcC5oIGIvaW5jbHVkZS9jb25maWdzL2JmNTM3LXN0YW1wLmgKaW5kZXggMDFlMTg1YS4uMWI1NGQzYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2JmNTM3LXN0YW1wLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2JmNTM3LXN0YW1wLmgKQEAgLTcsNyArNyw3IEBACiAKICNpbmNsdWRlIDxhc20vYmxhY2tmaW4tY29uZmlnLXByZS5oPgogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTU3NjAwCiAvKiBTZXQgZGVmYXVsdCBzZXJpYWwgY29uc29sZSBmb3IgYmY1MzcgKi8KQEAgLTgxLDcgKzgxLDcgQEAKICAqIGNvbmZpZ3VyYXRpb24gbG9va3VwIGZyb20gdGhlIEJPT1RQL0RIQ1Agc2VydmVyCiAgKiBidXQgbm90IHRyeSB0byBsb2FkIGFueSBpbWFnZSB1c2luZyBURlRQCiAgKi8KLSNkZWZpbmUgQ0ZHX0FVVE9MT0FECQkJIm5vIgorI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FECQkJIm5vIgogCiAvKgogICogTmV0d29yayBTZXR0aW5ncwpAQCAtMTAwLDE5ICsxMDAsMTkgQEAKIC8qICNkZWZpbmUgQ09ORklHX0VUSEFERFIJMDI6ODA6YWQ6MjA6MzE6ZTggKi8KIC8qIFRoaXMgaXMgdGhlIHJvdXRpbmUgdGhhdCBjb3BpZXMgdGhlIE1BQyBpbiBGbGFzaCB0byB0aGUgJ2V0aGFkZHInIHNldHRpbmcgKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKICNkZWZpbmUgQ09ORklHX0JPT1RfUkVUUllfVElNRQktMQkvKiBFbmFibGUgdGhpcyBpZiBib290cmV0cnkgcmVxdWlyZWQsIGN1cnJlbnRseSBpdHMgZGlzYWJsZWQgKi8KICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gcmFtYm9vdCIKIAogI2lmIGRlZmluZWQoQ09ORklHX1BPU1RfVEVTVCkKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKCBDRkdfUE9TVF9NRU1PUlkgfCBcCi0JCQkJICBDRkdfUE9TVF9VQVJUCSAgfCBcCi0JCQkJICBDRkdfUE9TVF9GTEFTSCAgfCBcCi0JCQkJICBDRkdfUE9TVF9FVEhFUiAgfCBcCi0JCQkJICBDRkdfUE9TVF9MRUQJICB8IFwKLQkJCQkgIENGR19QT1NUX0JVVFRPTikKKyNkZWZpbmUgQ09ORklHX1BPU1QJCSggQ09ORklHX1NZU19QT1NUX01FTU9SWSB8IFwKKwkJCQkgIENPTkZJR19TWVNfUE9TVF9VQVJUCSAgfCBcCisJCQkJICBDT05GSUdfU1lTX1BPU1RfRkxBU0ggIHwgXAorCQkJCSAgQ09ORklHX1NZU19QT1NUX0VUSEVSICB8IFwKKwkJCQkgIENPTkZJR19TWVNfUE9TVF9MRUQJICB8IFwKKwkJCQkgIENPTkZJR19TWVNfUE9TVF9CVVRUT04pCiAjZWxzZQogI3VuZGVmIENPTkZJR19QT1NUCiAjZW5kaWYKQEAgLTIwMSwzOCArMjAxLDM4IEBACiAJImVyYXNlIDB4MjAwMDAwMDAgMHgyMDA3RkZGRjtjcC5iIDB4MTAwMDAwMCAweDIwMDAwMDAwICQoZmlsZXNpemUpXDAiCVwKIAkiIgogCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJiZmluPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJiZmluPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJKENPTkZJR19NRU1fU0laRSAqIDEwMjQqMTAyNCkKLSNkZWZpbmUJQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoIChDT05GSUdfTUVNX1NJWkUgLSAxKSAqIDEwMjQqMTAyNCkJLyogMSAuLi4gNjMgTUIgaW4gRFJBTSAqLwotI2RlZmluZQlDRkdfTE9BRF9BRERSCQlDT05GSUdfTE9BREFERFIJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxMCBtcyB0aWNrcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkoQ09ORklHX01FTV9TSVpFICogMTAyNCoxMDI0KQorI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKCAoQ09ORklHX01FTV9TSVpFIC0gMSkgKiAxMDI0KjEwMjQpCS8qIDEgLi4uIDYzIE1CIGluIERSQU0gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCUNPTkZJR19MT0FEQUREUgkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxMCBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIHNvbWUgaGF2ZSA2NyBzZWN0b3JzIChNMjlXMzIwREIpLCBidXQgbmV3ZXIgaGF2ZSA3MSAoTTI5VzMyMEVCKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIHNvbWUgaGF2ZSA2NyBzZWN0b3JzIChNMjlXMzIwREIpLCBidXQgbmV3ZXIgaGF2ZSA3MSAoTTI5VzMyMEVCKSAqLwogCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX01BWF9SQU1fU0laRSAtIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTB4NDAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfQUREUgkoQ0ZHX01BTExPQ19CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENPTkZJR19TVEFDS0JBU0UJKENGR19HQkxfREFUQV9BRERSICAtIDQpCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4NDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIJKENPTkZJR19TWVNfTUFMTE9DX0JBU0UgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TVEFDS0JBU0UJKENPTkZJR19TWVNfR0JMX0RBVEFfQUREUiAgLSA0KQogCiAjaWYgKENPTkZJR19CRklOX0JPT1RfTU9ERSA9PSBCRklOX0JPT1RfU1BJX01BU1RFUikKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQpAQCAtMjQxLDE3ICsyNDEsMTcgQEAKICNlbHNlCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4MjAwMDQwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDRkdfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNkZWZpbmUJQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIEVOVl9JU19FTUJFRERFRAogCiAvKiBKRkZTIFBhcnRpdGlvbiBvZmZzZXQgc2V0ICAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCiAvKiA1MTJrIHJlc2VydmVkIGZvciB1LWJvb3QgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgkxNQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkxNQogCiAjZGVmaW5lIENPTkZJR19TUEkKIApAQCAtMjYzLDE1ICsyNjMsMTUgQEAKICNkZWZpbmUgUE9MTF9NT0RFCQkxCiAjZGVmaW5lIEZMQVNIX1RPVF9TRUNUCQk3MQogI2RlZmluZSBGTEFTSF9TSVpFCQkweDQwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDQwMDAwMAogCiAvKgogICogQm9hcmQgTkFORCBJbmZvbWF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfTkFORF9BRERSCQkweDIwMjEyMDAwCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCUNGR19OQU5EX0FERFIKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9BRERSCQkweDIwMjEyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQlDT05GSUdfU1lTX05BTkRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIFNFQ1RPUlNJWkUJCTUxMgogI2RlZmluZSBBRERSX0NPTFVNTgkJMQogI2RlZmluZSBBRERSX1BBR0UJCTIKQEAgLTMwMiw3ICszMDIsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgogCi0jZGVmaW5lIENGR19CT09UTV9MRU4JCTB4NDAwMDAwMAkvKiBMYXJnZSBJbWFnZSBMZW5ndGgsIHNldCB0byA2NCBNZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTV9MRU4JCTB4NDAwMDAwMAkvKiBMYXJnZSBJbWFnZSBMZW5ndGgsIHNldCB0byA2NCBNZWcgKi8KIAogLyoKICAqIEkyQyBzZXR0aW5ncwpAQCAtMzUyLDggKzM1Miw4IEBACiAjZGVmaW5lIEkyQ19ERUxBWQkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTUwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTUwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKIC8qIDB4RkYsIDB4N0JCMDdCQjAsIDB4MjI1NDdCQjAgKi8KIC8qICNkZWZpbmUgQU1HQ1RMVkFMCQkoQU1CRU5fUDAgfCBBTUJFTl9QMSB8IEFNQkVOX1AyIHwgQU1DS0VOKQpAQCAtMzc3LDggKzM3Nyw4IEBACiAjdW5kZWYgIENPTkZJR19JREVfTEVECQkvKiBubyBsZWQgZm9yIGlkZSBzdXBwb3J0ZWQgKi8KICN1bmRlZiAgQ09ORklHX0lERV9SRVNFVAkvKiBubyByZXNldCBmb3IgaWRlIHN1cHBvcnRlZCAqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzc2VzICovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoxKQkvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1c3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJKENPTkZJR19TWVNfSURFX01BWEJVUyoxKQkvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCiAKICN1bmRlZiAgQU1CQ1RMMVZBTAogI2RlZmluZSBBTUJDVEwxVkFMCQkweEZGQzNGRkMzCkBAIC0zOTEsMzAgKzM5MSwzMCBAQAogICogTm90ZSB0aGF0IHRoZXNlIHNldHRpbmdzIGFyZW4ndCBmb3IgdGhlIG1vc3QgcGFydCB1c2VkIGluIGluY2x1ZGUvYXRhLmgKICAqIHdoZW4gYWxsIG9mIHRoZSBBVEEgcmVnaXN0ZXJzIGFyZSBzZXR1cAogICovCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4MjAzMUMwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMjAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMUMJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQkyCS8qIENGLkEwIC0tPiBCbGFja2Zpbi5BeCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHgyMDMxQzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwMjAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMUMJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMgkvKiBDRi5BMCAtLT4gQmxhY2tmaW4uQXggKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfQkZJTl9UUlVFX0lERSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQkZJTl9DRl9JREUpCS8qIFVTRSBDb21wYWN0Rmxhc2ggU3RvcmFnZSBDYXJkIGluIHRoZSBjb21tb24gbWVtb3J5IHNwYWNlICovCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4MjAyMTE4MDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMEUJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQkxCS8qIENGLkEwIC0tPiBCbGFja2Zpbi5BeCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHgyMDIxMTgwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwMDAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMEUJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMQkvKiBDRi5BMCAtLT4gQmxhY2tmaW4uQXggKi8KICNlbmRpZgkJCQkvKiBDT05GSUdfQkZJTl9DRl9JREUgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0JGSU5fSEREX0lERSkJLyogVVNFIFRSVUUgSURFICovCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTB4MjAzMTQwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwMjAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTyAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwMUMJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQkyCS8qIENGLkEwIC0tPiBCbGFja2Zpbi5BMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJMHgyMDMxNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDIwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDAwMjAJLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAwMUMJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMgkvKiBDRi5BMCAtLT4gQmxhY2tmaW4uQTEgKi8KIAogI3VuZGVmICBDT05GSUdfU0NMS19ESVYKICNkZWZpbmUgQ09ORklHX1NDTEtfRElWCQk4CmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYmY1NjEtZXpraXQuaCBiL2luY2x1ZGUvY29uZmlncy9iZjU2MS1lemtpdC5oCmluZGV4IDU5YTBmM2YuLjMyMGE4YzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9iZjU2MS1lemtpdC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9iZjU2MS1lemtpdC5oCkBAIC03LDcgKzcsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2JsYWNrZmluLWNvbmZpZy1wcmUuaD4KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk1NzYwMAogLyogU2V0IGRlZmF1bHQgc2VyaWFsIGNvbnNvbGUgZm9yIGJmNTM3ICovCkBAIC03NiwyMCArNzYsMjAgQEAKICAqIEZsYXNoIHNldHRpbmdzCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9BTURfUkVTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQU1EX1JFU0VUCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgyMDAyMDAwMAogI2RlZmluZQlDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAvKiBKRkZTIFBhcnRpdGlvbiBvZmZzZXQgc2V0ICAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCiAvKiA1MTJrIHJlc2VydmVkIGZvciB1LWJvb3QgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgk4CisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SCTgKIAogLyoKICAqIFNEUkFNIHNldHRpbmdzICYgbWVtb3J5IG1hcApAQCAtOTksMjMgKzk5LDIzIEBACiAjZGVmaW5lIENPTkZJR19NRU1fQUREX1dEVEgJCTkJLyogOCwgOSwgMTAsIDExICAgICovCiAjZGVmaW5lIENPTkZJR19NRU1fTVQ0OExDMTZNMTZBMlRHXzc1CTEKIAotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX1JBTV9TSVpFCShDT05GSUdfTUVNX1NJWkUgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFCShDT05GSUdfTUVNX1NJWkUgKiAxMDI0ICogMTAyNCkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSggKENPTkZJR19NRU1fU0laRSAtIDEpICogMTAyNCoxMDI0KQkvKiAxIC4uLiA2MyBNQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoIChDT05GSUdfTUVNX1NJWkUgLSAxKSAqIDEwMjQqMTAyNCkJLyogMSAuLi4gNjMgTUIgaW4gRFJBTSAqLwogCiAjZGVmaW5lCUNPTkZJR19MT0FEQUREUgkJMHgwMTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlDT05GSUdfTE9BREFERFIKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19NQVhfUkFNX1NJWkUgLSBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfTE9BREFERFIKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NT05JVE9SX0JBU0UgLSBDRkdfTUFMTE9DX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDQwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX0FERFIJKENGR19NQUxMT0NfQkFTRSAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDT05GSUdfU1RBQ0tCQVNFCShDRkdfR0JMX0RBVEFfQUREUiAgLSA0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHg0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfQUREUgkoQ09ORklHX1NZU19NQUxMT0NfQkFTRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NUQUNLQkFTRQkoQ09ORklHX1NZU19HQkxfREFUQV9BRERSICAtIDQpCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDEyOCoxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAKICNpZiAoIENPTkZJR19DTEtJTl9IQUxGID09IDAgKQpAQCAtMTM2LDcgKzEzNiw3IEBACiAgKiBDb21tYW5kIHNldHRpbmdzCiAgKi8KIAotI2RlZmluZSBDRkdfQVVUT0xPQUQJIm5vIgkvKiByYXJwYiwgYm9vdHAsIGRoY3AgY29tbWFuZHMgd2lsbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FECSJubyIJLyogcmFycGIsIGJvb3RwLCBkaGNwIGNvbW1hbmRzIHdpbGwJKi8KIAkJCQkvKiBvbmx5IHBlcmZvcm0gYSBjb25maWd1cmF0aW9uCQkqLwogCQkJCS8qIGxvb2t1cCBmcm9tIHRoZSBCT09UUC9ESENQIHNlcnZlcgkqLwogCQkJCS8qIGJ1dCBub3QgdHJ5IHRvIGxvYWQgYW55IGltYWdlCSovCkBAIC0xOTQsMjYgKzE5NCwyNiBAQAogLyoKICAqIENvbnNvbGUgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZQlDRkdfUFJPTVBUCQkiYmZpbj4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiYmZpbj4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxMCBtcyB0aWNrcyAqLwotI2RlZmluZSBDRkdfQk9PVE1fTEVOCQkweDQwMDAwMDAJLyogTGFyZ2UgSW1hZ2UgTGVuZ3RoLCBzZXQgdG8gNjQgTWVnICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxMCBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNX0xFTgkJMHg0MDAwMDAwCS8qIExhcmdlIEltYWdlIExlbmd0aCwgc2V0IHRvIDY0IE1lZyAqLwogCiAvKgogICogRkxBU0ggb3JnYW5pemF0aW9uIGFuZCBlbnZpcm9ubWVudCBkZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2J1YmluZ2EuaCBiL2luY2x1ZGUvY29uZmlncy9idWJpbmdhLmgKaW5kZXggNDlhYmNjNi4uZGNmNWI2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2J1YmluZ2EuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvYnViaW5nYS5oCkBAIC0xMTUsMzEgKzExNSwzMSBAQAogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTSAgICAgIDEgICAgICAgLyogdXNlIFNQRCBFRVBST00gZm9yIHNldHVwICAgICovCiAKIC8qCi0gKiBJZiBDRkdfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KLSAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDRkdfQkFTRV9CQVVEIHZhbHVlLgorICogSWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5LCB0aGVuIFVBUlQgZGl2aXNvciBpcyAzMS4KKyAqIE90aGVyd2lzZSwgVUFSVCBkaXZpc29yIGlzIGRldGVybWluZWQgYnkgQ1BVIENsb2NrIGFuZCBDT05GSUdfU1lTX0JBU0VfQkFVRCB2YWx1ZS4KICAqIFRoZSBMaW51eCBCQVNFX0JBVUQgZGVmaW5lIHNob3VsZCBtYXRjaCB0aGlzIGNvbmZpZ3VyYXRpb24uCiAgKiAgICBiYXNlQmF1ZCA9IGNwdUNsb2NrLyh1YXJ0RGl2aXNvcioxNikKLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKICAqIHNldCBMaW51eCBCQVNFX0JBVUQgdG8gNDAzMjAwLgogICovCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jdW5kZWYgIENGR19FWFRfU0VSSUFMX0NMT0NLICAgICAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KLSN1bmRlZiAgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSAgICAgICAgIC8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQgICAgICAgNjkxMjAwCisjdW5kZWYgIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyAgICAgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjdW5kZWYgIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5ICAgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQgICAgICAgNjkxMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsgMHg2OSB9CS8qIGF2b2lkIGlwcm9iZSBoYW5ndXAgKHdoeT8pICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk2CS8qIDI0QzAyIHJlcXVpcmVzIDVtcyBkZWxheSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7IDB4NjkgfQkvKiBhdm9pZCBpcHJvYmUgaGFuZ3VwICh3aHk/KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTYJLyogMjRDMDIgcmVxdWlyZXMgNW1zIGRlbGF5ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfRUVQUk9NKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogSTJDIGJvb3QgRUVQUk9NICgyNEMwMlcpCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkvKiBJMkMgYm9vdCBFRVBST00gKDI0QzAyVykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNTYsNDcgKzE1Niw0NyBAQAogCQkJCQkvKiByZXNvdXJjZSBjb25maWd1cmF0aW9uICAgICAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XICAgICAgICAgICAgLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICAqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLwotI2RlZmluZSBDRkdfUENJX0NMQVNTQ09ERSAgICAgICAweDA2MDAgIC8qIFBDSSBDbGFzcyBDb2RlOiBicmlkZ2UvaG9zdCAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweDgwMDAwMDAxICAgICAgLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4MDAwMDAwMDAgICAgICAvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MDYwMCAgLyogUENJIENsYXNzIENvZGU6IGJyaWRnZS9ob3N0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUyAgMHg4MDAwMDAwMSAgICAgIC8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEgIDB4MDAwMDAwMDAgICAgICAvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUyAgMHgwMDAwMDAwMCAgICAgIC8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBwZXJpcGhlcmFsIGJhc2UgYWRkcmVzcwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lCUNGR19LRVlfUkVHX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lCUNGR19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKLSNkZWZpbmUJQ0ZHX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0lSX1JFR19CQVNFX0FERFIJMHhGMDIwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCiAgKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJMHhGRkYwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwICAgICAgICAgMHg1NTU1Ci0jZGVmaW5lIENGR19GTEFTSF9BRERSMSAgICAgICAgIDB4MmFhYQotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBjaGFyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAgICAgICAgICAweDU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMSAgICAgICAgIDB4MmFhYQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgY2hhcgogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMDcsMTMgKzIwNywxMyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHgxZmY4CQkvKiBOVlJBTSBzaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZjAwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMHgxZmY4CQkvKiBOVlJBTSBzaXplCSovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgwZmY4CQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KKwkoQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIrQ09ORklHX1NZU19OVlJBTV9TSVpFLUNPTkZJR19FTlZfU0laRSkJLyogRW52CSovCiAjZW5kaWYKIAogLyoKQEAgLTIyMiw0OCArMjIyLDQ4IEBACiAgKiBCUjAvMSBhbmQgT1IwLzEgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkwCQkvKiBGTEFTSCBiYW5rICMxCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5ICggT0NNICkgZm9yIHRlbXBlcmFyeSBzdGFjayB1bnRpbCBzZHJhbSBpcyB0ZXN0ZWQgKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNICAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00gICAgICAgIDEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2gvU1JBTSkgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQICAgICAgICAgICAweDA0MDA2MDAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IgICAgICAgICAgIDB4RkZGMTgwMDAgIC8qIEJBUz0weEZGRixCUz0xTUIsQlU9Ui9XLEJXPThiaXQgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQICAgICAgICAgICAweDA0MDA2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSICAgICAgICAgICAweEZGRjE4MDAwICAvKiBCQVM9MHhGRkYsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChOVlJBTS9SVEMpIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAgICAgICAgICAgIDB4MDQwNDEwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUiAgICAgICAgICAgMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAgICAgICAgIDB4MDQwNDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAgICAgICAgIDB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgICovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKG5vdCB1c2VkKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUCAgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSICAgICAgICAgICAweDAwMDAwMDAwCiAKIC8qIE1lbW9yeSBCYW5rIDIgKG5vdCB1c2VkKSBpbml0aWFsaXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUCAgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSICAgICAgICAgICAweDAwMDAwMDAwCiAKIC8qIE1lbW9yeSBCYW5rIDQgKEZQR0EgcmVncykgaW5pdGlhbGl6YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRBUCAgICAgICAgICAgMHgwMTgxNTAwMAotI2RlZmluZSBDRkdfRUJDX1BCNENSICAgICAgICAgICAweEYwMzE4MDAwICAvKiBCQVM9MHhGMDMsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUCAgICAgICAgICAgMHgwMTgxNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUiAgICAgICAgICAgMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdCAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIFNlcmlhbCBQcmVzZW5jZSBEZXRlY3QgRUVQUk9NIGFkZHJlc3MKQEAgLTI4MywxMyArMjgzLDEzIEBACiAgKiBHUElPMFsyOC0yOV0gLSBVQVJUMSBkYXRhIHNpZ25hbCBpbnB1dC9vdXRwdXQKICAqIEdQSU8wWzMwLTMxXSAtIEVNQUMwIGFuZCBFTUFDMSByZWplY3QgcGFja2V0IGlucHV0cwogICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JIICAgICAgICAgIDB4NTU1NTU1NTUKLSNkZWZpbmUgQ0ZHX0dQSU8wX09TUkwgICAgICAgICAgMHg0MDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUggICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTCAgICAgICAgIDB4MTU1NTU0NDUKLSNkZWZpbmUgQ0ZHX0dQSU8wX1RTUkggICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BJTzBfVFNSTCAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UQ1IgICAgICAgICAgIDB4RkZGRjgwMTQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JIICAgICAgICAgIDB4NTU1NTU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMICAgICAgICAgIDB4NDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSCAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTCAgICAgICAgIDB4MTU1NTU0NDUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JIICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IgICAgICAgICAgIDB4RkZGRjgwMTQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU29tZSBCVUJJTkdBIHN0dWZmLi4uCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvYzJtb24uaCBiL2luY2x1ZGUvY29uZmlncy9jMm1vbi5oCmluZGV4IGRjYTdiNDcuLjQ1MDhkNzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jMm1vbi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jMm1vbi5oCkBAIC02MCw3ICs2MCw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMDEsMzEgKzEwMSwzMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZglDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTM1LDQ3ICsxMzUsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCiAjaWYgZGVmaW5lZChERUJVRykKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9PRkZTRVQJCTB4ODAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTg0LDkgKzE4NCw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NiwxMCArMTk2LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDgsOSArMjA4LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE4LDIwICsyMTgsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yNDIsMTAgKzI0MiwxMCBAQAogICogSWYgdGhpcyBpcyBhIDgwIE1IeiBDUFUsIHNldCBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHRvIDUgKDUqMTY9ODApIQogICovCiAjaWZkZWYJQ09ORklHXzgwTUh6CS8qIGZvciA4MCBNSHosIHdlIHVzZSBhIDE2IE1IeiBjbG9jayAqIDUgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCQkJCQkJCVwKIAkJKCAoNS0xKTw8UExQUkNSX01GX1NISUZUIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUICkKICNlbHNlCQkJLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAjZW5kaWYJLyogQ09ORklHXzgwTUh6ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1NiwxMiArMjU2LDEyIEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAjaWZkZWYJQ09ORklHXzgwTUh6CS8qIGZvciA4MCBNSHosIHdlIHVzZSBhIDE2IE1IeiBjbG9jayAqIDUgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKC8qIFNDQ1JfVEJTICB8ICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUyAgfCAqLyBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKICNlbHNlCQkJLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfVEJTICAgICB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQpAQCAtMjcyLDE0ICsyNzIsMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIFBvd2VyIFN3aXRjaApAQCAtMzEyLDIxICszMTIsMjEgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMzNCw3ICszMzQsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM0OSwyMCArMzQ5LDIwIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RTAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTEsIFRSTFggPSAwLCBDU05UID0gMSwgU0NZID0gNSwgRUhUUiA9IDEJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfQ1NOVF9TQU0gIHwgT1JfQUNTX0RJVjIgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0NTTlRfU0FNICB8IE9SX0FDU19ESVYyIHwgT1JfQkkgfCBcCiAJCQkJIE9SX1NDWV81X0NMSyB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQogCiAvKgogICogQlIyLzMgYW5kIE9SMi8zIChTRFJBTSkKQEAgLTM3MywxOSArMzczLDE5IEBACiAjZGVmaW5lCVNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogI2lmbmRlZglDT05GSUdfQ0FOX0RSSVZFUgotI2RlZmluZQlDRkdfT1IzX1BSRUxJTQlDRkdfT1IyX1BSRUxJTQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lCUNPTkZJR19TWVNfT1IzX1BSRUxJTQlDT05GSUdfU1lTX09SMl9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKICNlbHNlCS8qIENBTiB1c2VzIENTMyMsIHNvIHdlIGNhbiBoYXZlIG9ubHkgb25lIFNEUkFNIGJhbmsgYW55d2F5ICovCi0jZGVmaW5lCUNGR19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0NBTl9PUl9BTQkJMHhGRkZGODAwMAkvKiAzMiBrQiBhZGRyZXNzIG1hc2sJCSovCi0jZGVmaW5lIENGR19PUjNfQ0FOCQkoQ0ZHX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKLSNkZWZpbmUgQ0ZHX0JSM19DQU4JCSgoQ0ZHX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKKyNkZWZpbmUJQ09ORklHX1NZU19DQU5fQkFTRQkJMHhDMDAwMDAwMAkvKiBDQU4gbWFwcGVkIGF0IDB4QzAwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19DQU4JCShDT05GSUdfU1lTX0NBTl9PUl9BTSB8IE9SX0c1TEEgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfQ0FOCQkoKENPTkZJR19TWVNfQ0FOX0JBU0UgJiBCUl9CQV9NU0spIHwgXAogCQkJCQlCUl9QU184IHwgQlJfTVNfVVBNQiB8IEJSX1YgKQogI2VuZGlmCS8qIENPTkZJR19DQU5fRFJJVkVSICovCiAKQEAgLTM5NCwyNiArMzk0LDI2IEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIHJlZnJlc2ggcmF0ZSAxNS42IHVzICg9IDY0IG1zIC8gNEsgPSA2Mi40IC8gcXVhZCBidXJzdHMpIGZvciA8PSAxMjggTUJpdAkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzRLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKiByZWZyZXNoIHJhdGUgNy44IHVzICg9IDY0IG1zIC8gOEsgPSAzMS4yIC8gcXVhZCBidXJzdHMpIGZvciAyNTYgTUJpdAkJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzhLCU1QVFBSX1BUUF9ESVYxNgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jYW5tYi5oIGIvaW5jbHVkZS9jb25maWdzL2Nhbm1iLmgKaW5kZXggNTllNGNiMy4uZmY3YjZlNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2Nhbm1iLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2Nhbm1iLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzUyMDAJCTEJLyogTW9yZSBleGFjdGx5IGEgTVBDNTIwMCAqLwogI2RlZmluZSBDT05GSUdfQ0FOTUIJCTEJLyogLi4uIG9uIGNhbm1iIGJvYXJkIC0gd2UgbmVlZCB0aGlzIGZvciBGRUMuQyAqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJICAgICAqLwpAQCAtNDcsNyArNDcsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19QU0NfQ09OU09MRQkxCS8qIGNvbnNvbGUgaXMgb24gUFNDMSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIAogLyoKQEAgLTc4LDggKzc4LDggQEAKICAqIE1VU1QgYmUgbG93IGJvb3QgLSBISUdIQk9PVCBpcyBub3Qgc3VwcG9ydGVkIGFueW1vcmUKICAqLwogI2lmIChURVhUX0JBU0UgPT0gMHhGRTAwMDAwMCkJCS8qIEJvb3QgbG93IHdpdGggMzIgTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QxNgkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QxNgkxCiAjZWxzZQogIyAgIGVycm9yICJURVhUX0JBU0UgbXVzdCBiZSAweEZFMDAwMDAwIgogI2VuZGlmCkBAIC0xMTcsMjIgKzExNywyMiBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI3VuZGVmIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbiwgZXhwZWN0IG9uZSAxNiBNZWdhYnl0ZSBCYW5rIGF0IG1vc3QKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTE0NywyNyArMTQ3LDI3IEBACiAgKgogICogV2FybmluZyEhISB3aXRoIHRoZSBjdXJyZW50IEJlc3RDb21tIFRhc2ssIE1CQVIgTVVTVCBCRSBzZXQgdG8gMHhmMDAwMDAwMAogICovCi0jZGVmaW5lIENGR19NQkFSCQkJMHhmMDAwMDAwMAkvKiBETyBOT1QgQ0hBTkdFIHRoaXMgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJCTB4ZjAwMDAwMDAJLyogRE8gTk9UIENIQU5HRSB0aGlzICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTE4MCw1MSArMTgwLDUxIEBACiAgKiBQQ0kgZGlzYWJsZWQKICAqIEV0aGVybmV0IDEwMCB3aXRoIE1ECiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDAwMDU4NDQ0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDAwNTg0NDQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotIyAgZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMWYwMDAwMAkvKiAxIC4uLiAzMSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMWYwMDAwMAkvKiAxIC4uLiAzMSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogI2RlZmluZSBDT05GSUdfUlRDX01QQzUyMDAJMQkvKiB1c2UgaW50ZXJuYWwgTVBDNTIwMCBSVEMgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDQ3RDAxCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNDdEMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4N2YwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4N2YwMDAwMDAKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jYW55b25sYW5kcy5oIGIvaW5jbHVkZS9jb25maWdzL2NhbnlvbmxhbmRzLmgKaW5kZXggY2QzZTZhMy4uNzcxZWU2OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NhbnlvbmxhbmRzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NhbnlvbmxhbmRzLmgKQEAgLTU0LDUxICs1NCw1MSBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgUENJIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRQlDRkdfUENJX01FTUJBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgUENJIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFCUNPTkZJR19TWVNfUENJX01FTUJBU0UKIAotI2RlZmluZSBDRkdfUENJRV9NRU1CQVNFCTB4YjAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lFX01FTVNJWkUJMHgwODAwMDAwMAkvKiBzbWFsbGVzdCBpbmNyIGZvciBQQ0llIHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfQkFTRQkJMHhjNDAwMDAwMAkvKiBQQ0llIFVUTCByZWdzICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1CQVNFCTB4YjAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1TSVpFCTB4MDgwMDAwMDAJLyogc21hbGxlc3QgaW5jciBmb3IgUENJZSBwb3J0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9CQVNFCQkweGM0MDAwMDAwCS8qIFBDSWUgVVRMIHJlZ3MgKi8KIAotI2RlZmluZSBDRkdfUENJRTBfQ0ZHQkFTRQkweGMwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9DRkdCQVNFCTB4YzEwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUwX1hDRkdCQVNFCTB4YzMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX1hDRkdCQVNFCTB4YzMwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFCTB4YzEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRQkweGMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfWENGR0JBU0UJMHhjMzAwMTAwMAogCi0jZGVmaW5lCUNGR19QQ0lFMF9VVExCQVNFCTB4YzA4MDEwMDAwVUxMCS8qIDM2Yml0IHBoeXNpY2FsIGFkZHIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMF9VVExCQVNFCTB4YzA4MDEwMDAwVUxMCS8qIDM2Yml0IHBoeXNpY2FsIGFkZHIJKi8KIAogLyogYmFzZSBhZGRyZXNzIG9mIGluYm91bmQgUENJZSB3aW5kb3cgKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfSU5CT1VORF9CQVNFCTB4MDAwMDAwMDAwVUxMCS8qIDM2Yml0IHBoeXNpY2FsIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX0lOQk9VTkRfQkFTRQkweDAwMDAwMDAwMFVMTAkvKiAzNmJpdCBwaHlzaWNhbCBhZGRyCSovCiAKIC8qIEVCQyBzdHVmZiAqLwotI2RlZmluZSBDRkdfTkFORF9BRERSCQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1NSX0JBU0UJCTB4RTEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JPT1RfQkFTRV9BRERSCTB4RkYwMDAwMDAJLyogRUJDIEJvb3QgU3BhY2U6IDB4RkYwMDAwMDAJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAJLyogbGF0ZXIgbWFwcGVkIHRvIHRoaXMgYWRkcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRV9QSFlTX0gJMHg0Ci0jZGVmaW5lIENGR19GTEFTSF9CQVNFX1BIWVNfTAkweENDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFX1BIWVMJKCgodTY0KUNGR19GTEFTSF9CQVNFX1BIWVNfSCA8PCAzMikgfCBcCi0JCQkJICh1NjQpQ0ZHX0ZMQVNIX0JBU0VfUEhZU19MKQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKDY0IDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUREUgkJMHhFMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1JfQkFTRQkJMHhFMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSCTB4RkYwMDAwMDAJLyogRUJDIEJvb3QgU3BhY2U6IDB4RkYwMDAwMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCS8qIGxhdGVyIG1hcHBlZCB0byB0aGlzIGFkZHIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFX1BIWVNfSAkweDQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFX1BIWVNfTAkweENDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRV9QSFlTCSgoKHU2NClDT05GSUdfU1lTX0ZMQVNIX0JBU0VfUEhZU19IIDw8IDMyKSB8IFwKKwkJCQkgKHU2NClDT05GSUdfU1lTX0ZMQVNIX0JBU0VfUEhZU19MKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSg2NCA8PCAyMCkKIAotI2RlZmluZSBDRkdfT0NNX0JBU0UJCTB4RTMwMDAwMDAJLyogT0NNOiAxNmsJCSovCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCTB4RTgwMDAwMDAJLyogU1JBTTogMjU2awkJKi8KLSNkZWZpbmUgQ0ZHX0xPQ0FMX0NPTkZfUkVHUwkweEVGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0JBU0UJCTB4RTMwMDAwMDAJLyogT0NNOiAxNmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9CQVNFCQkweEU4MDAwMDAwCS8qIFNSQU06IDI1NmsJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9DQUxfQ09ORl9SRUdTCTB4RUYwMDAwMDAKIAotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFCTB4RUY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UJMHhFRjYwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyAqLwogCi0jZGVmaW5lIENGR19BSEJfQkFTRQkJMHhFMjAwMDAwMAkvKiBpbnRlcm5hbCBBSEIgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BSEJfQkFTRQkJMHhFMjAwMDAwMAkvKiBpbnRlcm5hbCBBSEIgcGVyaXBoZXJhbHMJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gT0NNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9CQVNFCS8qIE9DTQkJCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJKDQgPDwgMTApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9CQVNFCS8qIE9DTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydApAQCAtMTEzLDEwICsxMTMsMTAgQEAKICAqLwogI2lmICFkZWZpbmVkKENPTkZJR19OQU5EX1VfQk9PVCkgJiYgIWRlZmluZWQoQ09ORklHX05BTkRfU1BMKQogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEJLyogdXNlIEZMQVNIIGZvciBlbnZpcm9ubWVudCB2YXJzICovCi0jZGVmaW5lIENGR19OQU5EX0NTCQkzCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMwkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLwogI2Vsc2UKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9OQU5ECTEJLyogdXNlIE5BTkQgZm9yIGVudmlyb25tZW50IHZhcnMgICovCi0jZGVmaW5lIENGR19OQU5EX0NTCQkwCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMAkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0VNQkVEREVECTEJLyogdXNlIGVtYmVkZGVkIGVudmlyb25tZW50ICovCiAjZW5kaWYKIApAQCAtMTQxLDM2ICsxNDEsMzYgQEAKICAqIFRoaXMgaXMgdGhlIGZpcnN0IG9mZmljaWFsIGltcGxlbWVudGF0aW9uIG9mIGJvb3RpbmcgZnJvbSAyayBwYWdlIHNpemVkCiAgKiBOQU5EIGRldmljZXMgKGUuZy4gTWljcm9uIDI5RjJHMDhBQSAyNTZNYml0ICogOCkKICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TUkMJMHhmZmZmZjAwMAkvKiBTUEwgbG9jYXRpb24JCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9EU1QJKENGR19PQ01fQkFTRSArICgxMiA8PCAxMCkpIC8qIENvcHkgU1BMIGhlcmUgICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9EU1QJMHgwMTAwMDAwMAkvKiBMb2FkIE5VQiB0byB0aGlzIGFkZHIgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU1RBUlQJQ0ZHX05BTkRfVV9CT09UX0RTVAkvKiBTdGFydCBOVUIgZnJvbSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQwkweGZmZmZmMDAwCS8qIFNQTCBsb2NhdGlvbgkJICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUCShDT05GSUdfU1lTX09DTV9CQVNFICsgKDEyIDw8IDEwKSkgLyogQ29weSBTUEwgaGVyZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QJMHgwMTAwMDAwMAkvKiBMb2FkIE5VQiB0byB0aGlzIGFkZHIgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUCUNPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCS8qIFN0YXJ0IE5VQiBmcm9tICAgICAqLwogCQkJCQkJCS8qICAgdGhpcyBhZGRyCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JPT1RfU1BMX0RFTFRBCShDRkdfTkFORF9CT09UX1NQTF9TUkMgLSBDRkdfTkFORF9CT09UX1NQTF9EU1QpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9ERUxUQQkoQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQyAtIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1QpCiAKIC8qCiAgKiBEZWZpbmUgdGhlIHBhcnRpdGlvbmluZyBvZiB0aGUgTkFORCBjaGlwIChvbmx5IFJBTSBVLUJvb3QgaXMgbmVlZGVkIGhlcmUpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX09GRlMJKDEyOCA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUJKDEgPDwgMjApCS8qIFNpemUgb2YgUkFNIFUtQm9vdCBpbWFnZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUwkoMTI4IDw8IDEwKQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NJWkUJKDEgPDwgMjApCS8qIFNpemUgb2YgUkFNIFUtQm9vdCBpbWFnZSAgICovCiAKIC8qCiAgKiBOb3cgdGhlIE5BTkQgY2hpcCBoYXMgdG8gYmUgZGVmaW5lZCAobm8gYXV0b2RldGVjdGlvbiB1c2VkISkKICAqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX1NJWkUJKDIgPDwgMTApCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkxPQ0tfU0laRQkoMTI4IDw8IDEwKQkvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX0NPVU5UCShDRkdfTkFORF9CTE9DS19TSVpFIC8gQ0ZHX05BTkRfUEFHRV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFCSgyIDw8IDEwKQkvKiBOQU5EIGNoaXAgcGFnZSBzaXplCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCSgxMjggPDwgMTApCS8qIE5BTkQgY2hpcCBibG9jayBzaXplCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX0NPVU5UCShDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRSAvIENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUpCiAJCQkJCQkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudAkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CQURfQkxPQ0tfUE9TCTAJCS8qIExvY2F0aW9uIG9mIGJhZCBibG9jayBtYXJrZXIqLwotI2RlZmluZSBDRkdfTkFORF81X0FERFJfQ1lDTEUJCQkvKiBGaWZ0aCBhZGRyIHVzZWQgKDw9MTI4TUIpICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFEX0JMT0NLX1BPUwkwCQkvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EXzVfQUREUl9DWUNMRQkJCS8qIEZpZnRoIGFkZHIgdXNlZCAoPD0xMjhNQikgICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU0laRQkyNTYKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDQllURVMJMwotI2RlZmluZSBDRkdfTkFORF9FQ0NTVEVQUwkoQ0ZHX05BTkRfUEFHRV9TSVpFIC8gQ0ZHX05BTkRfRUNDU0laRSkKLSNkZWZpbmUgQ0ZHX05BTkRfT09CU0laRQk2NAotI2RlZmluZSBDRkdfTkFORF9FQ0NUT1RBTAkoQ0ZHX05BTkRfRUNDQllURVMgKiBDRkdfTkFORF9FQ0NTVEVQUykKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDUE9TCQl7NDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCBcCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NTSVpFCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDQllURVMJMworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFMJKENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUgLyBDT05GSUdfU1lTX05BTkRfRUNDU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX09PQlNJWkUJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1RPVEFMCShDT05GSUdfU1lTX05BTkRfRUNDQllURVMgKiBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFMpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NQT1MJCXs0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIFwKIAkJCQkgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCBcCiAJCQkJIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2M30KIApAQCAtMTc5LDMxICsxNzksMzEgQEAKICAqIEZvciBOQU5EIGJvb3RpbmcgdGhlIGVudmlyb25tZW50IGlzIGVtYmVkZGVkIGluIHRoZSBVLUJvb3QgaW1hZ2UuIFBsZWFzZSB0YWtlCiAgKiBsb29rIGF0IHRoZSBmaWxlIGJvYXJkL2FtY2MvY2FueW9ubGFuZHMvdS1ib290LW5hbmQubGRzIGZvciBkZXRhaWxzLgogICovCi0jZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ0ZHX05BTkRfQkxPQ0tfU0laRQotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENGR19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUICsgQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVAkxCS8qIFVzZSBBTUQgKFNwYW5zaW9uKSByZXNldCBjbWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQU1EX1JFU0VUCTEJLyogVXNlIEFNRCAoU3BhbnNpb24pIHJlc2V0IGNtZCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICAgIHtDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgICAge0NPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCQkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIxNCwxMCArMjE0LDEwIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5ELUZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCShDRkdfTkFORF9BRERSICsgQ0ZHX05BTkRfQ1MpCi0jZGVmaW5lIENGR19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcwkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJKENPTkZJR19TWVNfTkFORF9BRERSICsgQ09ORklHX1NZU19OQU5EX0NTKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0VMRUNUX0RFVklDRSAgMQkvKiBuYW5kIGRyaXZlciBzdXBwb3J0cyBtdXRpcGwuIGNoaXBzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERFIgU0RSQU0KQEAgLTIzMywzMCArMjMzLDMwIEBACiAjZGVmaW5lIENPTkZJR19ERFJfRUNDCQkxCS8qIHdpdGggRUNDIHN1cHBvcnQJCSovCiAjZGVmaW5lIENPTkZJR19ERFJfUlFEQ19GSVhFRAkweDgwMDAwMDM4IC8qIGZpeGVkIHZhbHVlIGZvciBSUURDCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01CWVRFU19TRFJBTQk1MTIJLyogNTEyTUIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01CWVRFU19TRFJBTQk1MTIJLyogNTEyTUIJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZAkJCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCSgweGE4Pj4xKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKIAogLyogSTJDIFNZU01PTiAoTE03NSwgQUQ3NDE0IGlzIGFsbW9zdCBjb21wYXRpYmxlKQkJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkJLyogT04gU2VtaSdzIExNNzUJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9BRDc0MTQJMQkJLyogdXNlIEFENzQxNAkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQkJLyogU2Vuc29yIGFkZHJlc3NlcwkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCTcwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCS0zMAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCTMKIAogLyogUlRDIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUNjIJMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFdGhlcm5ldApAQCAtMjg1LDEyICsyODUsMTIgQEAKICNpZmRlZiBDT05GSUdfNDYwRVgKICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKLSN1bmRlZiBDRkdfT0hDSV9CRV9DT05UUk9MTEVSCQkvKiA0NjBFWCBoYXMgbGl0dGxlIGVuZGlhbiBkZXNjcmlwdG9ycwkqLwotI2RlZmluZSBDRkdfT0hDSV9TV0FQX1JFR19BQ0NFU1MJLyogNDYwRVggaGFzIGxpdHRsZSBlbmRpYW4gcmVnaXN0ZXIJKi8KLSNkZWZpbmUgQ0ZHX09IQ0lfVVNFX05QUwkJLyogZm9yY2UgTm9Qb3dlclN3aXRjaGluZyBtb2RlCQkqLwotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCShDRkdfQUhCX0JBU0UgfCAweGQwMDAwKQotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCSJwcGM0NDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUyAxNQorI3VuZGVmIENPTkZJR19TWVNfT0hDSV9CRV9DT05UUk9MTEVSCQkvKiA0NjBFWCBoYXMgbGl0dGxlIGVuZGlhbiBkZXNjcmlwdG9ycwkqLworI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfU1dBUF9SRUdfQUNDRVNTCS8qIDQ2MEVYIGhhcyBsaXR0bGUgZW5kaWFuIHJlZ2lzdGVyCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9VU0VfTlBTCQkvKiBmb3JjZSBOb1Bvd2VyU3dpdGNoaW5nIG1vZGUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCShDT05GSUdfU1lTX0FIQl9CQVNFIHwgMHhkMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJInBwYzQ0MCIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUyAxNQogI2VuZGlmCiAKIC8qCkBAIC0zMzgsMTEgKzMzOCwxMSBAQAogI2RlZmluZSBDT05GSUdfUENJX0NPTkZJR19IT1NUX0JSSURHRQogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAkJLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLwotI3VuZGVmCUNGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KKyN1bmRlZglDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVAogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkvKiBJQk0JCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkvKiBJQk0JCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCkBAIC0zNjAsMzQgKzM2MCwzNCBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpIHx8IGRlZmluZWQoQ09ORklHX05BTkRfU1BMKQogLyogTWVtb3J5IEJhbmsgMyAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgxMDA1NWUwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkoQ0ZHX0JPT1RfQkFTRV9BRERSIHwgMHg5YTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MTAwNTVlMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX0JPT1RfQkFTRV9BRERSIHwgMHg5YTAwMCkKIAogLyogTWVtb3J5IEJhbmsgMCAoTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxRTAwMCkgLyogQkFTPU5BTkQsQlM9MU1CLEJVPVIvVyxCVz0zMmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDAxODAwM2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19OQU5EX0FERFIgfCAweDFFMDAwKSAvKiBCQVM9TkFORCxCUz0xTUIsQlU9Ui9XLEJXPTMyYml0Ki8KICNlbHNlCiAvKiBNZW1vcnkgQmFuayAwIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDEwMDU1ZTAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfQk9PVF9CQVNFX0FERFIgfCAweDlhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgxMDA1NWUwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIgfCAweDlhMDAwKQogCiAvKiBNZW1vcnkgQmFuayAzIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDE4MDAzYzAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJKENGR19OQU5EX0FERFIgfCAweDFFMDAwKSAvKiBCQVM9TkFORCxCUz0xTUIsQlU9Ui9XLEJXPTMyYml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX05BTkRfQUREUiB8IDB4MUUwMDApIC8qIEJBUz1OQU5ELEJTPTFNQixCVT1SL1csQlc9MzJiaXQqLwogI2VuZGlmCiAKIC8qIE1lbW9yeSBCYW5rIDIgKENQTEQpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMDgwNDI0MAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX0JDU1JfQkFTRSB8IDB4MTgwMDApIC8qIEJBUz1DUExELEJTPTFNLEJVPVJXLEJXPTMyYml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAwODA0MjQwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkoQ09ORklHX1NZU19CQ1NSX0JBU0UgfCAweDE4MDAwKSAvKiBCQVM9Q1BMRCxCUz0xTSxCVT1SVyxCVz0zMmJpdCAqLwogCi0jZGVmaW5lIENGR19FQkNfQ0ZHCQkweEI4NDAwMDAwCQkvKiAgRUJDMF9DRkcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfQ0ZHCQkweEI4NDAwMDAwCQkvKiAgRUJDMF9DRkcgKi8KIAogLyoKICAqIFBQQzR4eCBHUElPIENvbmZpZ3VyYXRpb24KICAqLwogI2lmZGVmIENPTkZJR180NjBFWAogLyogNDYwRVg6IFVzZSBVU0IgY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAogewkJCQkJCQkJCQkJXAogLyogR1BJTyBDb3JlIDAgKi8JCQkJCQkJCQlcCiB7R1BJTzBfQkFTRSwgR1BJT19CSSAsIEdQSU9fQUxUMSwgR1BJT19PVVRfMH0sIC8qIEdQSU8wCUdNQzFUeEQoMCkJVVNCMkhvc3REKDApCSovCVwKQEAgLTQ2MSw3ICs0NjEsNyBAQAogfQogI2Vsc2UKIC8qIDQ2MEdUOiBVc2UgRU1BQzIrMyBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFIHsgLyoJICBPdXQJCSAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIJQWx0ZXJuYXRlMyAqLyBcCiB7CQkJCQkJCQkJCQlcCiAvKiBHUElPIENvcmUgMCAqLwkJCQkJCQkJCVwKIHtHUElPMF9CQVNFLCBHUElPX09VVCwgR1BJT19BTFQxLCBHUElPX09VVF8wfSwgLyogR1BJTzAJR01DMVR4RCgwKQlVU0IySG9zdEQoMCkJKi8JXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NlcmYyNTAuaCBiL2luY2x1ZGUvY29uZmlncy9jZXJmMjUwLmgKaW5kZXggOTYxODQyNS4uNzFlNWI1OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NlcmYyNTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY2VyZjI1MC5oCkBAIC00NCw4ICs0NCw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTk0LDMzICs5NCwzMyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFQJCQkidWJvb3QkICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkJInVib290JCAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJCTI1NgkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUJCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIAkJCQkJCQkJCQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJCTE2CQkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHhhMjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHhhMjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgxNDEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC8yMDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgxNDEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC8yMDAvMTAwIE1IeiAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC0xNTMsNTQgKzE1Myw1NCBAQAogI2RlZmluZSBQSFlTX0ZMQVNIX0JBTktfU0laRQkJMHgwMjAwMDAwMAkvKiAzMiBNQiBCYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkJMHgwMDA0MDAwMAkvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkJMHgwNDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQogCiAvKgogICogR1BJTyBzZXR0aW5ncwogICovCiAKIAotI2RlZmluZSBDRkdfR1BTUjBfVkFMCQkweDAwNDA4MDMwCi0jZGVmaW5lIENGR19HUFNSMV9WQUwJCTB4MDBCRkE4ODIKLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTAkJMHgwMDAxQzAwMAotI2RlZmluZSBDRkdfR1BDUjBfVkFMCQkweEMwMDMxMTAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwJCTB4RkM0MDAzMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTAkJMHgwMDAwM0ZGRgotI2RlZmluZSBDRkdfR1BEUjBfVkFMCQkweEMwNDM5MzMwCi0jZGVmaW5lIENGR19HUERSMV9WQUwJCTB4RkNGRkFCODIKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTAkJMHgwMDAxRkZGRgotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMCQkweEE1MDAwMDEwCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTAkJMHg2MDAwODAxOAotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwJCTB4QUFBNUFBQUEKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMCQkweEFBQTAwMDBBCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTAkJMHgwMDAwMDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IwX1ZBTAkJMHgwMDQwODAzMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTAkJMHgwMEJGQTg4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTAkJMHgwMDAxQzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IwX1ZBTAkJMHhDMDAzMTEwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTAkJMHhGQzQwMDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTAkJMHgwMDAwM0ZGRgorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTAkJMHhDMDQzOTMzMAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIxX1ZBTAkJMHhGQ0ZGQUI4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTAkJMHgwMDAxRkZGRgorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMCQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwJCTB4QTUwMDAwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTAkJMHg2MDAwODAxOAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMCQkweEFBQTVBQUFBCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwJCTB4QUFBMDAwMEEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTAkJMHgwMDAwMDAwMgogCi0jZGVmaW5lIENGR19QU1NSX1ZBTAkJMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX1BTU1JfVkFMCQkweDIwCiAKIC8qCiAgKiBNZW1vcnkgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfTVNDMF9WQUwJCTB4MTI0NDdGRjAKLSNkZWZpbmUgQ0ZHX01TQzFfVkFMCQkweDEyQkM1NTU0Ci0jZGVmaW5lIENGR19NU0MyX1ZBTAkJMHg3RkY5N0ZGMQotI2RlZmluZSBDRkdfTURDTkZHX1ZBTAkJMHgwMDAwMUFDOQotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJMHgwM0NEQzAxNwotI2RlZmluZSBDRkdfTURNUlNfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMF9WQUwJCTB4MTI0NDdGRjAKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTAkJMHgxMkJDNTU1NAorI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCQkweDdGRjk3RkYxCisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTAkJMHgwMDAwMUFDOQorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwJCTB4MDNDREMwMTcKKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwJCTB4MDAwMDAwMDAKIAogLyoKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcwogICovCi0jZGVmaW5lIENGR19NRUNSX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQwX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNJTzBfVkFMCQkweDAwMDA0NzE1Ci0jZGVmaW5lIENGR19NQ0lPMV9WQUwJCTB4MDAwMDQ3MTUKKyNkZWZpbmUgQ09ORklHX1NZU19NRUNSX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMF9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMV9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwJCTB4MDAwMDQ3MTUKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMV9WQUwJCTB4MDAwMDQ3MTUKIAogI2RlZmluZSBfTEVECQkJMHgwODAwMDAxMAkvKmNoZWNrIHRoaXMgKi8KICNkZWZpbmUgTEVEX0JMQU5LCQkweDA4MDAwMDQwCkBAIC0yMDksMTYgKzIwOSwxNiBAQAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDQwMDAwCQkvKiAyNTYgS2lCICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4NDAwMDAJCS8qIDI1NiBLaUIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NtNDAwOC5oIGIvaW5jbHVkZS9jb25maWdzL2NtNDAwOC5oCmluZGV4IGM5YzA1N2MuLmNmZTZkZTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jbTQwMDguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY200MDA4LmgKQEAgLTQyLDggKzQyLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNTYsNyArNTYsNyBAQAogI2RlZmluZQlDT05GSUdfU0VSSUFMMQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC04MywyMSArODMsMjEgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiYm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiYm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA4MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogMTYgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDgwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogMTYgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMDA4MDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMDA4MDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJKDEwMDApCQkvKiAxbXMgcmVzb2x1dGlvbiB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKDEwMDApCQkvKiAxbXMgcmVzb2x1dGlvbiB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTE5LDE3ICsxMTksMTcgQEAKIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDIwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRSAgICAweDAwMDIwMDAwIC8qIDEyOCBLQiBzZWN0b3JzICh4MSkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMCAgICAgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY200MXh4LmggYi9pbmNsdWRlL2NvbmZpZ3MvY200MXh4LmgKaW5kZXggOTQwZTNlMS4uNTQ1NGMyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NtNDF4eC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jbTQxeHguaApAQCAtNDIsOCArNDIsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC01Niw3ICs1Niw3IEBACiAjZGVmaW5lCUNPTkZJR19TRVJJQUwxCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIAogLyoKQEAgLTgzLDIxICs4MywyMSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJib290ID4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJib290ID4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDgwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiAxNiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwODAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMTAwMDAwMAkvKiAxNiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAwMDgwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAwMDgwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkoMTAwMCkJCS8qIDFtcyByZXNvbHV0aW9uIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoMTAwMCkJCS8qIDFtcyByZXNvbHV0aW9uIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xMTksMTcgKzExOSwxNyBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMjAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFICAgIDB4MDAwMjAwMDAgLyogMTI4IEtCIHNlY3RvcnMgKHgxKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAwICAgICAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50ICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jbTUyMDAuaCBiL2luY2x1ZGUvY29uZmlncy9jbTUyMDAuaAppbmRleCA1MjU3ZGIzLi42MjBmZmVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvY201MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NtNTIwMC5oCkBAIC01OCw3ICs1OCw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJNTc2MDAJLyogLi4uIGF0IDU3NjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAjZGVmaW5lIENPTkZJR19TSUxFTlRfQ09OU09MRQkxCS8qIG5lZWRlZCB0byBzaWxlbmNlIGkyY19pbml0KCkgKi8KIAogLyoKQEAgLTY3LDE3ICs2NywxNyBAQAogI2RlZmluZSBDT05GSUdfTVBDNXh4eF9GRUMJMQogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTB4MDAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBhbGxvdyBvdmVyd3JpdGluZyBvZiBldGhhZGRyICovCi0vKiB1c2UgbWlzY19pbml0X3IoKSB0byByZWFkIGV0aGFkZHIgZnJvbSBJMkMgRUVQUk9NIChzZWUgQ0ZHX0kyQ19FRVBST00pICovCisvKiB1c2UgbWlzY19pbml0X3IoKSB0byByZWFkIGV0aGFkZHIgZnJvbSBJMkMgRUVQUk9NIChzZWUgQ09ORklHX1NZU19JMkNfRUVQUk9NKSAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJMQogI2RlZmluZSBDT05GSUdfTUFDX09GRlNFVAkweDM1CS8qIE1BQyBhZGRyZXNzIG9mZnNldCBpbiBJMkMgRUVQUk9NICovCiAKIC8qCiAgKiBQT1NUIHN1cHBvcnQKICAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSB8IENGR19QT1NUX0NQVSB8IENGR19QT1NUX0kyQykKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZIHwgQ09ORklHX1NZU19QT1NUX0NQVSB8IENPTkZJR19TWVNfUE9TVF9JMkMpCiAjZGVmaW5lIE1QQzVYWFhfU1JBTV9QT1NUX1NJWkUJKE1QQzVYWFhfU1JBTV9TSVpFIC0gNCkKIC8qIExpc3Qgb2YgSTJDIGFkZHJlc3NlcyB0byBiZSB2ZXJpZmllZCBieSBQT1NUICovCi0jZGVmaW5lIEkyQ19BRERSX0xJU1QJCXsgQ0ZHX0kyQ19TTEFWRSwgQ0ZHX0kyQ19JTywgQ0ZHX0kyQ19FRVBST00gfQorI2RlZmluZSBJMkNfQUREUl9MSVNUCQl7IENPTkZJR19TWVNfSTJDX1NMQVZFLCBDT05GSUdfU1lTX0kyQ19JTywgQ09ORklHX1NZU19JMkNfRUVQUk9NIH0KIAogLyogZGlzcGxheSBpbWFnZSB0aW1lc3RhbXBzICovCiAjZGVmaW5lIENPTkZJR19USU1FU1RBTVAJMQpAQCAtMTQxLDUzICsxNDEsNTMgQEAKIC8qCiAgKiBDbG9jayBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAJLyogU1lTX1hUQUxfSU4gPSAzM01IeiAqLwotI2RlZmluZSBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJMQkvKiBJUEIgPSAxMzNNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCS8qIFNZU19YVEFMX0lOID0gMzNNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkxCS8qIElQQiA9IDEzM01IeiAqLwogCiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAotI2RlZmluZSBDRkdfTE9XQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKIAogLyogVXNlIE9OLUNoaXAgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKICNkZWZpbmUgQ09ORklHX0JPQVJEX1RZUEVTCTEJLyogd2UgdXNlIGJvYXJkX3R5cGUgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiAzODQga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIDI1NiBrQiBmb3IgbWFsbG9jKCkgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIGluaXRpYWwgbWVtIG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIDM4NCBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCS8qIDI1NiBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBpbml0aWFsIG1lbSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAogLyogd2UgbmVlZCB0aGVzZSBkZXNwaXRlIHVzaW5nIENGSSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMjAwMDAwMCAvKiAzMiBNaUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAgLyogMzIgTWlCICovCiAKIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCQkxCi0jdW5kZWYgQ0ZHX0xPV0JPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQorI3VuZGVmIENPTkZJR19TWVNfTE9XQk9PVAogI2VuZGlmCiAKIApAQCAtMTk1LDE5ICsxOTUsMTkgQEAKICAqIENoaXAgc2VsZWN0cyBjb25maWd1cmF0aW9uCiAgKi8KIC8qIEJvb3QgQ2hpcHNlbGVjdCAqLwotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwODdEMzEJLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwODdEMzEJLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KIC8qIHVzZSBib2FyZF9lYXJseV9pbml0X3IgdG8gZW5hYmxlIGZsYXNoIHdyaXRlIGluIENTX0JPT1QgKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgogCiAvKiBGbGFzaCBtZW1vcnkgYWRkcmVzc2luZyAqLwotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKIC8qIE5vIGJ1cnN0LCBkZWFkIGN5Y2xlID0gMSBmb3IgQ1MwIChGbGFzaCkgKi8KLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgwMDAwMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MDAwMDAwMDEKIAogLyoKICAqIFNEUkFNIGNvbmZpZ3VyYXRpb24KQEAgLTIzMywxMSArMjMzLDExIEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwCS8qIDQwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDAKLSNkZWZpbmUgQ0ZHX0kyQ19JTwkJMHgzOAkvKiBQQ0E5NTU0QUQgSTJDIEkvTyBwb3J0IGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST00JCTB4NTMJLyogSTJDIEVFUFJPTSBkZXZpY2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwCS8qIDQwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0lPCQkweDM4CS8qIFBDQTk1NTRBRCBJMkMgSS9PIHBvcnQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST00JCTB4NTMJLyogSTJDIEVFUFJPTSBkZXZpY2UgYWRkcmVzcyAqLwogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KQEAgLTI2Nyw3ICsyNjcsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAvKiBDb25maWd1cmF0aW9uIG9mIHJlZHVuZGFudCBlbnZpcm9ubWVudCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQpAQCAtMjg3LDQ0ICsyODcsNDQgQEAKICAqIFBTQzI6IFVBUlQKICAqIFBTQzE6IFVBUlQKICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MTA1NTlDNDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgxMDU1OUM0NAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJMQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkxCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QJCTEKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwM2YwMDAwMAkvKiAxIC4uIDYzIE1pQiBpbiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwM2YwMDAwMAkvKiAxIC4uIDYzIE1pQiBpbiBTRFJBTSAqLwogCiAjZGVmaW5lIENPTkZJR19MT09QVwkJMQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290ICovCiAKLSNkZWZpbmUgQ0ZHX1hMQl9QSVBFTElOSU5HCTEJLyogZW5hYmxlIHRyYW5zYWN0aW9uIHBpcGVsaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfWExCX1BJUEVMSU5JTkcJMQkvKiBlbmFibGUgdHJhbnNhY3Rpb24gcGlwZWxpbmcgKi8KIAogLyoKICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZmRlZiBDT05GSUdfQ01EX0tHREIKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NtY19wdTIuaCBiL2luY2x1ZGUvY29uZmlncy9jbWNfcHUyLmgKaW5kZXggOWI3NDQzOC4uNTI3OTIxZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NtY19wdTIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY21jX3B1Mi5oCkBAIC00Miw3ICs0Miw3IEBACiAjZGVmaW5lIENPTkZJR19JTklUUkRfVEFHCTEKIAogI2lmbmRlZiBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCi0jZGVmaW5lIENGR19VU0VfTUFJTl9PU0NJTExBVE9SCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX01BSU5fT1NDSUxMQVRPUgkJMQogLyogZmxhc2ggKi8KICNkZWZpbmUgTUNfUFVJQV9WQUwJMHgwMDAwMDAwMAogI2RlZmluZSBNQ19QVVBfVkFMCTB4MDAwMDAwMDAKQEAgLTc2LDggKzc2LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKIApAQCAtOTcsMTggKzk3LDE4IEBACiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwogCiAjaWZkZWYgQ09ORklHX0hBUkRfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTAJLyogbm90IHVzZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMAkvKiBub3QgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMAkvKiBub3QgdXNlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMAkvKiBub3QgdXNlZCAqLwogI2RlZmluZSBDT05GSUdfUlRDX1JTNUMzNzJBCQkvKiBSSUNPSCBJMkMgUlRDICovCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHgzMgotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4MzIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwogI2Vsc2UKICNkZWZpbmUgQ09ORklHX1RJTUVTVEFNUAogI2VuZGlmCiAvKiBzdGlsbCBhYm91dCAyMCBrQiBmcmVlIHdpdGggdGhpcyBkZWZpbmVkICovCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWSAgICAgIDEKIApAQCAtMTQxLDcgKzE0MSw3IEBACiAjZW5kaWYKIAogCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKICNkZWZpbmUgQVQ5MV9TTUFSVF9NRURJQV9BTEUJKDEgPDwgMjIpCS8qIG91ciBBTEUgaXMgQUQyMiAqLwogI2RlZmluZSBBVDkxX1NNQVJUX01FRElBX0NMRQkoMSA8PCAyMSkJLyogb3VyIENMRSBpcyBBRDIxICovCkBAIC0xNTAsNDQgKzE1MCw0NCBAQAogI2RlZmluZSBQSFlTX1NEUkFNCQkweDIwMDAwMDAwCiAjZGVmaW5lIFBIWVNfU0RSQU1fU0laRQkJMHgxMDAwMDAwCS8qIDE2IG1lZ3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlQSFlTX1NEUkFNCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJQ0ZHX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSAyNjIxNDQKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCVBIWVNfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgUEhZU19TRFJBTV9TSVpFIC0gMjYyMTQ0CiAKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9FVEhFUgogI2RlZmluZSBDT05GSUdfTkVUX1JFVFJZX0NPVU5UCQkyMAogI2RlZmluZSBDT05GSUdfQVQ5MUNfVVNFX1JNSUkKIAotI2RlZmluZSBDRkdfU1BJX1dSSVRFX1RPVVQJCSg1KkNGR19IWikKLSNkZWZpbmUgQ0ZHX01BWF9EQVRBRkxBU0hfQkFOS1MJCTIKLSNkZWZpbmUgQ0ZHX01BWF9EQVRBRkxBU0hfUEFHRVMJCTE2Mzg0Ci0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MwICovCi0jZGVmaW5lIENGR19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzMJMHhEMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MzICovCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX1dSSVRFX1RPVVQJCSg1KkNPTkZJR19TWVNfSFopCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9EQVRBRkxBU0hfUEFHRVMJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwCTB4QzAwMDAwMDAJLyogTG9naWNhbCBhZHJlc3MgZm9yIENTMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMwkweEQwMDAwMDAwCS8qIExvZ2ljYWwgYWRyZXNzIGZvciBDUzMgKi8KIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDEwMDAwMDAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwICAvKiA4IG1lZ3MgbWFpbiBmbGFzaCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMjU2Ci0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCQkoMTEgKiBDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCQkoIDIgKiBDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJCSgxMSAqIENPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkJKCAyICogQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkJMHgyMDAwMAkJLyogYWZ0ZXIgdS1ib290LmJpbiAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkJKDY0IDw8IDEwKQkvKiBzZWN0b3JzIGFyZSA2NCBrQiAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkoMTYgPDwgMTApCS8qIFVzZSBvbmx5IDE2IGtCICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMTAwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjEwMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCwgNTc2MDAsIDM4NDAwLCAxOTIwMCwgOTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMzIJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMzIJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfSFogMTAwMAotI2RlZmluZSBDRkdfSFpfQ0xPQ0sgKEFUOTFDX01BU1RFUl9DTE9DSy8yKQkvKiBBVDkxQ19UQzBfQ01SIGlzIGltcGxpY2l0bHkgc2V0IHRvICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haX0NMT0NLIChBVDkxQ19NQVNURVJfQ0xPQ0svMikJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLwogCQkJCQkJLyogQVQ5MUNfVENfVElNRVJfRElWMV9DTE9DSyAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDMyKjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jbWlfbXBjNXh4LmggYi9pbmNsdWRlL2NvbmZpZ3MvY21pX21wYzV4eC5oCmluZGV4IDE5YzI4MzYuLmZhNzBhMDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jbWlfbXBjNXh4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NtaV9tcGM1eHguaApAQCAtOTMsMjUgKzkzLDI1IEBACiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KIAotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CSAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMGZhMDAwCS8qIDEgTUIgaW4gU1JBTQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAwZmEwMDAJLyogMSBNQiBpbiBTUkFNCQkJKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJCS8qIERlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIERlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDEyNTAwMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAxMjUwMDAwIH0KIAogCiAvKgpAQCAtMTIxLDM5ICsxMjEsMzkgQEAKIC8qCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIChUaGlzIGlzIG5vdCB0aGUgSU1NUiBjb250ZW50KQogICovCi0jZGVmaW5lIENGR19JTU1SCQkweDAxMDAwMDAwCQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW50ZXJuYWwgbWVtb3J5IG1hcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4MDEwMDAwMDAJCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbnRlcm5hbCBtZW1vcnkgbWFwICovCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX0lNTVIgKyAweDAwM2Y5ODAwKQkvKiBQaHlzaWNhbCBzdGFydCBhZHJlc3Mgb2YgaW50ZXJuYWwgTVBDNTU1IHdyaXRhYmxlIFJBTSAqLwotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECShDRkdfSU1NUiArIDB4MDAzZmZmZmYpCS8qIFBoeXNpY2FsIGVuZCBhZHJlc3Mgb2YgaW50ZXJuYWwgTVBDNTU1IHVzZWQgUkFNIGFyZWEJKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJCQkvKiBTaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGdsb2JhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0lOSVRfUkFNX0FERFIpIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpIC8qIE9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgcmFtICovCi0jZGVmaW5lCUNGR19JTklUX1NQX0FERFIJMHgwMTNmYTAwMAkJLyogUGh5c2ljYWwgc3RhcnQgYWRyZXNzIG9mIGluaXRhbCBzdGFjayAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfSU1NUiArIDB4MDAzZjk4MDApCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbnRlcm5hbCBNUEM1NTUgd3JpdGFibGUgUkFNICovCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECShDT05GSUdfU1lTX0lNTVIgKyAweDAwM2ZmZmZmKQkvKiBQaHlzaWNhbCBlbmQgYWRyZXNzIG9mIGludGVybmFsIE1QQzU1NSB1c2VkIFJBTSBhcmVhCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NAkJCS8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZ2xvYmFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUikgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpIC8qIE9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgcmFtICovCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9BRERSCTB4MDEzZmEwMDAJCS8qIFBoeXNpY2FsIHN0YXJ0IGFkcmVzcyBvZiBpbml0YWwgc3RhY2sgKi8KIAogLyoKICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIE1vbml0b3Igd29uJ3QgY2hhbmdlIG1lbW9yeSBtYXAJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMjAwMDAwMAkvKiBFeHRlcm5hbCBmbGFzaCAqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogTW9uaXRvciB3b24ndCBjaGFuZ2UgbWVtb3J5IG1hcAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMjAwMDAwMAkvKiBFeHRlcm5hbCBmbGFzaCAqLwogI2RlZmluZSBQTERfQkFTRQkJMHgwMzAwMDAwMAkvKiBQTEQgICovCiAjZGVmaW5lIEFOWUJVU19CQVNFCQkweDAzMDEwMDAwCS8qIEFueWJ1cyBNb2R1bGUgKi8KIAotI2RlZmluZSBDRkdfUkVTRVRfQURSRVNTCTB4MDEwMDAwMDAJLyogQWRyZXNzIHdoaWNoIGNhdXNlcyByZXNldCAqLwotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCS8qIFRFWFRfQkFTRSBpcyBkZWZpbmVkIGluIHRoZSBib2FyZCBjb25maWcubWsgZmlsZS4JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRFJFU1MJMHgwMTAwMDAwMAkvKiBBZHJlc3Mgd2hpY2ggY2F1c2VzIHJlc2V0ICovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBURVhUX0JBU0UgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnLm1rIGZpbGUuCSovCiAJCQkJCQkvKiBUaGlzIGFkcmVzcyBpcyBnaXZlbiB0byB0aGUgbGlua2VyIHdpdGggLVR0ZXh0IHRvCSovCiAJCQkJCQkvKiBsb2NhdGUgdGhlIHRleHQgc2VjdGlvbiBhdCB0aGlzIGFkcmVzcy4JCSovCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJCQkJKi8KLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSg2NCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCQkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCQkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDY0IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJCQkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkJKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjIsMTggKzE2MiwxOCBAQAogICoKICAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTE4MDAwMAkJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk2MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gICAgMQkJLyogUGh5c2ljYWxseSBzZWN0aW9uIHByb3RlY3Rpb24gb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogTWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTgwMDAwCQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk2MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICAgIDEJCS8qIFBoeXNpY2FsbHkgc2VjdGlvbiBwcm90ZWN0aW9uIG9uCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAwMDIwMDAwCS8qIEVudmlyb25tZW50IHN0YXJ0cyBhdCB0aGlzIGFkcmVzcwkqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MDAwMTAwMDAJLyogU2V0IHdob2xlIHNlY3RvciBhcyBlbnYJCSovCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLworI2RlZmluZQlDT05GSUdfU1lTX1VTRV9QUENFTlYJCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTgzLDEwICsxODMsMTAgQEAKICAqIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dQKQogI2VuZGlmCS8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC0xOTUsMTQgKzE5NSwxNCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgpAQCAtMjExLDcgKzIxMSw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYwMAotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgU0NDUl9SVERJViAgICB8IFNDQ1JfUlRTRUwgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgU0NDUl9SVERJViAgICB8IFNDQ1JfUlRTRUwgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTksNyArMjE5LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERhdGEgc2hvdyBjeWNsZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDApCQkvKiBEaXNhYmxlIGRhdGEgc2hvdyBjeWNsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCkJCS8qIERpc2FibGUgZGF0YSBzaG93IGN5Y2xlCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgpAQCAtMjI3LDggKzIyNyw4IEBACiAgKiBTZXQgYWxsIGJpdHMgdG8gNDAgTWh6CiAgKgogICovCi0jZGVmaW5lIENGR19PU0NfQ0xLCSgodWludCk0MDAwMDAwKQkJLyogT3NjaWxsYXRvciBjbG9jayBpcyA0TUh6CSovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9NRl85IHwgUExQUkNSX0RJVkZfMCkKKyNkZWZpbmUgQ09ORklHX1NZU19PU0NfQ0xLCSgodWludCk0MDAwMDAwKQkJLyogT3NjaWxsYXRvciBjbG9jayBpcyA0TUh6CSovCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCShQTFBSQ1JfTUZfOSB8IFBMUFJDUl9ESVZGXzApCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM2LDM2ICsyMzYsMzYgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1VNQ1IJKFVNQ1JfRlNQRUVEKQkJLyogSU1CIGNsb2NrIHNhbWUgYXMgVS1idXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19VTUNSCShVTUNSX0ZTUEVFRCkJCS8qIElNQiBjbG9jayBzYW1lIGFzIFUtYnVzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElDVFJMIC0gSS1CdXMgU3VwcG9ydCBDb250cm9sIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lDVFJMCShJQ1RSTF9JU0NUX1NFUl83KQkvKiBUYWtlIG91dCBvZiBzZXJpYWxpemVkIG1vZGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ1RSTAkoSUNUUkxfSVNDVF9TRVJfNykJLyogVGFrZSBvdXQgb2Ygc2VyaWFsaXplZCBtb2RlCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTSVUgLSBNZW1vcnkgQ29udHJvbGxlciBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCShDRkdfRkxBU0hfQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX1BTXzE2KQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJKE9SX0FERFJfTUtfRkYgfCBPUl9TQ1lfMykKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCShBTllCVVNfQkFTRSkKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCShPUl9BRERSX01LX0ZGRkYgfCBPUl9TQ1lfMSB8IE9SX0VUSFIpCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkoQ0ZHX1NEUkFNX0JBU0UgfCBCUl9WIHwgQlJfUFNfMzIpCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkoT1JfQUREUl9NS19GRikKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCShQTERfQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX0xCRElSIHwgQlJfUFNfOCkKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCShPUl9BRERSX01LX0ZGIHwgT1JfVFJMWCB8IE9SX0JTQ1kgfCBPUl9TQ1lfOCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgQlJfViB8IEJSX0JJIHwgQlJfUFNfMTYpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJKE9SX0FERFJfTUtfRkYgfCBPUl9TQ1lfMykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkoQU5ZQlVTX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJKE9SX0FERFJfTUtfRkZGRiB8IE9SX1NDWV8xIHwgT1JfRVRIUikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQlJfViB8IEJSX1BTXzMyKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCShPUl9BRERSX01LX0ZGKQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCShQTERfQkFTRSB8IEJSX1YgfCBCUl9CSSB8IEJSX0xCRElSIHwgQlJfUFNfOCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkoT1JfQUREUl9NS19GRiB8IE9SX1RSTFggfCBPUl9CU0NZIHwgT1JfU0NZXzggfCBcCiAJCQkJIE9SX0FDU18xMCB8IE9SX0VUSFIgfCBPUl9DU05UKQogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBXZSBkb24ndCByZWFsaWduIHRoZSBmbGFzaAkqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIFdlIGRvbid0IHJlYWxpZ24gdGhlIGZsYXNoCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERFUiAtIFRpbWVyIERlY3JlbWVudGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsaXNlIHRvIHplcm8KICAqLwotI2RlZmluZSBDRkdfREVSCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJCTB4MDAwMDAwMDAKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NvYnJhNTI3Mi5oIGIvaW5jbHVkZS9jb25maWdzL2NvYnJhNTI3Mi5oCmluZGV4IGVlNTExNmUuLmZiMzJmM2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jb2JyYTUyNzIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY29icmE1MjcyLmgKQEAgLTUzLDEzICs1MywxMyBAQAogLyogLS0tCiAgKiBEZWZpbmVzIHByb2Nlc3NvciBjbG9jayAtIGltcG9ydGFudCBmb3IgY29ycmVjdCB0aW1pbmdzIGNvbmNlcm5pbmcgc2VyaWFsCiAgKiBpbnRlcmZhY2UgZXRjLgotICogQ0ZHX0haIGdpdmVzIHVuaXQ6IDEwMDAgLT4gMSBIeiBePSAxMDAwIG1zCisgKiBDT05GSUdfU1lTX0haIGdpdmVzIHVuaXQ6IDEwMDAgLT4gMSBIeiBePSAxMDAwIG1zCiAgKiAtLS0KICAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKLSNkZWZpbmUgQ0ZHX0NMSwkJCTY2MDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkxNgkJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NMSwkJCTY2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMTYJCS8qIFNEUkFNIHNpemUgaW4gTUIgKi8KIAogLyogLS0tCiAgKiBFbmFibGUgdXNlIG9mIEV0aGVybmV0CkBAIC03MywxNSArNzMsMTUgQEAKIC8qIC0tLQogICogRGVmaW5lIGJhdWRyYXRlIGZvciBVQVJUMSAoY29uc29sZSBvdXRwdXQsIHRmdHAsIC4uLikKICAqIGRlZmF1bHQgdmFsdWUgb2YgQ09ORklHX0JBVURSQVRFIGZvciBTZW50ZWMgYm9hcmQ6IDE5MjAwIGJhdWQKLSAqIENGR19CQVVEUkFURV9UQUJMRSBkZWZpbmVzIHZhbHVlcyB0aGF0IGNhbiBiZSBzZWxlY3RlZCBpbiB1LWJvb3QgY29tbWFuZAorICogQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSBkZWZpbmVzIHZhbHVlcyB0aGF0IGNhbiBiZSBzZWxlY3RlZCBpbiB1LWJvb3QgY29tbWFuZAogICogaW50ZXJmYWNlCiAgKiAtLS0KICAqLwogCiAjZGVmaW5lIENPTkZJR19NQ0ZVQVJUCi0jZGVmaW5lIENGR19VQVJUX1BPUlQJCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX1VBUlRfUE9SVAkJKDApCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTkyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDk2MDAgLCAxOTIwMCAsIDM4NDAwICwgNTc2MDAsIDExNTIwMCB9CiAKIC8qIC0tLQogICogc2V0ICIjaWYgMCIgdG8gIiNpZiAxIiBpZiAoSGFyZHdhcmUpLVdBVENIRE9HIHNob3VsZCBiZSBlbmFibGVkICYgY2hhbmdlCkBAIC0xNTksMjIgKzE1OSwyMiBAQAogIwlkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkJMQogIwlkZWZpbmUgQ09ORklHX01JSQkJMQogIwlkZWZpbmUgQ09ORklHX01JSV9JTklUCQkxCi0jCWRlZmluZSBDRkdfRElTQ09WRVJfUEhZCi0jCWRlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4Ci0jCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCisjCWRlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOAorIwlkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgogCi0jCWRlZmluZSBDRkdfRkVDMF9QSU5NVVgJCTAKLSMJZGVmaW5lIENGR19GRUMwX01JSUJBU0UJCUNGR19GRUMwX0lPQkFTRQorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMwX1BJTk1VWAkJMAorIwlkZWZpbmUgQ09ORklHX1NZU19GRUMwX01JSUJBU0UJCUNPTkZJR19TWVNfRkVDMF9JT0JBU0UKICMJZGVmaW5lIE1DRkZFQ19UT1VUX0xPT1AJCTUwMDAwCi0vKiBJZiBDRkdfRElTQ09WRVJfUEhZIGlzIG5vdCBkZWZpbmVkIC0gaGFyZGNvZGVkICovCi0jCWlmbmRlZiBDRkdfRElTQ09WRVJfUEhZCisvKiBJZiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLworIwlpZm5kZWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkKICMJCWRlZmluZSBGRUNEVVBMRVgJRlVMTAogIwkJZGVmaW5lIEZFQ1NQRUVECQlfMTAwQkFTRVQKICMJZWxzZQotIwkJaWZuZGVmIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgotIwkJCWRlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KKyMJCWlmbmRlZiBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQkJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KICMJCWVuZGlmCi0jCWVuZGlmCQkJLyogQ0ZHX0RJU0NPVkVSX1BIWSAqLworIwllbmRpZgkJCS8qIENPTkZJR19TWVNfRElTQ09WRVJfUEhZICovCiAjZW5kaWYKIAogLyoKQEAgLTIxMSwyMyArMjExLDIzIEBACiAKICNlbmRpZgogCi0jZGVmaW5lIENGR19QUk9NUFQJCSJDT0JSQSA+ICIJLyogTGF5b3V0IG9mIHUtYm9vdCBwcm9tcHQqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIkNPQlJBID4gIgkvKiBMYXlvdXQgb2YgdS1ib290IHByb21wdCovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgyMDAwMAkJLypEZWZpbmVzIGRlZmF1bHQgUkFNIGFkZHJlc3MKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAJCS8qRGVmaW5lcyBkZWZhdWx0IFJBTSBhZGRyZXNzCiBmcm9tIHdoaWNoIHVzZXIgcHJvZ3JhbXMgd2lsbCBiZSBzdGFydGVkICovCiAKIC8qLS0tKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAogLyoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0MCw4ICsyNDAsOCBAQAogICogLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAogCiAvKiAtLS0KICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yNTUsMzkgKzI1NSwzOSBAQAogICogLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfTUJBUgkJMHgxMDAwMDAwMAkvKiBSZWdpc3RlciBCYXNlIEFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHgxMDAwMDAwMAkvKiBSZWdpc3RlciBCYXNlIEFkZHJzICovCiAKIC8qIC0tLQogICogU3lzdGVtIENvbmYuIFJlZy4gJiBTeXN0ZW0gUHJvdGVjdGlvbiBSZWcuCiAgKiAtLS0KICAqLwogCi0jZGVmaW5lIENGR19TQ1IJCQkweDAwMDMKLSNkZWZpbmUgQ0ZHX1NQUgkJCTB4ZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX1NDUgkJCTB4MDAwMworI2RlZmluZSBDT05GSUdfU1lTX1NQUgkJCTB4ZmZmZgogCiAvKiAtLS0KICAqIEV0aGVybmV0IHNldHRpbmdzCiAgKiAtLS0KICAqLwogCi0jZGVmaW5lIENGR19ESVNDT1ZFUl9QSFkKLSNkZWZpbmUgQ0ZHX0VORVRfQkRfQkFTRQkweDc4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorI2RlZmluZSBDT05GSUdfU1lTX0VORVRfQkRfQkFTRQkweDc4MDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGludGVybmFsIFNSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gaW50ZXJuYWwgU1JBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKIAogLyoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjk1LDQyICsyOTUsNDIgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0vKiAjZGVmaW5lIENGR19TRFJBTV9TSVpFCQkxNiAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTE2ICovCiAKIC8qCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmUwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZlMDAwMDAKIAogI2lmZGVmCUNPTkZJR19NT05JVE9SX0lTX0lOX1JBTQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgyMDAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDQwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NDAwKQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JNjQqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgk2NCoxMDI0CiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uID8/CiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTExCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMDAwCS8qIGZsYXNoIHRpbWVvdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEwMDAJLyogZmxhc2ggdGltZW91dCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZGVmaW5pdGlvbnMKQEAgLTMzOCwyOSArMzM4LDI5IEBACiAgKiBQbGVhc2UgcmVmZXIgYWxzbyB0byBNb3Rvcm9sYSBDb2xkZmlyZSB1c2VyIG1hbnVhbCAtIENoYXB0ZXIgWFhYCiAgKiA8aHR0cDovL2Utd3d3Lm1vdG9yb2xhLmNvbS9maWxlcy9kc3AvZG9jL3JlZl9tYW51YWwvTUNGNTI3MlVNLnBkZj4KICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhGRkUwMDIwMQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhGRkUwMDAxNAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCTB4RkZFMDAyMDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCQkweEZGRTAwMDE0CiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMAogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkwCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTAKIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkwCiAKLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JCTAKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJMAogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCQkwCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JCTAKIAotI2RlZmluZSBDRkdfQlI2X1BSRUxJTQkJMAotI2RlZmluZSBDRkdfT1I2X1BSRUxJTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCQkwCiAKLSNkZWZpbmUgQ0ZHX0JSN19QUkVMSU0JCTB4MDAwMDA3MDEKLSNkZWZpbmUgQ0ZHX09SN19QUkVMSU0JCTB4RkYwMDAwN0MKKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCQkweDAwMDAwNzAxCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkJMHhGRjAwMDA3QwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMRUQgY29uZmlnCkBAIC0zNzcsMTUgKzM3NywxNSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUG9ydCBjb25maWd1cmF0aW9uIChHUElPKQogICovCi0jZGVmaW5lIENGR19QQUNOVAkJMHgwMDAwMDAwMAkJLyogUG9ydEEgY29udHJvbCByZWcuOiBBbGwgcGlucyBhcmUgZXh0ZXJuYWwKKyNkZWZpbmUgQ09ORklHX1NZU19QQUNOVAkJMHgwMDAwMDAwMAkJLyogUG9ydEEgY29udHJvbCByZWcuOiBBbGwgcGlucyBhcmUgZXh0ZXJuYWwKIEdQSU8qLwotI2RlZmluZSBDRkdfUEFERFIJCTB4MDBGRgkJCS8qIFBvcnRBIGRpcmVjdGlvbiByZWcuOiBQQTcgdG8gUEEwIGFyZSBvdXRwdXRzCisjZGVmaW5lIENPTkZJR19TWVNfUEFERFIJCTB4MDBGRgkJCS8qIFBvcnRBIGRpcmVjdGlvbiByZWcuOiBQQTcgdG8gUEEwIGFyZSBvdXRwdXRzCiAoMV49b3V0cHV0LCAwXj1pbnB1dCkgKi8KLSNkZWZpbmUgQ0ZHX1BBREFUCQlMRURfU1RBVF8wCQkvKiBQb3J0QSB2YWx1ZSByZWcuOiBUdXJuIGFsbCBMRUQgb2ZmICovCi0jZGVmaW5lIENGR19QQkNOVAkJMHg1NTU1NDE1NQkJLyogUG9ydEIgY29udHJvbCByZWcuOiBFdGhlcm5ldC9VQVJUCisjZGVmaW5lIENPTkZJR19TWVNfUEFEQVQJCUxFRF9TVEFUXzAJCS8qIFBvcnRBIHZhbHVlIHJlZy46IFR1cm4gYWxsIExFRCBvZmYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQkNOVAkJMHg1NTU1NDE1NQkJLyogUG9ydEIgY29udHJvbCByZWcuOiBFdGhlcm5ldC9VQVJUCiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19QQkREUgkJMHgwMDAwCQkJLyogUG9ydEIgZGlyZWN0aW9uOiBBbGwgcGlucyBjb25maWd1cmVkIGFzIGlucHV0cyAqLwotI2RlZmluZSBDRkdfUEJEQVQJCTB4MDAwMAkJCS8qIFBvcnRCIHZhbHVlIHJlZy4gKi8KLSNkZWZpbmUgQ0ZHX1BEQ05UCQkweDAwMDAwMDAwCQkvKiBQb3J0RCBjb250cm9sIHJlZy4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQkREUgkJMHgwMDAwCQkJLyogUG9ydEIgZGlyZWN0aW9uOiBBbGwgcGlucyBjb25maWd1cmVkIGFzIGlucHV0cyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCREFUCQkweDAwMDAJCQkvKiBQb3J0QiB2YWx1ZSByZWcuICovCisjZGVmaW5lIENPTkZJR19TWVNfUERDTlQJCTB4MDAwMDAwMDAJCS8qIFBvcnREIGNvbnRyb2wgcmVnLiAqLwogCiAjZW5kaWYJLyogX0NPTkZJR19DT0JSQTUyNzJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NvZ2VudF9tcGM4MjYwLmggYi9pbmNsdWRlL2NvbmZpZ3MvY29nZW50X21wYzgyNjAuaAppbmRleCBiMzlmNGNiLi5jNTgwMjMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvY29nZW50X21wYzgyNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY29nZW50X21wYzgyNjAuaApAQCAtMTM2LDI1ICsxMzYsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAxYzAwMDAwCS8qIDQgLi4uIDI4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAxYzAwMDAwCS8qIDQgLi4uIDI4IE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjQsMTkgKzE2NCwxOSBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMb3cgTGV2ZWwgQ29nZW50IHNldHRpbmdzCi0gKiBpZiBDRkdfQ01BX0NPTlNfU0VSSUFMIGlzIGRlZmluZWQsIG1ha2Ugc3VyZSB0aGUgODI2MCBDUE0gc2VyaWFsIGlzIG5vdC4KKyAqIGlmIENPTkZJR19TWVNfQ01BX0NPTlNfU0VSSUFMIGlzIGRlZmluZWQsIG1ha2Ugc3VyZSB0aGUgODI2MCBDUE0gc2VyaWFsIGlzIG5vdC4KICAqIGFsc28sIG1ha2Ugc3VyZSBDT05GSUdfQ09OU19JTkRFWCBpcyBzdGlsbCBkZWZpbmVkIC0gdGhlIGluZGV4IHdpbGwgYmUKICAqIDEgZm9yIHNlcmlhbEEsIDIgZm9yIHNlcmlhbEIsIDMgZm9yIHNlcjJBLCA0IGZvciBzZXIyQgogICogKHNlY29uZCAyIGZvciBDTUExMjAgb25seSkKICAqLwotI2RlZmluZSBDRkdfQ01BX01CX0JBU0UJCTB4MDAwMDAwMDAJLyogYmFzZSBvZiBtL2IgYWRkcmVzcyBzcGFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9NQl9CQVNFCQkweDAwMDAwMDAwCS8qIGJhc2Ugb2YgbS9iIGFkZHJlc3Mgc3BhY2UgKi8KIAogI2luY2x1ZGUgPGNvbmZpZ3MvY29nZW50X2NvbW1vbi5oPgogCiAjaWZkZWYgQ09ORklHX0NPTlNfTk9ORQotI2RlZmluZSBDRkdfQ01BX0NPTlNfU0VSSUFMCS8qIHVzZSBDb2dlbnQgbW90aGVyYm9hcmQgc2VyaWFsIGZvciBjb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NPTlNfU0VSSUFMCS8qIHVzZSBDb2dlbnQgbW90aGVyYm9hcmQgc2VyaWFsIGZvciBjb25zb2xlICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NNQV9MQ0RfSEVBUlRCRUFUCS8qIGRlZmluZSBmb3Igc2VjIHJvdGF0b3IgaW4gbGNkIGNvcm5lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9MQ0RfSEVBUlRCRUFUCS8qIGRlZmluZSBmb3Igc2VjIHJvdGF0b3IgaW4gbGNkIGNvcm5lciAqLwogI2RlZmluZSBDT05GSUdfU0hPV19BQ1RJVklUWQogCiAjaWYgKENNQV9NQl9DQVBTICYgQ01BX01CX0NBUF9GTEFTSCkKQEAgLTE5Nyw2OCArMTk3LDY4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqCi0gKiBpZiB5b3UgY2hhbmdlIGJpdHMgaW4gdGhlIEhSQ1csIHlvdSBtdXN0IGFsc28gY2hhbmdlIHRoZSBDRkdfKgorICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ09ORklHX1NZU18qCiAgKiBkZWZpbmVzIGZvciB0aGUgdmFyaW91cyByZWdpc3RlcnMgYWZmZWN0ZWQgYnkgdGhlIEhSQ1cgZS5nLiBjaGFuZ2luZwotICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENGR19TSVVNQ1IuCisgKiBIUkNXX0RQUEN4eCByZXF1aXJlcyB5b3UgdG8gYWxzbyBjaGFuZ2UgQ09ORklHX1NZU19TSVVNQ1IuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCShIUkNXX0VCTXxIUkNXX0JQUzEwfEhSQ1dfTDJDUEMxMHxIUkNXX0RQUEMxMXxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJKEhSQ1dfRUJNfEhSQ1dfQlBTMTB8SFJDV19MMkNQQzEwfEhSQ1dfRFBQQzExfFwKIAkJCSBIUkNXX0lTQjEwMHxIUkNXX01NUjExfEhSQ1dfTU9EQ0tfSDAxMDEpCiAvKiBubyBzbGF2ZXMgc28ganVzdCBkdXBsaWNhdGUgdGhlIG1hc3RlciBocmN3ICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQlDRkdfSFJDV19NQVNURVIKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCUNGR19IUkNXX01BU1RFUgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJQ0ZHX0hSQ1dfTUFTVEVSCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAlDRkdfSFJDV19NQVNURVIKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CUNGR19IUkNXX01BU1RFUgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJQ0ZHX0hSQ1dfTUFTVEVSCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwlDRkdfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQlDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJQ09ORklHX1NZU19IUkNXX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCUNPTkZJR19TWVNfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAlDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJQ09ORklHX1NZU19IUkNXX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CUNPTkZJR19TWVNfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwlDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQlDTUFfTUJfUkFNX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDTUFfTUJfUkFNX0JBU0UKICNpZmRlZiBDT05GSUdfQ01BMzAyCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDTUFfTUJfU0xPVDJfQkFTRQkvKiBjbWEzMDIgaW4gc2xvdCAyICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ01BX01CX1NMT1QyX0JBU0UJLyogY21hMzAyIGluIHNsb3QgMiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNNQV9NQl9GTEFTSF9CQVNFCS8qIGZsYXNoIG9uIG0vYiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNNQV9NQl9GTEFTSF9CQVNFCS8qIGZsYXNoIG9uIG0vYiAqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbSBtYXAgZm9yIExpbnV4Ki8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ0ZHX0ZMQVNIX0JBU0UgLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNpZmRlZiBDT05GSUdfQ01BMzAyCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHgxMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCSg1MTIqMTAyNCkgLyogc2VlIFJFQURNRSAtIGVudiBzZWN0IHJlYWwgc2l6ZSAqLwpAQCAtMjY5LDkgKzI2OSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjg0LDI5ICsyODQsMjkgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAogCQkJCUhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKLSNkZWZpbmUgQ0ZHX0hJRDIJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgkJCQkJIDUtNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUgkJUk1SX0NTUkUKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCVJNUl9DU1JFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uCQkJCQkgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19CQ1IJCUJDUl9FQk0KKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCUJDUl9FQk0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uCQkJCSA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RQUEMxMXxTSVVNQ1JfTDJDUEMxMHxTSVVNQ1JfTU1SMTEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRFBQQzExfFNJVU1DUl9MMkNQQzEwfFNJVU1DUl9NTVIxMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1lQQ1IgLSBTeXN0ZW0gUHJvdGVjdGlvbiBDb250cm9sCQkJCSA0LTM1CkBAIC0zMTUsMTAgKzMxNSwxMCBAQAogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1B8U1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQKQogI2VuZGlmIC8qIENPTkZJR19XQVRDSERPRyAqLwogCkBAIC0zMjgsNyArMzI4LDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCSA0LTQyCkBAIC0zMzYsMjAgKzMzNiwyMCBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbAkJCQkJIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW5zdXJlIERGQlJHIGlzIERpdmlkZSBieSAxNgogICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0RGQlJHMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9ERkJSRzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24JCQkJMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCTAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNQTI4MikKIApAQCAtMzY3LDI2ICszNjcsMjYgQEAKICAqICh0aGUgKl9TSVpFIHZhcnMgbXVzdCBiZSBhIHBvd2VyIG9mIDIpCiAgKi8KIAotI2RlZmluZSBDRkdfQ01BX0NTMF9CQVNFCVRFWFRfQkFTRQkvKiBFUFJPTSAqLwotI2RlZmluZSBDRkdfQ01BX0NTMF9TSVpFCSgxIDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzBfQkFTRQlURVhUX0JBU0UJLyogRVBST00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfQ1MwX1NJWkUJKDEgPDwgMjApCiAjaWYgMAotI2RlZmluZSBDRkdfQ01BX0NTMl9CQVNFCTB4MTAwMDAwMDAJLyogTG9jYWwgQnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19DTUFfQ1MyX1NJWkUJKDE2IDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzJfQkFTRQkweDEwMDAwMDAwCS8qIExvY2FsIEJ1cyBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzJfU0laRQkoMTYgPDwgMjApCiAjZW5kaWYKIAogLyoKICAqIENTMCBtYXBzIHRoZSBFUFJPTSBvbiB0aGUgY3B1IG1vZHVsZQotICogU2V0IGl0IGZvciAxMCB3YWl0IHN0YXRlcywgYWRkcmVzcyBDRkdfTU9OSVRPUl9CQVNFIGFuZCBzaXplIDFNCisgKiBTZXQgaXQgZm9yIDEwIHdhaXQgc3RhdGVzLCBhZGRyZXNzIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIGFuZCBzaXplIDFNCiAgKgogICogTm90ZTogV2UgbXVzdCBoYXZlIGFscmVhZHkgdHJhbnNmZXJyZWQgY29udHJvbCB0byB0aGUgZmluYWwgbG9jYXRpb24KICAqIG9mIHRoZSBFUFJPTSBiZWZvcmUgdGhlc2UgYXJlIHVzZWQsIGJlY2F1c2Ugd2hlbiBCUjAvT1IwIGFyZSBzZXQsIHRoZQogICogbWlycm9yIG9mIHRoZSBlcHJvbSBhdCBhbnkgb3RoZXIgYWRkcmVzc2VzIHdpbGwgZGlzYXBwZWFyLgogICovCiAKLS8qIGJhc2UgYWRkcmVzcyA9IENGR19DTUFfQ1MwX0JBU0UsIDE2LWJpdCwgbm8gcGFyaXR5LCByL28sIGdwY20gKDYweCBidXMpICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoQ0ZHX0NNQV9DUzBfQkFTRSZCUnhfQkFfTVNLKXxCUnhfUFNfMTZ8QlJ4X1dQfEJSeF9WKQotLyogbWFzayBzaXplIENGR19DTUFfQ1MwX1NJWkUsIGNzbmVnIDEvNCBlYXJseSwgYWRyLXRvLWNzIDEvMiwgMTAtd2FpdCBzdGF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKFAyU1pfVE9fQU0oQ0ZHX0NNQV9DUzBfU0laRSl8XAorLyogYmFzZSBhZGRyZXNzID0gQ09ORklHX1NZU19DTUFfQ1MwX0JBU0UsIDE2LWJpdCwgbm8gcGFyaXR5LCByL28sIGdwY20gKDYweCBidXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKENPTkZJR19TWVNfQ01BX0NTMF9CQVNFJkJSeF9CQV9NU0spfEJSeF9QU18xNnxCUnhfV1B8QlJ4X1YpCisvKiBtYXNrIHNpemUgQ09ORklHX1NZU19DTUFfQ1MwX1NJWkUsIGNzbmVnIDEvNCBlYXJseSwgYWRyLXRvLWNzIDEvMiwgMTAtd2FpdCBzdGF0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShQMlNaX1RPX0FNKENPTkZJR19TWVNfQ01BX0NTMF9TSVpFKXxcCiAJCQkJT1J4R19DU05UfE9SeEdfQUNTX0RJVjJ8T1J4R19TQ1lfMTBfQ0xLKQogCiAvKgpAQCAtMzk5LDEwICszOTksMTAgQEAKICAqLwogCiAjaWYgMAotLyogYmFzZSBhZGRyZXNzID0gQ0ZHX0NNQV9DUzJfQkFTRSwgMzItYml0LCBubyBwYXJpdHksID8/PyAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKENGR19DTUFfQ1MyX0JBU0UmQlJ4X0JBX01TSyl8QlJ4X1BTXzMyfC8qPz8/Ki98QlJ4X1YpCi0vKiBtYXNrIHNpemUgQ0ZHX0NNQV9DUzJfU0laRSwgQ1MgdGltZSBub3JtYWwsID8/PyAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoKH4oQ0ZHX0NNQV9DUzJfU0laRS0xKSZPUnhfQU1fTVNLKXwvKj8/PyovKQorLyogYmFzZSBhZGRyZXNzID0gQ09ORklHX1NZU19DTUFfQ1MyX0JBU0UsIDMyLWJpdCwgbm8gcGFyaXR5LCA/Pz8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19DTUFfQ1MyX0JBU0UmQlJ4X0JBX01TSyl8QlJ4X1BTXzMyfC8qPz8/Ki98QlJ4X1YpCisvKiBtYXNrIHNpemUgQ09ORklHX1NZU19DTUFfQ1MyX1NJWkUsIENTIHRpbWUgbm9ybWFsLCA/Pz8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCSgofihDT05GSUdfU1lTX0NNQV9DUzJfU0laRS0xKSZPUnhfQU1fTVNLKXwvKj8/PyovKQogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NvZ2VudF9tcGM4eHguaCBiL2luY2x1ZGUvY29uZmlncy9jb2dlbnRfbXBjOHh4LmgKaW5kZXggYzc3ZjlhMi4uMTdiZDlhMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NvZ2VudF9tcGM4eHguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY29nZW50X21wYzh4eC5oCkBAIC01NSw4ICs1NSw4IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMjMwNDAwCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMCAgLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMCAgLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIAogLyoKQEAgLTEwMSwyNyArMTAxLDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMWMwMDAwMAkvKiA0IC4uLiAyOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMWMwMDAwMAkvKiA0IC4uLiAyOCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKLSNkZWZpbmUgQ0ZHX0FMTE9DX0RQUkFNCisjZGVmaW5lIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xMzEsMTggKzEzMSwxOCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMb3cgTGV2ZWwgQ29nZW50IHNldHRpbmdzCi0gKiBpZiBDRkdfQ01BX0NPTlNfU0VSSUFMIGlzIGRlZmluZWQsIG1ha2Ugc3VyZSB0aGUgOHh4IENQTSBzZXJpYWwgaXMgbm90LgorICogaWYgQ09ORklHX1NZU19DTUFfQ09OU19TRVJJQUwgaXMgZGVmaW5lZCwgbWFrZSBzdXJlIHRoZSA4eHggQ1BNIHNlcmlhbCBpcyBub3QuCiAgKiBhbHNvLCBtYWtlIHN1cmUgQ09ORklHX0NPTlNfSU5ERVggaXMgc3RpbGwgZGVmaW5lZCAtIHRoZSBpbmRleCB3aWxsIGJlCiAgKiAxIGZvciBzZXJpYWxBLCAyIGZvciBzZXJpYWxCLCAzIGZvciBzZXIyQSwgNCBmb3Igc2VyMkIKICAqIChzZWNvbmQgMiBmb3IgQ01BMTIwIG9ubHkpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NNQV9NQl9CQVNFCQkweDAwMDAwMDAwCS8qIGJhc2Ugb2YgbS9iIGFkZHJlc3Mgc3BhY2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfTUJfQkFTRQkJMHgwMDAwMDAwMAkvKiBiYXNlIG9mIG0vYiBhZGRyZXNzIHNwYWNlICovCiAKICNpbmNsdWRlIDxjb25maWdzL2NvZ2VudF9jb21tb24uaD4KIAotI2RlZmluZSBDRkdfQ01BX0NPTlNfU0VSSUFMCS8qIHVzZSBDb2dlbnQgbW90aGVyYm9hcmQgc2VyaWFsIGZvciBjb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NPTlNfU0VSSUFMCS8qIHVzZSBDb2dlbnQgbW90aGVyYm9hcmQgc2VyaWFsIGZvciBjb25zb2xlICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKLSNkZWZpbmUgQ0ZHX0NNQV9MQ0RfSEVBUlRCRUFUCS8qIGRlZmluZSBmb3Igc2VjIHJvdGF0b3IgaW4gbGNkIGNvcm5lciAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9MQ0RfSEVBUlRCRUFUCS8qIGRlZmluZSBmb3Igc2VjIHJvdGF0b3IgaW4gbGNkIGNvcm5lciAqLwogI2RlZmluZSBDT05GSUdfU0hPV19BQ1RJVklUWQogI2lmIChDTUFfTUJfQ0FQUyAmIENNQV9NQl9DQVBfRkxBU0gpCiAvKgpAQCAtMTYyLDQ5ICsxNjIsNDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJQ01BX01CX1JBTV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ01BX01CX1JBTV9CQVNFCiAjaWZkZWYgQ09ORklHX0NNQTMwMgotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ01BX01CX1NMT1QyX0JBU0UJLyogY21hMzAyIGluIHNsb3QgMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNNQV9NQl9TTE9UMl9CQVNFCS8qIGNtYTMwMiBpbiBzbG90IDIgKi8KICNlbHNlCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDTUFfTUJfRkxBU0hfQkFTRQkvKiBmbGFzaCBvbiBtL2IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDTUFfTUJfRkxBU0hfQkFTRQkvKiBmbGFzaCBvbiBtL2IgKi8KICNlbmRpZgotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCUNGR19GTEFTSF9CQVNFIC8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ09ORklHX1NZU19GTEFTSF9CQVNFIC8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjaWZkZWYgQ09ORklHX0NNQTMwMgogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoNTEyKjEwMjQpIC8qIHNlZSBSRUFETUUgLSBlbnYgc2VjdCByZWFsIHNpemUgKi8KQEAgLTIxNCw5ICsyMTQsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAKQEAgLTIyNywxMCArMjI3LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgkvKiBDT05GSUdfV0FUQ0hET0cgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM4LDIxICsyMzgsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjYwLDcgKzI2MCw3IEBACiAgKiBSZXNldCBQTEwgbG9jayBzdGF0dXMgc3RpY2t5IGJpdCwgdGltZXIgZXhwaXJlZCBzdGF0dXMgYml0IGFuZCB0aW1lcgogICogaW50ZXJydXB0IHN0YXR1cyBiaXQgLSBsZWF2ZSBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHVuY2hhbmdlZCAhCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoUExQUkNSX1NQTFNTIHwgUExQUkNSX1RFWFBTIHwgUExQUkNSX1RNSVNUKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjY5LDcgKzI2OSw3IEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9UQlMgICAgIHwgU0NDUl9SVERJViAgICB8IFNDQ1JfUlRTRUwgICAgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9UQlMgICAgIHwgU0NDUl9SVERJViAgICB8IFNDQ1JfUlRTRUwgICAgfCBcCiAJCQkgU0NDUl9DT00wMCAgIHwgU0NDUl9ERlNZTkMwMCB8IFNDQ1JfREZCUkcwMCAgfCBcCiAJCQkgU0NDUl9ERk5MMDAwIHwgU0NDUl9ERk5IMDAwICB8IFNDQ1JfREZMQ0QwMDAgfCBcCiAJCQkgU0NDUl9ERkFMQ0QwMCkKQEAgLTI3OSwyOSArMjc5LDI5IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0vKiNkZWZpbmUJQ0ZHX0RFUgkweDIwMDIwMDBGKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisvKiNkZWZpbmUJQ09ORklHX1NZU19ERVIJMHgyMDAyMDAwRiovCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNQTI4Nl82MF9PTEQpCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgogICoKLSAqIE5PVEU6IGFsdGhvdWdoIHRoZSBuYW1lcyAoQ0ZHX3hSbl9QUkVMSU0pIHN1Z2dlc3QgcHJlbGltaW5hcnkgc2V0dGluZ3MsCisgKiBOT1RFOiBhbHRob3VnaCB0aGUgbmFtZXMgKENPTkZJR19TWVNfeFJuX1BSRUxJTSkgc3VnZ2VzdCBwcmVsaW1pbmFyeSBzZXR0aW5ncywKICAqIHRoZXkgYXJlIGFjdHVhbGx5IHRoZSBmaW5hbCBzZXR0aW5ncyBmb3IgdGhpcyBjcHUvYm9hcmQsIGJlY2F1c2UgdGhlCiAgKiBmbGFzaCBhbmQgUkFNIGFyZSBvbiB0aGUgbW90aGVyYm9hcmQsIGFjY2Vzc2VkIHZpYSB0aGUgQ01BYnVzLCBhbmQgdGhlCiAgKiBtYXBwaW5ncyBhcmUgcHJldHR5IG11Y2ggZml4ZWQuCkBAIC0zMDksNTggKzMwOSw1OCBAQAogICogKHRoZSAqX1NJWkUgdmFycyBtdXN0IGJlIGEgcG93ZXIgb2YgMikKICAqLwogCi0jZGVmaW5lIENGR19DTUFfQ1MwX0JBU0UJVEVYVF9CQVNFCQkvKiBFUFJPTSAqLwotI2RlZmluZSBDRkdfQ01BX0NTMF9TSVpFCSgxIDw8IDIwKQotI2RlZmluZSBDRkdfQ01BX0NTMV9CQVNFCUNNQV9NQl9SQU1fQkFTRQkJLyogUkFNICsgSS9PIFNMT1QgMSAqLwotI2RlZmluZSBDRkdfQ01BX0NTMV9TSVpFCSg2NCA8PCAyMCkKLSNkZWZpbmUgQ0ZHX0NNQV9DUzJfQkFTRQlDTUFfTUJfU0xPVDJfQkFTRQkvKiBJL08gU0xPVFMgMiArIDMgKi8KLSNkZWZpbmUgQ0ZHX0NNQV9DUzJfU0laRQkoNjQgPDwgMjApCi0jZGVmaW5lIENGR19DTUFfQ1MzX0JBU0UJQ01BX01CX1JPTUxPV19CQVNFCS8qIE0vQiBJL08gKi8KLSNkZWZpbmUgQ0ZHX0NNQV9DUzNfU0laRQkoMzIgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NTMF9CQVNFCVRFWFRfQkFTRQkJLyogRVBST00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTUFfQ1MwX1NJWkUJKDEgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NTMV9CQVNFCUNNQV9NQl9SQU1fQkFTRQkJLyogUkFNICsgSS9PIFNMT1QgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzFfU0laRQkoNjQgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NTMl9CQVNFCUNNQV9NQl9TTE9UMl9CQVNFCS8qIEkvTyBTTE9UUyAyICsgMyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NNQV9DUzJfU0laRQkoNjQgPDwgMjApCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NTM19CQVNFCUNNQV9NQl9ST01MT1dfQkFTRQkvKiBNL0IgSS9PICovCisjZGVmaW5lIENPTkZJR19TWVNfQ01BX0NTM19TSVpFCSgzMiA8PCAyMCkKIAogLyoKICAqIENTMCBtYXBzIHRoZSBFUFJPTSBvbiB0aGUgY3B1IG1vZHVsZQotICogU2V0IGl0IGZvciA0IHdhaXQgc3RhdGVzLCBhZGRyZXNzIENGR19NT05JVE9SX0JBU0UgYW5kIHNpemUgMU0KKyAqIFNldCBpdCBmb3IgNCB3YWl0IHN0YXRlcywgYWRkcmVzcyBDT05GSUdfU1lTX01PTklUT1JfQkFTRSBhbmQgc2l6ZSAxTQogICoKICAqIE5vdGU6IFdlIG11c3QgaGF2ZSBhbHJlYWR5IHRyYW5zZmVycmVkIGNvbnRyb2wgdG8gdGhlIGZpbmFsIGxvY2F0aW9uCiAgKiBvZiB0aGUgRVBST00gYmVmb3JlIHRoZXNlIGFyZSB1c2VkLCBiZWNhdXNlIHdoZW4gQlIwL09SMCBhcmUgc2V0LCB0aGUKICAqIG1pcnJvciBvZiB0aGUgZXByb20gYXQgYW55IG90aGVyIGFkZHJlc3NlcyB3aWxsIGRpc2FwcGVhci4KICAqLwogCi0vKiBiYXNlIGFkZHJlc3MgPSBDRkdfQ01BX0NTMF9CQVNFLCAxNi1iaXQsIG5vIHBhcml0eSwgci9vLCBncGNtICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoQ0ZHX0NNQV9DUzBfQkFTRSZCUl9CQV9NU0spfEJSX1BTXzE2fEJSX1dQfEJSX1YpCi0vKiBtYXNrIHNpemUgQ0ZHX0NNQV9DUzBfU0laRSwgQ1MgdGltZSBub3JtYWwsIGJ1cnN0IGluaGliaXQsIDQtd2FpdCBzdGF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKCh+KENGR19DTUFfQ1MwX1NJWkUtMSkmT1JfQU1fTVNLKXxPUl9CSXxPUl9TQ1lfNF9DTEspCisvKiBiYXNlIGFkZHJlc3MgPSBDT05GSUdfU1lTX0NNQV9DUzBfQkFTRSwgMTYtYml0LCBubyBwYXJpdHksIHIvbywgZ3BjbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0NNQV9DUzBfQkFTRSZCUl9CQV9NU0spfEJSX1BTXzE2fEJSX1dQfEJSX1YpCisvKiBtYXNrIHNpemUgQ09ORklHX1NZU19DTUFfQ1MwX1NJWkUsIENTIHRpbWUgbm9ybWFsLCBidXJzdCBpbmhpYml0LCA0LXdhaXQgc3RhdGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoKH4oQ09ORklHX1NZU19DTUFfQ1MwX1NJWkUtMSkmT1JfQU1fTVNLKXxPUl9CSXxPUl9TQ1lfNF9DTEspCiAKIC8qCiAgKiBDUzEgbWFwcyBtb3RoZXJib2FyZCBEUkFNIGFuZCBtb3RoZXJib2FyZCBJL08gc2xvdCAxCiAgKiAoZWFjaCAzMk1ieXRlIGluIHNpemUpCiAgKi8KIAotLyogYmFzZSBhZGRyZXNzID0gQ0ZHX0NNQV9DUzFfQkFTRSwgMzItYml0LCBubyBwYXJpdHksIHIvdywgZ3BjbSAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKENGR19DTUFfQ1MxX0JBU0UmQlJfQkFfTVNLKXxCUl9WKQotLyogbWFzayBzaXplIENGR19DTUFfQ1MxX1NJWkUsIENTIHRpbWUgbm9ybWFsLCBidXJzdCBvaywgZXh0IHhmZXIgYWNrICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCSgofihDRkdfQ01BX0NTMV9TSVpFLTEpJk9SX0FNX01TSyl8T1JfU0VUQSkKKy8qIGJhc2UgYWRkcmVzcyA9IENPTkZJR19TWVNfQ01BX0NTMV9CQVNFLCAzMi1iaXQsIG5vIHBhcml0eSwgci93LCBncGNtICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKENPTkZJR19TWVNfQ01BX0NTMV9CQVNFJkJSX0JBX01TSyl8QlJfVikKKy8qIG1hc2sgc2l6ZSBDT05GSUdfU1lTX0NNQV9DUzFfU0laRSwgQ1MgdGltZSBub3JtYWwsIGJ1cnN0IG9rLCBleHQgeGZlciBhY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCSgofihDT05GSUdfU1lTX0NNQV9DUzFfU0laRS0xKSZPUl9BTV9NU0spfE9SX1NFVEEpCiAKIC8qCiAgKiBDUzIgbWFwcyBtb3RoZXJib2FyZCBJL08gc2xvdHMgMiBhbmQgMwogICogKGVhY2ggMzJNYnl0ZSBpbiBzaXplKQogICovCiAKLS8qIGJhc2UgYWRkcmVzcyA9IENGR19DTUFfQ1MyX0JBU0UsIDMyLWJpdCwgbm8gcGFyaXR5LCByL3csIGdwY20gKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChDRkdfQ01BX0NTMl9CQVNFJkJSX0JBX01TSyl8QlJfVikKLS8qIG1hc2sgc2l6ZSBDRkdfQ01BX0NTMl9TSVpFLCBDUyB0aW1lIG5vcm1hbCwgYnVyc3Qgb2ssIGV4dCB4ZmVyIGFjayAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoKH4oQ0ZHX0NNQV9DUzJfU0laRS0xKSZPUl9BTV9NU0spfE9SX1NFVEEpCisvKiBiYXNlIGFkZHJlc3MgPSBDT05GSUdfU1lTX0NNQV9DUzJfQkFTRSwgMzItYml0LCBubyBwYXJpdHksIHIvdywgZ3BjbSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChDT05GSUdfU1lTX0NNQV9DUzJfQkFTRSZCUl9CQV9NU0spfEJSX1YpCisvKiBtYXNrIHNpemUgQ09ORklHX1NZU19DTUFfQ1MyX1NJWkUsIENTIHRpbWUgbm9ybWFsLCBidXJzdCBvaywgZXh0IHhmZXIgYWNrICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoKH4oQ09ORklHX1NZU19DTUFfQ1MyX1NJWkUtMSkmT1JfQU1fTVNLKXxPUl9TRVRBKQogCiAvKgogICogQ1MzIG1hcHMgbW90aGVyYm9hcmQgSS9PCiAgKiAoMzJNYnl0ZSBpbiBzaXplKQogICovCiAKLS8qIGJhc2UgYWRkcmVzcyA9IENGR19DTUFfQ1MzX0JBU0UsIDMyLWJpdCwgbm8gcGFyaXR5LCByL3csIGdwY20gKi8KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChDRkdfQ01BX0NTM19CQVNFJkJSX0JBX01TSyl8QlJfVikKLS8qIG1hc2sgc2l6ZSBDRkdfQ01BX0NTM19TSVpFLCBDUyB0aW1lIG5vcm1hbCwgYnVyc3QgaW5oaWJpdCwgZXh0IHhmZXIgYWNrICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCSgofihDRkdfQ01BX0NTM19TSVpFLTEpJk9SX0FNX01TSyl8T1JfQkl8T1JfU0VUQSkKKy8qIGJhc2UgYWRkcmVzcyA9IENPTkZJR19TWVNfQ01BX0NTM19CQVNFLCAzMi1iaXQsIG5vIHBhcml0eSwgci93LCBncGNtICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKENPTkZJR19TWVNfQ01BX0NTM19CQVNFJkJSX0JBX01TSyl8QlJfVikKKy8qIG1hc2sgc2l6ZSBDT05GSUdfU1lTX0NNQV9DUzNfU0laRSwgQ1MgdGltZSBub3JtYWwsIGJ1cnN0IGluaGliaXQsIGV4dCB4ZmVyIGFjayAqLworI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JKCh+KENPTkZJR19TWVNfQ01BX0NTM19TSVpFLTEpJk9SX0FNX01TSyl8T1JfQkl8T1JfU0VUQSkKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jcGNpNTIwMC5oIGIvaW5jbHVkZS9jb25maWdzL2NwY2k1MjAwLmgKaW5kZXggMWY1M2RkYy4uYjlkYWJhYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NwY2k1MjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NwY2k1MjAwLmgKQEAgLTQ1LDcgKzQ1LDcgQEAKICNkZWZpbmUgQ09ORklHX0NQQ0k1MjAwCQkxCS8qIC4uLiBvbiBDUENJNTIwMCAgYm9hcmQgKi8KICNkZWZpbmUgQ09ORklHX01QQzUyMDBfRERSCTEJLyogLi4uIHVzZSBERFIgUkFNCSAgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMAkvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCS8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTU3LDcgKzU3LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2lmZGVmIENPTkZJR19NUEM1MjAwCQkvKiBNUEM1MTAwIFBDSSBpcyBub3Qgc3VwcG9ydGVkIHlldC4gKi8KIC8qCkBAIC04Niw3ICs4Niw3IEBACiAjaWYgMAkJCQkvKiB0ZXN0LW9ubHkgISEhICovCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAJCTEKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCQkxCiAjZW5kaWYKIApAQCAtMTMwLDEyICsxMzAsMTIgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9EQVRFCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkYwMDAwMDApCS8qIEJvb3QgbG93IHdpdGggMTYgTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QxNgkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QxNgkxCiAjZW5kaWYKICNpZiAoVEVYVF9CQVNFID09IDB4RkY4MDAwMDApCS8qIEJvb3QgbG93IHdpdGggIDggTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QwOAkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QwOAkxCiAjZW5kaWYKIAogLyoKQEAgLTE3Miw0OCArMTcyLDQ4IEBACiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKIAogI2RlZmluZSBDT05GSUdfUlRDX000OFQzNUEJMQkvKiBTVCBFbGVjdHJvbmljcyBNNDggdGltZWtlZXBlciAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZmQwMTAwMDAKLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUJCTMyKjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmZDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJCTMyKjEwMjQKIAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI3VuZGVmIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogI2VuZGlmCiAvKgogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4NjAwMAkvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTg2MDAwCS8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwkJMQogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJICAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDAwMDAwKQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkgICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwpAQCAtMjM0LDI2ICsyMzQsMjYgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjY5LDY2ICsyNjksNjYgQEAKIC8qCiAgKiBHUElPIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MDEwNTI0NDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgwMTA1MjQ0NAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIJMHgwMDAwMDAwMAkvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0REQwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0REQwMAogCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQkweGZkMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHgwMDAxMDAwMAotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHgxMDEwMTQxMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TVEFSVAkJMHhmZDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgxMDEwMTQxMAogCi0jZGVmaW5lIENGR19DUzNfU1RBUlQJCTB4ZmQwMTAwMDAKLSNkZWZpbmUgQ0ZHX0NTM19TSVpFCQkweDAwMDEwMDAwCi0jZGVmaW5lIENGR19DUzNfQ0ZHCQkweDEwMTA5NDEwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NUQVJUCQkweGZkMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX1NJWkUJCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfQ0ZHCQkweDEwMTA5NDEwCiAKLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTQiBzdHVmZgpAQCAtMzUwLDcxICszNTAsNzEgQEAKICNkZWZpbmUJQ09ORklHX0lERV9SRVNFVAkvKiByZXNldCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCQkJCQkJICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ1BMRCBzdHVmZgogICovCi0jZGVmaW5lIENGR19GUEdBX1hDOTVYTAkJMQkvKiB1c2luZyBYaWxpbnggWEM5NVhMIENQTEQJICovCi0jZGVmaW5lIENGR19GUEdBX01BWF9TSVpFCTMyKjEwMjQJLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQJICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9YQzk1WEwJCTEJLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfTUFYX1NJWkUJMzIqMTAyNAkvKiAzMmtCeXRlIGlzIGVub3VnaCBmb3IgQ1BMRAkgKi8KIAogLyogQ1BMRCBwcm9ncmFtIHBpbiBjb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19GUEdBX1BSRwkJMHgyMDAwMDAwMAkvKiBKVEFHIFRNUyBwaW4gKHBwYyBvdXRwdXQpCSAgICAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9DTEsJCTB4MTAwMDAwMDAJLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfREFUQQkJMHgyMDAwMDAwMAkvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLwotI2RlZmluZSBDRkdfRlBHQV9ET05FCQkweDEwMDAwMDAwCS8qIEpUQUcgVERJLT5URE8gcGluIChwcGMgaW5wdXQpICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUkcJCTB4MjAwMDAwMDAJLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkJMHgxMDAwMDAwMAkvKiBKVEFHIFRDSyBwaW4gKHBwYyBvdXRwdXQpCSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfREFUQQkJMHgyMDAwMDAwMAkvKiBKVEFHIFRETy0+VERJIGRhdGEgcGluIChwcGMgb3V0cHV0KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRE9ORQkJMHgxMDAwMDAwMAkvKiBKVEFHIFRESS0+VERPIHBpbiAocHBjIGlucHV0KSAgICAgICAqLwogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX1RNUwkoQ0ZHX01CQVIgKyAweEIxMCkJLyogSlRBRyBUTVMgcGluIChHUFMgZGF0YSBvdXQgdmFsdWUgcmVnLikgICAgICAqLwotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9UQ0sJKENGR19NQkFSICsgMHhDMEMpCS8qIEpUQUcgVENLIHBpbiAoR1BXIGRhdGEgb3V0IHZhbHVlIHJlZy4pICAgICAgKi8KLSNkZWZpbmUgSlRBR19HUElPX0FERFJfVERJCShDRkdfTUJBUiArIDB4QzBDKQkvKiBKVEFHIFRETy0+VERJIHBpbiAoR1BXIGRhdGEgb3V0IHZhbHVlIHJlZy4pICovCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX1RETwkoQ0ZHX01CQVIgKyAweEIxNCkJLyogSlRBRyBUREktPlRETyBwaW4gKEdQUyBkYXRhIGluIHZhbHVlIHJlZy4pICAqLworI2RlZmluZSBKVEFHX0dQSU9fQUREUl9UTVMJKENPTkZJR19TWVNfTUJBUiArIDB4QjEwKQkvKiBKVEFHIFRNUyBwaW4gKEdQUyBkYXRhIG91dCB2YWx1ZSByZWcuKSAgICAgICovCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX1RDSwkoQ09ORklHX1NZU19NQkFSICsgMHhDMEMpCS8qIEpUQUcgVENLIHBpbiAoR1BXIGRhdGEgb3V0IHZhbHVlIHJlZy4pICAgICAgKi8KKyNkZWZpbmUgSlRBR19HUElPX0FERFJfVERJCShDT05GSUdfU1lTX01CQVIgKyAweEMwQykJLyogSlRBRyBURE8tPlRESSBwaW4gKEdQVyBkYXRhIG91dCB2YWx1ZSByZWcuKSAqLworI2RlZmluZSBKVEFHX0dQSU9fQUREUl9URE8JKENPTkZJR19TWVNfTUJBUiArIDB4QjE0KQkvKiBKVEFHIFRESS0+VERPIHBpbiAoR1BTIGRhdGEgaW4gdmFsdWUgcmVnLikgICovCiAKLSNkZWZpbmUgSlRBR19HUElPX0FERFJfQ0ZHCShDRkdfTUJBUiArIDB4QjAwKQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9DRkcJKENPTkZJR19TWVNfTUJBUiArIDB4QjAwKQogI2RlZmluZSBKVEFHX0dQSU9fQ0ZHX1NFVAkweDAwMDAwMDAwCiAjZGVmaW5lIEpUQUdfR1BJT19DRkdfUkVTRVQJMHgwMEYwMDAwMAogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RNUwkoQ0ZHX01CQVIgKyAweEIwNCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfRU5fVE1TCShDT05GSUdfU1lTX01CQVIgKyAweEIwNCkKICNkZWZpbmUgSlRBR19HUElPX1RNU19FTl9TRVQJMHgyMDAwMDAwMAkvKiBFbmFibGUgZm9yIEdQSU8gKi8KICNkZWZpbmUgSlRBR19HUElPX1RNU19FTl9SRVNFVAkweDAwMDAwMDAwCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UTVMJKENGR19NQkFSICsgMHhCMEMpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UTVMJKENPTkZJR19TWVNfTUJBUiArIDB4QjBDKQogI2RlZmluZSBKVEFHX0dQSU9fVE1TX0REUl9TRVQJMHgyMDAwMDAwMAkvKiBTZXQgYXMgb3V0cHV0ICAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RNU19ERFJfUkVTRVQgMHgwMDAwMDAwMAogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RDSwkoQ0ZHX01CQVIgKyAweEMwMCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfRU5fVENLCShDT05GSUdfU1lTX01CQVIgKyAweEMwMCkKICNkZWZpbmUgSlRBR19HUElPX1RDS19FTl9TRVQJMHgyMDAwMDAwMAkvKiBFbmFibGUgZm9yIEdQSU8gKi8KICNkZWZpbmUgSlRBR19HUElPX1RDS19FTl9SRVNFVAkweDAwMDAwMDAwCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UQ0sJKENGR19NQkFSICsgMHhDMDgpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4QzA4KQogI2RlZmluZSBKVEFHX0dQSU9fVENLX0REUl9TRVQJMHgyMDAwMDAwMAkvKiBTZXQgYXMgb3V0cHV0ICAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RDS19ERFJfUkVTRVQgMHgwMDAwMDAwMAogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RESQkoQ0ZHX01CQVIgKyAweEMwMCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfRU5fVERJCShDT05GSUdfU1lTX01CQVIgKyAweEMwMCkKICNkZWZpbmUgSlRBR19HUElPX1RESV9FTl9TRVQJMHgxMDAwMDAwMAkvKiBFbmFibGUgYXMgR1BJTyAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RESV9FTl9SRVNFVAkweDAwMDAwMDAwCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UREkJKENGR19NQkFSICsgMHhDMDgpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9UREkJKENPTkZJR19TWVNfTUJBUiArIDB4QzA4KQogI2RlZmluZSBKVEFHX0dQSU9fVERJX0REUl9TRVQJMHgxMDAwMDAwMAkvKiBTZXQgYXMgb3V0cHV0ICAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RESV9ERFJfUkVTRVQgMHgwMDAwMDAwMAogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RETwkoQ0ZHX01CQVIgKyAweEIwNCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfRU5fVERPCShDT05GSUdfU1lTX01CQVIgKyAweEIwNCkKICNkZWZpbmUgSlRBR19HUElPX1RET19FTl9TRVQJMHgxMDAwMDAwMAkvKiBFbmFibGUgYXMgR1BJTyAgKi8KICNkZWZpbmUgSlRBR19HUElPX1RET19FTl9SRVNFVAkweDAwMDAwMDAwCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9URE8JKENGR19NQkFSICsgMHhCMEMpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0REUl9URE8JKENPTkZJR19TWVNfTUJBUiArIDB4QjBDKQogI2RlZmluZSBKVEFHX0dQSU9fVERPX0REUl9TRVQJMHgwMDAwMDAwMAogI2RlZmluZSBKVEFHX0dQSU9fVERPX0REUl9SRVNFVCAweDEwMDAwMDAwCS8qIFNldCBhcyBpbnB1dAkgICAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY3JhZGxlLmggYi9pbmNsdWRlL2NvbmZpZ3MvY3JhZGxlLmgKaW5kZXggMzRhMjY1ZC4uZTgwNTA0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NyYWRsZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jcmFkbGUuaApAQCAtNDAsOCArNDAsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC04OSwyNSArODksMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICAgICAgICBDRkdfQ0JTSVpFICAgICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAgICAgICAgICI9PiAiICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFICAgICAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgICAgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgICAgMHhhMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgIDB4YTA4MDAwMDAgICAgICAvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgICAgMHhhMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweGEwODAwMDAwICAgICAgLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgICAgICAgMHhhMjAwMDAwMCAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAgICAweGEyMDAwMDAwICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFogICAgICAgICAgICAgICAgICAzNjg2NDAwICAgICAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwotI2RlZmluZSBDRkdfQ1BVU1BFRUQgICAgICAgICAgICAweDE0MSAgICAgICAgICAgLyogc2V0IGNvcmUgY2xvY2sgdG8gMjAwLzIwMC8xMDAgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAzNjg2NDAwICAgICAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVEICAgICAgICAgICAgMHgxNDEgICAgICAgICAgIC8qIHNldCBjb3JlIGNsb2NrIHRvIDIwMC8yMDAvMTAwIE1IeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogU3RhY2sgc2l6ZXMKQEAgLTEzNywyMCArMTM3LDIwIEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMiAgICAgICAgICAgIDB4MDQwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUgICAgICAgICAweDAyMDAwMDAwIC8qIDMyIE1CICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRSAgICAgICAgICAgMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9TSVpFICAgICAgICAgICAweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFICAgICAgICAgICAweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFICAgICAgICAgICAweDA0MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICBQSFlTX0ZMQVNIXzEKIAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgICAgMzIgICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAxICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDMyICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgICAgKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgICAoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCAgICAoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgICAgKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJCTB4MDAwMjAwMDAJLyogYWJzb2x1dGUgYWRkcmVzcyBmb3Igbm93ICAgKi8KQEAgLTI1NCwzOCArMjU0LDM4IEBACiAgKi8KIC8qIFBpbiBkaXJlY3Rpb24gY29udHJvbCAqLwogLyogTk9URSBHUElPIDAsIDYxLCA2MiBhcmUgc2V0IGZvciBpbnB1dHMgZHVlIHRvIENQTEQgU1BBUkVzICovCi0jZGVmaW5lIENGR19HUERSMF9WQUwgICAgICAgMHhmZmYzYmYwMgotI2RlZmluZSBDRkdfR1BEUjFfVkFMICAgICAgIDB4ZmJmZmJmODMKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTCAgICAgICAweDAwMDFmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMICAgICAgIDB4ZmZmM2JmMDIKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwgICAgICAgMHhmYmZmYmY4MworI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTCAgICAgICAweDAwMDFmZmZmCiAvKiBTZXQgYW5kIENsZWFyIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfR1BTUjBfVkFMICAgICAgIDB4MDA0MDA4MDAKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTCAgICAgICAweDAwMDAwNDgwCi0jZGVmaW5lIENGR19HUFNSMl9WQUwgICAgICAgMHgwMDAxNDAwMAotI2RlZmluZSBDRkdfR1BDUjBfVkFMICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IxX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMl9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IwX1ZBTCAgICAgICAweDAwNDAwODAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMICAgICAgIDB4MDAwMDA0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwgICAgICAgMHgwMDAxNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IwX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwgICAgICAgMHgwMDAwMDAwMAogLyogRWRnZSBkZXRlY3QgcmVnaXN0ZXJzICh0aGVzZSBhcmUgc2V0IGJ5IHRoZSBrZXJuZWwpICovCi0jZGVmaW5lIENGR19HUkVSMF9WQUwgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JFUjFfVkFMICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSRVIyX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMF9WQUwgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0ZFUjFfVkFMICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIyX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjBfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMV9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSRVIyX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjBfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMV9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dGRVIyX1ZBTCAgICAgICAweDAwMDAwMDAwCiAvKiBBbHRlcm5hdGUgZnVuY3Rpb24gcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTCAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwgICAgIDB4MDAwMDAwMTAKLSNkZWZpbmUgQ0ZHX0dBRlIxX0xfVkFMICAgICAweDkwMGE5NTUwCi0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTCAgICAgMHgwMDAwMDAwOAotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwgICAgIDB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMICAgICAweDAwMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTCAgICAgMHgwMDAwMDAxMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMICAgICAweDkwMGE5NTUwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTCAgICAgMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX1VfVkFMICAgICAweDAwMDAwMDAyCiAKIC8qCiAgKiBDbG9ja3MsIHBvd2VyIGNvbnRyb2wgYW5kIGludGVycnVwdHMKICAqLwotI2RlZmluZSBDRkdfUFNTUl9WQUwgICAgICAgIDB4MDAwMDAwMjAKLSNkZWZpbmUgQ0ZHX0NDQ1JfVkFMICAgICAgICAweDAwMDAwMTQxICAvKiAxMDAgTUh6IG1lbW9yeSwgMjAwIE1IeiBDUFUgICovCi0jZGVmaW5lIENGR19DS0VOX1ZBTCAgICAgICAgMHgwMDAwMDA2MCAgLyogRkZVQVJUIGFuZCBTVFVBUlQgZW5hYmxlZCAgICAqLwotI2RlZmluZSBDRkdfSUNNUl9WQUwgICAgICAgIDB4MDAwMDAwMDAgIC8qIE5vIGludGVycnVwdHMgZW5hYmxlZCAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTCAgICAgICAgMHgwMDAwMDAyMAorI2RlZmluZSBDT05GSUdfU1lTX0NDQ1JfVkFMICAgICAgICAweDAwMDAwMTQxICAvKiAxMDAgTUh6IG1lbW9yeSwgMjAwIE1IeiBDUFUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0tFTl9WQUwgICAgICAgIDB4MDAwMDAwNjAgIC8qIEZGVUFSVCBhbmQgU1RVQVJUIGVuYWJsZWQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ01SX1ZBTCAgICAgICAgMHgwMDAwMDAwMCAgLyogTm8gaW50ZXJydXB0cyBlbmFibGVkICAgICAgICAqLwogCiAvKiBGSVhNRQogICoKQEAgLTMwMCwzMCArMzAwLDMwIEBACiAgKiBGSVhNRSBDYW4gZXRoZXJuZXQgYmUgYnVyc3QgcmVhZCBhbmQvb3Igd3JpdGU/PyBUaGlzIGlzIHNldCBmb3IgbHViYm9jawogICogICAgICAgVmVyaWZ5IHRpbWluZ3Mgb24gYWxsCiAgKi8KLSNkZWZpbmUgQ0ZHX01TQzBfVkFMICAgICAgICAweDAwMDAyM0ZBICAvKiBmbGFzaCBiYW5rICAgIChjczApICAgKi8KLS8qI2RlZmluZSBDRkdfTVNDMV9WQUwgICAgICAgIDB4MDAwMDM1NDkgIC8gKiBTdXBlcklPIGJhbmsgIChjczIpICAgKi8KLSNkZWZpbmUgQ0ZHX01TQzFfVkFMICAgICAgICAweDAwMDAzNTRjICAvKiBTdXBlcklPIGJhbmsgIChjczIpICAgKi8KLSNkZWZpbmUgQ0ZHX01TQzJfVkFMICAgICAgICAweDAwMDAxMjI0ICAvKiBFdGhlcm5ldCBiYW5rIChjczQpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTCAgICAgICAgMHgwMDAwMjNGQSAgLyogZmxhc2ggYmFuayAgICAoY3MwKSAgICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTCAgICAgICAgMHgwMDAwMzU0OSAgLyAqIFN1cGVySU8gYmFuayAgKGNzMikgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMICAgICAgICAweDAwMDAzNTRjICAvKiBTdXBlcklPIGJhbmsgIChjczIpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MyX1ZBTCAgICAgICAgMHgwMDAwMTIyNCAgLyogRXRoZXJuZXQgYmFuayAoY3M0KSAgICovCiAjaWZkZWYgUkVEQk9PVF9XQVkKLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwgICAgICAweDAwMDAxYWExICAvKiBGSVhNRSBjYW4gRFRDIGJlIDAxPyAgICAgKi8KLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NRFJFRlJfVkFMICAgICAgMHgwMDAxODAxOAorI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwgICAgICAweDAwMDAxYWExICAvKiBGSVhNRSBjYW4gRFRDIGJlIDAxPyAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwgICAgICAweDAwMDE4MDE4CiAjZWxzZQotI2RlZmluZSBDRkdfTURDTkZHX1ZBTCAgICAgIDB4MDAwMDFhYTEgIC8qIEZJWE1FIGNhbiBEVEMgYmUgMDE/ICAgICAqLwotI2RlZmluZSBDRkdfTURNUlNfVkFMICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01EUkVGUl9WQUwgICAgICAweDAwNDAzMDE4ICAvKiBJbml0aWFsIHNldHRpbmcsIGluZGl2aWR1YWwgYml0cyBzZXQgaW4gbG93bGV2ZWxfaW5pdC5TICovCisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTCAgICAgIDB4MDAwMDFhYTEgIC8qIEZJWE1FIGNhbiBEVEMgYmUgMDE/ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTURSRUZSX1ZBTCAgICAgIDB4MDA0MDMwMTggIC8qIEluaXRpYWwgc2V0dGluZywgaW5kaXZpZHVhbCBiaXRzIHNldCBpbiBsb3dsZXZlbF9pbml0LlMgKi8KICNlbmRpZgogCiAvKgogICogUENNQ0lBIGFuZCBDRiBJbnRlcmZhY2VzIChOT1QgVVNFRCwgdGhlc2UgdmFsdWVzIGZyb20gbHViYm9jayBpbml0KQogICovCi0jZGVmaW5lIENGR19NRUNSX1ZBTCAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMICAgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ01FTTFfVkFMICAgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDBfVkFMICAgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDFfVkFMICAgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0lPMF9WQUwgICAgICAgICAweDAwMDA0NzE1Ci0jZGVmaW5lIENGR19NQ0lPMV9WQUwgICAgICAgICAweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMF9WQUwgICAgICAgIDB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMICAgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTCAgICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMV9WQUwgICAgICAgIDB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwgICAgICAgICAweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMICAgICAgICAgMHgwMDAwNDcxNQogCiAvKiBCb2FyZCBzcGVjaWZpYyBkZWZpbmVzICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9jc2IyMjYuaCBiL2luY2x1ZGUvY29uZmlncy9jc2IyMjYuaAppbmRleCAyNjZlMGU2Li5hMjRlMzRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvY3NiMjI2LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2NzYjIyNi5oCkBAIC0xMTEsMzggKzExMSwzOCBAQAogICogdXNlZCBmb3IgdGhlIFJBTSBjb3B5IG9mIHRoZSB1Ym9vdCBjb2RlCiAgKgogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkidWJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMjgJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJ1Ym9vdD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMjgJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweGEwODAwMDAwICAgICAgLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHhhMDgwMDAwMCAgICAgIC8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgICAgICAgIDB4YTMwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgICAgICAgIDB4YTMwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAkJCQkJCS8qIFJTOiB3aGVyZSBpcyB0aGlzIGRvY3VtZW50ZWQ/ICovCiAJCQkJCQkvKiBSUzogaXMgdGhpcyB3aGVyZSBVLUJvb3QgaXMgICovCiAJCQkJCQkvKiBSUzogcmVsb2NhdGVkIHRvIGluIFJBTT8gICAgICAqLwogCi0jZGVmaW5lIENGR19IWiAgICAgICAgICAgICAgICAgIDM2ODY0MDAgICAgICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAzNjg2NDAwICAgICAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwogCQkJCQkJLyogUlM6IHRoZSBvc2NpbGxhdG9yIGlzIGFjdHVhbGx5IDM2ODAxMzA/PyAqLwotI2RlZmluZSBDRkdfQ1BVU1BFRUQgICAgICAgICAgICAweDE0MSAgICAgICAgICAgLyogc2V0IGNvcmUgY2xvY2sgdG8gMjAwLzIwMC8xMDAgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQgICAgICAgICAgICAweDE0MSAgICAgICAgICAgLyogc2V0IGNvcmUgY2xvY2sgdG8gMjAwLzIwMC8xMDAgTUh6ICovCiAJCQkJCQkvKiAwMTAxMDAwMDAxICovCiAJCQkJCQkvKiAgICAgIF5eXl5eIE1lbW9yeSBTcGVlZCA5OS41MyBNSHogICAgICAgICAqLwogCQkJCQkJLyogICAgXl4gICAgICBSdW4gTW9kZSBTcGVlZCA9IDJ4IE1lbSBTcGVlZCAgKi8KIAkJCQkJCS8qIF5eICAgICAgICAgVHVyYm8gTW9kZSBTcC4gPSAxeCBSdW4gTS4gU3AuICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCQkvKiAxMjggS2lCICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOCBLaUIgKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIE5ldHdvcmsgY2hpcApAQCAtMTcyLDEwICsxNzIsMTAgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwCS8qIEZsYXNoIEJhbmsgIzEgICAgICAgICAgICAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAJLyogMzIgTUIgICAgICAgICAgICAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJMHhhMDAwMDAwMAkvKiBSQU0gc3RhcnRzIGhlcmUgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRQkJMHhhMDAwMDAwMAkvKiBSQU0gc3RhcnRzIGhlcmUgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCTB4MDIwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgICAgICAgICBQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIFBIWVNfRkxBU0hfMQogCiAjIGlmIDAKIC8qIEZJWE1FOiBzd2l0Y2ggdG8gX2RvY3VtZW50ZWRfIHJlZ2lzdGVycyAqLwpAQCAtMTk2LDkgKzE5Niw5IEBACiAgKiBHUDc5ID09IG5DUzMgICAgICBpcyAxCiAgKiBHUDgwID09IG5DUzQgICAgICBpcyAxCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU1IwX1ZBTCAgICAgICAweDAzMDA4MDAwCi0jZGVmaW5lIENGR19HUFNSMV9WQUwgICAgICAgMHhDMDAyODI4MgotI2RlZmluZSBDRkdfR1BTUjJfVkFMICAgICAgIDB4MDAwMUMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwgICAgICAgMHgwMzAwODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTCAgICAgICAweEMwMDI4MjgyCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMICAgICAgIDB4MDAwMUMwMDAKIAogLyogR1AwMiA9PSBET05fUlNUICAgaXMgMAogICogR1AyMyA9PSBTQ0xLICAgICAgaXMgMApAQCAtMjA3LDkgKzIwNyw5IEBACiAgKiBHUDYxID09IExFRF9BICAgICBpcyAwCiAgKiBHUDczID09IFNXVVBEX0xFRCBpcyAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTCAgICAgICAweDAwODAwMDA0Ci0jZGVmaW5lIENGR19HUENSMV9WQUwgICAgICAgMHgzMDAwMjAwMAotI2RlZmluZSBDRkdfR1BDUjJfVkFMICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwgICAgICAgMHgwMDgwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTCAgICAgICAweDMwMDAyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMICAgICAgIDB4MDAwMDAxMDAKIAogLyogR1AwMCA9PSBET05fUkVBRFkgaXMgaW5wdXQKICAqIEdQMDEgPT0gRE9OX09LICAgIGlzIGlucHV0CkBAIC0yNTQsOSArMjU0LDkgQEAKICAqIEdQNzkgPT0gbkNTMyAgICAgIGlzIG91dHB1dAogICogR1A4MCA9PSBuQ1M0ICAgICAgaXMgb3V0cHV0CiAgKi8KLSNkZWZpbmUgQ0ZHX0dQRFIwX1ZBTCAgICAgICAweDAzODA4MDA0Ci0jZGVmaW5lIENGR19HUERSMV9WQUwgICAgICAgMHhGMDAyQTI4MgotI2RlZmluZSBDRkdfR1BEUjJfVkFMICAgICAgIDB4MDAwMUMyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwgICAgICAgMHgwMzgwODAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIxX1ZBTCAgICAgICAweEYwMDJBMjgyCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMICAgICAgIDB4MDAwMUMyMDAKIAogLyogR1AxNSA9PSBuQ1MxICBpcyBBRjEwCiAgKiBHUDE4ID09IFJEWSAgIGlzIEFGMDEKQEAgLTI3NiwxMiArMjc2LDEyIEBACiAgKiBHUDc5ID09IG5DUzMgIGlzIEFGMTAKICAqIEdQODAgPT0gbkNTNCAgaXMgQUYxMAogICovCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTCAgICAgMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwgICAgIDB4MDAxQTgwMTAKLSNkZWZpbmUgQ0ZHX0dBRlIxX0xfVkFMICAgICAweDYwMDg4MDU4Ci0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTCAgICAgMHgwMDAwMDAwOAotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwgICAgIDB4QTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMICAgICAweDAwMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTCAgICAgMHgwMDFBODAxMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMICAgICAweDYwMDg4MDU4CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTCAgICAgMHhBMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX1VfVkFMICAgICAweDAwMDAwMDAyCiAKIAogLyogRklYTUU6IHNldCBHUElPX1JFUi9GRVIgKi8KQEAgLTI5Miw3ICsyOTIsNyBAQAogICogQkZTID0gMQogICogU1NTID0gMQogICovCi0jZGVmaW5lIENGR19QU1NSX1ZBTAkJMHgzNworI2RlZmluZSBDT05GSUdfU1lTX1BTU1JfVkFMCQkweDM3CiAKIC8qCiAgKiBNZW1vcnkgc2V0dGluZ3MKQEAgLTMxMyw3ICszMTMsNyBAQAogICogWzAzXSAgICAxICAgIC0gMTYgQml0IGJ1cyB3aWR0aAogICogWzAyOjAwXSAwMDAgIC0gbm9uYnVyc3QgUkFNIG9yIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX01TQzBfVkFMCQkweDI1YjgyNWI4IC8qIGZsYXNoIGJhbmtzICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMF9WQUwJCTB4MjViODI1YjggLyogZmxhc2ggYmFua3MgICAgICAgICAgICAgICAgICAgKi8KIAogLyogVGhpcyBpcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgbkNTMi8zIC0+IFRETS1Td2l0Y2gsIERTUAogICogY29uZmlndXJhdGlvbiBmb3IgbkNTMzogRFNQCkBAIC0zMzEsNyArMzMxLDcgQEAKICAqIFswM10gICAgMSAgICAtIDE2IEJpdCBidXMgd2lkdGgKICAqIFswMjowMF0gMTAwICAtIHZhcmlhYmxlIGxhdGVuY3kgSS9PCiAgKi8KLSNkZWZpbmUgQ0ZHX01TQzFfVkFMCQkweDEyM0M1OTNDIC8qIFRETSBzd2l0Y2gsIERTUCAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMV9WQUwJCTB4MTIzQzU5M0MgLyogVERNIHN3aXRjaCwgRFNQICAgICAgICAgICAgICAgKi8KIAogLyogVGhpcyBpcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgbkNTNC81IC0+IEV4dEJ1cywgTEFOIENvbnRyb2xsZXIKICAqCkBAIC0zNTAsNyArMzUwLDcgQEAKICAqIFswM10gICAgMSAgICAtIDE2IEJpdCBidXMgd2lkdGgKICAqIFswMjowMF0gMTAwICAtIHZhcmlhYmxlIGxhdGVuY3kgSS9PCiAgKi8KLSNkZWZpbmUgQ0ZHX01TQzJfVkFMCQkweDEyM0M2Q0RDIC8qIGV4dHJhIGJ1cywgTEFOIGNvbnRyb2xsZXIgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMl9WQUwJCTB4MTIzQzZDREMgLyogZXh0cmEgYnVzLCBMQU4gY29udHJvbGxlciAgICAgKi8KIAogLyogTURDTkZHOiBTRFJBTSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyCiAgKgpAQCAtMzc4LDcgKzM3OCw3IEBACiAgKiBbMDBdICAgICAgMSAgIC0gZW5hYmxlICBTRFJBTSBwYXJ0aXRpb24gMAogICovCiAvKiB1c2UgdGhlIGNvbmZpZ3VyYXRpb24gYWJvdmUgYnV0IGRpc2FibGUgcGFydGl0aW9uIDAgKi8KLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwJCTB4MDAwMDE5YzgKKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMCQkweDAwMDAxOWM4CiAKIC8qIE1EUkVGUjogU0RSQU0gUmVmcmVzaCBDb250cm9sIFJlZ2lzdGVyCiAgKgpAQCAtMzk5LDcgKzM5OSw3IEBACiAgKiBbMTJdICAgIDEgICAgIC0gRTBQSU46IGRpc2FibGUgU0RDS0UwCiAgKiBbMTE6MDBdIDAwMDAwMDAxMTAwMCAtICg2NG1zLzgxOTIpKk1lbUNsa0ZyZXEvMzIgPSAyNAogICovCi0jZGVmaW5lIENGR19NRFJFRlJfVkFMCQkweDAwODFEMDE4CisjZGVmaW5lIENPTkZJR19TWVNfTURSRUZSX1ZBTAkJMHgwMDgxRDAxOAogCiAvKiBNRE1SUzogTW9kZSBSZWdpc3RlciBTZXQgQ29uZmlndXJhdGlvbiBSZWdpc3RlcgogICoKQEAgLTQxNCw2NCArNDE0LDY0IEBACiAgKiBbMDNdICAgICAgMCAgICAgICAtIE1EQUREMDogU0RSQU0wLzEgYnVyc3QgVHlwZS4gRml4ZWQgdG8gc2VxdWVudGlhbC4KICAqIFswMjowMF0gICAwMTAgICAgIC0gTURCTDA6ICBTRFJBTTAvMSBidXJzdCBMZW5ndGguIEZpeGVkIHRvIDQuCiAgKi8KLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTAkJMHgwMDAyMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTAkJMHgwMDAyMDAyMgogCiAvKgogICogUENNQ0lBIGFuZCBDRiBJbnRlcmZhY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ01FTTFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ0FUVDBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ0FUVDFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ0lPMF9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FQ1JfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0wX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDBfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQxX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8wX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8xX1ZBTAkJMHgwMDAwMDAwMAogI2VuZGlmCiAKIC8qCiAgKiBHUElPIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU1IwX1ZBTAkJMHhGRkZGRkZGRgotI2RlZmluZSBDRkdfR1BTUjFfVkFMCQkweEZGRkZGRkZGCi0jZGVmaW5lIENGR19HUFNSMl9WQUwJCTB4RkZGRkZGRkYKLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTAkJMHgwODAyMjA4MAotI2RlZmluZSBDRkdfR1BDUjFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQRFIwX1ZBTAkJMHhDRDgyQTg3OAotI2RlZmluZSBDRkdfR1BEUjFfVkFMCQkweEZDRkZBQjgwCi0jZGVmaW5lIENGR19HUERSMl9WQUwJCTB4MDAwMUZGRkYKLSNkZWZpbmUgQ0ZHX0dBRlIwX0xfVkFMCQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMF9VX1ZBTAkJMHhBNTI1NDAxMAotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwJCTB4NTk5QTk1NTAKLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMCQkweEFBQTVBQUFBCi0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTAkJMHhBQUFBQUFBQQotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwJCTB4MDAwMDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwJCTB4RkZGRkZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwJCTB4RkZGRkZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwJCTB4RkZGRkZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwJCTB4MDgwMjIwODAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwJCTB4Q0Q4MkE4NzgKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwJCTB4RkNGRkFCODAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwJCTB4MDAwMUZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9MX1ZBTAkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX1VfVkFMCQkweEE1MjU0MDEwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfTF9WQUwJCTB4NTk5QTk1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9VX1ZBTAkJMHhBQUE1QUFBQQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMCQkweEFBQUFBQUFBCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwJCTB4MDAwMDAwMDIKIAogLyogRklYTUU6IHNldCBHUElPX1JFUi9GRVIgKi8KIAotI2RlZmluZSBDRkdfUFNTUl9WQUwgICAgICAgIDB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTCAgICAgICAgMHgyMAogCiAvKgogICogTWVtb3J5IHNldHRpbmdzCiAgKi8KIAotI2RlZmluZSBDRkdfTVNDMF9WQUwgICAgICAgICAgICAweDJlZjE1YWYwCi0jZGVmaW5lIENGR19NU0MxX1ZBTCAgICAgICAgICAgIDB4MDAwMDNmZjQKLSNkZWZpbmUgQ0ZHX01TQzJfVkFMICAgICAgICAgICAgMHg3ZmYwN2ZmMAotI2RlZmluZSBDRkdfTURDTkZHX1ZBTCAgICAgICAgICAweDA5YTkwOWE5Ci0jZGVmaW5lIENGR19NRFJFRlJfVkFMICAgICAgICAgIDB4MDM4ZmYwMzAKLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTCAgICAgICAgICAgMHgwMDIyMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMICAgICAgICAgICAgMHgyZWYxNWFmMAorI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMICAgICAgICAgICAgMHgwMDAwM2ZmNAorI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMICAgICAgICAgICAgMHg3ZmYwN2ZmMAorI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwgICAgICAgICAgMHgwOWE5MDlhOQorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwgICAgICAgICAgMHgwMzhmZjAzMAorI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTCAgICAgICAgICAgMHgwMDIyMDAyMgogCiAvKgogICogUENNQ0lBIGFuZCBDRiBJbnRlcmZhY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTCAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ0FUVDFfVkFMICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNJTzBfVkFMICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMV9WQUwgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTCAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8wX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMICAgICAgIDB4MDAwMDAwMDAKIAogI2RlZmluZSBDU0IyMjZfVVNFUl9MRUQwCTB4MDAwMDAwMDgKICNkZWZpbmUgQ1NCMjI2X1VTRVJfTEVEMQkweDAwMDAwMDEwCkBAIC00ODEsMTIgKzQ4MSwxMiBAQAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0LiBvbiBvbmUgY2hpcCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAgIDEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0LiBvbiBvbmUgY2hpcCAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICAgICgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgICAgKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgICAgKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAgICgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICAgICAgICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgICAgIChQSFlTX0ZMQVNIXzEgKyAweDFDMDAwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2NzYjI3Mi5oIGIvaW5jbHVkZS9jb25maWdzL2NzYjI3Mi5oCmluZGV4IDEzODkyZTYuLjM5M2U5OTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9jc2IyNzIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvY3NiMjcyLmgKQEAgLTEwNSw3ICsxMDUsNyBAQAogICoKICAqLwogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAvKgogICogS0dEQiBDb25maWd1cmF0aW9uCkBAIC0xMjAsMzYgKzEyMCwzNiBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICoKICAqLwotI3VuZGVmCUNGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCS8qIGh1c2ggc2hlbGwgc2Vjb25kYXJ5IHByb21wdCAqLworI3VuZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCS8qIGh1c2ggc2hlbGwgc2Vjb25kYXJ5IHByb21wdCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0gKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KLSNkZWZpbmUgQ0ZHX0NMS1NfSU5fSFoJCTEJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiB3YXRjaGRvZyBjb25maWd1cmF0aW9uCkBAIC0xNjEsMTEgKzE2MSwxMSBAQAogICogVUFSVCBjb25maWd1cmF0aW9uCiAgKgogICovCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTM4Njg0MDAJLyogdXNlIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI3VuZGVmICBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OSAqLwotI3VuZGVmICBDRkdfQkFTRV9CQVVECisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkzODY4NDAwCS8qIHVzZSBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5ICovCisjdW5kZWYgIENPTkZJR19TWVNfQkFTRV9CQVVECiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMzg0MDAJLyogRGVmYXVsdCBiYXVkIHJhdGUgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgXAogICAgIHsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyoKQEAgLTE3Myw4ICsxNzMsOCBAQAogICoKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkcmVzcwkJKi8KIAogLyoKICAqIE1JSSBQSFkgY29uZmlndXJhdGlvbgpAQCAtMjA5LDE0ICsyMDksMTQgQEAKICN1bmRlZiAgQ09ORklHX1BDSV9TQ0FOX1NIT1cgICAgICAgICAgICAvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfQk9PVERFTEFZICAgIDAgICAgICAgLyogZW5hYmxlIHBjaSBib290ZGVsYXkgdmFyaWFibGUqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMCAgLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAgIC8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEgIDB4MDAwMDAwMDAgICAgICAvKiBwb2ludCB0byBzZHJhbSAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMU1TICAweDgwMDAwMDAxICAgICAgLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgIDB4MDAwMDAwMDAgICAgICAvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MDAwMCAgLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHgwMDAwICAvKiBQQ0kgRGV2aWNlIElEOiB0by1kbyEhISAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQSAgMHgwMDAwMDAwMCAgICAgIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TICAweDgwMDAwMDAxICAgICAgLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQSAgMHgwMDAwMDAwMCAgICAgIC8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAgICAgICAvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgICovCiAKIC8qCiAgKiBJREUgc3R1ZmYKQEAgLTIzOSwxNyArMjM5LDE3IEBACiAgKgogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYgS0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBLQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAvKiBSZXNlcnZlIDEyOCBLQiBmb3IgbWFsbG9jKCkgKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfUkFNU1RBUlQKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTVNUQVJUCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9GTEFTSCkKQEAgLTI2MywzNyArMjYzLDM3IEBACiAgKiBGTEFTSCBEZXZpY2UgY29uZmlndXJhdGlvbgogICoKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIGZsYXNoIGlzIENGSSBjb25mb3JtYW50CSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIGZsYXNoIGlzIENGSSBjb25mb3JtYW50CSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogdXNlIGNvbW1vbiBjZmkgZHJpdmVyCSovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCAjIG9mIG1lbW9yeSBiYW5rcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UCTAJLyogdGhlcmUgaXMgb25seSBvbmUgYmFuawkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCAjIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCAjIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0lOQ1JFTUVOVAkwCS8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4ICMgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKIC8qCiAgKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbi9zaXplCiAgKgogICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKIAogLyoKICAqIEdsb2JhbCBpbmZvIGFuZCBpbml0aWFsIHN0YWNrCiAgKgogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogYnl0ZSBzaXplIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBvbi1jaGlwIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggLyogYnl0ZSBzaXplIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGJvYXJkIHNwZWNpZmljIGRlZmluaXRpb25zCiAgKgogICovCi0jZGVmaW5lIENGR19JMkNfUExMX0FERFIJMHg1OAkvKiBJMkMgYWRkcmVzcyBvZiBBTUlTIEZTNjM3Ny0wMSBQTEwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUExMX0FERFIJMHg1OAkvKiBJMkMgYWRkcmVzcyBvZiBBTUlTIEZTNjM3Ny0wMSBQTEwgKi8KICNkZWZpbmUgQ09ORklHX0kyQ0ZBU1QJCTEJLyogZW5hYmxlICJpMmNmYXN0IiBlbnYuIHNldHRpbmcgICAgICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY3NiNDcyLmggYi9pbmNsdWRlL2NvbmZpZ3MvY3NiNDcyLmgKaW5kZXggMDY0NDk4Mi4uYWYzODI1MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NzYjQ3Mi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jc2I0NzIuaApAQCAtMTA0LDcgKzEwNCw3IEBACiAgKgogICovCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKIC8qCiAgKiBLR0RCIENvbmZpZ3VyYXRpb24KQEAgLTExOSwzNiArMTE5LDM2IEBACiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKgogICovCi0jdW5kZWYJQ0ZHX0hVU0hfUEFSU0VSCQkJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIJLyogaHVzaCBzaGVsbCBzZWNvbmRhcnkgcHJvbXB0ICovCisjdW5kZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIJLyogaHVzaCBzaGVsbCBzZWNvbmRhcnkgcHJvbXB0ICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwotI2RlZmluZSBDRkdfQ0xLU19JTl9IWgkJMQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKGJkX3QpICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTEtTX0lOX0haCQkxCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIHdhdGNoZG9nIGNvbmZpZ3VyYXRpb24KQEAgLTE2MCwxMSArMTYwLDExIEBACiAgKiBVQVJUIGNvbmZpZ3VyYXRpb24KICAqCiAgKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwkJLyogdXNlIGludGVybmFsIHNlcmlhbCBjbG9jayAqLwotI3VuZGVmICBDRkdfSUdOT1JFXzQwNV9VQVJUX0VSUkFUQV81OQkvKiBpZ25vcmUgcHBjNDA1Z3AgZXJyYXRhICM1OSAqLwotI2RlZmluZSBDRkdfQkFTRV9CQVVECQk2OTEyMDAKKyN1bmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIHVzZSBpbnRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5ICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECQk2OTEyMDAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAkvKiBEZWZhdWx0IGJhdWQgcmF0ZSAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICBcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICBcCiAgICAgeyAzMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgpAQCAtMTcyLDggKzE3Miw4IEBACiAgKgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyZXNzCQkqLwogCiAvKgogICogTUlJIFBIWSBjb25maWd1cmF0aW9uCkBAIC0yMDgsMTQgKzIwOCwxNCBAQAogI3VuZGVmICBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAgICAgICAgIC8qIHByaW50IHBjaSBkZXZpY2VzIEAgc3RhcnR1cCAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9CT09UREVMQVkgICAgMCAgICAgICAvKiBlbmFibGUgcGNpIGJvb3RkZWxheSB2YXJpYWJsZSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgwMDAwICAvKiBQQ0kgVmVuZG9yIElEOiB0by1kbyEhISAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMCAgLyogUENJIERldmljZSBJRDogdG8tZG8hISEgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQSAgMHgwMDAwMDAwMCAgICAgIC8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMgIDB4ODAwMDAwMDEgICAgICAvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQSAgMHgwMDAwMDAwMCAgICAgIC8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMgIDB4MDAwMDAwMDAgICAgICAvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwICAgICAgLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgwMDAwICAvKiBQQ0kgVmVuZG9yIElEOiB0by1kbyEhISAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweDAwMDAgIC8qIFBDSSBEZXZpY2UgSUQ6IHRvLWRvISEhICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBICAweDAwMDAwMDAwICAgICAgLyogcG9pbnQgdG8gc2RyYW0gICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgIDB4ODAwMDAwMDEgICAgICAvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMkxBICAweDAwMDAwMDAwICAgICAgLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMgIDB4MDAwMDAwMDAgICAgICAvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgMHgwNDAwMDAwMCAgICAgIC8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAgKi8KIAogLyoKICAqIElERSBzdHVmZgpAQCAtMjM4LDE3ICsyMzgsMTcgQEAKICAqCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBLQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpIC8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IEtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpIC8qIFJlc2VydmUgMTI4IEtCIGZvciBtYWxsb2MoKSAqLwogCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19SQU1TVEFSVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNU1RBUlQKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQpAQCAtMjYyLDMxICsyNjIsMzEgQEAKICAqIEZMQVNIIERldmljZSBjb25maWd1cmF0aW9uCiAgKgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogZmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogZmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiB1c2UgY29tbW9uIGNmaSBkcml2ZXIJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4ICMgb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMAkvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggIyBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggIyBvZiBtZW1vcnkgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMAkvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4ICMgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKIC8qCiAgKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbi9zaXplCiAgKgogICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKIAogLyoKICAqIEdsb2JhbCBpbmZvIGFuZCBpbml0aWFsIHN0YWNrCiAgKgogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggLyogYnl0ZSBzaXplIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBvbi1jaGlwIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggLyogYnl0ZSBzaXplIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGJvYXJkIHNwZWNpZmljIGRlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvY3NiNjM3LmggYi9pbmNsdWRlL2NvbmZpZ3MvY3NiNjM3LmgKaW5kZXggMDc2MDA4NC4uMzhmZDI1YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2NzYjYzNy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9jc2I2MzcuaApAQCAtNDMsNyArNDMsNyBAQAogI2RlZmluZSBDT05GSUdfSU5JVFJEX1RBRwkxCiAKICNpZm5kZWYgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAotI2RlZmluZSBDRkdfVVNFX01BSU5fT1NDSUxMQVRPUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9NQUlOX09TQ0lMTEFUT1IJCTEKIC8qIGZsYXNoICovCiAjZGVmaW5lIE1DX1BVSUFfVkFMCTB4MDAwMDAwMDAKICNkZWZpbmUgTUNfUFVQX1ZBTAkweDAwMDAwMDAwCkBAIC03NiwxMiArNzYsMTIgQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0FUOTFDX0JSR1JfRElWSVNPUgk3NQkvKiBoYXJkY29kZSBzbyBubyBfX2RpdnNpMyA6IEFUOTFDX01BU1RFUl9DTE9DSyAvIGJhdWRyYXRlIC8gMTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVDkxQ19CUkdSX0RJVklTT1IJNzUJLyogaGFyZGNvZGUgc28gbm8gX19kaXZzaTMgOiBBVDkxQ19NQVNURVJfQ0xPQ0sgLyBiYXVkcmF0ZSAvIDE2ICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC0xMjAsNyArMTIwLDcgQEAKIAogI2lmZGVmCU5BTkRfU1VQUE9SVF9IQVNfQkVFTl9GSVhFRAkvKiBOQU5EIHN1cHBvcnQgaXMgYnJva2VuIC8gdW5pbXBsZW1lbnRlZCAqLwogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcwkJKi8KICNkZWZpbmUgU0VDVE9SU0laRSA1MTIKIAogI2RlZmluZSBBRERSX0NPTFVNTiAxCkBAIC0xNTYsNDYgKzE1Niw0NiBAQAogI2RlZmluZSBQSFlTX1NEUkFNCQkJMHgyMDAwMDAwMAogI2RlZmluZSBQSFlTX1NEUkFNX1NJWkUJCQkweDQwMDAwMDAgIC8qIDY0IG1lZ3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQlDRkdfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDUxMioxMDI0IC0gNAotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QJCQkxCi0jZGVmaW5lIENGR19NRU1URVNUX1NDUkFUQ0gJCUNGR19NRU1URVNUX1NUQVJUICsgUEhZU19TRFJBTV9TSVpFIC0gNAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCVBIWVNfU0RSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDUxMioxMDI0IC0gNAorI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU0NSQVRDSAkJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICsgUEhZU19TRFJBTV9TSVpFIC0gNAogCiAjZGVmaW5lIENPTkZJR19EUklWRVJfRVRIRVIKICNkZWZpbmUgQ09ORklHX05FVF9SRVRSWV9DT1VOVAkJMjAKICN1bmRlZiBDT05GSUdfQVQ5MUNfVVNFX1JNSUkKIAogI3VuZGVmIENPTkZJR19IQVNfREFUQUZMQVNICi0jZGVmaW5lIENGR19TUElfV1JJVEVfVE9VVAkJKDUqQ0ZHX0haKQotI2RlZmluZSBDRkdfTUFYX0RBVEFGTEFTSF9CQU5LUwkJMAotI2RlZmluZSBDRkdfTUFYX0RBVEFGTEFTSF9QQUdFUwkJMTYzODQKLSNkZWZpbmUgQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMAkweEMwMDAwMDAwCS8qIExvZ2ljYWwgYWRyZXNzIGZvciBDUzAgKi8KLSNkZWZpbmUgQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMwkweEQwMDAwMDAwCS8qIExvZ2ljYWwgYWRyZXNzIGZvciBDUzMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUElfV1JJVEVfVE9VVAkJKDUqQ09ORklHX1NZU19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfREFUQUZMQVNIX0JBTktTCQkwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9QQUdFUwkJMTYzODQKKyNkZWZpbmUgQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAJMHhDMDAwMDAwMAkvKiBMb2dpY2FsIGFkcmVzcyBmb3IgQ1MwICovCisjZGVmaW5lIENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MzCTB4RDAwMDAwMDAJLyogTG9naWNhbCBhZHJlc3MgZm9yIENTMyAqLwogCiAvKgogICogRkxBU0ggRGV2aWNlIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDEwMDAwMDAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwICAvKiA4IG1lZ3MgbWFpbiBmbGFzaCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIGZsYXNoIGlzIENGSSBjb25mb3JtYW50CSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBmbGFzaCBpcyBDRkkgY29uZm9ybWFudAkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIHVzZSBjb21tb24gY2ZpIGRyaXZlcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggIyBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkwCS8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4ICMgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTAJLyogdGhlcmUgaXMgb25seSBvbmUgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTY0CiAKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJMAotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SCTMKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSwkwCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SCTMKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJMQogCiAjdW5kZWYJQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0gKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkJMHgyMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0RBVEFGTEFTSF9MT0dJQ19BRERSX0NTMCArIENPTkZJR19FTlZfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ09ORklHX1NZU19EQVRBRkxBU0hfTE9HSUNfQUREUl9DUzAgKyBDT05GSUdfRU5WX09GRlNFVCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJMHgyMDAwICAvKiAweDgwMDAgKi8KICNlbHNlCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKQEAgLTIwNCwxNyArMjA0LDE3IEBACiAjZW5kaWYJLyogQ09ORklHX0VOVl9JU19JTl9EQVRBRkxBU0ggKi8KIAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjEwMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIxMDAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCwgNTc2MDAsIDM4NDAwLCAxOTIwMCwgOTYwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQogCi0jZGVmaW5lIENGR19QUk9NUFQJCSJVLUJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfSFogMTAwMAotI2RlZmluZSBDRkdfSFpfQ0xPQ0sgQVQ5MUNfTUFTVEVSX0NMT0NLLzIJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLworI2RlZmluZSBDT05GSUdfU1lTX0haIDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSyBBVDkxQ19NQVNURVJfQ0xPQ0svMgkvKiBBVDkxQ19UQzBfQ01SIGlzIGltcGxpY2l0bHkgc2V0IHRvICovCiAJCQkJCQkvKiBBVDkxQ19UQ19USU1FUl9ESVYxX0NMT0NLICovCiAKICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkoMzIqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfZHZldm0uaCBiL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX2R2ZXZtLmgKaW5kZXggYWUyZjZhNS4uNjg4NWIyYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfZHZldm0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZGF2aW5jaV9kdmV2bS5oCkBAIC01MCwzMSArNTAsMzEgQEAKIC8qIEJvYXJkICovCiAvKj09PT09PT0qLwogI2RlZmluZSBEVl9FVk0KLSNkZWZpbmUgQ0ZHX05BTkRfU01BTExQQUdFCi0jZGVmaW5lIENGR19VU0VfTk9SCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TTUFMTFBBR0UKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfTk9SCiAvKj09PT09PT09PT09PT09PT09PT0qLwogLyogU29DIENvbmZpZ3VyYXRpb24gKi8KIC8qPT09PT09PT09PT09PT09PT09PSovCiAjZGVmaW5lIENPTkZJR19BUk05MjZFSlMJCQkvKiBhcm05MjZlanMgQ1BVIGNvcmUgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkyOTcwMDAwMDAJLyogQXJtIENsb2NrIGZyZXF1ZW5jeSAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCQkweDAxYzIxNDAwCS8qIHVzZSB0aW1lciAwICovCi0jZGVmaW5lIENGR19IWl9DTE9DSwkJMjcwMDAwMDAJLyogVGltZXIgSW5wdXQgY2xvY2sgZnJlcSAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFCQkweDAxYzIxNDAwCS8qIHVzZSB0aW1lciAwICovCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sJCTI3MDAwMDAwCS8qIFRpbWVyIElucHV0IGNsb2NrIGZyZXEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBFRVBST00gZGVmaW5pdGlvbnMgZm9yIEF0bWVsIDI0QzI1NkJOIFNFRVBST00gY2hpcCAqLwogLyogb24gU29uYXRhL0RWX0VWTSBib2FyZC4gTm8gRUVQUk9NIG9uIHNjaG1vb2dpZS4gICAgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk2CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKIC8qPT09PT09PT09PT09PSovCiAvKiBNZW1vcnkgSW5mbyAqLwogLyo9PT09PT09PT09PT09Ki8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgweDEwMDAwICsgMTI4KjEwMjQpCS8qIG1hbGxvYygpIGxlbiAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg4MDAwMDAwMAkvKiBtZW10ZXN0IHN0YXJ0IGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgxMDAwMDAwCS8qIDE2TUIgUkFNIHRlc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMHgxMDAwMCArIDEyOCoxMDI0KQkvKiBtYWxsb2MoKSBsZW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg4MDAwMDAwMAkvKiBtZW10ZXN0IHN0YXJ0IGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg4MTAwMDAwMAkvKiAxNk1CIFJBTSB0ZXN0ICovCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCTEJCS8qIHdlIGhhdmUgMSBiYW5rIG9mIERSQU0gKi8KICNkZWZpbmUgQ09ORklHX1NUQUNLU0laRQkoMjU2KjEwMjQpCS8qIHJlZ3VsYXIgc3RhY2sgKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xCQkweDgwMDAwMDAwCS8qIEREUiBTdGFydCAqLwpAQCAtODMsMjEgKzgzLDIxIEBACiAvKj09PT09PT09PT09PT09PT09PT09Ki8KIC8qIFNlcmlhbCBEcml2ZXIgaW5mbyAqLwogLyo9PT09PT09PT09PT09PT09PT09PSovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQk0CQkvKiBOUzE2NTUwIHJlZ2lzdGVyIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweDAxYzIwMDAwCS8qIEJhc2UgYWRkcmVzcyBvZiBVQVJUMCAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTI3MDAwMDAwCS8qIElucHV0IGNsb2NrIHRvIE5TMTY1NTAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTQJCS8qIE5TMTY1NTAgcmVnaXN0ZXIgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweDAxYzIwMDAwCS8qIEJhc2UgYWRkcmVzcyBvZiBVQVJUMCAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkyNzAwMDAwMAkvKiBJbnB1dCBjbG9jayB0byBOUzE2NTUwICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEJCS8qIHVzZSBVQVJUMCBmb3IgY29uc29sZSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkJLyogRGVmYXVsdCBiYXVkIHJhdGUgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAvKj09PT09PT09PT09PT09PT09PT0qLwogLyogSTJDIENvbmZpZ3VyYXRpb24gKi8KIC8qPT09PT09PT09PT09PT09PT09PSovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwogI2RlZmluZSBDT05GSUdfRFJJVkVSX0RBVklOQ0lfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTgwMDAwCS8qIDEwMEticHMgd29uJ3Qgd29yaywgc2lsaWNvbiBidWcgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMTAJLyogQm9ndXMsIG1hc3Rlci1vbmx5IGluIFUtQm9vdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODAwMDAJLyogMTAwS2JwcyB3b24ndCB3b3JrLCBzaWxpY29uIGJ1ZyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMTAJLyogQm9ndXMsIG1hc3Rlci1vbmx5IGluIFUtQm9vdCAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIE5ldHdvcmsgJiBFdGhlcm5ldCBDb25maWd1cmF0aW9uICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtMTExLDExICsxMTEsMTEgQEAKIC8qPT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIEZsYXNoICYgRW52aXJvbm1lbnQgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09Ki8KLSNpZmRlZiBDRkdfVVNFX05BTkQKKyNpZmRlZiBDT05GSUdfU1lTX1VTRV9OQU5ECiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAotI2RlZmluZSBDRkdfTk9fRkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQJCS8qIFUtQm9vdCBlbnYgaW4gTkFORCBGbGFzaCAgKi8KLSNpZmRlZiBDRkdfTkFORF9TTUFMTFBBR0UKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfU01BTExQQUdFCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTUxMgkvKiBFbnYgc2VjdG9yIFNpemUgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlTWl8xNksKICNlbHNlCkBAIC0xMjQsMTMgKzEyNCwxMyBAQAogI2VuZGlmCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQJLyogVS1Cb290IGlzIGxvYWRlZCBieSBhIGJvb3Rsb2FkZXIgKi8KICNkZWZpbmUgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QJLyogdG8gYSBwcm9wZXIgYWRkcmVzcywgaW5pdCBkb25lICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfSFdfRUNDCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfSFdfRUNDCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MAkvKiBCbG9jayAwLS1ub3QgdXNlZCBieSBib290Y29kZSAqLwogI2RlZmluZSBERUZfQk9PVE0JCSIiCi0jZWxpZiBkZWZpbmVkKENGR19VU0VfTk9SKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX1VTRV9OT1IpCiAjaWZkZWYgQ09ORklHX05PUl9VQVJUX0JPT1QKICNkZWZpbmUgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAkvKiBVLUJvb3QgaXMgbG9hZGVkIGJ5IGEgYm9vdGxvYWRlciAqLwogI2RlZmluZSBDT05GSUdfU0tJUF9SRUxPQ0FURV9VQk9PVAkvKiB0byBhIHByb3BlciBhZGRyZXNzLCBpbml0IGRvbmUgKi8KQEAgLTEzOSwxNyArMTM5LDE3IEBACiAjdW5kZWYgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QKICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICi0jdW5kZWYgQ0ZHX05PX0ZMQVNICisjdW5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0VDVF9TWgkweDEwMDAwCQkvKiA2NEtCIHNlY3Qgc2l6ZSBBTUQgRmxhc2ggKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDRkdfRkxBU0hfU0VDVF9TWiozKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0VDVF9TWgkweDEwMDAwCQkvKiA2NEtCIHNlY3Qgc2l6ZSBBTUQgRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfU1lTX0ZMQVNIX1NFQ1RfU1oqMykKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAyMDAwMDAwCS8qIENTMiBCYXNlIGFkZHJlc3MJICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEJLyogRmxhc2ggQmFzZSBmb3IgVS1Cb290ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCS8qIEZsYXNoIEJhc2UgZm9yIFUtQm9vdCAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MjAwMDAwMAkvKiBGbGFzaCBzaXplIDMyTUIJICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoUEhZU19GTEFTSF9TSVpFL0NGR19GTEFTSF9TRUNUX1NaKQotI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlDRkdfRkxBU0hfU0VDVF9TWgkvKiBFbnYgc2VjdG9yIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoUEhZU19GTEFTSF9TSVpFL0NPTkZJR19TWVNfRkxBU0hfU0VDVF9TWikKKyNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJQ09ORklHX1NZU19GTEFTSF9TRUNUX1NaCS8qIEVudiBzZWN0b3IgU2l6ZSAqLwogI2VuZGlmCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBVLUJvb3QgZ2VuZXJhbCBjb25maWd1cmF0aW9uICovCkBAIC0xNTgsMTggKzE1OCwxOCBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKICN1bmRlZiBDT05GSUdfQk9PVERFTEFZCiAjZGVmaW5lIENPTkZJR19CT09URklMRQkJInVJbWFnZSIJLyogQm9vdCBmaWxlIG5hbWUgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBidWZmZXIgc3ogKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDgwNzAwMDAwCS8qIGRlZmF1bHQgTGludXgga2VybmVsIGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgYnVmZmVyIHN6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODA3MDAwMDAJLyogZGVmYXVsdCBMaW51eCBrZXJuZWwgbG9hZCBhZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCQkvKiBXb24ndCB3b3JrIHdpdGggaHVzaCBzbyBmYXIsIG1heSBiZSBsYXRlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAjZGVmaW5lIENPTkZJR19DUkMzMl9WRVJJRlkKICNkZWZpbmUgQ09ORklHX01YX0NZQ0xJQwogLyo9PT09PT09PT09PT09PT09PT09Ki8KQEAgLTE5NSwxNCArMTk1LDE0IEBACiAjdW5kZWYgQ09ORklHX0NNRF9CREkKICN1bmRlZiBDT05GSUdfQ01EX0ZQR0EKICN1bmRlZiBDT05GSUdfQ01EX1NFVEdFVERDUgotI2lmZGVmIENGR19VU0VfTkFORAorI2lmZGVmIENPTkZJR19TWVNfVVNFX05BTkQKICN1bmRlZiBDT05GSUdfQ01EX0ZMQVNICiAjdW5kZWYgQ09ORklHX0NNRF9JTUxTCiAjZGVmaW5lIENPTkZJR19DTURfTkFORAotI2VsaWYgZGVmaW5lZChDRkdfVVNFX05PUikKKyNlbGlmIGRlZmluZWQoQ09ORklHX1NZU19VU0VfTk9SKQogI2RlZmluZSBDT05GSUdfQ01EX0pGRlMyCiAjZWxzZQotI2Vycm9yICJFaXRoZXIgQ0ZHX1VTRV9OQU5EIG9yIENGR19VU0VfTk9SIF9NVVNUXyBiZSBkZWZpbmVkICEhISIKKyNlcnJvciAiRWl0aGVyIENPTkZJR19TWVNfVVNFX05BTkQgb3IgQ09ORklHX1NZU19VU0VfTk9SIF9NVVNUXyBiZSBkZWZpbmVkICEhISIKICNlbmRpZgogLyo9PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBLR0RCIHN1cHBvcnQgKGlmIGFueSkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NjaG1vb2dpZS5oIGIvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc2NobW9vZ2llLmgKaW5kZXggMDE2YTg5Ny4uOGQ3YmNmNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc2NobW9vZ2llLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc2NobW9vZ2llLmgKQEAgLTI1LDIzICsyNSwyMyBAQAogLyogQm9hcmQgKi8KIC8qPT09PT09PSovCiAjZGVmaW5lIFNDSE1PT0dJRQotI2RlZmluZSBDRkdfTkFORF9MQVJHRVBBR0UKLSNkZWZpbmUgQ0ZHX1VTRV9OQU5ECisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9MQVJHRVBBR0UKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfTkFORAogLyo9PT09PT09PT09PT09PT09PT09Ki8KIC8qIFNvQyBDb25maWd1cmF0aW9uICovCiAvKj09PT09PT09PT09PT09PT09PT0qLwogI2RlZmluZSBDT05GSUdfQVJNOTI2RUpTCQkJLyogYXJtOTI2ZWpzIENQVSBjb3JlICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMjk3MDAwMDAwCS8qIEFybSBDbG9jayBmcmVxdWVuY3kgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkJMHgwMWMyMTQwMAkvKiB1c2UgdGltZXIgMCAqLwotI2RlZmluZSBDRkdfSFpfQ0xPQ0sJCTI3MDAwMDAwCS8qIFRpbWVyIElucHV0IGNsb2NrIGZyZXEgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkJMHgwMWMyMTQwMAkvKiB1c2UgdGltZXIgMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0haX0NMT0NLCQkyNzAwMDAwMAkvKiBUaW1lciBJbnB1dCBjbG9jayBmcmVxICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAvKj09PT09PT09PT09PT0qLwogLyogTWVtb3J5IEluZm8gKi8KIC8qPT09PT09PT09PT09PSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMHgxMDAwMCArIDI1NioxMDI0KQkvKiBtYWxsb2MoKSBsZW4gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODAwMDAwMDAJLyogbWVtdGVzdCBzdGFydCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg4MTAwMDAwMAkvKiAxNk1CIFJBTSB0ZXN0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDB4MTAwMDAgKyAyNTYqMTAyNCkJLyogbWFsbG9jKCkgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODAwMDAwMDAJLyogbWVtdGVzdCBzdGFydCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODEwMDAwMDAJLyogMTZNQiBSQU0gdGVzdCAqLwogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkxCQkvKiB3ZSBoYXZlIDEgYmFuayBvZiBEUkFNICovCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDI1NioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHg4MDAwMDAwMAkvKiBERFIgU3RhcnQgKi8KQEAgLTUwLDIxICs1MCwyMSBAQAogLyo9PT09PT09PT09PT09PT09PT09PSovCiAvKiBTZXJpYWwgRHJpdmVyIGluZm8gKi8KIC8qPT09PT09PT09PT09PT09PT09PT0qLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJNAkJLyogTlMxNjU1MCByZWdpc3RlciBzaXplICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHgwMWMyMDAwMAkvKiBCYXNlIGFkZHJlc3Mgb2YgVUFSVDAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkyNzAwMDAwMAkvKiBJbnB1dCBjbG9jayB0byBOUzE2NTUwICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQk0CQkvKiBOUzE2NTUwIHJlZ2lzdGVyIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHgwMWMyMDAwMAkvKiBCYXNlIGFkZHJlc3Mgb2YgVUFSVDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMjcwMDAwMDAJLyogSW5wdXQgY2xvY2sgdG8gTlMxNjU1MCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCQkvKiB1c2UgVUFSVDAgZm9yIGNvbnNvbGUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIERlZmF1bHQgYmF1ZCByYXRlICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogLyo9PT09PT09PT09PT09PT09PT09Ki8KIC8qIEkyQyBDb25maWd1cmF0aW9uICovCiAvKj09PT09PT09PT09PT09PT09PT0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9EQVZJTkNJX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk4MDAwMAkvKiAxMDBLYnBzIHdvbid0IHdvcmssIHNpbGljb24gYnVnICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTEwCS8qIEJvZ3VzLCBtYXN0ZXItb25seSBpbiBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTgwMDAwCS8qIDEwMEticHMgd29uJ3Qgd29yaywgc2lsaWNvbiBidWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTEwCS8qIEJvZ3VzLCBtYXN0ZXItb25seSBpbiBVLUJvb3QgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBOZXR3b3JrICYgRXRoZXJuZXQgQ29uZmlndXJhdGlvbiAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTgwLDI1ICs4MCwyNSBAQAogLyogRmxhc2ggJiBFbnZpcm9ubWVudCAqLwogLyo9PT09PT09PT09PT09PT09PT09PT0qLwogI3VuZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECQkvKiBVLUJvb3QgZW52IGluIE5BTkQgRmxhc2ggICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTIwNDgJLyogRW52IHNlY3RvciBTaXplICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJU1pfMTI4SwogI2RlZmluZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCS8qIFUtQm9vdCBpcyBsb2FkZWQgYnkgYSBib290bG9hZGVyICovCiAjZGVmaW5lIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UCS8qIHRvIGEgcHJvcGVyIGFkZHJlc3MsIGluaXQgZG9uZSAqLwotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0hXX0VDQwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0hXX0VDQworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDAJLyogQmxvY2sgMC0tbm90IHVzZWQgYnkgYm9vdGNvZGUgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIEJvYXJkIHJlbGF0ZWQgc3R1ZmYgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09Ki8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMDcJCS8qIFJUQyBjaGlwIG9uIFNDSE1PT0dJRSAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NmYJLyogUlRDIGNoaXAgSTJDIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2ZgkvKiBSVEMgY2hpcCBJMkMgYWRkcmVzcyAqLwogI2RlZmluZSBDT05GSUdfSEFTX1VJRAogI2RlZmluZSBDT05GSUdfVUlEX0RTMjhDTTAwCQkvKiBVbmlxdWUgSUQgb24gU0NITU9PR0lFICovCi0jZGVmaW5lIENGR19VSURfQUREUgkJMHg1MAkvKiBVSUQgY2hpcCBJMkMgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1VJRF9BRERSCQkweDUwCS8qIFVJRCBjaGlwIEkyQyBhZGRyZXNzICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBVLUJvb3QgZ2VuZXJhbCBjb25maWd1cmF0aW9uICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCkBAIC0xMDYsMTggKzEwNiwxOCBAQAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKICN1bmRlZiBDT05GSUdfQk9PVERFTEFZCiAjZGVmaW5lIENPTkZJR19CT09URklMRQkJInVJbWFnZSIJLyogQm9vdCBmaWxlIG5hbWUgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBidWZmZXIgc3ogKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDgwNzAwMDAwCS8qIGRlZmF1bHQgTGludXgga2VybmVsIGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgYnVmZmVyIHN6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODA3MDAwMDAJLyogZGVmYXVsdCBMaW51eCBrZXJuZWwgbG9hZCBhZGRyZXNzICovCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCQkvKiBXb24ndCB3b3JrIHdpdGggaHVzaCBzbyBmYXIsIG1heSBiZSBsYXRlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAjZGVmaW5lIENPTkZJR19DUkMzMl9WRVJJRlkKICNkZWZpbmUgQ09ORklHX01YX0NZQ0xJQwogLyo9PT09PT09PT09PT09PT09PT09Ki8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NmZnNkci5oIGIvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc2Zmc2RyLmgKaW5kZXggMzlmYjJhNS4uZTljZDVhNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc2Zmc2RyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc2Zmc2RyLmgKQEAgLTI2LDQ1ICsyNiw0NSBAQAogCiAvKiBCb2FyZCAqLwogI2RlZmluZSBTRkZTRFIKLSNkZWZpbmUgQ0ZHX05BTkRfTEFSR0VQQUdFCi0jZGVmaW5lIENGR19VU0VfTkFORAotI2RlZmluZSBDRkdfVVNFX0RTUExJTksJCS8qIFRoaXMgaXMgdG8gcHJldmVudCBVLUJvb3QgZnJvbQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfTEFSR0VQQUdFCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX05BTkQKKyNkZWZpbmUgQ09ORklHX1NZU19VU0VfRFNQTElOSwkJLyogVGhpcyBpcyB0byBwcmV2ZW50IFUtQm9vdCBmcm9tCiAJCQkJICogcG93ZXJpbmcgT04gdGhlIERTUC4gKi8KIC8qIFNvQyBDb25maWd1cmF0aW9uICovCiAjZGVmaW5lIENPTkZJR19BUk05MjZFSlMJCQkvKiBhcm05MjZlanMgQ1BVIGNvcmUgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkyOTcwMDAwMDAJLyogQXJtIENsb2NrIGZyZXF1ZW5jeSAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCQkweDAxYzIxNDAwCS8qIHVzZSB0aW1lciAwICovCi0jZGVmaW5lIENGR19IWl9DTE9DSwkJMjcwMDAwMDAJLyogVGltZXIgSW5wdXQgY2xvY2sgZnJlcSAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFCQkweDAxYzIxNDAwCS8qIHVzZSB0aW1lciAwICovCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sJCTI3MDAwMDAwCS8qIFRpbWVyIElucHV0IGNsb2NrIGZyZXEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIC8qIEVFUFJPTSBkZWZpbml0aW9ucyBmb3IgQXRtZWwgMjRMQzY0IEVFUFJPTSBjaGlwICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKIC8qIE1lbW9yeSBJbmZvICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMHgxMDAwMCArIDI1NioxMDI0KQkvKiBtYWxsb2MoKSBsZW4gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODAwMDAwMDAJLyogbWVtdGVzdCBzdGFydCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg4MTAwMDAwMAkvKiAxNk1CIFJBTSB0ZXN0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDB4MTAwMDAgKyAyNTYqMTAyNCkJLyogbWFsbG9jKCkgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODAwMDAwMDAJLyogbWVtdGVzdCBzdGFydCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODEwMDAwMDAJLyogMTZNQiBSQU0gdGVzdCAqLwogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkxCQkvKiB3ZSBoYXZlIDEgYmFuayBvZiBEUkFNICovCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDI1NioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHg4MDAwMDAwMAkvKiBERFIgU3RhcnQgKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJMHgwODAwMDAwMAkvKiBERFIgc2l6ZSAxMjhNQiAqLwogI2RlZmluZSBERFJfNEJBTktTCQkJCS8qIDQtYmFuayBERFIyICgxMjhNQikgKi8KIC8qIFNlcmlhbCBEcml2ZXIgaW5mbyAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJNAkJLyogTlMxNjU1MCByZWdpc3RlciBzaXplICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHgwMWMyMDAwMAkvKiBCYXNlIGFkZHJlc3Mgb2YgVUFSVDAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkyNzAwMDAwMAkvKiBJbnB1dCBjbG9jayB0byBOUzE2NTUwICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQk0CQkvKiBOUzE2NTUwIHJlZ2lzdGVyIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHgwMWMyMDAwMAkvKiBCYXNlIGFkZHJlc3Mgb2YgVUFSVDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMjcwMDAwMDAJLyogSW5wdXQgY2xvY2sgdG8gTlMxNjU1MCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCQkvKiB1c2UgVUFSVDAgZm9yIGNvbnNvbGUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJCS8qIERlZmF1bHQgYmF1ZCByYXRlICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogLyogSTJDIENvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCiAjZGVmaW5lIENPTkZJR19EUklWRVJfREFWSU5DSV9JMkMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODAwMDAJLyogMTAwS2JwcyB3b24ndCB3b3JrLCBzaWxpY29uIGJ1ZyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkxMAkvKiBCb2d1cywgbWFzdGVyLW9ubHkgaW4gVS1Cb290ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAkvKiAxMDBLYnBzIHdvbid0IHdvcmssIHNpbGljb24gYnVnICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkxMAkvKiBCb2d1cywgbWFzdGVyLW9ubHkgaW4gVS1Cb290ICovCiAvKiBOZXR3b3JrICYgRXRoZXJuZXQgQ29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBDT05GSUdfRFJJVkVSX1RJX0VNQUMKICNkZWZpbmUgQ09ORklHX01JSQpAQCAtNzYsNDEgKzc2LDQxIEBACiAjZGVmaW5lIENPTkZJR19PVkVSV1JJVEVfRVRIQUREUl9PTkNFCiAvKiBGbGFzaCAmIEVudmlyb25tZW50ICovCiAjdW5kZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAotI2RlZmluZSBDRkdfTk9fRkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX05BTkQJCS8qIFUtQm9vdCBlbnYgaW4gTkFORCBGbGFzaCAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMjA0OAkvKiBFbnYgc2VjdG9yIFNpemUgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlTWl8xMjhLCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQJLyogVS1Cb290IGlzIGxvYWRlZCBieSBhIGJvb3Rsb2FkZXIgKi8KICNkZWZpbmUgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QJLyogdG8gYSBwcm9wZXIgYWRkcmVzcywgaW5pdCBkb25lICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfSFdfRUNDCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfSFdfRUNDCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MAkvKiBCbG9jayAwLS1ub3QgdXNlZCBieSBib290Y29kZSAqLwogLyogSTJDIHN3aXRjaCBkZWZpbml0aW9ucyBmb3IgUENBOTU0MyBjaGlwICovCi0jZGVmaW5lIENGR19JMkNfUENBOTU0M19BRERSCQkweDcwCi0jZGVmaW5lIENGR19JMkNfUENBOTU0M19BRERSX0xFTgkwCS8qIFNpbmdsZSByZWdpc3Rlci4gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19QQ0E5NTQzX0VOQUJMRV9DSDAJMHgwMQkvKiBFbmFibGUgY2hhbm5lbCAwLiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QQ0E5NTQzX0FERFIJCTB4NzAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUENBOTU0M19BRERSX0xFTgkwCS8qIFNpbmdsZSByZWdpc3Rlci4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUENBOTU0M19FTkFCTEVfQ0gwCTB4MDEJLyogRW5hYmxlIGNoYW5uZWwgMC4gKi8KIC8qIFUtQm9vdCBnZW5lcmFsIGNvbmZpZ3VyYXRpb24gKi8KICN1bmRlZiBDT05GSUdfVVNFX0lSUQkJCQkvKiBObyBJUlEvRklRIGluIFUtQm9vdCAqLwogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CQkvKiBBdXRvYm9vdCBhZnRlciA1IHNlY29uZHMuICovCiAjZGVmaW5lIENPTkZJR19CT09URklMRQkJInVJbWFnZSIJLyogQm9vdCBmaWxlIG5hbWUgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlUtQm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJCQkJCQlcCi0JCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCS8qIFByaW50IGJ1ZmZlciBzaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg4MDcwMDAwMAkvKiBEZWZhdWx0IExpbnV4IGtlcm5lbAorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJCQkJCVwKKwkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQkvKiBQcmludCBidWZmZXIgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDgwNzAwMDAwCS8qIERlZmF1bHQgTGludXgga2VybmVsCiAJCQkJCQkgKiBsb2FkIGFkZHJlc3MuICovCiAjZGVmaW5lIENPTkZJR19WRVJTSU9OX1ZBUklBQkxFCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCQkvKiBXb24ndCB3b3JrIHdpdGggaHVzaCBzbyBmYXIsCiAJCQkJCSAqIG1heSBiZSBsYXRlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAjZGVmaW5lIENPTkZJR19DUkMzMl9WRVJJRlkKICNkZWZpbmUgQ09ORklHX01YX0NZQ0xJQwogLyogTGludXggSW5mb3JtYXRpb24gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9kYXZpbmNpX3NvbmF0YS5oIGIvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc29uYXRhLmgKaW5kZXggYmI0MmE1NC4uMzgxZWViNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc29uYXRhLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2RhdmluY2lfc29uYXRhLmgKQEAgLTUwLDMxICs1MCwzMSBAQAogLyogQm9hcmQgKi8KIC8qPT09PT09PSovCiAjZGVmaW5lIFNPTkFUQV9CT0FSRAotI2RlZmluZSBDRkdfTkFORF9TTUFMTFBBR0UKLSNkZWZpbmUgQ0ZHX1VTRV9OT1IKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NNQUxMUEFHRQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9OT1IKIC8qPT09PT09PT09PT09PT09PT09PSovCiAvKiBTb0MgQ29uZmlndXJhdGlvbiAqLwogLyo9PT09PT09PT09PT09PT09PT09Ki8KICNkZWZpbmUgQ09ORklHX0FSTTkyNkVKUwkJCS8qIGFybTkyNmVqcyBDUFUgY29yZSAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTI5NzAwMDAwMAkvKiBBcm0gQ2xvY2sgZnJlcXVlbmN5ICovCi0jZGVmaW5lIENGR19USU1FUkJBU0UJCTB4MDFjMjE0MDAJLyogdXNlIHRpbWVyIDAgKi8KLSNkZWZpbmUgQ0ZHX0haX0NMT0NLCQkyNzAwMDAwMAkvKiBUaW1lciBJbnB1dCBjbG9jayBmcmVxICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJCTB4MDFjMjE0MDAJLyogdXNlIHRpbWVyIDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSwkJMjcwMDAwMDAJLyogVGltZXIgSW5wdXQgY2xvY2sgZnJlcSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIEVFUFJPTSBkZWZpbml0aW9ucyBmb3IgQXRtZWwgMjRDMjU2Qk4gU0VFUFJPTSBjaGlwICovCiAvKiBvbiBTb25hdGEvRFZfRVZNIGJvYXJkLiBObyBFRVBST00gb24gc2NobW9vZ2llLiAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk2Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTYKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAogLyo9PT09PT09PT09PT09Ki8KIC8qIE1lbW9yeSBJbmZvICovCiAvKj09PT09PT09PT09PT0qLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDB4MTAwMDAgKyAxMjgqMTAyNCkJLyogbWFsbG9jKCkgbGVuICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDgwMDAwMDAwCS8qIG1lbXRlc3Qgc3RhcnQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODEwMDAwMDAJLyogMTZNQiBSQU0gdGVzdCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgweDEwMDAwICsgMTI4KjEwMjQpCS8qIG1hbGxvYygpIGxlbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMDAwMDAwCS8qIG1lbXRlc3Qgc3RhcnQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDgxMDAwMDAwCS8qIDE2TUIgUkFNIHRlc3QgKi8KICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJMQkJLyogd2UgaGF2ZSAxIGJhbmsgb2YgRFJBTSAqLwogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgyNTYqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzEJCTB4ODAwMDAwMDAJLyogRERSIFN0YXJ0ICovCkBAIC04MywyMSArODMsMjEgQEAKIC8qPT09PT09PT09PT09PT09PT09PT0qLwogLyogU2VyaWFsIERyaXZlciBpbmZvICovCiAvKj09PT09PT09PT09PT09PT09PT09Ki8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTQJCS8qIE5TMTY1NTAgcmVnaXN0ZXIgc2l6ZSAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4MDFjMjAwMDAJLyogQmFzZSBhZGRyZXNzIG9mIFVBUlQwICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMjcwMDAwMDAJLyogSW5wdXQgY2xvY2sgdG8gTlMxNjU1MCAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJNAkJLyogTlMxNjU1MCByZWdpc3RlciBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4MDFjMjAwMDAJLyogQmFzZSBhZGRyZXNzIG9mIFVBUlQwICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTI3MDAwMDAwCS8qIElucHV0IGNsb2NrIHRvIE5TMTY1NTAgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQkJLyogdXNlIFVBUlQwIGZvciBjb25zb2xlICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCQkvKiBEZWZhdWx0IGJhdWQgcmF0ZSAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIC8qPT09PT09PT09PT09PT09PT09PSovCiAvKiBJMkMgQ29uZmlndXJhdGlvbiAqLwogLyo9PT09PT09PT09PT09PT09PT09Ki8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCiAjZGVmaW5lIENPTkZJR19EUklWRVJfREFWSU5DSV9JMkMKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJODAwMDAJLyogMTAwS2JwcyB3b24ndCB3b3JrLCBzaWxpY29uIGJ1ZyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkxMAkvKiBCb2d1cywgbWFzdGVyLW9ubHkgaW4gVS1Cb290ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk4MDAwMAkvKiAxMDBLYnBzIHdvbid0IHdvcmssIHNpbGljb24gYnVnICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkxMAkvKiBCb2d1cywgbWFzdGVyLW9ubHkgaW4gVS1Cb290ICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogTmV0d29yayAmIEV0aGVybmV0IENvbmZpZ3VyYXRpb24gKi8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCkBAIC0xMTEsMjEgKzExMSwyMSBAQAogLyo9PT09PT09PT09PT09PT09PT09PT0qLwogLyogRmxhc2ggJiBFbnZpcm9ubWVudCAqLwogLyo9PT09PT09PT09PT09PT09PT09PT0qLwotI2lmZGVmIENGR19VU0VfTkFORAorI2lmZGVmIENPTkZJR19TWVNfVVNFX05BTkQKICN1bmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICi0jZGVmaW5lIENGR19OT19GTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkJLyogVS1Cb290IGVudiBpbiBOQU5EIEZsYXNoICAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQk1MTIJLyogRW52IHNlY3RvciBTaXplICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJU1pfMTZLCiAjZGVmaW5lIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQJLyogVS1Cb290IGlzIGxvYWRlZCBieSBhIGJvb3Rsb2FkZXIgKi8KICNkZWZpbmUgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QJLyogdG8gYSBwcm9wZXIgYWRkcmVzcywgaW5pdCBkb25lICovCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfSFdfRUNDCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfSFdfRUNDCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MAkvKiBCbG9jayAwLS1ub3QgdXNlZCBieSBib290Y29kZSAqLwogI2RlZmluZSBERUZfQk9PVE0JCSIiCi0jZWxpZiBkZWZpbmVkKENGR19VU0VfTk9SKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX1VTRV9OT1IpCiAjaWZkZWYgQ09ORklHX05PUl9VQVJUX0JPT1QKICNkZWZpbmUgQ09ORklHX1NLSVBfTE9XTEVWRUxfSU5JVAkvKiBVLUJvb3QgaXMgbG9hZGVkIGJ5IGEgYm9vdGxvYWRlciAqLwogI2RlZmluZSBDT05GSUdfU0tJUF9SRUxPQ0FURV9VQk9PVAkvKiB0byBhIHByb3BlciBhZGRyZXNzLCBpbml0IGRvbmUgKi8KQEAgLTEzNCwxNyArMTM0LDE3IEBACiAjdW5kZWYgQ09ORklHX1NLSVBfUkVMT0NBVEVfVUJPT1QKICNlbmRpZgogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICi0jdW5kZWYgQ0ZHX05PX0ZMQVNICisjdW5kZWYgQ09ORklHX1NZU19OT19GTEFTSAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfU0VDVF9TWgkweDIwMDAwCQkvKiAxMjhLQiBzZWN0IHNpemUgQU1EIEZsYXNoICovCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ0ZHX0ZMQVNIX1NFQ1RfU1oqMikKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NFQ1RfU1oJMHgyMDAwMAkJLyogMTI4S0Igc2VjdCBzaXplIEFNRCBGbGFzaCAqLworI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19TWVNfRkxBU0hfU0VDVF9TWioyKQogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDIwMDAwMDAJLyogQ1MyIEJhc2UgYWRkcmVzcwkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQkvKiBGbGFzaCBCYXNlIGZvciBVLUJvb3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEJLyogRmxhc2ggQmFzZSBmb3IgVS1Cb290ICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgyMDAwMDAwCS8qIEZsYXNoIHNpemUgMzJNQgkgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCShQSFlTX0ZMQVNIX1NJWkUvQ0ZHX0ZMQVNIX1NFQ1RfU1opCi0jZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCUNGR19GTEFTSF9TRUNUX1NaCS8qIEVudiBzZWN0b3IgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCShQSFlTX0ZMQVNIX1NJWkUvQ09ORklHX1NZU19GTEFTSF9TRUNUX1NaKQorI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlDT05GSUdfU1lTX0ZMQVNIX1NFQ1RfU1oJLyogRW52IHNlY3RvciBTaXplICovCiAjZW5kaWYKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIFUtQm9vdCBnZW5lcmFsIGNvbmZpZ3VyYXRpb24gKi8KQEAgLTE1MywxOCArMTUzLDE4IEBACiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgogI3VuZGVmIENPTkZJR19CT09UREVMQVkKICNkZWZpbmUgQ09ORklHX0JPT1RGSUxFCQkidUltYWdlIgkvKiBCb290IGZpbGUgbmFtZSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290ID4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IGJ1ZmZlciBzeiAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4ODA3MDAwMDAJLyogZGVmYXVsdCBMaW51eCBrZXJuZWwgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiVS1Cb290ID4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBidWZmZXIgc3ogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg4MDcwMDAwMAkvKiBkZWZhdWx0IExpbnV4IGtlcm5lbCBsb2FkIGFkZHJlc3MgKi8KICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJCS8qIFdvbid0IHdvcmsgd2l0aCBodXNoIHNvIGZhciwgbWF5IGJlIGxhdGVyICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKICNkZWZpbmUgQ09ORklHX0NSQzMyX1ZFUklGWQogI2RlZmluZSBDT05GSUdfTVhfQ1lDTElDCiAvKj09PT09PT09PT09PT09PT09PT0qLwpAQCAtMTkwLDE0ICsxOTAsMTQgQEAKICN1bmRlZiBDT05GSUdfQ01EX0JESQogI3VuZGVmIENPTkZJR19DTURfRlBHQQogI3VuZGVmIENPTkZJR19DTURfU0VUR0VURENSCi0jaWZkZWYgQ0ZHX1VTRV9OQU5ECisjaWZkZWYgQ09ORklHX1NZU19VU0VfTkFORAogI3VuZGVmIENPTkZJR19DTURfRkxBU0gKICN1bmRlZiBDT05GSUdfQ01EX0lNTFMKICNkZWZpbmUgQ09ORklHX0NNRF9OQU5ECi0jZWxpZiBkZWZpbmVkKENGR19VU0VfTk9SKQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX1VTRV9OT1IpCiAjZGVmaW5lIENPTkZJR19DTURfSkZGUzIKICNlbHNlCi0jZXJyb3IgIkVpdGhlciBDRkdfVVNFX05BTkQgb3IgQ0ZHX1VTRV9OT1IgX01VU1RfIGJlIGRlZmluZWQgISEhIgorI2Vycm9yICJFaXRoZXIgQ09ORklHX1NZU19VU0VfTkFORCBvciBDT05GSUdfU1lTX1VTRV9OT1IgX01VU1RfIGJlIGRlZmluZWQgISEhIgogI2VuZGlmCiAvKj09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIEtHREIgc3VwcG9ydCAoaWYgYW55KSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2RiYXUxeDAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvZGJhdTF4MDAuaAppbmRleCBkN2U0OGQwLi5hNTc4MDM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZGJhdTF4MDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZGJhdTF4MDAuaApAQCAtNTksNyArNTksNyBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogI3VuZGVmCUNPTkZJR19CT09UQVJHUwpAQCAtMTMwLDczICsxMzAsNzMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICovCiAKLSNkZWZpbmUJQ0ZHX1BST01QVAkJIkRiQXUxeHgwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiRGJBdTF4eDAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KIAotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CiAKLSNkZWZpbmUgQ0ZHX01IWgkJCTM5NgorI2RlZmluZSBDT05GSUdfU1lTX01IWgkJCTM5NgogCi0jaWYgKENGR19NSFogJSAxMikgIT0gMAorI2lmIChDT05GSUdfU1lTX01IWiAlIDEyKSAhPSAwCiAjZXJyb3IgIkludmFsaWQgQ1BVIGZyZXF1ZW5jeSAtIG11c3QgYmUgbXVsdGlwbGUgb2YgMTIhIgogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01JUFNfVElNRVJfRlJFUQkoQ0ZHX01IWiAqIDEwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUlQU19USU1FUl9GUkVRCShDT05GSUdfU1lTX01IWiAqIDEwMDAwMDApCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDgwMDAwMDAwICAgICAvKiBDYWNoZWQgYWRkciAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAgICAgIC8qIENhY2hlZCBhZGRyICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHg4MTAwMDAwMCAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODEwMDAwMDAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg4MDEwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg4MDgwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KICNpZmRlZiBDT05GSUdfREJBVTE1NTAKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSg1MTIpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDUxMikJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweGI4MDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF8yCQkweGJjMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzIgKi8KIAogI2Vsc2UgLyogQ09ORklHX0RCQVUxNTUwICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHhiZWMwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJMHhiZmMwMDAwMCAvKiBGbGFzaCBCYW5rICMyICovCiAKICNlbmRpZiAvKiBDT05GSUdfREJBVTE1NTAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7UEhZU19GTEFTSF8xLCBQSFlTX0ZMQVNIXzJ9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7UEhZU19GTEFTSF8xLCBQSFlTX0ZMQVNIXzJ9CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSSAgICAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSSAgICAgICAgICAgMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUiAgICAxCiAKIC8qIFRoZSBmb2xsb3dpbmcgI2RlZmluZXMgYXJlIG5lZWRlZCB0byBnZXQgZmxhc2ggZW52aXJvbm1lbnQgcmlnaHQgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkweDQwMDAwMAogCiAvKiBXZSBib290IGZyb20gdGhpcyBmbGFzaCwgc2VsZWN0ZWQgd2l0aCBkaXAgc3dpdGNoICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzIKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyICogQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX05PV0hFUkUJMQogCkBAIC0yMjAsOCArMjIwLDggQEAKIAogI2lmbmRlZiBDT05GSUdfREJBVTE1NTAKIC8qLS0tQVRBIFBDTUNJQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFIDB4NDAwMDAwMCAvKiBPZmZzZXQgdG8gc2xvdCAxIEZJWE1FISEhICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIgMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSAweDQwMDAwMDAgLyogT2Zmc2V0IHRvIHNsb3QgMSBGSVhNRSEhISAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUiAweDIwMDAwMDAwCiAjZGVmaW5lIENPTkZJR19QQ01DSUFfU0xPVF9BCiAKICNkZWZpbmUgQ09ORklHX0FUQVBJIDEKQEAgLTIzMSwzMSArMjMxLDMxIEBACiAjZGVmaW5lIENPTkZJR19JREVfUENNQ0lBIDEKIAogLyogV2Ugb25seSBzdXBwb3J0IG9uZSBzbG90IGZvciBub3cgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSICAgICAgIENGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICAgICAgIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUICAgICA4CisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUICAgICA4CiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgICAgICAwCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQgICAgICAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCAgICAgIDB4MDEwMAogI2VuZGlmIC8qIENPTkZJR19EQkFVMTU1MCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkxNjM4NAotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZGVicmlzLmggYi9pbmNsdWRlL2NvbmZpZ3MvZGVicmlzLmgKaW5kZXggM2VhNGZhNi4uNGQ2NWY2YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RlYnJpcy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kZWJyaXMuaApAQCAtNzYsNyArNzYsNyBAQAogI2RlZmluZSBDT05GSUdfU0VSVkVSSVAJMTkyLjE2OC4wLjEKIAogLyogYXV0b2xvYWQgKi8KLSN1bmRlZiBDRkdfQVVUT0xPQUQKKyN1bmRlZiBDT05GSUdfU1lTX0FVVE9MT0FECiAKIC8qIHJvb3RwYXRoICovCiAjZGVmaW5lIENPTkZJR19ST09UUEFUSCAvdGZ0cGJvb3QvdGFyZ2V0CkBAIC0xNTYsMTQgKzE1NiwxNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xNzQsNyArMTc0LDcgQEAKIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCQkvKiBNdWx0aSBldGhlcm5ldCBjYXJkcyBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4CS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogI2RlZmluZSBDT05GSUdfRUVQUk8xMDBfU1JPTV9XUklURQogCiAjZGVmaW5lIFBDSV9FTkVUMF9JT0FERFIJMHg4MDAwMDAwMApAQCAtMTg0LDQ5ICsxODQsNDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUJMHgyMDAwMDAwMAogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCiAjaWYgZGVmaW5lZCAoVVNFX0RJTkszMikKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDAwMDQwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgwMDA5MDAwMAotI2RlZmluZSBDRkdfUkFNQk9PVAkJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NiAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDAwMDkwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDA0MDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI3VuZGVmCUNPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQogCi0vKiNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgMjU2Ki8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CisvKiNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgIDI1NiovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg3QzAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKDE2KjEwMjQqMTAyNCkJLyogZGVicmlzIGhhcyB0aW55IGVlcHJvbQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4N0MwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoMTYqMTAyNCoxMDI0KQkvKiBkZWJyaXMgaGFzIHRpbnkgZWVwcm9tCSovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA0MDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDQwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCQkweEZDMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JBTkdFX0JBU0UJMHhGRjAwMDAwMAkvKiBmbGFzaCBtZW1vcnkgYWRkcmVzcyByYW5nZQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkFOR0VfU0laRQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkFOR0VfQkFTRQkweEZGMDAwMDAwCS8qIGZsYXNoIG1lbW9yeSBhZGRyZXNzIHJhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkFOR0VfU0laRQkweDAxMDAwMDAwCiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweDdDMDAwMDAwCS8qIGRlYnJpcyBmbGFzaAkJKi8KIAogLyoKQEAgLTI1MywxOCArMjUzLDE4IEBACiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTSAgICAgIDEKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUgICAgIDEKLSNkZWZpbmUgQ0ZHX05WUkFNX0FDQ0VTU19ST1VUSU5FIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9BQ0NFU1NfUk9VVElORSAxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHhGRjAwMDAwMCAvKiByaWdodCBhdCB0aGUgc3RhcnQgb2YgTlZSQU0gICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAJLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQgLSA4SwkgICAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAkvKiBzdGFydGluZyByaWdodCBhdCB0aGUgYmVnaW5uaW5nICovCiAKLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGZmMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZmYwMDAwMDAKIAogLyoKLSAqIENGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fVlhXT1JLU19PRkZTID0KKyAqIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSICsgQ09ORklHX1NZU19OVlJBTV9WWFdPUktTX09GRlMgPQogICogTlZfUkFNX0FERFJTICsgTlZfQk9PVF9PRkZTRVQgKyBOVl9FTkVUX09GRlNFVAogICovCi0jZGVmaW5lIENGR19OVlJBTV9WWFdPUktTX09GRlMJMHg2OTAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fVlhXT1JLU19PRkZTCTB4NjkwMAogCiAvKgogICogc2VsZWN0IGkyYyBzdXBwb3J0IGNvbmZpZ3VyYXRpb24KQEAgLTI3NSw4ICsyNzUsOCBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCiAjdW5kZWYgIENPTkZJR19TT0ZUX0kyQwkJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogI2Vycm9yICJTb2Z0IEkyQyBpcyBub3QgY29uZmlndXJlZCBwcm9wZXJseS4gIFBsZWFzZSByZXZpZXchIgpAQCAtMjkxLDEzICsyOTEsMTMgQEAKICNkZWZpbmUgSTJDX0RFTEFZCQl1ZGVsYXkoNSkJLyogMS80IEkyQyBjbG9jayBkdXJhdGlvbiAqLwogI2VuZGlmIC8qIENPTkZJR19TT0ZUX0kyQyAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NwkJLyogRUVQUk9NIElTMjRDMDIJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTcJCS8qIEVFUFJPTSBJUzI0QzAyCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lIENGR19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LUwkJeyBGTEFTSF9CQVNFMF9QUkVMSU0gfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQpAQCAtMzA2LDE3ICszMDYsMTcgQEAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQk3MzcyODAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTczNzI4MDAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4RkYwODAwMDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX05TMTY1NTBfQ09NMSArIDgpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTMJKENGR19OUzE2NTUwX0NPTTEgKyAxNikKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NNAkoQ0ZHX05TMTY1NTBfQ09NMSArIDI0KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweEZGMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX05TMTY1NTBfQ09NMSArIDgpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00zCShDT05GSUdfU1lTX05TMTY1NTBfQ09NMSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NNAkoQ09ORklHX1NZU19OUzE2NTUwX0NPTTEgKyAyNCkKIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0zMjcsMzIgKzMyNywzMiBAQAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzMzMzMzMwkvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsICovCiAjZGVmaW5lIENPTkZJR19QTExfUENJX1RPX01FTV9NVUxUSVBMSUVSIDMKIAotI2RlZmluZSBDRkdfRExMX0VYVEVORAkJMHgwMAotI2RlZmluZSBDRkdfUENJX0hPTERfREVMCTB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19ETExfRVhURU5ECQkweDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0hPTERfREVMCTB4MjAKIAotI2RlZmluZSBDRkdfUk9NTkFMCTE1CS8qIHJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lICovCi0jZGVmaW5lIENGR19ST01GQUwJMzEJLyogcm9tL2ZsYXNoIGFjY2VzcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCTE1CS8qIHJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCTMxCS8qIHJvbS9mbGFzaCBhY2Nlc3MgdGltZSAqLwogCi0jZGVmaW5lIENGR19SRUZJTlQJNDMwCS8qICMgb2YgY2xvY2tzIGJldHdlZW4gQ0JSIHJlZnJlc2ggY3ljbGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCTQzMAkvKiAjIG9mIGNsb2NrcyBiZXR3ZWVuIENCUiByZWZyZXNoIGN5Y2xlcyAqLwogCi0jZGVmaW5lIENGR19EQlVTX1NJWkUyCTEJLyogc2V0IGZvciA4LWJpdCBSQ1MxLCBjbGVhciBmb3IgMzIsNjQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EQlVTX1NJWkUyCTEJLyogc2V0IGZvciA4LWJpdCBSQ1MxLCBjbGVhciBmb3IgMzIsNjQgKi8KIAogLyogdGhlIGZvbGxvd2luZyBhcmUgZm9yIFNEUkFNIG9ubHkqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkxMjEJLyogQnVyc3QgVG8gUHJlY2hhcmdlLCBzZXRzIG9wZW4gcGFnZSBpbnRlcnZhbCAqLwotI2RlZmluZSBDRkdfUkVGUkVDCTgJLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkJKi8KLSNkZWZpbmUgQ0ZHX1JETEFUCTQJLyogZGF0YSBsYXRlbmN5IGZyb20gcmVhZCBjb21tYW5kCSovCi0jZGVmaW5lIENGR19QUkVUT0FDVAkzCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJNQkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMwkvKiBBY3RpdmF0ZSB0byBSL1cJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJCTAJLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkxMjEJLyogQnVyc3QgVG8gUHJlY2hhcmdlLCBzZXRzIG9wZW4gcGFnZSBpbnRlcnZhbCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwk4CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJNAkvKiBkYXRhIGxhdGVuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkzCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkzCS8qIEFjdGl2YXRlIHRvIFIvVwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMwkvKiBTRE1PREUgQ0FTIGxhdGVuY3kJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTgkyCS8qIE9CU09MRVRFISAgU0RNT0RFIEJ1cnN0IGxlbmd0aCAyPTQsIDM9OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMgkvKiBPQlNPTEVURSEgIFNETU9ERSBCdXJzdCBsZW5ndGggMj00LCAzPTgJCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUkVHSVNURVJEX1RZUEVfQlVGRkVSICAgMQotI2RlZmluZSBDRkdfRVhUUk9NIDEKLSNkZWZpbmUgQ0ZHX1JFR0RJTU0gMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRST00gMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0gMAogCiAKIC8qIG1lbW9yeSBiYW5rIHNldHRpbmdzKi8KQEAgLTM2Miw5MyArMzYyLDkzIEBACiAgKiBiaXRzIHdpbGwgYmUgc2V0IHRvIDB4MDAwMDAgZm9yIGEgc3RhcnQgYWRkcmVzcywgb3IgMHhmZmZmZiBmb3IgYW4KICAqIGVuZCBhZGRyZXNzCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJCSgweDQwMDAwMDAgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCQkweDA0MDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJCSgweDgwMDAwMDAgLSAxKQotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkJKDB4NDAwMDAwMCAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkJKDB4ODAwMDAwMCAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFCTAKIC8qCiAgKiBNZW1vcnkgYmFuayBlbmFibGUgYml0bWFzaywgc3BlY2lmeWluZyB3aGljaCBvZiB0aGUgYmFua3MgZGVmaW5lZCBhYm92ZQogIGFyZSBhY3R1YWxseSBwcmVzZW50LiBNU0IgaXMgZm9yIGJhbmsgIzcsIExTQiBpcyBmb3IgYmFuayAjMC4KICAqLwotI2RlZmluZSBDRkdfQkFOS19FTkFCTEUJCTB4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LX0VOQUJMRQkJMHgwMQogCi0jZGVmaW5lIENGR19PRENSCQkweDc1CS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcywJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCQkweDc1CS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcywJKi8KIAkJCQkJLyogc2VlIDgyNDAgYm9vayBmb3IgYml0IGRlZmluaXRpb25zCSovCi0jZGVmaW5lIENGR19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCiAJCQkJCS8qIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeQkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBkZXRhaWxzCQkqLwogCiAvKiBTRFJBTSAwIC0gMjU2TUIgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogc3RhY2sgaW4gRENBQ0hFIEAgMUdCIChubyBiYWNraW5nIG1lbSkgKi8KICNpZiBkZWZpbmVkKFVTRV9ESU5LMzIpCi0jZGVmaW5lIENGR19JQkFUMUwJKDB4NDAwMDAwMDAgfCBCQVRMX1BQXzAwICkKLSNkZWZpbmUgQ0ZHX0lCQVQxVQkoMHg0MDAwMDAwMCB8IEJBVFVfQkxfMTI4SyApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCSgweDQwMDAwMDAwIHwgQkFUTF9QUF8wMCApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCSgweDQwMDAwMDAwIHwgQkFUVV9CTF8xMjhLICkKICNlbHNlCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjZW5kaWYKIAogLyogUENJIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfSUJBVDJMCSgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBGbGFzaCwgY29uZmlnIGFkZHJzLCBldGMgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoMHhGMDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwJQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTAlDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQotI2RlZmluZSBDRkdfREJBVDNMCUNGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVQlDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCUNPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCUNPTkZJR19TWVNfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMCUNPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVCUNPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCUNPTkZJR19TWVNfSUJBVDNMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNVCUNPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNDAgQ1BVCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI0MCBDUFUJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9kZWx0YS5oIGIvaW5jbHVkZS9jb25maWdzL2RlbHRhLmgKaW5kZXggNGI3NWUxNS4uMDhiMjhjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2RlbHRhLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2RlbHRhLmgKQEAgLTQzLDggKzQzLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDI1NioxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNTksMTEgKzU5LDExIEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogcmVxdWlyZWQgZm9yIERBOTAzMCBhY2Nlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkxCS8qIEkyQyBjb250cm9sbGVycyBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkxCS8qIEkyQyBjb250cm9sbGVycyBhZGRyZXNzICovCiAjZGVmaW5lIERBOTAzMF9JMkNfQUREUgkJMHg0OQkvKiBJMkMgYWRkcmVzcyBvZiBEQTkwMzAgKi8KLSNkZWZpbmUgQ0ZHX0RBOTAzMF9FWFRPTl9ERUxBWQkxMDAwMDAJLyogd2FpdCB4IHVzIGFmdGVyIERBOTAzMCByZXNldCB2aWEgRVhUT04gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19JTklUX0JPQVJECTEKKyNkZWZpbmUgQ09ORklHX1NZU19EQTkwMzBfRVhUT05fREVMQVkJMTAwMDAwCS8qIHdhaXQgeCB1cyBhZnRlciBEQTkwMzAgcmVzZXQgdmlhIEVYVE9OICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQJMQogLyogI2RlZmluZSBDT05GSUdfSFdfV0FUQ0hET0cJMQkvXCogUmVxdWlyZWQgZm9yIGhpdHRpbmcgdGhlIERBOTAzMCBXRCAqXC8gKi8KIAogI2RlZmluZSBERUxUQV9DSEVDS19LRVlCRAkxCS8qIGNoZWNrIGZvciBrZXlzIHByZXNzZWQgZHVyaW5nIGJvb3QgKi8KQEAgLTEyNSwxMSArMTI1LDExIEBACiAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPiAvKiBmb3IgT0hDSV9SRUdTX0JBU0UgKi8KIAotI3VuZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJT0hDSV9SRUdTX0JBU0UKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkiZGVsdGEiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkzCisjdW5kZWYgQ09ORklHX1NZU19VU0JfT0hDSV9CT0FSRF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfQ1BVX0lOSVQJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQlPSENJX1JFR1NfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkiZGVsdGEiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMwogCiAjZGVmaW5lIExJVFRMRUVORElBTiAgICAgICAgICAgIDEgICAgICAgLyogdXNlZCBieSB1c2Jfb2hjaS5jICAqLwogCkBAIC0xNTEsMzkgKzE1MSwzOSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIiQgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSIkICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg4MDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDgwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCShDRkdfRFJBTV9CQVNFICsgMHg4MDAwKSAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkoQ09ORklHX1NZU19EUkFNX0JBU0UgKyAweDgwMDApIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMzI1MDAwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy4yNSBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTMyNTAwMDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuMjUgTUh6ICovCiAKIC8qIE1vbmFoYW5zIENvcmUgRnJlcXVlbmN5ICovCi0jZGVmaW5lIENGR19NT05BSEFOU19SVU5fTU9ERV9PU0NfUkFUSU8JCTE2IC8qIHZhbGlkIHZhbHVlczogOCwgMTYsIDI0LCAzMSAqLwotI2RlZmluZSBDRkdfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8JMSAgLyogdmFsaWQgdmFsdWVzOiAxLCAyICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPCQkxNiAvKiB2YWxpZCB2YWx1ZXM6IDgsIDE2LCAyNCwgMzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05BSEFOU19UVVJCT19SVU5fTU9ERV9SQVRJTwkxICAvKiB2YWxpZCB2YWx1ZXM6IDEsIDIgKi8KIAogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLS8qICNkZWZpbmUgQ0ZHX01NQ19CQVNFCQkweEYwMDAwMDAwICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfTU1DX0JBU0UJCTB4RjAwMDAwMDAgKi8KIAogLyoKICAqIFN0YWNrIHNpemVzCkBAIC0yMDksMjYgKzIwOSwyNiBAQAogI2RlZmluZSBQSFlTX1NEUkFNXzQJCTB4ODMwMDAwMDAgLyogU0RSQU0gQmFuayAjNCAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzRfU0laRQkweDEwMDAwMDAgIC8qIDY0IE1CICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJMHg4MDAwMDAwMCAvKiBhdCBDUzAgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQiBSYW0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCTB4ODAwMDAwMDAgLyogYXQgQ1MwICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CIFJhbSAqLwogCi0jdW5kZWYgQ0ZHX1NLSVBfRFJBTV9TQ1JVQgorI3VuZGVmIENPTkZJR19TWVNfU0tJUF9EUkFNX1NDUlVCCiAKIC8qCiAgKiBOQU5EIEZsYXNoCiAgKi8KICN1bmRlZiBDT05GSUdfTkFORF9MRUdBQ1kKIAotI2RlZmluZSBDRkdfTkFORDBfQkFTRQkJMHgwIC8qIDB4NDMxMDAwNDAgKi8gLyogMHgxMDAwMDAwMCAqLwotI3VuZGVmIENGR19OQU5EMV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDBfQkFTRQkJMHgwIC8qIDB4NDMxMDAwNDAgKi8gLyogMHgxMDAwMDAwMCAqLworI3VuZGVmIENPTkZJR19TWVNfTkFORDFfQkFTRQogCi0jZGVmaW5lIENGR19OQU5EX0JBU0VfTElTVAl7IENGR19OQU5EMF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFX0xJU1QJeyBDT05GSUdfU1lTX05BTkQwX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAKIC8qIG5hbmQgdGltZW91dCB2YWx1ZXMgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUFJPR19FUkFTRV9UTwkzMDAwCi0jZGVmaW5lIENGR19OQU5EX09USEVSX1RPCTEwMAotI2RlZmluZSBDRkdfTkFORF9TRU5EQ01EX1JFVFJZCTMKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BST0dfRVJBU0VfVE8JMzAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT1RIRVJfVE8JMTAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TRU5EQ01EX1JFVFJZCTMKICN1bmRlZiBOQU5EX0FMTE9XX0VSQVNFX0FMTAkvKiBBbGxvdyBlcmFzaW5nIGJhZCBibG9ja3MgLSBkb24ndCB1c2UgKi8KIAogLyogTkFORCBUaW1pbmcgUGFyYW1ldGVycyAoaW4gbnMpICovCkBAIC0yNDUsOSArMjQ1LDkgQEAKICNkZWZpbmUgTkFORF9USU1JTkdfdEFSCQkxMAogCiAvKiBOQU5EIGRlYnVnZ2luZyAqLwotI2RlZmluZSBDRkdfREZDX0RFQlVHMSAvKiB1c2VmdWxsICovCi0jdW5kZWYgQ0ZHX0RGQ19ERUJVRzIgIC8qIG5vaXN5ICovCi0jdW5kZWYgQ0ZHX0RGQ19ERUJVRzMgIC8qIGV4dHJlbWx5IG5vaXN5ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0RGQ19ERUJVRzEgLyogdXNlZnVsbCAqLworI3VuZGVmIENPTkZJR19TWVNfREZDX0RFQlVHMiAgLyogbm9pc3kgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0RGQ19ERUJVRzMgIC8qIGV4dHJlbWx5IG5vaXN5ICAqLwogCiAjZGVmaW5lIENPTkZJR19NVERfREVCVUcKICNkZWZpbmUgQ09ORklHX01URF9ERUJVR19WRVJCT1NFIDEKQEAgLTI2MCw3ICsyNjAsNyBAQAogI2RlZmluZSBOQU5EX01BWF9GTE9PUlMJCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKIAotI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkweDQwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZG5wMTExMC5oIGIvaW5jbHVkZS9jb25maWdzL2RucDExMTAuaAppbmRleCAyMjQ5ZmM4Li5lMzI5ZmQzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZG5wMTExMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9kbnAxMTEwLmgKQEAgLTQ2LDggKzQ2LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtOTksMjUgKzk5LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIkROUDExMTAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkROUDExMTAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHhjMDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHhjMDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDBiCQkvKiBzZXQgY29yZSBjbG9jayB0byAyMjAgTUh6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MGIJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDIyMCBNSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTQzLDE3ICsxNDMsMTcgQEAKICNkZWZpbmUgUEhZU19GTEFTSF9CQU5LX1NJWkUgICAgMHgwMTAwMDAwMCAvKiAzMiBNQiBCYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRSAgICAweDAwMDIwMDAwIC8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShQSFlTX0ZMQVNIXzEgKyAweEY4MDAwMCkJLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9lWGFsaW9uLmggYi9pbmNsdWRlL2NvbmZpZ3MvZVhhbGlvbi5oCmluZGV4IGVjZjRjNWUuLmZjMzE3NGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9lWGFsaW9uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2VYYWxpb24uaApAQCAtODQsNTMgKzg0LDUzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkxCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTgJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJMQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQk4CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCTEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkweDEwMDAwMDAwCS8qIDEgR0J5dGVzIC0gaW5pdGRyYW0oKSB3aWxsCSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDEwMDAwMDAwCS8qIDEgR0J5dGVzIC0gaW5pdGRyYW0oKSB3aWxsCSAgICovCiAJCQkJCSAgICAgLyogcmV0dXJuIHJlYWwgdmFsdWUuCQkqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAotI3VuZGVmCUNGR19SQU1CT09UCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJICAgICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfREFUQV9TSVpFCTEyOAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfSU5JVF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19JTklUX0RBVEFfU0laRSkKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkgMjU2CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkgMjU2CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogCiAjaWYgZGVmaW5lZCAoQ09ORklHX01QQzgyNDApCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweEZGRTAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCSAgICAoMiAqIDEwMjQgKiAxMDI0KQkvKiBvbmJvYXJkIDJNQnl0ZSBmbGFzaAkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweEZGRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkgICAgKDIgKiAxMDI0ICogMTAyNCkJLyogb25ib2FyZCAyTUJ5dGUgZmxhc2gJICAgICovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfTVBDODI0NSkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJICAgIDB4RkZDMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJICAgICg0ICogMTAyNCAqIDEwMjQpCS8qIG9uYm9hcmQgNE1CeXRlIGZsYXNoCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4RkZDMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCSAgICAoNCAqIDEwMjQgKiAxMDI0KQkvKiBvbmJvYXJkIDRNQnl0ZSBmbGFzaAkgICAgKi8KICNlbHNlCiAjZXJyb3IgU3BlY2lmaWMgdHlwZSBvZiBNUEM4MjR4IG11c3QgYmUgZGVmaW5lZCAoaS5lLiBDT05GSUdfTVBDODI0MCkKICNlbmRpZgpAQCAtMTQxLDI3ICsxNDEsMjcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweEZGRkMwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkwCS8qIHN0YXJ0aW5nIHJpZ2h0IGF0IHRoZSBiZWdpbm5pbmcgICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkxCS8qIHVzZSByZWFsIG1lbW9yeSB0ZXN0CSAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkxCS8qIHVzZSByZWFsIG1lbW9yeSB0ZXN0CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwNDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAyMDAwMDAwCS8qIDAgLi4uIDMyIE1CIGluIERSQU0JICAgICovCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkJMHhGQzAwMDAwMAogCi0vKiAjZGVmaW5lIENGR19JU0FfTUVNCQkgICAweEZEMDAwMDAwICovCi0jZGVmaW5lIENGR19JU0FfSU8JCTB4RkUwMDAwMDAKKy8qICNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNCQkgICAweEZEMDAwMDAwICovCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPCQkweEZFMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCSAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIHBlciBmbGFzaCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2ggICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkwCiAKIApAQCAtMTY5LDEzICsxNjksMTMgQEAKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlcgkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMAkvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTAJLyogdGhlcmUgaXMgb25seSBvbmUgYmFuawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjAwLDIzICsyMDAsMjMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAkJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCTEKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMzg0MDAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKICNpZiAoQ09ORklHX0NPTlNfSU5ERVggPT0gMSkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkxODQzMjAwIC8qIENPTTEgb25seSAhCSovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTE4NDMyMDAgLyogQ09NMSBvbmx5ICEJKi8KICNlbHNlCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSyAoeyBleHRlcm4gdWxvbmcgZ2V0X2J1c19mcmVxICh1bG9uZyk7IGdldF9idXNfZnJlcSAoMCk7IH0pCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgKHsgZXh0ZXJuIHVsb25nIGdldF9idXNfZnJlcSAodWxvbmcpOyBnZXRfYnVzX2ZyZXEgKDApOyB9KQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0lTQV9JTyArIDB4M0Y4KQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfRVVNQl9BRERSICsgMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00zCShDRkdfRVVNQl9BRERSICsgMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19JU0FfSU8gKyAweDNGOCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMwkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ2MDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIHNlbGVjdCBpMmMgc3VwcG9ydCBjb25maWd1cmF0aW9uCkBAIC0yMjcsMTUgKzIyNywxNSBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBUbyBlbmFibGUgSTJDIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKICAqIChhZGRyZXNzIG1hcHBpbmdzLCByZWdpc3RlciBpbml0aWFsIHZhbHVlcywgZXRjLikKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMzMzMzMzCS8qIGV4dGVybmFsIGZyZXF1ZW5jeSB0byBwbGwJKi8KICNkZWZpbmUgQ09ORklHX1BMTF9QQ0lfVE9fTUVNX01VTFRJUExJRVIgIDIJLyogZm9yIE1QQzgyNDAgb25seQkJKi8KQEAgLTI0NSw3NiArMjQ1LDc2IEBACiAjaWYgZGVmaW5lZCAoQ09ORklHX01QQzgyNDUpCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBQTUNSMi4JCQkJCQkJKi8KICNpZiBkZWZpbmVkIChDT05GSUdfMTMzTUhaX0RSQU0pCi0jZGVmaW5lIENGR19ETExfRVhURU5ECQkweDgwCS8qIHVzZSBETEwgZXh0ZW5kZWQgcmFuZ2UgLSAxMzNNSHogb25seSAqLwotI2RlZmluZSBDRkdfUENJX0hPTERfREVMCTB4MjAJLyogZGVsYXkgYW5kIGhvbGQgdGltaW5nIC0gMTMzTUh6IG9ubHkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ETExfRVhURU5ECQkweDgwCS8qIHVzZSBETEwgZXh0ZW5kZWQgcmFuZ2UgLSAxMzNNSHogb25seSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9IT0xEX0RFTAkweDIwCS8qIGRlbGF5IGFuZCBob2xkIHRpbWluZyAtIDEzM01IeiBvbmx5CSovCiAjZW5kaWYKIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUlPQ1IxLgkJCQkJCQkqLwogI2lmICFkZWZpbmVkIChDT05GSUdfMTMzTUhaX0RSQU0pCi0jZGVmaW5lIENGR19ETExfTUFYX0RFTEFZCTB4MDQJLyogIGxvbmdlciBETEwgZGVsYXkgbGluZSAtIDY2TUh6IG9ubHkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ETExfTUFYX0RFTEFZCTB4MDQJLyogIGxvbmdlciBETEwgZGVsYXkgbGluZSAtIDY2TUh6IG9ubHkJKi8KICNlbmRpZgogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUlPQ1IyLgkJCQkJCQkqLwotI2RlZmluZSBDRkdfU0RSQU1fRFNDRAkJMHgyMAkvKiBTRFJBTSBkYXRhIGluIHNhbXBsZSBjbG9jayBkZWxheQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RTQ0QJCTB4MjAJLyogU0RSQU0gZGF0YSBpbiBzYW1wbGUgY2xvY2sgZGVsYXkJKi8KIAkJCQkJLyoJLSBub3RlIGJvdHRvbSAzIGJpdHMgTVVTVCBiZSAwCSovCiAjZW5kaWYKIAogLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuCQkJCQkJCSovCi0jZGVmaW5lIENGR19ST01OQUwJCTcJLypyb20vZmxhc2ggbmV4dCBhY2Nlc3MgdGltZQkJKi8KLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgICAgMTEJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkJNwkvKnJvbS9mbGFzaCBuZXh0IGFjY2VzcyB0aW1lCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkgICAgICAgMTEJLypyb20vZmxhc2ggYWNjZXNzIHRpbWUJCQkqLwogCiAvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMi4JCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX1RTV0FJVAkJMHg1CS8qIFRyYW5zYWN0aW9uIFN0YXJ0IFdhaXQgU3RhdGVzIHRpbWVyCSovCisjZGVmaW5lIENPTkZJR19TWVNfVFNXQUlUCQkweDUJLyogVHJhbnNhY3Rpb24gU3RhcnQgV2FpdCBTdGF0ZXMgdGltZXIJKi8KICNpZiBkZWZpbmVkIChDT05GSUdfMTMzTUhaX0RSQU0pCi0jZGVmaW5lIENGR19SRUZJTlQJCTEzMDAJLyogbm8gb2YgY2xvY2sgY3ljbGVzIGJldHdlZW4gQ0JSCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCQkxMzAwCS8qIG5vIG9mIGNsb2NrIGN5Y2xlcyBiZXR3ZWVuIENCUgkqLwogI2Vsc2UgIC8qIHJlZnJlc2ggY3ljbGVzICovCi0jZGVmaW5lIENGR19SRUZJTlQJCTc1MAorI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkJNzUwCiAjZW5kaWYKIAogLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgkJKi8KICNpZiBkZWZpbmVkIChDT05GSUdfMTMzTUhaX0RSQU0pCi0jZGVmaW5lIENGR19CU1RPUFJFCQkxMDIzCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkJMTAyMwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJCTI1MAorI2RlZmluZSBDT05GSUdfU1lTX0JTVE9QUkUJCTI1MAogI2VuZGlmCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLgkJCQkJCQkqLwogLyogdGhlIGZvbGxvd2luZyBhcmUgZm9yIFNEUkFNIG9ubHkJCQkJCQkqLwogCiAjaWYgZGVmaW5lZCAoQ09ORklHXzEzM01IWl9EUkFNKQotI2RlZmluZSBDRkdfUkVGUkVDCQk5CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQk5CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCiAjZWxzZQotI2RlZmluZSBDRkdfUkVGUkVDCQk1CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQk1CS8qIFJlZnJlc2ggdG8gYWN0aXZhdGUgaW50ZXJ2YWwJCSovCiAjZW5kaWYKICNpZiBkZWZpbmVkIChDT05GSUdfTVBDODI0MCkKLSNkZWZpbmUgQ0ZHX1JETEFUCQkyCS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCQkyCS8qIGRhdGEgbGF0ZW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLwogI2VuZGlmCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgkqLwogI2lmIGRlZmluZWQgKENPTkZJR18xMzNNSFpfRFJBTSkKLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCQkzCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJCTcJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RPUlcJCTUJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkJMwkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkJNwkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTUJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCiAjZWxzZQogI2lmIDAKLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCQkyCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJCTMJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RPUlcJCTMJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTIJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkJMgkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkJMwkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTMJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVAkyCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCQkyCS8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJCTUJLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCi0jZGVmaW5lIENGR19BQ1RPUlcJCTMJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTMJLyogU0RNT0RFIENBUyBsYXRlbmN5CQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkJMgkvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkJNQkvKiBBY3RpdmF0ZSB0byBQcmVjaGFyZ2UgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RPUlcJCTMJLyogQWN0aXZhdGUgdG8gUi9XCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQ0FTX0xBVAkzCS8qIFNETU9ERSBDQVMgbGF0ZW5jeQkJCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCQkwCS8qIFNETU9ERSB3cmFwIHR5cGUJCQkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0JVUlNUTEVOCTIJLyogU0RNT0RFIEJ1cnN0IGxlbmd0aCAyPTQsIDM9OAkJKi8KLSNkZWZpbmUgQ0ZHX1JFR0RJTU0JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkJMAkvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfQlVSU1RMRU4JMgkvKiBTRE1PREUgQnVyc3QgbGVuZ3RoIDI9NCwgMz04CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JCTAKICNpZiBkZWZpbmVkIChDT05GSUdfTVBDODI0MCkKLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAwCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfTVBDODI0NSkKLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUiAgIDEKLSNkZWZpbmUgQ0ZHX0VYVFJPTQkJICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUk9NCQkgICAgMAogI2Vsc2UKICNlcnJvciBTcGVjaWZpYyB0eXBlIG9mIE1QQzgyNHggbXVzdCBiZSBkZWZpbmVkIChpLmUuIENPTkZJR19NUEM4MjQwKQogI2VuZGlmCkBAIC0zMjcsNTEgKzMyNyw1MSBAQAogICogYml0cyB3aWxsIGJlIHNldCB0byAweDAwMDAwIGZvciBhIHN0YXJ0IGFkZHJlc3MsIG9yIDB4ZmZmZmYgZm9yIGFuCiAgKiBlbmQgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECQkoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUJMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJCTB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkJMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkJKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCQkweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECQkweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWVtb3J5IGJhbmsgZW5hYmxlIGJpdG1hc2ssIHNwZWNpZnlpbmcgd2hpY2ggb2YgdGhlIGJhbmtzIGRlZmluZWQgYWJvdmUKICBhcmUgYWN0dWFsbHkgcHJlc2VudC4gTVNCIGlzIGZvciBiYW5rICM3LCBMU0IgaXMgZm9yIGJhbmsgIzAuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JBTktfRU5BQkxFCQkweDAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOS19FTkFCTEUJCTB4MDEKIAogI2lmIGRlZmluZWQgKENPTkZJR19NUEM4MjQwKQotI2RlZmluZSBDRkdfT0RDUgkJMHhERgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkJMHhERgkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMsCSovCiAJCQkJCS8qIHNlZSA4MjQwIGJvb2sgZm9yIGJpdCBkZWZpbml0aW9ucwkqLwogI2VsaWYgZGVmaW5lZCAoQ09ORklHX01QQzgyNDUpCiAjaWYgZGVmaW5lZCAoQ09ORklHXzEzM01IWl9EUkFNKQotI2RlZmluZSBDRkdfT0RDUgkJMHhGRQkvKiBjb25maWd1cmVzIGxpbmUgZHJpdmVyIGltcGVkYW5jZXMgLSAxMzNNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCQkweEZFCS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcyAtIDEzM01IegkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX09EQ1IJCTB4REUJLyogY29uZmlndXJlcyBsaW5lIGRyaXZlciBpbXBlZGFuY2VzIC0gNjZNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCQkweERFCS8qIGNvbmZpZ3VyZXMgbGluZSBkcml2ZXIgaW1wZWRhbmNlcyAtIDY2TUh6CSovCiAjZW5kaWYKICNlbHNlCiAjZXJyb3IgU3BlY2lmaWMgdHlwZSBvZiBNUEM4MjR4IG11c3QgYmUgZGVmaW5lZCAoaS5lLiBDT05GSUdfTVBDODI0MCkKICNlbmRpZgogCi0jZGVmaW5lIENGR19QR01BWAkJMHgzMgkvKiBob3cgbG9uZyB0aGUgODI0MCByZXRhaW5zIHRoZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BHTUFYCQkweDMyCS8qIGhvdyBsb25nIHRoZSA4MjQwIHJldGFpbnMgdGhlCSovCiAJCQkJCS8qIGN1cnJlbnRseSBhY2Nlc3NlZCBwYWdlIGluIG1lbW9yeQkqLwogCQkJCQkvKiBzZWUgODI0MCBib29rIGZvciBkZXRhaWxzCQkqLwogCkBAIC0zNzksMzcgKzM3OSwzNyBAQAogICogQmxvY2sgQWRkcmVzcyBUcmFuc2xhdGlvbiAoQkFUKSByZWdpc3RlciBzZXR0aW5ncy4KICAqLwogLyogU0RSQU0gMCAtIDI1Nk1CICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIHN0YWNrIGluIERDQUNIRSBAIDFHQiAobm8gYmFja2luZyBtZW0pICovCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVQkoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogLyogRmxhc2gsIGNvbmZpZyBhZGRycywgZXRjICovCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAKQEAgLTQzMiwxNSArNDMyLDE1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmCiAgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJICAgIDEJLyogbWF4LiAyIElERSBidXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UgICAoQ0ZHX0lERV9NQVhCVVMqMSkJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJICAgIDEJLyogbWF4LiAyIElERSBidXNzZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFICAgKENPTkZJR19TWVNfSURFX01BWEJVUyoxKQkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIgICBDRkdfSVNBX0lPCS8qIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUIDB4MDFGMAkvKiBpZGUwIG9mZnN0ZSAqLwotI2RlZmluZSBDRkdfQVRBX0lERTFfT0ZGU0VUIDB4MDE3MAkvKiBpZGUxIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUIDAJLyogZGF0YSByZWcgb2Zmc2V0ICAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQgIDAJLyogcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQgIDB4MjAwCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICAgQ09ORklHX1NZU19JU0FfSU8JLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUIDB4MDFGMAkvKiBpZGUwIG9mZnN0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUxX09GRlNFVCAweDAxNzAJLyogaWRlMSBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQgMAkvKiBkYXRhIHJlZyBvZmZzZXQgICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgIDAJLyogcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUICAweDIwMAkvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCiAKICNkZWZpbmUgQ09ORklHX0FUQVBJCiAKQEAgLTQ1OSw2ICs0NTksNiBAQAogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9lYm9ueS5oIGIvaW5jbHVkZS9jb25maWdzL2Vib255LmgKaW5kZXggMmM5YzljMS4uMTBmNDI1ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2Vib255LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2Vib255LmgKQEAgLTU4LDMxICs1OCwzMSBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCSAgICAvKiBfbXVzdF8gYmUgMAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJICAgIDB4ZmY4MDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICQkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJICAgIDB4ODAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UgMHhlMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KLSNkZWZpbmUgQ0ZHX0lTUkFNX0JBU0UJICAgIDB4YzAwMDAwMDAJICAgIC8qIGludGVybmFsIFNSQU0JCSovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkgICAgMHhkMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCSAgICAvKiBfbXVzdF8gYmUgMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweGZmODAwMDAwCSAgICAvKiBzdGFydCBvZiBGTEFTSAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkgICAgMHg4MDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgMHhlMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCSAgICAweGMwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBTUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCSAgICAweGQwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLwogCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQotI2RlZmluZSBDRkdfRlBHQV9CQVNFCSAgICAoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDgzMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFCSAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MzAwMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBpbnRlcm5hbCBTUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICBDRkdfSVNSQU1fQkFTRSAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgIDB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgIDEyOAkJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgQ09ORklHX1NZU19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgIDB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAxMjgJCSAgICAvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCSgxODQzMjAwICogNikJLyogRXh0IGNsayBAIDExLjA1OSBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSgxODQzMjAwICogNikJLyogRXh0IGNsayBAIDExLjA1OSBNSHogKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0vUlRDCkBAIC05MSwzNiArOTEsMzYgQEAKICAqIFRoZSBEUzE3NDMgY29kZSBhc3N1bWVzIHRoaXMgY29uZGl0aW9uIChpLmUuIC0tIGl0IGFzc3VtZXMgdGhlIGJhc2UKICAqIGFkZHJlc3MgZm9yIHRoZSBSVEMgcmVnaXN0ZXJzIGlzOgogICoKLSAqCUNGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fU0laRQorICoJQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1NJWkUKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkgICAgKDB4MjAwMCAtIDgpICAgIC8qIE5WUkFNIHNpemUoOGspLSBSVEMgcmVncyAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJICAgICgweDIwMDAgLSA4KSAgICAvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzE3NHgJMQkJICAgIC8qIERTMTc0MyBSVEMJCSovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCSAgICAvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQorCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmIC8qIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkzCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzIJCSAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTMyCQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJhYWEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgY2hhcgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwICAgICAgICAgMHg1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEgICAgICAgICAweDJhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIGNoYXIKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTEzOCwxMyArMTM4LDEzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKIC8qCiAgKiBEZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcwpAQCAtMTc5LDEyICsxNzksMTIgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCSAgICAgICAgICAgIC8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCSAgICAgICAgLyogZG8gcGNpIHBsdWctYW5kLXBsYXkgICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVyAgICAgICAgICAgIC8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwICAvKiBQQ0lhZGRyIG1hcHBlZCB0byBDRkdfUENJX01FTUJBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgMHg4MDAwMDAwMCAgLyogUENJYWRkciBtYXBwZWQgdG8gQ09ORklHX1NZU19QQ0lfTUVNQkFTRSAqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAkgICAgICAgICAgICAvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCSAgICAgICAgICAgIC8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUgIC8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlICAvKiBXaGF0ZXZlciAqLwogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2VwNzMxMi5oIGIvaW5jbHVkZS9jb25maWdzL2VwNzMxMi5oCmluZGV4IDYwYzg3YmQuLjA1ODE4NDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9lcDczMTIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZXA3MzEyLmgKQEAgLTQxLDggKzQxLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtOTcsMjQgKzk3LDI0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIkVQNzMxMiAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiRVA3MzEyICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4YzA1MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YzA1MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkyMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAyIGtIeiAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMjAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMiBrSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTM3LDE3ICsxMzcsMTcgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwIC8qIDE2IE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIDB4MjAwMDApCS8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZXA4MjQ4LmggYi9pbmNsdWRlL2NvbmZpZ3MvZXA4MjQ4LmgKaW5kZXggZDhmMWFhZi4uZjdiM2ZkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2VwODI0OC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9lcDgyNDguaApAQCAtNDgsNyArNDgsNyBAQAogI3VuZGVmCUNPTkZJR19DT05TX05PTkUJCS8qIEl0J3Mgbm90IG9uIGV4dGVybmFsIFVBUlQgKi8KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQkvKiBTTUMxIGlzIHVzZWQgZm9yIGNvbnNvbGUgICovCiAKLSNkZWZpbmUgQ0ZHX0JDU1IJCTB4RkEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkweEZBMDAwMDAwCiAKIC8qCiAgKiBTZWxlY3QgZXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtNzYsMTAgKzc2LDEwIEBACiAgKiAtIEJEcy9idWZmZXJzIG9uIDYweCBidXMKICAqIC0gRnVsbCBkdXBsZXgKICAqLwotI2RlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzEgfCBDTVhGQ1JfUkYxQ1NfTVNLIHwgQ01YRkNSX1RGMUNTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzEwIHwgQ01YRkNSX1RGMUNTX0NMSzExKQotI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzEgfCBDTVhGQ1JfUkYxQ1NfTVNLIHwgQ01YRkNSX1RGMUNTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjFDU19DTEsxMCB8IENNWEZDUl9URjFDU19DTEsxMSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbGlmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMikKIApAQCAtODgsMTAgKzg4LDEwIEBACiAgKiAtIEJEcy9idWZmZXJzIG9uIDYweCBidXMKICAqIC0gRnVsbCBkdXBsZXgKICAqLwotI2RlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotI2RlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKKyNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMTAxLDE1ICsxMDEsMTUgQEAKICAqIEdQSU8gcGlucyB1c2VkIGZvciBiaXQtYmFuZ2VkIE1JSSBjb21tdW5pY2F0aW9ucwogICovCiAjZGVmaW5lIE1ESU9fUE9SVAkJMAkvKiBOb3QgdXNlZCAtIGltcGxlbWVudGVkIGluIEJDU1IgKi8KLSNkZWZpbmUgTURJT19BQ1RJVkUJCSgqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSAmPSAweEZCKQotI2RlZmluZSBNRElPX1RSSVNUQVRFCQkoKih2dV9jaGFyICopKENGR19CQ1NSICsgOCkgfD0gMHgwNCkKLSNkZWZpbmUgTURJT19SRUFECQkoKih2dV9jaGFyICopKENGR19CQ1NSICsgOCkgJiAxKQorI2RlZmluZSBNRElPX0FDVElWRQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSAmPSAweEZCKQorI2RlZmluZSBNRElPX1RSSVNUQVRFCQkoKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpIHw9IDB4MDQpCisjZGVmaW5lIE1ESU9fUkVBRAkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSAmIDEpCiAKLSNkZWZpbmUgTURJTyhiaXQpCQlpZihiaXQpICoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpIHw9IDB4MDE7IFwKLQkJCQllbHNlCSoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpICY9IDB4RkUKKyNkZWZpbmUgTURJTyhiaXQpCQlpZihiaXQpICoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSB8PSAweDAxOyBcCisJCQkJZWxzZQkqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgJj0gMHhGRQogCi0jZGVmaW5lIE1EQyhiaXQpCQlpZihiaXQpICoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpIHw9IDB4MDI7IFwKLQkJCQllbHNlCSoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpICY9IDB4RkQKKyNkZWZpbmUgTURDKGJpdCkJCWlmKGJpdCkgKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpIHw9IDB4MDI7IFwKKwkJCQllbHNlCSoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSAmPSAweEZECiAKICNkZWZpbmUgTUlJREVMQVkJCXVkZWxheSgxKQogCkBAIC0xNjIsMTI1ICsxNjIsMTI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGODAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lCUNGR19ESVJFQ1RfRkxBU0hfVEZUUAorI2RlZmluZQlDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSkZGUzIpCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LCTAKLSNkZWZpbmUgQ0ZHX0pGRlMyX05VTV9CQU5LUwlDRkdfTUFYX0ZMQVNIX0JBTktTCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9TRUNUT1IgIDAKLSNkZWZpbmUgQ0ZHX0pGRlMyX0xBU1RfU0VDVE9SICAgNjIKLSNkZWZpbmUgQ0ZHX0pGRlMyX1NPUlRfRlJBR01FTlRTCi0jZGVmaW5lIENGR19KRkZTX0NVU1RPTV9QQVJUCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSwkwCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfU0VDVE9SICAwCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTEFTVF9TRUNUT1IgICA2MgorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX1NPUlRfRlJBR01FTlRTCisjZGVmaW5lIENPTkZJR19TWVNfSkZGU19DVVNUT01fUEFSVAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfSTJDKQogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogVG8gZW5hYmxlIEkyQyBzdXBwb3J0CSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQJCQkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCS8qIEkyQyBzbGF2ZSBhZGRyZXNzCQkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NktCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2S0IgZm9yIE1vbml0b3IgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2VuZGlmIC8qIENPTkZJR19FTlZfSVNfSU5fRkxBU0ggKi8KIAotI2RlZmluZSBDRkdfREVGQVVMVF9JTU1SCTB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX0lNTVIJMHgwMDAxMDAwMAogCi0jZGVmaW5lIENGR19JTU1SCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qIEhhcmQgcmVzZXQgY29uZmlndXJhdGlvbiB3b3JkICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJMHgwQzQwMDI1QSAvKiBOb3QgdXNlZCAtIHByb3ZpZGVkIGJ5IEZQR0EgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJMHgwQzQwMDI1QSAvKiBOb3QgdXNlZCAtIHByb3ZpZGVkIGJ5IEZQR0EgKi8KIC8qIE5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QgICAgICAgICAgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJMAogCi0jZGVmaW5lIENGR19TSVVNQ1IJCTB4MDEyNDAyMDAKLSNkZWZpbmUgQ0ZHX1NZUENSCQkweEZGRkYwNjgzCi0jZGVmaW5lIENGR19CQ1IJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TQ0NSCQlTQ0NSX0RGQlJHMDEKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCTB4MDEyNDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJMHhGRkZGMDY4MworI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQlTQ0NSX0RGQlJHMDEKIAotI2RlZmluZSBDRkdfUk1SCQkJUk1SX0NTUkUKLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKLSNkZWZpbmUgQ0ZHX1BJU0NSCQkoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKLSNkZWZpbmUgQ0ZHX1JDQ1IJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCQlSTVJfQ1NSRQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkJMAogCi0jZGVmaW5lIENGR19NUFRQUgkJMHgxMzAwCi0jZGVmaW5lIENGR19QU0RNUgkJMHg4MjY3MjUyMgotI2RlZmluZSBDRkdfUFNSVAkJMHg0QgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCQkweDEzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkJMHg4MjY3MjUyMgorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJCTB4NEIKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQlIJCShDRkdfU0RSQU1fQkFTRSB8IDB4MDAwMDE4NDEpCi0jZGVmaW5lIENGR19TRFJBTV9PUgkJMHhGRjAwMzBDMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IDB4MDAwMDE4NDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fT1IJCTB4RkYwMDMwQzAKIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwgMHgwMDAwMTgwMSkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4RkY4MDA4QzIKLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCShDRkdfQkNTUiB8IDB4MDAwMDA4MDEpCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweEZGRjAwODY0CisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4MDAwMDE4MDEpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhGRjgwMDhDMgorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCShDT05GSUdfU1lTX0JDU1IgfCAweDAwMDAwODAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4RkZGMDA4NjQKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweEMwMDAwMDAwCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZXA4MjYwLmggYi9pbmNsdWRlL2NvbmZpZ3MvZXA4MjYwLmgKaW5kZXggOWE2MDJjMy4uZDQ5ZDAyZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2VwODI2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9lcDgyNjAuaApAQCAtMzMsNyArMzMsNyBAQAogICoJLSAxNk0gRmxhc2ggKDQgeCBBTTI5REwzMjNEQjkwV0RJKQogICoJLSAxMjhrIE5WUkFNIHdpdGggUlRDCiAgKgotICogIkVQODI2MCBIMiwgVi4xLjMiIChDRkdfRVA4MjYwX0gyKQorICogIkVQODI2MCBIMiwgVi4xLjMiIChDT05GSUdfU1lTX0VQODI2MF9IMikKICAqCS0gMzAwTUh6LzEzM01Iei82Nk1IegogICoJLSA2NE0gNjB4IEJ1cyBTRFJBTQogICoJLSAzMk0gTG9jYWwgQnVzIFNEUkFNCkBAIC00NSw4ICs0NSw4IEBACiAjZGVmaW5lIF9fQ09ORklHX0gKIAogLyogRGVmaW5lIHRoaXMgdG8gZW5hYmxlIHN1cHBvcnQgdGhlIEVQODI2MCBIMiB2ZXJzaW9uICovCi0jZGVmaW5lIENGR19FUDgyNjBfSDIJMQotLyogI3VuZGVmIENGR19FUDgyNjBfSDIgICovCisjZGVmaW5lIENPTkZJR19TWVNfRVA4MjYwX0gyCTEKKy8qICN1bmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMiAgKi8KIAogI2RlZmluZSBDT05GSUdfQ1BNMgkJMQkvKiBIYXMgYSBDUE0yICovCiAKQEAgLTc1LDEwICs3NSwxMCBAQAogICogMHg2CSAgICAgMHgxCSA2NgkxMzMgICAgMjY2CiAgKiAweDYJICAgICAweDIJIDY2CTEzMyAgICAzMDAKICAqLwotI2lmZGVmIENGR19FUDgyNjBfSDIKLSNkZWZpbmUgQ0ZHX1NCQ19NT0RDS19IICAoSFJDV19NT0RDS19IMDExMCkKKyNpZmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMgorI2RlZmluZSBDT05GSUdfU1lTX1NCQ19NT0RDS19IICAoSFJDV19NT0RDS19IMDExMCkKICNlbHNlCi0jZGVmaW5lIENGR19TQkNfTU9EQ0tfSCAgKEhSQ1dfTU9EQ0tfSDAxMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0JDX01PRENLX0ggIChIUkNXX01PRENLX0gwMTEwKQogI2VuZGlmCiAKIC8qIERlZmluZSB0aGlzIGlmIHlvdSB3YW50IHRvIGJvb3QgZnJvbSAweDAwMDAwMTAwLiBJZiB5b3UgZG9uJ3QgZGVmaW5lCkBAIC04NywyNiArODcsMjYgQEAKICAqIHdheSB0byBkbyB0aGF0IGlzIHRvIHByb2dyYW0gdGhlIGJvb3Rsb2FkZXIgYXQgYm90aCBhZGRyZXNzZXMuCiAgKiBJdCBpcyBzdWdnZXN0ZWQgdGhhdCB5b3UganVzdCBsZXQgVS1Cb290IGxpdmUgYXQgMHgwMDAwMDAwMC4KICAqLwotLyogI2RlZmluZSBDRkdfU0JDX0JPT1RfTE9XIDEgKi8JLyogb25seSBmb3IgSFJDVyAqLwotLyogI3VuZGVmIENGR19TQkNfQk9PVF9MT1cgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19TQkNfQk9PVF9MT1cgMSAqLwkvKiBvbmx5IGZvciBIUkNXICovCisvKiAjdW5kZWYgQ09ORklHX1NZU19TQkNfQk9PVF9MT1cgKi8KIAogLyogVGhlIHJlc2V0IGNvbW1hbmQgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCBpZiB0aGUgcmVzZXQgYWRkcmVzcyBkb2VzCiAgKiBub3QgcG9pbnQgdG8gdGhlIGNvcnJlY3QgYWRkcmVzcy4KICAqLwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgbWFpbiBGTEFTSCBiZSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1CeXRlcyk/IFRoaXMgbXVzdCBjb250YWluIFRFWFRfQkFTRSBmcm9tIGJvYXJkL2VwODI2MC9jb25maWcubWsKICAqIFRoZSBtYWluIEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQgdG8gKkNTMC4gVS1Cb290IGV4cGVjdHMKICAqIHRoaXMgdG8gYmUgdGhlIFNJTU0uCiAgKi8KLSNpZmRlZiBDRkdfRVA4MjYwX0gyCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRSAweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRSAzMgorI2lmZGVmIENPTkZJR19TWVNfRVA4MjYwX0gyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UgMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFIDMyCiAjZWxzZQotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgMTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRSAweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgMTYKICNlbmRpZgogCiAvKiBXaGF0IHNob3VsZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBzZWNvbmRhcnkgRkxBU0ggYmUgYW5kIGhvdyBiaWcKQEAgLTExNCw0MSArMTE0LDQxIEBACiAgKiB0byAqQ1M2LiBVLUJvb3QgZXhwZWN0cyB0aGlzIHRvIGJlIHRoZSBvbiBib2FyZCBGTEFTSC4gSWYgeW91IGRvbid0CiAgKiB3YW50IGl0IGVuYWJsZWQsIGRvbid0IGRlZmluZSB0aGVzZSBjb25zdGFudHMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFIDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9TSVpFIDAKLSN1bmRlZiBDRkdfRkxBU0gxX0JBU0UKLSN1bmRlZiBDRkdfRkxBU0gxX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRSAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX1NJWkUgMAorI3VuZGVmIENPTkZJR19TWVNfRkxBU0gxX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIMV9TSVpFCiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gRElNTSAoNjB4IGJ1cykgYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNYnl0ZXMpPwogKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMF9CQVNFIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TSVpFIDY0CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TSVpFIDY0CiAKLS8qIGRlZmluZSBDRkdfTFNEUkFNIGlmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGUgMzJNIFNEUkFNIG9uIHRoZQorLyogZGVmaW5lIENPTkZJR19TWVNfTFNEUkFNIGlmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGUgMzJNIFNEUkFNIG9uIHRoZQogICogbG9jYWwgYnVzICg4MjYwIGxvY2FsIGJ1cyBpcyBOT1QgY2FjaGVhYmxlISkKICovCi0vKiAjZGVmaW5lIENGR19MU0RSQU0gKi8KLSN1bmRlZiBDRkdfTFNEUkFNCisvKiAjZGVmaW5lIENPTkZJR19TWVNfTFNEUkFNICovCisjdW5kZWYgQ09ORklHX1NZU19MU0RSQU0KIAotI2lmZGVmIENGR19MU0RSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0xTRFJBTQogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiBTRFJBTSBESU1NIChsb2NhbCBidXMpIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTWJ5dGVzKT8KICovCi0gICNkZWZpbmUgQ0ZHX1NEUkFNMV9CQVNFIDB4MDQwMDAwMDAKLSAgI2RlZmluZSBDRkdfU0RSQU0xX1NJWkUgMzIKKyAgI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9CQVNFIDB4MDQwMDAwMDAKKyAgI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9TSVpFIDMyCiAjZWxzZQotICAjZGVmaW5lIENGR19TRFJBTTFfQkFTRSAwCi0gICNkZWZpbmUgQ0ZHX1NEUkFNMV9TSVpFIDAKLSAgI3VuZGVmIENGR19TRFJBTTFfQkFTRQotICAjdW5kZWYgQ0ZHX1NEUkFNMV9TSVpFCi0jZW5kaWYgLyogQ0ZHX0xTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX0JBU0UgMAorICAjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX1NJWkUgMAorICAjdW5kZWYgQ09ORklHX1NZU19TRFJBTTFfQkFTRQorICAjdW5kZWYgQ09ORklHX1NZU19TRFJBTTFfU0laRQorI2VuZGlmIC8qIENPTkZJR19TWVNfTFNEUkFNICovCiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgTlZSQU0gYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBCeXRlcykKICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSICAweEZBMDgwMDAwCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFICAgICAgICgxMjgqMTAyNCktMTYKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgIDB4RkEwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFICAgICAgICgxMjgqMTAyNCktMTYKIAogLyogVGhlIFJUQyBpcyBhIERhbGxhcyBEUzE1NTYKICAqLwpAQCAtMTU3LDggKzE1Nyw4IEBACiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBMRURzIGFuZCBzd2l0Y2ggUzA/CiAgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGVtIGVuYWJsZWQsIGRvbid0IGRlZmluZSB0aGlzLgogICovCi0jZGVmaW5lIENGR19MRURfQkFTRSAweDAwMDAwMDAwCi0jdW5kZWYgQ0ZHX0xFRF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0JBU0UgMHgwMDAwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfTEVEX0JBU0UKIAogLyoKICAqIHNlbGVjdCBzZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCkBAIC0xOTgsMjEgKzE5OCwyMSBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIGxvY2FsIEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgSGFsZiBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzN8Q01YRkNSX1JGM0NTX01TS3xDTVhGQ1JfVEYzQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGM0NTX0NMSzE1fENNWEZDUl9URjNDU19DTEsxNikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzN8Q01YRkNSX1JGM0NTX01TS3xDTVhGQ1JfVEYzQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCiAKIC8qCiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgbG9jYWwgQnVzIChzZWUgMjgtMTMpCiAgKi8KLSNpZmRlZiBDRkdfTFNEUkFNCi0gICNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTMKLSNlbHNlIC8qIENGR19MU0RSQU0gKi8KLSAgI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotI2VuZGlmIC8qIENGR19MU0RSQU0gKi8KKyNpZmRlZiBDT05GSUdfU1lTX0xTRFJBTQorICAjZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMworI2Vsc2UgLyogQ09ORklHX1NZU19MU0RSQU0gKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0xTRFJBTSAqLwogCiAvKiAtIEVuYWJsZSBIYWxmIER1cGxleCBpbiBGU01SICovCi0vKiAjIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKSAqLwotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkwCisvKiAjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCTAKIAogI2Vsc2UgLyogQ09ORklHX0VUSEVSX0lOREVYICovCiAjIGVycm9yICJvbiBFUDgyNjAgZXRoZXJuZXQgbXVzdCBiZSBGQ0MzIgpAQCAtMjI3LDggKzIyNyw4IEBACiAgKi8KICN1bmRlZiAgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KQEAgLTI1OCw3ICsyNTgsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCiAvKiBXaGF0IHNob3VsZCB0aGUgY29uc29sZSdzIGJhdWQgcmF0ZSBiZT8gKi8KLSNpZmRlZiBDRkdfRVA4MjYwX0gyCisjaWZkZWYgQ09ORklHX1NZU19FUDgyNjBfSDIKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFICAgICAgICAgOTYwMAogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFICAgICAgICAgMTE1MjAwCkBAIC0yNzQsMTAgKzI3NCwxMCBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZICAgICAgICAtMQogCiAvKiB1bmRlZiB0aGlzIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAgICAgICAgICI9PiAiCiAKIC8qIERlZmluZSB0aGlzIHZhcmlhYmxlIHRvIGVuYWJsZSB0aGUgImh1c2giIHNoZWxsIChmcm9tCiAgICBCdXN5Ym94KSBhcyBjb21tYW5kIGxpbmUgaW50ZXJwcmV0ZXIsIHRodXMgZW5hYmxpbmcKQEAgLTI4Nyw4ICsyODcsOCBAQAogICAgSWYgdW5kZWZpbmVkLCB5b3UgZ2V0IHRoZSBvbGQsIG11Y2ggc2ltcGxlciBiZWhhdmlvdXIKICAgIHdpdGggYSBzb21ld2hhdCBzbWFwcGVyIG1lbW9yeSBmb290cHJpbnQuCiAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAKIC8qCkBAIC0zMjcsMTEgKzMyNywxMSBAQAogI3VuZGVmIENPTkZJR19DTURfWElNRwogCiAvKiBXaGVyZSBkbyB0aGUgaW50ZXJuYWwgcmVnaXN0ZXJzIGxpdmU/ICovCi0jZGVmaW5lIENGR19JTU1SICAgICAgICAgICAgICAgMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9JTU1SICAgICAgIDB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SICAgICAgICAgICAgICAgMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUiAgICAgICAweDAwMDEwMDAwCiAKIC8qIFdoZXJlIGRvIHRoZSBvbiBib2FyZCByZWdpc3RlcnMgKENTNCkgbGl2ZT8gKi8KLSNkZWZpbmUgQ0ZHX1JFR1NfQkFTRSAgICAgICAgICAweEZBMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVHU19CQVNFICAgICAgICAgIDB4RkEwMDAwMDAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMzQ4LDM1ICszNDgsMzUgQEAKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDEwMjQgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAxMDI0ICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KICNlbHNlCi0jICBkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwogI2VuZGlmCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUgICAgICAgIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIAotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICA4ICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgOCAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KIAotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICBDRkdfQ0JTSVpFICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFICAgICAgQ09ORklHX1NZU19DQlNJWkUgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNpZmRlZiBDRkdfTFNEUkFNCi0gICNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgMHgwNDAwMDAwMCAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICovCi0gICNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgMHgwNjAwMDAwMCAgIC8qIDY0LTk2IE1CIGluIFNEUkFNICovCisjaWZkZWYgQ09ORklHX1NZU19MU0RSQU0KKyAgI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgMHgwNDAwMDAwMCAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICovCisgICNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgIDB4MDYwMDAwMDAgICAvKiA2NC05NiBNQiBpbiBTRFJBTSAqLwogI2Vsc2UKLSAgI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAweDAwMDAwMDAwICAgLyogbWVtdGVzdCB3b3JrcyBvbiAgKi8KLSAgI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAweDAyMDAwMDAwICAgLyogMC0zMiBNQiBpbiBTRFJBTSAqLwotI2VuZGlmIC8qIENGR19MU0RSQU0gKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgMHgwMDAwMDAwMCAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICovCisgICNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgIDB4MDIwMDAwMDAgICAvKiAwLTMyIE1CIGluIFNEUkFNICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MU0RSQU0gKi8KIAogI2RlZmluZQlDT05GSUdfQ0xPQ0tTX0lOX01IWgkxICAgICAgLyogY2xvY2tzIHBhc3NzZWQgdG8gTGludXggaW4gTUh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgMHgwMDEwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19URlRQX0xPQURBRERSIDB4MDAxMDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyBmb3IgbmV0d29yayBmaWxlIGRvd25sb2FkcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgICAgMHgwMDEwMDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9MT0FEQUREUiAweDAwMTAwMDAwICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgZm9yIG5ldHdvcmsgZmlsZSBkb3dubG9hZHMgKi8KIAotI2RlZmluZSBDRkdfSFogICAgICAgICAgICAxMDAwICAgICAgICAgLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haICAgICAgICAgICAgMTAwMCAgICAgICAgIC8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0zODQsMTE5ICszODQsMTE5IEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgIENGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRSAgICBDRkdfU0RSQU0wX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgIENPTkZJR19TWVNfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFICAgIENPTkZJR19TWVNfU0RSQU0wX0JBU0UKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX1NCQ19CT09UX0xPVykKLSMgIGRlZmluZSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19TQkNfQk9PVF9MT1cpCisjICBkZWZpbmUgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCiAjZWxzZQotIyAgZGVmaW5lICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKDB4MDAwMDAwMDApCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfU0JDX0JPT1RfTE9XKSAqLworIyAgZGVmaW5lICBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MgICgweDAwMDAwMDAwKQorI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19TQkNfQk9PVF9MT1cpICovCiAKLSNpZmRlZiBDRkdfRVA4MjYwX0gyCi0vKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ0ZHX0RFRkFVTFRfSU1NUiAqLwotI2RlZmluZSBDRkdfU0JDX0hSQ1dfSU1NUiAoICgoQ0ZHX0RFRkFVTFRfSU1NUiAmIDB4MTAwMDAwMDApID4+IDEwKSB8XAotCQkJICAgICgoQ0ZHX0RFRkFVTFRfSU1NUiAmIDB4MDEwMDAwMDApID4+IDcpICB8XAotCQkJICAgICgoQ0ZHX0RFRkFVTFRfSU1NUiAmIDB4MDAxMDAwMDApID4+IDQpICkKKyNpZmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMgorLyogZ2V0IHRoZSBIUkNXIElTQiBmaWVsZCBmcm9tIENPTkZJR19TWVNfREVGQVVMVF9JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfU0JDX0hSQ1dfSU1NUiAoICgoQ09ORklHX1NZU19ERUZBVUxUX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfFwKKwkJCSAgICAoKENPTkZJR19TWVNfREVGQVVMVF9JTU1SICYgMHgwMTAwMDAwMCkgPj4gNykgIHxcCisJCQkgICAgKChDT05GSUdfU1lTX0RFRkFVTFRfSU1NUiAmIDB4MDAxMDAwMDApID4+IDQpICkKIAotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgKEhSQ1dfRUJNICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIgKEhSQ1dfRUJNICAgICAgICAgICAgICAgIHxcCiAJCQkgSFJDV19MMkNQQzAxICAgICAgICAgICAgfFwKLQkJCSBDRkdfU0JDX0hSQ1dfSU1NUiAgICAgICB8XAorCQkJIENPTkZJR19TWVNfU0JDX0hSQ1dfSU1NUiAgICAgICB8XAogCQkJIEhSQ1dfQVBQQzEwICAgICAgICAgICAgIHxcCiAJCQkgSFJDV19DUzEwUEMwMSAgICAgICAgICAgfFwKLQkJCSBDRkdfU0JDX01PRENLX0gJIHxcCi0JCQkgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MpCisJCQkgQ09ORklHX1NZU19TQkNfTU9EQ0tfSAkgfFwKKwkJCSBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MpCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19NQVNURVIgMHgxMDQwMDI0NQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSIDB4MTA0MDAyNDUKICNlbmRpZgogCiAvKiBubyBzbGF2ZXMgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0IDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1IDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2IDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMSAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNCAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2IDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNyAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgICAgQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgICAgMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAgICAvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgICAgICAgQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgICAweDQwMDAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAgICAvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCi0gKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENGR19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4KKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENPTkZJR19TWVNfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAgICAgICBURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgICAgICAgVEVYVF9CQVNFCiAKIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4gICAgICAoMjU2IDw8IDEwKSAgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTiAgICAgICAoMTI4IDw8IDEwKSAgICAgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOICAgICAgKDI1NiA8PCAxMCkgICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgICgxMjggPDwgMTApICAgICAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1ogICAgICAgICg4IDw8IDIwKSAgICAgICAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICAoOCA8PCAyMCkgICAgICAgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgIDEgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAqLwotI2lmZGVmIENGR19FUDgyNjBfSDIKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgIDEyOCAgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAxICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgIDEyOCAgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICA3MSAgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICA3MSAgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0VQODI2MF9IMgotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVCAgMjQwMDAwICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICA1MDAgICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KKyNpZmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgIDI0MDAwMCAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQgIDUwMCAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgIDgwMDAgICAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVCAgMSAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCAgODAwMCAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgMSAgICAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgICovCiAjZW5kaWYKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKICMgIGRlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICAxCiAKICMgIGlmZGVmIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QKLSMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFICAweDQwMDAwCiAjICBlbHNlCi0jICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0laRSAgICAgICAweDEwMDAgIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRSAgMHgxMDAwMCAvKiBzZWUgUkVBRE1FIC0gZW52IHNlY3QgcmVhbCBzaXplICovCiAjICBlbmRpZiAvKiBDT05GSUdfRU5WX0lOX09XTl9TRUNUICovCiAjZWxzZQogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gIDEKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFICAgICAgICAgMHgyMDAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFICAgICAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgICAgIDMyICAgICAgLyogRm9yIE1QQzgyNjAgQ1BVICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUICAgICA1ICAgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUICAgICA1ICAgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTUwOSwzOCArNTA5LDM4IEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUICAgKEhJRDBfSUNFICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgIChISUQwX0lDRSAgfFwKIAkJCSBISUQwX0RDRSAgfFwKIAkJCSBISUQwX0lDRkkgfFwKIAkJCSBISUQwX0RDSSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSkKLSNpZmRlZiBDRkdfTFNEUkFNCisjaWZkZWYgQ09ORklHX1NZU19MU0RSQU0KIC8qIDgyNjAgbG9jYWwgYnVzIGlzIE5PVCBjYWNoZWFibGUgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwgICgvKkhJRDBfSUNFICB8Ki9cCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgKC8qSElEMF9JQ0UgIHwqL1wKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSAgfFwKIAkJCSBISUQwX0VNQ1ApCi0jZWxzZSAvKiAhQ0ZHX0xTRFJBTSAqLwotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgKEhJRDBfSUNFICB8XAorI2Vsc2UgLyogIUNPTkZJR19TWVNfTFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTCAgKEhJRDBfSUNFICB8XAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFICB8XAogCQkJIEhJRDBfRU1DUCkKLSNlbmRpZiAvKiBDRkdfTFNEUkFNICovCisjZW5kaWYgLyogQ09ORklHX1NZU19MU0RSQU0gKi8KIAotI2RlZmluZSBDRkdfSElEMiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STVIgICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SICAgICAgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSICAgICAgICAgKEJDUl9FQk0gICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JDUiAgICAgICAgIChCQ1JfRUJNICAgfFwKIAkJCSBCQ1JfUExEUCAgfFwKIAkJCSBCQ1JfRUFWICAgfFwKIAkJCSBCQ1JfTlBRTTApCkBAIC01NDksNyArNTQ5LDcgQEAKICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IgICAgICAoU0lVTUNSX0wyQ1BDMDEgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgICAgICAoU0lVTUNSX0wyQ1BDMDEgfFwKIAkJCSBTSVVNQ1JfQVBQQzEwICB8XAogCQkJIFNJVU1DUl9DUzEwUEMwMSkKIApAQCAtNTU5LDI1ICs1NTksMjUgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KLSNpZmRlZiBDRkdfRVA4MjYwX0gyCisjaWZkZWYgQ09ORklHX1NZU19FUDgyNjBfSDIKIC8qIFRCRDogRmluZCBvdXQgd2h5IHNldHRpbmcgdGhlIEJNVCB0byAweGZmIGNhdXNlcyB0aGUgRkNDIHRvCiAgKiBnZW5lcmF0ZSBUWCBidWZmZXIgdW5kZXJydW4gZXJyb3JzIGZvciBsYXJnZSBwYWNrZXRzIHVuZGVyCiAgKiBMaW51eAogICovCi0jZGVmaW5lIENGR19TWVBDUl9CTVQJMHgwMDAwMDYwMAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSX0JNVAkweDAwMDAwNjAwCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1JfQk1UCVNZUENSX0JNVAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSX0JNVAlTWVBDUl9CTVQKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX0xTRFJBTQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEMgfFwKLQkJCSBDRkdfU1lQQ1JfQk1UICB8XAorI2lmZGVmIENPTkZJR19TWVNfTFNEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEMgfFwKKwkJCSBDT05GSUdfU1lTX1NZUENSX0JNVCAgfFwKIAkJCSBTWVBDUl9QQk1FIHxcCiAJCQkgU1lQQ1JfTEJNRSB8XAogCQkJIFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQyB8XAotCQkJIENGR19TWVBDUl9CTVQgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEMgfFwKKwkJCSBDT05GSUdfU1lTX1NZUENSX0JNVCAgfFwKIAkJCSBTWVBDUl9QQk1FIHxcCiAJCQkgU1lQQ1JfU1dQKQogI2VuZGlmCkBAIC01ODgsNyArNTg4LDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQyB8XAogCQkJIFRNQ05UU0NfQUxSIHxcCiAJCQkgVE1DTlRTQ19UQ0YgfFwKIAkJCSBUTUNOVFNDX1RDRSkKQEAgLTU5OSwzNSArNTk5LDM1IEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jaWZkZWYgQ0ZHX0VQODI2MF9IMgotI2RlZmluZSBDRkdfUElTQ1IgICAgICAgKFBJU0NSX1BTICB8XAorI2lmZGVmIENPTkZJR19TWVNfRVA4MjYwX0gyCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgICAgICAgKFBJU0NSX1BTICB8XAogCQkJIFBJU0NSX1BURiB8XAogCQkJIFBJU0NSX1BURSkKICNlbHNlCi0jZGVmaW5lIENGR19QSVNDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJMAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNpZmRlZiBDRkdfRVA4MjYwX0gyCi0jZGVmaW5lIENGR19TQ0NSICAgICAgICAoU0NDUl9ERkJSRzAwKQorI2lmZGVmIENPTkZJR19TWVNfRVA4MjYwX0gyCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgKFNDQ1JfREZCUkcwMCkKICNlbHNlCi0jZGVmaW5lIENGR19TQ0NSICAgICAgICAoU0NDUl9ERkJSRzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IgICAgICAgIChTQ0NSX0RGQlJHMDEpCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTVBUUFIgLSBNZW1vcnkgUmVmcmVzaCBUaW1lciBQcmVzY2FsZSBSZWdpc3RlciAgICAgICAgICAgICAgIDEwLTMyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSCSgweDBBMDAgJiBNUFRQUl9QVFBfTVNLKQorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCSgweDBBMDAgJiBNUFRQUl9QVFBfTVNLKQogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTY1OSwxMyArNjU5LDEzIEBACiAvKiBCYW5rIDAgLSBGTEFTSAogICoKICAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTSAgKChDRkdfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gICgoQ09ORklHX1NZU19GTEFTSDBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X0RFQ0NfTk9ORSAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX0ZMQVNIMF9TSVpFKSAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0gwX1NJWkUpICAgICB8XAogCQkJIE9SeEdfQ1NOVCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeEdfU0NZXzhfQ0xLICAgICAgICAgICAgICAgICB8XApAQCAtNjc0LDcxICs2NzQsNzEgQEAKIC8qIEJhbmsgMSAtIFNEUkFNCiAgKiBQU0RSQU0KICAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTSAgKChDRkdfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0gICgoQ09ORklHX1NZU19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0ICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X01TX1NEUkFNX1AgICAgICAgICAgICAgICAgIHxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX1NEUkFNMF9TSVpFKSAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfU0RSQU0wX1NJWkUpICAgICB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNiAgICAgICAgICAgICB8XAogCQkJIE9SeFNfTlVNUl8xMikKIAotI2lmZGVmIENGR19FUDgyNjBfSDIKLSNkZWZpbmUgQ0ZHX1BTRE1SICAgICAgIDB4QzM0RTI0NkUKKyNpZmRlZiBDT05GSUdfU1lTX0VQODI2MF9IMgorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SICAgICAgIDB4QzM0RTI0NkUKICNlbHNlCi0jZGVmaW5lIENGR19QU0RNUiAgICAgICAweEMzNEUyNDYyCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIgICAgICAgMHhDMzRFMjQ2MgogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BTUlQJMHg2NAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJMHg2NAogCi0jaWZkZWYgQ0ZHX0xTRFJBTQorI2lmZGVmIENPTkZJR19TWVNfTFNEUkFNCiAvKiBCYW5rIDIgLSBTRFJBTQogICogTFNEUkFNCiAgKi8KIAotICAjZGVmaW5lIENGR19CUjJfUFJFTElNICAoKENGR19TRFJBTTFfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisgICNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU0xX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJICAgQlJ4X1BTXzMyICAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBCUnhfTVNfU0RSQU1fTCAgICAgICAgICAgICAgICAgfFwKIAkJCSAgIEJSeF9WKQogCi0gICNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX1NEUkFNMV9TSVpFKSAgICAgfFwKKyAgI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTFfU0laRSkgICAgIHxcCiAJCQkgICBPUnhTX0JQRF80ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeFNfUk9XU1RfUEJJMF9BOSAgICAgICAgICAgICB8XAogCQkJICAgT1J4U19OVU1SXzEyKQogCi0gICNkZWZpbmUgQ0ZHX0xTRE1SICAgICAgMHg0MTZBMjU2MgotICAjZGVmaW5lIENGR19MU1JUCTB4NjQKKyAgI2RlZmluZSBDT05GSUdfU1lTX0xTRE1SICAgICAgMHg0MTZBMjU2MgorICAjZGVmaW5lIENPTkZJR19TWVNfTFNSVAkweDY0CiAjZWxzZQotICAjZGVmaW5lIENGR19MU1JUCTB4MAotI2VuZGlmIC8qIENGR19MU0RSQU0gKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0xTUlQJMHgwCisjZW5kaWYgLyogQ09ORklHX1NZU19MU0RSQU0gKi8KIAogLyogQmFuayA0IC0gT24gYm9hcmQgcmVnaXN0ZXJzCiAgKiBOVlJUQyBhbmQgQkNTUgogICovCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICAgKChDRkdfUkVHU19CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgICgoQ09ORklHX1NZU19SRUdTX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSAgIEJSeF9QU184ICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSAgIEJSeF9NU19HUENNX1AgICAgICAgICAgICAgICAgfFwKIAkJCSAgIEJSeF9WKQogLyoKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0gICAgKE9SeEdfQU1fTVNLICAgICAgICAgICAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0gICAgKE9SeEdfQU1fTVNLICAgICAgICAgICAgICAgICB8XAogCQkJICAgT1J4R19DU05UICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBPUnhHX0FDU19ESVYxICAgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeEdfU0NZXzEwX0NMSyAgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeEdfVFJMWCkKICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNIDB4ZmZmMDA4NTQKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNIDB4ZmZmMDA4NTQKIAogI2lmZGVmIF9OT1RfVVNFRF9TSU5DRV9OT1RfV09SS0lOR18KIC8qIEJhbmsgOCAtIE9uIGJvYXJkIHJlZ2lzdGVycwogICogUENNQ0lBIChjdXJyZW50bHkgbm90IHdvcmtpbmchKQogICovCi0jZGVmaW5lIENGR19CUjhfUFJFTElNICAgKChDRkdfUkVHU19CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI4X1BSRUxJTSAgICgoQ09ORklHX1NZU19SRUdTX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSAgIEJSeF9QU18xNiAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBCUnhfTVNfR1BDTV9QICAgICAgICAgICAgICAgIHxcCiAJCQkgICBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I4X1BSRUxJTSAgICAoT1J4R19BTV9NU0sgICAgICAgICAgICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I4X1BSRUxJTSAgICAoT1J4R19BTV9NU0sgICAgICAgICAgICAgICAgIHxcCiAJCQkgICBPUnhHX0NTTlQgICAgICAgICAgICAgICAgICAgfFwKIAkJCSAgIE9SeEdfQUNTX0RJVjEgICAgICAgICAgICAgICB8XAogCQkJICAgT1J4R19TRVRBICAgICAgICAgICAgICAgICAgIHxcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZXA4Mnh4bS5oIGIvaW5jbHVkZS9jb25maWdzL2VwODJ4eG0uaAppbmRleCA2MGRmMTJmLi4yMzlmZjY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZXA4Mnh4bS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9lcDgyeHhtLmgKQEAgLTQ4LDcgKzQ4LDcgQEAKICN1bmRlZglDT05GSUdfQ09OU19OT05FCQkvKiBJdCdzIG5vdCBvbiBleHRlcm5hbCBVQVJUICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEJLyogU01DMSBpcyB1c2VkIGZvciBjb25zb2xlICAqLwogCi0jZGVmaW5lIENGR19CQ1NSCQkweEZBMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUgkJMHhGQTAwMDAwMAogCiAvKgogICogU2VsZWN0IGV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTcwLDEzICs3MCwxMyBAQAogI2RlZmluZSBDT05GSUdfRVRIRVJfT05fRkNDMgogI2RlZmluZSBDT05GSUdfRVRIRVJfT05fRkNDMwogCi0jZGVmaW5lIENGR19DTVhGQ1JfTUFTSzMJKENNWEZDUl9GQzMgfCBDTVhGQ1JfUkYzQ1NfTVNLIHwgQ01YRkNSX1RGM0NTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRTMJKENNWEZDUl9SRjNDU19DTEsxNSB8IENNWEZDUl9URjNDU19DTEsxNikKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMgkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQotI2RlZmluZSBDRkdfQ01YRkNSX1ZBTFVFMgkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLMwkoQ01YRkNSX0ZDMyB8IENNWEZDUl9SRjNDU19NU0sgfCBDTVhGQ1JfVEYzQ1NfTVNLKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRTMJKENNWEZDUl9SRjNDU19DTEsxNSB8IENNWEZDUl9URjNDU19DTEsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSzIJKENNWEZDUl9GQzIgfCBDTVhGQ1JfUkYyQ1NfTVNLIHwgQ01YRkNSX1RGMkNTX01TSykKKyNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUyCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCiAKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKIAogI2RlZmluZSBDT05GSUdfTUlJCQkJLyogTUlJIFBIWSBtYW5hZ2VtZW50ICAgICAgICAqLwogI2RlZmluZSBDT05GSUdfQklUQkFOR01JSQkJLyogQml0LWJhbmdlZCBNRElPIGludGVyZmFjZSAqLwpAQCAtODUsMTUgKzg1LDE1IEBACiAgKiBHUElPIHBpbnMgdXNlZCBmb3IgYml0LWJhbmdlZCBNSUkgY29tbXVuaWNhdGlvbnMKICAqLwogI2RlZmluZSBNRElPX1BPUlQJCTAJLyogTm90IHVzZWQgLSBpbXBsZW1lbnRlZCBpbiBCQ1NSICovCi0jZGVmaW5lIE1ESU9fQUNUSVZFCQkoKih2dV9jaGFyICopKENGR19CQ1NSICsgOCkgJj0gMHhGQikKLSNkZWZpbmUgTURJT19UUklTVEFURQkJKCoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpIHw9IDB4MDQpCi0jZGVmaW5lIE1ESU9fUkVBRAkJKCoodnVfY2hhciAqKShDRkdfQkNTUiArIDgpICYgMSkKKyNkZWZpbmUgTURJT19BQ1RJVkUJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgJj0gMHhGQikKKyNkZWZpbmUgTURJT19UUklTVEFURQkJKCoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSB8PSAweDA0KQorI2RlZmluZSBNRElPX1JFQUQJCSgqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgJiAxKQogCi0jZGVmaW5lIE1ESU8oYml0KQkJaWYoYml0KSAqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSB8PSAweDAxOyBcCi0JCQkJZWxzZQkqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSAmPSAweEZFCisjZGVmaW5lIE1ESU8oYml0KQkJaWYoYml0KSAqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgfD0gMHgwMTsgXAorCQkJCWVsc2UJKih2dV9jaGFyICopKENPTkZJR19TWVNfQkNTUiArIDgpICY9IDB4RkUKIAotI2RlZmluZSBNREMoYml0KQkJaWYoYml0KSAqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSB8PSAweDAyOyBcCi0JCQkJZWxzZQkqKHZ1X2NoYXIgKikoQ0ZHX0JDU1IgKyA4KSAmPSAweEZECisjZGVmaW5lIE1EQyhiaXQpCQlpZihiaXQpICoodnVfY2hhciAqKShDT05GSUdfU1lTX0JDU1IgKyA4KSB8PSAweDAyOyBcCisJCQkJZWxzZQkqKHZ1X2NoYXIgKikoQ09ORklHX1NZU19CQ1NSICsgOCkgJj0gMHhGRAogCiAjZGVmaW5lIE1JSURFTEFZCQl1ZGVsYXkoMSkKIApAQCAtMTA0LDcgKzEwNCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAotI2RlZmluZSBDRkdfVlhXT1JLU19NQUNfUFRSIDB4NDMwMCAvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSIDB4NDMwMCAvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCiAKIAogLyoKQEAgLTE2MiwyNyArMTYyLDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJlcDgyeHhtPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJlcDgyeHhtPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC0yMDAsMjcgKzIwMCwyNyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBpbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBpbiBmbGluZm8gKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZW5kaWYgLyogQ09ORklHX0VOVl9JU19JTl9GTEFTSCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKiBFRVBST00gQ29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9FRVBST00KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMAkgICAgLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICovCkBAIC0yMjksMjIgKzIyOSwyMiBAQAogCiAvKiBSVEMgQ29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBDT05GSUdfUlRDX000MVQxMQkxCS8qIHVzZXMgYSBNNDFUODEgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKICNkZWZpbmUgQ09ORklHX000MVQxMV9CQVNFX1lFQVIJMTkwMAogCiAvKiBJMkMgU1lTTU9OIChMTTc1KSAqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzUJCTEKICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lCUNGR19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCTcwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCS0zMAorI2RlZmluZQlDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCTMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gQ29uZmlndXJhdGlvbgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGQTA4MDAwMAotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJKDEyOCoxMDI0KS0xNgorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUgkweEZBMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJKDEyOCoxMDI0KS0xNgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1OCw5ICsyNTgsOSBAQAogI2RlZmluZSBDT05GSUdfUENJX0JPT1RERUxBWQkwCiAKIC8qIFBDSSBNZW1vcnkgbWFwIChpZiBkaWZmZXJlbnQgZnJvbSBkZWZhdWx0IG1hcCAqLwotI2RlZmluZSBDRkdfUENJX1NMVl9NRU1fTE9DQUwJQ0ZHX1NEUkFNX0JBU0UJCS8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TTFZfTUVNX0JVUwkJMHgwMDAwMDAwMAkvKiBQQ0kgYmFzZSAqLwotI2RlZmluZSBDRkdfUElDTVIwX01BU0tfQVRUUklCCShQSUNNUl9NQVNLXzUxMk1CIHwgUElDTVJfRU5BQkxFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0xPQ0FMCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TTFZfTUVNX0JVUwkJMHgwMDAwMDAwMAkvKiBQQ0kgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BJQ01SMF9NQVNLX0FUVFJJQgkoUElDTVJfTUFTS181MTJNQiB8IFBJQ01SX0VOQUJMRSB8IFwKIAkJCQkgUElDTVJfUFJFRkVUQ0hfRU4pCiAKIC8qCkBAIC0yNzYsMTEgKzI3NiwxMSBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1fTE9DQUwJMHg4MDAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1fQlVTCTB4ODAwMDAwMDAgICAgICAgICAgLyogUENJIGJhc2UgICAqLwotI2RlZmluZQlDRkdfQ1BVX1BDSV9NRU1fU1RBUlQJUENJX01TVFJfTUVNX0xPQ0FMCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1fU0laRQkweDIwMDAwMDAwICAgICAgICAgIC8qIDUxMk1CICovCi0jZGVmaW5lIENGR19QT0NNUjBfTUFTS19BVFRSSUIJKFBPQ01SX01BU0tfNTEyTUIgfCBQT0NNUl9FTkFCTEUgfCBQT0NNUl9QUkVGRVRDSF9FTikKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fTE9DQUwJMHg4MDAwMDAwMCAgICAgICAgICAvKiBMb2NhbCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNX0JVUwkweDgwMDAwMDAwICAgICAgICAgIC8qIFBDSSBiYXNlICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DUFVfUENJX01FTV9TVEFSVAlQQ0lfTVNUUl9NRU1fTE9DQUwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fU0laRQkweDIwMDAwMDAwICAgICAgICAgIC8qIDUxMk1CICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9DTVIwX01BU0tfQVRUUklCCShQT0NNUl9NQVNLXzUxMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUFJFRkVUQ0hfRU4pCiAKIC8qCiAgKiBNYXN0ZXIgd2luZG93IHRoYXQgYWxsb3dzIHRoZSBDUFUgdG8gYWNjZXNzIFBDSSBNZW1vcnkgKG5vbi1wcmVmZXRjaCkuCkBAIC0yODgsMTEgKzI4OCwxMSBAQAogICogaW4gdGhlIGJyaWRnZS4KICAqLwogCi0jZGVmaW5lIENGR19QQ0lfTVNUUl9NRU1JT19MT0NBTCAgICAweEEwMDAwMDAwICAgICAgICAgIC8qIExvY2FsIGJhc2UgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX01FTUlPX0JVUyAgICAgIDB4QTAwMDAwMDAgICAgICAgICAgLyogUENJIGJhc2UgICAqLwotI2RlZmluZSBDRkdfQ1BVX1BDSV9NRU1JT19TVEFSVCAgICAgUENJX01TVFJfTUVNSU9fTE9DQUwKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX01FTUlPX1NJWkUgICAgIDB4MjAwMDAwMDAgICAgICAgICAgLyogNTEyTUIgKi8KLSNkZWZpbmUgQ0ZHX1BPQ01SMV9NQVNLX0FUVFJJQiAgICAgIChQT0NNUl9NQVNLXzUxMk1CIHwgUE9DTVJfRU5BQkxFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0xPQ0FMICAgIDB4QTAwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX01FTUlPX0JVUyAgICAgIDB4QTAwMDAwMDAgICAgICAgICAgLyogUENJIGJhc2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVV9QQ0lfTUVNSU9fU1RBUlQgICAgIFBDSV9NU1RSX01FTUlPX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfTUVNSU9fU0laRSAgICAgMHgyMDAwMDAwMCAgICAgICAgICAvKiA1MTJNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPQ01SMV9NQVNLX0FUVFJJQiAgICAgIChQT0NNUl9NQVNLXzUxMk1CIHwgUE9DTVJfRU5BQkxFKQogCiAvKgogICogTWFzdGVyIHdpbmRvdyB0aGF0IGFsbG93cyB0aGUgQ1BVIHRvIGFjY2VzcyBQQ0kgSU8gc3BhY2UuCkBAIC0zMDAsMTA1ICszMDAsMTA1IEBACiAgKiBpbiB0aGUgYnJpZGdlLgogICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSX0lPX0xPQ0FMICAgICAgIDB4RjYwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLwotI2RlZmluZSBDRkdfUENJX01TVFJfSU9fQlVTICAgICAgICAgMHgwMDAwMDAwMCAgICAgICAgICAvKiBQQ0kgYmFzZSAgICovCi0jZGVmaW5lIENGR19DUFVfUENJX0lPX1NUQVJUICAgICAgICBQQ0lfTVNUUl9JT19MT0NBTAotI2RlZmluZSBDRkdfUENJX01TVFJfSU9fU0laRSAgICAgICAgMHgwMjAwMDAwMCAgICAgICAgICAvKiA2NE1CICovCi0jZGVmaW5lIENGR19QT0NNUjJfTUFTS19BVFRSSUIgICAgICAoUE9DTVJfTUFTS18zMk1CIHwgUE9DTVJfRU5BQkxFIHwgUE9DTVJfUENJX0lPKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0xPQ0FMICAgICAgIDB4RjYwMDAwMDAgICAgICAgICAgLyogTG9jYWwgYmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSX0lPX0JVUyAgICAgICAgIDB4MDAwMDAwMDAgICAgICAgICAgLyogUENJIGJhc2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVV9QQ0lfSU9fU1RBUlQgICAgICAgIFBDSV9NU1RSX0lPX0xPQ0FMCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01TVFJfSU9fU0laRSAgICAgICAgMHgwMjAwMDAwMCAgICAgICAgICAvKiA2NE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9DTVIyX01BU0tfQVRUUklCICAgICAgKFBPQ01SX01BU0tfMzJNQiB8IFBPQ01SX0VOQUJMRSB8IFBPQ01SX1BDSV9JTykKIAogCiAvKiBQQ0lCUjAgLSBmb3IgUENJIElPKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NU1RSMF9MT0NBTAkJQ0ZHX1BDSV9NU1RSX0lPX0xPQ0FMCQkvKiBMb2NhbCBiYXNlICovCi0jZGVmaW5lIENGR19QQ0lNU0swX01BU0sJCX4oQ0ZHX1BDSV9NU1RSX0lPX1NJWkUgLSAxVSkJLyogU2l6ZSBvZiB3aW5kb3cgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTVNUUjBfTE9DQUwJCUNPTkZJR19TWVNfUENJX01TVFJfSU9fTE9DQUwJCS8qIExvY2FsIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNU0swX01BU0sJCX4oQ09ORklHX1NZU19QQ0lfTVNUUl9JT19TSVpFIC0gMVUpCS8qIFNpemUgb2Ygd2luZG93ICovCiAvKiBQQ0lCUjEgLSBwcmVmZXRjaCBhbmQgbm9uLXByZWZldGNoIHJlZ2lvbnMgam9pbmVkIHRvZ2V0aGVyICovCi0jZGVmaW5lIENGR19QQ0lfTVNUUjFfTE9DQUwJCUNGR19QQ0lfTVNUUl9NRU1fTE9DQUwKLSNkZWZpbmUgQ0ZHX1BDSU1TSzFfTUFTSwkJfihDRkdfUENJX01TVFJfTUVNX1NJWkUgKyBDRkdfUENJX01TVFJfTUVNSU9fU0laRSAtIDFVKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NU1RSMV9MT0NBTAkJQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fTE9DQUwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lNU0sxX01BU0sJCX4oQ09ORklHX1NZU19QQ0lfTVNUUl9NRU1fU0laRSArIENPTkZJR19TWVNfUENJX01TVFJfTUVNSU9fU0laRSAtIDFVKQogCiAKLSNkZWZpbmUJQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lCUNPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9KRkZTMikKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJMAotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTCUNGR19NQVhfRkxBU0hfQkFOS1MKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUiAgMAotI2RlZmluZSBDRkdfSkZGUzJfTEFTVF9TRUNUT1IgICA2MgotI2RlZmluZSBDRkdfSkZGUzJfU09SVF9GUkFHTUVOVFMKLSNkZWZpbmUgQ0ZHX0pGRlNfQ1VTVE9NX1BBUlQKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9CQU5LCTAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9OVU1fQkFOS1MJQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9GSVJTVF9TRUNUT1IgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTMl9MQVNUX1NFQ1RPUiAgIDYyCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfU09SVF9GUkFHTUVOVFMKKyNkZWZpbmUgQ09ORklHX1NZU19KRkZTX0NVU1RPTV9QQVJUCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9JMkMpCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBUbyBlbmFibGUgSTJDIHN1cHBvcnQJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZAkJCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YJLyogSTJDIHNsYXZlIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YJLyogSTJDIHNsYXZlIGFkZHJlc3MJCSovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgMjU2S0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTZLQiBmb3IgTW9uaXRvciAqLwogCi0jZGVmaW5lIENGR19ERUZBVUxUX0lNTVIJMHgwMDAxMDAwMAotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUgkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIAogLyogSGFyZCByZXNldCBjb25maWd1cmF0aW9uIHdvcmQgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkwIC8qMHgxQzgwMDY0MSovICAvKiBOb3QgdXNlZCAtIHByb3ZpZGVkIGJ5IENQTEQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJMCAvKjB4MUM4MDA2NDEqLyAgLyogTm90IHVzZWQgLSBwcm92aWRlZCBieSBDUExEICovCiAvKiBObyBzbGF2ZXMgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290ICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAKLSNkZWZpbmUgQ0ZHX0hJRDIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQkwCiAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJMHgwMjYxMDAwMAotI2RlZmluZSBDRkdfU1lQQ1IJCTB4RkZGRjA2ODkKLSNkZWZpbmUgQ0ZHX0JDUgkJCTB4ODA4MEUwMDAKLSNkZWZpbmUgQ0ZHX1NDQ1IJCTB4MDAwMDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJCTB4MDI2MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkJMHhGRkZGMDY4OQorI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJCTB4ODA4MEUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCQkweDAwMDAwMDAxCiAKLSNkZWZpbmUgQ0ZHX1JNUgkJCTAKLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJCTB4MDAwMDAwQzMKLSNkZWZpbmUgQ0ZHX1BJU0NSCQkweDAwMDAwMDgzCi0jZGVmaW5lIENGR19SQ0NSCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJCTB4MDAwMDAwQzMKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkJMHgwMDAwMDA4MworI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJCTAKIAotI2RlZmluZSBDRkdfTVBUUFIJCTB4MEEwMAotI2RlZmluZSBDRkdfUFNETVIJCTB4QzQzMjI0NkUKLSNkZWZpbmUgQ0ZHX1BTUlQJCTB4MzIKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkJMHgwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJCTB4QzQzMjI0NkUKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUCQkweDMyCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JSCQkoQ0ZHX1NEUkFNX0JBU0UgfCAweDAwMDAwMDQxKQotI2RlZmluZSBDRkdfU0RSQU1fT1IJCTB4RjAwMDI5MDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQlIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCAweDAwMDAwMDQxKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX09SCQkweEYwMDAyOTAwCiAKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JCShDRkdfRkxBU0hfQkFTRSB8IDB4MDAwMDE4MDEpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweEZDMDAwODgyCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCQkoQ0ZHX0JDU1IgfCAweDAwMDAxMDAxKQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJMHhGRkYwMDA1MAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweDAwMDAxODAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4RkMwMDA4ODIKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkoQ09ORklHX1NZU19CQ1NSIHwgMHgwMDAwMTAwMSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCQkweEZGRjAwMDUwCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2V2YjQ1MTAuaCBiL2luY2x1ZGUvY29uZmlncy9ldmI0NTEwLmgKaW5kZXggNjNjYTJhNS4uY2JhYWU2MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2V2YjQ1MTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZXZiNDUxMC5oCkBAIC01MSw4ICs1MSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC0xMDgsMjkgKzEwOCwyOSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJImV2YjQ1MTAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJImV2YjQ1MTAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfVEFHICAgICAgICAgICAgICAgICAgICAgIC8qIGFsbG93IHBhc3Npbmcgb2YgY29tbWFuZCBsaW5lIGFyZ3MgdG8gbGludXggKi8KICNkZWZpbmUgQ09ORklHX1NFVFVQX01FTU9SWV9UQUdTCiAjZGVmaW5lIENPTkZJR19JTklUUkRfVEFHCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDc4MDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNzgwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX1NZU19DTEtfRlJFUQk1MDAwMDAwMAkvKiBDUFUgZnJlcTogNTAgTUh6ICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgS0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfU1lTX0NMS19GUkVRCTUwMDAwMDAwCS8qIENQVSBmcmVxOiA1MCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgS0h6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE1NiwyNSArMTU2LDI1IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJMHgwMjAwMDAwMCAvKiBGbGFzaCBCYW5rICMyICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfMl9TSVpFCTB4MDAwODAwMDAgLyogNTEyS0IgKG9uZSBjaGlwLCA4Yml0IGFjY2VzcykgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQlQSFlTX0ZMQVNIXzFfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCVBIWVNfRkxBU0hfMV9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTM1CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTUFJTl9TRUNUX1NJWkUJMHgwMDAxMDAwMCAgLyogbWFpbiBzaXplIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTM1CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BSU5fU0VDVF9TSVpFCTB4MDAwMTAwMDAgIC8qIG1haW4gc2l6ZSBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg0KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKiBlbnZpcm9ubWVudCBzZXR0aW5ncyAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjdW5kZWYgQ09ORklHX0VOVl9JU19OT1dIRVJFCiAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDIwMDAwKSAvKiBlbnZpcm9ubWVudCBzdGFydCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MjAwMDApIC8qIGVudmlyb25tZW50IHN0YXJ0IGFkZHJlc3MgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkgICAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAkgICAvKiBtYXggc2l6ZSBmb3IgZW52aXJvbm1lbnQgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2ZhdnItMzItZXpraXQuaCBiL2luY2x1ZGUvY29uZmlncy9mYXZyLTMyLWV6a2l0LmgKaW5kZXggZTQ0NWExMy4uM2NlZjQxOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2ZhdnItMzItZXpraXQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZmF2ci0zMi1lemtpdC5oCkBAIC0zNSw0MCArMzUsNDAgQEAKICAqIFRpbWVyIGNsb2NrIGZyZXF1ZW5jeS4gV2UncmUgdXNpbmcgdGhlIENQVS1pbnRlcm5hbCBDT1VOVCByZWdpc3RlcgogICogZm9yIHRoaXMsIHNvIHRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgQ1BVIGNvcmUgY2xvY2sgZnJlcXVlbmN5CiAgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBTZXQgdXAgdGhlIFBMTCB0byBydW4gYXQgMTQwIE1IeiwgdGhlIENQVSB0byBydW4gYXQgdGhlIFBMTAogICogZnJlcXVlbmN5LCB0aGUgSFNCIGFuZCBQQkIgYXQgMS8yLCBhbmQgdGhlIFBCQSB0byBydW4gYXQgMS80IHRoZQogICogUExMIGZyZXF1ZW5jeS4KLSAqIChDRkdfT1NDMF9IWiAqIENGR19QTEwwX01VTCkgLyBDRkdfUExMMF9ESVYgPSBQTEwgTUh6CisgKiAoQ09ORklHX1NZU19PU0MwX0haICogQ09ORklHX1NZU19QTEwwX01VTCkgLyBDT05GSUdfU1lTX1BMTDBfRElWID0gUExMIE1IegogICovCiAjZGVmaW5lIENPTkZJR19QTEwJCQkxCi0jZGVmaW5lIENGR19QT1dFUl9NQU5BR0VSCQkxCi0jZGVmaW5lIENGR19PU0MwX0haCQkJMjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BMTDBfRElWCQkJMQotI2RlZmluZSBDRkdfUExMMF9NVUwJCQk3Ci0jZGVmaW5lIENGR19QTEwwX1NVUFBSRVNTX0NZQ0xFUwkxNgorI2RlZmluZSBDT05GSUdfU1lTX1BPV0VSX01BTkFHRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PU0MwX0haCQkJMjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX0RJVgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX01VTAkJCTcKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX1NVUFBSRVNTX0NZQ0xFUwkxNgogLyoKICAqIFNldCB0aGUgQ1BVIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX0NQVSkgPSBDUFUgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9DUFUpID0gQ1BVIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfQ1BVCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9DUFUJCQkwCiAvKgogICogU2V0IHRoZSBIU0IgcnVubmluZyBhdDoKLSAqIFBMTCAvICgyXkNGR19DTEtESVZfSFNCKSA9IEhTQiBNSHoKKyAqIFBMTCAvICgyXkNPTkZJR19TWVNfQ0xLRElWX0hTQikgPSBIU0IgTUh6CiAgKi8KLSNkZWZpbmUgQ0ZHX0NMS0RJVl9IU0IJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0hTQgkJCTEKIC8qCiAgKiBTZXQgdGhlIFBCQSBydW5uaW5nIGF0OgotICogUExMIC8gKDJeQ0ZHX0NMS0RJVl9QQkEpID0gUEJBIE1IegorICogUExMIC8gKDJeQ09ORklHX1NZU19DTEtESVZfUEJBKSA9IFBCQSBNSHoKICAqLwotI2RlZmluZSBDRkdfQ0xLRElWX1BCQQkJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJBCQkJMgogLyoKICAqIFNldCB0aGUgUEJCIHJ1bm5pbmcgYXQ6Ci0gKiBQTEwgLyAoMl5DRkdfQ0xLRElWX1BCQikgPSBQQkIgTUh6CisgKiBQTEwgLyAoMl5DT05GSUdfU1lTX0NMS0RJVl9QQkIpID0gUEJCIE1IegogICovCi0jZGVmaW5lIENGR19DTEtESVZfUEJCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkIJCQkxCiAKIC8qCiAgKiBUaGUgUExMT1BUIHJlZ2lzdGVyIGNvbnRyb2xzIHRoZSBQTEwgbGlrZSB0aGlzOgpAQCAtNzcsNyArNzcsNyBAQAogICoKICAqIFdlIHdhbnQgaWNwPTEgKGRlZmF1bHQpIGFuZCBpdmNvPTAgKDgwLTE2MCBNSHopIG9yIGl2Y289MiAoMTUwLTI0ME1IeikuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BMTDBfT1BUCQkJMHgwNAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfT1BUCQkJMHgwNAogCiAjdW5kZWYgQ09ORklHX1VTQVJUMAogI3VuZGVmIENPTkZJR19VU0FSVDEKQEAgLTE0Nyw1NSArMTQ3LDU1IEBACiAjZGVmaW5lIENPTkZJR19BVE1FTF9VU0FSVAkJMQogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19OUl9QSU9TCQkJNQotI2RlZmluZSBDRkdfSFNEUkFNQwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUl9QSU9TCQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKIC8qIEV4dGVybmFsIGZsYXNoIG9uIEZhdnItMzIgKi8KICNpZiAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkJMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQk2NTUzNgotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfRkxBU0hfU0laRSAtIENPTkZJR19FTlZfU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9BRERSCQkoQ0ZHX0lOVFJBTV9CQVNFICsgQ0ZHX0lOVFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfQUREUgkJKENPTkZJR19TWVNfSU5UUkFNX0JBU0UgKyBDT05GSUdfU1lTX0lOVFJBTV9TSVpFKQogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQotI2RlZmluZSBDRkdfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQogCiAvKiBBbGxvdyA0TUIgZm9yIHRoZSBrZXJuZWwgcnVuLXRpbWUgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQogCiAvKiBPdGhlciBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRoYXQgc2hvdWxkbid0IGhhdmUgdG8gY2hhbmdlIGFsbCB0aGF0IG9mdGVuICovCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCShDRkdfTUVNVEVTVF9TVEFSVCArIDB4NzAwMDAwKQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAweDcwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSB7IDExNTIwMCwgMzg0MDAsIDE5MjAwLCA5NjAwLCAyNDAwIH0KIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9nY3BsdXMuaCBiL2luY2x1ZGUvY29uZmlncy9nY3BsdXMuaAppbmRleCA1ODYzZjgzLi5jMGIzYWI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZ2NwbHVzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2djcGx1cy5oCkBAIC01Nyw4ICs1Nyw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgICAxMjggICAgIC8qIHNpemUgcnNydmQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4gICAgICAgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAgICAvKiBzaXplIHJzcnZkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogCiAvKgpAQCAtOTgsNyArOTgsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMKICNkZWZpbmUgQ09ORklHX0JPT1RBUkdTCQkiY29uc29sZT10dHlTQTAsMzg0MDBuOCBtdGRwYXJ0cz1zYTExMDAtZmxhc2g6MW1AMCh6SW1hZ2UpLDNtQDFtKHJhbWRpc2suZ3opLDEybUA0bSh1c2VyZnMpIHJvb3Q9L2Rldi9uZnMgaXA9Ym9vdHAiCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdHA7dGZ0cDtib290bSIKLSNkZWZpbmUgQ0ZHX0FVVE9MT0FEICAgICAgICAgICAgIm4iICAgICAgICAgICAgIC8qIE5vIGF1dG9sb2FkICovCisjZGVmaW5lIENPTkZJR19TWVNfQVVUT0xPQUQgICAgICAgICAgICAibiIgICAgICAgICAgICAgLyogTm8gYXV0b2xvYWQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQogI2RlZmluZSBDT05GSUdfS0dEQl9CQVVEUkFURQkzODQwMAkJLyogc3BlZWQgdG8gcnVuIGtnZGIgc2VyaWFsIHBvcnQgKi8KQEAgLTEwOCwyNSArMTA4LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIkFEUyBHQ1BsdXMgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkFEUyBHQ1BsdXMgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHhjMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHhjMDAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDBhCQkvKiBzZXQgY29yZSBjbG9jayB0byAyMDZNSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgwYQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gMjA2TUh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE1NCwyOCArMTU0LDI4IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfQkFOS19TSVpFICAgIDB4MDEwMDAwMDAgLyogMTYgTUIgQmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUgICAgMHgwMDA0MDAwMCAvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KICNpZgkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KICNlbHNlCiAvKiBSRVZJU0lUOiBUaGlzIGRvZXNuJ3Qgd29yayBvbiBBRFMgR0NQbHVzIGp1c3QgeWV0OiAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJICAgICAgICAgICAxICAgICAgIC8qIGZsYXNoIGlzIENGSSBjb25mb3JtYW50ICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkgICAgICAgICAgIDEgICAgICAgLyogZmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgICAgICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUiAgICAxICAgICAgIC8qIHVzZSBjb21tb24gY2ZpIGRyaXZlciAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAgICAvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxICAgICAgIC8qIG1heCAjIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVCAgICAgMCAgICAgICAvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOCAgICAgLyogbWF4ICMgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotLyojZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OICAgIDEgICAgICAgLy0tKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICAgICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICAgIHsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAgICAvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgICAvKiBtYXggIyBvZiBtZW1vcnkgYmFua3MgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UICAgICAwICAgICAgIC8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOCAgICAgLyogbWF4ICMgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworLyojZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAgICAxICAgICAgIC8tLSogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbiAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgICAgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZ3JfY3BjaV9heDIwMDAuaCBiL2luY2x1ZGUvY29uZmlncy9ncl9jcGNpX2F4MjAwMC5oCmluZGV4IDVhN2E1ODAuLmJiZTYzNWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ncl9jcGNpX2F4MjAwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ncl9jcGNpX2F4MjAwMC5oCkBAIC02MSwxMyArNjEsMTMgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkyMDAwMDAwMAkvKiAyME1IeiAqLwogCiAvKiBOdW1iZXIgb2YgU1BBUkMgcmVnaXN0ZXIgd2luZG93cyAqLwotI2RlZmluZSBDRkdfU1BBUkNfTldJTkRPV1MgOAorI2RlZmluZSBDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTIDgKIAogLyoKICAqIFNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCS8qIC4uLiBhdCAzODQwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKiBQYXJ0aXRpb25zICovCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCkBAIC0xOTIsMjggKzE5MiwyOCBAQAogICogICAgICAgICAgICAgICAweEZGMDAwMDAwIGZvciAxNiBNQgogICogICAgICAgICAgICAgICAweEZGODAwMDAwIGZvciAgOCBNQgogICovCi0vKiNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKy8qI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwMjAwMDAJLyogMTI4IEtCIHNlY3RvcnMgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogLyoqKiBDRkkgQ09ORklHICoqKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAvKiBCeXBhc3MgY2FjaGUgd2hlbiByZWFkaW5nIHJlZ3MgZnJvbSBmbGFzaCBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9CWVBBU1NfUkVBRAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9CWVBBU1NfUkVBRAogLyogQnVmZmVyZWQgd3JpdGVzICgzMmJ5dGUvZ28pIGluc3RlYWQgb2Ygc2luZ2xlIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTIyMyw3ICsyMjMsNyBAQAogLyogQ09ORklHX0VOVl9BRERSIG5lZWQgdG8gYmUgYXQgc2VjdG9yIGJvdW5kYXJ5ICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKIAogLyoKQEAgLTIzNSw1OSArMjM1LDU5IEBACiAgKi8KIAogI2lmIENPTkZJR19MRU9OX1JBTV9TRUxFQ1QgPT0gQ09ORklHX0xFT05fUkFNX1NEUkFNX05PU1JBTQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKICNlbHNlCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg2MDAwMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTB4MDgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VORAkJKENGR19TRFJBTV9CQVNFK0NGR19TRFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTB4MDgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9FTkQJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UrQ09ORklHX1NZU19TRFJBTV9TSVpFKQogCiAvKiA0TWIgU1JBTSBhdmFpbGFibGUgKi8KICNpZiBDT05GSUdfTEVPTl9SQU1fU0VMRUNUICE9IENPTkZJR19MRU9OX1JBTV9TRFJBTV9OT1NSQU0KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRSAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TUkFNX1NJWkUgMHg0MDAwMDAKLSNkZWZpbmUgQ0ZHX1NSQU1fRU5EICAoQ0ZHX1NSQU1fQkFTRStDRkdfU1JBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRSAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9TSVpFIDB4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTV9FTkQgIChDT05GSUdfU1lTX1NSQU1fQkFTRStDT05GSUdfU1lTX1NSQU1fU0laRSkKICNlbmRpZgogCiAvKiBTZWxlY3QgUkFNIHVzZWQgdG8gcnVuIFUtQk9PVCBmcm9tLi4uICovCiAjaWYgQ09ORklHX0xFT05fUkFNX1NFTEVDVCA9PSBDT05GSUdfTEVPTl9SQU1fU1JBTQotI2RlZmluZSBDRkdfUkFNX0JBU0UgQ0ZHX1NSQU1fQkFTRQotI2RlZmluZSBDRkdfUkFNX1NJWkUgQ0ZHX1NSQU1fU0laRQotI2RlZmluZSBDRkdfUkFNX0VORCBDRkdfU1JBTV9FTkQKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fQkFTRSBDT05GSUdfU1lTX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9TSVpFIENPTkZJR19TWVNfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0VORCBDT05GSUdfU1lTX1NSQU1fRU5ECiAjZWxzZQotI2RlZmluZSBDRkdfUkFNX0JBU0UgQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JBTV9TSVpFIENGR19TRFJBTV9TSVpFCi0jZGVmaW5lIENGR19SQU1fRU5EIENGR19TRFJBTV9FTkQKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fQkFTRSBDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fU0laRSBDT05GSUdfU1lTX1NEUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fRU5EIENPTkZJR19TWVNfU0RSQU1fRU5ECiAjZW5kaWYKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX1BST01fU0laRQkJKDgxOTItQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QUk9NX09GRlNFVAkJKENGR19HQkxfREFUQV9PRkZTRVQtQ0ZHX1BST01fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NX1NJWkUJCSg4MTkyLUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NX09GRlNFVAkJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VULUNPTkZJR19TWVNfUFJPTV9TSVpFKQogCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX1BST01fT0ZGU0VULTMyKQotI2RlZmluZSBDRkdfU1RBQ0tfU0laRQkJKDB4MTAwMDAtMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJKENPTkZJR19TWVNfUFJPTV9PRkZTRVQtMzIpCisjZGVmaW5lIENPTkZJR19TWVNfU1RBQ0tfU0laRQkJKDB4MTAwMDAtMzIpCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfRU5ECQkoQ0ZHX0lOSVRfU1BfT0ZGU0VULUNGR19TVEFDS19TSVpFKQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTUFMTE9DX0VORC1DRkdfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfRU5ECQkoQ09ORklHX1NZU19JTklUX1NQX09GRlNFVC1DT05GSUdfU1lTX1NUQUNLX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01BTExPQ19FTkQtQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCiAvKiByZWxvY2F0ZWQgbW9uaXRvciBhcmVhICovCi0jZGVmaW5lIENGR19SRUxPQ19NT05JVE9SX01BWF9FTkQgICBDRkdfTUFMTE9DX0JBU0UKLSNkZWZpbmUgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSAgICAgKENGR19SRUxPQ19NT05JVE9SX01BWF9FTkQtQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfTUFYX0VORCAgIENPTkZJR19TWVNfTUFMTE9DX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UgICAgIChDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfTUFYX0VORC1DT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAvKiBtYWtlIHVuIHJlbG9jYXRlZCBhZGRyZXNzIGZyb20gcmVsb2NhdGVkIGFkZHJlc3MgKi8KLSNkZWZpbmUgVU5fUkVMT0MoYWRkcmVzcykgKGFkZHJlc3MtKENGR19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSkKKyNkZWZpbmUgVU5fUkVMT0MoYWRkcmVzcykgKGFkZHJlc3MtKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uIHVzZXMgb24gYm9hcmQgU01DOTFDMTExCkBAIC0zMDUsMjMgKzMwNSwyMyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCkBAIC0zMzcsMzggKzMzNywzOCBAQAogLyoqKioqIEdhaXNsZXIgR1JMSUIgSVAtQ29yZXMgQ29uZmlnICoqKioqKioqLwogCiAvKiBBTUJBIFBsdWcgJiBQbGF5IGluZm8gZGlzcGxheSBvbiBzdGFydHVwICovCi0vKiNkZWZpbmUgQ0ZHX0FNQkFQUF9QUklOVF9PTl9TVEFSVFVQKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0FNQkFQUF9QUklOVF9PTl9TVEFSVFVQKi8KIAotI2RlZmluZSBDRkdfR1JMSUJfU0RSQU0gICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX1NEUkFNICAgIDAKIAogLyogU2VlLCBHUkxJQiBEb2NzIChncmlwLnBkZikgb24gaG93IHRvIHNldCB1cAogICogVGhlc2UgdGhlIG1lbW9yeSBjb250cm9sbGVyIHJlZ2lzdGVycy4KICAqLwotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMSAgICgweDEwZjgwMGZmIHwgKDE8PDExKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkcxICAgKDB4MTBmODAwZmYgfCAoMTw8MTEpKQogI2lmIENPTkZJR19MRU9OX1JBTV9TRUxFQ1QgPT0gQ09ORklHX0xFT05fUkFNX1NEUkFNX05PU1JBTQotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkcyICAgMHg4MjIwNjAwMAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzIgICAweDgyMjA1MjYwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiAgIDB4ODIyMDUyNjAKICNlbmRpZgotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMyAgIDB4MDgwOWEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkczICAgMHgwODA5YTAwMAogCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkcxICAgKDB4MTBmODAwZmYgfCAoMTw8MTEpKQorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzEgICAoMHgxMGY4MDBmZiB8ICgxPDwxMSkpCiAjaWYgQ09ORklHX0xFT05fUkFNX1NFTEVDVCA9PSBDT05GSUdfTEVPTl9SQU1fU0RSQU1fTk9TUkFNCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkcyICAgMHg4MjIwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzIgICAweDgyMjA2MDAwCiAjZWxzZQotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMiAgIDB4ODIyMDUyNjAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcyICAgMHg4MjIwNTI2MAogI2VuZGlmCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkczICAgMHgwODA5YTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzMgICAweDA4MDlhMDAwCiAKIC8qIG5vIEREUiBjb250cm9sbGVyICovCi0jZGVmaW5lIENGR19HUkxJQl9ERFJfQ0ZHICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0REUl9DRkcgICAweDAwMDAwMDAwCiAKIC8qIG5vIEREUjIgQ29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfR1JMSUJfRERSMl9DRkcxIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSTElCX0REUjJfQ0ZHMyAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkcxIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9ERFIyX0NGRzMgMHgwMDAwMDAwMAogCiAvKiBDYWxjdWxhdGUgc2NhbGVyIHJlZ2lzdGVyIHZhbHVlIGZyb20gZGVmYXVsdCBiYXVkcmF0ZSAqLwotI2RlZmluZSBDRkdfR1JMSUJfQVBCVUFSVF9TQ0FMRVIgXAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0FQQlVBUlRfU0NBTEVSIFwKICAoKCgoQ09ORklHX1NZU19DTEtfRlJFUSoxMCkvKENPTkZJR19CQVVEUkFURSo4KSktNSkvMTApCiAKIC8qIElkZW50aWZpY2F0aW9uIHN0cmluZyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2dyX2VwMnM2MC5oIGIvaW5jbHVkZS9jb25maWdzL2dyX2VwMnM2MC5oCmluZGV4IDMxMzNjMGQuLjZmNThiYWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ncl9lcDJzNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZ3JfZXAyczYwLmgKQEAgLTQ1LDcgKzQ1LDcgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQk5NjAwMDAwMAkvKiA5Nk1IeiAqLwogCiAvKiBOdW1iZXIgb2YgU1BBUkMgcmVnaXN0ZXIgd2luZG93cyAqLwotI2RlZmluZSBDRkdfU1BBUkNfTldJTkRPV1MgOAorI2RlZmluZSBDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTIDgKIAogLyogRGVmaW5lIHRoaXMgaXMgdGhlIEdSLTJTNjAtTUVaWiBtZXp6YW5pbmUgaXMgYXZhaWxhYmxlIGFuZCB5b3UKICAqIHdhbnQgdG8gdXNlIHRoZSBVU0IgYW5kIEdSRVRIIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGJvYXJkCkBAIC02MSw3ICs2MSw3IEBACiAgKiBTZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAkvKiAuLi4gYXQgMzg0MDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgpAQCAtODcsNyArODcsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX1VTQgogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKIC8qIEVuYWJsZSBuZWVkZWQgaGVscGVyIGZ1bmN0aW9ucyAqLwotI2RlZmluZSBDRkdfREVWSUNFX0RFUkVHSVNURVIJLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUgkvKiBuZWVkcyBkZXZpY2VfZGVyZWdpc3RlciAqLwogI2VuZGlmCiAKIC8qCkBAIC0xODAsMjggKzE4MCwyOCBAQAogICogICAgICAgICAgICAgICAweEZGMDAwMDAwIGZvciAxNiBNQgogICogICAgICAgICAgICAgICAweEZGODAwMDAwIGZvciAgOCBNQgogICovCi0vKiNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA0MDAwMDAJLyogRlBHQSBCaXQgZmlsZSBpcyBpbiB0b3Agb2YgRkxBU0gsIHdlIG9ubHkgdWVzIHRoZSBib3R0b20gNE1iICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA0MDAwMDAJLyogRlBHQSBCaXQgZmlsZSBpcyBpbiB0b3Agb2YgRkxBU0gsIHdlIG9ubHkgdWVzIHRoZSBib3R0b20gNE1iICovCiAKICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDAxMDAwMAkvKiA2NCBLQiBzZWN0b3JzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogLyoqKiBDRkkgQ09ORklHICoqKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAvKiBCeXBhc3MgY2FjaGUgd2hlbiByZWFkaW5nIHJlZ3MgZnJvbSBmbGFzaCBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9CWVBBU1NfUkVBRAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9CWVBBU1NfUkVBRAogLyogQnVmZmVyZWQgd3JpdGVzICgzMmJ5dGUvZ28pIGluc3RlYWQgb2Ygc2luZ2xlIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTIxMSw1MSArMjExLDUxIEBACiAvKiBDT05GSUdfRU5WX0FERFIgbmVlZCB0byBiZSBhdCBzZWN0b3IgYm91bmRhcnkgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRStDRkdfRkxBU0hfU0laRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFK0NPTkZJR19TWVNfRkxBU0hfU0laRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQogCiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9FTkQJCShDRkdfU0RSQU1fQkFTRStDRkdfU0RSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0VORAkJKENPTkZJR19TWVNfU0RSQU1fQkFTRStDT05GSUdfU1lTX1NEUkFNX1NJWkUpCiAKIC8qIG5vIFNSQU0gYXZhaWxhYmxlICovCi0jdW5kZWYgQ0ZHX1NSQU1fQkFTRQotI3VuZGVmIENGR19TUkFNX1NJWkUKKyN1bmRlZiBDT05GSUdfU1lTX1NSQU1fQkFTRQorI3VuZGVmIENPTkZJR19TWVNfU1JBTV9TSVpFCiAKLSNkZWZpbmUgQ0ZHX1JBTV9CQVNFIENGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19SQU1fU0laRSBDRkdfU0RSQU1fU0laRQotI2RlZmluZSBDRkdfUkFNX0VORCBDRkdfU0RSQU1fRU5ECisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0JBU0UgQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX1NJWkUgQ09ORklHX1NZU19TRFJBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0VORCBDT05GSUdfU1lTX1NEUkFNX0VORAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX1NEUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19TRFJBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX1BST01fU0laRQkJKDgxOTItQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QUk9NX09GRlNFVAkJKENGR19HQkxfREFUQV9PRkZTRVQtQ0ZHX1BST01fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NX1NJWkUJCSg4MTkyLUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NX09GRlNFVAkJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VULUNPTkZJR19TWVNfUFJPTV9TSVpFKQogCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX1BST01fT0ZGU0VULTMyKQotI2RlZmluZSBDRkdfU1RBQ0tfU0laRQkJKDB4MTAwMDAtMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJKENPTkZJR19TWVNfUFJPTV9PRkZTRVQtMzIpCisjZGVmaW5lIENPTkZJR19TWVNfU1RBQ0tfU0laRQkJKDB4MTAwMDAtMzIpCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfRU5ECQkoQ0ZHX0lOSVRfU1BfT0ZGU0VULUNGR19TVEFDS19TSVpFKQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTUFMTE9DX0VORC1DRkdfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfRU5ECQkoQ09ORklHX1NZU19JTklUX1NQX09GRlNFVC1DT05GSUdfU1lTX1NUQUNLX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01BTExPQ19FTkQtQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCiAvKiByZWxvY2F0ZWQgbW9uaXRvciBhcmVhICovCi0jZGVmaW5lIENGR19SRUxPQ19NT05JVE9SX01BWF9FTkQgICBDRkdfTUFMTE9DX0JBU0UKLSNkZWZpbmUgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSAgICAgKENGR19SRUxPQ19NT05JVE9SX01BWF9FTkQtQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfTUFYX0VORCAgIENPTkZJR19TWVNfTUFMTE9DX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UgICAgIChDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfTUFYX0VORC1DT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAvKiBtYWtlIHVuIHJlbG9jYXRlZCBhZGRyZXNzIGZyb20gcmVsb2NhdGVkIGFkZHJlc3MgKi8KLSNkZWZpbmUgVU5fUkVMT0MoYWRkcmVzcykgKGFkZHJlc3MtKENGR19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSkKKyNkZWZpbmUgVU5fUkVMT0MoYWRkcmVzcykgKGFkZHJlc3MtKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uIHVzZXMgb24gYm9hcmQgU01DOTFDMTExLCBob3dldmVyIGlmIGEgbWV6emFuaW5lCkBAIC0yOTUsMjMgKzI5NSwyMyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVVNCIHN0dWZmCkBAIC0zMjMsMjggKzMyMywyOCBAQAogLyoqKioqIEdhaXNsZXIgR1JMSUIgSVAtQ29yZXMgQ29uZmlnICoqKioqKioqLwogCiAvKiBBTUJBIFBsdWcgJiBQbGF5IGluZm8gZGlzcGxheSBvbiBzdGFydHVwICovCi0vKiNkZWZpbmUgQ0ZHX0FNQkFQUF9QUklOVF9PTl9TVEFSVFVQKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0FNQkFQUF9QUklOVF9PTl9TVEFSVFVQKi8KIAotI2RlZmluZSBDRkdfR1JMSUJfU0RSQU0gICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX1NEUkFNICAgIDAKIAogLyogU2VlLCBHUkxJQiBEb2NzIChncmlwLnBkZikgb24gaG93IHRvIHNldCB1cAogICogVGhlc2UgdGhlIG1lbW9yeSBjb250cm9sbGVyIHJlZ2lzdGVycy4KICAqLwotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMSAgKDB4MTBmODAwZmYgfCAoMTw8MTEpKQotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMiAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMyAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzEgICgweDEwZjgwMGZmIHwgKDE8PDExKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkcyICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMyAgMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkcxICAoMHgxMGY4MDBmZiB8ICgxPDwxMSkpCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkcyICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkczICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRlRfTUVNQ0ZHMSAgKDB4MTBmODAwZmYgfCAoMTw8MTEpKQorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzIgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkczICAweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0dSTElCX0REUl9DRkcgIDB4YTkwMDgzMGEKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9ERFJfQ0ZHICAweGE5MDA4MzBhCiAKLSNkZWZpbmUgQ0ZHX0dSTElCX0REUjJfQ0ZHMSAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkxJQl9ERFIyX0NGRzMgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0REUjJfQ0ZHMSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkczIDB4MDAwMDAwMDAKIAogLyogQ2FsY3VsYXRlIHNjYWxlciByZWdpc3RlciB2YWx1ZSBmcm9tIGRlZmF1bHQgYmF1ZHJhdGUgKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX0FQQlVBUlRfU0NBTEVSIFwKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9BUEJVQVJUX1NDQUxFUiBcCiAgKCgoKENPTkZJR19TWVNfQ0xLX0ZSRVEqMTApLyhDT05GSUdfQkFVRFJBVEUqOCkpLTUpLzEwKQogCiAvKiBJZGVudGlmaWNhdGlvbiBzdHJpbmcgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9ncl94YzNzXzE1MDAuaCBiL2luY2x1ZGUvY29uZmlncy9ncl94YzNzXzE1MDAuaAppbmRleCAzMTZiMDAzLi40ZGQ5YTBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZ3JfeGMzc18xNTAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2dyX3hjM3NfMTUwMC5oCkBAIC00MiwxMyArNDIsMTMgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQk0MDAwMDAwMAkvKiA0ME1IeiAqLwogCiAvKiBOdW1iZXIgb2YgU1BBUkMgcmVnaXN0ZXIgd2luZG93cyAqLwotI2RlZmluZSBDRkdfU1BBUkNfTldJTkRPV1MgOAorI2RlZmluZSBDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTIDgKIAogLyoKICAqIFNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCS8qIC4uLiBhdCAzODQwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKiBQYXJ0aXRpb25zICovCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCkBAIC0xNTYsMjggKzE1NiwyOCBAQAogICogICAgICAgICAgICAgICAweEZGMDAwMDAwIGZvciAxNiBNQgogICogICAgICAgICAgICAgICAweEZGODAwMDAwIGZvciAgOCBNQgogICovCi0vKiNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKy8qI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwMjAwMDAJLyogMTI4IEtCIHNlY3RvcnMgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogLyoqKiBDRkkgQ09ORklHICoqKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAvKiBCeXBhc3MgY2FjaGUgd2hlbiByZWFkaW5nIHJlZ3MgZnJvbSBmbGFzaCBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9CWVBBU1NfUkVBRAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9CWVBBU1NfUkVBRAogLyogQnVmZmVyZWQgd3JpdGVzICgzMmJ5dGUvZ28pIGluc3RlYWQgb2Ygc2luZ2xlIGFjY2Vzc2VzICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTE4Nyw1MiArMTg3LDUyIEBACiAvKiBDT05GSUdfRU5WX0FERFIgbmVlZCB0byBiZSBhdCBzZWN0b3IgYm91bmRhcnkgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRStDRkdfRkxBU0hfU0laRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFK0NPTkZJR19TWVNfRkxBU0hfU0laRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQogCiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkweDQwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VORAkJKENGR19TRFJBTV9CQVNFK0NGR19TRFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9FTkQJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UrQ09ORklHX1NZU19TRFJBTV9TSVpFKQogCiAvKiBubyBTUkFNIGF2YWlsYWJsZSAqLwotI3VuZGVmIENGR19TUkFNX0JBU0UKLSN1bmRlZiBDRkdfU1JBTV9TSVpFCisjdW5kZWYgQ09ORklHX1NZU19TUkFNX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1NSQU1fU0laRQogCiAvKiBBbHdheXMgUnVuIFUtQm9vdCBmcm9tIFNEUkFNICovCi0jZGVmaW5lIENGR19SQU1fQkFTRSBDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfUkFNX1NJWkUgQ0ZHX1NEUkFNX1NJWkUKLSNkZWZpbmUgQ0ZHX1JBTV9FTkQgQ0ZHX1NEUkFNX0VORAorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9CQVNFIENPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9TSVpFIENPTkZJR19TWVNfU0RSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1JBTV9FTkQgQ09ORklHX1NZU19TRFJBTV9FTkQKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX1BST01fU0laRQkJKDgxOTItQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QUk9NX09GRlNFVAkJKENGR19HQkxfREFUQV9PRkZTRVQtQ0ZHX1BST01fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NX1NJWkUJCSg4MTkyLUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NX09GRlNFVAkJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VULUNPTkZJR19TWVNfUFJPTV9TSVpFKQogCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX1BST01fT0ZGU0VULTMyKQotI2RlZmluZSBDRkdfU1RBQ0tfU0laRQkJKDB4MTAwMDAtMzIpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJKENPTkZJR19TWVNfUFJPTV9PRkZTRVQtMzIpCisjZGVmaW5lIENPTkZJR19TWVNfU1RBQ0tfU0laRQkJKDB4MTAwMDAtMzIpCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfRU5ECQkoQ0ZHX0lOSVRfU1BfT0ZGU0VULUNGR19TVEFDS19TSVpFKQotI2RlZmluZSBDRkdfTUFMTE9DX0JBU0UJCShDRkdfTUFMTE9DX0VORC1DRkdfTUFMTE9DX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfRU5ECQkoQ09ORklHX1NZU19JTklUX1NQX09GRlNFVC1DT05GSUdfU1lTX1NUQUNLX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01BTExPQ19FTkQtQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCiAvKiByZWxvY2F0ZWQgbW9uaXRvciBhcmVhICovCi0jZGVmaW5lIENGR19SRUxPQ19NT05JVE9SX01BWF9FTkQgICBDRkdfTUFMTE9DX0JBU0UKLSNkZWZpbmUgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSAgICAgKENGR19SRUxPQ19NT05JVE9SX01BWF9FTkQtQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfTUFYX0VORCAgIENPTkZJR19TWVNfTUFMTE9DX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UgICAgIChDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfTUFYX0VORC1DT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAvKiBtYWtlIHVuIHJlbG9jYXRlZCBhZGRyZXNzIGZyb20gcmVsb2NhdGVkIGFkZHJlc3MgKi8KLSNkZWZpbmUgVU5fUkVMT0MoYWRkcmVzcykgKGFkZHJlc3MtKENGR19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSkKKyNkZWZpbmUgVU5fUkVMT0MoYWRkcmVzcykgKGFkZHJlc3MtKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yNTQsMjMgKzI1NCwyMyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCkBAIC0yODYsMzAgKzI4NiwzMCBAQAogLyoqKioqIEdhaXNsZXIgR1JMSUIgSVAtQ29yZXMgQ29uZmlnICoqKioqKioqLwogCiAvKiBBTUJBIFBsdWcgJiBQbGF5IGluZm8gZGlzcGxheSBvbiBzdGFydHVwICovCi0vKiNkZWZpbmUgQ0ZHX0FNQkFQUF9QUklOVF9PTl9TVEFSVFVQKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0FNQkFQUF9QUklOVF9PTl9TVEFSVFVQKi8KIAotI2RlZmluZSBDRkdfR1JMSUJfU0RSQU0gICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX1NEUkFNICAgIDAKIAogLyogU2VlLCBHUkxJQiBEb2NzIChncmlwLnBkZikgb24gaG93IHRvIHNldCB1cAogICogVGhlc2UgdGhlIG1lbW9yeSBjb250cm9sbGVyIHJlZ2lzdGVycy4KICAqLwotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMSAgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzIgICAweDgyMjA2MDAwCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkczICAgMHgwMDEzNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzEgICAoMHgwMDAwMDBmZiB8ICgxPDwxMSkpCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkczICAgMHgwMDEzNjAwMAogCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkcxICAgKDB4MDAwMDAwZmYgfCAoMTw8MTEpKQotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKLSNkZWZpbmUgQ0ZHX0dSTElCX0ZUX01FTUNGRzMgICAweDAwMTM2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRlRfTUVNQ0ZHMSAgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcyICAgMHg4MjIwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzMgICAweDAwMTM2MDAwCiAKIC8qIG5vIEREUiBjb250cm9sbGVyICovCi0jZGVmaW5lIENGR19HUkxJQl9ERFJfQ0ZHICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0REUl9DRkcgICAweDAwMDAwMDAwCiAKIC8qIG5vIEREUjIgQ29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfR1JMSUJfRERSMl9DRkcxIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSTElCX0REUjJfQ0ZHMyAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkcxIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9ERFIyX0NGRzMgMHgwMDAwMDAwMAogCiAvKiBDYWxjdWxhdGUgc2NhbGVyIHJlZ2lzdGVyIHZhbHVlIGZyb20gZGVmYXVsdCBiYXVkcmF0ZSAqLwotI2RlZmluZSBDRkdfR1JMSUJfQVBCVUFSVF9TQ0FMRVIgXAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0FQQlVBUlRfU0NBTEVSIFwKICAoKCgoQ09ORklHX1NZU19DTEtfRlJFUSoxMCkvKENPTkZJR19CQVVEUkFURSo4KSktNSkvMTApCiAKIC8qIElkZW50aWZpY2F0aW9uIHN0cmluZyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2dyc2ltLmggYi9pbmNsdWRlL2NvbmZpZ3MvZ3JzaW0uaAppbmRleCBhNWVmNmUxLi5hOWVhYTRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZ3JzaW0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvZ3JzaW0uaApAQCAtNDksMTMgKzQ5LDEzIEBACiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNDAwMDAwMDAJLyogNDBNSHogKi8KIAogLyogTnVtYmVyIG9mIFNQQVJDIHJlZ2lzdGVyIHdpbmRvd3MgKi8KLSNkZWZpbmUgQ0ZHX1NQQVJDX05XSU5ET1dTIDgKKyNkZWZpbmUgQ09ORklHX1NZU19TUEFSQ19OV0lORE9XUyA4CiAKIC8qCiAgKiBTZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkzODQwMAkvKiAuLi4gYXQgMzg0MDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgpAQCAtOTMsOSArOTMsOSBAQAogCSJlY2hvIgogCiAjdW5kZWYJQ09ORklHX0JPT1RBUkdTCi0vKiNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSIDAqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKy8qI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSIDAqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJXApAQCAtMTc4LDMyICsxNzgsMzIgQEAKICAqICAgICAgICAgICAgICAgMHhGRjAwMDAwMCBmb3IgMTYgTUIKICAqICAgICAgICAgICAgICAgMHhGRjgwMDAwMCBmb3IgIDggTUIKICAqLwotI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OT19GTEFTSAkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg4MDAwCiAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UrQ0ZHX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX1NZU19GTEFTSF9TSVpFLUNPTkZJR19FTlZfU0laRSkKIAogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDIwMDAwCS8qIDEyOCBLQiBzZWN0b3JzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfTE9DS19UT1VUCTUJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0IChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCTEwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIENsZWFyIExvY2sgQml0cyAoaW4gbXMpICovCiAKICNpZmRlZiBFTkFCTEVfRkxBU0hfU1VQUE9SVAogLyogRm9yIHVzZSB3aXRoIGdyc2ltIEZMQVNIIGVtdWxhdGlvbiBleHRlbnNpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogI3VuZGVmIENPTkZJR19GTEFTSF84QklUCS8qIEZsYXNoIGlzIDMyLWJpdCAqLwogCiAvKioqIENGSSBDT05GSUcgKioqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV84QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV84QklUCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNlbmRpZgogCiAvKgpAQCAtMjE4LDQ2ICsyMTgsNDYgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTB4MDIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0VORAkJKENGR19TRFJBTV9CQVNFK0NGR19TRFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fRU5ECQkoQ09ORklHX1NZU19TRFJBTV9CQVNFK0NPTkZJR19TWVNfU0RSQU1fU0laRSkKIAogLyogbm8gU1JBTSBhdmFpbGFibGUgKi8KLSN1bmRlZiBDRkdfU1JBTV9CQVNFCi0jdW5kZWYgQ0ZHX1NSQU1fU0laRQorI3VuZGVmIENPTkZJR19TWVNfU1JBTV9CQVNFCisjdW5kZWYgQ09ORklHX1NZU19TUkFNX1NJWkUKIAogLyogQWx3YXlzIFJ1biBVLUJvb3QgZnJvbSBTRFJBTSAqLwotI2RlZmluZSBDRkdfUkFNX0JBU0UgQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JBTV9TSVpFIENGR19TRFJBTV9TSVpFCi0jZGVmaW5lIENGR19SQU1fRU5EIENGR19TRFJBTV9FTkQKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fQkFTRSBDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fU0laRSBDT05GSUdfU1lTX1NEUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1fRU5EIENPTkZJR19TWVNfU0RSQU1fRU5ECiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCi0jZGVmaW5lIENGR19QUk9NX1NJWkUJCSg4MTkyLUNGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfUFJPTV9PRkZTRVQJCShDRkdfR0JMX0RBVEFfT0ZGU0VULUNGR19QUk9NX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTV9TSVpFCQkoODE5Mi1DT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTV9PRkZTRVQJCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVC1DT05GSUdfU1lTX1BST01fU0laRSkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19QUk9NX09GRlNFVC0zMikKLSNkZWZpbmUgQ0ZHX1NUQUNLX1NJWkUJCSgweDEwMDAwLTMyKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCShDT05GSUdfU1lTX1BST01fT0ZGU0VULTMyKQorI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1NJWkUJCSgweDEwMDAwLTMyKQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0VORAkJKENGR19JTklUX1NQX09GRlNFVC1DRkdfU1RBQ0tfU0laRSkKLSNkZWZpbmUgQ0ZHX01BTExPQ19CQVNFCQkoQ0ZHX01BTExPQ19FTkQtQ0ZHX01BTExPQ19MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0VORAkJKENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQtQ09ORklHX1NZU19TVEFDS19TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NQUxMT0NfRU5ELUNPTkZJR19TWVNfTUFMTE9DX0xFTikKIAogLyogcmVsb2NhdGVkIG1vbml0b3IgYXJlYSAqLwotI2RlZmluZSBDRkdfUkVMT0NfTU9OSVRPUl9NQVhfRU5EICAgQ0ZHX01BTExPQ19CQVNFCi0jZGVmaW5lIENGR19SRUxPQ19NT05JVE9SX0JBU0UgICAgIChDRkdfUkVMT0NfTU9OSVRPUl9NQVhfRU5ELUNGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX01BWF9FTkQgICBDT05GSUdfU1lTX01BTExPQ19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFICAgICAoQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX01BWF9FTkQtQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogLyogbWFrZSB1biByZWxvY2F0ZWQgYWRkcmVzcyBmcm9tIHJlbG9jYXRlZCBhZGRyZXNzICovCi0jZGVmaW5lIFVOX1JFTE9DKGFkZHJlc3MpIChhZGRyZXNzLShDRkdfUkVMT0NfTU9OSVRPUl9CQVNFLVRFWFRfQkFTRSkpCisjZGVmaW5lIFVOX1JFTE9DKGFkZHJlc3MpIChhZGRyZXNzLShDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpKQogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjg0LDUyICsyODQsNTIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0gICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qKioqKiBHYWlzbGVyIEdSTElCIElQLUNvcmVzIENvbmZpZyAqKioqKioqKi8KIAogLyogQU1CQSBQbHVnICYgUGxheSBpbmZvIGRpc3BsYXkgb24gc3RhcnR1cCAqLwotLyojZGVmaW5lIENGR19BTUJBUFBfUFJJTlRfT05fU1RBUlRVUCovCisvKiNkZWZpbmUgQ09ORklHX1NZU19BTUJBUFBfUFJJTlRfT05fU1RBUlRVUCovCiAKLSNkZWZpbmUgQ0ZHX0dSTElCX1NEUkFNICAgICAwCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkcxICAgKDB4MDAwMDAwZmYgfCAoMTw8MTEpKQorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX1NEUkFNICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMSAgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKICNpZiBDT05GSUdfR1JTSU0KIC8qIEdSU0lNIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzIgICAweDgyMjA2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKICNlbHNlCiAvKiBUU0lNIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzIgICAweDAwMDAxODIwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiAgIDB4MDAwMDE4MjAKICNlbmRpZgotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMyAgIDB4MDAxMzYwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9NRU1DRkczICAgMHgwMDEzNjAwMAogCi0jZGVmaW5lIENGR19HUkxJQl9GVF9NRU1DRkcxICAgKDB4MDAwMDAwZmYgfCAoMTw8MTEpKQotI2RlZmluZSBDRkdfR1JMSUJfRlRfTUVNQ0ZHMiAgIDB4ODIyMDYwMDAKLSNkZWZpbmUgQ0ZHX0dSTElCX0ZUX01FTUNGRzMgICAweDAwMTM2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRlRfTUVNQ0ZHMSAgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9GVF9NRU1DRkcyICAgMHg4MjIwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0ZUX01FTUNGRzMgICAweDAwMTM2MDAwCiAKIC8qIG5vIEREUiBjb250cm9sbGVyICovCi0jZGVmaW5lIENGR19HUkxJQl9ERFJfQ0ZHICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX0REUl9DRkcgICAweDAwMDAwMDAwCiAKIC8qIG5vIEREUjIgQ29udHJvbGxlciAqLwotI2RlZmluZSBDRkdfR1JMSUJfRERSMl9DRkcxIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSTElCX0REUjJfQ0ZHMyAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfRERSMl9DRkcxIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9ERFIyX0NGRzMgMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19HUkxJQl9BUEJVQVJUX1NDQUxFUiBcCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfQVBCVUFSVF9TQ0FMRVIgXAogICgoKChDT05GSUdfU1lTX0NMS19GUkVRKjEwKS8oQ09ORklHX0JBVURSQVRFKjgpKS01KS8xMCkKIAogLyogZGVmYXVsdCBrZXJuZWwgY29tbWFuZCBsaW5lICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZ3JzaW1fbGVvbjIuaCBiL2luY2x1ZGUvY29uZmlncy9ncnNpbV9sZW9uMi5oCmluZGV4IGE4OGRkYjMuLjU4ZjI2ZmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9ncnNpbV9sZW9uMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ncnNpbV9sZW9uMi5oCkBAIC00OCwxMyArNDgsMTMgQEAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQk0MDAwMDAwMAkvKiA0ME1IeiAqLwogCiAvKiBOdW1iZXIgb2YgU1BBUkMgcmVnaXN0ZXIgd2luZG93cyAqLwotI2RlZmluZSBDRkdfU1BBUkNfTldJTkRPV1MgOAorI2RlZmluZSBDT05GSUdfU1lTX1NQQVJDX05XSU5ET1dTIDgKIAogLyoKICAqIFNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCS8qIC4uLiBhdCAzODQwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKiBQYXJ0aXRpb25zICovCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCkBAIC05MCw5ICs5MCw5IEBACiAJImVjaG8iCiAKICN1bmRlZglDT05GSUdfQk9PVEFSR1MKLS8qI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIgMCovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorLyojZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIgMCovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCQlcCkBAIC0xNzUsMzIgKzE3NSwzMiBAQAogICogICAgICAgICAgICAgICAweEZGMDAwMDAwIGZvciAxNiBNQgogICogICAgICAgICAgICAgICAweEZGODAwMDAwIGZvciAgOCBNQgogICovCi0jZGVmaW5lIENGR19OT19GTEFTSAkJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDgwMDAKIAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRStDRkdfRkxBU0hfU0laRS1DT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRStDT05GSUdfU1lTX0ZMQVNIX1NJWkUtQ09ORklHX0VOVl9TSVpFKQogCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwMjAwMDAJLyogMTI4IEtCIHNlY3RvcnMgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJNQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAk1CS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KIAogI2lmZGVmIEVOQUJMRV9GTEFTSF9TVVBQT1JUCiAvKiBGb3IgdXNlIHdpdGggZ3JzaW0gRkxBU0ggZW11bGF0aW9uIGV4dGVuc2lvbiAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwogCiAjdW5kZWYgQ09ORklHX0ZMQVNIXzhCSVQJLyogRmxhc2ggaXMgMzItYml0ICovCiAKIC8qKiogQ0ZJIENPTkZJRyAqKiovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzhCSVQKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2VuZGlmCiAKIC8qCkBAIC0yMTUsNDcgKzIxNSw0NyBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHgwMDgwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fRU5ECQkoQ0ZHX1NEUkFNX0JBU0UrQ0ZHX1NEUkFNX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCTB4MDA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9FTkQJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UrQ09ORklHX1NZU19TRFJBTV9TSVpFKQogCiAvKiBubyBTUkFNIGF2YWlsYWJsZSAqLwotI3VuZGVmIENGR19TUkFNX0JBU0UKLSN1bmRlZiBDRkdfU1JBTV9TSVpFCisjdW5kZWYgQ09ORklHX1NZU19TUkFNX0JBU0UKKyN1bmRlZiBDT05GSUdfU1lTX1NSQU1fU0laRQogCiAKIC8qIEFsd2F5cyBSdW4gVS1Cb290IGZyb20gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX1JBTV9CQVNFIENGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19SQU1fU0laRSBDRkdfU0RSQU1fU0laRQotI2RlZmluZSBDRkdfUkFNX0VORCBDRkdfU0RSQU1fRU5ECisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0JBU0UgQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX1NJWkUgQ09ORklHX1NZU19TRFJBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfUkFNX0VORCBDT05GSUdfU1lTX1NEUkFNX0VORAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAotI2RlZmluZSBDRkdfUFJPTV9TSVpFCQkoODE5Mi1DRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BST01fT0ZGU0VUCQkoQ0ZHX0dCTF9EQVRBX09GRlNFVC1DRkdfUFJPTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BST01fU0laRQkJKDgxOTItQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BST01fT0ZGU0VUCQkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQtQ09ORklHX1NZU19QUk9NX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCShDRkdfUFJPTV9PRkZTRVQtMzIpCi0jZGVmaW5lIENGR19TVEFDS19TSVpFCQkoMHgxMDAwMC0zMikKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19QUk9NX09GRlNFVC0zMikKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFDS19TSVpFCQkoMHgxMDAwMC0zMikKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19FTkQJCShDRkdfSU5JVF9TUF9PRkZTRVQtQ0ZHX1NUQUNLX1NJWkUpCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NQUxMT0NfRU5ELUNGR19NQUxMT0NfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19FTkQJCShDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VULUNPTkZJR19TWVNfU1RBQ0tfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfQkFTRQkJKENPTkZJR19TWVNfTUFMTE9DX0VORC1DT05GSUdfU1lTX01BTExPQ19MRU4pCiAKIC8qIHJlbG9jYXRlZCBtb25pdG9yIGFyZWEgKi8KLSNkZWZpbmUgQ0ZHX1JFTE9DX01PTklUT1JfTUFYX0VORCAgIENGR19NQUxMT0NfQkFTRQotI2RlZmluZSBDRkdfUkVMT0NfTU9OSVRPUl9CQVNFICAgICAoQ0ZHX1JFTE9DX01PTklUT1JfTUFYX0VORC1DRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9NQVhfRU5EICAgQ09ORklHX1NZU19NQUxMT0NfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSAgICAgKENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9NQVhfRU5ELUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qIG1ha2UgdW4gcmVsb2NhdGVkIGFkZHJlc3MgZnJvbSByZWxvY2F0ZWQgYWRkcmVzcyAqLwotI2RlZmluZSBVTl9SRUxPQyhhZGRyZXNzKSAoYWRkcmVzcy0oQ0ZHX1JFTE9DX01PTklUT1JfQkFTRS1URVhUX0JBU0UpKQorI2RlZmluZSBVTl9SRUxPQyhhZGRyZXNzKSAoYWRkcmVzcy0oQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0UtVEVYVF9CQVNFKSkKIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI4MiwzNyArMjgyLDM3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKioqKiogR2Fpc2xlciBHUkxJQiBJUC1Db3JlcyBDb25maWcgKioqKioqKiovCiAKLSNkZWZpbmUgQ0ZHX0dSTElCX1NEUkFNICAgIDAKLSNkZWZpbmUgQ0ZHX0dSTElCX01FTUNGRzEgICgweDAwMDAwMGZmIHwgKDE8PDExKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUkxJQl9TRFJBTSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMSAgKDB4MDAwMDAwZmYgfCAoMTw8MTEpKQogI2lmIENPTkZJR19HUlNJTQotI2RlZmluZSBDRkdfR1JMSUJfTUVNQ0ZHMiAgMHg4MjIwNjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSTElCX01FTUNGRzIgIDB4ODIyMDYwMDAKICNlbHNlCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkcyICAweDAwMDAxODIwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMiAgMHgwMDAwMTgyMAogI2VuZGlmCi0jZGVmaW5lIENGR19HUkxJQl9NRU1DRkczICAweDAwMTM2MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JMSUJfTUVNQ0ZHMyAgMHgwMDEzNjAwMAogCiAvKioqIExFT04yIFVBUlQgMSAqKiovCi0jZGVmaW5lIENGR19MRU9OMl9VQVJUMV9TQ0FMRVIgXAorI2RlZmluZSBDT05GSUdfU1lTX0xFT04yX1VBUlQxX1NDQUxFUiBcCiAJKCgoKENPTkZJR19TWVNfQ0xLX0ZSRVEqMTApLyhDT05GSUdfQkFVRFJBVEUqOCkpLTUpLzEwKQogCiAvKiBVQVJUMSBEZWZpbmUgdG8gMSBvciAwICovCkBAIC0zMjMsNyArMzIzLDcgQEAKIAogLyoqKiBMRU9OMiBVQVJUIDIgKioqLwogCi0jZGVmaW5lIENGR19MRU9OMl9VQVJUMl9TQ0FMRVIgXAorI2RlZmluZSBDT05GSUdfU1lTX0xFT04yX1VBUlQyX1NDQUxFUiBcCiAJKCgoKENPTkZJR19TWVNfQ0xLX0ZSRVEqMTApLyhDT05GSUdfQkFVRFJBVEUqOCkpLTUpLzEwKQogCiAvKiBVQVJUMiBEZWZpbmUgdG8gMSBvciAwICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZ3RoMi5oIGIvaW5jbHVkZS9jb25maWdzL2d0aDIuaAppbmRleCBhYWYxZTRhLi5hZWVkZTA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvZ3RoMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ndGgyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgfQogCiAvKiBPbmx5IGludGVycnVwdCBib290IGlmIHNwYWNlIGlzIHByZXNzZWQgKi8KIC8qIElmIGEgbG9uZyBzZXJpYWwgY2FibGUgaXMgY29ubmVjdGVkIGJ1dCAqLwpAQCAtMTA3LDUxICsxMDcsNTEgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIkdUSDIgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIkdUSDIgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CiAKLSNkZWZpbmUgQ0ZHX01IWgkJCTUwMAorI2RlZmluZSBDT05GSUdfU1lTX01IWgkJCTUwMAogCi0jZGVmaW5lIENGR19NSVBTX1RJTUVSX0ZSRVEJKENGR19NSFogKiAxMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01JUFNfVElNRVJfRlJFUQkoQ09ORklHX1NZU19NSFogKiAxMDAwMDAwKQogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMCAgICAgLyogQ2FjaGVkIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDgwMDAwMDAwICAgICAvKiBDYWNoZWQgYWRkciAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4ODEwMDAwMDAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDgxMDAwMDAwICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODAxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODMwMDAwMDAKIAogI2RlZmluZSBDT05GSUdfSFdfV0FUQ0hET0cJMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0gJCTB4YmZjMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogCiAvKiBUaGUgZm9sbG93aW5nICNkZWZpbmVzIGFyZSBuZWVkZWQgdG8gZ2V0IGZsYXNoIGVudmlyb25tZW50IHJpZ2h0ICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCTB4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAKIAogLyogV2UgYm9vdCBmcm9tIHRoaXMgZmxhc2gsIHNlbGVjdGVkIHdpdGggZGlwIHN3aXRjaCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0gKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyICogQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQogCkBAIC0xNjgsMTEgKzE2OCwxMSBAQAogI2RlZmluZSBDT05GSUdfTUVNU0laRV9JTl9CWVRFUwogCiAvKi0tLUFUQSBQQ01DSUEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRSAweDQwMDAwMDAgLyogT2Zmc2V0IHRvIHNsb3QgMSBGSVhNRSEhISAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSAweDQwMDAwMDAgLyogT2Zmc2V0IHRvIHNsb3QgMSBGSVhNRSEhISAqLwogCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIgIDB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19CQVNFICAgMHgyODAwMDAwMAotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJfQkFTRSAweDMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSICAweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0JBU0UgICAweDI4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJfQkFTRSAweDMwMDAwMDAwCiAKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EKIApAQCAtMTgzLDMxICsxODMsMzEgQEAKICNkZWZpbmUgQ09ORklHX0lERV9QQ01DSUEgMQogCiAvKiBXZSBvbmx5IHN1cHBvcnQgb25lIHNsb3QgZm9yIG5vdyAqLwotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVECSBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfSU9fQkFTRQogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTAKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkwCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMjAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJMTYzODQKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKIAogI2RlZmluZSBHUElPX0NBQ09ORklHICAoMTw8MCkKICNkZWZpbmUgR1BJT19EUEFDT05GSUcgKDE8PDYpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvZ3c4MjYwLmggYi9pbmNsdWRlL2NvbmZpZ3MvZ3c4MjYwLmgKaW5kZXggZTE4Nzc2NC4uNTNhMDAxZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2d3ODI2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ndzgyNjAuaApAQCAtNzIsNyArNzIsNyBAQAogICogMHg2ICAgICAgIDB4MSAgICAgNjYgMTMzICAgICAyNjYgICAgQ2xvc2UgQ2xvc2UgIE9wZW4KICAqIDB4NiAgICAgICAweDIgICAgIDY2IDEzMyAgICAgMzAwICAgIENsb3NlIE9wZW4gICBDbG9zZQogICovCi0jZGVmaW5lIENGR19TQkNfTU9EQ0tfSCAweDA1CisjZGVmaW5lIENPTkZJR19TWVNfU0JDX01PRENLX0ggMHgwNQogCiAvKiBEZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCB0byBib290IGZyb20gMHgwMDAwMDEwMC4gSWYgeW91IGRvbid0IGRlZmluZQogICogdGhpcywgeW91IHdpbGwgbmVlZCB0byBwcm9ncmFtIHRoZSBib290bG9hZGVyIHRvIDB4ZmZmMDAwMDAsIGFuZApAQCAtODAsNDggKzgwLDQ4IEBACiAgKiB3YXkgdG8gZG8gdGhhdCBpcyB0byBwcm9ncmFtIHRoZSBib290bG9hZGVyIGF0IGJvdGggYWRkcmVzc2VzLgogICogSXQgaXMgc3VnZ2VzdGVkIHRoYXQgeW91IGp1c3QgbGV0IFUtQm9vdCBsaXZlIGF0IDB4MDAwMDAwMDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX1NCQ19CT09UX0xPVyAxCisjZGVmaW5lIENPTkZJR19TWVNfU0JDX0JPT1RfTE9XIDEKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgbWFpbiBGTEFTSCBiZSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1CeXRlcyk/IFRoaXMgbXVzdCBjb250YWluIFRFWFRfQkFTRSBmcm9tIGJvYXJkL3NiYzgyNjAvY29uZmlnLm1rCiAgKiBUaGUgbWFpbiBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkIHRvICpDUzAuIFUtQm9vdCBleHBlY3RzCiAgKiB0aGlzIHRvIGJlIHRoZSBTSU1NLgogICovCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRSAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRSA4CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFIDgKIAotLyogRGVmaW5lIENGR19GTEFTSF9DSEVDS1NVTSB0byBlbmFibGUgZmxhc2ggY2hlY2tzdW0gZHVyaW5nIGJvb3QuCisvKiBEZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTSB0byBlbmFibGUgZmxhc2ggY2hlY2tzdW0gZHVyaW5nIGJvb3QuCiAgKiBOb3RlOiB0aGUgJ2ZsYXNoY2hlY2tzdW0nIGVudmlyb25tZW50IHZhcmlhYmxlIG11c3QgYWxzbyBiZSBzZXQgdG8gJ3knLgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gRElNTSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/CiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMF9CQVNFIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TSVpFIDY0CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TSVpFIDY0CiAKIC8qCiAgKiBEUkFNIHRlc3RzCi0gKiAgIENGR19EUkFNX1RFU1QgLSBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdGVzdHMuCisgKiAgIENPTkZJR19TWVNfRFJBTV9URVNUIC0gZW5hYmxlcyB0aGUgZm9sbG93aW5nIHRlc3RzLgogICoKLSAqICAgQ0ZHX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IGZvciBzaG9ydGVkIG9yIG9wZW4gZGF0YSBsaW5lcworICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IGZvciBzaG9ydGVkIG9yIG9wZW4gZGF0YSBsaW5lcwogICogICAgICAgICAgICAgICAgICAgICAgICBFbnZpcm9ubWVudCB2YXJpYWJsZSAndGVzdF9kcmFtX2RhdGEnIG11c3QgYmUKICAqICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRvICd5Jy4KLSAqICAgQ0ZHX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IHRvIHZlcmlmeSB0aGF0IGVhY2ggd29yZCBpcyB1bmlxdWVseQorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9EQVRBIC0gRW5hYmxlcyB0ZXN0IHRvIHZlcmlmeSB0aGF0IGVhY2ggd29yZCBpcyB1bmlxdWVseQogICogICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzYWJsZS4gRW52aXJvbm1lbnQgdmFyaWFibGUKICAqICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3RfZHJhbV9hZGRyZXNzJyBtdXN0IGJlIHNldCB0byAneScuCi0gKiAgIENGR19EUkFNX1RFU1RfV0FMSyAtIEVuYWJsZXMgdGVzdCBhIDY0LWJpdCB3YWxraW5nIG9uZXMgcGF0dGVybiB0ZXN0LgorICogICBDT05GSUdfU1lTX0RSQU1fVEVTVF9XQUxLIC0gRW5hYmxlcyB0ZXN0IGEgNjQtYml0IHdhbGtpbmcgb25lcyBwYXR0ZXJuIHRlc3QuCiAgKiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgdGVzdCB0YWtlcyBhYm91dCA2IG1pbnV0ZXMgdG8gdGVzdCA2NCBNQi4KICAqICAgICAgICAgICAgICAgICAgICAgICAgRW52aXJvbm1lbnQgdmFyaWFibGUgJ3Rlc3RfZHJhbV93YWxrJyBtdXN0IGJlCiAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0byAneScuCiAgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKLSNkZWZpbmUgQ0ZHX0RSQU1fVEVTVF9EQVRBCi0jZGVmaW5lIENGR19EUkFNX1RFU1RfQUREUkVTUwotI2RlZmluZSBDRkdfRFJBTV9URVNUX1dBTEsKLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1RfREFUQQorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fVEVTVF9BRERSRVNTCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9URVNUX1dBTEsKKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVCAqLwogCiAvKgogICogR1c4MjYwIHdpdGggMTYgTUIgRElNTToKQEAgLTE0MCwxMCArMTQwLDEwIEBACiAgKiAgICAgMHgwMEY1IEZGQjAgICAgIEJvYXJkIEluZm8gRGF0YQogICogICAgIDB4MDBGNiAwMDAwICAgICBNYWxsb2MgQXJlbmEKICAqICAgICAgICAgICA6ICAgICAgICAgIENPTkZJR19FTlZfU0VDVF9TSVpFLCAyNTZrCi0gKiAgICAgICAgICAgOiAgICAgICAgICBDRkdfTUFMTE9DX0xFTiwgICAgMTI4aworICogICAgICAgICAgIDogICAgICAgICAgQ09ORklHX1NZU19NQUxMT0NfTEVOLCAgICAxMjhrCiAgKiAgICAgMHgwMEZDIDAwMDAgICAgIFJBTSBDb3B5IG9mIE1vbml0b3IgQ29kZQotICogICAgICAgICAgIDogICAgICAgICAgICAgIENGR19NT05JVE9SX0xFTiwgICAyNTZrCi0gKiAgICAgMHgwMEZGIEZGRkYgICAgIFtFbmQgb2YgUkFNXSwgQ0ZHX1NEUkFNX1NJWkUgLSAxCisgKiAgICAgICAgICAgOiAgICAgICAgICAgICAgQ09ORklHX1NZU19NT05JVE9SX0xFTiwgICAyNTZrCisgKiAgICAgMHgwMEZGIEZGRkYgICAgIFtFbmQgb2YgUkFNXSwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMQogICovCiAKIC8qCkBAIC0xNjMsMTAgKzE2MywxMCBAQAogICogICAgIDB4MDNGNSBGRkIwICAgICBCb2FyZCBJbmZvIERhdGEKICAqICAgICAweDAzRjYgMDAwMCAgICAgTWFsbG9jIEFyZW5hCiAgKiAgICAgICAgICAgOiAgICAgICAgICBDT05GSUdfRU5WX1NFQ1RfU0laRSwgMjU2awotICogICAgICAgICAgIDogICAgICAgICAgQ0ZHX01BTExPQ19MRU4sICAgIDEyOGsKKyAqICAgICAgICAgICA6ICAgICAgICAgIENPTkZJR19TWVNfTUFMTE9DX0xFTiwgICAgMTI4awogICogICAgIDB4MDNGQyAwMDAwICAgICBSQU0gQ29weSBvZiBNb25pdG9yIENvZGUKLSAqICAgICAgICAgICA6ICAgICAgICAgICAgICBDRkdfTU9OSVRPUl9MRU4sICAgMjU2awotICogICAgIDB4MDNGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENGR19TRFJBTV9TSVpFIC0gMQorICogICAgICAgICAgIDogICAgICAgICAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sICAgMjU2aworICogICAgIDB4MDNGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDEKICAqLwogCiAKQEAgLTIzMywxMCArMjMzLDEwIEBACiAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDMpCiAKQEAgLTI0NiwxMCArMjQ2LDEwIEBACiAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDM3xDTVhGQ1JfUkYzQ1NfTVNLfENNWEZDUl9URjNDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGM0NTX0NMSzE1fENNWEZDUl9URjNDU19DTEsxNikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKIAogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MsIENPTkZJR19FVEhFUl9JTkRFWCAqLwogCkBAIC0yOTcsMTAgKzI5NywxMCBAQAogI2RlZmluZSBDT05GSUdfQk9PVFBfRE5TCiAKIC8qIHVuZGVmIHRoaXMgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKIAogLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAgIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAiPT4gIgogCiAKIC8qCkBAIC0zMTksMTYgKzMxOSwxNiBAQAogCiAKIC8qIFdoZXJlIGRvIHRoZSBpbnRlcm5hbCByZWdpc3RlcnMgbGl2ZT8gKi8KLSNkZWZpbmUgQ0ZHX0lNTVIgICAgICAgIDB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SICAgICAgICAweGYwMDAwMDAwCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBXaGF0IGlzIHRoZSBhZGRyZXNzIG9mIElPIGNvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQ0ZHX0lPX0JBU0UgMHhlMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lPX0JBU0UgMHhlMDAwMDAwMAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC0zNDQsNDQgKzM0NCw0NCBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgMTAyNCAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAxMDI0ICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgICovCiAjZWxzZQotIyAgZGVmaW5lIENGR19DQlNJWkUgICAgICAgIDI1NiAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgMjU2ICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICAqLwogI2VuZGlmCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUgICAgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgIDggICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgIDggICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwogCi0jZGVmaW5lIENGR19CQVJHU0laRSAgICBDRkdfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKIC8qIENvbnZlcnQgY2xvY2tzIHRvIE1IWiB3aGVuIHBhc3NpbmcgYm9hcmQgaW5mbyB0byBrZXJuZWwuCiAgKiBUaGlzIG11c3QgYmUgZGVmaW5lZCBmb3IgZWFyaWxlciAyLjQga2VybmVscyAofjIuNC40KS4KICAqLwogI2RlZmluZSBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAweDEwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSFogICAgICAgICAgMTAwMCAgICAgLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgIDB4MTAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgMTAwMCAgICAgLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAKIC8qIG1lbXRlc3Qgd29ya3MgZnJvbSB0aGUgZW5kIG9mIHRoZSBleGNlcHRpb24gdmVjdG9yIHRhYmxlCiAgKiB0byB0aGUgZW5kIG9mIHRoZSBEUkFNIGxlc3MgbW9uaXRvciBhbmQgbWFsbG9jIGFyZWEKICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MjAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAweDIwMDAKIAotI2RlZmluZSBDRkdfU1RBQ0tfVVNBR0UgICAgIDB4MTAwMDAgLyogUmVzZXJ2ZSA2NGsgZm9yIHRoZSBzdGFjayB1c2FnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NUQUNLX1VTQUdFICAgICAweDEwMDAwIC8qIFJlc2VydmUgNjRrIGZvciB0aGUgc3RhY2sgdXNhZ2UgKi8KIAotI2RlZmluZSBDRkdfTUVNX0VORF9VU0FHRSAgICggQ0ZHX01PTklUT1JfTEVOIFwKLQkJCSAgICArIENGR19NQUxMT0NfTEVOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFICAgKCBDT05GSUdfU1lTX01PTklUT1JfTEVOIFwKKwkJCSAgICArIENPTkZJR19TWVNfTUFMTE9DX0xFTiBcCiAJCQkgICAgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSBcCi0JCQkgICAgKyBDRkdfU1RBQ0tfVVNBR0UgKQorCQkJICAgICsgQ09ORklHX1NZU19TVEFDS19VU0FHRSApCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAoIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQgXAotCQkJICAgIC0gQ0ZHX01FTV9FTkRfVVNBR0UgKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAoIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0IFwKKwkJCSAgICAtIENPTkZJR19TWVNfTUVNX0VORF9VU0FHRSApCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTM4OSw5OCArMzg5LDk4IEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICBDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUgIENGR19GTEFTSDBfU0laRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRSAgQ0ZHX1NEUkFNMF9CQVNFCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFICBDRkdfU0RSQU0wX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRSAgQ09ORklHX1NZU19GTEFTSDBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgIENPTkZJR19TWVNfU0RSQU0wX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFICBDT05GSUdfU1lTX1NEUkFNMF9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICovCi0jaWYgZGVmaW5lZChDRkdfU0JDX0JPT1RfTE9XKQotIyAgZGVmaW5lICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NCQ19CT09UX0xPVykKKyMgIGRlZmluZSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICAoSFJDV19DSVAgfCBIUkNXX0JNUykKICNlbHNlCi0jICBkZWZpbmUgIENGR19TQkNfSFJDV19CT09UX0ZMQUdTICAoMCkKLSNlbmRpZiAvKiBkZWZpbmVkKENGR19TQkNfQk9PVF9MT1cpICovCisjICBkZWZpbmUgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKDApCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfU1lTX1NCQ19CT09UX0xPVykgKi8KIAotLyogZ2V0IHRoZSBIUkNXIElTQiBmaWVsZCBmcm9tIENGR19JTU1SICovCi0jZGVmaW5lIENGR19TQkNfSFJDV19JTU1SICAgKCAoKENGR19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHwgXAotCQkgICgoQ0ZHX0lNTVIgJiAweDAxMDAwMDAwKSA+PiAgNykgfCBcCi0JCSAgKChDRkdfSU1NUiAmIDB4MDAxMDAwMDApID4+ICA0KSApCisvKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ09ORklHX1NZU19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfU0JDX0hSQ1dfSU1NUiAgICggKChDT05GSUdfU1lTX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfCBcCisJCSAgKChDT05GSUdfU1lTX0lNTVIgJiAweDAxMDAwMDAwKSA+PiAgNykgfCBcCisJCSAgKChDT05GSUdfU1lTX0lNTVIgJiAweDAwMTAwMDAwKSA+PiAgNCkgKQogCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUiAgICAgKCBIUkNXX0JQUzExICAgICAgICAgICAgICAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSICAgICAoIEhSQ1dfQlBTMTEgICAgICAgICAgICAgICAgfCBcCiAJCSAgSFJDV19EUFBDMTEgICAgICAgICAgICAgICB8IFwKLQkJICBDRkdfU0JDX0hSQ1dfSU1NUiAgICAgICAgIHwgXAorCQkgIENPTkZJR19TWVNfU0JDX0hSQ1dfSU1NUiAgICAgICAgIHwgXAogCQkgIEhSQ1dfTU1SMDAgICAgICAgICAgICAgICAgfCBcCiAJCSAgSFJDV19MQlBDMTEgICAgICAgICAgICAgICB8IFwKIAkJICBIUkNXX0FQUEMxMCAgICAgICAgICAgICAgIHwgXAogCQkgIEhSQ1dfQ1MxMFBDMDAgICAgICAgICAgICAgfCBcCi0JCSAgKENGR19TQkNfTU9EQ0tfSCAmIEhSQ1dfTU9EQ0tfSDExMTEpICB8IFwKLQkJICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyApCisJCSAgKENPTkZJR19TWVNfU0JDX01PRENLX0ggJiBIUkNXX01PRENLX0gxMTExKSAgfCBcCisJCSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICkKIAogLyogbm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAgICAgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIgICAgIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzICAgICAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAgICAgMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUgICAgIDAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2ICAgICAwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0ICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3ICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIgICAgQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORCAgICAgMHg0MDAwICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICAgICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgMTI4IC8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICBDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICBDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQgICAgIDB4NDAwMCAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAxMjggLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgICBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAotICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDRkdfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDT05GSUdfU1lTX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgQ0ZHX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIENPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4gICAgICgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOICAgICAgKDEyOCAqIDEwMjQpIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTiAgICAgKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgKDEyOCAqIDEwMjQpIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWiAgICAgICAoOCAqIDEwMjQgKiAxMDI0KSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaICAgICAgICg4ICogMTAyNCAqIDEwMjQpIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAxICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgMzIgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAxICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgIDMyICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQgIDgwMDAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICAxICAgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgIDgwMDAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVCAgMSAgICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICAgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICAgMQogCiAjaWZkZWYgQ09ORklHX0VOVl9JTl9PV05fU0VDVAotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgKENGR19NT05JVE9SX0JBU0UgKyAgKDI1NiAqIDEwMjQpKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUiAgICAgICAgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgICgyNTYgKiAxMDI0KSkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRSAgICgyNTYgKiAxMDI0KQogI2Vsc2UKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgICgxNiAqIDEwMjQpLyogU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgICovCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BREQgICgoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikgLSBDT05GSUdfRU5WX1NJWkUpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BREQgICgoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKSAtIENPTkZJR19FTlZfU0laRSkKICMgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRSAoMjU2ICogMTAyNCkvKiBzZWUgUkVBRE1FIC0gZW52IHNlY3QgcmVhbCBzaXplICAqLwogI2VuZGlmIC8qIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRSAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAgMzIgICAgICAvKiBGb3IgTVBDODI2MCBDUFUgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVCAgICA1ICAgLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUICAgIDUgICAvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ5MywzNiArNDkzLDM2IEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUICAgKEhJRDBfSUNFICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVCAgIChISUQwX0lDRSAgfFwKIAkJCSBISUQwX0RDRSAgfFwKIAkJCSBISUQwX0lDRkkgfFwKIAkJCSBISUQwX0RDSSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSkKIAotI2RlZmluZSBDRkdfSElEMF9GSU5BTCAgKEhJRDBfSUNFICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwgIChISUQwX0lDRSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSAgfFwKIAkJCSBISUQwX0VNQ1ApCi0jZGVmaW5lIENGR19ISUQyICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STVIgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUiAgICAgKEJDUl9FVE0pCisjZGVmaW5lIENPTkZJR19TWVNfQkNSICAgICAoQkNSX0VUTSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUiAgKFNJVU1DUl9EUFBDMTEgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSICAoU0lVTUNSX0RQUEMxMSAgfFwKIAkJICAgICBTSVVNQ1JfTDJDUEMwMCB8XAogCQkgICAgIFNJVU1DUl9BUFBDMTAgIHxcCiAJCSAgICAgU0lVTUNSX01NUjAwKQpAQCAtNTM0LDcgKzUzNCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCi0jZGVmaW5lIENGR19TWVBDUiAgIChTWVBDUl9TV1RDIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAoU1lQQ1JfU1dUQyB8XAogCQkgICAgIFNZUENSX0JNVCAgfFwKIAkJICAgICBTWVBDUl9QQk1FIHxcCiAJCSAgICAgU1lQQ1JfTEJNRSB8XApAQCAtNTQ3LDcgKzU0Nyw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDIChUTUNOVFNDX1NFQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MgKFRNQ05UU0NfU0VDIHxcCiAJCSAgICAgVE1DTlRTQ19BTFIgfFwKIAkJICAgICBUTUNOVFNDX1RDRiB8XAogCQkgICAgIFRNQ05UU0NfVENFKQpAQCAtNTU4LDcgKzU1OCw3IEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgIChQSVNDUl9QUyAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgIChQSVNDUl9QUyAgfFwKIAkJICAgICBQSVNDUl9QVEYgfFwKIAkJICAgICBQSVNDUl9QVEUpCiAKQEAgLTU2NiwxMyArNTY2LDEzIEBACiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0NDUiAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSICAgIDAKIAogLyoKICAqIEluaXRpYWxpemUgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC02MTgsNyArNjE4LDcgQEAKICAqICAgICAtIE5vIGRhdGEgcGlwZWxpbmluZyBpcyBkb25lCiAgKiAgICAgLSBWYWxpZAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSDBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSAgQlJ4X1BTXzMyICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSAgQlJ4X01TX0dQQ01fUCAgICAgICAgICAgICAgICAgfFwKIAkJCSAgQlJ4X1YpCkBAIC02MzcsNyArNjM3LDcgQEAKICAqICAgICAtIE9uZSBpZGxlIGNsb2NrIGlzIGluc2VydGVkIGJldHdlZW4gYSByZWFkIGFjY2VzcyBmcm9tIHRoZQogICogICAgICAgY3VycmVudCBiYW5rIGFuZCB0aGUgbmV4dCBhY2Nlc3MuCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX0ZMQVNIMF9TSVpFKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSDBfU0laRSkgfFwKIAkJCSBPUnhHX0NTTlQgICAgICAgICAgfFwKIAkJCSBPUnhHX0FDU19ESVYxICAgICAgfFwKIAkJCSBPUnhHX1NDWV81X0NMSyAgICAgfFwKQEAgLTY3Myw3ICs2NzMsNyBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0gICgoQ0ZHX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJICBCUnhfUFNfNjQgICAgICAgICAgfFwKIAkJCSAgQlJ4X01TX1NEUkFNX1AgICAgIHxcCiAJCQkgIEJSeF9WKQpAQCAtNjg3LDggKzY4Nyw4IEBACiAgKiAgICAgLSBCYWNrLXRvLWJhY2sgcGFnZSBtb2RlCiAgKiAgICAgLSBJbnRlcm5hbCBiYW5rIGludGVybGVhdmluZyB3aXRoaW4gc2F2ZSBkZXZpY2UgZW5hYmxlZAogICovCi0jaWYgKENGR19TRFJBTTBfU0laRSA9PSAxNikKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX1NEUkFNMF9TSVpFKSB8XAorI2lmIChDT05GSUdfU1lTX1NEUkFNMF9TSVpFID09IDE2KQorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0gIChNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTBfU0laRSkgfFwKIAkJCSBPUnhTX0JQRF8yICAgICAgICAgfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTkgfFwKIAkJCSBPUnhTX05VTVJfMTEpCkBAIC03MTYsNyArNzE2LDcgQEAKICAqICAgICBSZWY6IFNlY3Rpb24gMTAuMy4zIG9uIHBhZ2UgMTAtMjEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUFNETVIgICAoUFNETVJfUkZFTiAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SICAgKFBTRE1SX1JGRU4gICAgICAgfFwKIAkJICAgICBQU0RNUl9TREFNX0ExNF9JU19BNSB8XAogCQkgICAgIFBTRE1SX0JTTUFfQTE2X0ExOCAgIHxcCiAJCSAgICAgUFNETVJfU0RBMTBfUEJJMF9BOSAgfFwKQEAgLTcyNiw3ICs3MjYsNyBAQAogCQkgICAgIFBTRE1SX0xET1RPUFJFXzFDICAgIHxcCiAJCSAgICAgUFNETVJfV1JDXzFDICAgICAgICAgfFwKIAkJICAgICBQU0RNUl9DTF8yKQotI2VuZGlmIC8qIChDRkdfU0RSQU0wX1NJWkUgPT0gMTYpICovCisjZW5kaWYgLyogKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgPT0gMTYpICovCiAKIC8qIFdpdGggYSA2NCBNQiBESU1NLCB0aGUgT1IyIGlzIGNvbmZpZ3VyZWQgYXMgZm9sbG93czoKICAqCkBAIC03MzcsOCArNzM3LDggQEAKICAqICAgICAtIEJhY2stdG8tYmFjayBwYWdlIG1vZGUKICAqICAgICAtIEludGVybmFsIGJhbmsgaW50ZXJsZWF2aW5nIHdpdGhpbiBzYXZlIGRldmljZSBlbmFibGVkCiAgKi8KLSNpZiAoQ0ZHX1NEUkFNMF9TSVpFID09IDY0KQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTSAgKE1FR19UT19BTShDRkdfU0RSQU0wX1NJWkUpIHxcCisjaWYgKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgPT0gNjQpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTSAgKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNMF9TSVpFKSB8XAogCSAgICAgT1J4U19CUERfNCAgICAgICAgIHxcCiAJICAgICBPUnhTX1JPV1NUX1BCSTBfQTggICAgIHxcCiAJICAgICBPUnhTX05VTVJfMTIpCkBAIC03NjYsNyArNzY2LDcgQEAKICAqICAgICBSZWY6IFNlY3Rpb24gMTAuMy4zIG9uIHBhZ2UgMTAtMjEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUFNETVIgICAoUFNETVJfUkZFTiAgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SICAgKFBTRE1SX1JGRU4gICAgICAgfFwKIAkJICAgICBQU0RNUl9TREFNX0ExNF9JU19BNSB8XAogCQkgICAgIFBTRE1SX0JTTUFfQTE0X0ExNiAgIHxcCiAJCSAgICAgUFNETVJfU0RBMTBfUEJJMF9BOSAgfFwKQEAgLTc3NiwxMCArNzc2LDEwIEBACiAJCSAgICAgUFNETVJfTERPVE9QUkVfMUMgICAgfFwKIAkJICAgICBQU0RNUl9XUkNfMUMgICAgICAgICB8XAogCQkgICAgIFBTRE1SX0NMXzIpCi0jZW5kaWYgIC8qIChDRkdfU0RSQU0wX1NJWkUgPT0gNjQpICovCisjZW5kaWYgIC8qIChDT05GSUdfU1lTX1NEUkFNMF9TSVpFID09IDY0KSAqLwogCi0jZGVmaW5lIENGR19QU1JUICAgIDB4MGUKLSNkZWZpbmUgQ0ZHX01QVFBSICAgTVBUUFJfUFRQX0RJVjMyCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAweDBlCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICBNUFRQUl9QVFBfRElWMzIKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04MDQsMTYgKzgwNCwxNiBAQAogICogICAgIC0gMTEgd2FpdCBzdGF0ZXMKICAqLwogCi0jaWZkZWYgQ0ZHX0lPX0JBU0UKLSMgIGRlZmluZSBDRkdfQlI0X1BSRUxJTSAgKChDRkdfSU9fQkFTRSAmIEJSeF9CQV9NU0spICB8XAorI2lmZGVmIENPTkZJR19TWVNfSU9fQkFTRQorIyAgZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgKChDT05GSUdfU1lTX0lPX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSAgICBCUnhfUFNfOCAgICAgICAgICAgICAgICAgICB8XAogCQkJICAgIEJSeF9NU19HUENNX0wgICAgICAgICAgICAgIHxcCiAJCQkgICAgQlJ4X1YpCiAKLSMgIGRlZmluZSBDRkdfT1I0X1BSRUxJTSAgIChPUnhHX0FNX01TSyAgICAgICAgICAgICAgICB8XAorIyAgZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTSAgIChPUnhHX0FNX01TSyAgICAgICAgICAgICAgICB8XAogCQkJICAgIE9SeEdfU0NZXzExX0NMSyAgICAgICAgICAgIHxcCiAJCQkgICAgT1J4R19FSFRSKQotI2VuZGlmIC8qIENGR19JT19CQVNFICovCisjZW5kaWYgLyogQ09ORklHX1NZU19JT19CQVNFICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2hhbW1lcmhlYWQuaCBiL2luY2x1ZGUvY29uZmlncy9oYW1tZXJoZWFkLmgKaW5kZXggNTQyNmM3YS4uMzE3YTNkNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2hhbW1lcmhlYWQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaGFtbWVyaGVhZC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5lIENPTkZJR19BVDMyQVA3MDAwCQkxCiAjZGVmaW5lIENPTkZJR19IQU1NRVJIRUFECQkxCiAKLSNkZWZpbmUgQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBTZXQgdXAgdGhlIFBMTCB0byBydW4gYXQgMTI1IE1IeiwgdGhlIENQVSB0byBydW4gYXQgdGhlIFBMTApAQCAtMzcsMTUgKzM3LDE1IEBACiAgKiBhbmQgdGhlIFBCQSBidXMgdG8gcnVuIGF0IDEvNCB0aGUgUExMIGZyZXF1ZW5jeS4KICAqLwogI2RlZmluZSBDT05GSUdfUExMCQkJMQotI2RlZmluZSBDRkdfUE9XRVJfTUFOQUdFUgkJMQotI2RlZmluZSBDRkdfT1NDMF9IWgkJCTI1MDAwMDAwCi0jZGVmaW5lIENGR19QTEwwX0RJVgkJCTEKLSNkZWZpbmUgQ0ZHX1BMTDBfTVVMCQkJNQotI2RlZmluZSBDRkdfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKLSNkZWZpbmUgQ0ZHX0NMS0RJVl9DUFUJCQkwCi0jZGVmaW5lIENGR19DTEtESVZfSFNCCQkJMQotI2RlZmluZSBDRkdfQ0xLRElWX1BCQQkJCTIKLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkIJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUE9XRVJfTUFOQUdFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX09TQzBfSFoJCQkyNTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfRElWCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfTVVMCQkJNQorI2RlZmluZSBDT05GSUdfU1lTX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX0NQVQkJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfSFNCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9QQkEJCQkyCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQgkJCTEKIAogLyoKICAqIFRoZSBQTExPUFQgcmVnaXN0ZXIgY29udHJvbHMgdGhlIFBMTCBsaWtlIHRoaXM6CkBAIC01NCw3ICs1NCw3IEBACiAgKgogICogV2Ugd2FudCBpY3A9MSAoZGVmYXVsdCkgYW5kIGl2Y289MCAoODAtMTYwIE1Ieikgb3IgaXZjbz0yICgxNTAtMjQwTUh6KS4KICAqLwotI2RlZmluZSBDRkdfUExMMF9PUFQJCQkweDA0CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9PUFQJCQkweDA0CiAKICNkZWZpbmUgQ09ORklHX1VTQVJUMQkJCTEKIApAQCAtMTE4LDU1ICsxMTgsNTUgQEAKICNkZWZpbmUgQ09ORklHX0FUTUVMX1VTQVJUCQkxCiAjZGVmaW5lIENPTkZJR19NQUNCCQkJMQogI2RlZmluZSBDT05GSUdfUElPMgkJCTEKLSNkZWZpbmUgQ0ZHX05SX1BJT1MJCQk1Ci0jZGVmaW5lIENGR19IU0RSQU1DCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX05SX1BJT1MJCQk1CisjZGVmaW5lIENPTkZJR19TWVNfSFNEUkFNQwkJCTEKICNkZWZpbmUgQ09ORklHX01NQwkJCTEKICNkZWZpbmUgQ09ORklHX0FUTUVMX01DSQkJMQogCi0jZGVmaW5lIENGR19EQ0FDSEVfTElORVNaCQkzMgotI2RlZmluZSBDRkdfSUNBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfTElORVNaCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9MSU5FU1oJCTMyCiAKICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJCTEKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCTEKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCQkweDgwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMTM1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkJMTM1CiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogCi0jZGVmaW5lIENGR19JTlRSQU1fQkFTRQkJCTB4MjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUkFNX0JBU0UJCQkweDI0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5UUkFNX1NJWkUJCQkweDgwMDAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkJMHgxMDAwMDAwMAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNjU1MzYKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfQUREUgkJKENGR19JTlRSQU1fQkFTRSArIENGR19JTlRSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX0FERFIJCShDT05GSUdfU1lTX0lOVFJBTV9CQVNFICsgQ09ORklHX1NZU19JTlRSQU1fU0laRSkKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCSgyNTYqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKDI1NioxMDI0KQogCi0jZGVmaW5lIENGR19ETUFfQUxMT0NfTEVOCQkoMTYzODQpCisjZGVmaW5lIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQogCiAvKiBBbGxvdyA0TUIgZm9yIHRoZSBrZXJuZWwgcnVuLXRpbWUgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCShDRkdfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgwMDQwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKIAogLyogT3RoZXIgY29uZmlndXJhdGlvbiBzZXR0aW5ncyB0aGF0IHNob3VsZG4ndCBoYXZlIHRvIGNoYW5nZSBhbGwgdGhhdCBvZnRlbiAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkJIkhhbW1lcmhlYWQ+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJCTE2Ci0jZGVmaW5lIENGR19QQlNJWkUJCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkJIkhhbW1lcmhlYWQ+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCShDRkdfTUVNVEVTVF9TVEFSVCArIDB4MWYwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAweDFmMDAwMDApCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFIHsgMTE1MjAwLCAzODQwMCwgMTkyMDAsIDk2MDAsIDI0MDAgfQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2hjdTQuaCBiL2luY2x1ZGUvY29uZmlncy9oY3U0LmgKaW5kZXggMGE5ODAwYS4uOWIwM2FjMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2hjdTQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaGN1NC5oCkBAIC00NSw0NiArNDUsNDYgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkoMzIwICogMTAyNCkJLyogUmVzZXJ2ZSAzMjAga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoMzIwICogMTAyNCkJLyogUmVzZXJ2ZSAzMjAga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpICovCiAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZmODAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZmODAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCiAKIC8qIC4uLiB3aXRoIG9uLWNoaXAgbWVtb3J5IGhlcmUgKDRLQnl0ZXMpICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSIDB4RjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUgMHgwMDAwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgMHhGNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgMHgwMDAwMTAwMAogLyogRG8gbm90IHNldCB1cCBsb2NrZWQgZGNhY2hlIGFzIGluaXQgcmFtLiAqLwotI3VuZGVmIENGR19JTklUX0RDQUNIRV9DUworI3VuZGVmIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MKIAogLyogVXNlIHRoZSBPbi1DaGlwLU1lbW9yeSAoT0NNKSBhcyBhIHRlbXBvcmFyeSBzdGFjayBmb3IgdGhlIHN0YXJ0dXAgY29kZS4gKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNIDEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAxCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIJLyogT0NNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkvKiBPQ00JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyoKLSAqIElmIENGR19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgotICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENGR19CQVNFX0JBVUQgdmFsdWUuCisgKiBJZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgorICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENPTkZJR19TWVNfQkFTRV9CQVVEIHZhbHVlLgogICogVGhlIExpbnV4IEJBU0VfQkFVRCBkZWZpbmUgc2hvdWxkIG1hdGNoIHRoaXMgY29uZmlndXJhdGlvbi4KICAqICAgIGJhc2VCYXVkID0gY3B1Q2xvY2svKHVhcnREaXZpc29yKjE2KQotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAogICogc2V0IExpbnV4IEJBU0VfQkFVRCB0byA0MDMyMDAuCiAgKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX1NFUklBTF9NVUxUSSAgMQogLyogbmVlZGVkIHRvIGJlIGFibGUgdG8gZGVmaW5lIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTyAqLwotI3VuZGVmCUNGR180MDVfVUFSVF9FUlJBVEFfNTkJICAgICAgIC8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5CSAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAKIC8qIFNpemUgKGJ5dGVzKSBvZiBpbnRlcnJ1cHQgZHJpdmVuIHNlcmlhbCBwb3J0IGJ1ZmZlci4KICAqIFNldCB0byAwIHRvIHVzZSBwb2xsaW5nIGluc3RlYWQgb2YgaW50ZXJydXB0cy4KQEAgLTk2LDcgKzk2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCiAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwNCwxOCArMTA0LDE4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgogLyogYm9hcmQgcHJvdmlkZXMgaXRzIG93biBmbGFzaF9pbml0IGNvZGUgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kJCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzhCSVQKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xFR0FDWV81MTJLeDggMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzhCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MRUdBQ1lfNTEyS3g4IDEKIAogLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC0xMzUsNyArMTM1LDcgQEAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAvKiBQdXQgdGhlIGVudmlyb25tZW50IGluIEZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ0ZHX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DT05GSUdfU1lTX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQk4KjEwMjQJLyogOCBLQiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNDcsMjIgKzE0NywyMiBAQAogICogSTJDIHN0dWZmIGZvciBhIEFUTUVMIEFUMjRDMTYgKDJrQiBob2xkaW5nIEVOViwgd2UgYXJlIHVzaW5nIHRoZQogICogdGhlIGZpcnN0IGludGVybmFsIEkyQyBjb250cm9sbGVyIG9mIHRoZSBQUEM0NDBFUHgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TUERfQlVTX05VTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCQkwCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qIFRoaXMgaXMgdGhlIDdiaXQgYWRkcmVzcyBvZiB0aGUgZGV2aWNlLCBub3QgaW5jbHVkaW5nIFAuICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIgMHg1MAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSIDB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKIAogLyogVGhlIEVFUFJPTSBjYW4gZG8gMTZieXRlICggMSA8PCA0ICkgcGFnZSB3cml0ZXMuICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAotI3VuZGVmIENGR19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyN1bmRlZiBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCiAKIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkiZWNobzsiCQkJCQkJXApAQCAtMTc4LDcgKzE3OCw3IEBACiAjZGVmaW5lIENPTkZJR19PVkVSV1JJVEVfRVRIQUREUl9PTkNFCiAjZGVmaW5lIENPTkZJR19TRVJWRVJJUAkJMTcyLjI1LjEuMwogCi0jZGVmaW5lIENGR19URlRQX0xPQURBRERSIDB4MDEwMDAwMDAgLyogQDE2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9MT0FEQUREUiAweDAxMDAwMDAwIC8qIEAxNiBNQiAqLwogCiAjZGVmaW5lCUNPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCQkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQkJCQlcCkBAIC0yMDgsNyArMjA4LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcwkqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkxCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTIxNiw3ICsyMTYsNyBAQAogI2RlZmluZSBDT05GSUdfUEhZX1JFU0VUICAgICAgICAxCS8qIHJlc2V0IHBoeSB1cG9uIHN0YXJ0dXAgKi8KIAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYgLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkxNiAvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc0MgKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTI1Miw0MiArMjUyLDQyIEBACiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUyAgICAgIDB4NTAKIAogLyogUE9TVCBzdXBwb3J0ICovCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfVUFSVAkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DQUNIRQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRVRIRVIJICAgfCBcCi0JCQkJIENGR19QT1NUX1NQUikKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VQVJUCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ0FDSEUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9FVEhFUgkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1NQUikKIAotI2RlZmluZSBDRkdfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFfQotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSAweDQpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFfQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKICN1bmRlZiAgQ09ORklHX0xPR0JVRkZFUgotI2RlZmluZSBDRkdfUE9TVF9DQUNIRV9BRERSCTB4MDA4MDAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0NBQ0hFX0FERFIJMHgwMDgwMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXICAgICAgICAgICAgMSAgICAgICAvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCkBAIC0yOTcsNTAgKzI5Nyw1MCBAQAogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLwogCi0jZGVmaW5lIENGR19FQkNfQ0ZHCTB4OTg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfQ0ZHCTB4OTg0MDAwMDAKIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCTB4MDIwMDU0MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkweEZGRjE4MDAwICAvKiBCQVM9MHhGRkYsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCTB4MDIwMDU0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJMHhGRkYxODAwMCAgLyogQkFTPTB4RkZGLEJTPTFNQixCVT1SL1csQlc9OGJpdCAqLwogCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJMHgwMzA0MTIwMAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCTB4NzAwOUEwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkweDAzMDQxMjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCTB4NzAwOUEwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJMHgwMjA1NDUwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCTB4NzgwMTgwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkweDAyMDU0NTAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCTB4NzgwMTgwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJMHgwMTg0MDMwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCTB4N2MwYmEwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkweDAxODQwMzAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCTB4N2MwYmEwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJMHgwMTgwMDMwMAotI2RlZmluZSBDRkdfRUJDX1BCNENSCTB4N2UwYmEwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUAkweDAxODAwMzAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCTB4N2UwYmEwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLwogCi0jZGVmaW5lIENGR19HUElPMF9PUgkweEYyN0ZGRkZGICAvKiBHUElPIHZhbHVlICovCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJMHg3RkZFMDAwMCAgLyogR1BJTyB2YWx1ZSAqLwotI2RlZmluZSBDRkdfR1BJTzBfT0RSCTB4MDBFODk3RkMgIC8qIEdQSU8gdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PUgkweEYyN0ZGRkZGICAvKiBHUElPIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCTB4N0ZGRTAwMDAgIC8qIEdQSU8gdmFsdWUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PRFIJMHgwMEU4OTdGQyAgLyogR1BJTyB2YWx1ZSAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CiAgKgogICogQlIwLzEgYW5kIE9SMC8xIChGTEFTSCkKICAqLwogCi0jZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMAkJLyogRkxBU0ggYmFuayAjMQkqLwogCiAKIC8qIENvbmZpZ3VyYXRpb24gUG9ydCBsb2NhdGlvbiAqLwogI2RlZmluZSBDT05GSUdfUE9SVF9BRERSCTB4RjAwMDA1MDAKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIgICAgICAgICAgICAgICAgIC8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgICAgKi8KLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICAgICAgICAgICAgICAgICAvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyICAgICovCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9oY3U1LmggYi9pbmNsdWRlL2NvbmZpZ3MvaGN1NS5oCmluZGV4IDZiMjM4MzkuLjFiYTQ2ZWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9oY3U1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2hjdTUuaApAQCAtNDgsNDQgKzQ4LDQ0IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgzMjAgKiAxMDI0KQkvKiBSZXNlcnZlIDMyMCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSgzMjAgKiAxMDI0KQkvKiBSZXNlcnZlIDMyMCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkgKi8KIAotI2RlZmluZSBDRkdfVExCX0ZPUl9CT09UX0ZMQVNIICAzCi0jZGVmaW5lIENGR19CT09UX0JBU0VfQUREUgkweGZmZjAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmY4MDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfT0NNX0JBU0UJCTB4ZTAwMTAwMDAgICAgICAvKiBvY20JCQkqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUglDRkdfT0NNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGUwMDAwMDAwICAgICAgLyogSW50ZXJuYWwgUENJIHJlZ3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTEJQ0ZHX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMglDRkdfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UzCUNGR19QQ0lfTUVNQkFTRTIgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVExCX0ZPUl9CT09UX0ZMQVNIICAzCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmY4MDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fQkFTRQkJMHhlMDAxMDAwMCAgICAgIC8qIG9jbQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUglDT05GSUdfU1lTX09DTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJCTB4ZTAwMDAwMDAgICAgICAvKiBJbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UxCUNPTkZJR19TWVNfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMglDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIgKyAweDEwMDAwMDAwCiAKIC8qIERvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UgKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KIAotI2RlZmluZSBDRkdfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9IT1NUCQkweGUwMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfREVWSUNFCQkweGUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0hPU1QJCTB4ZTAwMDA0MDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogNDQwRVB4LzQ0MEdSeCBoYXZlIDE2S0Igb2YgaW50ZXJuYWwgU1JBTSwgc28gbm8gbmVlZCBmb3IgRC1DYWNoZQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0JBU0UJLyogT0NNCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0JBU0UJLyogT0NNCQkJKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI3VuZGVmIENGR19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJICAgICAgIC8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKICNkZWZpbmUgQ09ORklHX1NFUklBTF9NVUxUSSAgICAgMQogLyogbmVlZGVkIHRvIGJlIGFibGUgdG8gZGVmaW5lCkBAIC05OSw3ICs5OSw3IEBACiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIAogI3VuZGVmIENPTkZJR19DTURfSFdGTE9XCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkJCQkJCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTE0LDE1ICsxMTQsMTUgQEAKICNpZmRlZiAgQ09ORklHX0VOVl9JU19JTl9FRVBST00KIC8qIFB1dCB0aGUgZW52aXJvbm1lbnQgYWZ0ZXIgdGhlIFNEUkFNIGFuZCBib290c3RyYXAgY29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBQUk9NX1NJWkUJMjA0OAotI2RlZmluZSBDRkdfQk9PU1RSQVBfT1BUSU9OX09GRlNFVAkgNTEyCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCSAoQ0ZHX0JPT1NUUkFQX09QVElPTl9PRkZTRVQgKyAweDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1NUUkFQX09QVElPTl9PRkZTRVQJIDUxMgorI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkgKENPTkZJR19TWVNfQk9PU1RSQVBfT1BUSU9OX09GRlNFVCArIDB4MTApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkoUFJPTV9TSVpFLUNPTkZJR19FTlZfT0ZGU0VUKQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAvKiBQdXQgdGhlIGVudmlyb25tZW50IGluIEZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAgLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ0ZHX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DT05GSUdfU1lTX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQk4KjEwMjQJLyogOCBLQiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xMzQsOCArMTM0LDggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01CWVRFU19TRFJBTSAgICAgICAgKDEyOCkJCS8qIDEyOCBNQiBvciAyNTYgTUIJKi8KLSNkZWZpbmUgQ0ZHX0REUl9DQUNIRURfQUREUgkweDUwMDAwMDAwCS8qIHNldHVwIDJuZCBUTEIgY2FjaGVkIGhlcmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfU0RSQU0gICAgICAgICgxMjgpCQkvKiAxMjggTUIgb3IgMjU2IE1CCSovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NBQ0hFRF9BRERSCTB4NTAwMDAwMDAJLyogc2V0dXAgMm5kIFRMQiBjYWNoZWQgaGVyZSAqLwogI3VuZGVmICBDT05GSUdfRERSX0RBVEFfRVlFCQkvKiBEbyBub3QgdXNlIEREUjIgb3B0aW1pemF0aW9uCSovCiAjZGVmaW5lIENPTkZJR19ERFJfRUNDCQkxCS8qIGVuYWJsZSBFQ0MJCQkqLwogCkBAIC0xNDgsMjIgKzE0OCwyMiBAQAogICogSTJDIHN0dWZmIGZvciBhIEFUTUVMIEFUMjRDMTYgKDJrQiBob2xkaW5nIEVOViwgd2UgYXJlIHVzaW5nIHRoZQogICogdGhlIHNlY29uZCBpbnRlcm5hbCBJMkMgY29udHJvbGxlciBvZiB0aGUgUFBDNDQwRVB4CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfU1BEX0JVU19OVU0JMQorI2RlZmluZSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCTEKIAogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKiBUaGlzIGlzIHRoZSA3Yml0IGFkZHJlc3Mgb2YgdGhlIGRldmljZSwgbm90IGluY2x1ZGluZyBQLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSIDB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiAweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAKIC8qIFRoZSBFRVBST00gY2FuIGRvIDE2Ynl0ZSAoIDEgPDwgNCApIHBhZ2Ugd3JpdGVzLiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKLSN1bmRlZiBDRkdfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjdW5kZWYgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwogCiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG87IgkJCQkJCVwKQEAgLTE3OSw3ICsxNzksNyBAQAogI2RlZmluZSBDT05GSUdfT1ZFUldSSVRFX0VUSEFERFJfT05DRQogI2RlZmluZSBDT05GSUdfU0VSVkVSSVAJCTE3Mi4yNS4xLjMKIAotI2RlZmluZSBDRkdfVEZUUF9MT0FEQUREUiAweDAxMDAwMDAwIC8qIEAxNiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfTE9BREFERFIgMHgwMTAwMDAwMCAvKiBAMTYgTUIgKi8KIAogI2RlZmluZQlDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCQlcCiAJIm5ldGRldj1ldGgwXDAiCQkJCQkJCVwKQEAgLTIxOCw3ICsyMTgsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzCSovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZSBDT05GSUdfTTg4RTExMTFfUEhZCTEKICNkZWZpbmUJQ09ORklHX0lCTV9FTUFDNF9WNAkxCkBAIC0yMjgsNyArMjI4LDcgQEAKICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVCAgICAgICAxCS8qIHJlc2V0IHBoeSB1cG9uIHN0YXJ0dXAgICAgICAgICAqLwogCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgkzMiAvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2MuICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkzMiAvKiBOdW1iZXIgb2YgZXRoZXJuZXQgcnggYnVmZmVycyAmIGRlc2MuICovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQkxCS8qIGFkZCBzdXBwb3J0IGZvciAiZXRoMWFkZHIiICovCkBAIC0yNzgsNDMgKzI3OCw0MyBAQAogI2RlZmluZSBDT05GSUdfQ01EX1VTQgogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9VQVJUCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9JMkMJICAgfCBcCi0JCQkJIENGR19QT1NUX0NBQ0hFCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9GUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0VUSEVSCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9TUFIpCi0jZGVmaW5lIENGR19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0V9CisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfVUFSVAkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NBQ0hFCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRlBVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TUFIpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFfQogCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKLSNkZWZpbmUgQ0ZHX1BPU1RfQ0FDSEVfQUREUgkweDdmZmYwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOViAvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQ0FDSEVfQUREUgkweDdmZmYwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLwogCiAjZGVmaW5lIENPTkZJR19TVVBQT1JUX1ZGQVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJICAgICAgICAiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJICAgICAgICAiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgICAgICAgICAgICAgIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJICAgICAgICAxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJICAgICAgICBDRkdfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgICAgICAgICAgICAgIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJICAgICAgICAxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCSAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXICAgICAgICAgICAgMSAgICAgICAvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCkBAIC0zMjgsODAgKzMyOCw4MCBAQAogI2RlZmluZSBDT05GSUdfUENJCQkxCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJICAgICAgICAqLwogI3VuZGVmIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gKG5vdCkgcGNpIHBsdWctYW5kLXBsYXkgICAqLwogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgICAgIDB4ODAwMDAwMDAgLyogUENJYWRkciBtYXAgdG8gQ0ZHX1BDSV9NRU1CQVNFKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgICAgIDB4ODAwMDAwMDAgLyogUENJYWRkciBtYXAgdG8gQ09ORklHX1NZU19QQ0lfTUVNQkFTRSovCiAKIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCi0jZGVmaW5lIENGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQwkJCQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MJCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEICAgICAgIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGbGFzaAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKIC8qIGJvYXJkIHByb3ZpZGVzIGl0cyBvd24gZmxhc2hfaW5pdCBjb2RlICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCQkxCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV84QklUCi0jZGVmaW5lIENGR19GTEFTSF9MRUdBQ1lfNTEyS3g4IDEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJCUZMQVNIX0NGSV84QklUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfTEVHQUNZXzUxMkt4OCAxCiAKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNICQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1NfMQkJMHhDODAwMDAwMCAvKiBDQU4gKi8KLSNkZWZpbmUgQ0ZHX0NTXzIJCTB4Q0MwMDAwMDAgLyogQ1BMRCBhbmQgSU1DLUJ1cyBTdGFuZGFyZCAqLwotI2RlZmluZSBDRkdfQ1BMRAkJQ0ZHX0NTXzIKLSNkZWZpbmUgQ0ZHX0NTXzMJCTB4Q0UwMDAwMDAgLyogQ1BMRCBhbmQgSU1DLUJ1cyBGYXN0ICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNICQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DU18xCQkweEM4MDAwMDAwIC8qIENBTiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTXzIJCTB4Q0MwMDAwMDAgLyogQ1BMRCBhbmQgSU1DLUJ1cyBTdGFuZGFyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQTEQJCUNPTkZJR19TWVNfQ1NfMgorI2RlZmluZSBDT05GSUdfU1lTX0NTXzMJCTB4Q0UwMDAwMDAgLyogQ1BMRCBhbmQgSU1DLUJ1cyBGYXN0ICAqLwogCi0jZGVmaW5lIENGR19CT09URkxBU0hfQ1MJMAkvKiBCb290IEZsYXNoIGNoaXAgY29ubmVjdGVkIHRvIENTeCAqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAyMDA1NDAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZGMTgwMDAgLyogKENGR19GTEFTSCB8IDB4ZGEwMDApICAqLwotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RGTEFTSF9DUwkwCS8qIEJvb3QgRmxhc2ggY2hpcCBjb25uZWN0ZWQgdG8gQ1N4ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDAyMDA1NDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGRjE4MDAwIC8qIChDT05GSUdfU1lTX0ZMQVNIIHwgMHhkYTAwMCkgICovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkqLwogCiAvKiBNZW1vcnkgQmFuayAxIENBTi1DaGlwcyBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDAyMDU0NTAwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCTB4QzgwMTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDIwNTQ1MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4QzgwMTgwMDAKIAogLyogTWVtb3J5IEJhbmsgMiBDUExEL0lNQy1CdXMgc3RhbmRhcmQgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQCQkweDAxODQwMzAwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4Q0MwQkEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDE4NDAzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4Q0MwQkEwMDAKIAogLyogTWVtb3J5IEJhbmsgMyBJTUMtQnVzIGZhc3QgbW9kZSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDE4MDAzMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhDRTBCQTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTgwMDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhDRTBCQTAwMAogCiAvKiBNZW1vcnkgQmFuayA0IChub3QgdXNlZCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSN1bmRlZiBDRkdfRUJDX1BCNEFQCi0jdW5kZWYgQ0ZHX0VCQ19QQjRDUgorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCNEFQCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEI0Q1IKIAogLyogTWVtb3J5IEJhbmsgNSAobm90IHVzZWQpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jdW5kZWYgQ0ZHX0VCQ19QQjVBUAotI3VuZGVmIENGR19FQkNfUEI1Q1IKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjVBUAorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCNUNSCiAKLSNkZWZpbmUgSENVX0NQTERfVkVSU0lPTl9SRUdJU1RFUiAoIENGR19DUExEICsgMHgwRjAwMDAwICkKLSNkZWZpbmUgSENVX0hXX1ZFUlNJT05fUkVHSVNURVIgICAoIENGR19DUExEICsgMHgxNDAwMDAwICkKKyNkZWZpbmUgSENVX0NQTERfVkVSU0lPTl9SRUdJU1RFUiAoIENPTkZJR19TWVNfQ1BMRCArIDB4MEYwMDAwMCApCisjZGVmaW5lIEhDVV9IV19WRVJTSU9OX1JFR0lTVEVSICAgKCBDT05GSUdfU1lTX0NQTEQgKyAweDE0MDAwMDAgKQogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUiAgICAgICAgICAgICAgICAgLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAgICAqLwotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLQkjZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgICAgICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUiAgICAgICAgICAgICAgICAgLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAgICAqLworI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisJI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAgICAgIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9oZXJtZXMuaCBiL2luY2x1ZGUvY29uZmlncy9oZXJtZXMuaAppbmRleCBlMWEwODQ2Li4wZGY0NmZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaGVybWVzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2hlcm1lcy5oCkBAIC02MCw3ICs2MCw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC04MywyOSArODMsMjkgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTVNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19QSU9fTU9ERQkJMAkvKiBJREUgaW50ZXJmYWNlIGluIFBJTyBNb2RlIDAJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QSU9fTU9ERQkJMAkvKiBJREUgaW50ZXJmYWNlIGluIFBJTyBNb2RlIDAJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lCUNGR19BTExPQ19EUFJBTQkJMQkvKiB1c2UgYWxsb2NhdGlvbiByb3V0aW5lcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0FMTE9DX0RQUkFNCQkxCS8qIHVzZSBhbGxvY2F0aW9uIHJvdXRpbmVzCSovCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKICAqIChhZGRyZXNzIG1hcHBpbmdzLCByZWdpc3RlciBpbml0aWFsIHZhbHVlcywgZXRjLikKQEAgLTExNCw0NiArMTE0LDQ2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkYwMDAwMDAJLyogTm9uLVN0YW5kYXJkIHZhbHVlIQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkYwMDAwMDAJLyogTm9uLVN0YW5kYXJkIHZhbHVlIQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkUwMDAwMDAKICNpZmRlZglERUJVRwotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyNAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZQlDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwCS8qICAgT2Zmc2V0ICAgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNjEsOSArMTYxLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTc0LDEwICsxNzQsMTAgQEAKICAqICsweDAwMDQKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODUsNyArMTg1LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqICsweDAwMDAgPT4gMHgwMDAwMDBDMAogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJMAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgpAQCAtMTkzLDcgKzE5Myw3IEBACiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICogKzB4MDIwMCA9PiAweDAwQzIKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQpAQCAtMjAxLDcgKzIwMSw3IEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICogKzB4MDI0MCA9PiAweDAwODIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yMTAsNyArMjEwLDcgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0LCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciAhCiAgKi8KIC8qICsweDAyODYgPT4gMHgwMEIwRDBDMCAqLwotI2RlZmluZSBDRkdfUExQUkNSCQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAogCQkoCSgxMSA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJCQlcCiAJCQlQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QgfAlcCiAJCQkvKlBMUFJDUl9DU1JDfCovIFBMUFJDUl9MUE1fTk9STUFMIHwJCVwKQEAgLTIyNSw3ICsyMjUsNyBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogLyogKzB4MDI4MiA9PiAweDAzODAwMDAwICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwCXwgICBTQ0NSX1RCUwkgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAJfCAgIFNDQ1JfVEJTCSAgfAlcCiAJCQkgU0NDUl9SVERJVgl8ICAgU0NDUl9SVFNFTAkgIHwJXAogCQkJIC8qU0NDUl9DUlFFTnwqLyAgLypTQ0NSX1BSUUVOfCovCVwKIAkJCSBTQ0NSX0VCREYwMAl8ICAgU0NDUl9ERlNZTkMwMCB8CVwKQEAgLTIzNyw3ICsyMzcsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiArMHgwMjIwID0+IDB4MDBDMyAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDUsMjAgKzI0NSwyMCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAvKiArMHgwOUM0ID0+IFRJTUVQPTEgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1EUyAtIFJJU0MgTWljcm9jb2RlIERldmVsb3BtZW50IFN1cHBvcnQgQ29udHJvbCBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STURTIDAKKyNkZWZpbmUgQ09ORklHX1NZU19STURTIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0yNzMsMTcgKzI3MywxNyBAQAogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCiAvKiBhbGxvdyBmb3IgbWF4IDQgTUIgb2YgRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweEZGQzAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkZDMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4RkZDMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkZDMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMTEsIFRSTFggPSAxLCBDU05UID0gMSwgU0NZID0gNSwgRUhUUiA9IDAJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoIE9SX0NTTlRfU0FNIHwgLypPUl9BQ1NfRElWNCB8Ki8gT1JfQkkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICSggT1JfQ1NOVF9TQU0gfCAvKk9SX0FDU19ESVY0IHwqLyBPUl9CSSB8IFwKIAkJCQkgT1JfU0NZXzVfQ0xLIHwgT1JfVFJMWCkKIAotI2RlZmluZSBDRkdfT1IwX1JFTUFQCShDRkdfUkVNQVBfT1JfQU0gIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQogLyogOCBiaXQsIGJhbmsgdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAvKgogICogQlIxL09SMSAtIFNEUkFNCkBAIC0yOTYsOCArMjk2LDggQEAKIAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgU0RSQU0gKi8KIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKgogICogQlIyL09SMiAtIEhQUk8yOiBQRUIyMjU2ICAgQCAweEUwMDAwMDAwLCA4IEJpdCB3aWRlCkBAIC0zMDYsOCArMzA2LDggQEAKICNkZWZpbmUgSFBSTzJfT1JfQU0JCTB4RkZGRjgwMDAKICNkZWZpbmUgSFBSTzJfVElNSU5HCQkweDAwMDAwOTM0CiAKLSNkZWZpbmUgQ0ZHX09SMiAoSFBSTzJfT1JfQU0gfCBIUFJPMl9USU1JTkcpCi0jZGVmaW5lIENGR19CUjIJKChIUFJPMl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjIgKEhQUk8yX09SX0FNIHwgSFBSTzJfVElNSU5HKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMgkoKEhQUk8yX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YgKQogCiAvKgogICogQlIzL09SMzogbm90IHVzZWQKQEAgLTMyMiwxNCArMzIyLDE0IEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qIDggY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl84Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzAgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMSB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogLyogOSBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOUNPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzlDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMSB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEwIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9obWkxMDAxLmggYi9pbmNsdWRlL2NvbmZpZ3MvaG1pMTAwMS5oCmluZGV4IGU4MTZiNmQuLjE2YjA2Y2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9obWkxMDAxLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2htaTEwMDEuaApAQCAtMzMsNyArMzMsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDNTIwMAkJMQkvKiAobW9yZSBwcmVjaXNlbHkgYW4gTVBDNTIwMCBDUFUpCSovCiAjZGVmaW5lIENPTkZJR19ITUkxMDAxCQkxCS8qIEhNSTEwMDEgYm9hcmQJCQkqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNICSovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CQkJKi8KQEAgLTQ3LDcgKzQ3LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKiBQYXJ0aXRpb25zICovCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCkBAIC04MSw3ICs4MSw3IEBACiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJMQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkZGMDAwMDApIC8qIEJvb3QgbG93ICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQogI2VuZGlmCiAKIC8qCkBAIC0xMTYsNDkgKzExNiw0OSBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI3VuZGVmIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCiAvKgogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDU4Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDU4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCiAKIC8qCiAgKiBSVEMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDUxCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogOCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogOCBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShURVhUX0JBU0UrMHg0MDAwMCkgLyogc2Vjb25kIHNlY3RvciAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKIAkJCQkJICAgKD0gY2hpcCBzZWxlY3RzKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQU1EX1JFU0VUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0xNzIsMTIgKzE3MiwxMiBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RJU1BMQVlfQkFTRQkweDgwNjAwMDAwCi0jZGVmaW5lIENGR19TVEFUVVMxX0JBU0UJMHg4MDYwMDIwMAotI2RlZmluZSBDRkdfU1RBVFVTMl9CQVNFCTB4ODA2MDAzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRElTUExBWV9CQVNFCTB4ODA2MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFUVVMxX0JBU0UJMHg4MDYwMDIwMAorI2RlZmluZSBDT05GSUdfU1lTX1NUQVRVUzJfQkFTRQkweDgwNjAwMzAwCiAKIC8qIFNldHRpbmdzIGZvciBYTEIgPSAxMzIgTUh6ICovCiAjZGVmaW5lIFNEUkFNX0REUgkgMQpAQCAtMTg5LDI3ICsxODksMjcgQEAKICNkZWZpbmUgU0RSQU1fVEFQREVMQVkgIDB4MTAwMDAwMDAKIAogLyogVXNlIE9OLUNoaXAgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjIxLDM2ICsyMjEsMzYgQEAKIC8qCiAgKiBHUElPIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MDEwNTEwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgwMTA1MTAwNAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyogRW5hYmxlIGFuIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRW5hYmxlIGxvb3B3IGNvbW1hbmQuCkBAIC0yNjEsMzYgKzI2MSwzNiBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0RkIwMAotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRGQjAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCiAKIC8qIDhNYml0IFNSQU0gQDB4ODAxMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJMHg4MDEwMDAwMAotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4MDAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MTlCMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCTB4ODAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MTlCMDAKIAogLyogRlJBTSAzMktieXRlIEAweDgwNzAwMDAwICovCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCTB4ODA3MDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDAwMDA4MDAwCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDE5ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCQkweDgwNzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MDAwMDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCQkweDE5ODAwCiAKIC8qIERpc3BsYXkgSDEsIFN0YXR1cyBJbnB1dHMsIEVQTEQgQDB4ODA2MDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0NTM19TVEFSVAkJMHg4MDYwMDAwMAotI2RlZmluZSBDRkdfQ1MzX1NJWkUJCTB4MDAxMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTM19DRkcJCTB4MDAwMTk4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU1RBUlQJCTB4ODA2MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU0laRQkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19DRkcJCTB4MDAwMTk4MDAKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIFN1cHBvcnRzIElERSBoYXJkZGlzawpAQCAtMzAyLDI2ICszMDIsMjYgQEAKICN1bmRlZglDT05GSUdfSURFXzh4eF9ESVJFQ1QJCS8qIERpcmVjdCBJREUgICAgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQJMQogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKENGR19BVEFfREFUQV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKIAogLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERSAgICAgICAgICA0CisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICA0CiAKICNkZWZpbmUgQ09ORklHX0FUQVBJICAgICAgICAgICAgMQogCkBAIC0zNDgsMTMgKzM0OCwxMyBAQAogI2RlZmluZSBDT05GSUdfUENJX0lPX1BIWVMJQ09ORklHX1BDSV9JT19CVVMKICNkZWZpbmUgQ09ORklHX1BDSV9JT19TSVpFCTB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfSVNBX0lPCQlDT05GSUdfUENJX0lPX0JVUworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JTwkJQ09ORklHX1BDSV9JT19CVVMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogRGlzcGxheSBhZGRyZXNzZXMJCQkJCQkgICAgICAgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2RlZmluZSBDRkdfRElTUF9DSFJfUkFNCShDRkdfRElTUExBWV9CQVNFICsgMHgzOCkKLSNkZWZpbmUgQ0ZHX0RJU1BfQ1dPUkQJCShDRkdfRElTUExBWV9CQVNFICsgMHgzMCkKKyNkZWZpbmUgQ09ORklHX1NZU19ESVNQX0NIUl9SQU0JKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzOCkKKyNkZWZpbmUgQ09ORklHX1NZU19ESVNQX0NXT1JECQkoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDMwKQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2h5bW9kLmggYi9pbmNsdWRlL2NvbmZpZ3MvaHltb2QuaAppbmRleCA0YzgzMTkzLi4wZmRjZGEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvaHltb2QuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaHltb2QuaApAQCAtODcsMTAgKzg3LDEwIEBACiAgKiAtIFJBTSBmb3IgQkQvQnVmZmVycyBpcyBvbiB0aGUgNjB4IEJ1cyAoc2VlIDI4LTEzKQogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfQ01YRkNSX01BU0sJKENNWEZDUl9GQzF8Q01YRkNSX1JGMUNTX01TS3xDTVhGQ1JfVEYxQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzEwfENNWEZDUl9URjFDU19DTEsxMSkKLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMXxDTVhGQ1JfUkYxQ1NfTVNLfENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzEwfENNWEZDUl9URjFDU19DTEsxMSkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJMAorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICMgZGVmaW5lIE1ESU9fUE9SVAkJMAkJLyogUG9ydCBBICovCiAjIGRlZmluZSBNRElPX0RBVEFfUElOTUFTSwkweDAwMDQwMDAwCS8qIFBpbiAxMyAqLwpAQCAtMTA0LDEwICsxMDQsMTAgQEAKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQorIyBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKIAogIyBkZWZpbmUgTURJT19QT1JUCQkwCQkvKiBQb3J0IEEgKi8KICMgZGVmaW5lIE1ESU9fREFUQV9QSU5NQVNLCTB4MDAwMDAwNDAJLyogUGluIDI1ICovCkBAIC0xMjEsMTAgKzEyMSwxMCBAQAogICogLSBSQU0gZm9yIEJEL0J1ZmZlcnMgaXMgb24gdGhlIDYweCBCdXMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMzfENNWEZDUl9SRjNDU19NU0t8Q01YRkNSX1RGM0NTX01TSykKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCi0jIGRlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFfEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzN8Q01YRkNSX1JGM0NTX01TS3xDTVhGQ1JfVEYzQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjNDU19DTEsxNXxDTVhGQ1JfVEYzQ1NfQ0xLMTYpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQogCiAjIGRlZmluZSBNRElPX1BPUlQJCTAJCS8qIFBvcnQgQSAqLwogIyBkZWZpbmUgTURJT19EQVRBX1BJTk1BU0sJMHgwMDAwMDEwMAkvKiBQaW4gMjMgKi8KQEAgLTI1Miw1MyArMjUyLDUzIEBACiAvKgogICogSHltb2Qgc3BlY2lmaWMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI3VuZGVmCUNGR19IWU1PRF9EQkxFRFMJCQkvKiB3YWxrIG1lenogYm9hcmQgTEVEcyAqLworI3VuZGVmCUNPTkZJR19TWVNfSFlNT0RfREJMRURTCQkJLyogd2FsayBtZXp6IGJvYXJkIExFRHMgKi8KIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDNjMDAwMDAJLyogNCAuLi4gNjAgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDNjMDAwMDAJLyogNCAuLi4gNjAgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19DTEtTX0lOX0haCQkxCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DTEtTX0lOX0haCQkxCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAotI2RlZmluZQlDRkdfSTJDX1NQRUVECQk1MDAwMAotI2RlZmluZQlDRkdfSTJDX1NMQVZFCQkweDdlCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3ZQogCiAvKiB0aGVzZSBhcmUgZm9yIHRoZSBTVCBNMjRDMDIgMmtiaXQgc2VyaWFsIGkyYyBlZXByb20gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkJLyogYnl0ZXMgb2YgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCQkvKiBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJCS8qIGJ5dGVzIG9mIGFkZHJlc3MgKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiICAgICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CiAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAkvKiAxNiBieXRlIHdyaXRlIHBhZ2Ugc2l6ZSAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYW5kIHRha2VzIHVwIHRvIDEwIG1zZWMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQJLyogMTYgYnl0ZSB3cml0ZSBwYWdlIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwkxCQkvKiBoeW1vZCBoYXMgdHdvIGVlcHJvbXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwkxCQkvKiBoeW1vZCBoYXMgdHdvIGVlcHJvbXMgKi8KIAotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NTEJLyogcGhpbGlwcyBQQ0Y4NTYzIFJUQyBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTEJLyogcGhpbGlwcyBQQ0Y4NTYzIFJUQyBhZGRyZXNzICovCiAKIC8qCiAgKiBzdGFuZGFyZCBkdHQgc2Vuc29yIGNvbmZpZ3VyYXRpb24gLSBib3R0b20gYml0IHdpbGwgZGV0ZXJtaW5lIGxvY2FsIG9yCiAgKiByZW1vdGUgc2Vuc29yIG9mIHRoZSBBRE0xMDIxLCB0aGUgcmVzdCBkZXRlcm1pbmVzIGluZGV4IGludG8KLSAqIENGR19EVFRfQURNMTAyMSBhcnJheSBiZWxvdy4KKyAqIENPTkZJR19TWVNfRFRUX0FETTEwMjEgYXJyYXkgYmVsb3cuCiAgKgogICogT24gSFlNT0QgYm9hcmQsIHRoZSByZW1vdGUgc2Vuc29yIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gdGhlIE1QQzgyNjAKICAqIHRlbXBlcmF0dXJlIGRpb2RlIHRoaW5neSwgYnV0IGFuIGVycmF0YSBzYWlkIHRoaXMgZGlkbid0IHdvcmsgYW5kCkBAIC0zMjMsNyArMzIzLDcgQEAKICAqIC0gbG9jYWwgdGVtcCBzZW5zb3IgZW5hYmxlZCwgbWluIHNldCB0byAwIGRlZywgbWF4IHNldCB0byA4NSBkZWcKICAqIC0gcmVtb3RlIHRlbXAgc2Vuc29yIGRpc2FibGVkIChzZWUgY29tbWVudCBmb3IgQ09ORklHX0RUVF9TRU5TT1JTIGFib3ZlKQogICovCi0jZGVmaW5lIENGR19EVFRfQURNMTAyMQkJeyB7IDB4MmEsIDB4MDIsIDAsIDEsIDAsIDg1LCAwLCB9IH0KKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfQURNMTAyMQkJeyB7IDB4MmEsIDB4MDIsIDAsIDEsIDAsIDg1LCAwLCB9IH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0zMzQsODYgKzMzNCw4NiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSGFyZCBSZXNldCBDb25maWd1cmF0aW9uIFdvcmRzCiAgKgotICogaWYgeW91IGNoYW5nZSBiaXRzIGluIHRoZSBIUkNXLCB5b3UgbXVzdCBhbHNvIGNoYW5nZSB0aGUgQ0ZHXyoKKyAqIGlmIHlvdSBjaGFuZ2UgYml0cyBpbiB0aGUgSFJDVywgeW91IG11c3QgYWxzbyBjaGFuZ2UgdGhlIENPTkZJR19TWVNfKgogICogZGVmaW5lcyBmb3IgdGhlIHZhcmlvdXMgcmVnaXN0ZXJzIGFmZmVjdGVkIGJ5IHRoZSBIUkNXIGUuZy4gY2hhbmdpbmcKLSAqIEhSQ1dfRFBQQ3h4IHJlcXVpcmVzIHlvdSB0byBhbHNvIGNoYW5nZSBDRkdfU0lVTUNSLgorICogSFJDV19EUFBDeHggcmVxdWlyZXMgeW91IHRvIGFsc28gY2hhbmdlIENPTkZJR19TWVNfU0lVTUNSLgogICovCiAjaWZkZWYgREVCVUcKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCShIUkNXX0JQUzExfEhSQ1dfQ0lQfEhSQ1dfTDJDUEMwMXxIUkNXX0RQUEMxMHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJKEhSQ1dfQlBTMTF8SFJDV19DSVB8SFJDV19MMkNQQzAxfEhSQ1dfRFBQQzEwfFwKIAkJCSBIUkNXX0lTQjEwMHxIUkNXX0JNU3xIUkNXX01NUjExfEhSQ1dfQVBQQzEwfFwKIAkJCSBIUkNXX01PRENLX0gwMDEwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCShIUkNXX0JQUzExfEhSQ1dfQ0lQfEhSQ1dfTDJDUEMwMXxIUkNXX0RQUEMxMHxcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJKEhSQ1dfQlBTMTF8SFJDV19DSVB8SFJDV19MMkNQQzAxfEhSQ1dfRFBQQzEwfFwKIAkJCSBIUkNXX0lTQjEwMHxIUkNXX0JNU3xIUkNXX01NUjExfEhSQ1dfQVBQQzEwfFwKIAkJCSBIUkNXX01PRENLX0gwMTAxKQogI2VuZGlmCiAvKiBubyBzbGF2ZXMgc28ganVzdCBkdXBsaWNhdGUgdGhlIG1hc3RlciBocmN3ICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQlDRkdfSFJDV19NQVNURVIKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCUNGR19IUkNXX01BU1RFUgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJQ0ZHX0hSQ1dfTUFTVEVSCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAlDRkdfSFJDV19NQVNURVIKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CUNGR19IUkNXX01BU1RFUgotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJQ0ZHX0hSQ1dfTUFTVEVSCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwlDRkdfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQlDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJQ09ORklHX1NZU19IUkNXX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCUNPTkZJR19TWVNfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAlDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJQ09ORklHX1NZU19IUkNXX01BU1RFUgorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CUNPTkZJR19TWVNfSFJDV19NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwlDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFCQkweDgwMDAwMDAwCiAvKgotICogdW5mb3J0dW5hdGVseSwgQ0ZHX01PTklUT1JfTEVOIG11c3QgaW5jbHVkZSB0aGUKKyAqIHVuZm9ydHVuYXRlbHksIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gbXVzdCBpbmNsdWRlIHRoZQogICogKHZlcnkgbGFyZ2UgaS5lLiAyNTZrQikgZW52aXJvbm1lbnQgZmxhc2ggc2VjdG9yCiAgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvciovCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkqLworI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyIDw8IDEwKQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvciovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtIG1hcCBmb3IgTGludXgqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtIG1hcCBmb3IgTGludXgqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4NDAwMDAJLyogc2VlIFJFQURNRSAtIGVudiBzZWN0IHJlYWwgc2l6ZSAqLwotI2RlZmluZQlDT05GSUdfRU5WX0FERFIJKENGR19GTEFTSF9CQVNFK0NGR19NT05JVE9SX0xFTi1DT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX1NZU19NT05JVE9SX0xFTi1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDI2LDE0ICs0MjYsMTQgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8XAogCQkJCUhJRDBfSUZFTXxISUQwX0FCRSkKICNpZmRlZiBERUJVRwotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkwCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkoSElEMF9JQ0V8SElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRSkKICNlbmRpZgotI2RlZmluZSBDRkdfSElEMgkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIJCQkJCSA1LTUKQEAgLTQ0MSwyMiArNDQxLDIyIEBACiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwogI2lmZGVmIERFQlVHCi0jZGVmaW5lIENGR19STVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCTAKICNlbHNlCi0jZGVmaW5lIENGR19STVIJCVJNUl9DU1JFCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQlSTVJfQ1NSRQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uCQkJCQkgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfRVRNKQorI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJKEJDUl9FVE0pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EUFBDMTB8U0lVTUNSX0wyQ1BDMDF8XAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RQUEMxMHxTSVVNQ1JfTDJDUEMwMXxcCiAJCQkgU0lVTUNSX0FQUEMxMHxTSVVNQ1JfTU1SMTEpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ2NiwxMCArNDY2LDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4ICYgTG9jYWwgQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDfFNZUENSX0JNVHxTWVBDUl9QQk1FfFNZUENSX0xCTUV8XAogCQkJIFNZUENSX1NXUkl8U1lQQ1JfU1dQfFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUCkKICNlbmRpZiAvKiBDT05GSUdfV0FUQ0hET0cgKi8KIApAQCAtNDc5LDcgKzQ3OSw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCShUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkgNC00MgpAQCAtNDg3LDIwICs0ODcsMjAgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wJCQkJCSA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVuc3VyZSBERkJSRyBpcyBEaXZpZGUgYnkgMTYKICAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9ERkJSRzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfREZCUkcwMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uCQkJCTEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtNTMzLDEwICs1MzMsMTAgQEAKICAqLwogCiAvKiAzMiBiaXQsIHJlYWQtd3JpdGUsIEdQQ00gb24gNjB4IGJ1cyAqLwotI2RlZmluZQlDRkdfQlIwX1BSRUxJTQkoKENGR19GTEFTSF9CQVNFJkJSeF9CQV9NU0spfFwKKyNkZWZpbmUJQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFJkJSeF9CQV9NU0spfFwKIAkJCQlCUnhfUFNfMzJ8QlJ4X01TX0dQQ01fUHxCUnhfVikKIC8qIHVwIHRvIDMyIE1iICovCi0jZGVmaW5lCUNGR19PUjBfUFJFTElNCShNRUdfVE9fQU0oMzIpfE9SeEdfQ1NOVHxPUnhHX0FDU19ESVYyfE9SeEdfU0NZXzEwX0NMSykKKyNkZWZpbmUJQ09ORklHX1NZU19PUjBfUFJFTElNCShNRUdfVE9fQU0oMzIpfE9SeEdfQ1NOVHxPUnhHX0FDU19ESVYyfE9SeEdfU0NZXzEwX0NMSykKIAogLyoKICAqIEJhbmsgMiAtIFNEUkFNCkBAIC01NTYsMTMgKzU1NiwxMyBAQAogICogIGFkZHJlc3MgbGluZXMgdG8gYmUgY29uZmlndXJlZCB0byB0aGUgcmVxdWlyZWQgbXVsdGlwbGV4aW5nIHNjaGVtZS4iCiAgKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQk2NAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJNjQKIAogLyogNjQgYml0LCByZWFkLXdyaXRlLCBTRFJBTSBvbiA2MHggYnVzICovCi0jZGVmaW5lCUNGR19CUjJfUFJFTElNCSgoQ0ZHX1NEUkFNX0JBU0UmQlJ4X0JBX01TSyl8XAorI2RlZmluZQlDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChDT05GSUdfU1lTX1NEUkFNX0JBU0UmQlJ4X0JBX01TSyl8XAogCQkJCUJSeF9QU182NHxCUnhfTVNfU0RSQU1fUHxCUnhfVikKIC8qIDY0IE1iLCA0IGludCBiYW5rcyBwZXIgZGV2LCByb3cgc3RhcnQgYWRkciBiaXQgPSBBNiwgMTIgcm93IGFkZHIgbGluZXMgKi8KLSNkZWZpbmUJQ0ZHX09SMl9QUkVMSU0JKE1FR19UT19BTShDRkdfU0RSQU1fU0laRSl8XAorI2RlZmluZQlDT05GSUdfU1lTX09SMl9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNX1NJWkUpfFwKIAkJCQlPUnhTX0JQRF80fE9SeFNfUk9XU1RfUEJJMV9BNnxPUnhTX05VTVJfMTIpCiAKIC8qCkBAIC01NzksNyArNTc5LDcgQEAKICAqIHdhcyB3cml0dGVuIGlzIDEgY2xvY2ssIENBUyBMYXRlbmN5IGlzIDIuCiAgKi8KIAotI2RlZmluZSBDRkdfUFNETVIJKFBTRE1SX1BCSXxQU0RNUl9TREFNX0ExNl9JU19BNXxcCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVIJKFBTRE1SX1BCSXxQU0RNUl9TREFNX0ExNl9JU19BNXxcCiAJCQkJUFNETVJfQlNNQV9BMTRfQTE2fFBTRE1SX1NEQTEwX1BCSTFfQTd8XAogCQkJCVBTRE1SX1JGUkNfNl9DTEt8UFNETVJfUFJFVE9BQ1RfMld8XAogCQkJCVBTRE1SX0FDVFRPUldfMld8UFNETVJfTERPVE9QUkVfMUN8XApAQCAtNjExLDExICs2MTEsMTEgQEAKICAqLwogCiAjaWZkZWYgREVCVUcKLSNkZWZpbmUgQ0ZHX1BTUlQJMzkKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVY4CisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkzOQorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVY4CiAjZWxzZQotI2RlZmluZSBDRkdfUFNSVAkzMQotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjMyCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkzMQorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYzMgogI2VuZGlmCiAKIC8qCkBAIC02NTEsNyArNjUxLDcgQEAKICAqLwogCiAvKiBhbGwgdGhlIGJhbmsgc2l6ZXMgbXVzdCBiZSBhIHBvd2VyIG9mIHR3bywgZ3JlYXRlciBvciBlcXVhbCB0byAzMjc2OCAqLwotI2RlZmluZSBGUEdBX01BSU5fQ0ZHX0JBU0UJKENGR19GUEdBX0JBU0UpCisjZGVmaW5lIEZQR0FfTUFJTl9DRkdfQkFTRQkoQ09ORklHX1NZU19GUEdBX0JBU0UpCiAjZGVmaW5lIEZQR0FfTUFJTl9DRkdfU0laRQkzMjc2OAogI2RlZmluZSBGUEdBX01BSU5fUkVHX0JBU0UJKEZQR0FfTUFJTl9DRkdfQkFTRSArIEZQR0FfTUFJTl9DRkdfU0laRSkKICNkZWZpbmUgRlBHQV9NQUlOX1JFR19TSVpFCTMyNzY4CkBAIC02NjEsMzYgKzY2MSwzNiBAQAogI2RlZmluZSBGUEdBX01FWlpfQ0ZHX1NJWkUJMzI3NjgKIAogLyogOCBiaXQsIHJlYWQtd3JpdGUsIFVQTUMgKi8KLSNkZWZpbmUJQ0ZHX0JSM19QUkVMSU0JKEZQR0FfTUFJTl9DRkdfQkFTRXxCUnhfUFNfOHxCUnhfTVNfVVBNQ3xCUnhfVikKKyNkZWZpbmUJQ09ORklHX1NZU19CUjNfUFJFTElNCShGUEdBX01BSU5fQ0ZHX0JBU0V8QlJ4X1BTXzh8QlJ4X01TX1VQTUN8QlJ4X1YpCiAvKiB1cCB0byAzMktieXRlLCBidXJzdCBpbmhpYml0ICovCi0jZGVmaW5lCUNGR19PUjNfUFJFTElNCShQMlNaX1RPX0FNKEZQR0FfTUFJTl9DRkdfU0laRSl8T1J4VV9CSSkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjNfUFJFTElNCShQMlNaX1RPX0FNKEZQR0FfTUFJTl9DRkdfU0laRSl8T1J4VV9CSSkKIAogLyogMzIgYml0LCByZWFkLXdyaXRlLCBHUENNICovCi0jZGVmaW5lCUNGR19CUjRfUFJFTElNCShGUEdBX01BSU5fUkVHX0JBU0V8QlJ4X1BTXzMyfEJSeF9NU19HUENNX0x8QlJ4X1YpCisjZGVmaW5lCUNPTkZJR19TWVNfQlI0X1BSRUxJTQkoRlBHQV9NQUlOX1JFR19CQVNFfEJSeF9QU18zMnxCUnhfTVNfR1BDTV9MfEJSeF9WKQogLyogdXAgdG8gMzJLYnl0ZSAqLwotI2RlZmluZQlDRkdfT1I0X1BSRUxJTQkoUDJTWl9UT19BTShGUEdBX01BSU5fUkVHX1NJWkUpKQorI2RlZmluZQlDT05GSUdfU1lTX09SNF9QUkVMSU0JKFAyU1pfVE9fQU0oRlBHQV9NQUlOX1JFR19TSVpFKSkKIAogLyogMzIgYml0LCByZWFkLXdyaXRlLCBVUE1CICovCi0jZGVmaW5lCUNGR19CUjVfUFJFTElNCShGUEdBX01BSU5fUE9SVF9CQVNFfEJSeF9QU18zMnxCUnhfTVNfVVBNQnxCUnhfVikKKyNkZWZpbmUJQ09ORklHX1NZU19CUjVfUFJFTElNCShGUEdBX01BSU5fUE9SVF9CQVNFfEJSeF9QU18zMnxCUnhfTVNfVVBNQnxCUnhfVikKIC8qIHVwIHRvIDMyS2J5dGUgKi8KLSNkZWZpbmUJQ0ZHX09SNV9QUkVMSU0JKFAyU1pfVE9fQU0oRlBHQV9NQUlOX1BPUlRfU0laRSl8T1J4VV9CSSkKKyNkZWZpbmUJQ09ORklHX1NZU19PUjVfUFJFTElNCShQMlNaX1RPX0FNKEZQR0FfTUFJTl9QT1JUX1NJWkUpfE9SeFVfQkkpCiAKIC8qIDggYml0LCB3cml0ZS1vbmx5LCBVUE1DICovCi0jZGVmaW5lCUNGR19CUjZfUFJFTElNCShGUEdBX01FWlpfQ0ZHX0JBU0V8QlJ4X1BTXzh8QlJ4X01TX1VQTUN8QlJ4X1YpCisjZGVmaW5lCUNPTkZJR19TWVNfQlI2X1BSRUxJTQkoRlBHQV9NRVpaX0NGR19CQVNFfEJSeF9QU184fEJSeF9NU19VUE1DfEJSeF9WKQogLyogdXAgdG8gMzJLYnl0ZSwgYnVyc3QgaW5oaWJpdCAqLwotI2RlZmluZQlDRkdfT1I2X1BSRUxJTQkoUDJTWl9UT19BTShGUEdBX01FWlpfQ0ZHX1NJWkUpfE9SeFVfQkkpCisjZGVmaW5lCUNPTkZJR19TWVNfT1I2X1BSRUxJTQkoUDJTWl9UT19BTShGUEdBX01FWlpfQ0ZHX1NJWkUpfE9SeFVfQkkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1CTVIgLSBNYWNoaW5lIEIgTW9kZQkJCQkJMTAtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTUJNUgkoTXhNUl9CU0VMfE14TVJfT1BfTk9STSkJLyogWFhYIC0gbmVlZHMgbW9yZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01CTVIJKE14TVJfQlNFTHxNeE1SX09QX05PUk0pCS8qIFhYWCAtIG5lZWRzIG1vcmUgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTUNNUiAtIE1hY2hpbmUgQyBNb2RlCQkJCQkxMC0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19NQ01SCShNeE1SX0JTRUx8TXhNUl9EU3hfMl9DWUNMKQkvKiBYWFggLSBuZWVkcyBtb3JlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUNNUgkoTXhNUl9CU0VMfE14TVJfRFN4XzJfQ1lDTCkJLyogWFhYIC0gbmVlZHMgbW9yZSAqLwogCiAvKgogICogRlBHQSBJL08gUG9ydC9CaXQgaW5mb3JtYXRpb24KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9pZG1yLmggYi9pbmNsdWRlL2NvbmZpZ3MvaWRtci5oCmluZGV4IGExZjE1MTcuLjFkZDg5ZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pZG1yLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2lkbXIuaApAQCAtNDUsOSArNDUsOSBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBuZXRfbmZzIgogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKICNkZWZpbmUgQ09ORklHX01DRlVBUlQKLSNkZWZpbmUgQ0ZHX1VBUlRfUE9SVAkJKDApCisjZGVmaW5lIENPTkZJR19TWVNfVUFSVF9QT1JUCQkoMCkKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxOTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwICwgMTkyMDAgLCAzODQwMCAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCAsIDE5MjAwICwgMzg0MDAgLCA1NzYwMCwgMTE1MjAwIH0KICNkZWZpbmUgQ09ORklHX0VUSEFERFIJCTAwOjA2OjNiOjAxOjQxOjU1CiAjZGVmaW5lIENPTkZJR19FVEhQUklNRQogI2RlZmluZSBDT05GSUdfSVBBRERSCQkxOTIuMTY4LjMwLjEKQEAgLTEyNSwzMCArMTI1LDMwIEBACiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNlbmRpZiAvKiAhQ09ORklHX01PTklUT1JfSVNfSU5fUkFNICovCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDQwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDM4MDAwMAogCi0jZGVmaW5lIENGR19IWgkJCSg1MDAwMDAwMCAvIDY0KQotI2RlZmluZSBDRkdfQ0xLCQkJMTAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoNTAwMDAwMDAgLyA2NCkKKyNkZWZpbmUgQ09ORklHX1NZU19DTEsJCQkxMDAwMDAwMDAKIAotI2RlZmluZSBDRkdfTUJBUgkJMHg0MDAwMDAwMAkvKiBSZWdpc3RlciBCYXNlIEFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHg0MDAwMDAwMAkvKiBSZWdpc3RlciBCYXNlIEFkZHJzICovCiAKIC8qCiAgKiBFdGhlcm5ldApAQCAtMTU4LDc0ICsxNTgsNzQgQEAKICMJZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJCTEKICMJZGVmaW5lIENPTkZJR19NSUkJCTEKICMJZGVmaW5lIENPTkZJR19NSUlfSU5JVAkJMQotIwlkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQotIwlkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAotIwlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCWRlZmluZSBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWQorIwlkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgKKyMJZGVmaW5lIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIAotIwlkZWZpbmUgQ0ZHX0ZFQzBfUElOTVVYCQkwCi0jCWRlZmluZSBDRkdfRkVDMF9NSUlCQVNFCQlDRkdfRkVDMF9JT0JBU0UKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9QSU5NVVgJCTAKKyMJZGVmaW5lIENPTkZJR19TWVNfRkVDMF9NSUlCQVNFCQlDT05GSUdfU1lTX0ZFQzBfSU9CQVNFCiAjCWRlZmluZSBNQ0ZGRUNfVE9VVF9MT09QCQk1MDAwMAotLyogSWYgQ0ZHX0RJU0NPVkVSX1BIWSBpcyBub3QgZGVmaW5lZCAtIGhhcmRjb2RlZCAqLwotIwlpZm5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorLyogSWYgQ09ORklHX1NZU19ESVNDT1ZFUl9QSFkgaXMgbm90IGRlZmluZWQgLSBoYXJkY29kZWQgKi8KKyMJaWZuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjCQlkZWZpbmUgRkVDRFVQTEVYCUZVTEwKICMJCWRlZmluZSBGRUNTUEVFRAkJXzEwMEJBU0VUCiAjCWVsc2UKLSMJCWlmbmRlZiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04KLSMJCQlkZWZpbmUgQ0ZHX0ZBVUxUX0VDSE9fTElOS19ET1dOCisjCQlpZm5kZWYgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTgorIwkJCWRlZmluZSBDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOCiAjCQllbmRpZgotIwllbmRpZgkJCS8qIENGR19ESVNDT1ZFUl9QSFkgKi8KKyMJZW5kaWYJCQkvKiBDT05GSUdfU1lTX0RJU0NPVkVSX1BIWSAqLwogI2VuZGlmCiAKIC8qCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBpbnRlcm5hbCBTUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIGludGVybmFsIFNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyoKICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkxNgkJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkxNgkJLyogU0RSQU0gc2l6ZSBpbiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmY4MDAwMDAKIAogI2lmZGVmIENPTkZJR19NT05JVE9SX0lTX0lOX1JBTQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgyMDAwMAogI2Vsc2UgLyogIUNPTkZJR19NT05JVE9SX0lTX0lOX1JBTSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDApCiAjZW5kaWYgLyogQ09ORklHX01PTklUT1JfSVNfSU5fUkFNICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JKDY0KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCSg2NCoxMDI0KQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbiA/PwogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCShDRkdfU0RSQU1fQkFTRSArIChDRkdfU0RSQU1fU0laRSA8PCAyMCkpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKENPTkZJR19TWVNfU0RSQU1fU0laRSA8PCAyMCkpCiAKIC8qIEZMQVNIIG9yZ2FuaXphdGlvbiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4ODAwMDAwCiAvKgotICogI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisgKiAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCiAgKi8KIAogLyogQ2FjaGUgQ29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgogCiAvKiBQb3J0IGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZFQ0kyQwkJMHhGMAorI2RlZmluZSBDT05GSUdfU1lTX0ZFQ0kyQwkJMHhGMAogCiAKIC8qIER5bmFtaWMgTVREIHBhcnRpdGlvbiBzdXBwb3J0ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaW1wYTcuaCBiL2luY2x1ZGUvY29uZmlncy9pbXBhNy5oCmluZGV4IDUyZWI4ODguLmJiM2MwMmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pbXBhNy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9pbXBhNy5oCkBAIC00MSw4ICs0MSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTk2LDI0ICs5NiwyNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJpbXBBNyAjICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJImltcEE3ICMgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweGMxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweGMxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMjAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMiBrSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTIwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDIga0h6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTEzOSwxNyArMTM5LDE3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJMHgxMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMyICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDgwMDAwMCAvKiAxNiBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTcxCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoUEhZU19GTEFTSF8xICsgMHgxQzAwMCkJLyogQWRkciBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9pbXgzMV9saXRla2l0LmggYi9pbmNsdWRlL2NvbmZpZ3MvaW14MzFfbGl0ZWtpdC5oCmluZGV4IDlhNjU1YWEuLjZjMTUwYWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pbXgzMV9saXRla2l0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2lteDMxX2xpdGVraXQuaApAQCAtNTMsMTUgKzUzLDE1IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjggKiAxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKICAqLwogCiAjZGVmaW5lIENPTkZJR19NWDMxX1VBUlQJMQotI2RlZmluZSBDRkdfTVgzMV9VQVJUMQkJMQorI2RlZmluZSBDT05GSUdfU1lTX01YMzFfVUFSVDEJCTEKIAogI2RlZmluZSBDT05GSUdfSEFSRF9TUEkJCTEKICNkZWZpbmUgQ09ORklHX01YQ19TUEkJCTEKQEAgLTc3LDcgKzc3LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJezk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7OTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvbW1hbmQgZGVmaW5pdGlvbgpAQCAtMTExLDIwICsxMTEsMjAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkidWJvb3Q+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2ICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJInVib290PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNiAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgxMDAwMAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCiAKQEAgLTE0NSwxMiArMTQ1LDEyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNTMF9CQVNFCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMSAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkgICAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFIC8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ1MwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMSAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFIC8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCiAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMWYwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMWYwMDAwKQogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDY0ICogMTAyNCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoNjQgKiAxMDI0KQpAQCAtMTU4LDE0ICsxNTgsMTQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENGSSBGTEFTSCBkcml2ZXIgc2V0dXAKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIGRyaXZlcnMvY2ZpX2ZsYXNoLmMgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDEwMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgxMDAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDEwMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDEwMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2lteDMxX3BoeWNvcmUuaCBiL2luY2x1ZGUvY29uZmlncy9pbXgzMV9waHljb3JlLmgKaW5kZXggMTU0MDIwMy4uZjBkMjhlZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2lteDMxX3BoeWNvcmUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaW14MzFfcGh5Y29yZS5oCkBAIC01MSw4ICs1MSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjggKiAxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTYwLDE4ICs2MCwxOCBAQAogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQogI2RlZmluZSBDT05GSUdfSTJDX01YQwkJMQotI2RlZmluZSBDRkdfSTJDX01YMzFfUE9SVDIJMQotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhmZQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NWDMxX1BPUlQyCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhmZQogCiAjZGVmaW5lIENPTkZJR19NWDMxX1VBUlQJMQotI2RlZmluZSBDRkdfTVgzMV9VQVJUMQkJMQorI2RlZmluZSBDT05GSUdfU1lTX01YMzFfVUFSVDEJCTEKIAogLyogYWxsb3cgdG8gb3ZlcndyaXRlIHNlcmlhbCBhbmQgZXRoYWRkciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7OTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXs5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29tbWFuZCBkZWZpbml0aW9uCkBAIC0xMTMsMjAgKzExMywyMCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJ1Ym9vdD4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkidWJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NiAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkwICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMCAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDEwMDAwCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKIApAQCAtMTQ3LDMwICsxNDcsMzAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTkJICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRSAvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMSAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTkJICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFIC8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9FRVBST00JCTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCQkweDAwCS8qIGVudmlyb25tZW50IHN0YXJ0cyBoZXJlICAgICAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQk0MDk2Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTIKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA1IGJpdHMgPSAzMiBvY3RldHMgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGJldHdlZW4gc3RvcCBhbmQgc3RhcnQgICAgICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgkvKiBsZW5ndGggb2YgYnl0ZSBhZGRyZXNzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogNSBiaXRzID0gMzIgb2N0ZXRzICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYmV0d2VlbiBzdG9wIGFuZCBzdGFydCAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgkvKiBsZW5ndGggb2YgYnl0ZSBhZGRyZXNzICAgICAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ0ZJIEZMQVNIIGRyaXZlciBzZXR1cAogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgZHJpdmVycy9jZmlfZmxhc2guYyAqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIFVzZSBidWZmZXJlZCB3cml0ZXMgKH4xMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogVXNlIGhhcmR3YXJlIHNlY3RvciBwcm90ZWN0aW9uICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMTAwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDEwMCpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMTAwKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMTAwKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKIC8qCiAgKiBKRkZTMiBwYXJ0aXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaW5jYWlwLmggYi9pbmNsdWRlL2NvbmZpZ3MvaW5jYWlwLmgKaW5kZXggNTM2OGFjOC4uYTE4YmE4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2luY2FpcC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9pbmNhaXAuaApAQCAtNDMsNyArNDMsNyBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogCkBAIC0xMDgsNDcgKzEwOCw0NyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiSU5DQS1JUCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiSU5DQS1JUCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCTEyOCoxMDI0CiAKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JMTI4KjEwMjQKIAotI2RlZmluZSBDRkdfTUlQU19USU1FUl9GUkVRCShpbmNhaXBfZ2V0X2NwdWNsaygpIC8gMikKKyNkZWZpbmUgQ09ORklHX1NZU19NSVBTX1RJTUVSX0ZSRVEJKGluY2FpcF9nZXRfY3B1Y2xrKCkgLyAyKQogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAKIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDgwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDgwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg4MDEwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg4MDgwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHhiMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJMHhiMDgwMDAwMCAvKiBGbGFzaCBCYW5rICMyICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgI2RlZmluZXMgYXJlIG5lZWRlZCB0byBnZXQgZmxhc2ggZW52aXJvbm1lbnQgcmlnaHQgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkweDQwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyICogQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIApAQCAtMTg4LDggKzE4OCw4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQk0MDk2Ci0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJNDA5NgotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19EQ0FDSEVfU0laRQkJNDA5NgorI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQk0MDk2CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9pbmthNHgwLmggYi9pbmNsdWRlL2NvbmZpZ3MvaW5rYTR4MC5oCmluZGV4IDMyZDQ4NzEuLjQwNTIzNGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pbmthNHgwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2lua2E0eDAuaApAQCAtMzMsNyArMzMsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDNTIwMAkJMQkvKiAobW9yZSBwcmVjaXNlbHkgYW4gTVBDNTIwMCBDUFUpCSovCiAjZGVmaW5lIENPTkZJR19JTktBNFgwCQkxCS8qIElOS0E0eDAgYm9hcmQJCQkqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNICSovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CQkJKi8KQEAgLTQ3LDcgKzQ3LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgogICogUENJIE1hcHBpbmc6CkBAIC02Nyw3ICs2Nyw3IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfSU9fUEhZUwlDT05GSUdfUENJX0lPX0JVUwogI2RlZmluZSBDT05GSUdfUENJX0lPX1NJWkUJMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19YTEJfUElQRUxJTklORwkxCisjZGVmaW5lIENPTkZJR19TWVNfWExCX1BJUEVMSU5JTkcJMQogCiAvKiBQYXJ0aXRpb25zICovCiAjZGVmaW5lIENPTkZJR19NQUNfUEFSVElUSU9OCkBAIC0xMDIsNyArMTAyLDcgQEAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkxCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KIAogI2lmIChURVhUX0JBU0UgPT0gMHhGRkUwMDAwMCkJCS8qIEJvb3QgbG93ICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQogI2VuZGlmCiAKIC8qCkBAIC0xNTQsMzYgKzE1NCwzNiBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI2RlZmluZSBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwMjAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmZTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg0MDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDQwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCi0jZGVmaW5lIENGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lIENPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyoKICAqIFNEUkFNIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbgpAQCAtMTk1LDI3ICsxOTUsMjcgQEAKICNkZWZpbmUgQ09ORklHX0REUl9LNEg1MTE2MzhDCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI0MSw3ICsyNDEsNyBAQAogICogdXNlIFBTQzZfMSBhbmQgUFNDNl8zIGFzIEdQSU86IEJpdHMgOToxMSAobWFzazogMHgwNzAwMDAwMCk6CiAgKgkwMTEgLT4gUFNDNiBjb3VsZCBub3QgYmUgdXNlZCBhcyBVQVJUIG9yIENPREVDLiBJckRBIHN0aWxsIHBvc3NpYmxlLgogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMTAwMTAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDAxMDAxMDA0CiAKIC8qCiAgKiBSVEMgY29uZmlndXJhdGlvbgpAQCAtMjUxLDMxICsyNTEsMzEgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKiBFbmFibGUgYW4gYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdCAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qCiAgKiBFbmFibGUgbG9vcHcgY29tbWFuZC4KQEAgLTI4NiwzNiArMjg2LDM2IEBACiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDg3ODAwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLwotI2RlZmluZSBDRkdfQ1MwX1NUQVJUCQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQ1MwX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDg3ODAwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAvKiAzMk1iaXQgU1JBTSBAMHgzMDAwMDAwMCAqLwotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQkweDMwMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHgwMDQwMDAwMAotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHgzMTgwMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TVEFSVAkJMHgzMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgzMTgwMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLwogCiAvKiAyIHF1YWQgVUFSVCBAMHg4MDAwMDAwMCAoTUJBUiBpcyByZWxvY2F0ZWQgdG8gMHhGMDAwMDAwMCkgKi8KLSNkZWZpbmUgQ0ZHX0NTMl9TVEFSVAkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfQ1MyX1NJWkUJCTB4MDAwMTAwMAotI2RlZmluZSBDRkdfQ1MyX0NGRwkJMHgyMTgwMCAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU1RBUlQJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfU0laRQkJMHgwMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NGRwkJMHgyMTgwMCAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KIAogLyogR1BJTyBpbiBAMHgzMDQwMDAwMCAqLwotI2RlZmluZSBDRkdfQ1MzX1NUQVJUCQkweDMwNDAwMDAwCi0jZGVmaW5lIENGR19DUzNfU0laRQkJMHgwMDEwMDAwMAotI2RlZmluZSBDRkdfQ1MzX0NGRwkJMHgzMTgwMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTM19TVEFSVAkJMHgzMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TSVpFCQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NGRwkJMHgzMTgwMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLwogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTQiBzdHVmZgpAQCAtMzM5LDE4ICszMzksMTggQEAKICNkZWZpbmUJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDAwNjAJLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUIChDRkdfQVRBX0RBVEFfT0ZGU0VUKSAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMDVDCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwotI2RlZmluZSBDRkdfQVRBX1NUUklERSAgICAgICAgICA0CS8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJMHgwMDYwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCSovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKSAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDA1QwkvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFICAgICAgICAgIDQJLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMJKi8KIAogI2RlZmluZSBDT05GSUdfQVRBUEkgICAgICAgICAgICAxCiAKLSNkZWZpbmUgQ0ZHX0JSSUdIVE5FU1MgICAgICAgICAgMHhGRgkvKiBMQ0QgRGVmYXVsdCBCcmlnaHRuZXNzICgyNTUgPSBvZmYpICovCisjZGVmaW5lIENPTkZJR19TWVNfQlJJR0hUTkVTUyAgICAgICAgICAweEZGCS8qIExDRCBEZWZhdWx0IEJyaWdodG5lc3MgKDI1NSA9IG9mZikgKi8KIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9pbm5va29tLmggYi9pbmNsdWRlL2NvbmZpZ3MvaW5ub2tvbS5oCmluZGV4IGY5NTM1YzkuLjFiMDViODAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pbm5va29tLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2lubm9rb20uaApAQCAtMTAyLDU0ICsxMDIsNTQgQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NioxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJInVib290PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkidWJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAgICAgMHhhMDgwMDAwMCAgICAgIC8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgICAgICAgIDB4YTA4MDAwMDAgICAgICAvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgICAgICAgICAweGEzMDAwMDAwICAgICAgLyogbG9hZCBrZXJuZWwgdG8gdGhpcyBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgICAgICAgIDB4YTMwMDAwMDAgICAgICAvKiBsb2FkIGtlcm5lbCB0byB0aGlzIGFkZHJlc3MgICAqLwogCi0jZGVmaW5lIENGR19IWiAgICAgICAgICAgICAgICAgIDM2ODY0MDAgICAgICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAzNjg2NDAwICAgICAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwogCQkJCQkJLyogUlM6IHRoZSBvc2NpbGxhdG9yIGlzIGFjdHVhbGx5IDM2ODAxMzA/PyAqLwogCi0jZGVmaW5lIENGR19DUFVTUEVFRCAgICAgICAgICAgIDB4MTQxICAgICAgICAgICAvKiBzZXQgY29yZSBjbG9jayB0byAyMDAvMjAwLzEwMCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRCAgICAgICAgICAgIDB4MTQxICAgICAgICAgICAvKiBzZXQgY29yZSBjbG9jayB0byAyMDAvMjAwLzEwMCBNSHogKi8KIAkJCQkJCS8qIDAxMDEwMDAwMDEgKi8KIAkJCQkJCS8qICAgICAgXl5eXl4gTWVtb3J5IFNwZWVkIDk5LjUzIE1IeiAgICAgICAgICovCiAJCQkJCQkvKiAgICBeXiAgICAgIFJ1biBNb2RlIFNwZWVkID0gMnggTWVtIFNwZWVkICAqLwogCQkJCQkJLyogXl4gICAgICAgICBUdXJibyBNb2RlIFNwLiA9IDF4IFJ1biBNLiBTcC4gKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOCBLaUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgyMDAwMAkJLyogMTI4IEtpQiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogSTJDIGJ1cwogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJCTEKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJCTUwMDAwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCQkweGZlCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkJNTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCQkweGZlCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JCTEKIAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJCTB4MDAJLyogZW52aXJvbm1lbnQgc3RhcnRzIGhlcmUgICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJCTEwMjQJLyogMSBLaUIgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogQTAgPSAwIChoYXJkd2lyZWQpICAgICAgICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogNSBiaXRzID0gMzIgb2N0ZXRzICAgICAgICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxNQkvKiBiZXR3ZWVuIHN0b3AgYW5kIHN0YXJ0ICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIJLyogbGVuZ3RoIG9mIGFkZHJlc3MgICAgICAgICovCi0jZGVmaW5lIENGR19FRVBST01fU0laRQkJCTQwOTYJLyogc2l6ZSBpbiBieXRlcyAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19JMkNfSU5JVF9CT0FSRAkJMQkvKiBib2FyZCBoYXMgaXQncyBvd24gaW5pdCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogQTAgPSAwIChoYXJkd2lyZWQpICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qIDUgYml0cyA9IDMyIG9jdGV0cyAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTE1CS8qIGJldHdlZW4gc3RvcCBhbmQgc3RhcnQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIJLyogbGVuZ3RoIG9mIGFkZHJlc3MgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1NJWkUJCQk0MDk2CS8qIHNpemUgaW4gYnl0ZXMgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECQkxCS8qIGJvYXJkIGhhcyBpdCdzIG93biBpbml0ICAqLwogCiAvKgogICogU01TQzkxQzExMSBOZXR3b3JrIENhcmQKQEAgLTE4MywxMCArMTgzLDEwIEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMAkvKiBGbGFzaCBCYW5rICMxICAgICAgICAgICAgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CICAgICAgICAgICAgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCTB4YTAwMDAwMDAJLyogUkFNIHN0YXJ0cyBoZXJlICAgICAgICAgICovCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCTB4YTAwMDAwMDAJLyogUkFNIHN0YXJ0cyBoZXJlICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkweDA0MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICBQSFlTX0ZMQVNIXzEKIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMKQEAgLTI0Miw5ICsyNDIsOSBAQAogICogR1A3OSA9PSBuQ1MzICAgICAgaXMgMQogICogR1A4MCA9PSBuQ1M0ICAgICAgaXMgMQogICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwgICAgICAgMHgwMzAwODAwMAotI2RlZmluZSBDRkdfR1BTUjFfVkFMICAgICAgIDB4QzAwMjgyODIKLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTCAgICAgICAweDAwMDFDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMICAgICAgIDB4MDMwMDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwgICAgICAgMHhDMDAyODI4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTCAgICAgICAweDAwMDFDMDAwCiAKIC8qIEdQMDIgPT0gRE9OX1JTVCAgIGlzIDAKICAqIEdQMjMgPT0gU0NMSyAgICAgIGlzIDAKQEAgLTI1Myw5ICsyNTMsOSBAQAogICogR1A2MSA9PSBMRURfQSAgICAgaXMgMAogICogR1A3MyA9PSBTV1VQRF9MRUQgaXMgMAogICovCi0jZGVmaW5lIENGR19HUENSMF9WQUwgICAgICAgMHgwMDgwMDAwNAotI2RlZmluZSBDRkdfR1BDUjFfVkFMICAgICAgIDB4MzAwMDIwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTCAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMICAgICAgIDB4MDA4MDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMV9WQUwgICAgICAgMHgzMDAwMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTCAgICAgICAweDAwMDAwMTAwCiAKIC8qIEdQMDAgPT0gRE9OX1JFQURZIGlzIGlucHV0CiAgKiBHUDAxID09IERPTl9PSyAgICBpcyBpbnB1dApAQCAtMzAwLDkgKzMwMCw5IEBACiAgKiBHUDc5ID09IG5DUzMgICAgICBpcyBvdXRwdXQKICAqIEdQODAgPT0gbkNTNCAgICAgIGlzIG91dHB1dAogICovCi0jZGVmaW5lIENGR19HUERSMF9WQUwgICAgICAgMHgwMzgwODAwNAotI2RlZmluZSBDRkdfR1BEUjFfVkFMICAgICAgIDB4RjAwMkEyODIKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTCAgICAgICAweDAwMDFDMjAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMICAgICAgIDB4MDM4MDgwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwgICAgICAgMHhGMDAyQTI4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTCAgICAgICAweDAwMDFDMjAwCiAKIC8qIEdQMTUgPT0gbkNTMSAgaXMgQUYxMAogICogR1AxOCA9PSBSRFkgICBpcyBBRjAxCkBAIC0zMjIsMTIgKzMyMiwxMiBAQAogICogR1A3OSA9PSBuQ1MzICBpcyBBRjEwCiAgKiBHUDgwID09IG5DUzQgIGlzIEFGMTAKICAqLwotI2RlZmluZSBDRkdfR0FGUjBfTF9WQUwgICAgIDB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMICAgICAweDAwMUE4MDEwCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTCAgICAgMHg2MDA4ODA1OAotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwgICAgIDB4MDAwMDAwMDgKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMICAgICAweEEwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMl9VX1ZBTCAgICAgMHgwMDAwMDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMICAgICAweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfVV9WQUwgICAgIDB4MDAxQTgwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9MX1ZBTCAgICAgMHg2MDA4ODA1OAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMICAgICAweDAwMDAwMDA4CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfTF9WQUwgICAgIDB4QTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTCAgICAgMHgwMDAwMDAwMgogCiAKIC8qIEZJWE1FOiBzZXQgR1BJT19SRVIvRkVSICovCkBAIC0zMzgsNyArMzM4LDcgQEAKICAqIEJGUyA9IDEKICAqIFNTUyA9IDEKICAqLwotI2RlZmluZSBDRkdfUFNTUl9WQUwJCTB4MzcKKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTAkJMHgzNwogCiAvKgogICogTWVtb3J5IHNldHRpbmdzCkBAIC0zNTksNyArMzU5LDcgQEAKICAqIFswM10gICAgMSAgICAtIDE2IEJpdCBidXMgd2lkdGgKICAqIFswMjowMF0gMDAwICAtIG5vbmJ1cnN0IFJBTSBvciBGTEFTSAogICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkJMHgyNWI4MjViOCAvKiBmbGFzaCBiYW5rcyAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMCQkweDI1YjgyNWI4IC8qIGZsYXNoIGJhbmtzICAgICAgICAgICAgICAgICAgICovCiAKIC8qIFRoaXMgaXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzIvMyAtPiBURE0tU3dpdGNoLCBEU1AKICAqIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzM6IERTUApAQCAtMzc3LDcgKzM3Nyw3IEBACiAgKiBbMDNdICAgIDEgICAgLSAxNiBCaXQgYnVzIHdpZHRoCiAgKiBbMDI6MDBdIDEwMCAgLSB2YXJpYWJsZSBsYXRlbmN5IEkvTwogICovCi0jZGVmaW5lIENGR19NU0MxX1ZBTAkJMHgxMjNDNTkzQyAvKiBURE0gc3dpdGNoLCBEU1AgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMCQkweDEyM0M1OTNDIC8qIFRETSBzd2l0Y2gsIERTUCAgICAgICAgICAgICAgICovCiAKIC8qIFRoaXMgaXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzQvNSAtPiBFeHRCdXMsIExBTiBDb250cm9sbGVyCiAgKgpAQCAtMzk2LDcgKzM5Niw3IEBACiAgKiBbMDNdICAgIDEgICAgLSAxNiBCaXQgYnVzIHdpZHRoCiAgKiBbMDI6MDBdIDEwMCAgLSB2YXJpYWJsZSBsYXRlbmN5IEkvTwogICovCi0jZGVmaW5lIENGR19NU0MyX1ZBTAkJMHgxMjNDNkNEQyAvKiBleHRyYSBidXMsIExBTiBjb250cm9sbGVyICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCQkweDEyM0M2Q0RDIC8qIGV4dHJhIGJ1cywgTEFOIGNvbnRyb2xsZXIgICAgICovCiAKIC8qIE1EQ05GRzogU0RSQU0gQ29uZmlndXJhdGlvbiBSZWdpc3RlcgogICoKQEAgLTQyNCw3ICs0MjQsNyBAQAogICogWzAwXSAgICAgIDEgICAtIGVuYWJsZSAgU0RSQU0gcGFydGl0aW9uIDAKICAqLwogLyogdXNlIHRoZSBjb25maWd1cmF0aW9uIGFib3ZlIGJ1dCBkaXNhYmxlIHBhcnRpdGlvbiAwICovCi0jZGVmaW5lIENGR19NRENORkdfVkFMCQkweDAwMDAxOWM4CisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTAkJMHgwMDAwMTljOAogCiAvKiBNRFJFRlI6IFNEUkFNIFJlZnJlc2ggQ29udHJvbCBSZWdpc3RlcgogICoKQEAgLTQ0NSw3ICs0NDUsNyBAQAogICogWzEyXSAgICAxICAgICAtIEUwUElOOiBkaXNhYmxlIFNEQ0tFMAogICogWzExOjAwXSAwMDAwMDAwMTEwMDAgLSAoNjRtcy84MTkyKSpNZW1DbGtGcmVxLzMyID0gMjQKICAqLwotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJMHgwMDgxRDAxOAorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwJCTB4MDA4MUQwMTgKIAogLyogTURNUlM6IE1vZGUgUmVnaXN0ZXIgU2V0IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIKICAqCkBAIC00NjAsMTggKzQ2MCwxOCBAQAogICogWzAzXSAgICAgIDAgICAgICAgLSBNREFERDA6IFNEUkFNMC8xIGJ1cnN0IFR5cGUuIEZpeGVkIHRvIHNlcXVlbnRpYWwuCiAgKiBbMDI6MDBdICAgMDEwICAgICAtIE1EQkwwOiAgU0RSQU0wLzEgYnVyc3QgTGVuZ3RoLiBGaXhlZCB0byA0LgogICovCi0jZGVmaW5lIENGR19NRE1SU19WQUwJCTB4MDAwMjAwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwJCTB4MDAwMjAwMjIKIAogLyoKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcwogICovCi0jZGVmaW5lIENGR19NRUNSX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNBVFQwX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNJTzBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ0lPMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRUNSX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMF9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMV9WQUwJCTB4MDAwMDAwMDAKIAogLyoKICNkZWZpbmUgQ1NCMjI2X1VTRVJfTEVEMAkweDAwMDAwMDA4CkBAIC00ODIsMTEgKzQ4MiwxMSBAQAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0LiBvbiBvbmUgY2hpcCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAgIDEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0LiBvbiBvbmUgY2hpcCAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICAgICgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgICAgKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgICAgKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAgICgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICAgICAgICovCiAKICNlbmRpZiAgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2ludGVncmF0b3JhcC5oIGIvaW5jbHVkZS9jb25maWdzL2ludGVncmF0b3JhcC5oCmluZGV4IGY5NTFhMDEuLjZjZTNiNGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pbnRlZ3JhdG9yYXAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaW50ZWdyYXRvcmFwLmgKQEAgLTM0LDExICszNCwxMSBAQAogICogSGlnaCBMZXZlbCBDb25maWd1cmF0aW9uIE9wdGlvbnMKICAqIChlYXN5IHRvIGNoYW5nZSkKICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDEwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZSBDRkdfSFpfQ0xPQ0sJCTI0MDAwMDAwCS8qIFRpbWVyIDEgaXMgY2xvY2tlZCBhdCAyNE1oeiAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCQkweDEzMDAwMTAwCS8qIFRpbWVyMQkJICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFpfQ0xPQ0sJCTI0MDAwMDAwCS8qIFRpbWVyIDEgaXMgY2xvY2tlZCBhdCAyNE1oeiAqLworI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkJMHgxMzAwMDEwMAkvKiBUaW1lcjEJCSAgICAgICAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRwkxCS8qIGVuYWJsZSBwYXNzaW5nIG9mIEFUQUdzICAqLwogI2RlZmluZSBDT05GSUdfU0VUVVBfTUVNT1JZX1RBR1MJMQpAQCAtNTIsOCArNTIsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogUEwwMTAgQ29uZmlndXJhdGlvbgpAQCAtNjEsMTAgKzYxLDEwIEBACiAjZGVmaW5lIENPTkZJR19QTDAxMF9TRVJJQUwKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCi0jZGVmaW5lIENPTkZJR19QTDAxeF9QT1JUUwl7ICh2b2lkICopIChDRkdfU0VSSUFMMCksICh2b2lkICopIChDRkdfU0VSSUFMMSkgfQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQotI2RlZmluZSBDRkdfU0VSSUFMMAkJMHgxNjAwMDAwMAotI2RlZmluZSBDRkdfU0VSSUFMMQkJMHgxNzAwMDAwMAorI2RlZmluZSBDT05GSUdfUEwwMXhfUE9SVFMJeyAodm9pZCAqKSAoQ09ORklHX1NZU19TRVJJQUwwKSwgKHZvaWQgKikgKENPTkZJR19TWVNfU0VSSUFMMSkgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19TRVJJQUwwCQkweDE2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMMQkJMHgxNzAwMDAwMAogCiAvKiNkZWZpbmUgQ09ORklHX05FVF9NVUxUSSAqLwogCkBAIC05NCwxNiArOTQsMTYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJJbnRlZ3JhdG9yLUFQICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiSW50ZWdyYXRvci1BUCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4N2ZjMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDdmYzAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTEyMywyMSArMTIzLDIxIEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHgwMDAwMDAwMAkvKiBTRFJBTSBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCTB4MDIwMDAwMDAJLyogMzIgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgyNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MjQwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAkvKiAxNk1CICovCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTMyNzY4CiAKLSNkZWZpbmUgUEhZU19GTEFTSF8xCQkoQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIFBIWVNfRkxBU0hfMQkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIGRlZmluaXRpb25zCkBAIC0xNDksNyArMTQ5LDcgQEAKICNkZWZpbmUgREVCVUcKIAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOAkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTgJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCiAKIAogI2RlZmluZSBJTlRFR1JBVE9SX0JPT1RfUk9NX0JBU0UJMHgyMDAwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2ludGVncmF0b3JjcC5oIGIvaW5jbHVkZS9jb25maWdzL2ludGVncmF0b3JjcC5oCmluZGV4IDZkYmU0YjMuLjFhNzBhZjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9pbnRlZ3JhdG9yY3AuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaW50ZWdyYXRvcmNwLmgKQEAgLTM1LDExICszNSwxMSBAQAogICogSGlnaCBMZXZlbCBDb25maWd1cmF0aW9uIE9wdGlvbnMKICAqIChlYXN5IHRvIGNoYW5nZSkKICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDEwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZSBDRkdfSFpfQ0xPQ0sJCTEwMDAwMDAJLyogVGltZXIgMSBpcyBjbG9ja2VkIGF0IDFNaHogKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkJMHgxMzAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haX0NMT0NLCQkxMDAwMDAwCS8qIFRpbWVyIDEgaXMgY2xvY2tlZCBhdCAxTWh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFCQkweDEzMDAwMTAwCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfVEFHCQkxCS8qIGVuYWJsZSBwYXNzaW5nIG9mIEFUQUdzICAqLwogI2RlZmluZSBDT05GSUdfU0VUVVBfTUVNT1JZX1RBR1MJMQpAQCAtNDcsOCArNDcsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC02MywxMiArNjMsMTIgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUEwwMTFfU0VSSUFMCiAjZGVmaW5lIENPTkZJR19QTDAxMV9DTE9DSwkxNDc0NTYwMAotI2RlZmluZSBDT05GSUdfUEwwMXhfUE9SVFMJeyAodm9pZCAqKUNGR19TRVJJQUwwLCAodm9pZCAqKUNGR19TRVJJQUwxIH0KKyNkZWZpbmUgQ09ORklHX1BMMDF4X1BPUlRTCXsgKHZvaWQgKilDT05GSUdfU1lTX1NFUklBTDAsICh2b2lkICopQ09ORklHX1NZU19TRVJJQUwxIH0KICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTM4NDAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lIENGR19TRVJJQUwwCQkweDE2MDAwMDAwCi0jZGVmaW5lIENGR19TRVJJQUwxCQkweDE3MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX1NFUklBTDAJCTB4MTYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRVJJQUwxCQkweDE3MDAwMDAwCiAKIAogLyoKQEAgLTExMywxNiArMTEzLDE2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJJbnRlZ3JhdG9yLUNQICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJJbnRlZ3JhdG9yLUNQICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDdmYzAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHg3ZmMwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNTUsMzggKzE1NSwzOCBAQAogICogQmFzZSBpcyBhbHdheXMgMHgyNDAwMDAwMAogCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDI0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCS8qIDE2TUIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDEwMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIAogLyoKICAqIE1vdmUgdXAgdGhlIFUtQm9vdCAmIG1vbml0b3IgYXJlYSBpZiBtb3JlIGZsYXNoIGlzIGZpdHRlZC4KICAqIElmIHRoaXMgVS1Cb290IGlzIHRvIGJlIHJ1biBvbiBJbnRlZ3JhdG9ycyB3aXRoIHZhcnlpbmcgZmxhc2ggc2l6ZXMsCiAgKiBkcml2ZXJzL210ZC9jZmlfZmxhc2guYzo6Zmxhc2hfaW5pdCgpIGNhbiByZWFkIHRoZSBJbnRlZ3JhdG9yIENQX0ZMQVNIUFJPRwotICogcmVnaXN0ZXIgYW5kIGR5bmFtaWNhbGx5IGFzc2lnbiBDT05GSUdfRU5WX0FERFIgJiBDRkdfTU9OSVRPUl9CQVNFCi0gKiAtIENGR19NT05JVE9SX0JBU0UgaXMgc2V0IHRvIGluZGljYXRlIHRoYXQgdGhlIGVudmlyb25tZW50IGlzIG5vdAorICogcmVnaXN0ZXIgYW5kIGR5bmFtaWNhbGx5IGFzc2lnbiBDT05GSUdfRU5WX0FERFIgJiBDT05GSUdfU1lTX01PTklUT1JfQkFTRQorICogLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSBpcyBzZXQgdG8gaW5kaWNhdGUgdGhhdCB0aGUgZW52aXJvbm1lbnQgaXMgbm90CiAgKiBlbWJlZGRlZCBpbiB0aGUgYm9vdCBtb25pdG9yKHMpIGFyZWEKICAqLwogI2lmICggUEhZU19GTEFTSF9TSVpFID09IDB4MDQwMDAwMDAgKQogCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgyN0YwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MjdGNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgyN0Y0MDAwMAogCiAjZWxpZiAoUEhZU19GTEFTSF9TSVpFID09IDB4MDIwMDAwMDAgKQogCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgyNUYwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MjVGNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgyNUY0MDAwMAogCiAjZWxzZQogCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgyNEYwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MjdGNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgyN0Y0MDAwMAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2l4ZHA0MjUuaCBiL2luY2x1ZGUvY29uZmlncy9peGRwNDI1LmgKaW5kZXggYjkzMzQ3NS4uMzViMDQ1MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2l4ZHA0MjUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvaXhkcDQyNS5oCkBAIC00NSw4ICs0NSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4gICAgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOICAgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKiBhbGxvdyB0byBvdmVyd3JpdGUgc2VyaWFsIGFuZCBldGhhZGRyICovCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCkBAIC05MywyMyArOTMsMjMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICAgICAgICBDRkdfQ0JTSVpFICAgICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAgICAgICAgICI9PiAiICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFICAgICAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgICAgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgIDB4MDA4MDAwMDAgICAgICAvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweDAwODAwMDAwICAgICAgLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgICAgICAgMHgwMDAxMDAwMCAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAgICAweDAwMDEwMDAwICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFogICAgICAgICAgICAgICAgICAzMzMzMzMzICAgICAgICAgLyogc3BlYyBzYXlzIDY2LjY2NiBNSHosIGJ1dCBpdCBhcHBlYXJzIHRvIGJlIDMzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAzMzMzMzMzICAgICAgICAgLyogc3BlYyBzYXlzIDY2LjY2NiBNSHosIGJ1dCBpdCBhcHBlYXJzIHRvIGJlIDMzICovCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogU3RhY2sgc2l6ZXMKQEAgLTEzNCw3ICsxMzQsNyBAQAogLyoKICAqIHNlbGVjdCBzZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lYUDQyNV9DT05TT0xFCUlYUDQyNV9VQVJUMSAgIC8qIHdlIHVzZSBVQVJUMSBmb3IgY29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFCUlYUDQyNV9VQVJUMSAgIC8qIHdlIHVzZSBVQVJUMSBmb3IgY29uc29sZSAqLwogCiAvKgogICogUGh5c2ljYWwgTWVtb3J5IE1hcApAQCAtMTQ4LDI0ICsxNDgsMjQgQEAKICNkZWZpbmUgUEhZU19GTEFTSF9CQU5LX1NJWkUgICAgMHgwMDgwMDAwMCAvKiA4IE1CIEJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFICAgIDB4MDAwMjAwMDAgLyogMTI4IEtCIHNlY3RvcnMgKHgxKSAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UgICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRSAgICAgICAgICAgMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRSAgICAgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRSAgICAgICAgICAgMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIFBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIFBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KIAogLyoKICAqIEV4cGFuc2lvbiBidXMgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfRVhQX0NTMAkJCQkweGJjZDIzYzQyCisjZGVmaW5lIENPTkZJR19TWVNfRVhQX0NTMAkJCQkweGJjZDIzYzQyCiAKIC8qCiAgKiBTRFJBTSBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19TRFJfQ09ORklHCQkweGQKLSNkZWZpbmUgQ0ZHX1NEUl9NT0RFX0NPTkZJRwkweDEKLSNkZWZpbmUgQ0ZHX1NEUkFNX1JFRlJFU0hfQ05UCTB4ODFhCisjZGVmaW5lIENPTkZJR19TWVNfU0RSX0NPTkZJRwkJMHhkCisjZGVmaW5lIENPTkZJR19TWVNfU0RSX01PREVfQ09ORklHCTB4MQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfQ05UCTB4ODFhCiAKIC8qCiAgKiBHUElPIHNldHRpbmdzCkBAIC0xNzcsMjEgKzE3NywyMSBAQAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICAgICAxICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICAxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAxICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgICAgMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IFBIWVNfRkxBU0hfMSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IFBIWVNfRkxBU0hfMSB9CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQJLyogbm8gYnl0ZSB3cml0ZXMgb24gSVhQNHh4CSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8xNkJJVAkvKiBubyBieXRlIHdyaXRlcyBvbiBJWFA0eHgJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIDB4MjAwMDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvaXhkcGc0MjUuaCBiL2luY2x1ZGUvY29uZmlncy9peGRwZzQyNS5oCmluZGV4IDI0MTcyOGQuLjUyOGJjY2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9peGRwZzQyNS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9peGRwZzQyNS5oCkBAIC00OCw3ICs0OCw3IEBACiAjZGVmaW5lIENPTkZJR19IQVNfRVRIMQogI2RlZmluZSBDT05GSUdfUEhZMV9BRERSCTQJLyogTlBFMSBQSFkgYWRkcmVzcwkJKi8KICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KIAogLyoKICAqIE1pc2MgY29uZmlndXJhdGlvbiBvcHRpb25zCkBAIC01Nyw3ICs1Nyw3IEBACiAjZGVmaW5lIENPTkZJR19VU0VfSVJRICAgICAgICAgIDEJLyogd2UgbmVlZCBJUlEgc3R1ZmYgZm9yIHRpbWVyCSovCiAKICNkZWZpbmUgQ09ORklHX0JPT1RDT1VOVF9MSU1JVAkJLyogc3VwcG9ydCBmb3IgYm9vdGNvdW50IGxpbWl0CSovCi0jZGVmaW5lIENGR19CT09UQ09VTlRfQUREUgkweDYwMDAzMDAwIC8qIGluc2lkZSBxbXJnIHNyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENPVU5UX0FERFIJMHg2MDAwMzAwMCAvKiBpbnNpZGUgcW1yZyBzcmFtCQkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRwkxCS8qIGVuYWJsZSBwYXNzaW5nIG9mIEFUQUdzCSovCiAjZGVmaW5lIENPTkZJR19TRVRVUF9NRU1PUllfVEFHUyAxCkBAIC02NiwxNCArNjYsMTQgQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qIGFsbG93IHRvIG92ZXJ3cml0ZSBzZXJpYWwgYW5kIGV0aGFkZHIgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgICAgICAgICAxMTUyMDAKLSNkZWZpbmUgQ0ZHX0lYUDQyNV9DT05TT0xFCUlYUDQyNV9VQVJUMSAgIC8qIHdlIHVzZSBVQVJUMSBmb3IgY29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lYUDQyNV9DT05TT0xFCUlYUDQyNV9VQVJUMSAgIC8qIHdlIHVzZSBVQVJUMSBmb3IgY29uc29sZSAqLwogCiAKIC8qCkBAIC0xMDMsMjIgKzEwMywyMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAgICAgICAgICAiPT4gIiAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRSAgICAgICAgICAgICAgMjU2ICAgICAgICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTICAgICAgICAgICAgIDE2ICAgICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRSAgICAgICAgICAgIENGR19DQlNJWkUgICAgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVCAgICAgICAgICAgICAgIj0+ICIgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTICAgICAgICAgICAgIDE2ICAgICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUgICAgICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAgICAgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgICAgICAweDAwNDAwMDAwICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAgICAgMHgwMDgwMDAwMCAgICAgIC8qIDQgLi4uIDggTUIgaW4gRFJBTSAgICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgICAgICAgIDB4MDAwMTAwMDAgICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAgICAgMHgwMDQwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweDAwODAwMDAwICAgICAgLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgICAgICAgIDB4MDAwMTAwMDAgICAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogU3RhY2sgc2l6ZXMKQEAgLTE4NCw0NiArMTg0LDQ2IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfQkFOS19TSVpFICAgIDB4MDEwMDAwMDAgLyogMTYgTUIgQmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUgICAgMHgwMDAyMDAwMCAvKiAxMjggS0Igc2VjdG9ycyAoeDEpICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRSAgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9TSVpFICAgICAgICAgICAweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFICAgICAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFICAgICAgICAgICAweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogCiAvKgogICogRXhwYW5zaW9uIGJ1cyBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19FWFBfQ1MwCQkweGJjZDIzYzQyCisjZGVmaW5lIENPTkZJR19TWVNfRVhQX0NTMAkJMHhiY2QyM2M0MgogCiAvKgogICogU0RSQU0gc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfU0RSX0NPTkZJRwkJMHgxOAotI2RlZmluZSBDRkdfU0RSX01PREVfQ09ORklHCTB4MQotI2RlZmluZSBDRkdfU0RSQU1fUkVGUkVTSF9DTlQJMHg4MWEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJfQ09ORklHCQkweDE4CisjZGVmaW5lIENPTkZJR19TWVNfU0RSX01PREVfQ09ORklHCTB4MQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfQ05UCTB4ODFhCiAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgICAgMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBQSFlTX0ZMQVNIXzEgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBQSFlTX0ZMQVNIXzEgfQogCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCS8qIG5vIGJ5dGUgd3JpdGVzIG9uIElYUDR4eAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQJLyogbm8gYnl0ZSB3cml0ZXMgb24gSVhQNHh4CSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyAweDQwMDAwKQpAQCAtMjM2LDE2ICsyMzYsMTYgQEAKIC8qCiAgKiBHUElPIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fUENJX0lOVEFfTgk2Ci0jZGVmaW5lIENGR19HUElPX1BDSV9JTlRCX04JNwotI2RlZmluZSBDRkdfR1BJT19TV0lUQ0hfUkVTRVRfTgk4Ci0jZGVmaW5lIENGR19HUElPX1NMSUNfUkVTRVRfTgkxMwotI2RlZmluZSBDRkdfR1BJT19QQ0lfQ0xLCTE0Ci0jZGVmaW5lIENGR19HUElPX0VYVEJVU19DTEsJMTUKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSV9JTlRBX04JNgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0lOVEJfTgk3CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TV0lUQ0hfUkVTRVRfTgk4CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TTElDX1JFU0VUX04JMTMKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSV9DTEsJMTQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VYVEJVU19DTEsJMTUKIAogLyoKICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgogCiAjZW5kaWYgIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9qdXBpdGVyLmggYi9pbmNsdWRlL2NvbmZpZ3MvanVwaXRlci5oCmluZGV4IDVkOGUzYTYuLjJlYmUzNzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9qdXBpdGVyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2p1cGl0ZXIuaApAQCAtMzMsNyArMzMsNyBAQAogI2RlZmluZSBDT05GSUdfTVBDNTIwMAkJMQkvKiBlc3BlY2lhbGx5IGFuIE1QQzUyMDAgKi8KICNkZWZpbmUgQ09ORklHX0pVUElURVIJCTEJLyogLi4uIG9uIEp1cGl0ZXIgYm9hcmQgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IJMQogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEKQEAgLTQ4LDcgKzQ4LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgogICogUENJIE1hcHBpbmc6CkBAIC03MSwxMSArNzEsMTEgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9JT19TSVpFCTB4MDEwMDAwMDAKICNlbmRpZgogCi0jZGVmaW5lIENGR19YTEJfUElQRUxJTklORwkxCisjZGVmaW5lIENPTkZJR19TWVNfWExCX1BJUEVMSU5JTkcJMQogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfTUlJCQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfTUFDX1BBUlRJVElPTgpAQCAtMTQ0LDcgKzE0NCw3IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jdW5kZWYgQ0ZHX0lQQlNQRUVEXzEzMwkJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJTUEVFRF8xMzMJCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCiAjaWYgMAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMTYyLDQxICsxNjIsNDEgQEAKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MAogI2VuZGlmCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoVEVYVF9CQVNFICsgMHg0MDAwMCkgLyogdGhpcmQgc2VjdG9yICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAotI2RlZmluZSBDRkdfVVBEQVRFX0ZMQVNIX1NJWkUJMQotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfOEJJVAorI2RlZmluZSBDT05GSUdfU1lTX1VQREFURV9GTEFTSF9TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0yMTMsMjcgKzIxMywyNyBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI0OCw1NiArMjQ4LDU2IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDEwMDAwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MTAwMDAwMDQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QJCTEKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKIAotI2RlZmluZSBDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NzgwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2thdG1haS5oIGIvaW5jbHVkZS9jb25maWdzL2thdG1haS5oCmluZGV4IGIwZGMxNzUuLjU4Njk0Y2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9rYXRtYWkuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mva2F0bWFpLmgKQEAgLTM4LDcgKzM4LDcgQEAKICNkZWZpbmUgQ09ORklHXzQ0MAkJCTEJLyogLi4uIFBQQzQ0MCBmYW1pbHkJKi8KICNkZWZpbmUgQ09ORklHXzQ0MFNQRQkJCTEJLyogU3BlY2lmYyBTUGUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMzMzMzMzCS8qIGV4dGVybmFsIGZyZXEgdG8gcGxsCSovCi0jZGVmaW5lIENGR180eHhfUkVTRVRfVFlQRQkweDIJLyogdXNlIGNoaXAgcmVzZXQgb24gdGhpcyBib2FyZAkqLworI2RlZmluZSBDT05GSUdfU1lTXzR4eF9SRVNFVF9UWVBFCTB4MgkvKiB1c2UgY2hpcCByZXNldCBvbiB0aGlzIGJvYXJkCSovCiAKIC8qCiAgKiBFbmFibGUgdGhpcyBib2FyZCBmb3IgbW9yZSB0aGFuIDJHQiBvZiBTRFJBTQpAQCAtNjAsNTMgKzYwLDUzIEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGEwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCi0jZGVmaW5lIENGR19JU1JBTV9CQVNFCQkweDkwMDAwMDAwCS8qIGludGVybmFsIFNSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4YTAwMDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCQkweDkwMDAwMDAwCS8qIGludGVybmFsIFNSQU0JKi8KIAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIFBDSSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCSovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UJQ0ZHX1BDSV9NRU1CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIFBDSSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFCiAKLSNkZWZpbmUgQ0ZHX1BDSUVfTUVNQkFTRQkweGIwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJRV9NRU1TSVpFCTB4MDgwMDAwMDAJLyogc21hbGxlc3QgaW5jciBmb3IgUENJZSBwb3J0ICovCi0jZGVmaW5lIENGR19QQ0lFX0JBU0UJCTB4ZTAwMDAwMDAJLyogUENJZSBVVEwgcmVncyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRQkweGIwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfTUVNU0laRQkweDA4MDAwMDAwCS8qIHNtYWxsZXN0IGluY3IgZm9yIFBDSWUgcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfQkFTRQkJMHhlMDAwMDAwMAkvKiBQQ0llIFVUTCByZWdzICovCiAKLSNkZWZpbmUgQ0ZHX1BDSUUwX0NGR0JBU0UJMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfQ0ZHQkFTRQkweGMxMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9DRkdCQVNFCTB4YzIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUwX1hDRkdCQVNFCTB4YzMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX1hDRkdCQVNFCTB4YzMwMDEwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX1hDRkdCQVNFCTB4YzMwMDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9DRkdCQVNFCTB4YzEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9DRkdCQVNFCTB4YzIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRQkweGMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfWENGR0JBU0UJMHhjMzAwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX1hDRkdCQVNFCTB4YzMwMDIwMDAKIAogLyogYmFzZSBhZGRyZXNzIG9mIGluYm91bmQgUENJZSB3aW5kb3cgKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfSU5CT1VORF9CQVNFCTB4MDAwMDAwMDAwMDAwMDAwMFVMTAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfSU5CT1VORF9CQVNFCTB4MDAwMDAwMDAwMDAwMDAwMFVMTAogCiAvKiBTeXN0ZW0gUkFNIG1hcHBlZCB0byBQQ0kgc3BhY2UgKi8KLSNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fUEhZUwlDRkdfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fUEhZUwlDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1NJWkUJKDEwMjQgKiAxMDI0ICogMTAyNCkKIAotI2RlZmluZSBDRkdfQUNFX0JBU0UJCTB4ZmUwMDAwMDAJLyogWGlsaW54IEFDRSBjb250cm9sbGVyIC0gQ29tcGFjdCBGbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FDRV9CQVNFCQkweGZlMDAwMDAwCS8qIFhpbGlueCBBQ0UgY29udHJvbGxlciAtIENvbXBhY3QgRmxhc2ggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCUNGR19JU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JU1JBTV9CQVNFCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCUNPTkZJR19TWVNfSVNSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JU1JBTV9CQVNFCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSAweDQpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI3VuZGVmIENPTkZJR19VQVJUMV9DT05TT0xFCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKKyN1bmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCkBAIC0xMjAsMzQgKzEyMCwzNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKICNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMKICNkZWZpbmUgQ09ORklHX0kyQ19DTURfVFJFRQotI2RlZmluZSBDRkdfU1BEX0JVU19OVU0JCTAJLyogVGhlIEkyQyBidXMgZm9yIFNQRAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUERfQlVTX05VTQkJMAkvKiBUaGUgSTJDIGJ1cyBmb3IgU1BECQkqLwogCiAjZGVmaW5lIElJQzBfQk9PVFBST01fQUREUgkweDUwCiAjZGVmaW5lIElJQzBfQUxUX0JPT1RQUk9NX0FERFIJMHg1NAogCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCSgweDUwKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJKDB4NTApCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKIAogLyogSTJDIFJUQyAqLwogI2RlZmluZSBDT05GSUdfUlRDX000MVQxMQkxCi0jZGVmaW5lIENGR19SVENfQlVTX05VTQkJMQkvKiBUaGUgSTJDIGJ1cyBmb3IgUlRDCQkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKLSNkZWZpbmUgQ0ZHX000MVQxMV9CQVNFX1lFQVIJMTkwMAkvKiBwbGF5IGFsb25nIHdpdGggbGludXgJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SVENfQlVTX05VTQkJMQkvKiBUaGUgSTJDIGJ1cyBmb3IgUlRDCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfTTQxVDExX0JBU0VfWUVBUgkxOTAwCS8qIHBsYXkgYWxvbmcgd2l0aCBsaW51eAkqLwogCiAvKiBJMkMgRFRUICovCiAjZGVmaW5lIENPTkZJR19EVFRfQURNMTAyMQkxCS8qIEFETTEwMjEgdGVtcCBzZW5zb3Igc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfRFRUX0JVU19OVU0JCTEJLyogVGhlIEkyQyBidXMgZm9yIERUVAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfQlVTX05VTQkJMQkvKiBUaGUgSTJDIGJ1cyBmb3IgRFRUCQkqLwogLyoKICAqIHN0YW5kYXJkIGR0dCBzZW5zb3IgY29uZmlndXJhdGlvbiAtIGJvdHRvbSBiaXQgd2lsbCBkZXRlcm1pbmUgbG9jYWwgb3IKICAqIHJlbW90ZSBzZW5zb3Igb2YgdGhlIEFETTEwMjEsIHRoZSByZXN0IGRldGVybWluZXMgaW5kZXggaW50bwotICogQ0ZHX0RUVF9BRE0xMDIxIGFycmF5IGJlbG93LgorICogQ09ORklHX1NZU19EVFRfQURNMTAyMSBhcnJheSBiZWxvdy4KICAqLwogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJeyAwLCAxIH0KIApAQCAtMTY0LDcgKzE2NCw3IEBACiAgKiAtIGxvY2FsIHRlbXAgc2Vuc29yIGVuYWJsZWQsIG1pbiBzZXQgdG8gMCBkZWcsIG1heCBzZXQgdG8gODUgZGVnCiAgKiAtIHJlbW90ZSB0ZW1wIHNlbnNvciBlbmFibGVkLCBtaW4gc2V0IHRvIDAgZGVnLCBtYXggc2V0IHRvIDg1IGRlZwogICovCi0jZGVmaW5lIENGR19EVFRfQURNMTAyMQkJeyB7IDB4MTgsIDB4MDIsIDAsIDEsIDAsIDg1LCAxLCAwLCA1OH0gfQorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9BRE0xMDIxCQl7IHsgMHgxOCwgMHgwMiwgMCwgMSwgMCwgODUsIDEsIDAsIDU4fSB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC0yMDUsMjEgKzIwNSwyMSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCAgICB7Q0ZHX0ZMQVNIX0JBU0V9Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAgIDEJCSAgICAvKiBudW1iZXIgb2YgYmFua3MJICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMDI0CQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUICAgIHtDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAxCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEwMjQJCSAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLwogCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMCAvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMjM3LDEyICsyMzcsMTIgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9DT05GSUdfSE9TVF9CUklER0UKIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KLSN1bmRlZglDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCQkvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCisjdW5kZWYJQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogSUJNCQkJCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCi0vKiAjZGVmaW5lIENGR19QQ0lfU1VCU1lTX0lECUNGR19QQ0lfU1VCU1lTX0RFVklDRUlEICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogSUJNCQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLworLyogI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQJQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEICovCiAKIC8qCiAgKiAgTkVUV09SSyBTdXBwb3J0IChQQ0kpOgpAQCAtMjU0LDggKzI1NCw4IEBACiAgKiBYaWxpbnggU3lzdGVtIEFDRSBzdXBwb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfU1lTVEVNQUNFCTEJLyogRW5hYmxlIFN5c3RlbUFDRSBzdXBwb3J0CSovCi0jZGVmaW5lIENGR19TWVNURU1BQ0VfV0lEVEgJMTYJLyogRGF0YSBidXMgd2lkdGggaXMgMTYJCSovCi0jZGVmaW5lIENGR19TWVNURU1BQ0VfQkFTRQlDRkdfQUNFX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TWVNURU1BQ0VfV0lEVEgJMTYJLyogRGF0YSBidXMgd2lkdGggaXMgMTYJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UJQ09ORklHX1NZU19BQ0VfQkFTRQogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2Myw3ICsyNjMsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkoRUJDX0JYQVBfQk1FX0RJU0FCTEVEICAgICAgfAkJXAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJKEVCQ19CWEFQX0JNRV9ESVNBQkxFRCAgICAgIHwJCVwKIAkJCQkgRUJDX0JYQVBfVFdUX0VOQ09ERSg3KSAgICAgfAkJXAogCQkJCSBFQkNfQlhBUF9CQ0VfRElTQUJMRSAgICAgICB8CQlcCiAJCQkJIEVCQ19CWEFQX0JDVF8yVFJBTlMgICAgICAgIHwJCVwKQEAgLTI3NiwxMyArMjc2LDEzIEBACiAJCQkJIEVCQ19CWEFQX1NPUl9ERUxBWUVEICAgICAgIHwJCVwKIAkJCQkgRUJDX0JYQVBfQkVNX1dSSVRFT05MWSAgICAgfAkJXAogCQkJCSBFQkNfQlhBUF9QRU5fRElTQUJMRUQpCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShFQkNfQlhDUl9CQVNfRU5DT0RFKENGR19GTEFTSF9CQVNFKSB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShFQkNfQlhDUl9CQVNfRU5DT0RFKENPTkZJR19TWVNfRkxBU0hfQkFTRSkgfAlcCiAJCQkJIEVCQ19CWENSX0JTXzE2TUIgICAgICAgICAgICAgICAgICAgIHwJXAogCQkJCSBFQkNfQlhDUl9CVV9SVyAgICAgICAgICAgICAgICAgICAgICB8CVwKIAkJCQkgRUJDX0JYQ1JfQldfMTZCSVQpCiAKIC8qIE1lbW9yeSBCYW5rIDEgKFhpbGlueCBTeXN0ZW0gQUNFIGNvbnRyb2xsZXIpIGluaXRpYWxpemF0aW9uCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkoRUJDX0JYQVBfQk1FX0RJU0FCTEVEICAgICAgfAkJXAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJKEVCQ19CWEFQX0JNRV9ESVNBQkxFRCAgICAgIHwJCVwKIAkJCQkgRUJDX0JYQVBfVFdUX0VOQ09ERSg0KSAgICAgfAkJXAogCQkJCSBFQkNfQlhBUF9CQ0VfRElTQUJMRSAgICAgICB8CQlcCiAJCQkJIEVCQ19CWEFQX0JDVF8yVFJBTlMgICAgICAgIHwJCVwKQEAgLTI5NSw3ICsyOTUsNyBAQAogCQkJCSBFQkNfQlhBUF9TT1JfTk9OREVMQVlFRCAgICB8CQlcCiAJCQkJIEVCQ19CWEFQX0JFTV9XUklURU9OTFkgICAgIHwJCVwKIAkJCQkgRUJDX0JYQVBfUEVOX0RJU0FCTEVEKQotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkoRUJDX0JYQ1JfQkFTX0VOQ09ERShDRkdfQUNFX0JBU0UpICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCShFQkNfQlhDUl9CQVNfRU5DT0RFKENPTkZJR19TWVNfQUNFX0JBU0UpICB8CVwKIAkJCQkgRUJDX0JYQ1JfQlNfMU1CICAgICAgICAgICAgICAgICAgICB8CVwKIAkJCQkgRUJDX0JYQ1JfQlVfUlcgICAgICAgICAgICAgICAgICAgICB8CVwKIAkJCQkgRUJDX0JYQ1JfQldfMTZCSVQpCkBAIC0zMDUsNyArMzA1LDcgQEAKICAqIEtlZXAgdGhlIERlZmF1bHQgdmFsdWUsIGJ1dCB0aGUgYml0IFBEVCB3aGljaCBoYXMgdG8gYmUgc2V0IHRvIDEgP1RCQwogICogZGVmYXVsdCB2YWx1ZSA6IDB4MDdDMDAwMDAgLSAwIDAgMDAwIDEgMSAxIDEgMSAwMDAwIDAgMDAwMDAgMDAwMDAwMDAwMDAwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRUJDX0NGRwkJKEVCQ19DRkdfTEVfVU5MT0NLICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19DRkcJCShFQkNfQ0ZHX0xFX1VOTE9DSyAgICB8CVwKIAkJCQkgRUJDX0NGR19QVERfRU5BQkxFICAgfAlcCiAJCQkJIEVCQ19DRkdfUlRDXzE2UEVSQ0xLIHwgXAogCQkJCSBFQkNfQ0ZHX0FUQ19QUkVWSU9VUyB8IFwKQEAgLTMxOSwxNyArMzE5LDE3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBHUElPIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfR1BJT19QQ0lFX1BSRVNFTlQwCTE3Ci0jZGVmaW5lIENGR19HUElPX1BDSUVfUFJFU0VOVDEJMjEKLSNkZWZpbmUgQ0ZHX0dQSU9fUENJRV9QUkVTRU5UMgkyMwotI2RlZmluZSBDRkdfR1BJT19SUzIzMl9GT1JDRU9GRgkzMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJRV9QUkVTRU5UMAkxNworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJRV9QUkVTRU5UMQkyMQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJRV9QUkVTRU5UMgkyMworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUlMyMzJfRk9SQ0VPRkYJMzAKIAotI2RlZmluZSBDRkdfUEZDMAkJKEdQSU9fVkFMKENGR19HUElPX1BDSUVfUFJFU0VOVDApIHwgXAotCQkJCSBHUElPX1ZBTChDRkdfR1BJT19QQ0lFX1BSRVNFTlQxKSB8IFwKLQkJCQkgR1BJT19WQUwoQ0ZHX0dQSU9fUENJRV9QUkVTRU5UMikgfCBcCi0JCQkJIEdQSU9fVkFMKENGR19HUElPX1JTMjMyX0ZPUkNFT0ZGKSkKLSNkZWZpbmUgQ0ZHX0dQSU9fT1IJCUdQSU9fVkFMKENGR19HUElPX1JTMjMyX0ZPUkNFT0ZGKQotI2RlZmluZSBDRkdfR1BJT19UQ1IJCUdQSU9fVkFMKENGR19HUElPX1JTMjMyX0ZPUkNFT0ZGKQotI2RlZmluZSBDRkdfR1BJT19PRFIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19QRkMwCQkoR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1BDSUVfUFJFU0VOVDApIHwgXAorCQkJCSBHUElPX1ZBTChDT05GSUdfU1lTX0dQSU9fUENJRV9QUkVTRU5UMSkgfCBcCisJCQkJIEdQSU9fVkFMKENPTkZJR19TWVNfR1BJT19QQ0lFX1BSRVNFTlQyKSB8IFwKKwkJCQkgR1BJT19WQUwoQ09ORklHX1NZU19HUElPX1JTMjMyX0ZPUkNFT0ZGKSkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX09SCQlHUElPX1ZBTChDT05GSUdfU1lTX0dQSU9fUlMyMzJfRk9SQ0VPRkYpCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19UQ1IJCUdQSU9fVkFMKENPTkZJR19TWVNfR1BJT19SUzIzMl9GT1JDRU9GRikKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX09EUgkJMAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2tiOTIwMi5oIGIvaW5jbHVkZS9jb25maWdzL2tiOTIwMi5oCmluZGV4IDNjNTE0MTcuLjU1Y2RhMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9rYjkyMDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mva2I5MjAyLmgKQEAgLTUyLDcgKzUyLDcgQEAKIAogI2RlZmluZQlDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCiAKLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAKIAogI2lmbmRlZiByb3VuZHVwCiAjZGVmaW5lIHJvdW5kdXAoeCwgeSkgKCgoKHgpICsgKCh5KSAtIDEpKSAvICh5KSkgKiAoeSkpCkBAIC02MCw4ICs2MCw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKHJvdW5kdXAoQ09ORklHX0VOVl9TSVpFLDQwOTYpICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCShyb3VuZHVwKENPTkZJR19FTlZfU0laRSw0MDk2KSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAxMTUyMDAKIApAQCAtMTA5LDEzICsxMDksMTMgQEAKICNkZWZpbmUgUEhZU19TRFJBTSAweDIwMDAwMDAwCiAjZGVmaW5lIFBIWVNfU0RSQU1fU0laRSAweDIwMDAwMDAgIC8qIDMyIG1lZ3MgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkJUEhZU19TRFJBTQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCQlDRkdfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtICg1MTIqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlQSFlTX1NEUkFNCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSAoNTEyKjEwMjQpCiAKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9FVEhFUgogI2RlZmluZSBDT05GSUdfTkVUX1JFVFJZX0NPVU5UCQkyMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDEwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfS0I5MjAyCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJCTB4MTAwMDAwMApAQCAtMTIzLDggKzEyMyw4IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJCTB4MjAwMDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTI1NgogCiAjZGVmaW5lCUNPTkZJR19IQVJEX0kyQwogCkBAIC0xMzcsMjQgKzEzNywyNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJCTB4MTAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCQkweDEwMDAKICNlbmRpZgotI2RlZmluZQlDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCi0jZGVmaW5lCUNGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTYKLSNkZWZpbmUJQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTIKLSNkZWZpbmUJQ0ZHX0kyQ19TUEVFRAkJCTUwMDAwCi0jZGVmaW5lCUNGR19JMkNfU0xBVkUJCQkwIC8qIG5vdCB1c2VkICovCi0jZGVmaW5lCUNGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAorI2RlZmluZQlDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNgorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU1BFRUQJCQk1MDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0kyQ19TTEFWRQkJCTAgLyogbm90IHVzZWQgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjEwMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDIxMDAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7MTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezExNTIwMCAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDk2MDAgfQogCi0jZGVmaW5lIENGR19QUk9NUFQJCSJVLUJvb3Q+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KIAogI2RlZmluZQlDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZQlDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQ0ZJCiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNzUsOCArMTc1LDggQEAKIH07CiAjZW5kaWYKIAotI2RlZmluZSBDRkdfSFogMTAwMAotI2RlZmluZSBDRkdfSFpfQ0xPQ0sgQVQ5MUNfTUFTVEVSX0NMT0NLLzIJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLworI2RlZmluZSBDT05GSUdfU1lTX0haIDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSyBBVDkxQ19NQVNURVJfQ0xPQ0svMgkvKiBBVDkxQ19UQzBfQ01SIGlzIGltcGxpY2l0bHkgc2V0IHRvICovCiAJCQkJCS8qIEFUOTFDX1RDX1RJTUVSX0RJVjFfQ0xPQ0sgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mva2lsYXVlYS5oIGIvaW5jbHVkZS9jb25maWdzL2tpbGF1ZWEuaAppbmRleCA1ODkxOGQ0Li4yMzdhOWM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mva2lsYXVlYS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9raWxhdWVhLmgKQEAgLTUzLDEwICs1MywxMCBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19OQU5EX0FERFIJCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFCTB4RUY2MDAwMDAgICAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUREUgkJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweEVGNjAwMDAwICAgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIFN0YWNrIFBvaW50ZXIgQ29uZmlndXJhdGlvbiBPcHRpb25zCkBAIC03MiwyNSArNzIsMjUgQEAKICAqICAgdGhlIGxhdHRlciBvZiB3aGljaCBpcyBsZXNzIHRoYW4gZGVzaXJlYWJsZSBzaW5jZSBpdCByZXF1aXJlcwogICogICBzZXR0aW5nIHVwIHRoZSBTRFJBTSBhbmQgRUNDIGluIGFzc2VtYmx5IGNvZGUuCiAgKgotICogICBUbyB1c2UgKDIpLCBkZWZpbmUgJ0NGR19JTklUX0RDQUNIRV9DUycgdG8gYmUgYW4gdW51c2VkIGNoaXAKKyAqICAgVG8gdXNlICgyKSwgZGVmaW5lICdDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTJyB0byBiZSBhbiB1bnVzZWQgY2hpcAogICogICBzZWxlY3Qgb24gdGhlIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIGFuZCB0aGVuIHNlbGVjdCBhCi0gKiAgIHZhbHVlIGZvciAnQ0ZHX0lOSVRfUkFNX0FERFInIG91dHNpZGUgb2YgdGhlIHJhbmdlIG9mIHZhbGlkLAotICogICBwaHlzaWNhbCBTRFJBTS4gT3RoZXJ3aXNlLCB1bmRlZmluZSAnQ0ZHX0lOSVRfRENBQ0hFX0NTJyBhbmQKLSAqICAgc2VsZWN0IGEgdmFsdWUgZm9yICdDRkdfSU5JVF9SQU1fQUREUicgd2l0aGluIHRoZSByYW5nZSBvZiB2YWxpZCwKKyAqICAgdmFsdWUgZm9yICdDT05GSUdfU1lTX0lOSVRfUkFNX0FERFInIG91dHNpZGUgb2YgdGhlIHJhbmdlIG9mIHZhbGlkLAorICogICBwaHlzaWNhbCBTRFJBTS4gT3RoZXJ3aXNlLCB1bmRlZmluZSAnQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUycgYW5kCisgKiAgIHNlbGVjdCBhIHZhbHVlIGZvciAnQ09ORklHX1NZU19JTklUX1JBTV9BRERSJyB3aXRoaW4gdGhlIHJhbmdlIG9mIHZhbGlkLAogICogICBwaHlzaWNhbCBTRFJBTSB0byB1c2UgKDMpLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfRENBQ0hFX0NTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwk0CiAKLSNpZiBkZWZpbmVkKENGR19JTklUX0RDQUNIRV9DUykKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19TRFJBTV9CQVNFICsgKCAxIDw8IDMwKSkJLyogIDEgR2lCICovCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArICggMSA8PCAzMCkpCS8qICAxIEdpQiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19TRFJBTV9CQVNFICsgKDMyIDw8IDIwKSkJLyogMzIgTWlCICovCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKDMyIDw8IDIwKSkJLyogMzIgTWlCICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKSAqLwogCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAgICg0IDw8IDEwKQkJCS8qICA0IEtpQiAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgICAgKDQgPDwgMTApCQkJLyogIDQgS2lCICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogSWYgdGhlIGRhdGEgY2FjaGUgaXMgYmVpbmcgdXNlZCBmb3IgdGhlIHByaW1vcmRpYWwgc3RhY2sgYW5kIGdsb2JhbApAQCAtMTAwLDIwICsxMDAsMjAgQEAKICAqIGZvciB0aGUgUE9TVCB3b3JkLgogICovCiAKLSNpZiBkZWZpbmVkKENGR19JTklUX0RDQUNIRV9DUykKLSMgZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCi0jIGRlZmluZSBDRkdfUE9TVF9BTFRfV09SRF9BRERSCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9DT01QNikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MpCisjIGRlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCisjIGRlZmluZSBDT05GSUdfU1lTX1BPU1RfQUxUX1dPUkRfQUREUgkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyBHUFQwX0NPTVA2KQogI2Vsc2UKLSMgZGVmaW5lIENGR19JTklUX0VYVFJBX1NJWkUJMTYKLSMgZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIENGR19JTklUX0VYVFJBX1NJWkUpCi0jIGRlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSA0KQotIyBkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJQ0ZHX0lOSVRfUkFNX0FERFIKLSNlbmRpZiAvKiBkZWZpbmVkKENGR19JTklUX0RDQUNIRV9DUykgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfSU5JVF9FWFRSQV9TSVpFCTE2CisjIGRlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIENPTkZJR19TWVNfSU5JVF9FWFRSQV9TSVpFKQorIyBkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSA0KQorIyBkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCUNPTkZJR19TWVNfSU5JVF9SQU1fQUREUgorI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUykgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwCS8qIGV4dC4gMTEuMDU5TUh6IGNsawkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJMTEwNTkyMDAJLyogZXh0LiAxMS4wNTlNSHogY2xrCSovCiAvKiBkZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxICovCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIApAQCAtMTMwLDIyICsxMzAsMjIgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICAgIHtDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgICAge0NPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNzEsNTcgKzE3MSw1NyBAQAogICogc2V0IHVwLiBXaGlsZSBzdGlsbCBydW5uaW5nIGZyb20gbG9jYXRpb24gMHhmZmZmZjAwMC4uLjB4ZmZmZmZmZmYgdGhlCiAgKiBOQU5EIGNvbnRyb2xsZXIgY2Fubm90IGJlIGFjY2Vzc2VkIHNpbmNlIGl0IGlzIGF0dGFjaGVkIHRvIENTMCB0b28uCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfU1JDCTB4ZmZmZmYwMDAJLyogU1BMIGxvY2F0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfU0laRQkoNCA8PCAxMCkJLyogU1BMIHNpemUJCQkqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9EU1QJMHgwMDgwMDAwMAkvKiBDb3B5IFNQTCBoZXJlCQkqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyCSovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TVEFSVAlDRkdfTkFORF9VX0JPT1RfRFNUIC8qIFN0YXJ0IE5VQiBmcm9tIHRoaXMgYWRkcgkqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9ERUxUQQkoQ0ZHX05BTkRfQk9PVF9TUExfU1JDIC0gQ0ZHX05BTkRfQk9PVF9TUExfRFNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfU1JDCTB4ZmZmZmYwMDAJLyogU1BMIGxvY2F0aW9uCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NJWkUJKDQgPDwgMTApCS8qIFNQTCBzaXplCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RTVAkweDAwODAwMDAwCS8qIENvcHkgU1BMIGhlcmUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU1RBUlQJQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QgLyogU3RhcnQgTlVCIGZyb20gdGhpcyBhZGRyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9ERUxUQQkoQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX1NSQyAtIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9EU1QpCiAKIC8qCiAgKiBEZWZpbmUgdGhlIHBhcnRpdGlvbmluZyBvZiB0aGUgTkFORCBjaGlwIChvbmx5IFJBTSBVLUJvb3QgaXMgbmVlZGVkIGhlcmUpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX09GRlMJKDE2IDw8IDEwKQkvKiBPZmZzZXQgdG8gUkFNIFUtQm9vdCBpbWFnZQkqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfU0laRQkoMzg0IDw8IDEwKQkvKiBTaXplIG9mIFJBTSBVLUJvb3QgaW1hZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTCSgxNiA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TSVpFCSgzODQgPDwgMTApCS8qIFNpemUgb2YgUkFNIFUtQm9vdCBpbWFnZQkqLwogCiAvKgogICogTm93IHRoZSBOQU5EIGNoaXAgaGFzIHRvIGJlIGRlZmluZWQgKG5vIGF1dG9kZXRlY3Rpb24gdXNlZCEpCiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9TSVpFCTUxMgkJLyogTkFORCBjaGlwIHBhZ2Ugc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkxPQ0tfU0laRQkoMTYgPDwgMTApCS8qIE5BTkQgY2hpcCBibG9jayBzaXplCQkqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX0NPVU5UCTMyCQkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudAkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFEX0JMT0NLX1BPUwk1CQkvKiBMb2NhdGlvbiBvZiBiYWQgYmxvY2sgbWFya2VyCSovCi0jZGVmaW5lIENGR19OQU5EXzRfQUREUl9DWUNMRQkxCQkvKiBGb3VydGggYWRkciB1c2VkICg+MzJNQikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRQk1MTIJCS8qIE5BTkQgY2hpcCBwYWdlIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCSgxNiA8PCAxMCkJLyogTkFORCBjaGlwIGJsb2NrIHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX0NPVU5UCTMyCQkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBRF9CTE9DS19QT1MJNQkJLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlcgkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfNF9BRERSX0NZQ0xFCTEJCS8qIEZvdXJ0aCBhZGRyIHVzZWQgKD4zMk1CKQkqLwogCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NJWkUJMjU2Ci0jZGVmaW5lIENGR19OQU5EX0VDQ0JZVEVTCTMKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU1RFUFMJKENGR19OQU5EX1BBR0VfU0laRSAvIENGR19OQU5EX0VDQ1NJWkUpCi0jZGVmaW5lIENGR19OQU5EX09PQlNJWkUJMTYKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDVE9UQUwJKENGR19OQU5EX0VDQ0JZVEVTICogQ0ZHX05BTkRfRUNDU1RFUFMpCi0jZGVmaW5lIENGR19OQU5EX0VDQ1BPUwkJezAsIDEsIDIsIDMsIDYsIDd9CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NTSVpFCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDQllURVMJMworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFMJKENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUgLyBDT05GSUdfU1lTX05BTkRfRUNDU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX09PQlNJWkUJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1RPVEFMCShDT05GSUdfU1lTX05BTkRfRUNDQllURVMgKiBDT05GSUdfU1lTX05BTkRfRUNDU1RFUFMpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NQT1MJCXswLCAxLCAyLCAzLCA2LCA3fQogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9OQU5ECiAvKgogICogRm9yIE5BTkQgYm9vdGluZyB0aGUgZW52aXJvbm1lbnQgaXMgZW1iZWRkZWQgaW4gdGhlIFUtQm9vdCBpbWFnZS4gUGxlYXNlIHRha2UKICAqIGxvb2sgYXQgdGhlIGZpbGUgYm9hcmQvYW1jYy9zZXF1b2lhL3UtYm9vdC1uYW5kLmxkcyBmb3IgZGV0YWlscy4KICAqLwotI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNGR19OQU5EX0JMT0NLX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDRkdfTkFORF9VX0JPT1RfT0ZGUyArIENPTkZJR19FTlZfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQorI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUyArIENPTkZJR19FTlZfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5ECShDT05GSUdfRU5WX09GRlNFVCArIENPTkZJR19FTlZfU0laRSkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOQU5EIEZMQVNICiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQkoQ0ZHX05BTkRfQUREUiArIENGR19OQU5EX0NTKQotI2RlZmluZSBDRkdfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCShDT05GSUdfU1lTX05BTkRfQUREUiArIENPTkZJR19TWVNfTkFORF9DUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UgIDEJLyogbmFuZCBkcml2ZXIgc3VwcG9ydHMgbXV0aXBsLiBjaGlwcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERFIgU0RSQU0KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQllURVNfU0RSQU0gICAgICAgICgyNTYpCQkvKiAyNTZNQgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNICAgICAgICAoMjU2KQkJLyogMjU2TUIJCQkqLwogCiAvKgogICogQ09ORklHX1BQQzR4eF9ERFJfQVVUT0NBTElCUkFUSU9OCkBAIC0yMzksNTUgKzIzOSw1NSBAQAogI2RlZmluZQlERUJVR19QUEM0eHhfRERSX0FVVE9DQUxJQlJBVElPTgkvKiBkeW5hbWljIEREUiBhdXRvY2FsIGRlYnVnICovCiAjdW5kZWYJQ09ORklHX1BQQzR4eF9ERFJfTUVUSE9EX0EKIAotI2RlZmluZQlDRkdfU0RSQU0wX01CMENGX0JBU0UJKCggIDAgPDwgMjApICsgQ0ZHX1NEUkFNX0JBU0UpCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU0wX01CMENGX0JBU0UJKCggIDAgPDwgMjApICsgQ09ORklHX1NZU19TRFJBTV9CQVNFKQogCiAvKiBERFIxLzIgU0RSQU0gRGV2aWNlIENvbnRyb2wgUmVnaXN0ZXIgRGF0YSBWYWx1ZXMgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQjBDRgkoKENGR19TRFJBTTBfTUIwQ0ZfQkFTRSA+PiAzKQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUIwQ0YJKChDT05GSUdfU1lTX1NEUkFNMF9NQjBDRl9CQVNFID4+IDMpCXwgXAogCQkJCSBTRFJBTV9SWEJBU19TRFNaXzI1Nk1CCQl8IFwKIAkJCQkgU0RSQU1fUlhCQVNfU0RBTV9NT0RFNwkJfCBcCiAJCQkJIFNEUkFNX1JYQkFTX1NEQkVfRU5BQkxFKQotI2RlZmluZSBDRkdfU0RSQU0wX01CMUNGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQotI2RlZmluZSBDRkdfU0RSQU0wX01CMkNGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQotI2RlZmluZSBDRkdfU0RSQU0wX01CM0NGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQotI2RlZmluZSBDRkdfU0RSQU0wX01DT1BUMQkoU0RSQU1fTUNPUFQxX1BNVV9PUEVOCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUIxQ0YJU0RSQU1fUlhCQVNfU0RCRV9ESVNBQkxFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01CMkNGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NQjNDRglTRFJBTV9SWEJBU19TREJFX0RJU0FCTEUKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUNPUFQxCShTRFJBTV9NQ09QVDFfUE1VX09QRU4JCXwgXAogCQkJCSBTRFJBTV9NQ09QVDFfOF9CQU5LUwkJfCBcCiAJCQkJIFNEUkFNX01DT1BUMV9ERFIyX1RZUEUJCXwgXAogCQkJCSBTRFJBTV9NQ09QVDFfUURFUAkJfCBcCiAJCQkJIFNEUkFNX01DT1BUMV9EQ09PX0RJU0FCTEVEKQotI2RlZmluZSBDRkdfU0RSQU0wX01DT1BUMgkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfTU9EVDAJKFNEUkFNX01PRFRfRUIwV19FTkFCTEUgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01DT1BUMgkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01PRFQwCShTRFJBTV9NT0RUX0VCMFdfRU5BQkxFIHwgXAogCQkJCSBTRFJBTV9NT0RUX0VCMFJfRU5BQkxFKQotI2RlZmluZSBDRkdfU0RSQU0wX01PRFQxCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9DT0RUCQkoU0RSQU1fQ09EVF9SSzBSX09OCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTU9EVDEJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9DT0RUCQkoU0RSQU1fQ09EVF9SSzBSX09OCQl8IFwKIAkJCQkgU0RSQU1fQ09EVF9DS0xaXzM2T0hNCQl8IFwKIAkJCQkgU0RSQU1fQ09EVF9EUVNfMV84X1ZfRERSMgl8IFwKIAkJCQkgU0RSQU1fQ09EVF9JT19OTU9ERSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9SVFIJCVNEUkFNX1JUUl9SSU5UX0VOQ09ERSgxNTYwKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIwCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9SVFIJCVNEUkFNX1JUUl9SSU5UX0VOQ09ERSgxNTYwKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMAkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSg4MCkJCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUNNRF9FTkNPREUoSkVERUNfQ01EX05PUCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjEJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIxCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDMpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9QUkVDSEFSR0UpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKEpFREVDX0JBX01SKQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNQV9FTkNPREUoSkVERUNfTUFfUFJFQ0hBUkdFX0FMTCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjIJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIyCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDIpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9FTVIpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKEpFREVDX0JBX0VNUjIpCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1BX0VOQ09ERShKRURFQ19NQV9FTVIyX1RFTVBfQ09NTUVSQ0lBTCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjMJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIzCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDIpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9FTVIpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKEpFREVDX0JBX0VNUjMpCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1BX0VOQ09ERSgwKSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSNAkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjQJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1XVF9FTkNPREUoMikJCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUNNRF9FTkNPREUoSkVERUNfQ01EX0VNUikJCXwgXAogCQlTRFJBTV9JTklUUExSX0lCQV9FTkNPREUoSkVERUNfQkFfRU1SKQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNQV9FTkNPREUoSkVERUNfTUFfRU1SX0RRU19ESVNBQkxFIHwgXAogCQkJCQkgSkVERUNfTUFfRU1SX1JUVF83NU9ITSkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjUJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI1CShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDIpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9FTVIpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKEpFREVDX0JBX01SKQkJCXwgXApAQCAtMjk1LDMxICsyOTUsMzEgQEAKIAkJCQkJIEpFREVDX01BX01SX0NMX0REUjJfNF8wX0NMSyB8IFwKIAkJCQkJIEpFREVDX01BX01SX0JMRU5fNCB8IFwKIAkJCQkJIEpFREVDX01BX01SX0RMTF9SRVNFVCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjYJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI2CShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDMpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9QUkVDSEFSR0UpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKDB4MCkJCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1BX0VOQ09ERShKRURFQ19NQV9QUkVDSEFSR0VfQUxMKSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSNwkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjcJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1XVF9FTkNPREUoMjYpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9SRUZSRVNIKSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSOAkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjgJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1XVF9FTkNPREUoMjYpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9SRUZSRVNIKSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSOQkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjkJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1XVF9FTkNPREUoMjYpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9SRUZSRVNIKSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTAJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIxMAkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JTVdUX0VOQ09ERSgyNikJCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUNNRF9FTkNPREUoSkVERUNfQ01EX1JFRlJFU0gpKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxMQkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjExCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDIpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9FTVIpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKEpFREVDX0JBX01SKQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNQV9FTkNPREUoSkVERUNfTUFfTVJfV1JfRERSMl8zX0NZQyB8IFwKIAkJCQkJIEpFREVDX01BX01SX0NMX0REUjJfNF8wX0NMSyB8IFwKIAkJCQkJIEpFREVDX01BX01SX0JMRU5fNCkpCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjEyCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTIJKFNEUkFNX0lOSVRQTFJfRU5BQkxFCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSU1XVF9FTkNPREUoMikJCQkJfCBcCiAJCVNEUkFNX0lOSVRQTFJfSUNNRF9FTkNPREUoSkVERUNfQ01EX0VNUikJCXwgXAogCQlTRFJBTV9JTklUUExSX0lCQV9FTkNPREUoSkVERUNfQkFfRU1SKQkJCXwgXApAQCAtMzI4LDcgKzMyOCw3IEBACiAJCQkJCSBKRURFQ19NQV9FTVJfRFFTX0RJU0FCTEUgfCBcCiAJCQkJCSBKRURFQ19NQV9FTVJfUlRUX0RJU0FCTEVEIHwgXAogCQkJCQkgSkVERUNfTUFfRU1SX09EU19OT1JNQUwpKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxMwkoU0RSQU1fSU5JVFBMUl9FTkFCTEUJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjEzCShTRFJBTV9JTklUUExSX0VOQUJMRQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lNV1RfRU5DT0RFKDIpCQkJCXwgXAogCQlTRFJBTV9JTklUUExSX0lDTURfRU5DT0RFKEpFREVDX0NNRF9FTVIpCQl8IFwKIAkJU0RSQU1fSU5JVFBMUl9JQkFfRU5DT0RFKEpFREVDX0JBX0VNUikJCQl8IFwKQEAgLTMzNyw1NCArMzM3LDU0IEBACiAJCQkJCSBKRURFQ19NQV9FTVJfRFFTX0RJU0FCTEUgfCBcCiAJCQkJCSBKRURFQ19NQV9FTVJfUlRUX0RJU0FCTEVEIHwgXAogCQkJCQkgSkVERUNfTUFfRU1SX09EU19OT1JNQUwpKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxNAkoU0RSQU1fSU5JVFBMUl9ESVNBQkxFKQotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxNQkoU0RSQU1fSU5JVFBMUl9ESVNBQkxFKQotI2RlZmluZSBDRkdfU0RSQU0wX1JRREMJCShTRFJBTV9SUURDX1JRREVfRU5BQkxFIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTQJKFNEUkFNX0lOSVRQTFJfRElTQUJMRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjE1CShTRFJBTV9JTklUUExSX0RJU0FCTEUpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1JRREMJCShTRFJBTV9SUURDX1JRREVfRU5BQkxFIHwgXAogCQkJCSBTRFJBTV9SUURDX1JRRkRfRU5DT0RFKDU2KSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9SRkRDCQlTRFJBTV9SRkRDX1JGRkRfRU5DT0RFKDUyMSkKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9SRENDCQkoU0RSQU1fUkRDQ19SRFNTX1QyKQotI2RlZmluZSBDRkdfU0RSQU0wX0RMQ1IJCShTRFJBTV9ETENSX0RDTE1fQVVUTwkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1JGREMJCVNEUkFNX1JGRENfUkZGRF9FTkNPREUoNTIxKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9SRENDCQkoU0RSQU1fUkRDQ19SRFNTX1QyKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9ETENSCQkoU0RSQU1fRExDUl9EQ0xNX0FVVE8JCXwgXAogCQkJCSBTRFJBTV9ETENSX0RMQ1NfQ09OVF9ET05FCXwgXAogCQkJCSBTRFJBTV9ETENSX0RMQ1ZfRU5DT0RFKDE2NSkpCi0jZGVmaW5lIENGR19TRFJBTTBfQ0xLVFIJKFNEUkFNX0NMS1RSX0NMS1BfMTgwX0RFR19BRFYpCi0jZGVmaW5lIENGR19TRFJBTTBfV1JEVFIJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX1NEVFIxCShTRFJBTV9TRFRSMV9MRE9GXzJfQ0xLCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9DTEtUUgkoU0RSQU1fQ0xLVFJfQ0xLUF8xODBfREVHX0FEVikKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfV1JEVFIJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TRFRSMQkoU0RSQU1fU0RUUjFfTERPRl8yX0NMSwl8IFwKIAkJCQkgU0RSQU1fU0RUUjFfUlRXXzJfQ0xLCXwgXAogCQkJCSBTRFJBTV9TRFRSMV9SVFJPXzFfQ0xLKQotI2RlZmluZSBDRkdfU0RSQU0wX1NEVFIyCShTRFJBTV9TRFRSMl9SQ0RfM19DTEsJCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TRFRSMgkoU0RSQU1fU0RUUjJfUkNEXzNfQ0xLCQl8IFwKIAkJCQkgU0RSQU1fU0RUUjJfV1RSXzJfQ0xLCQl8IFwKIAkJCQkgU0RSQU1fU0RUUjJfWFNOUl8zMl9DTEsJfCBcCiAJCQkJIFNEUkFNX1NEVFIyX1dQQ180X0NMSwkJfCBcCiAJCQkJIFNEUkFNX1NEVFIyX1JQQ18yX0NMSwkJfCBcCiAJCQkJIFNEUkFNX1NEVFIyX1JQXzNfQ0xLCQl8IFwKIAkJCQkgU0RSQU1fU0RUUjJfUlJEXzJfQ0xLKQotI2RlZmluZSBDRkdfU0RSQU0wX1NEVFIzCShTRFJBTV9TRFRSM19SQVNfRU5DT0RFKDgpCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TRFRSMwkoU0RSQU1fU0RUUjNfUkFTX0VOQ09ERSg4KQl8IFwKIAkJCQkgU0RSQU1fU0RUUjNfUkNfRU5DT0RFKDExKQl8IFwKIAkJCQkgU0RSQU1fU0RUUjNfWENTCQl8IFwKIAkJCQkgU0RSQU1fU0RUUjNfUkZDX0VOQ09ERSgyNikpCi0jZGVmaW5lIENGR19TRFJBTTBfTU1PREUJKFNEUkFNX01NT0RFX1dSX0REUjJfM19DWUMgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01NT0RFCShTRFJBTV9NTU9ERV9XUl9ERFIyXzNfQ1lDIHwgXAogCQkJCSBTRFJBTV9NTU9ERV9EQ0xfRERSMl80XzBfQ0xLIHwgXAogCQkJCSBTRFJBTV9NTU9ERV9CTEVOXzQpCi0jZGVmaW5lIENGR19TRFJBTTBfTUVNT0RFCShTRFJBTV9NRU1PREVfRFFTX0RJU0FCTEUgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01FTU9ERQkoU0RSQU1fTUVNT0RFX0RRU19ESVNBQkxFIHwgXAogCQkJCSBTRFJBTV9NRU1PREVfUlRUXzc1T0hNKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNgkvKiAyNEMwMiByZXF1aXJlcyA1bXMgZGVsYXkgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUyCS8qIEkyQyBib290IEVFUFJPTSAoMjRDMDJCTikJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTYJLyogMjRDMDIgcmVxdWlyZXMgNW1zIGRlbGF5ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTIJLyogSTJDIGJvb3QgRUVQUk9NICgyNEMwMkJOKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogCiAvKiBTdGFuZGFyZCBEVFQgc2Vuc29yIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0RUVF9EUzE3NzUJMQogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJeyAwIH0KLSNkZWZpbmUgQ0ZHX0kyQ19EVFRfQUREUgkweDQ4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0RUVF9BRERSCTB4NDgKIAogLyogUlRDIGNvbmZpZ3VyYXRpb24gKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzgJMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFdGhlcm5ldApAQCAtNDMyLDIwICs0MzIsMjAgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9TTlRQCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX0NBQ0hFCQl8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCQl8IFwKLQkJCQkgQ0ZHX1BPU1RfRVRIRVIJCXwgXAotCQkJCSBDRkdfUE9TVF9JMkMJCXwgXAotCQkJCSBDRkdfUE9TVF9NRU1PUlkJfCBcCi0JCQkJIENGR19QT1NUX1VBUlQpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX0NBQ0hFCQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkJfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9FVEhFUgkJfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMJCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfTUVNT1JZCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfVUFSVCkKIAogLyogRGVmaW5lIGhlcmUgdGhlIGJhc2UtYWRkcmVzc2VzIG9mIHRoZSBVQVJUcyB0byB0ZXN0IGluIFBPU1QgKi8KLSNkZWZpbmUgQ0ZHX1BPU1RfVUFSVF9UQUJMRQl7VUFSVDBfQkFTRSwgVUFSVDFfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0UsIFVBUlQxX0JBU0V9CiAKICNkZWZpbmUgQ09ORklHX0xPR0JVRkZFUgotI2RlZmluZSBDRkdfUE9TVF9DQUNIRV9BRERSCTB4MDA4MDAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0NBQ0hFX0FERFIJMHgwMDgwMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOViAvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTQ1OCw1OSArNDU4LDU5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0llIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfUENJRV9NRU1CQVNFCTB4OTAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lFX01FTVNJWkUJMHgwODAwMDAwMCAgICAgIC8qIDEyOCBNZWcsIHNtYWxsZXN0IGluY3IgcGVyIHBvcnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UJMHg5MDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX01FTVNJWkUJMHgwODAwMDAwMCAgICAgIC8qIDEyOCBNZWcsIHNtYWxsZXN0IGluY3IgcGVyIHBvcnQgKi8KIAotI2RlZmluZQlDRkdfUENJRTBfQ0ZHQkFTRQkweGEwMDAwMDAwICAgICAgLyogcmVtb3RlIGFjY2VzcyAqLwotI2RlZmluZQlDRkdfUENJRTBfWENGR0JBU0UJMHhiMDAwMDAwMCAgICAgIC8qIGxvY2FsIGFjY2VzcyAqLwotI2RlZmluZQlDRkdfUENJRTBfQ0ZHTUFTSwkweGUwMDAwMDAxICAgICAgLyogNTEyIE1lZyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0UJMHhhMDAwMDAwMCAgICAgIC8qIHJlbW90ZSBhY2Nlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMF9YQ0ZHQkFTRQkweGIwMDAwMDAwICAgICAgLyogbG9jYWwgYWNjZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTBfQ0ZHTUFTSwkweGUwMDAwMDAxICAgICAgLyogNTEyIE1lZyAqLwogCi0jZGVmaW5lCUNGR19QQ0lFMV9DRkdCQVNFCTB4YzAwMDAwMDAgICAgICAvKiByZW1vdGUgYWNjZXNzICovCi0jZGVmaW5lCUNGR19QQ0lFMV9YQ0ZHQkFTRQkweGQwMDAwMDAwICAgICAgLyogbG9jYWwgYWNjZXNzICovCi0jZGVmaW5lCUNGR19QQ0lFMV9DRkdNQVNLCTB4ZTAwMDAwMDEgICAgICAvKiA1MTIgTWVnICovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRQkweGMwMDAwMDAwICAgICAgLyogcmVtb3RlIGFjY2VzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFCTB4ZDAwMDAwMDAgICAgICAvKiBsb2NhbCBhY2Nlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMV9DRkdNQVNLCTB4ZTAwMDAwMDEgICAgICAvKiA1MTIgTWVnICovCiAKLSNkZWZpbmUJQ0ZHX1BDSUUwX1VUTEJBU0UJMHhlZjUwMjAwMAotI2RlZmluZQlDRkdfUENJRTFfVVRMQkFTRQkweGVmNTAzMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTBfVVRMQkFTRQkweGVmNTAyMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTFfVVRMQkFTRQkweGVmNTAzMDAwCiAKIC8qIGJhc2UgYWRkcmVzcyBvZiBpbmJvdW5kIFBDSWUgd2luZG93ICovCi0jZGVmaW5lIENGR19QQ0lFX0lOQk9VTkRfQkFTRQkweDAwMDAwMDAwMDAwMDAwMDBVTEwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX0lOQk9VTkRfQkFTRQkweDAwMDAwMDAwMDAwMDAwMDBVTEwKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjaWYgZGVmaW5lZChDT05GSUdfTkFORF9VX0JPT1QpIHx8IGRlZmluZWQoQ09ORklHX05BTkRfU1BMKQogLyogYm9vdGluZyBmcm9tIE5BTkQsIHNvIE5BTkQgY2hpcHMgc2VsZWN0IGhhcyB0byBiZSBvbiBDUyAwICovCi0jZGVmaW5lIENGR19OQU5EX0NTCQkwCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeAkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQ1MJCTAJCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDU4MDY1MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUiAgICAgICAgICAgMHhGQzBEQTAwMCAgLyogQkFTPTB4RkMwLEJTPTY0TUIsQlU9Ui9XLEJXPTE2Yml0Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDU4MDY1MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAgICAgICAgIDB4RkMwREEwMDAgIC8qIEJBUz0weEZDMCxCUz02NE1CLEJVPVIvVyxCVz0xNmJpdCovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKE5BTkQtRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxZTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX05BTkRfQUREUiB8IDB4MWUwMDApCiAjZWxzZQotI2RlZmluZSBDRkdfTkFORF9DUwkJMQkJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NTCQkxCQkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeAkqLwogCiAvKiBNZW1vcnkgQmFuayAwIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDA1ODA2NTAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IgICAgICAgICAgIDB4RkMwREEwMDAgIC8qIEJBUz0weEZDMCxCUz02NE1CLEJVPVIvVyxCVz0xNmJpdCovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDA1ODA2NTAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSICAgICAgICAgICAweEZDMERBMDAwICAvKiBCQVM9MHhGQzAsQlM9NjRNQixCVT1SL1csQlc9MTZiaXQqLwogCiAvKiBNZW1vcnkgQmFuayAxIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkoQ0ZHX05BTkRfQUREUiB8IDB4MWUwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDAxODAwM2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkoQ09ORklHX1NZU19OQU5EX0FERFIgfCAweDFlMDAwKQogI2VuZGlmCiAKIC8qIE1lbW9yeSBCYW5rIDIgKEZQR0EpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUCAgICAgICAgICAgMHg5NDAwQzgwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX0ZQR0FfQkFTRSB8IDB4MTgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQICAgICAgICAgICAweDk0MDBDODAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkoQ09ORklHX1NZU19GUEdBX0JBU0UgfCAweDE4MDAwKQogCi0jZGVmaW5lIENGR19FQkNfQ0ZHCQkweDdGQzAwMDAwIC8qICBFQkMwX0NGRyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19DRkcJCTB4N0ZDMDAwMDAgLyogIEVCQzBfQ0ZHICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEdQSU8gU2V0dXAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFIHsgLyoJICBPdXQJCSAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIJQWx0ZXJuYXRlMyAqLyBcCiB7CQkJCQkJCQkJCQlcCiAvKiBHUElPIENvcmUgMCAqLwkJCQkJCQkJCVwKIHtHUElPMF9CQVNFLCBHUElPX0lOLCAgR1BJT19TRUwsICBHUElPX09VVF8wfSwgLyogR1BJTzAJRUJDX0RBVEFfUEFSKDApCQkJKi8JXApAQCAtNTUxLDM2ICs1NTEsMzYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNvbWUgS2lsYXVlYSBzdHVmZi4uLiwgbWFpbmx5IGZwZ2EgcmVnaXN0ZXJzCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfUkVHX0JBU0UJCUNGR19GUEdBX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZQR0FfRklGT19CQVNFCQkoaW4zMihDRkdfRlBHQV9CQVNFKSB8ICgxIDw8IDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1JFR19CQVNFCQlDT05GSUdfU1lTX0ZQR0FfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRklGT19CQVNFCQkoaW4zMihDT05GSUdfU1lTX0ZQR0FfQkFTRSkgfCAoMSA8PCAxMCkpCiAKIC8qIGludGVycnVwdCAqLwotI2RlZmluZSBDRkdfRlBHQV9TTElDMF9SX0RQUkFNX0lOVAkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX1NMSUMwX1dfRFBSQU1fSU5UCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU0xJQzFfUl9EUFJBTV9JTlQJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfRlBHQV9TTElDMV9XX0RQUkFNX0lOVAkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX1BIWTBfSU5UCQkweDA4MDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX1BIWTFfSU5UCQkweDA0MDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX1NMSUMwX0lOVAkJMHgwMjAwMDAwMAotI2RlZmluZSBDRkdfRlBHQV9TTElDMV9JTlQJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NMSUMwX1JfRFBSQU1fSU5UCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NMSUMwX1dfRFBSQU1fSU5UCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NMSUMxX1JfRFBSQU1fSU5UCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NMSUMxX1dfRFBSQU1fSU5UCTB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1BIWTBfSU5UCQkweDA4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QSFkxX0lOVAkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU0xJQzBfSU5UCQkweDAyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TTElDMV9JTlQJCTB4MDEwMDAwMDAKIAogLyogRFBSQU0gc2V0dGluZyAqLwogLyogMDA6IDMyQjsgMDE6IDY0QjsgMTA6IDEyOEI7IDExOiAyNTZCICAqLwotI2RlZmluZSBDRkdfRlBHQV9EUFJBTV9SX0lOVF9MSU5FCTB4MDA0MDAwMDAJLyogNjQgQiAqLwotI2RlZmluZSBDRkdfRlBHQV9EUFJBTV9XX0lOVF9MSU5FCTB4MDAxMDAwMDAJLyogNjQgQiAqLwotI2RlZmluZSBDRkdfRlBHQV9EUFJBTV9SV19UWVBFCQkweDAwMDgwMDAwCi0jZGVmaW5lIENGR19GUEdBX0RQUkFNX1JTVAkJMHgwMDA0MDAwMAotI2RlZmluZSBDRkdfRlBHQV9VQVJUMF9GTwkJMHgwMDAyMDAwMAotI2RlZmluZSBDRkdfRlBHQV9VQVJUMV9GTwkJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfRFBSQU1fUl9JTlRfTElORQkweDAwNDAwMDAwCS8qIDY0IEIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RQUkFNX1dfSU5UX0xJTkUJMHgwMDEwMDAwMAkvKiA2NCBCICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EUFJBTV9SV19UWVBFCQkweDAwMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EUFJBTV9SU1QJCTB4MDAwNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1VBUlQwX0ZPCQkweDAwMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9VQVJUMV9GTwkJMHgwMDAxMDAwMAogCiAvKiBsb29wYmFjayAqLwotI2RlZmluZSBDRkdfRlBHQV9DSElQU0lERV9MT09QQkFDSwkweDAwMDA0MDAwCi0jZGVmaW5lIENGR19GUEdBX0xJTkVTSURFX0xPT1BCQUNLCTB4MDAwMDgwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfU0xJQzBfRU5BQkxFCQkweDAwMDAyMDAwCi0jZGVmaW5lIENGR19GUEdBX1NMSUMxX0VOQUJMRQkJMHgwMDAwMTAwMAotI2RlZmluZSBDRkdfRlBHQV9TTElDMF9DUwkJMHgwMDAwMDgwMAotI2RlZmluZSBDRkdfRlBHQV9TTElDMV9DUwkJMHgwMDAwMDQwMAotI2RlZmluZSBDRkdfRlBHQV9VU0VSX0xFRDAJCTB4MDAwMDAyMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfVVNFUl9MRUQxCQkweDAwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DSElQU0lERV9MT09QQkFDSwkweDAwMDA0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9MSU5FU0lERV9MT09QQkFDSwkweDAwMDA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9TTElDMF9FTkFCTEUJCTB4MDAwMDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NMSUMxX0VOQUJMRQkJMHgwMDAwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU0xJQzBfQ1MJCTB4MDAwMDA4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NMSUMxX0NTCQkweDAwMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9VU0VSX0xFRDAJCTB4MDAwMDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1VTRVJfTEVEMQkJMHgwMDAwMDEwMAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2tvcmF0LmggYi9pbmNsdWRlL2NvbmZpZ3Mva29yYXQuaAppbmRleCAyMTRjYjQyLi5jYTNlOGE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mva29yYXQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mva29yYXQuaApAQCAtNTQsNTEgKzU0LDUxIEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZSBhY3R1YWwKICAqIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKS4KICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzODQgKiAxMDI0KSAvKiBSZXNlcnZlIDM4NCBraUIgZm9yIE1vbml0b3IgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga2lCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0ICogMTAyNCkgLyogUmVzZXJ2ZSAzODQga2lCIGZvciBNb25pdG9yICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KSAvKiBSZXNlcnZlIDI1NiBraUIgZm9yIG1hbGxvYygpICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRQkJMHgwMTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX0FERFIJCSgtQ0ZHX0ZMQVNIMF9TSVpFKQotI2RlZmluZSBDRkdfRkxBU0gxX1RPUAkJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxX01BWF9TSVpFCTB4MDgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9BRERSCQkoQ0ZHX0ZMQVNIMV9UT1AgLSBDRkdfRkxBU0gxX01BWF9TSVpFKQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX0ZMQVNIMV9BRERSCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19PQ01fQkFTRQkJMHhlMDAxMDAwMAkvKiBvY20JCQkqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUglDRkdfT0NNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGUwMDAwMDAwCS8qIEludGVybmFsIFBDSSByZWdzCSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQUREUgkJKC1DT05GSUdfU1lTX0ZMQVNIMF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9UT1AJCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfTUFYX1NJWkUJMHgwODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMV9BRERSCQkoQ09ORklHX1NZU19GTEFTSDFfVE9QIC0gQ09ORklHX1NZU19GTEFTSDFfTUFYX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19GTEFTSDFfQUREUgkvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fQkFTRQkJMHhlMDAxMDAwMAkvKiBvY20JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJQ09ORklHX1NZU19PQ01fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCQkweGUwMDAwMDAwCS8qIEludGVybmFsIFBDSSByZWdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KIAogLyogRG9uJ3QgY2hhbmdlIGVpdGhlciBvZiB0aGVzZSAqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UJMHhlZjYwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwogCi0jZGVmaW5lIENGR19VU0IyRDBfQkFTRQkJMHhlMDAwMDEwMAotI2RlZmluZSBDRkdfVVNCX0RFVklDRQkJMHhlMDAwMDAwMAotI2RlZmluZSBDRkdfVVNCX0hPU1QJCTB4ZTAwMDA0MDAKLSNkZWZpbmUgQ0ZHX0NQTERfQkFTRQkJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQjJEMF9CQVNFCQkweGUwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0RFVklDRQkJMHhlMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9IT1NUCQkweGUwMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRF9CQVNFCQkweGMwMDAwMDAwCiAKIC8qCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIKICAqLwogLyogNDQwRVB4IGhhcyAxNktCIG9mIGludGVybmFsIFNSQU0sIHNvIG5vIG5lZWQgZm9yIEQtQ2FjaGUJCSovCi0jdW5kZWYgQ0ZHX0lOSVRfUkFNX0RDQUNIRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0JBU0UJLyogT0NNCQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjdW5kZWYgQ09ORklHX1NZU19JTklUX1JBTV9EQ0FDSEUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0JBU0UJLyogT0NNCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJKDQgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKgogICogU2VyaWFsIFBvcnQKICAqLwotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMAkvKiBleHQuIDExLjA1OU1IeiBjbGsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwCS8qIGV4dC4gMTEuMDU5TUh6IGNsawkqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2RlZmluZSBDT05GSUdfU0VSSUFMX01VTFRJCTEKIC8qIGRlZmluZSB0aGlzIGlmIHlvdSB3YW50IGNvbnNvbGUgb24gVUFSVDEgKi8KICN1bmRlZiBDT05GSUdfVUFSVDFfQ09OU09MRQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkJCQkJCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyoKQEAgLTEwOSwyNiArMTA5LDI2IEBACiAvKgogICogRkxBU0ggcmVsYXRlZAogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJICAgICAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkgICAgICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0xFR0FDWQkJLyogQWxsb3cgaGFyZC1jb2RlZCBjb25maWcgZm9yIEZMQVNIMCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIMV9BRERSLCBDRkdfRkxBU0gwX0FERFIgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIMV9BRERSLCBDT05GSUdfU1lTX0ZMQVNIMF9BRERSIH0KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEwMjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTAyNAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbiAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JICAgICAgLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JICAgICAgLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoICAgICAgKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkgICAgICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0gxX1RPUCAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIMV9UT1AgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgICAqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IgKi8KQEAgLTEzOCwxNCArMTM4LDE0IEBACiAvKgogICogRERSIFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX01CWVRFU19TRFJBTSAgICAgICAgKDUxMikJLyogNTEyIE1pQglUT0RPOiByZW1vdmUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfU0RSQU0gICAgICAgICg1MTIpCS8qIDUxMiBNaUIJVE9ETzogcmVtb3ZlCSovCiAjZGVmaW5lIENPTkZJR19ERFJfREFUQV9FWUUJCS8qIHVzZSBERFIyIG9wdGltaXphdGlvbgkqLwogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTQkJLyogVXNlIFNQRCBFRVBST00gZm9yIHNldHVwCSovCiAjZGVmaW5lIENPTkZJR19aRVJPX1NEUkFNCQkvKiBaZXJvIFNEUkFNIGFmdGVyIHNldHVwCSovCiAjZGVmaW5lIENPTkZJR19ERFJfRUNDCQkJLyogVXNlIEVDQyB3aGVuIGF2YWlsYWJsZQkqLwogI2RlZmluZSBTUERfRUVQUk9NX0FERFJFU1MJezB4NTB9CiAjZGVmaW5lIENPTkZJR19QUk9HX1NEUkFNX1RMQgotI2RlZmluZSBDRkdfTUVNX1RPUF9ISURFCSg0IDw8IDEwKSAvKiBkb24ndCB1c2UgbGFzdCA0a2J5dGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX1RPUF9ISURFCSg0IDw8IDEwKSAvKiBkb24ndCB1c2UgbGFzdCA0a2J5dGVzCSovCiAJCQkJCS8qIDQ0MEVQeCBlcnJhdGEgQ0hJUCAxMQkqLwogCiAvKgpAQCAtMTUzLDI0ICsxNTMsMjQgQEAKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKIC8qIEkyQyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDFUNjAJMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogCiAvKiBJMkMgU1lTTU9OIChMTTczKQkJCQkJCQkqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzMJCTEJLyogTmF0aW9uYWwgU2VtaSdzIExNNzMJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwl7Mn0JLyogU2Vuc29yIGFkZHJlc3NlcwkJKi8KLSNkZWZpbmUgQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZSBDRkdfRFRUX01JTl9URU1QCS0zMAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NSU5fVEVNUAktMzAKIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkiZWNobzsiCQkJCQkJXAogCSJlY2hvIFR5cGUgXFxcInJ1biBmbGFzaF9uZnNcXFwiIHRvIG1vdW50IHJvb3QgZmlsZXN5c3RlbSBvdmVyIE5GUzsiIFwKQEAgLTE4MCwxMyArMTgwLDEzIEBACiAKIC8qIFNldHVwIHNvbWUgYm9hcmQgc3BlY2lmaWMgdmFsdWVzIGZvciB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKi8KICNkZWZpbmUgQ09ORklHX0hPU1ROQU1FCQlrb3JhdAotI2RlZmluZSBDRkdfQk9PVEZJTEUJCSJib290ZmlsZT0vdGZ0cGJvb3Qva29yYXQvdUltYWdlXDAiCi0jZGVmaW5lIENGR19ST09UUEFUSAkJInJvb3RwYXRoPS9vcHQvZWxkay9wcGNfNHh4RlBcMCIKKyNkZWZpbmUgQ09ORklHX1NZU19CT09URklMRQkJImJvb3RmaWxlPS90ZnRwYm9vdC9rb3JhdC91SW1hZ2VcMCIKKyNkZWZpbmUgQ09ORklHX1NZU19ST09UUEFUSAkJInJvb3RwYXRoPS9vcHQvZWxkay9wcGNfNHh4RlBcMCIKIAogLyogTm90ZToga2VybmVsX2FkZHIgYW5kIHJhbWRpc2tfYWRkciBhc3N1bWUgdGhhdCBGTEFTSDEgaXMgNjQgTWlCLiAqLwogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCQlcCi0JQ0ZHX0JPT1RGSUxFCQkJCQkJCVwKLQlDRkdfUk9PVFBBVEgJCQkJCQkJXAorCUNPTkZJR19TWVNfQk9PVEZJTEUJCQkJCQkJXAorCUNPTkZJR19TWVNfUk9PVFBBVEgJCQkJCQkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQkJCQlcCiAJIm5mc2FyZ3M9c2V0ZW52IGJvb3RhcmdzIHJvb3Q9L2Rldi9uZnMgcncgIgkJCVwKIAkJIm5mc3Jvb3Q9JHtzZXJ2ZXJpcH06JHtyb290cGF0aH1cMCIJCQlcCkBAIC0yMTMsNyArMjEzLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcwkqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX0lCTV9FTUFDNF9WNAkxCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwpAQCAtMjI0LDcgKzIyNCw3IEBACiAjZGVmaW5lIENPTkZJR19QSFlfR0lHRQkJMQkvKiBJbmNsdWRlIEdiRSBzcGVlZC9kdXBsZXggZGV0ZWN0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4CSovCiAJCQkJCS8qICAgYnVmZmVycyAmIGRlc2NyaXB0b3JzCSovCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEJCTEJLyogYWRkIHN1cHBvcnQgZm9yICJldGgxYWRkciIJKi8KQEAgLTI3Nyw0NyArMjc3LDQ3IEBACiAjZGVmaW5lIENPTkZJR19DTURfVVNCCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX0NBQ0hFCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0VDQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRVRIRVIJICAgfCBcCi0JCQkJIENGR19QT1NUX0ZQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfUlRDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9TUFIJICAgfCBcCi0JCQkJIENGR19QT1NUX1VBUlQpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX0NBQ0hFCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRUNDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9GUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1JUQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1NQUgkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1VBUlQpCiAKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKICNkZWZpbmUgQ09ORklHX0xPR0JVRkZFUgotI2RlZmluZSBDRkdfUE9TVF9DQUNIRV9BRERSCTB4QzgwMDAwMDAJLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRV9BRERSCTB4QzgwMDAwMDAJLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCS8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgkvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCiAKICNkZWZpbmUgQ09ORklHX1NVUFBPUlRfVkZBVAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAgICAgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgICAgICAgICAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIAkJCQkJLyogUHJpbnQgQnVmZmVyIFNpemUJCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCSAgICAgICAgQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxICAvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMSAgLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpCSovCiAKLSNkZWZpbmUgQ0ZHX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXCQkxCS8qIGVuYWJsZSBsb29wdyBjb21tYW5kCQkqLwpAQCAtMzI4LDcgKzMyOCw3IEBACiAvKgogICogS29yYXQtc3BlY2lmaWMgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19LT1JBVF9NQU5fUkVTRVRfTVMJMTAwMDAJLyogdGltZW91dCBmb3IgbWFudWZhY3R1cmVyIHJlc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfS09SQVRfTUFOX1JFU0VUX01TCTEwMDAwCS8qIHRpbWVvdXQgZm9yIG1hbnVmYWN0dXJlciByZXNldCAqLwogCiAvKgogICogUENJIHN0dWZmCkBAIC0zMzYsNTAgKzMzNiw1MCBAQAogLyogR2VuZXJhbCBQQ0kgKi8KICNkZWZpbmUgQ09ORklHX1BDSQkJCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCi0jZGVmaW5lIENGR19QQ0lfQ0FDSEVfTElORV9TSVpFCTAJLyogdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBQTlAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQ0FDSEVfTElORV9TSVpFCTAJLyogdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBQTlAJKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cAkqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFCTB4ODAwMDAwMDAJLyogUENJYWRkciBtYXBwZWQgdG8JKi8KLQkJCQkJCS8qICAgQ0ZHX1BDSV9NRU1CQVNFCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFCTB4ODAwMDAwMDAJLyogUENJYWRkciBtYXBwZWQgdG8JKi8KKwkJCQkJCS8qICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkqLwogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQKLSNkZWZpbmUgQ0ZHX1BDSV9NQVNURVJfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVAogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDCQkJCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0lEICAgICAgIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQwkJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyCQkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEgaGF2ZSB0byBiZSBpbiB0aGUKICAqIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsCiAgKiBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNpZiBDRkdfRkxBU0gwX1NJWkUgPT0gMHgwMTAwMDAwMAotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDA0MDE3MzAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfRkxBU0gwX0FERFIgfCAweDAwMDlBMDAwKQotI2VsaWYgQ0ZHX0ZMQVNIMF9TSVpFID09IDB4MDQwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwNDAxNzMwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIMF9BRERSIHwgMHgwMDBEQTAwMCkKKyNpZiBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFID09IDB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDQwMTczMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX0ZMQVNIMF9BRERSIHwgMHgwMDA5QTAwMCkKKyNlbGlmIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgPT0gMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwNDAxNzMwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfRkxBU0gwX0FERFIgfCAweDAwMERBMDAwKQogI2Vsc2UKLSNlcnJvciBVbmFibGUgdG8gY29uZmlndXJlIGNoaXAgc2VsZWN0IGZvciBjdXJyZW50IENGR19GTEFTSDBfU0laRQorI2Vycm9yIFVuYWJsZSB0byBjb25maWd1cmUgY2hpcCBzZWxlY3QgZm9yIGN1cnJlbnQgQ09ORklHX1NZU19GTEFTSDBfU0laRQogI2VuZGlmCiAKIC8qIE1lbW9yeSBCYW5rIDEgKE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNpZiBDRkdfRkxBU0gxX01BWF9TSVpFID09IDB4MDgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHgwNDAxNzMwMAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkoQ0ZHX0ZMQVNIMV9BRERSIHwgMHgwMDBGQTAwMCkKKyNpZiBDT05GSUdfU1lTX0ZMQVNIMV9NQVhfU0laRSA9PSAweDA4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDA0MDE3MzAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkoQ09ORklHX1NZU19GTEFTSDFfQUREUiB8IDB4MDAwRkEwMDApCiAjZWxzZQotI2Vycm9yIFVuYWJsZSB0byBjb25maWd1cmUgY2hpcCBzZWxlY3QgZm9yIGN1cnJlbnQgQ0ZHX0ZMQVNIMV9NQVhfU0laRQorI2Vycm9yIFVuYWJsZSB0byBjb25maWd1cmUgY2hpcCBzZWxlY3QgZm9yIGN1cnJlbnQgQ09ORklHX1NZU19GTEFTSDFfTUFYX1NJWkUKICNlbmRpZgogCiAvKiBNZW1vcnkgQmFuayAyIChDUExEKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwNDAxNzMwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX0NQTERfQkFTRSB8IDB4MDAwMzgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDA0MDE3MzAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSCQkoQ09ORklHX1NZU19DUExEX0JBU0UgfCAweDAwMDM4MDAwKQogCiAvKgogICogR1BJTyBTZXR1cApAQCAtNDQ2LDIyICs0NDYsMjIgQEAKICAqIEdQSU82MyAgeHh4eCAgIHggICAgeCAgIChyZXNlcnZlZCBmb3IgdHJhY2UgcG9ydCkKICAqLwogCi0jZGVmaW5lIENGR19HUElPX0FUTUVHQV9SRVNFVF8JMTIKLSNkZWZpbmUgQ0ZHX0dQSU9fQVRNRUdBX1NTXwkxMwotI2RlZmluZSBDRkdfR1BJT19QSFkwX0ZJQkVSX1NFTAkyNwotI2RlZmluZSBDRkdfR1BJT19QSFkxX0ZJQkVSX1NFTAkyOAotI2RlZmluZSBDRkdfR1BJT19TRlAwX1BSRVNFTlRfCTMwCi0jZGVmaW5lIENGR19HUElPX1NGUDFfUFJFU0VOVF8JMzEKLSNkZWZpbmUgQ0ZHX0dQSU9fU0ZQMF9UWF9FTl8JMzIKLSNkZWZpbmUgQ0ZHX0dQSU9fU0ZQMV9UWF9FTl8JMzMKLSNkZWZpbmUgQ0ZHX0dQSU9fUEhZMF9FTgk0NQotI2RlZmluZSBDRkdfR1BJT19QSFkxX0VOCTQ2Ci0jZGVmaW5lIENGR19HUElPX1JFU0VUX1BSRVNTRURfCTQ3CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19BVE1FR0FfUkVTRVRfCTEyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19BVE1FR0FfU1NfCTEzCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QSFkwX0ZJQkVSX1NFTAkyNworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUEhZMV9GSUJFUl9TRUwJMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1NGUDBfUFJFU0VOVF8JMzAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1NGUDFfUFJFU0VOVF8JMzEKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1NGUDBfVFhfRU5fCTMyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TRlAxX1RYX0VOXwkzMworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUEhZMF9FTgk0NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUEhZMV9FTgk0NgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUkVTRVRfUFJFU1NFRF8JNDcKIAogLyoKICAqIFBQQzQ0MCBHUElPIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAogewkJCQkJCQkJCQkJXAogLyogR1BJTyBDb3JlIDAgKi8JCQkJCQkJCQlcCiB7R1BJTzBfQkFTRSwgR1BJT19CSSAsIEdQSU9fQUxUMSwgR1BJT19PVVRfMH0sIC8qIEdQSU8wCUVCQ19BRERSKDcpCURNQV9SRVEoMikJKi8JXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2t2bWUwODAuaCBiL2luY2x1ZGUvY29uZmlncy9rdm1lMDgwLmgKaW5kZXggMDk4YjkyYi4uMGQ5NTI2MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2t2bWUwODAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mva3ZtZTA4MC5oCkBAIC01Niw3ICs1Niw3IEBACiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEKLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UKKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cKIApAQCAtOTksNzUgKzk5LDc1IEBACiAKICNkZWZpbmUgQ09ORklHX05FVENPTlNPTEUKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3QzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdDMDAwMDAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg3QzAwMDAwMAotI2RlZmluZSBDRkdfRVVNQl9BRERSCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4RkYwODAwMDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkweEZGMDgwMDEwCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTMJMHhGRjA4MDAyMAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT000CTB4RkYwODAwMzAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDdDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhGRjA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkweEZGMDgwMDEwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00zCTB4RkYwODAwMjAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTQJMHhGRjA4MDAzMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRkYwMDEwMAogCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJKDE2ICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkweDdGRkY4CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoMTYgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkweDdGRkY4CiAKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDA0MDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyIDw8IDEwKQogCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVF9DTEVBUgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RfQ0xFQVIKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAKIAotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfQkFOSwkwCi0jZGVmaW5lIENGR19KRkZTMl9OVU1fQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkxCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKLSNkZWZpbmUgQ0ZHX05WUkFNX0FDQ0VTU19ST1VUSU5FCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ0ZHX05WUkFNX0JBU0VfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0FDQ0VTU19ST1VUSU5FCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAogCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJMTQ3NDU2MDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMTQ3NDU2MDAKIAogI2RlZmluZSBDT05GSUdfUENJCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCkBAIC0xNzYsOTcgKzE3Niw5NyBAQAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwX1NST01fV1JJVEUKIAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4CisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4CiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDU3Ci0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDU3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0RMTF9FWFRFTkQJCTB4MDAKLSNkZWZpbmUgQ0ZHX1BDSV9IT0xEX0RFTAkweDIwCisjZGVmaW5lIENPTkZJR19TWVNfRExMX0VYVEVORAkJMHgwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9IT0xEX0RFTAkweDIwCiAKLSNkZWZpbmUgQ0ZHX1JPTU5BTAkJMTUKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkJMzEKKyNkZWZpbmUgQ09ORklHX1NZU19ST01OQUwJCTE1CisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCQkzMQogCi0jZGVmaW5lIENGR19SRUZJTlQJCTQzMAorI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkJNDMwCiAKLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRTIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19EQlVTX1NJWkUyCQkxCiAKLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJCTEyMQotI2RlZmluZSBDRkdfUkVGUkVDCQk4Ci0jZGVmaW5lIENGR19SRExBVAkJNAotI2RlZmluZSBDRkdfUFJFVE9BQ1QJCTMKLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCQk1Ci0jZGVmaW5lIENGR19BQ1RPUlcJCTMKLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTMKLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCQkwCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkJMTIxCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCQk4CisjZGVmaW5lIENPTkZJR19TWVNfUkRMQVQJCTQKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkJMworI2RlZmluZSBDT05GSUdfU1lTX0FDVFRPUFJFCQk1CisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkzCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCQkwCiAKLSNkZWZpbmUgQ0ZHX1JFR0lTVEVSRF9UWVBFX0JVRkZFUgkxCi0jZGVmaW5lIENGR19FWFRST00JCQkxCi0jZGVmaW5lIENGR19SRUdESU1NCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1JFR0lTVEVSRF9UWVBFX0JVRkZFUgkxCisjZGVmaW5lIENPTkZJR19TWVNfRVhUUk9NCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JCQkwCiAKLSNkZWZpbmUgQ0ZHX0JBTkswX1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMF9FTkQJCSgweDQwMDAwMDAgLSAxKQotI2RlZmluZSBDRkdfQkFOSzBfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksxX1NUQVJUCQkweDA0MDAwMDAwCi0jZGVmaW5lIENGR19CQU5LMV9FTkQJCSgweDgwMDAwMDAgLSAxKQotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFCTEKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCQkweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJCTB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkJMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECQkweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFCTAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRQkwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUJMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkJKDB4NDAwMDAwMCAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkJKDB4ODAwMDAwMCAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkJMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkJMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJCTB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJCTB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRQkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFCTAKIAotI2RlZmluZSBDRkdfQkFOS19FTkFCTEUJCTB4MDMKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LX0VOQUJMRQkJMHgwMwogCi0jZGVmaW5lIENGR19PRENSCQkweDc1Ci0jZGVmaW5lIENGR19QR01BWAkJMHgzMgorI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJCTB4NzUKKyNkZWZpbmUgQ09ORklHX1NZU19QR01BWAkJMHgzMgogCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCShDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDJMCSgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVCSgweDgwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTAlDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUJQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMCUNGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVQlDRkdfSUJBVDFVCi0jZGVmaW5lIENGR19EQkFUMkwJQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVCUNGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTAlDRkdfSUJBVDNMCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQogI2RlZmluZSBCT09URkxBR19XQVJNCTB4MDIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9sYXJ0LmggYi9pbmNsdWRlL2NvbmZpZ3MvbGFydC5oCmluZGV4IGQ3YjhjZmMuLjM4YjhlNzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9sYXJ0LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2xhcnQuaApAQCAtMzksOCArMzksOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05MiwyNSArOTIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiTEFSVCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiTEFSVCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YzA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGMwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweGM4MDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweGM4MDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwotI2RlZmluZSBDRkdfQ1BVU1BFRUQJCTB4MGIJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDIyMCBNSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgwYgkJLyogc2V0IGNvcmUgY2xvY2sgdG8gMjIwIE1IeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNDAsMTcgKzE0MCwxNyBAQAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDA0MDAwMDAgLyogNCBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgzMSs4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMzErOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyAweDFDMDAwKQkvKiBBZGRyIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2xpbmtzdGF0aW9uLmggYi9pbmNsdWRlL2NvbmZpZ3MvbGlua3N0YXRpb24uaAppbmRleCBiZTJmNzFjLi4yZmViM2FlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbGlua3N0YXRpb24uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbGlua3N0YXRpb24uaApAQCAtMTA2LDIwICsxMDYsMjAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogTWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDgwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzczogOCBNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBNYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwODAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzOiA4IE1CCSovCiAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gYm9vdGNtZDEiCiAjZGVmaW5lIENPTkZJR19CT09UQVJHUwkJInJvb3Q9L2Rldi9zZGExIGNvbnNvbGU9dHR5UzEsNTc2MDAgbmV0Y29uc29sZT1AMTkyLjE2OC4xLjcvZXRoMCxAMTkyLjE2OC4xLjEvMDA6NTA6QkY6QTQ6NTk6NzEgcnRjLXJzNWMzNzIucHJvYmU9MCwweDMyIGRlYnVnIgogI2RlZmluZSBDT05GSUdfTkZTQk9PVENPTU1BTkQJImJvb3RwO3J1biBuZnNhcmdzO2Jvb3RtIgogCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WCiAKICNkZWZpbmUgWE1LX1NUUih4KQkJI3gKICNkZWZpbmUgTUtfU1RSKHgpCQlYTUtfU1RSKHgpCkBAIC0yMTMsMzAgKzIxMywzMCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZDMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA0MDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKIAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweEZGRjAwMTAwCi0jZGVmaW5lIENGR19FVU1CX0FERFIJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fQUREUgkweEIwMDAwMDAwCi0jZGVmaW5lIENGR19NSVNDX1JFR0lPTl9BRERSCTB4RkUwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4RkZGMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FVU1CX0FERFIJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX0FERFIJMHhCMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0FERFIJMHhGRTAwMDAwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgwMDA0MDAwMAkvKiAyNTYga0IJCQkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSBzb21lIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDAwMDQwMDAwCS8qIDI1NiBrQgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSBzb21lIGtCIGZvciBtYWxsb2MoKQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwODAwMDAwCS8qIDFNIC4uLiA4TSBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwODAwMDAwCS8qIDFNIC4uLiA4TSBpbiBEUkFNCQkqLwogCiAvKiBNYXhpbXVtIGFtb3VudCBvZiBSQU0gKi8KICNpZiBkZWZpbmVkKENPTkZJR19ITEFOKSB8fCBkZWZpbmVkKENPTkZJR19MQU4pCi0jZGVmaW5lIENGR19NQVhfUkFNX1NJWkUJMHgwNDAwMDAwMAkvKiA2NE1CIG9mIFNEUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9SQU1fU0laRQkweDA0MDAwMDAwCS8qIDY0TUIgb2YgU0RSQU0gICovCiAjZWxpZiBkZWZpbmVkKENPTkZJR19IR0xBTikgfHwgZGVmaW5lZChDT05GSUdfSFRHTCkKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRQkweDA4MDAwMDAwCS8qIDEyOE1CIG9mIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4TUIgb2YgU0RSQU0gKi8KICNlbHNlCiAjZXJyb3IgVW5rbm93biBMaW5rU3RhdGlvbiB0eXBlCiAjZW5kaWYKQEAgLTI0OSwzOCArMjQ5LDM4IEBACiAgKgogICogQWx3YXlzIGRvICJtYWtlIGNsZWFuIiBhZnRlciBjaGFuZ2luZyB0aGUgYnVpbGQgdHlwZQogICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19SQU1CT09UCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCiAgKi8KICNpZiAxIC8qIFJBTSBpcyBhdmFpbGFibGUgd2hlbiB0aGUgZmlyc3QgQyBmdW5jdGlvbiBpcyBjYWxsZWQgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19TRFJBTV9CQVNFICsgQ0ZHX01BWF9SQU1fU0laRSAtIDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX01BWF9SQU1fU0laRSAtIDB4MTAwMCkKICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAKICNlbmRpZgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MTAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJNTc2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19FVU1CX0FERFIgKyAweDQ2MDApCS8qIENvbnNvbGUgcG9ydAkqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfRVVNQl9BRERSICsgMHg0NTAwKQkvKiBBVlIgcG9ydAkqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ2MDApCS8qIENvbnNvbGUgcG9ydAkqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19FVU1CX0FERFIgKyAweDQ1MDApCS8qIEFWUiBwb3J0CSovCiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMzAwLDU0ICszMDAsNTQgQEAKIC8qIEZJWE1FOiAzMi43NjggTUh6IGlzIHRoZSBjcnlzdGFsIGZyZXF1ZW5jeSBidXQgKi8KIC8qIHRoZSByZWFsIGZyZXF1ZW5jeSBpcyBsb3dlciBieSBhYm91dCAwLjc1JSAgICAgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMjc2ODAwMAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IxLiAgKi8KLSNkZWZpbmUgQ0ZHX1JPTU5BTCAgICAgIDAKLSNkZWZpbmUgQ0ZHX1JPTUZBTCAgICAgIDExCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTCAgICAgIDExCiAKLSNkZWZpbmUgQ0ZHX0JBTkswX1JPVwkyICAgICAgIC8qIE9ubHkgYmFuayAwIHVzZWQ6IDEzIHggbiB4IDQgKi8KLSNkZWZpbmUgQ0ZHX0JBTksxX1JPVwkwCi0jZGVmaW5lIENGR19CQU5LMl9ST1cJMAotI2RlZmluZSBDRkdfQkFOSzNfUk9XCTAKLSNkZWZpbmUgQ0ZHX0JBTks0X1JPVwkwCi0jZGVmaW5lIENGR19CQU5LNV9ST1cJMAotI2RlZmluZSBDRkdfQkFOSzZfUk9XCTAKLSNkZWZpbmUgQ0ZHX0JBTks3X1JPVwkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfUk9XCTIgICAgICAgLyogT25seSBiYW5rIDAgdXNlZDogMTMgeCBuIHggNCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1JPVwkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfUk9XCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19ST1cJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1JPVwkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfUk9XCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9ST1cJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1JPVwkwCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IyLiAgKi8KLSNkZWZpbmUgQ0ZHX1RTV0FJVCAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU1dBSVQgICAgICAwCiAjaWYgZGVmaW5lZChDT05GSUdfTEFOKSB8fCBkZWZpbmVkKENPTkZJR19ITEFOKQotI2RlZmluZSBDRkdfUkVGSU5UICAgICAgMHgxNWUwCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UICAgICAgMHgxNWUwCiAjZWxpZiBkZWZpbmVkKENPTkZJR19IR0xBTikgfHwgZGVmaW5lZChDT05GSUdfSFRHTCkKLSNkZWZpbmUgQ0ZHX1JFRklOVCAgICAgIDB4MTU4MAorI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVCAgICAgIDB4MTU4MAogI2VuZGlmCiAKIC8qIEJ1cnN0IFRvIFByZWNoYXJnZS4gQml0cyBvZiB0aGlzIHZhbHVlIGdvIHRvIE1DQ1IzIGFuZCBNQ0NSNC4gKi8KLSNkZWZpbmUgQ0ZHX0JTVE9QUkUJMHg5MWMKKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCTB4OTFjCiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1IzLiAgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQyAgICAgIDcKKyNkZWZpbmUgQ09ORklHX1NZU19SRUZSRUMgICAgICA3CiAKIC8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LiAgKi8KLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCQkyCi0jZGVmaW5lIENGR19BQ1RUT1BSRQkJMgkvKiBPcmlnaW5hbCB2YWx1ZSB3YXMgMgkqLwotI2RlZmluZSBDRkdfQUNUT1JXCQkyCisjZGVmaW5lIENPTkZJR19TWVNfUFJFVE9BQ1QJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkJMgkvKiBPcmlnaW5hbCB2YWx1ZSB3YXMgMgkqLworI2RlZmluZSBDT05GSUdfU1lTX0FDVE9SVwkJMgogI2lmIGRlZmluZWQoQ09ORklHX0xBTikgfHwgZGVmaW5lZChDT05GSUdfSExBTikKLSNkZWZpbmUgQ0ZHX1NETU9ERV9DQVNfTEFUCTIJLyogRm9yIDEwME1IeiBidXMJKi8KLS8qI2RlZmluZSBDRkdfU0RNT0RFX0JVUlNUTEVOCTMqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9DQVNfTEFUCTIJLyogRm9yIDEwME1IeiBidXMJKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTgkzKi8KICNlbGlmIGRlZmluZWQoQ09ORklHX0hHTEFOKSB8fCBkZWZpbmVkKENPTkZJR19IVEdMKQotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQJMwkvKiBGb3IgMTMzTUh6IGJ1cwkqLwotLyojZGVmaW5lIENGR19TRE1PREVfQlVSU1RMRU4JMiovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQJMwkvKiBGb3IgMTMzTUh6IGJ1cwkqLworLyojZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOCTIqLwogI2VuZGlmCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQotI2RlZmluZSBDRkdfRVhUUk9NCQkxCS8qIE9yaWdpbmFsIHNldHRpbmcgYnV0IHRoZXJlIGlzIG5vIEVYVFJPTSAqLwotI2RlZmluZSBDRkdfUkVHRElNTQkJMAotI2RlZmluZSBDRkdfREJVU19TSVpFMgkJMQotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX0VYVFJPTQkJMQkvKiBPcmlnaW5hbCBzZXR0aW5nIGJ1dCB0aGVyZSBpcyBubyBFWFRST00gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRUdESU1NCQkwCisjZGVmaW5lIENPTkZJR19TWVNfREJVU19TSVpFMgkJMQorI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCQkwCiAKLSNkZWZpbmUgQ0ZHX1BHTUFYCQkweDMyCS8qIEFsbCBib2FyZHMgdXNlIHRoaXMgc2V0dGluZy4gT3JpZ2luYWwgMHg5MiAqLwotI2RlZmluZSBDRkdfU0RSQU1fRFNDRAkJMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX1BHTUFYCQkweDMyCS8qIEFsbCBib2FyZHMgdXNlIHRoaXMgc2V0dGluZy4gT3JpZ2luYWwgMHg5MiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RTQ0QJCTB4MzAKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3MuCiAgKiBPbmx5IGJpdHMgMjAtMjkgYXJlIGFjdHVhbGx5IHVzZWQgZnJvbSB0aGVzZSB2YWxlcyB0byBzZXQgdGhlCkBAIC0zNTYsMzIgKzM1NiwzMiBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDAgYm9vay4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECSAgICAoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUgICAgMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksyX0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LMl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzNfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkszX0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNV9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzZfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks2X0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQgICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORCAgICAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECSAgICAoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgLSAxKQorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VOQUJMRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQgICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQgICAgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X0VOQUJMRSAgICAwCiAKLSNkZWZpbmUgQ0ZHX09EQ1IJICAgIDB4MTUKKyNkZWZpbmUgQ09ORklHX1NZU19PRENSCSAgICAweDE1CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBCQVQgbWFwcGluZ3MKQEAgLTM5MywzMiArMzkzLDMyIEBACiAgKi8KIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUJKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF8xMjhNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzEyOE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfREJBVDBMCUNGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVQlDRkdfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCUNPTkZJR19TWVNfSUJBVDBMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCUNPTkZJR19TWVNfSUJBVDBVCiAKIC8qIEVVTUI6IDFNQiBvZiBhZGRyZXNzIHNwYWNlICovCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19FVU1CX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMVUJKENGR19FVU1CX0FERFIgfCBCQVRVX0JMXzFNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX0VVTUJfQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfRVVNQl9BRERSIHwgQkFUVV9CTF8xTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMUwJKENGR19JQkFUMUwgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDFVCUNGR19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJKENPTkZJR19TWVNfSUJBVDFMIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUJQ09ORklHX1NZU19JQkFUMVUKIAogLyogUENJIE1lbTogMjU2TUIgb2YgYWRkcmVzcyBzcGFjZSAqLwotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfUENJX01FTV9BRERSIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfUENJX01FTV9BRERSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1BDSV9NRU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJKENPTkZJR19TWVNfUENJX01FTV9BRERSIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQyTAkoQ0ZHX0lCQVQyTCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUJQ0ZHX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAkoQ09ORklHX1NZU19JQkFUMkwgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQogCiAvKiBQQ0kgYW5kIGxvY2FsIFJPTS9GbGFzaDogbGFzdCAzMk1CIG9mIGFkZHJlc3Mgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoQ0ZHX01JU0NfUkVHSU9OX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJKENGR19NSVNDX1JFR0lPTl9BRERSIHwgQkFUVV9CTF8zMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UJKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQUREUiB8IEJBVFVfQkxfMzJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQzTAkoQ0ZHX0lCQVQzTCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UJQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAkoQ09ORklHX1NZU19JQkFUM0wgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQpAQCAtNDI4LDI2ICs0MjgsMjYgQEAKICAqIEZJWE1FOiBUaGlzIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRydWUgZm9yIHRoZSBuZXdlciBrZXJuZWxzCiAgKiB3aGljaCBtYXAgbW9yZSB0aGF0IDggTUIKICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwogCi0jdW5kZWYgIENGR19GTEFTSF9QUk9URUNUSU9OCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTcyCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBwZXIgZmxhc2gJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogTWF4IG51bWJlciBvZiBmbGFzaCBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MgkvKiBNYXggbnVtYmVyIG9mIHNlY3RvcnMgcGVyIGZsYXNoCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogLyoKQEAgLTQ2Myw5ICs0NjMsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAjaWZkZWYgQ09ORklHX0NNRF9LR0RCCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDc3LDIwICs0NzcsMjAgQEAKICNkZWZpbmUgQ09ORklHX0xCQTQ4CQkJCS8qIDQ4IGJpdCBMQkEgc3VwcG9ydGVkCQkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfTEFOKSB8fCBkZWZpbmVkKENPTkZJR19ITEFOKSB8fCBkZWZpbmVkKENPTkZJR19IR0xBTikKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJCS8qIFNjYW4gb25seSAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJCS8qIE9ubHkgMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJCS8qIFNjYW4gb25seSAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCQkvKiBPbmx5IDEgZHJpdmUgcGVyIElERSBidXMJKi8KICNlbGlmIGRlZmluZWQoQ09ORklHX0hHVEwpCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkyCQkvKiBNYXguIDIgSURFIGJ1c3NlcwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMgkJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTIJCS8qIE1heC4gMiBJREUgYnVzc2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgkJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLwogI2Vsc2UKICNlcnJvciBDb25maWcgSURFOiBVbmtub3duIExpbmtTdGF0aW9uIHR5cGUKICNlbmRpZgogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCTAKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTAJCS8qIE9mZnNldCBmb3IgZGF0YSBJL08JCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCQkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTAJCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCQkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTAJCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVycwkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTAJCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQYXJ0aXRpb25zIGFuZCBmaWxlIHN5c3RlbQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2xvZ29kbC5oIGIvaW5jbHVkZS9jb25maWdzL2xvZ29kbC5oCmluZGV4IGRjYmFlOTcuLmJiNmY5NDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9sb2dvZGwuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbG9nb2RsLmgKQEAgLTk2LDM1ICs5NiwzNSBAQAogICogdXNlZCBmb3IgdGhlIFJBTSBjb3B5IG9mIHRoZSB1Ym9vdCBjb2RlCiAgKgogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NioxMDI0KQogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJ1Ym9vdD4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJInVib290PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwODAwMDAwMCAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAgICAgMHgwODAwZmZmZgkvKiA2NCBLaUIgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA4MDAwMDAwICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5EICAgICAgICAgMHgwODAwZmZmZgkvKiA2NCBLaUIgICAgICAgICAgICAgICAgICAgICAgICovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIgICAgICAgICAgIDB4MDgwMDAwMDAgICAgICAvKiBsb2FkIGtlcm5lbCB0byB0aGlzIGFkZHJlc3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgICAgICAgICAgMHgwODAwMDAwMCAgICAgIC8qIGxvYWQga2VybmVsIHRvIHRoaXMgYWRkcmVzcyAgICovCiAKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgICAgICAgMzY4NjQwMCAgICAgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWiAgICAgICAgICAgICAgICAgIDM2ODY0MDAgICAgICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCiAJCQkJCQkvKiBSUzogdGhlIG9zY2lsbGF0b3IgaXMgYWN0dWFsbHkgMzY4MDEzMD8/ICovCiAKLSNkZWZpbmUgQ0ZHX0NQVVNQRUVEICAgICAgICAgICAgMHgxNDEgICAgICAgICAgIC8qIHNldCBjb3JlIGNsb2NrIHRvIDIwMC8yMDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVEICAgICAgICAgICAgMHgxNDEgICAgICAgICAgIC8qIHNldCBjb3JlIGNsb2NrIHRvIDIwMC8yMDAvMTAwIE1IeiAqLwogCQkJCQkJLyogMDEwMTAwMDAwMSAqLwogCQkJCQkJLyogICAgICBeXl5eXiBNZW1vcnkgU3BlZWQgOTkuNTMgTUh6ICAgICAgICAgKi8KIAkJCQkJCS8qICAgIF5eICAgICAgUnVuIE1vZGUgU3BlZWQgPSAyeCBNZW0gU3BlZWQgICovCiAJCQkJCQkvKiBeXiAgICAgICAgIFR1cmJvIE1vZGUgU3AuID0gMXggUnVuIE0uIFNwLiAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAkJLyogMTI4IEtpQiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCQkvKiAxMjggS2lCICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBTTVNDOTFDMTExIE5ldHdvcmsgQ2FyZApAQCAtMTYwLDEwICsxNjAsMTAgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8yCQkweDAxMDAwMDAwCS8qIEZsYXNoIEJhbmsgIzIgICAgICAgICAgICAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCSgzMioxMDI0KjEwMjQpCS8qIDMyIE1CICAgICAgICAgICAgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCVBIWVNfU0RSQU1fMQkvKiBSQU0gc3RhcnRzIGhlcmUgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJUEhZU19TRFJBTV8xX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCVBIWVNfU0RSQU1fMQkvKiBSQU0gc3RhcnRzIGhlcmUgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCVBIWVNfU0RSQU1fMV9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgICAgUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICBQSFlTX0ZMQVNIXzEKIAogCiAvKgpAQCAtMjEzLDUzICsyMTMsNTMgQEAKICNkZWZpbmUgX0JJVDMxICAgICAgMHg4MDAwMDAwMAogCiAKLSNkZWZpbmUgQ0ZHX0xFRF9BX0JJVCAgICAgICAgICAgKF9CSVQxOCkKLSNkZWZpbmUgQ0ZHX0xFRF9BX1NSICAgICAgICAgICAgR1BTUjAKLSNkZWZpbmUgQ0ZHX0xFRF9BX0NSICAgICAgICAgICAgR1BDUjAKKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQV9CSVQgICAgICAgICAgIChfQklUMTgpCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0FfU1IgICAgICAgICAgICBHUFNSMAorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9BX0NSICAgICAgICAgICAgR1BDUjAKIAotI2RlZmluZSBDRkdfTEVEX0JfQklUICAgICAgICAgICAoX0JJVDE2KQotI2RlZmluZSBDRkdfTEVEX0JfU1IgICAgICAgICAgICBHUFNSMQotI2RlZmluZSBDRkdfTEVEX0JfQ1IgICAgICAgICAgICBHUENSMQorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9CX0JJVCAgICAgICAgICAgKF9CSVQxNikKKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQl9TUiAgICAgICAgICAgIEdQU1IxCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0JfQ1IgICAgICAgICAgICBHUENSMQogCiAKIC8qIExFRCBBOiBvZmYsIExFRCBCOiBvZmYgKi8KLSNkZWZpbmUgQ0ZHX0dQU1IwX1ZBTCAgICAgICAoX0JJVDErX0JJVDYrX0JJVDgrX0JJVDkrX0JJVDExK19CSVQxNStfQklUMTYrX0JJVDE4KQotI2RlZmluZSBDRkdfR1BTUjFfVkFMICAgICAgIChfQklUMCtfQklUMStfQklUMTYrX0JJVDI0K19CSVQyNSAgK19CSVQ3K19CSVQ4K19CSVQ5K19CSVQxMStfQklUMTMpCi0jZGVmaW5lIENGR19HUFNSMl9WQUwgICAgICAgKF9CSVQxNCtfQklUMTUrX0JJVDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IwX1ZBTCAgICAgICAoX0JJVDErX0JJVDYrX0JJVDgrX0JJVDkrX0JJVDExK19CSVQxNStfQklUMTYrX0JJVDE4KQorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTCAgICAgICAoX0JJVDArX0JJVDErX0JJVDE2K19CSVQyNCtfQklUMjUgICtfQklUNytfQklUOCtfQklUOStfQklUMTErX0JJVDEzKQorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTCAgICAgICAoX0JJVDE0K19CSVQxNStfQklUMTYpCiAKLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTCAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMV9WQUwgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjJfVkFMICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwgICAgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTCAgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMICAgICAgIDB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfR1BEUjBfVkFMICAgICAgIChfQklUMStfQklUNitfQklUOCtfQklUOStfQklUMTErX0JJVDE1K19CSVQxNitfQklUMTcrX0JJVDE4KQotI2RlZmluZSBDRkdfR1BEUjFfVkFMICAgICAgIChfQklUMCtfQklUMStfQklUMTYrX0JJVDI0K19CSVQyNSAgK19CSVQ3K19CSVQ4K19CSVQ5K19CSVQxMStfQklUMTMpCi0jZGVmaW5lIENGR19HUERSMl9WQUwgICAgICAgKF9CSVQxNCtfQklUMTUrX0JJVDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTCAgICAgICAoX0JJVDErX0JJVDYrX0JJVDgrX0JJVDkrX0JJVDExK19CSVQxNStfQklUMTYrX0JJVDE3K19CSVQxOCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwgICAgICAgKF9CSVQwK19CSVQxK19CSVQxNitfQklUMjQrX0JJVDI1ICArX0JJVDcrX0JJVDgrX0JJVDkrX0JJVDExK19CSVQxMykKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwgICAgICAgKF9CSVQxNCtfQklUMTUrX0JJVDE2KQogCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTCAgICAgKF9CSVQyMitfQklUMjQrX0JJVDMxKQotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwgICAgIChfQklUMTUrX0JJVDE3K19CSVQxOStcCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwgICAgIChfQklUMjIrX0JJVDI0K19CSVQzMSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTCAgICAgKF9CSVQxNStfQklUMTcrX0JJVDE5K1wKIAkJCSAgICAgX0JJVDIwK19CSVQyMitfQklUMjQrX0JJVDI2K19CSVQyOStfQklUMzEpCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTCAgICAgKF9CSVQzK19CSVQ0K19CSVQ2K19CSVQ4K19CSVQxMCtfQklUMTIrX0JJVDE1K19CSVQxNytfQklUMTkrXAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMICAgICAoX0JJVDMrX0JJVDQrX0JJVDYrX0JJVDgrX0JJVDEwK19CSVQxMitfQklUMTUrX0JJVDE3K19CSVQxOStcCiAJCQkgICAgIF9CSVQyMCtfQklUMjMrX0JJVDI0K19CSVQyNytfQklUMjgrX0JJVDMxKQotI2RlZmluZSBDRkdfR0FGUjFfVV9WQUwgICAgIChfQklUMjErX0JJVDIzK19CSVQyNStfQklUMjcrX0JJVDI5K19CSVQzMSkKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMICAgICAoX0JJVDErX0JJVDMrX0JJVDUrX0JJVDcrX0JJVDkrX0JJVDExK19CSVQxMytfQklUMTUrX0JJVDE3K1wKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9VX1ZBTCAgICAgKF9CSVQyMStfQklUMjMrX0JJVDI1K19CSVQyNytfQklUMjkrX0JJVDMxKQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMICAgICAoX0JJVDErX0JJVDMrX0JJVDUrX0JJVDcrX0JJVDkrX0JJVDExK19CSVQxMytfQklUMTUrX0JJVDE3K1wKIAkJCSAgICAgX0JJVDE5K19CSVQyMStfQklUMjMrX0JJVDI1K19CSVQyNytfQklUMjkrX0JJVDMxKQotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwgICAgIChfQklUMSkKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTCAgICAgKF9CSVQxKQogCi0jZGVmaW5lIENGR19QU1NSX1ZBTCAgICAgICAgKDB4MjApCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwgICAgICAgICgweDIwKQogCiAvKgogICogTWVtb3J5IHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX01TQzBfVkFMCTB4MTIzYzI5ODAKLSNkZWZpbmUgQ0ZHX01TQzFfVkFMCTB4MTIzYzI2NjEKLSNkZWZpbmUgQ0ZHX01TQzJfVkFMCTB4N2ZmODdmZjgKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTAkweDEyM2MyOTgwCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMV9WQUwJMHgxMjNjMjY2MQorI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCTB4N2ZmODdmZjgKIAogCiAvKiBubyBzZHJhbS9wY21jaWEgaGVyZSAqLwotI2RlZmluZSBDRkdfTURDTkZHX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTURSRUZSX1ZBTF8xMDAJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTURNUlNfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMXzEwMAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTURNUlNfVkFMCQkweDAwMDAwMDAwCiAKIC8qIG9ubHkgU1JBTSAqLwogI2RlZmluZSBTWENORkdfU0VUVElOR1MJMHgwMDAwMDAwMApAQCAtMjY4LDI0ICsyNjgsMjQgQEAKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcwogICovCiAKLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTCAgICAgIDB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDFfVkFMICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNJTzBfVkFMICAgICAgIDB4MDAwMDQ3MTUKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTCAgICAgICAweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMV9WQUwgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTCAgICAgIDB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMICAgICAgMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8wX1ZBTCAgICAgICAweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMICAgICAgIDB4MDAwMDQ3MTUKIAogCiAvKgogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAgIDIgICAgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVCAgICAgIDEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTICAgICAyICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUICAgICAgMTI4ICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICAgICgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgICAgKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgICAgKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAgICgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKIC8qIEZJWE1FICovCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2xwYzIyOTJzb2RpbW0uaCBiL2luY2x1ZGUvY29uZmlncy9scGMyMjkyc29kaW1tLmgKaW5kZXggM2QxNzNkNy4uNTYzZDM1YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2xwYzIyOTJzb2RpbW0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbHBjMjI5MnNvZGltbS5oCkBAIC00OSw4ICs0OSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTk2LDI2ICs5NiwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJMUEMyMjkyU09ESU1NICMgIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJMUEMyMjkyU09ESU1NICMgIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg0MDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg0MDAwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4NDAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDQwMDAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDAwMDQwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCWZvcgkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDA0MDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwlmb3IJKi8KIAkJCQkJCS8qIGFybWFkaWxsbzoga2VybmVsIGltZyBpcyBoZXJlKi8KIAotI2RlZmluZSBDRkdfU1lTX0NMS19GUkVRCTU4OTgyNDAwCS8qIEh6ICovCi0jZGVmaW5lCUNGR19IWgkJCTIwNDgJCS8qIGRlY3JlbWVudGVyIGZyZXEgaW4gSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TWVNfQ0xLX0ZSRVEJNTg5ODI0MDAJLyogSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTIwNDgJCS8qIGRlY3JlbWVudGVyIGZyZXEgaW4gSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTM4LDE3ICsxMzgsMTcgQEAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDgwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwMjAwMDAwIC8qIDIgTUIgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMDI0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEwMjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgweDAgKyAweDNDMDAwKQkvKiBBZGRyIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2xwZDdhNDAwLTEwLmggYi9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDAtMTAuaAppbmRleCAzNzIyZmQyLi42MTQ1YzM3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDAtMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDAtMTAuaApAQCAtMzQsNyArMzQsNyBAQAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCQkxNDc0NTYwMCAgIC8qIFN5c3RlbSBDbG9jayBQTEwgSW5wdXQgKEh6KSAqLwogCiAvKiB0aWNrcyBwZXIgc2Vjb25kICovCi0jZGVmaW5lIENGR19IWgkoNTA4NDY5KQorI2RlZmluZSBDT05GSUdfU1lTX0haCSg1MDg0NjkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC01NCwxNyArNTQsMTcgQEAKICNkZWZpbmUgUEhZU19TRFJBTV8xCQkweGMwMDAwMDAwIC8qIFNEUkFNIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJMHgwMjAwMDAwMCAvKiAzMiBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDY0KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSg2NCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVzaW5nIFNNQzkxQzExMSBMQU4gY2hpcApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2xwZDdhNDAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDAuaAppbmRleCA5ZTZlYTFhLi41NzVmMmExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDAuaApAQCAtMzcsOCArMzcsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgpAQCAtODksMzEgKzg5LDMxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIkxQRDdBNDAwPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkxQRDdBNDAwPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGMwMzAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwNTAwMDAwCS8qIDIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhjMDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA1MDAwMDAJLyogMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHhjMGYwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHhjMGYwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qIHNpemUgYW5kIGxvY2F0aW9uIG9mIHUtYm9vdCBpbiBmbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1Njw8MTApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2PDwxMCkKIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBQcmltYXJ5IEVudmlyb25tZW50IFNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4RkMwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweEZDMDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAwCiAKICNlbmRpZiAgLyogX19MUEQ3QTQwMF9IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2xwZDdhNDA0LTEwLmggYi9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDQtMTAuaAppbmRleCBhOGFmOTUwLi5jZTIzZjNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDQtMTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDQtMTAuaApAQCAtMzQsNyArMzQsNyBAQAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCQkxNDc0NTYwMCAgIC8qIFN5c3RlbSBDbG9jayBQTEwgSW5wdXQgKEh6KSAqLwogCiAvKiB0aWNrcyBwZXIgc2Vjb25kICovCi0jZGVmaW5lIENGR19IWgkoNTA4NDY5KQorI2RlZmluZSBDT05GSUdfU1lTX0haCSg1MDg0NjkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC01NCwxNyArNTQsMTcgQEAKICNkZWZpbmUgUEhZU19TRFJBTV8xCQkweGMwMDAwMDAwIC8qIFNEUkFNIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJMHgwMjAwMDAwMCAvKiAzMiBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDY0KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSg2NCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVzaW5nIFNNQzkxQzExMSBMQU4gY2hpcApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2xwZDdhNDA0LmggYi9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDQuaAppbmRleCA5Yzk1OTEzLi4zZTcyNmEwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDQuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbHBkN2E0MDQuaApAQCAtMzcsOCArMzcsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgpAQCAtODksMzEgKzg5LDMxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIkxQRDdBNDA0PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIkxQRDdBNDA0PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGMwMzAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGMwNTAwMDAwCS8qIDIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhjMDMwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YzA1MDAwMDAJLyogMiBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHhjMGYwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHhjMGYwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qIHNpemUgYW5kIGxvY2F0aW9uIG9mIHUtYm9vdCBpbiBmbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1Njw8MTApCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2PDwxMCkKIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBQcmltYXJ5IEVudmlyb25tZW50IFNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4RkMwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweEZDMDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAwCiAKICNlbmRpZiAgLyogX19MUEQ3QTQwNF9IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2x1YW4uaCBiL2luY2x1ZGUvY29uZmlncy9sdWFuLmgKaW5kZXggMjFhNmMyOS4uYjE1OGI3NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2x1YW4uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbHVhbi5oCkBAIC01MCw0NCArNTAsNDQgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTEFSR0VfRkxBU0gJCTB4ZmZjMDAwMDAJLyogNE1CIGZsYXNoIGFkZHJlc3MgQ1MwICovCi0jZGVmaW5lIENGR19TTUFMTF9GTEFTSAkJMHhmZjkwMDAwMAkvKiAxTUIgZmxhc2ggYWRkcmVzcyBDUzIgKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkJMHhmZjgwMDAwMAkvKiAxTUIgU1JBTSAgYWRkcmVzcyBDUzIgKi8KLSNkZWZpbmUgQ0ZHX0VQTERfQkFTRQkJMHhmZjAwMDAwMAkvKiBFUExEIGFuZCBGUkFNICAgICBDUzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQVJHRV9GTEFTSAkJMHhmZmMwMDAwMAkvKiA0TUIgZmxhc2ggYWRkcmVzcyBDUzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TTUFMTF9GTEFTSAkJMHhmZjkwMDAwMAkvKiAxTUIgZmxhc2ggYWRkcmVzcyBDUzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4ZmY4MDAwMDAJLyogMU1CIFNSQU0gIGFkZHJlc3MgQ1MyICovCisjZGVmaW5lIENPTkZJR19TWVNfRVBMRF9CQVNFCQkweGZmMDAwMDAwCS8qIEVQTEQgYW5kIEZSQU0gICAgIENTMSAqLwogCi0jZGVmaW5lIENGR19JU1JBTV9CQVNFCSAgICAgICAgMHhmODAwMDAwMAkvKiBpbnRlcm5hbCA4ayBTUkFNIChMMiBjYWNoZSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCSAgICAgICAgMHhmODAwMDAwMAkvKiBpbnRlcm5hbCA4ayBTUkFNIChMMiBjYWNoZSkgKi8KIAotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFICAgICAweGYwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICAgICAweGYwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncyAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFCTB4ODAwMDAwMDAJLyogUENJYWRkciBtYXBwZWQgdG8gQ0ZHX1BDSV9NRU1CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRQkweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KIAotI2lmIENGR19MQVJHRV9GTEFTSCA9PSAweGZmYzAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfTEFSR0VfRkxBU0gKKyNpZiBDT05GSUdfU1lTX0xBUkdFX0ZMQVNIID09IDB4ZmZjMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlDT05GSUdfU1lTX0xBUkdFX0ZMQVNICiAjZWxzZQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ0ZHX1NNQUxMX0ZMQVNICisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19TTUFMTF9GTEFTSAogI2VuZGlmCiAKLSNpZiBDRkdfU1JBTV9CQVNFCi0jZGVmaW5lIENGR19LQllURVNfU0RSQU0JMTAyNCoyCisjaWYgQ09ORklHX1NZU19TUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19LQllURVNfU0RSQU0JMTAyNCoyCiAjZWxzZQotI2RlZmluZSBDRkdfS0JZVEVTX1NEUkFNCTEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19LQllURVNfU0RSQU0JMTAyNAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIFNEUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lTUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkoOCA8PCAxMCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSVNSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoOCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwIC8qIGV4dGVybmFsIDExLjA1OU1IeiBjbGsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwIC8qIGV4dGVybmFsIDExLjA1OU1IeiBjbGsgKi8KICN1bmRlZiAgQ09ORklHX1VBUlQxX0NPTlNPTEUJCS8qIGRlZmluZSBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwMiwyMSArMTAyLDIxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTMJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMwkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1Ci0jZGVmaW5lIENGR19GTEFTSF9BRERSMSAgICAgICAgIDB4MmFhCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIGNoYXIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEgICAgICAgICAweDJhYQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgY2hhcgogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xMzQsMTMgKzEzNCwxMyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAvKgogICogRGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKQEAgLTE4MiwxMSArMTgyLDExIEBACiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XICAgICAgICAgICAgLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICAqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAotI3VuZGVmICBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCisjdW5kZWYgIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHg0NDAzCS8qIHdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHg0NDAzCS8qIHdoYXRldmVyICovCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbHViYm9jay5oIGIvaW5jbHVkZS9jb25maWdzL2x1YmJvY2suaAppbmRleCAzYzkyMWMwLi4yMDg5MTBlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbHViYm9jay5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9sdWJib2NrLmgKQEAgLTQ5LDggKzQ5LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTA1LDM1ICsxMDUsMzUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFQJCSIkICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkoQ0ZHX0RSQU1fQkFTRSArIDB4ODAwMCkgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJKENPTkZJR19TWVNfRFJBTV9CQVNFICsgMHg4MDAwKSAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDE2MQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gNDAwLzIwMC8xMDAgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MTYxCQkvKiBzZXQgY29yZSBjbG9jayB0byA0MDAvMjAwLzEwMCBNSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCi0jZGVmaW5lIENGR19NTUNfQkFTRQkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01NQ19CQVNFCQkweEYwMDAwMDAwCiAKIC8qCiAgKiBTdGFjayBzaXplcwpAQCAtMTY1LDU0ICsxNjUsNTQgQEAKICNkZWZpbmUgUEhZU19GTEFTSF9CQU5LX1NJWkUJMHgwMjAwMDAwMCAvKiAzMiBNQiBCYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDQwMDAwIC8qIDI1NiBLQiBzZWN0b3JzICh4MikgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFCQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCTB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUJCTB4MDQwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKICNkZWZpbmUgRlBHQV9SRUdTX0JBU0VfUEhZU0lDQUwgMHgwODAwMDAwMAogCiAvKgogICogR1BJTyBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJCTB4MDAwMDgwMDAKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTAkJMHgwMEZDMDM4MgotI2RlZmluZSBDRkdfR1BTUjJfVkFMCQkweDAwMDFGRkZGCi0jZGVmaW5lIENGR19HUENSMF9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IxX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjJfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUERSMF9WQUwJCTB4MDA2MEE4MDAKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTAkJMHgwMEZGMDM4MgotI2RlZmluZSBDRkdfR1BEUjJfVkFMCQkweDAwMDFDMDAwCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTAkJMHg5ODQwMDAwMAotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwJCTB4MDAwMDI5NTAKLSNkZWZpbmUgQ0ZHX0dBRlIxX0xfVkFMCQkweDAwMEE5NTU4Ci0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTAkJMHgwMDA1QUFBQQotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwJCTB4QTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMCQkweDAwMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMCQkweDAwMDA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMCQkweDAwRkMwMzgyCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMCQkweDAwMDFGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMCQkweDAwNjBBODAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMCQkweDAwRkYwMzgyCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMCQkweDAwMDFDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwJCTB4OTg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTAkJMHgwMDAwMjk1MAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMCQkweDAwMEE5NTU4CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwJCTB4MDAwNUFBQUEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTAkJMHhBMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX1VfVkFMCQkweDAwMDAwMDAyCiAKLSNkZWZpbmUgQ0ZHX1BTU1JfVkFMCQkweDIwCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwJCTB4MjAKIAogLyoKICAqIE1lbW9yeSBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkJMHgyM0YyMjNGMgotI2RlZmluZSBDRkdfTVNDMV9WQUwJCTB4M0ZGMUE0NDEKLSNkZWZpbmUgQ0ZHX01TQzJfVkFMCQkweDdGRjk3RkYxCi0jZGVmaW5lIENGR19NRENORkdfVkFMCQkweDAwMDAxQUM5Ci0jZGVmaW5lIENGR19NRFJFRlJfVkFMCQkweDAwMDE4MDE4Ci0jZGVmaW5lIENGR19NRE1SU19WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTAkJMHgyM0YyMjNGMgorI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMCQkweDNGRjFBNDQxCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMl9WQUwJCTB4N0ZGOTdGRjEKKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMCQkweDAwMDAxQUM5CisjZGVmaW5lIENPTkZJR19TWVNfTURSRUZSX1ZBTAkJMHgwMDAxODAxOAorI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTAkJMHgwMDAwMDAwMAogCiAvKgogICogUENNQ0lBIGFuZCBDRiBJbnRlcmZhY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ01FTTFfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDBfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0FUVDFfVkFMCQkweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0lPMF9WQUwJCTB4MDAwMDQ3MTUKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTAkJMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01FQ1JfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0wX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMV9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDBfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQxX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DSU8wX1ZBTAkJMHgwMDAwNDcxNQorI2RlZmluZSBDT05GSUdfU1lTX01DSU8xX1ZBTAkJMHgwMDAwNDcxNQogCiAjZGVmaW5lIF9MRUQJCQkweDA4MDAwMDEwCiAjZGVmaW5lIExFRF9CTEFOSwkJMHgwODAwMDA0MApAQCAtMjIwLDE3ICsyMjAsMTcgQEAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4ICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjggIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKIC8qIE5PVEU6IG1hbnkgZGVmYXVsdCBwYXJ0aXRpb25pbmcgc2NoZW1lcyBhc3N1bWUgdGhlIGtlcm5lbCBzdGFydHMgYXQgdGhlCiAgKiBzZWNvbmQgc2VjdG9yLCBub3QgYW4gZW52aXJvbm1lbnQuICBZb3UgaGF2ZSBiZWVuIHdhcm5lZCEKICAqLwotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCVBIWVNfRkxBU0hfU0VDVF9TSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCVBIWVNfRkxBU0hfU0VDVF9TSVpFCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyBQSFlTX0ZMQVNIX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJUEhZU19GTEFTSF9TRUNUX1NJWkUKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9sd21vbi5oIGIvaW5jbHVkZS9jb25maWdzL2x3bW9uLmgKaW5kZXggZTRlZTA5OS4uZDUyYTVlMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL2x3bW9uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL2x3bW9uLmgKQEAgLTczLDE4ICs3MywxOCBAQAogI3VuZGVmCUNPTkZJR19CT09UQVJHUwogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9DQUNIRQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfV0FUQ0hET0cgfCBcCi0JCQkJIENGR19QT1NUX1JUQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX0NQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfVUFSVAkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRVRIRVIgICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfU1BJCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9VU0IJICAgfCBcCi0JCQkJIENGR19QT1NUX1NQUgkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfU1lTTU9OKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9DQUNIRQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1dBVENIRE9HIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfUlRDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VQVJUCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIgICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TUEkJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VU0IJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TUFIJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TWVNNT04pCiAKIC8qCiAgKiBLZXlib2FyZCBjb21tYW5kczoKQEAgLTEzNSwxMCArMTM1LDEwIEBACiAJInZlcmlmeT1ubyIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUJQ09ORklHX1dBVENIRE9HCQkxCS8qIHdhdGNoZG9nIGVuYWJsZWQJCSovCi0jZGVmaW5lCUNGR19XQVRDSERPR19GUkVRICAgICAgIChDRkdfSFogLyAyMCkKKyNkZWZpbmUJQ09ORklHX1NZU19XQVRDSERPR19GUkVRICAgICAgIChDT05GSUdfU1lTX0haIC8gMjApCiAKICN1bmRlZglDT05GSUdfU1RBVFVTX0xFRAkJLyogU3RhdHVzIExFRCBkaXNhYmxlZAkJKi8KIApAQCAtMTQ2LDggKzE0Niw4IEBACiAjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZQlDT05GSUdfU09GVF9JMkMgICAgICAgICAxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTkzMDAwCS8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKIC8qCkBAIC0yMDksMzkgKzIwOSwzOSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUJQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwRjAwMDAwCS8qIDEgLi4uIDE1TUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDAxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUElPX01PREUJCTAJLyogSURFIGludGVyZmFjZSBpbiBQSU8gTW9kZSAwCSovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIFdoZW4gdGhlIHdhdGNoZG9nIGlzIGVuYWJsZWQsIG91dHB1dCBtdXN0IGJlIGZhc3QgZW5vdWdoIGluIExpbnV4LgogICovCiAjaWZkZWYgQ09ORklHX1dBVENIRE9HCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7CQkzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJewkJMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtMjY2LDUzICsyNjYsNTMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTY4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2OCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCiAjaWYgZGVmaW5lZChERUJVRykgfHwgZGVmaW5lZChDT05GSUdfQ01EX0lERSkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTE4MDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTYwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCi0jZGVmaW5lIENGR19GTEFTSF9CVUZGRVJfV1JJVEVfVE9VVAkyMDQ4CS8qIFRpbWVvdXQgZm9yIEZsYXNoIEJ1ZmZlciBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxODAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNjAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQlVGRkVSX1dSSVRFX1RPVVQJMjA0OAkvKiBUaW1lb3V0IGZvciBGbGFzaCBCdWZmZXIgV3JpdGUgKGluIG1zKQkqLwogLyogQnVmZmVyIHNpemUuCiAgICBXZSBoYXZlIHR3byBmbGFzaCBkZXZpY2VzIGNvbm5lY3RlZCBpbiBwYXJhbGxlbC4KICAgIEVhY2ggZGV2aWNlIGluY29ycG9yYXRlcyBhIFdyaXRlIEJ1ZmZlciBvZiAzMiBieXRlcy4KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQlVGRkVSX1NJWkUJKDIqMzIpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQlVGRkVSX1NJWkUJKDIqMzIpCiAKIC8qIFB1dCBlbnZpcm9ubWVudCBpbiBmbGFzaCB3aGljaCBpcyBtdWNoIGZhc3RlciB0byBib290IHRoYW4gdXNpbmcgdGhlIEVFUFJPTQkqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKQEAgLTMyNCw2MiArMzI0LDYyIEBACiAgKiBJMkMvRUVQUk9NIENvbmZpZ3VyYXRpb24KICAqLwogCi0jZGVmaW5lIENGR19JMkNfQVVESU9fQUREUgkweDI4CS8qIEF1ZGlvIHZvbHVtZSBjb250cm9sCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TWVNNT05fQUREUgkweDJFCS8qIExNODcgU3lzdGVtIE1vbml0b3IJCQkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NTEJLyogUENGODU2MyBSVEMJCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19QT1dFUl9BX0FERFIJMHg1MgkvKiBQQ01DSUEvVVNCIHBvd2VyIHN3aXRjaCwgY2hhbm5lbCBBCSovCi0jZGVmaW5lIENGR19JMkNfUE9XRVJfQl9BRERSCTB4NTMJLyogUENNQ0lBL1VTQiBwb3dlciBzd2l0Y2gsIGNoYW5uZWwgQgkqLwotI2RlZmluZSBDRkdfSTJDX0tFWUJEX0FERFIJMHg1NgkvKiBQSUMgTFdFIGtleWJvYXJkCQkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19QSUNJT19BRERSCTB4NTcJLyogUElDIElPIEV4cGFuZGVyCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfQVVESU9fQUREUgkweDI4CS8qIEF1ZGlvIHZvbHVtZSBjb250cm9sCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1lTTU9OX0FERFIJMHgyRQkvKiBMTTg3IFN5c3RlbSBNb25pdG9yCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg1MQkvKiBQQ0Y4NTYzIFJUQwkJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QT1dFUl9BX0FERFIJMHg1MgkvKiBQQ01DSUEvVVNCIHBvd2VyIHN3aXRjaCwgY2hhbm5lbCBBCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BPV0VSX0JfQUREUgkweDUzCS8qIFBDTUNJQS9VU0IgcG93ZXIgc3dpdGNoLCBjaGFubmVsIEIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfS0VZQkRfQUREUgkweDU2CS8qIFBJQyBMV0Uga2V5Ym9hcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19QSUNJT19BRERSCTB4NTcJLyogUElDIElPIEV4cGFuZGVyCQkJKi8KIAogI3VuZGVmCUNPTkZJR19VU0VfRlJBTQkJCS8qIFVzZSBGUkFNIGluc3RlYWQgb2YgRUVQUk9NCSovCiAKICNpZmRlZiBDT05GSUdfVVNFX0ZSQU0JLyogdXNlIEZSQU0gKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU1CS8qIEZSQU0gRk0yNENMNjQJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1NQkvKiBGUkFNIEZNMjRDTDY0CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgogI2Vsc2UJCQkvKiB1c2UgRUVQUk9NICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1OAkvKiBFRVBST00gQVQyNEMxNjQJCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1OAkvKiBFRVBST00gQVQyNEMxNjQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogdGFrZXMgdXAgdG8gMTAgbXNlYwkqLwogI2VuZGlmCS8qIENPTkZJR19VU0VfRlJBTSAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CiAKIC8qIExpc3Qgb2YgSTJDIGFkZHJlc3NlcyB0byBiZSB2ZXJpZmllZCBieSBQT1NUICovCiAjaWZkZWYgQ09ORklHX1VTRV9GUkFNCi0jZGVmaW5lIEkyQ19BRERSX0xJU1QJeyAgLyoJQ0ZHX0kyQ19BVURJT19BRERSLCAqLwlcCi0JCQkJQ0ZHX0kyQ19TWVNNT05fQUREUiwJXAotCQkJCUNGR19JMkNfUlRDX0FERFIsCVwKLQkJCQlDRkdfSTJDX1BPV0VSX0FfQUREUiwJXAotCQkJCUNGR19JMkNfUE9XRVJfQl9BRERSLAlcCi0JCQkJQ0ZHX0kyQ19LRVlCRF9BRERSLAlcCi0JCQkJQ0ZHX0kyQ19QSUNJT19BRERSLAlcCi0JCQkJQ0ZHX0kyQ19FRVBST01fQUREUiwJXAorI2RlZmluZSBJMkNfQUREUl9MSVNUCXsgIC8qCUNPTkZJR19TWVNfSTJDX0FVRElPX0FERFIsICovCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19TWVNNT05fQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1JUQ19BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfUE9XRVJfQV9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfUE9XRVJfQl9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfS0VZQkRfQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1BJQ0lPX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUiwJXAogCQkJfQogI2Vsc2UJLyogVXNlIEVFUFJPTSAtIHdoaWNoIHNob3cgdXAgb24gOCBjb25zZXF1dGl2ZSBhZGRyZXNzZXMgKi8KLSNkZWZpbmUgSTJDX0FERFJfTElTVAl7ICAvKglDRkdfSTJDX0FVRElPX0FERFIsICovCVwKLQkJCQlDRkdfSTJDX1NZU01PTl9BRERSLAlcCi0JCQkJQ0ZHX0kyQ19SVENfQUREUiwJXAotCQkJCUNGR19JMkNfUE9XRVJfQV9BRERSLAlcCi0JCQkJQ0ZHX0kyQ19QT1dFUl9CX0FERFIsCVwKLQkJCQlDRkdfSTJDX0tFWUJEX0FERFIsCVwKLQkJCQlDRkdfSTJDX1BJQ0lPX0FERFIsCVwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSKzAsCVwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSKzEsCVwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSKzIsCVwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSKzMsCVwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSKzQsCVwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSKzUsCVwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSKzYsCVwKLQkJCQlDRkdfSTJDX0VFUFJPTV9BRERSKzcsCVwKKyNkZWZpbmUgSTJDX0FERFJfTElTVAl7ICAvKglDT05GSUdfU1lTX0kyQ19BVURJT19BRERSLCAqLwlcCisJCQkJQ09ORklHX1NZU19JMkNfU1lTTU9OX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19SVENfQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1BPV0VSX0FfQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1BPV0VSX0JfQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX0tFWUJEX0FERFIsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19QSUNJT19BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIrMCwJXAorCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKzEsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUisyLAlcCisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIrMywJXAorCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKzQsCVwKKwkJCQlDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUis1LAlcCisJCQkJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIrNiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSKzcsCVwKIAkJCX0KICNlbmRpZgkvKiBDT05GSUdfVVNFX0ZSQU0gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zODksMTAgKzM4OSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiAwICYmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQkvKiBMV01PTiB1c2VzIGV4dGVybmFsIE1BWDcwNlRFU0EgV0QgKi8KLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDAyLDIyICs0MDIsMjIgQEAKICAqLwogLyogRUFSQiwgREJHQyBhbmQgREJQQyBhcmUgaW5pdGlhbGlzZWQgYnkgdGhlIEhDVyAqLwogLyogPT4gMHgwMDAwMDBDMCAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfR0I1RSkKLS8qI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfR0I1RSkKKy8qI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtNDI2LDE1ICs0MjYsMTUgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0LCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciAhCiAgKi8KIC8qIDB4MDA0MDUwMDAgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUl9NRgk0CS8qICg0KzEpICogMTMuMiA9IDY2IE1IeiBDbG9jayAqLwotI2RlZmluZSBDRkdfUExQUkNSCQkJCQkJCVwKLQkJKAkoQ0ZHX1BMUFJDUl9NRiA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1JfTUYJNAkvKiAoNCsxKSAqIDEzLjIgPSA2NiBNSHogQ2xvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAorCQkoCShDT05GSUdfU1lTX1BMUFJDUl9NRiA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJCVwKIAkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8CVwKIAkJCS8qUExQUkNSX0NTUkN8Ki8gUExQUkNSX0xQTV9OT1JNQUwgfAkJXAogCQkJUExQUkNSX0NTUiAgICAvKnwgUExQUkNSX0xPTFJFfFBMUFJDUl9GSU9QRCovCVwKIAkJKQogCi0jZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRCSgoQ0ZHX1BMUFJDUl9NRisxKSoxMzIwMDAwMCkKKyNkZWZpbmUgQ09ORklHXzh4eF9HQ0xLX0ZSRVEJKChDT05GSUdfU1lTX1BMUFJDUl9NRisxKSoxMzIwMDAwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTQ0NCw3ICs0NDQsNyBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogLyogMHgwMTgwMDAwMCAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMAl8IC8qU0NDUl9UQlN8Ki8JCVwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwCXwgLypTQ0NSX1RCU3wqLwkJXAogCQkJIFNDQ1JfUlRESVYJfCAgIFNDQ1JfUlRTRUwJICB8CVwKIAkJCSAvKlNDQ1JfQ1JRRU58Ki8gIC8qU0NDUl9QUlFFTnwqLwlcCiAJCQkgU0NDUl9FQkRGMDAgfAkgU0NDUl9ERlNZTkMwMCB8CVwKQEAgLTQ1Nyw0MSArNDU3LDQxIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIC8qIDB4MDBDMyA9PiAweDAwMDMgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKKyNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uIFJlZ2lzdGVyCQkxOS00CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IgMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAweDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1EUyAtIFJJU0MgTWljcm9jb2RlIERldmVsb3BtZW50IFN1cHBvcnQgQ29udHJvbCBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STURTIDAKKyNkZWZpbmUgQ09ORklHX1NZU19STURTIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqIEludGVycnVwdCBMZXZlbHMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQ1BNX0lOVEVSUlVQVAkxMwkvKiBTSVVfTEVWRUw2CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNX0lOVEVSUlVQVAkxMwkvKiBTSVVfTEVWRUw2CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweDUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweDU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4NTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweDVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweDUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4NTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweDU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweDVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC01MDQsMjEgKzUwNCwyMSBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVECSBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogI2RlZmluZSBDT05GSUdfU1VQUE9SVF9WRkFUCQkvKiBlbmFibGUgVkZBVCBzdXBwb3J0ICovCiAKQEAgLTUyNyw3ICs1MjcsNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSIDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTU0MiwyMiArNTQyLDIyIEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweEZGMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkYwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4RkYwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkYwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMDAsIFRSTFggPSAwLCBDU05UID0gMSwgU0NZID0gOCwgRUhUUiA9IDAJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfU0NZXzhfQ0xLKQorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSAkoT1JfU0NZXzhfQ0xLKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKCBDRkdfUkVNQVBfT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCi0JCQkJQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAotCQkJCUNGR19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCSggQ09ORklHX1NZU19SRU1BUF9PUl9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKKwkJCQlDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisJCQkJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCiAvKiAxNiBiaXQsIGJhbmsgdmFsaWQgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1JFTUFQCUNPTkZJR19TWVNfT1IwX1JFTUFQCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMF9QUkVMSU0KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfViApCiAKIC8qCiAgKiBCUjMvT1IzOiBTRFJBTQpAQCAtNTcwLDggKzU3MCw4IEBACiAKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJCTB4MDgwMDAwMDAJLyogbWF4IDEyOCBNQiBTRFJBTSAqLwogCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCShTRFJBTV9QUkVMSU1fT1JfQU0gfCBPUl9DU05UX1NBTSB8IE9SX0c1TFMgfCBTRFJBTV9USU1JTkcgKQotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgT1JfQ1NOVF9TQU0gfCBPUl9HNUxTIHwgU0RSQU1fVElNSU5HICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoU0RSQU1fQkFTRTNfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyoKICAqIEJSNS9PUjU6IFRvdWNoIFBhbmVsCkBAIC01ODIsMzIgKzU4MiwzMiBAQAogI2RlZmluZSBUT1VDSFBOTF9PUl9BTQkJMHhGRkZGODAwMAogI2RlZmluZSBUT1VDSFBOTF9USU1JTkcJCU9SX1NDWV8wX0NMSwogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCShUT1VDSFBOTF9PUl9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCShUT1VDSFBOTF9PUl9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfQUNTX0RJVjEgfCBPUl9CSSB8IFwKIAkJCSBUT1VDSFBOTF9USU1JTkcgKQotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkoKFRPVUNIUE5MX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCSgoVE9VQ0hQTkxfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18zMiB8IEJSX1YgKQogCi0jZGVmaW5lCUNGR19NRU1PUllfNzUKLSN1bmRlZglDRkdfTUVNT1JZXzdFCi0jdW5kZWYJQ0ZHX01FTU9SWV84RQorI2RlZmluZQlDT05GSUdfU1lTX01FTU9SWV83NQorI3VuZGVmCUNPTkZJR19TWVNfTUVNT1JZXzdFCisjdW5kZWYJQ09ORklHX1NZU19NRU1PUllfOEUKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTVBUUFIJMHgyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkweDIwMAogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCi0jZGVmaW5lIENGR19NQU1SXzhDT0wJMHg4MDgwMjExNAotI2RlZmluZSBDRkdfTUFNUl85Q09MCTB4ODA5MDQxMTQKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJMHg4MDgwMjExNAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkweDgwOTA0MTE0CiAKIC8qCiAgKiBNQVIgc2V0dGluZyBmb3IgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfTUFSCQkweDAwMDAwMDg4CisjZGVmaW5lIENPTkZJR19TWVNfTUFSCQkweDAwMDAwMDg4CiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL2x3bW9uNS5oIGIvaW5jbHVkZS9jb25maWdzL2x3bW9uNS5oCmluZGV4IDc1NDBjOGUuLmUwZGJkNjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9sd21vbjUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbHdtb241LmgKQEAgLTQyLDMyICs0MiwzMiBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUxMiAqIDEwMjQpCS8qIFJlc2VydmUgNTEyIGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlIDUxMiBrQiBmb3IgbWFsbG9jKCkJKi8KIAotI2RlZmluZSBDRkdfQk9PVF9CQVNFX0FERFIJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZjgwMDAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX0xJTUVfQkFTRV8wICAgICAgICAgMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfTElNRV9CQVNFXzEgICAgICAgICAweGMxMDAwMDAwCi0jZGVmaW5lIENGR19MSU1FX0JBU0VfMiAgICAgICAgIDB4YzIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xJTUVfQkFTRV8zICAgICAgICAgMHhjMzAwMDAwMAotI2RlZmluZSBDRkdfRlBHQV9CQVNFXzAgICAgICAgICAweGM0MDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX0JBU0VfMSAgICAgICAgIDB4YzQyMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9CQVNFCQkweGUwMDEwMDAwICAgICAgLyogb2NtCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGUwMDAwMDAwICAgICAgLyogSW50ZXJuYWwgUENJIHJlZ3MJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTEJQ0ZHX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMglDRkdfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UzCUNGR19QQ0lfTUVNQkFTRTIgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9CQVNFX0FERFIJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogX211c3RfIGJlIDAJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmODAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX0JBU0VfMCAgICAgICAgIDB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX0JBU0VfMSAgICAgICAgIDB4YzEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX0JBU0VfMiAgICAgICAgIDB4YzIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX0JBU0VfMyAgICAgICAgIDB4YzMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0VfMCAgICAgICAgIDB4YzQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0VfMSAgICAgICAgIDB4YzQyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fQkFTRQkJMHhlMDAxMDAwMCAgICAgIC8qIG9jbQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJCTB4ZTAwMDAwMDAgICAgICAvKiBJbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UxCUNPTkZJR19TWVNfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMglDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIgKyAweDEwMDAwMDAwCiAKIC8qIERvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UgKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZWY2MDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KIAotI2RlZmluZSBDRkdfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UJCTB4ZTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9IT1NUCQkweGUwMDAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfREVWSUNFCQkweGUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0hPU1QJCTB4ZTAwMDA0MDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyCkBAIC03OCw0MSArNzgsNDEgQEAKICAqIGNvbnRlbnQgZHVyaW5nIHJlc2V0IChHUFQwX0NPTVA2KS4gVGhpcyB3YXkgd2UgcmVzZXJ2ZSB0aGUgT0NNICgxNmspCiAgKiBmb3IgbG9nYnVmZmVyIG9ubHkuIChHUFQwX0NPTVAxLUNPTVA1IGFyZSByZXNlcnZlZCBmb3IgbG9nYnVmZmVyIGhlYWRlci4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0RDQUNIRQkxCQkvKiBkLWNhY2hlIGFzIGluaXQgcmFtCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJCS8qIERDYWNoZSAgICAgICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCi0jZGVmaW5lIENGR19QT1NUX0FMVF9XT1JEX0FERFIJKENGR19QRVJJUEhFUkFMX0JBU0UgKyBHUFQwX0NPTVA2KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0RDQUNIRQkxCQkvKiBkLWNhY2hlIGFzIGluaXQgcmFtCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCQkvKiBEQ2FjaGUgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJKDQgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0FMVF9XT1JEX0FERFIJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9DT01QNikKIAkJCQkJCS8qIHVudXNlZCBHUFQwIENPTVAgcmVnCSovCi0jZGVmaW5lIENGR19NRU1fVE9QX0hJREUJKDQgPDwgMTApIC8qIGRvbid0IHVzZSBsYXN0IDRrYnl0ZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1fVE9QX0hJREUJKDQgPDwgMTApIC8qIGRvbid0IHVzZSBsYXN0IDRrYnl0ZXMJKi8KIAkJCQkJLyogNDQwRVB4IGVycmF0YSBDSElQIDExCSovCi0jZGVmaW5lIENGR19PQ01fU0laRQkJKDE2IDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9TSVpFCQkoMTYgPDwgMTApCiAKIC8qIEFkZGl0aW9uYWwgcmVnaXN0ZXJzIGZvciB3YXRjaGRvZyB0aW1lciBwb3N0IHRlc3QgKi8KIAotI2RlZmluZSBDRkdfV0FUQ0hET0dfVElNRV9BRERSCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9NQVNLMikKLSNkZWZpbmUgQ0ZHX1dBVENIRE9HX0ZMQUdTX0FERFIJKENGR19QRVJJUEhFUkFMX0JBU0UgKyBHUFQwX01BU0sxKQotI2RlZmluZSBDRkdfRFNQSUNfVEVTVF9BRERSCUNGR19XQVRDSERPR19GTEFHU19BRERSCi0jZGVmaW5lIENGR19PQ01fU1RBVFVTX0FERFIJQ0ZHX1dBVENIRE9HX0ZMQUdTX0FERFIKLSNkZWZpbmUgQ0ZHX1dBVENIRE9HX01BR0lDCTB4MTI0ODAwMDAKLSNkZWZpbmUgQ0ZHX1dBVENIRE9HX01BR0lDX01BU0sJMHhGRkZGMDAwMAotI2RlZmluZSBDRkdfRFNQSUNfVEVTVF9NQVNLCTB4MDAwMDAwMDEKLSNkZWZpbmUgQ0ZHX09DTV9TVEFUVVNfT0sJMHgwMDAwOUEwMAotI2RlZmluZSBDRkdfT0NNX1NUQVRVU19GQUlMCTB4MDAwMEEzMDAKLSNkZWZpbmUgQ0ZHX09DTV9TVEFUVVNfTUFTSwkweDAwMDBGRjAwCisjZGVmaW5lIENPTkZJR19TWVNfV0FUQ0hET0dfVElNRV9BRERSCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIEdQVDBfTUFTSzIpCisjZGVmaW5lIENPTkZJR19TWVNfV0FUQ0hET0dfRkxBR1NfQUREUgkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyBHUFQwX01BU0sxKQorI2RlZmluZSBDT05GSUdfU1lTX0RTUElDX1RFU1RfQUREUglDT05GSUdfU1lTX1dBVENIRE9HX0ZMQUdTX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fU1RBVFVTX0FERFIJQ09ORklHX1NZU19XQVRDSERPR19GTEFHU19BRERSCisjZGVmaW5lIENPTkZJR19TWVNfV0FUQ0hET0dfTUFHSUMJMHgxMjQ4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1dBVENIRE9HX01BR0lDX01BU0sJMHhGRkZGMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RTUElDX1RFU1RfTUFTSwkweDAwMDAwMDAxCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX1NUQVRVU19PSwkweDAwMDA5QTAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX1NUQVRVU19GQUlMCTB4MDAwMEEzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fU1RBVFVTX01BU0sJMHgwMDAwRkYwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwkJLyogbm8gZXh0ZXJuYWwgY2xvY2sgcHJvdmlkZWQJKi8KKyN1bmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIG5vIGV4dGVybmFsIGNsb2NrIHByb3ZpZGVkCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkgICAgIDEKIC8qIGRlZmluZSB0aGlzIGlmIHlvdSB3YW50IGNvbnNvbGUgb24gVUFSVDEgKi8KICNkZWZpbmUgQ09ORklHX1VBUlQxX0NPTlNPTEUJMQkvKiB1c2UgVUFSVDEgYXMgY29uc29sZQkJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEyMywyNyArMTIzLDI3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KIAotI2RlZmluZSBDRkdfRkxBU0gwCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDEJCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0gxLCBDRkdfRkxBU0gwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDAJCTB4RkMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDEJCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSDEsIENPTkZJR19TWVNfRkxBU0gwIH0KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DRkdfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE1MywzMiArMTUzLDMyIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBERFIgU0RSQU0KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQllURVNfU0RSQU0JKDI1NikJCS8qIDI1Nk1CCQkJKi8KLSNkZWZpbmUgQ0ZHX0REUl9DQUNIRURfQUREUgkweDQwMDAwMDAwCS8qIHNldHVwIDJuZCBUTEIgY2FjaGVkIGhlcmUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQllURVNfU0RSQU0JKDI1NikJCS8qIDI1Nk1CCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0FDSEVEX0FERFIJMHg0MDAwMDAwMAkvKiBzZXR1cCAybmQgVExCIGNhY2hlZCBoZXJlCSovCiAjZGVmaW5lIENPTkZJR19ERFJfREFUQV9FWUUJMQkJLyogdXNlIEREUjIgb3B0aW1pemF0aW9uCSovCiAjZGVmaW5lIENPTkZJR19ERFJfRUNDCQkxCQkvKiBlbmFibGUgRUNDCQkJKi8KLSNkZWZpbmUgQ0ZHX1BPU1RfRUNDX09OCQlDRkdfUE9TVF9FQ0MKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0VDQ19PTgkJQ09ORklHX1NZU19QT1NUX0VDQwogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9DQUNIRSAgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9FQ0NfT04gICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRVRIRVIJICAgfCBcCi0JCQkJIENGR19QT1NUX0ZQVQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfT0NNICAgICAgfCBcCi0JCQkJIENGR19QT1NUX1JUQyAgICAgIHwgXAotCQkJCSBDRkdfUE9TVF9TUFIgICAgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfVUFSVCAgICAgfCBcCi0JCQkJIENGR19QT1NUX1NZU01PTiAgIHwgXAotCQkJCSBDRkdfUE9TVF9XQVRDSERPRyB8IFwKLQkJCQkgQ0ZHX1BPU1RfRFNQICAgICAgfCBcCi0JCQkJIENGR19QT1NUX0JTUEVDMSAgIHwgXAotCQkJCSBDRkdfUE9TVF9CU1BFQzIgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQlNQRUMzICAgfCBcCi0JCQkJIENGR19QT1NUX0JTUEVDNCAgIHwgXAotCQkJCSBDRkdfUE9TVF9CU1BFQzUpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX0NBQ0hFICAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRUNDX09OICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9FVEhFUgkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0ZQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0kyQwkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX01FTU9SWSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfT0NNICAgICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9SVEMgICAgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1NQUiAgICAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfVUFSVCAgICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TWVNNT04gICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1dBVENIRE9HIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRFNQICAgICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9CU1BFQzEgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0JTUEVDMiAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQlNQRUMzICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9CU1BFQzQgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0JTUEVDNSkKIAogI2RlZmluZSBDT05GSUdfUE9TVF9XQVRDSERPRyAge1wKIAkiV2F0Y2hkb2cgdGltZXIgdGVzdCIsCQkJCVwKQEAgLTE4OCw3ICsxODgsNyBAQAogCSZsd21vbjVfd2F0Y2hkb2dfcG9zdF90ZXN0LAkJCVwKIAlOVUxMLAkJCQkJCVwKIAlOVUxMLAkJCQkJCVwKLQlDRkdfUE9TVF9XQVRDSERPRwkJCQlcCisJQ09ORklHX1NZU19QT1NUX1dBVENIRE9HCQkJCVwKIAl9CiAKICNkZWZpbmUgQ09ORklHX1BPU1RfQlNQRUMxICAgIHtcCkBAIC0xOTksNyArMTk5LDcgQEAKIAkmZHNwaWNfaW5pdF9wb3N0X3Rlc3QsCQkJCVwKIAlOVUxMLAkJCQkJCVwKIAlOVUxMLAkJCQkJCVwKLQlDRkdfUE9TVF9CU1BFQzEJCQkJCVwKKwlDT05GSUdfU1lTX1BPU1RfQlNQRUMxCQkJCQlcCiAJfQogCiAjZGVmaW5lIENPTkZJR19QT1NUX0JTUEVDMiAgICB7XApAQCAtMjEwLDcgKzIxMCw3IEBACiAJJmRzcGljX3Bvc3RfdGVzdCwJCQkJXAogCU5VTEwsCQkJCQkJXAogCU5VTEwsCQkJCQkJXAotCUNGR19QT1NUX0JTUEVDMgkJCQkJXAorCUNPTkZJR19TWVNfUE9TVF9CU1BFQzIJCQkJCVwKIAl9CiAKICNkZWZpbmUgQ09ORklHX1BPU1RfQlNQRUMzICAgIHtcCkBAIC0yMjEsNyArMjIxLDcgQEAKIAkmZnBnYV9wb3N0X3Rlc3QsCQkJCVwKIAlOVUxMLAkJCQkJCVwKIAlOVUxMLAkJCQkJCVwKLQlDRkdfUE9TVF9CU1BFQzMJCQkJCVwKKwlDT05GSUdfU1lTX1BPU1RfQlNQRUMzCQkJCQlcCiAJfQogCiAjZGVmaW5lIENPTkZJR19QT1NUX0JTUEVDNCAgICB7XApAQCAtMjMyLDcgKzIzMiw3IEBACiAJJmdkY19wb3N0X3Rlc3QsCQkJCQlcCiAJTlVMTCwJCQkJCQlcCiAJTlVMTCwJCQkJCQlcCi0JQ0ZHX1BPU1RfQlNQRUM0CQkJCQlcCisJQ09ORklHX1NZU19QT1NUX0JTUEVDNAkJCQkJXAogCX0KIAogI2RlZmluZSBDT05GSUdfUE9TVF9CU1BFQzUgICAge1wKQEAgLTI0MywzNSArMjQzLDM1IEBACiAJJnN5c21vbjFfcG9zdF90ZXN0LAkJCQlcCiAJTlVMTCwJCQkJCQlcCiAJTlVMTCwJCQkJCQlcCi0JQ0ZHX1BPU1RfQlNQRUM1CQkJCQlcCisJQ09ORklHX1NZU19QT1NUX0JTUEVDNQkJCQkJXAogCX0KIAotI2RlZmluZSBDRkdfUE9TVF9DQUNIRV9BRERSCTB4N2ZmZjAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0NBQ0hFX0FERFIJMHg3ZmZmMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLwogI2RlZmluZSBDT05GSUdfTE9HQlVGRkVSCiAvKiBSZXNlcnZlIEdQVDBfQ09NUDEtQ09NUDUgZm9yIGxvZ2J1ZmZlciBoZWFkZXIgKi8KLSNkZWZpbmUgQ09ORklHX0FMVF9MSF9BRERSCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9DT01QMSkKLSNkZWZpbmUgQ09ORklHX0FMVF9MQl9BRERSCShDRkdfT0NNX0JBU0UpCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOViAvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19BTFRfTEhfQUREUgkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyBHUFQwX0NPTVAxKQorI2RlZmluZSBDT05GSUdfQUxUX0xCX0FERFIJKENPTkZJR19TWVNfT0NNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCQkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTMJLyogRUVQUk9NIEFUMjRDMTI4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogVGhlIEF0bWVsIEFUMjRDMTI4IGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUzCS8qIEVFUFJPTSBBVDI0QzEyOAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDIJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDYJLyogVGhlIEF0bWVsIEFUMjRDMTI4IGhhcwkqLwogCQkJCQkvKiA2NCBieXRlIHBhZ2Ugd3JpdGUgbW9kZSB1c2luZyovCiAJCQkJCS8qIGxhc3QgNiBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMCAgIC8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAgICAvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwkxCQkvKiBlbmFibGUgUGhpbGlwcyBQQ0Y4NTYzIFJUQwkqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NTEJCS8qIFBoaWxpcHMgUENGODU2MyBSVEMgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX0tFWUJEX0FERFIJMHg1NgkJLyogUElDIExXRSBrZXlib2FyZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19EU1BJQ19JT19BRERSCTB4NTcJCS8qIFBJQyBJL08gYWRkciAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTEJCS8qIFBoaWxpcHMgUENGODU2MyBSVEMgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19LRVlCRF9BRERSCTB4NTYJCS8qIFBJQyBMV0Uga2V5Ym9hcmQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0RTUElDX0lPX0FERFIJMHg1NwkJLyogUElDIEkvTyBhZGRyICAgICAgICAgICAgICAgKi8KIAogI2RlZmluZQlDT05GSUdfUE9TVF9LRVlfTUFHSUMJIjNDKzNFIgkvKiBwcmVzcyBGMyArIEY1IGtleXMgdG8gZm9yY2UgUE9TVCAqLwogI2lmIDAKQEAgLTMyNCw3ICszMjQsNyBAQAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfSUJNX0VNQUM0X1Y0CTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCkBAIC0zMzQsNyArMzM0LDcgQEAKICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVF9ERUxBWQkzMDAKIAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkJMQogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEJCTEJLyogYWRkIHN1cHBvcnQgZm9yICJldGgxYWRkciIJKi8KQEAgLTQxMSwzMCArNDExLDMwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfU1VQUE9SVF9WRkFUCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJICAgICAgICAiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJICAgICAgICAiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAgICAgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCSAgICAgICAgQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgICAgICAgICAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXICAgICAgICAgICAgMSAgICAgICAvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCkBAIC00NDgsMTQgKzQ0OCwxNCBAQAogI2RlZmluZSBDT05GSUdfUENJCQkJLyogaW5jbHVkZSBwY2kgc3VwcG9ydAkgICAgICAgICovCiAjdW5kZWYgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyAobm90KSBwY2kgcGx1Zy1hbmQtcGxheSAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgICAgIDB4ODAwMDAwMDAgLyogUENJYWRkciBtYXBwZWQgdG8gQ0ZHX1BDSV9NRU1CQVNFKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgICAgIDB4ODAwMDAwMDAgLyogUENJYWRkciBtYXBwZWQgdG8gQ09ORklHX1NZU19QQ0lfTUVNQkFTRSovCiAKIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCi0jZGVmaW5lIENGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQwkJCQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MJCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEICAgICAgIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCiAKICNkZWZpbmUgQ09ORklHX0hXX1dBVENIRE9HCTEJLyogVXNlIGV4dGVybmFsIEhXLVdhdGNoZG9nCSovCiAjZGVmaW5lIENPTkZJR19XRF9QRVJJT0QJNDAwMDAJLyogaW4gdXNlYyAqLwpAQCAtNDY2LDc0ICs0NjYsNzQgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0gJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogCiAvKiBNZW1vcnkgQmFuayAwIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAzMDUwMjAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfRkxBU0ggfCAweGZjMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMzA1MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfRkxBU0ggfCAweGZjMDAwKQogCiAvKiBNZW1vcnkgQmFuayAxIChMaW1lKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDEwMDQzODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJKENGR19MSU1FX0JBU0VfMCB8IDB4ZGMwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUFQCQkweDAxMDA0MzgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkoQ09ORklHX1NZU19MSU1FX0JBU0VfMCB8IDB4ZGMwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDIgKEZQR0EpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTAwNDQwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX0ZQR0FfQkFTRV8wIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDEwMDQ0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCShDT05GSUdfU1lTX0ZQR0FfQkFTRV8wIHwgMHgxYzAwMCkKIAogLyogTWVtb3J5IEJhbmsgMyAoRlBHQTIpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwNDQwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkoQ0ZHX0ZQR0FfQkFTRV8xIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDEwMDQ0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX0ZQR0FfQkFTRV8xIHwgMHgxYzAwMCkKIAotI2RlZmluZSBDRkdfRUJDX0NGRwkJMHhiODQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19DRkcJCTB4Yjg0MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogR3JhcGhpY3MgKEZ1aml0c3UgTGltZSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKiBTRFJBTSBDbG9jayBmcmVxdWVuY3kgYWRqdXN0bWVudCByZWdpc3RlciAqLwotI2RlZmluZSBDRkdfTElNRV9TRFJBTV9DTE9DSwkweEMxRkMwMDM4CisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9TRFJBTV9DTE9DSwkweEMxRkMwMDM4CiAvKiBMaW1lIENsb2NrIGZyZXF1ZW5jeSBpcyB0byBzZXQgMTAwTUh6ICovCi0jZGVmaW5lIENGR19MSU1FX0NMT0NLXzEwME1IWgkweDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTElNRV9DTE9DS18xMDBNSFoJMHgwMDAwMAogI2lmIDAKIC8qIExpbWUgQ2xvY2sgZnJlcXVlbmN5IGZvciAxMzNNSHogKi8KLSNkZWZpbmUgQ0ZHX0xJTUVfQ0xPQ0tfMTMzTUhaCTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX0NMT0NLXzEzM01IWgkweDEwMDAwCiAjZW5kaWYKIAogLyogU0RSQU0gUGFyYW1ldGVyIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19MSU1FX01NUgkJMHhDMUZDRkZGQworI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfTU1SCQkweEMxRkNGRkZDCiAvKiBTRFJBTSBwYXJhbWV0ZXIgdmFsdWU7IHdhcyAweDQxNEZCN0YyLCBjYXVzZWQgc2V2ZXJhbCB2ZXJ0aWNhbCBiYXJzCiAgICBhbmQgcGl4ZWwgZmxhcmUgb24gZGlzcGxheSB3aGVuIDEzM01IeiB3YXMgY29uZmlndXJlZC4gQWNjb3JkaW5nIHRvCiAgICBTRFJBTSBjaGlwIGRhdGFzaGVldCBDQVMgTGF0ZW5jeSBpcyAzIGZvciAxMzNNSHogYW5kIC03NSBTcGVlZCBHcmFkZSAqLwotI2lmZGVmIENGR19MSU1FX0NMT0NLXzEzM01IWgotI2RlZmluZSBDRkdfTElNRV9NTVJfVkFMVUUJMHg0MTRGQjdGMworI2lmZGVmIENPTkZJR19TWVNfTElNRV9DTE9DS18xMzNNSFoKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX01NUl9WQUxVRQkweDQxNEZCN0YzCiAjZWxzZQotI2RlZmluZSBDRkdfTElNRV9NTVJfVkFMVUUJMHg0MTRGQjdGMgorI2RlZmluZSBDT05GSUdfU1lTX0xJTUVfTU1SX1ZBTFVFCTB4NDE0RkI3RjIKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBHUElPIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfR1BJT19QSFkxX1JTVAkxMgotI2RlZmluZSBDRkdfR1BJT19GTEFTSF9XUAkxNAotI2RlZmluZSBDRkdfR1BJT19QSFkwX1JTVAkyMgotI2RlZmluZSBDRkdfR1BJT19EU1BJQ19SRUFEWQk1MQotI2RlZmluZSBDRkdfR1BJT19FRVBST01fRVhUX1dQCTU1Ci0jZGVmaW5lIENGR19HUElPX0hJR0hTSURFCTU2Ci0jZGVmaW5lIENGR19HUElPX0VFUFJPTV9JTlRfV1AJNTcKLSNkZWZpbmUgQ0ZHX0dQSU9fQk9BUkRfUkVTRVQJNTgKLSNkZWZpbmUgQ0ZHX0dQSU9fTElNRV9TCQk1OQotI2RlZmluZSBDRkdfR1BJT19MSU1FX1JTVAk2MAotI2RlZmluZSBDRkdfR1BJT19TWVNNT05fU1RBVFVTCTYyCi0jZGVmaW5lIENGR19HUElPX1dBVENIRE9HCTYzCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QSFkxX1JTVAkxMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRkxBU0hfV1AJMTQKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BIWTBfUlNUCTIyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EU1BJQ19SRUFEWQk1MQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fRUVQUk9NX0VYVF9XUAk1NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSElHSFNJREUJNTYKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0VFUFJPTV9JTlRfV1AJNTcKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JPQVJEX1JFU0VUCTU4CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MSU1FX1MJCTU5CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MSU1FX1JTVAk2MAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fU1lTTU9OX1NUQVRVUwk2MgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fV0FUQ0hET0cJNjMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUFBDNDQwIEdQSU8gQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR180eHhfR1BJT19UQUJMRSB7IC8qCSAgT3V0CQkgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyCUFsdGVybmF0ZTMgKi8gXAorI2RlZmluZSBDT05GSUdfU1lTXzR4eF9HUElPX1RBQkxFIHsgLyoJICBPdXQJCSAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIJQWx0ZXJuYXRlMyAqLyBcCiB7CQkJCQkJCQkJCQlcCiAvKiBHUElPIENvcmUgMCAqLwkJCQkJCQkJCVwKIHtHUElPMF9CQVNFLCBHUElPX09VVCwgR1BJT19BTFQxLCBHUElPX09VVF8wfSwgLyogR1BJTzAJRUJDX0FERFIoNykJRE1BX1JFUSgyKQkqLwlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbTUwMXNrLmggYi9pbmNsdWRlL2NvbmZpZ3MvbTUwMXNrLmgKaW5kZXggMzI0MDNmNy4uZjA5MjE0ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL201MDFzay5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tNTAxc2suaApAQCAtNDUsMzEgKzQ1LDMxIEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIEJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogQnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJCTExNTIwMAogCiAvKiBIYXJkY29kZSBzbyBubyBfX2RpdnNpMyA6IEFUOTFDX01BU1RFUl9DTE9DSyAvIGJhdWRyYXRlIC8gMTYgKi8KLSNkZWZpbmUgQ0ZHX0FUOTFDX0JSR1JfRElWSVNPUgkzMworI2RlZmluZSBDT05GSUdfU1lTX0FUOTFDX0JSR1JfRElWSVNPUgkzMwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCS8qZm9yIEludGVsIFAzMCBGbGFzaCovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JLypmb3IgSW50ZWwgUDMwIEZsYXNoKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkwCi0jZGVmaW5lIENGR19DT05TT0xFX0lORk9fUVVJRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAogI3VuZGVmIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCi0jZGVmaW5lIENGR19FRVBST01fQVQyNEMxNgotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDMyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fQVQyNEMxNgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkJMHgzMgogI3VuZGVmIENPTkZJR19SVENfRFMxMzM4CiAjZGVmaW5lIENPTkZJR19SVENfUlM1QzM3MkEKICN1bmRlZiBDT05GSUdfUE9TVApAQCAtMTIzLDExICsxMjMsMTEgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9GTEFTSAogI2RlZmluZSBDT05GSUdfQ01EX0VOVgogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJICAgICI+PiIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJICAgICI+PiIKIAotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTAgLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMCAvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLwogI2RlZmluZSBTRUNUT1JTSVpFCQkJICAgICA1MTIKIAogI2RlZmluZSBBRERSX0NPTFVNTgkJMQpAQCAtMTM4LDkgKzEzOCw5IEBACiAjZGVmaW5lIFBIWVNfU0RSQU0JCTB4MjAwMDAwMDAKICNkZWZpbmUgUEhZU19TRFJBTV9TSVpFCTB4MjAwMDAwMCAvKiAzMiBtZWdzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgyMTAwMDAwMCAvKiBQSFlTX1NEUkFNICovCi0vKiBDRkdfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDI2MjE0NCAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgyMTAwMDAwMCAvKiBQSFlTX1NEUkFNICovCisvKiBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSAyNjIxNDQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDAwMTAwMDAwCiAKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9FVEhFUgogI2RlZmluZSBDT05GSUdfTkVUX1JFVFJZX0NPVU5UCTIwCkBAIC0xNDgsMTUgKzE0OCwxNSBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgxMDAwMDAwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJMHg4MDAwMDAgLyogOCBtZWdzIG1haW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0RBVEFGTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHgyMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfREFUQUZMQVNIX0xPR0lDX0FERFJfQ1MwICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICkBAIC0xNjksMjMgKzE2OSwyMyBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTEwMjQKICNlbmRpZgogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjEwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjEwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyogdXNlIGZvciBwcm90ZWN0IGZsYXNoIHNlY3RvcnMgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RfU0laRQkJMHg2MDAwIC8qIDI0IEtCeXRlcyAqLwotI2RlZmluZSBDRkdfVV9CT09UX0JBU0UJKFBIWVNfRkxBU0hfMSArIDB4MTAwMDApCi0jZGVmaW5lIENGR19VX0JPT1RfU0laRQkweDEwMDAwIC8qIDY0IEtCeXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfU0laRQkJMHg2MDAwIC8qIDI0IEtCeXRlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1VfQk9PVF9CQVNFCShQSFlTX0ZMQVNIXzEgKyAweDEwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1VfQk9PVF9TSVpFCTB4MTAwMDAgLyogNjQgS0J5dGVzICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwICwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgOTYwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiVS1Cb290PiAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJNTEyIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNiAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlUtQm9vdD4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQk1MTIgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNiAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAKLSNkZWZpbmUgQ0ZHX0haIDEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLCQlBVDkxQ19NQVNURVJfQ0xPQ0svMgorI2RlZmluZSBDT05GSUdfU1lTX0haIDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSwkJQVQ5MUNfTUFTVEVSX0NMT0NLLzIKIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KSAvKiByZWd1bGFyIHN0YWNrICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tYWthbHUuaCBiL2luY2x1ZGUvY29uZmlncy9tYWthbHUuaAppbmRleCBiN2RkZGI3Li41MjMzOWY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWFrYWx1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21ha2FsdS5oCkBAIC01Myw5ICs1Myw5IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFCTB4RUY2MDAwMDAgICAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweEVGNjAwMDAwICAgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIFN0YWNrIFBvaW50ZXIgQ29uZmlndXJhdGlvbiBPcHRpb25zCkBAIC03MSwyNSArNzEsMjUgQEAKICAqICAgdGhlIGxhdHRlciBvZiB3aGljaCBpcyBsZXNzIHRoYW4gZGVzaXJlYWJsZSBzaW5jZSBpdCByZXF1aXJlcwogICogICBzZXR0aW5nIHVwIHRoZSBTRFJBTSBhbmQgRUNDIGluIGFzc2VtYmx5IGNvZGUuCiAgKgotICogICBUbyB1c2UgKDIpLCBkZWZpbmUgJ0NGR19JTklUX0RDQUNIRV9DUycgdG8gYmUgYW4gdW51c2VkIGNoaXAKKyAqICAgVG8gdXNlICgyKSwgZGVmaW5lICdDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTJyB0byBiZSBhbiB1bnVzZWQgY2hpcAogICogICBzZWxlY3Qgb24gdGhlIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIGFuZCB0aGVuIHNlbGVjdCBhCi0gKiAgIHZhbHVlIGZvciAnQ0ZHX0lOSVRfUkFNX0FERFInIG91dHNpZGUgb2YgdGhlIHJhbmdlIG9mIHZhbGlkLAotICogICBwaHlzaWNhbCBTRFJBTS4gT3RoZXJ3aXNlLCB1bmRlZmluZSAnQ0ZHX0lOSVRfRENBQ0hFX0NTJyBhbmQKLSAqICAgc2VsZWN0IGEgdmFsdWUgZm9yICdDRkdfSU5JVF9SQU1fQUREUicgd2l0aGluIHRoZSByYW5nZSBvZiB2YWxpZCwKKyAqICAgdmFsdWUgZm9yICdDT05GSUdfU1lTX0lOSVRfUkFNX0FERFInIG91dHNpZGUgb2YgdGhlIHJhbmdlIG9mIHZhbGlkLAorICogICBwaHlzaWNhbCBTRFJBTS4gT3RoZXJ3aXNlLCB1bmRlZmluZSAnQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUycgYW5kCisgKiAgIHNlbGVjdCBhIHZhbHVlIGZvciAnQ09ORklHX1NZU19JTklUX1JBTV9BRERSJyB3aXRoaW4gdGhlIHJhbmdlIG9mIHZhbGlkLAogICogICBwaHlzaWNhbCBTRFJBTSB0byB1c2UgKDMpLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfRENBQ0hFX0NTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwk0CiAKLSNpZiBkZWZpbmVkKENGR19JTklUX0RDQUNIRV9DUykKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19TRFJBTV9CQVNFICsgKCAxIDw8IDMwKSkJLyogIDEgR2lCICovCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArICggMSA8PCAzMCkpCS8qICAxIEdpQiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19TRFJBTV9CQVNFICsgKDMyIDw8IDIwKSkJLyogMzIgTWlCICovCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgKDMyIDw8IDIwKSkJLyogMzIgTWlCICovCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKSAqLwogCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAgICg0IDw8IDEwKQkJCS8qICA0IEtpQiAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgICAgKDQgPDwgMTApCQkJLyogIDQgS2lCICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKgogICogSWYgdGhlIGRhdGEgY2FjaGUgaXMgYmVpbmcgdXNlZCBmb3IgdGhlIHByaW1vcmRpYWwgc3RhY2sgYW5kIGdsb2JhbApAQCAtOTksMjAgKzk5LDIwIEBACiAgKiBmb3IgdGhlIFBPU1Qgd29yZC4KICAqLwogCi0jaWYgZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpCi0jIGRlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAotIyBkZWZpbmUgQ0ZHX1BPU1RfQUxUX1dPUkRfQUREUgkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIEdQVDBfQ09NUDYpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfRENBQ0hFX0NTKQorIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAorIyBkZWZpbmUgQ09ORklHX1NZU19QT1NUX0FMVF9XT1JEX0FERFIJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgR1BUMF9DT01QNikKICNlbHNlCi0jIGRlZmluZSBDRkdfSU5JVF9FWFRSQV9TSVpFCTE2Ci0jIGRlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJKENGR19HQkxfREFUQV9PRkZTRVQgLSBDRkdfSU5JVF9FWFRSQV9TSVpFKQotIyBkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gNCkKLSMgZGVmaW5lIENGR19PQ01fREFUQV9BRERSCUNGR19JTklUX1JBTV9BRERSCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfSU5JVF9EQ0FDSEVfQ1MpICovCisjIGRlZmluZSBDT05GSUdfU1lTX0lOSVRfRVhUUkFfU0laRQkxNgorIyBkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSBDT05GSUdfU1lTX0lOSVRfRVhUUkFfU0laRSkKKyMgZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUglDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIKKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MpICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI3VuZGVmIENGR19FWFRfU0VSSUFMX0NMT0NLCQkJLyogbm8gZXh0LiBjbGsJCSovCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkJLyogbm8gZXh0LiBjbGsJCSovCiAvKiBkZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxICovCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIApAQCAtMTI0LDIyICsxMjQsMjIgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICAgIHtDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgICAge0NPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNTAsNzMgKzE1MCw3MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRERSIFNEUkFNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTUJZVEVTX1NEUkFNICAgICAgICAoMjU2KQkJLyogMjU2TUIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01CWVRFU19TRFJBTSAgICAgICAgKDI1NikJCS8qIDI1Nk1CCQkJKi8KIAotI2RlZmluZQlDRkdfU0RSQU0wX01CMENGX0JBU0UJKCggIDAgPDwgMjApICsgQ0ZHX1NEUkFNX0JBU0UpCi0jZGVmaW5lCUNGR19TRFJBTTBfTUIxQ0ZfQkFTRQkoKDEyOCA8PCAyMCkgKyBDRkdfU0RSQU1fQkFTRSkKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTTBfTUIwQ0ZfQkFTRQkoKCAgMCA8PCAyMCkgKyBDT05GSUdfU1lTX1NEUkFNX0JBU0UpCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU0wX01CMUNGX0JBU0UJKCgxMjggPDwgMjApICsgQ09ORklHX1NZU19TRFJBTV9CQVNFKQogCiAvKiBERFIxLzIgU0RSQU0gRGV2aWNlIENvbnRyb2wgUmVnaXN0ZXIgRGF0YSBWYWx1ZXMgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQjBDRgkoKENGR19TRFJBTTBfTUIwQ0ZfQkFTRSA+PiAzKQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUIwQ0YJKChDT05GSUdfU1lTX1NEUkFNMF9NQjBDRl9CQVNFID4+IDMpCXwgXAogCQkJCSBTRFJBTV9SWEJBU19TRFNaXzEyOE1CIAl8IFwKIAkJCQkgU0RSQU1fUlhCQVNfU0RBTV9NT0RFMiAJfCBcCiAJCQkJIFNEUkFNX1JYQkFTX1NEQkVfRU5BQkxFKQotI2RlZmluZSBDRkdfU0RSQU0wX01CMUNGCSgoQ0ZHX1NEUkFNMF9NQjFDRl9CQVNFID4+IDMpCXwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NQjFDRgkoKENPTkZJR19TWVNfU0RSQU0wX01CMUNGX0JBU0UgPj4gMykJfCBcCiAJCQkJIFNEUkFNX1JYQkFTX1NEU1pfMTI4TUIgCXwgXAogCQkJCSBTRFJBTV9SWEJBU19TREFNX01PREUyIAl8IFwKIAkJCQkgU0RSQU1fUlhCQVNfU0RCRV9FTkFCTEUpCi0jZGVmaW5lIENGR19TRFJBTTBfTUIyQ0YJU0RSQU1fUlhCQVNfU0RCRV9ESVNBQkxFCi0jZGVmaW5lIENGR19TRFJBTTBfTUIzQ0YJU0RSQU1fUlhCQVNfU0RCRV9ESVNBQkxFCi0jZGVmaW5lIENGR19TRFJBTTBfTUNPUFQxCTB4MDQzMjIwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NQ09QVDIJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX01PRFQwCTB4MDE4MDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NT0RUMQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfQ09EVAkJMHgwMDgwZjgzNwotI2RlZmluZSBDRkdfU0RSQU0wX1JUUgkJMHgwNjE4MDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIwCTB4YTgzODAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMQkweDgxOTAwNDAwCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjIJMHg4MTAyMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIzCTB4ODEwMzAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSNAkweDgxMDEwNDA0Ci0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjUJMHg4MTAwMDU0MgotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFI2CTB4ODE5MDA0MDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSNwkweDhEMDgwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjgJMHg4RDA4MDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFI5CTB4OEQwODAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTAJMHg4RDA4MDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxMQkweDgxMDAwNDQyCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjEyCTB4ODEwMTA3ODAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9JTklUUExSMTMJMHg4MTAxMDQwMAotI2RlZmluZSBDRkdfU0RSQU0wX0lOSVRQTFIxNAkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfSU5JVFBMUjE1CTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9SUURDCQkweDgwMDAwMDM4Ci0jZGVmaW5lIENGR19TRFJBTTBfUkZEQwkJMHgwMDAwMDIwOQotI2RlZmluZSBDRkdfU0RSQU0wX1JEQ0MJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9ETENSCQkweDAzMDAwMGE1Ci0jZGVmaW5lIENGR19TRFJBTTBfQ0xLVFIJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX1dSRFRSCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TRFRSMQkweDgwMjAxMDAwCi0jZGVmaW5lIENGR19TRFJBTTBfU0RUUjIJMHgzMjIwNDIzMgotI2RlZmluZSBDRkdfU0RSQU0wX1NEVFIzCTB4MDgwYjBkMWEKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9NTU9ERQkweDAwMDAwNDQyCi0jZGVmaW5lIENGR19TRFJBTTBfTUVNT0RFCTB4MDAwMDA0MDQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfTUIyQ0YJU0RSQU1fUlhCQVNfU0RCRV9ESVNBQkxFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01CM0NGCVNEUkFNX1JYQkFTX1NEQkVfRElTQUJMRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NQ09QVDEJMHgwNDMyMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NQ09QVDIJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NT0RUMAkweDAxODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01PRFQxCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfQ09EVAkJMHgwMDgwZjgzNworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9SVFIJCTB4MDYxODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjAJMHhhODM4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMQkweDgxOTAwNDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFIyCTB4ODEwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjMJMHg4MTAzMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSNAkweDgxMDEwNDA0CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI1CTB4ODEwMDA1NDIKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjYJMHg4MTkwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSNwkweDhEMDgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0lOSVRQTFI4CTB4OEQwODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfSU5JVFBMUjkJMHg4RDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTAJMHg4RDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTEJMHg4MTAwMDQ0MgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTIJMHg4MTAxMDc4MAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTMJMHg4MTAxMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTQJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9JTklUUExSMTUJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9SUURDCQkweDgwMDAwMDM4CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1JGREMJCTB4MDAwMDAyMDkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfUkRDQwkJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9ETENSCQkweDAzMDAwMGE1CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0NMS1RSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfV1JEVFIJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TRFRSMQkweDgwMjAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1NEVFIyCTB4MzIyMDQyMzIKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfU0RUUjMJMHgwODBiMGQxYQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9NTU9ERQkweDAwMDAwNDQyCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX01FTU9ERQkweDAwMDAwNDA0CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk2CS8qIDI0QzAyIHJlcXVpcmVzIDVtcyBkZWxheSAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTIJLyogSTJDIGJvb3QgRUVQUk9NICgyNEMwMkJOKQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNgkvKiAyNEMwMiByZXF1aXJlcyA1bXMgZGVsYXkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MgkvKiBJMkMgYm9vdCBFRVBST00gKDI0QzAyQk4pCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAKIC8qIFN0YW5kYXJkIERUVCBzZW5zb3IgY29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBDT05GSUdfRFRUX0RTMTc3NQkxCiAjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwl7IDAgfQotI2RlZmluZSBDRkdfSTJDX0RUVF9BRERSCTB4NDgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRFRUX0FERFIJMHg0OAogCiAvKiBSVEMgY29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBDT05GSUdfUlRDX1gxMjA1CTEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDZmCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NmYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXRoZXJuZXQKQEAgLTI1OSwyMCArMjU5LDIwIEBACiAjZGVmaW5lIENPTkZJR19DTURfU05UUAogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9DQUNIRQkJfCBcCi0JCQkJIENGR19QT1NUX0NQVQkJfCBcCi0JCQkJIENGR19QT1NUX0VUSEVSCQl8IFwKLQkJCQkgQ0ZHX1BPU1RfSTJDCQl8IFwKLQkJCQkgQ0ZHX1BPU1RfTUVNT1JZCXwgXAotCQkJCSBDRkdfUE9TVF9VQVJUKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9DQUNIRQkJfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfRVRIRVIJCXwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDCQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX01FTU9SWQl8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1VBUlQpCiAKIC8qIERlZmluZSBoZXJlIHRoZSBiYXNlLWFkZHJlc3NlcyBvZiB0aGUgVUFSVHMgdG8gdGVzdCBpbiBQT1NUICovCi0jZGVmaW5lIENGR19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0UsIFVBUlQxX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFLCBVQVJUMV9CQVNFfQogCiAjZGVmaW5lIENPTkZJR19MT0dCVUZGRVIKLSNkZWZpbmUgQ0ZHX1BPU1RfQ0FDSEVfQUREUgkweDAwODAwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRV9BRERSCTB4MDA4MDAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0yODUsNDAgKzI4NSw0MCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJZSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfTUVNQkFTRQkweDkwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJRV9NRU1TSVpFCTB4MDgwMDAwMDAgICAgICAvKiAxMjggTWVnLCBzbWFsbGVzdCBpbmNyIHBlciBwb3J0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1CQVNFCTB4OTAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1TSVpFCTB4MDgwMDAwMDAgICAgICAvKiAxMjggTWVnLCBzbWFsbGVzdCBpbmNyIHBlciBwb3J0ICovCiAKLSNkZWZpbmUJQ0ZHX1BDSUUwX0NGR0JBU0UJMHhhMDAwMDAwMCAgICAgIC8qIHJlbW90ZSBhY2Nlc3MgKi8KLSNkZWZpbmUJQ0ZHX1BDSUUwX1hDRkdCQVNFCTB4YjAwMDAwMDAgICAgICAvKiBsb2NhbCBhY2Nlc3MgKi8KLSNkZWZpbmUJQ0ZHX1BDSUUwX0NGR01BU0sJMHhlMDAwMDAwMSAgICAgIC8qIDUxMiBNZWcgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMF9DRkdCQVNFCTB4YTAwMDAwMDAgICAgICAvKiByZW1vdGUgYWNjZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTBfWENGR0JBU0UJMHhiMDAwMDAwMCAgICAgIC8qIGxvY2FsIGFjY2VzcyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSUUwX0NGR01BU0sJMHhlMDAwMDAwMSAgICAgIC8qIDUxMiBNZWcgKi8KIAotI2RlZmluZQlDRkdfUENJRTFfQ0ZHQkFTRQkweGMwMDAwMDAwICAgICAgLyogcmVtb3RlIGFjY2VzcyAqLwotI2RlZmluZQlDRkdfUENJRTFfWENGR0JBU0UJMHhkMDAwMDAwMCAgICAgIC8qIGxvY2FsIGFjY2VzcyAqLwotI2RlZmluZQlDRkdfUENJRTFfQ0ZHTUFTSwkweGUwMDAwMDAxICAgICAgLyogNTEyIE1lZyAqLworI2RlZmluZQlDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UJMHhjMDAwMDAwMCAgICAgIC8qIHJlbW90ZSBhY2Nlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRQkweGQwMDAwMDAwICAgICAgLyogbG9jYWwgYWNjZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfUENJRTFfQ0ZHTUFTSwkweGUwMDAwMDAxICAgICAgLyogNTEyIE1lZyAqLwogCi0jZGVmaW5lCUNGR19QQ0lFMF9VVExCQVNFCTB4ZWY1MDIwMDAKLSNkZWZpbmUJQ0ZHX1BDSUUxX1VUTEJBU0UJMHhlZjUwMzAwMAorI2RlZmluZQlDT05GSUdfU1lTX1BDSUUwX1VUTEJBU0UJMHhlZjUwMjAwMAorI2RlZmluZQlDT05GSUdfU1lTX1BDSUUxX1VUTEJBU0UJMHhlZjUwMzAwMAogCiAvKiBiYXNlIGFkZHJlc3Mgb2YgaW5ib3VuZCBQQ0llIHdpbmRvdyAqLwotI2RlZmluZSBDRkdfUENJRV9JTkJPVU5EX0JBU0UJMHgwMDAwMDAwMDAwMDAwMDAwVUxMCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9JTkJPVU5EX0JBU0UJMHgwMDAwMDAwMDAwMDAwMDAwVUxMCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogTWVtb3J5IEJhbmsgMCAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwODAzMzcwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwODAzMzcwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4ZGEwMDApCiAKIC8qIE1lbW9yeSBCYW5rIDIgKENQTEQpIGluaXRpYWxpemF0aW9uCQkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUCAgICAgICAgICAgMHg5NDAwQzgwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgICAgICAgICAweEYwMDE4MDAwIC8qICBCQVM9MHg4MDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQICAgICAgICAgICAweDk0MDBDODAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkNSICAgICAgICAgICAweEYwMDE4MDAwIC8qICBCQVM9MHg4MDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0CSovCiAKLSNkZWZpbmUgQ0ZHX0VCQ19DRkcJCTB4N0ZDMDAwMDAgLyogIEVCQzBfQ0ZHICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX0NGRwkJMHg3RkMwMDAwMCAvKiAgRUJDMF9DRkcgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogR1BJTyBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHXzR4eF9HUElPX1RBQkxFIHsgLyoJICBPdXQJCSAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIJQWx0ZXJuYXRlMyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKIHsJCQkJCQkJCQkJCVwKIC8qIEdQSU8gQ29yZSAwICovCQkJCQkJCQkJXAoge0dQSU8wX0JBU0UsIEdQSU9fSU4sICBHUElPX1NFTCwgIEdQSU9fT1VUXzB9LCAvKiBHUElPMAlFQkNfREFUQV9QQVIoMCkJCQkqLwlcCkBAIC0zNTYsOCArMzU2LDggQEAKIH0JCQkJCQkJCQkJCQlcCiB9CiAKLSNkZWZpbmUgQ0ZHX0dQSU9fUENJRV9SU1QJMjMKLSNkZWZpbmUgQ0ZHX0dQSU9fUENJRV9DTEtSRVEJMjcKLSNkZWZpbmUgQ0ZHX0dQSU9fUENJRV9XQUtFCTI4CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QQ0lFX1JTVAkyMworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJRV9DTEtSRVEJMjcKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX1BDSUVfV0FLRQkyOAogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21jYzIwMC5oIGIvaW5jbHVkZS9jb25maWdzL21jYzIwMC5oCmluZGV4IGMzYTYwMGUuLmU2NGNjMzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tY2MyMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbWNjMjAwLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzV4eHgJCTEJLyogVGhpcyBpcyBhbiBNUEM1eHh4IENQVQkJKi8KICNkZWZpbmUgQ09ORklHX01DQzIwMAkJMQkvKiAuLi4gb24gTUNDMjAwIGJvYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzM01IegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzTUh6CQkqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgogCkBAIC04MSw3ICs4MSw3IEBACiAjZXJyb3IgIlNlbGVjdCBvbmx5IG9uZSBjb25zb2xlIGRldmljZSEiCiAjZW5kaWYKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEKIApAQCAtMTMxLDExICsxMzEsMTEgQEAKICNkZWZpbmUgTUtfU1RSKHgpCQlYTUtfU1RSKHgpCiAKICNpZmRlZiBDT05GSUdfUFJTMjAwCi0jIGRlZmluZSBDRkdfX0JPQVJETkFNRQkJInByczIwMCIKLSMgZGVmaW5lIENGR19fTElOVVhfQ09OU09MRQkidHR5UzAiCisjIGRlZmluZSBDT05GSUdfU1lTX19CT0FSRE5BTUUJCSJwcnMyMDAiCisjIGRlZmluZSBDT05GSUdfU1lTX19MSU5VWF9DT05TT0xFCSJ0dHlTMCIKICNlbHNlCi0jIGRlZmluZSBDRkdfX0JPQVJETkFNRQkJIm1jYzIwMCIKLSMgZGVmaW5lIENGR19fTElOVVhfQ09OU09MRQkidHR5RVU1IgorIyBkZWZpbmUgQ09ORklHX1NZU19fQk9BUkROQU1FCQkibWNjMjAwIgorIyBkZWZpbmUgQ09ORklHX1NZU19fTElOVVhfQ09OU09MRQkidHR5RVU1IgogI2VuZGlmCiAKIC8qIE5ldHdvcmsgKi8KQEAgLTE0OCw3ICsxNDgsNyBAQAogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTCQkJCQlcCiAJInVib290dmVyPSIgVV9CT09UX1ZFUlNJT04gIlwwIgkJCQkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQkJCQlcCi0JImhvc3RuYW1lPSIgQ0ZHX19CT0FSRE5BTUUgIlwwIgkJCQkJXAorCSJob3N0bmFtZT0iIENPTkZJR19TWVNfX0JPQVJETkFNRSAiXDAiCQkJCQlcCiAJIm5mc2FyZ3M9c2V0ZW52IGJvb3RhcmdzIHJvb3Q9L2Rldi9uZnMgcncgIgkJCVwKIAkJIm5mc3Jvb3Q9JHtzZXJ2ZXJpcH06JHtyb290cGF0aH1cMCIJCQlcCiAJInJhbWFyZ3M9c2V0ZW52IGJvb3RhcmdzIHJvb3Q9L2Rldi9tdGRibG9jazIgIgkJCVwKQEAgLTE2NSwxMCArMTY1LDEwIEBACiAJCSJib290bSAke2tlcm5lbF9hZGRyfSAke3JhbWRpc2tfYWRkcn1cMCIJCVwKIAkibmV0X25mcz10ZnRwIDIwMDAwMCAke2Jvb3RmaWxlfTsiCQkJCVwKIAkJInJ1biBuZnNhcmdzIGFkZGlwIGFkZGNvbnM7Ym9vdG1cMCIJCQlcCi0JImNvbnNvbGU9IiBDRkdfX0xJTlVYX0NPTlNPTEUgIlwwIgkJCQlcCisJImNvbnNvbGU9IiBDT05GSUdfU1lTX19MSU5VWF9DT05TT0xFICJcMCIJCQkJXAogCSJyb290cGF0aD0vb3B0L2VsZGsvcHBjXzZ4eFwwIgkJCQkJXAotCSJib290ZmlsZT0vdGZ0cGJvb3QvIiBDRkdfX0JPQVJETkFNRSAiL3VJbWFnZVwwIgkJXAotCSJsb2FkPXRmdHAgMjAwMDAwIC90ZnRwYm9vdC8iIENGR19fQk9BUkROQU1FICIvdS1ib290LmJpblwwIglcCisJImJvb3RmaWxlPS90ZnRwYm9vdC8iIENPTkZJR19TWVNfX0JPQVJETkFNRSAiL3VJbWFnZVwwIgkJXAorCSJsb2FkPXRmdHAgMjAwMDAwIC90ZnRwYm9vdC8iIENPTkZJR19TWVNfX0JPQVJETkFNRSAiL3UtYm9vdC5iaW5cMCIJXAogCSJ0ZXh0X2Jhc2U9IiBNS19TVFIoVEVYVF9CQVNFKSAiXDAiCQkJCVwKIAkia2VybmVsX2FkZHI9MHhGQzBDMDAwMFwwIgkJCQkJXAogCSJ1cGRhdGU9cHJvdGVjdCBvZmYgJHt0ZXh0X2Jhc2V9ICske2ZpbGVzaXplfTsiCQkJXApAQCAtMTgxLDIyICsxODEsMjIgQEAKIAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24gKDgsMTYgb3IgMzIgTUIpCkBAIC0yMDcsMzAgKzIwNywzMCBAQAogICoJCSAweEZGMDAwMDAwIGZvciAxNiBNQgogICoJCSAweEZGODAwMDAwIGZvciAgOCBNQgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZjMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDQwMDAwMDAKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCQkvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uCQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEJLyogdXNlIEZMQVNIIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIzOSwzNCArMjM5LDM0IEBACiAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBhbGxvdyBtb2RpZmljYXRpb24gb2YgdmVuZG9yIHBhcmFtcyAqLwogCi0jaWYgVEVYVF9CQVNFID09IENGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19MT1dCT09UCTEKKyNpZiBURVhUX0JBU0UgPT0gQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkxCiAjZW5kaWYKIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgNTEyIGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI4OCw3ICsyODgsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfTENEKQogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgkxCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYJMQogI2RlZmluZSBMQ0RfQlBQCQkJTENEX01PTk9DSFJPTUUKICNlbmRpZgogCkBAIC0yOTksNjQgKzI5OSw2NCBAQAogLyogMHg5MDAwMDAwNCA9IDY0TUIgU0RSQU0gKi8KICNpZiBkZWZpbmVkKENPTkZJR19MQ0QpCiAvKiBzZXQgUFNDMiBpbiBVQVJUIG1vZGUgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDAwMDAwMDQ0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDAwMDAwNDQKICNlbHNlCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDAwMDAwMDA0CiAjZW5kaWYKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRmYjAwCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNGZiMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogLyogUXVhZCBVQVJUIEAweDgwMDAwMDAwIChNQkFSIGlzIHJlbG9jYXRlZCB0byAweEYwMDAwMDAwKSAqLwotI2RlZmluZSBDRkdfQ1MyX1NUQVJUCQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19DUzJfU0laRQkJMHgwMDAwMTAwMAotI2RlZmluZSBDRkdfQ1MyX0NGRwkJMHgxZDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9TVEFSVAkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9TSVpFCQkweDAwMDAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NGRwkJMHgxZDMwMAogCiAvKiBTZWNvbmQgUXVhZCBVQVJUIEAweDgwMDEwMDAwICovCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCTB4ODAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9TSVpFCQkweDAwMDAxMDAwCi0jZGVmaW5lIENGR19DUzFfQ0ZHCQkweDFkMzAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkweDgwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NJWkUJCTB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfQ0ZHCQkweDFkMzAwCiAKIC8qIExlaWNhIC0gYnVpbGQgcmV2aXNpb24gcmVzaXN0b3JzICovCiAvKgotI2RlZmluZSBDRkdfQ1MzX1NUQVJUCQkweDgwMDIwMDAwCi0jZGVmaW5lIENGR19DUzNfU0laRQkJMHgwMDAwMDAwNAotI2RlZmluZSBDRkdfQ1MzX0NGRwkJMHgxZDMwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TVEFSVAkJMHg4MDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TSVpFCQkweDAwMDAwMDA0CisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NGRwkJMHgxZDMwMAogKi8KIAogLyoKQEAgLTM2NCwxMCArMzY0LDEwIEBACiAgKiBjb25zb2xlLiBJZiB1bmRlZmluZWQgLSBQU0MgY29uc29sZQogICogd2lsIGJlIGRlZmF1bHQKICAqLwotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogLyoKICAqIFFVQVJUIEV4cGFuZGVycyBzdXBwb3J0CkBAIC0zNzYsOCArMzc2LDggQEAKIC8qCiAgKiBXZSdsbCB1c2UgTlMxNjU1MCBjaGlwIHJvdXRpbmVzLAogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAkJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCTEKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogLyoKICAqICBUbyBhY2hpZXZlIG5lY2Vzc2FyeSBvZmZzZXQgb24gU0MxNkM1NTQKQEAgLTM4Niw3ICszODYsNyBAQAogICogc2hvdWxkIGJlIDQsIGJlY2F1c2UgQTAtQTIgcGlucyBhcmUgY29ubmVjdGVkCiAgKiB0byBEQTItREE0IGFkZHJlc3MgYnVzIGxpbmVzLgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTQKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTQKIC8qCiAgKiBMb2NhbFBsdXMgQnVzIGFscmVhZHkgaW5pdGVkIGluIGNwdV9pbml0X2YoKSwKICAqIHNvIGNhbiB3b3JrIHdpdGggUVVBUlQncyBjaGlwIHNlbGVjdHMuCkBAIC0zOTQsOSArMzk0LDkgQEAKICAqIEEzLUE0IChEQTUtREE2KSBsaW5lcy4KICAqLwogI2lmIChDT05GSUdfUVVBUlRfQ09OU09MRSA+IDApICYmIChDT05GSUdfUVVBUlRfQ09OU09MRSA8IDUpICYmICFkZWZpbmVkKENPTkZJR19QUlMyMDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DUzJfU1RBUlQgfCAoQ09ORklHX1FVQVJUX0NPTlNPTEUgLSAxKTw8NSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfQ1MyX1NUQVJUIHwgKENPTkZJR19RVUFSVF9DT05TT0xFIC0gMSk8PDUpCiAjZWxpZiAoQ09ORklHX1FVQVJUX0NPTlNPTEUgPiA0KSAmJiAoQ09ORklHX1FVQVJUX0NPTlNPTEUgPCA5KQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ1MxX1NUQVJUIHwgKENPTkZJR19RVUFSVF9DT05TT0xFIC0gNSk8PDUpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NTMV9TVEFSVCB8IChDT05GSUdfUVVBUlRfQ09OU09MRSAtIDUpPDw1KQogI2VsaWYKICNlcnJvciAiV3JvbmcgUVVBUlQgZXhwYW5kZXIgbnVtYmVyLiIKICNlbmRpZgpAQCAtNDA1LDcgKzQwNSw3IEBACiAgKiBTQzE2QzU1NCBjaGlwJ3MgZXh0ZXJuYWwgY3J5c3RhbCBvc2NpbGxhdG9yIGZyZXF1ZW5jeQogICogaXMgNy4zNzI4IE1IegogICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJNzM3MjgwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQk3MzcyODAwCiAjZW5kaWYgLyogQ09ORklHX1FVQVJUX0NPTlNPTEUgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFVTQiBzdHVmZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21jdTI1LmggYi9pbmNsdWRlL2NvbmZpZ3MvbWN1MjUuaAppbmRleCA4MDAxMWViLi5lNDQ4OTY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWN1MjUuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbWN1MjUuaApAQCAtNDUsNDYgKzQ1LDQ2IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgzMjAgKiAxMDI0KSAvKiBSZXNlcnZlIDMyMCBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzIwICogMTAyNCkgLyogUmVzZXJ2ZSAzMjAga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpICovCiAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAkvKiBfbXVzdF8gYmUgMAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmZmODAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIF9tdXN0XyBiZSAwCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4ZmZmODAwMDAJLyogc3RhcnQgb2YgRkxBU0gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCiAKIC8qIC4uLiB3aXRoIG9uLWNoaXAgbWVtb3J5IGhlcmUgKDRLQnl0ZXMpICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjQwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgwMDAwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgwMDAwMTAwMAogLyogRG8gbm90IHNldCB1cCBsb2NrZWQgZGNhY2hlIGFzIGluaXQgcmFtLiAqLwotI3VuZGVmIENGR19JTklUX0RDQUNIRV9DUworI3VuZGVmIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MKIAogLyogVXNlIHRoZSBPbi1DaGlwLU1lbW9yeSAoT0NNKSBhcyBhIHRlbXBvcmFyeSBzdGFjayBmb3IgdGhlIHN0YXJ0dXAgY29kZS4gKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTQkxCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIJLyogT0NNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkvKiBPQ00JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyoKLSAqIElmIENGR19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgotICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENGR19CQVNFX0JBVUQgdmFsdWUuCisgKiBJZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgorICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENPTkZJR19TWVNfQkFTRV9CQVVEIHZhbHVlLgogICogVGhlIExpbnV4IEJBU0VfQkFVRCBkZWZpbmUgc2hvdWxkIG1hdGNoIHRoaXMgY29uZmlndXJhdGlvbi4KICAqICAgIGJhc2VCYXVkID0gY3B1Q2xvY2svKHVhcnREaXZpc29yKjE2KQotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAogICogc2V0IExpbnV4IEJBU0VfQkFVRCB0byA0MDMyMDAuCiAgKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX1NFUklBTF9NVUxUSSAgMQogLyogbmVlZGVkIHRvIGJlIGFibGUgdG8gZGVmaW5lIENPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTyAqLwotI3VuZGVmCUNGR180MDVfVUFSVF9FUlJBVEFfNTkJICAgICAgIC8qIDQwNUdQL0NSIFJldi4gRCBzaWxpY29uICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJICAgIDY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5CSAgICAgICAvKiA0MDVHUC9DUiBSZXYuIEQgc2lsaWNvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkgICAgNjkxMjAwCiAKIC8qIFNpemUgKGJ5dGVzKSBvZiBpbnRlcnJ1cHQgZHJpdmVuIHNlcmlhbCBwb3J0IGJ1ZmZlci4KICAqIFNldCB0byAwIHRvIHVzZSBwb2xsaW5nIGluc3RlYWQgb2YgaW50ZXJydXB0cy4KQEAgLTk2LDcgKzk2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCiAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCQkJCQlcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwNCwxOCArMTA0LDE4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAvKiBVc2UgY29tbW9uIENGSSBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgogLyogYm9hcmQgcHJvdmlkZXMgaXRzIG93biBmbGFzaF9pbml0IGNvZGUgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9MRUdBQ1kJCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzhCSVQKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xFR0FDWV81MTJLeDggMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAkJRkxBU0hfQ0ZJXzhCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MRUdBQ1lfNTEyS3g4IDEKIAogLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEVudmlyb25tZW50CkBAIC0xMzUsNyArMTM1LDcgQEAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAvKiBQdXQgdGhlIGVudmlyb25tZW50IGluIEZsYXNoICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAgLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKCgtQ0ZHX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DT05GSUdfU1lTX01PTklUT1JfTEVOKS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQk4KjEwMjQJLyogOCBLQiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xNDcsMjIgKzE0NywyMiBAQAogICogSTJDIHN0dWZmIGZvciBhIEFUTUVMIEFUMjRDMTYgKDJrQiBob2xkaW5nIEVOViwgd2UgYXJlIHVzaW5nIHRoZQogICogdGhlIGZpcnN0IGludGVybmFsIEkyQyBjb250cm9sbGVyIG9mIHRoZSBQUEM0NDBFUHgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19TUERfQlVTX05VTQkJMAorI2RlZmluZSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCQkwCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qIFRoaXMgaXMgdGhlIDdiaXQgYWRkcmVzcyBvZiB0aGUgZGV2aWNlLCBub3QgaW5jbHVkaW5nIFAuICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIgMHg1MAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSIDB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKIAogLyogVGhlIEVFUFJPTSBjYW4gZG8gMTZieXRlICggMSA8PCA0ICkgcGFnZSB3cml0ZXMuICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0Ci0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAotI3VuZGVmIENGR19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyA0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyN1bmRlZiBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCiAKIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkiZWNobzsiCQkJCQkJXApAQCAtMTc4LDcgKzE3OCw3IEBACiAjZGVmaW5lIENPTkZJR19PVkVSV1JJVEVfRVRIQUREUl9PTkNFCiAjZGVmaW5lIENPTkZJR19TRVJWRVJJUAkJMTcyLjI1LjEuMwogCi0jZGVmaW5lIENGR19URlRQX0xPQURBRERSIDB4MDEwMDAwMDAgLyogQDE2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9MT0FEQUREUiAweDAxMDAwMDAwIC8qIEAxNiBNQiAqLwogCiAjZGVmaW5lCUNPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCQkJXAogCSJuZXRkZXY9ZXRoMFwwIgkJCQkJCQlcCkBAIC0yMDgsNyArMjA4LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CS8qIGF1dG9ib290IGFmdGVyIDUgc2Vjb25kcwkqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkxCS8qIFBIWSBhZGRyZXNzCQkJKi8KQEAgLTIxNiw3ICsyMTYsNyBAQAogI2RlZmluZSBDT05GSUdfUEhZX1JFU0VUICAgICAgICAxCS8qIHJlc2V0IHBoeSB1cG9uIHN0YXJ0dXAgKi8KIAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYgLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjciAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYgLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjciAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMjUyLDQyICsyNTIsNDIgQEAKICNkZWZpbmUgU1BEX0VFUFJPTV9BRERSRVNTICAgICAgMHg1MAogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9VQVJUCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9JMkMJICAgfCBcCi0JCQkJIENGR19QT1NUX0NBQ0hFCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9FVEhFUgkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfU1BSKQorI2RlZmluZSBDT05GSUdfUE9TVAkJKENPTkZJR19TWVNfUE9TVF9NRU1PUlkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1VBUlQJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DQUNIRQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0VUSEVSCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfU1BSKQogCi0jZGVmaW5lIENGR19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0V9Ci0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQogI3VuZGVmICBDT05GSUdfTE9HQlVGRkVSCi0jZGVmaW5lIENGR19QT1NUX0NBQ0hFX0FERFIJMHgwMDgwMDAwMCAvKiBmcmVlIHZpcnR1YWwgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQ0FDSEVfQUREUgkweDAwODAwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisJI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2Vsc2UKLQkjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTI5Nyw1NSArMjk3LDU1IEBACiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCiAKLSNkZWZpbmUgQ0ZHX0VCQ19DRkcgICAgICAgICAgICAweDk4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX0NGRyAgICAgICAgICAgIDB4OTg0MDAwMDAKIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAyMDA1NDAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCTB4RkZGMTgwMDAgIC8qIEJBUz0weEZGRixCUz0xTUIsQlU9Ui9XLEJXPThiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMjAwNTQwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkYxODAwMCAgLyogQkFTPTB4RkZGLEJTPTFNQixCVT1SL1csQlc9OGJpdCovCiAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUAkJMHgwMzA0MTIwMAotI2RlZmluZSBDRkdfRUJDX1BCMUNSCQkweDcwMDlBMDAwICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDMwNDEyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCTB4NzAwOUEwMDAgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDE4NDUyMDB1ICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHg3QTA5QTAwMHUKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDE4NDUyMDB1ICAvKiBCQVM9LEJTPU1CLEJVPVIvVyxCVz1iaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCTB4N0EwOUEwMDB1CiAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTg0NTIwMHUgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdCAqLwotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkweDdCMDlBMDAwdQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTg0NTIwMHUgIC8qIEJBUz0sQlM9TUIsQlU9Ui9XLEJXPWJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHg3QjA5QTAwMHUKIAotI2RlZmluZSBDRkdfRUJDX1BCNEFQCQkweDAxODQ1MjAwdSAgLyogQkFTPSxCUz1NQixCVT1SL1csQlc9Yml0ICovCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IJCTB4N0MwOUEwMDB1CisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDAxODQ1MjAwdSAgLyogQkFTPSxCUz1NQixCVT1SL1csQlc9Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkweDdDMDlBMDAwdQogCi0jZGVmaW5lIENGR19FQkNfUEI1QVAJCTB4MDA4MDAyMDB1Ci0jZGVmaW5lIENGR19FQkNfUEI1Q1IJCTB4N0Q4MUEwMDB1CisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNUFQCQkweDAwODAwMjAwdQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjVDUgkJMHg3RDgxQTAwMHUKIAotI2RlZmluZSBDRkdfRUJDX1BCNkFQCQkweDAxMDQwMjAwdQotI2RlZmluZSBDRkdfRUJDX1BCNkNSCQkweDdEOTFBMDAwdQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjZBUAkJMHgwMTA0MDIwMHUKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI2Q1IJCTB4N0Q5MUEwMDB1CiAKLSNkZWZpbmUgQ0ZHX0dQSU8wX09SCQkweDA4N0ZGRkZGICAvKiBHUElPIHZhbHVlICovCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4N0ZGRjgwMDAgIC8qIEdQSU8gdmFsdWUgKi8KLSNkZWZpbmUgQ0ZHX0dQSU8wX09EUgkJMHhGRkZGMDAwMCAgLyogR1BJTyB2YWx1ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09SCQkweDA4N0ZGRkZGICAvKiBHUElPIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweDdGRkY4MDAwICAvKiBHUElPIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT0RSCQkweEZGRkYwMDAwICAvKiBHUElPIHZhbHVlICovCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKICAqCiAgKiBCUjAvMSBhbmQgT1IwLzEgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiBGTEFTSCBiYW5rICMwCSovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTQkwCQkvKiBGTEFTSCBiYW5rICMxCSovCiAKIAogLyogQ29uZmlndXJhdGlvbiBQb3J0IGxvY2F0aW9uICovCiAjZGVmaW5lIENPTkZJR19QT1JUX0FERFIJMHhGMDAwMDUwMAogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUiAgICAgICAgICAgICAgICAgLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlciAgICAqLwotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIgICAgICAgICAgICAgICAgIC8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIgICAgKi8KKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21lY3A1MjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvbWVjcDUyMDAuaAppbmRleCA4YjEzZmMwLi43ZWY1YmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWVjcDUyMDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbWVjcDUyMDAuaApAQCAtNDUsNyArNDUsNyBAQAogI2RlZmluZSBDT05GSUdfTUVDUDUyMDAJCTEJLyogLi4uIG9uIE1FQ1A1MjAwICBib2FyZCAqLwogI2RlZmluZSBDT05GSUdfTVBDNTIwMF9ERFIgICAgICAxICAgICAgIC8qIC4uLiB1c2UgRERSIFJBTSAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCkBAIC02MSw3ICs2MSw3IEBACiAjZWxzZQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIAogI2lmZGVmIENPTkZJR19NUEM1MjAwCS8qIE1QQzUxMDAgUENJIGlzIG5vdCBzdXBwb3J0ZWQgeWV0LiAqLwpAQCAtNzAsNyArNzAsNyBAQAogI2lmIDAgLyogdGVzdC1vbmx5ICEhISAqLwogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNkZWZpbmUgQ09ORklHX05TODM4MlgJCTEKICNlbmRpZgogCkBAIC0xMTMsMTIgKzExMywxMiBAQAogCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkYwMDAwMDApCQkvKiBCb290IGxvdyB3aXRoIDE2IE1CIEZsYXNoICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCi0jICAgZGVmaW5lIENGR19MT1dCT09UMTYJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UMTYJMQogI2VuZGlmCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZGODAwMDAwKQkJLyogQm9vdCBsb3cgd2l0aCAgOCBNQiBGbGFzaCAqLwotIyAgIGRlZmluZSBDRkdfTE9XQk9PVAkJMQotIyAgIGRlZmluZSBDRkdfTE9XQk9PVDA4CTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVDA4CTEKICNlbmRpZgogCiAvKgpAQCAtMTU2LDM2ICsxNTYsMzYgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSN1bmRlZiBDRkdfSVBCU1BFRURfMTMzCQkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0lQQlNQRUVEXzEzMwkJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAjZW5kaWYKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTg2MDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODYwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCQkxCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAwNDAwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDNFMDAwMCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZDMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwNDAwMDAwCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAzRTAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykgICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKSAgKi8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0yMDQsNDAgKzIwNCw0MCBAQAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkgICAvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkgICAvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkgICAvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJICAgLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCSAgIC8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCQkqLwogI2lmIDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAgICAgICAvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0lOQ1JFTUVOVAkweDAwNDAwMDAwIC8qIHNpemUgb2YgIGZsYXNoIGJhbmsJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICB7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JMQkgICAvKiBzaG93IGlmIGJhbmsgaXMgZW1wdHkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTB4MDA0MDAwMDAgLyogc2l6ZSBvZiAgZmxhc2ggYmFuawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUICB7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkxCSAgIC8qIHNob3cgaWYgYmFuayBpcyBlbXB0eQkJKi8KIAogCiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjU0LDYyICsyNTQsNjIgQEAKIC8qCiAgKiBHUElPIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MDEwNTI0NDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgwMTA1MjQ0NAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIJMHgwMDAwMDAwMAkvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA4NWQwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA4NWQwMAogCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQkweGZkMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHgwMDAxMDAwMAotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHgxMDEwMTQxMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TVEFSVAkJMHhmZDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgxMDEwMTQxMAogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKQEAgLTMzMSwyMyArMzMxLDIzIEBACiAjZGVmaW5lCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKENGR19BVEFfREFUQV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKIAogLyogSW50ZXJ2YWwgYmV0d2VlbiByZWdpc3RlcnMJCSovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQk0CisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJNAogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21nY29nZS5oIGIvaW5jbHVkZS9jb25maWdzL21nY29nZS5oCmluZGV4IDIzYWYzZWMuLmRjOWIzMTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tZ2NvZ2UuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbWdjb2dlLmgKQEAgLTY2LDkgKzY2LDkgQEAKICN1bmRlZglDT05GSUdfRVRIRVJfTk9ORQkJLyogTm8gZXh0ZXJuYWwgRXRoZXJuZXQgICAqLwogCiAjZGVmaW5lIENPTkZJR19FVEhFUl9JTkRFWAk0Ci0jZGVmaW5lIENGR19TQ0NfVE9VVF9MT09QCTEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDX1RPVVRfTE9PUAkxMDAwMDAwMAogCi0jIGRlZmluZSBDRkdfQ01YU0NSX1ZBTFVFCShDTVhTQ1JfUlM0Q1NfQ0xLNyB8IENNWFNDUl9UUzRDU19DTEs4KQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhTQ1JfVkFMVUUJKENNWFNDUl9SUzRDU19DTEs3IHwgQ01YU0NSX1RTNENTX0NMSzgpCiAKICNpZm5kZWYgQ09ORklHXzgyNjBfQ0xLSU4KICNkZWZpbmUgQ09ORklHXzgyNjBfQ0xLSU4JNjYwMDAwMDAJLyogaW4gSHogKi8KQEAgLTc2LDEyICs3NiwxNyBAQAogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKKyNkZWZpbmUgQ09ORklHX0JPT1RDT1VOVF9MSU1JVAorCiAvKgogICogQ29tbWFuZCBsaW5lIGNvbmZpZ3VyYXRpb24uCiAgKi8KICNpbmNsdWRlIDxjb25maWdfY21kX2RlZmF1bHQuaD4KIAorI2RlZmluZSBDT05GSUdfQ01EX0RUVAogI2RlZmluZSBDT05GSUdfQ01EX0VDSE8KKyNkZWZpbmUgQ09ORklHX0NNRF9FRVBST00KKyNkZWZpbmUgQ09ORklHX0NNRF9JMkMKICNkZWZpbmUgQ09ORklHX0NNRF9JTU1BUAogI2RlZmluZSBDT05GSUdfQ01EX01JSQogI2RlZmluZSBDT05GSUdfQ01EX1BJTkcKQEAgLTEyNywxMDIgKzEzMiwxNTQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX0hVU0hfSU5JVF9WQVIJMQogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMzIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0VfMQkweDUwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFXzEJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFXzEJMHg1MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkVfMQk2NAogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFXzEgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRV8xIH0KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2S0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTZLQiBmb3IgTW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4KKworLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9PRkZTRVQgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkJKENPTkZJR19FTlZfU0laRSkKICNlbmRpZiAvKiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICovCiAKKy8qIGVuYWJsZSBJMkMgYW5kIHNlbGVjdCB0aGUgaGFyZHdhcmUvc29mdHdhcmUgZHJpdmVyICovCisjdW5kZWYJQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLworI2RlZmluZQlDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk1MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKworLyoKKyAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCisgKi8KKwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBJMkNfUE9SVAkzCQkvKiBQb3J0IEE9MCwgQj0xLCBDPTIsIEQ9MyAqLworI2RlZmluZSBJMkNfQUNUSVZFCShpb3AtPnBkaXIgfD0gIDB4MDAwMTAwMDApCisjZGVmaW5lIEkyQ19UUklTVEFURQkoaW9wLT5wZGlyICY9IH4weDAwMDEwMDAwKQorI2RlZmluZSBJMkNfUkVBRAkoKGlvcC0+cGRhdCAmIDB4MDAwMTAwMDApICE9IDApCisjZGVmaW5lIEkyQ19TREEoYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgMHgwMDAxMDAwMDsgXAorCQkJZWxzZSAgICBpb3AtPnBkYXQgJj0gfjB4MDAwMTAwMDAKKyNkZWZpbmUgSTJDX1NDTChiaXQpCWlmKGJpdCkgaW9wLT5wZGF0IHw9ICAweDAwMDIwMDAwOyBcCisJCQllbHNlICAgIGlvcC0+cGRhdCAmPSB+MHgwMDAyMDAwMAorI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDUpCS8qIDEvNCBJMkMgY2xvY2sgZHVyYXRpb24gKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUwkxCisjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9JMkNfQlVTCQkyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQJMQorI2RlZmluZSBDT05GSUdfSTJDX01VWAkJMQorCisvKiBFRXByb20gc3VwcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9FTkFCTEUKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorCisvKiBTdXBwb3J0IHRoZSBJVk0gRUVwcm9tICovCisjZGVmaW5lCUNPTkZJR19TWVNfSVZNX0VFUFJPTV9BRFIJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0lWTV9FRVBST01fTUFYX0xFTgkweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0lWTV9FRVBST01fUEFHRV9MRU4JMHgxMDAKKworLyogSTJDIFNZU01PTiAoTE03NSwgQUQ3NDE0IGlzIGFsbW9zdCBjb21wYXRpYmxlKQkJCSovCisjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkvKiBPTiBTZW1pJ3MgTE03NQkJKi8KKyNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQkvKiBTZW5zb3IgYWRkcmVzc2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0JVU19OVU0JCShDT05GSUdfU1lTX01BWF9JMkNfQlVTKQorCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAorCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qIEhhcmQgcmVzZXQgY29uZmlndXJhdGlvbiB3b3JkICovCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJMHgwNjA0YjIxMQorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTUFTVEVSCQkweDA2MDRiMjExCiAKIC8qIE5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QgICAgICAgICAgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNDA5NiA8PCAxMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCShISUQwX0lDRSB8IEhJRDBfSUZFTSB8IEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkJMAogCi0jZGVmaW5lIENGR19TSVVNQ1IJCTB4NDAyMGMyMDAKLSNkZWZpbmUgQ0ZHX1NZUENSCQkweEZGRkZGRkMzCi0jZGVmaW5lIENGR19CQ1IJCQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19TQ0NSCQkoU0NDUl9QQ0lfTU9ERSB8IFNDQ1JfUENJX01PRENLKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkJMHg0MDIwYzIwMAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCQkweEZGRkZGRkMzCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCShTQ0NSX1BDSV9NT0RFIHwgU0NDUl9QQ0lfTU9EQ0spCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS01CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiB0dXJuIG9uIENoZWNrc3RvcCBSZXNldCBFbmFibGUKICAqLwotI2RlZmluZSBDRkdfUk1SICAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JNUiAgICAgICAgIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVE1DTlRTQyAtIFRpbWUgQ291bnRlciBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICA0LTQwCkBAIC0yMzAsNyArMjg3LDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MgICAgIChUTUNOVFNDX1NFQ3xUTUNOVFNDX0FMUnxUTUNOVFNDX1RDRnxUTUNOVFNDX1RDRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbCAgICAgICAgICAgICAgICAgNC00MgpAQCAtMjM4LDEzICsyOTUsMTMgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSICAgICAgIChQSVNDUl9QU3xQSVNDUl9QVEZ8UElTQ1JfUFRFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSICAgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUiAgICAgICAgMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTI1OSwxMiArMzE2LDEyIEBACiAgKi8KIC8qIEJhbmsgMCAtIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0gICgoQ0ZHX0ZMQVNIX0JBU0UgJiBCUnhfQkFfTVNLKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0gICgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykJfFwKIAkJCSBCUnhfUFNfOAkJCXxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCXxcCiAJCQkgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gIChNRUdfVE9fQU0oQ0ZHX0ZMQVNIX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgKE1FR19UT19BTShDT05GSUdfU1lTX0ZMQVNIX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYyCQkJfFwKIAkJCSBPUnhHX1NDWV81X0NMSwkJCXxcCkBAIC0yNzQsMzMgKzMzMSwzMyBAQAogLyogQmFuayAxIC0gNjB4IGJ1cyBTRFJBTQogICovCiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCTB4MDgwMDAwMDAJLyogbWF4LiAxMjggTUIJCSovCi0jZGVmaW5lIENGR19HTE9CQUxfU0RSQU1fTElNSVQJKDI1NiA8PCAyMCkJLyogbGVzcyB0aGFuIDI1NiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVAkoMjU2IDw8IDIwKQkvKiBsZXNzIHRoYW4gMjU2IE1CICovCiAKLSNkZWZpbmUgQ0ZHX01QVFBSICAgICAgIDB4MTgwMAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSICAgICAgIDB4MTgwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBBZGRyZXNzIGZvciBNb2RlIFJlZ2lzdGVyIFNldCAoTVJTKSBjb21tYW5kCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX01SU19PRkZTCTB4MDAwMDAxMTAKLSNkZWZpbmUgQ0ZHX1BTUlQgICAgICAgIDB4MGUKKyNkZWZpbmUgQ09ORklHX1NZU19NUlNfT0ZGUwkweDAwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfUFNSVCAgICAgICAgMHgwZQogCi0jZGVmaW5lIENGR19CUjFfUFJFTElNICAoKENGR19TRFJBTV9CQVNFICYgQlJ4X0JBX01TSykgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTSAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKIAkJCSBCUnhfUFNfNjQgICAgICAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfTVNfU0RSQU1fUCAgICAgICAgICAgICAgICAgfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQlDRkdfT1IxCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMQogCiAvKiBTRFJBTSBpbml0aWFsaXphdGlvbiB2YWx1ZXMKICovCiAKLSNkZWZpbmUgQ0ZHX09SMSAgICAoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxICAgICgofihDT05GSUdfU1lTX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCiAJCQkgT1J4U19CUERfOCAgICAgICAgICAgICAgICAgICAgIHxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E3CQl8XAogCQkJIE9SeFNfTlVNUl8xMykKIAotI2RlZmluZSBDRkdfUFNETVIgIChQU0RNUl9TREFNX0ExNF9JU19BNSB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SICAoUFNETVJfU0RBTV9BMTRfSVNfQTUgfFwKIAkJCSBQU0RNUl9CU01BX0ExNF9BMTYgICAgICAgICAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BOQkJfFwKIAkJCSBQU0RNUl9SRlJDXzVfQ0xLICAgICAgICAgICAgICAgfFwKQEAgLTMxMiwyOCArMzY5LDI5IEBACiAKIC8qIEdQSU8vUElHR1kgb24gQ1MzIGluaXRpYWxpemF0aW9uIHZhbHVlcwogKi8KLSNkZWZpbmUgQ0ZHX1BJR0dZX0JBU0UJMHgzMDAwMDAwMAotI2RlZmluZSBDRkdfUElHR1lfU0laRQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19QSUdHWV9CQVNFCTB4MzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QSUdHWV9TSVpFCTEyOAogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoQ0ZHX1BJR0dZX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKChDT05GSUdfU1lTX1BJR0dZX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU184IHwgQlJ4X01TX0dQQ01fUCB8IEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCShNRUdfVE9fQU0oQ0ZHX1BJR0dZX1NJWkUpIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoTUVHX1RPX0FNKENPTkZJR19TWVNfUElHR1lfU0laRSkgfFwKIAkJCSBPUnhHX0NTTlQgfCBPUnhHX0FDU19ESVYyIHxcCiAJCQkgT1J4R19TQ1lfM19DTEsgfCBPUnhHX1RSTFggKQogCiAvKiBDRkctRmxhc2ggb24gQ1M1IGluaXRpYWxpemF0aW9uIHZhbHVlcwogKi8KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JKChDRkdfRkxBU0hfQkFTRV8xICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFXzEgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU18xNiB8IEJSeF9NU19HUENNX1AgfCBCUnhfVikKIAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoTUVHX1RPX0FNKENGR19GTEFTSF9TSVpFXzEpIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0hfU0laRV8xKSB8XAogCQkJIE9SeEdfQ1NOVCB8IE9SeEdfQUNTX0RJVjIgfFwKIAkJCSBPUnhHX1NDWV81X0NMSyB8IE9SeEdfVFJMWCApCiAKLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MgMHhGREZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgMHhGREZGRkZGQwkvKiAiYmFkIiBhZGRyZXNzCQkqLwogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCisjZGVmaW5lIENPTkZJR19GSVQJCTEKICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkxCiAjZGVmaW5lIENPTkZJR19PRl9CT0FSRF9TRVRVUAkxCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tZ3N1dmQuaCBiL2luY2x1ZGUvY29uZmlncy9tZ3N1dmQuaAppbmRleCA3NDA3NjdlLi5mZjUyZjg0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWdzdXZkLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21nc3V2ZC5oCkBAIC00MSwxMyArNDEsMTUgQEAKIAogI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUQkJNjYwMDAwMDAKIAotI2RlZmluZSBDRkdfU01DX1VDT0RFX1BBVENICTEJLyogUmVsb2NhdGUgU01DMSAqLwotI2RlZmluZSBDRkdfU01DX0RQTUVNX09GRlNFVAkweDFmYzAKKyNkZWZpbmUgQ09ORklHX1NZU19TTUNfVUNPREVfUEFUQ0gJMQkvKiBSZWxvY2F0ZSBTTUMxICovCisjZGVmaW5lIENPTkZJR19TWVNfU01DX0RQTUVNX09GRlNFVAkweDFmYzAKICNkZWZpbmUgQ09ORklHXzh4eF9DT05TX1NNQzEJMQkvKiBDb25zb2xlIGlzIG9uIFNNQzEJCSovCiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogY29uc29sZSBiYXVkcmF0ZSA9IDExNWticHMJKi8KIAogI2RlZmluZSBDT05GSUdfQk9PVENPVU5UX0xJTUlUCisjZGVmaW5lIENPTkZJR19TWVNfQ1BNX0JPT1RDT1VOVF9BRERSCTB4MWViMAkvKiBJbiBjYXNlIG9mIFNNQyByZWxvY2F0aW9uLCB0aGUKKwkJCQkJICogZGVmYXVsdCB2YWx1ZSBpcyBub3Qgd29ya2luZyAqLwogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQkvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMJKi8KIApAQCAtODksNyArOTEsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMTMsMzggKzExNSw0MiBAQAogCiAjZGVmaW5lIENPTkZJR19DTURfQVNLRU5WCiAjZGVmaW5lIENPTkZJR19DTURfREhDUAorI2RlZmluZSBDT05GSUdfQ01EX0RUVAorI2RlZmluZSBDT05GSUdfQ01EX0VFUFJPTQorI2RlZmluZSBDT05GSUdfQ01EX0kyQwogI2RlZmluZSBDT05GSUdfQ01EX05GUwogI2RlZmluZSBDT05GSUdfQ01EX1BJTkcKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEJLyogVXNlIHRoZSBIVVNIIHBhcnNlcgkJKi8KKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX0hVU0hfSU5JVF9WQVIJMQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE1NCw2NSArMTYwLDYzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkZGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZGRjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTMyCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMHg0MDAwMCAvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MDgwMDAgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMCAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLworI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KLQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMjEsMjcgKzIyNSwyNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1NZUENSCTB4ZmZmZmZmODkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkweGZmZmZmZjg5CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkxMS02CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkweDAwNjEwNDgwCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCTB4MDA2MTA0ODAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yNTAsOSArMjU0LDkgQEAKICAqIHBvd2VyIG1hbmFnZW1lbnQgYW5kIHNvbWUgb3RoZXIgaW50ZXJuYWwgY2xvY2tzCiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCTB4MDE4MDAwMDAKLSNkZWZpbmUgQ0ZHX1NDQ1IJMHgwMTgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJMHgwMTgwMDAwMAogCi0jZGVmaW5lIENGR19ERVIgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMjY2LDE0ICsyNzAsMTQgQEAKICAqIHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggdG8ga2VlcCBTUkFNIHdvcmtpbmcgKGlmIGFueSkKICAqIGJ1dCBub3QgdG9vIG11Y2ggdG8gbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhFMDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyoKICAqIEZMQVNIIHRpbWluZzogRGVmYXVsdCB2YWx1ZSBvZiBPUjAgYWZ0ZXIgcmVzZXQKICAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkweGZlMDAwOTU0Ci0jZGVmaW5lIENGR19CUjBfUFJFTElNCTB4ZjAwMDA0MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCTB4ZmUwMDA5NTQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCTB4ZjAwMDA0MDEKIAogLyoKICAqIEJSMSBhbmQgT1IxIChTRFJBTSkKQEAgLTI4MywxNiArMjg3LDE2IEBACiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCQkoNjQgPDwgMjApCS8qIG1heCA2NCBNQiBwZXIgYmFuawkqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEEwMAogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCTB4ZmMwMDA4MDAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKDB4MDAwMDAwQzAgfCAweDAxKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JMHhmYzAwMDgwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKDB4MDAwMDAwQzAgfCAweDAxKQogCi0jZGVmaW5lIENGR19NUFRQUgkweDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkweDAyMDAKIC8qIFBUQj0xNiwgQU1CPTAwMSwgRklYTUUgMSBSQVMgcHJlY2hhcmdlIGN5Y2xlcywgMSBSRUFEIGxvb3AgY3ljbGUgKG5vdCB1c2VkKSwKICAgIDEgV3JpdGUgbG9vcCBDeWNsZSAobm90IHVzZWQpLCAxIFRpbWVyIExvb3AgQ3ljbGUgKi8KLSNkZWZpbmUgQ0ZHX01CTVIJMHgxMDk2NDExMQotI2RlZmluZSBDRkdfTUFSCQkweDAwMDAwMDg4CisjZGVmaW5lIENPTkZJR19TWVNfTUJNUgkweDEwOTY0MTExCisjZGVmaW5lIENPTkZJR19TWVNfTUFSCQkweDAwMDAwMDg4CiAKIC8qCiAgKiA0MDk2CVJvd3MgZnJvbSBTRFJBTSBleGFtcGxlIGNvbmZpZ3VyYXRpb24KQEAgLTMwMSwxMyArMzA1LDEzIEBACiAgKiA0CU51bWJlciBvZiByZWZyZXNoIGN5Y2xlcyBwZXIgcGVyaW9kCiAgKiA2NAlSZWZyZXNoIGN5Y2xlIGluIG1zIHBlciBudW1iZXIgb2Ygcm93cwogICovCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiA2NCAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfUFRBX1BFUl9DTEsJKCg0MDk2ICogNjQgKiAxMDAwKSAvICg0ICogNjQpKQogCiAvKiBHUElPL1BJR0dZIG9uIENTMyBpbml0aWFsaXphdGlvbiB2YWx1ZXMKICovCi0jZGVmaW5lIENGR19QSUdHWV9CQVNFCSgweDMwMDAwMDAwKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkoMHhmZTAwMGQyNCkKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKDB4MzAwMDA0MDEpCisjZGVmaW5lIENPTkZJR19TWVNfUElHR1lfQkFTRQkoMHgzMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCSgweGZlMDAwZDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0JKDB4MzAwMDA0MDEpCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtMzMwLDQgKzMzNCw2NSBAQAogI2RlZmluZSBPRl9UQkNMSwkJKGJkLT5iaV9idXNmcmVxIC8gNCkKICNkZWZpbmUgT0ZfU1RET1VUX1BBVEgJCSIvc29jL2NwbS9zZXJpYWxAYTgwIgogCisvKiBlbmFibGUgSTJDIGFuZCBzZWxlY3QgdGhlIGhhcmR3YXJlL3NvZnR3YXJlIGRyaXZlciAqLworI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KKyNkZWZpbmUJQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIEkyQ19TT0ZUX0RFQ0xBUkFUSU9OUworCisvKgorICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KKyAqLworI2RlZmluZSBJMkNfQkFTRV9ESVIJKCh1MTYgKikoQ09ORklHX1NZU19QSUdHWV9CQVNFICsgMHgwNCkpCisjZGVmaW5lIEkyQ19CQVNFX1BPUlQJKCh1OCAqKShDT05GSUdfU1lTX1BJR0dZX0JBU0UgKyAweDA5KSkKKworI2RlZmluZSBTREFfQklUCQkweDQwCisjZGVmaW5lIFNDTF9CSVQJCTB4ODAKKyNkZWZpbmUgU0RBX0NPTkYJMHgxMDAwCisjZGVmaW5lIFNDTF9DT05GCTB4MjAwMAorCisjZGVmaW5lIEkyQ19BQ1RJVkUJZG8ge30gd2hpbGUgKDApCisjZGVmaW5lIEkyQ19UUklTVEFURQlkbyB7fSB3aGlsZSAoMCkKKyNkZWZpbmUgSTJDX1JFQUQJKChpbl84KEkyQ19CQVNFX1BPUlQpICYgU0RBX0JJVCkgPT0gU0RBX0JJVCkKKyNkZWZpbmUgSTJDX1NEQShiaXQpCWlmKGJpdCkgeyBcCisJCQkJY2xyYml0cyhiZTE2LCBJMkNfQkFTRV9ESVIsIFNEQV9DT05GKTsgXAorCQkJfSBlbHNlIHsgXAorCQkJCWNscmJpdHMoOCwgSTJDX0JBU0VfUE9SVCwgU0RBX0JJVCk7IFwKKwkJCQlzZXRiaXRzKGJlMTYsIEkyQ19CQVNFX0RJUiwgU0RBX0NPTkYpOyBcCisJCQl9CisjZGVmaW5lIEkyQ19TQ0woYml0KQlpZihiaXQpIHsgXAorCQkJCWNscmJpdHMoYmUxNiwgSTJDX0JBU0VfRElSLCBTQ0xfQ09ORik7IFwKKwkJCX0gZWxzZSB7IFwKKwkJCQljbHJiaXRzKDgsIEkyQ19CQVNFX1BPUlQsIFNDTF9CSVQpOyBcCisJCQkJc2V0Yml0cyhiZTE2LCBJMkNfQkFTRV9ESVIsIFNDTF9DT05GKTsgXAorCQkJfQorI2RlZmluZSBJMkNfREVMQVkJdWRlbGF5KDUwKQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCisKKyNkZWZpbmUgQ09ORklHX0kyQ19NVUxUSV9CVVMJMQorI2RlZmluZSBDT05GSUdfSTJDX0NNRF9UUkVFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfSTJDX0JVUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECTEKKyNkZWZpbmUgQ09ORklHX0kyQ19NVVgJCTEKKworLyogRUVwcm9tIHN1cHBvcnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfRU5BQkxFCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKworLyogU3VwcG9ydCB0aGUgSVZNIEVFcHJvbSAqLworI2RlZmluZQlDT05GSUdfU1lTX0lWTV9FRVBST01fQURSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JVk1fRUVQUk9NX01BWF9MRU4JMHg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19JVk1fRUVQUk9NX1BBR0VfTEVOCTB4MTAwCisKKy8qIEkyQyBTWVNNT04gKExNNzUsIEFENzQxNCBpcyBhbG1vc3QgY29tcGF0aWJsZSkJCQkqLworI2RlZmluZSBDT05GSUdfRFRUX0xNNzUJCTEJLyogT04gU2VtaSdzIExNNzUJCSovCisjZGVmaW5lIENPTkZJR19EVFRfU0VOU09SUwl7MCwgMiwgNCwgNn0JLyogU2Vuc29yIGFkZHJlc3NlcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9CVVNfTlVNCQkoQ09ORklHX1NZU19NQVhfSTJDX0JVUykKKwogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9taW1jMjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvbWltYzIwMC5oCmluZGV4IGRhMzA3YWMuLjMxMmZkYzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9taW1jMjAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21pbWMyMDAuaApAQCAtMzMsNyArMzMsNyBAQAogCiAjZGVmaW5lIENPTkZJR19NSU1DMjAwX0VYVF9GTEFTSAkxCiAKLSNkZWZpbmUgQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKIC8qCiAgKiBTZXQgdXAgdGhlIFBMTCB0byBydW4gYXQgMTQwIE1IeiwgdGhlIENQVSB0byBydW4gYXQgdGhlIFBMTApAQCAtNDEsMTUgKzQxLDE1IEBACiAgKiBhbmQgdGhlIFBCQSBidXMgdG8gcnVuIGF0IDEvNCB0aGUgUExMIGZyZXF1ZW5jeS4KICAqLwogI2RlZmluZSBDT05GSUdfUExMCQkJMQotI2RlZmluZSBDRkdfUE9XRVJfTUFOQUdFUgkJMQotI2RlZmluZSBDRkdfT1NDMF9IWgkJCTEwMDAwMDAwCi0jZGVmaW5lIENGR19QTEwwX0RJVgkJCTEKLSNkZWZpbmUgQ0ZHX1BMTDBfTVVMCQkJMTUKLSNkZWZpbmUgQ0ZHX1BMTDBfU1VQUFJFU1NfQ1lDTEVTCTE2Ci0jZGVmaW5lIENGR19DTEtESVZfQ1BVCQkJMAotI2RlZmluZSBDRkdfQ0xLRElWX0hTQgkJCTEKLSNkZWZpbmUgQ0ZHX0NMS0RJVl9QQkEJCQkyCi0jZGVmaW5lIENGR19DTEtESVZfUEJCCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BPV0VSX01BTkFHRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PU0MwX0haCQkJMTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX0RJVgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX01VTAkJCTE1CisjZGVmaW5lIENPTkZJR19TWVNfUExMMF9TVVBQUkVTU19DWUNMRVMJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfQ1BVCQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0NMS0RJVl9IU0IJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0xLRElWX1BCQQkJCTIKKyNkZWZpbmUgQ09ORklHX1NZU19DTEtESVZfUEJCCQkJMQogCiAvKgogICogVGhlIFBMTE9QVCByZWdpc3RlciBjb250cm9scyB0aGUgUExMIGxpa2UgdGhpczoKQEAgLTU4LDcgKzU4LDcgQEAKICAqCiAgKiBXZSB3YW50IGljcD0xIChkZWZhdWx0KSBhbmQgaXZjbz0wICg4MC0xNjAgTUh6KSBvciBpdmNvPTIgKDE1MC0yNDBNSHopLgogICovCi0jZGVmaW5lIENGR19QTEwwX09QVAkJCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19QTEwwX09QVAkJCTB4MDQKIAogI2RlZmluZSBDT05GSUdfVVNBUlQxCQkJMQogI2RlZmluZSBDT05GSUdfTUlNQzIwMF9EQkdMSU5LCQkxCkBAIC04MCw3ICs4MCw3IEBACiAKICNkZWZpbmUgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkxCS8qIGVuYWJsZSBzaWxlbnQgc3RhcnR1cCAqLwogI2RlZmluZSBDT05GSUdfU0lMRU5UX0NPTlNPTEVfSU5QVVQJMQkvKiBkaXNhYmxlIGNvbnNvbGUgaW5wdXRzICovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkJMQkvKiBpbmNsdWRlIG51bGxkZXYgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJCTEJLyogaW5jbHVkZSBudWxsZGV2IGRldmljZSAqLwogCiAvKgogICogT25seSBpbnRlcnJ1cHQgYXV0b2Jvb3QgaWYgPHNwYWNlPiBpcyBwcmVzc2VkLiBPdGhlcndpc2UsIGdhcmJhZ2UKQEAgLTEyMiw1NiArMTIyLDU2IEBACiAjZGVmaW5lIENPTkZJR19BVE1FTF9VU0FSVAkJMQogI2RlZmluZSBDT05GSUdfTUFDQgkJCTEKICNkZWZpbmUgQ09ORklHX1BJTzIJCQkxCi0jZGVmaW5lIENGR19OUl9QSU9TCQkJNQotI2RlZmluZSBDRkdfSFNEUkFNQwkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUl9QSU9TCQkJNQorI2RlZmluZSBDT05GSUdfU1lTX0hTRFJBTUMJCQkxCiAjZGVmaW5lIENPTkZJR19NTUMJCQkxCiAjZGVmaW5lIENPTkZJR19BVE1FTF9NQ0kJCTEKIAotI2RlZmluZSBDRkdfRENBQ0hFX0xJTkVTWgkJMzIKLSNkZWZpbmUgQ0ZHX0lDQUNIRV9MSU5FU1oJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWgkJMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JQ0FDSEVfTElORVNaCQkzMgogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkxCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEzNQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJCTB4ODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEzNQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAotI2RlZmluZSBDRkdfSU5UUkFNX0JBU0UJCQlJTlRFUk5BTF9TUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkJRUJJX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTlRSQU1fQkFTRQkJCUlOVEVSTkFMX1NSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOVFJBTV9TSVpFCQkJSU5URVJOQUxfU1JBTV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJCUVCSV9TRFJBTV9CQVNFCiAKLSNkZWZpbmUgQ0ZHX0ZSQU1fQkFTRQkJCTB4MDgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZSQU1fU0laRQkJCTB4MjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GUkFNX0JBU0UJCQkweDA4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRlJBTV9TSVpFCQkJMHgyMDAwMAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJCTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkJNjU1MzYKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkJKENGR19GTEFTSF9CQVNFICsgQ0ZHX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX0ZMQVNIX1NJWkUgLSBDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfQUREUgkJKENGR19JTlRSQU1fQkFTRSArIENGR19JTlRSQU1fU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX0FERFIJCShDT05GSUdfU1lTX0lOVFJBTV9CQVNFICsgQ09ORklHX1NZU19JTlRSQU1fU0laRSkKIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJCSgxMDI0KjEwMjQpCi0jZGVmaW5lIENGR19ETUFfQUxMT0NfTEVOCQkoMTYzODQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJCSgxMDI0KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgkJKDE2Mzg0KQogCiAvKiBBbGxvdyA0TUIgZm9yIHRoZSBrZXJuZWwgcnVuLXRpbWUgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCShFQklfU0RSQU1fQkFTRSArIDB4MDA0MDAwMDApCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkJKDE2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCQkoRUJJX1NEUkFNX0JBU0UgKyAweDAwNDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCQkoMTYgKiAxMDI0KQogCiAvKiBPdGhlciBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRoYXQgc2hvdWxkbid0IGhhdmUgdG8gY2hhbmdlIGFsbCB0aGF0IG9mdGVuICovCi0jZGVmaW5lIENGR19QUk9NUFQJCQkiVS1Cb290PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCQkxNgotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJCSJVLUJvb3Q+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCUVCSV9TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJCShDRkdfTUVNVEVTVF9TVEFSVCArIDB4MWYwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQlFQklfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArIDB4MWYwMDAwMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgeyAxMTUyMDAsIDM4NDAwLCAxOTIwMCwgOTYwMCwgMjQwMCB9CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbWwzMDAuaCBiL2luY2x1ZGUvY29uZmlncy9tbDMwMC5oCmluZGV4IDhkNDgyMjEuLjY4ZDBjODUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tbDMwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tbDMwMC5oCkBAIC01OSwxNSArNTksMTUgQEAKIAogI2RlZmluZSBDT05GSUdfU1lTVEVNQUNFCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JMQotI2RlZmluZSBDRkdfU1lTVEVNQUNFX0JBU0UJWFBBUl9PUEJfU1lTQUNFXzBfQkFTRUFERFIKLSNkZWZpbmUgQ0ZHX1NZU1RFTUFDRV9XSURUSAlYUEFSX1hTWVNBQ0VfTUVNX1dJRFRICisjZGVmaW5lIENPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UJWFBBUl9PUEJfU1lTQUNFXzBfQkFTRUFERFIKKyNkZWZpbmUgQ09ORklHX1NZU19TWVNURU1BQ0VfV0lEVEgJWFBBUl9YU1lTQUNFX01FTV9XSURUSAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCTEJLyogZW52aXJvbm1lbnQgaXMgaW4gRUVQUk9NICovCiAKIC8qIGZvbGxvd2luZyBhcmUgdXNlZCBvbmx5IGlmIGVudiBpcyBpbiBFRVBST00gKi8KICNpZmRlZglDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCVhQQVJfUEVSU0lTVEVOVF8wX0lJQ18wX0VFUFJPTUFERFIKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUglYUEFSX1BFUlNJU1RFTlRfMF9JSUNfMF9FRVBST01BRERSCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTiAxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQlYUEFSX1BFUlNJU1RFTlRfMF9JSUNfMF9CQVNFQUREUgogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IJMQkvKiB1c2VkIHRvIGNhbGwgb3V0IGNvbnZlcnRfZW52KCkgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQkvKiBhbGxvdyB1c2VycyB0byB1cGRhdGUgZXRoYWRkciBhbmQgc2VyaWFsIyAqLwpAQCAtNzUsNyArNzUsNyBAQAogCiAjaW5jbHVkZSAiLi4vYm9hcmQveGlsaW54L21sMzAwL3hwYXJhbWV0ZXJzLmgiCiAKLSNkZWZpbmUgQ0ZHX05PX0ZMQVNICQkxCS8qIG5vIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogbm8gZmxhc2ggKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlYUEFSX1BFUlNJU1RFTlRfMF9JSUNfMF9ISUdIQUREUiAtIFhQQVJfUEVSU0lTVEVOVF8wX0lJQ18wX0JBU0VBRERSICsgMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkzCS8qIGF1dG9ib290IGFmdGVyIDMgc2Vjb25kcwkqLwpAQCAtODYsNyArODYsNyBAQAogCQkJCSJyb290PS9kZXYveHN5c2FjZS9kaXNjMC9wYXJ0MyBydyIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAKIC8qCkBAIC0xMTcsNTggKzExNyw1OCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0RVQVJUX0NIQU4JCTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgLTQKLSNkZWZpbmUgQ0ZHX05TMTY1NTAgMQotI2RlZmluZSBDRkdfSU5JVF9DSEFOMQkgMQorI2RlZmluZSBDT05GSUdfU1lTX0RVQVJUX0NIQU4JCTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFIC00CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MCAxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9DSEFOMQkgMQogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbnRvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHgwNDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQkvKiBSZXNlcnZlIDE5NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyICogMTAyNCkJLyogUmVzZXJ2ZSAxOTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAgIC8qIGluc2lkZSBvZiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUICAgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDgwMDAwMCAgLyogaW5zaWRlIG9mIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21sNDAxLmggYi9pbmNsdWRlL2NvbmZpZ3MvbWw0MDEuaAppbmRleCAyYTZjNjhjLi42M2QwN2ZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbWw0MDEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbWw0MDEuaApAQCAtMzYsNTYgKzM2LDU2IEBACiAjZGVmaW5lCUNPTkZJR19YSUxJTlhfVUFSVExJVEUKICNkZWZpbmUJQ09ORklHX1NFUklBTF9CQVNFCVhJTElOWF9VQVJUTElURV9CQVNFQUREUgogI2RlZmluZQlDT05GSUdfQkFVRFJBVEUJCVhJTElOWF9VQVJUTElURV9CQVVEUkFURQotI2RlZmluZQlDRkdfQkFVRFJBVEVfVEFCTEUJeyBDT05GSUdfQkFVRFJBVEUgfQorI2RlZmluZQlDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgQ09ORklHX0JBVURSQVRFIH0KICNlbHNlCiAjaWZkZWYgWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJNAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJNAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCVhJTElOWF9VQVJUMTY1NTBfQ0xPQ0tfSFoKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJWElMSU5YX1VBUlQxNjU1MF9CQVNFQUREUgorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlYSUxJTlhfVUFSVDE2NTUwX0NMT0NLX0haCiAjZGVmaW5lCUNPTkZJR19CQVVEUkFURQkJMTE1MjAwCi0jZGVmaW5lCUNGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDExNTIwMCB9CisjZGVmaW5lCUNPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxMTUyMDAgfQogI2VuZGlmCiAjZW5kaWYKIAogLyogc2V0dGluZyByZXNldCBhZGRyZXNzICovCi0vKiNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MJVEVYVF9CQVNFKi8KKy8qI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJVEVYVF9CQVNFKi8KIAogLyogZXRoZXJuZXQgKi8KICNpZmRlZiBYSUxJTlhfRU1BQ19CQVNFQUREUgogI2RlZmluZSBDT05GSUdfWElMSU5YX0VNQUMJMQotI2RlZmluZSBDRkdfRU5FVAorI2RlZmluZSBDT05GSUdfU1lTX0VORVQKICNlbHNlCiAjaWZkZWYgWElMSU5YX0VNQUNMSVRFX0JBU0VBRERSCiAjZGVmaW5lIENPTkZJR19YSUxJTlhfRU1BQ0xJVEUJMQotI2RlZmluZSBDRkdfRU5FVAorI2RlZmluZSBDT05GSUdfU1lTX0VORVQKICNlbmRpZgogI2VuZGlmCiAjdW5kZWYgRVRfREVCVUcKIAogLyogZ3BpbyAqLwogI2lmZGVmIFhJTElOWF9HUElPX0JBU0VBRERSCi0jZGVmaW5lCUNGR19HUElPXzAJCTEKLSNkZWZpbmUJQ0ZHX0dQSU9fMF9BRERSCQlYSUxJTlhfR1BJT19CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fMAkJMQorI2RlZmluZQlDT05GSUdfU1lTX0dQSU9fMF9BRERSCQlYSUxJTlhfR1BJT19CQVNFQUREUgogI2VuZGlmCiAKIC8qIGludGVycnVwdCBjb250cm9sbGVyICovCiAjaWZkZWYgWElMSU5YX0lOVENfQkFTRUFERFIKLSNkZWZpbmUJQ0ZHX0lOVENfMAkJMQotI2RlZmluZQlDRkdfSU5UQ18wX0FERFIJCVhJTElOWF9JTlRDX0JBU0VBRERSCi0jZGVmaW5lCUNGR19JTlRDXzBfTlVNCQlYSUxJTlhfSU5UQ19OVU1fSU5UUl9JTlBVVFMKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzAJCTEKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzBfQUREUgkJWElMSU5YX0lOVENfQkFTRUFERFIKKyNkZWZpbmUJQ09ORklHX1NZU19JTlRDXzBfTlVNCQlYSUxJTlhfSU5UQ19OVU1fSU5UUl9JTlBVVFMKICNlbmRpZgogCiAvKiB0aW1lciAqLwogI2lmZGVmIFhJTElOWF9USU1FUl9CQVNFQUREUgogI2lmIChYSUxJTlhfVElNRVJfSVJRICE9IC0xKQotI2RlZmluZQlDRkdfVElNRVJfMAkJMQotI2RlZmluZQlDRkdfVElNRVJfMF9BRERSCVhJTElOWF9USU1FUl9CQVNFQUREUgotI2RlZmluZQlDRkdfVElNRVJfMF9JUlEJCVhJTElOWF9USU1FUl9JUlEKKyNkZWZpbmUJQ09ORklHX1NZU19USU1FUl8wCQkxCisjZGVmaW5lCUNPTkZJR19TWVNfVElNRVJfMF9BRERSCVhJTElOWF9USU1FUl9CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX1RJTUVSXzBfSVJRCQlYSUxJTlhfVElNRVJfSVJRCiAjZGVmaW5lCUZSRVFVRU5DRQkJWElMSU5YX0NMT0NLX0ZSRVEKLSNkZWZpbmUJQ0ZHX1RJTUVSXzBfUFJFTE9BRAkoIEZSRVFVRU5DRS8xMDAwICkKKyNkZWZpbmUJQ09ORklHX1NZU19USU1FUl8wX1BSRUxPQUQJKCBGUkVRVUVOQ0UvMTAwMCApCiAjZW5kaWYKICNlbHNlCiAjaWZkZWYgWElMSU5YX0NMT0NLX0ZSRVEKQEAgLTk1LDIwICs5NSwyMCBAQAogI2VuZGlmCiAjZW5kaWYKIC8qIEZTTCAqLwotLyogI2RlZmluZQlDRkdfRlNMXzIgKi8KKy8qICNkZWZpbmUJQ09ORklHX1NZU19GU0xfMiAqLwogLyogI2RlZmluZQlGU0xfSU5UUl8yCTEgKi8KIAogLyoKICAqIG1lbW9yeSBsYXlvdXQgLSBFeGFtcGxlCiAgKiBURVhUX0JBU0UgPSAweDEyMDBfMDAwMDsKLSAqIENGR19TUkFNX0JBU0UgPSAweDEwMDBfMDAwMDsKLSAqIENGR19TUkFNX1NJWkUgPSAweDA0MDBfMDAwMDsKKyAqIENPTkZJR19TWVNfU1JBTV9CQVNFID0gMHgxMDAwXzAwMDA7CisgKiBDT05GSUdfU1lTX1NSQU1fU0laRSA9IDB4MDQwMF8wMDAwOwogICoKLSAqIENGR19HQkxfREFUQV9PRkZTRVQgPSAweDEwMDBfMDAwMCArIDB4MDQwMF8wMDAwIC0gMHgxMDAwID0gMHgxM0ZGX0YwMDAKLSAqIENGR19NT05JVE9SX0JBU0UgPSAweDEzRkZfRjAwMCAtIDB4NDAwMDAgPSAweDEzRkJfRjAwMAotICogQ0ZHX01BTExPQ19CQVNFID0gMHgxM0ZCX0YwMDAgLSAweDQwMDAwID0gMHgxM0Y3X0YwMDAKKyAqIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUID0gMHgxMDAwXzAwMDAgKyAweDA0MDBfMDAwMCAtIDB4MTAwMCA9IDB4MTNGRl9GMDAwCisgKiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA9IDB4MTNGRl9GMDAwIC0gMHg0MDAwMCA9IDB4MTNGQl9GMDAwCisgKiBDT05GSUdfU1lTX01BTExPQ19CQVNFID0gMHgxM0ZCX0YwMDAgLSAweDQwMDAwID0gMHgxM0Y3X0YwMDAKICAqCi0gKiAweDEwMDBfMDAwMAlDRkdfU0RSQU1fQkFTRQorICogMHgxMDAwXzAwMDAJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAgKgkJCQkJRlJFRQogICogMHgxMjAwXzAwMDAJVEVYVF9CQVNFCiAgKgkJVS1CT09UIGNvZGUKQEAgLTExNiw2OCArMTE2LDY4IEBACiAgKgkJCQkJRlJFRQogICoKICAqCQkJCQlTVEFDSwotICogMHgxM0Y3X0YwMDAJQ0ZHX01BTExPQ19CQVNFCisgKiAweDEzRjdfRjAwMAlDT05GSUdfU1lTX01BTExPQ19CQVNFCiAgKgkJCQkJTUFMTE9DX0FSRUEJMjU2a0IJQWxsb2MKLSAqIDB4MTFGQl9GMDAwCUNGR19NT05JVE9SX0JBU0UKKyAqIDB4MTFGQl9GMDAwCUNPTkZJR19TWVNfTU9OSVRPUl9CQVNFCiAgKgkJCQkJTU9OSVRPUl9DT0RFCTI1NmtCCUVudgotICogMHgxM0ZGX0YwMDAJQ0ZHX0dCTF9EQVRBX09GRlNFVAorICogMHgxM0ZGX0YwMDAJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKICAqCQkJCQlHTE9CQUxfREFUQQk0a0IJYmQsIGdkCi0gKiAweDE0MDBfMDAwMAlDRkdfU0RSQU1fQkFTRSArIENGR19TRFJBTV9TSVpFCisgKiAweDE0MDBfMDAwMAlDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBDT05GSUdfU1lTX1NEUkFNX1NJWkUKICAqLwogCiAvKiBkZHIgc2RyYW0gLSBtYWluIG1lbW9yeSAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJWElMSU5YX1JBTV9TVEFSVAotI2RlZmluZQlDRkdfU0RSQU1fU0laRQkJWElMSU5YX1JBTV9TSVpFCi0jZGVmaW5lCUNGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lCUNGR19NRU1URVNUX0VORAkJKENGR19TRFJBTV9CQVNFICsgMHgxMDAwKQorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCVhJTElOWF9SQU1fU1RBUlQKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9TSVpFCQlYSUxJTlhfUkFNX1NJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwKQogCiAvKiBnbG9iYWwgcG9pbnRlciAqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQkweDEwMDAJLyogc2l6ZSBvZiBnbG9iYWwgZGF0YSAqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHgxMDAwCS8qIHNpemUgb2YgZ2xvYmFsIGRhdGEgKi8KIC8qIHN0YXJ0IG9mIGdsb2JhbCBkYXRhICovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9PRkZTRVQJKENGR19TRFJBTV9CQVNFICsgQ0ZHX1NEUkFNX1NJWkUgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfU0RSQU1fU0laRSAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyogbW9uaXRvciBjb2RlICovCiAjZGVmaW5lCVNJWkUJCQkweDQwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJU0laRQotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZQlDRkdfTU9OSVRPUl9FTkQJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJU0laRQotI2RlZmluZQlDRkdfTUFMTE9DX0JBU0UJCShDRkdfTU9OSVRPUl9CQVNFIC0gQ0ZHX01BTExPQ19MRU4pCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCVNJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0VORAkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQlTSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0JBU0UJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTUFMTE9DX0xFTikKIAogLyogc3RhY2sgKi8KLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19NT05JVE9SX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX01PTklUT1JfQkFTRQogCiAvKiNkZWZpbmUJUkFNRU5WICovCiAjZGVmaW5lCUZMQVNICiAKICNpZmRlZiBGTEFTSAotCSNkZWZpbmUJQ0ZHX0ZMQVNIX0JBU0UJCVhJTElOWF9GTEFTSF9TVEFSVAotCSNkZWZpbmUJQ0ZHX0ZMQVNIX1NJWkUJCVhJTElOWF9GTEFTSF9TSVpFCi0JI2RlZmluZQlDRkdfRkxBU0hfQ0ZJCQkxCisJI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVhJTElOWF9GTEFTSF9TVEFSVAorCSNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9TSVpFCQlYSUxJTlhfRkxBU0hfU0laRQorCSNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9DRkkJCTEKIAkjZGVmaW5lCUNPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLQkjZGVmaW5lCUNGR19GTEFTSF9FTVBUWV9JTkZPCTEJLyogP2VtcHR5IHNlY3RvciAqLwotCSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0JI2RlZmluZQlDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotCSNkZWZpbmUJQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gKi8KKwkjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkxCS8qID9lbXB0eSBzZWN0b3IgKi8KKwkjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKwkjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworCSNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICovCiAKIAkjaWZkZWYJUkFNRU5WCiAJCSNkZWZpbmUJQ09ORklHX0VOVl9JU19OT1dIRVJFCTEKIAkJI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAotCQkjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCisJCSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCiAKIAkjZWxzZQkvKiAhUkFNRU5WICovCiAJCSNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAJCSNkZWZpbmUJQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KLQkJI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArICgyICogQ09ORklHX0VOVl9TRUNUX1NJWkUpKQorCQkjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgyICogQ09ORklHX0VOVl9TRUNUX1NJWkUpKQogCQkjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHg0MDAwMAogCSNlbmRpZiAvKiAhUkFNQk9PVCAqLwogI2Vsc2UgLyogIUZMQVNIICovCiAJLyogRU5WIGluIFJBTSAqLwotCSNkZWZpbmUJQ0ZHX05PX0ZMQVNICQkxCisJI2RlZmluZQlDT05GSUdfU1lTX05PX0ZMQVNICQkxCiAJI2RlZmluZQlDT05GSUdfRU5WX0lTX05PV0hFUkUJMQogCSNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDEwMDAKLQkjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCi0JI2RlZmluZQlDRkdfRkxBU0hfUFJPVEVDVElPTgkJLyogaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbiAqLworCSNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCisJI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCS8qIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24gKi8KICNlbmRpZiAvKiAhRkxBU0ggKi8KIAogLyogc3lzdGVtIGFjZSAqLwpAQCAtMTg1LDggKzE4NSw4IEBACiAJI2RlZmluZQlDT05GSUdfU1lTVEVNQUNFCiAJLyogI2RlZmluZSBERUJVR19TWVNURU1BQ0UgKi8KIAkjZGVmaW5lCVNZU1RFTUFDRV9DT05GSUdfRlBHQQotCSNkZWZpbmUJQ0ZHX1NZU1RFTUFDRV9CQVNFCVhJTElOWF9TWVNBQ0VfQkFTRUFERFIKLQkjZGVmaW5lCUNGR19TWVNURU1BQ0VfV0lEVEgJWElMSU5YX1NZU0FDRV9NRU1fV0lEVEgKKwkjZGVmaW5lCUNPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UJWElMSU5YX1NZU0FDRV9CQVNFQUREUgorCSNkZWZpbmUJQ09ORklHX1NZU19TWVNURU1BQ0VfV0lEVEgJWElMSU5YX1NZU0FDRV9NRU1fV0lEVEgKIAkjZGVmaW5lCUNPTkZJR19ET1NfUEFSVElUSU9OCiAjZW5kaWYKIApAQCAtMjA4LDcgKzIwOCw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfSVJRCiAjZGVmaW5lIENPTkZJR19DTURfTUZTTAogCi0jaWZuZGVmIENGR19FTkVUCisjaWZuZGVmIENPTkZJR19TWVNfRU5FVAogCSN1bmRlZiBDT05GSUdfQ01EX05FVAogI2Vsc2UKIAkjZGVmaW5lIENPTkZJR19DTURfUElORwpAQCAtMjQ1LDEyICsyNDUsMTIgQEAKICNlbmRpZgogCiAvKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zICovCi0jZGVmaW5lCUNGR19QUk9NUFQJIlUtQm9vdC1tT05TdFI+ICIKLSNkZWZpbmUJQ0ZHX0NCU0laRQk1MTIJLyogc2l6ZSBvZiBjb25zb2xlIGJ1ZmZlciAqLwotI2RlZmluZQlDRkdfUEJTSVpFCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE1CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAotI2RlZmluZQlDRkdfTE9BRF9BRERSCTB4MTIwMDAwMDAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIlUtQm9vdC1tT05TdFI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJNTEyCS8qIHNpemUgb2YgY29uc29sZSBidWZmZXIgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KSAvKiBwcmludCBidWZmZXIgc2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTUJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAorI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkweDEyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKICNkZWZpbmUJQ09ORklHX0JPT1RERUxBWQkzMAogI2RlZmluZQlDT05GSUdfQk9PVEFSR1MJCSJyb290PXJvbWZzIgpAQCAtMjYyLDggKzI2Miw4IEBACiAjZGVmaW5lCUNPTkZJR19FVEhBRERSCQkwMDpFMDowQzowMDowMDpGRAogCiAvKiBhcmNoaXRlY3R1cmUgZGVwZW5kZW50IGNvZGUgKi8KLSNkZWZpbmUJQ0ZHX1VTUl9FWENFUAkvKiB1c2VyIGV4Y2VwdGlvbiAqLwotI2RlZmluZSBDRkdfSFoJMTAwMAorI2RlZmluZQlDT05GSUdfU1lTX1VTUl9FWENFUAkvKiB1c2VyIGV4Y2VwdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCTEwMDAKIAogI2RlZmluZQlDT05GSUdfUFJFQk9PVAkJImVjaG8gVS1CT09UIGZvciBNTDQwMTtzZXRlbnYgcHJlYm9vdDtlY2hvIgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbWw1MDcuaCBiL2luY2x1ZGUvY29uZmlncy9tbDUwNy5oCmluZGV4IDIyYTk3MmYuLmM2Mzc5MDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tbDUwNy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tbDUwNy5oCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiLi4vYm9hcmQveGlsaW54L21sNTA3L3hwYXJhbWV0ZXJzLmgiCiAKIC8qTWVtIE1hcCovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFX01CCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkVfTUIJMjU2CiAKIC8qRW52Ki8KICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0zNCwxMiArMzQsMTIgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoWFBBUl9GTEFTSF9NRU0wX0JBU0VBRERSK0NPTkZJR19FTlZfT0ZGU0VUKQogCiAvKk1pc2MqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkibWw1MDc6LyMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkibWw1MDc6LyMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCQkiZWNobyBVLUJvb3QgaXMgdXAgYW5kIHJ1bm5pbmluZzsiCiAKIC8qRmxhc2gqLwotI2RlZmluZQlDRkdfRkxBU0hfU0laRQkJKDMyKjEwMjQqMTAyNCkKLSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9TRUNUCTI1OQorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgzMioxMDI0KjEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU5CiAjZGVmaW5lIE1URElEU19ERUZBVUxUCQkibm9yMD1tbDUwNy1mbGFzaCIKICNkZWZpbmUgTVREUEFSVFNfREVGQVVMVAkibXRkcGFydHM9bWw1MDctZmxhc2g6LSh1c2VyKSIKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21vZG5ldDUwLmggYi9pbmNsdWRlL2NvbmZpZ3MvbW9kbmV0NTAuaAppbmRleCA4ZjQwMTFhLi5jNGY1Mjg2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbW9kbmV0NTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbW9kbmV0NTAuaApAQCAtNDUsOCArNDUsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtODQsNyArODQsNyBAQAogI2RlZmluZSBDT05GSUdfTkVUTUFTSyAgICAgICAgICAyNTUuMjU1LjI1NS4wCiAjZGVmaW5lIENPTkZJR19JUEFERFIJCTE5Mi4xNjguMzAuMgogI2RlZmluZSBDT05GSUdfU0VSVkVSSVAgICAgICAgICAxOTIuMTY4LjMwLjEyMgotI2RlZmluZSBDRkdfRVRIX1BIWV9BRERSICAgICAgICAweDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9QSFlfQUREUiAgICAgICAgMHgxMDAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfVEFHICAgICAgLyogc3VibWl0IGJvb3RhcmdzIHRvIGtlcm5lbCAqLwogCiAvKiNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkxMCovCkBAIC0xMDEsMjQgKzEwMSwyNCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIm1vZG5ldDUwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJtb2RuZXQ1MCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgwMDUwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDUwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTkwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMiBrSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTkwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMiBrSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTU1LDE5ICsxNTUsMTkgQEAKICNkZWZpbmUgUEhZU19FWFRfMQkJMHgzMDAwMDAwMCAvKiBFeHRlbnNpb25zIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19FWFRfU0laRQkJMHgwMTAwMDAwMCAvKiAzMiBNQiBtZW1vcnkgbWFwcGVkIEkvTyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCVBIWVNfRkxBU0hfMV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJUEhZU19GTEFTSF8xX1NJWkUKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMzUJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQUlOX1NFQ1RfU0laRSAgICAgIDB4MDAwMTAwMDAgIC8qIG1haW4gc2l6ZSBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkzNQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUlOX1NFQ1RfU0laRSAgICAgIDB4MDAwMTAwMDAgIC8qIG1haW4gc2l6ZSBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKiBlbnZpcm9ubWVudCBzZXR0aW5ncyAqLwogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbW90aW9ucHJvLmggYi9pbmNsdWRlL2NvbmZpZ3MvbW90aW9ucHJvLmgKaW5kZXggY2FlNDlkZS4uYjNmMTZkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21vdGlvbnByby5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tb3Rpb25wcm8uaApAQCAtNzUsNyArNzUsNyBAQAogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX05FVENPTlNPTEUJMQkvKiBuZXR3b3JrIGNvbnNvbGUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAKIC8qCkBAIC0xNjYsMTMgKzE2NiwxMyBAQAogLyoKICAqIENsb2NrIGNvbmZpZ3VyYXRpb246IFNZU19YVEFMSU4gPSAzM01IegogICovCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMAogCiAKIC8qCiAgKiBTZXQgSVBCIHNwZWVkIHRvIDEwME1IegogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCiAKIAogLyoKQEAgLTE4Myw4ICsxODMsOCBAQAogICogU2V0dGluZyBNQkFSIHRvIG90aGVyd2lzZSB3aWxsIGNhdXNlIHN5c3RlbSBoYW5nIHdoZW4gdXNpbmcgU21hcnRETUEgc3VjaAogICogYXMgbmV0d29yayBjb21tYW5kcy4KICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAKIC8qCiAgKiBJZiBidWlsZGluZyBmb3IgcnVubmluZyBvdXQgb2YgU0RSQU0sIHRoZW4gTUJBUiBoYXMgYmVlbiBzZXQgdXAgYmVmb3JlaGFuZApAQCAtMTkyLDYxICsxOTIsNjEgQEAKICAqIE1CQVIsIGFzIGdpdmVuIGluIHRoZSBkb2NjdW1lbnRhdGlvbi4KICAqLwogI2lmIFRFWFRfQkFTRSA9PSAweDAwMTAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweGYwMDAwMDAwCiAjZWxzZSAvKiBURVhUX0JBU0UgIT0gMHgwMDEwMDAwMCAqLwotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKICNlbmRpZiAvKiBURVhUX0JBU0UgPT0gMHgwMDEwMDAwMCAqLwogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jZGVmaW5lIENGR19SQU1CT09UCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCQkxCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgPDwgMTApCS8qIDEgTWlCIGZvciBtYWxsb2MoKSAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogaW5pdGlhbCBtZW0gbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCA8PCAxMCkJLyogMSBNaUIgZm9yIG1hbGxvYygpICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogaW5pdGlhbCBtZW0gbWFwIGZvciBMaW51eCAqLwogCiAKIC8qCiAgKiBDaGlwIHNlbGVjdHMgY29uZmlndXJhdGlvbgogICovCiAvKiBCb290IENoaXBzZWxlY3QgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDQ1RDAwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDQ1RDAwCiAKIC8qIEZsYXNoIG1lbW9yeSBhZGRyZXNzaW5nICovCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUgQ0ZHX0NTMF9DRkcJCUNGR19CT09UQ1NfQ0ZHCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NUQVJUCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NGRwkJQ09ORklHX1NZU19CT09UQ1NfQ0ZHCiAKIC8qIER1YWwgUG9ydCBTUkFNIC0tIEtvbGxtb3JnZW4gRHJpdmUgbWVtb3J5IGFkZHJlc3NpbmcgKi8KLSNkZWZpbmUgQ0ZHX0NTMV9TVEFSVAkJMHg1MDAwMDAwMAotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4MTAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9DRkcJCTB4MDUwNTU4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU1RBUlQJCTB4NTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MDUwNTU4MDAKIAogLyogTG9jYWwgcmVnaXN0ZXIgYWNjZXNzICovCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCTB4NTAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDEwMDAwCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDA1MDU1ODAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCQkweDUwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCQkweDA1MDU1ODAwCiAKIC8qIEFueWJ1cyBDb21wYWN0Q29tIE1vZHVsZSBtZW1vcnkgYWRkcmVzc2luZyAqLwotI2RlZmluZSBDRkdfQ1MzX1NUQVJUCQkweDUwMDIwMDAwCi0jZGVmaW5lIENGR19DUzNfU0laRQkJMHgxMDAwMAotI2RlZmluZSBDRkdfQ1MzX0NGRwkJMHgwNTA1NTgwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TVEFSVAkJMHg1MDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TSVpFCQkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0NGRwkJMHgwNTA1NTgwMAogCiAvKiBObyBidXJzdCBhbmQgZGVhZCBjeWNsZSA9IDIgZm9yIGFsbCBDU3MgKi8KLSNkZWZpbmUgQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DU19ERUFEQ1lDTEUJMHgyMjIyMjIyMgorI2RlZmluZSBDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MjIyMjIyMjIKIAogCiAvKgpAQCAtMjYyLDEzICsyNjIsMTMgQEAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF8xNkJJVAkJLyogRmxhc2ggaXMgMTYtYml0ICovCiAKIC8qCkBAIC0yODQsMTQgKzI4NCwxNCBAQAogLyoKICAqIElERS9BVEEgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCTB4MDA2MAotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJQ0ZHX0FUQV9EQVRBX09GRlNFVAotI2RlZmluZSBDRkdfQVRBX1NUUklERQkJNAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkweDAwNjAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAlDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KIAogCkBAIC0yOTksMjUgKzI5OSwyNSBAQAogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMgkvKiBzZWxlY3QgSTJDIG1vZHVsZSAjMiAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBzZWxlY3QgSTJDIG1vZHVsZSAjMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkxCS8qIDIgYnl0ZXMgcGVyIHdyaXRlIGN5Y2xlICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk1CS8qIDJtcy9jeWNsZSArIDNtcyBleHRyYSAqLwotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMJCTEJLyogMiBFRVBST01zIChhZGRyOjUwLDUyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTEJLyogMiBieXRlcyBwZXIgd3JpdGUgY3ljbGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk1CS8qIDJtcy9jeWNsZSArIDNtcyBleHRyYSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCQkxCS8qIDIgRUVQUk9NcyAoYWRkcjo1MCw1MikgKi8KIAogCiAvKgogICogUlRDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfUlRDX0RTMTMzNwkxCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDY4CiAKIAogLyoKQEAgLTM1NCw3ICszNTQsNyBAQAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogLyogVGhpcyBoYXMgdG8gYmUgYSBtdWx0aXBsZSBvZiB0aGUgRmxhc2ggc2VjdG9yIHNpemUgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MTAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAKQEAgLTM3NCw0OCArMzc0LDQ4IEBACiAgKiBUaW1lcjogQ0FOMi9HUElPCiAgKiBQU0M2L0lSREE6IEdQSU8gKGRlZmF1bHQpCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDExMDVhMDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MTEwNWEwMDQKIAogCiAvKgogICogTW90aW9uLVBSTydzIENQTEQgcmV2aXNpb24gY29udHJvbCByZWdpc3RlcgogICovCi0jZGVmaW5lIENQTERfUkVWX1JFR0lTVEVSCShDRkdfQ1MyX1NUQVJUICsgMHgwNikKKyNkZWZpbmUgQ1BMRF9SRVZfUkVHSVNURVIJKENPTkZJR19TWVNfQ1MyX1NUQVJUICsgMHgwNikKIAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwM2UwMDAwMAkvKiAxIC4uLiA2MiBNaUIgaW4gRFJBTSAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAzZTAwMDAwCS8qIDEgLi4uIDYyIE1pQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIwMDAwMAkvKiBkZWZhdWx0IGtlcm5lbCBsb2FkIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQga2VybmVsIGxvYWQgYWRkciAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KIAogCiAvKiBOb3QgbmVlZGVkIGZvciBNUEMgNXh4eCBVLUJvb3QsIGJ1dCB1c2VkIGJ5IHRvb2xzL3VwZGF0ZXIgKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZmYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZmYwMDEwMAogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCiAjZGVmaW5lIENPTkZJR19PRl9MSUJGRFQJMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21wMnVzYi5oIGIvaW5jbHVkZS9jb25maWdzL21wMnVzYi5oCmluZGV4IGJhMWVkMGQuLjJmZmVhZTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tcDJ1c2IuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXAydXNiLmgKQEAgLTQ1LDkgKzQ1LDkgQEAKICNkZWZpbmUgQ09ORklHX1NFVFVQX01FTU9SWV9UQUdTIDEKICNkZWZpbmUgQ09ORklHX0lOSVRSRF9UQUcJMQogCi0jZGVmaW5lIENGR19BVE1FTF9QTExfSU5JVF9CVUcJMQorI2RlZmluZSBDT05GSUdfU1lTX0FUTUVMX1BMTF9JTklUX0JVRwkxCiAjaWZuZGVmIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQKLSNkZWZpbmUgQ0ZHX1VTRV9NQUlOX09TQ0lMTEFUT1IJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTRV9NQUlOX09TQ0lMTEFUT1IJMQogLyogZmxhc2ggKi8KICNkZWZpbmUgTUNfUFVJQV9WQUwJMHgwMDAwMDAwMAogI2RlZmluZSBNQ19QVVBfVkFMCTB4MDAwMDAwMDAKQEAgLTgxLDEyICs4MSwxMiBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAKLSNkZWZpbmUgQ0ZHX0FUOTFDX0JSR1JfRElWSVNPUgkzMwkvKiBoYXJkY29kZSBzbyBubyBfX2RpdnNpMyA6IEFUOTFDX01BU1RFUl9DTE9DSyAvKGJhdWRyYXRlICogMTYpICovCisjZGVmaW5lIENPTkZJR19TWVNfQVQ5MUNfQlJHUl9ESVZJU09SCTMzCS8qIGhhcmRjb2RlIHNvIG5vIF9fZGl2c2kzIDogQVQ5MUNfTUFTVEVSX0NMT0NLIC8oYmF1ZHJhdGUgKiAxNikgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTEwNywyNSArMTA3LDI1IEBACiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCTEKICNkZWZpbmUgQ09ORklHX0FUOTFDX1BRRlBfVUhQQlVHIDEKIAotI3VuZGVmIENGR19VU0JfT0hDSV9CT0FSRF9JTklUCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCQlBVDkxX1VTQl9IT1NUX0JBU0UKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkJImF0OTFybTkyMDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCQkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCQlBVDkxX1VTQl9IT1NUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJCSJhdDkxcm05MjAwIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CiAKICN1bmRlZiBDT05GSUdfSEFSRF9JMkMKIAogI2lmZGVmIENPTkZJR19IQVJEX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkwCS8qIG5vdCB1c2VkICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTAJLyogbm90IHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTAJLyogbm90IHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTAJLyogbm90IHVzZWQgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19SUzVDMzcyQQkJLyogUklDT0ggSTJDIFJUQyAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4MzIKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkweDMyCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cKICNlbmRpZgogLyogc3RpbGwgYWJvdXQgMjAga0IgZnJlZSB3aXRoIHRoaXMgZGVmaW5lZCAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkgICAgICAzCiAKQEAgLTE3NCwxNCArMTc0LDE0IEBACiAjZW5kaWYKIAogCi0jZGVmaW5lIENGR19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCiAKICNkZWZpbmUgQ09ORklHX05SX0RSQU1fQkFOS1MJMQogI2RlZmluZSBQSFlTX1NEUkFNCQkweDIwMDAwMDAwCiAjZGVmaW5lIFBIWVNfU0RSQU1fU0laRQkJMHgwODAwMDAwMAkvKiAxMjggbWVncyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCVBIWVNfU0RSQU0KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlDRkdfTUVNVEVTVF9TVEFSVCArIFBIWVNfU0RSQU1fU0laRSAtIDI2MjE0NAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJUEhZU19TRFJBTQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQlDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyBQSFlTX1NEUkFNX1NJWkUgLSAyNjIxNDQKIAogI2RlZmluZSBDT05GSUdfRFJJVkVSX0VUSEVSCiAjZGVmaW5lIENPTkZJR19ORVRfUkVUUllfQ09VTlQJCTIwCkBAIC0xODksMzUgKzE4OSwzNSBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJCTB4MTAwMDAwMDAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkJMHgxMDAwMDAwICAvKiAxNiBtZWdzIG1haW4gZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTI1NgotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkJKDIgKiBDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCQkoMiAqIENGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0xPQ0tfVE9VVAkJKDEwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0ICovCi0jZGVmaW5lIENGR19GTEFTSF9VTkxPQ0tfVE9VVAkJKDEwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkJCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCQkoMiAqIENPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkJKDIgKiBDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAkJKDEwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFNldCBMb2NrIEJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCQkoMTAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICQkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkJMHgyMDAwMAkJLyogYWZ0ZXIgdS1ib290LmJpbiAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCQkoQ0ZHX0ZMQVNIX0JBU0UrQ09ORklHX0VOVl9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrQ09ORklHX0VOVl9PRkZTRVQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJCTB4MjAwMDAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDIxMDAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMTAwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkzMgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkzMgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19ERVZJQ0VfREVSRUdJU1RFUiAgICAgICAgICAgLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfREVSRUdJU1RFUiAgICAgICAgICAgLyogbmVlZHMgZGV2aWNlX2RlcmVnaXN0ZXIgKi8KICNkZWZpbmUgTElUVExFRU5ESUFOICAgICAgICAgICAgMSAgICAgICAvKiB1c2VkIGJ5IHVzYl9vaGNpLmMgICovCiAKLSNkZWZpbmUgQ0ZHX0haIDEwMDAKLSNkZWZpbmUgQ0ZHX0haX0NMT0NLIChBVDkxQ19NQVNURVJfQ0xPQ0svMikJLyogQVQ5MUNfVEMwX0NNUiBpcyBpbXBsaWNpdGx5IHNldCB0byAqLworI2RlZmluZSBDT05GSUdfU1lTX0haIDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWl9DTE9DSyAoQVQ5MUNfTUFTVEVSX0NMT0NLLzIpCS8qIEFUOTFDX1RDMF9DTVIgaXMgaW1wbGljaXRseSBzZXQgdG8gKi8KIAkJCQkJCS8qIEFUOTFDX1RDX1RJTUVSX0RJVjFfQ0xPQ0sgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgzMioxMDI0KQkvKiByZWd1bGFyIHN0YWNrICovCkBAIC0yMjYsNyArMjI2LDcgQEAKICNlcnJvciBDT05GSUdfVVNFX0lSUSBub3Qgc3VwcG9ydGVkCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJIDEJLyogZW5ibGUgbnVsbCBkZXZpY2UJCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJIDEJLyogZW5ibGUgbnVsbCBkZXZpY2UJCSovCiAjdW5kZWYgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkvKiBlbmFibGUgc2lsZW50IHN0YXJ0dXAJKi8KIAogI2RlZmluZSBDT05GSUdfQVVUT0JPT1RfS0VZRUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tcGM3NDQ4aHBjMi5oIGIvaW5jbHVkZS9jb25maWdzL21wYzc0NDhocGMyLmgKaW5kZXggMzA4YTdiOS4uNDgzYmM1MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21wYzc0NDhocGMyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21wYzc0NDhocGMyLmgKQEAgLTQyLDE4ICs0MiwxOCBAQAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQgKi8KICNkZWZpbmUgQ09ORklHX0FMVElWRUMJCS8qIHVuZGVmIHRvIGRpc2FibGUgKi8KIAotI2RlZmluZSBDRkdfQk9BUkRfTkFNRQkJIk1QQzc0NDggSFBDIElJIgorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJNUEM3NDQ4IEhQQyBJSSIKICNkZWZpbmUgQ09ORklHX0lERU5UX1NUUklORwkiIEZyZWVzY2FsZSBNUEM3NDQ4IEhQQyBJSSIKIAotI2RlZmluZSBDRkdfT0NOX0NMSwkJMTMzMDAwMDAwCS8qIDEzMyBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NPTkZJR19CVVNfQ0xLCTEzMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTl9DTEsJCTEzMzAwMDAwMAkvKiAxMzMgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09ORklHX0JVU19DTEsJMTMzMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0NMS19TUFJFQUQJCS8qIEVuYWJsZSBTcHJlYWQtU3BlY3RydW0gQ2xvY2sgZ2VuZXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NMS19TUFJFQUQJCS8qIEVuYWJsZSBTcHJlYWQtU3BlY3RydW0gQ2xvY2sgZ2VuZXJhdGlvbiAqLwogCiAjdW5kZWYgIENPTkZJR19FQ0MJCS8qIGRpc2FibGUgRUNDIHN1cHBvcnQgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgSW5pdGlhbGl6YXRpb24gRnVuY3Rpb25zIHRvIGJlIGNhbGxlZCAqLwotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX1IKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCkBAIC03MCwxMCArNzAsMTAgQEAKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAkvKiBjb25zb2xlIGJhdWRyYXRlID0gMTE1MDAwICovCiAKLS8qI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIgKi8KLSN1bmRlZiBDRkdfSFVTSF9QQVJTRVIKKy8qI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCisjdW5kZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgogCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKIC8qIFBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkxCkBAIC05MCwxOSArOTAsMTkgQEAKICAqCiAgKiB3aGF0IHRvIGRvOgogICogSWYgeW91IGhhdmUgaGFja2VkIGEgc2VyaWFsIGNhYmxlIG9udG8gdGhlIHNlY29uZCBEVUFSVCBjaGFubmVsLAotICogY2hhbmdlIHRoZSBDRkdfRFVBUlQgcG9ydCBmcm9tIDEgdG8gMCBiZWxvdy4KKyAqIGNoYW5nZSB0aGUgQ09ORklHX1NZU19EVUFSVCBwb3J0IGZyb20gMSB0byAwIGJlbG93LgogICoKICAqLwogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlDRkdfT0NOX0NMSyAqIDgKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJQ09ORklHX1NZU19PQ05fQ0xLICogOAogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19UU0kxMDhfQ1NSX1JTVF9CQVNFKzB4NzgwOCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX1RTSTEwOF9DU1JfUlNUX0JBU0UrMHg3QzA4KQotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19UU0kxMDhfQ1NSX1JTVF9CQVNFKzB4NzgwOCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfVFNJMTA4X0NTUl9SU1RfQkFTRSsweDdDMDgpCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwkvKiBhdXRvYm9vdCBhZnRlciAzIHNlY29uZHMgKi8KICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCkBAIC0xMzcsNyArMTM3LDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkwCS8qIGVjaG8gb2ZmIGZvciBzZXJpYWwgZG93bmxvYWQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2VzICovCiAKICN1bmRlZiBDT05GSUdfV0FUQ0hET0cJCS8qIHdhdGNoZG9nIGRpc2FibGVkICovCiAKQEAgLTE3MiwzNyArMTcyLDM3IEBACiAKIC8qc2V0IGRhdGUgaW4gdS1ib290Ki8KICNkZWZpbmUgQ09ORklHX1JUQ19NNDhUMzVBCi0jZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhmYzAwMDAwMAotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHg4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZmMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkweDgwMDAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUJCTEKICNkZWZpbmUgQ09ORklHX1RTSTEwOF9JMkMKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIEkyQyBFRVBST00gcGFnZSAxICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogSTJDIEVFUFJPTSBwYWdlIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2RlZmluZSBDT05GSUdfS0dEQl9CQVVEUkFURQkxMTUyMDAJLyogc3BlZWQgdG8gcnVuIGtnZGIgc2VyaWFsIHBvcnQgYXQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwN2MwMDAwMAkvKiA0IC4uLiAxMjQgTUIgaW4gRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDdjMDAwMDAJLyogNCAuLi4gMTI0IE1CIGluIERSQU0gKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MDA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgwMDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0yMTUsNDYgKzIxNSw0NiBAQAogICovCiAKIC8qCi0gKiBXaGVuIGxvY2tpbmcgZGF0YSBpbiBjYWNoZSB5b3Ugc2hvdWxkIHBvaW50IHRoZSBDRkdfSU5JVF9SQU1fQUREUkVTUworICogV2hlbiBsb2NraW5nIGRhdGEgaW4gY2FjaGUgeW91IHNob3VsZCBwb2ludCB0aGUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSRVNTCiAgKiBUbyBhbiB1bnVzZWQgbWVtb3J5IHJlZ2lvbi4gVGhlIHN0YWNrIHdpbGwgcmVtYWluIGluIGNhY2hlIHVudGlsIFJBTQogICogaXMgaW5pdGlhbGl6ZWQKICAqLwotI3VuZGVmICBDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDA3ZDAwMDAwCS8qIHVudXNlZCBtZW1vcnkgcmVnaW9uICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwLyogbGFyZ2VyIHNwYWNlIC0gd2UgaGF2ZSBTRFJBTSBpbml0aWFsaXplZCAqLworI3VuZGVmICBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MDdkMDAwMDAJLyogdW51c2VkIG1lbW9yeSByZWdpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwLyogbGFyZ2VyIHNwYWNlIC0gd2UgaGF2ZSBTRFJBTSBpbml0aWFsaXplZCAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0IGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCS8qIGZpcnN0IDI1NiBNQiBvZiBTRFJBTSAqLwotI2RlZmluZSBDRkdfU0RSQU0xX0JBU0UJCTB4MTAwMDAwMDAJLyogbmV4dCAyNTZNQiBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAJLyogZmlyc3QgMjU2IE1CIG9mIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX0JBU0UJCTB4MTAwMDAwMDAJLyogbmV4dCAyNTZNQiBvZiBTRFJBTSAqLwogCi0jZGVmaW5lIENGR19TRFJBTTJfQkFTRQkweDQwMDAwMDAwCS8qIGJlZ2lubmluZyBvZiBub24tY2FjaGVhYmxlIGFsaWFzIGZvciBTRFJBTSAtIGZpcnN0IDI1Nk1CICovCi0jZGVmaW5lIENGR19TRFJBTTNfQkFTRQkweDUwMDAwMDAwCS8qIG5leHQgTm9uLUNhY2hlYWJsZSAyNTZNQiBvZiBTRFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMl9CQVNFCTB4NDAwMDAwMDAJLyogYmVnaW5uaW5nIG9mIG5vbi1jYWNoZWFibGUgYWxpYXMgZm9yIFNEUkFNIC0gZmlyc3QgMjU2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTNfQkFTRQkweDUwMDAwMDAwCS8qIG5leHQgTm9uLUNhY2hlYWJsZSAyNTZNQiBvZiBTRFJBTSAqLwogCi0jZGVmaW5lIENGR19QQ0lfUEZNX0JBU0UJMHg4MDAwMDAwMAkvKiBQcmVmZXRjaGFibGUgKGNhY2hlYWJsZSkgUENJL1ggUEZNIGFuZCBTRFJBTSBPQ04gKDEyOE1CKzEyOE1CKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QRk1fQkFTRQkweDgwMDAwMDAwCS8qIFByZWZldGNoYWJsZSAoY2FjaGVhYmxlKSBQQ0kvWCBQRk0gYW5kIFNEUkFNIE9DTiAoMTI4TUIrMTI4TUIpICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU0zMl9CQVNFCTB4RTAwMDAwMDAJLyogTm9uLUNhY2hlYWJsZSBQQ0kvWCBNRU0gYW5kIFNEUkFNIE9DTiAoMTI4TUIrMTI4TUIpICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTTMyX0JBU0UJMHhFMDAwMDAwMAkvKiBOb24tQ2FjaGVhYmxlIFBDSS9YIE1FTSBhbmQgU0RSQU0gT0NOICgxMjhNQisxMjhNQikgKi8KIAotI2RlZmluZSBDRkdfTUlTQ19SRUdJT05fQkFTRQkweGYwMDAwMDAwCS8qIEJhc2UgQWRkcmVzcyBmb3IgKFBDSS9YICsgRmxhc2gpIHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAkvKiBCYXNlIEFkZHJlc3MgZm9yIChQQ0kvWCArIEZsYXNoKSByZWdpb24gKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkweGZmMDAwMDAwCS8qIEJhc2UgQWRkcmVzcyBvZiBGbGFzaCBkZXZpY2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UyCTB4ZmUwMDAwMDAJLyogQWx0ZXJuYXRlIEZsYXNoIEJhc2UgQWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJMHhmZjAwMDAwMAkvKiBCYXNlIEFkZHJlc3Mgb2YgRmxhc2ggZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTIJMHhmZTAwMDAwMAkvKiBBbHRlcm5hdGUgRmxhc2ggQmFzZSBBZGRyZXNzICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQkvKiB3ZSB3aWxsIHVzZSB1cCB0byAyNTZNIG1lbW9yeSBmb3IgY2F1c2Ugd2UgYXJlIHNob3J0IG9mIEJBVFMgKi8KIAogI2RlZmluZSBQQ0kwX0lPX0JBU0VfQk9PVE0JMHhmZDAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4M2ZmZmZmMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiB1LWJvb3QgY29kZSBiYXNlICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweDNmZmZmZjAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiB1LWJvb3QgY29kZSBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLwogCiAvKiBQZXJpcGhlcmFsIERldmljZSBzZWN0aW9uICovCiAKQEAgLTI2Miw4ICsyNjIsOCBAQAogICogUmVzb3VyY2VzIG9uIHRoZSBUc2kxMDgKICAqLwogCi0jZGVmaW5lIENGR19UU0kxMDhfQ1NSX1JTVF9CQVNFCTB4QzAwMDAwMDAJLyogVHNpMTA4IENTUiBiYXNlIGFmdGVyIHJlc2V0ICovCi0jZGVmaW5lIENGR19UU0kxMDhfQ1NSX0JBU0UJQ0ZHX1RTSTEwOF9DU1JfUlNUX0JBU0UJLyogUnVudGltZSBUc2kxMDggQ1NSIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19UU0kxMDhfQ1NSX1JTVF9CQVNFCTB4QzAwMDAwMDAJLyogVHNpMTA4IENTUiBiYXNlIGFmdGVyIHJlc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfVFNJMTA4X0NTUl9CQVNFCUNPTkZJR19TWVNfVFNJMTA4X0NTUl9SU1RfQkFTRQkvKiBSdW50aW1lIFRzaTEwOCBDU1IgYmFzZSAqLwogCiAjZGVmaW5lIEVOQUJMRV9QQ0lfQ1NSX0JBUgkvKiBlbmFibGVzIGFjY2VzcyB0byBUc2kxMDggQ1NScyBmcm9tIHRoZSBQQ0kvWCBidXMgKi8KIApAQCAtMjg3LDc0ICsyODcsNzQgQEAKIC8qIFBDSSBNRU1PUlkgTUFQIHNlY3Rpb24gKi8KIAogLyogUENJIHZpZXcgb2YgU3lzdGVtIE1lbW9yeSAqLwotI2RlZmluZSBDRkdfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfU0laRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKIAogLyogUENJIE1lbW9yeSBTcGFjZSAqLwotI2RlZmluZSBDRkdfUENJX01FTV9CVVMJCShDRkdfUENJX01FTV9QSFlTKQotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCShDRkdfUENJX01FTTMyX0JBU0UpCS8qIDB4RTAwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1NiBNQiBzcGFjZSBmb3IgUENJL1ggTWVtICsgU0RSQU0gT0NOICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CVVMJCShDT05GSUdfU1lTX1BDSV9NRU1fUEhZUykKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJKENPTkZJR19TWVNfUENJX01FTTMyX0JBU0UpCS8qIDB4RTAwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTYgTUIgc3BhY2UgZm9yIFBDSS9YIE1lbSArIFNEUkFNIE9DTiAqLwogCiAvKiBQQ0kgSS9PIFNwYWNlICovCi0jZGVmaW5lIENGR19QQ0lfSU9fQlVTCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfSU9fUEhZUwkJMHhmYTAwMDAwMAkvKiBDaGFuZ2VkIGZyb20gZmQwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCTB4ZmEwMDAwMDAJLyogQ2hhbmdlZCBmcm9tIGZkMDAwMDAwICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDAxMDAwMDAwCS8qIDE2TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgwMTAwMDAwMAkvKiAxNk1CICovCiAKICNkZWZpbmUgX0lPX0JBU0UJCTB4MDAwMDAwMDAJLyogcG9pbnRzIHRvIFBDSSBJL08gc3BhY2UgICAgICAqLwogCiAvKiBQQ0kgQ29uZmlnIFNwYWNlIG1hcHBpbmcgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DRkdfQkFTRQkweGZiMDAwMDAwCS8qIENoYW5nZWQgZnJvbSBGRTAwMDAwMCAqLwotI2RlZmluZSBDRkdfUENJX0NGR19TSVpFCTB4MDEwMDAwMDAJLyogMTZNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfQkFTRQkweGZiMDAwMDAwCS8qIENoYW5nZWQgZnJvbSBGRTAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DRkdfU0laRQkweDAxMDAwMDAwCS8qIDE2TUIgKi8KIAotI2RlZmluZSBDRkdfSUJBVDBVCTB4RkUwMDAzRkYKLSNkZWZpbmUgQ0ZHX0lCQVQwTAkweEZFMDAwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVCTB4RkUwMDAzRkYKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwJMHhGRTAwMDAwMgogCi0jZGVmaW5lIENGR19JQkFUMVUJMHgwMDAwN0ZGRgotI2RlZmluZSBDRkdfSUJBVDFMCTB4MDAwMDAwMTIKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJMHgwMDAwN0ZGRgorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkweDAwMDAwMDEyCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyVQkweDgwMDA3RkZGCi0jZGVmaW5lIENGR19JQkFUMkwJMHg4MDAwMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkweDgwMDA3RkZGCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCTB4ODAwMDAwMjIKIAotI2RlZmluZSBDRkdfSUJBVDNVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19JQkFUNFUJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSUJBVDRMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ1VQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19JQkFUNUwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfSUJBVDZVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lCQVQ2TAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19JQkFUN1UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfSUJBVDdMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TAkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwVQkweEUwMDAzRkZGCi0jZGVmaW5lIENGR19EQkFUMEwJMHhFMDAwMDAyQQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQkweEUwMDAzRkZGCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCTB4RTAwMDAwMkEKIAotI2RlZmluZSBDRkdfREJBVDFVCTB4MDAwMDdGRkYKLSNkZWZpbmUgQ0ZHX0RCQVQxTAkweDAwMDAwMDEyCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVCTB4MDAwMDdGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwJMHgwMDAwMDAxMgogCi0jZGVmaW5lIENGR19EQkFUMlUJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREJBVDJMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RCQVQzVQkweEMwMDAwMDAzCi0jZGVmaW5lIENGR19EQkFUM0wJMHhDMDAwMDAyQQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQkweEMwMDAwMDAzCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMCTB4QzAwMDAwMkEKIAotI2RlZmluZSBDRkdfREJBVDRVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19EQkFUNVUJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREJBVDVMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19EQkFUNkwJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfREJBVDdVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wJMHgwMDAwMDAwMAogCiAvKiBJMkMgYWRkcmVzc2VzIGZvciB0aGUgdHdvIERJTU0gU1BEIGNoaXBzICovCiAjZGVmaW5lIERJTU0wX0kyQ19BRERSCTB4NTEKQEAgLTM2NSwyMSArMzY1LDIxIEBACiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDg8PDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4PDwyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIEZsYXNoIGNhbiBiZSBhdCBvbmUgb2YgdHdvIGFkZHJlc3NlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBGbGFzaCBjYW4gYmUgYXQgb25lIG9mIHR3byBhZGRyZXNzZXMgKi8KICNkZWZpbmUgRkxBU0hfQkFOS19TSVpFCQkweDAxMDAwMDAwCS8qIDE2IE1CIFRvdGFsICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIC8qIENGR19GTEFTSF9CQVNFMiAqLyB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgLyogQ09ORklHX1NZU19GTEFTSF9CQVNFMiAqLyB9CiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfV1JJVEVfU1dBUFBFRF9EQVRBCiAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTI4KQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OVlJBTQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkMwMDAwMDAKQEAgLTM5MCwxNiArMzkwLDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMMkNSIHNldHVwIC0tIG1ha2Ugc3VyZSB0aGlzIGlzIHJpZ2h0IGZvciB5b3VyIGJvYXJkIQogICogbG9vayBpbiBpbmNsdWRlL21wYzc0eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KLSN1bmRlZiBDRkdfTDIKKyN1bmRlZiBDT05GSUdfU1lTX0wyCiAKICNkZWZpbmUgTDJfSU5JVAkJMAogI2RlZmluZSBMMl9FTkFCTEUJKEwyX0lOSVQgfCBMMkNSX0wyRSkKQEAgLTQxMSw1ICs0MTEsNSBAQAogICovCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCTB4MDIJLyogU29mdHdhcmUgcmVib290ICovCi0jZGVmaW5lIENGR19TRVJJQUxfSEFOR19JTl9FWENFUFRJT04KKyNkZWZpbmUgQ09ORklHX1NZU19TRVJJQUxfSEFOR19JTl9FWENFUFRJT04KICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXByMi5oIGIvaW5jbHVkZS9jb25maWdzL21wcjIuaAppbmRleCA2YjM3OGFjLi42ZWJiMWUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXByMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tcHIyLmgKQEAgLTQ2LDQ0ICs0Niw0NCBAQAogI2RlZmluZSBDT05GSUdfTVBSMgkJMQogCiAvKiBVLUJvb3QgaW50ZXJuYWxzICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlICovCi0jZGVmaW5lIENGR19QQlNJWkUJCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJNTEyCS8qIEJ1ZmZlciBzaXplIGZvciBCb290IEFyZ3VtZW50cyBwYXNzZWQgdG8ga2VybmVsICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CS8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUgc2V0dGluZ3MgZm9yIHRoaXMgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFICsgMzIgKiAxMDI0ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCTUxMgkvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgcGFzc2VkIHRvIGtlcm5lbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDMyICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgogCiAvKiBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4OEMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCSg2NCAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDhDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKIAogLyogRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhBMDAwMDAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhBMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDEyOCAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX0VOVl9TRUNUX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAogCiAvKiBDbG9ja3MgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkyNDAwMDAwMAogI2RlZmluZSBUTVVfQ0xLX0RJVklERVIJCTQJLyogNCAoZGVmYXVsdCksIDE2LCA2NCwgMjU2IG9yIDEwMjQgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogLyogVUFSVCAqLwogI2RlZmluZSBDT05GSUdfU0NJRl9DT05TT0xFCTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9tczc3MjBzZS5oIGIvaW5jbHVkZS9jb25maWdzL21zNzcyMHNlLmgKaW5kZXggZjMwODQ2MC4uNTIwYmFjMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL21zNzcyMHNlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL21zNzcyMHNlLmgKQEAgLTUyLDc1ICs1Miw3NSBAQAogI2RlZmluZSBNUzc3MjBTRV9GTEFTSF9CQVNFXzEJCTB4QTAwMDAwMDAKICNkZWZpbmUgTVM3NzIwU0VfRkxBU0hfQkFOS19TSVpFCSg4ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0ICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCiAvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgcGFzc2VkIHRvIGtlcm5lbCAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJNTEyCiAvKiBMaXN0IG9mIGxlZ2FsIGJhdWRyYXRlIHNldHRpbmdzIGZvciB0aGlzIGJvYXJkICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgfQogCiAvKiBTQ0lGICovCiAjZGVmaW5lIENPTkZJR19TQ0lGX0NPTlNPTEUJMQogI2RlZmluZSBDT05GSUdfQ09OU19TQ0lGMAkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJTVM3NzIwU0VfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShDRkdfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCU1TNzcyMFNFX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJTVM3NzIwU0VfU0RSQU1fQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJTVM3NzIwU0VfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCSg2NCAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIDMyICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJTVM3NzIwU0VfRkxBU0hfQkFTRV8xCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDEyOCAqIDEwMjQpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2Ci0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMzIgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJTVM3NzIwU0VfRkxBU0hfQkFTRV8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQogCiAKIC8qIEZMQVNIICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCU1TNzcyMFNFX0ZMQVNIX0JBU0VfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCU1TNzcyMFNFX0ZMQVNIX0JBU0VfMQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxNTAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTE1MAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoNjQgKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19FTlZfU0VDVF9TSVpFCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAKIAogLyogQm9hcmQgQ2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwogI2RlZmluZSBUTVVfQ0xLX0RJVklERVIJCTQJLyogNCAoZGVmYXVsdCksIDE2LCA2NCwgMjU2IG9yIDEwMjQgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogLyogUENNQ0lBICovCiAjZGVmaW5lIENPTkZJR19JREVfUENNQ0lBCTEKICNkZWZpbmUgQ09ORklHX01BUlVCVU5fUENDQVJECTEKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EJMQotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCi0jZGVmaW5lIENGR19NQVJVQlVOX01SU0hQQwkweGI4M2ZmZmUwCi0jZGVmaW5lIENGR19NQVJVQlVOX01XMQkJMHhiODQwMDAwMAotI2RlZmluZSBDRkdfTUFSVUJVTl9NVzIJCTB4Yjg1MDAwMDAKLSNkZWZpbmUgQ0ZHX01BUlVCVU5fSU8JCTB4Yjg2MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVJVQlVOX01SU0hQQwkweGI4M2ZmZmUwCisjZGVmaW5lIENPTkZJR19TWVNfTUFSVUJVTl9NVzEJCTB4Yjg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVJVQlVOX01XMgkJMHhiODUwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BUlVCVU5fSU8JCTB4Yjg2MDAwMDAKIAotI2RlZmluZSBDRkdfUElPX01PREUJCTEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QSU9fTU9ERQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JMQotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfTUFSVUJVTl9JTwkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAxRjAJCS8qIGlkZTAgb2Zmc3RlICovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMAkJLyogZGF0YSByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCQkvKiByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDIwMAkJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19NQVJVQlVOX0lPCS8qIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAxRjAJCS8qIGlkZTAgb2Zmc3RlICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTAJCS8qIGRhdGEgcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTAJCS8qIHJlZyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDIwMAkJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLwogCiAjZW5kaWYJLyogX19NUzc3MjBTRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXM3NzIyc2UuaCBiL2luY2x1ZGUvY29uZmlncy9tczc3MjJzZS5oCmluZGV4IDVmNTk3MGIuLjk5OTdjOWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9tczc3MjJzZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tczc3MjJzZS5oCkBAIC01Myw3OSArNTMsNzkgQEAKICNkZWZpbmUgTVM3NzIyU0VfRkxBU0hfQkFTRV8xCSgweEEwMDAwMDAwKQogI2RlZmluZSBNUzc3MjJTRV9GTEFTSF9CQU5LX1NJWkUJKDgqMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJMjU2CQkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggYXJncyBhY2NlcHRlZCBmb3IgbW9uaXRvciBjb21tYW5kcyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCTUxMgkJLyogQnVmZmVyIHNpemUgZm9yIEJvb3QgQXJndW1lbnRzIHBhc3NlZCB0byBrZXJuZWwgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJMjU2CQkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IGFyZ3MgYWNjZXB0ZWQgZm9yIG1vbml0b3IgY29tbWFuZHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJNTEyCQkvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgcGFzc2VkIHRvIGtlcm5lbCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0JLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLwogCiAvKiBTQ0lGICovCiAjZGVmaW5lIENPTkZJR19TQ0lGX0NPTlNPTEUJMQogI2RlZmluZSBDT05GSUdfQ09OU19TQ0lGMAkxCi0jdW5kZWYgIENGR19DT05TT0xFX0lORk9fUVVJRVQJCQkvKiBTdXBwcmVzcyBkaXNwbGF5IG9mIGNvbnNvbGUgaW5mb3JtYXRpb24gYXQgYm9vdCAqLwotI3VuZGVmICBDRkdfQ09OU09MRV9PVkVSV1JJVEVfUk9VVElORQotI3VuZGVmICBDRkdfQ09OU09MRV9FTlZfT1ZFUldSSVRFCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCQkJLyogU3VwcHJlc3MgZGlzcGxheSBvZiBjb25zb2xlIGluZm9ybWF0aW9uIGF0IGJvb3QgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCisjdW5kZWYgIENPTkZJR19TWVNfQ09OU09MRV9FTlZfT1ZFUldSSVRFCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJKE1TNzcyMlNFX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKENGR19NRU1URVNUX1NUQVJUICsgKDYwICogMTAyNCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKE1TNzcyMlNFX1NEUkFNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyAoNjAgKiAxMDI0ICogMTAyNCkpCiAKLSN1bmRlZiAgQ0ZHX0FMVF9NRU1URVNUCQkvKiBFbmFibGUgYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSwgbWVtb3J5IHRlc3QgKi8KLSN1bmRlZiAgQ0ZHX01FTVRFU1RfU0NSQVRDSAkvKiBTY3JhdGNoIGFkZHJlc3MgdXNlZCBieSB0aGUgYWx0ZXJuYXRlIG1lbW9yeSB0ZXN0ICovCisjdW5kZWYgIENPTkZJR19TWVNfQUxUX01FTVRFU1QJCS8qIEVuYWJsZSBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlLCBtZW1vcnkgdGVzdCAqLworI3VuZGVmICBDT05GSUdfU1lTX01FTVRFU1RfU0NSQVRDSAkvKiBTY3JhdGNoIGFkZHJlc3MgdXNlZCBieSB0aGUgYWx0ZXJuYXRlIG1lbW9yeSB0ZXN0ICovCiAKLSN1bmRlZiAgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCS8qIEVuYWJsZSB0ZW1wb3JhcnkgYmF1ZHJhdGUgY2hhbmdlIHdoaWxlIHNlcmlhbCBkb3dubG9hZCAqLworI3VuZGVmICBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCS8qIEVuYWJsZSB0ZW1wb3JhcnkgYmF1ZHJhdGUgY2hhbmdlIHdoaWxlIHNlcmlhbCBkb3dubG9hZCAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCShNUzc3MjJTRV9TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkoNjQgKiAxMDI0ICogMTAyNCkJLyogbWF5YmUgbW9yZSwgYnV0IGlmIHNvIHUtYm9vdCBkb2Vzbid0IGtub3cgYWJvdXQgaXQuLi4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCShNUzc3MjJTRV9TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJKDY0ICogMTAyNCAqIDEwMjQpCS8qIG1heWJlIG1vcmUsIGJ1dCBpZiBzbyB1LWJvb3QgZG9lc24ndCBrbm93IGFib3V0IGl0Li4uICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkoQ0ZHX1NEUkFNX0JBU0UgKyA0ICogMTAyNCAqIDEwMjQpCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzIGZvciBzY3JpcHRzID8hPyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgNCAqIDEwMjQgKiAxMDI0KQkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyBmb3Igc2NyaXB0cyA/IT8gKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShNUzc3MjJTRV9GTEFTSF9CQVNFXzEpCS8qIEFkZHJlc3Mgb2YgdS1ib290IGltYWdlCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShNUzc3MjJTRV9GTEFTSF9CQVNFXzEpCS8qIEFkZHJlc3Mgb2YgdS1ib290IGltYWdlCiAJCQkJCQkJaW4gRmxhc2ggKE5PVCBydW4gdGltZSBhZGRyZXNzIGluIFNEUkFNKSA/IT8gKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgxMjggKiAxMDI0KQkJLyogKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKDI1NiAqIDEwMjQpCQkvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkoMjU2KQkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkoMTI4ICogMTAyNCkJCS8qICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoMjU2ICogMTAyNCkJCS8qIFNpemUgb2YgRFJBTSByZXNlcnZlZCBmb3IgbWFsbG9jKCkgdXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkoMjU2KQkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4ICogMTAyNCAqIDEwMjQpCiAKIC8qIEZMQVNIICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoTVM3NzIyU0VfRkxBU0hfQkFTRV8xKQkvKiBQaHlzaWNhbCBzdGFydCBhZGRyZXNzIG9mIEZsYXNoIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCShNUzc3MjJTRV9GTEFTSF9CQVNFXzEpCS8qIFBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgRmxhc2ggbWVtb3J5ICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE1MAkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIGVhY2gKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNTAJCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBlYWNoCiAJCQkJCQkJRmxhc2ggY2hpcCAqLwogCiAvKiBpZiB5b3UgdXNlIGFsbCBOT1IgRmxhc2ggLCB5b3UgY2hhbmdlIGRpcC1zd2l0Y2guIFBsZWFzZSBzZWUgTVM3NzIyU0UwMSBNYW51YWwuICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFICsgKDAgKiBNUzc3MjJTRV9GTEFTSF9CQU5LX1NJWkUpLCBcCi0JCQkJICBDRkdfRkxBU0hfQkFTRSArICgxICogTVM3NzIyU0VfRkxBU0hfQkFOS19TSVpFKSwgXAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgwICogTVM3NzIyU0VfRkxBU0hfQkFOS19TSVpFKSwgXAorCQkJCSAgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDEgKiBNUzc3MjJTRV9GTEFTSF9CQU5LX1NJWkUpLCBcCiAJCQkJfQogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgzICogMTAwMCkJLyogVGltZW91dCBmb3IgRmxhc2ggZXJhc2Ugb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkJLyogVGltZW91dCBmb3IgRmxhc2ggd3JpdGUgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJKDMgKiAxMDAwKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBzZXQgc2VjdG9yIGxvY2sgYml0IG9wZXJhdGlvbnMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBjbGVhciBsb2NrIGJpdCBvcGVyYXRpb25zIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgzICogMTAwMCkJLyogVGltZW91dCBmb3IgRmxhc2ggZXJhc2Ugb3BlcmF0aW9ucyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMyAqIDEwMDApCS8qIFRpbWVvdXQgZm9yIEZsYXNoIHdyaXRlIG9wZXJhdGlvbnMgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAkoMyAqIDEwMDApCS8qIFRpbWVvdXQgZm9yIEZsYXNoIHNldCBzZWN0b3IgbG9jayBiaXQgb3BlcmF0aW9ucyAoaW4gbXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBjbGVhciBsb2NrIGJpdCBvcGVyYXRpb25zIChpbiBtcykgKi8KIAotI3VuZGVmICBDRkdfRkxBU0hfUFJPVEVDVElPTgkJCS8qIFVzZSBoYXJkd2FyZSBmbGFzaCBzZWN0b3JzIHByb3RlY3Rpb24gaW5zdGVhZCBvZiBVLUJvb3Qgc29mdHdhcmUgcHJvdGVjdGlvbiAqLworI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCQkvKiBVc2UgaGFyZHdhcmUgZmxhc2ggc2VjdG9ycyBwcm90ZWN0aW9uIGluc3RlYWQgb2YgVS1Cb290IHNvZnR3YXJlIHByb3RlY3Rpb24gKi8KIAotI3VuZGVmICBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyN1bmRlZiAgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoOCAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKENPTkZJR19FTlZfU0VDVF9TSVpFKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArICgxICogQ09ORklHX0VOVl9TRUNUX1NJWkUpKQotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19FTlZfQUREUiAtIENGR19GTEFTSF9CQVNFKQkvKiBPZmZzZXQgb2YgZW52IEZsYXNoIHNlY3RvciByZWxhdGl2ZSB0byBDRkdfRkxBU0hfQkFTRSAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMSAqIENPTkZJR19FTlZfU0VDVF9TSVpFKSkKKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCShDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCS8qIE9mZnNldCBvZiBlbnYgRmxhc2ggc2VjdG9yIHJlbGF0aXZlIHRvIENPTkZJR19TWVNfRkxBU0hfQkFTRSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ0ZHX0ZMQVNIX0JBU0UgKyAoMiAqIENPTkZJR19FTlZfU0VDVF9TSVpFKSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgKDIgKiBDT05GSUdfRU5WX1NFQ1RfU0laRSkpCiAKIC8qIEJvYXJkIENsb2NrICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzMzMzMzMzMKICNkZWZpbmUgVE1VX0NMS19ESVZJREVSCQkoNCkJLyogNCAoZGVmYXVsdCksIDE2LCA2NCwgMjU2IG9yIDEwMjQgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogI2VuZGlmCS8qIF9fTVM3NzIyU0VfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL21zNzc1MHNlLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXM3NzUwc2UuaAppbmRleCBhY2I0ZDZkLi5hZjk5MzNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXM3NzUwc2UuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXM3NzUwc2UuaApAQCAtNTIsNTYgKzUyLDU2IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKIAogLyogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCSgweDhDMDAwMDAwKQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJKDB4OEMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJKDY0ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfUEJTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19CQVJHU0laRQkJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCTUxMgogLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkoQ0ZHX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKFRFWFRfQkFTRSAtIDB4MTAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKFRFWFRfQkFTRSAtIDB4MTAwMDAwKQogCiAvKiBOT1IgRmxhc2ggKi8KLS8qICNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCSgweEExMDAwMDAwKSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoMHhBMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkoMSkJLyogTWF4IG51bWJlciBvZgorLyogI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCSgweEExMDAwMDAwKSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKDB4QTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCSgxKQkvKiBNYXggbnVtYmVyIG9mCiAJCQkJCSAqIEZsYXNoIG1lbW9yeSBiYW5rcwogCQkJCQkgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE0MgotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNDIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkoQ0ZHX1NEUkFNX0JBU0UgKyA0ICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFKQkvKiBBZGRyZXNzIG9mIHUtYm9vdCBpbWFnZSBpbiBGbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCQkvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDQgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSkJLyogQWRkcmVzcyBvZiB1LWJvb3QgaW1hZ2UgaW4gRmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCQkvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCSgyNTYpCQkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCSg4KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJKDI1NikJCQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgkoOCkKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jdW5kZWYgQ0ZHX0ZMQVNIX0NGSV9CUk9LRU5fVEFCTEUKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCQkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9DRklfQlJPS0VOX1RBQkxFCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCQkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoQ09ORklHX0VOVl9TRUNUX1NJWkUpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAKIAogLyogQm9hcmQgQ2xvY2sgKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkzMzMzMzMzMwogI2RlZmluZSBUTVVfQ0xLX0RJVklERVIJCTQKLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogI2VuZGlmIC8qIF9fTVM3NzUwU0VfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL211YXMzMDAxLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaAppbmRleCAxZTkxYjYyLi5mMDMxYTE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXVhczMwMDEuaApAQCAtODAsMzkgKzgwLDM5IEBACiAgKiAtIFJ4LUNMSyBpcyBDTEsxMQogICogLSBUeC1DTEsgaXMgQ0xLMTIKICAqLwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExIHwgQ01YRkNSX1RGMUNTX0NMSzEyKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMxIHwgQ01YRkNSX1JGMUNTX01TSyB8IENNWEZDUl9URjFDU19NU0spCisjIGRlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMUNTX0NMSzExIHwgQ01YRkNSX1RGMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMSB8IENNWEZDUl9SRjFDU19NU0sgfCBDTVhGQ1JfVEYxQ1NfTVNLKQogLyoKICAqIC0gUkFNIGZvciBCRC9CdWZmZXJzIGlzIG9uIHRoZSA2MHggQnVzIChzZWUgMjgtMTMpCiAgKi8KLSMgZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkoMCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJKDApCiAvKiBrbm93IG9uIGxvY2FsIEJ1cyAqLwotLyogZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkoQ1BNRkNSX0RUQiB8IENQTUZDUl9CREIpICovCisvKiBkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkoQ1BNRkNSX0RUQiB8IENQTUZDUl9CREIpICovCiAvKgogICogLSBFbmFibGUgRnVsbCBEdXBsZXggaW4gRlNNUgogICovCi0jIGRlZmluZSBDRkdfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREV8RkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERXxGQ0NfUFNNUl9MUEIpCiAKICNkZWZpbmUgQ09ORklHX01JSQkJCS8qIE1JSSBQSFkgbWFuYWdlbWVudAkJKi8KICNkZWZpbmUgQ09ORklHX0JJVEJBTkdNSUkJCS8qIGJpdC1iYW5nIE1JSSBQSFkgbWFuYWdlbWVudAkqLwotIyBkZWZpbmUgQ0ZHX1BIWV9BRERSCQkxCisjIGRlZmluZSBDT05GSUdfU1lTX1BIWV9BRERSCQkxCiAvKgogICogR1BJTyBwaW5zIHVzZWQgZm9yIGJpdC1iYW5nZWQgTUlJIGNvbW11bmljYXRpb25zCiAgKi8KICNkZWZpbmUgTURJT19QT1JUCTAJCS8qIFBvcnQgQSAqLwogCi0jZGVmaW5lIENGR19NRElPX1BJTgkweDAwMjAwMDAwCS8qIFBBMTAgKi8KLSNkZWZpbmUgQ0ZHX01EQ19QSU4JMHgwMDQwMDAwMAkvKiBQQTkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTURJT19QSU4JMHgwMDIwMDAwMAkvKiBQQTEwICovCisjZGVmaW5lIENPTkZJR19TWVNfTURDX1BJTgkweDAwNDAwMDAwCS8qIFBBOSAgKi8KIAotI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICBDRkdfTURJT19QSU4pCi0jZGVmaW5lIE1ESU9fVFJJU1RBVEUJKGlvcC0+cGRpciAmPSB+Q0ZHX01ESU9fUElOKQotI2RlZmluZSBNRElPX1JFQUQJKChpb3AtPnBkYXQgJiAgQ0ZHX01ESU9fUElOKSAhPSAwKQorI2RlZmluZSBNRElPX0FDVElWRQkoaW9wLT5wZGlyIHw9ICBDT05GSUdfU1lTX01ESU9fUElOKQorI2RlZmluZSBNRElPX1RSSVNUQVRFCShpb3AtPnBkaXIgJj0gfkNPTkZJR19TWVNfTURJT19QSU4pCisjZGVmaW5lIE1ESU9fUkVBRAkoKGlvcC0+cGRhdCAmICBDT05GSUdfU1lTX01ESU9fUElOKSAhPSAwKQogCi0jZGVmaW5lIE1ESU8oYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01ESU9fUElOOyBcCi0JCQllbHNlCWlvcC0+cGRhdCAmPSB+Q0ZHX01ESU9fUElOCisjZGVmaW5lIE1ESU8oYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ09ORklHX1NZU19NRElPX1BJTjsgXAorCQkJZWxzZQlpb3AtPnBkYXQgJj0gfkNPTkZJR19TWVNfTURJT19QSU4KIAotI2RlZmluZSBNREMoYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ0ZHX01EQ19QSU47IFwKLQkJCWVsc2UJaW9wLT5wZGF0ICY9IH5DRkdfTURDX1BJTgorI2RlZmluZSBNREMoYml0KQlpZihiaXQpIGlvcC0+cGRhdCB8PSAgQ09ORklHX1NZU19NRENfUElOOyBcCisJCQllbHNlCWlvcC0+cGRhdCAmPSB+Q09ORklHX1NZU19NRENfUElOCiAKICNkZWZpbmUgTUlJREVMQVkJdWRlbGF5KDEpCiAKQEAgLTE4OCwxMDcgKzE4OCwxMDcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTMyCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTZLQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NktCIGZvciBNb25pdG9yICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICNlbmRpZiAvKiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICovCiAKIC8qCiAgKiBJMkMgQnVzCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZQlDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCiAvKiBJMkMgU1lTTU9OIChMTTc1LCBBRDc0MTQgaXMgYWxtb3N0IGNvbXBhdGlibGUpICAgICAgICAgICAgICAgICAgICAgICAqLwogI2RlZmluZQlDT05GSUdfRFRUX0xNNzUJCTEJLyogT04gU2VtaSdzIExNNzUgICAgICAgICAgICAgICAqLwogI2RlZmluZQlDT05GSUdfRFRUX1NFTlNPUlMJezB9CS8qIFNlbnNvciBhZGRyZXNzZXMgICAgICAgICAgICAgKi8KLSNkZWZpbmUJQ0ZHX0RUVF9NQVhfVEVNUAk3MAotI2RlZmluZQlDRkdfRFRUX0xPV19URU1QCS0zMAotI2RlZmluZQlDRkdfRFRUX0hZU1RFUkVTSVMJMworI2RlZmluZQlDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAk3MAorI2RlZmluZQlDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktMzAKKyNkZWZpbmUJQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfSU1NUgkweDBGMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfSU1NUgkweDBGMDEwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyogSGFyZCByZXNldCBjb25maWd1cmF0aW9uIHdvcmQgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkweDBFMDI4MjAwCS8qIEJQUz0xMSBDSVA9MSBJU0I9MDEwIEJNUz0xICovCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCTB4MEUwMjgyMDAJLyogQlBTPTExIENJUD0xIElTQj0wMTAgQk1TPTEgKi8KIAogLyogTm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMSAJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIgCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzIAkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNCAJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUgCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2IAkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNyAJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxIAkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIgCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMyAJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0IAkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUgCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNiAJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3IAkwCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdCAgICAgICAgICAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg0MDk2IDw8IDEwKQkvKiBSZXNlcnZlIDQgTUIgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDQwOTYgPDwgMTApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUpCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJKEhJRDBfSUNFIHwgSElEMF9JRkVNIHwgSElEMF9BQkUpCiAKLSNkZWZpbmUgQ0ZHX0hJRDIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCQkwCiAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkJMHgwMDIwMDAwMAotI2RlZmluZSBDRkdfQkNSCQkJMHgwMDRjMDAwMAotI2RlZmluZSBDRkdfU0NDUgkJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCQkweDAwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkJMHgwMDRjMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJCTB4MAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTWVBDUiAtIFN5c3RlbSBQcm90ZWN0aW9uIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQtMzUKQEAgLTI5NywxMCArMjk3LDEwIEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUiAgICAgICAoU1lQQ1JfU1dUQ3xTWVBDUl9CTVR8U1lQQ1JfUEJNRXxTWVBDUl9MQk1FfFwKIAkJCSBTWVBDUl9TV1JJfFNZUENSX1NXUHxTWVBDUl9TV0UpCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgICAgICAgKFNZUENSX1NXVEN8U1lQQ1JfQk1UfFNZUENSX1BCTUV8U1lQQ1JfTEJNRXxcCiAJCQkgU1lQQ1JfU1dSSXxTWVBDUl9TV1ApCiAjZW5kaWYgLyogQ09ORklHX1dBVENIRE9HICovCiAKQEAgLTMwOSw3ICszMDksNyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogdHVybiBvbiBDaGVja3N0b3AgUmVzZXQgRW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUiAgICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIgICAgICAgICAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRNQ05UU0MgLSBUaW1lIENvdW50ZXIgU3RhdHVzIGFuZCBDb250cm9sICAgICAgICAgICAgICAgICAgICAgNC00MApAQCAtMzE3LDcgKzMxNyw3IEBACiAgKiBDbGVhciBvbmNlIHBlciBTZWNvbmQgYW5kIEFsYXJtIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssCiAgKiBhbmQgZW5hYmxlIFRpbWUgQ291bnRlcgogICovCi0jZGVmaW5lIENGR19UTUNOVFNDICAgICAoVE1DTlRTQ19TRUN8VE1DTlRTQ19BTFJ8VE1DTlRTQ19UQ0Z8VE1DTlRTQ19UQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQyAgICAgKFRNQ05UU0NfU0VDfFRNQ05UU0NfQUxSfFRNQ05UU0NfVENGfFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wgICAgICAgICAgICAgICAgIDQtNDIKQEAgLTMyNSwxMyArMzI1LDEzIEBACiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLCBhbmQgZW5hYmxlCiAgKiBQZXJpb2RpYyB0aW1lcgogICovCi0jZGVmaW5lIENGR19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAgICAgICAoUElTQ1JfUFN8UElTQ1JfUFRGfFBJU0NSX1BURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIDEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAgICAgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IgICAgICAgIDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNDUsNjAgKzM0NSw2MCBAQAogICovCiAvKiBCYW5rIDAgLSBGTEFTSAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAoKENGR19GTEFTSF9CQVNFICYgQlJ4X0JBX01TSykJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNICAoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIEJSeF9CQV9NU0spCXxcCiAJCQkgQlJ4X1BTXzMyCQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTSAoMHhmZjAwMDAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNICgweGZmMDAwMDIwKQogCiAvKiBCYW5rIDEgLSA2MHggYnVzIFNEUkFNCiAgKi8KLSNkZWZpbmUgQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVAkoMjU2IDw8IDIwKQkvKiBsZXNzIHRoYW4gMjU2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfR0xPQkFMX1NEUkFNX0xJTUlUCSgyNTYgPDwgMjApCS8qIGxlc3MgdGhhbiAyNTYgTUIgKi8KIAotI2RlZmluZSBDRkdfTVBUUFIgICAgICAgMHgyODAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgICAgICAgMHgyODAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgZm9yIE1vZGUgUmVnaXN0ZXIgU2V0IChNUlMpIGNvbW1hbmQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfTVJTX09GRlMJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfUFNSVCAgICAgICAgMHgxMworI2RlZmluZSBDT05GSUdfU1lTX01SU19PRkZTCTB4MDAwMDAxMTAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1JUICAgICAgICAweDEzCiAKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUnhfQkFfTVNLKSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRSAmIEJSeF9CQV9NU0spICB8XAogCQkJIEJSeF9QU182NCAgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9NU19TRFJBTV9QICAgICAgICAgICAgICAgICB8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjFfTElUVExFCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQlDT05GSUdfU1lTX09SMV9MSVRUTEUKIAogLyogU0RSQU0gaW5pdGlhbGl6YXRpb24gdmFsdWVzCiAqLwotI2RlZmluZSBDRkdfT1IxX0xJVFRMRQkoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX0xJVFRMRQkoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNwkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SX0xJVFRMRQkweDAwNGIzNmEzCisjZGVmaW5lIENPTkZJR19TWVNfUFNETVJfTElUVExFCTB4MDA0YjM2YTMKIAotI2RlZmluZSBDRkdfT1IxX0JJRwkoKH4oQ0ZHX0dMT0JBTF9TRFJBTV9MSU1JVC0xKSAmIE9SeFNfU0RBTV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX0JJRwkoKH4oQ09ORklHX1NZU19HTE9CQUxfU0RSQU1fTElNSVQtMSkgJiBPUnhTX1NEQU1fTVNLKSB8XAogCQkJIE9SeFNfQlBEXzQgICAgICAgICAgICAgICAgICAgICB8XAogCQkJIE9SeFNfUk9XU1RfUEJJMV9BNAkJfFwKIAkJCSBPUnhTX05VTVJfMTIpCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SX0JJRwkJMHgwMTRmMzZhMworI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SX0JJRwkJMHgwMTRmMzZhMwogCiAvKiBJTyBvbiBDUzQgaW5pdGlhbGl6YXRpb24gdmFsdWVzCiAqLwotI2RlZmluZSBDRkdfSU9fQkFTRQkweGMwMDAwMDAwCi0jZGVmaW5lIENGR19JT19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JT19CQVNFCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JT19TSVpFCTEKIAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkoKENGR19JT19CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoQ09ORklHX1NZU19JT19CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMTYgfCBCUnhfTVNfR1BDTV9MIHwgQlJ4X1YpCiAKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JKDB4ZmZmODAwMjApCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoMHhmZmY4MDAyMCkKIAotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweEZERkZGRkZDCS8qICJiYWQiIGFkZHJlc3MJCSovCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXVjbWM1Mi5oIGIvaW5jbHVkZS9jb25maWdzL211Y21jNTIuaAppbmRleCA1MTdiM2I3Li4yZjQ4YTBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbXVjbWM1Mi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9tdWNtYzUyLmgKQEAgLTM2LDE0ICszNiwxNCBAQAogI2RlZmluZQlDT05GSUdfTVBDNTIwMAkJMQkvKiAobW9yZSBwcmVjaXNlbHkgYW4gTVBDNTIwMCBDUFUpCSovCiAjZGVmaW5lCUNPTkZJR19NVUNNQzUyCQkxCS8qIE1VQ01DNTIgYm9hcmQJCQkqLwogCi0jZGVmaW5lCUNGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KIAogI2RlZmluZQlCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNICSovCiAjZGVmaW5lCUJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CQkJKi8KIAotI2RlZmluZQlDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcwkJCSovCi0jaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfS0dEQikKLSMgIGRlZmluZQlDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KKyNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ09ORklHX1NZU19DTURfS0dEQikKKyMgIGRlZmluZQlDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogI2RlZmluZQlDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SCkBAIC01Niw3ICs1Niw3IEBACiAgKi8KICNkZWZpbmUJQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxCSovCiAjZGVmaW5lCUNPTkZJR19CQVVEUkFURQkJMzg0MDAJLyogLi4uIGF0IDM4NDAwIGJwcwkqLwotI2RlZmluZQlDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lCUNPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qIFBhcnRpdGlvbnMgKi8KICNkZWZpbmUJQ09ORklHX0RPU19QQVJUSVRJT04KQEAgLTgzLDcgKzgzLDcgQEAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkxCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KIAogI2lmIChURVhUX0JBU0UgPT0gMHhGRkYwMDAwMCkgLyogQm9vdCBsb3cgKi8KLSMgICBkZWZpbmUJQ0ZHX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUJQ09ORklHX1NZU19MT1dCT09UCQkxCiAjZW5kaWYKIAogLyoKQEAgLTExOCw1NiArMTE4LDU2IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jdW5kZWYJQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI3VuZGVmCUNPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lCUNPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lCUNGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lCUNGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lCUNGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lCUNGR19JMkNfRUVQUk9NX0FERFIJCTB4NTgKLSNkZWZpbmUJQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUJQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZQlDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTgKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lCUNPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUJQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lCUNGR19JMkNfUlRDX0FERFIJCTB4NTEKKyNkZWZpbmUJQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NTEKIAogLyogSTJDIFNZU01PTiAoTE03NSkgKi8KICNkZWZpbmUJQ09ORklHX0RUVF9MTTgxCQkJMQkvKiBPTiBTZW1pJ3MgTE03NQkJKi8KICNkZWZpbmUJQ09ORklHX0RUVF9TRU5TT1JTCQl7MH0JLyogU2Vuc29yIGFkZHJlc3NlcwkJKi8KLSNkZWZpbmUJQ0ZHX0RUVF9NQVhfVEVNUAkJNzAKLSNkZWZpbmUJQ0ZHX0RUVF9MT1dfVEVNUAkJLTMwCi0jZGVmaW5lCUNGR19EVFRfSFlTVEVSRVNJUwkJMworI2RlZmluZQlDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAkJNzAKKyNkZWZpbmUJQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJCS0zMAorI2RlZmluZQlDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCQkzCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUJQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCiAKLSNkZWZpbmUJQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogOCBNQnl0ZSAqLwotI2RlZmluZQlDRkdfTUFYX0ZMQVNIX1NFQ1QJNjcJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLworI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogOCBNQnl0ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0FERFIJCShURVhUX0JBU0UrMHg0MDAwMCkgLyogc2Vjb25kIHNlY3RvciAqLwotI2RlZmluZQlDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcworI2RlZmluZQlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKIAkJCQkJICAgKD0gY2hpcCBzZWxlY3RzKSAqLwotI2RlZmluZQlDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lCUNGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZQlDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lCUNGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lCUNGR19GTEFTSF9DRklfQU1EX1JFU0VUCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQ0ZJCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0xODEsMTQgKzE4MSwxNCBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZQlDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZQlDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKLSNkZWZpbmUJQ0ZHX0RJU1BMQVlfQkFTRQkweDgwNjAwMDAwCi0jZGVmaW5lCUNGR19TVEFUVVMxX0JBU0UJMHg4MDYwMDIwMAotI2RlZmluZQlDRkdfU1RBVFVTMl9CQVNFCTB4ODA2MDAzMDAKLSNkZWZpbmUJQ0ZHX1BNSV9VTklfQkFTRQkweDgwODAwMDAwCi0jZGVmaW5lCUNGR19QTUlfQlJPQURfQkFTRQkweDgwODEwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0RJU1BMQVlfQkFTRQkweDgwNjAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU1RBVFVTMV9CQVNFCTB4ODA2MDAyMDAKKyNkZWZpbmUJQ09ORklHX1NZU19TVEFUVVMyX0JBU0UJMHg4MDYwMDMwMAorI2RlZmluZQlDT05GSUdfU1lTX1BNSV9VTklfQkFTRQkweDgwODAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfUE1JX0JST0FEX0JBU0UJMHg4MDgxMDAwMAogCiAvKiBTZXR0aW5ncyBmb3IgWExCID0gMTMyIE1IeiAqLwogI2RlZmluZQlTRFJBTV9ERFIJIDEKQEAgLTIwMCwyNiArMjAwLDI2IEBACiAjZGVmaW5lCVNEUkFNX1RBUERFTEFZICAweDEwMDAwMDAwCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lCUNGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICAgZGVmaW5lCUNGR19SQU1CT09UCTEKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZQlDT05GSUdfU1lTX1JBTUJPT1QJMQogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDUxMiA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjMxLDcgKzIzMSw3IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUJQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDhENTUwNjQ0CisjZGVmaW5lCUNPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OEQ1NTA2NDQKIAogLyp1c2UgIEhhcmR3YXJlIFdEVCAqLwogI2RlZmluZSBDT05GSUdfSFdfV0FUQ0hET0cKQEAgLTIzOSwyOSArMjM5LDI5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KLSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ09ORklHX1NZU19DTURfS0dEQikKKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZQlDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZQlDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKIC8qIEVuYWJsZSBhbiBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0ICovCi0jZGVmaW5lCUNGR19BTFRfTUVNVEVTVAorI2RlZmluZQlDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKLSNkZWZpbmUJQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lCUNGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKLSAqIEVuYWJsZSBsb29wdyBjb21tYW5kby4gVGhpcyBoYXMgb25seSBhZmZlY3QsIGlmIENGR19DTURfTUVNIGlzIGRlZmluZWQsCisgKiBFbmFibGUgbG9vcHcgY29tbWFuZG8uIFRoaXMgaGFzIG9ubHkgYWZmZWN0LCBpZiBDT05GSUdfU1lTX0NNRF9NRU0gaXMgZGVmaW5lZCwKICAqIHdoaWNoIGlzIG5vcm1hbGx5IHBhcnQgb2YgdGhlIGRlZmF1bHQgY29tbWFuZHMgKENGVl9DTURfREZMKQogICovCiAjZGVmaW5lCUNPTkZJR19MT09QVwpAQCAtMjcwLDQ2ICsyNzAsNDYgQEAKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZQlDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZQlDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUJQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lCUNPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKICNlbHNlCi0jZGVmaW5lCUNGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUJQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUJQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUJQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfQk9PVENTX1NUQVJUCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lCUNGR19CT09UQ1NfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKLSNkZWZpbmUJQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNEZCMDAKLSNkZWZpbmUJQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZQlDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0RkIwMAorI2RlZmluZQlDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCiAvKiA4TWJpdCBTUkFNIEAweDgwMTAwMDAwICovCi0jZGVmaW5lCUNGR19DUzFfU1RBUlQJCTB4ODAxMDAwMDAKLSNkZWZpbmUJQ0ZHX0NTMV9TSVpFCQkweDAwMTAwMDAwCi0jZGVmaW5lCUNGR19DUzFfQ0ZHCQkweDAwMDE5QjAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MxX1NUQVJUCQkweDgwMTAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MxX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzFfQ0ZHCQkweDAwMDE5QjAwCiAKIC8qIEZSQU0gMzJLYnl0ZSBAMHg4MDcwMDAwMCAqLwotI2RlZmluZQlDRkdfQ1MyX1NUQVJUCQkweDgwNzAwMDAwCi0jZGVmaW5lCUNGR19DUzJfU0laRQkJMHgwMDAwODAwMAotI2RlZmluZQlDRkdfQ1MyX0NGRwkJMHgwMDAxOTgwMAorI2RlZmluZQlDT05GSUdfU1lTX0NTMl9TVEFSVAkJMHg4MDcwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0NTMl9TSVpFCQkweDAwMDA4MDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MyX0NGRwkJMHgwMDAxOTgwMAogCiAvKiBEaXNwbGF5IEgxLCBTdGF0dXMgSW5wdXRzLCBFUExEIEAweDgwNjAwMDAwICovCi0jZGVmaW5lCUNGR19DUzNfU1RBUlQJCTB4ODA2MDAwMDAKLSNkZWZpbmUJQ0ZHX0NTM19TSVpFCQkweDAwMTAwMDAwCi0jZGVmaW5lCUNGR19DUzNfQ0ZHCQkweDAwMDE5ODAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MzX1NUQVJUCQkweDgwNjAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1MzX1NJWkUJCTB4MDAxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzNfQ0ZHCQkweDAwMDE5ODAwCiAKIC8qIFBNSSBVbmljYXN0IDMyS2J5dGUgQDB4ODA4MDAwMDAgKi8KLSNkZWZpbmUJQ0ZHX0NTNl9TVEFSVAkJQ0ZHX1BNSV9VTklfQkFTRQotI2RlZmluZQlDRkdfQ1M2X1NJWkUJCTB4MDAwMDgwMDAKLSNkZWZpbmUJQ0ZHX0NTNl9DRkcJCTB4RkZGRkY5MzAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzZfU1RBUlQJCUNPTkZJR19TWVNfUE1JX1VOSV9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfQ1M2X1NJWkUJCTB4MDAwMDgwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzZfQ0ZHCQkweEZGRkZGOTMwCiAKIC8qIFBNSSBCcm9hZGNhc3QgMzJLYnl0ZSBAMHg4MDgxMDAwMCAqLwotI2RlZmluZQlDRkdfQ1M3X1NUQVJUCQlDRkdfUE1JX0JST0FEX0JBU0UKLSNkZWZpbmUJQ0ZHX0NTN19TSVpFCQkweDAwMDA4MDAwCi0jZGVmaW5lCUNGR19DUzdfQ0ZHCQkweEZGMDBGOTMwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1M3X1NUQVJUCQlDT05GSUdfU1lTX1BNSV9CUk9BRF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfQ1M3X1NJWkUJCTB4MDAwMDgwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19DUzdfQ0ZHCQkweEZGMDBGOTMwCiAKLSNkZWZpbmUJQ0ZHX0NTX0JVUlNUCQkweDAwMDAwMDAwCi0jZGVmaW5lCUNGR19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMworI2RlZmluZQlDT05GSUdfU1lTX0NTX0JVUlNUCQkweDAwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiBTdXBwb3J0cyBJREUgaGFyZGRpc2sKQEAgLTMyMSwyNiArMzIxLDI2IEBACiAjdW5kZWYJQ09ORklHX0lERV84eHhfRElSRUNUCQkvKiBEaXJlY3QgSURFICAgIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lCUNGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZQlDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZQlDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCiAKICNkZWZpbmUJQ09ORklHX0lERV9QUkVJTklUCTEKIAotI2RlZmluZQlDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZQlDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZQlDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lCUNGR19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDB4MDA2MCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUJQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZQlDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lCUNGR19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQorI2RlZmluZQlDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwNUMpCiAKIC8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICAgICAgICAgICAqLwotI2RlZmluZQlDRkdfQVRBX1NUUklERSAgICAgICAgICA0CisjZGVmaW5lCUNPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICA0CiAKICNkZWZpbmUJQ09ORklHX0FUQVBJICAgICAgICAgICAgMQogCkBAIC0zNjIsMTMgKzM2MiwxMyBAQAogI2RlZmluZQlDT05GSUdfUENJX0lPX1BIWVMJQ09ORklHX1BDSV9JT19CVVMKICNkZWZpbmUJQ09ORklHX1BDSV9JT19TSVpFCTB4MDEwMDAwMDAKIAotI2RlZmluZQlDRkdfSVNBX0lPCQlDT05GSUdfUENJX0lPX0JVUworI2RlZmluZQlDT05GSUdfU1lTX0lTQV9JTwkJQ09ORklHX1BDSV9JT19CVVMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyogRGlzcGxheSBhZGRyZXNzZXMJCQkJCQkgICAgICAgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2RlZmluZQlDRkdfRElTUF9DSFJfUkFNCShDRkdfRElTUExBWV9CQVNFICsgMHgzOCkKLSNkZWZpbmUJQ0ZHX0RJU1BfQ1dPUkQJCShDRkdfRElTUExBWV9CQVNFICsgMHgzMCkKKyNkZWZpbmUJQ09ORklHX1NZU19ESVNQX0NIUl9SQU0JKENPTkZJR19TWVNfRElTUExBWV9CQVNFICsgMHgzOCkKKyNkZWZpbmUJQ09ORklHX1NZU19ESVNQX0NXT1JECQkoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDMwKQogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL211bmljZXMuaCBiL2luY2x1ZGUvY29uZmlncy9tdW5pY2VzLmgKaW5kZXggOGYzMDcxYS4uNzY4MmZhYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL211bmljZXMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbXVuaWNlcy5oCkBAIC0zMSwxMCArMzEsMTAgQEAKICNkZWZpbmUgQ09ORklHX01QQzUyMDAJCTEJLyogKG1vcmUgcHJlY2lzZWx5IGFuIE1QQzUyMDAgQ1BVKSAqLwogI2RlZmluZSBDT05GSUdfTVBDNTIwMF9ERFIJMQkvKiAod2l0aCBERFItU0RSQU0pICovCiAjZGVmaW5lIENPTkZJR19NVU5JQ0VTCQkxCS8qIC4uLiBvbiBNVU5JQ2VzIGJvYXJkICovCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMzMzMzMzIC8qIC4uLiBydW5uaW5nIGF0IDMzLjMzMzMzM01IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMzMzMzMzMgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMzMzMzMzTUh6ICovCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJMQkvKiBIaWdoIEJBVHMgc3VwcG9ydGVkICovCiAKIC8qCkBAIC01MCw3ICs1MCw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfUkVHSU5GTwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCkBAIC01OCw3ICs1OCw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCTEJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUgICAvKiBhdXRvYm9vdCBhZnRlciA1IHNlY29uZHMgKi8KQEAgLTkxLDYzICs5MSw2MyBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI2RlZmluZSAgQ0ZHX0lQQlNQRUVEXzEzMwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KLSNpZiBkZWZpbmVkKENGR19JUEJTUEVFRF8xMzMpCisjZGVmaW5lICBDT05GSUdfU1lTX0lQQlNQRUVEXzEzMwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSVBCU1BFRURfMTMzKQogLyoKICAqIFBDSSBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbgogICoKICAqIEFjdHVhbGx5IGEgUENJIENsb2NrIG9mIDY2IE1IeiBpcyBvbmx5IHNldCAoaW4gY3B1X2luaXQuYykgaWYKLSAqIENGR19JUEJTUEVFRF8xMzMgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrIG9mIDY2IE1IeiB5ZXQgaGFzbid0CisgKiBDT05GSUdfU1lTX0lQQlNQRUVEXzEzMyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sgb2YgNjYgTUh6IHlldCBoYXNuJ3QKICAqIGJlZW4gdGVzdGVkIHdpdGggYSBJUEIgQnVzIENsb2NrIG9mIDY2IE1Iei4KICAqLwotI2RlZmluZSBDRkdfUENJU1BFRURfNjYJCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lTUEVFRF82NgkJLyogZGVmaW5lIGZvciA2Nk1IeiBzcGVlZCAqLwogI2Vsc2UKLSN1bmRlZiBDRkdfUENJU1BFRURfNjYJCQkvKiBmb3IgMzNNSHogc3BlZWQgKi8KKyN1bmRlZiBDT05GSUdfU1lTX1BDSVNQRUVEXzY2CQkJLyogZm9yIDMzTUh6IHNwZWVkICovCiAjZW5kaWYKIAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMCAvKiBNQkFSIGhhc3QgdG8gYmUgc3dpdGNoZWQgYnkgb3RoZXIgYm9vdGxvYWRlciBvciBkZWJ1Z2dlciBjb25maWcgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMCAvKiBNQkFSIGhhc3QgdG8gYmUgc3dpdGNoZWQgYnkgb3RoZXIgYm9vdGxvYWRlciBvciBkZWJ1Z2dlciBjb25maWcgICovCiAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAgLyogMTYgTUJ5dGUgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkgLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAoPSBjaGlwIHNlbGVjdHMpICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCS8qIG5vdCBzdXBwb3J0ZWQgeWV0IGZvciBBTUQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMTAwMDAwMCAvKiAxNiBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJIC8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgKD0gY2hpcCBzZWxlY3RzKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLwogCiAvKgogICogQ2hpcCBzZWxlY3RzIGNvbmZpZ3VyYXRpb24KICAqLwogLyogQm9vdCBDaGlwc2VsZWN0ICovCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0NzgwMAogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTE3MiwyNCArMTcyLDI0IEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDAwMDU4MDQ0IC8qIFBTQzE9VUFSVCwgUFNDMj1VQVJUIDsgRXRoZXI9MTAwTUJpdCB3aXRoIE1ECisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDAwNTgwNDQgLyogUFNDMT1VQVJULCBQU0MyPVVBUlQgOyBFdGhlcj0xMDBNQml0IHdpdGggTUQKIAkJCQkJCW5vIFBDSSAqLwogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgyMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0JPQVJESU5GTyAxCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcgIDEKQEAgLTE5NywxMiArMTk3LDEyIEBACiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJSElEMF9JQ0UKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJSElEMF9JQ0UKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmMDAwMDAwCiAKIC8qIHBhc3Mgb3BlbiBmaXJtd2FyZSBmbGF0IHRyZWUgKi8KICNkZWZpbmUgQ09ORklHX09GX0xJQkZEVAkxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXgxYWRzLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXgxYWRzLmgKaW5kZXggMmViNDNiZi4uZjEzNmIwYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL214MWFkcy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9teDFhZHMuaApAQCAtNDgsMTkgKzQ4LDE5IEBACiAjZGVmaW5lIFVTRV85MjBUX01NVQkJMQogCiAjaWYgMAotI2RlZmluZSBDRkdfTVgxX0dQQ1IJCTB4MDAwMDAzQUIJLyogZm9yIE1YMUFEUyAwTDQ0TgkJKi8KLSNkZWZpbmUgQ0ZHX01YMV9HUENSCQkweDAwMDAwM0FCCS8qIGZvciBNWDFBRFMgMEw0NE4JCSovCi0jZGVmaW5lIENGR19NWDFfR1BDUgkJMHgwMDAwMDNBQgkvKiBmb3IgTVgxQURTIDBMNDROCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01YMV9HUENSCQkweDAwMDAwM0FCCS8qIGZvciBNWDFBRFMgMEw0NE4JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVgxX0dQQ1IJCTB4MDAwMDAzQUIJLyogZm9yIE1YMUFEUyAwTDQ0TgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NWDFfR1BDUgkJMHgwMDAwMDNBQgkvKiBmb3IgTVgxQURTIDBMNDROCQkqLwogI2VuZGlmCiAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogIENTODkwMCBFdGhlcm5ldCBkcml2ZXJzCkBAIC0xMTMsMzQgKzExMywzNCBAQAogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCiAKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIk1YMUFEUyQgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIk1YMUFEUyQgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCQkiTVgxQURTPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiTVgxQURTPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQogCQkJCQkJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwOTAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQUYwMDAwMAkvKiA2MyBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA5MDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwQUYwMDAwMAkvKiA2MyBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDg4MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLS8qI2RlZmluZQlDRkdfSFoJCQkxMDAwICovCi0jZGVmaW5lIENGR19IWgkJCTM2ODY0MDAKLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDE0MQorI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDA4ODAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisvKiNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgxNDEKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTYxLDggKzE2MSw4IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJMHgwODAwMDAwMAkvKiBTRFJBTSAgb24gQ1NEMAkJKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJMHgwNDAwMDAwMAkvKiA2NCBNQgkJCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiAxIGJhbmsgb2YgU3luY0ZsYXNoCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgwQzAwMDAwMAkvKiBTeW5jRmxhc2ggb24gQ1NEMQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogMSBiYW5rIG9mIFN5bmNGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDBDMDAwMDAwCS8qIFN5bmNGbGFzaCBvbiBDU0QxCQkqLwogI2RlZmluZSBGTEFTSF9CQU5LX1NJWkUJCTB4MDEwMDAwMDAJLyogMTYgTUIgVG90YWwJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNzEsOCArMTcxLDggQEAKIAogI2RlZmluZSBDT05GSUdfU1lOQ0ZMQVNICTEKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTYpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFKzB4MDBmZjgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDE2KQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UrMHgwMGZmODAwMCkKIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDA0MDAwIC8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbXgxZnMyLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXgxZnMyLmgKaW5kZXggMzk5NTBkYy4uYWFhNGU5OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL214MWZzMi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9teDFmczIuaApAQCAtNzAsMjIgKzcwLDIyIEBACiAvKgogICogR2VuZXJhbCBvcHRpb25zIGZvciB1LWJvb3QuIE1vZGlmeSB0byBzYXZlIG1lbW9yeSBmb290IHByaW50CiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCSAgICAgIC8qIHVuZGVmIHNhdmVzIG1lbW9yeSAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIm14MWZzMj4gIgkgICAgICAvKiBwcm9tcHQgc3RyaW5nCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkgICAgICAvKiBjb25zb2xlIEkvTyBidWZmZXIgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBwcmludCBidWZmZXIgc2l6ZSAgICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJICAgICAgLyogbWF4IGNvbW1hbmQgYXJncyAgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJICAgICAgLyogYm9vdCBhcmdzIGJ1ZiBzaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCSAgICAgIC8qIHVuZGVmIHNhdmVzIG1lbW9yeSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJteDFmczI+ICIJICAgICAgLyogcHJvbXB0IHN0cmluZwkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCSAgICAgIC8qIGNvbnNvbGUgSS9PIGJ1ZmZlciAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIHByaW50IGJ1ZmZlciBzaXplICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJICAgICAgLyogbWF4IGNvbW1hbmQgYXJncyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkgICAgICAvKiBib290IGFyZ3MgYnVmIHNpemUgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwODEwMDAwMAkgICAgICAvKiBtZW10ZXN0IHRlc3QgYXJlYSAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwOEYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwODEwMDAwMAkgICAgICAvKiBtZW10ZXN0IHRlc3QgYXJlYSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDhGMDAwMDAKIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkJICAgICAvKiB1c2UgSFogZm9yIGZyZXEuIGRpc3BsYXkgICAgICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkJICAgICAvKiB1c2UgSFogZm9yIGZyZXEuIGRpc3BsYXkgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMzY4NjQwMAkgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDE0MQkgICAgIC8qIGNvcmUgY2xvY2sgLSByZWdpc3RlciB2YWx1ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MTQxCSAgICAgLyogY29yZSBjbG9jayAtIHJlZ2lzdGVyIHZhbHVlICAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgMTE1MjAwCiAvKgogICogRGVmaW5pdGlvbnMgcmVsYXRlZCB0byBwYXNzaW5nIGFyZ3VtZW50cyB0byBrZXJuZWwuCkBAIC05OCwxMCArOTgsMTAgQEAKIC8qCiAgKiBNYWxsb2MgcG9vbCBuZWVkIHRvIGhvc3QgZW52ICsgMTI4IEtiIHJlc2VydmUgZm9yIG90aGVyIGFsbG9jYXRpb25zLgogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgKENPTkZJR19FTlZfU0laRSArICgxMjg8PDEwKSApCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgIChDT05GSUdfRU5WX1NJWkUgKyAoMTI4PDwxMCkgKQogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDEyMDw8MTApICAgICAgLyogc3RhY2sgc2l6ZSAqLwogCkBAIC0xMzUsOCArMTM1LDggQEAKICAqIEZsYXNoIENvbnRyb2xsZXIgc2V0dGluZ3MKICAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBGTEFTSCBiYW5rcyBjb3VudCAobm90IGNoaXAgY291bnQpKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBudW1iZXIgb2Ygc2VjdG9yIGluIEZMQVNIIGJhbmsgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBGTEFTSCBiYW5rcyBjb3VudCAobm90IGNoaXAgY291bnQpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbnVtYmVyIG9mIHNlY3RvciBpbiBGTEFTSCBiYW5rICAgICovCiAKICNpZmRlZiBCVVMzMkJJVF9WRVJTSU9OCiAjZGVmaW5lIE1YMUZTMl9GTEFTSF9CVVNfV0lEVEgJNAkvKiB3ZSB1c2UgMzIgYml0IEZMQVNIIG1lbW9yeS4uLiAgICAgKi8KQEAgLTE1NiwxMiArMTU2LDEyIEBACiAgICBpcyBub3Qgc28gY2xlYXIgdG8gbWUuIEluIG90aGVyIHdvcmRzIHdlIGNhbiBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb25zCiAgICB0byB1c2VyLCBidXQgdGhpcyBleHBlY3RzIG1vcmUgY29tcGxleCBmbGFzaCBoYW5kbGluZyB3ZSBkbyBub3QgcHJvdmlkZQogICAgbm93LiovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NGSQorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0ZJCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAgICAvKiB0aW1lb3V0IGZvciBFcmFzZSBvcGVyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAgICAvKiB0aW1lb3V0IGZvciBXcml0ZSBvcGVyYXRpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopICAgIC8qIHRpbWVvdXQgZm9yIEVyYXNlIG9wZXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgICAgLyogdGltZW91dCBmb3IgV3JpdGUgb3BlcmF0aW9uICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCU1YMUZTMl9GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJTVgxRlMyX0ZMQVNIX0JBU0UKIAogLyoKICAqIFRoaXMgaXMgc2V0dGluZyBmb3IgSkZGUzIgc3VwcG9ydCBpbiB1LWJvb3QuCkBAIC0yMDUsOCArMjA1LDggQEAKICAqIGVudi4gaGFzIG5vIHNlbnNlIHRvIHVzLgogICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDEwMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAkJLyogMTI4YiAoIDEgZmxhc2ggc2VjdG9yICkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCS8qIDEyOGIgKCAxIGZsYXNoIHNlY3RvciApICAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgxMDAyMDAwMAkvKiBhYnNvbHV0ZSBhZGRyZXNzIGZvciBub3cgICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMApAQCAtMjE0LDcgKzIxNCw3IEBACiAjZGVmaW5lCSBDT05GSUdfRU5WX09WRVJXUklURQkxCQkvKiBlbnYgaXMgbm90IHdyaXRhYmxlIG5vdyAgICovCiAKIC8qIFNldHVwIENTNCBhbmQgQ1M1ICovCi0jZGVmaW5lIENGR19HSVVTX0FfVkFMCQkweDAwMDNmZmZlCisjZGVmaW5lIENPTkZJR19TWVNfR0lVU19BX1ZBTAkJMHgwMDAzZmZmZQogCiAvKgogICogQ1N4VV9WQUw6CkBAIC0yMjYsMTQgKzIyNiwxNCBAQAogICogICB8CSBPRUEgICB8ICAgT0VOCSB8ICAgV0VBICAgfCAgIFdFTiAgIHwJIENTQSAgIHxFQkN8IERTWiAgfCAwfFNQfDB8V1B8IDAgMHxQQXxDU0VOfAogICovCiAKLSNkZWZpbmUgQ0ZHX0NTMFVfVkFMIDB4MDAwMDhDMDAKLSNkZWZpbmUgQ0ZHX0NTMExfVkFMIDB4MjIyMjI2MDEKLSNkZWZpbmUgQ0ZHX0NTMVVfVkFMIDB4MDAwMDhDMDAKLSNkZWZpbmUgQ0ZHX0NTMUxfVkFMIDB4MjIyMjIzMDEKLSNkZWZpbmUgQ0ZHX0NTNFVfVkFMIDB4MDAwMDhDMDAKLSNkZWZpbmUgQ0ZHX0NTNExfVkFMIDB4MjIyMjIzMDEKLSNkZWZpbmUgQ0ZHX0NTNVVfVkFMIDB4MDAwMDhDMDAKLSNkZWZpbmUgQ0ZHX0NTNUxfVkFMIDB4MjIyMjIzMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBVX1ZBTCAweDAwMDA4QzAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwTF9WQUwgMHgyMjIyMjYwMQorI2RlZmluZSBDT05GSUdfU1lTX0NTMVVfVkFMIDB4MDAwMDhDMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFMX1ZBTCAweDIyMjIyMzAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1M0VV9WQUwgMHgwMDAwOEMwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNExfVkFMIDB4MjIyMjIzMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzVVX1ZBTCAweDAwMDA4QzAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M1TF9WQUwgMHgyMjIyMjMwMQogCiAvKiBmX3tkcGxsfT0yKmZ7cmVmfSooTUZJK01GTi8oTUZEKzEpKS8oUEQrMSkKICAgIGZfcmVmPTE2LDc3N01IegpAQCAtMjUyLDI1ICsyNTIsMjUgQEAKICAgIDMxIHx4IHggeCB4fHggeCB4IHh8eCB4IHggeHx4IHggeCB4fHggeCB4IHh8eCB4IHggeHx4IHggeCB4fHggeCB4IHh8IDAKICAgICAgIHxYWFh8LS1QRC0tLXwtLS0tLS0tTUZELS0tLS0tLS0tfFhYWHwtLU1GSS0tfC0tLS0tTUZOLS0tLS0tLS0tLS18CSAgICAqLwogCi0jZGVmaW5lIENGR19NUENUTDBfVkFMCQkweDA3RTcyM0FECi0jZGVmaW5lIENGR19NUENUTDFfVkFMCQkweDAwMDAwMDQwCi0jZGVmaW5lIENGR19QQ0RSX1ZBTAkJMHgwMDAxMDAwNQotI2RlZmluZSBDRkdfR1BDUl9WQUwJCTB4MDAwMDBGRkIKKyNkZWZpbmUgQ09ORklHX1NZU19NUENUTDBfVkFMCQkweDA3RTcyM0FECisjZGVmaW5lIENPTkZJR19TWVNfTVBDVEwxX1ZBTAkJMHgwMDAwMDA0MAorI2RlZmluZSBDT05GSUdfU1lTX1BDRFJfVkFMCQkweDAwMDEwMDA1CisjZGVmaW5lIENPTkZJR19TWVNfR1BDUl9WQUwJCTB4MDAwMDBGRkIKIAogI2RlZmluZSBVU0VfMTZNX09TWkkgLyogSWYgeW91IGhhdmUgb25lLCB5b3Ugd2FudCB0byB1c2UgaXQKIAkJCVRoZSBpbnRlcm5hbCAzMmtIeiBvc3ppbGxhdG9yIGppdHRlcnMgKi8KICNpZmRlZiBVU0VfMTZNX09TWkkKIAotI2RlZmluZSBDRkdfU1BDVEwwX1ZBTAkJMHgwNDAwMTQwMQotI2RlZmluZSBDRkdfU1BDVEwxX1ZBTAkJMHgwQzAwMDA0MAotI2RlZmluZSBDRkdfQ1NDUl9WQUwJCTB4MDcwMzAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19TUENUTDBfVkFMCQkweDA0MDAxNDAxCisjZGVmaW5lIENPTkZJR19TWVNfU1BDVEwxX1ZBTAkJMHgwQzAwMDA0MAorI2RlZmluZSBDT05GSUdfU1lTX0NTQ1JfVkFMCQkweDA3MDMwMDAzCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMTY3ODAwMDAKICNkZWZpbmUgQ09ORklHX1NZU1BMTF9DTEtfRlJFUQkxNjAwMDAwMAogCiAjZWxzZQogCi0jZGVmaW5lIENGR19TUENUTDBfVkFMCQkweDA3RTcxNkQxCi0jZGVmaW5lIENGR19DU0NSX1ZBTAkJMHgwNjAwMDAwMworI2RlZmluZSBDT05GSUdfU1lTX1NQQ1RMMF9WQUwJCTB4MDdFNzE2RDEKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSX1ZBTAkJMHgwNjAwMDAwMwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTE2NzgwMDAwCiAjZGVmaW5lIENPTkZJR19TWVNQTExfQ0xLX0ZSRVEJMTY3ODAwMDAKIApAQCAtMjgxLDkgKzI4MSw5IEBACiAgKiBvbmUgbWF5IGV4cGVjdC4gRm9yIGluc3RhbmNlIGxvYWRiIGNvbW1hbmQgZG8gbm90IGNhcmVzIDotKQogICogU28gYWR2aWNlIGlzIC0gZG8gbm90IHJlbGF5IG9uIHRoaXMuLi4KICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDA4NDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDA4NDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZNQ1JfVkFMCQkweDAwMDAwMDAzIC8qIFJlc2V0IERlZmF1bHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTUNSX1ZBTAkJMHgwMDAwMDAwMyAvKiBSZXNldCBEZWZhdWx0ICovCiAKIC8qIEJpdFswOjNdIGNvbnRhaW4gUEVSQ0xLMURJViBmb3IgVUFSVCAxCiAgICAweDAwMGIwMGIgLT5iPC0gLT4gMTkyTUh6LzEyPTE2TUh6CkBAIC0yOTYsMTUgKzI5NiwxNSBAQAogI2RlZmluZSBDT05GSUdfSU1YX1NFUklBTDIKICNlbGlmIGRlZmluZWQgX0NPTkZJR19VQVJUMyB8IGRlZmluZWQgX0NPTkZJR19VQVJUNAogI2RlZmluZSBDT05GSUdfSU1YX1NFUklBTF9OT05FCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTM2ODY0MDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkzNjg2NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNpZmRlZiBfQ09ORklHX1VBUlQzCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJMHgxNTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweDE1MDAwMDAwCiAjZWxpZiBkZWZpbmVkIF9DT05GSUdfVUFSVDQKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweDE2MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4MTYwMDAwMDAKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9teDMxYWRzLmggYi9pbmNsdWRlL2NvbmZpZ3MvbXgzMWFkcy5oCmluZGV4IDA0NzkwZmQuLjE2NDlmMWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9teDMxYWRzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL214MzFhZHMuaApAQCAtNTAsMTUgKzUwLDE1IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjggKiAxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCiAgKi8KIAogI2RlZmluZSBDT05GSUdfTVgzMV9VQVJUCTEKLSNkZWZpbmUgQ0ZHX01YMzFfVUFSVDEJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NWDMxX1VBUlQxCQkxCiAKICNkZWZpbmUgQ09ORklHX0hBUkRfU1BJCQkxCiAjZGVmaW5lIENPTkZJR19NWENfU1BJCQkxCkBAIC03NCw3ICs3NCw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXs5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJezk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb21tYW5kIGRlZmluaXRpb24KQEAgLTEyOCwyMCArMTI4LDIwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJCShDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTAJCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkwCQkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MTAwMDAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlDT05GSUdfTE9BREFERFIKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCUNPTkZJR19MT0FEQUREUgogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEKIApAQCAtMTYyLDExICsxNjIsMTEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJQ1MwX0JBU0UKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjYyCQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQkvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NktpQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNTMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjYyCQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NktpQiAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoMzIgKiAxMDI0KQpAQCAtMTgwLDE2ICsxODAsMTYgQEAKICAqIFRoZSByZXN0IG9mIDMyTWlCIGlzIGluIDEyOEtpQiBiaWcgc2VjdG9ycy4gVS1Cb290IG9jY3VwaWVzIHRoZSBsb3cgNCBzZWN0b3JzLAogICogaWYgd2UgcHV0IGVudmlyb25tZW50IG5leHQgdG8gaXQsIHdlIHdpbGwgaGF2ZSB0byBvY2N1cHkgMTI4S2lCIGZvciBpdC4KICAqIFB1dHRpbmcgaXQgYXQgdGhlIHRvcCBvZiBmbGFzaCB3ZSB1c2Ugb25seSAzMktpQi4gKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19FTlZfU0VDVF9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDRkkgRkxBU0ggZHJpdmVyIHNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCTEgLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkxIC8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkxIC8qIFVzZSBkcml2ZXJzL2NmaV9mbGFzaC5jICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9TUEFOU0lPTl9TMjlXU19OCTEgLyogQSBub24tc3RhbmRhcmQgYnVmZmVyZWQgd3JpdGUgYWxnb3JpdGhtICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEgLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkxIC8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMSAvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkxIC8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLwogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL25ldHN0YXIuaCBiL2luY2x1ZGUvY29uZmlncy9uZXRzdGFyLmgKaW5kZXggMjNmZDE4Yi4uZGRhNjU5NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL25ldHN0YXIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvbmV0c3Rhci5oCkBAIC00OSw3ICs0OSw3IEBACiAjZGVmaW5lIENPTkZJR19JTklUUkRfVEFHCQkxCiAKICNkZWZpbmUgQ09ORklHX1NJTEVOVF9DT05TT0xFCQkxCS8qIGVuYWJsZSBzaWxlbnQgc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCiAKIC8qCiAgKiBQaHlzaWNhbCBNZW1vcnkgTWFwCkBAIC02MiwxNSArNjIsMTUgQEAKIC8qCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCiAjZGVmaW5lIFBIWVNfRkxBU0hfMV9TSVpFCSgxICogMTAyNCAqIDEwMjQpCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxOQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSpDRkdfSFopIC8qIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSg1KkNGR19IWikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxOQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogaW4gdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSg1KkNPTkZJR19TWVNfSFopCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTg2LDggKzg2LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0ICogMTAyNCAqIDEwMjQpCiAKIC8qCiAgKiBUaGUgc3RhY2sgc2l6ZSBpcyBzZXQgdXAgaW4gc3RhcnQuUyB1c2luZyB0aGUgc2V0dGluZ3MgYmVsb3cKQEAgLTEwMywxNSArMTAzLDE1IEBACiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCSgtNCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkoQ09ORklHX1hUQUxfRlJFUSkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQlPTUFQMTUxMF9VQVJUMV9CQVNFCS8qIHVhcnQxICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkoLTQpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCShDT05GSUdfWFRBTF9GUkVRKQkvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQlPTUFQMTUxMF9VQVJUMV9CQVNFCS8qIHVhcnQxICovCiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyojZGVmaW5lIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09UKi8KIC8qI2RlZmluZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUICovCkBAIC0xMTksOSArMTE5LDkgQEAKIC8qCiAgKiBOQU5EIGZsYXNoCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkweDA0MDAwMDAwICsgKDIgPDwgMjMpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCTB4MDQwMDAwMDAgKyAoMiA8PCAyMykKICNkZWZpbmUgTkFORF9BTExPV19FUkFTRV9BTEwJMQogCiAvKgpAQCAtMTY4LDcgKzE2OCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogYWxsb3cgdG8gYnJlYWsgaW4gYWx3YXlzICovCiAjdW5kZWYgIENPTkZJR19CT09UQVJHUwkJLyogdGhlIGJvb3QgY29tbWFuZCB3aWxsIHNldCBib290YXJncyovCi0jZGVmaW5lIENGR19BVVRPTE9BRAkJIm4iCQkvKiBObyBhdXRvbG9hZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FVVE9MT0FECQkibiIJCS8qIE5vIGF1dG9sb2FkICovCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkicnVuIGZib290IgogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkJInJ1biBzZXR1cCIKICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwkJCQkJCVwKQEAgLTIwMywzMSArMjAzLDMxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIiMgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiIyAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlQSFlTX1NEUkFNXzEKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlQSFlTX1NEUkFNXzEgKyBQSFlTX1NEUkFNXzFfU0laRSAtIFwKLQkJCQkoQ0ZHX01PTklUT1JfTEVOICsgQ0ZHX01BTExPQ19MRU4gKyBDT05GSUdfU1RBQ0tTSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJUEhZU19TRFJBTV8xCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCVBIWVNfU0RSQU1fMSArIFBIWVNfU0RSQU1fMV9TSVpFIC0gXAorCQkJCShDT05GSUdfU1lTX01PTklUT1JfTEVOICsgQ09ORklHX1NZU19NQUxMT0NfTEVOICsgQ09ORklHX1NUQUNLU0laRSkKIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJUEhZU19TRFJBTV8xICsgMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCVBIWVNfU0RSQU1fMSArIDB4NDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIFRoZSAxNTEwIGhhcyAzIHRpbWVycywgdGhleSBjYW4gYmUgZHJpdmVuIGJ5IHRoZSBSZWZDbGsgKDEyTWh6KSBvciBieSBEUExMMS4KICAqIFRoaXMgdGltZSBpcyBmdXJ0aGVyIHN1YmRpdmlkZWQgYnkgYSBsb2NhbCBkaXZpc29yLgogICovCi0jZGVmaW5lIENGR19USU1FUkJBU0UJCU9NQVAxNTEwX1RJTUVSMV9CQVNFCi0jZGVmaW5lIENGR19QVlQJCQk3CQkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDRkdfUFZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJCU9NQVAxNTEwX1RJTUVSMV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUFZUCQkJNwkJLyogMl4ocHZ0KzEpLCBkaXZpZGUgYnkgMjU2ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENPTkZJR19TWVNfUFZUKSkKIAogI2RlZmluZSBPTUFQNTkxMF9EUExMX0RJVgkxCiAjZGVmaW5lIE9NQVA1OTEwX0RQTExfTVVMCSgoQ09ORklHX1NZU19DTEtfRlJFUSAqIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9uczk3NTBkZXYuaCBiL2luY2x1ZGUvY29uZmlncy9uczk3NTBkZXYuaAppbmRleCA1YjVjNmViLi5iMjJjMzNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvbnM5NzUwZGV2LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL25zOTc1MGRldi5oCkBAIC00OSw4ICs0OSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAgMTI4ICAgICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsCiAJCQkJCSAqIGRhdGEgKi8KIAogLyoKQEAgLTExMiwyNCArMTEyLDI0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIk5TOTc1MERFViAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiTlM5NzUwREVWICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDc4MDAwMAkvKiA3LDUgTUIgaW4gRFJBTQkqLyAvKiBAVE9ETyAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA3ODAwMDAJLyogNyw1IE1CIGluIERSQU0JKi8gLyogQFRPRE8gKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDAwNjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovIC8qIEBUT0RPICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwNjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovIC8qIEBUT0RPICovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJKENQVV9DTEtfRlJFUS82NCkKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCShDUFVfQ0xLX0ZSRVEvNjQpCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBOUzk3NTBfRVRIX1BIWV9BRERSRVNTCSgweDAwMDApCiAKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHg1MDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCkBAIC0xNjgsMjEgKzE2OCwyMSBAQAogI2RlZmluZSBDT05GSUdfQU1EX0xWODAwCTEJLyogdW5jb21tZW50IHRoaXMgaWYgeW91IGhhdmUgYSBMVjgwMCBmbGFzaCAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNpZmRlZiBDT05GSUdfQU1EX0xWODAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDEwMDAwMCAvKiAxTUIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxOSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwRjAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDBGMDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FNRF9MVjQwMAogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJCTB4MDAwODAwMDAgLyogNTEyS0IgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwNzAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTEpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDA3MDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwogI2VuZGlmCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKiBAVE9ETyAqLwogLyojZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvbzJkbnQuaCBiL2luY2x1ZGUvY29uZmlncy9vMmRudC5oCmluZGV4IGI1MTUzODguLmJmYWU3YjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9vMmRudC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9vMmRudC5oCkBAIC0zMiw3ICszMiw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1MjAwCiAjZGVmaW5lIENPTkZJR19PMkROVAkJMQkvKiAuLi4gb24gTzJETlQgYm9hcmQgKi8KIAotI2RlZmluZSBDRkdfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIEJPT1RGTEFHX0NPTEQJCTB4MDEJLyogTm9ybWFsIFBvd2VyLU9uOiBCb290IGZyb20gRkxBU0ggICovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CSAgICAgKi8KQEAgLTQ0LDcgKzQ0LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJNQkvKiBjb25zb2xlIGlzIG9uIFBTQzUgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgogICogUENJIE1hcHBpbmc6CkBAIC02NCwxMSArNjQsMTEgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9JT19QSFlTCUNPTkZJR19QQ0lfSU9fQlVTCiAjZGVmaW5lIENPTkZJR19QQ0lfSU9fU0laRQkweDAxMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1hMQl9QSVBFTElOSU5HCTEKKyNkZWZpbmUgQ09ORklHX1NZU19YTEJfUElQRUxJTklORwkxCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19OUzgzODJYCQkxCiAKIC8qIFBhcnRpdGlvbnMgKi8KQEAgLTEwMyw3ICsxMDMsNyBAQAogCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkYwMDAwMDApCQkvKiBCb290IGxvdyB3aXRoIDE2IE1CIEZsYXNoICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQogI2Vsc2UKICMgICBlcnJvciAiVEVYVF9CQVNFIG11c3QgYmUgMHhGRjAwMDAwMCIKICNlbmRpZgpAQCAtMTQyLDE3ICsxNDIsMTcgQEAKIC8qCiAgKiBJUEIgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLwogCi0jaWYgZGVmaW5lZChDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEspCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLKQogLyoKICAqIFBDSSBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbgogICoKICAqIEFjdHVhbGx5IGEgUENJIENsb2NrIG9mIDY2IE1IeiBpcyBvbmx5IHNldCAoaW4gY3B1X2luaXQuYykgaWYKLSAqIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sKKyAqIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCiAgKiAgb2YgNjYgTUh6IHlldCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBhIElQQiBCdXMgQ2xvY2sgb2YgNjYgTUh6LgogICovCi0jZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KICNlbmRpZgogI2VuZGlmCiAKQEAgLTE2MCwxMCArMTYwLDEwIEBACiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkxCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbjoKQEAgLTE3NCwzMSArMTc0LDMxIEBACiAgKiAweDUwIC4uLiAweDU3IGVhY2ggMjU2IGJ5dGVzIGluIHNpemUKICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19GUkFNCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19GUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwogLyoKICAqIFRoZXJlIGlzIG5vIHdyaXRlIGRlbGF5IHdpdGggRlJBTSwgd3JpdGUgb3BlcmF0aW9ucyBhcmUgcGVyZm9ybWVkIGF0IGJ1cwogICogc3BlZWQuIFRodXMsIG5vIHN0YXR1cyBwb2xsaW5nIG9yIHdyaXRlIGRlbGF5IGlzIG5lZWRlZC4KICAqLwotLyojZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MCovCisvKiNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk3MCovCiAKIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMTAwMDAwMAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwNDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDA0MDAwMCkKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBtZW1vcnkgYmFua3MgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIG1lbW9yeSBiYW5rcyAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpICAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJMTAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiAiUmVhbCIgKGhhcmR3YXJlKSBzZWN0b3JzIHByb3RlY3Rpb24gKi8KIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCkBAIC0yMTEsMjMgKzIxMSwyMyBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLwogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBFdGhlcm5ldCBjb25maWd1cmF0aW9uCkBAIC0yNDIsNjUgKzI0Miw2NSBAQAogLyoKICAqIEdQSU8gY29uZmlndXJhdGlvbgogICovCi0vKiNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDEwMDAyMDA0ICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHgwMDAwMjAwNgkvKiBubyBDQU4gKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDEwMDAyMDA0ICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4MDAwMDIwMDYJLyogbm8gQ0FOICovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2lmZGVmIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCisjaWZkZWYgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCiAvKgogICogRm9yIDY2IE1IeiBQQ0kgY2xvY2sgYWRkaXRpb25hbCBXYWl0IFN0YXRlIGlzIG5lZWRlZCBmb3IgQ1MwIChmbGFzaCkuCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNTc4MDEgLyogZm9yIHBjaV9jbGsgPSA2NiBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDU3ODAxIC8qIGZvciBwY2lfY2xrID0gNjYgTUh6ICovCiAjZWxzZQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0NzgwMSAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9vY290ZWEuaCBiL2luY2x1ZGUvY29uZmlncy9vY290ZWEuaAppbmRleCBkOWIyNzdjLi4yZTgwOWIwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvb2NvdGVhLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29jb3RlYS5oCkBAIC01NiwzMyArNTYsMzMgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgMHhmZjgwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJCSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkgICAgMHg4MDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRSAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkgICAgMHhjMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgU1JBTQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCSAgICAweGQwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgIDB4ZmY4MDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAweDgwMDAwMDAwCSAgICAvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSAweGUwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lTUkFNX0JBU0UJICAgIDB4YzAwMDAwMDAJICAgIC8qIGludGVybmFsIFNSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJICAgIDB4ZDAwMDAwMDAJICAgIC8qIGludGVybmFsIFBDSSByZWdzCSovCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MzAwMDAwKQotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSIChDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJICAgIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgzMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDgwMDAwMDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIGludGVybmFsIFNSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00gIDEKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIgICBDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgIENGR19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgMHgyMDAwCSAgICAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgIDEyOAkJICAgIC8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URU1QX1NUQUNLX09DTSAgMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgICBDT05GSUdfU1lTX0lTUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgQ09ORklHX1NZU19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgIDB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgMTI4CQkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX1BPU1RfV09SRF9BRERSCShDRkdfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX1BPU1RfV09SRF9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJKDE4NDMyMDAgKiA2KQkvKiBFeHQgY2xrIEAgMTEuMDU5IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJKDE4NDMyMDAgKiA2KQkvKiBFeHQgY2xrIEAgMTEuMDU5IE1IeiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMTA2LDM1ICsxMDYsMzUgQEAKICAqIFRoZSBEUzE3NDMgY29kZSBhc3N1bWVzIHRoaXMgY29uZGl0aW9uIChpLmUuIC0tIGl0IGFzc3VtZXMgdGhlIGJhc2UKICAqIGFkZHJlc3MgZm9yIHRoZSBSVEMgcmVnaXN0ZXJzIGlzOgogICoKLSAqCUNGR19OVlJBTV9CQVNFX0FERFIgKyBDRkdfTlZSQU1fU0laRQorICoJQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX05WUkFNX1NJWkUKICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkgICAgKDB4MjAwMCAtIDgpICAgIC8qIE5WUkFNIHNpemUoOGspLSBSVEMgcmVncyAqLworI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX1NJWkUJICAgICgweDIwMDAgLSA4KSAgICAvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzE3NHgJMQkJICAgIC8qIERTMTc0MyBSVEMJCSovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwCSAgICAvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQorCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmIC8qIENPTkZJR19FTlZfSVNfSU5fTlZSQU0gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkzCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJCSAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCQkgICAgLyogbnVtYmVyIG9mIGJhbmtzCSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CQkgICAgLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMCAgICAgICAgIDB4NTU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJhYWEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRSAgICAgdW5zaWduZWQgY2hhcgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwICAgICAgICAgMHg1NTU1CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEgICAgICAgICAweDJhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUgICAgIHVuc2lnbmVkIGNoYXIKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE1MiwxMyArMTUyLDEzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSTJDX01VTFRJX0VFUFJPTVMKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweGE4Pj4xKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKIC8qCiAgKiBEZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcwpAQCAtMjAwLDEyICsyMDAsMTIgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCQkJLyogZG8gcGNpIHBsdWctYW5kLXBsYXkJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9vbWFwMTUxMGlubi5oIGIvaW5jbHVkZS9jb25maWdzL29tYXAxNTEwaW5uLmgKaW5kZXggZDM5MGQ4NS4uYzdkMWI2YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL29tYXAxNTEwaW5uLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29tYXAxNTEwaW5uLmgKQEAgLTQ5LDggKzQ5LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNjcsMTEgKzY3LDExIEBACiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCSgtNCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkoQ09ORklHX1NZU19DTEtfRlJFUSkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweGZmZmIwMDAwCQkvKiB1YXJ0MSwgYmx1ZXRvb3RoIHVhcnQgb24gaGVsZW4gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCSgtNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJKENPTkZJR19TWVNfQ0xLX0ZSRVEpCS8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJCS8qIHVhcnQxLCBibHVldG9vdGggdWFydCBvbiBoZWxlbiAqLwogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTg0LDcgKzg0LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtMTA5LDcgKzEwOSw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJjb25zb2xlPXR0eVMwLDExNTIwMG44IG5vaW5pdHJkIHJvb3Q9L2Rldi9uZnMgaXA9Ym9vdHAiCiAjZGVmaW5lIENPTkZJR19CT09UQ09NTUFORAkiYm9vdHA7dGZ0cDtib290bSIKLSNkZWZpbmUgQ0ZHX0FVVE9MT0FECQkibiIJCS8qIE5vIGF1dG9sb2FkICovCisjZGVmaW5lIENPTkZJR19TWVNfQVVUT0xPQUQJCSJuIgkJLyogTm8gYXV0b2xvYWQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQogI2RlZmluZSBDT05GSUdfS0dEQl9CQVVEUkFURQkxMTUyMDAJCS8qIHNwZWVkIHRvIHJ1biBrZ2RiIHNlcmlhbCBwb3J0ICovCkBAIC0xMjAsMjYgKzEyMCwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJCSJPTUFQMTUxMCBJbm5vdmF0b3IgIyAiIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIk9NQVAxNTEwIElubm92YXRvciAjICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgxMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MTIwMDAwMDAJLyogMzIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIFRoZSAxNTEwIGhhcyAzIHRpbWVycywgdGhleSBjYW4gYmUgZHJpdmVuIGJ5IHRoZSBSZWZDbGsgKDEyTWh6KSBvciBieSBEUExMMS4KICAqIFRoaXMgdGltZSBpcyBmdXJ0aGVyIHN1YmRpdmlkZWQgYnkgYSBsb2NhbCBkaXZpc29yLgogICovCi0jZGVmaW5lIENGR19USU1FUkJBU0UJMHhGRkZFQzUwMAkgICAgLyogdXNlIHRpbWVyIDEgKi8KLSNkZWZpbmUgQ0ZHX1BWVAkJNwkJICAgIC8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLwotI2RlZmluZSBDRkdfSFoJCQkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENGR19QVlQpKQorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSQkFTRQkweEZGRkVDNTAwCSAgICAvKiB1c2UgdGltZXIgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BWVAkJNwkJICAgIC8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDT05GSUdfU1lTX1BWVCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNjEsMzUgKzE2MSwzNSBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwIC8qIDE2TUIgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJKDEyOCoxMDI0KQkvKiBTaXplIG9mIGEgc2VjdG9yICgxMjhrQikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0VDVF9TSVpFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCS8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJUEhZU19GTEFTSF9TRUNUX1NJWkUJLyogUmVzZXJ2ZSAxIHNlY3RvciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0laRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogTW9uaXRvciBhdCBiZWdpbm5pbmcgb2YgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJUEhZU19GTEFTSF9TRUNUX1NJWkUJLyogUmVzZXJ2ZSAxIHNlY3RvciAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFBIWVNfRkxBU0hfU0laRSB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGRyaXZlciBzZXR1cAogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQkvKiBVc2UgZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQkvKiBVc2UgYnVmZmVyZWQgd3JpdGVzICh+MTB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCTEJLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkxCS8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCVBIWVNfRkxBU0hfU0VDVF9TSVpFCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX0VOVl9TRUNUX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCSggQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiApCS8qIEVudmlyb25tZW50IGFmdGVyIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCSggQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOICkJLyogRW52aXJvbm1lbnQgYWZ0ZXIgTW9uaXRvciAqLwogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL29tYXAxNjEwaDIuaCBiL2luY2x1ZGUvY29uZmlncy9vbWFwMTYxMGgyLmgKaW5kZXggYWViMmZlYy4uZTJhNjM2MDcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9vbWFwMTYxMGgyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29tYXAxNjEwaDIuaApAQCAtNTEsOCArNTEsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtNjQsMTEgKzY0LDExIEBACiAvKgogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCSgtNCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCSg0ODAwMDAwMCkJCS8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweGZmZmIwMDAwCS8qIHVhcnQxLCBibHVldG9vdGggdWFydCAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJKC00KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCSg0ODAwMDAwMCkJCS8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhmZmZiMDAwMAkvKiB1YXJ0MSwgYmx1ZXRvb3RoIHVhcnQgKi8KIAogLyoKICAqIHNlbGVjdCBzZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCkBAIC03OSw3ICs3OSw3IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCTExNTIwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKgpAQCAtMTA0LDcgKzEwNCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJImNvbnNvbGU9dHR5UzAsMTE1MjAwbjggbm9pbml0cmQgcm9vdD0vZGV2L25mcyBpcD1kaGNwIgogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQgICAgICAiYm9vdHA7dGZ0cDtib290bSIKLSNkZWZpbmUgQ0ZHX0FVVE9MT0FEICAgICAgICAgICAgIm4iICAgICAgICAgICAgIC8qIE5vIGF1dG9sb2FkICovCisjZGVmaW5lIENPTkZJR19TWVNfQVVUT0xPQUQgICAgICAgICAgICAibiIgICAgICAgICAgICAgLyogTm8gYXV0b2xvYWQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQogI2RlZmluZSBDT05GSUdfS0dEQl9CQVVEUkFURQkxMTUyMDAJLyogc3BlZWQgdG8gcnVuIGtnZGIgc2VyaWFsIHBvcnQgKi8KQEAgLTExNCwyNyArMTE0LDI3IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJPTUFQMTYxMCBIMiAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiT01BUDE2MTAgSDIgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgxMjAwMDAwMAkvKiAzMiBNQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDEwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDEyMDAwMDAwCS8qIDMyIE1CIGluIERSQU0gKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyogVGhlIDE2MTAgaGFzIDYgdGltZXJzLCB0aGV5IGNhbiBiZSBkcml2ZW4gYnkgdGhlIFJlZkNsayAoMTJNaHopIG9yIGJ5CiAgKiBEUExMMS4gVGhpcyB0aW1lIGlzIGZ1cnRoZXIgc3ViZGl2aWRlZCBieSBhIGxvY2FsIGRpdmlzb3IuCiAgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkweEZGRkVDNTAwCS8qIHVzZSB0aW1lciAxICovCi0jZGVmaW5lIENGR19QVlQJNwkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KLSNkZWZpbmUgQ0ZHX0haCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ0ZHX1BWVCkpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFCTB4RkZGRUM1MDAJLyogdXNlIHRpbWVyIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QVlQJNwkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENPTkZJR19TWVNfUFZUKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE2MiwzMCArMTYyLDMwIEBACiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcF9mbGFzaF9iYXNlOwkJLyogc2V0IGluIGZsYXNoX19pbml0ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCW9tYXBfZmxhc2hfYmFzZQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCW9tYXBfZmxhc2hfYmFzZQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19DUzBfQk9PVCkKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xX0JNMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMV9CTTAKIAogI2Vsc2UKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xX0JNMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMV9CTTEKIAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJMHgwMjAwMDAwMAkvKiAzMk1CICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMjU5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMjU5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIDB4MDIwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDIwMDAwKQogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDIwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDE2MTBpbm4uaCBiL2luY2x1ZGUvY29uZmlncy9vbWFwMTYxMGlubi5oCmluZGV4IDY4Y2Y5MWMuLjVkY2ZjZTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9vbWFwMTYxMGlubi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9vbWFwMTYxMGlubi5oCkBAIC01MCw4ICs1MCw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC02NSwxMSArNjUsMTEgQEAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJKC00KQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCSg0ODAwMDAwMCkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4ZmZmYjAwMDAJLyogdWFydDEsIGJsdWV0b290aCB1YXJ0IG9uIGhlbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkoLTQpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCSg0ODAwMDAwMCkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweGZmZmIwMDAwCS8qIHVhcnQxLCBibHVldG9vdGggdWFydCBvbiBoZWxlbiAqLwogCiAvKgogICogc2VsZWN0IHNlcmlhbCBjb25zb2xlIGNvbmZpZ3VyYXRpb24KQEAgLTgwLDcgKzgwLDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC0xMTksMjcgKzExOSwyNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJIk9NQVAxNjEwIElubm92YXRvciAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIk9NQVAxNjEwIElubm92YXRvciAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgxMjAwMDAwMAkvKiAzMiBNQiBpbiBEUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDEwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDEyMDAwMDAwCS8qIDMyIE1CIGluIERSQU0gICAgKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyogVGhlIDE2MTAgaGFzIDYgdGltZXJzLCB0aGV5IGNhbiBiZSBkcml2ZW4gYnkgdGhlIFJlZkNsayAoMTJNaHopIG9yIGJ5CiAgKiBEUExMMS4gVGhpcyB0aW1lIGlzIGZ1cnRoZXIgc3ViZGl2aWRlZCBieSBhIGxvY2FsIGRpdmlzb3IuCiAgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkweEZGRkVDNTAwCS8qIHVzZSB0aW1lciAxICovCi0jZGVmaW5lIENGR19QVlQJNwkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KLSNkZWZpbmUgQ0ZHX0haCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ0ZHX1BWVCkpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFCTB4RkZGRUM1MDAJLyogdXNlIHRpbWVyIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QVlQJNwkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENPTkZJR19TWVNfUFZUKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE2NywzMCArMTY3LDMwIEBACiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcF9mbGFzaF9iYXNlOwkJLyogc2V0IGluIGZsYXNoX19pbml0ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCW9tYXBfZmxhc2hfYmFzZQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCW9tYXBfZmxhc2hfYmFzZQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19DUzBfQk9PVCkKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xX0JNMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMV9CTTAKIAogI2Vsc2UKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xX0JNMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMV9CTTEKIAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NJWkUJMHgwMjAwMDAwMAkvKiAzMk1CICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMjU5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMjU5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIDB4MDIwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDIwMDAwKQogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDIwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDI0MjBoNC5oIGIvaW5jbHVkZS9jb25maWdzL29tYXAyNDIwaDQuaAppbmRleCA5MDE4NDQwLi5kMTE4NjhlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvb21hcDI0MjBoNC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9vbWFwMjQyMGg0LmgKQEAgLTQ3LDcgKzQ3LDcgQEAKIC8qIE9uIEg0LCBOT1IgYW5kIE5BTkQgZmxhc2ggYXJlIG11dHVhbCBleGNsdXNpdmUuCiAgICBEZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCB0byB1c2UgTkFORAogICovCi0vKiNkZWZpbmUgQ0ZHX05BTkRfQk9PVCAqLworLyojZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UICovCiAKICNpZmRlZiBDT05GSUdfQVBUSVgKICNkZWZpbmUgVl9TQ0xLICAgICAgICAgICAgICAgICAgIDE1MDAwMDAKQEAgLTcxLDggKzcxLDggQEAKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRSAgICAgICAgICAgICBTWl8xMjhLICAgICAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTiAgICAgICAgICAgKENPTkZJR19FTlZfU0laRSArIFNaXzEyOEspCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4gICAgICAgICAgIChDT05GSUdfRU5WX1NJWkUgKyBTWl8xMjhLKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05NCwxMSArOTQsMTEgQEAKICNkZWZpbmUgVl9OUzE2NTUwX0NMSyAgICAgICAgICAgICg0ODAwMDAwMCkgIC8qIDQ4TUh6IChBUExMOTYvMikgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAgKC00KQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsgICAgICAgICAgVl9OUzE2NTUwX0NMSyAgIC8qIDNNSHogKDEuNU1IeioyKSAqLwotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAgT01BUDI0MjBfVUFSVDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFICAgICAoLTQpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsgICAgICAgICAgVl9OUzE2NTUwX0NMSyAgIC8qIDNNSHogKDEuNU1IeioyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgIE9NQVAyNDIwX1VBUlQxCiAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgpAQCAtMTA5LDE1ICsxMDksMTUgQEAKICAgICogSTJDIGNvbmZpZ3VyYXRpb24KICAgICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVEICAgICAgICAgIDEwMDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQgICAgICAgICAgMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFICAgICAgICAgIDEKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9PTUFQMjRYWF9JMkMKIAogLyogYWxsb3cgdG8gb3ZlcndyaXRlIHNlcmlhbCBhbmQgZXRoYWRkciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgICAgMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgICAgICAgICAgMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgICB7OTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgIHs5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDB9CiAKIAogLyoKQEAgLTEyNSw3ICsxMjUsNyBAQAogICovCiAjaW5jbHVkZSA8Y29uZmlnX2NtZF9kZWZhdWx0Lmg+CiAKLSNpZmRlZiBDRkdfTkFORF9CT09UCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX0JPT1QKICAgICAjZGVmaW5lIENPTkZJR19DTURfREhDUAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9JMkMKICAgICAjZGVmaW5lIENPTkZJR19DTURfTkFORApAQCAtMTUyLDkgKzE1Miw5IEBACiAgKiAgQm9hcmQgTkFORCBJbmZvLgogICovCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQotI2RlZmluZSBDRkdfTkFORF9BRERSIDB4MDQwMDAwMDAgIC8qIHBoeXNpY2FsIGFkZHJlc3MgdG8gYWNjZXNzIG5hbmQgYXQgQ1MwKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0FERFIgMHgwNDAwMDAwMCAgLyogcGh5c2ljYWwgYWRkcmVzcyB0byBhY2Nlc3MgbmFuZCBhdCBDUzAqLwogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UgMQkvKiBNYXggbnVtYmVyIG9mIE5BTkQgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRSAxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzICovCiAjZGVmaW5lIFNFQ1RPUlNJWkUgICAgICAgICAgNTEyCiAKICNkZWZpbmUgQUREUl9DT0xVTU4gICAgICAgICAxCkBAIC0xNzMsNyArMTczLDcgQEAKIAogI2RlZmluZSBOQU5EX05PX1JCICAgICAgICAgIDEKIAotI2RlZmluZSBDRkdfTkFORF9XUAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfV1AKICNkZWZpbmUgTkFORF9XUF9PRkYoKSAgZG8geyoodm9sYXRpbGUgdTMyICopKDB4NjgwMEEwNTApIHw9IDB4MDAwMDAwMTA7fSB3aGlsZSgwKQogI2RlZmluZSBOQU5EX1dQX09OKCkgIGRvIHsqKHZvbGF0aWxlIHUzMiAqKSgweDY4MDBBMDUwKSAmPSB+MHgwMDAwMDAxMDt9IHdoaWxlKDApCiAKQEAgLTIwNiwyMCArMjA2LDIwIEBACiAjZGVmaW5lIFZfUFJPTVBUICAgICAgICAgICAgICAgICAiT01BUDI0MnggSDQgIyAiCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAgICAgICAgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVCAgICAgICAgICAgICAgIFZfUFJPTVBUCi0jZGVmaW5lIENGR19DQlNJWkUgICAgICAgICAgICAgICAyNTYgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAgICAgICAgICAgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAgICAgICAgICBWX1BST01QVAorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRSAgICAgICAgICAgICAgIDI1NiAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUgICAgICAgICAgICAgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTICAgICAgICAgICAgICAxNiAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICAgICAgICAgQ0ZHX0NCU0laRSAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgICAgICAgIDE2ICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUgICAgICAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgICAgICAgKE9NQVAyNDIwX1NEUkNfQ1MwKSAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAgKE9NQVAyNDIwX1NEUkNfQ1MwK1NaXzMxTSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgICAoT01BUDI0MjBfU0RSQ19DUzApICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAgKE9NQVAyNDIwX1NEUkNfQ1MwK1NaXzMxTSkKIAotI3VuZGVmCUNGR19DTEtTX0lOX0haICAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haICAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgICAgICAgIChPTUFQMjQyMF9TRFJDX0NTMCkgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIgICAgICAgICAgICAoT01BUDI0MjBfU0RSQ19DUzApIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIFRoZSAyNDIwIGhhcyAxMiBHUCB0aW1lcnMsIHRoZXkgY2FuIGJlIGRyaXZlbiBieSB0aGUgU3lzQ2xrICgxMi8xMy8xOS4yKSBvciBieQogICogMzJLSHogY2xrLCBvciBmcm9tIGV4dGVybmFsIHNpZy4gVGhpcyByYXRlIGlzIGRpdmlkZWQgYnkgYSBsb2NhbCBkaXZpc29yLgpAQCAtMjMwLDkgKzIzMCw5IEBACiAjZGVmaW5lIFZfUFZUICAgICAgICAgICAgICAgICAgICA3ICAvKiB1c2Ugd2l0aCAxMk1Iei8xMjggKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19USU1FUkJBU0UgICAgICAgICAgICBPTUFQMjQyMF9HUFQyCi0jZGVmaW5lIENGR19QVlQgICAgICAgICAgICAgICAgICBWX1BWVCAgLyogMl4ocHZ0KzEpICovCi0jZGVmaW5lIENGR19IWgkgICAgICAgICAgICAgICAgICgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ0ZHX1BWVCkpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFICAgICAgICAgICAgT01BUDI0MjBfR1BUMgorI2RlZmluZSBDT05GSUdfU1lTX1BWVCAgICAgICAgICAgICAgICAgIFZfUFZUICAvKiAyXihwdnQrMSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkgICAgICAgICAgICAgICAgICgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ09ORklHX1NZU19QVlQpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMjYyLDM2ICsyNjIsMzYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRSAgICAgICAgICAgUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MgICAgICAyICAgICAgICAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgICAgICAgKDI1OSkJICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRSAvKiBNb25pdG9yIGF0IGJlZ2lubmluZyBvZiBmbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCVNaXzEyOEsgICAgICAvKiBSZXNlcnZlIDEgc2VjdG9yICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UsIENGR19GTEFTSF9CQVNFICsgUEhZU19GTEFTSF9TSVpFXzEgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgICAgIFBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAgICAgIDIgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgICAgKDI1OSkJICAgICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFIC8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCVNaXzEyOEsgICAgICAvKiBSZXNlcnZlIDEgc2VjdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgUEhZU19GTEFTSF9TSVpFXzEgfQogCi0jaWZkZWYgQ0ZHX05BTkRfQk9PVAorI2lmZGVmIENPTkZJR19TWVNfTkFORF9CT09UCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTkFORAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCTB4ODAwMDAJLyogZW52aXJvbm1lbnQgc3RhcnRzIGhlcmUgICovCiAjZWxzZQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAgKENGR19GTEFTSF9CQVNFICsgU1pfMTI4SykKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgICAgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBTWl8xMjhLKQogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICAgICAgMQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQlQSFlTX0ZMQVNIX1NFQ1RfU0laRQotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkoIENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4gKSAvKiBFbnZpcm9ubWVudCBhZnRlciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCSggQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOICkgLyogRW52aXJvbm1lbnQgYWZ0ZXIgTW9uaXRvciAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENGSSBGTEFTSCBkcml2ZXIgc2V0dXAKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIGRyaXZlcnMvbXRkL2NmaV9mbGFzaC5jICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogVXNlIGhhcmR3YXJlIHNlY3RvciBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIFVzZSBidWZmZXJlZCB3cml0ZXMgKH4xMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICAgICAoMTAwKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQgICAgICgxMDAqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQgICAgICgxMDAqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAgICAoMTAwKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKLSNkZWZpbmUgQ0ZHX0pGRlMyX01FTV9OQU5ECisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTUVNX05BTkQKIAogLyoKICAqIEpGRlMyIHBhcnRpdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9vbWFwNTkxMm9zay5oIGIvaW5jbHVkZS9jb25maWdzL29tYXA1OTEyb3NrLmgKaW5kZXggZGQzZjdkZS4uNjNjZDljNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL29tYXA1OTEyb3NrLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL29tYXA1OTEyb3NrLmgKQEAgLTUzLDggKzUzLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTY4LDExICs2OCwxMSBAQAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkoLTQpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkoNDgwMDAwMDApCS8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogKi8KLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweGZmZmIwMDAwCS8qIHVhcnQxLCBibHVldG9vdGggdWFydAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJKC00KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCSg0ODAwMDAwMCkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweGZmZmIwMDAwCS8qIHVhcnQxLCBibHVldG9vdGggdWFydAogCQkJCQkJb24gaGVsZW4gKi8KIAogLyoKQEAgLTg0LDcgKzg0LDcgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9PVkVSV1JJVEUKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVgJMQogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJMTE1MjAwCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAKIC8qCkBAIC0xMjMsMjcgKzEyMywyNyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJIk9NQVA1OTEyIE9TSyAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIk9NQVA1OTEyIE9TSyAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCShDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MTAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJMHgxMjAwMDAwMAkvKiAzMiBNQiBpbiBEUkFNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDEwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkweDEyMDAwMDAwCS8qIDMyIE1CIGluIERSQU0gICAgKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyogVGhlIDE2MTAgaGFzIDYgdGltZXJzLCB0aGV5IGNhbiBiZSBkcml2ZW4gYnkgdGhlIFJlZkNsayAoMTJNaHopIG9yIGJ5CiAgKiBEUExMMS4gVGhpcyB0aW1lIGlzIGZ1cnRoZXIgc3ViZGl2aWRlZCBieSBhIGxvY2FsIGRpdmlzb3IuCiAgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkweEZGRkVDNTAwCS8qIHVzZSB0aW1lciAxICovCi0jZGVmaW5lIENGR19QVlQJNwkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KLSNkZWZpbmUgQ0ZHX0haCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ0ZHX1BWVCkpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFCTB4RkZGRUM1MDAJLyogdXNlIHRpbWVyIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QVlQJNwkvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkoKENPTkZJR19TWVNfQ0xLX0ZSRVEpLygyIDw8IENPTkZJR19TWVNfUFZUKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhY2sgc2l6ZXMKQEAgLTE2NiwzNyArMTY2LDM3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMAkvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfMgkJMHgwMTAwMDAwMAkvKiBGbGFzaCBCYW5rICMyICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgICAgQ0ZHX0ZMQVNIX0JBU0UgIC8qIE1vbml0b3IgYXQgYmVnaW5uaW5nIG9mIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgICAgIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgLyogTW9uaXRvciBhdCBiZWdpbm5pbmcgb2YgZmxhc2ggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggZHJpdmVyIHNldHVwCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSSAgICAgICAgICAxICAgICAgIC8qIEZsYXNoIG1lbW9yeSBpcyBDRkkgY29tcGxpYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJICAgICAgICAgIDEgICAgICAgLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgICAxICAgICAgIC8qIFVzZSBkcml2ZXJzL210ZC9jZmlfZmxhc2guYyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgUEhZU19GTEFTSF8xLCBQSFlTX0ZMQVNIXzIgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBQSFlTX0ZMQVNIXzEsIFBIWVNfRkxBU0hfMiB9CiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCTB4MDIwMDAwMDAJLyogMzJNQiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDI1OSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDI1OSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgICAgIDEgICAgICAgLyogVXNlIGJ1ZmZlcmVkIHdyaXRlcyAofjEweCBmYXN0ZXIpICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OICAgMSAgICAgICAvKiBVc2UgaGFyZHdhcmUgc2VjdG9yIHByb3RlY3Rpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICAgICAxICAgICAgIC8qIFVzZSBidWZmZXJlZCB3cml0ZXMgKH4xMHggZmFzdGVyKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gICAxICAgICAgIC8qIFVzZSBoYXJkd2FyZSBzZWN0b3IgcHJvdGVjdGlvbiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyMCpDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyMCpDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAyMDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAyMDAwMCkKIAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJMHgyMDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkweDIwMDAwCS8qIGVudmlyb25tZW50IHN0YXJ0cyBoZXJlICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL29tYXA3MzBwMi5oIGIvaW5jbHVkZS9jb25maWdzL29tYXA3MzBwMi5oCmluZGV4IGIxYzRhMzAuLjE2NmQ1OTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9vbWFwNzMwcDIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvb21hcDczMHAyLmgKQEAgLTU4LDggKzU4LDggQEAKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJICAgMTI4CSAgICAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJICAgMTI4CSAgICAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC03MywxMSArNzMsMTEgQEAKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCSAgICgxKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCSAgICg0ODAwMDAwMCkJICAvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJICAgMHhmZmZiMDAwMAkgIC8qIHVhcnQxLCBibHVldG9vdGggdWFydAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJICAgKDEpCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCSAgICg0ODAwMDAwMCkJICAvKiBjYW4gYmUgMTJNLzMyS2h6IG9yIDQ4TWh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCSAgIDB4ZmZmYjAwMDAJICAvKiB1YXJ0MSwgYmx1ZXRvb3RoIHVhcnQKIAkJCQkJCSAgICogb24gcGVyc2V1cyAqLwogCiAvKgpAQCAtODgsNyArODgsNyBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCSAgIDEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkgICAxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCSAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIAogLyoKQEAgLTEzMSwyOSArMTMxLDI5IEBACiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJICAgICAgIC8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSAgICJPTUFQNzMwIFAyICMgIiAgICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCi0jZGVmaW5lIENGR19DQlNJWkUJCSAgIDI1NgkJICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCSAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJICAgIk9NQVA3MzAgUDIgIyAiICAgICAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCSAgIDI1NgkJICAgICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkJICAgMTYJCSAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJICAgQ0ZHX0NCU0laRQkgICAgICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJICAgMTYJCSAgICAgICAvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCSAgIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAgICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJICAgMHgxMDAwMDAwMAkgICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSAgIDB4MTIwMDAwMDAJICAgICAgIC8qIDMyIE1CIGluIERSQU0JICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCSAgIDB4MTAwMDAwMDAJICAgICAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJICAgMHgxMjAwMDAwMAkgICAgICAgLyogMzIgTUIgaW4gRFJBTQkgICAqLwogCi0jdW5kZWYgQ0ZHX0NMS1NfSU5fSFoJCSAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJICAgMHgxMDAwMDAwMAkgICAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCSAgIDB4MTAwMDAwMDAJICAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKIC8qIFRoZSBPTUFQNzMwIGhhcyAzIGdlbmVyYWwgcHVycG9zZSBNUFUgdGltZXJzLCB0aGV5IGNhbiBiZSBkcml2ZW4gYnkKICAqIHRoZSBSZWZDbGsgKDEyTWh6KSBvciBieSBEUExMMS4gVGhpcyB0aW1lIGlzIGZ1cnRoZXIgc3ViZGl2aWRlZCBieSBhCiAgKiBsb2NhbCBkaXZpc29yLgogICovCiAKLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRQkJICAgMHhGRkZFQzUwMAkgICAgICAgLyogdXNlIHRpbWVyIDEgKi8KLSNkZWZpbmUgQ0ZHX1BWVAkJCSAgIDcJCSAgICAgICAvKiAyXihwdnQrMSksIGRpdmlkZSBieSAyNTYgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJICAgKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDRkdfUFZUKSkKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UJCSAgIDB4RkZGRUM1MDAJICAgICAgIC8qIHVzZSB0aW1lciAxICovCisjZGVmaW5lIENPTkZJR19TWVNfUFZUCQkJICAgNwkJICAgICAgIC8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJICAgKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDT05GSUdfU1lTX1BWVCkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xODMsMjEgKzE4MywyMSBAQAogI2Vycm9yIFVua25vd24gQm9vdCBDaGlwLVNlbGVjdCBudW1iZXIKICNlbmRpZgogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkgICBQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkgICBQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkgICAxCQkgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCSAgIDEJCSAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkgICAweDAyMDAwMDAwCSAgLyogMzJNQiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJICAgKDI1OSkJICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkgICAoMjU5KQkgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSAgIChDRkdfRkxBU0hfQkFTRSArIDB4MDIwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSAgIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAyMDAwMCkKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSAgICAoMjAqQ0ZHX0haKQkgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSAgICAoMjAqQ0ZHX0haKQkgIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkgICAgKDIwKkNPTkZJR19TWVNfSFopCSAgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSAgICAoMjAqQ09ORklHX1NZU19IWikJICAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJICAgMQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCSAgIDB4MjAwMDAJICAvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3AzbXguaCBiL2luY2x1ZGUvY29uZmlncy9wM214LmgKaW5kZXggMmRmMWQ5ZC4uNWU0ZDMwYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3AzbXguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcDNteC5oCkBAIC00MywyMSArNDMsMjEgQEAKICNpZiBkZWZpbmVkIChDT05GSUdfUDNNNzUwKQogI2RlZmluZSBDT05GSUdfNzUwRlgJCQkvKiA3NTBHTC9HWC9GWAkJCSovCiAjZGVmaW5lIENPTkZJR19ISUdIX0JBVFMJCS8qIEhpZ2ggQkFUcyBzdXBwb3J0ZWQJCSovCi0jZGVmaW5lIENGR19CT0FSRF9OQU1FCQkiUDNNNzUwIgotI2RlZmluZSBDRkdfQlVTX0haCQkxMDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JVU19DTEsJCUNGR19CVVNfSFoKLSNkZWZpbmUgQ0ZHX1RDTEsJCTEwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX05BTUUJCSJQM003NTAiCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0haCQkxMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfQ0xLCQlDT05GSUdfU1lTX0JVU19IWgorI2RlZmluZSBDT05GSUdfU1lTX1RDTEsJCTEwMDAwMDAwMAogI2VsaWYgZGVmaW5lZCAoQ09ORklHX1AzTTc0NDgpCiAjZGVmaW5lIENPTkZJR183NHh4Ci0jZGVmaW5lIENGR19CT0FSRF9OQU1FCQkiUDNNNzQ0OCIKLSNkZWZpbmUgQ0ZHX0JVU19IWgkJMTMzMzMzMzMzCi0jZGVmaW5lIENGR19CVVNfQ0xLCQlDRkdfQlVTX0haCi0jZGVmaW5lIENGR19UQ0xLCQkxMzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19CT0FSRF9OQU1FCQkiUDNNNzQ0OCIKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJCTEzMzMzMzMzMworI2RlZmluZSBDT05GSUdfU1lTX0JVU19DTEsJCUNPTkZJR19TWVNfQlVTX0haCisjZGVmaW5lIENPTkZJR19TWVNfVENMSwkJMTMzMzMzMzMzCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0dUX0RVQUxfQ1BVCQkJLyogYWxzbyBmb3IgSlRBRyBldmVuIHdpdGggb25lIGNwdSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dUX0RVQUxfQ1BVCQkJLyogYWxzbyBmb3IgSlRBRyBldmVuIHdpdGggb25lIGNwdSAqLwogCiAvKiB3aGljaCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMgdG8gY2FsbCBmb3IgdGhpcyBib2FyZCAqLwotI2RlZmluZSBDRkdfQk9BUkRfQVNNX0lOSVQJMQorI2RlZmluZSBDT05GSUdfU1lTX0JPQVJEX0FTTV9JTklUCTEKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAxICAgICAvKiBDYWxsIGJvYXJkX2Vhcmx5X2luaXRfZgkqLwogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9SIDEgICAgIC8qIENhbGwgYm9hcmRfZWFybHlfaW5pdF9mCSovCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUiAgICAgIDEJLyogQ2FsbCBtaXNjX2luaXRfcigpCQkqLwpAQCAtNjYsNDIgKzY2LDQyIEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCiAjaWZkZWYgQ09ORklHX1AzTTc1MAotI2RlZmluZSBDRkdfU0RSQU0xX0JBU0UJCTB4MTAwMDAwMDAJLyogZWFjaCAyNTYgTUJ5dGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTFfQkFTRQkJMHgxMDAwMDAwMAkvKiBlYWNoIDI1NiBNQnl0ZQkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAqLwogI2lmIGRlZmluZWQgKENPTkZJR19QM003NTApCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmODAwMDAwCS8qIHN0YXJ0IG9mIGZsYXNoIGJhbmtzCSovCi0jZGVmaW5lIENGR19CT09UX1NJWkUJCV84TQkJLyogYm9vdCBmbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmODAwMDAwCS8qIHN0YXJ0IG9mIGZsYXNoIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9TSVpFCQlfOE0JCS8qIGJvb3QgZmxhc2gJCSovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfUDNNNzQ0OCkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4ZmYwMDAwMDAJLyogc3RhcnQgb2YgZmxhc2ggYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX0JPT1RfU0laRQkJXzE2TQkJLyogYm9vdCBmbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGZmMDAwMDAwCS8qIHN0YXJ0IG9mIGZsYXNoIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVF9TSVpFCQlfMTZNCQkvKiBib290IGZsYXNoCQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19CT09UX1NQQUNFCQlDRkdfRkxBU0hfQkFTRQkvKiBCT09UX0NTMCBmbGFzaCAwICAgICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhmZmYwMDAwMAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCi0jZGVmaW5lIENGR19NSVNDX1JFR0lPTl9CQVNFCTB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX1NQQUNFCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogQk9PVF9DUzAgZmxhc2ggMCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweGZmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01JU0NfUkVHSU9OX0JBU0UJMHhmMDAwMDAwMAogCi0jZGVmaW5lIENGR19ERkxfR1RfUkVHUwkJMHhmMTAwMDAwMAkvKiBib290IHRpbWUgR1RfUkVHUyAqLwotI2RlZmluZSBDRkdfR1RfUkVHUwkJMHhmMTAwMDAwMAkvKiBHVCBSZWdpc3RlcnMgYXJlIG1hcHBlZCBoZXJlICovCi0jZGVmaW5lIENGR19JTlRfU1JBTV9CQVNFCTB4NDIwMDAwMDAJLyogR1Qgb2ZmZXJzIDI1NmsgaW50ZXJuYWwgU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RGTF9HVF9SRUdTCQkweGYxMDAwMDAwCS8qIGJvb3QgdGltZSBHVF9SRUdTICovCisjZGVmaW5lIENPTkZJR19TWVNfR1RfUkVHUwkJMHhmMTAwMDAwMAkvKiBHVCBSZWdpc3RlcnMgYXJlIG1hcHBlZCBoZXJlICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5UX1NSQU1fQkFTRQkweDQyMDAwMDAwCS8qIEdUIG9mZmVycyAyNTZrIGludGVybmFsIFNSQU0gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgLyoKLSAqIFdoZW4gbG9ja2luZyBkYXRhIGluIGNhY2hlIHlvdSBzaG91bGQgcG9pbnQgdGhlIENGR19JTklUX1JBTV9BRERSRVNTCisgKiBXaGVuIGxvY2tpbmcgZGF0YSBpbiBjYWNoZSB5b3Ugc2hvdWxkIHBvaW50IHRoZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFJFU1MKICAqIFRvIGFuIHVudXNlZCBtZW1vcnkgcmVnaW9uLiBUaGUgc3RhY2sgd2lsbCByZW1haW4gaW4gY2FjaGUgdW50aWwgUkFNCiAgKiBpcyBpbml0aWFsaXplZAogKi8KLSN1bmRlZglDRkdfSU5JVF9SQU1fTE9DSwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDQyMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgxMDAwCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyN1bmRlZglDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXQgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTEwLDE1ICsxMTAsMTUgQEAKICNkZWZpbmUgQ09ORklHX01QU0MJCQkvKiBNVjY0NDYwIFNlcmlhbAkJKi8KICNkZWZpbmUgQ09ORklHX01QU0NfUE9SVAkwCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIGNvbnNvbGUgYmF1ZHJhdGUJCSovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXRoZXJuZXQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKiBDaGFuZ2UgdGhlIGRlZmF1bHQgZXRoZXJuZXQgcG9ydCwgdXNlIHRoaXMgZGVmaW5lIChvcHRpb25zOiAwLCAxLCAyKSAqLwotI2RlZmluZSBDRkdfRVRIX1BPUlQJCUVUSF8wCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX1BPUlQJCUVUSF8wCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkKICNkZWZpbmUgTVZfRVRIX0RFVlMJCTIKICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVCAgICAgICAgMQkvKiByZXNldCBwaHkgdXBvbiBzdGFydHVwICAgICAgICAgKi8KQEAgLTEyNywxNSArMTI3LDE1IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0ggICAgIDEJLyogdXNlIEZMQVNIIGZvciBlbnZpcm9ubWVudCB2YXJzCSovCiAjaWYgZGVmaW5lZCAoQ09ORklHX1AzTTc1MCkKQEAgLTE0NCw3ICsxNDQsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIHR3byBzZWN0b3JzICgyIGRldmljZXMgcGFyYWxsZWwJKi8KICNlbmRpZgogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQpAQCAtMTU0LDEyICsxNTQsMTIgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCQkvKiBJMkMgc3BlZWQgZGVmYXVsdAkqLwogCiAvKiBJMkMgUlRDICovCiAjZGVmaW5lIENPTkZJR19SVENfTTQxVDExCTEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4Ci0jZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAJLyogcGxheSBhbG9uZyB3aXRoIGxpbnV4CSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAJLyogcGxheSBhbG9uZyB3aXRoIGxpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTc2LDI3ICsxNzYsMjcgQEAKICNlbmRpZiAvKiBDT05GSUdfUENJICovCiAKIC8qIFBDSSBNRU1PUlkgTUFQIHNlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX1BDSTBfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMF9NRU1fU0laRQlfMTI4TQotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDg4MDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCV8xMjhNCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9NRU1fU0laRQlfMTI4TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4ODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJXzEyOE0KIAotI2RlZmluZSBDRkdfUENJMF8wX01FTV9TUEFDRQkoQ0ZHX1BDSTBfTUVNX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kxXzBfTUVNX1NQQUNFCShDRkdfUENJMV9NRU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kwXzBfTUVNX1NQQUNFCShDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV8wX01FTV9TUEFDRQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFKQogCiAvKiBQQ0kgSS9PIE1BUCBzZWN0aW9uICovCi0jZGVmaW5lIENGR19QQ0kwX0lPX0JBU0UJMHhmYTAwMDAwMAotI2RlZmluZSBDRkdfUENJMF9JT19TSVpFCV8xNk0KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweGZiMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJXzE2TQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fQkFTRQkweGZhMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMF9JT19TSVpFCV8xNk0KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHhmYjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQlfMTZNCiAKLSNkZWZpbmUgQ0ZHX1BDSTBfSU9fU1BBQ0UJKENGR19QQ0kwX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0kwX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NQQUNFCShDRkdfUENJMV9JT19CQVNFKQotI2RlZmluZSBDRkdfUENJMV9JT19TUEFDRV9QQ0kJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0UJKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTBfSU9fU1BBQ0VfUENJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFCShDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1NQQUNFX1BDSQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgKENGR19QQ0kwX0lPX0JBU0UpCi0jZGVmaW5lIENGR19QQ0lfSURTRUwgMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgKENPTkZJR19TWVNfUENJMF9JT19CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9JRFNFTCAweDMwCiAKICN1bmRlZglDT05GSUdfQk9PVEFSR1MKICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HU19DT01NT04JCQkJXApAQCAtMjg1LDI2ICsyODUsMjYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJICAgICAgICAiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJICAgICAgICAiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgICAgICAgICAgICAgIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJICAgICAgICAxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJICAgICAgICBDRkdfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgICAgICAgICAgICAgIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJICAgICAgICAxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCSAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCSAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MDgwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDgwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCSAgICAgICAgMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTMxNyw5ICszMTcsOSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIFJlc2V0IHZhbHVlcyBmb3IgUG9ydCBiZWhhdmlvciAoOGJpdC8gMzJiaXQsIGV0Yy4pIG9ubHkgY29ycmVjdGVkIGRldmljZSB3aWR0aCAqLwogI2lmIGRlZmluZWQgKENPTkZJR19QM003NTApCi0jZGVmaW5lIENGR19CT09UX1BBUgkJMHg4RkRGRjg3RgkvKiAxNiBiaXQgZmxhc2gsIGRpc2FibGUgYnVyc3QqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfUEFSCQkweDhGREZGODdGCS8qIDE2IGJpdCBmbGFzaCwgZGlzYWJsZSBidXJzdCovCiAjZWxpZiBkZWZpbmVkIChDT05GSUdfUDNNNzQ0OCkKLSNkZWZpbmUgQ0ZHX0JPT1RfUEFSCQkweDhGRUZGRkZGCS8qIDMyIGJpdCBmbGFzaCwgYnVyc3QgZW5hYmxlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfUEFSCQkweDhGRUZGRkZGCS8qIDMyIGJpdCBmbGFzaCwgYnVyc3QgZW5hYmxlZCAqLwogI2VuZGlmCiAKIC8qCkBAIC0zNTYsMTEgKzM1NiwxMSBAQAogICogTVBQWzMwXQlNb2R1bGUgcmVzZXQJCUdQSU8JT1VUCUJvYXJkIHJlc2V0CiAgKiBNUFBbMzFdCVBDSSBFUmVhZHkJCUdQSU8JSU4JQ29ubmVjdGVkIHRvIFAxMgogICovCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8wCTB4MDAzMDMwMjIKLSNkZWZpbmUgQ0ZHX01QUF9DT05UUk9MXzEJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTVBQX0NPTlRST0xfMgkweDAwMDA0MDAwCi0jZGVmaW5lIENGR19NUFBfQ09OVFJPTF8zCTB4MDAwMDAwMDQKLSNkZWZpbmUgQ0ZHX0dQUF9MRVZFTF9DT05UUk9MCTB4MjgwNzMwRDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8wCTB4MDAzMDMwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8xCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8yCTB4MDAwMDQwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFBfQ09OVFJPTF8zCTB4MDAwMDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFBfTEVWRUxfQ09OVFJPTAkweDI4MDczMEQwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBCQVQgbWFwcGluZ3MKQEAgLTM3MSw3NSArMzcxLDc1IEBACiAgKiAyKSBDQUNIRUlOSElCSVQgYW5kIFdSSVRFVEhST1VHSCBub3QgYWxsb3dlZCB0b2dldGhlciBpbiBzYW1lIEJBVAogICovCiAvKiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSUJBVDBMIChDRkdfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQwVSAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfREJBVDBVIENGR19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgQ09ORklHX1NZU19JQkFUMFUKIAogLyogaW5pdCByYW0gKi8KLSNkZWZpbmUgQ0ZHX0lCQVQxTCAgKENGR19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzI1NksgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQxTCAgQ0ZHX0lCQVQxTAotI2RlZmluZSBDRkdfREJBVDFVICBDRkdfSUJBVDFVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMjU2SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAgQ09ORklHX1NZU19JQkFUMUwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMVUgIENPTkZJR19TWVNfSUJBVDFVCiAKIC8qIFBDSTAsIFBDSTEgaW4gb25lIEJBVCAqLwotI2RlZmluZSBDRkdfSUJBVDJMIEJBVExfTk9fQUNDRVNTCi0jZGVmaW5lIENGR19JQkFUMlUgQ0ZHX0RCQVQyVQotI2RlZmluZSBDRkdfREJBVDJMIChDRkdfUENJMF9NRU1fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVyB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUMlUgKENGR19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMIEJBVExfTk9fQUNDRVNTCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVIENPTkZJR19TWVNfREJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJMIChDT05GSUdfU1lTX1BDSTBfTUVNX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAoQ09ORklHX1NZU19QQ0kwX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIEdUIHJlZ3MsIGJvb3Ryb20sIGFsbCB0aGUgZGV2aWNlcywgUENJIEkvTyAqLwotI2RlZmluZSBDRkdfSUJBVDNMIChDRkdfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRVX1ZTIHwgQkFUVV9WUCB8IEJBVFVfQkxfMjU2TSkKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAoQ0ZHX01JU0NfUkVHSU9OX0JBU0UgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfUFBfUlcgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVIENGR19JQkFUM1UKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9QUF9SVykKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM1UgKENPTkZJR19TWVNfTUlTQ19SRUdJT05fQkFTRSB8IEJBVFVfVlMgfCBCQVRVX1ZQIHwgQkFUVV9CTF8yNTZNKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAoQ09ORklHX1NZU19NSVNDX1JFR0lPTl9CQVNFIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX1BQX1JXIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgQ09ORklHX1NZU19JQkFUM1UKIAotI2RlZmluZSBDRkdfSUJBVDRMIChDRkdfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUNFUgKENGR19TRFJBTTFfQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDRMIChDRkdfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDRVIENGR19JQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwgKENPTkZJR19TWVNfU0RSQU0xX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDRVIChDT05GSUdfU1lTX1NEUkFNMV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDRMIChDT05GSUdfU1lTX1NEUkFNMV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUgQ09ORklHX1NZU19JQkFUNFUKIAogLyogc2V0IHJlc3Qgb3V0IG9mIHJhbmdlIGZvciBMaW51eCAhISEhISEhISEhISAqLwogCiAvKiBJQkFUNSBhbmQgREJBVDUgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TCAoMHgyMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQ1VSAoMHgyMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDVMICgweDIwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ1VSBDRkdfSUJBVDVVCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDVMICgweDIwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VSAoMHgyMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TCAoMHgyMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDVVIENPTkZJR19TWVNfSUJBVDVVCiAKIC8qIElCQVQ2IGFuZCBEQkFUNiAqLwotI2RlZmluZSBDRkdfSUJBVDZMICgweDIwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDZVICgweDIwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUNkwgKDB4MjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDZVIENGR19JQkFUNlUKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwgKDB4MjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVICgweDIwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZMICgweDIwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNlUgQ09ORklHX1NZU19JQkFUNlUKIAogLyogSUJBVDcgYW5kIERCQVQ3ICovCi0jZGVmaW5lIENGR19JQkFUN0wgKDB4MjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUN1UgKDB4MjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQ3TCAoMHgyMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUN1UgQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3TCAoMHgyMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN1UgKDB4MjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUN0wgKDB4MjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VSBDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoODw8MjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KLSNkZWZpbmUgQ0ZHX1ZYV09SS1NfTUFDX1BUUgkweDQyMDEwMDAwIC8qIHVzZSBzb21lIG1lbW9yeSBpbiBTUkFNIHRoYXQncyBub3QgdXNlZCEhISAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDg8PDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSCTB4NDIwMTAwMDAgLyogdXNlIHNvbWUgbWVtb3J5IGluIFNSQU0gdGhhdCdzIG5vdCB1c2VkISEhICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIGFsbCBNUEM3NHh4IENQVXMJCSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBhbGwgTVBDNzR4eCBDUFVzCQkgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMMkNSIHNldHVwIC0tIG1ha2Ugc3VyZSB0aGlzIGlzIHJpZ2h0IGZvciB5b3VyIGJvYXJkIQogICogbG9vayBpbiBpbmNsdWRlL21wYzc0eHguaCBmb3IgdGhlIGRlZmluZXMgdXNlZCBoZXJlCiAgKi8KLSNkZWZpbmUgQ0ZHX0wyCisjZGVmaW5lIENPTkZJR19TWVNfTDIKIAogI2lmIGRlZmluZWQgKENPTkZJR183NTBDWCkgfHwgZGVmaW5lZCAoQ09ORklHXzc1MEZYKQogI2RlZmluZSBMMl9JTklUIDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9wM3A0NDAuaCBiL2luY2x1ZGUvY29uZmlncy9wM3A0NDAuaAppbmRleCBkYTNjZTU0Li4xZGM4NjU2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcDNwNDQwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3AzcDQ0MC5oCkBAIC00NSw0NSArNDUsNDUgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAkgICAgLyogX211c3RfIGJlIDAJCSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweGZmODAwMDAwCSAgICAvKiBzdGFydCBvZiBGTEFTSAkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICAweGZmZmMwMDAwCSAgICAvKiBzdGFydCBvZiBtb25pdG9yCQkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJICAgIDB4ODAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UgMHhlMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KLSNkZWZpbmUgQ0ZHX0lTUkFNX0JBU0UJICAgIDB4YzAwMDAwMDAJICAgIC8qIGludGVybmFsIFNSQU0JCSovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkgICAgMHhkMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCSAgICAweDAwMDAwMDAwCSAgICAvKiBfbXVzdF8gYmUgMAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweGZmODAwMDAwCSAgICAvKiBzdGFydCBvZiBGTEFTSAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgMHhmZmZjMDAwMAkgICAgLyogc3RhcnQgb2YgbW9uaXRvcgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkgICAgMHg4MDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgMHhlMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCSAgICAweGMwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBTUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCSAgICAweGQwMDAwMDAwCSAgICAvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLwogCi0jZGVmaW5lIENGR19VU0JfQkFTRQkgICAgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9CQVNFCSAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMDAwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBpbnRlcm5hbCBTUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lTUkFNX0JBU0UgIC8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJICAgIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkgICAgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkgICAgLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYyovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYyovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCTEJLyogaW5pdCBvbmJvYXJkIEREUiBTRFJBTSBiYW5rIDAqLwogI2RlZmluZSBDT05GSUdfU0RSQU1fRUNDCQkvKiBlbmFibGUgRUNDIHN1cHBvcnQJCSovCi0jZGVmaW5lIENGR19TRFJBTV9UQUJMRQl7IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9UQUJMRQl7IFwKIAkJeygyNTYgPDwgMjApLCAxMywgMHgwMDBDNDAwMX0sIC8qIDI1Nk1CIG1vZGUgMywgMTN4MTAoNCkqLyBcCiAJCXsoNjQgPDwgMjApLCAgMTIsIDB4MDAwODIwMDF9fSAvKiA2NE1CIG1vZGUgMiwgMTJ4OSg0KQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTZXJpYWwgUG9ydAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQkJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkJCQkJCVwKIAl7IDMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsCQlcCiAJCQk1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIApAQCAtOTIsOSArOTIsOSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgUlRDCkBAIC0xMDQsMTQgKzEwNCwxNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIEVFUFJPTSAoUENGODU5NEMpIGZvciBlbnZpcm9ubWVudAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU0CS8qIEVFUFJPTSBQQ0Y4NTk0QwkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDU0CS8qIEVFUFJPTSBQQ0Y4NTk0QwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KIC8qIG1hc2sgb2YgYWRkcmVzcyBiaXRzIHRoYXQgb3ZlcmZsb3cgaW50byB0aGUgIkVFUFJPTSBjaGlwIGFkZHJlc3MiCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cJMHgwNwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCS8qIFRoZSBQaGlsaXBzIFBDRjg1OTRDIGhhcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCS8qIFRoZSBQaGlsaXBzIFBDRjg1OTRDIGhhcwkqLwogCQkJCQkvKiA4IGJ5dGUgcGFnZSB3cml0ZSBtb2RlIHVzaW5nICovCiAJCQkJCS8qIGxhc3QgMyBiaXRzIG9mIHRoZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk0MCAgIC8qIGFuZCB0YWtlcyB1cCB0byA0MCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNDAgICAvKiBhbmQgdGFrZXMgdXAgdG8gNDAgbXNlYyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gKGVudmlyb25tZW50IHZhcmlibGVzLi4uKQpAQCAtMTU2LDE0ICsxNTYsMTQgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19NSUkJCTEJLyogTUlJIFBIWSBtYW5hZ2VtZW50CQkqLwogI2RlZmluZSBDT05GSUdfUEhZX0FERFIJCTB4MWMJLyogUEhZIGFkZHJlc3MJCQkqLwogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEKICNkZWZpbmUgQ09ORklHX1BIWTFfQUREUgkweDFkCS8qIEVNQUMxIFBIWSBhZGRyZXNzCQkqLwogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMzIJLyogTnVtYmVyIG9mIGV0aGVybmV0IHJ4IGJ1ZmZlcnMgJiBkZXNjcmlwdG9ycyAqLwogCiAjZGVmaW5lIENPTkZJR19ORVRDT05TT0xFCQkvKiBpbmNsdWRlIE5ldENvbnNvbGUgc3VwcG9ydAkqLwogCkBAIC0yMDQsMjQgKzIwNCwyNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCTEgICAgICAgLyogYWRkIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQgICAqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTIzNSw2OSArMjM1LDY5IEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkgICAgICAgICAgICAvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkgICAgICAgIC8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5ICAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cgICAgICAgICAgICAvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgMHg4MDAwMDAwMCAgLyogUENJYWRkciBtYXBwZWQgdG8gQ0ZHX1BDSV9NRU1CQVNFICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFICAgIDB4ODAwMDAwMDAgIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJICAgICAgICAgICAgLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHRVRfSU5JVAkgICAgICAgICAgICAvKiBsZXQgYm9hcmQgaW5pdCBwY2kgdGFyZ2V0ICAgICovCiAKICNkZWZpbmUgQ09ORklHX0RJU0FCTEVfUElTRV9URVNUCS8qIGRpc2FibGUgUElTRSB0ZXN0IChQQ0lYIG9ubHkpKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUgIC8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlICAvKiBXaGF0ZXZlciAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMAkJMHhGRjgwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDIJCTB4RkU4MDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMwkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfVVNCCQkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMAkJMHhGRjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMgkJMHhGRTgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMwkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQgkJCTB4RjAwMDAwMDAKIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwMzA1MDIwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkoQ0ZHX0ZMQVNIMCB8IDB4N0EwMDApIC8qIEJBUz0weEZGOCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDAzMDUwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19GTEFTSDAgfCAweDdBMDAwKSAvKiBCQVM9MHhGRjgsQlM9OE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAxIChGbGFzaCBCYW5rIDEsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMUFQCQkweDAzMDUwMjAwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCShDRkdfRkxBU0gxIHwgMHg3QTAwMCkgLyogQkFTPTB4RkY4LEJTPThNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDMwNTAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IJCShDT05GSUdfU1lTX0ZMQVNIMSB8IDB4N0EwMDApIC8qIEJBUz0weEZGOCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDIgKEZsYXNoIEJhbmsgMiwgTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDMwNTAyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19GTEFTSDIgfCAweDdBMDAwKSAvKiBCQVM9MHhGRjgsQlM9OE1CLEJVPVIvVyxCVz0xNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwMzA1MDIwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfRkxBU0gyIHwgMHg3QTAwMCkgLyogQkFTPTB4RkY4LEJTPThNQixCVT1SL1csQlc9MTZiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgMyAoRmxhc2ggQmFuayAzLCBOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMzA1MDIwMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkoQ0ZHX0ZMQVNIMyB8IDB4N0EwMDApIC8qIEJBUz0weEZGOCxCUz04TUIsQlU9Ui9XLEJXPTE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAzMDUwMjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkoQ09ORklHX1NZU19GTEFTSDMgfCAweDdBMDAwKSAvKiBCQVM9MHhGRjgsQlM9OE1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayA3IChVU0IgY29udHJvbGxlcikgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjdBUAkJMHgwMjAxNTAwMAotI2RlZmluZSBDRkdfRUJDX1BCN0NSCQkoQ0ZHX1VTQiB8IDB4RkUwMDApIC8qIEJBUz0weEYwMCxCUz0xMjhNQixCVT1SL1csQlc9MTZiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjdBUAkJMHgwMjAxNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjdDUgkJKENPTkZJR19TWVNfVVNCIHwgMHhGRTAwMCkgLyogQkFTPTB4RjAwLEJTPTEyOE1CLEJVPVIvVyxCVz0xNmJpdCovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUIHsgQ0ZHX0ZMQVNIMywgQ0ZHX0ZMQVNIMiwgQ0ZHX0ZMQVNIMSwgQ0ZHX0ZMQVNIMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7IENPTkZJR19TWVNfRkxBU0gzLCBDT05GSUdfU1lTX0ZMQVNIMiwgQ09ORklHX1NZU19GTEFTSDEsIENPTkZJR19TWVNfRkxBU0gwIH0KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTQJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTQJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCTEJLyogdXNlIGhhcmR3YXJlIGZsYXNoIHByb3RlY3Rpb24JKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2gJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICAgICAxCS8qIHVzZSBGTEFTSCBmb3IgZW52aXJvbm1lbnQgdmFycwkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCQkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0zMDksNyArMzA5LDcgQEAKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3BiMXgwMC5oIGIvaW5jbHVkZS9jb25maWdzL3BiMXgwMC5oCmluZGV4IDQ4MGE1OWYuLjdjN2JlYmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9wYjF4MDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcGIxeDAwLmgKQEAgLTUzLDcgKzUzLDcgQEAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIFByaW50IGltYWdlIGluZm8gd2l0aCB0aW1lc3RhbXAgKi8KICN1bmRlZglDT05GSUdfQk9PVEFSR1MKQEAgLTcxLDUwICs3MSw1MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICAqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiUGIxeDAwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCi0jZGVmaW5lCUNGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSJQYjF4MDAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KIAotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CiAKLSNkZWZpbmUgQ0ZHX01JUFNfVElNRVJfRlJFUQkzOTYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NSVBTX1RJTUVSX0ZSRVEJMzk2MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDgwMDAwMDAwICAgICAvKiBDYWNoZWQgYWRkciAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAgICAgIC8qIENhY2hlZCBhZGRyICovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHg4MTAwMDAwMCAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODEwMDAwMDAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg4MDEwMDAwMAotI3VuZGVmIENGR19NRU1URVNUX1NUQVJUCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgIDB4ODAyMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgzODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMTAwMDAwCisjdW5kZWYgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgICAgICAweDgwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODM4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDEyOCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4YmVjMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX0ZMQVNIXzIJCTB4YmZjMDAwMDAgLyogRmxhc2ggQmFuayAjMiAqLwogCiAvKiBUaGUgZm9sbG93aW5nICNkZWZpbmVzIGFyZSBuZWVkZWQgdG8gZ2V0IGZsYXNoIGVudmlyb25tZW50IHJpZ2h0ICovCi0jZGVmaW5lCUNGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCTB4NDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCTB4NDAwMDAwMAogCiAvKiBXZSBib290IGZyb20gdGhpcyBmbGFzaCwgc2VsZWN0ZWQgd2l0aCBkaXAgc3dpdGNoICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzIKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyICogQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyICogQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX05PV0hFUkUJMQogCkBAIC0xNDAsOCArMTQwLDggQEAKIAogLyotLS1BVEEgUENNQ0lBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjaWYgMAotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFIDB4NDAwMDAwMCAvKiBPZmZzZXQgdG8gc2xvdCAxIEZJWE1FISEhICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIgMHgyMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSAweDQwMDAwMDAgLyogT2Zmc2V0IHRvIHNsb3QgMSBGSVhNRSEhISAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUiAweDIwMDAwMDAwCiAjZGVmaW5lIENPTkZJR19QQ01DSUFfU0xPVF9BCiAKICNkZWZpbmUgQ09ORklHX0FUQVBJIDEKQEAgLTE1MSwzMiArMTUxLDMyIEBACiAjZGVmaW5lIENPTkZJR19JREVfUENNQ0lBIDEKIAogLyogV2Ugb25seSBzdXBwb3J0IG9uZSBzbG90IGZvciBub3cgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSICAgICAgIENGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICAgICAgIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUICAgICA4CisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUICAgICA4CiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzICAqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQgICAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQgICAgICAwCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycyAgICAgICAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQgICAgICAweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCAgICAgIDB4MDEwMAogCiAjZW5kaWYKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJMTYzODQKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3BjczQ0MGVwLmggYi9pbmNsdWRlL2NvbmZpZ3MvcGNzNDQwZXAuaAppbmRleCA2NjA3NWQyLi42ZTJkOTA2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcGNzNDQwZXAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcGNzNDQwZXAuaApAQCAtNDksNDQgKzQ5LDQ0IEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0ICogMTAyNCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoLUNGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJICAgICAgICAweDAwMDAwMDAwCSAgICAvKiBfbXVzdF8gYmUgMAkqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgICAgIDB4ZmZmMDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkgICAgICAgIDB4YTAwMDAwMDAJICAgIC8qIG1hcHBlZCBwY2kgbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMSAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMiAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMyAgICAgICAgQ0ZHX1BDSV9NRU1CQVNFMiArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCAqIDEwMjQpCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkgICAgICAgIDB4MDAwMDAwMDAJICAgIC8qIF9tdXN0XyBiZSAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkgICAgICAgIDB4ZmZmMDAwMDAJICAgIC8qIHN0YXJ0IG9mIEZMQVNICSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UJICAgICAgICAweGEwMDAwMDAwCSAgICAvKiBtYXBwZWQgcGNpIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UxICAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIgICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMyAgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIgKyAweDEwMDAwMDAwCiAKIC8qRG9uJ3QgY2hhbmdlIGVpdGhlciBvZiB0aGVzZSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UgICAgIDB4ZWY2MDAwMDAJICAgIC8qIGludGVybmFsIHBlcmlwaGVyYWxzKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCSAgICAgICAgMHhlMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSAgICAgMHhlZjYwMDAwMAkgICAgLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9CQVNFCSAgICAgICAgMHhlMDAwMDAwMAkgICAgLyogaW50ZXJuYWwgUENJIHJlZ3MqLwogLypEb24ndCBjaGFuZ2UgZWl0aGVyIG9mIHRoZXNlKi8KIAotI2RlZmluZSBDRkdfVVNCX0RFVklDRSAgICAgICAgICAweDUwMDAwMDAwCi0jZGVmaW5lIENGR19CT09UX0JBU0VfQUREUiAgICAgIDB4ZjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfREVWSUNFICAgICAgICAgIDB4NTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiAgICAgIDB4ZjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gU0RSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRENBQ0hFCTEJCS8qIGQtY2FjaGUgYXMgaW5pdCByYW0JKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg3MDAwMDAwMAkJLyogRENhY2hlICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJKDQgPDwgMTApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCTEJCS8qIGQtY2FjaGUgYXMgaW5pdCByYW0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJCS8qIERDYWNoZSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIG5vIGV4dGVybmFsIGNsayB1c2VkCQkqLworI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkJLyogbm8gZXh0ZXJuYWwgY2xrIHVzZWQJCSovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkgICAgIDEKIC8qZGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgY29uc29sZSBvbiBVQVJUMSovCiAjdW5kZWYgQ09ORklHX1VBUlQxX0NPTlNPTEUKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogICAgIHszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05NywyMSArOTcsMjEgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgkvKiBmbGFzaCB3b3JkIHNpemUgKHdpZHRoKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQkvKiAxc3QgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJBQUEJLyogMm5kIGFkZHJlc3MgZm9yIGZsYXNoIGNvbmZpZyBjeWNsZXMJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCQkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCkBAIC0xMzgsMTMgKzEzOCwxMyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCSAgICAvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJICAgIC8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCSgweGE0Pj4xKQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTiAxCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCSgweGE0Pj4xKQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG87IglcCiAJImVjaG8gVHlwZSBcXFwicnVuIGZsYXNoX25mc1xcXCIgdG8gbW91bnQgcm9vdCBmaWxlc3lzdGVtIG92ZXIgTkZTOyIgXApAQCAtMTg5LDggKzE4OSw4IEBACiAKIC8qIGNoZWNrIFUtQm9vdCBpbWFnZSB3aXRoIFNIQTEgc3VtICovCiAjZGVmaW5lIENPTkZJR19TSEExX0NIRUNLX1VCX0lNRwkxCi0jZGVmaW5lIENPTkZJR19TSEExX1NUQVJUCQlDRkdfTU9OSVRPUl9CQVNFCi0jZGVmaW5lIENPTkZJR19TSEExX0xFTgkJCUNGR19NT05JVE9SX0xFTgorI2RlZmluZSBDT05GSUdfU0hBMV9TVEFSVAkJQ09ORklHX1NZU19NT05JVE9SX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NIQTFfTEVOCQkJQ09ORklHX1NZU19NT05JVE9SX0xFTgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3Igc3RhdHVzIExFRApAQCAtMTk5LDE2ICsxOTksMTYgQEAKICNkZWZpbmUgQ09ORklHX0JPQVJEX1NQRUNJRklDX0xFRAkxCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDgJCQkvKiBESUFHMSBpcyBvbiBHUElPX1BQQ18xICovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSgoQ0ZHX0haIC8gMikgLyA1KQkvKiBibGluayBhdCA1IEh6ICovCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSgoQ09ORklHX1NZU19IWiAvIDIpIC8gNSkJLyogYmxpbmsgYXQgNSBIeiAqLwogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfT0ZGCiAjZGVmaW5lIFNUQVRVU19MRURfQklUMQkJMHgwNAkJCS8qIERJQUcyIGlzIG9uIEdQSU9fUFBDXzIgKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCSgoQ0ZHX0haIC8gMikgLyA1KQkvKiBibGluayBhdCA1IEh6ICovCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoKENPTkZJR19TWVNfSFogLyAyKSAvIDUpCS8qIGJsaW5rIGF0IDUgSHogKi8KICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJU1RBVFVTX0xFRF9PTgogI2RlZmluZSBTVEFUVVNfTEVEX0JJVDIJCTB4MDIJCQkvKiBESUFHMyBpcyBvbiBHUElPX1BQQ18zICovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMgkoKENGR19IWiAvIDIpIC8gNSkJLyogYmxpbmsgYXQgNSBIeiAqLworI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDIJKChDT05GSUdfU1lTX0haIC8gMikgLyA1KQkvKiBibGluayBhdCA1IEh6ICovCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUyCVNUQVRVU19MRURfT0ZGCiAjZGVmaW5lIFNUQVRVU19MRURfQklUMwkJMHgwMQkJCS8qIERJQUc0IGlzIG9uIEdQSU9fUFBDXzQgKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QzCSgoQ0ZHX0haIC8gMikgLyA1KQkvKiBibGluayBhdCA1IEh6ICovCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMwkoKENPTkZJR19TWVNfSFogLyAyKSAvIDUpCS8qIGJsaW5rIGF0IDUgSHogKi8KICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTMJU1RBVFVTX0xFRF9PRkYKIAogI2RlZmluZSBDT05GSUdfU0hPV19CT09UX1BST0dSRVNTCTEKQEAgLTIxNiw3ICsyMTYsNyBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkgICAgICAgIDEJLyogcmVxdWlyZWQgZm9yIG5ldGNvbnNvbGUgICAgICAqLwpAQCAtMjI0LDcgKzIyNCw3IEBACiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMQkvKiBQSFkgYWRkcmVzcywgU2VlIHNjaGVtYXRpY3MJKi8KICNkZWZpbmUgQ09ORklHX1BIWTFfQUREUiAgICAgICAgMgogCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTMyCS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KIAogI2RlZmluZSBDT05GSUdfTkVUQ09OU09MRQkJLyogaW5jbHVkZSBOZXRDb25zb2xlIHN1cHBvcnQJKi8KIApAQCAtMjg3LDI1ICsyODcsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19QUk9NUFQJICAgICAgICAiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJICAgICAgICAiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgICAgICAgICAgICAgIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJICAgICAgICAxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJICAgICAgICBDRkdfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgICAgICAgICAgICAgIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJICAgICAgICAxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCSAgICAgICAgQ09ORklHX1NZU19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCSAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KICNkZWZpbmUgQ09ORklHX0xZTlhLREkgICAgICAgICAgMSAgICAgICAvKiBzdXBwb3J0IGtkaSBmaWxlcyAgICAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTMxNSwyMSArMzE1LDIxIEBACiAjZGVmaW5lIENPTkZJR19QQ0kJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CSAgICAgICAgKi8KICN1bmRlZiAgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyAobm90KSBwY2kgcGx1Zy1hbmQtcGxheSAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XICAgICAgICAgICAgLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdCQVNFICAgICAgICAweDgwMDAwMDAwIC8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UqLwogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAotI2RlZmluZSBDRkdfUENJX01BU1RFUl9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1RBUkdFVF9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01BU1RFUl9JTklUCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfSUQgICAgICAgMHhjYWZlCS8qIFdoYXRldmVyICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMzM3LDM2ICszMzcsMzYgQEAKICNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCTB4RkZGMDAwMDAJLyogRkxBU0ggYmFuayAjMAkqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0JMHhGRkY4MDAwMAkvKiBGTEFTSCBiYW5rICMxCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNICQlGTEFTSF9CQVNFMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX1NSQU0JCTB4RjEwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0EJCTB4RjIwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NGMQkJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NGMgkJCTB4RjAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSAkJRkxBU0hfQkFTRTBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfU1JBTQkJMHhGMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0EJCTB4RjIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DRjEJCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ0YyCQkJMHhGMDEwMDAwMAogCiAvKiBNZW1vcnkgQmFuayAwIChGbGFzaCBCYW5rIDAsIE5PUi1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAyMDEwMDAwCS8qIFRXVD00LE9FTj0xCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJKENGR19GTEFTSCB8IDB4MTgwMDApIC8qIEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMjAxMDAwMAkvKiBUV1Q9NCxPRU49MQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19GTEFTSCB8IDB4MTgwMDApIC8qIEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAxIChTUkFNKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDE4MTAwNDAJLyogVFdUPTMsT0VOPTEsQkVNPTEJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IJCShDRkdfU1JBTSB8IDB4NUEwMDApIC8qIEJTPTRNQixCVT1SL1csQlc9MTZiaXQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAJCTB4MDE4MTAwNDAJLyogVFdUPTMsT0VOPTEsQkVNPTEJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMUNSCQkoQ09ORklHX1NZU19TUkFNIHwgMHg1QTAwMCkgLyogQlM9NE1CLEJVPVIvVyxCVz0xNmJpdAkqLwogCiAvKiBNZW1vcnkgQmFuayAyIChGUEdBKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDEwMTA0NDAJLyogVFdUPTIsT0VOPTEsVEg9MixCRU09MQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMkNSCQkoQ0ZHX0ZQR0EgfCAweDVBMDAwKSAvKiBCUz00TUIsQlU9Ui9XLEJXPTE2Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMkFQCQkweDAxMDEwNDQwCS8qIFRXVD0yLE9FTj0xLFRIPTIsQkVNPTEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCShDT05GSUdfU1lTX0ZQR0EgfCAweDVBMDAwKSAvKiBCUz00TUIsQlU9Ui9XLEJXPTE2Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKENvbXBhY3RGbGFzaCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDgwQkQ0MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJKENGR19DRjEgfCAweDFBMDAwKSAvKiBCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDA4MEJENDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkoQ09ORklHX1NZU19DRjEgfCAweDFBMDAwKSAvKiBCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0CSovCiAKIC8qIE1lbW9yeSBCYW5rIDQgKENvbXBhY3RGbGFzaCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJCTB4MDgwQkQ0MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkJKENGR19DRjIgfCAweDFBMDAwKSAvKiBCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNEFQCQkweDA4MEJENDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCNENSCQkoQ09ORklHX1NZU19DRjIgfCAweDFBMDAwKSAvKiBCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBQQzQ0MCBHUElPIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICAgICAgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyICAgQWx0ZXJuYXRlMyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICAgICAgIEdQSU8JQWx0ZXJuYXRlMQlBbHRlcm5hdGUyICAgQWx0ZXJuYXRlMyAqLyBcCiB7CQkJCQkJCQkJCQlcCiAvKiBHUElPIENvcmUgMCAqLwkJCQkJCQkJCVwKIHtHUElPMF9CQVNFLCBHUElPX09VVCwgR1BJT19TRUwsIEdQSU9fT1VUX05PX0NIR30sICAvKiBHUElPMAlFQkNfQUREUig3KQlETUFfUkVRKDIpCSovIFwKQEAgLTQ2MiwyMyArNDYyLDIzIEBACiAjdW5kZWYgIENPTkZJR19JREVfOHh4X0RJUkVDVAkJLyogRGlyZWN0IElERSAgICBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYgIENPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KIAogI2RlZmluZSBDT05GSUdfSURFX1BSRUlOSVQJMQogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEKIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfQ0YxCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX0NGMQogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTAKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCShDRkdfQVRBX0RBVEFfT0ZGU0VUKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCShDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkoMHgwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCSgweDAwMDApCiAKICNlbmRpZgkvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcGN1X2UuaCBiL2luY2x1ZGUvY29uZmlncy9wY3VfZS5oCmluZGV4IDY2NGE4ODUuLjkyMTQ1MTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9wY3VfZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wY3VfZS5oCkBAIC02MSw3ICs2MSw3IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC03NSw4ICs3NSw4IEBACiAjZGVmaW5lCUNPTkZJR19TUElfWAkJCS8qIDE2IGJpdCBFRVBST00gYWRkcmVzc2luZwkqLwogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTg3LDcgKzg3LDcgQEAKICAqIGZhciBlbm91Z2ggZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGRhdGEgYXJlYSAoYXMgd2VsbCBhcyBmcm9tIHRoZQogICogc3RhY2sgcG9pbnRlcikuCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0jZGVmaW5lIENGR19TUElfSU5JVF9PRkZTRVQJCTB4QjAwCisjZGVmaW5lIENPTkZJR19TWVNfU1BJX0lOSVRfT0ZGU0VUCQkweEIwMAogCiAKIC8qCkBAIC0xMTQsNjAgKzExNCw2MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBGMDAwMDAJLyogMSAuLi4gMTVNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEYwMDAwMAkvKiAxIC4uLiAxNU1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDAwMTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLworI2RlZmluZQlDT05GSUdfU1lTX1BJT19NT0RFCQkwCS8qIElERSBpbnRlcmZhY2UgaW4gUElPIE1vZGUgMAkqLwogCiAvKiBFdGhlcm5ldCBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGRvbmUgdXNpbmcgcG9ydCBwaW5zICovCi0jZGVmaW5lIENGR19QQl9FVEhfUkVTRVQJMHgwMDAwMDAyMAkJLyogUEIgMjYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfUkVTRVQJMHgwMDAwMDAyMAkJLyogUEIgMjYJKi8KICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MgLyogWFhYICovCi0jZGVmaW5lIENGR19QQV9FVEhfTURESVMJMHg0MDAwCQkJLyogUEEgIDEJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9QT1dFUkRPV04JMHgwMDAwMDgwMAkJLyogUEIgMjAJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9DRkcxCQkweDAwMDAwNDAwCQkvKiBQQiAyMQkqLwotI2RlZmluZSBDRkdfUEJfRVRIX0NGRzIJCTB4MDAwMDAyMDAJCS8qIFBCIDIyCSovCi0jZGVmaW5lIENGR19QQl9FVEhfQ0ZHMwkJMHgwMDAwMDEwMAkJLyogUEIgMjMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQV9FVEhfTURESVMJMHg0MDAwCQkJLyogUEEgIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfUE9XRVJET1dOCTB4MDAwMDA4MDAJCS8qIFBCIDIwCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX0NGRzEJCTB4MDAwMDA0MDAJCS8qIFBCIDIxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX0NGRzIJCTB4MDAwMDAyMDAJCS8qIFBCIDIyCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJfRVRIX0NGRzMJCTB4MDAwMDAxMDAJCS8qIFBCIDIzCSovCiAjZWxzZSAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9NRERJUwkweDAwMDAwMDEwCQkvKiBQQiAyNwkqLwotI2RlZmluZSBDRkdfUEJfRVRIX1BPV0VSRE9XTgkweDAwMDAwMTAwCQkvKiBQQiAyMwkqLwotI2RlZmluZSBDRkdfUEJfRVRIX0NGRzEJCTB4MDAwMDAyMDAJCS8qIFBCIDIyCSovCi0jZGVmaW5lIENGR19QQl9FVEhfQ0ZHMgkJMHgwMDAwMDQwMAkJLyogUEIgMjEJKi8KLSNkZWZpbmUgQ0ZHX1BCX0VUSF9DRkczCQkweDAwMDAwODAwCQkvKiBQQiAyMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9NRERJUwkweDAwMDAwMDEwCQkvKiBQQiAyNwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX0VUSF9QT1dFUkRPV04JMHgwMDAwMDEwMAkJLyogUEIgMjMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMQkJMHgwMDAwMDIwMAkJLyogUEIgMjIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMgkJMHgwMDAwMDQwMAkJLyogUEIgMjEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQl9FVEhfQ0ZHMwkJMHgwMDAwMDgwMAkJLyogUEIgMjAJKi8KICNlbmRpZiAvKiBYWFggKi8KIAogLyogRXRoZXJuZXQgc2V0dGluZ3M6CiAgKiBNRElPIGVuYWJsZWQsIGF1dG9uZWdvdGlhdGlvbiwgMTAvMTAwTWJwcywgaGFsZi9mdWxsIGR1cGxleAogICovCi0jZGVmaW5lIENGR19FVEhfTURESVNfVkFMVUUJMAotI2RlZmluZSBDRkdfRVRIX0NGRzFfVkFMVUUJMQotI2RlZmluZSBDRkdfRVRIX0NGRzJfVkFMVUUJMQotI2RlZmluZSBDRkdfRVRIX0NGRzNfVkFMVUUJMQorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9NRERJU19WQUxVRQkwCisjZGVmaW5lIENPTkZJR19TWVNfRVRIX0NGRzFfVkFMVUUJMQorI2RlZmluZSBDT05GSUdfU1lTX0VUSF9DRkcyX1ZBTFVFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19FVEhfQ0ZHM19WQUxVRQkxCiAKIC8qIFBVTUEgY29uZmlndXJhdGlvbiAqLwogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUyAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX1BCX1BVTUFfUFJPRwkweDAwMDAwMDEwCQkvKiBQQiAyNwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCX1BVTUFfUFJPRwkweDAwMDAwMDEwCQkvKiBQQiAyNwkqLwogI2Vsc2UgLyogWFhYICovCi0jZGVmaW5lIENGR19QQV9QVU1BX1BST0cJMHg0MDAwCQkJLyogUEEgIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQV9QVU1BX1BST0cJMHg0MDAwCQkJLyogUEEgIDEJKi8KICNlbmRpZiAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX1BDX1BVTUFfRE9ORQkweDAwMDgJCQkvKiBQQyAxMgkqLwotI2RlZmluZSBDRkdfUENfUFVNQV9JTklUCTB4MDAwNAkJCS8qIFBDIDEzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENfUFVNQV9ET05FCTB4MDAwOAkJCS8qIFBDIDEyCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENfUFVNQV9JTklUCTB4MDAwNAkJCS8qIFBDIDEzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNzcsNTMgKzE3Nyw1MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRTAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEFkZHJlc3MgYWNjZXNzZWQgdG8gcmVzZXQgdGhlIGJvYXJkIC0gbXVzdCBub3QgYmUgbWFwcGVkL2Fzc2lnbmVkCiAgKi8KLSNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MJMHhGRUZGRkZGRgorI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhGRUZGRkZGRgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKIC8qIHRoaXMgaXMgYW4gdWdseSBoYWNrIG5lZWRlZCBiZWNhdXNlIG9mIHRoZSBzaWxseSBub24tY29uc3RhbnQgYWRkcmVzcyBtYXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCSgwLWZsYXNoX2luZm9bMF0uc2l6ZS1mbGFzaF9pbmZvWzFdLnNpemUpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKDAtZmxhc2hfaW5mb1swXS5zaXplLWZsYXNoX2luZm9bMV0uc2l6ZSkKIAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE2MAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNjAJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTgwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxODAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNpZiAwCiAvKiBTdGFydCBwb3J0IHdpdGggZW52aXJvbm1lbnQgaW4gZmxhc2g7IHN3aXRjaCB0byBTUEkgRUVQUk9NIGxhdGVyICovCkBAIC0yMzUsOCArMjM1LDggQEAKICNlbHNlCiAvKiBGaW5hbCB2ZXJzaW9uOiBlbnZpcm9ubWVudCBpbiBFRVBST00gKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9FRVBST00JMQotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkyCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkxMDI0CiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMTAyNAogI2VuZGlmCkBAIC0yNDQsOCArMjQ0LDggQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNZUENSIC0gU3lzdGVtIFByb3RlY3Rpb24gQ29udHJvbAkJCQkxMS05CkBAIC0yNTQsMTAgKzI1NCwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY4LDIxICsyNjgsMjEgQEAKICAqIEFzeW5jaHJvbm91cyBleHRlcm5hbCBtYXN0ZXIgZW5hYmxlLgogICovCiAvKiA9PiAweDcwNjAwMjAwICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9FQVJQNyB8IFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfQUVNRSkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9FQVJQNyB8IFNJVU1DUl9EQkdDMTEgfCBTSVVNQ1JfQUVNRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogVEJTQ1IgLSBUaW1lIEJhc2UgU3RhdHVzIGFuZCBDb250cm9sCQkJCTExLTI2CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBSZWZlcmVuY2UgSW50ZXJydXB0IFN0YXR1cywgVGltZWJhc2UgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCisjZGVmaW5lIENPTkZJR19TWVNfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBMUFJDUiAtIFBMTCwgTG93LVBvd2VyLCBhbmQgUmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMzAKQEAgLTI5MSwxNSArMjkxLDE1IEBACiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdCwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgIQogICovCiAvKiAweDAwMDA0MDgwICovCi0jZGVmaW5lCUNGR19QTFBSQ1JfTUYJMAkvKiAoMCsxKSAqIDUwID0gNTAgTUh6IENsb2NrICovCi0jZGVmaW5lIENGR19QTFBSQ1IJCQkJCQkJXAotCQkoCShDRkdfUExQUkNSX01GIDw8IFBMUFJDUl9NRl9TSElGVCkgfAkJXAorI2RlZmluZQlDT05GSUdfU1lTX1BMUFJDUl9NRgkwCS8qICgwKzEpICogNTAgPSA1MCBNSHogQ2xvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJCQkJCQkJXAorCQkoCShDT05GSUdfU1lTX1BMUFJDUl9NRiA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwJCVwKIAkJCVBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCB8CVwKIAkJCS8qUExQUkNSX0NTUkN8Ki8gUExQUkNSX0xQTV9OT1JNQUwgfAkJXAogCQkJUExQUkNSX0NTUiAgICAvKnwgUExQUkNSX0xPTFJFfFBMUFJDUl9GSU9QRCovCVwKIAkJKQogCi0jZGVmaW5lCUNPTkZJR184eHhfR0NMS19GUkVRCSgoQ0ZHX1BMUFJDUl9NRisxKSo1MDAwMDAwMCkKKyNkZWZpbmUJQ09ORklHXzh4eF9HQ0xLX0ZSRVEJKChDT05GSUdfU1lTX1BMUFJDUl9NRisxKSo1MDAwMDAwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTMxMSw3ICszMTEsNyBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYxMQogLyogMHgwMTgwMDAwMCAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMAl8IC8qU0NDUl9UQlN8Ki8JCVwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwCXwgLypTQ0NSX1RCU3wqLwkJXAogCQkJIFNDQ1JfUlRESVYJfCAgIFNDQ1JfUlRTRUwJICB8CVwKIAkJCSAvKlNDQ1JfQ1JRRU58Ki8gIC8qU0NDUl9QUlFFTnwqLwlcCiAJCQkgU0NDUl9FQkRGMDAgfCAgIFNDQ1JfREZTWU5DMDAgfAlcCkBAIC0zMjgsMzQgKzMyOCwzNCBAQAogICogRG9uJ3QgZXhwZWN0IHRoZSAiZGF0ZSIgY29tbWFuZCB0byB3b3JrIHdpdGhvdXQgYSAzMmtIeiBjbG9jayBpbnB1dCEKICAqLwogLyogMHgwMEMzID0+IDB4MDAwMyAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIJCTE5LTQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUiAweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSIDB4MDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTURTIC0gUklTQyBNaWNyb2NvZGUgRGV2ZWxvcG1lbnQgU3VwcG9ydCBDb250cm9sIFJlZ2lzdGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNRFMgMAorI2RlZmluZSBDT05GSUdfU1lTX1JNRFMgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICogSW50ZXJydXB0IExldmVscwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19DUE1fSU5URVJSVVBUCTEzCS8qIFNJVV9MRVZFTDYJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUE1fSU5URVJSVVBUCTEzCS8qIFNJVV9MRVZFTDYJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNzQsMjcgKzM3NCwyNyBAQAogICogdXNlZCB0byByZS1tYXAgRkxBU0g6IHJlc3RyaWN0IGFjY2VzcyBlbm91Z2ggYnV0IG5vdCB0b28gbXVjaCB0bwogICogbWVkZGxlIHdpdGggRkxBU0ggYWNjZXNzZXMKICAqLwotI2RlZmluZSBDRkdfUkVNQVBfT1JfQU0JCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRU1BUF9PUl9BTQkJMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRjgwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAogLyogRkxBU0ggdGltaW5nOiBDU05UID0gMCwgQUNTID0gMDAsIFNDWSA9IDgsIEVIVFIgPSAxCQkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoT1JfU0NZXzhfQ0xLIHwgT1JfRUhUUikKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX1NDWV84X0NMSyB8IE9SX0VIVFIpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoIENGR19SRU1BUF9PUl9BTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCi0JCQkJQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAotCQkJCUNGR19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCSggQ09ORklHX1NZU19SRU1BUF9PUl9BTSB8IE9SX0FDU19ESVYxIHwgT1JfQkkgfCBcCisJCQkJQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBPUl9BQ1NfRElWMSB8IE9SX0JJIHwgXAorCQkJCUNPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQogLyogMTYgYml0LCBiYW5rIHZhbGlkICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQogCiAjaWYgUENVX0VfV0lUSF9TV0FQUEVEX0NTIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfT1I2X1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JKChGTEFTSF9CQVNFNl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JKChGTEFTSF9CQVNFNl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKICNlbHNlIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfT1IxX1JFTUFQCUNGR19PUjBfUkVNQVAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JQ0ZHX09SMF9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUkVNQVAJQ09ORklHX1NZU19PUjBfUkVNQVAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCUNPTkZJR19TWVNfT1IwX1BSRUxJTQorI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKICNlbmRpZiAvKiBYWFggKi8KIAogLyoKQEAgLTQxMywxMSArNDEzLDExIEBACiAjZGVmaW5lIFNEUkFNX01BWF9TSVpFCQkweDA0MDAwMDAwCS8qIG1heCA2NCBNQiBTRFJBTSAqLwogCiAjaWYgUENVX0VfV0lUSF9TV0FQUEVEX0NTIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoU0RSQU1fUFJFTElNX09SX0FNIHwgU0RSQU1fVElNSU5HICkKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JKChTRFJBTV9CQVNFNV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkoKFNEUkFNX0JBU0U1X1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZSAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKFNEUkFNX1BSRUxJTV9PUl9BTSB8IFNEUkFNX1RJTUlORyApCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRTJfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShTRFJBTV9QUkVMSU1fT1JfQU0gfCBTRFJBTV9USU1JTkcgKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChTRFJBTV9CQVNFMl9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogI2VuZGlmIC8qIFhYWCAqLwogCiAvKgpAQCAtNDI5LDExICs0MjksMTEgQEAKICNkZWZpbmUgQ0FOX0NUUkxSX1RJTUlORwkoT1JfQkkgfCBPUl9TQ1lfOF9DTEsgfCBPUl9TRVRBIHwgT1JfRUhUUikKIAogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUyAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JCSgoQ0FOX0NUUkxSX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkoQ0FOX0NUUkxSX09SX0FNIHwgQ0FOX0NUUkxSX1RJTUlORykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCQkoKENBTl9DVFJMUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCShDQU5fQ1RSTFJfT1JfQU0gfCBDQU5fQ1RSTFJfVElNSU5HKQogI2Vsc2UgLyogWFhYICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkoKENBTl9DVFJMUl9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJKENBTl9DVFJMUl9PUl9BTSB8IENBTl9DVFJMUl9USU1JTkcpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJKChDQU5fQ1RSTFJfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkoQ0FOX0NUUkxSX09SX0FNIHwgQ0FOX0NUUkxSX1RJTUlORykKICNlbmRpZiAvKiBYWFggKi8KIAogLyoKQEAgLTQ2MSwxMSArNDYxLDExIEBACiAjZGVmaW5lIFBVTUFfQ09ORl9PUl9SRUFECShQVU1BX0NPTkZfT1JfQU0gfCBQVU1BX0NPTkZfUkVBRF9USU1JTkcpCiAKICNpZiBQQ1VfRV9XSVRIX1NXQVBQRURfQ1MgLyogWFhYICovCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQlQVU1BX0NPTkZfQlJfUkVBRAotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJUFVNQV9DT05GX09SX1JFQUQKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQlQVU1BX0NPTkZfQlJfUkVBRAorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JCVBVTUFfQ09ORl9PUl9SRUFECiAjZWxzZSAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JCVBVTUFfQ09ORl9CUl9SRUFECi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQlQVU1BX0NPTkZfT1JfUkVBRAorI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JCVBVTUFfQ09ORl9CUl9SRUFECisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkJUFVNQV9DT05GX09SX1JFQUQKICNlbmRpZiAvKiBYWFggKi8KIAogLyoKQEAgLTQ3NywxMSArNDc3LDExIEBACiAjZGVmaW5lIFBVTUFfU01BOF9USU1JTkcJKE9SX0JJIHwgT1JfU0NZXzBfQ0xLIHwgT1JfRUhUUikKIAogI2lmIFBDVV9FX1dJVEhfU1dBUFBFRF9DUyAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCSgoUFVNQV9TTUE4X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkoUFVNQV9TTUE4X09SX0FNIHwgUFVNQV9TTUE4X1RJTUlORyB8IE9SX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJKChQVU1BX1NNQThfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkoUFVNQV9TTUE4X09SX0FNIHwgUFVNQV9TTUE4X1RJTUlORyB8IE9SX1NFVEEpCiAjZWxzZSAvKiBYWFggKi8KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCSgoUFVNQV9TTUE4X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkoUFVNQV9TTUE4X09SX0FNIHwgUFVNQV9TTUE4X1RJTUlORyB8IE9SX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTQkJKChQVU1BX1NNQThfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkoUFVNQV9TTUE4X09SX0FNIHwgUFVNQV9TTUE4X1RJTUlORyB8IE9SX1NFVEEpCiAjZW5kaWYgLyogWFhYICovCiAKIC8qCkBAIC00OTMsMTEgKzQ5MywxMSBAQAogI2RlZmluZSBQVU1BX1NNQTE2X1RJTUlORwkoT1JfQkkgfCBPUl9TQ1lfMF9DTEsgfCBPUl9FSFRSKQogCiAjaWYgUENVX0VfV0lUSF9TV0FQUEVEX0NTIC8qIFhYWCAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJKChQVU1BX1NNQTE2X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJKFBVTUFfU01BMTZfT1JfQU0gfCBQVU1BX1NNQTE2X1RJTUlORyB8IE9SX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkJKChQVU1BX1NNQTE2X0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCShQVU1BX1NNQTE2X09SX0FNIHwgUFVNQV9TTUExNl9USU1JTkcgfCBPUl9TRVRBKQogI2Vsc2UgLyogWFhYICovCi0jZGVmaW5lIENGR19CUjZfUFJFTElNCQkoKFBVTUFfU01BMTZfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCi0jZGVmaW5lIENGR19PUjZfUFJFTElNCQkoUFVNQV9TTUExNl9PUl9BTSB8IFBVTUFfU01BMTZfVElNSU5HIHwgT1JfU0VUQSkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCQkoKFBVTUFfU01BMTZfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJKFBVTUFfU01BMTZfT1JfQU0gfCBQVU1BX1NNQTE2X1RJTUlORyB8IE9SX1NFVEEpCiAjZW5kaWYgLyogWFhYICovCiAKIC8qCkBAIC01MDgsMTUgKzUwOCwxNSBAQAogI2RlZmluZSBQVU1BX0ZMQVNIX09SX0FNCTB4RkUwMDAwMDAJLyogMzIgTUIgKi8KICNkZWZpbmUgUFVNQV9GTEFTSF9USU1JTkcJKE9SX0JJIHwgT1JfU0NZXzBfQ0xLIHwgT1JfRUhUUikKIAotI2RlZmluZSBDRkdfQlI3X1BSRUxJTQkJKChQVU1BX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQotI2RlZmluZSBDRkdfT1I3X1BSRUxJTQkJKFBVTUFfRkxBU0hfT1JfQU0gfCBQVU1BX0ZMQVNIX1RJTUlORyB8IE9SX1NFVEEpCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkJKChQVU1BX0ZMQVNIX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SN19QUkVMSU0JCShQVU1BX0ZMQVNIX09SX0FNIHwgUFVNQV9GTEFTSF9USU1JTkcgfCBPUl9TRVRBKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NUFRQUgkweDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUgkweDAyMDAKIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCkBAIC01MjUsOSArNTI1LDkgQEAKICAqIDB4MzA5MDQxMTQgPSAtICIgLSB8IFBlcmlvZGljIFRpbWVyIEEgRW5hYmxlLCBNQU1SX1RMRkJfNFgKICAqLwogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTB4MzAJLyogPSA0OCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTB4MzAJLyogPSA0OCAqLwogCi0jZGVmaW5lIENGR19NQU1SCSggKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUgkoIChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSB8IFwKIAkJCSAgTUFNUl9BTUFfVFlQRV8xCXwgXAogCQkJICBNQU1SX0cwQ0xBX0ExMAl8IFwKIAkJCSAgTUFNUl9STEZBXzFYCQl8IFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9wZG5iMy5oIGIvaW5jbHVkZS9jb25maWdzL3BkbmIzLmgKaW5kZXggODU2OTE3ZS4uOGI3ODkwZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3BkbmIzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3BkbmIzLmgKQEAgLTQ1LDcgKzQ1LDcgQEAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCiAjZGVmaW5lIENPTkZJR19QSFkxX0FERFIJMTgJLyogTlBFMSBQSFkgYWRkcmVzcwkJKi8KICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KIAogLyoKICAqIE1pc2MgY29uZmlndXJhdGlvbiBvcHRpb25zCkBAIC01Myw3ICs1Myw3IEBACiAjZGVmaW5lIENPTkZJR19VU0VfSVJRICAgICAgICAgIDEJLyogd2UgbmVlZCBJUlEgc3R1ZmYgZm9yIHRpbWVyCSovCiAKICNkZWZpbmUgQ09ORklHX0JPT1RDT1VOVF9MSU1JVAkJLyogc3VwcG9ydCBmb3IgYm9vdGNvdW50IGxpbWl0CSovCi0jZGVmaW5lIENGR19CT09UQ09VTlRfQUREUgkweDYwMDAzMDAwIC8qIGluc2lkZSBxbXJnIHNyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENPVU5UX0FERFIJMHg2MDAwMzAwMCAvKiBpbnNpZGUgcW1yZyBzcmFtCQkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX1RBRwkxCS8qIGVuYWJsZSBwYXNzaW5nIG9mIEFUQUdzCSovCiAjZGVmaW5lIENPTkZJR19TRVRVUF9NRU1PUllfVEFHUyAxCkBAIC02MiwxNCArNjIsMTQgQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEgPDwgMjApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMSA8PCAyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyogYWxsb3cgdG8gb3ZlcndyaXRlIHNlcmlhbCBhbmQgZXRoYWRkciAqLwogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAgICAgICAgIDExNTIwMAotI2RlZmluZSBDRkdfSVhQNDI1X0NPTlNPTEUJSVhQNDI1X1VBUlQxICAgLyogd2UgdXNlIFVBUlQxIGZvciBjb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfSVhQNDI1X0NPTlNPTEUJSVhQNDI1X1VBUlQxICAgLyogd2UgdXNlIFVBUlQxIGZvciBjb25zb2xlICovCiAKIAogLyoKQEAgLTEwNSwyMSArMTA1LDIxIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQgICAgICAgICAgICAgICI9PiAiICAgLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgICAgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFICAgICAgICAgICAgQ0ZHX0NCU0laRSAgICAgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUICAgICAgICAgICAgICAiPT4gIiAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUgICAgICAgICAgICAgIDI1NiAgICAgICAgICAgICAvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAgICAgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgIDB4MDA0MDAwMDAgICAgICAvKiBtZW10ZXN0IHdvcmtzIG9uICAgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweDAwODAwMDAwICAgICAgLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUiAgICAgICAgICAgMHgwMDAxMDAwMCAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCAgICAgICAweDAwNDAwMDAwICAgICAgLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORCAgICAgICAgIDB4MDA4MDAwMDAgICAgICAvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAgICAgICAgICAgMHgwMDAxMDAwMCAgICAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFogICAgICAgICAgLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWiAgICAgICAgICAvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICAgICAgeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogU3RhY2sgc2l6ZXMKQEAgLTE4OCw2NCArMTg4LDY0IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fMSAgICAgICAgICAgIDB4MDAwMDAwMDAgLyogU0RSQU0gQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzFfU0laRSAgICAgICAweDAyMDAwMDAwIC8qIDMyIE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgICAgMHg1MDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICAweDUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQogI2lmIGRlZmluZWQoQ09ORklHX1NDUFUpCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDUwNCA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDUwNCA8PCAxMCkJLyogUmVzZXJ2ZSA1MTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgogCiAvKgogICogRXhwYW5zaW9uIGJ1cyBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfU0NQVSkKLSNkZWZpbmUgQ0ZHX0VYUF9DUzAJCTB4OTRkMjNDNDIJLyogOGJpdCwgbWF4IHNpemUJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhQX0NTMAkJMHg5NGQyM0M0MgkvKiA4Yml0LCBtYXggc2l6ZQkJKi8KICNlbHNlCi0jZGVmaW5lIENGR19FWFBfQ1MwCQkweDk0OTEzQzQzCS8qIDhiaXQsIG1heCBzaXplCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VYUF9DUzAJCTB4OTQ5MTNDNDMJLyogOGJpdCwgbWF4IHNpemUJCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0VYUF9DUzEJCTB4ODUwMDAwNDMJLyogOGJpdCwgNTEyYnl0ZXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhQX0NTMQkJMHg4NTAwMDA0MwkvKiA4Yml0LCA1MTJieXRlcwkJKi8KIAogLyoKICAqIFNEUkFNIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUl9DT05GSUcJCTB4MTgKLSNkZWZpbmUgQ0ZHX1NEUl9NT0RFX0NPTkZJRwkweDEKLSNkZWZpbmUgQ0ZHX1NEUkFNX1JFRlJFU0hfQ05UCTB4ODFhCisjZGVmaW5lIENPTkZJR19TWVNfU0RSX0NPTkZJRwkJMHgxOAorI2RlZmluZSBDT05GSUdfU1lTX1NEUl9NT0RFX0NPTkZJRwkweDEKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SRUZSRVNIX0NOVAkweDgxYQogCiAvKgogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAjaWYgZGVmaW5lZChDT05GSUdfU0NQVSkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCS8qIG5vIGJ5dGUgd3JpdGVzIG9uIElYUDR4eAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQJLyogbm8gYnl0ZSB3cml0ZXMgb24gSVhQNHh4CSovCiAjZW5kaWYKIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJCS8qIEZMQVNIIGJhbmsgIzAJKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkJLyogRkxBU0ggYmFuayAjMAkqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMTAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCS8qIGZsYXNoIHdvcmQgc2l6ZSAod2lkdGgpCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyQUFBCS8qIDJuZCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIJLyogZmxhc2ggd29yZCBzaXplICh3aWR0aCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMAkJMHg1NTU1CS8qIDFzdCBhZGRyZXNzIGZvciBmbGFzaCBjb25maWcgY3ljbGVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjEJCTB4MkFBQQkvKiAybmQgYWRkcmVzcyBmb3IgZmxhc2ggY29uZmlnIGN5Y2xlcwkqLwogLyoKICAqIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBhcmUgYWRkZWQgZm9yIGJ1Z2d5IElPUDQ4MCBieXRlIGludGVyZmFjZS4KICAqIEFsbCBvdGhlciBib2FyZHMgc2hvdWxkIHVzZSB0aGUgc3RhbmRhcmQgdmFsdWVzIChDUENJNDA1IGV0Yy4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1JFQUQwCQkweDAwMDAJLyogMCBpcyBzdGFuZGFyZAkJCSovCi0jZGVmaW5lIENGR19GTEFTSF9SRUFEMQkJMHgwMDAxCS8qIDEgaXMgc3RhbmRhcmQJCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9SRUFEMAkJMHgwMDAwCS8qIDAgaXMgc3RhbmRhcmQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1JFQUQxCQkweDAwMDEJLyogMSBpcyBzdGFuZGFyZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUkVBRDIJCTB4MDAwMgkvKiAyIGlzIHN0YW5kYXJkCQkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTwkJLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjaWYgZGVmaW5lZChDT05GSUdfU0NQVSkKIC8qIG5vIHJlZHVuZGFudCBlbnZpcm9ubWVudCBvbiBTQ1BVICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCQkqLwpAQCAtMjYzLDkgKzI2Myw5IEBACiAvKgogICogTkFORC1GTEFTSCBzdHVmZgogICovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4NTEwMDAwMDAJLyogTkFORCBGTEFTSCBCYXNlIEFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4NTEwMDAwMDAJLyogTkFORCBGTEFTSCBCYXNlIEFkZHJlc3MJKi8KICNlbmRpZgogCiAvKgpAQCAtMjczLDIyICsyNzMsMjIgQEAKICAqLwogCiAvKiBGUEdBIHByb2dyYW0gcGluIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0dQSU9fUFJHCQkxMgkJLyogRlBHQSBwcm9ncmFtIHBpbiAoY3B1IG91dHB1dCkqLwotI2RlZmluZSBDRkdfR1BJT19DTEsJCTEwCQkvKiBGUEdBIGNsayBwaW4gKGNwdSBvdXRwdXQpICAgICovCi0jZGVmaW5lIENGR19HUElPX0RBVEEJCTE0CQkvKiBGUEdBIGRhdGEgcGluIChjcHUgb3V0cHV0KSAgICovCi0jZGVmaW5lIENGR19HUElPX0lOSVQJCTEzCQkvKiBGUEdBIGluaXQgcGluIChjcHUgaW5wdXQpICAgICovCi0jZGVmaW5lIENGR19HUElPX0RPTkUJCTExCQkvKiBGUEdBIGRvbmUgcGluIChjcHUgaW5wdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19QUkcJCTEyCQkvKiBGUEdBIHByb2dyYW0gcGluIChjcHUgb3V0cHV0KSovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19DTEsJCTEwCQkvKiBGUEdBIGNsayBwaW4gKGNwdSBvdXRwdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19EQVRBCQkxNAkJLyogRlBHQSBkYXRhIHBpbiAoY3B1IG91dHB1dCkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSU5JVAkJMTMJCS8qIEZQR0EgaW5pdCBwaW4gKGNwdSBpbnB1dCkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0RPTkUJCTExCQkvKiBGUEdBIGRvbmUgcGluIChjcHUgaW5wdXQpICAgICovCiAKIC8qIG90aGVyIEdQSU8ncyAqLwotI2RlZmluZSBDRkdfR1BJT19SRVNUT1JFX0lOVAkwCi0jZGVmaW5lIENGR19HUElPX1JFU1RBUlRfSU5UCTEKLSNkZWZpbmUgQ0ZHX0dQSU9fU1lTX1JVTk5JTkcJMgotI2RlZmluZSBDRkdfR1BJT19QQ0lfSU5UQQkzCi0jZGVmaW5lIENGR19HUElPX1BDSV9JTlRCCTQKLSNkZWZpbmUgQ0ZHX0dQSU9fSTJDX1NDTAk2Ci0jZGVmaW5lIENGR19HUElPX0kyQ19TREEJNwotI2RlZmluZSBDRkdfR1BJT19GUEdBX1JFU0VUCTkKLSNkZWZpbmUgQ0ZHX0dQSU9fQ0xLXzMzTQkxNQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUkVTVE9SRV9JTlQJMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUkVTVEFSVF9JTlQJMQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fU1lTX1JVTk5JTkcJMgorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0lOVEEJMworI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fUENJX0lOVEIJNAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fSTJDX1NDTAk2CisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19JMkNfU0RBCTcKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0ZQR0FfUkVTRVQJOQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU9fQ0xLXzMzTQkxNQogCiAvKgogICogSTJDIHN0dWZmCkBAIC0yOTgsMjMgKzI5OCwyMyBAQAogI3VuZGVmCUNPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUJQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTgzMDAwCS8qIDgzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4RkUKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTgzMDAwCS8qIDgzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweEZFCiAKIC8qCiAgKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIFBCX1NDTAkJKDEgPDwgQ0ZHX0dQSU9fSTJDX1NDTCkKLSNkZWZpbmUgUEJfU0RBCQkoMSA8PCBDRkdfR1BJT19JMkNfU0RBKQorI2RlZmluZSBQQl9TQ0wJCSgxIDw8IENPTkZJR19TWVNfR1BJT19JMkNfU0NMKQorI2RlZmluZSBQQl9TREEJCSgxIDw8IENPTkZJR19TWVNfR1BJT19JMkNfU0RBKQogCi0jZGVmaW5lIEkyQ19JTklUCUdQSU9fT1VUUFVUX0VOQUJMRShDRkdfR1BJT19JMkNfU0NMKQotI2RlZmluZSBJMkNfQUNUSVZFCUdQSU9fT1VUUFVUX0VOQUJMRShDRkdfR1BJT19JMkNfU0RBKQotI2RlZmluZSBJMkNfVFJJU1RBVEUJR1BJT19PVVRQVVRfRElTQUJMRShDRkdfR1BJT19JMkNfU0RBKQorI2RlZmluZSBJMkNfSU5JVAlHUElPX09VVFBVVF9FTkFCTEUoQ09ORklHX1NZU19HUElPX0kyQ19TQ0wpCisjZGVmaW5lIEkyQ19BQ1RJVkUJR1BJT19PVVRQVVRfRU5BQkxFKENPTkZJR19TWVNfR1BJT19JMkNfU0RBKQorI2RlZmluZSBJMkNfVFJJU1RBVEUJR1BJT19PVVRQVVRfRElTQUJMRShDT05GSUdfU1lTX0dQSU9fSTJDX1NEQSkKICNkZWZpbmUgSTJDX1JFQUQJKCgqSVhQNDI1X0dQSU9fR1BJTlIgJiBQQl9TREEpICE9IDApCi0jZGVmaW5lIEkyQ19TREEoYml0KQlpZiAoYml0KSBHUElPX09VVFBVVF9TRVQoQ0ZHX0dQSU9fSTJDX1NEQSk7CVwKLQkgICAgICAgICAgICAgICAgZWxzZSAgICAgR1BJT19PVVRQVVRfQ0xFQVIoQ0ZHX0dQSU9fSTJDX1NEQSkKLSNkZWZpbmUgSTJDX1NDTChiaXQpCWlmIChiaXQpIEdQSU9fT1VUUFVUX1NFVChDRkdfR1BJT19JMkNfU0NMKTsJXAotCQkJZWxzZSAgICAgR1BJT19PVVRQVVRfQ0xFQVIoQ0ZHX0dQSU9fSTJDX1NDTCkKKyNkZWZpbmUgSTJDX1NEQShiaXQpCWlmIChiaXQpIEdQSU9fT1VUUFVUX1NFVChDT05GSUdfU1lTX0dQSU9fSTJDX1NEQSk7CVwKKwkgICAgICAgICAgICAgICAgZWxzZSAgICAgR1BJT19PVVRQVVRfQ0xFQVIoQ09ORklHX1NZU19HUElPX0kyQ19TREEpCisjZGVmaW5lIEkyQ19TQ0woYml0KQlpZiAoYml0KSBHUElPX09VVFBVVF9TRVQoQ09ORklHX1NZU19HUElPX0kyQ19TQ0wpOwlcCisJCQllbHNlICAgICBHUElPX09VVFBVVF9DTEVBUihDT05GSUdfU1lTX0dQSU9fSTJDX1NDTCkKICNkZWZpbmUgSTJDX0RFTEFZCXVkZWxheSgzKQkvKiAxLzQgSTJDIGNsb2NrIGR1cmF0aW9uICovCiAKIC8qCkBAIC0zMjIsMjggKzMyMiwyOCBAQAogICovCiAjaWYgMCAvKiB0ZXN0LW9ubHkgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzNDAJMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAogI2Vsc2UKIC8qIE00MVQxMSBTZXJpYWwgQWNjZXNzIFRpbWVrZWVwZXIoUikgU1JBTSAqLwogI2RlZmluZSBDT05GSUdfUlRDX000MVQxMQkxCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg2OAotI2RlZmluZSBDRkdfTTQxVDExX0JBU0VfWUVBUgkxOTAwCS8qIHBsYXkgYWxvbmcgd2l0aCB0aGUgbGludXggZHJpdmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKKyNkZWZpbmUgQ09ORklHX1NZU19NNDFUMTFfQkFTRV9ZRUFSCTE5MDAJLyogcGxheSBhbG9uZyB3aXRoIHRoZSBsaW51eCBkcml2ZXIgKi8KICNlbmRpZgogCiAvKgogICogU3BhcnRhbjMgRlBHQSBjb25maWd1cmF0aW9uIHN1cHBvcnQKICAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQk3MDAqMTAyNAkvKiA3MDBrQnl0ZSBmb3IgWEMzUzUwMEUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTcwMCoxMDI0CS8qIDcwMGtCeXRlIGZvciBYQzNTNTAwRQkqLwogCi0jZGVmaW5lIENGR19GUEdBX1BSRwkoMSA8PCBDRkdfR1BJT19QUkcpCS8qIEZQR0EgcHJvZ3JhbSBwaW4gKGNwdSBvdXRwdXQpKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCSgxIDw8IENGR19HUElPX0NMSykJLyogRlBHQSBjbGsgcGluIChjcHUgb3V0cHV0KSAgICAqLwotI2RlZmluZSBDRkdfRlBHQV9EQVRBCSgxIDw8IENGR19HUElPX0RBVEEpCS8qIEZQR0EgZGF0YSBwaW4gKGNwdSBvdXRwdXQpICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfSU5JVAkoMSA8PCBDRkdfR1BJT19JTklUKQkvKiBGUEdBIGluaXQgcGluIChjcHUgaW5wdXQpICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RPTkUJKDEgPDwgQ0ZHX0dQSU9fRE9ORSkJLyogRlBHQSBkb25lIHBpbiAoY3B1IGlucHV0KSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCSgxIDw8IENPTkZJR19TWVNfR1BJT19QUkcpCS8qIEZQR0EgcHJvZ3JhbSBwaW4gKGNwdSBvdXRwdXQpKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0NMSwkoMSA8PCBDT05GSUdfU1lTX0dQSU9fQ0xLKQkvKiBGUEdBIGNsayBwaW4gKGNwdSBvdXRwdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9EQVRBCSgxIDw8IENPTkZJR19TWVNfR1BJT19EQVRBKQkvKiBGUEdBIGRhdGEgcGluIChjcHUgb3V0cHV0KSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JTklUCSgxIDw8IENPTkZJR19TWVNfR1BJT19JTklUKQkvKiBGUEdBIGluaXQgcGluIChjcHUgaW5wdXQpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ET05FCSgxIDw8IENPTkZJR19TWVNfR1BJT19ET05FKQkvKiBGUEdBIGRvbmUgcGluIChjcHUgaW5wdXQpICAgICovCiAKIC8qCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKIAogI2VuZGlmICAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcGY1MjAwLmggYi9pbmNsdWRlL2NvbmZpZ3MvcGY1MjAwLmgKaW5kZXggNjZhZDAxZi4uYjJlMmExYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3BmNTIwMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wZjUyMDAuaApAQCAtNDQsNyArNDQsNyBAQAogI2RlZmluZSBDT05GSUdfUEY1MjAwCQkxCS8qIC4uLiBvbiBQRjUyMDAgIGJvYXJkICovCiAjZGVmaW5lIENPTkZJR19NUEM1MjAwX0REUgkxCS8qIC4uLiB1c2UgRERSIFJBTQkqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCS8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAJLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QJICAgICAqLwpAQCAtNTksNyArNTksNyBAQAogI2Vsc2UKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQk5NjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAjaWZkZWYgQ09ORklHX01QQzUyMDAJCS8qIE1QQzUxMDAgUENJIGlzIG5vdCBzdXBwb3J0ZWQgeWV0LiAqLwogLyoKQEAgLTg0LDcgKzg0LDcgQEAKICNpZiAwCQkJCS8qIHRlc3Qtb25seSAhISEgKi8KICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAkJMQotI2RlZmluZSBDRkdfUlhfRVRIX0JVRkZFUgk4CS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOAkvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAJKi8KICNkZWZpbmUgQ09ORklHX05TODM4MlgJCTEKICNlbmRpZgogI2VuZGlmCkBAIC0xMjcsMTIgKzEyNywxMiBAQAogCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkYwMDAwMDApCS8qIEJvb3QgbG93IHdpdGggMTYgTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QxNgkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QxNgkxCiAjZW5kaWYKICNpZiAoVEVYVF9CQVNFID09IDB4RkY4MDAwMDApCS8qIEJvb3QgbG93IHdpdGggIDggTUIgRmxhc2ggKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QwOAkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQorIyAgIGRlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QwOAkxCiAjZW5kaWYKIAogLyoKQEAgLTE3MCwzNiArMTcwLDM2IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jdW5kZWYgQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLCQkvKiBkZWZpbmUgZm9yIDEzM01IeiBzcGVlZCAqLworI3VuZGVmIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAjZW5kaWYKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTg2MDAwCS8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJODYwMDAJLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCi0jZGVmaW5lIENGR19JMkNfTVVMVElfRUVQUk9NUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NVUxUSV9FRVBST01TCQkxCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDAyMDAwMDAwCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwMjAwMDAwMAorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCSovCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwpAQCAtMjIwLDI2ICsyMjAsMjYgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUJBUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCiAvKiBVc2UgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjU1LDYyICsyNTUsNjIgQEAKIC8qCiAgKiBHUElPIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4MDEwNTI0NDQKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHgwMTA1MjQ0NAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikJLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDEgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19WWFdPUktTX01BQ19QVFIJMHgwMDAwMDAwMAkvKiBQYXNzIEV0aGVybmV0IE1BQyB0byBWeFdvcmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfVlhXT1JLU19NQUNfUFRSCTB4MDAwMDAwMDAJLyogUGFzcyBFdGhlcm5ldCBNQUMgdG8gVnhXb3JrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKgogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2RlZmluZSBDRkdfQk9PVENTX0NGRwkJMHgwMDA0REQwMAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0REQwMAogCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQkweGZkMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHgwMDAxMDAwMAotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHgxMDEwMTQxMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TVEFSVAkJMHhmZDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHgxMDEwMTQxMAogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKQEAgLTMzMiw3MSArMzMyLDcxIEBACiAjZGVmaW5lCUNPTkZJR19JREVfUkVTRVQJLyogcmVzZXQgZm9yIGlkZSBzdXBwb3J0ZWQJKi8KICNkZWZpbmUgQ09ORklHX0lERV9QUkVJTklUCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycwkJCQkJCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTQKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFCQk0CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENQTEQgc3R1ZmYKICAqLwotI2RlZmluZSBDRkdfRlBHQV9YQzk1WEwJCTEJLyogdXNpbmcgWGlsaW54IFhDOTVYTCBDUExECSAqLwotI2RlZmluZSBDRkdfRlBHQV9NQVhfU0laRQkzMioxMDI0CS8qIDMya0J5dGUgaXMgZW5vdWdoIGZvciBDUExECSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfWEM5NVhMCQkxCS8qIHVzaW5nIFhpbGlueCBYQzk1WEwgQ1BMRAkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BWF9TSVpFCTMyKjEwMjQJLyogMzJrQnl0ZSBpcyBlbm91Z2ggZm9yIENQTEQJICovCiAKIC8qIENQTEQgcHJvZ3JhbSBwaW4gY29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDRkdfRlBHQV9QUkcJCTB4MjAwMDAwMDAJLyogSlRBRyBUTVMgcGluIChwcGMgb3V0cHV0KQkgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfQ0xLCQkweDEwMDAwMDAwCS8qIEpUQUcgVENLIHBpbiAocHBjIG91dHB1dCkJICAgICAgICovCi0jZGVmaW5lIENGR19GUEdBX0RBVEEJCTB4MjAwMDAwMDAJLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfRE9ORQkJMHgxMDAwMDAwMAkvKiBKVEFHIFRESS0+VERPIHBpbiAocHBjIGlucHV0KSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUFJHCQkweDIwMDAwMDAwCS8qIEpUQUcgVE1TIHBpbiAocHBjIG91dHB1dCkJICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9DTEsJCTB4MTAwMDAwMDAJLyogSlRBRyBUQ0sgcGluIChwcGMgb3V0cHV0KQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RBVEEJCTB4MjAwMDAwMDAJLyogSlRBRyBURE8tPlRESSBkYXRhIHBpbiAocHBjIG91dHB1dCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0RPTkUJCTB4MTAwMDAwMDAJLyogSlRBRyBUREktPlRETyBwaW4gKHBwYyBpbnB1dCkgICAgICAgKi8KIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9UTVMJKENGR19NQkFSICsgMHhCMTApCS8qIEpUQUcgVE1TIHBpbiAoR1BTIGRhdGEgb3V0IHZhbHVlIHJlZy4pICAgICAgKi8KLSNkZWZpbmUgSlRBR19HUElPX0FERFJfVENLCShDRkdfTUJBUiArIDB4QzBDKQkvKiBKVEFHIFRDSyBwaW4gKEdQVyBkYXRhIG91dCB2YWx1ZSByZWcuKSAgICAgICovCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX1RESQkoQ0ZHX01CQVIgKyAweEMwQykJLyogSlRBRyBURE8tPlRESSBwaW4gKEdQVyBkYXRhIG91dCB2YWx1ZSByZWcuKSAqLwotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9URE8JKENGR19NQkFSICsgMHhCMTQpCS8qIEpUQUcgVERJLT5URE8gcGluIChHUFMgZGF0YSBpbiB2YWx1ZSByZWcuKSAgKi8KKyNkZWZpbmUgSlRBR19HUElPX0FERFJfVE1TCShDT05GSUdfU1lTX01CQVIgKyAweEIxMCkJLyogSlRBRyBUTVMgcGluIChHUFMgZGF0YSBvdXQgdmFsdWUgcmVnLikgICAgICAqLworI2RlZmluZSBKVEFHX0dQSU9fQUREUl9UQ0sJKENPTkZJR19TWVNfTUJBUiArIDB4QzBDKQkvKiBKVEFHIFRDSyBwaW4gKEdQVyBkYXRhIG91dCB2YWx1ZSByZWcuKSAgICAgICovCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX1RESQkoQ09ORklHX1NZU19NQkFSICsgMHhDMEMpCS8qIEpUQUcgVERPLT5UREkgcGluIChHUFcgZGF0YSBvdXQgdmFsdWUgcmVnLikgKi8KKyNkZWZpbmUgSlRBR19HUElPX0FERFJfVERPCShDT05GSUdfU1lTX01CQVIgKyAweEIxNCkJLyogSlRBRyBUREktPlRETyBwaW4gKEdQUyBkYXRhIGluIHZhbHVlIHJlZy4pICAqLwogCi0jZGVmaW5lIEpUQUdfR1BJT19BRERSX0NGRwkoQ0ZHX01CQVIgKyAweEIwMCkKKyNkZWZpbmUgSlRBR19HUElPX0FERFJfQ0ZHCShDT05GSUdfU1lTX01CQVIgKyAweEIwMCkKICNkZWZpbmUgSlRBR19HUElPX0NGR19TRVQJMHgwMDAwMDAwMAogI2RlZmluZSBKVEFHX0dQSU9fQ0ZHX1JFU0VUCTB4MDBGMDAwMDAKIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9FTl9UTVMJKENGR19NQkFSICsgMHhCMDQpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RNUwkoQ09ORklHX1NZU19NQkFSICsgMHhCMDQpCiAjZGVmaW5lIEpUQUdfR1BJT19UTVNfRU5fU0VUCTB4MjAwMDAwMDAJLyogRW5hYmxlIGZvciBHUElPICovCiAjZGVmaW5lIEpUQUdfR1BJT19UTVNfRU5fUkVTRVQJMHgwMDAwMDAwMAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVE1TCShDRkdfTUJBUiArIDB4QjBDKQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVE1TCShDT05GSUdfU1lTX01CQVIgKyAweEIwQykKICNkZWZpbmUgSlRBR19HUElPX1RNU19ERFJfU0VUCTB4MjAwMDAwMDAJLyogU2V0IGFzIG91dHB1dCAgICovCiAjZGVmaW5lIEpUQUdfR1BJT19UTVNfRERSX1JFU0VUIDB4MDAwMDAwMDAKIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9FTl9UQ0sJKENGR19NQkFSICsgMHhDMDApCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RDSwkoQ09ORklHX1NZU19NQkFSICsgMHhDMDApCiAjZGVmaW5lIEpUQUdfR1BJT19UQ0tfRU5fU0VUCTB4MjAwMDAwMDAJLyogRW5hYmxlIGZvciBHUElPICovCiAjZGVmaW5lIEpUQUdfR1BJT19UQ0tfRU5fUkVTRVQJMHgwMDAwMDAwMAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVENLCShDRkdfTUJBUiArIDB4QzA4KQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVENLCShDT05GSUdfU1lTX01CQVIgKyAweEMwOCkKICNkZWZpbmUgSlRBR19HUElPX1RDS19ERFJfU0VUCTB4MjAwMDAwMDAJLyogU2V0IGFzIG91dHB1dCAgICovCiAjZGVmaW5lIEpUQUdfR1BJT19UQ0tfRERSX1JFU0VUIDB4MDAwMDAwMDAKIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9FTl9UREkJKENGR19NQkFSICsgMHhDMDApCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RESQkoQ09ORklHX1NZU19NQkFSICsgMHhDMDApCiAjZGVmaW5lIEpUQUdfR1BJT19URElfRU5fU0VUCTB4MTAwMDAwMDAJLyogRW5hYmxlIGFzIEdQSU8gICovCiAjZGVmaW5lIEpUQUdfR1BJT19URElfRU5fUkVTRVQJMHgwMDAwMDAwMAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVERJCShDRkdfTUJBUiArIDB4QzA4KQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVERJCShDT05GSUdfU1lTX01CQVIgKyAweEMwOCkKICNkZWZpbmUgSlRBR19HUElPX1RESV9ERFJfU0VUCTB4MTAwMDAwMDAJLyogU2V0IGFzIG91dHB1dCAgICovCiAjZGVmaW5lIEpUQUdfR1BJT19URElfRERSX1JFU0VUIDB4MDAwMDAwMDAKIAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9FTl9URE8JKENGR19NQkFSICsgMHhCMDQpCisjZGVmaW5lIEpUQUdfR1BJT19BRERSX0VOX1RETwkoQ09ORklHX1NZU19NQkFSICsgMHhCMDQpCiAjZGVmaW5lIEpUQUdfR1BJT19URE9fRU5fU0VUCTB4MTAwMDAwMDAJLyogRW5hYmxlIGFzIEdQSU8gICovCiAjZGVmaW5lIEpUQUdfR1BJT19URE9fRU5fUkVTRVQJMHgwMDAwMDAwMAotI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVERPCShDRkdfTUJBUiArIDB4QjBDKQorI2RlZmluZSBKVEFHX0dQSU9fQUREUl9ERFJfVERPCShDT05GSUdfU1lTX01CQVIgKyAweEIwQykKICNkZWZpbmUgSlRBR19HUElPX1RET19ERFJfU0VUCTB4MDAwMDAwMDAKICNkZWZpbmUgSlRBR19HUElPX1RET19ERFJfUkVTRVQgMHgxMDAwMDAwMAkvKiBTZXQgYXMgaW5wdXQJICAgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3BsZWIyLmggYi9pbmNsdWRlL2NvbmZpZ3MvcGxlYjIuaAppbmRleCA2NmU3NmU4Li4xNGY4OTE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcGxlYjIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcGxlYjIuaApAQCAtNDUsOCArNDUsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC0xMDQsMzMgKzEwNCwzMyBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCTEKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIiQgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSIkICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGEwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZglDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweGEyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweGEyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwotI2RlZmluZSBDRkdfQ1BVU1BFRUQJCTB4MTQxCQkvKiBzZXQgY29yZSBjbG9jayB0byAyMDAvMjAwLzEwMCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUFVTUEVFRAkJMHgxNDEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDIwMC8yMDAvMTAwIE1IeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBTdGFjayBzaXplcwpAQCAtMTY0LDg2ICsxNjQsODYgQEAKICNkZWZpbmUgUEhZU19GTEFTSF9CQU5LX1NJWkUJMHgwMjAwMDAwMCAvKiAzMiBNQiBCYW5rcyAqLwogI2RlZmluZSBQSFlTX0ZMQVNIX1NFQ1RfU0laRQkweDAwMDEwMDAwIC8qIDY0IEtCIHNlY3RvcnMgKHgyKSAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCVBIWVNfU0RSQU1fMQotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQlQSFlTX1NEUkFNXzFfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRQkJUEhZU19TRFJBTV8xCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQlQSFlTX1NEUkFNXzFfU0laRQogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAogLyoKICAqIEdQSU8gc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfR1BTUjBfVkFMCQkweDAwMDAwMDAwICAvKiBEb24ndCBzZXQgYW55dGhpbmcgKi8KLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTAkJMHgwMDAwMDA4MAotI2RlZmluZSBDRkdfR1BTUjJfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMCQkweDAwMDAwMDAwICAvKiBEb24ndCBzZXQgYW55dGhpbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMV9WQUwJCTB4MDAwMDAwODAKKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMl9WQUwJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfR1BDUjBfVkFMCQkweDAwMDAwMDAwICAvKiBEb24ndCBjbGVhciBhbnl0aGluZyAqLwotI2RlZmluZSBDRkdfR1BDUjFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwJCTB4MDAwMDAwMDAgIC8qIERvbid0IGNsZWFyIGFueXRoaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0dQRFIwX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BEUjFfVkFMCQkweDAwMDAwN0MzCi0jZGVmaW5lIENGR19HUERSMl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwJCTB4MDAwMDA3QzMKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwJCTB4MDAwMDAwMDAKIAogLyogRWRnZSBkZXRlY3QgcmVnaXN0ZXJzICh0aGVzZSBhcmUgc2V0IGJ5IHRoZSBrZXJuZWwpICovCi0jZGVmaW5lIENGR19HUkVSMF9WQUwJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSRVIxX1ZBTAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JFUjJfVkFMCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMF9WQUwJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIxX1ZBTAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0ZFUjJfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjBfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjFfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjJfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjBfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjFfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjJfVkFMCSAgICAweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0dBRlIwX0xfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMF9VX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwJCTB4MDAwMDgwMTAgIC8qIFVzZSBGRiBVQVJUIFNlbmQgYW5kIFJlY2VpdmUgKi8KLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9MX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX1VfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfTF9WQUwJCTB4MDAwMDgwMTAgIC8qIFVzZSBGRiBVQVJUIFNlbmQgYW5kIFJlY2VpdmUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9VX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUFNTUl9WQUwJCTB4MjAKLSNkZWZpbmUgQ0ZHX0NDQ1JfVkFMCSAgICAweDAwMDAwMTQxCS8qIDEwMCBNSHogbWVtb3J5LCAyMDAgTUh6IENQVQkqLwotI2RlZmluZSBDRkdfQ0tFTl9WQUwJICAgIDB4MDAwMDAwNjAJLyogRkZVQVJUIGFuZCBTVFVBUlQgZW5hYmxlZAkqLwotI2RlZmluZSBDRkdfSUNNUl9WQUwJICAgIDB4MDAwMDAwMDAJLyogTm8gaW50ZXJydXB0cyBlbmFibGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwJCTB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19DQ0NSX1ZBTAkgICAgMHgwMDAwMDE0MQkvKiAxMDAgTUh6IG1lbW9yeSwgMjAwIE1IeiBDUFUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DS0VOX1ZBTAkgICAgMHgwMDAwMDA2MAkvKiBGRlVBUlQgYW5kIFNUVUFSVCBlbmFibGVkCSovCisjZGVmaW5lIENPTkZJR19TWVNfSUNNUl9WQUwJICAgIDB4MDAwMDAwMDAJLyogTm8gaW50ZXJydXB0cyBlbmFibGVkCSovCiAKIC8qCiAgKiBNZW1vcnkgc2V0dGluZ3MKICAqLwotI2RlZmluZSBDRkdfTVNDMF9WQUwJCTB4MDAwMDdGRjAgLyogTm90IHByb3Blcmx5IGNhbGN1bGF0ZWQgLSBGSVhNRSAoRFMpICovCi0jZGVmaW5lIENGR19NU0MxX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTVNDMl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTAkJMHgwMDAwN0ZGMCAvKiBOb3QgcHJvcGVybHkgY2FsY3VsYXRlZCAtIEZJWE1FIChEUykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwJCTB4MDAwMDBhQzkgLyogTWVtb3J5IHRpbWluZ3MgZm9yIHRoZSBTRFJBTS4KKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMCQkweDAwMDAwYUM5IC8qIE1lbW9yeSB0aW1pbmdzIGZvciB0aGUgU0RSQU0uCiAJCQkJCSAgICAgIHRSUD0yLCBDTD0yLCB0UkNEPTIsIHRSQVM9NSwgdFJDPTggKi8KIAotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJMHgwMDQwMzAxOCAvKiBJbml0aWFsIHNldHRpbmcsIGluZGl2aWR1YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMCQkweDAwNDAzMDE4IC8qIEluaXRpYWwgc2V0dGluZywgaW5kaXZpZHVhbAkqLwogCQkJCQkgICAvKiBiaXRzIHNldCBpbiBsb3dsZXZlbF9pbml0LlMJKi8KLSNkZWZpbmUgQ0ZHX01ETVJTX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTAkJMHgwMDAwMDAwMAogCiAvKgogICogUENNQ0lBIGFuZCBDRiBJbnRlcmZhY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMCQkweDAwMDAwMDAwICAvKiBIYW5nb3ZlciBmcm9tIEx1YmJvY2suCisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwJCTB4MDAwMDAwMDAgIC8qIEhhbmdvdmVyIGZyb20gTHViYm9jay4KIAkJCQkJICAgICAgIE5lZWRzIGNhbGN1bGF0aW5nLiAoRFMvQ0hDKSAqLwotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQwX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNJTzBfVkFMCQkweDAwMDA0NzE1Ci0jZGVmaW5lIENGR19NQ0lPMV9WQUwJCTB4MDAwMDQ3MTUKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMCQkweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMCQkweDAwMDA0NzE1CiAKIC8qCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwogLyogRklYTUUgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKIC8qIEZsYXNoIHByb3RlY3Rpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQogCiAvKiBGSVhNRSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKQEAgLTI1Miw2ICsyNTIsNiBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAKIC8qIE9wdGlvbiBhZGRlZCB0byBnZXQgYXJvdW5kIGJ5dGUgb3JkZXJpbmcgaXNzdWVzIGluIHRoZSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0xJVFRMRV9FTkRJQU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0xJVFRMRV9FTkRJQU4JMQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3BwbWM3eHguaCBiL2luY2x1ZGUvY29uZmlncy9wcG1jN3h4LmgKaW5kZXggZmQwNWM3ZS4uNTc3YWI4ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3BwbWM3eHguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcHBtYzd4eC5oCkBAIC0yMDYsNjkgKzIwNiw2OSBAQAogLyoKICAqIFNEUkFNIGNvbmZpZyAtIHNlZSBtZW1vcnkgbWFwIGRldGFpbHMgYWJvdmUuCiAgKgotICogQ0ZHX1NEUkFNX0JBU0UJCS0gU3RhcnQgYWRkcmVzcyBvZiBTRFJBTSwgdGhpcyBfbXVzdF8gYmUgemVybyEKLSAqIENGR19TRFJBTV9TSVpFCQktIFRvdGFsIHNpemUgb2YgY29udGlndW91cyBTRFJBTSBiYW5rKHMpCisgKiBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCS0gU3RhcnQgYWRkcmVzcyBvZiBTRFJBTSwgdGhpcyBfbXVzdF8gYmUgemVybyEKKyAqIENPTkZJR19TWVNfU0RSQU1fU0laRQkJLSBUb3RhbCBzaXplIG9mIGNvbnRpZ3VvdXMgU0RSQU0gYmFuayhzKQogICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJMHgwNDAwMDAwMAogCiAKIC8qCiAgKiBGbGFzaCBjb25maWcgLSBzZWUgbWVtb3J5IG1hcCBkZXRhaWxzIGFib3ZlLgogICoKLSAqIENGR19GTEFTSF9CQVNFCQktIFN0YXJ0IGFkZHJlc3Mgb2YgZmxhc2ggbWVtb3J5Ci0gKiBDRkdfRkxBU0hfU0laRQkJLSBUb3RhbCBzaXplIG9mIGNvbnRpZ3VvdXMgZmxhc2ggbWVtCi0gKiBDRkdfRkxBU0hfRVJBU0VfVE9VVAkJLSBFcmFzZSB0aW1lb3V0IGluIG1zCi0gKiBDRkdfRkxBU0hfV1JJVEVfVE9VVAkJLSBXcml0ZSB0aW1lb3V0IGluIG1zCi0gKiBDRkdfTUFYX0ZMQVNIX0JBTktTCQktIE51bWJlciBvZiBiYW5rcyBvZiBmbGFzaCBvbiBib2FyZAotICogQ0ZHX01BWF9GTEFTSF9TRUNUCQktIE51bWJlciBvZiBzZWN0b3JzIGluIGEgYmFuaworICogQ09ORklHX1NZU19GTEFTSF9CQVNFCQktIFN0YXJ0IGFkZHJlc3Mgb2YgZmxhc2ggbWVtb3J5CisgKiBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCS0gVG90YWwgc2l6ZSBvZiBjb250aWd1b3VzIGZsYXNoIG1lbQorICogQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCQktIEVyYXNlIHRpbWVvdXQgaW4gbXMKKyAqIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkJLSBXcml0ZSB0aW1lb3V0IGluIG1zCisgKiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkJLSBOdW1iZXIgb2YgYmFua3Mgb2YgZmxhc2ggb24gYm9hcmQKKyAqIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCS0gTnVtYmVyIG9mIHNlY3RvcnMgaW4gYSBiYW5rCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkMwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDQwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNTAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwMAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTE5CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI1MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTkKIAogCiAvKgogICogTW9uaXRvciBjb25maWcgLSBzZWUgbWVtb3J5IG1hcCBkZXRhaWxzIGFib3ZlCiAgKgotICogQ0ZHX01PTklUT1JfQkFTRQkJLSBCYXNlIGFkZHJlc3Mgb2YgbW9uaXRvciBjb2RlCi0gKiBDRkdfTUFMTE9DX0xFTgkJLSBTaXplIG9mIG1hbGxvYyBwb29sICgxMjhLQikKKyAqIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCQktIEJhc2UgYWRkcmVzcyBvZiBtb25pdG9yIGNvZGUKKyAqIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJLSBTaXplIG9mIG1hbGxvYyBwb29sICgxMjhLQikKICAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkweDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCTB4MjAwMDAKIAogCiAvKgogICogQ29tbWFuZCBzaGVsbCBzZXR0aW5ncwogICoKLSAqIENGR19CQVJHU0laRQkJCS0gQm9vdCBBcmd1bWVudCBidWZmZXIgc2l6ZQotICogQ0ZHX0JPT1RNQVBTWgkJLSBTaXplIG9mIGFwcCdzIG1hcHBlZCBSQU0gYXQgYm9vdCAoTGludXg9OE1CKQotICogQ0ZHX0NCU0laRQkJCS0gQ29uc29sZSBCdWZmZXIgKGlucHV0KSBzaXplCi0gKiBDRkdfTE9BRF9BRERSCQktIERlZmF1bHQgbG9hZCBhZGRyZXNzCi0gKiBDRkdfTE9OR0hFTFAJCQktIFByb3ZpZGUgbW9yZSBkZXRhaWxlZCBoZWxwCi0gKiBDRkdfTUFYQVJHUwkJCS0gTnVtYmVyIG9mIGFyZ3MgYWNjZXB0ZWQgYnkgbW9uaXRvciBjb21tYW5kcwotICogQ0ZHX01FTVRFU1RfU1RBUlQJCS0gU3RhcnQgYWRkcmVzcyBvZiB0ZXN0IHRvIHJ1biBvbiBSQU0KLSAqIENGR19NRU1URVNUX0VORAkJLSBFbmQgYWRkcmVzcyBvZiBSQU0gdGVzdAotICogQ0ZHX1BCU0laRQkJCS0gUHJpbnQgQnVmZmVyIChvdXRwdXQpIHNpemUKLSAqIENGR19QUk9NUFQJCQktIFByb21wdCBzdHJpbmcKKyAqIENPTkZJR19TWVNfQkFSR1NJWkUJCQktIEJvb3QgQXJndW1lbnQgYnVmZmVyIHNpemUKKyAqIENPTkZJR19TWVNfQk9PVE1BUFNaCQktIFNpemUgb2YgYXBwJ3MgbWFwcGVkIFJBTSBhdCBib290IChMaW51eD04TUIpCisgKiBDT05GSUdfU1lTX0NCU0laRQkJCS0gQ29uc29sZSBCdWZmZXIgKGlucHV0KSBzaXplCisgKiBDT05GSUdfU1lTX0xPQURfQUREUgkJLSBEZWZhdWx0IGxvYWQgYWRkcmVzcworICogQ09ORklHX1NZU19MT05HSEVMUAkJCS0gUHJvdmlkZSBtb3JlIGRldGFpbGVkIGhlbHAKKyAqIENPTkZJR19TWVNfTUFYQVJHUwkJCS0gTnVtYmVyIG9mIGFyZ3MgYWNjZXB0ZWQgYnkgbW9uaXRvciBjb21tYW5kcworICogQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCQktIFN0YXJ0IGFkZHJlc3Mgb2YgdGVzdCB0byBydW4gb24gUkFNCisgKiBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQktIEVuZCBhZGRyZXNzIG9mIFJBTSB0ZXN0CisgKiBDT05GSUdfU1lTX1BCU0laRQkJCS0gUHJpbnQgQnVmZmVyIChvdXRwdXQpIHNpemUKKyAqIENPTkZJR19TWVNfUFJPTVBUCQkJLSBQcm9tcHQgc3RyaW5nCiAgKi8KIAotI2RlZmluZSBDRkdfQkFSR1NJWkUJCTEwMjQKLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJMHg4MDAwMDAKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMAotI2RlZmluZSBDRkdfTE9OR0hFTFAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2Ci0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAwNDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwMDQwMTAwCi0jZGVmaW5lIENGR19QQlNJWkUJCTEwMjQKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJMHg4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwMDQwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgogCiAKIC8qCkBAIC0yOTUsMTYgKzI5NSwxNiBAQAogICogaW4gdGhlIG1haW4gc3lzdGVtIFJBTSBqdXN0IGFib3ZlIHRoZSBleGNlcHRpb24gdmVjdG9ycy4gVGhlIGNvbnRlbnRzIGFyZQogICogY29waWVkIHRvIHRvcCBvZiBSQU0gYnkgdGhlIGluaXQgY29kZS4KICAqCi0gKiBDRkdfSU5JVF9SQU1fQUREUgkJLSBBZGRyZXNzIG9mIEluaXQgUkFNLCBhYm92ZSBleGNlcHRpb24gdmVjdAotICogQ0ZHX0lOSVRfUkFNX0VORAkJLSBTaXplIG9mIEluaXQgUkFNCi0gKiBDRkdfR0JMX0RBVEFfU0laRQkJLSBBbW1vdW50IG9mIFJBTSB0byByZXNlcnZlIGZvciBnbG9iYWwgZGF0YQotICogQ0ZHX0dCTF9EQVRBX09GRlNFVAkJLSBTdGFydCBvZiBnbG9iYWwgZGF0YSwgdG9wIG9mIHN0YWNrCisgKiBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJCS0gQWRkcmVzcyBvZiBJbml0IFJBTSwgYWJvdmUgZXhjZXB0aW9uIHZlY3QKKyAqIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECQktIFNpemUgb2YgSW5pdCBSQU0KKyAqIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkJLSBBbW1vdW50IG9mIFJBTSB0byByZXNlcnZlIGZvciBnbG9iYWwgZGF0YQorICogQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJCS0gU3RhcnQgb2YgZ2xvYmFsIGRhdGEsIHRvcCBvZiBzdGFjawogICovCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJKENGR19TRFJBTV9CQVNFICsgMHg0MDAwKQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4NDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogCiAKIC8qCkBAIC0zMTYsMzggKzMxNiwzOCBAQAogICogQkFUMyAtIFBDSSBJL08gaW5jbHVkaW5nIEZsYXNoIE1lbW9yeQogICovCiAKLSNkZWZpbmUgQ0ZHX0lCQVQwTCAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgKENGR19TRFJBTV9CQVNFIHwgQkFUVV9CTF82NE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQwTCBDRkdfSUJBVDBMCi0jZGVmaW5lIENGR19EQkFUMFUgQ0ZHX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVSAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF82NE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMEwgQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgQ09ORklHX1NZU19JQkFUMFUKIAotI2RlZmluZSBDRkdfSUJBVDFMICgweDcwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDFVICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19EQkFUMUwgKDB4NzAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDFVICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMICgweDcwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxVSAoMHg3MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTCAoMHg3MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICgweDcwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQyTCAoMHg4MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfREJBVDJMICgweDgwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVSAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAoMHg4MDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgKDB4ODAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVSAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19JQkFUM0wgKDB4RjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UgKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAoMHhGMDAwMDAwMCB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUM1UgKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wgKDB4RjAwMDAwMDAgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVICgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICgweEYwMDAwMDAwIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogCiAvKgogICogQ2FjaGUgY29uZmlnCiAgKgotICogQ0ZHX0NBQ0hFTElORV9TSVpFCQktIFNpemUgb2YgYSBjYWNoZSBsaW5lIChDUFUgc3BlY2lmaWMpCi0gKiBDRkdfTDIJCQktIEwyIGNhY2hlIGVuYWJsZWQgaWYgZGVmaW5lZAorICogQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkJLSBTaXplIG9mIGEgY2FjaGUgbGluZSAoQ1BVIHNwZWNpZmljKQorICogQ09ORklHX1NZU19MMgkJCS0gTDIgY2FjaGUgZW5hYmxlZCBpZiBkZWZpbmVkCiAgKiBMMl9JTklUCQkJLSBMMiBjYWNoZSBpbml0IGZsYWdzCiAgKiBMMl9FTkFCTEUJCQktIEwyIGNhY2hlIGVuYWJsZSBmbGFncwogICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCi0jdW5kZWYJQ0ZHX0wyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKKyN1bmRlZglDT05GSUdfU1lTX0wyCiAjZGVmaW5lIEwyX0lOSVQJCQkwCiAjZGVmaW5lIEwyX0VOQUJMRQkJMAogCkBAIC0zNTUsNjYgKzM1NSw2NiBAQAogLyoKICAqIENsb2NrcyBjb25maWcKICAqCi0gKiBDRkdfQlVTX0haCQkJLSBCdXMgY2xvY2sgZnJlcXVlbmN5IGluIEh6Ci0gKiBDRkdfQlVTX0NMSwkJCS0gQXMgYWJvdmUgKD8pCi0gKiBDRkdfSFoJCQktIERlY3JlbWVudGVyIGZyZXEgaW4gSHoKKyAqIENPTkZJR19TWVNfQlVTX0haCQkJLSBCdXMgY2xvY2sgZnJlcXVlbmN5IGluIEh6CisgKiBDT05GSUdfU1lTX0JVU19DTEsJCQktIEFzIGFib3ZlICg/KQorICogQ09ORklHX1NZU19IWgkJCS0gRGVjcmVtZW50ZXIgZnJlcSBpbiBIegogICovCiAKLSNkZWZpbmUgQ0ZHX0JVU19IWgkJQ09ORklHX0JVU19DTEsKLSNkZWZpbmUgQ0ZHX0JVU19DTEsJCUNPTkZJR19CVVNfQ0xLCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CVVNfSFoJCUNPTkZJR19CVVNfQ0xLCisjZGVmaW5lIENPTkZJR19TWVNfQlVTX0NMSwkJQ09ORklHX0JVU19DTEsKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAogCiAvKgogICogU2VyaWFsIHBvcnQgY29uZmlnCiAgKgotICogQ0ZHX0JBVURSQVRFX1RBQkxFCQktIExpc3Qgb2YgdmFsaWQgYmF1ZCByYXRlcwotICogQ0ZHX05TMTY1NTAJCQktIEluY2x1ZGUgdGhlIE5TMTY1NTAgZHJpdmVyCi0gKiBDRkdfTlMxNjU1MF9TRVJJQUwJCS0gSW5jbHVkZSB0aGUgc2VyaWFsICh3cmFwcGVyKSBkcml2ZXIKLSAqIENGR19OUzE2NTUwX0NMSwkJLSBGcmVxdWVuY3kgb2YgcmVmZXJlbmNlIGNsb2NrCi0gKiBDRkdfTlMxNjU1MF9SRUdfU0laRQkJLSA2NC1iaXQgYWNjZXNzZXMgdG8gOC1iaXQgcG9ydAotICogQ0ZHX05TMTY1NTBfQ09NMQkJLSBCYXNlIGFkZHJlc3Mgb2YgMXN0IHNlcmlhbCBwb3J0CisgKiBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCQktIExpc3Qgb2YgdmFsaWQgYmF1ZCByYXRlcworICogQ09ORklHX1NZU19OUzE2NTUwCQkJLSBJbmNsdWRlIHRoZSBOUzE2NTUwIGRyaXZlcgorICogQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAkJLSBJbmNsdWRlIHRoZSBzZXJpYWwgKHdyYXBwZXIpIGRyaXZlcgorICogQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJLSBGcmVxdWVuY3kgb2YgcmVmZXJlbmNlIGNsb2NrCisgKiBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJCS0gNjQtYml0IGFjY2Vzc2VzIHRvIDgtYml0IHBvcnQKKyAqIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCQktIEJhc2UgYWRkcmVzcyBvZiAxc3Qgc2VyaWFsIHBvcnQKICAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCTM2ODY0MDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJLTgKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkweDdDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkzNjg2NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQktOAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkweDdDMDAwMDAwCiAKIAogLyoKICAqIFBDSSBDb25maWcgLSBBZGRyZXNzIE1hcCBCIChDSFJQKQogICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9CVVMJCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fUEhZUwkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNX1NJWkUJMHg3RDAwMDAwMAotI2RlZmluZSBDRkdfSVNBX01FTV9CVVMJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fUEhZUwkweEZEMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfTUVNX1NJWkUJMHgwMTAwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX0JVUwkJMHgwMDgwMDAwMAotI2RlZmluZSBDRkdfUENJX0lPX1BIWVMJCTB4RkU4MDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9JT19TSVpFCQkweDAwNDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU9fQlVTCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19JU0FfSU9fUEhZUwkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPX1NJWkUJCTB4MDA4MDAwMDAKLSNkZWZpbmUgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgQ0ZHX0lTQV9JT19QSFlTCi0jZGVmaW5lIENGR19JU0FfSU8JCUNGR19JU0FfSU9fUEhZUwotI2RlZmluZSBDRkdfNjBYX1BDSV9JT19PRkZTRVQJQ0ZHX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9CVVMJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1PUllfUEhZUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9TSVpFCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX0JVUwkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fUEhZUwkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9TSVpFCTB4N0QwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX0JVUwkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9NRU1fUEhZUwkweEZEMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX01FTV9TSVpFCTB4MDEwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fQlVTCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0lPX1BIWVMJCTB4RkU4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfSU9fU0laRQkJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CVVMJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfSU9fUEhZUwkJMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19TSVpFCQkweDAwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUyBDT05GSUdfU1lTX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPCQlDT05GSUdfU1lTX0lTQV9JT19QSFlTCisjZGVmaW5lIENPTkZJR19TWVNfNjBYX1BDSV9JT19PRkZTRVQJQ09ORklHX1NZU19JU0FfSU9fUEhZUwogCiAKIC8qCiAgKiBFeHRyYSBpbml0IGZ1bmN0aW9ucwogICoKLSAqIENGR19CT0FSRF9BU01fSU5JVAkJLSBDYWxsIGFzc2VtYmx5IGluaXQgY29kZQorICogQ09ORklHX1NZU19CT0FSRF9BU01fSU5JVAkJLSBDYWxsIGFzc2VtYmx5IGluaXQgY29kZQogICovCiAKLSNkZWZpbmUgQ0ZHX0JPQVJEX0FTTV9JTklUCisjZGVmaW5lIENPTkZJR19TWVNfQk9BUkRfQVNNX0lOSVQKIAogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3BwbWM4MjYwLmggYi9pbmNsdWRlL2NvbmZpZ3MvcHBtYzgyNjAuaAppbmRleCBkZDcxODYyLi5mZjdkNjE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcHBtYzgyNjAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcHBtYzgyNjAuaApAQCAtNjUsNyArNjUsNyBAQAogICogMHg2CSAgICAgMHgxCSA2NgkxMzMgICAgMjY2ICAgQ2xvc2UgIENsb3NlICBPcGVuCiAgKiAweDYJICAgICAweDIJIDY2CTEzMyAgICAzMDAgICBDbG9zZSAgT3BlbiAgIENsb3NlCiAgKi8KLSNkZWZpbmUgQ0ZHX1BQTUNfTU9EQ0tfSCAweDA1CisjZGVmaW5lIENPTkZJR19TWVNfUFBNQ19NT0RDS19IIDB4MDUKIAogLyogRGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgdG8gYm9vdCBmcm9tIDB4MDAwMDAxMDAuIElmIHlvdSBkb24ndCBkZWZpbmUKICAqIHRoaXMsIHlvdSB3aWxsIG5lZWQgdG8gcHJvZ3JhbSB0aGUgYm9vdGxvYWRlciB0byAweGZmZjAwMDAwLCBhbmQKQEAgLTczLDUzICs3Myw1MyBAQAogICogd2F5IHRvIGRvIHRoYXQgaXMgdG8gcHJvZ3JhbSB0aGUgYm9vdGxvYWRlciBhdCBib3RoIGFkZHJlc3Nlcy4KICAqIEl0IGlzIHN1Z2dlc3RlZCB0aGF0IHlvdSBqdXN0IGxldCBVLUJvb3QgbGl2ZSBhdCAweDAwMDAwMDAwLgogICovCi0jZGVmaW5lIENGR19QUE1DX0JPT1RfTE9XIDEKKyNkZWZpbmUgQ09ORklHX1NZU19QUE1DX0JPT1RfTE9XIDEKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgbWFpbiBGTEFTSCBiZSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1CeXRlcyk/IFRoaXMgbXVzdCBjb250YWluIFRFWFRfQkFTRSBmcm9tIGJvYXJkL3BwbWM4MjYwL2NvbmZpZy5tawogICogVGhlIG1haW4gRkxBU0ggaXMgd2hpY2hldmVyIGlzIGNvbm5lY3RlZCB0byAqQ1MwLiBVLUJvb3QgZXhwZWN0cwogICogdGhpcyB0byBiZSB0aGUgU0lNTS4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgMTYKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRSAweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX1NJWkUgMTYKIAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgZmlyc3QgU0RSQU0gRElNTSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/CiAqLwotI2RlZmluZSBDRkdfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX1NJWkUgMTI4CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TSVpFIDEyOAogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBzZWNvbmQgU0RSQU0gRElNTSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/CiAqLwotI2RlZmluZSBDRkdfU0RSQU0xX0JBU0UgMHgwODAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0xX1NJWkUgMTI4CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0xX0JBU0UgMHgwODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMV9TSVpFIDEyOAogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBvbiBib2FyZCBTRFJBTSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/CiAqLwotI2RlZmluZSBDRkdfU0RSQU0yX0JBU0UgMHgzODAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0yX1NJWkUgMTYKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTJfQkFTRSAweDM4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0yX1NJWkUgMTYKIAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTUFJTEJPWCAgYW5kIGhvdyBiaWcgaXMgaXQKICAqIChpbiBCeXRlcykKLSAqIFRoZSBlZXByb20gbGl2ZXMgYXQgQ0ZHX01BSUxCT1hfQkFTRSArIDB4ODAwMDAwMDAKKyAqIFRoZSBlZXByb20gbGl2ZXMgYXQgQ09ORklHX1NZU19NQUlMQk9YX0JBU0UgKyAweDgwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX01BSUxCT1hfQkFTRSAweDMyMDAwMDAwCi0jZGVmaW5lIENGR19NQUlMQk9YX1NJWkUgODE5MgorI2RlZmluZSBDT05GSUdfU1lTX01BSUxCT1hfQkFTRSAweDMyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFJTEJPWF9TSVpFIDgxOTIKIAogLyogV2hhdCBpcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBJL08gc2VsZWN0IGxpbmVzIGFuZCBob3cgYmlnIGlzIGl0CiAgKiAoSW4gTWJ5dGVzKT8KICAqLwogCi0jZGVmaW5lIENGR19JT1NFTEVDVF9CQVNFIDB4RTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lPU0VMRUNUX1NJWkUgMzIKKyNkZWZpbmUgQ09ORklHX1NZU19JT1NFTEVDVF9CQVNFIDB4RTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JT1NFTEVDVF9TSVpFIDMyCiAKIAogLyogV2hhdCBzaG91bGQgYmUgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgTEVEcyBhbmQgc3dpdGNoIFMwPwogICogSWYgeW91IGRvbid0IHdhbnQgdGhlbSBlbmFibGVkLCBkb24ndCBkZWZpbmUgdGhpcy4KICAqLwotI2RlZmluZSBDRkdfTEVEX0JBU0UgMHhGMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xFRF9CQVNFIDB4RjEwMDAwMDAKIAogLyoKICAqIFBQTUM4MjYwIHdpdGggMjU2IDE2IE1CIERJTU06CkBAIC0xMzgsMTAgKzEzOCwxMCBAQAogICogICAgIDB4MEZGNSBGRkIwICAgICBCb2FyZCBJbmZvIERhdGEKICAqICAgICAweDBGRjYgMDAwMCAgICAgTWFsbG9jIEFyZW5hCiAgKgkgICAgIDoJCSAgICBDT05GSUdfRU5WX1NFQ1RfU0laRSwgMjU2awotICoJICAgICA6CQkgICAgQ0ZHX01BTExPQ19MRU4sICAgIDEyOGsKKyAqCSAgICAgOgkJICAgIENPTkZJR19TWVNfTUFMTE9DX0xFTiwgICAgMTI4awogICogICAgIDB4MEZGQyAwMDAwICAgICBSQU0gQ29weSBvZiBNb25pdG9yIENvZGUKLSAqCSAgICAgOgkJICAgIENGR19NT05JVE9SX0xFTiwgICAyNTZrCi0gKiAgICAgMHgwRkZGIEZGRkYgICAgIFtFbmQgb2YgUkFNXSwgQ0ZHX1NEUkFNX1NJWkUgLSAxCisgKgkgICAgIDoJCSAgICBDT05GSUdfU1lTX01PTklUT1JfTEVOLCAgIDI1NmsKKyAqICAgICAweDBGRkYgRkZGRiAgICAgW0VuZCBvZiBSQU1dLCBDT05GSUdfU1lTX1NEUkFNX1NJWkUgLSAxCiAgKi8KIAogCkBAIC0yNzQsMTAgKzI3NCwxMCBAQAogCiAKIC8qIHVuZGVmIHRoaXMgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKIAogLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIKIAogCiAvKgpAQCAtMjk2LDcgKzI5Niw3IEBACiAKIAogLyogV2hlcmUgZG8gdGhlIGludGVybmFsIHJlZ2lzdGVycyBsaXZlPyAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4ZjAwMDAwMDAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMzEyLDM2ICszMTIsMzYgQEAKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyAgZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJICAgICAqLworIyAgZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KICNlbHNlCi0jICBkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KICNlbmRpZgogCiAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCSAgKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCSAgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikKIAotI2RlZmluZSBDRkdfTUFYQVJHUwkJMzIJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkzMgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwogCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJICAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDE0MDAwMCAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxNDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgyMDAwCS8qIG1lbXRlc3Qgd29ya3MgZnJvbSB0aGUgZW5kIG9mICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDIwMDAJLyogbWVtdGVzdCB3b3JrcyBmcm9tIHRoZSBlbmQgb2YgKi8KIAkJCQkJLyogdGhlIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKi8KIAkJCQkJLyogdG8gdGhlIGVuZCBvZiB0aGUgRFJBTSAgKi8KIAkJCQkJLyogbGVzcyBtb25pdG9yIGFuZCBtYWxsb2MgYXJlYSAqLwotI2RlZmluZSBDRkdfU1RBQ0tfVVNBR0UJCTB4MTAwMDAgLyogUmVzZXJ2ZSA2NGsgZm9yIHRoZSBzdGFjayB1c2FnZSAqLwotI2RlZmluZSBDRkdfTUVNX0VORF9VU0FHRQkoIENGR19NT05JVE9SX0xFTiBcCi0JCQkJKyBDRkdfTUFMTE9DX0xFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfU1RBQ0tfVVNBR0UJCTB4MTAwMDAgLyogUmVzZXJ2ZSA2NGsgZm9yIHRoZSBzdGFjayB1c2FnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTV9FTkRfVVNBR0UJKCBDT05GSUdfU1lTX01PTklUT1JfTEVOIFwKKwkJCQkrIENPTkZJR19TWVNfTUFMTE9DX0xFTiBcCiAJCQkJKyBDT05GSUdfRU5WX1NFQ1RfU0laRSBcCi0JCQkJKyBDRkdfU1RBQ0tfVVNBR0UgKQorCQkJCSsgQ09ORklHX1NZU19TVEFDS19VU0FHRSApCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQgXAotCQkJCS0gQ0ZHX01FTV9FTkRfVVNBR0UgKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0IFwKKwkJCQktIENPTkZJR19TWVNfTUVNX0VORF9VU0FHRSApCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0zNTUsNyArMzU1LDcgQEAKICAqICAtIFJYIGNsayBpcyBDTEsxMQogICogIC0gVFggY2xrIGlzIENMSzEyCiAgKi8KLSNkZWZpbmUgQ0ZHX0NNWFNDUl9WQUxVRSAgICAgICAoQ01YU0NSX1JTMUNTX0NMSzExICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0NNWFNDUl9WQUxVRSAgICAgICAoQ01YU0NSX1JTMUNTX0NMSzExICB8XAogCQkJCUNNWFNDUl9UUzFDU19DTEsxMikKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKSAmJiAoQ09ORklHX0VUSEVSX0lOREVYID09IDIpCkBAIC0zNjYsMTI2ICszNjYsMTI2IEBACiAgKiAtIFNlbGVjdCBidXMgZm9yIGJkL2J1ZmZlcnMgKHNlZSAyOC0xMykKICAqIC0gRW5hYmxlIEZ1bGwgRHVwbGV4IGluIEZTTVIKICAqLwotI2RlZmluZSBDRkdfQ01YRkNSX01BU0sJCShDTVhGQ1JfRkMyfENNWEZDUl9SRjJDU19NU0t8Q01YRkNSX1RGMkNTX01TSykKLSNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzfENNWEZDUl9URjJDU19DTEsxNCkKLSNkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSNkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCQkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCisjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQorI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKICNlbmRpZgkvKiBDT05GSUdfRVRIRVJfSU5ERVggKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQlDRkdfRkxBU0gwX0JBU0UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJQ0ZHX0ZMQVNIMF9TSVpFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCUNGR19TRFJBTTBfQkFTRQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkoQ0ZHX1NEUkFNMF9TSVpFICsgQ0ZHX1NEUkFNMV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJQ09ORklHX1NZU19GTEFTSDBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJQ09ORklHX1NZU19TRFJBTTBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgKyBDT05GSUdfU1lTX1NEUkFNMV9TSVpFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqLwotI2lmIGRlZmluZWQoQ0ZHX1BQTUNfQk9PVF9MT1cpCi0jICBkZWZpbmUgIENGR19QUE1DX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1BQTUNfQk9PVF9MT1cpCisjICBkZWZpbmUgIENPTkZJR19TWVNfUFBNQ19IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQogI2Vsc2UKLSMgIGRlZmluZSAgQ0ZHX1BQTUNfSFJDV19CT09UX0ZMQUdTICAoMCkKLSNlbmRpZiAvKiBkZWZpbmVkKENGR19QUE1DX0JPT1RfTE9XKSAqLworIyAgZGVmaW5lICBDT05GSUdfU1lTX1BQTUNfSFJDV19CT09UX0ZMQUdTICAoMCkKKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19TWVNfUFBNQ19CT09UX0xPVykgKi8KIAotLyogZ2V0IHRoZSBIUkNXIElTQiBmaWVsZCBmcm9tIENGR19JTU1SICovCi0jZGVmaW5lIENGR19QUE1DX0hSQ1dfSU1NUgkoICgoQ0ZHX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfCBcCi0JCQkJICAoKENGR19JTU1SICYgMHgwMTAwMDAwMCkgPj4gIDcpIHwgXAotCQkJCSAgKChDRkdfSU1NUiAmIDB4MDAxMDAwMDApID4+ICA0KSApCisvKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ09ORklHX1NZU19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfUFBNQ19IUkNXX0lNTVIJKCAoKENPTkZJR19TWVNfSU1NUiAmIDB4MTAwMDAwMDApID4+IDEwKSB8IFwKKwkJCQkgICgoQ09ORklHX1NZU19JTU1SICYgMHgwMTAwMDAwMCkgPj4gIDcpIHwgXAorCQkJCSAgKChDT05GSUdfU1lTX0lNTVIgJiAweDAwMTAwMDAwKSA+PiAgNCkgKQogCi0jZGVmaW5lIENGR19IUkNXX01BU1RFUgkJKCBIUkNXX0VCTQkJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKCBIUkNXX0VCTQkJCQl8IFwKIAkJCQkgIEhSQ1dfQlBTMTEJCQkJfCBcCiAJCQkJICBIUkNXX0wyQ1BDMTAJCQkJfCBcCiAJCQkJICBIUkNXX0RQUEMwMAkJCQl8IFwKLQkJCQkgIENGR19QUE1DX0hSQ1dfSU1NUgkJCXwgXAorCQkJCSAgQ09ORklHX1NZU19QUE1DX0hSQ1dfSU1NUgkJCXwgXAogCQkJCSAgSFJDV19NTVIwMAkJCQl8IFwKIAkJCQkgIEhSQ1dfTEJQQzAwCQkJCXwgXAogCQkJCSAgSFJDV19BUFBDMTAJCQkJfCBcCiAJCQkJICBIUkNXX0NTMTBQQzAwCQkJCXwgXAotCQkJCSAgKENGR19QUE1DX01PRENLX0ggJiBIUkNXX01PRENLX0gxMTExKSB8IFwKLQkJCQkgIENGR19QUE1DX0hSQ1dfQk9PVF9GTEFHUyApCisJCQkJICAoQ09ORklHX1NZU19QUE1DX01PRENLX0ggJiBIUkNXX01PRENLX0gxMTExKSB8IFwKKwkJCQkgIENPTkZJR19TWVNfUFBNQ19IUkNXX0JPT1RfRkxBR1MgKQogCiAvKiBubyBzbGF2ZXMgKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUxCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU0CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU3CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTEJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU2CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTcJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCi0gKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENGR19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4KKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENPTkZJR19TWVNfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCiAgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0gwX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSDBfQkFTRQogCi0jaWZuZGVmIENGR19NT05JVE9SX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkweDBmZjgwMDAwCisjaWZuZGVmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MGZmODAwMDAKICNlbmRpZgogCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgIGRlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyMgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAzNzQga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDM3NCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19GTEFTSF9JTkNSRU1FTlQJMAkvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxICAgIC8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQJMAkvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgICAgLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAgICovCiAKIAotI2lmbmRlZiBDRkdfUkFNQk9PVAorI2lmbmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKIAogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogIyAgaWZkZWYgQ09ORklHX0VOVl9JTl9PV05fU0VDVAotIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKyMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogIyAgICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAogIyAgZWxzZQotIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSIChDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJMHgxMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwIC8qIHNlZSBSRUFETUUgLSBlbnYgc2VjdCByZWFsIHNpemUJKi8KICMgIGVuZGlmIC8qIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QgKi8KIAogI2Vsc2UKICMgIGRlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwMDApCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAKICMgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCi0jZW5kaWYgLyogQ0ZHX1JBTUJPT1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1JBTUJPT1QgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotIyBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDk4LDMwICs0OTgsMzAgQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJKEhJRDBfSUNFICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkoSElEMF9JQ0UgIHxcCiAJCQkgSElEMF9EQ0UgIHxcCiAJCQkgSElEMF9JQ0ZJIHxcCiAJCQkgSElEMF9EQ0kgIHxcCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUpCiAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJKEhJRDBfSUNFICB8XAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJKEhJRDBfSUNFICB8XAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFICB8XAogCQkJIEhJRDBfRU1DUCkKLSNkZWZpbmUgQ0ZHX0hJRDIJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSTVIgLSBSZXNldCBNb2RlIFJlZ2lzdGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JNUgkJMAorI2RlZmluZSBDT05GSUdfU1lTX1JNUgkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCQ1IgLSBCdXMgQ29uZmlndXJhdGlvbgkJCQkJIDQtMjUKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfQkNSCQkoQkNSX0VCTSAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0VCTSAgICAgIHxcCiAJCQkgMHgzMDAwMDAwMCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTMwLDcgKzUzMCw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRVNFCSB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0VTRQkgfFwKIAkJCSBTSVVNQ1JfRFBQQzAwCSB8XAogCQkJIFNJVU1DUl9MMkNQQzEwCSB8XAogCQkJIFNJVU1DUl9MQlBDMDAJIHxcCkBAIC01NDYsNyArNTQ2LDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfFwKIAkJCSBTWVBDUl9CTVQgIHxcCiAJCQkgU1lQQ1JfUEJNRSB8XAogCQkJIFNZUENSX0xCTUUgfFwKQEAgLTU1OSw3ICs1NTksNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQwkoVE1DTlRTQ19TRUMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCShUTUNOVFNDX1NFQyB8XAogCQkJIFRNQ05UU0NfQUxSIHxcCiAJCQkgVE1DTlRTQ19UQ0YgfFwKIAkJCSBUTUNOVFNDX1RDRSkKQEAgLTU3MCw3ICs1NzAsNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyAgfFwKIAkJCSBQSVNDUl9QVEYgfFwKIAkJCSBQSVNDUl9QVEUpCiAKQEAgLTU3OCwxMyArNTc4LDEzIEBACiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wJCQkJCSA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0NDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbgkJCQkxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IJMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJMAogCiAvKgogICogSW5pdGlhbGl6ZSBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTYzNSw3ICs2MzUsNyBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMzIJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQpAQCAtNjU0LDcgKzY1NCw3IEBACiAgKiAgICAgLSBPbmUgaWRsZSBjbG9jayBpcyBpbnNlcnRlZCBiZXR3ZWVuIGEgcmVhZCBhY2Nlc3MgZnJvbSB0aGUKICAqCSBjdXJyZW50IGJhbmsgYW5kIHRoZSBuZXh0IGFjY2Vzcy4KICAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoTUVHX1RPX0FNKENGR19GTEFTSDBfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSDBfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTY4NSwxMiArNjg1LDEyIEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKENGR19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU182NAkJCXxcCiAJCQkgQlJ4X01TX1NEUkFNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoQ0ZHX1NEUkFNMV9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTTFfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCkBAIC03MDUsMTIgKzcwNSwxMiBAQAogICogICAgIC0gSW50ZXJuYWwgYmFuayBpbnRlcmxlYXZpbmcgd2l0aGluIHNhdmUgZGV2aWNlIGVuYWJsZWQKICAqLwogCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCShNRUdfVE9fQU0oQ0ZHX1NEUkFNMF9TSVpFKQl8XAorI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JKE1FR19UT19BTShDT05GSUdfU1lTX1NEUkFNMF9TSVpFKQl8XAogCQkJIE9SeFNfQlBEXzQJCQl8XAogCQkJIE9SeFNfUk9XU1RfUEJJMF9BNwkJfFwKIAkJCSBPUnhTX05VTVJfMTMpCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JKE1FR19UT19BTShDRkdfU0RSQU0xX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkoTUVHX1RPX0FNKENPTkZJR19TWVNfU0RSQU0xX1NJWkUpCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E3CQl8XAogCQkJIE9SeFNfTlVNUl8xMykKQEAgLTc0MSw3ICs3NDEsNyBAQAogICogICAgIC0gRXh0ZXJuYWwgQWRkcmVzcyBNdWx0aXBsZXhpbmcgZW5hYmxlZAogICogICAgIC0gQ0FTIExhdGVuY3kgaXMgMi4KICAqLwotI2RlZmluZSBDRkdfUFNETVIJKFBTRE1SX1JGRU4JICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkoUFNETVJfUkZFTgkgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE0X0lTX0E1IHxcCiAJCQkgUFNETVJfQlNNQV9BMTNfQTE1ICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0E5ICB8XApAQCAtNzU0LDggKzc1NCw4IEBACiAJCQkgUFNETVJfQ0xfMikKIAogCi0jZGVmaW5lIENGR19QU1JUCTB4MGUKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYzMgorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJMHgwZQorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYzMgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTc4Myw3ICs3ODMsNyBAQAogICoKICAqLwogCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCSgoQ0ZHX1NEUkFNMl9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTTJfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzMyCQkJfFwKIAkJCSBCUnhfREVDQ19OT05FCQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fTAkJCXxcCkBAIC03OTgsNyArNzk4LDcgQEAKICAqICAgICAtIEludGVybmFsIGJhbmsgaW50ZXJsZWF2aW5nIHdpdGhpbiBzYXZlIGRldmljZSBlbmFibGVkCiAgKi8KIAotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkoTUVHX1RPX0FNKENGR19TRFJBTTJfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTJfU0laRSkJfFwKIAkJCSBPUnhTX0JQRF80CQkJfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTEwCQl8XAogCQkJIE9SeFNfTlVNUl8xMikKQEAgLTgzMCw3ICs4MzAsNyBAQAogICogICAgIC0gRXh0ZXJuYWwgQWRkcmVzcyBNdWx0aXBsZXhpbmcgZGlzYWJsZWQKICAqICAgICAtIENBUyBMYXRlbmN5IGlzIDIuCiAgKi8KLSNkZWZpbmUgQ0ZHX0xTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVIJKFBTRE1SX1JGRU4JICAgICAgfFwKIAkJCSBQU0RNUl9TREFNX0ExM19JU19BNSB8XAogCQkJIFBTRE1SX0JTTUFfQTE1X0ExNyAgIHxcCiAJCQkgUFNETVJfU0RBMTBfUEJJMF9BMTEgfFwKQEAgLTg0Miw3ICs4NDIsNyBAQAogCQkJIFBTRE1SX1dSQ18xQwkgICAgICB8XAogCQkJIFBTRE1SX0NMXzIpCiAKLSNkZWZpbmUgQ0ZHX0xTUlQJMHgwZQorI2RlZmluZSBDT05GSUdfU1lTX0xTUlQJMHgwZQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCUjUgLSBCYXNlIFJlZ2lzdGVyCkBAIC04NzMsNyArODczLDcgQEAKICAqICAgICAtIFZhbGlkCiAgKi8KIAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkoKENGR19NQUlMQk9YX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JKChDT05GSUdfU1lTX01BSUxCT1hfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzgJCQkgfFwKIAkJCSBCUnhfREVDQ19OT05FCQkJIHxcCiAJCQkgQlJ4X01TX0dQQ01fUAkJCSB8XApAQCAtODkxLDcgKzg5MSw3IEBACiAgKgkgY3VycmVudCBiYW5rIGFuZCB0aGUgbmV4dCBhY2Nlc3MuCiAgKi8KIAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTSAoKFAyU1pfVE9fQU0oQ0ZHX01BSUxCT1hfU0laRSkgJiB+MHg4MDAwMDAwMCkgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNICgoUDJTWl9UT19BTShDT05GSUdfU1lTX01BSUxCT1hfU0laRSkgJiB+MHg4MDAwMDAwMCkgfFwKIAkJCSBPUnhHX0FDU19ESVYyCQkJCSAgICAgfFwKIAkJCSBPUnhHX1NDWV8xNV9DTEsJCQkgICAgIHxcCiAJCQkgT1J4R19UUkxYCQkJCSAgICAgfFwKQEAgLTkyMSw3ICs5MjEsNyBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JKChDRkdfSU9TRUxFQ1RfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkoKENPTkZJR19TWVNfSU9TRUxFQ1RfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgICBCUnhfUFNfMTYJCQkgIHxcCiAJCQkgICBCUnhfTVNfR1BDTV9QCQkgIHxcCiAJCQkgICBCUnhfVikKQEAgLTkzOSw3ICs5MzksNyBAQAogICoJIGN1cnJlbnQgYmFuayBhbmQgdGhlIG5leHQgYWNjZXNzLgogICovCiAKLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0gKE1FR19UT19BTShDRkdfSU9TRUxFQ1RfU0laRSkgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNIChNRUdfVE9fQU0oQ09ORklHX1NZU19JT1NFTEVDVF9TSVpFKSB8XAogCQkJIE9SeEdfQUNTX0RJVjIJCSAgICAgfFwKIAkJCSBPUnhHX1NDWV8xNV9DTEsJICAgICB8XAogCQkJIE9SeEdfVFJMWAkJICAgICB8XApAQCAtOTU5LDcgKzk1OSw3IEBACiAgKiAgTEVEcyAgICAgYXJlIGF0IDB4MDAwMDEgKHdyaXRlIG9ubHkpCiAgKiAgc3dpdGNoZXMgYXJlIGF0IDB4MDAwMDEgKHJlYWQgb25seSkKICAqLwotI2lmZGVmIENGR19MRURfQkFTRQorI2lmZGVmIENPTkZJR19TWVNfTEVEX0JBU0UKIAogLyogQlI3IGlzIGNvbmZpZ3VyZWQgYXMgZm9sbG93czoKICAqCkBAIC05NzMsNyArOTczLDcgQEAKICAqICAgICAtIE5vIGRhdGEgcGlwZWxpbmluZyBpcyBkb25lCiAgKiAgICAgLSBWYWxpZAogICovCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCSgoQ0ZHX0xFRF9CQVNFICYgQlJ4X0JBX01TSykJIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTQkoKENPTkZJR19TWVNfTEVEX0JBU0UgJiBCUnhfQkFfTVNLKQkgfFwKIAkJCSAgIEJSeF9QU184CQkJIHxcCiAJCQkgICBCUnhfREVDQ19OT05FCQkgfFwKIAkJCSAgIEJSeF9NU19HUENNX1AJCSB8XApAQCAtOTkzLDEzICs5OTMsMTMgQEAKICAqICAgICAtIE9uZSBpZGxlIGNsb2NrIGlzIGluc2VydGVkIGJldHdlZW4gYSByZWFkIGFjY2VzcyBmcm9tIHRoZQogICoJIGN1cnJlbnQgYmFuayBhbmQgdGhlIG5leHQgYWNjZXNzLgogICovCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCShPUnhHX0FNX01TSwkJICAgICAgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkoT1J4R19BTV9NU0sJCSAgICAgICB8XAogCQkJIE9SeEdfQ1NOVAkJICAgICAgIHxcCiAJCQkgT1J4R19BQ1NfRElWMQkJICAgICAgIHxcCiAJCQkgT1J4R19TQ1lfMTVfQ0xLCSAgICAgICB8XAogCQkJIE9SeEdfVFJMWAkJICAgICAgIHxcCiAJCQkgT1J4R19FSFRSKQotI2VuZGlmIC8qIENGR19MRURfQkFTRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTEVEX0JBU0UgKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcHVycGxlLmggYi9pbmNsdWRlL2NvbmZpZ3MvcHVycGxlLmgKaW5kZXggNWNjNGZjNy4uMjU3M2FhMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3B1cnBsZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9wdXJwbGUuaApAQCAtNDMsNyArNDMsNyBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTE5MjAwCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKQEAgLTk5LDQ5ICs5OSw0OSBAQAogI2RlZmluZSBDT05GSUdfQ01EX0VMRgogCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDgwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgMHg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIDB4NDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCTEyOCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJMTI4KjEwMjQKIAotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJQVVJQTEUgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01JUFNfVElNRVJfRlJFUQkoQ1BVX0NMT0NLX1JBVEUvMikKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiUFVSUExFICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpICAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01JUFNfVElNRVJfRlJFUQkoQ1BVX0NMT0NLX1JBVEUvMikKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4ODA1MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ODA1MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDgwMjAwMDAwCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHg4MDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHg4MDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDgwODAwMDAwCiAKICNkZWZpbmUJQ09ORklHX01JU0NfSU5JVF9SCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgzNSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMzUpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHhiMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgI2RlZmluZXMgYXJlIG5lZWRlZCB0byBnZXQgZmxhc2ggZW52aXJvbm1lbnQgcmlnaHQgKi8KLSNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNiAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDYgKiBDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoNiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoNiAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKQEAgLTE1OCwxNiArMTU4LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkxNjM4NAotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAKIC8qCiAgKiBUZW1wb3JhcnkgYnVmZmVyIGZvciBzZXJpYWwgZGF0YSB1bnRpbCB0aGUgcmVhbCBzZXJpYWwgZHJpdmVyCiAgKiBpcyBpbml0aWFsaXNlZCAobWVtdGVzdCB3aWxsIGRlc3Ryb3kgdGhpcyBidWZmZXIpCiAgKi8KLSNkZWZpbmUgQ0ZHX1NDT05TT0xFX0FERFIgICAgIChDRkdfU0RSQU1fQkFTRSArIENGR19JTklUX1NQX09GRlNFVCAtIFwKLQkJCSAgICAgICBDRkdfRENBQ0hFX1NJWkUgLyAyKQotI2RlZmluZSBDRkdfU0NPTlNPTEVfU0laRSAgICAgKENGR19EQ0FDSEVfU0laRSAvIDQpCisjZGVmaW5lIENPTkZJR19TWVNfU0NPTlNPTEVfQUREUiAgICAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgLSBcCisJCQkgICAgICAgQ09ORklHX1NZU19EQ0FDSEVfU0laRSAvIDIpCisjZGVmaW5lIENPTkZJR19TWVNfU0NPTlNPTEVfU0laRSAgICAgKENPTkZJR19TWVNfRENBQ0hFX1NJWkUgLyA0KQogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3B4YTI1NV9pZHAuaCBiL2luY2x1ZGUvY29uZmlncy9weGEyNTVfaWRwLmgKaW5kZXggMWFmZmY1ZS4uZjgxMTAzYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3B4YTI1NV9pZHAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcHhhMjU1X2lkcC5oCkBAIC03MSw4ICs3MSw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIFBYQTI1MCBJRFAgbWVtb3J5IG1hcCBpbmZvcm1hdGlvbgpAQCAtMjE5LDM3ICsyMTksMzcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFQJCSIkICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHhhMDgwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHhhMDgwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDE2MQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gNDAwLzIwMC8xMDAgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MTYxCQkvKiBzZXQgY29yZSBjbG9jayB0byA0MDAvMjAwLzEwMCBNSHogKi8KIAogI2RlZmluZSBSVEMJMQkJCQkvKiBlbmFibGUgMzJLSHogb3NjICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotI2RlZmluZSBDRkdfTU1DX0JBU0UJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NTUNfQkFTRQkJMHhGMDAwMDAwMAogCiAvKgogICogU3RhY2sgc2l6ZXMKQEAgLTI4MSw3MSArMjgxLDcxIEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfQkFOS19TSVpFCTB4MDIwMDAwMDAgLyogMzIgTUIgQmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDA0MDAwMCAvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkweDA0MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKgogICogR1BJTyBzZXR0aW5ncwogICovCiAKLSNkZWZpbmUgQ0ZHX0dBRlIwX0xfVkFMCTB4ODAwMDEwMDUKLSNkZWZpbmUgQ0ZHX0dBRlIwX1VfVkFMCTB4YTUxMjgwMTIKLSNkZWZpbmUgQ0ZHX0dBRlIxX0xfVkFMCTB4Njk5YTk1NTgKLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMCTB4YWFhNWFhNmEKLSNkZWZpbmUgQ0ZHX0dBRlIyX0xfVkFMCTB4YWFhYWFhYWEKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMCTB4MgotI2RlZmluZSBDRkdfR1BDUjBfVkFMCTB4MTgwMDQwMAotI2RlZmluZSBDRkdfR1BDUjFfVkFMCTB4MAotI2RlZmluZSBDRkdfR1BDUjJfVkFMCTB4MAotI2RlZmluZSBDRkdfR1BEUjBfVkFMCTB4YzE4MTg0NDAKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTAkweGZjZmZhYjgyCi0jZGVmaW5lIENGR19HUERSMl9WQUwJMHgxZmZmZgotI2RlZmluZSBDRkdfR1BTUjBfVkFMCTB4ODAwMAotI2RlZmluZSBDRkdfR1BTUjFfVkFMCTB4M2YwMDAyCi0jZGVmaW5lIENGR19HUFNSMl9WQUwJMHgxYzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMCTB4ODAwMDEwMDUKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTAkweGE1MTI4MDEyCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfTF9WQUwJMHg2OTlhOTU1OAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX1VfVkFMCTB4YWFhNWFhNmEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTAkweGFhYWFhYWFhCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwJMHgyCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMCTB4MTgwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTAkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMl9WQUwJMHgwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMCTB4YzE4MTg0NDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwJMHhmY2ZmYWI4MgorI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTAkweDFmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMCTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTAkweDNmMDAwMgorI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTAkweDFjMDAwCiAKLSNkZWZpbmUgQ0ZHX1BTU1JfVkFMCQkweDIwCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwJCTB4MjAKIAogLyoKICAqIE1lbW9yeSBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkJMHgyOURDQTREMgotI2RlZmluZSBDRkdfTVNDMV9WQUwJCTB4NDNBQzQ5NEMKLSNkZWZpbmUgQ0ZHX01TQzJfVkFMCQkweDM5RDQ0OUQ0Ci0jZGVmaW5lIENGR19NRENORkdfVkFMCQkweDA5MDAwOUM5Ci0jZGVmaW5lIENGR19NRFJFRlJfVkFMCQkweDAwODVDMDE3Ci0jZGVmaW5lIENGR19NRE1SU19WQUwJCTB4MDAyMjAwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MwX1ZBTAkJMHgyOURDQTREMgorI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMCQkweDQzQUM0OTRDCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMl9WQUwJCTB4MzlENDQ5RDQKKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMCQkweDA5MDAwOUM5CisjZGVmaW5lIENPTkZJR19TWVNfTURSRUZSX1ZBTAkJMHgwMDg1QzAxNworI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTAkJMHgwMDIyMDAyMgogCiAvKgogICogUENNQ0lBIGFuZCBDRiBJbnRlcmZhY2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX01FQ1JfVkFMCQkweDAwMDAwMDAzCi0jZGVmaW5lIENGR19NQ01FTTBfVkFMCQkweDAwMDE0NDA1Ci0jZGVmaW5lIENGR19NQ01FTTFfVkFMCQkweDAwMDE0NDA1Ci0jZGVmaW5lIENGR19NQ0FUVDBfVkFMCQkweDAwMDE0NDA1Ci0jZGVmaW5lIENGR19NQ0FUVDFfVkFMCQkweDAwMDE0NDA1Ci0jZGVmaW5lIENGR19NQ0lPMF9WQUwJCTB4MDAwMTQ0MDUKLSNkZWZpbmUgQ0ZHX01DSU8xX1ZBTAkJMHgwMDAxNDQwNQorI2RlZmluZSBDT05GSUdfU1lTX01FQ1JfVkFMCQkweDAwMDAwMDAzCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0wX1ZBTAkJMHgwMDAxNDQwNQorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMV9WQUwJCTB4MDAwMTQ0MDUKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDBfVkFMCQkweDAwMDE0NDA1CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQxX1ZBTAkJMHgwMDAxNDQwNQorI2RlZmluZSBDT05GSUdfU1lTX01DSU8wX1ZBTAkJMHgwMDAxNDQwNQorI2RlZmluZSBDT05GSUdfU1lTX01DSU8xX1ZBTAkJMHgwMDAxNDQwNQogCiAvKgogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCVBIWVNfRkxBU0hfU0VDVF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJUEhZU19GTEFTSF9TRUNUX1NJWkUKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjggIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKIC8qIHB1dCBjZmcgYXQgZW5kIG9mIGZsYXNoIGZvciBub3cgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcWVtdS1taXBzLmggYi9pbmNsdWRlL2NvbmZpZ3MvcWVtdS1taXBzLmgKaW5kZXggZmFhYTg4OS4uZjAyOGQxYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3FlbXUtbWlwcy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9xZW11LW1pcHMuaApAQCAtNDEsNyArNDEsNyBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX1RJTUVTVEFNUAkJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRpbWVzdGFtcCAqLwogI3VuZGVmIENPTkZJR19CT09UQVJHUwpAQCAtNzksNzggKzc5LDc4IEBACiAjZGVmaW5lIENPTkZJR19EUklWRVJfTkUyMDAwCiAjZGVmaW5lIENPTkZJR19EUklWRVJfTkUyMDAwX0JBU0UJKDB4YjQwMDAzMDApCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoMHhiNDAwMDNmOCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJMTE1MjAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCSgweGI0MDAwM2Y4KQogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAKICNkZWZpbmUgQ09ORklHX0NNRF9JREUKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMgotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCSgweDFmMCkKLSNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVAkoMHgxNzApCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKDApCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMCkKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJKDB4YjQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkoMHgxZjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCSgweDE3MCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKDApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkoMHhiNDAwMDAwMCkKIAotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkoNCkKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCSg0KQogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICovCiAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJInFlbXUtbWlwcyAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJInFlbXUtbWlwcyAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCiAKLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCTEyOCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJMTI4KjEwMjQKIAotI2RlZmluZSBDRkdfQk9PVFBBUkFNU19MRU4JMTI4KjEwMjQKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUEFSQU1TX0xFTgkxMjgqMTAyNAogCi0jZGVmaW5lIENGR19NSFoJCQkxMzIKKyNkZWZpbmUgQ09ORklHX1NZU19NSFoJCQkxMzIKIAotI2RlZmluZSBDRkdfTUlQU19USU1FUl9GUkVRCShDRkdfTUhaICogMTAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NSVBTX1RJTUVSX0ZSRVEJKENPTkZJR19TWVNfTUhaICogMTAwMDAwMCkKIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAJLyogQ2FjaGVkIGFkZHIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDgwMDAwMDAwCS8qIENhY2hlZCBhZGRyICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHg4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4ODAxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDgwODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDgwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgI2RlZmluZXMgYXJlIG5lZWRlZCB0byBnZXQgZmxhc2ggZW52aXJvbm1lbnQgcmlnaHQgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkweDQwMDAwMAogCiAvKiBXZSBib290IGZyb20gdGhpcyBmbGFzaCwgc2VsZWN0ZWQgd2l0aCBkaXAgc3dpdGNoICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGJmYzAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4Ci0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweGJmYzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggbWVtb3J5IGlzIENGSSBjb21wbGlhbnQgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMCkKIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBQcmltYXJ5IEVudmlyb25tZW50IFNlY3RvciAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4ODAwMApAQCAtMTY2LDggKzE2Niw4IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkxNjM4NAotI2RlZmluZSBDRkdfSUNBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgorI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0lDQUNIRV9TSVpFCQkxNjM4NAorI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcXVhZDEwMGhkLmggYi9pbmNsdWRlL2NvbmZpZ3MvcXVhZDEwMGhkLmgKaW5kZXggMmU3M2ZmNy4uMWE3NjMwMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3F1YWQxMDBoZC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9xdWFkMTAwaGQuaApAQCAtNDksNyArNDksNyBAQAogI2RlZmluZSBDT05GSUdfSEFTX0VUSDEJCTEKICNkZWZpbmUgQ09ORklHX01JSQkJMQkvKiBNSUkgUEhZIG1hbmFnZW1lbnQJCSovCiAjZGVmaW5lIENPTkZJR19QSFlfQUREUgkJMHgwMQkvKiBQSFkgYWRkcmVzcwkJCSovCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVAkxCiAjZGVmaW5lIENPTkZJR19QSFlfUkVTRVRfREVMQVkJMzAwCS8qIFBIWSBSRVNFVCByZWNvdmVyeSBkZWxheQkqLwogCkBAIC04NCw1OSArODQsNTkgQEAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswICAxCiAKIC8qIEZJWCEgU0RSQU0gdGltaW5ncyB1c2VkIGluIGRhdGFzaGVldCAqLwotI2RlZmluZSBDRkdfU0RSQU1fQ0wgICAgICAgICAgICAzICAgICAgIC8qIENBUyBsYXRlbmN5ICovCi0jZGVmaW5lIENGR19TRFJBTV90UlAgICAgICAgICAgIDIwICAgICAgLyogUFJFQ0hBUkdFIGNvbW1hbmQgcGVyaW9kICovCi0jZGVmaW5lIENGR19TRFJBTV90UkMgICAgICAgICAgIDY2ICAgICAgLyogQUNUSVZFLXRvLUFDVElWRSBjb21tYW5kIHBlcmlvZCAqLwotI2RlZmluZSBDRkdfU0RSQU1fdFJDRCAgICAgICAgICAyMCAgICAgIC8qIEFDVElWRS10by1SRUFEIGRlbGF5ICovCi0jZGVmaW5lIENGR19TRFJBTV90UkZDICAgICAgICAgIDY2ICAgICAgLyogQXV0byByZWZyZXNoIHBlcmlvZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NMICAgICAgICAgICAgMyAgICAgICAvKiBDQVMgbGF0ZW5jeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSUCAgICAgICAgICAgMjAgICAgICAvKiBQUkVDSEFSR0UgY29tbWFuZCBwZXJpb2QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV90UkMgICAgICAgICAgIDY2ICAgICAgLyogQUNUSVZFLXRvLUFDVElWRSBjb21tYW5kIHBlcmlvZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSQ0QgICAgICAgICAgMjAgICAgICAvKiBBQ1RJVkUtdG8tUkVBRCBkZWxheSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSRkMgICAgICAgICAgNjYgICAgICAvKiBBdXRvIHJlZnJlc2ggcGVyaW9kICovCiAKIC8qCiAgKiBKRkZTMgogICovCi0jZGVmaW5lIENGR19KRkZTMl9GSVJTVF9CQU5LICAgIDAKLSNpZmRlZiAgQ0ZHX0tFUk5FTF9JTl9KRkZTMgotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SICAwICAgLyogSkZGUyBzdGFydHMgYXQgYmxvY2sgMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX0JBTksgICAgMAorI2lmZGVmICBDT05GSUdfU1lTX0tFUk5FTF9JTl9KRkZTMgorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUiAgMCAgIC8qIEpGRlMgc3RhcnRzIGF0IGJsb2NrIDAgKi8KICNlbHNlIC8qIGtlcm5lbCBub3QgaW4gSkZGUyAqLwotI2RlZmluZSBDRkdfSkZGUzJfRklSU1RfU0VDVE9SICA4ICAgLyogYmxvY2sgMC03IGlzIGtlcm5lbCAoMU1CID0gOCBzZWN0b3JzKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUiAgOCAgIC8qIGJsb2NrIDAtNyBpcyBrZXJuZWwgKDFNQiA9IDggc2VjdG9ycykgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfTlVNX0JBTktTICAgICAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNlcmlhbCBQb3J0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI3VuZGVmCUNGR19FWFRfU0VSSUFMX0NMT0NLCQkJLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJCTY5MTIwMAorI3VuZGVmCUNPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkJCS8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBU0VfQkFVRAkJNjkxMjAwCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCiAjZGVmaW5lIENPTkZJR19TRVJJQUxfTVVMVEkKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCVwKIAl7MzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkgICAgICAgICI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCSAgICAgICAgMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAgICAgICAgICAgICAgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkgICAgICAgIENGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAgICAgICAgICAgICAgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkgICAgICAgIDE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJICAgICAgICBDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwIC8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMCAvKiBtZW10ZXN0IHdvcmtzIG9uCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCQkxCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KICNkZWZpbmUgQ09ORklHX0xPT1BXICAgICAgICAgICAgMSAgICAgICAvKiBlbmFibGUgbG9vcHcgY29tbWFuZCAgICAgICAgICovCkBAIC0xNDksNTMgKzE0OSw1MyBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYJQ09ORklHX1NPRlRfSTJDCQkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogYmFzZSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTIJCS8qIGJ5dGVzIG9mIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAkJLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkyCQkvKiBieXRlcyBvZiBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA4IGJ5dGUgd3JpdGUgcGFnZSBzaXplICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1NJWkUJCQkweDIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogOCBieXRlIHdyaXRlIHBhZ2Ugc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1NJWkUJCQkweDIwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZDMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoVEVYVF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKFRFWFRfQkFTRSkKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUJQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UICAgICAgMCAgICAgICAvKiB0aGVyZSBpcyBvbmx5IG9uZSBiYW5rICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9JTkNSRU1FTlQgICAgICAwICAgICAgIC8qIHRoZXJlIGlzIG9ubHkgb25lIGJhbmsgICAgICAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaCAqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwpAQCAtMjEwLDIxICsyMTAsMjEgQEAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0VFUFJPTQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwCQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VOQUJMRV9DUkNfMTYJMSAgICAgICAvKiBJbnRyaW5zeWMgZm9ybWF0dGluZyB1c2VkIGNyYzE2ICovCisjZGVmaW5lIENPTkZJR19TWVNfRU5BQkxFX0NSQ18xNgkxICAgICAgIC8qIEludHJpbnN5YyBmb3JtYXR0aW5nIHVzZWQgY3JjMTYgKi8KICNlbmRpZgogCiAvKiBwYXJ0bHkgZnJvbSBQUENCb290ICovCiAvKiBOQU5EICovCiAjZGVmaW5lIENPTkZJR19OQU5ECiAjaWZkZWYgQ09ORklHX05BTkQKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRSAgIDB4NjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfQ1MJMTAgICAvKiBvdXIgQ1MgaXMgR1BJTzEwICovCi0jZGVmaW5lIENGR19OQU5EX1JEWQkyMyAgIC8qIG91ciBSRFkgaXMgR1BJTzIzICovCi0jZGVmaW5lIENGR19OQU5EX0NFCTI0ICAgLyogb3VyIENFIGlzIEdQSU8yNCAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQ0xFCTMxICAgLyogb3VyIENMRSBpcyBHUElPMzEgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQUxFCTMwICAgLyogb3VyIEFMRSBpcyBHUElPMzAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UgICAweDYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkxMCAgIC8qIG91ciBDUyBpcyBHUElPMTAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1JEWQkyMyAgIC8qIG91ciBSRFkgaXMgR1BJTzIzICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DRQkyNCAgIC8qIG91ciBDRSBpcyBHUElPMjQgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DTEUJMzEgICAvKiBvdXIgQ0xFIGlzIEdQSU8zMSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUxFCTMwICAgLyogb3VyIEFMRSBpcyBHUElPMzAgKi8KICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJMQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzMiwxNyArMjMyLDE3IEBACiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoT0NNKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwogLyogc2VlIC4vY3B1L3BwYzR4eC9zdGFydC5TICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgT0NNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfU0laRQkweDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgT0NNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVCAgICAgIENGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCAgICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCkBAIC0yNTAsMTcgKzI1MCwxNyBAQAogICovCiAKIC8qIHNlZSAuL2NwdS9wcGM0eHgvY3B1X2luaXQuYyAuL2NwdS9wcGM0eHgvbmRmYy5jICovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4MDQwMDI0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDQwMDI0ODAKIC8qIEFNRCBOT1IgZmxhc2ggLSB0aGlzIGNvcnJlc3BvbmRzIHRvIEZMQVNIX0JBU0Ugc28gbWF5IGJlIGNvcnJlY3QgKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkM1QTAwMAotI2RlZmluZSBDRkdfRUJDX1BCMUFQICAgICAgICAgICAweDA0MDA1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIxQ1IgICAgICAgICAgIDB4NjAwMTgwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUCAgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRUJDX1BCMkNSICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEIzQVAgICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUiAgICAgICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRUJDX1BCNEFQICAgICAgICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19FQkNfUEI0Q1IgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCTB4RkZDNUEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAgICAgICAgIDB4MDQwMDU0ODAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAgICAgICAgIDB4NjAwMTgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0QVAgICAgICAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEI0Q1IgICAgICAgICAgIDB4MDAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIEdQSU8gc2V0dXAgKFBQQzQwNUVQIHNwZWNpZmljKQpAQCAtMjY4LDE0ICsyNjgsMTQgQEAKICAqIFRha2VuIGluIHBhcnQgZnJvbSBQUENCb290IGJvYXJkL2ljZWN1YmUvaWNlY3ViZS5oCiAgKi8KIC8qIHNlZSAuL2NwdS9wcGM0eHgvY3B1X2luaXQuYyAuL2NwdS9wcGM0eHgvc3RhcnQuUyAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSSAkJMHg1NTU1NTU1MAotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQSU8wX0lTUjFMCQkweDE1NTU1NDQ1Ci0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4RkZGRjgwOTcKLSNkZWZpbmUgQ0ZHX0dQSU8wX09EUgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkgJCTB4NTU1NTU1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JMCQkweDAwMDAwMTEwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfSVNSMUgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNTU1NTQ0NQorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkgJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UU1JMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVENSCQkweEZGRkY4MDk3CisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT0RSCQkweDAwMDAwMDAwCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKICNkZWZpbmUgQ09ORklHX0tHREJfQkFVRFJBVEUJMjMwNDAwCQkvKiBzcGVlZCB0byBydW4ga2dkYiBzZXJpYWwgcG9ydCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3F1YW50dW0uaCBiL2luY2x1ZGUvY29uZmlncy9xdWFudHVtLmgKaW5kZXggZjI2NDYxNS4uZTQ0MGU5MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3F1YW50dW0uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvcXVhbnR1bS5oCkBAIC03MiwxMCArNzIsMTAgQEAKIC8qCiAgKiBTZWxlY3QgdGhlIG1vcmUgZnVsbC1mZWF0dXJlZCBtZW1vcnkgdGVzdCAoQmFyciBlbWJlZGRlZCBzeXN0ZW1zKQogICovCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAKIC8qIE00OFQwMiBQYXJhbGxlZCBhY2Nlc3MgdGltZWtlZXBlciB3aXRoIHNhbWUgaW50ZXJmYWNlIGFzIHRoZSBNNDhUMzVBKi8KQEAgLTg4LDggKzg4LDggQEAKICNlbmRpZgogCiAvKiAgTlZSQU0gYW5kIFJUQyAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSIDB4RkEwMDAwMDAKLSNkZWZpbmUgQ0ZHX05WUkFNX1NJWkUgMjA0OAorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAweEZBMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRSAyMDQ4CiAKIAogLyoKQEAgLTEyMiwyNSArMTIyLDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDA0MDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMWYwMDAwMAkvKiAyNTZLIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDQwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMWYwMDAwMAkvKiAyNTZLIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNTAsMjQgKzE1MCwyNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZBMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGQTIwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkweEZGMDAwMDAwCiAKICNpZiAxCiAgICAgI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgpAQCAtMTc3LDQyICsxNzcsNDIgQEAKIAogCiAjaWZkZWYgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSAgICAjZGVmaW5lIENGR19GTEFTSF9DRkkgMQotICAgICN1bmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQotICAgICNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1Qge0NGR19GTEFTSF9CQVNFfQorICAgICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkgMQorICAgICN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVCB7Q09ORklHX1NZU19GTEFTSF9CQVNFfQogI2VuZGlmCiAKLS8qJSUlICNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkZGMDAwMDAgKi8KKy8qJSUlICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRjAwMDAwICovCiAjaWYgZGVmaW5lZChERUJVRykgfHwgZGVmaW5lZChDT05GSUdfQ01EX0lERSkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgTW9uaXRvcgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMHhGRkYwMDAwMAotLyolJSUgI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHhGRkYwMDAwMAorLyolJSUgI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkgICAgMHgwMEY0MDAwMAkvKiAgIE9mZnNldCAgIG9mIEVudmlyb25tZW50IFNlY3RvcglhYnNvbHV0ZSBhZGRyZXNzIDB4ZmZmNDAwMDAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ09ORklHX0VOVl9TRUNUX1NJWkUKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0laRSkKQEAgLTIyMCwyMSArMjIwLDIxIEBACiAKIC8qIEZQR0EgKi8KICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCi0jZGVmaW5lIENGR19GUEdBX1NQQVJUQU4yCi0jZGVmaW5lIENGR19GUEdBX1BST0dfRkVFREJBQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX1NQQVJUQU4yCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9QUk9HX0ZFRURCQUNLCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUmVzZXQgYWRkcmVzcwogICovCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCSgodWxvbmcpKCgoKGltbWFwX3QgKilDRkdfSU1NUiktPmltX2Nsa3JzdC5yZXMpKSkKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCSgodWxvbmcpKCgoKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jbGtyc3QucmVzKSkpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ0LDEwICsyNDQsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgMHgwMDAwMDYwMCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IDB4MDAwMDA2MDAgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjU1LDI4ICsyNTUsMjggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX01MUkMxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IJKFNJVU1DUl9NTFJDMTApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJGIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0vKiUlJSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19SVEUpCisvKiUlJSNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpICovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yODcsNyArMjg3LDcgQEAKICAqIElmIHRoaXMgaXMgYSA4MCBNSHogQ1BVLCBzZXQgUExMIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byA1ICg1KjE2PTgwKSEKICAqLwogLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfUExQUkNSCSggKDUgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9URVhQUyApCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSCSggKDUgPDwgUExQUkNSX01GX1NISUZUKSB8IFBMUFJDUl9URVhQUyApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgYW5kIHJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTI3CkBAIC0yOTcsMjEgKzI5NywyMSBAQAogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwlTQ0NSX0VCREYwMAogLyogdXAgdG8gNTAgTUh6IHdlIHVzZSBhIDE6MSBjbG9jayAqLwotI2RlZmluZSBDRkdfU0NDUgkoU0NDUl9DT00wMCB8IFNDQ1JfVEJTKQorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgfCBTQ0NSX1RCUykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENNQ0lBIHN0dWZmCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMyNCwyOSArMzI0LDI5IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQJIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotLyojZGVmaW5lCUNGR19ERVIgMHgyMDAyMDAwRiovCi0jZGVmaW5lIENGR19ERVIgMAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSIDB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUiAwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgpAQCAtMzU1LDEzICszNTUsMTMgQEAKICAqLwogCiAjZGVmaW5lIEZMQVNIX0JBU0VfUFJFTElNCTB4RkUwMDAwMDAJLyogRkxBU0ggYmFzZSAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkUwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkUwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qIEZMQVNIIHRpbWluZzogQUNTID0gMCwgVFJMWCA9IDAsIENTTlQgPSAwLCBTQ1kgPSA0LCBFVEhSID0gMCwgQklIID0gMSAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIIChPUl9TQ1lfNF9DTEsgfCBPUl9CSSkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggKE9SX1NDWV80X0NMSyB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YpCiAKIC8qCiAgKiBCUjEgYW5kIE9SMSAoU0RSQU0pCkBAIC0zNzEsMzYgKzM3MSwzNiBAQAogI2RlZmluZSBTRFJBTV9NQVhfU0laRQkJMHgwODAwMDAwMAkvKiBtYXggMTI4IE1CICovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEUwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTQkweDAwMDAwRTAwCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKDB4RjAwMDAwMDAgfCBDRkdfT1JfVElNSU5HX1NEUkFNICkgLyogbWFwIDI1NiBNQiAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCSgweEYwMDAwMDAwIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0gKSAvKiBtYXAgMjU2IE1CICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKIAogLyogUlBYTElURSBtZW0gc2V0dGluZyAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkweEZBNDAwMDAxCQkvKiBGUEdBICovCi0jZGVmaW5lIENGR19PUjNfUFJFTElNCTB4RkZGRjg5MTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCTB4RkE0MDAwMDEJCS8qIEZQR0EgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCTB4RkZGRjg5MTAKIAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkweEZBMDAwNDAxCQkvKiBOVlJBTSZTUkFNICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCTB4RkZGRTA5NzAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNCTB4RkEwMDA0MDEJCS8qIE5WUkFNJlNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNCTB4RkZGRTA5NzAKIAogLyoKICAqIE1lbW9yeSBQZXJpb2RpYyBUaW1lciBQcmVzY2FsZXIKICAqLwogCiAvKiBwZXJpb2RpYyB0aW1lciBmb3IgcmVmcmVzaCAqLwotI2RlZmluZSBDRkdfTUFNUl9QVEEJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQkyMAogCiAvKgogICogUmVmcmVzaCBjbG9jayBQcmVzY2FsYXIKICAqLwotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjIKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWMgogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzE2WCB8IE1BTVJfV0xGQV8xNlggfCBNQU1SX1RMRkFfMTZYKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcjJkcGx1cy5oIGIvaW5jbHVkZS9jb25maWdzL3IyZHBsdXMuaAppbmRleCA0MWEyYTE1Li42OTIxNzU5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcjJkcGx1cy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9yMmRwbHVzLmgKQEAgLTM2LDY2ICszNiw2NiBAQAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkoMHg4QzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCSgweDA0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCSgweDhDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCSgweDA0MDAwMDAwKQogCi0jZGVmaW5lIENGR19MT05HSEVMUAotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYKLSNkZWZpbmUgQ0ZHX1BCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgotI2RlZmluZSBDRkdfQkFSR1NJWkUJCTUxMgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQk1MTIKIC8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUgc2V0dGluZ3MgZm9yIHRoaXMgYm9hcmQgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCwgNTc2MDAsIDM4NDAwLCAxOTIwMCwgOTYwMCB9CiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJKENGR19TRFJBTV9CQVNFKQotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCShURVhUX0JBU0UgLSAweDEwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCShDT05GSUdfU1lTX1NEUkFNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShURVhUX0JBU0UgLSAweDEwMDAwMCkKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkoQ0ZHX1NEUkFNX0JBU0UgKyAzMiAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDMyICogMTAyNCAqIDEwMjQpCiAvKiBBZGRyZXNzIG9mIHUtYm9vdCBpbWFnZSBpbiBGbGFzaCAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCiAvKiBTaXplIG9mIERSQU0gcmVzZXJ2ZWQgZm9yIG1hbGxvYygpIHVzZSAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkKIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkoMjU2KQotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJKDI1NikKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCiAKIC8qCiAgKiBOT1IgRmxhc2ggKCBTcGFudGlvbiBTMjlHTDI1NlAgKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCSgweEEwMDAwMDAwKQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTICgxKQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QgIDI1NgotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoMHhBMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgKDEpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgIDI1NgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgIChDT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogCiAvKgogICogU3VwZXJIIENsb2NrIHNldHRpbmcKICAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTYwMDAwMDAwCiAjZGVmaW5lIFRNVV9DTEtfRElWSURFUgkJNAotI2RlZmluZSBDRkdfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKLSNkZWZpbmUJQ0ZHX1BMTF9TRVRUTElOR19USU1FCTEwMC8qIGluIHVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKKyNkZWZpbmUJQ09ORklHX1NZU19QTExfU0VUVExJTkdfVElNRQkxMDAvKiBpbiB1cyAqLwogCiAvKgogICogSURFIHN1cHBvcnQKICAqLwogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUCTEKLSNkZWZpbmUgQ0ZHX1BJT19NT0RFCQkxCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxIC8qIElERSBidXMgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUgkweGI0MDAwMDAwCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQkyIC8qIDFiaXQgc2hpZnQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkweDEwMDAJLyogZGF0YSByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkweDEwMDAJLyogcmVnIG9mZnNldCAqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHg4MDAJLyogYWx0ZXJuYXRlIHJlZ2lzdGVyIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BJT19NT0RFCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMSAvKiBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkweGI0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERQkJMiAvKiAxYml0IHNoaWZ0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MTAwMAkvKiBkYXRhIHJlZyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkweDEwMDAJLyogcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4ODAwCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KIAogLyoKICAqIFN1cGVySCBQQ0kgQnJpZGdlIENvbmZpZ3JhdGlvbgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3I3NzgwbXAuaCBiL2luY2x1ZGUvY29uZmlncy9yNzc4MG1wLmgKaW5kZXggNGYzZjhlNS4uZjg1ZDVkNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3I3NzgwbXAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvcjc3ODBtcC5oCkBAIC0zMSw3ICszMSw3IEBACiAjZGVmaW5lIENPTkZJR19TSDRBCQkxCiAjZGVmaW5lIENPTkZJR19DUFVfU0g3NzgwCTEKICNkZWZpbmUgQ09ORklHX1I3NzgwTVAJCTEKLSNkZWZpbmUgQ0ZHX1I3NzgwTVBfT0xEX0ZMQVNICTEKKyNkZWZpbmUgQ09ORklHX1NZU19SNzc4ME1QX09MRF9GTEFTSAkxCiAjZGVmaW5lIF9fTElUVExFX0VORElBTl9fIDEKIAogLyoKQEAgLTYwLDY5ICs2MCw2OSBAQAogLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogLyojZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSyovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCSgweDA4MDAwMDAwKQotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJKDEyOCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCSgweDA4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCSgxMjggKiAxMDI0ICogMTAyNCkKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19QQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCTUxMgorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgorI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCTUxMgogLyogTGlzdCBvZiBsZWdhbCBiYXVkcmF0ZSBzZXR0aW5ncyBmb3IgdGhpcyBib2FyZCAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAsIDU3NjAwLCAzODQwMCwgMTkyMDAsIDk2MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwLCA1NzYwMCwgMzg0MDAsIDE5MjAwLCA5NjAwIH0KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkoQ0ZHX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKFRFWFRfQkFTRSAtIDB4MTAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKFRFWFRfQkFTRSAtIDB4MTAwMDAwKQogCiAvKiBGbGFzaCBib2FyZCBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkoMHhBMDAwMDAwMCkKLSNpZmRlZiBDRkdfUjc3ODBNUF9PTERfRkxBU0gKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoMHhBMDAwMDAwMCkKKyNpZmRlZiBDT05GSUdfU1lTX1I3NzgwTVBfT0xEX0ZMQVNICiAvKiBOT1IgRmxhc2ggKFMyOVBMMTI3SjYwVEZJMTMwKSAqLwotIyBkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMzJCSVQKLSMgZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJKDIpCi0jIGRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjcwCi0jIGRlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLFwKLQkJCQlDRkdfRkxBU0hfQkFTRSArIDB4MTAwMDAwLFwKLQkJCQlDRkdfRkxBU0hfQkFTRSArIDB4NDAwMDAwLFwKLQkJCQlDRkdfRkxBU0hfQkFTRSArIDB4NzAwMDAwLCB9Ci0jZWxzZSAvKiBDRkdfUjc3ODBNUF9PTERfRkxBU0ggKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX1dJRFRICUZMQVNIX0NGSV8zMkJJVAorIyBkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJKDIpCisjIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI3MAorIyBkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLFwKKwkJCQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDEwMDAwMCxcCisJCQkJQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMDAsXAorCQkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4NzAwMDAwLCB9CisjZWxzZSAvKiBDT05GSUdfU1lTX1I3NzgwTVBfT0xEX0ZMQVNIICovCiAvKiBOT1IgRmxhc2ggKFNwYW50aW9uIFMyOUdMMjU2UCkgKi8KLSMgZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJKDEpCi0jIGRlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTI1NgotIyBkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJeyBDRkdfRkxBU0hfQkFTRSB9Ci0jZW5kaWYgLyogQ0ZHX1I3NzgwTVBfT0xEX0ZMQVNIICovCisjIGRlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkoMSkKKyMgZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTI1NgorIyBkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KKyNlbmRpZiAvKiBDT05GSUdfU1lTX1I3NzgwTVBfT0xEX0ZMQVNIICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFICsgNCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDQgKiAxMDI0ICogMTAyNCkKIC8qIEFkZHJlc3Mgb2YgdS1ib290IGltYWdlIGluIEZsYXNoICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJKENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkKIC8qIFNpemUgb2YgRFJBTSByZXNlcnZlZCBmb3IgbWFsbG9jKCkgdXNlICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTIwNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyMDQgKiAxMDI0KQogCiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJKDI1NikKLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggKiAxMDI0ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJKDgpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkoMjU2KQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCSg4KQogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSN1bmRlZiBDRkdfRkxBU0hfQ0ZJX0JST0tFTl9UQUJMRQotI3VuZGVmICBDRkdfRkxBU0hfUVVJRVRfVEVTVAorI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0ZJX0JST0tFTl9UQUJMRQorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QKIC8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KIAogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCSgyNTYgKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCShDT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAogCiAvKiBCb2FyZCBDbG9jayAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMzMzMzMzCiAjZGVmaW5lIFRNVV9DTEtfRElWSURFUgkJNAotI2RlZmluZSBDRkdfSFoJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCiAKIC8qIFBDSSBDb250cm9sbGVyICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX1BDSSkKQEAgLTE1NywxNCArMTU3LDE0IEBACiAvKiBDb21wYWN0IGZsYXNoIFN1cHBvcnQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfSURFKQogI2RlZmluZSBDT05GSUdfSURFX1JFU0VUICAgICAgICAxCi0jZGVmaW5lIENGR19QSU9fTU9ERSAgICAgICAgICAgIDEKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMgICAgICAgICAgMSAgIC8qIElERSBidXMgKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UgICAgICAgMQotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUiAgICAgICAweGI0MDAwMDAwCi0jZGVmaW5lIENGR19BVEFfU1RSSURFICAgICAgICAgIDIgICAgICAgICAgICAgICAvKiAxYml0IHNoaWZ0ICovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQgICAgIDB4MTAwMCAgICAgICAgICAvKiBkYXRhIHJlZyBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUICAgICAgMHgxMDAwICAgICAgICAgIC8qIHJlZyBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUICAgICAgMHg4MDAgICAgICAgICAgIC8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QSU9fTU9ERSAgICAgICAgICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTICAgICAgICAgIDEgICAvKiBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRSAgICAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiAgICAgICAweGI0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1NUUklERSAgICAgICAgICAyICAgICAgICAgICAgICAgLyogMWJpdCBzaGlmdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCAgICAgMHgxMDAwICAgICAgICAgIC8qIGRhdGEgcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUICAgICAgMHgxMDAwICAgICAgICAgIC8qIHJlZyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCAgICAgIDB4ODAwICAgICAgICAgICAvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCiAjZW5kaWYgLyogQ09ORklHX0NNRF9JREUgKi8KIAogI2VuZGlmIC8qIF9fUjc3ODBSUF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvcmVkd29vZC5oIGIvaW5jbHVkZS9jb25maWdzL3JlZHdvb2QuaAppbmRleCBkYWMzMjNiLi40Yjc0NGE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvcmVkd29vZC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9yZWR3b29kLmgKQEAgLTQ2LDQ5ICs0Niw0OSBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZjAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UJMHhhMDAwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkJMHg5MDAwMDAwMAkvKiBpbnRlcm5hbCBTUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmYwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweGEwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSVNSQU1fQkFTRQkJMHg5MDAwMDAwMAkvKiBpbnRlcm5hbCBTUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KIAotI2RlZmluZSBDRkdfUENJRV9NRU1CQVNFCTB4OTAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lFMF9NRU1CQVNFCTB4OTAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1CQVNFCTB4YTAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lFX01FTVNJWkUJMHgwMTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUVfTUVNQkFTRQkweDkwMDAwMDAwCS8qIG1hcHBlZCBQQ0llIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSUUwX01FTUJBU0UJMHg5MDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1CQVNFCTB4YTAwMDAwMDAJLyogbWFwcGVkIFBDSWUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRV9NRU1TSVpFCTB4MDEwMDAwMDAKIAotI2RlZmluZSBDRkdfUENJRTBfWENGR0JBU0UJMHhiMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfWENGR0JBU0UJMHhiMjAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfWENGR0JBU0UJMHhiNDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTBfQ0ZHQkFTRQkweGI2MDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9DRkdCQVNFCTB4YjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX0NGR0JBU0UJMHhiYTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUwX1hDRkdCQVNFCTB4YjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9YQ0ZHQkFTRQkweGIyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfWENGR0JBU0UJMHhiNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUwX0NGR0JBU0UJMHhiNjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0NGR0JBU0UJMHhiODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX0NGR0JBU0UJMHhiYTAwMDAwMAogCiAvKiBQQ0llIG1hcHBlZCBVVEwgcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19QQ0lFMF9SRUdCQVNFICAgMHhkMDAwMDAwMAotI2RlZmluZSBDRkdfUENJRTFfUkVHQkFTRSAgIDB4ZDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUyX1JFR0JBU0UgICAweGQwMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfUkVHQkFTRSAgIDB4ZDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9SRUdCQVNFICAgMHhkMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUyX1JFR0JBU0UgICAweGQwMDIwMDAwCiAKIC8qIFN5c3RlbSBSQU0gbWFwcGVkIHRvIFBDSSBzcGFjZSAqLwotI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fQlVTCUNGR19TRFJBTV9CQVNFCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9QSFlTCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfUENJX1NZU19NRU1fU0laRQkoMTAyNCAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19GUEdBX0JBU0UJCTB4ZTIwMDAwMDAJLyogZXBsZAkJCSovCi0jZGVmaW5lIENGR19PUEVSX0ZMQVNICQkweGU3MDAwMDAwCS8qIFNSQU0gLSBPUEVSIEZsYXNoCSovCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9CQVNFCQkweGUyMDAwMDAwCS8qIGVwbGQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09QRVJfRkxBU0gJCTB4ZTcwMDAwMDAJLyogU1JBTSAtIE9QRVIgRmxhc2gJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gaW50ZXJuYWwgU1JBTSkKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCUNGR19JU1JBTV9CQVNFCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JU1JBTV9CQVNFCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDIwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCUNPTkZJR19TWVNfSVNSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JU1JBTV9CQVNFCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSAweDQpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQpAQCAtOTYsNyArOTYsNyBAQAogI2RlZmluZSBDT05GSUdfU1BEX0VFUFJPTQkxCS8qIFVzZSBTUEQgRUVQUk9NIGZvciBzZXR1cAkqLwogI2RlZmluZSBDT05GSUdfRERSX0VDQwkJMQkvKiB3aXRoIEVDQyBzdXBwb3J0CQkqLwogCi0jZGVmaW5lIENGR19TUERfTUFYX0RJTU1TCTIKKyNkZWZpbmUgQ09ORklHX1NZU19TUERfTUFYX0RJTU1TCTIKIAogLyogU1BEIGkyYyBzcGQgYWRkcmVzc2VzICovCiAjZGVmaW5lIFNQRF9FRVBST01fQUREUkVTUyAgICAge0lJQzBfRElNTTBfQUREUiwgSUlDMF9ESU1NMV9BRERSfQpAQCAtMTA2LDE1ICsxMDYsMTUgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkCQkJKi8KIAogI2RlZmluZSBJSUMwX0JPT1RQUk9NX0FERFIJMHg1MAogI2RlZmluZSBJSUMwX0FMVF9CT09UUFJPTV9BRERSCTB4NTQKIAogLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19OT1BST0JFUwl7MHg1MCwgMHg1MiwgMHg1MywgMHg1NH0KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4NTAsIDB4NTIsIDB4NTMsIDB4NTR9CiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMgkvKiBCeXRlcyBvZiBhZGRyZXNzCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtMTY0LDE2ICsxNjQsMTYgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVCAxCS8qIFVzZSBBTUQgKFNwYW5zaW9uKSByZXNldCBjbWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfQU1EX1JFU0VUIDEJLyogVXNlIEFNRCAoU3BhbnNpb24pIHJlc2V0IGNtZCAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMwkvKiBudW1iZXIgb2YgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogc2VjdG9ycyBwZXIgZGV2aWNlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCS8qIG51bWJlciBvZiBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogc2VjdG9ycyBwZXIgZGV2aWNlCQkqLwogCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvcm11LmggYi9pbmNsdWRlL2NvbmZpZ3Mvcm11LmgKaW5kZXggMGMwYjIwNi4uZDg4YWU4MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3JtdS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9ybXUuaApAQCAtNTcsMTQgKzU3LDE0IEBACiAJImJvb3RtIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogLyogZW5hYmxlIEkyQyBhbmQgc2VsZWN0IHRoZSBoYXJkd2FyZS9zb2Z0d2FyZSBkcml2ZXIgKi8KICN1bmRlZglDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lIENPTkZJR19TT0ZUX0kyQwkJMQkvKiBJMkMgYml0LWJhbmdlZAkJKi8KIAotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMAkvKiA0MCBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMAkvKiA0MCBrSHogaXMgc3VwcG9zZWQgdG8gd29yawkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHhGRQogCiAvKiBTb2Z0d2FyZSAoYml0LWJhbmcpIEkyQyBkcml2ZXIgY29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBQQl9TQ0wJCTB4MDAwMDAwMjAJLyogUEIgMjYgKi8KQEAgLTgyLDggKzgyLDggQEAKIAogLyogTTQxVDExIFNlcmlhbCBBY2Nlc3MgVGltZWtlZXBlcihSKSBTUkFNICovCiAjZGVmaW5lIENPTkZJR19SVENfTTQxVDExIDEKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAweDY4Ci0jZGVmaW5lIENGR19NNDFUMTFfQkFTRV9ZRUFSIDE5MDAJLyogcGxheSBhbG9uZyB3aXRoIHRoZSBsaW51eCBkcml2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIgMHg2OAorI2RlZmluZSBDT05GSUdfU1lTX000MVQxMV9CQVNFX1lFQVIgMTkwMAkvKiBwbGF5IGFsb25nIHdpdGggdGhlIGxpbnV4IGRyaXZlciAqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTExOCwyNSArMTE4LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMEMwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTE0Niw0NyArMTQ2LDQ3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RkEyMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEZBMjAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCSgwLWZsYXNoX2luZm9bMF0uc2l6ZSkJLyogUHV0IGZsYXNoIGF0IGVuZAkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkoMC1mbGFzaF9pbmZvWzBdLnNpemUpCS8qIFB1dCBmbGFzaCBhdCBlbmQJKi8KICNpZiBkZWZpbmVkKERFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19DTURfSURFKQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY3CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKFRFWFRfQkFTRSkgKyAweDQwMDAwKQpAQCAtMTk5LDE0ICsxOTksMTQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJlc2V0IGFkZHJlc3MKICAqLwotI2RlZmluZQlDRkdfUkVTRVRfQUREUkVTUwkoKHVsb25nKSgoKChpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jbGtyc3QucmVzKSkpCisjZGVmaW5lCUNPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkoKHVsb25nKSgoKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY2xrcnN0LnJlcykpKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxNiwxMCArMjE2LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IDB4MDAwMDA2MDAgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCAweDAwMDAwNjAwIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyNywyOCArMjI3LDI4IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9NTFJDMTApCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfTUxSQzEwKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotLyolJSUjZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpICovCi0jZGVmaW5lIENGR19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfUlRFKQorLyolJSUjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19SVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMjU5LDcgKzI1OSw3IEBACiAgKiBJZiB0aGlzIGlzIGEgODAgTUh6IENQVSwgc2V0IFBMTCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgdG8gNSAoNSoxNj04MCkhCiAgKi8KIC8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoICg1IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfVEVYUFMgKQorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoICg1IDw8IFBMUFJDUl9NRl9TSElGVCkgfCBQTFBSQ1JfVEVYUFMgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIGFuZCByZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0yNwpAQCAtMjY5LDIxICsyNjksMjEgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMDAKIC8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgfCBTQ0NSX1RCUykKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwIHwgU0NDUl9UQlMpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCSgweEUwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19BRERSCSgweEVDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJREUvQVRBIHN0dWZmIChTdXBwb3J0cyBJREUgaGFyZGRpc2sgb24gUENNQ0lBIEFkYXB0ZXIpCkBAIC0yOTYsMjkgKzI5NiwyOSBAQAogI3VuZGVmCUNPTkZJR19JREVfTEVECQkJLyogTEVEICAgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9SRVNFVAkJLyogcmVzZXQgZm9yIGlkZSBub3Qgc3VwcG9ydGVkCSovCiAKLSNkZWZpbmUgQ0ZHX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJQ0ZHX1BDTUNJQV9NRU1fQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJKENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoMiAqIENGR19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoMiAqIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMTAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0vKiNkZWZpbmUJQ0ZHX0RFUgkweDIwMDIwMDBGKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisvKiNkZWZpbmUJQ09ORklHX1NZU19ERVIJMHgyMDAyMDAwRiovCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMjcsMTMgKzMyNywxMyBAQAogICovCiAKICNkZWZpbmUgRkxBU0hfQkFTRV9QUkVMSU0JMHhGQzAwMDAwMAkvKiBGTEFTSCBiYXNlIC0gdXAgdG8gNjQgTUIgb2YgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEZDMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAtIG1hcCA2NCBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEZDMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAtIG1hcCA2NCBNQiAqLwogCiAvKiBGTEFTSCB0aW1pbmc6IEFDUyA9IDAsIFRSTFggPSAwLCBDU05UID0gMCwgU0NZID0gNCwgRVRIUiA9IDAsIEJJSCA9IDEgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAoT1JfU0NZXzRfQ0xLIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIChPUl9TQ1lfNF9DTEsgfCBPUl9CSSkKIAotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WKQogCiAvKgogICogQlIxIGFuZCBPUjEgKFNEUkFNKQpAQCAtMzQzLDM5ICszNDMsMzkgQEAKICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDgwMDAwMDAJLyogbWF4IDEyOCBNQiAqLwogCiAvKiBTRFJBTSB0aW1pbmc6IE11bHRpcGxleGVkIGFkZHJlc3NlcywgR1BMNSBvdXRwdXQgdG8gR1BMNV9BIChkb24ndCBjYXJlKQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBFMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JMHgwMDAwMEUwMAogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCSgweEYwMDAwMDAwIHwgQ0ZHX09SX1RJTUlOR19TRFJBTSApIC8qIG1hcCAyNTYgTUIgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkoMHhGMDAwMDAwMCB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkgLyogbWFwIDI1NiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JKChTRFJBTV9CQVNFX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKIC8qIFJQWExJVEUgbWVtIHNldHRpbmcgKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0UJMHhGQTAwMDAwMAkJLyogTlZSQU0gJiBTUkFNIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFCTB4RkEwMDAwMDAJCS8qIE5WUkFNICYgU1JBTSBiYXNlICovCiAvKiAgICAgIElNTVI6CQkweEZBMjAwMDAwCQkgICBJTU1SIGJhc2UgYWRkcmVzcyAtIHNlZSBhYm92ZSAqLwotI2RlZmluZQlDRkdfQkNTUl9CQVNFCTB4RkE0MDAwMDAJCS8qIEJDU1IgYmFzZSBhZGRyZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfQkNTUl9CQVNFCTB4RkE0MDAwMDAJCS8qIEJDU1IgYmFzZSBhZGRyZXNzICovCiAKLSNkZWZpbmUJQ0ZHX0JSM19QUkVMSU0JKENGR19CQ1NSX0JBU0UgfCBCUl9WKQkJCS8qIEJDU1IgKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JMHhGRkZGODkxMAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgKENGR19OVlJBTV9CQVNFIHwgQlJfUFNfOCB8IEJSX1YpCS8qIE5WUkFNICYgU1JBTSAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkweEZGRkUwOTcwCisjZGVmaW5lCUNPTkZJR19TWVNfQlIzX1BSRUxJTQkoQ09ORklHX1NZU19CQ1NSX0JBU0UgfCBCUl9WKQkJCS8qIEJDU1IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCTB4RkZGRjg5MTAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNICAoQ09ORklHX1NZU19OVlJBTV9CQVNFIHwgQlJfUFNfOCB8IEJSX1YpCS8qIE5WUkFNICYgU1JBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JMHhGRkZFMDk3MAogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgogICovCiAKIC8qIHBlcmlvZGljIHRpbWVyIGZvciByZWZyZXNoICovCi0jZGVmaW5lIENGR19NQU1SX1BUQQkyMAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfUFRBCTIwCiAKIC8qCiAgKiBSZWZyZXNoIGNsb2NrIFByZXNjYWxhcgogICovCi0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYyCiAKIC8qCiAgKiBNQU1SIHNldHRpbmdzIGZvciBTRFJBTQogICovCiAKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMTZYIHwgTUFNUl9XTEZBXzE2WCB8IE1BTVJfVExGQV8xNlgpCiAKQEAgLTM5NCwxMCArMzk0LDEwIEBACiAgKgogICovCiAKLSNkZWZpbmUgQkNTUjAJKENGR19CQ1NSX0JBU0UgKyAwKQotI2RlZmluZSBCQ1NSMQkoQ0ZHX0JDU1JfQkFTRSArIDEpCi0jZGVmaW5lIEJDU1IyCShDRkdfQkNTUl9CQVNFICsgMikKLSNkZWZpbmUgQkNTUjMJKENGR19CQ1NSX0JBU0UgKyAzKQorI2RlZmluZSBCQ1NSMAkoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAwKQorI2RlZmluZSBCQ1NSMQkoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAxKQorI2RlZmluZSBCQ1NSMgkoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAyKQorI2RlZmluZSBCQ1NSMwkoQ09ORklHX1NZU19CQ1NSX0JBU0UgKyAzKQogCiAjZGVmaW5lIEJDU1IwX0VOTU9OWENWUgkweDAxCS8qIE1vbml0b3IgWFZDUiBDb250cm9sICovCiAjZGVmaW5lIEJDU1IwX0VOTlZSQU0JMHgwMgkvKiBDUzQjIENvbnRyb2wgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9yc2Rwcm90by5oIGIvaW5jbHVkZS9jb25maWdzL3JzZHByb3RvLmgKaW5kZXggMDk5MTNhOS4uODIwNzg0NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3JzZHByb3RvLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3JzZHByb3RvLmgKQEAgLTc5LDEwICs3OSwxMCBAQAogICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCSgwKQotIyBkZWZpbmUgQ0ZHX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKKyMgZGVmaW5lIENPTkZJR19TWVNfQ1BNRkNSX1JBTVRZUEUJKDApCisjIGRlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKQogCiAjZW5kaWYgLyogQ09ORklHX0VUSEVSX0lOREVYICovCiAKQEAgLTkyLDggKzkyLDggQEAKIAogLyogZW5hYmxlIEkyQyAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk1MDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHgzMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNTAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDMwCiAKIAogLyogc3lzdGVtIGNsb2NrIHJhdGUgKENMS0lOKSAtIGVxdWFsIHRvIHRoZSA2MHggYW5kIGxvY2FsIGJ1cyBzcGVlZCAqLwpAQCAtMTI1LDcgKzEyNSw3IEBACiAgKiB3YXkgdG8gZG8gdGhhdCBpcyB0byBwcm9ncmFtIHRoZSBib290bG9hZGVyIGF0IGJvdGggYWRkcmVzc2VzLgogICogSXQgaXMgc3VnZ2VzdGVkIHRoYXQgeW91IGp1c3QgbGV0IFUtQm9vdCBsaXZlIGF0IDB4MDAwMDAwMDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX1JTRF9CT09UX0xPVyAxCisjZGVmaW5lIENPTkZJR19TWVNfUlNEX0JPT1RfTE9XIDEKIAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUKICNkZWZpbmUgQ09ORklHX0JPT1RBUkdTCQkiZGV2ZnM9bW91bnQgcm9vdD1yYW1mcyIKQEAgLTE0MCwyNiArMTQwLDI2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMWMwMDAwMAkvKiA0IC4uLiAyOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMWMwMDAwMAkvKiA0IC4uLiAyOCBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTk5LDk0ICsxOTksOTQgQEAKICNkZWZpbmUgUEhZU19GTEFTSAkJMHhGRjAwMDAwMCAvKiBGbGFzaCAoNjB4IEJ1cykgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAxMDAwMDAwIC8qIDE2IE1CICovCiAKLSNkZWZpbmUgQ0ZHX0lNTVIJCVBIWVNfSU1NUgorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCVBIWVNfSU1NUgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSZXNldCBBZGRyZXNzCiAgKgogICogSW4gb3JkZXIgdG8gcmVzZXQgdGhlIENQVSwgVS1Cb290IGp1bXBzIHRvIGEgc3BlY2lhbCBhZGRyZXNzIHdoaWNoCiAgKiBjYXVzZXMgYSBtYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbi4gVGhlIGRlZmF1bHQgYWRkcmVzcyBmb3IgdGhpcyBpcwotICogQ0ZHX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpLCB3aGljaCBtaWdodCBub3QgYWx3YXlzIHdvcmssIGVnLiB3aGVuCisgKiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpLCB3aGljaCBtaWdodCBub3QgYWx3YXlzIHdvcmssIGVnLiB3aGVuCiAgKiB0ZXN0aW5nIHRoZSBtb25pdG9yIGluIFJBTSB1c2luZyBhIEpUQUcgZGVidWdnZXIuCiAgKgotICogSnVzdCBzZXQgQ0ZHX1JFU0VUX0FERFJFU1MgdG8gYW4gYWRkcmVzcyB0aGF0IHlvdSBrbm93IGlzIHN1cmUgdG8KKyAqIEp1c3Qgc2V0IENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyB0byBhbiBhZGRyZXNzIHRoYXQgeW91IGtub3cgaXMgc3VyZSB0bwogICogY2F1c2UgYSBidXMgZXJyb3Igb24geW91ciBoYXJkd2FyZS4KICAqLwotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkweDIwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICovCiAKLSNpZiBkZWZpbmVkKENGR19SU0RfQk9PVF9MT1cpCi0jICBkZWZpbmUgIENGR19SU0RfSFJDV19CT09UX0ZMQUdTICAoSFJDV19DSVAgfCBIUkNXX0JNUykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUlNEX0JPT1RfTE9XKQorIyAgZGVmaW5lICBDT05GSUdfU1lTX1JTRF9IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQogI2Vsc2UKLSMgIGRlZmluZSAgQ0ZHX1JTRF9IUkNXX0JPT1RfRkxBR1MgICgwKQotI2VuZGlmIC8qIGRlZmluZWQoQ0ZHX1JTRF9CT09UX0xPVykgKi8KKyMgIGRlZmluZSAgQ09ORklHX1NZU19SU0RfSFJDV19CT09UX0ZMQUdTICAoMCkKKyNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR19TWVNfUlNEX0JPT1RfTE9XKSAqLwogCi0vKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ0ZHX0lNTVIgKi8KLSNkZWZpbmUgQ0ZHX1JTRF9IUkNXX0lNTVIgKCAoKENGR19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHxcCi0JCQkgICAgKChDRkdfSU1NUiAmIDB4MDEwMDAwMDApID4+IDcpICB8XAotCQkJICAgICgoQ0ZHX0lNTVIgJiAweDAwMTAwMDAwKSA+PiA0KSApCisvKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ09ORklHX1NZU19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfUlNEX0hSQ1dfSU1NUiAoICgoQ09ORklHX1NZU19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHxcCisJCQkgICAgKChDT05GSUdfU1lTX0lNTVIgJiAweDAxMDAwMDAwKSA+PiA3KSAgfFwKKwkJCSAgICAoKENPTkZJR19TWVNfSU1NUiAmIDB4MDAxMDAwMDApID4+IDQpICkKIAotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJKEhSQ1dfTDJDUEMxMCB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkoSFJDV19MMkNQQzEwIHwgXAogCQkJIEhSQ1dfRFBQQzExIHwgXAotCQkJIENGR19SU0RfSFJDV19JTU1SIHxcCisJCQkgQ09ORklHX1NZU19SU0RfSFJDV19JTU1SIHxcCiAJCQkgSFJDV19NTVIwMCB8IFwKIAkJCSBIUkNXX0FQUEMxMCB8IFwKIAkJCSBIUkNXX0NTMTBQQzAwIHwgXAogCQkJIEhSQ1dfTU9EQ0tfSDAwMDAgfFwKLQkJCSBDRkdfUlNEX0hSQ1dfQk9PVF9GTEFHUykKKwkJCSBDT05GSUdfU1lTX1JTRF9IUkNXX0JPT1RfRkxBR1MpCiAKIC8qIG5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTMJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTYJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMgkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCi0gKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENGR19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVuZC4KKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBOb3RlIGFsc28gdGhhdCB0aGUgbG9naWMgdGhhdCBzZXRzIENPTkZJR19TWVNfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbmQuCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCVBIWVNfU0RSQU1fNjBYCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNICi0vKiNkZWZpbmUJQ0ZHX01PTklUT1JfQkFTRQkweDIwMDAwMCAqLwotI2RlZmluZQlDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19SQU1CT09UCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJUEhZU19TRFJBTV82MFgKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNICisvKiNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgyMDAwMDAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjaWYgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMTYwIDw8IDEwKQkvKiBSZXNlcnZlIDE2MCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxNjAgPDwgMTApCS8qIFJlc2VydmUgMTYwIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNjMJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjMJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkzMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTMwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKiB0dXJuIG9mZiBOVlJBTSBlbnYgZmVhdHVyZSAqLwogI3VuZGVmIENPTkZJR19OVlJBTV9FTlYKQEAgLTI5OCw5ICsyOTgsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2FjaGUgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODI2MCBDUFUJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVQkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzEzLDI4ICszMTMsMjggQEAKICAqCiAgKiBISUQxIGhhcyBvbmx5IHJlYWQtb25seSBpbmZvcm1hdGlvbiAtIG5vdGhpbmcgdG8gc2V0LgogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJKEhJRDBfSUNFfEhJRDBfRENFfEhJRDBfSUNGSXxISUQwX0RDSXxISUQwX0lGRU18SElEMF9BQkUpCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCShISUQwX0lDRXxISUQwX0lGRU18SElEMF9BQkV8SElEMF9FTUNQKQotI2RlZmluZSBDRkdfSElEMgkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCShISUQwX0lDRXxISUQwX0RDRXxISUQwX0lDRkl8SElEMF9EQ0l8SElEMF9JRkVNfEhJRDBfQUJFKQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJKEhJRDBfSUNFfEhJRDBfSUZFTXxISUQwX0FCRXxISUQwX0VNQ1ApCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1SCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uCQkJCQkgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19CQ1IJCTB4MTAwYzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1IJCTB4MTAwYzAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uCQkJCSA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRFBQQzExIHwgU0lVTUNSX0wyQ1BDMTAgfCBTSVVNQ1JfQVBQQzEwIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RQUEMxMSB8IFNJVU1DUl9MMkNQQzEwIHwgU0lVTUNSX0FQUEMxMCB8IFwKIAkJCQkJIFNJVU1DUl9DUzEwUEMwMSB8IFNJVU1DUl9CQ1RMQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNDMsNyArMzQzLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFdhdGNoZG9nICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCA2MHggQnVzIE1vbml0b3IgZW5hYmxlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfUEJNRSB8IFNZUENSX0xCTUUgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9QQk1FIHwgU1lQQ1JfTEJNRSB8IFwKIAkJCSBTWVBDUl9TV1JJIHwgU1lQQ1JfU1dQKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNTIsNyArMzUyLDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJKFRNQ05UU0NfU0VDIHwgVE1DTlRTQ19BTFIgfCBUTUNOVFNDX1RDRiB8IFRNQ05UU0NfVENFKQorI2RlZmluZSBDT05GSUdfU1lTX1RNQ05UU0MJKFRNQ05UU0NfU0VDIHwgVE1DTlRTQ19BTFIgfCBUTUNOVFNDX1RDRiB8IFRNQ05UU0NfVENFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCSA0LTQyCkBAIC0zNjAsNjMgKzM2MCw2MyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTfFBJU0NSX1BURnxQSVNDUl9QVEUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNDQ1IgLSBTeXN0ZW0gQ2xvY2sgQ29udHJvbAkJCQkJIDktOAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19TQ0NSCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCTB4MDAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUkNDUiAtIFJJU0MgQ29udHJvbGxlciBDb25maWd1cmF0aW9uCQkJCTEzLTcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUkNDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfUkNDUgkwCiAKIC8qCiAgKiBJbml0IE1lbW9yeSBDb250cm9sbGVyOgogICovCiAKLSNkZWZpbmUgQ0ZHX1BTRE1SCTB4NDk0RDI0NTIKLSNkZWZpbmUgQ0ZHX0xTRE1SCTB4NDk0OTI1NTIKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkweDQ5NEQyNDUyCisjZGVmaW5lIENPTkZJR19TWVNfTFNETVIJMHg0OTQ5MjU1MgogCiAvKiBGbGFzaCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoUEhZU19GTEFTSCB8IEJSeF9WKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoUDJTWl9UT19BTShQSFlTX0ZMQVNIX1NJWkUpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKFBIWVNfRkxBU0ggfCBCUnhfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShQMlNaX1RPX0FNKFBIWVNfRkxBU0hfU0laRSkgfCBcCiAJCQkgT1J4R19CQ1RMRCB8IFwKIAkJCSBPUnhHX1NDWV81X0NMSykKIAogLyogRFBSQU0gdG8gdGhlIFBDSSBCVVMgb24gdGhlIHByb3RvY29sIGJvYXJkICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCShQSFlTX0RQUkFNX1BDSSB8IEJSeF9WKQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkoUDJTWl9UT19BTShQSFlTX0RQUkFNX1BDSV9TSVpFKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCShQSFlTX0RQUkFNX1BDSSB8IEJSeF9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKFAyU1pfVE9fQU0oUEhZU19EUFJBTV9QQ0lfU0laRSkgfCBcCiAJCQkgT1J4R19BQ1NfRElWNCkKIAogLyogNjB4IEJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoUEhZU19TRFJBTV82MFggfCBCUnhfTVNfU0RSQU1fUCB8IEJSeF9WKQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoT1J4U19TSVpFX1RPX0FNKFBIWVNfU0RSQU1fNjBYX1NJWkUpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKFBIWVNfU0RSQU1fNjBYIHwgQlJ4X01TX1NEUkFNX1AgfCBCUnhfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShPUnhTX1NJWkVfVE9fQU0oUEhZU19TRFJBTV82MFhfU0laRSkgfCBcCiAJCQkgT1J4U19CUERfNCB8IFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTIgfCBcCiAJCQkgT1J4U19OVU1SXzEzIHwgXAogCQkJIE9SeFNfSUJJRCkKIAogLyogVmlydGV4LUZQR0EgLSBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTSAgKFBIWVNfVklSVEVYX1JFR0lTVEVSIHwgQlJ4X1YpCi0jZGVmaW5lIENGR19PUjNfUFJFTElNICAoT1J4U19TSVpFX1RPX0FNKFBIWVNfVklSVEVYX1JFR0lTVEVSX1NJWkUpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0gIChQSFlTX1ZJUlRFWF9SRUdJU1RFUiB8IEJSeF9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0gIChPUnhTX1NJWkVfVE9fQU0oUEhZU19WSVJURVhfUkVHSVNURVJfU0laRSkgfCBcCiAJCQkgT1J4R19TQ1lfMV9DTEsgfCBcCiAJCQkgT1J4R19BQ1NfRElWMiB8IFwKIAkJCSBPUnhHX0NTTlQgKQogCiAvKiBsb2NhbCBidXMgU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JKFBIWVNfU0RSQU1fTE9DQUwgfCBCUnhfUFNfMzIgfCBCUnhfTVNfU0RSQU1fTCB8IEJSeF9WKQotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkoT1J4U19TSVpFX1RPX0FNKFBIWVNfU0RSQU1fTE9DQUxfU0laRSkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkoUEhZU19TRFJBTV9MT0NBTCB8IEJSeF9QU18zMiB8IEJSeF9NU19TRFJBTV9MIHwgQlJ4X1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1I0X1BSRUxJTQkoT1J4U19TSVpFX1RPX0FNKFBIWVNfU0RSQU1fTE9DQUxfU0laRSkgfCBcCiAJCQkgT1J4U19CUERfNCB8IFwKIAkJCSBPUnhTX1JPV1NUX1BCSTFfQTQgfCBcCiAJCQkgT1J4U19OVU1SXzEzKQogCiAvKiBEUFJBTSB0byB0aGUgU2hhcmMtQnVzIG9uIHRoZSBwcm90b2NvbCBib2FyZCAqLwotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkoUEhZU19EUFJBTV9TSEFSQyB8IEJSeF9WKQotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoUDJTWl9UT19BTShQSFlTX0RQUkFNX1NIQVJDX1NJWkUpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JKFBIWVNfRFBSQU1fU0hBUkMgfCBCUnhfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCShQMlNaX1RPX0FNKFBIWVNfRFBSQU1fU0hBUkNfU0laRSkgfCBcCiAJCQkgT1J4R19BQ1NfRElWNCkKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9yc2s3MjAzLmggYi9pbmNsdWRlL2NvbmZpZ3MvcnNrNzIwMy5oCmluZGV4IDFmMjBlNTcuLmY4OGE3NzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9yc2s3MjAzLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3JzazcyMDMuaApAQCAtNTQsNTUgKzU0LDU1IEBACiAjZGVmaW5lIFJTSzcyMDNfRkxBU0hfQkFTRV8xCTB4MjAwMDAwMDAJLyogTm9uIGNhY2hlICovCiAjZGVmaW5lIFJTSzcyMDNfRkxBU0hfQkFOS19TSVpFCSg0ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIENvbnNvbGUgb3V0cHV0ICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBpbnB1dCBmcm9tIHRoZSBDb25zb2xlICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgQ29uc29sZSBvdXRwdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCiAvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMgcGFzc2VkIHRvIGtlcm5lbCAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJNTEyCiAvKiBMaXN0IG9mIGxlZ2FsIGJhdWRyYXRlIHNldHRpbmdzIGZvciB0aGlzIGJvYXJkICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgfQogCiAvKiBTQ0lGICovCiAjZGVmaW5lIENPTkZJR19TQ0lGX0NPTlNPTEUJMQogI2RlZmluZSBDT05GSUdfQ09OU19TQ0lGMAkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJUlNLNzIwM19TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKENGR19NRU1URVNUX1NUQVJUICsgKDMgKiAxMDI0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlSU0s3MjAzX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArICgzICogMTAyNCAqIDEwMjQpKQogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlSU0s3MjAzX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCSgzMiAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCVJTSzcyMDNfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCSgzMiAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCShDRkdfU0RSQU1fQkFTRSArIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVJTSzcyMDNfRkxBU0hfQkFTRV8xCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDEyOCAqIDEwMjQpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMjU2Ci0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVJTSzcyMDNfRkxBU0hfQkFTRV8xCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTYgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQogCiAvKiBGTEFTSCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEggRkxBU0hfQ0ZJXzE2QklUCi0jdW5kZWYJQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlSU0s3MjAzX0ZMQVNIX0JBU0VfMQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0Ci0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSCBGTEFTSF9DRklfMTZCSVQKKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVJTSzcyMDNfRkxBU0hfQkFTRV8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDY0ICogMTAyNCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQlDT05GSUdfRU5WX1NFQ1RfU0laRQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMAotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAogCiAvKiBCb2FyZCBDbG9jayAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTMzMzMzMzMzCiAjZGVmaW5lIENNVF9DTEtfRElWSURFUgkzMgkvKiA4IChkZWZhdWx0KSwgMzIsIDEyOCBvciA1MTIgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBDTVRfQ0xLX0RJVklERVIpCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIENNVF9DTEtfRElWSURFUikKIAogLyogTmV0d29yayBpbnRlcmZhY2UgKi8KICNkZWZpbmUgQ09ORklHX0RSSVZFUl9TTUM5MTFYCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2Fjc25nLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2Fjc25nLmgKaW5kZXggNTYwYmYwNS4uZjRlMDhjNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NhY3NuZy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYWNzbmcuaApAQCAtNzQsNyArNzQsNyBAQAogICogMHg2CSAgICAgMHgxCSA2NgkxMzMgICAgMjY2ICAgQ2xvc2UgIENsb3NlICBPcGVuCiAgKiAweDYJICAgICAweDIJIDY2CTEzMyAgICAzMDAgICBDbG9zZSAgT3BlbiAgIENsb3NlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NCQ19NT0RDS19IIDB4MDUKKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfTU9EQ0tfSCAweDA1CiAKIC8qIERlZmluZSB0aGlzIGlmIHlvdSB3YW50IHRvIGJvb3QgZnJvbSAweDAwMDAwMTAwLiBJZiB5b3UgZG9uJ3QgZGVmaW5lCiAgKiB0aGlzLCB5b3Ugd2lsbCBuZWVkIHRvIHByb2dyYW0gdGhlIGJvb3Rsb2FkZXIgdG8gMHhmZmYwMDAwMCwgYW5kCkBAIC04MiwyMSArODIsMjEgQEAKICAqIHdheSB0byBkbyB0aGF0IGlzIHRvIHByb2dyYW0gdGhlIGJvb3Rsb2FkZXIgYXQgYm90aCBhZGRyZXNzZXMuCiAgKiBJdCBpcyBzdWdnZXN0ZWQgdGhhdCB5b3UganVzdCBsZXQgVS1Cb290IGxpdmUgYXQgMHgwMDAwMDAwMC4KICAqLwotI2RlZmluZSBDRkdfU0JDX0JPT1RfTE9XIDEKKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfQk9PVF9MT1cgMQogCiAvKiBXaGF0IHNob3VsZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBtYWluIEZMQVNIIGJlIGFuZCBob3cgYmlnIGlzCiAgKiBpdCAoaW4gTUJ5dGVzKT8gIFRoaXMgbXVzdCBjb250YWluIFRFWFRfQkFTRSBmcm9tIGJvYXJkL3NhY3NuZy9jb25maWcubWsKICAqIFRoZSBtYWluIEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQgdG8gKkNTMC4KICAqLwotI2RlZmluZSBDRkdfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gwX1NJWkUgMgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9CQVNFIDB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfU0laRSAyCiAKIC8qIFdoYXQgc2hvdWxkIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIHNlY29uZGFyeSBGTEFTSCBiZSBhbmQgaG93IGJpZwogICogaXMgaXQgKGluIE1ieXRlcyk/ICBUaGUgc2Vjb25kYXJ5IEZMQVNIIGlzIHdoaWNoZXZlciBpcyBjb25uZWN0ZWQKICAqIHRvICpDUzYuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFIDB4NjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9TSVpFIDIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRSAweDYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX1NJWkUgMgogCiAvKiBEZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTSB0byBhbGxvdyB1c2Ugb2YgU0RSQU1zIGxhcmdlciB0aGFuIDI1Nk1CeXRlcwogICovCkBAIC0xMDUsOCArMTA1LDggQEAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgU0RSQU0gRElNTSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1ieXRlcyk/ICBUaGlzIHdpbGwgbm9ybWFsbHkgYXV0by1jb25maWd1cmUgdmlhIHRoZSBTUEQuCiAqLwotI2RlZmluZSBDRkdfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU0wX1NJWkUgNjQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTTBfQkFTRSAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX1NJWkUgNjQKIAogLyoKICAqIE1lbW9yeSBtYXAgZXhhbXBsZSB3aXRoIDY0IE1CIERJTU06CkBAIC0xMjUsMTQgKzEyNSwxNCBAQAogICogICAgIDB4MDNGNSBGRkIwICAgICBCb2FyZCBJbmZvIERhdGEKICAqICAgICAweDAzRjYgMDAwMCAgICAgTWFsbG9jIEFyZW5hCiAgKgkgICAgIDoJCSAgICBDT05GSUdfRU5WX1NFQ1RfU0laRSwgMTZrCi0gKgkgICAgIDoJCSAgICBDRkdfTUFMTE9DX0xFTiwgICAgMTI4aworICoJICAgICA6CQkgICAgQ09ORklHX1NZU19NQUxMT0NfTEVOLCAgICAxMjhrCiAgKiAgICAgMHgwM0ZDIDAwMDAgICAgIFJBTSBDb3B5IG9mIE1vbml0b3IgQ29kZQotICoJICAgICA6CQkgICAgQ0ZHX01PTklUT1JfTEVOLCAgIDI1NmsKLSAqICAgICAweDAzRkYgRkZGRiAgICAgW0VuZCBvZiBSQU1dLCBDRkdfU0RSQU1fU0laRSAtIDEKKyAqCSAgICAgOgkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sICAgMjU2aworICogICAgIDB4MDNGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDEKICAqLwogCi0jZGVmaW5lIENPTkZJR19QT1NUCQkoQ0ZHX1BPU1RfTUVNT1JZIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWSB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0NQVSkKIAogCiAvKgpAQCAtMTk4LDcgKzE5OCw3IEBACiAgKiAgLSBSWCBjbGsgaXMgQ0xLMTEKICAqICAtIFRYIGNsayBpcyBDTEsxMgogICovCi0jIGRlZmluZSBDRkdfQ01YU0NSX1ZBTFVFCShDTVhTQ1JfUlMxQ1NfQ0xLMTEgIHwgQ01YU0NSX1RTMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhTQ1JfVkFMVUUJKENNWFNDUl9SUzFDU19DTEsxMSAgfCBDTVhTQ1JfVFMxQ1NfQ0xLMTIpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQogCkBAIC0yMDgsMTAgKzIwOCwxMCBAQAogICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfT05fRkNDLCBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMjIwLDcgKzIyMCw3IEBACiAvKgogICogQ29uZmlndXJlIGZvciBSQU0gdGVzdHMuCiAgKi8KLSN1bmRlZiAgQ0ZHX0RSQU1fVEVTVAkJCS8qIGNhbGxzIG90aGVyIHRlc3RzIGluIGJvYXJkLmMJKi8KKyN1bmRlZiAgQ09ORklHX1NZU19EUkFNX1RFU1QJCQkvKiBjYWxscyBvdGhlciB0ZXN0cyBpbiBib2FyZC5jCSovCiAKIAogLyoKQEAgLTIzNCwxMyArMjM0LDEzIEBACiAjZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9pb3BvcnQuaW9wX3BkYXRhCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDA4MDAJLyogTEVEIDAgaXMgb24gUEEuMjAJKi8KLSNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWikKKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFopCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9PRkYKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQxCQkweDAwMDAxMDAwCS8qIExFRCAxIGlzIG9uIFBBLjE5CSovCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoQ0ZHX0haKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKENPTkZJR19TWVNfSFopCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUxCVNUQVRVU19MRURfT0ZGCiAjZGVmaW5lIFNUQVRVU19MRURfQklUMgkJMHgwMDAwMjAwMAkvKiBMRUQgMiBpcyBvbiBQQS4xOAkqLwotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDIJKENGR19IWi8yKQorI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRDIJKENPTkZJR19TWVNfSFovMikKICNkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTIJU1RBVFVTX0xFRF9PTgogCiAjZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTAJCS8qIExFRCBvbiBmb3IgYml0ID09IDAJKi8KQEAgLTI5Myw4ICsyOTMsOCBAQAogICovCiAjdW5kZWYgIENPTkZJR19IQVJEX0kyQwkJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICNkZWZpbmUgQ09ORklHX1NPRlRfSTJDCQkxCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIFNvZnR3YXJlIChiaXQtYmFuZykgSTJDIGRyaXZlciBjb25maWd1cmF0aW9uCkBAIC00ODYsMTQgKzQ4NiwxNCBAQAogCiAKIC8qIHVuZGVmIHRoaXMgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAKIAogLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIKIAotI3VuZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgICAgICI+ICIKKyN1bmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICAgICAiPiAiCiAjZW5kaWYKIAogLyogV2hlbiBDT05GSUdfVElNRVNUQU1QIGlzIHNlbGVjdGVkLCB0aGUgdGltZXN0YW1wIChkYXRlIGFuZCB0aW1lKQpAQCAtNTMwLDcgKzUzMCw3IEBACiAKIAogLyogV2hlcmUgZG8gdGhlIGludGVybmFsIHJlZ2lzdGVycyBsaXZlPyAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIGRpc2FibGUgdGhlIHdhdGNoZG9nICovCiAKQEAgLTU0OCw3NiArNTQ4LDc2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19CT09UTV9IRUFERVJfUVVJRVQgMSAgICAgICAgLyogU3VwcHJlc3MgdGhlIGltYWdlIGhlYWRlciBkdW1wICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1fSEVBREVSX1FVSUVUIDEgICAgICAgIC8qIFN1cHByZXNzIHRoZSBpbWFnZSBoZWFkZXIgZHVtcCAgICAqLwogCQkJCQkvKiBpbiB0aGUgYm9vdG0gY29tbWFuZC4gICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNX1BST0dFU1NfUVVJRVQgMSAgICAgICAvKiBTdXBwcmVzcyB0aGUgcHJvZ3Jlc3MgZGlzcGxheXMsICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTV9QUk9HRVNTX1FVSUVUIDEgICAgICAgLyogU3VwcHJlc3MgdGhlIHByb2dyZXNzIGRpc3BsYXlzLCAgICovCiAJCQkJCS8qICIjIyA8bWVzc2FnZT4iIGZyb20gdGhlIGJvb3RtIGNtZCAqLwotI2RlZmluZSBDRkdfQk9PVFBfQ0hFQ0tfSE9TVE5BTUUgMSAgICAgIC8qIElmIGNoZWNraG9zdG5hbWUgZW52aXJvbm1lbnQgaXMgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQX0NIRUNLX0hPU1ROQU1FIDEgICAgICAvKiBJZiBjaGVja2hvc3RuYW1lIGVudmlyb25tZW50IGlzICAgKi8KIAkJCQkJLyogZGVmaW5lZCwgdGhlbiB0aGUgaG9zdG5hbWUgcGFyYW0gICovCiAJCQkJCS8qIHZhbGlkYXRlZCBhZ2FpbnN0IGNoZWNraG9zdG5hbWUuICAqLwotI2RlZmluZSBDRkdfQk9PVFBfUkVUUllfQ09VTlQgMHg0MDAwMDAwMCAvKiAjIG9mIHRpbWVvdXRzIGJlZm9yZSBnaXZpbmcgdXAgICAqLwotI2RlZmluZSBDRkdfQk9PVFBfU0hPUlRfUkFORE9NX0RFTEFZIDEgIC8qIFVzZSBhIHNob3J0IHJhbmRvbSBkZWxheSB2YWx1ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RQX1JFVFJZX0NPVU5UIDB4NDAwMDAwMDAgLyogIyBvZiB0aW1lb3V0cyBiZWZvcmUgZ2l2aW5nIHVwICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UUF9TSE9SVF9SQU5ET01fREVMQVkgMSAgLyogVXNlIGEgc2hvcnQgcmFuZG9tIGRlbGF5IHZhbHVlICAgICovCiAJCQkJCS8qIChsaW1pdGVkIHRvIG1heGltdW0gb2YgMTAyNCBtc2VjKSAqLwotI2RlZmluZSBDRkdfQ0hLX0ZPUl9BQk9SVF9BVF9MRUFTVF9PTkNFIDEKKyNkZWZpbmUgQ09ORklHX1NZU19DSEtfRk9SX0FCT1JUX0FUX0xFQVNUX09OQ0UgMQogCQkJCQkvKiBDaGVjayBmb3IgYWJvcnQga2V5IHByZXNzZXMgICAgICAgKi8KIAkJCQkJLyogYXQgbGVhc3Qgb25jZSBpbiBkZXBlbmRlbnQgb2YgdGhlICovCiAJCQkJCS8qIENPTkZJR19CT09UREVMQVkgdmFsdWUuICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUIDEgICAgICAgIC8qIERvbid0IHByaW50IGNvbnNvbGUgQCBzdGFydHVwICAgICAqLwotI2RlZmluZSBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04gMSAgICAgIC8qIEVjaG8gdGhlIGludmVydGVkIEV0aGVybmV0IGxpbmsgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVCAxICAgICAgICAvKiBEb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTiAxICAgICAgLyogRWNobyB0aGUgaW52ZXJ0ZWQgRXRoZXJuZXQgbGluayAgICovCiAJCQkJCS8qIHN0YXRlIHRvIHRoZSBmYXVsdCBMRUQuICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfRkFVTFRfTUlJX0FERFIgMHgwMiAgICAgICAgIC8qIE1JSSBhZGRyIG9mIHRoZSBQSFkgdG8gY2hlY2sgZm9yICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZBVUxUX01JSV9BRERSIDB4MDIgICAgICAgICAvKiBNSUkgYWRkciBvZiB0aGUgUEhZIHRvIGNoZWNrIGZvciAgKi8KIAkJCQkJLyogdGhlIEV0aGVybmV0IGxpbmsgc3RhdGUuICAgICAgICAgICovCi0jZGVmaW5lIENGR19TVEFUVVNfRkxBU0hfVU5USUxfVEZUUF9PSyAxIC8qIEtlZXBpbmcgdGhlIHN0YXR1cyBMRUQgZmxhc2hpbmcgICovCisjZGVmaW5lIENPTkZJR19TWVNfU1RBVFVTX0ZMQVNIX1VOVElMX1RGVFBfT0sgMSAvKiBLZWVwaW5nIHRoZSBzdGF0dXMgTEVEIGZsYXNoaW5nICAqLwogCQkJCQkvKiB1bnRpbCB0aGUgVEZUUCBpcyBzdWNjZXNzZnVsLiAgICAgKi8KLSNkZWZpbmUgQ0ZHX1NUQVRVU19PRkZfQUZURVJfTkVUQk9PVCAxICAvKiBBZnRlciBhIHN1Y2Nlc3NmdWwgbmV0Ym9vdCwgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TVEFUVVNfT0ZGX0FGVEVSX05FVEJPT1QgMSAgLyogQWZ0ZXIgYSBzdWNjZXNzZnVsIG5ldGJvb3QsICAgICAgICovCiAJCQkJCS8qIHR1cm4gb2ZmIHRoZSBTVEFUVVMgTEVEcy4gICAgICAgICAqLwotI2RlZmluZSBDRkdfVEZUUF9CTElOS19TVEFUVVNfT05fREFUQV9JTiAxIC8qIEJsaW5rIHN0YXR1cyBMRUQgYmFzZWQgb24gICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfQkxJTktfU1RBVFVTX09OX0RBVEFfSU4gMSAvKiBCbGluayBzdGF0dXMgTEVEIGJhc2VkIG9uICAgICAgKi8KIAkJCQkJLyogaW5jb21pbmcgZGF0YS4gICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19URlRQX0JMT0NLU19QRVJfSEFTSCAxMDAgICAgLyogRm9yIGV2ZXJ5IFhYIGJsb2Nrcywgb3V0cHV0IGEgJyMnICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9CTE9DS1NfUEVSX0hBU0ggMTAwICAgIC8qIEZvciBldmVyeSBYWCBibG9ja3MsIG91dHB1dCBhICcjJyAqLwogCQkJCQkvKiB0byBzaWduaWZ5IHRoYXQgdGZ0cCBpcyBtb3ZpbmcuICAgKi8KLSNkZWZpbmUgQ0ZHX1RGVFBfSEFTSEVTX1BFUl9GTEFTSCAyMDAgICAvKiBGb3IgZXZlcnkgJyMnIGhhc2hlcywgICAgICAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URlRQX0hBU0hFU19QRVJfRkxBU0ggMjAwICAgLyogRm9yIGV2ZXJ5ICcjJyBoYXNoZXMsICAgICAgICAgICAgICovCiAJCQkJCS8qIGZsYXNoIHRoZSBzdGF0dXMgTEVELiAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfVEZUUF9IQVNIRVNfUEVSX0xJTkUgNjUgICAgIC8qIE9ubHkgb3V0cHV0IFhYICcjJ3MgcGVyIGxpbmUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfSEFTSEVTX1BFUl9MSU5FIDY1ICAgICAvKiBPbmx5IG91dHB1dCBYWCAnIydzIHBlciBsaW5lICAgICAgKi8KIAkJCQkJLyogZHVyaW5nIHRoZSB0ZnRwIGZpbGUgdHJhbnNmZXIuICAgICovCi0jZGVmaW5lIENGR19URlRQX1BST0dFU1NfUVVJRVQgMSAgICAgICAgLyogU3VwcHJlc3MgdGhlIHByb2dyZXNzIGRpc3BsYXlzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfVEZUUF9QUk9HRVNTX1FVSUVUIDEgICAgICAgIC8qIFN1cHByZXNzIHRoZSBwcm9ncmVzcyBkaXNwbGF5cyAgICAqLwogCQkJCQkvKiAnIydzIGZyb20gdGhlIHRmdHAgY29tbWFuZC4gICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1RGVFBfU1RBVFVTX1FVSUVUIDEgICAgICAgICAvKiBTdXBwcmVzcyB0aGUgc3RhdHVzIGRpc3BsYXlzICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19URlRQX1NUQVRVU19RVUlFVCAxICAgICAgICAgLyogU3VwcHJlc3MgdGhlIHN0YXR1cyBkaXNwbGF5cyAgICAgICovCiAJCQkJCS8qIGlzc3VlZCBkdXJpbmcgdGhlIHRmdHAgY29tbWFuZC4gICAqLwotI2RlZmluZSBDRkdfVEZUUF9USU1FT1VUX0NPVU5UIDUgICAgICAgIC8qIEhvdyBtYW55IHRpbWVvdXRzIFRGVFAgd2lsbCBhbGxvdyAqLworI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfVElNRU9VVF9DT1VOVCA1ICAgICAgICAvKiBIb3cgbWFueSB0aW1lb3V0cyBURlRQIHdpbGwgYWxsb3cgKi8KIAkJCQkJLyogYmVmb3JlIGl0IGdpdmVzIHVwLiAgICAgICAgICAgICAgICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkgICAgICovCiAjZWxzZQotIyAgZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkgICAgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkgICAgICovCiAjZW5kaWYKIAogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkgIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkgIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTMyCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMzIJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KIAotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMDAwICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVCAgICAgICAgICAgICAgICAgLyogU2VsZWN0IGZ1bGwtZmVhdHVyZWQgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgyMDAwCS8qIG1lbXRlc3Qgd29ya3MgZnJvbSB0aGUgZW5kIG9mICovCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QgICAgICAgICAgICAgICAgIC8qIFNlbGVjdCBmdWxsLWZlYXR1cmVkIG1lbW9yeSB0ZXN0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDIwMDAJLyogbWVtdGVzdCB3b3JrcyBmcm9tIHRoZSBlbmQgb2YgKi8KIAkJCQkJLyogdGhlIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKi8KIAkJCQkJLyogdG8gdGhlIGVuZCBvZiB0aGUgRFJBTSAgKi8KIAkJCQkJLyogbGVzcyBtb25pdG9yIGFuZCBtYWxsb2MgYXJlYSAqLwotI2RlZmluZSBDRkdfU1RBQ0tfVVNBR0UJCTB4MTAwMDAgLyogUmVzZXJ2ZSA2NGsgZm9yIHRoZSBzdGFjayB1c2FnZSAqLwotI2RlZmluZSBDRkdfTUVNX0VORF9VU0FHRQkoIENGR19NT05JVE9SX0xFTiBcCi0JCQkJKyBDRkdfTUFMTE9DX0xFTiBcCisjZGVmaW5lIENPTkZJR19TWVNfU1RBQ0tfVVNBR0UJCTB4MTAwMDAgLyogUmVzZXJ2ZSA2NGsgZm9yIHRoZSBzdGFjayB1c2FnZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTV9FTkRfVVNBR0UJKCBDT05GSUdfU1lTX01PTklUT1JfTEVOIFwKKwkJCQkrIENPTkZJR19TWVNfTUFMTE9DX0xFTiBcCiAJCQkJKyBDT05GSUdfRU5WX1NFQ1RfU0laRSBcCi0JCQkJKyBDRkdfU1RBQ0tfVVNBR0UgKQorCQkJCSsgQ09ORklHX1NZU19TVEFDS19VU0FHRSApCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoIENGR19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQgXAotCQkJCS0gQ0ZHX01FTV9FTkRfVVNBR0UgKQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkoIENPTkZJR19TWVNfU0RSQU1fU0laRSAqIDEwMjQgKiAxMDI0IFwKKwkJCQktIENPTkZJR19TWVNfTUVNX0VORF9VU0FHRSApCiAKIC8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC02MjUsMTEyICs2MjUsMTEyIEBACiAgKiBZb3Ugc2hvdWxkIGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBtYWtlIGNoYW5nZXMgaGVyZS4KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCUNGR19GTEFTSDBfQkFTRQotI2RlZmluZSBDRkdfRkxBU0hfU0laRQlDRkdfRkxBU0gwX1NJWkUKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJQ0ZHX1NEUkFNMF9CQVNFCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCUNGR19TRFJBTTBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJQ09ORklHX1NZU19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJQ09ORklHX1NZU19GTEFTSDBfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJQ09ORklHX1NZU19TRFJBTTBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJQ09ORklHX1NZU19TRFJBTTBfU0laRQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkIFJlc2V0IENvbmZpZ3VyYXRpb24gV29yZHMKICAqLwotI2lmIGRlZmluZWQoQ0ZHX1NCQ19CT09UX0xPVykKLSMgIGRlZmluZSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgIChIUkNXX0NJUCB8IEhSQ1dfQk1TKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19TQkNfQk9PVF9MT1cpCisjICBkZWZpbmUgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCiAjZWxzZQotIyAgZGVmaW5lICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKDApCi0jZW5kaWYgLyogZGVmaW5lZChDRkdfU0JDX0JPT1RfTE9XKSAqLworIyAgZGVmaW5lICBDT05GSUdfU1lTX1NCQ19IUkNXX0JPT1RfRkxBR1MgICgwKQorI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1NZU19TQkNfQk9PVF9MT1cpICovCiAKLS8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDRkdfSU1NUiAqLwotI2RlZmluZSBDRkdfU0JDX0hSQ1dfSU1NUgkoICgoQ0ZHX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfCBcCi0JCQkJICAoKENGR19JTU1SICYgMHgwMTAwMDAwMCkgPj4gIDcpIHwgXAotCQkJCSAgKChDRkdfSU1NUiAmIDB4MDAxMDAwMDApID4+ICA0KSApCisvKiBnZXQgdGhlIEhSQ1cgSVNCIGZpZWxkIGZyb20gQ09ORklHX1NZU19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfU0JDX0hSQ1dfSU1NUgkoICgoQ09ORklHX1NZU19JTU1SICYgMHgxMDAwMDAwMCkgPj4gMTApIHwgXAorCQkJCSAgKChDT05GSUdfU1lTX0lNTVIgJiAweDAxMDAwMDAwKSA+PiAgNykgfCBcCisJCQkJICAoKENPTkZJR19TWVNfSU1NUiAmIDB4MDAxMDAwMDApID4+ICA0KSApCiAKLSNkZWZpbmUgQ0ZHX0hSQ1dfTUFTVEVSCQkoIEhSQ1dfQlBTMTAJCQkJfCBcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19NQVNURVIJCSggSFJDV19CUFMxMAkJCQl8IFwKIAkJCQkgIEhSQ1dfRFBQQzExCQkJCXwgXAotCQkJCSAgQ0ZHX1NCQ19IUkNXX0lNTVIJCQl8IFwKKwkJCQkgIENPTkZJR19TWVNfU0JDX0hSQ1dfSU1NUgkJCXwgXAogCQkJCSAgSFJDV19NTVIwMAkJCQl8IFwKIAkJCQkgIEhSQ1dfTEJQQzExCQkJCXwgXAogCQkJCSAgSFJDV19BUFBDMTAJCQkJfCBcCiAJCQkJICBIUkNXX0NTMTBQQzAwCQkJCXwgXAotCQkJCSAgKENGR19TQkNfTU9EQ0tfSCAmIEhSQ1dfTU9EQ0tfSDExMTEpCXwgXAotCQkJCSAgQ0ZHX1NCQ19IUkNXX0JPT1RfRkxBR1MgKQorCQkJCSAgKENPTkZJR19TWVNfU0JDX01PRENLX0ggJiBIUkNXX01PRENLX0gxMTExKQl8IFwKKwkJCQkgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyApCiAKIC8qIG5vIHNsYXZlcyAqLwotI2RlZmluZSBDRkdfSFJDV19TTEFWRTEJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUyCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMwkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTQJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU1CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNgkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMQkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUyCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTMJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU1CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTYJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNwkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKLSAqIE5vdGUgYWxzbyB0aGF0IHRoZSBsb2dpYyB0aGF0IHNldHMgQ0ZHX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIE5vdGUgYWxzbyB0aGF0IHRoZSBsb2dpYyB0aGF0IHNldHMgQ09ORklHX1NZU19SQU1CT09UIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4KICAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSDBfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CQkqLwotI3VuZGVmICBDRkdfRkxBU0hfUFJPVEVDVElPTgkJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSg2NCs0KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQJCSovCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJLyogdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJKDY0KzQpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkxCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTgwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJMQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNpZm5kZWYgQ0ZHX1JBTUJPT1QKKyNpZm5kZWYgQ09ORklHX1NZU19SQU1CT09UCiAjICBkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKICMgIGlmZGVmIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QKLSMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyMgICAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQogIyAgICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogIyAgZWxzZQotIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSIChDRkdfRkxBU0hfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSIChDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJMHgxMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwIC8qIHNlZSBSRUFETUUgLSBlbnYgc2VjdCByZWFsIHNpemUJKi8KICMgIGVuZGlmIC8qIENPTkZJR19FTlZfSU5fT1dOX1NFQ1QgKi8KIAogI2Vsc2UKICMgIGRlZmluZSBDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEKLSMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogIyAgZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAKLSNlbmRpZiAvKiBDRkdfUkFNQk9PVCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfUkFNQk9PVCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjYwIENQVSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03NDMsMzcgKzc0MywzNyBAQAogICoKICAqIEhJRDEgaGFzIG9ubHkgcmVhZC1vbmx5IGluZm9ybWF0aW9uIC0gbm90aGluZyB0byBzZXQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkoSElEMF9JQ0UgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCShISUQwX0lDRSAgfFwKIAkJCSBISUQwX0RDRSAgfFwKIAkJCSBISUQwX0lDRkkgfFwKIAkJCSBISUQwX0RDSSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSkKIAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkoSElEMF9JQ0UgIHxcCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkoSElEMF9JQ0UgIHxcCiAJCQkgSElEMF9JRkVNIHxcCiAJCQkgSElEMF9BQkUgIHxcCiAJCQkgSElEMF9FTUNQKQotI2RlZmluZSBDRkdfSElEMgkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJNUiAtIFJlc2V0IE1vZGUgUmVnaXN0ZXIKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUk1SCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUk1SCQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEJDUiAtIEJ1cyBDb25maWd1cmF0aW9uCQkJCQkgNC0yNQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19CQ1IJCShCQ1JfRVRNKQorI2RlZmluZSBDT05GSUdfU1lTX0JDUgkJKEJDUl9FVE0pCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNJVU1DUiAtIFNJVSBNb2R1bGUgQ29uZmlndXJhdGlvbgkJCQkgNC0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RQUEMxMQl8XAorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RQUEMxMQl8XAogCQkJIFNJVU1DUl9MMkNQQzAwIHxcCiAJCQkgU0lVTUNSX0FQUEMxMAl8XAogCQkJIFNJVU1DUl9NTVIwMCkKQEAgLTc4Niw3ICs3ODYsNyBAQAogICogV2F0Y2hkb2cgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIDYweCBCdXMgTW9uaXRvciBlbmFibGUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8XAogCQkJIFNZUENSX0JNVCAgfFwKIAkJCSBTWVBDUl9QQk1FIHxcCiAJCQkgU1lQQ1JfTEJNRSB8XApAQCAtNzk0LDcgKzc5NCw3IEBACiAJCQkgU1lQQ1JfU1dQICB8XAogCQkJIFNZUENSX1NXRSkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHxcCiAJCQkgU1lQQ1JfQk1UICB8XAogCQkJIFNZUENSX1BCTUUgfFwKIAkJCSBTWVBDUl9MQk1FIHxcCkBAIC04MDgsNyArODA4LDcgQEAKICAqIENsZWFyIG9uY2UgcGVyIFNlY29uZCBhbmQgQWxhcm0gSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywKICAqIGFuZCBlbmFibGUgVGltZSBDb3VudGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1RNQ05UU0MJKFRNQ05UU0NfU0VDIHxcCisjZGVmaW5lIENPTkZJR19TWVNfVE1DTlRTQwkoVE1DTlRTQ19TRUMgfFwKIAkJCSBUTUNOVFNDX0FMUiB8XAogCQkJIFRNQ05UU0NfVENGIHxcCiAJCQkgVE1DTlRTQ19UQ0UpCkBAIC04MTksNyArODE5LDcgQEAKICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIFNldCAzMktIeiB0aW1lcnNjbGssIGFuZCBlbmFibGUKICAqIFBlcmlvZGljIHRpbWVyCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgIHxcCiAJCQkgUElTQ1JfUFRGIHxcCiAJCQkgUElTQ1JfUFRFKQogCkBAIC04MjcsMTMgKzgyNywxMyBAQAogICogU0NDUiAtIFN5c3RlbSBDbG9jayBDb250cm9sCQkJCQkgOS04CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJMAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSQ0NSIC0gUklTQyBDb250cm9sbGVyIENvbmZpZ3VyYXRpb24JCQkJMTMtNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19SQ0NSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19SQ0NSCTAKIAogLyoKICAqIEluaXRpYWxpemUgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC04NzIsNyArODcyLDcgQEAKICAqICAgICAtIE5vIGRhdGEgcGlwZWxpbmluZyBpcyBkb25lCiAgKiAgICAgLSBWYWxpZAogICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoQ0ZHX0ZMQVNIMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoQ09ORklHX1NZU19GTEFTSDBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzE2CQkJfFwKIAkJCSBCUnhfTVNfR1BDTV9QCQkJfFwKIAkJCSBCUnhfVikKQEAgLTg5MSw3ICs4OTEsNyBAQAogICogICAgIC0gT25lIGlkbGUgY2xvY2sgaXMgaW5zZXJ0ZWQgYmV0d2VlbiBhIHJlYWQgYWNjZXNzIGZyb20gdGhlCiAgKgkgY3VycmVudCBiYW5rIGFuZCB0aGUgbmV4dCBhY2Nlc3MuCiAgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKE1FR19UT19BTShDRkdfRkxBU0gwX1NJWkUpCXxcCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0gwX1NJWkUpCXxcCiAJCQkgT1J4R19DU05UCQkJfFwKIAkJCSBPUnhHX0FDU19ESVYxCQkJfFwKIAkJCSBPUnhHX1NDWV81X0NMSwkJCXxcCkBAIC05MjEsMTIgKzkyMSwxMiBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JKChDRkdfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JKChDT05GSUdfU1lTX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfNjQJCQl8XAogCQkJIEJSeF9NU19TRFJBTV9QCQkJfFwKIAkJCSBCUnhfVikKIAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkoKENGR19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU182NAkJCXxcCiAJCQkgQlJ4X01TX1NEUkFNX1AJCQl8XAogCQkJIEJSeF9WKQpAQCAtOTQwLDggKzk0MCw4IEBACiAgKiAgICAgLSBCYWNrLXRvLWJhY2sgcGFnZSBtb2RlCiAgKiAgICAgLSBJbnRlcm5hbCBiYW5rIGludGVybGVhdmluZyB3aXRoaW4gc2F2ZSBkZXZpY2UgZW5hYmxlZAogICovCi0jaWYgKENGR19TRFJBTTBfU0laRSA9PSA2NCkKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKE1FR19UT19BTShDRkdfU0RSQU0wX1NJWkUpCXxcCisjaWYgKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgPT0gNjQpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoTUVHX1RPX0FNKENPTkZJR19TWVNfU0RSQU0wX1NJWkUpCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E4CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKQEAgLTk1OSw3ICs5NTksNyBAQAogICovCiAjZGVmaW5lIFNEUkFNX1NQRF9BRERSIDB4NTAKIAotI2lmIChDRkdfU0RSQU0wX1NJWkUgPT0gNjQpCisjaWYgKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgPT0gNjQpCiAvKiBXaXRoIGEgNjQgTUIgRElNTSwgdGhlIFBTRE1SIGlzIGNvbmZpZ3VyZWQgYXMgZm9sbG93czoKICAqCiAgKiAgICAgLSBCYW5rIEJhc2VkIEludGVybGVhdmluZywKQEAgLTk3Nyw3ICs5NzcsNyBAQAogICogICAgIC0gZWFybGllc3QgdGltaW5nIGZvciBQUkVDSEFSR0UgYWZ0ZXIgbGFzdCBkYXRhIHdhcyB3cml0dGVuIGlzIDEgY2xvY2ssCiAgKiAgICAgLSBDQVMgTGF0ZW5jeSBpcyAyLgogICovCi0jZGVmaW5lIENGR19QU0RNUgkoUFNETVJfUkZFTgkgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTRfSVNfQTUgfFwKIAkJCSBQU0RNUl9CU01BX0ExNF9BMTYgICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTkgIHxcCkBAIC05OTUsMTQgKzk5NSwxNCBAQAogICogU2hvb3QgZm9yIGFwcHJveGltYXRlbHkgMU1IeiBvbiB0aGUgcHJlc2NhbGVyLgogICovCiAjaWYgKENPTkZJR184MjYwX0NMS0lOID49ICg2MCAqIDEwMDAgKiAxMDAwKSkKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVY2NAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVY2NAogI2VsaWYgKENPTkZJR184MjYwX0NMS0lOID49ICgzMCAqIDEwMDAgKiAxMDAwKSkKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYzMgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYzMgogI2Vsc2UKLSN3YXJuaW5nICJVbmNvbmZpZ3VyZWQgYnVzIGNsb2NrIGZyZXE6IGNoZWNrIENGR19NUFRQUiBhbmQgQ0ZHX1BTUlQgYXJlIE9LIgotI2RlZmluZSBDRkdfTVBUUFIJTVBUUFJfUFRQX0RJVjMyCisjd2FybmluZyAiVW5jb25maWd1cmVkIGJ1cyBjbG9jayBmcmVxOiBjaGVjayBDT05GSUdfU1lTX01QVFBSIGFuZCBDT05GSUdfU1lTX1BTUlQgYXJlIE9LIgorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSCU1QVFBSX1BUUF9ESVYzMgogI2VuZGlmCi0jZGVmaW5lIENGR19QU1JUCTE0CisjZGVmaW5lIENPTkZJR19TWVNfUFNSVAkxNAogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwMTcsNyArMTAxNyw3IEBACiAgKgogICogVGhlIHNlY29uZGFyeSBGTEFTSCBpcyBjb25uZWN0ZWQgdG8gKkNTNgogICovCi0jaWYgKGRlZmluZWQoQ0ZHX0ZMQVNIMV9CQVNFKSAmJiBkZWZpbmVkKENGR19GTEFTSDFfU0laRSkpCisjaWYgKGRlZmluZWQoQ09ORklHX1NZU19GTEFTSDFfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIMV9TSVpFKSkKIAogLyogQlI2IGlzIGNvbmZpZ3VyZWQgYXMgZm9sbG93czoKICAqCkBAIC0xMDMxLDcgKzEwMzEsNyBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSMgIGRlZmluZSBDRkdfQlI2X1BSRUxJTSAgKChDRkdfRkxBU0gxX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorIyAgZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSAgIEJSeF9QU18xNgkJCSAgfFwKIAkJCSAgIEJSeF9NU19HUENNX1AJCSAgfFwKIAkJCSAgIEJSeF9WKQpAQCAtMTA1MCwxMyArMTA1MCwxMyBAQAogICogICAgIC0gT25lIGlkbGUgY2xvY2sgaXMgaW5zZXJ0ZWQgYmV0d2VlbiBhIHJlYWQgYWNjZXNzIGZyb20gdGhlCiAgKgkgY3VycmVudCBiYW5rIGFuZCB0aGUgbmV4dCBhY2Nlc3MuCiAgKi8KLSMgIGRlZmluZSBDRkdfT1I2X1BSRUxJTSAgKE1FR19UT19BTShDRkdfRkxBU0gxX1NJWkUpICB8XAorIyAgZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTSAgKE1FR19UT19BTShDT05GSUdfU1lTX0ZMQVNIMV9TSVpFKSAgfFwKIAkJCSAgIE9SeEdfQ1NOVAkJICAgICAgIHxcCiAJCQkgICBPUnhHX0FDU19ESVYxCSAgICAgICB8XAogCQkJICAgT1J4R19TQ1lfNV9DTEsJICAgICAgIHxcCiAJCQkgICBPUnhHX1RSTFgJCSAgICAgICB8XAogCQkJICAgT1J4R19FSFRSKQotI2VuZGlmIC8qIChkZWZpbmVkKENGR19GTEFTSDFfQkFTRSkgJiYgZGVmaW5lZChDRkdfRkxBU0gxX1NJWkUpKSAqLworI2VuZGlmIC8qIChkZWZpbmVkKENPTkZJR19TWVNfRkxBU0gxX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSDFfU0laRSkpICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NiYzI0MTB4LmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjMjQxMHguaAppbmRleCAxMTBhYjM5Li5kN2E2YWU0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjMjQxMHguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjMjQxMHguaApAQCAtNTcsOCArNTcsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC0xMjUsMjYgKzEyNSwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJbIH5samhAR0RMQyBdIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJIlsgfmxqaEBHRExDIF0jICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MzAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MzNGMDAwMDAJLyogNjMgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgzMDAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MzNGMDAwMDAJLyogNjMgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MzMwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MzMwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAogLyogdGhlIFBXTSBUSW1lciA0IHVzZXMgYSBjb3VudGVyIG9mIDE1NjI1IGZvciAxMCBtcywgc28gd2UgbmVlZCAqLwogLyogaXQgdG8gd3JhcCAxMDAgdGltZXMgKHRvdGFsIDE1NjI1MDApIHRvIGdldCAxIHNlYy4gKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTU2MjUwMAorI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTU2MjUwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNjYsNyArMTY2LDcgQEAKIAogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCTB4MDAwMDAwMDAgLyogRmxhc2ggQmFuayAjMSAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgpAQCAtMTc1LDIzICsxNzUsMjMgQEAKIAogI2RlZmluZSBDT05GSUdfQU1EX0xWODAwCTEJLyogdW5jb21tZW50IHRoaXMgaWYgeW91IGhhdmUgYSBMVjgwMCBmbGFzaCAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAKICNpZmRlZiBDT05GSUdfQU1EX0xWODAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDEwMDAwMCAvKiAxTUIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCSgxOSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwRjAwMDApIC8qIGFkZHIgb2YgZW52aXJvbm1lbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMTkpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDBGMDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfQU1EX0xWNDAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDA4MDAwMCAvKiA1MTJLQiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDExKQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDA3MDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDcwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCiAjZW5kaWYKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwpAQCAtMjAwLDcgKzIwMCw3IEBACiAgKiBOQU5EIGZsYXNoIHNldHRpbmdzCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfTkFORCkKLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCS8qIE1heCBudW1iZXIgb2YgTkFORCBkZXZpY2VzCQkqLwogI2RlZmluZSBTRUNUT1JTSVpFIDUxMgogCiAjZGVmaW5lIEFERFJfQ09MVU1OIDEKQEAgLTIzMSw4ICsyMzEsOCBAQAogI2RlZmluZSBDT05GSUdfSU5JVFJEX1RBRwogI2RlZmluZSBDT05GSUdfQ01ETElORV9UQUcKIAotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAgICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAgICI+ICIKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYmM0MDUuaCBiL2luY2x1ZGUvY29uZmlncy9zYmM0MDUuaAppbmRleCA3NTllNGUyLi5kOTNjYTJkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjNDA1LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NiYzQwNS5oCkBAIC0xMjUsNDggKzEyNSw0OCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSN1bmRlZiBDRkdfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI3VuZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCS8qIG5vIGV4dGVybmFsIHNlcmlhbCBjbG9jayB1c2VkICovCi0jZGVmaW5lIENGR19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCi0jZGVmaW5lIENGR19CQVNFX0JBVUQJCTY5MTIwMAorI3VuZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkJLyogbm8gZXh0ZXJuYWwgc2VyaWFsIGNsb2NrIHVzZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5CS8qIGlnbm9yZSBwcGM0MDVncCBlcnJhdGEgIzU5CSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECQk2OTEyMDAKIAogLyogVGhlIGZvbGxvd2luZyB0YWJsZSBpbmNsdWRlcyB0aGUgc3VwcG9ydGVkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCQkJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQkJCQkJXAogCXsgMzAwLCA2MDAsIDEyMDAsIDI0MDAsIDQ4MDAsIDk2MDAsIDE5MjAwLCAzODQwMCwJXAogCSA1NzYwMCwgMTE1MjAwLCAyMzA0MDAsIDQ2MDgwMCwgOTIxNjAwIH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JMQkJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2luZm8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUQkRJTkZPCTEJCS8qIFRvIHVzZSBleHRlbmRlZCBib2FyZF9pbmZvIChiZF90KSAqLwogCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUJMQkvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCiAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJMTYJLyogdXNlIDE2IHJ4IGJ1ZmZlciBvbiA0MDUgZW1hYyAqLwogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjdW5kZWYgIENPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0xODMsNTEgKzE4Myw1MSBAQAogCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBwcmludCBwY2kgZGV2aWNlcyBAIHN0YXJ0dXAJKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRAkweDEyRkUJLyogUENJIFZlbmRvciBJRDogZXNkIGdtYmgJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQJMHgwNDA4CS8qIFBDSSBEZXZpY2UgSUQ6IFBNQy00MDUJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0xTVMJMHhmYzAwMDAwMQkvKiA2NE1CLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSQkweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMkxBCTB4ZmZjMDAwMDAJLyogcG9pbnQgdG8gZmxhc2gJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMk1TCTB4ZmZjMDAwMDEJLyogNE1CLCBlbmFibGUJCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJQQ0kJMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQJMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRAkweDA0MDgJLyogUENJIERldmljZSBJRDogUE1DLTQwNQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCTB4MDAwMDAwMDAJLyogcG9pbnQgdG8gc2RyYW0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSQkweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweGZmYzAwMDAwCS8qIHBvaW50IHRvIGZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJMHhmZmMwMDAwMQkvKiA0TUIsIGVuYWJsZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kJMHgwNDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4RkZGQzAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkweEZGRkMwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCQkqLwotI2RlZmluZSBDRkdfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAKLSN1bmRlZiBDRkdfRkxBU0hfUFJPVEVDVElPTgkJLyogZG9uJ3QgdXNlIGhhcmR3YXJlIHByb3RlY3Rpb24JKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfSU5DUkVNRU5UCTB4MDEwMDAwMDAKKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JCS8qIGRvbid0IHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAoaW4gbXMpCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW52aXJvbm1lbnQgVmFyaWFibGUgc2V0dXAKICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJQ0ZHX0ZMQVNIX0JBU0UJLyogc3RhcnRpbmcgcmlnaHQgYXQgdGhlIGJlZ2lubmluZwkqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIHN0YXJ0aW5nIHJpZ2h0IGF0IHRoZSBiZWdpbm5pbmcJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkwCS8qIHN0YXJ0aW5nIHJpZ2h0IGF0IHRoZSBiZWdpbm5pbmcJKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiBzZWUgUkVBRE1FIC0gZW52IHNlY3RvciB0b3RhbCBzaXplCSovCkBAIC0yMzYsMjggKzIzNiwyOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLwotI2RlZmluZSBGTEFTSDBfQkEJQ0ZHX0ZMQVNIX0JBU0UJCS8qIEZMQVNIIDAgQmFzZSBBZGRyZXNzCQkqLworI2RlZmluZSBGTEFTSDBfQkEJQ09ORklHX1NZU19GTEFTSF9CQVNFCQkvKiBGTEFTSCAwIEJhc2UgQWRkcmVzcwkJKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggQmFuayAwKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkweDkyMDE1NDgwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJRkxBU0gwX0JBIHwgMHg5QzAwMCAvKiBCQVM9MHhGRjAsQlM9MTZNQixCVT1SL1csQlc9MzJiaXQqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkweDkyMDE1NDgwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCUZMQVNIMF9CQSB8IDB4OUMwMDAgLyogQkFTPTB4RkYwLEJTPTE2TUIsQlU9Ui9XLEJXPTMyYml0Ki8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBkYXRhIGNhY2hlKQogICovCiAKIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoIE9DTSApIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTQkxCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQogCiAvKiBPbiBDaGlwIE1lbW9yeSBsb2NhdGlvbiAqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCiAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECUNGR19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECUNPTkZJR19TWVNfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEVFUFJPTSBhZGRyZXNzCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODI0MC5oIGIvaW5jbHVkZS9jb25maWdzL3NiYzgyNDAuaAppbmRleCAxMGZmN2FiLi5kMTlhNzg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODI0MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYmM4MjQwLmgKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJOTYwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfUFJFQk9PVCAgImVjaG87ZWNobyBXZWxjb21lIHRvIFUtQm9vdCBmb3IgdGhlIHNiYzgyNDA7ZWNobztlY2hvIFR5cGUgXCI/IG9yIGhlbHBcIiB0byBnZXQgb24tbGluZSBoZWxwO2VjaG8iCiAKQEAgLTEwNiwxNSArMTA2LDE1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAogI2lmIDEKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCiAjZW5kaWYKLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfRVRIQUREUiAgICAgICAgICBERTpBRDpCRTpFRjowMTowMSAgICAvKiBFdGhlcm5ldCBhZGRyZXNzICovCkBAIC0xMjYsNyArMTI2LDcgQEAKICNkZWZpbmUgQ09ORklHX0JPQVJEX1NQRUNJRklDX0xFRCAgICAgICAvKiB2ZXJzaW9uIGhhcyBib2FyZCBzcGVjaWZpYyBsZWRzICovCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQgICAgICAgICAgMHgwMDAwMDAwMQotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRCAgICAgICAoQ0ZHX0haIC8gMikKKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QgICAgICAgKENPTkZJR19TWVNfSFogLyAyKQogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFICAgICAgICBTVEFUVVNfTEVEX0JMSU5LSU5HCiAjZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFICAgICAgIDAgICAgICAgLyogTEVEIG9uIGZvciBiaXQgPT0gMCAgKi8KICNkZWZpbmUgU1RBVFVTX0xFRF9CT09UICAgICAgICAgMCAgICAgICAvKiBMRUQgMCB1c2VkIGZvciBib290IHN0YXR1cyAqLwpAQCAtMTM3LDE1ICsxMzcsMTUgQEAKIAogI2RlZmluZSBfX2xlZF90b2dnbGUoX21zaykgXAogCWRvIHsgXAotCQkqKCh2b2xhdGlsZSBjaGFyICopIChDRkdfTEVEX0JBU0UpKSBePSAoX21zayk7IFwKKwkJKigodm9sYXRpbGUgY2hhciAqKSAoQ09ORklHX1NZU19MRURfQkFTRSkpIF49IChfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9zZXQoX21zaywgX3N0KSBcCiAJZG8geyBcCiAJCWlmICgoX3N0KSkgXAotCQkJKigodm9sYXRpbGUgY2hhciAqKSAoQ0ZHX0xFRF9CQVNFKSkgfD0gKF9tc2spOyBcCisJCQkqKCh2b2xhdGlsZSBjaGFyICopIChDT05GSUdfU1lTX0xFRF9CQVNFKSkgfD0gKF9tc2spOyBcCiAJCWVsc2UgXAotCQkJKigodm9sYXRpbGUgY2hhciAqKSAoQ0ZHX0xFRF9CQVNFKSkgJj0gfihfbXNrKTsgXAorCQkJKigodm9sYXRpbGUgY2hhciAqKSAoQ09ORklHX1NZU19MRURfQkFTRSkpICY9IH4oX21zayk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgX19sZWRfaW5pdChtc2ssIHN0KSBfX2xlZF9zZXQobXNrLCBzdCkKQEAgLTE1Myw0NCArMTUzLDQ0IEBACiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfTUlTQ19JTklUX1IKLSNkZWZpbmUgQ0ZHX0xFRF9CQVNFCTB4RkZFODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQkFTRQkweEZGRTgwMDAwCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplCiAgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDAwMTAwMDAwCS8qIERlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkgICAgMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweEZGRjAwMDAwCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgIDB4RkZGMDAxMDAKIAotI2RlZmluZSBDRkdfRVVNQl9BRERSCSAgICAweEZDRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRVVNQl9BRERSCSAgICAweEZDRTAwMDAwCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRSAgICBURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JICAgICgyNTYgPDwgMTApIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKDEyOCA8PCAxMCkgLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkgICAgMHgwMjAwMDAwMAkvKiAwIC4uLiAzMiBNQiBpbiBEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgICAweDAwMDA0MDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJICAgIDB4MDIwMDAwMDAJLyogMCAuLi4gMzIgTUIgaW4gRFJBTQkJKi8KIAogCS8qIE1heGltdW0gYW1vdW50IG9mIFJBTS4KIAkgKi8KLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRSAgICAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX1JBTV9TSVpFICAgIDB4MTAwMDAwMDAKIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLSN1bmRlZiBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTk5LDIzICsxOTksMjMgQEAKIAogCS8qIFNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YQogCSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgIDEyOAogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQgICAgICAweDEwMDAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCiAKIC8qCiAgKiBOUzE2NTUwIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkzNjg2NDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCTM2ODY0MDAKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCTB4RkZGODAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJMHhGRkY4MDAwMAogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTIyNSwzNiArMjI1LDM2IEBACiAgKi8KIAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAzMzAwMDAwMAotI2RlZmluZSBDRkdfSFoJCSAgICAgMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgIDEwMDAKICNkZWZpbmUgQ09ORklHX1BMTF9QQ0lfVE9fTUVNX01VTFRJUExJRVIgMwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjEuCiAJICovCi0jZGVmaW5lIENGR19ST01OQUwJICAgIDAKLSNkZWZpbmUgQ0ZHX1JPTUZBTAkgICAgNworI2RlZmluZSBDT05GSUdfU1lTX1JPTU5BTAkgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX1JPTUZBTAkgICAgNwogCiAJLyogQml0LWZpZWxkIHZhbHVlcyBmb3IgTUNDUjIuCiAJICovCi0jZGVmaW5lIENGR19SRUZJTlQJICAgIDQzMAkgICAgLyogUmVmcmVzaCBpbnRlcnZhbAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGSU5UCSAgICA0MzAJICAgIC8qIFJlZnJlc2ggaW50ZXJ2YWwJCQkqLwogCiAJLyogQnVyc3QgVG8gUHJlY2hhcmdlLiBCaXRzIG9mIHRoaXMgdmFsdWUgZ28gdG8gTUNDUjMgYW5kIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfQlNUT1BSRQkgICAgMTkyCisjZGVmaW5lIENPTkZJR19TWVNfQlNUT1BSRQkgICAgMTkyCiAKIAkvKiBCaXQtZmllbGQgdmFsdWVzIGZvciBNQ0NSMy4KIAkgKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkgICAgMgkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfUkRMQVQJICAgIDMJICAgIC8qIERhdGEgbGF0YW5jeSBmcm9tIHJlYWQgY29tbWFuZAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRlJFQwkgICAgMgkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JETEFUCSAgICAzCSAgICAvKiBEYXRhIGxhdGFuY3kgZnJvbSByZWFkIGNvbW1hbmQJKi8KIAogCS8qIEJpdC1maWVsZCB2YWx1ZXMgZm9yIE1DQ1I0LgogCSAqLwotI2RlZmluZSBDRkdfUFJFVE9BQ1QJICAgIDIJICAgIC8qIFByZWNoYXJnZSB0byBhY3RpdmF0ZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfQUNUVE9QUkUJICAgIDUJICAgIC8qIEFjdGl2YXRlIHRvIFByZWNoYXJnZSBpbnRlcnZhbAkqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQgIDIJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlCQkJKi8KLSNkZWZpbmUgQ0ZHX1NETU9ERV9CVVJTVExFTiAyCSAgICAvKiBTRE1PREUgQnVyc3QgbGVuZ3RoCQkqLwotI2RlZmluZSBDRkdfQUNUT1JXCSAgICAyCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQorI2RlZmluZSBDT05GSUdfU1lTX1BSRVRPQUNUCSAgICAyCSAgICAvKiBQcmVjaGFyZ2UgdG8gYWN0aXZhdGUgaW50ZXJ2YWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BQ1RUT1BSRQkgICAgNQkgICAgLyogQWN0aXZhdGUgdG8gUHJlY2hhcmdlIGludGVydmFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgIDIJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRE1PREVfV1JBUAkgICAgMAkgICAgLyogU0RNT0RFIHdyYXAgdHlwZQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0JVUlNUTEVOIDIJICAgIC8qIFNETU9ERSBCdXJzdCBsZW5ndGgJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCSAgICAyCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3MuCiAgKiBPbmx5IGJpdHMgMjAtMjkgYXJlIGFjdHVhbGx5IHVzZWQgZnJvbSB0aGVzZSB2YWxlcyB0byBzZXQgdGhlCkBAIC0yNjMsNjkgKzI2Myw2OSBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDAgYm9vay4KICAqLwogCi0jZGVmaW5lIENGR19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQkFOSzBfRU5ECSAgICAoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUgICAgMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTksxX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzFfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LMl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTksyX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzNfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LM19FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks0X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzRfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNV9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks1X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzZfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNl9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks3X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzdfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9TVEFSVAkgICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX0VORAkgICAgKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9FTkFCTEUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzNfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks0X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNV9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks3X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfRU5BQkxFICAgIDAKIAotI2RlZmluZSBDRkdfT0RDUgkgICAgMHhmZgorI2RlZmluZSBDT05GSUdfU1lTX09EQ1IJICAgIDB4ZmYKIAotI2RlZmluZSBDRkdfSUJBVDBMICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMFUgIChDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTCAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMFUgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMkwgICgweDgwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAotI2RlZmluZSBDRkdfSUJBVDNMICAoMHhGQzAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVSAgKDB4RkMwMDAwMDAgfCBCQVRVX0JMXzY0TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAgKDB4RkMwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVICAoMHhGQzAwMDAwMCB8IEJBVFVfQkxfNjRNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0RCQVQwTCAgQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVICBDRkdfSUJBVDBVCi0jZGVmaW5lIENGR19EQkFUMUwgIENGR19JQkFUMUwKLSNkZWZpbmUgQ0ZHX0RCQVQxVSAgQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMICBDRkdfSUJBVDJMCi0jZGVmaW5lIENGR19EQkFUMlUgIENGR19JQkFUMlUKLSNkZWZpbmUgQ0ZHX0RCQVQzTCAgQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVICBDRkdfSUJBVDNVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMICBDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVSAgQ09ORklHX1NZU19JQkFUMFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMUwgIENPTkZJR19TWVNfSUJBVDFMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFVICBDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTCAgQ09ORklHX1NZU19JQkFUMkwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUgIENPTkZJR19TWVNfSUJBVDJVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDNMICBDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVSAgQ09ORklHX1NZU19JQkFUM1UKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkgICAgKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuawkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zMzMsNyArMzMzLDcgQEAKICAqIEJSMC8xIGFuZCBPUjAvMSAoRkxBU0gpCiAgKi8KIAotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0gICAgICBDRkdfRkxBU0hfQkFTRSAgLyogRkxBU0ggYmFuayAjMCAgICAgICAgKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNICAgICAgQ09ORklHX1NZU19GTEFTSF9CQVNFICAvKiBGTEFTSCBiYW5rICMwICAgICAgICAqLwogI2RlZmluZSBGTEFTSF9CQVNFMV9QUkVMSU0gICAgICAwICAgICAgICAgICAgICAgLyogRkxBU0ggYmFuayAjMSAgICAgICAgKi8KIAogCS8qIFdhcmluaW5nOiBlbnZpcm9ubWVudCBpcyBub3QgRU1CRURERUQgaW4gdGhlIFUtQm9vdCBjb2RlLgpAQCAtMzQ4LDkgKzM0OCw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKQEAgLTM3MCw1ICszNzAsNSBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCQkvKiBNdWx0aSBldGhlcm5ldCBjYXJkcyBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19UVUxJUAogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODI2MC5oIGIvaW5jbHVkZS9jb25maWdzL3NiYzgyNjAuaAppbmRleCBlOTZhZGI5Li4yNmVkNTU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODI2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYmM4MjYwLmgKQEAgLTczLDcgKzczLDcgQEAKICAqIDB4NgkgICAgIDB4MQkgNjYJMTMzICAgIDI2NiAgIENsb3NlICBDbG9zZSAgT3BlbgogICogMHg2CSAgICAgMHgyCSA2NgkxMzMgICAgMzAwICAgQ2xvc2UgIE9wZW4gICBDbG9zZQogICovCi0jZGVmaW5lIENGR19TQkNfTU9EQ0tfSCAweDA1CisjZGVmaW5lIENPTkZJR19TWVNfU0JDX01PRENLX0ggMHgwNQogCiAvKiBEZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCB0byBib290IGZyb20gMHgwMDAwMDEwMC4gSWYgeW91IGRvbid0IGRlZmluZQogICogdGhpcywgeW91IHdpbGwgbmVlZCB0byBwcm9ncmFtIHRoZSBib290bG9hZGVyIHRvIDB4ZmZmMDAwMDAsIGFuZApAQCAtODEsMzQgKzgxLDM0IEBACiAgKiB3YXkgdG8gZG8gdGhhdCBpcyB0byBwcm9ncmFtIHRoZSBib290bG9hZGVyIGF0IGJvdGggYWRkcmVzc2VzLgogICogSXQgaXMgc3VnZ2VzdGVkIHRoYXQgeW91IGp1c3QgbGV0IFUtQm9vdCBsaXZlIGF0IDB4MDAwMDAwMDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX1NCQ19CT09UX0xPVyAxCisjZGVmaW5lIENPTkZJR19TWVNfU0JDX0JPT1RfTE9XIDEKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgbWFpbiBGTEFTSCBiZSBhbmQgaG93IGJpZyBpcwogICogaXQgKGluIE1CeXRlcyk/IFRoaXMgbXVzdCBjb250YWluIFRFWFRfQkFTRSBmcm9tIGJvYXJkL3NiYzgyNjAvY29uZmlnLm1rCiAgKiBUaGUgbWFpbiBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkIHRvICpDUzAuIFUtQm9vdCBleHBlY3RzCiAgKiB0aGlzIHRvIGJlIHRoZSBTSU1NLgogICovCi0jZGVmaW5lIENGR19GTEFTSDBfQkFTRSAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSDBfU0laRSA0CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwX0JBU0UgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIMF9TSVpFIDQKIAogLyogV2hhdCBzaG91bGQgdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgc2Vjb25kYXJ5IEZMQVNIIGJlIGFuZCBob3cgYmlnCiAgKiBpcyBpdCAoaW4gTWJ5dGVzKT8gVGhlIHNlY29uZGFyeSBGTEFTSCBpcyB3aGljaGV2ZXIgaXMgY29ubmVjdGVkCiAgKiB0byAqQ1M2LiBVLUJvb3QgZXhwZWN0cyB0aGlzIHRvIGJlIHRoZSBvbiBib2FyZCBGTEFTSC4gSWYgeW91IGRvbid0CiAgKiB3YW50IGl0IGVuYWJsZWQsIGRvbid0IGRlZmluZSB0aGVzZSBjb25zdGFudHMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9CQVNFIDB4NjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMV9TSVpFIDIKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDFfQkFTRSAweDYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxX1NJWkUgMgogCiAvKiBXaGF0IHNob3VsZCBiZSB0aGUgYmFzZSBhZGRyZXNzIG9mIFNEUkFNIERJTU0gYW5kIGhvdyBiaWcgaXMKICAqIGl0IChpbiBNYnl0ZXMpPwogKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNMF9CQVNFIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNMF9TSVpFIDY0CisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU0wX0JBU0UgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNMF9TSVpFIDY0CiAKIC8qIFdoYXQgc2hvdWxkIGJlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIExFRHMgYW5kIHN3aXRjaCBTMD8KICAqIElmIHlvdSBkb24ndCB3YW50IHRoZW0gZW5hYmxlZCwgZG9uJ3QgZGVmaW5lIHRoaXMuCiAgKi8KLSNkZWZpbmUgQ0ZHX0xFRF9CQVNFIDB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MRURfQkFTRSAweGEwMDAwMDAwCiAKIAogLyoKQEAgLTEyOCwxMCArMTI4LDEwIEBACiAgKiAgICAgMHgwMEY1IEZGQjAgICAgIEJvYXJkIEluZm8gRGF0YQogICogICAgIDB4MDBGNiAwMDAwICAgICBNYWxsb2MgQXJlbmEKICAqCSAgICAgOgkJICAgIENPTkZJR19FTlZfU0VDVF9TSVpFLCAyNTZrCi0gKgkgICAgIDoJCSAgICBDRkdfTUFMTE9DX0xFTiwgICAgMTI4aworICoJICAgICA6CQkgICAgQ09ORklHX1NZU19NQUxMT0NfTEVOLCAgICAxMjhrCiAgKiAgICAgMHgwMEZDIDAwMDAgICAgIFJBTSBDb3B5IG9mIE1vbml0b3IgQ29kZQotICoJICAgICA6CQkgICAgQ0ZHX01PTklUT1JfTEVOLCAgIDI1NmsKLSAqICAgICAweDAwRkYgRkZGRiAgICAgW0VuZCBvZiBSQU1dLCBDRkdfU0RSQU1fU0laRSAtIDEKKyAqCSAgICAgOgkJICAgIENPTkZJR19TWVNfTU9OSVRPUl9MRU4sICAgMjU2aworICogICAgIDB4MDBGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENPTkZJR19TWVNfU0RSQU1fU0laRSAtIDEKICAqLwogCiAvKgpAQCAtMTUxLDEwICsxNTEsMTAgQEAKICAqICAgICAweDAzRjUgRkZCMCAgICAgQm9hcmQgSW5mbyBEYXRhCiAgKiAgICAgMHgwM0Y2IDAwMDAgICAgIE1hbGxvYyBBcmVuYQogICoJICAgICA6CQkgICAgQ09ORklHX0VOVl9TRUNUX1NJWkUsIDI1NmsKLSAqCSAgICAgOgkJICAgIENGR19NQUxMT0NfTEVOLCAgICAxMjhrCisgKgkgICAgIDoJCSAgICBDT05GSUdfU1lTX01BTExPQ19MRU4sICAgIDEyOGsKICAqICAgICAweDAzRkMgMDAwMCAgICAgUkFNIENvcHkgb2YgTW9uaXRvciBDb2RlCi0gKgkgICAgIDoJCSAgICBDRkdfTU9OSVRPUl9MRU4sICAgMjU2awotICogICAgIDB4MDNGRiBGRkZGICAgICBbRW5kIG9mIFJBTV0sIENGR19TRFJBTV9TSVpFIC0gMQorICoJICAgICA6CQkgICAgQ09ORklHX1NZU19NT05JVE9SX0xFTiwgICAyNTZrCisgKiAgICAgMHgwM0ZGIEZGRkYgICAgIFtFbmQgb2YgUkFNXSwgQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gMQogICovCiAKIApAQCAtMjIwLDcgKzIyMCw3IEBACiAgKiAgLSBSWCBjbGsgaXMgQ0xLMTEKICAqICAtIFRYIGNsayBpcyBDTEsxMgogICovCi0jIGRlZmluZSBDRkdfQ01YU0NSX1ZBTFVFCShDTVhTQ1JfUlMxQ1NfQ0xLMTEgIHwgQ01YU0NSX1RTMUNTX0NMSzEyKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhTQ1JfVkFMVUUJKENNWFNDUl9SUzFDU19DTEsxMSAgfCBDTVhTQ1JfVFMxQ1NfQ0xLMTIpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0VUSEVSX09OX0ZDQykgJiYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQogCkBAIC0yMzAsMTAgKzIzMCwxMCBAQAogICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzIChzZWUgMjgtMTMpCiAgKiAtIEVuYWJsZSBGdWxsIER1cGxleCBpbiBGU01SCiAgKi8KLSMgZGVmaW5lIENGR19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMnxDTVhGQ1JfUkYyQ1NfTVNLfENNWEZDUl9URjJDU19NU0spCi0jIGRlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTN8Q01YRkNSX1RGMkNTX0NMSzE0KQotIyBkZWZpbmUgQ0ZHX0NQTUZDUl9SQU1UWVBFCTAKLSMgZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSB8IEZDQ19QU01SX0xQQikKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sJKENNWEZDUl9GQzJ8Q01YRkNSX1JGMkNTX01TS3xDTVhGQ1JfVEYyQ1NfTVNLKQorIyBkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfVkFMVUUJKENNWEZDUl9SRjJDU19DTEsxM3xDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisjIGRlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFCTAKKyMgZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIJCShGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpCiAKICNlbmRpZiAvKiBDT05GSUdfRVRIRVJfT05fRkNDLCBDT05GSUdfRVRIRVJfSU5ERVggKi8KIApAQCAtMjUxLDggKzI1MSw4IEBACiAgKi8KICN1bmRlZiAgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMJCTEJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogU29mdHdhcmUgKGJpdC1iYW5nKSBJMkMgZHJpdmVyIGNvbmZpZ3VyYXRpb24KQEAgLTQyNSwxNCArNDI1LDE0IEBACiAKIAogLyogdW5kZWYgdGhpcyB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAogCiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgogCi0jdW5kZWYgIENGR19IVVNIX1BBUlNFUgotI2lmZGVmICBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjdW5kZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZiAgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogLyogV2hlbiBDT05GSUdfVElNRVNUQU1QIGlzIHNlbGVjdGVkLCB0aGUgdGltZXN0YW1wIChkYXRlIGFuZCB0aW1lKQpAQCAtNDY5LDcgKzQ2OSw3IEBACiAjdW5kZWYgQ09ORklHX1dBVENIRE9HCQkJCS8qIGRpc2FibGUgdGhlIHdhdGNoZG9nICovCiAKIC8qIFdoZXJlIGRvIHRoZSBpbnRlcm5hbCByZWdpc3RlcnMgbGl2ZT8gKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTQ4NiwzNyArNDg2LDM3IEBACiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSAgICAgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkgICAgICovCiAjZWxzZQotIyAgZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkgICAgICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkgICAgICovCiAjZW5kaWYKIAogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkgIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpKzE2KQorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkgIChDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTMyCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMzIJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KIAotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSAgICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHg0MDAwMDAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4NDAwMDAwICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAkJCS8qIFNlbGVjdCBmdWxsLWZlYXR1cmVkIG1lbW9yeSB0ZXN0ICovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MjAwMAkvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiAqLworI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCQkJLyogU2VsZWN0IGZ1bGwtZmVhdHVyZWQgbWVtb3J5IHRlc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MjAwMAkvKiBtZW10ZXN0IHdvcmtzIGZyb20gdGhlIGVuZCBvZiAqLwogCQkJCQkvKiB0aGUgZXhjZXB0aW9uIHZlY3RvciB0YWJsZSAqLwogCQkJCQkvKiB0byB0aGUgZW5kIG9mIHRoZSBEUkFNICAqLwogCQkJCQkvKiBsZXNzIG1vbml0b3IgYW5kIG1hbGxvYyBhcmVhICovCi0jZGVmaW5lIENGR19TVEFDS19VU0FHRQkJMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCi0jZGVmaW5lIENGR19NRU1fRU5EX1VTQUdFCSggQ0ZHX01PTklUT1JfTEVOIFwKLQkJCQkrIENGR19NQUxMT0NfTEVOIFwKKyNkZWZpbmUgQ09ORklHX1NZU19TVEFDS19VU0FHRQkJMHgxMDAwMCAvKiBSZXNlcnZlIDY0ayBmb3IgdGhlIHN0YWNrIHVzYWdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX0VORF9VU0FHRQkoIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gXAorCQkJCSsgQ09ORklHX1NZU19NQUxMT0NfTEVOIFwKIAkJCQkrIENPTkZJR19FTlZfU0VDVF9TSVpFIFwKLQkJCQkrIENGR19TVEFDS19VU0FHRSApCisJCQkJKyBDT05GSUdfU1lTX1NUQUNLX1VTQUdFICkKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCSggQ0ZHX1NEUkFNX1NJWkUgKiAxMDI0ICogMTAyNCBcCi0JCQkJLSBDRkdfTUVNX0VORF9VU0FHRSApCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCSggQ09ORklHX1NZU19TRFJBTV9TSVpFICogMTAyNCAqIDEwMjQgXAorCQkJCS0gQ09ORklHX1NZU19NRU1fRU5EX1VTQUdFICkKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTUyNCwxMDkgKzUyNCwxMDkgQEAKICAqIFlvdSBzaG91bGQga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgaWYgeW91IG1ha2UgY2hhbmdlcyBoZXJlLgogICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJQ0ZHX0ZMQVNIMF9CQVNFCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCUNGR19GTEFTSDBfU0laRQotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQlDRkdfU0RSQU0wX0JBU0UKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJQ0ZHX1NEUkFNMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQlDT05GSUdfU1lTX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQlDT05GSUdfU1lTX0ZMQVNIMF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQlDT05GSUdfU1lTX1NEUkFNMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQlDT05GSUdfU1lTX1NEUkFNMF9TSVpFCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEhhcmQgUmVzZXQgQ29uZmlndXJhdGlvbiBXb3JkcwogICovCi0jaWYgZGVmaW5lZChDRkdfU0JDX0JPT1RfTE9XKQotIyAgZGVmaW5lICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKEhSQ1dfQ0lQIHwgSFJDV19CTVMpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NCQ19CT09UX0xPVykKKyMgIGRlZmluZSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICAoSFJDV19DSVAgfCBIUkNXX0JNUykKICNlbHNlCi0jICBkZWZpbmUgIENGR19TQkNfSFJDV19CT09UX0ZMQUdTICAoMCkKLSNlbmRpZiAvKiBkZWZpbmVkKENGR19TQkNfQk9PVF9MT1cpICovCisjICBkZWZpbmUgIENPTkZJR19TWVNfU0JDX0hSQ1dfQk9PVF9GTEFHUyAgKDApCisjZW5kaWYgLyogZGVmaW5lZChDT05GSUdfU1lTX1NCQ19CT09UX0xPVykgKi8KIAotLyogZ2V0IHRoZSBIUkNXIElTQiBmaWVsZCBmcm9tIENGR19JTU1SICovCi0jZGVmaW5lIENGR19TQkNfSFJDV19JTU1SCSggKChDRkdfSU1NUiAmIDB4MTAwMDAwMDApID4+IDEwKSB8IFwKLQkJCQkgICgoQ0ZHX0lNTVIgJiAweDAxMDAwMDAwKSA+PiAgNykgfCBcCi0JCQkJICAoKENGR19JTU1SICYgMHgwMDEwMDAwMCkgPj4gIDQpICkKKy8qIGdldCB0aGUgSFJDVyBJU0IgZmllbGQgZnJvbSBDT05GSUdfU1lTX0lNTVIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQkNfSFJDV19JTU1SCSggKChDT05GSUdfU1lTX0lNTVIgJiAweDEwMDAwMDAwKSA+PiAxMCkgfCBcCisJCQkJICAoKENPTkZJR19TWVNfSU1NUiAmIDB4MDEwMDAwMDApID4+ICA3KSB8IFwKKwkJCQkgICgoQ09ORklHX1NZU19JTU1SICYgMHgwMDEwMDAwMCkgPj4gIDQpICkKIAotI2RlZmluZSBDRkdfSFJDV19NQVNURVIJCSggSFJDV19CUFMxMQkJCQl8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX01BU1RFUgkJKCBIUkNXX0JQUzExCQkJCXwgXAogCQkJCSAgSFJDV19EUFBDMTEJCQkJfCBcCi0JCQkJICBDRkdfU0JDX0hSQ1dfSU1NUgkJCXwgXAorCQkJCSAgQ09ORklHX1NZU19TQkNfSFJDV19JTU1SCQkJfCBcCiAJCQkJICBIUkNXX01NUjAwCQkJCXwgXAogCQkJCSAgSFJDV19MQlBDMTEJCQkJfCBcCiAJCQkJICBIUkNXX0FQUEMxMAkJCQl8IFwKIAkJCQkgIEhSQ1dfQ1MxMFBDMDAJCQkJfCBcCi0JCQkJICAoQ0ZHX1NCQ19NT0RDS19IICYgSFJDV19NT0RDS19IMTExMSkJfCBcCi0JCQkJICBDRkdfU0JDX0hSQ1dfQk9PVF9GTEFHUyApCisJCQkJICAoQ09ORklHX1NZU19TQkNfTU9EQ0tfSCAmIEhSQ1dfTU9EQ0tfSDExMTEpCXwgXAorCQkJCSAgQ09ORklHX1NZU19TQkNfSFJDV19CT09UX0ZMQUdTICkKIAogLyogbm8gc2xhdmVzICovCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFMQkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTIJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkUzCQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNAkJMAotI2RlZmluZSBDRkdfSFJDV19TTEFWRTUJCTAKLSNkZWZpbmUgQ0ZHX0hSQ1dfU0xBVkU2CQkwCi0jZGVmaW5lIENGR19IUkNXX1NMQVZFNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkUxCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU0CQkwCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19TTEFWRTUJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19IUkNXX1NMQVZFNgkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfU0xBVkU3CQkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAotICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDRkdfUkFNQk9PVCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogTm90ZSBhbHNvIHRoYXQgdGhlIGxvZ2ljIHRoYXQgc2V0cyBDT05GSUdfU1lTX1JBTUJPT1QgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgogICovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIMF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0gwX0JBU0UKIAotI2lmIChDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UpCi0jICBkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICBkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJMQkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk4MDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTEJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogCiAjICBpZmRlZiBDT05GSUdfRU5WX0lOX09XTl9TRUNUCi0jICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQorIyAgICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIDB4NDAwMDApCiAjICAgIGRlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCiAjICBlbHNlCi0jICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENGR19GTEFTSF9CQVNFICsgQ0ZHX01PTklUT1JfTEVOIC0gQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjICAgIGRlZmluZSBDT05GSUdfRU5WX0FERFIgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDEwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KICMgICAgZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MTAwMDAgLyogc2VlIFJFQURNRSAtIGVudiBzZWN0IHJlYWwgc2l6ZQkqLwogIyAgZW5kaWYgLyogQ09ORklHX0VOVl9JTl9PV05fU0VDVCAqLwogCiAjZWxzZQogIyAgZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fTlZSQU0JMQotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSAweDEwMDApCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAweDEwMDApCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMAotI2VuZGlmIC8qIENGR19SQU1CT09UICovCisjZW5kaWYgLyogQ09ORklHX1NZU19SQU1CT09UICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzgyNjAgQ1BVICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLworIyBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYzOSwzNyArNjM5LDM3IEBACiAgKgogICogSElEMSBoYXMgb25seSByZWFkLW9ubHkgaW5mb3JtYXRpb24gLSBub3RoaW5nIHRvIHNldC4KICAqLwotI2RlZmluZSBDRkdfSElEMF9JTklUCShISUQwX0lDRSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJKEhJRDBfSUNFICB8XAogCQkJIEhJRDBfRENFICB8XAogCQkJIEhJRDBfSUNGSSB8XAogCQkJIEhJRDBfRENJICB8XAogCQkJIEhJRDBfSUZFTSB8XAogCQkJIEhJRDBfQUJFKQogCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCShISUQwX0lDRSAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCShISUQwX0lDRSAgfFwKIAkJCSBISUQwX0lGRU0gfFwKIAkJCSBISUQwX0FCRSAgfFwKIAkJCSBISUQwX0VNQ1ApCi0jZGVmaW5lIENGR19ISUQyCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQyCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUk1SIC0gUmVzZXQgTW9kZSBSZWdpc3RlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19STVIJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19STVIJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQkNSIC0gQnVzIENvbmZpZ3VyYXRpb24JCQkJCSA0LTI1CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX0JDUgkJKEJDUl9FVE0pCisjZGVmaW5lIENPTkZJR19TWVNfQkNSCQkoQkNSX0VUTSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0lVTUNSIC0gU0lVIE1vZHVsZSBDb25maWd1cmF0aW9uCQkJCSA0LTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfRFBQQzExCXxcCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRFBQQzExCXxcCiAJCQkgU0lVTUNSX0wyQ1BDMDAgfFwKIAkJCSBTSVVNQ1JfQVBQQzEwCXxcCiAJCQkgU0lVTUNSX01NUjAwKQpAQCAtNjgyLDcgKzY4Miw3IEBACiAgKiBXYXRjaGRvZyAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgNjB4IEJ1cyBNb25pdG9yIGVuYWJsZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8XAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHxcCiAJCQkgU1lQQ1JfQk1UICB8XAogCQkJIFNZUENSX1BCTUUgfFwKIAkJCSBTWVBDUl9MQk1FIHxcCkBAIC02OTAsNyArNjkwLDcgQEAKIAkJCSBTWVBDUl9TV1AgIHxcCiAJCQkgU1lQQ1JfU1dFKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHxcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfFwKIAkJCSBTWVBDUl9CTVQgIHxcCiAJCQkgU1lQQ1JfUEJNRSB8XAogCQkJIFNZUENSX0xCTUUgfFwKQEAgLTcwNCw3ICs3MDQsNyBAQAogICogQ2xlYXIgb25jZSBwZXIgU2Vjb25kIGFuZCBBbGFybSBJbnRlcnJ1cHQgU3RhdHVzLCBTZXQgMzJLSHogdGltZXJzY2xrLAogICogYW5kIGVuYWJsZSBUaW1lIENvdW50ZXIKICAqLwotI2RlZmluZSBDRkdfVE1DTlRTQwkoVE1DTlRTQ19TRUMgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19UTUNOVFNDCShUTUNOVFNDX1NFQyB8XAogCQkJIFRNQ05UU0NfQUxSIHxcCiAJCQkgVE1DTlRTQ19UQ0YgfFwKIAkJCSBUTUNOVFNDX1RDRSkKQEAgLTcxNSw3ICs3MTUsNyBAQAogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgU2V0IDMyS0h6IHRpbWVyc2NsaywgYW5kIGVuYWJsZQogICogUGVyaW9kaWMgdGltZXIKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BJU0NSCShQSVNDUl9QUyAgfFwKIAkJCSBQSVNDUl9QVEYgfFwKIAkJCSBQSVNDUl9QVEUpCiAKQEAgLTcyMywxMyArNzIzLDEzIEBACiAgKiBTQ0NSIC0gU3lzdGVtIENsb2NrIENvbnRyb2wJCQkJCSA5LTgKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfU0NDUgkwCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJDQ1IgLSBSSVNDIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbgkJCQkxMy03CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JDQ1IJMAorI2RlZmluZSBDT05GSUdfU1lTX1JDQ1IJMAogCiAvKgogICogSW5pdGlhbGl6ZSBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTc4MCw3ICs3ODAsNyBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChDRkdfRkxBU0gwX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChDT05GSUdfU1lTX0ZMQVNIMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSBCUnhfUFNfMzIJCQl8XAogCQkJIEJSeF9NU19HUENNX1AJCQl8XAogCQkJIEJSeF9WKQpAQCAtNzk5LDcgKzc5OSw3IEBACiAgKiAgICAgLSBPbmUgaWRsZSBjbG9jayBpcyBpbnNlcnRlZCBiZXR3ZWVuIGEgcmVhZCBhY2Nlc3MgZnJvbSB0aGUKICAqCSBjdXJyZW50IGJhbmsgYW5kIHRoZSBuZXh0IGFjY2Vzcy4KICAqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoTUVHX1RPX0FNKENGR19GTEFTSDBfU0laRSkJfFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19GTEFTSDBfU0laRSkJfFwKIAkJCSBPUnhHX0NTTlQJCQl8XAogCQkJIE9SeEdfQUNTX0RJVjEJCQl8XAogCQkJIE9SeEdfU0NZXzVfQ0xLCQkJfFwKQEAgLTgzNCwxMiArODM0LDEyIEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKENGR19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKENPTkZJR19TWVNfU0RSQU0wX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAogCQkJIEJSeF9QU182NAkJCXxcCiAJCQkgQlJ4X01TX1NEUkFNX1AJCQl8XAogCQkJIEJSeF9WKQogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCSgoQ0ZHX1NEUkFNMF9CQVNFICYgQlJ4X0JBX01TSykgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCSgoQ09ORklHX1NZU19TRFJBTTBfQkFTRSAmIEJSeF9CQV9NU0spIHxcCiAJCQkgQlJ4X1BTXzY0CQkJfFwKIAkJCSBCUnhfTVNfU0RSQU1fUAkJCXxcCiAJCQkgQlJ4X1YpCkBAIC04NTMsOCArODUzLDggQEAKICAqICAgICAtIEJhY2stdG8tYmFjayBwYWdlIG1vZGUKICAqICAgICAtIEludGVybmFsIGJhbmsgaW50ZXJsZWF2aW5nIHdpdGhpbiBzYXZlIGRldmljZSBlbmFibGVkCiAgKi8KLSNpZiAoQ0ZHX1NEUkFNMF9TSVpFID09IDE2KQotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoTUVHX1RPX0FNKENGR19TRFJBTTBfU0laRSkJfFwKKyNpZiAoQ09ORklHX1NZU19TRFJBTTBfU0laRSA9PSAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShNRUdfVE9fQU0oQ09ORklHX1NZU19TRFJBTTBfU0laRSkJfFwKIAkJCSBPUnhTX0JQRF8yCQkJfFwKIAkJCSBPUnhTX1JPV1NUX1BCSTBfQTkJCXxcCiAJCQkgT1J4U19OVU1SXzExKQpAQCAtODY5LDggKzg2OSw4IEBACiAgKiAgICAgLSBCYWNrLXRvLWJhY2sgcGFnZSBtb2RlCiAgKiAgICAgLSBJbnRlcm5hbCBiYW5rIGludGVybGVhdmluZyB3aXRoaW4gc2F2ZSBkZXZpY2UgZW5hYmxlZAogICovCi0jaWYgKENGR19TRFJBTTBfU0laRSA9PSA2NCkKLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JKE1FR19UT19BTShDRkdfU0RSQU0wX1NJWkUpCXxcCisjaWYgKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgPT0gNjQpCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoTUVHX1RPX0FNKENPTkZJR19TWVNfU0RSQU0wX1NJWkUpCXxcCiAJCQkgT1J4U19CUERfNAkJCXxcCiAJCQkgT1J4U19ST1dTVF9QQkkwX0E4CQl8XAogCQkJIE9SeFNfTlVNUl8xMikKQEAgLTg4Niw3ICs4ODYsNyBAQAogICovCiAjZGVmaW5lIFNEUkFNX1NQRF9BRERSIDB4NTQKIAotI2lmIChDRkdfU0RSQU0wX1NJWkUgPT0gMTYpCisjaWYgKENPTkZJR19TWVNfU0RSQU0wX1NJWkUgPT0gMTYpCiAvKiBXaXRoIGEgMTYgTUIgRElNTSwgdGhlIFBTRE1SIGlzIGNvbmZpZ3VyZWQgYXMgZm9sbG93czoKICAqCiAgKiAgICAgLSBCYW5rIEJhc2VkIEludGVybGVhdmluZywKQEAgLTkwNCw3ICs5MDQsNyBAQAogICogICAgIC0gZWFybGllc3QgdGltaW5nIGZvciBQUkVDSEFSR0UgYWZ0ZXIgbGFzdCBkYXRhIHdhcyB3cml0dGVuIGlzIDEgY2xvY2ssCiAgKiAgICAgLSBDQVMgTGF0ZW5jeSBpcyAyLgogICovCi0jZGVmaW5lIENGR19QU0RNUgkoUFNETVJfUkZFTgkgICAgICB8XAorI2RlZmluZSBDT05GSUdfU1lTX1BTRE1SCShQU0RNUl9SRkVOCSAgICAgIHxcCiAJCQkgUFNETVJfU0RBTV9BMTRfSVNfQTUgfFwKIAkJCSBQU0RNUl9CU01BX0ExNl9BMTggICB8XAogCQkJIFBTRE1SX1NEQTEwX1BCSTBfQTkgIHxcCkBAIC05MTYsNyArOTE2LDcgQEAKIAkJCSBQU0RNUl9DTF8yKQogI2VuZGlmCiAKLSNpZiAoQ0ZHX1NEUkFNMF9TSVpFID09IDY0KQorI2lmIChDT05GSUdfU1lTX1NEUkFNMF9TSVpFID09IDY0KQogLyogV2l0aCBhIDY0IE1CIERJTU0sIHRoZSBQU0RNUiBpcyBjb25maWd1cmVkIGFzIGZvbGxvd3M6CiAgKgogICogICAgIC0gQmFuayBCYXNlZCBJbnRlcmxlYXZpbmcsCkBAIC05MzQsNyArOTM0LDcgQEAKICAqICAgICAtIGVhcmxpZXN0IHRpbWluZyBmb3IgUFJFQ0hBUkdFIGFmdGVyIGxhc3QgZGF0YSB3YXMgd3JpdHRlbiBpcyAxIGNsb2NrLAogICogICAgIC0gQ0FTIExhdGVuY3kgaXMgMi4KICAqLwotI2RlZmluZSBDRkdfUFNETVIJKFBTRE1SX1JGRU4JICAgICAgfFwKKyNkZWZpbmUgQ09ORklHX1NZU19QU0RNUgkoUFNETVJfUkZFTgkgICAgICB8XAogCQkJIFBTRE1SX1NEQU1fQTE0X0lTX0E1IHxcCiAJCQkgUFNETVJfQlNNQV9BMTRfQTE2ICAgfFwKIAkJCSBQU0RNUl9TREExMF9QQkkwX0E5ICB8XApAQCAtOTUwLDE0ICs5NTAsMTQgQEAKICAqIFNob290IGZvciBhcHByb3hpbWF0ZWx5IDFNSHogb24gdGhlIHByZXNjYWxlci4KICAqLwogI2lmIChDT05GSUdfODI2MF9DTEtJTiA9PSAoNjYgKiAxMDAwICogMTAwMCkpCi0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWNjQKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWNjQKICNlbGlmIChDT05GSUdfODI2MF9DTEtJTiA9PSAoMzMgKiAxMDAwICogMTAwMCkpCi0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWMzIKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWMzIKICNlbHNlCi0jd2FybmluZyAiVW5jb25maWd1cmVkIGJ1cyBjbG9jayBmcmVxOiBjaGVjayBDRkdfTVBUUFIgYW5kIENGR19QU1JUIGFyZSBPSyIKLSNkZWZpbmUgQ0ZHX01QVFBSCU1QVFBSX1BUUF9ESVYzMgorI3dhcm5pbmcgIlVuY29uZmlndXJlZCBidXMgY2xvY2sgZnJlcTogY2hlY2sgQ09ORklHX1NZU19NUFRQUiBhbmQgQ09ORklHX1NZU19QU1JUIGFyZSBPSyIKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWMzIKICNlbmRpZgotI2RlZmluZSBDRkdfUFNSVAkxNAorI2RlZmluZSBDT05GSUdfU1lTX1BTUlQJMTQKIAogCiAvKiBCYW5rIDQgLSBPbiBib2FyZCBTRFJBTQpAQCAtOTc4LDcgKzk3OCw3IEBACiAgKiBUaGlzIGV4cGVjdHMgdGhlIG9uIGJvYXJkIEZMQVNIIFNJTU0gdG8gYmUgY29ubmVjdGVkIHRvICpDUzYKICAqIEl0IGNvbnNpc3RzIG9mIDEgQU0yOUYwMTZBIHBhcnQuCiAgKi8KLSNpZiAoZGVmaW5lZChDRkdfRkxBU0gxX0JBU0UpICYmIGRlZmluZWQoQ0ZHX0ZMQVNIMV9TSVpFKSkKKyNpZiAoZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIMV9CQVNFKSAmJiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0gxX1NJWkUpKQogCiAvKiBCUjYgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKQEAgLTk5Miw3ICs5OTIsNyBAQAogICogICAgIC0gTm8gZGF0YSBwaXBlbGluaW5nIGlzIGRvbmUKICAqICAgICAtIFZhbGlkCiAgKi8KLSMgIGRlZmluZSBDRkdfQlI2X1BSRUxJTSAgKChDRkdfRkxBU0gxX0JBU0UgJiBCUnhfQkFfTVNLKSB8XAorIyAgZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTSAgKChDT05GSUdfU1lTX0ZMQVNIMV9CQVNFICYgQlJ4X0JBX01TSykgfFwKIAkJCSAgIEJSeF9QU184CQkJICB8XAogCQkJICAgQlJ4X01TX0dQQ01fUAkJICB8XAogCQkJICAgQlJ4X1YpCkBAIC0xMDExLDEzICsxMDExLDEzIEBACiAgKiAgICAgLSBPbmUgaWRsZSBjbG9jayBpcyBpbnNlcnRlZCBiZXR3ZWVuIGEgcmVhZCBhY2Nlc3MgZnJvbSB0aGUKICAqCSBjdXJyZW50IGJhbmsgYW5kIHRoZSBuZXh0IGFjY2Vzcy4KICAqLwotIyAgZGVmaW5lIENGR19PUjZfUFJFTElNICAoTUVHX1RPX0FNKENGR19GTEFTSDFfU0laRSkgIHxcCisjICBkZWZpbmUgQ09ORklHX1NZU19PUjZfUFJFTElNICAoTUVHX1RPX0FNKENPTkZJR19TWVNfRkxBU0gxX1NJWkUpICB8XAogCQkJICAgT1J4R19DU05UCQkgICAgICAgfFwKIAkJCSAgIE9SeEdfQUNTX0RJVjEJICAgICAgIHxcCiAJCQkgICBPUnhHX1NDWV81X0NMSwkgICAgICAgfFwKIAkJCSAgIE9SeEdfVFJMWAkJICAgICAgIHxcCiAJCQkgICBPUnhHX0VIVFIpCi0jZW5kaWYgLyogKGRlZmluZWQoQ0ZHX0ZMQVNIMV9CQVNFKSAmJiBkZWZpbmVkKENGR19GTEFTSDFfU0laRSkpICovCisjZW5kaWYgLyogKGRlZmluZWQoQ09ORklHX1NZU19GTEFTSDFfQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIMV9TSVpFKSkgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQlI3IC0gQmFzZSBSZWdpc3RlcgpAQCAtMTAzMiw3ICsxMDMyLDcgQEAKICAqICBMRURzICAgICBhcmUgYXQgMHgwMDAwMSAod3JpdGUgb25seSkKICAqICBzd2l0Y2hlcyBhcmUgYXQgMHgwMDAwMSAocmVhZCBvbmx5KQogICovCi0jaWZkZWYgQ0ZHX0xFRF9CQVNFCisjaWZkZWYgQ09ORklHX1NZU19MRURfQkFTRQogCiAvKiBCUjcgaXMgY29uZmlndXJlZCBhcyBmb2xsb3dzOgogICoKQEAgLTEwNDYsNyArMTA0Niw3IEBACiAgKiAgICAgLSBObyBkYXRhIHBpcGVsaW5pbmcgaXMgZG9uZQogICogICAgIC0gVmFsaWQKICAqLwotIyAgZGVmaW5lIENGR19CUjdfUFJFTElNICAoKENGR19MRURfQkFTRSAmIEJSeF9CQV9NU0spCSB8XAorIyAgZGVmaW5lIENPTkZJR19TWVNfQlI3X1BSRUxJTSAgKChDT05GSUdfU1lTX0xFRF9CQVNFICYgQlJ4X0JBX01TSykJIHxcCiAJCQkgICBCUnhfUFNfOAkJCSB8XAogCQkJICAgQlJ4X01TX0dQQ01fUAkJIHxcCiAJCQkgICBCUnhfVikKQEAgLTEwNjUsMTMgKzEwNjUsMTMgQEAKICAqICAgICAtIE9uZSBpZGxlIGNsb2NrIGlzIGluc2VydGVkIGJldHdlZW4gYSByZWFkIGFjY2VzcyBmcm9tIHRoZQogICoJIGN1cnJlbnQgYmFuayBhbmQgdGhlIG5leHQgYWNjZXNzLgogICovCi0jICBkZWZpbmUgQ0ZHX09SN19QUkVMSU0gIChPUnhHX0FNX01TSwkJICAgICAgIHxcCisjICBkZWZpbmUgQ09ORklHX1NZU19PUjdfUFJFTElNICAoT1J4R19BTV9NU0sJCSAgICAgICB8XAogCQkJICAgT1J4R19DU05UCQkgICAgICAgfFwKIAkJCSAgIE9SeEdfQUNTX0RJVjEJICAgICAgIHxcCiAJCQkgICBPUnhHX1NDWV8xNV9DTEsJICAgICAgIHxcCiAJCQkgICBPUnhHX1RSTFgJCSAgICAgICB8XAogCQkJICAgT1J4R19FSFRSKQotI2VuZGlmIC8qIENGR19MRURfQkFTRSAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTEVEX0JBU0UgKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODM0OS5oIGIvaW5jbHVkZS9jb25maWdzL3NiYzgzNDkuaAppbmRleCBkYzVhMTAxLi4xNzQxNDliIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODM0OS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYmM4MzQ5LmgKQEAgLTYzLDExICs2MywxMSBAQAogCiAjdW5kZWYgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkJLyogY2FsbCBib2FyZF9wcmVfaW5pdCAqLwogCi0jZGVmaW5lIENGR19JTU1SCQkweEUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhFMDAwMDAwMAogCi0jdW5kZWYgQ0ZHX0RSQU1fVEVTVAkJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDEwMDAwMAorI3VuZGVmIENPTkZJR19TWVNfRFJBTV9URVNUCQkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMDAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDAxMDAwMDAKIAogLyoKICAqIEREUiBTZXR1cApAQCAtNzUsNyArNzUsNyBAQAogI3VuZGVmIENPTkZJR19ERFJfRUNDCQkJLyogb25seSBmb3IgRUNDIEREUiBtb2R1bGUgKi8KICN1bmRlZiBDT05GSUdfRERSX0VDQ19DTUQJCS8qIHVzZSBERFIgRUNDIHVzZXIgY29tbWFuZHMgKi8KICNkZWZpbmUgQ09ORklHX1NQRF9FRVBST00JCS8qIHVzZSBTUEQgRUVQUk9NIGZvciBERFIgc2V0dXAqLwotI2RlZmluZSBDRkdfODNYWF9ERFJfVVNFU19DUzAJCS8qIFdSUzsgRnNsIGJvYXJkIHVzZXMgQ1MyL0NTMyAqLworI2RlZmluZSBDT05GSUdfU1lTXzgzWFhfRERSX1VTRVNfQ1MwCQkvKiBXUlM7IEZzbCBib2FyZCB1c2VzIENTMi9DUzMgKi8KIAogLyoKICAqIDMyLWJpdCBkYXRhIHBhdGggbW9kZS4KQEAgLTg5LDEwICs4OSwxMCBAQAogICovCiAjdW5kZWYgQ09ORklHX0REUl8zMkJJVAogCi0jZGVmaW5lIENGR19ERFJfQkFTRQkJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX0JBU0UKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCUNGR19ERFJfQkFTRQotI2RlZmluZSBDRkdfRERSX1NEUkFNX0NMS19DTlRMCShERFJfU0RSQU1fQ0xLX0NOVExfU1NfRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0JBU0UJCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQlDT05GSUdfU1lTX0REUl9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0NMS19DTlRMCShERFJfU0RSQU1fQ0xLX0NOVExfU1NfRU4gfCBcCiAJCQkJRERSX1NEUkFNX0NMS19DTlRMX0NMS19BREpVU1RfMDc1KQogI2RlZmluZSBDT05GSUdfRERSXzJUX1RJTUlORwogCkBAIC0xMDcsNzIgKzEwNyw3MiBAQAogICogTWFudWFsbHkgc2V0IHVwIEREUiBwYXJhbWV0ZXJzCiAgKiBOQjogbWFudWFsIEREUiBzZXR1cCB1bnRlc3RlZCBvbiBzYmM4MzR4CiAgKi8KLSNkZWZpbmUgQ0ZHX0REUl9TSVpFCQkyNTYJCS8qIE1CICovCi0jZGVmaW5lIENGR19ERFJfQ09ORklHCQkoQ1NDT05GSUdfRU4gfCBDU0NPTkZJR19ST1dfQklUXzEzIHwgQ1NDT05GSUdfQ09MX0JJVF8xMCkKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDM2MzMyMzIxCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzIJMHgwMDAwMDgwMAkvKiBQOS00NSxtYXkgbmVlZCB0dW5pbmcgKi8KLSNkZWZpbmUgQ0ZHX0REUl9DT05UUk9MCQkweGMyMDAwMDAwCS8qIHVuYnVmZmVyZWQsbm8gRFlOX1BXUiAqLwotI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDQwNjAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0laRQkJMjU2CQkvKiBNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05GSUcJCShDU0NPTkZJR19FTiB8IENTQ09ORklHX1JPV19CSVRfMTMgfCBDU0NPTkZJR19DT0xfQklUXzEwKQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM2MzMyMzIxCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1RJTUlOR18yCTB4MDAwMDA4MDAJLyogUDktNDUsbWF5IG5lZWQgdHVuaW5nICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NPTlRST0wJCTB4YzIwMDAwMDAJLyogdW5idWZmZXJlZCxubyBEWU5fUFdSICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0lOVEVSVkFMCTB4MDQwNjAxMDAJLyogYXV0b2NoYXJnZSxubyBvcGVuIHBhZ2UgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0REUl8zMkJJVCkKIC8qIHNldCBidXJzdCBsZW5ndGggdG8gOCBmb3IgMzItYml0IGRhdGEgcGF0aCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjMJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDggYnVyc3QgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MDAwMDAwMjMJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDggYnVyc3QgbGVuICovCiAjZWxzZQogLyogdGhlIGRlZmF1bHQgYnVyc3QgbGVuZ3RoIGlzIDQgLSBmb3IgNjQtYml0IGRhdGEgcGF0aCAqLwotI2RlZmluZSBDRkdfRERSX01PREUJCTB4MDAwMDAwMjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDQgYnVyc3QgbGVuICovCisjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREUJCTB4MDAwMDAwMjIJLyogRExMLG5vcm1hbCxzZXEsNC8yLjUsIDQgYnVyc3QgbGVuICovCiAjZW5kaWYKICNlbmRpZgogCiAvKgogICogU0RSQU0gb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweDEwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQkxMjgJCS8qIExCQyBTRFJBTSBpcyAxMjhNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFCTB4MTAwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fU0laRQkxMjgJCS8qIExCQyBTRFJBTSBpcyAxMjhNQiAqLwogCiAvKgogICogRkxBU0ggb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogdXNlIHRoZSBDb21tb24gRmxhc2ggSW50ZXJmYWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIHVzZSB0aGUgQ29tbW9uIEZsYXNoIEludGVyZmFjZSAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIHVzZSB0aGUgQ0ZJIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQk4CQkvKiBmbGFzaCBzaXplIGluIE1CICovCi0vKiAjZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjgwMDAwMAkvKiBzdGFydCBvZiBGTEFTSCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJOAkJLyogZmxhc2ggc2l6ZSBpbiBNQiAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgKi8KIAotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJKENGR19GTEFTSF9CQVNFIHwJLyogZmxhc2ggQmFzZSBhZGRyZXNzICovIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwJLyogZmxhc2ggQmFzZSBhZGRyZXNzICovIFwKIAkJCQkoMiA8PCBCUl9QU19TSElGVCkgfAkvKiAzMiBiaXQgcG9ydCBzaXplICovCSBcCiAJCQkJQlJfVikJCQkvKiB2YWxpZCAqLwogCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCQkweEZGODA2RkY3CS8qIDggTUIgZmxhc2ggc2l6ZSAqLwotI2RlZmluZSBDRkdfTEJMQVdCQVIwX1BSRUxJTQlDRkdfRkxBU0hfQkFTRQkvKiB3aW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCi0jZGVmaW5lIENGR19MQkxBV0FSMF9QUkVMSU0JMHg4MDAwMDAxNgkvKiA4IE1CIHdpbmRvdyBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkJMHhGRjgwNkZGNwkvKiA4IE1CIGZsYXNoIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjBfUFJFTElNCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkvKiB3aW5kb3cgYmFzZSBhdCBmbGFzaCBiYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJMQVdBUjBfUFJFTElNCTB4ODAwMDAwMTYJLyogOCBNQiB3aW5kb3cgc2l6ZSAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbnVtYmVyIG9mIGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KIAotI3VuZGVmIENGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI3VuZGVmIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLwogCi0jZGVmaW5lIENGR19NSURfRkxBU0hfSlVNUAkweDdGMDAwMDAwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCS8qIHN0YXJ0IG9mIG1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NSURfRkxBU0hfSlVNUAkweDdGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yICovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmICBDRkdfUkFNQk9PVAorI3VuZGVmICBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4RkQwMDAwMDAJCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDEwMDAJCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweEZEMDAwMDAwCQkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MTAwMAkJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkweDEwMAkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMHgxMDAJCQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qCiAgKiBMb2NhbCBCdXMgTENSUiBhbmQgTEJDUiByZWdzCkBAIC0xODAsMTYgKzE4MCwxNiBAQAogICogRXh0ZXJuYWwgTG9jYWwgQnVzIHJhdGUgaXMKICAqICAgIENMS0lOICogSFJDV0xfQ1NCX1RPX0NMS0lOIC8gSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLIC8gTENSUl9DTEtESVYKICAqLwotI2RlZmluZSBDRkdfTENSUgkoTENSUl9EQllQIHwgTENSUl9DTEtESVZfNCkKLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQ1JSCShMQ1JSX0RCWVAgfCBMQ1JSX0NMS0RJVl80KQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCTB4MDAwMDAwMDAKIAotI3VuZGVmIENGR19MQl9TRFJBTQkvKiBpZiBib2FyZCBoYXMgU0RSQU0gb24gbG9jYWwgYnVzICovCisjdW5kZWYgQ09ORklHX1NZU19MQl9TRFJBTQkvKiBpZiBib2FyZCBoYXMgU0RSQU0gb24gbG9jYWwgYnVzICovCiAKLSNpZmRlZiBDRkdfTEJfU0RSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0xCX1NEUkFNCiAvKiBMb2NhbCBidXMgQlIyLCBPUjIgZGVmaW5pdGlvbiBmb3IgU0RSQU0gaWYgc29sZGVyZWQgb24gdGhlIGJvYXJkKi8KIC8qCiAgKiBCYXNlIFJlZ2lzdGVyIDIgYW5kIE9wdGlvbiBSZWdpc3RlciAyIGNvbmZpZ3VyZSBTRFJBTS4KLSAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENGR19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KKyAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCiAgKgogICogRm9yIEJSMiwgbmVlZDoKICAqICAgIEJhc2UgYWRkcmVzcyBvZiAweGYwMDAwMDAwID0gQlJbMDoxNl0gPSAxMTExIDAwMDAgMDAwMCAwMDAwIDAKQEAgLTIwMSwxNiArMjAxLDE2IEBACiAgKiAwICAgIDQgICAgOCAgICAxMiAgIDE2ICAgMjAgICAyNCAgIDI4CiAgKiAxMTExIDAwMDAgMDAwMCAwMDAwIDAwMDEgMTAwMCAwMTEwIDAwMDEgPSBGMDAwMTg2MQogICoKLSAqIEZJWE1FOiBDRkdfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bworICogRklYTUU6IENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0Ugc2hvdWxkIGJlIG1hc2tlZCBhbmQgT1InZWQgaW50bwogICogRklYTUU6IHRoZSB0b3AgMTcgYml0cyBvZiBCUjIuCiAgKi8KIAotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhGMDAwMTg2MSAvKiBQb3J0LXNpemU9MzJiaXQsIE1TRUw9U0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0xCTEFXQkFSMl9QUkVMSU0JMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfTEJMQVdBUjJfUFJFTElNCTB4ODAwMDAwMTkgLyogNjRNICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkJMHhGMDAwMTg2MSAvKiBQb3J0LXNpemU9MzJiaXQsIE1TRUw9U0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0JBUjJfUFJFTElNCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkxBV0FSMl9QUkVMSU0JMHg4MDAwMDAxOSAvKiA2NE0gKi8KIAogLyoKLSAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDRkdfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgorICogVGhlIFNEUkFNIHNpemUgaW4gTUIsIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUsIGlzIDY0LgogICoKICAqIEZvciBPUjIsIG5lZWQ6CiAgKiAgICA2NE1CIG1hc2sgZm9yIEFNLCBPUjJbMDo3XSA9IDExMTEgMTEwMApAQCAtMjIzLDY1ICsyMjMsNjUgQEAKICAqIDExMTEgMTEwMCAwMDAwIDAwMDAgMDExMCAxMDAxIDAwMDAgMDAwMSA9IEZDMDA2OTAxCiAgKi8KIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkweEZDMDA2OTAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkweEZDMDA2OTAxCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCTB4MzIwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjYWwsIDI2Nk1Iei8zMiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCTB4MzIwMDAwMDAgICAgLyogTEIgc2RyYW0gcmVmcmVzaCB0aW1lciwgYWJvdXQgNnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCTB4MjAwMDAwMDAgICAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsLCAyNjZNSHovMzIgKi8KIAogLyoKICAqIExTRE1SIG1hc2tzCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkVOCSgxIDw8ICgzMSAtICAxKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1JGQ1I1CSgzIDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSOAkoNSA8PCAoMzEgLSAxNikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9QUkVUT0FDVDMJKDMgPDwgKDMxIC0gMTkpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNgkoNSA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9BQ1RUT1JXMwkoMyA8PCAoMzEgLSAyMikpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzIJKDIgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzMJKDMgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JVRkNNRAkoMSA8PCAoMzEgLSAyOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CSgzIDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlNNQTE2MTcJKDQgPDwgKDMxIC0gMTApKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9SRkNSNQkoMyA8PCAoMzEgLSAxNikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1I4CSg1IDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1QzCSgzIDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q2CSg1IDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzMJKDMgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNwkoNyA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CSgxIDw8ICgzMSAtIDIzKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfV1JDMgkoMiA8PCAoMzEgLSAyNykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzMJKDMgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CSgwIDw8ICgzMSAtIDI3KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQlVGQ01ECSgxIDw8ICgzMSAtIDI5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ0wzCSgzIDw8ICgzMSAtIDMxKSkKIAotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gJKDEgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QUkVDSAkoNCA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1JXSU5WCSg3IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9OT1JNQUwJKDAgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfU1JGUlNICSgyIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9NUlcJKDMgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9QQ0hBTEwJKDUgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX0FDVEJOSwkoNiA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9DT01NT04gICAgKCBDRkdfTEJDX0xTRE1SX1JGRU4gICAgICAgICAgICBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0JTTUExNTE2CVwKLQkJCQl8IENGR19MQkNfTFNETVJfUkZDUjgJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfUFJFVE9BQ1Q2CVwKLQkJCQl8IENGR19MQkNfTFNETVJfQUNUVE9SVzMJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9CTDgJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfV1JDMwkJXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9DTDMJCVwKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OICAgICggQ09ORklHX1NZU19MQkNfTFNETVJfUkZFTiAgICAgICAgICAgIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNTE2CVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1JGQ1I4CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDYJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzMJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkMzCQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJCVwKIAkJCQkpCiAKIC8qCiAgKiBTRFJBTSBDb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gc2VxdWVuY2UuCiAgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfUENIQUxMKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzIJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9BUkZSU0gpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMwkJKCBDRkdfTEJDX0xTRE1SX0NPTU1PTiBcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSCkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkoIENGR19MQkNfTFNETVJfQ09NTU9OIFwKLQkJCQl8IENGR19MQkNfTFNETVJfT1BfTVJXKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzUJCSggQ0ZHX0xCQ19MU0RNUl9DT01NT04gXAotCQkJCXwgQ0ZHX0xCQ19MU0RNUl9PUF9OT1JNQUwpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzEJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTCkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMgkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNIKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zCQkoIENPTkZJR19TWVNfTEJDX0xTRE1SX0NPTU1PTiBcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9BUkZSU0gpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzQJCSggQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OIFwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVykKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNQkJKCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DT01NT04gXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfTk9STUFMKQogI2VuZGlmCiAKIC8qCkBAIC0yODksMjIgKzI4OSwyMiBAQAogICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAxCiAjdW5kZWYgQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRSAgICAxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRSAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEgICAgICAgIChDRkdfSU1NUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIgICAgICAgIChDRkdfSU1NUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xICAgICAgICAoQ09ORklHX1NZU19JTU1SKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIgICAgICAgIChDT05GSUdfU1lTX0lNTVIrMHg0NjAwKQogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0zMTcsNDMgKzMxNyw0MyBAQAogI3VuZGVmIENPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCi0jZGVmaW5lIENGR19JMkMxX09GRlNFVAkJMHgzMDAwCi0jZGVmaW5lIENGR19JMkMyX09GRlNFVAkJMHgzMTAwCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQlDRkdfSTJDMl9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMJezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDMV9PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfT0ZGU0VUCQlDT05GSUdfU1lTX0kyQzJfT0ZGU0VUCiAvKiBjb3VsZCBhbHNvIHVzZSBDT05GSUdfSTJDX01VTFRJX0JVUyBhbmQgQ09ORklHX1NQRF9CVVNfTlVNLi4uICovCiAKIC8qIFRTRUMgKi8KLSNkZWZpbmUgQ0ZHX1RTRUMxX09GRlNFVCAweDI0MDAwCi0jZGVmaW5lIENGR19UU0VDMSAoQ0ZHX0lNTVIrQ0ZHX1RTRUMxX09GRlNFVCkKLSNkZWZpbmUgQ0ZHX1RTRUMyX09GRlNFVCAweDI1MDAwCi0jZGVmaW5lIENGR19UU0VDMiAoQ0ZHX0lNTVIrQ0ZHX1RTRUMyX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQgMHgyNDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxIChDT05GSUdfU1lTX0lNTVIrQ09ORklHX1NZU19UU0VDMV9PRkZTRVQpCisjZGVmaW5lIENPTkZJR19TWVNfVFNFQzJfT0ZGU0VUIDB4MjUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19UU0VDMiAoQ09ORklHX1NZU19JTU1SK0NPTkZJR19TWVNfVFNFQzJfT0ZGU0VUKQogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMV9NTUlPX0JBU0UJMHg5MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NTUlPX1BIWVMJQ0ZHX1BDSTFfTU1JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhFMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UJMHg5MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMV9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweEUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAotI2RlZmluZSBDRkdfUENJMl9NRU1fQkFTRQkweEEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX01FTV9QSFlTCUNGR19QQ0kyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kyX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMl9NTUlPX0JBU0UJMHhCMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9NTUlPX1BIWVMJQ0ZHX1BDSTJfTU1JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kyX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1BIWVMJMHhFMjEwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCTB4QTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMl9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1NJWkUJMHgxMDAwMDAwMAkvKiAyNTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UJMHhCMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTU1JT19QSFlTCUNPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01NSU9fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUwkweEUyMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKIApAQCAtMzc4LDcgKzM3OCw3IEBACiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3ICAvKiBNb3Rvcm9sYSAqLwogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC00MTIsOSArNDEyLDkgQEAKIC8qCiAgKiBFbnZpcm9ubWVudAogICovCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogCSNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCi0JI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKIAkjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCiAJI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogCkBAIC00MjMsMTQgKzQyMywxNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKICNlbHNlCi0JI2RlZmluZSBDRkdfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cgKi8KIAkjZGVmaW5lIENPTkZJR19FTlZfSVNfTk9XSEVSRQkxCS8qIFN0b3JlIEVOViBpbiBtZW1vcnkgb25seSAqLwotCSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIDB4MTAwMCkKKwkjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogCSNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKIAogLyoKQEAgLTQ1NSw3ICs0NTUsNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9QQ0kKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC00NjYsNjAgKzQ2Niw2MCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCTB4MjAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotCSNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworCSNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0JI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKwkjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbmRpZgogCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCiAKLSNkZWZpbmUgQ0ZHX1JDV0hfUENJSE9TVCAweDgwMDAwMDAwIC8qIFBDSUhPU1QgICovCisjZGVmaW5lIENPTkZJR19TWVNfUkNXSF9QQ0lIT1NUIDB4ODAwMDAwMDAgLyogUENJSE9TVCAgKi8KIAogI2lmIDEgLyo1MjgvMjY0Ki8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYMiB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzJYMSkKICNlbGlmIDAgLyozOTYvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzNYMSkKICNlbGlmIDAgLyoyNjQvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzJYMSkKICNlbGlmIDAgLyoxMzIvMTMyKi8KLSNkZWZpbmUgQ0ZHX0hSQ1dfTE9XIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19MT1cgKFwKIAlIUkNXTF9MQ0xfQlVTX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfRERSX1RPX1NDQl9DTEtfMVgxIHxcCiAJSFJDV0xfQ1NCX1RPX0NMS0lOIHxcCiAJSFJDV0xfVkNPXzFYNCB8XAogCUhSQ1dMX0NPUkVfVE9fQ1NCXzFYMSkKICNlbGlmIDAgLyoyNjQvMjY0ICovCi0jZGVmaW5lIENGR19IUkNXX0xPVyAoXAorI2RlZmluZSBDT05GSUdfU1lTX0hSQ1dfTE9XIChcCiAJSFJDV0xfTENMX0JVU19UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0REUl9UT19TQ0JfQ0xLXzFYMSB8XAogCUhSQ1dMX0NTQl9UT19DTEtJTiB8XApAQCAtNTI4LDcgKzUyOCw3IEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoUENJXzY0QklUKQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF82NF9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNTQxLDcgKzU0MSw3IEBACiAJSFJDV0hfVFNFQzFNX0lOX0dNSUkgfFwKIAlIUkNXSF9UU0VDMk1fSU5fR01JSSApCiAjZWxzZQotI2RlZmluZSBDRkdfSFJDV19ISUdIIChcCisjZGVmaW5lIENPTkZJR19TWVNfSFJDV19ISUdIIChcCiAJSFJDV0hfUENJX0hPU1QgfFwKIAlIUkNXSF8zMl9CSVRfUENJIHxcCiAJSFJDV0hfUENJMV9BUkJJVEVSX0VOQUJMRSB8XApAQCAtNTU2LDc4ICs1NTYsNzggQEAKICNlbmRpZgogCiAvKiBTeXN0ZW0gSU8gQ29uZmlnICovCi0jZGVmaW5lIENGR19TSUNSSCBTSUNSSF9UU09CSTEKLSNkZWZpbmUgQ0ZHX1NJQ1JMIFNJQ1JMX0xEUF9BCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkggU0lDUkhfVFNPQkkxCisjZGVmaW5lIENPTkZJR19TWVNfU0lDUkwgU0lDUkxfTERQX0EKIAotI2RlZmluZSBDRkdfSElEMF9JTklUCTB4MDAwMDAwMDAwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJMHgwMDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCUhJRDBfRU5BQkxFX01BQ0hJTkVfQ0hFQ0sKIAotLyogI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJKFwKKy8qICNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkoXAogCUhJRDBfRU5BQkxFX0lOU1RSVUNUSU9OX0NBQ0hFIHxcCiAJSElEMF9FTkFCTEVfTV9CSVQgfFwKIAlISUQwX0VOQUJMRV9BRERSRVNTX0JST0FEQ0FTVCApICovCiAKIAotI2RlZmluZSBDRkdfSElEMiBISUQyX0hCRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDIgSElEMl9IQkUKIAogI2RlZmluZSBDT05GSUdfSElHSF9CQVRTCTEJLyogSGlnaCBCQVRzIHN1cHBvcnRlZCAqLwogCiAvKiBERFIgQCAweDAwMDAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUMEwJKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDBVCShDRkdfU0RSQU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwTAkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQkoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSSBAIDB4ODAwMDAwMDAgKi8KICNpZmRlZiBDT05GSUdfUENJCi0jZGVmaW5lIENGR19JQkFUMUwJKENGR19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfTUVNQ09IRVJFTkNFKQotI2RlZmluZSBDRkdfSUJBVDFVCShDRkdfUENJMV9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfUENJMV9NTUlPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDJVCShDRkdfUENJMV9NTUlPX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMUwJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKENPTkZJR19TWVNfUENJMV9NRU1fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTAkoQ09ORklHX1NZU19QQ0kxX01NSU9fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVCShDT05GSUdfU1lTX1BDSTFfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAjZWxzZQotI2RlZmluZSBDRkdfSUJBVDFMCSgwKQotI2RlZmluZSBDRkdfSUJBVDFVCSgwKQotI2RlZmluZSBDRkdfSUJBVDJMCSgwKQotI2RlZmluZSBDRkdfSUJBVDJVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVQkoMCkKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX01QQzgzWFhfUENJMgotI2RlZmluZSBDRkdfSUJBVDNMCShDRkdfUENJMl9NRU1fQkFTRSB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoQ0ZHX1BDSTJfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoQ0ZHX1BDSTJfTU1JT19CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkoQ0ZHX1BDSTJfTU1JT19CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNMCShDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCShDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfUENJMl9NTUlPX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQkoQ09ORklHX1NZU19QQ0kyX01NSU9fQkFTRSB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQzVQkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ0VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUM0wJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVCSgwKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0TAkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNFUJKDApCiAjZW5kaWYKIAogLyogSU1NUkJBUiBAIDB4RTAwMDAwMDAsIFBDSSBJTyBAIDB4RTIwMDAwMDAgKi8KLSNkZWZpbmUgQ0ZHX0lCQVQ1TAkoQ0ZHX0lNTVIgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfSUJBVDVVCShDRkdfSU1NUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1TAkoQ09ORklHX1NZU19JTU1SIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNVUJKENPTkZJR19TWVNfSU1NUiB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCiAvKiBTRFJBTSBAIDB4RjAwMDAwMDAsIHN0YWNrIGluIERDQUNIRSAweEZERjAwMDAwICYgRkxBU0ggQCAweEZFMDAwMDAwICovCi0jZGVmaW5lIENGR19JQkFUNkwJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUNlUJKDB4RjAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNkwJKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDZVCSgweEYwMDAwMDAwIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkoMCkKLSNkZWZpbmUgQ0ZHX0lCQVQ3VQkoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJKDApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDdVCSgwKQogCi0jZGVmaW5lIENGR19EQkFUMEwJQ0ZHX0lCQVQwTAotI2RlZmluZSBDRkdfREJBVDBVCUNGR19JQkFUMFUKLSNkZWZpbmUgQ0ZHX0RCQVQxTAlDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUJQ0ZHX0lCQVQxVQotI2RlZmluZSBDRkdfREJBVDJMCUNGR19JQkFUMkwKLSNkZWZpbmUgQ0ZHX0RCQVQyVQlDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wJQ0ZHX0lCQVQzTAotI2RlZmluZSBDRkdfREJBVDNVCUNGR19JQkFUM1UKLSNkZWZpbmUgQ0ZHX0RCQVQ0TAlDRkdfSUJBVDRMCi0jZGVmaW5lIENGR19EQkFUNFUJQ0ZHX0lCQVQ0VQotI2RlZmluZSBDRkdfREJBVDVMCUNGR19JQkFUNUwKLSNkZWZpbmUgQ0ZHX0RCQVQ1VQlDRkdfSUJBVDVVCi0jZGVmaW5lIENGR19EQkFUNkwJQ0ZHX0lCQVQ2TAotI2RlZmluZSBDRkdfREJBVDZVCUNGR19JQkFUNlUKLSNkZWZpbmUgQ0ZHX0RCQVQ3TAlDRkdfSUJBVDdMCi0jZGVmaW5lIENGR19EQkFUN1UJQ0ZHX0lCQVQ3VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTAlDT05GSUdfU1lTX0lCQVQwTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwVQlDT05GSUdfU1lTX0lCQVQwVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxTAlDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQlDT05GSUdfU1lTX0lCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyTAlDT05GSUdfU1lTX0lCQVQyTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQyVQlDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTAlDT05GSUdfU1lTX0lCQVQzTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQlDT05GSUdfU1lTX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0TAlDT05GSUdfU1lTX0lCQVQ0TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ0VQlDT05GSUdfU1lTX0lCQVQ0VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1TAlDT05GSUdfU1lTX0lCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ1VQlDT05GSUdfU1lTX0lCQVQ1VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAlDT05GSUdfU1lTX0lCQVQ2TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2VQlDT05GSUdfU1lTX0lCQVQ2VQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAlDT05GSUdfU1lTX0lCQVQ3TAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3VQlDT05GSUdfU1lTX0lCQVQ3VQogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zYmM4NTQ4LmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2JjODU0OC5oCmluZGV4IDlkNDM2YzYuLjU0ZjNlNjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYmM4NTQ4LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NiYzg1NDguaApAQCAtNjksMjIgKzY5LDIyIEBACiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkxCS8qIENhbGwgYm9hcmRfcHJlX2luaXQgKi8KIAotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIgKi8KIAotI2RlZmluZSBDRkdfUENJMV9BRERSCShDRkdfQ0NTUkJBUisweDgwMDApCi0jZGVmaW5lIENGR19QQ0kyX0FERFIJKENGR19DQ1NSQkFSKzB4OTAwMCkKLSNkZWZpbmUgQ0ZHX1BDSUUxX0FERFIJKENGR19DQ1NSQkFSKzB4YTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0FERFIJKENPTkZJR19TWVNfQ0NTUkJBUisweDgwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9BRERSCShDT05GSUdfU1lTX0NDU1JCQVIrMHg5MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX0FERFIJKENPTkZJR19TWVNfQ0NTUkJBUisweGEwMDApCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjIKQEAgLTk2LDggKzk2LDggQEAKICNkZWZpbmUgQ09ORklHX0VDQ19JTklUX1ZJQV9ERFJDT05UUk9MTEVSCS8qIEREUiBjb250cm9sbGVyIG9yIERNQT8gKi8KICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCTB4RGVhZEJlZWYKIAotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKICNkZWZpbmUgQ09ORklHX1ZFUllfQklHX1JBTQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKQEAgLTExMSw3ICsxMTEsNyBAQAogICogTWFrZSBzdXJlIHJlcXVpcmVkIG9wdGlvbnMgYXJlIHNldAogICovCiAjaWZuZGVmIENPTkZJR19TUERfRUVQUk9NCi0JI2RlZmluZSBDRkdfU0RSQU1fU0laRQkyNTYJCS8qIEREUiBpcyAyNTZNQiAqLworCSNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCTI1NgkJLyogRERSIGlzIDI1Nk1CICovCiAjZW5kaWYKIAogI3VuZGVmIENPTkZJR19DTE9DS1NfSU5fTUhaCkBAIC0xNjUsNDcgKzE2NSw0NyBAQAogICogMTExMSAxMDAwIDAwMDAgMDAwMCAwMTEwIDExMTAgMDExMCAwMTAxID0gZjgwMDZlNjUgICAgT1I2CiAgKi8KIAotI2RlZmluZSBDRkdfQk9PVF9CTE9DSwkJMHhmZjgwMDAwMAkvKiBzdGFydCBvZiA4TUIgRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19CT09UX0JMT0NLCS8qIHN0YXJ0IG9mIEZMQVNIIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RfQkxPQ0sJCTB4ZmY4MDAwMDAJLyogc3RhcnQgb2YgOE1CIEZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19CT09UX0JMT0NLCS8qIHN0YXJ0IG9mIEZMQVNIIDE2TSAqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZmODAwODAxCi0jZGVmaW5lIENGR19CUjZfUFJFTElNCQkweGZiODAxODAxCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkJMHhmZjgwMDgwMQorI2RlZmluZSBDT05GSUdfU1lTX0JSNl9QUkVMSU0JCTB4ZmI4MDE4MDEKIAotI2RlZmluZQlDRkdfT1IwX1BSRUxJTQkJMHhmZjgwNmU2NQotI2RlZmluZQlDRkdfT1I2X1BSRUxJTQkJMHhmODAwNmU2NQorI2RlZmluZQlDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmY4MDZlNjUKKyNkZWZpbmUJQ09ORklHX1NZU19PUjZfUFJFTElNCQkweGY4MDA2ZTY1CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QJe0NGR19GTEFTSF9CQVNFfQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXtDT05GSUdfU1lTX0ZMQVNIX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogRmxhc2ggV3JpdGUgVGltZW91dCAobXMpICovCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCiAKIC8qIENTNSA9IExvY2FsIGJ1cyBwZXJpcGhlcmFscyBjb250cm9sbGVkIGJ5IHRoZSBFUExEICovCiAKLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCTB4ZjgwMDA4MDEKLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCTB4ZmYwMDZlNjUKLSNkZWZpbmUgQ0ZHX0VQTERfQkFTRQkJMHhmODAwMDAwMAotI2RlZmluZSBDRkdfTEVEX0RJU1BfQkFTRQkweGY4MDAwMDAwCi0jZGVmaW5lIENGR19VU0VSX1NXSVRDSEVTX0JBU0UJMHhmODEwMDAwMAotI2RlZmluZSBDRkdfQkRfUkVWCQkweGY4MzAwMDAwCi0jZGVmaW5lIENGR19FRVBST01fQkFTRQkJMHhmOGIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCTB4ZjgwMDA4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkweGZmMDA2ZTY1CisjZGVmaW5lIENPTkZJR19TWVNfRVBMRF9CQVNFCQkweGY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0RJU1BfQkFTRQkweGY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNFUl9TV0lUQ0hFU19CQVNFCTB4ZjgxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CRF9SRVYJCTB4ZjgzMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fQkFTRQkJMHhmOGIwMDAwMAogCiAvKgogICogU0RSQU0gb24gdGhlIExvY2FsIEJ1cwogICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fU0laRQk2NAkJLyogTEJDIFNEUkFNIGlzIDY0TUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfU0RSQU1fQkFTRQkweGYwMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJNjQJCS8qIExCQyBTRFJBTSBpcyA2NE1CICovCiAKIC8qCiAgKiBCYXNlIFJlZ2lzdGVyIDMgYW5kIE9wdGlvbiBSZWdpc3RlciAzIGNvbmZpZ3VyZSBTRFJBTS4KLSAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENGR19MQkNfU0RSQU1fQkFTRSwgaXMgMHhmMDAwMDAwMC4KKyAqIFRoZSBTRFJBTSBiYXNlIGFkZHJlc3MsIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UsIGlzIDB4ZjAwMDAwMDAuCiAgKgogICogRm9yIEJSMywgbmVlZDoKICAqICAgIEJhc2UgYWRkcmVzcyBvZiAweGYwMDAwMDAwID0gQlJbMDoxNl0gPSAxMTExIDAwMDAgMDAwMCAwMDAwIDAKQEAgLTIxOSwxMCArMjE5LDEwIEBACiAgKgogICovCiAKLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JCTB4ZjAwMDE4NjEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkweGYwMDAxODYxCiAKIC8qCi0gKiBUaGUgU0RSQU0gc2l6ZSBpbiBNQiwgQ0ZHX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KKyAqIFRoZSBTRFJBTSBzaXplIGluIE1CLCBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFLCBpcyA2NC4KICAqCiAgKiBGb3IgT1IzLCBuZWVkOgogICogICAgNjRNQiBtYXNrIGZvciBBTSwgT1IzWzA6N10gPSAxMTExIDExMDAKQEAgLTIzNSwzNSArMjM1LDM1IEBACiAgKiAxMTExIDExMDAgMDAwMCAwMDAwIDAxMTAgMTEwMCAxMTAwIDAwMDAgPSBmYzAwNmNjMAogICovCiAKLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4ZmMwMDZjYzAKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZjMDA2Y2MwCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDAwMDAyICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZyAqLwotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkJMHgwMDAwMDAwMCAgLyogTEIgcmVmcmVzaCB0aW1lciBwcmVzY2FsKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAwMDAwMiAgICAvKiBMQiBjbG9jayByYXRpbyByZWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMCAgICAvKiBMQiBjb25maWcgcmVnICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MDAwMDAwMDAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2NhbCovCiAKIC8qCiAgKiBMU0RNUiBtYXNrcwogICovCi0jZGVmaW5lIENGR19MQkNfTFNETVJfUkZFTgkoMSA8PCAoMzEgLSAgMSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQlNNQTE1MTYJKDMgPDwgKDMxIC0gMTApKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9SRkNSMTYJKDcgPDwgKDMxIC0gMTYpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwkoNyA8PCAoMzEgLSAxOSkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0FDVFRPUlc2CSg2IDw8ICgzMSAtIDIyKSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9CTDgJKDEgPDwgKDMxIC0gMjMpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NMMwkoMyA8PCAoMzEgLSAzMSkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JKDEgPDwgKDMxIC0gIDEpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9CU01BMTUxNgkoMyA8PCAoMzEgLSAxMCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JTTUExNjE3CSg0IDw8ICgzMSAtIDEwKSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CSg3IDw8ICgzMSAtIDE2KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfUFJFVE9BQ1Q3CSg3IDw8ICgzMSAtIDE5KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJKDcgPDwgKDMxIC0gMjIpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9BQ1RUT1JXNgkoNiA8PCAoMzEgLSAyMikpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX0JMOAkoMSA8PCAoMzEgLSAyMykpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX1dSQzQJKDAgPDwgKDMxIC0gMjcpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJKDMgPDwgKDMxIC0gMzEpKQogCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTk9STUFMCSgwIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX0FSRlJTSAkoMSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfTVJXCSgzIDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BSRUNICSg0IDw8ICgzMSAtIDQpKQotI2RlZmluZSBDRkdfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl9PUF9BQ1RCTksJKDYgPDwgKDMxIC0gNCkpCi0jZGVmaW5lIENGR19MQkNfTFNETVJfT1BfUldJTlYJKDcgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX05PUk1BTAkoMCA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQVJGUlNICSgxIDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9TUkZSU0gJKDIgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX01SVwkoMyA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfUFJFQ0gJKDQgPDwgKDMxIC0gNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SX09QX1BDSEFMTAkoNSA8PCAoMzEgLSA0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfT1BfQUNUQk5LCSg2IDw8ICgzMSAtIDQpKQorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl9PUF9SV0lOVgkoNyA8PCAoMzEgLSA0KSkKIAogLyoKICAqIENvbW1vbiBzZXR0aW5ncyBmb3IgYWxsIExvY2FsIEJ1cyBTRFJBTSBjb21tYW5kcy4KQEAgLTI3MSw0NyArMjcxLDQ3IEBACiAgKiAgICAgICAgICAgICAgICAgIG9yIEJTTUExNjE3IChmb3IgQ1BVIDEuMCkgKG9sZCkKICAqIGlzIE9SJ2VkIGluIHRvby4KICAqLwotI2RlZmluZSBDRkdfTEJDX0xTRE1SX0NPTU1PTgkoIENGR19MQkNfTFNETVJfUkZDUjE2CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1BSRVRPQUNUNwlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX0FDVFRPUlc3CVwKLQkJCQl8IENGR19MQkNfTFNETVJfQkw4CQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1dSQzQJCVwKLQkJCQl8IENGR19MQkNfTFNETVJfQ0wzCQlcCi0JCQkJfCBDRkdfTEJDX0xTRE1SX1JGRU4JCVwKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfQ09NTU9OCSggQ09ORklHX1NZU19MQkNfTFNETVJfUkZDUjE2CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9QUkVUT0FDVDcJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQUNUVE9SVzcJXAorCQkJCXwgQ09ORklHX1NZU19MQkNfTFNETVJfQkw4CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9XUkM0CQlcCisJCQkJfCBDT05GSUdfU1lTX0xCQ19MU0RNUl9DTDMJCVwKKwkJCQl8IENPTkZJR19TWVNfTEJDX0xTRE1SX1JGRU4JCVwKIAkJCQkpCiAKICNkZWZpbmUgQ09ORklHX0wxX0lOSVRfUkFNCi0jZGVmaW5lIENGR19JTklUX1JBTV9MT0NLCTEKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHhlNDAxMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KIAotI2RlZmluZSBDRkdfSU5JVF9MMl9BRERSCTB4ZjhmODAwMDAJLyogcmVsb2NhdGUgYm9vdCBMMlNSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0wyX0FERFIJMHhmOGY4MDAwMAkvKiByZWxvY2F0ZSBib290IEwyU1JBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJNDAwMDAwMDAwIC8qIGdldF9idXNfZnJlcSgwKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQk0MDAwMDAwMDAgLyogZ2V0X2J1c19mcmVxKDApICovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsMTE1MjAwfQogCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJKENGR19DQ1NSQkFSKzB4NDUwMCkKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMgkoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ2MDApCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyogcGFzcyBvcGVuIGZpcm13YXJlIGZsYXQgdHJlZSAqLwpAQCAtMzI1LDQ4ICszMjUsNDggQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogTWVtb3J5IHNwYWNlIGlzIG1hcHBlZCAxLTEsIGJ1dCBJL08gc3BhY2UgbXVzdCBzdGFydCBmcm9tIDAuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QSFlTCQkweDgwMDAwMDAwCS8qIDFHIFBDSSBUTEIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUEhZUwkJMHg4MDAwMDAwMAkvKiAxRyBQQ0kgVExCICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJMV9NRU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX1BIWVMJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDAwMTAwMDAwCS8qIDFNICovCiAKICNpZmRlZiBDT05GSUdfUENJMgotI2RlZmluZSBDRkdfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX01FTV9QSFlTCUNGR19QQ0kyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMl9JT19CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fUEhZUwkweGUyODAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAxTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUwkweGUyODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19TSVpFCTB4MDAxMDAwMDAJLyogMU0gKi8KICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1BDSUUxCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9NRU1fUEhZUwlDRkdfUENJRTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSUUxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJRTFfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9JT19QSFlTCTB4ZTMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0lPX1NJWkUJMHgwMDEwMDAwMAkvKiAgIDFNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX01FTV9QSFlTCUNPTkZJR19TWVNfUENJRTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19QSFlTCTB4ZTMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMV9JT19TSVpFCTB4MDAxMDAwMDAJLyogICAxTSAqLwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUklPCiAvKgogICogUmFwaWRJTyBNTVUKICAqLwotI2RlZmluZSBDRkdfUklPX01FTV9CQVNFCTB4QzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SSU9fTUVNX0JBU0UJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0xFR0FDWQpAQCAtMzg4LDkgKzM4OCw5IEBACiAjdW5kZWYgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cCAqLwogCiAvKiBQQ0kgdmlldyBvZiBTeXN0ZW0gTWVtb3J5ICovCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1BIWVMJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9TSVpFCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTU9SWV9QSFlTCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUJMHg4MDAwMDAwMAogCiAjZW5kaWYJLyogQ09ORklHX1BDSSAqLwogCkBAIC00MzUsMTIgKzQzNSwxMiBAQAogICogRW52aXJvbm1lbnQKICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSArIDB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAkvKiAyNTZLKG9uZSBzZWN0b3IpIGZvciBlbnYgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZCAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLwogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtNDcxLDI1ICs0NzEsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODU2MC5oIGIvaW5jbHVkZS9jb25maWdzL3NiYzg1NjAuaAppbmRleCAzOGFlMWIxLi40MzAxMjc1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODU2MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYmM4NTYwLmgKQEAgLTczLDkgKzczLDkgQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GIDEJICAgIC8qIENhbGwgYm9hcmRfZWFybHlfaW5pdF9mCSovCiAKLSN1bmRlZglDRkdfRFJBTV9URVNUCQkJICAgIC8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lCSovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAyMDAwMDAgIC8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCQkJICAgIC8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwICAvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKICNpZiAoZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19UU0VDX0VORVQpIHx8IFwKICAgICAgZGVmaW5lZChDT05GSUdfUENJKSAmJiBkZWZpbmVkKENPTkZJR19FVEhFUl9PTl9GQ0MpIHx8IFwKQEAgLTg3LDE3ICs4NywxNyBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0CSovCiAKICNpZiBYWFgKLSAgI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhmZGYwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLworICAjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhmZGYwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLwogI2Vsc2UKLSAgI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhmZjcwMDAwMAkvKiBkZWZhdWx0IENDU1JCQVIJKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4ZmY3MDAwMDAJLyogZGVmYXVsdCBDQ1NSQkFSCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIJKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJNTEyCQkvKiBERFIgaXMgNTEyTUIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQk1MTIJCS8qIEREUiBpcyA1MTJNQiAqLwogCiAvKiBERFIgU2V0dXAgKi8KICNkZWZpbmUgQ09ORklHX0ZTTF9ERFIxCkBAIC0xMTQsOCArMTE0LDggQEAKICN1bmRlZiBDT05GSUdfRUNDX0lOSVRfVklBX0REUkNPTlRST0xMRVIJLyogRERSIGNvbnRyb2xsZXIgb3IgRE1BPyAqLwogI2RlZmluZSBDT05GSUdfTUVNX0lOSVRfVkFMVUUJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQlDRkdfRERSX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgQ09ORklHX05VTV9ERFJfQ09OVFJPTExFUlMJMQpAQCAtMTI4LDY5ICsxMjgsNjkgQEAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAjaWYgZGVmaW5lZChDT05GSUdfUkFNX0FTX0ZMQVNIKQotICAjZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRQkweGZjMDAwMDAwCS8qIExvY2FsYnVzIFNEUkFNICovCi0gICNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJMHhmODAwMDAwMCAgICAgIC8qIHN0YXJ0IG9mIEZMQVNIIDhNICAqLwotICAjZGVmaW5lIENGR19CUjBfUFJFTElNCTB4ZjgwMDA4MDEgICAgICAvKiBwb3J0IHNpemUgOGJpdCAqLwotICAjZGVmaW5lIENGR19PUjBfUFJFTElNCTB4ZjgwMDBmZjcJLyogOE1CIEZsYXNoCQkqLworICAjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhmYzAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkweGY4MDAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggOE0gICovCisgICNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCTB4ZjgwMDA4MDEgICAgICAvKiBwb3J0IHNpemUgOGJpdCAqLworICAjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkweGY4MDAwZmY3CS8qIDhNQiBGbGFzaAkJKi8KICNlbHNlIC8qIEJvb3QgZnJvbSByZWFsIEZsYXNoICovCi0gICNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9CQVNFCTB4ZjgwMDAwMDAJLyogTG9jYWxidXMgU0RSQU0gKi8KLSAgI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkweGZmODAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggOE0gICAgKi8KLSAgI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkweGZmODAwODAxICAgICAgLyogcG9ydCBzaXplIDhiaXQgICAgICAqLwotICAjZGVmaW5lIENGR19PUjBfUFJFTElNCTB4ZmY4MDBmZjcJLyogOE1CIEZsYXNoCQkqLworICAjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX0JBU0UJMHhmODAwMDAwMAkvKiBMb2NhbGJ1cyBTRFJBTSAqLworICAjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkweGZmODAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggOE0gICAgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JMHhmZjgwMDgwMSAgICAgIC8qIHBvcnQgc2l6ZSA4Yml0ICAgICAgKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JMHhmZjgwMGZmNwkvKiA4TUIgRmxhc2gJCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9TSVpFCTY0CQkvKiBMQkMgU0RSQU0gaXMgNjRNQgkqLwogCiAvKiBsb2NhbCBidXMgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZTQwMDE4MDEJLyogNjRNLCAzMi1iaXQgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmMwMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGU0MDAxODAxCS8qIDY0TSwgMzItYml0IGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmYzAwMGZmNwogCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweDAwMDAwMDAwCS8qIENTMiBub3QgdXNlZCAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4MDAwMDAwMDAJLyogQ1MyIG5vdCB1c2VkICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkJMHgwMDAwMDAwMAogCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkweGYwMDAxODYxCS8qIDY0TUIgbG9jYWxidXMgU0RSQU0JKi8KLSNkZWZpbmUgQ0ZHX09SM19QUkVMSU0JCTB4ZmMwMDBjYzEKKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkweGYwMDAxODYxCS8qIDY0TUIgbG9jYWxidXMgU0RSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZjMDAwY2MxCiAKICNpZiBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCi0gICNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JMHhmNDAwMTg2MQkvKiA2NE0gbG9jYWxidXMgU0RSQU0gKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JMHhmNDAwMTg2MQkvKiA2NE0gbG9jYWxidXMgU0RSQU0gKi8KICNlbHNlCi0gICNkZWZpbmUgQ0ZHX0JSNF9QUkVMSU0JMHhmODAwMTg2MQkvKiA2NE0gbG9jYWxidXMgU0RSQU0gKi8KKyAgI2RlZmluZSBDT05GSUdfU1lTX0JSNF9QUkVMSU0JMHhmODAwMTg2MQkvKiA2NE0gbG9jYWxidXMgU0RSQU0gKi8KICNlbmRpZgotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkJMHhmYzAwMGNjMQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4ZmMwMDBjYzEKIAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTQkJMHhmYzAwMDgwMQkvKiAxNk0gQ1M1IG1pc2MgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCTB4ZmMwMDA4MDEJLyogMTZNIENTNSBtaXNjIGRldmljZXMgKi8KICNpZiAxCi0gICNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JMHhmZjAwMGZmNworICAjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkweGZmMDAwZmY3CiAjZWxzZQotICAjZGVmaW5lIENGR19PUjVfUFJFTElNCTB4ZmYwMDAwZjAKKyAgI2RlZmluZSBDT05GSUdfU1lTX09SNV9QUkVMSU0JMHhmZjAwMDBmMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JSNl9QUkVMSU0JCTB4ZTAwMDE4MDEJLyogNjRNLCAzMi1iaXQgZmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX09SNl9QUkVMSU0JCTB4ZmMwMDBmZjcKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDAyCS8qIGxvY2FsIGJ1cyBmcmVxCSovCi0jZGVmaW5lIENGR19MQkNfTEJDUgkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX0xTUlQJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzEJCTB4Mjg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8yCQkweDA4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMwkJMHgwODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzQJCTB4MTg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl81CQkweDQwNjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfQlI2X1BSRUxJTQkJMHhlMDAwMTgwMQkvKiA2NE0sIDMyLWJpdCBmbGFzaCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNl9QUkVMSU0JCTB4ZmMwMDBmZjcKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTENSUgkJMHgwMDAzMDAwMgkvKiBsb2NhbCBidXMgZnJlcQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQkNSCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTUlQJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTVJUUFIJCTB4MjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMQkJMHgyODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8yCQkweDA4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzMJCTB4MDg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNAkJMHgxODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl81CQkweDQwNjFiNzIzCiAKIC8qIGp1c3QgaGlqYWNrIHRoZSBNT1QgQkNTUiBkZWYgZm9yIFNCQzg1NjAgbWlzYyBkZXZpY2VzICovCi0jZGVmaW5lIENGR19CQ1NSCQkoKENGR19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCl8MHgwMDQwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSCQkoKENPTkZJR19TWVNfQlI1X1BSRUxJTSAmIDB4ZmYwMDAwMDApfDB4MDA0MDAwMDApCiAvKiB0aGUgc2l6ZSBvZiBDUzUgbmVlZHMgdG8gYmUgPj0gMTZNIGZvciBUTEIgYW5kIExBVyBzZXR1cHMgKi8KIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweDcwMDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpCS8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI3VuZGVmICBDT05GSUdfQ09OU19PTl9TQ0MJLyogZGVmaW5lIGlmIGNvbnNvbGUgb24gU0NDICovCkBAIC0xOTgsMjIgKzE5OCwyMiBAQAogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkxODQzMjAwIC8qIGdldF9idXNfZnJlcSgwKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkxODQzMjAwIC8qIGdldF9idXNfZnJlcSgwKSAqLwogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTk2MDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCSgoQ0ZHX0JSNV9QUkVMSU0gJiAweGZmMDAwMDAwKSsweDAwNzAwMDAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCSgoQ0ZHX0JSNV9QUkVMSU0gJiAweGZmMDAwMDAwKSsweDAwODAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQkoKENPTkZJR19TWVNfQlI1X1BSRUxJTSAmIDB4ZmYwMDAwMDApKzB4MDA3MDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCSgoQ09ORklHX1NZU19CUjVfUFJFTElNICYgMHhmZjAwMDAwMCkrMHgwMDgwMDAwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMiAiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNpZmRlZglDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKiBwYXNzIG9wZW4gZmlybXdhcmUgZmxhdCB0cmVlICovCkBAIC0yMjcsMTQgKzIyNywxNCBAQAogI2RlZmluZSBDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX05PUFJPQkVTCXsweDY5fQkvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCi0jZGVmaW5lIENGR19QQ0lfTUVNX0JBU0UJMHhDMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTV9QSFlTCTB4QzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTV9CQVNFCTB4QzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNX1BIWVMJMHhDMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1fU0laRQkweDEwMDAwMDAwCiAKICNpZmRlZiBDT05GSUdfVFNFQ19FTkVUCiAKQEAgLTI3MiwxMCArMjcyLDEwIEBACiAgICAgICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzCiAgICAgICogLSBGdWxsIGR1cGxleAogICAgICAqLwotICAgICNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0gICAgI2RlZmluZSBDRkdfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCi0gICAgI2RlZmluZSBDRkdfQ1BNRkNSX1JBTVRZUEUJMAotICAgICNkZWZpbmUgQ0ZHX0ZDQ19QU01SCShGQ0NfUFNNUl9GREUpCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQorICAgICNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCShGQ0NfUFNNUl9GREUpCiAKICAgI2VsaWYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQogICAgIC8qIG5lZWQgbW9yZSBkZWZpbml0aW9ucyBoZXJlIGZvciBGRTMgKi8KQEAgLTMwNSw0NiArMzA1LDQ2IEBACiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50CSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyCSovCiAjaWYgMAotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxICAgIC8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JCS8qIHVzZSBoYXJkd2FyZSBwcm90ZWN0aW9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURSAxICAgIC8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCQkvKiB1c2UgaGFyZHdhcmUgcHJvdGVjdGlvbgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KIAotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyMDAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjAwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRSAvKiBzdGFydCBvZiBtb25pdG9yCSovCiAKICNpZiAwCiAvKiBYWFggVGhpcyBkb2Vzbid0IHdvcmsgYW5kIEkgZG9uJ3Qgd2FudCB0byBmaXggaXQgKi8KLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotICAjZGVmaW5lIENGR19SQU1CT09UCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorICAjZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSAgI3VuZGVmICBDRkdfUkFNQk9PVAorICAjdW5kZWYgIENPTkZJR19TWVNfUkFNQk9PVAogI2VuZGlmCiAjZW5kaWYKIAogLyogRW52aXJvbm1lbnQgKi8KLSNpZiAhZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAgICNpZiBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCiAgICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUKLSAgICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDEwMDAwMCkKKyAgICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgxMDAwMDApCiAgICAgI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJMHgyMDAwCiAgICNlbHNlCiAgICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICAgICAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52ICovCi0gICAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKyAgICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICAgICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkweDIwMDAgLyogQ09ORklHX0VOVl9TRUNUX1NJWkUgKi8KICAgI2VuZGlmCiAjZWxzZQotICAjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdwkqLworICAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cJKi8KICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkJKi8KLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIApAQCAtMzUzLDcgKzM1Myw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJNQkvKiAtMSBkaXNhYmxlIGF1dG9ib290ICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogCiAvKgpAQCAtMzgxLDcgKzM4MSw3IEBACiAgICAgI2RlZmluZSBDT05GSUdfQ01EX01JSQogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENGR19SQU1CT09UKSB8fCBkZWZpbmVkKENPTkZJR19SQU1fQVNfRkxBU0gpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpIHx8IGRlZmluZWQoQ09ORklHX1JBTV9BU19GTEFTSCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2VuZGlmCkBAIC0zOTIsMjUgKzM5MiwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiU0JDODU2MD0+ICIgLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJTQkM4NTYwPT4gIiAvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0gICNkZWZpbmUgQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotICAjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkgLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2JjODY0MWQuaCBiL2luY2x1ZGUvY29uZmlncy9zYmM4NjQxZC5oCmluZGV4IDAxMDAzYTMuLjE0ZDFjODggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYmM4NjQxZC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYmM4NjQxZC5oCkBAIC00NCwxMCArNDQsMTAgQEAKICNkZWZpbmUgQ09ORklHX0xJTlVYX1JFU0VUX1ZFQyAgMHgxMDAgICAvKiBSZXNldCB2ZWN0b3IgdXNlZCBieSBMaW51eCAqLwogCiAjaWZkZWYgUlVOX0RJQUcKLSNkZWZpbmUgQ0ZHX0RJQUdfQUREUiAgICAgICAgMHhmZjgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RJQUdfQUREUiAgICAgICAgMHhmZjgwMDAwMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MgICAgMHhmZmYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgICAgMHhmZmYwMDEwMAogCiAjZGVmaW5lIENPTkZJR19QQ0kJCTEJLyogRW5hYmxlIFBDSUUgKi8KICNkZWZpbmUgQ09ORklHX1BDSTEJCTEJLyogUENJRSBjb250cm9sZXIgMSAoc2xvdCAxKSAqLwpAQCAtNzYsNyArNzYsNyBAQAogLyoKICAqIEwyQ1Igc2V0dXAgLS0gbWFrZSBzdXJlIHRoaXMgaXMgcmlnaHQgZm9yIHlvdXIgYm9hcmQhCiAgKi8KLSNkZWZpbmUgQ0ZHX0wyCisjZGVmaW5lIENPTkZJR19TWVNfTDIKICNkZWZpbmUgTDJfSU5JVAkJMAogI2RlZmluZSBMMl9FTkFCTEUJKEwyQ1JfTDJFKQogCkBAIC04NiwyOCArODYsMjggQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GCTEJLyogQ2FsbCBib2FyZF9wcmVfaW5pdCAqLwogCi0jdW5kZWYJQ0ZHX0RSQU1fVEVTVAkJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMDQwMDAwMAorI3VuZGVmCUNPTkZJR19TWVNfRFJBTV9URVNUCQkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMjAwMDAwCS8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKIAogLyoKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdCAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhmODAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUl9ERUZBVUxUCTB4ZmY3MDAwMDAJLyogQ0NTUkJBUiBEZWZhdWx0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhmODAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTFfQUREUgkJKENGR19DQ1NSQkFSKzB4ODAwMCkKLSNkZWZpbmUgQ0ZHX1BDSTJfQUREUgkJKENGR19DQ1NSQkFSKzB4OTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0FERFIJCShDT05GSUdfU1lTX0NDU1JCQVIrMHg4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfQUREUgkJKENPTkZJR19TWVNfQ0NTUkJBUisweDkwMDApCiAKIC8qCiAgKiBERFIgU2V0dXAKICAqLwotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfRERSX1NEUkFNX0JBU0UyCTB4MTAwMDAwMDAJLyogRERSIGJhbmsgMiAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFMgkJQ0ZHX0REUl9TRFJBTV9CQVNFMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRTIJMHgxMDAwMDAwMAkvKiBERFIgYmFuayAyICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UyCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFMgogI2RlZmluZSBDT05GSUdfVkVSWV9CSUdfUkFNCiAKICNkZWZpbmUgTVBDODZ4eF9ERFJfU0RSQU1fQ0xLX0NOVEwKQEAgLTEzMCw1MSArMTMwLDUxIEBACiAgICAgICogTWFudWFsbHkgc2V0IHVwIEREUjEgJiBERFIyIHBhcmFtZXRlcnMKICAgICAgKi8KIAotICAgICNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJNTEyCQkvKiBERFIgaXMgNTEyTUIgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQk1MTIJCS8qIEREUiBpcyA1MTJNQiAqLwogCi0gICAgI2RlZmluZSBDRkdfRERSX0NTMF9CTkRTCTB4MDAwMDAwMEYKLSAgICAjZGVmaW5lIENGR19ERFJfQ1MxX0JORFMJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9DUzJfQk5EUwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSX0NTM19CTkRTCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFJfQ1MwX0NPTkZJRwkweDgwMDEwMTAyCi0gICAgI2RlZmluZSBDRkdfRERSX0NTMV9DT05GSUcJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9DUzJfQ09ORklHCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFJfQ1MzX0NPTkZJRwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSX1RJTUlOR18zIDB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFJfVElNSU5HXzAJMHgwMDIyMDgwMgotICAgICNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkweDM4Mzc3MzIyCi0gICAgI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCTB4MDAyMDQwYzcKLSAgICAjZGVmaW5lIENGR19ERFJfQ0ZHXzFBCTB4NDMwMDgwMDgKLSAgICAjZGVmaW5lIENGR19ERFJfQ0ZHXzIJMHgyNDQwMTAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9NT0RFXzEJMHgyM2MwMDU0MgotICAgICNkZWZpbmUgQ0ZHX0REUl9NT0RFXzIJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9NT0RFX0NUTAkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSX0lOVEVSVkFMCTB4MDUwODAxMDAKLSAgICAjZGVmaW5lIENGR19ERFJfREFUQV9JTklUCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFJfQ0xLX0NUUkwJMHgwMzgwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUl9DRkdfMUIJMHhDMzAwODAwOAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJMHgwMDAwMDAwRgorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MxX0JORFMJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MyX0JORFMJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MzX0JORFMJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkweDgwMDEwMTAyCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DUzFfQ09ORklHCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX0NTMl9DT05GSUcJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MzX0NPTkZJRwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMyAweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkweDAwMjIwODAyCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkweDM4Mzc3MzIyCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkweDAwMjA0MGM3CisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9DRkdfMUEJMHg0MzAwODAwOAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0ZHXzIJMHgyNDQwMTAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfTU9ERV8xCTB4MjNjMDA1NDIKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSX01PREVfMgkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFX0NUTAkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkweDA1MDgwMTAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUl9EQVRBX0lOSVQJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0xLX0NUUkwJMHgwMzgwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ0ZHXzFCCTB4QzMwMDgwMDgKIAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ1MwX0JORFMJMHgwMDEwMDAxRgotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ1MxX0JORFMJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ1MyX0JORFMJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ1MzX0JORFMJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ1MwX0NPTkZJRwkweDgwMDEwMTAyCi0gICAgI2RlZmluZSBDRkdfRERSMl9DUzFfQ09ORklHCTB4MDAwMDAwMDAKLSAgICAjZGVmaW5lIENGR19ERFIyX0NTMl9DT05GSUcJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ1MzX0NPTkZJRwkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9FWFRfUkVGUkVTSCAweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9USU1JTkdfMAkweDAwMjIwODAyCi0gICAgI2RlZmluZSBDRkdfRERSMl9USU1JTkdfMQkweDM4Mzc3MzIyCi0gICAgI2RlZmluZSBDRkdfRERSMl9USU1JTkdfMgkweDAwMjA0MGM3Ci0gICAgI2RlZmluZSBDRkdfRERSMl9DRkdfMUEJMHg0MzAwODAwOAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ0ZHXzIJMHgyNDQwMTAwMAotICAgICNkZWZpbmUgQ0ZHX0REUjJfTU9ERV8xCTB4MjNjMDA1NDIKLSAgICAjZGVmaW5lIENGR19ERFIyX01PREVfMgkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9NT0RFX0NUTAkweDAwMDAwMDAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9JTlRFUlZBTAkweDA1MDgwMTAwCi0gICAgI2RlZmluZSBDRkdfRERSMl9EQVRBX0lOSVQJMHgwMDAwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ0xLX0NUUkwJMHgwMzgwMDAwMAotICAgICNkZWZpbmUgQ0ZHX0REUjJfQ0ZHXzFCCTB4QzMwMDgwMDgKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DUzBfQk5EUwkweDAwMTAwMDFGCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ1MxX0JORFMJMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX0NTMl9CTkRTCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9DUzNfQk5EUwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ1MwX0NPTkZJRwkweDgwMDEwMTAyCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ1MxX0NPTkZJRwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ1MyX0NPTkZJRwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ1MzX0NPTkZJRwkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfRVhUX1JFRlJFU0ggMHgwMDAwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX1RJTUlOR18wCTB4MDAyMjA4MDIKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9USU1JTkdfMQkweDM4Mzc3MzIyCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfVElNSU5HXzIJMHgwMDIwNDBjNworICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX0NGR18xQQkweDQzMDA4MDA4CisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ0ZHXzIJMHgyNDQwMTAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX01PREVfMQkweDIzYzAwNTQyCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfTU9ERV8yCTB4MDAwMDAwMDAKKyAgICAjZGVmaW5lIENPTkZJR19TWVNfRERSMl9NT0RFX0NUTAkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfSU5URVJWQUwJMHgwNTA4MDEwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX0RBVEFfSU5JVAkweDAwMDAwMDAwCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0REUjJfQ0xLX0NUUkwJMHgwMzgwMDAwMAorICAgICNkZWZpbmUgQ09ORklHX1NZU19ERFIyX0NGR18xQgkweEMzMDA4MDA4CiAKIAogI2VuZGlmCkBAIC0xODUsODggKzE4NSw4OCBAQAogLyoKICAqIFRoZSBTQkM4NjQxRCBjb250YWlucyAxNk1CIGZsYXNoIHNwYWNlIGF0IGZmMDAwMDAwLgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgMHhmZjAwMDAwMCAgLyogc3RhcnQgb2YgRkxBU0ggMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgIDB4ZmYwMDAwMDAgIC8qIHN0YXJ0IG9mIEZMQVNIIDE2TSAqLwogCiAvKiBGbGFzaCAqLwotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkJMHhmZjAwMTAwMQkvKiBwb3J0IHNpemUgMTZiaXQgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JCTB4ZmYwMDZlNjUJLyogMTZNQiBCb290IEZsYXNoIGFyZWEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZmMDAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmYwMDZlNjUJLyogMTZNQiBCb290IEZsYXNoIGFyZWEgKi8KIAogLyogNjRLQiBFRVBST00gKi8KLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0JCTB4ZjAwMDA4MDEJLyogcG9ydCBzaXplIDE2Yml0ICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweGZmZmY2ZTY1CS8qIDY0SyBFRVBST00gYXJlYSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZjAwMDA4MDEJLyogcG9ydCBzaXplIDE2Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkJMHhmZmZmNmU2NQkvKiA2NEsgRUVQUk9NIGFyZWEgKi8KIAogLyogRVBMRCAtIFVzZXIgc3dpdGNoZXMsIGJvYXJkIGlkLCBMRURzICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweGYxMDAwODAxCS8qIHBvcnQgc2l6ZSAxNmJpdCAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmZmYwNmU2NQkvKiBFUExEIChzd2l0Y2hlcywgYm9hcmQgSUQsIExFRHMpIGFyZWEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweGYxMDAwODAxCS8qIHBvcnQgc2l6ZSAxNmJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmZmMDZlNjUJLyogRVBMRCAoc3dpdGNoZXMsIGJvYXJkIElELCBMRURzKSBhcmVhICovCiAKIC8qIExvY2FsIGJ1cyBTRFJBTSAxMjhNQiAqLwotI2RlZmluZSBDRkdfQlIzX1BSRUxJTQkJMHhlMDAwMTg2MQkvKiBwb3J0IHNpemUgP2JpdCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhmYzAwNmNjMAkvKiAxMjhNQiBsb2NhbCBidXMgU0RSQU0gYXJlYSAoMXN0IGhhbGYpICovCi0jZGVmaW5lIENGR19CUjRfUFJFTElNCQkweGU0MDAxODYxCS8qIHBvcnQgc2l6ZSA/Yml0ICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNCQkweGZjMDA2Y2MwCS8qIDEyOE1CIGxvY2FsIGJ1cyBTRFJBTSBhcmVhICgybmQgaGFsZikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjNfUFJFTElNCQkweGUwMDAxODYxCS8qIHBvcnQgc2l6ZSA/Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IzX1BSRUxJTQkJMHhmYzAwNmNjMAkvKiAxMjhNQiBsb2NhbCBidXMgU0RSQU0gYXJlYSAoMXN0IGhhbGYpICovCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkJMHhlNDAwMTg2MQkvKiBwb3J0IHNpemUgP2JpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JCTB4ZmMwMDZjYzAJLyogMTI4TUIgbG9jYWwgYnVzIFNEUkFNIGFyZWEgKDJuZCBoYWxmKSAqLwogCiAvKiBEaXNrIG9uIENoaXAgKERPQykgMTI4TUIgKi8KLSNkZWZpbmUgQ0ZHX0JSNV9QUkVMSU0JCTB4ZTgwMDEwMDEJLyogcG9ydCBzaXplID9iaXQgKi8KLSNkZWZpbmUgQ0ZHX09SNV9QUkVMSU0JCTB4ZjgwMDZlNjUJLyogMTI4TUIgbG9jYWwgYnVzIFNEUkFNIGFyZWEgKDJuZCBoYWxmKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JCTB4ZTgwMDEwMDEJLyogcG9ydCBzaXplID9iaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCQkweGY4MDA2ZTY1CS8qIDEyOE1CIGxvY2FsIGJ1cyBTRFJBTSBhcmVhICgybmQgaGFsZikgKi8KIAogLyogTENEICovCi0jZGVmaW5lIENGR19CUjZfUFJFTElNCQkweGY0MDAwODAxCS8qIHBvcnQgc2l6ZSA/Yml0ICovCi0jZGVmaW5lIENGR19PUjZfUFJFTElNCQkweGZmZjA2ZTY1CS8qIDEyOE1CIGxvY2FsIGJ1cyBTRFJBTSBhcmVhICgybmQgaGFsZikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjZfUFJFTElNCQkweGY0MDAwODAxCS8qIHBvcnQgc2l6ZSA/Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I2X1BSRUxJTQkJMHhmZmYwNmU2NQkvKiAxMjhNQiBsb2NhbCBidXMgU0RSQU0gYXJlYSAoMm5kIGhhbGYpICovCiAKIC8qIENvbnRyb2wgbG9naWMgJiBtaXNjIHBlcmlwaGVyYWxzICovCi0jZGVmaW5lIENGR19CUjdfUFJFTElNCQkweGYyMDAwODAxCS8qIHBvcnQgc2l6ZSA/Yml0ICovCi0jZGVmaW5lIENGR19PUjdfUFJFTElNCQkweGZmZjA2ZTY1CS8qIDEyOE1CIGxvY2FsIGJ1cyBTRFJBTSBhcmVhICgybmQgaGFsZikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjdfUFJFTElNCQkweGYyMDAwODAxCS8qIHBvcnQgc2l6ZSA/Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfT1I3X1BSRUxJTQkJMHhmZmYwNmU2NQkvKiAxMjhNQiBsb2NhbCBidXMgU0RSQU0gYXJlYSAoMm5kIGhhbGYpICovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCQkvKiBudW1iZXIgb2YgYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEzMQkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEzMQkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLworI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTYwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKG1zKSAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UJLyogc3RhcnQgb2YgbW9uaXRvciAqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX1dSSVRFX1NXQVBQRURfREFUQQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQorI2RlZmluZSBDT05GSUdfU1lTX1dSSVRFX1NXQVBQRURfREFUQQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jaWZuZGVmIENGR19JTklUX1JBTV9MT0NLCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4MGZkMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sJMQorI2lmbmRlZiBDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0sKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4MGZkMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHhmODQwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGY4NDAwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCAqIDEwMjQpICAgIC8qIFJlc2VydmVkIGZvciBtYWxsb2MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpICAgIC8qIFJlc2VydmUgMjU2IGtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLwogCiAvKiBTZXJpYWwgUG9ydCAqLwogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWCAgICAgMQogI3VuZGVmCUNPTkZJR19TRVJJQUxfU09GVFdBUkVfRklGTwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUgICAgMQotI2RlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yICAgICAgICAoQ0ZHX0NDU1JCQVIrMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMSAgICAgICAgKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yICAgICAgICAoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogLyogVXNlIHRoZSBIVVNIIHBhcnNlciAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIKLSNpZmRlZiAgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgIj4gIgogI2VuZGlmCiAKIC8qCkBAIC0yNzYsOCArMjc2LDggQEAKICNkZWZpbmUgQ09ORklHX09GX0JPQVJEX1NFVFVQCQkxCiAjZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCTEKIAotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYJMQotI2RlZmluZSBDRkdfNjRCSVRfU1RSVE9VTAkxCisjZGVmaW5lIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYJMQorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwJMQogCiAvKgogICogSTJDCkBAIC0yODUsNDYgKzI4NSw0NiBAQAogI2RlZmluZQlDT05GSUdfRlNMX0kyQwkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZQlDT05GSUdfSEFSRF9JMkMJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTICAgICAgICB7MHg2OX0JLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzEwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUyAgICAgICAgezB4Njl9CS8qIERvbid0IHByb2JlIHRoZXNlIGFkZHJzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMTAwCiAKIC8qCiAgKiBSYXBpZElPIE1NVQogICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAkvKiBiYXNlIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1JJT19NRU1fUEhZUwlDRkdfUklPX01FTV9CQVNFCi0jZGVmaW5lIENGR19SSU9fTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiAxMjhNICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9CQVNFCTB4YzAwMDAwMDAJLyogYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9QSFlTCUNPTkZJR19TWVNfUklPX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogMTI4TSAqLwogCiAvKgogICogR2VuZXJhbCBQQ0kKICAqIEFkZHJlc3NlcyBhcmUgbWFwcGVkIDEtMS4KICAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwlDRkdfUENJMV9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgxMDAwMDAwCS8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHhlMjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwlDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fU0laRQkweDEwMDAwMDAJLyogMTZNICovCiAKIC8qIFBDSSB2aWV3IG9mIFN5c3RlbSBNZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1PUllfQlVTICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTU9SWV9QSFlTICAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNT1JZX1NJWkUgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX0JVUyAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1BIWVMgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNT1JZX1NJWkUgICAgIDB4ODAwMDAwMDAKIAotI2RlZmluZSBDRkdfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX01FTV9QSFlTCUNGR19QQ0kyX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kyX01FTV9TSVpFCTB4MTAwMDAwMDAJLyogMjU2TSAqLwotI2RlZmluZSBDRkdfUENJMl9JT19CQVNFCTB4ZTMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fUEhZUwlDRkdfUENJMl9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kyX0lPX1NJWkUJMHgxMDAwMDAwCS8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kyX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fU0laRQkweDEwMDAwMDAwCS8qIDI1Nk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX0JBU0UJMHhlMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fUEhZUwlDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fU0laRQkweDEwMDAwMDAJLyogMTZNICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19QQ0kpCiAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cgICAgICAgICAgICAvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgKi8KIAotI3VuZGVmIENGR19TQ1NJX1NDQU5fQlVTX1JFVkVSU0UKKyN1bmRlZiBDT05GSUdfU1lTX1NDU0lfU0NBTl9CVVNfUkVWRVJTRQogCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheSAqLwpAQCAtMzQ1LDEwICszNDUsMTAgQEAKIAogI2lmZGVmIENPTkZJR19TQ1NJX0FIQ0kKICNkZWZpbmUgQ09ORklHX1NBVEFfVUxJNTI4OAotI2RlZmluZSBDRkdfU0NTSV9NQVhfU0NTSV9JRAk0Ci0jZGVmaW5lIENGR19TQ1NJX01BWF9MVU4JMQotI2RlZmluZSBDRkdfU0NTSV9NQVhfREVWSUNFCShDRkdfU0NTSV9NQVhfU0NTSV9JRCAqIENGR19TQ1NJX01BWF9MVU4pCi0jZGVmaW5lIENGR19TQ1NJX01BWERFVklDRQlDRkdfU0NTSV9NQVhfREVWSUNFCisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRAk0CisjZGVmaW5lIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOCTEKKyNkZWZpbmUgQ09ORklHX1NZU19TQ1NJX01BWF9ERVZJQ0UJKENPTkZJR19TWVNfU0NTSV9NQVhfU0NTSV9JRCAqIENPTkZJR19TWVNfU0NTSV9NQVhfTFVOKQorI2RlZmluZSBDT05GSUdfU1lTX1NDU0lfTUFYREVWSUNFCUNPTkZJR19TWVNfU0NTSV9NQVhfREVWSUNFCiAjZW5kaWYKIAogI2VuZGlmCS8qIENPTkZJR19QQ0kgKi8KQEAgLTM4Myw3ICszODMsNyBAQAogI2RlZmluZSBUU0VDM19GTEFHUwkJVFNFQ19HSUdBQklUCiAjZGVmaW5lIFRTRUM0X0ZMQUdTCQlUU0VDX0dJR0FCSVQKIAotI2RlZmluZSBDRkdfVEJJUEFfVkFMVUUJMHgxZQkvKiBTZXQgVEJJIGFkZHJlc3Mgbm90IHRvIGNvbmZsaWN0IHdpdGggVFNFQzFfUEhZX0FERFIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19UQklQQV9WQUxVRQkweDFlCS8qIFNldCBUQkkgYWRkcmVzcyBub3QgdG8gY29uZmxpY3Qgd2l0aCBUU0VDMV9QSFlfQUREUiAqLwogCiAjZGVmaW5lIENPTkZJR19FVEhQUklNRQkJImVUU0VDMSIKIApAQCAtMzkzLDEwICszOTMsMTAgQEAKICAqIEJBVDAgICAgICAgICAyRyAgICAgQ2FjaGVhYmxlLCBub24tZ3VhcmRlZAogICogMHgwMDAwXzAwMDAgIDJHICAgICBERFIKICAqLwotI2RlZmluZSBDRkdfREJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUMFUJKEJBVFVfQkxfMkcgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQwTAkoQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFICkKLSNkZWZpbmUgQ0ZHX0lCQVQwVQlDRkdfREJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDBVCShCQVRVX0JMXzJHIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBMCShCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UgKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQwVQlDT05GSUdfU1lTX0RCQVQwVQogCiAvKgogICogQkFUMSAgICAgICAgIDFHICAgICBDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKQEAgLTQwNCwzMSArNDA0LDMxIEBACiAgKiAweGEwMDBfMDAwMCAgNTEyTSAgIFBDSS1FeHByZXNzIDIgTWVtb3J5CiAgKglDaGFuZ2VkIGl0IGZvciBvcGVyYXRpbmcgZnJvbSAweGQwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQxTAkoIENGR19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF9SVyBcCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMCSggQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUTF9QUF9SVyBcCiAJCQl8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQxVQkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQxTAkoQ0ZHX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUMVUJQ0ZHX0RCQVQxVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVQkoQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFMCShDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDFVCUNPTkZJR19TWVNfREJBVDFVCiAKIC8qCiAgKiBCQVQyICAgICAgICAgNTEyTSAgIENhY2hlLWluaGliaXRlZCwgZ3VhcmRlZAogICogMHhjMDAwXzAwMDAgIDUxMk0gICBSYXBpZElPIE1lbW9yeQogICovCi0jZGVmaW5lIENGR19EQkFUMkwJKENGR19SSU9fTUVNX0JBU0UgfCBCQVRMX1BQX1JXIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwJKENPTkZJR19TWVNfUklPX01FTV9CQVNFIHwgQkFUTF9QUF9SVyBcCiAJCQl8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQyVQkoQ0ZHX1JJT19NRU1fQkFTRSB8IEJBVFVfQkxfNTEyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDJMCShDRkdfUklPX01FTV9CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDJVCUNGR19EQkFUMlUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMlUJKENPTkZJR19TWVNfUklPX01FTV9CQVNFIHwgQkFUVV9CTF81MTJNIHwgQkFUVV9WUyB8IEJBVFVfVlApCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMCShDT05GSUdfU1lTX1JJT19NRU1fQkFTRSB8IEJBVExfUFBfUlcgfCBCQVRMX0NBQ0hFSU5ISUJJVCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMlUJQ09ORklHX1NZU19EQkFUMlUKIAogLyoKICAqIEJBVDMgICAgICAgICA0TSAgICAgQ2FjaGUtaW5oaWJpdGVkLCBndWFyZGVkCiAgKiAweGY4MDBfMDAwMCAgNE0gICAgIENDU1IKICAqLwotI2RlZmluZSBDRkdfREJBVDNMCSggQ0ZHX0NDU1JCQVIgfCBCQVRMX1BQX1JXIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM0wJKCBDT05GSUdfU1lTX0NDU1JCQVIgfCBCQVRMX1BQX1JXIFwKIAkJCXwgQkFUTF9DQUNIRUlOSElCSVQgfCBCQVRMX0dVQVJERURTVE9SQUdFKQotI2RlZmluZSBDRkdfREJBVDNVCShDRkdfQ0NTUkJBUiB8IEJBVFVfQkxfNE0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKLSNkZWZpbmUgQ0ZHX0lCQVQzTAkoQ0ZHX0NDU1JCQVIgfCBCQVRMX1BQX1JXIHwgQkFUTF9DQUNIRUlOSElCSVQpCi0jZGVmaW5lIENGR19JQkFUM1UJQ0ZHX0RCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzVQkoQ09ORklHX1NZU19DQ1NSQkFSIHwgQkFUVV9CTF80TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTAkoQ09ORklHX1NZU19DQ1NSQkFSIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzVQlDT05GSUdfU1lTX0RCQVQzVQogCiAvKgogICogQkFUNCAgICAgICAgIDMyTSAgICBDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKQEAgLTQzNiw0NiArNDM2LDQ2IEBACiAgKiAweGUzMDBfMDAwMCAgMTZNICAgIFBDSS1FeHByZXNzIDIgSS8wCiAgKiAgICBOb3RlIHRoYXQgdGhpcyBpcyBhdCAweGUwMDAwMDAwCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQ0TAkoIENGR19QQ0kxX0lPX0JBU0UgfCBCQVRMX1BQX1JXIFwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNEwJKCBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRSB8IEJBVExfUFBfUlcgXAogCQkJfCBCQVRMX0NBQ0hFSU5ISUJJVCB8IEJBVExfR1VBUkRFRFNUT1JBR0UpCi0jZGVmaW5lIENGR19EQkFUNFUJKENGR19QQ0kxX0lPX0JBU0UgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDRMCShDRkdfUENJMV9JT19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDRVCUNGR19EQkFUNFUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNFUJKENPTkZJR19TWVNfUENJMV9JT19CQVNFIHwgQkFUVV9CTF8zMk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUNEwJKENPTkZJR19TWVNfUENJMV9JT19CQVNFIHwgQkFUTF9QUF9SVyB8IEJBVExfQ0FDSEVJTkhJQklUKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ0VQlDT05GSUdfU1lTX0RCQVQ0VQogCiAvKgogICogQkFUNSAgICAgICAgIDEyOEsgICBDYWNoZWFibGUsIG5vbi1ndWFyZGVkCiAgKiAweGU0MDFfMDAwMCAgMTI4SyAgIEluaXQgUkFNIGZvciBzdGFjayBpbiB0aGUgQ1BVIERDYWNoZSAobm8gYmFja2luZyBtZW1vcnkpCiAgKi8KLSNkZWZpbmUgQ0ZHX0RCQVQ1TAkoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQX1JXIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19EQkFUNVUJKENGR19JTklUX1JBTV9BRERSIHwgQkFUVV9CTF8xMjhLIHwgQkFUVV9WUyB8IEJBVFVfVlApCi0jZGVmaW5lIENGR19JQkFUNUwJQ0ZHX0RCQVQ1TAotI2RlZmluZSBDRkdfSUJBVDVVCUNGR19EQkFUNVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNUwJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUNVUJKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1TAlDT05GSUdfU1lTX0RCQVQ1TAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ1VQlDT05GSUdfU1lTX0RCQVQ1VQogCiAvKgogICogQkFUNiAgICAgICAgIDMyTSAgICBDYWNoZS1pbmhpYml0ZWQsIGd1YXJkZWQKICAqIDB4ZmUwMF8wMDAwICAzMk0gICAgRkxBU0gKICAqLwotI2RlZmluZSBDRkdfREJBVDZMCSgoQ0ZHX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSB8IEJBVExfUFBfUlcgXAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ2TAkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIDB4ZmUwMDAwMDApIHwgQkFUTF9QUF9SVyBcCiAJCQl8IEJBVExfQ0FDSEVJTkhJQklUIHwgQkFUTF9HVUFSREVEU1RPUkFHRSkKLSNkZWZpbmUgQ0ZHX0RCQVQ2VQkoKENGR19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCkgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQotI2RlZmluZSBDRkdfSUJBVDZMCSgoQ0ZHX0ZMQVNIX0JBU0UgJiAweGZlMDAwMDAwKSB8IEJBVExfUFBfUlcgfCBCQVRMX01FTUNPSEVSRU5DRSkKLSNkZWZpbmUgQ0ZHX0lCQVQ2VQlDRkdfREJBVDZVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDZVCSgoQ09ORklHX1NZU19GTEFTSF9CQVNFICYgMHhmZTAwMDAwMCkgfCBCQVRVX0JMXzMyTSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2TAkoKENPTkZJR19TWVNfRkxBU0hfQkFTRSAmIDB4ZmUwMDAwMDApIHwgQkFUTF9QUF9SVyB8IEJBVExfTUVNQ09IRVJFTkNFKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ2VQlDT05GSUdfU1lTX0RCQVQ2VQogCi0jZGVmaW5lIENGR19EQkFUN0wJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREJBVDdVCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0lCQVQ3TAkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19JQkFUN1UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQ3TAkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDdVCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUN0wJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQ3VQkweDAwMDAwMDAwCiAKIC8qCiAgKiBFbnZpcm9ubWVudAogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFICsgMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyAweDQwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIDI1Nksob25lIHNlY3RvcikgZm9yIGVudiAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlICovCiAKICNpbmNsdWRlIDxjb25maWdfY21kX2RlZmF1bHQuaD4KICAgICAjZGVmaW5lIENPTkZJR19DTURfUElORwpAQCAtNDkxLDMzICs0OTEsMzMgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkweDIwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyAgICAjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotICAgICNkZWZpbmUgQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDFtcyB0aWNrcyAqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4Ki8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgqLwogCiAvKiBDYWNoZSBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJMzI3NjgKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTMyNzY4CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUqLwogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2MzLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2MzLmgKaW5kZXggODhhMjRiOC4uNDQxMzVkZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NjMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zYzMuaApAQCAtMTI4LDcgKzEyOCw3IEBACiAjdW5kZWYgQ09ORklHX0JPT1RDT01NQU5ECiAKICNkZWZpbmUgQ09ORklHX1NJTEVOVF9DT05TT0xFCTEJLyogZW5hYmxlIHNpbGVudCBzdGFydHVwICovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCS8qIGluY2x1ZGUgbnVsbGRldiBkZXZpY2UJKi8KIAogI2lmIDEJLyogZmVlbCBmcmVlIHRvIGRpc2FibGUgZm9yIGRldmVsb3BtZW50ICovCiAjZGVmaW5lIENPTkZJR19BVVRPQk9PVF9LRVlFRAkJLyogRW5hYmxlIHBhc3N3b3JkIHByb3RlY3Rpb24JKi8KQEAgLTE2MCw3ICsxNjAsNyBAQAogI3VuZGVmIENPTkZJR19JU1AxMTYxX1BSRVNFTlQKIAogI3VuZGVmIENPTkZJR19MT0FEU19FQ0hPICAgLyogbm8gZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogLyogI2RlZmluZSBDT05GSUdfRUVQUk8xMDBfU1JPTV9XUklURSAqLwpAQCAtMjA1LDQyICsyMDUsNDIgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCTEJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJTQzM+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkxCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJIlNDMz4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCiAvKgotICogSWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSwgdGhlbiBVQVJUIGRpdmlzb3IgaXMgMzEuCi0gKiBPdGhlcndpc2UsIFVBUlQgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGJ5IENQVSBDbG9jayBhbmQgQ0ZHX0JBU0VfQkFVRCB2YWx1ZS4KKyAqIElmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSywgdGhlbiB0aGUgVUFSVCBkaXZpc29yIGlzIDEuCisgKiBJZiBDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OSwgdGhlbiBVQVJUIGRpdmlzb3IgaXMgMzEuCisgKiBPdGhlcndpc2UsIFVBUlQgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGJ5IENQVSBDbG9jayBhbmQgQ09ORklHX1NZU19CQVNFX0JBVUQgdmFsdWUuCiAgKiBUaGUgTGludXggQkFTRV9CQVVEIGRlZmluZSBzaG91bGQgbWF0Y2ggdGhpcyBjb25maWd1cmF0aW9uLgogICogICAgYmFzZUJhdWQgPSBjcHVDbG9jay8odWFydERpdmlzb3IqMTYpCi0gKiBJZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkgYW5kIDIwME1IeiBDUFUgY2xvY2ssCiAgKiBzZXQgTGludXggQkFTRV9CQVVEIHRvIDQwMzIwMC4KICAqCiAgKiBDb25zaWRlciB0aGUgT1BCIGNsb2NrISBJZiBpdCBnZXQgbG93ZXIgdGhlIEJBU0VfQkFVRCBtdXN0IGJlIGxvd2VyIHRvCiAgKiAoc2VlIDQwNUdQIGRhdGFzaGVldCBmb3IgZGVzY3JpdHBpb24pCiAgKi8KLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkJLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jdW5kZWYJQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OQkJLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJOTIxNjAwCS8qIGludGVybmFsIGNsb2NrICovCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZglDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkJLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJCTkyMTYwMAkvKiBpbnRlcm5hbCBjbG9jayAqLwogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAgICAgezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMH0KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KLSNkZWZpbmUgQ0ZHX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVEJESU5GTwkJMQkvKiBUbyB1c2UgZXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJSUMgc3R1ZmYKQEAgLTI1MywxMSArMjUzLDExIEBACiAjZGVmaW5lIEkyQ19BQ1RJVkUgMAogI2RlZmluZSBJMkNfVFJJU1RBVEUgMAogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiB1c2UgdGhlIHN0YW5kYXJkIDEwMGtIeiBzcGVlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCQkvKiBtYXNrIHZhbGlkIGJpdHMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiB1c2UgdGhlIHN0YW5kYXJkIDEwMGtIeiBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgkJLyogbWFzayB2YWxpZCBiaXRzICovCiAKICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMzcKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSIDB4NjgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUENJIHN0dWZmCkBAIC0yNzUsMTQgKzI3NSwxNCBAQAogLyogSWYgeW91IHdhbnQgdG8gc2VlLCB3aGF0cyBjb25uZWN0ZWQgdG8geW91ciBQQ0kgYnVzICovCiAvKiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgwMDAwCS8qIFBDSSBWZW5kb3IgSUQ6IHRvLWRvISEhCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMAkvKiBQQ0kgRGV2aWNlIElEOiB0by1kbyEhIQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweDgwMDAwMDAxCS8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDAwMDAJLyogUENJIFZlbmRvciBJRDogdG8tZG8hISEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMAkvKiBQQ0kgRGV2aWNlIElEOiB0by1kbyEhIQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTEEJMHgwMDAwMDAwMAkvKiBwb2ludCB0byBzZHJhbQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMU1TCTB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJNUwkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIHBlcmlwaGVyYWwgYmFzZSBhZGRyZXNzCkBAIC0zMDYsMTAzICszMDYsMTAzIEBACiAKICNkZWZpbmUJQ09ORklHX0FUQVBJCiAjZGVmaW5lCUNPTkZJR19ET1NfUEFSVElUSU9OCi0jZGVmaW5lCUNGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoxKSAvKiBtYXguIDEgZHJpdmVzIHBlciBJREUgYnVzICovCisjZGVmaW5lCUNPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjEpIC8qIG1heC4gMSBkcml2ZXMgcGVyIElERSBidXMgKi8KIAogI2lmbmRlZiBJREVfVVNFU19JU0FfRU1VTEFUSU9OCiAKIC8qIE5ldyBhbmQgZmFzdGVyIGFjY2VzcyAqLwotI2RlZmluZQlDRkdfQVRBX0JBU0VfQUREUgkJMHg3QTAwMDAwMAkvKiBzdGFydCBvZiBJU0EgSU8gZW11bGF0aW9uICovCisjZGVmaW5lCUNPTkZJR19TWVNfQVRBX0JBU0VfQUREUgkJMHg3QTAwMDAwMAkvKiBzdGFydCBvZiBJU0EgSU8gZW11bGF0aW9uICovCiAKIC8qIEhvdyBtYW55IElERSBidXNzZXMgYXJlIGF2YWlsYWJsZSAqLwotI2RlZmluZQlDRkdfSURFX01BWEJVUwkJMQorI2RlZmluZQlDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEKIAogLyogV2hhdCBJREUgcG9ydHMgYXJlIGF2YWlsYWJsZSAqLwotI2RlZmluZQlDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwCQkvKiBmaXJzdCBpcyBhdmFpbGFibGUgKi8KLSN1bmRlZglDRkdfQVRBX0lERTFfT0ZGU0VUCQkJLyogc2Vjb25kIG5vdCBhdmFpbGFibGUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAJCS8qIGZpcnN0IGlzIGF2YWlsYWJsZSAqLworI3VuZGVmCUNPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCQkJLyogc2Vjb25kIG5vdCBhdmFpbGFibGUgKi8KIAogLyogYWNjZXNzIHRvIHRoZSBkYXRhIHBvcnQgaXMgY2FsY3VsYXRlZDoKLSAgIENGR19BVEFfQkFTRV9BRERSICsgQ0ZHX0FUQV9JREUwX09GRlNFVCArIENGR19BVEFfREFUQV9PRkZTRVQgKyAwICovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KKyAgIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiArIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUICsgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQgKyAwICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCiAKIC8qIGFjY2VzcyB0byB0aGUgcmVnaXN0ZXJzIGlzIGNhbGN1bGF0ZWQ6Ci0gICBDRkdfQVRBX0JBU0VfQUREUiArIENGR19BVEFfSURFMF9PRkZTRVQgKyBDRkdfQVRBX1JFR19PRkZTRVQgKyBbMS4uN10gKi8KLSNkZWZpbmUJQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworICAgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICsgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQgKyBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUICsgWzEuLjddICovCisjZGVmaW5lCUNPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCiAKIC8qIGFjY2VzcyB0byB0aGUgYWx0ZXJuYXRlIHJlZ2lzdGVyIGlzIGNhbGN1bGF0ZWQ6Ci0gICBDRkdfQVRBX0JBU0VfQUREUiArIENGR19BVEFfSURFMF9PRkZTRVQgKyBDRkdfQVRBX0FMVF9PRkZTRVQgKyA2ICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAwOAkJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCisgICBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgKyBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCArIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQgKyA2ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0FMVF9PRkZTRVQJMHgwMDgJCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwogCiAjZWxzZSAvKiBJREVfVVNFU19JU0FfRU1VTEFUSU9OICovCiAKLSNkZWZpbmUJQ0ZHX0FUQV9CQVNFX0FERFIJCTB4NzkwMDAwMDAJLyogc3RhcnQgb2YgSVNBIElPIGVtdWxhdGlvbiAqLworI2RlZmluZQlDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJCTB4NzkwMDAwMDAJLyogc3RhcnQgb2YgSVNBIElPIGVtdWxhdGlvbiAqLwogCiAvKiBIb3cgbWFueSBJREUgYnVzc2VzIGFyZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUJQ0ZHX0lERV9NQVhCVVMJCTEKKyNkZWZpbmUJQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCiAKIC8qIFdoYXQgSURFIHBvcnRzIGFyZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUJQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAxRjAJLyogZmlyc3QgaXMgYXZhaWxhYmxlICovCi0jdW5kZWYJQ0ZHX0FUQV9JREUxX09GRlNFVAkJCQkvKiBzZWNvbmQgbm90IGF2YWlsYWJsZSAqLworI2RlZmluZQlDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAxRjAJLyogZmlyc3QgaXMgYXZhaWxhYmxlICovCisjdW5kZWYJQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQJCQkJLyogc2Vjb25kIG5vdCBhdmFpbGFibGUgKi8KIAogLyogYWNjZXNzIHRvIHRoZSBkYXRhIHBvcnQgaXMgY2FsY3VsYXRlZDoKLSAgIENGR19BVEFfQkFTRV9BRERSICsgQ0ZHX0FUQV9JREUwX09GRlNFVCArIENGR19BVEFfREFUQV9PRkZTRVQgKyAwICovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3IgZGF0YSBJL08gKi8KKyAgIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUiArIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUICsgQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQgKyAwICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIGRhdGEgSS9PICovCiAKIC8qIGFjY2VzcyB0byB0aGUgcmVnaXN0ZXJzIGlzIGNhbGN1bGF0ZWQ6Ci0gICBDRkdfQVRBX0JBU0VfQUREUiArIENGR19BVEFfSURFMF9PRkZTRVQgKyBDRkdfQVRBX1JFR19PRkZTRVQgKyBbMS4uN10gKi8KLSNkZWZpbmUJQ0ZHX0FUQV9SRUdfT0ZGU0VUCTB4MDAwMAkvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLworICAgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICsgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQgKyBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUICsgWzEuLjddICovCisjZGVmaW5lCUNPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMHgwMDAwCS8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCiAKIC8qIGFjY2VzcyB0byB0aGUgYWx0ZXJuYXRlIHJlZ2lzdGVyIGlzIGNhbGN1bGF0ZWQ6Ci0gICBDRkdfQVRBX0JBU0VfQUREUiArIENGR19BVEFfSURFMF9PRkZTRVQgKyBDRkdfQVRBX0FMVF9PRkZTRVQgKyA2ICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAzRjAJCS8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLworICAgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICsgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQgKyBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUICsgNiAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDNGMAkJLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCiAKICNlbmRpZiAvKiBJREVfVVNFU19JU0FfRU1VTEFUSU9OICovCiAKICNlbmRpZgogCiAvKgotI2RlZmluZQlDRkdfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAotI2RlZmluZQlDRkdfSVJfUkVHX0JBU0VfQUREUgkweEYwMjAwMDAwCi0jZGVmaW5lCUNGR19GUEdBX1JFR19CQVNFX0FERFIJMHhGMDMwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX0tFWV9SRUdfQkFTRV9BRERSCTB4RjAxMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19GUEdBX1JFR19CQVNFX0FERFIJMHhGMDMwMDAwMAogKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKgotICogQ0ZHX0ZMQVNIX0JBU0UgICAtPiBzdGFydCBhZGRyZXNzIG9mIGludGVybmFsIGZsYXNoCi0gKiBDRkdfTU9OSVRPUl9CQVNFIC0+IHN0YXJ0IG9mIHUtYm9vdAorICogQ09ORklHX1NZU19GTEFTSF9CQVNFICAgLT4gc3RhcnQgYWRkcmVzcyBvZiBpbnRlcm5hbCBmbGFzaAorICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLT4gc3RhcnQgb2YgdS1ib290CiAgKi8KICNpZm5kZWYgX19BU1NFTUJMRVJfXwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb2Zmc2V0T2ZCaWdGbGFzaDsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG9mZnNldE9mRW52aXJvbm1lbnQ7CiAjZW5kaWYKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkUwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4RkZGQzAwMDAgICAgIC8qIHBsYWNlZCBsYXN0IDI1NmsgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjI0ICogMTAyNCkJLyogUmVzZXJ2ZSAyMjQgS2lCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjggS2lCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4RkZGQzAwMDAgICAgIC8qIHBsYWNlZCBsYXN0IDI1NmsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDIyNCAqIDEwMjQpCS8qIFJlc2VydmUgMjI0IEtpQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBLaUIgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1pQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbiAjIyBGSVhNRTogbG9va3VwIGluIGRhdGFzaGVldAogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCS8qIGZsYXNoIGlzIENGSSBjb21wYXQuCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJLyogZmxhc2ggaXMgQ0ZJIGNvbXBhdC4JKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciovCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvcgkqLwotI2RlZmluZSBDRkdfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX1dSSVRFX1NXQVBQRURfREFUQQkJLyogc3dhcCBEYXRhYnl0ZXMgYmV0d2VlbiByZWFkaW5nL3dyaXRpbmcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaCovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19XUklURV9TV0FQUEVEX0RBVEEJCS8qIHN3YXAgRGF0YWJ5dGVzIGJldHdlZW4gcmVhZGluZy93cml0aW5nICovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSApAQCAtNDIxLDkgKzQyMSw5IEBACiAvKgogICogTkFORC1GTEFTSCBzdHVmZgogICovCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjZGVmaW5lIE5BTkRfTUFYX0NISVBTCQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4NzdEMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCTB4NzdEMDAwMDAKIAogCiAjZGVmaW5lIENPTkZJR19KRkZTMl9OQU5EIDEJCQkvKiBqZmZzMiBvbiBuYW5kIHN1cHBvcnQgKi8KQEAgLTQzOSw1NSArNDM5LDU1IEBACiAgKgogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU29tZSBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIGludGVybmFsIFNSQU0gKE9DTT1PbiBDaGlwIE1lbW9yeSkKICAqCi0gKiBDRkdfT0NNX0RBVEFfQUREUiAtPiBsb2NhdGlvbgotICogQ0ZHX09DTV9EQVRBX1NJWkUgLT4gc2l6ZQorICogQ09ORklHX1NZU19PQ01fREFUQV9BRERSIC0+IGxvY2F0aW9uCisgKiBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLT4gc2l6ZQogKi8KIAotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUgkweEY4MDAwMDAwCi0jZGVmaW5lIENGR19PQ01fREFUQV9TSVpFCTB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9TSVpFCTB4MTAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKToKICAqIC0gd2UgYXJlIHVzaW5nIHRoZSBpbnRlcm5hbCA0ayBTUkFNLCBzbyB3ZSBkb24ndCBuZWVkIGRhdGEgY2FjaGUgbWFwcGluZwotICogLSBpbnRlcm5hbCBTUkFNIChPQ009T24gQ2hpcCBNZW1vcnkpIGlzIHBsYWNlZCB0byBDRkdfT0NNX0RBVEFfQUREUgorICogLSBpbnRlcm5hbCBTUkFNIChPQ009T24gQ2hpcCBNZW1vcnkpIGlzIHBsYWNlZCB0byBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIKICAqIC0gU3RhY2twb2ludGVyIHdpbGwgYmUgbG9jYXRlZCB0bwotICogICAoQ0ZHX0lOSVRfUkFNX0FERFImMHhGRkZGMDAwMCkgfCAoQ0ZHX0lOSVRfU1BfT0ZGU0VUJjB4MDAwMEZGRkYpCisgKiAgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFImMHhGRkZGMDAwMCkgfCAoQ09ORklHX1NZU19JTklUX1NQX09GRlNFVCYweDAwMDBGRkZGKQogICogICBpbiBjcHUvcHBjNHh4L3N0YXJ0LlMKICAqLwogCi0jdW5kZWYgQ0ZHX0lOSVRfRENBQ0hFX0NTCisjdW5kZWYgQ09ORklHX1NZU19JTklUX0RDQUNIRV9DUwogLyogV2hlcmUgdGhlIGludGVybmFsIFNSQU0gc3RhcnRzICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIKIC8qIFdoZXJlIHRoZSBpbnRlcm5hbCBTUkFNIGVuZHMgKG9ubHkgb2Zmc2V0KSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MEYwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDBGMDAKIAogLyoKIAotIENGR19JTklUX1JBTV9BRERSIC0tLS0tLT4gLS0tLS0tLS0tLS0tIGxvd2VyIGFkZHJlc3MKKyBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgLS0tLS0tPiAtLS0tLS0tLS0tLS0gbG93ZXIgYWRkcmVzcwogCQkJICAgfAkgICAgICB8CiAJCQkgICB8ICBeICAgICAgIHwKIAkJCSAgIHwgIHwgICAgICAgfAogCQkJICAgfCAgfCBTdGFjayB8Ci0gQ0ZHX0dCTF9EQVRBX09GRlNFVCAtLS0tPiAtLS0tLS0tLS0tLS0KKyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtLS0tPiAtLS0tLS0tLS0tLS0KIAkJCSAgIHwJICAgICAgfAogCQkJICAgfCA2NCBCeXRlcyB8CiAJCQkgICB8CSAgICAgIHwKLSBDRkdfSU5JVF9SQU1fRU5EICAtLS0tLS0+IC0tLS0tLS0tLS0tLSBoaWdoZXIgYWRkcmVzcworIENPTkZJR19TWVNfSU5JVF9SQU1fRU5EICAtLS0tLS0+IC0tLS0tLS0tLS0tLSBoaWdoZXIgYWRkcmVzcwogICAob2Zmc2V0IG9ubHkpCiAKICovCiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUgICAgIDY0Ci0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgIDY0CisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogLyogSW5pdGlhbCB2YWx1ZSBvZiB0aGUgc3RhY2sgcG9pbnRlcm4gaW4gaW50ZXJuYWwgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUICAgIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpAQCAtNTA0LDMxICs1MDQsMzEgQEAKIC8qIFRoaXMgY2hpcCBzZWxlY3QgYWNjZXNzZXMgdGhlIGJvb3QgZGV2aWNlICovCiAvKiBJdCBkZXBlbmRzIG9uIGJvb3Qgc2VsZWN0IHN3aXRjaCBpZiB0aGlzIGRldmljZSBpcyAxNiBvciA4IGJpdCAqLwogCi0jdW5kZWYgQ0ZHX0VCQ19QQjBBUAotI3VuZGVmIENGR19FQkNfUEIwQ1IKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjBBUAorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCMENSCiAKLSN1bmRlZiBDRkdfRUJDX1BCMUFQCi0jdW5kZWYgQ0ZHX0VCQ19QQjFDUgorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCMUFQCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEIxQ1IKIAotI3VuZGVmIENGR19FQkNfUEIyQVAKLSN1bmRlZiBDRkdfRUJDX1BCMkNSCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEIyQVAKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjJDUgogCi0jdW5kZWYgQ0ZHX0VCQ19QQjNBUAotI3VuZGVmIENGR19FQkNfUEIzQ1IKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjNBUAorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCM0NSCiAKLSN1bmRlZiBDRkdfRUJDX1BCNEFQCi0jdW5kZWYgQ0ZHX0VCQ19QQjRDUgorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCNEFQCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEI0Q1IKIAotI3VuZGVmIENGR19FQkNfUEI1QVAKLSN1bmRlZiBDRkdfRUJDX1BCNUNSCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEI1QVAKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjVDUgogCi0jdW5kZWYgQ0ZHX0VCQ19QQjZBUAotI3VuZGVmIENGR19FQkNfUEI2Q1IKKyN1bmRlZiBDT05GSUdfU1lTX0VCQ19QQjZBUAorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCNkNSCiAKLSN1bmRlZiBDRkdfRUJDX1BCN0FQCi0jdW5kZWYgQ0ZHX0VCQ19QQjdDUgorI3VuZGVmIENPTkZJR19TWVNfRUJDX1BCN0FQCisjdW5kZWYgQ09ORklHX1NZU19FQkNfUEI3Q1IKIAotI2RlZmluZSBDRkdfRUJDX0NGRyAgICAweGI4NGVmMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX0NGRyAgICAweGI4NGVmMDAwCiAKICNkZWZpbmUgQ09ORklHX1NEUkFNX0JBTkswCS8qIHVzZSB0aGUgc3RhbmRhcmQgU0RSQU0gaW5pdGlhbGl6YXRpb24gKi8KICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQpAQCAtNTQzLDE1ICs1NDMsMTUgQEAKICAqIEV4dGVybmFsIHBlcmlwaGVyYWwgYmFzZSBhZGRyZXNzCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgQ0ZHX0lTQV9NRU1fQkFTRV9BRERSRVNTIDB4NzgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JU0FfTUVNX0JBU0VfQUREUkVTUyAweDc4MDAwMDAwCiAvKgogIERpZSBHcmFmaWstVHJlaWJlciBncmVpZmVuIPxiZXIgZGllIEFkcmVzc2UgaW4gZGllc2VtIE1hY3JvIGF1ZiBkZW4gQ2hpcCB6dS4KICBEYXMgZnVua3Rpb25pZXJ0IGJlaSBkZXJlbiBLYXJ0ZW4sIHdlaWwgc2llIGVpbmUgUENJLUJyaWRnZSBiZW51dHplbiwgZGllCiAgZGFzIGdsZWljaGUgTWFwcGluZyBkdXJjaGb8aHJlbiBrYW5uLCB3aWUgZGVyIFNDNTIwIChhbHNvIEF1ZnRlaWxlbiB2b24gSU8tWnVncmlmZmVuCiAgYXVmIElTQS0gdW5kIFBDSS1aeWtsZW4pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lTQV9JT19CQVNFX0FERFJFU1MgIDB4RTgwMDAwMDAKLS8qI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUyAgMHg3OTAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgIDB4RTgwMDAwMDAKKy8qI2RlZmluZSBDT05GSUdfU1lTX0lTQV9JT19CQVNFX0FERFJFU1MgIDB4NzkwMDAwMDAgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogVmlkZW8gc3VwcG9ydApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NjNTIwX2NkcC5oIGIvaW5jbHVkZS9jb25maWdzL3NjNTIwX2NkcC5oCmluZGV4IDAwNDJlMzAuLmJmODY5M2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zYzUyMF9jZHAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2M1MjBfY2RwLmgKQEAgLTM4LDI0ICszOCwyNCBAQAogI2RlZmluZSBDT05GSUdfU0M1MjAJCTEJLyogSW5jbHVkZSBzdXBwb3J0IGZvciBBTUQgU0M1MjAgKi8KICNkZWZpbmUgQ09ORklHX0FMSTE1MlgJCTEJLyogSW5jbHVkZSBzdXBwb3J0IGZvciBBbGkgMTUyeCBTSU8gKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fUFJFQ0hBUkdFX0RFTEFZIDYgICAgIC8qIDZUICovCi0jZGVmaW5lIENGR19TRFJBTV9SRUZSRVNIX1JBVEUgICAgNzggICAgLyogNy44dVMgKGNob2ljZXMgYXJlIDcuOCwgMTUuNiwgMzEuMiBvciA2Mi41dVMpICovCi0jZGVmaW5lIENGR19TRFJBTV9SQVNfQ0FTX0RFTEFZICAgMyAgICAgLyogM1QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9QUkVDSEFSR0VfREVMQVkgNiAgICAgLyogNlQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SRUZSRVNIX1JBVEUgICAgNzggICAgLyogNy44dVMgKGNob2ljZXMgYXJlIDcuOCwgMTUuNiwgMzEuMiBvciA2Mi41dVMpICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fUkFTX0NBU19ERUxBWSAgIDMgICAgIC8qIDNUICovCiAKIC8qIGRlZmluZSBhdCBtb3N0IG9uZSBvZiB0aGVzZSAqLwotI3VuZGVmIENGR19TRFJBTV9DQVNfTEFURU5DWV8yVAotI2RlZmluZSBDRkdfU0RSQU1fQ0FTX0xBVEVOQ1lfM1QKKyN1bmRlZiBDT05GSUdfU1lTX1NEUkFNX0NBU19MQVRFTkNZXzJUCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfM1QKIAotI2RlZmluZSBDRkdfU0M1MjBfSElHSF9TUEVFRCAgICAwICAgICAgIC8qIDEwMCBvciAxMzNNSHogKi8KLSNkZWZpbmUgQ0ZHX1JFU0VUX0dFTkVSSUMgICAgICAgMSAgICAgICAvKiB1c2UgdHJpcHBsZS1mYXVsdCB0byByZXNldCBjcHUgKi8KLSN1bmRlZiAgQ0ZHX1JFU0VUX1NDNTIwICAgICAgICAgICAgICAgICAvKiB1c2UgU0M1MjAgTU1DUidzIHRvIHJlc2V0IGNwdSAqLwotI3VuZGVmICBDRkdfVElNRVJfU0M1MjAgICAgICAgICAgICAgICAgIC8qIHVzZSBTQzUyMCBzd3RpbWVycyAqLwotI2RlZmluZSBDRkdfVElNRVJfR0VORVJJQyAgICAgICAxICAgICAgIC8qIHVzZSB0aGUgaTgyNTQgUElUIHRpbWVycyAqLwotI3VuZGVmICBDRkdfVElNRVJfVFNDICAgICAgICAgICAgICAgICAgIC8qIHVzZSB0aGUgUGVudGl1bSBUU0MgdGltZXJzICovCi0jZGVmaW5lICBDRkdfVVNFX1NJT19VQVJUICAgICAgIDAgICAgICAgLyogcHJlZmVyIHRoZSB1YXJ0cyBvbiB0aGUgU0lPIHRvIHRob3NlCisjZGVmaW5lIENPTkZJR19TWVNfU0M1MjBfSElHSF9TUEVFRCAgICAwICAgICAgIC8qIDEwMCBvciAxMzNNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9HRU5FUklDICAgICAgIDEgICAgICAgLyogdXNlIHRyaXBwbGUtZmF1bHQgdG8gcmVzZXQgY3B1ICovCisjdW5kZWYgIENPTkZJR19TWVNfUkVTRVRfU0M1MjAgICAgICAgICAgICAgICAgIC8qIHVzZSBTQzUyMCBNTUNSJ3MgdG8gcmVzZXQgY3B1ICovCisjdW5kZWYgIENPTkZJR19TWVNfVElNRVJfU0M1MjAgICAgICAgICAgICAgICAgIC8qIHVzZSBTQzUyMCBzd3RpbWVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX0dFTkVSSUMgICAgICAgMSAgICAgICAvKiB1c2UgdGhlIGk4MjU0IFBJVCB0aW1lcnMgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19USU1FUl9UU0MgICAgICAgICAgICAgICAgICAgLyogdXNlIHRoZSBQZW50aXVtIFRTQyB0aW1lcnMgKi8KKyNkZWZpbmUgIENPTkZJR19TWVNfVVNFX1NJT19VQVJUICAgICAgIDAgICAgICAgLyogcHJlZmVyIHRoZSB1YXJ0cyBvbiB0aGUgU0lPIHRvIHRob3NlCiAJCQkJCSAqIGluIHRoZSBTQzUyMCBvbiB0aGUgQ0RQICovCiAKLSNkZWZpbmUgQ0ZHX1NUQUNLX1NJWkUgICAgICAgICAgMHg4MDAwICAvKiBTaXplIG9mIGJvb3Rsb2FkZXIgc3RhY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TVEFDS19TSVpFICAgICAgICAgIDB4ODAwMCAgLyogU2l6ZSBvZiBib290bG9hZGVyIHN0YWNrICovCiAKICNkZWZpbmUgQ09ORklHX1NIT1dfQk9PVF9QUk9HUkVTUyAxCiAjZGVmaW5lIENPTkZJR19MQVNUX1NUQUdFX0lOSVQgICAgMQpAQCAtMTAzLDI0ICsxMDMsMjQgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiYm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiYm9vdCA+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogMSAuLi4gMTYgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDEwMDAwMDAJLyogMSAuLi4gMTYgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMjQJCS8qIGluY3JlbWVudGVyIGZyZXE6IDFrSHogKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMjQJCS8qIGluY3JlbWVudGVyIGZyZXE6IDFrSHogKi8KIAogCQkJCQkJLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQaHlzaWNhbCBNZW1vcnkgTWFwCkBAIC0xMzAsMTIgKzEzMCwxMiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMwkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTY0CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogI2RlZmluZSBDT05GSUdfU1BJX0VFUFJPTSAgICAgIC8qIFN1cHBvcnQgZm9yIFNQSSBFRVBST01zIChBVDI1MTI4KSAqLwogI2RlZmluZSBDT05GSUdfTVdfRUVQUk9NICAgICAgIC8qIFN1cHBvcnQgZm9yIE1pY3JvV2lyZSBFRVBST01zIChBVDkzTEM0NikgKi8KQEAgLTE4MSwxNCArMTgxLDE0IEBACiAqU0FUQS9OYXRpdmUgU3R1ZmYKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNpZm5kZWYgR1JVU1NfVEVTVElORwotI2RlZmluZSBDRkdfU0FUQV9NQVhCVVMgICAgICAgICAyICAgICAgIC8qTWF4IFNhdGEgYnVzZXMgc3VwcG9ydGVkICovCi0jZGVmaW5lIENGR19TQVRBX0RFVlNfUEVSX0JVUyAgIDIgICAgICAvKk1heCBuby4gb2YgZGV2aWNlcyBwZXIgYnVzL3BvcnQgKi8KLSNkZWZpbmUgQ0ZHX1NBVEFfTUFYX0RFVklDRSAgICAgKENGR19TQVRBX01BWEJVUyogQ0ZHX1NBVEFfREVWU19QRVJfQlVTKQorI2RlZmluZSBDT05GSUdfU1lTX1NBVEFfTUFYQlVTICAgICAgICAgMiAgICAgICAvKk1heCBTYXRhIGJ1c2VzIHN1cHBvcnRlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NBVEFfREVWU19QRVJfQlVTICAgMiAgICAgIC8qTWF4IG5vLiBvZiBkZXZpY2VzIHBlciBidXMvcG9ydCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRSAgICAgKENPTkZJR19TWVNfU0FUQV9NQVhCVVMqIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVMpCiAjZGVmaW5lIENPTkZJR19BVEFfUElJWAkJMSAgICAgICAvKlN1cHBvcnRzIGF0YV9waWl4IGRyaXZlciAqLwogI2Vsc2UKLSN1bmRlZiBDRkdfU0FUQV9NQVhCVVMKLSN1bmRlZiBDRkdfU0FUQV9ERVZTX1BFUl9CVVMKLSN1bmRlZiBDRkdfU0FUQV9NQVhfREVWSUNFCisjdW5kZWYgQ09ORklHX1NZU19TQVRBX01BWEJVUworI3VuZGVmIENPTkZJR19TWVNfU0FUQV9ERVZTX1BFUl9CVVMKKyN1bmRlZiBDT05GSUdfU1lTX1NBVEFfTUFYX0RFVklDRQogI3VuZGVmIENPTkZJR19BVEFfUElJWAogI2VuZGlmCiAKQEAgLTIwOSw3ICsyMDksNyBAQAogI3VuZGVmIENPTkZJR19WSURFTwogI2VuZGlmCiAjZGVmaW5lIENPTkZJR19JODA0Ml9LQkQKLSNkZWZpbmUgQ0ZHX0lTQV9JTyAwCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPIDAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogUlRDCkBAIC0yMjUsMTAgKzIyNSwxMCBAQAogI2RlZmluZSBDT05GSUdfUENJX1BOUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwY2kgcGx1Zy1hbmQtcGxheSAqLwogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwogCi0jZGVmaW5lCUNGR19GSVJTVF9QQ0lfSVJRICAgMTAKLSNkZWZpbmUJQ0ZHX1NFQ09ORF9QQ0lfSVJRICA5Ci0jZGVmaW5lIENGR19USElSRF9QQ0lfSVJRICAgMTEKLSNkZWZpbmUJQ0ZHX0ZPUlRIX1BDSV9JUlEgICAxNQorI2RlZmluZQlDT05GSUdfU1lTX0ZJUlNUX1BDSV9JUlEgICAxMAorI2RlZmluZQlDT05GSUdfU1lTX1NFQ09ORF9QQ0lfSVJRICA5CisjZGVmaW5lIENPTkZJR19TWVNfVEhJUkRfUENJX0lSUSAgIDExCisjZGVmaW5lCUNPTkZJR19TWVNfRk9SVEhfUENJX0lSUSAgIDE1CiAjZWxzZQogI3VuZGVmIENPTkZJR19QQ0kKICN1bmRlZiBDT05GSUdfUENJX1BOUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NjNTIwX3NwdW5rLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2M1MjBfc3B1bmsuaAppbmRleCA0ZTU3OThjLi5mYmRiZWRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2M1MjBfc3B1bmsuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2M1MjBfc3B1bmsuaApAQCAtMzYsMjIgKzM2LDIyIEBACiAjZGVmaW5lIENPTkZJR19YODYJCTEJLyogVGhpcyBpcyBhIFg4NiBDUFUJCSovCiAjZGVmaW5lIENPTkZJR19TQzUyMAkJMQkvKiBJbmNsdWRlIHN1cHBvcnQgZm9yIEFNRCBTQzUyMCAqLwogCi0jZGVmaW5lIENGR19TRFJBTV9QUkVDSEFSR0VfREVMQVkgNiAgICAgLyogNlQgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1JFRlJFU0hfUkFURSAgICA3OCAgICAvKiA3Ljh1UyAoY2hvaWNlcyBhcmUgNy44LCAxNS42LCAzMS4yIG9yIDYyLjV1UykgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1JBU19DQVNfREVMQVkgICAzICAgICAvKiAzVCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1BSRUNIQVJHRV9ERUxBWSA2ICAgICAvKiA2VCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1JFRlJFU0hfUkFURSAgICA3OCAgICAvKiA3Ljh1UyAoY2hvaWNlcyBhcmUgNy44LCAxNS42LCAzMS4yIG9yIDYyLjV1UykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9SQVNfQ0FTX0RFTEFZICAgMyAgICAgLyogM1QgKi8KIAogLyogZGVmaW5lIGF0IG1vc3Qgb25lIG9mIHRoZXNlICovCi0jdW5kZWYgQ0ZHX1NEUkFNX0NBU19MQVRFTkNZXzJUCi0jZGVmaW5lIENGR19TRFJBTV9DQVNfTEFURU5DWV8zVAorI3VuZGVmIENPTkZJR19TWVNfU0RSQU1fQ0FTX0xBVEVOQ1lfMlQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9DQVNfTEFURU5DWV8zVAogCi0jZGVmaW5lIENGR19TQzUyMF9ISUdIX1NQRUVEICAgIDAgICAgICAgLyogMTAwIG9yIDEzM01IeiAqLwotI2RlZmluZSBDRkdfUkVTRVRfR0VORVJJQyAgICAgICAxICAgICAgIC8qIHVzZSB0cmlwcGxlLWZhdWx0IHRvIHJlc2V0IGNwdSAqLwotI3VuZGVmICBDRkdfUkVTRVRfU0M1MjAgICAgICAgICAgICAgICAgIC8qIHVzZSBTQzUyMCBNTUNSJ3MgdG8gcmVzZXQgY3B1ICovCi0jdW5kZWYgIENGR19USU1FUl9TQzUyMCAgICAgICAgICAgICAgICAgLyogdXNlIFNDNTIwIHN3dGltZXJzICovCi0jZGVmaW5lIENGR19USU1FUl9HRU5FUklDICAgICAgIDEgICAgICAgLyogdXNlIHRoZSBpODI1NCBQSVQgdGltZXJzICovCi0jdW5kZWYgIENGR19USU1FUl9UU0MgICAgICAgICAgICAgICAgICAgLyogdXNlIHRoZSBQZW50aXVtIFRTQyB0aW1lcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQzUyMF9ISUdIX1NQRUVEICAgIDAgICAgICAgLyogMTAwIG9yIDEzM01IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0dFTkVSSUMgICAgICAgMSAgICAgICAvKiB1c2UgdHJpcHBsZS1mYXVsdCB0byByZXNldCBjcHUgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19SRVNFVF9TQzUyMCAgICAgICAgICAgICAgICAgLyogdXNlIFNDNTIwIE1NQ1IncyB0byByZXNldCBjcHUgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19USU1FUl9TQzUyMCAgICAgICAgICAgICAgICAgLyogdXNlIFNDNTIwIHN3dGltZXJzICovCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJfR0VORVJJQyAgICAgICAxICAgICAgIC8qIHVzZSB0aGUgaTgyNTQgUElUIHRpbWVycyAqLworI3VuZGVmICBDT05GSUdfU1lTX1RJTUVSX1RTQyAgICAgICAgICAgICAgICAgICAvKiB1c2UgdGhlIFBlbnRpdW0gVFNDIHRpbWVycyAqLwogCi0jZGVmaW5lIENGR19TVEFDS19TSVpFICAgICAgICAgIDB4ODAwMCAgLyogU2l6ZSBvZiBib290bG9hZGVyIHN0YWNrICovCisjZGVmaW5lIENPTkZJR19TWVNfU1RBQ0tfU0laRSAgICAgICAgICAweDgwMDAgIC8qIFNpemUgb2YgYm9vdGxvYWRlciBzdGFjayAqLwogCiAjZGVmaW5lIENPTkZJR19TSE9XX0JPT1RfUFJPR1JFU1MgMQogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUICAgIDEKQEAgLTEwNCwyNCArMTA0LDI0IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJImJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkJImJvb3QgPiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAxMDAwMDAwCS8qIDEgLi4uIDE2IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAxMDAwMDAwCS8qIDEgLi4uIDE2IE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkxMDI0CQkvKiBpbmNyZW1lbnRlciBmcmVxOiAxa0h6ICovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCQkxMDI0CQkvKiBpbmNyZW1lbnRlciBmcmVxOiAxa0h6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMzQsMTIgKzEzNCwxMiBAQAogICovCiAKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogCiAjZGVmaW5lIENPTkZJR19TUElfRUVQUk9NICAgICAgIC8qIFNQSSBFRVBST01zIHN1Y2ggYXMgQVQyNTAxMCBvciBBVDI1NjQwICovCkBAIC0xOTIsMzEgKzE5MiwzMSBAQAogICovCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkgICAgICAgIC8qIE11bHRpIGV0aGVybmV0IGNhcmRzIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgk4ICAgICAgICAgICAgICAgLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwICAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBJREUvQVRBIHN0dWZmCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCShDRkdfSURFX01BWEJVUyoyKSAvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzICovCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSICAgICAgIDAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAxZjAJLyogaWRlMCBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVAkweGUwMDAJLyogaWRlMSBvZmZzZXQgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkwCS8qIGRhdGEgcmVnIG9mZnNldAkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJMAkvKiByZWcgb2Zmc2V0ICovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDIwMAkvKiBhbHRlcm5hdGUgcmVnaXN0ZXIgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMiAgIC8qIG1heC4gMiBJREUgYnVzc2VzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkoQ09ORklHX1NZU19JREVfTUFYQlVTKjIpIC8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSICAgICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMWYwCS8qIGlkZTAgb2Zmc2V0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTFfT0ZGU0VUCTB4ZTAwMAkvKiBpZGUxIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCS8qIGRhdGEgcmVnIG9mZnNldAkqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCTAJLyogcmVnIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MjAwCS8qIGFsdGVybmF0ZSByZWdpc3RlciBvZmZzZXQgKi8KIAotI2RlZmluZSBDRkdfRklSU1RfUENNQ0lBX0JVUyAgICAxCisjZGVmaW5lIENPTkZJR19TWVNfRklSU1RfUENNQ0lBX0JVUyAgICAxCiAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIG5vIGxlZCBmb3IgaWRlIHN1cHBvcnRlZAkqLwogI3VuZGVmICBDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIHVuc3VwcG9ydGVkLi4uCSovCiAjdW5kZWYgIENPTkZJR19JREVfUkVTRVRfUk9VVElORQkvKiBubyBzcGVjaWFsIHJlc2V0IGZ1bmN0aW9uICovCiAKICNkZWZpbmUgQ09ORklHX0lERV9USV9DQVJEQlVTCi0jZGVmaW5lIENGR19QQ01DSUFfQ0lTX1dJTiAgICAgICAgICAweDI3ZjAwMDAwCi0jZGVmaW5lIENGR19QQ01DSUFfQ0lTX1dJTl9TSVpFICAgICAweDAwMTAwMDAwCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fV0lOICAgICAgICAgICAweGUwMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19XSU5fU0laRSAgICAgIDE2CisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0NJU19XSU4gICAgICAgICAgMHgyN2YwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9DSVNfV0lOX1NJWkUgICAgIDB4MDAxMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fV0lOICAgICAgICAgICAweGUwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fV0lOX1NJWkUgICAgICAxNgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBESVNLIFBhcnRpdGlvbiBzdXBwb3J0CkBAIC0yMzksOSArMjM5LDkgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcGNpIHBsdWctYW5kLXBsYXkgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cKIAotI2RlZmluZQlDRkdfRklSU1RfUENJX0lSUSAgIDkKLSNkZWZpbmUJQ0ZHX1NFQ09ORF9QQ0lfSVJRICAxMAotI2RlZmluZQlDRkdfVEhJUkRfUENJX0lSUSAgIDExCi0jZGVmaW5lCUNGR19GT1JUSF9QQ0lfSVJRICAgMTIKKyNkZWZpbmUJQ09ORklHX1NZU19GSVJTVF9QQ0lfSVJRICAgOQorI2RlZmluZQlDT05GSUdfU1lTX1NFQ09ORF9QQ0lfSVJRICAxMAorI2RlZmluZQlDT05GSUdfU1lTX1RISVJEX1BDSV9JUlEgICAxMQorI2RlZmluZQlDT05GSUdfU1lTX0ZPUlRIX1BDSV9JUlEgICAxMgogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NjYjkzMjguaCBiL2luY2x1ZGUvY29uZmlncy9zY2I5MzI4LmgKaW5kZXggMTI3OTk1NS4uNTk3MWRmNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NjYjkzMjguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2NiOTMyOC5oCkBAIC03NiwyMiArNzYsMjIgQEAKIC8qCiAgKiBHZW5lcmFsIG9wdGlvbnMgZm9yIHUtYm9vdC4gTW9kaWZ5IHRvIHNhdmUgbWVtb3J5IGZvb3QgcHJpbnQKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJICAgICAgLyogdW5kZWYgc2F2ZXMgbWVtb3J5ICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkic2NiOTMyOD4gIgkgICAgICAvKiBwcm9tcHQgc3RyaW5nCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkgICAgICAvKiBjb25zb2xlIEkvTyBidWZmZXIgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBwcmludCBidWZmZXIgc2l6ZSAgICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJICAgICAgLyogbWF4IGNvbW1hbmQgYXJncyAgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJICAgICAgLyogYm9vdCBhcmdzIGJ1ZiBzaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCSAgICAgIC8qIHVuZGVmIHNhdmVzIG1lbW9yeSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJzY2I5MzI4PiAiCSAgICAgIC8qIHByb21wdCBzdHJpbmcJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkgICAgICAvKiBjb25zb2xlIEkvTyBidWZmZXIgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBwcmludCBidWZmZXIgc2l6ZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCSAgICAgIC8qIG1heCBjb21tYW5kIGFyZ3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJICAgICAgLyogYm9vdCBhcmdzIGJ1ZiBzaXplICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDgxMDAwMDAJICAgICAgLyogbWVtdGVzdCB0ZXN0IGFyZWEgICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDhGMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDgxMDAwMDAJICAgICAgLyogbWVtdGVzdCB0ZXN0IGFyZWEgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA4RjAwMDAwCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJCSAgICAgLyogdXNlIEhaIGZvciBmcmVxLiBkaXNwbGF5ICAgICAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJCSAgICAgLyogdXNlIEhaIGZvciBmcmVxLiBkaXNwbGF5ICAgICAqLwogCi0jZGVmaW5lIENGR19IWgkJCTM2ODY0MDAJICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgxNDEJICAgICAvKiBjb3JlIGNsb2NrIC0gcmVnaXN0ZXIgdmFsdWUgICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkzNjg2NDAwCSAgICAgLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkweDE0MQkgICAgIC8qIGNvcmUgY2xvY2sgLSByZWdpc3RlciB2YWx1ZSAgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFIDExNTIwMAogLyoKICAqIERlZmluaXRpb25zIHJlbGF0ZWQgdG8gcGFzc2luZyBhcmd1bWVudHMgdG8ga2VybmVsLgpAQCAtMTA1LDEwICsxMDUsMTAgQEAKIC8qCiAgKiBNYWxsb2MgcG9vbCBuZWVkIHRvIGhvc3QgZW52ICsgMTI4IEtiIHJlc2VydmUgZm9yIG90aGVyIGFsbG9jYXRpb25zLgogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgKDEyODw8MTApICkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgKDEyODw8MTApICkKIAogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFCSgxMjA8PDEwKSAgICAgIC8qIHN0YWNrIHNpemUJCSAgICAgKi8KIApAQCAtMTUyLDggKzE1Miw4IEBACiAKIC8qIDMyTUIgKi8KICNpZmRlZiBTQ0I5MzI4X0ZMQVNIXzMyTQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCS8qIEZMQVNIIGJhbmtzIGNvdW50IChub3QgY2hpcCBjb3VudCkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTI1NgkvKiBudW1iZXIgb2Ygc2VjdG9yIGluIEZMQVNIIGJhbmsgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEJLyogRkxBU0ggYmFua3MgY291bnQgKG5vdCBjaGlwIGNvdW50KSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTI1NgkvKiBudW1iZXIgb2Ygc2VjdG9yIGluIEZMQVNIIGJhbmsgICAgKi8KICNkZWZpbmUgU0NCOTMyOF9GTEFTSF9CVVNfV0lEVEgJCTIJLyogd2UgdXNlIDE2IGJpdCBGTEFTSCBtZW1vcnkuLi4gICAgICovCiAjZGVmaW5lIFNDQjkzMjhfRkxBU0hfSU5URVJMRUFWRQkxCS8qIC4uLiBtYWRlIG9mIDEgY2hpcAkJICAgICAqLwogI2RlZmluZSBTQ0I5MzI4X0ZMQVNIX0JBTktfU0laRQkgMHgwMjAwMDAwMAkvKiBzaXplIG9mIG9uZSBmbGFzaCBiYW5rCSAgICAgKi8KQEAgLTE2Myw4ICsxNjMsOCBAQAogI2Vsc2UKIAogLyogMTZNQiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCQkxCS8qIEZMQVNIIGJhbmtzIGNvdW50IChub3QgY2hpcCBjb3VudCkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJCTEyOAkvKiBudW1iZXIgb2Ygc2VjdG9yIGluIEZMQVNIIGJhbmsgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEJLyogRkxBU0ggYmFua3MgY291bnQgKG5vdCBjaGlwIGNvdW50KSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJCTEyOAkvKiBudW1iZXIgb2Ygc2VjdG9yIGluIEZMQVNIIGJhbmsgICAgKi8KICNkZWZpbmUgU0NCOTMyOF9GTEFTSF9CVVNfV0lEVEgJCTIJLyogd2UgdXNlIDE2IGJpdCBGTEFTSCBtZW1vcnkuLi4gICAgICovCiAjZGVmaW5lIFNDQjkzMjhfRkxBU0hfSU5URVJMRUFWRQkxCS8qIC4uLiBtYWRlIG9mIDEgY2hpcAkJICAgICAqLwogI2RlZmluZSBTQ0I5MzI4X0ZMQVNIX0JBTktfU0laRQkgMHgwMTAwMDAwMAkvKiBzaXplIG9mIG9uZSBmbGFzaCBiYW5rCSAgICAgKi8KQEAgLTE3NywxMiArMTc3LDEyIEBACiAgICBpcyBub3Qgc28gY2xlYXIgdG8gbWUuIEluIG90aGVyIHdvcmRzIHdlIGNhbiBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb25zCiAgICB0byB1c2VyLCBidXQgdGhpcyBleHBlY3RzIG1vcmUgY29tcGxleCBmbGFzaCBoYW5kbGluZyB3ZSBkbyBub3QgcHJvdmlkZQogICAgbm93LiovCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NGSQorI3VuZGVmCUNPTkZJR19TWVNfRkxBU0hfQ0ZJCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKSAgICAvKiB0aW1lb3V0IGZvciBFcmFzZSBvcGVyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAgICAvKiB0aW1lb3V0IGZvciBXcml0ZSBvcGVyYXRpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyKkNPTkZJR19TWVNfSFopICAgIC8qIHRpbWVvdXQgZm9yIEVyYXNlIG9wZXJhdGlvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgICAgLyogdGltZW91dCBmb3IgV3JpdGUgb3BlcmF0aW9uICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVNDQjkzMjhfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVNDQjkzMjhfRkxBU0hfQkFTRQogCiAvKgogICogVGhpcyBpcyBzZXR0aW5nIGZvciBKRkZTMiBzdXBwb3J0IGluIHUtYm9vdC4KQEAgLTE5MSw5ICsxOTEsOSBAQAogICogZm9vdHByaW50LgogICogTk9URTogRW5hYmxlIENPTkZJR19DTURfSkZGUzIgZm9yIEpGRlMyIHN1cHBvcnQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJCTAKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgkJNQotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkJNQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkJMQogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dXAuIERlZmluaXRpb25zIG9mIG1vbml0b3IgbG9jYXRpb24gYW5kIHNpemUgd2l0aApAQCAtMjEwLDExICsyMTAsMTEgQEAKIC8qIFNldHVwIGZvciBQQTIzIHdoaWNoIGlzIFJlc2V0IERlZmF1bHQgUEEyMyBidXQgaGFzIHRvIGJlY29tZQogICAgQ1M1ICovCiAKLSNkZWZpbmUgQ0ZHX0dQUl9BX1ZBTAkJMHgwMDgwMDAwMAotI2RlZmluZSBDRkdfR0lVU19BX1ZBTAkJMHgwMDQzZmZmZQorI2RlZmluZSBDT05GSUdfU1lTX0dQUl9BX1ZBTAkJMHgwMDgwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dJVVNfQV9WQUwJCTB4MDA0M2ZmZmUKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkweDIwMDAwCQkvKiAxMjhiICggMSBmbGFzaCBzZWN0b3IgKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCQkvKiAxMjhiICggMSBmbGFzaCBzZWN0b3IgKSAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJMHgxMDAyMDAwMAkvKiBhYnNvbHV0ZSBhZGRyZXNzIGZvciBub3cgICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwMApAQCAtMjMxLDMwICsyMzEsMzAgQEAKICAqICAgfAkgT0VBICAgfCAgIE9FTgkgfCAgIFdFQSAgIHwgICBXRU4gICB8CSBDU0EgICB8RUJDfCBEU1ogIHwgMHxTUHwwfFdQfCAwIDB8UEF8Q1NFTnwKICAqLwogCi0jZGVmaW5lIENGR19DUzBVX1ZBTCAweDAwMEYyMDAwCi0jZGVmaW5lIENGR19DUzBMX1ZBTCAweDExMTEwZDAxCi0jZGVmaW5lIENGR19DUzFVX1ZBTCAweDAwMEYwYTAwCi0jZGVmaW5lIENGR19DUzFMX1ZBTCAweDExMTEwNjAxCi0jZGVmaW5lIENGR19DUzJVX1ZBTCAweDAKLSNkZWZpbmUgQ0ZHX0NTMkxfVkFMIDB4MAorI2RlZmluZSBDT05GSUdfU1lTX0NTMFVfVkFMIDB4MDAwRjIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBMX1ZBTCAweDExMTEwZDAxCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxVV9WQUwgMHgwMDBGMGEwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMUxfVkFMIDB4MTExMTA2MDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJVX1ZBTCAweDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzJMX1ZBTCAweDAKIAotI2RlZmluZSBDRkdfQ1MzVV9WQUwgMHgwMDBGRkZGRgotI2RlZmluZSBDRkdfQ1MzTF9WQUwgMHgwMDAwMDMwMworI2RlZmluZSBDT05GSUdfU1lTX0NTM1VfVkFMIDB4MDAwRkZGRkYKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNMX1ZBTCAweDAwMDAwMzAzCiAKLSNkZWZpbmUgQ0ZHX0NTNFVfVkFMIDB4MDAwRjBhMDAKLSNkZWZpbmUgQ0ZHX0NTNExfVkFMIDB4MTExMTAzMDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzRVX1ZBTCAweDAwMEYwYTAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M0TF9WQUwgMHgxMTExMDMwMQogCiAvKiBDTkMgPT0gMyB0b28gbG9uZwotICAgI2RlZmluZSBDRkdfQ1M1VV9WQUwgMHgwMDAwQzIxMCAqLworICAgI2RlZmluZSBDT05GSUdfU1lTX0NTNVVfVkFMIDB4MDAwMEMyMTAgKi8KIAotLyogI2RlZmluZSBDRkdfQ1M1VV9WQUwgMHgwMDAwODQwMAorLyogI2RlZmluZSBDT05GSUdfU1lTX0NTNVVfVkFMIDB4MDAwMDg0MDAKICAgIG1hbCBsYWVuZ2VyIG1haGNlbiwgb2IgZGVyIGJlaSAxNTBNSHogbGFlbmdlciBoYWVsdCBkYW5uIHVuZAogICAga2F1bSBsYW5nc2FtZXIgaXN0ICovCi0vKiAjZGVmaW5lIENGR19DUzVVX1ZBTCAweDAwMDA5NDAwCi0gICAjZGVmaW5lIENGR19DUzVMX1ZBTCAweDExMDEwRDAzICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfQ1M1VV9WQUwgMHgwMDAwOTQwMAorICAgI2RlZmluZSBDT05GSUdfU1lTX0NTNUxfVkFMIDB4MTEwMTBEMDMgKi8KIAotI2RlZmluZSBDRkdfQ1M1VV9WQUwgMHgwMDAwODQwMAotI2RlZmluZSBDRkdfQ1M1TF9WQUwgMHgwMDAwMEQwMworI2RlZmluZSBDT05GSUdfU1lTX0NTNVVfVkFMIDB4MDAwMDg0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzVMX1ZBTCAweDAwMDAwRDAzCiAKICNkZWZpbmUgQ09ORklHX0RSSVZFUl9ETTkwMDAJCTEKICNkZWZpbmUgQ09ORklHX0RNOTAwMF9CQVNFCQkweDE2MDAwMDAwCkBAIC0yODEsMjQgKzI4MSwyNCBAQAogI2RlZmluZSBDUFUyMDAKIAogI2lmZGVmIENQVTIwMAotI2RlZmluZSBDRkdfTVBDVEwwX1ZBTCAweDAwMzIxNDMxCisjZGVmaW5lIENPTkZJR19TWVNfTVBDVEwwX1ZBTCAweDAwMzIxNDMxCiAjZWxzZQotI2RlZmluZSBDRkdfTVBDVEwwX1ZBTCAweDA0MGUyMDBlCisjZGVmaW5lIENPTkZJR19TWVNfTVBDVEwwX1ZBTCAweDA0MGUyMDBlCiAjZW5kaWYKIAogLyogI2RlZmluZSBCVVM2NCAqLwogI2RlZmluZSBCVVM3MgogCiAjaWZkZWYgQlVTNzIKLSNkZWZpbmUgQ0ZHX1NQQ1RMMF9WQUwgMHgwNDAwMjQwMAorI2RlZmluZSBDT05GSUdfU1lTX1NQQ1RMMF9WQUwgMHgwNDAwMjQwMAogI2VuZGlmCiAKICNpZmRlZiBCVVM5NgotI2RlZmluZSBDRkdfU1BDVEwwX1ZBTCAweDA0MDAxODAwCisjZGVmaW5lIENPTkZJR19TWVNfU1BDVEwwX1ZBTCAweDA0MDAxODAwCiAjZW5kaWYKIAogI2lmZGVmIEJVUzY0Ci0jZGVmaW5lIENGR19TUENUTDBfVkFMIDB4MDgwMDE4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUENUTDBfVkFMIDB4MDgwMDE4MDAKICNlbmRpZgogCiAvKiBEYXMgaXN0IGRlciBCQ0xLIERpdmlkZXIsIGRlciBhdXMgZGVyIFN5c3RlbSBQTEwKQEAgLTMxMiwxMSArMzEyLDExIEBACiAgICBCaXQgMjE6IE1QTEwgUmVzdGFydCAqLwogCiAjaWZkZWYgQlVTNjQKLSNkZWZpbmUgQ0ZHX0NTQ1JfVkFMIDB4MmYwMzAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19DU0NSX1ZBTCAweDJmMDMwMDAzCiAjZW5kaWYKIAogI2lmZGVmIEJVUzcyCi0jZGVmaW5lIENGR19DU0NSX1ZBTCAweDJmMDMwNDAzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NDUl9WQUwgMHgyZjAzMDQwMwogI2VuZGlmCiAKIC8qCkBAIC0zMjQsNyArMzI0LDcgQEAKICAqIG9uZSBtYXkgZXhwZWN0LiBGb3IgaW5zdGFuY2UgbG9hZGIgY29tbWFuZCBkbyBub3QgY2FyZXMgOi0pCiAgKiBTbyBhZHZpY2UgaXMgLSBkbyBub3QgcmVsYXkgb24gdGhpcy4uLgogICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIgMHgwODQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUiAweDA4NDAwMDAwCiAKICNkZWZpbmUgTUhaMTZRVUFSWklOVVNFCiAKQEAgLTMzNyw3ICszMzcsNyBAQAogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRIDE2NzgwMDAwCiAKIC8qIEZNQ1IgQml0IDAgYmVjb21lcyAwIHRvIG1ha2UgQ1MzIENTMyA6UCAqLwotI2RlZmluZSBDRkdfRk1DUl9WQUwgMHgwMDAwMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX0ZNQ1JfVkFMIDB4MDAwMDAwMDEKIAogLyogQml0WzA6M10gY29udGFpbiBQRVJDTEsxRElWIGZvciBVQVJUIDEKICAgIDB4MDAwYjAwYiAtPmI8LSAtPiAxOTJNSHovMTI9MTZNSHoKQEAgLTM0NSwxNSArMzQ1LDE1IEBACiAgICAweDAwMGIwMGIgLT4zPC0gLT4gNjRNSHovND0xNk1IeiAqLwogCiAjaWZkZWYgQlVTOTYKLSNkZWZpbmUgQ0ZHX1BDRFJfVkFMIDB4MDAwYjAwYjUKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0RSX1ZBTCAweDAwMGIwMGI1CiAjZW5kaWYKIAogI2lmZGVmIEJVUzY0Ci0jZGVmaW5lIENGR19QQ0RSX1ZBTCAweDAwMGIwMGIzCisjZGVmaW5lIENPTkZJR19TWVNfUENEUl9WQUwgMHgwMDBiMDBiMwogI2VuZGlmCiAKICNpZmRlZiBCVVM3MgotI2RlZmluZSBDRkdfUENEUl9WQUwgMHgwMDBiMDBiOAorI2RlZmluZSBDT05GSUdfU1lTX1BDRFJfVkFMIDB4MDAwYjAwYjgKICNlbmRpZgogCiAjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NlcXVvaWEuaCBiL2luY2x1ZGUvY29uZmlncy9zZXF1b2lhLmgKaW5kZXggMzUzMzFlOC4uOTMyMWJkYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NlcXVvaWEuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc2VxdW9pYS5oCkBAIC00OCw3ICs0OCw3IEBACiAjaW5jbHVkZSAiYW1jYy1jb21tb24uaCIKIAogLyogRGV0ZWN0IFNlcXVvaWEgUExMIGlucHV0IGNsb2NrIGF1dG9tYXRpY2FsbHkgdmlhIENQTEQgYml0CQkqLwotI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAgICgoaW44KENGR19CQ1NSX0JBU0UgKyAzKSAmIDB4ODApID8gXAorI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRICAgICgoaW44KENPTkZJR19TWVNfQkNTUl9CQVNFICsgMykgJiAweDgwKSA/IFwKIAkJCQkzMzMzMzMzMyA6IDMzMDAwMDAwKQogCiAvKgpAQCAtNzIsNDAgKzcyLDQwIEBACiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZSBhY3R1YWwKICAqIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKS4KICAqLwotI2RlZmluZSBDRkdfVExCX0ZPUl9CT09UX0ZMQVNICTB4MDAwMwotI2RlZmluZSBDRkdfQk9PVF9CQVNFX0FERFIJMHhmMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLwotI2RlZmluZSBDRkdfTkFORF9BRERSCQkweGQwMDAwMDAwCS8qIE5BTkQgRmxhc2gJCSovCi0jZGVmaW5lIENGR19PQ01fQkFTRQkJMHhlMDAxMDAwMAkvKiBvY20JCQkqLwotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUglDRkdfT0NNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGUwMDAwMDAwCS8qIEludGVybmFsIFBDSSByZWdzCSovCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UxCUNGR19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lfTUVNQkFTRTIJQ0ZHX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFMwlDRkdfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RMQl9GT1JfQk9PVF9GTEFTSAkweDAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUgkweGYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQUREUgkJMHhkMDAwMDAwMAkvKiBOQU5EIEZsYXNoCQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9CQVNFCQkweGUwMDEwMDAwCS8qIG9jbQkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT0NNX0RBVEFfQUREUglDT05GSUdfU1lTX09DTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJCTB4ZTAwMDAwMDAJLyogSW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRQkJMHg4MDAwMDAwMAkvKiBtYXBwZWQgcGNpIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMQlDT05GSUdfU1lTX1BDSV9NRU1CQVNFICArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTIJQ09ORklHX1NZU19QQ0lfTUVNQkFTRTEgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UzCUNPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAogCiAvKiBEb24ndCBjaGFuZ2UgZWl0aGVyIG9mIHRoZXNlICovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UJMHhlZjYwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweGVmNjAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCiAKLSNkZWZpbmUgQ0ZHX1VTQjJEMF9CQVNFCQkweGUwMDAwMTAwCi0jZGVmaW5lIENGR19VU0JfREVWSUNFCQkweGUwMDAwMDAwCi0jZGVmaW5lIENGR19VU0JfSE9TVAkJMHhlMDAwMDQwMAotI2RlZmluZSBDRkdfQkNTUl9CQVNFCQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCMkQwX0JBU0UJCTB4ZTAwMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfREVWSUNFCQkweGUwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX0hPU1QJCTB4ZTAwMDA0MDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSX0JBU0UJCTB4YzAwMDAwMDAKIAogLyoKICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlcgogICovCiAvKiA0NDBFUHgvNDQwR1J4IGhhdmUgMTZLQiBvZiBpbnRlcm5hbCBTUkFNLCBzbyBubyBuZWVkIGZvciBELUNhY2hlCSovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fQkFTRQkvKiBPQ00JCQkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECSg0IDw8IDEwKQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkyNTYJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfUE9TVF9XT1JEX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfT0NNX0JBU0UJLyogT0NNCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJKDQgPDwgMTApCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkyNTYJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YQkqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgogCiAvKgogICogU2VyaWFsIFBvcnQKICAqLwotI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMAkvKiBleHQuIDExLjA1OU1IeiBjbGsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwCS8qIGV4dC4gMTEuMDU5TUh6IGNsawkqLwogLyogZGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgY29uc29sZSBvbiBVQVJUMSAqLwogI3VuZGVmIENPTkZJR19VQVJUMV9DT05TT0xFCiAKQEAgLTEyMiwyNiArMTIyLDI2IEBACiAvKgogICogRkxBU0ggcmVsYXRlZAogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKSAgICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAqLwotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgkxCS8qIHVzZSBoYXJkd2FyZSBmbGFzaCBwcm90ZWN0aW9uICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbiAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JICAgICAgLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCi0jZGVmaW5lIENGR19GTEFTSF9RVUlFVF9URVNUCTEJLyogZG9uJ3Qgd2FybiB1cG9uIHVua25vd24gZmxhc2ggICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JICAgICAgLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAkxCS8qIGRvbid0IHdhcm4gdXBvbiB1bmtub3duIGZsYXNoICAgICAgKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJICAgICAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DRkdfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAgICovCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpAQCAtMTY3LDc0ICsxNjcsNzQgQEAKICAqIHNldCB1cC4gV2hpbGUgc3RpbGwgcnVubmluZyBmcm9tIGNhY2hlLCBJIGV4cGVyaWVuY2VkIHByb2JsZW1zIGFjY2Vzc2luZwogICogdGhlIE5BTkQgY29udHJvbGxlci4Jc3IgLSAyMDA2LTA4LTI1CiAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfU1JDCTB4ZmZmZmYwMDAJLyogU1BMIGxvY2F0aW9uCQkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQk9PVF9TUExfRFNUCShDRkdfT0NNX0JBU0UgKyAoMTIgPDwgMTApKSAvKiBDb3B5IFNQTCBoZXJlICAqLwotI2RlZmluZSBDRkdfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyICAgICAgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NUQVJUCUNGR19OQU5EX1VfQk9PVF9EU1QJLyogU3RhcnQgTlVCIGZyb20gICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMJMHhmZmZmZjAwMAkvKiBTUEwgbG9jYXRpb24JCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TSVpFCSg0IDw8IDEwKQkvKiBTUEwgc2l6ZQkJICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JPT1RfU1BMX0RTVAkoQ09ORklHX1NZU19PQ01fQkFTRSArICgxMiA8PCAxMCkpIC8qIENvcHkgU1BMIGhlcmUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCTB4MDEwMDAwMDAJLyogTG9hZCBOVUIgdG8gdGhpcyBhZGRyICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TVEFSVAlDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVAkvKiBTdGFydCBOVUIgZnJvbSAgICAgKi8KIAkJCQkJCQkvKiAgIHRoaXMgYWRkcgkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CT09UX1NQTF9ERUxUQQkoQ0ZHX05BTkRfQk9PVF9TUExfU1JDIC0gQ0ZHX05BTkRfQk9PVF9TUExfRFNUKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfREVMVEEJKENPTkZJR19TWVNfTkFORF9CT09UX1NQTF9TUkMgLSBDT05GSUdfU1lTX05BTkRfQk9PVF9TUExfRFNUKQogCiAvKgogICogRGVmaW5lIHRoZSBwYXJ0aXRpb25pbmcgb2YgdGhlIE5BTkQgY2hpcCAob25seSBSQU0gVS1Cb290IGlzIG5lZWRlZCBoZXJlKQogICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9PRkZTCSgxNiA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUJKDUxMiA8PCAxMCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTCSgxNiA8PCAxMCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9TSVpFCSg1MTIgPDwgMTApCS8qIFNpemUgb2YgUkFNIFUtQm9vdCBpbWFnZSAgICovCiAKIC8qCiAgKiBOb3cgdGhlIE5BTkQgY2hpcCBoYXMgdG8gYmUgZGVmaW5lZCAobm8gYXV0b2RldGVjdGlvbiB1c2VkISkKICAqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX1NJWkUJNTEyCQkvKiBOQU5EIGNoaXAgcGFnZSBzaXplCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JMT0NLX1NJWkUJKDE2IDw8IDEwKQkvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9QQUdFX0NPVU5UCTMyCQkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudAkgICAgICAqLwotI2RlZmluZSBDRkdfTkFORF9CQURfQkxPQ0tfUE9TCTUJICAgICAgLyogTG9jYXRpb24gb2YgYmFkIGJsb2NrIG1hcmtlciAqLwotI3VuZGVmIENGR19OQU5EXzRfQUREUl9DWUNMRQkJICAgICAgLyogTm8gZm91cnRoIGFkZHIgdXNlZCAoPD0zMk1CKSAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFCTUxMgkJLyogTkFORCBjaGlwIHBhZ2Ugc2l6ZQkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkxPQ0tfU0laRQkoMTYgPDwgMTApCS8qIE5BTkQgY2hpcCBibG9jayBzaXplCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9QQUdFX0NPVU5UCTMyCQkvKiBOQU5EIGNoaXAgcGFnZSBjb3VudAkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFEX0JMT0NLX1BPUwk1CSAgICAgIC8qIExvY2F0aW9uIG9mIGJhZCBibG9jayBtYXJrZXIgKi8KKyN1bmRlZiBDT05GSUdfU1lTX05BTkRfNF9BRERSX0NZQ0xFCQkgICAgICAvKiBObyBmb3VydGggYWRkciB1c2VkICg8PTMyTUIpICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU0laRQkyNTYKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDQllURVMJMwotI2RlZmluZSBDRkdfTkFORF9FQ0NTVEVQUwkoQ0ZHX05BTkRfUEFHRV9TSVpFIC8gQ0ZHX05BTkRfRUNDU0laRSkKLSNkZWZpbmUgQ0ZHX05BTkRfT09CU0laRQkxNgotI2RlZmluZSBDRkdfTkFORF9FQ0NUT1RBTAkoQ0ZHX05BTkRfRUNDQllURVMgKiBDRkdfTkFORF9FQ0NTVEVQUykKLSNkZWZpbmUgQ0ZHX05BTkRfRUNDUE9TCQl7MCwgMSwgMiwgMywgNiwgN30KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1NJWkUJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NCWVRFUwkzCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUwkoQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRSAvIENPTkZJR19TWVNfTkFORF9FQ0NTSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfT09CU0laRQkxNgorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDVE9UQUwJKENPTkZJR19TWVNfTkFORF9FQ0NCWVRFUyAqIENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUykKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ1BPUwkJezAsIDEsIDIsIDMsIDYsIDd9CiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05BTkQKIC8qCiAgKiBGb3IgTkFORCBib290aW5nIHRoZSBlbnZpcm9ubWVudCBpcyBlbWJlZGRlZCBpbiB0aGUgVS1Cb290IGltYWdlLiBQbGVhc2UgdGFrZQogICogbG9vayBhdCB0aGUgZmlsZSBib2FyZC9hbWNjL3NlcXVvaWEvdS1ib290LW5hbmQubGRzIGZvciBkZXRhaWxzLgogICovCi0jZGVmaW5lIENPTkZJR19FTlZfU0laRQkJQ0ZHX05BTkRfQkxPQ0tfU0laRQotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENGR19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTICsgQ09ORklHX0VOVl9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUICsgQ09ORklHX0VOVl9TSVpFKQogI2VuZGlmCiAKIC8qCiAgKiBERFIgU0RSQU0KICAqLwotI2RlZmluZSBDRkdfTUJZVEVTX1NEUkFNICAgICAgICAoMjU2KQkvKiAyNTZNQgkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNICAgICAgICAoMjU2KQkvKiAyNTZNQgkJCSovCiAjaWYgIWRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCiAjZGVmaW5lIENPTkZJR19ERFJfREFUQV9FWUUJCS8qIHVzZSBERFIyIG9wdGltaXphdGlvbgkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19NRU1fVE9QX0hJREUJKDQgPDwgMTApIC8qIGRvbid0IHVzZSBsYXN0IDRrYnl0ZXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1fVE9QX0hJREUJKDQgPDwgMTApIC8qIGRvbid0IHVzZSBsYXN0IDRrYnl0ZXMJKi8KIAkJCQkJLyogNDQwRVB4IGVycmF0YSBDSElQIDExCSovCiAKIC8qCiAgKiBJMkMKICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAvKiBJMkMgU1lTTU9OIChMTTc1LCBBRDc0MTQgaXMgYWxtb3N0IGNvbXBhdGlibGUpCQkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9MTTc1CQkxCS8qIE9OIFNlbWkncyBMTTc1CQkqLwogI2RlZmluZSBDT05GSUdfRFRUX0FENzQxNAkxCS8qIHVzZSBBRDc0MTQJCQkqLwogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJezB9CS8qIFNlbnNvciBhZGRyZXNzZXMJCSovCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAJNzAKLSNkZWZpbmUgQ0ZHX0RUVF9MT1dfVEVNUAktMzAKLSNkZWZpbmUgQ0ZHX0RUVF9IWVNURVJFU0lTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJMwogCiAvKgogICogRGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKQEAgLTI2NCwxMyArMjY0LDEzIEBACiAjaWZkZWYgQ09ORklHXzQ0MEVQWAogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCiAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQotI2RlZmluZSBDRkdfT0hDSV9CRV9DT05UUk9MTEVSCisjZGVmaW5lIENPTkZJR19TWVNfT0hDSV9CRV9DT05UUk9MTEVSCiAKLSN1bmRlZiBDRkdfVVNCX09IQ0lfQk9BUkRfSU5JVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCUNGR19VU0JfSE9TVAotI2RlZmluZSBDRkdfVVNCX09IQ0lfU0xPVF9OQU1FCSJwcGM0NDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUyAxNQorI3VuZGVmIENPTkZJR19TWVNfVVNCX09IQ0lfQk9BUkRfSU5JVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJQ09ORklHX1NZU19VU0JfSE9TVAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkicHBjNDQwIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTIDE1CiAKIC8qIENvbW1lbnQgdGhpcyBvdXQgdG8gZW5hYmxlIFVTQiAxLjEgZGV2aWNlICovCiAjZGVmaW5lIFVTQl8yXzBfREVWSUNFCkBAIC0yOTYsMjYgKzI5NiwyNiBAQAogI2VuZGlmCiAKICNpZm5kZWYgQ09ORklHX1JBSU5JRVIKLSNkZWZpbmUgQ0ZHX1BPU1RfRlBVX09OCQlDRkdfUE9TVF9GUFUKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0ZQVV9PTgkJQ09ORklHX1NZU19QT1NUX0ZQVQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BPU1RfRlBVX09OCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9GUFVfT04JCTAKICNlbmRpZgogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9DQUNIRQkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9FVEhFUgkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfRlBVX09OICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQwkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfTUVNT1JZICAgfCBcCi0JCQkJIENGR19QT1NUX1NQUgkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfVUFSVCkKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfQ0FDSEUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9FVEhFUgkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX0ZQVV9PTiAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9TUFIJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9VQVJUKQogCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dPUkRfQUREUgkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSAweDQpCiAjZGVmaW5lIENPTkZJR19MT0dCVUZGRVIKLSNkZWZpbmUgQ0ZHX1BPU1RfQ0FDSEVfQUREUgkweDdmZmYwMDAwCS8qIGZyZWUgdmlydHVhbCBhZGRyZXNzICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQ0FDSEVfQUREUgkweDdmZmYwMDAwCS8qIGZyZWUgdmlydHVhbCBhZGRyZXNzICAgICAqLwogCi0jZGVmaW5lIENGR19DT05TT0xFX0lTX0lOX0VOVgkvKiBPdGhlcndpc2UgaXQgY2F0Y2hlcyBsb2didWZmZXIgYXMgb3V0cHV0ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYJLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLwogCiAjZGVmaW5lIENPTkZJR19TVVBQT1JUX1ZGQVQKIApAQCAtMzI1LDE2ICszMjUsMTYgQEAKIC8qIEdlbmVyYWwgUENJICovCiAjZGVmaW5lIENPTkZJR19QQ0kJCQkvKiBpbmNsdWRlIHBjaSBzdXBwb3J0CQkqLwogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwotI2RlZmluZSBDRkdfUENJX0NBQ0hFX0xJTkVfU0laRQkwCS8qIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggUE5QCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0NBQ0hFX0xJTkVfU0laRQkwCS8qIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggUE5QCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRQkweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvCSovCi0JCQkJCQkvKiAgIENGR19QQ0lfTUVNQkFTRQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRQkweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvCSovCisJCQkJCQkvKiAgIENPTkZJR19TWVNfUENJX01FTUJBU0UJKi8KIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCi0jZGVmaW5lIENGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQwkJCQkqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MJCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0lEICAgICAgIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCiAKIC8qCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cApAQCAtMzQ0LDQ0ICszNDQsNDQgQEAKICAqIE9uIFNlcXVvaWEgQ1MwIGFuZCBDUzMgYXJlIHN3aXRjaGVkIHdoZW4gY29uZmlndXJpbmcgZm9yIE5BTkQgYm9vdGluZwogICovCiAjaWYgIWRlZmluZWQoQ09ORklHX05BTkRfVV9CT09UKSAmJiAhZGVmaW5lZChDT05GSUdfTkFORF9TUEwpCi0jZGVmaW5lIENGR19OQU5EX0NTCQkzCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9DUwkJMwkvKiBOQU5EIGNoaXAgY29ubmVjdGVkIHRvIENTeAkqLwogLyogTWVtb3J5IEJhbmsgMCAoTk9SLUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAzMDE3MjAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfRkxBU0hfQkFTRSB8IDB4ZGEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDAzMDE3MjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFIHwgMHhkYTAwMCkKIAogLyogTWVtb3J5IEJhbmsgMyAoTkFORC1GTEFTSCkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTgwMDNjMAotI2RlZmluZSBDRkdfRUJDX1BCM0NSCQkoQ0ZHX05BTkRfQUREUiB8IDB4MWMwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQCQkweDAxODAwM2MwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSCQkoQ09ORklHX1NZU19OQU5EX0FERFIgfCAweDFjMDAwKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX05BTkRfQ1MJCTAJLyogTkFORCBjaGlwIGNvbm5lY3RlZCB0byBDU3gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0NTCQkwCS8qIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gQ1N4CSovCiAvKiBNZW1vcnkgQmFuayAzIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDMwMTcyMDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJKENGR19GTEFTSF9CQVNFIHwgMHhkYTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQVAJCTB4MDMwMTcyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIzQ1IJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfCAweGRhMDAwKQogCiAvKiBNZW1vcnkgQmFuayAwIChOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAxODAwM2MwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfTkFORF9BRERSIHwgMHgxYzAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAJCTB4MDE4MDAzYzAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IJCShDT05GSUdfU1lTX05BTkRfQUREUiB8IDB4MWMwMDApCiAjZW5kaWYKIAogLyogTWVtb3J5IEJhbmsgMiAoQ1BMRCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MjQ4MTQ1ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19CQ1NSX0JBU0UgfCAweDM4MDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgyNDgxNDU4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJKENPTkZJR19TWVNfQkNTUl9CQVNFIHwgMHgzODAwMCkKIAotI2RlZmluZSBDRkdfQkNTUjVfUENJNjZFTgkweDgwCisjZGVmaW5lIENPTkZJR19TWVNfQkNTUjVfUENJNjZFTgkweDgwCiAKIC8qCiAgKiBOQU5EIEZMQVNICiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJKENGR19OQU5EX0FERFIgKyBDRkdfTkFORF9DUykKLSNkZWZpbmUgQ0ZHX05BTkRfU0VMRUNUX0RFVklDRSAgMQkvKiBuYW5kIGRyaXZlciBzdXBwb3J0cyBtdXRpcGwuIGNoaXBzICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQVNFCQkoQ09ORklHX1NZU19OQU5EX0FERFIgKyBDT05GSUdfU1lTX05BTkRfQ1MpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9TRUxFQ1RfREVWSUNFICAxCS8qIG5hbmQgZHJpdmVyIHN1cHBvcnRzIG11dGlwbC4gY2hpcHMgKi8KIAogLyoKICAqIFBQQzQ0MCBHUElPIENvbmZpZ3VyYXRpb24KICAqLwogLyogdGVzdC1vbmx5OiB0YWtlIEdQSU8gaW5pdCBmcm9tIHBjczQ0MGVwID8/Pz8gaW4gY29uZmlnIGZpbGUgKi8KLSNkZWZpbmUgQ0ZHXzR4eF9HUElPX1RBQkxFIHsgLyoJICBPdXQJCSAgR1BJTwlBbHRlcm5hdGUxCUFsdGVybmF0ZTIJQWx0ZXJuYXRlMyAqLyBcCisjZGVmaW5lIENPTkZJR19TWVNfNHh4X0dQSU9fVEFCTEUgeyAvKgkgIE91dAkJICBHUElPCUFsdGVybmF0ZTEJQWx0ZXJuYXRlMglBbHRlcm5hdGUzICovIFwKIHsJCQkJCQkJCQkJCVwKIC8qIEdQSU8gQ29yZSAwICovCQkJCQkJCQkJXAoge0dQSU8wX0JBU0UsIEdQSU9fQkkgLCBHUElPX0FMVDEsIEdQSU9fT1VUXzB9LCAvKiBHUElPMAlFQkNfQUREUig3KQlETUFfUkVRKDIpCSovCVwKQEAgLTQ1OCw3ICs0NTgsNyBAQAogI2RlZmluZSBDT05GSUdfQklPU0VNVQkJCS8qIHg4NiBiaW9zIGVtdWxhdG9yIGZvciB2Z2EgYmlvcyAqLwogI2RlZmluZSBDT05GSUdfQVRJX1JBREVPTl9GQgkJLyogdXNlIHJhZGVvbiBmcmFtZWJ1ZmZlciBkcml2ZXIgKi8KICNkZWZpbmUgVklERU9fSU9fT0ZGU0VUCQkJMHhlODAwMDAwMAotI2RlZmluZSBDRkdfSVNBX0lPX0JBU0VfQUREUkVTUwkJVklERU9fSU9fT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSVNBX0lPX0JBU0VfQUREUkVTUwkJVklERU9fSU9fT0ZGU0VUCiAjZGVmaW5lIENPTkZJR19WSURFT19TV19DVVJTT1IKICNkZWZpbmUgQ09ORklHX1ZJREVPX0xPR08KICNkZWZpbmUgQ09ORklHX0NGQl9DT05TT0xFCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2g3NzYzcmRwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc2g3NzYzcmRwLmgKaW5kZXggMmRhYWViMC4uOGE3NmRhZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3NoNzc2M3JkcC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zaDc3NjNyZHAuaApAQCAtNTYsNjYgKzU2LDY2IEBACiAjZGVmaW5lIENPTkZJR19CQVVEUkFURSAgICAgICAgIDExNTIwMAogI2RlZmluZSBDT05GSUdfQ09OU19TQ0lGMgkJMQogCi0jZGVmaW5lIENGR19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQnVmZmVyIHNpemUgZm9yIGlucHV0IGZyb20gdGhlIENvbnNvbGUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dCAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IGFyZ3MgYWNjZXB0ZWQgZm9yIG1vbml0b3IgY29tbWFuZHMgKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCTUxMgkvKiBCdWZmZXIgc2l6ZSBmb3IgQm9vdCBBcmd1bWVudHMKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBCdWZmZXIgc2l6ZSBmb3IgaW5wdXQgZnJvbSB0aGUgQ29uc29sZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJMjU2CS8qIEJ1ZmZlciBzaXplIGZvciBDb25zb2xlIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBhcmdzIGFjY2VwdGVkIGZvciBtb25pdG9yIGNvbW1hbmRzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJNTEyCS8qIEJ1ZmZlciBzaXplIGZvciBCb290IEFyZ3VtZW50cwogCQkJCQkJCQlwYXNzZWQgdG8ga2VybmVsICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CS8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CS8qIExpc3Qgb2YgbGVnYWwgYmF1ZHJhdGUKIAkJCQkJCQkJCQkJCXNldHRpbmdzIGZvciB0aGlzIGJvYXJkICovCiAKIC8qIFNEUkFNICovCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkoMHg4QzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkUJCSg2NCAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkoQ0ZHX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJKENGR19NRU1URVNUX1NUQVJUICsgKDYwICogMTAyNCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCSgweDhDMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJCSg2NCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJKENPTkZJR19TWVNfU0RSQU1fQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVCArICg2MCAqIDEwMjQgKiAxMDI0KSkKIAogLyogRmxhc2goTk9SKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKDB4QTAwMDAwMDApCi0jZGVmaW5lIENGR19GTEFTSF9DRklfV0lEVEggKEZMQVNIX0NGSV8xNkJJVCkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAoMSkKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAoNTIwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCSgweEEwMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9XSURUSCAoRkxBU0hfQ0ZJXzE2QklUKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyAoMSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCAgKDUyMCkKIAogLyogVS1ib290IHNldHRpbmcgKi8KLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJKENGR19TRFJBTV9CQVNFICsgNCAqIDEwMjQgKiAxMDI0KQotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSkKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTI4ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyA0ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxMjggKiAxMDI0KQogLyogU2l6ZSBvZiBEUkFNIHJlc2VydmVkIGZvciBtYWxsb2MoKSB1c2UgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTAyNCAqIDEwMjQpCiAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJKDI1NikKLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCSgyNTYpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSN1bmRlZiAgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCisjdW5kZWYgIENPTkZJR19TWVNfRkxBU0hfUVVJRVRfVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JLyogcHJpbnQgJ0UnIGZvciBlbXB0eSBzZWN0b3Igb24gZmxpbmZvICovCiAvKiBUaW1lb3V0IGZvciBGbGFzaCBlcmFzZSBvcGVyYXRpb25zIChpbiBtcykgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDMgKiAxMDAwKQogLyogVGltZW91dCBmb3IgRmxhc2ggd3JpdGUgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgzICogMTAwMCkKIC8qIFRpbWVvdXQgZm9yIEZsYXNoIHNldCBzZWN0b3IgbG9jayBiaXQgb3BlcmF0aW9ucyAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJCSgzICogMTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJCSgzICogMTAwMCkKIC8qIFRpbWVvdXQgZm9yIEZsYXNoIGNsZWFyIGxvY2sgYml0IG9wZXJhdGlvbnMgKGluIG1zKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VOTE9DS19UT1VUCSgzICogMTAwMCkKIC8qIFVzZSBoYXJkd2FyZSBmbGFzaCBzZWN0b3JzIHByb3RlY3Rpb24gaW5zdGVhZCBvZiBVLUJvb3Qgc29mdHdhcmUgcHJvdGVjdGlvbiAqLwotI3VuZGVmICBDRkdfRkxBU0hfUFJPVEVDVElPTgotI3VuZGVmICBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyN1bmRlZiAgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCisjdW5kZWYgIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoMTI4ICogMTAyNCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkoQ09ORklHX0VOVl9TRUNUX1NJWkUpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgKDEgKiBDT05GSUdfRU5WX1NFQ1RfU0laRSkpCi0vKiBPZmZzZXQgb2YgZW52IEZsYXNoIHNlY3RvciByZWxhdGl2ZSB0byBDRkdfRkxBU0hfQkFTRSAqLwotI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19FTlZfQUREUiAtIENGR19GTEFTSF9CQVNFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAoMSAqIENPTkZJR19FTlZfU0VDVF9TSVpFKSkKKy8qIE9mZnNldCBvZiBlbnYgRmxhc2ggc2VjdG9yIHJlbGF0aXZlIHRvIENPTkZJR19TWVNfRkxBU0hfQkFTRSAqLworI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TRUNUX1NJWkUpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENGR19GTEFTSF9CQVNFICsgKDIgKiBDT05GSUdfRU5WX1NFQ1RfU0laRSkpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArICgyICogQ09ORklHX0VOVl9TRUNUX1NJWkUpKQogCiAvKiBDbG9jayAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTY2NjY2NjY2CiAjZGVmaW5lIFRNVV9DTEtfRElWSURFUgkJKDQpCS8qIDQgKGRlZmF1bHQpLCAxNiwgNjQsIDI1NiBvciAxMDI0ICovCi0jZGVmaW5lIENGR19IWgkJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkoQ09ORklHX1NZU19DTEtfRlJFUSAvIFRNVV9DTEtfRElWSURFUikKIAogLyogRXRoZXIgKi8KICNkZWZpbmUgQ09ORklHX1NIX0VUSEVSIDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zaDc3ODVsY3IuaCBiL2luY2x1ZGUvY29uZmlncy9zaDc3ODVsY3IuaAppbmRleCBiZjA2ZjYyLi4xYjU5MDU5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2g3Nzg1bGNyLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NoNzc4NWxjci5oCkBAIC02Nyw2MCArNjcsNjAgQEAKICNkZWZpbmUgU0g3Nzg1TENSX0ZMQVNIX0JBTktfU0laRQkoNjQgKiAxMDI0ICogMTAyNCkKICNkZWZpbmUgU0g3Nzg1TENSX1VTQl9CQVNFCQkoMHhiNDAwMDAwMCkKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2Ci0jZGVmaW5lIENGR19QQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYKLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQk1MTIKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJMjU2CisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYKKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAxMTUyMDAgfQogCiAvKiBTQ0lGICovCiAjZGVmaW5lIENPTkZJR19TQ0lGX0NPTlNPTEUJMQogI2RlZmluZSBDT05GSUdfQ09OU19TQ0lGMQkxCiAjZGVmaW5lIENPTkZJR19TQ0lGX0VYVF9DTE9DSwkxCi0jdW5kZWYJQ0ZHX0NPTlNPTEVfSU5GT19RVUlFVAotI3VuZGVmCUNGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCi0jdW5kZWYJQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQorI3VuZGVmCUNPTkZJR19TWVNfQ09OU09MRV9JTkZPX1FVSUVUCisjdW5kZWYJQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCisjdW5kZWYJQ09ORklHX1NZU19DT05TT0xFX0VOVl9PVkVSV1JJVEUKIAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCShTSDc3ODVMQ1JfU0RSQU1fQkFTRSkKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX01FTVRFU1RfU1RBUlQgKyBcCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkoU0g3Nzg1TENSX1NEUkFNX0JBU0UpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQgKyBcCiAJCQkJCShTSDc3ODVMQ1JfU0RSQU1fU0laRSkgLSBcCiAJCQkJCSA0ICogMTAyNCAqIDEwMjQpCi0jdW5kZWYJQ0ZHX0FMVF9NRU1URVNUCi0jdW5kZWYJQ0ZHX01FTVRFU1RfU0NSQVRDSAotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQorI3VuZGVmCUNPTkZJR19TWVNfQUxUX01FTVRFU1QKKyN1bmRlZglDT05GSUdfU1lTX01FTVRFU1RfU0NSQVRDSAorI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkoU0g3Nzg1TENSX1NEUkFNX0JBU0UpCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCShTSDc3ODVMQ1JfU0RSQU1fU0laRSkKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkoQ0ZHX1NEUkFNX0JBU0UgKyAxNiAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJKFNINzc4NUxDUl9TRFJBTV9CQVNFKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkUJKFNINzc4NUxDUl9TRFJBTV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMTYgKiAxMDI0ICogMTAyNCkKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShTSDc3ODVMQ1JfRkxBU0hfQkFTRV8xKQotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSg1MTIgKiAxMDI0KQotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDUxMiAqIDEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCSgyNTYpCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCShTSDc3ODVMQ1JfRkxBU0hfQkFTRV8xKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoNTEyICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCSgyNTYpCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCAqIDEwMjQgKiAxMDI0KQogCiAvKiBGTEFTSCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCi0jdW5kZWYJQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCShTSDc3ODVMQ1JfRkxBU0hfQkFTRV8xKQotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9RVUlFVF9URVNUCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCShTSDc3ODVMQ1JfRkxBU0hfQkFTRV8xKQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFICsgXAorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSArIFwKIAkJCQkgKDAgKiBTSDc3ODVMQ1JfRkxBU0hfQkFOS19TSVpFKSB9CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDMgKiAxMDAwKQotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMyAqIDEwMDApCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJKDMgKiAxMDAwKQotI2RlZmluZSBDRkdfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDMgKiAxMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xPQ0tfVE9VVAkoMyAqIDEwMDApCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJKDMgKiAxMDAwKQogCi0jdW5kZWYJQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KLSN1bmRlZglDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KKyN1bmRlZglDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiAKIC8qIFI4QTY2NTk3ICovCiAjZGVmaW5lIExJVFRMRUVORElBTgkJCS8qIGZvciBpbmNsdWRlL3VzYi5oICovCkBAIC0xNTQsMTQgKzE1NCwxNCBAQAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCSgyNTYgKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCShDT05GSUdfRU5WX1NFQ1RfU0laRSkKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUCQkoQ09ORklHX0VOVl9BRERSIC0gQ09ORklHX1NZU19GTEFTSF9CQVNFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NFQ1RfU0laRSkKIAogLyogQm9hcmQgQ2xvY2sgKi8KIC8qIFRoZSBTQ0lGIHVzZWQgZXh0ZXJuYWwgY2xvY2suIHN5c3RlbSBjbG9jayBvbmx5IHVzZWQgdGltZXIuICovCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJNTAwMDAwMDAKICNkZWZpbmUgVE1VX0NMS19ESVZJREVSCQk0Ci0jZGVmaW5lIENGR19IWgkJCShDT05GSUdfU1lTX0NMS19GUkVRIC8gVE1VX0NMS19ESVZJREVSKQorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBUTVVfQ0xLX0RJVklERVIpCiAKICNlbmRpZgkvKiBfX1NINzc4NUxDUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc2hhbm5vbi5oIGIvaW5jbHVkZS9jb25maWdzL3NoYW5ub24uaAppbmRleCBlZGM5YTJlLi43NWJhMzRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc2hhbm5vbi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zaGFubm9uLmgKQEAgLTQ4LDggKzQ4LDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtOTUsMjUgKzk1LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIlR1eFNjcmVlbiAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiVHV4U2NyZWVuICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhjMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhjMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YzA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGMwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgIENGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYgIENPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4ZDAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4ZDAwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KIAotI2RlZmluZQlDRkdfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgwOQkJLyogMTkwIE1IeiBmb3IgU2hhbm5vbiAqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkweDA5CQkvKiAxOTAgTUh6IGZvciBTaGFubm9uICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgkxCQkvKiBET1MgcGFydGl0aWlvbiBzdXBwb3J0ICovCiAKQEAgLTE0NiwxNyArMTQ2LDE3IEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDQwMDAwMCAvKiA0IE1CICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDMxKzQpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgzMSs0KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyKkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyKkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjaWZkZWYgQ09ORklHX0lORkVSTk8KQEAgLTE3OCwxNCArMTc4LDE0IEBACiAKICNkZWZpbmUgQ09ORklHX1BDTUNJQV9TTE9UX0EKIAotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4MjAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHgyNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweDJDMDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4MjgwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4MjAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweDI0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHgyQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4MjgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQogCiAvKiBpbiBmYWN0LCBNRU0gYW5kIEFUVFJCIGFyZSBzd2FwcGVkIC0gaGFzIHRvIGJlIGNvcnJlY3RlZCBzb29uIGluIGNtZF9wY21jaWEgb3Igc28gKi8KIApAQCAtMjAwLDIyICsyMDAsMjIgQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCiAvKiBpdCdzIHNpbXBsZSwgYWxsIHJlZ3MgYXJlIGluIEkvTyBzcGFjZSAqLwotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX0FUVFJCX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIKIAogLyogT2Zmc2V0IGZvciBkYXRhIEkvTwkJCSovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQJMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkwCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJMAogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NtZGsyNDAwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc21kazI0MDAuaAppbmRleCAxNWFlM2RhLi42Mzg4YmU0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc21kazI0MDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc21kazI0MDAuaApAQCAtNTAsOCArNTAsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC0xMjcsMjYgKzEyNywyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJTTURLMjQwMCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiU01ESzI0MDAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDBjMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBlMDAwMDAwCS8qIDMyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MGMwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBlMDAwMDAwCS8qIDMyIE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDBjZjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDBjZjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKIC8qIHRoZSBQV00gVEltZXIgNCB1c2VzIGEgY291bnRlciBvZiAxNTYyNSBmb3IgMTAgbXMsIHNvIHdlIG5lZWQgKi8KIC8qIGl0IHRvIHdyYXAgMTAwIHRpbWVzICh0b3RhbCAxNTYyNTAwKSB0byBnZXQgMSBzZWMuICovCi0jZGVmaW5lCUNGR19IWgkJCTE1NjI1MDAKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTE1NjI1MDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTY2LDIyICsxNjYsMjIgQEAKICNkZWZpbmUgUEhZU19TRFJBTV8xCQkweDBjMDAwMDAwIC8qIFNEUkFNIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJMHgwMjAwMDAwMCAvKiAzMiBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDY0KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSg2NCkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFByaW1hcnkgRW52aXJvbm1lbnQgU2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHg0MDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAwCiAKIC8qIEFkZHJlc3MgYW5kIHNpemUgb2YgUmVkdW5kYW50IEVudmlyb25tZW50IFNlY3RvcgkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NtZGsyNDEwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc21kazI0MTAuaAppbmRleCBjZDAwOTNlLi5lY2Q5NThiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc21kazI0MTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc21kazI0MTAuaApAQCAtNDcsOCArNDcsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC0xMTAsMjYgKzExMCwyNiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJCSJTTURLMjQxMCAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiU01ESzI0MTAgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDMwMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDMzRjAwMDAwCS8qIDYzIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MzAwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDMzRjAwMDAwCS8qIDYzIE1CIGluIERSQU0JKi8KIAotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmICBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDMzMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDMzMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKIC8qIHRoZSBQV00gVEltZXIgNCB1c2VzIGEgY291bnRlciBvZiAxNTYyNSBmb3IgMTAgbXMsIHNvIHdlIG5lZWQgKi8KIC8qIGl0IHRvIHdyYXAgMTAwIHRpbWVzICh0b3RhbCAxNTYyNTAwKSB0byBnZXQgMSBzZWMuICovCi0jZGVmaW5lCUNGR19IWgkJCTE1NjI1MDAKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTE1NjI1MDAKIAogLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTUxLDcgKzE1MSw3IEBACiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwIC8qIEZsYXNoIEJhbmsgIzEgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJUEhZU19GTEFTSF8xCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KQEAgLTE2MiwyMSArMTYyLDIxIEBACiAjZGVmaW5lIENPTkZJR19BTURfTFY4MDAJMQkvKiB1bmNvbW1lbnQgdGhpcyBpZiB5b3UgaGF2ZSBhIExWODAwIGZsYXNoICovCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwogI2lmZGVmIENPTkZJR19BTURfTFY4MDAKICNkZWZpbmUgUEhZU19GTEFTSF9TSVpFCQkweDAwMTAwMDAwIC8qIDFNQiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDE5KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDBGMDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxOSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MEYwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCiAjZW5kaWYKICNpZmRlZiBDT05GSUdfQU1EX0xWNDAwCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRQkJMHgwMDA4MDAwMCAvKiA1MTJLQiAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJKDExKQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDA3MDAwMCkgLyogYWRkciBvZiBlbnZpcm9ubWVudCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMSkJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDcwMDAwKSAvKiBhZGRyIG9mIGVudmlyb25tZW50ICovCiAjZW5kaWYKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSg1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDUqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSg1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NtZGs2NDAwLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc21kazY0MDAuaAppbmRleCBlYTY1YzBlLi4xNzg0Y2M2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc21kazY0MDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc21kazY0MDAuaApAQCAtNDAsNyArNDAsNyBAQAogI2RlZmluZSBDT05GSUdfUzNDNjRYWAkJMQkvKiBpbiBhIFNBTVNVTkcgUzNDNjRYWCBGYW1pbHkgICovCiAjZGVmaW5lIENPTkZJR19TTURLNjQwMAkJMQkvKiBvbiBhIFNBTVNVTkcgU01ESzY0MDAgQm9hcmQgICovCiAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJMHg1MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJMHg1MDAwMDAwMAogCiAvKiBpbnB1dCBjbG9jayBvZiBQTEw6IFNNREs2NDAwIGhhcyAxMk1IeiBpbnB1dCBjbG9jayAqLwogI2RlZmluZSBDT05GSUdfU1lTX0NMS19GUkVRCTEyMDAwMDAwCkBAIC02OCw4ICs2OCw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMDI0ICogMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTgzLDkgKzgzLDkgQEAKICAqLwogI2RlZmluZSBDT05GSUdfU0VSSUFMMSAgICAgICAgICAxCS8qIHdlIHVzZSBTRVJJQUwgMSBvbiBTTURLNjQwMAkqLwogCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCkBAIC0xMjYsMjIgKzEyNiwyMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlNNREs2NDAwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICovCi0jZGVmaW5lIENGR19QQlNJWkUJCTM4NAkJLyogUHJpbnQgQnVmZmVyIFNpemUgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlNNREs2NDAwICMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRQkJMzg0CQkvKiBQcmludCBCdWZmZXIgU2l6ZSAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCUNGR19TRFJBTV9CQVNFCS8qIG1lbXRlc3Qgd29ya3Mgb24JICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkoQ0ZHX1NEUkFNX0JBU0UgKyAweDdlMDAwMDApIC8qIDEyNk1CIGluIERSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBtZW10ZXN0IHdvcmtzIG9uCSAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAweDdlMDAwMDApIC8qIDEyNk1CIGluIERSQU0gKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlDRkdfU0RSQU1fQkFTRQkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJQ09ORklHX1NZU19TRFJBTV9CQVNFCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YWNrIHNpemVzCkBAIC0xNzEsMzAgKzE3MSwzMCBAQAogCiAvKiBTTURLNjQwMCBoYXMgMiBiYW5rcyBvZiBEUkFNLCBidXQgd2UgdXNlIG9ubHkgb25lIGluIFUtQm9vdCAqLwogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkxCi0jZGVmaW5lIFBIWVNfU0RSQU1fMQkJQ0ZHX1NEUkFNX0JBU0UJLyogU0RSQU0gQmFuayAjMQkqLworI2RlZmluZSBQSFlTX1NEUkFNXzEJCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkvKiBTRFJBTSBCYW5rICMxCSovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMV9TSVpFCTB4MDgwMDAwMDAJLyogMTI4IE1CIGluIEJhbmsgIzEJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCTB4MDAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCiAvKiBBTTI5TFYxNjBCIGhhcyAzNSBzZWN0b3JzLCBBTTI5TFY4MDBCIC0gMTkgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTQwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNDAKIAogI2RlZmluZSBDT05GSUdfQU1EX0xWODAwCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCTEJLyogVXNlIENGSSBwYXJhbWV0ZXJzIChuZWVkZWQ/KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBVc2UgQ0ZJIHBhcmFtZXRlcnMgKG5lZWRlZD8pICovCiAvKiBVc2UgZHJpdmVycy9jZmlfZmxhc2guYywgZXZlbiB0aG91Z2ggdGhlIGZsYXNoIGlzIG5vdCBDRkktY29tcGxpYW50CSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9XSURUSAlGTEFTSF9DRklfMTZCSVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRklfV0lEVEgJRkxBU0hfQ0ZJXzE2QklUCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCi0jZGVmaW5lIENGR19GTEFTSF9MRUdBQ1lfNTEyS3gxNgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0xFR0FDWV81MTJLeDE2CiAKIC8qIHRpbWVvdXQgdmFsdWVzIGFyZSBpbiB0aWNrcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkoNSAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDUgKiBDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoNSAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoNSAqIENPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlCSovCiAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KIApAQCAtMjA1LDY1ICsyMDUsNjUgQEAKICNkZWZpbmUgQ09ORklHX0lERU5UX1NUUklORwkiIGZvciBTTURLNjQwMCIKIAogLyogYmFzZSBhZGRyZXNzIGZvciB1Ym9vdCAqLwotI2RlZmluZSBDRkdfUEhZX1VCT09UX0JBU0UJKENGR19TRFJBTV9CQVNFICsgMHgwN2UwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QSFlfVUJPT1RfQkFTRQkoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgwN2UwMDAwMCkKIC8qIHRvdGFsIG1lbW9yeSBhdmFpbGFibGUgdG8gdWJvb3QgKi8KLSNkZWZpbmUgQ0ZHX1VCT09UX1NJWkUJCSgxMDI0ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19VQk9PVF9TSVpFCQkoMTAyNCAqIDEwMjQpCiAKICNpZmRlZiBDT05GSUdfRU5BQkxFX01NVQotI2RlZmluZSBDRkdfTUFQUEVEX1JBTV9CQVNFCTB4YzAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVBQRURfUkFNX0JBU0UJMHhjMDAwMDAwMAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJIm5hbmQgcmVhZCAweGMwMDE4MDAwIDB4NjAwMDAgMHgxYzAwMDA7IiBcCiAJCQkJImJvb3RtIDB4YzAwMTgwMDAiCiAjZWxzZQotI2RlZmluZSBDRkdfTUFQUEVEX1JBTV9CQVNFCUNGR19TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTUFQUEVEX1JBTV9CQVNFCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJIm5hbmQgcmVhZCAweDUwMDE4MDAwIDB4NjAwMDAgMHgxYzAwMDA7IiBcCiAJCQkJImJvb3RtIDB4NTAwMTgwMDAiCiAjZW5kaWYKIAogLyogTkFORCBVLUJvb3QgbG9hZCBhbmQgc3RhcnQgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfVUJPT1RfQkFTRQkJKENGR19NQVBQRURfUkFNX0JBU0UgKyAweDA3ZTAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1VCT09UX0JBU0UJCShDT05GSUdfU1lTX01BUFBFRF9SQU1fQkFTRSArIDB4MDdlMDAwMDApCiAKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4MDA0MDAwMAogCiAvKiBOQU5EIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX01BWF9OQU5EX0RFVklDRQkxCi0jZGVmaW5lIENGR19OQU5EX0JBU0UJCTB4NzAyMDAwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkFTRQkJMHg3MDIwMDAxMAogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQotI2RlZmluZSBDRkdfUzNDX05BTkRfSFdFQ0MKKyNkZWZpbmUgQ09ORklHX1NZU19TM0NfTkFORF9IV0VDQwogCi0jZGVmaW5lIENGR19OQU5EX1NLSVBfQkFEX0RPVF9JCTEgIC8qICIuaSIgcmVhZCBza2lwcyBiYWQgYmxvY2tzCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX1dQCQkxCi0jZGVmaW5lIENGR19OQU5EX1lBRkZTX1dSSVRFCTEgIC8qIHN1cHBvcnQgeWFmZnMgd3JpdGUJCSAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX0JCVF8yTkRQQUdFCTEgIC8qIGJhZC1ibG9jayBtYXJrZXJzIGluIDFzdCBhbmQgMm5kIHBhZ2VzICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfU0tJUF9CQURfRE9UX0kJMSAgLyogIi5pIiByZWFkIHNraXBzIGJhZCBibG9ja3MJICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1dQCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9ZQUZGU19XUklURQkxICAvKiBzdXBwb3J0IHlhZmZzIHdyaXRlCQkgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfQkJUXzJORFBBR0UJMSAgLyogYmFkLWJsb2NrIG1hcmtlcnMgaW4gMXN0IGFuZCAybmQgcGFnZXMgICovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX0RTVAlDRkdfUEhZX1VCT09UX0JBU0UJLyogTlVCIGxvYWQtYWRkciAgICAgICovCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9TVEFSVAlDRkdfTkFORF9VX0JPT1RfRFNUCS8qIE5VQiBzdGFydC1hZGRyICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVAlDT05GSUdfU1lTX1BIWV9VQk9PVF9CQVNFCS8qIE5VQiBsb2FkLWFkZHIgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NUQVJUCUNPTkZJR19TWVNfTkFORF9VX0JPT1RfRFNUCS8qIE5VQiBzdGFydC1hZGRyICAgICAqLwogCi0jZGVmaW5lIENGR19OQU5EX1VfQk9PVF9PRkZTCSg0ICogMTAyNCkJLyogT2Zmc2V0IHRvIFJBTSBVLUJvb3QgaW1hZ2UgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfVV9CT09UX1NJWkUJKDI1MiAqIDEwMjQpCS8qIFNpemUgb2YgUkFNIFUtQm9vdCBpbWFnZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfT0ZGUwkoNCAqIDEwMjQpCS8qIE9mZnNldCB0byBSQU0gVS1Cb290IGltYWdlICovCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU0laRQkoMjUyICogMTAyNCkJLyogU2l6ZSBvZiBSQU0gVS1Cb290IGltYWdlICAgKi8KIAogLyogTkFORCBjaGlwIHBhZ2Ugc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfUEFHRV9TSVpFCTIwNDgKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRQkyMDQ4CiAvKiBOQU5EIGNoaXAgYmxvY2sgc2l6ZQkJKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkxPQ0tfU0laRQkoMTI4ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUJKDEyOCAqIDEwMjQpCiAvKiBOQU5EIGNoaXAgcGFnZSBwZXIgYmxvY2sgY291bnQgICovCi0jZGVmaW5lIENGR19OQU5EX1BBR0VfQ09VTlQJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1BBR0VfQ09VTlQJNjQKIC8qIExvY2F0aW9uIG9mIHRoZSBiYWQtYmxvY2sgbGFiZWwgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfQkFEX0JMT0NLX1BPUwkwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9CQURfQkxPQ0tfUE9TCTAKIC8qIEV4dHJhIGFkZHJlc3MgY3ljbGUgZm9yID4gMTI4TWlCICovCi0jZGVmaW5lIENGR19OQU5EXzVfQUREUl9DWUNMRQorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfNV9BRERSX0NZQ0xFCiAKIC8qIFNpemUgb2YgdGhlIGJsb2NrIHByb3RlY3RlZCBieSBvbmUgT09CIChTcGFyZSBBcmVhIGluIFNhbXN1bmcgdGVybWlub2xvZ3kpICovCi0jZGVmaW5lIENGR19OQU5EX0VDQ1NJWkUJQ0ZHX05BTkRfUEFHRV9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NTSVpFCUNPTkZJR19TWVNfTkFORF9QQUdFX1NJWkUKIC8qIE51bWJlciBvZiBFQ0MgYnl0ZXMgcGVyIE9PQiAtIFMzQzY0MDAgY2FsY3VsYXRlcyA0IGJ5dGVzIEVDQyBpbiAxLWJpdCBtb2RlICovCi0jZGVmaW5lIENGR19OQU5EX0VDQ0JZVEVTCTQKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTCTQKIC8qIE51bWJlciBvZiBFQ0MtYmxvY2tzIHBlciBOQU5EIHBhZ2UgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfRUNDU1RFUFMJKENGR19OQU5EX1BBR0VfU0laRSAvIENGR19OQU5EX0VDQ1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUwkoQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRSAvIENPTkZJR19TWVNfTkFORF9FQ0NTSVpFKQogLyogU2l6ZSBvZiBhIHNpbmdsZSBPT0IgcmVnaW9uICovCi0jZGVmaW5lIENGR19OQU5EX09PQlNJWkUJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX09PQlNJWkUJNjQKIC8qIE51bWJlciBvZiBFQ0MgYnl0ZXMgcGVyIHBhZ2UgKi8KLSNkZWZpbmUgQ0ZHX05BTkRfRUNDVE9UQUwJKENGR19OQU5EX0VDQ0JZVEVTICogQ0ZHX05BTkRfRUNDU1RFUFMpCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9FQ0NUT1RBTAkoQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTICogQ09ORklHX1NZU19OQU5EX0VDQ1NURVBTKQogLyogRUNDIGJ5dGUgcG9zaXRpb25zICovCi0jZGVmaW5lIENGR19OQU5EX0VDQ1BPUwkJezQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgXAorI2RlZmluZSBDT05GSUdfU1lTX05BTkRfRUNDUE9TCQl7NDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCBcCiAJCQkJIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgXAogCQkJCSA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjN9CiAKQEAgLTI5MCwxMCArMjkwLDEwIEBACiAjaWYgIWRlZmluZWQoQ09ORklHX0VOQUJMRV9NTVUpCiAjZGVmaW5lIENPTkZJR19DTURfVVNCCQkJMQogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCQkxCi0jZGVmaW5lIENGR19VU0JfT0hDSV9SRUdTX0JBU0UJCTB4NzQzMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkJInMzYzY0MDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkzCi0jZGVmaW5lIENGR19VU0JfT0hDSV9DUFVfSU5JVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQkJMHg3NDMwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkJInMzYzY0MDAiCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMworI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCQkxCiAjZGVmaW5lIExJVFRMRUVORElBTgkJCTEJLyogdXNlZCBieSB1c2Jfb2hjaS5jCSovCiAKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zbW1hY280LmggYi9pbmNsdWRlL2NvbmZpZ3Mvc21tYWNvNC5oCmluZGV4IGZkMTNkY2QuLmEzZjI2NzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zbW1hY280LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NtbWFjbzQuaApAQCAtMzcsNyArMzcsNyBAQAogI2RlZmluZSBDT05GSUdfVFFNNTIwMAkJMQkvKiAuLi4gb24gVFFNNTIwMCBtb2R1bGUgKi8KICN1bmRlZiBDT05GSUdfVFFNNTIwMF9SRVYxMDAJCS8qICBkZWZpbmUgZm9yIHJldmlzaW9uIDEwMCBtb2R1bGVzICovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCkBAIC00OSw3ICs0OSw3IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BTQ19DT05TT0xFCTEJLyogY29uc29sZSBpcyBvbiBQU0MxICovCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCS8qIC4uLiBhdCAxMTUyMDAgYnBzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCwgMjMwNDAwIH0KIAogLyogUGFydGl0aW9ucyAqLwogI2RlZmluZSBDT05GSUdfTUFDX1BBUlRJVElPTgpAQCAtNTcsOSArNTcsOSBAQAogI2RlZmluZSBDT05GSUdfSVNPX1BBUlRJVElPTgogCiAvKiBQT1NUIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ09ORklHX1BPU1QJCShDRkdfUE9TVF9NRU1PUlkgICB8IFwKLQkJCQkgQ0ZHX1BPU1RfQ1BVCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9JMkMpCisjZGVmaW5lIENPTkZJR19QT1NUCQkoQ09ORklHX1NZU19QT1NUX01FTU9SWSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfQ1BVCSAgIHwgXAorCQkJCSBDT05GSUdfU1lTX1BPU1RfSTJDKQogCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KQEAgLTEwMSw3ICsxMDEsNyBAQAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBkaXNwbGF5IGltYWdlIHRpbWVzdGFtcHMgKi8KIAogI2lmIChURVhUX0JBU0UgPT0gMHhGQzAwMDAwMCkJCS8qIEJvb3QgbG93ICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQogI2VuZGlmCiAKIC8qCkBAIC0xNDMsMTcgKzE0MywxNyBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI2RlZmluZSBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAKLSNpZiBkZWZpbmVkKENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEspCiAvKgogICogUENJIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uCiAgKgogICogQWN0dWFsbHkgYSBQQ0kgQ2xvY2sgb2YgNjYgTUh6IGlzIG9ubHkgc2V0IChpbiBjcHVfaW5pdC5jKSBpZgotICogQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLIGlzIGRlZmluZWQuIFRoaXMgaXMgYmVjYXVzZSBhIFBDSSBDbG9jaworICogQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSyBpcyBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYSBQQ0kgQ2xvY2sKICAqIG9mIDY2IE1IeiB5ZXQgaGFzbid0IGJlZW4gdGVzdGVkIHdpdGggYSBJUEIgQnVzIENsb2NrIG9mIDY2IE1Iei4KICAqLwotI2RlZmluZSBDRkdfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgkvKiBkZWZpbmUgZm9yIDY2TUh6IHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJQ0xLX0VRVUFMU19JUEJDTEtfRElWMgkvKiBkZWZpbmUgZm9yIDY2TUh6IHNwZWVkICovCiAjZW5kaWYKIAogLyoKQEAgLTE2MSw5ICsxNjEsOSBAQAogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCiAjaWZkZWYgQ09ORklHX1RRTTUyMDBfUkVWMTAwCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkxCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIGZvciByZXYuIDEwMCBib2FyZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgZm9yIHJldi4gMTAwIGJvYXJkICovCiAjZWxzZQotI2RlZmluZSBDRkdfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMiBmb3IgYWxsIG90aGVyIHJldnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyIGZvciBhbGwgb3RoZXIgcmV2cyAqLwogI2VuZGlmCiAKIC8qCkBAIC0xNzIsMTEgKzE3MiwxMSBAQAogICogUGxlYXNlIG5vdGljZSwgdGhhdCB0aGUgcmVzdWx0aW5nIGNsb2NrIGZyZXF1ZW5jeSBjb3VsZCBkaWZmZXIgZnJvbSB0aGUKICAqIGNvbmZpZ3VyZWQgdmFsdWUuIFRoaXMgaXMgYmVjYXVzZSB0aGUgSTJDIGNsb2NrIGlzIGRlcml2ZWQgZnJvbSBzeXN0ZW0KICAqIGNsb2NrIG92ZXIgYSBmcmVxdWVuY3kgZGl2aWRlciB3aXRoIG9ubHkgYSBmZXcgZGl2aWRlciB2YWx1ZXMuIFUtYm9vdAotICogY2FsY3VsYXRlcyB0aGUgYmVzdCBhcHByb3hpbWF0aW9uIGZvciBDRkdfSTJDX1NQRUVELiBIb3dldmVyIHRoZSBjYWxjdWxhdGVkCisgKiBjYWxjdWxhdGVzIHRoZSBiZXN0IGFwcHJveGltYXRpb24gZm9yIENPTkZJR19TWVNfSTJDX1NQRUVELiBIb3dldmVyIHRoZSBjYWxjdWxhdGVkCiAgKiBhcHByb3hpbWF0aW9uIGFsbHdheXMgbGllcyBiZWxvdyB0aGUgY29uZmlndXJlZCB2YWx1ZSwgbmV2ZXIgYWJvdmUuCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKIAogLyoKICAqIEVFUFJPTSBjb25maWd1cmF0aW9uIGZvciBvbmJvYXJkIEVFUFJPTSBNMjRDMzIgKE0yNEM2NCBzaG91bGQgd29yawpAQCAtMTg0LDM0ICsxODQsMzQgQEAKICAqIEVFUFJPTSAoMjRDNjQpIGlzIG9uIHRoZSBzYW1lIEkyQyBhZGRyZXNzIChidXQgb24gb3RoZXIgSTJDIGJ1cyksIHNvIHRoZQogICogc2FtZSBjb25maWd1cmF0aW9uIGNvdWxkIGJlIHVzZWQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1MAkvKiAxMDEwMDAweCAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNQkvKiA9MzIgQnl0ZXMgcGVyIHdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKIAogLyoKICAqIEZsYXNoIGNvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJVEVYVF9CQVNFIC8qIDB4RkMwMDAwMDAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlURVhUX0JBU0UgLyogMHhGQzAwMDAwMCAqLwogCiAvKiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciBpZiBubyBtb2R1bGUgdmFyaWFudCBpcyBzcGV6aWZpZWQgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19CT09UQ1NfU1RBUlQgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSN1bmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkvKiBub3Qgc3VwcG9ydGVkIHlldCBmb3IgQU1EICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfQk9PVENTX1NUQVJUIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQnl0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCS8qIG5vdCBzdXBwb3J0ZWQgeWV0IGZvciBBTUQgKi8KIAotI2lmICFkZWZpbmVkKENGR19MT1dCT09UKQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDA3NjAwMDAgKyAweDAwODAwMDAwKQotI2Vsc2UJLyogQ0ZHX0xPV0JPT1QgKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDAwMDYwMDAwKQotI2VuZGlmCS8qIENGR19MT1dCT09UICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19MT1dCT09UKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwNzYwMDAwICsgMHgwMDgwMDAwMCkKKyNlbHNlCS8qIENPTkZJR19TWVNfTE9XQk9PVCAqLworI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDAwMDYwMDAwKQorI2VuZGlmCS8qIENPTkZJR19TWVNfTE9XQk9PVCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKIAkJCQkJICAgKD0gY2hpcCBzZWxlY3RzKSAqLwotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkyNDAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChpbiBtcykJKi8KIAogLyogRHluYW1pYyBNVEQgcGFydGl0aW9uIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0pGRlMyX0NNRExJTkUKQEAgLTIzNSwzMiArMjM1LDMyIEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIE9OLUNoaXAgU1JBTSB1bnRpbCBSQU0gd2lsbCBiZSBhdmFpbGFibGUgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglNUEM1WFhYX1NSQU0KICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1BPU1RfU0laRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQogI2VuZGlmCiAKIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgzODQgPDwgMTApCS8qIFJlc2VydmUgMzg0IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKgogICogRXRoZXJuZXQgY29uZmlndXJhdGlvbgpAQCAtMjk5LDE5ICsyOTksMTkgQEAKICAqICAgdGVzdHMuCiAgKi8KICNpZiBkZWZpbmVkIChDT05GSUdfTUlOSUZBUCkKLSMgZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg5MTAwMDAwNAorIyBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg5MTAwMDAwNAogI2VsaWYgZGVmaW5lZCAoQ09ORklHX1NUSzUyWFgpCiAjIGlmIGRlZmluZWQgKENPTkZJR19TVEs1MlhYX1JFVjEwMCkKLSMgIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4ODE1MDAwMTQKKyMgIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDgxNTAwMDE0CiAjIGVsc2UgLyogU1RLNTJ4eCBSRVYyMDAgYW5kIGFib3ZlICovCiAjICBpZiBkZWZpbmVkIChDT05GSUdfVFFNNTIwMF9SRVYxMDApCiAjICAgZXJyb3IgVFFNNTIwMCBSRVYxMDAgbm90IHN1cHBvcnRlZCBvbiBTVEs1MlhYIFJFVjIwMCBvciBhYm92ZQogIyAgZWxzZS8qIFRRTTUyMDAgUkVWMjAwIGFuZCBhYm92ZSAqLwotIyAgIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4OTE1MDAwMDQKKyMgICBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg5MTUwMDAwNAogIyAgZW5kaWYKICMgZW5kaWYKICNlbHNlICAvKiBUTVE1MjAwIEluYmV0cmllYm5haG1lLUJvYXJkICovCi0jIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4ODEwMDAwMDQKKyMgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4ODEwMDAwMDQKICNlbmRpZgogCiAvKgpAQCAtMzIyLDMwICszMjIsMzAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKIC8qIEVuYWJsZSBhbiBhbHRlcm5hdGUsIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0ICovCi0jZGVmaW5lIENGR19BTFRfTUVNVEVTVAorI2RlZmluZSBDT05GSUdfU1lTX0FMVF9NRU1URVNUCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKQEAgLTM1NywyNiArMzU3LDI2IEBACiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jaWZkZWYgQ0ZHX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwOERGMzAgLyogZm9yIHBjaV9jbGsgID0gNjYgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NUQVJUCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKKyNpZmRlZiBDT05GSUdfU1lTX1BDSUNMS19FUVVBTFNfSVBCQ0xLX0RJVjIKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19DRkcJCTB4MDAwNERGMzAgLyogZm9yIHBjaV9jbGsgPSAzMyBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NTMF9TVEFSVAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NTMF9TSVpFCQlDRkdfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TVEFSVAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMTEJLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzExCS8qIDEgZGVhZCBjeWNsZSBmb3IgZmxhc2ggYW5kIFNNNTAxICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAjZW5kaWYgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3NvY3JhdGVzLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc29jcmF0ZXMuaAppbmRleCBjNDI1NWYxLi5jNjdkYjhmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc29jcmF0ZXMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc29jcmF0ZXMuaApAQCAtODQsMjAgKzg0LDIwIEBACiAjZGVmaW5lIENPTkZJR19CVEIJCQkvKiB0b2dnbGUgYnJhbmNoIHByZWRpdGlvbgkqLwogI2RlZmluZSBDT05GSUdfQUREUl9TVFJFQU1JTkcJCS8qIHRvZ2dsZSBhZGRyIHN0cmVhbWluZwkqLwogCi0jZGVmaW5lIENGR19JTklUX0RCQ1IgREJDUl9JRE0JCS8qIEVuYWJsZSBEZWJ1ZyBFeGNlcHRpb25zCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQkNSIERCQ1JfSURNCQkvKiBFbmFibGUgRGVidWcgRXhjZXB0aW9ucwkqLwogCi0jdW5kZWYJQ0ZHX0RSQU1fVEVTVAkJCS8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lCSovCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDA0MDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCisjdW5kZWYJQ09ORklHX1NZU19EUkFNX1RFU1QJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwQzAwMDAwCiAKIC8qCiAgKiBCYXNlIGFkZHJlc3NlcyAtLSBOb3RlIHRoZXNlIGFyZSBlZmZlY3RpdmUgYWRkcmVzc2VzIHdoZXJlIHRoZQogICogYWN0dWFsIHJlc291cmNlcyBnZXQgbWFwcGVkIChub3QgcGh5c2ljYWwgYWRkcmVzc2VzKQogICovCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhGRjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVIJCTB4RTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIJKi8KLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfUEhZUwlDRkdfQ0NTUkJBUgkvKiBwaHlzaWNhbCBhZGRyIG9mIENDU1JCQVIgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCUNGR19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDRkdfSU1NUgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweEZGNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVIJCTB4RTAwMDAwMDAJLyogcmVsb2NhdGVkIENDU1JCQVIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SCSovCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjIKQEAgLTEwOCw4ICsxMDgsOCBAQAogI3VuZGVmIENPTkZJR19FQ0NfSU5JVF9WSUFfRERSQ09OVFJPTExFUgkvKiBERFIgY29udHJvbGxlciBvciBETUE/ICovCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQlDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19WRVJZX0JJR19SQU0KIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCkBAIC0xMjIsODAgKzEyMiw4MCBAQAogI2RlZmluZSBDT05GSUdfRERSX0RFRkFVTFRfQ0wJMzAJCS8qIENBUyBsYXRlbmN5IDMJKi8KIAogLyogSGFyZGNvZGVkIHZhbHVlcywgdG8gdXNlIGluc3RlYWQgb2YgU1BEICovCi0jZGVmaW5lIENGR19ERFJfQ1MwX0JORFMJCTB4MDAwMDAwMGYKLSNkZWZpbmUgQ0ZHX0REUl9DUzBfQ09ORklHCQkweDgwMDEwMTAyCi0jZGVmaW5lIENGR19ERFJfVElNSU5HXzAJCTB4MDAyNjA4MDIKLSNkZWZpbmUgQ0ZHX0REUl9USU1JTkdfMQkJMHgzOTM1RDMyMgotI2RlZmluZSBDRkdfRERSX1RJTUlOR18yCQkweDE0OTA0Q0M4Ci0jZGVmaW5lIENGR19ERFJfTU9ERQkJCTB4MDA0ODA0MzIKLSNkZWZpbmUgQ0ZHX0REUl9JTlRFUlZBTAkJMHgwMzBDMDEwMAotI2RlZmluZSBDRkdfRERSX0NPTkZJR18yCQkweDA0NDAwMDAwCi0jZGVmaW5lIENGR19ERFJfQ09ORklHCQkJMHhDMzAwODAwMAotI2RlZmluZSBDRkdfRERSX0NMS19DT05UUk9MCQkweDAzODAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFCQkJMjU2IC8qIGluIE1lZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0JORFMJCTB4MDAwMDAwMGYKKyNkZWZpbmUgQ09ORklHX1NZU19ERFJfQ1MwX0NPTkZJRwkJMHg4MDAxMDEwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMAkJMHgwMDI2MDgwMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMQkJMHgzOTM1RDMyMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9USU1JTkdfMgkJMHgxNDkwNENDOAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9NT0RFCQkJMHgwMDQ4MDQzMgorI2RlZmluZSBDT05GSUdfU1lTX0REUl9JTlRFUlZBTAkJMHgwMzBDMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05GSUdfMgkJMHgwNDQwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0REUl9DT05GSUcJCQkweEMzMDA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfRERSX0NMS19DT05UUk9MCQkweDAzODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fU0laRQkJCTI1NiAvKiBpbiBNZWdzICovCiAKIC8qCiAgKiBGbGFzaCBvbiB0aGUgTG9jYWxCdXMKICAqLwotI2RlZmluZSBDRkdfTEJDX0NBQ0hFX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBjYWNoZWFibGUJICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0NBQ0hFX0JBU0UJMHhmMDAwMDAwMAkvKiBMb2NhbGJ1cyBjYWNoZWFibGUJICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMAkJMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0gxCQkweEZDMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIMSwgQ0ZHX0ZMQVNIMCB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gwCQkweEZFMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0gxCQkweEZDMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0gxLCBDT05GSUdfU1lTX0ZMQVNIMCB9CiAKLSNkZWZpbmUgQ0ZHX0xCQ19GTEFTSF9CQVNFCUNGR19GTEFTSDEJLyogTG9jYWxidXMgZmxhc2ggc3RhcnQJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCUNGR19MQkNfRkxBU0hfQkFTRSAvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19GTEFTSF9CQVNFCUNPTkZJR19TWVNfRkxBU0gxCS8qIExvY2FsYnVzIGZsYXNoIHN0YXJ0CSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJQ09ORklHX1NZU19MQkNfRkxBU0hfQkFTRSAvKiBzdGFydCBvZiBGTEFTSAkqLwogCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCQkweGZlMDAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdAkqLwotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkJMHhmZTAwMDAzMAkvKiAzMk1CIEZsYXNoCQkqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhmYzAwMTAwMQkvKiBwb3J0IHNpemUgMTZiaXQJKi8KLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JCTB4ZmUwMDAwMzAJLyogMzJNQiBGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCQkweGZlMDAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JCTB4ZmUwMDAwMzAJLyogMzJNQiBGbGFzaAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCQkweGZjMDAxMDAxCS8qIHBvcnQgc2l6ZSAxNmJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JCTB4ZmUwMDAwMzAJLyogMzJNQiBGbGFzaAkJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIGZsYXNoIGlzIENGSSBjb21wYXQuCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIGZsYXNoIGlzIENGSSBjb21wYXQuCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJCS8qIG51bWJlciBvZiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UJKi8KLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJNjAwMDAJLyogRmxhc2ggRXJhc2UgVGltZW91dCAobXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkJLyogbnVtYmVyIG9mIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBGbGFzaCBXcml0ZSBUaW1lb3V0IChtcykJKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yCSovCiAKLSNkZWZpbmUgQ0ZHX0xCQ19MQ1JSCQkweDAwMDMwMDA0ICAgIC8qIExCIGNsb2NrIHJhdGlvIHJlZwkqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZwkJKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCQkweDIwMDAwMDAwICAgIC8qIExCIHNkcmFtIHJlZnJlc2ggdGltZXIJKi8KLSNkZWZpbmUgQ0ZHX0xCQ19NUlRQUgkJMHgyMDAwMDAwMCAgICAvKiBMQiByZWZyZXNoIHRpbWVyIHByZXNjLiovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQgICAgLyogTEIgY2xvY2sgcmF0aW8gcmVnCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xCQ1IJCTB4MDAwMDAwMDAgICAgLyogTEIgY29uZmlnIHJlZwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNSVAkJMHgyMDAwMDAwMCAgICAvKiBMQiBzZHJhbSByZWZyZXNoIHRpbWVyCSovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCQkweDIwMDAwMDAwICAgIC8qIExCIHJlZnJlc2ggdGltZXIgcHJlc2MuKi8KIAogI2RlZmluZSBDT05GSUdfTDFfSU5JVF9SQU0KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0xPQ0sJMQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCB1c2VkIGFyZWEgaW4gUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwkxCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkweGU0MDEwMDAwCS8qIEluaXRpYWwgUkFNIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg0MDAwCQkvKiBFbmQgdXNlZCBhcmVhIGluIFJBTQkqLwogCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCS8qIFJlc2VydmUgMjU2a0IgZm9yIE1vbiAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDQgPDwgMjApCS8qIFJlc2VydmUgNCBNQiBmb3IgbWFsbG9jICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NmtCIGZvciBNb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoNCA8PCAyMCkJLyogUmVzZXJ2ZSA0IE1CIGZvciBtYWxsb2MgKi8KIAogLyogRlBHQSBhbmQgTkFORCAqLwotI2RlZmluZSBDRkdfRlBHQV9CQVNFCQkweGMwMDAwMDAwCi0jZGVmaW5lIENGR19GUEdBX1NJWkUJCTB4MDAxMDAwMDAJLyogMSBNQgkJKi8KLSNkZWZpbmUgQ0ZHX0hNSV9CQVNFCQkweGMwMDEwMDAwCi0jZGVmaW5lIENGR19CUjNfUFJFTElNCQkweGMwMDAxODgxCS8qIFVQTUEsIDMyLWJpdCAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkJMHhmZmYwMDAwMAkvKiAxIE1CIAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQkFTRQkJMHhjMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfU0laRQkJMHgwMDEwMDAwMAkvKiAxIE1CCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0hNSV9CQVNFCQkweGMwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkJMHhjMDAwMTg4MQkvKiBVUE1BLCAzMi1iaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNCQkweGZmZjAwMDAwCS8qIDEgTUIgCSovCiAKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRQkJKENGR19GUEdBX0JBU0UgKyAweDcwKQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCShDT05GSUdfU1lTX0ZQR0FfQkFTRSArIDB4NzApCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEKICNkZWZpbmUgTkFORF9NQVhfQ0hJUFMJCTEKICNkZWZpbmUgQ09ORklHX0NNRF9OQU5ECiAKIC8qIExJTUUgR0RDICovCi0jZGVmaW5lIENGR19MSU1FX0JBU0UJCTB4YzgwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xJTUVfU0laRQkJMHgwNDAwMDAwMAkvKiA2NCBNQgkqLwotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkJMHhjODAwMThhMQkvKiBVUE1CLCAzMi1iaXQJKi8KLSNkZWZpbmUgQ0ZHX09SMl9QUkVMSU0JCTB4ZmMwMDAwMDAJLyogNjQgTUIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX0JBU0UJCTB4YzgwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19MSU1FX1NJWkUJCTB4MDQwMDAwMDAJLyogNjQgTUIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweGM4MDAxOGExCS8qIFVQTUIsIDMyLWJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX09SMl9QUkVMSU0JCTB4ZmMwMDAwMDAJLyogNjQgTUIJKi8KIAogI2RlZmluZSBDT05GSUdfVklERU8KICNkZWZpbmUgQ09ORklHX1ZJREVPX01CODYyeHgKQEAgLTIwNSwzMyArMjA1LDMzIEBACiAjZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8KICNkZWZpbmUgVklERU9fRkJfMTZCUFBfUElYRUxfU1dBUAogI2RlZmluZSBDT05GSUdfVkdBX0FTX1NJTkdMRV9ERVZJQ0UKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYKICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgogI2RlZmluZSBDT05GSUdfVklERU9fQk1QX0daSVAKLSNkZWZpbmUgQ0ZHX1ZJREVPX0xPR09fTUFYX1NJWkUJKDIgPDwgMjApCS8qIGRlY29tcHJlc3NlZCBpbWcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19WSURFT19MT0dPX01BWF9TSVpFCSgyIDw8IDIwKQkvKiBkZWNvbXByZXNzZWQgaW1nICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAKICNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgIDEKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSNkZWZpbmUgQ0ZHX05TMTY1NTAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfU0VSSUFMCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQlnZXRfYnVzX2ZyZXEoMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9TRVJJQUwKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkoQ0ZHX0NDU1JCQVIrMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfQ0NTUkJBUisweDQ2MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NTAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMgkoQ09ORklHX1NZU19DQ1NSQkFSKzB4NDYwMCkKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgICAgICAgICAxMTUyMDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLDExNTIwMH0KIAogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCTEJLyogYWRkIGNvbW1hbmQgbGluZSBoaXN0b3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyCQkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKIApAQCAtMjQxLDQ0ICsyNDEsNDQgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkJLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydAkqLwogI3VuZGVmCUNPTkZJR19TT0ZUX0kyQwkJCS8qIEkyQyBiaXQtYmFuZ2VkCQkqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDIxMjQJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSNkZWZpbmUgQ0ZHX0kyQ19PRkZTRVQJCTB4MzAwMAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAyMTI0CS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAjZGVmaW5lIENPTkZJR19JMkNfTVVMVElfQlVTCiAjZGVmaW5lIENPTkZJR19JMkNfQ01EX1RSRUUKLSNkZWZpbmUgQ0ZHX0kyQzJfT0ZGU0VUCQkweDMxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkMyX09GRlNFVAkJMHgzMTAwCiAKIC8qIEkyQyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19SWDgwMjUJCS8qIFVzZSBFcHNvbiByeDgwMjUgcnRjIHZpYSBpMmMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDMyCS8qIGF0IGFkZHJlc3MgMHgzMgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHgzMgkvKiBhdCBhZGRyZXNzIDB4MzIJCSovCiAKIC8qIEkyQyBXODM3ODJHIEhXLU1vbml0b3JpbmcgSUMgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19XODM3ODJHX0FERFIJMHgyOAkvKiBXODM3ODJHIGFkZHJlc3MgCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19XODM3ODJHX0FERFIJMHgyOAkvKiBXODM3ODJHIGFkZHJlc3MgCQkqLwogCiAvKiBJMkMgdGVtcCBzZW5zb3IgKi8KIC8qIFNvY3JhdGVzIHVzZXMgTWF4aW0ncwlEUzc1LCB3aGljaCBpcyBjb21wYXRpYmxlIHdpdGggTE03NSAqLwogI2RlZmluZSBDT05GSUdfRFRUX0xNNzUJCTEKICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXs0fQkJLyogU2Vuc29yIGFkZHJlc3NlcwkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTEyNQotI2RlZmluZSBDRkdfRFRUX0xPV19URU1QCS01NQotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCTEyNQorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9MT1dfVEVNUAktNTUKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CiAKIC8qCiAgKiBHZW5lcmFsIFBDSQogICogTWVtb3J5IHNwYWNlIGlzIG1hcHBlZCAxLTEuCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QSFlTCQkweDgwMDAwMDAwCS8qIDFHIFBDSSBUTEIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUEhZUwkJMHg4MDAwMDAwMAkvKiAxRyBQQ0kgVExCICovCiAKIC8qIFBDSSBpcyBjbG9ja2VkIGJ5IHRoZSBleHRlcm5hbCBzb3VyY2UgYXQgMzMgTUh6ICovCiAjZGVmaW5lIENPTkZJR19QQ0lfQ0xLX0ZSRVEJMzMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9NRU1fUEhZUwlDRkdfUENJMV9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0JCQkqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4RTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwlDRkdfUENJMV9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNk0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0JCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweEUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTZNCQkJKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkKICNkZWZpbmUgQ09ORklHX1BDSV9QTlAJCQkvKiBkbyBwY2kgcGx1Zy1hbmQtcGxheQkJKi8KQEAgLTMxNCwxMyArMzE0LDEzIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAgLyogMTI4SyhvbmUgc2VjdG9yKSBmb3IgZW52CSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX0VOVl9BRERSLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI2RlZmluZQlDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdHMJKi8KIApAQCAtMzYyLDI3ICszNjIsMjcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgyMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0gICAgI2RlZmluZSBDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisgICAgI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSAgICAjZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworICAgICNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZiBTaXplCSovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMW1zIHRpY2tzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWYgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxbXMgdGlja3MJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKQEAgLTQ3Myw5ICs0NzMsOSBAQAogI2RlZmluZSBDT05GSUdfUENJX09IQ0kJCQkxCiAjZGVmaW5lIENPTkZJR19QQ0lfT0hDSV9ERVZOTwkJMyAvKiBOdW1iZXIgaW4gUENJIGxpc3QgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9FSENJX0RFVk5PCQkoQ09ORklHX1BDSV9PSENJX0RFVk5PIC8gMikKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1Ci0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJCSJvaGNpX3BjaSIKLSNkZWZpbmUgQ0ZHX09IQ0lfU1dBUF9SRUdfQUNDRVNTCTEKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkJIm9oY2lfcGNpIgorI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfU1dBUF9SRUdfQUNDRVNTCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JCTEKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCQkxCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy9zb3JjZXJ5LmggYi9pbmNsdWRlL2NvbmZpZ3Mvc29yY2VyeS5oCmluZGV4IDRiYzRhZmIuLjVkYjEzNzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zb3JjZXJ5LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3NvcmNlcnkuaApAQCAtMzUsOCArMzUsOCBAQAogCiAvKiBJbnB1dCBjbG9jayBydW5uaW5nIGF0IDYwTWh6LCByZWFkIEhpZDEgZm9yIHRoZSBDUFUgbXVsdGlwbGllciB0bwogICAgZGV0ZXJtaW5lIHRoZSBDUFUgc3BlZWQuICovCi0jZGVmaW5lIENGR19NUEM4MjIwX0NMS0lOCTYwMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDYwTUh6ICovCi0jZGVmaW5lIENGR19NUEM4MjIwX1NZU1BMTF9WQ09fTVVMVElQTElFUiA4IC8qIFZDTyBtdWx0aXBsaWVyIGNhbid0IGJlIHJlYWQgZnJvbSBhbnkgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM4MjIwX0NMS0lOCTYwMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDYwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDODIyMF9TWVNQTExfVkNPX01VTFRJUExJRVIgOCAvKiBWQ08gbXVsdGlwbGllciBjYW4ndCBiZSByZWFkIGZyb20gYW55IHJlZ2lzdGVyICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkqLwpAQCAtNDcsNyArNDcsNyBAQAogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQyAqLwogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMTE1MjAwCSAgICAvKiAuLi4gYXQgMTE1MjAwIGJwcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAsIDIzMDQwMCB9CiAKIC8qIFBDSSAqLwogI2RlZmluZSBDT05GSUdfUENJICAgICAgICAgICAgICAxCkBAIC0xMzYsMTQgKzEzNiwxNCBAQAogICogSTJDIGNvbmZpZ3VyYXRpb24KICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEKLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTEKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwIC8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTE1NCw1MSArMTU0LDUxIEBACiAgKi8KIAogLyogRmxhc2ggKi8KLSNkZWZpbmUgQ0ZHX0NTMF9CQVNFCQkweGY4MDAKLSNkZWZpbmUgQ0ZHX0NTMF9NQVNLCQkweDA4MDAwMDAwIC8qIDEyOCBNQiAodHdvIGNoaXBzKSAqLwotI2RlZmluZSBDRkdfQ1MwX0NUUkwJCTB4MDAxMDE5YzAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfQkFTRQkJMHhmODAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX01BU0sJCTB4MDgwMDAwMDAgLyogMTI4IE1CICh0d28gY2hpcHMpICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MwX0NUUkwJCTB4MDAxMDE5YzAKIAogLyogTlZNICovCi0jZGVmaW5lIENGR19DUzFfQkFTRQkJMHhmN2U4Ci0jZGVmaW5lIENGR19DUzFfTUFTSwkJMHgwMDA0MDAwMCAvKiAyNTZLICovCi0jZGVmaW5lIENGR19DUzFfQ1RSTAkJMHgwMDEwMTk0MCAvKiA4Yml0IHBvcnQgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTMV9CQVNFCQkweGY3ZTgKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfTUFTSwkJMHgwMDA0MDAwMCAvKiAyNTZLICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NUUkwJCTB4MDAxMDE5NDAgLyogOGJpdCBwb3J0IHNpemUgKi8KIAogLyogQXRsYXMyICsgR2VtaW5pICovCi0jZGVmaW5lIENGR19DUzJfQkFTRQkJMHhmN2U3Ci0jZGVmaW5lIENGR19DUzJfTUFTSwkJMHgwMDAxMDAwMCAvKiA2NEsqLwotI2RlZmluZSBDRkdfQ1MyX0NUUkwJCTB4MDAxMDExYzAgLyogMTZiaXQgcG9ydCBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0JBU0UJCTB4ZjdlNworI2RlZmluZSBDT05GSUdfU1lTX0NTMl9NQVNLCQkweDAwMDEwMDAwIC8qIDY0SyovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX0NUUkwJCTB4MDAxMDExYzAgLyogMTZiaXQgcG9ydCBzaXplICovCiAKIC8qIENBTiBDb250cm9sbGVyICovCi0jZGVmaW5lIENGR19DUzNfQkFTRQkJMHhmN2U2Ci0jZGVmaW5lIENGR19DUzNfTUFTSwkJMHgwMDAxMDAwMCAvKiA2NEsgKi8KLSNkZWZpbmUgQ0ZHX0NTM19DVFJMCQkweDAwMTAyMTQwIC8qIDhCaXQgcG9ydCBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MzX0JBU0UJCTB4ZjdlNgorI2RlZmluZSBDT05GSUdfU1lTX0NTM19NQVNLCQkweDAwMDEwMDAwIC8qIDY0SyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTM19DVFJMCQkweDAwMTAyMTQwIC8qIDhCaXQgcG9ydCBzaXplICovCiAKIC8qIEZvcmVpZ24gaW50ZXJmYWNlICovCi0jZGVmaW5lIENGR19DUzRfQkFTRQkJMHhmN2U1Ci0jZGVmaW5lIENGR19DUzRfTUFTSwkJMHgwMDAxMDAwMCAvKiA2NEsgKi8KLSNkZWZpbmUgQ0ZHX0NTNF9DVFJMCQkweDAwMTAxZGMwIC8qIDE2Yml0IHBvcnQgc2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0NTNF9CQVNFCQkweGY3ZTUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzRfTUFTSwkJMHgwMDAxMDAwMCAvKiA2NEsgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzRfQ1RSTAkJMHgwMDEwMWRjMCAvKiAxNmJpdCBwb3J0IHNpemUgKi8KIAogLyogQ1BMRCAqLwotI2RlZmluZSBDRkdfQ1M1X0JBU0UJCTB4ZjdlNAotI2RlZmluZSBDRkdfQ1M1X01BU0sJCTB4MDAwMTAwMDAgLyogNjRLICovCi0jZGVmaW5lIENGR19DUzVfQ1RSTAkJMHgwMDEwMDBjMCAvKiAxNmJpdCBwb3J0IHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzVfQkFTRQkJMHhmN2U0CisjZGVmaW5lIENPTkZJR19TWVNfQ1M1X01BU0sJCTB4MDAwMTAwMDAgLyogNjRLICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1M1X0NUUkwJCTB4MDAxMDAwYzAgLyogMTZiaXQgcG9ydCBzaXplICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIMF9CQVNFCQkoQ0ZHX0NTMF9CQVNFIDw8IDE2KQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJKENGR19GTEFTSDBfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSDBfQkFTRQkJKENPTkZJR19TWVNfQ1MwX0JBU0UgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJKENPTkZJR19TWVNfRkxBU0gwX0JBU0UpCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCAgXAotCQkJCUNGR19GTEFTSF9CQVNFKzB4MDQwMDAwMDAgfSAvKiB0d28gYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19GTEFTSF9CQVNFLCAgXAorCQkJCUNPTkZJR19TWVNfRkxBU0hfQkFTRSsweDA0MDAwMDAwIH0gLyogdHdvIGJhbmtzICovCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4ODAwMDAwMCAtIDB4NDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4ODAwMDAwMCAtIDB4NDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwICAgICAgICAgICAgICAgICAgICAgICAvKiAxNksgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDT05GSUdfRU5WX0FERFIgKyAweDIwMDAwKQpAQCAtMjIwLDM3ICsyMjAsMzcgQEAKIC8qCiAgKiBNZW1vcnkgbWFwCiAgKi8KLSNkZWZpbmUgQ0ZHX01CQVIJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCShDRkdfTUJBUiArIDB4MjAwMDApCi0jZGVmaW5lIENGR19TUkFNX1NJWkUJCTB4ODAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCShDT05GSUdfU1lTX01CQVIgKyAweDIwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fU0laRQkJMHg4MDAwCiAKIC8qIFVzZSBTUkFNIHVudGlsIFJBTSB3aWxsIGJlIGF2YWlsYWJsZSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkoQ0ZHX01CQVIgKyAweDIwMDAwKQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4ODAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgkoQ09ORklHX1NZU19NQkFSICsgMHgyMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHg4MDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotIyAgIGRlZmluZSBDRkdfUkFNQk9PVAkJMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNpZiAoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPCBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCisjICAgZGVmaW5lIENPTkZJR19TWVNfUkFNQk9PVAkJMQogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvciAgICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKSAvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkgICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJCSg4IDw8IDIwKSAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAgIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyogU0RSQU0gY29uZmlndXJhdGlvbiAoZm9yIFNQRCkgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1RPVEFMX0JBTktTCQkxCi0jZGVmaW5lIENGR19TRFJBTV9TUERfSTJDX0FERFIJCTB4NTAJCS8qIDdiaXQgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NQRF9TSVpFCQkweDEwMAotI2RlZmluZSBDRkdfU0RSQU1fQ0FTX0xBVEVOQ1kJCTUJCS8qIChDTD0yLjUpeDIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9UT1RBTF9CQU5LUwkJMQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NQRF9JMkNfQUREUgkJMHg1MAkJLyogN2JpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NQRF9TSVpFCQkweDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NBU19MQVRFTkNZCQk1CQkvKiAoQ0w9Mi41KXgyICovCiAKIC8qIFNEUkFNIGRyaXZlIHN0cmVuZ3RoIHJlZ2lzdGVyIChmb3IgU1NUTF8yIGNsYXNzIElJKSovCi0jZGVmaW5lIENGR19TRFJBTV9EUklWRV9TVFJFTkdUSAkoKERSSVZFX1NUUkVOR1RIX0hJR0ggPDwgU0RSQU1EU19TQkVfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RSSVZFX1NUUkVOR1RICSgoRFJJVkVfU1RSRU5HVEhfSElHSCA8PCBTRFJBTURTX1NCRV9TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfSElHSCA8PCBTRFJBTURTX1NCQ19TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfSElHSCA8PCBTRFJBTURTX1NCQV9TSElGVCkgfCBcCiAJCQkJCSAoRFJJVkVfU1RSRU5HVEhfSElHSCA8PCBTRFJBTURTX1NCU19TSElGVCkgfCBcCkBAIC0yNjcsMzggKzI2NywzOCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkgICAgLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCSAgICAvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJICAgIC8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMTAyNAkgICAgLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJICAgIC8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkgICAgLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJICAgIC8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUgIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwICAvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMCAgLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAgIC8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMCAgLyogMSAuLi4gMTUgTUIgaW4gRFJBTSAgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDEwMDAwMCAgICAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgxMDAwMDAgICAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCSAgICAvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCSAgICAvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM4MjIwIENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDODIyMCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCTAKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0lOSVQJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQkwCiAKIC8qCi0jZGVmaW5lIENGR19ISUQwX0lOSVQgICAgICAgICAgIEhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMICAgICAgICAgIEhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUICAgICAgICAgICBISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwgICAgICAgICAgSElEMF9JQ0UKICovCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc3BjMTkyMC5oIGIvaW5jbHVkZS9jb25maWdzL3NwYzE5MjAuaAppbmRleCA2NTk0ODQ5Li4xZmUyYTA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc3BjMTkyMC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zcGMxOTIwLmgKQEAgLTQwLDE0ICs0MCwxNCBAQAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTE5MjAwCiAKIC8qIHVzZSBQTEQgQ0xLNCBpbnN0ZWFkIG9mIGJyZyAqLwotI2RlZmluZSBDRkdfU1BDMTkyMF9TTUMxX0NMSzQKKyNkZWZpbmUgQ09ORklHX1NZU19TUEMxOTIwX1NNQzFfQ0xLNAogCiAjZGVmaW5lIENPTkZJR184eHhfT1NDTEsJCTEwMDAwMDAwIC8qIDEwIE1IeiBvc2NpbGxhdG9yIG9uIEVYVENMSyAgKi8KICNkZWZpbmUgQ09ORklHXzh4eF9DUFVDTEtfREVGQVVMVAk1MDAwMDAwMAotI2RlZmluZSBDRkdfOHh4X0NQVUNMS19NSU4JCTQwMDAwMDAwCi0jZGVmaW5lIENGR184eHhfQ1BVQ0xLX01BWAkJMTMzMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NSU4JCTQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfOHh4X0NQVUNMS19NQVgJCTEzMzAwMDAwMAogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCQkweEMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUwkJMHhDMDAwMDAwMAogCiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YKICNkZWZpbmUgQ09ORklHX0xBU1RfU1RBR0VfSU5JVApAQCAtMTA1LDI2ICsxMDUsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4iCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKIAotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFICsgc2l6ZW9mKENGR19QUk9NUFQpICsgMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lCUNGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgwMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgwMDEwMDAwMAogCi0jZGVmaW5lCUNGR19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJICAgICAgICAxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTM1LDQyICsxMzUsNDIgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IEtCIGZvciBtb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBLQiBmb3IgbW9uaXRvcgkqLwogCiAjaWZkZWYgQ09ORklHX0JaSVAyCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMjUwMCA8PCAxMCkJLyogUmVzZXJ2ZSB+Mi41IE1CIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgyNTAwIDw8IDEwKQkvKiBSZXNlcnZlIH4yLjUgTUIgZm9yIG1hbGxvYygpCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIG1hbGxvYygpCSovCiAjZW5kaWYgLyogQ09ORklHX0JaSVAyICovCiAKLSNkZWZpbmUJQ0ZHX0FMTE9DX0RQUkFNCQkxCS8qIHVzZSBhbGxvY2F0aW9uIHJvdXRpbmVzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQUxMT0NfRFBSQU0JCTEJLyogdXNlIGFsbG9jYXRpb24gcm91dGluZXMJKi8KIAogLyoKICAqIEZsYXNoCkBAIC0xNzgsMjggKzE3OCwyOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRmxhc2ggb3JnYW5pc2F0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UgICAgICAgICAgMHhGRTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgICAgICAgICAgMHhGRTAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIgICAgICAgICAgICAgICAgICAgIC8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMSAgICAgICAgICAgICAgIC8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUICAgICAgMTI4ICAgICAgICAgICAgIC8qIE1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAgIDEgICAgICAgICAgICAgICAvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QgICAgICAxMjggICAgICAgICAgICAgLyogTWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAvKiBFbnZpcm9ubWVudCBpcyBpbiBmbGFzaCAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFICAgICAgIDB4NDAwMDAgICAgICAgICAvKiBXZSB1c2Ugb25lIGNvbXBsZXRlIHNlY3RvciAgICovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogI2RlZmluZSBDT05GSUdfRU5WX09WRVJXUklURQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkxNgkvKiBGb3IgYWxsIE1QQzh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogCiAjaWZkZWYgQ09ORklHX0NNRF9EQVRFCiAjIGRlZmluZSBDT05GSUdfUlRDX0RTMzIzMQotIyBkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUiAgICAgIDB4NjgKKyMgZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSICAgICAgMHg2OAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxMCw4ICsyMTAsOCBAQAogI3VuZGVmIENPTkZJR19IQVJEX0kyQyAgICAgICAgICAgICAgICAgLyogSTJDIHdpdGggaGFyZHdhcmUgc3VwcG9ydCAgICAqLwogI2RlZmluZSBDT05GSUdfU09GVF9JMkMgICAgICAgICAgICAgICAgMSAgICAgICAvKiBJMkMgYml0LWJhbmdlZCAgICAgICAgICAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRCAgICAgICAgICA5MzAwMCAgIC8qIDkzIGtIeiBpcyBzdXBwb3NlZCB0byB3b3JrICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRSAgICAgICAgICAweEZFCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVEICAgICAgICAgIDkzMDAwICAgLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRSAgICAgICAgICAweEZFCiAKICNpZmRlZiBDT05GSUdfU09GVF9JMkMKIC8qCkBAIC0yMzksMTAgKzIzOSwxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjUwLDIxICsyNTAsMjEgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUiAgICAgIChTSVVNQ1JfRlJDKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUiAgICAgIChTSVVNQ1JfRlJDKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBJU0NSIC0gUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cyBhbmQgQ29udHJvbAkJMTEtMzEKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMsIEludGVycnVwdCBUaW1lciBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BJU0NSCShQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI3Myw4ICsyNzMsOCBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLS8qICNkZWZpbmUgQ0ZHX1NDQ1IJU0NDUl9UQlMgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorLyogI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJU0NDUl9UQlMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCShTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwKQogCkBAIC0yODMsNyArMjgzLDcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNldCB0byB6ZXJvIHRvIHByZXZlbnQgdGhlIHByb2Nlc3NvciBmcm9tIGVudGVyaW5nIGRlYnVnIG1vZGUKICAqLwotI2RlZmluZSBDRkdfREVSCQkgMAorI2RlZmluZSBDT05GSUdfU1lTX0RFUgkJIDAKIAogCiAvKiBCZWNhdXNlIG9mIHRoZSB3YXkgdGhlIDg2MCBzdGFydHMgdXAgYW5kIGFzc2lnbnMgQ1MwIHRoZSBlbnRpcmUKQEAgLTI5OSw1MSArMjk5LDUxIEBACiAgKi8KIAogLyogQlIwIGFuZCBPUjAgKEZMQVNIKSAqLwotI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ0ZHX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMCAqLworI2RlZmluZSBGTEFTSF9CQVNFMF9QUkVMSU0JQ09ORklHX1NZU19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAgKi8KIAogCiAvKiB1c2VkIHRvIHJlLW1hcCBGTEFTSCBib3RoIHdoZW4gc3RhcnRpbmcgZnJvbSBTUkFNIG9yIEZMQVNIOgogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzZfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKIAogLyoKICAqIFNEUkFNIENTMSBVUE1CCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRV9QUkVMSU0gQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFX1BSRUxJTSBDT05GSUdfU1lTX1NEUkFNX0JBU0UKICNkZWZpbmUgU0RSQU1fTUFYX1NJWkUJMHg0MDAwMDAwIC8qIG1heCA2NCBNQiAqLwogCi0jZGVmaW5lIENGR19QUkVMSU1fT1IxX0FNCTB4RjAwMDAwMDAKLS8qICNkZWZpbmUgQ0ZHX09SMV9USU1JTkcgIE9SX0NTTlRfU0FNL1wqICB8IE9SX0c1TFMgL1xcKiAqXFwvICpcLyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUjFfQU0JMHhGMDAwMDAwMAorLyogI2RlZmluZSBDT05GSUdfU1lTX09SMV9USU1JTkcgIE9SX0NTTlRfU0FNL1wqICB8IE9SX0c1TFMgL1xcKiAqXFwvICpcLyAqLwogI2RlZmluZSBTRFJBTV9USU1JTkcJT1JfU0NZXzBfQ0xLCS8qIFNEUkFNLVRpbWluZyAqLwogCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCShDRkdfUFJFTElNX09SMV9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfRzVMUyB8IFNEUkFNX1RJTUlORykKLSNkZWZpbmUgQ0ZHX0JSMV9QUkVMSU0gICgoQ0ZHX1NEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUIgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SMV9BTSB8IE9SX0NTTlRfU0FNIHwgT1JfRzVMUyB8IFNEUkFNX1RJTUlORykKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNICAoKENPTkZJR19TWVNfU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YpCiAKLS8qICNkZWZpbmUgQ0ZHX09SMV9GSU5BTCAgICgoQ0ZHX09SMV9BTSAmIE9SX0FNX01TSykgfCBDRkdfT1IxX1RJTUlORykgKi8KLS8qICNkZWZpbmUgQ0ZHX0JSMV9GSU5BTCAgICgoQ0ZHX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YpICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfT1IxX0ZJTkFMICAgKChDT05GSUdfU1lTX09SMV9BTSAmIE9SX0FNX01TSykgfCBDT05GSUdfU1lTX09SMV9USU1JTkcpICovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfQlIxX0ZJTkFMICAgKChDT05GSUdfU1lTX1NEUkFNX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQiB8IEJSX1YpICovCiAKLSNkZWZpbmUgQ0ZHX1BUQl9QRVJfQ0xLCSgoNDA5NiAqIDE2ICogMTAwMCkgLyAoNCAqIDY0KSkKLSNkZWZpbmUgQ0ZHX1BUQV9QRVJfQ0xLIDE5NQotI2RlZmluZSBDRkdfTUJNUl9QVEIJMTk1Ci0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWMTYKLSNkZWZpbmUgQ0ZHX01BUgkJMHg4OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQl9QRVJfQ0xLCSgoNDA5NiAqIDE2ICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSyAxOTUKKyNkZWZpbmUgQ09ORklHX1NZU19NQk1SX1BUQgkxOTUKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NQVIJCTB4ODgKIAotI2RlZmluZSBDRkdfTUJNUl84Q09MICAoKENGR19NQk1SX1BUQiA8PCBNQk1SX1BUQl9TSElGVCkgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfTUJNUl84Q09MICAoKENPTkZJR19TWVNfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpIHwgXAogCQkJTUJNUl9BTUJfVFlQRV8wIHwgXAogCQkJTUJNUl9HMENMQl9BMTAgfCBcCiAJCQlNQk1SX0RTQl8xX0NZQ0wgfCBcCkBAIC0zNTEsNyArMzUxLDcgQEAKIAkJCU1CTVJfV0xGQl8xWCB8IFwKIAkJCU1CTVJfVExGQl80WCkgLyogMHgwNDgwNDExNCAqLyAvKiAweDEwODAyMTE0ICovCiAKLSNkZWZpbmUgQ0ZHX01CTVJfOUNPTCAgKChDRkdfTUJNUl9QVEIgPDwgTUJNUl9QVEJfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX01CTVJfOUNPTCAgKChDT05GSUdfU1lTX01CTVJfUFRCIDw8IE1CTVJfUFRCX1NISUZUKSB8IFwKIAkJCU1CTVJfQU1CX1RZUEVfMSB8IFwKIAkJCU1CTVJfRzBDTEJfQTEwIHwgXAogCQkJTUJNUl9EU0JfMV9DWUNMIHwgXApAQCAtMzYzLDI3ICszNjMsMjcgQEAKIC8qCiAgKiBEU1AgSG9zdCBQb3J0IEludGVyZmFjZSBDUzMKICAqLwotI2RlZmluZSBDRkdfU1BDMTkyMF9IUElfQkFTRSAgIDB4OTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUjNfQU0gICAgICAweEY4MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU1BDMTkyMF9IUElfQkFTRSAgIDB4OTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1IzX0FNICAgICAgMHhGODAwMDAwMAogCi0jZGVmaW5lIENGR19PUjMgICAgICAgICAoQ0ZHX1BSRUxJTV9PUjNfQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1IzICAgICAgICAgKENPTkZJR19TWVNfUFJFTElNX09SM19BTSB8IFwKIAkJCQkgICAgICAgT1JfRzVMUyB8IFwKIAkJCQkgICAgICAgT1JfU0NZXzBfQ0xLIHwgXAogCQkJCSAgICAgICBPUl9CSSkKIAotI2RlZmluZSBDRkdfQlIzICgoQ0ZHX1NQQzE5MjBfSFBJX0JBU0UgJiBCUl9CQV9NU0spIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX0JSMyAoKENPTkZJR19TWVNfU1BDMTkyMF9IUElfQkFTRSAmIEJSX0JBX01TSykgfCBcCiAJCQkJCSAgICAgICBCUl9NU19VUE1BIHwgXAogCQkJCQkgICAgICAgQlJfUFNfMTYgfCBcCiAJCQkJCSAgICAgICBCUl9WKQogCi0jZGVmaW5lIENGR19NQU1SIChNQU1SX0dQTF9BNERJUyB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SIChNQU1SX0dQTF9BNERJUyB8IFwKIAkJTUFNUl9STEZBXzVYIHwgXAogCQlNQU1SX1dMRkFfNVgpCiAKICNkZWZpbmUgQ09ORklHX1NQQzE5MjBfSFBJX1RFU1QKIAogI2lmZGVmIENPTkZJR19TUEMxOTIwX0hQSV9URVNUCi0jZGVmaW5lIEhQSV9SRUcoeCkgICAgICAgICAgICAgKCooKHZvbGF0aWxlIHUxNiAqKSAoQ0ZHX1NQQzE5MjBfSFBJX0JBU0UgKyB4KSkpCisjZGVmaW5lIEhQSV9SRUcoeCkgICAgICAgICAgICAgKCooKHZvbGF0aWxlIHUxNiAqKSAoQ09ORklHX1NZU19TUEMxOTIwX0hQSV9CQVNFICsgeCkpKQogI2RlZmluZSBIUElfSFBJQ18xICAgICAgICAgICAgIEhQSV9SRUcoMCkKICNkZWZpbmUgSFBJX0hQSUNfMiAgICAgICAgICAgICBIUElfUkVHKDIpCiAjZGVmaW5lIEhQSV9IUElBXzEgICAgICAgICAgICAgSFBJX1JFRygweDIwMDAwMDgpCkBAIC0zOTcsMzAgKzM5NywzMCBAQAogLyoKICAqIFJhbXRyb24gRk0xOEwwOCBGUkFNIDMyS0Igb24gQ1M0CiAgKi8KLSNkZWZpbmUgQ0ZHX1NQQzE5MjBfRlJBTV9CQVNFCTB4ODAxMDAwMDAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUjRfQU0JMHhmZmZmODAwMAotI2RlZmluZSBDRkdfT1I0CQkoQ0ZHX1BSRUxJTV9PUjRfQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1BDMTkyMF9GUkFNX0JBU0UJMHg4MDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUjRfQU0JMHhmZmZmODAwMAorI2RlZmluZSBDT05GSUdfU1lTX09SNAkJKENPTkZJR19TWVNfUFJFTElNX09SNF9BTSB8IFwKIAkJCQkJT1JfQUNTX0RJVjIgfCBcCiAJCQkJCU9SX0JJIHwgXAogCQkJCQlPUl9TQ1lfNF9DTEsgfCBcCiAJCQkJCU9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX0JSNCAoKENGR19TUEMxOTIwX0ZSQU1fQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19CUjQgKChDT05GSUdfU1lTX1NQQzE5MjBfRlJBTV9CQVNFICYgQlJfQkFfTVNLKSB8IEJSX1BTXzggfCBCUl9WKQogCiAvKgogICogUExEIENTNQogICovCi0jZGVmaW5lIENGR19TUEMxOTIwX1BMRF9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUjVfQU0JMHhmZmZmODAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NQQzE5MjBfUExEX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUjVfQU0JMHhmZmZmODAwMAogCi0jZGVmaW5lIENGR19PUjVfUFJFTElNCQkoQ0ZHX1BSRUxJTV9PUjVfQU0gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfT1I1X1BSRUxJTQkJKENPTkZJR19TWVNfUFJFTElNX09SNV9BTSB8IFwKIAkJCQkJT1JfQ1NOVF9TQU0gfCBcCiAJCQkJCU9SX0FDU19ESVYxIHwgXAogCQkJCQlPUl9CSSB8IFwKIAkJCQkJT1JfU0NZXzBfQ0xLIHwgXAogCQkJCQlPUl9UUkxYKQogCi0jZGVmaW5lIENGR19CUjVfUFJFTElNICgoQ0ZHX1NQQzE5MjBfUExEX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfQlI1X1BSRUxJTSAoKENPTkZJR19TWVNfU1BDMTkyMF9QTERfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc3BpZXZhbC5oIGIvaW5jbHVkZS9jb25maWdzL3NwaWV2YWwuaAppbmRleCBhYjFjNmY0Li4yN2RkYTI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3Mvc3BpZXZhbC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zcGlldmFsLmgKQEAgLTM5LDcgKzM5LDcgQEAKICNkZWZpbmUgQ09ORklHX1NUSzUyWFgJCTEJLyogLi4uIG9uIGEgU1RLNTJYWCBiYXNlIGJvYXJkICovCiAjZGVmaW5lIENPTkZJR19TVEs1MlhYX1JFVjEwMAkxCS8qICBkZWZpbmUgZm9yIHJldmlzaW9uIDEwMCBiYXNlYm9hcmRzICovCiAKLSNkZWZpbmUgQ0ZHX01QQzVYWFhfQ0xLSU4JMzMwMDAwMDAgLyogLi4uIHJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMCAvKiAuLi4gcnVubmluZyBhdCAzMy4wMDAwMDBNSHogKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNIICAqLwogI2RlZmluZSBCT09URkxBR19XQVJNCQkweDAyCS8qIFNvZnR3YXJlIHJlYm9vdAkgICAgICovCkBAIC01MSwxMyArNTEsMTMgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJNgkvKiBjb25zb2xlIGlzIG9uIFBTQzYgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAjaWZkZWYgQ09ORklHX1NUSzUyWFgKICN1bmRlZiBDT05GSUdfUFMyS0JECQkJLyogQVQtUFMvMiBLZXlib2FyZAkJKi8KICNkZWZpbmUgQ09ORklHX1BTMk1VTFQJCQkvKiAuLiBvbiBQUy8yIE11bHRpcGxleGVyCSovCiAjZGVmaW5lIENPTkZJR19QUzJTRVJJQUwJNgkvKiAuLiBvbiBQU0M2CQkJKi8KLSNkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENGR19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCisjZGVmaW5lIENPTkZJR19QUzJNVUxUX0RFTEFZCShDT05GSUdfU1lTX0haLzIpCS8qIEluaXRpYWwgZGVsYXkJKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgogI2VuZGlmIC8qIENPTkZJR19TVEs1MlhYICovCiAKQEAgLTgxLDcgKzgxLDcgQEAKIAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KICNkZWZpbmUgQ09ORklHX05TODM4MlgJCTEKICNlbmRpZgkvKiBDT05GSUdfU1RLNTJYWCAqLwogCkBAIC05OCw3ICs5OCw3IEBACiAjZGVmaW5lIENPTkZJR19DT05TT0xFX0VYVFJBX0lORk8KICNkZWZpbmUgQ09ORklHX1ZJREVPX1NXX0NVUlNPUgogI2RlZmluZSBDT05GSUdfU1BMQVNIX1NDUkVFTgotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0lTX0lOX0VOVgogI2VuZGlmCiAKIC8qIFBhcnRpdGlvbnMgKi8KQEAgLTExMyw5ICsxMTMsOSBAQAogI2VuZGlmCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0kyQykKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9JMkMpCiAKICNpZmRlZiBDT05GSUdfUE9TVAogLyogcHJlc2VydmUgc3BhY2UgZm9yIHRoZSBwb3N0X3dvcmQgYXQgZW5kIG9mIG9uLWNoaXAgU1JBTSAqLwpAQCAtMTc3LDcgKzE3Nyw3IEBACiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJCS8qIGRpc3BsYXkgaW1hZ2UgdGltZXN0YW1wcyAqLwogCiAjaWYgKFRFWFRfQkFTRSA9PSAweEZDMDAwMDAwKQkJLyogQm9vdCBsb3cgKi8KLSMgICBkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKKyMgICBkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UCQkxCiAjZW5kaWYKIAogLyoKQEAgLTIxOSwxNyArMjE5LDE3IEBACiAvKgogICogSVBCIEJ1cyBjbG9ja2luZyBjb25maWd1cmF0aW9uLgogICovCi0jZGVmaW5lIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJLyogZGVmaW5lIGZvciAxMzNNSHogc3BlZWQgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0lQQkNMS19FUVVBTFNfWExCQ0xLKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSykKIC8qCiAgKiBQQ0kgQnVzIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24KICAqCiAgKiBBY3R1YWxseSBhIFBDSSBDbG9jayBvZiA2NiBNSHogaXMgb25seSBzZXQgKGluIGNwdV9pbml0LmMpIGlmCi0gKiBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsgaXMgZGVmaW5lZC4gVGhpcyBpcyBiZWNhdXNlIGEgUENJIENsb2NrCisgKiBDT05GSUdfU1lTX0lQQkNMS19FUVVBTFNfWExCQ0xLIGlzIGRlZmluZWQuIFRoaXMgaXMgYmVjYXVzZSBhIFBDSSBDbG9jawogICogb2YgNjYgTUh6IHlldCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBhIElQQiBCdXMgQ2xvY2sgb2YgNjYgTUh6LgogICovCi0jZGVmaW5lIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCS8qIGRlZmluZSBmb3IgNjZNSHogc3BlZWQgKi8KICNlbmRpZgogCiAvKgpAQCAtMjM3LDkgKzIzNyw5IEBACiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KICNpZmRlZiBDT05GSUdfVFFNNTIwMF9SRVYxMDAKLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTEJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgZm9yIHJldi4gMTAwIGJvYXJkICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMQkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBmb3IgcmV2LiAxMDAgYm9hcmQgKi8KICNlbHNlCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMyIGZvciBhbGwgb3RoZXIgcmV2cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzIgZm9yIGFsbCBvdGhlciByZXZzICovCiAjZW5kaWYKIAogLyoKQEAgLTI0OCwxMSArMjQ4LDExIEBACiAgKiBQbGVhc2Ugbm90aWNlLCB0aGF0IHRoZSByZXN1bHRpbmcgY2xvY2sgZnJlcXVlbmN5IGNvdWxkIGRpZmZlciBmcm9tIHRoZQogICogY29uZmlndXJlZCB2YWx1ZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSBJMkMgY2xvY2sgaXMgZGVyaXZlZCBmcm9tIHN5c3RlbQogICogY2xvY2sgb3ZlciBhIGZyZXF1ZW5jeSBkaXZpZGVyIHdpdGggb25seSBhIGZldyBkaXZpZGVyIHZhbHVlcy4gVS1ib290Ci0gKiBjYWxjdWxhdGVzIHRoZSBiZXN0IGFwcHJveGltYXRpb24gZm9yIENGR19JMkNfU1BFRUQuIEhvd2V2ZXIgdGhlIGNhbGN1bGF0ZWQKKyAqIGNhbGN1bGF0ZXMgdGhlIGJlc3QgYXBwcm94aW1hdGlvbiBmb3IgQ09ORklHX1NZU19JMkNfU1BFRUQuIEhvd2V2ZXIgdGhlIGNhbGN1bGF0ZWQKICAqIGFwcHJveGltYXRpb24gYWxsd2F5cyBsaWVzIGJlbG93IHRoZSBjb25maWd1cmVkIHZhbHVlLCBuZXZlciBhYm92ZS4KICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLwotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkweDdGCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQkxMDAwMDAgLyogMTAwIGtIeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgogCiAvKgogICogRUVQUk9NIGNvbmZpZ3VyYXRpb24gZm9yIG9uYm9hcmQgRUVQUk9NIE0yNEMzMiAoTTI0QzY0IHNob3VsZCB3b3JrCkBAIC0yNjAsNDkgKzI2MCw0OSBAQAogICogRUVQUk9NICgyNEM2NCkgaXMgb24gdGhlIHNhbWUgSTJDIGFkZHJlc3MgKGJ1dCBvbiBvdGhlciBJMkMgYnVzKSwgc28gdGhlCiAgKiBzYW1lIGNvbmZpZ3VyYXRpb24gY291bGQgYmUgdXNlZC4KICAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUwCS8qIDEwMTAwMDB4ICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZSAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMjAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkyCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkyMAogCiAvKgogICogSFctTW9uaXRvciBjb25maWd1cmF0aW9uIG9uIE1pbmktRkFQCiAgKi8KICNpZiBkZWZpbmVkIChDT05GSUdfTUlOSUZBUCkKLSNkZWZpbmUgQ0ZHX0kyQ19IV01PTl9BRERSCQkweDJDCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0hXTU9OX0FERFIJCTB4MkMKICNlbmRpZgogCiAvKiBMaXN0IG9mIEkyQyBhZGRyZXNzZXMgdG8gYmUgdmVyaWZpZWQgYnkgUE9TVCAqLwogI2lmIGRlZmluZWQgKENPTkZJR19NSU5JRkFQKQogI3VuZGVmIEkyQ19BRERSX0xJU1QKLSNkZWZpbmUgSTJDX0FERFJfTElTVAl7CUNGR19JMkNfRUVQUk9NX0FERFIsCVwKLQkJCQlDRkdfSTJDX0hXTU9OX0FERFIsCVwKLQkJCQlDRkdfSTJDX1NMQVZFIH0KKyNkZWZpbmUgSTJDX0FERFJfTElTVAl7CUNPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSLAlcCisJCQkJQ09ORklHX1NZU19JMkNfSFdNT05fQUREUiwJXAorCQkJCUNPTkZJR19TWVNfSTJDX1NMQVZFIH0KICNlbmRpZgogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlURVhUX0JBU0UgLyogMHhGQzAwMDAwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVRFWFRfQkFTRSAvKiAweEZDMDAwMDAwICovCiAKIC8qIHVzZSBDRkkgZmxhc2ggZHJpdmVyIGlmIG5vIG1vZHVsZSB2YXJpYW50IGlzIHNwZXppZmllZCAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJLyogVXNlIHRoZSBjb21tb24gZHJpdmVyICovCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0JPT1RDU19TVEFSVCB9Ci0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCi0jZGVmaW5lIENGR19GTEFTSF9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CeXRlICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwotI3VuZGVmIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCS8qIG5vdCBzdXBwb3J0ZWQgeWV0IGZvciBBTUQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUCXsgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDA0MDAwMDAwIC8qIDY0IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogbm90IHN1cHBvcnRlZCB5ZXQgZm9yIEFNRCAqLwogCi0jaWYgIWRlZmluZWQoQ0ZHX0xPV0JPT1QpCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDc2MDAwMCArIDB4MDA4MDAwMDApCi0jZWxzZQkvKiBDRkdfTE9XQk9PVCAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwNjAwMDApCi0jZW5kaWYJLyogQ0ZHX0xPV0JPT1QgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW0gb2YgZmxhc2ggYmFua3MKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0xPV0JPT1QpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDA3NjAwMDAgKyAweDAwODAwMDAwKQorI2Vsc2UJLyogQ09ORklHX1NZU19MT1dCT09UICovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwNjAwMDApCisjZW5kaWYJLyogQ09ORklHX1NZU19MT1dCT09UICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwogCQkJCQkgICAoPSBjaGlwIHNlbGVjdHMpICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLwogCiAKIC8qCkBAIC0zMTcsMzIgKzMxNywzMiBAQAogLyoKICAqIE1lbW9yeSBtYXAKICAqLwotI2RlZmluZSBDRkdfTUJBUgkJMHhGMDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQkFSCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RFRkFVTFRfTUJBUgkweDgwMDAwMDAwCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAzODQga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMzg0IDw8IDEwKQkvKiBSZXNlcnZlIDM4NCBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTM4MSwxOSArMzgxLDE5IEBACiAgKiAgIHRlc3RzLgogICovCiAjaWYgZGVmaW5lZCAoQ09ORklHX01JTklGQVApCi0jIGRlZmluZSBDRkdfR1BTX1BPUlRfQ09ORklHCTB4OTEwMDAwMDQKKyMgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OTEwMDAwMDQKICNlbGlmIGRlZmluZWQgKENPTkZJR19TVEs1MlhYKQogIyBpZiBkZWZpbmVkIChDT05GSUdfU1RLNTJYWF9SRVYxMDApCi0jICBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDgxNTAwMDE0CisjICBkZWZpbmUgQ09ORklHX1NZU19HUFNfUE9SVF9DT05GSUcJMHg4MTUwMDAxNAogIyBlbHNlIC8qIFNUSzUyeHggUkVWMjAwIGFuZCBhYm92ZSAqLwogIyAgaWYgZGVmaW5lZCAoQ09ORklHX1RRTTUyMDBfUkVWMTAwKQogIyAgIGVycm9yIFRRTTUyMDAgUkVWMTAwIG5vdCBzdXBwb3J0ZWQgb24gU1RLNTJYWCBSRVYyMDAgb3IgYWJvdmUKICMgIGVsc2UvKiBUUU01MjAwIFJFVjIwMCBhbmQgYWJvdmUgKi8KLSMgICBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDkxNTAwMDA0CisjICAgZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OTE1MDAwMDQKICMgIGVuZGlmCiAjIGVuZGlmCiAjZWxzZSAgLyogVE1RNTIwMCBJbmJldHJpZWJuYWhtZS1Cb2FyZCAqLwotIyBkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDgxMDAwMDA0CisjIGRlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDgxMDAwMDA0CiAjZW5kaWYKIAogLyoKQEAgLTQwNCwzMCArNDA0LDMwIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCiAvKiBFbmFibGUgYW4gYWx0ZXJuYXRlLCBtb3JlIGV4dGVuc2l2ZSBtZW1vcnkgdGVzdCAqLwotI2RlZmluZSBDRkdfQUxUX01FTVRFU1QKKyNkZWZpbmUgQ09ORklHX1NZU19BTFRfTUVNVEVTVAogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDAxMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBmMDAwMDAJLyogMSAuLi4gMTUgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCiAKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jICBkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjICBkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNQkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZSAqLwogI2VuZGlmCiAKIC8qCkBAIC00MzksMjIgKzQzOSwyMiBAQAogICogVmFyaW91cyBsb3ctbGV2ZWwgc2V0dGluZ3MKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIENGR19ISUQwX0lOSVQJCUhJRDBfSUNFIHwgSElEMF9JQ0ZJCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQlISUQwX0lDRQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKKyNkZWZpbmUgQ09ORklHX1NZU19ISUQwX0ZJTkFMCQlISUQwX0lDRQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJMAotI2RlZmluZSBDRkdfSElEMF9GSU5BTAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfSU5JVAkJMAorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCTAKICNlbmRpZgogCi0jZGVmaW5lIENGR19CT09UQ1NfU1RBUlQJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TSVpFCQlDRkdfRkxBU0hfU0laRQotI2lmZGVmIENGR19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDhERjMwIC8qIGZvciBwY2lfY2xrICA9IDY2IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19TVEFSVAlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU0laRQkJQ09ORklHX1NZU19GTEFTSF9TSVpFCisjaWZkZWYgQ09ORklHX1NZU19QQ0lDTEtfRVFVQUxTX0lQQkNMS19ESVYyCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA4REYzMCAvKiBmb3IgcGNpX2NsayAgPSA2NiBNSHogKi8KICNlbHNlCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDRERjMwIC8qIGZvciBwY2lfY2xrID0gMzMgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX0NGRwkJMHgwMDA0REYzMCAvKiBmb3IgcGNpX2NsayA9IDMzIE1IeiAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogI2RlZmluZSBDT05GSUdfTEFTVF9TVEFHRV9JTklUCiAKQEAgLTQ2MiwyNCArNDYyLDI0IEBACiAgKiBTUkFNIC0gRG8gbm90IG1hcCBiZWxvdyAyIEdCIGluIGFkZHJlc3Mgc3BhY2UsIGJlY2F1c2UgdGhpcyBhcmVhIGlzIHVzZWQKICAqIGZvciBTRFJBTSBhdXRvc2l6aW5nLgogICovCi0jZGVmaW5lIENGR19DUzJfU1RBUlQJCTB4RTUwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTMl9TSVpFCQkweDEwMDAwMAkvKiAxIE1CeXRlICovCi0jZGVmaW5lIENGR19DUzJfQ0ZHCQkweDAwMDREOTMwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NUQVJUCQkweEU1MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MyX1NJWkUJCTB4MTAwMDAwCS8qIDEgTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DUzJfQ0ZHCQkweDAwMDREOTMwCiAKIC8qCiAgKiBHcmFmaWMgY29udHJvbGxlciAtIERvIG5vdCBtYXAgYmVsb3cgMiBHQiBpbiBhZGRyZXNzIHNwYWNlLCBiZWNhdXNlIHRoaXMKICAqIGFyZWEgaXMgdXNlZCBmb3IgU0RSQU0gYXV0b3NpemluZy4KICAqLwogI2RlZmluZSBTTTUwMV9GQl9CQVNFCQkweEUwMDAwMDAwCi0jZGVmaW5lIENGR19DUzFfU1RBUlQJCShTTTUwMV9GQl9CQVNFKQotI2RlZmluZSBDRkdfQ1MxX1NJWkUJCTB4NDAwMDAwMAkvKiA2NCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHg4RjQ4RkY3MAotI2RlZmluZSBTTTUwMV9NTUlPX0JBU0UJCUNGR19DUzFfU1RBUlQgKyAweDAzRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX1NUQVJUCQkoU001MDFfRkJfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHg0MDAwMDAwCS8qIDY0IE1CeXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1MxX0NGRwkJMHg4RjQ4RkY3MAorI2RlZmluZSBTTTUwMV9NTUlPX0JBU0UJCUNPTkZJR19TWVNfQ1MxX1NUQVJUICsgMHgwM0UwMDAwMAogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMTEJLyogMSBkZWFkIGN5Y2xlIGZvciBmbGFzaCBhbmQgU001MDEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzExCS8qIDEgZGVhZCBjeWNsZSBmb3IgZmxhc2ggYW5kIFNNNTAxICovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHhmZjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBVU0Igc3R1ZmYKQEAgLTUwMSwyMyArNTAxLDIzIEBACiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkCSovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkyCS8qIG1heC4gMiBkcml2ZXMgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycwkJCQkJCSAgICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9TVFJJREUJCTQKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFCQk0CiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc3R4Z3AzLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc3R4Z3AzLmgKaW5kZXggZTA2MjU2ZC4uMjE4OGU1NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3N0eGdwMy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zdHhncDMuaApAQCAtNjgsNTEgKzY4LDUxIEBACiAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRiAgIDEgICAgICAgIC8qIENhbGwgYm9hcmRfcHJlX2luaXQgICAgICAqLwogCi0jdW5kZWYgIENGR19EUkFNX1RFU1QgICAgICAgICAgICAgICAgICAgICAgIC8qIG1lbW9yeSB0ZXN0LCB0YWtlcyB0aW1lICAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgICAgICAweDAwMjAwMDAwICAvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQgICAgICAgICAweDAwNDAwMDAwCisjdW5kZWYgIENPTkZJR19TWVNfRFJBTV9URVNUICAgICAgICAgICAgICAgICAgICAgICAvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgIDB4MDAyMDAwMDAgIC8qIG1lbXRlc3QgcmVnaW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweDAwNDAwMDAwCiAKIAogLyogTG9jYWxidXMgU0RSQU0gaXMgYW4gb3B0aW9uLCBub3QgYWxsIGJvYXJkcyBoYXZlIGl0LgogICogVGhpcyBhZGRyZXNzLCBob3dldmVyLCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSBhIDI1Nk0gbG9jYWwgYnVzCiAgKiB3aW5kb3cgdGhhdCBpbmNsdWRlcyB0aGUgQ29uZmlnIGxhdGNoIGJlbG93LgogICovCi0jZGVmaW5lIENGR19MQkNfU0RSQU1fQkFTRSAgICAgIDB4ZjAwMDAwMDAgICAgICAvKiBMb2NhbGJ1cyBTRFJBTSAqLwotI2RlZmluZSBDRkdfTEJDX1NEUkFNX1NJWkUJMjU2CQkvKiBMQkMgU0RSQU0gaXMgNjRNQgkqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19TRFJBTV9CQVNFICAgICAgMHhmMDAwMDAwMCAgICAgIC8qIExvY2FsYnVzIFNEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX1NEUkFNX1NJWkUJMjU2CQkvKiBMQkMgU0RSQU0gaXMgNjRNQgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAweGZmMDAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggMTZNICAgICovCi0jZGVmaW5lIENGR19CUjBfUFJFTElNICAgICAgICAweGZmMDAxODAxICAgICAgLyogcG9ydCBzaXplIDMyYml0ICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAweGZmMDAwMDAwICAgICAgLyogc3RhcnQgb2YgRkxBU0ggMTZNICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTSAgICAgICAgMHhmZjAwMTgwMSAgICAgIC8qIHBvcnQgc2l6ZSAzMmJpdCAgICAgICovCiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0gICAgICAgICAgMHhmZjAwMGZmNyAgICAgIC8qIDE2IE1CIEZsYXNoICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcwkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTM2CQkvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLwotI3VuZGVmCUNGR19GTEFTSF9DSEVDS1NVTQotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTSAgICAgICAgICAweGZmMDAwZmY3ICAgICAgLyogMTYgTUIgRmxhc2ggICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG51bWJlciBvZiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEzNgkJLyogc2VjdG9ycyBwZXIgZGV2aWNlICAgKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAk2MDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCiAvKiBUaGUgY29uZmlndXJhdGlvbiBsYXRjaCBpcyBDaGlwIFNlbGVjdCAxLgogICogSXQncyBhbiA4LWJpdCBsYXRjaCBpbiB0aGUgbG93ZXIgOCBiaXRzIG9mIHRoZSB3b3JkLgogICovCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCQkweGZjMDAxODAxCS8qIDMyLWJpdCBwb3J0ICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCQkweGZmZmYwZmY3ICAgICAgLyogNjRLIGlzIGVub3VnaCAqLwotI2RlZmluZSBDRkdfTEJDX0xDTERFVlNfQkFTRQkweGZjMDAwMDAwCS8qIEJhc2Ugb2YgbG9jYWxidXMgZGV2aWNlcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4ZmMwMDE4MDEJLyogMzItYml0IHBvcnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweGZmZmYwZmY3ICAgICAgLyogNjRLIGlzIGVub3VnaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MQ0xERVZTX0JBU0UJMHhmYzAwMDAwMAkvKiBCYXNlIG9mIGxvY2FsYnVzIGRldmljZXMgKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yCSovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmICBDRkdfUkFNQk9PVAorI3VuZGVmICBDT05GSUdfU1lTX1JBTUJPT1QKICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1JBTUJPT1QKLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweDQwMDAwMDAwCS8qIENDU1JCQVIgYnkgQkRJIGNmZwkqLworI2lmZGVmIENPTkZJR19TWVNfUkFNQk9PVAorI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweDQwMDAwMDAwCS8qIENDU1JCQVIgYnkgQkRJIGNmZwkqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfREVGQVVMVAkweGZmNzAwMDAwCS8qIENDU1JCQVIgRGVmYXVsdAkqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DQ1NSQkFSICAgICAgICAgICAgIDB4ZmRmMDAwMDAgICAgICAvKiByZWxvY2F0ZWQgQ0NTUkJBUiAgICAqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUiAgICAgICAgICAgICAweGZkZjAwMDAwICAgICAgLyogcmVsb2NhdGVkIENDU1JCQVIgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVMJQ09ORklHX1NZU19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCUNPTkZJR19TWVNfQ0NTUkJBUgkvKiBQUUlJIHVzZXMgQ09ORklHX1NZU19JTU1SCSovCiAKIC8qIEREUiBTZXR1cCAqLwogI2RlZmluZSBDT05GSUdfRlNMX0REUjEKQEAgLTEyNiw4ICsxMjYsOCBAQAogCiAjZGVmaW5lIENPTkZJR19NRU1fSU5JVF9WQUxVRQkJMHhEZWFkQmVlZgogCi0jZGVmaW5lIENGR19ERFJfU0RSQU1fQkFTRQkweDAwMDAwMDAwCS8qIEREUiBpcyBzeXN0ZW0gbWVtb3J5Ki8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCUNGR19ERFJfU0RSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCUNPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UKIAogI2RlZmluZSBDT05GSUdfTlVNX0REUl9DT05UUk9MTEVSUwkxCiAjZGVmaW5lIENPTkZJR19ESU1NX1NMT1RTX1BFUl9DVExSCTEKQEAgLTEzOSwyOSArMTM5LDI5IEBACiAjdW5kZWYgQ09ORklHX0NMT0NLU19JTl9NSFoKIAogLyogbG9jYWwgYnVzIGRlZmluaXRpb25zICovCi0jZGVmaW5lIENGR19CUjJfUFJFTElNCQkweGY4MDAxODYxCS8qIDY0TUIgbG9jYWxidXMgU0RSQU0gICovCi0jZGVmaW5lIENGR19PUjJfUFJFTElNCQkweGZjMDA2OTAxCi0jZGVmaW5lIENGR19MQkNfTENSUgkJMHgwMDAzMDAwNAkvKiBsb2NhbCBidXMgZnJlcQkqLwotI2RlZmluZSBDRkdfTEJDX0xCQ1IJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19MU1JUCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTVJUUFIJCTB4MjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8xCQkweDI4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMgkJMHgwODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzMJCTB4MDg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl80CQkweDE4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNQkJMHg0MDYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0JCTB4ZjgwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZjMDA2OTAxCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQJLyogbG9jYWwgYnVzIGZyZXEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzEJCTB4Mjg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMgkJMHgwODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zCQkweDA4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzQJCTB4MTg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNQkJMHg0MDYxYjcyMwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSICAgICAgIDB4NjAwMDAwMDAgICAgICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSICAgICAgIDB4NjAwMDAwMDAgICAgICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KSAgICAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkgICAgLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkgICAgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KSAgICAvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX09OX1NDQwkJLyogZGVmaW5lIGlmIGNvbnNvbGUgb24gU0NDICovCkBAIC0xNzAsMTMgKzE3MCwxMyBAQAogCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJMzg0MDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgIFwKKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCAxMTUyMDB9CiAKIC8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2lmZGVmICBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyICI+ICIKICNlbmRpZgogCiAvKgpAQCAtMTg1LDMwICsxODUsMzAgQEAKICNkZWZpbmUgQ09ORklHX0ZTTF9JMkMJCS8qIFVzZSBGU0wgY29tbW9uIEkyQyBkcml2ZXIgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKICNpZiAwCi0jZGVmaW5lIENGR19JMkNfTk9QUk9CRVMgICAgICAgIHsweDAwfSAgLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMgICAgICAgIHsweDAwfSAgLyogRG9uJ3QgcHJvYmUgdGhlc2UgYWRkcnMgKi8KICNlbHNlCiAvKiBJIGRpZCB0aGUgJ2lmIDAnIHNvIHdlIGNvdWxkIGtlZXAgdGhlIHN5bnRheCBhYm92ZSBpZiBldmVyIG5lZWRlZC4gKi8KLSN1bmRlZiBDRkdfSTJDX05PUFJPQkVTCisjdW5kZWYgQ09ORklHX1NZU19JMkNfTk9QUk9CRVMKICNlbmRpZgotI2RlZmluZSBDRkdfSTJDX09GRlNFVAkJMHgzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX09GRlNFVAkJMHgzMDAwCiAKIC8qIFJhcGRJTyBNYXAgY29uZmlndXJhdGlvbiwgbWFwcGVkIDE6MS4KICovCi0jZGVmaW5lIENGR19SSU9fTUVNX0JBU0UJMHhjMDAwMDAwMAotI2RlZmluZSBDRkdfUklPX01FTV9QSFlTCUNGR19SSU9fTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1JJT19NRU1fU0laRQkweDIwMDAwMDAwMAkvKiA1MTIgTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JJT19NRU1fQkFTRQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9QSFlTCUNPTkZJR19TWVNfUklPX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUklPX01FTV9TSVpFCTB4MjAwMDAwMDAwCS8qIDUxMiBNICovCiAKIC8qIFN0YW5kYXJkIDg1NjAgUENJIGFkZHJlc3NpbmcsIG1hcHBlZCAxOjEuCiAqLwotI2RlZmluZSBDRkdfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kxX01FTV9QSFlTCUNGR19QQ0kxX01FTV9CQVNFCi0jZGVmaW5lIENGR19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLwotI2RlZmluZSBDRkdfUENJMV9JT19CQVNFCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fUEhZUwlDRkdfUENJMV9JT19CQVNFCi0jZGVmaW5lIENGR19QQ0kxX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNiBNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fQkFTRQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fQkFTRQkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19QSFlTCUNPTkZJR19TWVNfUENJMV9JT19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTYgTSAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfUENJKQkJCS8qIFBDSSBFdGhlcm5ldCBjYXJkICovCiAKQEAgLTIyNSw3ICsyMjUsNyBAQAogI2VuZGlmCiAKICN1bmRlZiBDT05GSUdfUENJX1NDQU5fU0hPVwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcgIC8qIE1vdG9yb2xhICovCiAKICNlbmRpZiAvKiBDT05GSUdfUENJICovCiAKQEAgLTI2MywxMyArMjYzLDEzIEBACiAgICAqIC0gU2VsZWN0IGJ1cyBmb3IgYmQvYnVmZmVycwogICAgKiAtIEZ1bGwgZHVwbGV4CiAgICAqLwotICAjZGVmaW5lIENGR19DTVhGQ1JfTUFTSyAgICAgICAoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQotICAjZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUgICAgICAoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotICAjZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRSAgICAwCisgICNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSyAgICAgICAoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQorICAjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFICAgICAgKENNWEZDUl9SRjJDU19DTEsxMyB8IENNWEZDUl9URjJDU19DTEsxNCkKKyAgI2RlZmluZSBDT05GSUdfU1lTX0NQTUZDUl9SQU1UWVBFICAgIDAKICNpZiAwCi0gICNkZWZpbmUgQ0ZHX0ZDQ19QU01SICAgICAgICAgIChGQ0NfUFNNUl9GREUpCisgICNkZWZpbmUgQ09ORklHX1NZU19GQ0NfUFNNUiAgICAgICAgICAoRkNDX1BTTVJfRkRFKQogI2Vsc2UKLSAgI2RlZmluZSBDRkdfRkNDX1BTTVIgICAgICAgICAgMAorICAjZGVmaW5lIENPTkZJR19TWVNfRkNDX1BTTVIgICAgICAgICAgMAogI2VuZGlmCiAgICNkZWZpbmUgRkVUSDJfUlNUCQkweDAxCiAjZWxpZiAoQ09ORklHX0VUSEVSX0lOREVYID09IDMpCkBAIC0yODcsMTUgKzI4NywxNSBAQAogLyogRW52aXJvbm1lbnQgKi8KIC8qIFdlIHVzZSB0aGUgdG9wIGJvb3Qgc2VjdG9yIGZsYXNoLCBzbyB3ZSBoYXZlIHNvbWUgMTZLIHNlY3RvcnMgZm9yIGVudgogICovCi0jaWZuZGVmIENGR19SQU1CT09UCisjaWZuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogICAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgKyAweDYwMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgMHg2MDAwMCkKICAgI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAJLyogMTZLIChvbmUgdG9wIHNlY3RvcikgZm9yIGVudiAqLwogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZWxzZQotICAjZGVmaW5lIENGR19OT19GTEFTSAkJMQkvKiBGbGFzaCBpcyBub3QgdXNhYmxlIG5vdwkqLworICAjZGVmaW5lIENPTkZJR19TWVNfTk9fRkxBU0gJCTEJLyogRmxhc2ggaXMgbm90IHVzYWJsZSBub3cJKi8KICAgI2RlZmluZSBDT05GSUdfRU5WX0lTX05PV0hFUkUJMQkvKiBTdG9yZSBFTlYgaW4gbWVtb3J5IG9ubHkJKi8KLSAgI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQorICAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gMHgxMDAwKQogICAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgyMDAwCiAjZW5kaWYKIApAQCAtMzA0LDcgKzMwNCw3IEBACiAjZGVmaW5lIENPTkZJR19CT09UREVMQVkJMwkvKiAtMSBkaXNhYmxlIGF1dG9ib290ICovCiAKICNkZWZpbmUgQ09ORklHX0xPQURTX0VDSE8JMQkvKiBlY2hvIG9uIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSNkZWZpbmUgQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJMQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogLyoKICAqIEJPT1RQIG9wdGlvbnMKQEAgLTMyMyw3ICszMjMsNyBAQAogI2RlZmluZSBDT05GSUdfQ01EX1BJTkcKICNkZWZpbmUgQ09ORklHX0NNRF9JMkMKIAotI2lmIGRlZmluZWQoQ0ZHX1JBTUJPT1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1JBTUJPT1QpCiAgICAgI3VuZGVmIENPTkZJR19DTURfRU5WCiAgICAgI3VuZGVmIENPTkZJR19DTURfTE9BRFMKICNlbHNlCkBAIC0zNDQsMjUgKzM0NCwyNSBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkiR1BQUD0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJHUFBQPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3N0eHNzYS5oIGIvaW5jbHVkZS9jb25maWdzL3N0eHNzYS5oCmluZGV4IGM0OTUzOGUuLmIwYmQwNTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zdHhzc2EuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc3R4c3NhLmgKQEAgLTY4LDkgKzY4LDkgQEAKIAogI2RlZmluZSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GICAgMQkJLyogQ2FsbCBib2FyZF9wcmVfaW5pdAkgKi8KIAotI3VuZGVmCUNGR19EUkFNX1RFU1QJCQkJLyogbWVtb3J5IHRlc3QsIHRha2VzIHRpbWUJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MDA0MDAwMDAKKyN1bmRlZglDT05GSUdfU1lTX0RSQU1fVEVTVAkJCQkvKiBtZW1vcnkgdGVzdCwgdGFrZXMgdGltZQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwMDIwMDAwMAkvKiBtZW10ZXN0IHJlZ2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwNDAwMDAwCiAKIAogLyogTG9jYWxidXMgY29ubmVjdG9yLglUaGVyZSBhcmUgbWFueSBvcHRpb25zIHRoYXQgY2FuIGJlCkBAIC03OCw1NCArNzgsNTQgQEAKICAqIFRoaXMgYWRkcmVzcywgaG93ZXZlciwgaXMgdXNlZCB0byBjb25maWd1cmUgYSAyNTZNIGxvY2FsIGJ1cwogICogd2luZG93IHRoYXQgaW5jbHVkZXMgdGhlIENvbmZpZyBsYXRjaCBiZWxvdy4KICAqLwotI2RlZmluZSBDRkdfTEJDX09QVElPTl9CQVNFCTB4RjAwMDAwMDAJLyogTG9jYWxidXMgRXh0ZW5zaW9uICovCi0jZGVmaW5lIENGR19MQkNfT1BUSU9OX1NJWkUJMjU2CQkvKiAyNTZNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19PUFRJT05fQkFTRQkweEYwMDAwMDAwCS8qIExvY2FsYnVzIEV4dGVuc2lvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19PUFRJT05fU0laRQkyNTYJCS8qIDI1Nk1CICovCiAKIC8qIFRoZXJlIGFyZSB2YXJpb3VzIGZsYXNoIG9wdGlvbnMgdXNlZCwgd2UgY29uZmlndXJlIGZvciB0aGUgbGFyZ2VzdCwKICAqIHdoaWNoIGlzIDY0TWJ5dGVzLiAgVGhlIENGSSB3b3JrcyBmaW5lIGFuZCB3aWxsIGRpc2NvdmVyIHRoZSBwcm9wZXIKICAqIHNpemVzLgogICovCiAjaWZkZWYgQ09ORklHX1NUWFNTQV80TQotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkMwMDAwMAkvKiBzdGFydCBvZiAgNCBNaUIgZmxhc2ggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGQzAwMDAwCS8qIHN0YXJ0IG9mICA0IE1pQiBmbGFzaCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkMwMDAwMDAJLyogc3RhcnQgb2YgNjQgTWlCIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGQzAwMDAwMAkvKiBzdGFydCBvZiA2NCBNaUIgZmxhc2ggKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoQ0ZHX0ZMQVNIX0JBU0UgfCAweDE4MDEpIC8qIHBvcnQgc2l6ZSAzMmJpdAkgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19GTEFTSF9CQVNFIHwgMHgwRkY3KQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4MTgwMSkgLyogcG9ydCBzaXplIDMyYml0CSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4MEZGNykKIAotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSN1bmRlZiBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KKyN1bmRlZiBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVCB7IENGR19GTEFTSF9CQVNFIH0KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQU5LU19MSVNUIHsgQ09ORklHX1NZU19GTEFTSF9CQVNFIH0KIAotI2RlZmluZSBDRkdfRkxBU0hfUFJPVEVDVElPTgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAogLyogVGhlIGNvbmZpZ3VyYXRpb24gbGF0Y2ggaXMgQ2hpcCBTZWxlY3QgMS4KICAqIEl0J3MgYW4gOC1iaXQgbGF0Y2ggaW4gdGhlIGxvd2VyIDggYml0cyBvZiB0aGUgd29yZC4KICAqLwotI2RlZmluZSBDRkdfTEJDX0NGR0xBVENIX0JBU0UJMHhGQjAwMDAwMAkvKiBCYXNlIG9mIGNvbmZpZyBsYXRjaCAqLwotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkJMHhGQjAwMTgwMQkvKiAzMi1iaXQgcG9ydCAqLwotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkJMHhGRkZGMEZGNwkvKiA2NEsgaXMgZW5vdWdoICovCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0NGR0xBVENIX0JBU0UJMHhGQjAwMDAwMAkvKiBCYXNlIG9mIGNvbmZpZyBsYXRjaCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JSMV9QUkVMSU0JCTB4RkIwMDE4MDEJLyogMzItYml0IHBvcnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjFfUFJFTElNCQkweEZGRkYwRkY3CS8qIDY0SyBpcyBlbm91Z2ggKi8KIAotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVRFWFRfQkFTRQkvKiBzdGFydCBvZiBtb25pdG9yCSovCiAKLSNpZiAoQ0ZHX01PTklUT1JfQkFTRSA8IENGR19GTEFTSF9CQVNFKQotI2RlZmluZSBDRkdfUkFNQk9PVAorI2lmIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSA8IENPTkZJR19TWVNfRkxBU0hfQkFTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZWxzZQotI3VuZGVmCUNGR19SQU1CT09UCisjdW5kZWYJQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAotI2lmZGVmIENGR19SQU1CT09UCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHg0MDAwMDAwMAkvKiBDQ1NSQkFSIGJ5IEJESSBjZmcJKi8KKyNpZmRlZiBDT05GSUdfU1lTX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHg0MDAwMDAwMAkvKiBDQ1NSQkFSIGJ5IEJESSBjZmcJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQ1NSQkFSX0RFRkFVTFQJMHhmZjcwMDAwMAkvKiBDQ1NSQkFSIERlZmF1bHQJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLwotI2RlZmluZSBDRkdfQ0NTUkJBUl9QSFlTCUNGR19DQ1NSQkFSCS8qIHBoeXNpY2FsIGFkZHIgb2YgQ0NTUkJBUiAqLwotI2RlZmluZSBDRkdfSU1NUgkJQ0ZHX0NDU1JCQVIJLyogUFFJSSB1c2VzIENGR19JTU1SCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NTUkJBUgkJMHhlMDAwMDAwMAkvKiByZWxvY2F0ZWQgQ0NTUkJBUgkqLworI2RlZmluZSBDT05GSUdfU1lTX0NDU1JCQVJfUEhZUwlDT05GSUdfU1lTX0NDU1JCQVIJLyogcGh5c2ljYWwgYWRkciBvZiBDQ1NSQkFSICovCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJQ09ORklHX1NZU19DQ1NSQkFSCS8qIFBRSUkgdXNlcyBDT05GSUdfU1lTX0lNTVIJKi8KIAogLyogRERSIFNldHVwICovCiAjZGVmaW5lIENPTkZJR19GU0xfRERSMQpAQCAtMTM5LDggKzEzOSw4IEBACiAKICNkZWZpbmUgQ09ORklHX01FTV9JTklUX1ZBTFVFCQkweERlYWRCZWVmCiAKLSNkZWZpbmUgQ0ZHX0REUl9TRFJBTV9CQVNFCTB4MDAwMDAwMDAJLyogRERSIGlzIHN5c3RlbSBtZW1vcnkqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJQ0ZHX0REUl9TRFJBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRERSX1NEUkFNX0JBU0UJMHgwMDAwMDAwMAkvKiBERFIgaXMgc3lzdGVtIG1lbW9yeSovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFTRQkJQ09ORklHX1NZU19ERFJfU0RSQU1fQkFTRQogCiAjZGVmaW5lIENPTkZJR19OVU1fRERSX0NPTlRST0xMRVJTCTEKICNkZWZpbmUgQ09ORklHX0RJTU1fU0xPVFNfUEVSX0NUTFIJMQpAQCAtMTUyLDQ4ICsxNTIsNDggQEAKICN1bmRlZiBDT05GSUdfQ0xPQ0tTX0lOX01IWgogCiAvKiBsb2NhbCBidXMgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0JSMl9QUkVMSU0JCTB4ZjgwMDE4NjEJLyogNjRNQiBsb2NhbGJ1cyBTRFJBTQkqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkJMHhmYzAwNjkwMQotI2RlZmluZSBDRkdfTEJDX0xDUlIJCTB4MDAwMzAwMDQJLyogbG9jYWwgYnVzIGZyZXEJKi8KLSNkZWZpbmUgQ0ZHX0xCQ19MQkNSCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTFNSVAkJMHgyMDAwMDAwMAotI2RlZmluZSBDRkdfTEJDX01SVFBSCQkweDIwMDAwMDAwCi0jZGVmaW5lIENGR19MQkNfTFNETVJfMQkJMHgyODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzIJCTB4MDg2MWI3MjMKLSNkZWZpbmUgQ0ZHX0xCQ19MU0RNUl8zCQkweDA4NjFiNzIzCi0jZGVmaW5lIENGR19MQkNfTFNETVJfNAkJMHgxODYxYjcyMwotI2RlZmluZSBDRkdfTEJDX0xTRE1SXzUJCTB4NDA2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCQkweGY4MDAxODYxCS8qIDY0TUIgbG9jYWxidXMgU0RSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCQkweGZjMDA2OTAxCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xDUlIJCTB4MDAwMzAwMDQJLyogbG9jYWwgYnVzIGZyZXEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTEJDUgkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU1JUCQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX01SVFBSCQkweDIwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzEJCTB4Mjg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfMgkJMHgwODYxYjcyMworI2RlZmluZSBDT05GSUdfU1lTX0xCQ19MU0RNUl8zCQkweDA4NjFiNzIzCisjZGVmaW5lIENPTkZJR19TWVNfTEJDX0xTRE1SXzQJCTB4MTg2MWI3MjMKKyNkZWZpbmUgQ09ORklHX1NZU19MQkNfTFNETVJfNQkJMHg0MDYxYjcyMwogCiAjZGVmaW5lIENPTkZJR19MMV9JTklUX1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fTE9DSwkxCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NjAwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4NDAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9MT0NLCTEKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NjAwMDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDQwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkJLyogbnVtIGJ5dGVzIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCSgyNTYgKiAxMDI0KQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNTEyICogMTAyNCkJLyogUmVzZXJ2ZWQgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgKiAxMDI0KQkvKiBSZXNlcnZlZCBmb3IgbWFsbG9jICovCiAKIC8qIFNlcmlhbCBQb3J0ICovCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYICAgICAyCiAjdW5kZWYJQ09ORklHX1NFUklBTF9TT0ZUV0FSRV9GSUZPCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkxCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQkxCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgXAorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFICBcCiAJezMwMCwgNjAwLCAxMjAwLCAyNDAwLCA0ODAwLCA5NjAwLCAxOTIwMCwgMzg0MDAsIDExNTIwMH0KIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfQ0NTUkJBUisweDQ1MDApCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTIJKENGR19DQ1NSQkFSKzB4NDYwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJKENPTkZJR19TWVNfQ0NTUkJBUisweDQ1MDApCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00yCShDT05GSUdfU1lTX0NDU1JCQVIrMHg0NjAwKQogCiAjZGVmaW5lIENPTkZJR19DTURMSU5FX0VESVRJTkcJMQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkJKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCi0jaWZkZWYJQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIgIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIJCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMiAiPiAiCiAjZW5kaWYKIAogLyoKQEAgLTIwMiwzOSArMjAyLDM5IEBACiAjZGVmaW5lIENPTkZJR19GU0xfSTJDCQkJLyogVXNlIEZTTCBjb21tb24gSTJDIGRyaXZlciAqLwogI2RlZmluZSAgQ09ORklHX0hBUkRfSTJDCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0Ki8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkvKiBJMkMgYml0LWJhbmdlZCAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKLSN1bmRlZiBDRkdfSTJDX05PUFJPQkVTCi0jZGVmaW5lIENGR19JMkNfT0ZGU0VUCQkweDMwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4N0YKKyN1bmRlZiBDT05GSUdfU1lTX0kyQ19OT1BST0JFUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19PRkZTRVQJCTB4MzAwMAogCiAvKiBJMkMgUlRDICovCiAjZGVmaW5lIENPTkZJR19SVENfRFMxMzM3CQkvKiBUaGlzIGlzIHJlYWxseSBhIERTMTMzOSBSVEMJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CS8qIGF0IGFkZHJlc3MgMHg2OAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJMHg2OAkvKiBhdCBhZGRyZXNzIDB4NjgJCSovCiAKIC8qIEkyQyBFRVBST00uCUFUMjRDMzIsIHdlIGtlZXAgb3VyIGVudmlyb25tZW50IGluIGhlcmUuCiAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCQkweDUxCS8qIDEwMTAwMDF4CQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMgotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk1CS8qID0zMiBCeXRlcyBwZXIgd3JpdGUJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCQkweDUxCS8qIDEwMTAwMDF4CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JCTIKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTUJLyogPTMyIEJ5dGVzIHBlciB3cml0ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTIwCiAKIC8qCiAgKiBTdGFuZGFyZCA4NTU1IFBDSSBtYXBwaW5nLgogICogQWRkcmVzc2VzIGFyZSBtYXBwZWQgMS0xLgogICovCi0jZGVmaW5lIENGR19QQ0kxX01FTV9CQVNFCTB4ODAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1BIWVMJQ0ZHX1BDSTFfTUVNX0JBU0UKLSNkZWZpbmUgQ0ZHX1BDSTFfTUVNX1NJWkUJMHgyMDAwMDAwMAkvKiA1MTJNICovCi0jZGVmaW5lIENGR19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMV9JT19QSFlTCTB4ZTIwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSTFfSU9fU0laRQkweDAxMDAwMDAwCS8qIDE2TSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX0JBU0UJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfTUVNX1BIWVMJQ09ORklHX1NZU19QQ0kxX01FTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kxX0lPX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSTFfSU9fUEhZUwkweGUyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMV9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTZNICovCiAKLSNkZWZpbmUgQ0ZHX1BDSTJfTUVNX0JBU0UJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9NRU1fUEhZUwlDRkdfUENJMl9NRU1fQkFTRQotI2RlZmluZSBDRkdfUENJMl9NRU1fU0laRQkweDIwMDAwMDAwCS8qIDUxMk0gKi8KLSNkZWZpbmUgQ0ZHX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19QQ0kyX0lPX1BIWVMJMHhlMzAwMDAwMAotI2RlZmluZSBDRkdfUENJMl9JT19TSVpFCTB4MDEwMDAwMDAJLyogMTZNICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fQkFTRQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9NRU1fUEhZUwlDT05GSUdfU1lTX1BDSTJfTUVNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX01FTV9TSVpFCTB4MjAwMDAwMDAJLyogNTEyTSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSTJfSU9fQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJMl9JT19QSFlTCTB4ZTMwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0kyX0lPX1NJWkUJMHgwMTAwMDAwMAkvKiAxNk0gKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSSkJCQkvKiBQQ0kgRXRoZXJuZXQgY2FyZCAqLwogI2RlZmluZSBDT05GSUdfTVBDODVYWF9QQ0kyCTEKQEAgLTI1MSw3ICsyNTEsNyBAQAogI2VuZGlmCiAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMDU3CS8qIE1vdG9yb2xhICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwNTcJLyogTW90b3JvbGEgKi8KIAogI2VuZGlmIC8qIENPTkZJR19QQ0kgKi8KIApAQCAtMjg5LDEzICsyODksMTMgQEAKICAgICogLSBTZWxlY3QgYnVzIGZvciBiZC9idWZmZXJzCiAgICAqIC0gRnVsbCBkdXBsZXgKICAgICovCi0gICNkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLCShDTVhGQ1JfRkMyIHwgQ01YRkNSX1JGMkNTX01TSyB8IENNWEZDUl9URjJDU19NU0spCi0gICNkZWZpbmUgQ0ZHX0NNWEZDUl9WQUxVRQkoQ01YRkNSX1JGMkNTX0NMSzEzIHwgQ01YRkNSX1RGMkNTX0NMSzE0KQotICAjZGVmaW5lIENGR19DUE1GQ1JfUkFNVFlQRQkwCisgICNkZWZpbmUgQ09ORklHX1NZU19DTVhGQ1JfTUFTSwkoQ01YRkNSX0ZDMiB8IENNWEZDUl9SRjJDU19NU0sgfCBDTVhGQ1JfVEYyQ1NfTVNLKQorICAjZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFCShDTVhGQ1JfUkYyQ1NfQ0xLMTMgfCBDTVhGQ1JfVEYyQ1NfQ0xLMTQpCisgICNkZWZpbmUgQ09ORklHX1NZU19DUE1GQ1JfUkFNVFlQRQkwCiAjaWYgMAotICAjZGVmaW5lIENGR19GQ0NfUFNNUgkJKEZDQ19QU01SX0ZERSkKKyAgI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkoRkNDX1BTTVJfRkRFKQogI2Vsc2UKLSAgI2RlZmluZSBDRkdfRkNDX1BTTVIJCTAKKyAgI2RlZmluZSBDT05GSUdfU1lTX0ZDQ19QU01SCQkwCiAjZW5kaWYKICAgI2RlZmluZSBGRVRIMl9SU1QJCTB4MDEKICNlbGlmIChDT05GSUdfRVRIRVJfSU5ERVggPT0gMykKQEAgLTMyMiwxNCArMzIyLDE0IEBACiAjIGVsc2UJLyogZGVmYXVsdCBjb25maWd1cmF0aW9uIC0gNjQgTWlCIGZsYXNoICovCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHg0MDAwMAogIyBlbmRpZgotIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKQorIyBkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICMgZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwCiAjIGRlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfRU5WX1NFQ1RfU0laRSkKICMgZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJKENPTkZJR19FTlZfU0laRSkKICNlbmRpZgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUJQ09ORklHX1RJTUVTVEFNUAkJLyogUHJpbnQgaW1hZ2UgaW5mbyB3aXRoIHRzCSovCiAKQEAgLTM2NCw3ICszNjQsNyBAQAogICAgICNkZWZpbmUgQ09ORklHX0NNRF9NSUkKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDRkdfUkFNQk9PVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfUkFNQk9PVCkKICAgICAjdW5kZWYgQ09ORklHX0NNRF9FTlYKICAgICAjdW5kZWYgQ09ORklHX0NNRF9MT0FEUwogI2Vsc2UKQEAgLTM3NywyNSArMzc3LDI1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJTU0E9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiU1NBPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCi0jZGVmaW5lIENGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApIC8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKSAvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qCiAgKiBJbnRlcm5hbCBEZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3N0eHh0Yy5oIGIvaW5jbHVkZS9jb25maWdzL3N0eHh0Yy5oCmluZGV4IDdiYThiNzcuLmJjMDc4Y2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9zdHh4dGMuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3Mvc3R4eHRjLmgKQEAgLTcwLDcgKzcwLDcgQEAKIAogI2RlZmluZSBDT05GSUdfQVVUT1NDUklQVAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkwCS8qIGVjaG8gb2ZmIGZvciBzZXJpYWwgZG93bmxvYWQJKi8KLSN1bmRlZglDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI3VuZGVmCUNPTkZJR19TWVNfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGRvbid0IGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCiAjdW5kZWYJQ09ORklHX1dBVENIRE9HCQkJLyogd2F0Y2hkb2cgZGlzYWJsZWQJCSovCiAKQEAgLTk1LDcgKzk1LDcgQEAKIAogI2RlZmluZQlDT05GSUdfTkVUX01VTFRJCTEJLyogdGhlIG9ubHkgd2F5IHRvIGdldCB0aGUgRkVDIGluICovCiAjZGVmaW5lCUZFQ19FTkVUCQkxCS8qIGV0aC5jIG5lZWRzIGl0IHRoYXQgd2F5Li4uICovCi0jdW5kZWYgQ0ZHX0RJU0NPVkVSX1BIWQorI3VuZGVmIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCiAjZGVmaW5lIENPTkZJR19NSUkJCTEKICNkZWZpbmUgQ09ORklHX01JSV9JTklUCQkxCiAjdW5kZWYgQ09ORklHX1JNSUkKQEAgLTEyOSwyOSArMTI5LDI5IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCSJ4dGM+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkieHRjPiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCTEKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUJQ0ZHX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkxMDI0CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2Vsc2UKLSNkZWZpbmUJQ0ZHX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMzAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDA3MDAwMDAJLyogMyAuLi4gNyBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDA3MDAwMDAJLyogMyAuLi4gNyBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xNjEsNDIgKzE2MSw0MiBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgzMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKICNpZiBkZWZpbmVkKERFQlVHKQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCiAjZWxzZQotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgPDwgMTApCS8qIFJlc2VydmUgMTkyIGtCIGZvciBNb25pdG9yCSovCiAjZW5kaWYKIAogLyogeWVzIHRoaXMgaXMgd2VpcmQsIEkga25vdyA6KSAqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSB8IDB4MDBGMDAwMDApCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfRkxBU0hfQkFTRSB8IDB4MDBGMDAwMDApCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKLSNkZWZpbmUgQ0ZHX1JFU0VUX0FERFJFU1MJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHg4MDAwMDAwMAogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCkBAIC0yMDQsMzAgKzIwNCwzMCBAQAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAogCi0jZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19GTEFTSF9CQVNFICsgMHgwMDAwMDAwMCkKKyNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHgwMDAwMDAwMCkKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTAKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAKIAotI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDRkdfRkxBU0hfQkFTRSArIDB4MDAwMTAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwMTAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkwCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRV9SRURVTkQJQ09ORklHX0VOVl9TSVpFCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCi0jdW5kZWYgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCisjdW5kZWYgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFCS8qIHVzZSBidWZmZXJlZCB3cml0ZXMgKDIweCBmYXN0ZXIpICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBTktTX0xJU1QgeyBDRkdfRkxBU0hfQkFTRSwgQ0ZHX0ZMQVNIX0JBU0UgKyAweDIwMDAwMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MjAwMDAwMCB9CiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzcsMTAgKzIzNywxMCBAQAogICogU29mdHdhcmUgJiBCdXMgTW9uaXRvciBUaW1lciBtYXgsIEJ1cyBNb25pdG9yIGVuYWJsZSwgU1cgV2F0Y2hkb2cgZnJlZXplCiAgKi8KICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAjZWxzZQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBTWVBDUl9TV1ApCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjQ4LDI3ICsyNDgsMjcgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQyB8IFNJVU1DUl9HQjVFKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxIHwgU0lVTUNSX0ZSQyB8IFNJVU1DUl9HQjVFKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yODEsMTEgKzI4MSwxMSBAQAogI2lmIENPTkZJR19YSU4gPT0gMTAwMDAwMDAKIAogI2lmIE1QQzhYWF9IWiA9PSA1MDAwMDAwMAotI2RlZmluZSBDRkdfUExQUkNSCSgoMCA8PCBQTFBSQ1JfTUZOX1NISUZUKSB8ICgwIDw8IFBMUFJDUl9NRkRfU0hJRlQpIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUgkoKDAgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKIAkJCSAoMSA8PCBQTFBSQ1JfU19TSElGVCkgfCAoMTAgPDwgUExQUkNSX01GSV9TSElGVCkgfCAoMCA8PCBQTFBSQ1JfUERGX1NISUZUKSB8IFwKIAkJCSBQTFBSQ1JfVEVYUFMpCiAjZWxpZiBNUEM4WFhfSFogPT0gNjY2NjY2NjYKLSNkZWZpbmUgQ0ZHX1BMUFJDUgkoKDEgPDwgUExQUkNSX01GTl9TSElGVCkgfCAoMiA8PCBQTFBSQ1JfTUZEX1NISUZUKSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgxIDw8IFBMUFJDUl9NRk5fU0hJRlQpIHwgKDIgPDwgUExQUkNSX01GRF9TSElGVCkgfCBcCiAJCQkgKDEgPDwgUExQUkNSX1NfU0hJRlQpIHwgKDEzIDw8IFBMUFJDUl9NRklfU0hJRlQpIHwgKDAgPDwgUExQUkNSX1BERl9TSElGVCkgfCBcCiAJCQkgUExQUkNSX1RFWFBTKQogI2Vsc2UKQEAgLTMwOCwxMiArMzA4LDEyIEBACiAKICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAjaWYgTVBDOFhYX0haID4gNjY2NjY2NjYKLSNkZWZpbmUgQ0ZHX1NDQ1IJKC8qIFNDQ1JfVEJTICAgICB8ICovIFNDQ1JfQ1JRRU4gfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoLyogU0NDUl9UQlMgICAgIHwgKi8gU0NDUl9DUlFFTiB8IFwKIAkJCSBTQ0NSX0NPTTAwICAgfCBTQ0NSX0RGU1lOQzAwIHwgU0NDUl9ERkJSRzAwICB8IFwKIAkJCSBTQ0NSX0RGTkwwMDAgfCBTQ0NSX0RGTkgwMDAgIHwgU0NDUl9ERkxDRDAwMCB8IFwKIAkJCSBTQ0NSX0RGQUxDRDAwIHwgU0NDUl9FQkRGMDEpCiAjZWxzZQotI2RlZmluZSBDRkdfU0NDUgkoLyogU0NDUl9UQlMgICAgIHwgKi8gU0NDUl9DUlFFTiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCSgvKiBTQ0NSX1RCUyAgICAgfCAqLyBTQ0NSX0NSUUVOIHwgXAogCQkJIFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCkBAIC0zMjQsOCArMzI0LDggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTAKKy8qI2RlZmluZQlDT05GSUdfU1lTX0RFUgkweDIwMDIwMDBGKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM0MywxOCArMzQzLDE4IEBACiAKICNkZWZpbmUgRkxBU0hfQkFOS19NQVhfU0laRQkweDAxMDAwMDAwCS8qIG1heCBzaXplIHBlciBjaGlwICovCiAKLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JKDB4RkZGRkZGRkZMVSAmIH4oRkxBU0hfQkFOS19NQVhfU0laRSAtIDEpKQorI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCSgweEZGRkZGRkZGTFUgJiB+KEZMQVNIX0JBTktfTUFYX1NJWkUgLSAxKSkKIAogLyogRkxBU0ggdGltaW5nOiBBQ1MgPSAxMSwgVFJMWCA9IDAsIENTTlQgPSAxLCBTQ1kgPSA1LCBFSFRSID0gMQkqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICShPUl9DU05UX1NBTSAgfCBPUl9CSSB8IE9SX1NDWV81X0NMSyB8IE9SX1RSTFgpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMTYgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUkVNQVAJKENPTkZJR19TWVNfUkVNQVBfT1JfQU0gIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9QUkVMSU0JKCgweEZGRkZGRkZGTFUgJiB+KEZMQVNIX0JBTktfTUFYX1NJWkUgLSAxKSkgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JKCgweEZGRkZGRkZGTFUgJiB+KEZMQVNIX0JBTktfTUFYX1NJWkUgLSAxKSkgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfViApCiAKIC8qCiAgKiBCUjQgYW5kIE9SNCAoU0RSQU0pCkBAIC0zNjQsMTAgKzM2NCwxMCBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJKDI1NiA8PCAyMCkJLyogbWF4IDI1Nk1CIHBlciBiYW5rCSovCiAKIC8qIFNEUkFNIHRpbWluZzogTXVsdGlwbGV4ZWQgYWRkcmVzc2VzLCBHUEw1IG91dHB1dCB0byBHUEw1X0EgKGRvbid0IGNhcmUpCSovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfU0RSQU0JKE9SX0NTTlRfU0FNIHwgT1JfRzVMUykKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0JKE9SX0NTTlRfU0FNIHwgT1JfRzVMUykKIAotI2RlZmluZSBDRkdfT1I0X1BSRUxJTQkoKDB4RkZGRkZGRkZMVSAmIH4oU0RSQU1fTUFYX1NJWkUgLSAxKSkgfCBDRkdfT1JfVElNSU5HX1NEUkFNKQotI2RlZmluZSBDRkdfQlI0X1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfUFNfMzIgfCBCUl9WKQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JKCgweEZGRkZGRkZGTFUgJiB+KFNEUkFNX01BWF9TSVpFIC0gMSkpIHwgQ09ORklHX1NZU19PUl9USU1JTkdfU0RSQU0pCisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTQkoKFNEUkFNX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfUFNfMzIgfCBCUl9WKQogCiAvKgogICogTWVtb3J5IFBlcmlvZGljIFRpbWVyIFByZXNjYWxlcgpAQCAtNDAwLDM0ICs0MDAsMzQgQEAKICAqIDgwIE1oeiA9PiA4MC4wMDAuMDAwIC8gRGl2aWRlciA9IDE1NgogICovCiAKLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCQkgMjM0CisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJCSAyMzQKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCkBAIC00NTAsMTIgKzQ1MCwxMiBAQAogCiAvKiBOQU5EICovCiAjZGVmaW5lIENPTkZJR19OQU5EX0xFR0FDWQotI2RlZmluZSBDRkdfTkFORF9CQVNFCQlOQU5EX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0UJCU5BTkRfQkFTRQogI2RlZmluZSBDT05GSUdfTVREX05BTkRfRUNDX0pGRlMyCiAjZGVmaW5lIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUKICNkZWZpbmUgQ09ORklHX01URF9OQU5EX1VOU0FGRQogCi0jZGVmaW5lIENGR19NQVhfTkFORF9ERVZJQ0UJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9OQU5EX0RFVklDRQkxCiAjdW5kZWYgTkFORF9OT19SQgogCiAjZGVmaW5lIFNFQ1RPUlNJWkUJCTUxMgpAQCAtNDY5LDM5ICs0NjksMzkgQEAKIC8qIEFMRSA9IFBDMTUsIENMRSA9IFBCMjMsIENFID0gUEE3LCBGX1JZX0JZID0gUEE2ICovCiAjZGVmaW5lIE5BTkRfRElTQUJMRV9DRShuYW5kKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQpIHw9ICAoMSA8PCAoMTUgLSA3KSk7IFwKKwkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQpIHw9ICAoMSA8PCAoMTUgLSA3KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9FTkFCTEVfQ0UobmFuZCkgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0KSAmPSB+KDEgPDwgKDE1IC0gNykpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0KSAmPSB+KDEgPDwgKDE1IC0gNykpOyBcCiAJfSB3aGlsZSgwKQogCiAjZGVmaW5lIE5BTkRfQ1RMX0NMUkFMRShuYW5kcHRyKSBcCiAJZG8geyBcCi0JCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGNkYXQpICY9IH4oMSA8PCAoMTUgLSAxNSkpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KSAmPSB+KDEgPDwgKDE1IC0gMTUpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9TRVRBTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BjZGF0KSB8PSAgKDEgPDwgKDE1IC0gMTUpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1faW9wb3J0LmlvcF9wY2RhdCkgfD0gICgxIDw8ICgxNSAtIDE1KSk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgTkFORF9DVExfQ0xSQ0xFKG5hbmRwdHIpIFwKIAlkbyB7IFwKLQkJKCgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KSAmPSB+KDEgPDwgKDMxIC0gMjMpKTsgXAorCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fY3BtLmNwX3BiZGF0KSAmPSB+KDEgPDwgKDMxIC0gMjMpKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBOQU5EX0NUTF9TRVRDTEUobmFuZHB0cikgXAogCWRvIHsgXAotCQkoKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpIHw9ICAoMSA8PCAoMzEgLSAyMykpOyBcCisJCSgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9jcG0uY3BfcGJkYXQpIHw9ICAoMSA8PCAoMzEgLSAyMykpOyBcCiAJfSB3aGlsZSgwKQogCiAjaWZuZGVmIE5BTkRfTk9fUkIKICNkZWZpbmUgTkFORF9XQUlUX1JFQURZKG5hbmQpIFwKIAlkbyB7IFwKIAkJaW50IF90cmllcyA9IDA7IFwKLQkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDRkdfSU1NUiktPmltX2lvcG9ydC5pb3BfcGFkYXQgJiAoMSA8PCAoMTUgLSA2KSkpID09IDApIFwKKwkJd2hpbGUgKCgoKHZvbGF0aWxlIGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVIpLT5pbV9pb3BvcnQuaW9wX3BhZGF0ICYgKDEgPDwgKDE1IC0gNikpKSA9PSAwKSBcCiAJCQlpZiAoKytfdHJpZXMgPiAxMDAwMDApIFwKIAkJCQlicmVhazsgXAogCX0gd2hpbGUgKDApCkBAIC01MjksOCArNTI5LDggQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIENGR19ESVJFQ1RfRkxBU0hfVEZUUAotI2RlZmluZSBDRkdfRElSRUNUX05BTkRfVEZUUAorI2RlZmluZSBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lIENPTkZJR19TWVNfRElSRUNUX05BTkRfVEZUUAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTUzOSw3ICs1MzksNyBAQAogICovCiAjZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDAwMDAwMDgwCQkvKiBiaXQgMjQgKi8KIAotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyNkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogI2RlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkwCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAwCSovCkBAIC01NTQsMTUgKzU1NCwxNSBAQAogCiAjZGVmaW5lIF9fbGVkX3RvZ2dsZShfbXNrKSBcCiAJZG8geyBcCi0JCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGdjcmIgXj0gKF9tc2spOyBcCisJCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYS5wY21jX3BnY3JiIF49IChfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9zZXQoX21zaywgX3N0KSBcCiAJZG8geyBcCiAJCWlmICgoX3N0KSkgXAotCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ0ZHX0lNTVIpLT5pbV9wY21jaWEucGNtY19wZ2NyYiB8PSAoX21zayk7IFwKKwkJCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNPTkZJR19TWVNfSU1NUiktPmltX3BjbWNpYS5wY21jX3BnY3JiIHw9IChfbXNrKTsgXAogCQllbHNlIFwKLQkJCSgodm9sYXRpbGUgaW1tYXBfdCAqKUNGR19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGdjcmIgJj0gfihfbXNrKTsgXAorCQkJKCh2b2xhdGlsZSBpbW1hcF90ICopQ09ORklHX1NZU19JTU1SKS0+aW1fcGNtY2lhLnBjbWNfcGdjcmIgJj0gfihfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9pbml0KG1zaywgc3QpIF9fbGVkX3NldChtc2ssIHN0KQpAQCAtNTcxLDkgKzU3MSw5IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfSVNfSU5fRU5WCQkxCi0jZGVmaW5lIENGR19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCTEKLSNkZWZpbmUgQ0ZHX0NPTlNPTEVfRU5WX09WRVJXUklURQkxCisjZGVmaW5lIENPTkZJR19TWVNfQ09OU09MRV9JU19JTl9FTlYJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX09WRVJXUklURV9ST1VUSU5FCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DT05TT0xFX0VOVl9PVkVSV1JJVEUJMQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc3V6YWt1LmggYi9pbmNsdWRlL2NvbmZpZ3Mvc3V6YWt1LmgKaW5kZXggY2M5ZjZiZC4uYjcwMmRlMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3N1emFrdS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zdXpha3UuaApAQCAtMzYsMjEgKzM2LDIxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfU0RSQU1fU0laRQkJMHgwMTAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmZmYwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfU0laRQkJMHgwMDQwMDAwMAotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUwkweGZmZjAwMTAwCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoQ0ZHX1NEUkFNX0JBU0UgKyBDRkdfU0RSQU1fU0laRSAtICgxMDI0ICogMTAyNCkpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgbWFsbG9jICovCi0jZGVmaW5lIENGR19NQUxMT0NfQkFTRQkJKENGR19NT05JVE9SX0JBU0UgLSAoMTAyNCAqIDEwMjQpKQorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFCQkweDAxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDA0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmZmMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIENPTkZJR19TWVNfU0RSQU1fU0laRSAtICgxMDI0ICogMTAyNCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIG1hbGxvYyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19CQVNFCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgLSAoMTAyNCAqIDEwMjQpKQogCiAjZGVmaW5lIENPTkZJR19YSUxJTlhfVUFSVExJVEUKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDExNTIwMCB9CiAKIC8qIFN5c3RlbSBSZWdpc3RlciAoR1BJTykgKi8KICNkZWZpbmUgTUlDUk9CTEFaRV9TWVNSRUdfQkFTRV9BRERSIDB4RkZGRkEwMDAKQEAgLTY3LDI1ICs2NywyNSBAQAogI3VuZGVmIENPTkZJR19DTURfTkVUCiAjdW5kZWYgQ09ORklHX0NNRF9NSVNDCiAKLSNkZWZpbmUgQ0ZHX1VBUlQxX0JBU0UJCSgweEZGRkYyMDAwKQotI2RlZmluZSBDT05GSUdfU0VSSUFMX0JBU0UJQ0ZHX1VBUlQxX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19VQVJUMV9CQVNFCQkoMHhGRkZGMjAwMCkKKyNkZWZpbmUgQ09ORklHX1NFUklBTF9CQVNFCUNPTkZJR19TWVNfVUFSVDFfQkFTRQogCiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIlNVWkFLVT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIlNVWkFLVT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJQ0ZHX1NEUkFNX0JBU0UJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gb3JnYW5pemF0aW9uCkBAIC05OCwxMSArOTgsMTEgQEAKICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KIAotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDgwMDAwMDAwCS8qIGluc2lkZSBvZiBTRFJBTSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAwMAkvKiBpbnNpZGUgb2YgU0RSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKICNkZWZpbmUgWElMSU5YX0NMT0NLX0ZSRVEJNTAwMDAwMDAKICNkZWZpbmUgQ09ORklHX1hJTElOWF9DTE9DS19GUkVRCVhJTElOWF9DTE9DS19GUkVRCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvc3ZtX3NjOHh4LmggYi9pbmNsdWRlL2NvbmZpZ3Mvc3ZtX3NjOHh4LmgKaW5kZXggOTUwNzg0Ni4uMzkxN2ExYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3N2bV9zYzh4eC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9zdm1fc2M4eHguaApAQCAtNTQsNyArNTQsNyBAQAogLyogI2RlZmluZSBDT05GSUdfU0RSQU1fMTZNICovCiAjZGVmaW5lIENPTkZJR19TRFJBTV8zMk0KIC8qICNkZWZpbmUgQ09ORklHX1NEUkFNXzY0TSAqLwotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAweGZmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAweGZmZmZmZmZmCiAvKgogICogSGlnaCBMZXZlbCBDb25maWd1cmF0aW9uIE9wdGlvbnMKICAqIChlYXN5IHRvIGNoYW5nZSkKQEAgLTExNCw3ICsxMTQsNyBAQAogCSJ0ZnRwYm9vdCAweDIxMDAwMCBwSW1hZ2Utc2M4NTV0O2Jvb3RtIDB4MjEwMDAwIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogCiAjaWZkZWYgQ09ORklHX0xDRApAQCAtMTU2LDMwICsxNTYsMzAgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogCi0jaWZkZWYgIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyICAgICAiPiAiCisjaWZkZWYgIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIgICAgICI+ICIKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lCUNGR19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMTAyNAkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZW5kaWYKLSNkZWZpbmUJQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZQlDT05GSUdfU1lTX01BWEFSR1MJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwQzAwMDAwCS8qIDQgLi4uIDEyIE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKLSNkZWZpbmUJQ0ZHX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfSFoJCTEwMDAJCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MJKi8KIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIExvdyBMZXZlbCBDb25maWd1cmF0aW9uIFNldHRpbmdzCkBAIC0xODksNDMgKzE4OSw0MyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW50ZXJuYWwgTWVtb3J5IE1hcHBlZCBSZWdpc3RlcgogICovCi0jZGVmaW5lIENGR19JTU1SCQkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU1NUgkJMHhGRjAwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIERQUkFNKQogICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19JTU1SCi0jZGVmaW5lCUNGR19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lCUNGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lNTVIKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1JBTV9FTkQJMHgyRjAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0JKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFN0YXJ0IGFkZHJlc3NlcyBmb3IgdGhlIGZpbmFsIG1lbW9yeSBjb25maWd1cmF0aW9uCiAgKiAoU2V0IHVwIGJ5IHRoZSBzdGFydHVwIGNvZGUpCi0gKiBQbGVhc2Ugbm90ZSB0aGF0IENGR19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCisgKiBQbGVhc2Ugbm90ZSB0aGF0IENPTkZJR19TWVNfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAogICovCi0jZGVmaW5lCUNGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlDRkdfRkxBU0hfQkFTRQotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDM4NCA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk2NwkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAKQEAgLTI0OCwxNiArMjQ4LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg0NjQ1NEMzOAkvKiAnU1ZNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDQ2NDU0QzM4CS8qICdTVk04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2NywxMyArMjY3LDEzIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotLyojZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKy8qI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgXAogCQkJIFNZUENSX1NXRSAgfCBTWVBDUl9TV1JJfCBTWVBDUl9TV1ApCiAqLwotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUiAweGZmZmZmZjg4CisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IgMHhmZmZmZmY4OAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI4MiwxMCArMjgyLDEwIEBACiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCiAjaWZuZGVmCUNPTkZJR19DQU5fRFJJVkVSCi0vKiNkZWZpbmUgQ0ZHX1NJVU1DUiAweDAwNjEwYzAwCSovCi0jZGVmaW5lIENGR19TSVVNQ1IgMHgwMDAwMDAwMAorLyojZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSIDB4MDA2MTBjMDAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TSVVNQ1IgMHgwMDAwMDAwMAogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjkzLDIwICsyOTMsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCTB4MDAwMQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCTB4MDAwMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBSVENTQyAtIFJlYWwtVGltZSBDbG9jayBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIJCTExLTI3CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCTB4MDBjMworI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCTB4MDBjMwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQSVNDUiAtIFBlcmlvZGljIEludGVycnVwdCBTdGF0dXMgYW5kIENvbnRyb2wJCTExLTMxCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDbGVhciBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzLCBJbnRlcnJ1cHQgVGltZXIgZnJlZXppbmcgZW5hYmxlZAogICovCi0jZGVmaW5lIENGR19QSVNDUgkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkweDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUExQUkNSIC0gUExMLCBMb3ctUG93ZXIsIGFuZCBSZXNldCBDb250cm9sIFJlZ2lzdGVyCQkxNS0zMApAQCAtMzE1LDE5ICszMTUsMTkgQEAKICAqIGludGVycnVwdCBzdGF0dXMgYml0CiAgKi8KICNpZiBkZWZpbmVkIChDT05GSUdfMTAwTUh6KQotI2RlZmluZSBDRkdfUExQUkNSIDB4MDYzMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IgMHgwNjMwMTAwMAogI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUSAxMDAwMDAwMDAKICNlbGlmIGRlZmluZWQgKENPTkZJR184ME1IeikKLSNkZWZpbmUgQ0ZHX1BMUFJDUiAweDA0ZjAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSIDB4MDRmMDEwMDAKICNkZWZpbmUgQ09ORklHXzh4eF9HQ0xLX0ZSRVEgODAwMDAwMDAKICNlbGlmIGRlZmluZWQoQ09ORklHXzc1TUh6KQotI2RlZmluZSBDRkdfUExQUkNSIDB4MDRhMDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IgMHgwNGEwMDEwMAogI2RlZmluZSBDT05GSUdfOHh4X0dDTEtfRlJFUSA3NTAwMDAwMAogI2VsaWYgZGVmaW5lZChDT05GSUdfNjZNSHopCi0jZGVmaW5lIENGR19QTFBSQ1IgMHgwNDEwMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BMUFJDUiAweDA0MTAxMDAwCiAjZGVmaW5lIENPTkZJR184eHhfR0NMS19GUkVRIDY2MDAwMDAwCiAjZWxpZiBkZWZpbmVkKENPTkZJR181ME1IeikKLSNkZWZpbmUgQ0ZHX1BMUFJDUiAweDAzMTAxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUExQUkNSIDB4MDMxMDEwMDAKICNkZWZpbmUgQ09ORklHXzh4eF9HQ0xLX0ZSRVEgNTAwMDAwMDAKICNlbmRpZgogCkBAIC0zMzksOSArMzM5LDkgQEAKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKICNpZmRlZglDT05GSUdfQlVTX0RJVjIKLSNkZWZpbmUgQ0ZHX1NDQ1IJMHgwMjAyMDAwMCB8IFNDQ1JfUlRTRUwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSCTB4MDIwMjAwMDAgfCBTQ0NSX1JUU0VMCiAjZWxzZQkJCS8qIHVwIHRvIDUwIE1IeiB3ZSB1c2UgYSAxOjEgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX1NDQ1IgICAgMHgwMjAwMDAwMCB8IFNDQ1JfUlRTRUwKKyNkZWZpbmUgQ09ORklHX1NZU19TQ0NSICAgIDB4MDIwMDAwMDAgfCBTQ0NSX1JUU0VMCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzQ5LDE0ICszNDksMTQgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzY5LDI4ICszNjksMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSICAgICAgIDB4RkUxMDAwMTAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVCAgICAgMHgwMDAwCi0vKiNkZWZpbmUgQ0ZHX0FUQV9JREUxX09GRlNFVCAgICAgMHgwQzAwICovCi0jZGVmaW5lIENGR19BVEFfREFUQV9PRkZTRVQgICAgIDB4MDAwMCAgLyogT2Zmc2V0IGZvciBkYXRhIEkvTworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIgICAgICAgMHhGRTEwMDAxMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVCAgICAgMHgwMDAwCisvKiNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMV9PRkZTRVQgICAgIDB4MEMwMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVCAgICAgMHgwMDAwICAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCiAJCQkJCSAgICovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVCAgICAgIDB4MDIwMCAgLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVCAgICAgIDB4MDIwMCAgLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMKIAkJCQkJICAgKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUICAgICAgMHgwMjEwICAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVCAgICAgIDB4MDIxMCAgLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCiAJCQkJCSAgICovCiAjZGVmaW5lIENPTkZJR19BVEFQSQotI2RlZmluZSBDRkdfUElPX01PREUgMAorI2RlZmluZSBDT05GSUdfU1lTX1BJT19NT0RFIDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLS8qI2RlZmluZQlDRkdfREVSCTB4MjAwMjAwMEYqLwotI2RlZmluZSBDRkdfREVSCTB4MAorLyojZGVmaW5lCUNPTkZJR19TWVNfREVSCTB4MjAwMjAwMEYqLworI2RlZmluZSBDT05GSUdfU1lTX0RFUgkweDAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC00MDUsNTUgKzQwNSw1NSBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCiAjaWYgZGVmaW5lZChDT05GSUdfMTAwTUh6KQotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIIDB4MDAwMDAyZjQKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19ET0MgICAweDAwMDAwMmY0Ci0jZGVmaW5lIENGR19NeE1SX1BUeCAweDYxMDAwMDAwCi0jZGVmaW5lIENGR19NUFRQUiAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCAweDAwMDAwMmY0CisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0RPQyAgIDB4MDAwMDAyZjQKKyNkZWZpbmUgQ09ORklHX1NZU19NeE1SX1BUeCAweDYxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgMHg0MDAKIAogI2VsaWYgIGRlZmluZWQoQ09ORklHXzgwTUh6KQotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNIIDB4MDAwMDBmZjQKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19ET0MgICAweDAwMDAwMWY0Ci0jZGVmaW5lIENGR19NeE1SX1BUeCAweDRlMDAwMDAwCi0jZGVmaW5lIENGR19NUFRQUiAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCAweDAwMDAwZmY0CisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0RPQyAgIDB4MDAwMDAxZjQKKyNkZWZpbmUgQ09ORklHX1NZU19NeE1SX1BUeCAweDRlMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgMHg0MDAKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfNzVNSHopCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggMHgwMDAwMDhmNAotI2RlZmluZSBDRkdfT1JfVElNSU5HX0RPQyAgIDB4MDAwMDAyZjQKLSNkZWZpbmUgQ0ZHX014TVJfUFR4IDB4NDkwMDAwMDAKLSNkZWZpbmUgQ0ZHX01QVFBSIDB4NDAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIDB4MDAwMDA4ZjQKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRE9DICAgMHgwMDAwMDJmNAorI2RlZmluZSBDT05GSUdfU1lTX014TVJfUFR4IDB4NDkwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUiAweDQwMAogCiAjZWxpZiBkZWZpbmVkKENPTkZJR182Nk1IeikKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSCAgICAgKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0ggICAgIChPUl9BQ1NfRElWMSAgfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQotLyojZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggMHgwMDAwMDFmNCAqLwotI2RlZmluZSBDRkdfT1JfVElNSU5HX0RPQyAgIDB4MDAwMDAzZjQKLSNkZWZpbmUgQ0ZHX014TVJfUFR4ICAweDQwMDAwMDAwCi0jZGVmaW5lIENGR19NUFRQUiAweDQwMAorLyojZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIIDB4MDAwMDAxZjQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRE9DICAgMHgwMDAwMDNmNAorI2RlZmluZSBDT05GSUdfU1lTX014TVJfUFR4ICAweDQwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFIgMHg0MDAKIAogI2Vsc2UJCS8qICAgNTAgTUh6ICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0ggMHgwMDAwMGZmNAotI2RlZmluZSBDRkdfT1JfVElNSU5HX0RPQyAgIDB4MDAwMDAxZjQKLSNkZWZpbmUgQ0ZHX014TVJfUFR4ICAweDMwMDAwMDAwCi0jZGVmaW5lIENGR19NUFRQUiAweDQwMAorI2RlZmluZSBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCAweDAwMDAwZmY0CisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0RPQyAgIDB4MDAwMDAxZjQKKyNkZWZpbmUgQ09ORklHX1NZU19NeE1SX1BUeCAgMHgzMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01QVFBSIDB4NDAwCiAjZW5kaWYJLypDT05GSUdfPz9NSHogKi8KIAogCiAjaWYgIGRlZmluZWQgKENPTkZJR19CT09UXzhCKSAgIC8qIDUxMksgWCA4ICwyOUYwNDAgLCAyTUIgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKDB4ZmZlMDAwMDAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfOCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCSgweGZmZTAwMDAwIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WIHwgQlJfUFNfOCkKICNlbGlmICBkZWZpbmVkIChDT05GSUdfQk9PVF8xNkIpICAgLyogMjlsdjE2MCBYIDE2ICwgNE1CIHNwYWNlICovCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCSgweGZmYzAwMDAwIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViB8IEJSX1BTXzE2KQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKDB4ZmZjMDAwMDAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgfCBCUl9QU18xNikKICNlbGlmIGRlZmluZWQoIENPTkZJR19CT09UXzMyQiApICAvKiAyOWx2MTYwIFggMiBYIDMyLCA0LzgvMTZNQiAsIDY0TUIgc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKDB4ZmMwMDAwMDAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCSgweGZjMDAwMDAwIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKICNlbHNlCiAjZXJyb3IgQm9vdCBkZXZpY2UgcG9ydCBzaXplIG1pc3NpbmcuCiAjZW5kaWYKQEAgLTQ2MiwxMiArNDYyLDEyIEBACiAgKiBEaXNrLU9uLUNoaXAgY29uZmlndXJhdGlvbgogICovCiAKLSNkZWZpbmUgQ0ZHX0RPQ19TSE9SVF9USU1FT1VUCi0jZGVmaW5lIENGR19NQVhfRE9DX0RFVklDRSAgICAgIDEgICAgICAgLyogTWF4IG51bWJlciBvZiBET0MgZGV2aWNlcyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TSE9SVF9USU1FT1VUCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0RPQ19ERVZJQ0UgICAgICAxICAgICAgIC8qIE1heCBudW1iZXIgb2YgRE9DIGRldmljZXMgICAgKi8KIAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfMjAwMAotI2RlZmluZSBDRkdfRE9DX1NVUFBPUlRfTUlMTEVOTklVTQotI2RlZmluZSBDRkdfRE9DX0JBU0UgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RPQ19TVVBQT1JUXzIwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ET0NfU1VQUE9SVF9NSUxMRU5OSVVNCisjZGVmaW5lIENPTkZJR19TWVNfRE9DX0JBU0UgMHg4MDAwMDAwMAogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvdGFpaHUuaCBiL2luY2x1ZGUvY29uZmlncy90YWlodS5oCmluZGV4IGJjYjg3MzIuLjhjNDhjNjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy90YWlodS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy90YWlodS5oCkBAIC0xMDIsOCArMTAyLDggQEAKICNkZWZpbmUgQ09ORklHX0NNRF9TUEkKIAogI3VuZGVmIENPTkZJR19TUERfRUVQUk9NCQkvKiB1c2UgU1BEIEVFUFJPTSBmb3Igc2V0dXAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkVfUEVSX0JBTksgMHgwNDAwMDAwMCAvKiA2NE1CICovCi0jZGVmaW5lIENGR19TRFJBTV9CQU5LUwkgICAgICAgIDIKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFX1BFUl9CQU5LIDB4MDQwMDAwMDAgLyogNjRNQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBTktTCSAgICAgICAgMgogCiAvKgogICogU0RSQU0gY29uZmlndXJhdGlvbiAocGxlYXNlIHNlZSBjcHUvcHBjL3NkcmFtLltjaF0pCkBAIC0xMTIsMzggKzExMiwzOCBAQAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzEJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAxICovCiAKIC8qIFNEUkFNIHRpbWluZ3MgdXNlZCBpbiBkYXRhc2hlZXQgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NMICAgICAgICAgICAgMwkvKiBDQVMgbGF0ZW5jeSAqLwotI2RlZmluZSBDRkdfU0RSQU1fdFJQICAgICAgICAgICAyMAkvKiBQUkVDSEFSR0UgY29tbWFuZCBwZXJpb2QgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSQyAgICAgICAgICAgNjYJLyogQUNUSVZFLXRvLUFDVElWRSBjb21tYW5kIHBlcmlvZCAqLwotI2RlZmluZSBDRkdfU0RSQU1fdFJDRCAgICAgICAgICAyMAkvKiBBQ1RJVkUtdG8tUkVBRCBkZWxheSAqLwotI2RlZmluZSBDRkdfU0RSQU1fdFJGQwkJNjYJLyogQXV0byByZWZyZXNoIHBlcmlvZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NMICAgICAgICAgICAgMwkvKiBDQVMgbGF0ZW5jeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSUCAgICAgICAgICAgMjAJLyogUFJFQ0hBUkdFIGNvbW1hbmQgcGVyaW9kICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJDICAgICAgICAgICA2NgkvKiBBQ1RJVkUtdG8tQUNUSVZFIGNvbW1hbmQgcGVyaW9kICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJDRCAgICAgICAgICAyMAkvKiBBQ1RJVkUtdG8tUkVBRCBkZWxheSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSRkMJCTY2CS8qIEF1dG8gcmVmcmVzaCBwZXJpb2QgKi8KIAogLyoKLSAqIElmIENGR19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgotICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENGR19CQVNFX0JBVUQgdmFsdWUuCisgKiBJZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgorICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENPTkZJR19TWVNfQkFTRV9CQVVEIHZhbHVlLgogICogVGhlIExpbnV4IEJBU0VfQkFVRCBkZWZpbmUgc2hvdWxkIG1hdGNoIHRoaXMgY29uZmlndXJhdGlvbi4KICAqICAgIGJhc2VCYXVkID0gY3B1Q2xvY2svKHVhcnREaXZpc29yKjE2KQotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAogICogc2V0IExpbnV4IEJBU0VfQkFVRCB0byA0MDMyMDAuCiAgKi8KICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSN1bmRlZiAgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgICAgICAgICAgIC8qIGV4dGVybmFsIHNlcmlhbCBjbG9jayAqLwotI3VuZGVmICBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5ICAgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjdW5kZWYgIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyAgICAgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjdW5kZWYgIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5ICAgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJCTY5MTIwMAogI2RlZmluZSBDT05GSUdfVUFSVDFfQ09OU09MRQkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQyBzdHVmZgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsgMHg2OSB9IC8qIGF2b2lkIGlwcm9iZSBoYW5ndXAgKHdoeT8pICovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwk2IC8qIDI0QzAyIHJlcXVpcmVzIDVtcyBkZWxheSAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7IDB4NjkgfSAvKiBhdm9pZCBpcHJvYmUgaGFuZ3VwICh3aHk/KSAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTYgLyogMjRDMDIgcmVxdWlyZXMgNW1zIGRlbGF5ICovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDUwCS8qIEkyQyBib290IEVFUFJPTSAoMjRDMDJXKQkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJLyogSTJDIGJvb3QgRUVQUk9NICgyNEMwMlcpCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkxCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAKICNkZWZpbmUgQ09ORklHX1NPRlRfU1BJCiAjZGVmaW5lIFNQSV9TQ0wgIHNwaV9zY2wKQEAgLTE1OSw3ICsxNTksNyBAQAogLyogc3RhbmRhcmQgZHR0IHNlbnNvciBjb25maWd1cmF0aW9uICovCiAjZGVmaW5lIENPTkZJR19EVFRfRFMxNzc1CTEKICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXsgMCB9Ci0jZGVmaW5lIENGR19JMkNfRFRUX0FERFIJMHg0OQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19EVFRfQUREUgkweDQ5CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTc1LDM5ICsxNzUsMzkgQEAKIAkJCQkJLyogcmVzb3VyY2UgY29uZmlndXJhdGlvbiAgICAgICovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XICAgICAgICAgICAgLyogc2hvdyBwY2kgZGV2aWNlcyBvbiBzdGFydHVwICovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyICovCi0jZGVmaW5lIENGR19QQ0lfQ0xBU1NDT0RFICAgICAgIDB4MDYwMCAgLyogUENJIENsYXNzIENvZGU6IGJyaWRnZS9ob3N0ICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMUxBCSAgICAweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUyAgICAgIDB4ODAwMDAwMDEJLyogMkdCLCBlbmFibGUgaGFyZC13aXJlZCB0byAxICovCi0jZGVmaW5lIENGR19QQ0lfUFRNMVBDSSAgICAgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcyAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTEEgICAgICAweDAwMDAwMDAwCS8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBDRkdfUENJX1BUTTJNUwkgICAgMHgwMDAwMDAwMAkvKiBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yUENJICAgICAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMGU4CS8qIEFNQ0MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9DTEFTU0NPREUgICAgICAgMHgwNjAwICAvKiBQQ0kgQ2xhc3MgQ29kZTogYnJpZGdlL2hvc3QgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMUxBCSAgICAweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMgICAgICAweDgwMDAwMDAxCS8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xUENJICAgICAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTEEgICAgICAweDAwMDAwMDAwCS8qIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yTVMJICAgIDB4MDAwMDAwMDAJLyogZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJQQ0kgICAgIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MgICovCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMAkJMQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQogICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGRTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRkUwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTIJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfQUREUjAgICAgICAgICAweDU1NQotI2RlZmluZSBDRkdfRkxBU0hfQUREUjEgICAgICAgICAweDJhYQotI2RlZmluZSBDRkdfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBzaG9ydAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwICAgICAgICAgMHg1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMSAgICAgICAgIDB4MmFhCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFICAgICB1bnNpZ25lZCBzaG9ydAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0yMTgsMTkgKzIxOCwxOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlZSQU0gb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX05WUkFNX0JBU0VfQUREUgkweGYwMDAwMDAwCS8qIE5WUkFNIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfTlZSQU1fU0laRQkJMHgxZmY4CQkvKiBOVlJBTSBzaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fQkFTRV9BRERSCTB4ZjAwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTlZSQU1fU0laRQkJMHgxZmY4CQkvKiBOVlJBTSBzaXplICovCiAKICNpZmRlZiBDT05GSUdfRU5WX0lTX0lOX05WUkFNCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgwZmY4CQkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQlcCi0JKENGR19OVlJBTV9CQVNFX0FERFIrQ0ZHX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBQQzQwNSBHUElPIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfNHh4X0dQSU9fVEFCTEUgeyAvKgkJCQlHUElPCUFsdGVybmF0ZTEJCSovCVwKKyNkZWZpbmUgQ09ORklHX1NZU180eHhfR1BJT19UQUJMRSB7IC8qCQkJCUdQSU8JQWx0ZXJuYXRlMQkJKi8JXAogewkJCQkJCQkJCQkJCVwKIC8qIEdQSU8gQ29yZSAwICovCQkJCQkJCQkJCVwKIHsgR1BJT19CQVNFLCBHUElPX09VVCwgR1BJT19TRUwsICBHUElPX09VVF9OT19DSEcgfSwgLyogR1BJTzAJUGVyQkxhc3QgICAgU1BJIENTCSovCVwKQEAgLTI3NCw0OCArMjc0LDQ4IEBACiAgKiBCUjAvMSBhbmQgT1IwLzEgKEZMQVNIKQogICovCiAKLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNIENGR19GTEFTSF9CQVNFIC8qIEZMQVNIIGJhbmsgIzAgKi8KKyNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNIENPTkZJR19TWVNfRkxBU0hfQkFTRSAvKiBGTEFTSCBiYW5rICMwICovCiAjZGVmaW5lIEZMQVNIX0JBU0UxX1BSRUxJTSAgMHhGQzAwMDAwMAkvKiBGTEFTSCBiYW5rICMxICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gZGF0YSBjYWNoZSkKICAqLwogLyogdXNlIG9uIGNoaXAgbWVtb3J5IChPQ00pIGZvciB0ZW1wZXJhcnkgc3RhY2sgdW50aWwgc2RyYW0gaXMgdGVzdGVkICovCi0jZGVmaW5lIENGR19URU1QX1NUQUNLX09DTSAgICAgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNICAgICAgICAxCiAKIC8qIE9uIENoaXAgTWVtb3J5IGxvY2F0aW9uICovCi0jZGVmaW5lIENGR19PQ01fREFUQV9BRERSCTB4RjgwMDAwMDAKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX1NJWkUJMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCUNGR19PQ01fREFUQV9BRERSIC8qIGluc2lkZSBvZiBTRFJBTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIFNEUkFNCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUICAgICAgQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgICAgICAxMjggIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAgICAoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQgICAgICBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBCdXMgQ29udHJvbGxlciAoRUJDKSBTZXR1cAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoL1NSQU0pIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAgICAgICAgICAgIDB4MDM4MTU2MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUiAgICAgICAgICAgMHhGRkUzQTAwMCAgLyogQkFTPTB4RkZFLEJTPTJNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQVAgICAgICAgICAgIDB4MDM4MTU2MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIwQ1IgICAgICAgICAgIDB4RkZFM0EwMDAgIC8qIEJBUz0weEZGRSxCUz0yTUIsQlU9Ui9XLEJXPTE2Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDEgKE5WUkFNL1JUQykgaW5pdGlhbGl6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjFBUCAgICAgICAgICAgMHgwNTgxNTYwMAotI2RlZmluZSBDRkdfRUJDX1BCMUNSICAgICAgICAgICAweEZDMEJBMDAwICAvKiBCQVM9MHhGYzAsQlM9MzJNQixCVT1SL1csQlc9MTZiaXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQVAgICAgICAgICAgIDB4MDU4MTU2MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIxQ1IgICAgICAgICAgIDB4RkMwQkEwMDAgIC8qIEJBUz0weEZjMCxCUz0zMk1CLEJVPVIvVyxCVz0xNmJpdCAqLwogCiAvKiBNZW1vcnkgQmFuayAyIChVU0IgZGV2aWNlKSBpbml0aWFsaXphdGlvbiAqLwotI2RlZmluZSBDRkdfRUJDX1BCMkFQICAgICAgICAgICAweDAzMDE2NjAwCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IgICAgICAgICAgIDB4NTAwMTgwMDAgLyogQkFTPTB4NTAwLEJTPTFNQixCVT1SL1csQlc9OGJpdCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUCAgICAgICAgICAgMHgwMzAxNjYwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUiAgICAgICAgICAgMHg1MDAxODAwMCAvKiBCQVM9MHg1MDAsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICovCiAKIC8qIE1lbW9yeSBCYW5rIDMgKExDTSBhbmQgRC1mbGlwLWZsb3ApIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEIzQVAgICAgICAgICAgIDB4MTU4RkY2MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUiAgICAgICAgICAgMHg1MDExODAwMCAvKiBCQVM9MHg1MDEsQlM9MU1CLEJVPVIvVyxCVz04Yml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0FQICAgICAgICAgICAweDE1OEZGNjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCM0NSICAgICAgICAgICAweDUwMTE4MDAwIC8qIEJBUz0weDUwMSxCUz0xTUIsQlU9Ui9XLEJXPThiaXQgKi8KIAogLyogTWVtb3J5IEJhbmsgNCAobm90IGluc3RhbGwpIGluaXRpYWxpemF0aW9uICovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAgICAgICAgICAgIDB4MTU4RkY2MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUiAgICAgICAgICAgMHg1MDIxQTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRBUCAgICAgICAgICAgMHgxNThGRjYwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjRDUiAgICAgICAgICAgMHg1MDIxQTAwMAogCiAjZGVmaW5lIENQTERfUkVHMF9BRERSCTB4NTAxMDAwMDAKICNkZWZpbmUgQ1BMRF9SRUcxX0FERFIJMHg1MDEwMDAwMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3RhaXNoYW4uaCBiL2luY2x1ZGUvY29uZmlncy90YWlzaGFuLmgKaW5kZXggMjQyMmFlNy4uNjQyM2ZkNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3RhaXNoYW4uaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdGFpc2hhbi5oCkBAIC00OCwzNyArNDgsMzcgQEAKICAqIEJhc2UgYWRkcmVzc2VzIC0tIE5vdGUgdGhlc2UgYXJlIGVmZmVjdGl2ZSBhZGRyZXNzZXMgd2hlcmUgdGhlCiAgKiBhY3R1YWwgcmVzb3VyY2VzIGdldCBtYXBwZWQgKG5vdCBwaHlzaWNhbCBhZGRyZXNzZXMpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UJCTB4ODAwMDAwMDAJLyogbWFwcGVkIHBjaSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRQkweGUwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCi0jZGVmaW5lIENGR19JU1JBTV9CQVNFCQkweGMwMDAwMDAwCS8qIGludGVybmFsIFNSQU0JKi8KLSNkZWZpbmUgQ0ZHX1BDSV9CQVNFCQkweGQwMDAwMDAwCS8qIGludGVybmFsIFBDSSByZWdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmYzAwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBwY2kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFCTB4ZTAwMDAwMDAJLyogaW50ZXJuYWwgcGVyaXBoZXJhbHMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JU1JBTV9CQVNFCQkweGMwMDAwMDAwCS8qIGludGVybmFsIFNSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLwogCi0jZGVmaW5lIENGR19FQkMwX0ZMQVNIX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0VCQzFfRlBHQV9CQVNFCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMTAwMDAwMCkKLSNkZWZpbmUgQ0ZHX0VCQzJfTENNX0JBU0UJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAyMDAwMDAwKQotI2RlZmluZSBDRkdfRUJDM19DT05OX0JBU0UJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQzBfRkxBU0hfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19FQkMxX0ZQR0FfQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAxMDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQzJfTENNX0JBU0UJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMjAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkMzX0NPTk5fQkFTRQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDAwMDAwKQogCi0jZGVmaW5lIENGR19HUElPX0JBU0UJCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDcwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPX0JBU0UJCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA3MDApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEluaXRpYWwgUkFNICYgc3RhY2sgcG9pbnRlciAocGxhY2VkIGluIGludGVybmFsIFNSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQotI2RlZmluZSBDRkdfT0NNX0RBVEFfQUREUglDRkdfSVNSQU1fQkFTRQotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSVNSQU1fQkFTRSAgLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKKyNkZWZpbmUgQ09ORklHX1NZU19PQ01fREFUQV9BRERSCUNPTkZJR19TWVNfSVNSQU1fQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JU1JBTV9CQVNFICAvKiBJbml0aWFsIFJBTSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0qLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19QT1NUX1dPUkRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lIENPTkZJR19VQVJUMV9DT05TT0xFCTEJLyogdXNlIG9mIFVBUlQxIGFzIGNvbnNvbGUJKi8KLSNkZWZpbmUgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJKDE4NDMyMDAgKiA2KQkvKiBFeHQgY2xrIEAgMTEuMDU5IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sJKDE4NDMyMDAgKiA2KQkvKiBFeHQgY2xrIEAgMTEuMDU5IE1IeiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudApAQCAtODgsMjEgKzg4LDIxIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCByZWxhdGVkCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUICAgIHtDRkdfRkxBU0hfQkFTRX0KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUyAgICAgMQkJICAgIC8qIG51bWJlciBvZiBiYW5rcwkgICAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEwMjQJCSAgICAvKiBzZWN0b3JzIHBlciBkZXZpY2UgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QgICAge0NPTkZJR19TWVNfRkxBU0hfQkFTRX0KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgICAgIDEJCSAgICAvKiBudW1iZXIgb2YgYmFua3MJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTAyNAkJICAgIC8qIHNlY3RvcnMgcGVyIGRldmljZSAgICovCiAKLSN1bmRlZglDRkdfRkxBU0hfQ0hFQ0tTVU0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyN1bmRlZglDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwIC8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkKICNkZWZpbmUJQ09ORklHX0VOVl9TSVpFCQkweDQwMDAJLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KIAogLyogQWRkcmVzcyBhbmQgc2l6ZSBvZiBSZWR1bmRhbnQgRW52aXJvbm1lbnQgU2VjdG9yCSovCkBAIC0xMjgsMjggKzEyOCwyOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICN1bmRlZiBDT05GSUdfU1BEX0VFUFJPTQkJLyogRG9uJ3QgdXNlIFNQRCBFRVBST00gZm9yIHNldHVwCSovCiAjZGVmaW5lIENPTkZJR19TRFJBTV9CQU5LMAkxCS8qIGluaXQgb25ib2FyZCBERFIgU0RSQU0gYmFuayAwCSovCi0jZGVmaW5lCUNGR19TRFJBTTBfVFIwCQkweEMxMEE0MDFBCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU0wX1RSMAkJMHhDMTBBNDAxQQogI3VuZGVmIENPTkZJR19TRFJBTV9FQ0MJCQkvKiBlbmFibGUgRUNDIHN1cHBvcnQJCQkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkvKiBJMkMgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3MJKi8KIAotI3VuZGVmIENGR19JMkNfTVVMVElfRUVQUk9NUwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4gMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUyAzCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAorI3VuZGVmIENPTkZJR19TWVNfSTJDX01VTFRJX0VFUFJPTVMKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MAorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4gMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKLSNkZWZpbmUgQ0ZHX0JPT1RTVFJBUF9JSUNfQUREUgkweDUwCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFNUUkFQX0lJQ19BRERSCTB4NTAKIAogLyogSTJDIFNZU01PTiAoTE03NSwgQUQ3NDE0IGlzIGFsbW9zdCBjb21wYXRpYmxlKQkJCSovCiAjZGVmaW5lIENPTkZJR19EVFRfTE03NQkJMQkJLyogT04gU2VtaSdzIExNNzUJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCXswfQkJLyogU2Vuc29yIGFkZHJlc3NlcwkqLwotI2RlZmluZSBDRkdfRFRUX01BWF9URU1QCTcwCi0jZGVmaW5lIENGR19EVFRfTE9XX1RFTVAJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX01BWF9URU1QCTcwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0xPV19URU1QCS0zMAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCTMKIAogLyoKICAqIERlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGVzCkBAIC0xOTYsMTIgKzE5NiwxMiBAQAogI2RlZmluZSBDT05GSUdfUENJX1BOUAkJCS8qIGRvIHBjaSBwbHVnLWFuZC1wbGF5CQkqLwogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAgICAgICAgMQkJLyogaW5jbHVkZSBQQ0kgRUVQUk8xMDAJCSovCiAjZGVmaW5lIENPTkZJR19QQ0lfU0NBTl9TSE9XCQkvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENGR19QQ0lfTUVNQkFTRSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9UQVJHQkFTRSAgICAweDgwMDAwMDAwCS8qIFBDSWFkZHIgbWFwcGVkIHRvIENPTkZJR19TWVNfUENJX01FTUJBU0UgKi8KIAogLyogQm9hcmQtc3BlY2lmaWMgUENJICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19ERVZJQ0VJRCAweGNhZmUJLyogV2hhdGV2ZXIgKi8KIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy90YjAyMjkuaCBiL2luY2x1ZGUvY29uZmlncy90YjAyMjkuaAppbmRleCBiZmIzMmZiLi45Mjg1YzlkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdGIwMjI5LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3RiMDIyOS5oCkBAIC0zOCw3ICszOCw3IEBACiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogI2RlZmluZSBDT05GSUdfVElNRVNUQU1QCQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKQEAgLTExMiw0NiArMTEyLDQ2IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgICovCi0jZGVmaW5lIENGR19QUk9NUFQJCSIjICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIiMgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MqLwogCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkxMjgqMTAyNAorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCTEyOCoxMDI0CiAKLSNkZWZpbmUgQ0ZHX0JPT1RQQVJBTVNfTEVOCTEyOCoxMDI0CisjZGVmaW5lIENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4JMTI4KjEwMjQKIAotI2RlZmluZSBDRkdfTUlQU19USU1FUl9GUkVRCShDUFVfVENMT0NLX1JBVEUvNCkKKyNkZWZpbmUgQ09ORklHX1NZU19NSVBTX1RJTUVSX0ZSRVEJKENQVV9UQ0xPQ0tfUkFURS80KQogCi0jZGVmaW5lIENGR19IWgkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAKIAotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4ODAwMDAwMDAKIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDgwNDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDgwNDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHg4MDAwMDAwMAotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4ODA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg4MDgwMDAwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMTI4KQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCSgxMjgpCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHhiZmMwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKIC8qIFRoZSBmb2xsb3dpbmcgI2RlZmluZXMgYXJlIG5lZWRlZCB0byBnZXQgZmxhc2ggZW52aXJvbm1lbnQgcmlnaHQgKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQlURVhUX0JBU0UKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlURVhUX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkKIAotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJMHg0MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAkweDQwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyMCAqIENGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIgKiBDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjAgKiBDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIgKiBDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogCkBAIC0xNTksMjUgKzE1OSwyNSBAQAogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4QkZDNDAwMDAKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMDAwCiAKLSNkZWZpbmUgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjZGVmaW5lIENPTkZJR19TWVNfRElSRUNUX0ZMQVNIX1RGVFAKIAogI2RlZmluZSBDT05GSUdfTlJfRFJBTV9CQU5LUwkxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfRENBQ0hFX1NJWkUJCTE2Mzg0Ci0jZGVmaW5lIENGR19JQ0FDSEVfU0laRQkJMTYzODQKLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfSUNBQ0hFX1NJWkUJCTE2Mzg0CisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfTlMxNjU1MAotI2RlZmluZSBDRkdfTlMxNjU1MF9TRVJJQUwKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJWkUJIDEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLCQkgMTg0MzIwMDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQkgMHhhZjAwMDgwMAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJIDEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJIDE4NDMyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCSAweGFmMDAwODAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFBDSSBzdHVmZgpAQCAtMTg2LDcgKzE4Niw3IEBACiAjZGVmaW5lIENPTkZJR19QQ0lfUE5QCiAjZGVmaW5lIENPTkZJR19ORVRfTVVMVEkKICNkZWZpbmUgQ09ORklHX0VFUFJPMTAwCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTgJCS8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMAkqLworI2RlZmluZSBDT05GSUdfU1lTX1JYX0VUSF9CVUZGRVIJOAkJLyogdXNlIDggcnggYnVmZmVyIG9uIGVlcHJvMTAwCSovCiAKICNkZWZpbmUgQ09ORklHX1JUTDgxMzkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3RyYWIuaCBiL2luY2x1ZGUvY29uZmlncy90cmFiLmgKaW5kZXggZDZkNDYzYS4uNTYyY2Q2MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3RyYWIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdHJhYi5oCkBAIC01OCw3ICs1OCw3IEBACiAjZGVmaW5lIENPTkZJR19TRVRVUF9NRU1PUllfVEFHUyAxCiAjZGVmaW5lIENPTkZJR19JTklUUkRfVEFHCSAxCiAKLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCSAxCS8qIGVuYmxlIG51bGwgZGV2aWNlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCSAxCS8qIGVuYmxlIG51bGwgZGV2aWNlCQkqLwogI2RlZmluZSBDT05GSUdfU0lMRU5UX0NPTlNPTEUJIDEJLyogZW5hYmxlIHNpbGVudCBzdGFydHVwCSovCiAKICNkZWZpbmUgQ09ORklHX1ZFUlNJT05fVkFSSUFCTEUJMSAgICAgICAvKiBpbmNsdWRlIHZlcnNpb24gZW52IHZhcmlhYmxlICovCkBAIC02OSwzMyArNjksMzMgQEAKICAqIGFkZHJlc3MgMHg1NCB3aXRoIDhiaXQgYWRkcmVzc2luZwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMAkvKiBJMkMgc3BlZWQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkciAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCS8qIEkyQyBzcGVlZCAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TTEFWRQkJMHg3RgkvKiBJMkMgc2xhdmUgYWRkciAqLwogCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1NAkvKiBFRVBST00gYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCS8qIDEgYWRkcmVzcyBieXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTQJLyogRUVQUk9NIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCTEJLyogMSBhZGRyZXNzIGJ5dGUgKi8KIAotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XIDB4MDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwkvKiA4IGJ5dGVzIHBhZ2Ugd3JpdGUgbW9kZSBvbiAyNEMwNCAqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfT1ZFUkZMT1cgMHgwMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwkvKiA4IGJ5dGVzIHBhZ2Ugd3JpdGUgbW9kZSBvbiAyNEMwNCAqLworI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TIDEwCiAKIC8qIFVTQiBzdHVmZiAqLwogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCTEKICNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFCTEKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04JMQogCi0jdW5kZWYgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCTEKKyN1bmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAkxCiAKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQkweDE0MjAwMDAwCi0jZGVmaW5lIENGR19VU0JfT0hDSV9TTE9UX05BTUUJInMzYzI0MDAiCi0jZGVmaW5lIENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1JFR1NfQkFTRQkweDE0MjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfU0xPVF9OQU1FCSJzM2MyNDAwIgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTE1CiAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTc5LDcgKzE3OSw3IEBACiAKIAogLyogbW92ZWQgdXAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQk1CiAjZGVmaW5lIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSwkvKiBhbGxvdyB0byBicmVhayBpbiBhbHdheXMgKi8KQEAgLTE5Miw3ICsxOTIsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJImJ1cm5faW4iCiAKICNpZm5kZWYgQ09ORklHX0ZMQVNIXzhNQgkvKiBjdXJyZW50IGNvbmZpZzogMTYgTUIgZmxhc2ggKi8KLSNpZmRlZiBDRkdfSFVTSF9QQVJTRVIKKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCiAjZGVmaW5lCUNPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJXAogCSJuZnNfYXJncz1zZXRlbnYgYm9vdGFyZ3Mgcm9vdD0vZGV2L25mcyBydyAiIFwKIAkJIm5mc3Jvb3Q9JHNlcnZlcmlwOiRyb290cGF0aFwwIiBcCkBAIC0yMTQsNyArMjE0LDcgQEAKIAkibWRtX2luaXQxPUFUWlwwIiBcCiAJIm1kbV9pbml0Mj1BVFMwPTFcMCIgXAogCSJtZG1fZmxvd19jb250cm9sPXJ0cy9jdHNcMCIKLSNlbHNlIC8qICFDRkdfSFVTSF9QQVJTRVIgKi8KKyNlbHNlIC8qICFDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCiAjZGVmaW5lCUNPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJXAogCSJuZnNfYXJncz1zZXRlbnYgYm9vdGFyZ3Mgcm9vdD0vZGV2L25mcyBydyAiIFwKIAkJIm5mc3Jvb3Q9JHtzZXJ2ZXJpcH06JHtyb290cGF0aH1cMCIgXApAQCAtMjM2LDkgKzIzNiw5IEBACiAJIm1kbV9pbml0MT1BVFpcMCIgXAogCSJtZG1faW5pdDI9QVRTMD0xXDAiIFwKIAkibWRtX2Zsb3dfY29udHJvbD1ydHMvY3RzXDAiCi0jZW5kaWYJLyogQ0ZHX0hVU0hfUEFSU0VSICovCisjZW5kaWYJLyogQ09ORklHX1NZU19IVVNIX1BBUlNFUiAqLwogI2Vsc2UJLyogQ09ORklHX0ZMQVNIXzhNQgkgPT4gOCBNQiBmbGFzaCAqLwotI2lmZGVmIENGR19IVVNIX1BBUlNFUgorI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwlcCiAJIm5mc19hcmdzPXNldGVudiBib290YXJncyByb290PS9kZXYvbmZzIHJ3ICIgXAogCQkibmZzcm9vdD0kc2VydmVyaXA6JHJvb3RwYXRoXDAiIFwKQEAgLTI2MSw3ICsyNjEsNyBAQAogCSJtZG1faW5pdDE9QVRaXDAiIFwKIAkibWRtX2luaXQyPUFUUzA9MVwwIiBcCiAJIm1kbV9mbG93X2NvbnRyb2w9cnRzL2N0c1wwIgotI2Vsc2UgLyogIUNGR19IVVNIX1BBUlNFUiAqLworI2Vsc2UgLyogIUNPTkZJR19TWVNfSFVTSF9QQVJTRVIgKi8KICNkZWZpbmUJQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HUwlcCiAJIm5mc19hcmdzPXNldGVudiBib290YXJncyByb290PS9kZXYvbmZzIHJ3ICIgXAogCQkibmZzcm9vdD0ke3NlcnZlcmlwfToke3Jvb3RwYXRofVwwIiBcCkBAIC0yODQsNyArMjg0LDcgQEAKIAkibWRtX2luaXQxPUFUWlwwIiBcCiAJIm1kbV9pbml0Mj1BVFMwPTFcMCIgXAogCSJtZG1fZmxvd19jb250cm9sPXJ0cy9jdHNcMCIKLSNlbmRpZiAvKiBDRkdfSFVTSF9QQVJTRVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSICovCiAjZW5kaWYJLyogQ09ORklHX0ZMQVNIXzhNQiAqLwogCiAjaWYgMQkvKiBmZWVsIGZyZWUgdG8gZGlzYWJsZSBmb3IgZGV2ZWxvcG1lbnQgKi8KQEAgLTMwMywzOCArMzAzLDM4IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIlRSQUIgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUgQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiVFJBQiAjICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2lmZGVmCUNPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2VuZGlmCiAKLSNkZWZpbmUJQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZQlDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUJQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4MEMwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEQwMDAwMDAJLyogMTYgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwQzAwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEQwMDAwMDAJLyogMTYgTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYgQ0ZHX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KKyN1bmRlZiBDT05GSUdfU1lTX0NMS1NfSU5fSFoJCS8qIGV2ZXJ5dGhpbmcsIGluY2wgYm9hcmQgaW5mbywgaW4gSHogKi8KIAotI2RlZmluZQlDRkdfTE9BRF9BRERSCQkweDBDRjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDBDRjAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCiAKICNpZmRlZiBDT05GSUdfVFJBQl81ME1IWgogLyogdGhlIFBXTSBUSW1lciA0IHVzZXMgYSBjb3VudGVyIG9mIDE1NjI1IGZvciAxMCBtcywgc28gd2UgbmVlZCAqLwogLyogaXQgdG8gd3JhcCAxMDAgdGltZXMgKHRvdGFsIDE1NjI1MDApIHRvIGdldCAxIHNlYy4gKi8KIC8qIHRoaXMgc2hvdWxkIF9yZWFsbHlfIGJlIGNhbGN1bGF0ZWQgISEgKi8KLSNkZWZpbmUJQ0ZHX0haCQkJMTU2MjUwMAorI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTU2MjUwMAogI2Vsc2UKIC8qIHRoZSBQV00gVEltZXIgNCB1c2VzIGEgY291bnRlciBvZiAxMDM5MCBmb3IgMTAgbXMsIHNvIHdlIG5lZWQgKi8KIC8qIGl0IHRvIHdyYXAgMTAwIHRpbWVzICh0b3RhbCAxMDM5MDAwKSB0byBnZXQgMSBzZWMuICovCiAvKiB0aGlzIHNob3VsZCBfcmVhbGx5XyBiZSBjYWxjdWxhdGVkICEhICovCi0jZGVmaW5lCUNGR19IWgkJCTEwMzkwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19IWgkJCTEwMzkwMDAKICNlbmRpZgogCiAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX01JU0NfSU5JVF9SCQkvKiBoYXZlIG1pc2NfaW5pdF9yKCkgZnVuY3Rpb24JKi8KIApAQCAtMzY5LDExICszNjksMTEgQEAKICNkZWZpbmUgUEhZU19TRFJBTV8xX1NJWkUJMHgwMTAwMDAwMAkvKiAxNiBNQiAqLwogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRmxhc2ggQmFuayAjMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4MDAwMDAwMDAJLyogRmxhc2ggQmFuayAjMSAqLwogCiAvKiBUaGUgZm9sbG93aW5nICNkZWZpbmVzIGFyZSBuZWVkZWQgdG8gZ2V0IGZsYXNoIGVudmlyb25tZW50IHJpZ2h0ICovCi0jZGVmaW5lCUNGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkKIAogLyogRHluYW1pYyBNVEQgcGFydGl0aW9uIHN1cHBvcnQgKi8KICNkZWZpbmUgQ09ORklHX0pGRlMyX0NNRExJTkUKQEAgLTM5MiwyNiArMzkyLDI2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBhbmQgZW52aXJvbm1lbnQgb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgKi8KICNpZm5kZWYgQ09ORklHX0ZMQVNIXzhNQgotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOAkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk3MQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KICNlbmRpZgogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDE1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ0ZHX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDE1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMipDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFByaW1hcnkgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAjaWZuZGVmIENPTkZJR19GTEFTSF84TUIKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX0ZMQVNIX0JBU0UgKyAweDYwMDAwKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDYwMDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCiAjZWxzZQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4NDAwMCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgMHg0MDAwKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAKICNlbmRpZgpAQCAtNDIwLDkgKzQyMCw5IEBACiAjZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAkoQ09ORklHX0VOVl9BRERSK0NPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkVfUkVEVU5ECShDT05GSUdfRU5WX1NJWkUpCiAKLSNkZWZpbmUJQ0ZHX1VTRV9QUENFTlYJCQkvKiBFbnZpcm9ubWVudCBlbWJlZGRlZCBpbiBzZWN0IC5wcGNlbnYgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCiAKIC8qIEluaXRpYWwgdmFsdWUgb2YgdGhlIG9uLWJvYXJkIHRvdWNoIHNjcmVlbiBicmlnaHRuZXNzICovCi0jZGVmaW5lIENGR19CUklHSFRORVNTIDB4MjAKKyNkZWZpbmUgQ09ORklHX1NZU19CUklHSFRORVNTIDB4MjAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy90cml6ZXBzaXYuaCBiL2luY2x1ZGUvY29uZmlncy90cml6ZXBzaXYuaAppbmRleCBiMjQ5NzliLi5iMjA2NWVlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdHJpemVwc2l2LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3RyaXplcHNpdi5oCkBAIC01NCw4ICs1NCw4IEBACiAvKgogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgIChDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogLyoKICAqIEhhcmR3YXJlIGRyaXZlcnMKQEAgLTE0OCwzNSArMTQ4LDM1IEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2lmZGVmIENGR19IVVNIX1BBUlNFUgotI2RlZmluZSBDRkdfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjaWZkZWYgQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIiQgIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZW5kaWYKLSNkZWZpbmUgQ0ZHX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwotI2RlZmluZSBDRkdfREVWSUNFX05VTExERVYJMQorI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0RFVklDRV9OVUxMREVWCTEKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweGEwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGEwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4YTA4MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4YTEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YTEwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgyMDcJCS8qIG5lZWQgdG8gbG9vayBtb3JlIGNsb3NlbHksIEkgdGhpbmsgdGhpcyBpcyBUdXJibyA9IDJ4LCBMPTkxTWh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MjA3CQkvKiBuZWVkIHRvIGxvb2sgbW9yZSBjbG9zZWx5LCBJIHRoaW5rIHRoaXMgaXMgVHVyYm8gPSAyeCwgTD05MU1oeiAqLwogCiAJCQkJCQkvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKLSNkZWZpbmUgQ0ZHX01NQ19CQVNFCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTU1DX0JBU0UJCTB4RjAwMDAwMDAKIAogLyoKICAqIFN0YWNrIHNpemVzCkBAIC0yMDQsNzYgKzIwNCw3NiBAQAogCiAjZGVmaW5lIFBIWVNfRkxBU0hfMQkJMHgwMDAwMDAwMCAvKiBGbGFzaCBCYW5rICMxICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkweDA0MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKgogICogR1BJTyBzZXR0aW5ncwogICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJCTB4MDAwMTgwMDAKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BTUjJfVkFMCQkweDQwMGRjMDAwCi0jZGVmaW5lIENGR19HUFNSM19WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUENSMl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IzX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BEUjBfVkFMCQkweDAwMDE4MDAwCi0jZGVmaW5lIENGR19HUERSMV9WQUwJCTB4MDAwMjg4MDEKLSNkZWZpbmUgQ0ZHX0dQRFIyX1ZBTAkJMHg1MjBkYzAwMAotI2RlZmluZSBDRkdfR1BEUjNfVkFMCQkweDAwMDFFMDAwCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTAkJMHg4MDFjMDAwMAotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwJCTB4MDAwMDAwMTMKLSNkZWZpbmUgQ0ZHX0dBRlIxX0xfVkFMCQkweDY5OTAxMDBBCi0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTAkJMHgwMDAwMDAwOAotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwJCTB4QTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMCQkweDAxMDkwMEYyCi0jZGVmaW5lIENGR19HQUZSM19MX1ZBTAkJMHg1NDAwMDAwMwotI2RlZmluZSBDRkdfR0FGUjNfVV9WQUwJCTB4MDAwMDI0MDEKLSNkZWZpbmUgQ0ZHX0dSRVIwX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1JFUjFfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkVSMl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dSRVIzX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0ZFUjBfVkFMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIyX1ZBTAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR0ZFUjNfVkFMCQkweDAwMDAwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMCQkweDAwMDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMCQkweDQwMGRjMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjNfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjNfVkFMCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMCQkweDAwMDE4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMCQkweDAwMDI4ODAxCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMCQkweDUyMGRjMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjNfVkFMCQkweDAwMDFFMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwJCTB4ODAxYzAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTAkJMHgwMDAwMDAxMworI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMCQkweDY5OTAxMDBBCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwJCTB4MDAwMDAwMDgKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTAkJMHhBMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX1VfVkFMCQkweDAxMDkwMEYyCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjNfTF9WQUwJCTB4NTQwMDAwMDMKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSM19VX1ZBTAkJMHgwMDAwMjQwMQorI2RlZmluZSBDT05GSUdfU1lTX0dSRVIwX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSRVIxX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSRVIyX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSRVIzX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dGRVIwX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dGRVIxX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dGRVIyX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dGRVIzX1ZBTAkJMHgwMDAwMDAyMAogCiAKLSNkZWZpbmUgQ0ZHX1BTU1JfVkFMCQkweDIwCS8qIENIRUNLICovCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwJCTB4MjAJLyogQ0hFQ0sgKi8KIAogLyoKICAqIENsb2NrIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0NLRU4JCTB4MDFGRkZGRkYJLyogQ0hFQ0sgKi8KLSNkZWZpbmUgQ0ZHX0NDQ1IJCTB4MDIwMDAyOTAgLyogICA1MjBNaHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DS0VOCQkweDAxRkZGRkZGCS8qIENIRUNLICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NDUgkJMHgwMjAwMDI5MCAvKiAgIDUyME1oeiAqLwogCiAvKgogICogTWVtb3J5IHNldHRpbmdzCiAgKi8KIAotI2RlZmluZSBDRkdfTVNDMF9WQUwJCTB4NGRmODRkZjAKLSNkZWZpbmUgQ0ZHX01TQzFfVkFMCQkweDdmZjg3ZmY0Ci0jZGVmaW5lIENGR19NU0MyX1ZBTAkJMHhhMjY5MzZkNAotI2RlZmluZSBDRkdfTURDTkZHX1ZBTAkJMHg4ODAwMDlDOQotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJMHgyMGNhMjAxZQotI2RlZmluZSBDRkdfTURNUlNfVkFMCQkweDAwMjIwMDIyCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMF9WQUwJCTB4NGRmODRkZjAKKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTAkJMHg3ZmY4N2ZmNAorI2RlZmluZSBDT05GSUdfU1lTX01TQzJfVkFMCQkweGEyNjkzNmQ0CisjZGVmaW5lIENPTkZJR19TWVNfTURDTkZHX1ZBTAkJMHg4ODAwMDlDOQorI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwJCTB4MjBjYTIwMWUKKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwJCTB4MDAyMjAwMjIKIAotI2RlZmluZSBDRkdfRkxZQ05GR19WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1NYQ05GR19WQUwJCTB4NDAwNDQwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19GTFlDTkZHX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NYQ05GR19WQUwJCTB4NDAwNDQwMDQKIAogLyoKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcwogICovCi0jZGVmaW5lIENGR19NRUNSX1ZBTAkJMHgwMDAwMDAwMQotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTAkJMHgwMDAwNDIwNAotI2RlZmluZSBDRkdfTUNNRU0xX1ZBTAkJMHgwMDAxMDIwNAotI2RlZmluZSBDRkdfTUNBVFQwX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTAkJMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNJTzBfVkFMCQkweDAwMDA4NDA3Ci0jZGVmaW5lIENGR19NQ0lPMV9WQUwJCTB4MDAwMGMxMDgKKyNkZWZpbmUgQ09ORklHX1NZU19NRUNSX1ZBTAkJMHgwMDAwMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX01DTUVNMF9WQUwJCTB4MDAwMDQyMDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTFfVkFMCQkweDAwMDEwMjA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMV9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMF9WQUwJCTB4MDAwMDg0MDcKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMV9WQUwJCTB4MDAwMGMxMDgKIAogI2RlZmluZSBDT05GSUdfRFJJVkVSX0RNOTAwMAkJMQogI2RlZmluZSBDT05GSUdfRE05MDAwX0JBU0UJMHgwODAwMDAwMApAQCAtMjgxLDM2ICsyODEsMzYgQEAKICNkZWZpbmUgRE05MDAwX0RBVEEJCQkoQ09ORklHX0RNOTAwMF9CQVNFKzB4ODAwNCkKIAogI2RlZmluZSBDT05GSUdfVVNCX09IQ0lfTkVXCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMwotI2RlZmluZSBDRkdfVVNCX09IQ0lfUkVHU19CQVNFCTB4NEMwMDAwMDAKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkidHJpemVwc2l2IgorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX01BWF9ST09UX1BPUlRTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9SRUdTX0JBU0UJMHg0QzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX1NMT1RfTkFNRQkidHJpemVwc2l2IgogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UJMQotI2RlZmluZSBDRkdfVVNCX09IQ0lfQ1BVX0lOSVQJMQorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9PSENJX0NQVV9JTklUCTEKIAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKICNkZWZpbmUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIJMQogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJMAotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4NDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDQwMDAwCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNCArIDI1NSAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk0ICsgMjU1ICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNGR19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCSgyNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDI1KkNPTkZJR19TWVNfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCiAKIC8qIHdyaXRlIGZsYXNoIGxlc3Mgc2xvd2x5ICovCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEKIAogLyogRmxhc2ggZW52aXJvbm1lbnQgbG9jYXRpb25zICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyBDRkdfTU9OSVRPUl9MRU4pIC8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pIC8qIEFkZHIgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHg0MDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50CQkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCS8qIFRvdGFsIFNpemUgb2YgRW52aXJvbm1lbnQgU2VjdG9yCSovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy91YzEwMC5oIGIvaW5jbHVkZS9jb25maWdzL3VjMTAwLmgKaW5kZXggMjJlYmYwNy4uMjNmNGM4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3VjMTAwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3VjMTAwLmgKQEAgLTkyLDcgKzkyLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPT1RDT01NQU5ECSJydW4gZmxhc2hfc2VsZiIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTEyLDE3ICsxMTIsMTcgQEAKICNkZWZpbmUgQ09ORklHX0RPU19QQVJUSVRJT04KIAogI3VuZGVmIENPTkZJR19SVENfTVBDOHh4Ci0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJMHg1MQkvKiBQQ0Y4NTYzIFJUQwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTEJLyogUENGODU2MyBSVEMJCQkqLwogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMJCS8qIHVzZSBQaGlsaXBzIFBDRjg1NjMgUlRDCSovCiAKIC8qCiAgKiBQb3dlciBPbiBTZWxmIFRlc3Qgc3VwcG9ydAogICovCi0jZGVmaW5lIENPTkZJR19QT1NUCSAgICAgICggQ0ZHX1BPU1RfQ0FDSEUJCXwgXAotCQkJCUNGR19QT1NUX01FTU9SWQkJfCBcCi0JCQkJQ0ZHX1BPU1RfQ1BVCQl8IFwKLQkJCQlDRkdfUE9TVF9VQVJUCQl8IFwKLQkJCQlDRkdfUE9TVF9TUFIgKQorI2RlZmluZSBDT05GSUdfUE9TVAkgICAgICAoIENPTkZJR19TWVNfUE9TVF9DQUNIRQkJfCBcCisJCQkJQ09ORklHX1NZU19QT1NUX01FTU9SWQkJfCBcCisJCQkJQ09ORklHX1NZU19QT1NUX0NQVQkJfCBcCisJCQkJQ09ORklHX1NZU19QT1NUX1VBUlQJCXwgXAorCQkJCUNPTkZJR19TWVNfUE9TVF9TUFIgKQogI3VuZGVmICBDT05GSUdfUE9TVAogCiAKQEAgLTE1NCwzMyArMTU0LDMzIEBACiAvKgogICogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucwogICovCi0jZGVmaW5lCUNGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZQlDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KIAogI2lmIDAKLSNkZWZpbmUJQ0ZHX0hVU0hfUEFSU0VSCQkxCS8qIHVzZSAiaHVzaCIgY29tbWFuZCBwYXJzZXIJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCiAjZW5kaWYKLSNpZmRlZglDRkdfSFVTSF9QQVJTRVIKLSNkZWZpbmUJQ0ZHX1BST01QVF9IVVNIX1BTMgkiPiAiCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUJMSAgICAgICAvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAKQEAgLTE5Miw1NyArMTkyLDU3IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbnRlcm5hbCBNZW1vcnkgTWFwcGVkIFJlZ2lzdGVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0lNTVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19JTU1SCQkweEYwMDAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYSAoaW4gRFBSQU0pCiAgKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lNTVIKLSNkZWZpbmUJQ0ZHX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLwotI2RlZmluZQlDRkdfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQJKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUJQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCUNPTkZJR19TWVNfSU1NUgorI2RlZmluZQlDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDJGMDAJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBEUFJBTQkqLworI2RlZmluZQlDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJNjQgIC8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4NDAwMDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCShDRkdfRkxBU0hfQkFTRSsweDAwNzAwMDAwKSAvKiByZXNldHZlYyBmZmYwMDEwMCovCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19GTEFTSF9CQVNFKzB4MDA3MDAwMDApIC8qIHJlc2V0dmVjIGZmZjAwMTAwKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQWRkcmVzcyBhY2Nlc3NlZCB0byByZXNldCB0aGUgYm9hcmQgLSBtdXN0IG5vdCBiZSBtYXBwZWQvYXNzaWduZWQKICAqLwotI2RlZmluZSBDRkdfUkVTRVRfQUREUkVTUyAgICAgICAweDkwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyAgICAgICAweDkwMDAwMDAwCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lCUNGR19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCisjZGVmaW5lCUNPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlICAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlciAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9BTURfUkVTRVQJMQkJLyogQU1EIFJFU0VUIGZvciBTVE0gMjlXMzIwREIhICAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQJMQkJLyogQU1EIFJFU0VUIGZvciBTVE0gMjlXMzIwREIhICAqLwogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRStDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFK0NPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZGVmaW5lIENPTkZJR19FTlZfU0VDVF9TSVpFCTB4MjAwMDAJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCQkqLwogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCkBAIC0yNTMsOSArMjUzLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENhY2hlIENvbmZpZ3VyYXRpb24KICAqLwotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMTYJLyogRm9yIGFsbCBNUEM4eHggQ1BVcwkJCSovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk0CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY1LDEwICsyNjUsMTAgQEAKICAqIFNvZnR3YXJlICYgQnVzIE1vbml0b3IgVGltZXIgbWF4LCBCdXMgTW9uaXRvciBlbmFibGUsIFNXIFdhdGNoZG9nIGZyZWV6ZQogICovCiAjaWYgZGVmaW5lZChDT05GSUdfV0FUQ0hET0cpCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFwKIAkJCSBTWVBDUl9TV0UgIHwgU1lQQ1JfU1dSSXwgU1lQQ1JfU1dQKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQorI2RlZmluZSBDT05GSUdfU1lTX1NZUENSCShTWVBDUl9TV1RDIHwgU1lQQ1JfQk1UIHwgU1lQQ1JfQk1FIHwgU1lQQ1JfU1dGIHwgU1lQQ1JfU1dQKQogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3NiwyNyArMjc2LDI3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9GUkMgfCBTSVVNQ1JfREJHQzAwIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfRlJDIHwgU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUQlNDUiAtIFRpbWUgQmFzZSBTdGF0dXMgYW5kIENvbnRyb2wJCQkJMTEtMjYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0zMDQsNyArMzA0LDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdAogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgUExQUkNSX01GX1NISUZUKSB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCgoTVBDOFhYX0ZBQ1QtMSkgPDwgUExQUkNSX01GX1NISUZUKSB8CVwKIAkJCQlQTFBSQ1JfU1BMU1MgfCBQTFBSQ1JfVEVYUFMgfCBQTFBSQ1JfVE1JU1QpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMxNCwyMSArMzE0LDIxIEBACiAgKiBwb3dlciBtYW5hZ2VtZW50IGFuZCBzb21lIG90aGVyIGludGVybmFsIGNsb2NrcwogICovCiAjZGVmaW5lIFNDQ1JfTUFTSwkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TQ0NSICAgICAgICAoU0NDUl9FQkRGMTEpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUiAgICAgICAgKFNDQ1JfRUJERjExKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMzQxLDI4ICszNDEsMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTM3NywyOCArMzc3LDI4IEBACiAgKiByZXN0cmljdCBhY2Nlc3MgZW5vdWdoIHRvIGtlZXAgU1JBTSB3b3JraW5nIChpZiBhbnkpCiAgKiBidXQgbm90IHRvbyBtdWNoIHRvIG1lZGRsZSB3aXRoIEZMQVNIIGFjY2Vzc2VzCiAgKi8KLSNkZWZpbmUgQ0ZHX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwotI2RlZmluZSBDRkdfUFJFTElNX09SX0FNCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVNQVBfT1JfQU0JCTB4ODAwMDAwMDAJLyogT1IgYWRkciBtYXNrICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJFTElNX09SX0FNCTB4RkY4MDAwMDAJLyogT1IgYWRkciBtYXNrICovCiAKIC8qCiAgKiBGTEFTSCB0aW1pbmc6CiAgKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19GTEFTSAkoMHgwMDAwMGQyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKDB4MDAwMDBkMjQpCiAKLSNkZWZpbmUgQ0ZHX09SMF9SRU1BUAkoQ0ZHX1JFTUFQX09SX0FNICB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19PUjBfUFJFTElNCShDRkdfUFJFTElNX09SX0FNIHwgQ0ZHX09SX1RJTUlOR19GTEFTSCkKLSNkZWZpbmUgQ0ZHX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1JFTUFQCShDT05GSUdfU1lTX1JFTUFQX09SX0FNICB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9QUkVMSU0JKENPTkZJR19TWVNfUFJFTElNX09SX0FNIHwgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gpCisjZGVmaW5lIENPTkZJR19TWVNfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAotI2RlZmluZSBDRkdfQlIxX1BSRUxJTSAgMHgwMDAwMDA4MSAgLyogQ2hpcCBzZWxlY3QgZm9yIFNEUkFNICgzMiBCaXQsIFVQTUEpICovCi0jZGVmaW5lIENGR19PUjFfUFJFTElNICAweGZjMDAwYTAwCi0jZGVmaW5lIENGR19CUjJfUFJFTElNICAweDgwMDAwMDAxICAvKiBDaGlwIHNlbGVjdCBmb3IgU1JBTSAoMzIgQml0LCBHUENNKSAqLwotI2RlZmluZSBDRkdfT1IyX1BSRUxJTSAgMHhmZmYwMGQyNAotI2RlZmluZSBDRkdfQlIzX1BSRUxJTSAgMHg4MDYwMDQwMSAgLyogQ2hpcCBzZWxlY3QgZm9yIERpc3BsYXkgKDggQml0LCBHUENNKSAqLwotI2RlZmluZSBDRkdfT1IzX1BSRUxJTSAgMHhmZmZmOGY0NAotI2RlZmluZSBDRkdfQlI0X1BSRUxJTSAgMHhjMDUxMDhjMSAgLyogQ2hpcCBzZWxlY3QgZm9yIEludGVyYnVzIE1QTSAoMTYgQml0LCBVUE1CKSAqLwotI2RlZmluZSBDRkdfT1I0X1BSRUxJTSAgMHhmZmZmMDMwMAotI2RlZmluZSBDRkdfQlI1X1BSRUxJTSAgMHhjMDUwMDQwMSAgLyogQ2hpcCBzZWxlY3QgZm9yIEludGVyYnVzIFN0YXR1cyAoOCBCaXQsIEdQQ00pICovCi0jZGVmaW5lIENGR19PUjVfUFJFTElNICAweGZmZmY4ZGIwCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTSAgMHgwMDAwMDA4MSAgLyogQ2hpcCBzZWxlY3QgZm9yIFNEUkFNICgzMiBCaXQsIFVQTUEpICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTSAgMHhmYzAwMGEwMAorI2RlZmluZSBDT05GSUdfU1lTX0JSMl9QUkVMSU0gIDB4ODAwMDAwMDEgIC8qIENoaXAgc2VsZWN0IGZvciBTUkFNICgzMiBCaXQsIEdQQ00pICovCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTSAgMHhmZmYwMGQyNAorI2RlZmluZSBDT05GSUdfU1lTX0JSM19QUkVMSU0gIDB4ODA2MDA0MDEgIC8qIENoaXAgc2VsZWN0IGZvciBEaXNwbGF5ICg4IEJpdCwgR1BDTSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfUFJFTElNICAweGZmZmY4ZjQ0CisjZGVmaW5lIENPTkZJR19TWVNfQlI0X1BSRUxJTSAgMHhjMDUxMDhjMSAgLyogQ2hpcCBzZWxlY3QgZm9yIEludGVyYnVzIE1QTSAoMTYgQml0LCBVUE1CKSAqLworI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0gIDB4ZmZmZjAzMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CUjVfUFJFTElNICAweGMwNTAwNDAxICAvKiBDaGlwIHNlbGVjdCBmb3IgSW50ZXJidXMgU3RhdHVzICg4IEJpdCwgR1BDTSkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNICAweGZmZmY4ZGIwCiAKIC8qCiAgKiBNZW1vcnkgUGVyaW9kaWMgVGltZXIgUHJlc2NhbGVyCkBAIC00MjgsMzkgKzQyOCwzOSBAQAogICogMTAwIE1oeiA9PiAxMDAuMDAwLjAwMCAvIERpdmlkZXIgPSAxOTUKICAqLwogCi0jZGVmaW5lIENGR19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCi0jZGVmaW5lIENGR19NQU1SX1BUQQk5OAorI2RlZmluZSBDT05GSUdfU1lTX1BUQV9QRVJfQ0xLCSgoNDA5NiAqIDMyICogMTAwMCkgLyAoNCAqIDY0KSkKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5OAogCiAvKgogICogRm9yIDE2IE1CaXQsIHJlZnJlc2ggcmF0ZXMgY291bGQgYmUgMzEuMyB1cwogICogKD0gNjQgbXMgLyAySyA9IDEyNSAvIHF1YWQgYnVyc3RzKS4KICAqIEZvciBhIHNpbXBsZXIgaW5pdGlhbGl6YXRpb24sIDE1LjYgdXMgaXMgdXNlZCBpbnN0ZWFkLgogICoKLSAqICNkZWZpbmUgQ0ZHX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCi0gKiAjZGVmaW5lIENGR19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMkJLXzJLCU1QVFBSX1BUUF9ESVYzMgkJZm9yIDIgYmFua3MKKyAqICNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfMksJTVBUUFJfUFRQX0RJVjY0CQlmb3IgMSBiYW5rCiAgKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS180SwlNUFRQUl9QVFBfRElWMzIJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS180SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyogcmVmcmVzaCByYXRlIDcuOCB1cyAoPSA2NCBtcyAvIDhLID0gMzEuMiAvIHF1YWQgYnVyc3RzKSBmb3IgMjU2IE1CaXQJCSovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KLSNkZWZpbmUgQ0ZHX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS184SwlNUFRQUl9QVFBfRElWOAkJLyogc2V0dGluZyBmb3IgMiBiYW5rcwkqLworI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzFCS184SwlNUFRQUl9QVFBfRElWMTYJCS8qIHNldHRpbmcgZm9yIDEgYmFuawkqLwogCiAvKgogICogTUFNUiBzZXR0aW5ncyBmb3IgU0RSQU0KICAqLwogCiAvKiA4IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl84Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOENPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8wIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTEgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIC8qIDkgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzlDT0wJKChDRkdfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl85Q09MCSgoQ09ORklHX1NZU19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKIAkJCSBNQU1SX0FNQV9UWVBFXzEgfCBNQU1SX0RTQV8xX0NZQ0wgfCBNQU1SX0cwQ0xBX0ExMCB8CVwKIAkJCSBNQU1SX1JMRkFfMVgJIHwgTUFNUl9XTEZBXzFYCSAgIHwgTUFNUl9UTEZBXzRYKQogCi0jZGVmaW5lCUNGR19NQU1SX1ZBTAkweDMwOTA0MTE0CS8qIGZvciBTRFJBTSAqLwotI2RlZmluZQlDRkdfTUJNUl9WQUwJMHhmZjAwMTExMQkvKiBmb3IgSW50ZXJidXMtTVBNICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUFNUl9WQUwJMHgzMDkwNDExNAkvKiBmb3IgU0RSQU0gKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQk1SX1ZBTAkweGZmMDAxMTExCS8qIGZvciBJbnRlcmJ1cy1NUE0gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIHN0dWZmCkBAIC00NzAsOCArNDcwLDggQEAKICN1bmRlZglDT05GSUdfSEFSRF9JMkMJCQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0CSovCiAjZGVmaW5lCUNPTkZJR19TT0ZUX0kyQyAgICAgICAgIDEJLyogSTJDIGJpdC1iYW5nZWQJCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJOTMwMDAJLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHhGRQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJOTMwMDAJLyogOTMga0h6IGlzIHN1cHBvc2VkIHRvIHdvcmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUJCTB4RkUKIAogI2lmZGVmIENPTkZJR19TT0ZUX0kyQwogLyoKQEAgLTQ5NCwxMCArNDk0LDEwIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgRUVQUk9NICgyNEMxNjQpCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkweDU4CS8qIEVFUFJPTSBBVDI0QzE2NAkJKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JMQotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogdGFrZXMgdXAgdG8gMTAgbXNlYwkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTgJLyogRUVQUk9NIEFUMjRDMTY0CQkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQorI2RlZmluZSBDT05GSUdfU1lTX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIHRha2VzIHVwIHRvIDEwIG1zZWMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTCTQKIAogLyoKICAqIEludGVybmFsIERlZmluaXRpb25zCkBAIC01MTEsNiArNTExLDYgQEAKICNkZWZpbmUgRkVDX0VORVQKICNkZWZpbmUgQ09ORklHX01JSQogI2RlZmluZSBDT05GSUdfTUlJX0lOSVQJCTEKLSNkZWZpbmUgQ0ZHX0RJU0NPVkVSX1BIWQkxCisjZGVmaW5lIENPTkZJR19TWVNfRElTQ09WRVJfUEhZCTEKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy91YzEwMS5oIGIvaW5jbHVkZS9jb25maWdzL3VjMTAxLmgKaW5kZXggZThkYWFlMy4uNTUzZWIyNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3VjMTAxLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3VjMTAxLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgQ09ORklHX01QQzUyMDAJCTEJLyogKG1vcmUgcHJlY2lzZWx5IGFuIE1QQzUyMDAgQ1BVKQkqLwogI2RlZmluZSBDT05GSUdfVUMxMDEJCTEJLyogVUMxMDEgYm9hcmQJCQkqLwogCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwIC8qIC4uLiBydW5uaW5nIGF0IDMzLjAwMDAwME1IegkJKi8KIAogI2RlZmluZSBCT09URkxBR19DT0xECQkweDAxCS8qIE5vcm1hbCBQb3dlci1PbjogQm9vdCBmcm9tIEZMQVNICSovCiAjZGVmaW5lIEJPT1RGTEFHX1dBUk0JCTB4MDIJLyogU29mdHdhcmUgcmVib290CQkJKi8KQEAgLTQ3LDcgKzQ3LDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEJKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMJKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKiBQYXJ0aXRpb25zICovCiAjZGVmaW5lIENPTkZJR19ET1NfUEFSVElUSU9OCkBAIC04NCw3ICs4NCw3IEBACiAjZGVmaW5lCUNPTkZJR19USU1FU1RBTVAJMQkvKiBQcmludCBpbWFnZSBpbmZvIHdpdGggdGltZXN0YW1wICovCiAKICNpZiAoVEVYVF9CQVNFID09IDB4RkZGMDAwMDApIC8qIEJvb3QgbG93ICovCi0jICAgZGVmaW5lIENGR19MT1dCT09UCQkxCisjICAgZGVmaW5lIENPTkZJR19TWVNfTE9XQk9PVAkJMQogI2VuZGlmCiAKIC8qCkBAIC0xMjAsNTYgKzEyMCw1NiBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI2RlZmluZSBDRkdfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjZGVmaW5lIENPTkZJR19TWVNfSVBCQ0xLX0VRVUFMU19YTEJDTEsJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAKIC8qCiAgKiBJMkMgY29uZmlndXJhdGlvbgogICovCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwkJMQkvKiBJMkMgd2l0aCBoYXJkd2FyZSBzdXBwb3J0ICovCi0jZGVmaW5lIENGR19JMkNfTU9EVUxFCQkyCS8qIFNlbGVjdCBJMkMgbW9kdWxlICMxIG9yICMyICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX01PRFVMRQkJMgkvKiBTZWxlY3QgSTJDIG1vZHVsZSAjMSBvciAjMiAqLwogCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMCAvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTgKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJNAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTgKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAKIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX1JUQ19QQ0Y4NTYzCi0jZGVmaW5lIENGR19JMkNfUlRDX0FERFIJCTB4NTEKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfUlRDX0FERFIJCTB4NTEKIAogLyogSTJDIFNZU01PTiAoTE03NSkgKi8KICNkZWZpbmUgQ09ORklHX0RUVF9MTTgxCQkJMQkvKiBPTiBTZW1pJ3MgTE03NQkJKi8KICNkZWZpbmUgQ09ORklHX0RUVF9TRU5TT1JTCQl7MH0JLyogU2Vuc29yIGFkZHJlc3NlcwkJKi8KLSNkZWZpbmUgQ0ZHX0RUVF9NQVhfVEVNUAkJNzAKLSNkZWZpbmUgQ0ZHX0RUVF9MT1dfVEVNUAkJLTMwCi0jZGVmaW5lIENGR19EVFRfSFlTVEVSRVNJUwkJMworI2RlZmluZSBDT05GSUdfU1lTX0RUVF9NQVhfVEVNUAkJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJCS0zMAorI2RlZmluZSBDT05GSUdfU1lTX0RUVF9IWVNURVJFU0lTCQkzCiAKIC8qCiAgKiBGbGFzaCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkY4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweEZGODAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDA4MDAwMDAgLyogOCBNQnl0ZSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTQwCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9TSVpFCQkweDAwODAwMDAwIC8qIDggTUJ5dGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkxNDAJLyogbWF4IG51bSBvZiBzZWN0cyBvbiBvbmUgY2hpcCAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFRFWFRfQkFTRSsweDQwMDAwKSAvKiBzZWNvbmQgc2VjdG9yICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtIG9mIGZsYXNoIGJhbmtzCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcwogCQkJCQkgICAoPSBjaGlwIHNlbGVjdHMpICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTI0MDAwMAkvKiBGbGFzaCBFcmFzZSBUaW1lb3V0IChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMjQwMDAwCS8qIEZsYXNoIEVyYXNlIFRpbWVvdXQgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIEZsYXNoIFdyaXRlIFRpbWVvdXQgKGluIG1zKQkqLwogCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCi0jZGVmaW5lIENGR19GTEFTSF9DRkkKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSV9BTURfUkVTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJX0FNRF9SRVNFVAogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dGluZ3MKQEAgLTE4MywxNCArMTgzLDE0IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAogCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19TUkFNX0JBU0UJCTB4ODAxMDAwMDAJLyogQ1MgMSAqLwotI2RlZmluZSBDRkdfRElTUExBWV9CQVNFCTB4ODA2MDAwMDAJLyogQ1MgMyAqLwotI2RlZmluZQlDRkdfSUJfTUFTVEVSCQkweGMwNTEwMDAwCS8qIENTIDYgKi8KLSNkZWZpbmUgQ0ZHX0lCX0VQTEQJCTB4YzA1MDAwMDAJLyogQ1MgNyAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX0JBU0UJCTB4ODAxMDAwMDAJLyogQ1MgMSAqLworI2RlZmluZSBDT05GSUdfU1lTX0RJU1BMQVlfQkFTRQkweDgwNjAwMDAwCS8qIENTIDMgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19JQl9NQVNURVIJCTB4YzA1MTAwMDAJLyogQ1MgNiAqLworI2RlZmluZSBDT05GSUdfU1lTX0lCX0VQTEQJCTB4YzA1MDAwMDAJLyogQ1MgNyAqLwogCiAvKiBTZXR0aW5ncyBmb3IgWExCID0gMTMyIE1IeiAqLwogI2RlZmluZSBTRFJBTV9ERFIJIDEKQEAgLTIwMiwzMiArMjAyLDMyIEBACiAjZGVmaW5lIFNEUkFNX1RBUERFTEFZICAweDEwMDAwMDAwCiAKIC8qIFNSQU0gKi8KLSNkZWZpbmUgU1JBTV9CQVNFCQlDRkdfU1JBTV9CQVNFCS8qIFNSQU0gYmFzZSBhZGRyZXNzCSovCisjZGVmaW5lIFNSQU1fQkFTRQkJQ09ORklHX1NZU19TUkFNX0JBU0UJLyogU1JBTSBiYXNlIGFkZHJlc3MJKi8KICNkZWZpbmUgU1JBTV9MRU4JCTB4MWZmZmZmCiAjZGVmaW5lIFNSQU1fRU5ECQkoU1JBTV9CQVNFICsgU1JBTV9MRU4pCiAKIC8qIFVzZSBPTi1DaGlwIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJTVBDNVhYWF9TUkFNCiAjaWZkZWYgQ09ORklHX1BPU1QKIC8qIHByZXNlcnZlIHNwYWNlIGZvciB0aGUgcG9zdF93b3JkIGF0IGVuZCBvZiBvbi1jaGlwIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fUE9TVF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9QT1NUX1NJWkUKICNlbHNlCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJTVBDNVhYWF9TUkFNX1NJWkUKICNlbmRpZgogCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwotI2RlZmluZSBDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMTkyIDw8IDEwKQkvKiBSZXNlcnZlIDE5MiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg1MTIgPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTIzOSw3ICsyMzksNyBAQAogLyoKICAqIEdQSU8gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19HUFNfUE9SVF9DT05GSUcJMHg0ZDU1ODA0NAorI2RlZmluZSBDT05GSUdfU1lTX0dQU19QT1JUX0NPTkZJRwkweDRkNTU4MDQ0CiAKIC8qdXNlICBIYXJkd2FyZSBXRFQgKi8KICNkZWZpbmUgQ09ORklHX0hXX1dBVENIRE9HCkBAIC0yNDcsMzAgKzI0NywzMCBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSI9PiAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAogLyogRW5hYmxlIGFuIGFsdGVybmF0ZSwgbW9yZSBleHRlbnNpdmUgbWVtb3J5IHRlc3QgKi8KLSNkZWZpbmUgQ0ZHX0FMVF9NRU1URVNUCisjZGVmaW5lIENPTkZJR19TWVNfQUxUX01FTVRFU1QKIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwMzAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDMgLi4uIDE1IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4MDAzMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbiAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDAwZjAwMDAwCS8qIDMgLi4uIDE1IE1CIGluIERSQU0JKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDMwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHgzMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogCi0jZGVmaW5lIENGR19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQkzMgkvKiBGb3IgTVBDNXh4eCBDUFVzCQkJKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKQEAgLTI4Miw0MSArMjgyLDQxIEBACiAgKiBWYXJpb3VzIGxvdy1sZXZlbCBzZXR0aW5ncwogICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVBDNTIwMCkKLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAjZWxzZQotI2RlZmluZSBDRkdfSElEMF9JTklUCQkwCi0jZGVmaW5lIENGR19ISUQwX0ZJTkFMCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQkwCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9GSU5BTAkJMAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDQ1RDAwCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNDVEMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAogLyogOE1iaXQgU1JBTSBAMHg4MDEwMDAwMCAqLwotI2RlZmluZSBDRkdfQ1MxX1NUQVJUCQlDRkdfU1JBTV9CQVNFCi0jZGVmaW5lIENGR19DUzFfU0laRQkJMHgwMDIwMDAwMAotI2RlZmluZSBDRkdfQ1MxX0NGRwkJMHgyMUQwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9TVEFSVAkJQ09ORklHX1NZU19TUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfU0laRQkJMHgwMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMV9DRkcJCTB4MjFEMDAKIAogLyogRGlzcGxheSBIMSwgU3RhdHVzIElucHV0cywgRVBMRCBAMHg4MDYwMDAwMCA4IEJpdCAqLwotI2RlZmluZSBDRkdfQ1MzX1NUQVJUCQlDRkdfRElTUExBWV9CQVNFCi0jZGVmaW5lIENGR19DUzNfU0laRQkJMHgwMDAwMDEwMAotI2RlZmluZSBDRkdfQ1MzX0NGRwkJMHgwMDA4MTgwMgorI2RlZmluZSBDT05GSUdfU1lTX0NTM19TVEFSVAkJQ09ORklHX1NZU19ESVNQTEFZX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19DUzNfU0laRQkJMHgwMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19DRkcJCTB4MDAwODE4MDIKIAogLyogSW50ZXJidXMgTWFzdGVyIDE2IEJpdCAqLwotI2RlZmluZSBDRkdfQ1M2X1NUQVJUCQlDRkdfSUJfTUFTVEVSCi0jZGVmaW5lIENGR19DUzZfU0laRQkJMHgwMDAxMDAwMAotI2RlZmluZSBDRkdfQ1M2X0NGRwkJMHgwMEZGMzUwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNl9TVEFSVAkJQ09ORklHX1NZU19JQl9NQVNURVIKKyNkZWZpbmUgQ09ORklHX1NZU19DUzZfU0laRQkJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNl9DRkcJCTB4MDBGRjM1MDAKIAogLyogSW50ZXJidXMgRVBMRCA4IEJpdCAqLwotI2RlZmluZSBDRkdfQ1M3X1NUQVJUCQlDRkdfSUJfRVBMRAotI2RlZmluZSBDRkdfQ1M3X1NJWkUJCTB4MDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX0NTN19DRkcJCTB4MDAwODE4MDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzdfU1RBUlQJCUNPTkZJR19TWVNfSUJfRVBMRAorI2RlZmluZSBDT05GSUdfU1lTX0NTN19TSVpFCQkweDAwMDEwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQ1M3X0NGRwkJMHgwMDA4MTgwMAogCi0jZGVmaW5lIENGR19DU19CVVJTVAkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfQ1NfREVBRENZQ0xFCTB4MzMzMzMzMzMKKyNkZWZpbmUgQ09ORklHX1NZU19DU19CVVJTVAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgU3VwcG9ydHMgSURFIGhhcmRkaXNrCkBAIC0zMjgsMzMgKzMyOCwzMyBAQAogI3VuZGVmCUNPTkZJR19JREVfOHh4X0RJUkVDVAkJLyogRGlyZWN0IElERSAgICBub3Qgc3VwcG9ydGVkCSovCiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMgkvKiBtYXguIDIgZHJpdmVzIHBlciBJREUgYnVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYREVWSUNFCTIJLyogbWF4LiAyIGRyaXZlcyBwZXIgSURFIGJ1cwkqLwogCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAkxCiAKLSNkZWZpbmUgQ0ZHX0FUQV9JREUwX09GRlNFVAkweDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCiAKLSNkZWZpbmUgQ0ZHX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCU1QQzVYWFhfQVRBCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCiAKIC8qIE9mZnNldCBmb3Igbm9ybWFsIHJlZ2lzdGVyIGFjY2Vzc2VzCSovCi0jZGVmaW5lIENGR19BVEFfUkVHX09GRlNFVAkoQ0ZHX0FUQV9EQVRBX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCiAKIC8qIE9mZnNldCBmb3IgYWx0ZXJuYXRlIHJlZ2lzdGVycwkqLwotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQogCiAvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIENGR19BVEFfU1RSSURFICAgICAgICAgIDQKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfU1RSSURFICAgICAgICAgIDQKIAogI2RlZmluZSBDT05GSUdfQVRBUEkgICAgICAgICAgICAxCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIERpc3BsYXkgYWRkcmVzc2VzCQkJCQkJICAgICAgICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19ESVNQX0NIUl9SQU0JKENGR19ESVNQTEFZX0JBU0UgKyAweDM4KQotI2RlZmluZSBDRkdfRElTUF9DV09SRAkJKENGR19ESVNQTEFZX0JBU0UgKyAweDMwKQorI2RlZmluZSBDT05GSUdfU1lTX0RJU1BfQ0hSX1JBTQkoQ09ORklHX1NZU19ESVNQTEFZX0JBU0UgKyAweDM4KQorI2RlZmluZSBDT05GSUdfU1lTX0RJU1BfQ1dPUkQJCShDT05GSUdfU1lTX0RJU1BMQVlfQkFTRSArIDB4MzApCiAKICNlbmRpZiAvKiBfX0NPTkZJR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvdXR4ODI0NS5oIGIvaW5jbHVkZS9jb25maWdzL3V0eDgyNDUuaAppbmRleCA0MzU1ZTFjLi42ZTljMjdjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdXR4ODI0NS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy91dHg4MjQ1LmgKQEAgLTU1LDcgKzU1LDcgQEAKIAogI2RlZmluZSBDT05GSUdfQ09OU19JTkRFWAkxCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJNTc2MDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKICNkZWZpbmUgQ09ORklHX0JPT1RERUxBWQkyCiAjZGVmaW5lIENPTkZJR19BVVRPQk9PVF9QUk9NUFQJImF1dG9ib290IGluICVkIHNlY29uZHNcbiIsIGJvb3RkZWxheQpAQCAtNjMsNyArNjMsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVEFSR1MJCSJyb290PS9kZXYvcmFtIGNvbnNvbGU9dHR5UzAsNTc2MDAiIC8qIFJBTWRpc2sgKi8KICNkZWZpbmUgQ09ORklHX0VUSEFERFIJCTAwOkFBOjAwOjE0OjAwOjA1CS8qIFVUWDUgKi8KICNkZWZpbmUgQ09ORklHX1NFUlZFUklQCQkxMC44LjE3LjEwNQkvKiBTcHJlZSAqLwotI2RlZmluZSBDRkdfVEZUUF9MT0FEQUREUgkxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RGVFBfTE9BREFERFIJMTAwMDAKIAogI2RlZmluZSBDT05GSUdfRVhUUkFfRU5WX1NFVFRJTkdTIFwKIAkia2VybmVsX2FkZHI9RkZBMDAwMDBcMCIgXApAQCAtMTIxLDE2ICsxMjEsMTYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSI9PiAiCQkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJMjU2CQkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAKIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19QQlNJWkUJKENGR19DQlNJWkUgKyBzaXplb2YoQ0ZHX1BST01QVCkgKyAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFICsgc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSArIDE2KQogCi0jZGVmaW5lCUNGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHgwMDEwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJMHgwMDEwMDAwMAkvKiBEZWZhdWx0IGxvYWQgYWRkcmVzcwkJKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNDIsNyArMTQyLDcgQEAKICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cKICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQogI2RlZmluZSBDT05GSUdfRUVQUk8xMDAKLSNkZWZpbmUgQ0ZHX1JYX0VUSF9CVUZGRVIJOCAgICAgICAgICAgICAgIC8qIHVzZSA4IHJ4IGJ1ZmZlciBvbiBlZXBybzEwMCAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTggICAgICAgICAgICAgICAvKiB1c2UgOCByeCBidWZmZXIgb24gZWVwcm8xMDAgICovCiAjZGVmaW5lIENPTkZJR19FRVBSTzEwMF9TUk9NX1dSSVRFCiAKICNkZWZpbmUgUENJX0VORVQwX0lPQUREUgkweEYwMDAwMDAwCkBAIC0xNjEsNjEgKzE2MSw2MSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01BWF9SQU1fU0laRSAgICAweDEwMDAwMDAwCS8qIDI1Nk1CICAqLwotLyojZGVmaW5lIENGR19WRVJZX0JJR19SQU0JMSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0JBU0UJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUgICAgMHgxMDAwMDAwMAkvKiAyNTZNQiAgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX1ZFUllfQklHX1JBTQkxICovCiAKIC8qIEZMQVNIX0JBU0UgaXMgRkY4MDAwMDAsIHdpdGggNE1CIG9uIFJDUzAsIGJ1dCB0aGUgcmVzZXQgdmVjdG9yCiAgKiBpcyBhY3R1YWxseSBsb2NhdGVkIGF0IEZGRjAwMTAwLiAgVGhlcmVmb3JlLCBVLUJvb3QgaXMKICAqIHBoeXNpY2FsbHkgbG9jYXRlZCBhdCAweEZGQjBfMDAwMCwgYnV0IGlzIGFsc28gbWlycm9yZWQgYXQKICAqIDB4RkZGMF8wMDAwLgogICovCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTICAgMHhGRkYwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MgICAweEZGRjAwMTAwCiAKLSNkZWZpbmUgQ0ZHX0VVTUJfQUREUgkgICAgMHhGQzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0VVTUJfQUREUgkgICAgMHhGQzAwMDAwMAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UgICAgVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICAgIFRFWFRfQkFTRQogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkgICAgKDI1NiA8PCAxMCkgLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCSAgICAoMjU2IDw8IDEwKSAvKiBSZXNlcnZlIDI1NiBrQiBmb3IgTW9uaXRvcgkqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAgICgxMjggPDwgMTApIC8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCi0vKiNkZWZpbmUgQ0ZHX0RSQU1fVEVTVAkJMSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVCAgIDB4MDAwMDMwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkwLi4uMjU2IE1CCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkgICAgMHgwZmY4ZmZhNwkvKiBpbiBTRFJBTSwgc2tpcHMgZXhjZXB0aW9uICovCisvKiNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1RFU1QJCTEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgMHgwMDAwMzAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCTAuLi4yNTYgTUIJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkgICAgMHgwZmY4ZmZhNwkvKiBpbiBTRFJBTSwgc2tpcHMgZXhjZXB0aW9uICovCiAJCQkJCQkJCQkJLyogdmVjdG9ycyBhbmQgVS1Cb290ICovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19JTklUX0RBVEFfU0laRSAgICAxMjgJLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX0RBVEFfU0laRSAgICAxMjgJLyogU2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgKi8KIAkJCQkJCQkJCS8qIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5EICAgICAgMHgxMDAwCi0jZGVmaW5lIENGR19JTklUX0RBVEFfT0ZGU0VUICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19JTklUX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4Ci0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgIChDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAgICAgIDB4MTAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfSU5JVF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgIChDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTlMxNjU1MCBDb25maWd1cmF0aW9uCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAogCi0jZGVmaW5lIENGR19OUzE2NTUwX1JFR19TSVpFCTEKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFCTEKIAogI2lmIChDT05GSUdfQ09OU19JTkRFWCA9PSAxIHx8IENPTkZJR19DT05TX0lOREVYID09IDIpCi0jCWRlZmluZSBDRkdfTlMxNjU1MF9DTEsJCWdldF9idXNfZnJlcSgwKQorIwlkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NMSwkJZ2V0X2J1c19mcmVxKDApCiAjZWxzZQotIwlkZWZpbmUgQ0ZHX05TMTY1NTBfQ0xLIDMzMDAwMDAwCisjCWRlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLIDMzMDAwMDAwCiAjZW5kaWYKIAotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00xCShDRkdfRVVNQl9BRERSICsgMHg0NTAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00yCShDRkdfRVVNQl9BRERSICsgMHg0NjAwKQotI2RlZmluZSBDRkdfTlMxNjU1MF9DT00zCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NNAkweEZGMDAwMDA4CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT00xCShDT05GSUdfU1lTX0VVTUJfQUREUiArIDB4NDUwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTIJKENPTkZJR19TWVNfRVVNQl9BRERSICsgMHg0NjAwKQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMwkweEZGMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DT000CTB4RkYwMDAwMDgKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogTG93IExldmVsIENvbmZpZ3VyYXRpb24gU2V0dGluZ3MKQEAgLTIyNSwxMCArMjI1LDEwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUSAgMzMwMDAwMDAKLSNkZWZpbmUgQ0ZHX0haCQkJCTEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkxMDAwCiAKLS8qI2RlZmluZSBDRkdfRVRIX0RFVl9GTgkgICAgIDB4NzgwMCAqLwotLyojZGVmaW5lIENGR19FVEhfSU9CQVNFCSAgICAgMHgwMDEwNDAwMCAqLworLyojZGVmaW5lIENPTkZJR19TWVNfRVRIX0RFVl9GTgkgICAgIDB4NzgwMCAqLworLyojZGVmaW5lIENPTkZJR19TWVNfRVRIX0lPQkFTRQkgICAgIDB4MDAxMDQwMDAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDIENvbmZpZ3VyYXRpb24KQEAgLTIzNiwxMyArMjM2LDEzIEBACiAjaWYgMQogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIFRvIGVuYWJsZSBJMkMgc3VwcG9ydAkqLwogI3VuZGVmICBDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfUlRDX1BDRjg1NjMJMQkJLyogZW5hYmxlIEkyQyBzdXBwb3J0IGZvciAqLwogCQkJCQkJCQkJLyogUGhpbGlwcyBQQ0Y4NTYzIFJUQyAqLwotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCTB4NTEJLyogUGhpbGlwcyBQQ0Y4NTYzIFJUQyBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NTEJLyogUGhpbGlwcyBQQ0Y4NTYzIFJUQyBhZGRyZXNzICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCU1lbW9yeSBDb250cm9sIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgdmFsdWVzCkBAIC0yNTAsNTkgKzI1MCw1OSBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAvKioqKiBNQ0NSMSAqKioqLwotI2RlZmluZSBDRkdfUk9NTkFMCSAgICAwCi0jZGVmaW5lIENGR19ST01GQUwJICAgIDEwCQkvKiAodGFjYz03MG5zKSptZW1fZnJlcSAtIDIsCisjZGVmaW5lIENPTkZJR19TWVNfUk9NTkFMCSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfUk9NRkFMCSAgICAxMAkJLyogKHRhY2M9NzBucykqbWVtX2ZyZXEgLSAyLAogCQkJCQkJCQkJbWVtX2ZyZXEgPSAxMDBNSHogKi8KIAotI2RlZmluZSBDRkdfQkFOSzdfUk9XCTAJCS8qIFNEUkFNIGJhbmsgNy0wIHJvdyBhZGRyZXNzICovCi0jZGVmaW5lIENGR19CQU5LNl9ST1cJMAkJLyoJYml0IGNvdW50ICovCi0jZGVmaW5lIENGR19CQU5LNV9ST1cJMAotI2RlZmluZSBDRkdfQkFOSzRfUk9XCTAKLSNkZWZpbmUgQ0ZHX0JBTkszX1JPVwkwCi0jZGVmaW5lIENGR19CQU5LMl9ST1cJMAotI2RlZmluZSBDRkdfQkFOSzFfUk9XCTIKLSNkZWZpbmUgQ0ZHX0JBTkswX1JPVwkyCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfUk9XCTAJCS8qIFNEUkFNIGJhbmsgNy0wIHJvdyBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzZfUk9XCTAJCS8qCWJpdCBjb3VudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1JPVwkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfUk9XCTAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19ST1cJMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1JPVwkwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzFfUk9XCTIKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMF9ST1cJMgogCiAvKioqKiBNQ0NSMiwgcmVmcmVzaCBpbnRlcnZhbCBjbG9jayBjeWNsZXMgKioqKi8KLSNkZWZpbmUgQ0ZHX1JFRklOVAkgICAgNDgwCSAgICAvKiAzMyBNSHogU0RSQU0gY2xvY2sgd2FzIDQ4MCAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFRklOVAkgICAgNDgwCSAgICAvKiAzMyBNSHogU0RSQU0gY2xvY2sgd2FzIDQ4MCAqLwogCiAvKiBCdXJzdCBUbyBQcmVjaGFyZ2UuIEJpdHMgb2YgdGhpcyB2YWx1ZSBnbyB0byBNQ0NSMyBhbmQgTUNDUjQuICovCi0jZGVmaW5lIENGR19CU1RPUFJFCSAgICAxMDIzCS8qIGJ1cnN0IHRvIHByZWNoYXJnZVswLi45XSwgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CU1RPUFJFCSAgICAxMDIzCS8qIGJ1cnN0IHRvIHByZWNoYXJnZVswLi45XSwgKi8KIAkJCQkJCQkJLyogc2V0cyBvcGVuIHBhZ2UgaW50ZXJ2YWwgKi8KIAogLyoqKiogTUNDUjMgKioqKi8KLSNkZWZpbmUgQ0ZHX1JFRlJFQwkgICAgNwkgICAgLyogUmVmcmVzaCB0byBhY3RpdmF0ZSBpbnRlcnZhbCwgdHJjICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVGUkVDCSAgICA3CSAgICAvKiBSZWZyZXNoIHRvIGFjdGl2YXRlIGludGVydmFsLCB0cmMgKi8KIAogLyoqKiogTUNDUjQgKioqKi8KLSNkZWZpbmUgQ0ZHX1BSRVRPQUNUCSAgICAyCSAgICAvKiB0cnAgKi8KLSNkZWZpbmUgQ0ZHX0FDVFRPUFJFCSAgICA3CSAgICAvKiB0cmNkICsgKGJ1cnN0IGxlbmd0aCAtIDEpICsgdHJkbCAqLwotI2RlZmluZSBDRkdfU0RNT0RFX0NBU19MQVQgIDMJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeSAqLwotI2RlZmluZSBDRkdfU0RNT0RFX1dSQVAJICAgIDAJICAgIC8qIFNETU9ERSB3cmFwIHR5cGUsIHNlcXVlbnRpYWwgKi8KLSNkZWZpbmUgQ0ZHX0FDVE9SVwkJMgkJLyogdHJjZCBtaW4gKi8KLSNkZWZpbmUgQ0ZHX0RCVVNfU0laRTIJCTEJCS8qIHNldCBmb3IgOC1iaXQgUkNTMSwgY2xlYXIgZm9yIDMyLDY0ICovCi0jZGVmaW5lIENGR19SRUdJU1RFUkRfVFlQRV9CVUZGRVIgMQotI2RlZmluZSBDRkdfRVhUUk9NCSAgICAwCQkJLyogd2UgZG9uJ3QgbmVlZCBleHRlbmRlZCBST00gc3BhY2UgKi8KLSNkZWZpbmUgQ0ZHX1JFR0RJTU0JICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19QUkVUT0FDVAkgICAgMgkgICAgLyogdHJwICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUVE9QUkUJICAgIDcJICAgIC8qIHRyY2QgKyAoYnVyc3QgbGVuZ3RoIC0gMSkgKyB0cmRsICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RNT0RFX0NBU19MQVQgIDMJICAgIC8qIFNETU9ERSBDQVMgbGF0YW5jeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NETU9ERV9XUkFQCSAgICAwCSAgICAvKiBTRE1PREUgd3JhcCB0eXBlLCBzZXF1ZW50aWFsICovCisjZGVmaW5lIENPTkZJR19TWVNfQUNUT1JXCQkyCQkvKiB0cmNkIG1pbiAqLworI2RlZmluZSBDT05GSUdfU1lTX0RCVVNfU0laRTIJCTEJCS8qIHNldCBmb3IgOC1iaXQgUkNTMSwgY2xlYXIgZm9yIDMyLDY0ICovCisjZGVmaW5lIENPTkZJR19TWVNfUkVHSVNURVJEX1RZUEVfQlVGRkVSIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FWFRST00JICAgIDAJCQkvKiB3ZSBkb24ndCBuZWVkIGV4dGVuZGVkIFJPTSBzcGFjZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFR0RJTU0JICAgIDAKIAogLyogY2FsY3VsYXRlIGFjY29yZGluZyB0byBmb3JtdWxhIGluIHNlYy4gNi0yMiBvZiA4MjQ1IFVNICovCi0jZGVmaW5lIENGR19QR01BWCAgICAgICAgICAgNTAJCS8qIGhvdyBsb25nIHRoZSA4MjQ1IHJldGFpbnMgdGhlICovCisjZGVmaW5lIENPTkZJR19TWVNfUEdNQVggICAgICAgICAgIDUwCQkvKiBob3cgbG9uZyB0aGUgODI0NSByZXRhaW5zIHRoZSAqLwogCQkJCQkJCQkJLyogY3VycmVudGx5IGFjY2Vzc2VkIHBhZ2UgaW4gbWVtb3J5ICovCiAJCQkJCQkJCQkvKiB3YXMgNDUgKi8KIAotI2RlZmluZSBDRkdfU0RSQU1fRFNDRAkweDIwCS8qIFNEUkFNIGRhdGEgaW4gc2FtcGxlIGNsb2NrIGRlbGF5IC0gbm90ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0RTQ0QJMHgyMAkvKiBTRFJBTSBkYXRhIGluIHNhbXBsZSBjbG9jayBkZWxheSAtIG5vdGUgKi8KIAkJCQkJCQkJLyogYml0cyA3LDYsIGFuZCAzLTAgTVVTVCBiZSAwICovCiAKICNpZiAwCi0jZGVmaW5lIENGR19ETExfTUFYX0RFTEFZCTB4MDQKKyNkZWZpbmUgQ09ORklHX1NZU19ETExfTUFYX0RFTEFZCTB4MDQKICNlbHNlCi0jZGVmaW5lIENGR19ETExfTUFYX0RFTEFZCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ETExfTUFYX0RFTEFZCTAKICNlbmRpZgogI2lmIDAJCQkJCQkJLyogbmVlZCBmb3IgMzNNSHogU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX0RMTF9FWFRFTkQJMHg4MAorI2RlZmluZSBDT05GSUdfU1lTX0RMTF9FWFRFTkQJMHg4MAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX0RMTF9FWFRFTkQJMAorI2RlZmluZSBDT05GSUdfU1lTX0RMTF9FWFRFTkQJMAogI2VuZGlmCi0jZGVmaW5lIENGR19QQ0lfSE9MRF9ERUwgMHgyMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9IT0xEX0RFTCAweDIwCiAKIAogLyogTWVtb3J5IGJhbmsgc2V0dGluZ3MuCkBAIC0zMTIsOTQgKzMxMiw5NCBAQAogICogYWRkcmVzcy4gUmVmZXIgdG8gdGhlIE1QQzgyNDUgdXNlciBtYW51YWwuCiAgKi8KIAotI2RlZmluZSBDRkdfQkFOSzBfU1RBUlQJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTkswX0VORAkgICAgKENGR19NQVhfUkFNX1NJWkUvMiAtIDEpCi0jZGVmaW5lIENGR19CQU5LMF9FTkFCTEUgICAgMQotI2RlZmluZSBDRkdfQkFOSzFfU1RBUlQJICAgIENGR19NQVhfUkFNX1NJWkUvMgotI2RlZmluZSBDRkdfQkFOSzFfRU5ECSAgICAoQ0ZHX01BWF9SQU1fU0laRSAtIDEpCi0jZGVmaW5lIENGR19CQU5LMV9FTkFCTEUgICAgMQotI2RlZmluZSBDRkdfQkFOSzJfU1RBUlQJICAgIDB4M2ZmMDAwMDAJCS8qIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBkZXNpZ24gKi8KLSNkZWZpbmUgQ0ZHX0JBTksyX0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzJfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTkszX1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LM19FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTkszX0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LNF9TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzRfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LNF9FTkFCTEUgICAgMAotI2RlZmluZSBDRkdfQkFOSzVfU1RBUlQJICAgIDB4M2ZmMDAwMDAKLSNkZWZpbmUgQ0ZHX0JBTks1X0VORAkgICAgMHgzZmZmZmZmZgotI2RlZmluZSBDRkdfQkFOSzVfRU5BQkxFICAgIDAKLSNkZWZpbmUgQ0ZHX0JBTks2X1NUQVJUCSAgICAweDNmZjAwMDAwCi0jZGVmaW5lIENGR19CQU5LNl9FTkQJICAgIDB4M2ZmZmZmZmYKLSNkZWZpbmUgQ0ZHX0JBTks2X0VOQUJMRSAgICAwCi0jZGVmaW5lIENGR19CQU5LN19TVEFSVAkgICAgMHgzZmYwMDAwMAotI2RlZmluZSBDRkdfQkFOSzdfRU5ECSAgICAweDNmZmZmZmZmCi0jZGVmaW5lIENGR19CQU5LN19FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkswX1NUQVJUCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5ECSAgICAoQ09ORklHX1NZU19NQVhfUkFNX1NJWkUvMiAtIDEpCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzBfRU5BQkxFICAgIDEKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9TVEFSVAkgICAgQ09ORklHX1NZU19NQVhfUkFNX1NJWkUvMgorI2RlZmluZSBDT05GSUdfU1lTX0JBTksxX0VORAkgICAgKENPTkZJR19TWVNfTUFYX1JBTV9TSVpFIC0gMSkKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LMV9FTkFCTEUgICAgMQorI2RlZmluZSBDT05GSUdfU1lTX0JBTksyX1NUQVJUCSAgICAweDNmZjAwMDAwCQkvKiBub3QgYXZhaWxhYmxlIGluIHRoaXMgZGVzaWduICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzJfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LM19TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTkszX0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzRfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNF9FTkFCTEUgICAgMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks1X1NUQVJUCSAgICAweDNmZjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5ECSAgICAweDNmZmZmZmZmCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzVfRU5BQkxFICAgIDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LNl9TVEFSVAkgICAgMHgzZmYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VORAkgICAgMHgzZmZmZmZmZgorI2RlZmluZSBDT05GSUdfU1lTX0JBTks2X0VOQUJMRSAgICAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFOSzdfU1RBUlQJICAgIDB4M2ZmMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkQJICAgIDB4M2ZmZmZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19CQU5LN19FTkFCTEUgICAgMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIDQuNCAtIE91dHB1dCBEcml2ZXIgQ29udHJvbCBSZWdpc3RlciAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19PRENSCSAgICAweGU1CisjZGVmaW5lIENPTkZJR19TWVNfT0RDUgkgICAgMHhlNQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIDQuOCAtIEVycm9yIEhhbmRsaW5nIFJlZ2lzdGVycyAqLwotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tQ0ZHX1NETU9ERV9CVVJTVExFTi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfRVJSRU5SMQkweDExCS8qIGVuYWJsZSBTRFJBTSByZWZyZXNoIG92ZXJmbG93IGVycm9yICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1DT05GSUdfU1lTX1NETU9ERV9CVVJTVExFTi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2RlZmluZSBDT05GSUdfU1lTX0VSUkVOUjEJMHgxMQkvKiBlbmFibGUgU0RSQU0gcmVmcmVzaCBvdmVyZmxvdyBlcnJvciAqLwogCiAvKiBTRFJBTSAwLTI1NiBNQiAqLwotI2RlZmluZSBDRkdfSUJBVDBMICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0vKiNkZWZpbmUgQ0ZHX0lCQVQwTCAgKENGR19TRFJBTV9CQVNFIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKSAqLwotI2RlZmluZSBDRkdfSUJBVDBVICAoQ0ZHX1NEUkFNX0JBU0UgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisvKiNkZWZpbmUgQ09ORklHX1NZU19JQkFUMEwgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpICovCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDBVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFIHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIHN0YWNrIGluIGRjYWNoZSAqLwotI2RlZmluZSBDRkdfSUJBVDFMICAoQ0ZHX0lOSVRfUkFNX0FERFIgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMVUgIChDRkdfSU5JVF9SQU1fQUREUiB8IEJBVFVfQkxfMTI4SyB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQxTCAgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiB8IEJBVExfUFBfMTAgfCBCQVRMX01FTUNPSEVSRU5DRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JQkFUMVUgIChDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIgfCBCQVRVX0JMXzEyOEsgfCBCQVRVX1ZTIHwgQkFUVV9WUCkKIAogCi0jZGVmaW5lIENGR19JQkFUMkwgIChDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCi0jZGVmaW5lIENGR19JQkFUMlUgIChDRkdfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyTCAgKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9NRU1DT0hFUkVOQ0UpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDJVICAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgMHgxMDAwMDAwMHwgQkFUVV9CTF8yNTZNIHwgQkFUVV9WUyB8IEJBVFVfVlApCiAKIC8qIFBDSSBtZW1vcnkgKi8KLS8qI2RlZmluZSBDRkdfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkgKi8KLS8qI2RlZmluZSBDRkdfSUJBVDJVICAoMHg4MDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKSAqLworLyojZGVmaW5lIENPTkZJR19TWVNfSUJBVDJMICAoMHg4MDAwMDAwMCB8IEJBVExfUFBfMTAgfCBCQVRMX0NBQ0hFSU5ISUJJVCkgKi8KKy8qI2RlZmluZSBDT05GSUdfU1lTX0lCQVQyVSAgKDB4ODAwMDAwMDAgfCBCQVRVX0JMXzI1Nk0gfCBCQVRVX1ZTIHwgQkFUVV9WUCkgKi8KIAogLypGbGFzaCwgY29uZmlnIGFkZHJzLCBldGMuICovCi0jZGVmaW5lIENGR19JQkFUM0wgICgweEYwMDAwMDAwIHwgQkFUTF9QUF8xMCB8IEJBVExfQ0FDSEVJTkhJQklUKQotI2RlZmluZSBDRkdfSUJBVDNVICAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQorI2RlZmluZSBDT05GSUdfU1lTX0lCQVQzTCAgKDB4RjAwMDAwMDAgfCBCQVRMX1BQXzEwIHwgQkFUTF9DQUNIRUlOSElCSVQpCisjZGVmaW5lIENPTkZJR19TWVNfSUJBVDNVICAoMHhGMDAwMDAwMCB8IEJBVFVfQkxfMjU2TSB8IEJBVFVfVlMgfCBCQVRVX1ZQKQogCi0jZGVmaW5lIENGR19EQkFUMEwgIENGR19JQkFUMEwKLSNkZWZpbmUgQ0ZHX0RCQVQwVSAgQ0ZHX0lCQVQwVQotI2RlZmluZSBDRkdfREJBVDFMICBDRkdfSUJBVDFMCi0jZGVmaW5lIENGR19EQkFUMVUgIENGR19JQkFUMVUKLSNkZWZpbmUgQ0ZHX0RCQVQyTCAgQ0ZHX0lCQVQyTAotI2RlZmluZSBDRkdfREJBVDJVICBDRkdfSUJBVDJVCi0jZGVmaW5lIENGR19EQkFUM0wgIENGR19JQkFUM0wKLSNkZWZpbmUgQ0ZHX0RCQVQzVSAgQ0ZHX0lCQVQzVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQwTCAgQ09ORklHX1NZU19JQkFUMEwKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMFUgIENPTkZJR19TWVNfSUJBVDBVCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDFMICBDT05GSUdfU1lTX0lCQVQxTAorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQxVSAgQ09ORklHX1NZU19JQkFUMVUKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUMkwgIENPTkZJR19TWVNfSUJBVDJMCisjZGVmaW5lIENPTkZJR19TWVNfREJBVDJVICBDT05GSUdfU1lTX0lCQVQyVQorI2RlZmluZSBDT05GSUdfU1lTX0RCQVQzTCAgQ09ORklHX1NZU19JQkFUM0wKKyNkZWZpbmUgQ09ORklHX1NZU19EQkFUM1UgIENPTkZJR19TWVNfSUJBVDNVCiAKIC8qCiAgKiBGb3IgYm9vdGluZyBMaW51eCwgdGhlIGJvYXJkIGluZm8gYW5kIGNvbW1hbmQgbGluZSBkYXRhCiAgKiBoYXZlIHRvIGJlIGluIHRoZSBmaXJzdCA4IE1CIG9mIG1lbW9yeSwgc2luY2UgdGhpcyBpcwogICogdGhlIG1heGltdW0gbWFwcGVkIGJ5IHRoZSBMaW51eCBrZXJuZWwgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogICovCi0jZGVmaW5lIENGR19CT09UTUFQU1oJICAgICg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCSAgICAoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBvcmdhbml6YXRpb24KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAweEZGODAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJCS8qIE1heCBudW1iZXIgb2YgZmxhc2ggYmFua3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCSAgICAweEZGODAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCQkvKiBNYXggbnVtYmVyIG9mIGZsYXNoIGJhbmtzICovCiAKIC8qCU5PVEU6IGVudmlyb25tZW50IGlzIG5vdCBFTUJFRERFRCBpbiB0aGUgdS1ib290IGNvZGUuCiAJSXQncyBzdG9yZWQgaW4gZmxhc2ggaW4gaXRzIG93biBzZXBhcmF0ZSBzZWN0b3IuICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICSAgICAxCiAKICNpZiAxCS8qIEFNRCBBTTI5TFYwMzNDICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAk2NAkJLyogTWF4IG51bWJlciBvZiBzZWN0b3JzIGluIG9uZSBiYW5rICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNjQJCS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuayAqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkZCRjAwMDAJLyogZmxhc2ggc2VjdG9yIFNBNjMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDY0KjEwMjQpCS8qIFNpemUgb2YgdGhlIEVudmlyb25tZW50IFNlY3RvciAqLwogI2Vsc2UJLyogQU1EIEFNMjlMVjExNkQgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTM1CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuayAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTM1CS8qIE1heCBudW1iZXIgb2Ygc2VjdG9ycyBpbiBvbmUgYmFuayAqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4RkY5RkEwMDAJLyogZmxhc2ggc2VjdG9yIFNBMzMgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJKDgqMTAyNCkJLyogU2l6ZSBvZiB0aGUgRW52aXJvbm1lbnQgU2VjdG9yICovCiAjZW5kaWYgLyogI2lmICovCkBAIC00MDcsMjIgKzQwNywyMiBAQAogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCUNPTkZJR19FTlZfU0VDVF9TSVpFCQkvKiBTaXplIG9mIHRoZSBFbnZpcm9ubWVudCAqLwogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVAkJMAkJCS8qIHN0YXJ0aW5nIHJpZ2h0IGF0IHRoZSBiZWdpbm5pbmcgKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAotI2lmIENGR19NT05JVE9SX0JBU0UgPj0gQ0ZHX0ZMQVNIX0JBU0UKLSN1bmRlZiBDRkdfUkFNQk9PVAorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID49IENPTkZJR19TWVNfRkxBU0hfQkFTRQorI3VuZGVmIENPTkZJR19TWVNfUkFNQk9PVAogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1JBTUJPT1QKKyNkZWZpbmUgQ09ORklHX1NZU19SQU1CT09UCiAjZW5kaWYKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTMyCisjZGVmaW5lIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUJMzIKICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlCSovCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy92MzcuaCBiL2luY2x1ZGUvY29uZmlncy92MzcuaAppbmRleCA3NTA0ZmEzLi5hNmIwZjBkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdjM3LmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3YzNy5oCkBAIC00NSw3ICs0NSw3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNkZWZpbmUgQ09ORklHX0kyQyAgICAgICAgICAgICAgMQotI2RlZmluZSBDRkdfSTJDX1NMQVZFICAgICAgICAgICAweDIKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU0xBVkUgICAgICAgICAgIDB4MgogCiAjZGVmaW5lCUNPTkZJR184eHhfQ09OU19TTUMxCTEKICN1bmRlZglDT05GSUdfOHh4X0NPTlNfU01DMgkJLyogQ29uc29sZSBpcyBvbiBTTUMyCQkqLwpAQCAtNzAsNyArNzAsNyBAQAogCSJib290bSIKIAogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkxCS8qIGVjaG8gb24gZm9yIHNlcmlhbCBkb3dubG9hZAkqLwotI3VuZGVmCUNGR19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCisjdW5kZWYJQ09ORklHX1NZU19MT0FEU19CQVVEX0NIQU5HRQkJLyogZG9uJ3QgYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICN1bmRlZglDT05GSUdfV0FUQ0hET0cJCQkvKiB3YXRjaGRvZyBkaXNhYmxlZAkJKi8KIApAQCAtMTIyLDI1ICsxMjIsMjUgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUJQ0ZHX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jZGVmaW5lCUNGR19QUk9NUFQJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BST01QVAkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTEwMjQJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJMTAwMAkJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkxMDAwCQkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTUwLDUwICsxNTAsNTAgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRTAJCTB4NDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UxCQkweDYwMDAwMDAwCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlDRkdfRkxBU0hfQkFTRTEKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRTAJCTB4NDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFMQkJMHg2MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCUNPTkZJR19TWVNfRkxBU0hfQkFTRTEKIAogI2lmIGRlZmluZWQoREVCVUcpCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KICNlbHNlCi0jZGVmaW5lCUNGR19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJKDE5MiA8PCAxMCkJLyogUmVzZXJ2ZSAxOTIga0IgZm9yIE1vbml0b3IJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfTU9OSVRPUl9CQVNFCUNGR19GTEFTSF9CQVNFMAotI2RlZmluZQlDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRTAKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4IDw8IDEwKQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUJQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4CSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTM1CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTM1CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KIAogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX05WUkFNCTEKICNkZWZpbmUJQ09ORklHX0VOVl9BRERSCQkweDgwMDAwMDAwLyogQWRkcmVzcyBvZiBFbnZpcm9ubWVudCAqLwpAQCAtMjA0LDkgKzIwNCw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxNiwxMCArMjE2LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkweEZGRkZGRjg4CisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJMHhGRkZGRkY4OAogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIyNywzMCArMjI3LDMwIEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgY29uZmlnLiwgbXVsdGktZnVuY3Rpb24gcGluIHRyaS1zdGF0ZQogICovCi0jZGVmaW5lIENGR19TSVVNQ1IJKFNJVU1DUl9EQkdDMDAgfCBTSVVNQ1JfREJQQzAwIHwgU0lVTUNSX0ZSQyB8IFNJVU1DUl9HQjVFKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfRlJDIHwgU0lVTUNSX0dCNUUpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRCU0NSIC0gVGltZSBCYXNlIFN0YXR1cyBhbmQgQ29udHJvbAkJCQkxMS0yNgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUmVmZXJlbmNlIEludGVycnVwdCBTdGF0dXMsIFRpbWViYXNlIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfVEJTQ1IJKFRCU0NSX1JFRkEgfCBUQlNDUl9SRUZCIHwgVEJTQ1JfVEJFKQorI2RlZmluZSBDT05GSUdfU1lTX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUlRDU0MgLSBSZWFsLVRpbWUgQ2xvY2sgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyCQkxMS0yNwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0vKiUlJSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkgKi8KLSNkZWZpbmUgQ0ZHX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19SVEUpCisvKiUlJSNkZWZpbmUgQ09ORklHX1NZU19SVENTQwkoUlRDU0NfU0VDIHwgUlRDU0NfQUxSIHwgUlRDU0NfUlRGfCBSVENTQ19SVEUpICovCisjZGVmaW5lIENPTkZJR19TWVNfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUiAoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogLyoKLSNkZWZpbmUgQ0ZHX1BJU0NSIChQSVNDUl9QUyB8IFBJU0NSX1BJVEYpCisjZGVmaW5lIENPTkZJR19TWVNfUElTQ1IgKFBJU0NSX1BTIHwgUElTQ1JfUElURikKICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI2Miw3ICsyNjIsNyBAQAogICogSWYgdGhpcyBpcyBhIDgwIE1IeiBDUFUsIHNldCBQTEwgbXVsdGlwbGljYXRpb24gZmFjdG9yIHRvIDUgKDUqMTY9ODApIQogICovCiAvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKCAoMTUyNCA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RNSVNUIHwgUExQUkNSX1RFWFBTICkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKCAoMTUyNCA8PCBQTFBSQ1JfTUZfU0hJRlQpIHwgUExQUkNSX1NQTFNTIHwgUExQUkNSX1RNSVNUIHwgUExQUkNSX1RFWFBTICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTI3MiwyMSArMjcyLDIxIEBACiAgKi8KICNkZWZpbmUgU0NDUl9NQVNLCVNDQ1JfRUJERjExCiAvKiB1cCB0byA1MCBNSHogd2UgdXNlIGEgMToxIGNsb2NrICovCi0jZGVmaW5lIENGR19TQ0NSCShTQ0NSX0NPTTAwIHwgU0NDUl9UQlMpCisjZGVmaW5lIENPTkZJR19TWVNfU0NDUgkoU0NDUl9DT00wMCB8IFNDQ1JfVEJTKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ01DSUEgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9NRU1fU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9BRERSCSgweEU4MDAwMDAwKQotI2RlZmluZSBDRkdfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9JT19TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgkoMHhFMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0RNQV9BRERSCSgweEU0MDAwMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfQVRUUkJfU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fQUREUgkoMHhFQzAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSURFL0FUQSBzdHVmZiAoU3VwcG9ydHMgSURFIGhhcmRkaXNrIG9uIFBDTUNJQSBBZGFwdGVyKQpAQCAtMjk5LDI4ICsyOTksMjggQEAKICN1bmRlZglDT05GSUdfSURFX0xFRAkJCS8qIExFRCAgIGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogI3VuZGVmCUNPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgbm90IHN1cHBvcnRlZAkqLwogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLwotI2RlZmluZSBDRkdfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhCVVMJCTEJLyogbWF4LiAxIElERSBidXMJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWERFVklDRQkxCS8qIG1heC4gMSBkcml2ZSBwZXIgSURFIGJ1cwkqLwogCi0jZGVmaW5lIENGR19BVEFfSURFMF9PRkZTRVQJMHgwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAogCi0jZGVmaW5lIENGR19BVEFfQkFTRV9BRERSCUNGR19QQ01DSUFfTUVNX0FERFIKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQkFTRV9BRERSCUNPTkZJR19TWVNfUENNQ0lBX01FTV9BRERSCiAKIC8qIE9mZnNldCBmb3IgZGF0YSBJL08JCQkqLwotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCShDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcwkqLwotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKDIgKiBDRkdfUENNQ0lBX01FTV9TSVpFICsgMHgzMjApCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX1JFR19PRkZTRVQJKDIgKiBDT05GSUdfU1lTX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQogCiAvKiBPZmZzZXQgZm9yIGFsdGVybmF0ZSByZWdpc3RlcnMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9BTFRfT0ZGU0VUCTB4MDEwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLwotI2RlZmluZSBDRkdfREVSCTAKKyNkZWZpbmUgQ09ORklHX1NZU19ERVIJMAogCiAvKgogICogSW5pdCBNZW1vcnkgQ29udHJvbGxlcjoKQEAgLTMzMSwyMSArMzMxLDIxIEBACiAjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQkweDQwMDAwMDAwCS8qIEZMQVNIIGJhbmsgIzAJKi8KICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTB4NjAwMDAwMDAJLyogRkxBU0ggYmFuayAjMQkqLwogCi0jZGVmaW5lIENGR19QUkVMSU1fT1JfQU0JMHhGRTAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUkVMSU1fT1JfQU0JMHhGRTAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KIAotI2RlZmluZSBDRkdfT1JfVElNSU5HX0ZMQVNICTB4RjU2CisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNICTB4RjU2CiAKLSNkZWZpbmUgQ0ZHX09SMF9QUkVMSU0JKENGR19QUkVMSU1fT1JfQU0gfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfQlIwX1BSRUxJTQkoKEZMQVNIX0JBU0UwX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9QU18xNiB8IEJSX1YpCisjZGVmaW5lIENPTkZJR19TWVNfT1IwX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzE2IHwgQlJfVikKIAotI2RlZmluZSBDRkdfT1I1X1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjVfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1BTXzMyIHwgQlJfVikKKyNkZWZpbmUgQ09ORklHX1NZU19PUjVfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSNV9QUkVMSU0JKChGTEFTSF9CQVNFMV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfUFNfMzIgfCBCUl9WKQogCiAvKgogICogQlIxIGFuZCBPUjEgKEJhdHRlcnkgYmFja2VkIFNSQU0pCiAgKi8KLSNkZWZpbmUJQ0ZHX0JSMV9QUkVMSU0JMHg4MDAwMDQwMQotI2RlZmluZSBDRkdfT1IxX1BSRUxJTQkweEZGQzAwNzM2CisjZGVmaW5lCUNPTkZJR19TWVNfQlIxX1BSRUxJTQkweDgwMDAwNDAxCisjZGVmaW5lIENPTkZJR19TWVNfT1IxX1BSRUxJTQkweEZGQzAwNzM2CiAKIC8qCiAgKiBCUjIgYW5kIE9SMiAoU0RSQU0pCkBAIC0zNTMsMjEgKzM1MywyMSBAQAogI2RlZmluZSBTRFJBTV9CQVNFX1BSRUxJTQkweDAwMDAwMDAwCS8qIFNEUkFNIGJhc2UJKi8KICNkZWZpbmUJU0RSQU1fTUFYX1NJWkUJCTB4MDQwMDAwMDAJLyogbWF4IDY0IE1CICovCiAKLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0VfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX01TX1VQTUEgfCBCUl9WICkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjJfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNICkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjJfUFJFTElNCSgoU0RSQU1fQkFTRV9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQogCiAvKiBNYXJlbCBWMzcgbWVtIHNldHRpbmcgKi8KIAotI2RlZmluZQlDRkdfQlIzX0NBTgkweEMwMDAwNDAxCi0jZGVmaW5lIENGR19PUjNfQ0FOCTB4RkZGRjA3MjQKKyNkZWZpbmUJQ09ORklHX1NZU19CUjNfQ0FOCTB4QzAwMDA0MDEKKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCTB4RkZGRjA3MjQKIAogLyoKLSNkZWZpbmUJQ0ZHX0JSM19QUkVMSU0JMHhGQTQwMDAwMQotI2RlZmluZSBDRkdfT1IzX1BSRUxJTQkweEZGRkY4OTEwCi0jZGVmaW5lCUNGR19CUjRfUFJFTElNCTB4RkEwMDA0MDEKLSNkZWZpbmUgQ0ZHX09SNF9QUkVMSU0JMHhGRkZFMDk3MAorI2RlZmluZQlDT05GSUdfU1lTX0JSM19QUkVMSU0JMHhGQTQwMDAwMQorI2RlZmluZSBDT05GSUdfU1lTX09SM19QUkVMSU0JMHhGRkZGODkxMAorI2RlZmluZQlDT05GSUdfU1lTX0JSNF9QUkVMSU0JMHhGQTAwMDQwMQorI2RlZmluZSBDT05GSUdfU1lTX09SNF9QUkVMSU0JMHhGRkZFMDk3MAogKi8KIAogLyoKQEAgLTM3NSwxOSArMzc1LDE5IEBACiAgKi8KIAogLyogcGVyaW9kaWMgdGltZXIgZm9yIHJlZnJlc2ggKi8KLSNkZWZpbmUgQ0ZHX01BTVJfUFRBCTk3CQkvKiBzdGFydCB3aXRoIGRpdmlkZXIgZm9yIDEwMCBNSHoJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SX1BUQQk5NwkJLyogc3RhcnQgd2l0aCBkaXZpZGVyIGZvciAxMDAgTUh6CSovCiAKIC8qCiAgKiBSZWZyZXNoIGNsb2NrIFByZXNjYWxhcgogICovCi0jZGVmaW5lIENGR19NUFRQUglNUFRQUl9QVFBfRElWMTYKKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUglNUFRQUl9QVFBfRElWMTYKIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogMTAgY29sdW1uIFNEUkFNICovCi0jZGVmaW5lIENGR19NQU1SXzEwQ09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfMTBDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMiB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTEyIHwJXAogCQkJIE1BTVJfR1BMX0E0RElTIHwgTUFNUl9STEZBXzRYIHwgTUFNUl9XTEZBXzNYIHwgTUFNUl9UTEZBXzE2WCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3YzOGIuaCBiL2luY2x1ZGUvY29uZmlncy92MzhiLmgKaW5kZXggMGY4ZDVhOS4uMDE1NmNlMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3YzOGIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdjM4Yi5oCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5lIENPTkZJR19NUEM1eHh4CQkJMQkvKiBUaGlzIGlzIGFuIE1QQzV4eHggQ1BVICovCiAjZGVmaW5lIENPTkZJR19NUEM1MjAwCQkJMQkvKiBUaGlzIGlzIGFuIE1QQzUyMDAgQ1BVICovCiAjZGVmaW5lIENPTkZJR19WMzhCCQkJMQkvKiAuLi5vbiBWMzhCIGJvYXJkICovCi0jZGVmaW5lIENGR19NUEM1WFhYX0NMS0lOCTMzMDAwMDAwCS8qIC4uLnJ1bm5pbmcgYXQgMzMuMDAwMDAwTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTVBDNVhYWF9DTEtJTgkzMzAwMDAwMAkvKiAuLi5ydW5uaW5nIGF0IDMzLjAwMDAwME1IeiAqLwogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwkJMQkvKiBoYXMgUENGODU2MyBSVEMgKi8KICNkZWZpbmUgQ09ORklHX01QQzUyMDBfRERSCQkxCS8qIGhhcyBERFIgU0RSQU0gKi8KQEAgLTQxLDcgKzQxLDcgQEAKICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfUgkxCS8qIGRvIGJvYXJkLXNwZWNpZmljIGluaXQgKi8KICNkZWZpbmUgQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRgkxCS8qIGRvIGJvYXJkLXNwZWNpZmljIGluaXQgKi8KIAotI2RlZmluZSBDRkdfWExCX1BJUEVMSU5JTkcJCTEJLyogZ2l2ZXMgYmV0dGVyIHBlcmZvcm1hbmNlICovCisjZGVmaW5lIENPTkZJR19TWVNfWExCX1BJUEVMSU5JTkcJCTEJLyogZ2l2ZXMgYmV0dGVyIHBlcmZvcm1hbmNlICovCiAKICNkZWZpbmUgQk9PVEZMQUdfQ09MRAkJMHgwMQkvKiBOb3JtYWwgUG93ZXItT246IEJvb3QgZnJvbSBGTEFTSCAgKi8KICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkJMHgwMgkvKiBTb2Z0d2FyZSByZWJvb3QgKi8KQEAgLTUzLDcgKzUzLDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfUFNDX0NPTlNPTEUJMQkvKiBjb25zb2xlIGlzIG9uIFBTQzEgKi8KICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAJLyogLi4uIGF0IDExNTIwMCBicHMgKi8KLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDAgfQogCiAvKgogICogRERSCkBAIC0xMjEsOCArMTIxLDggQEAKIC8qCiAgKiBCb290IGxvdyB3aXRoIDE2IE1CIEZsYXNoCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPV0JPT1QJCTEKLSNkZWZpbmUgQ0ZHX0xPV0JPT1QxNgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0xPV0JPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19MT1dCT09UMTYJCTEKIAogLyoKICAqIEF1dG9ib290aW5nCkBAIC0xNzMsNDggKzE3Myw0OCBAQAogLyoKICAqIElQQiBCdXMgY2xvY2tpbmcgY29uZmlndXJhdGlvbi4KICAqLwotI3VuZGVmIENGR19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCisjdW5kZWYgQ09ORklHX1NZU19JUEJDTEtfRVFVQUxTX1hMQkNMSwkJCS8qIGRlZmluZSBmb3IgMTMzTUh6IHNwZWVkICovCiAjZW5kaWYKIAogLyoKICAqIEkyQyBjb25maWd1cmF0aW9uCiAgKi8KICNkZWZpbmUgQ09ORklHX0hBUkRfSTJDCQkxCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJMTAwMDAwCS8qIDEwMCBrSHogKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMHg3RgorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19NT0RVTEUJCTIJLyogU2VsZWN0IEkyQyBtb2R1bGUgIzEgb3IgIzIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTEwMDAwMAkvKiAxMDAga0h6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qCiAgKiBFRVBST00gY29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9MRU4JCTEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMJMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJCTB4NTAJLyogMTAxMDAwMHggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOCQkxCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJNzAKIAogLyoKICAqIFJUQyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkJMHg1MQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19SVENfQUREUgkJMHg1MQogCiAvKgogICogRmxhc2ggY29uZmlndXJhdGlvbiAtIHVzZSBDRkkgZHJpdmVyCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkJLyogRmxhc2ggaXMgQ0ZJIGNvbmZvcm1hbnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCTEJCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEJCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQ0ZJX0FNRF9SRVNFVAkxCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweEZGMDAwMDAwCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFIH0KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAJLyogMTYgTWlCICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJCS8qIG1heCBudW0gb2Ygc2VjdHMgb24gb25lIGNoaXAgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQkvKiBmbGFzaCB3cml0ZSBzcGVlZC11cCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkJLyogbWF4IG51bSBvZiBmbGFzaCBiYW5rcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCTB4MDEwMDAwMDAJLyogMTYgTWlCICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU2CQkvKiBtYXggbnVtIG9mIHNlY3RzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCS8qIGZsYXNoIHdyaXRlIHNwZWVkLXVwICovCiAKIC8qCiAgKiBFbnZpcm9ubWVudCBzZXR0aW5ncwogICovCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShDRkdfRkxBU0hfQkFTRSArIDB4MDAwNDAwMDApCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIDB4MDAwNDAwMDApCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCiAjZGVmaW5lIENPTkZJR19FTlZfT1ZFUldSSVRFCTEKQEAgLTIyMiwyNiArMjIyLDI2IEBACiAvKgogICogTWVtb3J5IG1hcAogICovCi0jZGVmaW5lIENGR19NQkFSCQkweEYwMDAwMDAwCi0jZGVmaW5lIENGR19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19ERUZBVUxUX01CQVIJMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01CQVIJCTB4RjAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfREVGQVVMVF9NQkFSCTB4ODAwMDAwMDAKIAogLyogVXNlIFNSQU0gdW50aWwgUkFNIHdpbGwgYmUgYXZhaWxhYmxlICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECU1QQzVYWFhfU1JBTV9TSVpFCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gRFBSQU0gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCU1QQzVYWFhfU1JBTQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAlNUEM1WFhYX1NSQU1fU0laRQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jaWYgKENGR19NT05JVE9SX0JBU0UgPCBDRkdfRkxBU0hfQkFTRSkKLSMgICBkZWZpbmUgQ0ZHX1JBTUJPT1QJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjaWYgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFKQorIyAgIGRlZmluZSBDT05GSUdfU1lTX1JBTUJPT1QJCTEKICNlbmRpZgogCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiA8PCAxMCkJLyogUmVzZXJ2ZSAyNTZrQiBmb3IgTW9uaXRvciAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjhrQiBmb3IgbWFsbG9jKCkgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIExpbnV4IGluaXRpYWwgbWVtb3J5IG1hcCAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2IDw8IDEwKQkvKiBSZXNlcnZlIDI1NmtCIGZvciBNb25pdG9yICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkJKDEyOCA8PCAxMCkJLyogUmVzZXJ2ZSAxMjhrQiBmb3IgbWFsbG9jKCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBMaW51eCBpbml0aWFsIG1lbW9yeSBtYXAgKi8KIAogLyoKICAqIEV0aGVybmV0IGNvbmZpZ3VyYXRpb24KQEAgLTI1Myw1MCArMjUzLDUwIEBACiAvKgogICogR1BJTyBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0dQU19QT1JUX0NPTkZJRwkweDkwMDAxNDA0CisjZGVmaW5lIENPTkZJR19TWVNfR1BTX1BPUlRfQ09ORklHCTB4OTAwMDE0MDQKIAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHgwMDEwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwMTAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHgwMGYwMDAwMAkvKiAxIC4uLiAxNSBNQiBpbiBEUkFNICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkxMDAwCS8qIGRlY3JlbWVudGVyIGZyZXE6IDEgbXMgdGlja3MgKi8KIAotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NJWkUJMzIJLyogRm9yIE1QQzV4eHggQ1BVcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTMyCS8qIEZvciBNUEM1eHh4IENQVXMgKi8KICNpZiBkZWZpbmVkKENPTkZJR19DTURfS0dEQikKLSMgIGRlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTUJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUgKi8KKyMgIGRlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSElGVAk1CS8qIGxvZyBiYXNlIDIgb2YgdGhlIGFib3ZlIHZhbHVlICovCiAjZW5kaWYKIAogLyoKICAqIFZhcmlvdXMgbG93LWxldmVsIHNldHRpbmdzCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJRDBfSU5JVAkJSElEMF9JQ0UgfCBISUQwX0lDRkkKLSNkZWZpbmUgQ0ZHX0hJRDBfRklOQUwJCUhJRDBfSUNFCisjZGVmaW5lIENPTkZJR19TWVNfSElEMF9JTklUCQlISUQwX0lDRSB8IEhJRDBfSUNGSQorI2RlZmluZSBDT05GSUdfU1lTX0hJRDBfRklOQUwJCUhJRDBfSUNFCiAKLSNkZWZpbmUgQ0ZHX0JPT1RDU19TVEFSVAlDRkdfRkxBU0hfQkFTRQotI2RlZmluZSBDRkdfQk9PVENTX1NJWkUJCUNGR19GTEFTSF9TSVpFCi0jZGVmaW5lIENGR19CT09UQ1NfQ0ZHCQkweDAwMDQ3ODAxCi0jZGVmaW5lIENGR19DUzBfU1RBUlQJCUNGR19GTEFTSF9CQVNFCi0jZGVmaW5lIENGR19DUzBfU0laRQkJQ0ZHX0ZMQVNIX1NJWkUKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UQ1NfU1RBUlQJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVENTX1NJWkUJCUNPTkZJR19TWVNfRkxBU0hfU0laRQorI2RlZmluZSBDT05GSUdfU1lTX0JPT1RDU19DRkcJCTB4MDAwNDc4MDEKKyNkZWZpbmUgQ09ORklHX1NZU19DUzBfU1RBUlQJCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX0NTMF9TSVpFCQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUKIAotI2RlZmluZSBDRkdfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTX0RFQURDWUNMRQkweDMzMzMzMzMzCisjZGVmaW5lIENPTkZJR19TWVNfQ1NfQlVSU1QJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DU19ERUFEQ1lDTEUJMHgzMzMzMzMzMwogCi0jZGVmaW5lIENGR19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCTB4ZmYwMDAwMDAKIAogLyoKICAqIElERS9BVEEgKHN1cHBvcnRzIElERSBoYXJkZGlzaykKQEAgLTMwOCwyMCArMzA4LDIwIEBACiAjZGVmaW5lIENPTkZJR19JREVfUkVTRVQJCS8qIHJlc2V0IGZvciBpZGUgc3VwcG9ydGVkICovCiAjZGVmaW5lIENPTkZJR19JREVfUFJFSU5JVAogCi0jZGVmaW5lIENGR19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzICovCi0jZGVmaW5lIENGR19JREVfTUFYREVWSUNFCTEJLyogbWF4LiAxIGRyaXZlIHBlciBJREUgYnVzICovCisjZGVmaW5lIENPTkZJR19TWVNfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMgKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglNUEM1WFhYX0FUQQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9CQVNFX0FERFIJTVBDNVhYWF9BVEEKIAotI2RlZmluZSBDRkdfQVRBX0RBVEFfT0ZGU0VUCSgweDAwNjApCS8qIGRhdGEgSS9PIG9mZnNldCAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoMHgwMDYwKQkvKiBkYXRhIEkvTyBvZmZzZXQgKi8KIAotI2RlZmluZSBDRkdfQVRBX1JFR19PRkZTRVQJKENGR19BVEFfREFUQV9PRkZTRVQpCS8qIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfUkVHX09GRlNFVAkoQ09ORklHX1NZU19BVEFfREFUQV9PRkZTRVQpCS8qIG5vcm1hbCByZWdpc3RlciBhY2Nlc3NlcyBvZmZzZXQgKi8KIAotI2RlZmluZSBDRkdfQVRBX0FMVF9PRkZTRVQJKDB4MDA1QykJLyogYWx0ZXJuYXRlIHJlZ2lzdGVycyBvZmZzZXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkoMHgwMDVDKQkvKiBhbHRlcm5hdGUgcmVnaXN0ZXJzIG9mZnNldCAqLwogCi0jZGVmaW5lIENGR19BVEFfU1RSSURFCQk0CQkvKiBJbnRlcnZhbCBiZXR3ZWVuIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT05GSUdfU1lTX0FUQV9TVFJJREUJCTQJCS8qIEludGVydmFsIGJldHdlZW4gcmVnaXN0ZXJzICovCiAKIC8qCiAgKiBTdGF0dXMgTEVECkBAIC0zMjksMjYgKzMyOSwyNiBAQAogI2RlZmluZSAgQ09ORklHX1NUQVRVU19MRUQJCS8qIFN0YXR1cyBMRUQgZW5hYmxlZCAqLwogI2RlZmluZSAgQ09ORklHX0JPQVJEX1NQRUNJRklDX0xFRAkvKiB2ZXJzaW9uIGhhcyBib2FyZCBzcGVjaWZpYyBsZWRzICovCiAKLSNkZWZpbmUgQ0ZHX0xFRF9CQVNFCU1QQzVYWFhfR1BUN19FTkFCTEUJLyogVGltZXIgNyBHUElPICovCisjZGVmaW5lIENPTkZJR19TWVNfTEVEX0JBU0UJTVBDNVhYWF9HUFQ3X0VOQUJMRQkvKiBUaW1lciA3IEdQSU8gKi8KICNpZm5kZWYgX19BU1NFTUJMWV9fCiB0eXBlZGVmIHVuc2lnbmVkIGludCBsZWRfaWRfdDsKIAogI2RlZmluZSBfX2xlZF90b2dnbGUoX21zaykgXAogCWRvIHsgXAotCQkqKCh2b2xhdGlsZSBsb25nICopIChDRkdfTEVEX0JBU0UpKSBePSAoX21zayk7IFwKKwkJKigodm9sYXRpbGUgbG9uZyAqKSAoQ09ORklHX1NZU19MRURfQkFTRSkpIF49IChfbXNrKTsgXAogCX0gd2hpbGUoMCkKIAogI2RlZmluZSBfX2xlZF9zZXQoX21zaywgX3N0KSBcCiAJZG8geyBcCiAJCWlmICgoX3N0KSkgXAotCQkJKigodm9sYXRpbGUgbG9uZyAqKSAoQ0ZHX0xFRF9CQVNFKSkgJj0gfihfbXNrKTsgXAorCQkJKigodm9sYXRpbGUgbG9uZyAqKSAoQ09ORklHX1NZU19MRURfQkFTRSkpICY9IH4oX21zayk7IFwKIAkJZWxzZSBcCi0JCQkqKCh2b2xhdGlsZSBsb25nICopIChDRkdfTEVEX0JBU0UpKSB8PSAoX21zayk7IFwKKwkJCSooKHZvbGF0aWxlIGxvbmcgKikgKENPTkZJR19TWVNfTEVEX0JBU0UpKSB8PSAoX21zayk7IFwKIAl9IHdoaWxlKDApCiAKICNkZWZpbmUgX19sZWRfaW5pdChfbXNrLCBzdCkgXAogCWRvIHsgXAotCQkqKCh2b2xhdGlsZSBsb25nICopIChDRkdfTEVEX0JBU0UpKSB8PSAweDM0OyBcCisJCSooKHZvbGF0aWxlIGxvbmcgKikgKENPTkZJR19TWVNfTEVEX0JBU0UpKSB8PSAweDM0OyBcCiAJfSB3aGlsZSgwKQogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvdjVmeDMwdGV2YWwuaCBiL2luY2x1ZGUvY29uZmlncy92NWZ4MzB0ZXZhbC5oCmluZGV4IDE2MzZkNDIuLmQzMDBjNGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy92NWZ4MzB0ZXZhbC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy92NWZ4MzB0ZXZhbC5oCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiLi4vYm9hcmQvYXZuZXQvdjVmeDMwdGV2YWwveHBhcmFtZXRlcnMuaCIKIAogLypNZW0gTWFwKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX1NJWkVfTUIJNjQKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9TSVpFX01CCTY0CiAKIC8qRW52Ki8KICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0zNCwxMiArMzQsMTIgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoWFBBUl9GTEFTSF9NRU0wX0JBU0VBRERSK0NPTkZJR19FTlZfT0ZGU0VUKQogCiAvKk1pc2MqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkidjVmeDMwdDovIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJ2NWZ4MzB0Oi8jICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAgICAqLwogI2RlZmluZSBDT05GSUdfUFJFQk9PVAkJImVjaG8gVS1Cb290IGlzIHVwIGFuZCBydW5uaW5pbmc7IgogCiAvKkZsYXNoKi8KLSNkZWZpbmUJQ0ZHX0ZMQVNIX1NJWkUJCSgxNioxMDI0KjEwMjQpCi0jZGVmaW5lCUNGR19NQVhfRkxBU0hfU0VDVAkxMzEKKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9TSVpFCQkoMTYqMTAyNCoxMDI0KQorI2RlZmluZQlDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEzMQogI2RlZmluZSBNVERJRFNfREVGQVVMVAkJIm5vcjA9djVmeDMwdC1mbGFzaCIKICNkZWZpbmUgTVREUEFSVFNfREVGQVVMVAkibXRkcGFydHM9djVmeDMwdC1mbGFzaDotKHVzZXIpIgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvdmVyc2F0aWxlLmggYi9pbmNsdWRlL2NvbmZpZ3MvdmVyc2F0aWxlLmgKaW5kZXggNjAzNGNiNy4uZDgxMjQyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3ZlcnNhdGlsZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy92ZXJzYXRpbGUuaApAQCAtNDAsMTQgKzQwLDE0IEBACiAjZGVmaW5lIENPTkZJR19BUkNIX1ZFUlNBVElMRSAgIDEJLyogU3BlY2lmaWNhbGx5LCBhIFZlcnNhdGlsZQkqLwogCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQgICAgICAgMHgxMDAwMDAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5EICAgICAgICAgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfSFogICAgICAgICAgICAgICAgICAoMTAwMDAwMCAvIDI1NikKLSNkZWZpbmUgQ0ZHX1RJTUVSQkFTRSAgICAgICAgICAgMHgxMDFFMjAwMAkvKiBUaW1lciAwIGFuZCAxIGJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgIDB4MTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSFogICAgICAgICAgICAgICAgICAoMTAwMDAwMCAvIDI1NikKKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUkJBU0UgICAgICAgICAgIDB4MTAxRTIwMDAJLyogVGltZXIgMCBhbmQgMSBiYXNlICovCiAKLSNkZWZpbmUgQ0ZHX1RJTUVSX0lOVEVSVkFMCTEwMDAwCi0jZGVmaW5lIENGR19USU1FUl9SRUxPQUQJKENGR19USU1FUl9JTlRFUlZBTCA+PiA0KQkvKiBEaXZpZGUgYnkgMTYgKi8KLSNkZWZpbmUgQ0ZHX1RJTUVSX0NUUkwgICAgICAgICAgMHg4NAkJCQkvKiBFbmFibGUsIENsb2NrIC8gMTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUl9JTlRFUlZBTAkxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVSX1JFTE9BRAkoQ09ORklHX1NZU19USU1FUl9JTlRFUlZBTCA+PiA0KQkvKiBEaXZpZGUgYnkgMTYgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19USU1FUl9DVFJMICAgICAgICAgIDB4ODQJCQkJLyogRW5hYmxlLCBDbG9jayAvIDE2ICovCiAKIC8qCiAgKiBjb250cm9sIHJlZ2lzdGVycwpAQCAtNzEsOCArNzEsOCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbAogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCShDT05GSUdfRU5WX1NJWkUgKyAxMjgqMTAyNCkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtODgsMTMgKzg4LDEzIEBACiAgKi8KICNkZWZpbmUgQ09ORklHX1BMMDExX1NFUklBTAogI2RlZmluZSBDT05GSUdfUEwwMTFfQ0xPQ0sJMjQwMDAwMDAKLSNkZWZpbmUgQ09ORklHX1BMMDF4X1BPUlRTCXsgKHZvaWQgKilDRkdfU0VSSUFMMCwgKHZvaWQgKilDRkdfU0VSSUFMMSB9CisjZGVmaW5lIENPTkZJR19QTDAxeF9QT1JUUwl7ICh2b2lkICopQ09ORklHX1NZU19TRVJJQUwwLCAodm9pZCAqKUNPTkZJR19TWVNfU0VSSUFMMSB9CiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTAKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUgICAgICAgICAzODQwMAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9Ci0jZGVmaW5lIENGR19TRVJJQUwwCQkweDEwMUYxMDAwCi0jZGVmaW5lIENGR19TRVJJQUwxCQkweDEwMUYyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUgICAgICB7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfU0VSSUFMMAkJMHgxMDFGMTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1NFUklBTDEJCTB4MTAxRjIwMDAKIAogCiAvKgpAQCAtMTM2LDE2ICsxMzYsMTYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5ICAgICAqLwotI2RlZmluZSBDRkdfUFJPTVBUCSJWZXJzYXRpbGUgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSJWZXJzYXRpbGUgIyAiCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAqLwogLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpCi0jZGVmaW5lIENGR19NQVhBUkdTCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAgICovCi0jZGVmaW5lIENGR19CQVJHU0laRQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgICAgKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCi0jZGVmaW5lIENGR19MT0FEX0FERFIJMHg3ZmMwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCTB4N2ZjMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFjayBzaXplcwpAQCAtMTY1LDcgKzE2NSw3IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fMSAgICAgICAgICAgIDB4MDAwMDAwMDAJLyogU0RSQU0gQmFuayAjMSAqLwogI2RlZmluZSBQSFlTX1NEUkFNXzFfU0laRSAgICAgICAweDA4MDAwMDAwCS8qIDEyOCBNQiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIDB4MzQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFICAgICAgICAgIDB4MzQwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgpAQCAtMTc2LDE5ICsxNzYsMTkgQEAKICNkZWZpbmUgVkVSU0FUSUxFX0ZMQVNIQ1RSTAkJICAgICAgKFZFUlNBVElMRV9TWVNfQkFTRSArIFZFUlNBVElMRV9TWVNfRkxBU0hfT0ZGU0VUKQogI2RlZmluZSBWRVJTQVRJTEVfRkxBU0hQUk9HX0ZMVlBQRU4JICAgICAgKDEgPDwgMCkJLyogRW5hYmxlIHdyaXRpbmcgdG8gZmxhc2ggKi8KIAotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0laRSAgICAgICAgIDB4MzQwMDAwMDAJLyogNjRNQiAqLwogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyMCpDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyMCpDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkoMjU2KQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJKDIwKkNPTkZJR19TWVNfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAkoMjAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkoMjU2KQogCi0jZGVmaW5lIFBIWVNfRkxBU0hfMQkJKENGR19GTEFTSF9CQVNFKQorI2RlZmluZSBQSFlTX0ZMQVNIXzEJCShDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSCAgICAgMSAgICAgICAgICAgICAgIC8qIGVudiBpbiBmbGFzaCBpbnN0ZWFkIG9mIENPTkZJR19FTlZfSVNfTk9XSEVSRSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRSAgICAgICAweDAwMDIwMDAwICAgICAgLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUgICAgICAgICAgICAweDEwMDAwICAgICAgICAgLyogVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQgICAgICAgICAgMHgwMWYwMDAwMCAgICAgIC8qIGVudmlyb25tZW50IHN0YXJ0cyBoZXJlICAqLwotI2RlZmluZSBDT05GSUdfRU5WX0FERFIgICAgICAgICAgICAoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyNkZWZpbmUgQ09ORklHX0VOVl9BRERSICAgICAgICAgICAgKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogCiAjZW5kaWYJCQkJCQkJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3ZpcnRsYWIyLmggYi9pbmNsdWRlL2NvbmZpZ3MvdmlydGxhYjIuaAppbmRleCBmM2Y0M2MzLi4zOGIwYTRlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvdmlydGxhYjIuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MvdmlydGxhYjIuaApAQCAtODEsNyArODEsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBmbGFzaF9zZWxmIgogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jdW5kZWYJQ0ZHX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KKyN1bmRlZglDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBkb24ndCBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UJKi8KIAogI3VuZGVmCUNPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMzIsMzIgKzEzMiwzMiBAQAogLyoKICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KLSNkZWZpbmUJQ0ZHX1BST01QVAkJIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZQlDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwotI2RlZmluZQlDRkdfSFVTSF9QQVJTRVIJCTEJLyogdXNlICJodXNoIiBjb21tYW5kIHBhcnNlcgkqLwotI2lmZGVmCUNGR19IVVNIX1BBUlNFUgotI2RlZmluZQlDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUJQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJMQkvKiB1c2UgImh1c2giIGNvbW1hbmQgcGFyc2VyCSovCisjaWZkZWYJQ09ORklHX1NZU19IVVNIX1BBUlNFUgorI2RlZmluZQlDT05GSUdfU1lTX1BST01QVF9IVVNIX1BTMgkiPiAiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZQlDRkdfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCQkxMDI0CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCiAjZWxzZQotI2RlZmluZQlDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUJQ09ORklHX1NZU19DQlNJWkUJCTI1NgkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLwogI2VuZGlmCi0jZGVmaW5lCUNGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLworI2RlZmluZQlDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCQkxNgkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLwogCi0jZGVmaW5lCUNGR19MT0FEX0FERFIJCTB4MTAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcwkqLwogCi0jZGVmaW5lCUNGR19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZQlDT05GSUdfU1lTX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzCSovCiAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIC8qCiAgKiBMb3cgTGV2ZWwgQ29uZmlndXJhdGlvbiBTZXR0aW5ncwpAQCAtMTY3LDQ3ICsxNjcsNDcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEludGVybmFsIE1lbW9yeSBNYXBwZWQgUmVnaXN0ZXIKICAqLwotI2RlZmluZSBDRkdfSU1NUgkJMHhGRkYwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lNTVIJCTB4RkZGMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRGVmaW5pdGlvbnMgZm9yIGluaXRpYWwgc3RhY2sgcG9pbnRlciBhbmQgZGF0YSBhcmVhIChpbiBEUFJBTSkKICAqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfSU1NUgotI2RlZmluZQlDRkdfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCi0jZGVmaW5lCUNGR19HQkxfREFUQV9TSVpFCTY0ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJQ09ORklHX1NZU19JTU1SCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MkYwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIERQUkFNCSovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfU0laRQk2NCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCShDT05GSUdfU1lTX0lOSVRfUkFNX0VORCAtIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSkKKyNkZWZpbmUJQ09ORklHX1NZU19JTklUX1NQX09GRlNFVAlDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBTdGFydCBhZGRyZXNzZXMgZm9yIHRoZSBmaW5hbCBtZW1vcnkgY29uZmlndXJhdGlvbgogICogKFNldCB1cCBieSB0aGUgc3RhcnR1cCBjb2RlKQotICogUGxlYXNlIG5vdGUgdGhhdCBDRkdfU0RSQU1fQkFTRSBfbXVzdF8gc3RhcnQgYXQgMAorICogUGxlYXNlIG5vdGUgdGhhdCBDT05GSUdfU1lTX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKICAqLwotI2RlZmluZQlDRkdfU0RSQU1fQkFTRQkJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHg0MDAwMDAwMAotI2RlZmluZQlDRkdfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUJQ0ZHX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLworI2RlZmluZQlDT05GSUdfU1lTX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQkweDQwMDAwMDAwCisjZGVmaW5lCUNPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgyNTYgPDwgMTApCS8qIFJlc2VydmUgMjU2IGtCIGZvciBNb25pdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCUNPTkZJR19TWVNfRkxBU0hfQkFTRQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCSgxMjggPDwgMTApCS8qIFJlc2VydmUgMTI4IGtCIGZvciBtYWxsb2MoKQkqLwogCiAvKgogICogRm9yIGJvb3RpbmcgTGludXgsIHRoZSBib2FyZCBpbmZvIGFuZCBjb21tYW5kIGxpbmUgZGF0YQogICogaGF2ZSB0byBiZSBpbiB0aGUgZmlyc3QgOCBNQiBvZiBtZW1vcnksIHNpbmNlIHRoaXMgaXMKICAqIHRoZSBtYXhpbXVtIG1hcHBlZCBieSB0aGUgTGludXgga2VybmVsIGR1cmluZyBpbml0aWFsaXphdGlvbi4KICAqLwotI2RlZmluZQlDRkdfQk9PVE1BUFNaCQkoOCA8PCAyMCkJLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eAkqLworI2RlZmluZQlDT05GSUdfU1lTX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXgJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KIAogLyogdXNlIENGSSBmbGFzaCBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJMQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkxCS8qIFVzZSB0aGUgY29tbW9uIGRyaXZlciAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFOS1NfTElTVAl7IENGR19GTEFTSF9CQVNFLCBDRkdfRkxBU0hfQkFTRStmbGFzaF9pbmZvWzBdLnNpemUgfQotI2RlZmluZSBDRkdfRkxBU0hfRU1QVFlfSU5GTwotI2RlZmluZSBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURQkxCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMgkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcyAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFOS1NfTElTVAl7IENPTkZJR19TWVNfRkxBU0hfQkFTRSwgQ09ORklHX1NZU19GTEFTSF9CQVNFK2ZsYXNoX2luZm9bMF0uc2l6ZSB9CisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRU1QVFlfSU5GTworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUJMQorI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkyCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJNzEJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICovCiAKICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCiAjZGVmaW5lCUNPTkZJR19FTlZfT0ZGU0VUCQkweDgwMDAJLyogICBPZmZzZXQgICBvZiBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIxNyw3ICsyMTcsNyBAQAogI2RlZmluZSBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQJKENPTkZJR19FTlZfT0ZGU0VUK0NPTkZJR19FTlZfU0laRSkKICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAkoQ09ORklHX0VOVl9TSVpFKQogCi0jZGVmaW5lCUNGR19VU0VfUFBDRU5WCQkJLyogRW52aXJvbm1lbnQgZW1iZWRkZWQgaW4gc2VjdCAucHBjZW52ICovCisjZGVmaW5lCUNPTkZJR19TWVNfVVNFX1BQQ0VOVgkJCS8qIEVudmlyb25tZW50IGVtYmVkZGVkIGluIHNlY3QgLnBwY2VudiAqLwogCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkJLyogTWFrZSBzdXJlIHRvIHJlbWFwIGZsYXNoZXMgY29ycmVjdGx5ICovCiAKQEAgLTIzNiwxNiArMjM2LDE2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBIYXJkd2FyZSBJbmZvcm1hdGlvbiBCbG9jawogICovCi0jZGVmaW5lIENGR19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KLSNkZWZpbmUgQ0ZHX0hXSU5GT19TSVpFCQkweDAwMDAwMDQwCS8qIHNpemUgICBvZiBIVyBJbmZvIGJsb2NrICovCi0jZGVmaW5lIENGR19IV0lORk9fTUFHSUMJMHg1NDUxNEQzOAkvKiAnVFFNOCcgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fT0ZGU0VUCTB4MDAwM0ZGQzAJLyogb2Zmc2V0IG9mIEhXIEluZm8gYmxvY2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IV0lORk9fU0laRQkJMHgwMDAwMDA0MAkvKiBzaXplICAgb2YgSFcgSW5mbyBibG9jayAqLworI2RlZmluZSBDT05GSUdfU1lTX0hXSU5GT19NQUdJQwkweDU0NTE0RDM4CS8qICdUUU04JyAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBDYWNoZSBDb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCTE2CS8qIEZvciBhbGwgTVBDOHh4IENQVXMJCQkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0FDSEVMSU5FX1NISUZUCTQJLyogbG9nIGJhc2UgMiBvZiB0aGUgYWJvdmUgdmFsdWUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQUNIRUxJTkVfU0hJRlQJNAkvKiBsb2cgYmFzZSAyIG9mIHRoZSBhYm92ZSB2YWx1ZQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1NSwxMCArMjU1LDEwIEBACiAgKiBTb2Z0d2FyZSAmIEJ1cyBNb25pdG9yIFRpbWVyIG1heCwgQnVzIE1vbml0b3IgZW5hYmxlLCBTVyBXYXRjaGRvZyBmcmVlemUKICAqLwogI2lmIGRlZmluZWQoQ09ORklHX1dBVENIRE9HKQotI2RlZmluZSBDRkdfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCisjZGVmaW5lIENPTkZJR19TWVNfU1lQQ1IJKFNZUENSX1NXVEMgfCBTWVBDUl9CTVQgfCBTWVBDUl9CTUUgfCBTWVBDUl9TV0YgfCBcCiAJCQkgU1lQQ1JfU1dFICB8IFNZUENSX1NXUkl8IFNZUENSX1NXUCkKICNlbHNlCi0jZGVmaW5lIENGR19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKKyNkZWZpbmUgQ09ORklHX1NZU19TWVBDUgkoU1lQQ1JfU1dUQyB8IFNZUENSX0JNVCB8IFNZUENSX0JNRSB8IFNZUENSX1NXRiB8IFNZUENSX1NXUCkKICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjcsOSArMjY3LDkgQEAKICAqIFBDTUNJQSBjb25maWcuLCBtdWx0aS1mdW5jdGlvbiBwaW4gdHJpLXN0YXRlCiAgKi8KICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUgQ0ZHX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQorI2RlZmluZSBDT05GSUdfU1lTX1NJVU1DUgkoU0lVTUNSX0RCR0MwMCB8IFNJVU1DUl9EQlBDMDAgfCBTSVVNQ1JfTUxSQzAxKQogI2Vsc2UJLyogd2UgbXVzdCBhY3RpdmF0ZSBHUEw1IGluIHRoZSBTSVVNQ1IgZm9yIENBTiAqLwotI2RlZmluZSBDRkdfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCisjZGVmaW5lIENPTkZJR19TWVNfU0lVTUNSCShTSVVNQ1JfREJHQzExIHwgU0lVTUNSX0RCUEMwMCB8IFNJVU1DUl9NTFJDMDEpCiAjZW5kaWYJLyogQ09ORklHX0NBTl9EUklWRVIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjc3LDIwICsyNzcsMjAgQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENsZWFyIFJlZmVyZW5jZSBJbnRlcnJ1cHQgU3RhdHVzLCBUaW1lYmFzZSBmcmVlemluZyBlbmFibGVkCiAgKi8KLSNkZWZpbmUgQ0ZHX1RCU0NSCShUQlNDUl9SRUZBIHwgVEJTQ1JfUkVGQiB8IFRCU0NSX1RCRikKKyNkZWZpbmUgQ09ORklHX1NZU19UQlNDUgkoVEJTQ1JfUkVGQSB8IFRCU0NSX1JFRkIgfCBUQlNDUl9UQkYpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFJUQ1NDIC0gUmVhbC1UaW1lIENsb2NrIFN0YXR1cyBhbmQgQ29udHJvbCBSZWdpc3RlcgkJMTEtMjcKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfUlRDU0MJKFJUQ1NDX1NFQyB8IFJUQ1NDX0FMUiB8IFJUQ1NDX1JURnwgUlRDU0NfUlRFKQorI2RlZmluZSBDT05GSUdfU1lTX1JUQ1NDCShSVENTQ19TRUMgfCBSVENTQ19BTFIgfCBSVENTQ19SVEZ8IFJUQ1NDX1JURSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUElTQ1IgLSBQZXJpb2RpYyBJbnRlcnJ1cHQgU3RhdHVzIGFuZCBDb250cm9sCQkxMS0zMQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogQ2xlYXIgUGVyaW9kaWMgSW50ZXJydXB0IFN0YXR1cywgSW50ZXJydXB0IFRpbWVyIGZyZWV6aW5nIGVuYWJsZWQKICAqLwotI2RlZmluZSBDRkdfUElTQ1IJKFBJU0NSX1BTIHwgUElTQ1JfUElURikKKyNkZWZpbmUgQ09ORklHX1NZU19QSVNDUgkoUElTQ1JfUFMgfCBQSVNDUl9QSVRGKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQTFBSQ1IgLSBQTEwsIExvdy1Qb3dlciwgYW5kIFJlc2V0IENvbnRyb2wgUmVnaXN0ZXIJCTE1LTMwCkBAIC0yOTgsNyArMjk4LDcgQEAKICAqIFJlc2V0IFBMTCBsb2NrIHN0YXR1cyBzdGlja3kgYml0LCB0aW1lciBleHBpcmVkIHN0YXR1cyBiaXQgYW5kIHRpbWVyCiAgKiBpbnRlcnJ1cHQgc3RhdHVzIGJpdAogICovCi0jZGVmaW5lIENGR19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKKyNkZWZpbmUgQ09ORklHX1NZU19QTFBSQ1IJKFBMUFJDUl9TUExTUyB8IFBMUFJDUl9URVhQUyB8IFBMUFJDUl9UTUlTVCkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU0NDUiAtIFN5c3RlbSBDbG9jayBhbmQgcmVzZXQgQ29udHJvbCBSZWdpc3RlcgkJMTUtMjcKQEAgLTMwNyw3ICszMDcsNyBAQAogICogcG93ZXIgbWFuYWdlbWVudCBhbmQgc29tZSBvdGhlciBpbnRlcm5hbCBjbG9ja3MKICAqLwogI2RlZmluZSBTQ0NSX01BU0sJU0NDUl9FQkRGMTEKLSNkZWZpbmUgQ0ZHX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAorI2RlZmluZSBDT05GSUdfU1lTX1NDQ1IJKFNDQ1JfQ09NMDAgICB8IFNDQ1JfREZTWU5DMDAgfCBTQ0NSX0RGQlJHMDAgIHwgXAogCQkJIFNDQ1JfREZOTDAwMCB8IFNDQ1JfREZOSDAwMCAgfCBTQ0NSX0RGTENEMDAwIHwgXAogCQkJIFNDQ1JfREZBTENEMDApCiAKQEAgLTMxNiwxNCArMzE2LDE0IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICovCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfTUVNX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX0FERFIJKDB4RTQwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCi0jZGVmaW5lIENGR19QQ01DSUFfQVRUUkJfQUREUgkoMHhFODAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9BVFRSQl9TSVpFCSggNjQgPDwgMjAgKQotI2RlZmluZSBDRkdfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCi0jZGVmaW5lIENGR19QQ01DSUFfSU9fU0laRQkoIDY0IDw8IDIwICkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfTUVNX0FERFIJKDB4RTAwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX01FTV9TSVpFCSggNjQgPDwgMjAgKQorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9ETUFfQUREUgkoMHhFNDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfRE1BX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX0FERFIJKDB4RTgwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0FUVFJCX1NJWkUJKCA2NCA8PCAyMCApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX0FERFIJKDB4RUMwMDAwMDApCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX0lPX1NJWkUJKCA2NCA8PCAyMCApCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIElERS9BVEEgc3R1ZmYgKFN1cHBvcnRzIElERSBoYXJkZGlzayBvbiBQQ01DSUEgQWRhcHRlcikKQEAgLTMzNiwyOCArMzM2LDI4IEBACiAjdW5kZWYJQ09ORklHX0lERV9MRUQJCQkvKiBMRUQgICBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KICN1bmRlZglDT05GSUdfSURFX1JFU0VUCQkvKiByZXNldCBmb3IgaWRlIG5vdCBzdXBwb3J0ZWQJKi8KIAotI2RlZmluZSBDRkdfSURFX01BWEJVUwkJMQkvKiBtYXguIDEgSURFIGJ1cwkJKi8KLSNkZWZpbmUgQ0ZHX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JREVfTUFYQlVTCQkxCS8qIG1heC4gMSBJREUgYnVzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX0lERV9NQVhERVZJQ0UJMQkvKiBtYXguIDEgZHJpdmUgcGVyIElERSBidXMJKi8KIAotI2RlZmluZSBDRkdfQVRBX0lERTBfT0ZGU0VUCTB4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9JREUwX09GRlNFVAkweDAwMDAKIAotI2RlZmluZSBDRkdfQVRBX0JBU0VfQUREUglDRkdfUENNQ0lBX01FTV9BRERSCisjZGVmaW5lIENPTkZJR19TWVNfQVRBX0JBU0VfQUREUglDT05GSUdfU1lTX1BDTUNJQV9NRU1fQUREUgogCiAvKiBPZmZzZXQgZm9yIGRhdGEgSS9PCQkJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9EQVRBX09GRlNFVAkoQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBub3JtYWwgcmVnaXN0ZXIgYWNjZXNzZXMJKi8KLSNkZWZpbmUgQ0ZHX0FUQV9SRUdfT0ZGU0VUCSgyICogQ0ZHX1BDTUNJQV9NRU1fU0laRSArIDB4MzIwKQorI2RlZmluZSBDT05GSUdfU1lTX0FUQV9SRUdfT0ZGU0VUCSgyICogQ09ORklHX1NZU19QQ01DSUFfTUVNX1NJWkUgKyAweDMyMCkKIAogLyogT2Zmc2V0IGZvciBhbHRlcm5hdGUgcmVnaXN0ZXJzCSovCi0jZGVmaW5lIENGR19BVEFfQUxUX09GRlNFVAkweDAxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19BVEFfQUxUX09GRlNFVAkweDAxMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKi8KLSNkZWZpbmUgQ0ZHX0RFUgkwCisjZGVmaW5lIENPTkZJR19TWVNfREVSCTAKIAogLyoKICAqIEluaXQgTWVtb3J5IENvbnRyb2xsZXI6CkBAIC0zNzIsMjIgKzM3MiwyMiBAQAogICogcmVzdHJpY3QgYWNjZXNzIGVub3VnaCB0byBrZWVwIFNSQU0gd29ya2luZyAoaWYgYW55KQogICogYnV0IG5vdCB0b28gbXVjaCB0byBtZWRkbGUgd2l0aCBGTEFTSCBhY2Nlc3NlcwogICovCi0jZGVmaW5lIENGR19SRU1BUF9PUl9BTQkJMHg4MDAwMDAwMAkvKiBPUiBhZGRyIG1hc2sgKi8KLSNkZWZpbmUgQ0ZHX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1JFTUFQX09SX0FNCQkweDgwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLworI2RlZmluZSBDT05GSUdfU1lTX1BSRUxJTV9PUl9BTQkweEUwMDAwMDAwCS8qIE9SIGFkZHIgbWFzayAqLwogCiAvKgogICogRkxBU0ggdGltaW5nOgogICovCi0jZGVmaW5lIENGR19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19PUl9USU1JTkdfRkxBU0gJKE9SX0FDU19ESVYxICB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKIAkJCQkgT1JfU0NZXzNfQ0xLIHwgT1JfRUhUUiB8IE9SX0JJKQogCi0jZGVmaW5lIENGR19PUjBfUkVNQVAJKENGR19SRU1BUF9PUl9BTSAgfCBDRkdfT1JfVElNSU5HX0ZMQVNIKQotI2RlZmluZSBDRkdfT1IwX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfRkxBU0gpCi0jZGVmaW5lIENGR19CUjBfUFJFTElNCSgoRkxBU0hfQkFTRTBfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMF9SRU1BUAkoQ09ORklHX1NZU19SRU1BUF9PUl9BTSAgfCBDT05GSUdfU1lTX09SX1RJTUlOR19GTEFTSCkKKyNkZWZpbmUgQ09ORklHX1NZU19PUjBfUFJFTElNCShDT05GSUdfU1lTX1BSRUxJTV9PUl9BTSB8IENPTkZJR19TWVNfT1JfVElNSU5HX0ZMQVNIKQorI2RlZmluZSBDT05GSUdfU1lTX0JSMF9QUkVMSU0JKChGTEFTSF9CQVNFMF9QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfViApCiAKLSNkZWZpbmUgQ0ZHX09SMV9SRU1BUAlDRkdfT1IwX1JFTUFQCi0jZGVmaW5lIENGR19PUjFfUFJFTElNCUNGR19PUjBfUFJFTElNCi0jZGVmaW5lIENGR19CUjFfUFJFTElNCSgoRkxBU0hfQkFTRTFfUFJFTElNICYgQlJfQkFfTVNLKSB8IEJSX1YgKQorI2RlZmluZSBDT05GSUdfU1lTX09SMV9SRU1BUAlDT05GSUdfU1lTX09SMF9SRU1BUAorI2RlZmluZSBDT05GSUdfU1lTX09SMV9QUkVMSU0JQ09ORklHX1NZU19PUjBfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIxX1BSRUxJTQkoKEZMQVNIX0JBU0UxX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9WICkKIAogLyoKICAqIEJSMi8zIGFuZCBPUjIvMyAoU0RSQU0pCkBAIC0zOTgsMTkgKzM5OCwxOSBAQAogI2RlZmluZQlTRFJBTV9NQVhfU0laRQkJMHgwNDAwMDAwMAkvKiBtYXggNjQgTUIgcGVyIGJhbmsJKi8KIAogLyogU0RSQU0gdGltaW5nOiBNdWx0aXBsZXhlZCBhZGRyZXNzZXMsIEdQTDUgb3V0cHV0IHRvIEdQTDVfQSAoZG9uJ3QgY2FyZSkJKi8KLSNkZWZpbmUgQ0ZHX09SX1RJTUlOR19TRFJBTQkweDAwMDAwQTAwCisjZGVmaW5lIENPTkZJR19TWVNfT1JfVElNSU5HX1NEUkFNCTB4MDAwMDBBMDAKIAotI2RlZmluZSBDRkdfT1IyX1BSRUxJTQkoQ0ZHX1BSRUxJTV9PUl9BTSB8IENGR19PUl9USU1JTkdfU0RSQU0gKQotI2RlZmluZSBDRkdfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCisjZGVmaW5lIENPTkZJR19TWVNfT1IyX1BSRUxJTQkoQ09ORklHX1NZU19QUkVMSU1fT1JfQU0gfCBDT05GSUdfU1lTX09SX1RJTUlOR19TRFJBTSApCisjZGVmaW5lIENPTkZJR19TWVNfQlIyX1BSRUxJTQkoKFNEUkFNX0JBU0UyX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAKICNpZm5kZWYJQ09ORklHX0NBTl9EUklWRVIKLSNkZWZpbmUJQ0ZHX09SM19QUkVMSU0JQ0ZHX09SMl9QUkVMSU0KLSNkZWZpbmUgQ0ZHX0JSM19QUkVMSU0JKChTRFJBTV9CQVNFM19QUkVMSU0gJiBCUl9CQV9NU0spIHwgQlJfTVNfVVBNQSB8IEJSX1YgKQorI2RlZmluZQlDT05GSUdfU1lTX09SM19QUkVMSU0JQ09ORklHX1NZU19PUjJfUFJFTElNCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX1BSRUxJTQkoKFNEUkFNX0JBU0UzX1BSRUxJTSAmIEJSX0JBX01TSykgfCBCUl9NU19VUE1BIHwgQlJfViApCiAjZWxzZQkvKiBDQU4gdXNlcyBDUzMjLCBzbyB3ZSBjYW4gaGF2ZSBvbmx5IG9uZSBTRFJBTSBiYW5rIGFueXdheSAqLwotI2RlZmluZQlDRkdfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCi0jZGVmaW5lIENGR19DQU5fT1JfQU0JCTB4RkZGRjgwMDAJLyogMzIga0IgYWRkcmVzcyBtYXNrCQkqLwotI2RlZmluZSBDRkdfT1IzX0NBTgkJKENGR19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCi0jZGVmaW5lIENGR19CUjNfQ0FOCQkoKENGR19DQU5fQkFTRSAmIEJSX0JBX01TSykgfCBcCisjZGVmaW5lCUNPTkZJR19TWVNfQ0FOX0JBU0UJCTB4QzAwMDAwMDAJLyogQ0FOIG1hcHBlZCBhdCAweEMwMDAwMDAwCSovCisjZGVmaW5lIENPTkZJR19TWVNfQ0FOX09SX0FNCQkweEZGRkY4MDAwCS8qIDMyIGtCIGFkZHJlc3MgbWFzawkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjNfQ0FOCQkoQ09ORklHX1NZU19DQU5fT1JfQU0gfCBPUl9HNUxBIHwgT1JfQkkpCisjZGVmaW5lIENPTkZJR19TWVNfQlIzX0NBTgkJKChDT05GSUdfU1lTX0NBTl9CQVNFICYgQlJfQkFfTVNLKSB8IFwKIAkJCQkJQlJfUFNfOCB8IEJSX01TX1VQTUIgfCBCUl9WICkKICNlbmRpZgkvKiBDT05GSUdfQ0FOX0RSSVZFUiAqLwogCkBAIC00NDEsMzQgKzQ0MSwzNCBAQAogICogODAgTWh6ID0+IDgwLjAwMC4wMDAgLyBEaXZpZGVyID0gMTU2CiAgKi8KIAotI2RlZmluZSBDRkdfUFRBX1BFUl9DTEsJKCg0MDk2ICogMzIgKiAxMDAwKSAvICg0ICogNjQpKQotI2RlZmluZSBDRkdfTUFNUl9QVEEJOTgKKyNkZWZpbmUgQ09ORklHX1NZU19QVEFfUEVSX0NMSwkoKDQwOTYgKiAzMiAqIDEwMDApIC8gKDQgKiA2NCkpCisjZGVmaW5lIENPTkZJR19TWVNfTUFNUl9QVEEJOTgKIAogLyoKICAqIEZvciAxNiBNQml0LCByZWZyZXNoIHJhdGVzIGNvdWxkIGJlIDMxLjMgdXMKICAqICg9IDY0IG1zIC8gMksgPSAxMjUgLyBxdWFkIGJ1cnN0cykuCiAgKiBGb3IgYSBzaW1wbGVyIGluaXRpYWxpemF0aW9uLCAxNS42IHVzIGlzIHVzZWQgaW5zdGVhZC4KICAqCi0gKiAjZGVmaW5lIENGR19NUFRQUl8yQktfMksJTVBUUFJfUFRQX0RJVjMyCQlmb3IgMiBiYW5rcwotICogI2RlZmluZSBDRkdfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuaworICogI2RlZmluZSBDT05GSUdfU1lTX01QVFBSXzJCS18ySwlNUFRQUl9QVFBfRElWMzIJCWZvciAyIGJhbmtzCisgKiAjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzJLCU1QVFBSX1BUUF9ESVY2NAkJZm9yIDEgYmFuawogICovCi0jZGVmaW5lIENGR19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfNEsJTVBUUFJfUFRQX0RJVjMyCQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfNEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCisjZGVmaW5lIENPTkZJR19TWVNfTVBUUFJfMUJLXzRLCU1QVFBSX1BUUF9ESVYzMgkJLyogc2V0dGluZyBmb3IgMSBiYW5rCSovCiAKIC8qIHJlZnJlc2ggcmF0ZSA3LjggdXMgKD0gNjQgbXMgLyA4SyA9IDMxLjIgLyBxdWFkIGJ1cnN0cykgZm9yIDI1NiBNQml0CQkqLwotI2RlZmluZSBDRkdfTVBUUFJfMkJLXzhLCU1QVFBSX1BUUF9ESVY4CQkvKiBzZXR0aW5nIGZvciAyIGJhbmtzCSovCi0jZGVmaW5lIENGR19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8yQktfOEsJTVBUUFJfUFRQX0RJVjgJCS8qIHNldHRpbmcgZm9yIDIgYmFua3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NUFRQUl8xQktfOEsJTVBUUFJfUFRQX0RJVjE2CQkvKiBzZXR0aW5nIGZvciAxIGJhbmsJKi8KIAogLyoKICAqIE1BTVIgc2V0dGluZ3MgZm9yIFNEUkFNCiAgKi8KIAogLyogOCBjb2x1bW4gU0RSQU0gKi8KLSNkZWZpbmUgQ0ZHX01BTVJfOENPTAkoKENGR19NQU1SX1BUQSA8PCBNQU1SX1BUQV9TSElGVCkgIHwgTUFNUl9QVEFFCSAgICB8CVwKKyNkZWZpbmUgQ09ORklHX1NZU19NQU1SXzhDT0wJKChDT05GSUdfU1lTX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAogCQkJIE1BTVJfQU1BX1RZUEVfMCB8IE1BTVJfRFNBXzFfQ1lDTCB8IE1BTVJfRzBDTEFfQTExIHwJXAogCQkJIE1BTVJfUkxGQV8xWAkgfCBNQU1SX1dMRkFfMVgJICAgfCBNQU1SX1RMRkFfNFgpCiAvKiA5IGNvbHVtbiBTRFJBTSAqLwotI2RlZmluZSBDRkdfTUFNUl85Q09MCSgoQ0ZHX01BTVJfUFRBIDw8IE1BTVJfUFRBX1NISUZUKSAgfCBNQU1SX1BUQUUJICAgIHwJXAorI2RlZmluZSBDT05GSUdfU1lTX01BTVJfOUNPTAkoKENPTkZJR19TWVNfTUFNUl9QVEEgPDwgTUFNUl9QVEFfU0hJRlQpICB8IE1BTVJfUFRBRQkgICAgfAlcCiAJCQkgTUFNUl9BTUFfVFlQRV8xIHwgTUFNUl9EU0FfMV9DWUNMIHwgTUFNUl9HMENMQV9BMTAgfAlcCiAJCQkgTUFNUl9STEZBXzFYCSB8IE1BTVJfV0xGQV8xWAkgICB8IE1BTVJfVExGQV80WCkKIApAQCAtNDgyLDEwICs0ODIsMTAgQEAKICNkZWZpbmUgQk9PVEZMQUdfV0FSTQkweDAyCQkvKiBTb2Z0d2FyZSByZWJvb3QJCQkqLwogCiAvKiBNYXAgcGVyaXBoZXJhbCBjb250cm9sIHJlZ2lzdGVycyBvbiBDUzQgKi8KLSNkZWZpbmUgQ0ZHX1BFUklQSEVSQUxfQkFTRSAweEEwMDAwMDAwCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX09SX0FNIDB4RkZGRjgwMDAgLyogMzIga0IgYWRkcmVzcyBtYXNrICovCi0jZGVmaW5lIENGR19PUjRfUFJFTElNIChDRkdfUEVSSVBIRVJBTF9PUl9BTSB8IE9SX1RSTFggfCBPUl9DU05UX1NBTSB8IFwKKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgMHhBMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfT1JfQU0gMHhGRkZGODAwMCAvKiAzMiBrQiBhZGRyZXNzIG1hc2sgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19PUjRfUFJFTElNIChDT05GSUdfU1lTX1BFUklQSEVSQUxfT1JfQU0gfCBPUl9UUkxYIHwgT1JfQ1NOVF9TQU0gfCBcCiAJCQkJCQlPUl9TQ1lfMl9DTEspCi0jZGVmaW5lIENGR19CUjRfUFJFTElNICgoQ0ZHX1BFUklQSEVSQUxfQkFTRSAmIEJSX0JBX01TSykgfCBCUl9QU184IHwgQlJfVikKLSNkZWZpbmUgUENNQ0lBX0NUUkwgKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweEIwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CUjRfUFJFTElNICgoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgJiBCUl9CQV9NU0spIHwgQlJfUFNfOCB8IEJSX1YpCisjZGVmaW5lIFBDTUNJQV9DVFJMIChDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4QjAwKQogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy92b2ljZWJsdWUuaCBiL2luY2x1ZGUvY29uZmlncy92b2ljZWJsdWUuaAppbmRleCAzMTJmNzIwLi44NjZiNzJkNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3ZvaWNlYmx1ZS5oCisrKyBiL2luY2x1ZGUvY29uZmlncy92b2ljZWJsdWUuaApAQCAtNTQsMjggKzU0LDI4IEBACiAKICNkZWZpbmUgUEhZU19GTEFTSF8xCQkweDAwMDAwMDAwCS8qIEZsYXNoIEJhbmsgIzEgKi8KIAotI2RlZmluZSBDRkdfTE9BRF9BRERSCQlQSFlTX1NEUkFNXzEgKyAweDQwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJUEhZU19TRFJBTV8xICsgMHg0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAogLyoKICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkvKiBGbGFzaCBpcyBDRkkgY29uZm9ybWFudCAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSQkJCS8qIEZsYXNoIGlzIENGSSBjb25mb3JtYW50ICovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkvKiBVc2UgdGhlIGNvbW1vbiBkcml2ZXIgKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKiBGSVhNRTogRG9lcyBub3Qgd29yayBvbiBBTUQgZmxhc2ggKi8KLS8qICNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMSAqLwkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKSAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCAjIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEgKi8JLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4ICMgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDI1NiAqIDEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkKIAogLyoKICAqIEVudmlyb25tZW50IHNldHRpbmdzCiAgKi8KICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9GTEFTSAotI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyBDRkdfTU9OSVRPUl9MRU4pCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKFBIWVNfRkxBU0hfMSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJKDggKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkoNjQgKiAxMDI0KQogI2RlZmluZSBDT05GSUdfRU5WX0FERFJfUkVEVU5ECShDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NFQ1RfU0laRSkKQEAgLTg2LDEwICs4NiwxMCBAQAogLyoKICAqIFNpemUgb2YgbWFsbG9jKCkgcG9vbCBhbmQgc3RhY2sKICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoNCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCSg0ICogMTAyNCAqIDEwMjQpCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJKDEgKiAxMDI0ICogMTAyNCkKLSNkZWZpbmUgUEhZU19TRFJBTV8xX1JFU0VSVkVECShDRkdfTU9OSVRPUl9MRU4gKyBDRkdfTUFMTE9DX0xFTiArIENPTkZJR19TVEFDS1NJWkUpCisjZGVmaW5lIFBIWVNfU0RSQU1fMV9SRVNFUlZFRAkoQ09ORklHX1NZU19NT05JVE9SX0xFTiArIENPTkZJR19TWVNfTUFMTE9DX0xFTiArIENPTkZJR19TVEFDS1NJWkUpCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC05OCwyNSArOTgsMjUgQEAKICNkZWZpbmUgQ09ORklHX1NNQzkxMTExX0JBU0UJMHgwODAwMDMwMAogCiAjZGVmaW5lIENPTkZJR19IQVJEX0kyQwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQkxMDAwMDAKLSNkZWZpbmUgQ0ZHX0kyQ19TTEFWRQkJMQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkxCiAjZGVmaW5lIENPTkZJR19EUklWRVJfT01BUDE1MTBfSTJDCiAKICNkZWZpbmUgQ09ORklHX1JUQ19EUzEzMDcKLSNkZWZpbmUgQ0ZHX0kyQ19SVENfQUREUgkweDY4CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCTB4NjgKIAogLyoKICAqIE5TMTY1NTAgQ29uZmlndXJhdGlvbgogICovCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQkoLTQpCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJKENPTkZJR19YVEFMX0ZSRVEpCS8qIGNhbiBiZSAxMk0vMzJLaHogb3IgNDhNaHogICovCi0jZGVmaW5lIENGR19OUzE2NTUwX0NPTTEJT01BUDE1MTBfVUFSVDFfQkFTRQkvKiB1YXJ0MSAqLworI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTAKKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUJKC00KQorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ0xLCQkoQ09ORklHX1hUQUxfRlJFUSkJLyogY2FuIGJlIDEyTS8zMktoeiBvciA0OE1oeiAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OUzE2NTUwX0NPTTEJT01BUDE1MTBfVUFSVDFfQkFTRQkvKiB1YXJ0MSAqLwogCiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUgQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CiAKIAogLyoKQEAgLTE1Miw3ICsxNTIsNyBAQAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTMKICNkZWZpbmUgQ09ORklHX1pFUk9fQk9PVERFTEFZX0NIRUNLCS8qIGFsbG93IHRvIGJyZWFrIGluIGFsd2F5cyAqLwogI3VuZGVmICBDT05GSUdfQk9PVEFSR1MJCS8qIHRoZSBib290IGNvbW1hbmQgd2lsbCBzZXQgYm9vdGFyZ3MqLwotI2RlZmluZSBDRkdfQVVUT0xPQUQJCSJuIgkJLyogTm8gYXV0b2xvYWQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19BVVRPTE9BRAkJIm4iCQkvKiBObyBhdXRvbG9hZCAqLwogI2RlZmluZSBDT05GSUdfQk9PVENPTU1BTkQJInJ1biBuYm9vdCIKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJCSJydW4gc2V0dXAiCiAjZGVmaW5lCUNPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MJCQkJXApAQCAtMTk3LDI3ICsxOTcsMjcgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKICNkZWZpbmUgQ09ORklHX0FVVE9fQ09NUExFVEUKLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiIyAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0CSovCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSIjICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAlQSFlTX1NEUkFNXzEKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQlQSFlTX1NEUkFNXzEgKyBQSFlTX1NEUkFNXzFfU0laRSAtIFBIWVNfU0RSQU1fMV9SRVNFUlZFRAorI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJUEhZU19TRFJBTV8xCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCVBIWVNfU0RSQU1fMSArIFBIWVNfU0RSQU1fMV9TSVpFIC0gUEhZU19TRFJBTV8xX1JFU0VSVkVECiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCiAvKiBUaGUgMTUxMCBoYXMgMyB0aW1lcnMsIHRoZXkgY2FuIGJlIGRyaXZlbiBieSB0aGUgUmVmQ2xrICgxMk1oeikgb3IgYnkgRFBMTDEuCiAgKiBUaGlzIHRpbWUgaXMgZnVydGhlciBzdWJkaXZpZGVkIGJ5IGEgbG9jYWwgZGl2aXNvci4KICAqLwotI2RlZmluZSBDRkdfVElNRVJCQVNFCQlPTUFQMTUxMF9USU1FUjFfQkFTRQotI2RlZmluZSBDRkdfUFZUCQkJNwkJLyogMl4ocHZ0KzEpLCBkaXZpZGUgYnkgMjU2ICovCi0jZGVmaW5lIENGR19IWgkJCSgoQ09ORklHX1NZU19DTEtfRlJFUSkvKDIgPDwgQ0ZHX1BWVCkpCisjZGVmaW5lIENPTkZJR19TWVNfVElNRVJCQVNFCQlPTUFQMTUxMF9USU1FUjFfQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BWVAkJCTcJCS8qIDJeKHB2dCsxKSwgZGl2aWRlIGJ5IDI1NiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJKChDT05GSUdfU1lTX0NMS19GUkVRKS8oMiA8PCBDT05GSUdfU1lTX1BWVCkpCiAKICNkZWZpbmUgT01BUDU5MTBfRFBMTF9ESVYJMQogI2RlZmluZSBPTUFQNTkxMF9EUExMX01VTAkoKENPTkZJR19TWVNfQ0xLX0ZSRVEgKiBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvd2FsbnV0LmggYi9pbmNsdWRlL2NvbmZpZ3Mvd2FsbnV0LmgKaW5kZXggZDNkMDc5YS4uNjMwYzBkMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3dhbG51dC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy93YWxudXQuaApAQCAtNzYsMzAgKzc2LDMwIEBACiAjZGVmaW5lIENPTkZJR19TUERfRUVQUk9NICAgICAgMSAgICAgICAvKiB1c2UgU1BEIEVFUFJPTSBmb3Igc2V0dXAgICAgKi8KIAogLyoKLSAqIElmIENGR19FWFRfU0VSSUFMX0NMT0NLLCB0aGVuIHRoZSBVQVJUIGRpdmlzb3IgaXMgMS4KLSAqIElmIENGR180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgotICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENGR19CQVNFX0JBVUQgdmFsdWUuCisgKiBJZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0ssIHRoZW4gdGhlIFVBUlQgZGl2aXNvciBpcyAxLgorICogSWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTksIHRoZW4gVUFSVCBkaXZpc29yIGlzIDMxLgorICogT3RoZXJ3aXNlLCBVQVJUIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBieSBDUFUgQ2xvY2sgYW5kIENPTkZJR19TWVNfQkFTRV9CQVVEIHZhbHVlLgogICogVGhlIExpbnV4IEJBU0VfQkFVRCBkZWZpbmUgc2hvdWxkIG1hdGNoIHRoaXMgY29uZmlndXJhdGlvbi4KICAqICAgIGJhc2VCYXVkID0gY3B1Q2xvY2svKHVhcnREaXZpc29yKjE2KQotICogSWYgQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OSBhbmQgMjAwTUh6IENQVSBjbG9jaywKKyAqIElmIENPTkZJR19TWVNfNDA1X1VBUlRfRVJSQVRBXzU5IGFuZCAyMDBNSHogQ1BVIGNsb2NrLAogICogc2V0IExpbnV4IEJBU0VfQkFVRCB0byA0MDMyMDAuCiAgKi8KICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSN1bmRlZglDRkdfRVhUX1NFUklBTF9DTE9DSwkgICAgICAgLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCi0jdW5kZWYJQ0ZHXzQwNV9VQVJUX0VSUkFUQV81OQkgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkgICAgNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCSAgICAgICAvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KKyN1bmRlZglDT05GSUdfU1lTXzQwNV9VQVJUX0VSUkFUQV81OQkgICAgICAgLyogNDA1R1AvQ1IgUmV2LiBEIHNpbGljb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVNFX0JBVUQJICAgIDY5MTIwMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJMkMgc3R1ZmYKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQQ0kgc3R1ZmYKQEAgLTExNSwyMCArMTE1LDIwIEBACiAJCQkJCS8qIHJlc291cmNlIGNvbmZpZ3VyYXRpb24JKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cJCS8qIHNob3cgcGNpIGRldmljZXMgb24gc3RhcnR1cAkqLwogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlciAqLwotI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweDgwMDAwMDAxCS8qIDJHQiwgZW5hYmxlIGhhcmQtd2lyZWQgdG8gMQkqLwotI2RlZmluZSBDRkdfUENJX1BUTTFQQ0kgMHgwMDAwMDAwMAkvKiBIb3N0OiB1c2UgdGhpcyBwY2kgYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9QVE0yTVMJMHgwMDAwMDAwMAkvKiBkaXNhYmxlZAkJCSovCi0jZGVmaW5lIENGR19QQ0lfUFRNMlBDSSAweDA0MDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0xTVMJMHg4MDAwMDAwMQkvKiAyR0IsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMVBDSSAweDAwMDAwMDAwCS8qIEhvc3Q6IHVzZSB0aGlzIHBjaSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1BUTTJMQQkweDAwMDAwMDAwCS8qIGRpc2FibGVkCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfUFRNMk1TCTB4MDAwMDAwMDAJLyogZGlzYWJsZWQJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QVE0yUENJIDB4MDQwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKICAqLwotI2RlZmluZSBDRkdfRkxBU0hfQkFTRQkJMHhGRkY4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCTB4RkZGODAwMDAKIAogLyoKICAqIERlZmluZSBoZXJlIHRoZSBsb2NhdGlvbiBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIChGTEFTSCBvciBOVlJBTSkuCkBAIC0xNDQsMjQgKzE0NCwyNCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggb3JnYW5pemF0aW9uCiAgKi8KLSNkZWZpbmUgRkxBU0hfQkFTRTBfUFJFTElNCUNGR19GTEFTSF9CQVNFCS8qIEZMQVNIIGJhbmsgIzAJCSovCisjZGVmaW5lIEZMQVNIX0JBU0UwX1BSRUxJTQlDT05GSUdfU1lTX0ZMQVNIX0JBU0UJLyogRkxBU0ggYmFuayAjMAkJKi8KICNkZWZpbmUgRkxBU0hfQkFTRTFfUFJFTElNCTAJCS8qIEZMQVNIIGJhbmsgIzEJCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMjU2CS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTI1NgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9BRERSMAkJMHg1NTU1Ci0jZGVmaW5lIENGR19GTEFTSF9BRERSMQkJMHgyYWFhCi0jZGVmaW5lIENGR19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIwCQkweDU1NTUKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9BRERSMQkJMHgyYWFhCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV09SRF9TSVpFCXVuc2lnbmVkIGNoYXIKIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgxMDAwMAkJLyogc2l6ZSBvZiBvbmUgY29tcGxldGUgc2VjdG9yCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTE3MiwxMyArMTcyLDEzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBOVlJBTSBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSCTB4ZjAwMDAwMDAJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19OVlJBTV9TSVpFCQkweDFmZjgJCS8qIE5WUkFNIHNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9CQVNFX0FERFIJMHhmMDAwMDAwMAkvKiBOVlJBTSBiYXNlIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCQkweDFmZjgJCS8qIE5WUkFNIHNpemUJKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fTlZSQU0KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDEwMDAJCS8qIFNpemUgb2YgRW52aXJvbm1lbnQgdmFycwkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCVwKLQkoQ0ZHX05WUkFNX0JBU0VfQUREUitDRkdfTlZSQU1fU0laRS1DT05GSUdfRU5WX1NJWkUpCS8qIEVudgkqLworCShDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUitDT05GSUdfU1lTX05WUkFNX1NJWkUtQ09ORklHX0VOVl9TSVpFKQkvKiBFbnYJKi8KICNlbmRpZgogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODYsMzkgKzE4NiwzOSBAQAogICovCiAKIC8qIE1lbW9yeSBCYW5rIDAgKEZsYXNoIEJhbmsgMCkgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIwQVAJCTB4OUIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjBDUgkJMHhGRkYxODAwMCAgLyogQkFTPTB4RkZGLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHg5QjAxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJMHhGRkYxODAwMCAgLyogQkFTPTB4RkZGLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4MDI4MTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFBUAkJMHgwMjgxNTQ4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjFDUgkJMHhGMDAxODAwMCAgLyogQkFTPTB4RjAwLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDQ4MTVBODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJMHhGMDExODAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJBUAkJMHgwNDgxNUE4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjJDUgkJMHhGMDExODAwMCAgLyogQkFTPTB4RjAxLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfUEIzQVAJCTB4MDE4MTUyODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjNDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNBUAkJMHgwMTgxNTI4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjNDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCi0jZGVmaW5lIENGR19FQkNfUEI3QVAJCTB4MDE4MTUyODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjdDUgkJMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjdBUAkJMHgwMTgxNTI4MAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjdDUgkJMHhGMDMxODAwMCAgLyogQkFTPTB4RjAzLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFeHRlcm5hbCBwZXJpcGhlcmFsIGJhc2UgYWRkcmVzcwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jZGVmaW5lIENGR19LRVlfUkVHX0JBU0VfQUREUgkweEYwMTAwMDAwCi0jZGVmaW5lIENGR19JUl9SRUdfQkFTRV9BRERSCTB4RjAyMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfS0VZX1JFR19CQVNFX0FERFIJMHhGMDEwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0lSX1JFR19CQVNFX0FERFIJMHhGMDIwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfUkVHX0JBU0VfQUREUgkweEYwMzAwMDAwCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBpbml0aWFsIHN0YWNrIHBvaW50ZXIgYW5kIGRhdGEgYXJlYQogICovCi0jZGVmaW5lIENGR19JTklUX0RDQUNIRV9DUwk0CS8qIHVzZSBjcyAjIDQgZm9yIGRhdGEgY2FjaGUgbWVtb3J5ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9EQ0FDSEVfQ1MJNAkvKiB1c2UgY3MgIyA0IGZvciBkYXRhIGNhY2hlIG1lbW9yeSAgICAqLwogCi0jZGVmaW5lIENGR19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIGluc2lkZSBvZiBTRFJBTQkJCSAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSAgICAgICAqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRSAgICAgIDEyOCAgLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCi0jZGVmaW5lIENGR19HQkxfREFUQV9PRkZTRVQgICAgKENGR19JTklUX1JBTV9FTkQgLSBDRkdfR0JMX0RBVEFfU0laRSkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19HQkxfREFUQV9PRkZTRVQKKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NDAwMDAwMDAgIC8qIGluc2lkZSBvZiBTRFJBTQkJCSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRU5ECTB4MjAwMAkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgICAgKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBTZXJpYWwgUHJlc2VuY2UgRGV0ZWN0IEVFUFJPTSBhZGRyZXNzCmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3Mvd2VwZXAyNTAuaCBiL2luY2x1ZGUvY29uZmlncy93ZXBlcDI1MC5oCmluZGV4IDIwNzJmNmUuLmI3MGE1MzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy93ZXBlcDI1MC5oCisrKyBiL2luY2x1ZGUvY29uZmlncy93ZXBlcDI1MC5oCkBAIC02OSwyMiArNjksMjIgQEAKIC8qCiAgKiBHZW5lcmFsIG9wdGlvbnMgZm9yIHUtYm9vdC4gTW9kaWZ5IHRvIHNhdmUgbWVtb3J5IGZvb3QgcHJpbnQKICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdW5kZWYgc2F2ZXMgbWVtb3J5ICAqLwotI2RlZmluZSBDRkdfUFJPTVBUICAgICAgICAgICAgICAiV0VQPiAiICAgICAgICAgICAgICAgLyogcHJvbXB0IHN0cmluZyAgICAgICAqLwotI2RlZmluZSBDRkdfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgICAgICAgICAgICAgLyogY29uc29sZSBJL08gYnVmZmVyICAqLwotI2RlZmluZSBDRkdfUEJTSVpFIChDRkdfQ0JTSVpFK3NpemVvZihDRkdfUFJPTVBUKSsxNikgLyogcHJpbnQgYnVmZmVyIHNpemUgICAqLwotI2RlZmluZSBDRkdfTUFYQVJHUyAgICAgICAgICAgICAxNiAgICAgICAgICAgICAgICAgICAgLyogbWF4IGNvbW1hbmQgYXJncyAgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUgICAgICAgICAgICBDRkdfQ0JTSVpFICAgICAgICAgICAgLyogYm9vdCBhcmdzIGJ1ZiBzaXplICAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVuZGVmIHNhdmVzIG1lbW9yeSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQgICAgICAgICAgICAgICJXRVA+ICIgICAgICAgICAgICAgICAvKiBwcm9tcHQgc3RyaW5nICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgICAyNTYgICAgICAgICAgICAgICAgICAgLyogY29uc29sZSBJL08gYnVmZmVyICAqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogcHJpbnQgYnVmZmVyIHNpemUgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MgICAgICAgICAgICAgMTYgICAgICAgICAgICAgICAgICAgIC8qIG1heCBjb21tYW5kIGFyZ3MgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRSAgICAgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFICAgICAgICAgICAgLyogYm9vdCBhcmdzIGJ1ZiBzaXplICAqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUICAgICAgIDB4YTA0MDAwMDAgICAgICAgICAgICAvKiBtZW10ZXN0IHRlc3QgYXJlYSAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORCAgICAgICAgIDB4YTA4MDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUICAgICAgIDB4YTA0MDAwMDAgICAgICAgICAgICAvKiBtZW10ZXN0IHRlc3QgYXJlYSAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQgICAgICAgICAweGEwODAwMDAwCiAKLSN1bmRlZiAgQ0ZHX0NMS1NfSU5fSFogICAgICAgICAgICAgICAgICAgICAgIC8qIHVzZSBIWiBmb3IgZnJlcS4gZGlzcGxheSAgICAgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haICAgICAgICAgICAgICAgICAgICAgICAvKiB1c2UgSFogZm9yIGZyZXEuIGRpc3BsYXkgICAgICovCiAKLSNkZWZpbmUgQ0ZHX0haICAgICAgICAgICAgICAgICAgMzY4NjQwMCAgICAgIC8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVEICAgICAgICAgICAgMHgxNDEgICAgICAgIC8qIGNvcmUgY2xvY2sgLSByZWdpc3RlciB2YWx1ZSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWiAgICAgICAgICAgICAgICAgIDM2ODY0MDAgICAgICAvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQgICAgICAgICAgICAweDE0MSAgICAgICAgLyogY29yZSBjbG9jayAtIHJlZ2lzdGVyIHZhbHVlICAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRSAgICAgIHsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAogLyoKICAqIERlZmluaXRpb25zIHJlbGF0ZWQgdG8gcGFzc2luZyBhcmd1bWVudHMgdG8ga2VybmVsLgpAQCAtOTgsOCArOTgsOCBAQAogLyoKICAqIE1hbGxvYyBwb29sIG5lZWQgdG8gaG9zdCBlbnYgKyAxMjggS2IgcmVzZXJ2ZSBmb3Igb3RoZXIgYWxsb2NhdGlvbnMuCiAgKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JICAoQ09ORklHX0VOVl9TSVpFICsgKDEyODw8MTApICkKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JICAoQ09ORklHX0VOVl9TSVpFICsgKDEyODw8MTApICkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KIAogI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFICAgICAgICAoMTIwPDwxMCkgICAgICAvKiBzdGFjayBzaXplICovCiAKQEAgLTEyMSw4ICsxMjEsOCBAQAogI2RlZmluZSBXRVBfU0RSQU1fNCAgICAgICAgICAgIDB4YWMwMDAwMDAgICAgICAgIC8qIFNEUkFNIGJhbmsgIzQgICAgICAgICAgICovCiAjZGVmaW5lIFdFUF9TRFJBTV80X1NJWkUgICAgICAgMHgwMDAwMDAwMCAgICAgICAgLyogMCBNQiAgICAgICAgICAgICAgICAgICAgKi8KIAotI2RlZmluZSBDRkdfRFJBTV9CQVNFICAgICAgICAgICAweGEwMDAwMDAwCi0jZGVmaW5lIENGR19EUkFNX1NJWkUgICAgICAgICAgIDB4MDIwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UgICAgICAgICAgIDB4YTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX1NJWkUgICAgICAgICAgIDB4MDIwMDAwMDAKIAogLyogVW5jb21tZW50IHVzZWQgU0RSQU0gY2hpcCAqLwogI2RlZmluZSBXRVBfU0RSQU1fSzRTMjgxNjMzCkBAIC0xMzIsOCArMTMyLDggQEAKIC8qCiAgKiBDb25maWd1cmF0aW9uIGZvciBGTEFTSCBtZW1vcnkKICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEJLyogRkxBU0ggYmFua3MgY291bnQgKG5vdCBjaGlwIGNvdW50KSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkxMjgJLyogbnVtYmVyIG9mIHNlY3RvciBpbiBGTEFTSCBiYW5rICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEJLyogRkxBU0ggYmFua3MgY291bnQgKG5vdCBjaGlwIGNvdW50KSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4CS8qIG51bWJlciBvZiBzZWN0b3IgaW4gRkxBU0ggYmFuayAgICAqLwogI2RlZmluZSBXRVBfRkxBU0hfQlVTX1dJRFRICTQJLyogd2UgdXNlIDMyIGJpdCBGTEFTSCBtZW1vcnkuLi4gICAgICovCiAjZGVmaW5lIFdFUF9GTEFTSF9JTlRFUkxFQVZFCTIJLyogLi4uIG1hZGUgb2YgMiBjaGlwcyAqLwogI2RlZmluZSBXRVBfRkxBU0hfQkFOS19TSVpFICAweDIwMDAwMDAgIC8qIHNpemUgb2Ygb25lIGZsYXNoIGJhbmsqLwpAQCAtMTQ2LDEyICsxNDYsMTIgQEAKICAgIGlzIG5vdCBzbyBjbGVhciB0byBtZS4gSW4gb3RoZXIgd29yZHMgd2UgY2FuIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbnMKICAgIHRvIHVzZXIsIGJ1dCB0aGlzIGV4cGVjdHMgbW9yZSBjb21wbGV4IGZsYXNoIGhhbmRsaW5nIHdlIGRvIG5vdCBwcm92aWRlCiAgICBub3cuKi8KLSN1bmRlZiAgQ0ZHX0ZMQVNIX0NGSQorI3VuZGVmICBDT05GSUdfU1lTX0ZMQVNIX0NGSQogCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUICAgICgyKkNGR19IWikgICAgLyogdGltZW91dCBmb3IgRXJhc2Ugb3BlcmF0aW9uICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUICAgICgyKkNGR19IWikgICAgLyogdGltZW91dCBmb3IgV3JpdGUgb3BlcmF0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVCAgICAoMipDT05GSUdfU1lTX0haKSAgICAvKiB0aW1lb3V0IGZvciBFcmFzZSBvcGVyYXRpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUICAgICgyKkNPTkZJR19TWVNfSFopICAgIC8qIHRpbWVvdXQgZm9yIFdyaXRlIG9wZXJhdGlvbiAqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFICAgICAgICAgIFdFUF9GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRSAgICAgICAgICBXRVBfRkxBU0hfQkFTRQogCiAvKgogICogVGhpcyBpcyBzZXR0aW5nIGZvciBKRkZTMiBzdXBwb3J0IGluIHUtYm9vdC4KQEAgLTE2MCw5ICsxNjAsOSBAQAogICogZm9vdHByaW50LgogICogTk9URTogRW5hYmxlIENPTkZJR19DTURfSkZGUzIgZm9yIEpGRlMyIHN1cHBvcnQuCiAgKi8KLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX0JBTksJCTAKLSNkZWZpbmUgQ0ZHX0pGRlMyX0ZJUlNUX1NFQ1RPUgkJNQotI2RlZmluZSBDRkdfSkZGUzJfTlVNX0JBTktTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfSkZGUzJfRklSU1RfQkFOSwkJMAorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX0ZJUlNUX1NFQ1RPUgkJNQorI2RlZmluZSBDT05GSUdfU1lTX0pGRlMyX05VTV9CQU5LUwkJMQogCiAvKgogICogRW52aXJvbm1lbnQgc2V0dXAuIERlZmluaXRpb25zIG9mIG1vbml0b3IgbG9jYXRpb24gYW5kIHNpemUgd2l0aApAQCAtMTc2LDggKzE3Niw4IEBACiAgKiBlbnYuIGhhcyBubyBzZW5zZSB0byB1cy4KICAqLwogCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJUEhZU19GTEFTSF8xCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJMHgyMDAwMAkJLyogMTI4a2IgKCAxIGZsYXNoIHNlY3RvciApICAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfQkFTRQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0xFTgkJMHgyMDAwMAkJLyogMTI4a2IgKCAxIGZsYXNoIHNlY3RvciApICAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkweDIwMDAwCSAgICAgICAgLyogYWJzb2x1dGUgYWRkcmVzcyBmb3Igbm93ICAqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4MjAwMApAQCAtMTg5LDYgKzE4OSw2IEBACiAgKiBvbmUgbWF5IGV4cGVjdC4gRm9yIGluc3RhbmNlIGxvYWRiIGNvbW1hbmQgZG8gbm90IGNhcmVzIDotKQogICogU28gYWR2aWNlIGlzIC0gZG8gbm90IHJlbGF5IG9uIHRoaXMuLi4KICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSICAgICAgICAweDQwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSICAgICAgICAweDQwMDAwCiAKICNlbmRpZiAgLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3hhZW5pYXguaCBiL2luY2x1ZGUvY29uZmlncy94YWVuaWF4LmgKaW5kZXggZWM3MzIyNC4uMzI0ZjAzZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3hhZW5pYXguaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MveGFlbmlheC5oCkBAIC02Miw3ICs2Miw3IEBACiAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKIAotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfSAvKiB2YWxpZCBiYXVkcmF0ZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9IC8qIHZhbGlkIGJhdWRyYXRlcyAqLwogCiAKIC8qCkBAIC0xMDksMzcgKzEwOSwzNyBAQAogICogU2l6ZSBvZiBtYWxsb2MoKSBwb29sOyB0aGlzIGxpdmVzIGJlbG93IHRoZSB1cHBlcm1vc3QgMTI4IEtpQiB3aGljaCBhcmUKICAqIHVzZWQgZm9yIHRoZSBSQU0gY29weSBvZiB0aGUgdWJvb3QgY29kZQogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCSAgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCSAgICAoQ09ORklHX0VOVl9TSVpFICsgMTI4KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCi0jZGVmaW5lIENGR19IVVNIX1BBUlNFUgkJMQorI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfSFVTSF9QQVJTRVIJCTEKIAotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFQJCSJ1LWJvb3QkICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2lmZGVmIENPTkZJR19TWVNfSFVTSF9QQVJTRVIKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJ1LWJvb3QkICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2Vsc2UKLSNkZWZpbmUgQ0ZHX1BST01QVAkJInUtYm9vdD0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJInUtYm9vdD0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwogI2VuZGlmCi0jZGVmaW5lIENGR19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX1BCU0laRSAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCQlDRkdfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KLSNkZWZpbmUgQ0ZHX0RFVklDRV9OVUxMREVWCTEKKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCTI1NgkJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQlNJWkUgKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCisjZGVmaW5lIENPTkZJR19TWVNfQkFSR1NJWkUJCUNPTkZJR19TWVNfQ0JTSVpFCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19ERVZJQ0VfTlVMTERFVgkxCiAKLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJMHhhMDQwMDAwMAkvKiBtZW10ZXN0IHdvcmtzIG9uCSovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfRU5ECQkweGEwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkqLwogCi0jdW5kZWYJQ0ZHX0NMS1NfSU5fSFoJCQkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHhhMTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURfQUREUgkJMHhhMTAwMDAwMAkvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KLSNkZWZpbmUgQ0ZHX0NQVVNQRUVECQkweDE0MQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gNDAwLzIwMC8xMDAgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQ1BVU1BFRUQJCTB4MTQxCQkvKiBzZXQgY29yZSBjbG9jayB0byA0MDAvMjAwLzEwMCBNSHogKi8KIAogLyoKICAqIFBoeXNpY2FsIE1lbW9yeSBNYXAKQEAgLTE2MCwyMCArMTYwLDIwIEBACiAjZGVmaW5lIFBIWVNfRkxBU0hfQkFOS19TSVpFCTB4MDIwMDAwMDAgLyogMzIgTUIgQmFua3MgKi8KICNkZWZpbmUgUEhZU19GTEFTSF9TRUNUX1NJWkUJMHgwMDA0MDAwMCAvKiAyNTYgS0Igc2VjdG9ycyAoeDIpICovCiAKLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJMHhhMDAwMDAwMAotI2RlZmluZSBDRkdfRFJBTV9TSVpFCQkweDA0MDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkweDA0MDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJCVBIWVNfRkxBU0hfMQogCiAvKgogICogRkxBU0ggYW5kIGVudmlyb25tZW50IG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMSAgICAvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTEyOCAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEgICAgLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MJCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMTI4ICAvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCSgyNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCSgyNSpDRkdfSFopIC8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMjUqQ09ORklHX1NZU19IWikgLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCSgyNSpDT05GSUdfU1lTX0haKSAvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAqLwogCiAvKiBGSVhNRSAqLwogI2RlZmluZSBDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEKQEAgLTIzNSw5ICsyMzUsOSBAQAogICogR1A4MiA9PSBOU1NQU0ZSTSAgaXMgMQogICogR1A4MyA9PSBOU1NQVFhEICAgaXMgMQogICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJCTB4ODMyMEU0MjAKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTAkJMHgwMEZGQUE4MgotI2RlZmluZSBDRkdfR1BTUjJfVkFMCQkweDAwMERDMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMCQkweDgzMjBFNDIwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMCQkweDAwRkZBQTgyCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMCQkweDAwMERDMDAwCiAKIC8qCiAgKiBHUDAzID09IExBTlJlc2V0ICBpcyAwCkBAIC0yNTAsOSArMjUwLDkgQEAKICAqIEdQMzAgPT0gU0RBVEFfT1VUIGlzIDAKICAqIEdQODEgPT0gTlNTUENMSyAgIGlzIDAKICAqLwotI2RlZmluZSBDRkdfR1BDUjBfVkFMCQkweDQwQzMxODQ4Ci0jZGVmaW5lIENGR19HUENSMV9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTAkJMHgwMDAyMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IwX1ZBTAkJMHg0MEMzMTg0OAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IxX1ZBTAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTAkJMHgwMDAyMDAwMAogCiAvKgogICogR1AwMCA9PSBDUFVXYWtlVXBVU0IgaXMgaW5wdXQKQEAgLTM0MCw5ICszNDAsOSBAQAogICogR1A4MyA9PSBOU1NQVFhEICAgaXMgb3V0cHV0CiAgKiBHUDg0ID09IE5TU1BSWEQgICBpcyBpbnB1dAogICovCi0jZGVmaW5lIENGR19HUERSMF9WQUwJCTB4RDNFM0ZDNjgKLSNkZWZpbmUgQ0ZHX0dQRFIxX1ZBTAkJMHhGQ0ZGQUI4MwotI2RlZmluZSBDRkdfR1BEUjJfVkFMCQkweDAwMEZGRkZGCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjBfVkFMCQkweEQzRTNGQzY4CisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMCQkweEZDRkZBQjgzCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjJfVkFMCQkweDAwMEZGRkZGCiAKIC8qCiAgKiBHUDAxID09IEdQIHJlc2V0IGlzIEFGMDEKQEAgLTQxMywxMiArNDEzLDEyIEBACiAgKiBHUDgzID09IE5TU1BUWEQgIGlzIEFGMDEKICAqIEdQODQgPT0gTlNTUFJYRCAgaXMgQUYxMAogICovCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTAkJMHg4MDAwMDAwNAotI2RlZmluZSBDRkdfR0FGUjBfVV9WQUwJCTB4NTk1QTgwMUEKLSNkZWZpbmUgQ0ZHX0dBRlIxX0xfVkFMCQkweDY5OUE5NTU5Ci0jZGVmaW5lIENGR19HQUZSMV9VX1ZBTAkJMHhBQUE1QUFBQQotI2RlZmluZSBDRkdfR0FGUjJfTF9WQUwJCTB4QUFBQUFBQUEKLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMCQkweDAwMDAwMjU2CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjBfTF9WQUwJCTB4ODAwMDAwMDQKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTAkJMHg1OTVBODAxQQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIxX0xfVkFMCQkweDY5OUE5NTU5CisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwJCTB4QUFBNUFBQUEKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTAkJMHhBQUFBQUFBQQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX1VfVkFMCQkweDAwMDAwMjU2CiAKIC8qCiAgKiBjbG9jayBzZXR0aW5ncwpAQCAtNDI5LDEwICs0MjksMTAgQEAKICAqIEJGUyA9IDAKICAqIFNTUyA9IDAKICAqLwotI2RlZmluZSBDRkdfUFNTUl9WQUwJCTB4MDAwMDAwMzAKKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTAkJMHgwMDAwMDAzMAogCi0jZGVmaW5lIENGR19DS0VOX1ZBTCAgICAgICAgICAgIDB4MDAwMDAwODAgIC8qICAqLwotI2RlZmluZSBDRkdfSUNNUl9WQUwgICAgICAgICAgICAweDAwMDAwMDAwICAvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0tFTl9WQUwgICAgICAgICAgICAweDAwMDAwMDgwICAvKiAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ01SX1ZBTCAgICAgICAgICAgIDB4MDAwMDAwMDAgIC8qIE5vIGludGVycnVwdHMgZW5hYmxlZCAgICAgICAgKi8KIAogCiAvKgpAQCAtNDU0LDcgKzQ1NCw3IEBACiAgKiBbMDNdICAgIDAgICAgLSAzMiBCaXQgYnVzIHdpZHRoCiAgKiBbMDI6MDBdIDAxMCAgLSBidXJzdCBPRiA0IFJPTSBvciBGTEFTSAogKi8KLSNkZWZpbmUgQ0ZHX01TQzBfVkFMCQkweDAwMDAyM0QyCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMF9WQUwJCTB4MDAwMDIzRDIKIAogLyogVGhpcyBpcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgbkNTMi8zIC0+IFVTQiBjb250cm9sbGVyLCBMQU4KICAqIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzM6IExBTgpAQCAtNDcyLDcgKzQ3Miw3IEBACiAgKiBbMDNdICAgIDEgICAgLSAxNiBCaXQgYnVzIHdpZHRoCiAgKiBbMDI6MDBdIDEwMCAgLSB2YXJpYWJsZSBsYXRlbmN5IEkvTwogICovCi0jZGVmaW5lIENGR19NU0MxX1ZBTAkJMHgxMjI0QTI2QworI2RlZmluZSBDT05GSUdfU1lTX01TQzFfVkFMCQkweDEyMjRBMjZDCiAKIC8qIFRoaXMgaXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzQvNSAtPiBMQU4KICAqIGNvbmZpZ3VyYXRpb24gZm9yIG5DUzU6CkBAIC00OTAsNyArNDkwLDcgQEAKICAqIFswM10gICAgMCAgICAtIDMyIEJpdCBidXMgd2lkdGgKICAqIFswMjowMF0gMTAwICAtIHZhcmlhYmxlIGxhdGVuY3kgSS9PCiAgKi8KLSNkZWZpbmUgQ0ZHX01TQzJfVkFMCQkweDAwMDAxMjI0CisjZGVmaW5lIENPTkZJR19TWVNfTVNDMl9WQUwJCTB4MDAwMDEyMjQKIAogLyogTURDTkZHOiBTRFJBTSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyCiAgKgpAQCAtNTE4LDcgKzUxOCw3IEBACiAgKiBbMDBdICAgICAgMSAgIC0gZW5hYmxlICBTRFJBTSBwYXJ0aXRpb24gMAogICovCiAvKiB1c2UgdGhlIGNvbmZpZ3VyYXRpb24gYWJvdmUgYnV0IGRpc2FibGUgcGFydGl0aW9uIDAgKi8KLSNkZWZpbmUgQ0ZHX01EQ05GR19WQUwJCTB4MDAwMDBBQzkKKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMCQkweDAwMDAwQUM5CiAKIC8qIE1EUkVGUjogU0RSQU0gUmVmcmVzaCBDb250cm9sIFJlZ2lzdGVyCiAgKgpAQCAtNTM5LDcgKzUzOSw3IEBACiAgKiBbMTJdICAgIDAgICAgIC0gRTBQSU46IGRpc2FibGUgU0RDS0UwCiAgKiBbMTE6MDBdIDAwMDAwMDAxMTAwMCAtICg2NG1zLzgxOTIpKk1lbUNsa0ZyZXEvMzIgPSAyNAogICovCi0jZGVmaW5lIENGR19NRFJFRlJfVkFMCQkweDAwMTM4MDE4IC8qIG1oOiB3YXMgMHgwMDExODAxOCAqLworI2RlZmluZSBDT05GSUdfU1lTX01EUkVGUl9WQUwJCTB4MDAxMzgwMTggLyogbWg6IHdhcyAweDAwMTE4MDE4ICovCiAKIC8qIE1ETVJTOiBNb2RlIFJlZ2lzdGVyIFNldCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyCiAgKgpAQCAtNTU0LDE4ICs1NTQsMTggQEAKICAqIFswM10gICAgICAwICAgICAgIC0gTURBREQwOiBTRFJBTTAvMSBidXJzdCBUeXBlLiBGaXhlZCB0byBzZXF1ZW50aWFsLgogICogWzAyOjAwXSAgIDAxMCAgICAgLSBNREJMMDogIFNEUkFNMC8xIGJ1cnN0IExlbmd0aC4gRml4ZWQgdG8gNC4KICAqLwotI2RlZmluZSBDRkdfTURNUlNfVkFMCQkweDAwMzIwMDMyCisjZGVmaW5lIENPTkZJR19TWVNfTURNUlNfVkFMCQkweDAwMzIwMDMyCiAKIC8qCiAgKiBQQ01DSUEgYW5kIENGIEludGVyZmFjZXMKICAqLwotI2RlZmluZSBDRkdfTUVDUl9WQUwJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX01DTUVNMF9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DTUVNMV9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMV9WQUwJCTB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DSU8wX1ZBTAkJMHgwMDAwNDcxNQotI2RlZmluZSBDRkdfTUNJTzFfVkFMCQkweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUVDUl9WQUwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19NQ01FTTBfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTAkJMHgwMDAxMDUwNAorI2RlZmluZSBDT05GSUdfU1lTX01DQVRUMF9WQUwJCTB4MDAwMTA1MDQKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0FUVDFfVkFMCQkweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMCQkweDAwMDA0NzE1CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzFfVkFMCQkweDAwMDA0NzE1CiAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy94aWxpbngtcHBjNDQwLWdlbmVyaWMuaCBiL2luY2x1ZGUvY29uZmlncy94aWxpbngtcHBjNDQwLWdlbmVyaWMuaAppbmRleCBlOTY4NjUxLi5mYzBmOTMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MveGlsaW54LXBwYzQ0MC1nZW5lcmljLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3hpbGlueC1wcGM0NDAtZ2VuZXJpYy5oCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiLi4vYm9hcmQveGlsaW54L3BwYzQ0MC1nZW5lcmljL3hwYXJhbWV0ZXJzLmgiCiAKIC8qTWVtIE1hcCovCi0jZGVmaW5lIENGR19TRFJBTV9TSVpFX01CCTI1NgorI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX1NJWkVfTUIJMjU2CiAKIC8qRW52Ki8KICNkZWZpbmUJQ09ORklHX0VOVl9JU19JTl9GTEFTSAkxCkBAIC0zNCwxMiArMzQsMTIgQEAKICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoWFBBUl9GTEFTSF9NRU0wX0JBU0VBRERSK0NPTkZJR19FTlZfT0ZGU0VUKQogCiAvKk1pc2MqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiYm9hcmQ6LyMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiYm9hcmQ6LyMgIgkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICAgICovCiAjZGVmaW5lIENPTkZJR19QUkVCT09UCQkiZWNobyBVLUJvb3QgaXMgdXAgYW5kIHJ1bm5pbmluZzsiCiAKIC8qRmxhc2gqLwotI2RlZmluZQlDRkdfRkxBU0hfU0laRQkJKDMyKjEwMjQqMTAyNCkKLSNkZWZpbmUJQ0ZHX01BWF9GTEFTSF9TRUNUCTI1OQorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1NJWkUJCSgzMioxMDI0KjEwMjQpCisjZGVmaW5lCUNPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1QJMjU5CiAjZGVmaW5lIE1URElEU19ERUZBVUxUCQkibm9yMD1tbDUwNy1mbGFzaCIKICNkZWZpbmUgTVREUEFSVFNfREVGQVVMVAkibXRkcGFydHM9bWw1MDctZmxhc2g6LSh1c2VyKSIKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3hpbGlueC1wcGM0NDAuaCBiL2luY2x1ZGUvY29uZmlncy94aWxpbngtcHBjNDQwLmgKaW5kZXggNmM3YWJiMi4uYWM3ODQyMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3hpbGlueC1wcGM0NDAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MveGlsaW54LXBwYzQ0MC5oCkBAIC0yNywxNSArMjcsMTUgQEAKICNkZWZpbmUgQ09ORklHXzR4eAkJMQogCiAvKk1lbSBNYXAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFTRQkJMHgwCi0jZGVmaW5lIENGR19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCi0jZGVmaW5lIENGR19NT05JVE9SX0xFTgkJKDE5MiAqIDEwMjQpCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoQ09ORklHX0VOVl9TSVpFICsgMTI4ICogMTAyNCkKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAKKyNkZWZpbmUgQ09ORklHX1NZU19NT05JVE9SX0JBU0UJVEVYVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9MRU4JCSgxOTIgKiAxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX01BTExPQ19MRU4JCShDT05GSUdfRU5WX1NJWkUgKyAxMjggKiAxMDI0KQogCiAvKlVhcnQqLwogI2RlZmluZSBDT05GSUdfWElMSU5YX1VBUlRMSVRFCiAjZGVmaW5lIENPTkZJR19CQVVEUkFURQkJWFBBUl9VQVJUTElURV8wX0JBVURSQVRFCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IFhQQVJfVUFSVExJVEVfMF9CQVVEUkFURSB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyBYUEFSX1VBUlRMSVRFXzBfQkFVRFJBVEUgfQogI2RlZmluZSBDT05GSUdfU0VSSUFMX0JBU0UJWFBBUl9VQVJUTElURV8wX0JBU0VBRERSCiAKIC8qQ21kKi8KQEAgLTU5LDQ4ICs1OSw0OCBAQAogCiAvKk1pc2MqLwogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzICAgICAqLwotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeSAgICAgICAgICovCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX0tHREIpCi0jZGVmaW5lIENGR19DQlNJWkUJCTEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAgICAgICovCiAjZWxzZQotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICAgICAgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFCQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KQotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCUNGR19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICAgICAgICovCi0jZGVmaW5lIENGR19NRU1URVNUX0VORAkJMHgwMEMwMDAwMAkvKiA0IC4uLiAxMiBNQiBpbiBEUkFNICAgICAgICAqLwotI2RlZmluZSBDRkdfTE9BRF9BRERSCQkweDAwNDAwMDAwCS8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICAgICAgICovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogRXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJMTAwMAkvKiBkZWNyZW1lbnRlciBmcmVxOiAxIG1zIHRpY2tzICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkoQ09ORklHX1NZU19DQlNJWkUgKyBzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpICsgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDAwNDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24gICAgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MDBDMDAwMDAJLyogNCAuLi4gMTIgTUIgaW4gRFJBTSAgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4MDA0MDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgICAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogRXh0ZW5kZWQgYm9hcmRfaW50byAoYmRfdCkgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCTEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcyAqLwogI2RlZmluZSBDT05GSUdfQ01ETElORV9FRElUSU5HCQkvKiBhZGQgY29tbWFuZCBsaW5lIGhpc3RvcnkgICAgICovCiAjZGVmaW5lIENPTkZJR19BVVRPX0NPTVBMRVRFCQkvKiBhZGQgYXV0b2NvbXBsZXRpb24gc3VwcG9ydCAgICovCiAjZGVmaW5lIENPTkZJR19MT09QVwkJCS8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KICNkZWZpbmUgQ09ORklHX01YX0NZQ0xJQwkJLyogZW5hYmxlIG1kYy9td2MgY29tbWFuZHMgICAgICAqLwogI2RlZmluZSBDT05GSUdfWkVST19CT09UREVMQVlfQ0hFQ0sJLyogY2hlY2sgZm9yIGtleXByZXNzIG9uIGJvb3RkZWxheT09MCAqLwogI2RlZmluZSBDT05GSUdfVkVSU0lPTl9WQVJJQUJMRQkJLyogaW5jbHVkZSB2ZXJzaW9uIGVudiB2YXJpYWJsZSAqLwotI2RlZmluZSBDRkdfQ09OU09MRV9JTkZPX1FVSUVUCQkvKiBkb24ndCBwcmludCBjb25zb2xlIEAgc3RhcnR1cCAqLwotI2RlZmluZSBDRkdfSFVTSF9QQVJTRVIJCQkvKiBVc2UgdGhlIEhVU0ggcGFyc2VyICAgICAgICAgICovCi0jZGVmaW5lCUNGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSU5GT19RVUlFVAkJLyogZG9uJ3QgcHJpbnQgY29uc29sZSBAIHN0YXJ0dXAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCS8qIFVzZSB0aGUgSFVTSCBwYXJzZXIgICAgICAgICAgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJIj4gIgogI2RlZmluZSBDT05GSUdfTE9BRFNfRUNITwkJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkICAqLwotI2RlZmluZSBDRkdfTE9BRFNfQkFVRF9DSEFOR0UJCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZSAgICAgICAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApLyogSW5pdGlhbCBNZW1vcnkgbWFwIGZvciBMaW51eCAqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCQkvKiBhbGxvdyBiYXVkcmF0ZSBjaGFuZ2UgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfQk9PVE1BUFNaCQkoOCA8PCAyMCkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qU3RhY2sqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUgkweDgwMDAwMAkvKiBJbml0aWFsIFJBTSBhZGRyZXNzICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJMHgyMDAwCQkvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTSAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICAgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQotI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVAorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFIJMHg4MDAwMDAJLyogSW5pdGlhbCBSQU0gYWRkcmVzcyAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICAqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAvKlNwZWVkKi8KICNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQlYUEFSX0NPUkVfQ0xPQ0tfRlJFUV9IWgogCiAvKkZsYXNoKi8KLSNkZWZpbmUJQ0ZHX0ZMQVNIX0JBU0UJCVhQQVJfRkxBU0hfTUVNMF9CQVNFQUREUgotI2RlZmluZQlDRkdfRkxBU0hfQ0ZJCQkxCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQkFTRQkJWFBBUl9GTEFTSF9NRU0wX0JBU0VBRERSCisjZGVmaW5lCUNPTkZJR19TWVNfRkxBU0hfQ0ZJCQkxCiAjZGVmaW5lCUNPTkZJR19GTEFTSF9DRklfRFJJVkVSCTEKLSNkZWZpbmUJQ0ZHX0ZMQVNIX0VNUFRZX0lORk8JMQotI2RlZmluZQlDRkdfTUFYX0ZMQVNIX0JBTktTCTEKLSNkZWZpbmUJQ0ZHX0ZMQVNIX1BST1RFQ1RJT04KKyNkZWZpbmUJQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCTEKKyNkZWZpbmUJQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQorI2RlZmluZQlDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04KIAogI2VuZGlmCQkJCQkJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb25maWdzL3htMjUwLmggYi9pbmNsdWRlL2NvbmZpZ3MveG0yNTAuaAppbmRleCBhYWMwM2ExLi4xNmFmODQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MveG0yNTAuaAorKysgYi9pbmNsdWRlL2NvbmZpZ3MveG0yNTAuaApAQCAtNDEsOCArNDEsOCBAQAogICogdXNlZCBmb3IgdGhlIFJBTSBjb3B5IG9mIHRoZSB1Ym9vdCBjb2RlCiAgKgogICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkoMjU2KjEwMjQpCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTEyOAkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMjU2KjEwMjQpCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qCiAgKiBIYXJkd2FyZSBkcml2ZXJzCkBAIC01OCwxOCArNTgsMTggQEAKICAqIEkyQyBidXMKICAqLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCQkxCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCQk1MDAwMAotI2RlZmluZSBDRkdfSTJDX1NMQVZFCQkJMHhmZQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJCTUwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkJMHhmZQogCiAjZGVmaW5lIENPTkZJR19SVENfUENGODU2MwkJMQotI2RlZmluZSBDRkdfSTJDX1JUQ19BRERSCQkweDUxCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1JUQ19BRERSCQkweDUxCiAKLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUgkJMHg1OAkvKiBBMCA9IDAgKGhhcmR3aXJlZCkJCSovCi0jZGVmaW5lIENGR19FRVBST01fUEFHRV9XUklURV9CSVRTCTQJLyogNCBiaXRzID0gMTYgb2N0ZXRzCQkqLwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMJMTAJLyogYmV0d2VlbiBzdG9wIGFuZCBzdGFydAkqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQkvKiBsZW5ndGggb2YgYWRkcmVzcwkJKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9TSVpFCQkJMjA0OAkvKiBzaXplIGluIGJ5dGVzCQkqLwotI3VuZGVmCUNGR19JMkNfSU5JVF9CT0FSRAkJCS8qIGJvYXJkIGhhcyBubyBvd24gaW5pdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkJMHg1OAkvKiBBMCA9IDAgKGhhcmR3aXJlZCkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwk0CS8qIDQgYml0cyA9IDE2IG9jdGV0cwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBiZXR3ZWVuIHN0b3AgYW5kIHN0YXJ0CSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkJMQkvKiBsZW5ndGggb2YgYWRkcmVzcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fU0laRQkJCTIwNDgJLyogc2l6ZSBpbiBieXRlcwkJKi8KKyN1bmRlZglDT05GSUdfU1lTX0kyQ19JTklUX0JPQVJECQkJLyogYm9hcmQgaGFzIG5vIG93biBpbml0CSovCiAKIC8qCiAgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgpAQCAtMTA3LDI2ICsxMDcsMjYgQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0xPTkdIRUxQCQkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkJMjU2CQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX1BCU0laRSAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCQkxNgkJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkJQ09ORklHX1NZU19DQlNJWkUJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZQkqLwogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweGEwODAwMDAwCS8qIDQgLi4uIDggTUIgaW4gRFJBTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX1NUQVJUCTB4YTA0MDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHhhMDgwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JCSovCiAKLSN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworI3VuZGVmCUNPTkZJR19TWVNfQ0xLU19JTl9IWgkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwogCi0jZGVmaW5lIENGR19MT0FEX0FERFIJCTB4YTMwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJCTB4YTMwMDAwMDAJLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KIAotI2RlZmluZSBDRkdfSFoJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCi0jZGVmaW5lIENGR19DUFVTUEVFRAkJMHgxNjEJCS8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC80MDAvMTAwIE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkweDE2MQkJLyogc2V0IGNvcmUgY2xvY2sgdG8gNDAwLzQwMC8xMDAgTUh6ICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwogCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDE5MjAwLCAzODQwMCwgNTc2MDAsIDExNTIwMCB9CisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQogCiAvKgogICogRGVmaW5pdGlvbnMgcmVsYXRlZCB0byBwYXNzaW5nIGFyZ3VtZW50cyB0byBrZXJuZWwuCkBAIC0xNjYsMjkgKzE2NiwyOSBAQAogI2RlZmluZSBQSFlTX0ZMQVNIX0JBTktfU0laRQkweDAxMDAwMDAwIC8qIDE2IE1CIEJhbmtzCSovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCTB4MDAwNDAwMDAgLyogMjU2IEtCIHNlY3RvcnMgKHgyKSAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJMHgwNDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fQkFTRQkJMHhhMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJMHgwNDAwMDAwMAogCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9CQVNFCQlQSFlTX0ZMQVNIXzEKIAogLyoKICAqIEZMQVNIIGFuZCBlbnZpcm9ubWVudCBvcmdhbml6YXRpb24KICAqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX0JBTktTCTEgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJMTI4ICAgLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTCTEgICAgIC8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTEyOCAgIC8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLwogCiAvKiB0aW1lb3V0IHZhbHVlcyBhcmUgaW4gdGlja3MgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJKDIqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkoMipDRkdfSFopCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlCSovCi0jZGVmaW5lIENGR19GTEFTSF9MT0NLX1RPVVQJKDIqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBTZXQgTG9jayBCaXQgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VOTE9DS19UT1VUCSgyKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzICovCi0jZGVmaW5lIENGR19GTEFTSF9QUk9URUNUSU9OCQkJLyogIlJlYWwiIChoYXJkd2FyZSkgc2VjdG9ycyBwcm90ZWN0aW9uICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfRVJBU0VfVE9VVAkoMipDT05GSUdfU1lTX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1dSSVRFX1RPVVQJKDIqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9MT0NLX1RPVVQJKDIqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggU2V0IExvY2sgQml0ICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfVU5MT0NLX1RPVVQJKDIqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggQ2xlYXIgTG9jayBCaXRzICovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTgkJCS8qICJSZWFsIiAoaGFyZHdhcmUpIHNlY3RvcnMgcHJvdGVjdGlvbiAqLwogCiAjZGVmaW5lIENPTkZJR19FTlZfSVNfSU5fRkxBU0gJMQogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCShQSFlTX0ZMQVNIXzEgKyAweDQwMDAwKQkvKiBBZGRyIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX1NJWkUJCTB4NDAwMAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDQwMDAwCQkJCS8qIFNpemUgb2YgdGhlIEVudmlyb25tZW50IFNlY3RvcgkqLwotI2RlZmluZSBDRkdfTU9OSVRPUl9MRU4JCTB4MjAwMDAJCQkJLyogMTI4IEtpQiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkweDIwMDAwCQkJCS8qIDEyOCBLaUIgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTI4NywzOCArMjg3LDM4IEBACiAgKgogICovCiAvKiBQaW4gZGlyZWN0aW9uIGNvbnRyb2wgKi8KLSNkZWZpbmUgQ0ZHX0dQRFIwX1ZBTAkgICAgMHhkMzgwODAwMAotI2RlZmluZSBDRkdfR1BEUjFfVkFMCSAgICAweGZjZmZhYjgzCi0jZGVmaW5lIENGR19HUERSMl9WQUwJICAgIDB4MDAwMWZmZmYKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMF9WQUwJICAgIDB4ZDM4MDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMV9WQUwJICAgIDB4ZmNmZmFiODMKKyNkZWZpbmUgQ09ORklHX1NZU19HUERSMl9WQUwJICAgIDB4MDAwMWZmZmYKIC8qIFNldCBhbmQgQ2xlYXIgcmVnaXN0ZXJzICovCi0jZGVmaW5lIENGR19HUFNSMF9WQUwJICAgIDB4MDAwMDgwMDAKLSNkZWZpbmUgQ0ZHX0dQU1IxX1ZBTAkgICAgMHgwMGZmMDAwMgotI2RlZmluZSBDRkdfR1BTUjJfVkFMCSAgICAweDAwMDFjMDAwCi0jZGVmaW5lIENGR19HUENSMF9WQUwJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IxX1ZBTAkgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1BDUjJfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjBfVkFMCSAgICAweDAwMDA4MDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjFfVkFMCSAgICAweDAwZmYwMDAyCisjZGVmaW5lIENPTkZJR19TWVNfR1BTUjJfVkFMCSAgICAweDAwMDFjMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjBfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMCSAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjJfVkFMCSAgICAweDAwMDAwMDAwCiAvKiBFZGdlIGRldGVjdCByZWdpc3RlcnMgKHRoZXNlIGFyZSBzZXQgYnkgdGhlIGtlcm5lbCkgKi8KLSNkZWZpbmUgQ0ZHX0dSRVIwX1ZBTAkgICAgMHgwMDAwMjE4MAotI2RlZmluZSBDRkdfR1JFUjFfVkFMCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkVSMl9WQUwJICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIwX1ZBTAkgICAgMHgwMDAwNDNlMAotI2RlZmluZSBDRkdfR0ZFUjFfVkFMCSAgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HRkVSMl9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMF9WQUwJICAgIDB4MDAwMDIxODAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMV9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMl9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMF9WQUwJICAgIDB4MDAwMDQzZTAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMV9WQUwJICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMl9WQUwJICAgIDB4MDAwMDAwMDAKIC8qIEFsdGVybmF0ZSBmdW5jdGlvbiByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQ0ZHX0dBRlIwX0xfVkFMCSAgICAweDgwMDAwMDA0Ci0jZGVmaW5lIENGR19HQUZSMF9VX1ZBTAkgICAgMHg1OTVhODAxMAotI2RlZmluZSBDRkdfR0FGUjFfTF9WQUwJICAgIDB4Njk5YTk1NTkKLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMCSAgICAweGFhYTVhYWFhCi0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTAkgICAgMHhhYWFhYWFhYQotI2RlZmluZSBDRkdfR0FGUjJfVV9WQUwJICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9MX1ZBTAkgICAgMHg4MDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX1VfVkFMCSAgICAweDU5NWE4MDEwCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfTF9WQUwJICAgIDB4Njk5YTk1NTkKKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMV9VX1ZBTAkgICAgMHhhYWE1YWFhYQorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIyX0xfVkFMCSAgICAweGFhYWFhYWFhCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjJfVV9WQUwJICAgIDB4MDAwMDAwMDIKIAogLyoKICAqIENsb2NrcywgcG93ZXIgY29udHJvbCBhbmQgaW50ZXJydXB0cwogICovCi0jZGVmaW5lIENGR19QU1NSX1ZBTAkgICAgMHgwMDAwMDAzMAotI2RlZmluZSBDRkdfQ0NDUl9WQUwJICAgIDB4MDAwMDAxNjEJLyogMTAwIE1IeiBtZW1vcnksIDQwMCBNSHogQ1BVLCA0MDAgVHVyYm8gICovCi0jZGVmaW5lIENGR19DS0VOX1ZBTAkgICAgMHgwMDAxNDFlYwkvKiBGRlVBUlQgYW5kIFNUVUFSVCBlbmFibGVkCSovCi0jZGVmaW5lIENGR19JQ01SX1ZBTAkgICAgMHgwMDAwMDAwMAkvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QU1NSX1ZBTAkgICAgMHgwMDAwMDAzMAorI2RlZmluZSBDT05GSUdfU1lTX0NDQ1JfVkFMCSAgICAweDAwMDAwMTYxCS8qIDEwMCBNSHogbWVtb3J5LCA0MDAgTUh6IENQVSwgNDAwIFR1cmJvICAqLworI2RlZmluZSBDT05GSUdfU1lTX0NLRU5fVkFMCSAgICAweDAwMDE0MWVjCS8qIEZGVUFSVCBhbmQgU1RVQVJUIGVuYWJsZWQJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JQ01SX1ZBTAkgICAgMHgwMDAwMDAwMAkvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQJKi8KIAogLyogRklYTUUKICAqCkBAIC0zMzEsMjMgKzMzMSwyMyBAQAogICogTWVtb3J5IHNldHRpbmdzCiAgKgogICovCi0jZGVmaW5lIENGR19NU0MwX1ZBTAkgICAgMHgxMjI0MjNmMAkvKiBGTEFTSCAgIC8gTEFOCSAgICAoY3MwKS8oY1MxKQkgICovCi0jZGVmaW5lIENGR19NU0MxX1ZBTAkgICAgMHgzNWY0YWE0YwkvKiBVU0IJICAgLyBTVDMrU1Q1CSAgICAoY3MyKS8oY1MzKQkgICovCi0jZGVmaW5lIENGR19NU0MyX1ZBTAkgICAgMHgzNWY0MzVmYwkvKiBJREUJICAgLyBCQ1IgKyBXYXRjaERvZyAoY3M0KS8oY1M1KQkgICovCi0jZGVmaW5lIENGR19NRENORkdfVkFMCSAgICAweDAwMDAwOWM5Ci0jZGVmaW5lIENGR19NRE1SU19WQUwJICAgIDB4MDAyMjAwMjIKLSNkZWZpbmUgQ0ZHX01EUkVGUl9WQUwJICAgIDB4MDAwZGEwMTgJLyogSW5pdGlhbCBzZXR0aW5nLCBpbmRpdmlkdWFsIGJpdHMgc2V0IGluIGxvd2xldmVsX2luaXQuUyAqLworI2RlZmluZSBDT05GSUdfU1lTX01TQzBfVkFMCSAgICAweDEyMjQyM2YwCS8qIEZMQVNIICAgLyBMQU4JICAgIChjczApLyhjUzEpCSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NU0MxX1ZBTAkgICAgMHgzNWY0YWE0YwkvKiBVU0IJICAgLyBTVDMrU1Q1CSAgICAoY3MyKS8oY1MzKQkgICovCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMl9WQUwJICAgIDB4MzVmNDM1ZmMJLyogSURFCSAgIC8gQkNSICsgV2F0Y2hEb2cgKGNzNCkvKGNTNSkJICAqLworI2RlZmluZSBDT05GSUdfU1lTX01EQ05GR19WQUwJICAgIDB4MDAwMDA5YzkKKyNkZWZpbmUgQ09ORklHX1NZU19NRE1SU19WQUwJICAgIDB4MDAyMjAwMjIKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMCSAgICAweDAwMGRhMDE4CS8qIEluaXRpYWwgc2V0dGluZywgaW5kaXZpZHVhbCBiaXRzIHNldCBpbiBsb3dsZXZlbF9pbml0LlMgKi8KIAogLyoKICAqIFBDTUNJQSBhbmQgQ0YgSW50ZXJmYWNlcyAoTk9UIFVTRUQsIHRoZXNlIHZhbHVlcyBmcm9tIGx1YmJvY2sgaW5pdCkKICAqLwotI2RlZmluZSBDRkdfTUVDUl9WQUwJICAgICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfTUNNRU0wX1ZBTAkgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ01FTTFfVkFMCSAgICAgIDB4MDAwMTA1MDQKLSNkZWZpbmUgQ0ZHX01DQVRUMF9WQUwJICAgICAgMHgwMDAxMDUwNAotI2RlZmluZSBDRkdfTUNBVFQxX1ZBTAkgICAgICAweDAwMDEwNTA0Ci0jZGVmaW5lIENGR19NQ0lPMF9WQUwJICAgICAgMHgwMDAwNDcxNQotI2RlZmluZSBDRkdfTUNJTzFfVkFMCSAgICAgIDB4MDAwMDQ3MTUKKyNkZWZpbmUgQ09ORklHX1NZU19NRUNSX1ZBTAkgICAgICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0wX1ZBTAkgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNNRU0xX1ZBTAkgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQwX1ZBTAkgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNBVFQxX1ZBTAkgICAgICAweDAwMDEwNTA0CisjZGVmaW5lIENPTkZJR19TWVNfTUNJTzBfVkFMCSAgICAgIDB4MDAwMDQ3MTUKKyNkZWZpbmUgQ09ORklHX1NZU19NQ0lPMV9WQUwJICAgICAgMHgwMDAwNDcxNQogCiAvKiBCb2FyZCBzcGVjaWZpYyBkZWZpbmVzICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy94c2VuZ2luZS5oIGIvaW5jbHVkZS9jb25maWdzL3hzZW5naW5lLmgKaW5kZXggNDQzMzkyZi4uYjcyNzQxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3hzZW5naW5lLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3hzZW5naW5lLmgKQEAgLTM1LDExICszNSwxMSBAQAogI2RlZmluZSBDT05GSUdfRE9TX1BBUlRJVElPTgkJMQogI2RlZmluZSBCT0FSRF9MQVRFX0lOSVQJCQkxCiAjdW5kZWYgIENPTkZJR19VU0VfSVJRCQkJCQkvKiB3ZSBkb24ndCBuZWVkIElSUS9GSVEgc3R1ZmYgKi8KLSNkZWZpbmUgQ0ZHX0haCQkJCTM2ODY0MDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuNjg2NCBNSHogKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkJCQkzNjg2NDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjY4NjQgTUh6ICovCiAKICN1bmRlZiAgQ09ORklHX1VTRV9JUlEJCQkJCS8qIHdlIGRvbid0IG5lZWQgSVJRL0ZJUSBzdHVmZiAqLwotI2RlZmluZSBDRkdfSFoJCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLwotI2RlZmluZSBDRkdfQ1BVU1BFRUQJCQkweDE2MSAgICAgICAgICAgLyogc2V0IGNvcmUgY2xvY2sgdG8gNDAwLzIwMC8xMDAgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkJMzY4NjQwMAkJLyogaW5jcmVtZW50ZXIgZnJlcTogMy42ODY0IE1IeiAqLworI2RlZmluZSBDT05GSUdfU1lTX0NQVVNQRUVECQkJMHgxNjEgICAgICAgICAgIC8qIHNldCBjb3JlIGNsb2NrIHRvIDQwMC8yMDAvMTAwIE1IeiAqLwogCiAjZGVmaW5lIENPTkZJR19OUl9EUkFNX0JBTktTCQkxCQkvKiB3ZSBoYXZlIDEgYmFuayBvZiBEUkFNICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fMQkJCTB4YTAwMDAwMDAJLyogU0RSQU0gQmFuayAjMSAqLwpAQCAtNTAsMTYgKzUwLDE2IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fM19TSVpFCQkweDAwMDAwMDAwCS8qIDAgTUIgKi8KICNkZWZpbmUgUEhZU19TRFJBTV80CQkJMHhhYzAwMDAwMAkvKiBTRFJBTSBCYW5rICM0ICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fNF9TSVpFCQkweDAwMDAwMDAwCS8qIDAgTUIgKi8KLSNkZWZpbmUgQ0ZHX0RSQU1fQkFTRQkJCTB4YTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0RSQU1fU0laRQkJCTB4MDQwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19EUkFNX0JBU0UJCQkweGEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9TSVpFCQkJMHgwNDAwMDAwMAogCiAvKiBGTEFTSCBvcmdhbml6YXRpb24gKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkJMQkJLyogbWF4IG51bWJlciBvZiBtZW1vcnkgYmFua3MgICAgICAgICAgICovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkJMTI4CQkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJCTEJCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzICAgICAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCQkxMjgJCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcCAgICAqLwogI2RlZmluZSBQSFlTX0ZMQVNIXzEJCQkweDAwMDAwMDAwCS8qIEZsYXNoIEJhbmsgIzEgKi8KICNkZWZpbmUgUEhZU19GTEFTSF8yCQkJMHgwMDAwMDAwMAkvKiBGbGFzaCBCYW5rICMyICovCiAjZGVmaW5lIFBIWVNfRkxBU0hfU0VDVF9TSVpFCQkweDAwMDIwMDAwCS8qIDEyNyBLQiBzZWN0b3JzICovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkJUEhZU19GTEFTSF8xCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJCVBIWVNfRkxBU0hfMQogCiAvKgogICogSkZGUzIgcGFydGl0aW9ucwpAQCAtODYsMTIgKzg2LDEyIEBACiAjZGVmaW5lIENPTkZJR19FTlZfU0laRSAgICAgICAgICAgICAgICAgICAgMHg0MDAwCQkJCS8qIDE2a0IgVG90YWwgU2l6ZSBvZiBFbnZpcm9ubWVudCBTZWN0b3IgKi8KIAogLyogdGltZW91dCB2YWx1ZXMgYXJlIGluIHRpY2tzICovCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCQkoNzUqQ0ZHX0haKQkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAkJKDUwKkNGR19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCQkoNzUqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCQkoNTAqQ09ORklHX1NZU19IWikJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKi8KIAogLyogU2l6ZSBvZiBtYWxsb2MoKSBwb29sICovCi0jZGVmaW5lIENGR19NQUxMT0NfTEVOCQkJKENPTkZJR19FTlZfU0laRSArIDI1NioxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkJMTI4CQkvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkJKENPTkZJR19FTlZfU0laRSArIDI1NioxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJCTEyOAkJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCiAKIC8qIEhhcmR3YXJlIGRyaXZlcnMgKi8KICNkZWZpbmUgQ09ORklHX0RSSVZFUl9TTUM5MTExMQpAQCAtMTMzLDIwICsxMzMsMjAgQEAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfVEFHCiAKIC8qIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkJMQotI2RlZmluZSBDRkdfUFJPTVBUX0hVU0hfUFMyCQkiPiAiCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCQkJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BST01QVAkJCSJYUy1FbmdpbmUgdS1ib290PiAiCQkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLwotI2RlZmluZSBDRkdfQ0JTSVpFCQkJMjU2CQkJCQkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfUEJTSVpFCQkJKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KQkvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJCTE2CQkJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZSBDRkdfQkFSR1NJWkUJCQlDRkdfQ0JTSVpFCQkJCS8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfU1RBUlQJCTB4QTA0MDAwMDAJCQkJLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkJMHhBMDgwMDAwMAkJCQkvKiA0IC4uLiA4IE1CIGluIERSQU0gICAqLwotI3VuZGVmICBDRkdfQ0xLU19JTl9IWgkJCQkJCQkJLyogZXZlcnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0JLyogdmFsaWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19NTUNfQkFTRQkJCTB4RjAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJCTB4QTAwMDAwMDAJCQkJLyogbG9hZCBrZXJuZWwgdG8gdGhpcyBhZGRyZXNzICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IVVNIX1BBUlNFUgkJCTEKKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFRfSFVTSF9QUzIJCSI+ICIKKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCQkiWFMtRW5naW5lIHUtYm9vdD4gIgkJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJCQkyNTYJCQkJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFCQkJKENPTkZJR19TWVNfQ0JTSVpFK3NpemVvZihDT05GSUdfU1lTX1BST01QVCkrMTYpCS8qIFByaW50IEJ1ZmZlciBTaXplICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFYQVJHUwkJCTE2CQkJCQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQkJQ09ORklHX1NZU19DQlNJWkUJCQkJLyogQm9vdCBBcmd1bWVudCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJCTB4QTA0MDAwMDAJCQkJLyogbWVtdGVzdCB3b3JrcyBvbiAgICAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJCTB4QTA4MDAwMDAJCQkJLyogNCAuLi4gOCBNQiBpbiBEUkFNICAgKi8KKyN1bmRlZiAgQ09ORklHX1NZU19DTEtTX0lOX0haCQkJCQkJCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0JLyogdmFsaWQgYmF1ZHJhdGVzICovCisjZGVmaW5lIENPTkZJR19TWVNfTU1DX0JBU0UJCQkweEYwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkJMHhBMDAwMDAwMAkJCQkvKiBsb2FkIGtlcm5lbCB0byB0aGlzIGFkZHJlc3MgICAqLwogCiAvKiBTdGFjayBzaXplcyAtIFRoZSBzdGFjayBzaXplcyBhcmUgc2V0IHVwIGluIHN0YXJ0LlMgdXNpbmcgdGhlIHNldHRpbmdzIGJlbG93ICovCiAjZGVmaW5lIENPTkZJR19TVEFDS1NJWkUJCSgxMjgqMTAyNCkJLyogcmVndWxhciBzdGFjayAqLwpAQCAtMTU2LDUzICsxNTYsNTMgQEAKICNlbmRpZgogCiAvKiBHUCBzZXQgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0dQU1IwX1ZBTAkJCTB4MDAwMEEwMDAJLyogQ1MxLCBQUk9HKEZQR0EpICovCi0jZGVmaW5lIENGR19HUFNSMV9WQUwJCQkweDAwMDIwMDAwCS8qIG5QV0UgKi8KLSNkZWZpbmUgQ0ZHX0dQU1IyX1ZBTAkJCTB4MDAwMEMwMDAJLyogQ1MyLCBDUzMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUFNSMF9WQUwJCQkweDAwMDBBMDAwCS8qIENTMSwgUFJPRyhGUEdBKSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQU1IxX1ZBTAkJCTB4MDAwMjAwMDAJLyogblBXRSAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQU1IyX1ZBTAkJCTB4MDAwMEMwMDAJLyogQ1MyLCBDUzMgKi8KIAogLyogR1AgY2xlYXIgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0dQQ1IwX1ZBTAkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IxX1ZBTAkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQQ1IyX1ZBTAkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUENSMF9WQUwJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1BDUjFfVkFMCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQQ1IyX1ZBTAkJCTB4MDAwMDAwMDAKIAogLyogR1AgZGlyZWN0aW9uIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19HUERSMF9WQUwJCQkweDAwMDBBMDAwCS8qIENTMSwgUFJPRyhGUEdBKSAqLwotI2RlZmluZSBDRkdfR1BEUjFfVkFMCQkJMHgwMDAyMkE4MAkvKiBuUFdFLCBGRlVBUlQgKyBCVFVBUlQgcGlucyAqLwotI2RlZmluZSBDRkdfR1BEUjJfVkFMCQkJMHgwMDAwQzAwMAkvKiBDUzIsIENTMyAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQRFIwX1ZBTAkJCTB4MDAwMEEwMDAJLyogQ1MxLCBQUk9HKEZQR0EpICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BEUjFfVkFMCQkJMHgwMDAyMkE4MAkvKiBuUFdFLCBGRlVBUlQgKyBCVFVBUlQgcGlucyAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQRFIyX1ZBTAkJCTB4MDAwMEMwMDAJLyogQ1MyLCBDUzMgKi8KIAogLyogR1AgcmlzaW5nIGVkZ2UgZGV0ZWN0IHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19HUkVSMF9WQUwJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkVSMV9WQUwJCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUkVSMl9WQUwJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR1JFUjBfVkFMCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dSRVIxX1ZBTAkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUkVSMl9WQUwJCQkweDAwMDAwMDAwCiAKIC8qIEdQIGZhbGxpbmcgZWRnZSBkZXRlY3QgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0ZHX0dGRVIwX1ZBTAkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIxX1ZBTAkJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dGRVIyX1ZBTAkJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HRkVSMF9WQUwJCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfR0ZFUjFfVkFMCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dGRVIyX1ZBTAkJCTB4MDAwMDAwMDAKIAogLyogR1AgYWx0ZXJuYXRlIGZ1bmN0aW9uIHJlZ2lzdGVyICovCi0jZGVmaW5lIENGR19HQUZSMF9MX1ZBTAkJCTB4ODAwMDAwMDAJLyogQ1MxICovCi0jZGVmaW5lIENGR19HQUZSMF9VX1ZBTAkJCTB4MDAwMDAwMTAJLyogUkRZICovCi0jZGVmaW5lIENGR19HQUZSMV9MX1ZBTAkJCTB4MDk5ODgwNTAJLyogRkZVQVJUICsgQlRVQVJUIHBpbnMgKi8KLSNkZWZpbmUgQ0ZHX0dBRlIxX1VfVkFMCQkJMHgwMDAwMDAwOAkvKiBuUFdFICovCi0jZGVmaW5lIENGR19HQUZSMl9MX1ZBTAkJCTB4QTAwMDAwMDAJLyogQ1MyLCBDUzMgKi8KLSNkZWZpbmUgQ0ZHX0dBRlIyX1VfVkFMCQkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dBRlIwX0xfVkFMCQkJMHg4MDAwMDAwMAkvKiBDUzEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMF9VX1ZBTAkJCTB4MDAwMDAwMTAJLyogUkRZICovCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfTF9WQUwJCQkweDA5OTg4MDUwCS8qIEZGVUFSVCArIEJUVUFSVCBwaW5zICovCisjZGVmaW5lIENPTkZJR19TWVNfR0FGUjFfVV9WQUwJCQkweDAwMDAwMDA4CS8qIG5QV0UgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9MX1ZBTAkJCTB4QTAwMDAwMDAJLyogQ1MyLCBDUzMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQUZSMl9VX1ZBTAkJCTB4MDAwMDAwMDAKIAotI2RlZmluZSBDRkdfUFNTUl9WQUwJCQkweDAwMDAwMDIwCS8qIFBvd2VyIG1hbmFnZXIgc2xlZXAgc3RhdHVzICovCi0jZGVmaW5lIENGR19DQ0NSX1ZBTAkJCTB4MDAwMDAxNjEJLyogMTAwIE1IeiBtZW1vcnksIDQwMCBNSHogQ1BVICAqLwotI2RlZmluZSBDRkdfQ0tFTl9WQUwJCQkweDAwMDAwMEMwCS8qIEJUVUFSVCBhbmQgRkZVQVJUIGVuYWJsZWQgICAgKi8KLSNkZWZpbmUgQ0ZHX0lDTVJfVkFMCQkJMHgwMDAwMDAwMAkvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQgICAgICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfUFNTUl9WQUwJCQkweDAwMDAwMDIwCS8qIFBvd2VyIG1hbmFnZXIgc2xlZXAgc3RhdHVzICovCisjZGVmaW5lIENPTkZJR19TWVNfQ0NDUl9WQUwJCQkweDAwMDAwMTYxCS8qIDEwMCBNSHogbWVtb3J5LCA0MDAgTUh6IENQVSAgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DS0VOX1ZBTAkJCTB4MDAwMDAwQzAJLyogQlRVQVJUIGFuZCBGRlVBUlQgZW5hYmxlZCAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lDTVJfVkFMCQkJMHgwMDAwMDAwMAkvKiBObyBpbnRlcnJ1cHRzIGVuYWJsZWQgICAgICAgICovCiAKIC8qIE1lbW9yeSBzZXR0aW5ncyAqLwotI2RlZmluZSBDRkdfTVNDMF9WQUwJCQkweDI1RjQyNUYwCisjZGVmaW5lIENPTkZJR19TWVNfTVNDMF9WQUwJCQkweDI1RjQyNUYwCiAKIC8qIE1EQ05GRzogU0RSQU0gQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfTURDTkZHX1ZBTAkJCTB4MDAwMDA5QzkKKyNkZWZpbmUgQ09ORklHX1NZU19NRENORkdfVkFMCQkJMHgwMDAwMDlDOQogCiAvKiBNRFJFRlI6IFNEUkFNIFJlZnJlc2ggQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfTURSRUZSX1ZBTAkJCTB4MDAwMTgwMTgKKyNkZWZpbmUgQ09ORklHX1NZU19NRFJFRlJfVkFMCQkJMHgwMDAxODAxOAogCiAvKiBNRE1SUzogTW9kZSBSZWdpc3RlciBTZXQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBDRkdfTURNUlNfVkFMCQkJMHgwMDIyMDAyMgorI2RlZmluZSBDT05GSUdfU1lTX01ETVJTX1ZBTAkJCTB4MDAyMjAwMjIKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy94dXB2MnAuaCBiL2luY2x1ZGUvY29uZmlncy94dXB2MnAuaAppbmRleCAwZTMzNzE0Li42YTkyNzAzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MveHVwdjJwLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3h1cHYycC5oCkBAIC0zNSwxNyArMzUsMTcgQEAKICNkZWZpbmUJQ09ORklHX1hJTElOWF9VQVJUTElURQogI2RlZmluZQlDT05GSUdfU0VSSUFMX0JBU0UJWElMSU5YX1VBUlRMSVRFX0JBU0VBRERSCiAjZGVmaW5lCUNPTkZJR19CQVVEUkFURQkJWElMSU5YX1VBUlRMSVRFX0JBVURSQVRFCi0jZGVmaW5lCUNGR19CQVVEUkFURV9UQUJMRQl7IENPTkZJR19CQVVEUkFURSB9CisjZGVmaW5lCUNPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJeyBDT05GSUdfQkFVRFJBVEUgfQogI2Vsc2UKICNpZmRlZiBYSUxJTlhfVUFSVDE2NTUwX0JBU0VBRERSCi0jZGVmaW5lIENGR19OUzE2NTUwCi0jZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAotI2RlZmluZSBDRkdfTlMxNjU1MF9SRUdfU0laRQk0CisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MAorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfU0VSSUFMCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9SRUdfU0laRQk0CiAjZGVmaW5lIENPTkZJR19DT05TX0lOREVYCTEKLSNkZWZpbmUgQ0ZHX05TMTY1NTBfQ09NMQlYSUxJTlhfVUFSVDE2NTUwX0JBU0VBRERSCi0jZGVmaW5lIENGR19OUzE2NTUwX0NMSwkJWElMSU5YX1VBUlQxNjU1MF9DTE9DS19IWgorI2RlZmluZSBDT05GSUdfU1lTX05TMTY1NTBfQ09NMQlYSUxJTlhfVUFSVDE2NTUwX0JBU0VBRERSCisjZGVmaW5lIENPTkZJR19TWVNfTlMxNjU1MF9DTEsJCVhJTElOWF9VQVJUMTY1NTBfQ0xPQ0tfSFoKICNkZWZpbmUJQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKLSNkZWZpbmUJQ0ZHX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTE1MjAwIH0KKyNkZWZpbmUJQ09ORklHX1NZU19CQVVEUkFURV9UQUJMRQl7IDk2MDAsIDExNTIwMCB9CiAjZW5kaWYKICNlbmRpZgogCkBAIC01Myw0NiArNTMsNDYgQEAKICAqIHNldHRpbmcgcmVzZXQgYWRkcmVzcwogICoKICAqIFRFWFRfQkFTRSBpcyBzZXQgdG8gcGxhY2UsIHdoZXJlIHRoZSBVLUJPT1QgcnVuIGluIFJBTSwgYnV0Ci0gKiBpZiB5b3Ugd2FudCB0byBzdG9yZSBVLUJPT1QgaW4gZmxhc2gsIHNldCBDRkdfUkVTRVRfQUREUkVTUworICogaWYgeW91IHdhbnQgdG8gc3RvcmUgVS1CT09UIGluIGZsYXNoLCBzZXQgQ09ORklHX1NZU19SRVNFVF9BRERSRVNTCiAgKiB0byBGTEFTSCBtZW1vcnkgYW5kIGFmdGVyIGxvYWRpbmcgYml0c3RyZWFtIGp1bXAgdG8gRkxBU0guCiAgKiBVLUJPT1QgYXV0by1yZWxvY2F0ZSB0byBURVhUX0JBU0UuIEFmdGVyIFJFU0VUIGNvbW1hbmQgTWljcm9ibGF6ZQotICoganVtcCB0byBDRkdfUkVTRVRfQUREUkVTUyB3aGVyZSBpcyB0aGUgb3JpZ2luYWwgVS1CT09UIGNvZGUuCisgKiBqdW1wIHRvIENPTkZJR19TWVNfUkVTRVRfQUREUkVTUyB3aGVyZSBpcyB0aGUgb3JpZ2luYWwgVS1CT09UIGNvZGUuCiAgKi8KLS8qICNkZWZpbmUJQ0ZHX1JFU0VUX0FERFJFU1MJMHgzNjAwMDAwMCAqLworLyogI2RlZmluZQlDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MJMHgzNjAwMDAwMCAqLwogCiAvKiBldGhlcm5ldCAqLwogI2lmZGVmIFhJTElOWF9FTUFDX0JBU0VBRERSCiAjZGVmaW5lIENPTkZJR19YSUxJTlhfRU1BQwkxCi0jZGVmaW5lIENGR19FTkVUCisjZGVmaW5lIENPTkZJR19TWVNfRU5FVAogI2Vsc2UKICNpZmRlZiBYSUxJTlhfRU1BQ0xJVEVfQkFTRUFERFIKICNkZWZpbmUgQ09ORklHX1hJTElOWF9FTUFDTElURQkxCi0jZGVmaW5lIENGR19FTkVUCisjZGVmaW5lIENPTkZJR19TWVNfRU5FVAogI2VuZGlmCiAjZW5kaWYKICN1bmRlZiBFVF9ERUJVRwogCiAvKiBncGlvICovCiAjaWZkZWYgWElMSU5YX0dQSU9fQkFTRUFERFIKLSNkZWZpbmUJQ0ZHX0dQSU9fMAkJMQotI2RlZmluZQlDRkdfR1BJT18wX0FERFIJCVhJTElOWF9HUElPX0JBU0VBRERSCisjZGVmaW5lCUNPTkZJR19TWVNfR1BJT18wCQkxCisjZGVmaW5lCUNPTkZJR19TWVNfR1BJT18wX0FERFIJCVhJTElOWF9HUElPX0JBU0VBRERSCiAjZW5kaWYKIAogLyogaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8KICNpZmRlZiBYSUxJTlhfSU5UQ19CQVNFQUREUgotI2RlZmluZQlDRkdfSU5UQ18wCQkxCi0jZGVmaW5lCUNGR19JTlRDXzBfQUREUgkJWElMSU5YX0lOVENfQkFTRUFERFIKLSNkZWZpbmUJQ0ZHX0lOVENfMF9OVU0JCVhJTElOWF9JTlRDX05VTV9JTlRSX0lOUFVUUworI2RlZmluZQlDT05GSUdfU1lTX0lOVENfMAkJMQorI2RlZmluZQlDT05GSUdfU1lTX0lOVENfMF9BRERSCQlYSUxJTlhfSU5UQ19CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX0lOVENfMF9OVU0JCVhJTElOWF9JTlRDX05VTV9JTlRSX0lOUFVUUwogI2VuZGlmCiAKIC8qIHRpbWVyICovCiAjaWZkZWYgWElMSU5YX1RJTUVSX0JBU0VBRERSCiAjaWYgKFhJTElOWF9USU1FUl9JUlEgIT0gLTEpCi0jZGVmaW5lCUNGR19USU1FUl8wCQkxCi0jZGVmaW5lCUNGR19USU1FUl8wX0FERFIJWElMSU5YX1RJTUVSX0JBU0VBRERSCi0jZGVmaW5lCUNGR19USU1FUl8wX0lSUQkJWElMSU5YX1RJTUVSX0lSUQorI2RlZmluZQlDT05GSUdfU1lTX1RJTUVSXzAJCTEKKyNkZWZpbmUJQ09ORklHX1NZU19USU1FUl8wX0FERFIJWElMSU5YX1RJTUVSX0JBU0VBRERSCisjZGVmaW5lCUNPTkZJR19TWVNfVElNRVJfMF9JUlEJCVhJTElOWF9USU1FUl9JUlEKICNkZWZpbmUJRlJFUVVFTkNFCQlYSUxJTlhfQ0xPQ0tfRlJFUQotI2RlZmluZQlDRkdfVElNRVJfMF9QUkVMT0FECSggRlJFUVVFTkNFLzEwMDAgKQorI2RlZmluZQlDT05GSUdfU1lTX1RJTUVSXzBfUFJFTE9BRAkoIEZSRVFVRU5DRS8xMDAwICkKICNlbmRpZgogI2Vsc2UKICNpZmRlZiBYSUxJTlhfQ0xPQ0tfRlJFUQpAQCAtMTA0LDE0ICsxMDQsMTQgQEAKIC8qCiAgKiBtZW1vcnkgbGF5b3V0IC0gRXhhbXBsZQogICogVEVYVF9CQVNFID0gMHgzNjAwXzAwMDA7Ci0gKiBDRkdfU1JBTV9CQVNFID0gMHgzMDAwXzAwMDA7Ci0gKiBDRkdfU1JBTV9TSVpFID0gMHgxMDAwXzAwMDA7CisgKiBDT05GSUdfU1lTX1NSQU1fQkFTRSA9IDB4MzAwMF8wMDAwOworICogQ09ORklHX1NZU19TUkFNX1NJWkUgPSAweDEwMDBfMDAwMDsKICAqCi0gKiBDRkdfR0JMX0RBVEFfT0ZGU0VUID0gMHgzMDAwXzAwMDAgKyAweDEwMDBfMDAwMCAtIDB4MTAwMCA9IDB4M0ZGRl9GMDAwCi0gKiBDRkdfTU9OSVRPUl9CQVNFID0gMHgzRkZGX0YwMDAgLSAweDQwMDAwID0gMHgzRkZCX0YwMDAKLSAqIENGR19NQUxMT0NfQkFTRSA9IDB4M0ZGQl9GMDAwIC0gMHg0MDAwMCA9IDB4M0ZGN19GMDAwCisgKiBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCA9IDB4MzAwMF8wMDAwICsgMHgxMDAwXzAwMDAgLSAweDEwMDAgPSAweDNGRkZfRjAwMAorICogQ09ORklHX1NZU19NT05JVE9SX0JBU0UgPSAweDNGRkZfRjAwMCAtIDB4NDAwMDAgPSAweDNGRkJfRjAwMAorICogQ09ORklHX1NZU19NQUxMT0NfQkFTRSA9IDB4M0ZGQl9GMDAwIC0gMHg0MDAwMCA9IDB4M0ZGN19GMDAwCiAgKgotICogMHgzMDAwXzAwMDAJQ0ZHX1NEUkFNX0JBU0UKKyAqIDB4MzAwMF8wMDAwCUNPTkZJR19TWVNfU0RSQU1fQkFTRQogICoJCQkJCUZSRUUKICAqIDB4MzYwMF8wMDAwCVRFWFRfQkFTRQogICoJCVUtQk9PVCBjb2RlCkBAIC0xMTksNDAgKzExOSw0MCBAQAogICoJCQkJCUZSRUUKICAqCiAgKgkJCQkJU1RBQ0sKLSAqIDB4M0ZGN19GMDAwCUNGR19NQUxMT0NfQkFTRQorICogMHgzRkY3X0YwMDAJQ09ORklHX1NZU19NQUxMT0NfQkFTRQogICoJCQkJCU1BTExPQ19BUkVBCTI1NmtCCUFsbG9jCi0gKiAweDNGRkJfRjAwMAlDRkdfTU9OSVRPUl9CQVNFCisgKiAweDNGRkJfRjAwMAlDT05GSUdfU1lTX01PTklUT1JfQkFTRQogICoJCQkJCU1PTklUT1JfQ09ERQkyNTZrQglFbnYKLSAqIDB4M0ZGRl9GMDAwCUNGR19HQkxfREFUQV9PRkZTRVQKKyAqIDB4M0ZGRl9GMDAwCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUCiAgKgkJCQkJR0xPQkFMX0RBVEEJNGtCCWJkLCBnZAotICogMHg0MDAwXzAwMDAJQ0ZHX1NEUkFNX0JBU0UgKyBDRkdfU0RSQU1fU0laRQorICogMHg0MDAwXzAwMDAJQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19TRFJBTV9TSVpFCiAgKi8KIAogLyogZGRyIHNkcmFtIC0gbWFpbiBtZW1vcnkgKi8KLSNkZWZpbmUJQ0ZHX1NEUkFNX0JBU0UJCVhJTElOWF9SQU1fU1RBUlQKLSNkZWZpbmUJQ0ZHX1NEUkFNX1NJWkUJCVhJTElOWF9SQU1fU0laRQotI2RlZmluZQlDRkdfTUVNVEVTVF9TVEFSVAlDRkdfU0RSQU1fQkFTRQotI2RlZmluZQlDRkdfTUVNVEVTVF9FTkQJCShDRkdfU0RSQU1fQkFTRSArIDB4MTAwMCkKKyNkZWZpbmUJQ09ORklHX1NZU19TRFJBTV9CQVNFCQlYSUxJTlhfUkFNX1NUQVJUCisjZGVmaW5lCUNPTkZJR19TWVNfU0RSQU1fU0laRQkJWElMSU5YX1JBTV9TSVpFCisjZGVmaW5lCUNPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUJQ09ORklHX1NZU19NRU1URVNUX0VORAkJKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMCkKIAogLyogZ2xvYmFsIHBvaW50ZXIgKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX1NJWkUJMHgxMDAwCS8qIHNpemUgb2YgZ2xvYmFsIGRhdGEgKi8KLSNkZWZpbmUJQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAgKENGR19TRFJBTV9CQVNFICsgQ0ZHX1NEUkFNX1NJWkUgLSBDRkdfR0JMX0RBVEFfU0laRSkgLyogc3RhcnQgb2YgZ2xvYmFsIGRhdGEgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTB4MTAwMAkvKiBzaXplIG9mIGdsb2JhbCBkYXRhICovCisjZGVmaW5lCUNPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUICAgICAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgQ09ORklHX1NZU19TRFJBTV9TSVpFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKSAvKiBzdGFydCBvZiBnbG9iYWwgZGF0YSAqLwogCiAvKiBtb25pdG9yIGNvZGUgKi8KICNkZWZpbmUJU0laRQkJCTB4NDAwMDAKLSNkZWZpbmUJQ0ZHX01PTklUT1JfTEVOCQlTSVpFCi0jZGVmaW5lCUNGR19NT05JVE9SX0JBU0UJKENGR19HQkxfREFUQV9PRkZTRVQgLSBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lCUNGR19NT05JVE9SX0VORAkJKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pCi0jZGVmaW5lCUNGR19NQUxMT0NfTEVOCQlTSVpFCi0jZGVmaW5lCUNGR19NQUxMT0NfQkFTRQkJKENGR19NT05JVE9SX0JBU0UgLSBDRkdfTUFMTE9DX0xFTikKKyNkZWZpbmUJQ09ORklHX1NZU19NT05JVE9SX0xFTgkJU0laRQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfQkFTRQkoQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgLSBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZQlDT05GSUdfU1lTX01PTklUT1JfRU5ECQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKQorI2RlZmluZQlDT05GSUdfU1lTX01BTExPQ19MRU4JCVNJWkUKKyNkZWZpbmUJQ09ORklHX1NZU19NQUxMT0NfQkFTRQkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKQogCiAvKiBzdGFjayAqLwotI2RlZmluZQlDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX01BTExPQ19CQVNFCisjZGVmaW5lCUNPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19NQUxMT0NfQkFTRQogCi0jZGVmaW5lCUNGR19OT19GTEFTSAkJMQorI2RlZmluZQlDT05GSUdfU1lTX05PX0ZMQVNICQkxCiAjZGVmaW5lCUNPTkZJR19FTlZfSVNfTk9XSEVSRQkxCiAjZGVmaW5lCUNPTkZJR19FTlZfU0laRQkJMHgxMDAwCi0jZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UgLSBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lCUNPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gQ09ORklHX0VOVl9TSVpFKQogCiAvKgogICogQk9PVFAgb3B0aW9ucwpAQCAtMTc1LDcgKzE3NSw3IEBACiAjZGVmaW5lIENPTkZJR19DTURfQ0FDSEUKICNkZWZpbmUgQ09ORklHX0NNRF9JUlEKIAotI2lmbmRlZiBDRkdfRU5FVAorI2lmbmRlZiBDT05GSUdfU1lTX0VORVQKIAkjdW5kZWYgQ09ORklHX0NNRF9ORVQKICNlbHNlCiAJI2RlZmluZSBDT05GSUdfQ01EX1BJTkcKQEAgLTE4NywxMiArMTg3LDEyIEBACiAjZW5kaWYKIAogLyogTWlzY2VsbGFuZW91cyBjb25maWd1cmFibGUgb3B0aW9ucyAqLwotI2RlZmluZQlDRkdfUFJPTVBUCSJVLUJvb3QtbU9OU3RSPiAiCi0jZGVmaW5lCUNGR19DQlNJWkUJNTEyCS8qIHNpemUgb2YgY29uc29sZSBidWZmZXIgKi8KLSNkZWZpbmUJQ0ZHX1BCU0laRQkoQ0ZHX0NCU0laRSArIHNpemVvZihDRkdfUFJPTVBUKSArIDE2KSAvKiBwcmludCBidWZmZXIgc2l6ZSAqLwotI2RlZmluZQlDRkdfTUFYQVJHUwkxNQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncyAqLwotI2RlZmluZQlDRkdfTE9OR0hFTFAKLSNkZWZpbmUJQ0ZHX0xPQURfQUREUgkweDEyMDAwMDAwIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzICovCisjZGVmaW5lCUNPTkZJR19TWVNfUFJPTVBUCSJVLUJvb3QtbU9OU3RSPiAiCisjZGVmaW5lCUNPTkZJR19TWVNfQ0JTSVpFCTUxMgkvKiBzaXplIG9mIGNvbnNvbGUgYnVmZmVyICovCisjZGVmaW5lCUNPTkZJR19TWVNfUEJTSVpFCShDT05GSUdfU1lTX0NCU0laRSArIHNpemVvZihDT05GSUdfU1lTX1BST01QVCkgKyAxNikgLyogcHJpbnQgYnVmZmVyIHNpemUgKi8KKyNkZWZpbmUJQ09ORklHX1NZU19NQVhBUkdTCTE1CS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzICovCisjZGVmaW5lCUNPTkZJR19TWVNfTE9OR0hFTFAKKyNkZWZpbmUJQ09ORklHX1NZU19MT0FEX0FERFIJMHgxMjAwMDAwMCAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCiAjZGVmaW5lCUNPTkZJR19CT09UREVMQVkJMzAKICNkZWZpbmUJQ09ORklHX0JPT1RBUkdTCQkicm9vdD1yb21mcyIKQEAgLTIwNCw4ICsyMDQsOCBAQAogI2RlZmluZQlDT05GSUdfRVRIQUREUgkJMDA6RTA6MEM6MDA6MDA6RkQKIAogLyogYXJjaGl0ZWN0dXJlIGRlcGVuZGVudCBjb2RlICovCi0jZGVmaW5lCUNGR19VU1JfRVhDRVAJLyogdXNlciBleGNlcHRpb24gKi8KLSNkZWZpbmUgQ0ZHX0haCTEwMDAKKyNkZWZpbmUJQ09ORklHX1NZU19VU1JfRVhDRVAJLyogdXNlciBleGNlcHRpb24gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19IWgkxMDAwCiAKICNkZWZpbmUgQ09ORklHX1BSRUJPT1QJImVjaG8gVS1CT09UIGJ5IG1PTlN0UjsiCVwKIAkiYmFzZSAwOyIgXApAQCAtMjE2LDggKzIxNiw4IEBACiAjZGVmaW5lCUNPTkZJR19TWVNURU1BQ0UKIC8qICNkZWZpbmUgREVCVUdfU1lTVEVNQUNFICovCiAjZGVmaW5lCVNZU1RFTUFDRV9DT05GSUdfRlBHQQotI2RlZmluZQlDRkdfU1lTVEVNQUNFX0JBU0UJWElMSU5YX1NZU0FDRV9CQVNFQUREUgotI2RlZmluZQlDRkdfU1lTVEVNQUNFX1dJRFRICVhJTElOWF9TWVNBQ0VfTUVNX1dJRFRICisjZGVmaW5lCUNPTkZJR19TWVNfU1lTVEVNQUNFX0JBU0UJWElMSU5YX1NZU0FDRV9CQVNFQUREUgorI2RlZmluZQlDT05GSUdfU1lTX1NZU1RFTUFDRV9XSURUSAlYSUxJTlhfU1lTQUNFX01FTV9XSURUSAogI2RlZmluZQlDT05GSUdfRE9TX1BBUlRJVElPTgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy95b3NlbWl0ZS5oIGIvaW5jbHVkZS9jb25maWdzL3lvc2VtaXRlLmgKaW5kZXggMDYzODlmMy4uYjY2YWI1OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3lvc2VtaXRlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3lvc2VtaXRlLmgKQEAgLTU1LDM2ICs1NSwzNiBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCSAgICAgICAgMHhmYzAwMDAwMAkgICAgLyogc3RhcnQgb2YgRkxBU0gJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCSAgICAgICAgMHhhMDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkqLwotI2RlZmluZSBDRkdfUENJX01FTUJBU0UxICAgICAgICBDRkdfUENJX01FTUJBU0UgICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UyICAgICAgICBDRkdfUENJX01FTUJBU0UxICsgMHgxMDAwMDAwMAotI2RlZmluZSBDRkdfUENJX01FTUJBU0UzICAgICAgICBDRkdfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UJICAgICAgICAweGZjMDAwMDAwCSAgICAvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCSAgICAgICAgMHhhMDAwMDAwMAkgICAgLyogbWFwcGVkIHBjaSBtZW1vcnkqLworI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSAgICAgICAgQ09ORklHX1NZU19QQ0lfTUVNQkFTRSAgKyAweDEwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJX01FTUJBU0UyICAgICAgICBDT05GSUdfU1lTX1BDSV9NRU1CQVNFMSArIDB4MTAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUVNQkFTRTMgICAgICAgIENPTkZJR19TWVNfUENJX01FTUJBU0UyICsgMHgxMDAwMDAwMAogCiAvKkRvbid0IGNoYW5nZSBlaXRoZXIgb2YgdGhlc2UqLwotI2RlZmluZSBDRkdfUEVSSVBIRVJBTF9CQVNFICAgICAweGVmNjAwMDAwCSAgICAvKiBpbnRlcm5hbCBwZXJpcGhlcmFscyovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkgICAgICAgIDB4ZTAwMDAwMDAJICAgIC8qIGludGVybmFsIFBDSSByZWdzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgICAgIDB4ZWY2MDAwMDAJICAgIC8qIGludGVybmFsIHBlcmlwaGVyYWxzKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfQkFTRQkgICAgICAgIDB4ZTAwMDAwMDAJICAgIC8qIGludGVybmFsIFBDSSByZWdzKi8KIC8qRG9uJ3QgY2hhbmdlIGVpdGhlciBvZiB0aGVzZSovCiAKLSNkZWZpbmUgQ0ZHX1VTQl9ERVZJQ0UgICAgICAgICAgMHg1MDAwMDAwMAotI2RlZmluZSBDRkdfTlZSQU1fQkFTRV9BRERSICAgICAweDgwMDAwMDAwCi0jZGVmaW5lIENGR19CQ1NSX0JBU0UJICAgICAgICAoQ0ZHX05WUkFNX0JBU0VfQUREUiB8IDB4MjAwMCkKLSNkZWZpbmUgQ0ZHX0JPT1RfQkFTRV9BRERSICAgICAgMHhmMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1VTQl9ERVZJQ0UgICAgICAgICAgMHg1MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0JDU1JfQkFTRQkgICAgICAgIChDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiB8IDB4MjAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19CT09UX0JBU0VfQUREUiAgICAgIDB4ZjAwMDAwMDAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbCBSQU0gJiBzdGFjayBwb2ludGVyIChwbGFjZWQgaW4gU0RSQU0pCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRENBQ0hFCTEJCS8qIGQtY2FjaGUgYXMgaW5pdCByYW0JKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJMHg3MDAwMDAwMAkJLyogRENhY2hlICAgICAgICovCi0jZGVmaW5lIENGR19JTklUX1JBTV9FTkQJKDQgPDwgMTApCi0jZGVmaW5lIENGR19HQkxfREFUQV9TSVpFCTI1NgkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEqLwotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAlDRkdfR0JMX0RBVEFfT0ZGU0VUCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fRENBQ0hFCTEJCS8qIGQtY2FjaGUgYXMgaW5pdCByYW0JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9BRERSCTB4NzAwMDAwMDAJCS8qIERDYWNoZSAgICAgICAqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkoNCA8PCAxMCkKKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFCTI1NgkJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEqLworI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQJQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19FWFRfU0VSSUFMX0NMT0NLCTExMDU5MjAwIC8qIHVzZSBleHRlcm5hbCAxMS4wNTlNSHogY2xrCSovCisjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkxMTA1OTIwMCAvKiB1c2UgZXh0ZXJuYWwgMTEuMDU5TUh6IGNsawkqLwogLypkZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCBjb25zb2xlIG9uIFVBUlQxKi8KICN1bmRlZiBDT05GSUdfVUFSVDFfQ09OU09MRQogCkBAIC0xMDQsMjMgKzEwNCwyMyBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRkxBU0ggcmVsYXRlZAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX0NGSQkJCQkvKiBUaGUgZmxhc2ggaXMgQ0ZJIGNvbXBhdGlibGUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCiAjZGVmaW5lIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCQkJLyogVXNlIGNvbW1vbiBDRkkgZHJpdmVyCSovCi0jZGVmaW5lIENGR19GTEFTSF9DRklfQU1EX1JFU0VUIDEJCS8qIEFNRCBSRVNFVCBmb3IgU1RNIDI5VzMyMERCIQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0NGSV9BTURfUkVTRVQgMQkJLyogQU1EIFJFU0VUIGZvciBTVE0gMjlXMzIwREIhCSovCiAKLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLwotI2RlZmluZSBDRkdfTUFYX0ZMQVNIX1NFQ1QJNTEyCS8qIG1heCBudW1iZXIgb2Ygc2VjdG9ycyBvbiBvbmUgY2hpcAkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkxCS8qIG1heCBudW1iZXIgb2YgbWVtb3J5IGJhbmtzCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KIAotI2RlZmluZSBDRkdfRkxBU0hfRVJBU0VfVE9VVAkxMjAwMDAJLyogVGltZW91dCBmb3IgRmxhc2ggRXJhc2UgKGluIG1zKQkqLwotI2RlZmluZSBDRkdfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KIAogI2lmZGVmIENPTkZJR19FTlZfSVNfSU5fRkxBU0gKICNkZWZpbmUgQ09ORklHX0VOVl9TRUNUX1NJWkUJMHgyMDAwMAkvKiBzaXplIG9mIG9uZSBjb21wbGV0ZSBzZWN0b3IJCSovCi0jZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENGR19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpCisjZGVmaW5lIENPTkZJR19FTlZfQUREUgkJKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTEzMiwxOSArMTMyLDE5IEBACiAgKiBERFIgU0RSQU0KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjdW5kZWYgQ09ORklHX1NQRF9FRVBST00JICAgICAgIC8qIERvbid0IHVzZSBTUEQgRUVQUk9NIGZvciBzZXR1cCAgICAqLwotI2RlZmluZSBDRkdfS0JZVEVTX1NEUkFNICAgICAgICAoMTI4ICogMTAyNCkgICAgLyogMTI4TUIJCSAgICAqLwotI2RlZmluZSBDRkdfU0RSQU1fQkFOS1MJICAgICAgICAoMikKKyNkZWZpbmUgQ09ORklHX1NZU19LQllURVNfU0RSQU0gICAgICAgICgxMjggKiAxMDI0KSAgICAvKiAxMjhNQgkJICAgICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fQkFOS1MJICAgICAgICAoMikKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSTJDCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBDRkdfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NQRUVECQk0MDAwMDAJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCiAKLSNkZWZpbmUgQ0ZHX0kyQ19NVUxUSV9FRVBST01TCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJKDB4YTg+PjEpCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOIDEKLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgMwotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfREVMQVlfTVMgMTAKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfTVVMVElfRUVQUk9NUworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUgkoMHhhOD4+MSkKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFJfTEVOIDEKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9CSVRTIDMKKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUyAxMAogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9FRVBST00KICNkZWZpbmUgQ09ORklHX0VOVl9TSVpFCQkweDIwMAkgICAgLyogU2l6ZSBvZiBFbnZpcm9ubWVudCB2YXJzICovCkBAIC0xNTUsOSArMTU1LDkgQEAKICNkZWZpbmUgQ09ORklHX0RUVF9MTTc1CQkxCQkvKiBPTiBTZW1pJ3MgTE03NQkqLwogI2RlZmluZSBDT05GSUdfRFRUX0FENzQxNAkxCQkvKiB1c2UgQUQ3NDE0CQkqLwogI2RlZmluZSBDT05GSUdfRFRUX1NFTlNPUlMJezB9CQkvKiBTZW5zb3IgYWRkcmVzc2VzCSovCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAJNzAKLSNkZWZpbmUgQ0ZHX0RUVF9MT1dfVEVNUAktMzAKLSNkZWZpbmUgQ0ZHX0RUVF9IWVNURVJFU0lTCTMKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAJNzAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTE9XX1RFTVAJLTMwCisjZGVmaW5lIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMJMwogCiAvKgogICogRGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKQEAgLTE4NSwxMyArMTg1LDEzIEBACiAvKiBVU0IgKi8KICNkZWZpbmUgQ09ORklHX1VTQl9PSENJX05FVwogI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0UKLSNkZWZpbmUgQ0ZHX09IQ0lfQkVfQ09OVFJPTExFUgorI2RlZmluZSBDT05GSUdfU1lTX09IQ0lfQkVfQ09OVFJPTExFUgogCi0jdW5kZWYgQ0ZHX1VTQl9PSENJX0JPQVJEX0lOSVQKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX0NQVV9JTklUCTEKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1JFR1NfQkFTRQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSB8IDB4MTAwMCkKLSNkZWZpbmUgQ0ZHX1VTQl9PSENJX1NMT1RfTkFNRQkicHBjNDQwIgotI2RlZmluZSBDRkdfVVNCX09IQ0lfTUFYX1JPT1RfUE9SVFMJMTUKKyN1bmRlZiBDT05GSUdfU1lTX1VTQl9PSENJX0JPQVJEX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9DUFVfSU5JVAkxCisjZGVmaW5lIENPTkZJR19TWVNfVVNCX09IQ0lfUkVHU19CQVNFCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSB8IDB4MTAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9TTE9UX05BTUUJInBwYzQ0MCIKKyNkZWZpbmUgQ09ORklHX1NZU19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUwkxNQogCiAvKiBDb21tZW50IHRoaXMgb3V0IHRvIGVuYWJsZSBVU0IgMS4xIGRldmljZSAqLwogI2RlZmluZSBVU0JfMl8wX0RFVklDRQpAQCAtMjI1LDI5ICsyMjUsMjkgQEAKICNkZWZpbmUgQ09ORklHX1BDSQkJCS8qIGluY2x1ZGUgcGNpIHN1cHBvcnQJICAgICAgICAqLwogI3VuZGVmICBDT05GSUdfUENJX1BOUAkJCS8qIGRvIChub3QpIHBjaSBwbHVnLWFuZC1wbGF5ICAgKi8KICNkZWZpbmUgQ09ORklHX1BDSV9TQ0FOX1NIT1cgICAgICAgICAgICAvKiBzaG93IHBjaSBkZXZpY2VzIG9uIHN0YXJ0dXAgICovCi0jZGVmaW5lIENGR19QQ0lfVEFSR0JBU0UgICAgICAgIDB4ODAwMDAwMDAgLyogUENJYWRkciBtYXBwZWQgdG8gQ0ZHX1BDSV9NRU1CQVNFKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UgICAgICAgIDB4ODAwMDAwMDAgLyogUENJYWRkciBtYXBwZWQgdG8gQ09ORklHX1NZU19QQ0lfTUVNQkFTRSovCiAKIC8qIEJvYXJkLXNwZWNpZmljIFBDSSAqLwotI2RlZmluZSBDRkdfUENJX1RBUkdFVF9JTklUCi0jZGVmaW5lIENGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfTUFTVEVSX0lOSVQKIAotI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwZTgJLyogQU1DQyAqLwotI2RlZmluZSBDRkdfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTBlOAkvKiBBTUNDICovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19JRCAgICAgICAweGNhZmUJLyogV2hhdGV2ZXIgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRXh0ZXJuYWwgQnVzIENvbnRyb2xsZXIgKEVCQykgU2V0dXAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSAkJQ0ZHX0ZMQVNIX0JBU0UKLSNkZWZpbmUgQ0ZHX0NQTEQJCTB4ODAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSAkJQ09ORklHX1NZU19GTEFTSF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfQ1BMRAkJMHg4MDAwMDAwMAogCiAvKiBNZW1vcnkgQmFuayAwIChOT1ItRkxBU0gpIGluaXRpYWxpemF0aW9uCQkJCQkqLwotI2RlZmluZSBDRkdfRUJDX1BCMEFQCQkweDAzMDE3MzAwCi0jZGVmaW5lIENGR19FQkNfUEIwQ1IJCShDRkdfRkxBU0ggfCAweGRhMDAwKQorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBBUAkJMHgwMzAxNzMwMAorI2RlZmluZSBDT05GSUdfU1lTX0VCQ19QQjBDUgkJKENPTkZJR19TWVNfRkxBU0ggfCAweGRhMDAwKQogCiAvKiBNZW1vcnkgQmFuayAyIChDUExEKSBpbml0aWFsaXphdGlvbgkJCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIyQVAJCTB4MDQ4MTQ1MDAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjJDUgkJKENGR19DUExEIHwgMHgxODAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQVAJCTB4MDQ4MTQ1MDAKKyNkZWZpbmUgQ09ORklHX1NZU19FQkNfUEIyQ1IJCShDT05GSUdfU1lTX0NQTEQgfCAweDE4MDAwKQogCi0jZGVmaW5lIENGR19CQ1NSNV9QQ0k2NkVOCTB4ODAKKyNkZWZpbmUgQ09ORklHX1NZU19CQ1NSNV9QQ0k2NkVOCTB4ODAKIAogI2VuZGlmCS8qIF9fQ09ORklHX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy95dWNjYS5oIGIvaW5jbHVkZS9jb25maWdzL3l1Y2NhLmgKaW5kZXggOTJkNDVkMC4uYjE2NWJkNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3l1Y2NhLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3l1Y2NhLmgKQEAgLTU4LDQ5ICs1OCw0OSBAQAogICogQmFzZSBhZGRyZXNzZXMgLS0gTm90ZSB0aGVzZSBhcmUgZWZmZWN0aXZlIGFkZHJlc3NlcyB3aGVyZSB0aGUKICAqIGFjdHVhbCByZXNvdXJjZXMgZ2V0IG1hcHBlZCAobm90IHBoeXNpY2FsIGFkZHJlc3NlcykKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19GTEFTSF9CQVNFCQkweGZmZjAwMDAwCS8qIHN0YXJ0IG9mIEZMQVNICSovCi0jZGVmaW5lIENGR19QRVJJUEhFUkFMX0JBU0UJMHhhMDAwMDAwMAkvKiBpbnRlcm5hbCBwZXJpcGhlcmFscwkqLwotI2RlZmluZSBDRkdfSVNSQU1fQkFTRQkJMHg5MDAwMDAwMAkvKiBpbnRlcm5hbCBTUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhmZmYwMDAwMAkvKiBzdGFydCBvZiBGTEFTSAkqLworI2RlZmluZSBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRQkweGEwMDAwMDAwCS8qIGludGVybmFsIHBlcmlwaGVyYWxzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSVNSQU1fQkFTRQkJMHg5MDAwMDAwMAkvKiBpbnRlcm5hbCBTUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBQQ0kgbWVtb3J5CSovCi0jZGVmaW5lIENGR19QQ0lfQkFTRQkJMHhkMDAwMDAwMAkvKiBpbnRlcm5hbCBQQ0kgcmVncwkqLwotI2RlZmluZSBDRkdfUENJX1RBUkdCQVNFCUNGR19QQ0lfTUVNQkFTRQorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9NRU1CQVNFCQkweDgwMDAwMDAwCS8qIG1hcHBlZCBQQ0kgbWVtb3J5CSovCisjZGVmaW5lIENPTkZJR19TWVNfUENJX0JBU0UJCTB4ZDAwMDAwMDAJLyogaW50ZXJuYWwgUENJIHJlZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0JBU0UJQ09ORklHX1NZU19QQ0lfTUVNQkFTRQogCi0jZGVmaW5lIENGR19QQ0lFX01FTUJBU0UJMHhiMDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KLSNkZWZpbmUgQ0ZHX1BDSUVfTUVNU0laRQkweDA4MDAwMDAwCS8qIHNtYWxsZXN0IGluY3IgZm9yIFBDSWUgcG9ydCAqLwotI2RlZmluZSBDRkdfUENJRV9CQVNFCQkweGUwMDAwMDAwCS8qIFBDSWUgVVRMIHJlZ3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX01FTUJBU0UJMHhiMDAwMDAwMAkvKiBtYXBwZWQgUENJZSBtZW1vcnkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX01FTVNJWkUJMHgwODAwMDAwMAkvKiBzbWFsbGVzdCBpbmNyIGZvciBQQ0llIHBvcnQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX0JBU0UJCTB4ZTAwMDAwMDAJLyogUENJZSBVVEwgcmVncyAqLwogCi0jZGVmaW5lIENGR19QQ0lFMF9DRkdCQVNFCTB4YzAwMDAwMDAKLSNkZWZpbmUgQ0ZHX1BDSUUxX0NGR0JBU0UJMHhjMTAwMDAwMAotI2RlZmluZSBDRkdfUENJRTJfQ0ZHQkFTRQkweGMyMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMF9YQ0ZHQkFTRQkweGMzMDAwMDAwCi0jZGVmaW5lIENGR19QQ0lFMV9YQ0ZHQkFTRQkweGMzMDAxMDAwCi0jZGVmaW5lIENGR19QQ0lFMl9YQ0ZHQkFTRQkweGMzMDAyMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfQ0ZHQkFTRQkweGMwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTFfQ0ZHQkFTRQkweGMxMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTJfQ0ZHQkFTRQkweGMyMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENJRTBfWENGR0JBU0UJMHhjMzAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSUUxX1hDRkdCQVNFCTB4YzMwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFMl9YQ0ZHQkFTRQkweGMzMDAyMDAwCiAKIC8qIGJhc2UgYWRkcmVzcyBvZiBpbmJvdW5kIFBDSWUgd2luZG93ICovCi0jZGVmaW5lIENGR19QQ0lFX0lOQk9VTkRfQkFTRQkweDAwMDAwMDA0MDAwMDAwMDBVTEwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lFX0lOQk9VTkRfQkFTRQkweDAwMDAwMDA0MDAwMDAwMDBVTEwKIAogLyogU3lzdGVtIFJBTSBtYXBwZWQgdG8gUENJIHNwYWNlICovCi0jZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9CVVMJQ0ZHX1NEUkFNX0JBU0UKLSNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ0ZHX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX0JVUwlDT05GSUdfU1lTX1NEUkFNX0JBU0UKKyNkZWZpbmUgQ09ORklHX1BDSV9TWVNfTUVNX1BIWVMJQ09ORklHX1NZU19TRFJBTV9CQVNFCiAjZGVmaW5lIENPTkZJR19QQ0lfU1lTX01FTV9TSVpFCSgxMDI0ICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgQ0ZHX0ZQR0FfQkFTRQkJMHhlMjAwMDAwMAkvKiBlcGxkCQkJKi8KLSNkZWZpbmUgQ0ZHX09QRVJfRkxBU0gJCTB4ZTcwMDAwMDAJLyogU1JBTSAtIE9QRVIgRmxhc2gJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX0JBU0UJCTB4ZTIwMDAwMDAJLyogZXBsZAkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfT1BFUl9GTEFTSAkJMHhlNzAwMDAwMAkvKiBTUkFNIC0gT1BFUiBGbGFzaAkqLwogCi0vKiAjZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIgMHgwODAwMDAwMCAqLworLyogI2RlZmluZSBDT05GSUdfU1lTX05WUkFNX0JBU0VfQUREUiAweDA4MDAwMDAwICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBJbml0aWFsIFJBTSAmIHN0YWNrIHBvaW50ZXIgKHBsYWNlZCBpbiBpbnRlcm5hbCBTUkFNKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX1RFTVBfU1RBQ0tfT0NNCTEKLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJQ0ZHX0lTUkFNX0JBU0UKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX0lTUkFNX0JBU0UJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLwotI2RlZmluZSBDRkdfSU5JVF9SQU1fRU5ECTB4MjAwMAkJLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0gKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4CQkvKiBudW0gYnl0ZXMgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfVEVNUF9TVEFDS19PQ00JMQorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJQ09ORklHX1NZU19JU1JBTV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX0lTUkFNX0JBU0UJLyogSW5pdGlhbCBSQU0gYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORAkweDIwMDAJCS8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNICovCisjZGVmaW5lIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRQkxMjgJCS8qIG51bSBieXRlcyBpbml0aWFsIGRhdGEgKi8KIAotI2RlZmluZSBDRkdfR0JMX0RBVEFfT0ZGU0VUCShDRkdfSU5JVF9SQU1fRU5EIC0gQ0ZHX0dCTF9EQVRBX1NJWkUpCi0jZGVmaW5lIENGR19QT1NUX1dPUkRfQUREUgkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDB4NCkKLSNkZWZpbmUgQ0ZHX0lOSVRfU1BfT0ZGU0VUCUNGR19QT1NUX1dPUkRfQUREUgorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVAkoQ09ORklHX1NZU19JTklUX1JBTV9FTkQgLSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIJKENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMHg0KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCUNPTkZJR19TWVNfUE9TVF9XT1JEX0FERFIKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKQEAgLTEwOCw4ICsxMDgsOCBAQAogI3VuZGVmIENPTkZJR19VQVJUMV9DT05TT0xFCiAKICN1bmRlZglDT05GSUdfU0VSSUFMX1NPRlRXQVJFX0ZJRk8KLSN1bmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSwotLyogI2RlZmluZSBDRkdfRVhUX1NFUklBTF9DTE9DSwkoMTg0MzIwMCAqIDYpICovIC8qIEV4dCBjbGsgQCAxMS4wNTkgTUh6ICovCisjdW5kZWYgQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCisvKiAjZGVmaW5lIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwkoMTg0MzIwMCAqIDYpICovIC8qIEV4dCBjbGsgQCAxMS4wNTkgTUh6ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEREUiBTRFJBTQpAQCAtMTIxLDIzICsxMjEsMjMgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEkyQwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSNkZWZpbmUgQ0ZHX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19TUEVFRAkJNDAwMDAwCS8qIEkyQyBzcGVlZCBhbmQgc2xhdmUgYWRkcmVzcwkqLwogCiAjZGVmaW5lIElJQzBfQk9PVFBST01fQUREUgkweDUwCiAjZGVmaW5lIElJQzBfQUxUX0JPT1RQUk9NX0FERFIJMHg1NAogCiAvKiBEb24ndCBwcm9iZSB0aGVzZSBhZGRycyAqLwotI2RlZmluZSBDRkdfSTJDX05PUFJPQkVTCXsweDUwLCAweDUyLCAweDUzLCAweDU0fQorI2RlZmluZSBDT05GSUdfU1lTX0kyQ19OT1BST0JFUwl7MHg1MCwgMHg1MiwgMHg1MywgMHg1NH0KIAogLyogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9FRVBST00pICovCi0vKiAjZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFIJMHg1MCAqLwkvKiBJMkMgYm9vdCBFRVBST00JCSovCi0jZGVmaW5lIENGR19JMkNfRUVQUk9NX0FERFJfTEVOCTIJLyogQnl0ZXMgb2YgYWRkcmVzcwkJKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19JMkNfRUVQUk9NX0FERFIJMHg1MCAqLwkvKiBJMkMgYm9vdCBFRVBST00JCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX0xFTgkyCS8qIEJ5dGVzIG9mIGFkZHJlc3MJCSovCiAvKiAjZW5kaWYgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRW52aXJvbm1lbnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0vKiAjZGVmaW5lIENGR19OVlJBTV9TSVpFCSgweDIwMDAgLSA4KSAqLwkvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19OVlJBTV9TSVpFCSgweDIwMDAgLSA4KSAqLwkvKiBOVlJBTSBzaXplKDhrKS0gUlRDIHJlZ3MgKi8KIAogI3VuZGVmICBDT05GSUdfRU5WX0lTX0lOX05WUkFNCQkvKiAuLi4gbm90IGluIE5WUkFNCQkqLwogI2RlZmluZQlDT05GSUdfRU5WX0lTX0lOX0ZMQVNICTEJLyogRW52aXJvbm1lbnQgdXNlcyBmbGFzaAkqLwpAQCAtMTc0LDI0ICsxNzQsMjQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIHJlbGF0ZWQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMwkvKiBudW1iZXIgb2YgYmFua3MJCSovCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfU0VDVAkyNTYJLyogc2VjdG9ycyBwZXIgZGV2aWNlCQkqLworI2RlZmluZSBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUwkzCS8qIG51bWJlciBvZiBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAkyNTYJLyogc2VjdG9ycyBwZXIgZGV2aWNlCQkqLwogCi0jdW5kZWYJQ0ZHX0ZMQVNIX0NIRUNLU1VNCi0jZGVmaW5lIENGR19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpICovCi0jZGVmaW5lIENGR19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCisjdW5kZWYJQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUCTUwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBXcml0ZSAoaW4gbXMpICovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIwCQkweDU1NTUKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0FERFIxCQkweDJhYWEKLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dPUkRfU0laRQl1bnNpZ25lZCBjaGFyCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQUREUjAJCTB4NTU1NQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0FERFIxCQkweDJhYWEKKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9XT1JEX1NJWkUJdW5zaWduZWQgY2hhcgogCi0jZGVmaW5lIENGR19GTEFTSF8yTkRfMTZCSVRfREVWCTEJLyogZXZiNDQwU1BlIGhhcyA4IGFuZCAxNmJpdCBkZXZpY2UgKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIXzJORF9BRERSCTB4ZTdjMDAwMDAgLyogZXZiNDQwU1BlIGhhcyA4IGFuZCAxNmJpdCBkZXZpY2UqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIXzJORF8xNkJJVF9ERVYJMQkvKiBldmI0NDBTUGUgaGFzIDggYW5kIDE2Yml0IGRldmljZSAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIXzJORF9BRERSCTB4ZTdjMDAwMDAgLyogZXZiNDQwU1BlIGhhcyA4IGFuZCAxNmJpdCBkZXZpY2UqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDEwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkqLwogI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCTB4ZmZmYTAwMDAKLS8qICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ0ZHX01PTklUT1JfQkFTRS1DT05GSUdfRU5WX1NFQ1RfU0laRSkgKi8KKy8qICNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoQ09ORklHX1NZU19NT05JVE9SX0JBU0UtQ09ORklHX0VOVl9TRUNUX1NJWkUpICovCiAjZGVmaW5lIENPTkZJR19FTlZfU0laRQkJMHgxMDAwMAkvKiBTaXplIG9mIEVudmlyb25tZW50IHZhcnMJKi8KICNlbmRpZiAvKiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDUsMTIgKzIwNSwxMiBAQAogI2RlZmluZSBDT05GSUdfUENJX0NPTkZJR19IT1NUX0JSSURHRQogCiAvKiBCb2FyZC1zcGVjaWZpYyBQQ0kgKi8KLSNkZWZpbmUgQ0ZHX1BDSV9UQVJHRVRfSU5JVAkJLyogbGV0IGJvYXJkIGluaXQgcGNpIHRhcmdldCAgICAqLwotI3VuZGVmCUNGR19QQ0lfTUFTVEVSX0lOSVQKKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfVEFSR0VUX0lOSVQJCS8qIGxldCBib2FyZCBpbml0IHBjaSB0YXJnZXQgICAgKi8KKyN1bmRlZglDT05GSUdfU1lTX1BDSV9NQVNURVJfSU5JVAogCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkvKiBJQk0JCQkJKi8KLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgMHhjYWZlCS8qIFdoYXRldmVyCQkJKi8KLS8qICNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfSUQJQ0ZHX1BDSV9TVUJTWVNfREVWSUNFSUQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX1ZFTkRPUklEIDB4MTAxNAkvKiBJQk0JCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4Y2FmZQkvKiBXaGF0ZXZlcgkJCSovCisvKiAjZGVmaW5lIENPTkZJR19TWVNfUENJX1NVQlNZU19JRAlDT05GSUdfU1lTX1BDSV9TVUJTWVNfREVWSUNFSUQgKi8KIAogLyoKICAqICBORVRXT1JLIFN1cHBvcnQgKFBDSSk6CmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvemV1cy5oIGIvaW5jbHVkZS9jb25maWdzL3pldXMuaAppbmRleCBhYmY2YmQzLi5iNzVlOGExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2NvbmZpZ3MvemV1cy5oCisrKyBiL2luY2x1ZGUvY29uZmlncy96ZXVzLmgKQEAgLTUxLDcgKzUxLDcgQEAKICNkZWZpbmUgQ09ORklHX0hBU19FVEgxCQkxCiAjZGVmaW5lIENPTkZJR19QSFkxX0FERFIJMHgxMQkvKiBFTUFDMSBQSFkgYWRkcmVzcwkJKi8KICNkZWZpbmUgQ09ORklHX05FVF9NVUxUSQkxCi0jZGVmaW5lIENGR19SWF9FVEhfQlVGRkVSCTE2CS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19SWF9FVEhfQlVGRkVSCTE2CS8qIE51bWJlciBvZiBldGhlcm5ldCByeCBidWZmZXJzICYgZGVzY3JpcHRvcnMgKi8KICNkZWZpbmUgQ09ORklHX1BIWV9SRVNFVAkxCiAjZGVmaW5lIENPTkZJR19QSFlfUkVTRVRfREVMQVkJMzAwCS8qIFBIWSBSRVNFVCByZWNvdmVyeSBkZWxheQkqLwogCkBAIC04NCwyMSArODQsMjEgQEAKICNkZWZpbmUgQ09ORklHX0NNRF9SRUdJTkZPCiAKIC8qIFBPU1Qgc3VwcG9ydCAqLwotI2RlZmluZSBDT05GSUdfUE9TVAkJKENGR19QT1NUX01FTU9SWSAgIHwgXAotCQkJCSBDRkdfUE9TVF9DUFUJICAgfCBcCi0JCQkJIENGR19QT1NUX0NBQ0hFCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9VQVJUCSAgIHwgXAotCQkJCSBDRkdfUE9TVF9FVEhFUikKKyNkZWZpbmUgQ09ORklHX1BPU1QJCShDT05GSUdfU1lTX1BPU1RfTUVNT1JZICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DUFUJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9DQUNIRQkgICB8IFwKKwkJCQkgQ09ORklHX1NZU19QT1NUX1VBUlQJICAgfCBcCisJCQkJIENPTkZJR19TWVNfUE9TVF9FVEhFUikKIAotI2RlZmluZSBDRkdfUE9TVF9FVEhFUl9FWFRfTE9PUEJBQ0sJLyogZXRoIFBPU1QgdXNpbmcgZXh0IGxvb3BhY2sgY29ubmVjdG9yCSovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9FVEhFUl9FWFRfTE9PUEJBQ0sJLyogZXRoIFBPU1QgdXNpbmcgZXh0IGxvb3BhY2sgY29ubmVjdG9yCSovCiAKIC8qIERlZmluZSBoZXJlIHRoZSBiYXNlLWFkZHJlc3NlcyBvZiB0aGUgVUFSVHMgdG8gdGVzdCBpbiBQT1NUICovCi0jZGVmaW5lIENGR19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0V9CisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFfQogCiAjZGVmaW5lIENPTkZJR19MT0dCVUZGRVIKLSNkZWZpbmUgQ0ZHX1BPU1RfQ0FDSEVfQUREUgkweDAwODAwMDAwIC8qIGZyZWUgdmlydHVhbCBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DQUNIRV9BRERSCTB4MDA4MDAwMDAgLyogZnJlZSB2aXJ0dWFsIGFkZHJlc3MJKi8KIAotI2RlZmluZSBDRkdfQ09OU09MRV9JU19JTl9FTlYgLyogT3RoZXJ3aXNlIGl0IGNhdGNoZXMgbG9nYnVmZmVyIGFzIG91dHB1dCAqLworI2RlZmluZSBDT05GSUdfU1lTX0NPTlNPTEVfSVNfSU5fRU5WIC8qIE90aGVyd2lzZSBpdCBjYXRjaGVzIGxvZ2J1ZmZlciBhcyBvdXRwdXQgKi8KIAogI3VuZGVmIENPTkZJR19XQVRDSERPRwkJCS8qIHdhdGNoZG9nIGRpc2FibGVkCQkqLwogCkBAIC0xMTIsNDggKzExMiw0OCBAQAogI2RlZmluZSBDT05GSUdfU0RSQU1fQkFOSzEJMQkvKiBpbml0IG9uYm9hcmQgU0RSQU0gYmFuayAxICovCiAKIC8qIFNEUkFNIHRpbWluZ3MgdXNlZCBpbiBkYXRhc2hlZXQgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0NMICAgICAgICAgICAgMwkvKiBDQVMgbGF0ZW5jeSAqLwotI2RlZmluZSBDRkdfU0RSQU1fdFJQICAgICAgICAgICAyMAkvKiBQUkVDSEFSR0UgY29tbWFuZCBwZXJpb2QgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX3RSQyAgICAgICAgICAgNjYJLyogQUNUSVZFLXRvLUFDVElWRSBjb21tYW5kIHBlcmlvZCAqLwotI2RlZmluZSBDRkdfU0RSQU1fdFJDRCAgICAgICAgICAyMAkvKiBBQ1RJVkUtdG8tUkVBRCBkZWxheSAqLwotI2RlZmluZSBDRkdfU0RSQU1fdFJGQwkJNjYJLyogQXV0byByZWZyZXNoIHBlcmlvZCAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX0NMICAgICAgICAgICAgMwkvKiBDQVMgbGF0ZW5jeSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSUCAgICAgICAgICAgMjAJLyogUFJFQ0hBUkdFIGNvbW1hbmQgcGVyaW9kICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJDICAgICAgICAgICA2NgkvKiBBQ1RJVkUtdG8tQUNUSVZFIGNvbW1hbmQgcGVyaW9kICovCisjZGVmaW5lIENPTkZJR19TWVNfU0RSQU1fdFJDRCAgICAgICAgICAyMAkvKiBBQ1RJVkUtdG8tUkVBRCBkZWxheSAqLworI2RlZmluZSBDT05GSUdfU1lTX1NEUkFNX3RSRkMJCTY2CS8qIEF1dG8gcmVmcmVzaCBwZXJpb2QgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU2VyaWFsIFBvcnQKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jdW5kZWYJQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sJCQkvKiBleHRlcm5hbCBzZXJpYWwgY2xvY2sgKi8KLSNkZWZpbmUgQ0ZHX0JBU0VfQkFVRAkJNjkxMjAwCisjdW5kZWYJQ09ORklHX1NZU19FWFRfU0VSSUFMX0NMT0NLCQkJLyogZXh0ZXJuYWwgc2VyaWFsIGNsb2NrICovCisjZGVmaW5lIENPTkZJR19TWVNfQkFTRV9CQVVECQk2OTEyMDAKICNkZWZpbmUgQ09ORklHX0JBVURSQVRFCQkxMTUyMDAKICNkZWZpbmUgQ09ORklHX1NFUklBTF9NVUxUSQogCiAvKiBUaGUgZm9sbG93aW5nIHRhYmxlIGluY2x1ZGVzIHRoZSBzdXBwb3J0ZWQgYmF1ZHJhdGVzICovCi0jZGVmaW5lIENGR19CQVVEUkFURV9UQUJMRQlcCisjZGVmaW5lIENPTkZJR19TWVNfQkFVRFJBVEVfVEFCTEUJXAogCXszMDAsIDYwMCwgMTIwMCwgMjQwMCwgNDgwMCwgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwLCAyMzA0MDB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE1pc2NlbGxhbmVvdXMgY29uZmlndXJhYmxlIG9wdGlvbnMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZGVmaW5lIENGR19MT05HSEVMUAkJCS8qIHVuZGVmIHRvIHNhdmUgbWVtb3J5CQkqLwotI2RlZmluZSBDRkdfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPTkdIRUxQCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCSAgICAgICAgIj0+ICIJLyogTW9uaXRvciBDb21tYW5kIFByb21wdAkqLwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9LR0RCKQotI2RlZmluZSBDRkdfQ0JTSVpFCSAgICAgICAgMTAyNAkvKiBDb25zb2xlIEkvTyBCdWZmZXIgU2l6ZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0NCU0laRQkgICAgICAgIDEwMjQJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbHNlCi0jZGVmaW5lIENGR19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19DQlNJWkUJICAgICAgICAyNTYJLyogQ29uc29sZSBJL08gQnVmZmVyIFNpemUJKi8KICNlbmRpZgotI2RlZmluZSBDRkdfUEJTSVpFICAgICAgICAgICAgICAoQ0ZHX0NCU0laRStzaXplb2YoQ0ZHX1BST01QVCkrMTYpIC8qIFByaW50IEJ1ZmZlciBTaXplICovCi0jZGVmaW5lIENGR19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KLSNkZWZpbmUgQ0ZHX0JBUkdTSVpFCSAgICAgICAgQ0ZHX0NCU0laRSAvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFICAgICAgICAgICAgICAoQ09ORklHX1NZU19DQlNJWkUrc2l6ZW9mKENPTkZJR19TWVNfUFJPTVBUKSsxNikgLyogUHJpbnQgQnVmZmVyIFNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhBUkdTCSAgICAgICAgMTYJLyogbWF4IG51bWJlciBvZiBjb21tYW5kIGFyZ3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CQVJHU0laRQkgICAgICAgIENPTkZJR19TWVNfQ0JTSVpFIC8qIEJvb3QgQXJndW1lbnQgQnVmZmVyIFNpemUJKi8KIAotI2RlZmluZSBDRkdfTUVNVEVTVF9TVEFSVAkweDA0MDAwMDAgLyogbWVtdGVzdCB3b3JrcyBvbgkJKi8KLSNkZWZpbmUgQ0ZHX01FTVRFU1RfRU5ECQkweDBDMDAwMDAgLyogNCAuLi4gMTIgTUIgaW4gRFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX01FTVRFU1RfU1RBUlQJMHgwNDAwMDAwIC8qIG1lbXRlc3Qgd29ya3Mgb24JCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9FTkQJCTB4MEMwMDAwMCAvKiA0IC4uLiAxMiBNQiBpbiBEUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkJMHgxMDAwMDAgIC8qIGRlZmF1bHQgbG9hZCBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCisjZGVmaW5lIENPTkZJR19TWVNfTE9BRF9BRERSCQkweDEwMDAwMCAgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FWFRCRElORk8JCTEJLyogVG8gdXNlIGV4dGVuZGVkIGJvYXJkX2ludG8gKGJkX3QpICovCiAKLSNkZWZpbmUgQ0ZHX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0haCQkgICAgICAgIDEwMDAJLyogZGVjcmVtZW50ZXIgZnJlcTogMSBtcyB0aWNrcwkqLwogCiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCi0jZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLworI2RlZmluZSBDT05GSUdfU1lTX0xPQURTX0JBVURfQ0hBTkdFCTEJLyogYWxsb3cgYmF1ZHJhdGUgY2hhbmdlCSovCiAKICNkZWZpbmUgQ09ORklHX0NNRExJTkVfRURJVElORwkxCS8qIGFkZCBjb21tYW5kIGxpbmUgaGlzdG9yeQkqLwogI2RlZmluZSBDT05GSUdfTE9PUFcgICAgICAgICAgICAxICAgICAgIC8qIGVuYWJsZSBsb29wdyBjb21tYW5kICAgICAgICAgKi8KQEAgLTE2NiwxNyArMTY2LDE3IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2RlZmluZSBDT05GSUdfSEFSRF9JMkMJCTEJCS8qIEkyQyB3aXRoIGhhcmR3YXJlIHN1cHBvcnQJKi8KICN1bmRlZglDT05GSUdfU09GVF9JMkMJCQkJLyogSTJDIGJpdC1iYW5nZWQJCSovCi0jZGVmaW5lIENGR19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCi0jZGVmaW5lIENGR19JMkNfU0xBVkUJCTB4N0YKKyNkZWZpbmUgQ09ORklHX1NZU19JMkNfU1BFRUQJCTQwMDAwMAkJLyogSTJDIHNwZWVkIGFuZCBzbGF2ZSBhZGRyZXNzCSovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1NMQVZFCQkweDdGCiAKIC8qIHRoZXNlIGFyZSBmb3IgdGhlIFNUIE0yNEMwMiAya2JpdCBzZXJpYWwgaTJjIGVlcHJvbSAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIGJhc2UgYWRkcmVzcyAqLwotI2RlZmluZSBDRkdfSTJDX0VFUFJPTV9BRERSX0xFTgkxCQkvKiBieXRlcyBvZiBhZGRyZXNzICovCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSCTB4NTAJCS8qIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBDT05GSUdfU1lTX0kyQ19FRVBST01fQUREUl9MRU4JMQkJLyogYnl0ZXMgb2YgYWRkcmVzcyAqLwogLyogbWFzayBvZiBhZGRyZXNzIGJpdHMgdGhhdCBvdmVyZmxvdyBpbnRvIHRoZSAiRUVQUk9NIGNoaXAgYWRkcmVzcyIgICAgKi8KLSNkZWZpbmUgQ0ZHX0kyQ19FRVBST01fQUREUl9PVkVSRkxPVwkweDA3CisjZGVmaW5lIENPTkZJR19TWVNfSTJDX0VFUFJPTV9BRERSX09WRVJGTE9XCTB4MDcKIAotI2RlZmluZSBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCS8qIDggYnl0ZSB3cml0ZSBwYWdlIHNpemUgKi8KLSNkZWZpbmUgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0RFTEFZX01TCTEwCS8qIGFuZCB0YWtlcyB1cCB0byAxMCBtc2VjICovCisjZGVmaW5lIENPTkZJR19TWVNfRUVQUk9NX1BBR0VfV1JJVEVfQklUUwkzCS8qIDggYnl0ZSB3cml0ZSBwYWdlIHNpemUgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19FRVBST01fUEFHRV9XUklURV9ERUxBWV9NUwkxMAkvKiBhbmQgdGFrZXMgdXAgdG8gMTAgbXNlYyAqLwogCiAvKgogICogVGhlIGxheW91dCBvZiB0aGUgSTJDIEVFUFJPTSwgdXNlZCBmb3IgYm9vdHN0cmFwIHNldHVwIGFuZCBmb3IgYm9hcmQtCkBAIC0xOTAsNDQgKzE5MCw0NCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhcnQgYWRkcmVzc2VzIGZvciB0aGUgZmluYWwgbWVtb3J5IGNvbmZpZ3VyYXRpb24KICAqIChTZXQgdXAgYnkgdGhlIHN0YXJ0dXAgY29kZSkKLSAqIFBsZWFzZSBub3RlIHRoYXQgQ0ZHX1NEUkFNX0JBU0UgX211c3RfIHN0YXJ0IGF0IDAKKyAqIFBsZWFzZSBub3RlIHRoYXQgQ09ORklHX1NZU19TRFJBTV9CQVNFIF9tdXN0XyBzdGFydCBhdCAwCiAgKi8KLSNkZWZpbmUgQ0ZHX1NEUkFNX0JBU0UJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0JBU0UJCTB4RkYwMDAwMDAKLSNkZWZpbmUgQ0ZHX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KLSNkZWZpbmUgQ0ZHX01BTExPQ19MRU4JCSgxMjggKiAxMDI0KQkvKiBSZXNlcnZlIDEyOCBrQiBmb3IgbWFsbG9jKCkJKi8KLSNkZWZpbmUgQ0ZHX01PTklUT1JfQkFTRQkoLUNGR19NT05JVE9SX0xFTikKKyNkZWZpbmUgQ09ORklHX1NZU19TRFJBTV9CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQkFTRQkJMHhGRjAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX01PTklUT1JfTEVOCQkoMjU2ICogMTAyNCkJLyogUmVzZXJ2ZSAyNTYga0IgZm9yIE1vbml0b3IJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQUxMT0NfTEVOCQkoMTI4ICogMTAyNCkJLyogUmVzZXJ2ZSAxMjgga0IgZm9yIG1hbGxvYygpCSovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFCSgtQ09ORklHX1NZU19NT05JVE9SX0xFTikKIAogLyoKICAqIEZvciBib290aW5nIExpbnV4LCB0aGUgYm9hcmQgaW5mbyBhbmQgY29tbWFuZCBsaW5lIGRhdGEKICAqIGhhdmUgdG8gYmUgaW4gdGhlIGZpcnN0IDggTUIgb2YgbWVtb3J5LCBzaW5jZSB0aGlzIGlzCiAgKiB0aGUgbWF4aW11bSBtYXBwZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAgKi8KLSNkZWZpbmUgQ0ZHX0JPT1RNQVBTWgkJKDggPDwgMjApCS8qIEluaXRpYWwgTWVtb3J5IG1hcCBmb3IgTGludXggKi8KKyNkZWZpbmUgQ09ORklHX1NZU19CT09UTUFQU1oJCSg4IDw8IDIwKQkvKiBJbml0aWFsIE1lbW9yeSBtYXAgZm9yIExpbnV4ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEZMQVNIIG9yZ2FuaXphdGlvbgogICovCi0jZGVmaW5lIENGR19GTEFTSF9DRkkJCQkJLyogVGhlIGZsYXNoIGlzIENGSSBjb21wYXRpYmxlCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfQ0ZJCQkJCS8qIFRoZSBmbGFzaCBpcyBDRkkgY29tcGF0aWJsZQkqLwogI2RlZmluZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgkJCS8qIFVzZSBjb21tb24gQ0ZJIGRyaXZlcgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9CQU5LU19MSVNUCXsgQ0ZHX0ZMQVNIX0JBU0UgfQorI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0JBTktTX0xJU1QJeyBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgfQogCi0jZGVmaW5lIENGR19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KLSNkZWZpbmUgQ0ZHX01BWF9GTEFTSF9TRUNUCTUxMgkvKiBtYXggbnVtYmVyIG9mIHNlY3RvcnMgb24gb25lIGNoaXAJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MJMQkvKiBtYXggbnVtYmVyIG9mIG1lbW9yeSBiYW5rcwkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVAk1MTIJLyogbWF4IG51bWJlciBvZiBzZWN0b3JzIG9uIG9uZSBjaGlwCSovCiAKLSNkZWZpbmUgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQJMTIwMDAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIEVyYXNlIChpbiBtcykJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQJNTAwCS8qIFRpbWVvdXQgZm9yIEZsYXNoIFdyaXRlIChpbiBtcykJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUCTEyMDAwMAkvKiBUaW1lb3V0IGZvciBGbGFzaCBFcmFzZSAoaW4gbXMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRkxBU0hfV1JJVEVfVE9VVAk1MDAJLyogVGltZW91dCBmb3IgRmxhc2ggV3JpdGUgKGluIG1zKQkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9VU0VfQlVGRkVSX1dSSVRFIDEJLyogdXNlIGJ1ZmZlcmVkIHdyaXRlcyAoMjB4IGZhc3RlcikJKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1VTRV9CVUZGRVJfV1JJVEUgMQkvKiB1c2UgYnVmZmVyZWQgd3JpdGVzICgyMHggZmFzdGVyKQkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04JMQkvKiB1c2UgaGFyZHdhcmUgZmxhc2ggcHJvdGVjdGlvbgkqLwogCi0jZGVmaW5lIENGR19GTEFTSF9FTVBUWV9JTkZPCQkvKiBwcmludCAnRScgZm9yIGVtcHR5IHNlY3RvciBvbiBmbGluZm8gKi8KLSNkZWZpbmUgQ0ZHX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaAkqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX0VNUFRZX0lORk8JCS8qIHByaW50ICdFJyBmb3IgZW1wdHkgc2VjdG9yIG9uIGZsaW5mbyAqLworI2RlZmluZSBDT05GSUdfU1lTX0ZMQVNIX1FVSUVUX1RFU1QJMQkvKiBkb24ndCB3YXJuIHVwb24gdW5rbm93biBmbGFzaAkqLwogCiAjaWZkZWYgQ09ORklHX0VOVl9JU19JTl9GTEFTSAogI2RlZmluZSBDT05GSUdfRU5WX1NFQ1RfU0laRQkweDIwMDAwCS8qIHNpemUgb2Ygb25lIGNvbXBsZXRlIHNlY3RvcgkJKi8KLSNkZWZpbmUgQ09ORklHX0VOVl9BRERSCQkoKC1DRkdfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQorI2RlZmluZSBDT05GSUdfRU5WX0FERFIJCSgoLUNPTkZJR19TWVNfTU9OSVRPUl9MRU4pLUNPTkZJR19FTlZfU0VDVF9TSVpFKQogI2RlZmluZQlDT05GSUdfRU5WX1NJWkUJCTB4MjAwMAkvKiBUb3RhbCBTaXplIG9mIEVudmlyb25tZW50IFNlY3RvcgkqLwogCiAvKiBBZGRyZXNzIGFuZCBzaXplIG9mIFJlZHVuZGFudCBFbnZpcm9ubWVudCBTZWN0b3IJKi8KQEAgLTIzOSwzMSArMjM5LDMxIEBACiAgKiBEZWZpbml0aW9ucyBmb3IgaW5pdGlhbCBzdGFjayBwb2ludGVyIGFuZCBkYXRhIGFyZWEgKGluIGRhdGEgY2FjaGUpCiAgKi8KIC8qIHVzZSBvbiBjaGlwIG1lbW9yeSAoT0NNKSBmb3IgdGVtcGVyYXJ5IHN0YWNrIHVudGlsIHNkcmFtIGlzIHRlc3RlZCAqLwotI2RlZmluZSBDRkdfVEVNUF9TVEFDS19PQ00JMQorI2RlZmluZSBDT05GSUdfU1lTX1RFTVBfU1RBQ0tfT0NNCTEKIAogLyogT24gQ2hpcCBNZW1vcnkgbG9jYXRpb24gKi8KLSNkZWZpbmUgQ0ZHX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAotI2RlZmluZSBDRkdfT0NNX0RBVEFfU0laRQkweDEwMDAKLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0FERFIJQ0ZHX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIE9DTQkJKi8KLSNkZWZpbmUgQ0ZHX0lOSVRfUkFNX0VORAlDRkdfT0NNX0RBVEFfU0laRSAvKiBFbmQgb2YgdXNlZCBhcmVhIGluIFJBTQkqLworI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX0FERFIJMHhGODAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX09DTV9EQVRBX1NJWkUJMHgxMDAwCisjZGVmaW5lIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUglDT05GSUdfU1lTX09DTV9EQVRBX0FERFIgLyogaW5zaWRlIG9mIE9DTQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19JTklUX1JBTV9FTkQJQ09ORklHX1NZU19PQ01fREFUQV9TSVpFIC8qIEVuZCBvZiB1c2VkIGFyZWEgaW4gUkFNCSovCiAKLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KLSNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVAkoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQJKENPTkZJR19TWVNfSU5JVF9SQU1fRU5EIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKQogLyogcmVzZXJ2ZSBzb21lIG1lbW9yeSBmb3IgUE9TVCBhbmQgQk9PVCBsaW1pdCBpbmZvICovCi0jZGVmaW5lIENGR19JTklUX1NQX09GRlNFVAkoQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0lOSVRfU1BfT0ZGU0VUCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDE2KQogCiAvKiBleHRyYSBkYXRhIGluIE9DTSAqLwotI2RlZmluZSBDRkdfUE9TVF9XT1JEX0FERFIJKENGR19HQkxfREFUQV9PRkZTRVQgLSA0KQotI2RlZmluZSBDRkdfUE9TVF9NQUdJQwkJKENGR19PQ01fREFUQV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDgpCi0jZGVmaW5lIENGR19QT1NUX1ZBTAkJKENGR19PQ01fREFUQV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVCAtIDEyKQorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfV09SRF9BRERSCShDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCAtIDQpCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9NQUdJQwkJKENPTkZJR19TWVNfT0NNX0RBVEFfQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gOCkKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1ZBTAkJKENPTkZJR19TWVNfT0NNX0RBVEFfQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUIC0gMTIpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIEV4dGVybmFsIEJ1cyBDb250cm9sbGVyIChFQkMpIFNldHVwCiAgKi8KIAogLyogTWVtb3J5IEJhbmsgMCAoRmxhc2ggMTZNKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjBBUAkJMHgwNTgxNTYwMAotI2RlZmluZSBDRkdfRUJDX1BCMENSCQkweEZGMDlBMDAwICAvKiBCQVM9MHhGRjAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQgICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMEFQCQkweDA1ODE1NjAwCisjZGVmaW5lIENPTkZJR19TWVNfRUJDX1BCMENSCQkweEZGMDlBMDAwICAvKiBCQVM9MHhGRjAsQlM9MTZNQixCVT1SL1csQlc9MTZiaXQgICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBHUElPIHNldHVwIChQUEM0MDVFUCBzcGVjaWZpYykKQEAgLTI3NywyMyArMjc3LDIzIEBACiAgKiBHUElPMFsyOC0yOV0gLSBVQVJUMSBkYXRhIHNpZ25hbCBpbnB1dC9vdXRwdXQKICAqIEdQSU8wWzMwLTMxXSAtIEVNQUMwIGFuZCBFTUFDMSByZWplY3QgcGFja2V0IGlucHV0cwogICovCi0jZGVmaW5lIENGR19HUElPMF9PU1JICQkweDE1NTU1NTUwCS8qIENoaXAgc2VsZWN0cyAqLwotI2RlZmluZSBDRkdfR1BJTzBfT1NSTAkJMHgwMDAwMDExMAkvKiBVQVJUX0RUUi1waW4gMjcgYWx0IG91dCAqLwotI2RlZmluZSBDRkdfR1BJTzBfSVNSMUgJCTB4MTAwMDAwNDEJLyogUGluIDIsIDEyIGlzIGlucHV0ICovCi0jZGVmaW5lIENGR19HUElPMF9JU1IxTAkJMHgxNTUwNTQ0MAkvKiBPVVQ6IExFRHMgMjIvMjM7IElOOiBwaW4xMiwyLCBOVkFMSUQjICovCi0jZGVmaW5lIENGR19HUElPMF9UU1JICQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UU1JMCQkweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUElPMF9UQ1IJCTB4QkZGNjgzMTcJLyogMy1zdGF0ZSBPVVQ6IDIyLzIzLzI5OyAxMiwyIGlzIG5vdCAzLXN0YXRlICovCi0jZGVmaW5lIENGR19HUElPMF9PRFIJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9PU1JICQkweDE1NTU1NTUwCS8qIENoaXAgc2VsZWN0cyAqLworI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX09TUkwJCTB4MDAwMDAxMTAJLyogVUFSVF9EVFItcGluIDI3IGFsdCBvdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxSAkJMHgxMDAwMDA0MQkvKiBQaW4gMiwgMTIgaXMgaW5wdXQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9JU1IxTAkJMHgxNTUwNTQ0MAkvKiBPVVQ6IExFRHMgMjIvMjM7IElOOiBwaW4xMiwyLCBOVkFMSUQjICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfVFNSSAkJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQSU8wX1RTUkwJCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUElPMF9UQ1IJCTB4QkZGNjgzMTcJLyogMy1zdGF0ZSBPVVQ6IDIyLzIzLzI5OyAxMiwyIGlzIG5vdCAzLXN0YXRlICovCisjZGVmaW5lIENPTkZJR19TWVNfR1BJTzBfT0RSCQkweDAwMDAwMDAwCiAKLSNkZWZpbmUgQ0ZHX0dQSU9fU1dfUkVTRVQJMQotI2RlZmluZSBDRkdfR1BJT19aRVVTX1BFCTEyCi0jZGVmaW5lIENGR19HUElPX0xFRF9SRUQJMjIKLSNkZWZpbmUgQ0ZHX0dQSU9fTEVEX0dSRUVOCTIzCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19TV19SRVNFVAkxCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19aRVVTX1BFCTEyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MRURfUkVECTIyCisjZGVmaW5lIENPTkZJR19TWVNfR1BJT19MRURfR1JFRU4JMjMKIAogLyogVGltZSBpbiBtaWxsaS1zZWNvbmRzICovCi0jZGVmaW5lIENGR19USU1FX1BPU1QJCTUwMDAKLSNkZWZpbmUgQ0ZHX1RJTUVfRkFDVE9SWV9SRVNFVAkxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVfUE9TVAkJNTAwMAorI2RlZmluZSBDT05GSUdfU1lTX1RJTUVfRkFDVE9SWV9SRVNFVAkxMDAwMAogCiAvKgogICogSW50ZXJuYWwgRGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29uZmlncy96eWxvbml0ZS5oIGIvaW5jbHVkZS9jb25maWdzL3p5bG9uaXRlLmgKaW5kZXggMTQ4MDc5Yy4uNTMzOTdkOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb25maWdzL3p5bG9uaXRlLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3p5bG9uaXRlLmgKQEAgLTUwLDggKzUwLDggQEAKIC8qCiAgKiBTaXplIG9mIG1hbGxvYygpIHBvb2wKICAqLwotI2RlZmluZSBDRkdfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQotI2RlZmluZSBDRkdfR0JMX0RBVEFfU0laRQkxMjgJLyogc2l6ZSBpbiBieXRlcyByZXNlcnZlZCBmb3IgaW5pdGlhbCBkYXRhICovCisjZGVmaW5lIENPTkZJR19TWVNfTUFMTE9DX0xFTgkgICAgKENPTkZJR19FTlZfU0laRSArIDEyOCoxMDI0KQorI2RlZmluZSBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUJMTI4CS8qIHNpemUgaW4gYnl0ZXMgcmVzZXJ2ZWQgZm9yIGluaXRpYWwgZGF0YSAqLwogCiAvKgogICogSGFyZHdhcmUgZHJpdmVycwpAQCAtMTIxLDM4ICsxMjEsMzggQEAKIC8qCiAgKiBNaXNjZWxsYW5lb3VzIGNvbmZpZ3VyYWJsZSBvcHRpb25zCiAgKi8KLSNkZWZpbmUgQ0ZHX0hVU0hfUEFSU0VSCQkxCi0jZGVmaW5lIENGR19QUk9NUFRfSFVTSF9QUzIJIj4gIgorI2RlZmluZSBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCQkxCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUX0hVU0hfUFMyCSI+ICIKIAotI2RlZmluZSBDRkdfTE9OR0hFTFAJCQkJLyogdW5kZWYgdG8gc2F2ZSBtZW1vcnkJCSovCi0jaWZkZWYgQ0ZHX0hVU0hfUEFSU0VSCi0jZGVmaW5lIENGR19QUk9NUFQJCSIkICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT05HSEVMUAkJCQkvKiB1bmRlZiB0byBzYXZlIG1lbW9yeQkJKi8KKyNpZmRlZiBDT05GSUdfU1lTX0hVU0hfUEFSU0VSCisjZGVmaW5lIENPTkZJR19TWVNfUFJPTVBUCQkiJCAiCQkvKiBNb25pdG9yIENvbW1hbmQgUHJvbXB0ICovCiAjZWxzZQotI2RlZmluZSBDRkdfUFJPTVBUCQkiPT4gIgkJLyogTW9uaXRvciBDb21tYW5kIFByb21wdCAqLworI2RlZmluZSBDT05GSUdfU1lTX1BST01QVAkJIj0+ICIJCS8qIE1vbml0b3IgQ29tbWFuZCBQcm9tcHQgKi8KICNlbmRpZgotI2RlZmluZSBDRkdfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19QQlNJWkUgKENGR19DQlNJWkUrc2l6ZW9mKENGR19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLwotI2RlZmluZSBDRkdfTUFYQVJHUwkJMTYJCS8qIG1heCBudW1iZXIgb2YgY29tbWFuZCBhcmdzCSovCi0jZGVmaW5lIENGR19CQVJHU0laRQkJQ0ZHX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCi0jZGVmaW5lIENGR19ERVZJQ0VfTlVMTERFVgkxCisjZGVmaW5lIENPTkZJR19TWVNfQ0JTSVpFCQkyNTYJCS8qIENvbnNvbGUgSS9PIEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfUEJTSVpFIChDT05GSUdfU1lTX0NCU0laRStzaXplb2YoQ09ORklHX1NZU19QUk9NUFQpKzE2KSAvKiBQcmludCBCdWZmZXIgU2l6ZSAqLworI2RlZmluZSBDT05GSUdfU1lTX01BWEFSR1MJCTE2CQkvKiBtYXggbnVtYmVyIG9mIGNvbW1hbmQgYXJncwkqLworI2RlZmluZSBDT05GSUdfU1lTX0JBUkdTSVpFCQlDT05GSUdfU1lTX0NCU0laRQkvKiBCb290IEFyZ3VtZW50IEJ1ZmZlciBTaXplCSovCisjZGVmaW5lIENPTkZJR19TWVNfREVWSUNFX05VTExERVYJMQogCi0jZGVmaW5lIENGR19NRU1URVNUX1NUQVJUCTB4OWMwMDAwMDAJLyogbWVtdGVzdCB3b3JrcyBvbgkqLwotI2RlZmluZSBDRkdfTUVNVEVTVF9FTkQJCTB4OWM0MDAwMDAJLyogNCAuLi4gOCBNQiBpbiBEUkFNCSovCisjZGVmaW5lIENPTkZJR19TWVNfTUVNVEVTVF9TVEFSVAkweDljMDAwMDAwCS8qIG1lbXRlc3Qgd29ya3Mgb24JKi8KKyNkZWZpbmUgQ09ORklHX1NZU19NRU1URVNUX0VORAkJMHg5YzQwMDAwMAkvKiA0IC4uLiA4IE1CIGluIERSQU0JKi8KIAotI3VuZGVmCUNGR19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCisjdW5kZWYJQ09ORklHX1NZU19DTEtTX0lOX0haCQkvKiBldmVyeXRoaW5nLCBpbmNsIGJvYXJkIGluZm8sIGluIEh6ICovCiAKLSNkZWZpbmUgQ0ZHX0xPQURfQUREUgkoQ0ZHX0RSQU1fQkFTRSArIDB4ODAwMCkgLyogZGVmYXVsdCBsb2FkIGFkZHJlc3MgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT0FEX0FERFIJKENPTkZJR19TWVNfRFJBTV9CQVNFICsgMHg4MDAwKSAvKiBkZWZhdWx0IGxvYWQgYWRkcmVzcyAqLwogCi0jZGVmaW5lIENGR19IWgkJCTMyNTAwMDAJCS8qIGluY3JlbWVudGVyIGZyZXE6IDMuMjUgTUh6ICovCisjZGVmaW5lIENPTkZJR19TWVNfSFoJCQkzMjUwMDAwCQkvKiBpbmNyZW1lbnRlciBmcmVxOiAzLjI1IE1IeiAqLwogCiAvKiBNb25haGFucyBDb3JlIEZyZXF1ZW5jeSAqLwotI2RlZmluZSBDRkdfTU9OQUhBTlNfUlVOX01PREVfT1NDX1JBVElPCQkxNiAvKiB2YWxpZCB2YWx1ZXM6IDgsIDE2LCAyNCwgMzEgKi8KLSNkZWZpbmUgQ0ZHX01PTkFIQU5TX1RVUkJPX1JVTl9NT0RFX1JBVElPCTEgIC8qIHZhbGlkIHZhbHVlczogMSwgMiAqLworI2RlZmluZSBDT05GSUdfU1lTX01PTkFIQU5TX1JVTl9NT0RFX09TQ19SQVRJTwkJMTYgLyogdmFsaWQgdmFsdWVzOiA4LCAxNiwgMjQsIDMxICovCisjZGVmaW5lIENPTkZJR19TWVNfTU9OQUhBTlNfVFVSQk9fUlVOX01PREVfUkFUSU8JMSAgLyogdmFsaWQgdmFsdWVzOiAxLCAyICovCiAKIAkJCQkJCS8qIHZhbGlkIGJhdWRyYXRlcyAqLwotI2RlZmluZSBDRkdfQkFVRFJBVEVfVEFCTEUJeyA5NjAwLCAxOTIwMCwgMzg0MDAsIDU3NjAwLCAxMTUyMDAgfQorI2RlZmluZSBDT05GSUdfU1lTX0JBVURSQVRFX1RBQkxFCXsgOTYwMCwgMTkyMDAsIDM4NDAwLCA1NzYwMCwgMTE1MjAwIH0KIAotLyogI2RlZmluZSBDRkdfTU1DX0JBU0UJCTB4RjAwMDAwMDAgKi8KKy8qICNkZWZpbmUgQ09ORklHX1NZU19NTUNfQkFTRQkJMHhGMDAwMDAwMCAqLwogCiAvKgogICogU3RhY2sgc2l6ZXMKQEAgLTE3OCwyNiArMTc4LDI2IEBACiAjZGVmaW5lIFBIWVNfU0RSQU1fNAkJMHhhYzAwMDAwMCAvKiBTRFJBTSBCYW5rICM0ICovCiAjZGVmaW5lIFBIWVNfU0RSQU1fNF9TSVpFCTB4MDAwMDAwMDAgLyogMCBNQiAqLwogCi0jZGVmaW5lIENGR19EUkFNX0JBU0UJCTB4ODAwMDAwMDAgLyogYXQgQ1MwICovCi0jZGVmaW5lIENGR19EUkFNX1NJWkUJCTB4MDQwMDAwMDAgLyogNjQgTUIgUmFtICovCisjZGVmaW5lIENPTkZJR19TWVNfRFJBTV9CQVNFCQkweDgwMDAwMDAwIC8qIGF0IENTMCAqLworI2RlZmluZSBDT05GSUdfU1lTX0RSQU1fU0laRQkJMHgwNDAwMDAwMCAvKiA2NCBNQiBSYW0gKi8KIAotI3VuZGVmIENGR19TS0lQX0RSQU1fU0NSVUIKKyN1bmRlZiBDT05GSUdfU1lTX1NLSVBfRFJBTV9TQ1JVQgogCiAKIC8qCiAgKiBOQU5EIEZsYXNoCiAgKi8KICNkZWZpbmUgQ09ORklHX05FV19OQU5EX0NPREUKLSNkZWZpbmUgQ0ZHX05BTkQwX0JBU0UJCTB4MAotI3VuZGVmIENGR19OQU5EMV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTkFORDBfQkFTRQkJMHgwCisjdW5kZWYgQ09ORklHX1NZU19OQU5EMV9CQVNFCiAKLSNkZWZpbmUgQ0ZHX05BTkRfQkFTRV9MSVNUCXsgQ0ZHX05BTkQwX0JBU0UgfQotI2RlZmluZSBDRkdfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX0JBU0VfTElTVAl7IENPTkZJR19TWVNfTkFORDBfQkFTRSB9CisjZGVmaW5lIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCTEJLyogTWF4IG51bWJlciBvZiBOQU5EIGRldmljZXMgKi8KIAogLyogbmFuZCB0aW1lb3V0IHZhbHVlcyAqLwotI2RlZmluZSBDRkdfTkFORF9QUk9HX0VSQVNFX1RPCTMwMDAKLSNkZWZpbmUgQ0ZHX05BTkRfT1RIRVJfVE8JMTAwCi0jZGVmaW5lIENGR19OQU5EX1NFTkRDTURfUkVUUlkJMworI2RlZmluZSBDT05GSUdfU1lTX05BTkRfUFJPR19FUkFTRV9UTwkzMDAwCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9PVEhFUl9UTwkxMDAKKyNkZWZpbmUgQ09ORklHX1NZU19OQU5EX1NFTkRDTURfUkVUUlkJMwogI3VuZGVmIE5BTkRfQUxMT1dfRVJBU0VfQUxMCS8qIEFsbG93IGVyYXNpbmcgYmFkIGJsb2NrcyAtIGRvbid0IHVzZSAqLwogCiAvKiBOQU5EIFRpbWluZyBQYXJhbWV0ZXJzIChpbiBucykgKi8KQEAgLTIxNCw5ICsyMTQsOSBAQAogI2RlZmluZSBOQU5EX1RJTUlOR190QVIJCTEwCiAKIC8qIE5BTkQgZGVidWdnaW5nICovCi0jZGVmaW5lIENGR19ERkNfREVCVUcxIC8qIHVzZWZ1bGwgKi8KLSN1bmRlZiBDRkdfREZDX0RFQlVHMiAgLyogbm9pc3kgKi8KLSN1bmRlZiBDRkdfREZDX0RFQlVHMyAgLyogZXh0cmVtbHkgbm9pc3kgICovCisjZGVmaW5lIENPTkZJR19TWVNfREZDX0RFQlVHMSAvKiB1c2VmdWxsICovCisjdW5kZWYgQ09ORklHX1NZU19ERkNfREVCVUcyICAvKiBub2lzeSAqLworI3VuZGVmIENPTkZJR19TWVNfREZDX0RFQlVHMyAgLyogZXh0cmVtbHkgbm9pc3kgICovCiAKICNkZWZpbmUgQ09ORklHX01URF9ERUJVRwogI2RlZmluZSBDT05GSUdfTVREX0RFQlVHX1ZFUkJPU0UgMQpAQCAtMjI5LDcgKzIyOSw3IEBACiAjZGVmaW5lIE5BTkRfTUFYX0ZMT09SUwkJMQogI2RlZmluZSBOQU5EX01BWF9DSElQUwkJMQogCi0jZGVmaW5lIENGR19OT19GTEFTSAkJMQorI2RlZmluZSBDT05GSUdfU1lTX05PX0ZMQVNICQkxCiAKICNkZWZpbmUgQ09ORklHX0VOVl9JU19JTl9OQU5ECTEKICNkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQJCTB4NDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZGF0YWZsYXNoLmggYi9pbmNsdWRlL2RhdGFmbGFzaC5oCmluZGV4IGRlMDQxMzkuLjYzYjNiZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZGF0YWZsYXNoLmgKKysrIGIvaW5jbHVkZS9kYXRhZmxhc2guaApAQCAtNDAsNyArNDAsNyBAQAogLypudW1iZXIgb2YgcHJvdGVjdGVkIGFyZWEqLwogI2RlZmluZSBOQl9EQVRBRkxBU0hfQVJFQQkJNQogCi0jaWZkZWYgQ0ZHX05PX0ZMQVNICisjaWZkZWYgQ09ORklHX1NZU19OT19GTEFTSAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiByZXR1cm4gY29kZXMgZnJvbSBmbGFzaF93cml0ZSgpOgpAQCAtNjYsNyArNjYsNyBAQAogICogU2V0IEVudmlyb25tZW50IGFjY29yZGluZyB0byBsYWJlbDoKICAqLwogIyBkZWZpbmUJRkxBR19TRVRFTlYJCTB4ODAKLSNlbmRpZiAvKiBDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX05PX0ZMQVNIICovCiAKIC8qZGVmaW5lIHRoZSBhcmVhIHN0cnVjdHVyZSovCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC0yMTMsNyArMjEzLDcgQEAKIGV4dGVybiB2b2lkIGRhdGFmbGFzaF9wZXJyb3IgKGludCBlcnIpOwogZXh0ZXJuIHZvaWQgQVQ5MUZfRGF0YWZsYXNoU2V0RW52ICh2b2lkKTsKIAotZXh0ZXJuIHN0cnVjdCBkYXRhZmxhc2hfYWRkciBjc1tDRkdfTUFYX0RBVEFGTEFTSF9CQU5LU107CitleHRlcm4gc3RydWN0IGRhdGFmbGFzaF9hZGRyIGNzW0NPTkZJR19TWVNfTUFYX0RBVEFGTEFTSF9CQU5LU107CiBleHRlcm4gZGF0YWZsYXNoX3Byb3RlY3RfdCBhcmVhX2xpc3RbTkJfREFUQUZMQVNIX0FSRUFdOwogZXh0ZXJuIEFUOTFTX0RBVEFGTEFTSF9JTkZPIGRhdGFmbGFzaF9pbmZvW107CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHR0LmggYi9pbmNsdWRlL2R0dC5oCmluZGV4IDBjOGVlNzYuLjM5OWI2NGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHR0LmgKKysrIGIvaW5jbHVkZS9kdHQuaApAQCAtMzEsNiArMzEsNyBAQAogICAgIGRlZmluZWQoQ09ORklHX0RUVF9BRFQ3NDYwKQl8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfRFRUX0RTMTYyMSkJfHwgXAogICAgIGRlZmluZWQoQ09ORklHX0RUVF9EUzE3NzUpCXx8IFwKKyAgICBkZWZpbmVkKENPTkZJR19EVFRfTE02MykJfHwgXAogICAgIGRlZmluZWQoQ09ORklHX0RUVF9MTTczKQl8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfRFRUX0xNNzUpCXx8IFwKICAgICBkZWZpbmVkKENPTkZJR19EVFRfTE04MSkKQEAgLTQyLDEyICs0MywxMiBAQAogI2RlZmluZSBEVFRfSU5EVVNUUklBTF9NQVhfVEVNUAk4NQkJLyogLTQwIC0gKzg1IEMgKi8KICNkZWZpbmUgRFRUX0FVVE9NT1RJVkVfTUFYX1RFTVAJMTA1CQkvKiAtNDAgLSArMTA1IEMgKi8KIAotI2lmbmRlZiBDRkdfRFRUX01BWF9URU1QCi0jZGVmaW5lIENGR19EVFRfTUFYX1RFTVAgRFRUX0NPTU1FUkNJQUxfTUFYX1RFTVAKKyNpZm5kZWYgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfTUFYX1RFTVAgRFRUX0NPTU1FUkNJQUxfTUFYX1RFTVAKICNlbmRpZgogCi0jaWZuZGVmIENGR19EVFRfSFlTVEVSRVNJUwotI2RlZmluZSBDRkdfRFRUX0hZU1RFUkVTSVMJNQkJLyogNSBDICovCisjaWZuZGVmIENPTkZJR19TWVNfRFRUX0hZU1RFUkVTSVMKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfSFlTVEVSRVNJUwk1CQkvKiA1IEMgKi8KICNlbmRpZgogI2VuZGlmIC8qIENPTkZJR19EVFRfQURNMTAyMSAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Vudmlyb25tZW50LmggYi9pbmNsdWRlL2Vudmlyb25tZW50LmgKaW5kZXggMTQ3OWViNi4uZWE2YjRkMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9lbnZpcm9ubWVudC5oCisrKyBiL2luY2x1ZGUvZW52aXJvbm1lbnQuaApAQCAtMzksMTMgKzM5LDEzIEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fRkxBU0gpCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9BRERSCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSCShDRkdfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVQpCiAjIGVuZGlmCiAjIGlmbmRlZiAgQ09ORklHX0VOVl9PRkZTRVQKLSMgIGRlZmluZSBDT05GSUdfRU5WX09GRlNFVCAoQ09ORklHX0VOVl9BRERSIC0gQ0ZHX0ZMQVNIX0JBU0UpCisjICBkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQgKENPTkZJR19FTlZfQUREUiAtIENPTkZJR19TWVNfRkxBU0hfQkFTRSkKICMgZW5kaWYKICMgaWYgIWRlZmluZWQoQ09ORklHX0VOVl9BRERSX1JFRFVORCkgJiYgZGVmaW5lZChDT05GSUdfRU5WX09GRlNFVF9SRURVTkQpCi0jICBkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVF9SRURVTkQpCisjICBkZWZpbmUgQ09ORklHX0VOVl9BRERSX1JFRFVORAkoQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5EKQogIyBlbmRpZgogIyBpZiBkZWZpbmVkKENPTkZJR19FTlZfU0VDVF9TSVpFKSB8fCBkZWZpbmVkKENPTkZJR19FTlZfU0laRSkKICMgIGlmbmRlZiAgQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTYwLDEyICs2MCwxMiBAQAogIyBpZiBkZWZpbmVkKENPTkZJR19FTlZfQUREUl9SRURVTkQpICYmICFkZWZpbmVkKENPTkZJR19FTlZfU0laRV9SRURVTkQpCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKICMgZW5kaWYKLSMgaWYgKENPTkZJR19FTlZfQUREUiA+PSBDRkdfTU9OSVRPUl9CQVNFKSAmJiBcCi0gICAgIChDT05GSUdfRU5WX0FERFIrQ09ORklHX0VOVl9TSVpFKSA8PSAoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikKKyMgaWYgKENPTkZJR19FTlZfQUREUiA+PSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgJiYgXAorICAgICAoQ09ORklHX0VOVl9BRERSK0NPTkZJR19FTlZfU0laRSkgPD0gKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikKICMgIGRlZmluZSBFTlZfSVNfRU1CRURERUQJMQogIyBlbmRpZgogIyBpZiBkZWZpbmVkKENPTkZJR19FTlZfQUREUl9SRURVTkQpIHx8IGRlZmluZWQoQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5EKQotIyAgZGVmaW5lIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQJMQorIyAgZGVmaW5lIENPTkZJR19TWVNfUkVEVU5EQU5EX0VOVklST05NRU5UCTEKICMgZW5kaWYKICNlbmRpZgkvKiBDT05GSUdfRU5WX0lTX0lOX0ZMQVNIICovCiAKQEAgLTc3LDcgKzc3LDcgQEAKICMgIGVycm9yICJOZWVkIHRvIGRlZmluZSBDT05GSUdfRU5WX1NJWkUgd2hlbiB1c2luZyBDT05GSUdfRU5WX0lTX0lOX05BTkQiCiAjIGVuZGlmCiAjIGlmZGVmIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORAotIyAgZGVmaW5lIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQKKyMgIGRlZmluZSBDT05GSUdfU1lTX1JFRFVOREFORF9FTlZJUk9OTUVOVAogIyBlbmRpZgogIyBpZmRlZiBDT05GSUdfRU5WX0lTX0VNQkVEREVECiAjICBkZWZpbmUgRU5WX0lTX0VNQkVEREVECTEKQEAgLTkwLDcgKzkwLDcgQEAKICMgaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNlbmRpZgogCi0jaWZkZWYgQ0ZHX1JFRFVOREFORF9FTlZJUk9OTUVOVAorI2lmZGVmIENPTkZJR19TWVNfUkVEVU5EQU5EX0VOVklST05NRU5UCiAjIGRlZmluZSBFTlZfSEVBREVSX1NJWkUJKHNpemVvZih1aW50MzJfdCkgKyAxKQogI2Vsc2UKICMgZGVmaW5lIEVOVl9IRUFERVJfU0laRQkoc2l6ZW9mKHVpbnQzMl90KSkKQEAgLTEwMSw3ICsxMDEsNyBAQAogCiB0eXBlZGVmCXN0cnVjdCBlbnZpcm9ubWVudF9zIHsKIAl1aW50MzJfdAljcmM7CQkvKiBDUkMzMiBvdmVyIGRhdGEgYnl0ZXMJKi8KLSNpZmRlZiBDRkdfUkVEVU5EQU5EX0VOVklST05NRU5UCisjaWZkZWYgQ09ORklHX1NZU19SRURVTkRBTkRfRU5WSVJPTk1FTlQKIAl1bnNpZ25lZCBjaGFyCWZsYWdzOwkJLyogYWN0aXZlL29ic29sZXRlIGZsYWdzCSovCiAjZW5kaWYKIAl1bnNpZ25lZCBjaGFyCWRhdGFbRU5WX1NJWkVdOyAvKiBFbnZpcm9ubWVudCBkYXRhCQkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9mbGFzaC5oIGIvaW5jbHVkZS9mbGFzaC5oCmluZGV4IGFmOGE3YzAuLmE2ZTkxYjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZmxhc2guaAorKysgYi9pbmNsdWRlL2ZsYXNoLmgKQEAgLTI0LDcgKzI0LDcgQEAKICNpZm5kZWYgX0ZMQVNIX0hfCiAjZGVmaW5lIF9GTEFTSF9IXwogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBGTEFTSCBJbmZvOiBjb250YWlucyBjaGlwIHNwZWNpZmljIGRhdGEsIHBlciBGTEFTSCBiYW5rCiAgKi8KQEAgLTMzLDkgKzMzLDkgQEAKIAl1bG9uZwlzaXplOwkJCS8qIHRvdGFsIGJhbmsgc2l6ZSBpbiBieXRlcwkJKi8KIAl1c2hvcnQJc2VjdG9yX2NvdW50OwkJLyogbnVtYmVyIG9mIGVyYXNlIHVuaXRzCQkqLwogCXVsb25nCWZsYXNoX2lkOwkJLyogY29tYmluZWQgZGV2aWNlICYgbWFudWZhY3R1cmVyIGNvZGUJKi8KLQl1bG9uZwlzdGFydFtDRkdfTUFYX0ZMQVNIX1NFQ1RdOyAgIC8qIHBoeXNpY2FsIHNlY3RvciBzdGFydCBhZGRyZXNzZXMgKi8KLQl1Y2hhcglwcm90ZWN0W0NGR19NQVhfRkxBU0hfU0VDVF07IC8qIHNlY3RvciBwcm90ZWN0aW9uIHN0YXR1cwkqLwotI2lmZGVmIENGR19GTEFTSF9DRkkKKwl1bG9uZwlzdGFydFtDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUXTsgICAvKiBwaHlzaWNhbCBzZWN0b3Igc3RhcnQgYWRkcmVzc2VzICovCisJdWNoYXIJcHJvdGVjdFtDT05GSUdfU1lTX01BWF9GTEFTSF9TRUNUXTsgLyogc2VjdG9yIHByb3RlY3Rpb24gc3RhdHVzCSovCisjaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DRkkKIAl1Y2hhcglwb3J0d2lkdGg7CQkvKiB0aGUgd2lkdGggb2YgdGhlIHBvcnQJCSovCiAJdWNoYXIJY2hpcHdpZHRoOwkJLyogdGhlIHdpZHRoIG9mIHRoZSBjaGlwCQkqLwogCXVzaG9ydAlidWZmZXJfc2l6ZTsJCS8qICMgb2YgYnl0ZXMgaW4gd3JpdGUgYnVmZmVyCQkqLwpAQCAtOTEsNiArOTEsNyBAQAogZXh0ZXJuIGludCBmbGFzaF9lcmFzZQkoZmxhc2hfaW5mb190ICosIGludCwgaW50KTsKIGV4dGVybiBpbnQgZmxhc2hfc2VjdF9lcmFzZSAodWxvbmcgYWRkcl9maXJzdCwgdWxvbmcgYWRkcl9sYXN0KTsKIGV4dGVybiBpbnQgZmxhc2hfc2VjdF9wcm90ZWN0IChpbnQgZmxhZywgdWxvbmcgYWRkcl9maXJzdCwgdWxvbmcgYWRkcl9sYXN0KTsKK2V4dGVybiBpbnQgZmxhc2hfc2VjdF9yb3VuZGIgKHVsb25nICphZGRyKTsKIAogLyogY29tbW9uL2ZsYXNoLmMgKi8KIGV4dGVybiB2b2lkIGZsYXNoX3Byb3RlY3QgKGludCBmbGFnLCB1bG9uZyBmcm9tLCB1bG9uZyB0bywgZmxhc2hfaW5mb190ICppbmZvKTsKQEAgLTk5LDExICsxMDAsMTEgQEAKIGV4dGVybiBpbnQgd3JpdGVfYnVmZiAoZmxhc2hfaW5mb190ICppbmZvLCB1Y2hhciAqc3JjLCB1bG9uZyBhZGRyLCB1bG9uZyBjbnQpOwogCiAvKiBib2FyZC8/L2ZsYXNoLmMgKi8KLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogZXh0ZXJuIGludCBmbGFzaF9yZWFsX3Byb3RlY3QoZmxhc2hfaW5mb190ICppbmZvLCBsb25nIHNlY3RvciwgaW50IHByb3QpOwogZXh0ZXJuIHZvaWQgZmxhc2hfcmVhZF91c2VyX3NlcmlhbChmbGFzaF9pbmZvX3QgKiBpbmZvLCB2b2lkICogYnVmZmVyLCBpbnQgb2Zmc2V0LCBpbnQgbGVuKTsKIGV4dGVybiB2b2lkIGZsYXNoX3JlYWRfZmFjdG9yeV9zZXJpYWwoZmxhc2hfaW5mb190ICogaW5mbywgdm9pZCAqIGJ1ZmZlciwgaW50IG9mZnNldCwgaW50IGxlbik7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAogI2lmZGVmIENPTkZJR19GTEFTSF9DRklfTEVHQUNZCiBleHRlcm4gdWxvbmcgYm9hcmRfZmxhc2hfZ2V0X2xlZ2FjeSh1bG9uZyBiYXNlLCBpbnQgYmFua251bSwgZmxhc2hfaW5mb190ICppbmZvKTsKQEAgLTQ4NSw2ICs0ODYsNiBAQAogI2RlZmluZSBGTEFTSF9FUkFTRV9USU1FT1VUCTEyMDAwMAkvKiB0aW1lb3V0IGZvciBlcmFzaW5nIGluIG1zCQkqLwogI2RlZmluZSBGTEFTSF9XUklURV9USU1FT1VUCTUwMAkvKiB0aW1lb3V0IGZvciB3cml0ZXMgIGluIG1zCQkqLwogCi0jZW5kaWYgLyogIUNGR19OT19GTEFTSCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX05PX0ZMQVNIICovCiAKICNlbmRpZiAvKiBfRkxBU0hfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZnBnYS5oIGIvaW5jbHVkZS9mcGdhLmgKaW5kZXggNTJkOTNiMS4uYTQ4Yjg5YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9mcGdhLmgKKysrIGIvaW5jbHVkZS9mcGdhLmgKQEAgLTQwLDEzICs0MCwxMyBAQAogI2VuZGlmCiAKIC8qIENPTkZJR19GUEdBIGJpdCBhc3NpZ25tZW50cyAqLwotI2RlZmluZSBDRkdfRlBHQV9NQU4oeCkJCSh4KQotI2RlZmluZSBDRkdfRlBHQV9ERVYoeCkJCSgoeCkgPDwgOCApCi0jZGVmaW5lIENGR19GUEdBX0lGKHgpCQkoKHgpIDw8IDE2ICkKKyNkZWZpbmUgQ09ORklHX1NZU19GUEdBX01BTih4KQkJKHgpCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9ERVYoeCkJCSgoeCkgPDwgOCApCisjZGVmaW5lIENPTkZJR19TWVNfRlBHQV9JRih4KQkJKCh4KSA8PCAxNiApCiAKIC8qIEZQR0EgTWFudWZhY3R1cmVyIGJpdHMgaW4gQ09ORklHX0ZQR0EgKi8KLSNkZWZpbmUgQ0ZHX0ZQR0FfWElMSU5YCQlDRkdfRlBHQV9NQU4oIDB4MSApCi0jZGVmaW5lIENGR19GUEdBX0FMVEVSQQkJQ0ZHX0ZQR0FfTUFOKCAweDIgKQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfWElMSU5YCQlDT05GSUdfU1lTX0ZQR0FfTUFOKCAweDEgKQorI2RlZmluZSBDT05GSUdfU1lTX0ZQR0FfQUxURVJBCQlDT05GSUdfU1lTX0ZQR0FfTUFOKCAweDIgKQogCiAKIC8qIGZwZ2FfeHh4eCBmdW5jdGlvbiByZXR1cm4gdmFsdWUgZGVmaW5pdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ2FsaWxlby9jb3JlLmggYi9pbmNsdWRlL2dhbGlsZW8vY29yZS5oCmluZGV4IDQ5ZjRkZDIuLmMyNzc1MDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ2FsaWxlby9jb3JlLmgKKysrIGIvaW5jbHVkZS9nYWxpbGVvL2NvcmUuaApAQCAtMjMsMTMgKzIzLDEzIEBACiAjZGVmaW5lIEdUXzY0MjYwCTAgIC8qIGluY2x1ZGVzIGJvdGggNjQyNjBBIGFuZCA2NDI2MEIgKi8KICNkZWZpbmUgR1RfNjQyNjEJMQogCi0jaWYgKENGR19HVF82NDI2eCA9PSBHVF82NDI2MCkKKyNpZiAoQ09ORklHX1NZU19HVF82NDI2eCA9PSBHVF82NDI2MCkKICNpZmRlZiBDT05GSUdfRVRIRVJfUE9SVF9NSUkKICNkZWZpbmUgR0FMX0VUSF9ERVZTIDIKICNlbHNlCiAjZGVmaW5lIEdBTF9FVEhfREVWUyAzCiAjZW5kaWYKLSNlbGlmIChDRkdfR1RfNjQyNnggPT0gR1RfNjQyNjEpCisjZWxpZiAoQ09ORklHX1NZU19HVF82NDI2eCA9PSBHVF82NDI2MSkKICNkZWZpbmUgR0FMX0VUSF9ERVZTIDIKICNlbHNlCiAjZGVmaW5lIEdBTF9FVEhfREVWUyAzCS8qIGRlZmF1bHQgdG8gYSA2NDI2MCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9odXNoLmggYi9pbmNsdWRlL2h1c2guaAppbmRleCAyMGU0OGRiLi4wODA1ZmYzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2h1c2guaAorKysgYi9pbmNsdWRlL2h1c2guaApAQCAtMzIsNCArMzIsMTAgQEAKIGV4dGVybiBpbnQgcGFyc2Vfc3RyaW5nX291dGVyKGNoYXIgKiwgaW50KTsKIGV4dGVybiBpbnQgcGFyc2VfZmlsZV9vdXRlcih2b2lkKTsKIAoraW50IHNldF9sb2NhbF92YXIoY29uc3QgY2hhciAqcywgaW50IGZsZ19leHBvcnQpOwordm9pZCB1bnNldF9sb2NhbF92YXIoY29uc3QgY2hhciAqbmFtZSk7CisKKyNpZiBkZWZpbmVkKENPTkZJR19IVVNIX0lOSVRfVkFSKQorZXh0ZXJuIGludCBodXNoX2luaXRfdmFyICh2b2lkKTsKKyNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2kyYy5oIGIvaW5jbHVkZS9pMmMuaAppbmRleCBhNTFjMTY0Li44ZDZmODY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2kyYy5oCisrKyBiL2luY2x1ZGUvaTJjLmgKQEAgLTQ3LDM1ICs0Nyw2NyBAQAogI2RlZmluZSBJMkNfUlhUWF9MRU4JMTI4CS8qIG1heGltdW0gdHgvcnggYnVmZmVyIGxlbmd0aCAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfSTJDX01VTFRJX0JVUykKLSNkZWZpbmUgQ0ZHX01BWF9JMkNfQlVTCQkyCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0kyQ19CVVMJCTIKICNkZWZpbmUgSTJDX0dFVF9CVVMoKQkJaTJjX2dldF9idXNfbnVtKCkKICNkZWZpbmUgSTJDX1NFVF9CVVMoYSkJCWkyY19zZXRfYnVzX251bShhKQogI2Vsc2UKLSNkZWZpbmUgQ0ZHX01BWF9JMkNfQlVTCQkxCisjZGVmaW5lIENPTkZJR19TWVNfTUFYX0kyQ19CVVMJCTEKICNkZWZpbmUgSTJDX0dFVF9CVVMoKQkJMAogI2RlZmluZSBJMkNfU0VUX0JVUyhhKQogI2VuZGlmCiAKIC8qIGRlZmluZSB0aGUgSTJDIGJ1cyBudW1iZXIgZm9yIFJUQyBhbmQgRFRUIGlmIG5vdCBhbHJlYWR5IGRvbmUgKi8KLSNpZiAhZGVmaW5lZChDRkdfUlRDX0JVU19OVU0pCi0jZGVmaW5lIENGR19SVENfQlVTX05VTQkJMAorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUlRDX0JVU19OVU0pCisjZGVmaW5lIENPTkZJR19TWVNfUlRDX0JVU19OVU0JCTAKICNlbmRpZgotI2lmICFkZWZpbmVkKENGR19EVFRfQlVTX05VTSkKLSNkZWZpbmUgQ0ZHX0RUVF9CVVNfTlVNCQkwCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19EVFRfQlVTX05VTSkKKyNkZWZpbmUgQ09ORklHX1NZU19EVFRfQlVTX05VTQkJMAogI2VuZGlmCi0jaWYgIWRlZmluZWQoQ0ZHX1NQRF9CVVNfTlVNKQotI2RlZmluZSBDRkdfU1BEX0JVU19OVU0JCTAKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1NQRF9CVVNfTlVNKQorI2RlZmluZSBDT05GSUdfU1lTX1NQRF9CVVNfTlVNCQkwCiAjZW5kaWYKIAorI2lmbmRlZiBJMkNfU09GVF9ERUNMQVJBVElPTlMKKyMgaWYgZGVmaW5lZChDT05GSUdfTVBDODI2MCkKKyMgIGRlZmluZSBJMkNfU09GVF9ERUNMQVJBVElPTlMgdm9sYXRpbGUgaW9wb3J0X3QgKmlvcCA9IGlvcG9ydF9hZGRyKChpbW1hcF90ICopQ09ORklHX1NZU19JTU1SLCBJMkNfUE9SVCk7CisjIGVsaWYgZGVmaW5lZChDT05GSUdfOHh4KQorIyAgZGVmaW5lIEkyQ19TT0ZUX0RFQ0xBUkFUSU9OUwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKilDT05GSUdfU1lTX0lNTVI7CisjIGVsc2UKKyMgIGRlZmluZSBJMkNfU09GVF9ERUNMQVJBVElPTlMKKyMgZW5kaWYKKyNlbmRpZgogLyoKICAqIEluaXRpYWxpemF0aW9uLCBtdXN0IGJlIGNhbGxlZCBvbmNlIG9uIHN0YXJ0IHVwLCBtYXkgYmUgY2FsbGVkCiAgKiByZXBlYXRlZGx5IHRvIGNoYW5nZSB0aGUgc3BlZWQgYW5kIHNsYXZlIGFkZHJlc3Nlcy4KICAqLwogdm9pZCBpMmNfaW5pdChpbnQgc3BlZWQsIGludCBzbGF2ZWFkZHIpOwotI2lmZGVmIENGR19JMkNfSU5JVF9CT0FSRAorI2lmZGVmIENPTkZJR19TWVNfSTJDX0lOSVRfQk9BUkQKIHZvaWQgaTJjX2luaXRfYm9hcmQodm9pZCk7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoQ09ORklHX0kyQ19NVVgpCisKK3R5cGVkZWYgc3RydWN0IF9tdXggeworCXVjaGFyCWNoaXA7CisJdWNoYXIJY2hhbm5lbDsKKwljaGFyCSpuYW1lOworCXN0cnVjdCBfbXV4CSpuZXh0OworfSBJMkNfTVVYOworCit0eXBlZGVmIHN0cnVjdCBfbXV4X2RldmljZSB7CisJaW50CWJ1c2lkOworCUkyQ19NVVgJKm11eDsJLyogTGlzdCBvZiBtdXhlcywgdG8gcmVhY2ggdGhlIGRldmljZSAqLworCXN0cnVjdCBfbXV4X2RldmljZQkqbmV4dDsKK30gSTJDX01VWF9ERVZJQ0U7CisKK2ludAlpMmNfbXV4X2FkZF9kZXZpY2UoSTJDX01VWF9ERVZJQ0UgKmRldik7CisKK0kyQ19NVVhfREVWSUNFCSppMmNfbXV4X3NlYXJjaF9kZXZpY2UoaW50IGlkKTsKK0kyQ19NVVhfREVWSUNFICppMmNfbXV4X2lkZW50X211eHN0cmluZyAodWNoYXIgKmJ1Zik7CitpbnQgaTJ4X211eF9zZWxlY3RfbXV4KGludCBidXMpOworaW50IGkyY19tdXhfaWRlbnRfbXV4c3RyaW5nX2YgKHVjaGFyICpidWYpOworI2VuZGlmCisKIC8qCiAgKiBQcm9iZSB0aGUgZ2l2ZW4gSTJDIGNoaXAgYWRkcmVzcy4gIFJldHVybnMgMCBpZiBhIGNoaXAgcmVzcG9uZGVkLAogICogbm90IDAgb24gZmFpbHVyZS4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvaTgwNDIuaCBiL2luY2x1ZGUvaTgwNDIuaAppbmRleCBmNzcyMzlmLi4xMzk1Mjg5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2k4MDQyLmgKKysrIGIvaW5jbHVkZS9pODA0Mi5oCkBAIC0zNSw5ICszNSw5IEBACiAKIC8qIGRlZmluZXMgKi8KIAotI2RlZmluZSBJODA0Ml9EQVRBX1JFRyAgICAgIChDRkdfSVNBX0lPICsgMHgwMDYwKSAgICAvKiBrZXlib2FyZCBpL28gYnVmZmVyICovCi0jZGVmaW5lIEk4MDQyX1NUQVRVU19SRUcgICAgKENGR19JU0FfSU8gKyAweDAwNjQpICAgIC8qIGtleWJvYXJkIHN0YXR1cyByZWFkICovCi0jZGVmaW5lIEk4MDQyX0NPTU1BTkRfUkVHICAgKENGR19JU0FfSU8gKyAweDAwNjQpICAgIC8qIGtleWJvYXJkIGN0cmwgd3JpdGUgKi8KKyNkZWZpbmUgSTgwNDJfREFUQV9SRUcgICAgICAoQ09ORklHX1NZU19JU0FfSU8gKyAweDAwNjApICAgIC8qIGtleWJvYXJkIGkvbyBidWZmZXIgKi8KKyNkZWZpbmUgSTgwNDJfU1RBVFVTX1JFRyAgICAoQ09ORklHX1NZU19JU0FfSU8gKyAweDAwNjQpICAgIC8qIGtleWJvYXJkIHN0YXR1cyByZWFkICovCisjZGVmaW5lIEk4MDQyX0NPTU1BTkRfUkVHICAgKENPTkZJR19TWVNfSVNBX0lPICsgMHgwMDY0KSAgICAvKiBrZXlib2FyZCBjdHJsIHdyaXRlICovCiAKICNkZWZpbmUgS0JEX1VTICAgICAgICAgICAgICAwICAgICAgICAvKiBkZWZhdWx0IFVTIGxheW91dCAqLwogI2RlZmluZSBLQkRfR0VSICAgICAgICAgICAgIDEgICAgICAgIC8qIGdlcm1hbiBsYXlvdXQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvaWRlLmggYi9pbmNsdWRlL2lkZS5oCmluZGV4IDIyMmY0ZjguLmRkYjk1NzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaWRlLmgKKysrIGIvaW5jbHVkZS9pZGUuaApAQCAtMjYsNyArMjYsNyBAQAogCiAjZGVmaW5lCUlERV9CVVMoZGV2KQkoZGV2ID4+IDEpCiAKLSNkZWZpbmUJQVRBX0NVUlJfQkFTRShkZXYpCShDRkdfQVRBX0JBU0VfQUREUitpZGVfYnVzX29mZnNldFtJREVfQlVTKGRldildKQorI2RlZmluZQlBVEFfQ1VSUl9CQVNFKGRldikJKENPTkZJR19TWVNfQVRBX0JBU0VfQUREUitpZGVfYnVzX29mZnNldFtJREVfQlVTKGRldildKQogCiAjaWZkZWYgQ09ORklHX0lERV9MRUQKIApAQCAtNDAsNyArNDAsNyBAQAogCiAjZW5kaWYgLyogQ09ORklHX0lERV9MRUQgKi8KIAotI2lmZGVmIENGR182NEJJVF9MQkEKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX0xCQQogdHlwZWRlZiB1aW50NjRfdCBsYmFpbnRfdDsKICNlbHNlCiB0eXBlZGVmIHVsb25nIGxiYWludF90OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sY2QuaCBiL2luY2x1ZGUvbGNkLmgKaW5kZXggNDRhYzhlZi4uMTVhZmZiOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9sY2QuaAorKysgYi9pbmNsdWRlL2xjZC5oCkBAIC0yMTEsOCArMjExLDggQEAKICAqICB0aGUgTENEIGNvbnRyb2xsZXIgYW5kIG1lbW9yeSBhbGxvY2F0aW9uLiBTb21lb25lIGhhcyB0byBrbm93IHdoYXQKICAqICBpcyBjb25uZWN0ZWQsIGFzIHdlIGNhbid0IGF1dG9kZXRlY3QgYW55dGhpbmcuCiAgKi8KLSNkZWZpbmUgQ0ZHX0hJR0gJMAkvKiBQaW5zIGFyZSBhY3RpdmUgaGlnaAkJCSovCi0jZGVmaW5lIENGR19MT1cJCTEJLyogUGlucyBhcmUgYWN0aXZlIGxvdwkJCSovCisjZGVmaW5lIENPTkZJR19TWVNfSElHSAkwCS8qIFBpbnMgYXJlIGFjdGl2ZSBoaWdoCQkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19MT1cJCTEJLyogUGlucyBhcmUgYWN0aXZlIGxvdwkJCSovCiAKICNkZWZpbmUgTENEX01PTk9DSFJPTUUJMAogI2RlZmluZSBMQ0RfQ09MT1IyCTEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGg3YTQweC5oIGIvaW5jbHVkZS9saDdhNDB4LmgKaW5kZXggYzg5N2E3Yy4uMDlhNDYzYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saDdhNDB4LmgKKysrIGIvaW5jbHVkZS9saDdhNDB4LmgKQEAgLTI3Myw3ICsyNzMsNyBAQAogI2RlZmluZSBMSDdBNDBYX0dQSU9JTlRfUFRSICAgICAoKGxoN2E0MHhfZ3Bpb2ludF90KikgTEg3QTQwWF9HUElPSU5UX0JBU0UpCiAKIC8qIEVtYmVkZGVkIFNSQU0gKi8KLSNkZWZpbmUgQ0ZHX1NSQU1fQkFTRQkoMHhCMDAwMDAwMCkKLSNkZWZpbmUgQ0ZHX1NSQU1fU0laRQkoODAqMTAyNCkJLyogODBrQiAqLworI2RlZmluZSBDT05GSUdfU1lTX1NSQU1fQkFTRQkoMHhCMDAwMDAwMCkKKyNkZWZpbmUgQ09ORklHX1NZU19TUkFNX1NJWkUJKDgwKjEwMjQpCS8qIDgwa0IgKi8KIAogI2VuZGlmICAvKiBfX0xIN0E0MFhfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3JidHJlZS5oIGIvaW5jbHVkZS9saW51eC9yYnRyZWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmYyOGUwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9yYnRyZWUuaApAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAgUmVkIEJsYWNrIFRyZWVzCisgIChDKSAxOTk5ICBBbmRyZWEgQXJjYW5nZWxpIDxhbmRyZWFAc3VzZS5kZT4KKworICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorCisgIGxpbnV4L2luY2x1ZGUvbGludXgvcmJ0cmVlLmgKKworICBUbyB1c2UgcmJ0cmVlcyB5b3UnbGwgaGF2ZSB0byBpbXBsZW1lbnQgeW91ciBvd24gaW5zZXJ0IGFuZCBzZWFyY2ggY29yZXMuCisgIFRoaXMgd2lsbCBhdm9pZCB1cyB0byB1c2UgY2FsbGJhY2tzIGFuZCB0byBkcm9wIGRyYW1tYXRpY2FsbHkgcGVyZm9ybWFuY2VzLgorICBJIGtub3cgaXQncyBub3QgdGhlIGNsZWFuZXIgd2F5LCAgYnV0IGluIEMgKG5vdCBpbiBDKyspIHRvIGdldAorICBwZXJmb3JtYW5jZXMgYW5kIGdlbmVyaWNpdHkuLi4KKworICBTb21lIGV4YW1wbGUgb2YgaW5zZXJ0IGFuZCBzZWFyY2ggZm9sbG93cyBoZXJlLiBUaGUgc2VhcmNoIGlzIGEgcGxhaW4KKyAgbm9ybWFsIHNlYXJjaCBvdmVyIGFuIG9yZGVyZWQgdHJlZS4gVGhlIGluc2VydCBpbnN0ZWFkIG11c3QgYmUgaW1wbGVtZW50ZWQKKyAgaW50IHR3byBzdGVwczogYXMgZmlyc3QgdGhpbmcgdGhlIGNvZGUgbXVzdCBpbnNlcnQgdGhlIGVsZW1lbnQgaW4KKyAgb3JkZXIgYXMgYSByZWQgbGVhZiBpbiB0aGUgdHJlZSwgdGhlbiB0aGUgc3VwcG9ydCBsaWJyYXJ5IGZ1bmN0aW9uCisgIHJiX2luc2VydF9jb2xvcigpIG11c3QgYmUgY2FsbGVkLiBTdWNoIGZ1bmN0aW9uIHdpbGwgZG8gdGhlCisgIG5vdCB0cml2aWFsIHdvcmsgdG8gcmViYWxhbmNlIHRoZSByYnRyZWUgaWYgbmVjZXNzYXJ5LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqIHJiX3NlYXJjaF9wYWdlX2NhY2hlKHN0cnVjdCBpbm9kZSAqIGlub2RlLAorCQkJCQkJIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoreworCXN0cnVjdCByYl9ub2RlICogbiA9IGlub2RlLT5pX3JiX3BhZ2VfY2FjaGUucmJfbm9kZTsKKwlzdHJ1Y3QgcGFnZSAqIHBhZ2U7CisKKwl3aGlsZSAobikKKwl7CisJCXBhZ2UgPSByYl9lbnRyeShuLCBzdHJ1Y3QgcGFnZSwgcmJfcGFnZV9jYWNoZSk7CisKKwkJaWYgKG9mZnNldCA8IHBhZ2UtPm9mZnNldCkKKwkJCW4gPSBuLT5yYl9sZWZ0OworCQllbHNlIGlmIChvZmZzZXQgPiBwYWdlLT5vZmZzZXQpCisJCQluID0gbi0+cmJfcmlnaHQ7CisJCWVsc2UKKwkJCXJldHVybiBwYWdlOworCX0KKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqIF9fcmJfaW5zZXJ0X3BhZ2VfY2FjaGUoc3RydWN0IGlub2RlICogaW5vZGUsCisJCQkJCQkgICB1bnNpZ25lZCBsb25nIG9mZnNldCwKKwkJCQkJCSAgIHN0cnVjdCByYl9ub2RlICogbm9kZSkKK3sKKwlzdHJ1Y3QgcmJfbm9kZSAqKiBwID0gJmlub2RlLT5pX3JiX3BhZ2VfY2FjaGUucmJfbm9kZTsKKwlzdHJ1Y3QgcmJfbm9kZSAqIHBhcmVudCA9IE5VTEw7CisJc3RydWN0IHBhZ2UgKiBwYWdlOworCisJd2hpbGUgKCpwKQorCXsKKwkJcGFyZW50ID0gKnA7CisJCXBhZ2UgPSByYl9lbnRyeShwYXJlbnQsIHN0cnVjdCBwYWdlLCByYl9wYWdlX2NhY2hlKTsKKworCQlpZiAob2Zmc2V0IDwgcGFnZS0+b2Zmc2V0KQorCQkJcCA9ICYoKnApLT5yYl9sZWZ0OworCQllbHNlIGlmIChvZmZzZXQgPiBwYWdlLT5vZmZzZXQpCisJCQlwID0gJigqcCktPnJiX3JpZ2h0OworCQllbHNlCisJCQlyZXR1cm4gcGFnZTsKKwl9CisKKwlyYl9saW5rX25vZGUobm9kZSwgcGFyZW50LCBwKTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICogcmJfaW5zZXJ0X3BhZ2VfY2FjaGUoc3RydWN0IGlub2RlICogaW5vZGUsCisJCQkJCQkgdW5zaWduZWQgbG9uZyBvZmZzZXQsCisJCQkJCQkgc3RydWN0IHJiX25vZGUgKiBub2RlKQoreworCXN0cnVjdCBwYWdlICogcmV0OworCWlmICgocmV0ID0gX19yYl9pbnNlcnRfcGFnZV9jYWNoZShpbm9kZSwgb2Zmc2V0LCBub2RlKSkpCisJCWdvdG8gb3V0OworCXJiX2luc2VydF9jb2xvcihub2RlLCAmaW5vZGUtPmlfcmJfcGFnZV9jYWNoZSk7Cisgb3V0OgorCXJldHVybiByZXQ7Cit9CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKworI2lmbmRlZglfTElOVVhfUkJUUkVFX0gKKyNkZWZpbmUJX0xJTlVYX1JCVFJFRV9ICisKKyNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KKworc3RydWN0IHJiX25vZGUKK3sKKwl1bnNpZ25lZCBsb25nICByYl9wYXJlbnRfY29sb3I7CisjZGVmaW5lCVJCX1JFRAkJMAorI2RlZmluZQlSQl9CTEFDSwkxCisJc3RydWN0IHJiX25vZGUgKnJiX3JpZ2h0OworCXN0cnVjdCByYl9ub2RlICpyYl9sZWZ0OworfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKHNpemVvZihsb25nKSkpKTsKKyAgICAvKiBUaGUgYWxpZ25tZW50IG1pZ2h0IHNlZW0gcG9pbnRsZXNzLCBidXQgYWxsZWdlZGx5IENSSVMgbmVlZHMgaXQgKi8KKworc3RydWN0IHJiX3Jvb3QKK3sKKwlzdHJ1Y3QgcmJfbm9kZSAqcmJfbm9kZTsKK307CisKKworI2RlZmluZSByYl9wYXJlbnQocikgICAoKHN0cnVjdCByYl9ub2RlICopKChyKS0+cmJfcGFyZW50X2NvbG9yICYgfjMpKQorI2RlZmluZSByYl9jb2xvcihyKSAgICgociktPnJiX3BhcmVudF9jb2xvciAmIDEpCisjZGVmaW5lIHJiX2lzX3JlZChyKSAgICghcmJfY29sb3IocikpCisjZGVmaW5lIHJiX2lzX2JsYWNrKHIpIHJiX2NvbG9yKHIpCisjZGVmaW5lIHJiX3NldF9yZWQocikgIGRvIHsgKHIpLT5yYl9wYXJlbnRfY29sb3IgJj0gfjE7IH0gd2hpbGUgKDApCisjZGVmaW5lIHJiX3NldF9ibGFjayhyKSAgZG8geyAociktPnJiX3BhcmVudF9jb2xvciB8PSAxOyB9IHdoaWxlICgwKQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmJfc2V0X3BhcmVudChzdHJ1Y3QgcmJfbm9kZSAqcmIsIHN0cnVjdCByYl9ub2RlICpwKQoreworCXJiLT5yYl9wYXJlbnRfY29sb3IgPSAocmItPnJiX3BhcmVudF9jb2xvciAmIDMpIHwgKHVuc2lnbmVkIGxvbmcpcDsKK30KK3N0YXRpYyBpbmxpbmUgdm9pZCByYl9zZXRfY29sb3Ioc3RydWN0IHJiX25vZGUgKnJiLCBpbnQgY29sb3IpCit7CisJcmItPnJiX3BhcmVudF9jb2xvciA9IChyYi0+cmJfcGFyZW50X2NvbG9yICYgfjEpIHwgY29sb3I7Cit9CisKKyNkZWZpbmUgUkJfUk9PVAkoc3RydWN0IHJiX3Jvb3QpIHsgTlVMTCwgfQorI2RlZmluZQlyYl9lbnRyeShwdHIsIHR5cGUsIG1lbWJlcikgY29udGFpbmVyX29mKHB0ciwgdHlwZSwgbWVtYmVyKQorCisjZGVmaW5lIFJCX0VNUFRZX1JPT1Qocm9vdCkJKChyb290KS0+cmJfbm9kZSA9PSBOVUxMKQorI2RlZmluZSBSQl9FTVBUWV9OT0RFKG5vZGUpCShyYl9wYXJlbnQobm9kZSkgPT0gbm9kZSkKKyNkZWZpbmUgUkJfQ0xFQVJfTk9ERShub2RlKQkocmJfc2V0X3BhcmVudChub2RlLCBub2RlKSkKKworZXh0ZXJuIHZvaWQgcmJfaW5zZXJ0X2NvbG9yKHN0cnVjdCByYl9ub2RlICosIHN0cnVjdCByYl9yb290ICopOworZXh0ZXJuIHZvaWQgcmJfZXJhc2Uoc3RydWN0IHJiX25vZGUgKiwgc3RydWN0IHJiX3Jvb3QgKik7CisKKy8qIEZpbmQgbG9naWNhbCBuZXh0IGFuZCBwcmV2aW91cyBub2RlcyBpbiBhIHRyZWUgKi8KK2V4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfbmV4dChzdHJ1Y3QgcmJfbm9kZSAqKTsKK2V4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfcHJldihzdHJ1Y3QgcmJfbm9kZSAqKTsKK2V4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfZmlyc3Qoc3RydWN0IHJiX3Jvb3QgKik7CitleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX2xhc3Qoc3RydWN0IHJiX3Jvb3QgKik7CisKKy8qIEZhc3QgcmVwbGFjZW1lbnQgb2YgYSBzaW5nbGUgbm9kZSB3aXRob3V0IHJlbW92ZS9yZWJhbGFuY2UvYWRkL3JlYmFsYW5jZSAqLworZXh0ZXJuIHZvaWQgcmJfcmVwbGFjZV9ub2RlKHN0cnVjdCByYl9ub2RlICp2aWN0aW0sIHN0cnVjdCByYl9ub2RlICpuZXcsCisJCQkgICAgc3RydWN0IHJiX3Jvb3QgKnJvb3QpOworCitzdGF0aWMgaW5saW5lIHZvaWQgcmJfbGlua19ub2RlKHN0cnVjdCByYl9ub2RlICogbm9kZSwgc3RydWN0IHJiX25vZGUgKiBwYXJlbnQsCisJCQkJc3RydWN0IHJiX25vZGUgKiogcmJfbGluaykKK3sKKwlub2RlLT5yYl9wYXJlbnRfY29sb3IgPSAodW5zaWduZWQgbG9uZyApcGFyZW50OworCW5vZGUtPnJiX2xlZnQgPSBub2RlLT5yYl9yaWdodCA9IE5VTEw7CisKKwkqcmJfbGluayA9IG5vZGU7Cit9CisKKyNlbmRpZgkvKiBfTElOVVhfUkJUUkVFX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWlpcGh5LmggYi9pbmNsdWRlL21paXBoeS5oCmluZGV4IDU1MThhMGEuLjMyZjBhNjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWlpcGh5LmgKKysrIGIvaW5jbHVkZS9taWlwaHkuaApAQCAtNDIsNyArNDIsNyBAQAogaW50IG1paXBoeV9zcGVlZCAoY2hhciAqZGV2bmFtZSwgdW5zaWduZWQgY2hhciBhZGRyKTsKIGludCBtaWlwaHlfZHVwbGV4IChjaGFyICpkZXZuYW1lLCB1bnNpZ25lZCBjaGFyIGFkZHIpOwogaW50IG1paXBoeV9pc18xMDAwYmFzZV94IChjaGFyICpkZXZuYW1lLCB1bnNpZ25lZCBjaGFyIGFkZHIpOwotI2lmZGVmIENGR19GQVVMVF9FQ0hPX0xJTktfRE9XTgorI2lmZGVmIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04KIGludCBtaWlwaHlfbGluayAoY2hhciAqZGV2bmFtZSwgdW5zaWduZWQgY2hhciBhZGRyKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL21rNDh0NTkuaCBiL2luY2x1ZGUvbWs0OHQ1OS5oCmluZGV4IGE0NDU5YzAuLmUyMTNmYjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWs0OHQ1OS5oCisrKyBiL2luY2x1ZGUvbWs0OHQ1OS5oCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpZiBkZWZpbmVkKENPTkZJR19SVENfTUs0OFQ1OSkgJiYgZGVmaW5lZChDT05GSUdfQ01EX0RBVEUpCiAKLSNkZWZpbmUgUlRDX1BPUlRfQUREUjAJCUNGR19JU0FfSU8gKyAgMHg3MAorI2RlZmluZSBSVENfUE9SVF9BRERSMAkJQ09ORklHX1NZU19JU0FfSU8gKyAgMHg3MAogI2RlZmluZSBSVENfUE9SVF9BRERSMQkJUlRDX1BPUlRfQUREUjAgKyAgMHgxCi0jZGVmaW5lIFJUQ19QT1JUX0RBVEEJCUNGR19JU0FfSU8gKyAgMHg3NgorI2RlZmluZSBSVENfUE9SVF9EQVRBCQlDT05GSUdfU1lTX0lTQV9JTyArICAweDc2CiAKIC8qIFJUQyBPZmZzZXRzICovCiAjZGVmaW5lIFJUQ19TRUNPTkRTICAgICAgICAgICAgIDB4MUZGOQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tcGMxMDYuaCBiL2luY2x1ZGUvbXBjMTA2LmgKaW5kZXggMTBlZDBmNC4uZWY1YTk1ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tcGMxMDYuaAorKysgYi9pbmNsdWRlL21wYzEwNi5oCkBAIC0zNSw3ICszNSw3IEBACiAgKi8KICNkZWZpbmUJTVBDMTA2X1JFRwkJCTB4ODAwMDAwMDAKIAotI2lmZGVmIENGR19BRERSRVNTX01BUF9BCisjaWZkZWYgQ09ORklHX1NZU19BRERSRVNTX01BUF9BCiAjZGVmaW5lIE1QQzEwNl9SRUdfQUREUgkJCTB4ODAwMDBjZjgKICNkZWZpbmUJTVBDMTA2X1JFR19EQVRBCQkJMHg4MDAwMGNmYwogI2RlZmluZSBNUEMxMDZfSVNBX0lPX1BIWVMJCTB4ODAwMDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbXBjNTEyeC5oIGIvaW5jbHVkZS9tcGM1MTJ4LmgKaW5kZXggY2I0MThkMS4uMDVhMjA2MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tcGM1MTJ4LmgKKysrIGIvaW5jbHVkZS9tcGM1MTJ4LmgKQEAgLTU3Miw3ICs1NzIsNyBAQAogI2RlZmluZSBJT0NUUkxfTVVYX0REUgkJMHgwMDAwMDAzNgogCiAgLyogUmVnaXN0ZXIgT2Zmc2V0IEJhc2UgKi8KLSNkZWZpbmUgTVBDNTEyWF9GRUMJCShDRkdfSU1NUiArIDB4MDI4MDApCisjZGVmaW5lIE1QQzUxMlhfRkVDCQkoQ09ORklHX1NZU19JTU1SICsgMHgwMjgwMCkKIAogLyogTnVtYmVyIG9mIEkyQyBidXNlcyAqLwogI2RlZmluZSBJMkNfQlVTX0NOVAkzCmRpZmYgLS1naXQgYS9pbmNsdWRlL21wYzV4eC5oIGIvaW5jbHVkZS9tcGM1eHguaAppbmRleCA0MTQ2NTFmLi5kZTZkMjE1IDEwMDY0NAotLS0gYS9pbmNsdWRlL21wYzV4eC5oCisrKyBiL2luY2x1ZGUvbXBjNXh4LmgKQEAgLTQyLDcgKzQyLDcgQEAKICAqIElTQiBiaXQgaW4gSU1NUiB0byBzZXQgaW50ZXJuYWwgbWVtb3J5IG1hcAogICovCiAKLSNkZWZpbmUgQ0ZHX0lTQgkJCSgoQ0ZHX0lNTVIgLyAweDAwNDAwMDAwKSA8PCAxKQorI2RlZmluZSBDT05GSUdfU1lTX0lTQgkJCSgoQ09ORklHX1NZU19JTU1SIC8gMHgwMDQwMDAwMCkgPDwgMSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU1lQQ1IgLSBTeXN0ZW0gUHJvdGVjdGlvbiBDb250cm9sIFJlZ2lzdGVyCmRpZmYgLS1naXQgYS9pbmNsdWRlL21wYzV4eHguaCBiL2luY2x1ZGUvbXBjNXh4eC5oCmluZGV4IDBmNWJlZTUuLjNhMzI4MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbXBjNXh4eC5oCisrKyBiL2luY2x1ZGUvbXBjNXh4eC5oCkBAIC01Miw3NSArNTIsNzUgQEAKIAogLyogSW50ZXJuYWwgbWVtb3J5IG1hcCAqLwogCi0jZGVmaW5lIE1QQzVYWFhfQ1MwX1NUQVJUCShDRkdfTUJBUiArIDB4MDAwNCkKLSNkZWZpbmUgTVBDNVhYWF9DUzBfU1RPUAkoQ0ZHX01CQVIgKyAweDAwMDgpCi0jZGVmaW5lIE1QQzVYWFhfQ1MxX1NUQVJUCShDRkdfTUJBUiArIDB4MDAwYykKLSNkZWZpbmUgTVBDNVhYWF9DUzFfU1RPUAkoQ0ZHX01CQVIgKyAweDAwMTApCi0jZGVmaW5lIE1QQzVYWFhfQ1MyX1NUQVJUCShDRkdfTUJBUiArIDB4MDAxNCkKLSNkZWZpbmUgTVBDNVhYWF9DUzJfU1RPUAkoQ0ZHX01CQVIgKyAweDAwMTgpCi0jZGVmaW5lIE1QQzVYWFhfQ1MzX1NUQVJUCShDRkdfTUJBUiArIDB4MDAxYykKLSNkZWZpbmUgTVBDNVhYWF9DUzNfU1RPUAkoQ0ZHX01CQVIgKyAweDAwMjApCi0jZGVmaW5lIE1QQzVYWFhfQ1M0X1NUQVJUCShDRkdfTUJBUiArIDB4MDAyNCkKLSNkZWZpbmUgTVBDNVhYWF9DUzRfU1RPUAkoQ0ZHX01CQVIgKyAweDAwMjgpCi0jZGVmaW5lIE1QQzVYWFhfQ1M1X1NUQVJUCShDRkdfTUJBUiArIDB4MDAyYykKLSNkZWZpbmUgTVBDNVhYWF9DUzVfU1RPUAkoQ0ZHX01CQVIgKyAweDAwMzApCi0jZGVmaW5lIE1QQzVYWFhfQk9PVENTX1NUQVJUCShDRkdfTUJBUiArIDB4MDA0YykKLSNkZWZpbmUgTVBDNVhYWF9CT09UQ1NfU1RPUAkoQ0ZHX01CQVIgKyAweDAwNTApCi0jZGVmaW5lIE1QQzVYWFhfQURERUNSCQkoQ0ZHX01CQVIgKyAweDAwNTQpCisjZGVmaW5lIE1QQzVYWFhfQ1MwX1NUQVJUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDQpCisjZGVmaW5lIE1QQzVYWFhfQ1MwX1NUT1AJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwOCkKKyNkZWZpbmUgTVBDNVhYWF9DUzFfU1RBUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwYykKKyNkZWZpbmUgTVBDNVhYWF9DUzFfU1RPUAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDEwKQorI2RlZmluZSBNUEM1WFhYX0NTMl9TVEFSVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDE0KQorI2RlZmluZSBNUEM1WFhYX0NTMl9TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwMTgpCisjZGVmaW5lIE1QQzVYWFhfQ1MzX1NUQVJUCShDT05GSUdfU1lTX01CQVIgKyAweDAwMWMpCisjZGVmaW5lIE1QQzVYWFhfQ1MzX1NUT1AJKENPTkZJR19TWVNfTUJBUiArIDB4MDAyMCkKKyNkZWZpbmUgTVBDNVhYWF9DUzRfU1RBUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAyNCkKKyNkZWZpbmUgTVBDNVhYWF9DUzRfU1RPUAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDI4KQorI2RlZmluZSBNUEM1WFhYX0NTNV9TVEFSVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDJjKQorI2RlZmluZSBNUEM1WFhYX0NTNV9TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwMzApCisjZGVmaW5lIE1QQzVYWFhfQk9PVENTX1NUQVJUCShDT05GSUdfU1lTX01CQVIgKyAweDAwNGMpCisjZGVmaW5lIE1QQzVYWFhfQk9PVENTX1NUT1AJKENPTkZJR19TWVNfTUJBUiArIDB4MDA1MCkKKyNkZWZpbmUgTVBDNVhYWF9BRERFQ1IJCShDT05GSUdfU1lTX01CQVIgKyAweDAwNTQpCiAKICNpZiBkZWZpbmVkKENPTkZJR19NR1Q1MTAwKQotI2RlZmluZSBNUEM1WFhYX1NEUkFNX1NUQVJUCShDRkdfTUJBUiArIDB4MDAzNCkKLSNkZWZpbmUgTVBDNVhYWF9TRFJBTV9TVE9QCShDRkdfTUJBUiArIDB4MDAzOCkKLSNkZWZpbmUgTVBDNVhYWF9QQ0kxX1NUQVJUCShDRkdfTUJBUiArIDB4MDAzYykKLSNkZWZpbmUgTVBDNVhYWF9QQ0kxX1NUT1AJKENGR19NQkFSICsgMHgwMDQwKQotI2RlZmluZSBNUEM1WFhYX1BDSTJfU1RBUlQJKENGR19NQkFSICsgMHgwMDQ0KQotI2RlZmluZSBNUEM1WFhYX1BDSTJfU1RPUAkoQ0ZHX01CQVIgKyAweDAwNDgpCisjZGVmaW5lIE1QQzVYWFhfU0RSQU1fU1RBUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDAzNCkKKyNkZWZpbmUgTVBDNVhYWF9TRFJBTV9TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwMzgpCisjZGVmaW5lIE1QQzVYWFhfUENJMV9TVEFSVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDNjKQorI2RlZmluZSBNUEM1WFhYX1BDSTFfU1RPUAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDQwKQorI2RlZmluZSBNUEM1WFhYX1BDSTJfU1RBUlQJKENPTkZJR19TWVNfTUJBUiArIDB4MDA0NCkKKyNkZWZpbmUgTVBDNVhYWF9QQ0kyX1NUT1AJKENPTkZJR19TWVNfTUJBUiArIDB4MDA0OCkKICNlbGlmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIE1QQzVYWFhfQ1M2X1NUQVJUCShDRkdfTUJBUiArIDB4MDA1OCkKLSNkZWZpbmUgTVBDNVhYWF9DUzZfU1RPUAkoQ0ZHX01CQVIgKyAweDAwNWMpCi0jZGVmaW5lIE1QQzVYWFhfQ1M3X1NUQVJUCShDRkdfTUJBUiArIDB4MDA2MCkKLSNkZWZpbmUgTVBDNVhYWF9DUzdfU1RPUAkoQ0ZHX01CQVIgKyAweDAwNjQpCi0jZGVmaW5lIE1QQzVYWFhfU0RSQU1fQ1MwQ0ZHCShDRkdfTUJBUiArIDB4MDAzNCkKLSNkZWZpbmUgTVBDNVhYWF9TRFJBTV9DUzFDRkcJKENGR19NQkFSICsgMHgwMDM4KQorI2RlZmluZSBNUEM1WFhYX0NTNl9TVEFSVAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDU4KQorI2RlZmluZSBNUEM1WFhYX0NTNl9TVE9QCShDT05GSUdfU1lTX01CQVIgKyAweDAwNWMpCisjZGVmaW5lIE1QQzVYWFhfQ1M3X1NUQVJUCShDT05GSUdfU1lTX01CQVIgKyAweDAwNjApCisjZGVmaW5lIE1QQzVYWFhfQ1M3X1NUT1AJKENPTkZJR19TWVNfTUJBUiArIDB4MDA2NCkKKyNkZWZpbmUgTVBDNVhYWF9TRFJBTV9DUzBDRkcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAzNCkKKyNkZWZpbmUgTVBDNVhYWF9TRFJBTV9DUzFDRkcJKENPTkZJR19TWVNfTUJBUiArIDB4MDAzOCkKICNlbmRpZgogCi0jZGVmaW5lIE1QQzVYWFhfU0RSQU0JCShDRkdfTUJBUiArIDB4MDEwMCkKLSNkZWZpbmUgTVBDNVhYWF9DRE0JCShDRkdfTUJBUiArIDB4MDIwMCkKLSNkZWZpbmUgTVBDNVhYWF9MUEIJCShDRkdfTUJBUiArIDB4MDMwMCkKLSNkZWZpbmUgTVBDNVhYWF9JQ1RMCQkoQ0ZHX01CQVIgKyAweDA1MDApCi0jZGVmaW5lIE1QQzVYWFhfR1BUCQkoQ0ZHX01CQVIgKyAweDA2MDApCi0jZGVmaW5lIE1QQzVYWFhfR1BJTwkJKENGR19NQkFSICsgMHgwYjAwKQotI2RlZmluZSBNUEM1WFhYX1dVX0dQSU8gICAgICAgICAoQ0ZHX01CQVIgKyAweDBjMDApCi0jZGVmaW5lIE1QQzVYWFhfUENJCQkoQ0ZHX01CQVIgKyAweDBkMDApCi0jZGVmaW5lIE1QQzVYWFhfU1BJCQkoQ0ZHX01CQVIgKyAweDBmMDApCi0jZGVmaW5lIE1QQzVYWFhfVVNCCQkoQ0ZHX01CQVIgKyAweDEwMDApCi0jZGVmaW5lIE1QQzVYWFhfU0RNQQkJKENGR19NQkFSICsgMHgxMjAwKQotI2RlZmluZSBNUEM1WFhYX1hMQkFSQgkJKENGR19NQkFSICsgMHgxZjAwKQorI2RlZmluZSBNUEM1WFhYX1NEUkFNCQkoQ09ORklHX1NZU19NQkFSICsgMHgwMTAwKQorI2RlZmluZSBNUEM1WFhYX0NETQkJKENPTkZJR19TWVNfTUJBUiArIDB4MDIwMCkKKyNkZWZpbmUgTVBDNVhYWF9MUEIJCShDT05GSUdfU1lTX01CQVIgKyAweDAzMDApCisjZGVmaW5lIE1QQzVYWFhfSUNUTAkJKENPTkZJR19TWVNfTUJBUiArIDB4MDUwMCkKKyNkZWZpbmUgTVBDNVhYWF9HUFQJCShDT05GSUdfU1lTX01CQVIgKyAweDA2MDApCisjZGVmaW5lIE1QQzVYWFhfR1BJTwkJKENPTkZJR19TWVNfTUJBUiArIDB4MGIwMCkKKyNkZWZpbmUgTVBDNVhYWF9XVV9HUElPICAgICAgICAgKENPTkZJR19TWVNfTUJBUiArIDB4MGMwMCkKKyNkZWZpbmUgTVBDNVhYWF9QQ0kJCShDT05GSUdfU1lTX01CQVIgKyAweDBkMDApCisjZGVmaW5lIE1QQzVYWFhfU1BJCQkoQ09ORklHX1NZU19NQkFSICsgMHgwZjAwKQorI2RlZmluZSBNUEM1WFhYX1VTQgkJKENPTkZJR19TWVNfTUJBUiArIDB4MTAwMCkKKyNkZWZpbmUgTVBDNVhYWF9TRE1BCQkoQ09ORklHX1NZU19NQkFSICsgMHgxMjAwKQorI2RlZmluZSBNUEM1WFhYX1hMQkFSQgkJKENPTkZJR19TWVNfTUJBUiArIDB4MWYwMCkKIAogI2lmIGRlZmluZWQoQ09ORklHX01HVDUxMDApCi0jZGVmaW5lCU1QQzVYWFhfUFNDMQkJKENGR19NQkFSICsgMHgyMDAwKQotI2RlZmluZQlNUEM1WFhYX1BTQzIJCShDRkdfTUJBUiArIDB4MjQwMCkKLSNkZWZpbmUJTVBDNVhYWF9QU0MzCQkoQ0ZHX01CQVIgKyAweDI4MDApCisjZGVmaW5lCU1QQzVYWFhfUFNDMQkJKENPTkZJR19TWVNfTUJBUiArIDB4MjAwMCkKKyNkZWZpbmUJTVBDNVhYWF9QU0MyCQkoQ09ORklHX1NZU19NQkFSICsgMHgyNDAwKQorI2RlZmluZQlNUEM1WFhYX1BTQzMJCShDT05GSUdfU1lTX01CQVIgKyAweDI4MDApCiAjZWxpZiBkZWZpbmVkKENPTkZJR19NUEM1MjAwKQotI2RlZmluZQlNUEM1WFhYX1BTQzEJCShDRkdfTUJBUiArIDB4MjAwMCkKLSNkZWZpbmUJTVBDNVhYWF9QU0MyCQkoQ0ZHX01CQVIgKyAweDIyMDApCi0jZGVmaW5lCU1QQzVYWFhfUFNDMwkJKENGR19NQkFSICsgMHgyNDAwKQotI2RlZmluZQlNUEM1WFhYX1BTQzQJCShDRkdfTUJBUiArIDB4MjYwMCkKLSNkZWZpbmUJTVBDNVhYWF9QU0M1CQkoQ0ZHX01CQVIgKyAweDI4MDApCi0jZGVmaW5lCU1QQzVYWFhfUFNDNgkJKENGR19NQkFSICsgMHgyYzAwKQorI2RlZmluZQlNUEM1WFhYX1BTQzEJCShDT05GSUdfU1lTX01CQVIgKyAweDIwMDApCisjZGVmaW5lCU1QQzVYWFhfUFNDMgkJKENPTkZJR19TWVNfTUJBUiArIDB4MjIwMCkKKyNkZWZpbmUJTVBDNVhYWF9QU0MzCQkoQ09ORklHX1NZU19NQkFSICsgMHgyNDAwKQorI2RlZmluZQlNUEM1WFhYX1BTQzQJCShDT05GSUdfU1lTX01CQVIgKyAweDI2MDApCisjZGVmaW5lCU1QQzVYWFhfUFNDNQkJKENPTkZJR19TWVNfTUJBUiArIDB4MjgwMCkKKyNkZWZpbmUJTVBDNVhYWF9QU0M2CQkoQ09ORklHX1NZU19NQkFSICsgMHgyYzAwKQogI2VuZGlmCiAKLSNkZWZpbmUJTVBDNVhYWF9GRUMJCShDRkdfTUJBUiArIDB4MzAwMCkKLSNkZWZpbmUgTVBDNVhYWF9BVEEgICAgICAgICAgICAgKENGR19NQkFSICsgMHgzQTAwKQorI2RlZmluZQlNUEM1WFhYX0ZFQwkJKENPTkZJR19TWVNfTUJBUiArIDB4MzAwMCkKKyNkZWZpbmUgTVBDNVhYWF9BVEEgICAgICAgICAgICAgKENPTkZJR19TWVNfTUJBUiArIDB4M0EwMCkKIAotI2RlZmluZSBNUEM1WFhYX0kyQzEJCShDRkdfTUJBUiArIDB4M0QwMCkKLSNkZWZpbmUgTVBDNVhYWF9JMkMyCQkoQ0ZHX01CQVIgKyAweDNENDApCisjZGVmaW5lIE1QQzVYWFhfSTJDMQkJKENPTkZJR19TWVNfTUJBUiArIDB4M0QwMCkKKyNkZWZpbmUgTVBDNVhYWF9JMkMyCQkoQ09ORklHX1NZU19NQkFSICsgMHgzRDQwKQogCiAjaWYgZGVmaW5lZChDT05GSUdfTUdUNTEwMCkKLSNkZWZpbmUgTVBDNVhYWF9TUkFNCQkoQ0ZHX01CQVIgKyAweDQwMDApCisjZGVmaW5lIE1QQzVYWFhfU1JBTQkJKENPTkZJR19TWVNfTUJBUiArIDB4NDAwMCkKICNkZWZpbmUgTVBDNVhYWF9TUkFNX1NJWkUJKDgqMTAyNCkKICNlbGlmIGRlZmluZWQoQ09ORklHX01QQzUyMDApCi0jZGVmaW5lIE1QQzVYWFhfU1JBTQkJKENGR19NQkFSICsgMHg4MDAwKQorI2RlZmluZSBNUEM1WFhYX1NSQU0JCShDT05GSUdfU1lTX01CQVIgKyAweDgwMDApCiAjZGVmaW5lIE1QQzVYWFhfU1JBTV9TSVpFCSgxNioxMDI0KQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbXBjODIyMC5oIGIvaW5jbHVkZS9tcGM4MjIwLmgKaW5kZXggZDNiMTQ1Ny4uYzQ5MDBhMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tcGM4MjIwLmgKKysrIGIvaW5jbHVkZS9tcGM4MjIwLmgKQEAgLTM5LDM3ICszOSwzNyBAQAogCiAvKiBJbnRlcm5hbCBtZW1vcnkgbWFwICovCiAvKiBNUEM4MjIwIEludGVybmFsIFJlZ2lzdGVyIE1NQVAgKi8KLSNkZWZpbmUgTU1BUF9NQkFSCShDRkdfTUJBUiArIDB4MDAwMDAwMDApIC8qIGNoaXAgc2VsZWN0cwkJICAgICAqLwotI2RlZmluZSBNTUFQX01FTUNUTAkoQ0ZHX01CQVIgKyAweDAwMDAwMTAwKSAvKiBzZHJhbSBjb250cm9sbGVyCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9YTEJBUkIJKENGR19NQkFSICsgMHgwMDAwMDIwMCkgLyogeGxiIGFyYml0cmF0aW9uIGNvbnRyb2wgICAqLwotI2RlZmluZSBNTUFQX0NETQkoQ0ZHX01CQVIgKyAweDAwMDAwMzAwKSAvKiBjbG9jayBkaXN0cmlidXRpb24gbW9kdWxlICovCi0jZGVmaW5lIE1NQVBfVkRPUExMCShDRkdfTUJBUiArIDB4MDAwMDA0MDApIC8qIHZpZGVvIFBMTAkJICAgICAqLwotI2RlZmluZSBNTUFQX0ZCCQkoQ0ZHX01CQVIgKyAweDAwMDAwNTAwKSAvKiBmbGV4IGJ1cyBjb250cm9sbGVyCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9QQ0ZHCShDRkdfTUJBUiArIDB4MDAwMDA2MDApIC8qIHBvcnQgY29uZmlnCQkgICAgICovCi0jZGVmaW5lIE1NQVBfSUNUTAkoQ0ZHX01CQVIgKyAweDAwMDAwNzAwKSAvKiBpbnRlcnJ1cHQgY29udHJvbGxlcgkgICAgICovCi0jZGVmaW5lIE1NQVBfR1BUTVIJKENGR19NQkFSICsgMHgwMDAwMDgwMCkgLyogZ2VuZXJhbCBwdXJwb3NlIHRpbWVycyAgICAqLwotI2RlZmluZSBNTUFQX1NMVE1SCShDRkdfTUJBUiArIDB4MDAwMDA5MDApIC8qIHNsaWNlIHRpbWVycwkJICAgICAqLwotI2RlZmluZSBNTUFQX0dQSU8JKENGR19NQkFSICsgMHgwMDAwMEEwMCkgLyogZ3BpbyBtb2R1bGUJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9YQ1BDSQkoQ0ZHX01CQVIgKyAweDAwMDAwQjAwKSAvKiBwY2kgY29udHJvbGxlcgkgICAgICovCi0jZGVmaW5lIE1NQVBfUENJQVJCCShDRkdfTUJBUiArIDB4MDAwMDBDMDApIC8qIHBjaSBhcmJpdGVyCQkgICAgICovCi0jZGVmaW5lIE1NQVBfRVhURE1BMQkoQ0ZHX01CQVIgKyAweDAwMDAwRDAwKSAvKiBleHRlcm5hbCBkbWExCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9FWFRETUEyCShDRkdfTUJBUiArIDB4MDAwMDBFMDApIC8qIGV4dGVybmFsIGRtYTEJICAgICAqLwotI2RlZmluZSBNTUFQX1VTQkgJKENGR19NQkFSICsgMHgwMDAwMTAwMCkgLyogdXNiIGhvc3QJCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9DTVRNUgkoQ0ZHX01CQVIgKyAweDAwMDA3ZjAwKSAvKiBjb21tIHRpbWVycwkJICAgICAqLwotI2RlZmluZSBNTUFQX0RNQQkoQ0ZHX01CQVIgKyAweDAwMDA4MDAwKSAvKiBkbWEJCQkgICAgICovCi0jZGVmaW5lIE1NQVBfVVNCRAkoQ0ZHX01CQVIgKyAweDAwMDA4MjAwKSAvKiB1c2IgZGV2aWNlCQkgICAgICovCi0jZGVmaW5lIE1NQVBfQ09NTVBDSQkoQ0ZHX01CQVIgKyAweDAwMDA4NDAwKSAvKiBwY2kgY29tbSBCdXMgcmVncwkgICAgICovCi0jZGVmaW5lIE1NQVBfMTI4NAkoQ0ZHX01CQVIgKyAweDAwMDA4NTAwKSAvKiAxMjg0CQkJICAgICAqLwotI2RlZmluZSBNTUFQX1BFVgkoQ0ZHX01CQVIgKyAweDAwMDA4NjAwKSAvKiBwcmludCBlbmdpbmUgdmlkZW8JICAgICAqLwotI2RlZmluZSBNTUFQX1BTQzEJKENGR19NQkFSICsgMHgwMDAwODgwMCkgLyogcHNjMSBibG9jawkJICAgICAqLwotI2RlZmluZSBNTUFQX0kyQwkoQ0ZHX01CQVIgKyAweDAwMDA4ZjAwKSAvKiBpMmMgY29udHJvbGxlcgkgICAgICovCi0jZGVmaW5lIE1NQVBfRkVDMQkoQ0ZHX01CQVIgKyAweDAwMDA5MDAwKSAvKiBmYXN0IGV0aGVybmV0IDEJICAgICAqLwotI2RlZmluZSBNTUFQX0ZFQzIJKENGR19NQkFSICsgMHgwMDAwOTgwMCkgLyogZmFzdCBldGhlcm5ldCAyCSAgICAgKi8KLSNkZWZpbmUgTU1BUF9KQklHUkFNCShDRkdfTUJBUiArIDB4MDAwMGEwMDApIC8qIGpiaWcgUkFNCQkgICAgICovCi0jZGVmaW5lIE1NQVBfSkJJRwkoQ0ZHX01CQVIgKyAweDAwMDBjMDAwKSAvKiBqYmlnCQkJICAgICAqLwotI2RlZmluZSBNTUFQX1BETEEJKENGR19NQkFSICsgMHgwMDAxMDAwMCkgLyoJCQkgICAgICovCi0jZGVmaW5lIE1NQVBfU1JBTUNGRwkoQ0ZHX01CQVIgKyAweDAwMDFmZjAwKSAvKiBTUkFNIGNvbmZpZwkJICAgICAqLwotI2RlZmluZSBNTUFQX1NSQU0JKENGR19NQkFSICsgMHgwMDAyMDAwMCkgLyogU1JBTQkJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9NQkFSCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwMDAwKSAvKiBjaGlwIHNlbGVjdHMJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9NRU1DVEwJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDAxMDApIC8qIHNkcmFtIGNvbnRyb2xsZXIJICAgICAqLworI2RlZmluZSBNTUFQX1hMQkFSQgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDIwMCkgLyogeGxiIGFyYml0cmF0aW9uIGNvbnRyb2wgICAqLworI2RlZmluZSBNTUFQX0NETQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDMwMCkgLyogY2xvY2sgZGlzdHJpYnV0aW9uIG1vZHVsZSAqLworI2RlZmluZSBNTUFQX1ZET1BMTAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDQwMCkgLyogdmlkZW8gUExMCQkgICAgICovCisjZGVmaW5lIE1NQVBfRkIJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNTAwKSAvKiBmbGV4IGJ1cyBjb250cm9sbGVyCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9QQ0ZHCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwNjAwKSAvKiBwb3J0IGNvbmZpZwkJICAgICAqLworI2RlZmluZSBNTUFQX0lDVEwJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDA3MDApIC8qIGludGVycnVwdCBjb250cm9sbGVyCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9HUFRNUgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwMDgwMCkgLyogZ2VuZXJhbCBwdXJwb3NlIHRpbWVycyAgICAqLworI2RlZmluZSBNTUFQX1NMVE1SCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwOTAwKSAvKiBzbGljZSB0aW1lcnMJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9HUElPCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQTAwKSAvKiBncGlvIG1vZHVsZQkJICAgICAqLworI2RlZmluZSBNTUFQX1hDUENJCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQjAwKSAvKiBwY2kgY29udHJvbGxlcgkgICAgICovCisjZGVmaW5lIE1NQVBfUENJQVJCCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDAwQzAwKSAvKiBwY2kgYXJiaXRlcgkJICAgICAqLworI2RlZmluZSBNTUFQX0VYVERNQTEJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBEMDApIC8qIGV4dGVybmFsIGRtYTEJICAgICAqLworI2RlZmluZSBNTUFQX0VYVERNQTIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDBFMDApIC8qIGV4dGVybmFsIGRtYTEJICAgICAqLworI2RlZmluZSBNTUFQX1VTQkgJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDEwMDApIC8qIHVzYiBob3N0CQkgICAgICovCisjZGVmaW5lIE1NQVBfQ01UTVIJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDdmMDApIC8qIGNvbW0gdGltZXJzCQkgICAgICovCisjZGVmaW5lIE1NQVBfRE1BCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4MDAwKSAvKiBkbWEJCQkgICAgICovCisjZGVmaW5lIE1NQVBfVVNCRAkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwODIwMCkgLyogdXNiIGRldmljZQkJICAgICAqLworI2RlZmluZSBNTUFQX0NPTU1QQ0kJKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMDg0MDApIC8qIHBjaSBjb21tIEJ1cyByZWdzCSAgICAgKi8KKyNkZWZpbmUgTU1BUF8xMjg0CShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4NTAwKSAvKiAxMjg0CQkJICAgICAqLworI2RlZmluZSBNTUFQX1BFVgkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwODYwMCkgLyogcHJpbnQgZW5naW5lIHZpZGVvCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9QU0MxCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4ODAwKSAvKiBwc2MxIGJsb2NrCQkgICAgICovCisjZGVmaW5lIE1NQVBfSTJDCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA4ZjAwKSAvKiBpMmMgY29udHJvbGxlcgkgICAgICovCisjZGVmaW5lIE1NQVBfRkVDMQkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwOTAwMCkgLyogZmFzdCBldGhlcm5ldCAxCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9GRUMyCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDA5ODAwKSAvKiBmYXN0IGV0aGVybmV0IDIJICAgICAqLworI2RlZmluZSBNTUFQX0pCSUdSQU0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMGEwMDApIC8qIGpiaWcgUkFNCQkgICAgICovCisjZGVmaW5lIE1NQVBfSkJJRwkoQ09ORklHX1NZU19NQkFSICsgMHgwMDAwYzAwMCkgLyogamJpZwkJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9QRExBCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDEwMDAwKSAvKgkJCSAgICAgKi8KKyNkZWZpbmUgTU1BUF9TUkFNQ0ZHCShDT05GSUdfU1lTX01CQVIgKyAweDAwMDFmZjAwKSAvKiBTUkFNIGNvbmZpZwkJICAgICAqLworI2RlZmluZSBNTUFQX1NSQU0JKENPTkZJR19TWVNfTUJBUiArIDB4MDAwMjAwMDApIC8qIFNSQU0JCQkgICAgICovCiAKICNkZWZpbmUgU1JBTV9TSVpFCTB4ODAwMAkJCS8qIDMyIEtCICovCiAKQEAgLTMwMSwyMyArMzAxLDIzIEBACiAvKgogICogUG9ydCBjb25maWd1cmF0aW9uCiAgKi8KLSNkZWZpbmUgQ0ZHX0ZFQzFfUE9SVDBfQ09ORklHCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0ZFQzFfUE9SVDFfQ09ORklHCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHXzEyODRfUE9SVDBfQ09ORklHICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR18xMjg0X1BPUlQxX0NPTkZJRyAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfRkVDMl9QT1JUMl9DT05GSUcJMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfUEVWX1BPUlQyX0NPTkZJRyAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0dQMF9QT1JUMF9DT05GSUcgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19HUDFfUE9SVDJfQ09ORklHICAgMHhhYWFhYWFjMAotI2RlZmluZSBDRkdfUFNDX1BPUlQzX0NPTkZJRyAgIDB4MDAwMjAwMDAKLSNkZWZpbmUgQ0ZHX0NTMV9QT1JUM19DT05GSUcgICAweDAwMDAwMDAwCi0jZGVmaW5lIENGR19DUzJfUE9SVDNfQ09ORklHCTB4MTAwMDAwMDAKLSNkZWZpbmUgQ0ZHX0NTM19QT1JUM19DT05GSUcJMHg0MDAwMDAwMAotI2RlZmluZSBDRkdfQ1M0X1BPUlQzX0NPTkZJRwkweDAwMDAwNDAwCi0jZGVmaW5lIENGR19DUzVfUE9SVDNfQ09ORklHCTB4MDAwMDAyMDAKLSNkZWZpbmUgQ0ZHX1BDSV9QT1JUM19DT05GSUcgICAweDAxNDAwMTgwCi0jZGVmaW5lIENGR19JMkNfUE9SVDNfQ09ORklHICAgMHgwMDAwMDAwMAotI2RlZmluZSBDRkdfR1AyX1BPUlQzX0NPTkZJRyAgIDB4MDAwMjAwYTAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMxX1BPUlQwX0NPTkZJRwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfRkVDMV9QT1JUMV9DT05GSUcJMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTXzEyODRfUE9SVDBfQ09ORklHICAweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfMTI4NF9QT1JUMV9DT05GSUcgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19GRUMyX1BPUlQyX0NPTkZJRwkweDAwMDAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUEVWX1BPUlQyX0NPTkZJRyAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUDBfUE9SVDBfQ09ORklHICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0dQMV9QT1JUMl9DT05GSUcgICAweGFhYWFhYWMwCisjZGVmaW5lIENPTkZJR19TWVNfUFNDX1BPUlQzX0NPTkZJRyAgIDB4MDAwMjAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19DUzFfUE9SVDNfQ09ORklHICAgMHgwMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTMl9QT1JUM19DT05GSUcJMHgxMDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTM19QT1JUM19DT05GSUcJMHg0MDAwMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNF9QT1JUM19DT05GSUcJMHgwMDAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX0NTNV9QT1JUM19DT05GSUcJMHgwMDAwMDIwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDSV9QT1JUM19DT05GSUcgICAweDAxNDAwMTgwCisjZGVmaW5lIENPTkZJR19TWVNfSTJDX1BPUlQzX0NPTkZJRyAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19HUDJfUE9SVDNfQ09ORklHICAgMHgwMDAyMDBhMAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIC8qCkBAIC01NzEsOSArNTcxLDkgQEAKIC8qIFBDSS0+WExCIHNwYWNlIHRyYW5zbGF0aW9uIChNUEM4MjIwIHRhcmdldCksIHJlZzAgY2FuIGFkZHJlc3MgbWF4IDI1Nk1CLAogICAgcmVnMSAtIDFHQiAqLwogI2RlZmluZSBQQ0lfQkFTRV9BRERSX1JFRzAJCQkweDQwMDAwMDAwCi0jZGVmaW5lIFBDSV9CQVNFX0FERFJfUkVHMQkJCShDRkdfU0RSQU1fQkFTRSkKLSNkZWZpbmUgUENJX1RBUkdFVF9CQVNFX0FERFJfUkVHMAkJKENGR19NQkFSKQotI2RlZmluZSBQQ0lfVEFSR0VUX0JBU0VfQUREUl9SRUcxCQkoQ0ZHX1NEUkFNX0JBU0UpCisjZGVmaW5lIFBDSV9CQVNFX0FERFJfUkVHMQkJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UpCisjZGVmaW5lIFBDSV9UQVJHRVRfQkFTRV9BRERSX1JFRzAJCShDT05GSUdfU1lTX01CQVIpCisjZGVmaW5lIFBDSV9UQVJHRVRfQkFTRV9BRERSX1JFRzEJCShDT05GSUdfU1lTX1NEUkFNX0JBU0UpCiAjZGVmaW5lIFBDSV9UQVJHRVRfQkFTRV9BRERSX0VOCQkJMTw8MAogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbXBjODI0eC5oIGIvaW5jbHVkZS9tcGM4MjR4LmgKaW5kZXggMzBmMDFkNS4uNWFhOTM3MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tcGM4MjR4LmgKKysrIGIvaW5jbHVkZS9tcGM4MjR4LmgKQEAgLTE1NCw3ICsxNTQsNyBAQAogI2RlZmluZSBNQVBfQl9DT05GSUdfREFUQV9MT1cJMHgwMDAwCS8qIExvd2VyIGhhbGYgb2YgQ09ORklHX0RBVCBmb3IgTWFwIEIgKi8KIAogCi0jaWYgZGVmaW5lZChDRkdfQUREUl9NQVBfQSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfQUREUl9NQVBfQSkKICNkZWZpbmUgQ09ORklHX0FERFJfSElHSCAgICBNQVBfQV9DT05GSUdfQUREUl9ISUdIICAvKiBVcHBlciBoYWxmIG9mIENPTkZJR19BRERSICovCiAjZGVmaW5lIENPTkZJR19BRERSX0xPVwkgICAgTUFQX0FfQ09ORklHX0FERFJfTE9XICAgLyogTG93ZXIgaGFsZiBvZiBDT05GSUdfQUREUiAqLwogI2RlZmluZSBDT05GSUdfREFUQV9ISUdIICAgIE1BUF9BX0NPTkZJR19EQVRBX0hJR0ggIC8qIFVwcGVyIGhhbGYgb2YgQ09ORklHX0RBVCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tcGM4Nnh4LmggYi9pbmNsdWRlL21wYzg2eHguaAppbmRleCBjZTNkNzg0Li5mMTE5ZDViIDEwMDY0NAotLS0gYS9pbmNsdWRlL21wYzg2eHguaAorKysgYi9pbmNsdWRlL21wYzg2eHguaApAQCAtMTYsOSArMTYsOSBAQAogICogcGxhdGZvcm0gcmVnaXN0ZXIgYWRkcmVzc2VzCiAgKi8KIAotI2RlZmluZSBHVVRTX1NWUgkoQ0ZHX0NDU1JCQVIgKyAweEUwMEE0KQotI2RlZmluZSBNQ01fQUJDUgkoQ0ZHX0NDU1JCQVIgKyAweDAxMDAwKQotI2RlZmluZSBNQ01fREJDUgkoQ0ZHX0NDU1JCQVIgKyAweDAxMDA4KQorI2RlZmluZSBHVVRTX1NWUgkoQ09ORklHX1NZU19DQ1NSQkFSICsgMHhFMDBBNCkKKyNkZWZpbmUgTUNNX0FCQ1IJKENPTkZJR19TWVNfQ0NTUkJBUiArIDB4MDEwMDApCisjZGVmaW5lIE1DTV9EQkNSCShDT05GSUdfU1lTX0NDU1JCQVIgKyAweDAxMDA4KQogCiAvKgogICogbDJjciB2YWx1ZXMuICBMb29rIGluIGNvbmZpZ188Qk9BUkQ+LmggZm9yIHRoZSBhY3R1YWwgc2V0dXAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbXBjOHh4X2lycS5oIGIvaW5jbHVkZS9tcGM4eHhfaXJxLmgKaW5kZXggZDJhODFjMC4uMTVjZjY5MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tcGM4eHhfaXJxLmgKKysrIGIvaW5jbHVkZS9tcGM4eHhfaXJxLmgKQEAgLTQ1LDggKzQ1LDggQEAKICAqIE1CWCBQQ0kvSVNBL0lERSBpbnRlcnJ1cHRzLgogICovCiAKLSNpZmRlZiBDRkdfQ1BNX0lOVEVSUlVQVAotIyBkZWZpbmUgQ1BNX0lOVEVSUlVQVAkJQ0ZHX0NQTV9JTlRFUlJVUFQKKyNpZmRlZiBDT05GSUdfU1lTX0NQTV9JTlRFUlJVUFQKKyMgZGVmaW5lIENQTV9JTlRFUlJVUFQJCUNPTkZJR19TWVNfQ1BNX0lOVEVSUlVQVAogI2Vsc2UKICMgZGVmaW5lIENQTV9JTlRFUlJVUFQJCVNJVV9MRVZFTDIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uYW5kLmggYi9pbmNsdWRlL25hbmQuaAppbmRleCAzMjk2ZTEwLi5iNGYzMTZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL25hbmQuaAorKysgYi9pbmNsdWRlL25hbmQuaApAQCAtMTIyLDcgKzEyMiw3IEBACiBpbnQgbmFuZF91bmxvY2soIG5hbmRfaW5mb190ICptZW1pbmZvLCB1bG9uZyBzdGFydCwgdWxvbmcgbGVuZ3RoICk7CiBpbnQgbmFuZF9nZXRfbG9ja19zdGF0dXMobmFuZF9pbmZvX3QgKm1lbWluZm8sIHVsb25nIG9mZnNldCk7CiAKLSNpZmRlZiBDRkdfTkFORF9TRUxFQ1RfREVWSUNFCisjaWZkZWYgQ09ORklHX1NZU19OQU5EX1NFTEVDVF9ERVZJQ0UKIHZvaWQgYm9hcmRfbmFuZF9zZWxlY3RfZGV2aWNlKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsIGludCBjaGlwKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC5oIGIvaW5jbHVkZS9uZXQuaAppbmRleCA3OWRkZmEyLi5hNWEyNTZiIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC5oCisrKyBiL2luY2x1ZGUvbmV0LmgKQEAgLTM4LDE2ICszOCwxNiBAQAogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCiAjaWYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAxKQogI2RlZmluZQlDT05GSUdfRVRIRVJfT05fRkNDMQotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMQlDRkdfQ01YRkNSX01BU0sKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUxCUNGR19DTVhGQ1JfVkFMVUUKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0sxCUNPTkZJR19TWVNfQ01YRkNSX01BU0sKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMQlDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQogI2VsaWYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAyKQogI2RlZmluZQlDT05GSUdfRVRIRVJfT05fRkNDMgotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMglDRkdfQ01YRkNSX01BU0sKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUyCUNGR19DTVhGQ1JfVkFMVUUKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0syCUNPTkZJR19TWVNfQ01YRkNSX01BU0sKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMglDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQogI2VsaWYgKENPTkZJR19FVEhFUl9JTkRFWCA9PSAzKQogI2RlZmluZQlDT05GSUdfRVRIRVJfT05fRkNDMwotIyBkZWZpbmUgQ0ZHX0NNWEZDUl9NQVNLMwlDRkdfQ01YRkNSX01BU0sKLSMgZGVmaW5lIENGR19DTVhGQ1JfVkFMVUUzCUNGR19DTVhGQ1JfVkFMVUUKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX01BU0szCUNPTkZJR19TWVNfQ01YRkNSX01BU0sKKyMgZGVmaW5lIENPTkZJR19TWVNfQ01YRkNSX1ZBTFVFMwlDT05GSUdfU1lTX0NNWEZDUl9WQUxVRQogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9JTkRFWCAqLwogI2VuZGlmIC8qIENPTkZJR19FVEhFUl9PTl9GQ0MgKi8KICNlbmRpZiAvKiAhQ09ORklHX05FVF9NVUxUSSAmJiBDT05GSUdfODI2MCAqLwpAQCAtNjEsOCArNjEsOCBAQAogICoKICAqLwogCi0jaWZkZWYgQ0ZHX1JYX0VUSF9CVUZGRVIKLSMgZGVmaW5lIFBLVEJVRlNSWAlDRkdfUlhfRVRIX0JVRkZFUgorI2lmZGVmIENPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgorIyBkZWZpbmUgUEtUQlVGU1JYCUNPTkZJR19TWVNfUlhfRVRIX0JVRkZFUgogI2Vsc2UKICMgZGVmaW5lIFBLVEJVRlNSWAk0CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbnMxNjU1MC5oIGIvaW5jbHVkZS9uczE2NTUwLmgKaW5kZXggMzQ4ODhhMS4uZTZhZGU2MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uczE2NTUwLmgKKysrIGIvaW5jbHVkZS9uczE2NTUwLmgKQEAgLTIsNyArMiw3IEBACiAgKiBOUzE2NTUwIFNlcmlhbCBQb3J0CiAgKiBvcmlnaW5hbGx5IGZyb20gbGludXggc291cmNlIChhcmNoL3BwYy9ib290L25zMTY1NTAuaCkKICAqIG1vZGlmaWVkIHNsaWdodGx5IHRvCi0gKiBoYXZlIGFkZHJlc3NlcyBhcyBvZmZzZXRzIGZyb20gQ0ZHX0lTQV9CQVNFCisgKiBoYXZlIGFkZHJlc3NlcyBhcyBvZmZzZXRzIGZyb20gQ09ORklHX1NZU19JU0FfQkFTRQogICogYWRkZWQgYSBmZXcgbW9yZSBkZWZpbml0aW9ucwogICogYWRkZWQgcHJvdG90eXBlcyBmb3IgbnMxNjU1MC5jCiAgKiByZWR1Y2VkIG5vIG9mIGNvbSBwb3J0cyB0byAyCkBAIC0xMiw3ICsxMiw3IEBACiAgKiBieSBSaWNoYXJkIERhbnRlciAocmljaGFyZC5kYW50ZXJAd2luZHJpdmVyLmNvbSksIChDKSAyMDA1IFdpbmQgUml2ZXIgU3lzdGVtcwogICovCiAKLSNpZiAoQ0ZHX05TMTY1NTBfUkVHX1NJWkUgPT0gMSkKKyNpZiAoQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFID09IDEpCiBzdHJ1Y3QgTlMxNjU1MCB7CiAJdW5zaWduZWQgY2hhciByYnI7CQkvKiAwICovCiAJdW5zaWduZWQgY2hhciBpZXI7CQkvKiAxICovCkBAIC0zNSw3ICszNSw3IEBACiAJdW5zaWduZWQgY2hhciBzc3I7CQkvKiAxMSovCiAjZW5kaWYKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotI2VsaWYgKENGR19OUzE2NTUwX1JFR19TSVpFID09IDIpCisjZWxpZiAoQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFID09IDIpCiBzdHJ1Y3QgTlMxNjU1MCB7CiAJdW5zaWduZWQgc2hvcnQgcmJyOwkJLyogMCAqLwogCXVuc2lnbmVkIHNob3J0IGllcjsJCS8qIDEgKi8KQEAgLTQ2LDcgKzQ2LDcgQEAKIAl1bnNpZ25lZCBzaG9ydCBtc3I7CQkvKiA2ICovCiAJdW5zaWduZWQgc2hvcnQgc2NyOwkJLyogNyAqLwogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7Ci0jZWxpZiAoQ0ZHX05TMTY1NTBfUkVHX1NJWkUgPT0gNCkKKyNlbGlmIChDT05GSUdfU1lTX05TMTY1NTBfUkVHX1NJWkUgPT0gNCkKIHN0cnVjdCBOUzE2NTUwIHsKIAl1bnNpZ25lZCBsb25nIHJicjsJCS8qIDAgciAgKi8KIAl1bnNpZ25lZCBsb25nIGllcjsJCS8qIDEgcncgKi8KQEAgLTU3LDcgKzU3LDcgQEAKIAl1bnNpZ25lZCBsb25nIG1zcjsJCS8qIDYgciAgKi8KIAl1bnNpZ25lZCBsb25nIHNjcjsJCS8qIDcgcncgKi8KIH07IC8qIE5vIG5lZWQgdG8gcGFjayBhbiBhbHJlYWR5IGFsaWduZWQgc3RydWN0ICovCi0jZWxpZiAoQ0ZHX05TMTY1NTBfUkVHX1NJWkUgPT0gLTQpCisjZWxpZiAoQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFID09IC00KQogc3RydWN0IE5TMTY1NTAgewogCXVuc2lnbmVkIGNoYXIgcmJyOwkJLyogMCAqLwogCWludCBwYWQxOjI0OwpAQCAtODUsNyArODUsNyBAQAogCWludCBwYWQxMDoyNDsKICNlbmRpZgogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7Ci0jZWxpZiAoQ0ZHX05TMTY1NTBfUkVHX1NJWkUgPT0gLTgpCisjZWxpZiAoQ09ORklHX1NZU19OUzE2NTUwX1JFR19TSVpFID09IC04KQogc3RydWN0IE5TMTY1NTAgewogCXVuc2lnbmVkIGNoYXIgcmJyOwkJLyogMCAqLwogCXVuc2lnbmVkIGNoYXIgcGFkMFs3XTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbnM4NzMwOC5oIGIvaW5jbHVkZS9uczg3MzA4LmgKaW5kZXggZmVlYjk0MC4uNjE3N2JiNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uczg3MzA4LmgKKysrIGIvaW5jbHVkZS9uczg3MzA4LmgKQEAgLTc0LDE1ICs3NCwxNSBAQAogI2RlZmluZSBJT19EQVRBX09GRlNFVF8xMCAgMHgwMTVEICAvKiBQblAgbW90aGVyYm9hcmQgbW9kZSAqLwogI2RlZmluZSBJT19EQVRBX09GRlNFVF8xMSAgMHgwMDJGICAvKiBQblAgbW90aGVyYm9hcmQgbW9kZSAqLwogCi0jaWYgZGVmaW5lZChDRkdfTlM4NzMwOF9CQUREUl8weCkKLSNkZWZpbmUgSU9fSU5ERVggKENGR19JU0FfSU8gKyBJT19JTkRFWF9PRkZTRVRfMHgpCi0jZGVmaW5lIElPX0RBVEEgIChDRkdfSVNBX0lPICsgSU9fREFUQV9PRkZTRVRfMHgpCi0jZWxpZiBkZWZpbmVkKENGR19OUzg3MzA4X0JBRERSXzEwKQotI2RlZmluZSBJT19JTkRFWCAoQ0ZHX0lTQV9JTyArIElPX0lOREVYX09GRlNFVF8xMCkKLSNkZWZpbmUgSU9fREFUQSAgKENGR19JU0FfSU8gKyBJT19EQVRBX09GRlNFVF8xMCkKLSNlbGlmIGRlZmluZWQoQ0ZHX05TODczMDhfQkFERFJfMTEpCi0jZGVmaW5lIElPX0lOREVYIChDRkdfSVNBX0lPICsgSU9fSU5ERVhfT0ZGU0VUXzExKQotI2RlZmluZSBJT19EQVRBICAoQ0ZHX0lTQV9JTyArIElPX0RBVEFfT0ZGU0VUXzExKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OUzg3MzA4X0JBRERSXzB4KQorI2RlZmluZSBJT19JTkRFWCAoQ09ORklHX1NZU19JU0FfSU8gKyBJT19JTkRFWF9PRkZTRVRfMHgpCisjZGVmaW5lIElPX0RBVEEgIChDT05GSUdfU1lTX0lTQV9JTyArIElPX0RBVEFfT0ZGU0VUXzB4KQorI2VsaWYgZGVmaW5lZChDT05GSUdfU1lTX05TODczMDhfQkFERFJfMTApCisjZGVmaW5lIElPX0lOREVYIChDT05GSUdfU1lTX0lTQV9JTyArIElPX0lOREVYX09GRlNFVF8xMCkKKyNkZWZpbmUgSU9fREFUQSAgKENPTkZJR19TWVNfSVNBX0lPICsgSU9fREFUQV9PRkZTRVRfMTApCisjZWxpZiBkZWZpbmVkKENPTkZJR19TWVNfTlM4NzMwOF9CQUREUl8xMSkKKyNkZWZpbmUgSU9fSU5ERVggKENPTkZJR19TWVNfSVNBX0lPICsgSU9fSU5ERVhfT0ZGU0VUXzExKQorI2RlZmluZSBJT19EQVRBICAoQ09ORklHX1NZU19JU0FfSU8gKyBJT19EQVRBX09GRlNFVF8xMSkKICNlbmRpZgogCiAvKiBQblAgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8KQEAgLTEzMiwxNiArMTMyLDE2IEBACiAjZGVmaW5lIExERVZfR1BJTyAgICAgICAgICAgMHgwNyAgICAvKkdlbmVyYWwgUHVycG9zZSBJTyBhbmQgY2hpcCBzZWxlY3Qgb3V0cHV0IHNpZ25hbHMqLwogI2RlZmluZSBMREVWX1BPV1JNQU4gICAgICAgIDB4MDggICAgLypQb3dlciBNYW5hZ21lbnQqLwogCi0jZGVmaW5lIENGR19OUzg3MzA4X0tCQzEJKDEgPDwgTERFVl9LQkMxKQotI2RlZmluZSBDRkdfTlM4NzMwOF9LQkMyCSgxIDw8IExERVZfS0JDMikKLSNkZWZpbmUgQ0ZHX05TODczMDhfTU9VU0UJKDEgPDwgTERFVl9NT1VTRSkKLSNkZWZpbmUgQ0ZHX05TODczMDhfUlRDX0FQQwkoMSA8PCBMREVWX1JUQ19BUEMpCi0jZGVmaW5lIENGR19OUzg3MzA4X0ZEQwkJKDEgPDwgTERFVl9GREMpCi0jZGVmaW5lIENGR19OUzg3MzA4X1BBUlAJKDEgPDwgTERFVl9QQVJQKQotI2RlZmluZSBDRkdfTlM4NzMwOF9VQVJUMgkoMSA8PCBMREVWX1VBUlQyKQotI2RlZmluZSBDRkdfTlM4NzMwOF9VQVJUMQkoMSA8PCBMREVWX1VBUlQxKQotI2RlZmluZSBDRkdfTlM4NzMwOF9HUElPCSgxIDw8IExERVZfR1BJTykKLSNkZWZpbmUgQ0ZHX05TODczMDhfUE9XUk1BTgkoMSA8PCBMREVWX1BPV1JNQU4pCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9LQkMxCSgxIDw8IExERVZfS0JDMSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0tCQzIJKDEgPDwgTERFVl9LQkMyKQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfTU9VU0UJKDEgPDwgTERFVl9NT1VTRSkKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X1JUQ19BUEMJKDEgPDwgTERFVl9SVENfQVBDKQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfRkRDCQkoMSA8PCBMREVWX0ZEQykKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X1BBUlAJKDEgPDwgTERFVl9QQVJQKQorI2RlZmluZSBDT05GSUdfU1lTX05TODczMDhfVUFSVDIJKDEgPDwgTERFVl9VQVJUMikKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQxCSgxIDw8IExERVZfVUFSVDEpCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9HUElPCSgxIDw8IExERVZfR1BJTykKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X1BPV1JNQU4JKDEgPDwgTERFVl9QT1dSTUFOKQogCiAvKnNvbWUgZnVuY3Rpb25zIGFuZCBtYWNybydzIGZvciBkb2luZyBjb25maWd1cmF0aW9uICovCiAKQEAgLTE2NCw5ICsxNjQsOSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVfcG1fcmVnKHVuc2lnbmVkIHNob3J0IGJhc2UsIHVuc2lnbmVkIGNoYXIgaW5kZXgsIHVuc2lnbmVkIGNoYXIgZGF0YSkKIHsKLSAgICBwY2lfd3JpdGViKGluZGV4LCBDRkdfSVNBX0lPICsgYmFzZSk7CisgICAgcGNpX3dyaXRlYihpbmRleCwgQ09ORklHX1NZU19JU0FfSU8gKyBiYXNlKTsKICAgICBlaWVpbygpOwotICAgIHBjaV93cml0ZWIoZGF0YSwgQ0ZHX0lTQV9JTyArIGJhc2UgKyAxKTsKKyAgICBwY2lfd3JpdGViKGRhdGEsIENPTkZJR19TWVNfSVNBX0lPICsgYmFzZSArIDEpOwogfQogCiAvKnZvaWQgd3JpdGVfcG5wX2NvbmZpZyh1bnNpZ25lZCBjaGFyIGluZGV4LCB1bnNpZ25lZCBjaGFyIGRhdGEpOwpAQCAtMjI4LDIzICsyMjgsMjMgQEAKIC8qCiAgKiBEZWZhdWx0IE5TODczMDggY29uZmlndXJhdGlvbgogICovCi0jaWZuZGVmIENGR19OUzg3MzA4X0tCQzFfQkFTRQotI2RlZmluZSBDRkdfTlM4NzMwOF9LQkMxX0JBU0UJMHgwMDYwCisjaWZuZGVmIENPTkZJR19TWVNfTlM4NzMwOF9LQkMxX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X0tCQzFfQkFTRQkweDAwNjAKICNlbmRpZgotI2lmbmRlZiBDRkdfTlM4NzMwOF9SVENfQkFTRQotI2RlZmluZSBDRkdfTlM4NzMwOF9SVENfQkFTRQkweDAwNzAKKyNpZm5kZWYgQ09ORklHX1NZU19OUzg3MzA4X1JUQ19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9SVENfQkFTRQkweDAwNzAKICNlbmRpZgotI2lmbmRlZiBDRkdfTlM4NzMwOF9GRENfQkFTRQotI2RlZmluZSBDRkdfTlM4NzMwOF9GRENfQkFTRQkweDAzRjAKKyNpZm5kZWYgQ09ORklHX1NZU19OUzg3MzA4X0ZEQ19CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9GRENfQkFTRQkweDAzRjAKICNlbmRpZgotI2lmbmRlZiBDRkdfTlM4NzMwOF9MUFRfQkFTRQotI2RlZmluZSBDRkdfTlM4NzMwOF9MUFRfQkFTRQkweDAyNzgKKyNpZm5kZWYgQ09ORklHX1NZU19OUzg3MzA4X0xQVF9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9MUFRfQkFTRQkweDAyNzgKICNlbmRpZgotI2lmbmRlZiBDRkdfTlM4NzMwOF9VQVJUMV9CQVNFCi0jZGVmaW5lIENGR19OUzg3MzA4X1VBUlQxX0JBU0UJMHgwM0Y4CisjaWZuZGVmIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMV9CQVNFCisjZGVmaW5lIENPTkZJR19TWVNfTlM4NzMwOF9VQVJUMV9CQVNFCTB4MDNGOAogI2VuZGlmCi0jaWZuZGVmIENGR19OUzg3MzA4X1VBUlQyX0JBU0UKLSNkZWZpbmUgQ0ZHX05TODczMDhfVUFSVDJfQkFTRQkweDAyRjgKKyNpZm5kZWYgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyX0JBU0UKKyNkZWZpbmUgQ09ORklHX1NZU19OUzg3MzA4X1VBUlQyX0JBU0UJMHgwMkY4CiAjZW5kaWYKIAogI2VuZGlmIC8qX05TODczMDhfSF8qLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wYXJ0LmggYi9pbmNsdWRlL3BhcnQuaAppbmRleCBiMjJhNjM3Li45ODBmZDA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3BhcnQuaAorKysgYi9pbmNsdWRlL3BhcnQuaApAQCAtNjksNiArNjksNyBAQAogI2RlZmluZSBQQVJUX1RZUEVfRE9TCQkweDAyCiAjZGVmaW5lIFBBUlRfVFlQRV9JU08JCTB4MDMKICNkZWZpbmUgUEFSVF9UWVBFX0FNSUdBCQkweDA0CisjZGVmaW5lIFBBUlRfVFlQRV9FRkkJCTB4MDUKIAogLyoKICAqIFR5cGUgc3RyaW5nIGZvciBVLUJvb3QgYm9vdGFibGUgcGFydGl0aW9ucwpAQCAtMTM1LDQgKzEzNiwxMSBAQAogaW50ICAgdGVzdF9wYXJ0X2FtaWdhIChibG9ja19kZXZfZGVzY190ICpkZXZfZGVzYyk7CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19FRklfUEFSVElUSU9OCisvKiBkaXNrL3BhcnRfZWZpLmMgKi8KK2ludCBnZXRfcGFydGl0aW9uX2luZm9fZWZpIChibG9ja19kZXZfZGVzY190ICogZGV2X2Rlc2MsIGludCBwYXJ0LCBkaXNrX3BhcnRpdGlvbl90ICppbmZvKTsKK3ZvaWQgcHJpbnRfcGFydF9lZmkgKGJsb2NrX2Rldl9kZXNjX3QgKmRldl9kZXNjKTsKK2ludCAgIHRlc3RfcGFydF9lZmkgKGJsb2NrX2Rldl9kZXNjX3QgKmRldl9kZXNjKTsKKyNlbmRpZgorCiAjZW5kaWYgLyogX1BBUlRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wY21jaWEuaCBiL2luY2x1ZGUvcGNtY2lhLmgKaW5kZXggNzMwNTgwNS4uYjYwMzIzZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wY21jaWEuaAorKysgYi9pbmNsdWRlL3BjbWNpYS5oCkBAIC0xMzgsOCArMTM4LDggQEAKICAqCUNvbW1vbiBNZW1vcnkgU3BhY2UKICAqLwogCi0jZGVmaW5lIENGR19QQ01DSUFfUEJSMAkJMHhGRTEwMDAwMAotI2RlZmluZSBDRkdfUENNQ0lBX1BPUjAJICAgICgJUENNQ0lBX0JTSVpFXzIJXAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QQlIwCQkweEZFMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BPUjAJICAgICgJUENNQ0lBX0JTSVpFXzIJXAogCQkJICAgIHwJUENNQ0lBX1BQU18xNglcCiAJCQkgICAgfAlQQ01DSUFfUFJTX01FTQlcCiAJCQkgICAgfAlQQ01DSUFfU0xPVF94CVwKQEAgLTE1Myw4ICsxNTMsOCBAQAogICoJQ29tbW9uIE1lbW9yeSBTcGFjZQogICovCiAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QQlIxCQkweEZFMTAwMDgwCi0jZGVmaW5lIENGR19QQ01DSUFfUE9SMQkgICAgKAlQQ01DSUFfQlNJWkVfOAlcCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BCUjEJCTB4RkUxMDAwODAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUE9SMQkgICAgKAlQQ01DSUFfQlNJWkVfOAlcCiAJCQkgICAgfAlQQ01DSUFfUFBTXzgJXAogCQkJICAgIHwJUENNQ0lBX1BSU19NRU0JXAogCQkJICAgIHwJUENNQ0lBX1NMT1RfeAlcCkBAIC0xNjgsOCArMTY4LDggQEAKICAqCUNvbW1vbiBNZW1vcnkgU3BhY2UKICAqLwogCi0jZGVmaW5lIENGR19QQ01DSUFfUEJSMgkJMHhGRTEwMDEwMAotI2RlZmluZSBDRkdfUENNQ0lBX1BPUjIJICAgICgJUENNQ0lBX0JTSVpFXzgJXAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QQlIyCQkweEZFMTAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BPUjIJICAgICgJUENNQ0lBX0JTSVpFXzgJXAogCQkJICAgIHwJUENNQ0lBX1BQU184CVwKIAkJCSAgICB8CVBDTUNJQV9QUlNfTUVNCVwKIAkJCSAgICB8CVBDTUNJQV9TTE9UX3gJXApAQCAtMTc5LDggKzE3OSw4IEBACiAvKiBXaW5kb3cgMzoKICAqCW5vdCB1c2VkCiAgKi8KLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QQlIzCQkwCi0jZGVmaW5lIENGR19QQ01DSUFfUE9SMwkJMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QQlIzCQkwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BPUjMJCTAKIAogLyogV2luZG93IDQ6CiAgKglCYXNlOiAweEZFMTAwQzAwCUNTMQpAQCAtMTg5LDggKzE4OSw4IEBACiAgKglDb21tb24gTWVtb3J5IFNwYWNlCiAgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX1BCUjQJCTB4RkUxMDBDMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QT1I0CSAgICAoCVBDTUNJQV9CU0laRV8yCVwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUEJSNAkJMHhGRTEwMEMwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QT1I0CSAgICAoCVBDTUNJQV9CU0laRV8yCVwKIAkJCSAgICB8CVBDTUNJQV9QUFNfMTYJXAogCQkJICAgIHwJUENNQ0lBX1BSU19NRU0JXAogCQkJICAgIHwJUENNQ0lBX1NMT1RfeAlcCkBAIC0yMDQsOCArMjA0LDggQEAKICAqCUNvbW1vbiBNZW1vcnkgU3BhY2UKICAqLwogCi0jZGVmaW5lIENGR19QQ01DSUFfUEJSNQkJMHhGRTEwMEM4MAotI2RlZmluZSBDRkdfUENNQ0lBX1BPUjUJICAgICgJUENNQ0lBX0JTSVpFXzgJXAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QQlI1CQkweEZFMTAwQzgwCisjZGVmaW5lIENPTkZJR19TWVNfUENNQ0lBX1BPUjUJICAgICgJUENNQ0lBX0JTSVpFXzgJXAogCQkJICAgIHwJUENNQ0lBX1BQU184CVwKIAkJCSAgICB8CVBDTUNJQV9QUlNfTUVNCVwKIAkJCSAgICB8CVBDTUNJQV9TTE9UX3gJXApAQCAtMjE5LDggKzIxOSw4IEBACiAgKglDb21tb24gTWVtb3J5IFNwYWNlCiAgKi8KIAotI2RlZmluZSBDRkdfUENNQ0lBX1BCUjYJCTB4RkUxMDBEMDAKLSNkZWZpbmUgQ0ZHX1BDTUNJQV9QT1I2CSAgICAoCVBDTUNJQV9CU0laRV84CVwKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUEJSNgkJMHhGRTEwMEQwMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QT1I2CSAgICAoCVBDTUNJQV9CU0laRV84CVwKIAkJCSAgICB8CVBDTUNJQV9QUFNfOAlcCiAJCQkgICAgfAlQQ01DSUFfUFJTX01FTQlcCiAJCQkgICAgfAlQQ01DSUFfU0xPVF94CVwKQEAgLTIzMCw4ICsyMzAsOCBAQAogLyogV2luZG93IDc6CiAgKglub3QgdXNlZAogICovCi0jZGVmaW5lIENGR19QQ01DSUFfUEJSNwkJMAotI2RlZmluZSBDRkdfUENNQ0lBX1BPUjcJCTAKKyNkZWZpbmUgQ09ORklHX1NZU19QQ01DSUFfUEJSNwkJMAorI2RlZmluZSBDT05GSUdfU1lTX1BDTUNJQV9QT1I3CQkwCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Bvc3QuaCBiL2luY2x1ZGUvcG9zdC5oCmluZGV4IDEyMzYyM2YuLjk3NTgzYjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcG9zdC5oCisrKyBiL2luY2x1ZGUvcG9zdC5oCkBAIC04MiwyOCArODIsMjggQEAKIAogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwogCi0jZGVmaW5lIENGR19QT1NUX1JUQwkJMHgwMDAwMDAwMQotI2RlZmluZSBDRkdfUE9TVF9XQVRDSERPRwkweDAwMDAwMDAyCi0jZGVmaW5lIENGR19QT1NUX01FTU9SWQkJMHgwMDAwMDAwNAotI2RlZmluZSBDRkdfUE9TVF9DUFUJCTB4MDAwMDAwMDgKLSNkZWZpbmUgQ0ZHX1BPU1RfSTJDCQkweDAwMDAwMDEwCi0jZGVmaW5lIENGR19QT1NUX0NBQ0hFCQkweDAwMDAwMDIwCi0jZGVmaW5lIENGR19QT1NUX1VBUlQJCTB4MDAwMDAwNDAKLSNkZWZpbmUgQ0ZHX1BPU1RfRVRIRVIJCTB4MDAwMDAwODAKLSNkZWZpbmUgQ0ZHX1BPU1RfU1BJCQkweDAwMDAwMTAwCi0jZGVmaW5lIENGR19QT1NUX1VTQgkJMHgwMDAwMDIwMAotI2RlZmluZSBDRkdfUE9TVF9TUFIJCTB4MDAwMDA0MDAKLSNkZWZpbmUgQ0ZHX1BPU1RfU1lTTU9OCQkweDAwMDAwODAwCi0jZGVmaW5lIENGR19QT1NUX0RTUAkJMHgwMDAwMTAwMAotI2RlZmluZSBDRkdfUE9TVF9PQ00JCTB4MDAwMDIwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfRlBVCQkweDAwMDA0MDAwCi0jZGVmaW5lIENGR19QT1NUX0VDQwkJMHgwMDAwODAwMAotI2RlZmluZSBDRkdfUE9TVF9CU1BFQzEJCTB4MDAwMTAwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfQlNQRUMyCQkweDAwMDIwMDAwCi0jZGVmaW5lIENGR19QT1NUX0JTUEVDMwkJMHgwMDA0MDAwMAotI2RlZmluZSBDRkdfUE9TVF9CU1BFQzQJCTB4MDAwODAwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfQlNQRUM1CQkweDAwMTAwMDAwCi0jZGVmaW5lIENGR19QT1NUX0NPREVDCQkweDAwMjAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9SVEMJCTB4MDAwMDAwMDEKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1dBVENIRE9HCTB4MDAwMDAwMDIKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX01FTU9SWQkJMHgwMDAwMDAwNAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQ1BVCQkweDAwMDAwMDA4CisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9JMkMJCTB4MDAwMDAwMTAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0NBQ0hFCQkweDAwMDAwMDIwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUCQkweDAwMDAwMDQwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9FVEhFUgkJMHgwMDAwMDA4MAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfU1BJCQkweDAwMDAwMTAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VU0IJCTB4MDAwMDAyMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX1NQUgkJMHgwMDAwMDQwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfU1lTTU9OCQkweDAwMDAwODAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9EU1AJCTB4MDAwMDEwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX09DTQkJMHgwMDAwMjAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfRlBVCQkweDAwMDA0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9FQ0MJCTB4MDAwMDgwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0JTUEVDMQkJMHgwMDAxMDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQlNQRUMyCQkweDAwMDIwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9CU1BFQzMJCTB4MDAwNDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0JTUEVDNAkJMHgwMDA4MDAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQlNQRUM1CQkweDAwMTAwMDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9DT0RFQwkJMHgwMDIwMDAwMAogCiAjZW5kaWYgLyogQ09ORklHX1BPU1QgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wcGM0MDUuaCBiL2luY2x1ZGUvcHBjNDA1LmgKaW5kZXggZjE5YjY3Zi4uOTE3YWZlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wcGM0MDUuaAorKysgYi9pbmNsdWRlL3BwYzQwNS5oCkBAIC0yNyw5ICsyNyw5IEBACiAjZGVmaW5lIFBQQ18xMjhNQl9TQUNSX1ZBTFVFKGFkZHIpCVBQQ19SRUdfVkFMKFBQQ18xMjhNQl9TQUNSX0JJVChhZGRyKSwxKQogCiAjaWZuZGVmIENPTkZJR19JT1A0ODAKLSNkZWZpbmUgQ0ZHX0RDQUNIRV9TSVpFCQkoMTYgPDwgMTApCS8qIEZvciBBTUNDIDQwNSBDUFVzCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCSgxNiA8PCAxMCkJLyogRm9yIEFNQ0MgNDA1IENQVXMJKi8KICNlbHNlCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJKDIgPDwgMTApCS8qIEZvciBQTFggSU9QNDgwICg0MDMpCSovCisjZGVmaW5lIENPTkZJR19TWVNfRENBQ0hFX1NJWkUJCSgyIDw8IDEwKQkvKiBGb3IgUExYIElPUDQ4MCAoNDAzKQkqLwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BwYzQ0MC5oIGIvaW5jbHVkZS9wcGM0NDAuaAppbmRleCBiZThkM2ZmLi42NjRmODAyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3BwYzQ0MC5oCisrKyBiL2luY2x1ZGUvcHBjNDQwLmgKQEAgLTQ2LDcgKzQ2LDcgQEAKICNpZm5kZWYgX19QUEM0NDBfSF9fCiAjZGVmaW5lIF9fUFBDNDQwX0hfXwogCi0jZGVmaW5lIENGR19EQ0FDSEVfU0laRQkJKDMyIDw8IDEwKQkvKiBGb3IgQU1DQyA0NDAgQ1BVcwkqLworI2RlZmluZSBDT05GSUdfU1lTX0RDQUNIRV9TSVpFCQkoMzIgPDwgMTApCS8qIEZvciBBTUNDIDQ0MCBDUFVzCSovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAvKiBTcGVjaWFsIFB1cnBvc2UgUmVnaXN0ZXJzCQkJCQkJKi8KQEAgLTE4ODYsMTcgKzE4ODYsMTcgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHwgUENJIEludGVybmFsIFJlZ2lzdGVycyBldC4gYWwuIChhY2Nlc3NlZCB2aWEgcGxiKQogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotI2RlZmluZSBQQ0lYMF9DRkdBRFIJCShDRkdfUENJX0JBU0UgKyAweDBlYzAwMDAwKQotI2RlZmluZSBQQ0lYMF9DRkdEQVRBCQkoQ0ZHX1BDSV9CQVNFICsgMHgwZWMwMDAwNCkKLSNkZWZpbmUgUENJWDBfQ0ZHQkFTRQkJKENGR19QQ0lfQkFTRSArIDB4MGVjODAwMDApCi0jZGVmaW5lIFBDSVgwX0lPQkFTRQkJKENGR19QQ0lfQkFTRSArIDB4MDgwMDAwMDApCisjZGVmaW5lIFBDSVgwX0NGR0FEUgkJKENPTkZJR19TWVNfUENJX0JBU0UgKyAweDBlYzAwMDAwKQorI2RlZmluZSBQQ0lYMF9DRkdEQVRBCQkoQ09ORklHX1NZU19QQ0lfQkFTRSArIDB4MGVjMDAwMDQpCisjZGVmaW5lIFBDSVgwX0NGR0JBU0UJCShDT05GSUdfU1lTX1BDSV9CQVNFICsgMHgwZWM4MDAwMCkKKyNkZWZpbmUgUENJWDBfSU9CQVNFCQkoQ09ORklHX1NZU19QQ0lfQkFTRSArIDB4MDgwMDAwMDApCiAKICNpZiBkZWZpbmVkKENPTkZJR180NDBFUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1IpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkKIAogLyogUENJIExvY2FsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXJzCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSNkZWZpbmUgUENJX01NSU9fTENSX0JBU0UgKENGR19QQ0lfQkFTRSArIDB4MGY0MDAwMDApICAgIC8qIFJlYWwgPT4gMHgwRUY0MDAwMDAgKi8KKyNkZWZpbmUgUENJX01NSU9fTENSX0JBU0UgKENPTkZJR19TWVNfUENJX0JBU0UgKyAweDBmNDAwMDAwKSAgICAvKiBSZWFsID0+IDB4MEVGNDAwMDAwICovCiAKIC8qIFBDSSBNYXN0ZXIgTG9jYWwgQ29uZmlndXJhdGlvbiBSZWdpc3RlcnMgKi8KICNkZWZpbmUgUENJWDBfUE1NMExBICAgICAgICAgKFBDSV9NTUlPX0xDUl9CQVNFICsgMHgwMCkgLyogUE1NMCBMb2NhbCBBZGRyZXNzICovCkBAIC0xOTgxLDcgKzE5ODEsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHXzQ0MEVQWCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1JYKQogCiAvKiBVU0IyLjAgRGV2aWNlICovCi0jZGVmaW5lIFVTQjJEMF9CQVNFICAgICAgICAgQ0ZHX1VTQjJEMF9CQVNFCisjZGVmaW5lIFVTQjJEMF9CQVNFICAgICAgICAgQ09ORklHX1NZU19VU0IyRDBfQkFTRQogCiAjZGVmaW5lIFVTQjJEMF9JTlRSSU4gICAgICAgKFVTQjJEMF9CQVNFICsgMHgwMDAwMDAwMCkKIApAQCAtMjAxMSw3ICsyMDExLDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR180NDBHUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1gpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180NDBTUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwU1BFKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDYwU1gpCi0jZGVmaW5lIEdQSU8wX0JBU0UgICAgICAgICAgICAgKENGR19QRVJJUEhFUkFMX0JBU0UrMHgwMDAwMDcwMCkKKyNkZWZpbmUgR1BJTzBfQkFTRSAgICAgICAgICAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UrMHgwMDAwMDcwMCkKIAogI2RlZmluZSBHUElPMF9PUiAgICAgICAgICAgICAgIChHUElPMF9CQVNFKzB4MCkKICNkZWZpbmUgR1BJTzBfVENSICAgICAgICAgICAgICAoR1BJTzBfQkFTRSsweDQpCkBAIC0yMDIyLDggKzIwMjIsOCBAQAogI2lmIGRlZmluZWQoQ09ORklHXzQ0MEVQKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUikgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ0MEVQWCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1JYKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDYwRVgpIHx8IGRlZmluZWQoQ09ORklHXzQ2MEdUKQotI2RlZmluZSBHUElPMF9CQVNFICAgICAgICAgICAgIChDRkdfUEVSSVBIRVJBTF9CQVNFKzB4MDAwMDBCMDApCi0jZGVmaW5lIEdQSU8xX0JBU0UgICAgICAgICAgICAgKENGR19QRVJJUEhFUkFMX0JBU0UrMHgwMDAwMEMwMCkKKyNkZWZpbmUgR1BJTzBfQkFTRSAgICAgICAgICAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UrMHgwMDAwMEIwMCkKKyNkZWZpbmUgR1BJTzFfQkFTRSAgICAgICAgICAgICAoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UrMHgwMDAwMEMwMCkKIAogI2RlZmluZSBHUElPMF9PUiAgICAgICAgICAgICAgIChHUElPMF9CQVNFKzB4MCkKICNkZWZpbmUgR1BJTzBfVENSICAgICAgICAgICAgICAoR1BJTzBfQkFTRSsweDQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BwYzR4eC5oIGIvaW5jbHVkZS9wcGM0eHguaAppbmRleCBlMjE2NjYzLi5jZTRiMjlhIDEwMDY0NAotLS0gYS9pbmNsdWRlL3BwYzR4eC5oCisrKyBiL2luY2x1ZGUvcHBjNHh4LmgKQEAgLTEwNyw4ICsxMDcsOCBAQAogICogRW5hYmxlIGxvbmcgbG9uZyAoJWxsIC4uLikgcHJpbnRmIGZvcm1hdCBvbiA0NDAgUFBDJ3Mgc2luY2UgbW9zdCBvZgogICogdGhlbSBzdXBwb3J0IDM2Yml0IHBoeXNpY2FsIGFkZHJlc3NpbmcKICAqLwotI2RlZmluZSBDRkdfNjRCSVRfVlNQUklOVEYKLSNkZWZpbmUgQ0ZHXzY0QklUX1NUUlRPVUwKKyNkZWZpbmUgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgorI2RlZmluZSBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwKICNpbmNsdWRlIDxwcGM0NDAuaD4KICNlbHNlCiAjaW5jbHVkZSA8cHBjNDA1Lmg+CkBAIC0xNDMsNyArMTQzLDcgQEAKICNkZWZpbmUgX1NUQVJUX09GRlNFVAkJKEVYQ19PRkZfU1lTX1JFU0VUICsgMHgyMDAwKQogCiAjZGVmaW5lIFJFU0VUX1ZFQ1RPUgkweGZmZmZmZmZjCi0jZGVmaW5lIENBQ0hFTElORV9NQVNLCShDRkdfQ0FDSEVMSU5FX1NJWkUgLSAxKSAvKiBBZGRyZXNzIG1hc2sgZm9yIGNhY2hlCisjZGVmaW5lIENBQ0hFTElORV9NQVNLCShDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFIC0gMSkgLyogQWRkcmVzcyBtYXNrIGZvciBjYWNoZQogCQkJCQkJICAgICBsaW5lIGFsaWduZWQgZGF0YS4gKi8KIAogI2RlZmluZSBDUFIwX0RDUl9CQVNFCTB4MEMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHBjNHh4X2VuZXQuaCBiL2luY2x1ZGUvcHBjNHh4X2VuZXQuaAppbmRleCAwMDY2OWE3Li4zZTEwODgzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3BwYzR4eF9lbmV0LmgKKysrIGIvaW5jbHVkZS9wcGM0eHhfZW5ldC5oCkBAIC0xNzEsOSArMTcxLDkgQEAKICNpZiBkZWZpbmVkKENPTkZJR180NDBFUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1IpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ2MEVYKSB8fCBkZWZpbmVkKENPTkZJR180NjBHVCkKLSNkZWZpbmUgWk1JSV9CQVNFCQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MEQwMCkKKyNkZWZpbmUgWk1JSV9CQVNFCQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDBEMDApCiAjZWxzZQotI2RlZmluZSBaTUlJX0JBU0UJCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwNzgwKQorI2RlZmluZSBaTUlJX0JBU0UJCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDc4MCkKICNlbmRpZgogI2RlZmluZSBaTUlJX0ZFUgkJKFpNSUlfQkFTRSkKICNkZWZpbmUgWk1JSV9TU1IJCShaTUlJX0JBU0UgKyA0KQpAQCAtMjE2LDEzICsyMTYsMTMgQEAKIAogLyogUkdNSUkgUmVnaXN0ZXIgQWRkcmVzc2VzICovCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUlgpCi0jZGVmaW5lIFJHTUlJX0JBU0UJCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgxMDAwKQorI2RlZmluZSBSR01JSV9CQVNFCQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDEwMDApCiAjZWxpZiBkZWZpbmVkKENPTkZJR180NjBFWCkgfHwgZGVmaW5lZChDT05GSUdfNDYwR1QpCi0jZGVmaW5lIFJHTUlJX0JBU0UJCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgxNTAwKQorI2RlZmluZSBSR01JSV9CQVNFCQkoQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDE1MDApCiAjZWxpZiBkZWZpbmVkKENPTkZJR180MDVFWCkKLSNkZWZpbmUgUkdNSUlfQkFTRQkJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweEIwMCkKKyNkZWZpbmUgUkdNSUlfQkFTRQkJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHhCMDApCiAjZWxzZQotI2RlZmluZSBSR01JSV9CQVNFCQkoQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDc5MCkKKyNkZWZpbmUgUkdNSUlfQkFTRQkJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwNzkwKQogI2VuZGlmCiAjZGVmaW5lIFJHTUlJX0ZFUgkJKFJHTUlJX0JBU0UgKyAweDAwKQogI2RlZmluZSBSR01JSV9TU1IJCShSR01JSV9CQVNFICsgMHgwNCkKQEAgLTI2MCw3ICsyNjAsNyBAQAogfCAgVENQL0lQIEFjY2VsZXJhdGlvbiBIYXJkd2FyZSAoVEFIKSA0NDBHWCBPbmx5CiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR180NDBHWCkKLSNkZWZpbmUgVEFIX0JBU0UJCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwQjUwKQorI2RlZmluZSBUQUhfQkFTRQkJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwQjUwKQogI2RlZmluZSBUQUhfUkVWSUQJCShUQUhfQkFTRSArIDB4MCkgICAgLyogUmV2aXNpb24gSUQgKFJPKSovCiAjZGVmaW5lIFRBSF9NUgkJCShUQUhfQkFTRSArIDB4MTApICAgLyogTW9kZSBSZWdpc3RlciAoUi9XKSAqLwogI2RlZmluZSBUQUhfU1NSMAkJKFRBSF9CQVNFICsgMHgxNCkgICAvKiBTZWdtZW50IFNpemUgUmVnIDAgKFIvVykgKi8KQEAgLTMyNiw5ICszMjYsOSBAQAogI2lmIGRlZmluZWQoQ09ORklHXzQ0MEVQKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUikgfHwgXAogICAgIGRlZmluZWQoQ09ORklHXzQ0MEVQWCkgfHwgZGVmaW5lZChDT05GSUdfNDQwR1JYKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDYwRVgpIHx8IGRlZmluZWQoQ09ORklHXzQ2MEdUKQotI2RlZmluZSBFTUFDX0JBU0UJCShDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwRTAwKQorI2RlZmluZSBFTUFDX0JBU0UJCShDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MEUwMCkKICNlbHNlCi0jZGVmaW5lIEVNQUNfQkFTRQkJKENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDA4MDApCisjZGVmaW5lIEVNQUNfQkFTRQkJKENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwODAwKQogI2VuZGlmCiAjZWxzZQogI2lmIGRlZmluZWQoQ09ORklHXzQwNUVaKSB8fCBkZWZpbmVkKENPTkZJR180MDVFWCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHMybXVsdC5oIGIvaW5jbHVkZS9wczJtdWx0LmgKaW5kZXggZTY4NTgxNy4uNTk5Y2I2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wczJtdWx0LmgKKysrIGIvaW5jbHVkZS9wczJtdWx0LmgKQEAgLTIyLDcgKzIyLDcgQEAKICNkZWZpbmUJUFMyQlVGX1NJWkUJCQk1MTIJLyogcG93ZXIgb2YgMiwgcGxlYXNlICovCiAKICNpZm5kZWYgQ09ORklHX1BTMk1VTFRfREVMQVkKLSNkZWZpbmUgQ09ORklHX1BTMk1VTFRfREVMQVkJKENGR19IWi8yKQkvKiBJbml0aWFsIGRlbGF5CSovCisjZGVmaW5lIENPTkZJR19QUzJNVUxUX0RFTEFZCShDT05GSUdfU1lTX0haLzIpCS8qIEluaXRpYWwgZGVsYXkJKi8KICNlbmRpZgogCiAgIC8qIFBTLzIgY29udHJvbGxlciBpbnRlcmZhY2UgKGluY2x1ZGUvYXNtL2tleWJvYXJkLmgpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JhZGVvbi5oIGIvaW5jbHVkZS9yYWRlb24uaAppbmRleCAzNTg3NWYxLi5kYTZjMjZiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JhZGVvbi5oCisrKyBiL2luY2x1ZGUvcmFkZW9uLmgKQEAgLTUxMywxMSArNTEzLDExIEBACiAjZGVmaW5lIFBMTF9XUl9FTgkJCTB4MDAwMDAwODAKIAogLyogQ09ORklHX0NOVEwgYml0IGNvbnN0YW50cyAqLwotI2RlZmluZSBDRkdfVkdBX1JBTV9FTgkJCTB4MDAwMDAxMDAKLSNkZWZpbmUgQ0ZHX0FUSV9SRVZfSURfTUFTSwkJKDB4ZiA8PCAxNikKLSNkZWZpbmUgQ0ZHX0FUSV9SRVZfQTExCQkJKDAgPDwgMTYpCi0jZGVmaW5lIENGR19BVElfUkVWX0ExMgkJCSgxIDw8IDE2KQotI2RlZmluZSBDRkdfQVRJX1JFVl9BMTMJCQkoMiA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19WR0FfUkFNX0VOCQkJMHgwMDAwMDEwMAorI2RlZmluZSBDT05GSUdfU1lTX0FUSV9SRVZfSURfTUFTSwkJKDB4ZiA8PCAxNikKKyNkZWZpbmUgQ09ORklHX1NZU19BVElfUkVWX0ExMQkJCSgwIDw8IDE2KQorI2RlZmluZSBDT05GSUdfU1lTX0FUSV9SRVZfQTEyCQkJKDEgPDwgMTYpCisjZGVmaW5lIENPTkZJR19TWVNfQVRJX1JFVl9BMTMJCQkoMiA8PCAxNikKIAogLyogQ1JUQ19FWFRfQ05UTCBiaXQgY29uc3RhbnRzICovCiAjZGVmaW5lIFZHQV9BVElfTElORUFSCQkJMHgwMDAwMDAwOApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zZXJpYWwuaCBiL2luY2x1ZGUvc2VyaWFsLmgKaW5kZXggMmI5OWU1My4uZTNkOGIzNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zZXJpYWwuaAorKysgYi9pbmNsdWRlL3NlcmlhbC5oCkBAIC0yNywxMiArMjcsMTIgQEAKICAgICBkZWZpbmVkKENPTkZJR19NUEM1eHh4KQogZXh0ZXJuIHN0cnVjdCBzZXJpYWxfZGV2aWNlIHNlcmlhbDBfZGV2aWNlOwogZXh0ZXJuIHN0cnVjdCBzZXJpYWxfZGV2aWNlIHNlcmlhbDFfZGV2aWNlOwotI2lmIGRlZmluZWQoQ0ZHX05TMTY1NTBfU0VSSUFMKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTCkKIGV4dGVybiBzdHJ1Y3Qgc2VyaWFsX2RldmljZSBlc2VyaWFsMV9kZXZpY2U7CiBleHRlcm4gc3RydWN0IHNlcmlhbF9kZXZpY2UgZXNlcmlhbDJfZGV2aWNlOwogZXh0ZXJuIHN0cnVjdCBzZXJpYWxfZGV2aWNlIGVzZXJpYWwzX2RldmljZTsKIGV4dGVybiBzdHJ1Y3Qgc2VyaWFsX2RldmljZSBlc2VyaWFsNF9kZXZpY2U7Ci0jZW5kaWYgLyogQ0ZHX05TMTY1NTBfU0VSSUFMICovCisjZW5kaWYgLyogQ09ORklHX1NZU19OUzE2NTUwX1NFUklBTCAqLwogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGF0dXNfbGVkLmggYi9pbmNsdWRlL3N0YXR1c19sZWQuaAppbmRleCBkMTJiYjY3Li43OWJlNjk4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3N0YXR1c19sZWQuaAorKysgYi9pbmNsdWRlL3N0YXR1c19sZWQuaApAQCAtNTAsNyArNTAsNyBAQAogIyBkZWZpbmUgU1RBVFVTX0xFRF9EQVQJCWltX2NwbS5jcF9wYmRhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDAwMDAwMQotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMQkJLyogTEVEIG9uIGZvciBiaXQgPT0gMQkqLwpAQCAtNjUsNyArNjUsNyBAQAogIyBkZWZpbmUgU1RBVFVTX0xFRF9EQVQJCWltX2lvcG9ydC5pb3BfcGRkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwMDEKLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTEJCS8qIExFRCBvbiBmb3IgYml0ID09IDEJKi8KQEAgLTgxLDcgKzgxLDcgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9pb3BvcnQuaW9wX3BkZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDAwMDAwMDAxCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkwCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAwCSovCkBAIC05NywxNiArOTcsMTYgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQkJaW1faW9wb3J0LmlvcF9wYWRhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJCTB4MDgwMAkvKiBSZWQgTEVEIDAgaXMgb24gUEEuNAkqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJCShDRkdfSFogLyA0KQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJCShDT05GSUdfU1lTX0haIC8gNCkKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJCVNUQVRVU19MRURfT0ZGCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVDEJCTB4MDQwMAkvKiBHcm4gTEVEIDEgaXMgb24gUEEuNQkqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCQkoQ0ZHX0haIC8gOCkKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkJKENPTkZJR19TWVNfSFogLyA4KQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJCVNUQVRVU19MRURfQkxJTktJTkcKICMgZGVmaW5lIFNUQVRVU19MRURfQklUMgkJMHgwMDgwCS8qIFJlZCBMRUQgMiBpcyBvbiBQQS44CSovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDIJCShDRkdfSFogLyA0KQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QyCQkoQ09ORklHX1NZU19IWiAvIDQpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFMgkJU1RBVFVTX0xFRF9PRkYKICMgZGVmaW5lIFNUQVRVU19MRURfQklUMwkJMHgwMDQwCS8qIEdybiBMRUQgMyBpcyBvbiBQQS45CSovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDMJCShDRkdfSFogLyA0KQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QzCQkoQ09ORklHX1NZU19IWiAvIDQpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFMwkJU1RBVFVTX0xFRF9PRkYKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJCTEJLyogTEVEIG9uIGZvciBiaXQgPT0gMQkqLwpAQCAtMTIxLDIxICsxMjEsMjEgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9jcG0uY3BfcGJkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMDAwMTAJLyogTEVEIDAgaXMgb24gUEIuMjcJKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECSgxICogQ0ZHX0haKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDEgKiBDT05GSUdfU1lTX0haKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX09GRgogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQxCTB4MDAwMDAwMjAJLyogTEVEIDEgaXMgb24gUEIuMjYJKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoMSAqIENGR19IWikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoMSAqIENPTkZJR19TWVNfSFopCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFMQlTVEFUVVNfTEVEX09GRgogLyogSURFIExFRCB1c2FibGUgZm9yIG90aGVyIHB1cnBvc2VzLCB0b28gKi8KICMgZGVmaW5lIFNUQVRVU19MRURfQklUMgkweDAwMDAwMDA4CS8qIExFRCAyIGlzIG9uIFBCLjI4CSovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDIJKDEgKiBDRkdfSFopCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDIJKDEgKiBDT05GSUdfU1lTX0haKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTIJU1RBVFVTX0xFRF9PRkYKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMQkJLyogTEVEIG9uIGZvciBiaXQgPT0gMQkqLwogCiAjIGRlZmluZSBTVEFUVVNfSUxPQ0tfU1dJVENICTB4MDA4MDAwMDAJLyogSUxPQ0sgc3dpdGNoIGluIElSUTQJKi8KIAotIyBkZWZpbmUgU1RBVFVTX0lMT0NLX1BFUklPRAkoQ0ZHX0haIC8gMTApCS8qIGFib3V0IGV2ZXJ5IDEwMCBtcwkqLworIyBkZWZpbmUgU1RBVFVTX0lMT0NLX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDEwKQkvKiBhYm91dCBldmVyeSAxMDAgbXMJKi8KIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9ZRUxMT1cJMAogIyBkZWZpbmUgU1RBVFVTX0xFRF9HUkVFTgkxCkBAIC0xNTAsMjEgKzE1MCwyMSBAQAogIyBkZWZpbmUgU1RBVFVTX0xFRF9EQVQJCWltX2NwbS5jcF9wYmRhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDAwMDAxMAkvKiBMRUQgMCBpcyBvbiBQQi4yNwkqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKDEgKiBDRkdfSFopCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoMSAqIENPTkZJR19TWVNfSFopCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfT0ZGCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVDEJMHgwMDAwMDAyMAkvKiBMRUQgMSBpcyBvbiBQQi4yNgkqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCSgxICogQ0ZHX0haKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCSgxICogQ09ORklHX1NZU19IWikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUxCVNUQVRVU19MRURfT0ZGCiAvKiBJREUgTEVEIHVzYWJsZSBmb3Igb3RoZXIgcHVycG9zZXMsIHRvbyAqLwogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQyCTB4MDAwMDAwMDgJLyogTEVEIDIgaXMgb24gUEIuMjgJKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMgkoMSAqIENGR19IWikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMgkoMSAqIENPTkZJR19TWVNfSFopCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFMglTVEFUVVNfTEVEX09GRgogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkxCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAxCSovCiAKICMgZGVmaW5lIFNUQVRVU19JTE9DS19TV0lUQ0gJMHgwMDAwNDAwMAkvKiBJTE9DSyBpcyBvbiBQQi4xNwkqLwogCi0jIGRlZmluZSBTVEFUVVNfSUxPQ0tfUEVSSU9ECShDRkdfSFogLyAxMCkJLyogYWJvdXQgZXZlcnkgMTAwIG1zCSovCisjIGRlZmluZSBTVEFUVVNfSUxPQ0tfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMTApCS8qIGFib3V0IGV2ZXJ5IDEwMCBtcwkqLwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX1lFTExPVwkwCiAjIGRlZmluZSBTVEFUVVNfTEVEX0dSRUVOCTEKQEAgLTE4Myw3ICsxODMsNyBAQAogIyBlbHNlCiAjICBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJMHgwODAwCiAjIGVuZGlmCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkwCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAwICovCkBAIC0xOTksNyArMTk5LDcgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUCQlpbV9jcG0uY3BfcGJkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDAwMTAwMDAJLyogZ3JlZW4gTEVEIGlzIG9uIFBCLjE1ICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkxCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAxICovCkBAIC0yMTUsMTAgKzIxNSwxMCBAQAogIyBkZWZpbmUgU1RBVFVTX0xFRF9EQVQJCWltX2lvcG9ydC5pb3BfcGFkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4NDAwMAkJLyogTEVEIDAgaXMgb24gUEEuMSAqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKICMgZGVmaW5lIFNUQVRVU19MRURfQklUMQkweDEwMDAJCS8qIExFRCAxIGlzIG9uIFBBLjMgKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoQ0ZHX0haKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QxCShDT05GSUdfU1lTX0haKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJU1RBVFVTX0xFRF9PRkYKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMQkJLyogTEVEIG9uIGZvciBiaXQgPT0gMQkqLwpAQCAtMjQ0LDExICsyNDQsMTEgQEAKICNkZWZpbmUgU1RBVFVTX0xFRF9EQVQJCWltX2lvcG9ydC5pb3BfcGRkYXQKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCTB4MDA4MAkJCS8qIFBELjggKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUMQkweDAwNDAJCQkvKiBQRC45ICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEJKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEJU1RBVFVTX0xFRF9PRkYKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMAkJLyogTEVEIG9uIGZvciBiaXQgPT0gMAkqLwpAQCAtMjYzLDcgKzI2Myw3IEBACiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUCQkweDIwMDAJCS8qIFNlbGVjdCBvbmUgb2YgdGhlIDE2IHBvc3NpYmxlKi8KIAkJCQkJCS8qIE1JT1Mgb3V0cHV0cyAqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCS8qIEJsaW5raW5nIHBlcmlvZGUgaXMgNTAwIG1zICovCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCS8qIEJsaW5raW5nIHBlcmlvZGUgaXMgNTAwIG1zICovCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMQkJLyogTEVEIG9uIGZvciBiaXQgPT0gMAkqLwpAQCAtMjc4LDcgKzI3OCw3IEBACiAjIGRlZmluZSBTVEFUVVNfTEVEX0RBVAkJaW1faW9wb3J0LmlvcF9wYWRhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDAwMDMwMCAgLyogIGdyZWVuICsgcmVkICAgIFBBWzhdPXllbGxvdywgIFBBWzddPXJlZCwgIFBBWzZdPWdyZWVuICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMikKICMgZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRQkxCQkvKiBMRUQgb24gZm9yIGJpdCA9PSAxCSovCkBAIC0yOTIsNyArMjkyLDcgQEAKICMgZGVmaW5lIFNUQVRVU19MRURfREFUICAgICAgICAgaW1fY3BtLmNwX3BiZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUICAgICAgICAgMHgwMDAwMDAwMQotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QgICAgICAoQ0ZHX0haIC8gMikKKyMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EICAgICAgKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURSAgICAgICBTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFICAgICAgMSAgICAgICAgICAgICAgIC8qIExFRCBvbiBmb3IgYml0ID09IDEgICovCkBAIC0zMDgsMTAgKzMwOCwxMCBAQAogIyBkZWZpbmUgU1RBVFVTX0xFRF9EQVQgICAgICAgICBpbV9pb3BvcnQuaW9wX3BjZGF0CiAKICMgZGVmaW5lIFNUQVRVU19MRURfQklUICAgICAgICAgMHgwMDAyICAgICAgICAgIC8qIExFRCAwIGlzIG9uIFBDLjE0ICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRCAgICAgIChDRkdfSFogLyAyKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QgICAgICAoQ09ORklHX1NZU19IWiAvIDIpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFICAgICAgIFNUQVRVU19MRURfQkxJTktJTkcKICMgZGVmaW5lIFNUQVRVU19MRURfQklUMSAgICAgICAgMHgwMDA0ICAgICAgICAgIC8qIExFRCAxIGlzIG9uIFBDLjEzICovCi0jIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEgICAgIChDRkdfSFopCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRDEgICAgIChDT05GSUdfU1lTX0haKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURTEgICAgICBTVEFUVVNfTEVEX09GRgogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0FDVElWRSAgICAgIDEgICAgICAgICAgICAgICAvKiBMRUQgb24gZm9yIGJpdCA9PSAxICAqLwpAQCAtMzI2LDcgKzMyNiw3IEBACiAjIGRlZmluZSBTVEFUVVNfTEVEX0RBVAkJaW1faW9wb3J0LmlvcF9wYWRhdAogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDAwMDAwMQkvKiBMRUQgaXMgb24gUEExNSAqLwotIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENGR19IWiAvIDIpCisjIGRlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ09ORklHX1NZU19IWiAvIDIpCiAjIGRlZmluZSBTVEFUVVNfTEVEX1NUQVRFCVNUQVRVU19MRURfQkxJTktJTkcKIAogIyBkZWZpbmUgU1RBVFVTX0xFRF9BQ1RJVkUJMQkJLyogTEVEIG9uIGZvciBiaXQgPT0gMQkqLwpAQCAtMzQ5LDcgKzM0OSw3IEBACiAjZWxpZiBkZWZpbmVkKENPTkZJR19WMzhCKQogCiAjIGRlZmluZSBTVEFUVVNfTEVEX0JJVAkJMHgwMDEwCQkJLyogVGltZXI3IEdQSU8gKi8KLSMgZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDRkdfSFogLyAyKQorIyBkZWZpbmUgU1RBVFVTX0xFRF9QRVJJT0QJKENPTkZJR19TWVNfSFogLyAyKQogIyBkZWZpbmUgU1RBVFVTX0xFRF9TVEFURQlTVEFUVVNfTEVEX0JMSU5LSU5HCiAKICMgZGVmaW5lIFNUQVRVU19MRURfQUNUSVZFCTAJCS8qIExFRCBvbiBmb3IgYml0ID09IDAgKi8KQEAgLTM1OCwxMSArMzU4LDExIEBACiAjZWxpZiBkZWZpbmVkKENPTkZJR19NT1RJT05QUk8pCiAKICNkZWZpbmUgU1RBVFVTX0xFRF9CSVQJCSgodnVfbG9uZyAqKSBNUEM1WFhYX0dQVDZfRU5BQkxFKQotI2RlZmluZSBTVEFUVVNfTEVEX1BFUklPRAkoQ0ZHX0haIC8gMTApCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9ECShDT05GSUdfU1lTX0haIC8gMTApCiAjZGVmaW5lIFNUQVRVU19MRURfU1RBVEUJU1RBVFVTX0xFRF9CTElOS0lORwogCiAjZGVmaW5lIFNUQVRVU19MRURfQklUMQkJKCh2dV9sb25nICopIE1QQzVYWFhfR1BUN19FTkFCTEUpCi0jZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoQ0ZHX0haIC8gMTApCisjZGVmaW5lIFNUQVRVU19MRURfUEVSSU9EMQkoQ09ORklHX1NZU19IWiAvIDEwKQogI2RlZmluZSBTVEFUVVNfTEVEX1NUQVRFMQlTVEFUVVNfTEVEX09GRgogCiAjZGVmaW5lIFNUQVRVU19MRURfQk9PVAkJMAkvKiBMRUQgMCB1c2VkIGZvciBib290IHN0YXR1cyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS90c2VjLmggYi9pbmNsdWRlL3RzZWMuaAppbmRleCBmN2U1ODU3Li5kMjk1MWY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3RzZWMuaAorKysgYi9pbmNsdWRlL3RzZWMuaApAQCAtMjAsOCArMjAsOCBAQAogI2luY2x1ZGUgPG5ldC5oPgogI2luY2x1ZGUgPGNvbmZpZy5oPgogCi0jaWZuZGVmIENGR19UU0VDMV9PRkZTRVQKLSAgICAjZGVmaW5lIENGR19UU0VDMV9PRkZTRVQJKDB4MjQwMDApCisjaWZuZGVmIENPTkZJR19TWVNfVFNFQzFfT0ZGU0VUCisgICAgI2RlZmluZSBDT05GSUdfU1lTX1RTRUMxX09GRlNFVAkoMHgyNDAwMCkKICNlbmRpZgogCiAjZGVmaW5lIFRTRUNfU0laRQkweDAxMDAwCkBAIC0yOSw3ICsyOSw3IEBACiAvKiBGSVhNRTogIFNob3VsZCB0aGVzZSBiZSBwdXNoZWQgYmFjayB0byA4M3h4IGFuZCA4NXh4IGNvbmZpZyBmaWxlcz8gKi8KICNpZiBkZWZpbmVkKENPTkZJR19NUEM4NXh4KSB8fCBkZWZpbmVkKENPTkZJR19NUEM4Nnh4KSBcCiAJfHwgZGVmaW5lZChDT05GSUdfTVBDODNYWCkKLSAgICAjZGVmaW5lIFRTRUNfQkFTRV9BRERSCShDRkdfSU1NUiArIENGR19UU0VDMV9PRkZTRVQpCisgICAgI2RlZmluZSBUU0VDX0JBU0VfQUREUgkoQ09ORklHX1NZU19JTU1SICsgQ09ORklHX1NZU19UU0VDMV9PRkZTRVQpCiAjZW5kaWYKIAogI2RlZmluZSBTVERfVFNFQ19JTkZPKG51bSkgXApAQCAtMTA3LDggKzEwNyw4IEBACiAjZGVmaW5lIG1paW1fZW5kIC0yCiAjZGVmaW5lIG1paW1fcmVhZCAtMQogCi0jaWZuZGVmIENGR19UQklQQV9WQUxVRQotICAgICNkZWZpbmUgQ0ZHX1RCSVBBX1ZBTFVFCTB4MWYKKyNpZm5kZWYgQ09ORklHX1NZU19UQklQQV9WQUxVRQorICAgICNkZWZpbmUgQ09ORklHX1NZU19UQklQQV9WQUxVRQkweDFmCiAjZW5kaWYKICNkZWZpbmUgTUlJTUNGR19JTklUX1ZBTFVFCTB4MDAwMDAwMDMKICNkZWZpbmUgTUlJTUNGR19SRVNFVAkJMHg4MDAwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS93ODNjNTUzZi5oIGIvaW5jbHVkZS93ODNjNTUzZi5oCmluZGV4IDg4ZWE5ZGEuLjZhNzZmNWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdzgzYzU1M2YuaAorKysgYi9pbmNsdWRlL3c4M2M1NTNmLmgKQEAgLTczLDMwICs3MywzMCBAQAogLyoKICAqIEludGVycnVwdCBjb250cm9sbGVyCiAgKi8KLSNkZWZpbmUgVzgzQzU1M0ZfUElDMV9JQ1cxCUNGR19JU0FfSU8gKyAweDIwCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzFfSUNXMglDRkdfSVNBX0lPICsgMHgyMQotI2RlZmluZSBXODNDNTUzRl9QSUMxX0lDVzMJQ0ZHX0lTQV9JTyArIDB4MjEKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMV9JQ1c0CUNGR19JU0FfSU8gKyAweDIxCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzFfT0NXMQlDRkdfSVNBX0lPICsgMHgyMQotI2RlZmluZSBXODNDNTUzRl9QSUMxX09DVzIJQ0ZHX0lTQV9JTyArIDB4MjAKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMV9PQ1czCUNGR19JU0FfSU8gKyAweDIwCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzFfRUxDCUNGR19JU0FfSU8gKyAweDREMAotI2RlZmluZSBXODNDNTUzRl9QSUMyX0lDVzEJQ0ZHX0lTQV9JTyArIDB4QTAKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMl9JQ1cyCUNGR19JU0FfSU8gKyAweEExCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzJfSUNXMwlDRkdfSVNBX0lPICsgMHhBMQotI2RlZmluZSBXODNDNTUzRl9QSUMyX0lDVzQJQ0ZHX0lTQV9JTyArIDB4QTEKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMl9PQ1cxCUNGR19JU0FfSU8gKyAweEExCi0jZGVmaW5lIFc4M0M1NTNGX1BJQzJfT0NXMglDRkdfSVNBX0lPICsgMHhBMAotI2RlZmluZSBXODNDNTUzRl9QSUMyX09DVzMJQ0ZHX0lTQV9JTyArIDB4QTAKLSNkZWZpbmUgVzgzQzU1M0ZfUElDMl9FTEMJQ0ZHX0lTQV9JTyArIDB4NEQxCisjZGVmaW5lIFc4M0M1NTNGX1BJQzFfSUNXMQlDT05GSUdfU1lTX0lTQV9JTyArIDB4MjAKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMV9JQ1cyCUNPTkZJR19TWVNfSVNBX0lPICsgMHgyMQorI2RlZmluZSBXODNDNTUzRl9QSUMxX0lDVzMJQ09ORklHX1NZU19JU0FfSU8gKyAweDIxCisjZGVmaW5lIFc4M0M1NTNGX1BJQzFfSUNXNAlDT05GSUdfU1lTX0lTQV9JTyArIDB4MjEKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMV9PQ1cxCUNPTkZJR19TWVNfSVNBX0lPICsgMHgyMQorI2RlZmluZSBXODNDNTUzRl9QSUMxX09DVzIJQ09ORklHX1NZU19JU0FfSU8gKyAweDIwCisjZGVmaW5lIFc4M0M1NTNGX1BJQzFfT0NXMwlDT05GSUdfU1lTX0lTQV9JTyArIDB4MjAKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMV9FTEMJQ09ORklHX1NZU19JU0FfSU8gKyAweDREMAorI2RlZmluZSBXODNDNTUzRl9QSUMyX0lDVzEJQ09ORklHX1NZU19JU0FfSU8gKyAweEEwCisjZGVmaW5lIFc4M0M1NTNGX1BJQzJfSUNXMglDT05GSUdfU1lTX0lTQV9JTyArIDB4QTEKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMl9JQ1czCUNPTkZJR19TWVNfSVNBX0lPICsgMHhBMQorI2RlZmluZSBXODNDNTUzRl9QSUMyX0lDVzQJQ09ORklHX1NZU19JU0FfSU8gKyAweEExCisjZGVmaW5lIFc4M0M1NTNGX1BJQzJfT0NXMQlDT05GSUdfU1lTX0lTQV9JTyArIDB4QTEKKyNkZWZpbmUgVzgzQzU1M0ZfUElDMl9PQ1cyCUNPTkZJR19TWVNfSVNBX0lPICsgMHhBMAorI2RlZmluZSBXODNDNTUzRl9QSUMyX09DVzMJQ09ORklHX1NZU19JU0FfSU8gKyAweEEwCisjZGVmaW5lIFc4M0M1NTNGX1BJQzJfRUxDCUNPTkZJR19TWVNfSVNBX0lPICsgMHg0RDEKIAotI2RlZmluZSBXODNDNTUzRl9UTVIxX0NNT0QJQ0ZHX0lTQV9JTyArIDB4NDMKKyNkZWZpbmUgVzgzQzU1M0ZfVE1SMV9DTU9ECUNPTkZJR19TWVNfSVNBX0lPICsgMHg0MwogCiAvKgogICogRE1BIGNvbnRyb2xsZXIKICAqLwotI2RlZmluZSBXODNDNTUzRl9ETUExCUNGR19JU0FfSU8gKyAweDAwMAkvKiBjaGFubmVsIDAgLSAzICovCi0jZGVmaW5lIFc4M0M1NTNGX0RNQTIJQ0ZHX0lTQV9JTyArIDB4MEMwCS8qIGNoYW5uZWwgNCAtIDcgKi8KKyNkZWZpbmUgVzgzQzU1M0ZfRE1BMQlDT05GSUdfU1lTX0lTQV9JTyArIDB4MDAwCS8qIGNoYW5uZWwgMCAtIDMgKi8KKyNkZWZpbmUgVzgzQzU1M0ZfRE1BMglDT05GSUdfU1lTX0lTQV9JTyArIDB4MEMwCS8qIGNoYW5uZWwgNCAtIDcgKi8KIAogLyogY29tbWFuZC9zdGF0dXMgcmVnaXN0ZXIgYml0IGRlZmluaXRpb25zICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGlsaW54LmggYi9pbmNsdWRlL3hpbGlueC5oCmluZGV4IGFkMzNlMWYuLmZkYzM1ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGlsaW54LmgKKysrIGIvaW5jbHVkZS94aWxpbnguaApAQCAtMjksMjUgKzI5LDI1IEBACiAKIC8qIFhpbGlueCBNb2RlbCBkZWZpbml0aW9ucwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX1NQQVJUQU4yCQkJQ0ZHX0ZQR0FfREVWKCAweDEgKQotI2RlZmluZSBDRkdfVklSVEVYX0UJCQlDRkdfRlBHQV9ERVYoIDB4MiApCi0jZGVmaW5lIENGR19WSVJURVgyCQkJQ0ZHX0ZQR0FfREVWKCAweDQgKQotI2RlZmluZSBDRkdfU1BBUlRBTjMJCQlDRkdfRlBHQV9ERVYoIDB4OCApCi0jZGVmaW5lIENGR19YSUxJTlhfU1BBUlRBTjIJKENGR19GUEdBX1hJTElOWCB8IENGR19TUEFSVEFOMikKLSNkZWZpbmUgQ0ZHX1hJTElOWF9WSVJURVhfRQkoQ0ZHX0ZQR0FfWElMSU5YIHwgQ0ZHX1ZJUlRFWF9FKQotI2RlZmluZSBDRkdfWElMSU5YX1ZJUlRFWDIJKENGR19GUEdBX1hJTElOWCB8IENGR19WSVJURVgyKQotI2RlZmluZSBDRkdfWElMSU5YX1NQQVJUQU4zCShDRkdfRlBHQV9YSUxJTlggfCBDRkdfU1BBUlRBTjMpCisjZGVmaW5lIENPTkZJR19TWVNfU1BBUlRBTjIJCQlDT05GSUdfU1lTX0ZQR0FfREVWKCAweDEgKQorI2RlZmluZSBDT05GSUdfU1lTX1ZJUlRFWF9FCQkJQ09ORklHX1NZU19GUEdBX0RFViggMHgyICkKKyNkZWZpbmUgQ09ORklHX1NZU19WSVJURVgyCQkJQ09ORklHX1NZU19GUEdBX0RFViggMHg0ICkKKyNkZWZpbmUgQ09ORklHX1NZU19TUEFSVEFOMwkJCUNPTkZJR19TWVNfRlBHQV9ERVYoIDB4OCApCisjZGVmaW5lIENPTkZJR19TWVNfWElMSU5YX1NQQVJUQU4yCShDT05GSUdfU1lTX0ZQR0FfWElMSU5YIHwgQ09ORklHX1NZU19TUEFSVEFOMikKKyNkZWZpbmUgQ09ORklHX1NZU19YSUxJTlhfVklSVEVYX0UJKENPTkZJR19TWVNfRlBHQV9YSUxJTlggfCBDT05GSUdfU1lTX1ZJUlRFWF9FKQorI2RlZmluZSBDT05GSUdfU1lTX1hJTElOWF9WSVJURVgyCShDT05GSUdfU1lTX0ZQR0FfWElMSU5YIHwgQ09ORklHX1NZU19WSVJURVgyKQorI2RlZmluZSBDT05GSUdfU1lTX1hJTElOWF9TUEFSVEFOMwkoQ09ORklHX1NZU19GUEdBX1hJTElOWCB8IENPTkZJR19TWVNfU1BBUlRBTjMpCiAvKiBYWFggLSBBZGQgbmV3IG1vZGVscyBoZXJlICovCiAKIAogLyogWGlsaW54IEludGVyZmFjZSBkZWZpbml0aW9ucwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgQ0ZHX1hJTElOWF9JRl9TUwlDRkdfRlBHQV9JRiggMHgxICkJLyogc2xhdmUgc2VyaWFsCQkqLwotI2RlZmluZSBDRkdfWElMSU5YX0lGX01TCUNGR19GUEdBX0lGKCAweDIgKQkvKiBtYXN0ZXIgc2VyaWFsCSovCi0jZGVmaW5lIENGR19YSUxJTlhfSUZfU1AJQ0ZHX0ZQR0FfSUYoIDB4NCApCS8qIHNsYXZlIHBhcmFsbGVsCSovCi0jZGVmaW5lIENGR19YSUxJTlhfSUZfSlRBRwlDRkdfRlBHQV9JRiggMHg4ICkJLyoganRhZwkJCSovCi0jZGVmaW5lIENGR19YSUxJTlhfSUZfTVNNCUNGR19GUEdBX0lGKCAweDEwICkJLyogbWFzdGVyIHNlbGVjdG1hcAkqLwotI2RlZmluZSBDRkdfWElMSU5YX0lGX1NTTQlDRkdfRlBHQV9JRiggMHgyMCApCS8qIHNsYXZlIHNlbGVjdG1hcAkqLworI2RlZmluZSBDT05GSUdfU1lTX1hJTElOWF9JRl9TUwlDT05GSUdfU1lTX0ZQR0FfSUYoIDB4MSApCS8qIHNsYXZlIHNlcmlhbAkJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19YSUxJTlhfSUZfTVMJQ09ORklHX1NZU19GUEdBX0lGKCAweDIgKQkvKiBtYXN0ZXIgc2VyaWFsCSovCisjZGVmaW5lIENPTkZJR19TWVNfWElMSU5YX0lGX1NQCUNPTkZJR19TWVNfRlBHQV9JRiggMHg0ICkJLyogc2xhdmUgcGFyYWxsZWwJKi8KKyNkZWZpbmUgQ09ORklHX1NZU19YSUxJTlhfSUZfSlRBRwlDT05GSUdfU1lTX0ZQR0FfSUYoIDB4OCApCS8qIGp0YWcJCQkqLworI2RlZmluZSBDT05GSUdfU1lTX1hJTElOWF9JRl9NU00JQ09ORklHX1NZU19GUEdBX0lGKCAweDEwICkJLyogbWFzdGVyIHNlbGVjdG1hcAkqLworI2RlZmluZSBDT05GSUdfU1lTX1hJTElOWF9JRl9TU00JQ09ORklHX1NZU19GUEdBX0lGKCAweDIwICkJLyogc2xhdmUgc2VsZWN0bWFwCSovCiAKIC8qIFhpbGlueCB0eXBlcwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KZGlmZiAtLWdpdCBhL2xpYl9hcm0vYm9hcmQuYyBiL2xpYl9hcm0vYm9hcmQuYwppbmRleCBmMDJmZGM4Ny4uNGJhMWY1ZSAxMDA2NDQKLS0tIGEvbGliX2FybS9ib2FyZC5jCisrKyBiL2xpYl9hcm0vYm9hcmQuYwpAQCAtOTUsNyArOTUsNyBAQAogdm9pZCBtZW1fbWFsbG9jX2luaXQgKHVsb25nIGRlc3RfYWRkcikKIHsKIAltZW1fbWFsbG9jX3N0YXJ0ID0gZGVzdF9hZGRyOwotCW1lbV9tYWxsb2NfZW5kID0gZGVzdF9hZGRyICsgQ0ZHX01BTExPQ19MRU47CisJbWVtX21hbGxvY19lbmQgPSBkZXN0X2FkZHIgKyBDT05GSUdfU1lTX01BTExPQ19MRU47CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCiAJbWVtc2V0ICgodm9pZCAqKSBtZW1fbWFsbG9jX3N0YXJ0LCAwLApAQCAtMjAyLDE5ICsyMDIsMTkgQEAKIAlyZXR1cm4gKDApOwogfQogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiBzdGF0aWMgdm9pZCBkaXNwbGF5X2ZsYXNoX2NvbmZpZyAodWxvbmcgc2l6ZSkKIHsKIAlwdXRzICgiRmxhc2g6ICIpOwogCXByaW50X3NpemUgKHNpemUsICJcbiIpOwogfQotI2VuZGlmIC8qIENGR19OT19GTEFTSCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX0hBUkRfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19TT0ZUX0kyQykKIHN0YXRpYyBpbnQgaW5pdF9mdW5jX2kyYyAodm9pZCkKIHsKIAlwdXRzICgiSTJDOiAgICIpOwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAlwdXRzICgicmVhZHlcbiIpOwogCXJldHVybiAoMCk7CiB9CkBAIC0yNzQsNyArMjc0LDcgQEAKIHsKIAlpbml0X2ZuY190ICoqaW5pdF9mbmNfcHRyOwogCWNoYXIgKnM7Ci0jaWYgIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKSB8fCBkZWZpbmVkIChDT05GSUdfVkZEKSB8fCBkZWZpbmVkKENPTkZJR19MQ0QpCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19OT19GTEFTSCkgfHwgZGVmaW5lZCAoQ09ORklHX1ZGRCkgfHwgZGVmaW5lZChDT05GSUdfTENEKQogCXVsb25nIHNpemU7CiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19WRkQpIHx8IGRlZmluZWQoQ09ORklHX0xDRCkKQEAgLTI4Miw3ICsyODIsNyBAQAogI2VuZGlmCiAKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdCAqLwotCWdkID0gKGdkX3QqKShfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOIC0gc2l6ZW9mKGdkX3QpKTsKKwlnZCA9IChnZF90KikoX2FybWJvb3Rfc3RhcnQgLSBDT05GSUdfU1lTX01BTExPQ19MRU4gLSBzaXplb2YoZ2RfdCkpOwogCS8qIGNvbXBpbGVyIG9wdGltaXphdGlvbiBiYXJyaWVyIG5lZWRlZCBmb3IgR0NDID49IDMuNCAqLwogCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiAKQEAgLTMwMCwxMSArMzAwLDExIEBACiAJCX0KIAl9CiAKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAkvKiBjb25maWd1cmUgYXZhaWxhYmxlIEZMQVNIIGJhbmtzICovCiAJc2l6ZSA9IGZsYXNoX2luaXQgKCk7CiAJZGlzcGxheV9mbGFzaF9jb25maWcgKHNpemUpOwotI2VuZGlmIC8qIENGR19OT19GTEFTSCAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfTk9fRkxBU0ggKi8KIAogI2lmZGVmIENPTkZJR19WRkQKICMJaWZuZGVmIFBBR0VfU0laRQpAQCAtMzM2LDcgKzMzNiw3IEBACiAjZW5kaWYgLyogQ09ORklHX0xDRCAqLwogCiAJLyogYXJtYm9vdF9zdGFydCBpcyBkZWZpbmVkIGluIHRoZSBib2FyZC1zcGVjaWZpYyBsaW5rZXIgc2NyaXB0ICovCi0JbWVtX21hbGxvY19pbml0IChfYXJtYm9vdF9zdGFydCAtIENGR19NQUxMT0NfTEVOKTsKKwltZW1fbWFsbG9jX2luaXQgKF9hcm1ib290X3N0YXJ0IC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9OQU5EKQogCXB1dHMgKCJOQU5EOiAgIik7CkBAIC00OTgsNyArNDk4LDcgQEAKIAkJCXNlcmlhbF9wdXRzKGluaXRfc3RyKTsKIAkJCXNlcmlhbF9wdXRzKCJcbiIpOwogCQkJZm9yKDs7KSB7Ci0JCQkJbWRtX3JlYWRsaW5lKGNvbnNvbGVfYnVmZmVyLCBDRkdfQ0JTSVpFKTsKKwkJCQltZG1fcmVhZGxpbmUoY29uc29sZV9idWZmZXIsIENPTkZJR19TWVNfQ0JTSVpFKTsKIAkJCQlkYmcoImluaSVkOiBbJXNdIiwgaSwgY29uc29sZV9idWZmZXIpOwogCiAJCQkJaWYgKChzdHJjbXAoY29uc29sZV9idWZmZXIsICJPSyIpID09IDApIHx8CkBAIC01MjIsNyArNTIyLDcgQEAKIAkvKiBmaW5hbCBzdGFnZSAtIHdhaXQgZm9yIGNvbm5lY3QgKi8KIAlmb3IoO2kgPiAxOykgeyAvKiBpZiAnaScgPiAxIC0gd2FpdCBmb3IgY29ubmVjdGlvbgogCQkJCSAgbWVzc2FnZSBmcm9tIG1vZGVtICovCi0JCW1kbV9yZWFkbGluZShjb25zb2xlX2J1ZmZlciwgQ0ZHX0NCU0laRSk7CisJCW1kbV9yZWFkbGluZShjb25zb2xlX2J1ZmZlciwgQ09ORklHX1NZU19DQlNJWkUpOwogCQlkYmcoImluaV9mOiBbJXNdIiwgY29uc29sZV9idWZmZXIpOwogCQlpZiAoc3RybmNtcChjb25zb2xlX2J1ZmZlciwgIkNPTk5FQ1QiLCA3KSA9PSAwKSB7CiAJCQlkYmcoImluaV9mOiBjb25uZWN0ZWQiKTsKZGlmZiAtLWdpdCBhL2xpYl9hdnIzMi9ib2FyZC5jIGIvbGliX2F2cjMyL2JvYXJkLmMKaW5kZXggZjNkMGM1Mi4uODc3MWRlOSAxMDA2NDQKLS0tIGEvbGliX2F2cjMyL2JvYXJkLmMKKysrIGIvbGliX2F2cjMyL2JvYXJkLmMKQEAgLTUyLDkgKzUyLDkgQEAKIHsKIAl1bnNpZ25lZCBsb25nIG1vbml0b3JfYWRkcjsKIAotCW1vbml0b3JfYWRkciA9IENGR19NT05JVE9SX0JBU0UgKyBnZC0+cmVsb2Nfb2ZmOworCW1vbml0b3JfYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgZ2QtPnJlbG9jX29mZjsKIAltZW1fbWFsbG9jX2VuZCA9IG1vbml0b3JfYWRkcjsKLQltZW1fbWFsbG9jX3N0YXJ0ID0gbWVtX21hbGxvY19lbmQgLSBDRkdfTUFMTE9DX0xFTjsKKwltZW1fbWFsbG9jX3N0YXJ0ID0gbWVtX21hbGxvY19lbmQgLSBDT05GSUdfU1lTX01BTExPQ19MRU47CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCiAJcHJpbnRmKCJtYWxsb2M6IFVzaW5nIG1lbW9yeSBmcm9tIDB4JTA4bHggdG8gMHglMDhseFxuIiwKQEAgLTc2LDcgKzc2LDcgQEAKIAlyZXR1cm4gKCh2b2lkICopb2xkKTsKIH0KIAotI2lmZGVmIENGR19ETUFfQUxMT0NfTEVOCisjaWZkZWYgQ09ORklHX1NZU19ETUFfQUxMT0NfTEVOCiAjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIApAQCAtODgsOSArODgsOSBAQAogewogCXVuc2lnbmVkIGxvbmcgbW9uaXRvcl9hZGRyOwogCi0JbW9uaXRvcl9hZGRyID0gQ0ZHX01PTklUT1JfQkFTRSArIGdkLT5yZWxvY19vZmY7Ci0JZG1hX2FsbG9jX2VuZCA9IG1vbml0b3JfYWRkciAtIENGR19NQUxMT0NfTEVOOwotCWRtYV9hbGxvY19zdGFydCA9IGRtYV9hbGxvY19lbmQgLSBDRkdfRE1BX0FMTE9DX0xFTjsKKwltb25pdG9yX2FkZHIgPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIGdkLT5yZWxvY19vZmY7CisJZG1hX2FsbG9jX2VuZCA9IG1vbml0b3JfYWRkciAtIENPTkZJR19TWVNfTUFMTE9DX0xFTjsKKwlkbWFfYWxsb2Nfc3RhcnQgPSBkbWFfYWxsb2NfZW5kIC0gQ09ORklHX1NZU19ETUFfQUxMT0NfTEVOOwogCWRtYV9hbGxvY19icmsgPSBkbWFfYWxsb2Nfc3RhcnQ7CiAKIAlwcmludGYoIkRNQTogVXNpbmcgbWVtb3J5IGZyb20gMHglMDhseCB0byAweCUwOGx4XG4iLApAQCAtMTA3LDggKzEwNyw4IEBACiAJaWYgKGRtYV9hbGxvY19icmsgKyBsZW4gPiBkbWFfYWxsb2NfZW5kKQogCQlyZXR1cm4gTlVMTDsKIAotCWRtYV9hbGxvY19icmsgPSAoKHBhZGRyICsgbGVuICsgQ0ZHX0RDQUNIRV9MSU5FU1ogLSAxKQotCQkJICYgfihDRkdfRENBQ0hFX0xJTkVTWiAtIDEpKTsKKwlkbWFfYWxsb2NfYnJrID0gKChwYWRkciArIGxlbiArIENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWiAtIDEpCisJCQkgJiB+KENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWiAtIDEpKTsKIAogCSpoYW5kbGUgPSBwYWRkcjsKIAlyZXR1cm4gdW5jYWNoZWQocGFkZHIpOwpAQCAtMjA5LDcgKzIwOSw3IEBACiAJICogIC0gZ2xvYmFsIGRhdGEgc3RydWN0CiAJICogIC0gc3RhY2sKIAkgKi8KLQlhZGRyID0gQ0ZHX1NEUkFNX0JBU0UgKyBzZHJhbV9zaXplOworCWFkZHIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBzZHJhbV9zaXplOwogCW1vbml0b3JfbGVuID0gX2VuZCAtIF90ZXh0OwogCiAJLyoKQEAgLTIyMSwxMiArMjIxLDEyIEBACiAJbW9uaXRvcl9hZGRyID0gYWRkcjsKIAogCS8qIFJlc2VydmUgbWVtb3J5IGZvciBtYWxsb2MoKSAqLwotCWFkZHIgLT0gQ0ZHX01BTExPQ19MRU47CisJYWRkciAtPSBDT05GSUdfU1lTX01BTExPQ19MRU47CiAKLSNpZmRlZiBDRkdfRE1BX0FMTE9DX0xFTgorI2lmZGVmIENPTkZJR19TWVNfRE1BX0FMTE9DX0xFTgogCS8qIFJlc2VydmUgRE1BIG1lbW9yeSAobXVzdCBiZSBjYWNoZSBhbGlnbmVkKSAqLwotCWFkZHIgJj0gfihDRkdfRENBQ0hFX0xJTkVTWiAtIDEpOwotCWFkZHIgLT0gQ0ZHX0RNQV9BTExPQ19MRU47CisJYWRkciAmPSB+KENPTkZJR19TWVNfRENBQ0hFX0xJTkVTWiAtIDEpOworCWFkZHIgLT0gQ09ORklHX1NZU19ETUFfQUxMT0NfTEVOOwogI2VuZGlmCiAKIAkvKiBBbGxvY2F0ZSBhIEJvYXJkIEluZm8gc3RydWN0IG9uIGEgd29yZCBib3VuZGFyeSAqLwpAQCAtMjQ5LDcgKzI0OSw3IEBACiAJICogSW5pdGlhbGl6ZSB0aGUgYm9hcmQgaW5mb3JtYXRpb24gc3RydWN0IHdpdGggdGhlCiAJICogaW5mb3JtYXRpb24gd2UgaGF2ZS4KIAkgKi8KLQliZC0+YmlfZHJhbVswXS5zdGFydCA9IENGR19TRFJBTV9CQVNFOworCWJkLT5iaV9kcmFtWzBdLnN0YXJ0ID0gQ09ORklHX1NZU19TRFJBTV9CQVNFOwogCWJkLT5iaV9kcmFtWzBdLnNpemUgPSBzZHJhbV9zaXplOwogCWJkLT5iaV9iYXVkcmF0ZSA9IGdkLT5iYXVkcmF0ZTsKIApAQCAtMjcyLDcgKzI3Miw3IEBACiAJYmQgPSBnZC0+YmQ7CiAKIAlnZC0+ZmxhZ3MgfD0gR0RfRkxHX1JFTE9DOwotCWdkLT5yZWxvY19vZmYgPSBkZXN0X2FkZHIgLSBDRkdfTU9OSVRPUl9CQVNFOworCWdkLT5yZWxvY19vZmYgPSBkZXN0X2FkZHIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRTsKIAogCW1vbml0b3JfZmxhc2hfbGVuID0gX2VkYXRhIC0gX3RleHQ7CiAKQEAgLTI5Myw3ICsyOTMsNyBAQAogCQkJYWRkciA9ICh1bnNpZ25lZCBsb25nKWNtZHRwLT51c2FnZSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+dXNhZ2UgPSAodHlwZW9mKGNtZHRwLT51c2FnZSkpYWRkcjsKIAkJfQotI2lmZGVmIENGR19MT05HSEVMUAorI2lmZGVmIENPTkZJR19TWVNfTE9OR0hFTFAKIAkJaWYgKGNtZHRwLT5oZWxwKSB7CiAJCQlhZGRyID0gKHVuc2lnbmVkIGxvbmcpY21kdHAtPmhlbHAgKyBnZC0+cmVsb2Nfb2ZmOwogCQkJY21kdHAtPmhlbHAgPSAodHlwZW9mKGNtZHRwLT5oZWxwKSlhZGRyOwpAQCAtMzE4LDggKzMxOCw4IEBACiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IDA7CiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKIAotI2lmbmRlZiBDRkdfTk9fRkxBU0gKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOworI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IGZsYXNoX2luaXQoKTsKIAliZC0+YmlfZmxhc2hvZmZzZXQgPSAodW5zaWduZWQgbG9uZylfZWRhdGEgLSAodW5zaWduZWQgbG9uZylfdGV4dDsKIApAQCAtMzMwLDcgKzMzMCw3IEBACiAJaWYgKGJkLT5iaV9kcmFtWzBdLnNpemUpCiAJCWRpc3BsYXlfZHJhbV9jb25maWcoKTsKIAotCWdkLT5iZC0+YmlfYm9vdF9wYXJhbXMgPSBtYWxsb2MoQ0ZHX0JPT1RQQVJBTVNfTEVOKTsKKwlnZC0+YmQtPmJpX2Jvb3RfcGFyYW1zID0gbWFsbG9jKENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4pOwogCWlmICghZ2QtPmJkLT5iaV9ib290X3BhcmFtcykKIAkJcHV0cygiV0FSTklORzogQ2Fubm90IGFsbG9jYXRlIHNwYWNlIGZvciBib290IHBhcmFtZXRlcnNcbiIpOwogCmRpZmYgLS1naXQgYS9saWJfYmxhY2tmaW4vYm9hcmQuYyBiL2xpYl9ibGFja2Zpbi9ib2FyZC5jCmluZGV4IDBiOGU2NjQuLmJhNTczOTIgMTAwNjQ0Ci0tLSBhL2xpYl9ibGFja2Zpbi9ib2FyZC5jCisrKyBiL2xpYl9ibGFja2Zpbi9ib2FyZC5jCkBAIC05MSw4ICs5MSw4IEBACiAKIHN0YXRpYyB2b2lkIG1lbV9tYWxsb2NfaW5pdCh2b2lkKQogewotCW1lbV9tYWxsb2Nfc3RhcnQgPSAodm9pZCAqKUNGR19NQUxMT0NfQkFTRTsKLQltZW1fbWFsbG9jX2VuZCA9ICh2b2lkICopKENGR19NQUxMT0NfQkFTRSArIENGR19NQUxMT0NfTEVOKTsKKwltZW1fbWFsbG9jX3N0YXJ0ID0gKHZvaWQgKilDT05GSUdfU1lTX01BTExPQ19CQVNFOworCW1lbV9tYWxsb2NfZW5kID0gKHZvaWQgKikoQ09ORklHX1NZU19NQUxMT0NfQkFTRSArIENPTkZJR19TWVNfTUFMTE9DX0xFTik7CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCW1lbXNldChtZW1fbWFsbG9jX3N0YXJ0LCAwLCBtZW1fbWFsbG9jX2VuZCAtIG1lbV9tYWxsb2Nfc3RhcnQpOwogfQpAQCAtMTkyLDE2ICsxOTIsMTYgQEAKIAlkY3BsYl9hZGQoMHhGRjgwMDAwMCwgTDFfRE1FTU9SWSk7CiAJKytpOwogCi0JaWNwbGJfYWRkKENGR19NT05JVE9SX0JBU0UgJiBDUExCX1BBR0VfTUFTSywgU0RSQU1fSUtFUk5FTCk7Ci0JZGNwbGJfYWRkKENGR19NT05JVE9SX0JBU0UgJiBDUExCX1BBR0VfTUFTSywgU0RSQU1fREtFUk5FTCk7CisJaWNwbGJfYWRkKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICYgQ1BMQl9QQUdFX01BU0ssIFNEUkFNX0lLRVJORUwpOworCWRjcGxiX2FkZChDT05GSUdfU1lTX01PTklUT1JfQkFTRSAmIENQTEJfUEFHRV9NQVNLLCBTRFJBTV9ES0VSTkVMKTsKIAkrK2k7CiAKIAkvKiBJZiB0aGUgbW9uaXRvciBjcm9zc2VzIGEgNCBtZWcgYm91bmRhcnksIHdlJ2xsIG5lZWQKIAkgKiB0byBsb2NrIHR3byBlbnRyaWVzIGZvciBpdC4KIAkgKi8KLQlpZiAoKENGR19NT05JVE9SX0JBU0UgJiBDUExCX1BBR0VfTUFTSykgIT0gKChDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKSAmIENQTEJfUEFHRV9NQVNLKSkgewotCQlpY3BsYl9hZGQoKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pICYgQ1BMQl9QQUdFX01BU0ssIFNEUkFNX0lLRVJORUwpOwotCQlkY3BsYl9hZGQoKENGR19NT05JVE9SX0JBU0UgKyBDRkdfTU9OSVRPUl9MRU4pICYgQ1BMQl9QQUdFX01BU0ssIFNEUkFNX0RLRVJORUwpOworCWlmICgoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgJiBDUExCX1BBR0VfTUFTSykgIT0gKChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pICYgQ1BMQl9QQUdFX01BU0spKSB7CisJCWljcGxiX2FkZCgoQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBDT05GSUdfU1lTX01PTklUT1JfTEVOKSAmIENQTEJfUEFHRV9NQVNLLCBTRFJBTV9JS0VSTkVMKTsKKwkJZGNwbGJfYWRkKChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pICYgQ1BMQl9QQUdFX01BU0ssIFNEUkFNX0RLRVJORUwpOwogCQkrK2k7CiAJfQogCkBAIC0yMjIsNyArMjIyLDcgQEAKIAkrK2k7CiAjZW5kaWYKIAotCXdoaWxlIChpIDwgMTYgJiYgZXh0ZXJuX21lbW9yeSA8IChDRkdfTU9OSVRPUl9CQVNFICYgQ1BMQl9QQUdFX01BU0spKSB7CisJd2hpbGUgKGkgPCAxNiAmJiBleHRlcm5fbWVtb3J5IDwgKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICYgQ1BMQl9QQUdFX01BU0spKSB7CiAJCWljcGxiX2FkZChleHRlcm5fbWVtb3J5LCBTRFJBTV9JR0VORVJJQyk7CiAJCWRjcGxiX2FkZChleHRlcm5fbWVtb3J5LCBTRFJBTV9ER0VORVJJQyk7CiAJCWV4dGVybl9tZW1vcnkgKz0gQ1BMQl9QQUdFX1NJWkU7CkBAIC0yNzksMTEgKzI3OSwxMSBAQAogI2VuZGlmCiAKIAlzZXJpYWxfZWFybHlfcHV0cygiSW5pdCBnbG9iYWwgZGF0YVxuIik7Ci0JZ2QgPSAoZ2RfdCAqKSAoQ0ZHX0dCTF9EQVRBX0FERFIpOworCWdkID0gKGdkX3QgKikgKENPTkZJR19TWVNfR0JMX0RBVEFfQUREUik7CiAJbWVtc2V0KCh2b2lkICopZ2QsIDAsIHNpemVvZihnZF90KSk7CiAKIAkvKiBCb2FyZCBkYXRhIGluaXRpYWxpemF0aW9uICovCi0JYWRkciA9IChDRkdfR0JMX0RBVEFfQUREUiArIHNpemVvZihnZF90KSk7CisJYWRkciA9IChDT05GSUdfU1lTX0dCTF9EQVRBX0FERFIgKyBzaXplb2YoZ2RfdCkpOwogCiAJLyogQWxpZ24gdG8gNCBieXRlIGJvdW5kYXJ5ICovCiAJYWRkciAmPSB+KDQgLSAxKTsKQEAgLTMzNiw3ICszMzYsNyBAQAogc3RhdGljIGludCBpbml0X2Z1bmNfaTJjKHZvaWQpCiB7CiAJcHV0cygiSTJDOiAgICIpOwotCWkyY19pbml0KENGR19JMkNfU1BFRUQsIENGR19JMkNfU0xBVkUpOworCWkyY19pbml0KENPTkZJR19TWVNfSTJDX1NQRUVELCBDT05GSUdfU1lTX0kyQ19TTEFWRSk7CiAJcHV0cygicmVhZHlcbiIpOwogCXJldHVybiAoMCk7CiB9CkBAIC0zNTYsMTYgKzM1NiwxNiBAQAogCXBvc3RfcmVsb2MoKTsKICNlbmRpZgogCi0jaWYJIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKQorI2lmCSFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAJLyogVGhlcmUgYXJlIHNvbWUgb3RoZXIgcG9pbnRlciBjb25zdGFudHMgd2UgbXVzdCBkZWFsIHdpdGggKi8KIAkvKiBjb25maWd1cmUgYXZhaWxhYmxlIEZMQVNIIGJhbmtzICovCiAJZXh0ZXJuIGZsYXNoX2luZm9fdCBmbGFzaF9pbmZvW107CiAJdWxvbmcgc2l6ZSA9IGZsYXNoX2luaXQoKTsKIAlwdXRzKCJGbGFzaDogIik7CiAJcHJpbnRfc2l6ZShzaXplLCAiXG4iKTsKLQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsIENGR19GTEFTSF9CQVNFLAotCQkgICAgICBDRkdfRkxBU0hfQkFTRSArIDB4MWZmZmYsICZmbGFzaF9pbmZvWzBdKTsKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOworCWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwgQ09ORklHX1NZU19GTEFTSF9CQVNFLAorCQkgICAgICBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyAweDFmZmZmLCAmZmxhc2hfaW5mb1swXSk7CisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IHNpemU7CiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKICNlbHNlCmRpZmYgLS1naXQgYS9saWJfYmxhY2tmaW4vcG9zdC5jIGIvbGliX2JsYWNrZmluL3Bvc3QuYwppbmRleCAzYzRkNWM1Li40YWI5ZThiIDEwMDY0NAotLS0gYS9saWJfYmxhY2tmaW4vcG9zdC5jCisrKyBiL2xpYl9ibGFja2Zpbi9wb3N0LmMKQEAgLTM0NSw3ICszNDUsNyBAQAogewogCXZhX2xpc3QgYXJnczsKIAl1aW50IGk7Ci0JY2hhciBwcmludGJ1ZmZlcltDRkdfUEJTSVpFXTsKKwljaGFyIHByaW50YnVmZmVyW0NPTkZJR19TWVNfUEJTSVpFXTsKIAogCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKQEAgLTQxOSw3ICs0MTksNyBAQAogICovCiB1bnNpZ25lZCBsb25nIHBvc3RfdGltZV9tcyh1bnNpZ25lZCBsb25nIGJhc2UpCiB7Ci0JcmV0dXJuICh1bnNpZ25lZCBsb25nKWdldF90aWNrcygpIC8gKGdldF90YmNsaygpIC8gQ0ZHX0haKSAtIGJhc2U7CisJcmV0dXJuICh1bnNpZ25lZCBsb25nKWdldF90aWNrcygpIC8gKGdldF90YmNsaygpIC8gQ09ORklHX1NZU19IWikgLSBiYXNlOwogfQogCiAjZW5kaWYJCQkJLyogQ09ORklHX1BPU1QgKi8KZGlmZiAtLWdpdCBhL2xpYl9ibGFja2Zpbi90ZXN0cy5jIGIvbGliX2JsYWNrZmluL3Rlc3RzLmMKaW5kZXggMDUxNjQ5ZC4uYzIzMTllYyAxMDA2NDQKLS0tIGEvbGliX2JsYWNrZmluL3Rlc3RzLmMKKysrIGIvbGliX2JsYWNrZmluL3Rlc3RzLmMKQEAgLTIxLDcgKzIxLDcgQEAKICAqIE1BIDAyMTExLTEzMDcgVVNBCiAgKgogICogQmUgc3VyZSB0byBtYXJrIHRlc3RzIHRvIGJlIHJ1biBiZWZvcmUgcmVsb2NhdGlvbiBhcyBzdWNoIHdpdGggdGhlCi0gKiBDRkdfUE9TVF9QUkVSRUwgZmxhZyBzbyB0aGF0IGxvZ2dpbmcgaXMgZG9uZSBjb3JyZWN0bHkgaWYgdGhlCisgKiBDT05GSUdfU1lTX1BPU1RfUFJFUkVMIGZsYWcgc28gdGhhdCBsb2dnaW5nIGlzIGRvbmUgY29ycmVjdGx5IGlmIHRoZQogICogbG9nYnVmZmVyIHN1cHBvcnQgaXMgZW5hYmxlZC4KICAqLwogCkBAIC0zMCw5ICszMCw5IEBACiAjaWZkZWYgQ09ORklHX1BPU1QKIAogI2luY2x1ZGUgPHBvc3QuaD4KLSNkZWZpbmUgQ0ZHX1BPU1RfRkxBU0ggIDB4MDAwMDQwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfTEVEICAgIDB4MDAwMDgwMDAKLSNkZWZpbmUgQ0ZHX1BPU1RfQlVUVE9OIDB4MDAwMTAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19QT1NUX0ZMQVNIICAweDAwMDA0MDAwCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9MRUQgICAgMHgwMDAwODAwMAorI2RlZmluZSBDT05GSUdfU1lTX1BPU1RfQlVUVE9OIDB4MDAwMTAwMDAKIAogZXh0ZXJuIGludCBjYWNoZV9wb3N0X3Rlc3QoaW50IGZsYWdzKTsKIGV4dGVybiBpbnQgd2F0Y2hkb2dfcG9zdF90ZXN0KGludCBmbGFncyk7CkBAIC01OCw3ICs1OCw3IEBACiBleHRlcm4gaW50IGJ1dHRvbl9wb3N0X3Rlc3QoaW50IGZsYWdzKTsKIAogc3RydWN0IHBvc3RfdGVzdCBwb3N0X2xpc3RbXSA9IHsKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUKIAl7CiAJICJDYWNoZSB0ZXN0IiwKIAkgImNhY2hlIiwKQEAgLTY3LDkgKzY3LDkgQEAKIAkgJmNhY2hlX3Bvc3RfdGVzdCwKIAkgTlVMTCwKIAkgTlVMTCwKLQkgQ0ZHX1BPU1RfQ0FDSEV9LAorCSBDT05GSUdfU1lTX1BPU1RfQ0FDSEV9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9XQVRDSERPRworI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1dBVENIRE9HCiAJewogCSAiV2F0Y2hkb2cgdGltZXIgdGVzdCIsCiAJICJ3YXRjaGRvZyIsCkBAIC03OCw5ICs3OCw5IEBACiAJICZ3YXRjaGRvZ19wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX1dBVENIRE9HfSwKKwkgQ09ORklHX1NZU19QT1NUX1dBVENIRE9HfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfSTJDCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfSTJDCiAJewogCSAiSTJDIHRlc3QiLAogCSAiaTJjIiwKQEAgLTg5LDkgKzg5LDkgQEAKIAkgJmkyY19wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX0kyQ30sCisJIENPTkZJR19TWVNfUE9TVF9JMkN9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9SVEMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9SVEMKIAl7CiAJICJSVEMgdGVzdCIsCiAJICJydGMiLApAQCAtMTAwLDkgKzEwMCw5IEBACiAJICZydGNfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9SVEN9LAorCSBDT05GSUdfU1lTX1BPU1RfUlRDfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfTUVNT1JZCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfTUVNT1JZCiAJewogCSAiTWVtb3J5IHRlc3QiLAogCSAibWVtb3J5IiwKQEAgLTExMSw5ICsxMTEsOSBAQAogCSAmbWVtb3J5X3Bvc3RfdGVzdCwKIAkgTlVMTCwKIAkgTlVMTCwKLQkgQ0ZHX1BPU1RfTUVNT1JZfSwKKwkgQ09ORklHX1NZU19QT1NUX01FTU9SWX0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCXsKIAkgIkNQVSB0ZXN0IiwKIAkgImNwdSIsCkBAIC0xMjIsOSArMTIyLDkgQEAKIAkgJmNwdV9wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX0NQVX0sCisJIENPTkZJR19TWVNfUE9TVF9DUFV9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VQVJUCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfVUFSVAogCXsKIAkgIlVBUlQgdGVzdCIsCiAJICJ1YXJ0IiwKQEAgLTEzMyw5ICsxMzMsOSBAQAogCSAmdWFydF9wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX1VBUlR9LAorCSBDT05GSUdfU1lTX1BPU1RfVUFSVH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0VUSEVSCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRVRIRVIKIAl7CiAJICJFVEhFUk5FVCB0ZXN0IiwKIAkgImV0aGVybmV0IiwKQEAgLTE0NCw5ICsxNDQsOSBAQAogCSAmZXRoZXJfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9FVEhFUn0sCisJIENPTkZJR19TWVNfUE9TVF9FVEhFUn0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1NQSQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NQSQogCXsKIAkgIlNQSSB0ZXN0IiwKIAkgInNwaSIsCkBAIC0xNTUsOSArMTU1LDkgQEAKIAkgJnNwaV9wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX1NQSX0sCisJIENPTkZJR19TWVNfUE9TVF9TUEl9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VU0IKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VU0IKIAl7CiAJICJVU0IgdGVzdCIsCiAJICJ1c2IiLApAQCAtMTY2LDkgKzE2Niw5IEBACiAJICZ1c2JfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9VU0J9LAorCSBDT05GSUdfU1lTX1BPU1RfVVNCfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1BSCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BSCiAJewogCSAiU1BSIHRlc3QiLAogCSAic3ByIiwKQEAgLTE3Nyw5ICsxNzcsOSBAQAogCSAmc3ByX3Bvc3RfdGVzdCwKIAkgTlVMTCwKIAkgTlVMTCwKLQkgQ0ZHX1BPU1RfU1BSfSwKKwkgQ09ORklHX1NZU19QT1NUX1NQUn0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1NZU01PTgorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NZU01PTgogCXsKIAkgIlNZU01PTiB0ZXN0IiwKIAkgInN5c21vbiIsCkBAIC0xODgsOSArMTg4LDkgQEAKIAkgJnN5c21vbl9wb3N0X3Rlc3QsCiAJICZzeXNtb25faW5pdF9mLAogCSAmc3lzbW9uX3JlbG9jLAotCSBDRkdfUE9TVF9TWVNNT059LAorCSBDT05GSUdfU1lTX1BPU1RfU1lTTU9OfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRFNQCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRFNQCiAJewogCSAiRFNQIHRlc3QiLAogCSAiZHNwIiwKQEAgLTE5OSw5ICsxOTksOSBAQAogCSAmZHNwX3Bvc3RfdGVzdCwKIAkgTlVMTCwKIAkgTlVMTCwKLQkgQ0ZHX1BPU1RfRFNQfSwKKwkgQ09ORklHX1NZU19QT1NUX0RTUH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NPREVDCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ09ERUMKIAl7CiAJICJDT0RFQyB0ZXN0IiwKIAkgImNvZGVjIiwKQEAgLTIxMCw5ICsyMTAsOSBAQAogCSAmY29kZWNfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9DT0RFQ30sCisJIENPTkZJR19TWVNfUE9TVF9DT0RFQ30sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZMQVNICisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRkxBU0gKIAl7CiAJICJGTEFTSCB0ZXN0IiwKIAkgImZsYXNoIiwKQEAgLTIyMSw5ICsyMjEsOSBAQAogCSAmZmxhc2hfcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9GTEFTSH0sCisJIENPTkZJR19TWVNfUE9TVF9GTEFTSH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0xFRAorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0xFRAogCXsKIAkgIkxFRCB0ZXN0IiwKIAkgIkxFRCIsCkBAIC0yMzIsOSArMjMyLDkgQEAKIAkgJmxlZF9wb3N0X3Rlc3QsCiAJIE5VTEwsCiAJIE5VTEwsCi0JIENGR19QT1NUX0xFRH0sCisJIENPTkZJR19TWVNfUE9TVF9MRUR9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CVVRUT04KKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CVVRUT04KIAl7CiAJICJCdXR0b24gdGVzdCIsCiAJICJidXR0b24iLApAQCAtMjQzLDcgKzI0Myw3IEBACiAJICZidXR0b25fcG9zdF90ZXN0LAogCSBOVUxMLAogCSBOVUxMLAotCSBDRkdfUE9TVF9CVVRUT059LAorCSBDT05GSUdfU1lTX1BPU1RfQlVUVE9OfSwKICNlbmRpZgogCiB9OwpkaWZmIC0tZ2l0IGEvbGliX2dlbmVyaWMvTWFrZWZpbGUgYi9saWJfZ2VuZXJpYy9NYWtlZmlsZQppbmRleCA3ZGY1YTJjLi5kNjJjMzliIDEwMDY0NAotLS0gYS9saWJfZ2VuZXJpYy9NYWtlZmlsZQorKysgYi9saWJfZ2VuZXJpYy9NYWtlZmlsZQpAQCAtNDUsNiArNDUsNyBAQAogQ09CSlMteQkrPSBzdHJtaHoubwogQ09CSlMteSArPSB2c3ByaW50Zi5vCiBDT0JKUy15ICs9IHpsaWIubworQ09CSlMtJChDT05GSUdfUkJUUkVFKQkrPSByYnRyZWUubwogCiBDT0JKUwk6PSAkKENPQkpTLXkpCiBTUkNTCTo9ICQoQ09CSlM6Lm89LmMpCmRpZmYgLS1naXQgYS9saWJfZ2VuZXJpYy9yYnRyZWUuYyBiL2xpYl9nZW5lcmljL3JidHJlZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyZWFiNDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJfZ2VuZXJpYy9yYnRyZWUuYwpAQCAtMCwwICsxLDM5MCBAQAorLyoKKyAgUmVkIEJsYWNrIFRyZWVzCisgIChDKSAxOTk5ICBBbmRyZWEgQXJjYW5nZWxpIDxhbmRyZWFAc3VzZS5kZT4KKyAgKEMpIDIwMDIgIERhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4KKworICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorCisgIGxpbnV4L2xpYi9yYnRyZWUuYworKi8KKworI2luY2x1ZGUgPHViaV91Ym9vdC5oPgorI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPgorCitzdGF0aWMgdm9pZCBfX3JiX3JvdGF0ZV9sZWZ0KHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkKK3sKKwlzdHJ1Y3QgcmJfbm9kZSAqcmlnaHQgPSBub2RlLT5yYl9yaWdodDsKKwlzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50ID0gcmJfcGFyZW50KG5vZGUpOworCisJaWYgKChub2RlLT5yYl9yaWdodCA9IHJpZ2h0LT5yYl9sZWZ0KSkKKwkJcmJfc2V0X3BhcmVudChyaWdodC0+cmJfbGVmdCwgbm9kZSk7CisJcmlnaHQtPnJiX2xlZnQgPSBub2RlOworCisJcmJfc2V0X3BhcmVudChyaWdodCwgcGFyZW50KTsKKworCWlmIChwYXJlbnQpCisJeworCQlpZiAobm9kZSA9PSBwYXJlbnQtPnJiX2xlZnQpCisJCQlwYXJlbnQtPnJiX2xlZnQgPSByaWdodDsKKwkJZWxzZQorCQkJcGFyZW50LT5yYl9yaWdodCA9IHJpZ2h0OworCX0KKwllbHNlCisJCXJvb3QtPnJiX25vZGUgPSByaWdodDsKKwlyYl9zZXRfcGFyZW50KG5vZGUsIHJpZ2h0KTsKK30KKworc3RhdGljIHZvaWQgX19yYl9yb3RhdGVfcmlnaHQoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCByYl9yb290ICpyb290KQoreworCXN0cnVjdCByYl9ub2RlICpsZWZ0ID0gbm9kZS0+cmJfbGVmdDsKKwlzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50ID0gcmJfcGFyZW50KG5vZGUpOworCisJaWYgKChub2RlLT5yYl9sZWZ0ID0gbGVmdC0+cmJfcmlnaHQpKQorCQlyYl9zZXRfcGFyZW50KGxlZnQtPnJiX3JpZ2h0LCBub2RlKTsKKwlsZWZ0LT5yYl9yaWdodCA9IG5vZGU7CisKKwlyYl9zZXRfcGFyZW50KGxlZnQsIHBhcmVudCk7CisKKwlpZiAocGFyZW50KQorCXsKKwkJaWYgKG5vZGUgPT0gcGFyZW50LT5yYl9yaWdodCkKKwkJCXBhcmVudC0+cmJfcmlnaHQgPSBsZWZ0OworCQllbHNlCisJCQlwYXJlbnQtPnJiX2xlZnQgPSBsZWZ0OworCX0KKwllbHNlCisJCXJvb3QtPnJiX25vZGUgPSBsZWZ0OworCXJiX3NldF9wYXJlbnQobm9kZSwgbGVmdCk7Cit9CisKK3ZvaWQgcmJfaW5zZXJ0X2NvbG9yKHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkKK3sKKwlzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LCAqZ3BhcmVudDsKKworCXdoaWxlICgocGFyZW50ID0gcmJfcGFyZW50KG5vZGUpKSAmJiByYl9pc19yZWQocGFyZW50KSkKKwl7CisJCWdwYXJlbnQgPSByYl9wYXJlbnQocGFyZW50KTsKKworCQlpZiAocGFyZW50ID09IGdwYXJlbnQtPnJiX2xlZnQpCisJCXsKKwkJCXsKKwkJCQlyZWdpc3RlciBzdHJ1Y3QgcmJfbm9kZSAqdW5jbGUgPSBncGFyZW50LT5yYl9yaWdodDsKKwkJCQlpZiAodW5jbGUgJiYgcmJfaXNfcmVkKHVuY2xlKSkKKwkJCQl7CisJCQkJCXJiX3NldF9ibGFjayh1bmNsZSk7CisJCQkJCXJiX3NldF9ibGFjayhwYXJlbnQpOworCQkJCQlyYl9zZXRfcmVkKGdwYXJlbnQpOworCQkJCQlub2RlID0gZ3BhcmVudDsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfQorCisJCQlpZiAocGFyZW50LT5yYl9yaWdodCA9PSBub2RlKQorCQkJeworCQkJCXJlZ2lzdGVyIHN0cnVjdCByYl9ub2RlICp0bXA7CisJCQkJX19yYl9yb3RhdGVfbGVmdChwYXJlbnQsIHJvb3QpOworCQkJCXRtcCA9IHBhcmVudDsKKwkJCQlwYXJlbnQgPSBub2RlOworCQkJCW5vZGUgPSB0bXA7CisJCQl9CisKKwkJCXJiX3NldF9ibGFjayhwYXJlbnQpOworCQkJcmJfc2V0X3JlZChncGFyZW50KTsKKwkJCV9fcmJfcm90YXRlX3JpZ2h0KGdwYXJlbnQsIHJvb3QpOworCQl9IGVsc2UgeworCQkJeworCQkJCXJlZ2lzdGVyIHN0cnVjdCByYl9ub2RlICp1bmNsZSA9IGdwYXJlbnQtPnJiX2xlZnQ7CisJCQkJaWYgKHVuY2xlICYmIHJiX2lzX3JlZCh1bmNsZSkpCisJCQkJeworCQkJCQlyYl9zZXRfYmxhY2sodW5jbGUpOworCQkJCQlyYl9zZXRfYmxhY2socGFyZW50KTsKKwkJCQkJcmJfc2V0X3JlZChncGFyZW50KTsKKwkJCQkJbm9kZSA9IGdwYXJlbnQ7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKwkJCX0KKworCQkJaWYgKHBhcmVudC0+cmJfbGVmdCA9PSBub2RlKQorCQkJeworCQkJCXJlZ2lzdGVyIHN0cnVjdCByYl9ub2RlICp0bXA7CisJCQkJX19yYl9yb3RhdGVfcmlnaHQocGFyZW50LCByb290KTsKKwkJCQl0bXAgPSBwYXJlbnQ7CisJCQkJcGFyZW50ID0gbm9kZTsKKwkJCQlub2RlID0gdG1wOworCQkJfQorCisJCQlyYl9zZXRfYmxhY2socGFyZW50KTsKKwkJCXJiX3NldF9yZWQoZ3BhcmVudCk7CisJCQlfX3JiX3JvdGF0ZV9sZWZ0KGdwYXJlbnQsIHJvb3QpOworCQl9CisJfQorCisJcmJfc2V0X2JsYWNrKHJvb3QtPnJiX25vZGUpOworfQorCitzdGF0aWMgdm9pZCBfX3JiX2VyYXNlX2NvbG9yKHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LAorCQkJICAgICBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkKK3sKKwlzdHJ1Y3QgcmJfbm9kZSAqb3RoZXI7CisKKwl3aGlsZSAoKCFub2RlIHx8IHJiX2lzX2JsYWNrKG5vZGUpKSAmJiBub2RlICE9IHJvb3QtPnJiX25vZGUpCisJeworCQlpZiAocGFyZW50LT5yYl9sZWZ0ID09IG5vZGUpCisJCXsKKwkJCW90aGVyID0gcGFyZW50LT5yYl9yaWdodDsKKwkJCWlmIChyYl9pc19yZWQob3RoZXIpKQorCQkJeworCQkJCXJiX3NldF9ibGFjayhvdGhlcik7CisJCQkJcmJfc2V0X3JlZChwYXJlbnQpOworCQkJCV9fcmJfcm90YXRlX2xlZnQocGFyZW50LCByb290KTsKKwkJCQlvdGhlciA9IHBhcmVudC0+cmJfcmlnaHQ7CisJCQl9CisJCQlpZiAoKCFvdGhlci0+cmJfbGVmdCB8fCByYl9pc19ibGFjayhvdGhlci0+cmJfbGVmdCkpICYmCisJCQkgICAgKCFvdGhlci0+cmJfcmlnaHQgfHwgcmJfaXNfYmxhY2sob3RoZXItPnJiX3JpZ2h0KSkpCisJCQl7CisJCQkJcmJfc2V0X3JlZChvdGhlcik7CisJCQkJbm9kZSA9IHBhcmVudDsKKwkJCQlwYXJlbnQgPSByYl9wYXJlbnQobm9kZSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJaWYgKCFvdGhlci0+cmJfcmlnaHQgfHwgcmJfaXNfYmxhY2sob3RoZXItPnJiX3JpZ2h0KSkKKwkJCQl7CisJCQkJCXN0cnVjdCByYl9ub2RlICpvX2xlZnQ7CisJCQkJCWlmICgob19sZWZ0ID0gb3RoZXItPnJiX2xlZnQpKQorCQkJCQkJcmJfc2V0X2JsYWNrKG9fbGVmdCk7CisJCQkJCXJiX3NldF9yZWQob3RoZXIpOworCQkJCQlfX3JiX3JvdGF0ZV9yaWdodChvdGhlciwgcm9vdCk7CisJCQkJCW90aGVyID0gcGFyZW50LT5yYl9yaWdodDsKKwkJCQl9CisJCQkJcmJfc2V0X2NvbG9yKG90aGVyLCByYl9jb2xvcihwYXJlbnQpKTsKKwkJCQlyYl9zZXRfYmxhY2socGFyZW50KTsKKwkJCQlpZiAob3RoZXItPnJiX3JpZ2h0KQorCQkJCQlyYl9zZXRfYmxhY2sob3RoZXItPnJiX3JpZ2h0KTsKKwkJCQlfX3JiX3JvdGF0ZV9sZWZ0KHBhcmVudCwgcm9vdCk7CisJCQkJbm9kZSA9IHJvb3QtPnJiX25vZGU7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQlvdGhlciA9IHBhcmVudC0+cmJfbGVmdDsKKwkJCWlmIChyYl9pc19yZWQob3RoZXIpKQorCQkJeworCQkJCXJiX3NldF9ibGFjayhvdGhlcik7CisJCQkJcmJfc2V0X3JlZChwYXJlbnQpOworCQkJCV9fcmJfcm90YXRlX3JpZ2h0KHBhcmVudCwgcm9vdCk7CisJCQkJb3RoZXIgPSBwYXJlbnQtPnJiX2xlZnQ7CisJCQl9CisJCQlpZiAoKCFvdGhlci0+cmJfbGVmdCB8fCByYl9pc19ibGFjayhvdGhlci0+cmJfbGVmdCkpICYmCisJCQkgICAgKCFvdGhlci0+cmJfcmlnaHQgfHwgcmJfaXNfYmxhY2sob3RoZXItPnJiX3JpZ2h0KSkpCisJCQl7CisJCQkJcmJfc2V0X3JlZChvdGhlcik7CisJCQkJbm9kZSA9IHBhcmVudDsKKwkJCQlwYXJlbnQgPSByYl9wYXJlbnQobm9kZSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJaWYgKCFvdGhlci0+cmJfbGVmdCB8fCByYl9pc19ibGFjayhvdGhlci0+cmJfbGVmdCkpCisJCQkJeworCQkJCQlyZWdpc3RlciBzdHJ1Y3QgcmJfbm9kZSAqb19yaWdodDsKKwkJCQkJaWYgKChvX3JpZ2h0ID0gb3RoZXItPnJiX3JpZ2h0KSkKKwkJCQkJCXJiX3NldF9ibGFjayhvX3JpZ2h0KTsKKwkJCQkJcmJfc2V0X3JlZChvdGhlcik7CisJCQkJCV9fcmJfcm90YXRlX2xlZnQob3RoZXIsIHJvb3QpOworCQkJCQlvdGhlciA9IHBhcmVudC0+cmJfbGVmdDsKKwkJCQl9CisJCQkJcmJfc2V0X2NvbG9yKG90aGVyLCByYl9jb2xvcihwYXJlbnQpKTsKKwkJCQlyYl9zZXRfYmxhY2socGFyZW50KTsKKwkJCQlpZiAob3RoZXItPnJiX2xlZnQpCisJCQkJCXJiX3NldF9ibGFjayhvdGhlci0+cmJfbGVmdCk7CisJCQkJX19yYl9yb3RhdGVfcmlnaHQocGFyZW50LCByb290KTsKKwkJCQlub2RlID0gcm9vdC0+cmJfbm9kZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKwlpZiAobm9kZSkKKwkJcmJfc2V0X2JsYWNrKG5vZGUpOworfQorCit2b2lkIHJiX2VyYXNlKHN0cnVjdCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkKK3sKKwlzdHJ1Y3QgcmJfbm9kZSAqY2hpbGQsICpwYXJlbnQ7CisJaW50IGNvbG9yOworCisJaWYgKCFub2RlLT5yYl9sZWZ0KQorCQljaGlsZCA9IG5vZGUtPnJiX3JpZ2h0OworCWVsc2UgaWYgKCFub2RlLT5yYl9yaWdodCkKKwkJY2hpbGQgPSBub2RlLT5yYl9sZWZ0OworCWVsc2UKKwl7CisJCXN0cnVjdCByYl9ub2RlICpvbGQgPSBub2RlLCAqbGVmdDsKKworCQlub2RlID0gbm9kZS0+cmJfcmlnaHQ7CisJCXdoaWxlICgobGVmdCA9IG5vZGUtPnJiX2xlZnQpICE9IE5VTEwpCisJCQlub2RlID0gbGVmdDsKKwkJY2hpbGQgPSBub2RlLT5yYl9yaWdodDsKKwkJcGFyZW50ID0gcmJfcGFyZW50KG5vZGUpOworCQljb2xvciA9IHJiX2NvbG9yKG5vZGUpOworCisJCWlmIChjaGlsZCkKKwkJCXJiX3NldF9wYXJlbnQoY2hpbGQsIHBhcmVudCk7CisJCWlmIChwYXJlbnQgPT0gb2xkKSB7CisJCQlwYXJlbnQtPnJiX3JpZ2h0ID0gY2hpbGQ7CisJCQlwYXJlbnQgPSBub2RlOworCQl9IGVsc2UKKwkJCXBhcmVudC0+cmJfbGVmdCA9IGNoaWxkOworCisJCW5vZGUtPnJiX3BhcmVudF9jb2xvciA9IG9sZC0+cmJfcGFyZW50X2NvbG9yOworCQlub2RlLT5yYl9yaWdodCA9IG9sZC0+cmJfcmlnaHQ7CisJCW5vZGUtPnJiX2xlZnQgPSBvbGQtPnJiX2xlZnQ7CisKKwkJaWYgKHJiX3BhcmVudChvbGQpKQorCQl7CisJCQlpZiAocmJfcGFyZW50KG9sZCktPnJiX2xlZnQgPT0gb2xkKQorCQkJCXJiX3BhcmVudChvbGQpLT5yYl9sZWZ0ID0gbm9kZTsKKwkJCWVsc2UKKwkJCQlyYl9wYXJlbnQob2xkKS0+cmJfcmlnaHQgPSBub2RlOworCQl9IGVsc2UKKwkJCXJvb3QtPnJiX25vZGUgPSBub2RlOworCisJCXJiX3NldF9wYXJlbnQob2xkLT5yYl9sZWZ0LCBub2RlKTsKKwkJaWYgKG9sZC0+cmJfcmlnaHQpCisJCQlyYl9zZXRfcGFyZW50KG9sZC0+cmJfcmlnaHQsIG5vZGUpOworCQlnb3RvIGNvbG9yOworCX0KKworCXBhcmVudCA9IHJiX3BhcmVudChub2RlKTsKKwljb2xvciA9IHJiX2NvbG9yKG5vZGUpOworCisJaWYgKGNoaWxkKQorCQlyYl9zZXRfcGFyZW50KGNoaWxkLCBwYXJlbnQpOworCWlmIChwYXJlbnQpCisJeworCQlpZiAocGFyZW50LT5yYl9sZWZ0ID09IG5vZGUpCisJCQlwYXJlbnQtPnJiX2xlZnQgPSBjaGlsZDsKKwkJZWxzZQorCQkJcGFyZW50LT5yYl9yaWdodCA9IGNoaWxkOworCX0KKwllbHNlCisJCXJvb3QtPnJiX25vZGUgPSBjaGlsZDsKKworIGNvbG9yOgorCWlmIChjb2xvciA9PSBSQl9CTEFDSykKKwkJX19yYl9lcmFzZV9jb2xvcihjaGlsZCwgcGFyZW50LCByb290KTsKK30KKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgZmlyc3Qgbm9kZSAoaW4gc29ydCBvcmRlcikgb2YgdGhlIHRyZWUuCisgKi8KK3N0cnVjdCByYl9ub2RlICpyYl9maXJzdChzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkKK3sKKwlzdHJ1Y3QgcmJfbm9kZQkqbjsKKworCW4gPSByb290LT5yYl9ub2RlOworCWlmICghbikKKwkJcmV0dXJuIE5VTEw7CisJd2hpbGUgKG4tPnJiX2xlZnQpCisJCW4gPSBuLT5yYl9sZWZ0OworCXJldHVybiBuOworfQorCitzdHJ1Y3QgcmJfbm9kZSAqcmJfbGFzdChzdHJ1Y3QgcmJfcm9vdCAqcm9vdCkKK3sKKwlzdHJ1Y3QgcmJfbm9kZQkqbjsKKworCW4gPSByb290LT5yYl9ub2RlOworCWlmICghbikKKwkJcmV0dXJuIE5VTEw7CisJd2hpbGUgKG4tPnJiX3JpZ2h0KQorCQluID0gbi0+cmJfcmlnaHQ7CisJcmV0dXJuIG47Cit9CisKK3N0cnVjdCByYl9ub2RlICpyYl9uZXh0KHN0cnVjdCByYl9ub2RlICpub2RlKQoreworCXN0cnVjdCByYl9ub2RlICpwYXJlbnQ7CisKKwlpZiAocmJfcGFyZW50KG5vZGUpID09IG5vZGUpCisJCXJldHVybiBOVUxMOworCisJLyogSWYgd2UgaGF2ZSBhIHJpZ2h0LWhhbmQgY2hpbGQsIGdvIGRvd24gYW5kIHRoZW4gbGVmdCBhcyBmYXIKKwkgICBhcyB3ZSBjYW4uICovCisJaWYgKG5vZGUtPnJiX3JpZ2h0KSB7CisJCW5vZGUgPSBub2RlLT5yYl9yaWdodDsKKwkJd2hpbGUgKG5vZGUtPnJiX2xlZnQpCisJCQlub2RlPW5vZGUtPnJiX2xlZnQ7CisJCXJldHVybiBub2RlOworCX0KKworCS8qIE5vIHJpZ2h0LWhhbmQgY2hpbGRyZW4uICBFdmVyeXRoaW5nIGRvd24gYW5kIGxlZnQgaXMKKwkgICBzbWFsbGVyIHRoYW4gdXMsIHNvIGFueSAnbmV4dCcgbm9kZSBtdXN0IGJlIGluIHRoZSBnZW5lcmFsCisJICAgZGlyZWN0aW9uIG9mIG91ciBwYXJlbnQuIEdvIHVwIHRoZSB0cmVlOyBhbnkgdGltZSB0aGUKKwkgICBhbmNlc3RvciBpcyBhIHJpZ2h0LWhhbmQgY2hpbGQgb2YgaXRzIHBhcmVudCwga2VlcCBnb2luZworCSAgIHVwLiBGaXJzdCB0aW1lIGl0J3MgYSBsZWZ0LWhhbmQgY2hpbGQgb2YgaXRzIHBhcmVudCwgc2FpZAorCSAgIHBhcmVudCBpcyBvdXIgJ25leHQnIG5vZGUuICovCisJd2hpbGUgKChwYXJlbnQgPSByYl9wYXJlbnQobm9kZSkpICYmIG5vZGUgPT0gcGFyZW50LT5yYl9yaWdodCkKKwkJbm9kZSA9IHBhcmVudDsKKworCXJldHVybiBwYXJlbnQ7Cit9CisKK3N0cnVjdCByYl9ub2RlICpyYl9wcmV2KHN0cnVjdCByYl9ub2RlICpub2RlKQoreworCXN0cnVjdCByYl9ub2RlICpwYXJlbnQ7CisKKwlpZiAocmJfcGFyZW50KG5vZGUpID09IG5vZGUpCisJCXJldHVybiBOVUxMOworCisJLyogSWYgd2UgaGF2ZSBhIGxlZnQtaGFuZCBjaGlsZCwgZ28gZG93biBhbmQgdGhlbiByaWdodCBhcyBmYXIKKwkgICBhcyB3ZSBjYW4uICovCisJaWYgKG5vZGUtPnJiX2xlZnQpIHsKKwkJbm9kZSA9IG5vZGUtPnJiX2xlZnQ7CisJCXdoaWxlIChub2RlLT5yYl9yaWdodCkKKwkJCW5vZGU9bm9kZS0+cmJfcmlnaHQ7CisJCXJldHVybiBub2RlOworCX0KKworCS8qIE5vIGxlZnQtaGFuZCBjaGlsZHJlbi4gR28gdXAgdGlsbCB3ZSBmaW5kIGFuIGFuY2VzdG9yIHdoaWNoCisJICAgaXMgYSByaWdodC1oYW5kIGNoaWxkIG9mIGl0cyBwYXJlbnQgKi8KKwl3aGlsZSAoKHBhcmVudCA9IHJiX3BhcmVudChub2RlKSkgJiYgbm9kZSA9PSBwYXJlbnQtPnJiX2xlZnQpCisJCW5vZGUgPSBwYXJlbnQ7CisKKwlyZXR1cm4gcGFyZW50OworfQorCit2b2lkIHJiX3JlcGxhY2Vfbm9kZShzdHJ1Y3QgcmJfbm9kZSAqdmljdGltLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAorCQkgICAgIHN0cnVjdCByYl9yb290ICpyb290KQoreworCXN0cnVjdCByYl9ub2RlICpwYXJlbnQgPSByYl9wYXJlbnQodmljdGltKTsKKworCS8qIFNldCB0aGUgc3Vycm91bmRpbmcgbm9kZXMgdG8gcG9pbnQgdG8gdGhlIHJlcGxhY2VtZW50ICovCisJaWYgKHBhcmVudCkgeworCQlpZiAodmljdGltID09IHBhcmVudC0+cmJfbGVmdCkKKwkJCXBhcmVudC0+cmJfbGVmdCA9IG5ldzsKKwkJZWxzZQorCQkJcGFyZW50LT5yYl9yaWdodCA9IG5ldzsKKwl9IGVsc2UgeworCQlyb290LT5yYl9ub2RlID0gbmV3OworCX0KKwlpZiAodmljdGltLT5yYl9sZWZ0KQorCQlyYl9zZXRfcGFyZW50KHZpY3RpbS0+cmJfbGVmdCwgbmV3KTsKKwlpZiAodmljdGltLT5yYl9yaWdodCkKKwkJcmJfc2V0X3BhcmVudCh2aWN0aW0tPnJiX3JpZ2h0LCBuZXcpOworCisJLyogQ29weSB0aGUgcG9pbnRlcnMvY29sb3VyIGZyb20gdGhlIHZpY3RpbSB0byB0aGUgcmVwbGFjZW1lbnQgKi8KKwkqbmV3ID0gKnZpY3RpbTsKK30KZGlmZiAtLWdpdCBhL2xpYl9nZW5lcmljL3ZzcHJpbnRmLmMgYi9saWJfZ2VuZXJpYy92c3ByaW50Zi5jCmluZGV4IDdjOWNmZTEuLjZlOTAzZGIgMTAwNjQ0Ci0tLSBhL2xpYl9nZW5lcmljL3ZzcHJpbnRmLmMKKysrIGIvbGliX2dlbmVyaWMvdnNwcmludGYuYwpAQCAtNTUsNyArNTUsNyBAQAogCXJldHVybiBzaW1wbGVfc3RydG91bChjcCxlbmRwLGJhc2UpOwogfQogCi0jaWZkZWYgQ0ZHXzY0QklUX1NUUlRPVUwKKyNpZmRlZiBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwKIHVuc2lnbmVkIGxvbmcgbG9uZyBzaW1wbGVfc3RydG91bGwgKGNvbnN0IGNoYXIgKmNwLCBjaGFyICoqZW5kcCwgdW5zaWduZWQgaW50IGJhc2UpCiB7CiAJdW5zaWduZWQgbG9uZyBsb25nIHJlc3VsdCA9IDAsIHZhbHVlOwpAQCAtODMsNyArODMsNyBAQAogCQkqZW5kcCA9IChjaGFyICopIGNwOwogCXJldHVybiByZXN1bHQ7CiB9Ci0jZW5kaWYgLyogQ0ZHXzY0QklUX1NUUlRPVUwgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTXzY0QklUX1NUUlRPVUwgKi8KIAogLyogd2UgdXNlIHRoaXMgc28gdGhhdCB3ZSBjYW4gZG8gd2l0aG91dCB0aGUgY3R5cGUgbGlicmFyeSAqLwogI2RlZmluZSBpc19kaWdpdChjKQkoKGMpID49ICcwJyAmJiAoYykgPD0gJzknKQpAQCAtMTA1LDcgKzEwNSw3IEBACiAjZGVmaW5lIFNQRUNJQUwJMzIJCS8qIDB4ICovCiAjZGVmaW5lIExBUkdFCTY0CQkvKiB1c2UgJ0FCQ0RFRicgaW5zdGVhZCBvZiAnYWJjZGVmJyAqLwogCi0jaWZkZWYgQ0ZHXzY0QklUX1ZTUFJJTlRGCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgogI2RlZmluZSBkb19kaXYobixiYXNlKSAoeyBcCiAJdW5zaWduZWQgaW50IF9fcmVzOyBcCiAJX19yZXMgPSAoKHVuc2lnbmVkIGxvbmcgbG9uZykgbikgJSBiYXNlOyBcCkBAIC0xMjEsNyArMTIxLDcgQEAKIH0pCiAjZW5kaWYKIAotI2lmZGVmIENGR182NEJJVF9WU1BSSU5URgorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYKIHN0YXRpYyBjaGFyICogbnVtYmVyKGNoYXIgKiBzdHIsIGxvbmcgbG9uZyBudW0sIHVuc2lnbmVkIGludCBiYXNlLCBpbnQgc2l6ZSwgaW50IHByZWNpc2lvbiAsaW50IHR5cGUpCiAjZWxzZQogc3RhdGljIGNoYXIgKiBudW1iZXIoY2hhciAqIHN0ciwgbG9uZyBudW0sIHVuc2lnbmVkIGludCBiYXNlLCBpbnQgc2l6ZSwgaW50IHByZWNpc2lvbiAsaW50IHR5cGUpCkBAIC0xOTcsNyArMTk3LDcgQEAKIGludCB2c3ByaW50ZihjaGFyICpidWYsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogewogCWludCBsZW47Ci0jaWZkZWYgQ0ZHXzY0QklUX1ZTUFJJTlRGCisjaWZkZWYgQ09ORklHX1NZU182NEJJVF9WU1BSSU5URgogCXVuc2lnbmVkIGxvbmcgbG9uZyBudW07CiAjZWxzZQogCXVuc2lnbmVkIGxvbmcgbnVtOwpAQCAtMzUyLDcgKzM1Miw3IEBACiAJCQkJLS1mbXQ7CiAJCQljb250aW51ZTsKIAkJfQotI2lmZGVmIENGR182NEJJVF9WU1BSSU5URgorI2lmZGVmIENPTkZJR19TWVNfNjRCSVRfVlNQUklOVEYKIAkJaWYgKHF1YWxpZmllciA9PSAncScpICAvKiAicXVhZCIgZm9yIDY0IGJpdCB2YXJpYWJsZXMgKi8KIAkJCW51bSA9IHZhX2FyZyhhcmdzLCB1bnNpZ25lZCBsb25nIGxvbmcpOwogCQllbHNlCmRpZmYgLS1naXQgYS9saWJfaTM4Ni9ib2FyZC5jIGIvbGliX2kzODYvYm9hcmQuYwppbmRleCBmM2RhMGEyLi42NTlmOWEyIDEwMDY0NAotLS0gYS9saWJfaTM4Ni9ib2FyZC5jCisrKyBiL2xpYl9pMzg2L2JvYXJkLmMKQEAgLTg0LDcgKzg0LDcgQEAKIHsKIAkvKiBzdGFydCBtYWxsb2MgYXJlYSByaWdodCBhZnRlciB0aGUgc3RhY2sgKi8KIAltZW1fbWFsbG9jX3N0YXJ0ID0gaTM4NmJvb3RfYnNzX3N0YXJ0ICsKLQkJaTM4NmJvb3RfYnNzX3NpemUgKyBDRkdfU1RBQ0tfU0laRTsKKwkJaTM4NmJvb3RfYnNzX3NpemUgKyBDT05GSUdfU1lTX1NUQUNLX1NJWkU7CiAJbWVtX21hbGxvY19zdGFydCA9IChtZW1fbWFsbG9jX3N0YXJ0KzMpJn4zOwogCiAJLyogVXNlIGFsbCBhdmFpbGFibGUgUkFNIGZvciBtYWxsb2MoKSAqLwpAQCAtMTM3LDcgKzEzNyw3IEBACiAJCWkzODZib290X3JvbWRhdGFfZGVzdCwgaTM4NmJvb3Rfcm9tZGF0YV9kZXN0K2kzODZib290X3JvbWRhdGFfc2l6ZS0xLAogCQlpMzg2Ym9vdF9ic3Nfc3RhcnQsIGkzODZib290X2Jzc19zdGFydCtpMzg2Ym9vdF9ic3Nfc2l6ZS0xLAogCQlpMzg2Ym9vdF9ic3Nfc3RhcnQraTM4NmJvb3RfYnNzX3NpemUsCi0JCWkzODZib290X2Jzc19zdGFydCtpMzg2Ym9vdF9ic3Nfc2l6ZStDRkdfU1RBQ0tfU0laRS0xKTsKKwkJaTM4NmJvb3RfYnNzX3N0YXJ0K2kzODZib290X2Jzc19zaXplK0NPTkZJR19TWVNfU1RBQ0tfU0laRS0xKTsKIAogCiAJcmV0dXJuICgwKTsKZGlmZiAtLWdpdCBhL2xpYl9tNjhrL2JvYXJkLmMgYi9saWJfbTY4ay9ib2FyZC5jCmluZGV4IGZhNmFiNmIuLjU4M2NlMTAgMTAwNjQ0Ci0tLSBhL2xpYl9tNjhrL2JvYXJkLmMKKysrIGIvbGliX202OGsvYm9hcmQuYwpAQCAtNDksNyArNDksNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9CRURCVUcpCiAjaW5jbHVkZSA8Y21kX2JlZGJ1Zy5oPgogI2VuZGlmCi0jaWZkZWYgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgQ09ORklHX1NZU19BTExPQ19EUFJBTQogI2luY2x1ZGUgPGNvbW1wcm9jLmg+CiAjZW5kaWYKICNpbmNsdWRlIDx2ZXJzaW9uLmg+CkBAIC03NSwxMiArNzUsMTIgQEAKIAogI2luY2x1ZGUgPGVudmlyb25tZW50Lmg+CiAKLSNpZiAoICgoQ09ORklHX0VOVl9BRERSK0NPTkZJR19FTlZfU0laRSkgPCBDRkdfTU9OSVRPUl9CQVNFKSB8fCBcCi0gICAgICAoQ09ORklHX0VOVl9BRERSID49IChDRkdfTU9OSVRPUl9CQVNFICsgQ0ZHX01PTklUT1JfTEVOKSkgKSB8fCBcCisjaWYgKCAoKENPTkZJR19FTlZfQUREUitDT05GSUdfRU5WX1NJWkUpIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UpIHx8IFwKKyAgICAgIChDT05GSUdfRU5WX0FERFIgPj0gKENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTikpICkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9OVlJBTSkKLSNkZWZpbmUJVE9UQUxfTUFMTE9DX0xFTgkoQ0ZHX01BTExPQ19MRU4gKyBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lCVRPVEFMX01BTExPQ19MRU4JKENPTkZJR19TWVNfTUFMTE9DX0xFTiArIENPTkZJR19FTlZfU0laRSkKICNlbHNlCi0jZGVmaW5lCVRPVEFMX01BTExPQ19MRU4JQ0ZHX01BTExPQ19MRU4KKyNkZWZpbmUJVE9UQUxfTUFMTE9DX0xFTglDT05GSUdfU1lTX01BTExPQ19MRU4KICNlbmRpZgogCiBleHRlcm4gdWxvbmcgX19pbml0X2VuZDsKQEAgLTExOCw3ICsxMTgsNyBAQAogICovCiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQgKHZvaWQpCiB7Ci0JdWxvbmcgZGVzdF9hZGRyID0gQ0ZHX01PTklUT1JfQkFTRSArIGdkLT5yZWxvY19vZmY7CisJdWxvbmcgZGVzdF9hZGRyID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBnZC0+cmVsb2Nfb2ZmOwogCiAJbWVtX21hbGxvY19lbmQgPSBkZXN0X2FkZHI7CiAJbWVtX21hbGxvY19zdGFydCA9IGRlc3RfYWRkciAtIFRPVEFMX01BTExPQ19MRU47CkBAIC0xOTUsNyArMTk1LDcgQEAKIHN0YXRpYyBpbnQgaW5pdF9mdW5jX2kyYyAodm9pZCkKIHsKIAlwdXRzICgiSTJDOiAgICIpOwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAlwdXRzICgicmVhZHlcbiIpOwogCXJldHVybiAoMCk7CiB9CkBAIC0yMzQsOSArMjM0LDkgQEAKIAlpbml0X2Z1bmNfc3BpLAogI2VuZGlmCiAJaW5pdF9mdW5jX3JhbSwKLSNpZiBkZWZpbmVkKENGR19EUkFNX1RFU1QpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0RSQU1fVEVTVCkKIAl0ZXN0ZHJhbSwKLSNlbmRpZiAvKiBDRkdfRFJBTV9URVNUICovCisjZW5kaWYgLyogQ09ORklHX1NZU19EUkFNX1RFU1QgKi8KIAlJTklUX0ZVTkNfV0FUQ0hET0dfSU5JVAogCU5VTEwsCQkJLyogVGVybWluYXRlIHRoaXMgbGlzdCAqLwogfTsKQEAgLTI3Myw3ICsyNzMsNyBAQAogI2VuZGlmCiAKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdCAqLwotCWdkID0gKGdkX3QgKikgKENGR19JTklUX1JBTV9BRERSICsgQ0ZHX0dCTF9EQVRBX09GRlNFVCk7CisJZ2QgPSAoZ2RfdCAqKSAoQ09ORklHX1NZU19JTklUX1JBTV9BRERSICsgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQpOwogCS8qIGNvbXBpbGVyIG9wdGltaXphdGlvbiBiYXJyaWVyIG5lZWRlZCBmb3IgR0NDID49IDMuNCAqLwogCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiAKQEAgLTI5Niw5ICsyOTYsOSBAQAogCSAqCS0gbW9uaXRvciBjb2RlCiAJICoJLSBib2FyZCBpbmZvIHN0cnVjdAogCSAqLwotCWxlbiA9ICh1bG9uZykmX2VuZCAtIENGR19NT05JVE9SX0JBU0U7CisJbGVuID0gKHVsb25nKSZfZW5kIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0U7CiAKLQlhZGRyID0gQ0ZHX1NEUkFNX0JBU0UgKyBnZC0+cmFtX3NpemU7CisJYWRkciA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGdkLT5yYW1fc2l6ZTsKIAogI2lmZGVmIENPTkZJR19MT0dCVUZGRVIKIAkvKiByZXNlcnZlIGtlcm5lbCBsb2cgYnVmZmVyICovCkBAIC0zNTcsMTAgKzM1NywxMCBAQAogCQkJc2l6ZW9mIChnZF90KSwgYWRkcl9zcCk7CiAKIAkvKiBSZXNlcnZlIG1lbW9yeSBmb3IgYm9vdCBwYXJhbXMuICovCi0JYWRkcl9zcCAtPSBDRkdfQk9PVFBBUkFNU19MRU47CisJYWRkcl9zcCAtPSBDT05GSUdfU1lTX0JPT1RQQVJBTVNfTEVOOwogCWJkLT5iaV9ib290X3BhcmFtcyA9IGFkZHJfc3A7CiAJZGVidWcgKCJSZXNlcnZpbmcgJWRrIGZvciBib290IHBhcmFtZXRlcnMgYXQ6ICUwOGx4XG4iLAotCQkJQ0ZHX0JPT1RQQVJBTVNfTEVOID4+IDEwLCBhZGRyX3NwKTsKKwkJCUNPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4gPj4gMTAsIGFkZHJfc3ApOwogCiAJLyoKIAkgKiBGaW5hbGx5LCB3ZSBzZXQgdXAgYSBuZXcgKGJpZ2dlcikgc3RhY2suCkBAIC0zODEsMTMgKzM4MSwxMyBAQAogCS8qCiAJICogU2F2ZSBsb2NhbCB2YXJpYWJsZXMgdG8gYm9hcmQgaW5mbyBzdHJ1Y3QKIAkgKi8KLQliZC0+YmlfbWVtc3RhcnQgID0gQ0ZHX1NEUkFNX0JBU0U7CS8qIHN0YXJ0IG9mICBEUkFNIG1lbW9yeSAgICAgICovCisJYmQtPmJpX21lbXN0YXJ0ICA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsJLyogc3RhcnQgb2YgIERSQU0gbWVtb3J5ICAgICAgKi8KIAliZC0+YmlfbWVtc2l6ZSAgID0gZ2QtPnJhbV9zaXplOwkvKiBzaXplICBvZiAgRFJBTSBtZW1vcnkgaW4gYnl0ZXMgKi8KLSNpZmRlZiBDRkdfSU5JVF9SQU1fQUREUgotCWJkLT5iaV9zcmFtc3RhcnQgPSBDRkdfSU5JVF9SQU1fQUREUjsJLyogc3RhcnQgb2YgIFNSQU0gbWVtb3J5CSovCi0JYmQtPmJpX3NyYW1zaXplICA9IENGR19JTklUX1JBTV9FTkQ7CS8qIHNpemUgIG9mICBTUkFNIG1lbW9yeQkqLworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fQUREUgorCWJkLT5iaV9zcmFtc3RhcnQgPSBDT05GSUdfU1lTX0lOSVRfUkFNX0FERFI7CS8qIHN0YXJ0IG9mICBTUkFNIG1lbW9yeQkqLworCWJkLT5iaV9zcmFtc2l6ZSAgPSBDT05GSUdfU1lTX0lOSVRfUkFNX0VORDsJLyogc2l6ZSAgb2YgIFNSQU0gbWVtb3J5CSovCiAjZW5kaWYKLQliZC0+YmlfbWJhcl9iYXNlID0gQ0ZHX01CQVI7CQkvKiBiYXNlIG9mIGludGVybmFsIHJlZ2lzdGVycyAqLworCWJkLT5iaV9tYmFyX2Jhc2UgPSBDT05GSUdfU1lTX01CQVI7CQkvKiBiYXNlIG9mIGludGVybmFsIHJlZ2lzdGVycyAqLwogCiAJYmQtPmJpX2Jvb3RmbGFncyA9IGJvb3RmbGFnOwkJLyogYm9vdCAvIHJlYm9vdCBmbGFnIChmb3IgTHlueE9TKSAgICAqLwogCkBAIC00MDQsNyArNDA0LDcgQEAKICNlbmRpZgogCWJkLT5iaV9iYXVkcmF0ZSA9IGdkLT5iYXVkcmF0ZTsJLyogQ29uc29sZSBCYXVkcmF0ZSAgICAgKi8KIAotI2lmZGVmIENGR19FWFRCRElORk8KKyNpZmRlZiBDT05GSUdfU1lTX0VYVEJESU5GTwogCXN0cm5jcHkgKGJkLT5iaV9zX3ZlcnNpb24sICIxLjIiLCBzaXplb2YgKGJkLT5iaV9zX3ZlcnNpb24pKTsKIAlzdHJuY3B5IChiZC0+Ymlfcl92ZXJzaW9uLCBVX0JPT1RfVkVSU0lPTiwgc2l6ZW9mIChiZC0+Ymlfcl92ZXJzaW9uKSk7CiAjZW5kaWYKQEAgLTQyMCw3ICs0MjAsNyBAQAogCiAJbWVtY3B5IChpZCwgKHZvaWQgKilnZCwgc2l6ZW9mIChnZF90KSk7CiAKLQlkZWJ1ZyAoIlN0YXJ0IHJlbG9jYXRlIG9mIGNvZGUgZnJvbSAlMDh4IHRvICUwOGx4XG4iLCBDRkdfTU9OSVRPUl9CQVNFLCBhZGRyKTsKKwlkZWJ1ZyAoIlN0YXJ0IHJlbG9jYXRlIG9mIGNvZGUgZnJvbSAlMDh4IHRvICUwOGx4XG4iLCBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwgYWRkcik7CiAJcmVsb2NhdGVfY29kZSAoYWRkcl9zcCwgaWQsIGFkZHIpOwogCiAJLyogTk9UUkVBQ0hFRCAtIGp1bXBfdG9fcmFtKCkgZG9lcyBub3QgcmV0dXJuICovCkBAIC00NDYsNyArNDQ2LDcgQEAKICNpZm5kZWYgQ09ORklHX0VOVl9JU19OT1dIRVJFCiAJZXh0ZXJuIGNoYXIgKiBlbnZfbmFtZV9zcGVjOwogI2VuZGlmCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJdWxvbmcgZmxhc2hfc2l6ZTsKICNlbmRpZgogCWdkID0gaWQ7CQkvKiBpbml0aWFsaXplIFJBTSB2ZXJzaW9uIG9mIGdsb2JhbCBkYXRhICovCkBAIC00NjIsNyArNDYyLDcgQEAKIAogCVdBVENIRE9HX1JFU0VUICgpOwogCi0JZ2QtPnJlbG9jX29mZiA9ICBkZXN0X2FkZHIgLSBDRkdfTU9OSVRPUl9CQVNFOworCWdkLT5yZWxvY19vZmYgPSAgZGVzdF9hZGRyIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0U7CiAKIAltb25pdG9yX2ZsYXNoX2xlbiA9ICh1bG9uZykmX19pbml0X2VuZCAtIGRlc3RfYWRkcjsKIApAQCAtNDg2LDcgKzQ4Niw3IEBACiAJCQlhZGRyID0gKHVsb25nKShjbWR0cC0+dXNhZ2UpICsgZ2QtPnJlbG9jX29mZjsKIAkJCWNtZHRwLT51c2FnZSA9IChjaGFyICopYWRkcjsKIAkJfQotI2lmZGVmCUNGR19MT05HSEVMUAorI2lmZGVmCUNPTkZJR19TWVNfTE9OR0hFTFAKIAkJaWYgKGNtZHRwLT5oZWxwKSB7CiAJCQlhZGRyID0gKHVsb25nKShjbWR0cC0+aGVscCkgKyBnZC0+cmVsb2Nfb2ZmOwogCQkJY21kdHAtPmhlbHAgPSAoY2hhciAqKWFkZHI7CkBAIC01MTcsMTMgKzUxNywxMyBAQAogCS8qCiAJICogU2V0dXAgdHJhcCBoYW5kbGVycwogCSAqLwotCXRyYXBfaW5pdCAoQ0ZHX1NEUkFNX0JBU0UpOworCXRyYXBfaW5pdCAoQ09ORklHX1NZU19TRFJBTV9CQVNFKTsKIAotI2lmICFkZWZpbmVkKENGR19OT19GTEFTSCkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05PX0ZMQVNIKQogCXB1dHMgKCJGTEFTSDogIik7CiAKIAlpZiAoKGZsYXNoX3NpemUgPSBmbGFzaF9pbml0ICgpKSA+IDApIHsKLSMgaWZkZWYgQ0ZHX0ZMQVNIX0NIRUNLU1VNCisjIGlmZGVmIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0KIAkJcHJpbnRfc2l6ZSAoZmxhc2hfc2l6ZSwgIiIpOwogCQkvKgogCQkgKiBDb21wdXRlIGFuZCBwcmludCBmbGFzaCBDUkMgaWYgZmxhc2hjaGVja3N1bSBpcyBzZXQgdG8gJ3knCkBAIC01MzQsMjcgKzUzNCwyNyBAQAogCQlpZiAocyAmJiAoKnMgPT0gJ3knKSkgewogCQkJcHJpbnRmICgiICBDUkM6ICUwOGxYIiwKIAkJCQkJY3JjMzIgKDAsCi0JCQkJCQkgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBDRkdfRkxBU0hfQkFTRSwKKwkJCQkJCSAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIENPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJCQkJCSAgIGZsYXNoX3NpemUpCiAJCQkJCSk7CiAJCX0KIAkJcHV0YyAoJ1xuJyk7Ci0jIGVsc2UJLyogIUNGR19GTEFTSF9DSEVDS1NVTSAqLworIyBlbHNlCS8qICFDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNICovCiAJCXByaW50X3NpemUgKGZsYXNoX3NpemUsICJcbiIpOwotIyBlbmRpZiAvKiBDRkdfRkxBU0hfQ0hFQ0tTVU0gKi8KKyMgZW5kaWYgLyogQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTSAqLwogCX0gZWxzZSB7CiAJCXB1dHMgKGZhaWxlZCk7CiAJCWhhbmcgKCk7CiAJfQogCi0JYmQtPmJpX2ZsYXNoc3RhcnQgPSBDRkdfRkxBU0hfQkFTRTsJLyogdXBkYXRlIHN0YXJ0IG9mIEZMQVNIIG1lbW9yeSAgICAqLworCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwkvKiB1cGRhdGUgc3RhcnQgb2YgRkxBU0ggbWVtb3J5ICAgICovCiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IGZsYXNoX3NpemU7CS8qIHNpemUgb2YgRkxBU0ggbWVtb3J5IChmaW5hbCB2YWx1ZSkgKi8KIAliZC0+YmlfZmxhc2hvZmZzZXQgPSAwOwotI2Vsc2UJLyogQ0ZHX05PX0ZMQVNIICovCisjZWxzZQkvKiBDT05GSUdfU1lTX05PX0ZMQVNIICovCiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IDA7CiAJYmQtPmJpX2ZsYXNoc3RhcnQgPSAwOwogCWJkLT5iaV9mbGFzaG9mZnNldCA9IDA7Ci0jZW5kaWYgLyogIUNGR19OT19GTEFTSCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX05PX0ZMQVNIICovCiAKIAlXQVRDSERPR19SRVNFVCAoKTsKIApkaWZmIC0tZ2l0IGEvbGliX202OGsvYm9vdG0uYyBiL2xpYl9tNjhrL2Jvb3RtLmMKaW5kZXggNjUwNGNjOS4uYzUyZGQyZiAxMDA2NDQKLS0tIGEvbGliX202OGsvYm9vdG0uYworKysgYi9saWJfbTY4ay9ib290bS5jCkBAIC00MywyOCArNDMsMTYgQEAKIHN0YXRpYyB1bG9uZyBnZXRfc3AgKHZvaWQpOwogc3RhdGljIHZvaWQgc2V0X2Nsb2Nrc19pbl9taHogKGJkX3QgKmtiZCk7CiAKLWludCBkb19ib290bV9saW51eChpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgYm9vdG1faGVhZGVyc190ICppbWFnZXMpCit2b2lkIGFyY2hfbG1iX3Jlc2VydmUoc3RydWN0IGxtYiAqbG1iKQogewogCXVsb25nIHNwOwogCi0JdWxvbmcgcmRfbGVuOwotCXVsb25nIGluaXRyZF9zdGFydCwgaW5pdHJkX2VuZDsKLQlpbnQgcmV0OwotCi0JdWxvbmcgY21kX3N0YXJ0LCBjbWRfZW5kOwotCXVsb25nIGJvb3RtYXBfYmFzZTsKLQliZF90ICAqa2JkOwotCXZvaWQgICgqa2VybmVsKSAoYmRfdCAqLCB1bG9uZywgdWxvbmcsIHVsb25nLCB1bG9uZyk7Ci0Jc3RydWN0IGxtYiAqbG1iID0gJmltYWdlcy0+bG1iOwotCi0JYm9vdG1hcF9iYXNlID0gZ2V0ZW52X2Jvb3RtX2xvdygpOwotCiAJLyoKIAkgKiBCb290aW5nIGEgKExpbnV4KSBrZXJuZWwgaW1hZ2UKIAkgKgogCSAqIEFsbG9jYXRlIHNwYWNlIGZvciBjb21tYW5kIGxpbmUgYW5kIGJvYXJkIGluZm8gLSB0aGUKIAkgKiBhZGRyZXNzIHNob3VsZCBiZSBhcyBoaWdoIGFzIHBvc3NpYmxlIHdpdGhpbiB0aGUgcmVhY2ggb2YKLQkgKiB0aGUga2VybmVsIChzZWUgQ0ZHX0JPT1RNQVBTWiBzZXR0aW5ncyksIGJ1dCBpbiB1bnVzZWQKKwkgKiB0aGUga2VybmVsIChzZWUgQ09ORklHX1NZU19CT09UTUFQU1ogc2V0dGluZ3MpLCBidXQgaW4gdW51c2VkCiAJICogbWVtb3J5LCB3aGljaCBtZWFucyBmYXIgZW5vdWdoIGJlbG93IHRoZSBjdXJyZW50IHN0YWNrCiAJICogcG9pbnRlci4KIAkgKi8KQEAgLTczLDcgKzYxLDIyIEBACiAKIAkvKiBhZGp1c3Qgc3AgYnkgMUsgdG8gYmUgc2FmZSAqLwogCXNwIC09IDEwMjQ7Ci0JbG1iX3Jlc2VydmUobG1iLCBzcCwgKENGR19TRFJBTV9CQVNFICsgZ2QtPnJhbV9zaXplIC0gc3ApKTsKKwlsbWJfcmVzZXJ2ZShsbWIsIHNwLCAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZ2QtPnJhbV9zaXplIC0gc3ApKTsKK30KKworaW50IGRvX2Jvb3RtX2xpbnV4KGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqYXJndltdLCBib290bV9oZWFkZXJzX3QgKmltYWdlcykKK3sKKwl1bG9uZyByZF9sZW47CisJdWxvbmcgaW5pdHJkX3N0YXJ0LCBpbml0cmRfZW5kOworCWludCByZXQ7CisKKwl1bG9uZyBjbWRfc3RhcnQsIGNtZF9lbmQ7CisJdWxvbmcgYm9vdG1hcF9iYXNlOworCWJkX3QgICprYmQ7CisJdm9pZCAgKCprZXJuZWwpIChiZF90ICosIHVsb25nLCB1bG9uZywgdWxvbmcsIHVsb25nKTsKKwlzdHJ1Y3QgbG1iICpsbWIgPSAmaW1hZ2VzLT5sbWI7CisKKwlib290bWFwX2Jhc2UgPSBnZXRlbnZfYm9vdG1fbG93KCk7CiAKIAkvKiBhbGxvY2F0ZSBzcGFjZSBhbmQgaW5pdCBjb21tYW5kIGxpbmUgKi8KIAlyZXQgPSBib290X2dldF9jbWRsaW5lIChsbWIsICZjbWRfc3RhcnQsICZjbWRfZW5kLCBib290bWFwX2Jhc2UpOwpkaWZmIC0tZ2l0IGEvbGliX202OGsvaW50ZXJydXB0cy5jIGIvbGliX202OGsvaW50ZXJydXB0cy5jCmluZGV4IDE2MzVkNmYuLjJkYzA3OWIgMTAwNjQ0Ci0tLSBhL2xpYl9tNjhrL2ludGVycnVwdHMuYworKysgYi9saWJfbTY4ay9pbnRlcnJ1cHRzLmMKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8YXNtL2ltbWFwLmg+CiAKLSNkZWZpbmUJTlJfSVJRUwkJKENGR19OVU1fSVJRUykKKyNkZWZpbmUJTlJfSVJRUwkJKENPTkZJR19TWVNfTlVNX0lSUVMpCiAKIC8qCiAgKiBJbnRlcnJ1cHQgdmVjdG9yIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL2xpYl9tNjhrL3RpbWUuYyBiL2xpYl9tNjhrL3RpbWUuYwppbmRleCA2ZWJhNzg0Li42OTdkNjdlIDEwMDY0NAotLS0gYS9saWJfbTY4ay90aW1lLmMKKysrIGIvbGliX202OGsvdGltZS5jCkBAIC0zMywxOCArMzMsMTggQEAKIHN0YXRpYyB1bG9uZyB0aW1lc3RhbXA7CiAKICNpZiBkZWZpbmVkKENPTkZJR19NQ0ZUTVIpCi0jaWZuZGVmIENGR19VREVMQVlfQkFTRQorI2lmbmRlZiBDT05GSUdfU1lTX1VERUxBWV9CQVNFCiAjCWVycm9yCSJ1RGVsYXkgYmFzZSBub3QgZGVmaW5lZCEiCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKENGR19UTVJfQkFTRSkgfHwgIWRlZmluZWQoQ0ZHX0lOVFJfQkFTRSkgfHwgIWRlZmluZWQoQ0ZHX1RNUklOVFJfTk8pIHx8ICFkZWZpbmVkKENGR19UTVJJTlRSX01BU0spCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19UTVJfQkFTRSkgfHwgIWRlZmluZWQoQ09ORklHX1NZU19JTlRSX0JBU0UpIHx8ICFkZWZpbmVkKENPTkZJR19TWVNfVE1SSU5UUl9OTykgfHwgIWRlZmluZWQoQ09ORklHX1NZU19UTVJJTlRSX01BU0spCiAjCWVycm9yCSJUTVJfQkFTRSwgSU5UUl9CQVNFLCBUTVJJTlRSX05PIG9yIFRNUklOVFJfTUFTayBub3QgZGVmaW5lZCEiCiAjZW5kaWYKIGV4dGVybiB2b2lkIGR0aW1lcl9pbnRyX3NldHVwKHZvaWQpOwogCiB2b2lkIHVkZWxheSh1bnNpZ25lZCBsb25nIHVzZWMpCiB7Ci0Jdm9sYXRpbGUgZHRtcl90ICp0aW1lcnAgPSAoZHRtcl90ICopIChDRkdfVURFTEFZX0JBU0UpOworCXZvbGF0aWxlIGR0bXJfdCAqdGltZXJwID0gKGR0bXJfdCAqKSAoQ09ORklHX1NZU19VREVMQVlfQkFTRSk7CiAJdWludCBzdGFydCwgbm93LCB0bXA7CiAKIAl3aGlsZSAodXNlYyA+IDApIHsKQEAgLTU5LDcgKzU5LDcgQEAKIAkJdGltZXJwLT50Y24gPSAwOwogCQkvKiBzZXQgcGVyaW9kIHRvIDEgdXMgKi8KIAkJdGltZXJwLT50bXIgPQotCQkgICAgQ0ZHX1RJTUVSX1BSRVNDQUxFUiB8IERUSU1fRFRNUl9DTEtfRElWMSB8IERUSU1fRFRNUl9GUlIgfAorCQkgICAgQ09ORklHX1NZU19USU1FUl9QUkVTQ0FMRVIgfCBEVElNX0RUTVJfQ0xLX0RJVjEgfCBEVElNX0RUTVJfRlJSIHwKIAkJICAgIERUSU1fRFRNUl9SU1RfRU47CiAKIAkJc3RhcnQgPSBub3cgPSB0aW1lcnAtPnRjbjsKQEAgLTcwLDEwICs3MCwxMCBAQAogCiB2b2lkIGR0aW1lcl9pbnRlcnJ1cHQodm9pZCAqbm90X3VzZWQpCiB7Ci0Jdm9sYXRpbGUgZHRtcl90ICp0aW1lcnAgPSAoZHRtcl90ICopIChDRkdfVE1SX0JBU0UpOworCXZvbGF0aWxlIGR0bXJfdCAqdGltZXJwID0gKGR0bXJfdCAqKSAoQ09ORklHX1NZU19UTVJfQkFTRSk7CiAKIAkvKiBjaGVjayBmb3IgdGltZXIgaW50ZXJydXB0IGFzc2VydGVkICovCi0JaWYgKChDRkdfVE1SUE5EX1JFRyAmIENGR19UTVJJTlRSX01BU0spID09IENGR19UTVJJTlRSX1BFTkQpIHsKKwlpZiAoKENPTkZJR19TWVNfVE1SUE5EX1JFRyAmIENPTkZJR19TWVNfVE1SSU5UUl9NQVNLKSA9PSBDT05GSUdfU1lTX1RNUklOVFJfUEVORCkgewogCQl0aW1lcnAtPnRlciA9IChEVElNX0RURVJfQ0FQIHwgRFRJTV9EVEVSX1JFRik7CiAJCXRpbWVzdGFtcCsrOwogCQlyZXR1cm47CkBAIC04Miw3ICs4Miw3IEBACiAKIHZvaWQgdGltZXJfaW5pdCh2b2lkKQogewotCXZvbGF0aWxlIGR0bXJfdCAqdGltZXJwID0gKGR0bXJfdCAqKSAoQ0ZHX1RNUl9CQVNFKTsKKwl2b2xhdGlsZSBkdG1yX3QgKnRpbWVycCA9IChkdG1yX3QgKikgKENPTkZJR19TWVNfVE1SX0JBU0UpOwogCiAJdGltZXN0YW1wID0gMDsKIApAQCAtOTMsNyArOTMsNyBAQAogCXRpbWVycC0+dG1yID0gRFRJTV9EVE1SX1JTVF9SU1Q7CiAKIAkvKiBpbml0aWFsaXplIGFuZCBlbmFibGUgdGltZXIgaW50ZXJydXB0ICovCi0JaXJxX2luc3RhbGxfaGFuZGxlcihDRkdfVE1SSU5UUl9OTywgZHRpbWVyX2ludGVycnVwdCwgMCk7CisJaXJxX2luc3RhbGxfaGFuZGxlcihDT05GSUdfU1lTX1RNUklOVFJfTk8sIGR0aW1lcl9pbnRlcnJ1cHQsIDApOwogCiAJdGltZXJwLT50Y24gPSAwOwogCXRpbWVycC0+dHJyID0gMTAwMDsJLyogSW50ZXJydXB0IGV2ZXJ5IG1zICovCkBAIC0xMDEsNyArMTAxLDcgQEAKIAlkdGltZXJfaW50cl9zZXR1cCgpOwogCiAJLyogc2V0IGEgcGVyaW9kIG9mIDF1cywgc2V0IHRpbWVyIG1vZGUgdG8gcmVzdGFydCBhbmQgZW5hYmxlIHRpbWVyIGFuZCBpbnRlcnJ1cHQgKi8KLQl0aW1lcnAtPnRtciA9IENGR19USU1FUl9QUkVTQ0FMRVIgfCBEVElNX0RUTVJfQ0xLX0RJVjEgfAorCXRpbWVycC0+dG1yID0gQ09ORklHX1NZU19USU1FUl9QUkVTQ0FMRVIgfCBEVElNX0RUTVJfQ0xLX0RJVjEgfAogCSAgICBEVElNX0RUTVJfRlJSIHwgRFRJTV9EVE1SX09SUkkgfCBEVElNX0RUTVJfUlNUX0VOOwogfQogCkBAIC0xMjIsMTUgKzEyMiwxNSBAQAogI2VuZGlmCQkJCS8qIENPTkZJR19NQ0ZUTVIgKi8KIAogI2lmIGRlZmluZWQoQ09ORklHX01DRlBJVCkKLSNpZiAhZGVmaW5lZChDRkdfUElUX0JBU0UpCi0jCWVycm9yCSJDRkdfUElUX0JBU0Ugbm90IGRlZmluZWQhIgorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfUElUX0JBU0UpCisjCWVycm9yCSJDT05GSUdfU1lTX1BJVF9CQVNFIG5vdCBkZWZpbmVkISIKICNlbmRpZgogCiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgbGFzdGluYzsKIAogdm9pZCB1ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjKQogewotCXZvbGF0aWxlIHBpdF90ICp0aW1lcnAgPSAocGl0X3QgKikgKENGR19VREVMQVlfQkFTRSk7CisJdm9sYXRpbGUgcGl0X3QgKnRpbWVycCA9IChwaXRfdCAqKSAoQ09ORklHX1NZU19VREVMQVlfQkFTRSk7CiAJdWludCB0bXA7CiAKIAl3aGlsZSAodXNlYyA+IDApIHsKQEAgLTE0NCw3ICsxNDQsNyBAQAogCQl0aW1lcnAtPnBjc3IgPSBQSVRfUENTUl9PVlc7CiAJCXRpbWVycC0+cG1yID0gMDsKIAkJLyogc2V0IHBlcmlvZCB0byAxIHVzICovCi0JCXRpbWVycC0+cGNzciB8PSBQSVRfUENTUl9QUkUoQ0ZHX1BJVF9QUkVTQ0FMRSkgfCBQSVRfUENTUl9FTjsKKwkJdGltZXJwLT5wY3NyIHw9IFBJVF9QQ1NSX1BSRShDT05GSUdfU1lTX1BJVF9QUkVTQ0FMRSkgfCBQSVRfUENTUl9FTjsKIAogCQl0aW1lcnAtPnBtciA9IHRtcDsKIAkJd2hpbGUgKHRpbWVycC0+cGNudHIgPiAwKSA7CkBAIC0xNTMsMTggKzE1MywxOCBAQAogCiB2b2lkIHRpbWVyX2luaXQodm9pZCkKIHsKLQl2b2xhdGlsZSBwaXRfdCAqdGltZXJwID0gKHBpdF90ICopIChDRkdfUElUX0JBU0UpOworCXZvbGF0aWxlIHBpdF90ICp0aW1lcnAgPSAocGl0X3QgKikgKENPTkZJR19TWVNfUElUX0JBU0UpOwogCXRpbWVzdGFtcCA9IDA7CiAKIAkvKiBTZXQgdXAgVElNRVIgNCBhcyBwb2xsIGNsb2NrICovCiAJdGltZXJwLT5wY3NyID0gUElUX1BDU1JfT1ZXOwogCXRpbWVycC0+cG1yID0gbGFzdGluYyA9IDA7Ci0JdGltZXJwLT5wY3NyIHw9IFBJVF9QQ1NSX1BSRShDRkdfUElUX1BSRVNDQUxFKSB8IFBJVF9QQ1NSX0VOOworCXRpbWVycC0+cGNzciB8PSBQSVRfUENTUl9QUkUoQ09ORklHX1NZU19QSVRfUFJFU0NBTEUpIHwgUElUX1BDU1JfRU47CiB9CiAKIHZvaWQgc2V0X3RpbWVyKHVsb25nIHQpCiB7Ci0Jdm9sYXRpbGUgcGl0X3QgKnRpbWVycCA9IChwaXRfdCAqKSAoQ0ZHX1BJVF9CQVNFKTsKKwl2b2xhdGlsZSBwaXRfdCAqdGltZXJwID0gKHBpdF90ICopIChDT05GSUdfU1lTX1BJVF9CQVNFKTsKIAogCXRpbWVzdGFtcCA9IDA7CiAJdGltZXJwLT5wbXIgPSBsYXN0aW5jID0gMDsKQEAgLTE3Myw3ICsxNzMsNyBAQAogdWxvbmcgZ2V0X3RpbWVyKHVsb25nIGJhc2UpCiB7CiAJdW5zaWduZWQgc2hvcnQgbm93LCBkaWZmOwotCXZvbGF0aWxlIHBpdF90ICp0aW1lcnAgPSAocGl0X3QgKikgKENGR19QSVRfQkFTRSk7CisJdm9sYXRpbGUgcGl0X3QgKnRpbWVycCA9IChwaXRfdCAqKSAoQ09ORklHX1NZU19QSVRfQkFTRSk7CiAKIAlub3cgPSB0aW1lcnAtPnBjbnRyOwogCWRpZmYgPSAtKG5vdyAtIGxhc3RpbmMpOwpAQCAtMjExLDYgKzIxMSw2IEBACiB1bG9uZyBnZXRfdGJjbGsodm9pZCkKIHsKIAl1bG9uZyB0YmNsazsKLQl0YmNsayA9IENGR19IWjsKKwl0YmNsayA9IENPTkZJR19TWVNfSFo7CiAJcmV0dXJuIHRiY2xrOwogfQpkaWZmIC0tZ2l0IGEvbGliX21pY3JvYmxhemUvYm9hcmQuYyBiL2xpYl9taWNyb2JsYXplL2JvYXJkLmMKaW5kZXggMDlkNGQ5NC4uY2Q2MTkxOCAxMDA2NDQKLS0tIGEvbGliX21pY3JvYmxhemUvYm9hcmQuYworKysgYi9saWJfbWljcm9ibGF6ZS9ib2FyZC5jCkBAIC0zNCwxMCArMzQsMTAgQEAKIAogY29uc3QgY2hhciB2ZXJzaW9uX3N0cmluZ1tdID0gVV9CT09UX1ZFUlNJT04gIiAoIiBfX0RBVEVfXyAiIC0gIiBfX1RJTUVfXyAiKSI7CiAKLSNpZmRlZiBDRkdfR1BJT18wCisjaWZkZWYgQ09ORklHX1NZU19HUElPXzAKIGV4dGVybiBpbnQgZ3Bpb19pbml0ICh2b2lkKTsKICNlbmRpZgotI2lmZGVmIENGR19JTlRDXzAKKyNpZmRlZiBDT05GSUdfU1lTX0lOVENfMAogZXh0ZXJuIGludCBpbnRlcnJ1cHRzX2luaXQgKHZvaWQpOwogI2VuZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQ01EX05FVCkKQEAgLTU0LDEzICs1NCwxMyBAQAogCiAvKgogICogVGhlIE1hbGxvYyBhcmVhIGlzIGltbWVkaWF0ZWx5IGJlbG93IHRoZSBtb25pdG9yIGNvcHkgaW4gRFJBTQotICogYWthIENGR19NT05JVE9SX0JBU0UgLSBOb3RlIHRoZXJlIGlzIG5vIG5lZWQgZm9yIHJlbG9jX29mZgorICogYWthIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gTm90ZSB0aGVyZSBpcyBubyBuZWVkIGZvciByZWxvY19vZmYKICAqIGFzIG91ciBtb25pdG9yeSBjb2RlIGlzIHJ1biBmcm9tIFNEUkFNCiAgKi8KIHN0YXRpYyB2b2lkIG1lbV9tYWxsb2NfaW5pdCAodm9pZCkKIHsKLQltZW1fbWFsbG9jX2VuZCA9IChDRkdfTUFMTE9DX0JBU0UgKyBDRkdfTUFMTE9DX0xFTik7Ci0JbWVtX21hbGxvY19zdGFydCA9IENGR19NQUxMT0NfQkFTRTsKKwltZW1fbWFsbG9jX2VuZCA9IChDT05GSUdfU1lTX01BTExPQ19CQVNFICsgQ09ORklHX1NZU19NQUxMT0NfTEVOKTsKKwltZW1fbWFsbG9jX3N0YXJ0ID0gQ09ORklHX1NZU19NQUxMT0NfQkFTRTsKIAltZW1fbWFsbG9jX2JyayA9IG1lbV9tYWxsb2Nfc3RhcnQ7CiAJbWVtc2V0ICgodm9pZCAqKW1lbV9tYWxsb2Nfc3RhcnQsIDAsIG1lbV9tYWxsb2NfZW5kIC0gbWVtX21hbGxvY19zdGFydCk7CiB9CkBAIC05NCwxMCArOTQsMTAgQEAKIGluaXRfZm5jX3QgKmluaXRfc2VxdWVuY2VbXSA9IHsKIAllbnZfaW5pdCwKIAlzZXJpYWxfaW5pdCwKLSNpZmRlZiBDRkdfR1BJT18wCisjaWZkZWYgQ09ORklHX1NZU19HUElPXzAKIAlncGlvX2luaXQsCiAjZW5kaWYKLSNpZmRlZiBDRkdfSU5UQ18wCisjaWZkZWYgQ09ORklHX1NZU19JTlRDXzAKIAlpbnRlcnJ1cHRzX2luaXQsCiAjZW5kaWYKIAlOVUxMLApAQCAtMTA3LDE4ICsxMDcsMTggQEAKIHsKIAliZF90ICpiZDsKIAlpbml0X2ZuY190ICoqaW5pdF9mbmNfcHRyOwotCWdkID0gKGdkX3QgKikgQ0ZHX0dCTF9EQVRBX09GRlNFVDsKKwlnZCA9IChnZF90ICopIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUOwogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9GTEFTSCkKIAl1bG9uZyBmbGFzaF9zaXplID0gMDsKICNlbmRpZgogCWFzbSAoIm5vcCIpOwkvKiBGSVhNRSBnZCBpcyBub3QgaW5pdGlhbGl6ZSAtIHdhaXQgKi8KLQltZW1zZXQgKCh2b2lkICopZ2QsIDAsIENGR19HQkxfREFUQV9TSVpFKTsKKwltZW1zZXQgKCh2b2lkICopZ2QsIDAsIENPTkZJR19TWVNfR0JMX0RBVEFfU0laRSk7CiAJZ2QtPmJkID0gKGJkX3QgKikgKGdkICsgMSk7CS8qIEF0IGVuZCBvZiBnbG9iYWwgZGF0YSAqLwogCWdkLT5iYXVkcmF0ZSA9IENPTkZJR19CQVVEUkFURTsKIAliZCA9IGdkLT5iZDsKIAliZC0+YmlfYmF1ZHJhdGUgPSBDT05GSUdfQkFVRFJBVEU7Ci0JYmQtPmJpX21lbXN0YXJ0ID0gQ0ZHX1NEUkFNX0JBU0U7Ci0JYmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKKwliZC0+YmlfbWVtc3RhcnQgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJYmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CiAKIAkvKiBJbml0aWFsaXNlIG1hbGxvYygpIGFyZWEgKi8KIAltZW1fbWFsbG9jX2luaXQgKCk7CkBAIC0xMzEsMTAgKzEzMSwxMCBAQAogCX0KIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9GTEFTSCkKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOworCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOwogCWlmICgwIDwgKGZsYXNoX3NpemUgPSBmbGFzaF9pbml0ICgpKSkgewogCQliZC0+YmlfZmxhc2hzaXplID0gZmxhc2hfc2l6ZTsKLQkJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gQ0ZHX0ZMQVNIX0JBU0UgKyBmbGFzaF9zaXplOworCQliZC0+YmlfZmxhc2hvZmZzZXQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgKyBmbGFzaF9zaXplOwogCX0gZWxzZSB7CiAJCXB1dHMgKCJGbGFzaCBpbml0IEZBSUxFRCIpOwogCQliZC0+YmlfZmxhc2hzdGFydCA9IDA7CmRpZmYgLS1naXQgYS9saWJfbWljcm9ibGF6ZS90aW1lLmMgYi9saWJfbWljcm9ibGF6ZS90aW1lLmMKaW5kZXggYjVkOGYxOS4uY2JiNDM0MSAxMDA2NDQKLS0tIGEvbGliX21pY3JvYmxhemUvdGltZS5jCisrKyBiL2xpYl9taWNyb2JsYXplL3RpbWUuYwpAQCAtMjYsNyArMjYsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLSNpZmRlZiBDRkdfVElNRVJfMAorI2lmZGVmIENPTkZJR19TWVNfVElNRVJfMAogdm9pZCB1ZGVsYXkgKHVuc2lnbmVkIGxvbmcgdXNlYykKIHsKIAlpbnQgaTsKZGlmZiAtLWdpdCBhL2xpYl9taXBzL2JvYXJkLmMgYi9saWJfbWlwcy9ib2FyZC5jCmluZGV4IDhjMWFmNzYuLjc3ZTFjYzggMTAwNjQ0Ci0tLSBhL2xpYl9taXBzL2JvYXJkLmMKKysrIGIvbGliX21pcHMvYm9hcmQuYwpAQCAtMzMsMTIgKzMzLDEyIEBACiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCi0jaWYgKCAoKENPTkZJR19FTlZfQUREUitDT05GSUdfRU5WX1NJWkUpIDwgQ0ZHX01PTklUT1JfQkFTRSkgfHwgXAotICAgICAgKENPTkZJR19FTlZfQUREUiA+PSAoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikpICkgfHwgXAorI2lmICggKChDT05GSUdfRU5WX0FERFIrQ09ORklHX0VOVl9TSVpFKSA8IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKSB8fCBcCisgICAgICAoQ09ORklHX0VOVl9BRERSID49IChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pKSApIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR19FTlZfSVNfSU5fTlZSQU0pCi0jZGVmaW5lCVRPVEFMX01BTExPQ19MRU4JKENGR19NQUxMT0NfTEVOICsgQ09ORklHX0VOVl9TSVpFKQorI2RlZmluZQlUT1RBTF9NQUxMT0NfTEVOCShDT05GSUdfU1lTX01BTExPQ19MRU4gKyBDT05GSUdfRU5WX1NJWkUpCiAjZWxzZQotI2RlZmluZQlUT1RBTF9NQUxMT0NfTEVOCUNGR19NQUxMT0NfTEVOCisjZGVmaW5lCVRPVEFMX01BTExPQ19MRU4JQ09ORklHX1NZU19NQUxMT0NfTEVOCiAjZW5kaWYKIAogI3VuZGVmIERFQlVHCkBAIC03NSw3ICs3NSw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIG1lbV9tYWxsb2NfaW5pdCAodm9pZCkKIHsKLQl1bG9uZyBkZXN0X2FkZHIgPSBDRkdfTU9OSVRPUl9CQVNFICsgZ2QtPnJlbG9jX29mZjsKKwl1bG9uZyBkZXN0X2FkZHIgPSBDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIGdkLT5yZWxvY19vZmY7CiAKIAltZW1fbWFsbG9jX2VuZCA9IGRlc3RfYWRkcjsKIAltZW1fbWFsbG9jX3N0YXJ0ID0gZGVzdF9hZGRyIC0gVE9UQUxfTUFMTE9DX0xFTjsKQEAgLTEyMyw3ICsxMjMsNyBAQAogCXJldHVybiAoMCk7CiB9CiAKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIHN0YXRpYyB2b2lkIGRpc3BsYXlfZmxhc2hfY29uZmlnKHVsb25nIHNpemUpCiB7CiAJcHV0cyAoIkZsYXNoOiAiKTsKQEAgLTE4Nyw3ICsxODcsNyBAQAogCWdkX3QgZ2RfZGF0YSwgKmlkOwogCWJkX3QgKmJkOwogCWluaXRfZm5jX3QgKippbml0X2ZuY19wdHI7Ci0JdWxvbmcgYWRkciwgYWRkcl9zcCwgbGVuID0gKHVsb25nKSZ1Ym9vdF9lbmQgLSBDRkdfTU9OSVRPUl9CQVNFOworCXVsb25nIGFkZHIsIGFkZHJfc3AsIGxlbiA9ICh1bG9uZykmdWJvb3RfZW5kIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0U7CiAJdWxvbmcgKnM7CiAjaWZkZWYgQ09ORklHX1BVUlBMRQogCXZvaWQgY29weV9jb2RlICh1bG9uZyk7CkBAIC0yMTEsNyArMjExLDcgQEAKIAkgKiBOb3cgdGhhdCB3ZSBoYXZlIERSQU0gbWFwcGVkIGFuZCB3b3JraW5nLCB3ZSBjYW4KIAkgKiByZWxvY2F0ZSB0aGUgY29kZSBhbmQgY29udGludWUgcnVubmluZyBmcm9tIERSQU0uCiAJICovCi0JYWRkciA9IENGR19TRFJBTV9CQVNFICsgZ2QtPnJhbV9zaXplOworCWFkZHIgPSBDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBnZC0+cmFtX3NpemU7CiAKIAkvKiBXZSBjYW4gcmVzZXJ2ZSBzb21lIFJBTSAib24gdG9wIiBoZXJlLgogCSAqLwpAQCAtMjUyLDEwICsyNTIsMTAgQEAKIAogCS8qIFJlc2VydmUgbWVtb3J5IGZvciBib290IHBhcmFtcy4KIAkgKi8KLQlhZGRyX3NwIC09IENGR19CT09UUEFSQU1TX0xFTjsKKwlhZGRyX3NwIC09IENPTkZJR19TWVNfQk9PVFBBUkFNU19MRU47CiAJYmQtPmJpX2Jvb3RfcGFyYW1zID0gYWRkcl9zcDsKIAlkZWJ1ZyAoIlJlc2VydmluZyAlZGsgZm9yIGJvb3QgcGFyYW1zKCkgYXQ6ICUwOGx4XG4iLAotCQkJQ0ZHX0JPT1RQQVJBTVNfTEVOID4+IDEwLCBhZGRyX3NwKTsKKwkJCUNPTkZJR19TWVNfQk9PVFBBUkFNU19MRU4gPj4gMTAsIGFkZHJfc3ApOwogCiAJLyoKIAkgKiBGaW5hbGx5LCB3ZSBzZXQgdXAgYSBuZXcgKGJpZ2dlcikgc3RhY2suCkBAIC0yNzQsNyArMjc0LDcgQEAKIAkvKgogCSAqIFNhdmUgbG9jYWwgdmFyaWFibGVzIHRvIGJvYXJkIGluZm8gc3RydWN0CiAJICovCi0JYmQtPmJpX21lbXN0YXJ0CT0gQ0ZHX1NEUkFNX0JBU0U7CS8qIHN0YXJ0IG9mICBEUkFNIG1lbW9yeSAqLworCWJkLT5iaV9tZW1zdGFydAk9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsJLyogc3RhcnQgb2YgIERSQU0gbWVtb3J5ICovCiAJYmQtPmJpX21lbXNpemUJPSBnZC0+cmFtX3NpemU7CQkvKiBzaXplICBvZiAgRFJBTSBtZW1vcnkgaW4gYnl0ZXMgKi8KIAliZC0+YmlfYmF1ZHJhdGUJPSBnZC0+YmF1ZHJhdGU7CQkvKiBDb25zb2xlIEJhdWRyYXRlICovCiAKQEAgLTMwNCw3ICszMDQsNyBAQAogdm9pZCBib2FyZF9pbml0X3IgKGdkX3QgKmlkLCB1bG9uZyBkZXN0X2FkZHIpCiB7CiAJY21kX3RibF90ICpjbWR0cDsKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAl1bG9uZyBzaXplOwogI2VuZGlmCiAJZXh0ZXJuIHZvaWQgbWFsbG9jX2Jpbl9yZWxvYyAodm9pZCk7CkBAIC0zMjAsNyArMzIwLDcgQEAKIAogCWRlYnVnICgiTm93IHJ1bm5pbmcgaW4gUkFNIC0gVS1Cb290IGF0OiAlMDhseFxuIiwgZGVzdF9hZGRyKTsKIAotCWdkLT5yZWxvY19vZmYgPSBkZXN0X2FkZHIgLSBDRkdfTU9OSVRPUl9CQVNFOworCWdkLT5yZWxvY19vZmYgPSBkZXN0X2FkZHIgLSBDT05GSUdfU1lTX01PTklUT1JfQkFTRTsKIAogCW1vbml0b3JfZmxhc2hfbGVuID0gKHVsb25nKSZ1Ym9vdF9lbmRfZGF0YSAtIGRlc3RfYWRkcjsKIApAQCAtMzQ1LDcgKzM0NSw3IEBACiAJCQlhZGRyID0gKHVsb25nKShjbWR0cC0+dXNhZ2UpICsgZ2QtPnJlbG9jX29mZjsKIAkJCWNtZHRwLT51c2FnZSA9IChjaGFyICopYWRkcjsKIAkJfQotI2lmZGVmCUNGR19MT05HSEVMUAorI2lmZGVmCUNPTkZJR19TWVNfTE9OR0hFTFAKIAkJaWYgKGNtZHRwLT5oZWxwKSB7CiAJCQlhZGRyID0gKHVsb25nKShjbWR0cC0+aGVscCkgKyBnZC0+cmVsb2Nfb2ZmOwogCQkJY21kdHAtPmhlbHAgPSAoY2hhciAqKWFkZHI7CkBAIC0zNTksMTUgKzM1OSwxNSBAQAogCiAJYmQgPSBnZC0+YmQ7CiAKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAkvKiBjb25maWd1cmUgYXZhaWxhYmxlIEZMQVNIIGJhbmtzICovCiAJc2l6ZSA9IGZsYXNoX2luaXQoKTsKIAlkaXNwbGF5X2ZsYXNoX2NvbmZpZyAoc2l6ZSk7CiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IHNpemU7CiAjZW5kaWYKIAotCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ0ZHX0ZMQVNIX0JBU0U7Ci0jaWYgQ0ZHX01PTklUT1JfQkFTRSA9PSBDRkdfRkxBU0hfQkFTRQorCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOworI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID09IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCWJkLT5iaV9mbGFzaG9mZnNldCA9IG1vbml0b3JfZmxhc2hfbGVuOwkvKiByZXNlcnZlZCBhcmVhIGZvciBVLUJvb3QgKi8KICNlbHNlCiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL2xpYl9taXBzL3RpbWUuYyBiL2xpYl9taXBzL3RpbWUuYwppbmRleCAxZTkyNzg5Li4wN2UzNTZkIDEwMDY0NAotLS0gYS9saWJfbWlwcy90aW1lLmMKKysrIGIvbGliX21pcHMvdGltZS5jCkBAIC0yNyw3ICsyNyw3IEBACiBzdGF0aWMgdW5zaWduZWQgbG9uZyB0aW1lc3RhbXA7CiAKIC8qIGhvdyBtYW55IGNvdW50ZXIgY3ljbGVzIGluIGEgamlmZnkgKi8KLSNkZWZpbmUgQ1lDTEVTX1BFUl9KSUZGWQkoQ0ZHX01JUFNfVElNRVJfRlJFUSArIENGR19IWiAvIDIpIC8gQ0ZHX0haCisjZGVmaW5lIENZQ0xFU19QRVJfSklGRlkJKENPTkZJR19TWVNfTUlQU19USU1FUl9GUkVRICsgQ09ORklHX1NZU19IWiAvIDIpIC8gQ09ORklHX1NZU19IWgogCiAvKgogICogdGltZXIgd2l0aG91dCBpbnRlcnJ1cHRzCkBAIC03NCw3ICs3NCw3IEBACiB7CiAJdW5zaWduZWQgaW50IHRtbzsKIAotCXRtbyA9IHJlYWRfYzBfY291bnQoKSArICh1c2VjICogKENGR19NSVBTX1RJTUVSX0ZSRVEgLyAxMDAwMDAwKSk7CisJdG1vID0gcmVhZF9jMF9jb3VudCgpICsgKHVzZWMgKiAoQ09ORklHX1NZU19NSVBTX1RJTUVSX0ZSRVEgLyAxMDAwMDAwKSk7CiAJd2hpbGUgKCh0bW8gLSByZWFkX2MwX2NvdW50KCkpIDwgMHg3ZmZmZmZmZikKIAkJLypOT1AqLzsKIH0KQEAgLTk0LDUgKzk0LDUgQEAKICAqLwogdWxvbmcgZ2V0X3RiY2xrKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19IWjsKKwlyZXR1cm4gQ09ORklHX1NZU19IWjsKIH0KZGlmZiAtLWdpdCBhL2xpYl9uaW9zL2JvYXJkLmMgYi9saWJfbmlvcy9ib2FyZC5jCmluZGV4IGNkYWY3NTMuLjAyNGJlYjUgMTAwNjQ0Ci0tLSBhL2xpYl9uaW9zL2JvYXJkLmMKKysrIGIvbGliX25pb3MvYm9hcmQuYwpAQCAtNjMsOCArNjMsOCBAQAogICovCiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQgKHZvaWQpCiB7Ci0JbWVtX21hbGxvY19zdGFydCA9IENGR19NQUxMT0NfQkFTRTsKLQltZW1fbWFsbG9jX2VuZCA9IG1lbV9tYWxsb2Nfc3RhcnQgKyBDRkdfTUFMTE9DX0xFTjsKKwltZW1fbWFsbG9jX3N0YXJ0ID0gQ09ORklHX1NZU19NQUxMT0NfQkFTRTsKKwltZW1fbWFsbG9jX2VuZCA9IG1lbV9tYWxsb2Nfc3RhcnQgKyBDT05GSUdfU1lTX01BTExPQ19MRU47CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCW1lbXNldCAoKHZvaWQgKikgbWVtX21hbGxvY19zdGFydCwKIAkJMCwKQEAgLTExMywyNSArMTEzLDI1IEBACiAJaW50IGk7CiAKIAkvKiBQb2ludGVyIGlzIHdyaXRhYmxlIHNpbmNlIHdlIGFsbG9jYXRlZCBhIHJlZ2lzdGVyIGZvciBpdC4KLQkgKiBOaW9zIHRyZWF0cyBDRkdfR0JMX0RBVEFfT0ZGU0VUIGFzIGFuIGFkZHJlc3MuCisJICogTmlvcyB0cmVhdHMgQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQgYXMgYW4gYWRkcmVzcy4KIAkgKi8KLQlnZCA9IChnZF90ICopQ0ZHX0dCTF9EQVRBX09GRlNFVDsKKwlnZCA9IChnZF90ICopQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQ7CiAJLyogY29tcGlsZXIgb3B0aW1pemF0aW9uIGJhcnJpZXIgbmVlZGVkIGZvciBHQ0MgPj0gMy40ICovCiAJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIAotCW1lbXNldCggZ2QsIDAsIENGR19HQkxfREFUQV9TSVpFICk7CisJbWVtc2V0KCBnZCwgMCwgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFICk7CiAKIAlnZC0+YmQgPSAoYmRfdCAqKShnZCsxKTsJLyogQXQgZW5kIG9mIGdsb2JhbCBkYXRhICovCiAJZ2QtPmJhdWRyYXRlID0gQ09ORklHX0JBVURSQVRFOwogCWdkLT5jcHVfY2xrID0gQ09ORklHX1NZU19DTEtfRlJFUTsKIAogCWJkID0gZ2QtPmJkOwotCWJkLT5iaV9tZW1zdGFydAk9IENGR19TRFJBTV9CQVNFOwotCWJkLT5iaV9tZW1zaXplID0gQ0ZHX1NEUkFNX1NJWkU7Ci0JYmQtPmJpX2ZsYXNoc3RhcnQgPSBDRkdfRkxBU0hfQkFTRTsKLSNpZglkZWZpbmVkKENGR19TUkFNX0JBU0UpICYmIGRlZmluZWQoQ0ZHX1NSQU1fU0laRSkKLQliZC0+Ymlfc3JhbXN0YXJ0PSBDRkdfU1JBTV9CQVNFOwotCWJkLT5iaV9zcmFtc2l6ZQk9IENGR19TUkFNX1NJWkU7CisJYmQtPmJpX21lbXN0YXJ0CT0gQ09ORklHX1NZU19TRFJBTV9CQVNFOworCWJkLT5iaV9tZW1zaXplID0gQ09ORklHX1NZU19TRFJBTV9TSVpFOworCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ09ORklHX1NZU19GTEFTSF9CQVNFOworI2lmCWRlZmluZWQoQ09ORklHX1NZU19TUkFNX0JBU0UpICYmIGRlZmluZWQoQ09ORklHX1NZU19TUkFNX1NJWkUpCisJYmQtPmJpX3NyYW1zdGFydD0gQ09ORklHX1NZU19TUkFNX0JBU0U7CisJYmQtPmJpX3NyYW1zaXplCT0gQ09ORklHX1NZU19TUkFNX1NJWkU7CiAjZW5kaWYKIAliZC0+YmlfYmF1ZHJhdGUJPSBDT05GSUdfQkFVRFJBVEU7CiAKZGlmZiAtLWdpdCBhL2xpYl9uaW9zL211bHQuYyBiL2xpYl9uaW9zL211bHQuYwppbmRleCA2NmJiNjRkLi5lYzgxMzllIDEwMDY0NAotLS0gYS9saWJfbmlvcy9tdWx0LmMKKysrIGIvbGliX25pb3MvbXVsdC5jCkBAIC0yMCw3ICsyMCw3IEBACiAKICNpbmNsdWRlIDxjb21tb24uaD4KIAotI2lmICFkZWZpbmVkKENGR19OSU9TX01VTFRfSFcpICYmICFkZWZpbmVkKENGR19OSU9TX01VTFRfTVNURVApCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19OSU9TX01VTFRfSFcpICYmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19NVUxUX01TVEVQKQogCiAjaW5jbHVkZSAibWF0aC5oIgogCkBAIC01Myw0ICs1Myw0IEBACiAJcmV0dXJuIGM7CiB9CiAKLSNlbmRpZiAvKiFkZWZpbmVkKENGR19OSU9TX01VTFRfSFcpICYmICFkZWZpbmVkKENGR19OSU9TX01VTFRfTVNURVApICovCisjZW5kaWYgLyohZGVmaW5lZChDT05GSUdfU1lTX05JT1NfTVVMVF9IVykgJiYgIWRlZmluZWQoQ09ORklHX1NZU19OSU9TX01VTFRfTVNURVApICovCmRpZmYgLS1naXQgYS9saWJfbmlvczIvYm9hcmQuYyBiL2xpYl9uaW9zMi9ib2FyZC5jCmluZGV4IDdmZmIzZjAuLmQ3NTlmMGYgMTAwNjQ0Ci0tLSBhL2xpYl9uaW9zMi9ib2FyZC5jCisrKyBiL2xpYl9uaW9zMi9ib2FyZC5jCkBAIC0zMSw3ICszMSw3IEBACiAjaWZkZWYgQ09ORklHX1NUQVRVU19MRUQKICNpbmNsdWRlIDxzdGF0dXNfbGVkLmg+CiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19OSU9TX0VQQ1NCQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX0VQQ1NCQVNFKQogI2luY2x1ZGUgPG5pb3MyLWVwY3MuaD4KICNlbmRpZgogCkBAIC02Niw4ICs2Niw4IEBACiAgKi8KIHN0YXRpYyB2b2lkIG1lbV9tYWxsb2NfaW5pdCAodm9pZCkKIHsKLQltZW1fbWFsbG9jX3N0YXJ0ID0gQ0ZHX01BTExPQ19CQVNFOwotCW1lbV9tYWxsb2NfZW5kID0gbWVtX21hbGxvY19zdGFydCArIENGR19NQUxMT0NfTEVOOworCW1lbV9tYWxsb2Nfc3RhcnQgPSBDT05GSUdfU1lTX01BTExPQ19CQVNFOworCW1lbV9tYWxsb2NfZW5kID0gbWVtX21hbGxvY19zdGFydCArIENPTkZJR19TWVNfTUFMTE9DX0xFTjsKIAltZW1fbWFsbG9jX2JyayA9IG1lbV9tYWxsb2Nfc3RhcnQ7CiAJbWVtc2V0ICgodm9pZCAqKSBtZW1fbWFsbG9jX3N0YXJ0LAogCQkwLApAQCAtOTYsNyArOTYsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0JPQVJEX0VBUkxZX0lOSVRfRikKIAlib2FyZF9lYXJseV9pbml0X2YsCS8qIENhbGwgYm9hcmQtc3BlY2lmaWMgaW5pdCBjb2RlIGVhcmx5LiovCiAjZW5kaWYKLSNpZiBkZWZpbmVkKENGR19OSU9TX0VQQ1NCQVNFKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19OSU9TX0VQQ1NCQVNFKQogCWVwY3NfcmVzZXQsCiAjZW5kaWYKIApAQCAtMTE5LDI1ICsxMTksMjUgQEAKIAlpbnQgaTsKIAogCS8qIFBvaW50ZXIgaXMgd3JpdGFibGUgc2luY2Ugd2UgYWxsb2NhdGVkIGEgcmVnaXN0ZXIgZm9yIGl0LgotCSAqIE5pb3MgdHJlYXRzIENGR19HQkxfREFUQV9PRkZTRVQgYXMgYW4gYWRkcmVzcy4KKwkgKiBOaW9zIHRyZWF0cyBDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCBhcyBhbiBhZGRyZXNzLgogCSAqLwotCWdkID0gKGdkX3QgKilDRkdfR0JMX0RBVEFfT0ZGU0VUOworCWdkID0gKGdkX3QgKilDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVDsKIAkvKiBjb21waWxlciBvcHRpbWl6YXRpb24gYmFycmllciBuZWVkZWQgZm9yIEdDQyA+PSAzLjQgKi8KIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogCi0JbWVtc2V0KCBnZCwgMCwgQ0ZHX0dCTF9EQVRBX1NJWkUgKTsKKwltZW1zZXQoIGdkLCAwLCBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUgKTsKIAogCWdkLT5iZCA9IChiZF90ICopKGdkKzEpOwkvKiBBdCBlbmQgb2YgZ2xvYmFsIGRhdGEgKi8KIAlnZC0+YmF1ZHJhdGUgPSBDT05GSUdfQkFVRFJBVEU7CiAJZ2QtPmNwdV9jbGsgPSBDT05GSUdfU1lTX0NMS19GUkVROwogCiAJYmQgPSBnZC0+YmQ7Ci0JYmQtPmJpX21lbXN0YXJ0CT0gQ0ZHX1NEUkFNX0JBU0U7Ci0JYmQtPmJpX21lbXNpemUgPSBDRkdfU0RSQU1fU0laRTsKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOwotI2lmCWRlZmluZWQoQ0ZHX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDRkdfU1JBTV9TSVpFKQotCWJkLT5iaV9zcmFtc3RhcnQ9IENGR19TUkFNX0JBU0U7Ci0JYmQtPmJpX3NyYW1zaXplCT0gQ0ZHX1NSQU1fU0laRTsKKwliZC0+YmlfbWVtc3RhcnQJPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJYmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CisjaWYJZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fU0laRSkKKwliZC0+Ymlfc3JhbXN0YXJ0PSBDT05GSUdfU1lTX1NSQU1fQkFTRTsKKwliZC0+Ymlfc3JhbXNpemUJPSBDT05GSUdfU1lTX1NSQU1fU0laRTsKICNlbmRpZgogCWJkLT5iaV9iYXVkcmF0ZQk9IENPTkZJR19CQVVEUkFURTsKIApkaWZmIC0tZ2l0IGEvbGliX25pb3MyL2NhY2hlLlMgYi9saWJfbmlvczIvY2FjaGUuUwppbmRleCBlYjc3MzVhLi5lZTNiNGI3IDEwMDY0NAotLS0gYS9saWJfbmlvczIvY2FjaGUuUworKysgYi9saWJfbmlvczIvY2FjaGUuUwpAQCAtMjksOCArMjksOCBAQAogCiBmbHVzaF9kY2FjaGU6CiAJYWRkCXI1LCByNSwgcjQKLQltb3ZoaQlyOCwgJWhpKENGR19EQ0FDSEVMSU5FX1NJWkUpCi0Jb3JpCXI4LCByOCwgJWxvKENGR19EQ0FDSEVMSU5FX1NJWkUpCisJbW92aGkJcjgsICVoaShDT05GSUdfU1lTX0RDQUNIRUxJTkVfU0laRSkKKwlvcmkJcjgsIHI4LCAlbG8oQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUpCiAwOglmbHVzaGQJMChyNCkKIAlhZGQJcjQsIHI0LCByOAogCWJsdHUJcjQsIHI1LCAwYgpAQCAtNDEsOCArNDEsOCBAQAogCiBmbHVzaF9pY2FjaGU6CiAJYWRkCXI1LCByNSwgcjQKLQltb3ZoaQlyOCwgJWhpKENGR19JQ0FDSEVMSU5FX1NJWkUpCi0Jb3JpCXI4LCByOCwgJWxvKENGR19JQ0FDSEVMSU5FX1NJWkUpCisJbW92aGkJcjgsICVoaShDT05GSUdfU1lTX0lDQUNIRUxJTkVfU0laRSkKKwlvcmkJcjgsIHI4LCAlbG8oQ09ORklHX1NZU19JQ0FDSEVMSU5FX1NJWkUpCiAxOglmbHVzaGkJcjQKIAlhZGQJcjQsIHI0LCByOAogCWJsdHUJcjQsIHI1LCAxYgpAQCAtNTUsMTYgKzU1LDE2IEBACiAJbW92CXI5LCByNAogCW1vdglyMTAsIHI1CiAKLQltb3ZoaQlyOCwgJWhpKENGR19EQ0FDSEVMSU5FX1NJWkUpCi0Jb3JpCXI4LCByOCwgJWxvKENGR19EQ0FDSEVMSU5FX1NJWkUpCisJbW92aGkJcjgsICVoaShDT05GSUdfU1lTX0RDQUNIRUxJTkVfU0laRSkKKwlvcmkJcjgsIHI4LCAlbG8oQ09ORklHX1NZU19EQ0FDSEVMSU5FX1NJWkUpCiAwOglmbHVzaGQJMChyNCkKIAlhZGQJcjQsIHI0LCByOAogCWJsdHUJcjQsIHI1LCAwYgogCiAJbW92CXI0LCByOQogCW1vdglyNSwgcjEwCi0JbW92aGkJcjgsICVoaShDRkdfSUNBQ0hFTElORV9TSVpFKQotCW9yaQlyOCwgcjgsICVsbyhDRkdfSUNBQ0hFTElORV9TSVpFKQorCW1vdmhpCXI4LCAlaGkoQ09ORklHX1NZU19JQ0FDSEVMSU5FX1NJWkUpCisJb3JpCXI4LCByOCwgJWxvKENPTkZJR19TWVNfSUNBQ0hFTElORV9TSVpFKQogMToJZmx1c2hpCXI0CiAJYWRkCXI0LCByNCwgcjgKIAlibHR1CXI0LCByNSwgMWIKZGlmZiAtLWdpdCBhL2xpYl9uaW9zMi9tdWx0LmMgYi9saWJfbmlvczIvbXVsdC5jCmluZGV4IDY2YmI2NGQuLmVjODEzOWUgMTAwNjQ0Ci0tLSBhL2xpYl9uaW9zMi9tdWx0LmMKKysrIGIvbGliX25pb3MyL211bHQuYwpAQCAtMjAsNyArMjAsNyBAQAogCiAjaW5jbHVkZSA8Y29tbW9uLmg+CiAKLSNpZiAhZGVmaW5lZChDRkdfTklPU19NVUxUX0hXKSAmJiAhZGVmaW5lZChDRkdfTklPU19NVUxUX01TVEVQKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19NVUxUX0hXKSAmJiAhZGVmaW5lZChDT05GSUdfU1lTX05JT1NfTVVMVF9NU1RFUCkKIAogI2luY2x1ZGUgIm1hdGguaCIKIApAQCAtNTMsNCArNTMsNCBAQAogCXJldHVybiBjOwogfQogCi0jZW5kaWYgLyohZGVmaW5lZChDRkdfTklPU19NVUxUX0hXKSAmJiAhZGVmaW5lZChDRkdfTklPU19NVUxUX01TVEVQKSAqLworI2VuZGlmIC8qIWRlZmluZWQoQ09ORklHX1NZU19OSU9TX01VTFRfSFcpICYmICFkZWZpbmVkKENPTkZJR19TWVNfTklPU19NVUxUX01TVEVQKSAqLwpkaWZmIC0tZ2l0IGEvbGliX3BwYy9ib2FyZC5jIGIvbGliX3BwYy9ib2FyZC5jCmluZGV4IDg2NWU3NGYuLmNlMDdjNGUgMTAwNjQ0Ci0tLSBhL2xpYl9wcGMvYm9hcmQuYworKysgYi9saWJfcHBjL2JvYXJkLmMKQEAgLTUyLDcgKzUyLDcgQEAKICNlbmRpZgogI2luY2x1ZGUgPG5ldC5oPgogI2luY2x1ZGUgPHNlcmlhbC5oPgotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KICNpZiAhZGVmaW5lZChDT05GSUdfQ1BNMikKICNpbmNsdWRlIDxjb21tcHJvYy5oPgogI2VuZGlmCkBAIC02OCwxNCArNjgsMTQgQEAKICNpZiBkZWZpbmVkKENPTkZJR19MT0dCVUZGRVIpCiAjaW5jbHVkZSA8bG9nYnVmZi5oPgogI2VuZGlmCi0jaWYgZGVmaW5lZChDRkdfSU5JVF9SQU1fTE9DSykgJiYgZGVmaW5lZChDT05GSUdfRTUwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSykgJiYgZGVmaW5lZChDT05GSUdfRTUwMCkKICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KICNlbmRpZgogI2lmZGVmIENPTkZJR19QUzJLQkQKICNpbmNsdWRlIDxrZXlib2FyZC5oPgogI2VuZGlmCiAKLSNpZmRlZiBDRkdfVVBEQVRFX0ZMQVNIX1NJWkUKKyNpZmRlZiBDT05GSUdfU1lTX1VQREFURV9GTEFTSF9TSVpFCiBleHRlcm4gaW50IHVwZGF0ZV9mbGFzaF9zaXplIChpbnQgZmxhc2hfc2l6ZSk7CiAjZW5kaWYKIApAQCAtMTA3LDE3ICsxMDcsMTcgQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0VNQkVEREVEKQotI2RlZmluZSBUT1RBTF9NQUxMT0NfTEVOCUNGR19NQUxMT0NfTEVOCi0jZWxpZiAoICgoQ09ORklHX0VOVl9BRERSK0NPTkZJR19FTlZfU0laRSkgPCBDRkdfTU9OSVRPUl9CQVNFKSB8fCBcCi0JKENPTkZJR19FTlZfQUREUiA+PSAoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikpICkgfHwgXAorI2RlZmluZSBUT1RBTF9NQUxMT0NfTEVOCUNPTkZJR19TWVNfTUFMTE9DX0xFTgorI2VsaWYgKCAoKENPTkZJR19FTlZfQUREUitDT05GSUdfRU5WX1NJWkUpIDwgQ09ORklHX1NZU19NT05JVE9SX0JBU0UpIHx8IFwKKwkoQ09ORklHX0VOVl9BRERSID49IChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pKSApIHx8IFwKICAgICAgIGRlZmluZWQoQ09ORklHX0VOVl9JU19JTl9OVlJBTSkKLSNkZWZpbmUJVE9UQUxfTUFMTE9DX0xFTgkoQ0ZHX01BTExPQ19MRU4gKyBDT05GSUdfRU5WX1NJWkUpCisjZGVmaW5lCVRPVEFMX01BTExPQ19MRU4JKENPTkZJR19TWVNfTUFMTE9DX0xFTiArIENPTkZJR19FTlZfU0laRSkKICNlbHNlCi0jZGVmaW5lCVRPVEFMX01BTExPQ19MRU4JQ0ZHX01BTExPQ19MRU4KKyNkZWZpbmUJVE9UQUxfTUFMTE9DX0xFTglDT05GSUdfU1lTX01BTExPQ19MRU4KICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQ0ZHX01FTV9UT1BfSElERSkKLSNkZWZpbmUgQ0ZHX01FTV9UT1BfSElERQkwCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19NRU1fVE9QX0hJREUpCisjZGVmaW5lIENPTkZJR19TWVNfTUVNX1RPUF9ISURFCTAKICNlbmRpZgogCiBleHRlcm4gdWxvbmcgX19pbml0X2VuZDsKQEAgLTE0Niw3ICsxNDYsNyBAQAogc3RhdGljIHZvaWQgbWVtX21hbGxvY19pbml0ICh2b2lkKQogewogI2lmICFkZWZpbmVkKENPTkZJR19SRUxPQ19GSVhVUF9XT1JLUykKLQltZW1fbWFsbG9jX2VuZCA9IENGR19NT05JVE9SX0JBU0UgKyBnZC0+cmVsb2Nfb2ZmOworCW1lbV9tYWxsb2NfZW5kID0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UgKyBnZC0+cmVsb2Nfb2ZmOwogI2VuZGlmCiAJbWVtX21hbGxvY19zdGFydCA9IG1lbV9tYWxsb2NfZW5kIC0gVE9UQUxfTUFMTE9DX0xFTjsKIAltZW1fbWFsbG9jX2JyayA9IG1lbV9tYWxsb2Nfc3RhcnQ7CkBAIC0yMzQsNyArMjM0LDcgQEAKIHN0YXRpYyBpbnQgaW5pdF9mdW5jX2kyYyAodm9pZCkKIHsKIAlwdXRzICgiSTJDOiAgICIpOwotCWkyY19pbml0IChDRkdfSTJDX1NQRUVELCBDRkdfSTJDX1NMQVZFKTsKKwlpMmNfaW5pdCAoQ09ORklHX1NZU19JMkNfU1BFRUQsIENPTkZJR19TWVNfSTJDX1NMQVZFKTsKIAlwdXRzICgicmVhZHlcbiIpOwogCXJldHVybiAoMCk7CiB9CkBAIC0yOTEsNyArMjkxLDcgQEAKICNlbmRpZgogCWluaXRfdGltZWJhc2UsCiAjZW5kaWYKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAjaWYgIWRlZmluZWQoQ09ORklHX0NQTTIpCiAJZHByYW1faW5pdCwKICNlbmRpZgpAQCAtMzQzLDkgKzM0Myw5IEBACiAjZW5kaWYKIAlJTklUX0ZVTkNfV0FUQ0hET0dfUkVTRVQKIAlpbml0X2Z1bmNfcmFtLAotI2lmIGRlZmluZWQoQ0ZHX0RSQU1fVEVTVCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRFJBTV9URVNUKQogCXRlc3RkcmFtLAotI2VuZGlmIC8qIENGR19EUkFNX1RFU1QgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RSQU1fVEVTVCAqLwogCUlOSVRfRlVOQ19XQVRDSERPR19SRVNFVAogCiAJTlVMTCwJCQkvKiBUZXJtaW5hdGUgdGhpcyBsaXN0ICovCkBAIC0zODQsNyArMzg0LDcgQEAKICNpZmRlZiBDT05GSUdfTE9HQlVGRkVSCiB1bnNpZ25lZCBsb25nIGxvZ2J1ZmZlcl9iYXNlKHZvaWQpCiB7Ci0JcmV0dXJuIENGR19TRFJBTV9CQVNFICsgZ2V0X2VmZmVjdGl2ZV9tZW1zaXplKCkgLSBMT0dCVUZGX0xFTjsKKwlyZXR1cm4gQ09ORklHX1NZU19TRFJBTV9CQVNFICsgZ2V0X2VmZmVjdGl2ZV9tZW1zaXplKCkgLSBMT0dCVUZGX0xFTjsKIH0KICNlbmRpZgogCkBAIC00MDIsNyArNDAyLDcgQEAKICNlbmRpZgogCiAJLyogUG9pbnRlciBpcyB3cml0YWJsZSBzaW5jZSB3ZSBhbGxvY2F0ZWQgYSByZWdpc3RlciBmb3IgaXQgKi8KLQlnZCA9IChnZF90ICopIChDRkdfSU5JVF9SQU1fQUREUiArIENGR19HQkxfREFUQV9PRkZTRVQpOworCWdkID0gKGdkX3QgKikgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKTsKIAkvKiBjb21waWxlciBvcHRpbWl6YXRpb24gYmFycmllciBuZWVkZWQgZm9yIEdDQyA+PSAzLjQgKi8KIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogCkBAIC00MzAsNyArNDMwLDcgQEAKIAkgKiAgLSBtb25pdG9yIGNvZGUKIAkgKiAgLSBib2FyZCBpbmZvIHN0cnVjdAogCSAqLwotCWxlbiA9ICh1bG9uZykmX2VuZCAtIENGR19NT05JVE9SX0JBU0U7CisJbGVuID0gKHVsb25nKSZfZW5kIC0gQ09ORklHX1NZU19NT05JVE9SX0JBU0U7CiAKIAkvKgogCSAqIFN1YnRyYWN0IHNwZWNpZmllZCBhbW91bnQgb2YgbWVtb3J5IHRvIGhpZGUgc28gdGhhdCBpdCB3b24ndApAQCAtNDQyLDkgKzQ0Miw5IEBACiAJICogbWVtb3J5IHNpemUgZnJvbSB0aGUgU0RSQU0gY29udHJvbGxlciBzZXR1cCB3aWxsIGhhdmUgdG8KIAkgKiBnZXQgZml4ZWQuCiAJICovCi0JZ2QtPnJhbV9zaXplIC09IENGR19NRU1fVE9QX0hJREU7CisJZ2QtPnJhbV9zaXplIC09IENPTkZJR19TWVNfTUVNX1RPUF9ISURFOwogCi0JYWRkciA9IENGR19TRFJBTV9CQVNFICsgZ2V0X2VmZmVjdGl2ZV9tZW1zaXplKCk7CisJYWRkciA9IENPTkZJR19TWVNfU0RSQU1fQkFTRSArIGdldF9lZmZlY3RpdmVfbWVtc2l6ZSgpOwogCiAjaWZkZWYgQ09ORklHX0xPR0JVRkZFUgogI2lmbmRlZiBDT05GSUdfQUxUX0xCX0FERFIKQEAgLTUzNiwxNSArNTM2LDE1IEBACiAJICogU2F2ZSBsb2NhbCB2YXJpYWJsZXMgdG8gYm9hcmQgaW5mbyBzdHJ1Y3QKIAkgKi8KIAotCWJkLT5iaV9tZW1zdGFydCAgPSBDRkdfU0RSQU1fQkFTRTsJLyogc3RhcnQgb2YgIERSQU0gbWVtb3J5CSovCisJYmQtPmJpX21lbXN0YXJ0ICA9IENPTkZJR19TWVNfU0RSQU1fQkFTRTsJLyogc3RhcnQgb2YgIERSQU0gbWVtb3J5CSovCiAJYmQtPmJpX21lbXNpemUgICA9IGdkLT5yYW1fc2l6ZTsJLyogc2l6ZSAgb2YgIERSQU0gbWVtb3J5IGluIGJ5dGVzICovCiAKICNpZmRlZiBDT05GSUdfSVA4NjAKIAliZC0+Ymlfc3JhbXN0YXJ0ID0gU1JBTV9CQVNFOwkvKiBzdGFydCBvZiAgU1JBTSBtZW1vcnkJKi8KIAliZC0+Ymlfc3JhbXNpemUgID0gU1JBTV9TSVpFOwkvKiBzaXplICBvZiAgU1JBTSBtZW1vcnkJKi8KICNlbGlmIGRlZmluZWQgQ09ORklHX01QQzgyMjAKLQliZC0+Ymlfc3JhbXN0YXJ0ID0gQ0ZHX1NSQU1fQkFTRTsJLyogc3RhcnQgb2YgIFNSQU0gbWVtb3J5CSovCi0JYmQtPmJpX3NyYW1zaXplICA9IENGR19TUkFNX1NJWkU7CS8qIHNpemUgIG9mICBTUkFNIG1lbW9yeQkqLworCWJkLT5iaV9zcmFtc3RhcnQgPSBDT05GSUdfU1lTX1NSQU1fQkFTRTsJLyogc3RhcnQgb2YgIFNSQU0gbWVtb3J5CSovCisJYmQtPmJpX3NyYW1zaXplICA9IENPTkZJR19TWVNfU1JBTV9TSVpFOwkvKiBzaXplICBvZiAgU1JBTSBtZW1vcnkJKi8KICNlbHNlCiAJYmQtPmJpX3NyYW1zdGFydCA9IDA7CQkvKiBGSVhNRSAqLyAvKiBzdGFydCBvZiAgU1JBTSBtZW1vcnkJKi8KIAliZC0+Ymlfc3JhbXNpemUgID0gMDsJCS8qIEZJWE1FICovIC8qIHNpemUgIG9mICBTUkFNIG1lbW9yeQkqLwpAQCAtNTUyLDE2ICs1NTIsMTYgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHXzh4eCkgfHwgZGVmaW5lZChDT05GSUdfODI2MCkgfHwgZGVmaW5lZChDT05GSUdfNXh4KSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfRTUwMCkgfHwgZGVmaW5lZChDT05GSUdfTVBDODZ4eCkKLQliZC0+YmlfaW1tcl9iYXNlID0gQ0ZHX0lNTVI7CS8qIGJhc2UgIG9mIElNTVIgcmVnaXN0ZXIgICAgICovCisJYmQtPmJpX2ltbXJfYmFzZSA9IENPTkZJR19TWVNfSU1NUjsJLyogYmFzZSAgb2YgSU1NUiByZWdpc3RlciAgICAgKi8KICNlbmRpZgogI2lmIGRlZmluZWQoQ09ORklHX01QQzV4eHgpCi0JYmQtPmJpX21iYXJfYmFzZSA9IENGR19NQkFSOwkvKiBiYXNlIG9mIGludGVybmFsIHJlZ2lzdGVycyAqLworCWJkLT5iaV9tYmFyX2Jhc2UgPSBDT05GSUdfU1lTX01CQVI7CS8qIGJhc2Ugb2YgaW50ZXJuYWwgcmVnaXN0ZXJzICovCiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19NUEM4M1hYKQotCWJkLT5iaV9pbW1yYmFyID0gQ0ZHX0lNTVI7CisJYmQtPmJpX2ltbXJiYXIgPSBDT05GSUdfU1lTX0lNTVI7CiAjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJR19NUEM4MjIwKQotCWJkLT5iaV9tYmFyX2Jhc2UgPSBDRkdfTUJBUjsJLyogYmFzZSBvZiBpbnRlcm5hbCByZWdpc3RlcnMgKi8KKwliZC0+YmlfbWJhcl9iYXNlID0gQ09ORklHX1NZU19NQkFSOwkvKiBiYXNlIG9mIGludGVybmFsIHJlZ2lzdGVycyAqLwogCWJkLT5iaV9pbnBmcmVxICAgPSBnZC0+aW5wX2NsazsKIAliZC0+YmlfcGNpZnJlcSAgID0gZ2QtPnBjaV9jbGs7CiAJYmQtPmJpX3Zjb2ZyZXEgICA9IGdkLT52Y29fY2xrOwpAQCAtNTcwLDcgKzU3MCw3IEBACiAKIAkvKiBzdG9yZSBib290cGFyYW0gdG8gc3JhbSAoYmFja3dhcmQgY29tcGF0aWJsZSksIGhlcmU/ICovCiAJewotCQl1MzIgKnNyYW0gPSAodTMyICopQ0ZHX1NSQU1fQkFTRTsKKwkJdTMyICpzcmFtID0gKHUzMiAqKUNPTkZJR19TWVNfU1JBTV9CQVNFOwogCQkqc3JhbSsrID0gZ2QtPnJhbV9zaXplOwogCQkqc3JhbSsrID0gZ2QtPmJ1c19jbGs7CiAJCSpzcmFtKysgPSBnZC0+aW5wX2NsazsKQEAgLTYwMSw3ICs2MDEsNyBAQAogI2VuZGlmIC8qIENPTkZJR19NUEM1eHh4ICovCiAJYmQtPmJpX2JhdWRyYXRlID0gZ2QtPmJhdWRyYXRlOwkvKiBDb25zb2xlIEJhdWRyYXRlICAgICAqLwogCi0jaWZkZWYgQ0ZHX0VYVEJESU5GTworI2lmZGVmIENPTkZJR19TWVNfRVhUQkRJTkZPCiAJc3RybmNweSAoKGNoYXIgKiliZC0+Ymlfc192ZXJzaW9uLCAiMS4yIiwgc2l6ZW9mIChiZC0+Ymlfc192ZXJzaW9uKSk7CiAJc3RybmNweSAoKGNoYXIgKiliZC0+Ymlfcl92ZXJzaW9uLCBVX0JPT1RfVkVSU0lPTiwgc2l6ZW9mIChiZC0+Ymlfcl92ZXJzaW9uKSk7CiAKQEAgLTY2NSw3ICs2NjUsNyBAQAogCWV4dGVybiBjaGFyICogZW52X25hbWVfc3BlYzsKICNlbmRpZgogCi0jaWZuZGVmIENGR19OT19GTEFTSAorI2lmbmRlZiBDT05GSUdfU1lTX05PX0ZMQVNICiAJdWxvbmcgZmxhc2hfc2l6ZTsKICNlbmRpZgogCkBAIC02NzgsNyArNjc4LDcgQEAKIAlnZC0+cmVsb2Nfb2ZmID0gMDsKIAltZW1fbWFsbG9jX2VuZCA9IGRlc3RfYWRkcjsKICNlbHNlCi0JZ2QtPnJlbG9jX29mZiA9IGRlc3RfYWRkciAtIENGR19NT05JVE9SX0JBU0U7CisJZ2QtPnJlbG9jX29mZiA9IGRlc3RfYWRkciAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfU0VSSUFMX01VTFRJCkBAIC03MTUsNyArNzE1LDcgQEAKIAkJCWFkZHIgPSAodWxvbmcpKGNtZHRwLT51c2FnZSkgKyBnZC0+cmVsb2Nfb2ZmOwogCQkJY21kdHAtPnVzYWdlID0gKGNoYXIgKilhZGRyOwogCQl9Ci0jaWZkZWYJQ0ZHX0xPTkdIRUxQCisjaWZkZWYJQ09ORklHX1NZU19MT05HSEVMUAogCQlpZiAoY21kdHAtPmhlbHApIHsKIAkJCWFkZHIgPSAodWxvbmcpKGNtZHRwLT5oZWxwKSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+aGVscCA9IChjaGFyICopYWRkcjsKQEAgLTc0NCw3ICs3NDQsNyBAQAogCWljYWNoZV9lbmFibGUgKCk7CS8qIGl0J3MgdGltZSB0byBlbmFibGUgdGhlIGluc3RydWN0aW9uIGNhY2hlICovCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ0ZHX0lOSVRfUkFNX0xPQ0spICYmIGRlZmluZWQoQ09ORklHX0U1MDApCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0lOSVRfUkFNX0xPQ0spICYmIGRlZmluZWQoQ09ORklHX0U1MDApCiAJdW5sb2NrX3JhbV9pbl9jYWNoZSgpOwkvKiBpdCdzIHRpbWUgdG8gdW5sb2NrIEQtY2FjaGUgaW4gZTUwMCAqLwogI2VuZGlmCiAKQEAgLTc3MCwxMSArNzcwLDExIEBACiAJICovCiAJdHJhcF9pbml0IChkZXN0X2FkZHIpOwogCi0jaWYgIWRlZmluZWQoQ0ZHX05PX0ZMQVNIKQorI2lmICFkZWZpbmVkKENPTkZJR19TWVNfTk9fRkxBU0gpCiAJcHV0cyAoIkZMQVNIOiAiKTsKIAogCWlmICgoZmxhc2hfc2l6ZSA9IGZsYXNoX2luaXQgKCkpID4gMCkgewotIyBpZmRlZiBDRkdfRkxBU0hfQ0hFQ0tTVU0KKyMgaWZkZWYgQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTQogCQlwcmludF9zaXplIChmbGFzaF9zaXplLCAiIik7CiAJCS8qCiAJCSAqIENvbXB1dGUgYW5kIHByaW50IGZsYXNoIENSQyBpZiBmbGFzaGNoZWNrc3VtIGlzIHNldCB0byAneScKQEAgLTc4NCwyMiArNzg0LDIyIEBACiAJCXMgPSBnZXRlbnYgKCJmbGFzaGNoZWNrc3VtIik7CiAJCWlmIChzICYmICgqcyA9PSAneScpKSB7CiAJCQlwcmludGYgKCIgIENSQzogJTA4WCIsCi0JCQkJY3JjMzIgKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICopIENGR19GTEFTSF9CQVNFLCBmbGFzaF9zaXplKQorCQkJCWNyYzMyICgwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UsIGZsYXNoX3NpemUpCiAJCQkpOwogCQl9CiAJCXB1dGMgKCdcbicpOwotIyBlbHNlCS8qICFDRkdfRkxBU0hfQ0hFQ0tTVU0gKi8KKyMgZWxzZQkvKiAhQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTSAqLwogCQlwcmludF9zaXplIChmbGFzaF9zaXplLCAiXG4iKTsKLSMgZW5kaWYgLyogQ0ZHX0ZMQVNIX0NIRUNLU1VNICovCisjIGVuZGlmIC8qIENPTkZJR19TWVNfRkxBU0hfQ0hFQ0tTVU0gKi8KIAl9IGVsc2UgewogCQlwdXRzIChmYWlsZWQpOwogCQloYW5nICgpOwogCX0KIAotCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ0ZHX0ZMQVNIX0JBU0U7CS8qIHVwZGF0ZSBzdGFydCBvZiBGTEFTSCBtZW1vcnkgICAgKi8KKwliZC0+YmlfZmxhc2hzdGFydCA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsJLyogdXBkYXRlIHN0YXJ0IG9mIEZMQVNIIG1lbW9yeSAgICAqLwogCWJkLT5iaV9mbGFzaHNpemUgPSBmbGFzaF9zaXplOwkvKiBzaXplIG9mIEZMQVNIIG1lbW9yeSAoZmluYWwgdmFsdWUpICovCiAKLSNpZiBkZWZpbmVkKENGR19VUERBVEVfRkxBU0hfU0laRSkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfVVBEQVRFX0ZMQVNIX1NJWkUpCiAJLyogTWFrZSBhIHVwZGF0ZSBvZiB0aGUgTWVtY3RybC4gKi8KIAl1cGRhdGVfZmxhc2hfc2l6ZSAoZmxhc2hfc2l6ZSk7CiAjZW5kaWYKQEAgLTgwOCwxNyArODA4LDE3IEBACiAjIGlmIGRlZmluZWQoQ09ORklHX1BDVV9FKSB8fCBkZWZpbmVkKENPTkZJR19PWEMpIHx8IGRlZmluZWQoQ09ORklHX1JNVSkKIAkvKiBmbGFzaCBtYXBwZWQgYXQgZW5kIG9mIG1lbW9yeSBtYXAgKi8KIAliZC0+YmlfZmxhc2hvZmZzZXQgPSBURVhUX0JBU0UgKyBmbGFzaF9zaXplOwotIyBlbGlmIENGR19NT05JVE9SX0JBU0UgPT0gQ0ZHX0ZMQVNIX0JBU0UKKyMgZWxpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA9PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UKIAliZC0+YmlfZmxhc2hvZmZzZXQgPSBtb25pdG9yX2ZsYXNoX2xlbjsJLyogcmVzZXJ2ZWQgYXJlYSBmb3Igc3RhcnR1cCBtb25pdG9yICAqLwogIyBlbHNlCiAJYmQtPmJpX2ZsYXNob2Zmc2V0ID0gMDsKICMgZW5kaWYKLSNlbHNlCS8qIENGR19OT19GTEFTSCAqLworI2Vsc2UJLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogCiAJYmQtPmJpX2ZsYXNoc2l6ZSA9IDA7CiAJYmQtPmJpX2ZsYXNoc3RhcnQgPSAwOwogCWJkLT5iaV9mbGFzaG9mZnNldCA9IDA7Ci0jZW5kaWYgLyogIUNGR19OT19GTEFTSCAqLworI2VuZGlmIC8qICFDT05GSUdfU1lTX05PX0ZMQVNIICovCiAKIAlXQVRDSERPR19SRVNFVCAoKTsKIApAQCAtODU1LDcgKzg1NSw3IEBACiAJICogdGhlIGVudmlyb25tZW50IGlzIGluIEVFUFJPTS4KIAkgKi8KIAotI2lmIGRlZmluZWQoQ0ZHX0VYVEJESU5GTykKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRVhUQkRJTkZPKQogI2lmIGRlZmluZWQoQ09ORklHXzQwNUdQKSB8fCBkZWZpbmVkKENPTkZJR180MDVFUCkKICNpZiBkZWZpbmVkKENPTkZJR19JMkNGQVNUKQogCS8qCkBAIC04NzcsMTMgKzg3NywxMyBAQAogCWJkLT5iaV9paWNfZmFzdFsxXSA9IDA7CiAjZW5kaWYJLyogQ09ORklHX0kyQ0ZBU1QgKi8KICNlbmRpZgkvKiBDT05GSUdfNDA1R1AsIENPTkZJR180MDVFUCAqLwotI2VuZGlmCS8qIENGR19FWFRCRElORk8gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0VYVEJESU5GTyAqLwogCiAjaWYgZGVmaW5lZChDT05GSUdfU0MzKQogCXNjM19yZWFkX2VlcHJvbSgpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkIChDT05GSUdfSURfRUVQUk9NKSB8fCBkZWZpbmVkIChDRkdfSTJDX01BQ19PRkZTRVQpCisjaWYgZGVmaW5lZCAoQ09ORklHX0lEX0VFUFJPTSkgfHwgZGVmaW5lZCAoQ09ORklHX1NZU19JMkNfTUFDX09GRlNFVCkKIAltYWNfcmVhZF9mcm9tX2VlcHJvbSgpOwogI2VuZGlmCiAKQEAgLTk1NCw2ICs5NTQsMzYgQEAKIAl9CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19IQVNfRVRINAorCS8qIGhhbmRsZSA1dGggZXRoZXJuZXQgYWRkcmVzcyAqLworCXMgPSBnZXRlbnYoImV0aDRhZGRyIik7CisjaWYgZGVmaW5lZChDT05GSUdfWFBFRElURTFLKSB8fCBkZWZpbmVkKENPTkZJR19NRVRST0JPWCkgfHwgZGVmaW5lZChDT05GSUdfS0FSRUYpCisJaWYgKHMgPT0gTlVMTCkKKwkJYm9hcmRfZ2V0X2VuZXRhZGRyKGJkLT5iaV9lbmV0NGFkZHIpOworCWVsc2UKKyNlbmRpZgorCWZvciAoaSA9IDA7IGkgPCA2OyArK2kpIHsKKwkJYmQtPmJpX2VuZXQ0YWRkcltpXSA9IHMgPyBzaW1wbGVfc3RydG91bCAocywgJmUsIDE2KSA6IDA7CisJCWlmIChzKQorCQkJcyA9ICgqZSkgPyBlICsgMSA6IGU7CisJfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfSEFTX0VUSDUKKwkvKiBoYW5kbGUgNnRoIGV0aGVybmV0IGFkZHJlc3MgKi8KKwlzID0gZ2V0ZW52KCJldGg1YWRkciIpOworI2lmIGRlZmluZWQoQ09ORklHX1hQRURJVEUxSykgfHwgZGVmaW5lZChDT05GSUdfTUVUUk9CT1gpIHx8IGRlZmluZWQoQ09ORklHX0tBUkVGKQorCWlmIChzID09IE5VTEwpCisJCWJvYXJkX2dldF9lbmV0YWRkcihiZC0+YmlfZW5ldDVhZGRyKTsKKwllbHNlCisjZW5kaWYKKwlmb3IgKGkgPSAwOyBpIDwgNjsgKytpKSB7CisJCWJkLT5iaV9lbmV0NWFkZHJbaV0gPSBzID8gc2ltcGxlX3N0cnRvdWwgKHMsICZlLCAxNikgOiAwOworCQlpZiAocykKKwkJCXMgPSAoKmUpID8gZSArIDEgOiBlOworCX0KKyNlbmRpZgorCiAjaWYgZGVmaW5lZChDT05GSUdfVFFNOHh4TCkgfHwgZGVmaW5lZChDT05GSUdfVFFNODI2MCkgfHwgXAogICAgIGRlZmluZWQoQ09ORklHX1RRTTgyNzIpIHx8IFwKICAgICBkZWZpbmVkKENPTkZJR19DQ00pIHx8IGRlZmluZWQoQ09ORklHX0tVUDRLKSB8fCBcCkBAIC0xMjU3LDcgKzEyODcsNyBAQAogCQkJc2VyaWFsX3B1dHMoaW5pdF9zdHIpOwogCQkJc2VyaWFsX3B1dHMoIlxuIik7CiAJCQlmb3IoOzspIHsKLQkJCQltZG1fcmVhZGxpbmUoY29uc29sZV9idWZmZXIsIENGR19DQlNJWkUpOworCQkJCW1kbV9yZWFkbGluZShjb25zb2xlX2J1ZmZlciwgQ09ORklHX1NZU19DQlNJWkUpOwogCQkJCWRiZygiaW5pJWQ6IFslc10iLCBpLCBjb25zb2xlX2J1ZmZlcik7CiAKIAkJCQlpZiAoKHN0cmNtcChjb25zb2xlX2J1ZmZlciwgIk9LIikgPT0gMCkgfHwKQEAgLTEyODEsNyArMTMxMSw3IEBACiAJLyogZmluYWwgc3RhZ2UgLSB3YWl0IGZvciBjb25uZWN0ICovCiAJZm9yKDtpID4gMTspIHsgLyogaWYgJ2knID4gMSAtIHdhaXQgZm9yIGNvbm5lY3Rpb24KIAkJCQkgIG1lc3NhZ2UgZnJvbSBtb2RlbSAqLwotCQltZG1fcmVhZGxpbmUoY29uc29sZV9idWZmZXIsIENGR19DQlNJWkUpOworCQltZG1fcmVhZGxpbmUoY29uc29sZV9idWZmZXIsIENPTkZJR19TWVNfQ0JTSVpFKTsKIAkJZGJnKCJpbmlfZjogWyVzXSIsIGNvbnNvbGVfYnVmZmVyKTsKIAkJaWYgKHN0cm5jbXAoY29uc29sZV9idWZmZXIsICJDT05ORUNUIiwgNykgPT0gMCkgewogCQkJZGJnKCJpbmlfZjogY29ubmVjdGVkIik7CkBAIC0xMzAyLDcgKzEzMzIsNyBAQAogICovCiAjdW5kZWYJWFRSTl9ERUNMQVJFX0dMT0JBTF9EQVRBX1BUUgogI2RlZmluZSBYVFJOX0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSCS8qIGVtcHR5ID0gYWxsb2NhdGUgaGVyZSAqLwotREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgPSAoZ2RfdCAqKSAoQ0ZHX0lOSVRfUkFNX0FERFIgKyBDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKK0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSID0gKGdkX3QgKikgKENPTkZJR19TWVNfSU5JVF9SQU1fQUREUiArIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VUKTsKICNlbmRpZiAgLyogMCAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpkaWZmIC0tZ2l0IGEvbGliX3BwYy9ib290bS5jIGIvbGliX3BwYy9ib290bS5jCmluZGV4IDVhZjI1ZGQuLjFmMzUwMWEgMTAwNjQ0Ci0tLSBhL2xpYl9wcGMvYm9vdG0uYworKysgYi9saWJfcHBjL2Jvb3RtLmMKQEAgLTQxLDcgKzQxLDcgQEAKIAogI2VuZGlmCiAKLSNpZmRlZiBDRkdfSU5JVF9SQU1fTE9DSworI2lmZGVmIENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSwogI2luY2x1ZGUgPGFzbS9jYWNoZS5oPgogI2VuZGlmCiAKQEAgLTUxLDQ4ICs1MSwyOCBAQAogc3RhdGljIHVsb25nIGdldF9zcCAodm9pZCk7CiBzdGF0aWMgdm9pZCBzZXRfY2xvY2tzX2luX21oeiAoYmRfdCAqa2JkKTsKIAotI2lmbmRlZiBDRkdfTElOVVhfTE9XTUVNX01BWF9TSVpFCi0jZGVmaW5lIENGR19MSU5VWF9MT1dNRU1fTUFYX1NJWkUJKDc2OCoxMDI0KjEwMjQpCisjaWZuZGVmIENPTkZJR19TWVNfTElOVVhfTE9XTUVNX01BWF9TSVpFCisjZGVmaW5lIENPTkZJR19TWVNfTElOVVhfTE9XTUVNX01BWF9TSVpFCSg3NjgqMTAyNCoxMDI0KQogI2VuZGlmCiAKLV9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKLWludCBkb19ib290bV9saW51eChpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgYm9vdG1faGVhZGVyc190ICppbWFnZXMpCit2b2lkIGFyY2hfbG1iX3Jlc2VydmUoc3RydWN0IGxtYiAqbG1iKQogewotCXVsb25nCXNwOwotCi0JdWxvbmcJaW5pdHJkX3N0YXJ0LCBpbml0cmRfZW5kOwotCXVsb25nCXJkX2xlbjsKLQl1bG9uZwlzaXplOwogCXBoeXNfc2l6ZV90IGJvb3RtX3NpemU7Ci0KLQl1bG9uZwljbWRfc3RhcnQsIGNtZF9lbmQsIGJvb3RtYXBfYmFzZTsKLQliZF90CSprYmQ7Ci0Jdm9pZAkoKmtlcm5lbCkoYmRfdCAqLCB1bG9uZyByNCwgdWxvbmcgcjUsIHVsb25nIHI2LAotCQkJICB1bG9uZyByNywgdWxvbmcgcjgsIHVsb25nIHI5KTsKLQlpbnQJcmV0OwotCXVsb25nCW9mX3NpemUgPSBpbWFnZXMtPmZ0X2xlbjsKLQlzdHJ1Y3QgbG1iICpsbWIgPSAmaW1hZ2VzLT5sbWI7Ci0KLSNpZiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpCi0JY2hhcgkqb2ZfZmxhdF90cmVlID0gaW1hZ2VzLT5mdF9hZGRyOwotI2VuZGlmCi0KLQlrZXJuZWwgPSAodm9pZCAoKikoYmRfdCAqLCB1bG9uZywgdWxvbmcsIHVsb25nLAotCQkJICAgdWxvbmcsIHVsb25nLCB1bG9uZykpaW1hZ2VzLT5lcDsKKwl1bG9uZyBzaXplLCBzcCwgYm9vdG1hcF9iYXNlOwogCiAJYm9vdG1hcF9iYXNlID0gZ2V0ZW52X2Jvb3RtX2xvdygpOwogCWJvb3RtX3NpemUgPSBnZXRlbnZfYm9vdG1fc2l6ZSgpOwogCiAjaWZkZWYgREVCVUcKIAlpZiAoKCh1NjQpYm9vdG1hcF9iYXNlICsgYm9vdG1fc2l6ZSkgPgotCSAgICAoQ0ZHX1NEUkFNX0JBU0UgKyAodTY0KWdkLT5yYW1fc2l6ZSkpCisJICAgIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyAodTY0KWdkLT5yYW1fc2l6ZSkpCiAJCXB1dHMoIldBUk5JTkc6IGJvb3RtX2xvdyArIGJvb3RtX3NpemUgZXhjZWVkIHRvdGFsIG1lbW9yeVxuIik7CiAJaWYgKChib290bWFwX2Jhc2UgKyBib290bV9zaXplKSA+IGdldF9lZmZlY3RpdmVfbWVtc2l6ZSgpKQogCQlwdXRzKCJXQVJOSU5HOiBib290bV9sb3cgKyBib290bV9zaXplIGV4Y2VlZCBlZmYuIG1lbW9yeVxuIik7CiAjZW5kaWYKIAogCXNpemUgPSBtaW4oYm9vdG1fc2l6ZSwgZ2V0X2VmZmVjdGl2ZV9tZW1zaXplKCkpOwotCXNpemUgPSBtaW4oc2l6ZSwgQ0ZHX0xJTlVYX0xPV01FTV9NQVhfU0laRSk7CisJc2l6ZSA9IG1pbihzaXplLCBDT05GSUdfU1lTX0xJTlVYX0xPV01FTV9NQVhfU0laRSk7CiAKIAlpZiAoc2l6ZSA8IGJvb3RtX3NpemUpIHsKIAkJdWxvbmcgYmFzZSA9IGJvb3RtYXBfYmFzZSArIHNpemU7CkBAIC0xMDUsNyArODUsNyBAQAogCSAqCiAJICogQWxsb2NhdGUgc3BhY2UgZm9yIGNvbW1hbmQgbGluZSBhbmQgYm9hcmQgaW5mbyAtIHRoZQogCSAqIGFkZHJlc3Mgc2hvdWxkIGJlIGFzIGhpZ2ggYXMgcG9zc2libGUgd2l0aGluIHRoZSByZWFjaCBvZgotCSAqIHRoZSBrZXJuZWwgKHNlZSBDRkdfQk9PVE1BUFNaIHNldHRpbmdzKSwgYnV0IGluIHVudXNlZAorCSAqIHRoZSBrZXJuZWwgKHNlZSBDT05GSUdfU1lTX0JPT1RNQVBTWiBzZXR0aW5ncyksIGJ1dCBpbiB1bnVzZWQKIAkgKiBtZW1vcnksIHdoaWNoIG1lYW5zIGZhciBlbm91Z2ggYmVsb3cgdGhlIGN1cnJlbnQgc3RhY2sKIAkgKiBwb2ludGVyLgogCSAqLwpAQCAtMTE0LDcgKzk0LDMzIEBACiAKIAkvKiBhZGp1c3Qgc3AgYnkgMUsgdG8gYmUgc2FmZSAqLwogCXNwIC09IDEwMjQ7Ci0JbG1iX3Jlc2VydmUobG1iLCBzcCwgKENGR19TRFJBTV9CQVNFICsgZ2V0X2VmZmVjdGl2ZV9tZW1zaXplKCkgLSBzcCkpOworCWxtYl9yZXNlcnZlKGxtYiwgc3AsIChDT05GSUdfU1lTX1NEUkFNX0JBU0UgKyBnZXRfZWZmZWN0aXZlX21lbXNpemUoKSAtIHNwKSk7CisKKwlyZXR1cm4gOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitpbnQgZG9fYm9vdG1fbGludXgoaW50IGZsYWcsIGludCBhcmdjLCBjaGFyICphcmd2W10sIGJvb3RtX2hlYWRlcnNfdCAqaW1hZ2VzKQoreworCXVsb25nCWluaXRyZF9zdGFydCwgaW5pdHJkX2VuZDsKKwl1bG9uZwlyZF9sZW47CisKKwl1bG9uZwljbWRfc3RhcnQsIGNtZF9lbmQsIGJvb3RtYXBfYmFzZTsKKwliZF90CSprYmQ7CisJdm9pZAkoKmtlcm5lbCkoYmRfdCAqLCB1bG9uZyByNCwgdWxvbmcgcjUsIHVsb25nIHI2LAorCQkJICB1bG9uZyByNywgdWxvbmcgcjgsIHVsb25nIHI5KTsKKwlpbnQJcmV0OworCXVsb25nCW9mX3NpemUgPSBpbWFnZXMtPmZ0X2xlbjsKKwlzdHJ1Y3QgbG1iICpsbWIgPSAmaW1hZ2VzLT5sbWI7CisKKyNpZiBkZWZpbmVkKENPTkZJR19PRl9MSUJGRFQpCisJY2hhcgkqb2ZfZmxhdF90cmVlID0gaW1hZ2VzLT5mdF9hZGRyOworI2VuZGlmCisKKwlrZXJuZWwgPSAodm9pZCAoKikoYmRfdCAqLCB1bG9uZywgdWxvbmcsIHVsb25nLAorCQkJICAgdWxvbmcsIHVsb25nLCB1bG9uZykpaW1hZ2VzLT5lcDsKKworCWJvb3RtYXBfYmFzZSA9IGdldGVudl9ib290bV9sb3coKTsKIAogCWlmICghb2Zfc2l6ZSkgewogCQkvKiBhbGxvY2F0ZSBzcGFjZSBhbmQgaW5pdCBjb21tYW5kIGxpbmUgKi8KQEAgLTE4OSw3ICsxOTUsNyBAQAogCiAJc2hvd19ib290X3Byb2dyZXNzICgxNSk7CiAKLSNpZiBkZWZpbmVkKENGR19JTklUX1JBTV9MT0NLKSAmJiAhZGVmaW5lZChDT05GSUdfRTUwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfSU5JVF9SQU1fTE9DSykgJiYgIWRlZmluZWQoQ09ORklHX0U1MDApCiAJdW5sb2NrX3JhbV9pbl9jYWNoZSgpOwogI2VuZGlmCiAKQEAgLTIxMyw3ICsyMTksNyBAQAogCiAJCWRlYnVnICgiICAgQm9vdGluZyB1c2luZyBPRiBmbGF0IHRyZWUuLi5cbiIpOwogCQkoKmtlcm5lbCkgKChiZF90ICopb2ZfZmxhdF90cmVlLCAwLCAwLCBFUEFQUl9NQUdJQywKLQkJCSAgIENGR19CT09UTUFQU1osIDAsIDApOworCQkJICAgQ09ORklHX1NZU19CT09UTUFQU1osIDAsIDApOwogCQkvKiBkb2VzIG5vdCByZXR1cm4gKi8KIAl9IGVsc2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliX3BwYy9jYWNoZS5jIGIvbGliX3BwYy9jYWNoZS5jCmluZGV4IDViZmIyMjAuLjcyYzgzOGUgMTAwNjQ0Ci0tLSBhL2xpYl9wcGMvY2FjaGUuYworKysgYi9saWJfcHBjL2NhY2hlLmMKQEAgLTMwLDExICszMCwxMSBAQAogI2lmbmRlZiBDT05GSUdfNXh4CiAJdWxvbmcgYWRkciwgZW5kX2FkZHIgPSBzdGFydF9hZGRyICsgc2l6ZTsKIAotCWlmIChDRkdfQ0FDSEVMSU5FX1NJWkUpIHsKLQkJYWRkciA9IHN0YXJ0X2FkZHIgJiAoQ0ZHX0NBQ0hFTElORV9TSVpFIC0gMSk7CisJaWYgKENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpIHsKKwkJYWRkciA9IHN0YXJ0X2FkZHIgJiAoQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSAtIDEpOwogCQlmb3IgKGFkZHIgPSBzdGFydF9hZGRyOwogCQkgICAgIGFkZHIgPCBlbmRfYWRkcjsKLQkJICAgICBhZGRyICs9IENGR19DQUNIRUxJTkVfU0laRSkgeworCQkgICAgIGFkZHIgKz0gQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSkgewogCQkJYXNtICgiZGNic3QgMCwlMCI6IDoiciIgKGFkZHIpKTsKIAkJCVdBVENIRE9HX1JFU0VUKCk7CiAJCX0KQEAgLTQyLDcgKzQyLDcgQEAKIAogCQlmb3IgKGFkZHIgPSBzdGFydF9hZGRyOwogCQkgICAgIGFkZHIgPCBlbmRfYWRkcjsKLQkJICAgICBhZGRyICs9IENGR19DQUNIRUxJTkVfU0laRSkgeworCQkgICAgIGFkZHIgKz0gQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSkgewogCQkJYXNtICgiaWNiaSAwLCUwIjogOiJyIiAoYWRkcikpOwogCQkJV0FUQ0hET0dfUkVTRVQoKTsKIAkJfQpkaWZmIC0tZ2l0IGEvbGliX3BwYy9leHRhYmxlLmMgYi9saWJfcHBjL2V4dGFibGUuYwppbmRleCAyZDk5NWZhLi45MWUyYjNkIDEwMDY0NAotLS0gYS9saWJfcHBjL2V4dGFibGUuYworKysgYi9saWJfcHBjL2V4dGFibGUuYwpAQCAtNTMsNyArNTMsNyBAQAogCQkgdW5zaWduZWQgbG9uZyB2YWx1ZSkKIHsKIAlsb25nIGRpZmY7Ci0JaWYgKCh1bG9uZykgZmlyc3QgPiBDRkdfTU9OSVRPUl9CQVNFKSB7CisJaWYgKCh1bG9uZykgZmlyc3QgPiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSkgewogCQkvKiBleGNlcHRpb24gb2NjdXJzIGluIEZMQVNILCBiZWZvcmUgdS1ib290IHJlbG9jYXRpb24uCiAJCSAqIE5vIHJlbG9jYXRpb24gb2Zmc2V0IGlzIG5lZWRlZC4KIAkJICovCkBAIC04Nyw3ICs4Nyw3IEBACiAJLyogVGhlcmUgaXMgb25seSB0aGUga2VybmVsIHRvIHNlYXJjaC4gICovCiAJcmV0ID0gc2VhcmNoX29uZV90YWJsZShfX3N0YXJ0X19fZXhfdGFibGUsIF9fc3RvcF9fX2V4X3RhYmxlLTEsIGFkZHIpOwogCS8qIGlmIHRoZSBzZXJpYWwgcG9ydCBkb2VzIG5vdCBoYW5nIGluIGV4Y2VwdGlvbiwgcHJpbnRmIGNhbiBiZSB1c2VkICovCi0jaWYgIWRlZmluZWQoQ0ZHX1NFUklBTF9IQU5HX0lOX0VYQ0VQVElPTikKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX1NFUklBTF9IQU5HX0lOX0VYQ0VQVElPTikKIAlpZiAoZXhfdGFiX21lc3NhZ2UpCiAJCWRlYnVnKCJCdXMgRmF1bHQgQCAweCUwOGx4LCBmaXh1cCAweCUwOGx4XG4iLCBhZGRyLCByZXQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJfcHBjL2ludGVycnVwdHMuYyBiL2xpYl9wcGMvaW50ZXJydXB0cy5jCmluZGV4IGM1OTUxZTkuLmY2MDMxNzAgMTAwNjQ0Ci0tLSBhL2xpYl9wcGMvaW50ZXJydXB0cy5jCisrKyBiL2xpYl9wcGMvaW50ZXJydXB0cy5jCkBAIC00MCw4ICs0MCw4IEBACiB9CiAjZW5kaWYgLyogQ09ORklHX1NIT1dfQUNUSVZJVFkgKi8KIAotI2lmbmRlZiBDRkdfV0FUQ0hET0dfRlJFUQotI2RlZmluZSBDRkdfV0FUQ0hET0dfRlJFUSAoQ0ZHX0haIC8gMikKKyNpZm5kZWYgQ09ORklHX1NZU19XQVRDSERPR19GUkVRCisjZGVmaW5lIENPTkZJR19TWVNfV0FUQ0hET0dfRlJFUSAoQ09ORklHX1NZU19IWiAvIDIpCiAjZW5kaWYKIAogZXh0ZXJuIGludCBpbnRlcnJ1cHRfaW5pdF9jcHUgKHVuc2lnbmVkICopOwpAQCAtMTI0LDcgKzEyNCw3IEBACiAJdGltZXN0YW1wKys7CiAKICNpZiBkZWZpbmVkKENPTkZJR19XQVRDSERPRykgfHwgZGVmaW5lZCAoQ09ORklHX0hXX1dBVENIRE9HKQotCWlmICgodGltZXN0YW1wICUgKENGR19XQVRDSERPR19GUkVRKSkgPT0gMCkKKwlpZiAoKHRpbWVzdGFtcCAlIChDT05GSUdfU1lTX1dBVENIRE9HX0ZSRVEpKSA9PSAwKQogCQlXQVRDSERPR19SRVNFVCAoKTsKICNlbmRpZiAgICAvKiBDT05GSUdfV0FUQ0hET0cgfHwgQ09ORklHX0hXX1dBVENIRE9HICovCiAKZGlmZiAtLWdpdCBhL2xpYl9wcGMvdGltZS5jIGIvbGliX3BwYy90aW1lLmMKaW5kZXggZjA5M2E1Ny4uMTczZmZhYiAxMDA2NDQKLS0tIGEvbGliX3BwYy90aW1lLmMKKysrIGIvbGliX3BwYy90aW1lLmMKQEAgLTg5LDcgKzg5LDcgQEAKIGludCBpbml0X3RpbWViYXNlICh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHXzV4eCkgfHwgZGVmaW5lZChDT05GSUdfOHh4KQotCXZvbGF0aWxlIGltbWFwX3QgKmltbWFwID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW1tYXAgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAkvKiB1bmxvY2sgKi8KIAlpbW1hcC0+aW1fc2l0ay5zaXRrX3RiayA9IEtBUFdSX0tFWTsKZGlmZiAtLWdpdCBhL2xpYl9zaC9ib2FyZC5jIGIvbGliX3NoL2JvYXJkLmMKaW5kZXggNmRmYWI0ZS4uYjZiZTIyZSAxMDA2NDQKLS0tIGEvbGliX3NoL2JvYXJkLmMKKysrIGIvbGliX3NoL2JvYXJkLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAogY29uc3QgY2hhciB2ZXJzaW9uX3N0cmluZ1tdID0gVV9CT09UX1ZFUlNJT04iICgiIF9fREFURV9fICIgLSAiIF9fVElNRV9fICIpIjsKIAotdW5zaWduZWQgbG9uZyBtb25pdG9yX2ZsYXNoX2xlbiA9IENGR19NT05JVE9SX0xFTjsKK3Vuc2lnbmVkIGxvbmcgbW9uaXRvcl9mbGFzaF9sZW4gPSBDT05GSUdfU1lTX01PTklUT1JfTEVOOwogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBtZW1fbWFsbG9jX3N0YXJ0Owogc3RhdGljIHVuc2lnbmVkIGxvbmcgbWVtX21hbGxvY19lbmQ7CkBAIC00NCw4ICs0NCw4IEBACiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQodm9pZCkKIHsKIAotCW1lbV9tYWxsb2Nfc3RhcnQgPSAoVEVYVF9CQVNFIC0gQ0ZHX0dCTF9EQVRBX1NJWkUgLSBDRkdfTUFMTE9DX0xFTik7Ci0JbWVtX21hbGxvY19lbmQgPSAobWVtX21hbGxvY19zdGFydCArIENGR19NQUxMT0NfTEVOIC0gMTYpOworCW1lbV9tYWxsb2Nfc3RhcnQgPSAoVEVYVF9CQVNFIC0gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIC0gQ09ORklHX1NZU19NQUxMT0NfTEVOKTsKKwltZW1fbWFsbG9jX2VuZCA9IChtZW1fbWFsbG9jX3N0YXJ0ICsgQ09ORklHX1NZU19NQUxMT0NfTEVOIC0gMTYpOwogCW1lbV9tYWxsb2NfYnJrID0gbWVtX21hbGxvY19zdGFydDsKIAltZW1zZXQoKHZvaWQgKikgbWVtX21hbGxvY19zdGFydCwgMCwKIAkJKG1lbV9tYWxsb2NfZW5kIC0gbWVtX21hbGxvY19zdGFydCkpOwpAQCAtMTc4LDcgKzE3OCw3IEBACiAJYmRfdCAqYmQ7CiAJaW5pdF9mbmNfdCAqKmluaXRfZm5jX3B0cjsKIAotCW1lbXNldChnZCwgMCwgQ0ZHX0dCTF9EQVRBX1NJWkUpOworCW1lbXNldChnZCwgMCwgQ09ORklHX1NZU19HQkxfREFUQV9TSVpFKTsKIAogCWdkLT5mbGFncyB8PSBHRF9GTEdfUkVMT0M7CS8qIHRlbGwgb3RoZXJzOiByZWxvY2F0aW9uIGRvbmUgKi8KIApAQCAtMTg4LDEyICsxODgsMTIgQEAKIAlnZC0+Y3B1X2NsayA9IENPTkZJR19TWVNfQ0xLX0ZSRVE7CiAKIAliZCA9IGdkLT5iZDsKLQliZC0+YmlfbWVtc3RhcnQJPSBDRkdfU0RSQU1fQkFTRTsKLQliZC0+YmlfbWVtc2l6ZSA9IENGR19TRFJBTV9TSVpFOwotCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ0ZHX0ZMQVNIX0JBU0U7Ci0jaWYgZGVmaW5lZChDRkdfU1JBTV9CQVNFKSAmJiBkZWZpbmVkKENGR19TUkFNX1NJWkUpCi0JYmQtPmJpX3NyYW1zdGFydCA9IENGR19TUkFNX0JBU0U7Ci0JYmQtPmJpX3NyYW1zaXplCT0gQ0ZHX1NSQU1fU0laRTsKKwliZC0+YmlfbWVtc3RhcnQJPSBDT05GSUdfU1lTX1NEUkFNX0JBU0U7CisJYmQtPmJpX21lbXNpemUgPSBDT05GSUdfU1lTX1NEUkFNX1NJWkU7CisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CisjaWYgZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fU0laRSkKKwliZC0+Ymlfc3JhbXN0YXJ0ID0gQ09ORklHX1NZU19TUkFNX0JBU0U7CisJYmQtPmJpX3NyYW1zaXplCT0gQ09ORklHX1NZU19TUkFNX1NJWkU7CiAjZW5kaWYKIAliZC0+YmlfYmF1ZHJhdGUJPSBDT05GSUdfQkFVRFJBVEU7CiAKZGlmZiAtLWdpdCBhL2xpYl9zaC9ib290bS5jIGIvbGliX3NoL2Jvb3RtLmMKaW5kZXggZTNkNDk4NS4uMDc4YTI0ZCAxMDA2NDQKLS0tIGEvbGliX3NoL2Jvb3RtLmMKKysrIGIvbGliX3NoL2Jvb3RtLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDxjb21tYW5kLmg+CiAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgogCi0jaWZkZWYgQ0ZHX0RFQlVHCisjaWZkZWYgQ09ORklHX1NZU19ERUJVRwogc3RhdGljIHZvaWQgaGV4ZHVtcCh1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4pCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9saWJfc2gvdGltZS5jIGIvbGliX3NoL3RpbWUuYwppbmRleCA5YzFkYzUwLi5lNjM3ZTk1IDEwMDY0NAotLS0gYS9saWJfc2gvdGltZS5jCisrKyBiL2xpYl9zaC90aW1lLmMKQEAgLTYzLDcgKzYzLDcgQEAKIHZvaWQgdWRlbGF5ICh1bnNpZ25lZCBsb25nIHVzZWMpCiB7CiAJdW5zaWduZWQgaW50IHN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKLQl1bnNpZ25lZCBpbnQgZW5kID0gc3RhcnQgKyAodXNlYyAqICgoQ0ZHX0haICsgNTAwMDAwKSAvIDEwMDAwMDApKTsKKwl1bnNpZ25lZCBpbnQgZW5kID0gc3RhcnQgKyAodXNlYyAqICgoQ09ORklHX1NZU19IWiArIDUwMDAwMCkgLyAxMDAwMDAwKSk7CiAKIAl3aGlsZSAoZ2V0X3RpbWVyICgwKSA8IGVuZCkKIAkJY29udGludWU7CkBAIC03MSw1ICs3MSw1IEBACiAKIHVuc2lnbmVkIGxvbmcgZ2V0X3RiY2xrICh2b2lkKQogewotCXJldHVybiBDRkdfSFo7CisJcmV0dXJuIENPTkZJR19TWVNfSFo7CiB9CmRpZmYgLS1naXQgYS9saWJfc3BhcmMvYm9hcmQuYyBiL2xpYl9zcGFyYy9ib2FyZC5jCmluZGV4IDk3ODBiZjIuLmU5NzJkM2UgMTAwNjQ0Ci0tLSBhL2xpYl9zcGFyYy9ib2FyZC5jCisrKyBiL2xpYl9zcGFyYy9ib2FyZC5jCkBAIC02Niw3ICs2Niw3IEBACiB2b2lkIGRvY19pbml0KHZvaWQpOwogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChDRkdfTk9fRkxBU0gpCisjaWYgIWRlZmluZWQoQ09ORklHX1NZU19OT19GTEFTSCkKIHN0YXRpYyBjaGFyICpmYWlsZWQgPSAiKioqIGZhaWxlZCAqKipcbiI7CiAjZW5kaWYKIApAQCAtOTEsOCArOTEsOCBAQAogICovCiBzdGF0aWMgdm9pZCBtZW1fbWFsbG9jX2luaXQodm9pZCkKIHsKLQltZW1fbWFsbG9jX3N0YXJ0ID0gQ0ZHX01BTExPQ19CQVNFOwotCW1lbV9tYWxsb2NfZW5kID0gQ0ZHX01BTExPQ19FTkQ7CisJbWVtX21hbGxvY19zdGFydCA9IENPTkZJR19TWVNfTUFMTE9DX0JBU0U7CisJbWVtX21hbGxvY19lbmQgPSBDT05GSUdfU1lTX01BTExPQ19FTkQ7CiAJbWVtX21hbGxvY19icmsgPSBtZW1fbWFsbG9jX3N0YXJ0OwogCW1lbXNldCgodm9pZCAqKW1lbV9tYWxsb2Nfc3RhcnQsIDAsIG1lbV9tYWxsb2NfZW5kIC0gbWVtX21hbGxvY19zdGFydCk7CiB9CkBAIC0yMTEsMTEgKzIxMSwxMSBAQAogCWludCBpOwogCWNoYXIgKmU7CiAKLSNpZm5kZWYgQ0ZHX05PX0ZMQVNICisjaWZuZGVmIENPTkZJR19TWVNfTk9fRkxBU0gKIAl1bG9uZyBmbGFzaF9zaXplOwogI2VuZGlmCiAKLQlnZCA9IChnZF90ICopIChDRkdfR0JMX0RBVEFfT0ZGU0VUKTsKKwlnZCA9IChnZF90ICopIChDT05GSUdfU1lTX0dCTF9EQVRBX09GRlNFVCk7CiAKIAkvKiBDbGVhciBpbml0aWFsIGdsb2JhbCBkYXRhICovCiAJbWVtc2V0KCh2b2lkICopZ2QsIDAsIHNpemVvZihnZF90KSk7CkBAIC0yMjUsMTggKzIyNSwxOCBAQAogCWdkLT5jcHVfY2xrID0gQ09ORklHX1NZU19DTEtfRlJFUTsKIAogCWJkID0gZ2QtPmJkOwotCWJkLT5iaV9tZW1zdGFydCA9IENGR19SQU1fQkFTRTsKLQliZC0+YmlfbWVtc2l6ZSA9IENGR19SQU1fU0laRTsKLQliZC0+YmlfZmxhc2hzdGFydCA9IENGR19GTEFTSF9CQVNFOwotI2lmCWRlZmluZWQoQ0ZHX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDRkdfU1JBTV9TSVpFKQotCWJkLT5iaV9zcmFtc3RhcnQgPSBDRkdfU1JBTV9CQVNFOwotCWJkLT5iaV9zcmFtc2l6ZSA9IENGR19TUkFNX1NJWkU7CisJYmQtPmJpX21lbXN0YXJ0ID0gQ09ORklHX1NZU19SQU1fQkFTRTsKKwliZC0+YmlfbWVtc2l6ZSA9IENPTkZJR19TWVNfUkFNX1NJWkU7CisJYmQtPmJpX2ZsYXNoc3RhcnQgPSBDT05GSUdfU1lTX0ZMQVNIX0JBU0U7CisjaWYJZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fQkFTRSkgJiYgZGVmaW5lZChDT05GSUdfU1lTX1NSQU1fU0laRSkKKwliZC0+Ymlfc3JhbXN0YXJ0ID0gQ09ORklHX1NZU19TUkFNX0JBU0U7CisJYmQtPmJpX3NyYW1zaXplID0gQ09ORklHX1NZU19TUkFNX1NJWkU7CiAjZW5kaWYKIAliZC0+YmlfYmF1ZHJhdGUgPSBDT05GSUdfQkFVRFJBVEU7CiAJYmQtPmJpX2Jvb3RmbGFncyA9IGJvb3RmbGFnOwkvKiBib290IC8gcmVib290IGZsYWcgKGZvciBMeW54T1MpICAgICovCiAKIAlnZC0+ZmxhZ3MgfD0gR0RfRkxHX1JFTE9DOwkvKiB0ZWxsIG90aGVyczogcmVsb2NhdGlvbiBkb25lICovCi0JZ2QtPnJlbG9jX29mZiA9IENGR19SRUxPQ19NT05JVE9SX0JBU0UgLSBDRkdfTU9OSVRPUl9CQVNFOworCWdkLT5yZWxvY19vZmYgPSBDT05GSUdfU1lTX1JFTE9DX01PTklUT1JfQkFTRSAtIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFOwogCiAJZm9yIChpbml0X2ZuY19wdHIgPSBpbml0X3NlcXVlbmNlLCBqID0gMDsgKmluaXRfZm5jX3B0cjsKIAkgICAgICsraW5pdF9mbmNfcHRyLCBqKyspIHsKQEAgLTI2NiwxOCArMjY2LDE4IEBACiAJICogIC0gYm9hcmQgaW5mbyBzdHJ1Y3QKIAkgKi8KICNpZmRlZiBERUJVR19NRU1fTEFZT1VUCi0JcHJpbnRmKCJDRkdfTU9OSVRPUl9CQVNFOiAgICAgICAweCVseFxuIiwgQ0ZHX01PTklUT1JfQkFTRSk7CisJcHJpbnRmKCJDT05GSUdfU1lTX01PTklUT1JfQkFTRTogICAgICAgMHglbHhcbiIsIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFKTsKIAlwcmludGYoIkNPTkZJR19FTlZfQUREUjogICAgICAgICAgIDB4JWx4XG4iLCBDT05GSUdfRU5WX0FERFIpOwotCXByaW50ZigiQ0ZHX1JFTE9DX01PTklUT1JfQkFTRTogMHglbHggKCVkKVxuIiwgQ0ZHX1JFTE9DX01PTklUT1JfQkFTRSwKLQkgICAgICAgQ0ZHX01PTklUT1JfTEVOKTsKLQlwcmludGYoIkNGR19NQUxMT0NfQkFTRTogICAgICAgIDB4JWx4ICglZClcbiIsIENGR19NQUxMT0NfQkFTRSwKLQkgICAgICAgQ0ZHX01BTExPQ19MRU4pOwotCXByaW50ZigiQ0ZHX0lOSVRfU1BfT0ZGU0VUOiAgICAgMHglbHggKCVkKVxuIiwgQ0ZHX0lOSVRfU1BfT0ZGU0VULAotCSAgICAgICBDRkdfU1RBQ0tfU0laRSk7Ci0JcHJpbnRmKCJDRkdfUFJPTV9PRkZTRVQ6ICAgICAgICAweCVseCAoJWQpXG4iLCBDRkdfUFJPTV9PRkZTRVQsCi0JICAgICAgIENGR19QUk9NX1NJWkUpOwotCXByaW50ZigiQ0ZHX0dCTF9EQVRBX09GRlNFVDogICAgMHglbHggKCVkKVxuIiwgQ0ZHX0dCTF9EQVRBX09GRlNFVCwKLQkgICAgICAgQ0ZHX0dCTF9EQVRBX1NJWkUpOworCXByaW50ZigiQ09ORklHX1NZU19SRUxPQ19NT05JVE9SX0JBU0U6IDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLAorCSAgICAgICBDT05GSUdfU1lTX01PTklUT1JfTEVOKTsKKwlwcmludGYoIkNPTkZJR19TWVNfTUFMTE9DX0JBU0U6ICAgICAgICAweCVseCAoJWQpXG4iLCBDT05GSUdfU1lTX01BTExPQ19CQVNFLAorCSAgICAgICBDT05GSUdfU1lTX01BTExPQ19MRU4pOworCXByaW50ZigiQ09ORklHX1NZU19JTklUX1NQX09GRlNFVDogICAgIDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfSU5JVF9TUF9PRkZTRVQsCisJICAgICAgIENPTkZJR19TWVNfU1RBQ0tfU0laRSk7CisJcHJpbnRmKCJDT05GSUdfU1lTX1BST01fT0ZGU0VUOiAgICAgICAgMHglbHggKCVkKVxuIiwgQ09ORklHX1NZU19QUk9NX09GRlNFVCwKKwkgICAgICAgQ09ORklHX1NZU19QUk9NX1NJWkUpOworCXByaW50ZigiQ09ORklHX1NZU19HQkxfREFUQV9PRkZTRVQ6ICAgIDB4JWx4ICglZClcbiIsIENPTkZJR19TWVNfR0JMX0RBVEFfT0ZGU0VULAorCSAgICAgICBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUpOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUE9TVApAQCAtMzA1LDcgKzMwNSw3IEBACiAJCQlhZGRyID0gKHVsb25nKSAoY21kdHAtPnVzYWdlKSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+dXNhZ2UgPSAoY2hhciAqKWFkZHI7CiAJCX0KLSNpZmRlZglDRkdfTE9OR0hFTFAKKyNpZmRlZglDT05GSUdfU1lTX0xPTkdIRUxQCiAJCWlmIChjbWR0cC0+aGVscCkgewogCQkJYWRkciA9ICh1bG9uZykgKGNtZHRwLT5oZWxwKSArIGdkLT5yZWxvY19vZmY7CiAJCQljbWR0cC0+aGVscCA9IChjaGFyICopYWRkcjsKQEAgLTMxMyw3ICszMTMsNyBAQAogI2VuZGlmCiAJfQogCi0jaWYgZGVmaW5lZChDT05GSUdfQ01EX0FNQkFQUCkgJiYgZGVmaW5lZChDRkdfQU1CQVBQX1BSSU5UX09OX1NUQVJUVVApCisjaWYgZGVmaW5lZChDT05GSUdfQ01EX0FNQkFQUCkgJiYgZGVmaW5lZChDT05GSUdfU1lTX0FNQkFQUF9QUklOVF9PTl9TVEFSVFVQKQogCXB1dHMoIkFNQkE6XG4iKTsKIAlkb19hbWJhcHBfcHJpbnQoTlVMTCwgMCwgMCwgTlVMTCk7CiAjZW5kaWYKQEAgLTMzMSwxMSArMzMxLDExIEBACiAJICovCiAJaW50ZXJydXB0X2luaXQoKTsKIAotI2lmICFkZWZpbmVkKENGR19OT19GTEFTSCkKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX05PX0ZMQVNIKQogCXB1dHMoIkZMQVNIOiAiKTsKIAogCWlmICgoZmxhc2hfc2l6ZSA9IGZsYXNoX2luaXQoKSkgPiAwKSB7Ci0jIGlmZGVmIENGR19GTEFTSF9DSEVDS1NVTQorIyBpZmRlZiBDT05GSUdfU1lTX0ZMQVNIX0NIRUNLU1VNCiAJCXByaW50X3NpemUoZmxhc2hfc2l6ZSwgIiIpOwogCQkvKgogCQkgKiBDb21wdXRlIGFuZCBwcmludCBmbGFzaCBDUkMgaWYgZmxhc2hjaGVja3N1bSBpcyBzZXQgdG8gJ3knCkBAIC0zNDUsMzEgKzM0NSwzMSBAQAogCQlzID0gZ2V0ZW52KCJmbGFzaGNoZWNrc3VtIik7CiAJCWlmIChzICYmICgqcyA9PSAneScpKSB7CiAJCQlwcmludGYoIiAgQ1JDOiAlMDhsWCIsCi0JCQkgICAgICAgY3JjMzIoMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilDRkdfRkxBU0hfQkFTRSwKKwkJCSAgICAgICBjcmMzMigwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKUNPTkZJR19TWVNfRkxBU0hfQkFTRSwKIAkJCQkgICAgIGZsYXNoX3NpemUpCiAJCQkgICAgKTsKIAkJfQogCQlwdXRjKCdcbicpOwotIyBlbHNlCQkJCS8qICFDRkdfRkxBU0hfQ0hFQ0tTVU0gKi8KKyMgZWxzZQkJCQkvKiAhQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTSAqLwogCQlwcmludF9zaXplKGZsYXNoX3NpemUsICJcbiIpOwotIyBlbmRpZgkJCQkvKiBDRkdfRkxBU0hfQ0hFQ0tTVU0gKi8KKyMgZW5kaWYJCQkJLyogQ09ORklHX1NZU19GTEFTSF9DSEVDS1NVTSAqLwogCX0gZWxzZSB7CiAJCXB1dHMoZmFpbGVkKTsKIAkJaGFuZygpOwogCX0KIAotCWJkLT5iaV9mbGFzaHN0YXJ0ID0gQ0ZHX0ZMQVNIX0JBU0U7CS8qIHVwZGF0ZSBzdGFydCBvZiBGTEFTSCBtZW1vcnkgICAgKi8KKwliZC0+YmlfZmxhc2hzdGFydCA9IENPTkZJR19TWVNfRkxBU0hfQkFTRTsJLyogdXBkYXRlIHN0YXJ0IG9mIEZMQVNIIG1lbW9yeSAgICAqLwogCWJkLT5iaV9mbGFzaHNpemUgPSBmbGFzaF9zaXplOwkvKiBzaXplIG9mIEZMQVNIIG1lbW9yeSAoZmluYWwgdmFsdWUpICovCi0jaWYgQ0ZHX01PTklUT1JfQkFTRSA9PSBDRkdfRkxBU0hfQkFTRQorI2lmIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFID09IENPTkZJR19TWVNfRkxBU0hfQkFTRQogCWJkLT5iaV9mbGFzaG9mZnNldCA9IG1vbml0b3JfZmxhc2hfbGVuOwkvKiByZXNlcnZlZCBhcmVhIGZvciBzdGFydHVwIG1vbml0b3IgICovCiAjZWxzZQogCWJkLT5iaV9mbGFzaG9mZnNldCA9IDA7CiAjZW5kaWYKLSNlbHNlCQkJCS8qIENGR19OT19GTEFTSCAqLworI2Vsc2UJCQkJLyogQ09ORklHX1NZU19OT19GTEFTSCAqLwogCWJkLT5iaV9mbGFzaHNpemUgPSAwOwogCWJkLT5iaV9mbGFzaHN0YXJ0ID0gMDsKIAliZC0+YmlfZmxhc2hvZmZzZXQgPSAwOwotI2VuZGlmCQkJCS8qICFDRkdfTk9fRkxBU0ggKi8KKyNlbmRpZgkJCQkvKiAhQ09ORklHX1NZU19OT19GTEFTSCAqLwogCiAJLyogaW5pdGlhbGl6ZSBtYWxsb2MoKSBhcmVhICovCiAJbWVtX21hbGxvY19pbml0KCk7CmRpZmYgLS1naXQgYS9saWJfc3BhcmMvYm9vdG0uYyBiL2xpYl9zcGFyYy9ib290bS5jCmluZGV4IDRlOGM5MjAuLjU2NWI0MWMgMTAwNjQ0Ci0tLSBhL2xpYl9zcGFyYy9ib290bS5jCisrKyBiL2xpYl9zcGFyYy9ib290bS5jCkBAIC04MSw2ICs4MSwxNSBAQAogLyogdGVtcG9yYXJ5IGluaXRyZCBpbWFnZSBob2xkZXIgKi8KIGltYWdlX2hlYWRlcl90IGloZHI7CiAKK3ZvaWQgYXJjaF9sbWJfcmVzZXJ2ZShzdHJ1Y3QgbG1iICpsbWIpCit7CisJLyogUmVzZXJ2ZSB0aGUgc3BhY2UgdXNlZCBieSBQUk9NIGFuZCBzdGFjay4gVGhpcyBpcyBkb25lCisJICogdG8gYXZvaWQgdGhhdCB0aGUgUkFNIGltYWdlIGlzIGNvcGllZCBvdmVyIHN0YWNrIG9yCisJICogUFJPTS4KKwkgKi8KKwlsbWJfcmVzZXJ2ZShsbWIsIENPTkZJR19TWVNfUkVMT0NfTU9OSVRPUl9CQVNFLCBDT05GSUdfU1lTX1JBTV9FTkQpOworfQorCiAvKiBib290IHRoZSBsaW51eCBrZXJuZWwgKi8KIGludCBkb19ib290bV9saW51eChpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgYm9vdG1faGVhZGVyc190ICogaW1hZ2VzKQogewpAQCAtMTI0LDEzICsxMzMsNiBAQAogCXJkX2xlbiA9IGltYWdlcy0+cmRfZW5kIC0gaW1hZ2VzLT5yZF9zdGFydDsKIAogCWlmIChyZF9sZW4pIHsKLQotCQkvKiBSZXNlcnZlIHRoZSBzcGFjZSB1c2VkIGJ5IFBST00gYW5kIHN0YWNrLiBUaGlzIGlzIGRvbmUKLQkJICogdG8gYXZvaWQgdGhhdCB0aGUgUkFNIGltYWdlIGlzIGNvcGllZCBvdmVyIHN0YWNrIG9yCi0JCSAqIFBST00uCi0JCSAqLwotCQlsbWJfcmVzZXJ2ZShsbWIsIENGR19SRUxPQ19NT05JVE9SX0JBU0UsIENGR19SQU1fRU5EKTsKLQogCQlyZXQgPSBib290X3JhbWRpc2tfaGlnaChsbWIsIGltYWdlcy0+cmRfc3RhcnQsIHJkX2xlbiwKIAkJCQkJJmluaXRyZF9zdGFydCwgJmluaXRyZF9lbmQpOwogCQlpZiAocmV0KSB7CkBAIC0xNDQsNyArMTQ2LDcgQEAKIAkJICogU2V0IElOSVRSRCBJbWFnZSBhZGRyZXNzIHJlbGF0aXZlIHRvIFJBTSBTdGFydAogCQkgKi8KIAkJbGludXhfaGRyLT5oZHJfaW5wdXQudmVyXzAyMDMuc3BhcmNfcmFtZGlza19pbWFnZSA9Ci0JCSAgICBpbml0cmRfc3RhcnQgLSBDRkdfUkFNX0JBU0U7CisJCSAgICBpbml0cmRfc3RhcnQgLSBDT05GSUdfU1lTX1JBTV9CQVNFOwogCQlsaW51eF9oZHItPmhkcl9pbnB1dC52ZXJfMDIwMy5zcGFyY19yYW1kaXNrX3NpemUgPSByZF9sZW47CiAJCS8qIENsZWFyIFJFQUQgT05MWSBmbGFnIGlmIHNldCB0byBub24temVybyAqLwogCQlsaW51eF9oZHItPmhkcl9pbnB1dC52ZXJfMDIwMy5yb290X2ZsYWdzID0gMTsKZGlmZiAtLWdpdCBhL25hbmRfc3BsL2JvYXJkL2FtY2MvYWNhZGlhL2NvbmZpZy5tayBiL25hbmRfc3BsL2JvYXJkL2FtY2MvYWNhZGlhL2NvbmZpZy5tawppbmRleCAzYjE0MGZhLi5mY2M4MzhhIDEwMDY0NAotLS0gYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2FjYWRpYS9jb25maWcubWsKKysrIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9hY2FkaWEvY29uZmlnLm1rCkBAIC00Myw1ICs0Myw1IEBACiBlbmRpZgogCiBpZmVxICgkKGRiY3IpLDEpCi1QTEFURk9STV9DUFBGTEFHUyArPSAtRENGR19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAorUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDT05GSUdfU1lTX0lOSVRfREJDUj0weDhjZmYwMDAwCiBlbmRpZgpkaWZmIC0tZ2l0IGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9iYW1ib28vY29uZmlnLm1rIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9iYW1ib28vY29uZmlnLm1rCmluZGV4IGY3ZWM3NTEuLjYzNzdiNTIgMTAwNjQ0Ci0tLSBhL25hbmRfc3BsL2JvYXJkL2FtY2MvYmFtYm9vL2NvbmZpZy5taworKysgYi9uYW5kX3NwbC9ib2FyZC9hbWNjL2JhbWJvby9jb25maWcubWsKQEAgLTQ1LDUgKzQ1LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2JhbWJvby9zZHJhbS5jIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9iYW1ib28vc2RyYW0uYwppbmRleCBhZGVkZTQ0Li41NGJlMjU2IDEwMDY0NAotLS0gYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2JhbWJvby9zZHJhbS5jCisrKyBiL25hbmRfc3BsL2JvYXJkL2FtY2MvYmFtYm9vL3NkcmFtLmMKQEAgLTg4LDUgKzg4LDUgQEAKIAltdHNkcmFtKG1lbV9jZmcwLCAweDgwMDAwMDAwKTsgLyogRENFTj0xLCBQTVVEPTAqLwogCXdhaXRfaW5pdF9jb21wbGV0ZSgpOwogCi0JcmV0dXJuIENGR19NQllURVNfU0RSQU0gPDwgMjA7CisJcmV0dXJuIENPTkZJR19TWVNfTUJZVEVTX1NEUkFNIDw8IDIwOwogfQpkaWZmIC0tZ2l0IGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9jb25maWcubWsgYi9uYW5kX3NwbC9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NvbmZpZy5tawppbmRleCBjOGQ3YzIzLi42ODhjOTJiIDEwMDY0NAotLS0gYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NvbmZpZy5taworKysgYi9uYW5kX3NwbC9ib2FyZC9hbWNjL2NhbnlvbmxhbmRzL2NvbmZpZy5tawpAQCAtNDUsNSArNDUsNSBAQAogZW5kaWYKIAogaWZlcSAoJChkYmNyKSwxKQotUExBVEZPUk1fQ1BQRkxBR1MgKz0gLURDRkdfSU5JVF9EQkNSPTB4OGNmZjAwMDAKK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ09ORklHX1NZU19JTklUX0RCQ1I9MHg4Y2ZmMDAwMAogZW5kaWYKZGlmZiAtLWdpdCBhL25hbmRfc3BsL2JvYXJkL2FtY2MvY2FueW9ubGFuZHMvZGRyMl9maXhlZC5jIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9kZHIyX2ZpeGVkLmMKaW5kZXggMjlkN2QzZi4uMzcxYmJiMyAxMDA2NDQKLS0tIGEvbmFuZF9zcGwvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9kZHIyX2ZpeGVkLmMKKysrIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9jYW55b25sYW5kcy9kZHIyX2ZpeGVkLmMKQEAgLTk0LDUgKzk0LDUgQEAKIAltdHNkcmFtKFNEUkFNX1JRREMsIDB4ODAwMDAwMzgpOwogCW10c2RyYW0oU0RSQU1fUkZEQywgMHgwMDAwMDI1Nyk7CiAKLQlyZXR1cm4gQ0ZHX01CWVRFU19TRFJBTSA8PCAyMDsKKwlyZXR1cm4gQ09ORklHX1NZU19NQllURVNfU0RSQU0gPDwgMjA7CiB9CmRpZmYgLS1naXQgYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2tpbGF1ZWEvY29uZmlnLm1rIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9raWxhdWVhL2NvbmZpZy5tawppbmRleCBkODllZDNmLi5mNmJjZDIxIDEwMDY0NAotLS0gYS9uYW5kX3NwbC9ib2FyZC9hbWNjL2tpbGF1ZWEvY29uZmlnLm1rCisrKyBiL25hbmRfc3BsL2JvYXJkL2FtY2Mva2lsYXVlYS9jb25maWcubWsKQEAgLTQ0LDUgKzQ0LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9uYW5kX3NwbC9ib2FyZC9hbWNjL3NlcXVvaWEvY29uZmlnLm1rIGIvbmFuZF9zcGwvYm9hcmQvYW1jYy9zZXF1b2lhL2NvbmZpZy5tawppbmRleCBhMjliYTVmLi5lOGM2MzMzIDEwMDY0NAotLS0gYS9uYW5kX3NwbC9ib2FyZC9hbWNjL3NlcXVvaWEvY29uZmlnLm1rCisrKyBiL25hbmRfc3BsL2JvYXJkL2FtY2Mvc2VxdW9pYS9jb25maWcubWsKQEAgLTQ1LDUgKzQ1LDUgQEAKIGVuZGlmCiAKIGlmZXEgKCQoZGJjciksMSkKLVBMQVRGT1JNX0NQUEZMQUdTICs9IC1EQ0ZHX0lOSVRfREJDUj0weDhjZmYwMDAwCitQTEFURk9STV9DUFBGTEFHUyArPSAtRENPTkZJR19TWVNfSU5JVF9EQkNSPTB4OGNmZjAwMDAKIGVuZGlmCmRpZmYgLS1naXQgYS9uYW5kX3NwbC9uYW5kX2Jvb3QuYyBiL25hbmRfc3BsL25hbmRfYm9vdC5jCmluZGV4IDBjMDZlNTMuLjg3YzUwZTEgMTAwNjQ0Ci0tLSBhL25hbmRfc3BsL25hbmRfYm9vdC5jCisrKyBiL25hbmRfc3BsL25hbmRfYm9vdC5jCkBAIC0yMiwyNyArMjIsMjcgQEAKICNpbmNsdWRlIDxuYW5kLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLSNkZWZpbmUgQ0ZHX05BTkRfUkVBRF9ERUxBWSBcCisjZGVmaW5lIENPTkZJR19TWVNfTkFORF9SRUFEX0RFTEFZIFwKIAl7IHZvbGF0aWxlIGludCBkdW1teTsgaW50IGk7IGZvciAoaT0wOyBpPDEwMDAwOyBpKyspIGR1bW15ID0gaTsgfQogCi1zdGF0aWMgaW50IG5hbmRfZWNjX3Bvc1tdID0gQ0ZHX05BTkRfRUNDUE9TOworc3RhdGljIGludCBuYW5kX2VjY19wb3NbXSA9IENPTkZJR19TWVNfTkFORF9FQ0NQT1M7CiAKIGV4dGVybiB2b2lkIGJvYXJkX25hbmRfaW5pdChzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kKTsKIAotI2lmIChDRkdfTkFORF9QQUdFX1NJWkUgPD0gNTEyKQorI2lmIChDT05GSUdfU1lTX05BTkRfUEFHRV9TSVpFIDw9IDUxMikKIC8qCiAgKiBOQU5EIGNvbW1hbmQgZm9yIHNtYWxsIHBhZ2UgTkFORCBkZXZpY2VzICg1MTIpCiAgKi8KIHN0YXRpYyBpbnQgbmFuZF9jb21tYW5kKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgYmxvY2ssIGludCBwYWdlLCBpbnQgb2ZmcywgdTggY21kKQogewogCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGQtPnByaXY7Ci0JaW50IHBhZ2VfYWRkciA9IHBhZ2UgKyBibG9jayAqIENGR19OQU5EX1BBR0VfQ09VTlQ7CisJaW50IHBhZ2VfYWRkciA9IHBhZ2UgKyBibG9jayAqIENPTkZJR19TWVNfTkFORF9QQUdFX0NPVU5UOwogCiAJaWYgKHRoaXMtPmRldl9yZWFkeSkKIAkJd2hpbGUgKCF0aGlzLT5kZXZfcmVhZHkobXRkKSkKIAkJCTsKIAllbHNlCi0JCUNGR19OQU5EX1JFQURfREVMQVk7CisJCUNPTkZJR19TWVNfTkFORF9SRUFEX0RFTEFZOwogCiAJLyogQmVnaW4gY29tbWFuZCBsYXRjaCBjeWNsZSAqLwogCXRoaXMtPmNtZF9jdHJsKG10ZCwgY21kLCBOQU5EX0NUUkxfQ0xFIHwgTkFORF9DVFJMX0NIQU5HRSk7CkBAIC01MSw3ICs1MSw3IEBACiAJdGhpcy0+Y21kX2N0cmwobXRkLCBvZmZzLCBOQU5EX0NUUkxfQUxFIHwgTkFORF9DVFJMX0NIQU5HRSk7CiAJdGhpcy0+Y21kX2N0cmwobXRkLCBwYWdlX2FkZHIgJiAweGZmLCAwKTsgLyogQVsxNjo5XSAqLwogCXRoaXMtPmNtZF9jdHJsKG10ZCwgKHBhZ2VfYWRkciA+PiA4KSAmIDB4ZmYsIDApOyAvKiBBWzI0OjE3XSAqLwotI2lmZGVmIENGR19OQU5EXzRfQUREUl9DWUNMRQorI2lmZGVmIENPTkZJR19TWVNfTkFORF80X0FERFJfQ1lDTEUKIAkvKiBPbmUgbW9yZSBhZGRyZXNzIGN5Y2xlIGZvciBkZXZpY2VzID4gMzJNaUIgKi8KIAl0aGlzLT5jbWRfY3RybChtdGQsIChwYWdlX2FkZHIgPj4gMTYpICYgMHgwZiwgMCk7IC8qIEFbMjg6MjVdICovCiAjZW5kaWYKQEAgLTY1LDcgKzY1LDcgQEAKIAkJd2hpbGUgKCF0aGlzLT5kZXZfcmVhZHkobXRkKSkKIAkJCTsKIAllbHNlCi0JCUNGR19OQU5EX1JFQURfREVMQVk7CisJCUNPTkZJR19TWVNfTkFORF9SRUFEX0RFTEFZOwogCiAJcmV0dXJuIDA7CiB9CkBAIC03NiwxNyArNzYsMTcgQEAKIHN0YXRpYyBpbnQgbmFuZF9jb21tYW5kKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBpbnQgYmxvY2ssIGludCBwYWdlLCBpbnQgb2ZmcywgdTggY21kKQogewogCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGQtPnByaXY7Ci0JaW50IHBhZ2VfYWRkciA9IHBhZ2UgKyBibG9jayAqIENGR19OQU5EX1BBR0VfQ09VTlQ7CisJaW50IHBhZ2VfYWRkciA9IHBhZ2UgKyBibG9jayAqIENPTkZJR19TWVNfTkFORF9QQUdFX0NPVU5UOwogCiAJaWYgKHRoaXMtPmRldl9yZWFkeSkKIAkJd2hpbGUgKCF0aGlzLT5kZXZfcmVhZHkobXRkKSkKIAkJCTsKIAllbHNlCi0JCUNGR19OQU5EX1JFQURfREVMQVk7CisJCUNPTkZJR19TWVNfTkFORF9SRUFEX0RFTEFZOwogCiAJLyogRW11bGF0ZSBOQU5EX0NNRF9SRUFET09CICovCiAJaWYgKGNtZCA9PSBOQU5EX0NNRF9SRUFET09CKSB7Ci0JCW9mZnMgKz0gQ0ZHX05BTkRfUEFHRV9TSVpFOworCQlvZmZzICs9IENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkU7CiAJCWNtZCA9IE5BTkRfQ01EX1JFQUQwOwogCX0KIApAQCAtMTAwLDcgKzEwMCw3IEBACiAJLyogUm93IGFkZHJlc3MgKi8KIAl0aGlzLT5jbWRfY3RybChtdGQsIChwYWdlX2FkZHIgJiAweGZmKSwgMCk7IC8qIEFbMTk6MTJdICovCiAJdGhpcy0+Y21kX2N0cmwobXRkLCAoKHBhZ2VfYWRkciA+PiA4KSAmIDB4ZmYpLCAwKTsgLyogQVsyNzoyMF0gKi8KLSNpZmRlZiBDRkdfTkFORF81X0FERFJfQ1lDTEUKKyNpZmRlZiBDT05GSUdfU1lTX05BTkRfNV9BRERSX0NZQ0xFCiAJLyogT25lIG1vcmUgYWRkcmVzcyBjeWNsZSBmb3IgZGV2aWNlcyA+IDEyOE1pQiAqLwogCXRoaXMtPmNtZF9jdHJsKG10ZCwgKHBhZ2VfYWRkciA+PiAxNikgJiAweDBmLCAwKTsgLyogQVszMToyOF0gKi8KICNlbmRpZgpAQCAtMTE2LDcgKzExNiw3IEBACiAJCXdoaWxlICghdGhpcy0+ZGV2X3JlYWR5KG10ZCkpCiAJCQk7CiAJZWxzZQotCQlDRkdfTkFORF9SRUFEX0RFTEFZOworCQlDT05GSUdfU1lTX05BTkRfUkVBRF9ERUxBWTsKIAogCXJldHVybiAwOwogfQpAQCAtMTI2LDcgKzEyNiw3IEBACiB7CiAJc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZC0+cHJpdjsKIAotCW5hbmRfY29tbWFuZChtdGQsIGJsb2NrLCAwLCBDRkdfTkFORF9CQURfQkxPQ0tfUE9TLCBOQU5EX0NNRF9SRUFET09CKTsKKwluYW5kX2NvbW1hbmQobXRkLCBibG9jaywgMCwgQ09ORklHX1NZU19OQU5EX0JBRF9CTE9DS19QT1MsIE5BTkRfQ01EX1JFQURPT0IpOwogCiAJLyoKIAkgKiBSZWFkIG9uZSBieXRlCkBAIC0xNDQsOSArMTQ0LDkgQEAKIAl1X2NoYXIgKmVjY19jb2RlOwogCXVfY2hhciAqb29iX2RhdGE7CiAJaW50IGk7Ci0JaW50IGVjY3NpemUgPSBDRkdfTkFORF9FQ0NTSVpFOwotCWludCBlY2NieXRlcyA9IENGR19OQU5EX0VDQ0JZVEVTOwotCWludCBlY2NzdGVwcyA9IENGR19OQU5EX0VDQ1NURVBTOworCWludCBlY2NzaXplID0gQ09ORklHX1NZU19OQU5EX0VDQ1NJWkU7CisJaW50IGVjY2J5dGVzID0gQ09ORklHX1NZU19OQU5EX0VDQ0JZVEVTOworCWludCBlY2NzdGVwcyA9IENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUzsKIAl1aW50OF90ICpwID0gZHN0OwogCWludCBzdGF0OwogCkBAIC0xNTUsNyArMTU1LDcgQEAKIAkvKiBObyBtYWxsb2MgYXZhaWxhYmxlIGZvciBub3csIGp1c3QgdXNlIHNvbWUgdGVtcG9yYXJ5IGxvY2F0aW9ucwogCSAqIGluIFNEUkFNCiAJICovCi0JZWNjX2NhbGMgPSAodV9jaGFyICopKENGR19TRFJBTV9CQVNFICsgMHgxMDAwMCk7CisJZWNjX2NhbGMgPSAodV9jaGFyICopKENPTkZJR19TWVNfU0RSQU1fQkFTRSArIDB4MTAwMDApOwogCWVjY19jb2RlID0gZWNjX2NhbGMgKyAweDEwMDsKIAlvb2JfZGF0YSA9IGVjY19jYWxjICsgMHgyMDA7CiAKQEAgLTE2NCwxMyArMTY0LDEzIEBACiAJCXRoaXMtPnJlYWRfYnVmKG10ZCwgcCwgZWNjc2l6ZSk7CiAJCXRoaXMtPmVjYy5jYWxjdWxhdGUobXRkLCBwLCAmZWNjX2NhbGNbaV0pOwogCX0KLQl0aGlzLT5yZWFkX2J1ZihtdGQsIG9vYl9kYXRhLCBDRkdfTkFORF9PT0JTSVpFKTsKKwl0aGlzLT5yZWFkX2J1ZihtdGQsIG9vYl9kYXRhLCBDT05GSUdfU1lTX05BTkRfT09CU0laRSk7CiAKIAkvKiBQaWNrIHRoZSBFQ0MgYnl0ZXMgb3V0IG9mIHRoZSBvb2IgZGF0YSAqLwotCWZvciAoaSA9IDA7IGkgPCBDRkdfTkFORF9FQ0NUT1RBTDsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBDT05GSUdfU1lTX05BTkRfRUNDVE9UQUw7IGkrKykKIAkJZWNjX2NvZGVbaV0gPSBvb2JfZGF0YVtuYW5kX2VjY19wb3NbaV1dOwogCi0JZWNjc3RlcHMgPSBDRkdfTkFORF9FQ0NTVEVQUzsKKwllY2NzdGVwcyA9IENPTkZJR19TWVNfTkFORF9FQ0NTVEVQUzsKIAlwID0gZHN0OwogCiAJZm9yIChpID0gMCA7IGVjY3N0ZXBzOyBlY2NzdGVwcy0tLCBpICs9IGVjY2J5dGVzLCBwICs9IGVjY3NpemUpIHsKQEAgLTE5MywxOCArMTkzLDE4IEBACiAJLyoKIAkgKiBvZmZzIGhhcyB0byBiZSBhbGlnbmVkIHRvIGEgcGFnZSBhZGRyZXNzIQogCSAqLwotCWJsb2NrID0gb2ZmcyAvIENGR19OQU5EX0JMT0NLX1NJWkU7Ci0JbGFzdGJsb2NrID0gKG9mZnMgKyB1Ym9vdF9zaXplIC0gMSkgLyBDRkdfTkFORF9CTE9DS19TSVpFOwotCXBhZ2UgPSAob2ZmcyAlIENGR19OQU5EX0JMT0NLX1NJWkUpIC8gQ0ZHX05BTkRfUEFHRV9TSVpFOworCWJsb2NrID0gb2ZmcyAvIENPTkZJR19TWVNfTkFORF9CTE9DS19TSVpFOworCWxhc3RibG9jayA9IChvZmZzICsgdWJvb3Rfc2l6ZSAtIDEpIC8gQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkU7CisJcGFnZSA9IChvZmZzICUgQ09ORklHX1NZU19OQU5EX0JMT0NLX1NJWkUpIC8gQ09ORklHX1NZU19OQU5EX1BBR0VfU0laRTsKIAogCXdoaWxlIChibG9jayA8PSBsYXN0YmxvY2spIHsKIAkJaWYgKCFuYW5kX2lzX2JhZF9ibG9jayhtdGQsIGJsb2NrKSkgewogCQkJLyoKIAkJCSAqIFNraXAgYmFkIGJsb2NrcwogCQkJICovCi0JCQl3aGlsZSAocGFnZSA8IENGR19OQU5EX1BBR0VfQ09VTlQpIHsKKwkJCXdoaWxlIChwYWdlIDwgQ09ORklHX1NZU19OQU5EX1BBR0VfQ09VTlQpIHsKIAkJCQluYW5kX3JlYWRfcGFnZShtdGQsIGJsb2NrLCBwYWdlLCBkc3QpOwotCQkJCWRzdCArPSBDRkdfTkFORF9QQUdFX1NJWkU7CisJCQkJZHN0ICs9IENPTkZJR19TWVNfTkFORF9QQUdFX1NJWkU7CiAJCQkJcGFnZSsrOwogCQkJfQogCkBAIC0yMzUsNyArMjM1LDcgQEAKIAkgKiBJbml0IGJvYXJkIHNwZWNpZmljIG5hbmQgc3VwcG9ydAogCSAqLwogCW5hbmRfaW5mby5wcml2ID0gJm5hbmRfY2hpcDsKLQluYW5kX2NoaXAuSU9fQUREUl9SID0gbmFuZF9jaGlwLklPX0FERFJfVyA9ICh2b2lkICBfX2lvbWVtICopQ0ZHX05BTkRfQkFTRTsKKwluYW5kX2NoaXAuSU9fQUREUl9SID0gbmFuZF9jaGlwLklPX0FERFJfVyA9ICh2b2lkICBfX2lvbWVtICopQ09ORklHX1NZU19OQU5EX0JBU0U7CiAJbmFuZF9jaGlwLmRldl9yZWFkeSA9IE5VTEw7CS8qIHByZXNldCB0byBOVUxMICovCiAJYm9hcmRfbmFuZF9pbml0KCZuYW5kX2NoaXApOwogCkBAIC0yNDUsOCArMjQ1LDggQEAKIAkvKgogCSAqIExvYWQgVS1Cb290IGltYWdlIGZyb20gTkFORCBpbnRvIFJBTQogCSAqLwotCXJldCA9IG5hbmRfbG9hZCgmbmFuZF9pbmZvLCBDRkdfTkFORF9VX0JPT1RfT0ZGUywgQ0ZHX05BTkRfVV9CT09UX1NJWkUsCi0JCQkodWNoYXIgKilDRkdfTkFORF9VX0JPT1RfRFNUKTsKKwlyZXQgPSBuYW5kX2xvYWQoJm5hbmRfaW5mbywgQ09ORklHX1NZU19OQU5EX1VfQk9PVF9PRkZTLCBDT05GSUdfU1lTX05BTkRfVV9CT09UX1NJWkUsCisJCQkodWNoYXIgKilDT05GSUdfU1lTX05BTkRfVV9CT09UX0RTVCk7CiAKIAlpZiAobmFuZF9jaGlwLnNlbGVjdF9jaGlwKQogCQluYW5kX2NoaXAuc2VsZWN0X2NoaXAoJm5hbmRfaW5mbywgLTEpOwpAQCAtMjU0LDYgKzI1NCw2IEBACiAJLyoKIAkgKiBKdW1wIHRvIFUtQm9vdCBpbWFnZQogCSAqLwotCXVib290ID0gKHZvaWQgKilDRkdfTkFORF9VX0JPT1RfU1RBUlQ7CisJdWJvb3QgPSAodm9pZCAqKUNPTkZJR19TWVNfTkFORF9VX0JPT1RfU1RBUlQ7CiAJKCp1Ym9vdCkoKTsKIH0KZGlmZiAtLWdpdCBhL25hbmRfc3BsL25hbmRfYm9vdF9mc2xfZWxiYy5jIGIvbmFuZF9zcGwvbmFuZF9ib290X2ZzbF9lbGJjLmMKaW5kZXggNTMzOTIyNC4uMjczNDc4ZiAxMDA2NDQKLS0tIGEvbmFuZF9zcGwvbmFuZF9ib290X2ZzbF9lbGJjLmMKKysrIGIvbmFuZF9zcGwvbmFuZF9ib290X2ZzbF9lbGJjLmMKQEAgLTMzLDcgKzMzLDcgQEAKIAogc3RhdGljIHZvaWQgbmFuZF93YWl0KHZvaWQpCiB7Ci0JbGJ1czgzeHhfdCAqcmVncyA9IChsYnVzODN4eF90ICopKENGR19JTU1SICsgMHg1MDAwKTsKKwlsYnVzODN4eF90ICpyZWdzID0gKGxidXM4M3h4X3QgKikoQ09ORklHX1NZU19JTU1SICsgMHg1MDAwKTsKIAogCWZvciAoOzspIHsKIAkJdWludDMyX3Qgc3RhdHVzID0gaW5fYmUzMigmcmVncy0+bHRlc3IpOwpAQCAtNTAsOCArNTAsOCBAQAogCiBzdGF0aWMgdm9pZCBuYW5kX2xvYWQodW5zaWduZWQgaW50IG9mZnMsIGludCB1Ym9vdF9zaXplLCB1Y2hhciAqZHN0KQogewotCWxidXM4M3h4X3QgKnJlZ3MgPSAobGJ1czgzeHhfdCAqKShDRkdfSU1NUiArIDB4NTAwMCk7Ci0JdWNoYXIgKmJ1ZiA9ICh1Y2hhciAqKUNGR19OQU5EX0JBU0U7CisJbGJ1czgzeHhfdCAqcmVncyA9IChsYnVzODN4eF90ICopKENPTkZJR19TWVNfSU1NUiArIDB4NTAwMCk7CisJdWNoYXIgKmJ1ZiA9ICh1Y2hhciAqKUNPTkZJR19TWVNfTkFORF9CQVNFOwogCWludCBsYXJnZSA9IGluX2JlMzIoJnJlZ3MtPmJhbmtbMF0ub3IpICYgT1JfRkNNX1BHUzsKIAlpbnQgYmxvY2tfc2hpZnQgPSBsYXJnZSA/IDE3IDogMTQ7CiAJaW50IGJsb2NrX3NpemUgPSAxIDw8IGJsb2NrX3NoaWZ0OwpAQCAtMTM2LDEzICsxMzYsMTMgQEAKIAkvKgogCSAqIExvYWQgVS1Cb290IGltYWdlIGZyb20gTkFORCBpbnRvIFJBTQogCSAqLwotCW5hbmRfbG9hZChDRkdfTkFORF9VX0JPT1RfT0ZGUywgQ0ZHX05BTkRfVV9CT09UX1NJWkUsCi0JICAgICAgICAgICh1Y2hhciAqKUNGR19OQU5EX1VfQk9PVF9EU1QpOworCW5hbmRfbG9hZChDT05GSUdfU1lTX05BTkRfVV9CT09UX09GRlMsIENPTkZJR19TWVNfTkFORF9VX0JPT1RfU0laRSwKKwkgICAgICAgICAgKHVjaGFyICopQ09ORklHX1NZU19OQU5EX1VfQk9PVF9EU1QpOwogCiAJLyoKIAkgKiBKdW1wIHRvIFUtQm9vdCBpbWFnZQogCSAqLwogCXB1dHMoInRyYW5zZmVyaW5nIGNvbnRyb2xcbiIpOwotCXVib290ID0gKHZvaWQgKilDRkdfTkFORF9VX0JPT1RfU1RBUlQ7CisJdWJvb3QgPSAodm9pZCAqKUNPTkZJR19TWVNfTkFORF9VX0JPT1RfU1RBUlQ7CiAJdWJvb3QoKTsKIH0KZGlmZiAtLWdpdCBhL25ldC9ib290cC5jIGIvbmV0L2Jvb3RwLmMKaW5kZXggNjQ1NTJhYy4uODM0NjVlNCAxMDA2NDQKLS0tIGEvbmV0L2Jvb3RwLmMKKysrIGIvbmV0L2Jvb3RwLmMKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ORVQpCiAKLSNkZWZpbmUgVElNRU9VVAkJNVVMCQkvKiBTZWNvbmRzIGJlZm9yZSB0cnlpbmcgQk9PVFAgYWdhaW4JKi8KKyNkZWZpbmUgVElNRU9VVAkJNTAwMFVMCS8qIE1pbGxpc2Vjb25kcyBiZWZvcmUgdHJ5aW5nIEJPT1RQIGFnYWluICovCiAjaWZuZGVmIENPTkZJR19ORVRfUkVUUllfQ09VTlQKICMgZGVmaW5lIFRJTUVPVVRfQ09VTlQJNQkJLyogIyBvZiB0aW1lb3V0cyBiZWZvcmUgZ2l2aW5nIHVwICAqLwogI2Vsc2UKQEAgLTM3MSw3ICszNzEsNyBAQAogCQlwdXRzICgiXG5SZXRyeSBjb3VudCBleGNlZWRlZDsgc3RhcnRpbmcgYWdhaW5cbiIpOwogCQlOZXRTdGFydEFnYWluICgpOwogCX0gZWxzZSB7Ci0JCU5ldFNldFRpbWVvdXQgKFRJTUVPVVQgKiBDRkdfSFosIEJvb3RwVGltZW91dCk7CisJCU5ldFNldFRpbWVvdXQgKFRJTUVPVVQsIEJvb3RwVGltZW91dCk7CiAJCUJvb3RwUmVxdWVzdCAoKTsKIAl9CiB9CkBAIC02NzEsNyArNjcxLDcgQEAKIAlicC0+YnBfaHR5cGUgPSBIV1RfRVRIRVI7CiAJYnAtPmJwX2hsZW4gPSBIV0xfRVRIRVI7CiAJYnAtPmJwX2hvcHMgPSAwOwotCWJwLT5icF9zZWNzID0gaHRvbnMoZ2V0X3RpbWVyKDApIC8gQ0ZHX0haKTsKKwlicC0+YnBfc2VjcyA9IGh0b25zKGdldF90aW1lcigwKSAvIDEwMDApOwogCU5ldFdyaXRlSVAoJmJwLT5icF9jaWFkZHIsIDApOwogCU5ldFdyaXRlSVAoJmJwLT5icF95aWFkZHIsIDApOwogCU5ldFdyaXRlSVAoJmJwLT5icF9zaWFkZHIsIDApOwpAQCAtNjg4LDcgKzY4OCw3IEBACiAKIAkvKgogCSAqCUJvb3RwIElEIGlzIHRoZSBsb3dlciA0IGJ5dGVzIG9mIG91ciBldGhlcm5ldCBhZGRyZXNzCi0JICoJcGx1cyB0aGUgY3VycmVudCB0aW1lIGluIEhaLgorCSAqCXBsdXMgdGhlIGN1cnJlbnQgdGltZSBpbiBtcy4KIAkgKi8KIAlCb290cElEID0gKCh1bG9uZylOZXRPdXJFdGhlclsyXSA8PCAyNCkKIAkJfCAoKHVsb25nKU5ldE91ckV0aGVyWzNdIDw8IDE2KQpAQCAtNzA1LDcgKzcwNSw3IEBACiAJcGt0bGVuID0gQk9PVFBfU0laRSAtIHNpemVvZihicC0+YnBfdmVuZCkgKyBleHRfbGVuOwogCWlwbGVuID0gQk9PVFBfSERSX1NJWkUgLSBzaXplb2YoYnAtPmJwX3ZlbmQpICsgZXh0X2xlbjsKIAlOZXRTZXRJUChpcGhkciwgMHhGRkZGRkZGRkwsIFBPUlRfQk9PVFBTLCBQT1JUX0JPT1RQQywgaXBsZW4pOwotCU5ldFNldFRpbWVvdXQoU0VMRUNUX1RJTUVPVVQgKiBDRkdfSFosIEJvb3RwVGltZW91dCk7CisJTmV0U2V0VGltZW91dChTRUxFQ1RfVElNRU9VVCwgQm9vdHBUaW1lb3V0KTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ESENQKQogCWRoY3Bfc3RhdGUgPSBTRUxFQ1RJTkc7CkBAIC04NDksNyArODQ5LDcgQEAKIAlicC0+YnBfaHR5cGUgPSBIV1RfRVRIRVI7CiAJYnAtPmJwX2hsZW4gPSBIV0xfRVRIRVI7CiAJYnAtPmJwX2hvcHMgPSAwOwotCWJwLT5icF9zZWNzID0gaHRvbnMoZ2V0X3RpbWVyKDApIC8gQ0ZHX0haKTsKKwlicC0+YnBfc2VjcyA9IGh0b25zKGdldF90aW1lcigwKSAvIDEwMDApOwogCS8qIERvIG5vdCBzZXQgdGhlIGNsaWVudCBJUCwgeW91ciBJUCwgb3Igc2VydmVyIElQIHlldCwgc2luY2UgaXQgaGFzbid0IGJlZW4gQUNLJ2VkIGJ5CiAJICogdGhlIHNlcnZlciB5ZXQgKi8KIApAQCAtOTEyLDExICs5MTIsMTEgQEAKIAkJICogT0ZGRVIgZnJvbSBhIHNlcnZlciB3ZSB3YW50LgogCQkgKi8KIAkJZGVidWcgKCJESENQOiBzdGF0ZT1TRUxFQ1RJTkcgYnBfZmlsZTogXCIlc1wiXG4iLCBicC0+YnBfZmlsZSk7Ci0jaWZkZWYgQ0ZHX0JPT1RGSUxFX1BSRUZJWAorI2lmZGVmIENPTkZJR19TWVNfQk9PVEZJTEVfUFJFRklYCiAJCWlmIChzdHJuY21wKGJwLT5icF9maWxlLAotCQkJICAgIENGR19CT09URklMRV9QUkVGSVgsCi0JCQkgICAgc3RybGVuKENGR19CT09URklMRV9QUkVGSVgpKSA9PSAwICkgewotI2VuZGlmCS8qIENGR19CT09URklMRV9QUkVGSVggKi8KKwkJCSAgICBDT05GSUdfU1lTX0JPT1RGSUxFX1BSRUZJWCwKKwkJCSAgICBzdHJsZW4oQ09ORklHX1NZU19CT09URklMRV9QUkVGSVgpKSA9PSAwICkgeworI2VuZGlmCS8qIENPTkZJR19TWVNfQk9PVEZJTEVfUFJFRklYICovCiAKIAkJCWRlYnVnICgiVFJBTlNJVElPTklORyBUTyBSRVFVRVNUSU5HIFNUQVRFXG4iKTsKIAkJCWRoY3Bfc3RhdGUgPSBSRVFVRVNUSU5HOwpAQCAtOTI0LDExICs5MjQsMTEgQEAKIAkJCWlmIChOZXRSZWFkTG9uZygodWxvbmcqKSZicC0+YnBfdmVuZFswXSkgPT0gaHRvbmwoQk9PVFBfVkVORE9SX01BR0lDKSkKIAkJCQlEaGNwT3B0aW9uc1Byb2Nlc3MoKHU4ICopJmJwLT5icF92ZW5kWzRdLCBicCk7CiAKLQkJCU5ldFNldFRpbWVvdXQoVElNRU9VVCAqIENGR19IWiwgQm9vdHBUaW1lb3V0KTsKKwkJCU5ldFNldFRpbWVvdXQoVElNRU9VVCwgQm9vdHBUaW1lb3V0KTsKIAkJCURoY3BTZW5kUmVxdWVzdFBrdChicCk7Ci0jaWZkZWYgQ0ZHX0JPT1RGSUxFX1BSRUZJWAorI2lmZGVmIENPTkZJR19TWVNfQk9PVEZJTEVfUFJFRklYCiAJCX0KLSNlbmRpZgkvKiBDRkdfQk9PVEZJTEVfUFJFRklYICovCisjZW5kaWYJLyogQ09ORklHX1NZU19CT09URklMRV9QUkVGSVggKi8KIAogCQlyZXR1cm47CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvbmV0L2Jvb3RwLmggYi9uZXQvYm9vdHAuaAppbmRleCBjMmYwMTFjLi41MDYyNWFiIDEwMDY0NAotLS0gYS9uZXQvYm9vdHAuaAorKysgYi9uZXQvYm9vdHAuaApAQCAtODgsNyArODgsNyBAQAogI2RlZmluZSBESENQX05BSyAgICAgIDYKICNkZWZpbmUgREhDUF9SRUxFQVNFICA3CiAKLSNkZWZpbmUgU0VMRUNUX1RJTUVPVVQgM1VMCS8qIFNlY29uZHMgdG8gd2FpdCBmb3Igb2ZmZXJzICovCisjZGVmaW5lIFNFTEVDVF9USU1FT1VUIDMwMDBVTAkvKiBNaWxsaXNlY29uZHMgdG8gd2FpdCBmb3Igb2ZmZXJzICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9uZXQvZXRoLmMgYi9uZXQvZXRoLmMKaW5kZXggNDMyZGQ2MC4uY2NkODcxYSAxMDA2NDQKLS0tIGEvbmV0L2V0aC5jCisrKyBiL25ldC9ldGguYwpAQCAtMTgwLDYgKzE4MCwxMiBAQAogI2lmIGRlZmluZWQoQ09ORklHX1VFQ19FVEg0KQogCXVlY19pbml0aWFsaXplKDMpOwogI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfVUVDX0VUSDUpCisJdWVjX2luaXRpYWxpemUoNCk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19VRUNfRVRINikKKwl1ZWNfaW5pdGlhbGl6ZSg1KTsKKyNlbmRpZgogCiAjaWYgZGVmaW5lZChGRUNfRU5FVCkgfHwgZGVmaW5lZChDT05GSUdfRVRIRVJfT05fRkNDKQogCWZlY19pbml0aWFsaXplKGJpcyk7CmRpZmYgLS1naXQgYS9uZXQvbmV0LmMgYi9uZXQvbmV0LmMKaW5kZXggMzEzZDVkOC4uNzdlODNiNSAxMDA2NDQKLS0tIGEvbmV0L25ldC5jCisrKyBiL25ldC9uZXQuYwpAQCAtOTUsMTQgKzk1LDkgQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiAjaWZuZGVmCUNPTkZJR19BUlBfVElNRU9VVAotIyBkZWZpbmUgQVJQX1RJTUVPVVQJCTUwVUwJLyogRGVjaXNlY29uZHMgYmVmb3JlIHRyeWluZyBBUlAgYWdhaW4gKi8KLSNlbGlmIChDT05GSUdfQVJQX1RJTUVPVVQgPCAxMDApCi0jIGVycm9yICJEdWUgdG8gcG9zc2libGUgb3ZlcmZsb3cgQ09ORklHX0FSUF9USU1FT1VUIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEwMG1zIgorIyBkZWZpbmUgQVJQX1RJTUVPVVQJCTUwMDBVTAkvKiBNaWxsaXNlY29uZHMgYmVmb3JlIHRyeWluZyBBUlAgYWdhaW4gKi8KICNlbHNlCi0jIGlmIChDT05GSUdfQVJQX1RJTUVPVVQgJSAxMDApCi0jICB3YXJuaW5nICJTdXBwb3J0ZWQgQVJQX1RJTUVPVVQgcHJlY2lzaW9uIGlzIDEwMG1zIgotIyBlbmRpZgotIyBkZWZpbmUgQVJQX1RJTUVPVVQJCShDT05GSUdfQVJQX1RJTUVPVVQgLyAxMDApCisjIGRlZmluZSBBUlBfVElNRU9VVAkJQ09ORklHX0FSUF9USU1FT1VUCiAjZW5kaWYKIAogCkBAIC0yNjQsNyArMjU5LDcgQEAKIAl0ID0gZ2V0X3RpbWVyKDApOwogCiAJLyogY2hlY2sgZm9yIGFycCB0aW1lb3V0ICovCi0JaWYgKCh0IC0gTmV0QXJwV2FpdFRpbWVyU3RhcnQpID4gQVJQX1RJTUVPVVQgKiBDRkdfSFogLyAxMCkgeworCWlmICgodCAtIE5ldEFycFdhaXRUaW1lclN0YXJ0KSA+IEFSUF9USU1FT1VUKSB7CiAJCU5ldEFycFdhaXRUcnkrKzsKIAogCQlpZiAoTmV0QXJwV2FpdFRyeSA+PSBBUlBfVElNRU9VVF9DT1VOVCkgewpAQCAtNDc3LDE2ICs0NzIsMTYgQEAKIAl9CiAKICNpZiBkZWZpbmVkKENPTkZJR19NSUkpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9NSUkpCi0jaWYgZGVmaW5lZChDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04pICYmIGRlZmluZWQoQ09ORklHX1NUQVRVU19MRUQpICYmIGRlZmluZWQoU1RBVFVTX0xFRF9SRUQpCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZBVUxUX0VDSE9fTElOS19ET1dOKSAmJiBkZWZpbmVkKENPTkZJR19TVEFUVVNfTEVEKSAmJiBkZWZpbmVkKFNUQVRVU19MRURfUkVEKQogCS8qCiAJICogRWNobyB0aGUgaW52ZXJ0ZWQgbGluayBzdGF0ZSB0byB0aGUgZmF1bHQgTEVELgogCSAqLwotCWlmKG1paXBoeV9saW5rKGV0aF9nZXRfZGV2KCktPm5hbWUsIENGR19GQVVMVF9NSUlfQUREUikpIHsKKwlpZihtaWlwaHlfbGluayhldGhfZ2V0X2RldigpLT5uYW1lLCBDT05GSUdfU1lTX0ZBVUxUX01JSV9BRERSKSkgewogCQlzdGF0dXNfbGVkX3NldCAoU1RBVFVTX0xFRF9SRUQsIFNUQVRVU19MRURfT0ZGKTsKIAl9IGVsc2UgewogCQlzdGF0dXNfbGVkX3NldCAoU1RBVFVTX0xFRF9SRUQsIFNUQVRVU19MRURfT04pOwogCX0KLSNlbmRpZiAvKiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04sIC4uLiAqLworI2VuZGlmIC8qIENPTkZJR19TWVNfRkFVTFRfRUNIT19MSU5LX0RPV04sIC4uLiAqLwogI2VuZGlmIC8qIENPTkZJR19NSUksIC4uLiAqLwogCiAJLyoKQEAgLTUyNiwxOCArNTIxLDE4IEBACiAJCQl0aGFuZF9mICp4OwogCiAjaWYgZGVmaW5lZChDT05GSUdfTUlJKSB8fCBkZWZpbmVkKENPTkZJR19DTURfTUlJKQotIyAgaWYgZGVmaW5lZChDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04pICYmIFwKKyMgIGlmIGRlZmluZWQoQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTikgJiYgXAogICAgICAgZGVmaW5lZChDT05GSUdfU1RBVFVTX0xFRCkgJiYJICAgXAogICAgICAgZGVmaW5lZChTVEFUVVNfTEVEX1JFRCkKIAkJCS8qCiAJCQkgKiBFY2hvIHRoZSBpbnZlcnRlZCBsaW5rIHN0YXRlIHRvIHRoZSBmYXVsdCBMRUQuCiAJCQkgKi8KLQkJCWlmKG1paXBoeV9saW5rKGV0aF9nZXRfZGV2KCktPm5hbWUsIENGR19GQVVMVF9NSUlfQUREUikpIHsKKwkJCWlmKG1paXBoeV9saW5rKGV0aF9nZXRfZGV2KCktPm5hbWUsIENPTkZJR19TWVNfRkFVTFRfTUlJX0FERFIpKSB7CiAJCQkJc3RhdHVzX2xlZF9zZXQgKFNUQVRVU19MRURfUkVELCBTVEFUVVNfTEVEX09GRik7CiAJCQl9IGVsc2UgewogCQkJCXN0YXR1c19sZWRfc2V0IChTVEFUVVNfTEVEX1JFRCwgU1RBVFVTX0xFRF9PTik7CiAJCQl9Ci0jICBlbmRpZiAvKiBDRkdfRkFVTFRfRUNIT19MSU5LX0RPV04sIC4uLiAqLworIyAgZW5kaWYgLyogQ09ORklHX1NZU19GQVVMVF9FQ0hPX0xJTktfRE9XTiwgLi4uICovCiAjZW5kaWYgLyogQ09ORklHX01JSSwgLi4uICovCiAJCQl4ID0gdGltZUhhbmRsZXI7CiAJCQl0aW1lSGFuZGxlciA9ICh0aGFuZF9mICopMDsKQEAgLTYwMyw3ICs1OTgsNyBAQAogCQlyZXR1cm47CiAJfQogI2lmbmRlZiBDT05GSUdfTkVUX01VTFRJCi0JTmV0U2V0VGltZW91dCAoMTBVTCAqIENGR19IWiwgc3RhcnRBZ2FpblRpbWVvdXQpOworCU5ldFNldFRpbWVvdXQgKDEwMDAwVUwsIHN0YXJ0QWdhaW5UaW1lb3V0KTsKIAlOZXRTZXRIYW5kbGVyIChzdGFydEFnYWluSGFuZGxlcik7CiAjZWxzZQkvKiAhQ09ORklHX05FVF9NVUxUSSovCiAJZXRoX2hhbHQgKCk7CkBAIC02MTQsNyArNjA5LDcgQEAKIAlpZiAoTmV0UmVzdGFydFdyYXApIHsKIAkJTmV0UmVzdGFydFdyYXAgPSAwOwogCQlpZiAoTmV0RGV2RXhpc3RzICYmICFvbmNlKSB7Ci0JCQlOZXRTZXRUaW1lb3V0ICgxMFVMICogQ0ZHX0haLCBzdGFydEFnYWluVGltZW91dCk7CisJCQlOZXRTZXRUaW1lb3V0ICgxMDAwMFVMLCBzdGFydEFnYWluVGltZW91dCk7CiAJCQlOZXRTZXRIYW5kbGVyIChzdGFydEFnYWluSGFuZGxlcik7CiAJCX0gZWxzZSB7CiAJCQlOZXRTdGF0ZSA9IE5FVExPT1BfRkFJTDsKQEAgLTc5MCw3ICs3ODUsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX05FVF9NVUxUSSkKIAlwcmludGYgKCJVc2luZyAlcyBkZXZpY2VcbiIsIGV0aF9nZXRfbmFtZSgpKTsKICNlbmRpZgkvKiBDT05GSUdfTkVUX01VTFRJICovCi0JTmV0U2V0VGltZW91dCAoMTBVTCAqIENGR19IWiwgUGluZ1RpbWVvdXQpOworCU5ldFNldFRpbWVvdXQgKDEwMDAwVUwsIFBpbmdUaW1lb3V0KTsKIAlOZXRTZXRIYW5kbGVyIChQaW5nSGFuZGxlcik7CiAKIAlQaW5nU2VuZCgpOwpAQCAtODEzLDcgKzgwOCw3IEBACiAjZGVmaW5lIENEUF9TWVNPQkpFQ1RfVExWCQkweDAwMTUKICNkZWZpbmUgQ0RQX01BTkFHRU1FTlRfQUREUkVTU19UTFYJMHgwMDE2CiAKLSNkZWZpbmUgQ0RQX1RJTUVPVVQJCQkoQ0ZHX0haLzQpCS8qIG9uZSBwYWNrZXQgZXZlcnkgMjUwbXMgKi8KKyNkZWZpbmUgQ0RQX1RJTUVPVVQJCQkyNTBVTAkvKiBvbmUgcGFja2V0IGV2ZXJ5IDI1MG1zICovCiAKIHN0YXRpYyBpbnQgQ0RQU2VxOwogc3RhdGljIGludCBDRFBPSzsKZGlmZiAtLWdpdCBhL25ldC9uZnMuYyBiL25ldC9uZnMuYwppbmRleCA2NTczYzE3Li5mMjkwMDE0IDEwMDY0NAotLS0gYS9uZXQvbmZzLmMKKysrIGIvbmV0L25mcy5jCkBAIC0zNSw3ICszNSw3IEBACiAKICNkZWZpbmUgSEFTSEVTX1BFUl9MSU5FIDY1CS8qIE51bWJlciBvZiAibG9hZGluZyIgaGFzaGVzIHBlciBsaW5lCSovCiAjZGVmaW5lIE5GU19SRVRSWV9DT1VOVCAzMAotI2RlZmluZSBORlNfVElNRU9VVCAyVUwKKyNkZWZpbmUgTkZTX1RJTUVPVVQgMjAwMFVMCiAKIHN0YXRpYyBpbnQgZnNfbW91bnRlZCA9IDA7CiBzdGF0aWMgdW5zaWduZWQgbG9uZyBycGNfaWQgPSAwOwpAQCAtNjksMTAgKzY5LDEwIEBACiBzdG9yZV9ibG9jayAodWNoYXIgKiBzcmMsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuKQogewogCXVsb25nIG5ld3NpemUgPSBvZmZzZXQgKyBsZW47Ci0jaWZkZWYgQ0ZHX0RJUkVDVF9GTEFTSF9ORlMKKyNpZmRlZiBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9ORlMKIAlpbnQgaSwgcmMgPSAwOwogCi0JZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CisJZm9yIChpPTA7IGk8Q09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykgewogCQkvKiBzdGFydCBhZGRyZXNzIGluIGZsYXNoPyAqLwogCQlpZiAobG9hZF9hZGRyICsgb2Zmc2V0ID49IGZsYXNoX2luZm9baV0uc3RhcnRbMF0pIHsKIAkJCXJjID0gMTsKQEAgLTg3LDcgKzg3LDcgQEAKIAkJCXJldHVybiAtMTsKIAkJfQogCX0gZWxzZQotI2VuZGlmIC8qIENGR19ESVJFQ1RfRkxBU0hfTkZTICovCisjZW5kaWYgLyogQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfTkZTICovCiAJewogCQkodm9pZCltZW1jcHkgKCh2b2lkICopKGxvYWRfYWRkciArIG9mZnNldCksIHNyYywgbGVuKTsKIAl9CkBAIC02NzQsNyArNjc0LDcgQEAKIAogCWNhc2UgU1RBVEVfUkVBRF9SRVE6CiAJCXJsZW4gPSBuZnNfcmVhZF9yZXBseSAocGt0LCBsZW4pOwotCQlOZXRTZXRUaW1lb3V0IChORlNfVElNRU9VVCAqIENGR19IWiwgTmZzVGltZW91dCk7CisJCU5ldFNldFRpbWVvdXQgKE5GU19USU1FT1VULCBOZnNUaW1lb3V0KTsKIAkJaWYgKHJsZW4gPiAwKSB7CiAJCQluZnNfb2Zmc2V0ICs9IHJsZW47CiAJCQlOZnNTZW5kICgpOwpAQCAtNzYzLDcgKzc2Myw3IEBACiAJcHJpbnRmICgiXG5Mb2FkIGFkZHJlc3M6IDB4JWx4XG4iCiAJCSJMb2FkaW5nOiAqXGIiLCBsb2FkX2FkZHIpOwogCi0JTmV0U2V0VGltZW91dCAoTkZTX1RJTUVPVVQgKiBDRkdfSFosIE5mc1RpbWVvdXQpOworCU5ldFNldFRpbWVvdXQgKE5GU19USU1FT1VULCBOZnNUaW1lb3V0KTsKIAlOZXRTZXRIYW5kbGVyIChOZnNIYW5kbGVyKTsKIAogCU5mc1RpbWVvdXRDb3VudCA9IDA7CmRpZmYgLS1naXQgYS9uZXQvcmFycC5jIGIvbmV0L3JhcnAuYwppbmRleCBlY2YzOGU0Li43MTA1Njk2IDEwMDY0NAotLS0gYS9uZXQvcmFycC5jCisrKyBiL25ldC9yYXJwLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ORVQpCiAKLSNkZWZpbmUgVElNRU9VVAkJNVVMCQkvKiBTZWNvbmRzIGJlZm9yZSB0cnlpbmcgQk9PVFAgYWdhaW4gKi8KKyNkZWZpbmUgVElNRU9VVAkJNTAwMFVMCS8qIE1pbGxpc2Vjb25kcyBiZWZvcmUgdHJ5aW5nIEJPT1RQIGFnYWluICovCiAjaWZuZGVmCUNPTkZJR19ORVRfUkVUUllfQ09VTlQKICMgZGVmaW5lIFRJTUVPVVRfQ09VTlQJNQkJLyogIyBvZiB0aW1lb3V0cyBiZWZvcmUgZ2l2aW5nIHVwICAqLwogI2Vsc2UKQEAgLTgwLDcgKzgwLDcgQEAKIAkJcHV0cyAoIlxuUmV0cnkgY291bnQgZXhjZWVkZWQ7IHN0YXJ0aW5nIGFnYWluXG4iKTsKIAkJTmV0U3RhcnRBZ2FpbiAoKTsKIAl9IGVsc2UgewotCQlOZXRTZXRUaW1lb3V0IChUSU1FT1VUICogQ0ZHX0haLCBSYXJwVGltZW91dCk7CisJCU5ldFNldFRpbWVvdXQgKFRJTUVPVVQsIFJhcnBUaW1lb3V0KTsKIAkJUmFycFJlcXVlc3QgKCk7CiAJfQogfQpAQCAtMTE1LDcgKzExNSw3IEBACiAKIAlOZXRTZW5kUGFja2V0KE5ldFR4UGFja2V0LCAocGt0IC0gTmV0VHhQYWNrZXQpICsgQVJQX0hEUl9TSVpFKTsKIAotCU5ldFNldFRpbWVvdXQoVElNRU9VVCAqIENGR19IWiwgUmFycFRpbWVvdXQpOworCU5ldFNldFRpbWVvdXQoVElNRU9VVCwgUmFycFRpbWVvdXQpOwogCU5ldFNldEhhbmRsZXIoUmFycEhhbmRsZXIpOwogfQogCmRpZmYgLS1naXQgYS9uZXQvc250cC5jIGIvbmV0L3NudHAuYwppbmRleCA5NWU3NTQyLi40MjVkMzVlIDEwMDY0NAotLS0gYS9uZXQvc250cC5jCisrKyBiL25ldC9zbnRwLmMKQEAgLTE0LDcgKzE0LDcgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX0NNRF9ORVQpICYmIGRlZmluZWQoQ09ORklHX0NNRF9TTlRQKQogCi0jZGVmaW5lIFNOVFBfVElNRU9VVCAxMAorI2RlZmluZSBTTlRQX1RJTUVPVVQgMTAwMDBVTAogCiBzdGF0aWMgaW50IFNudHBPdXJQb3J0OwogCkBAIC04Miw3ICs4Miw3IEBACiB7CiAJZGVidWcgKCIlc1xuIiwgX19GVU5DVElPTl9fKTsKIAotCU5ldFNldFRpbWVvdXQgKFNOVFBfVElNRU9VVCAqIENGR19IWiwgU250cFRpbWVvdXQpOworCU5ldFNldFRpbWVvdXQgKFNOVFBfVElNRU9VVCwgU250cFRpbWVvdXQpOwogCU5ldFNldEhhbmRsZXIoU250cEhhbmRsZXIpOwogCW1lbXNldCAoTmV0U2VydmVyRXRoZXIsIDAsIDYpOwogCmRpZmYgLS1naXQgYS9uZXQvdGZ0cC5jIGIvbmV0L3RmdHAuYwppbmRleCA5YWVlY2I4Li5jZTZlYTNkIDEwMDY0NAotLS0gYS9uZXQvdGZ0cC5jCisrKyBiL25ldC90ZnRwLmMKQEAgLTE1LDcgKzE1LDcgQEAKICNpZiBkZWZpbmVkKENPTkZJR19DTURfTkVUKQogCiAjZGVmaW5lIFdFTExfS05PV05fUE9SVAk2OQkJLyogV2VsbCBrbm93biBURlRQIHBvcnQgIwkJKi8KLSNkZWZpbmUgVElNRU9VVAkJNVVMCQkvKiBTZWNvbmRzIHRvIHRpbWVvdXQgZm9yIGEgbG9zdCBwa3QJKi8KKyNkZWZpbmUgVElNRU9VVAkJNTAwMFVMCQkvKiBNaWxsaXNlY3MgdG8gdGltZW91dCBmb3IgbG9zdCBwa3QgKi8KICNpZm5kZWYJQ09ORklHX05FVF9SRVRSWV9DT1VOVAogIyBkZWZpbmUgVElNRU9VVF9DT1VOVAkxMAkJLyogIyBvZiB0aW1lb3V0cyBiZWZvcmUgZ2l2aW5nIHVwICAqLwogI2Vsc2UKQEAgLTM0LDYgKzM0LDIxIEBACiAjZGVmaW5lIFRGVFBfRVJST1IJNQogI2RlZmluZSBURlRQX09BQ0sJNgogCitzdGF0aWMgdWxvbmcgVGZ0cFRpbWVvdXRNU2VjcyA9IFRJTUVPVVQ7CitzdGF0aWMgaW50IFRmdHBUaW1lb3V0Q291bnRNYXggPSBUSU1FT1VUX0NPVU5UOworCisvKgorICogVGhlc2UgZ2xvYmFscyBnb3Zlcm4gdGhlIHRpbWVvdXQgYmVoYXZpb3Igd2hlbiBhdHRlbXB0aW5nIGEgY29ubmVjdGlvbiB0byBhCisgKiBURlRQIHNlcnZlci4gVGZ0cFJSUVRpbWVvdXRNU2VjcyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8KKyAqIHdhaXQgZm9yIHRoZSBzZXJ2ZXIgdG8gcmVzcG9uZCB0byBpbml0aWFsIGNvbm5lY3Rpb24uIFNlY29uZCBnbG9iYWwsCisgKiBUZnRwUlJRVGltZW91dENvdW50TWF4LCBnaXZlcyB0aGUgbnVtYmVyIG9mIHN1Y2ggY29ubmVjdGlvbiByZXRyaWVzLgorICogVGZ0cFJSUVRpbWVvdXRDb3VudE1heCBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBhbmQgVGZ0cFJSUVRpbWVvdXRNU2VjcyBtdXN0IGJlCisgKiBwb3NpdGl2ZS4gVGhlIGdsb2JhbHMgYXJlIG1lYW50IHRvIGJlIHNldCAoYW5kIHJlc3RvcmVkKSBieSBjb2RlIG5lZWRpbmcKKyAqIG5vbi1zdGFuZGFyZCB0aW1lb3V0IGJlaGF2aW9yIHdoZW4gaW5pdGlhdGluZyBhIFRGVFAgdHJhbnNmZXIuCisgKi8KK3Vsb25nIFRmdHBSUlFUaW1lb3V0TVNlY3MgPSBUSU1FT1VUOworaW50IFRmdHBSUlFUaW1lb3V0Q291bnRNYXggPSBUSU1FT1VUX0NPVU5UOworCiBzdGF0aWMgSVBhZGRyX3QgVGZ0cFNlcnZlcklQOwogc3RhdGljIGludAlUZnRwU2VydmVyUG9ydDsJCS8qIFRoZSBVRFAgcG9ydCBhdCB0aGVpciBlbmQJCSovCiBzdGF0aWMgaW50CVRmdHBPdXJQb3J0OwkJLyogVGhlIFVEUCBwb3J0IGF0IG91ciBlbmQJCSovCkBAIC02NCw3ICs3OSw3IEBACiAKIHN0YXRpYyBjaGFyIHRmdHBfZmlsZW5hbWVbTUFYX0xFTl07CiAKLSNpZmRlZiBDRkdfRElSRUNUX0ZMQVNIX1RGVFAKKyNpZmRlZiBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQCiBleHRlcm4gZmxhc2hfaW5mb190IGZsYXNoX2luZm9bXTsKICNlbmRpZgogCkBAIC0xMDYsMTAgKzEyMSwxMCBAQAogewogCXVsb25nIG9mZnNldCA9IGJsb2NrICogVGZ0cEJsa1NpemUgKyBUZnRwQmxvY2tXcmFwT2Zmc2V0OwogCXVsb25nIG5ld3NpemUgPSBvZmZzZXQgKyBsZW47Ci0jaWZkZWYgQ0ZHX0RJUkVDVF9GTEFTSF9URlRQCisjaWZkZWYgQ09ORklHX1NZU19ESVJFQ1RfRkxBU0hfVEZUUAogCWludCBpLCByYyA9IDA7CiAKLQlmb3IgKGk9MDsgaTxDRkdfTUFYX0ZMQVNIX0JBTktTOyBpKyspIHsKKwlmb3IgKGk9MDsgaTxDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgaSsrKSB7CiAJCS8qIHN0YXJ0IGFkZHJlc3MgaW4gZmxhc2g/ICovCiAJCWlmIChmbGFzaF9pbmZvW2ldLmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pCiAJCQljb250aW51ZTsKQEAgLTEyOCw3ICsxNDMsNyBAQAogCQl9CiAJfQogCWVsc2UKLSNlbmRpZiAvKiBDRkdfRElSRUNUX0ZMQVNIX1RGVFAgKi8KKyNlbmRpZiAvKiBDT05GSUdfU1lTX0RJUkVDVF9GTEFTSF9URlRQICovCiAJewogCQkodm9pZCltZW1jcHkoKHZvaWQgKikobG9hZF9hZGRyICsgb2Zmc2V0KSwgc3JjLCBsZW4pOwogCX0KQEAgLTE4MCw3ICsxOTUsNyBAQAogCQlwa3QgKz0gNSAvKnN0cmxlbigib2N0ZXQiKSovICsgMTsKIAkJc3RyY3B5ICgoY2hhciAqKXBrdCwgInRpbWVvdXQiKTsKIAkJcGt0ICs9IDcgLypzdHJsZW4oInRpbWVvdXQiKSovICsgMTsKLQkJc3ByaW50ZigoY2hhciAqKXBrdCwgIiVsdSIsIFRJTUVPVVQpOworCQlzcHJpbnRmKChjaGFyICopcGt0LCAiJWx1IiwgVElNRU9VVCAvIDEwMDApOwogI2lmZGVmIEVUX0RFQlVHCiAJCXByaW50Zigic2VuZCBvcHRpb24gXCJ0aW1lb3V0ICVzXCJcbiIsIChjaGFyICopcGt0KTsKICNlbmRpZgpAQCAtMzcwLDcgKzM4NSw5IEBACiAJCX0KIAogCQlUZnRwTGFzdEJsb2NrID0gVGZ0cEJsb2NrOwotCQlOZXRTZXRUaW1lb3V0IChUSU1FT1VUICogQ0ZHX0haLCBUZnRwVGltZW91dCk7CisJCVRmdHBUaW1lb3V0TVNlY3MgPSBUSU1FT1VUOworCQlUZnRwVGltZW91dENvdW50TWF4ID0gVElNRU9VVF9DT1VOVDsKKwkJTmV0U2V0VGltZW91dCAoVGZ0cFRpbWVvdXRNU2VjcywgVGZ0cFRpbWVvdXQpOwogCiAJCXN0b3JlX2Jsb2NrIChUZnRwQmxvY2sgLSAxLCBwa3QgKyAyLCBsZW4pOwogCkBAIC00NDEsNyArNDU4LDcgQEAKIHN0YXRpYyB2b2lkCiBUZnRwVGltZW91dCAodm9pZCkKIHsKLQlpZiAoKytUZnRwVGltZW91dENvdW50ID4gVElNRU9VVF9DT1VOVCkgeworCWlmICgrK1RmdHBUaW1lb3V0Q291bnQgPiBUZnRwVGltZW91dENvdW50TWF4KSB7CiAJCXB1dHMgKCJcblJldHJ5IGNvdW50IGV4Y2VlZGVkOyBzdGFydGluZyBhZ2FpblxuIik7CiAjaWZkZWYgQ09ORklHX01DQVNUX1RGVFAKIAkJbWNhc3RfY2xlYW51cCgpOwpAQCAtNDQ5LDcgKzQ2Niw3IEBACiAJCU5ldFN0YXJ0QWdhaW4gKCk7CiAJfSBlbHNlIHsKIAkJcHV0cyAoIlQgIik7Ci0JCU5ldFNldFRpbWVvdXQgKFRJTUVPVVQgKiBDRkdfSFosIFRmdHBUaW1lb3V0KTsKKwkJTmV0U2V0VGltZW91dCAoVGZ0cFRpbWVvdXRNU2VjcywgVGZ0cFRpbWVvdXQpOwogCQlUZnRwU2VuZCAoKTsKIAl9CiB9CkBAIC01MjAsNyArNTM3LDEwIEBACiAKIAlwdXRzICgiTG9hZGluZzogKlxiIik7CiAKLQlOZXRTZXRUaW1lb3V0IChUSU1FT1VUICogQ0ZHX0haLCBUZnRwVGltZW91dCk7CisJVGZ0cFRpbWVvdXRNU2VjcyA9IFRmdHBSUlFUaW1lb3V0TVNlY3M7CisJVGZ0cFRpbWVvdXRDb3VudE1heCA9IFRmdHBSUlFUaW1lb3V0Q291bnRNYXg7CisKKwlOZXRTZXRUaW1lb3V0IChUZnRwVGltZW91dE1TZWNzLCBUZnRwVGltZW91dCk7CiAJTmV0U2V0SGFuZGxlciAoVGZ0cEhhbmRsZXIpOwogCiAJVGZ0cFNlcnZlclBvcnQgPSBXRUxMX0tOT1dOX1BPUlQ7CmRpZmYgLS1naXQgYS9vbmVuYW5kX2lwbC9ib2FyZC9hcG9sbG9uL2Fwb2xsb24uYyBiL29uZW5hbmRfaXBsL2JvYXJkL2Fwb2xsb24vYXBvbGxvbi5jCmluZGV4IGFjZjVjMjkuLjQ5MzZlMDAgMTAwNjQ0Ci0tLSBhL29uZW5hbmRfaXBsL2JvYXJkL2Fwb2xsb24vYXBvbGxvbi5jCisrKyBiL29uZW5hbmRfaXBsL2JvYXJkL2Fwb2xsb24vYXBvbGxvbi5jCkBAIC0zNyw3ICszNyw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBDRkdfUFJJTlRGCisjaWZkZWYgQ09ORklHX1NZU19QUklOVEYKIC8qIFBpbiBNdXhpbmcgcmVnaXN0ZXJzIHVzZWQgZm9yIFVBUlQxICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogUm91dGluZTogbXV4U2V0dXBVQVJUMSAgKG9zdGJvb3QpCkBAIC02Myw3ICs2Myw3IEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIGludCBzX2luaXQoaW50IHNraXApCiB7Ci0jaWZkZWYgQ0ZHX1BSSU5URgorI2lmZGVmIENPTkZJR19TWVNfUFJJTlRGCiAJbXV4U2V0dXBVQVJUMSgpOwogI2VuZGlmCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9vbmVuYW5kX2lwbC9vbmVuYW5kX2Jvb3QuYyBiL29uZW5hbmRfaXBsL29uZW5hbmRfYm9vdC5jCmluZGV4IDM1NjY4YWMuLmFmZjYyZDIgMTAwNjQ0Ci0tLSBhL29uZW5hbmRfaXBsL29uZW5hbmRfYm9vdC5jCisrKyBiL29uZW5hbmRfaXBsL29uZW5hbmRfYm9vdC5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJvbmVuYW5kX2lwbC5oIgogCi0jaWZkZWYgQ0ZHX1BSSU5URgorI2lmZGVmIENPTkZJR19TWVNfUFJJTlRGCiBpbnQgcHJpbnRfaW5mbyh2b2lkKQogewogCXByaW50ZihYTE9BREVSX1ZFUlNJT04pOwpAQCAtNDEsNyArNDEsNyBAQAogCiBpbml0X2ZuY190ICppbml0X3NlcXVlbmNlW10gPSB7CiAJYm9hcmRfaW5pdCwJCS8qIGJhc2ljIGJvYXJkIGRlcGVuZGVudCBzZXR1cCAqLwotI2lmZGVmIENGR19QUklOVEYKKyNpZmRlZiBDT05GSUdfU1lTX1BSSU5URgogCXNlcmlhbF9pbml0LAkJLyogc2VyaWFsIGNvbW11bmljYXRpb25zIHNldHVwICovCiAJcHJpbnRfaW5mbywKICNlbmRpZgpAQCAtNTgsMTcgKzU4LDE3IEBACiAJCQloYW5nKCk7CiAJfQogCi0JYnVmID0gKHVjaGFyICopIENGR19MT0FEX0FERFI7CisJYnVmID0gKHVjaGFyICopIENPTkZJR19TWVNfTE9BRF9BRERSOwogCiAJaWYgKCFvbmVuYW5kX3JlYWRfYmxvY2swKGJ1ZikpCiAJCWJ1ZiArPSBPTkVOQU5EX0JMT0NLX1NJWkU7CiAKLQlpZiAoYnVmID09ICh1Y2hhciAqKUNGR19MT0FEX0FERFIpCisJaWYgKGJ1ZiA9PSAodWNoYXIgKilDT05GSUdfU1lTX0xPQURfQUREUikKIAkJaGFuZygpOwogCiAJLyogZ28gcnVuIFUtQm9vdCBhbmQgbmV2ZXIgcmV0dXJuICovCiAJcHJpbnRmKCJTdGFydGluZyBPUyBCb290bG9hZGVyLi4uXG4iKTsKLQkoKGluaXRfZm5jX3QgKilDRkdfTE9BRF9BRERSKSgpOworCSgoaW5pdF9mbmNfdCAqKUNPTkZJR19TWVNfTE9BRF9BRERSKSgpOwogCiAJLyogc2hvdWxkIG5ldmVyIGNvbWUgaGVyZSAqLwogfQpkaWZmIC0tZ2l0IGEvb25lbmFuZF9pcGwvb25lbmFuZF9pcGwuaCBiL29uZW5hbmRfaXBsL29uZW5hbmRfaXBsLmgKaW5kZXggOTE4OGI5Ni4uMzM4Nzk5OCAxMDA2NDQKLS0tIGEvb25lbmFuZF9pcGwvb25lbmFuZF9pcGwuaAorKysgYi9vbmVuYW5kX2lwbC9vbmVuYW5kX2lwbC5oCkBAIC0yNSwxNCArMjUsMTQgQEAKIAogI2RlZmluZSBPTkVOQU5EX0JMT0NLX1NJWkUgICAgICAgICAgICAgIDIwNDgKIAotI2lmbmRlZiBDRkdfUFJJTlRGCisjaWZuZGVmIENPTkZJR19TWVNfUFJJTlRGCiAjZGVmaW5lIHByaW50Zihmb3JtYXQsIGFyZ3MuLi4pCiAjZW5kaWYKIAogI2RlZmluZSBvbmVuYW5kX3JlYWR3KGEpICAgICAgICByZWFkdyhhKQogI2RlZmluZSBvbmVuYW5kX3dyaXRldyh2LCBhKSAgICB3cml0ZXcodiwgYSkKIAotI2RlZmluZSBUSElTX09ORU5BTkQoYSkgICAgICAgICAoQ0ZHX09ORU5BTkRfQkFTRSArIChhKSkKKyNkZWZpbmUgVEhJU19PTkVOQU5EKGEpICAgICAgICAgKENPTkZJR19TWVNfT05FTkFORF9CQVNFICsgKGEpKQogCiAjZGVmaW5lIFJFQURfSU5URVJSVVBUKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJb25lbmFuZF9yZWFkdyhUSElTX09ORU5BTkQoT05FTkFORF9SRUdfSU5URVJSVVBUKSkKZGlmZiAtLWdpdCBhL29uZW5hbmRfaXBsL29uZW5hbmRfcmVhZC5jIGIvb25lbmFuZF9pcGwvb25lbmFuZF9yZWFkLmMKaW5kZXggNjY5YjFlZi4uNmQwNDk0MyAxMDA2NDQKLS0tIGEvb25lbmFuZF9pcGwvb25lbmFuZF9yZWFkLmMKKysrIGIvb25lbmFuZF9pcGwvb25lbmFuZF9yZWFkLmMKQEAgLTY3LDcgKzY3LDcgQEAKICNpZm5kZWYgX19IQVZFX0FSQ0hfTUVNQ1BZMzIKIAlwID0gKHVuc2lnbmVkIGxvbmcgKikgYnVmOwogI2VuZGlmCi0JYmFzZSA9ICh1bnNpZ25lZCBsb25nICopIChDRkdfT05FTkFORF9CQVNFICsgT05FTkFORF9EQVRBUkFNKTsKKwliYXNlID0gKHVuc2lnbmVkIGxvbmcgKikgKENPTkZJR19TWVNfT05FTkFORF9CQVNFICsgT05FTkFORF9EQVRBUkFNKTsKIAogCXdoaWxlICghKFJFQURfSU5URVJSVVBUKCkgJiBPTkVOQU5EX0lOVF9SRUFEKSkKIAkJY29udGludWU7CmRpZmYgLS1naXQgYS9wb3N0L2JvYXJkL2x3bW9uL3N5c21vbi5jIGIvcG9zdC9ib2FyZC9sd21vbi9zeXNtb24uYwppbmRleCBlYThiNWE5Li43OWE1MTUxIDEwMDY0NAotLS0gYS9wb3N0L2JvYXJkL2x3bW9uL3N5c21vbi5jCisrKyBiL3Bvc3QvYm9hcmQvbHdtb24vc3lzbW9uLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbmNsdWRlIDx3YXRjaGRvZy5oPgogI2luY2x1ZGUgPGkyYy5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04KKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04KIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKQEAgLTc2LDExICs3NiwxMSBAQAogfTsKIAogc3RhdGljIHN5c21vbl90IHN5c21vbl9sbTg3ID0KLQl7Q0ZHX0kyQ19TWVNNT05fQUREUiwgc3lzbW9uX2xtODdfaW5pdCwgc3lzbW9uX2kyY19yZWFkfTsKKwl7Q09ORklHX1NZU19JMkNfU1lTTU9OX0FERFIsIHN5c21vbl9sbTg3X2luaXQsIHN5c21vbl9pMmNfcmVhZH07CiBzdGF0aWMgc3lzbW9uX3Qgc3lzbW9uX2xtODdfc2duID0KLQl7Q0ZHX0kyQ19TWVNNT05fQUREUiwgc3lzbW9uX2xtODdfaW5pdCwgc3lzbW9uX2kyY19yZWFkX3Nnbn07CisJe0NPTkZJR19TWVNfSTJDX1NZU01PTl9BRERSLCBzeXNtb25fbG04N19pbml0LCBzeXNtb25faTJjX3JlYWRfc2dufTsKIHN0YXRpYyBzeXNtb25fdCBzeXNtb25fcGljID0KLQl7Q0ZHX0kyQ19QSUNJT19BRERSLCBzeXNtb25fcGljX2luaXQsIHN5c21vbl9pMmNfcmVhZH07CisJe0NPTkZJR19TWVNfSTJDX1BJQ0lPX0FERFIsIHN5c21vbl9waWNfaW5pdCwgc3lzbW9uX2kyY19yZWFkfTsKIAogc3RhdGljIHN5c21vbl90ICogc3lzbW9uX2xpc3RbXSA9CiB7CkBAIC0zMjUsNCArMzI1LDQgQEAKIAlyZXR1cm4gcmVzOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04gKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04gKi8KZGlmZiAtLWdpdCBhL3Bvc3QvYm9hcmQvbHdtb241L2RzcC5jIGIvcG9zdC9ib2FyZC9sd21vbjUvZHNwLmMKaW5kZXggYTk2YWM3ZC4uMGU2ZDkwOCAxMDA2NDQKLS0tIGEvcG9zdC9ib2FyZC9sd21vbjUvZHNwLmMKKysrIGIvcG9zdC9ib2FyZC9sd21vbjUvZHNwLmMKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRFNQCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRFNQCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKIC8qIFRoaXMgdGVzdCB2ZXJpZmllcyBEU1Agc3RhdHVzIGJpdHMgaW4gRlBHQSAqLwpAQCAtNTAsNCArNTAsNCBAQAogCXJldHVybiByZXQ7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0RTUCAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0RTUCAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9ib2FyZC9sd21vbjUvZHNwaWMuYyBiL3Bvc3QvYm9hcmQvbHdtb241L2RzcGljLmMKaW5kZXggZWIxYzMxYy4uZmYyZWQwNSAxMDA2NDQKLS0tIGEvcG9zdC9ib2FyZC9sd21vbjUvZHNwaWMuYworKysgYi9wb3N0L2JvYXJkL2x3bW9uNS9kc3BpYy5jCkBAIC00MCwxMiArNDAsMTIgQEAKICNkZWZpbmUgRFNQSUNfU1lTX0VSUk9SX1JFRwkweDgwMgogI2RlZmluZSBEU1BJQ19WRVJTSU9OX1JFRwkweDgwNAogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzEKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzEKIAogLyogVmVyaWZ5IHRoYXQgZHNQSUMgcmVhZHkgdGVzdCBkb25lIGVhcmx5IGF0IGh3IGluaXQgcGFzc2VkIG9rICovCiBpbnQgZHNwaWNfaW5pdF9wb3N0X3Rlc3QoaW50IGZsYWdzKQogewotCWlmIChpbl9iZTMyKCh2b2lkICopQ0ZHX0RTUElDX1RFU1RfQUREUikgJiBDRkdfRFNQSUNfVEVTVF9NQVNLKSB7CisJaWYgKGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX0RTUElDX1RFU1RfQUREUikgJiBDT05GSUdfU1lTX0RTUElDX1RFU1RfTUFTSykgewogCQlwb3N0X2xvZygiZHNQSUMgaW5pdCB0ZXN0IGZhaWxlZFxuIik7CiAJCXJldHVybiAxOwogCX0KQEAgLTUzLDE1ICs1MywxNSBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzEgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzEgKi8KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUMyCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUMyCiAvKiBSZWFkIGEgcmVnaXN0ZXIgZnJvbSB0aGUgZHNQSUMuICovCiBpbnQgZHNwaWNfcmVhZCh1c2hvcnQgcmVnKQogewogCXVjaGFyIGJ1ZlsyXTsKIAotCWlmIChpMmNfcmVhZChDRkdfSTJDX0RTUElDX0lPX0FERFIsIHJlZywgMiwgYnVmLCAyKSkKKwlpZiAoaTJjX3JlYWQoQ09ORklHX1NZU19JMkNfRFNQSUNfSU9fQUREUiwgcmVnLCAyLCBidWYsIDIpKQogCQlyZXR1cm4gLTE7CiAKIAlyZXR1cm4gKHVpbnQpKChidWZbMF0gPDwgOCkgfCBidWZbMV0pOwpAQCAtMTAyLDQgKzEwMiw0IEBACiAJcmV0dXJuIHJldDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUMyICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUMyICovCmRpZmYgLS1naXQgYS9wb3N0L2JvYXJkL2x3bW9uNS9mcGdhLmMgYi9wb3N0L2JvYXJkL2x3bW9uNS9mcGdhLmMKaW5kZXggZWY2NDFkNy4uMmI4NDI5MCAxMDA2NDQKLS0tIGEvcG9zdC9ib2FyZC9sd21vbjUvZnBnYS5jCisrKyBiL3Bvc3QvYm9hcmQvbHdtb241L2ZwZ2EuYwpAQCAtMzksNyArMzksNyBAQAogI2RlZmluZSBGUEdBX1JBTV9FTkQJCTB4QzQyMDNGRkYKICNkZWZpbmUgRlBHQV9TVEFUCQkweEM0MDAwMDBDCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0JTUEVDMworI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDMwogCiAvKiBUZXN0cGF0dGVybiBmb3IgZnBnYSBtZW1vcnl0ZXN0ICovCiBzdGF0aWMgdWludCBwYXR0ZXJuW10gPSB7CkBAIC0xMjcsNyArMTI3LDcgQEAKIAkvKiBFbmFibGUgd3JpdGUgdG8gRlBHQSBSQU0gKi8KIAlvdXRfYmUzMigodm9pZCAqKUZQR0FfU1RBVCwgaW5fYmUzMigodm9pZCAqKUZQR0FfU1RBVCkgfCAweDEwMDApOwogCi0JcmVhZF92YWx1ZSA9IGdldF9yYW1fc2l6ZSgodm9pZCAqKUNGR19GUEdBX0JBU0VfMSwgMHg0MDAwKTsKKwlyZWFkX3ZhbHVlID0gZ2V0X3JhbV9zaXplKCh2b2lkICopQ09ORklHX1NZU19GUEdBX0JBU0VfMSwgMHg0MDAwKTsKIAlwb3N0X2xvZygiRlBHQSBSQU0gc2l6ZTogJWQgYnl0ZXNcbiIsIHJlYWRfdmFsdWUpOwogCiAJZm9yIChhZGRyZXNzID0gMDsgYWRkcmVzcyA8IDB4MTAwMDsgYWRkcmVzcysrKSB7CkBAIC0xNDEsNCArMTQxLDQgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzMgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzMgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvYm9hcmQvbHdtb241L2dkYy5jIGIvcG9zdC9ib2FyZC9sd21vbjUvZ2RjLmMKaW5kZXggYmMxNjY4NS4uZWIxNmUzNiAxMDA2NDQKLS0tIGEvcG9zdC9ib2FyZC9sd21vbjUvZ2RjLmMKKysrIGIvcG9zdC9ib2FyZC9sd21vbjUvZ2RjLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNkZWZpbmUgR0RDX1JBTV9TVEFSVCAgIDB4QzAwMDAwMDAKICNkZWZpbmUgR0RDX1JBTV9FTkQgICAgIDB4QzIwMDAwMDAKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUM0CisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUM0CiAKIHN0YXRpYyBpbnQgZ2RjX3Rlc3RfcmVnX29uZSh1aW50IHZhbHVlKQogewpAQCAtOTMsNCArOTMsNCBAQAogCiAJcmV0dXJuIHJldDsKIH0KLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0JTUEVDNCAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDNCAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9ib2FyZC9sd21vbjUvc3lzbW9uLmMgYi9wb3N0L2JvYXJkL2x3bW9uNS9zeXNtb24uYwppbmRleCAyNzY2MjI0Li5hZWY1YmQwIDEwMDY0NAotLS0gYS9wb3N0L2JvYXJkL2x3bW9uNS9zeXNtb24uYworKysgYi9wb3N0L2JvYXJkL2x3bW9uNS9zeXNtb24uYwpAQCAtNTEsNyArNTEsNyBAQAogI2luY2x1ZGUgPG1iODYyeHguaD4KICNlbmRpZgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04KKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04KIAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKQEAgLTkwLDcgKzkwLDcgQEAKIH07CiAKIHN0YXRpYyBzeXNtb25fdCBzeXNtb25fZHNwaWMgPQotCXtDRkdfSTJDX0RTUElDX0lPX0FERFIsIHN5c21vbl9kc3BpY19pbml0LCBzeXNtb25fZHNwaWNfcmVhZH07CisJe0NPTkZJR19TWVNfSTJDX0RTUElDX0lPX0FERFIsIHN5c21vbl9kc3BpY19pbml0LCBzeXNtb25fZHNwaWNfcmVhZH07CiAKIHN0YXRpYyBzeXNtb25fdCAqIHN5c21vbl9saXN0W10gPQogewpAQCAtMjY3LDQgKzI2Nyw0IEBACiAKIAlyZXR1cm4gcmVzOwogfQotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1lTTU9OICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1lTTU9OICovCmRpZmYgLS1naXQgYS9wb3N0L2JvYXJkL2x3bW9uNS93YXRjaGRvZy5jIGIvcG9zdC9ib2FyZC9sd21vbjUvd2F0Y2hkb2cuYwppbmRleCAxMjQ2Mjc4Li40NGYwNDg4IDEwMDY0NAotLS0gYS9wb3N0L2JvYXJkL2x3bW9uNS93YXRjaGRvZy5jCisrKyBiL3Bvc3QvYm9hcmQvbHdtb241L3dhdGNoZG9nLmMKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfV0FUQ0hET0cKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRwogCiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KICNpbmNsdWRlIDxhc20vZ3Bpby5oPgpAQCAtMzksMjAgKzM5LDIwIEBACiAKIHN0YXRpYyB1aW50IHdhdGNoZG9nX21hZ2ljX3JlYWQodm9pZCkKIHsKLQlyZXR1cm4gaW5fYmUzMigodm9pZCAqKUNGR19XQVRDSERPR19GTEFHU19BRERSKSAmCi0JCUNGR19XQVRDSERPR19NQUdJQ19NQVNLOworCXJldHVybiBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19XQVRDSERPR19GTEFHU19BRERSKSAmCisJCUNPTkZJR19TWVNfV0FUQ0hET0dfTUFHSUNfTUFTSzsKIH0KIAogc3RhdGljIHZvaWQgd2F0Y2hkb2dfbWFnaWNfd3JpdGUodWludCB2YWx1ZSkKIHsKLQlvdXRfYmUzMigodm9pZCAqKUNGR19XQVRDSERPR19GTEFHU19BRERSLCB2YWx1ZSB8Ci0JCShpbl9iZTMyKCh2b2lkICopQ0ZHX1dBVENIRE9HX0ZMQUdTX0FERFIpICYKLQkJCX5DRkdfV0FUQ0hET0dfTUFHSUNfTUFTSykpOworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19XQVRDSERPR19GTEFHU19BRERSLCB2YWx1ZSB8CisJCShpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19XQVRDSERPR19GTEFHU19BRERSKSAmCisJCQl+Q09ORklHX1NZU19XQVRDSERPR19NQUdJQ19NQVNLKSk7CiB9CiAKIGludCBzeXNtb24xX3Bvc3RfdGVzdChpbnQgZmxhZ3MpCiB7Ci0JaWYgKGdwaW9fcmVhZF9pbl9iaXQoQ0ZHX0dQSU9fU1lTTU9OX1NUQVRVUykgPT0gMCkgeworCWlmIChncGlvX3JlYWRfaW5fYml0KENPTkZJR19TWVNfR1BJT19TWVNNT05fU1RBVFVTKSA9PSAwKSB7CiAJCS8qCiAJCSAqIDMuMS4gR1BJTzYyIGlzIGxvdwogCQkgKiBBc3N1bWluZyBzeXN0ZW0gdm9sdGFnZSBmYWlsdXJlLgpAQCAtNzksNyArNzksNyBAQAogCQlyZXR1cm4gMTsKIAl9CiAKLQlpZiAod2F0Y2hkb2dfbWFnaWNfcmVhZCgpICE9IENGR19XQVRDSERPR19NQUdJQykgeworCWlmICh3YXRjaGRvZ19tYWdpY19yZWFkKCkgIT0gQ09ORklHX1NZU19XQVRDSERPR19NQUdJQykgewogCQkvKiAzLjIuIFNjcmF0Y2ggcmVnaXN0ZXIgMSBkaWZmZXJzIGZyb20gbWFnaWMgdmFsdWUgMHgxMjQ4eHh4eAogCQkgKiBBc3N1bWluZyBQb3dlck9uCiAJCSAqLwpAQCAtODgsMTggKzg4LDE4IEBACiAJCXVsb25nIHRpbWU7CiAKIAkJLyogMy4yLjEuIFNldCBtYWdpYyB2YWx1ZSB0byBzY3JhdGNoIHJlZ2lzdGVyICovCi0JCXdhdGNoZG9nX21hZ2ljX3dyaXRlKENGR19XQVRDSERPR19NQUdJQyk7CisJCXdhdGNoZG9nX21hZ2ljX3dyaXRlKENPTkZJR19TWVNfV0FUQ0hET0dfTUFHSUMpOwogCiAJCWludHMgPSBkaXNhYmxlX2ludGVycnVwdHMgKCk7CiAJCS8qIDMuMi4yLiBzdHJvYmUgd2F0Y2hkb2cgb25jZSAqLwogCQlXQVRDSERPR19SRVNFVCgpOwotCQlvdXRfYmUzMigodm9pZCAqKUNGR19XQVRDSERPR19USU1FX0FERFIsIDApOworCQlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfV0FUQ0hET0dfVElNRV9BRERSLCAwKTsKIAkJLyogMy4yLjMuIHNhdmUgdGltZSBvZiBzdHJvYmUgaW4gc2NyYXRjaCByZWdpc3RlciAyICovCiAJCWJhc2UgPSBwb3N0X3RpbWVfbXMgKDApOwogCiAJCS8qIDMuMi40LiBXYWl0IGZvciAxNTAgbXMgKGVub3VnaCBmb3IgcmVzZXQgdG8gaGFwcGVuKSAqLwogCQl3aGlsZSAoKHRpbWUgPSBwb3N0X3RpbWVfbXMgKGJhc2UpKSA8IDE1MCkKLQkJCW91dF9iZTMyKCh2b2lkICopQ0ZHX1dBVENIRE9HX1RJTUVfQUREUiwgdGltZSk7CisJCQlvdXRfYmUzMigodm9pZCAqKUNPTkZJR19TWVNfV0FUQ0hET0dfVElNRV9BRERSLCB0aW1lKTsKIAkJaWYgKGludHMpCiAJCQllbmFibGVfaW50ZXJydXB0cyAoKTsKIApAQCAtMTE2LDcgKzExNiw3IEBACiAJCSAqLwogCQl1bG9uZyB0aW1lOwogCQkvKiAzLjMuMS4gU28sIHRoZSB0ZXN0IHN1Y2NlZWQsIHNhdmUgbWVhc3VyZWQgdGltZSB0byBzeXNsb2cuICovCi0JCXRpbWUgPSBpbl9iZTMyKCh2b2lkICopQ0ZHX1dBVENIRE9HX1RJTUVfQUREUik7CisJCXRpbWUgPSBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19XQVRDSERPR19USU1FX0FERFIpOwogCQlwb3N0X2xvZygiaHcgd2F0Y2hkb2cgdGltZSA6ICV1IG1zLCBwYXNzZWQgIiwgdGltZSk7CiAJCS8qIDMuMy4yLiBTZXQgc2NyYXRjaCByZWdpc3RlciAxIHRvIDB4MDAwMHh4eHggKi8KIAkJd2F0Y2hkb2dfbWFnaWNfd3JpdGUoMCk7CkBAIC0xMjUsNCArMTI1LDQgQEAKIAlyZXR1cm4gLTE7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1dBVENIRE9HICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfV0FUQ0hET0cgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvYm9hcmQvbmV0dGEvY29kZWMuYyBiL3Bvc3QvYm9hcmQvbmV0dGEvY29kZWMuYwppbmRleCAxMTVlMzMxLi5hMDk1YTkxIDEwMDY0NAotLS0gYS9wb3N0L2JvYXJkL25ldHRhL2NvZGVjLmMKKysrIGIvcG9zdC9ib2FyZC9uZXR0YS9jb2RlYy5jCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NPREVDCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ09ERUMKIAogZXh0ZXJuIGludCBib2FyZF9wb3N0X2NvZGVjKGludCBmbGFncyk7CiAKQEAgLTQyLDQgKzQyLDQgQEAKIAlyZXR1cm4gYm9hcmRfcG9zdF9jb2RlYyhmbGFncyk7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NPREVDICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ09ERUMgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvYm9hcmQvbmV0dGEvZHNwLmMgYi9wb3N0L2JvYXJkL25ldHRhL2RzcC5jCmluZGV4IGRjZWY0ZTguLjQzOGNlZDUgMTAwNjQ0Ci0tLSBhL3Bvc3QvYm9hcmQvbmV0dGEvZHNwLmMKKysrIGIvcG9zdC9ib2FyZC9uZXR0YS9kc3AuYwpAQCAtMzMsNyArMzMsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9EU1AKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9EU1AKIAogZXh0ZXJuIGludCBib2FyZF9wb3N0X2RzcChpbnQgZmxhZ3MpOwogCkBAIC00Miw0ICs0Miw0IEBACiAJcmV0dXJuIGJvYXJkX3Bvc3RfZHNwKGZsYWdzKTsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRFNQICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRFNQICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9tcGM4eHgvY2FjaGUuYyBiL3Bvc3QvY3B1L21wYzh4eC9jYWNoZS5jCmluZGV4IDM2OTY1YTEuLjA2Y2I1MDEgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L21wYzh4eC9jYWNoZS5jCisrKyBiL3Bvc3QvY3B1L21wYzh4eC9jYWNoZS5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUKIAogI2RlZmluZSBDQUNIRV9QT1NUX1NJWkUJMTAyNAogCkBAIC03NSw0ICs3NSw0IEBACiAJcmV0dXJuIHJlczsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ0FDSEUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DQUNIRSAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9jcHUvbXBjOHh4L2NhY2hlXzh4eC5TIGIvcG9zdC9jcHUvbXBjOHh4L2NhY2hlXzh4eC5TCmluZGV4IGEzZmMzOWIuLjA5N2VlZGIgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L21wYzh4eC9jYWNoZV84eHguUworKysgYi9wb3N0L2NwdS9tcGM4eHgvY2FjaGVfOHh4LlMKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDxwcGNfZGVmcy5oPgogI2luY2x1ZGUgPGFzbS9jYWNoZS5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DQUNIRQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NBQ0hFCiAKIAkudGV4dAogCkBAIC00OTAsNCArNDkwLDQgQEAKIAlibHIKIAogI2VuZGlmIC8qIENPTkZJR19NUEM4MjMgfHwgTVBDODUwIHx8IE1QQzg1NSB8fCBNUEM4NjAgKi8KLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L21wYzh4eC9ldGhlci5jIGIvcG9zdC9jcHUvbXBjOHh4L2V0aGVyLmMKaW5kZXggMmZhNWNmNC4uNTYyMmNiNyAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvbXBjOHh4L2V0aGVyLmMKKysrIGIvcG9zdC9jcHUvbXBjOHh4L2V0aGVyLmMKQEAgLTM2LDcgKzM2LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8cG9zdC5oPgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRVRIRVIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FVEhFUgogI2lmIGRlZmluZWQoQ09ORklHXzh4eCkKICNpbmNsdWRlIDxjb21tcHJvYy5oPgogI2VsaWYgZGVmaW5lZChDT05GSUdfTVBDODI2MCkKQEAgLTEyMCw3ICsxMjAsNyBAQAogCWludCBpOwogCXNjY19lbmV0X3QgKnByYW1fcHRyOwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW1tciA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAKIAlpbW1yLT5pbV9jcG0uY3Bfc2NjW3NjY19pbmRleF0uc2NjX2dzbXJsICY9CiAJCQl+KFNDQ19HU01STF9FTlIgfCBTQ0NfR1NNUkxfRU5UKTsKQEAgLTE0Myw3ICsxNDMsNyBAQAogCXJ4SWR4ID0gMDsKIAl0eElkeCA9IDA7CiAKLSNpZmRlZiBDRkdfQUxMT0NfRFBSQU0KKyNpZmRlZiBDT05GSUdfU1lTX0FMTE9DX0RQUkFNCiAJcnR4ID0gKFJUWEJEICopIChpbW1yLT5pbV9jcG0uY3BfZHBtZW0gKwogCQkJCQkgZHByYW1fYWxsb2NfYWxpZ24gKHNpemVvZiAoUlRYQkQpLCA4KSk7CiAjZWxzZQpAQCAtNDUyLDcgKzQ1Miw3IEBACiAKIHN0YXRpYyB2b2lkIHNjY19oYWx0IChpbnQgc2NjX2luZGV4KQogewotCXZvbGF0aWxlIGltbWFwX3QgKmltbXIgPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbW1yID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCiAJaW1tci0+aW1fY3BtLmNwX3NjY1tzY2NfaW5kZXhdLnNjY19nc21ybCAmPQogCQkJfihTQ0NfR1NNUkxfRU5SIHwgU0NDX0dTTVJMX0VOVCk7CkBAIC02MjQsNCArNjI0LDQgQEAKIAlyZXR1cm4gcmVzOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9FVEhFUiAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0VUSEVSICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9tcGM4eHgvc3ByLmMgYi9wb3N0L2NwdS9tcGM4eHgvc3ByLmMKaW5kZXggODNmMDRkYS4uZGI4NGRiZSAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvbXBjOHh4L3Nwci5jCisrKyBiL3Bvc3QvY3B1L21wYzh4eC9zcHIuYwpAQCAtMzUsNyArMzUsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUFIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUFIKIAogc3RhdGljIHN0cnVjdAogewpAQCAtODAsNyArODAsNyBAQAogCXsxNTksCSJCQVIiLAkJMHgwMDAwMDAwMCwJMHgwMDAwMDAwMH0sCiAJezYzMCwJIkRQRFIiLAkJMHgwMDAwMDAwMCwJMHgwMDAwMDAwMH0sCiAJezYzMSwJIkRQSVIiLAkJMHgwMDAwMDAwMCwJMHgwMDAwMDAwMH0sCi0JezYzOCwJIklNTVIiLAkJMHhGRkZGMDAwMCwJQ0ZHX0lNTVIgIH0sCisJezYzOCwJIklNTVIiLAkJMHhGRkZGMDAwMCwJQ09ORklHX1NZU19JTU1SICB9LAogCXs1NjAsCSJJQ19DU1QiLAkweDhFMzgwMDAwLAkweDAwMDAwMDAwfSwKIAl7NTYxLAkiSUNfQURSIiwJMHgwMDAwMDAwMCwJMHgwMDAwMDAwMH0sCiAJezU2MiwJIklDX0RBVCIsCTB4MDAwMDAwMDAsCTB4MDAwMDAwMDB9LApAQCAtMTQ2LDQgKzE0Niw0IEBACiAKIAlyZXR1cm4gcmV0OwogfQotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfU1BSICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfU1BSICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9tcGM4eHgvdWFydC5jIGIvcG9zdC9jcHUvbXBjOHh4L3VhcnQuYwppbmRleCA2MzVkZWJlLi5mMzUxYWMwIDEwMDY0NAotLS0gYS9wb3N0L2NwdS9tcGM4eHgvdWFydC5jCisrKyBiL3Bvc3QvY3B1L21wYzh4eC91YXJ0LmMKQEAgLTM3LDcgKzM3LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8cG9zdC5oPgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfVUFSVAorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1VBUlQKICNpZiBkZWZpbmVkKENPTkZJR184eHgpCiAjaW5jbHVkZSA8Y29tbXByb2MuaD4KICNlbGlmIGRlZmluZWQoQ09ORklHX01QQzgyNjApCkBAIC04NCw3ICs4NCw3IEBACiB7CiAJc3RhdGljIGludCBjcG1fY3JfY2hbXSA9IHsgQ1BNX0NSX0NIX1NNQzEsIENQTV9DUl9DSF9TTUMyIH07CiAKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIHNtY190ICpzcDsKIAl2b2xhdGlsZSBzbWNfdWFydF90ICp1cDsKIAl2b2xhdGlsZSBjYmRfdCAqdGJkZiwgKnJiZGY7CkBAIC0xMDUsMTUgKzEwNSwxNSBAQAogCWltLT5pbV9zaXVfY29uZi5zY19zZGNyID0gMTsKIAogCS8qIGNsZWFyIGVycm9yIGNvbmRpdGlvbnMgKi8KLSNpZmRlZglDRkdfU0RTUgotCWltLT5pbV9zZG1hLnNkbWFfc2RzciA9IENGR19TRFNSOworI2lmZGVmCUNPTkZJR19TWVNfU0RTUgorCWltLT5pbV9zZG1hLnNkbWFfc2RzciA9IENPTkZJR19TWVNfU0RTUjsKICNlbHNlCiAJaW0tPmltX3NkbWEuc2RtYV9zZHNyID0gMHg4MzsKICNlbmRpZgogCiAJLyogY2xlYXIgU0RNQSBpbnRlcnJ1cHQgbWFzayAqLwotI2lmZGVmCUNGR19TRE1SCi0JaW0tPmltX3NkbWEuc2RtYV9zZG1yID0gQ0ZHX1NETVI7CisjaWZkZWYJQ09ORklHX1NZU19TRE1SCisJaW0tPmltX3NkbWEuc2RtYV9zZG1yID0gQ09ORklHX1NZU19TRE1SOwogI2Vsc2UKIAlpbS0+aW1fc2RtYS5zZG1hX3NkbXIgPSAweDAwOwogI2VuZGlmCkBAIC0xMzMsNyArMTMzLDcgQEAKIAkgKiB0aGUgYnVmZmVyIGRlc2NyaXB0b3JzLgogCSAqLwogCi0jaWZkZWYgQ0ZHX0FMTE9DX0RQUkFNCisjaWZkZWYgQ09ORklHX1NZU19BTExPQ19EUFJBTQogCWRwYWRkciA9IGRwcmFtX2FsbG9jX2FsaWduIChzaXplb2YgKGNiZF90KSAqIDIgKyAyLCA4KTsKICNlbHNlCiAJZHBhZGRyID0gQ1BNX1BPU1RfQkFTRTsKQEAgLTIxOCw3ICsyMTgsNyBAQAogCXZvbGF0aWxlIGNiZF90ICp0YmRmOwogCXZvbGF0aWxlIGNoYXIgKmJ1ZjsKIAl2b2xhdGlsZSBzbWNfdWFydF90ICp1cDsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogCXVwID0gKHNtY191YXJ0X3QgKikgJiBjcG1wLT5jcF9kcGFyYW1bcHJvZmZfc21jW3NtY19pbmRleF1dOwpAQCAtMjUwLDcgKzI1MCw3IEBACiAJdm9sYXRpbGUgY2JkX3QgKnJiZGY7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqYnVmOwogCXZvbGF0aWxlIHNtY191YXJ0X3QgKnVwOwotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwbXAgPSAmKGltLT5pbV9jcG0pOwogCXVuc2lnbmVkIGNoYXIgYzsKIAlpbnQgaTsKQEAgLTI5Myw3ICsyOTMsNyBAQAogCQlDUE1fQ1JfQ0hfU0NDNCwKIAl9OwogCi0Jdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDRkdfSU1NUjsKKwl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENPTkZJR19TWVNfSU1NUjsKIAl2b2xhdGlsZSBzY2NfdCAqc3A7CiAJdm9sYXRpbGUgc2NjX3VhcnRfdCAqdXA7CiAJdm9sYXRpbGUgY2JkX3QgKnRiZGYsICpyYmRmOwpAQCAtMzEzLDcgKzMxMyw3IEBACiAJLyogQWxsb2NhdGUgc3BhY2UgZm9yIHR3byBidWZmZXIgZGVzY3JpcHRvcnMgaW4gdGhlIERQIHJhbS4KIAkgKi8KIAotI2lmZGVmIENGR19BTExPQ19EUFJBTQorI2lmZGVmIENPTkZJR19TWVNfQUxMT0NfRFBSQU0KIAlkcGFkZHIgPSBkcHJhbV9hbGxvY19hbGlnbiAoc2l6ZW9mIChjYmRfdCkgKiAyICsgMiwgOCk7CiAjZWxzZQogCWRwYWRkciA9IENQTV9QT1NUX0JBU0U7CkBAIC00MjAsNyArNDIwLDcgQEAKIAogc3RhdGljIHZvaWQgc2NjX2hhbHQoaW50IHNjY19pbmRleCkKIHsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW0tPmltX2NwbSk7CiAJdm9sYXRpbGUgc2NjX3QgKnNwID0gKHNjY190ICopICYgKGNwLT5jcF9zY2Nbc2NjX2luZGV4XSk7CiAKQEAgLTQzMiw3ICs0MzIsNyBAQAogCXZvbGF0aWxlIGNiZF90ICp0YmRmOwogCXZvbGF0aWxlIGNoYXIgKmJ1ZjsKIAl2b2xhdGlsZSBzY2NfdWFydF90ICp1cDsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcG1wID0gJihpbS0+aW1fY3BtKTsKIAogCXVwID0gKHNjY191YXJ0X3QgKikgJiBjcG1wLT5jcF9kcGFyYW1bcHJvZmZfc2NjW3NjY19pbmRleF1dOwpAQCAtNDY0LDcgKzQ2NCw3IEBACiAJdm9sYXRpbGUgY2JkX3QgKnJiZGY7CiAJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqYnVmOwogCXZvbGF0aWxlIHNjY191YXJ0X3QgKnVwOwotCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ0ZHX0lNTVI7CisJdm9sYXRpbGUgaW1tYXBfdCAqaW0gPSAoaW1tYXBfdCAqKSBDT05GSUdfU1lTX0lNTVI7CiAJdm9sYXRpbGUgY3BtOHh4X3QgKmNwbXAgPSAmKGltLT5pbV9jcG0pOwogCXVuc2lnbmVkIGNoYXIgYzsKIAlpbnQgaTsKQEAgLTU1Myw0ICs1NTMsNCBAQAogCXJldHVybiByZXM7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1VBUlQgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VQVJUICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9tcGM4eHgvdXNiLmMgYi9wb3N0L2NwdS9tcGM4eHgvdXNiLmMKaW5kZXggNTg3Nzk4MS4uZTNmZTA3NSAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvbXBjOHh4L3VzYi5jCisrKyBiL3Bvc3QvY3B1L21wYzh4eC91c2IuYwpAQCAtMzYsNyArMzYsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VU0IKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VU0IKIAogI2luY2x1ZGUgPGNvbW1wcm9jLmg+CiAjaW5jbHVkZSA8Y29tbWFuZC5oPgpAQCAtMTA1LDcgKzEwNSw3IEBACiBpbnQgdXNiX3Bvc3RfdGVzdCAoaW50IGZsYWdzKQogewogCWludCByZXMgPSAtMTsKLQl2b2xhdGlsZSBpbW1hcF90ICppbSA9IChpbW1hcF90ICopIENGR19JTU1SOworCXZvbGF0aWxlIGltbWFwX3QgKmltID0gKGltbWFwX3QgKikgQ09ORklHX1NZU19JTU1SOwogCXZvbGF0aWxlIGNwbTh4eF90ICpjcCA9ICYoaW0tPmltX2NwbSk7CiAJdm9sYXRpbGUgdXNiX3BhcmFtX3QgKnByYW1fcHRyOwogCXVpbnQgZHByYW07CkBAIC0yNjIsNCArMjYyLDQgQEAKIAlyZXR1cm4gcmVzOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VU0IgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VU0IgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L21wYzh4eC93YXRjaGRvZy5jIGIvcG9zdC9jcHUvbXBjOHh4L3dhdGNoZG9nLmMKaW5kZXggZjk0MTU4YS4uZGExOTFjMiAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvbXBjOHh4L3dhdGNoZG9nLmMKKysrIGIvcG9zdC9jcHUvbXBjOHh4L3dhdGNoZG9nLmMKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfV0FUQ0hET0cKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRwogCiBzdGF0aWMgdWxvbmcgZ2V0dGJsICh2b2lkKQogewpAQCAtNzIsNCArNzIsNCBAQAogCX0KIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfV0FUQ0hET0cgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9XQVRDSERPRyAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9jcHUvcHBjNHh4L2NhY2hlLmMgYi9wb3N0L2NwdS9wcGM0eHgvY2FjaGUuYwppbmRleCBiZTZhMmJmLi40ODJmODE5IDEwMDY0NAotLS0gYS9wb3N0L2NwdS9wcGM0eHgvY2FjaGUuYworKysgYi9wb3N0L2NwdS9wcGM0eHgvY2FjaGUuYwpAQCAtMzMsNyArMzMsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DQUNIRQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NBQ0hFCiAKICNpbmNsdWRlIDxhc20vbW11Lmg+CiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KQEAgLTU0LDcgKzU0LDcgQEAKIAogaW50IGNhY2hlX3Bvc3RfdGVzdCAoaW50IGZsYWdzKQogewotCXZvaWQgKnZpcnQgPSAodm9pZCAqKUNGR19QT1NUX0NBQ0hFX0FERFI7CisJdm9pZCAqdmlydCA9ICh2b2lkICopQ09ORklHX1NZU19QT1NUX0NBQ0hFX0FERFI7CiAJaW50IGludHM7CiAJaW50IHJlcyA9IDA7CiAJaW50IHRsYiA9IC0xOwkJLyogaW5kZXggdG8gdGhlIHZpY3RpbSBUTEIgZW50cnkgKi8KQEAgLTExOSw0ICsxMTksNCBAQAogCXJldHVybiByZXM7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L3BwYzR4eC9jYWNoZV80eHguUyBiL3Bvc3QvY3B1L3BwYzR4eC9jYWNoZV80eHguUwppbmRleCA0NTVmZmEwLi4zZjNlNTg1IDEwMDY0NAotLS0gYS9wb3N0L2NwdS9wcGM0eHgvY2FjaGVfNHh4LlMKKysrIGIvcG9zdC9jcHUvcHBjNHh4L2NhY2hlXzR4eC5TCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAjaW5jbHVkZSA8YXNtL21tdS5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DQUNIRQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NBQ0hFCiAKIAkudGV4dAogCkBAIC0xMTUsOCArMTE1LDggQEAKICAqLwogY2FjaGVfcG9zdF9kaW52YWxpZGF0ZToKIAlkY2JpCXIwLCByMwotCWFkZGkJcjMsIHIzLCBDRkdfQ0FDSEVMSU5FX1NJWkUKLQlzdWJpYy4JcjQsIHI0LCBDRkdfQ0FDSEVMSU5FX1NJWkUKKwlhZGRpCXIzLCByMywgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQorCXN1YmljLglyNCwgcjQsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKIAliZ3QJY2FjaGVfcG9zdF9kaW52YWxpZGF0ZQogCXN5bmMKIAlibHIKQEAgLTEyNSw4ICsxMjUsOCBAQAogICovCiBjYWNoZV9wb3N0X2RzdG9yZToKIAlkY2JzdAlyMCwgcjMKLQlhZGRpCXIzLCByMywgQ0ZHX0NBQ0hFTElORV9TSVpFCi0Jc3ViaWMuCXI0LCByNCwgQ0ZHX0NBQ0hFTElORV9TSVpFCisJYWRkaQlyMywgcjMsIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUKKwlzdWJpYy4JcjQsIHI0LCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCiAJYmd0CWNhY2hlX3Bvc3RfZHN0b3JlCiAJc3luYwogCWJscgpAQCAtMTM1LDggKzEzNSw4IEBACiAgKi8KIGNhY2hlX3Bvc3RfZHRvdWNoOgogCWRjYnQJcjAsIHIzCi0JYWRkaQlyMywgcjMsIENGR19DQUNIRUxJTkVfU0laRQotCXN1YmljLglyNCwgcjQsIENGR19DQUNIRUxJTkVfU0laRQorCWFkZGkJcjMsIHIzLCBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFCisJc3ViaWMuCXI0LCByNCwgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRQogCWJndAljYWNoZV9wb3N0X2R0b3VjaAogCXN5bmMKIAlibHIKQEAgLTQ4Niw0ICs0ODYsNCBAQAogCWxpCXIzLCAtMQogCWJscgogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DQUNIRSAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NBQ0hFICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9wcGM0eHgvZGVuYWxpX2VjYy5jIGIvcG9zdC9jcHUvcHBjNHh4L2RlbmFsaV9lY2MuYwppbmRleCAxMmExYmJmLi42YWIxNTkzIDEwMDY0NAotLS0gYS9wb3N0L2NwdS9wcGM0eHgvZGVuYWxpX2VjYy5jCisrKyBiL3Bvc3QvY3B1L3BwYzR4eC9kZW5hbGlfZWNjLmMKQEAgLTM1LDcgKzM1LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRUNDCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRUNDCiAKIC8qCiAgKiBNRU1PUlkgRUNDIHRlc3QKQEAgLTI2Nyw1ICsyNjcsNSBAQAogCWRlYnVnKCJlY2NfcG9zdF90ZXN0KCkgcmV0dXJuaW5nICVkXG4iLCByZXQpOwogCXJldHVybiByZXQ7CiB9Ci0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9FQ0MgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FQ0MgKi8KICNlbmRpZiAvKiBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L3BwYzR4eC9ldGhlci5jIGIvcG9zdC9jcHUvcHBjNHh4L2V0aGVyLmMKaW5kZXggY2NiZmNmOS4uZTQwZTE5YiAxMDA2NDQKLS0tIGEvcG9zdC9jcHUvcHBjNHh4L2V0aGVyLmMKKysrIGIvcG9zdC9jcHUvcHBjNHh4L2V0aGVyLmMKQEAgLTM5LDcgKzM5LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRVRIRVIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FVEhFUgogCiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0yMDksNyArMjA5LDcgQEAKIAltdGRjciAobWFscnhjYXNyLCAoTUFMX1RYUlhfQ0FTUiA+PiBkZXZudW0pKTsKIAogCS8qIHNldCBpbnRlcm5hbCBsb29wYmFjayBtb2RlICovCi0jaWZkZWYgQ0ZHX1BPU1RfRVRIRVJfRVhUX0xPT1BCQUNLCisjaWZkZWYgQ09ORklHX1NZU19QT1NUX0VUSEVSX0VYVF9MT09QQkFDSwogCW91dF9iZTMyICgodm9pZCopKEVNQUNfTTEgKyBod19hZGRyKSwgRU1BQ19NMV9GREUgfCAwIHwKIAkJICBFTUFDX00xX1JGU180SyB8IEVNQUNfTTFfVFhfRklGT18ySyB8CiAJCSAgRU1BQ19NMV9NRl8xMDBNQlBTIHwgRU1BQ19NMV9JU1QgfApAQCAtNDA2LDggKzQwNiw4IEBACiAJaW50IGk7CiAKIAkvKiBBbGxvY2F0ZSB0eCAmIHJ4IHBhY2tldCBidWZmZXJzICovCi0JdHhfYnVmID0gbWFsbG9jIChQS1RTSVpFX0FMSUdOICsgQ0ZHX0NBQ0hFTElORV9TSVpFKTsKLQlyeF9idWYgPSBtYWxsb2MgKFBLVFNJWkVfQUxJR04gKyBDRkdfQ0FDSEVMSU5FX1NJWkUpOworCXR4X2J1ZiA9IG1hbGxvYyAoUEtUU0laRV9BTElHTiArIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpOworCXJ4X2J1ZiA9IG1hbGxvYyAoUEtUU0laRV9BTElHTiArIENPTkZJR19TWVNfQ0FDSEVMSU5FX1NJWkUpOwogCiAJaWYgKCF0eF9idWYgfHwgIXJ4X2J1ZikgewogCQlwcmludGYgKCJGYWlsZWQgdG8gYWxsb2NhdGUgcGFja2V0IGJ1ZmZlcnNcbiIpOwpAQCAtNDI3LDQgKzQyNyw0IEBACiAJcmV0dXJuIHJlczsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRVRIRVIgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FVEhFUiAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9jcHUvcHBjNHh4L29jbS5jIGIvcG9zdC9jcHUvcHBjNHh4L29jbS5jCmluZGV4IDg4YWE5M2UuLjU4NGUzMGMgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L3BwYzR4eC9vY20uYworKysgYi9wb3N0L2NwdS9wcGM0eHgvb2NtLmMKQEAgLTM4LDE5ICszOCwxOSBAQAogI2RlZmluZSBPQ01fVEVTVF9QQVRURVJOMQkweDU1NTU1NTU1CiAjZGVmaW5lIE9DTV9URVNUX1BBVFRFUk4yCTB4QUFBQUFBQUEKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfT0NNCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfT0NNCiAKIHN0YXRpYyB1aW50IG9jbV9zdGF0dXNfcmVhZCh2b2lkKQogewotCXJldHVybiBpbl9iZTMyKCh2b2lkICopQ0ZHX09DTV9TVEFUVVNfQUREUikgJgotCQlDRkdfT0NNX1NUQVRVU19NQVNLOworCXJldHVybiBpbl9iZTMyKCh2b2lkICopQ09ORklHX1NZU19PQ01fU1RBVFVTX0FERFIpICYKKwkJQ09ORklHX1NZU19PQ01fU1RBVFVTX01BU0s7CiB9CiAKIHN0YXRpYyB2b2lkIG9jbV9zdGF0dXNfd3JpdGUodWludCB2YWx1ZSkKIHsKLQlvdXRfYmUzMigodm9pZCAqKUNGR19PQ01fU1RBVFVTX0FERFIsIHZhbHVlIHwKLQkJKGluX2JlMzIoKHZvaWQgKilDRkdfT0NNX1NUQVRVU19BRERSKSAmCi0JCQl+Q0ZHX09DTV9TVEFUVVNfTUFTSykpOworCW91dF9iZTMyKCh2b2lkICopQ09ORklHX1NZU19PQ01fU1RBVFVTX0FERFIsIHZhbHVlIHwKKwkJKGluX2JlMzIoKHZvaWQgKilDT05GSUdfU1lTX09DTV9TVEFUVVNfQUREUikgJgorCQkJfkNPTkZJR19TWVNfT0NNX1NUQVRVU19NQVNLKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IG9jbV90ZXN0X3dvcmQodWludCB2YWx1ZSwgdWludCAqYWRkcmVzcykKQEAgLTY4LDExICs2OCwxMSBAQAogewogCXVpbnQgICBvbGRfdmFsdWU7CiAJaW50ICAgIHJldCA9IDA7Ci0JdWludCAgKmFkZHJlc3MgPSAodWludCopQ0ZHX09DTV9CQVNFOworCXVpbnQgICphZGRyZXNzID0gKHVpbnQqKUNPTkZJR19TWVNfT0NNX0JBU0U7CiAKLQlpZiAob2NtX3N0YXR1c19yZWFkKCkgPT0gQ0ZHX09DTV9TVEFUVVNfT0spCisJaWYgKG9jbV9zdGF0dXNfcmVhZCgpID09IENPTkZJR19TWVNfT0NNX1NUQVRVU19PSykKIAkJcmV0dXJuIDA7Ci0JZm9yICg7IGFkZHJlc3MgPCAodWludCopKENGR19PQ01fQkFTRSArIENGR19PQ01fU0laRSk7IGFkZHJlc3MrKykgeworCWZvciAoOyBhZGRyZXNzIDwgKHVpbnQqKShDT05GSUdfU1lTX09DTV9CQVNFICsgQ09ORklHX1NZU19PQ01fU0laRSk7IGFkZHJlc3MrKykgewogCQlvbGRfdmFsdWUgPSAqYWRkcmVzczsKIAkJaWYgKG9jbV90ZXN0X3dvcmQoT0NNX1RFU1RfUEFUVEVSTjEsIGFkZHJlc3MpIHx8CiAJCQkJb2NtX3Rlc3Rfd29yZChPQ01fVEVTVF9QQVRURVJOMiwgYWRkcmVzcykpIHsKQEAgLTgzLDcgKzgzLDcgQEAKIAkJfQogCQkqYWRkcmVzcyA9IG9sZF92YWx1ZTsKIAl9Ci0Jb2NtX3N0YXR1c193cml0ZShyZXQgPyBDRkdfT0NNX1NUQVRVU19GQUlMIDogQ0ZHX09DTV9TVEFUVVNfT0spOworCW9jbV9zdGF0dXNfd3JpdGUocmV0ID8gQ09ORklHX1NZU19PQ01fU1RBVFVTX0ZBSUwgOiBDT05GSUdfU1lTX09DTV9TVEFUVVNfT0spOwogCXJldHVybiByZXQ7CiB9Ci0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9PQ00gKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9PQ00gKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L3BwYzR4eC9zcHIuYyBiL3Bvc3QvY3B1L3BwYzR4eC9zcHIuYwppbmRleCAxMTBkZjZlLi5lY2I4N2I1IDEwMDY0NAotLS0gYS9wb3N0L2NwdS9wcGM0eHgvc3ByLmMKKysrIGIvcG9zdC9jcHUvcHBjNHh4L3Nwci5jCkBAIC0zNyw3ICszNyw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1NQUgorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1NQUgogCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogCkBAIC0xOTgsNCArMTk4LDQgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUFIgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUFIgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvY3B1L3BwYzR4eC91YXJ0LmMgYi9wb3N0L2NwdS9wcGM0eHgvdWFydC5jCmluZGV4IDFhNTdjM2QuLjg0YTRkMGEgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L3BwYzR4eC91YXJ0LmMKKysrIGIvcG9zdC9jcHUvcHBjNHh4L3VhcnQuYwpAQCAtMzQsMTQgKzM0LDE0IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1VBUlQKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VQVJUCiAKIC8qCiAgKiBUaGlzIHRhYmxlIGRlZmluZXMgdGhlIFVBUlQncyB0aGF0IHNob3VsZCBiZSB0ZXN0ZWQgYW5kIGNhbgogICogYmUgb3ZlcnJpZGRlbiBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUKICAqLwotI2lmbmRlZiBDRkdfUE9TVF9VQVJUX1RBQkxFCi0jZGVmaW5lIENGR19QT1NUX1VBUlRfVEFCTEUJe1VBUlQwX0JBU0UsIFVBUlQxX0JBU0UsIFVBUlQyX0JBU0UsIFVBUlQzX0JBU0V9CisjaWZuZGVmIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCisjZGVmaW5lIENPTkZJR19TWVNfUE9TVF9VQVJUX1RBQkxFCXtVQVJUMF9CQVNFLCBVQVJUMV9CQVNFLCBVQVJUMl9CQVNFLCBVQVJUM19CQVNFfQogI2VuZGlmCiAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CkBAIC01MCwxNyArNTAsMTcgQEAKICNpZiBkZWZpbmVkKENPTkZJR180NDApCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwRVApIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSKSB8fCBcCiAgICAgZGVmaW5lZChDT05GSUdfNDQwRVBYKSB8fCBkZWZpbmVkKENPTkZJR180NDBHUlgpCi0jZGVmaW5lIFVBUlQwX0JBU0UgIENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMzAwCi0jZGVmaW5lIFVBUlQxX0JBU0UgIENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNDAwCi0jZGVmaW5lIFVBUlQyX0JBU0UgIENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNTAwCi0jZGVmaW5lIFVBUlQzX0JBU0UgIENGR19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNjAwCisjZGVmaW5lIFVBUlQwX0JBU0UgIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDMwMAorI2RlZmluZSBVQVJUMV9CQVNFICBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA0MDAKKyNkZWZpbmUgVUFSVDJfQkFTRSAgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwNTAwCisjZGVmaW5lIFVBUlQzX0JBU0UgIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDYwMAogI2Vsc2UKLSNkZWZpbmUgVUFSVDBfQkFTRSAgQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAyMDAKLSNkZWZpbmUgVUFSVDFfQkFTRSAgQ0ZHX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDAzMDAKKyNkZWZpbmUgVUFSVDBfQkFTRSAgQ09ORklHX1NZU19QRVJJUEhFUkFMX0JBU0UgKyAweDAwMDAwMjAwCisjZGVmaW5lIFVBUlQxX0JBU0UgIENPTkZJR19TWVNfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDMwMAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR180NDBTUCkgfHwgZGVmaW5lZChDT05GSUdfNDQwU1BFKQotI2RlZmluZSBVQVJUMl9CQVNFICBDRkdfUEVSSVBIRVJBTF9CQVNFICsgMHgwMDAwMDYwMAorI2RlZmluZSBVQVJUMl9CQVNFICBDT05GSUdfU1lTX1BFUklQSEVSQUxfQkFTRSArIDB4MDAwMDA2MDAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwR1ApCkBAIC0xNDcsNyArMTQ3LDcgQEAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCiAjaWYgZGVmaW5lZChDT05GSUdfNDQwKSB8fCBkZWZpbmVkKENPTkZJR180MDVFWCkKLSNpZiAhZGVmaW5lZChDRkdfRVhUX1NFUklBTF9DTE9DSykKKyNpZiAhZGVmaW5lZChDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0spCiBzdGF0aWMgdm9pZCBzZXJpYWxfZGl2cyAoaW50IGJhdWRyYXRlLCB1bnNpZ25lZCBsb25nICpwdWRpdiwKIAkJCSB1bnNpZ25lZCBzaG9ydCAqcGJkaXYpCiB7CkBAIC0xOTYsNyArMTk2LDcgQEAKIAl1bnNpZ25lZCBsb25nIHVkaXY7CiAJdW5zaWduZWQgc2hvcnQgYmRpdjsKIAl2b2xhdGlsZSBjaGFyIHZhbDsKLSNpZmRlZiBDRkdfRVhUX1NFUklBTF9DTE9DSworI2lmZGVmIENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSwogCXVuc2lnbmVkIGxvbmcgdG1wOwogI2VuZGlmCiAJaW50IGk7CkBAIC0yMDksMTEgKzIwOSwxMSBAQAogCU1GUkVHKFVBUlQwX1NEUiwgcmVnKTsKIAlyZWcgJj0gfkNSMF9NQVNLOwogCi0jaWZkZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKKyNpZmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKIAlyZWcgfD0gQ1IwX0VYVENMS19FTkE7CiAJdWRpdiA9IDE7CiAJdG1wICA9IGdkLT5iYXVkcmF0ZSAqIDE2OwotCWJkaXYgPSAoQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sgKyB0bXAgLyAyKSAvIHRtcDsKKwliZGl2ID0gKENPTkZJR19TWVNfRVhUX1NFUklBTF9DTE9DSyArIHRtcCAvIDIpIC8gdG1wOwogI2Vsc2UKIAkvKiBGb3IgNDQwLCB0aGUgY3B1IGNsb2NrIGlzIG9uIGRpdmlkZXIgY2hhaW4gQSwgVUFSVCBvbiBkaXZpZGVyCiAJICogY2hhaW4gQiAuLi4gc28gY3B1IGNsb2NrIGlzIGlycmVsZXZhbnQuIEdldCB0aGUgIm9wdGltaXplZCIKQEAgLTI3OCw3ICsyNzgsNyBAQAogI2lmZGVmIENPTkZJR180MDVFUAogCXJlZyA9IG1mZGNyKGNwYzBfdWNyKSAmIH4oVUNSMF9NQVNLIHwgVUNSMV9NQVNLKTsKIAljbGsgPSBnZC0+Y3B1X2NsazsKLQl0bXAgPSBDRkdfQkFTRV9CQVVEICogMTY7CisJdG1wID0gQ09ORklHX1NZU19CQVNFX0JBVUQgKiAxNjsKIAl1ZGl2ID0gKGNsayArIHRtcCAvIDIpIC8gdG1wOwogCWlmICh1ZGl2ID4gVURJVl9NQVgpICAgICAgICAgICAgICAgICAgICAvKiBtYXguIG4gYml0cyBmb3IgdWRpdiAqLwogCQl1ZGl2ID0gVURJVl9NQVg7CkBAIC0yODcsMTYgKzI4NywxNiBAQAogCW10ZGNyIChjcGMwX3VjciwgcmVnKTsKICNlbHNlIC8qIENPTkZJR180MDVFUCAqLwogCXJlZyA9IG1mZGNyKGNudHJsMCkgJiB+Q1IwX01BU0s7Ci0jaWZkZWYgQ0ZHX0VYVF9TRVJJQUxfQ0xPQ0sKLQljbGsgPSBDRkdfRVhUX1NFUklBTF9DTE9DSzsKKyNpZmRlZiBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0sKKwljbGsgPSBDT05GSUdfU1lTX0VYVF9TRVJJQUxfQ0xPQ0s7CiAJdWRpdiA9IDE7CiAJcmVnIHw9IENSMF9FWFRDTEtfRU5BOwogI2Vsc2UKIAljbGsgPSBnZC0+Y3B1X2NsazsKLSNpZmRlZiBDRkdfNDA1X1VBUlRfRVJSQVRBXzU5CisjaWZkZWYgQ09ORklHX1NZU180MDVfVUFSVF9FUlJBVEFfNTkKIAl1ZGl2ID0gMzE7CQkJLyogRXJyYXRhIDU5OiBzdHVjayBhdCAzMSAqLwogI2Vsc2UKLQl0bXAgPSBDRkdfQkFTRV9CQVVEICogMTY7CisJdG1wID0gQ09ORklHX1NZU19CQVNFX0JBVUQgKiAxNjsKIAl1ZGl2ID0gKGNsayArIHRtcCAvIDIpIC8gdG1wOwogCWlmICh1ZGl2ID4gVURJVl9NQVgpICAgICAgICAgICAgICAgICAgICAvKiBtYXguIG4gYml0cyBmb3IgdWRpdiAqLwogCQl1ZGl2ID0gVURJVl9NQVg7CkBAIC0zNzUsNyArMzc1LDcgQEAKIGludCB1YXJ0X3Bvc3RfdGVzdCAoaW50IGZsYWdzKQogewogCWludCBpLCByZXMgPSAwOwotCXN0YXRpYyB1bnNpZ25lZCBsb25nIGJhc2VbXSA9IENGR19QT1NUX1VBUlRfVEFCTEU7CisJc3RhdGljIHVuc2lnbmVkIGxvbmcgYmFzZVtdID0gQ09ORklHX1NZU19QT1NUX1VBUlRfVEFCTEU7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mIChiYXNlKSAvIHNpemVvZiAoYmFzZVswXSk7IGkrKykgewogCQlpZiAodGVzdF9jdGxyIChiYXNlW2ldLCBpKSkKQEAgLTM4Niw0ICszODYsNCBAQAogCXJldHVybiByZXM7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1VBUlQgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VQVJUICovCmRpZmYgLS1naXQgYS9wb3N0L2NwdS9wcGM0eHgvd2F0Y2hkb2cuYyBiL3Bvc3QvY3B1L3BwYzR4eC93YXRjaGRvZy5jCmluZGV4IDdmZGVjYjQuLjIyMWFkZmMgMTAwNjQ0Ci0tLSBhL3Bvc3QvY3B1L3BwYzR4eC93YXRjaGRvZy5jCisrKyBiL3Bvc3QvY3B1L3BwYzR4eC93YXRjaGRvZy5jCkBAIC0zNyw3ICszNyw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1dBVENIRE9HCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfV0FUQ0hET0cKIAogI2luY2x1ZGUgPHdhdGNoZG9nLmg+CiAKQEAgLTY1LDQgKzY1LDQgQEAKIAl9CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1dBVENIRE9HICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfV0FUQ0hET0cgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvZHJpdmVycy9pMmMuYyBiL3Bvc3QvZHJpdmVycy9pMmMuYwppbmRleCBmNTRmZTk5Li5iMTUyZGVhIDEwMDY0NAotLS0gYS9wb3N0L2RyaXZlcnMvaTJjLmMKKysrIGIvcG9zdC9kcml2ZXJzL2kyYy5jCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgPGkyYy5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9JMkMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9JMkMKIAogaW50IGkyY19wb3N0X3Rlc3QgKGludCBmbGFncykKIHsKQEAgLTg4LDQgKzg4LDQgQEAKICNlbmRpZgogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9JMkMgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9JMkMgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvZHJpdmVycy9tZW1vcnkuYyBiL3Bvc3QvZHJpdmVycy9tZW1vcnkuYwppbmRleCBlMzIwMjBmLi4wMDYyMzYwIDEwMDY0NAotLS0gYS9wb3N0L2RyaXZlcnMvbWVtb3J5LmMKKysrIGIvcG9zdC9kcml2ZXJzL21lbW9yeS5jCkBAIC0xNTMsNyArMTUzLDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSA8d2F0Y2hkb2cuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfTUVNT1JZCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfTUVNT1JZCiAKIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOwogCkBAIC00NjAsMTEgKzQ2MCwxMSBAQAogCQkJCSAyNTYgPDwgMjAgOiBiZC0+YmlfbWVtc2l6ZSkgLSAoMSA8PCAyMCk7CiAKIAkvKiBMaW1pdCBhcmVhIHRvIGJlIHRlc3RlZCB3aXRoIHRoZSBib2FyZCBpbmZvIHN0cnVjdCAqLwotCWlmIChDRkdfU0RSQU1fQkFTRSArIG1lbXNpemUgPiAodWxvbmcpYmQpCi0JCW1lbXNpemUgPSAodWxvbmcpYmQgLSBDRkdfU0RSQU1fQkFTRTsKKwlpZiAoQ09ORklHX1NZU19TRFJBTV9CQVNFICsgbWVtc2l6ZSA+ICh1bG9uZyliZCkKKwkJbWVtc2l6ZSA9ICh1bG9uZyliZCAtIENPTkZJR19TWVNfU0RSQU1fQkFTRTsKIAogCWlmIChmbGFncyAmIFBPU1RfU0xPV1RFU1QpIHsKLQkJcmV0ID0gbWVtb3J5X3Bvc3RfdGVzdHMgKENGR19TRFJBTV9CQVNFLCBtZW1zaXplKTsKKwkJcmV0ID0gbWVtb3J5X3Bvc3RfdGVzdHMgKENPTkZJR19TWVNfU0RSQU1fQkFTRSwgbWVtc2l6ZSk7CiAJfSBlbHNlIHsJCQkvKiBQT1NUX05PUk1BTCAqLwogCiAJCXVuc2lnbmVkIGxvbmcgaTsKQEAgLTQ4MCw0ICs0ODAsNCBAQAogCXJldHVybiByZXQ7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX01FTU9SWSAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX01FTU9SWSAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9kcml2ZXJzL3J0Yy5jIGIvcG9zdC9kcml2ZXJzL3J0Yy5jCmluZGV4IDY2ZTUyNjUuLjhiMGY0NjMgMTAwNjQ0Ci0tLSBhL3Bvc3QvZHJpdmVycy9ydGMuYworKysgYi9wb3N0L2RyaXZlcnMvcnRjLmMKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSA8cnRjLmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1JUQworI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX1JUQwogCiBzdGF0aWMgaW50IHJ0Y19wb3N0X3NraXAgKHVsb25nICogZGlmZikKIHsKQEAgLTE5Miw0ICsxOTIsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9SVEMgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9SVEMgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9hbmRpLmMgYi9wb3N0L2xpYl9wcGMvYW5kaS5jCmluZGV4IDc1YmE3YTYuLjUyZWM3YzQgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9hbmRpLmMKKysrIGIvcG9zdC9saWJfcHBjL2FuZGkuYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIxICh1bG9uZyAqY29kZSwgdWxvbmcgKmNyLCB1bG9uZyAqcmVzLCB1bG9uZyBvcCk7CiBleHRlcm4gdWxvbmcgY3B1X3Bvc3RfbWFrZWNyIChsb25nIHYpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2FzbS5TIGIvcG9zdC9saWJfcHBjL2FzbS5TCmluZGV4IDYyMjBlZDIuLmY2YjMyOWEgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9hc20uUworKysgYi9wb3N0L2xpYl9wcGMvYXNtLlMKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxwcGNfZGVmcy5oPgogI2luY2x1ZGUgPGFzbS9jYWNoZS5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogLyogdm9pZCBjcHVfcG9zdF9leGVjXzAyICh1bG9uZyAqY29kZSwgdWxvbmcgb3AxLCB1bG9uZyBvcDIpOyAqLwogCS5nbG9iYWwJY3B1X3Bvc3RfZXhlY18wMgpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2IuYyBiL3Bvc3QvbGliX3BwYy9iLmMKaW5kZXggN2EyNTgzZC4uNDkyZmJhNCAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL2IuYworKysgYi9wb3N0L2xpYl9wcGMvYi5jCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgImNwdV9hc20uaCIKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ1BVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ1BVCiAKIGV4dGVybiB2b2lkIGNwdV9wb3N0X2V4ZWNfMTEgKHVsb25nICpjb2RlLCB1bG9uZyAqcmVzLCB1bG9uZyBvcDEpOwogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18zMSAodWxvbmcgKmNvZGUsIHVsb25nICpjdHIsIHVsb25nICpsciwgdWxvbmcgKmp1bXAsCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvY21wLmMgYi9wb3N0L2xpYl9wcGMvY21wLmMKaW5kZXggMTM4MDlkNC4uNWY2YTNiOSAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL2NtcC5jCisrKyBiL3Bvc3QvbGliX3BwYy9jbXAuYwpAQCAtMzksNyArMzksNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzEyICh1bG9uZyAqY29kZSwgdWxvbmcgKnJlcywgdWxvbmcgb3AxLCB1bG9uZyBvcDIpOwogCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvY21waS5jIGIvcG9zdC9saWJfcHBjL2NtcGkuYwppbmRleCA1ZWNmZTg3Li4xYTJmYzNkIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvY21waS5jCisrKyBiL3Bvc3QvbGliX3BwYy9jbXBpLmMKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18xMSAodWxvbmcgKmNvZGUsIHVsb25nICpyZXMsIHVsb25nIG9wMSk7CiAKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9jb21wbGV4LmMgYi9wb3N0L2xpYl9wcGMvY29tcGxleC5jCmluZGV4IDQ5ODNjNTEuLjRhM2JjMDAgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9jb21wbGV4LmMKKysrIGIvcG9zdC9saWJfcHBjL2NvbXBsZXguYwpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gaW50IGNwdV9wb3N0X2NvbXBsZXhfMV9hc20gKGludCBhMSwgaW50IGEyLCBpbnQgYTMsIGludCBhNCwgaW50IG4pOwogZXh0ZXJuIGludCBjcHVfcG9zdF9jb21wbGV4XzJfYXNtIChpbnQgeCwgaW50IG4pOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2NwdS5jIGIvcG9zdC9saWJfcHBjL2NwdS5jCmluZGV4IDVjN2Y3NjEuLjM3OTNhNjAgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9jcHUuYworKysgYi9wb3N0L2xpYl9wcGMvY3B1LmMKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSA8YXNtL21tdS5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIGludCBjcHVfcG9zdF90ZXN0X2NtcCAodm9pZCk7CiBleHRlcm4gaW50IGNwdV9wb3N0X3Rlc3RfY21waSAodm9pZCk7CkBAIC0xNDQsNCArMTQ0LDQgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9jci5jIGIvcG9zdC9saWJfcHBjL2NyLmMKaW5kZXggMmM3OTc2YS4uZmJlZTZkNSAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL2NyLmMKKysrIGIvcG9zdC9saWJfcHBjL2NyLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18xMSAodWxvbmcgKmNvZGUsIHVsb25nICpyZXMsIHVsb25nIG9wMSk7CiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIxeCAodWxvbmcgKmNvZGUsIHVsb25nICpvcDEsIHVsb25nICpvcDIsIHVsb25nIG9wMyk7CmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1LzIwMDAxMTIyLTEuYyBiL3Bvc3QvbGliX3BwYy9mcHUvMjAwMDExMjItMS5jCmluZGV4IGRlY2U2MTQuLmE4NTM3ZmEgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9mcHUvMjAwMDExMjItMS5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvMjAwMDExMjItMS5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVQogCiBpbnQgZnB1X3Bvc3RfdGVzdF9tYXRoMSAodm9pZCkKIHsKQEAgLTU2LDQgKzU2LDQgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVICovCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1LzIwMDEwMTE0LTIuYyBiL3Bvc3QvbGliX3BwYy9mcHUvMjAwMTAxMTQtMi5jCmluZGV4IDhhMTcyMTcuLjkxZTM2MzEgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9mcHUvMjAwMTAxMTQtMi5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvMjAwMTAxMTQtMi5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVQogCiBzdGF0aWMgZmxvYXQgcmludGYgKGZsb2F0IHgpCiB7CkBAIC02MCw0ICs2MCw0IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVSAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVSAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2ZwdS8yMDAxMDIyNi0xLmMgYi9wb3N0L2xpYl9wcGMvZnB1LzIwMDEwMjI2LTEuYwppbmRleCBmMzY2MjUyLi5iMDAzODZiIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvZnB1LzIwMDEwMjI2LTEuYworKysgYi9wb3N0L2xpYl9wcGMvZnB1LzIwMDEwMjI2LTEuYwpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSA8cG9zdC5oPgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9GUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9GUFUKIAogaW50IGZwdV9wb3N0X3Rlc3RfbWF0aDMgKHZvaWQpCiB7CkBAIC00OCw0ICs0OCw0IEBACiAJcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVSAqLworI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVSAqLwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL2ZwdS85ODA2MTktMS5jIGIvcG9zdC9saWJfcHBjL2ZwdS85ODA2MTktMS5jCmluZGV4IDdmMjY0ODIuLmNlYjJiNzYgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9mcHUvOTgwNjE5LTEuYworKysgYi9wb3N0L2xpYl9wcGMvZnB1Lzk4MDYxOS0xLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVCiAKIGludCBmcHVfcG9zdF90ZXN0X21hdGg0ICh2b2lkKQogewpAQCAtNTQsNCArNTQsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9GUFUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9GUFUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9mcHUvYWNjMS5jIGIvcG9zdC9saWJfcHBjL2ZwdS9hY2MxLmMKaW5kZXggOTIxMjgyZS4uOGE2NTE5MyAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL2ZwdS9hY2MxLmMKKysrIGIvcG9zdC9saWJfcHBjL2ZwdS9hY2MxLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVCiAKIHN0YXRpYyBkb3VibGUgZnVuYyAoY29uc3QgZG91YmxlICphcnJheSkKIHsKQEAgLTUxLDQgKzUxLDQgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVICovCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1L2NvbXBhcmUtZnAtMS5jIGIvcG9zdC9saWJfcHBjL2ZwdS9jb21wYXJlLWZwLTEuYwppbmRleCBiZThmNjIwLi5hYjQ3NjU3IDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvZnB1L2NvbXBhcmUtZnAtMS5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvY29tcGFyZS1mcC0xLmMKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVCiAKIHN0YXRpYyBpbnQgZmFpbGVkOwogCkBAIC0yMTksNCArMjE5LDQgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVICovCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1L2ZwdS5jIGIvcG9zdC9saWJfcHBjL2ZwdS9mcHUuYwppbmRleCA5ZGRiNjdhLi44NDZiNzZkIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvZnB1L2ZwdS5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvZnB1LmMKQEAgLTM2LDcgKzM2LDcgQEAKIAogI2luY2x1ZGUgPHBvc3QuaD4KIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVCiAKICNpbmNsdWRlIDx3YXRjaGRvZy5oPgogCkBAIC04Niw0ICs4Niw0IEBACiAJcmV0dXJuIHJldDsKIH0KIAotI2VuZGlmIC8qIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRlBVICovCisjZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRlBVICovCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvZnB1L211bC1zdWJub3JtYWwtc2luZ2xlLTEuYyBiL3Bvc3QvbGliX3BwYy9mcHUvbXVsLXN1Ym5vcm1hbC1zaW5nbGUtMS5jCmluZGV4IDdlNmZlODcuLjljNTE0ZTEgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9mcHUvbXVsLXN1Ym5vcm1hbC1zaW5nbGUtMS5jCisrKyBiL3Bvc3QvbGliX3BwYy9mcHUvbXVsLXN1Ym5vcm1hbC1zaW5nbGUtMS5jCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlIDxwb3N0Lmg+CiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0ZQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0ZQVQogCiB1bmlvbiB1ZgogewpAQCAtOTcsNCArOTcsNCBAQAogCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9GUFUgKi8KKyNlbmRpZiAvKiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9GUFUgKi8KZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9sb2FkLmMgYi9wb3N0L2xpYl9wcGMvbG9hZC5jCmluZGV4IGVjY2ViYjcuLjk4ZDQzNzMgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy9sb2FkLmMKKysrIGIvcG9zdC9saWJfcHBjL2xvYWQuYwpAQCAtNDQsNyArNDQsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIydyAodWxvbmcgKmNvZGUsIHVsb25nICpvcDEsIHVsb25nIG9wMiwgdWxvbmcgKm9wMyk7CiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIxdyAodWxvbmcgKmNvZGUsIHVsb25nICpvcDEsIHVsb25nICpvcDIpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL211bHRpLmMgYi9wb3N0L2xpYl9wcGMvbXVsdGkuYwppbmRleCA0NzEzNWFiLi5lNDJhN2MwIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvbXVsdGkuYworKysgYi9wb3N0L2xpYl9wcGMvbXVsdGkuYwpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzAyICh1bG9uZyAqY29kZSwgdWxvbmcgb3AxLCB1bG9uZyBvcDIpOwogCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvcmx3aW1pLmMgYi9wb3N0L2xpYl9wcGMvcmx3aW1pLmMKaW5kZXggODY2MmRiMS4uZmQ2MjhiMyAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL3Jsd2ltaS5jCisrKyBiL3Bvc3QvbGliX3BwYy9ybHdpbWkuYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIyICh1bG9uZyAqY29kZSwgdWxvbmcgKmNyLCB1bG9uZyAqcmVzLCB1bG9uZyBvcDEsCiAgICAgdWxvbmcgb3AyKTsKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9ybHdpbm0uYyBiL3Bvc3QvbGliX3BwYy9ybHdpbm0uYwppbmRleCA0Mzk4YTEwLi44OGEyOGM2IDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvcmx3aW5tLmMKKysrIGIvcG9zdC9saWJfcHBjL3Jsd2lubS5jCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgImNwdV9hc20uaCIKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ1BVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ1BVCiAKIGV4dGVybiB2b2lkIGNwdV9wb3N0X2V4ZWNfMjEgKHVsb25nICpjb2RlLCB1bG9uZyAqY3IsIHVsb25nICpyZXMsIHVsb25nIG9wMSk7CiBleHRlcm4gdWxvbmcgY3B1X3Bvc3RfbWFrZWNyIChsb25nIHYpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL3Jsd25tLmMgYi9wb3N0L2xpYl9wcGMvcmx3bm0uYwppbmRleCBjNTQ3YmQ3Li42MGJjYjZkIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvcmx3bm0uYworKysgYi9wb3N0L2xpYl9wcGMvcmx3bm0uYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzIyICh1bG9uZyAqY29kZSwgdWxvbmcgKmNyLCB1bG9uZyAqcmVzLCB1bG9uZyBvcDEsCiAgICAgdWxvbmcgb3AyKTsKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9zcmF3aS5jIGIvcG9zdC9saWJfcHBjL3NyYXdpLmMKaW5kZXggNGEzZGRkYi4uYmUxNTNhZCAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL3NyYXdpLmMKKysrIGIvcG9zdC9saWJfcHBjL3NyYXdpLmMKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18yMSAodWxvbmcgKmNvZGUsIHVsb25nICpjciwgdWxvbmcgKnJlcywgdWxvbmcgb3ApOwogZXh0ZXJuIHVsb25nIGNwdV9wb3N0X21ha2VjciAobG9uZyB2KTsKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy9zdG9yZS5jIGIvcG9zdC9saWJfcHBjL3N0b3JlLmMKaW5kZXggYzk2ZjI2My4uMTk1NmY2YiAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL3N0b3JlLmMKKysrIGIvcG9zdC9saWJfcHBjL3N0b3JlLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18xMncgKHVsb25nICpjb2RlLCB1bG9uZyAqb3AxLCB1bG9uZyBvcDIsIHVsb25nIG9wMyk7CiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzExdyAodWxvbmcgKmNvZGUsIHVsb25nICpvcDEsIHVsb25nIG9wMik7CmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvc3RyaW5nLmMgYi9wb3N0L2xpYl9wcGMvc3RyaW5nLmMKaW5kZXggMzY4M2FjOS4uYzBkZGVhZiAxMDA2NDQKLS0tIGEvcG9zdC9saWJfcHBjL3N0cmluZy5jCisrKyBiL3Bvc3QvbGliX3BwYy9zdHJpbmcuYwpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHBvc3QuaD4KICNpbmNsdWRlICJjcHVfYXNtLmgiCiAKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NQVQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0NQVQogCiBleHRlcm4gdm9pZCBjcHVfcG9zdF9leGVjXzAyICh1bG9uZyAqY29kZSwgdWxvbmcgb3AxLCB1bG9uZyBvcDIpOwogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18wNCAodWxvbmcgKmNvZGUsIHVsb25nIG9wMSwgdWxvbmcgb3AyLCB1bG9uZyBvcDMsCmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvdGhyZWUuYyBiL3Bvc3QvbGliX3BwYy90aHJlZS5jCmluZGV4IDNmYTUxM2IuLjdmOGMxZTIgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy90aHJlZS5jCisrKyBiL3Bvc3QvbGliX3BwYy90aHJlZS5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgImNwdV9hc20uaCIKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ1BVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ1BVCiAKIGV4dGVybiB2b2lkIGNwdV9wb3N0X2V4ZWNfMjIgKHVsb25nICpjb2RlLCB1bG9uZyAqY3IsIHVsb25nICpyZXMsIHVsb25nIG9wMSwKICAgICB1bG9uZyBvcDIpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL3RocmVlaS5jIGIvcG9zdC9saWJfcHBjL3RocmVlaS5jCmluZGV4IDg5ZjhmYzguLjMxOTUzZjkgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy90aHJlZWkuYworKysgYi9wb3N0L2xpYl9wcGMvdGhyZWVpLmMKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18yMSAodWxvbmcgKmNvZGUsIHVsb25nICpjciwgdWxvbmcgKnJlcywgdWxvbmcgb3ApOwogZXh0ZXJuIHVsb25nIGNwdV9wb3N0X21ha2VjciAobG9uZyB2KTsKZGlmZiAtLWdpdCBhL3Bvc3QvbGliX3BwYy90aHJlZXguYyBiL3Bvc3QvbGliX3BwYy90aHJlZXguYwppbmRleCAxZGZjYzJjLi4zNTBhMTJhIDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvdGhyZWV4LmMKKysrIGIvcG9zdC9saWJfcHBjL3RocmVleC5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8cG9zdC5oPgogI2luY2x1ZGUgImNwdV9hc20uaCIKIAotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ1BVCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ1BVCiAKIGV4dGVybiB2b2lkIGNwdV9wb3N0X2V4ZWNfMjIgKHVsb25nICpjb2RlLCB1bG9uZyAqY3IsIHVsb25nICpyZXMsIHVsb25nIG9wMSwKICAgICB1bG9uZyBvcDIpOwpkaWZmIC0tZ2l0IGEvcG9zdC9saWJfcHBjL3R3by5jIGIvcG9zdC9saWJfcHBjL3R3by5jCmluZGV4IDNkNmIzYzAuLjJiMTExNDcgMTAwNjQ0Ci0tLSBhL3Bvc3QvbGliX3BwYy90d28uYworKysgYi9wb3N0L2xpYl9wcGMvdHdvLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18yMSAodWxvbmcgKmNvZGUsIHVsb25nICpjciwgdWxvbmcgKnJlcywgdWxvbmcgb3AxKTsKIGV4dGVybiB1bG9uZyBjcHVfcG9zdF9tYWtlY3IgKGxvbmcgdik7CmRpZmYgLS1naXQgYS9wb3N0L2xpYl9wcGMvdHdveC5jIGIvcG9zdC9saWJfcHBjL3R3b3guYwppbmRleCA1MTliNDMyLi5kNjcxNGY5IDEwMDY0NAotLS0gYS9wb3N0L2xpYl9wcGMvdHdveC5jCisrKyBiL3Bvc3QvbGliX3BwYy90d294LmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxwb3N0Lmg+CiAjaW5jbHVkZSAiY3B1X2FzbS5oIgogCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKIAogZXh0ZXJuIHZvaWQgY3B1X3Bvc3RfZXhlY18yMSAodWxvbmcgKmNvZGUsIHVsb25nICpjciwgdWxvbmcgKnJlcywgdWxvbmcgb3AxKTsKIGV4dGVybiB1bG9uZyBjcHVfcG9zdF9tYWtlY3IgKGxvbmcgdik7CmRpZmYgLS1naXQgYS9wb3N0L3Bvc3QuYyBiL3Bvc3QvcG9zdC5jCmluZGV4IDk5ZGM4YzkuLmM5ODJlMjcgMTAwNjQ0Ci0tLSBhL3Bvc3QvcG9zdC5jCisrKyBiL3Bvc3QvcG9zdC5jCkBAIC0zNzIsNyArMzcyLDcgQEAKIHsKIAl2YV9saXN0IGFyZ3M7CiAJdWludCBpOwotCWNoYXIgcHJpbnRidWZmZXJbQ0ZHX1BCU0laRV07CisJY2hhciBwcmludGJ1ZmZlcltDT05GSUdfU1lTX1BCU0laRV07CiAKIAl2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKIApAQCAtNDQ4LDcgKzQ0OCw3IEBACiB1bnNpZ25lZCBsb25nIHBvc3RfdGltZV9tcyAodW5zaWduZWQgbG9uZyBiYXNlKQogewogI2lmZGVmIENPTkZJR19QUEMKLQlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpKGdldF90aWNrcyAoKSAvIChnZXRfdGJjbGsgKCkgLyBDRkdfSFopKSAtIGJhc2U7CisJcmV0dXJuICh1bnNpZ25lZCBsb25nKShnZXRfdGlja3MgKCkgLyAoZ2V0X3RiY2xrICgpIC8gQ09ORklHX1NZU19IWikpIC0gYmFzZTsKICNlbHNlCiAjd2FybmluZyAiTm90IGltcGxlbWVudGVkIHlldCIKIAlyZXR1cm4gMDsgLyogTm90IGltcGxlbWVudGVkIHlldCAqLwpkaWZmIC0tZ2l0IGEvcG9zdC90ZXN0cy5jIGIvcG9zdC90ZXN0cy5jCmluZGV4IGU4OGQ5MmUuLjMyMjRmMDAgMTAwNjQ0Ci0tLSBhL3Bvc3QvdGVzdHMuYworKysgYi9wb3N0L3Rlc3RzLmMKQEAgLTIxLDcgKzIxLDcgQEAKICAqIE1BIDAyMTExLTEzMDcgVVNBCiAgKgogICogQmUgc3VyZSB0byBtYXJrIHRlc3RzIHRvIGJlIHJ1biBiZWZvcmUgcmVsb2NhdGlvbiBhcyBzdWNoIHdpdGggdGhlCi0gKiBDRkdfUE9TVF9QUkVSRUwgZmxhZyBzbyB0aGF0IGxvZ2dpbmcgaXMgZG9uZSBjb3JyZWN0bHkgaWYgdGhlCisgKiBDT05GSUdfU1lTX1BPU1RfUFJFUkVMIGZsYWcgc28gdGhhdCBsb2dnaW5nIGlzIGRvbmUgY29ycmVjdGx5IGlmIHRoZQogICogbG9nYnVmZmVyIHN1cHBvcnQgaXMgZW5hYmxlZC4KICAqLwogCkBAIC02MSw3ICs2MSw3IEBACiAKIHN0cnVjdCBwb3N0X3Rlc3QgcG9zdF9saXN0W10gPQogewotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfT0NNCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfT0NNCiAgICAgewogCSJPQ00gdGVzdCIsCiAJIm9jbSIsCkBAIC03MCwxMCArNzAsMTAgQEAKIAkmb2NtX3Bvc3RfdGVzdCwKIAlOVUxMLAogCU5VTEwsCi0JQ0ZHX1BPU1RfT0NNCisJQ09ORklHX1NZU19QT1NUX09DTQogICAgIH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0NBQ0hFCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQ0FDSEUKICAgICB7CiAJIkNhY2hlIHRlc3QiLAogCSJjYWNoZSIsCkBAIC04MiwxMCArODIsMTAgQEAKIAkmY2FjaGVfcG9zdF90ZXN0LAogCU5VTEwsCiAJTlVMTCwKLQlDRkdfUE9TVF9DQUNIRQorCUNPTkZJR19TWVNfUE9TVF9DQUNIRQogICAgIH0sCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX1dBVENIRE9HCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfV0FUQ0hET0cKICNpZiBkZWZpbmVkKENPTkZJR19QT1NUX1dBVENIRE9HKQogCUNPTkZJR19QT1NUX1dBVENIRE9HLAogI2Vsc2UKQEAgLTk3LDExICs5NywxMSBAQAogCSZ3YXRjaGRvZ19wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1dBVENIRE9HCisJQ09ORklHX1NZU19QT1NUX1dBVENIRE9HCiAgICAgfSwKICNlbmRpZgogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9JMkMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9JMkMKICAgICB7CiAJIkkyQyB0ZXN0IiwKIAkiaTJjIiwKQEAgLTExMCwxMCArMTEwLDEwIEBACiAJJmkyY19wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX0kyQworCUNPTkZJR19TWVNfUE9TVF9JMkMKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9SVEMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9SVEMKICAgICB7CiAJIlJUQyB0ZXN0IiwKIAkicnRjIiwKQEAgLTEyMiwxMCArMTIyLDEwIEBACiAJJnJ0Y19wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1JUQworCUNPTkZJR19TWVNfUE9TVF9SVEMKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9NRU1PUlkKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9NRU1PUlkKICAgICB7CiAJIk1lbW9yeSB0ZXN0IiwKIAkibWVtb3J5IiwKQEAgLTEzNCwxMCArMTM0LDEwIEBACiAJJm1lbW9yeV9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX01FTU9SWQorCUNPTkZJR19TWVNfUE9TVF9NRU1PUlkKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9DUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DUFUKICAgICB7CiAJIkNQVSB0ZXN0IiwKIAkiY3B1IiwKQEAgLTE0NywxMCArMTQ3LDEwIEBACiAJJmNwdV9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX0NQVQorCUNPTkZJR19TWVNfUE9TVF9DUFUKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9GUFUKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9GUFUKICAgICB7CiAJIkZQVSB0ZXN0IiwKIAkiZnB1IiwKQEAgLTE2MCwxMCArMTYwLDEwIEBACiAJJmZwdV9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX0ZQVQorCUNPTkZJR19TWVNfUE9TVF9GUFUKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VQVJUCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfVUFSVAogICAgIHsKIAkiVUFSVCB0ZXN0IiwKIAkidWFydCIsCkBAIC0xNzIsMTAgKzE3MiwxMCBAQAogCSZ1YXJ0X3Bvc3RfdGVzdCwKIAlOVUxMLAogCU5VTEwsCi0JQ0ZHX1BPU1RfVUFSVAorCUNPTkZJR19TWVNfUE9TVF9VQVJUCiAgICAgfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRVRIRVIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FVEhFUgogICAgIHsKIAkiRVRIRVJORVQgdGVzdCIsCiAJImV0aGVybmV0IiwKQEAgLTE4NCwxMCArMTg0LDEwIEBACiAJJmV0aGVyX3Bvc3RfdGVzdCwKIAlOVUxMLAogCU5VTEwsCi0JQ0ZHX1BPU1RfRVRIRVIKKwlDT05GSUdfU1lTX1BPU1RfRVRIRVIKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUEkKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUEkKICAgICB7CiAJIlNQSSB0ZXN0IiwKIAkic3BpIiwKQEAgLTE5NiwxMCArMTk2LDEwIEBACiAJJnNwaV9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1NQSQorCUNPTkZJR19TWVNfUE9TVF9TUEkKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9VU0IKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9VU0IKICAgICB7CiAJIlVTQiB0ZXN0IiwKIAkidXNiIiwKQEAgLTIwOCwxMCArMjA4LDEwIEBACiAJJnVzYl9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1VTQgorCUNPTkZJR19TWVNfUE9TVF9VU0IKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TUFIKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TUFIKICAgICB7CiAJIlNQUiB0ZXN0IiwKIAkic3ByIiwKQEAgLTIyMCwxMCArMjIwLDEwIEBACiAJJnNwcl9wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX1NQUgorCUNPTkZJR19TWVNfUE9TVF9TUFIKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9TWVNNT04KKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9TWVNNT04KICAgICB7CiAJIlNZU01PTiB0ZXN0IiwKIAkic3lzbW9uIiwKQEAgLTIzMiwxMCArMjMyLDEwIEBACiAJJnN5c21vbl9wb3N0X3Rlc3QsCiAJJnN5c21vbl9pbml0X2YsCiAJJnN5c21vbl9yZWxvYywKLQlDRkdfUE9TVF9TWVNNT04KKwlDT05GSUdfU1lTX1BPU1RfU1lTTU9OCiAgICAgfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfRFNQCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfRFNQCiAgICAgewogCSJEU1AgdGVzdCIsCiAJImRzcCIsCkBAIC0yNDQsMTAgKzI0NCwxMCBAQAogCSZkc3BfcG9zdF90ZXN0LAogCU5VTEwsCiAJTlVMTCwKLQlDRkdfUE9TVF9EU1AKKwlDT05GSUdfU1lTX1BPU1RfRFNQCiAgICAgfSwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQ09ERUMKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9DT0RFQwogICAgIHsKIAkiQ09ERUMgdGVzdCIsCiAJImNvZGVjIiwKQEAgLTI1NiwxMCArMjU2LDEwIEBACiAJJmNvZGVjX3Bvc3RfdGVzdCwKIAlOVUxMLAogCU5VTEwsCi0JQ0ZHX1BPU1RfQ09ERUMKKwlDT05GSUdfU1lTX1BPU1RfQ09ERUMKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9FQ0MKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9FQ0MKICAgICB7CiAJIkVDQyB0ZXN0IiwKIAkiZWNjIiwKQEAgLTI2OCwyMiArMjY4LDIyIEBACiAJJmVjY19wb3N0X3Rlc3QsCiAJTlVMTCwKIAlOVUxMLAotCUNGR19QT1NUX0VDQworCUNPTkZJR19TWVNfUE9TVF9FQ0MKICAgICB9LAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzEKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzEKIAlDT05GSUdfUE9TVF9CU1BFQzEsCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0JTUEVDMgorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDMgogCUNPTkZJR19QT1NUX0JTUEVDMiwKICNlbmRpZgotI2lmIENPTkZJR19QT1NUICYgQ0ZHX1BPU1RfQlNQRUMzCisjaWYgQ09ORklHX1BPU1QgJiBDT05GSUdfU1lTX1BPU1RfQlNQRUMzCiAJQ09ORklHX1BPU1RfQlNQRUMzLAogI2VuZGlmCi0jaWYgQ09ORklHX1BPU1QgJiBDRkdfUE9TVF9CU1BFQzQKKyNpZiBDT05GSUdfUE9TVCAmIENPTkZJR19TWVNfUE9TVF9CU1BFQzQKIAlDT05GSUdfUE9TVF9CU1BFQzQsCiAjZW5kaWYKLSNpZiBDT05GSUdfUE9TVCAmIENGR19QT1NUX0JTUEVDNQorI2lmIENPTkZJR19QT1NUICYgQ09ORklHX1NZU19QT1NUX0JTUEVDNQogCUNPTkZJR19QT1NUX0JTUEVDNSwKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2Vudi9md19lbnYuYyBiL3Rvb2xzL2Vudi9md19lbnYuYwppbmRleCA0Njc0N2QzLi5hNDYyMDVkIDEwMDY0NAotLS0gYS90b29scy9lbnYvZndfZW52LmMKKysrIGIvdG9vbHMvZW52L2Z3X2Vudi5jCkBAIC0xNTcsNiArMTU3LDEyIEBACiAjaWZkZWYJQ09ORklHX0VUSDNBRERSCiAJImV0aDNhZGRyPSIgTUtfU1RSIChDT05GSUdfRVRIM0FERFIpICJcMCIKICNlbmRpZgorI2lmZGVmCUNPTkZJR19FVEg0QUREUgorCSJldGg0YWRkcj0iIE1LX1NUUiAoQ09ORklHX0VUSDRBRERSKSAiXDAiCisjZW5kaWYKKyNpZmRlZglDT05GSUdfRVRINUFERFIKKwkiZXRoNWFkZHI9IiBNS19TVFIgKENPTkZJR19FVEg1QUREUikgIlwwIgorI2VuZGlmCiAjaWZkZWYJQ09ORklHX0VUSFBSSU1FCiAJImV0aHByaW1lPSIgQ09ORklHX0VUSFBSSU1FICJcMCIKICNlbmRpZgpAQCAtMTY2LDggKzE3Miw4IEBACiAjaWZkZWYJQ09ORklHX1NFUlZFUklQCiAJInNlcnZlcmlwPSIgTUtfU1RSIChDT05GSUdfU0VSVkVSSVApICJcMCIKICNlbmRpZgotI2lmZGVmCUNGR19BVVRPTE9BRAotCSJhdXRvbG9hZD0iIENGR19BVVRPTE9BRCAiXDAiCisjaWZkZWYJQ09ORklHX1NZU19BVVRPTE9BRAorCSJhdXRvbG9hZD0iIENPTkZJR19TWVNfQVVUT0xPQUQgIlwwIgogI2VuZGlmCiAjaWZkZWYJQ09ORklHX1JPT1RQQVRICiAJInJvb3RwYXRoPSIgTUtfU1RSIChDT05GSUdfUk9PVFBBVEgpICJcMCIKZGlmZiAtLWdpdCBhL3Rvb2xzL2VudmNyYy5jIGIvdG9vbHMvZW52Y3JjLmMKaW5kZXggYmEyOGZhMC4uNDMzNGNkZiAxMDA2NDQKLS0tIGEvdG9vbHMvZW52Y3JjLmMKKysrIGIvdG9vbHMvZW52Y3JjLmMKQEAgLTM1LDEzICszNSwxMyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfRU5WX0lTX0lOX0ZMQVNIKQogIyBpZm5kZWYgIENPTkZJR19FTlZfQUREUgotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUgkoQ0ZHX0ZMQVNIX0JBU0UgKyBDT05GSUdfRU5WX09GRlNFVCkKKyMgIGRlZmluZSBDT05GSUdfRU5WX0FERFIJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUKQogIyBlbmRpZgogIyBpZm5kZWYgIENPTkZJR19FTlZfT0ZGU0VUCi0jICBkZWZpbmUgQ09ORklHX0VOVl9PRkZTRVQgKENPTkZJR19FTlZfQUREUiAtIENGR19GTEFTSF9CQVNFKQorIyAgZGVmaW5lIENPTkZJR19FTlZfT0ZGU0VUIChDT05GSUdfRU5WX0FERFIgLSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UpCiAjIGVuZGlmCiAjIGlmICFkZWZpbmVkKENPTkZJR19FTlZfQUREUl9SRURVTkQpICYmIGRlZmluZWQoQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5EKQotIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENGR19GTEFTSF9CQVNFICsgQ09ORklHX0VOVl9PRkZTRVRfUkVEVU5EKQorIyAgZGVmaW5lIENPTkZJR19FTlZfQUREUl9SRURVTkQJKENPTkZJR19TWVNfRkxBU0hfQkFTRSArIENPTkZJR19FTlZfT0ZGU0VUX1JFRFVORCkKICMgZW5kaWYKICMgaWZuZGVmICBDT05GSUdfRU5WX1NJWkUKICMgIGRlZmluZSBDT05GSUdfRU5WX1NJWkUJQ09ORklHX0VOVl9TRUNUX1NJWkUKQEAgLTQ5LDE2ICs0OSwxNiBAQAogIyBpZiBkZWZpbmVkKENPTkZJR19FTlZfQUREUl9SRURVTkQpICYmICFkZWZpbmVkKENPTkZJR19FTlZfU0laRV9SRURVTkQpCiAjICBkZWZpbmUgQ09ORklHX0VOVl9TSVpFX1JFRFVORAlDT05GSUdfRU5WX1NJWkUKICMgZW5kaWYKLSMgaWYgKENPTkZJR19FTlZfQUREUiA+PSBDRkdfTU9OSVRPUl9CQVNFKSAmJiBcCi0gICAgICgoQ09ORklHX0VOVl9BRERSICsgQ09ORklHX0VOVl9TSVpFKSA8PSAoQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTikpCisjIGlmIChDT05GSUdfRU5WX0FERFIgPj0gQ09ORklHX1NZU19NT05JVE9SX0JBU0UpICYmIFwKKyAgICAgKChDT05GSUdfRU5WX0FERFIgKyBDT05GSUdfRU5WX1NJWkUpIDw9IChDT05GSUdfU1lTX01PTklUT1JfQkFTRSArIENPTkZJR19TWVNfTU9OSVRPUl9MRU4pKQogIyAgZGVmaW5lIEVOVl9JU19FTUJFRERFRAkxCiAjIGVuZGlmCiAjIGlmIGRlZmluZWQoQ09ORklHX0VOVl9BRERSX1JFRFVORCkgfHwgZGVmaW5lZChDT05GSUdfRU5WX09GRlNFVF9SRURVTkQpCi0jICBkZWZpbmUgQ0ZHX1JFRFVOREFORF9FTlZJUk9OTUVOVAkxCisjICBkZWZpbmUgQ09ORklHX1NZU19SRURVTkRBTkRfRU5WSVJPTk1FTlQJMQogIyBlbmRpZgogI2VuZGlmCS8qIENPTkZJR19FTlZfSVNfSU5fRkxBU0ggKi8KIAotI2lmZGVmIENGR19SRURVTkRBTkRfRU5WSVJPTk1FTlQKKyNpZmRlZiBDT05GSUdfU1lTX1JFRFVOREFORF9FTlZJUk9OTUVOVAogIyBkZWZpbmUgRU5WX0hFQURFUl9TSVpFCShzaXplb2YodWludDMyX3QpICsgMSkKICNlbHNlCiAjIGRlZmluZSBFTlZfSEVBREVSX1NJWkUJKHNpemVvZih1aW50MzJfdCkpCmRpZmYgLS1naXQgYS90b29scy91cGRhdGVyL2NtZF9mbGFzaC5jIGIvdG9vbHMvdXBkYXRlci9jbWRfZmxhc2guYwppbmRleCAwZjZmNjJiLi41ZmY3MzM2IDEwMDY0NAotLS0gYS90b29scy91cGRhdGVyL2NtZF9mbGFzaC5jCisrKyBiL3Rvb2xzL3VwZGF0ZXIvY21kX2ZsYXNoLmMKQEAgLTY0LDcgKzY0LDcgQEAKIAogICAgIGJhbmsgPSBzaW1wbGVfc3RydG91bChzdHIsICZlcCwgMTApOwogICAgIGlmIChlcCA9PSBzdHIgfHwgKmVwICE9ICdcMCcgfHwKLSAgICAgIGJhbmsgPCAxIHx8IGJhbmsgPiBDRkdfTUFYX0ZMQVNIX0JBTktTIHx8CisgICAgICBiYW5rIDwgMSB8fCBiYW5rID4gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MgfHwKICAgICAgIChmcCA9ICZmbGFzaF9pbmZvW2JhbmsgLSAxXSktPmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pCiAJcmV0dXJuIC0xOwogCkBAIC05Niw3ICs5Niw3IEBACiAJdWxvbmcgYmFuazsKIAogCWlmIChhcmdjID09IDEpIHsJLyogcHJpbnQgaW5mbyBmb3IgYWxsIEZMQVNIIGJhbmtzICovCi0JCWZvciAoYmFuaz0wOyBiYW5rIDxDRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKKwkJZm9yIChiYW5rPTA7IGJhbmsgPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKIAkJCXByaW50ZiAoIlxuQmFuayAjICVsZDogIiwgYmFuaysxKTsKIAogCQkJZmxhc2hfcHJpbnRfaW5mbyAoJmZsYXNoX2luZm9bYmFua10pOwpAQCAtMTA1LDkgKzEwNSw5IEBACiAJfQogCiAJYmFuayA9IHNpbXBsZV9zdHJ0b3VsKGFyZ3ZbMV0sIE5VTEwsIDE2KTsKLQlpZiAoKGJhbmsgPCAxKSB8fCAoYmFuayA+IENGR19NQVhfRkxBU0hfQkFOS1MpKSB7CisJaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUykpIHsKIAkJcHJpbnRmICgiT25seSBGTEFTSCBCYW5rcyAjIDEgLi4uICMgJWQgc3VwcG9ydGVkXG4iLAotCQkJQ0ZHX01BWF9GTEFTSF9CQU5LUyk7CisJCQlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyk7CiAJCXJldHVybiAxOwogCX0KIAlwcmludGYgKCJcbkJhbmsgIyAlbGQ6ICIsIGJhbmspOwpAQCAtMTI3LDcgKzEyNyw3IEBACiAJfQogCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiYWxsIikgPT0gMCkgewotCQlmb3IgKGJhbms9MTsgYmFuazw9Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rKSB7CisJCWZvciAoYmFuaz0xOyBiYW5rPD1DT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rKSB7CiAJCQlwcmludGYgKCJFcmFzZSBGbGFzaCBCYW5rICMgJWxkICIsIGJhbmspOwogCQkJaW5mbyA9ICZmbGFzaF9pbmZvW2JhbmstMV07CiAJCQlyY29kZSA9IGZsYXNoX2VyYXNlIChpbmZvLCAwLCBpbmZvLT5zZWN0b3JfY291bnQtMSk7CkBAIC0xNTMsOSArMTUzLDkgQEAKIAogCWlmIChzdHJjbXAoYXJndlsxXSwgImJhbmsiKSA9PSAwKSB7CiAJCWJhbmsgPSBzaW1wbGVfc3RydG91bChhcmd2WzJdLCBOVUxMLCAxNik7Ci0JCWlmICgoYmFuayA8IDEpIHx8IChiYW5rID4gQ0ZHX01BWF9GTEFTSF9CQU5LUykpIHsKKwkJaWYgKChiYW5rIDwgMSkgfHwgKGJhbmsgPiBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUykpIHsKIAkJCXByaW50ZiAoIk9ubHkgRkxBU0ggQmFua3MgIyAxIC4uLiAjICVkIHN1cHBvcnRlZFxuIiwKLQkJCQlDRkdfTUFYX0ZMQVNIX0JBTktTKTsKKwkJCQlDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUyk7CiAJCQlyZXR1cm4gMTsKIAkJfQogCQlwcmludGYgKCJFcmFzZSBGbGFzaCBCYW5rICMgJWxkICIsIGJhbmspOwpAQCAtMTg3LDcgKzE4Nyw3IEBACiAKIAllcmFzZWQgPSAwOwogCi0JZm9yIChiYW5rPTAsaW5mbyA9ICZmbGFzaF9pbmZvWzBdOyBiYW5rIDwgQ0ZHX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rLCArK2luZm8pIHsKKwlmb3IgKGJhbms9MCxpbmZvID0gJmZsYXNoX2luZm9bMF07IGJhbmsgPCBDT05GSUdfU1lTX01BWF9GTEFTSF9CQU5LUzsgKytiYW5rLCArK2luZm8pIHsKIAkJdWxvbmcgYl9lbmQ7CiAJCWludCBzZWN0OwogCkBAIC0yNTgsNyArMjU4LDcgQEAKIAl9CiAKIAlpZiAoc3RyY21wKGFyZ3ZbMl0sICJhbGwiKSA9PSAwKSB7Ci0JCWZvciAoYmFuaz0xOyBiYW5rPD1DRkdfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKKwkJZm9yIChiYW5rPTE7IGJhbms8PUNPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2JhbmspIHsKIAkJCWluZm8gPSAmZmxhc2hfaW5mb1tiYW5rLTFdOwogCQkJaWYgKGluZm8tPmZsYXNoX2lkID09IEZMQVNIX1VOS05PV04pIHsKIAkJCQljb250aW51ZTsKQEAgLTI2NywxOSArMjY3LDE5IEBACiAJCQkvKglwID8gIiIgOiAiVW4tIiwgYmFuayk7ICovCiAKIAkJCWZvciAoaT0wOyBpPGluZm8tPnNlY3Rvcl9jb3VudDsgKytpKSB7Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJCQlpZiAoZmxhc2hfcmVhbF9wcm90ZWN0KGluZm8sIGksIHApKQogCQkJCQlyY29kZSA9IDE7CiAJCQkJcHV0YyAoJy4nKTsKICNlbHNlCiAJCQkJaW5mby0+cHJvdGVjdFtpXSA9IHA7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAkJCX0KIAkJfQogCi0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJaWYgKCFyY29kZSkgcHV0cyAoIiBkb25lXG4iKTsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCiAJCXJldHVybiByY29kZTsKIAl9CkBAIC0yOTMsMTggKzI5MywxOCBAQAogCQkvKglwID8gIiIgOiAiVW4tIiwgc2VjdF9maXJzdCwgc2VjdF9sYXN0LCAqLwogCQkvKgkoaW5mby1mbGFzaF9pbmZvKSsxKTsgKi8KIAkJZm9yIChpID0gc2VjdF9maXJzdDsgaSA8PSBzZWN0X2xhc3Q7IGkrKykgewotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQlpZiAoZmxhc2hfcmVhbF9wcm90ZWN0KGluZm8sIGksIHApKQogCQkJCXJjb2RlID0gIDE7CiAJCQlwdXRjICgnLicpOwogI2Vsc2UKIAkJCWluZm8tPnByb3RlY3RbaV0gPSBwOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAJCX0KIAotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCWlmICghcmNvZGUpIHB1dHMgKCIgZG9uZVxuIik7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAogCQlyZXR1cm4gcmNvZGU7CiAJfQpAQCAtMzE2LDkgKzMxNiw5IEBACiAKIAlpZiAoc3RyY21wKGFyZ3ZbMl0sICJiYW5rIikgPT0gMCkgewogCQliYW5rID0gc2ltcGxlX3N0cnRvdWwoYXJndlszXSwgTlVMTCwgMTYpOwotCQlpZiAoKGJhbmsgPCAxKSB8fCAoYmFuayA+IENGR19NQVhfRkxBU0hfQkFOS1MpKSB7CisJCWlmICgoYmFuayA8IDEpIHx8IChiYW5rID4gQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpKSB7CiAJCQlwcmludGYgKCJPbmx5IEZMQVNIIEJhbmtzICMgMSAuLi4gIyAlZCBzdXBwb3J0ZWRcbiIsCi0JCQkJQ0ZHX01BWF9GTEFTSF9CQU5LUyk7CisJCQkJQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1MpOwogCQkJcmV0dXJuIDE7CiAJCX0KIAkJcHJpbnRmICgiJXNQcm90ZWN0IEZsYXNoIEJhbmsgIyAlbGRcbiIsCkBAIC0zMzAsMTggKzMzMCwxOCBAQAogCQkJcmV0dXJuIDE7CiAJCX0KIAkJZm9yIChpPTA7IGk8aW5mby0+c2VjdG9yX2NvdW50OyArK2kpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJaWYgKGZsYXNoX3JlYWxfcHJvdGVjdChpbmZvLCBpLCBwKSkKIAkJCQlyY29kZSA9ICAxOwogCQkJcHV0YyAoJy4nKTsKICNlbHNlCiAJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQl9CiAKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQlpZiAoIXJjb2RlKSBwdXRzICgiIGRvbmVcbiIpOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAKIAkJcmV0dXJuIHJjb2RlOwogCX0KQEAgLTM2Niw3ICszNjYsNyBAQAogCiAJcHJvdGVjdGVkID0gMDsKIAotCWZvciAoYmFuaz0wLGluZm8gPSAmZmxhc2hfaW5mb1swXTsgYmFuayA8IENGR19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaywgKytpbmZvKSB7CisJZm9yIChiYW5rPTAsaW5mbyA9ICZmbGFzaF9pbmZvWzBdOyBiYW5rIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7ICsrYmFuaywgKytpbmZvKSB7CiAJCXVsb25nIGJfZW5kOwogCQlpbnQgc2VjdDsKIApAQCAtNDAyLDE4ICs0MDIsMTggQEAKIAkJaWYgKHNfZmlyc3Q+PTAgJiYgc19maXJzdDw9c19sYXN0KSB7CiAJCQlwcm90ZWN0ZWQgKz0gc19sYXN0IC0gc19maXJzdCArIDE7CiAJCQlmb3IgKGk9c19maXJzdDsgaTw9c19sYXN0OyArK2kpIHsKLSNpZiBkZWZpbmVkKENGR19GTEFTSF9QUk9URUNUSU9OKQorI2lmIGRlZmluZWQoQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OKQogCQkJCWlmIChmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgcCkpCiAJCQkJCXJjb2RlID0gMTsKIAkJCQlwdXRjICgnLicpOwogI2Vsc2UKIAkJCQlpbmZvLT5wcm90ZWN0W2ldID0gcDsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQkJfQogCQl9Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJaWYgKCFyY29kZSkgcHV0YyAoJ1xuJyk7Ci0jZW5kaWYJLyogQ0ZHX0ZMQVNIX1BST1RFQ1RJT04gKi8KKyNlbmRpZgkvKiBDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04gKi8KIAogCX0KIAlpZiAocHJvdGVjdGVkKSB7CmRpZmYgLS1naXQgYS90b29scy91cGRhdGVyL2ZsYXNoLmMgYi90b29scy91cGRhdGVyL2ZsYXNoLmMKaW5kZXggYTczMTU5Zi4uNWJlNWYxYiAxMDA2NDQKLS0tIGEvdG9vbHMvdXBkYXRlci9mbGFzaC5jCisrKyBiL3Rvb2xzL3VwZGF0ZXIvZmxhc2guYwpAQCAtNjYsMTggKzY2LDE4IEBACiAJCSAqLwogCQlpZiAoZnJvbSA8PSBlbmQgJiYgdG8gPj0gaW5mby0+c3RhcnRbaV0pIHsKIAkJCWlmIChmbGFnICYgRkxBR19QUk9URUNUX0NMRUFSKSB7Ci0jaWYgZGVmaW5lZChDRkdfRkxBU0hfUFJPVEVDVElPTikKKyNpZiBkZWZpbmVkKENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTikKIAkJCQlmbGFzaF9yZWFsX3Byb3RlY3QoaW5mbywgaSwgMCk7CiAjZWxzZQogCQkJCWluZm8tPnByb3RlY3RbaV0gPSAwOwotI2VuZGlmCS8qIENGR19GTEFTSF9QUk9URUNUSU9OICovCisjZW5kaWYJLyogQ09ORklHX1NZU19GTEFTSF9QUk9URUNUSU9OICovCiAJCQl9CiAJCQllbHNlIGlmIChmbGFnICYgRkxBR19QUk9URUNUX1NFVCkgewotI2lmIGRlZmluZWQoQ0ZHX0ZMQVNIX1BST1RFQ1RJT04pCisjaWYgZGVmaW5lZChDT05GSUdfU1lTX0ZMQVNIX1BST1RFQ1RJT04pCiAJCQkJZmxhc2hfcmVhbF9wcm90ZWN0KGluZm8sIGksIDEpOwogI2Vsc2UKIAkJCQlpbmZvLT5wcm90ZWN0W2ldID0gMTsKLSNlbmRpZgkvKiBDRkdfRkxBU0hfUFJPVEVDVElPTiAqLworI2VuZGlmCS8qIENPTkZJR19TWVNfRkxBU0hfUFJPVEVDVElPTiAqLwogCQkJfQogCQl9CiAJfQpAQCAtOTMsNyArOTMsNyBAQAogCWZsYXNoX2luZm9fdCAqaW5mbzsKIAlpbnQgaTsKIAotCWZvciAoaT0wLCBpbmZvID0gJmZsYXNoX2luZm9bMF07IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpLCArK2luZm8pIHsKKwlmb3IgKGk9MCwgaW5mbyA9ICZmbGFzaF9pbmZvWzBdOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2ksICsraW5mbykgewogCQlpZiAoaW5mby0+Zmxhc2hfaWQgIT0gRkxBU0hfVU5LTk9XTiAmJgogCQkgICAgYWRkciA+PSBpbmZvLT5zdGFydFswXSAmJgogCQkgICAgLyogV0FSTklORyAtIFRoZSAnLSAxJyBpcyBuZWVkZWQgaWYgdGhlIGZsYXNoCmRpZmYgLS1naXQgYS90b29scy91cGRhdGVyL2ZsYXNoX2h3LmMgYi90b29scy91cGRhdGVyL2ZsYXNoX2h3LmMKaW5kZXggNjM4ODQ0ZS4uOGFmNGI0NSAxMDA2NDQKLS0tIGEvdG9vbHMvdXBkYXRlci9mbGFzaF9ody5jCisrKyBiL3Rvb2xzL3VwZGF0ZXIvZmxhc2hfaHcuYwpAQCAtODAsNyArODAsNyBAQAogewogICAgIGludCBpOwogCi0gICAgZm9yIChpID0gMDsgaSA8IENGR19NQVhfRkxBU0hfQkFOS1M7IGkrKykKKyAgICBmb3IgKGkgPSAwOyBpIDwgQ09ORklHX1NZU19NQVhfRkxBU0hfQkFOS1M7IGkrKykKICAgICB7CiAJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJZmxhc2hfaW5mb1tpXS5zZWN0b3JfY291bnQgPSAwOwpAQCAtMTAxLDI1ICsxMDEsMjUgQEAKIAlmbGFzaF90b194ZCgpOwogCiAJLyogSW5pdDogbm8gRkxBU0hlcyBrbm93biAqLwotCWZvciAoaT0wOyBpPENGR19NQVhfRkxBU0hfQkFOS1M7ICsraSkgeworCWZvciAoaT0wOyBpPENPTkZJR19TWVNfTUFYX0ZMQVNIX0JBTktTOyArK2kpIHsKIAkJZmxhc2hfaW5mb1tpXS5mbGFzaF9pZCA9IEZMQVNIX1VOS05PV047CiAJCWZsYXNoX2luZm9baV0uc2VjdG9yX2NvdW50ID0gMDsKIAkJZmxhc2hfaW5mb1tpXS5zaXplID0gMDsKIAl9CiAKLQlERUJVR0YoIlxuIyMgR2V0IGZsYXNoIHNpemUgQCAweCUwOHhcbiIsIENGR19GTEFTSF9CQVNFKTsKKwlERUJVR0YoIlxuIyMgR2V0IGZsYXNoIHNpemUgQCAweCUwOHhcbiIsIENPTkZJR19TWVNfRkxBU0hfQkFTRSk7CiAKLQlmbGFzaF9zaXplID0gZmxhc2hfZ2V0X3NpemUgKENGR19GTEFTSF9CQVNFLCBmbGFzaF9pbmZvKTsKKwlmbGFzaF9zaXplID0gZmxhc2hfZ2V0X3NpemUgKENPTkZJR19TWVNfRkxBU0hfQkFTRSwgZmxhc2hfaW5mbyk7CiAKIAlERUJVR0YoIiMjIEZsYXNoIGJhbmsgc2l6ZTogJTA4bHhcbiIsIGZsYXNoX3NpemUpOwogCiAJaWYgKGZsYXNoX3NpemUpIHsKLSNpZiBDRkdfTU9OSVRPUl9CQVNFID49IENGR19GTEFTSF9CQVNFICYmIFwKLSAgICBDRkdfTU9OSVRPUl9CQVNFIDwgQ0ZHX0ZMQVNIX0JBU0UgKyBDRkdfRkxBU0hfTUFYX1NJWkUKKyNpZiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSA+PSBDT05GSUdfU1lTX0ZMQVNIX0JBU0UgJiYgXAorICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIDwgQ09ORklHX1NZU19GTEFTSF9CQVNFICsgQ09ORklHX1NZU19GTEFTSF9NQVhfU0laRQogCQkvKiBtb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCQlmbGFzaF9wcm90ZWN0KEZMQUdfUFJPVEVDVF9TRVQsCi0JCQkgICAgICBDRkdfTU9OSVRPUl9CQVNFLAotCQkJICAgICAgQ0ZHX01PTklUT1JfQkFTRSArIENGR19NT05JVE9SX0xFTiAtIDEsCisJCQkgICAgICBDT05GSUdfU1lTX01PTklUT1JfQkFTRSwKKwkJCSAgICAgIENPTkZJR19TWVNfTU9OSVRPUl9CQVNFICsgQ09ORklHX1NZU19NT05JVE9SX0xFTiAtIDEsCiAJCQkgICAgICAmZmxhc2hfaW5mb1swXSk7CiAjZW5kaWYKIApAQCAtMjg2LDEwICsyODYsMTAgQEAKIAogCX0KIAotCWlmIChpbmZvLT5zZWN0b3JfY291bnQgPiBDRkdfTUFYX0ZMQVNIX1NFQ1QpIHsKKwlpZiAoaW5mby0+c2VjdG9yX2NvdW50ID4gQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCkgewogCQlwcmludGYgKCIqKiBFUlJPUjogc2VjdG9yIGNvdW50ICVkID4gbWF4ICglZCkgKipcbiIsCi0JCQlpbmZvLT5zZWN0b3JfY291bnQsIENGR19NQVhfRkxBU0hfU0VDVCk7Ci0JCWluZm8tPnNlY3Rvcl9jb3VudCA9IENGR19NQVhfRkxBU0hfU0VDVDsKKwkJCWluZm8tPnNlY3Rvcl9jb3VudCwgQ09ORklHX1NZU19NQVhfRkxBU0hfU0VDVCk7CisJCWluZm8tPnNlY3Rvcl9jb3VudCA9IENPTkZJR19TWVNfTUFYX0ZMQVNIX1NFQ1Q7CiAJfQogCiAJaWYgKCEgZmxhc2hfZ2V0X29mZnNldHMgKGFkZHIsIGluZm8pKSB7CkBAIC00MTgsMTAgKzQxOCwxMCBAQAogCWxhc3QgID0gc3RhcnQ7CiAJYWRkciA9IGluZm8tPnN0YXJ0W2xfc2VjdF07CiAKLQlERUJVR0YgKCJTdGFydCBlcmFzZSB0aW1lb3V0OiAlZFxuIiwgQ0ZHX0ZMQVNIX0VSQVNFX1RPVVQpOworCURFQlVHRiAoIlN0YXJ0IGVyYXNlIHRpbWVvdXQ6ICVkXG4iLCBDT05GSUdfU1lTX0ZMQVNIX0VSQVNFX1RPVVQpOwogCiAJd2hpbGUgKChpbjgoYWRkcikgJiAweDgwKSAhPSAweDgwKSB7Ci0JCWlmICgobm93ID0gZ2V0X3RpbWVyKHN0YXJ0KSkgPiBDRkdfRkxBU0hfRVJBU0VfVE9VVCkgeworCQlpZiAoKG5vdyA9IGdldF90aW1lcihzdGFydCkpID4gQ09ORklHX1NZU19GTEFTSF9FUkFTRV9UT1VUKSB7CiAJCQlwcmludGYgKCJUaW1lb3V0XG4iKTsKIAkJCWZsYXNoX3Jlc2V0IChpbmZvLT5zdGFydFswXSk7CiAJCQlmbGFzaF90b19tZW0oKTsKQEAgLTU3MCw3ICs1NzAsNyBAQAogCQkvKiBkYXRhIHBvbGxpbmcgZm9yIEQ3ICovCiAJCXN0YXJ0ID0gZ2V0X3RpbWVyICgwKTsKIAkJd2hpbGUgKChpbjgoZGVzdCtpKSAmIDB4ODApICE9IChkYXRhX2NoW2ldICYgMHg4MCkpIHsKLQkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ0ZHX0ZMQVNIX1dSSVRFX1RPVVQpIHsKKwkJCWlmIChnZXRfdGltZXIoc3RhcnQpID4gQ09ORklHX1NZU19GTEFTSF9XUklURV9UT1VUKSB7CiAJCQkJZmxhc2hfcmVzZXQgKGFkZHIpOwogCQkJCWZsYXNoX3RvX21lbSgpOwogCQkJCXJldHVybiAoMSk7CmRpZmYgLS1naXQgYS90b29scy91cGRhdGVyL3V0aWxzLmMgYi90b29scy91cGRhdGVyL3V0aWxzLmMKaW5kZXggMDMwNGY5NC4uNjFhNjExOCAxMDA2NDQKLS0tIGEvdG9vbHMvdXBkYXRlci91dGlscy5jCisrKyBiL3Rvb2xzL3VwZGF0ZXIvdXRpbHMuYwpAQCAtMTMyLDE2ICsxMzIsMTYgQEAKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImlzeW5jIik7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIik7CiAKLSNpZmRlZiBDRkdfUkVTRVRfQUREUkVTUwotCWFkZHIgPSBDRkdfUkVTRVRfQUREUkVTUzsKKyNpZmRlZiBDT05GSUdfU1lTX1JFU0VUX0FERFJFU1MKKwlhZGRyID0gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTOwogI2Vsc2UKIAkvKgotCSAqIG5vdGU6IHdoZW4gQ0ZHX01PTklUT1JfQkFTRSBwb2ludHMgdG8gYSBSQU0gYWRkcmVzcywKLQkgKiBDRkdfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZykgaXMgdXN1YWxseSBhIHZhbGlkCisJICogbm90ZTogd2hlbiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSBwb2ludHMgdG8gYSBSQU0gYWRkcmVzcywKKwkgKiBDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIHNpemVvZiAodWxvbmcpIGlzIHVzdWFsbHkgYSB2YWxpZAogCSAqIGFkZHJlc3MuIEJldHRlciBwaWNrIGFuIGFkZHJlc3Mga25vd24gdG8gYmUgaW52YWxpZCBvbiB5b3VyCi0JICogc3lzdGVtIGFuZCBhc3NpZ24gaXQgdG8gQ0ZHX1JFU0VUX0FERFJFU1MuCisJICogc3lzdGVtIGFuZCBhc3NpZ24gaXQgdG8gQ09ORklHX1NZU19SRVNFVF9BRERSRVNTLgogCSAqLwotCWFkZHIgPSBDRkdfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CisJYWRkciA9IENPTkZJR19TWVNfTU9OSVRPUl9CQVNFIC0gc2l6ZW9mICh1bG9uZyk7CiAjZW5kaWYKIAlzb2Z0X3Jlc3RhcnQoYWRkcik7CiAJd2hpbGUoMSk7ICAgICAgIC8qIG5vdCByZWFjaGVkICovCg==